Ludzie od zawsze potrzebowali ukrywać
jakieś informacje. Kryptografia była znana już za czasów Cesarstwa Rzymskiego,
a wiadomości były szyfrowane. Oczywiście dziś algorytm taki jest banalny,
jednakże w swoich czasach spełniał dobrze swą funkcję. Polegał on na
zastąpieniu każdej litery w tekście jawnym literą znajdującą się o pewną
liczbę pozycji dalej w alfabecie.
W wieku siedemnastym kryptografia pojawiła się w zastosowaniach
wojskowych i była używana aż do wieku dwudziestego. Były to jednak proste
szyfry podstawieniowo - przestawieniowe. Problem był w tym, że ujawnienie
metody szyfrowania czyniło ją niezdatną do użytku. Tak jak to było w
przypadku Enigmy, wystarczyło zbudować kopię, by złamać niemieckie szyfry.
Zatem brak informacji o historycznych systemach kryptograficznych wyjaśnia
fakt konieczności całkowitego utajniania używanych metod szyfrowania.
Powszechne były też metody steganofraficzne,
takie jak zaznaczanie liter, pisanie niewidzialnym atramentem, czy nakłuwanie
szpilką liter.
Następnie powstawały kolejne coraz bardziej
skomplikowane szyfry. Rozwój kryptografii symetrycznej postępował dosyć
szybko. Powstały szyfry jedno- i wielo-alfabetowe, szyfrowanie wieloliterowe,
techniki transpozycyjne-omówione na tej stronie, ale nie były to jedyne
metody utajniania informacji. Bardzo powszechne były maszyny rotorowe,
jak wspomniana już wcześniej Enigma, ale również Purple używana przez
Japonię.
W latach 60 IBM zaczął prace nad projektem
krytograficznym zakończone utworzeniem algorytmu Lucifer. Następnie
na zapotrzebowanie Narodowego Biura Standardów w 1973r. Został udoskonalony
algorytm Lucifer i w 1977r. zatwierdzono standard szyfrowani
danych DES, jednakże ze zmniejszonym rozmiarem klucza.
Algorytmemm, który miał zastąpić DES
jest IDEA. Jest to blokowy szyfr konwencjonalny, stosujący 128-bitowy
klucz do szyfrowania w blokach po 64 bity. Wchodzi między innymi w skład
PGP (Pretty Good Privacy), którego autorem jest Phil Zimmermann.
Umożliwia zapewnienie poufności i uwierzytelnianie. Czyli nadaje się
do stosowania w poczcie elektronicznej i przy przechowywaniu plików.
Oblicze kryptografii zmieniło się, kiedy
w 1976 roku Diffie i Hellman przedstawili nowy algorytm szyfrowania
danych oparty na kluczach publicznych. Dawało to możliwość zaszyfrowania
informacji przez dowolna osobę za pomocą klucza jawnego, natomiast odszyfrować
mogła ją tylko osoba mająca swój klucz prywatny, zwjązany z kluczem
jawnym. Wyliminowano potrzebę komunikacji się użytkowników celem wymiany
klucza.
Powstały takie algorytmy jak MD4
stworzony przez Rona Rivesta w 1990 roku, a poprawiony dwa lata później,
w którym to roku powstał też algorytm MD5 tego samego autora.
Kolejnym algorytmem był SHA utworzony w 1993r. przez Narodowy
Instytut Standardów i Technologii USA. Jest oparty na MD5, a jego budowa
jest podobna do MD4.
2 stycznia 1997r. NIST ogłosił poszukiwania
nowego standardu szyfrowania danych AES (Advanced Encryption
Standard), określając minimalne wymogi następująco:
- dokumentacja szyfru musi być powszechnie dostępna
- szyfr ma należeć do grupy blokowych szyfrów symetrycznych
- projekt szyfru musi zakładać możliwość rozszerzenia długości klucza
w razie takiej potrzeby
- szyfr musi być łatwy do implementacji zarówno sprzętowej jak i programowej
- nowy szyfr ma być bardziej efektywny oraz bardziej bezpieczny niż
3-DES, czyli: długość klucza to 128, 192 lub 256 bitów, a wielkość
bloku: 128, 192 lub 256 bitów.
Spośród wszystkich projektów, najlepszą ocenę uzyskał Rijndael
i został wybrany nowym standardem szyfrowania danych (AES). Obie
nazwy są obowiązujące. Rijndael jest blokowym szyfrem konwencjonalnym,
pracującym na blokach o długości 128, 192 oraz 256 bitów. Dozwolone
są również długości 160 oraz 224 bity, ale nie są one uznawane jako
standard. Identycznej długości mogą być klucze.
Wszelkie transformacje algorytmu Rijndael
są wykonywane na poziomie macierzy stanów. Macierz ta zbudowana jest
z czterech wierszy oraz z pewnej ilości kolumn. Wielkość macierzy jest
zależna od długości bloku. Elementami macierzy są poszczególne bajty
tworzące blok, oznaczane jako S[r,c], gdzie r to numer
wiersza, a c numer kolumny. Ilość iteracji wykonywanych przez
szyfr zależna jest od długości klucza i bloku.
Większość z przedstawionych tu sposobów
szyfrowania jest opisana na kolejnych stronach. Nie został opisany system
PGP oraz algorytm Rijndael, ale trochę informacji o tym
drugim znalazło się powyżej.
Kryptografia będzie się rozwijać, ze
względu na ciągłe udoskonalanie systemów komputerowych, a co za tym
idzie zwiększa się ich moc obliczeniowa, a to oznacza knieczność poszukiwania
nowych bądź udoskonalania już istniejących sposobów ochrony danych. |