Replaced ** % with pow. Much faster. Now allows for higher primes
This commit is contained in:
parent
8e8f1107a5
commit
d688640a41
12
week4.py
12
week4.py
|
@ -34,7 +34,7 @@ class ElGamal:
|
|||
return key
|
||||
|
||||
def gen(self, sk):
|
||||
h = (self.gen_**sk) % self.order
|
||||
h = pow(self.gen_, sk, self.order)
|
||||
self.sk = sk
|
||||
self.pk = (self.gen_, h)
|
||||
return self.pk
|
||||
|
@ -44,20 +44,20 @@ class ElGamal:
|
|||
r = SystemRandom().randint(1, self.order)
|
||||
g, h = pk
|
||||
|
||||
s = (h**r) % self.order
|
||||
p = (g**r) % self.order
|
||||
s = pow(h, r, self.order)
|
||||
p = pow(g, r, self.order)
|
||||
c = s * m
|
||||
return c, p
|
||||
|
||||
def dec(self, c):
|
||||
c1, c2 = c
|
||||
h = (c2**self.sk) % self.order
|
||||
h = pow(c2, self.sk, self.order)
|
||||
m = c1 / h
|
||||
return m
|
||||
|
||||
def ogen(self):
|
||||
s = SystemRandom().randint(1, self.order)
|
||||
h = s**2 % self.order
|
||||
h = pow(s, 2, self.order)
|
||||
return self.gen_, h
|
||||
|
||||
|
||||
|
@ -111,7 +111,7 @@ class Bob:
|
|||
|
||||
|
||||
def run(donor : BloodType, recipient : BloodType):
|
||||
p = 35977
|
||||
p = 15485863
|
||||
q = 2 * p + 1
|
||||
g = SystemRandom().randint(2, q)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user