Article · Wikipedia archive · Last revised Jul 3, 2026

Cohen's cryptosystem

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

Last revised
Jul 3, 2026
Read time
≈ 1 min
Length
306 w
Citations
1
Source

Cohen's cryptosystem1 is a public-key cryptosystem proposed in 1998 by Bram Cohen.

Key generation

In Cohen's cryptosystem, a private key is a positive integer p {\displaystyle p} .

The algorithm uses k {\displaystyle k} public-keys w 0 , , w k 1 {\displaystyle w_{0},\ldots ,w_{k-1}} defined as follows:

Generate k {\displaystyle k} random integers u 0 , , u k 1 {\displaystyle u_{0},\ldots ,u_{k-1}} chosen randomly and uniformly between B {\displaystyle -B} and B {\displaystyle B} . Where B {\displaystyle B} is some bound.

Let A = p 2 k {\displaystyle A=\lfloor {\frac {p}{2k}}\rfloor } and generate k {\displaystyle k} random integers v 0 , , v k 1 {\displaystyle v_{0},\ldots ,v_{k-1}} chosen randomly and uniformly between 0 {\displaystyle 0} and A {\displaystyle A} .

Define w i = ( u i p + v i ) {\displaystyle w_{i}=(u_{i}p+v_{i})} .

Encrypting a bit

To encrypt a bit m {\displaystyle m} Alice randomly adds k 2 {\displaystyle {\frac {k}{2}}} 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 w i {\displaystyle c=(-1)^{m}\sum w_{i}} .

De-cryption

To de-crypt, Bob computes h = c mod p = ( 1 ) m v i {\displaystyle h=c\mod p=(-1)^{m}\sum v_{i}}

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

References

References

  1. Bram Cohen. "Simple Public Key Encryption". Archived from the original on October 7, 2011.