Английская Википедия:Blum–Micali algorithm

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

The Blum–Micali algorithm is a cryptographically secure pseudorandom number generator. The algorithm gets its security from the difficulty of computing discrete logarithms.[1]

Let <math>p</math> be an odd prime, and let <math>g</math> be a primitive root modulo <math>p</math>. Let <math>x_0</math> be a seed, and let

<math>x_{i+1} = g^{x_i}\ \bmod{\ p}</math>.

The <math>i</math>th output of the algorithm is 1 if <math>x_i \leq \frac{p-1}{2}</math>. Otherwise the output is 0. This is equivalent to using one bit of <math>x_i</math> as your random number. It has been shown that <math>n - c - 1</math> bits of <math>x_i</math> can be used if solving the discrete log problem is infeasible even for exponents with as few as <math>c</math> bits.[2]

In order for this generator to be secure, the prime number <math>p</math> needs to be large enough so that computing discrete logarithms modulo <math>p</math> is infeasible.[1] To be more precise, any method that predicts the numbers generated will lead to an algorithm that solves the discrete logarithm problem for that prime.[3]

There is a paper discussing possible examples of the quantum permanent compromise attack to the Blum–Micali construction. This attacks illustrate how a previous attack to the Blum–Micali generator can be extended to the whole Blum–Micali construction, including the Blum Blum Shub and Kaliski generators.[4]

References

Шаблон:Reflist

External links

Шаблон:Crypto-stub

  1. 1,0 1,1 Bruce Schneier, Applied Cryptography: Protocols, Algorithms, and Source Code in C, pages 416-417, Wiley; 2nd edition (October 18, 1996), Шаблон:ISBN
  2. Шаблон:Cite journal
  3. Шаблон:Cite journal
  4. Шаблон:Cite arXiv