隐私安全计算-不经意传输的原理与应用

隐私安全计算-不经意传输的原理与应用,第1张

不经意传输的原理与应用

一 隐私安全计算派系

1. 隐私计算之少林派

「少林派」:即安全多方计算技术流派。为什么呢?历史最悠久,提供大量底层的安全技术,其他的门派多少会用到安全多方计算的底层技术。多方安全计算(Secure Multi-Party Computation)是指在无可信第三方情况下,通过多方共同参与,安全地完成某种协同计算。即在一个分布式的网络中,每个参与者都各自持有秘密输入,希望共同完成对某个函数的计算,但要求每个参与者除计算结果外均不能得到其他参与实体的任何输入信息。也就是参与者各自完成运算的一部份,最后的计算结果由部分参与者掌握或公开共享。多方安全计算主要基于密码学的一些隐私技术,包括有同态加密(Homomorpgic Encryption),不经意传输(Oblivious Transfer),混淆电路(Garbled Circuit),秘密共享(Secret Sharing)等。

2. 隐私计算之华山派

「华山派」:主要是基于可信硬件方面技术,即通过硬件技术来对数据进行隔离保护。通用的应用方法包括安全屋,可信执行计算环境等。安全屋主要依赖芯片制造工业和系统架构,山路凶险,易守难攻,对独立第三方来说,好处是不用深入研究算法和密码学,缺点是受限制较多,数据需要先集中后处理。

3. 隐私计算之武当派

「武当派」:联邦学习是后起之秀,就像武当派从少林派得到很多启发一样,联邦学习结合密码学和分布式计算,实现了多方协作的机器学习,在人工智能领域开辟了新天地。

除了以上三大门派外,还有差分隐私、K匿名算法、L多样性等隐私相关的技术,这些技术不是相互替代关系,而是可以相互结合,产生更强大的威力。

二、隐私计算公司的分类

将隐私计算行业里比较有代表性的科技公司按三大门派在自研基础技术和集成开源应用两个维度进行分类,如下:

图2 隐私计算公司的分类

少林派主要是华控清交、富数科技、蚂蚁金服、数犊科技、矩阵元等,因为这几家都尚未开源,基于这些自研技术的上层集成开源应用也基本上没有出现。这些公司更多是直接给企业机构提供个性化的多方安全计算服务,解决业务实际的问题,很欣喜地发现少林派这几家公司完全自主研发,掌握多方安全计算的核心技术。

武当派(联邦学习)主要有Google的TensorFlow Federated、微众的Fate、百度的PaddleFL、富数科技Avatar,蚂蚁Morse,除了TensorFlow,其他几个都算是自主知识产权,从联邦学习的专利所有权来看,大多数专利已被这几家收入囊中。其中TensorFlow Federated、Fate、PaddleFL都是已开源项目,业内也有类似京东数科、平安科技等基于开源的内核搭建了上层应用平台。

华山派以Intel的TEE可信执行环境为代表,国内包括蚂蚁金服、翼方健数等公司将之集成到自己的隐私计算平台。

综上,隐私计算由于其研究跨度的高门槛,需要掌握数学、加密学、建模、工程化和业务场景等综合能力能力,以及前期论文研究、底层算法、原型实现和工具化等高投入,国内具有完全自主研发能力的公司其实屈指可数:微众、蚂蚁、百度、富数、华控、矩阵元、数犊等都是投入了2年以上时间, 也是相关大数据安全标准的深度参与者, 才拥有各自的一些自主研究成果。

应用场景:金融、保险黑名单安全查询

黑名单主要用于记录个人或企业客户的不良行为。每个机构都会维护多种业务的黑名单,从小型商业公司到跨国机构,从金融交易到信用记录。机构之间的黑名单共享和查询有助于帮助机构规避风险,如多头借贷、多头骗保等,然而对于黑名单的明文共享既危害用户隐私也泄露商业机密。利用隐私计算进行的黑名单查询可以在保护隐私的情况下降低机构风险。这类计算需要对比两组列表并找出其中重合的部分,这个过程应能保证参与方无法获得除结果外的信息,并可以规避被查询方获得查询条件。

一、联合营销

随着营销业务进入智能时代,应用于营销的数据维度不断丰富,应用场景也不断增加。用户画像的数据往往是相互割裂的,只有通过整合多机构间、多维度的数据才能构建更立体的用户画像。利用隐私计算可以帮助机构在不输出原始数据的基础上共享各自的用户数据进行营销模型计算,根据建模结果制订营销策略,实现双赢的联合营销目的。

