Неразличимость шифротекста является свойством многих схем шифрования . Интуитивно понятно, что если криптосистема обладает свойством неразличимости , то противник не сможет различать пары шифротекстов на основе сообщения, которое они шифруют. Свойство неразличимости при атаке на выбранный открытый текст считается основным требованием для большинства доказуемо безопасных криптосистем с открытым ключом , хотя некоторые схемы также обеспечивают неразличимость при атаке на выбранный открытый текст и адаптивную атаку на выбранный открытый текст . Неразличимость при атаке на выбранный открытый текст эквивалентна свойству семантической безопасности , и многие криптографические доказательства используют эти определения взаимозаменяемо.
Криптосистема считается безопасной с точки зрения неразличимости , если ни один противник, учитывая шифрование сообщения, случайно выбранного из двухэлементного пространства сообщений, определенного противником, не может идентифицировать выбор сообщения с вероятностью, значительно лучшей, чем вероятность случайного угадывания ( 1 ⁄ 2 ). Если любой противник может преуспеть в различении выбранного шифротекста с вероятностью, значительно большей, чем 1 ⁄ 2 , то этот противник считается имеющим «преимущество» в различении шифротекста, и схема не считается безопасной с точки зрения неразличимости. Это определение охватывает представление о том, что в безопасной схеме противник не должен узнавать никакой информации, увидев шифротекст. Следовательно, противник не должен иметь возможности сделать что-то лучше, чем если бы он угадывал случайно.
Безопасность с точки зрения неразличимости имеет много определений, в зависимости от предположений о возможностях злоумышленника. Обычно она представляется как игра , в которой криптосистема считается безопасной , если ни один противник не может выиграть игру со значительно большей вероятностью, чем противник, который должен угадывать случайным образом. Наиболее распространенными определениями, используемыми в криптографии, являются неразличимость при атаке с выбранным открытым текстом (сокращенно IND-CPA), неразличимость при (неадаптивной) атаке с выбранным шифротекстом (IND-CCA1) и неразличимость при адаптивной атаке с выбранным шифротекстом (IND-CCA2). Безопасность в соответствии с любым из последних определений подразумевает безопасность в соответствии с предыдущими: схема, которая является безопасной с точки зрения IND-CCA1, также является безопасной с точки зрения IND-CPA, а схема, которая является безопасной с точки зрения IND-CCA2, является безопасной как с точки зрения IND-CCA1, так и с точки зрения IND-CPA. Таким образом, IND-CCA2 является самым сильным из трех определений безопасности.
Для вероятностного алгоритма асимметричного шифрования ключа неразличимость при атаке с выбранным открытым текстом (IND-CPA) определяется следующей игрой между противником и претендентом. Для схем, основанных на вычислительной безопасности , противник моделируется вероятностной полиномиальной машиной Тьюринга , что означает, что он должен завершить игру и вывести предположение в течение полиномиального числа временных шагов. В этом определении E ( PK , M ) представляет шифрование сообщения M под ключом PK :
Криптосистема неразличима при атаке с использованием выбранного открытого текста, если каждый вероятностный полиномиальный противник имеет лишь незначительное « преимущество » перед случайным угадыванием. Говорят, что противник имеет незначительное «преимущество», если он выигрывает в указанной выше игре с вероятностью , где — незначительная функция в параметре безопасности , то есть для каждой (ненулевой) полиномиальной функции poly() существует такое, что для всех .
Хотя противник знает M 0 , M 1 и PK , вероятностная природа E означает, что шифрование M b будет лишь одним из многих допустимых шифртекстов, и поэтому шифрование M 0 , M 1 и сравнение полученных шифртекстов с шифртекстом вызова не дает противнику существенного преимущества.
Хотя приведенное выше определение относится только к криптосистеме с асимметричным ключом, его можно адаптировать к симметричному случаю, заменив функцию шифрования с открытым ключом на оракул шифрования , который сохраняет секретный ключ шифрования и шифрует произвольные открытые тексты по запросу злоумышленника.
Сопернический процесс выполнения атаки с выбранным открытым текстом обычно описывается в форме криптографической игры. Для проверки симметричного IND-CPA определяется описанная выше игра. [1] Пусть будет функцией генерации ключа, будет функцией шифрования и будет функцией дешифрования. Пусть будет симметричной схемой шифрования. Игра Guess определяется как:
Столько раз, сколько он захочет, противник выбирает два открытых текстовых сообщения по своему выбору и предоставляет их LR -оракулу, который возвращает шифртекст, шифрующий одно из сообщений. Преимущество противника определяется его вероятностью угадать значение b, значение, выбранное случайным образом в начале игры, которое определяет сообщение, зашифрованное в LR- оракуле. Таким образом, его преимущество определяется как: [1]
Неразличимость при неадаптивной и адаптивной атаке выбранного шифртекста (IND-CCA1, IND-CCA2) использует определение, похожее на определение IND-CPA. Однако в дополнение к открытому ключу (или оракулу шифрования в симметричном случае) злоумышленнику предоставляется доступ к оракулу расшифровки , который расшифровывает произвольные шифртексты по запросу злоумышленника, возвращая открытый текст. В неадаптивном определении злоумышленнику разрешено запрашивать этот оракул только до тех пор, пока он не получит шифртекст вызова. В адаптивном определении злоумышленник может продолжать запрашивать оракул расшифровки даже после того, как он получил шифртекст вызова, с оговоркой, что он не может передать шифртекст вызова для расшифровки (в противном случае определение было бы тривиальным).
Схема является безопасной по уровню IND-CCA1/IND-CCA2, если ни один из противников не имеет существенного преимущества для победы в вышеуказанной игре.
Иногда нам нужны схемы шифрования, в которых строка зашифрованного текста неотличима для злоумышленника от случайной строки. [2]
Если злоумышленник не может определить, существует ли сообщение вообще, это дает человеку, написавшему сообщение, возможность правдоподобного отрицания .
Некоторые люди, создающие зашифрованные каналы связи, предпочитают сделать содержимое каждой зашифрованной датаграммы неотличимым от случайных данных, чтобы затруднить анализ трафика. [3]
Некоторые люди, создающие системы для хранения зашифрованных данных, предпочитают делать данные неотличимыми от случайных данных, чтобы упростить сокрытие данных . Например, некоторые виды шифрования дисков , такие как TrueCrypt, пытаются скрыть данные в невинных случайных данных, оставшихся после некоторых видов стирания данных . В качестве другого примера, некоторые виды стеганографии пытаются скрыть данные, заставляя их соответствовать статистическим характеристикам невинного «случайного» шума изображения на цифровых фотографиях.
Для поддержки таких отрицаемых систем шифрования специально разработано несколько криптографических алгоритмов, которые делают сообщения с зашифрованным текстом неотличимыми от случайных строк битов. [4] [5] [6]
Большинству приложений не требуется алгоритм шифрования для создания зашифрованных сообщений, которые неотличимы от случайных битов. Однако некоторые авторы считают, что такие алгоритмы шифрования концептуально проще и легче в работе, а также более универсальны на практике — и большинство алгоритмов шифрования IND-CPA, по-видимому, действительно создают зашифрованные сообщения, которые неотличимы от случайных битов. [7]
Неразличимость является важным свойством для сохранения конфиденциальности зашифрованных сообщений. Однако свойство неразличимости в некоторых случаях, как было обнаружено, подразумевает другие, по-видимому, не связанные свойства безопасности. Иногда эти следствия идут в обоих направлениях, делая два определения эквивалентными; например, известно, что свойство неразличимости при адаптивной атаке с выбранным шифротекстом (IND-CCA2) эквивалентно свойству непластичности при том же сценарии атаки (NM-CCA2). Эта эквивалентность не сразу очевидна, поскольку непластичность является свойством, имеющим дело с целостностью сообщения, а не с конфиденциальностью. В других случаях было продемонстрировано, что неразличимость можно объединить с некоторыми другими определениями, чтобы подразумевать еще другие полезные определения, и наоборот. Следующий список суммирует несколько известных следствий, хотя он ни в коем случае не является полным.
Обозначение означает, что свойство A подразумевает свойство B. означает, что свойства A и B эквивалентны . означает, что свойство A не обязательно подразумевает свойство B.