14
Érettségi vizsga Visual Basic Express 2008-cal Egy ötlet a felkészítéshez: titkosírások Farkas Csaba

Érettségi vizsga Visual Basic Express 2008-cal

  • Upload
    meryle

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Érettségi vizsga Visual Basic Express 2008-cal. Egy ötlet a felkészítéshez: titkosírások. Farkas Csaba. Elöljáróban…. Hagyományos titkosítási eljárások: - érettségi szintű feladatok ( Vigenere , 2005) - érdekesek Visual Basic 2008 Express: modern, ingyenes Szteganográfia (adatelrejtés) - PowerPoint PPT Presentation

Citation preview

Page 1: Érettségi vizsga Visual Basic Express 2008-cal

Érettségi vizsga Visual BasicExpress 2008-cal

Egy ötlet a felkészítéshez: titkosírások

Farkas Csaba

Page 2: Érettségi vizsga Visual Basic Express 2008-cal

Elöljáróban…

• Hagyományos titkosítási eljárások:- érettségi szintű feladatok (Vigenere, 2005)- érdekesek

• Visual Basic 2008 Express: modern, ingyenes• Szteganográfia (adatelrejtés)• Kriptográfia (titkosírás)• Nyílt szöveg Titkos szöveg• Módszerek: betűhelyettesítés, betűkeverés• Angol ábécé: 26 betű, 65…90, más jel nincs!

Page 3: Érettségi vizsga Visual Basic Express 2008-cal

Caesar kód

• Caesar (Kr. e. 100. – Kr. e. 44.):Minden betűt 3 hellyel eltolt:AD, BE, …XA, YB, ZC

• Augustus (Kr. e. 63. – Kr. u. 14.)Csak 1 hellyel tolta el:AB, BC, … XAA

Page 4: Érettségi vizsga Visual Basic Express 2008-cal

Caesar kód I.

• Gombok: OK, Beolvasás, Mentés

• Szövegmezők:txtKód,txtNyílt, txtTitkos:MultiLine = TrueScrollBars = Both

• OpenFileDialog: ofd,SaveFileDialog: sfd

Page 5: Érettségi vizsga Visual Basic Express 2008-cal

Caesar kód II. Private Sub cbOK_Click(… Const ábécé = 26 Dim eltolás As Integer = Val(txtKulcs.Text) Dim nyílt As String = txtNyílt.Text Dim betű, i As Integer Dim titkos As String = ""

For i = 0 To nyílt.Length - 1 betű = AscW(nyílt.Chars(i)) betű = betű + eltolás If betű > AscW("Z") Then betű = betű - ábécé End If If betű < AscW("A") Then betű = betű + ábécé End If titkos = titkos & ChrW(betű) Next txtTitkos.Text = titkos End Sub

Page 6: Érettségi vizsga Visual Basic Express 2008-cal

Caesar kód III.

Private Sub Beolvasás_Click(…

If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then

txtNyílt.Text = My.Computer.FileSystem.ReadAllText(ofd.FileName)

End If

End Sub

Private Sub Mentés_Click(…

If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then

My.Computer.FileSystem.WriteAllText(sfd.FileName, _ txtTitkos.Text.ToString, False)

End If

End Sub

Page 7: Érettségi vizsga Visual Basic Express 2008-cal

A Caesar-kód feltörése I.

• Statisztikai módszerekkel

• Fájlkezelés + megszámlálás

Page 8: Érettségi vizsga Visual Basic Express 2008-cal

A Caesar-kód feltörése II.Sub Main()

Dim s(256) As Integer

Dim fájl As IO.FileStream

Dim olvasó As IO.StreamReader

fájl = New IO.FileStream("E:\Tit.txt", FileMode.Open)

olvasó = New IO.StreamReader(fájl)

While (olvasó.Peek > -1)

s(olvasó.Read) += 1

End While

For i As Integer = AscW("A") To AscW("Z")

Console.WriteLine(ChrW(i) & " --- " & s(i))

Next

olvasó.Close()

fájl.Close()

Console.ReadLine()

End Sub

Page 9: Érettségi vizsga Visual Basic Express 2008-cal

Az ATBAS mószer

• Már a Bibliában is (Jeremiás könyve)

• Lényege: AZ, BY, …

• Elnevezés: Alef Taw, Bet Sin

• Szimmetrikus (ugyanaz az eljárás dekódol)

• Bináris fájlok esetén: 0 255, 1254, azaz 255 – x

• Házi feladat

Page 10: Érettségi vizsga Visual Basic Express 2008-cal

Vigenère-kód I.

Blaise Vigènere (1523 – 1596)

Vigènere-tábla

A=0, B=1, C=2,…

M+A=M, I+B=J, C+C=E,…

Page 11: Érettségi vizsga Visual Basic Express 2008-cal

Vigenère-kód II.• A Caesar-kód programját csak kis mértékben kell átírni

(A j változó végiglépked a kulcsszón):

Private Sub cbOK_Click(… Const ábécé = 26 Dim kulcs As String = txtKulcs.Text 'módosult Dim nyílt As String = txtNyílt.Text Dim betű, i, j As Integer 'j beszúrása Dim titkos As String = ""

j = 0 'kezdőérték For i = 0 To nyílt.Length - 1 betű = AscW(nyílt.Chars(i)) betű = betű + AscW(kulcs.Chars(j)) - AscW("A") j = j + 1 'j növelése If j = kulcs.Length Then j = 0 'előreállítás

Page 12: Érettségi vizsga Visual Basic Express 2008-cal

A Vigenère-kód feltörése

• Charles Babbage (1854, nem publikálta)Friedrich Kasiski (1863, porosz tiszt)

• Ismert szavak (pl. aláírás, ld. Verne)

• Ciklikusság alkalmazható a statisztika

• Házi feladat

Page 13: Érettségi vizsga Visual Basic Express 2008-cal

Újabb változatok• Bazeries őrnagy javaslata:

(Étienne Bazeries (1846 - 1931)

A Vigenere-tábla átrendezhető úgy, hogy minden sorban és minden oszlopban minden betű pontosan egyszer szerepeljen.(A módszert gépesíti Enigma)Házi feladat (Érettségi, 2005)

• Vernam kód (1917): Gilbert Vernam (1890-1960)

A kulcsszó legyen legalább olyan hosszú, mint a nyílt szöveg.Pl. Richard Sorge: az 1935-ös német statisztikai évkönyvet használta

Page 14: Érettségi vizsga Visual Basic Express 2008-cal

Köszönöm a figyelmet!