【问题标题】:SAGE How do I find e in this equation using sagemath?SAGE 如何使用 sagemath 在这个等式中找到 e?
【发布时间】:2019-10-16 21:45:48
【问题描述】:

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

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

log c' = e log x mod N

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

这是从教程中找e:

discrete_log (c',Mod(x,N))

【问题讨论】:

    标签: discrete-mathematics sage


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      Samuel 的回答远比这更全面,但如果您正在寻找一个真正快速的解决方法,您可以将这个(简单)函数用于小模数:

      sage: solve_mod(x^99==12, 347)
      [(241,)]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-04
        • 2019-05-12
        • 1970-01-01
        相关资源
        最近更新 更多