安全多方计算与同态加密初探

一、安全多方计算

隐私计算、多方安全计算、联邦学习等技术变得炙热大火,然而这些技术要求具有扎实的数学功底,涉及面又太碎、太深,易形不成体系。本文旨在讲清脉络,并尝试引向纵深。

隐私计算是“隐私保护计算”(Privacy-Preserving Computation)的中文简称,没有统一的标准定义。大数据联合国全球工作组定义:隐私计算是一类技术方案,在处理和分析计算数据的过程中能保持数据不透明、不泄露、无法被计算方法以及其他非授权方获取。

隐私计算的主要作用:对消费者而言,隐私计算应用有助于保障个人信息安全;对企业和机构而言,隐私计算是数据协作过程中履行数据保护义务的关键路径;对政府而言,隐私计算是实现数据价值和社会福利最大化的重要支撑。

隐私计算使企业在数据合规要求前提下,能够充分调动数据资源拥有方、使用方、运营方、监管方各方主体积极性,实现数据资源海量汇聚、交易和流通,从而盘活第三方机构数据资源价值,促进数据要素的市场化配置,在《国家数据安全法》颁布的当下,隐私计算更凸显价值。

隐私计算实现了“数据可用不可见”,集众多技术流派,大致这样分类:

  • 安全多方计算MPC,联合统计,联合查询,联合自定义计算,抗恶意攻击等;
  • 可信执行环境TEE,提供硬件隔离技术构建安全可信区域的技术;
  • 联邦学习FL,提供联合统计,联合特征工程,联合建模与预测等隐私保护;
  • 区块链,分布式身份,授权管理,跨域治理,可信数据源,审计存证,密文交叉验证
  • 差分隐私,提供数据结果的隐私保护

注:最后一项差分隐私,有些期刊没有单列出来,不过实现效果还是可以。

安全多方计算(Secure Multi-party Computation, MPC):是一种基于多方数据协同完成计算目标,实现除计算结果及其可推导出的信息之外,不泄漏各方隐私数据的密码技术。

安全多方计算不是指某一单独协议, 而是一些关键技术的集合,常采用技术有:

  • 混淆电路;
  • 秘密分享;场景多,比较流行
  • 同态加密;场景多,比较流行
  • 不经意传输,常用于隐私求交
  • 零知识证明,常用于结果验证

以MPC技术为核心构建的隐私计算产品,往往称为MPC平台,参考框架如图一所示。MPC平台是以密码为核心的隐私安全产品,合规是其最基本的要求,因此它应当遵循相关法律法规,并满足系列标准要求。

MPC技术平台支持两种技术架构:

  • 其一是MPC直接贯通平台的方式:首先采用MPC协议、MPC编译器、MPC应用适配构建MPC运算模块;其次通过MPC运算模块支撑上层的通用运算和机器学习运算;最后实现隐私求交、隐私统计和联合建模等隐私计算功能。
  • 其二是以MPC增强FL的方式构建平台:首先在底层构建FL运算模块,并使用MPC对其进行安全增强;其次通过FL运算模块支撑上层的机器学习算法;最后实现机器学习类的隐私计算功能。

扫描二维码关注公众号,回复: 17336700 查看本文章

图一:MPC平台体系框架

1.1 安全模型Security Model

安全模型:即对参与方行为模式所做的假设。

学术界在构造密码学算法时,引入了一系列安全假设,只有当这些安全假设都成真时,对应的密码学算法才安全。类似地,由多个密码学算法构成的密码学协议,由于加入更多的交互方,需要引入更多的安全假设。

对于一个密码学协议,其所需的所有安全假设,及对应假设下的安全性要求的集合,称之为安全模型。

安全多方计算协议在执行过程中可能会受到来自外部或者内部敌手的攻击,因此,安全多方计算的安全模型中定义了一个可以控制腐化的(Corrupted)参与方子集的敌手,以涵盖外部攻击、内部攻击以及各类合谋攻击的场景。在安全多方计算中,常用的敌手行为模型有半诚实行为模型(Semi-honest model)和恶意行为模型(Malicious model)。在半诚实行为模型中,假设敌手会诚实地参与安全多方计算的具体协议,遵照协议的每一步进行,只是想通过从协议执行过程中获取的内容来推测他方的隐私;而在恶意行为模型中,敌手可以不遵循协议,采取任意的行为获取他方的隐私。

安全多方计算的安全性是通过一种理想世界/现实世界的模型来定义的。在该模型中,首先定义了一个存在可信第三方的理想世界。每个参与方将各自的秘密数据通过安全信道提供给可信第三方,由第三方在联合的数据上进行函数的计算。在完成计算后,可信第三方把输出发给各个参与方。与理想世界相对应的是现实世界。现实世界中不存在可信的第三方,各参与方通过直接和对方交互执行协议来实现在联合数据上的函数计算。如果任何现实世界中的攻击都可以在理想世界中被模拟,那么我们说这个多方计算协议是安全的。具体来说,对于现实世界中的任意一个敌手,在理想世界中均存在一个敌手,其在理想世界执行中的输入/输出联合分布与现实世界执行中敌手的输入/输出联合分布计算不可区分。

1.1.1 半诚实敌手模型

Semi-honest模型,计算方存在获取其他计算方原始数据的需求,但仍按照计算协议执行。半诚实关系即参与方之间有一定的信任关系,适合机构之间的数据计算;一个半诚实成员完全遵守协议的执行过程,中途不退出协议的执行过程,也不篡改协议运行结果,但其可以保留执行协议过程中的一些中间结果,并通过这些中间结果试图分析推导其他成员的输入数据。

1.1.2 恶意敌手模型

