综合自:云头条、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获取文章目录
领取专属 10元无门槛券
私享最新 技术干货