深度详谈 | 超越传统公钥密码:基于身份、属性、函数的新型公钥加密技术探讨
✪原文作者:Matthew Green
✪原文标题:Beyond public key encryption
✪原文链接:https://blog.cryptographyengineering.com/2017/07/02/beyond-public-key-encryption/
✪本文导航:
◈ 身份基加密 6%
◈ 身份基加密中的“加密” 37%
◈ 属性基加密 55%
◈ 函数加密 73%
◈ 作者愿景 83%
身份基加密
在发明公钥密码之前,所有密码学都涉及到密钥。而处理密钥是一个累赘而繁琐的工作。在您可以安全地进行通信之前,您需要与合作伙伴交换密钥。这个过程充满了困难,并且随着通信规模的增大变得难以运作。
在这种情况下,往往会面临这样的问题:
假设该电子邮件或密钥服务器不可信(或者说,它允许任何人以Alice的名义上传密钥)。
02 Bob下载了一把恶意密钥Bob错误下载了由Mallory生成的一把恶意密钥,此处的Mallory理解为双方之间的中间人或攻击者。
03Bob将消息误发给Mallory当Bob后续准备使用密钥向Alice发送加密消息时,实际上是Bob在将所以消息加密发送给 Mallory。
是否有更好的技术可以替换传统的公钥?
- 如果能获取到私钥,如何阻止其他同样叫 Matt Green 的人获得同样的私钥,进而误读或误发消息?
- 如何设置权限以阻止非 Matt Green 的人获取私钥?
身份基加密中的 “加密”
Shamir 在他上述 1984 年的论文中阐述了这些想法以及额外的一些思考。但当时的Shamir 只能解决其中一半的问题。具体来说,Shamir 提出了一种基于身份的签名(IBS)方案——一个公共验证密钥为一个身份、而签名密钥由密钥机构生成的签名方案。但尽他所能,他无法找到一个构建基于身份的加密(IBE)问题的解决方案。这成为一个悬而未决的问题 [3]。
▲ 论文中提出的IBS方案
IBE 的第一个,且最负盛名的实现是由 Dan Boneh 和 Matthew Franklin 在多年后—— 在2001 年开发的。Boneh 和Franklin发现的时机非常有意义。Boneh-Franklin 方案从根本上依赖于支持有效“双线性映射”(或“配对”)的椭圆曲线 [4]。而计算此类配对所需的算法在 Shamir 撰写论文时并不为人所知,也没有被建设性地使用过——即不仅作为一种攻击手段而是作为一种有效的密码技术。
2003 年左右,由 Sakai 和 Kasahara 提出的SK-IBE方案的情况也同样利用双线性映射,并且通过采用基于指数逆(exponent-inversion)的新密钥提取方法提高了算法的性能。(有关 Boneh-Franklin IBE 方案的简要教程,请参阅https://blog.cryptographyengineering.com/boneh-franklin-ibe/)IBE 的第三个实现虽不如前二者高效,但更令人吃惊。该方案由英国 GCHQ(国家通信总局) 的高级密码学家 Clifford Cocks 开发。值得注意的原因有两个。首先,Cocks 的 IBE 方案完全不需要用到双线性映射——它基于更古老的 RSA 设置,这意味着原则上这个算法这么多年来仅仅是没有被人们发现(而非在等待相应的理论基础)。其次,Cocks 本人最近因更令人惊讶的事情而闻名:发现 RSA 密码系统(即公钥加密算法),比 RSA 早了将近 5 年。以公钥密码学的第二次重大进步来结束这一成就,实属令人印象深刻的创举。
自 2001 年以来,也有许多额外的 IBE 结构涌现出来,其中也用到了各种的密码学背景知识。 尽管如此,Boneh 和 Franklin 的早期方案仍然是其中最为简单和有效的。
即使对 IBE 本身的技术原理不感兴趣,但事实证明,这个原语(primitive)对于密码学家来说在许多除了简单加密之外的领域都非常有用。
如果我们把 IBE 视为是一种由单一的主公/私钥对来产生数以亿计的相关密钥对的方式,会更显得意义非凡。这使得它对于阻止选定密文攻击(CCA)、设计前向安全公钥加密和短签名方案等各种应用非常有用。
属性基加密
如果单独给密码学家一个类似 IBE 的密码工具,他们要做的第一件事就是找到一种让事情变得更复杂的方法来改进它。那么回顾历史,最大的改进之一要归功于 Sahai 和 Waters。他们提出的方案也被称为属性基加密(Attribute-Based Encryption),或 ABE。
问题在于这很难奏效。
这个想法的美妙之处不在于模糊 IBE,而在于一旦你有了一个门槛(即阈值)和“属性”的概念,你就能做更多有趣的事情。主要的观察结论是该门槛可用于实现布尔逻辑的 AND 门和 OR 门,如下所示:
其他的条件判断也能实现。基于一个很长的属性列表,例如创建时间、文件名,甚至是文件创建位置的 GPS 坐标,来加密密文。然后,你可以让权威机构分发与你的数据集非常精确对应的密钥——例如,“此密钥可以解密 11 月 3 日至 12 月 12 日期间在芝加哥加密的任何带有‘儿科’或‘肿瘤学’标签的放射学文件 ”。
函数加密
一旦拥有了像 IBE 和 ABE 这样的相关原语(基础工具),研究人员的本能就是去进行扩展和归纳。
- 为什么要止步于在简单的布尔公式?- 是否可以开发嵌入任意计算机程序的密钥(或密文)?事实证明,答案是肯定的——尽管效率不是很高。最近的一组研究表明,可以使用各种基于格的密码假设来构建适用于任意多项式大小线路的 ABE。所以这一方向毫无疑问有很大的发展潜力。
这种潜力激发了研究人员将上述所有想法归纳到单独一类称为“函数加密”(或 功能加密)的加密类别中。
输出= F(密钥数据, 明文数据)在该模型中,IBE 可以通过加密算法加密(身份,明文)并定义函数 F 来表示,如果“密钥输入 == 身份”,则输出对应明文,否则输出空字符串。类似地,ABE 可以用稍微复杂一点的函数来表示。遵循这一范式,我们可以展望在将来,各种有趣的功能都可以由计算不同的函数得到,并在未来的方案中被实现。
作者愿景
对Matthew来说,重点不过是想表明密码学可以做一些非常了不起的事情。当谈及工业和“应用”密码学时,我们很少在日常应用中看到这些技术,但它们一直在等待被广泛应用的那一天。也许完美的应用就在那里。总有一天你会找到它。
注释:
[1] 最初在这片博文里我写的是 “20 世纪 90 年代中期”。在评论中,Tom Ristenpart 对此提出质疑,并指出许多重要的发展都在此之后发生。所以我将日期提前了大约五年,我也正在考虑如何更好的表达这一点。
[2] 还有一种中间形式的加密,称为“无证书加密”。这个想法由 Al-Riyami 和 Paterson 提出,结合了标准公钥加密和 IBE。其基本思想是使用传统公钥(由接收者生成)和 IBE 身份来共同加密每条消息。然后,接收者必须从 IBE 机构获取私钥的副本才能解密。这里的优点是双重的:(1)IBE 密钥机构不能自己解密消息,因为它没有相应的密钥,这解决了“托管”问题。并且 (2) 发送者不需要验证公钥是否真的属于发送者(例如,通过检查证书),因为 IBE 部分可以防止冒名顶替者解密生成的消息。不幸的是,这个系统比 IBE 更像是传统的公钥密码学,并且没有 IBE 的简洁的可用性特性。[3] 开发 IBE 的部分挑战是需要建立一个安全的系统,以防止不同密钥持有者之间的“串通”。譬如,想象一个非常简单只有 2 位标识的身份验证系统。这给出了四种可能的身份:“00”、“01”、“10”、“11”。如果我给你一个身份“01”的密钥,给 Bob 一个“10”的密钥,我们需要确保你们两个不会合谋生成对应“00”和“11”身份的密钥。许多早期提出的解决方案试图通过以各种方式将标准公共加密密钥粘合在一起来解决这个问题(例如,通过为身份的每一位提供单独的公共密钥并将密钥作为单个“密钥”提供)。然而,当只有少数用户串通(或他们的密钥被盗)时,这些系统往往会发生灾难性的失败。解决勾结问题是真正的 IBE 与其虚假表亲的根本区别。[4] Boneh 和 Franklin 方案的完整描述可以在https://en.wikipedia.org/wiki/Boneh-Franklin_scheme看到,或者在他们的原论文中。来源:本文来自同态科技。
怎么评定隐私计算技术本身的安全?首个“隐私计算安全需求”国际标准立项
Gartner:2025年60%的大型企业机构将使用隐私增强计算技术