Malicious model模型,参与方根本就不按照计算协议执行计算过程,能够随意中断协议的运行,破坏协议的正常执行过程,也能随意修改协议的中间结果或者与其他参与方相互勾结。参与方可采用任何(恶意)方式与对方通信,且没有任何信任关系。结果可能是协议执行不成功,双方得不到任何数据;或者协议执行成功,双方仅知道计算结果。更多适用于个人之间、或者个人与机构之间的数据计算。

1.1.3 安全两方计算

所使用的协议为Garbled Circuit(混淆电路GC)+Oblivious Transfer(不经意传输OT);

GC+ OT是在两方Semi-honest模型下的通用型算法,可以支持任意计算逻辑的安全两方计算。

1.1.4 安全多方计算

所使用的协议为:同态加密+秘密分享+OT(+承诺方案+零知识证明等)。主要构造技术有:Yao's GC(混淆电路),即姚期智院士开创的基于混淆电路系列。

  • SPDZ(算数电路),即Ivan Damgard开创的基于秘密共享和有限同态加密系列。
  • GMW(布尔电路),boolean sharings的开创论文。
  • ABY(包含了算数、布尔和混淆电路的share转换),包含了ABY和ABY3。
  • MHE,基于FHE全同态加密系列。

安全多方计算已经有通用的理论解决方案,能够支持任意类型的计算。常见的通用安全多方计算理论框架主要有混淆电路、秘密共享、同态加密、零知识证明等几种。

大家不妨先看MPC最近的综述文档,如果有兴趣,推荐后面两本书,各有侧重。

  • Secure Multiparty Computation (MPC)2020-Yehuda Lindell.
  • A Pragmatic Introduction to Secure Multi-Party Computation.
  • Applications of Secure Multiparty Computation.

1.2 混淆电路

混淆电路是一种密码学协议,由姚期智院士在80年代针对安全计算所提出的概念。其效果就是,当几个通信方需要一起输入某些数据,然后通过同一个函数计算出一个结果。但是通信的各方都不希望其他人知道自己的输入是什么,此时利用混淆电路协议即可完成目的。

基于混淆电路的框架,在该框架下,任意功能的函数均被表示为一个由与门(AND gate)和异或门(XOR gate)组成的逻辑电路,协议的参与方由生成方(generator)和计算方(evaluator)组成。一个门电路其实就是一个真值表,对于每一个门电路的真值表,生成方首先对每一个输入/输出线上的真值产生一个随机数。这样一来,每一个输入/输出线上的真值就与一个随机数相对应。然后,生成方对于每一个输出线上的真值所对应的随机数,使用相应输入线上的真值所对应的两个随机数对其进行加密。在完成这些加密操作后,生成方对产生的所有密文进行随机置乱,产生一个混淆的,或者说加密的真值表,将其连同对应自己输入的随机数发给计算方。计算方需要从生成方安全地取得对应自己输入的随机数,这可以通过不经意传输协议进行。在得到自己输入的随机数和生成方输入的随机数后,计算方对混淆真值表进行解密,得到唯一正确的、与输出真值相对应的随机数。当到达最后一个门电路时,计算方只需要查询电路输出线的随机数和真值的对应关系表,就可以得到整个函数计算的输出值。

1.2.1 不经意传输

混淆电路(Garbled Circuits,GC)背后依赖的密码学思想:不经意传输(Oblivious Transfer,OT)。

不经意传输(OT)是指假设A有两个值 �1,�2 ,B想获得其中一个值,但是B注重隐私,不想让A知道他选择了哪个值。因此,可以通过OT协议保证B只获取了其中一个值,但是A不知道他获取的那一个。这属于最基本的OT协议,也称为1-out-of-2 OT协议,顾名思义为2个中选1个。

另外,还有1-out-of-n OT协议,也称为n个中选1个。以及m-out-of-n OT协议,也成为n个中选m个。

也可定义为:当执行1-out-of-2 OT协议时,发送方有一对消息( �0 , �1 )。接收方有一个选择比特b,通过OT协议后,接收方收到b对应的元素 �� ,但是不知道 �1−� 的值,而发送方不知道接收方具体接收到了那个消息。如下图所示。

1.2.2 逻辑电路

可以推广到任意门。

1.2.3 混淆电路

混淆电路协议分为以下几个部分。

  • Step 1: Alice 生成混淆电路,生成过程主要分四步;
  • Step 2: Alice 和 Bob 进行通信,Bob通过OT协议获得Alice值;
  • Step 3: Bob evaluate 评估(解密)生成的混淆电路;
  • Step 4: 分享结果,获得电路输出的逻辑值。

如下图所示:

具体详细解释如下:

对于基本的电路,真值表如下:

然后给每一种输入输出对应一种密钥,可以理解为是一种映射,将原来的0/1输入输出对应到一个其他的标签(可以是整数、字符串等)上。

真正发送过去的真值表还要再经过一个加密和一次混淆(也就是行换位置)

混淆电路的解密

Bob在接收到混淆电路后开始解密。Alice发送混淆电路的过程中也将Alice输入对应的密钥发送给Bob(Bob此时并不会发现Alice的真实输入是什么)。同时Alice也把Bob可以选择的输入对应的密钥都发给了Bob,此时需要运行不经意传输协议,可以使得Bob从所有可能输入对应的密钥中选择自己输入对应的密钥,且不会让Alice知道Bob的选择。Bob得到密钥后对混淆电路真值表进行解密即可得到混淆电路的输出。

1.3 同态加密Homomorphic Encryption, HE

1.3.1 什么是同态加密

