GMR — криптографический алгоритм, используемый для создания цифровой подписи. Назван по первым буквам создателей — Рональда Ривеста, Сильвио Микали и Шафи Гольдвассер.

GMR базируется на высокой вычислительной сложности факторизации больших целых чисел, как и криптосистема RSA. Но, в отличие от неё, GMR устойчива к атакам на основе подобранного открытого текста [1].

Что значит взломать цифровую подпись?

[править | править код]

Можно говорить, что криптоаналитик «взломал» цифровую подпись , если совершенная атака позволяет ему с ненулевой вероятностью совершить следующее[2]:

Описание алгоритма

[править | править код]

Предположим, что Алисе нужно отправить Бобу последовательность сообщений, подтверждённых цифровой подписью. Пусть Алиса предполагает подписать сообщений, случайный параметр шифрования - . Открытый ключ состоит из следующих компонент:

.

Закрытый ключ состоит из простых чисел , позволяющих эффективно вычислять обратные функции и .

Рассмотрим случай генерации подписи для одного сообщения , то есть и . Алиса выбирает случайное число из области значений и вычисляет подпись сообщения :

и .

Получив подписанное сообщение, Боб последовательно проверяет, что

Для подписи сообщений Алиса строит из корневого элемента хэш-дерево с листьями . Все внутренние вершины дерева выбираются случайно и равновероятно из множества значений , аналогично в случае одного сообщения. Каждая внутренняя вершина криптостойко связывается со обоими своими дочерними вершинами путём вычисления значения , помещаемого в вершину аналогично тому, как выше вычисляется . Наконец, сообщение криптостойко связывается с -ым листом дерева аутентификации путём вычисления значения аналогично тому, как выше вычислено . Подпись сообщения состоит из

Односторонние функции с потайным входом

[править | править код]

В качестве односторонних функций могут быть использованы для и , где функция принимает на вход битовую строку и возвращает целое число, представленное битами в обратном порядке [6]. Функция также принимает битовую строку возвращая её длину. Знак плюс или минус выбирается таким образом, чтобы значение было положительно и не превышало . В таком случае вычисление обратной функции осуществляется за время, пропорциональное , где  — длина строки , при условии, что подписываемые сообщения имеют такую же длину. Таким образом образом, подпись -битового сообщения может быть подсчитана за время [6].

Криптостойкость алгоритма

[править | править код]

Гольдвассер, Микали и Ривестом доказано[3], что алгоритм GMR не позволяет криптоаналитику успешно совершить адаптивную атаку на основе подобранного сообщения, а именно, осуществить экзистенциальную подделку подписи, сгенерированной по схеме GMR. Криптоаналитик, получивший подписи к ряду сообщений, не может подделать подпись для любого дополнительного сообщения.

Обобщения схемы

[править | править код]

Возможны обобщения схемы GMR для использования как подписи назначенного подтверждающего (designated confirmer signature scheme)[7].

Примечания

[править | править код]

Литература

[править | править код]

Ссылки

[править | править код]