26 liter alfabetu angielskiego
Transkrypt
26 liter alfabetu angielskiego
26 liter alfabetu angielskiego Prawdopodobieństwo wyboru jednej litery 1/26 Jeśli wybierzemy literę z każdego z dwóch losowych ciągów, wówczas (zdarzenia są niezależne), prawdopodobieństwo wybrania szczególnej (uporządkowanej) pary liter jest (1/26)2 Jeśli napiszemy dwa losowe ciągi w kolejnych wierszach, prawdopodobieństwo wybrania litery będącej nad inną wybraną literą na danej pozycji będzie (1/26)2 Ponieważ jest 26 możliwych par identycznych liter, prawdopodobieństwo, że identyczne litery wystąpią na danej pozycji w dwóch ciągach jest 26*(1/26)2 = 1/26 ≅ 0.038 Jeśli weźmiemy teraz zamiast losowego ciągu tekst angielski to mamy pλ, λ∈{a,b, ... ,z}, np. pa – prawdopodobieństwo znalezienia na danej pozycji litery a. Prawdopodobieństwo wystąpienia identycznych liter w dwóch ciągach tekstu angielskiego na z tej samej pozycji χ = ¦ ( p λ ) 2 a Z zestawienia mamy (dla tylko liter) χp = 0.06550 Jest to prawie dwukrotna wartość 0.038 otrzymana z dwóch losowych ciągów liter Jeżeli użyjemy więc alfabetu podstawieniowego do zaszyfrowania ciągów liter tekstu angielskiego, to wskaźnik χp będzie taki sam jak dla tekstu otwartego Mamy też wskazówkę, czy w dwóch różnych kryptogramach użyto tego samego ciągu alfabetów podstawieniowych. Aby to sprawdzić, trzeba policzyć na ilu pozycjach tych sekwencji znajdują się te same litery. Jeśli kryptogramy są wystarczająco długie, otrzymamy ok. 7 zgodności na 100 liter przy tym samym alfabecie podstawieniowym a tylko ok. 4 przy różnych alfabetach. z χ = ¦ ( p λ ) 2 jest prawdopodobieństwem, że dwie dowolnie wybrane pozycje z szyfrogramu a będą zawierały takie same litery. Ale żeby to policzyć w naszym kryptogramie, musimy policzyć całkowitą liczbę par identycznych liter w kryptogramie i podzielić przez całkowitą liczbę możliwych par. Niech częstotliwość wystąpienia litery λ w kryptogramie będzie fλ. Próbując policzyć wszystkie pary pozycji zawierających literę λ, możemy wybrać pierwszą pozycję na fλ sposobów, następnie mając wybraną pierwszą pozycję, pozostaje fλ-1 szans dla drugiego wyboru. A więc mamy fλ( fλ-1) uporządkowanych par pozycji, które zawierają litery λ. Ponieważ dowolna para liter λ występuje dwukrotnie w tych uporządkowanych parach pozycji, stąd liczba par litery λ będzie ½ fλ(fλ-1). Więc całkowita liczba par identycznych liter 1 z będzie ¦ f λ ( f λ − 1) . 2 a Podobne rozumowanie wskazuje, że jeśli kryptogram ma długość n, liczba par liter jest ½ n(n-1). A więc prawdopodobieństwo liter na dwóch pozycjach będących identycznymi z jest IC = ¦ f λ ( f λ − 1) a n(n − 1) Jest to tzw. „Index of coincidence” kryptogramu. Długość kryptogramu = n Długość klucza szyfru Vigenera = m różnych liter. Możemy napisać nasz kryptogram w m wierszach tak, aby dwie litery w tym samym wierszu były szyfrowane przy użyciu tego samego szyfru addytywnego, ale dwie dowolne litery z różnych wierszy muszą pochodzić z różnych szyfrów. Mamy więc m wierszy z około n/m literami w każdym. Jeśli weźmiemy dwie pozycje w dowolnym wierszu, ponieważ był użyty ten sam szyfr monoalfabetyczny, prawdopodobieństwo otrzymania identycznych liter jest 0.065. Ale jeśli weźmiemy dwie pozycje z różnych wierszy wówczas, ponieważ użyto różnych szyfrów, prawdopodobieństwo jest tylko 0.038. Aby wybrać parę pozycji, możemy wybrać pierwszą na n sposobów. Mając wybraną pierwszą, istnieje n/m-1 szans dla drugiej w tym samym wierszu i n-n/m szans w innych wierszach. A więc mamy ½ n(n/m-1) par pozycji w tym samym wierszu, ½ n(n-n/m) par w różnych wierszach oraz ½ n(n-1) wszystkich par. Tzn. że dla tego kryptogramu mamy dwa sposoby predykcji liczby par identycznych liter. Z jednej strony jest to około ½ n(n-1)IC, ale też jest to ½ n(n/m-1)*0.065 + ½ n(n-n/m)*0.038. Ponieważ to musi być w przybliżeniu równe, mamy: ½ n(n-1)IC = ½ n(n/m-1)*0.065 + ½ n(n-n/m)*0.038. Stąd możemy wyliczyć: m IC 1 0.065 m= 0.027 n I C (n − 1) − 0.038n + 0.065 2 0.052 5 0.043 10 0.041 > 0.038 Wyznaczanie okresu I. Bierzemy kryptogram (polialfabetyczny) i podpisujemy go pod nim najpierw przesuwając o 1 znak w prawo, potem o 2 itd. Gdy trafimy w przesunięcie równe długości klucza to będziemy mieli znacznie więcej koincydencji, To samo będzie dla wielokrotności długości klucza. (UWAGA: skraca się długość porównywania). Przykład: Ciphertext 2 ze str. 34/35 (Histogram str. 36) a zależność koincydencji od shiftu – str. 44. Zestawienie największych (>8%) str. 45. II. Test Kasiskiego Przesłanka: Jeśli dwie identyczne sekwencje liter wystąpią w plaintekście, to ogólnie po zaszyfrowaniu nie będą one równe. Ale jeśli się trafi ten sam klucz pod nim, to będą takie same. Załóżmy, że w kluczu nie ma powtarzających się liter (bo to nieco zmienia sytuację). Jeśli policzymy odległość między tymi powtórzonymi sekwencjami to będzie to wielokrotnością długości klucza. Przykład: str. 46 (analiza – może 6 a może 7). III. Rozpisujemy na ilość wierszy równej długości klucza (np. 3) i liczymy w każdym wierszu indeksy koincydencji. Redukcja do szyfru monoalfabetycznego Musimy złamać. Ale rozbijanie na wiersze powoduje istotne skracanie (jeśli długość wiadomości jest równa długości klucza). Nie wszystko wykorzystaliśmy. Załóżmy, że mamy dwa kryptogramy i wiemy, że każdy z nich to szyfr addytywny. Możemy je napisać po kolei i potraktować wynikowy szyfr jako jeden kryptogram. Zastosujemy teraz do pierwszego kryptogramu po kolei 26 addytywnych szyfrów. Ale jeśli pierwszy addytywny ma shift n1 a drugi n2 to złożenie jest przystające do n1⊕n2. Licząc IC dla każdego kryptogramu możemy znaleźć które przesunięcie daje ten sam szyfr addytywny. Gdy to wiemy to znamy różnicę shiftów, Niech pierwszy oryginalny kryptogram ma długość n a drugi n’. Połączony ma n+n’. Podobnie jeśli każda litera λ ma częstotliwość fλ oraz fλ’ to w połączonym będzie fλ+ fλ’. Wówczas IC będzie Z ¦ ( fλ + f ' λ )( f λ + f − 1) ' λ A (n + n' )(n + n'−1) Z = Z = Z ¦f A A A Z +¦ f A '2 λ Z Z Z A A + 2¦ f λ f − ¦ f λ − ¦ f λ' ' λ A = (n + n' )(n + n'−1) ¦ fλ + ¦ fλ 2 2 λ '2 Z + 2¦ f λ f λ' − n − n' A (n + n' )(n + n'−1) Jeśli teraz drugą wiadomość zaszyfrujemy innym monoalfabetycznym szyfrem, wówczas częstotliwości liter zmienią się. Oznaczmy je gλ’. Ale Z ¦ f ' λ2 = A Stąd wynika, że w wyliczeniu IC zmieni się tylko Z ¦ g 'λ . 2 A ¦ fλ fλ A Z ' na Z ¦ fλ gλ A ' Ponieważ użycie identycznych alfabetów podstawieniowych powoduje dwie wartości IC, musimy znależć te shifty dla których Z ¦ fλ gλ ' jest największe. A Przykład: Napiszmy nasz szyfrogram 2 w trzech wierszach i zastosujmy tę technikę parami. Zestawienie jest na str. 49. Dla wierszy 1&2 ten shift jest 14 co oznacza, że dla wiersza 2 shift jest o 14 większy niż dla 1-go. Podobnie dla 1&3 mamy 12. Zauważmy, że 24⊕14=12 (bo dla 2&3 jest 24), co sprawdza. Teraz mamy do sprawdzenia 26 kluczy od AOM, BPN, poprzez MAY, NBZ, itd.