Главная страница
Навигация по странице:

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

  • 9.2.1. Алгоритм цифровой подписи Эль Гамаля (EGSA)

  • 9.2.2. Алгоритм цифровой подписи DSA

  • 9.2.3. Отечественный стандарт цифровой подписи

  • П 135 136риложение 1

  • П 137риложение 1

  • Методичка МОИБ.. Методические разработки к лабораторным работам по дисциплине средства обеспечения информационной безопасности в сетях передачи данных для студентов специальностей 200900, 201000, 201800


    Скачать 0.98 Mb.
    НазваниеМетодические разработки к лабораторным работам по дисциплине средства обеспечения информационной безопасности в сетях передачи данных для студентов специальностей 200900, 201000, 201800
    АнкорМетодичка МОИБ..doc
    Дата29.03.2018
    Размер0.98 Mb.
    Формат файлаdoc
    Имя файлаМетодичка МОИБ..doc
    ТипМетодические разработки
    #17365
    страница7 из 7
    1   2   3   4   5   6   7


    9.1.2. Отечественный стандарт хэш-функции

    Российский стандарт ГОСТ Р 34.11-94 определяет алгоритм и процедуру вычисления хэш-функции для любых последовательностей двоичных символов, применяемых в криптографических методах обработки и защиты информации. Этот стандарт базируется на блочном алгоритме шифрования ГОСТ 28147-89, хотя в принципе можно было бы использовать и другой блочный алгоритм шифрования с 64-битовым блоком и 256-битовым ключом.

    Данная хэш-функция формирует 256-битовое хэш-значение.

    Функция сжатия Hi = f (Mi, Hi–1) (оба операнда Mi и Hi–1 являются 256-битовыми величинами) определяется следующим образом:

    1. Генерируются 4 ключа шифрования Kj, j = 1…4, путем линейного смешивания Mi, Hi–1 и некоторых констант Cj.

    2. Каждый ключ Kj, используют для шифрования 64-битовых подслов hi слова Hi–1 в режиме простой замены: Sj=(hj). Результирующая последовательность S4, S3, S2, S1 длиной 256 бит запоминается во временной переменной S.

    3. Значение Hi является сложной, хотя и линейной функцией смешивания S, Mi и Hi–1.

    При вычислении окончательного хэш-значения сообщения M учитываются значения трех связанных между собой переменных:

    Hn – хэш-значение последнего блока сообщения;

    Z – значение контрольной суммы, получаемой при сложении по модулю 2 всех блоков сообщения;

    L
    126
    – длина сообщения.

    Эти три переменные и дополненный последний блок M´ сообщения объединяются в окончательное хэш-значение следующим образом:

    H = f (Z Å M´, f (L, f (M´, Hn))).

    Данная хэш-функция определена стандартом

    ГОСТ Р 34.11-94 для использования совместно с pоссийским стандартом электронной цифровой подписи.
    9.2. Алгоритмы электронной цифровой подписи

    Технология применения системы ЭЦП предполагает наличие сети абонентов, посылающих друг другу подписанные электронные документы. Для каждого абонента генерируется пара ключей: секретный и открытый. Секретный ключ хранится абонентом в тайне и используется им для формирования ЭЦП. Открытый ключ известен всем другим пользователям и предназначен для проверки ЭЦП получателем подписанного электронного документа. Иначе говоря, открытый ключ является необходимым инструментом, позволяющим проверить подлинность электронного документа и автора подписи. Открытый ключ не позволяет вычислить секретный ключ.

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

    • задача факторизации (разложения на множители) больших целых чисел;

    • задача дискретного логарифмирования.


    127

    9.2.1. Алгоритм цифровой подписи Эль Гамаля (EGSA)

    Более надежный и удобный, чем RSA, для реализации на персональных компьютерах алгоритм цифровой подписи был разработан в 1984 г. американцем арабского происхождения Тахером Эль Гамалем. В 1991 г. НИСТ США обосновал перед комиссией Конгресса США выбор алгоритма цифровой подписи Эль Гамаля в качестве основы для национального стандарта.

    Название EGSA происходит от слов El Gamal Signature Algorithm (алгоритм цифровой подписи Эль Гамаля). Идея EGSA основана на том, что для обоснования практической невозможности фальсификации цифровой подписи может быть использована более сложная вычислительная задача, чем разложение на множители большого целого числа,– задача дискретного логарифмирования. Кроме того, Эль Гамалю удалось избежать явной слабости алгоритма цифровой подписи RSA, связанной с возможностью подделки цифровой подписи под некоторыми сообщениями без определения секретного ключа.

    Рассмотрим подробнее алгоритм цифровой подписи Эль Гамаля. Для того чтобы генерировать пару ключей (открытый ключ – секретный ключ), сначала выбирают некоторое большое простое целое число P и большое целое число G, причем G < P. Отправитель и получатель подписанного документа используют при вычислениях одинаковые большие целые числа P (

    10308 или 21024) и G (10154 или 2512), которые не являются секретными.

    Отправитель выбирает случайное целое число X,

    1< X £ (P –1), и вычисляет

    Y = GX mod P.

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

    Число X является секретным ключом отправителя для подписывания документов и должно храниться в секрете.

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

    m = h(M), 1< m < (P –1),

    и генерирует случайное целое число K, 1< K< (P –1), такое, что K и (P –1) являются взаимно простыми. Затем отправитель вычисляет целое число a:

    a = GK mod P

    и, применяя расширенный алгоритм Евклида, вычисляет с помощью секретного ключа X целое число b из уравнения

    m = X* a + K * b (mod (P –1)).

    Пара чисел (a,b) образует цифровую подпись S:

    S = (a,b),

    проставляемую под документом M.

    Тройка чисел (M,a,b) передается получателю, в то время как пара чисел (X,K) держится в секрете.

    После приема подписанного сообщения (M,a,b) получатель должен проверить, соответствует ли подпись S = (a,b) сообщению M. Для этого получатель сначала вычисляет по принятому сообщению M число

    m = h(M),

    т.е. хэширует принятое сообщение M.

    Затем получатель вычисляет значение

    A = Ya ab (mod P)

    и признает сообщение M подлинным, если, и только если

    A = Gm (mod P).

    Иначе говоря, получатель проверяет справедливость соотношения

    Ya ab (mod P) = Gm (mod P).

    М
    129
    ожно строго математически доказать, что последнее равенство будет выполняться тогда, и только тогда, когда подпись S=(a,b) под документом M получена с помощью именно того секретного ключа X, из которого был получен открытый ключ Y. Таким образом, можно надежно удостовериться, что отправителем сообщения M был обладатель именно данного секретного ключа X, не раскрывая при этом сам ключ, и что отправитель подписал именно этот конкретный документ M.

    Следует отметить, что выполнение каждой подписи по методу Эль Гамаля требует нового значения K, причем это значение должно выбираться случайным образом. Если нарушитель раскроет когда-либо значение K, повторно используемое отправителем, то он сможет раскрыть секретный ключ X отправителя.

    Следует отметить, что схема Эль Гамаля является характерным примером подхода, который допускает пересылку сообщения M в открытой форме вместе с присоединенным аутентификатором (a,b). В таких случаях процедура установления подлинности принятого сообщения состоит в проверке соответствия аутентификатора сообщению.

    Схема цифровой подписи Эль Гамаля имеет ряд преимуществ по сравнению со схемой цифровой подписи RSA:

    1. При заданном уровне стойкости алгоритма цифровой подписи целые числа, участвующие в вычислениях, имеют запись на 25% короче, что уменьшает сложность вычислений почти в два раза и позволяет заметно сократить объем используемой памяти.

    2. При выборе модуля P достаточно проверить, что это число является простым и что у числа (P –1) имеется большой простой множитель (т.е. всего два достаточно просто проверяемых условия).

    3
    130
    . Процедура формирования подписи по схеме Эль Гамаля не позволяет вычислять цифровые подписи под новыми сообщениями без знания секретного ключа (как в
    RSA).

    Однако алгоритм цифровой подписи Эль Гамаля имеет и некоторые недостатки по сравнению со схемой подписи RSA. В частности, длина цифровой подписи получается в 1,5 раза больше, что, в свою очередь, увеличивает время ее вычисления.
    9.2.2. Алгоритм цифровой подписи DSA

    Алгоритм цифровой подписи DSA (Digital Signature Algorithm) предложен в 1991 г. в НИСТ США для использования в стандарте цифровой подписи DSS (Digital Signature Standard). Алгоритм DSA является развитием алгоритмов цифровой подписи Эль Гамаля и К.Шнорра.

    Отправитель и получатель электронного документа используют при вычислении большие целые числа: G и P – простые числа, L бит каждое (512 £ L £ 1024); q – простое число длиной 160 бит (делитель числа (P –1)). Числа G, P, q являются открытыми и могут быть общими для всех пользователей сети.

    Отправитель выбирает случайное целое число X, 1< X< q. Число X является секретным ключом отправителя для формирования электронной цифровой подписи.

    Затем отправитель вычисляет значение

    Y = GX mod P.

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

    Этот алгоритм также предусматривает использование односторонней функции хэширования h(·). В стандарте DSS определен алгоритм безопасного хэширования SHA (Secure Hash Algorithm).

    Д
    131
    ля того чтобы подписать документ M, отправитель хэширует его в целое хэш-значение m:

    m = h(M), 1< m < q,

    затем генерирует случайное целое число K, 1< K< q, и вычисляет число r:

    r = (GK mod P) mod q.

    Затем отправитель вычисляет с помощью секретного ключа X целое число s:

    s = mod q.

    Пара чисел r и s образует цифровую подпись

    S = (r ,s)

    под документом M.

    Таким образом, подписанное сообщение представляет собой тройку чисел [M, r, s].

    Получатель подписанного сообщения [M, r, s] проверяет выполнение условий

    0 < r < q, 0 < s < q

    и отвергает подпись, если хотя бы одно из этих условий не выполнено.

    Затем получатель вычисляет значение

    w = mod q,

    хэш-значение

    m = h(M)

    и числа

    u1 = (m * w) mod q,

    u2 = (r * w) mod q.

    Далее получатель с помощью открытого ключа Y вычисляет значение

    v = (() mod P) mod q

    и проверяет выполнение условия

    v = r.

    Если условие v = r выполняется, тогда подпись

    S
    132
    = (r,s) под документом M признается получателем подлинной.

    Можно строго математически доказать, что последнее равенство будет выполняться тогда, и только тогда, когда подпись S = (r,s) под документом M получена с помощью именно того секретного ключа X, из которого был получен открытый ключ Y. Таким образом, можно надежно удостовериться, что отправитель сообщения владеет именно данным секретным ключом X (не раскрывая при этом значения ключа X) и что отправитель подписал именно данный документ M.

    По сравнению с алгоритмом цифровой подписи Эль Гамаля алгоритм DSA имеет следующие основные преимущества:

    1. При любом допустимом уровне стойкости, т.е. при любой паре чисел G и P (от 512 до 1024 бит), числа q, X, r, s имеют длину по 160 бит, сокращая длину подписи до 320 бит.

    2. Большинство операций с числами K, r, s, X при вычислении подписи производится по модулю числа q длиной 160 бит, что сокращает время вычисления подписи.

    3. При проверке подписи большинство операций с числами u1, u2, v, w также производится по модулю числа q длиной 160 бит, что сокращает объем памяти и время вычисления.

    Недостатком алгоритма DSA является то, что при подписывании и при проверке подписи приходится выполнять сложные операции деления по модулю q:

    s = (mod q), w = (mod q),

    что не позволяет получать максимальное быстродействие.

    С
    133
    ледует отметить, что реальное исполнение алгоритма DSA может быть ускорено с помощью выполнения предварительных вычислений. Заметим, что значение r не зависит от сообщения M и его хэш-значения m. Можно заранее создать строку случайных значений K и затем для каждого из этих значений вычислить значения r. Можно также заранее вычислить обратные значения K–1 для каждого из значений K. Затем, при поступлении сообщения M, можно вычислить значение s для данных значений r и K–1. Эти предварительные вычисления значительно ускоряют работу алгоритма DSA.
    9.2.3. Отечественный стандарт цифровой подписи

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

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

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

    a – любое число, меньшее (p –1), причем такое, что aq mod p=1;

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

    y = aх mod p.

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

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

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

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

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

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

    r = (ak mod p) mod q,

    s = (x * r + k (H(m))) mod q.

    Если H(m) mod q=0, то значение H(m) mod q принимают равным единице. Если r=0, то выбирают другое значение k и начина-ют снова.

    Цифровая подпись представляет собой два числа:

    r mod 2256 и s mod 2256.

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

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

    v = H(m)q–2 mod q,

    z1 = (s * v) mod q,

    z2 = ((q – r) * v) mod q,

    u = ( mod p) mod q.

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

    Различие между этим алгоритмом и алгоритмом DSA заключается в том, что в DSA

    s = (k–1 (x * r + (H(m)))) mod q ,

    что приводит к другому уравнению верификации.

    Следует также отметить, что в отечественном стандарте ЭЦП параметр q имеет длину 256 бит. Западных криптографов вполне устраивает q длиной примерно 160 бит. Различие в значениях параметра q является отражением стремления разработчиков отечественного стандарта к получению более безопасной подписи.

    Этот стандарт вступил в действие с начала 1995 г.

    П
    135

    136
    риложение 1
    Последовательность простых чисел

    RPCh

    5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,

    149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,

    281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,

    439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,

    601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,

    761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,

    941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,

    П
    137
    риложение 1
    (продолжение)

    3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919,7927

    Содержание


    Лабораторная работа №1 2

    Лабораторная работа №2 14

    Лабораторная работа №3 21

    Лабораторная работа №4 28

    Лабораторная работа №5 43

    Лабораторная работа №6 57



    138
    1   2   3   4   5   6   7


    написать администратору сайта