ESIGN
(
англ.
Efficient digital SIGNature
— эффективная цифровая подпись) — схема
цифровой подписи
с
открытым ключом
, основанная на проблеме
факторизации
чисел. Отличительной чертой данной схемы является возможность быстрой генерации подписи.
История
Цифровая подпись была разработана в японской компании
NTT
в 1985 году.
Схема оказалась эффективна в плане скорости генерации цифровой подписи. Однако первые версии были взломаны Эрни Брикеллом (
англ.
Ernie Btickel
) и Джоном ДеЛаурентисом (
англ.
John DeLaurentis
), после чего рекомендованные параметры алгоритма были модифицированы.
Последующие попытки взлома оказались безуспешными. Авторы уверяют, что сложность взлома последней версии ESIGN сравнима со сложностью задачи факторизации числа
вида
, где
и
—
простые числа
.
Описание протокола
Введение
В протоколе участвуют два субъекта: субъект
, цель которого — доказать то, что является автором сообщения
, и субъект
, целью которого является проверка авторства. В ESIGN для осуществления поставленных целей
и
должны совершить следующие действия
.
-
Предварительно,
генерирует
ключи
: открытый, известный всем, и
закрытый
, известный только субъекту
.
-
Субъект
генерирует цифровую подпись
для сообщения
на основе закрытого ключа.
-
отправляет сообщение
вместе с подписью
субъекту
.
-
Субъект
проверяет достоверность подписи на основе открытого ключа.
Генерация открытого и закрытого ключей
Ключи ESIGN генерируются следующим образом
.
-
Случайным образом выбираются два
простых числа
и
одинаковой битовой длины.
-
Вычисляется число
.
-
Выбирается целое положительное число
.
-
Пара чисел
является открытым ключом.
-
Пара чисел
— закрытый ключ.
Генерация подписи
Чтобы подписать сообщение
, где
—
двоичное число
произвольной длины, предпринимаются следующие шаги
.
-
Вычисляется
, где
— заранее выбранная
хеш-функция
, принимающая значения от
до
.
-
Выбирается случайное число
из интервала
.
-
Вычисляется
и
, где
— функция
округления
до наименьшего целого, большего аргумента.
-
Вычисляется подпись
.
Проверка подписи
Чтобы проверить, что подпись
действительно подписывает сообщение
, предпринимаются следующие шаги
.
-
Вычисляется
, где
— та же самая хеш-функция, которая использовалась для генерации подписи.
-
Вычисляется
.
-
Выполняется проверка неравенства
.
-
Подпись считается достоверной, если неравенство выполнено.
Предыдущие версии
В изначально предложенном варианте ESIGN параметр
был равен двум.
Однако после успешной атаки Эрни Брикелла и Джона ДеЛаурентиса, которая распространялась также на вариант схемы с
, авторы изменили требование к этому параметру на существующее
.
Криптоанализ
Атака на хеш-функцию
Атаки на
хеш-функцию
с целью
подделки подписи
основаны на ее несовершенности, то есть на несоответствии хеш-функции одному или нескольким критериям криптографической стойкости c той оговоркой, что в случае ESIGN равенства в критериях стоит понимать с точностью до
старших бит. Это послабление связано с условием проверки подписи, которое выполняется не только для исходного значения хеш-функции, но и для прочих, совпадающих в первых
старших битах.
Допустим, что функция
неустойчива к поиску коллизий, то есть можно найти такие различные
и
, что
и
совпадают в первых
старших битах. Тогда, подписывая сообщение
, автор
, ничего не подозревая, автоматически подписывает сообщение
, так как выполняется неравенство
Если выбранная хеш-функция криптографически стойкая, то атака с использованием коллизий займет
операций вычисления хеш-функции,
атака с использованием второго прообраза
—
операций, что считается неосуществимым, при больших
.
Атака на открытый ключ
Атака на открытый ключ
заключается в попытке получить на его основе закрытый ключ
. Сделать это можно, решив уравнение
, то есть
факторизовав
число
. Можно заметить, что в
RSA
число
генерируется похожим образом, там
, но на сегодняшний день вопрос о том, в каком из случаев факторизация становится проще или сложнее, остается открытым, так как эффективных алгоритмов факторизации до сих пор нет. На данный момент самым быстрым способом факторизовать число
, что для ESIGN, что для RSA, является
метод решета числового поля
, который делает это со скоростью, зависящей от битовой длины
. Однако, при большой битовой длине числа
задача факторизации становится невыполнимой.
Рекомендуемые параметры
Помимо уже введенных ограничений в описании ESIGN, для большей безопасности рекомендуется выбирать размер
и
равным или большим
бит, размер
равным или большим
соответственно, а параметр
большим или равным 8
:
-
;
-
;
Уровень безопасности относительно других схем цифровой подписи
Ниже представлена таблица соответствия уровня безопасности ESIGN уровням безопасности
RSA
и
ECDSA
при различных размерах параметра
в битах. Можно заметить, что при одинаковым размерах
RSA и ESIGN сравнимы по уровню безопасности.
Размер
в ESIGN, биты
|
Размер
в RSA, биты
|
Размер
в ECDSA, биты
|
960
|
960
|
152
|
1024
|
1024
|
160
|
2048
|
2048
|
224
|
3072
|
3072
|
256
|
7680
|
7680
|
384
|
Преимущества
Схема ESIGN позволяет быстро генерировать подпись. Так как вычислительно сложные операции, такие как возведение в степень
и нахождение обратного элемента
, не зависят от подписываемого сообщения
, их можно осуществить заранее и сохранить полученные значения в памяти. Таким образом, чтобы подписать сообщение, достаточно выполнить оставшиеся операции сложения, умножения и деления, доля которых в
вычислительной сложности алгоритма
создания подписи мала. В случае, когда
, а битовая длина
равна
, скорость генерации подписи в
больше, чем для
RSA
при соответствующих параметрах. Что же касается проверки подписи, то её скорость сравнима со скоростью проверки подписи в алгоритме
RSA
,
открытая экспонента
которого мала.
Протоколы идентификации на основе ESIGN
С помощью ESIGN можно реализовать протоколы идентификации
с нулевым разглашением
, которые позволяют субъекту
(
англ.
Prover
— доказывающий) доказать субъекту
(
англ.
Verifier
— проверяющий) факт наличия информации, сохранив её в тайне от
. Протоколы идентификации на основе ESIGN не уступают
протоколу Фейга — Фиата — Шамира
в своей эффективности. Мы рассмотрим два таких протокола: трёхраундовый и двухраундовый.
Трёхраундовая схема идентификации
-
генерирует открытые
и секретные
ESIGN ключи.
-
выбирает случайным образом числа
и
, вычисляет
, где
—
односторонняя функция
,
— операция
конкатенации
, и отправляет
проверяющему
.
-
выбирает случайным образом число
и отправляет доказывающему.
-
вычисляет
, генерирует подпись
для
и отправляет тройку
проверяющему.
-
проверяет выполнение равенства
и достоверность подписи
для сообщения
.
Двухраундовая схема идентификации
-
генерирует открытые
и секретные
ESIGN ключи.
-
выбирает случайным образом число
и отправляет доказывающему.
-
выбирает случайным образом число
, вычисляет
, генерирует подпись
для
и отправляет
проверяющему.
-
проверяет выполнение равенства
и достоверность подписи
для сообщения
.
В приведенных протоколах секретной информацией являются ключи
, знание которых и доказывает субъект
. Если результаты всех проверок на завершающих этапах оказываются успешными, то считается, что
действительно обладает секретом.
Примечания
-
, §11.7 п.2, pp. 473—474.
-
, p. 1.
-
, глава 20, п.6.
-
, глава 2, п.3: «We conjective that to break our higher degree version (ESIGN) is as hard as facctoring N».
-
↑
, глава 2, п.6.
-
↑
, §11.7 п.2, p. 473.
-
, §11.9, pp. 486—487.
-
, p. 3.
-
↑
, §11.7 п.2, p. 474.
-
, p. 4.
-
, p. 6.
-
, p. 7.
-
, глава 3.
-
, глава 4.
Литература
-
Шнайер Б.
Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. —
М.
: Триумф, 2002. — 816 с. —
3000 экз.
—
ISBN 5-89392-055-4
.
-
Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone.
Глава 11. Digital Signatures
//
. — 5-e изд. —
CRC Press
, 1996. — С. 473—474. — 816 с. —
ISBN 0-8493-8523-7
.
-
Atsushi Fujioka, Tatsuaki Okamoto, Shoji Miyaguchi.
// Advances in Cryptology — EUROCRYPT ’91 : материалы конф. / Advances in Cryptology - EUROCRYPT '91, Брайтон, Великобритания, 8-11 апреля 1991. — Springer Berlin Heidelberg, 1991. —
С. 446—457
. —
ISBN 978-3-540-54620-7
.
(недоступная ссылка)
-
Alfred Menezes , Minghua Qu , Doug Stinson , Yongge Wang.
: материалы проекта / CRYPREC Project, Япония. — 2001. — Январь.
9 августа 2017 года.