鼠尾草如何使用鼠尾草在方程式中找到e?

时间:2019-05-31 08:53:37

标签: discrete-mathematics sage

这个问题要求我们在给定的方程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))

2 个答案:

答案 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,)]