Blum-Goldwasser cryptosystem

Blum-Goldwasser cryptosystem

The Blum-Goldwasser (BG) cryptosystem is an asymmetric key encryption algorithm proposed by Manuel Blum and Shafi Goldwasser in 1984. Blum-Goldwasser is a probabilistic, semantically secure cryptosystem with a constant-size ciphertext expansion. The encryption algorithm implements an XOR-based stream cipher using the Blum Blum Shub (BBS) pseudo-random number generator to generate the keystream. Decryption is accomplished by manipulating the final state of the BBS generator using the secret key, in order to find the initial seed and reconstruct the keystream.

The BG cryptosystem is semantically secure based on the assumed intractability of integer factorization; specifically, factoring a composite value N = pq where p, q are large primes. BG has multiple advantages over earlier probabilistic encryption schemes such as the Goldwasser-Micali cryptosystem. First, its semantic security reduces solely to integer factorization, without requiring any additional assumptions (e.g., hardness of the quadratic residuosity problem or the RSA problem). Secondly, BG is efficient in terms of storage, inducing a constant-size ciphertext expansion regardless of message length. BG is also relatively efficient in terms of computation, and fairs well even in comparison with cryptosystems such as RSA (depending on message length and exponent choices). However, BG is highly vulnerable to adaptive chosen ciphertext attacks (see below).

Because encryption is performed using a probabilistic algorithm, a given plaintext may produce very different ciphertexts each time it is encrypted. This has significant advantages, as it prevents an adversary from recognizing intercepted messages by comparing them to a dictionary of known ciphertexts.

cheme definition

Note that the following description is a draft, and may contain errors!

Blum-Goldwasser consists of three algorithms: a probabilistic key generation algorithm which produces a public and a private key, a probabilistic encryption algorithm, and a deterministic decryption algorithm.

Key generation

To allow for decryption, the modulus used in Blum-Goldwasser encryption should be a Blum integer. This value is generated in the same manner as an RSA modulus, except that the prime factors (p, q) must be congruent to 3 mod 4. (See RSA, key generation for details.)

#Alice generates two large prime numbers p , and q , such that p e q, randomly and independently of each other, where (p, q) equiv 3 mod 4.
#Alice computes N = p q.

The "public key" is N. The secret key is the factorization (p, q).

Message encryption

Suppose Bob wishes to send a message "m" to Alice:

#Bob first encodes m as a string of L bits (m_0, dots, m_{L-1}).
#Bob selects a random element r, where 1 < r < N, and computes x_0 = r^2~mod~N.
#Bob uses the BBS pseudo-random number generator to generate L random bits (b_0, dots, b_{L-1}) (the keystream), as follows:
##For i=0 to L-1:
##Set b_i equal to the least-significant bit of x_i.
##Increment i.
##Compute x_i = (x_{i-1})^2~mod~N.
#Compute the ciphertext by XORing the plaintext bits with the keystream: {vec c} = {vec m} oplus {vec b}, y=x_{0}^{2^{L~mod~N.

Bob sends the ciphertext (c_0, dots, c_{L-1}), y.

To improve performance, the BBS generator can securely output up to O(log log N) of the least-significant bits of x_i during each round. See Blum Blum Shub for details.

Message decryption

Alice receives (c_0, dots, c_{L-1}), y. She can recover m using the following procedure:

#Using the prime factorization (p, q), Alice computes r_p = y^{((p+1)/4)^{L~mod~(p-1) and r_q = y^{((q+1)/4)^{L~mod~(q-1).
#Compute the initial seed x_0=q(q^{-1}~{mod}~p)r_p + p(p^{-1}~{mod}~q)r_q~{mod}~N
#From x_0, recompute the bit-vector {vec b} using the BBS generator, as in the encryption algorithm.
#Compute the plaintext by XORing the keystream with the ciphertext: {vec m} = {vec c} oplus {vec b}.

Alice recovers the plaintext m=(m_0, dots, m_{L-1}).

Security and efficiency

