20.11.2013 Views

KRYPTOLOGIA i ZAAWANSOWANE METODY KRYPTOGRAFII

KRYPTOLOGIA i ZAAWANSOWANE METODY KRYPTOGRAFII

KRYPTOLOGIA i ZAAWANSOWANE METODY KRYPTOGRAFII

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>KRYPTOLOGIA</strong> i<br />

<strong>ZAAWANSOWANE</strong> <strong>METODY</strong> <strong>KRYPTOGRAFII</strong><br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008 str.1


Literatura (czasem nawet piękna)<br />

Bruce Schneier, „Kryptografia dla praktyków”, WNT 2002<br />

Dorothy Elisabeth Robling Denning, „Kryptografia i ochrona danych”, WNT 1993<br />

Neal Koblitz, „Wykład z teorii liczb i kryptografii”, WNT 1995<br />

Neal Koblitz, „Algebraiczne aspekty kryptografii”, WNT 2000<br />

Ian Blake, Gadiel Seroussi, Nigel Smart, „Krzywe eliptyczne w kryptografii”, WNT 2004<br />

William Stallings, „Ochrona danych w sieci i intersieci”, WNT 1997<br />

Douglas R.Stinson, „Kryptografia”, WNT 2005<br />

Alfred J.Menezes, Paul C.van Oorschot, Scott A.Vanstone, „Kryptografia stosowana”,<br />

WNT 2005<br />

Darrel Hankerson, Alfred Menezes, Scott A.Vanstone, „Guide to Elliptic Curves<br />

Cryptography”, Springer 2004<br />

Christopher Wolf, Bart Preneel, „Taxonomy of Public Key Schemes based on the problem<br />

of Multivariate Quadratic equations”<br />

Mirosław Kutyłowski, Willy-B.Strothmann, „Kryptografia.Teoria i praktyka<br />

zabezpieczania systemów komputerowych”, LUPUS 1998<br />

Friedrich L.Bauer, „Sekrety kryptografii”, Helion 2004<br />

Mika Hirvensalo, „Algorytmy kwantowe“, WSiP 2004<br />

Johannes A.Buchmann, „Wprowadzenie do kryptografii”, PWN 2006<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008 str.2


Materiały I-XI Krajowej Konferencji Zastosowań Kryptografii „Enigma”, 1997-2007<br />

Reinhard Wobst, „Kryptologia. Budowa i łamanie zabezpieczeń ”, Wydawnictwo RM 2002<br />

Simon Singh, „Księga szyfrów”, Świat Książki 2003<br />

Rudolf Kippenhahn,„Tajemne przekazy. Szyfry, Enigma i karty chipowe”,<br />

Prószyński i S-ka 2000<br />

Władysław Kozaczuk, „W kręgu Enigmy”, RSW „Prasa-Książka-Ruch” 1986<br />

Andrew Hodges, „Enigma. Życie i śmierć Alana Turinga”, Prószyński i S-ka 2002<br />

David Kahn, „Łamacze kodów”, WNT 2004<br />

Paulo Ribenboim, „Mała księga wielkich liczb pierwszych”, WNT 1997<br />

Najbliżsi „krewni” kryptologii:<br />

Steganografia – metody realizacji usługi poufności oparte na „zakrywaniu” tekstu jawnego (po<br />

jego „odkryciu” jest on czytelny dla wszystkich).<br />

steganos = zakryty versus kryptos = ukryty<br />

„Water-marking” – metody umieszczania w sposób niewidoczny dla podmiotów<br />

nieuprawnionych w „tekście jawnym” indywidualnych i charakterystycznych informacji<br />

decydujących o unikalności poszczególnych „instancji” tego tekstu (ostatnio „przyspieszony<br />

rozwój”, głównie w kontekście ochrony praw autorskich do „dzieł” występujących w formie<br />

cyfrowej).<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008 str.3


PODSTAWOWE POJĘCIA I KONCEPCJE<br />

Niech A i oznacza skończony zbiór elementów (symboli) zwany alfabetem<br />

(np. A i = { 0, 1 } to alfabet binarny).<br />

Zbiór wszystkich ciągów symboli alfabetu A M , w którym wyrażana jest wiadomość jawna,<br />

nazywa się przestrzenią wiadomości jawnych M.<br />

Dowolny element m ∈ M nazywa się wiadomością jawną (plaintext).<br />

Zbiór wszystkich ciągów symboli alfabetu A C , w którym wyrażana jest wiadomość<br />

zaszyfrowana (kryptogram), nazywa się przestrzenią wiadomości zaszyfrowanych (tajnych) C.<br />

Dowolny element c ∈ C nazywa się wiadomością zaszyfrowaną (tajną) (ciphertext).<br />

Alfabety A M i A C nie muszą być identyczne. Jeżeli są (A M = A C ), to wówczas mówimy<br />

o systemie kryptograficznym, że jest endomorficzny.<br />

Niech symbol K oznacza przestrzeń kluczy. Dowolny element k ∈ K nazywa się kluczem.<br />

Każdy element e ∈ K jednoznacznie określa unikalną bijekcję z M na C, oznaczaną jako E e .<br />

Funkcja E e określana jest mianem funkcji szyfrującej albo przekształcenia szyfrującego.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008 str.4


Dla każdego elementu d ∈ K symbol D d oznacza bijekcję z C na M. Funkcja D d określana jest<br />

mianem funkcji deszyfrującej albo przekształcenia deszyfrującego.<br />

Zastosowanie przekształcenia E e w stosunku do wiadomości jawnej m nazywa się szyfrowaniem<br />

wiadomości jawnej m.<br />

Zastosowanie przekształcenia D d w stosunku do wiadomości zaszyfrowanej c nazywa się<br />

deszyfrowaniem kryptogramu c.<br />

System szyfrujący (zwany czasem szyfrem) składa się ze zbioru przekształceń szyfrujących<br />

{ E e : e ∈ K } oraz odpowiadającego mu zbioru przekształceń deszyfrujących { D d : d ∈ K }<br />

takich, że dla każdego klucza e ∈ K istnieje unikalny klucz d ∈ K taki, że D d = E e -1 .<br />

Oznacza to, że:<br />

∀ m ∈ M : D d ( E e (m) ) = m<br />

Tak określone klucze e i d są traktowane jako para kluczy, i niekiedy oznaczane jako (e, d).<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008 str.5


Konstrukcja systemu szyfrującego wymaga zatem:<br />

- określenia przestrzeni wiadomości jawnych M;<br />

- określenia przestrzeni wiadomości tajnych C;<br />

- określenia przestrzeni kluczy K;<br />

- określenia zbioru przekształceń szyfrujących { E e : e ∈ K };<br />

- określenia odpowiedniego zbioru przekształceń deszyfrujących { D d : e ∈ K }.<br />

O systemie szyfrującym mówi się, że jest przełamywalny, jeżeli trzecia strona bez uprzedniej<br />

znajomości pary kluczy ( e, d ) może:<br />

• systematycznie odtwarzać tekst jawny na podstawie odpowiadającego mu tekstu<br />

zaszyfrowanego w pewnym określonym okresie czasu,<br />

bądź też<br />

• na podstawie gromadzonych ciągów wiadomości jawnych i odpowiadających im<br />

kryptogramów skutecznie odtwarzać klucz przekształcenia szyfrującego (algorytmu<br />

kryptograficznego).<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008 str.6


System szyfrujący (kryptosystem) może być przełamany przez próbę zastosowania wszystkich<br />

możliwych kluczy do odszyfrowania szyfrogramu utworzonego zgodnie ze znanym<br />

przekształceniem szyfrującym. Takie działanie nosi nazwę wyczerpującego przeszukiwania<br />

przestrzeni kluczy, lub inaczej: ataku brutalnego.<br />

Szyfr bezwarunkowo bezpieczny<br />

