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

ЛЕКЦІЯ 10 МІЖДЕРЖАВНИЙ СТАНДАРТ ГОСТ 34.310-95

10.1 Позначення та загальні відомості

Стандарт ГОСТ 34.310-95 встановлює процедуру формування та перевірки цифрового підпису. Стійкість схеми ціфрового підпису основана на складності дискретного логарифму в простому скінченному полі , .

Геш-функція обчислюється згідно вимог стандарту ГОСТ 34.311-95.

Параметри і ключі цифрового підпису ГОСТ 34.310-95, що приводяться нижче, подібні до параметрів ЦП Ель Гамаля.

Міждерж. стандарт ГОСТ 34.310-95 пов’язаний з ГОСТ 28147-89 через геш-функцію, оскільки при її обчисленні за стандартом ГОСТ 34.311-95 використовується алгоритм з ГОСТ 28147-89 в режимі простої заміни з несекретними параметрами.

Позначення аналогічні тим, що прийняті у стандарті ГОСТ 34.311-95.

- множина всіх слів скінченної довжини в алфавіті .

- довжина слова (або числа) в бітах. Двійкові розряди нумеруються справа наліво, починаючи з одиниці. Величина називається також розміром слова (або числа).

- множина двійкових слів довжини .

найменший невід’ємний лишок числа за модулем .

- слово довжини , що містить молодші (праві) розрядів двійкового запису числа . Іншими словами, - це значення , , у двійковій системі счислення.

- невід’ємне число, двійковий запис якого представляє слово , довжина визначається як номер старшого розряду (перехід до числа дозволяє комп’ютеру виконувати арифметичні операції над словом ).

, або - конкатенація ( послідовний запис) слів.

- конкатенація екземплярів слова . За стандартом, нумерація слів у конкатенації, а також нумерація бітів у слові проводиться зправа наліво і починається з одиниці.

повідомлення, що пересилається.

повідомлення після проходження каналом зв’язку.

- найменше ціле число, більше або рівне .

- найбільше ціле число, що не перевищує .

- геш-функція, з довжиною геш-коду 256 бітів, визначається стандартом ГОСТ 34.311-95.

блок з 255 нулів, до яких приписана одиниця.

- присвоєння параметру значення .

10.2 Параметри і ключі цифрового підпису

- просте число, , або .

- просте число, (дільник ).

- елемент порядку за модулем , тобто і .

: - секретний ключ підпісу (секретне випадкове число) .

- відкритий ключ підпису.

: - рандомізатор (секретне випадкове число, своє на кожний сеанс накладення цифрового підпису).

Пояснимо, що з умови випливає, що ділить , тобто дорівнює або , або одиниці. Оскільки , то .

Цифровий підпис складається з двох блоків довжиною 256 бітів кожний.

У стандарті встановлено алгоритми побудови надвеликих простих чисел , , залежно від їх розміру. Побудова параметрів виконується одночасно. Число знаходиться випадковим пошуком при заданих за критерієм . Вибір параметрів має здійснюватися за процедурами, визначеними у стандарті. Рандомізатор необхідно знищувати відразу після його використання.

10.3 Процедури створення та перевіряння підпису

Створення ЦП для повідомлення власник секретного ключа підпису здійснює наступним чином.

Обчислити , якщо , то .

Сгенерувати рандомізатор : .

Обчислити та , при повторити процедуру, починаючи з вибору рандомізатора.

Обчислити , при повторити процедуру, починаючи з вибору рандомізатора.

Підписане повідомлення має вид , де - цифровий підпис. Доповнення коротких числових значень до 256 бітів здійснюється приписуванням зліва необхідної кількості нульових бітів.

Перевірка цифрового підпису для повідомлення здійснюється на основі переобчислення перевіряючим істинного значення для параметра при невідомих . Якщо значення і значення отриманого з каналу зв’язку параметра співпадають, то підпис вважається вірним.

