有一个密钥对,把私钥给别人,自己保留公钥,可行不?

2014-11-07 12:23:03 +08:00
 larkifly
目前看到的应用场景都是把公钥给别人,自己保留私钥,
但是理论上不是公钥加密,私钥解密,私钥加密,公钥解密,那这样的话,把私钥给别人,自己保留公钥也是可行的了???
13410 次点击
所在节点    程序员
31 条回复
xoxo
2014-11-07 14:00:21 +08:00
如果是你生成的, 那么你就知道私钥了, 再让对方知道.....那就不叫非对称了
SharkIng
2014-11-07 15:03:09 +08:00
如果你只是用于签名,或者配对连接的话,比如登录一个SSH,你拿公钥服务器上存私钥,或者服务器上存公钥你拿私钥好像是没有什么影响的

但是如果你要加密解密,就不行,私钥能算出公钥,公钥无法算出私钥,具体的楼上已经说了很多了
而且公钥加密私钥解密,好像不能私钥加密公钥解密吧?
harryyyt
2014-11-07 15:09:06 +08:00
可以根据私钥算出公钥,反之无法从公钥算出私钥,所以我们公开的是公钥。你可以公钥加密,私钥解密,也可以私钥加密,公钥解密,这个是没关系的。
lingxi27
2014-11-07 15:28:34 +08:00
n=pq
φ(n)=(p-1)(q-1)
m^φ(n) ≡ 1 mod n


ed ≡ 1 mod φ(n)

cipher=m^e mod n
plain = cipher ^ d mod n ≡ m^ed mod n = m

理论上e与d是可以互换的,但是一般公钥指的是(e, n) 私钥指的是(d, p, q),因为知道p q d 容易算出e,所以这两者是不能互换的
xuan_lengyue
2014-11-07 15:36:58 +08:00
你为啥不让人家随机一个私钥然后生成公钥给你呢…
ryd994
2014-11-07 22:06:22 +08:00
你这样毫无意义
RSA的基本思路
ryd994
2014-11-07 22:19:04 +08:00
你这样毫无意义
RSA的基本思路是人人有公钥,只有一个人有私钥,然后就可以广播公钥加密的密文(如果传输可能被窃听就是广播无异),只有这个有私钥的人能解密。
RSA签名就是拿私钥加密,公钥解密,因为只有一个人有私钥,所以就可以验明身份。
这两种用法都是建立在只有一个人有私钥的基础上的。
像你这样,全世界都有了私钥,同时也就有了公钥,不仅人人能解读密文,人人还都能伪造签名。RSA正反两种用法都没用了。变成了对称加密,密钥还公开了。对称加密不是不能用,但是要以密钥隐秘为前提。
正在要安全交换信息是这样:首先双方通过可靠途径(某个可行可验证身份的途径)交换用于签名的公钥。然后就可以进入不安全信道了。双方再交换另一个用于加密数据的公钥(带签名),然后用这个加密用公钥加密
ryd994
2014-11-07 22:24:23 +08:00
之所以加密和签名用的密钥分开是有意义的。签名用的公钥是整个安全信道的根基,必须保证安全。所以尽量不用与加密数据减少被破解的可能。同时为了不被破解,签名公钥位数都比较大,用于交换数据时性能比较差。尽管可以加密传输对称密钥然后传输对称加密,但是还是如第一条所说,少用才靠谱。
加密数据用的密钥,不必太长,要时常更换。
Cu635
2014-11-09 20:59:17 +08:00
@jsq2627 理论上可以计算,但是分解大素数太难,被认为是不可能问题。
bing1178
2018-01-05 00:57:26 +08:00
p = 61
q = 53

n = p * q = 61 * 53 = 3233

欧拉 n = (p-1) * (q-1) = 60 * 52 = 3120

e 为任意一个; 1 < e < 欧拉 n 且 e 和 欧拉 n 互质,比如 17
e = 17

求 d ;要求 e * d % 欧拉 n = 1
转化公式 x * e + 欧拉 n * y = 1 ; 17x + 3120y = 1 ; 算出 x = 2753,y = -15
验证要求 7 * 2753 % 3120 = 1
d = 2753

钥匙 A 为:n 和 e
钥匙 B 为:n 和 d

用钥匙 A 加密 123
123 ** e % n = 123 ** 17 % 3233 = 855
用钥匙 B 解密 855
855 ** d % n = 855 ** 2753 % 3233 = 123

用钥匙 B 加密 99
99 ** d % n = 99 ** 2753 % 3233 = 89
用钥匙 A 解密 89
89 ** e % n = 89 ** 17 % 3233 = 99

[总结]
不知道 pq 的情况下:
钥匙 A 不 hen 能 nan 算出 钥匙 B
钥匙 B 也不 hen 能 nan 算出 钥匙 A

! 工具生成的私钥应该是保存了 pq
bing1178
2018-01-05 01:01:39 +08:00
我认为 楼主的答案是: 没有 pq 的情况下就可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/144641

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX