Понятие, стандарты, реализация электронной подписи.
В симметричной криптографии существует проблема электронной подписи – необходимо, чтобы получатель, а в случае разбирательств, и третья сторона могли убедиться в авторстве сообщения и его неизменности. Данная проблема решается путем использования имитовставки, но в этом случае отправителю придется предъявить секретный ключ, что приводит к полной дискредитации секретного ключа и возможности чтения информации.
Проблема электронной подписи решена в асимметричной криптографии.
Электронная подпись вводится, так как необходимо:
1) Предотвратить отказ от посланного сообщения
2) Защититься от модификации присланного сообщения
3) Предотвратить подделку сообщения
4) Предотвратить отправку сообщения от чужого имени
5) Предотвратить перехват сообщения с целью его модификации
6) Предотвратить повтор сообщений
Подпись создается с помощью личного ключа отправителя, причем подписывается не само сообщение, а его хэш-функция, что быстрее. Таким образом, получателю отправляется сообщение с приложенной к нему подписью.
Подпись можно проверить с помощью общеизвестного открытого ключа отправителя, который расшифровывает хэш-функцию, которое сравнивает с хэш-функцией, вычисленной от полученного сообщения. Схема представлена на рисунке:
Если полученные хэш-функции совпадают, то получатель может быть уверен, что сообщение не изменено, а подпись принадлежит лицу, имеющему доступ к соответствующему личному ключу. Отправитель не может отказаться от сообщения, если признает, что ЛК известен только ему.
Злоумышленник без знания ЛК не сможет сделать осмысленных изменений в пересылаемом сообщении и не сможет сформировать такую же подпись. Электронная подпись обеспечивает контроль целостности и авторства сообщения, но не обеспечивает его конфиденциальность.
В 1991 году принят стандарт электронной подписи DSS.
В 1994 году в России принят ГОСТ 34.10-94. В основе обоих стандартов лежит схема Эль Гамаля, только разные его модификации.
При создании ЭП используют общие несекретные параметры p и q – простые числа, причем q является делителем p-1.
2509<p<2512, 21020<p<21024, 2254<2256 . Также используется число а, 1<a<p-1, удовлетворяющее условию aqmodp=1.
У пользователя есть случайно сгенерированное число Х – личный ключ. aXmodp – открытый ключ.
Подпись вырабатывается следующим образом:
1) С датчика случайных чисел снимается число (0юююй)ю Оно является секретным и удаляется после выработки ЭП.
2) Пользователь вычисляет r=(akmodp)modq
S=(xr+k*h(m))modq
Если r или S = 0, то выбирается новое значении к. Числа r и S образуют электронную подпись(у нас они длиной 256 бит).
Процедура проверки:
1) Лежат ли r и S в диапазоне (0,q). Если нет, то ошибка
2) Вычисляем хэш-функцию
3) Вычисляем v=h(M)q*rmodq
Z1=(S*v)modq
Z2=((q*r)*v)modq
u=((aZ1*yZ2)modp)modq
Если r= u, то подпись правильна.
В 1998 году появился стандарт электронной подписи ECDSA, в России аналогом явился ГОСТ 3410-2001. Он позволяет достичь того же уровня защиты при значительно меньшей длине ключа, что увеличивает скорость и уменьшает объем занимаемой памяти.
Используется эллиптическая криптография: y2=x3+ax+b
Множество точек эллиптической кривой вместе с бесконечно удаленной точной 0 и сведенной операцией сложения называется группой.
Для каждой эллиптической кривой число точек в группе является большим, но конечным. Точки кривой могут складываться, но не могут умножаться. Однако возможно скалярное умножение, когда соответствующее число раз выполняется прибавление одной и той же точки: