Скачать презентацию Тема 4 Алгоритмы электронной цифровой подписи Лекция Скачать презентацию Тема 4 Алгоритмы электронной цифровой подписи Лекция

ЭЦП_Лекц09 (10-11)_Алгоритмы ЭЦП.ppt

  • Количество слайдов: 18

Тема № 4. Алгоритмы электронной цифровой подписи Лекция № 9. АЛГОРИТМЫ ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСИ Тема № 4. Алгоритмы электронной цифровой подписи Лекция № 9. АЛГОРИТМЫ ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСИ 1. Алгоритм цифровой подписи RSА 2. Алгоритм цифровой подписи Эль Гамаля (ЕGSА) 3. Алгоритм цифровой подписи DSА 4. Отечественный стандарт цифровой подписи

Для генерации пары ключей (закрытого и открытого) в алгоритмах ЭЦП, как и в асимметричных Для генерации пары ключей (закрытого и открытого) в алгоритмах ЭЦП, как и в асимметричных системах шифрования, используются разные математические схемы, в основе которых лежат сложные вычислительные задачи: - задача факторизации (разложения на множители) больших целых чисел; - задача дискретного логарифмирования. Математическое обоснование RSA: - поиск делителей очень большого натурального числа, являющегося произведением двух простых, - крайне трудоемкая процедура; - по открытому ключу очень сложно вычислить парный ему закрытый ключ.

АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ RSА: 1. Отправитель (автор) ЭД вычисляет два больших простых числа Р АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ RSА: 1. Отправитель (автор) ЭД вычисляет два больших простых числа Р и Q, затем находит их произведение N=Р*Q и значение функции (N) = (Р-1)(Q-1). 2. Далее отправитель вычисляет число Е из условий: Е ≤ (N), НОД (Е, (N)) = 1 и число D из условий: D < N, Е * D ≡ 1 (mod (N)). Пара чисел (Е, N) является открытым ключом. Эту пару чисел автор передает партнерам по переписке для проверки его ЭЦП. Число D сохраняется автором как закрытый ключ для подписывания.

Рис. 1. Обобщенная схема цифровой подписи RSA Рис. 1. Обобщенная схема цифровой подписи RSA

Недостатки алгоритма цифровой подписи RSА: 1. При вычислении N, ключей Е и D для Недостатки алгоритма цифровой подписи RSА: 1. При вычислении N, ключей Е и D для системы ЭЦП RSА необходимо проверять большое количество дополнительных условий. Невыполнение любого из них делает возможным фальсификацию ЭЦП. 2. Для обеспечения криптостойкости ЭЦП RSА на уровне 1018 необходимо использовать при вычислениях N, D и Е целые числа не менее 2512 (или около 10154) каждое, что требует больших вычислительных затрат, превышающих на 20. . . 30% вычислительные затраты других алгоритмов ЭЦП. 3. ЭЦП RSА уязвима к так называемой мультипликативной атаке.

Идея ЕGSА основана на том, что для обоснования практической невозможности фальсификации ЭЦП может быть Идея ЕGSА основана на том, что для обоснования практической невозможности фальсификации ЭЦП может быть использована более сложная вычислительная задача, чем разложение на множители большого целого числа, - задача дискретного логарифмирования.

АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ Эль Гамаля (EGSА) 1. Cначала выбирают некоторое большое простое целое число АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ Эль Гамаля (EGSА) 1. Cначала выбирают некоторое большое простое целое число Р и большое целое число G, причем G < Р. Р (~10308 или ~21024) и G (~10154 или ~2512) 2. Отправитель выбирает случайное целое число Х - закрытый ключ, причем 1 < Х ≤ (Р-1), и вычисляет Y =GX mod Р - открытый ключ. 3. Для подписания сообщение М, сначала отправитель хэширует его с помощью хэш-функции h(·) в целое число m: m = h(М), 1 < m < (Р-1) , и генерирует случайное целое число К, 1 < К < (Р-1), такое, что К и (Р-1) являются взаимно простыми.

АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ Эль Гамаля (EGSА) 4. Затем отправитель вычисляет целое число а = АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ Эль Гамаля (EGSА) 4. Затем отправитель вычисляет целое число а = GK mod Р и, применяя расширенный алгоритм Евклида, вычисляет с помощью закрытого ключа Х целое число b из уравнения m = Х * а + К * b (mod (Р-1)). 5. Пара чисел (а, b) образует цифровую подпись S=(а, b) , проставляемую под документом М. Тройка (М, а, b) передается получателю, в то время как пара чисел (Х, К) держится в секрете. 6. После приема подписанного сообщения (М, а, b) получатель проверяет соответствие подписи S=(а, b) сообщению М. Для этого получатель хэширует принятое сообщение М.

АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ Эль Гамаля (EGSА) 7. Затем получатель вычисляет значение А = Ya АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ Эль Гамаля (EGSА) 7. Затем получатель вычисляет значение А = Ya ab (mod Р) и признает сообщение М подлинным, только если А = Gm (mod Р). Т. е. проверяет справедливость соотношения Ya ab (mod Р) = Gm (mod Р).

