Szyfr (inaczej kryptograficzny algorytm szyfrujący) – 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].
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ą 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. 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:
Uczę się języka hebrajskiego. Tutaj go sobie utrwalam.
Zawartość tej strony pochodzi stąd.