Лучшие вопросы
Таймлайн
Чат
Перспективы
ESIGN
Из Википедии, свободной энциклопедии
Remove ads
ESIGN (англ. Efficient digital SIGNature — эффективная цифровая подпись) — схема цифровой подписи с открытым ключом, основанная на проблеме факторизации чисел. Отличительной чертой данной схемы является возможность быстрой генерации подписи.[1]
История
Цифровая подпись была разработана в японской компании NTT в 1985 году.[2] Схема оказалась эффективна в плане скорости генерации цифровой подписи. Однако первые версии были взломаны Эрни Брикеллом (англ. Ernie Btickel) и Джоном ДеЛаурентисом (англ. John DeLaurentis), после чего рекомендованные параметры алгоритма были модифицированы.[3] Последующие попытки взлома оказались безуспешными. Авторы уверяют, что сложность взлома последней версии ESIGN сравнима со сложностью задачи факторизации числа вида , где и — простые числа.[4]
Remove ads
Описание протокола
Суммиров вкратце
Перспектива
Введение
В протоколе участвуют два субъекта: субъект , цель которого — доказать то, что является автором сообщения , и субъект , целью которого является проверка авторства. В ESIGN для осуществления поставленных целей и должны совершить следующие действия[5].
Генерация открытого и закрытого ключей
Ключи ESIGN генерируются следующим образом[6].
- Случайным образом выбираются два простых числа и одинаковой битовой длины.
- Вычисляется число .
- Выбирается целое положительное число .
- Пара чисел является открытым ключом.
- Пара чисел — закрытый ключ.
Генерация подписи
Чтобы подписать сообщение , где — двоичное число произвольной длины, предпринимаются следующие шаги[6].
- Вычисляется , где — заранее выбранная хеш-функция, принимающая значения от до .
- Выбирается случайное число из интервала .
- Вычисляется и , где — функция округления до наименьшего целого, большего аргумента.
- Вычисляется подпись .
Проверка подписи
Чтобы проверить, что подпись действительно подписывает сообщение , предпринимаются следующие шаги[6].
- Вычисляется , где — та же самая хеш-функция, которая использовалась для генерации подписи.
- Вычисляется .
- Выполняется проверка неравенства .
- Подпись считается достоверной, если неравенство выполнено.
Предыдущие версии
В изначально предложенном варианте ESIGN параметр был равен двум.[5] Однако после успешной атаки Эрни Брикелла и Джона ДеЛаурентиса, которая распространялась также на вариант схемы с , авторы изменили требование к этому параметру на существующее .[7]
Remove ads
Криптоанализ
Атака на хеш-функцию
Атаки на хеш-функцию с целью подделки подписи основаны на ее несовершенности, то есть на несоответствии хеш-функции одному или нескольким критериям криптографической стойкости c той оговоркой, что в случае ESIGN равенства в критериях стоит понимать с точностью до старших бит. Это послабление связано с условием проверки подписи, которое выполняется не только для исходного значения хеш-функции, но и для прочих, совпадающих в первых старших битах.
Допустим, что функция неустойчива к поиску коллизий, то есть можно найти такие различные и , что и совпадают в первых старших битах. Тогда, подписывая сообщение , автор , ничего не подозревая, автоматически подписывает сообщение , так как выполняется неравенство
Если выбранная хеш-функция криптографически стойкая, то атака с использованием коллизий займет операций вычисления хеш-функции, атака с использованием второго прообраза — операций, что считается неосуществимым, при больших .[8][9]
Атака на открытый ключ
Атака на открытый ключ заключается в попытке получить на его основе закрытый ключ . Сделать это можно, решив уравнение , то есть факторизовав число . Можно заметить, что в RSA число генерируется похожим образом, там , но на сегодняшний день вопрос о том, в каком из случаев факторизация становится проще или сложнее, остается открытым, так как эффективных алгоритмов факторизации до сих пор нет. На данный момент самым быстрым способом факторизовать число , что для ESIGN, что для RSA, является метод решета числового поля, который делает это со скоростью, зависящей от битовой длины . Однако, при большой битовой длине числа задача факторизации становится невыполнимой.[10][9]
Рекомендуемые параметры
Помимо уже введенных ограничений в описании ESIGN, для большей безопасности рекомендуется выбирать размер и равным или большим бит, размер равным или большим соответственно, а параметр большим или равным 8[11]:
- ;
- ;
Уровень безопасности относительно других схем цифровой подписи
Ниже представлена таблица соответствия уровня безопасности ESIGN уровням безопасности RSA и ECDSA при различных размерах параметра в битах. Можно заметить, что при одинаковым размерах RSA и ESIGN сравнимы по уровню безопасности.[12]
Remove ads
Преимущества
Схема ESIGN позволяет быстро генерировать подпись. Так как вычислительно сложные операции, такие как возведение в степень и нахождение обратного элемента , не зависят от подписываемого сообщения , их можно осуществить заранее и сохранить полученные значения в памяти. Таким образом, чтобы подписать сообщение, достаточно выполнить оставшиеся операции сложения, умножения и деления, доля которых в вычислительной сложности алгоритма создания подписи мала. В случае, когда , а битовая длина равна , скорость генерации подписи в больше, чем для RSA при соответствующих параметрах. Что же касается проверки подписи, то её скорость сравнима со скоростью проверки подписи в алгоритме RSA, открытая экспонента которого мала.[13][9]
Remove ads
Протоколы идентификации на основе ESIGN
С помощью ESIGN можно реализовать протоколы идентификации с нулевым разглашением, которые позволяют субъекту (англ. Prover — доказывающий) доказать субъекту (англ. Verifier — проверяющий) факт наличия информации, сохранив её в тайне от . Протоколы идентификации на основе ESIGN не уступают протоколу Фейга — Фиата — Шамира в своей эффективности. Мы рассмотрим два таких протокола: трёхраундовый и двухраундовый.[14]
Трёхраундовая схема идентификации
- генерирует открытые и секретные ESIGN ключи.
- выбирает случайным образом числа и , вычисляет , где — односторонняя функция, — операция конкатенации, и отправляет проверяющему .
- выбирает случайным образом число и отправляет доказывающему.
- вычисляет , генерирует подпись для и отправляет тройку проверяющему.
- проверяет выполнение равенства и достоверность подписи для сообщения .
Двухраундовая схема идентификации
- генерирует открытые и секретные ESIGN ключи.
- выбирает случайным образом число и отправляет доказывающему.
- выбирает случайным образом число , вычисляет , генерирует подпись для и отправляет проверяющему.
- проверяет выполнение равенства и достоверность подписи для сообщения .
В приведенных протоколах секретной информацией являются ключи , знание которых и доказывает субъект . Если результаты всех проверок на завершающих этапах оказываются успешными, то считается, что действительно обладает секретом.
Remove ads
Примечания
Литература
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads