Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КИС / Лекции / Лекция 13.doc
Скачиваний:
127
Добавлен:
13.04.2015
Размер:
173.06 Кб
Скачать

Метод формирования цифровой подписи rsa

Один из первых способов реализации цифровой подписи получил название RSA. Он был разработан в 1977 году в Массачусетском технологическом институте США. На основе этого способа был разработан и опубликован в 1993 году соответствующий стандарт.

Процесс формирования сообщения с цифровой подписью и его прочтения по методу RSA можно представить из следующих операций:

  1. Отправитель вычисляет секретный ключ Х и открытый ключ в виде пары чисел (E, N). Они определяются по следующей методике. Сначала выбираются два больших целых числа P, Q и вычисляются числа N=PQ, N1=(Q-1)(P-1). После чего подбирают значения E и X, исходя из условий: , и , , где НОД – наибольший общий делитель, mod – взятие остатка от деления.

  2. Вычисляется хеш-функция сообщения M;

  3. Вычисляется цифровая электронная подпись в виде числа ;

  4. Получателю направляются сообщение М, цифровая подпись и открытый ключ в виде пары чисел (Е, N);

  5. Используя открытый ключ, получатель вычисляет число и хеш-функцию полученного сообщения M;

  6. Получатель сравнивает результаты вычислений m и m’’. Если m’’=m, то считается, что сообщение M и подпись t являются подлинными.

Таким образом, цифровая подпись проверяется известной процедурой на основании открытого ключа. Открытый и секретный ключи жёстко связаны между собой, но с вычислительной точки зрения трудно найти по открытому ключу секретный, либо подобрать саму подпись исходя только из известной процедуры проверки.

Метод RSA требует довольно существенных вычислительных затрат (необходимо использовать большие числа N, E, X – не менее 512 бит). Сами авторы метода RSA рекомендуют следующие размеры длины открытого ключа: 768 бит – для частных лиц, 1024 бит – для коммерческой информации, 2048 бит – для особо секретной информации.

Стандарт цифровой подписи Российской Федерации

Отечественный стандарт цифровой подписи представлен ГОСТ Р 34.10-94. Алгоритм цифровой подписи, определяемый этим стандартом, концептуально близок к американскому алгоритму DSA. В нём используются следующие параметры:

p – большое простое число длиной от 509 до 512 бит, либо от 1020 до 1024 бит;

q – простой сомножитель числа (p-1), имеющий длину 256 бит;

а – любое число, меньшее (р-1), причём такое, что ;

х – некоторое число, меньшее q;

y – число, такое что ;

Кроме того, этот алгоритм использует однонаправленную хеш-функцию H(x), определяемую стандартом ГОСТ Р 34.11-94.

Первые три параметра p, q и a являются открытыми и могут быть общими для всех пользователей сети. Число x является секретным ключом. Число y является открытым ключом.

Электронный документ можно рассматривать как некоторый двоичный код (двоичное число). Он может иметь длину в несколько тысяч или миллионов бит. Хеш-функция предназначена для сжатия кода подписываемого документа М до нескольких десятков, сотен или тысяч бит. Хеш-функция h(Z) принимает в качестве аргумента Z код сообщения M, который может иметь произвольную длину, и возвращает значение фиксированной длины. Пусть хеш-функция имеет длину 512 бит, а сообщения M1 и M2 представлены кодами разной длины. После подстановки в хеш-функцию эти два сообщения дадут два двоичных кода одинаковой длины, но с различными значениями, т.е. .

Хеш-функция должна удовлетворять ряду условий:

  • обладать свойством необратимости, то есть задача подбора документа M, который обладал бы требуемым значением хеш-функции, должна быть вычислительно неразрешима;

  • вероятность того, что значения хеш-функций двух различных документов (вне зависимости от их длин) совпадут, должна быть ничтожно мала.

Чтобы подписать некоторое сообщение m, а затем проверить подпись, выполняются следующие шаги:

  1. Пользователь А генерирует случайное число k, причём k<q

  2. Пользователь А вычисляет значения:

,

.

Если r=0, то выбирают другое значение k и начинают снова.

Пользователь А отправляет числа r и s пользователю В.

  1. Пользователь В проверяет полученную подпись, вычисляя:

,

,

,

.

Если u=r, то подпись считается верной.

Соседние файлы в папке Лекции