【问题标题】:RSA Encryption - find the 'e' keyRSA 加密 - 找到“e”密钥
【发布时间】:2021-11-26 02:54:00
【问题描述】:

我正在制作一个计算 RSA 密钥并加密和解密消息的应用程序。我能够找到键 n 和 ????????,并看到需要一个公式才能正确找到键“e”。

1 > ???? > ????(??????) 和??????(??????) ????(????????)

介于 1 和 n 的全部函数之间的任意数, 其中 'e' 的除数不属于 ???????? 的除数。

我想知道一种实用的方法来验证这一点。

【问题讨论】:

  • 你的符号不熟悉,你的公式没有任何意义。要么定义符号的含义,要么使用更多的标准符号,例如RSA.

标签: flutter dart math encryption rsa


【解决方案1】:

说“'e'的因数不属于??的因数”就是说gcd(e,phi(n)) == 1,这很容易用Euclidean Algorithm验证。由于您无论如何都需要使用扩展欧几里得算法从e 中找到解密指数d,因此验证e 的相同计算也可以找到d。有phi(phi(n))候选人e,所以在实践中你不必搜索很长时间。

我希望这是一个学习练习,而不是您计划在产品中用于真正安全的东西。编写 RSA 的实现有点容易,但编写 secure 实现却出奇地难。要使您的实现能够抵抗已知攻击,除了基本的数论之外,还需要做很多事情。

【讨论】:

  • 我正在研究一些超出我舒适区的东西,因为我已经习惯了应用程序设计,而且我一直喜欢加密,所以我决定用它来学习更多关于 Dart 的“原始”部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-08
  • 2011-11-07
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多