有没有这么一种加密算法? A 给 B, C, D(, F, G ...) 发加密信息,信息只有 B, C, D(, F, G ...) 能解密

2018-02-22 00:28:49 +08:00
 seeker
A 给 B, C, D(, F, G ...) 发信息,希望信息只有 B, C, D(, F, G ...) 能解密。在不需要分别加密的情况下。
A 知道 B, C, D(, F, G ...) 的公钥。
2821 次点击
所在节点    问与答
18 条回复
ysc3839
2018-02-22 00:33:41 +08:00
以我知道的知识,“不需要分别加密”没法实现。也许你可以这样,信息本身用对称加密算法加密,然后分别非对称加密密钥。
swulling
2018-02-22 01:20:52 +08:00
用公钥加密后,拼成一个大信息。。。这样每个人解密出来的都是一段乱码中有信息


而且也不算分别加密
ryd994
2018-02-22 02:36:22 +08:00
或者让他们共享私钥啊
虽然这是很恶劣的做法
Librazy
2018-02-22 02:50:01 +08:00
用对称密钥加密明文,用每个人的公钥加密对称密钥
shiyouming91
2018-02-22 03:01:59 +08:00
CMS 了解一下
Bryan0Z
2018-02-22 03:53:40 +08:00
group signature 应该可以,A 拿着公钥加密,剩下的每个人拿着不一样的私钥
we000
2018-02-22 07:30:45 +08:00
其实都是分别加密,例如用 PGP 加密发邮件给多个收件人
xwyam
2018-02-22 07:51:36 +08:00
群签名反着用?
datocp
2018-02-22 08:03:32 +08:00
https://www.stunnel.org/auth.html

stunnel 有链路加密,客户端有 ca 用来认证服务器身份,服务器同样可以验证客户端身份已经是最安全的防范中间人通讯实现。
xlrtx
2018-02-22 11:58:31 +08:00
任意一个对等加密方法都可以实现题主的需求啊

c = f(m, k)
m = f'(c, k)

在 B, C, D(, F, G ...)有秘钥(k)的情况下
A 给 B, C, D(, F, G ...) 发加密信息(c), 信息(c)只有 B, C, D(, F, G ...) 能解密, 也不需要分别加密.
Hardrain
2018-02-22 12:02:15 +08:00
DH 算法可以多人使用(最后协商出来的 common secret 是 g^(abcdef) mod p)
对其中任何一个公钥(g^N mod p)签名即防止中间人攻击
Hardrain
2018-02-22 12:03:57 +08:00
@Hardrain 假设 A 有一个 RSA 公钥,BCDEF ……都有 A 的公钥
使用 DH(E)算法,A 用公钥对自己的 DH 公钥签名,将签名和 DH 公钥分发给 BCDEF ……,后者各自提供自己的公钥。
chinvo
2018-02-22 12:08:04 +08:00
KDM 了解一下
seeker
2018-02-22 21:38:59 +08:00
@Bryan0Z group signature 好像是说一个组内每人都可以以组的名义签名,不是用来加密的?
seeker
2018-02-22 21:42:56 +08:00
@shiyouming91 CMS 似乎范围太广了一点
seeker
2018-02-22 21:46:20 +08:00
@Bryan0Z (无视我上一条回复)看起来可以。只是这样的 group 是确定人数的,修改必须 group manager 修改。
inflationaaron
2018-02-23 00:06:55 +08:00
Bryan0Z
2018-02-23 05:42:19 +08:00
@seeker 看了眼你的需求,17 楼答案更合适

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

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

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

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

© 2021 V2EX