Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
50
Добавлен:
31.01.2021
Размер:
274.13 Кб
Скачать

2.4 Алгоритм dsa

Алгоритм DSA, має, як і RSA, теоретико-числовий характер, і заснований на криптографічного системі Ель-Гамаля у варіанті Шнорра. Його надійність заснована на практичній нерозв'язності завдання обчислення дискретного логарифма. Сучасні методи вирішення цього завдання мають приблизно ту ж ефективність, що і методи розв'язання задачі факторизації; в зв'язку з цим пропонується використовувати ключі довжиною від 512 до 1024 біт з тими ж характеристиками надійності, що і в системі RSA. Довжина підпису в системі DSA менше, ніж в RSA, і становить 320 біт .

Функції DSA обмежені тільки цифровим підписом, система принципово не призначена для шифрування даних. По швидкодії система DSA порівнянна з RSA при формуванні підпису, але істотно (в 10-40 разів) поступається їй при перевірці підпису.

Разом з проектом DSS опублікований проект стандарту SHS що описує односпрямований хеш-функцію SHA, рекомендовану для використання разом з DSA. Хеш-функція SHA є модифікацією алгоритму MD4 (Message Digest 4), добре відомого в криптографічного літературі.

Формування та перевірка підпису DSА здійснюється за етапами.

  1. Відправник А повідомлення Μ надає широкому колу абонентів (одержувачів його повідомлень) доступ до таких опцій:

  • p - модуль, який є простим числом 2L-1 <p <2L, де L є бітової довжиною p;

  • q - простий дільник числа p-1, де 2N-1 <q <2N, а N є бітової довгою q;

  • - генератор підгрупи порядку q mod p, такий, що б 1 < <p;

  • x - секретний ключ 0 <x <q

  • y - відкритий ключ, який обчислюється за формулою (2.7)

(2.7)

  • k - секретне число, яке є унікальним для кожного повідомлення

  1. Вироблення електронного цифрового підпису

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

, (2.8)

де, r, s- пара чисел, k - секретне число, яке є унікальним для кожного повідомлення, p - модуль, який є простим числом, - генератор підгрупи порядку q mod p.

(2.9)

Підпис (r, s) передається разом з повідомленням М одержувачу

  1. Верифікація ЕЦП:

Верифікація- перевірка достовірності даних користувача. Процес верифікації описується наступним чином:

  • одержувач перевіряє виконання умов 0 <r '<q і 0 <s' <q; в разі невиконання умов підпис відкидається

  • якщо дві умови першого кроку задовольняються, виробляються такі обчислення за формулою (2.10), (2.11), (2.12)

, (2.10)

де, s'- число зворотне до s, q - простий дільник числа p-1.

(2.11)

, (2.12)

де ;

Якщо v = r ', тоді підпис приймається, якщо v ≠ r ', це означає або підміну інформації в процесі передачі, або не знання відправником секретного ключа.

3 Алгоритм шифрування шаміра

Шифр Шаміра (Adi Shamir) був першим, що дозволяє організувати обмін секретними повідомленнями по незахищеній лінії зв'язку без обміну секретними ключами. Шифр Шаміра полягає в наступному. Нехай є два абонента А і В, з'єднані лінією зв'язку, і А хоче передати секретне повідомлення В. А вибирає велике просте число р і відкрито передає його абоненту В. Потім А випадково вибирає два числа х1 i х2, такі, що вони є зворотними один одному по модулю р - 1: (3.1)

Числа х1 і х2 є особистим ключем абонента А він тримає їх у секреті і передавати не буде. Абонент В також випадково вибирає два числа y1 і у2, такі, що: (3.2)

Числа у1 і у2 є особистим ключем абонента В і тримаються в секреті.

Числа х1 і у1 вибираються абонентами випадково так, щоб вони були взаємно простими з р - 1. Причому x1 і y1, слід шукати тільки серед непарних чисел, так як р - 1 - парне. Числа х2 і у2 обчислюються за допомогою розширеного алгоритму Евкліда.

Тепер абонент А може передати своє повідомлення М, використовуючи триступеневий протокол. Повідомлення М розглядається як число. Якщо М <р, то М передається відразу; якщо ж М> р, то перед відправкою повідомлення представляється у вигляді послідовності mv mv ..., т (, де все т<p. Повідомлення mjf i = 1, t передаються послідовно, при цьому для шифрування кожного mi рекомендується випадково вибирати нові пари ключів х1 і х2, y1 і у2; в іншому випадку надійність криптосистеми знижується. Таким чином, не применшуючи спільності, можна розглянути тільки випадок М <p:

• 1) А обчислює число X, = Mv> mod р, де М - вихідне повідомлення, і пересилає X, абоненту В;

• 2) У, отримавши X, обчислює число У, = Xf1 mod р і передає У, абоненту А,

• 3) А обчислює число Х2 = У * 2 mod р і передає його В;

• 4) У, отримавши Х2, обчислює число У2 = Х22 mod р, У2 і є вихідне повідомлення М Значення XvX2nY, можуть передаватись відкритим каналом, оскільки отримання на їх основі значень секретних ключей xv X2 та Y1, практично неможливо (твердження базується на труднощі розрахунку дискретних логарифмів). Ніхто інший, окрім абонента В, не зможе розрахувати значення М, завдяки тому, що у розрахунках використовуються секретні ключі абонента В.