Алгоритм электронной цифровой подписи RSA.



Необходимо вычислить пару ключей (секретный ключ и открытый ключ). Для этого отправитель документов вычисляет два больших простых числа Р и Q, затем находит их

произведение и значение функции

Далее отправитель вычисляет число Е. Пара чисел (Е, N) является открытым ключом. Эту пару чисел автор передает партнерам для проверки его цифровых подписей. Создаётся секретный ключ D.

Если, отправитель хочет подписать сообщение М перед его отправкой - сначала сообщение М сжимают с помощью хэш-функции h() в целое число m = h(М).Затем вычисляют цифровую подпись S под электронным документом М, используя хэш-значение m и секретный ключ D: S = mD (mod N). Пара (М, S) передается партнеру-получателю как документ М, подписанный цифровой подписью S, причем подпись S сформирована обладателем секретного ключа D.

После приема пары (М, S) получатель вычисляет хэш-значение сообщения М двумя разными способами:

1) восстанавливает хэш-значение m', с использованием открытого ключа Е: m' = SE (mod N).

2) находит результат хэширования принятого сообщения М с помощью такой же хэш-функции h(): m = h(М). Открытый ключ Е иногда называют "идентификатором" подписавшего.


Алгоритм электронной цифровой подписи Эль Гамаля.

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

Для генерации пары ключей (открытый ключ - секретный ключ), сначала выбирают некоторые большие простые целые числа Р(~10308 или ~21024) и G(~10154 или ~2512), причем G < Р. Они не являются секретными.

Отправитель выбирает случайное целое число X, 1<Х<(Р-1), и вычисляет Y=GXmod Р.

Число Y является открытым ключом, используемым для проверки подписи отправителя. Число Y открыто, а Х является секретным ключом отправителя для подписывания документов.

Для того чтобы подписать сообщение М, сначала отправитель хэширует его с помощью хэш-функции h(•) в целое число m:

m = h(М), 1 < m < (Р-1) ,

и генерирует случайное целое число К, 1 < К < (Р-1).

Затем отправитель вычисляет целое число а = GK mod Р, и, применяя расширенный алгоритм Евклида, вычисляет с помощью секретного ключа Х целое число b из уравнения m = Х * а + К * b (mod (Р-1)) .

Следует отметить, что выполнение каждой подписи по методу Эль Гамаля требует нового значения К.


Белорусские стандарты ЭЦП и функции хэширования.

Белорусские стандарты, регламентирующие использование электронно-цифровой подписи - «Процедура выработки и проверки ЭЦП» и «Функция хеширования», были разработаны в 1999 г. и приняты в 2000 г.

Так открытый ключ и секретный ключ связаны известным соотношением , которое позволяет легко вычислить К0 по КС, но очень сложным является обратное. К подписываемому сообщению добавляется случайная компонента t, усложняя возможный подбор хэш-значения по известному тексту сообщения. Обозначения, принятые в стандарте СТБ-1176.02-99

- множество, состоящие из числе 1,2,..., p-1;

- присвоение параметру с значения d;

cmodd - остаток от деления c на d

- разложение неотрицательного целого числа с по основанию , где k и b — натуральные числа, - целое число,

- бинарная операция, определенная на множестве неотрицательных числе по формуле  

операция  определяется для любых c  и  по формуле ,  - степень числа на основе операции , определяется индуктивно по формуле  где k — натуральное число;

h — функция хеширование, процедура вычисления значений которой соответствует СТБ.

 


Дата добавления: 2018-05-09; просмотров: 622; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!