def validate_cryptosystem(self):
from Crypto.Util.number import isPrime
pk = self.public_key
if pow(pk.g, pk.q, pk.p) != 1:
m = "g is not a generator, or q is not its order!"
raise AssertionError(m)
if not isPrime(pk.p):
m = "modulus not prime!"
raise AssertionError(m)
if not isPrime(pk.q):
m = "subgroup order not prime!"
raise AssertionError(m)
if 2*pk.q + 1 != pk.p:
m = "modulus not in the form 2*(prime subgroup order) + 2"
raise AssertionError(m)
return 1
评论列表
文章目录