def break_gcd_cipher():
from crypto.designs.integers.gcd import encrypt, decrypt
from os import urandom
for _m in range(1, 256):
m = 0
while not m:
m = ord(urandom(1))
k = ord(urandom(1))
def point_generator(m, k, point_count=32):
for count in range(point_count):
yield encrypt(m, k)[0]
recovered_m = find_basis(point_generator(m, k))
assert recovered_m == m, (recovered_m, m)
print("Recovered m: {}".format(recovered_m))
# conclusion: The error in pq + e should be random/should not be kept fixed
评论列表
文章目录