findbasis.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:crypto 作者: erose1337 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号