Режим Offset codebook ( режим OCB ) — это режим работы аутентифицированного шифрования для криптографических блочных шифров . [1] [2] Режим OCB был разработан Филиппом Рогауэем , который выразил благодарность Михиру Белларе , Джону Блэку и Теду Кроветцу за помощь и комментарии по проектам. Он основан на режиме IAPM ( integrity-aware parallelizeable mode ) аутентифицированного шифрования Чаранджита С. Джутлы. Версия OCB2 оказалась небезопасной, в то время как исходный OCB1, а также OCB3 от 2011 года по-прежнему считаются безопасными.
Режим OCB был разработан для обеспечения как аутентификации сообщений , так и конфиденциальности . По сути, это схема интеграции кода аутентификации сообщений (MAC) в работу блочного шифра . Таким образом, режим OCB избегает необходимости использования двух систем: MAC для аутентификации и шифрования для конфиденциальности. Это приводит к снижению вычислительных затрат по сравнению с использованием отдельных функций шифрования и аутентификации.
Существует три версии OCB: OCB1, OCB2 и OCB3. OCB1 был опубликован в 2001 году. OCB2 улучшает OCB1, позволяя включать связанные данные в сообщение, обеспечивая аутентифицированное шифрование со связанными данными (AEAD; то есть данные, которые не зашифрованы, но должны быть аутентифицированы) и новый метод генерации последовательности смещений. OCB2 был впервые опубликован в 2003 году, первоначально назывался режимом аутентифицированного шифрования или расширенным режимом шифрования ( AEM ) и был показан как совершенно небезопасный в 2019 году. OCB3, опубликованный в 2011 году, снова изменяет способ вычисления смещений и вносит незначительные улучшения производительности.
OCB2 был стандартизирован в ISO/IEC 19772:2009 [3] (хотя он был удален из стандарта после публикации атаки) и модифицированном OCB3 в RFC 7253. [4] RFC кодирует длину тега во внутренне отформатированном одноразовом номере.
Накладные расходы на производительность OCB минимальны по сравнению с классическими режимами без аутентификации, такими как цепочка блоков шифрования . OCB требует одну операцию блочного шифрования на блок зашифрованного и аутентифицированного сообщения и одну операцию блочного шифрования на блок связанных данных. Также требуется одна дополнительная операция блочного шифрования в конце процесса.
Для сравнения, режим CCM, предлагающий аналогичную функциональность, требует в два раза больше операций блочного шифрования на блок сообщения (для связанных данных требуется одна, как в OCB).
Хотя OCB теперь является общественным достоянием, Rogaway изначально запатентовали режим OCB, чтобы иметь возможность взимать плату за коммерческие лицензии и пытаться остановить появление своей работы в военных проектах. [5] Rogaway намеренно отказались от своих патентов OCB в 2021 году. [6]
Для режима OCB было выдано два патента США. [7] Патенты препятствовали одобрению Национальным институтом стандартов и технологий . [ необходима цитата ]
Хотя режим OCB был запатентован, Рогауэй предоставил три лицензии, позволяющие свободно использовать режим OCB в программном обеспечении, лицензированном в соответствии с GNU General Public License (позже любой лицензией с открытым исходным кодом, сертифицированной Open Source Initiative [8] ), некоммерческих невоенных проектах и в OpenSSL .
Поскольку Рогауэй подал заявку на патентную защиту только в США, алгоритм всегда можно было свободно использовать в программном обеспечении, которое не разрабатывалось и не продавалось внутри США [9]
Нильс Фергюсон указал на коллизионные атаки на OCB, которые ограничивают объем данных, которые могут быть безопасно обработаны с помощью одного ключа, примерно до 280 терабайт. [10] [11]
В октябре 2018 года Иноуэ и Минемацу представили экзистенциальную атаку подделки против OCB2, которая требует только одного предварительного запроса шифрования и почти не требует вычислительной мощности или хранилища. [12] Атака не распространяется на OCB1 или OCB3 и требует, чтобы связанное поле данных поддельного шифртекста было пустым. Всего пару дней спустя Поттеринг [13] и Ивата [14] улучшили атаку подделки до полной атаки восстановления открытого текста. Позже четыре автора подготовили совместный отчет. [15]