История
Данный алгоритм разработан главным управлением безопасности связи Федерального агентства правительственной связи и информации при Президенте Российской Федерации при участии Всероссийского научно-исследовательского института стандартизации. Разрабатывался взамен ГОСТа Р 34.10-94 для обеспечения большей стойкости алгоритма.
Описание
ГОСТ Р 34.10-2001 основан на эллиптических кривых. Его стойкость основывается на сложности взятия дискретного логарифма в группе точек эллиптической кривой, а также на стойкости хэш-функции по ГОСТу Р 34.11. После подписывания сообщения М к нему дописывается цифровая подпись размером 512 бит и текстовое поле. В текстовом поле могут содержаться, например, дата и время отправки или различные данные об отправителе:
Основным достоинством криптосистем на основе эллиптических кривых является то, что они обеспечивают надежность, адекватную классическим криптосистемам (RSA) на существенно меньших по длине ключах, что положительно отражается на времени кодирования и декодирования. Криптосистемы цифровой подписи на основе эллиптических кривых с длиной ключа 160 бит имеют одинаковую стойкость с криптосистемами DSA и Эль-Гамаля с длиной ключа 1024 бита. Ожидается, что в ближайшем будущем данные системы займут доминирующее положение в криптографии с открытым ключом. Однако, это повлечет более серьезные исследования свойств этих криптоалгоритмов, что может привести к появлению новых, более эффективных алгоритмов решения проблемы дискретного логарифма в группе точек эллиптических кривых.
Параметры схемы цифровой подписи
· простое число p — модуль эллиптической кривой такой, что p > 2255
· эллиптическая кривая E задается своим инвариантом J(E) или коэффициентами
где Fp —конечное простое поле. J(E) связан с коэффициентами a и b следующим образом
при этом
· целое число m — порядок группы точек эллиптической кривой (то есть число элементов группы). m не должно совпадать с p
· простое число q, порядок одной из циклических подгрупп группы точек эллиптической кривой, то есть выполняется m = nq, для некоторого n є N .
Так же q лежит в пределах 2254 < q < 2256.
· точка P (xp, yp)≠0 эллиптической кривой E,
· являющаяся генератором подгруппы порядка q, или другими словами qP = 0. Здесь qP = P + P + ...(q раз). А 0 - нулевой элемент группы точек эллиптической кривой.
· h(M) — хэш-функция (ГОСТ Р 34.11-94), которая конечные сообщения M отображает в двоичные вектора длины 256 бит.
Каждый пользователь цифровой подписи имеет личные ключи:
• ключ шифрования d — целое число, лежащее в пределах
• 0 < d < q.
• ключ расшифрования Q (xq, yq)— точка эллиптической кривой, dP = Q.
При этом должны выполняться
где
И
Формирование цифровой подписи
- Вычисление хэш-функции от сообщения М: h(M)
- Вычисление e = z (mod q), и если e = 0, положить e = 1. Где z — целое число
- Генерация случайного числа k, такого что 0 < k < q
- Вычисление точки эллиптической кривой C = kP, и по ней нахождение r = xc(mod q) (xc — координата x точки C). Если r = 0, возвращаемся к предыдущему шагу.
- Нахождение s = rd + ke(mod q). Если s = 0, возвращаемся к шагу 3.
- Формирование цифровой подписи , где r и s — векторы, соответствующие r и s.
• Проверка цифровой подписи
- Вычисление по цифровой подписи чисел r и s, учитывая, что ξ =(r | s), где r и s — числа, соответствующие векторам r и s. Если хотя бы одно из неравенств r < q и s < q неверно, то подпись неправильная.
- Вычисление хэш-функции от сообщения М: h(M)
- Вычисление e = z(mod q), и если e = 0, положить e = 1. Где z — целое число соотвествующее h(M)
- Вычисление v = e - 1(mod q).
- Вычисление z1 = sv(mod q) и z2 = - rv(mod q)
- Вычисление точки эллиптической кривой C = z1P + z2Q. И определение R = xc(mod q), где xc — координата x кривой C. В случае равенства R = r подпись правильная, иначе — неправильная.
Государственная дума на заседании 25 марта 2011 приняла в третьем, окончательном чтении закон «Об электронной подписи», который заменит действующий сейчас федеральный закон №1 от 10 января 2002 года «Об электронной цифровой подписи».
Принятие нового закона вызвано необходимостью устранить некоторые недостатки существующего законодательства, а также привести российские принципы регулирования электронных подписей в соответствие с европейскими нормами.
Согласно новому закону, электронная подпись определяется как информация в электронно-цифровой форме, которая используется для идентификации физического или юридического лица.
Определены три вида электронной подписи: простая, усиленная и квалифицированная электронная подпись. Средства, с помощью которых осуществляется создание подписи и её проверка, должны соответствовать установленным требованиям и содержать элементы криптографии. Законопроект регулирует выдачу и использование сертификатов ключа подписи, а также аккредитацию и оказание услуг удостоверяющих центров. Предусмотрены механизмы признания иностранных электронных подписей.
Закон вступит в силу после подписания его Президентом РФ и официального опубликования. При этом федеральный закон «Об электронной цифровой подписи» признается утратившим силу с 1 июля 2012 года. Сертификаты ключей подписи, выданные в соответствии с действующим законом, будут действовать до истечения установленного в них срока.