在构建营销模型中,通过隐私计算技术,对交互的标签、特征、梯度等数据进行等密码学处理,保证密文接收方或外部第三方无法恢复明文,直接基于密文进行计算并获得正确的计算结果,从而达到各参与方无需共享数据资源即可实现联合构建营销模型,从而进行精准营销。

在高价值用户识别中,可以利用隐私计算技术,通过联合统计、隐匿查询等方式将内部和外部数据进行安全融合,打通多方数据孤岛,利用外部数据更精准的对用户客群进行分类,识别高价值用户,制定更精准的营销策略。

银行机构利用隐私计算技术,可对运营商、政务、征信等数据实现应用场景所需的价值融合,从而为用户提供聚合金融服务。保险公司将用户基本信息、购买保险、出险赔付和电商、航旅等其他合作方的消费、出行、行为偏好等数据进行安全融合。通过匿踪查询技术可信地获取客户的黑名单、消费能力、画像标签等信息,用于识别消费者的潜在风险等应用。电信运营商通过融合金融机构数据在共有的用户群中找到对理财产品、保险产品感兴趣的用户群,筛选找到更精准的目标用户进行营销,提升交叉销售效果,获取更多的新客。互联网公司利用自身拥有的大量用户行为信息和基础画像数据,与广告数据方拥有的深度转化链路数据(如付费信息)进行安全求交,并通过多方安全计算或联邦学习技术联合训练、建模、优化广告模型效果。在游戏、金融、教育、电商行业的广告应用案例中都能提升广告投放效果和用户体验。

二、联合风控

联合风控是隐私计算在金融领域的一个重要应用场景。一般而言,用户在本机构的金融业务数据难以满足金融风控的需求,但由于不同机构间数据分散、数据保护等原因,金融机构之间、金融机构与其他行业机构之间的数据融合壁垒较高,“数据孤岛”现象严重,提升了金融机构的风险识别难度,难以降低融资成本。

利用隐私计算技术,可以实现跨机构间数据价值的联合挖掘,更好地分析客户的综合情况,交叉验证交易真实性等业务背景,降低欺诈风险,从而综合提升风控能力。

在构建风控模型时,一方面可通过融合多个金融机构数据,解决单个金融机构样本量有限的问题,形成在相关场景中的全局认知,提升模型精准度;另一方面,可以综合利用金融机构同其他行业数据,在各方原始特征不出域的前提下建立风控模型,形成对业务的多维度认识,提升风控质量。

在信息核验时,可通过隐私计算实现多方黑名单数据共享,对电诈、洗钱、骗贷等行为的黑名单用户进行匿踪识别,数据方不能获知查询的具体内容,提升客户背景调查的安全可信程度。

三、智慧医疗

在智慧医疗领域,医学研究、基因分析等工作非常依赖大量数据的积累,然而,医疗相关机构的这些数据割裂,分散在不同机构及业务系统内,机构间的数据难以互通互联,严重制约了临床科研成果的产出。

利用隐私计算技术,可实现在数据隐私保护下医学数据安全统计分析和医学模拟仿真和预判,从而进行跨机构的精准防疫、基因分析、临床医学研究等应用。

在疫情防控中,通过隐私计算保障个人数据的安全性,对高危人群进行筛选疫情传播仿真分析,通过防控筛查模型精准筛查高风险易感人群,构建潜在传染的关系网,结合病患信息,快速追溯传染路径方向和传播源。

在基因分析中,要依赖大量隐私数据,可利用隐私计算技术在原始基因数据不出库的基础上,实现基因数据的安全共享,进行全基因组的联合计算及关联分析等,在隐私保护的前提下挖掘多样的基因资源。

在临床医学研究中,在数据不出本地的情况下,可以实现分布式的统计分析算法,对数据进行联合建模、分析,从而获得临床科研的成果,例如临床研究可行性分析、大样本量队列研究、疾病预测模型、药物市场洞察等。应用隐私计算,可大幅提升医疗研究效率,加速科研成果转化。

四、电子政务

隐私计算技术为政务数据的开放提供了有效解决方案。在企业自有数据、第三方数据或政府共享数据都需要保护且不能离开本地节点的场景下,基于隐私计算进行数据安全利用。

在政务数据共享上,政务公共数据分布在各部门,通过隐私计算技术搭建政务公共数据密文开放共享交换平台,打通跨域数据的应用价值链,使得数据基于业务应用需要在各业务条线之间,安全地共享和流通,实现数据安全共享融合而不泄密。

