查看原文
其他

隐私计算发展浅析

GClover 一个数据玩家的自我修养 2022-03-25

引言——密码学发展简史

谈隐私计算,绕不开密码学。

关于保密的需求,最早可以追溯到约公元前1500年的美索不达米亚。那时,人们主要使用笔和纸,或简单的机械辅助工具来进行加密。

密码棒——一种早期的加密工具[1]

这个阶段,一般称之为经典密码学,或古典密码学。

古典密码学

如果需要保密,信中便用暗号,也即是改变字母顺序,使局外人无法组成一个单词。如果想要读懂和理解它们的意思,得用第4个字母置换第一个字母,即以D代A,余此类推。                     ——苏维托尼乌斯,罗马十二帝王传

凯撒密码[2]

其中比较有特点的,就是以凯撒密码为代表的换位加密。这类密码通常易于破解,以维吉尼亚密码为代表的多表置换密码出现,大幅降低了被频率分析和攻击的风险。

凯撒密码在一次加密中的的偏移量是相同的,比如都是A->D,B->E,偏移量固定为3,而维吉尼亚密码的偏移量需要查表来决定。



比如明文是:ATTACKATDOWN

密钥采用一个单词不断重复组成,比如LEMON

密钥长这样:LEMONLEMONLE

整个加密过程,看明文第一个字母A,对应密钥第一个字母L,那我们就查L行的A列,得到密文L;第二个字母T,对应密钥第二个字母E,那就查E行的T列,得到密文X;第三个字母T,对应密钥第三个字母M,那就查M行的T列,得到密文F,以此类推。

我们可以得到密文:LXFOPVEFRNHR

近代密码学

进入20世纪,复杂机械和电动机械被发明出来,更有效和复杂的加密方法应运而生。

最有代表性的,就是图灵领衔破解的Enigma密码机。

Enigma密码机[3]

Enigma的核心原理仍然是多表替代,只不过借助机械使得这个过程半自动化,更加高效。

并且,三个转子、不同方向、不同相对位置、连接板上的字母换序等多种条件组合之下,共有一亿亿种可能性(没写错,一亿亿)。

在图灵破译Enigma之前,雷耶夫斯基首次将严格的数学化方法应用到密码破译领域,他领衔的波兰三杰破解了大量德军密码,成为图灵伟大成就的基础。

现代密码学

19世纪40年代,现代信息学之父香农的《密码学数学理论》被认为是开启了现代密码学时代。

我在香农的维基百科词条里,还发现他和图灵曾经有过一段梦幻联动。

1943年,香农有机会和英国数学家和密码学家艾伦·图灵合作。图灵被派到华盛顿和美国海军交流破译德国的北大西洋潜艇舰队密码的成果,并在贝尔实验室待了一段时间。香农和图灵在一个自助餐厅见面。图灵向香农介绍了现在被称为“通用图灵机”的概念。香农对此很感兴趣,因为图灵机的概念和香农自己的很多想法相吻合。

随后,香农证明了一次性密钥(cryptographic one-time pad)是无法被破译的。香农同时证明了一个无法被破译的密码系统的密钥必须有以下特征:完全随机;不能重复使用;保密;和明文一样长。[4]

1976年 Diffie 和 Hellman 的公钥密码的思想提出,是现代密码学的里程碑。两位也在2015年因为提出公钥密码思想获得图灵奖。

公钥密码学也就是非对称密码学,在此之前,加密和解密一直使用同一个密钥(即对称加密)。

对称加密的问题在于,私钥一旦暴露,密文就不再安全,而假想一个场景,A和B想要针对一段文字进行加密,则必须把密钥通过不安全的通道进行传输。

当然,可以通过迪菲赫尔曼秘钥交换协议(没错,也是上面两位发明的)来交换私钥,但是仍然有可能被中间人攻击获取秘钥。

非对称加密由于可以传输公钥,在传输密钥环节更加安全,但是由于算法更加复杂,运算效率比对称加密要低。

有了非对称加密的基础,现代密码学开始飞速发展。

时间来到1982年,姚期智院士提出了著名的百万富翁问题,开创了多方安全计算这一密码学的新分支。

多方安全计算

亿万富翁Alice和Bob,想知道谁更有钱,但是又不想暴露自己具体有多少资产,应该怎么办呢?

这就是百万富翁问题。一般而言,最佳解法是通过不经意传输

不经意传输(Oblivious Transfer)

