【发布时间】:2019-10-31 11:36:32
【问题描述】:
我正在使用 Python 和 SageMath 实现维纳指数攻击。
我的代码如下
from sage.all import *
# constants
b = some_very_large_number
n = some_very_large_number
b_over_n = continued_fraction(b/n)
while True:
t_over_a = b_over_n.convergent(i+1)
t = t_over_a.numerator()
a = t_over_a.denominator()
# check if t divides ab-1
if ((t != 0) and (gcd(a*b-1, t)== t)):
print("Found i: ", i)
break
i += 1
我发现循环不会永远结束,并在while循环之前添加了这行代码。
print(b_over_n.convergent(5))
我发现b_over_n 无论如何总是返回 0。
我还打印出type(b_over_n) 并检查它是'long' 类型。
我查看了 SageMath 手册,但还没有发现任何有用的东西。
我在这里做错了吗?
【问题讨论】: