【问题标题】:Solving a modular exponentiation with unknown power [closed]求解具有未知幂的模幂[关闭]
【发布时间】:2020-09-11 12:04:22
【问题描述】:

伙计们,求解a^b = c mod p 格式的模方程的最快算法是什么,其中p 是一个非常大的素数,b 是未知的。 例如:

2^k = 15 mod 30903154482632612361920641803533

我已经尝试过在 C++ 中使用 boost 库进行试验和错误,但需要很长时间才能得到答案。

【问题讨论】:

  • 这似乎是公钥密码学的重点。破解它需要很长时间。
  • 是的,我知道,但是我提供的示例应该不会花很长时间,因为我的讲师给它解决了,他告诉它不应该花太多时间
  • 我只需要最有效的算法。

标签: c++ exponentiation modular


【解决方案1】:

您正在尝试解决所谓的discrete logarithm。如果有一个有效的解决方案,我想发现它的人会在它发布到这里之前很久就对密码系统造成混乱。

您会在 Wikipedia 上找到很多 algorithms,它们的时间复杂度各不相同。其中一些很容易实现。请参阅The computational complexity of discrete log 了解最佳空间复杂度。

【讨论】:

  • 非常感谢您提供的信息,但是如果 p 是素数,它会有所不同吗?哪一个更容易处理?
猜你喜欢
  • 2018-01-15
  • 1970-01-01
  • 1970-01-01
  • 2014-08-21
  • 1970-01-01
  • 1970-01-01
  • 2014-07-19
  • 1970-01-01
相关资源
最近更新 更多