Niezależnie od ilości przechwyconej zaszyfrowanej informacji - nie wystarcza ona do<br />

jednoznacznego określenia tekstu jawnego.<br />

Szyfr bezpieczny obliczeniowo (mocny)<br />

Nie można go przełamać przy zastosowaniu systematycznej analizy z wykorzystaniem<br />

dostępnych zasobów (przechwyconych partii tekstu zaszyfrowanego).<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008 str.7


SYSTEMY <strong>KRYPTOGRAFII</strong> SYMETRYCZNEJ<br />

System kryptograficzny nazywamy symetrycznym, gdy dla każdej pary kluczy ( e, d )<br />

„obliczeniowo łatwe” jest określenie na podstawie znajomości jednego z kluczy z tej pary<br />

(np. klucza e) drugiego klucza (czyli klucza d).<br />

W większości praktycznych rozwiązań algorytmów kryptografii symetrycznej e = d.<br />

Istnieją dwie klasy szyfrów symetrycznych:<br />

• szyfry blokowe<br />

• szyfry strumieniowe<br />

Szyfr blokowy jest takim systemem szyfrującym, w którym tekst jawny dzielony jest na ciągi<br />

o identycznej długości t nad alfabetem A M , zwane blokami , a następnie każdy z bloków jest<br />

kolejno szyfrowany (przy czym podczas szyfrowania kolejnego bloku wiadomości jawnej<br />

uwzględnia się, lub nie, rezultaty szyfrowania bloków poprzednich).<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008 str.8


KLASYFIKACJA BLOKOWYCH SYSTEMÓW <strong>KRYPTOGRAFII</strong> SYMETRYCZNEJ<br />

Szyfry<br />

blokowe<br />

przestawieniowe<br />

podstawieniowe<br />

monoalfabetyczne<br />

(proste)<br />

homofoniczne<br />

polialfabetyczne<br />

poligramowe<br />

produktowe<br />

(kaskadowe)<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008 str.9


SZYFRY PRZESTAWIENIOWE (PRZYKŁAD HISTORYCZNY)<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.10


SZYFRY PRZESTAWIENIOWE (MODEL MATEMATYCZNY)<br />

Rozważmy blokowy system kryptografii symetrycznej o blokach długości t. Niech K będzie<br />

zbiorem wszystkich permutacji na zbiorze:<br />

{ 1, 2, 3, ..., t }<br />

Dla każdego e ∈ K definiuje się przekształcenie szyfrujące:<br />

E e (m) = ( m e(1) m e(2) m e(3) ... m e(t) ) = ( c 1 c 2 c 3 ... c t )<br />

gdzie: m = ( m 1 m 2 m 3 ... m t ) ∈ M – blok wiadomości jawnej<br />

c = ( c 1 c 2 c 3 ... c t ) ∈ C – blok kryptogramu<br />

Zbiór wszystkich takich przekształceń nazywa się prostym szyfrem przestawieniowym.<br />

Kluczem deszyfrującym odpowiadającym kluczowi (permutacji) e jest permutacja d = e -1 .<br />

Przekształcenie deszyfrujące:<br />

D d (c) = ( c d(1) c d(2) c d(3) ... c d(t) ) = m = ( m 1 m 2 m 3 ... m t )<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.11


Liczba różnych przekształceń szyfrujących wynosi t!.<br />

Szyfr ten jest oczywiście endomorficzny. Szyfr zachowuje liczbę symboli określonego typu<br />

w bloku i jest stosunkowo łatwy do kryptoanalizy (nawet przy dużych wartościach długości<br />

bloku t), np. przez atak metodą „najbardziej prawdopodobnego słowa”.<br />

Przykład 1. szyfru przestawieniowego:<br />

Niech alfabetem wiadomości jawnych będzie zbiór wszystkich (dużych) liter alfabetu polskiego<br />

rozszerzony o spację (odstęp):<br />

A M = { A, Ą, B, C, ..., Y, Z, Ż, Ź, spacja },<br />

zaś długość jednorazowo szyfrowanego bloku t = 8 (parametr t bywa też określany mianem<br />

okresu szyfru, zaś blokowy szyfr przestawieniowy - okresowym szyfrem przestawieniowym).<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.12


Niech klucz szyfrujący e będzie permutacją:<br />

x 1 2 3 4 5 6 7 8<br />

e (x) 3 5 1 4 6 8 7 2<br />

Klucz deszyfrujący d = e -1 :<br />

x 1 2 3 4 5 6 7 8<br />

d (x) 3 8 1 4 2 5 7 6<br />

Wiadomość jawna:<br />

J A K D O B R Z E R O B I Ć U N I K I<br />

N A WY D Z I A L E I N F O R M A T Y K I<br />

zostanie przetworzona na wiadomość zaszyfrowaną:<br />

K D J O R B A O Z R B Ć I E N K I K U<br />

Y N WD I Z A E I A N O F L A Y R T Y I M<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.13


Przykład 2. szyfru przestawieniowego:<br />

Popularne w „zamierzchłych czasach” w kręgach militarnych tzw. „szyfry siatkowe” też są<br />

klasycznym przykładem szyfrów przestawieniowych.<br />

„Narzędziem”, czyli kluczem szyfrującym i deszyfrującym, jest kwadrat o wymiarach 2n x 2n,<br />

podzielony na cztery „podkwadraty” o następującym oznakowaniu poszczególnych elementów<br />

1 2 3 ... n n 2 -n+1 ... 2n+1 n+1 1<br />

n+1 n+2 n+3 ... 2n n 2 -n+2 ... 2n+2 n+2 2<br />

2n+1 2n+2 2n+3 ... 3n n 2 -n+2 ... 2n+3 n+3 3<br />

... ... ... ... ... ... ... ... ... ...<br />

n 2 -n+1 n 2 -n+2 n 2 -n+3 ... n 2 n 2 ... 3n 2n n<br />

n 2n 3n ... n 2 n 2 ... n 2 -n+3 n 2 -n+2 n 2 -n+1<br />

... ... ... ... ... ... ... ... ... ...<br />

3 n+3 2n+3 ... n 2 -n+3 3n ... 2n+3 2n+2 2n+1<br />

2 n+2 2n+2 ... n 2 -n+2 2n ... n+3 n+2 n+1<br />

1 n+1 2n+1 ... n 2 -n+1 n ... 3 2 1<br />

w którym losowo wybrano (i wycięto) elementy o numerach od 1 do n 2 , tworząc w ten sposób<br />

siatkę szyfrującą.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.14


„Matrycą” do „wpisywania” tekstu jawnego podczas szyfrowania jest także kwadrat<br />

o wymiarach 2n x 2n, „przykryty” siatką szyfrującą. Pierwszych n 2 znaków tekstu jawnego<br />

wpisuje się wykorzystując otwory w „siatce szyfrującej” (po kolei wypełniając wolne miejsca<br />

w wierszach od lewej do prawej). Po wykorzystaniu wszystkich wolnych miejsc w „siatce<br />

szyfrującej” obraca się ją o 90 o i kontynuuje wpisywanie zgodnie z powyższą regułą kolejnych<br />

n 2 znaków tekstu jawnego, itd.<br />

Deszyfrowanie polega na wykonywaniu tych samych operacji z „siatką szyfrującą”<br />

na kryptogramie, przy czym zamiast „wpisywania” odczytuje się kolejno znaki widoczne<br />

w każdym z czterech ustawień „siatki szyfrującej”.<br />

Niech n = 3, zaś „siatka szyfrująca” wygląda następująco (szarym tłem oznaczono „wycięte”<br />

elementy siatki):<br />

1 2 3 7 4 1<br />

4 5 6 8 5 2<br />

7 8 9 9 6 3<br />

3 6 9 9 8 7<br />

2 5 8 6 5 4<br />

1 4 7 3 2 1<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.15


Niech tekstem jawnym będzie:<br />

