Blum–Micali algorithm

From testwiki
Jump to navigation Jump to search

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 p be an odd prime, and let g be a primitive root modulo p. Let x0 be a seed, and let

xi+1=gxi mod p.

The ith output of the algorithm is 1 if xip12. Otherwise the output is 0. This is equivalent to using one bit of xi as your random number. It has been shown that nc1 bits of xi can be used if solving the discrete log problem is infeasible even for exponents with as few as c bits.[2]

In order for this generator to be secure, the prime number p needs to be large enough so that computing discrete logarithms modulo p 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

Template:Reflist


Template: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), Template:ISBN
  2. Template:Cite journal
  3. Template:Cite journal
  4. Template:Cite arXiv