Szyfry Blokowe
Szyfry blokowe operują na większych partiach danych (nazywanych blokami), które szyfrowane są kolejno, jeden po drugim. Podczas szyfrowania dane wejściowe są dzielone na bloki równej długości, a następnie każdy z tych bloków jest przetwarzany przez kolejne funkcje z wykorzystaniem sekretnego klucza. Zarówno długość bloku danych, jak i klucza oraz kolejne operacje wykonywane na danych są określone przez konkretny algorytm. W procesie dekrypcji używa się funckji odwrotnych.
Algorytmy szyfrów blokowych często umożliwiają mieszanie danych z paru bloków i ich wspólne szyfrowanie, w celu zapewnienia większego bezpieczeństwa (tak działa na przykład szyfr AES w trybie CBC).
Działanie szyfrów blokowych można przedstawić jako efektywne i deterministyczne funkcje, które permutują zawartość kolejnych bloków danych (czyli mieszają wszystkie bity w bloku). Funkcje permutujące muszą działać w sposób pseudolosowy, a ich dane wyjściowe powinny być nierozróżnialne od danych czysto losowych. W celu odszyfrowania zakodowanych wiadomości, należy zastosować odpowiednie permutacje odwrotne. Permutacje odwrotne muszą być porównywalnie efektywne.