全同态加密 实现算法前端和硬件后端解耦的库

小结:

传统的加密方式,虽然可以保护明文的机密性,但是加密后的数据无法继续处理,失去了可用性。而全同态加密允许密文参与计算,密文上的计算结果解密后等价于对明文的计算。

 

https://mp.weixin.qq.com/s/CZTCVdXf3nQxep2f1v5T3w

不明觉厉!博士小姐姐在这项涉及未来数据安全的黑科技上拔剑扬眉

李杰 心声社区 2022-09-07 22:10 发表于广东
图片愿为“同态”拔剑扬眉图片李杰

 

 

2020年7月27日,博士毕业后,我加入华为谢尔德实验室密码组。作为一个性格大大咧咧的北方女孩,我在对待科研问题上却有着“不破楼兰终不还、不撞南墙不回头”的执拗。

 

我的博士研究方向是基于格的全同态加密,全同态加密是未来数据安全的黑科技,加入华为后,我也继续从事全同态加密的相关研究,它于我而言,不是单纯的一份工作,更是兴趣、热爱,以及想在数据安全技术上大展拳脚的理想抱负。

 

图片

 

 


全同态加密,未来数据安全的黑科技

 

在今年Gartner(全球最具权威的IT研究和顾问咨询公司)发布的2022年新兴技术和趋势影响力雷达图中显示,同态加密技术连同智能空间、生成式人工智能、图技术、元宇宙5项技术被选为未来最热门和最具影响力的新兴技术,所以做好全同态的研究和产业化对未来具有深远的意义。古人云:“十年磨一剑,一朝试锋芒”,入职华为以后,我迫不及待地想利用自己博士期间在理论方面的知识储备在同态方面大展身手。

 

什么是全同态加密呢?传统的加密方式,虽然可以保护明文的机密性,但是加密后的数据无法继续处理,失去了可用性。而全同态加密允许密文参与计算,密文上的计算结果解密后等价于对明文的计算。大家可能觉得很抽象,我们不妨来看一个珠宝店主爱丽丝如何为自己的珠宝店防盗的例子:

 

爱丽丝是一家珠宝店的店主,她打算让员工将一些昂贵的珠宝打造成首饰,但是她又担心员工会偷走珠宝。于是机智的她做了一个手套箱存放零散的珠宝,通过手套箱,员工可以将手伸入箱子来对珠宝进行加工,但却无法盗走珠宝。员工在手套箱中加工首饰的过程就类似全同态加密的密文计算过程——通过手套箱无法偷走珠宝,在密文上进行计算也不会泄露数据明文。

 

 

图片

 

 

全同态加密有什么用处呢?答案就是实现真正的数据安全。我们知道数据明文是无法分享的:分享明文就会失去所有权,但不分享就无法提供价值。这也导致我们无法真正地拥有自己的数据。与此同时,GDPR(通用数据保护条例)等数据隐私保护法越来越规范,企业数据业务保存的个人隐私数据一旦泄露,就会面临巨额罚款,成为悬在所有企业头顶的达摩克利斯之剑。

 

全同态加密对产业界意味着什么呢?全同态加密可以实现数据“可用、可控、不可见”,有望在未来进化为下一代的数据安全基础设施,带来更加健康的数字经济生态:技术能力有限的个人和小企业可以像用自来水一样地使用数据保护能力,而不是只能依赖大厂的服务,从而真正拥有、变现自己的数据;行业巨头也可以实现数据业务的合法合规。

 

传统大厂如微软、IBM、Facebook等已经在同态加密的相关基础研究上进行了长期的投入,并相继发布了同态算法的开源库。国内产业界在同态加密研究方向起步稍晚,投入较少,还没有自主的开源库,算法研究基础也相对薄弱。

 

 


激动的心颤抖的手,同态应用初体验

 

带着对数据安全技术的理想和抱负,我投入了同态研究的工作,然而应了那句话万事开头难,找一个合适的应用场景作为切入点就令我一筹莫展。太简单的不具备实用价值,复杂的如AI模型推理对于新手的我来说又太复杂……

 

