安全多方计算服务器模式 多方安全计算平台通用组件有
什么是多方安全计算
姓名:王镭璋
为简阳等地区用户提供了全套网页设计制作服务,及简阳网站建设行业解决方案。主营业务为成都网站制作、做网站、简阳网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
学号:19011110177
多方安全计算 (MPC:Secure Muti-Party Computation)理论是姚期智先生为解决一组互不信任的参与方之间在保护隐私信息以及没有可信第三方的前提下协同计算问题而提出的理论框架。多方安全计算能够同时确保输入的隐私性和计算的正确性,在无可信第三方的前提下通过数学理论保证参与计算的各方成员输入信息不暴露,且同时能够获得准确的运算结果。
早在1982年,姚期智先生在其发表的文章《安全计算协议》(Protocols for Secure Computation)里提出了著名的姚氏百万富翁问题,同时也首次引入了双方安全计算的概念来解决问题,并对其可行性进行了验证。两个百万富翁Alice和Bob在无任何可信第三方,同时不暴露自己的财产的情况下,希望得出谁更富有的结论。
我们下面来介绍姚老师的精妙解法 ---
假设富翁王有i亿资产,李有j亿资产。王选取一个公钥,使得李可以传递加密的信息。
首先,李选取一个随机的大整数x,把用王的公钥加密,得到密文K。 李 发送k-j给王。
王收到密文c=k-j之后, 对c+1,c+2,...,c+10进行解密,得到十个数字。再选取一个适当大小的素数p, 把这十个数字除以p的余数记作d1,d2,...,d10。
.注意: 这十个数字看起来应该是完全随机的,关键是等式dj=x mod p 成立。
最后,王对这一串数字作如下操作:前面 i 个数不动,后面的数字每个加一,然后发回给李。
这样一通复杂的操作之后,李检查第j个数字。如果等于x mod p 的话,说明这个数字没有被加一,所以 i = j. 反之,则 i j。
这个过程的绝妙之处在于:在协议完成之后,王不知道j的具体值,而李也不知道 i 的值, 但是双方都知道谁的财富更多,这就是多方 安全计算 。一般来说,在甲只知道x,乙只知道y的情况下,双方可以合作计算一个函数 f(x,y)。协议完成时,只有函数值是公开的,而彼此都不知道对方的输入值。
从前面的举例发现,多方安全计算的特点:
1、两方或者多方参与基于他们各自隐私或秘密数据输入的计算。
2、参与一方都不愿意让其他任何第三方知道自己的输入信息。
在多方安全计算出现以前,解决上述问题的策略是假设有可信任的服务提供者或是假设存在可信任的第三方。但是在目前多变和充满恶意的环境中,这是极具风险的。因此,作为能够解决一组互不信任的参与方之间保护隐私的协同计算问题的技术,安全多方计算变的日益重要。
目前互联网已经完成了从IT时代向DT时代的转变,数据已经成为DT时代企业的核心竞争力。数据作为一种新能源,只有流动起来才能产生价值。不过,大多数企业考虑到数据安全和个人隐私等问题,对数据共享都非常谨慎。而MPC对打破数据孤岛,实现数据的可控共享,具有重要的理论和现实意义。
MPC方案主要可分为基于混淆电路(Garbled Circuit,GC)和基于秘密共享两种。
不经意传输(Oblivious Transfer)
首先介绍一种基础的安全多方计算协议:不经意传输(Oblivious Transfer, OT)。
来看一个例子:假设某旅行社拥有N个景点的旅游资料,小淘想去其中的A景点游玩,希望向旅行社购买相关资料做好出游功课。但是小淘非常在意自己的隐私,不希望向旅行社泄露自己的目的地是哪里。因此双方希望这笔交易能够满足以下隐私条件:
小淘不希望向旅行社泄露“我准备去A景点”这一信息;
旅行社只希望出售小淘出钱购买的那份资料,而不泄露小淘未购买的N-1份资料;
粗看起来这种隐私条件似乎是无法满足的:旅行社只要把景点A的资料给到小淘,就必然了解了“小淘正在关注A景点”这一信息;除非旅行社把所有N份资料都给出,但是这又违背了旅行社的利益;
但是神奇的OT可以让交易在这种“不可能的条件”下达成。简而言之,在OT协议中,旅行社把他拥有的N份资料使用某种双方协商同意的加密算法和参数进行加密,然后发送给小淘;小淘可以从密文中解密出A的资料,而无法解密出其他N-1份资料。
OT除了可以直接用于构造MPC方案之外,也是GC等许多MPC方案的基石。
混淆电路
我们知道,任意函数最后在计算机语言内部都是由加法器、乘法器、移位器、选择器等电路表示,而这些电路最后都可以仅由AND和XOR两种逻辑门组成。一个门电路其实就是一个真值表,例如AND门的真值表就是:
例如其中右下格表示两根输入线(wire)都取1时,输出wire=1:即 1 AND 1 = 1。
假设我们把每个wire都使用不同的密钥加密,把真值表变成这样:
例如其中右下格表示如果门的输入是b和d,那么输出加密的f(密钥是b和d)。这个门从控制流的角度来看还是一样的,只不过输入和输出被加密了,且输出必须使用对应的输入才能解密,解密出的f又可以作为后续门的输入。这种加密方式就称为“混淆电路(Garbled Circuit,GC)”。
将电路中所有的门都按顺序进行这样的加密,我们就得到了一个GC表示的函数。这个函数接收加密的输入,输出加密的结果。
假设有两个参与方A和B各自提供数据a、b,希望安全的计算约定的函数F(a,b),那么一种基于GC的安全两方计算协议过程可以非正式的描述如下:
细心的同学一定会指出:第4步中A怎么可以接触B的输入b呢?这不是违背了安全多方计算的假设吗?这里就需要使用OT,A扮演Sender,B扮演Receiver,让B从A处得到Encrypt( b),却不向A透露b的内容。如图所示:
需要注意的是,上述流程只是最原始的GC方法的不严谨描述,GC后续还有Point Permute、Free XOR、Half Gates等多种细节优化,随着最近几年的研究进展,GC的性能已经差不多可以实用了。以求两个百万维向量的汉明距离(Hamming Distance)为例(应用场景是两份数据求相似度,却互相不泄露数据内容),这样的安全两方计算已经可以在1.5秒左右完成。
安全多方计算的安全模型
半诚实行为模型与恶意行为模型
更细心的同学还会进一步提出问题:“怎么确保A给B的
就是一个正确的GC呢?例如A和B商定要比a和b的大小,商定了F(a,b)=ab?1:0,但是A可以制作一个别的函数的GC,例如F(a,b)=b的第1个比特,这样显然是会侵害B的隐私的,但是由于函数是以GC形式发给B的,B是没有办法发现这个问题?”
这确实是一个安全问题,事实上,GC还存在如selective failure等其他更多的安全问题。在介绍解决方案之前,我们需要先定义安全多方计算的安全模型。
安全多方计算的安全模型包含多个角度的内容,在上述上下文中,我们关注的是其中的“行为模型”,即参与方可能进行何种行为以获取其他方的隐私。常见的行为模型包括“半诚实(Semi Honest)”和“恶意(Malicious)”两种。前者假设所有参与方都是忠实的按照协议步骤进行执行,只是想通过协议内容推测其他方的隐私,而后者假设恶意参与方为了获取其他方的隐私可以不遵循协议内容。
用扑克牌打个不严谨的比方,半诚实的牌友会试图从自己的手牌和已经打出的牌来推测他人的手牌,但是还是遵循扑克牌规则的;而一个恶意的牌友则换牌、偷牌等手段无所不用。
可见,本节开始提出的问题属于恶意行为的范畴,而原始的GC只能说在半诚实行为模型下是安全的,无法抵御恶意行为攻击。有许多对GC方案的改进方案可以达到恶意行为模型下的安全性,但是它们都需要付出很大的性能代价:仍然以求两个百万维向量的汉明距离为例,其中最快的方法也需要10秒+,比同等的半诚实方案慢7倍以上。事实上,经过我们的调研,若想真正的实现支持大规模数据的MPC产品,基本上只能考虑半诚实方案。这严重影响了安全多方计算的实用性。
多方安全计算的一些应用
在电子选举、电子投票、电子拍卖、秘密共享、门限签名等场景中有着重要的作用。
结束语
百万富翁问题的提出和解答形象地说明了多方安全计算面临的挑战和解决问题的思路,引发了学术界极大的关注。时隔4年,姚期智先生再次取得重大突破,于1986年提出了基于混淆电路的通用解决方案,进一步验证了多方安全计算的通用可行性,同时也奠定了现代计算机密码学的理论基础。此后,经Oded Goldreich、Shafi Goldwasser等学者进一步的研究和创新,多方安全计算逐渐发展成为现代密码学的一个重要分支。
安全多方计算是什么?有什么用?
一、多方安全计算的含义
“多方安全计算”与“中心化”是相互对立的两个概念,“中心”是指所有的信息资源都掌握于某一方所有,它可以悄无声息地进行某个操作,而不被其余人察觉。在SaaS云平台中,平台服务器就是一个中心,它存储着用户所有的资源,包括本应由用户本人持有的私钥、签名图样、合同文档等,可以在不经过用户知晓的情况下,任意调取用户的私钥以用户的名义进行合同的签署。
理解多方安全计算,首先要弄清楚“多方”及“安全”的概念,多方是指实施一个行为必须由多个参与人共同完成,安全是指行为必须由用户本人实施,其余人没有办法代替他完成。通过该技术,用户可以安全实施某项行为,不必担心他人冒充、代替甚至跨越自己实施某个行为,实现用户一直追求的安全。
二、多方安全计算及中心化的形象理解以及各自效果
2.1对于“中心化”的理解
中心化的形象图示
通俗来说,中心化相当于一个装满了用户物品的仓库,而管理者管理控制仓库内的任何物品。针对房间内的甲物品、乙物品或者其他物件分别跟物品的所有者甲、乙商量好进入房间取回物品各自的暗号,暗号验证成功后,管理者将物品递给用户。
比如,管理者与甲约定好,若甲前来取回甲物品,需敲门三声后大喊“芝麻开门”,验证成功后,管理者将门打开并将甲物品交回至甲处。但,取出甲物品这件事情并非只有甲可以做到,管理者本身在仓库内,他完全有能力监守自盗;又或者是“芝麻开门”这个暗语被他人知道,管理者不明所以将甲物品交给了其他人……存在上述可能性,将无法保证甲物品的顺利取出,这套管理模式存在风险性就不言而喻了。
此前发生的“中信银行事件”,就是中心化管理所滋生的弊端,2020年5月,中信银行发布道歉信,称其内部员工违规盗取并泄露客户信息,引发网友们的高度关注。银行这样的权威机构都存在私自窃取信息的现象,原因就在于传统的中心化存储方式,所有数据都由几大数据中心巨头统一管理,所以,当个人数据被私自查看,用户却一无所知。
2.2对于多方计算的理解
多方计算的形象图示
而多方计算,可以参考图2来理解,仓库中仍然存有甲物品、乙物品、丙物品,但是仓库里并没有任何人,钥匙并不是存储在某个人身上,而是由双方各自持有一部分,只有两个人共同完成了钥匙的解锁过程才能够打开库门,这在很大程度上能够避免管理者监守自盗情况的发生,也在无形中对保管人甲起到了一定的约束作用,甲必须妥善保管所持有的部分钥匙。
但,如若甲的钥匙被别人盗取,或者有心之人按照甲的钥匙仿做了一把,那这个多方计算的方式仍然存在风险点,它并非绝对安全。
2.3多方安全计算的理解
多方安全计算的形象图示
多方安全计算是在多方的基础上加入了安全的概念,仍然是保管人甲与管理员共同协作才能打开门,但是不同于传统的钥匙解锁的方式,它的锁孔并不是一成不变的,它会在开锁后变化形状,当然也并不存在一成不变的钥匙,钥匙的获取需要保管人甲与管理员共同输入仅有自身知道的密码,在钥匙生成器上获取新的钥匙,才能打开仓库的门,实现甲取回甲物品的目的。
这种情况下,只有甲与管理员共同协助才能够生成钥匙,打开现有的锁,而锁在房门打开后就会变化,等待下一次的开锁。这意味着生成的钥匙用完即失效,能够证明自己身份的是头脑中记住的密码,确保其他人没有任何办法获取,实现完完全全的安全。
三、契约互联多方安全计算的方案
契约互联公证电子签名服务就是采用多方安全计算技术来保障电子签名的法律效力,确保电子签名符合《电子签名法》第十三条的规定,属于可靠的电子签名,可以发挥第十四条所述的“可靠的电子签名与手写签名或者盖章具有同等的法律效力”。
如上图所示,契约互联多方安全计算是将电子签名的参与方设置为若干个节点,分别为用户节点、公证节点或其他节点,完整的签名必须由多方共同参与才能够完成,接下来我将以两方(用户节点、公证节点)为例,详细讲述多方安全计算实现的逻辑:
契约互联公证电子签名多方安全计算
契约互联公证电子签名所采用的多方安全计算与之前所述的多方安全计算基本一致但更为复杂,首先是钥匙的产生过程:它并非是单程一次的运算,而是经过4步才能完成,通过多方利用所持数据搭配仅用户可知晓的代码的共同参与,确保运算的安全性,保证运算有且仅由本人发起参与才能够进行。
契约互联多方安全计算
多方是指用户与公证机构或者增设的其他节点,另外,作为多方的其中一方是公证机构,公证机构不同于其他参与方,它是能够提供公证证明服务的国家机构,具备公信力,它依据“我参与、我见证、我证明”的逻辑对用户参与钥匙生成(签名的真实意识)提供可靠证明,见证想要取回甲物品的确实是甲本人,在必要的时候,公证机构可以就甲前往仓库取回甲物品这件事情出具公证书,而公证书在可以作为法官直接裁判的依据,保证甲物品的安全,确定甲的权益。
什么是多方安全计算?
一、多方安全计算是什么
多方安全计算首先由华裔计算机科学家、图灵奖获得者姚期智教授于1982年提出,也就是为人熟知的百万富翁问题:两个争强好胜的富翁Alice和Bob在街头相遇,如何在不暴露各自财富的前提下比较出谁更富有?
简单来说,安全多方计算协议作为密码学的一个子领域,其允许多个数据所有者在互不信任的情况下进行协同计算,输出计算结果,并保证任何一方均无法得到除应得的计算结果之外的其他任何信息。换句话说,多方安全计算技术可以获取数据使用价值,却不泄露原始数据内容。
二、多方安全计算与中心化、去中心化的关系
多方安全计算与中心是相互对立的两个概念,中心是指所有的信息资源都掌握于某一方所有,它可以悄无声息地进行某个操作,而不被其余人察觉。在SaaS云平台中,平台服务器就是一个中心,它存储着用户所有的资源,包括本应由用户本人持有的私钥、签名图样、合同文档等,可以在不经过用户知晓的情况下,任意调取用户的私钥以用户的名义进行合同的签署。
理解多方安全计算,首先要弄清楚“多方”及“安全”的概念,多方是指实施一个行为必须由多个参与人共同完成,安全是指行为必须由用户本人实施,其余人没有办法代替他完成。通过多方安全计算,用户可以安全事实某项行为,不必担心他人冒充、代替甚至跨越自己实施某个行为,实现用户一直追求的安全。
三、多方安全计算对电子签名的价值
Ukey电子签名使用不便的主要原因,在于签名需要依赖Ukey硬件,并在电脑单机使用,无法充分发挥网络交换和服务器运算所带来的革命性效率提升;
而造成“云电子签名”可靠性缺失的主要原因,又在于“中心化”SaaS平台仅立足于利用网络与服务端集中运算的能力,却完全忽视了电子签名中更重要的可靠性要求,正如前述所说的,可以绕过用户,以用户的名义签署文件,这意味着用户使用“中心化”SaaS平台提供的电子签名服务存在诸多风险。
多方安全计算,是一种无需以“中心化信赖”为基础,从密码学和数学原理上可证明安全技术。多方安全计算应用于电子签名,可以克服“中心化”平台“超级代理人”模式带来的根本缺陷,并可保证使用的高度便捷,是可靠与便捷共生的理想电子签名。
多方安全计算电子签名(简称“多方安全签名”)是一种结合了Ukey可靠性和SaaS云平台便捷性优点的电子签名方法:
一方面,多方安全签名充分利用网络和服务器的性能以及客户端的边缘计算能力,在保证商业机密安全前提下,实现服务的便捷性;
另一方面,得益于多方安全计算“去中心化”架构,每次签名的完成,不再是由“平台服务器”说了算,而是需要由用户(签名人)、服务端以及其他多个“参与节点”共同运算、达成共识才能完成;在此过程中,各个节点的密钥完全由“各自”唯一控制和管理,因而从数学原理上,确保了用户的电子签名,只能在用户同意的前提下才能得以完成,客观上杜绝了包括服务器控制方、技术提供方在内的任意一方做假的能力,保证了电子签名的可靠性和抗抵赖性,实现“法律可靠性与使用便捷性”的内在统一。
以上,充分证明了,契约互联采用多方安全计算提供的公证电子签名服务,满足《电子签名法》第第十三条的规定,属于可靠的电子签名,可以发挥第十四条规定的,与纸质签名同等法律效力。
除此以外,契约互联多方安全签名,设置的“参与节点”中引入公证节点,充分考虑了用户签署的直观性及信赖的可验真性,由公证机构的公证人员参与其中,依照“我参与、我见证、我证明”的公证原则,对签署提供公证证明服务,为用户提供一步到底的抗抵赖签署。
分享文章:安全多方计算服务器模式 多方安全计算平台通用组件有
本文链接:http://ybzwz.com/article/dohhepd.html