Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "Érettségi vizsga Visual Basic Express 2008-cal Egy ötlet a felkészítéshez: titkosírások Farkas Csaba."— Előadás másolata:

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

2 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!

3 Caesar kód Caesar (Kr. e – Kr. e. 44.): Minden betűt 3 hellyel eltolt: A  D, B  E, … X  A, Y  B, Z  C Augustus (Kr. e. 63. – Kr. u. 14.) Csak 1 hellyel tolta el: A  B, B  C, … X  AA

4 Caesar kód I. Gombok: OK, Beolvasás, Mentés Szövegmezők: txtKód, txtNyílt, txtTitkos: MultiLine = True ScrollBars = Both OpenFileDialog: ofd, SaveFileDialog: sfd

5 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

6 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

7 A Caesar-kód feltörése I. Statisztikai módszerekkel Fájlkezelés + megszámlálás

8 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

9 Az ATBAS mószer Már a Bibliában is (Jeremiás könyve) Lényege: A  Z, B  Y, … Elnevezés: Alef  Taw, Bet  Sin Szimmetrikus (ugyanaz az eljárás dekódol) Bináris fájlok esetén: 0  255, 1  254, azaz 255 – x Házi feladat

10 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,…

11 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

12 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

13 Újabb változatok Bazeries őrnagy javaslata: (Étienne Bazeries ( ) 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 ( ) 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

14 Köszönöm a figyelmet!


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