CTR (Counter Mode)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 02:35, 12 июня 2016.

Режим Счетчика (Counter Mode-CTR) предполагает возврат на вход соответствующего алгоритма блочного шифрования значения счетчика, накопленного с момента старта. Увеличивая значение счетчика, алгоритм блочного шифрования образует строку битов, которая используется в качестве бегущего ключа шифра Вернама, т.е. к бегущему ключу и блокам исходного сообщения применяются операции XOR. Режим CTR предусматривает следующие операции.

Шифрование в режиме CTR

ВВОД:

ВЫВОД:

Расшифровка в режиме CTR

ВВОД:

ВЫВОД:


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

При отсутствии обратной связи алгоритмы шифрования и расшифровки в режиме CTR могут выполняться параллельно. Это обеспечивает режиму CTR преимущество перед режимами Cipher Feedback (CFB) и Output Feedback (OFB).

Режим CTR

В потоковом режиме шифрования со счётчиком на каждой итерации алгоритма шифрования на вход функции подаётся некое случайное значение Т. Эти входные данные должны быть различны для всех итераций алгоритма в которых блочный шифр использует один и тот же ключ шифрования, поэтому генератор таких значений иногда называют счётчиком (что даёт наиболее простой способ генерации уникальных значений T). На самом деле требование уникальности входных данных функции при определённом значении K будет удовлетворено и в случае использования ГПК (генератора псевдослучайных кодов), но тогда необходим начальный вектор инициализации для ГПК со стороны отправителя и получателя сообщений.

Шифрование в режиме CTR

Таким образом шифротекст в алгоритме режима CTR получается суммированием по модулю 2 очередного блока открытого текста с выходными данными функции . На вход функции подаётся очередное значение Tj счётчика блоков сообщения. Расшифрование происходит также путём суммирования по модулю 2 очередного блока шифротекста и результата преобразования функцией очередного значения счётчика Tj. Обе операции за- и расшифрования в режиме CTR можно производить параллельно и независимо для всех блоков. Кроме того в этом режиме также отсутствует проблема последнего блока. Это видно из уравнений режима CTR:

CTR зашифрование:

, где
, где

CTR расшифрование:

, где
, где

В уравнениях приняты следующие обозначения:

– очередной, j-ый блок открытого текста.
– очередной, j-ый блок шифротекста.
- r старших бит (most significant bits) двоичного числа X

Особенности

Режим CTR обладает всеми достоинствами режима ECB (параллельное исполнение, простота и возможность непосредственного за- и расшифрования любого блока сообщения по отдельности и независимо от других блоков). Но кроме того, режим CTR исправляет все недостатки шифрования в режиме электронной кодовой книги: одинаковые блоки открытого текста теперь уже не будут преобразованы в одинаковые блоки шифротекста; отпадает необходимость дополнения последнего блока шифротекста. К тому же в этом режиме (как в любом поточном режиме) используется только функция зашифрования , а для некоторых блочных шифров (например для AES – американского стандарта блочного шифра), это даёт некоторый выигрыш в производительности. Вот почему этот режим зачастую является наиболее эффективным.