我和张三打牌,但是我牌技不佳,总是输,为了让游戏更公平一点,我可以看张三一张牌的大小,但是我不想让张三知道我看的是哪一张,不然他可以有选择的出那张牌,导致我还是输。

这时,我们就可以通过不经意传输的方法,来达到我看了一张牌,但是张三不知道我看的是哪张这个效果。

实用中,常常简化为1-2不经意传输,即发送者发送2条消息给接受者,接收者只得到其中一条,但发送方并不知道接收者得到了哪一条。

假设Alice有两个密文m0和m1(两张牌),Bob想获取其中一个。

  1. Alice生成两个RSA公私钥对,将两个公钥p0和p1发给Bob;
  2. Bob生成一个随机数,并用p0或p1中的任一个加密这个随机数(想要m0就用p0,要m1就用p1),并将密文结果发送给Alice;
  3. Alice用p0和p1对应的私钥分别解开密文,得到两个结果k0和k1,注意,其中一个就是Bob真正的随机数,另一个不是,但是Alice不知道哪一个才是。拿到k0和k1后,用k0和m0进行异或,用k1和m1异或,得到e0,e1,发送给Bob;
  4. Bob用之前生成的随机数,分别与e0和e1进行异或,其中一条就是Alice的密文,另一条则是一个无意义的随机数。[5]

有点绕?继续看:我们假设Bob想要的是m0,他用p0加密了随机数x,得到p0(x)。

Alice用p0的私钥解开这个数,就得到了x,然后与m0异或,得到e0=m0⊕x,以及另一个随机数和m1异或的结果,发给Bob。

Bob拿到了e0和e1,和自己之前的随机数x异或,x⊕e0 = x ⊕ m0 ⊕ x = m0,这样,他就拿到了m0。

那我们如何用不经意传输来解决百万富翁问题呢?

这里数据玩家来简化一下问题,假设两人的资产都在亿级别,但是又不超过十亿。

Alice取十个一模一样的盒子,按1~10的顺序排好,但是不能做记号,代表1~10亿,按照自己的资产规模分别往里面放入黑桃,红心和方块花色的扑克牌(扑克牌都用A)。

如果盒子编号小于自己的资产规模,则放入黑桃,如果相等,则放入红心,如果编号大于自己的资产规模,则放入方块。

把十个盒子都加锁,并且交给Bob;

Bob根据自己的资产规模,选择其中一个箱子加上自己的锁,并把其他箱子都销毁。

最后,Bob把这个双重加锁的箱子给回Alice。

Alice拿到箱子,不知道这具体是哪一个箱子,因为没有编号。

两人分别开锁,看里面的扑克牌花色,如果是黑桃,说明Alice更加富有,红心,两人相等,方块,则Bob更加富有。[6]

当然,两人的资产规模不太可能是整数,如果正好相等,可以再比千万级的资产,只要不断重复上述过程即可。

这样,通过不经意传输,我们就实现了多方安全计算,即数据的可用不可见。

隐私计算发展现状

隐私计算到底是什么

隐私计算是多种技术的统称,目的是为了让多个数据拥有者,在不暴露数据本身的前提下,实现数据的共享、互通、计算、建模,最终产生超出自身数据的价值,同时保证数据不泄露给其他参与方。

一图看懂隐私计算发展[7]

隐私计算是一套复杂的技术体系,包含了硬件、密码学、分布式机器学习等多种底层技术。

目前大家基本的共识,是隐私计算包含三大技术路线,即:可行执行环境TEE,多方安全计算MPC,以及联邦学习FL。

隐私计算技术栈[8]

隐私计算赛道为何突然火热?

其核心是数字经济的发展,数据要素重要性的确立和数据基础设施、数据法律法规、数据交易生态不够完善之间的矛盾导致的。

究其原因,在于数据拥有方对于数据不能给,不敢给,不愿给。

不能给

政府机构、医院、中小金融机构,基础设施不够完善,信息化还没有做好,业务还没有数据化,数据沉淀还不够多。

哪怕已经有一些数据,但分布于不同的部门,存储于不同的基础架构,手工台账和Excel并存,更不用谈数据治理、规范、标准和数据打通及数据服务了。

近几年,多方面因素的共同作用下,现状已经有所改善。

不敢给

基础设施具备以后,又迎来了越来越严格的合规和监管,个人隐私保护等法规的逐步健全,也使得原来那种野蛮生长的,明文传输的明文传输个人隐私数据的商业模式渐渐的行不通了。

怎么给才合规,怎么拿才合规,太多的反面案例让大家有点畏首畏尾,宁可少做,不可做错。

