这个问题要求我们在给定的方程c'= x ^ e mod N中求解x,因为我们已经知道c',e,modN。我仔细研究了本教程,但他们只给了我们一种获取e的方法,但不适用于x。
我手动尝试解决它,并得到了等式:
log c'= e log x mod N
但是我不知道如何输入Sage Math。
这是从教程中找到的:
discrete_log(c',Mod(x,N))
答案 0 :(得分:0)
问题实际上是在问如何找到c'模N的第e个根。
例如,有人想求解12 = x ^ 99模347。
这等于找到第12个347模的第99个根。
只需设置以347为模的整数环,
sage: A = Zmod(347)
sage: A
Ring of integers modulo 347
为该环中的元素12命名,
sage: a = A(12)
并询问Sage该元素的第99个根:
sage: a.nth_root(99)
241
检查是否可以回答问题:
sage: A(241)^99
12
sage: pow(241, 99, 347)
12
sage: power_mod(241, 99, 347)
12
答案 1 :(得分:0)
塞缪尔的答案远不止于此,但是,如果您要寻找一个真正的快速解决方案,则可以使用此(幼稚的)函数求小模量:
sage: solve_mod(x^99==12, 347)
[(241,)]