„CZY WPUŚCIĆ X-OWI KONIA TROJAŃSKIEGO”<br />

Pierwsza faza szyfrowania<br />

1 2 C 7 4 Z<br />

4 5 6 Y 5 2<br />

8 9 9 W 3<br />

3 6 P 9 8 7<br />

2 U 8 6 5 Ś<br />

1 4 7 3 C 1<br />

Druga faza szyfrowania (po obrocie „siatki szyfrującej” o 90 o )<br />

C I Z<br />

Ć Y<br />

W X<br />

P -<br />

O U W Ś<br />

I C<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.16


Trzecia faza szyfrowania (po kolejnym obrocie „siatki szyfrującej” o 90 o )<br />

K C I Z<br />

O Ć Y N<br />

I W X<br />

A P -<br />

O U T W Ś<br />

R I O C<br />

Czwarta (i ostatnia) faza szyfrowania (po kolejnym obrocie „siatki szyfrującej” o 90 o )<br />

J K C I A Z<br />

O Ć Ń Y N S<br />

K I W X<br />

I A P E -<br />

O U T W G Ś<br />

R I O O C<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.17


Po usunięciu „siatki szyfrującej” uzyskuje się kryptogram<br />

J K C I A Z<br />

O Ć Ń Y N S<br />

K I W X<br />

I A P E -<br />

O U T W G Ś<br />

R I O O C<br />

Po „wypisaniu” wierszami:<br />

„JKCIAZOĆŃYNS K IWXIAPE- OUTWGŚRIOOC ”<br />

Jest to oczywiście szyfr przestawieniowy o okresie t = 4n 2 = 36, i może być przedstawiony przez<br />

określoną w poniższej tabeli permutację:<br />

x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18<br />

π(x) 3 6 10 13 17 21 26 30 35 4 8 15 18 23 25 28 32 36<br />

x 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36<br />

π(x) 2 7 11 16 20 24 27 31 34 1 5 9 12 14 19 22 29 33<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.18


PROSTE SZYFRY PODSTAWIENIOWE (MONOALFABETYCZNE)<br />

(PRZYKŁADY HISTORYCZNE)<br />

Arthur Conan Doyle<br />

„Tańczące sylwetki”<br />

REMEMBER DEATH<br />

Szyfr „cmentarny”<br />

Johna Leasona<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.19


PROSTE SZYFRY PODSTAWIENIOWE (MONOALFABETYCZNE)<br />

(MODEL MATEMATYCZNY)<br />

Niech A będzie alfabetem zawierającym q symboli, zaś M zbiorem wszystkich ciągów<br />

o długości t nad alfabetem A.<br />

Niech K będzie zbiorem wszystkich permutacji na zbiorze A.<br />

Dla każdego e ∈ K definiuje się przekształcenie szyfrujące:<br />

E e (m) = ( e(m 1 ) e(m 2 ) e(m 3 ) ... e(m t )) = ( c 1 c 2 c 3 ... c t ) = c<br />

gdzie: m = ( m 1 m 2 m 3 ... m t ) ∈ M<br />

Każdy symbol spośród t symboli tworzących blok zastępuje się (podstawia za niego) innym<br />

symbolem ze zbioru A , zgodnie z ustaloną permutacją e. Przekształcenie E e nazywa się prostym<br />

(monoalfabetycznym) szyfrem podstawieniowym.<br />

Kluczem deszyfrującym odpowiadającym e jest permutacja d = e -1 .<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.20


Przekształcenie deszyfrujące:<br />

D d (c) = ( d(c 1 ) d(c 2 ) d(c 3 ) ... d(c t )) = ( m 1 m 2 m 3 ... m t ) = m<br />

Liczba różnych przekształceń szyfrujących wynosi q! i nie zależy od rozmiaru bloku t.<br />

Np. dla alfabetu 26-literowego przestrzeń kluczy M zawiera:<br />

26! ≈ 4 * 10 26 elementów.<br />

Niestety, szyfry monoalfabetyczne są podatne na atak metodami analizy częstości występowania<br />

znaków (lub sekwencji znaków, tzw. n-gramów) w kryptogramie.<br />

Względne częstości występowania pojedynczych liter<br />

Literacki język polski Literacki język angielski<br />

Litera Częstość Litera Częstość<br />

„spacja” 0.172 „spacja” 0.197<br />

a, ą 0.080 e 0.089<br />

o, ó 0.071 t 0.070<br />

i 0.070 a 0.067<br />

e, ę 0.069 o 0.063<br />

... ... ... ...<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.21


Dysponując odpowiednio „obszernym” przechwyconym kryptogramem można sporządzić<br />

empiryczny histogram, czyli zestawienie względnych częstości pojawiania się określonych<br />

symboli w kryptogramie, a następnie, zakładając że kluczem jest określona permutacja,<br />

odtwarzać klucz szyfrujący („O odczytywaniu zaszyfrowanych listów”, Al.-Kindi, IXw).<br />

Równie użyteczne mogą być poszukiwania powtarzających się digramów, trigramów, itd. (np. w<br />

literackim języku angielskim najczęściej występującym trigramem jest „the”). Ich<br />

odpowiednikami są dla monoalfabetycznych szyfrów podstawieniowych identyczne sekwencje<br />

w przechwyconym kryptogramie.<br />

Metody zmniejszania skuteczności kryptoanalizy częstotliwościowej<br />

Konfuzja (nieład)<br />

Dążenie do "wikłania" zależności Ee wiążącej klucz przekształcenia szyfrującego z<br />

wiadomością jawną (a w konsekwencji także zależności Dd wiążącej klucz z kryptogramem).<br />

Rezultat konfuzji :<br />

Analiza statystycznych cech kryptogramu nie daje użytecznych informacji o kluczu szyfrującym<br />

przekształcenia.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.22


Dyfuzja (rozproszenie)<br />

"Zacieranie" cech statystycznych tekstu jawnego w trakcie wykonywania przekształcenia<br />

szyfrującego. Stosowane metody dyfuzji sprowadzają się zasadniczo do dwóch metod<br />

postępowania:<br />

• stosowanie przestawień (mimo zachowania częstości występowania pojedynczych znaków<br />

utrudnia się kryptoanalizę dzięki zaburzeniu częstości występowania digramów, trigramów,<br />

itd.);<br />

• uzależnienie każdego znaku kryptogramu od jak największej liczby znaków wiadomości<br />

jawnej.<br />

Operacją dodatkową, która może skutecznie wspomagać operację szyfrowania, jest wstępna<br />

kompresja wiadomości jawnej przed poddaniem jej przekształceniu szyfrującemu. Jednak<br />

zastosowanie kompresji ogranicza wyłącznie skuteczność kryptoanalizy częstotliwościowej; w<br />

rzeczywistości, przy zastosowaniu innych form ataku na system szyfrujący, wstępna kompresja<br />

nie zwiększa bezpieczeństwa systemu szyfrującego.<br />

UWAGA: Należy pamiętać, że w systemie kryptograficznym wykorzystującym kompresję<br />

danych niezbędna jest znajomość metody dekompresji odszyfrowanej wiadomości po stronie<br />

odbiorcy (wzrost stopnia złożoności systemu kryptograficznego).<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.23


SZYFRY PODSTAWIENIOWE MONOALFABETYCZNE (ciąg dalszy)<br />

Kluczem monoalfabetycznego szyfru podstawieniowego jest pewna permutacja, która w<br />

przypadku dużej mocy alfabetu wiadomości jawnych jest „kłopotliwa” w zapisie.<br />

Ze względu na łatwość implementacji stosuje się systemy z "mniejszą przypadkowością" w<br />

wyborze klucza szyfrowania, tzw. systemy wielomianowe.<br />

W systemach tych przekształcenie szyfrujące określone jest następująco :<br />

c = f(m) = ( m t k t + m t-1 k t-1 + ... + m 1 k 1 + k 0 ) mod N<br />

gdzie m jest nieujemną liczbą całkowitą < N , odpowiadającą literze alfabetu jawnego, zaś zbiór:<br />

jest kluczem przekształcenia.<br />

{ k t , k t-1 , ... , k 1 , k 0 }<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.24


Dla wielomianów pierwszego rzędu kluczem jest para liczb k1 i k0 , a przekształcenie nosi<br />

nazwę przekształcenia afinicznego.<br />

c = f(m) = ( m k1 + k0 ) mod N<br />

Przekształcenie deszyfrujące dla przekształcenia afinicznego jest także przekształceniem<br />

afinicznym:<br />

m = f -1 (c) = k1 -1 ( c - k0 ) mod N<br />

Szczególnymi przypadkami przekształcenia afinicznego są :<br />

• przekształcenie liniowe (tzw. „przerzedzone”): c = f(m) = m k1 mod N<br />

• przesunięciowy „szyfr Cezara” : c = f(m) = ( m + k0 ) mod N<br />

W afinicznych systemach kryptograficznych istotny jest właściwy dobór parametrów klucza.<br />

W szczególności parametr k1 oraz liczba N określająca moc alfabetu wiadomości jawnych<br />

muszą być względnie pierwsze. W przeciwnym przypadku nie istnieje jednoznaczne<br />

przekształcenie deszyfrujące.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.25


Przykład:<br />

Niech alfabet jawny będzie zbiorem wszystkich dużych liter alfabetu łacińskiego.<br />

(Przyjmijmy następujące odwzorowanie alfabetu na liczby: A⇒ 0, B⇒ 1, ..., Z⇒ 25).<br />

Niech tekst jawnym będzie:<br />

„VANITAS VANITATUM ET OMNIA VANITATIS ”.<br />

Po usunięciu spacji zastosowano do zaszyfrowania tego tekstu przesunięciowy „szyfr Cezara”:<br />

uzyskując następujący kryptogram:<br />

c = f(m) = ( m + 7 ) mod 26,<br />

„CHUPAHZCHUPAHABTLAVTUPHCHUPAHAPZ”.<br />

Podkreślone fragmenty kryptogramu wskazują pośrednio przypuszczalną skuteczność ataku za<br />

pomocą kryptoanalizy częstotliwościowej.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.26


Wielokrotne szyfrowanie szyfrem afinicznym<br />

Zwiększenie bezpieczeństwa szyfru przez wielokrotne zastosowanie szyfrowania afinicznego o<br />

tym samym module przekształcenia nie ma żadnego wpływu na bezpieczeństwo szyfru. Aby się<br />

o tym przekonać wystarczy zauważyć, że:<br />

c = f2(f1(m)) = (k12 ( m k11 + k01 ) mod N+ k02 ) mod N =<br />

= (m k12 k11 + k12 k01 ) mod N+ k02 ) mod N =<br />

= (m k12 k11 + k12 k01 + k02 ) mod N = (m k1’ + k0’) mod N,<br />

a więc w dalszym ciągu mamy do czynienia z przekształceniem afinicznym.<br />

Nieznany moduł szyfru afinicznego<br />

Moduł przekształcenia afinicznego N musi być co najmniej równy mocy alfabetu jawnego.<br />

Zastosowanie tajnego modułu różnego od mocy alfabetu jawnego może utrudnić kryptoanalizę,<br />

ale widoczne efekty można uzyskać dopiero po złożeniu dwóch przekształceń afinicznych<br />

o różnych wartościach modułu, np.:<br />

c = f2(f1(m)) = (k12 ( m k11 + k01 ) mod N1+ k02 ) mod N2<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.27


”Wspomaganie” szyfrowania kodowaniem<br />

Kodowanie polega na zastępowaniu pewnych ciągów symboli alfabetu jawnego innymi ciągami<br />

symboli (dopuszczalne jest stosowanie innego alfabetu oraz innej długości słowa kodującego<br />

słowo wyjściowe). Kombinacja szyfrowania z kodowaniem polega na tym, że jeżeli w tekście<br />

jawnym wystąpi słowo, dla którego istnieje odpowiednik kodowy, to zamiast szyfrowania<br />

umieszcza się w tekście tajnym ten odpowiednik, zaś dla słów nie mających swoich<br />

odpowiedników w „książce kodów” stosuje się wybraną metodę szyfrowania „symbol po<br />

symbolu”.<br />

Nie jest to jednak poważnym utrudnieniem pracy kryptoanalityka, gdyż po przełamaniu szyfru<br />

„ukrywającego” fragmenty tekstu nie podlegającego kodowaniu jest on z reguły w stanie<br />

odtworzyć „książkę kodów” na podstawie kontekstu.<br />

Przykład historyczny:<br />

Nomenklator Marii Stuart<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.28


”Nieortograficzny” tekst jawny jako środek obrony przed kryptoanalizą częstotliwościową<br />

Przekształcenie tekstu jawnego do postaci sprzecznej z regułami ortografii, lecz czytelnej (na<br />

podstawie brzmienia) dla podmiotu dysponującego kluczem deszyfrującym, jest pewną formą<br />

zniekształcania histogramów, lecz nadmiarowość języka powoduje, że nie jest to środek aż tak<br />

skuteczny, jak by się mogło wydawać.<br />

Przykład:<br />

„THIS HAS THE EFFECT OF DISTURBING THE BALANCE OF FREQUENCES” ⇒<br />

„THYS HAZ THI IFEKKT OFF DIZTAUGHTING OFF FRIKWENSEAS”<br />

Przykład historyczny:<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.29


Przykład historyczny:<br />

Indianie Navajo<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.30


PODSTAWIENIOWE SZYFRY HOMOFONICZNE<br />

Niech z każdym symbolem a ∈ AM będzie związany zbiór H(a) zawierający ciągi o długości t<br />

symboli z alfabetu AC, przy czym dla każdej pary symboli ai i aj zbiory H( ai ) i H( aj ) są<br />

rozłączne.<br />

Homofoniczny szyfr podstawieniowy zastępuje każdy symbol a wiadomości jawnej losowo<br />

wybranym ciągiem c ze zbioru H(a).<br />

W celu zdeszyfrowania ciągu c zawierającego t symboli należy określić takie a ∈ AM , które<br />

spełnia zależność c ∈ H(a).<br />

W szczególności (gdy moc alfabetu AC wystarczająco przewyższa moc alfabetu AM ) wartość t<br />

może wynosić 1.<br />

Odpowiedniki symboli alfabetu AM w alfabecie AC noszą nazwę homofonów. „Kojarząc” z<br />

symbolem a z alfabetu AM o większej częstości występowania w tekstach jawnych zbiór<br />

homofonów H(a) o większej mocy (czyli więcej symboli z alfabetu AC) można „zatrzeć”<br />

charakterystyki częstotliwościowe tekstu jawnego losowo wybierając podczas szyfrowania<br />

homofony napotkanego w tekście jawnym symbolu.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.31


Przykład:<br />

„Drzewo Huffmana” umożliwia optymalną kompresję, zaś najrzadziej występujący symbol jest<br />

kodowany najdłuższą sekwencją bitów (tzw. kodowanie prefiksowe).<br />

Niech dla pewnego alfabetu 5-znakowego (zawierającego symbole S1, S2, S3, S4, S5) drzewo<br />

Huffmana wygląda następująco:<br />

S1 0<br />

S2 1<br />

0<br />

0<br />

S3 1<br />

S4 0<br />

S5 1<br />

1<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.32


Pierwotne kody wynikające z kompresji Huffmana:<br />

S1 → 000, S2 → 001, S3 → 01, S4 → 10, S5 → 11.<br />

Przyporządkowując każdemu z symboli 3-bitowe ciągi binarne o prefiksach zgodnych z kodami<br />

Huffmana uzyskuje się dla symboli S1 i S2 pojedyncze homofony, zaś dla symboli S3, S4 i S5<br />

zbiory zawierające 2 homofony:<br />

S1 → {000}, S2 → {001}, S3 → {010,011}, S4 → {100,101}, S5 → {110,111}.<br />

Kryptoanalityk, odkrywszy zasadę tworzenia szyfru, jest w stanie na podstawie kryptoanalizy<br />

częstotliwościowej „odtworzyć” drzewo Huffmana. Wystarczy jednak dokonać przed<br />

rozpoczęciem szyfrowania losowej (ale ustalonej i tej samej dla wszystkich homofonów)<br />

permutacji bitów każdego z homofonów, by względnie skutecznie utrudnić mu to zadanie:<br />

S1 → {000}, S2 → {100}, S3 → {001,101}, S4 → {010,110}, S5 → {011,111}.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.33


Szyfry homofoniczne wyższych stopni :<br />

Szyfry te charakteryzują się tym, że dowolny przechwycony kryptogram można zdeszyfrować<br />

do więcej niż jednego sensownego tekstu jawnego, w zależności od użytego klucza szyfrowania.<br />

Szyfru homofonicznego drugiego rzędu :<br />

Jeśli tekst jawny i tekst imitujący tekst jawny są ciągami symboli nad pewnym alfabetem<br />

o mocy równej N, to w tablicy kwadratowej o wymiarach N ∗ N umieszcza się losowo liczby<br />

od 1 do N 2, kolejne kolumny tablicy odpowiadają homofonom liter wiadomości właściwej, zaś<br />

wiersze - homofonom liter wiadomości "maskującej" (lub odwrotnie). W celu utworzenia<br />

szyfrogramu wybiera się te homofony, które leżą na przecięciu kolumny i wiersza<br />

odpowiadających tym samym w kolejności literom wiadomości właściwej i imitującej właściwą.<br />

Kryptoanalityk nie jest w stanie rozstrzygnąć, która z sensownych wiadomości jest tą właściwą.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.34


Przykład szyfru homofonicznego rzędu drugiego:<br />

Tablica szyfrująca<br />

I O N P W<br />

I 19 10 02 20 01<br />

O 24 17 14 05 07<br />

N 25 12 06 16 22<br />

P 08 13 04 23 09<br />

W 03 21 11 15 18<br />

Tekst właściwy "WINO" szyfrujemy razem z tekstem imitującym właściwy "PIWO" :<br />

W I N O<br />

P I W O<br />

____________________<br />

kryptogram 09 19 11 17<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.35


PODSTAWIENIOWE SZYFRY POLIALFABETYCZNE<br />

(PRZYKŁAD HISTORYCZNY)<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.36


PODSTAWIENIOWE SZYFRY POLIALFABETYCZNE<br />

(MODEL MATEMATYCZNY)<br />

Polialfabetycznym szyfrem podstawieniowym jest szyfr blokowy o długości bloku t nad<br />

alfabetem A o następujących właściwościach:<br />

• przestrzeń kluczy K zawiera wszystkie uporządkowane zbiory t permutacji ( p 1 , p 2 , p 3 , ..., p t ),<br />

przy czym każda permutacja p i jest określona na zbiorze A;<br />

• szyfrowanie wiadomości m = ( m 1 m 2 m 3 ... m t ) ∈ M<br />

za pomocą klucza e = ( p 1 , p 2 , p 3 , ..., p t ) ∈ K<br />

jest zdefiniowane przez E e (m) = ( p 1 (m 1 ) p 2 (m 2 ) p 3 (m 3 ) ... p t (m t )) = ( c 1 c 2 c 3 ... c t ) = c<br />

• przekształcenie deszyfrujące:<br />

D d (c) = (p 1 -1 (c 1 ) p 2 -1 (c 2 ) p 3 -1 (c 3 ) ... p t -1 (c t ))<br />

zaś kluczem deszyfrującym d odpowiadającym kluczowi e jest uporządkowany zbiór t<br />

permutacji odwrotnych:<br />

d = (p 1 -1 , p 2 -1 , p 3 -1 , ..., p t -1 ) ∈ K<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.37


Przykład (szyfr Vigenere’a):<br />

Niech A = { A, B, C, ..., X, Y, Z } oraz t = 3. Wybierając jako klucz e zbiór trzech permutacji:<br />

( p 1 , p 2 , p 3 ) takich, że p 1 przesuwa każdą literę o 3 pozycje w prawo (szyfr Cezara),<br />

p 2 - o 7 pozycji w prawo, zaś p 3 - o 10 pozycji w prawo, uzyskuje się z wiadomości jawnej:<br />

m = THI SCI PHE RIS CER TAI NLY NOT SEC URE<br />

kryptogram:<br />

c = E e (m) = WOS VJS SOO UPC FLB WHS QSI QVD VLM XYO<br />

Zestawienie liczby powtórzeń poszczególnych symboli w tekście jawnym i kryptogramie<br />

wskazuje na pożądane zatarcie pierwotnych częstości ich występowania.<br />

Tekst jawny<br />

E I C R S T H N A L O P U Y<br />

4 4 3 3 3 3 2 2 1 1 1 1 1 1<br />

Kryptogram<br />

O S V L Q W B C D F H I J M P U X Y<br />

4 4 3 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.38


W „zamierzchłych” czasach konieczność zapamiętania klucza przekształcenia<br />

polialfabetycznego (np. klucza szyfru Vigenere’a) musiała się opierać na mnemotechnice. W<br />

związku z tym rolę łatwego do zapamiętania „materiału kluczowego” pełniło z reguły pewne<br />

semantycznie sensowne hasło, z którego usuwano np. spacje i powtarzające się głoski, aby<br />

odtworzyć klucz.<br />

Przykład 1:<br />

Niech tajną frazą będzie zwrot „WSZYSTKIE SZYFRY TO OSZUSTWO” .<br />

Po usunięciu spacji i powtarzających się głosek uzyskujemy klucz kryptograficzny:<br />

„WSZYTKIEFROU”,<br />

a stąd wartości kolejnych 12-tu przesunięć w ramach jednego bloku szyfru Vigenere’a:<br />

{ 21, 18, 25, 24, 19, 10, 8, 4, 5, 17, 14, 20 }.<br />

Przykład 2:<br />

Odpowiednio długie słowo także może pełnić rolę zadowalającego materiału kluczowego, np.:<br />

„DONAUDAMPFSCHIFFAHRTGESELLSCHAFTSKAPITAENSWITWE”.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.39


Szyfry polialfabetyczne są także trudniejsze do przełamania od szyfrów monoalfabetycznych,<br />

lecz „odgadnięcie” długości bloku t sprowadza kryptoanalizę do badania t przekształceń<br />

monoalfabetycznych, przy czym np. do analizy częstotliwościowej zestawiane są podzbiory<br />

symboli kryptogramu określone zależnością:<br />

Test Kasiski’ego:<br />

C i = { c i , c i+t , c i+2t , ..., c i+nt } (i = 1, 2, ..., t -1)<br />

Obserwacja: Powtarzalne fragmenty tekstu jawnego szyfrowane tymi samymi fragmentami<br />

klucza dają w rezultacie identyczne segmenty kryptogramu.<br />

Wniosek: Odstęp pomiędzy powtarzającymi się segmentami kryptogramu powinien być<br />

wielokrotnością długości klucza t.<br />

Metodyka: Po wyznaczeniu zbioru liczb, będących odległościami między powtarzającymi się<br />

segmentami kryptogramu należy wyznaczyć dla nich największy wspólny podzielnik (gcd -<br />

greatest common divisor) , który (po odrzuceniu przypadkowych powtórzeń segmentów w<br />

kryptogramie) wskaże długość bloku (klucza) t.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.40


Wskaźnik zgodności (indeks koincydencji) Friedmana (IC):<br />

