密码学问题:如何在没有私钥的情况下,验证某个密文是用公钥加的密?

2021-09-03 18:02:57 +08:00
 flypanda

场景如下 Alice 使用 Bob 的公钥 PubKey_Bob 对消息message进行 Encrypt,得到密文Cipher 我作为中间人,如何在没有解密用的PrivKey_Bob的条件下验证 Cipher 确实是使用PubKey_Bob加的密? 有什么密码学方案满足这个需求?

1607 次点击
所在节点    问与答
16 条回复
yfugibr
2021-09-03 18:15:51 +08:00
准备两对密钥,一对用于加密,一对用于签名
yfugibr
2021-09-03 18:18:19 +08:00
@yfugibr 我理解错了
flypanda
2021-09-03 18:20:40 +08:00
@yfugibr 我没有表达清楚,这里想防止的是 Alice 作恶。
Alice 虽然把 Cipher 发给了 Bob,但是就是不让 Bob 解密其中的 Message 。

所以就算准备两对儿秘钥,Alice 还是可以 用`Signature_pubkey_bob`签名,但是使用 `Crypto_pubkey_Evil` 来加密

这样验签 可以看到确实是 Bob 的公钥在签名...但还是不能保证 Alice 是用 Bob 的公钥加的密
dablwow
2021-09-03 18:25:33 +08:00
@flypanda
"但是就是不让 Bob 解密其中的 Message"
================
Alice 可能怎么做呢?比如用其他公钥加密?或者破坏 Cipher ?
flypanda
2021-09-03 18:30:28 +08:00
@dablwow
对没错。可以先只考虑 "用其他公钥加密" 这种情况...我比较担心的就是这个情况
flypanda
2021-09-03 18:35:04 +08:00
@dablwow @yfugibr 二位哥,我想过使用密钥共享...但是似乎不太行
比如门限思路:将 Bob 的私钥 分成多分,我作为中间人持有其中 n 份,超过门限,可以解密 Cipher 。只要能解密就可以确定 Alice 是使用 Pubkey_Bob 加的密...
但这个思路有个缺陷 门限密码 是使用 超过 n 份的私钥碎片 恢复出 私钥本身...我作为中间人,是可以恢复出 PrivKey_Bob 的.... 这个事情 Bob 无法接受....
geelaw
2021-09-03 18:44:45 +08:00
一般来说答案是 vacuously true,因为有些方案里有可能同一条密文本来就可以被解读为两个不同公钥下的密文,考虑 ElGamal 加密,考虑两个公钥分别是 g^a, g^b,则 h 在 g^a 下的密文 g^c, g^ac * h 也可以理解为 g^((a - b)c) * h 在 g^b 下的密文 g^c, g^bc * g^((a - b)c) * h 。

我觉得楼主的需求似乎不能解决楼主的问题:即使证明了某段密文只能是用 Bob 公钥加密所产生的,也没有证明加密了有意义的消息。
wy315700
2021-09-03 18:46:46 +08:00
仅凭密文就能分析出加密密钥。。。

兄弟你这是完成了一次唯密文攻击啊。
flypanda
2021-09-03 18:52:33 +08:00
@geelaw 说的有道理...我想想...
xarthur
2021-09-03 18:54:43 +08:00
感觉是个 XY 问题……
Corua
2021-09-03 20:11:18 +08:00
是否在找"公钥的不可否认性",但现今的体系里并没有这种方案
公钥本来就没有签名的用途,仅持有公钥又能如何作恶呢?
icegaze
2021-09-03 20:42:42 +08:00
简单,
没有 A 签名的信息,
一概不认为是 A 加密的。
丢弃掉就行。
icegaze
2021-09-03 20:44:39 +08:00
非对称密钥体系的意义不仅仅于加密。

正确的运用是,
应该先加密,再在外面包裹一下签名。
这才是整套加密传输的思路。
icegaze
2021-09-03 20:53:12 +08:00
看错了,
楼主是说 A 用 B 的公钥加密信息…
那旁人(非 B )根本没法验证或者解密啊?
niubee1
2021-09-03 20:58:44 +08:00
你要不让别人解开还作什么恶呢?
sillydaddy
2021-09-04 12:59:00 +08:00
不知道楼主想要实现什么,有个密码学问题叫“公平交换”,可以看下这个帖:
https://www.v2ex.com/t/765057

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

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

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

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

© 2021 V2EX