Далі, задля зручності, перепозначимо через . Зауважимо, що при істинному підписі () з рівності випливає, що . Оскільки, крім того, , то . Але і , тобто, при істинному підписі, можна обчислити без рандомізатора: .

Перепозначимо , , і запишемо як .

Саме в таких позначеннях приводиться у стандарті процедура перевіряння ЦП для повідомлення . У ході її викладення ми пояснимо позначення стандарту додатковими формулами.

Для перевіряння підпису здійснюються наступни дії.

Перевіряємо умови , , якщо хоч одна з умов не виконується, вважаємо підпис недійсним.

Обчислюємо геш-код отриманого повідомлення , якщо , то .

Знаходимо

Обчислюємо , ;

Знаходимо ;

Порівнюємо обчислене значення і значення з повідомлення.

При рівності ЦП є вірним, інакше, він не приймається.

10.4 Процедура A побудови параметрів p,q

У стандарті процедури , , , застосовуються для побудови великих псевдовипадкових гарантованих простих чисел у різних діапазонах значень. Процедури та використовують процедури та як допоміжні.

Простота чисел доводиться за наступною теоремою (при ).

Теорема 10.1. (Димитко). Нехай , де - просте, - парне і . Якщо існує ціле таке, що і , то число - просте.

У процедурах станадарту для побудови чисел використовуються так звані конгруентні генератори псевдовипадкових чисел, що задаються рекурентним співвідношеннями виду , при та .

Такі генератори мають добрі псевдовипадкові властивості, але є криптографічно слабкими. Це не впливає на надійність стандарту, оскільки параметри мають бути псевдовипадковими і загально відомими.

При звернені до процедури користувачі задають довжину шуканого числа , початковий стан та відповідний параметр .

Процедура дозволяє отримувати прості числа довжини бітів з простим дільником довжини числа .

У процедурі застосовується генератор ПВЧ виду .

Числа і мають знаходитися у межах , крім того, число має бути бути непарним.

При викладені процедури будемо додавати пояснення та використовувати допоміжні формули.

Процедура складається з наступних кроків.

1. .

2. Покласти . Обчислити (спадаючу) послідовність чисел , що складається з з довжин майбутніх проміжних простих чисел і довжини шуканого простого числа за наступним правилом.

Для перевіряти умову . Доки умова виконується, то . Якщо умова не виконується, то покласти .

Зауваження. Числа будуватимуться послідовно, у вигляді , таким чином, кожне відіграє роль у виразі з теореми Демитко.

3. Знайти (перебором) найменше просте число довжини бітів.

4. . Значення змінної дорівнює індексу чергового (справа наліво) елемента в послідовності .

5. Обчислити . Змінна дорівнює мінімальній кількості блоків, довжини 16 бітів кожний, в яких можна розмістити послідовність довжини бітів.

6. Обчислити послідовність , де , а обчислюються на основі конгруентного генератора .

Ця послідовність у зворотному порядку: , відіграватиме роль цифр деякого числа при записі його у системі за основою .

7. Обчислити . Очевидно, .

8. . Готуємо новий початковий стан генератора, щоб при переходах на відповідні кроки отримувати нову послідовність виду .

9. Обчислити +. Якщо непарне, то .

Число - велике парне псевдовипадкове число, за допомогою якого буде здійснюватися побудова чергового проміжного простого числа числа , виходячи з попереднього .

Зауваження. У кроці 4 , тобто, у перший раз знаменник виразу буде рівним простому числу , яке ми визначили у кроці 3.

10. . Число потрібне для модифікації у ході пошуку .

У цьому процесі число завжди буде парним.

11. Обчислити . Це аналогічно виразу .

12. Якщо , перейти на крок 6.

13. Перевірити чи виконуються одночасно порівняння:

а) ;

б) .

Якщо ця умова не виконується, то ; перейти до кроку 11.

Якщо виконуються обидві умови п.13, то число - просте.

Змінюємо для пошуку більшого розміру.

14. Якщо , перейти на крок 5.

Якщо , то , , кінець процедури.

Соседние файлы в папке Материалы что дал Мухачев-1