我最近遇到了基于身份的加密 (IBE) 的概念,这似乎是一个新颖的想法。但是,我没有注意到密码学社区中有很多人试图找到破解它的方法。我错了吗?
同样,我相信除非你能真正分发开源实现,让黑帽人群可以攻击它,否则它可能没有优点?
我想我想了解整个社区在使用这种方法时的经验,以及将其整合到您的应用程序和分发中有多容易?
(编辑:这是一篇关于基于 ID 的加密的维基百科文章。)
我最近遇到了基于身份的加密 (IBE) 的概念,这似乎是一个新颖的想法。但是,我没有注意到密码学社区中有很多人试图找到破解它的方法。我错了吗?
同样,我相信除非你能真正分发开源实现,让黑帽人群可以攻击它,否则它可能没有优点?
我想我想了解整个社区在使用这种方法时的经验,以及将其整合到您的应用程序和分发中有多容易?
(编辑:这是一篇关于基于 ID 的加密的维基百科文章。)
我不清楚你想问什么,所以我将编造几件事,然后回答。让我知道我是否暖和起来
首先,“基于身份的加密”与其说是一种加密方案,不如说是一种密钥管理方案。在任何公共/私人(或技术上的“非对称”)加密中,都有两个密钥。其中一个用于加密,一个用于解密,并且它们具有特殊属性,即如果您知道其中一个,则构建另一个仍然是指数级困难(或被认为是指数级困难)。因此,例如,我可以使用我的私钥加密给你的一封信;我发布了我的公钥。如果您可以使用公钥解密这封信,您就可以确定我是真正发送它的人。这是数字签名方案的核心思想。
问题是您必须有一种方法来生成和管理这些密钥,这很困难,因为该方案仅与您对私钥的保护一样好。有许多方法可以做到这一点。
基于 ID 的加密试图通过提出特殊算法来简化此密钥管理问题,这些算法从已知的公共信息(例如电子邮件地址)构造私钥。要以一种仍然难以弄清楚私人方面的方式做到这一点,您需要有一个受信任的实体,该实体根据他们知道的其他一些秘密构造私钥。因此,要与知道您的电子邮件地址的人建立联系。您去受信任的提供商并要求生成私钥。您想与之通信的人知道您使用的提供者,并从该提供者那里获得主公钥。
现在,您要发送给的人可以从您的 ID 生成公共端,除了来自提供商的一些主密钥信息外,什么都不知道;关键永远是传输方向。
换句话说,它看起来像这样:Alice 想要向 Bob 发送加密的电子邮件。他们都信任提供者汤姆。
这些方案的问题在于它简化了一些关键管理问题,但只是在一定程度上。你仍然需要生成密钥,更糟糕的是,你必须真正信任 Tom,因为他无所不知:他可以生成你的私钥,并用它加密,让任何消息看起来像是来自你。这意味着它创建了一个固有的密钥托管方案;可以找到你的私钥。
在某些方面这很好;它处理丢失钥匙的问题。但出于大多数原因,人们想要使用加密,这很糟糕。现在有人可以传唤汤姆,或者只是殴打他,然后获取您的私人数据。
结果是,仅基于 ID 的加密是一个不错的想法,但并没有很大的市场。
查理走在正确的轨道上,但我想强调其他几点。(我的评论是根据查理的答案的一个更早的、更短的版本写的。)IBE 与其说是一种加密方法,不如说是一种密钥管理方案,它的密钥管理方法扫除了地毯下的重要问题。尝试使用身份作为基础是充满问题的,因为无论是在网络上还是在物理世界中,都没有真正好的解决方案来验证电子应用程序中的身份。如果没有一个好的身份解决方案,一旦你强调他们所依赖的身份,这些 IBE 计划就会落空。
我见过的大多数 IBE 系统的任何技术细节都真正转向“信任提供者”,当你真正关心它时,它不会扩展并且不会提供真正的安全性。提供者努力通过网络建立身份,然后充当受信任的第三方,为每个人持有加密密钥。依赖受信任的第三方有许多已知的弱点。
现代密码学就是寻找不必依赖第三方的方法。Web of trust 是一种方法,主要缺点是它将密钥管理留给最终用户,而且密钥管理成本很高。依赖证书颁发者是另一种方法,但很明显,颁发者是受信任的第三方。几年前,所有浏览器都信任的主要问题之一破产了,并被一个明显不值得信任的玩家从破产中收购,这清楚地表明该方案的弱点是证书链的根源.
基于身份的加密在开源项目中很难实现,尤其是那种不仅像自由一样免费,而且像啤酒一样免费的加密。如前所述,整个系统依赖于受信任的第三方来发布密钥。这需要购买和维护昂贵的硬件和软件基础设施。此外,它还给颁发密钥的一方带来了很多责任。使用该系统的人会期望发行人在出现问题时承担责任(他们会);这种责任并不便宜,而且对于开源项目来说通常是不可行的。
你有什么特别的计划吗?“基于身份的加密”是一个相当广泛的术语。
但无论如何,你可能没有看到这么多的关注,因为它本身在密码学上并不那么特别。密码学的一般原则仍然适用,例如加密密钥中有多少位熵?如果要在基本上无限期使用相同的密钥,那么基于大量明文/密文的碰撞攻击和其他攻击的风险是什么......?
试试看。_ 好的和简单的解决方案。