我在上一门课,代数密码学导论。我们用的是Sage的一切和CoCalc。这是我听说过的第一节课。老师为我们的使用提供了许多方便的功能。我不喜欢在CoCalc中重复将它们复制到新的Sage工作表中。所以我把它们放进了图书馆。
这花了一些时间,但我终于学会了,要使用它们,我必须在Sage中这样做:
load_attach_path('/path/to/the/directory')
%attach elliptic_curve_common.sage现在,有一个函数是她为我们编写的,叫做HPSonEC。这个函数是关于使用Hellman银漏洞破解椭圆曲线上的加密。令人恼火的是,该函数在使用时不会像上面那样工作,我得到了以下错误:
Error in lines 5-5
Traceback (most recent call last):
File "/cocalc/lib/python3.8/site-packages/smc_sagews/sage_server.py", line 1230, in execute
exec(
File "", line 1, in <module>
File "<string>", line 298, in HPSonEC
File "<string>", line 263, in listptorder
File "<string>", line 151, in ECTimes
File "sage/rings/rational.pyx", line 2401, in sage.rings.rational.Rational.__mul__ (build/cythonized/sage/rings/rational.c:20911)
return coercion_model.bin_op(left, right, operator.mul)
File "sage/structure/coerce.pyx", line 1248, in sage.structure.coerce.CoercionModel.bin_op (build/cythonized/sage/structure/coerce.c:11304)
raise bin_op_exception(op, x, y)
TypeError: unsupported operand parent(s) for *: 'Rational Field' and 'Abelian group of points on Elliptic Curve defined by y^2 = x^3 + 389787687398479 over Finite Field of size 324638246338947256483756487461'但是,如果我接受这个函数,以及它所依赖的其他函数,并将它们复制到我的Sage工作表中,它们就能正常工作。从字面上讲,代码没有任何区别。可能有什么问题?
发布于 2021-03-19 17:09:27
当从工作表或.sage文件中读取代码时,将应用Sage准备器。
从.py文件读取代码时,情况并非如此。
有很多问题都是这样提出的:
https://stackoverflow.com/questions/66702213
复制相似问题