Блочные шифры

Блочные шифры Криптография

Блочные алгоритмы шифрования применяются, пожалуй, чаще, чем любые другие шифры. Блочный шифр выполняет операции над блоками — порциями данных фиксированного размера. Обычно размер блока составляет 64 бита (8 байт) или 128 бит (16 байт), но некоторые алгоритмы используют и другие значения. Блочный шифр всегда преобразует определенный блок открытого текста в один и тот же шифр-текст независимо от того, какие данные были зашифрованы до этого.

Так как размер шифруемого сообщения не всегда кратен размеру блока, возникает проблема дополнения, имеющая несколько решений. Можно, например, передавать в незашифрованном виде размер полезной части зашифрованных данных и после расшифровки лишние байты просто отбрасывать. На практике же часто применяют другой способ.

Читайте: Как заработать на инвестициях в искусственный интеллект? Краудфандинг Daisy от компании EndoTech. Обзор и отзывы о смарт-контракте

Если алгоритм оперирует 8-байтовыми блоками данных, а в последнем блоке, например, только 3 байта полезных данных, то все неиспользуемые байты, кроме самого последнего, можно заполнить любым значением, а в последнем байте записать число, равное количеству неиспользуемых байтов. Тогда, получив и расшифровав все блоки, необходимо отбросить с конца столько байт, сколько указано в последнем байте последнего блока. Правда, если исходное сообщение имело длину, кратную размеру блока, то возникает некоторая сложность, т. к. требуется добавить 0 байт, и последний байт должен содержать число байт дополнения. Для разрешения этой проблемы при зашифровании добавляется новый блок, последний байт которого содержит размер блока. Дополнительный блок будет целиком отброшен при расшифровании.

Режимы блочных шифров

Блочные шифры быть использованы в нескольких режимах

  • режим простой замены (Electronic CodeBook, ЕС В);
  • с зацеплением блоков шифртекста (Cipher Block Chaining, С ВС); О с обратной связью по шифртексту (Cipher FeedBack, CFB);
  • с обратной связью по выходу (Output FeedBack, OFB);
  • по счетчику (Counter);
  • с зацеплением блоков открытого текста (Plaintext Block Chaining, РВС);
  • с обратной связью по открытому тексту (Plaintext FeedBack, PFB);
  • с усиленным сцеплением блоков шифртекста (различные модификации режима СВС);
  • с обратной связью по выходу и нелинейной функцией (Output FeedBack with Nonlinear Function, OFBNLF);
  • по счетчику с нелинейной функцией (Counter with Nonlinear Function, CNLF).

Этот список далеко не полный и может быть расширен чуть ли не до бесконечности. Каждый режим имеет свои особенности: он может требовать те или иные дополнительные операции, быть устойчивым или, наоборот, неустойчивым к определенным атакам, лучше или хуже восстанавливаться при сбоях и т. д. Так, например, режим простой замены рекомендуется использовать только для шифрования коротких сообщений, содержащих данные, близкие к случайным (такие как ключи шифрования). Детальное описание режимов применения блочных шифров можно найти в различных изданиях, посвященных криптографии.

Оцените статью
Добавить комментарий