Érettségi vizsga visual basic express 2008-cal
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 PresentationTRANSCRIPT
Érettségi vizsga Visual BasicExpress 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)• 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!
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
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
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
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
A Caesar-kód feltörése I.
• Statisztikai módszerekkel
• Fájlkezelés + megszámlálás
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
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
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,…
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
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
Ú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
Köszönöm a figyelmet!