首页 > 解决方案 > SAGE 如何使用 sagemath 在这个等式中找到 e?

问题描述

这个问题要求我们在给定的方程 c' = x^e mod N 中求解 x,因为我们已经知道 c', e , mod N。我查看了我的教程,但他们只给了我们一种方法得到 e,但不是 x。

我手动尝试解决它并得到方程:

log c' = e log x mod N

但我不知道如何输入 Sage Math。

这是从教程中找到的e:

离散对数 (c',Mod(x,N))

标签: discrete-mathematicssage

解决方案


问题实际上是在问如何找到 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

推荐阅读