The Blum-Goldwasser scheme is semantically-secure based on the hardness of predicting the keystream bits given only the final BBS state y and the public key N. However, ciphertexts of the form {vec c}, y are vulnerable to an adaptive chosen ciphertext attack in which the adversary requests the decryption m^{prime} of a chosen ciphertext {vec a}, y. The decryption m of the original ciphertext can be computed as {vec a} oplus m^{prime} oplus {vec c}.

Depending on plaintext size, BG may be more or less computationally expensive than RSA. Because most RSA deployments use a fixed encryption exponent optimized to minimize encryption time, RSA encryption will typically outperform BG for all but the shortest messages. However, as the RSA decryption exponent is randomly distributed, modular exponentiation may require a comparable number of squarings/multiplications to BG decryption for a ciphertext of the same length. BG has the advantage of scaling more efficiently to longer ciphertexts, where RSA requires multiple separate encryptions. In these cases, BG may be significantly more efficient.

References

#M. Blum, S. Goldwasser, "An Efficient Probabilistic Public Key Encryption Scheme which Hides All Partial Information", Proceedings of "Advances in Cryptology - CRYPTO '84", pp. 289-299, Springer Verlag, 1985.
#Menezes, Alfred; van Oorschot, Paul C.; and Vanstone, Scott A. "Handbook of Applied Cryptography". CRC Press, October 1996. ISBN 0-8493-8523-7

External links

* [http://www.cacr.math.uwaterloo.ca/hac/ Menezes, Oorschot, Vanstone, Scott: "Handbook of Applied Cryptography" (free PDF downloads), see Chapter 8]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Goldwasser-Micali cryptosystem — The Goldwasser Micali cryptosystem (GM) is an asymmetric key encryption algorithm developed by Shafi Goldwasser and Silvio Micali in 1982. GM has the distinction of being the first probabilistic public key encryption scheme which is provably… …   Wikipedia

  • Manuel Blum — Born April 26, 1938 (1938 04 26) (age 73) Caracas, Venezuela Residence Pittsburgh …   Wikipedia

  • McEliece cryptosystem — In cryptography, the McEliece cryptosystem is an asymmetric encryption algorithm developed in 1978 by Robert McEliece.[1] It was the first such scheme to use randomization in the encryption process. The algorithm has never gained much acceptance… …   Wikipedia

  • Shafi Goldwasser — Infobox Scientist name = Shafrira Goldwasser image width = 150px caption = Shafrira Goldwasser birth date = 1958 birth place = death date = death place = residence = citizenship = nationality = ethnicity = field = Computer Science, Cryptography… …   Wikipedia

  • Cramer–Shoup cryptosystem — The Cramer–Shoup system is an asymmetric key encryption algorithm, and was the first efficient scheme proven to be secure against adaptive chosen ciphertext attack using standard cryptographic assumptions. Its security is based on the… …   Wikipedia

  • Naccache–Stern cryptosystem — Note: this is not to be confused with the Naccache–Stern knapsack cryptosystem. The Naccache–Stern cryptosystem is a homomorphic public key cryptosystem whose security rests on the higher residuosity problem. The Naccache–Stern cryptosystem was… …   Wikipedia

  • Naccache–Stern knapsack cryptosystem — Note: this is not to be confused with the Naccache–Stern cryptosystem based on the higher residuosity problem. The Naccache–Stern Knapsack Cryptosystem is an atypical public key cryptosystem developed by David Naccache and Jacques Stern in 1997.… …   Wikipedia

  • Niederreiter cryptosystem — In cryptography, the Niederreiter cryptosystem is a variation of the McEliece Cryptosystem developed in 1986 by Harald Niederreiter [1]. It applies the same idea to the parity check matrix H of a linear code. Niederreiter is equivalent to… …   Wikipedia

  • Damgård–Jurik cryptosystem — The Damgård–Jurik cryptosystem[1] is a generalization of the Paillier cryptosystem. It uses computations modulo ns + 1 where n is an RSA modulus and s a (positive) natural number. Paillier s scheme is the special case with s = 1. The order φ(ns + …   Wikipedia

  • Merkle–Hellman knapsack cryptosystem — The Merkle–Hellman knapsack cryptosystem was one of the earliest public key cryptosystems invented by Ralph Merkle and Martin Hellman in 1978.[1] Although its ideas are elegant, and far simpler than RSA, it has been broken.[2] Contents 1… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”