Szyfr blokowy

Szyfr blokowy – rodzaj szyfrowania symetrycznego. Polega na szyfrowaniu bloku wejściowego (np. fragmentu pliku) na podstawie zadanego klucza, przekształcając go na blok wyjściowy o takiej samej długości w taki sposób, że niemożliwe jest odwrócenie tego przekształcenia bez posiadania klucza[1].

Szyfr określa para funkcji pobierających 2 argumenty:

  • funkcja szyfrująca pobierająca klucz i wiadomość, a zwracająca szyfrogram
  • funkcja deszyfrująca pobierająca klucz i szyfrogram, a zwracająca wiadomość

Typowe rozmiary bloku oraz kluczy (te dwa rozmiary nie muszą być identyczne) to 64, 128, 192 lub 256 bitów, przy czym klucze mniejsze od 128 bitów nie zapewniają współcześnie bezpieczeństwa.

Ponieważ wiadomości, jakie chcemy zakodować, są zwykle znacznie większe od rozmiaru bloku, musimy używać jakiegoś trybu kodowania. Najbardziej naiwne podzielenie wiadomości na bloki odpowiednich rozmiarów i zakodowanie osobno każdego z nich (ECB) nie zapewnia nam bezpieczeństwa. Główne tryby to:

  • ECB (tryb elektronicznej książki kodowej)
  • XTS
  • LRW
  • CBC (tryb wiązania bloków zaszyfrowanych)
  • CBC-MAC
  • CFB (tryb sprzężenia zwrotnego szyfrogramu)
  • CTR
  • CCM
  • OFB
  • OCB

Niektóre szyfry blokowe to:

Przypisy

  1. Marcin Rogawski: Szyfry strumieniowe w strukturach FPGA (pol.). Wyższa Szkoła Informatyki Stosowanej i Zarządzania. [dostęp 2017-10-02].