category
本文讨论了如何以及何时使用同态加密,以及如何使用开源的Microsoft简单加密算术库(SEAL)实现同态加密。
架构
显示传统加密和SEAL加密的图表。
Download a Visio file of this architecture.
流
传统的加密方案包括三个功能:密钥生成、加密和解密。对称密钥加密方案使用相同的密钥进行加密和解密。它实现了对大量数据的高效加密,以实现安全的外包云存储。公钥加密方案使用公钥进行加密,使用单独的密钥进行解密。任何知道公钥的人都可以加密数据,但只有知道私钥的人才能解密和读取数据。公钥加密实现了安全的在线通信,但通常不如对称密钥加密有效。
您可以使用传统加密进行安全存储和通信,但外包计算需要删除加密层。提供外包计算的云服务必须实施访问策略,以防止未经授权访问数据和密钥。数据隐私依赖于云提供商实施并受客户信任的访问控制策略。
使用Microsoft SEAL同态加密,云提供商永远无法对其存储和计算的数据进行未加密访问。可以直接对加密数据进行计算。这种加密计算的结果保持加密,并且只能由数据所有者通过使用密钥来解密。大多数同态加密使用公钥加密方案,尽管可能并不总是需要公钥功能。
场景详细信息
公司通常以加密的形式发送、接收和存储云数据。但要利用云计算,公司必须提供未加密的数据或解密数据的密钥。这种做法会增加公司数据的风险。同态加密允许直接在加密数据上进行计算,从而更容易将云的潜力应用于隐私关键数据。
潜在用例
- 轻量级计算,如对隐私关键数据和程序部分的加法和乘法。
- 外包云计算,其中单个所有者拥有所有数据,并拥有解密密钥的唯一访问权限。
注意事项
- 只有一些计算是可能的加密数据。Microsoft SEAL同态加密库允许对加密整数或实数进行加法和乘法运算。使用这种技术对加密数据进行评估时,加密的比较、排序或正则表达式通常是不可行的。因此,只有程序部分的特定隐私关键云计算才能使用Microsoft SEAL实现。
- Microsoft SEAL提供了两种具有不同属性的同态加密方案。BFV方案允许对加密整数进行模运算。CKKS方案允许对加密实数或复数进行加法和乘法运算,但只能产生近似结果。当对加密的实数求和、评估加密数据上的机器学习模型或计算加密位置的距离时,CKKS是最佳选择。对于需要精确值的应用,BFV方案是唯一的选择。
- 同态加密并不有效。由于同态加密带来了巨大的性能开销,因此在未加密数据上已经很昂贵的计算可能在加密数据上不可行。
- 用同态加密加密的数据比未加密的数据大很多倍,因此用这种技术加密整个大型数据库可能没有意义。相反,严格的隐私要求禁止未加密的云计算,但计算本身相当轻的场景是有意义的用例。
- 通常,同态加密方案具有由数据所有者持有的单个密钥。对于多个不同的私有数据所有者想要参与协作计算的场景,同态加密是不合理的。
- 将未加密的计算转换为加密数据上的计算并不总是容易或直接的。即使新用户可以使用Microsoft SEAL编程和运行计算,高效和低效的实现也会有很大的区别。很难知道如何提高性能。
- 虽然同态加密原语本身是安全的,但它不能保证使用它的应用程序和协议是安全的。
Next steps
To learn more about homomorphic encryption and the Microsoft SEAL library, see Microsoft SEAL from Microsoft Research, and the SEAL code project on GitHub.
See the following resources about security in Azure:
- Introduction to Azure security
- Azure security best practices
- Microsoft cloud security benchmark
- Overview of the security pillar
- Security in the Microsoft Cloud Adoption Framework
Related resources
- 登录 发表评论
- 23 次浏览
最新内容
- 12 hours ago
- 14 hours ago
- 14 hours ago
- 3 days 5 hours ago
- 3 days 13 hours ago
- 3 days 13 hours ago
- 3 days 13 hours ago
- 3 days 14 hours ago
- 1 week ago
- 1 week ago