IBM重写了其C++同态加密库,速度提高75倍 !
jopen 7年前
<p style="text-align: center;"><a href="/misc/goto?guid=4958996742577646022" title="IBM"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/c413fa504c187c7fe243788733616a09.gif" /></a></p> <p>IBM 的同态加密技术将速度提升 75 倍,它让你可以处理加密数据,无需将加密数据转换成明文数据、再转换回成密文数据。</p> <p>同态加密是一种用于在不解密的情况下处理加密数据的技术。这将使敏感数据处理变得极其安全:比如说,公司可以加密托管在云端的数据库,无需将记录转换回成明文,就可以处理记录。</p> <p>IBM 研究同态加密已有一些年头,它在三年前发布了 HElib C++ 库的第一个版本,但该技术始终存在性能开销大的问题。</p> <p>在同态加密的发明者克雷格·金特里(Craig Gentry)的带领下,IBM 首次研发的同态加密技术其运行速度比明文操作慢“100 万亿倍”。后来在一台 16 核服务器上运行,速度加快了 200 万倍。</p> <p>因此,蓝色巨人继续完善 HElib。在 GitHub 上发布的最新版本(https://github.com/shaih/HElib)“重新实施了同态线性变换”,因而提升了性能,结果速度提高了 15 倍到 75 倍。</p> <p>在国际密码学研究协会上展示的这篇论文(见文末)中,IBM 的谢·哈勒维(Shai Halevi)和维克多·舒普(Victor Shoup,后者还供职于纽约大学)解释了他们如何提高速度。</p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/b5143151fed12d410d9f8ba87c784ab6.jpg" /></p> <p>他们写道:“在目前 HElib 中采用的线性变换算法中,大部分时间花在了在加密矢量(encrypted vector)中的时隙(slot)之间传输数据。”</p> <p>这是通过“特殊的自同构”(automorphism,一种将对象映射到自身的数学操作)来完成的,计算成本来自自同构要完成多少次循环。</p> <p>论文写道:“将这种自同构运用于密文的主要成本实际上是‘密钥交换’的成本:我们将自同构运用于密文中的每个环元素上(这实际上是成本很低的操作)后,最终得到了相对于“错误”密钥的加密;通过使用这个特定自同构所特有的公钥中的数据(即所谓的“密钥交换矩阵”),我们就可以将密文转换回成相对于‘正确’密钥的加密。”</p> <p>“所以提高性能的主要目标是,减少自同构的数量,并降低每个自同构的成本。”</p> <p>用更通俗的话来说,新的库采用了一种新的策略来计算那些自同构(速度提高了 15 倍到 20 倍);研究人员重构了许多必要的计算;一些计算被移出了库的主循环(速度提高了 6 倍到 20 倍)。</p> <p>由于上述的密钥交换矩阵,为同态加密构建公钥的方式同样开销很大。每个矩阵为公钥添加了几兆字节,而在 HElib 中,一个公钥中可能有几百个这样的矩阵。研究人员表示,针对常见操作,他们能够将矩阵的大小缩小 33% 至 50%。</p> <p>HElib 仍然是一个研究性质的项目。正如 GitHub 页面所述:“在现阶段,这个库主要面向研究 HE 及其用途的研究人员。目前它还相当低级,最好把它看成是‘面向 HE 的汇编语言’。也就是说,它提供了低级例程(set、add、multiply 和 shift 等),为优化提供了尽可能多的途径。但愿最终我们能够提供更高级的例程。”</p> <p>论文全文:</p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/49a936ce2bfaaf5790acf554ffe5df94.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/e4c02c71a710ba403dfe51c2d2c91200.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/3e8630f962c058d5840c656383eb73e2.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/800d99757db071a947dc31af03268d54.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/93b95937175127522e154adbf2ac3c5c.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/2d1686b4d1a406f8b4965bd1c99d2d58.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/c27912007d006e10b59bd392a591cfb5.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/7d1394bda94782b48cde21b81011cfcb.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/06830d179b4bf3b589baa1e4484330b2.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/a9e7fbd7da5993f612238c8899d6d2e7.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/676768758f734cc5325dc3618220143f.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/db74e87653fc1b9d82612122b3cf38e3.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/e94397090df2166bb8cacd41d7eaa545.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/0e352671f5feadc36b619eee1dca603e.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/f46c74fbbe1632af6f1ec3970c93c60d.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/09065b13332fad5348e2afb19073e6d9.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/5f98d81f55dde4fc92b1965a8565ce96.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/7846b7b6845611d2c62eee22e1f88f2f.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/838e186dfc3d1e1e9b16295b26359755.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/9b31d3984f88b7ef22b3c083cb695770.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/12bf67cb27dda9aadcc051d853921b5d.jpg" /></p> <p style="text-align:center"><img alt="IBM重写了其C++同态加密库,速度提高75倍 !" src="https://simg.open-open.com/show/2990611f42f65d7dbd2f839fa794dbc1.jpg" /></p> <p>来自: <a href="https://mp.weixin.qq.com/s?__biz=MjM5MzM3NjM4MA==&mid=2654689457&idx=1&sn=8ff44ee1a391bdf67aa941fcf83edc2d" id="link_source2">mp.weixin.qq.com</a></p>