ції, використовуваної в процесі шифрування, контролю цілісності та проставляння ЕЦП.
Наведемо конкретні приклади використання випадкових чисел в криптології:
сеансові і інші ключі для симетричних криптосистем, таких як DES, Blowfish;
стартові значення для програм генерації ряду математичних величин в асиметричних криптосистемах, наприклад, «великих простих чисел» в криптосистемах RSA, El-Gamal;
випадкові слова, комбіновані з парольне словами для порушення «атаки вгадування» пароля криптоаналітиків;
вектор ініціалізації для блокових криптосистем, що працюють у режимі зворотного зв'язку;
випадкові значення параметрів для багатьох систем електронного цифрового підпису;
випадкові вибори в протоколах аутентифікації, наприклад в протоколі Kerberos;
випадкові параметри протоколів для забезпечення унікальності різних реалізацій одного і того ж протоколу, наприклад в протоколах SET і SSL.
Генеруються селестічні ряди чисел часто називають гамою шифру чи просто гамою (від літери грецького алфавіту, часто використовуваної в математичних формулах для позначення випадкових величин).
До криптографічно стійкого генератору псевдослучайной послідовності чисел (гами шифру) пред'являються три основні вимоги:
- період гами повинен бути достатньо великим для шифрування повідомлень різної довжини;
гама повинна бути практично непередбачуваною, що означає неможливість передбачити наступний біт гами, навіть якщо відомі тип генератора і попередній шматок гами;
генерування гами не повинно викликати великих технічних складнощів.
Довжина періоду гами є найважливішою характеристикою генератора псевдовипадкових чисел. По закінченні періоду числа почнуть повторюватися, і їх можна буде передбачити. Необхідна довжина періоду гами визначається ступенем закритості даних. Чим довше ключ, тим важче його підібрати. Довжина періоду гами залежить від обраного алгоритму отримання псевдовипадкових чисел.
Друге вимога пов'язана з наступною проблемою: як можна достовірно переконатися, що псевдослучайная гамма конкретного генератора є дійсно непередбачуваною. Ще не існують такі універсальні і практично перевіряються критерії та методики. Щоб гамма вважалася непередбачуваною, тобто істинно випадкової, необхідно, щоб її період був дуже великим, а різні комбінації бітів певної довжини були рівномірно розподілені по всій її довжині.
Третя вимога обумовлює можливість практичної реалізації генератора програмним чи апаратним шляхом із забезпеченням необхідної швидкодії.
2.3 Лінійний конгруентний генератор
З відомих процедур генерації послідовності псевдовипадкових цілих чисел найбільш часто застосовується так званий лінійний конгруентний генератор. Цей генератор виробляє послідовність псевдовипадкових чисел Y1, Y2, .... Yi - 1, Yi, ..., використовуючи співвідношення
(2.3)
де Yi - ie (поточне) число послідовності; Yi - 1 - попереднє число послідовності; а, b і m - константи; m - модуль;
а - множник (коефіцієнт); b - приріст; Yo - породжує число (початкове значення).