而隐私计算,正是让大家敢于进行数据共享和交易的一剂良药。

不愿给

大家都意识到数据的重要性,所以把数据看作自己最重要的资产,不愿意和其他机构分享数据。

别说其他机构了,就是在某些金融机构内部,不同部门之间的数据想要打通也得费一番功夫。

隐私计算的核心。能力在于让数据可用不可见,让数据不动模型动。

希望能够让各方在数据不离开本地数据库的前提下,完成数据的交互,碰撞和建模。

所以,隐私计算在数据基础设施逐渐完善,解决大家不能给的前提下,一方面保护了传输的数据的私密性,解决大家不敢给的困境,另一方面保护了数据所有机构的资产安全,打消大家不愿给的顾虑,是兼顾当下解决数字经济发展和隐私保护的最佳方案。

隐私计算发展痛点

产品和技术不够成熟

产品由于涉及到众多技术栈,使得整个产品形态非常复杂,考虑到隐私计算的实际应用场景,可能需要部署在防火墙内、私有云、DMZ区,存在跨网络交互,涉及防火墙策略等复杂的部署方案,使得整个产品的实施交付更为复杂,还没有形成相对标准的产品套件。

此外,多方安全计算由于大量使用密码学算法,使得性能降低。比如,生成一个RSA的密钥对,通常就涉及大整数的素数分解,需要的计算量极大。

根据信通院的测试,40万行样本x900列特征的纵向联邦学习建模比明文慢数十倍甚至百倍,并且随着规模增加,这个倍数还会放大。

隐私计算存在性能瓶颈[9]

此外,隐私计算中有很多假设被大家习以为常了,认为假设一定成立。

比如,联邦学习假设梯度无法推断出有用的信息,然而这个假设很难被证明,事实上,反例已经出现:梯度会泄漏训练数据?MIT新方法从梯度窃取训练数据只需几步。

就算无法推断出原始数据,一些具有统计意义的数据,难道就不会造成数据拥有方的损害吗?比如交易总量,比如客户总数,比如客户性别比……

更加致命的假设,是隐私计算中,我们通常假设所有节点都是“半诚实”的,也就是,大家虽然有机会获取对方泄露的数据,但还是遵守约定。[10]

然而实践中,等到相关技术逐渐被大家掌握,所有节点还能够保持“半诚实”吗?如果大家都是恶意节点,大家都“投毒”(掺入假数据),隐私计算还可靠吗?

客户接受程度低

由于产品原理太过复杂,很难给客户解释清楚,最难的是,如何自证。

经过一套复杂的方案设计,如何证明隐私计算平台没有获取到客户的明文,或者,至少不能还原或推断出有用的信息?

就算给客户解释清楚了,客户也没办法给监管解释清楚。

监管真的认可这类方案吗?做成了项目,收益有多少,能否覆盖监管成本?毕竟,项目上线以后,肯定会引起监管关注,三天两头监管现场检查,无数的材料、汇报、解释……没有机构愿意承受。

还有,真的不会“用力过猛”吗?以金融行业为例,如果大家都完成了“断直连”,所有数据源都从合规的出口接入,还有必要套上隐私计算的壳子吗?

此外,就算大家都接受了,还存在对原有业务流程的大改造,以及对性能的潜在影响。

原有流程下,企业内部数据与外部数据融合后,经过特征工程,在决策引擎内完成模型加工并输出结果。

在隐私计算的方案下,企业内部数据需要先加密,进入隐私计算产品,再与外部数据进行计算,最后的结果通过决策引擎输出,返回给业务系统继续后续流程。[11]

这套流程,涉及多个系统改造,涉及多个部门参与,是否会影响其他业务或产品,是否涉及整体架构的变更,是否涉及网络架构调整,性能是否能够满足秒级反馈,这些都是未知数。

尚未形成完整解决方案

数据安全需要端到端的全流程防护,从客户授权、采集、加工、融合、应用的全流程,都是需要防护的。如果仅仅只在某一个环节应用隐私计算技术,而其他环节仍然明文来往,则没有达到实质上的效果。

目前的隐私计算方案,大多集中在数据的融合环节,针对不同数据所有方的数据,在融合时确保数据可用不可见,但是在其他环节很少涉足,也缺少相应的方案。

而很多客户,对于隐私保护很焦虑,但是缺少一揽子方案,包括客户授权协议,数据存储,数据生命周期管理,数据权限控制等等,如果缺少相应方案,客户仍然难以下定决心。

