首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多方加密算法

多方加密算法
EN

Cryptography用户
提问于 2013-12-18 01:08:20
回答 1查看 14.5K关注 0票数 27

给出一些前景信息:我承认我是一个密码学新手,而不是一个专家(而且可能永远不会)。

在最近的一个CS课上,我们有几个作业,写和实现RSA和Diffie-Hellman。这很有趣,但这完全是双方的加密。我想实现多方加密。例如,聊天室或IRC场景中,所有相关方都同时发送加密文本。环顾四周,我看到有几个库在其他问题中实现了这一点。但不只是一般的算法。

我可以想象这样的事情,在RSA中实现,向每个人发送公钥,同时为每个其他成员加密和解密多个消息。例如,有3个人在聊天室。人A发送“你好家伙”两种独特的密码短信,人B和人C接收和单独解密与他们自己的私钥。这是可行的,但这似乎效率低下,而且有些杂乱无章。

是否有一种普遍接受的允许多方同时使用公钥加密的算法?

(再一次,这不会进入任何生产级别系统。这只是为了我自己的学术好奇心。)

EN

回答 1

Cryptography用户

回答已采纳

发布于 2013-12-18 15:55:40

通常所说的“组加密”并不是你想要的。组加密算法力求实现以下目标:给定的消息是加密的,只有在足够多的组成员协作的情况下才能解密。这不是您想要的;您想要的是一个系统,这样一个给定的消息可以被加密一次,并且收件人组的每个成员都可以独立于所有其他成员来解密它。

您想要的技术术语是广播加密。一个特殊的和相当具有挑战性的例子是在蓝光光盘中所做的工作,它被称为AACS。即:

  • 每个蓝光读取设备都有自己的私钥。
  • 光盘内容只能被允许的设备读取(这是“接收者组”),但是有数十亿的设备。
  • 在光盘中包含特定于每个目标设备的某些数据是不切实际的(每个人都有相同的光盘,目标设备太多)。
  • 通信是单向的(设备离线,所以光盘内容必须足够).
  • 媒体生产商希望保留一些“撤销功能”,以便一些已知的“破解”设备无法读取新光盘的内容,而其他设备(这是关键点)仍不能以任何方式“更新”(因为它们没有网络能力)。

对于小型组(作为聊天服务器,只有几十个接收者),这个问题很容易解决:

  • 让每个组成员拥有一个公钥/私钥对。
  • 使对称组密钥K,通过向每个成员发送公开密钥对K的加密而为所有成员所知。
  • 要添加一个组成员,只需向他发送用他的公钥加密的K。
  • 要删除组成员,因为健忘不能强制执行,您必须创建一个新的组密钥K‘并将其发送给所有其他成员。

该系统中最大的开销是组密钥更新,只有在必须删除成员时才有必要,并且费用与组的大小成正比(带有2048位密钥的RSA加密值为256字节,只要组不大于几百人,这是可以容忍的)。

票数 37
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/12417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档