乐趣区

关于rsa:非对称加密之RSA详细分析

RSA 原理和数学根底不再赘述,网上材料比拟多,本文重点剖析,RSA 信息如何在证书等相干畛域的利用。

RSA 密钥生成过程大略是这样的,

  1. p、q: 随机找两个大素数 p、q,
  2. n: 把它们的乘积后果记为 n
  3. φ(n): 计算 n 的欧拉函数 φ(n) = (p-1)(q-1)
  4. e: 随机抉择一个整数 e,条件是 1 < e < φ(n),且 e 与 φ(n) 互质。(理论利用中,经常抉择 65537。)
  5. d:d 满足 ed ≡ 1 (mod φ(n))
  6. 将 n 和 e 封装成公钥,n 和 d 封装成私钥。

证书信息

以思否网站的证书为例,咱们看到应用的非对称加密是 RSA

公钥信息 RSA(2048Bits) 阐明,公钥长度是 2048 个比特,也就是 n 这个十进制大整数转换为二进制的 bit 个数。依据 RSA 密钥生成过程,公钥是又 n 和 e 组成,e 个别用 65537。那么,在证书的公钥信息里,n 和 e 在哪里?然而数上面的 30 82 01 0a… 的所有字节,增强远超过 2048bit。

到这,不得不提 ASN.1 编码,人们为了不便存储、传输、替换信息而制订的编码方式,这种编码方式是独立于任何零碎和设施的,以达到跨零碎,跨畛域传输通用性。咱们晓得,RSA 生成公钥,就是 n 和 e,n 和 e,通过 ASN.1 的编码标准进行编码,这样,任何人,任何设施,只有依照标准去解码,必定可能获取 n 和 e,其实就是 ASN.1 编码对立通信语言。好了,到这里,咱们晓得,证书的公钥信息是 ASN.1 编码的,那就依照编码标准,解析出 n 和 e 即可,其实很简略,n 和 e 就嵌在公钥信息里,间接提取就行。

30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01
01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01 01
00 ba 3c 0b 9f a4 6a 8c 70 37 c2 eb 69 b7 07 f6
c0 b9 3d 83 28 8b a2 db e9 96 88 23 fc ca 43 1c
2b 68 1c 63 12 67 94 0e 20 61 8f b0 28 96 7a e5
42 e6 61 e2 35 32 5b b4 0d 7d 6b 65 5b c4 7d 3e
91 4a c8 af 81 fb c7 aa 02 dd 69 e7 5b 31 68 79
ff 41 65 5e 32 e3 f1 6a 81 20 c9 c2 ff 4b e1 ab
14 a2 ce b0 39 15 86 35 7a d9 25 b1 5a 32 a4 cc
3a fe 35 7c 05 5e 41 9a 9a 88 6f f9 5f 28 18 7b
6c 3d fc b1 04 7a 29 4f 34 00 01 b0 97 f9 4e bc
e8 ad e7 5d 98 8e ed 3b 3b d0 01 87 8b 63 4e c3
8d e5 1f bf 80 39 e5 80 c8 06 4f 35 40 c9 de 3b
42 50 2c 73 fe 51 8a 8a ea dd 38 77 8b 6f 34 99
41 bb f1 3f 9e 09 29 53 ff ec f6 92 04 bf 77 f7
b6 48 11 05 39 22 86 1b 72 fe 4d 94 a3 7d 48 c8
1c f9 eb 93 87 06 e0 d5 69 61 e2 9e 2c 38 d8 8d
63 38 ab 32 7d 7c a5 50 bf 8b 83 0c 5e 7e 76 ca
65 02 03 01 00 01

参考资料

http://www.ruanyifeng.com/blo…

退出移动版