Алгоритм Блюма — Микали
Алгоритм Блюма — Микали (англ. Blum-Micali algorithm) — это криптографически стойкий алогоритм генерации псевдослучайных последовательностей, с использованием сида. Идеи алгоритма были изложены Блюмом и Микали в 1984 году. Алгоритм был разработан на основе алгоритма генератора Шамира, предложенного Ади Шамиром годом ранее[1]. Алгоритм отличается от предшественника более сильными требованиями к сложности вычисления выходной последовательности. В отличие от генератора Шамира выходом данного алгоритма являются биты, а не числа.
Основная идея алгоритма
Рассмотрим простейшую идею построения генератора псевдослучайных чисел: мы задаёмся некоторой начальной случайной последовательностью (Seed) и выбираем некоторый алгоритм шифрования. Далее на каждой итерации шифруя текущее состояния и выбирая из полученного результата набор битов, мы можем получать последовательность чисел, которая выглядит довольно случайным образом.
Алгоритм Блюма — Микали использует именно этот процесс, используя «хардкор-биты» (hard-core bit, hard-core predicate).
Понятие хардкор-бита
«Хардкор-битом»(предикатом) B для функции f называют некоторую функцию, такую, что:
- Выходное значение B — 1 бит.
- Для неё нет такого полиномиально-временного(Класс BPP — Bounded-error probabilistic polynomial) алгоритма, который может вычислить B(x) из f(x) с вероятностью отличной от 1/2.
Теорема Блюма - Микали
— Seed — длина аргумента функции . Она же — длина . - преобразование из в , а — из в {0,1} - сложный бит для . ; — биты конечной генерируемуой последовательности. ; . -псевдослучайность - свойство последовательности для которой выполнено -сложный бит - свойство функции , для которой , где — время нахождения алгоритма криптоаналитиком за время .
Определим как следующий процесс:
Возьмем некоторую случайную последовательность (seed).
Если является -сложным битом, то — -генератор псевдослучайных чисел.
- время вычисления функции .
Теорема доказывается от противного; Предполагается, что существует алгоритм позволяющий найти элемент, зная предыдущих[2].
Атаки на алгоритм
Реализации данного алгоритма как правило опираются на сложность вычисления обратных функций в поле Галуа, например на сложности вычисления дискретного логарифма. Следовательно, для взлома этого алгоритма необходимо лишь уметь брать дискретный алгоритм за обозримое время. На настоящих реализациях компьютеров для правильно подобранных чисел - это очень ресурсоёмкая операция. Однако, аналогичный алгоритм на квантовом компьютере даёт выигрыш в скорости в квадрате, что делает взлом такого генератора весомо более реальным. Атака основана на одном из вариантов квантовых алгоритмов - подскоке амплитуды, более обобщенном варианте Алгоритма Гровера[3].
Примеры генераторов
Генератор Блюма — Блюма — Шуба
Возмём такие простые и , что — 1024-битное и . Функция . В качестве сложного бита берется функция, возвращающая наименьший значимый бит. является таковым в допущении, что не существует алгоритма вычисления дискретного логарифма сложности лучше либо равной .
Dlog generator
Пусть — 1024 битное простое число, а принадлежит . Определим → , как .
Сложный бит
B(x) является таковым в допущении, что не существует алгоритма вычисления дискретного логарифма c функцией сложности или лучше.
Генератор Калински
Криптостойкость вышепреведённых генераторов базировалась на сложности нахождения дискретного логарифма. Генератор Калински использует идею эллиптических кривых.
Пусть - простое число, такое что . Рассмотрим кривую в x (поле Галуа) вида: .
Точки кривой вместе с точкой на бесконечности образуют циклическую группу порядка . Пусть — генератор этой группы.
Введём следующую функцию:
Соответственно, функция, используемая в генераторе имеет вид:
Сложный бит генератора:
Seed такого генератора - некоторая точка на кривой.
Примечания
- ↑ Adi Shamir On the generation of cryptographically strong pseudorandom sequences, 1983
- ↑ [Manuel Blum and Silvio Micali, How to Generate Cryptographically Strong Sequences of Pseudorandom Bits, SIAM Journal on Computing 13, no. 4 (1984): 850-864.
- ↑ Elloá B. Guedes, Francisco Marcos de Assis, Bernardo Lula Jr — Examples of the Generalized Quantum Permanent Compromise Attack to the Blum-Micali Construction. http://arxiv.org/abs/1012.1776
См. также