在政务数据开放上,政府机构建设保护各方隐私安全的公共数据开放平台,使用隐私计算技术融合政府数据和社会、企业数据进行安全计算,联合统计,联合建模,实现数据融合价值,可以广泛应用在信用评估、服务选址、健康医疗、家政服务、旅游投资、营销设计等众多领域,让政府部门掌握的数据在安全保护前提下,最大限度造福社会。

(隐私计算联盟《隐私计算白皮书(2021年)》)

三 多方安全计算

亿万富翁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取十个一模一样的盒子,按110的顺序排好,但是不能做记号,代表110亿,按照自己的资产规模分别往里面放入黑桃,红心和方块花色的扑克牌(扑克牌都用A)。

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

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

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

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

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

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

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

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


流程介绍:区块链中的数学 - 不经意传输 | 登链社区 | 深入浅出区块链技术

  1. 发送者A生成两对rsa公私钥()(,,公开两个公钥、。
  2. B生成随机数r,并用两个公钥之一加密随机数.
    例如如果想要得到消息m0​就用pk0​加密随机数,如果想要得到m1​就用pk1​加密随机数,c = Encrypt®,并将密文c发送给A。
  3. A用自己的两个私钥分别解密收到随机数密文,得到两个解密结果:
    k0​=Decrypt(c,x0​)
    k1​=Decrypt(c,x1​)
    并将两个结果分别与两条信息进行异或,生成掩码消息
    e0​=k0​⨁m0​
    e1​=k1​⨁m1​
    并将两个结果e0​,e1​发给B。
  4. B用之前生成的随机数r与收到的e0​,e1​分别做异或 *** 作,得到的两个结果中只有一条为真实数据,另外一条为随机数。
    m0′​=e0​⨁r
    m1′​=e1​⨁r
    B在步骤2中,如果使用pk0​加密,得到m0′​=m0​的反之是m1​

该协议的安全性在于步骤3中,A无法知晓B的随机r, 从而对b的最终选择也就无从知晓。

同理,1 out n多选一不经意传输也可基于类似原理实现,只需要将2换成n秘钥。

可能大家大致理解了不经意传输的意思了,但是它有啥用呢?

它是混淆电路背后的密码学思想:不经意传输(Oblivious Transfer,OT)

混淆电路是一种密码学协议。遵照这个协议,两个 party 能在互相不知晓对方数据的情况下计算某一函数。混淆电路要求这一函数能被逻辑电路表示。所以如何将要求函数转化为一个逻辑电路是关键的一步。

逻辑电路

混淆电路

在混淆电路介绍(一)中,我们介绍了混淆电路(Garbled Circuits,GC)背后依赖的密码学思想:不经意传输(Oblivious Transfer,OT)。在混淆电路介绍(二)中,我们成功地将一个比较大小的函数转化成了一个逻辑电路。在这篇文章中,我们将基于以上两篇文章,详细介绍 GC 协议的原理。

首先我们回顾一下定义。混淆电路是一种密码学协议。遵照这个协议,两个 party 能在互相不知晓对方数据的情况下计算某一能被逻辑电路表示的函数。以著名的 Yao’s Millionaires’ Problem 为例,两个富翁 Alex 和 Bob 想在不知道对方财富值的情况下计算谁的财富值更高。比如 Alex 的财富值是 15,Bob 的财富值是 11。通过 GC,Alex 和 Bob 都知道了 Alex 更富有,但是 Alex 和 Bob 都不知道对方的财富值。

在混淆电路介绍(二)中,我们已将比大小的函数转化为逻辑电路。结合不经意传输即可实现混淆电路

Alice和Bob想计算一个与门。该门两个输入线 x 和 y 和一个输出线z ,每条线有0和1两个可能的值。Alice首先给每条线指定两个随机的key,分别对应0和1。

然后,Alice用这些密钥加密真值表,并将该表打乱后发送给Bob。加密过程就是将真值表中每一行对应的x和 y 的密钥加密 z的密钥。这一加密+打乱的过程(打乱就是为了不让还原出来),就是混淆电路(garbled circuit)的核心思想。

Bob 通过不经意传输 获取k0y 和 k1y 的值, 然后Bob收到Alice的输入k0x或者k1x值,在Bob的本地Bob根据自己输入的key选择对应的k0y或者k1y的值,然后根据Bob本地计算出加密表的一行数据,得到Kz。由于计算都在Bob侧的本地,Alice根本不知道Bob的信息。

之后Bob将kz的值发送给Alice,Alice通过真值表得到真实的Z值

Alice通过广播机制将真实的Z值,传输给Bob,这样两端都知道最终的结果了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/787767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存