Московский государственный университет имени М.В.Ломоносова
Опубликован: 28.11.2014 | Доступ: свободный | Студентов: 1392 / 127 | Длительность: 23:26:00
ISBN: 978-5-9556-0163-2
Лекция 2:

Алгоритм AES. Режимы выполнения алгоритмов симметричного шифрования. Создание случайных чисел

Режимы выполнения алгоритмов симметричного шифрования

Для симметричных блочных алгоритмов шифрования определено четыре режима выполнения.

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

CBC – Cipher Block Chaining – на вход алгоритму шифрования подается результат операции XOR предыдущего блока зашифрованного сообщения и следующего блока незашифрованного сообщения. Типичное применение – шифрование больших сообщений.

CFB – Cipher Feedback – при каждом вызове алгоритма обрабатывается J битов входного значения. Предыдущий зашифрованный блок используется в качестве входа в алгоритм; к J битам выхода алгоритма и следующему незашифрованному блоку из J битов применяется операция XOR, результатом которой является следующий зашифрованный блок из J битов. Типичное применение – шифрование потока небольших сообщений в режиме реального времени, когда нецелесообразно ждать завершения формирования всего сообщения.

OFB – Output Feedback – аналогичен CFB, за исключением того, что на вход алгоритма при шифровании следующего блока подается результат шифрования предыдущего блока; только после этого выполняется операция XOR с очередными J битами незашифрованного сообщения. Типичное применение – потоко ориентированная передача по зашумленному каналу, в котором возможны потери пакетов.

Режим ECB

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

Режим ЕСВ идеален для небольшого количества данных, например, для шифрования ключа сессии.

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

Режим CBC

Для преодоления недостатков ECB используют способ, при котором одинаковые незашифрованные блоки преобразуются в различные зашифрованные. Для этого в качестве входа алгоритма используется результат применения операции XOR к текущему незашифрованному блоку и предыдущему зашифрованному блоку.

Для получения первого блока зашифрованного сообщения используется инициализационный вектор (IV), для которого выполняется операция XOR с первым блоком незашифрованного сообщения. При расшифровании выполняется операция XOR IV с выходом алгоритма расшифрования для получения первого блока незашифрованного текста.

IV должен быть известен как отправителю, так и получателю. Для мак-симальной безопасности IV должен быть защищен так же, как ключ.

 Шифрование в режиме СВС

Рис. 2.9. Шифрование в режиме СВС
 Расшифрование в режиме СВС

Рис. 2.10. Расшифрование в режиме СВС

Режим CFB

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

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

Будем считать, что блок данных, используемый для передачи, состоит из J бит; обычным значением является J=8. Как и в режиме CBC, здесь используется операция XOR для предыдущего блока зашифрованного текста и следующего блока незашифрованного текста. Таким образом, любой блок зашифрованного текста является функцией от всего предыдущего незашифрованного текста.

Рассмотрим шифрование. Входом функции шифрования является регистр сдвига, который первоначально устанавливается в инициализационный вектор IV. Для левых J битов выхода алгоритма выполняется операция XOR с первыми J битами незашифрованного сообщения Р1 для получения первого блока зашифрованного сообщения С1. Кроме того, содержи-мое регистра сдвигается влево на J битов, и С1 помещается в правые J битов этого регистра. Этот процесс продолжается до тех пор, пока не будет зашифровано все сообщение.

При расшифровании используется аналогичная схема, за исключением того, что для блока получаемого зашифрованного сообщения выполняется операция XOR с выходом алгоритма для получения незашифрованного блока.

 Шифрование в режиме СFВ

Рис. 2.11. Шифрование в режиме СFВ
 Расшифровывание в режиме СFВ

Рис. 2.12. Расшифровывание в режиме СFВ

Режим OFB

Данный режим аналогичен режиму CFB. Разница заключается в том, что выход алгоритма в режиме OFB подается обратно в регистр, тогда как в режиме CFB в регистр подается результат применения операции XOR к незашифрованному блоку и результату алгоритма.

Основное преимущество режима OFB состоит в том, что если при передаче произошла ошибка, то она не распространяется на следующие зашифрованные блоки, и тем самым сохраняется возможность расшифрования последующих блоков. Например, если появляется ошибочный бит в Сi, то это приведет только к невозможности расшифрования этого блока и получения Рi. Дальнейшая последовательность блоков будет расшифрована корректно. При использовании режима CFB Сi подается в качестве входа в регистр и, следовательно, является причиной последующего искажения потока.

Недостаток OFB в том, что он более уязвим к атакам модификации потока сообщений, чем CFB.

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

Рис. 2.13. Шифрование в режиме OFB
 Расшифровывание в режиме OFВ

Рис. 2.14. Расшифровывание в режиме OFВ