I. Algorytm symetryczny to taki algorytm, który korzysta z jednego tajnego klucza do szyfrowania i deszyfrowania wiadomości. Wymaga on znalezienia bezpiecznej drogi przesyłu klucza. Szyfry symetryczne oparte są na operacjach odwracalnych.
Podstawowymi warunkami bezpieczeństwa klucz są:
-Klucz musi być dłuższy od szyfrowanej wiadomości
-Klucz musi być generowany w pełni losowo
-Klucz może być wykorzystany maksymalnie raz
-Klucz musi być przesyłany inną drogą niż szyfrogram
II. Algorytm asymetryczny wykorzystuje parę kluczy, jeden do szyfrowania i drugi do deszyfrowania (niektóre algorytmy dopuszczają możliwość ich zamiany). Oba klucze generowane są wg reguł matematycznych, wynegocjowanych wiadomości oraz często liczb losowych, dużych liczb pierwszych lub wysoce rozwiniętej liczby Pi. Uzyskane klucze są od siebie uzależnione, ale w założeniu nie można odtworzyć jednego na podstawie drugiego.
Jeden z kluczy staje się kluczem prywatnym (tajnym) a drugi kluczem publicznym. W zależności od zastosowania algorytmu (do szyfrowania połączeń lub do uwierzytelniania) kluczem publicznym może być klucz szyfrujący lub deszyfrujący.
Algorytmy asymetryczne wymagają bardziej skomplikowanych obliczeń niż algorytmy symetryczne, dlatego najczęściej są wykorzystywane do bezpiecznego ustalenia klucza symetrycznego. Następnie transmisja odbywa się za pomocą szyfrogramów uzyskanych w sposób symetryczny.
Najczęściej stosowane algorytmy:
Symetryczne |
Asymetryczne |
DES, 3DES, AES, Cezar, XOR |
RSA, DSA, ElGammal |
III. Algorytmy szyfrujące można podzielić na algorytmy blokowe i strumieniowe. Algorytmy blokowe operują na bloku danych o z góry określonej długości, natomiast algorytmy strumieniowe generują szyfrogram w czasie rzeczywistym. Można powiedzieć, że algorytm strumieniowy jest szczególnym przypadkiem algorytmu blokowego, w którym długość bloku wynosi 1.
IV. Funkcje skrótu (Hash) to jednokierunkowe funkcje, generujące ciąg liczbowy zawsze tej samej długości, na podstawie zmiennych argumentów wejściowych. Znajdują zastosowanie w kontroli integralności danych (tak jak CRC), w systemach uwierzytelniania jako skróty haseł (hasła nie są przechowywane w sposób jawny), autoryzacji połączeń (np. SASL wykorzystywany w komunikacji Jabber'owej) etc.
Najpopularniejszymi funkcjami skrótu są MD5(coraz rzadziej) i SHA.
Przykładowy hash:
sha1 - 4150953a511f9f6d74e17d5ac22e8be54e9fab56
md5 - 3c130ea5d8d2d3daca7f6808cdf0f148