Детерминированное шифрование с аутентификацией и связанными данными (детерминированное AEAD)

Примитив детерминированного шифрования с аутентификацией и ассоциированными данными (детерминированное AEAD) обеспечивает шифрование с детерминированным свойством: шифрование одних и тех же данных всегда даёт один и тот же шифртекст. Этот тип шифрования полезен для упаковки ключей или некоторых схем поиска в зашифрованных данных (подробнее см. RFC 5297, раздел 1.3 ). Из-за детерминированного свойства реализации этого примитива могут привести к потере секретности, поскольку злоумышленнику достаточно узнать шифртекст заданного сообщения, чтобы идентифицировать другие его экземпляры.

Детерминированный AEAD обладает следующими свойствами:

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

Связанные данные

Детерминированный алгоритм AEAD можно использовать для привязки шифротекста к определённым связанным данным . Предположим, у вас есть база данных с полями user-id и encrypted-medical-history . В этом случае user-id можно использовать в качестве связанных данных при шифровании encrypted-medical-history . Это предотвращает передачу злоумышленником истории болезни от одного пользователя к другому.

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

Выберите тип ключа

Мы рекомендуем тип ключа AES256_SIV для всех случаев использования.

Гарантии безопасности

  • Уровень стойкости аутентификации не менее 80 бит.
  • Открытый текст и связанные с ним данные могут иметь произвольную длину (в диапазоне 0..2 32 байта).
  • Уровень безопасности 128 бит против атак с восстановлением ключа, а также при многопользовательских атаках с использованием до 2 32 ключей — это означает, что если злоумышленник получает 2 32 шифртекста одного и того же сообщения, зашифрованного с использованием 2 32 ключей, ему необходимо выполнить 2 128 вычислений, чтобы получить один ключ.
  • Возможность безопасного шифрования 238 сообщений, при условии, что длина каждого менее 1 МБ.

Пример использования

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