Преимущества схемы Эль Гамаля по сравнению со схемой ЭЦП RSА: 1). При заданном уровне Преимущества схемы Эль Гамаля по сравнению со схемой ЭЦП RSА: 1). При заданном уровне стойкости алгоритма ЭЦП целые числа, участвующие в вычислениях, имеют запись на 25% короче, что уменьшает сложность вычислений и позволяет заметно сократить объем используемой памяти. . 2). При выборе модуля Р достаточно проверить, что это число является простым и что у числа (Р-1) имеется большой простой множитель (т. е. всего два достаточно просто. проверяемых условия). 3. Процедура формирования подписи по схеме Эль Гамаля не позволяет вычислять цифровые подписи под новыми сообщениями без знания закрытого ключа (как в RSА).

Недостаток алгоритма Эль Гамаля: 1). Длина цифровой подписи получается в 1, 5 раза больше, Недостаток алгоритма Эль Гамаля: 1). Длина цифровой подписи получается в 1, 5 раза больше, что, в свою очередь, увеличивает время ее вычисления. . .

АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ DSА 1. Cначала выбирают большие числа: G и Р, по L АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ DSА 1. Cначала выбирают большие числа: G и Р, по L бит каждое; q – простое число (160 бит). Числа G, Р, q являются открытыми и могут быть общими для всех пользователей сети. 2. Отправитель выбирает случайное целое число Х - закрытый ключ, причем 1 < Х ≤ q, и вычисляет Y =GX mod Р - открытый ключ. 3. Для подписания сообщение М, сначала отправитель хэширует его с помощью хэш-функции h(·) в целое число m: m = h(М), 1

АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ DSА 4. Затем отправитель вычисляет с помощью закрытого ключа Х целое АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ DSА 4. Затем отправитель вычисляет с помощью закрытого ключа Х целое число s = ((m + r * X)/K) mod q. 5. Пара чисел (r, s) образует цифровую подпись S=(r, s) , проставляемую под документом М. Тройка чисел (М, r, s) передается получателю. 6. После приема подписанного сообщения (М, r, s) получатель проверяет выполнение условий 0 < r < q, 0

АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ DSА 7. Затем получатель вычисляет значение w = (1/s) mod q АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ DSА 7. Затем получатель вычисляет значение w = (1/s) mod q , хэш-значение m = h(М) и числа u 1 = (m * w) mod q , u 2 = (r * w) mod q. 8. Далее получатель с помощью открытого ключа Y вычисляет значение v = ((Gu 1 * Yu 2 ) mod Р) mod q и проверяет выполнение условия v = r. Если это условие выполняется, тогда подпись S = (r, s) под документом M признается подлинной.

Преимущества алгоритма DSA по сравнению с алгоритмом Эль Гамаля: 1). При любом допустимом уровне Преимущества алгоритма DSA по сравнению с алгоритмом Эль Гамаля: 1). При любом допустимом уровне стойкости числа q, X, r, s имеют длину по 160 бит, сокращая длину подписи до 320 бит. 2). Большинство операций с числами К, r, s, Х при вычислении подписи производится по модулю числа q длиной 160 бит, что сокращает время вычисления подписи. 3). При проверке подписи большинство операций с числами u 1, u 2, v, w также производится по модулю числа q длиной 160 бит, что сокращает объем памяти и время вычисления. Недостатком алгоритма DSА является то, что при подписывании и проверке подписи приходится выполнять сложные операции деления по модулю q: s = ((m + r. X)/K) (mod q), w = (1/s) (mod q) , что не позволяет получать максимальное быстродействие.

Отечественный стандарт цифровой подписи (ГОСТ Р 34. 10 -94) концептуально близок к алгоритму DSА. Отечественный стандарт цифровой подписи (ГОСТ Р 34. 10 -94) концептуально близок к алгоритму DSА. В нем используются следующие параметры: р - большое простое число длиной от 509 до 512 бит либо от 1020 до 1024 бит; q - простой сомножитель числа (р-1), имеющий длину 254. . . 256 бит; а - любое число, меньшее (р-1), причем такое, что аq mod p = 1; х – закрытый ключ - некоторое число, меньшее q; у = аx mod р - открытый ключ. Этот алгоритм использует однонаправленную хэш-функцию Н(х) по стандарту ГОСТ Р 34. 11 -94.

АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ ОТЕЧЕСТВЕННОГО СТАНДАРТА: 1. Пользователь А генерирует случайное число k, причем k АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ ОТЕЧЕСТВЕННОГО СТАНДАРТА: 1. Пользователь А генерирует случайное число k, причем k < q. 2. Пользователь А вычисляет значения r = (аk mod p) mod p , s = (х * r + k (Н(m))) mod p. Если Н(m) mod q = 0, то значение Н(m) mod q принимают равным 1. Если r=0, то выбирают другое значение k и начинают снова. Цифровая подпись представляет собой два числа: r mod 2256 и s mod 2256. Пользователь А отправляет эти числа пользователю В. 3. Пользователь В проверяет полученную подпись, вычисляя v = Н(m)q-2 mod q , z 1 = (s * v) mod q , z 2 = ((q-r) * v) mod q , u = ((аz 1 * уz 2 ) mod р) mod p. 4. Если u = r, то подпись считается верной.

Различие между отечественным алгоритмом и алгоритмом DSА заключается в том, что 1. В DSА Различие между отечественным алгоритмом и алгоритмом DSА заключается в том, что 1. В DSА s = (k-1 (х * r + (Н(m)))) mod q , что приводит к другому уравнению верификации. 2. В отечественном стандарте ЭЦП параметр q имеет длину 256 бит, а на Западе - 160 бит. Различие в значениях параметра q является отражением стремления разработчиков отечественного стандарта к получению более безопасной подписи.