pkenc_gm82

Goldwasser-Micali Public Key Encryption Scheme (GM82)

Authors: S. Goldwasser, S. Micali

Title: “Probabilistic Encryption and How to Play Mental Poker Keeping Secret All Partial Information”
Published in: 14th Symposium on Theory of Computing (STOC), 1982
Notes:

Scheme Properties

  • Type: encryption (public key)

  • Setting: Integer

  • Assumption: Quadratic Residuosity

Implementation

Authors:

Guillermo Ramos

Date:

01/2015

class pkenc_gm82.GM82[source]

Bases: PKEnc

>>> gm82 = GM82()
>>> (pk, sk) = gm82.keygen(512)
>>> zero = gm82.encrypt(pk, 0)
>>> one = gm82.encrypt(pk, 1)
>>> gm82.decrypt(sk, zero)
0
>>> gm82.decrypt(sk, one)
1
>>> gm82.decrypt(sk, gm82.xor(pk, zero, zero))
0
>>> gm82.decrypt(sk, gm82.xor(pk, zero, one))
1
>>> gm82.decrypt(sk, gm82.xor(pk, one, zero))
1
>>> gm82.decrypt(sk, gm82.xor(pk, one, one))
0
decrypt(sk, c)[source]
encrypt(pk, m)[source]
keygen(secparam)[source]
xor(pk, c1, c2)[source]
pkenc_gm82.isResidue(x, p1, p2)[source]