Детерминированный 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 вычислений. получить единый ключ.
- Возможность безопасного шифрования 2 38 сообщений, при условии, что каждое из них имеет длину менее 1 МБ.
Пример варианта использования
См. «Я хочу детерминированно зашифровать данные и хочу привязать зашифрованный текст к его контексту ».