IC określa prawdopodobieństwo wystąpienia w kryptogramie dwóch jednakowych liter i<br />

wyliczany jest z zależności :<br />

Σ Fβ (Fβ - 1)<br />

β<br />

IC = ___________________ ,<br />

L ( L - 1 )<br />

gdzie Fβ jest liczbą wystąpień litery β w tekście o długości L zaś sumowanie obejmuje<br />

wszystkie litery alfabetu AC.<br />

Wartość oczekiwana indeksu koincydencji:<br />

1 (L - t ) (t - 1) L<br />

E(IC) = ∗ ∗ k p + ∗ ∗ k r<br />

t (L - 1) t (L - 1)<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.41


gdzie:<br />

L - długość kryptogramu;<br />

t - okres (długość bloku, gdy jest co najmniej równa długości całego kryptogramu, zaś klucz<br />

nie jest nigdy użyty powtórnie, to mamy do czynienia z szyfrem jednorazowym - „one-time<br />

pad”, czyli z przypadkiem szyfru absolutnie bezpiecznego);<br />

k p - miara rozkładu prawdopodobieństwa (częstości) znaków w tekście jawnym<br />

(AM zawiera N symboli):<br />

N<br />

k p = Σ p i 2<br />

i=1<br />

k r - prawdopodobieństwo pojawienia się określonego symbolu<br />

w kryptogramie przy „idealnie” płaskich charakterystykach<br />

częstotliwościowych:<br />

k r = 1/N<br />

Tablica wartości oczekiwanych IC dla długiego tekstu angielskiego<br />

(26 symboli w alfabecie AM)<br />

t 1 2 3 4 5 10 ∞<br />

IC 0,066 0,052 0,047 0,045 0,044 0,041 0,038<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.42


Przykładowe wartości współczynnika k p<br />

Język k p<br />

francuski 0.0778<br />

hiszpański 0.0775<br />

niemiecki 0.0762<br />

włoski 0.0738<br />

angielski 0.0667<br />

rosyjski 0.0529<br />

Przykład wykorzystania IC do oszacowania okresu szyfru :<br />

Tekst angielski (duże litery bez spacji) po zaszyfrowaniu szyfrem podejrzewanym o to, że jest<br />

polialfabetycznym szyfrem okresowym, dał następujący szyfrogram :<br />

"GPSNBMMBOHVBHFTIBWFCFFOQMBZJOHB<br />

GVOEBNFOUBMQPMFJODPNQVUFSTDJFODF"<br />

Długość zaszyfrowanego tekstu L = 63 znaki.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.43


Liczba wystąpień poszczególnych liter w kryptogramie :<br />

FA = FK = FL = FR = 0 FB = 8 FC = FE = FI = FW = FZ = 1<br />

FD = FH = FJ = FN = FP = FQ = FV = 3 FF = 9<br />

FG = FS = FT = FU = 2 FM = 5 FO = 7<br />

Wyliczony na podstawie powyższych danych wskaźnik zgodności :<br />

IC = 0,061<br />

A zatem należy podejrzewać, iż jest to szyfr monoalfabetyczny. Podstawiając d = 1, i zakładając,<br />

iż litera F o największej liczbie powtórzeń odpowiada literze E o największej częstotliwości<br />

występowania, otrzymuje się natychmiast rozwiązanie (gdyż k1 = 1) :<br />

"FORMALLANGUAGESHAVEBEENPLAYINGA<br />

FUNDAMENTALROLEINCOMPUTERSCIENCE"<br />

zaś po uzupełnieniu domyślnymi spacjami :<br />

"FORMAL LANGUAGES HAVE BEEN PLAYING A<br />

FUNDAMENTAL ROLE IN COMPUTER SCIENCE"<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.44


PODSTAWIENIOWE SZYFRY POLIGRAMOWE (WIELOLITEROWE)<br />

W szyfrach poligramowych bloki liter wiadomości jawnej o długości t są zastępowane swoimi<br />

odpowiednikami, dzięki czemu "rozmyciu" (dyfuzji) ulegają cechy statystyczne szyfrowanego<br />

tekstu.<br />

Formalnie odpowiada to zastąpieniu alfabetu wiadomości jawnych A M alfabetem A’ M<br />

zawierającym wszystkie możliwe ciągi t - znakowe utworzone z symboli alfabetu A M . Jeżeli<br />

alfabet A M zawiera N symboli, to alfabet A’ M zawiera symboli N t .<br />

Szyfr Playfaira (1854 r.) :<br />

Kolejne digramy wiadomości jawnej są zastępowane digramami wiadomości tajnej zgodnie z<br />

poniższym algorytmem.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.45


Algorytm szyfrowania<br />

1. W tablicy o rozmiarach 5 x 5 umieścić losowo duże litery alfabetu łacińskiego (oprócz J).<br />

2. Jeśli w ciągu m1, m2,..., mk , wiadomości jawnej występuje digram spełniający warunek :<br />

mi = mi+1,<br />

to w celu usunięcia dubletu wstawić pomiędzy te dwa znaki literę "pustą", np. X.<br />

3. Jeśli uzyskany w ten sposób tekst ma nieparzystą ilość znaków, to uzupełnić go na końcu<br />

literą "pustą".<br />

4. Dla kolejnych digramów dokonać następujących podstawień (utożsamiając litery I i J) :<br />

• jeśli oba znaki digramu leżą w tym samym wierszu tablicy - zastąpić je ich "prawymi"<br />

sąsiadami (na prawo od kolumny 5-tej jest kolumna 1-sza);<br />

• jeśli oba znaki digramu leżą w tej samej kolumnie tablicy - zastąpić je ich "dolnymi"<br />

sąsiadami (poniżej wiersza 5-tego jest wiersz 1-szy);<br />

• w pozostałych przypadkach oba znaki wyznaczają prostokąt (są jego narożnikami), zaś<br />

digram szyfrogramu tworzą znaki znajdujące się w przeciwnych narożnikach tak<br />

utworzonego prostokąta (przy czym znak jest zastępowany narożnikiem z tego samego<br />

wiersza)<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.46


Przykład :<br />

Wiadomość jawna : "CICHOCIEMNI"<br />

Tablica szyfrująca :<br />

V H P K C<br />

L B W R G<br />

F U Y E O<br />

Q Z I S A<br />

M T D N X<br />

CI → PA<br />

CH → VP<br />

OC → AG<br />

IE → SY<br />

MN → TX<br />

IX → AD (uzupełnienie digramu literą pustą „X”)<br />

Wiadomość zaszyfrowana : "PAVPAGSYTXAD"<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.47


Szyfr Hilla (1929 r.) :<br />

Bloki wiadomości jawnej o długości t znaków są przekształcane w bloki kryptogramu o tej<br />

samej długości za pomocą przekształcenia liniowego :<br />

c1 = ( k 11 m 1 + k 12 m 2 + ... + k 1t mt ) (mod n)<br />

c2 = ( k 21 m 1 + k 22 m 2 + ... + k 2t mt ) (mod n)<br />

................................................................................<br />

ct = ( k t1 m 1 + k t2 m 2 + ... + k tt mt ) (mod n)<br />

lub w zapisie macierzowym :<br />

C = K M (mod n),<br />

gdzie C = [ c1 ,c2 ... ct ] T, M = [ m1 ,m2 ... mt ] T<br />

K - kwadratowa macierz współczynników k ij<br />

Przekształcenie deszyfrujące :<br />

M = K -1 C (mod n),<br />

przy czym :<br />

K -1 K (mod n) = I (macierz jednostkowa)<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.48


Przykład :<br />

Niech n = 26, d = 2,<br />

3 2 15 20<br />

K = K-1 =<br />

3 5 17 9<br />

Digram "EG", któremu odpowiada para liczb (4, 6), jest przekształcany na :<br />

