Blum–Micali Algorithm
   HOME
*





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.Bruce Schneier, ''Applied Cryptography: Protocols, Algorithms, and Source Code in C'', pages 416-417, Wiley; 2nd edition (October 18, 1996), Let p be an odd prime, and let g be a primitive root modulo p. Let x_0 be a seed, and let x_ = g^\ \bmod. The ith output of the algorithm is 1 if x_i \leq \frac. Otherwise the output is 0. This is equivalent to using one bit of x_i as your random number. It has been shown that n - c - 1 bits of x_i can be used if solving the discrete log problem is infeasible even for exponents with as few as c bits. 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. To be more precise, any method that predicts the numbers generated will lead to an algorithm that solves the discrete lo ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Cryptographically Secure Pseudorandom Number Generator
A cryptographically secure pseudorandom number generator (CSPRNG) or cryptographic pseudorandom number generator (CPRNG) is a pseudorandom number generator (PRNG) with properties that make it suitable for use in cryptography. It is also loosely known as a cryptographic random number generator (CRNG) (see Random number generation § "True" vs. pseudo-random numbers). Most cryptographic applications require random numbers, for example: * key generation * nonces * salts in certain signature schemes, including ECDSA, RSASSA-PSS The "quality" of the randomness required for these applications varies. For example, creating a nonce in some protocols needs only uniqueness. On the other hand, the generation of a master key requires a higher quality, such as more entropy. And in the case of one-time pads, the information-theoretic guarantee of perfect secrecy only holds if the key material comes from a true random source with high entropy, and thus any kind of pseudorandom number genera ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Discrete Logarithms
In mathematics, for given real numbers ''a'' and ''b'', the logarithm log''b'' ''a'' is a number ''x'' such that . Analogously, in any group ''G'', powers ''b''''k'' can be defined for all integers ''k'', and the discrete logarithm log''b'' ''a'' is an integer ''k'' such that . In number theory, the more commonly used term is index: we can write ''x'' = ind''r'' ''a'' (mod ''m'') (read "the index of ''a'' to the base ''r'' modulo ''m''") for ''r''''x'' ≡ ''a'' (mod ''m'') if ''r'' is a primitive root of ''m'' and gcd(''a'',''m'') = 1. Discrete logarithms are quickly computable in a few special cases. However, no efficient method is known for computing them in general. Several important algorithms in public-key cryptography, such as ElGamal base their security on the assumption that the discrete logarithm problem over carefully chosen groups has no efficient solution. Definition Let ''G'' be any group. Denote its group operation by mult ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Primitive Root Modulo N
In modular arithmetic, a number is a primitive root modulo  if every number coprime to is congruent to a power of modulo . That is, is a ''primitive root modulo''  if for every integer coprime to , there is some integer for which ≡ (mod ). Such a value is called the index or discrete logarithm of to the base modulo . So is a ''primitive root modulo''  if and only if is a generator of the multiplicative group of integers modulo . Gauss defined primitive roots in Article 57 of the ''Disquisitiones Arithmeticae'' (1801), where he credited Euler with coining the term. In Article 56 he stated that Lambert and Euler knew of them, but he was the first to rigorously demonstrate that primitive roots exist for a prime . In fact, the ''Disquisitiones'' contains two proofs: The one in Article 54 is a nonconstructive existence proof, while the proof in Article 55 is constructive. Elementary example The number 3 is a primitive root modulo 7 because :: \ ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Blum Blum Shub
Blum Blum Shub (B.B.S.) is a pseudorandom number generator proposed in 1986 by Lenore Blum, Manuel Blum and Michael Shub that is derived from Michael O. Rabin's one-way function. __TOC__ Blum Blum Shub takes the form :x_ = x_n^2 \bmod M, where ''M'' = ''pq'' is the product of two large primes ''p'' and ''q''. At each step of the algorithm, some output is derived from ''x''''n''+1; the output is commonly either the bit parity of ''x''''n''+1 or one or more of the least significant bits of ''x''''n''+1''. The seed ''x''0 should be an integer that is co-prime to ''M'' (i.e. ''p'' and ''q'' are not factors of ''x''0) and not 1 or 0. The two primes, ''p'' and ''q'', should both be congruent to 3 (mod 4) (this guarantees that each quadratic residue has one square root which is also a quadratic residue), and should be safe primes with a small gcd((''p-3'')''/2'', (''q-3'')''/2'') (this makes the cycle length large). An interesting characteristic of the Blum Blum Shub generator is th ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Kaliski Generator
Burton S. "Burt" Kaliski, Jr. is a cryptographer, who is currently the chief technology officer (CTO) and senior vice president at Verisign. Before joining Verisign in 2011, he was the founding director of the EMC Innovation Network at EMC Corporation since its 2006 acquisition of RSA Security where he was Chief Scientist for RSA Laboratories. His notable work includes the development of such public key cryptography standards as PKCS and IEEE P1363, the extension of linear cryptanalysis to use multiple approximations, and the design of the block cipher Crab. Kaliski received his B.S., M.S., and Ph.D. degrees in Computer Science from MIT, where his research was on cryptography. He was a visiting assistant professor of Computer Engineering at Rochester Institute of Technology before joining RSA Security.Bio at RSA Laboratories< ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]