Материал из РУВИКИ — свободной энциклопедии

Криптосистема Гольдвассер — Микали

Криптосистема Гольдвассер — Микали (GM) — криптографическая система с открытым ключом, разработанная Шафи Гольдвассер и Сильвио Микали в 1982 году. GM является первой схемой вероятностного шифрования с открытым ключом, доказуемо стойкая при стандартных криптографических предположениях. Однако, криптосистема GM является неэффективной, так как шифртекст может быть в сотни раз длиннее, чем шифруемое сообщение. Для доказательства свойств стойкости криптосистемы Голдвассер и Микали ввели широко используемое понятие семантической стойкости.

Гольдвассер и Микали стали лауреатами Премии Тьюринга за 2012 год, создание криптосистемы с вероятностным шифрованием отмечено в номинации как новаторская работа, оказавшая существенное влияние на современную криптографию.

Основы[править | править код]

Понятие стойкости по отношению к атаке IND-CPA впервые было предложено Голдвассер и Микали. Они назвали это понятие семантической стойкостью. Оно заключается в том, что зашифрованный текст не допускает никакой утечки полезной информации об исходном тексте (если не считать полезной информацией длину самого исходного текста) ни одному взломщику, обладающему полиномиально ограниченными вычислительными ресурсами. Голдвассер и Микали обнаружили, что во многих приложениях сообщения могут содержать априорную информацию, полезную для организации атак. Например, зашифрованный текст может содержать только одну простую инструкцию (например, «покупать» или «продавать», либо имя одного из нескольких кандидатов при голосовании). Голдвассер и Микали указали на то, что криптосистемы с открытым ключом, основанные на непосредственном применении односторонних функций с секретом, как правило, очень слабо скрывают содержание таких сообщений.

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

Гольдвассер и Микали предложили схему вероятностного шифрования, обладающую этим свойством. Она шифрует всё сообщение бит за битом, причём вся сложность, связанная с поиском отдельного зашифрованного бита в тексте c, заключается в проверке, принадлежит число c множеству или множеству

Описание алгоритма[править | править код]

Генерация ключа[править | править код]

Чтобы установить параметры ключа, Алиса должна выполнить следующие операции :

  1. Выбрать два случайных числа и , удовлетворяющих условию бит
  2. Вычислить значение
  3. Извлечь случайное целое число , удовлетворяющее условию (символы Якоби)
    (Таким образом, , но .)
  4. Описать пару в качестве открытого ключа, а пару сохранить в тайне как закрытый ключ.

Шифрование[править | править код]

Чтобы послать Алисе строку , Боб выполняет следующие операции:

{



}

Боб посылает Алисе сообщение

Расшифрование[править | править код]

Получив кортеж , Алиса выполняет следующие операции:

{


}

Временная сложность алгоритма[править | править код]

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

Стойкость криптосистемы GM[править | править код]

Алгоритм шифрования в криптосистеме GM можно рассматривать как безошибочный рандомизированный алгоритм: случайные операции в алгоритме шифрования не могут исказить зашифрованный текст и обладают при этом следующими важными свойствами.

Нулевые биты в исходном тексте равномерно распределяются по множеству , а единичные — по множеству .
Оба распределения являются равномерными, поскольку для нулевого бита, содержащегося в исходном тексте, возведение в квадрат означает отображение группы на множестве , а для единичного бита умножение элемента множества на число является отображением из множества на множество .

Список литературы[править | править код]