3 2 4 24<br />

mod 26 =<br />

3 5 6 16<br />

co odpowiada digramowi "YQ".<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.49


UWAGA !<br />

Szyfr Hilla łatwo przełamać stosując metodę ataku tekstem jawnym.<br />

Załóżmy, że dla powyższego przykładu kryptoanalityk "przechwycił" dwa digramy tekstu<br />

jawnego M1 i M2 , oraz odpowiadające im digramy kryptogramów C1 i C2 . Tworząc<br />

macierze kwadratowe:<br />

M = [ M1 , M2 ] i C = [ C1 , C2 ]<br />

kryptoanalityk wyznacza macierz szyfrowania K (pod warunkiem, że M jest macierzą<br />

nieosobliwą) z zależności :<br />

K = C M -1 (mod n),<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.50


Szyfr pokrewny do szyfru Hilla, wykorzystujący przedstawienie poligramów w systemie<br />

pozycyjnym o podstawie równej mocy alfabetu jawnego :<br />

L-gramy (po zastąpieniu symboli literowych odpowiadającym im liczbom całkowitym z ze<br />

zbioru { 0, 1, 2, ..., N - 1 }, gdzie N jest mocą alfabetu jawnego), traktuje się jako liczby<br />

L-cyfrowe zapisane w systemie pozycyjnym o podstawie N :<br />

( m1 ,m2 ,m3 ,...,mL ) → m1 N L-1 + m2 N L-2 + m3 N L-3 + ... + mL = P<br />

Takie przekształcenie odwzorowuje wzajemnie jednoznacznie zbiór digramów w zbiór<br />

wszystkich całkowitych liczb nieujemnych mniejszych od N L.<br />

Przekształcenie szyfrujące określone jest przez permutację liczb całkowitych ze zbioru :<br />

{ 0, 1, 2, ..., N L - 1 }<br />

Można w tym celu wykorzystać przekształcenia afiniczne, pamiętając o takim doborze<br />

parametrów przekształcenia, aby istniało jednoznaczne przekształcenie odwrotne.<br />

Wtedy liczba odpowiadająca zaszyfrowanemu digramowi wynosi :<br />

C = ( a P + b ) mod ( N L ),<br />

zaś w celu określenia odpowiedniego L-gramu wiadomości tajnej przedstawiamy ją w systemie<br />

pozycyjnym o podstawie N i zastępujemy liczby z poszczególnych pozycji odpowiadającymi im<br />

znakami.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.51


Przykład (L = 2) :<br />

Niech alfabetem jawnym będzie alfabet dużych liter łacińskich bez spacji ( N = 26 ).<br />

Przekształcenie szyfrujące digramy jest określone formułą :<br />

C = ( 159 P + 580 ) mod ( 676 )<br />

Digram "NO" ma odpowiednik liczbowy równy 13 . 26 + 14 = 352<br />

Po zaszyfrowaniu uzyskuje się liczbę:<br />

159 . 352 + 580 (mod 676) = 440<br />

Liczba 440 w systemie o podstawie 26 jest reprezentowana przez:<br />

16 . 26 + 24,<br />

a zatem odpowiednim zaszyfrowanym digramem będzie para "QY".<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.52


BLOKOWE SZYFRY PRODUKTOWE<br />

Koncepcja konstrukcji szyfrów produktowych polega na złożeniu kilku prostych podstawowych<br />

operacji (przestawień, podstawień, przekształceń liniowych, operacji logicznych i<br />

arytmetycznych, operacji w algebrach modularnych, itp.), które samodzielnie nie gwarantują<br />

wystarczającej ochrony informacji, w celu uzyskania złożonej funkcji szyfrującej.<br />

Szyfr produktowy jest złożeniem dwóch lub więcej przekształceń w taki sposób, by ostateczny<br />

algorytm szyfrowania był bardziej bezpieczny od jego składników.<br />

Przykład: Przestawieniowo-podstawieniowy szyfr ADFGVX<br />

Szyfr ten wprowadzono w armii niemieckiej w marcu 1918 roku, zaś przełamany został już na<br />

początku czerwca tego roku przez francuskiego kryptoanalityka Georges’a Painvin.<br />

W pierwszej fazie szyfrowania dokonuje się podstawienia (szyfr monolafabetyczny), przy czym<br />

alfabet wiadomości jawnych zawiera 36 pojedynczych symboli, zaś alfabet wiadomości<br />

zaszyfrowanych to zbiór 36 digramów utworzonych z sześciu liter - ADFGVX.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.53


Kluczem szyfrującym tego szyfru podstawieniowego jest kwadrat o wymiarach 6 x 6, w którym<br />

losowo wpisano 26 liter alfabetu łacińskiego oraz 10 cyfr (od 0 do 9), zaś kolumny i wiersze<br />

tego kwadratu zaetykietowano kolejno symbolami ADFGVX, np.:<br />

A D F G V X<br />

A r 6 n a w h<br />

D l e t k 0 q<br />

F 7 b 2 z d 9<br />

G s m y g o i<br />

V 3 8 u 5 v 1<br />

X f x 4 j c p<br />

Każdy symbol wiadomości jawnej zastępuje się dwoma symbolami, określającymi wiersz<br />

i kolumnę, w której znajduje się ten symbol w „kwadracie szyfrującym” (spacje zostają usunięte<br />

z tekstu jawnego), np.:<br />

tekst jawny<br />

„do not play that song for me at 6 am”<br />

jest zastępowany kryptogramem<br />

„FV GV AF GV DF XX DA AG GF DF AX AG DF GA<br />

GV AF GG XA GV AA GD DD AG DF AD AG GD”<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.54


Druga część szyfru ADFGVX to szyfr przestawieniowy o okresie zależnym od słowa<br />

kluczowego, którego litery (po wyeliminowaniu powtórzeń) stanowią w początkowej fazie<br />

szyfrowania etykiety kolumn nowej tablicy, do której kolejno wpisuje się symbole kryptogramu<br />

uzyskanego w pierwszej części. Jeżeli tym słowem byłoby np. słowo „SINGER”, to<br />

odpowiednia tablica dla przytoczonego kryptogramu uzyskanego z podstawienia wyglądałaby<br />

tak:<br />

S I N G E R<br />

F V G V A F<br />

G V D F X X<br />

D A A G G F<br />

D F A X A G<br />

D F G A G V<br />

A F G G X A<br />

G V A A G D<br />

D D A G D F<br />

A D A G G D<br />

Ostatnia faza szyfrowania polega na przestawieniu powyższych kolumn zgodnie z porządkiem<br />

alfabetycznym i „wypisaniu” tekstu zaszyfrowanego wierszami z tak utworzonej tablicy.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.55


Dla powyższego przykładu:<br />

E G I N R S<br />

A V V G F F<br />

X F V D X G<br />

G G A A F D<br />

A X F A G D<br />

G A F G V D<br />

X G F G A A<br />

G A V A D G<br />

D G D A F D<br />

G G D A D A<br />

Ostateczny kryptogram (skutecznie broniący się przed kryptoanalizą częstotliwościową):<br />

„AVVGFFXFVDXGGGAAFDAXFAGDGAFGVDXGFGAAGAVADGDGDAFDGGDADA”<br />

Wybór takich, a nie innych sześciu liter, był podyktowany względami praktycznymi. Kody<br />

Morse’a dla tych liter na tyle różnią się między sobą, iż łatwo było korygować ewentualne<br />

przekłamania podczas telegraficznej transmisji kryptogramu.<br />

(A ⇒ . _ ; D ⇒ _ . . ; F ⇒ . . _ . ; G ⇒ _ _ . ; V ⇒ . . . _ ; X ⇒ _ . . _ )<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.56


Sieć podstawień-permutacji (SP-network) jest szyfrem produktowym złożonym z pewnej liczby<br />

faz, z których każda zawiera zarówno podstawienia, jak i przestawienia (permutacje).<br />

