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

综合自:云头条、GitHub、https://eprint.iacr.org/2018/244.pdf等

数据安全有一个很有意思的加密方法,这种方法叫同态同态加密。它让你可以处理加密数据,无需将加密数据转换成明文数据、再转换回成密文数据。

但性能一直是这种技术的最大问题。最近,由于IBM重写了其C++同态加密库,加解密速度最高可提升75倍。

同态加密是一种用于在不解密的情况下处理加密数据的技术。这将使敏感数据处理变得极其安全:比如说,公司可以加密托管在云端的数据库,无需将记录转换回成明文,就可以处理记录。

IBM研究同态加密已有一些年头了,它在三年前发布了HElib C++库的第一个版本。

同态加密方法 HElib

授权协议:GPL

开发语言:C++

操作系统:跨平台

GitHub地址:https://github.com/shaih/HElib

HElib 简介

HElib是一个实现同态加密(HE)的软件库。目前可用的是 Brakerski-Gentry-Vaikuntanathan(BGV)方案的实施,以及许多优化使同形评估运行更快,主要集中在有效使用Smart-Vercauteren密文打包技术和Gentry-Halevi-Smart优化。请参阅本报告以获取该库中使用的一些算法的说明。从2014年12月开始,该库还包括引导程序。

该库以C ++编写,并使用NTL数学库 (版本10.0.0或更高版本)。截至2015年3月,它还支持多线程。但该技术始终存在性能开销大的问题。在同态加密的发明者克雷格•金特里(CraigGentry)的带领下,IBM首次研发的同态加密技术其运行速度比明文操作慢“100万亿倍”。后来在一台16核服务器上运行,速度加快了200万倍。

2017年12月至2018年1月:添加了一些例程,用于二进制表示中整数的加/乘和比较,以及同态表查找。

2018年3月:重新实现同态线性变换,其特征速度从15倍提高到75倍。

如何做到速度的提高

在国际密码学研究协会上展示的这篇论文中,IBM的谢•哈勒维(ShaiHalevi)和维克多•舒普(VictorShoup,后者还供职于纽约大学)解释了他们如何提高速度。

他们写道:“在目前HElib中采用的线性变换算法中,大部分时间花在了在加密矢量(encrypted vector)中的时隙(slot)之间传输数据。”这是通过“特殊的自同构”(automorphism,一种将对象映射到自身的数学操作)来完成的,计算成本来自自同构要完成多少次循环。

“所以提高性能的主要目标是,减少自同构的数量,并降低每个自同构的成本。

用更通俗的话来说,新的库采用了一种新的策略来计算那些自同构(速度提高了15倍到20倍);研究人员重构了许多必要的计算;一些计算被移出了库的主循环(速度提高了6倍到20倍)。

HElib仍然是一个研究性质的项目。在现阶段,主要还是面向研究HE及其用途的研究人员。可以说还是相当低级的,最好把它看成是“面向HE的汇编语言”。只提供了低级例程(set、add、multiply和shift等),希望它能够早日为开发者们提供更高级的例程。

论文详情链接:https://eprint.iacr.org/2018/244.pdf

部分论文展示:

●本文编号297,以后想阅读这篇文章直接输入297即可

●输入m获取文章目录

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180315B0FL5T00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券