当前位置: 首页 > 科技观察

IBM重写了其C++同态加密库,速度提高了75倍!

时间:2023-03-11 23:31:54 科技观察

IBM的同态加密技术,速度提升75倍  让您在处理加密数据时,无需将加密数据转换为明文数据再转换回密文数据。  同态加密是一种用于处理加密数据而不解密的技术。这将使敏感数据处理极其安全:例如,公司可以加密托管在云中的数据库并处理记录,而无需将它们转换回明文。  IBM同态加密研究多年,并于三年前发布了HElibC++库的第一个版本,但该技术一直存在高性能开销的问题。  在同态加密大师CraigGentry的带领下,IBM开发了比明文操作“慢100万亿倍”的同态加密。后来在16核服务器上运行,速度提高了200万倍。  于是蓝色巨人继续完善HElib。GitHub(https://github.com/shaih/HElib)上发布的最新版本“重新实现了同态线性变换”,从而提高了性能,实现了15倍到75倍的加速。  在国际密码学研究协会发表的这篇论文中(见结尾),IBM的ShaiHalevi和来自纽约大学的VictorShoup解释了他们如何提高速度。  他们写道:“在当前HElib中采用的线性变换算法中,大部分时间都花在了加密向量中槽之间的数据传输上。”  这是通过“特殊自同构”(一种将对象映射到自身的数学运算)完成的,计算成本来自自同构必须完成多少个循环。  论文指出:“将这种自同构应用于密文的主要成本实际上是'密钥交换'的成本:我们将自同构应用于密文中的每个环元素(实际上上面是一个非常便宜的操作),你最终得到相对于“错误”密钥的加密;通过使用特定于该特定自同构的公钥(所谓的“密钥交换矩阵”)中的数据,我们可以将密文转换回相对于'正确'键。”  “所以提高性能的主要目标是减少自同构的数量,降低每个自同构的成本。”  用更通俗的话说,新库采用了一种新策略来计算这些自同构(快15倍到20倍);研究人员重构了许多必要的计算;一些计算是库的主循环已被移出(快6倍到20倍)。  由于上述密钥交换矩阵,构造用于同态加密的公钥也是昂贵的。每个矩阵都会向公钥添加几兆字节,而在HElib中,一个公钥中可以有数百个这样的矩阵。对于常见的操作,研究人员表示他们能够将矩阵的大小减少33%到50%。  HElib仍然是一个研究项目。正如GitHub页面上所述:“现阶段,这个库主要针对研究HE及其用途的研究人员。目前它相当低级,***将其视为‘HE的汇编语言’。那是,它提供了低级例程(设置、加法、乘法、移位等),允许尽可能多的优化途径。希望最终我们能够提供更高级别的例程。”