Kryptografia jest nauką o układaniu systemów kryptograficznych
(szyfrowaniu). W przeciwieństwie do steganografii nie ma na celu ukrycia
istnienia wiadomości ale ukrycie jej znaczenia.
Najbardziej znanym w historii
kryptografii podziałem szyfrów jest podział na dwie grupy: szyfry
podstawieniowe oraz szyfry przestawieniowe[1].
Szyfrem
podstawieniowym nazywamy taki szyfr, w którym każdy znak w tekście
szyfrowanym zostaje zastąpiony innym, umownym znakiem ale nie zmienia swojego
miejsca w tekście. Takie podstawienie powoduje, iż tekst taki nie jest zrozumiały
dla nikogo oprócz odbiorcy, który po odwróceniu podstawienia otrzymuje
oryginalną wiadomość.
Szyfrem
przestawieniowym nazywamy szyfr, który tworzony jest poprzez przestawienie
kolejności znaków w tekście szyfrowanym. Z tekstu szyfrowanego tworzony jest
anagram.
Istnieją również połączenia obu
typów szyfrów tworząc tzw. szyfry mieszane.
Współczesna
kryptografia nie stosuje szyfrów przestawieniowych z uwagi na pracochłonne i
kłopotliwe przestawianie kolejności liter w długich tekstach. Z kolei anagramy
tekstów krótkich są bardzo łatwe do odczytania. Więcej możliwości dają
natomiast szyfry podstawieniowe, które możemy podzielić na:
-
szyfry monoalfabetyczne – dla każdego znaku alfabetu jawnego
przyporządkowany jest jeden ustalony znak alfabetu tajnego
- szyfry homofoniczne – dla każdego
znaku alfabetu jawnego przyporządkowana jest grupa znaków alfabetu tajnego
-
szyfry polialfabetyczne – do szyfrowania używanych jest wiele alfabetów
tajnych. Za pomocą jednego z tych alfabetów, wybranego w określony sposób,
kodowany jest jeden znak z tekstu jawnego.
- szyfry poligramowe – szyfrowane są
grupy znaków. Dla każdej grupy znaków z tekstu jawnego przyporządkowana jest
grupa z tekstu tajnego
Najmniej
bezpiecznymi z szyfrów podstawieniowych są szyfry monoalfabetyczne. W prosty
sposób można je złamać za pomocą analizy częstości występowania znaków w
tekście zaszyfrowanym i porównaniu jej do częstości występowania znaków w danym
języku.
Odpowiednie jednak zastosowanie
analizy częstości pozwala na złamanie również szyfrów homofonicznych,
polialfabetycznych oraz poligramowych.
Przez
wiele lat rozwoju kryptografii wykorzystywano tylko takie algorytmy, w których
zarówno szyfrowanie jak i deszyfrowanie odbywało się przy użyciu tego samego
klucza. Pojawiał się w związku z tym problem dystrybucji klucza. Musiał on być
bezpiecznie przekazywany, tak aby znany był tylko nadawcy oraz odbiorcy
wiadomości. Rozwiązanie tego problemu przyniósł dopiero wiek XX, kiedy to
pojawiły się szyfry, w których szyfrowanie i deszyfrowanie odbywało się przy
użyciu odmiennych kluczy.
W
związku z tym pojawił się nowy podział szyfrów:
-
szyfry symetryczne – szyfrowanie i deszyfrowanie wiadomości odbywa się
za pomocą tego samego klucza,
-
szyfry asymetryczne – szyfrowanie wiadomości odbywa się za pomocą klucza
publicznego, zaś do odszyfrowania używany jest klucz prywatny.
Era
dynamicznego rozwoju komputerów przyczyniła się równocześnie do ogromnego
postępu w dziedzinie kryptografii i zmieniła dotychczasowe metody szyfrowania.
Podstawową zmianą było znaczne przyspieszenie samego procesu szyfrowania.
Dotychczas używane metody oraz konstruowane maszyny szyfrujące były ogromnym
ograniczeniem dla samej złożoności algorytmów szyfrujących. Przy użyciu
komputera możliwa jest symulacja dowolnej maszyny szyfrującej. Skraca to
znacznie czas szyfrowania, jak również sam proces konstrukcji urządzenia.
Możliwa jest przy tym nawet symulacja urządzenia, którego fizyczne wykonanie
byłoby niemożliwe.
Druga zasadnicza zmiana dotyczyła
sposobu szyfrowania. Nastąpiło przejście z systemu szyfrowania liter i znaków
na używany w systemach komputerowych system binarny. Opracowany został system
przekształcania liter i znaków na ciągi zer i jedynek, znany obecnie jak kod
ASCII. Po zastąpieniu ciągu znaków za pomocą kodu, proces samego szyfrowania
jest identyczny jak wcześniej – przy pomocy klucza oraz algorytmu. Różnica
polega natomiast na sposobie zapisywania – podstawowym elementem jest bit a nie
znak.
W związku z użyciem komputerów
pojawiła się kolejna, współczesna klasyfikacja szyfrów:
-
szyfry blokowe – szyfrują operując na blokach tekstu jawnego (ciągu
binarnego) określonej długości,
-
szyfry strumieniowe – szyfrują pojedyńcze bity.
Szyfry
blokowe są procedurami szyfrującymi niewielkie bloki danych. Składają się
one z kilkunastu prostych rund, w trakcie których wykonywane są po sobie różne
proste operacje na bloku (przesunięcia, dodawanie, mnożenia itd.). Już po kilku
rundach szyfr taki jest bardzo trudny do przeanalizowania.
Szyfry strumieniowe składają się z generatora ciągu kluczowego oraz
elementu dodającego bity klucza do bitów tekstu jawnego. W taki sposób powstaje
ciąg zaszyfrowany. We współczesnych
szyfrach najczęściej stosowane jest dodawanie modulo 2 (XOR).
Brak komentarzy:
Prześlij komentarz