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.

Podobne dokumenty