此外,与行业内的数据源尚未打通,导致一个项目,要和两方甚至三方从0开始磨合,设计方案,联调测试等等。

如果与某一数据源形成合作方案,又面临另一个问题,即不同的隐私计算产品不互通,导致新的孤岛形成。

展望未来

尽管有不少问题,但是隐私计算仍然是大势所趋。

针对以上的痛点,目前隐私计算行业也在积极应对和调整。

多种技术路线融合,异构平台互通

三种技术路线各有所长,MPC应用场景最广,隐匿查询、隐私求交、不经意传输等技术,广泛应用于多种场景中,但是由于各类加密算法的复杂性,导致性能存在瓶颈;FL在联合建模场景最为常用,然而梯度交换时,时常需要采用同态加密等手段增强安全性;TEE交付模式太重,仍需探索软硬结合的交付模式。

事实上,在一个隐私计算项目中,多种技术结合的模式也很常见。例如,在纵向联邦学习场景中,通常需要双方通过隐私求交框定交集结果;针对某些场景计算效率太低的情况,也经常需要采用硬件加速卡来提升性能,这也倒逼MPC的供应商研究软硬一体的解决方案。

事实上也可以看到,不少大厂已经开始推出隐私计算一体机。因为基于硬件的TEE是可以和MPC以及FL无冲突衔接的,并且会提升两者的性能。

此外,多个隐私计算平台互联互通时,肯定会遇到底层打通的问题,软硬一体的方案肯定更加强势,会要求其他各方兼容自己的硬件体系。

互联互通也是隐私计算绕不开的话题,本就为了打通数据孤岛而进行的努力,由于不同平台的协议和标准不互通,形成了新的孤岛。

而要解决互联互通的问题,最大的难点在于,以谁的为准来进行互联互通,或者说,以什么标准来进行互联互通,这就依赖于行业标准的建立。

行业标准加速建立

行业标准加速建立[12]

中立第三方机构、联盟积极推进各类行业标准的建立,如信通院、北京金融科技产业联盟等。

符合标准的产品,相当于得到权威机构认证,可以降低市场的认知成本,加快产品的交付落地,同时,同一标准的产品也是可以互联互通的。反过来,会促使行业玩家力争符合标准,完成认证,从而推进行业更加标准化、规范化的良性发展。

相信,随着标准的不断完善,生态的逐步繁荣,隐私计算的未来不可限量。


————————————————————

本周日(3月27日),我也会在一个公益论坛上分享关于隐私计算的内容,欢迎大家参加:



承蒙各位厚爱,有一些读者经常看我的文章了,为了能够提供一个交流的平台,我弄了个交流群,关于数字化、数据分析、银行、消金、风控、反欺诈、营销等领域的话题都可以讨论,欢迎大家加入。(请在公众号后台回复任意文字加我微信进群)


参考资料

[1]

密码学历史: https://zh.wikipedia.org/wiki/%E5%AF%86%E7%A0%81%E5%AD%A6%E5%8E%86%E5%8F%B2

[2]

凯撒密码: https://zh.wikipedia.org/wiki/%E5%87%B1%E6%92%92%E5%AF%86%E7%A2%BC

[3]

密码学发展简史: https://github.com/guoshijiang/cryptography/blob/master/history/README.md

[4]

克劳德·香农: https://zh.wikipedia.org/wiki/%E5%85%8B%E5%8A%B3%E5%BE%B7%C2%B7%E9%A6%99%E5%86%9C

[5]

【联邦学习之旅】04 不经意传输、秘密共享、密钥交换与差分隐私: https://wdxtub.com/flt/flt-04/2020/12/03/

[6]

百万富翁问题的一个简单解释:: https://www.jianshu.com/p/5a220e95cee2

[7]

一图看懂隐私计算发展: http://hqsxw.net/202107194407.html

[8]

WAIC 2021 | 翼方健数张霖涛:隐私安全计算如何助力形成数据和计算互联网: https://www.sohu.com/a/480974753_129720

[9]

信通院发布2021年隐私计算行业观察: https://www.secrss.com/articles/37491

[10]

探索 | 联邦学习概念辨析与金融应用思考: https://mp.weixin.qq.com/s/wj24yoqlO94ThXzEodPNJg

[11]

隐私计算公司开拓金融业的意见与建议: https://mp.weixin.qq.com/s/rmeHCQUUsVIrbgE2w-6mGA

[12]

可信隐私计算安全标准和测试解读: https://www.secrss.com/articles/37557


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存