恰好此时密码组一直指导我全同态相关工作的专家刘亚敏老师调研发现,谷歌在Chrome浏览器中添加了一个新功能:能在保证用户账号口令隐私的前提下,帮助用户检测口令是否泄露,使用的还是经典的密码算法和协议——哎呀呀,这不就是瞌睡有人递枕头嘛!我们立刻想到,华为也有自己的用户群体账号,如果嵌入这个功能可以帮助我们的客户检测账号的安全性,这不就是我们想要的现实场景需求吗,用全同态加密来实现这个功能,作为我的切入点是最合适不过的,我开始兴奋了起来。

 

说干就干,我们的目标是设计一个可支持40亿数据库的隐私保护下的泄露口令查询系统,说白了就是要在加密的情况下进行用户口令与泄露数据库口令的逐条对比。我和刘老师首先调研了相关技术,设计了一个初稿。问题来了,该方案需要几百次的同态乘法操作,而同态乘法是同态加密里最耗时的操作,粗略估计都要数十秒的时间才能完成运算,这必然不会高效!我们开始冥思苦想,如何设计方案能让效率达到实用化的级别呢?

 

愁眉苦脸了几天,进度一再搁置,几天前的兴奋仿佛被迎头泼了一盆冷水,是否应该就此放弃,去寻找别的切入点呢?不,不,多年来对同态的研究让我的直觉也变得敏感,直觉告诉我,这个方向有的搞,不能轻言放弃!冷静下来我开始重新思考算法。对呀,我好像来了灵感,为保护用户隐私,用户口令对我们来说是不可见的密文,但泄露数据库是公开的,因此可以看作是明文,我们是不是可以利用这个特点呢?

 

于是,我们将初始方案中一个平方公式“ (x+y)^2=x^2+2xy+y^2” 展开计算,虽然看起来是一个很简单的公式,但可发挥了大用处呢!如果x是密文,y是明文,那利用这个公式就可以将等式左边复杂耗时的大量的同态乘法操作,转化为等式右边高效快速的数乘操作了。激动的心颤抖的手,此时整个方案只需要7次同态乘法,我们估计就可以达到秒级内实现40亿数据库的泄露口令检测了。和谷歌的方案相比,我们的通信量、计算量、抗量子安全性都可以得到全面提升。

 

 


披荆斩棘战代码,Pipa方案终露面

 

我们把这个振奋人心的结果给主管吴双汇报后得到了他的高度认可,他建议我们立即做原型实现验证想法。此时可以说是万事俱备,准备showhand了,然而理想很丰满,现实很骨感,自己缺的不只是“东风”啊。虽然之前有做过同态理论研究的相关工作,但是并没有接触过代码实现,刚要动手就发现自己好像在本地安装同态开源库SEAL都很费劲。

 

理想和现实差的何止是一点点,如此“抓马”的剧情让我措手不及,好在博士生涯除了培养我一定的科研能力外,也锻炼了我遇到困难不认输、迎难而上的勇气和意志力。记得任总在发文中讲过:拿着“手术刀”参加“杀猪”的战斗,搞不定代码那就我就去学,我把SEAL的每个样例都打印了出来,像研读论文一样去分析学习。守得云开见月明,大概花了一周的时间,终于代码在我眼里不是鬼画符一样的字符了,这也得益于之前博士阶段在同态方面的理论积累,无论是代码还是公式,其本质上的逻辑是共通的,思路逐渐由模糊到清晰,被代码“rua”了一遍之后,总算可以扬眉吐气、反手敲代码了!

 

后面我和刘老师分工合作,一人处理输入输出流,一人做算法实现。在这期间,代码“小白”的我碰到了各种奇葩的问题,简直痛不欲生。

 

记得有一次,我在算法部分的一个地方卡住,死活过不去,下班回家后脑海里都环绕着这个问题,我绞尽脑汁反复思考,思绪跟着我一直进入了睡梦中。早上五六点钟,我醒了,突然灵光一闪,有办法了!我赶紧一咕噜爬起来赶到公司,代码运行良好,跑得老顺畅了,我瞬间整个人都放松下来,觉得这段时间的付出和辛苦都是值得的。事实证明,没有什么难的,如果难,那就拔剑扬眉!

 

