RSA 可以做私钥加密,公钥解密吗?不是数字签名

2019-03-09 15:04:52 +08:00
 GuguguguDa
4337 次点击
所在节点    问与答
45 条回复
liwufan
2019-03-09 16:24:13 +08:00
简单来说,私钥不能反推出自己加密的内容,公钥也不能反推出自己加密的内容.类比就是锁(公钥)和钥匙(只能有一把的私钥),私钥加密,公钥解密的行为相当与做一把全世界人都能开的锁,但是这把锁你自己无论如何都打不开.
GuuJiang
2019-03-09 16:25:35 +08:00
@GuguguguDa 肯定是可以还原的,否则怎么验证签名,验证签名的过程就是用公钥解密啊,至于你贴的那个链接,你再好好看看,那个问题问的是为什么公钥加密的消息无法用公钥还原,跟你这里问的不是一回事
GuguguguDa
2019-03-09 16:41:57 +08:00
@GuuJiang 哈哈哈 对对对 我看错了
sherlockwhite
2019-03-09 18:37:50 +08:00
我理解的公钥私钥是相对的,公钥加密私钥解密,但是你这里的问题是问定义的私钥加密,公钥能不能解密,应该是可以的。公钥私钥应该是相对的在数学意义上,你用定义的私钥加密,这里的定义的私钥就是公钥了,你要保证原本定义的公钥的唯一性,就保证了这对密钥的安全性。
580a388da131
2019-03-09 18:58:17 +08:00
生成公钥一般用的是常数 所以安全性来说 公私不对互换
数学上没问题
hhhsuan
2019-03-09 19:02:33 +08:00
当然可以,RSA 不就是干这事的吗
Xbluer
2019-03-09 19:04:26 +08:00
私钥是可以加密的。

非对称加密,需要一对密钥,两者技术层面是一样的。只是挑了其中一个公开,叫做公钥;另一个不公开 /私有,所以叫做私钥。

你提到的数字签名就是私钥加密的一种应用。
lvybupt
2019-03-09 19:25:57 +08:00
RSA 的公钥和私钥是用扩展的欧几里德算法(辗转相除法)求出来的,选出来就是成对的。
然后你随便选一个当公钥,另外一个当私钥。

其他的非对称加密并不一定具有这个特性,但是 RSA 肯定是没问题。
Mutoo
2019-03-09 20:29:09 +08:00
RSA 非对称加密使用一对密钥协相互加密解密。
对外公开的叫公钥,自己保留的叫私钥。
在端到端加密的场景中,别人向你发信息的时候:
使用你的公钥加密,用他自己的私钥签名。
这样的话只有你的私钥能解开这个信息,别人无法读取。
用对方的公钥可以验证签名,确定信息确实是由对方发起的,第三方无法伪造。
Mutoo
2019-03-09 20:31:20 +08:00
@Mutoo 用公钥验证签名的方法就是解密对方用私钥加密的签名串
hoiyd
2019-03-09 20:42:22 +08:00
可以,但是非对称加解密算法( RSA )的性能不如对称加密( AES 之类)算法,所以一般加解密大量内容的时候一般用对称加密算法,然后用非对称加密签个名。
cjw1115
2019-03-09 20:54:57 +08:00
这种一般不叫加密了,使用私钥叫做签名,使用公钥叫做验签。 公钥可以从私钥中获取,要保证私钥的绝对安全
BinRelay
2019-03-09 21:51:45 +08:00
从数学角度,私钥和公钥并没什么区别。只选选择公开的叫公钥。选择保留的是私钥。
而且公钥私钥不能互推。所以公钥加密私钥解,私钥加密公钥解没有本质区别。

不过,从应用角度,例如 9 楼的那一对公钥私钥,采用的 PKCS#1 格式的私钥,并不是真正
数学意义上的私钥,里面包含了 rsa 推导过程的信息( p、q ),所以得到私钥可以直接推导得到公钥。
jimages
2019-03-09 22:19:21 +08:00
@BinRelay 公钥是可以从私钥算出来的.......
BinRelay
2019-03-09 22:22:47 +08:00
@jimages 建议你仔细读我的回复。或者去复习下 rsa 的数学公式。
jimages
2019-03-09 22:37:51 +08:00
@BinRelay
“而且公钥私钥不能互推 ”
https://zh.wikipedia.org/wiki/RSA 加密演算法#密钥生成
p q 相乘不就可以得到了吗?
jimages
2019-03-09 22:43:57 +08:00
@BinRelay 不好意思,撤回以上回复。
YenvY
2019-03-10 01:29:24 +08:00
本坛有过相关的讨论
/t/519617
msg7086
2019-03-10 01:57:38 +08:00
本坛其实有过很多很多相关的讨论,多到我已经回复过好多贴了,而且 38 楼的链接里没有我回复的内容。
tomczhen
2019-03-10 07:19:58 +08:00
数学上讲是可以的,并且代码也能实现,但是实际很多加密库并没有实现。

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

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

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

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

© 2021 V2EX