什么是同态加密?
同态加密是将数据转换为密文,可以像保持原始形式一样进行分析和处理。同态加密可以在不影响加密的情况下对加密数据执行复杂的数学运算。
在数学中,同态描述了将一个数据集转换为另一个数据集,同时保留两个数据集中元素之间的关系。该术语源自希腊语,表示相同的结构。由于同态加密方案中的数据保留相同的结构,因此相同的数学运算将提供等效的结果 - 无论操作是对加密数据还是解密数据执行。
同态加密与典型的加密方法不同,因为它可以直接对加密数据进行数学计算,这可以使第三方处理用户数据更加安全。同态加密旨在创建一种加密算法,该算法可以无限次地添加到加密数据中。
![加密操作](https://cdn.ttgtmedia.com/rms/onlineImages/security_cissp_encryption_mobile.jpg)
同态加密的类型
但是,对加密数据启用无限数量的加法或乘法是很困难的。因此,同态加密可以分为不同类型的加密,具体取决于其设计方式。
如果算法是加法同态的,则将两个密文相加将提供与加密两个明文之和相同的结果。同样,如果算法是乘法同态的,那么将两个加密密文与相同的密钥相乘,就相当于将明文的乘积提高到密钥的幂。
同态加密可以是加法加密或乘法加密,同时也可以部分、部分或完全同态加密:
- 部分同态加密。定义的操作可以在密文上无限次执行。这些加密方案相对容易设计。
- 有点同态加密。允许有限数量的加法或乘法运算,而不是无限数量的一次运算。设计一个支持一定数量的操作的同态加密系统比无限次地设计一个操作要困难得多。
- 完全同态加密。密文的加法或乘法次数无限。任何功能的程序都可以在加密输入上运行,以生成加密输出。
同态加密的应用
同态加密可以在云计算中发挥重要作用,使组织能够将加密数据存储在公共云中,以利用云提供商的分析服务。
目前,组织可能难以安全地将用于存储、处理或分析的数据外包给第三方云环境。但是,通过同态加密,数据处理或分析可以外包给第三方,而无需信任该方的数据安全性。如果没有正确的解密密钥,则无法访问原始数据,这意味着可以在保持加密状态的同时发送和分析敏感数据。这可用于保护医疗保健、金融服务和 IT 等行业的客户隐私。
同态加密还有助于遵守法规。例如,它可以帮助欧盟 (EU) 以外的公司遵守《通用数据保护条例》(GDPR) 的要求。GDPR 要求欧盟数据保留在欧盟或具有同等数据安全标准的国家/地区,但这些规则不适用于加密数据。
同态加密还可以帮助组织保护自己免受网络犯罪分子攻击其供应链的侵害。如果提供给第三方的数据是加密的并保持加密状态,那么第三方的违规行为不会中断组织的供应链。
一些组织,如Meta(前身为Facebook)将用户数据出售给第三方,用于有针对性的广告。但是,同态加密使 Meta 能够在无法查看原始数据的情况下对用户数据进行分析。这可以提供更多私人的定向广告。
同态加密的未来
同态加密对于数据安全可能非常有用;但是,它仍然太慢而无法有任何实际用途,因为密文需要正确添加或无限次乘法。完全同态加密比明文中的等效操作慢 100 万倍以上。
2009 年 9 月,斯坦福大学学生 Craig Gentry 发表了题为“A Fully Homomorphic Encryption Scheme”的论文。这篇论文提出了第一个合理的算法,称同态加密算法在理论上是有效的,但速度太慢而无法使用。
IBM 和 Microsoft 等组织目前正在通过减少同态加密所需的计算开销来研究加密格式。2018 年,Microsoft发布了 SEAL,这是一个开源的同态加密库。它可以在 Azure 上运行,但也可以是跨平台软件。同样在 2018 年,IBM 发布了一个实现同态加密的开源 HElib C++ 库版本。它比 IBM 的原始版本快了近 200 万倍,但仍比明文操作慢 100 万倍。一个需要一秒钟明文操作的单个操作将需要 11-12 天才能完成此版本的 HElib。要使这种加密格式实用,还需要做更多的工作。
同态加密的进一步标准化有助于在方法上保持一致,并有助于简化过程。然而,由于效率低下,同态加密可能永远无法充分发挥其潜力,并且正在被更新的替代方案所取代。