
- •6.050103 – Програмна інженерія
- •1.2.2 Перетворення мережею Фейстеля
- •1.2.3 Алгоритм des
- •1.3Завдання до виконання роботи
- •1.5Контрольні запитання та завдання
- •2Програмна реалізація шифрування даних за допомогою несиметричного криптоалгоритму rsa
- •3Мета роботи
- •4Теоретичні відомості
- •Алгоритм створення відкритого і секретного ключів
- •Шифрування і розшифрування
- •Алгоритм обміну ключами Діффі-Хеллмана
- •4.2.1 Еліптичні криві над простим полем
- •4.2.2 Правила додавання, подвоєння і скалярного множення для еліптичних кривих над простим полем
- •4.2.3 Алгоритм асиметричного шифрування на базі еліптичних кривих eces
- •12.1Завдання до виконання роботи
- •12.2Контрольні запитання та завдання
- •13Створення програмного засобу для цифрового підпису інформації з використанням стандартів гост 34.10 та dss
- •14Мета роботи
- •15Теоретичні відомості
- •5.2.1 Стандарт цифрового підпису dss
- •5.2.2 Стандарт цифрового підпису гост 34.10
- •16Завдання до виконання роботи
- •18Контрольні запитання та завдання
- •Перелік посилань
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Завдання до виконання роботи
Створити програмні засоби для цифрового підпису з використанням стандартів ГОСТ 34.10 і DSS.
Створити приємний і зрозумілий інтерфейс для перевірки зробленої роботи.
Сформувати звіт в електронному вигляді.
17Зміст звіту
1. Тексти розроблених програм.
2. Копії екранних форм з результатами.
3. Висновки.