wtorek, 13 marca 2012

Kryptografia.


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).


[1] Rogowski J., Wykłady z kryptografii

Brak komentarzy:

Prześlij komentarz