Klasyczne techniki szyfrowania
(poznajemy po to by znać możliwe ataki, z jakimi należy się liczyć)
STEGANOGRAFIA
= ukrycie faktu istnienia komunikatu
KRYPTOGRAFIA
= uczynienie komunikatu nieczytelnym dla osób niepowołanych
STEGANOGRAFIA
Przykłady klasyczne:
•
napis na wygolonej głowie
•
ukrycie komunikatu w niewinnym tekście
– np. sekwencja pierwszych liter kolejnych wyrazów
– zaznaczanie wybranych liter
– np. ołówkiem; stają się widoczne pod pewnym kątem
– ślady ukłucia szpilką
– widać pod światło
•
niewidzialny atrament (odczyt na gorąco i/lub po obróbce chemicznej)
•
taśma korekcyjna maszyny do pisania (napis między liniami)
STEGANOGRAFIA współczesna
Współczesne odpowiedniki elektroniczne:
•
ukrycie komunikatu w najmniej znaczących bitach
•
ukrywanie w grafice
– zmiana jednego bitu w najmniej znaczącym 24-bitowym punkcie
standardowego zdjęcia cyfrowego 2048 × 3072 pkt,
umożliwia ukrycie 2.3 MB komunikatu
Wady:
•
duży koszt i pracochłonność
•
odkrycie systemu niweczy jego wszelką wartość
Zalety:
•
ukrywa sam fakt komunikowania się
•
ukrywa fakt istnienia tajnych (=ważnych) wymienianych informacji
KRYPTOGRAFIA KLASYCZNA
TECHNIKI PODSTAWIANIA:
•
Szyfr Cezara (przesunięcie)
•
Podstawianie jednoznaków
•
Podstawianie wieloznaków
•
Kompresja (zip) i przesunięcie rozszerzone na całe kody ASCII
•
Szyfrowanie wieloliterowe (playfair) – używane rogi w kwadracie 5 × 5
•
Szyfrowanie wielo-alfabetowe:
– zestaw powiązanych reguł podstawiania jednoalfabetowego
Możliwe ataki:
•
brute force
•
analiza częstości występowania liter
Szyfry wieloalfabetowe
Szyfr Vigenere’a
•
26 szyfrów Cezara ułożone w tablicy 26 × 26
•
dla litery kluczowej X i litery tekstu jawnego Y
wybieramy literę z X-tego wiersza i Y-kowej kolumny
•
potrzebny jest klucz o długości równej długości komunikatu
– na ogół zastępowany cyklicznym powtórzeniem
– unikanie cyklicznych powtórzeń – klucz automatyczny:
∗
możliwe użycie kryptogramu w roli klucza
∗
dołączenie do słowa kluczowego tekstu jawnego
(ale wtedy klucz ma ten sam rozkład gęstości liter)
Szyfry wieloalfabetowe – cd.
Szyfr Vermana
•
bardzo długi lecz powtarzający się klucz
Szyfr Mauborgne
•
losowy klucz o tej samej długości co komunikat
•
konieczność posiadania i strzeżenia losowego klucza
przez nadawcę i odbiorcę
Możliwe ataki:
•
brute force
•
analiza częstości występowania liter
Szyfrowanie za pomocą XOR
Operacja XOR
•
definicja = dodawanie modulo 2
•
własności
– a ⊕ 0 = a
– a ⊕ a = 0
– a ⊕ b = b ⊕ a
– (a ⊕ b) ⊕ c = a ⊕ (b ⊕ c)
– (a ⊕ b) ⊕ b = a
Dla ciągów a = ha
1
, a
2
, . . . , a
n
i i b = hb
1
, b
2
, . . . , b
n
i kładziemy:
ha
1
, a
2
, . . . , a
n
i ⊕ hb
1
, b
2
, . . . , b
n
i = ha
1
⊕ b
1
, a
2
⊕ b
2
, . . . , a
n
⊕ b
n
i
i mamy te same własności co wyżej.
Szyfrowanie:
text.jawny
⊕ klucz = kryptogram
Deszyfrowanie:
kryptogram ⊕ klucz = text.jawny
One–time pad
Losowo wybrany klucz
k = hk
1
, k
2
, . . . , k
n
i
jest XORowany z tekstem jawnym.
•
kryptogram jest wtedy też losowym ciągiem bitów
•
bez znajomości klucza żadna informacja o tekście jawnym nie może być
wydedukowana z kryptogramu
– bez względu na moc obliczeniową
– mamy tu bezpieczeństwo doskonałe
One–time pad: PROBLEMY z kluczem
•
musi być wcześniej znany obu stronom
•
musi być przechowywany bezpiecznie
•
musi być naprawdę losowy
•
musi być co najmniej tak długi jak przekazywany tekst
•
powinien być używany tylko jeden raz (one–time pad)
bez powtórzeń cyklicznych (gdy jest za krótki)
– w przypadku powtórzeń klucza n-bitowego k
1
k
2
. . . k
n
mamy:
c
j
⊕c
j+n
= (a
j
⊕k
j
)⊕(a
j+n
⊕k
j+n
) = (a
j
⊕k
j
)⊕(a
j+n
⊕k
j
) = a
j
⊕a
j+n
co pozwala wychwycić regularności w kryptogramie
(bo takie same są w tekście jawnym).
METODY TRANSPOZYCYJNE
METODY TRANSPOZYCYJNE – permutacja liter tekstu jawnego
Przykłady:
•
ustalona permutacja powtarzana cyklicznie na blokach tekstu
•
technika płotu
– tekst jawny zapisuje się jako ciąg kolumn
– a następnie transponuje w tekst wierszami
•
Playfair jako szyfr przestawieniowy
Wady:
•
zostaje ta sama częstość liter i łatwo rozpoznać, że to szyfr transpozycyjny
Zwiększanie bezpieczeństwa poprzez:
•
wieloetapowość transpozycji
•
użycie razem z technikami podstawieniowymi
MASZYNY ROTOROWE
(II WW, Enigma)
•
Zestaw niezależnie obracających się cylindrów,
przez które mogą przepływać impulsy elektryczne.
•
Każdy cylinder ma zestaw:
– 26 styków wejściowych
– 26 wyjściowych
– wewnętrzne przewody łączące w pary te styki
•
Każdy styk odpowiada jakiejś literze
– pojedynczy cylinder definiuje podstawienie jednoalfabetowe
Działanie ENIGMY
•
Po każdym wciśnięciu klawisza wprowadzającego literę:
– cylinder przesuwa się o jedną pozycję
– i wewnętrzne połączenia też się przesuwają.
Definiowany jest więc inny szyfr połączenia jednoalfabetowego.
•
Po wprowadzeniu 26 liter cylinder powróci do pozycji wyjściowej
– daje to algorytm podstawienia wieloalfabetowego z okresem 26.
ENIGMA jako system wielocylindrowy
Systemy wielocylindrowe:
•
styki wyjściowe jednego cylindra przylegają
do styków wejściowych następnego.
•
cylinder najdalszy od operatora obraca się najszybciej
– o jedna pozycję na każdą literę wprowadzoną
•
kolejne cylindry obracają się o jedną pozycję
na każdy pełny obrót dalszego cylindra
Bezpieczeństwo ENIGMY
liczba cylindrów
liczba alfabetów
n
26
n
1
26
2
676
3
17 576
4
456 976
5
11 881 376
6
308 915 776
7
8 031 810 176
8
208 827 064 576
9
5 429 503 678 976
10
141 167 095 653 376