Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_lab_BPD-2012-ukr.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
315.39 Кб
Скачать

5.2.2 Стандарт цифрового підпису гост 34.10

У вітчизняному стандарті ГОСТ 34.10, прийнятому в 1994 році (зараз використовується ГОСТ 34.10, прийнятий у 2001 році), використовується алгоритм, аналогічний алгоритму, реалізованому в стандарті DSS. Обидва алгоритми належать до сімейства алгоритмів ElGamal.

У стандарті ГОСТ 34.10 використовується хеш-функція ГОСТ 3411, яка створює хеш-код довжиною 256 біт. Це багато в чому зумовлює вимоги до обирання простих чисел p і q:

1) р має бути простим числом в діапазоні

2509 <p <2512

або

21020 <p <21024;

2) q має бути простим числом в діапазоні

2254 <q <2256;

q також має бути дільником (р-1).

Аналогічно вибирається і параметр g. При цьому потрібно, щоб

gq (mod p) = 1.

Відповідно до теореми Ферма, це еквівалентно умові в DSS, що

g = h(p-1) / q mod p.

Закритим ключем є довільне число х, 0 <x <q.

Відкритим ключем є число y = gx mod p.

Для створення підпису вибирається випадкове число k, 0 <k <q.

Підпис складається з двох чисел (r, s), обчислюваних за такими формулами:

r = (gk mod p) mod q;

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

Відмінності DSS і ГОСТ 34.10:

  • використовуються різні хеш-функції: в ГОСТ 34.10 застосовується вітчизняний стандарт на хеш-функції ГОСТ 34.11, в DSS використовується SHA-1, які мають різну довжину хеш-коду. Звідси і різні вимоги на довжину простого числа q: в ГОСТ 34.10 довжина q повинна бути від 254 біт до 256 біт, а в DSS довжина q має бути від 159 біт до 160 біт;

  • по-різному обчислюється компонента s підпису. У ГОСТ 34.10 компонента s обчислюється за формулою:

s = (k *H(M) + x*r) mod q,

у DSS компонента s обчислюється за формулою:

s = [k-1 (H (M) + x*r)] mod q.

Остання відмінність призводить до відповідних відмінностей у формулах для перевірки підпису.

Одержувач обчислює:

w = H (M) -1 mod q;

u1 = w s mod q;

u2 = (q-r) w mod q;

v = [(gu1 yu2) mod p] mod q.

Підпис коректний, якщо v = r.

Структура обох алгоритмів досить цікава. Зауважимо, що значення r зовсім не залежить від повідомлення. Замість цього r є функція від k і трьох загальних компонент відкритого ключа. Мультиплікативна інверсія k (mod p) (у випадку DSS) або саме значення k (у разі ГОСТ 34.10) подається у функцію, яка, крім того, як вхід має хеш-код повідомлення і закритий ключ користувача. Ця функція така, що одержувач може обчислити r, використовуючи вхідне повідомлення, підпис, відкритий ключ користувача і загальний відкритий ключ.

Через складність обчислення дискретних логарифмів порушник не може відновити k з r або х з s.

Підписи, створені з використанням стандартів ГОСТ 34.10 або DSS, називаються рандомізованими, оскільки для одного і того самого повідомлення з використанням одного і того самого закритого ключа щоразу створюватимуться різні підписи (r, s), оскільки щоразу використовуватиметься нове значення k.

Підписи, створені із застосуванням алгоритму RSA, називаються детермінованими, оскільки для одного і того самого повідомлення з використанням одного і того самого закритого ключа щоразу створювати-меться такий самий підпис.

16Завдання до виконання роботи

  1. Створити програмні засоби для цифрового підпису з використанням стандартів ГОСТ 34.10 і DSS.

  2. Створити приємний і зрозумілий інтерфейс для перевірки зробленої роботи.

  3. Сформувати звіт в електронному вигляді.

17Зміст звіту

1. Тексти розроблених програм.

2. Копії екранних форм з результатами.

3. Висновки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]