ROZDZIAŁ 2
1 TEORIA SHANNONA
Rozdział ten będzie miał charakter teoretyczny i dotyczy badania bezpieczeństwa systemów kryptograficznych przy bardzo ogólnych założeniach dotyczących tych systemów.
Podstawowym narzędziem badania jest rachunek prawdopodobieństwa. Przedstawiona teoria pochodzi od Clauda Shannona i była podana w jego fundamentalnej pracy: ”Communication Theory of Secrecy Systems” opublikowanej w czasopiśmie Bell Systems Technical Journal w 1949 roku. Praca ta miała duży wpływ na późniejsze badania w zakresie kryptologii.
Przedstawione niżej twierdzenia mają również znaczenie praktyczne, dostarczają ogólnych wskazówek jak projektować systemy kryptograficzne.
1.1 DOSKONAŁA TAJNOŚĆ
Istnieją dwa podstawowe podejścia przy badaniu bezpieczeństwa systemów kryptograficznych. Pierwsze dotyczy tzw. bezpieczeństwa obliczeniowego (computational security). Określa ono moc obliczeniową (zasoby pamięci, czas obliczeń) potrzebną do złamania systemu. Jeśli wymagane zasoby pamięci lub potrzebny czas są nierealne przy zastosowaniu najlepszych aktualnie znanych algorytmów umożliwiających złamanie kryptosystemu to mówimy, że jest on „obliczeniowo bezpieczny”. Drugie podejście dotyczy tzw. bezpieczeństwa bezwarunkowego (unconditional security) systemu. W podejściu tym nie ma żadnych ograniczeń dotyczących mocy obliczeniowej, którą dysponuje przeciwnik.
Zakładamy zatem, że posiada on praktycznie nieograniczoną moc obliczeniową.
Kryptosystem nazywamy bezwarunkowo bezpiecznym jeśli nie może być złamany nawet
przy wykorzystaniu nieograniczonej mocy obliczeniowej. W powyższych rozważaniach
należy określić typ ataku, który dopuszczamy przy badaniu bezpieczeństwa systemu
kryptograficznego. Niżej będziemy rozpatrywali atak z posiadanym tylko tekstem
zaszyfrowanym (ciphertext - only attack). Okazuje się, że omawiane wyżej szyfr
przesuwający, szyfr podstawieniowy i szyfr Vigenere’a są bezwarunkowo bezpieczne jeśli
tylko jeden element tekstu jawnego jest szyfrowany danym kluczem. Metod odpowiednich do
badania bezwarunkowego bezpieczeństwa systemów kryptograficznych dostarcza rachunek
prawdopodobieństwa. Przedstawimy poniżej podstawowe pojęcia i twierdzenia, które będą
nam potrzebne przy badaniu systemów kryptograficznych.
Niech X i Y będą przestrzeniami zdarzeń elementarnych. Oznaczamy przez p x ( ) prawdopodobieństwo zajścia zdarzenia x X , zaś przez p y ( ) prawdopodobieństwo zajścia zdarzenia y Y . Wtedy p x y ( , ) oznacza prawdopodobieństwo jednoczesnego wystąpienia x X i y Y . Natomiast przez p x y ( ) oznaczamy warunkowe prawdopodobieństwo zajścia x pod warunkiem wystąpienia y Y . Zdarzenia X i Y nazywamy niezależnymi jeśli p x y ( , ) p x p y ( ) ( ) dla wszystkich x X i y Y . Prawdopodobieństwa łączne i warunkowe związane są wzorem:
p x y ( , ) p x y p y ( ) ( ) .
Zmieniając miejscami wartości x i y otrzymujemy
p x y ( , ) p y x p x ( ) ( ) .
Z powyższych dwóch równości otrzymujemy wzór Bayes’a
p x y ( ) p x p y x p y
( ) ( )
( ) jeśli p ( y ) 0 .
Jako wniosek otrzymujemy, że zdarzenia X i Y są niezależne wtedy i tylko wtedy gdy
p x y ( ) p x ( ) dla wszystkich x X i y Y .
Wracając do systemów kryptograficznych zakładamy, że dany klucz jest użyty tylko do jednego szyfrowania. Niech P oznacza przestrzeń jednostek tekstu jawnego, oznaczmy wtedy przez p
P( ) prawdopodobieństwo x a priori pojawienia się tekstu jawnego x.
Załóżmy, że klucz k jest wybierany przez Alicję i Boba zgodnie z pewnym rozkładem prawdopodobieństwa; często klucze są wybierane losowo i wszystkie możliwe klucze są jednakowo prawdopodobne, ale nie zawsze tak musi być. Oznaczmy zatem prawdopodobieństwo, że wybrany jest klucz k należący do przestrzeni K przez p
K( ) k .
Zauważmy, że klucz k jest wybierany zanim Alicja zna tekst jawny; stąd realnym założeniem jest, że wybór klucza k i tekst jawny x są zdarzeniami niezależnymi. Powyższe rozkłady prawdopodobieństw na przestrzeniach P i K indukują rozkład prawdopodobieństwa na przestrzeni C możliwych jednostek tekstu zaszyfrowanego. Policzymy zatem prawdopodobieństwo p
C( ) y pojawienia się jednostki tekstu zaszyfrowanego y. Dla klucza
k K definiujemy zbiór
C ( ) k e x
k( ): x P ,
tzn. zbiór możliwych jednostek tekstu zaszyfrowanego danym kluczem k. Wtedy dla każdego
Ponadto dla każdej pary y C i x P możemy policzyć prawdopodobieństwo p
C( y x ) pojawienia się szyfrogramu y pod warunkiem wystąpienia tekstu jawnego x :
p y x p k
k x dk y
C
( )
K( )
: ( )
.
Możemy teraz policzyć, stosując twierdzenie Bayes’a, warunkowe prawdopodobieństwo p
P( x y ) , tzn. prawdopodobieństwo, że x jest tekstem jawnym pod warunkiem, że y jest szyfrogramem:
p x y
p x p k
p k p d y
k x d y
k y k
k
k
P
P K
K C
P
( )
( ) ( )
( ) ( ) .
: ( )
: ( )
Podamy teraz prosty przykład wyliczenia powyższych prawdopodobieństw. Niech
P a b , oraz
p a
P( ) 1 , p b
P( ) 4
3 4 . Niech K k k k
1, ,
2 3 z rozkładem prawdopodobieństwa:
p k
K( )
11 , p k
K( )
2p k
K( )
32
1
4 .
Następnie niech C 1 2 3 4 , , , a funkcje szyfrujące określone są tabelą:
a b
k
11 2
k
22 3
k
33 4
której elementy są wartościami funkcji szyfrujących na elementach a, b przy ustalonym kluczu k
i, i = 1,2,3.
Możemy teraz obliczyć rozkład prawdopodobieństwa p
C:
p p
p p
C C
C C
( ) , ( ) ,
( ) , ( ) .
1 1
8 2 3
8 1 16
7 16 3 3
16 1 16
1
4 4 3
16
Następnie obliczamy warunkowe prawdopodobieństwa wystąpienia jednostek tekstu jawnego
pod warunkiem, że zostały zaobserwowane odpowiednie jednostki tekstu zaszyfrowanego:
p a p b
p a p b
p a p b
p a p b
P P
P P
P P
P P
( ) ( )
( ) ( )
( ) ( )
( ) ( ) .
1 1 1 0
2 1
7 2 6
7
3 1
4 3 3
4
4 0 4 1
Zdefiniujemy teraz pojęcie doskonałej tajności (perfect secrecy). Mówiąc obrazowo, doskonała tajność oznacza, że Oskar nie może otrzymać żadnych informacji o tekście jawnym badając tylko tekst zaszyfrowany. Definicję dokładną formułujemy w terminach rozkładów prawdopodobieństw.
Definicja
Kryptosystem posiada doskonałą tajność jeśli p
P( x y ) p
P( ) x
dla wszystkich x P i y C . Znaczy to, że prawdopodobieństwo a posterori wystąpienia tekstu jawnego x pod warunkiem zaobserwowania szyfrogramu y równe jest prawdopodobieństwu a priori występowania tekstu jawnego x.
Można udowodnić następujące:
Twierdzenie
Załóżmy, że 26 kluczy w szyfrze przesuwającym występuje z równym prawdopodobieństwem 1/26. Wtedy dla każdego rozkładu prawdopodobieństwa na przestrzeni jednostek tekstu jawnego P , szyfr przesuwający posiada doskonałą tajność.
Interpretacyjnie oznacza to, że dla danego elementu tekstu zaszyfrowanego y C Z
26każdy element tekstu jawnego x P Z
26może być otrzymany przez deszyfrowanie y w zależności od użytego klucza k K Z
26. Szyfr przesuwający ”nie można złamać” pod warunkiem, że nowy losowo wybrany klucz jest użyty do zaszyfrowania każdej jednostki tekstu jawnego. Dowód twierdzenia polega na wykazaniu równości prawdopodobieństw występujących w definicji doskonałej tajności.
Dla szyfru przesuwającego
P C K = = Z
26,
dla k Z
26funkcja szyfrująca ma postać
e x
k( ) ( x k ) mod , 26 x Z
26.
Z kolei mamy równości
p y k p y
k y
P
( )
P( ) .
Z26 Z26
1
W konsekwencji p
C( ) y 1
26 dla każdego y Z
26. Liczymy teraz prawdopodobieństwa warunkowe
p y x
Cp y x
( )
K( ) mod 26 1 26 ,
ponieważ dla wszystkich x y , Z
26jedynym kluczem takim, że e x
k( ) jest y k ( y x ) mod 26 . Korzystając teraz z twierdzenia Bayes’a obliczamy
p x y p x p x y p y
p x
P P C
p x
C
P
( ) ( ) ( )
P( )
( )
( )
1 1 26 26 co oznacza doskonałą tajność.
Zbadamy teraz ogólne warunki doskonałej tajności kryptosystemu. Z twierdzenia Bayes’a wynika, że warunek p
P( x y ) p
P( ) x dla wszystkich x P , y C jest równoważny warunkowi p x y
C( ) p
C( ) y dla wszystkich x P , y C . Będziemy zakładać, że p y
C( ) 0 dla y C to y nigdy nie wystąpi i może być usunięte ze zbioru C . Ustalmy teraz x P . Dla każdego y C mamy p x y
C( ) p y
C( ) 0 . Zatem dla każdego y C musi istnieć co najmniej jeden klucz k K taki, że e x
k( ) . Wynika stąd dla liczności zbiorów: y
K C . W każdym kryptosystemie mamy C P , ponieważ każda funkcja szyfrująca jest różnowartościowa.
W przypadku K C P można podać następującą charakterystykę doskonałej tajności kryptosystemu:
Twierdzenie (C. Shannon)
Niech kryptosystem ( , , P C K E D , , ) ma K C P . Kryptosystem ten posiada doskonałą tajność wtedy i tylko wtedy gdy każdy klucz występuje z jednakowym prawdopodobieństwem oraz dla każdego x P i y C istnieje jedyny klucz k taki, że
e x
k( ) y .
Dowód
Załóżmy wpierw, że dany kryptosystem posiada doskonałą tajność. Wtedy dla każdego x P i y C istnieje co najmniej jeden klucz k K taki, że e x
k( ) . Mamy zatem y nierówność:
C e x
k( ): k K K .
Założyliśmy, że C K czyli
e x
k( ): k K K
co znaczy, że nie ma dwóch różnych kluczy k
1i k
2takich, że e x k 1 ( ) e x k 2 ( ) y .
Wykazaliśmy zatem, że dla dowolnych x P , y C istnieje dokładnie jeden klucz k o własności e x
k( ) . Oznaczmy y n K . Niech P x
i: 1 i n , ustalmy y C i ponumerujemy wszystkie klucze k
1,..., k
nw taki sposób, że e x k i ( ) i y dla 1 i n . Stosując twierdzenie Bayes’a otrzymujemy:
p x y p y x p x p y
p k p x p y
i i i i
P
C P
C
P C