Блочные шифры шифруют целые блоки информации (от 4 до 32 байт) как единое целое. Характерной особенностью блочных криптоалгоритмов является тот факт, что в ходе своей работы они производят преобразование блока входной информации фиксированной длины и получают результирующий блок того же объема, но недоступный для прочтения сторонним лицам, не владеющим ключом. Таким образом, схему работы блочного шифра можно описать функциями Z=EnCrypt(X,Key) и X=DeCrypt(Z,Key). Ключ Key является параметром блочного криптоалгоритма и представляет собой некоторый блок двоичной информации фиксированного размера. Исходный (X) и зашифрованный (Z) блоки данных также имеют фиксированную разрядность, равную между собой, но необязательно равную длине ключа.
В большинстве блочных алгоритмов симметричного шифрования используются следующие типы операций:
1. Табличная подстановка, при которой группа битов отображается в другую группу битов. Это так называемые S-box.
2. Перемещение, с помощью которого биты сообщения переупорядочиваются.
3. Операция сложения по модулю 2, обозначаемая XOR или .
4. Операция сложения по модулю 232 или по модулю 216.
5. Циклический сдвиг на некоторое число битов. Большинство блочных алгоритмов основано на использовании сети Фейштеля Плюсы блочных алг-в: Быстрота работы. Отсутствие статистической корреляции между битами выходного потока блочного шифра.
Стойкие блочные алгоритмы: IDEA (128-битовый ключ для шифрования данных блоками по 64 бита), CAST128, BlowFish, ГОСТ 28147 (длина блока равна 64 битам, длина ключа равна 256 битам, количество раундов равно 32, алгоритм представляет собой классическую сеть Фейштеля), TwoFish, MARS.
Криптоалгоритм именуется идеально стойким, если прочесть зашифрованный блок данных можно только перебрав все возможные ключи, до тех пор, пока сообщение не окажется осмысленным.
Таким образом, на функцию стойкого блочного шифра Z=EnCrypt(X,Key) накладываются следующие условия:
1. Функция EnCrypt должна быть обратимой.
2. Не должно существовать иных методов прочтения сообщения X по известному блоку Z, кроме как полным перебором ключей Key.
3. Не должно существовать иных методов определения каким ключом Key было произведено преобразование известного сообщения X в сообщение Z, кроме как полным перебором ключей.
Поскольку операция зашифровки или расшифровки отдельного блока в процессе кодирования пакета информации выполняется многократно, а значение ключа и/или значение необратимых функций Vi(Key) от ключа остается неизменным, то иногда становится целесообразно заранее однократно вычислить данные значения и хранить их в оперативной памяти совместно с ключом. Поскольку эти значения зависят только от ключа, то они в криптографии называются материалом ключа. Необходимо отметить, что данная операция никоим образом не изменяет ни длину ключа, ни криптостойкость алгоритма в целом. Здесь происходит лишь оптимизация скорости вычислений путем кеширования (англ. caching) промежуточных результатов. Описанные действия носят название расширение ключа (англ. key scheduling)