Cohen's cryptosystem

From HandWiki

Cohen's cryptosystem[1] is a public-key cryptosystem proposed in 1998 by Bram Cohen.

Key generation

In Cohen's cryptosystem, private key is a positive integer p.

The algorithm uses k public-keys w0,…,wk−1 defined as follows:

Generate k random integers u0,…,uk−1 chosen randomly and uniformly between −B and B. Where B is some bound.

Let A=⌊p2k⌋ and generate k random integers v0,…,vk−1 chosen randomly and uniformly between 0 and A.

Define wi=(uip+vi).

Encrypting a bit

To encrypt a bit m Alice randomly adds k2 public keys and multiplies the result by either 1 (if she wishes to send a 0) or by −1 (if she wishes to send a 1) to obtain the ciphertext c=(−1)m∑wi.

De-cryption

To de-crypt, Bob computes h=cmodp=(−1)m∑vi

It is easy to see that if m=0 then 0<h<p/2. However, if m=1 then p>h>p/2. Hence Bob can read the bit sent by Alice on the most significant bit of h.

References