Szyfr (inaczej kryptograficzny algorytm szyfrujący) – jest to funkcja matematyczna wykorzystywana do szyfrowania tekstu jawnego lub jego deszyfrowania. Zazwyczaj jedna funkcja wykorzystywana jest do szyfrowania, a inna do deszyfrowania wiadomości. Wiadomość przed zaszyfrowaniem nazywana jest tekstem jawnym, zaś wiadomość zaszyfrowaną nazywamy szyfrogramem. Proces zamiany tekstu jawnego na szyfrogram nazywamy szyfrowaniem[1].
Spis treści |
Algorytmem ograniczonym nazywamy taki algorytm, który zapewnia bezpieczeństwo szyfrogramu tylko wtedy, gdy nie jest znana postać algorytmu (znajomość algorytmu pozwala odszyfrować szyfrogram). Algorytmy te są popularne w zastosowaniach, gdzie wysoki poziom bezpieczeństwa nie jest wymagany[1].
Algorytm z kluczem to taki, w którym do zaszyfrowania oraz odszyfrowania wiadomości wykorzystywane są klucze. W przeciwieństwie do algorytmów ograniczonych, bezpieczeństwo wiadomości oparte jest na kluczu. W przypadku wielu algorytmów klucz szyfrujący jest inny niż klucz deszyfrujący[1].
Wyróżniamy dwa rodzaje algorytmów kryptograficznych z kluczem[1]:
Szyfry historyczne musiały umożliwiać szyfrowanie i deszyfrowanie przez człowieka, a więc opierać się na relatywnie prostych operacjach. Współczesne komputery są o kilkanaście rzędów wielkości szybsze w obliczeniach od ludzi i potrafią złamać praktycznie każdy tego typu szyfr. Istnieją jednak przykłady szyfrów, które są możliwe do stosowania przez człowieka bez użycia komputerów i zapewniają pewien sensowny poziom bezpieczeństwa. Warto zwrócić uwagę na fakt, że zwykle siatka szpiegowska w obcym kraju może mieć utrudniony dostęp do sprzętu komputerowego, nadal jednak musi być w stanie przesyłać bezpiecznie zaszyfrowane wiadomości. Przykładami takich szyfrów są np.: szyfr z kluczem jednorazowym (ang.) one time pad, szyfry podstawieniowe dla krótkich wiadomości, a nawet szyfr Solitaire opisany w powieści pt. "Cryptonomicon" autorstwa Neala Stephensona.
Wszystkie wymienione niżej szyfry nie mają obecnie żadnego praktycznego znaczenia: