
Криптографічно створені випадкові числа
У криптографічних додатках доцільно шифрувати випадкові числа, що виходять. Найчастіше використовується три способи.
Циклічне шифрування
Рисунок 6.1 - Циклічне шифрування
У
цьому випадку застосовується спосіб
створення ключа сесії з майстра-ключа.
Лічильник з періодом N
використовується як вхід у пристрій,
що шифрує. Наприклад, у випадку використання
56-бітного ключа DES може застосовуватися
лічильник з періодом 256.
Після кожного створеного ключа значення
лічильника збільшується на 1.
Таким чином, псевдовипадкова послідовність,
отримана за даною схемою, має повний
період: кожне вихідне значення Х0,
Х1,...ХN-1
засновано на різних значеннях лічильника
й, отже,
Х0
X1
XN-1.
Так як майстер-ключ захищений, легко
показати, що будь-який секретний ключ
не залежить від знання одного або більше
попередніх секретних ключів.
Для подальшого посилення алгоритму вхід повинен бути виходом повноперіодичного генератора псевдовипадкових чисел, а не простою послідовністю.
Режим Output Feedback des
Режим OFB DES може застосовуватися для генерації ключа, аналогічно тому, як він використовується для потокового шифрування. Помітимо, що виходом кожної стадії шифрування є 64-бітне значення, з якого тільки ліві j бітів подаються назад для шифрування. 64-бітні виходи становлять послідовність псевдовипадкових чисел з гарними статистичними властивостями.
Генератор псевдовипадкових чисел ansi x9.17
Один з найбільш сильних генераторів псевдовипадкових чисел описаний в ANSI X9.17. У число додатків, що використовують цю технологію, входять додатка фінансової безпеки й PGP.
Алгоритмом шифрування є потрійний DES. Генератор ANSI X9.17 складається з наступних частин:
Вхід: генератором управляють два псевдовипадкових входи. Один є 64-бітним поданням поточної дати й часу, які змінюються щораз при створенні числа. Інший є 64-бітним початковим значенням; воно ініціюється деяким довільним значенням і змінюється в ході генерації послідовності псевдовипадкових чисел.
Ключі: генератор використовує три модулі потрійного DES. Всі три використовують ту саму пару 56-бітних ключів, що повинна триматися в секреті й застосовуватися тільки для генерації псевдовипадкового числа.
Вихід: вихід складається з 64-бітного псевдовипадкового числа й 64-бітного значення, що буде використовуватися як початкове значення при створенні наступного числа.
Рисунок 6.2 – Генератор псевдовипадкових чисел ANSI X9.17
DTi - значення дати й часу на початок i-ой стадії генерації. |
Vi - початкове значення для i-ой стадії генерації. |
Ri - псевдовипадкове число, створене на i-ой стадії генерації. |
K1, K2 - ключі, використовувані на кожній стадії. |
Тоді:
Ri
= EDEK1,K2
[ EDEK1,K2
[ DTi]
Vi
]
Vi+1 = EDEK1,K2 [ EDEK1,K2 [ DTi] Ri]
Схема включає використання 112-бітного ключа й трьох EDE-шифрувань. На вхід подаються два псевдовипадкових значення: значення дати й часу й початкове значення чергової ітерації, на виході створюються початкове значення для наступної ітерації й чергове псевдовипадкове значення. Навіть якщо псевдовипадкове число Ri буде скомпрометовано, обчислити Vi+1 з Ri неможливо, і, отже, що випливає псевдовипадкове значення Ri+1, тому що для одержання Vi+1 додатково виконуються три операції EDE.