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

Лекція 8 криптографічні генератори пвч на основі односпрямованих функцій

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

Крім загальної вимоги щодо наближення статистичних властивостей ПВП до властивостей теоретичних випадкових послідовностей, у даному випадку ставиться вимога щодо неможливості відновлення секретних параметрів алгоритму, а також неможливості продовження відрізків ПВП у довільному напрямку, без знання початкового стану генератора.

Такі генератори називаються криптографічно стійкими, або криптографічними генераторами ПВП.

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

Криптографічно стійкі генератори ПВП з використанням блокових шифрів можуть формуватися:

- на основі перешифрування детермінованої послідовності;

- на основі перешифрування послідовності з випадковим параметром;

- на основі поліпшення (модифікації) вихідної послідовності шифра;

- комбінуванням згаданих методів.

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

Для генерації сеансових ключів, рандомізаторів або псевдовипадкових чисел, зручно використовувати стандарт ANSI X9.17, який оснований на перешифруванні послідовності з випадковим параметром.

8.1 Генератор ansi x9.17

Широко відомий генератор ANSI X9.17, що приведений на рисунку 8.1, є національним стандартом США. Для генерації двійкової ПВП у якості односпрямованої функції застосовується блоковий криптоалгоритм 3DES (т. зв. потрійний DES) .

Генератор залишається стійким, якщо 3DES замінити будь-яким стійким блоковим криптоалгоритмом.

3DES здійснює перешифрування , що використовує алгоритм DES з двома ключами: для зашифрування , та розшифрування , .

Рис. 8.1 Генератор ANSI X9.17

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

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

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

8.2 Генератори fips-186

В американському стандарті FIPS-186 надано два варіанти генерації ПВП, залежно від перетворень , , що використовують відповідно функції та як односпрямовані.

У якості функції приймається DES, у якості - цикл стандартизованого алгоритму гешування SHA-1.

Генератори FIPS-186 використовуються, зокрема, для виготовлення серій чисел - секретних ключів цифрового підпису для стандарту DSA (США).

Початковими даними для алгоритма генерації FIPS-186 є кількість псевдовипадкових чисел, що мають бути згенеровані, а також просте число довжини 160 бітів.

Результати: послідовність псевдовипадкових чисел , що належать множині .

Алгоритм генерації полягає в наступному.

1. Якщо , то задати ; якщо використовується - вибрати довільне число .

2. Вибрати довільне секретне стартове число довжини бітів .

3. Задати наступне (16-річне) допоміжне число довжини 160 бітів:

.

4. Для виконати кроки 5-8.

5. На розсуд користувача, покласти , або вибрати довільне .

6. Обчислити

7. Обчислити , алгоритми обчислення – див. нижче.

8. Переобчислити змінну для нового циклу: .

9. Сформувати результат: .

8.2.1 Алгоритм обчислення для G= G1

Аргументи: два числа розміром по 160 бітів. Результат: .

1. Розбити слово на 5 блоків по 32 біти: .

2. Розбити слово на 5 блоків по 32 біти: .

3. Для обчислити числа .

4. Для виконати кроки 5-9 (Обчислення ).

5. Вибрати , .

6. Обчислити , .

7. Обчислити , , де – 24 правих біта числа .

8. У якості зашифрувати блок за допомогою DES на ключі

(56 бітів): .

9. Розбити на два блоки по 32 біта: .

10. Для обчислити числа .

11. Сформувати результат у виді .

8.2.2 Алгоритм обчислення для G= G2

Аргументи: два числа , , .

Результат: .

1. Розбити слово на 5 блоків по 32 біти: та присвоїти значення змінним , , , , .

2. Розширити слово нулями справа до розміру 512 бітів: .

3. У якості виконати цикл SHA-1 з аргументами , що призведе до зміни .

4. Сформувати результат у виді .

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