AES-GCM-SIV — это режим работы для Advanced Encryption Standard , который обеспечивает схожую (но немного худшую [1] ) производительность по сравнению с режимом Галуа/счетчика , а также устойчивость к неправильному использованию в случае повторного использования криптографического одноразового номера . Конструкция определена в RFC 8452. [2]
AES-GCM-SIV разработан для сохранения как конфиденциальности, так и целостности, даже если одноразовые номера повторяются. Для достижения этого шифрование является функцией одноразового номера, открытого текстового сообщения и дополнительных связанных данных (AAD). В случае неправильного использования одноразового номера (т. е. использования более одного раза) ничего не раскрывается, за исключением случая, когда одно и то же сообщение зашифровано несколько раз одним и тем же одноразовым номером. Когда это происходит, злоумышленник может наблюдать повторное шифрование, поскольку шифрование является детерминированной функцией одноразового номера и сообщения. Однако, помимо этого, никакой дополнительной информации злоумышленнику не раскрывается. По этой причине AES-GCM-SIV является идеальным выбором в случаях, когда уникальные одноразовые номера не могут быть гарантированы, например, когда несколько серверов или сетевых устройств шифруют сообщения с помощью одного и того же ключа без координации.
Как и режим Галуа/счетчика, AES-GCM-SIV объединяет известный режим счетчика шифрования с режимом Галуа аутентификации. Ключевой особенностью является использование синтетического вектора инициализации (SIV), который вычисляется с помощью умножения полей Галуа с использованием конструкции POLYVAL ( вариант GHASH режима Галуа/счетчика с прямым порядком байтов ). POLYVAL выполняется над комбинацией случайного числа, открытого текста и дополнительных данных, так что IV отличается для каждой комбинации.
POLYVAL определяется над GF(2 128 ) полиномом:
Обратите внимание, что GHASH определяется через «обратный» полином:
Это изменение обеспечивает повышение эффективности в архитектурах с прямым порядком байтов. [3]
Реализации AES-GCM-SIV доступны, среди прочего, на следующих языках: