SEAL - 无外部依赖的 C++ 同态加密库


MIT
跨平台
C/C++

软件简介

Microsoft SEAL 是一个易于使用的同态加密库,由微软的 Cryptography Research 小组开发。Microsoft SEAL
使用现代标准 C++ 编写,没有外部依赖,因此可以在许多不同的环境中轻松编译和运行。

Microsoft SEAL
提供了一组加密库,允许直接在加密数据上执行计算。这使软件工程师能够构建端到端的加密数据存储和计算服务,客户永远不需要与服务共享密钥。

大多数加密方案包括三个功能:密钥生成、加密和解密。对称密钥加密方案对加密和解密使用相同的密钥;公钥加密方案分别使用用于加密的公钥和用于解密的私钥。因此,公钥加密方案允许知道公钥的任何人加密数据,但只有知道私钥的人才能解密和读取数据。

对称密钥加密可用于有效加密大量数据,并实现安全的外包云存储。公钥加密是当今实现安全在线通信的基本概念,但通常比对称密钥加密效率低得多。虽然传统的对称和公钥加密可用于安全存储和通信,但任何外包计算都必然要求在计算发生之前移除这样的加密层。因此,提供外包计算功能的云服务必须能够访问密钥,并实施访问策略以防止未经授权的员工访问这些密钥。

于是出现了同态加密技术,它的理论基础是一种复杂的数学算法,对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。它允许直接在加密数据上进行计算,而不需要在过程中进行任何解密,这在当下云计算与物联网等产业快速发展的背景下有深远意义。