终于原型实现做完了,最短0.17s就可实现40亿数据库内的泄露口令检测,通信量只有一张照片的大小!这个效果可以说是完全达到了实用化的程度,甚至可以说是同态加密多年以来为数不多的可以产品化的现实场景!原型做好后,我们紧锣密鼓的写完论文,赶在deadline前投稿到AISACCS2021(国际计算学会举办的信息安全领域的国际顶级学术会议之一)上。我们给这个工作命名为“Pipa”,既是论文题目首字母的组合,也寓意“犹抱琵琶半遮面”,有隐私保护的作用。比较有意思的是,投稿后不久我们就发现微软基于全同态加密设计了类似的方案,功能集成到了最新的Edge浏览器中。我们不禁感慨英雄所见略同,也庆幸跑在了微软前面,论文已经顺利投稿。

 

2021年3月,我们收到了AISACCS2021发来的接收邮件,看到“Accepted”字眼,喜悦还没超过一秒,就发现前面还有个定语,原来是条件接收,需要跟审稿人沟通,继续修改到审稿人认可后才可以接收。无巧不成书,我们惊讶地发现审稿人正好是谷歌团队负责Chrome浏览器中泄露口令检测方案的专家。对方提出来了很多宝贵的改进建议,最终我们的论文Pipa被成功接收并发表。此前微软对该功能的宣传语是:“消费者领域第一个大规模落地的全同态加密应用”。我们设想和期望:华为能不能成为第二个?目前Pipa是类似功能中性能指标最好的方案,我们也非常有信心未来Pipa可以成功顺利地落地商用!

 

 


路漫漫修远兮,同态加密未来可期

 

“纸上得来终觉浅,绝知此事要躬行。”工作后才发现从书本走向现实还需要一个很长的过程,在具体实现中也对理论研究和如何在公司开展科研有了更深刻的感悟。像Pipa的方案设计,我们的研究重点一直放把计算开销降到最低上。但通过我们和公有云团队进行交流,发现通信量降低才是他们业务部门最关心的问题。这次交流以后我们重新改进了方案,通信量和性能都得到了进一步优化,满足了业务部门的场景需要。

 

这也不禁让我反思,不能停留在高校时期的科研模式去一拍脑袋的想场景,结合业务部门一线的真正需求作为出发点开展相关研究是更好的切入点。另一方面,这次的工作也让我们更加清晰地意识到,微软开源库SEAL里面的算法和参数比较固定,很难去修改调整,对于我们研究人员一些新的理论构思,也很难去快速构建,这也更加坚定了团队自研同态加密库的决心。

 

我们团队自研的全同态加密库HLG,目标是降低密码学家和硬件工程师参与的门槛,提升算法研究和异构加速的效率,对后续研究突破、应用落地以及生态卡位会有很大帮助。目前HLG已初步成型,支持二代同态加密算法CKKS方案和CPU上多线程加速,是国内第一个全同态加密库,也是全球第一个实现算法前端和硬件后端解耦的库。

 

 


不破楼兰终不还,愿为同态拔剑扬眉

 

时光飞逝,转眼间我也从小萌新蜕变成了老员工。

 

这一路,也曾闹过笑话,有一次我们在做基于同态加密的密态人脸检测时,代码出了bug,检测人脸时将鱼头识别成了人脸,大家面面相觑,当时我的窘态至今记忆犹新;也曾默默自己较劲,将鱼头的照片悄悄打印出来贴在笔记本上,我告诉自己不实现密态人脸的准确识别就不撕下来;也曾千帆历尽,不觉中密态人脸准确识别的目标早已实现,轻舟已过万重山。

 

未来,我希望自己可以“向上捅破天”,更多地去了解和支撑更多业务场景;同时继续把理论工作深化,“向下扎到根”,成长为一名合格的“同态砖家”。

 

星光不问赶路人,相信每个人都会有一个为之奋斗的理由,我愿称之为理想。华为就是这样一个我愿同她一同战斗的地方。这里有拨云见日的良师和并肩战斗的伙伴,这里有伟大的意志和不灭的星火,钟期既遇,奏流水以何惭?我愿为同态拔剑扬眉!

 

 

 

来源 / 《华为人》

作者 / 李杰

 

posted @ 2022-09-07 22:17  papering  阅读(378)  评论(0编辑  收藏  举报