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.

home | back | top