如果提到 GPG 那么不得不提的就是公钥加密算法,首先我们先来快速地了解一下最知名的公钥加密算法 —— RSA:在 RSA 中有「公钥」和「私玥」两种密钥,其中私钥可以导出公钥,但公钥无法反推私钥。如果用公钥加密数据的话,那么只有私钥可以解密;如果使用私钥签名数据的话,那么可以验签名。 https://jysperm.me/2017/09/gpg-and-e2ee/
这是真的吗? 但是我看阮一峰的说法 http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html
公钥也能推出私钥
1
weyou 2017-09-14 21:21:17 +08:00 via Android
据我粗浅的认知,公钥和私钥是对等的。有种私钥文件格式是包含了公钥,自然可以将公钥导出来。
|
2
Citrus 2017-09-14 21:31:16 +08:00 via iPhone
如果你说大数分解是可行的,那么就可以随便互相导。
|
3
ryd994 2017-09-14 21:34:21 +08:00
|
4
hxndg 2017-09-14 22:00:25 +08:00
并不是这个样子的,私钥公钥是一个非对称密码学的概念,你选择哪个公开哪个就是公钥。一般情况下是不能互相推倒的,但是因为公钥是公开的,所以你有了私钥相当于你两个都有。RSA 我一直觉得比较特殊因为它是可以推倒出来的,但是这和公钥私钥概念并不矛盾。
|
5
xrui 2017-09-14 22:04:36 +08:00 via iPhone
尝试一下证明黎曼猜想,证出来 RSA 基本就废了
|
6
fzleee 2017-09-14 22:12:58 +08:00 1
私钥无法导出公钥,之所以“可以”,是因为私钥文件里面顺便保存了公钥信息
|
7
honeycomb 2017-09-14 22:21:50 +08:00
字面上说,私钥和公钥是两个东西,私钥加密的内容只有公钥才能解开,反之也是。
但是在实际操作时,私钥的容器往往同时包含私钥与公钥(公钥是让所有人都会知道,那么拥有私钥的人没有道理不留存一份公钥),而公钥的容器仅包含公钥 @weyou 已经提到这一点 这就是为什么私钥可以导出公钥,但反过来不行的原因。 |
8
geelaw 2017-09-14 22:27:23 +08:00
对于一般的定义,公钥私钥之间没有必然的推导关系。
不过有些定义为了省事儿,直接把私钥定义为用来生成密钥对的算法的随机种子,这样的话私钥是蕴含公钥的。 对于教科书版本的 RSA,公钥和私钥之间是可以互相推出的。只不过目前没有人知道如何 **快速地** 从公钥导出私钥。 @xrui 我搜索了一下,似乎单纯证明出 RH 和 RSA 之间并没有直接的关系。 |
9
ryd994 2017-09-14 22:27:33 +08:00 via Android
RSA 密钥最少保存 3 个数,n,d,e
ne 组成公钥,nd 组成私钥 其中 e 一般固定 65537,因此知道私钥 nd 就能推出公钥 如果 e 不是 65537 就不一定能推出了 |
10
tinybaby365 2017-09-14 23:03:11 +08:00 via iPhone
RSA 公钥内容是私钥的一部分,不是推导,而是直接导出。
|