Введение
Детерминированная схема шифрования (в отличие от вероятностной схемы шифрования) — это криптосистема, которая всегда генерирует один и тот же шифротекст для заданного открытого текста и ключа, даже при повторных запусках алгоритма шифрования. Примеры детерминированных алгоритмов шифрования включают криптосистему RSA (без дополнения) и многие блочные шифры при использовании в режиме ECB или с постоянным вектором инициализации.
A deterministic encryption scheme (as opposed to a probabilistic encryption scheme) is a cryptosystem which always produces the same ciphertext for a given plaintext and key, even over separate executions of the encryption algorithm. Examples of deterministic encryption algorithms include RSA cryptosystem (without encryption padding), and many block ciphers when used in ECB mode or with a constant initialization vector.
Утечка
Детерминированное шифрование может раскрыть информацию перехватчику, который может распознать известные шифротексты. Например, если противник узнает, что определенный шифротекст соответствует какому-то интересному сообщению, он может получить информацию каждый раз, когда этот шифротекст передается. Чтобы узнать о значении различных шифротекстов, противник может провести статистический анализ сообщений, передаваемых по зашифрованному каналу, или попытаться установить связь между шифротекстами и наблюдаемыми действиями (например, заметив, что определенный шифротекст всегда принимается непосредственно перед погружением подводной лодки). Эта проблема особенно актуальна в случае криптографии с открытым ключом, где любая сторона может шифровать выбранные сообщения, используя открытый ключ шифрования. В этом случае противник может создать обширный "словарь" полезных пар открытого текста и шифротекста, а затем отслеживать зашифрованный канал в поисках соответствующих шифротекстов.
Приложения
Хотя детерминированные схемы шифрования не могут быть семантически безопасными, они обладают некоторыми преимуществами по сравнению с вероятностными схемами.
Поиск в базе данных зашифрованных данных
Одной из основных причин использования детерминированного шифрования является эффективный поиск зашифрованных данных. Предположим, клиент хочет передать базу данных на аутсорсинг потенциально ненадежному поставщику услуг баз данных. Если каждая запись зашифрована с использованием криптосистемы с открытым ключом, любой может добавлять данные в базу, и только выделенный "получатель", обладающий закрытым ключом, может расшифровать записи базы данных. Однако, если получателю необходимо найти конкретную запись в базе данных, это становится очень затруднительно. Существуют некоторые схемы шифрования с открытым ключом, позволяющие осуществлять поиск по ключевым словам, но все они требуют времени поиска, линейного от размера базы данных. Если записи базы данных были зашифрованы детерминированной схемой и отсортированы, то конкретное поле базы данных можно будет получить за логарифмическое время.
Безопасность
Предполагая, что будет использоваться детерминированная схема шифрования, важно понимать, какой максимальный уровень безопасности можно гарантировать. Ряд исследований был посвящен именно этой проблеме. Первая работа, строго определившая понятие безопасности для детерминированной схемы, была опубликована на CRYPTO 2007. В этой работе были предложены достаточно надежные определения безопасности (хотя и более слабые, чем семантическая безопасность), а также построения в модели случайного оракула. Две последующие работы появились в следующем году на CRYPTO 2008, представляя определения эквивалентности и построения без использования случайных оракулов.
Альтернативы детерминированному шифрованию
Чтобы противостоять этой проблеме, криптографы предложили понятие "рандомизированного" или вероятностного шифрования. В этих схемах один и тот же открытый текст может быть зашифрован в один из очень большого набора возможных шифротекстов, выбранный случайным образом в процессе шифрования. При достаточно надежных гарантиях безопасности описанные выше атаки становятся нереализуемыми, поскольку злоумышленник не сможет установить связь между двумя шифрованиями одного и того же сообщения или между сообщением и его шифротекстом, даже имея доступ к открытому ключу шифрования. Эта гарантия известна как семантическая безопасность или неразличимость шифротекстов, и имеет несколько определений в зависимости от предполагаемых возможностей атакующего (см. Семантическая безопасность).