Учебники

Режимы работы блочного шифра

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

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

Режим электронной кодовой книги (ECB)

Этот режим является наиболее простым способом обработки последовательности последовательно перечисленных блоков сообщений.

операция

  • Пользователь берет первый блок открытого текста и шифрует его ключом, чтобы создать первый блок зашифрованного текста.

  • Затем он берет второй блок открытого текста и выполняет тот же процесс с тем же ключом и так далее, и так далее.

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

Затем он берет второй блок открытого текста и выполняет тот же процесс с тем же ключом и так далее, и так далее.

Режим ECB является детерминированным , то есть, если незашифрованный блок P1, P2,…, Pm зашифрован дважды под одним и тем же ключом, выходные блоки зашифрованного текста будут одинаковыми.

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

Режим ЕЦБ

Анализ режима ЕЦБ

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

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

Режим цепочки блоков шифрования (CBC)

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

операция

Работа в режиме CBC изображена на следующем рисунке. Шаги следующие:

  • Загрузите n-битный вектор инициализации (IV) в верхний регистр.

  • XOR n-битный блок открытого текста со значением данных в верхнем регистре.

  • Зашифруйте результат операции XOR базовым блочным шифром с помощью ключа K.

  • Подайте блок зашифрованного текста в верхний регистр и продолжайте работу, пока не будут обработаны все блоки открытого текста.

  • Для дешифрования данные IV подвергаются операции XOR с дешифрованием первого блока зашифрованного текста. Первый блок зашифрованного текста также вводится для регистрации замены IV для дешифрования следующего блока зашифрованного текста.

Загрузите n-битный вектор инициализации (IV) в верхний регистр.

XOR n-битный блок открытого текста со значением данных в верхнем регистре.

Зашифруйте результат операции XOR базовым блочным шифром с помощью ключа K.

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

Для дешифрования данные IV подвергаются операции XOR с дешифрованием первого блока зашифрованного текста. Первый блок зашифрованного текста также вводится для регистрации замены IV для дешифрования следующего блока зашифрованного текста.

CBC Mode

Анализ режима CBC

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

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

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

Режим обратной связи с шифром (CFB)

В этом режиме каждый блок зашифрованного текста «возвращается» в процесс шифрования для шифрования следующего блока открытого текста.

операция

Работа режима CFB изображена на следующем рисунке. Например, в настоящей системе блок сообщений имеет биты размера s, где 1 <s <n. Режим CFB требует вектора инициализации (IV) в качестве начального случайного n-битного входного блока. IV не должен быть секретным. Шаги операции —

  • Загрузите IV в верхний регистр.

  • Зашифруйте значение данных в верхнем регистре с помощью базового блочного шифра с ключом K.

  • Возьмите только число «s» старших значащих битов (левых битов) вывода процесса шифрования и зашифруйте их с помощью блока сообщений открытого текста «s», чтобы сгенерировать блок зашифрованного текста.

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

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

  • Аналогичные шаги выполняются для расшифровки. Предварительно решенный IV изначально загружается в начале расшифровки.

Загрузите IV в верхний регистр.

Зашифруйте значение данных в верхнем регистре с помощью базового блочного шифра с ключом K.

Возьмите только число «s» старших значащих битов (левых битов) вывода процесса шифрования и зашифруйте их с помощью блока сообщений открытого текста «s», чтобы сгенерировать блок зашифрованного текста.

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

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

Аналогичные шаги выполняются для расшифровки. Предварительно решенный IV изначально загружается в начале расшифровки.

Режим CFB

Анализ режима CFB

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

У CFB есть очень странная особенность. В этом режиме пользователь расшифровывает зашифрованный текст, используя только процесс шифрования блочного шифра. Алгоритм дешифрования базового блочного шифра никогда не используется.

По-видимому, режим CFB преобразует блочный шифр в тип потокового шифра. Алгоритм шифрования используется в качестве генератора потока ключей для создания потока ключей, который помещается в нижний регистр. Этот ключевой поток затем XOR с открытым текстом, как в случае потокового шифра.

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

С другой стороны, ошибка передачи распространяется из-за смены блоков.

Режим обратной связи (OFB)

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

Генерируемый поток ключей XOR-редактируется с блоками открытого текста. Режим OFB требует IV как начальный случайный n-битный входной блок. IV не должен быть секретным.

Операция изображена на следующей иллюстрации —

Режим OFB

Счетчик (CTR) режим

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

операция

Как шифрование, так и дешифрование в режиме CTR изображены на следующей иллюстрации. Шаги в действии —

  • Загрузка начального значения счетчика в верхний регистр одинакова как для отправителя, так и для получателя. Он играет ту же роль, что и IV в режиме CFB (и CBC).

  • Зашифруйте содержимое счетчика ключом и поместите результат в нижний регистр.

  • Возьмите первый незашифрованный блок P1 и XOR это к содержимому нижнего регистра. Результатом этого является C1. Отправьте C1 получателю и обновите счетчик. Обновление счетчика заменяет обратную связь зашифрованного текста в режиме CFB.

  • Продолжайте в том же духе, пока последний незашифрованный блок не будет зашифрован.

  • Расшифровка — обратный процесс. Блок зашифрованного текста XORed с выводом зашифрованного содержимого значения счетчика. После расшифровки каждого блока зашифрованного текста счетчик обновляется так же, как и в случае шифрования.

Загрузка начального значения счетчика в верхний регистр одинакова как для отправителя, так и для получателя. Он играет ту же роль, что и IV в режиме CFB (и CBC).

Зашифруйте содержимое счетчика ключом и поместите результат в нижний регистр.

Возьмите первый незашифрованный блок P1 и XOR это к содержимому нижнего регистра. Результатом этого является C1. Отправьте C1 получателю и обновите счетчик. Обновление счетчика заменяет обратную связь зашифрованного текста в режиме CFB.

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

Расшифровка — обратный процесс. Блок зашифрованного текста XORed с выводом зашифрованного содержимого значения счетчика. После расшифровки каждого блока зашифрованного текста счетчик обновляется так же, как и в случае шифрования.

Режим CTR

Анализ режима счетчика

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

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

Серьезным недостатком режима CTR является то, что для него требуется синхронный счетчик на отправителе и получателе. Потеря синхронизации приводит к некорректному восстановлению открытого текста.

Однако режим CTR обладает практически всеми преимуществами режима CFB. Кроме того, это не распространяет ошибку передачи вообще.