Benaloh cryptosystem
   HOME

TheInfoList



OR:

The Benaloh Cryptosystem is an extension of the Goldwasser-Micali cryptosystem (GM) created in 1985 by Josh (Cohen) Benaloh. The main improvement of the Benaloh Cryptosystem over GM is that longer blocks of data can be encrypted at once, whereas in GM each bit is encrypted individually.


Scheme Definition

Like many public key cryptosystems, this scheme works in the group (\mathbb/n\mathbb)^* where ''n'' is a product of two large
primes A prime number (or a prime) is a natural number greater than 1 that is not a product of two smaller natural numbers. A natural number greater than 1 that is not prime is called a composite number. For example, 5 is prime because the only ways ...
. This scheme is homomorphic and hence
malleable Ductility is a mechanical property commonly described as a material's amenability to drawing (e.g. into wire). In materials science, ductility is defined by the degree to which a material can sustain plastic deformation under tensile stres ...
.


Key Generation

Given block size ''r'', a public/private key pair is generated as follows: #Choose large primes ''p'' and ''q'' such that r \vert (p-1), \operatorname(r, (p-1)/r)=1, and \operatorname(r, (q-1))=1 #Set n=pq, \phi=(p-1)(q-1) #Choose y \in \mathbb^*_n such that y^ \not \equiv 1 \mod n. :: Note: If ''r'' is composite, it was pointed out by Fousse et al. in 2011 that the above conditions (i.e., those stated in the original paper) are insufficient to guarantee correct decryption, i.e., to guarantee that D(E(m)) = m in all cases (as should be the case). To address this, the authors propose the following check: let r=p_1p_2\dots p_k be the prime factorization of ''r''. Choose y \in \mathbb^*_n such that for each factor p_i, it is the case that y^\ne 1\mod n. # Set x=y^\mod n The public key is then y,n, and the private key is \phi,x.


Message Encryption

To encrypt message m\in\mathbb_r: # Choose a random u \in \mathbb^*_n # Set E_r(m) = y^m u^r \mod n


Message Decryption

To decrypt a ciphertext c\in\mathbb^*_n: # Compute a=c^\mod n # Output m=\log_x(a), i.e., find ''m'' such that x^m\equiv a \mod n To understand decryption, first notice that for any m\in\mathbb_r and u\in\mathbb^*_n we have: :a = (c)^ \equiv (y^m u^r)^ \equiv (y^)^(u^r)^ \equiv (y^)^m(u)^ \equiv (x)^m (u)^0 \equiv x^m \mod n To recover ''m'' from ''a'', we take the
discrete log 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' ...
of ''a'' base ''x''. If ''r'' is small, we can recover m by an exhaustive search, i.e. checking if x^i\equiv a \mod n for all 0\dots (r-1). For larger values of ''r'', the
Baby-step giant-step In group theory, a branch of mathematics, the baby-step giant-step is a meet-in-the-middle algorithm for computing the discrete logarithm or order of an element in a finite abelian group by Daniel Shanks. The discrete log problem is of fundamenta ...
algorithm can be used to recover ''m'' in O(\sqrt) time and space.


Security

The security of this scheme rests on the Higher residuosity problem, specifically, given ''z'',''r'' and ''n'' where the factorization of ''n'' is unknown, it is computationally infeasible to determine whether ''z'' is an ''r''th residue mod ''n'', i.e. if there exists an ''x'' such that z \equiv x^r \mod n.


References

{{Cryptography navbox , public-key Public-key encryption schemes