FreeBSD VuXML: Documenting security issues in FreeBSD and the FreeBSD Ports Collection

pycrypto -- vulnerable ElGamal key generation

Affected packages
2.5 <= py-pycrypto < 2.6


VuXML ID f45c0049-be72-11e1-a284-0023ae8e59f0
Discovery 2012-05-24
Entry 2012-06-24

Dwayne C. Litzenberger of PyCrypto reports:

In the ElGamal schemes (for both encryption and signatures), g is supposed to be the generator of the entire Z^*_p group. However, in PyCrypto 2.5 and earlier, g is more simply the generator of a random sub-group of Z^*_p.

The result is that the signature space (when the key is used for signing) or the public key space (when the key is used for encryption) may be greatly reduced from its expected size of log(p) bits, possibly down to 1 bit (the worst case if the order of g is 2).

While it has not been confirmed, it has also been suggested that an attacker might be able to use this fact to determine the private key.

Anyone using ElGamal keys should generate new keys as soon as practical.

Any additional information about this bug will be tracked at


CVE Name CVE-2012-2417