Быстрая цифровая подпись
Быстрая цифровая подпись – вариант цифровой подписи, использующий алгоритм с гораздо меньшим (в десятки раз) числом вычислений модульной арифметики по сравнению с традиционными схемами ЭЦП. Схема быстрой электронной подписи, как и обычная, включает в себя алгоритм генерации ключевых пар пользователя, функцию вычисления подписи и функцию проверки подписи.
Проблемы ЭЦППравить
С момента изобретения ЭЦП в 1976 году, она является самой многообещающей областью исследований в криптосистемах с открытым ключом. Одним из стандартных математических решений для построения криптографических алгоритмов является задача дискретного логарифмирования, на основе которой были разработаны многие алгоритмы получения ЭЦП. Главным недостатком традиционных алгоритмов ЭЦП, таких как схема Эль-Гамаля и RSA, является их вычислительная сложность. Вычисление экспонент в модульной арифметике требует наибольших вычислительных затрат в схемах криптосистем с открытым ключом. В настоящее время ведётся большое количество работ по улучшению производительности криптографических алгоритмов путём сокращения количества вычислений экспонент. Наиболее короткой известной схемой ЭЦП является BLS (Boneh – Lynn - Shacham), использующая эллиптические кривые, но она ограничена группами, в которых есть функция составления пары. Разработчики алгоритмов работают как над улучшением традиционных схем с дискретным логарифмированием, используя параллельные вычисления экспонент, так и изучают принципиально другие подходы, основанные, например, на теории графов вместо модульной арифметики.
Некоторые алгоритмы быстрой цифровой подписиПравить
Схема быстрой ЭЦП, основанная на алгоритме Диффи-ХеллманаПравить
Пусть – абелева группа, – её циклическая подгруппа с генератором порядка , где – большое простое число. Пусть и - параметры безопасности, причём . Пусть , и - хеш-функции. Схема подписи представляет собой следующее:
Генерация ключа
Пользователь выбирает случайный секретный ключ и вычисляет открытый ключ .
Создание подписи
Входными данными являются секретный ключ и сообщение .
Далее сторона, создающая подпись:
1. выбирает случайное число и случайный бит ;
2. вычисляет ;
3. вычисляет ;
4. вычисляет , где ;
5. вычисляет ;
6. вычисляет .
Подписью сообщения является .
Проверка подписи
Чтобы проверить подпись сообщения m, делается следующее:
1. представляется как ;
2. вычисляется и ;
3. вычисляется ;
4. проверяется, выполняется ли .
Если равенство на шаге 4 выполняется, подпись проходит проверку.
Схема быстрой ЭЦП, основанная на алгоритме Фиата-ШамираПравить
ZN обозначает кольцо целых чисел по модулю , и — параметры безопасности, обычно ,
Роль центра аутентификации ключей (ЦАК)
ЦАК выбирает:
- случайные простые числа и так, чтобы ;
- однонаправленную хеш-функцию ;
- свои собственные секретный и открытый ключи.
ЦАК публикует , и открытый ключ.
Секретный ключ ЦАК используется для подписи создаваемых им открытых ключей. Для создания таких подписей ЦАК может использовать любую безопасную схему ЭЦП.
Генерация пользовательских ключей.
Каждый пользователь выбирает секретный ключ , состоящий из случайных чисел , меняется от 1 до , таких, что НОД для всех от 1 до . Создание подписи может быть ускорено, если выбирать в качестве небольшие целые числа. Безопасность такой схемы основана на предположении о том, что вычисление корней является трудным. В настоящее время неизвестно о существовании алгоритмов, вычисляющих корни при условии, что эти корни порядка .
Регистрация пользователей.
ЦАК проверяет соответствие пользователя, создаёт строку , содержащую имя, адрес и т. д. и создаёт подпись для пары , состоящую из и открытого ключа пользователя .
Создание подписи.
Входное сообщение , секретный ключ и — модуль, по которому проводят вычисления.
1. Выбирается случайное число из диапазона , вычисляется .
2. Вычисляется .
3. Вычисляется .
Подписью на выходе является пара .
Создание подписи требует не более операций умножения по модулю, а в среднем для случайного требуется только операций умножения.
Проверка подписи.
Входные данные — подпись , сообщение , , .
1. Проверяется подпись для .
2. Вычисляется .
3. Проверяется, что .
Для проверки подписи требуется в среднем для случайного операций умножения по модулю, максимум .
Безопасность подписи.
Чтобы подделать подпись сообщения , криптоаналитик должен решить уравнение для и .
В настоящее время неизвестно алгоритмов для решения этого уравнения.
Применение быстрой ЭЦППравить
Быстрые алгоритмы цифровой подписи являются наиболее эффективными в тех случаях, когда преимущественно важна скорость получения ключа и небольшой размер подписи. Подобные требования имеют место в мобильных, сенсорных или персональных сетях (радиус которых ограничивается пределами одной комнаты) при передаче мультимедийного трафика. Использование цифровой подписи в мобильных телефонах стандарта GSM позволяет пользователям самостоятельно создавать PIN- код, а не получать его от оператора.
Реализация ускоренных алгоритмов создания ЭЦП для устройств с ограниченными ресурсами, таких как КПК, встроенные смарт-карты и мобильные телефоны, вычислительная мощность которых сильно уступает возможностям персональных компьютеров, позволит тратить меньше энергии на создание и хранение подписи и тем самым увеличит время работы устройства без подзарядки.
ЛитератураПравить
- Fast Digital Signature Schemes as Secure as Diffie-Hellman Assumptions, Changshe Ma, Jian Weng and Dong Zheng, January 22, 2007
- Fasr Signature Generation with a Fiat Shamir-Like Scheme, H.Ong,C.P.Schnorr