RSA算法整理

1.随机取大质数 pq

2.设 n = p x q, n 的二进制位数就是密钥长度,一般为1024,2048.

3.计算n的欧拉函数 φ(n) = (p - 1)(q - 1)

4.从 1 - φ(n) 之间选择一个整数,且 eφ(n) 互质,计作 e

5.计算 e 对于 φ(n) 的模反元素d
ed ≡ 1 (mod φ(n))
意思就是 ed / φ(n) 余数 1
等价于 ed - 1 = k * φ(n), 由于dk 未知,相当于二元一次方程求解

  1. (n,e) 作为公钥, (n,d) 作为私钥

7.加密: me ≡ c (mod n) ,其中m (密文,整数)二进制长度不可超过n m:明文 c:密文

8.解密: cd ≡ m (mod n) 欧拉定理可证

9.暴力破解:

  • 因为解密需要私钥(n,d).
  • 根据 ed ≡ 1 (mod φ(n))
  • e 已经是公钥提供了,所以只要知道φ(n)就可以破解
  • 问题转化为求 φ(n):
    • φ(n), 根据 φ(n) = (p - 1)(q - 1)
    • 所以转求 p - 1q - 1, 根据n = p * q
    • 只要因数分解 n 得出pq 就可以计算φ(n) = (p - 1)(q - 1)
  • 但是,想要因数分解n为两个大质数的乘积,只能从最小的质数一点点循环的试,目前貌似只有768位的二进制被质因数分解了.再长还未公布.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、RSA的历史 1976 年以前,所有的加密方法都是同一种模式: (1)甲方选择某一种加密规则,对信息进行加密;...
    开着保时捷堵你家门口阅读 7,020评论 0 1
  • 本文结构: 一些基本的数学知识 RSA的具体过程 为什么RSA的私钥解密一定能得到明文 RSA算法可靠吗 RSA算...
    风再起时ME阅读 8,717评论 2 2
  • 关于使用python实现RSA加密解密 一、非对称加密算法 1、乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何...
    ttaymm阅读 4,524评论 0 0
  • 预备知识: 0. 模运算基本性质 (a + b) % p = (a % p + b % p) % p (a - b...
    耀鹏阅读 6,990评论 0 51
  • 《 我》 生活的苍白无力 有时候 我像狮子 大喊大叫 抒发愤怒 有时候 想个超人 无所不从 有时候 像个兔子 ...
    夏一墨阅读 1,007评论 0 0