Iterowany szyfr blokowy charakteryzuje się sekwencyjnym powtarzaniem pewnej wewnętrznej<br />

funkcji, zwanej funkcją cyklu. Parametrami takiego szyfru są:<br />

• r - liczba cykli (iteracji)<br />

• n - długość bloku (w bitach)<br />

• k - długość klucza wejściowego K (w bitach)<br />

Z klucza K tworzy się r podkluczy K i dla każdego cyklu. W celu zapewnienia odwracalności<br />

operacji szyfrowania funkcja cyklu dla każdej wartości podklucza K i i dla każdej możliwej<br />

wartości wejściowej cyklu musi być bijekcją.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.57


Szyfr (schemat) Feistel’a jest szyfrem iterowanym, odwzorowującym tekst jawny o długości 2t<br />

bitów (dwie części o długości t bitów oznaczane jako (L 0 , R 0 )) na tekst zaszyfrowany (L r , R r )<br />

w procesie obejmującym r cykli (zazwyczaj r ≥ 3 i parzyste).<br />

W każdym i-tym cyklu blok wejściowy cyklu (L i-1 , R i-1 ) jest odwzorowywany na blok<br />

wyjściowy cyklu (L i , R i ) zgodnie z nastepującymi zależnościami:<br />

L i = R i-1<br />

R i = L i-1 ⊕ f (R i-1 , K i )<br />

Po ostatnim cyklu dodatkowo podbloki są „zamieniane miejscami”. Dzięki takiej konstrukcji<br />

deszyfrowanie jest realizowane przez identyczny r-cyklowy algorytm, w którym kolejność<br />

stosowania podkluczy K i utworzonych z tego samego klucza K zmienia się na odwrotną (tzn.<br />

najpierw podklucz K r , potem K r-1 , a na końcu K 1 ). Ponadto funkcja f(.) nie musi być<br />

odwracalna.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.58


L 0 R 0<br />

L 0<br />

⊕<br />

f<br />

K 1 R 0<br />

K 2<br />

R 1<br />

L 1<br />

f ⊕<br />

L 2<br />

⊕<br />

f<br />

K 3 R 2<br />

R r-1 L r-1<br />

f ⊕<br />

L r<br />

K r<br />

R r<br />

R r<br />

L r<br />

W schemacie Feistel’a można wyeliminować L i i wtedy:<br />

R i = R i-2 ⊕ f (R i-1 , K i ) R -1 = L 0<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.59


SZYFRY STRUMIENIOWE<br />

Szczególny przypadek szyfrów blokowych, dla którego t = 1.<br />

Zalety:<br />

• przekształcenie może zmieniać się dla każdego symbolu wiadomości jawnej;<br />

• łatwo w nich zapobiec propagacji błędów transmisji;<br />

• użyteczne w sytuacji, gdy dane powinny być przetwarzane symbol po symbolu (np.podczas<br />

wprowadzania symboli tekstu jawnego z konsoli operatorskiej).<br />

Niech K będzie przestrzenią kluczy dla zbioru przekształceń szyfrujących. Ciąg (sekwencja)<br />

symboli e 1 e 2 e 3 ... e i ∈ K jest nazywany strumieniem klucza.<br />

Niech A będzie alfabetem zawierającym q symboli, zaś E e prostym szyfrem podstawieniowym<br />

o długości bloku t = 1 , gdzie e ∈ K.<br />

Niech m 1 m 2 m 3 ... będzie ciągiem znaków wiadomości jawnej, zaś ciąg e 1 e 2 e 3 ... niech będzie<br />

strumieniem klucza.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.60


Szyfr strumieniowy pobiera ciąg znaków wiadomości jawnej i wytwarza ciąg kryptogramu c 1 c 2<br />

c 3 ... , gdzie:<br />

c i = E ei ( m i );<br />

jeżeli d i oznacza odwrotność e i , to przekształcenie deszyfrujące:<br />

D di ( c i ) = m i.<br />

Strumień klucza może być generowany losowo, lub przez algorytm tworzący ten strumień na<br />

podstawie pewnej wartości początkowej, zwanej ziarnem (seed), bądź na podstawie ziarna i<br />

poprzednich symboli kryptogramu. Taki algorytm nazywa się generatorem strumienia klucza.<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.61


Szyfr Vernama:<br />

Szyfr Vernama jest szyfrem strumieniowym zdefiniowanym nad alfabetem binarnym (A={0,1}) .<br />

Przekształcenie szyfrujące:<br />

gdzie:<br />

c i = m i ⊕ k i ( 1≤ i ≤ t ),<br />

⊕ - bitowa operacja exclusive-or (XOR).<br />

Jeżeli strumień klucza jest generowany losowo i nigdy nie jest wykorzystywany powtórnie,<br />

wówczas szyfr Vernama jest określany mianem szyfru jednorazowego (one-time system, onetime<br />

pad). jest to wówczas teoretycznie nieprzełamywalny system szyfrujący (ponadto długość<br />

klucza musi być wówczas co najmniej równa długości wiadomości jawnej).<br />

Z formalnego punktu widzenia szyfr ten składa się z dwóch monoalfabetycznych przekształceń<br />

szyfrujących na alfabecie A:<br />

E 0 - przekształcenia tożsamościowego;<br />

E 1 - inwersji bitowej (binarnej).<br />

Jeżeli k i = 0, to stosuje się E 0 , w przeciwnym przypadku - E 1 .<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.62


Powtórne użycie tego samego strumienia klucza “otwiera furtkę” do skutecznej kryptoanalizy<br />

(np. przez wykorzystanie zjawiska nadmiarowości języka wiadomości jawnej oraz analizę<br />

częstotliwościową), gdyż:<br />

c i = m i ⊕ k i c’ i = m’ i ⊕ k i<br />

c i ⊕ c’ i = m i ⊕ m’ i<br />

Najistotniejszym warunkiem, jaki muszą spełniać generatory strumienia klucza, jest „duża”<br />

wielkość okresu ciągu binarnego przezeń generowanego (a wszystkie takie generatory muszą<br />

być deterministyczne, czyli pseudolosowe, gdyż strumienie klucza generowane po stronie<br />

nadawczej i odbiorczej muszą być identyczne).<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.63


SZYFROWANIE WYKORZYSTUJĄCE WSPÓŁPRACUJĄCE SZYFRATORY<br />

STRUMIENIOWE I BLOKOWE<br />

(Cooperatively Distributed Ciphers - CD)<br />

W 1996 r. Arto Salomaa i Cunsheng Ding zaproponowali schemat szyfrowania, który miał<br />

dzięki kombinacji szyfrów strumieniowych i blokowych skutecznie wyeliminować wady obu<br />

technik szyfrowania symetrycznego i wyeksponować zarazem ich zalety.<br />

System CD składa się z s konwencjonalnych szyfratorów blokowych (wszystkie o tej samej<br />

długości jednorazowo szyfrowanego bloku) oraz tzw. urządzenia sterującego, będącego w<br />

istocie generatorem (pseudo)losowej sekwencji symboli z alfabetu Z s = { 0, 1, ..., s-1 }.<br />

Oznaczając odpowiednio blokowe algorytmy szyfrujące E 0 (k 0 , . ), E 1 (k 1 , . ), ... , E s-1 (k s-1 , . ),<br />

gdzie k 0 , k 1 , ... , k s-1 są kluczami szyfrującymi ustalonymi dla tych algorytmów, w każdym<br />

i-tym cyklu szyfrowania generuje się pseudolosową liczbę z i z alfabetu Z s i szyfruje kolejny blok<br />

wiadomości jawnej zgodnie z regułą:<br />

c i = E zi (k zi , m i ).<br />

W.Chocianowicz – Kryptologia i Zaawansowane Metody Kryptografii– semestr zimowy 2007/2008str.64

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!