同态加密关注的是数据处理安全,其提供了一种对加密过的数据进行处理的功能,也就是可以对加密后的数据进行处理,拥有密钥的用户对处理过的数据进行解密后,得到处理后的结果与对明文数据处理的结果一致。(而一般的加密方案关注的都是数据存储安全,即用户是不能对加密结果做任何操作的,否则将会导致错误的解密,甚至解密失败

同态加密是为云计算而量身打造:用户想要处理一个数据,但是他的计算机计算能力较弱。这个用户可以使用云计算的概念,让云来帮助他处理得到结果。但是直接将数据交给云,无法保证安全性,所以使用同态加密,让云来对加密后的数据进行处理,然后将处理结果返回用户。

如果一个加密函数同时满足加法同态和乘法同态,称为全同态加密(Fully Homomorphic Encryption,FHE)。目前可以构造全同态加密的密码学假设主要有理想格上的理想陪集问题(Ideal Coset Problem, ICP)、整数上的近似最大公因子问题(Approximate Greatest Common Devisior, AGCD)、错误学习问题(Learning with Errors, LWE)等等。由于LWE问题尚无有效的量子求解算法, 因此基于LWE假设的加密方案被认为是抗量子的。

全同态加密方案是一种允许对加密数据进行任意复杂程序评估的加密方案。

错误学习问题(Learning with Errors, LWE),也有人翻译为容错学习问题就是求解带噪声的线性方程组问题。2009年,Craig Regev首次构造出全同态加密方案(被誉为“密码学圣杯”),他因此荣获2018年哥德尔奖。

Craig Gentry对同态加密给出的直观定义:

A way to delegate processing of your data, without giving away access to it.

一种委托处理数据的方式,而不放弃对数据的访问权。

1.3.2 同态加密过程定义

Alice通过云Cloud,以同态加密HE处理数据的整个处理过程大致是这样的:

  • Alice对数据进行加密。并把加密后的数据发送给Cloud;
  • Alice向Cloud提交数据的处理方法,这里用函数f来表示;
  • Cloud在函数f下对数据进行处理,并且将处理后的结果发送给Alice;
  • Alice对数据进行解密,得到结果。

据此,我们可以很直观的得到一个HE方案应该拥有的函数:

  1. KeyGen函数:密钥生成函数。这个函数应该由Alice运行,用于产生加密数据Data所用的密钥Key。当然了,应该还有一些公开常数PP(Public Parameter);
  2. Encrypt函数:加密函数。这个函数也应该由Alice运行,用Key对用户数据Data进行加密,得到密文CT(Ciphertext);
  3. Evaluate函数:评估函数。这个函数由Cloud运行,在用户给定的数据处理方法f下,对密文进行操作,使得结果相当于用户用密钥Key对f(Data)进行加密。
  4. Decrypt函数:解密函数。这个函数由Alice运行,用于得到Cloud处理的结果f(Data)

1.3.3 密码学安全性定义

HE方案的最基本安全性是语义安全性(Semantic Security)。直观地说,就是密文(Ciphertext)不泄露明文(Plaintext)中的任意信息。

当然还有更强的安全性定义,叫做选择密文安全性(Chosen Ciphertext Security)。选择密文安全性分为非适应性(None-Adaptively)和适应性(Adaptively),也就是CCA1和CCA2。

本节内容待确认。

1.3.4 同态加密学习顺序

个人实战学习经历,拜读的文章顺序如下:

  1. Paper 1:BV11:Efficient Fully Homomorphic Encryption from (Standard) LWE.
  2. Paper 2:The Learning with Errors Problem.
  3. Paper 3:BGV12:(Leveled) fully homomorphic encryption without bootstrapping.
  4. Paper 4:Bra12: Fully Homomorphic Encryption without Modulus Switching from Classical GapSVP.
  5. Paper 5:GSW13:Homomorphic Encryption from Learning with Errors: Conceptually-Simpler, Asymptotically-Faster, Attribute-Based.
  6. Paper 6:CKKS17: Homomorphic encryption for arithmetic of approximate numbers.
  7. Paper 7:CHIMERA: Combining Ring-LWE-based Fully Homomorphic Encryption Schemes.
  8. Paper 8:PEGASUS: Bridging Polynomial and Non-polynomial Evaluations in Homomorphic Encryption.

同态加密技术专栏

Aigraphx:同态加密(一)-基于标准LWE的高效全同态加密1(Efficient Fully Homomorphic Encryption from (Standard) LWE)46 赞同 · 7 评论文章​编辑

1.4 秘密共享

秘密共享的思想是将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密消息。更重要的是,当其中任何相应范围内参与者出问题时,秘密仍可以完整恢复。

秘密共享是一种将秘密分割存储的密码技术,目的是阻止秘密过于集中,以达到分散风险和容忍入侵的目的,是信息安全和数据保密中的重要手段。

秘密共享的关键是怎样更好的设计秘密拆分方式和恢复方式。秘密共享由两个算法——秘密份额的分配算法和秘密的恢复算法构成。在执行秘密份额的分配算法时,分发者将秘密分割成若干份额在一组参与者中进行分配,使得每个参与者都得到关于该秘密的一个秘密份额;秘密的恢复算法保证只有参与者的一些特定的子集才能有效的恢复秘密,其他子集不能有效地恢复秘密,甚至得不到关于秘密任何有用信息。

多方安全计算秘密共享过程如下:

  • 数据拆分->数据分发->数据计算->得到计算结果->汇总计算结果。
  • 密钥分享保证了计算过程中各个参与方看到的都是一些随机数,但最后仍然算出了想要的结果。

譬如计算平均工资问题:A、B、C、D 如果在不暴露自己工资的情况下,求得四人的平均工资?

  • 1,A生成一个随机数,将其与自己的工资相加,用B的公钥加密发送给B
  • 2,B用自己的私钥解密,加进自己的工资,然后用C的公钥加密发送给C
  • 3,C用自己的私钥解密,加进自己的工资,然后用D的公钥加密发送给D
  • 4,D用自己的私钥解密,加进自己的工资,然后用A的公钥加密发送给A
  • 5,A用自己的私钥解密,减去原来的随机数得到工资总和
  • 6,A将工资总和除以人数得到平均工资,宣布结果

基于秘密共享的框架,在该框架下,任意功能的函数亦被表示为由与门和异或门组成的逻辑电路。与混淆电路框架不同的是,每个运算门的输入和输出都以秘密共享的方式分享给每个参与方。由于秘密共享的算术性质,异或门的安全计算能在每个参与方本地直接进行,而不需要进行两两交互。对于与门的安全计算,则需要参与方之间进行交互。这里的交互一般是基于Beaver的乘法三元组(Beaver' s multiplication triplet)进行。乘法三元组与输入无关,可以在一个离线的阶段由每个参与方之间运行密码学协议(比如不经意传输协议)产生或者由一个专门的第三方产生。此外,除了将函数表示成一个逻辑电路,另一种方式是将其表示为一个由乘法门和加法门组成的算术电路。加法门的安全计算可以在每个参与方本地完成,而乘法门的安全计算则需要参与方之间进行交互。秘密共享方案有Shamir 秘密共享方案 和Feldman可验证的秘密共享方案。基于秘密共享的安全多方计算框架由于只需要进行简单的算术运算,所以计算速度相对较快,但也存在局限性:

  • 由于每一个异或门/乘法门的安全计算都需要参与方之间进行交互,参与方之间的交互次数不是固定的,而是与整个计算的复杂性有关;
  • 第二,由于参与方之间需要进行两两交互,而且即使简单的函数也会表示成复杂的逻辑/算术电路,因此会导致较大的通信开销;
  • 第三,当参与方的数目很大时,难以保证各参与方之间的两两交互能够达到完美的同步,而且在整个计算过程中,要求所有参与方都必须保持在线,这在现实中也可能难以保证,比如对于资源受限、网络情况可能不稳定的移动用户。

1.5 零知识证明

1.5.1 概念

零知识证明 zero-knowledge proofs,简写为 ZKPs,最初由 S.Goldwasser、S.Micali 及 C.Rackoff 在 1985 年的论文《互动证明系统的知识复杂性》提出,指的是证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。

1.5.2 零知识证明过程

隐私计算专栏-零知识证明

Aigraphx:零知识证明 zero-knowledge proofs,ZKPs经典实现22 赞同 · 1 评论文章​编辑

二、隐私计算主要技术对比

三、面向应用的安全多方计算技术

3.1 通过MPC确保机器学习的安全

机器学习通常被认为是大数据系统中最重要的工具,因为它能够有效地挖掘隐藏在大量数据中的有价值的知识。然而,即使在使用多GPU加速的情况下,用深度学习技术来训练图像处理算法仍然需要数个小时甚至几天的时间。因此,许多云服务提供商提供机器学习服务,例如阿里、Azure机器学习和谷歌云机器学习引擎。使用这些平台,用户可以把他们的机器学习任务外包给云,然而,因为安全和隐私方面的担忧,他们不愿意向云披露他们的数据。因此,隐私和安全已成为外包学习任务的热点问题。

3.1.1 多数据源的隐私保护机器学习

在这个场景,数据是从不同用户收集的。例如,智能穿戴设备可能会从佩戴者那里收集数据,并且把这些数据上传给一个数据中心。另外一个应用的例子是,用户为了从服务提供商获得基于位置的服务,会把位置信息上传到云上。出于隐私方面的考虑,一些用户不希望他们的敏感数据泄露给云。因此,具有挑战性的问题出现了,即如何在保护每个用户敏感数据的同时,确保基于机器学习的服务可以为所有用户提供。迄今为止,已经提出了从分布式的数据源进行私密学习的两种技术方案。一种是基于随机化,例如使用差分隐私,在原数据上加入噪声。另外一种通过MPC构造的。对于后者,通用的方法是首先设计一个数据聚合方案,将使用不同密钥加密的数据聚合到一个整合的数据集中。此外,目前也有许多针对多数据源的特定隐私保护机器学习任务的研究工作。例如构造一种隐私保护的朴素贝叶斯分类方法。

3.1.2 在两方情况下保护数据和训练好的模型

在这个场景中,一个云服务器(称作Bob)拥有一个数据集并通过一个特定的机器学习算法训练一个模型,Bob希望不把这么模型泄露给其它实体。用户(称作Alice)希望基于他自己的数据得到定制化的服务,但是他不想私有数据被泄露。这种情况适用于经典MPC协议的应用:Alice输入她的私有数据,Bob输入模型。协议执行的最后,Bob不知道Alice的数据,Alice不知道Bob的模型。

3.2 隐私集合计算

集合计算是MPC中常用的基本运算。它们是隐私保护的数据查询和数据挖掘等任务的基本工具。Freedman等首先研究了两方集合求交,并提出了一个基于Paillier同态加密系统的协议。该协议在标准模型中实现了对半诚实敌手的安全性,并在随机oracle(RO)模型中抵抗了恶意方。Freedman等工作引入了隐私集合计算的研究方向,他们所使用的工具成为了后续研究工作的基础。 一个研究方向是扩大集合运算的范围,然而另外一个研究方向是在在一个更强的安全模型或更简单加密假设下设计隐私集合交集(PSI)协议。为了在不引入低效的零知识证明的情况下设计一个抵抗恶意敌手的PSI协议,Hazay和Lindell提出使用不经意伪随机函数评估(OPRF)来解决集合求交和模式匹配问题。对于完全恶意安全模型,基于其它范式的PSI协议有不同的方法。 主要有五种不同的技术来构造高效的PSI协议,包括朴素解决方案、基于三方的PSI、基于公钥的PSI、基于电路的PSI、基于OT的PSI。最近,越来越多基于OT的PSI的研究工作出现了。Dong等提出了一个基于OT扩展和Bloom过滤器的PSI协议。Pinkas等人使用随机混淆Bloom过滤器协议优化了Dong等人的工作,这个协议是基于随机OT扩展,在半诚实模型中实现了安全性。Rindal和Rosulek在其中描述了PSI的一个廉价协议范式,以实现弱恶意安全性。随后,Rindal和Rosule试图扩展PSI协议,使其在存在恶意对手时安全,并表明基于Bloom过滤器的协议对抵抗恶意对手并不安全。

3.3 基于云服务器辅助的大规模安全多方计算

在云计算时代,一些新的安全问题已经引入或重新出现,如可搜索加密、不经意 RAM、可验证计算和安全重复数据删除。这些问题也可以抽象为 MPC 功能,并可以通过 MPC 协议解决。因此,在云计算环境下为 MPC 提供全面实用的方案至关重要。主要分基于混淆电路和同态加密的云辅助 MPC。

3.3.1 基于混淆电路的云辅助 MPC

在基于混淆电路的 S2PC 中,一方是电路发生器,另一方是电路评估器。在云辅助模型中,混淆电路的生成和评估都可以外包给云服务器。将自己的计算任务外包出去的一方称为外包方,其他方称为非外包方。

在这样的外包环境中,期望设计具有线性复杂度的 MPC 协议,这意味着外包方的计算和通信成本随着其输入和输出的大小而线性增加。为了达到这种复杂程度,非共谋假设是必要的。尽管非共谋模型的安全性弱于 MPC 标准恶意模型,但非共谋模型有时更可取,因为它支持广泛的应用。

Kamara 等人的开创性工作,提出了两个安全的 single-server-aided S2PC 协议,其中电路评估任务外包给云。后来 Carter 等人考虑对手机等限电设备外包安全功能评估。与Kamara 中提出的协议相反,在Kamara中,双方被假设具有低计算能力但高带宽,而 Carter中提出的工作考虑了一种场景,其中双方,一个具有低带宽的移动设备和一个应用服务器,想要在云服务器的帮助下运行S2PC协议。在此提议的协议中,移动设备将电路评估所需的复杂计算外包给云服务器。在Carter中,引入了一种称为外包不经意传输的原语,它允许移动设备将混淆密钥传输任务委托给云服务器。Mood 等人主要考虑了在云中重用加密值的云辅助协议。这些作者提出了 PartialGC 的概念,它允许在混淆电路计算期间生成的加密值被重用。

除了电路评估任务,电路生成任务也可以外包给云服务器。Carter 等人将移动设备视为混淆电路生成器,并成功地将混淆电路的生成安全地外包给不可信的云服务器。

上述工作考虑了 single-server-aided 模型中的外包协议。相比之下,Kerschbaum提出了一种方案,将混淆电路的生成外包给多个服务器,分为加密服务器和评估服务器。这两种类型的服务器分别负责加密和评估混淆电路。该协议实现了三种类型的不经意:输入输出不经意、函数不经意和外包不经意。

3.3.2 基于同态加密的云辅助 MPC

同态加密可以自然地与云计算相结合,构建云辅助的 MPC 协议。基本思路如下。为了执行计算任务,所有参与方用 FHE 方案加密他们的数据,并将生成的密文上传到云中。然后,云对这些密文执行计算,并返回结果密文。所实现的数据隐私取决于潜在的 FHE 方案的安全性。然而,任何参与方都不应直接拥有FHE方案的秘钥。因此,问题变成了一方如何解密计算结果。

Asharov 等人通过在所有参与方之间共享密钥来解决这个问题。他们基于门限 FHE 方案构建了一个云辅助的 MPC 协议。在这种情况下,在每次计算过程中,所有参与者都需要生成系统的参数,包括私钥、公钥和评估密钥。然而,在实践中,当参与这样的协议时,参与者更喜欢提前生成他们自己的长期参数。因此,López-Alt 等人提出了一个动态多方计算模型。在他们的模型中,所有参与者都有自己的长期公/私钥对,并且所使用的 MPC 协议可以通过多密钥 FHE 方案来构建。

上述工程的效取决于基础 FHE 方案的效率。为了提高协议效率,Peter 等人提出了一种新的实用协议,该协议仅基于加法同态加密方案。他们使用了一种特殊类型的加法同态加密,称为 BCP 加密方案,其中有一个主密钥,可以用来解密用任何公钥加密的密文。此外,这些作者假设存在两个非共谋的云服务器:一个存储底层加密方案的主密钥,另一个存储所有用户生成的密文。这两个服务器在所有相关用户上传数据后交互执行必要的计算。

基于 FHE 的云辅助 MPC 框架比基于混淆电路的框架简单。

然而,遵循这种方法的实现的实用性依赖于 FHE 方案的效率,并且不幸的是,如何构造实际的 FHE 方案的问题仍然是一个未解决的问题。然而,如果目标不是为了构建通用协议,对于某些特定的功能,实现只需要某种程度上的同态加密方案,并且仍然可以制定实用的协议。

基于混淆电路的云辅助 MPC 协议的构建不需要使用低效的公钥密码工具。然而,这样的协议仍然有两个缺点。首先,基于混淆电路的云辅助 MPC 协议只能在非共谋的假设下实现安全性,而基于同态加密方案实现的安全性即使在任意腐败方共谋时也成立。然后,当执行基于混淆电路的协议时,至少一个用户(不是云服务器)必须执行其开销与电路的电路大小成线性关系的计算,而对于基于同态加密的协议,云服务器之外的任何参与方的开销仅取决于该参与方的输入/输出的长度,从而最小化参与者的本地计算和通信成本。

3.4 附:安全多方计算:理论、实践与应用解读

六三:安全多方计算:理论、实践与应用128 赞同 · 16 评论文章​编辑

四、同态加密与安全多方计算

4.1 全同态算法(FHE)

  • 部分同态加密(PHE)可以用来辅助MPC,这个可以在SPDZ或者ABY中脱离独立的第三方来产生辅助计算用的乘法三元组。
  • 部分同态加密算法(partial homomorphic encryption)可以用来构建malicious model下MPC最基本的构件:不经意传输(oblivious transfer)。
  • 部分同态算法可以与MPC一起来完成保护隐私的神经网络训练。
  • 个人的总体感觉是,在“没有独立第三方”这一前提下,PHE应该是MPC不可缺少的基础。另外在带宽大(比同样功能的MPC大),时延要求低的情况下,FHE用来做外包计算时,需要维护的系统状态比MPC少很多。

4.2 同态加密是更底层的密码学原语,应用在非常多领域的基础构建中

4.2.1 区块链

为了保护链上信息的隐私性,同时又能实现区块链节点对相关信息的可计算性,可对数据进行同态加密,并将计算过程转化为同态运算过程,节点即可在无需获知明文数据的情况下实现密文计算。

4.2.2 外包计算

在传统的外包计算(如云存储与计算解决方案)中,用户需要信任云服务提供商不会窃取甚至泄露用户数据,而基于同态加密的云计算模型可在根本上解决这一矛盾。

4.2.3 联邦学习

联邦学习中,同态加密主要用于联合建模过程中的参数交互计算过程,实现预测模型的联合确立。目前,在联邦学习场景中使用较多同态加密算法为Paillier加法半同态加密算法。

以上联邦学习和区块链都是比较新的应用领域。外包计算是一直以来云计算服务商推崇的应用领域。其实从以上三个领域便可以看出,同态加密是比较偏下的。这种偏下的好处带来的就是,能够基于它构造安全多方计算。比如,在SPDZ中使用SHE生成乘法三元组,再比如,直接使用FHE构造PSI(也是安全多方计算的一个应用)。

4.2.4 安全多方计算与同态加密

MPC是一组安全计算协议,里面有多个子协议构成。它是一种概念,目的是能够实现分布式安全计算,即多方在不泄露自己数据隐私的情况下,合作计算目标函数。在概念上,MPC和HE就不是可替代的。MPC研究的是在多方下安全计算,而同态加密研究的是在密文上如何进行计算。现在,已经有非常多的多密钥同态加密研究成果,它们属于同态加密的研究成果,亦属于安全多方计算的研究成果。

根据以上,不能简单的说同态加密是否有可替代的优势。在现实应用场景中,如果是多中心或多节点计算,我们首先考虑的是数据的隐私性问题,是否存在数据无法出各自安全域的情况。如果是,则首先考虑安全多方计算,在合作计算过程中,如果有一些计算是需要外包出去,则就要考虑同态加密,比如在联邦学习中,参数交互后,供后面使用,这也可以看成一个典型的外包例子,所以使用Paillier来解决了此问题。

4.3 同态加密和安全多方计算各有优劣

同态加密不需要交互(或者需要很少的交互),所以通信开销比较小,但是相应的计算开销比较大。MPC正好相反,因为需要比较多的交互,所以通信开销比较大,但是相对来说计算开销比较小。另一方面,同态加密具有可证明安全的CPA和CCA-1安全性,MPC的安全性根据敌手攻击模型不同,分为honest-but-curious (或者semi-honest) security 和 malicious security。

4.4 安全多方计算的缺点

  1. 信任问题:要考虑“半诚实”和“恶意模型”,半诚实要求协议的参与方“不作恶”,即“诚实的执行协议”,这个要求对于to B用户还好,因为一旦一方作恶偷数据大不了在商业合作上“一拍两散”。但对于to C用户,要么客户接受信息泄露的风险,要么收集用户数据的大厂使用更安全,更低效的“恶意模型”协议以便“自证清白”。
  2. 通信量问题:如果使用姚氏混淆电路,执行一个AES加密需要传输1M以上的混淆表数据(还不算OT传输),而可能仅仅为加密16字节的数据,相当不划算。

上述两个问题,同态加密都不存在。

4.5 协议安全

同态(Homomorphic)加密的本质是利用某些运算具有的特定性质(homomorphic property),这些极其特别的性质使得一些加密算法以外的应用成为可能。这通常是多方参与的一个连续互动的协议或者加密过程。这种多方参与的协议,部分情况下可被其他方案替代。

多方安全计算主要是协议层面的设计确保协议安全,同态加密是利用算法本身的特质确保加密方法的有效性。二者实际上不是完全的平行对立关系,而是在不同方向的两个概念。

4.6 同态加密的优点

同态加密是能够在加密状态下,完成计算的一种加密方案。本质上,同态加密仍然是保护信息机密性的加密方案,额外实现了同态运算的功能。同态加密的研究,在2009年全同态加密取得巨大突破的情况变得火热。

同态加密相对于安全多方计算来说,它更偏重于是一种密码学基元,对比的安全计算是一种高级协议。通过密码学基元来构造协议本身就是一件顺理成章的事情,所以一直以来,同态运算和同态加密就是安全计算研究的一种工具。

在设计特定的计算任务的时候,特殊的安全计算协议可能存在不错的计算效果。但是在通用函数的计算过程中,同态加密相对于安全计算有巨大的效率优势。即使现在全同态加密的效率依旧不够满足日常使用需求,但对于任意函数的计算,比如云计算中,其计算效率,交互逻辑的复杂程度,通信带宽和通信延迟,都远远小于安全计算。

五、自动驾驶领域隐私计算涉及企业、场景、内容

智能网联汽车是智能交通的先行领域,也是我国“十四五”规划中大力发展的重要新型基础设施。它是基于新一代信息通信技术和大数据、人工智能手段,实现车内、车与云平台、车与车、车与路、车与人等全方位网络链接与智能管理的技术体系。

5.1 涉及企业

车联网数据流转的企业包括芯片商、传感器等零部件厂商、终端设备厂商、系统集成商、平台运营商、数据服务商、业务提供商等。他们与车联网的用户、监管者一起构成了庞大的车联网数据生态体系。相关各方虽然角色不同、利益各异,但相互关联、相互作用,共同影响车联网的数据安全。数据流转过程中,隐私保护或者说信息安全的作用至关重要。

个人信息保护主要工作包括车联网(智能网联汽车)用户个人信息保护机制及相关技术要求,明确用户敏感数据和个人信息保护的场景、规则、技术方法,包括匿名化、去标识化、数据脱敏、异常行为识别等标准。

5.2 主要场景

个人安全风险层面——(场景1)

车联网数据具有很大的特殊性,包含属于车主或乘客的大量个人信息。

车辆的轨迹数据、车载电话数据、车内摄像头的影像数据、车载智能机器人的语音交互数据、车载支付数据等。这些数据的泄露会导致个人隐私安全风险。

同时,由于车联网具有远程操控功能,一旦车辆操控数据被截获和篡改,将直接影响驾驶者的行驶安全。不少汽车厂商,如奔驰、宝马等的信息系统,都曾有被黑客攻陷的先例。2015年切诺基信息安全事件导致140万辆车被召回,更是成为改变汽车行业安全设计规范的标志性事件。

社会安全风险层面——(场景2)

随着车联网与智能交通的逐渐融合,车联网的数据安全也将进一步深入社会层面。例如,车辆数据与交通信号灯的智能联动是车联网在智能交通中最常见的应用。如果有车辆向智能交通系统恶意发送虚假信息,就会造成大面积交通堵塞。若这样的攻击点分布较广、时间密集,将造成整个城市交通体系的瘫痪,从而带来极大的社会安全风险。

国家安全风险层面——(场景3)

车联网至少有三类数据与国家安全潜在相关:

第一类是经纬度数据。智能网联车辆设备会采集车辆行驶过程中的经纬度数据,当这些数据汇集到一定量级时就具备了地图测绘能力,一旦外泄,会对国家安全造成潜在威胁。

第二类是车载摄像头的影像数据。智能网联车辆逐步配备360度摄像头采集的数据,将使涉密地区、涉密单位的安全保密工作变得更具挑战性。

第三类是车辆的远程控制数据。这些数据一旦被不法分子利用,被远程控制的智能网联车辆有可能变成实施犯罪的工具。

确保车联网的数据安全不仅是保护个人隐私的需要,也是维护社会和国家安全的需要。由于车联网系统天然具有的应用多样性、技术多样性、流程复杂性等特点,使得车联网数据安全的保障不是一个单环节、单角色、纯技术的任务,而需要在理解其生态体系的基础上,从技术支撑和制度建设等多方面共同发力。

5.3 主要内容

2020年2月10日,发改委、网络安全和信息化部、科技部、工信部、公安部、财政部、自然资源部、住房和城乡建设部、交通运输部、商务部、市监总局十一个部门联合发布了《智能汽车创新发展战略》,提出“到2025年,中国标准智能汽车的技术创新、产业生态、基础设施、法规标准、产品监管和网络安全体系基本形成。实现有条件自动驾驶的智能汽车达到规模化生产,实现高度自动驾驶的智能汽车在特定环境下市场化应用”。车联网建设正在进行中,目前相关标准,系统存在大量空白,需要有志的你去填补。

标准参见《车联网(智能网联汽车)网络安全标准》。

六、多方安全计算金融应用技术规范_安全多方计算的实践应用面面观

具体细节内容,请大家拜读金融行业标准《多方安全计算金融应用技术规范》

6.1 总体要求

MPC金融应用总体要求包括基础要求、安全要求和性能要求三部分。

  • 基础要求:包括数据输入、算法输入、协同计算、结果输出及调度管理等要求,分别主要针对数据提供方、算法提供方、计算方、结果使用方、调度方
  • 安全要求:包括协议安全、隐私数据安全、认证授权、密码安全、通信安全、存证与日志等要求。
  • 性能要求:对MPC金融应用提出了计算延时、吞吐量、计算精度等性能指标要求。

6.2 安全参数Security parameter

安全参数:用以衡量多方安全计算协议安全强度或破解难度的一组参数。

MPC安全参数主要包括不诚实门限、统计安全参数、计算安全参数。

  • 不诚实门限是多方安全计算协议允许合谋的不诚实参与方的最大值,当该值小于参与方数量的一半时称协议是诚实大多数的,否则称协议是不诚实大多数的;
  • 统计安全参数是一个整数l,根据输入数据产生的计算因子的概率分布,与不知道输入数据随机模拟的计算因子的概率分布,两者统计上不可区分(统计距离不高于 2−1 );
  • 计算安全参数是一个整数k,表示多项式时间攻击者破解多方安全计算协议的计算复杂度为O( 2� )。

计算因子Computation factor:基于多方安全计算输入数据产生的数据。

包括输入因子、输出因子和中间因子:输入因子是指数据提供方执行数据输入过程后可供计算方执行后续计算的数据;输出因子是指计算方执行计后,返回给结果使用方用以恢复最终计算结果的数据;中间因子指计算方中 间计算过程中产生的数据。

6.3 安全多方计算性能已经满足实际应用需求

安全多方计算虽然在理论上能够直接使用通用框架解决任何计算问题,但是直接将任意计算转化为电路级别的安全计算,存在使用效率低下的问题,无法满足实际应用的需求。因此,在过去的几十年间,研究人员在把安全多方计算推向实际应用的方面做了大量的工作。

总的来说,目前在某些特定计算或者应用中,安全多方计算的性能已经足以满足实际应用的需求。

比如,研究人员设计的安全多方计算协议能让10个数据所有者在局域网环境中,在每方拥有400万个数据点的情况下,5秒之内完成线性回归计算;能让4个数据所有者基于 MNIST数据集(表示为1000行和784列的矩阵),在广域网环境下,5天内训练出一个逻辑回归(logistic regressior)模型。

面向混淆电路的优化与实践在过去的几十年间,研究人员做了大量工作来优化混淆电路协议,将混淆电路协议推向实用化。很多混淆电路的优化技术相继被提出,比如消除异或门计算的 free XOR技术和将加密真值表密文个数由4个减少到2个或3个的 row reduction技术。基于这些优化技术,研究人员同时开发出了一些初步的支持混淆电路安全多方计算的高级软件框架,例如基于Java语言编写的OlivA和基于C语言编写的 Obliv-C。基于这些软件框架实现的混淆电路,安全多方计算在一些应用中已经取得相当不错的性能。例如 ObliG能让两方在507毫秒内求解维度为160的两个向量之间的汉明距离(Hamming distance),在6.29毫秒内完成两个64位整数的乘法,在20.77秒内做Count Min Sketch计算。此外,还有学者考虑基于硬件描述语言来设计实现高压缩的混淆电路构建方案,直接从底层硬件的角度出发构建混淆电路,极大地缩小混淆电路的规模,得到高压缩的混淆电路这样能够极大地降低采用混淆电路的安全多方计算协议的通信开销以及整体的运行时间。例如研究人员发现基于硬件描述语言来构建混淆电路,可以将1024位的整数乘法所需要的电路门数减少67%。

基于混合技术的协议设计与实践,基于混淆电路的安全多方计算在逻辑计算(例如比较大小)方面比较有优势,而基于秘密共享的安全多方计算在算术计算(加法和乘法)方面比较有优势。

基于这一观察,近年来研究人员提出融合混淆电路和秘密共享技术的混合安全多方计算协议设计。基本思想是对一个函数计算进行计算拆分,加法和乘法的运算用基于秘密共享的技术安全实现,其他的计算则用混淆电路安全实现,同时设计秘密共享和混淆电路之间输入/输出的兼容性格式转化方法,使混淆电路和秘密共享技术的优势都能得到充分利用设计出高效的混合安全多方计算协议。有学者基于秘密共享和混淆电路技术设计了混合的面向神经网络的安全多方计算协议 Minions,能够在0.2秒内完成有两个隐含层(每层128个神经元)的神经网络的计算。此外,由于加法同态加密(additively homomorphic encryption)技术也能高效地支持加法和乘法,所以也有学者将加法同态加密技术和混淆电路技术进行结合,来设计高效的混合安全多方计算协议。例如,2018年有学者实现了个基于朴素贝叶斯分类器的垃圾邮件过滤器,能在300微秒内完成一个邮件的分类过滤。

面向非线性函数计算的优化与实践在一些应用中经常会遇到含有一些非线性函数的计算,比如对数函数、指数函数等。这些非线性函数的安全算目前未能得到高效的解决,仍然是一个挑战近年来,有学者提出采用近似拟合的数学思想,通过分段的低阶多项式逼近的数学技术对非线性函数进行有效的近似拟合。这样一来,非线性函数的安全计算问题就能有效地转化为低阶多项式的安全计算问题。由于低阶多项式的安全计算由高效的加法和乘法运算便可实现,我们能高效地实现非线性函数的安全计算。比如2018年,有学者用14段的阶多项式或者6段的二阶多项式2对Tanh函数进行近似拟合,以实现面向神经网络的安全多方计算。

基于云服务器辅助的大规模安全多方计算

安全多方计算需要参与方之间彼此进行交互,因此可扩展性是安全多方计算面临的一大挑战。在有大量用户参与的应用中,比如群智感知、推荐系统、机器学习模型训练等,参与方的数量可能成百上千,甚至是上万。在这些大规模计算场景中直接进行安全多方计算是不现实的。为此,近年来有研究人员提出基于云服务器辅助的外包安全多方计算思想,将大规模的安全多方计算问题转化为多个云服务器之间的安全多方计算问题。在这些工作的系统框架中,通常假设存在两个云服务器,用户将加密的数据(基于同态加密技术或者秘密共享技术加密)发给云服务器,然后两个云服务器之间运行一个安全协议获得输出。比如2017年,有学者基于此框架设计实现了一个隐私保护的线性回归模型训练系统,能在233秒内完成基于百万用户数据的模型训练。2018年,有学者设计实现了面向群智感知的隐私保护的真值发现系统能在36秒内从200多个用户对100多个实体的不可靠的感知数据中挖掘出真实数据。

展望历经几十年的发展,安全多方计算在实用化方面已经取得了令人鼓舞的进展,在某些应用场景中甚至已经能够达到满足实际需求的性能。伴随着云计算、人工智能、物联网等多种技术的快速发展和人们隐私保护意识的日渐增强,安全多方计算在未来将会有更为广阔的用武之地。目前安全多方计算在半诚实的敌手模型下可以取得良好的性能。但在恶意敌手模型下为达到安全性,安全多方计算需要付出很大的性能代价。因此,恶意敌手模型下的效率问题是安全多方计算面临的一个重大挑战。今年有学者提出公开可验证(public verifiable covert)模型下的安全多方计算,其主要思想是:每个参与方的所有行为都自动带有类似签名的机制以供其他参与方存证,如果系统中有某个作恶者,那么其他参与方可以以一定的概率检测到这恶意行为,并将这个行为以及签名公开,使作恶者遭受名誉上的损失。由于名誉的重要性,只要把这概率设置在50%左右,就足以让理性者不考虑作恶。公开可验证模型下的安全多方计算能获得接近半诚实行为模型下的性能。

猜你喜欢

转载自blog.csdn.net/ab6326795/article/details/134737446