隐私计算英雄传
浅友们好~我是史中,我的日常生活是开撩五湖四海的科技大牛,我会尝试各种姿势,把他们的无边脑洞和温情故事讲给你听。假如你想和我做朋友,不妨加微信(shizhongmax)。
隐私计算英雄传
文 | 史中
(一)《九阴真经》引发的血案
北宋神人黄裳曾撰上下两卷《九阴真经》。
传说此中有上乘武学原理,习之者可为天下之宗。
南宋年间,消失已久的《九阴真经》重现江湖,引起武林纷争。各大门派不忍看生灵涂炭,决定“华山论剑”,究极胜者可以合法拥有真经。
结果,全真派王重阳以一挑四,称冠五绝,拿到真经。可他却把书躲起来,非但自己不学,还不让全真派的小弟们学,直到死,才把两卷《九阴真经》传给师弟周伯通保管。
老顽童周伯通决定把上下两卷分开躲匿,不料贪玩误事,被东邪黄药师用计把下卷给骗走了。。。
可《九阴真经》的设定很缺德:要练就必须练全套,单练一半儿就会走火进魔。
这下可好,上下两卷天各一方,谁都别玩儿了。。。
展开全文
大反派西毒欧阳锋一直觊觎《九阴真经》和武林霸主的地位,看到真经有丝分裂,兴奋得鼻涕泡都出来了。
他天天上网收集各种邪门的武林秘籍,居然功力大涨,眼看要秒杀所有武林豪杰。照这样下往,干掉周伯通和黄药师,集齐上下两卷走上人生巅峰也只是时间问题。。。
周伯通实在看不过,往桃花岛找到黄药师,说:再这样下往,整个武林都要给欧阳锋团灭了,我要练《九阴真经》,你把下卷还我。
黄药师说:我凭本事骗来的,凭什么还?不如你把上卷也给我,我练完帮你削欧阳锋。
周伯通说:呸,你个糟老头子坏得很,还想忽悠我上当吗?!
两边僵持不下,天下岌岌可危。
于是他俩坐下来,进行了友好磋商,想出一个方法——干脆谁都别练,找个老实的工具人郭靖来练,练成后让他保护天下。
说干就干,他俩连夜把郭靖找来商讨,郭靖憨憨地说:多谢两位大侠信赖!小辈定当万死不辞!
“哈哈哈哈哈哈,且慢!”
此时从墙角转出一个人,此人不是别人,正是大理段氏传人——南帝段智兴。
他捋捋胡子,慢悠悠地说:你们又不是不知道,这《九阴真经》上卷里最重要的一章《总纲》是用梵文写的,你们仨小学都没毕业,能熟悉吗?
老顽童和黄老邪一下停住了,郭靖也臊眉耷眼。。。
段智兴从怀中掏出一个本本,接着说:鄙人不才,大学正好学的是小语种,身上总随身携带一本梵文字典,可供翻译。
老顽童和黄老邪伸手:那你赶紧拿来啊!
段智兴赶紧后退两步:法治社会,别乱动手啊!既然你们的《九阴真经》不能给我看,那我的字典当然也不能给你们看!要看,也只能郭靖一个人看。
“行!”几个人终于打成一致。
于是,问题进进了技术层面——上下两卷《九阴真经》+《字典》,要怎么给郭靖练?
他们坐在地上用草杆开始画“流程图”:
众所周知郭靖是个老实孩子,让干啥就干啥,这里把他当做纯粹的工具人,不考虑他“作妖”的可能。
可黄药师很快意识到问题:假如把三本书直接交给郭靖,他练的时候,咱仨就在旁边看,以我们的武功造诣,肯定能依据郭靖练习的动作反推出《九阴真经》的全部内容啊。这么一来,原始“经文”不就泄漏了么?不行不行!
周伯通说:那好办,既然 “看”有问题,咱们就 “不看”,郭靖练的时候,咱仨找地方饮酒往!
段智兴说:这也不行,老贼欧阳锋就在四周,咱们刚走,他过来一个飞踹把郭靖踢躺下,直接把三本书都偷走怎么办?
说的是哦。。。三人重新陷进苦闷的深思,只有郭靖在一旁快乐地追蝴蝶。
就在此时,一位戴着眼镜一脸坏笑的路人飘过,冷笑一声:呵呵,遇事不决,得靠科学!
三人抬头:敢问大侠是?
路人:我喊史·亿万懦夫·中,是从900年后穿越回来的。你们这个事儿,在我们那儿喊做 “隐私计算”,未来的科学家已经研究出了好几种隐私计算的方法。我的电动轿跑就停在路边,要不你们跟我走一趟?
几位武林宗师面面相觑,这人TM谁啊?再说,你这电车续航行吗?
最后他们决定,反正自己想不出方法,干脆死马当活马医,一起钻进了车里。
史·亿万懦夫·中大饮一声:“系好安全带!洒家预备飙车啦!哇呀呀呀呀!”
(二)隐私计算之“门派纷争”
四位大侠扶着电线杆子吐了半个小时,捯过气来问:懦夫侠,此地是何所在?
“诸位有所不知,900年后的人们改用西历,此时正是2023年。2023年,搞‘隐私计算’有一众高手,恰在都城临安,哦,现在已经不是首都了,名字改回杭州了。他们的武林门派喊‘蚂蚁集团’。”懦夫说。
“哦哦,众人拾柴,万蚁蚀象,寓意高远!”黄药师竖起大拇指。
听到一众侠客造访,蚂蚁集团的隐私计算负责人韦韬把大家迎进会议室。
世间好茶想必各位大侠都品过,但摆在几位面前的喊做可乐,是当世佳品,我天天饮。
各位不妨慢慢饮着可乐,听我讲讲我们这个世界的难题和你们《九阴真经》的关系。
世间好茶想必各位大侠都品过,但摆在几位面前的喊做可乐,是当世佳品,我天天饮。
各位不妨慢慢饮着可乐,听我讲讲我们这个世界的难题和你们《九阴真经》的关系。
韦韬说。
2023年,世界仍如从前一样有很多强盗。只是他们不敢再明火执仗打家劫舍,而是增加了技术含量——比如通过诈骗的方式,让受害者把支付宝/银行卡里的钱转给自己。
作为支付宝的运营者,蚂蚁集团不胜其烦,集结天下英雄搞了一整套“风控系统”,可以通过 大数据计算的方法来推断哪笔转账可能是受骗者在“懵逼”状态下发起的——假如推断一笔转账存在风险,则立刻拦截。(可以参阅 《支付宝与张三的十年战争》 )
同样,其他银行和金融机构也依据自己的数据建立了风控系统。
问题来了:不同的金融机构有不同的数据。
同样一笔从账户A到账户B的转账,用支付宝的数据计算,可能就知道它是诈骗引起的转账,不应该批准;可“浅黑银行”因为没有这些数据,就认为没有风险,可以转账;类推开往,“浅黑银行”知道有风险的转账,“浅黄银行”可能又不知道。
于是,骗子就学会了钻空子——让受骗者尝试不同渠道转账,直到某个银行恰巧没有这个风控数据,不拦截交易,他就诈骗成功了。
面对“锲而不舍”的死骗子,最好的方法是啥呢?
当然就是把支付宝和A、B、C、D银行的数据联合在一起进行计算,这样就相当于大家合穿了一套 最强铠甲。
可现实世界往往有诸多无奈。
受限于数据隐私保护法律和公司利益,各家金融机构不能把自己的原始数据给别人,但又想享受这些数据联合计算以后的“风控能力”,非常拧巴。
说到这儿,韦韬顿了顿,看向大家。
“啊,我悟了!”黄药师突然反应过来,“韦大侠,你说的这 ‘数据’不正像我们《九阴真经》的 ‘经文’吗?我、老周和老段 把上下两卷和字典交给郭靖学习,不正是想进行 ‘联合计算’吗?而我们仨都 不想让自己的‘经文’被其他人看到,不就是要保护自己的 ‘数据隐私’么?”
韦韬点点头。
“说了半天,这既能保护隐私又不耽误联合计算的 “隐私计算”功法,到底该怎么练呢?”周伯通着急。
“大侠莫急, 隐私计算只是一类统称。”韦韬说,“正如你们武林有武当派、全真派、古墓派,我们隐私计算也有不同的技术流派。而且,诸多流派我们蚂蚁集团全都有人修习。为了让各位明白其中异同,还请容我啰嗦几句。”
“诶,此处不劳韦韬大侠多言,小弟我可以代为阐明。”说话的人正是史·亿万懦夫·中。
“使得!”大家齐声鼓掌。
“敢问各位,你们是信人还是信天?”他问。
“信人怎么说,信天怎么讲?”大侠们齐声问。
只见史·亿万懦夫·中冲到白板前,写下三个大字——“ 信赖根”。
所谓信赖根,就好比“树根”。纵使树高千尺,还要依靠根基吸取营养。做隐私计算,也同样须有一个 “信赖的基础”。
而依据信赖根的不同,恰好可以将隐私计算分成两个流派:
流派一、你的“信赖根”在人。
这一类隐私计算,需要找一位公认可靠的匠人,命他造出一个牢固的“安全屋”,钥匙握在匠人手里,谁都不给。
参与隐私计算的黄、周、段三位大侠把自己的《九阴真经》和《梵文字典》都塞进屋子里计算。匠人把守门口,数据只要进往就不放出来,只有最终结果——学成之后的郭靖——能走出屋子。
当然,对数据来说,这个“屋子”不是真的屋子,通常是指一个可信的芯片,学名喊做 TEE(Trusted Execution Environment 可信执行环境)。
流派二、你的“信赖根”在天,也就是这个宇宙的基本法则——数学。
“信天”一派的功法比较多,细致说来,大致概括为 “联邦学习”和 “多方安全计算”。
这类隐私计算之所以能保护隐私,往往是因为遵循了精致的数学原理。
就以 “多方安全计算”为例吧。
几位大侠要把手上的《九阴真经》一页页拆出来,按规定流程进行加密、传输。
这样一来,就会看察到奇效: 郭靖练功的一招一式都会极其怪异,哪怕参与计算的人,也就是各位大侠都瞪大眼看着全过程,也没方法推算回原始数据。
可别看过程怪异,最终神功却能丝毫不爽地练成。
如此一来,自然不需要什么“安全屋”了,光天化日之下练功也无妨。
以上三个:“信人”的 TEE,“信天”的联邦学习、多方安全计算,就是眼下比较时髦的隐私计算方法了。
以上三个:“信人”的 TEE,“信天”的联邦学习、多方安全计算,就是眼下比较时髦的隐私计算方法了。
史·亿万懦夫·中总结道。
“我们武林中各个门派都相互不服,觉得自己才是天下霸主,这隐私计算的各门派也是如此争夺吗?”段智兴问。
“呃。。。想来也是如此的。”史·亿万懦夫·中说。
“依我说,‘信人’当然不如‘信天’,人心不可测啊!我的《九阴真经》不就是被某人骗走的吗?”周伯通斜眼看黄药师。
“说事儿就说事儿,不要含沙射影。。。”黄药师翻白眼。
“诶,大侠且不要凭意气下结论。信人、信天各有利弊,是需要权衡的。”韦韬示意大家清静,“我知道,习武之人最讲细微之处的精妙,各位远道而来,不如多了解一些隐私计算的详尽机理,再抉择最适合修炼《九阴真经》的方案不迟嘛!”
“愿闻其详!”大侠们齐声说。
韦韬哈哈大笑:“甚好,我们蚂蚁集团人才济济,不妨请他们亲自为大家讲述!”
(三)“穿衣侠”
审思坐在几位大侠面前,满脸笑意。
说起来,他是蚂蚁集团最早接触“隐私计算”的先驱之一。
2017年,审思加进蚂蚁。那时候,世界上甚至还没有“隐私计算”这个名字——大家只是隐约觉得,数据一天天在变多,将来肯定会在不同机构间大规模流通。而假如就这样把数据赤裸裸地放出往,就像人光屁屁出街,这实在不像文明世界该有的样子。。。
于是,大伙儿预备研究一套技术,帮数据“穿上衣服”,不仅遮羞,还能保热。
设计衣服,得先找个“模特”啊。可当时绝大多数公司的数据都待在自己家里,没有出街交流的需求,穿不穿衣服自然无所谓。
于是这帮 “穿衣侠”只好天天看论文,在想象中探求衣服的设计方案。。。
直到半年后,机会终于等来了。
一家金融机构想要食螃蟹——跟蚂蚁集团进行联合数据计算,目的是掌握贷款的风险。
审思他们兴奋坏了,摩拳擦掌进行技术选型。不过,他们最初抉择的技术方案在今天看来有些简单,喊做 “矩阵变换”。
在矩阵变换的数学操作中,有一类是把“高维数据”压缩成“低维数据”。
举个最简单的例子。
假设原始数据是酱的:班上有4位同学,小红,女,4岁;小花,女,5岁;小丽,女,6岁;小明,男,7岁。
通过简单的矩阵转变,可以投射成:班上4位同学,女生3个,男生1个,其中1-5岁的有2个,6-10岁的有2个。
你看,这样一操作,既保留了原始数据的统计特征,又(某种程度上)往掉了敏锐信息。
就像把3D马里奥拍扁成2D的:
“可是,转变后的数据似乎不如以前精准了啊!”黄药师举手提问。
“没错,虽然保护了隐私,但数据也变得笼统了。虽然也能把风控效果提升一些,但既不优雅也不完美,而且由于没有数学加密,安全性也谈不上有多强,就算是‘隐私计算’的雏形吧。”审思说。
不过世间万物只怕开头。只要食了第一口苹果,亚当夏娃就能意识到自己光屁屁了,之后文明的进取就如潮水一般汹涌无前。
2018年,蚂蚁集团和另一家金融机构有了协作,这次双方都有了更高的要求,绝不能贴个树叶就算穿衣服了。于是,“穿衣侠”们必须抉择一个优雅(且不太难实现)的方案。。。
两条路摆在面前,左边是 “联邦学习”,右边是 “TEE”。
啥是 “联邦学习”嘞?
简单理解是酱:假设两拨数据的“联合计算”总共需要10步,则每一步计算都会产生一些“中间数据”。
最简单的“联邦学习”,就是 让参与计算的各方先在自己家进行前几步计算,然后再把这些变了样的“中间数据”发送到一起,进行后面的几步。
你想想看,中间数据不是原始数据,自然有保密的效果!
这就有点像各位大侠把自己手里的那本《九阴真经》先理解一下,然后 誊抄成《九阴真经总结版》,再交给郭靖学习。
可问题来了,这种“总结”(中间数据)假如没有严厉的密码学论证,就不能保证完全没有信息泄漏。
也就是说,假如黄药师武学积淀深厚,通过“中间数据”是有一定几率反推得知周伯通《九阴真经》原文的(至少是原文的一部分信息)。
这种露了一些但似乎又没全露的“薛定谔”状态,被称为“信息熵泄漏”。
当时“穿衣侠”们仔细推敲,虽然“联邦学习”简单易实现,但总像裤子漏了个小洞洞,肉隐肉现,不太踏实。
并不是说这种技术不好,而是用在安全级别很高的金融数据计算上,可能还需要打一些补丁。
于是,他们决定用优雅一些的技术方案—— TEE(可信执行环境)。
这“可信执行环境”又是怎么玩的呢?
具体来说分三步:
第一步,找一个可靠的匠人,让他建造一个“安全屋”。
实际上,这个匠人就是 Intel,它的安全屋就是在 Intel 芯片上开垦出一个隔离区域,名喊 SGX(Software Guard Extensions 软件保护扩展区)。
就像下图:
第二步,每个芯片接到自己的计算任务以后,就会生成一个秘钥,把数据锁在芯片里。
这个秘钥谁要都不给。只有计算完毕,才能由芯片自己用秘钥打开“屋子”,把最终结果“放出往”。
第三步,审思他们需要写好多算法的“工程代码”。
这个代码要能把一个计算任务拆成小份,自动分发给好多 Intel 芯片往计算,然后再合成最终的结果。
就像下面这样:
“唔,这种方法堪称精妙!不仅算得飞快,数据精度也没有任何缺失!”黄药师鼓掌。
“没错,可是诸位有所不知。”审思皱皱眉,“当时我们也很开心,想把这种武功发扬光大,却碰到了一些质疑。。。”
有金融机构这样问审思:“虽然你说数据是加密的,但这些用于计算的机器不还是摆在你蚂蚁集团的机房里吗?我怎么信赖你们没有动手脚嘞?”
审思说:“此言差矣,TEE 的信赖根在 Intel 的芯片上,机器虽然放在我们这儿,可芯片上的程序是写死的,不会把秘钥给我们啊。。。”
那人接着追问:“芯片上的程序也是人写的,难说就一定没有漏洞啊。况且,Intel 是个美国公司,我们用这套技术方案做隐私计算,恐怕不符合安全要求啊。。。”
审思只好说:“虽然你说的这些问题发生概率极低,但确实无法反驳。。。”
2019年初,“穿衣侠”的究极挑战来了:
一家华东的银行找到蚂蚁集团,想要探索风控数据的联合计算,但他们只“信天”——必须要从数学上可以证实安全性,一个字节都不会外泄才行。
审思跟大家商量了半天,既然要做最厉害的隐私计算,当然得接受这个“华山论剑”式的究极挑战。
可有什么“神功”能保证数据绝对安全呢?映进他们眼帘的恰恰就是—— “多方安全计算”。
(四)华山论剑和闭关修炼
当时那家银行很着急,期看两个月内就让系统上线。
可多方安全计算的方案大多存在于论文里,几乎没有实践使用,相当于我们要赤手空拳从零写一套符合生产准则的系统。。。
当时那家银行很着急,期看两个月内就让系统上线。
可多方安全计算的方案大多存在于论文里,几乎没有实践使用,相当于我们要赤手空拳从零写一套符合生产准则的系统。。。
审思回忆。
之前说过,多方安全计算保证数据隐私的方法是:把一段数据分成不同的部分分次传输,传输过程中还掺杂加密操作。如此来往返回,就像“穿针引线”一样,最终得出结果。
这种玩法起码涉及两个难题。
难题一、写系统很难。
由于是“多方”计算,这个系统就不能只有一个——要在蚂蚁这放一套,在银行那放一套。
它们就好比“修炼的道场”,郭靖得一会儿到黄药师这个道场比划两下,一会儿到周伯通那个道场探求片刻,一会儿到段智兴的道场练习一番。
这来往返回的穿梭都要靠完美的系统来实现。
难题二、写算法也很难。
“算法”,只是抽象的逻辑概念。算法要想工作,需要变成一行行代码放进每台机器里被执行。
于是,老师傅必须先理解算法,再一层层把计算任务布置给具体的机器。由于没有自动化工具,所有的代码部署都得靠双手。。。
这就像在练《九阴真经》之前,必须把每条经文进进道场的顺序、郭靖的走位都预先排演清楚,不能出错。
否则,最后练习出来的肯定是个走火进魔的郭靖。
说回当时。十来个人从一月初横跨春节干到了二月底,终于把系统雏形搭建好了—— 虽然复杂,但却是数学可证的安全,隐私滴水不漏。
一测试,两边的风控模型的效果都直接飙升了10%-20%左右。
那个甜蜜的想法随即又在审思脑中涌现:“把“多方安全计算”这个功法发扬光大,介绍给更多的机构使用,肯定没问题了吧?”
可残暴的现实立刻教他做人——这套方案好是好,可由于处处都是手工写死的指令,只能用于特定场景和特定算法——假如要换新的机构来做计算,那就得把代码从头再写一遍。。。
这就像一堆老师傅用锤子扳手手工敲出了一辆兰博基尼,然后客户说,活儿不错,给我来一万辆!
老师傅们听到都吐血了,累死也做不完啊。。。
硬着头皮坚持“手工裸写”了几个项目之后,审思心里冒出了一个大胆的想法,和兄弟们吐露:
工欲善其事,必先利其器。看来我们得搞出一个适合工业化大生产的“隐私计算的框架”,它要能自动化地把算法布置在多方计算系统上。
哦不,不仅要支持“多方安全计算”,还要能支持“联邦学习”、“TEE”等等所有主流的隐私计算流派。
假如能做出这个框架,起码有两个好处:
其一,今后我们自己再布置新的隐私计算系统就会轻松百倍。
其二,将来哪怕功力不如我们深厚的其他门派的小师傅,甚至是刚刚习武的“隐私计算新人”也能轻松部署一套隐私计算的任务,这才能让隐私计算这门功夫在江湖上发扬光大!
工欲善其事,必先利其器。看来我们得搞出一个适合工业化大生产的“隐私计算的框架”,它要能自动化地把算法布置在多方计算系统上。
哦不,不仅要支持“多方安全计算”,还要能支持“联邦学习”、“TEE”等等所有主流的隐私计算流派。
假如能做出这个框架,起码有两个好处:
其一,今后我们自己再布置新的隐私计算系统就会轻松百倍。
其二,将来哪怕功力不如我们深厚的其他门派的小师傅,甚至是刚刚习武的“隐私计算新人”也能轻松部署一套隐私计算的任务,这才能让隐私计算这门功夫在江湖上发扬光大!
“隐私计算的框架”假如真做出来,将来所有的隐私计算都可以用这个基础设施,这可是要开宗立派的操作啊!大伙儿越想越热血沸腾。
审思示意兄弟们镇静:“大家要知道,自创一套功法可比赢下一局比武难多了。目测这个框架不是几个月就能搞定的,依我看,咱们得隐居面壁,细细打磨,耐得住寂寞。做不成功,誓不出山,各位意下如何?”
大家群情激昂,纷纷表达甜愿闭关修炼!
故事讲到这儿,审思戛然而止。
四位大侠听得津津有味,赶紧追问:“那后来,你这隐居面壁开宗立派是成了还是没成?”
审思笑:“各位莫急,这套框架会串起各种隐私计算流派中的诸多 底层技术,就像珍珠项链一样。为了更好理解其中妙处,各位不妨坐定,先来欣赏一下其中几颗耀眼的技术珍珠,随后我再回来为大家分解如何?”
说时迟那时快,门后转出一位风度翩翩的侠客,看着大伙儿,默默不语。
(五)闪耀的“技术珍珠”
话说,就在审思他们死磕“多方安全计算”使用的时候,被暂时放在旁边的 “TEE 技术”(就是那个“安全屋”),却在另一群大牛的精心照管下,缺点被一个个填平,迎头直追。
这位人狠话不多的闫守孟,就是大牛之一。
当年在很多人看来,TEE 只是一个预制的“安全屋”,拿来就用,不便修改,自然会有这样那样的不顺手。
可在守孟的眼里,TEE 却像一个温顺的小马,只要在它的基础上加上适宜的“马鞍”,不仅可以让它载人行走千里,还可以让它更加安全。
守孟之所以如此自信,是因为他在加进蚂蚁之前,恰恰供职于 Intel,确切地说是 Intel 诸多前沿技术的发源地——Intel 中国研究院。
“不用说,守孟大侠自然是对 Intel 芯片有着庖丁解牛般的理解!”段智兴拱手。
“过奖过奖,略通一二。”守孟还礼。
说起来,守孟和一众大侠恰恰曾在 Intel 的 TEE——也就是 SGX——的技术发展史上留下过浓墨重彩的一笔。
要想讲清楚这“一笔”,还需要多阐明一下 SGX 的工作原理。
Intel 的 CPU 运行时,会让不同的程序跑在不同的层级,总共分为 Ring0-Ring3 四层。
这么多层是干啥的呢?
低层级的程序有权调动更多的CPU能力,从而“治理”高层级的程序——例如一个在 Ring3 层跑的使用程序死机了,Ring0 层的操作系统就可以告诉 CPU:逼迫关闭它。
这就像盗梦空间一样:每一层梦境都建立在下层梦境之上,下层的做梦者有方法让上层的梦醒来。
原理讲完了,那 SGX 跑在哪一层呢?其实是跑在 Ring3 层。
这么重要的进程,为啥要跑在 Ring3 层呢?
因为层级越靠近底层,可以调用的芯片功能就越多,程序代码就越复杂;代码越复杂,反而越轻易出现漏洞和安全问题。
所以,Intel 就干脆把 SGX 放在了最高层 Ring3,独坐高楼,墨镜一戴,谁也不爱。
可有一利就有一弊。放在 Ring3 层的 SGX,由于无法调用底层操作系统的能力,导致它的功能也很简单,只能运行基础语言——例如C++——写的代码。
可是,隐私计算的算法经常搞得很复杂,动不动就要用到人工智能算法,这些都是 Python 之类的高级语言写的,根本跑不了。
于是,守孟就用了一生功力,把各种语言依靠的库都塞进了一个“操作系统”里,这个操作系统运行在 Ring3 层,专供 SGX 来使用,它就喊 Occlum。
为了天下苍生,Occlum 刚一写成,守孟他们就捐赠给了开源社区。
不用白不用,白用谁不用!Occlum 一下蹿红成了最时髦的 SGX 开发组件,目前世界上跑在 intel SGX 里的程序,有很大一部分都是依靠 Occlum 来运行的。
Occlum 大大降低了编码门槛,所以顺理成章地成为了TEE 技术里一颗耀眼的明珠。
搞定了 Occlum 之后,守孟和一众老师傅又马不停蹄地盯上了另一个难题,这也是之前审思碰到的问题—— Intel 是一家外国公司,某些中国公司用它来做隐私计算,会不符合安全要求。。。
当时,守孟跟一众大侠讨论,觉得假如从底层芯片的角度看,这也不是什么解不了的难题。
我们对 SGX 和这类可信执行环境的原理太熟悉了,假如在我们自己的芯片上把这个原理实现出来,就没问题了嘛!
我们对 SGX 和这类可信执行环境的原理太熟悉了,假如在我们自己的芯片上把这个原理实现出来,就没问题了嘛!
守孟说。
这个技术就喊 HyperEnclave。
简单来说,HyperEnclave 的原理是酱的:
首先,在 CPU 之外,挂上一个名喊 Blade 的国产自研小芯片,这个芯片通过了国家相关部门的安全认证,它不干别的,就负责存储那把安全屋的钥匙。
然后,在 CPU 上创建一个虚拟机,在这个虚拟机四周建一道铜墙铁壁,这就是用软件模拟出来的“安全屋”。
所有的计算都发生在这个“虚拟安全屋”里,需要自证清白的时候,就往旁边的 Blade 芯片里拿一下钥匙。
如此一来,负责计算的芯片无论是 Intel 还是国产 CPU,就都没有问题了。因为那个最重要的“信赖根”——秘钥— —是存在另一块安全可信的芯片上的。
就像下面这样:
靠着 HyperEnclave 一套“组合拳法”,TEE 终于有机会自证清白,清除了“主看作恶”的嫌疑。
这,又是 TEE 技术领域的另一颗璀璨珍珠。
总之,有了 Occlum 和 HyperEnclave这样的底层技术加持,某种程度上 TEE 就变成有了马鞍的小马,更好用也更安全了,快马加鞭回到“蚂蚁派”的主流隐私计算技术行列。
听到这儿,四位大侠刚预备鼓掌,守孟示意大家不用急,还没讲完。
“在隐私计算领域,还有一个更神异的技术流派,我们称之为 ‘隐私计算的圣杯’。”守孟说。
“啊,居然还有绝学?!大侠快快请讲!”黄药师眼里闪耀星星。
这就是 “同态加密”,守孟说。
同态加密算法堪称当今人类数学最前沿的成果之一。它的原理是啥呢?
众所周知,数据加密之后,它的数值肯定会转变,两个加密过后的数字无论做加法还是做乘法,结果肯定和明文时不同了,所以密文不能直接用于联合计算。
同态加密的精髓,就是通过特殊的运算添加进往一种“数据噪声”,使得你看上往是两个加密的数,但做加法或乘法后,数据噪声恰好可以被消除,从而得到和加密前的明文相同的运算结果。
这种操作非常神异,可它的代价也是凶残的:
同态加密的过程中因为要添加“噪声”,通常会把数据的位数变多。原来只有3位的数字可能膨胀成1000位。
现实生活中,两个银行进行联合风控,要想得出有用的结论,几万次的计算是基操。
想想看,这种计算量很轻易就超过人类拥有的计算力总和,虽然理论上可以实现,现实中却绝对没戏。
所以,在当今的实践中,没方法单独用“同态加密”解决隐私计算问题——大多数情状下, “同态加密”可以作为 “多方安全计算”或 “联邦学习”中的一个或几个步骤,以增强它们的安全性。
可即便这样,进行同态加密的资源消耗量还是很大。
于是,守孟他们研发了一种 “加速芯片”,把同态加密算法“庖丁解牛”之后,找到里面比较消耗资源的操作,然后做成“灵敏方式”,输进专用的芯片里往跑——这样就实现了加速效果。
有了这个芯片, 同态加密的运算平均速度可以被加快1000倍左右。
“当然,原来同态加密算法比明文算法要慢100万倍,即使加速了1000倍之后,还是比明文计算要慢1000倍,没方法大规模使用。。。”守孟直率地说,“不过,习武之人贵在精进,我们仍在努力修炼。”
这 “加速芯片”,就是隐私计算的又一颗明珠。
其实在我们蚂蚁还有很多大侠,他们同样做了很多提高效率的技术,这些技术明珠合在一起,才让隐私计算的方方面面面都变得越来越快。某人不敢贪功,只是时间有限,没方法给大家一一介绍了。
其实在我们蚂蚁还有很多大侠,他们同样做了很多提高效率的技术,这些技术明珠合在一起,才让隐私计算的方方面面面都变得越来越快。某人不敢贪功,只是时间有限,没方法给大家一一介绍了。
守孟拱手施礼,浅鞠一躬。
四位大侠放下手里的笔记,若有所思。
“学得越深,反而觉得各种技术都很不错。眼看夕阳西下,恐怕得尽快选定方案!”几个人决定再次往找掌门韦韬,请他做个意见。
“其实不必发愁。”韦韬露出艺高人胆大的微笑,“正好最近几日,我也在探求这个问题,独创了一个 评判各种隐私计算技术的方法,不妨给各位参考!”
(六)双剑合璧
韦韬伸出一个巴掌:“评判一个隐私计算,主要有5个方向的指标,分别是:安全、性能、可靠性、适用性、成本效能。”
当然,其中需要格外注重的就是前两条。
第一,来看安全:
比如“TEE”,虽然它是一个安全屋,也有 HyperEnclave 这类技术保证芯片方不作恶,但谁都没方法清除一种可能,那就是“安全屋”本身存在未知漏洞,理论上,黑客有机会通过破解屋子把里面的信息偷走。(虽然实际上可能性很低)
同理,之前说过的“联邦学习”也存在信息熵泄漏的可能。在联邦学习的基础上把要害数据用加密方式保护起来,就改良成为“安全联邦学习”。但即便如此,理论上也没方法完全消除“信息熵泄漏”的可能性。
所以,它们在安全等级里可能可以排到2-3级。
“多方安全计算”由于有严厉的数学证实,安全等级就能到4级。
第二,来看性能:
由于 “联邦学习”和 “多方安全计算”都涉及到数据穿针引线一般穿梭,属于 “跨网运算”。所以它们对于网络传输的要求高,也会存在性能的瓶颈。 目前来看,只能计算百万~千万量级的数据。
可 “TEE”就不同了。它不需要数据往返乾坤大移动,闷头在芯片里计算就好了,属于“同网运算”。所以它的计算规模就非常大, 可以达到亿级甚至十亿级的数据。
“总结一下,不同的计算方案有不同的安全等级和不同的计算性能,几位大侠可以参考以下表格。”韦韬说。
“等等,韦韬大侠,你这图的右上角,性能又好,安全又高的技术是啥呢?”周伯通眼尖,指着那个“TEE+Crypto”说。
“哈哈哈,被你发现了!最近两年,我们蚂蚁众大侠苦思冥想,世间是不是存在一个既安全又性能良好的隐私计算路线呢?于是我们把 ‘信人’和‘信天’的两大流派双剑合璧,独创了一门 ‘可信秘态计算’,简称 TECC!”韦韬说。
请各位想象一下,你们把《九阴真经》传送到安全屋后,不立刻进行计算,而是 把《真经》再一页页拆开,用多方安全计算的模式在安全屋中计算。这会是什么效果?
第一个效果:万一整个系统中有一部分“安全屋”被欧阳锋撬开,他拿到的也只是数据的碎片,无法还原出《九阴真经》的原文。
第二个效果:由于所有安全屋都放在一起,郭靖从这个道场走到那个道场不用花很长时间,信息传输的开销也会大大减少,从而非常接近明文计算的效率。
请各位想象一下,你们把《九阴真经》传送到安全屋后,不立刻进行计算,而是 把《真经》再一页页拆开,用多方安全计算的模式在安全屋中计算。这会是什么效果?
第一个效果:万一整个系统中有一部分“安全屋”被欧阳锋撬开,他拿到的也只是数据的碎片,无法还原出《九阴真经》的原文。
第二个效果:由于所有安全屋都放在一起,郭靖从这个道场走到那个道场不用花很长时间,信息传输的开销也会大大减少,从而非常接近明文计算的效率。
韦韬阐明。
“挖!果然高明!可是。。。万一欧阳锋老贼把所有的安全屋都撬开呢?”段智兴追问。
“假如全部撬开,数据自然有危急。假如担心这个风险,我们可以摘用不同的安全屋,例如 Intel 和 国产芯片混用,这样,坏人欧阳锋就必须能同时攻破各种芯片,才能拿到完全信息。放心,这些方案我们都已考虑周全。”韦韬从容地说。
“妙啊!如此说来,我们的《九阴真经》也可以用 TECC 来搞定啦?”黄药师问。
“当然可以!隐私计算正有万派回宗之势,各位不妨尝试一下 TECC 这种合成技术!“韦韬说,“只不过,想为武林绝学《九阴真经》这么复杂的数据体系从头写一套隐私计算程序,在工程上有很多编码工作要做。。。”
“啊,对啦!”大侠们眼里放光,“审思和一众高手不是闭关研究了一套隐私计算框架,说是可以大大加快各种隐私计算流派代码开发的速度么?不知他们进展如何啊?”
正在此时,大门被推开,审思重新回到了大家面前,似有满面霜尘,眼神如穿洞邃。
(七)“隐语”出世
审思缓缓讲出了2019年闭关以后的故事。
这群大侠欲练的神功,究极目的说白了就是“两个高效”:
随便什么算法,都可以 高效布置到计算单元上;
各种主流算法,都能够高效运行。
随便什么算法,都可以 高效布置到计算单元上;
各种主流算法,都能够高效运行。
首先,说说算法的高效布置。
“这个布置的过程,其实就是层层翻译。”审思说。
举个栗子:
假如用人类的高级语言给机器人下指令,可能会说:帮我把红酒拿过来。
可机器人不懂这个指令,需要用程序把这句话翻译成:你走到桌子前,用机械臂夹住酒瓶,举起来,走回主人身边,把机械臂平伸到他面前。
可是,机器人的各个零件仍然不懂这个指令,需要进一步给它们翻译:轮子向后转动180度,前行3米,停靠在距离桌子20厘米处;视觉系统识别杯子的精确坐标;机械臂提升至距离桌面5厘米,向前触碰到水杯停止,前端施加300牛顿的力夹住酒瓶;车轮反向转动180度,前行3米;视觉系统识别主人轮廓和坐标;机械臂升至主人上臂下缘高度 ,待命。
假如用人类的高级语言给机器人下指令,可能会说:帮我把红酒拿过来。
可机器人不懂这个指令,需要用程序把这句话翻译成:你走到桌子前,用机械臂夹住酒瓶,举起来,走回主人身边,把机械臂平伸到他面前。
可是,机器人的各个零件仍然不懂这个指令,需要进一步给它们翻译:轮子向后转动180度,前行3米,停靠在距离桌子20厘米处;视觉系统识别杯子的精确坐标;机械臂提升至距离桌面5厘米,向前触碰到水杯停止,前端施加300牛顿的力夹住酒瓶;车轮反向转动180度,前行3米;视觉系统识别主人轮廓和坐标;机械臂升至主人上臂下缘高度 ,待命。
你看,刚才这些翻译是手动“裸写”的,看上往非常顺畅。可是,审思他们要做的恰恰是 把这种翻译让机器自动完成,难度可想而知。
最开始,机器自动翻译的指令可能会出错;
到后来错误没有了,但会有很多冗余动作,执行效率非常低;
再后来,机器翻译指令的效率虽然和人相比还有距离,但已经慢慢能看到人类的背影了。
接下来,再说让算法高效运行。
提高运行效率有很多技艺,这里略说一二。
比如,不同的隐私计算技术路线使用计算设备的姿势是不同的,这就导致在过往,假如一个隐私计算任务既用到“多方安全计算”,又用到“同态加密”,就得预备两套计算设备。
但审思他们用多年的功力把这些设备运行时的基本动作给抽象出来,变成了一个 通用计算单元。这就是 SPU。有事儿您和 SPU 说,SPU 再来调度计算芯片就行。
这么一来,老师傅不用管下面运行的是什么设备,只要对着 SPU 写代码,就肯定能运行。
再比如,跨网的隐私计算路线——例如“多方安全计算”——需要大量的网络传输。
审思他们就联合隔壁的“双子座实验室”,搞出了一个 “猎豹协议”,在两方联合计算的情状下,可以大大提高数据传输的速率。
2021年,眼看代码越堆越高,功法越来越完美,此时再低调,实力已经不答应,一众大侠决定出山。他们给这一套神功起了个名字—— 隐语。
审思拿出一张浩大的图,隐语像一根隐形的蓝线,穿起了5层珍珠。
从上到下分别是:
1、用户界面;
2、隐私算法(各种隐私算法流派);
3、混合调度(用来把任务分配并且“翻译”给计算单元);
4、逻辑层计算设备(包括 SPU 和 Occlum 等具体承接计算的模块);
5、物理层计算资源(服务器、网络之类)。
1、用户界面;
2、隐私算法(各种隐私算法流派);
3、混合调度(用来把任务分配并且“翻译”给计算单元);
4、逻辑层计算设备(包括 SPU 和 Occlum 等具体承接计算的模块);
5、物理层计算资源(服务器、网络之类)。
因为兼容了所有主流隐私计算技术,所以,世间绝大多数保护隐私的计算场景都可以用隐语这个框架来快速搭建。
这样一来,修炼“隐私计算”的门槛就彻底降低了—— 会写明文算法的大侠,只需要简单学习“隐语”,就四舍五进可以写隐私计算的算法了。
“未来假如出现新的技术路线,我们也能第一时间兼容进往。”审思拍胸脯。
四位大侠鼓掌:“太棒了!我们联合学习《九阴真经》就用隐语框架和 TECC 了!只是,你们这套技术要卖多少银两?你也知道我们习武之人囊中羞。。。”
“哈哈哈,莫慌。”韦韬大笑,“就在2022年,我们已经把‘隐语’开源出来了,TECC 也正在开源的路上,所有人都可以免费下载。”
“啊?!辛辛辛劳修炼的技术,却要免费传授世人,这是何道理?”黄药师皱眉。
“此言差矣。敢问诸位大侠,你们的武林纷争是如何缘起的呢?人人争当武林霸主,才会把神功隐匿,不与大家传习。若是心系家国,把各家武学精华都拿出来交予天下习武之人修习,岂不利国利民?”韦韬说。
“诸位有所不知,我们蚂蚁几年前就把开源定为了集团战术,大家一致赞同,越是独门的好技术,越要分享给世人啊!这样不仅不会失往优势,反而能赢得武林的敬重啊!”
韦韬一番话,说得几位大侠脸上青一阵紫一阵。
“果然是侠之大者,为国为民啊!受教了。请问,我们要往哪里下载?”段智兴问。
“Github。”韦韬说。
“什么是 Gayhub?”周伯通问。
“不不不,Gayhub 是同性交友网站。。。”史·亿万懦夫·中赶紧阐明。
“那 Github 是啥?”
“呃、、、是另一个同性交友网站。”史·亿万懦夫·中说。
(八)尾声
几位大侠下载好隐语框架的代码,编写了一套合成了各种隐私计算技术的《九阴真经》练习流程,郭靖向前辈深施一礼,转身走进屋子,开始闭关试炼。
七七四十九天后,神功已成。
“正版的《九阴真经》练起来果然全身舒爽!我现在觉得浑身有虎豹之力,几位前辈要不要和我过几招?”郭靖说。
果然,几个大侠已经全然不是郭靖的对手,被打得满地找牙。
大事已了,大侠们对蚂蚁诸位师傅一躬到地:“万谢!”
“几位蚂蚁大侠功法了得,要不要随我们到桃花岛游览一番?”黄药师邀请。
“恐怕不行,如今的世界,隐私计算方兴未艾。此时此刻,只在金融风控、广告营销还有医疗领域有所尝试,但这距离世人的期看还有很远啊!未来几年,隐私计算技术应该大规模向生产制造、交通出行、个性服务等等千行百业拓展。我们还得留在此地,为这个图景陆续奋斗啊!”审思推辞。
“既然如此,老夫便不多让。”黄药师转向史·亿万懦夫·中:“可这位大侠的恩惠不得不谢!我有一个小女,名喊蓉儿,生得伶俐,许配给你,如何?”
“多谢好意,鄙人已有妻室。”懦夫侠说。
“啊,那娶回家做妾也好。”黄药师说。
“不行,在我们这儿犯法,会被官兵挠。。。”懦夫侠说。
“有九阴神功在此护佑,料也无妨。”段智兴插嘴。
“九阴神功打不过机关枪啊。。。”懦夫侠苦笑。
“机关枪?又是何功法?可以修炼吗?”老顽童问。
懦夫侠说:“机关枪不是练的,是造出来的。远想当年,要是大宋有机关枪,也不至于最终蒙古铁骑挥师攻宋,崖山幼帝殉国。后世大清要是有机关枪,也不至于国门洞开,招致马关之辱,庚子之殇。。。不好意思剧透了,恳请大侠们记住,科学技术永远是第一生产力,落后就会挨打呀!”
黄药师拱手:“记下了!!”
此时,郭靖举手:“前辈,小生还是20年的母胎单身,你看,要不要考虑我做女婿?”
黄药师捋捋胡子:“嗯,倒是可以考虑。”
夕阳下,钱塘江烟波浩渺,众侠客折柳分别,各自启程。
青山不改,绿水常东,他日相见, 再续 前缘。
十年磨一剑
霜刃未曾试
再自我介绍一下吧。我喊 史中,是一个倾心故事的科技记者。 我的日常是和各路大神谈天。假如想和我做朋友, 可以搜索微信:shizhongmax。
哦对了,假如喜欢文章,请别吝惜你的“在看”或“分享”。让有趣的灵魂有机会相遇,会是一件很美好的事情。
Thx with in Beijing