给出一些前景信息:我承认我是一个密码学新手,而不是一个专家(而且可能永远不会)。
在最近的一个CS课上,我们有几个作业,写和实现RSA和Diffie-Hellman。这很有趣,但这完全是双方的加密。我想实现多方加密。例如,聊天室或IRC场景中,所有相关方都同时发送加密文本。环顾四周,我看到有几个库在其他问题中实现了这一点。但不只是一般的算法。
我可以想象这样的事情,在RSA中实现,向每个人发送公钥,同时为每个其他成员加密和解密多个消息。例如,有3个人在聊天室。人A发送“你好家伙”两种独特的密码短信,人B和人C接收和单独解密与他们自己的私钥。这是可行的,但这似乎效率低下,而且有些杂乱无章。
是否有一种普遍接受的允许多方同时使用公钥加密的算法?
(再一次,这不会进入任何生产级别系统。这只是为了我自己的学术好奇心。)
发布于 2013-12-18 15:55:40
通常所说的“组加密”并不是你想要的。组加密算法力求实现以下目标:给定的消息是加密的,只有在足够多的组成员协作的情况下才能解密。这不是您想要的;您想要的是一个系统,这样一个给定的消息可以被加密一次,并且收件人组的每个成员都可以独立于所有其他成员来解密它。
您想要的技术术语是广播加密。一个特殊的和相当具有挑战性的例子是在蓝光光盘中所做的工作,它被称为AACS。即:
对于小型组(作为聊天服务器,只有几十个接收者),这个问题很容易解决:
该系统中最大的开销是组密钥更新,只有在必须删除成员时才有必要,并且费用与组的大小成正比(带有2048位密钥的RSA加密值为256字节,只要组不大于几百人,这是可以容忍的)。
https://crypto.stackexchange.com/questions/12417
复制相似问题