同态加密的百万富翁问题高效解决方案

合集下载

隐私集合求交算法的对比分析

隐私集合求交算法的对比分析

第31卷第2期北京电子科技学院学报2023年6月Vol.31No.2JournalofBeijingElectronicScienceandTechnologyInstituteJun.2023隐私集合求交算法的对比分析∗田文亮㊀王志强㊀张艳硕北京电子科技学院,北京市㊀100070摘㊀要:隐私集合求交(PrivateSetIntersection,PSI)属于隐私计算领域的特定应用问题,包括秘密共享㊁同态加密㊁不经意传输㊁混淆电路和Hash技术等基础知识,其兼具重要的理论意义与极强的现实应用价值㊂随着用户数据的隐私保护需求的日益提升,PSI可以在满足依赖个人信息的业务的便利性的同时最大程度保护个人信息私密性需求㊂本文首先介绍了隐私集合求交的研究现状,其次按照底层密码技术对PSI进行分类并对比分析了它们的复杂度,对其优缺点进行对比分析,同时对比分析了基于不同密码技术的PSI的使用场景,最后指出其发展方向并得出结论㊂关键词:隐私集合求交;秘密共享;同态加密;不经意传输;混淆电路;Hash技术中图分类号:TP312㊀㊀㊀文献标识码:A文章编号:1672-464X(2023)2-98-112∗㊀基金项目:2022年基本科研业务费优硕培养项目 HTTP协议的流量拟态技术研究 (项目编号:328202280); 信息安全 国家级一流本科专业建设点和2020年教育部新工科项目 新工科背景下数学课程群的教学改革与实践∗∗㊀作者简介:田文亮(1996-),男,研究生在读,计算机技术专业㊂E⁃mail:1070274287@qq.com王志强(1985-),男,副教授,博士,硕导㊂E⁃mail:wangzq@besti.edu.cn张艳硕(1979-),男,通信作者,副教授,博士,硕导,从事密码理论及其应用研究㊂E⁃mail:zhang_yanshuo@163.com1㊀引言㊀㊀隐私数据保护最早源于安全多方计算(securemultipartycomputation,MPC),由姚期智[1]借百万富翁问题提出,指各计算参与方无法得到除计算结果外的任何其他信息,解决互不信任的数据持有者如何对隐私数据进行计算的问题㊂隐私集合交集是安全多方计算中的热点问题,允许在分布式场景下各自持有隐私集合的参与方联合计算出集合交集而不泄露除交集以外的任何隐私信息㊂在隐私保护的场景中,PSI协议具有重要意义,如新冠接触者追踪[2]㊁隐私通讯录查找[3]㊁在线广告实际效果计算[4]㊁基因序列匹配检测[5]等㊂传统的PSI协议针对2个参与方设计,Meadows[6]基于公钥加密和利用Diffie⁃Hellman密钥交换的乘法同态性质提出了第1个PSI协议㊂随后,由Huberman等人[7]对Meadows[6]的方案做出了完整描述㊂2004年由Freedman等人[8]借助不经意多项式求值和同态加密构造了第1个安全PSI协议㊂2017年申立艳等人[9]对安全多方计算框架下的PSI协议进行了简要总结㊂之后涌现了大量PSI的研究成果,一大批新技术手段和构造框架被提出㊂除了传统的安全多方计算理论中的混淆电路(garbledcircuit,GC)㊁不经意传输(oblivioustransfer,OT)㊁秘密共享(secretsharing,SS)㊁同态加密(homo⁃第31卷隐私集合求交算法的对比分析㊀morphicencryption,HE)等技术外,不经意伪随机函数(obliviouspseudo⁃randomfunction,OPRF)㊁经意多项式求值(obliviouspolynomialevaluation,OPE)㊁布隆过滤器(Bloomfilter,BF)等集合元素比较技术的应用,使得PSI的效率得到了很大的提高㊂现有PSI已经非常高效,但现有很多实际应用中仍然以使用高效但存在安全隐患的解决方案为主,了解现有基于不同密码原语构建的PSI及其特定适用场景,对促进实际场景中使用安全的方案替换存在隐患的方案有很大帮助㊂在敌手模型方面,研究人员从诚实且好奇的安全模型出发,开始考虑在恶意模型下安全的PSI协议㊂随着研究人员对隐私集合交集协议的深入研究,除了传统两方PSI协议之外,已衍生出了云辅助PSI㊁阈值PSI(thresholdPSI,TPSI)㊁不平衡PSI(unbalancedPSI,UPSI)和多方PSI新型应用场景㊂本文全面的介绍了PSI研究现状,对基于不同底层密码技术的PSI算法进行了较为详尽的描述,对不同的PSI协议原理进行对比分析,同时对PSI协议的复杂度以及PSI协议的优缺点进行了对比分析,得出了基于不经意传输的PSI协议目前具有更高效率的结果㊂最后针对当前存在的问题,指出PSI协议的发展方向以及结论㊂2㊀隐私集合求交的研究现状㊀㊀隐私集合求交(PSI)协议有很多分类方法,按照底层依赖的密码技术分类主要包括:基于公钥密码的PSI方案,包括:基于密钥交换(DH:Diffie⁃Hellman)的PSI方案和RSA盲签名的PSI方案;基于不经意传输的PSI方案;基于通用MPC的PSI方案,例如基于混淆电路的PSI方案;基于同态加密的PSI方案;基于以上密码技术同时对多方PSI进行描述㊂2 1㊀基于公钥密码的PSI方案1986年,Meadows[6]提出了基于Diffie⁃Hellman问题的PSI协议,该协议类似于Diffie⁃Hellman密钥协商协议㊂双方以各自的输入集合中的元素作为Diffie⁃Hellman密钥协商中选择出的 随机数 角色,将集合元素映射到随机 会话密钥 空间,接收方在 会话密钥 空间中进行匹配,并获取到最终的交集元素;可以看出,该方案需要双方执行多次的模指数运算(这种代价很高的计算),因此所得的PSI方案效率并不高㊂与基于杂凑函数的算法类似,同样可以在签名空间进行比对㊂例如基于盲签名,发起方盲化本方输入的每个元素,向响应方的请求盲签名,获得结果并去盲后得到响应方私钥的签名㊂同时,响应方签名本方的每个元素,并将结果发送给发起方;发起方比对双方的签名结果,获得交集结果㊂DeCristofaro与Tsudik[17]在2010年提出了基于RSA盲签名的PSI协议㊂在该协议中,响应方随机产生RSA密钥;发起方对本方的每一个输入元素进行随机盲化,将结果发送给响应方;响应方使用RSA私钥对盲化结果进行签名并发送给发起方,同时将本方的输入元素用本方私钥进行签名,将结果发送给发起方;发起方对盲化的签名进行去盲,与响应方的签名进行比对,得出交集结果㊂基于公钥体制的方案除了转换匹配空间之外,将参与方输入的集合元素看作是多项式的根,多项式可以与输入集合建立映射关系,对于多项式的某些操作可以转换为集合的某些操作㊂2022年AranhaDF[35]提出了一种新的两方简洁PSI协议,该协议从理论和实践两个方面都以最小化发送方的开销为目标㊂该协议在概念上非常简单,这使得在实践中实现它不易出错:在协议执行期间,只发送两条消息,一条消息从接收方发送到发送方,另一条消息返回㊂接收者的消息的大小是单个组元素(独立于接收者的㊃99㊃北京电子科技学院学报2023年输入集合的大小),而发送者的消息大小与发送者的输入集合大小成线性关系㊂发送方的计算复杂度与接收方输入集的大小无关㊂该协议为了证明新假设的合理性,证明了它在一般群体模型中是成立的㊂还讨论了在主动攻击存在的情况下保证隐私的简单对策,并提出了一个协议,该协议提供了完全基于模拟的安全性来对抗主动攻击㊂2 2㊀基于不经意多项式计算的PSI方案不经意多项式计算的PSI协议主要是将参与方集合元素表示为多项式的根,利用多项式的数学性质来计算交集,并采用同态加密算法加密交互过程中的信息来保证协议的隐私㊂最早由Freedman等人在2004年提出的PSI协议[8]就是不经意多项式计算的PSI协议㊂其协议的主要过程为:客户端生成同态加密密钥对(pk,sk)并发送公钥给服务器端,将输入集X={x1,x2, ,xv}表示为多项式P的根P(z)=(x1-z)(x2-z) (xv-z)=ðvu=0auzu,利用插值法求得多项式系数{a1,a, ,av},将多项式系数用Paillier[13]或EIGamal[15]同态加密算法加密发送给服务器端;服务器端输入集合为Y={y1,y2, ,yw}对集合中的每一个元素y,利用同态加密性质计算Enc(r.P(y)+y),并将计算的密文混淆发送给客户端;客户端解密所有的密文,依次判断解密的结果是否和输入集合X中的某一元素x相等,相等则说明x属于集合交集㊂该协议中,多项式的次数过高,会导致同态加密运算中指数的计算代价太大㊂因此作者又采用Hash函数将集合中元素映射到B个桶中,每个桶最多M个元素,在客户端生成M个低次多项式,服务器端采用同样的Hash函数将元素进行映射,客户端将相对应的桶里的元素和多项式进行集合交集判断;为了减小M的值,作者采用了负载均衡Hash[21]方法㊂2014年Freedman等人进一步在文献[8]的基础上改进PSI协议[31],客户端和服务器端分别采用不同的Hash函数将集合元素进行映射来减少协议的计算复杂度,并将随机Hash㊁负载均衡Hash㊁布谷鸟散列[22]进行实验对比,其中应用负载均衡Hash㊁布谷鸟散列进行集合元素计算的复杂度较低㊂以上协议被证明在标准模型下对半诚实敌手是安全的㊂2 3㊀基于不经意传输的PSI方案不经意传输是密码协议体系中的一个基础协议,由Rabin于1981年提出[23]㊂与最原始的概念相比,在更标准化的定义中,发送方拥有若干个输入,接收方输入一个索引下标,该索引下标表示接收方想要得到的结果,在协议过程中这一指标并不会泄露给发送方㊂最基础的OT协议是2选1OT㊂基于OT的PSI协议需要使用的OT运行实例的数量与PSI双方输入的集合大小有关系,因此OT协议成为大集合PSI方案的主要瓶颈㊂OT扩展协议的出现[13],使得大集合PSI方案的落地成为现实㊂所谓OT扩展协议是指,OT协议在并行数量方面的扩展㊂具体来说,是用少量的OT协议实例来构造较为大数量的OT协议实例㊂文献[14-16]给出了OT扩展的相关理论结果与实现改进㊂2013年,Dong等人在文献[24]中第一次将布隆过滤器引入到PSI中,并与OT扩展结合,使得PSI协议能处理的集合数量首次突破了亿级别㊂此后,对于布隆过滤器的改进也成为优化PSI协议的一个重要方向㊂通过改进布隆过滤器,Rindal和Rosulek给出了第一个恶意模型下的PSI协议[25],这一方案也在200s时间内完成了两方百万数据量的安全求交㊂2016年,在文献[26]中,Kolesnikov等人使用OT扩展来实现不经意伪随机函数,并且将此概念运用到PSI中,这也成为后续基于不经意传输的PSI协议的主要方向㊂以上所有PSI协议的实现几乎都是在两个参与方的场景㊂对于多个参与方的场景,文献[27]中Kolesnikov等人引入㊃001㊃第31卷隐私集合求交算法的对比分析㊀了不经意的可编程伪随机函数的概念(Program⁃mableObliviousPseudorandomFunctions,OP⁃PRF),并且基于插值多项式㊁布隆过滤器等技术实现OPPRF㊂OPPRF要求只对发送者编程进去的集合元素,接收者才可以进行不经意地函数取值,未编程进去的元素,接收者返回随机值㊂各个参与方之间顺次循环扮演发送方和接收方角色,最终完成交集的结果㊂2022年,李顺[48]提出了一种基于并行化OPPRF的隐私集合交集协议㊂2022年,魏立斐等人[49]提出了基一种于云服务器的公平多方隐私集合交集协议,该协议基于该不经意伪随机函数构建了半可信云服务器辅助的隐私集合交集计算协议,将主要计算量外包给云服务器,允许半可信的云服务器参与相等性测试,又不泄露参与方任何集合信息㊂2 4㊀基于同态加密的PSI方案PSI根据参与者的数量可分为两方和多方,下面均以两方为例㊂假设参与PSI的两方为发送方S(Sender)和接受方R(Receiver),分别持有数据集X和Y㊂根据两方数据集大小的不同,分为平衡场景和非平衡场景㊂在平衡场景下,双方样本数量相差不大,适用于双方客群有较多重叠的场景,如集团子部门之间的安全求交场景;在非平衡场景下,双方样本数量相差非常大,如营销场景中筛选本机构种子用户与外部数据方海量用户群中的共有用户群,实现目标客群筛选㊂在平衡场景中,PSI的实现方式目前较为成熟的有基于RSA㊁基于Diffie⁃Hellman(DH)和基于不经意传输等㊂综合安全性㊁效率和通信量考虑,基于OT以及OTExtension[41]系列的对齐方案被广泛使用㊂在非平衡场景中,可在基于OT的PSI方案基础上,将同态加密技术结合特定的优化方法,实现高效的PSI㊂下面介绍两种高效的基于同态加密的非平衡PSI方案㊂2017年,Chen等[46]在CCS2017中将同态加密应用到非平衡PSI中,综合使用了Cuckoohash㊁Partition㊁Window和ModulusSwitch技术㊂实验表明,在数据量为NX=5000,NY=1600万时,Chen在CCS2017[28]中提出的方案的通信量为12 5MB,求交时间为36s㊂2018年,Chen等[46]改进了CCS2017方案,提出了一个能抵抗恶意攻击的非平衡PSI方案(CCS2018[29])㊂与CCS2017[28]方案相比,该方案支持更高位(512位和1024位)的Item(CCS2017方案支持32位),改进了SIMD编码,在不增加加密参数的前提下,提升了效率和安全性㊂该方案较CCS2017方案在性能上做出很大改进,在数据量为NX=224和NY=5535时,CCS2017方案需要20MB的通信量和40s的在线计算时间,CCS2018通信量为16MB,在线计算时间为22s(单线程),运行时间几乎缩短2倍和通信量节约27%㊂此外,当接受方R的数据集更小时,CCS2018方案的同态加密的参数会更小,能进行更少的密文计算,当接受方R的数据量为512或1024时,该方案运行时间分别只需9 1s和17 7s,以及8 2MB的通信量,较CCS2017方案快2 4倍,发送的数据量降低一半,同时支持任意长度的Item㊂2 5㊀其他根据底层密码学技术对传统多方PSI进行梳理,主要分为基于公钥的多方PSI和基于OT的多方PSI,由于混淆电路在预计算阶段构造复杂,且内存占用较高,并没有基于混淆电路的传统多方PSI协议的研究,但又鉴于混淆电路可以方便地计算任何功能函数的特性,其更适用于构造门限等特殊场景下的多方PSI协议㊂基于公钥的多方PSI方案主要采用同态加密技术㊂第1个基于同态加密技术的多方PSI协议方案由Freedman等人[8]提出,首先使用加法同态加密实现的OPE技术,将集合元素表示为多项式的根从而代替集合进行运算,实现了在半诚实敌手模型下的两方PSI,其次提出了针对恶意的客户端㊁恶意的服务端㊁恶意的两方以及多方的情况下的PSI协议的构造思路㊂在半诚㊃101㊃北京电子科技学院学报2023年实敌手模型中,Kissner等人[19]在2005年对加法同态加密的私钥进行秘密共享,协议的计算复杂度和通信复杂度是集合大小和参与方数目的2次方㊂2017年,Hazay等人[44]使用星型通信模型将多方PSI协议的通信轮数从O(n)降低为O(1),且加解密的操作数与参与方集合大小呈线性关系㊂其中,星型通信结构是最直观的多方通信结构,多个参与方与同一个中心参与方进行交互,此结构对中心参与方的带宽和计算能力要求较高㊂基于OT协议的多方PSI协议主要分为两种,一是使用OT协议构造OPRF㊁OPPRF㊁多点OPRF等一系列协议,而后基于OPRF系列协议构造多方PSI协议;二是多方直接使用OT协议进行数据传输㊂基于OPRF的多方PSI协议中最经典的同时也是首篇将多方PSI进行代码实现的协议为Kolesnikov等人[42]在2017年提出的方案㊂该文献首次提出了使用OPRF构造OPPRF的概念,旨在使用发送方的输入来对OPRF的密钥进行编程,其与单点OPRF的区别在于OPPRF中密钥与发送方的私有集合元素相关㊂在直接使用OT协议作为数据传输协议方面,2018年,Inbar等人[45]在半诚实敌手模型和增强的半诚实敌手模型中分别提出了两种多方PSI协议,是对Dong等人[24]两方PSI协议的扩展㊂Inbar等人的协议[45]与Kolesnikov等人的协议[42]相比的优势在于随着参与方数目的增多,协议消耗时间增长缓慢,与参与方数目呈次线性关系;而Kolesnikov等人的协议[42]的最后一个步骤中需要多次计算和比较,计算开销较大㊂由于混淆电路具有计算任何功能函数的特性,可以方便地设计多功能的安全计算协议,因此基于混淆电路的门限多方PSI也是研究方向之一㊂2021年,Chandran等人[46]提出了半诚实敌手模型下的多方PSI协议,并设计了两种变体协议,门限多方PSI便在其研究范围中㊂协议主要分两部分,首先选择一个特定参与方与其他所有参与方两两交互进行元素相等性判断,此后所有参与方交互通过电路计算结果㊂近年来涌现了很多基于云辅助器的PSI协议[49-52],由于在日常生活中数据量庞大,因此借助云辅助器的方案可能是我们以后研究的重点㊂本文对以上基于不同密码技术的PSI协议现状进行了总结,不仅对每一种PSI协议的历史发展进行描述,而且说明其特点及基本使用场景㊂3㊀PSI算法原理的对比分析㊀㊀PSI算法既可以有两方参与,又可以有多方参与,以下分别对两方㊁多方以及不经意伪随机函数等PSI原理进行对比分析㊂3 1㊀两方PSI基本原理算法参与方包括Server和Client,假设sever和client输入元素个数分别为ks和kc,server方输入元素记为yi,iɪ[1,ks],client方输入元素记为xi,iɪ[1,kc];2)基于公钥加密技术的加法同态加密算法Enc(x)㊁Dec(c)满足Enc(m1+m2)=Enc(m1)+Enc(m2)(km)=k(m)1)client方针对全部输入元素利用插值法构造如下多项式P(y)=ðkci=1(y-xi),显然该多项式的最高次数为kc,用系数表示为P(y)=ðkci=0(aiyi)㊂然后将全部系数进行加密后发送给server;2)server针对每一个yi进行如下计算:选择随机数ri计算Ci=Enc(riP(yi)+yi,并将Ci发送给client;3)client进行如下验证:对Ci进行解密得到mi=riP(yi)+yi㊂如果yi和某个xi相等,则riP(yi)为0,解密结果mi必定等于该xi,即为PSI结果之一,如果yi不等于任一xi,则解密结果mi是一个随机数㊂3 2㊀多方PSI基本原理在2方PSI算法基础上可以扩展到多方㊃201㊃第31卷隐私集合求交算法的对比分析㊀PSI㊂具体原理如下:1)假定n+1个参与方,记为Ll,lɪ[1,n+1],第Ln+1为leader;2)对前面n个参与方Ll,lɪ[1,n],生成各自的同态加密算法公私钥公钥pkl和私钥skl,公开公钥pkl;3)对前面n个参与方Ll,lɪ[1,n],针对已方全部元素xli生成自己的多项式Pl(y),并将多项式参数进行加密(使用公钥pkl)后发送给leader;4)Leader针对己方每个元素yi进行如下操作:生成n个随机数slj,lɪ[1,n],确保 ni=1slj=yj,然后针对n个参与方Ll的每一方计算密文Clj=Enc(rljP(yj)+yj),然后将全部Clj发送给Ll;5)对前面n个参与方LL,lɪ[1,n],解密Clj得到mlj,并将已方解密出来的mlj全部公开:6)对前面n个参与方Ll,针对收到的全部mlj进行计算yj= nl=1mlj,如果yj等于已方的某个元素xlj相等则表明该元素是多方交集元素㊂3 3㊀基于不经意伪随机函数的PSIPSI算法参与方包括server和client,假设sever和client输入元素个数都为n㊂OPRFPSI算法的基本思想是利用PRG函数对双方明文元素进行加密,然后server方和client方对加密后元素进行逐一比对找出共同交集元素,PRG函数设置加密密钥时通过OT协议交互使得该密钥能够确保相同交集元素的密文相同且不泄露明文元素的信息㊂OPRFPSI算法相对其他PSI算法的优势是计算量和通信量都比较小,而且对于client方来说安全性很高,能够确保server方无论是半诚实还是恶意模型下的client方安全性,这样通过OPRFPSI算法构建隐查询PIR时能够保证查询方的绝对安全性㊂(1)基本原理1)OPRF函数记为OPRFk(x)=H(q [F(x)㊃s]),㊃表示位与操作,⊕表示位异或操作,F(x)表示x作为种子的随机数生成器,H表示Hash摘要函数(具有randomoracle特性)㊂q,sɪ{0,1}λ,λ表示安全参数;2)client对己方输入元素x:先采样随机字符串r0ѳƔ{0,1}n,计算r1=r0 F(x);3)server端先采样随机字符串sѳƔ{0,1}n;4)client和server运行λ次OT协议:client发送方输入r0[i]和r1[i],server端输入选择比特s[i]㊂server通过λ次OT协议获取到的λ比特随机字符串q=rs[1][1] rs[2][2]... rs[λ][λ];5)server端设置OPRFkeyk=(q,s),对己方输入元素y计算OPRF值OPRFk(y)=H(q [F(y)㊃s]),并将改值发送给client;6)client检验:当OPRFk(y)=H(r0)时表明y=x㊂(2)OPRF算法协议公共函数及参数约定如下:λ表示计算安全参数,统计安全参数σ,协议参数m,w,l1,l2,Hash函数H1:{0,1}∗ң{0,1}l1和H2:{0,1}wң{0,1}l2,伪随机函数F:{0,1}Aˑ{0,1}lң[m]w;具体协议过程如下:1)阶段1:预处理server端采样随机字符串sѳƔ{0,1}w;client端执行:初始化个mˑω二进制矩阵D为全1,Dj表示D第j列,D1=D2= =Ds=1m;采样随机字符串kѳƔ{0,1}λ作为PRF函数F密钥;对于client端的每个元素y:计算v=Fk(H1(y)),vɪ[m]w,对矩阵D的每一列设置Di[v[i]]=0,iɪ[w]㊂2)阶段2ʒ0T传输㊃301㊃北京电子科技学院学报2023年client端随机产生一个mˑω二进制矩阵Aѳ${0,1}mˑw,计算B=A⊕D;client和server运行w次OT协议,client作为发送方,server作为接收方,每次OT,client输入消息{Ai,Bi},iɪ[w],server输入si进行选择㊂OT协议结束后server获得w㊀个m比特字符串,然后作为ω列得到一个mˑω二进制矩阵C㊂3)阶段3:OPRF值验证client端将PRF函数F密钥发送给server;server端针对每个元素xi:计算vj=Fk(H1(yj)),计算OPRF值Vi=H2(C1[vi[1]]) Cw[vi[w]);server将所有:发送给clientclient端针对己方每个元素yi:计算vj=Fk(H1(yj)),计算OPF值中,㊀ϕj=H2(A1[vj[1]] Aw[vi[w]]),然后逐个比较中ϕj和ψi,当且仅当ϕj=ψi时,㊀yj=xi㊂3 4㊀不经意的可编程伪随机函数的PSIPRF函数F跟OPRF中的定义一致㊂OPPRF协议的参与方包括Sender(记为S)和Receiver(记为R)两方㊂协议运行过程如下:1)约定安全参数Κ,公开参数PRF函数F:2)S方输入{(x1,y1),(x2,y2) (xn,yn)},xi不相等,协议生成F加密密钥k和公共参数hint;3)R方进行公q次查询,每次查询输入x,协议返回y=F(x,k,hint)㊂S方的输入可以理解为一些点坐标,协议对S方输入进行加密计算得到公共参数hint,PRF函数F加密密钥k㊂R方的输入为x,协议返回一个随机值y,当x与S方某个输入x相等时,R方获得输出即为y=yi㊂协议的安全性要求S方无法获知R方输入的查询信息,R方无法获知查询输出是否匹配到了S方的某个输入㊂也就是说R方每次查询中无论输入值是否匹配到S方的某个输入xi,输出y相对R方都是一个随机均匀分布㊂OPPRF基于多项式的实现:假设S方输入{(x1,y1),(x2,y2) (xn,yn)},令yᶄi=yi F(k,xi),S方通过对{(x1,yᶄ1),(x2,yᶄ2) (xn,yᶄn)}进行拉格朗日插值得到多项式如下:P(x)=ðni=1yᶄi(ᵑ1ɤjɤnjʂix-xjxi-xj)记上述多项式系数为hint,记R方查询输入为q,则查询输出为:F(q,k,hint)=F(k,q) P(q)正确性验证:当R查询输入q=x时,查询输出为yiF(k,xi) P(xi)=F(k,xi) yᶄi=F(k,xi) yi F(k,xi)=yi当输入q不等于任一xi时,查询输出是随机均匀分布的㊂因为yi随机均匀分布,因此P(x)系数也是随机均匀分布的㊂3 5㊀MultiPSI算法原理:算法关键是利用秘密分享技术,通过2次OPPRF找出共同元素㊂1)第一次OPPRF:step1中各参与方对本方的每个元素和其他各参与方生成多份秘密分享值si,jk,然后step2中各参与方运行OPPRF,此时如果有相同元素进行查询则会获取到对方相同元素的某一份秘密分享值㊂如果是不相同元素的查询则是获得一个随机值;2)第二次OPPRF:step3中各参与方通过本方所有秘密分享值计算一个映射Si(xik),然后step4中P1作为协议中leader(负责最终交集元素的输出),和各参与方运行第二次OPPRF.每个参与方的Si(xik)值包含了单个元素在各个参与方对应的秘密分享值㊂Step5中P1对各个参与方S(x)进行XOR计算,此时如果是该元素在㊃401㊃第31卷隐私集合求交算法的对比分析㊀各个参与方都有,则 iɪ[n]yik包含了所有参与方关于xik元素的全部秘密分享值,因此 iɪ[n]yik=0意味着元素xik在各个参与方输入中都存在㊂4㊀PSI算法复杂度的对比分析㊀㊀不同PSI协议的计算复杂度和通信复杂度在表2中有所示㊂表1为符号说明,表2中的计算复杂度是通过非对称或是对称密码原语的使用次数衡量的,通信复杂度是通过在信道上传输的比特数衡量的㊂这里的假设是每完成一次OT协议花费3次对称密码操作(对于使用布隆过滤器的花费2 5次对称密码操作)㊂计算姚氏电路中的与门使用4次对称密码操作,计算GMW电路中的与门使用6次对称加密操作㊂在同一类别中的PSI方案大多数拥有类似的复杂度㊂朴素哈希方法与服务器辅助的方法需要对每一个元素执行一次对称加密操作(哈希),基于公钥的协议需要对每一个元素执行两次公钥操作,并且需要发送两个密文和一个哈希值㊂基于电路的方法的计算复杂度与电路中与门的数量成正比,在基于布隆过滤器的协议中,计算复杂度与布隆过滤器的大小成正比㊂在基于OT的协议中,基于布隆过滤器的协议[24],通信复杂度是与安全参数κ的平方成正比的,但是在[34]中的协议,通信复杂度是与κ呈线性关系㊂表1㊀符号说明符号说明S服务端或是发送端R客户端或是接收端X,Y发送端和接收端的集合NX,NY发送端和接收端集合的大小m哈希表的大小v消息编码的长度σ集合元素的长度κ,λ计算意义的安全参数和统计意义的安全参数ρ,ϕ非对称安全参数与椭圆曲线的规模表2㊀不同PSI协议复杂度比较分类协议计算复杂度(对称或非对称密码原语的次数)通信复杂度(比特)基于公钥体系的基于有限域DH的[6]2tpktρ+NXv基于椭圆曲线上DH的[6]2tpktϕ+NXv基于RSA的[30]2tpktρ+NXv基于电路的姚氏电路使用SCS12mσlogm+3mσsym6mΚσlogm+3mσGMW使用SCS18mσlogmsym6m(Κ+2)σlogm姚氏电路使用PWCσ(4 NYmaxb+4sNX+3 NY)sym2 NYΚmaxbσ+3sNXΚσ+2 NYσGMW使用PWC6σ( NYmaxb+sNX)sym2(Κ+2)σ( NYmaxb+sNX)姚氏电路使用OPRF21760NY+3σNYsym10880NYΚ+2NYΚσ+NXvGMW使用OPRF32640NYsym10880NY(Κ+2)+NXvCiampi等人的方案M(4σlogm+3σ)symm(2σ+1)mΚ基于OT协议的使用布隆过滤器[24]3 6mΚsym1 44mΚ(Κ+λ)使用哈希表[20]3 NY+(k+s)NXsym512 NY+(k+s)NXv使用哈希表[26](s+3)m+( m+s)sym4( m+s)k+(s+3)mv使用哈希表[31]∗-6Κn+βnlogm基于FHE的[46]--1 5CσNYlog2Nx㊀㊀注:其中sym和pk分别表示对称与非对称操作的统计,t=NX+NY,m=max(NX,NY),βʈλ+2logn-1, ,k,s,maxb是哈希函数用到的参数,v是在OT扩展协议中,使用的哈希函数的输出长度,C是一个常数,表示[26]的同态操作产生的密文扩展㊂标有∗的是在恶意模型下安全的协议㊂5㊀PSI性能的对比分析㊀㊀基于公钥密码的PSI方案中,一些协议公钥加解密操作的次数与集合大小成线性关系㊂因此虽然通信复杂度是最小的,但是计算开销远不及后面叙述的基于不经意传输扩展协议的PSI㊂使用公钥加密体系的PSI有另一个优点,就是在双方集合大小相差很大的情况下,花销很大的公钥加密操作可以集中在一方进行㊂结合这种方案通信复杂度低的优点,Chen等人在文献[28]㊁㊃501㊃。

隐私计算及其相关标准介绍

隐私计算及其相关标准介绍

隐私计算及其相关标准介绍作者:蔡鸣远谢宗晓来源:《中国质量与标准导报》2022年第04期0 引言隐私计算(Privacy Computing)是在需求推动下的一类技术的统称,前提是数据被作为生产要素,需要实现其价值。

如果仅需要保护隐私,或者说实现机密性,是不需要隐私计算的。

隐私计算也称为隐私保护计算(Privacy-persevering Computing),主要是指在保护数据隐私的前提下,实现数据的流通和应用等,就是常说的“可用不可见”。

因此,从隐私的整个生命周期来看,隐私计算只是其中一个环节。

1 分类按照不同的标准,隐私计算可以划分成不同的类别。

从隐私保护的角度而言,大致分为三类:(1)基于访问控制技术的方案;(2)基于密码学的方案;(3)基于信息泛化、混淆、匿名等技术的方案[1]。

这三类保护技术各有利弊,基于访问控制技术的方案并不适合数据交换和元数据存储等环节,基于密码学的方案可以较好地解决数据交换问题,但是交换后的信息如何管理需要其他方案,基于信息泛化、混淆、匿名等技术的方案降低了数据的可用性,目前采用的逻辑是处理后的数据和原始数据同时保存。

该分类一个更重要的问题在于与实践中所用词汇不一致。

例如,在隐私计算领域,提到最多的是多方安全计算、联邦学习、差分隐私等。

本文将常见的技术按应用的层次分为技术框架和基础技术。

其中,技术框架主要包含多方安全计算、联邦学习和可信执行环境。

基础技术主要包括同态加密、差分隐私、不经意传输、秘密共享和零知识证明等较为具体,但是不能成为单独应用的技术。

2 技术框架2.1 多方安全计算多方安全计算(Secure Multi-party Computation,MPC)是指没有可信第三方的情况下,一组互不信任的参与方在不泄露隐私信息的前提下,共同计算某一函数,并获取自己的结果,这需要同时实现数据的机密性和正确性。

多方安全计算起源于姚期智在1982年提出的百万富翁问题,即两个富翁在无可信第三方的情况下,想比较谁更有钱,但是又不想暴露自己的财产。

秘密比较

秘密比较

2011,ACM,安全两方计算公平性(被引68次); 2011,安全多方计算:从百万富翁问题到匿名者(被引3次) 2011,安全多方计算排序问题(被引4次),Science China Information Sciences 2013,Yao's millionaires' problem and decoy-based public key encryption by classical physics 通过经典物理学的姚氏百万富翁问题和诱捕式公钥加密 2013,Fair Two-Party Computations via the BitCoin Deposits( 被引2次)
1
协议三:保护私有信息的较小数的比较协议 协议四:保护私有信息的任意两数的比较协议
①长度函数 ②茫然传输
协议五:基于同态加密的百万富翁问题高效解决方案 • 协议思想:对保密输入进行0编码和1编码,将自然数编码成一个
集合从而把数据比较问题转化为集合的相交问题,并利用 ElGamal同态加密算法解决了这个问题,这是一个很有创意的协 议。 C类会议,ACNS, • 0-编码和1-编码 被引64次 • GT Protocol:
1
2
2006年,Damgard等人在无条件安全环境下,利用线性秘密 分享方案设计一个保护私有信息的数据比较协议。 2008年,Jin等人提出了一个百万富翁问题的扩展问题,即 向量优势问题。这个问题可以描述为两个参与方,各自拥 有向量A=(a1,a2,……, an),B = (b1,b2,…… ,bn),问题的输出 就是想知道是否对于所有的i,都有ai > bi,并且都不向对方 泄露自己的输入。作者在半诚实模型和恶意模型下都研 究了向量优势问题,并且给出了不同轮数的协议。

姚氏百万富翁问题的高效解决方案

姚氏百万富翁问题的高效解决方案

为了方便地给出半诚实模型下的安全性定义,首先引入
下列符号。假设协议的参与方分别为 Alice 和 Bob。Alice 和
Bob 要 计 算 的 函 数 为 f :{0,1}* ×{0,1}* 6 {0,1}* ×{0,1}* 。 函 数
作者简介:查 俊(1986-),男,硕士研究生,主研方向:保密通信; 苏锦海,教授;闫少阁、闫晓芳,硕士研究生 收稿日期:2009-12-22 E-mail:chazhajun@
(解放军信息工程大学电子技术学院,郑州 450004)
摘 要:姚氏百万富翁问题是安全多方计算的典型问题,但已有解决方案多数存在效率低的问题。通过采用0编码与1编码,将百万富翁 问题转换为集合交集问题,提出一种基于可交换加密函数的百万富翁问题高效解决方案,并进行了安全性证明。该方案无需复杂的模指数 运算,加解密运算为 O(n),通信轮数为 4,整体性能优于其他方案。 关键词:百万富翁问题;编码;交集;可交换加密;安全性
f (x, y) 的第 1 个元素记为 f1(x, y) ,第 2 个记为 f2 (x, y) ,计 算函数 f 的两方协议为 π 。Alice 和 Bob 在输入为 (x, y) 的情
况下执行协议 π 得到的信息分别为 VIEW1π (x, y),VIEW2π (x, y) ,其 具体值为 {x, r1, m1, m2,", mt} ,( {y, r2 , m1, m2 ,", mt} ),其中, r1 , r2 表示 Alice 和 Bob 拥有的随机数, mi 表示所收到的第 i 条 消息。OUTPUT1π (x, y)(OUTPUT2π (x, y)) 表示 Alice(Bob)在输入 为 (x, y) 的情况下执行协议 π 时得到的输出结果,显然它隐含

fpga密码算法加速的同态算法

fpga密码算法加速的同态算法

FPGA(Field Programmable Gate Array)是一种集成电路,它可以通过编程来定制其功能。

在密码学中,同态加密是一种特殊的加密算法,它允许在加密状态下执行计算,并在解密后得到正确的结果。

FPGA可以通过并行计算和定制逻辑电路来加速同态算法的执行,从而提高安全性和效率。

在本文中,我们将探讨使用FPGA加速同态算法的相关技术和方法,包括同态加密的基本原理、FPGA的优势和应用实例等。

通过本文的阐述,读者可以更深入地了解FPGA在密码学中的应用,以及同态算法加速的实际意义和挑战。

一、同态加密的基本原理同态加密是一种允许在加密状态下执行计算的加密形式。

它具有两种基本形式:完全同态加密(Fully Homomorphic Encryption,FHE)和部分同态加密(Partially Homomorphic Encryption,PHE)。

完全同态加密允许对加密数据进行任意计算操作,而部分同态加密只能进行特定的计算操作。

同态加密的基本原理是利用数学运算的特性来实现对加密数据的计算操作,而无需解密数据。

在同态加密中,加密算法和解密算法满足以下条件:1. 对称性:加密算法和解密算法是匹配的,可以通过解密算法还原出原始数据。

2. 可计算性:加密数据可以通过一定的运算得到正确的结果,而无需解密数据。

二、FPGA在同态算法加速中的优势FPGA在同态算法加速中具有以下优势:1. 并行计算:FPGA可以通过并行计算来加速同态算法的执行。

由于其可编程性和灵活性,可以根据具体的同态算法设计定制化的并行计算逻辑电路,从而提高计算效率。

2. 低延迟:FPGA具有较低的计算延迟和高速的数据处理能力,能够在实时应用中实现同态算法的加速。

3. 灵活性:FPGA可以根据应用需求设计定制化的同态算法加速模块,具有较强的灵活性和适应性。

4. 节能性:相较于传统的通用计算机,FPGA具有较低的功耗和高能效比,能够在同态算法加速中实现节能和环保的优势。

数据隐私保护的同态加密方法

数据隐私保护的同态加密方法

数据隐私保护的同态加密方法随着互联网和数字化时代的到来,数据的价值越来越被重视,但同时也带来了数据隐私泄露的风险。

个人的敏感信息和商业机密都需要得到妥善的保护,以防止未经授权的访问和使用。

在保护数据隐私方面,同态加密方法在近年来得到了广泛的研究和应用。

同态加密是一种特殊的加密技术,它允许在密文的基础上进行特定计算操作,得到与这些操作在明文上相同的结果,而无需解密密文。

这意味着数据可以在加密状态下进行计算,并在解密后获得准确的结果,而不会泄漏数据的明文。

因此,同态加密成为了数据隐私保护的有力工具。

一种常用的同态加密方法是基于RSA算法的同态加密。

RSA 算法是一种非对称加密算法,它使用了两个密钥:公钥和私钥。

发送方使用公钥对数据进行加密,而接收方使用私钥进行解密。

在基于RSA的同态加密中,操作在密文上进行的同时,密文的形式也保持在同一加密系统中。

这种方法的优点是简单易用,并且可以对任何形式的数据进行计算。

另一种同态加密方法是基于Paillier密码系统的同态加密。

Paillier密码系统是一种概率加密方法,它是非对称加密算法的一种变体。

在Paillier密码系统中,加密是通过将明文进行加密和乘法混淆实现的。

该方法具有较高的计算效率和安全性,并且广泛应用于隐私保护领域。

同时,近年来的研究也提出了更先进的同态加密方法,如基于椭圆曲线密码系统的同态加密。

椭圆曲线密码系统是一种基于数论问题的非对称加密方法,其公钥密码学的安全性较高。

基于椭圆曲线密码系统的同态加密通过使用椭圆曲线上的点进行计算,可以实现更高级的同态加密操作。

在实际应用中,同态加密方法可以用于保护个人隐私数据。

例如,在医疗保健领域,同态加密可以用于对患者的敏感医疗数据进行加密和计算,以提供个性化的医疗建议,同时保护患者的隐私。

同样,在金融领域,同态加密可以用于进行安全的数据分析和数据共享,以促进金融机构之间的合作,同时保护客户的隐私。

尽管同态加密方法在数据隐私保护方面具有巨大潜力,但目前仍存在一些挑战和限制。

全同态加密方案

全同态加密方案

引言全同态加密是一种先进的加密技术,可以将加密数据进行计算而无需解密,在计算结果上也能保持加密状态。

这种加密方案广泛应用于云计算、数据隐私保护等领域,具有重要的研究和实际价值。

本文将介绍全同态加密的基本概念、原理和应用,并探讨其在信息安全领域的前景。

全同态加密的基本概念全同态加密是指一种加密方案,允许对密文进行计算操作,得到的结果仍然是加密后的数据。

具体来说,对于两个密文C1和C2,全同态加密方案应具备以下性质:1.加法同态性: 对于明文m1和m2,通过加密算法加密得到的密文C1和C2,满足C1+C2 = Enc(m1) + Enc(m2) = Enc(m1+m2)。

即,对密文进行加法运算的结果与对应的明文之和的加密结果相同。

2.乘法同态性: 对于明文m1和m2,通过加密算法加密得到的密文C1和C2,满足C1 * C2 = Enc(m1) * Enc(m2) = Enc(m1 * m2)。

即,对密文进行乘法运算的结果与对应的明文乘积的加密结果相同。

3.解密性: 对于密文C,通过解密算法解密得到的结果D(C),满足D(C) = m。

即,密文经过解密操作能够还原为明文。

全同态加密的实现原理主要基于数学上的复杂运算和密码学技术。

其中,主要的数学基础涉及到离散对数问题、整数分解问题等难题。

具体实现全同态加密的算法有DGHV方案、BGV方案等。

下面简要介绍DGHV方案的原理:DGHV方案是一种基于整数分解问题的全同态加密方案。

其主要思想是通过整数分解问题构建一个同态系统,并利用置换和扩展技术来实现同态性。

具体实现步骤如下:1.参数生成:选择合适的安全参数n,并生成两个大素数p和q,使得p q >n^2。

此外,还需生成一些辅助参数,如模数N=p q、生成元g。

2.密钥生成:随机选择一个秘密密钥sk,并根据参数生成公钥pk。

3.加密算法:对于明文m,根据公钥pk和参数生成一个加密密钥ek,并将明文m和加密密钥ek进行加密,得到密文C。

基于多比特全同态加密的安全多方计算

基于多比特全同态加密的安全多方计算

第44卷第4期2021年4月Vol.44Ao.4Apr.2021计算机学报CHINESE JOURNAL OF COMPUTERS基于多比特全同态加密的安全多方计算唐春明胡业周(广州大学数学与信息科学学院广州510006)摘要本文中,我们首先证明了李增鹏等人提出的多比特多密钥全同态加密方案(MFHE)满足密钥同态性质,利用此性质,可以通过门限解密得到最终解密结果•使用该方案,我们设计了一个在CRS模型下和半恶意攻击者模型下安全的三轮多方计算协议(MPR.该安全多方计算协议的安全性是基于容错学习问题(LWE)的两个变种问题Ferr-LWR和Some-are-errorless.LWR,而且,通过非交互的零知识证明,我们可以把半恶意攻击者模型下安全的三轮多方计算协议转变为在恶意模型下安全的三轮多方计算协议使关键词全同态加密;多密钥多比特;门限解密;LWE及其变种问题;安全多方计算中图法分类号TP309DOI号年.01897/SE O.1016.2020.00836Secure Multi-Party Computation Based on Multi-Bit FullyHomomorphic EncryptionTANG Chun-Ming HU Ye-Zhou(School of M-a.Lherna.Lics and InformaLion Sciences,Guangzhou UniuersiLy,Guangzhou510006)Abstrac-N this paper,we study securr multi-party computatiog based or multi-bit fully homomorphic encryptiog.N the previoue work,s lot ol researcO hae bees dons or the secure multi-parts computing protocol baseO on single-bit full homomorphie encryptiog.Although this protocol can bc naturallp extendeO to multi-bit version,it neeOs to bc encrypted repeatedly, whicU great—reducee eXiciencp.On ths othee hand,we know tha-in ths full homomorphie encryption schernes based on ring-LWS sucU ee EGV,multi-bite ca_n be encrypted simultaneouslpbp usinp the Chiness remaindee theorem,namelp SIMD operatioc.However,t those schemee,the dimension of ciphertext expants too fast,se the evaluated kep is needet to perform re-lineanzationto reduce the dimension ot ciphertext.Therefore,we choose GSW full homomorphir encryptiot scheme se ths basie to build o secure multi-partp computation protocol.M2017,Li ed dual LWE S o convert GSW full homomorphie encryption into multi-bit version,which cou IO encrypt-bite st ths same time.Based on this scheme,we construe-o three-round secure multZ partp cornputQticu.We firs-prove tha-the multi it multi kep fully homomorphie rncryption scheme(MFHS)satisfiee ths key homomorphie property,because in ths publie key generation phase,ea_ch party usee e common random matrip.With this property,ths final decryption resuitcan i obtained by threshold decryption,na_mby each participan-can use its own private kep to decrypt the evaluated ciphertext.M combination with the partial decryption ot all parties,the plaintext datt co i inp this scheme,we design o three-round secure multi-partp收稿日期:2020-01-M;在线发布日期:2020-05-11.本课题得到国家自然科学基金项目广1772年卷满十三五”家密码发展基金项目(MDJJ20170117S.广东省重大基础研究培育项目(广15A1601年)、密码科学技术国家重点实验室开放课题项目(MMKFKT201913)X州市教育局协同创新重大项目(1年161年05)、广州大学全日制研究生“基础创新”项目M—GDJCM28)资助.唐春明,博士,教授,博士生导师,主要研究领域为密码学及其应用.Wmail:ctan—.w.胡业周,硕士研究生,主要研究方向为全同态加密与安全多方计算.4期唐春明等:基于多比特全同态加密的安全多方计算837computation protocol(MPC)in the CRS model and semi-malicious adversary model.The number of rounVs of three is optimal,because nt the ciphertext generatiou stage,eacO participant neeVs th leash onr rounV to mcrypt the private messaer using the public key of all to br calculateC re thr joint public kep.Thm,in the seconV round,eacO party publishes the ciphertext thah encrypts its owe private date to calculate evaluateC ciphertext,anV in the(st round,all partiee publist thCs owe partial decryption to reconstruct the fid messare.We compare it with the misting secure multi-partp computation protocol baseC ou GSW full homomorphic encryption scheme,becausc wc can encrypt multipls bitt a_t ths sams time,so the eCiciencp is ths highest.The securitp of ths secure multi-partp computing protocol is baseV on the variante of the Learning with Errore Problec(LWE)calleV Ferr-LWE anV Vome-are-errorless.LWE problem,ths cUfficultp it ths same as solvinr ths LWE problem.Wc can usc ideat ve reat models to provs this,aamelp usinr r simulatoe to simulats ths input of ths honmt ply,rd finallp p seriee of hybrid gaem arc defined to provs that ths idS rd ths reC arc computatiop indistinguishable,whicU it hold whm therr is only onr honmt party,U so wc cad provs ths securitp againse those who corrupt ths arbitrary numbee of partiee usinr only pseudorandom functione.Od ths other ha_nd,ba_sed on non-interactivs zem knowledge proof,we cad transform the Three-round secure multipartp computatiop protocol undee the semi-malicioue adversarp modee O w the Three-rotrnd secure multipartp computation protocol undee the malicioue modeLKeywords fully homomorphic encryption;multi bit multi kep;threshold decryption;LWE a_rW its variants;secure multi-partp computation1引言随着大数据行业的兴起与云计算的发展,数据的隐私保护越来越受到人们的关心,其中安全多方计算和全同态加密在数据的隐私保护中发挥着重要的作用.安全多方计算最先由姚期智在1982年解决“百万富翁”问题时提出巴通常来说,安全多方计算协议是指在狀个不同的参与方方9狆年…狆”}之间,协同计算某一个函数M,狔,…,_y”)=/(m,狓,…狓),计算完毕后,每个参与者P,仅仅知道自己的输入心和输出”,但对于其他人的输入和输出得不到任何信息.全同态加密的概念最先由RivesS〕在1978年提出,旨在不解密的情况下,对密文进行运算,其结果和直接在明文上进行操作相同全卩decMMnc(M99,EncMi〕年,…,EncM个)))=/((9 ,犿2,……个.目前,对多比特的全同态加密以及单比特的安全多方计算做了大量的研究,但如何构造一个基于多比特GSW全同态加密方案的安全多方计算协议,而不是采用逐比特加密,仍然是个未解决问题.本文利用文献[3冲多比特全同态加密方案以及其密钥同态的性质,构造了一个基于多比特全同态加密方案的安全多方计算协议,并与近些年同类的方案做横向对比,发现其性能是最优的.本文第2节综述相关工作;第7节给出一些与本文相关的定义及定理并简要叙述文献3提出的多比特全同态加密方案和该方案的正确性及安全性;第4节证明该方案的密钥同态性;第5节利用该方案构造一个多比特的安全多方计算协议,证明其安全性并分析其性能;第6节总结全文.2相关工作1987年,GoldreicU等人提出一个安全多方计算协议,该协议可以计算任意函数,并在下一年给出了安全多方计算的安全性定义3.目前常用安全多方计算协议的构造方法有如下几类:基于混淆电路的安全多方计算协议;基于不经意传输的安全多方计算协议3.基于可验证秘密共享的安全多方计算协议3;基于混合匹配的安全多方计算协议3;基于HE的安全多方计算协议39.全同态加密的发展较为缓慢,直到2008年,才由Gentry提出了第一个基于理想格的全同态加838计算机学报2021年密方案随后,众多的全同态加密方案也应运而生.可以将其发展阶段分成三个阶段,第一阶段是基于Gentry所提的全同态加密方案,代表的方案有SV22、SS28、LMSV10等.第二阶段是Brakerski和Vaikuntanathan利用LWE和ring-LWE的假设实现了FHE.其代表方案有BGV年年、Bra年年、SV年年等.第三阶段是基于LWE假设,利用近似特征向量构造的FEE方案,其代表的方案有GSW(1年)、CM(1年)、MW(()等.对于多密钥的FEE是由LOPEZ-AltAc Tromere、Vaikuntanhanv提出,他们利用改进的NTRU方案构造了一个MFHZ方案,但该方案的复杂度太高,且复杂度随着用户的增长呈现出指数增长年.在CM(15)和MW(1年中,提出了一个多密钥的全同态加密方案和一个在CRS模型中的1轮MPC协议.将一个密文矩阵通过扩展(Expand)操作众生一个新的密文,并将密钥级联成组合密钥,用组合密钥解密扩展后的密文可以得到正确的解密结构.但是该方案的密文矩阵体积过大,且在Expand操作中,需要利用联合操作产生一个掩盖信息.在BHEE)中,提出了一个在平凡模型中基于多密钥全同态加密的MPC协议,且抵抗半恶意的敌手只需三轮通信,若想抵抗恶意敌手,只需增加一轮即可5.这些全同态加密方案都是单比特加密的方案第门限解密即每一方利用自己的私钥解密密文产生各自的部分解密,然后每一方结合其他人的部分解密可恢复出明文.上述提到的几种全同态加密方案都可以使用门限解密得到最终的结果.3多比特全同态加密(MFHE^)方案3・1记号对于自然数狀Z,且]代表{1,提…,提.对于一个自然数狓Z众众」代表最接近狓但小于北的整数•小写粗斜体字母代表向量众写粗斜体字母代表矩阵.对IA兀代示矩阵和向量的水平连接,(M提,M")表示两个向量的水平连接需•表示两个向量的内积•对于向量兀=(M,需,…,…),…二1需范数指的是II兀II严狓狆代co范数指的是II= ex(Mi丨,I|,…,I|)表范数指的是II=^\l\,仏范数指的是II£I丨1对于一1-1V个矩阵A,犪代表的是矩阵A的第2列向量小A||表示矩阵A中仏范数最大列向量,即I=ex-|—3・2定义与定理定义1.算法BhDecomp~1指输入一个n^mXq维向量兀=Ml,o2…,I I5-1,…,I ,5,…,I,第-1)输狇一]q—1出一个p维向量(M21,第…,n狓,第).其中J-2J-2I,,…,I,—i,…,x”,i,…,—1不必是{0,5}.定理I1.对于任意的p〉"「log—存在一个固定的矩阵G Z—q,和一个确定性的“原像”函数G^M),满足如下的情形:对于任意的〉,输入矩阵M^Z—P\逆函数G lM)输出一个0,1}矩阵,即G1:M)e{0,l}pXp,使得G G-}M)=m.定义2.—个基于整数上的分布O矩犖,我们称该分布是B-有界的,如果:Er狓三B[=mg/(M,其中,negl(M是一个可忽略函数.定理21.对于服从H有界分布的一系列随}犖机变量狓m犖)表则机变量狓m2狓同样也服-—5从该H有界分布.定理3〔2.对于Z"中的向量x以及c Dz〉…,当|“T・e I的值被看作成[0,…——1里的一个整数,则满足:|X1"•e H I®'•/log x+||I4〉/2,其中,D z〉”是高斯分布,/•是高斯参数.定义3.对于在有限域Q上的两个分布X与Y,X与V之间的统计距离指的是A(M,Y)操12|XM)—YM中.如果MM,只)的值是可忽略厶)z n__stair的,则写作X~Y.定理40、.对2ZZ,n Z犖,q—N,〉>n logg+ 2A.A Z犣”是一个均匀随机矩阵,是0,1}〉,以及y犚么有:△((M,只T•是,(M,n)—21定义4(Learning with Errors).对于一个秘密向量sZZZ,在犣〉上的LWE分布人…指的是均匀选取a Z Z「。

一种实用高效的安全多方排序协议

一种实用高效的安全多方排序协议

一种实用高效的安全多方排序协议王宁;顾昊旻;郑彤【摘要】安全多方排序问题是保护用户隐私的多方协作计算中最为重要的核心问题之一.为避免基于比较的排序方法,借鉴计数排序和桶排序的思想,把多方排序问题简化为多方求和问题.采用数据压缩及巧妙的编码方法,结合安全多方求和技术,发挥蒙特卡罗算法的优势,构造了一个安全实用的多方排序协议.该协议保证了解决安全多方排序问题的安全性、有效性、公平性.【期刊名称】《计算机应用与软件》【年(卷),期】2018(035)010【总页数】7页(P305-311)【关键词】安全多方计算;安全多方排序;安全多方求和;计算排序;桶排序【作者】王宁;顾昊旻;郑彤【作者单位】国网河南省电力公司信息通信公司河南郑州450052;安徽继远软件有限公司基础运维分部安徽合肥230088;安徽继远软件有限公司基础运维分部安徽合肥230088【正文语种】中文【中图分类】TP30 引言安全多方计算研究一组互不信任的参与方之间保护隐私的合作计算问题,最早由图灵奖得主姚期智先生于1982年提出[1]。

文献[1]构造了这样一个问题(简称百万富翁问题):两个百万富翁Alice和Bob在街头相遇,其中Alice拥有财富a,Bob拥有财富b。

他们希望在不泄露自身财富信息的前提下比较出他们谁更富有,即两方秘密比较a和b的大小。

此后,出现了很多解决百万富翁问题的安全方案[2-3]。

安全多方排序问题是百万富翁问题(两方秘密比较)的自然推广:假定有n个参与者P1,P2,…,Pn分别拥有隐私秘密x1,x2,…,xn(令X={x1,x2,…,xn}),他们希望在不泄露各自隐私秘密的前提下得到各自秘密在有序序列X′中的位置p(xi),其中X′是X 中n个秘密按从小到大排序的序列。

排序问题是计算机科学领域最为重要并得到广泛研究的核心问题之一,它是求解许多复杂问题的基本构成单元。

同样地,安全多方排序在保护用户隐私的多方协作计算领域有着很重要的应用价值,是很多复杂协议的基础协议。

终于把隐私计算、联邦学习、多方安全计算、机密计算、差分隐私全搞清楚了!

终于把隐私计算、联邦学习、多方安全计算、机密计算、差分隐私全搞清楚了!

终于把隐私计算、联邦学习、多方安全计算、机密计算、差分隐私全搞清楚了!隐私计算、多方安全计算、联邦学习等技术现在很火,但网上查的的资料要么太深看不懂,要么太浅搞不明白,要么太碎形不成体系,今天就用业务的语言给你彻底讲清楚。

首先讲一个百万富翁比财富的故事:两个百万富翁街头邂逅,他们都想炫一下富,比比谁更有钱,但是出于隐私,都不想让对方知道自己到底拥有多少财富,如何在不借助第三方的情况下,让他们知道他们之间谁更有钱?这是几十年前多方安全技术(隐私计算的一种技术)要解决的经典问题。

你也许马上就会想到,如果能在不知道对方数据的情况下进行数据的融合安全计算,从而获得一个有价值的结论,这不就是数据领域梦寐以求的东西吗?的确是这样,如果说深度学习的出现让AI焕发新生,那么数据流通和共享带来的巨大商机让隐私计算焕发出新生。

与传统的资本、土地、劳动、技术等一样,数据已是生产要素之一,与算力、算法组合,成为一种新型社会生产力,越来越多的业务场景需要多方数据的流通和共享。

在金融领域,银行保险机构借助内外部数据进行联合建模,实现数字营销、精准获客、差异化定价、智慧风控及反欺诈等。

在医疗领域、医药企业、医疗机构和保险公司通过病例数据共享,形成联合AI模型进一步提高精准度。

在政务、能源、交通、环保、工业和电信等具备大量数据基础的领域,数据共享和利用已经成为规划和落地应用必不可少的部分。

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

隐私计算其实是一堆“数据可用不可见”技术集合,包括多方安全计算、联邦学习、机密计算、差分隐私及数据脱敏等等,这些技术既有联系又有区别,既有优势也有劣势,如果你不明觉厉或者一知半解,一定要读一读这篇文章。

同态加密的原理与应用

同态加密的原理与应用

同态加密的原理与应用同态加密是一种特殊的加密技术,它具有在密文域进行计算操作的能力,而无需解密密文。

这种加密方法在计算机安全领域具有重要的应用价值。

本文将介绍同态加密的原理及其在实际应用中的相关场景。

一、同态加密的原理同态加密的原理是基于离散对数和大素数等数学难题。

同态加密算法允许在不知道密文的情况下对密文进行某些计算,然后得到结果的加密形式。

具体而言,同态加密分为完全同态加密和部分同态加密两种类型。

完全同态加密(Fully Homomorphic Encryption,FHE)能够实现任意加法和乘法运算,并且保持计算的正确性。

部分同态加密(Partially Homomorphic Encryption,PHE)只能支持特定的计算操作,通常是加法或乘法运算。

这种区别对于应用场景的选择和实现方式的确定非常重要。

二、同态加密的应用1. 数据隐私保护同态加密在云计算和数据隐私保护中具有广泛应用。

当用户将数据存储在云服务器上时,传统的加密方法往往需要解密数据后才能进行计算操作,这会暴露数据隐私。

而同态加密可以通过在密文域进行计算,保护用户数据的机密性。

例如,医疗机构可以使用同态加密技术将患者数据上传至云服务器,而云服务器在不解密的情况下完成统计计算。

2. 数据共享与协作在有限的信任环境下,同态加密可以实现多方对密文数据进行计算,而无需将数据解密。

这在跨机构协作和数据共享场景中非常有用。

例如,金融行业的合规审计需要跨多家银行进行数据比对,使用同态加密技术可以确保数据隐私的保护同时实现数据验证。

3. 安全计算外包同态加密还可以用于实现安全计算外包。

将计算任务(如图像识别、机器学习等)交由云服务器处理时,同态加密可以保障数据隐私并确保计算结果的正确性。

这种方式可以有效减轻终端设备的计算负担,提高计算效率。

4. 电子投票系统同态加密在电子投票系统中具有重要的应用。

传统的投票系统需要将选票送往特定的地点进行计票,而同态加密可以在保护选民隐私的同时,实现对选票的加密计算和统计。

基于多密钥同态技术的安全多方计算协议

基于多密钥同态技术的安全多方计算协议

基于多密钥同态技术的安全多方计算协议王会勇;冯勇;赵岭忠;唐士杰【摘要】In order to build a multi-key secure multi-party computation ( SMC) protocol with high performance, the key homomorphic properties of Gentry-Sahai-Waters (GSW13) fully-homomorphic encryption (FHE) scheme is in-vestigated. Afterwards, a general multi-key SMC protocol with simple structure, which needs only 3 rounds of inter-actions, is proposed on the basis of leveled GSW13. In the semi-honesty and semi-malicious setting as well as in the common random string model, the security of the protocol relies on the learning with errors ( LWE) problem and a variant of LWE. Then, the difficulty in solving the variant is analyzed, and a formalized security proof in semi-malicious setting is given. The proposed SMC protocol naturally constitutes a leveled multi-key FHE scheme in the same setting. Comparative analysis results show that the proposed protocol is superior to the existing schemes in terms of overall performance.%为构造具有良好性能的多密钥安全多方计算(SMC)协议,对Gentry-Sahai-Waters(GSW13)全同态加密(FHE)方案的密钥同态性质进行了研究.在此基础上提出了一个基于GSW13方案的层次型多密钥SMC协议,该协议构造方式简单,只需要3轮通信,且在半诚实与半恶意环境和公共随机串模型下,其安全性可以归结到容错学习问题(LWE)和它的一个变种问题;分析了该变种问题的困难性,并给出了半恶意模型下该协议的形式化安全证明.该协议自然构成一个相同环境下的层次型多密钥全同态加密方案.对比分析表明,文中协议在整体性能上优于已有方案.【期刊名称】《华南理工大学学报(自然科学版)》【年(卷),期】2017(045)007【总页数】8页(P69-76)【关键词】安全多方计算;多密钥全同态加密;密钥同态;门限解密;GSW13【作者】王会勇;冯勇;赵岭忠;唐士杰【作者单位】中国科学院大学成都计算机应用研究所,四川成都610041;桂林电子科技大学数学与计算科学学院,广西桂林541004;中国科学院重庆绿色智能技术研究院自动推理与认知重庆市重点实验室,重庆400714;桂林电子科技大学广西可信软件重点实验室,广西桂林541004;桂林电子科技大学广西可信软件重点实验室,广西桂林541004【正文语种】中文【中图分类】TP309.7安全多方计算(SMC)概念来源于Yao[1]提出的安全两方数据比较问题(百万富翁问题),旨在解决多个参与者联合保密计算某个函数的问题.1987年,Goldreich等[2]提出了可计算任意函数的基于密码学安全模型的安全多方计算协议,并于1988年提出了SMC的安全性定义.目前,对SMC的研究主要集中在一般方案与特殊方案两个方向[3],研究内容主要包括不同环境(半诚信、半恶意及恶意环境)和不同信道(同步或异步信道)下的方案,研究工具主要有可验证秘密共享(VSS)[4- 6]、不经意传输(OT)[7- 8]、同态加密(HE)[9- 11]和混合匹配[12]等.其中,同态加密技术在SMC设计中显示了良好的潜力,受到越来越多关注. 全同态加密(FHE)思想是由Rivest等[13]在1978年提出的.2009年,Gentry[14]构造出第一个FHE方案.其后出现了多种方案,如DGHV10方案[15]、BV11方案[16]、BGV12方案[17]、GSW13方案[18]、NK15方案[19]等.目前,学界针对基于FHE技术的SMC方案开展了大量的研究.Lóope z-Alt等[9]提出了多密钥全同态加密(MFHE)概念,同时给出了一个“洋葱式”的MFHE构造思路,并利用该思路和改进的NTRU加密方案[20]构造了一个可以“离线”运行(On-the-fly)的MFHE协议.该方案的主要优点是构造过程不依赖于具体的FHE方案,缺点是加解密复杂度太高,且方案复杂度随用户数量呈指数增长.文献[10,21]给出了构造MFHE方案和SMC协议的另一种方式.其基本思路是将GSW13方案的密文矩阵通过级联方式组成联合密文矩阵,同时将相应密钥组合成联合密钥进行加密与解密.其主要缺点是通过级联方式构造出的密文矩阵体积很大,且构造过程需要计算额外的掩盖信息.Asharov等[11]提出了门限FHE的概念,并构造了一种只需两轮交互的MFHE方案和对应的SMC协议.与以前方案相比,其优点是加解密运算复杂度低.主要缺点是构造过程依赖于Bv11[16]与BGV12[17]方案,而这两个方案在进行同态乘法时的密文膨胀率很高且需要运行密钥.为充分利用GSW13方案的优点,文中研究了其密钥同态性质,在此基础上构造了一个层次型多密钥SMC协议.该协议使用门限式解密,在半诚信、半恶意环境和公共随机串(CRS)模型下的安全性可以归结到容错学习问题(LWE)及该问题的一个变种问题(Some-are-errorless LWE)上.研究了该问题的困难性,并给出了半恶意环境下的形式化安全性证明.由该协议的构造过程可以自然抽象出一个多密钥FHE方案.1.1.1 符号文中,对n∈Z+,用内满足a≡ v(modq)的唯一整数v.对某分布,用x表示按抽样得到x.log表示以2为底的对数函数.记其中q∈Z.1.1.2 B-有界分布[18]对B∈Z+,一个基于整数集的分布序列{χn}n∈N称为Bχ-有界的,如果满足:其中每一个分布n都称为一个Bχ-有界分布.定理1 设ei(i∈[N])为一系列服从某个Bχ-有界分布的独立随机变量,则随机变量也服从该Bχ-有界分布.证明:由已知,不妨设E(ei)=.根据马尔科夫不等式,有:.故知结论成立.1.2.1 一般定义一个单输出的SMC协议的一般形式化定义[9]可以描述为:设有N个参与者组成集合{P1,P2,…,PN},每个参与者P拥有一个私有数据xi,i∈.一个SMC协议允许所有参与者合作计算某个可计算函数y=f(x1,x2,…,xN).计算结束后,每个参与计算者Pi都能够得到y,但不能得到关于其他参与者Pj(i≠j)的私有数据.1.2.2 计算模型SMC的计算模型分为半诚实、半恶意和恶意3种情况.在半诚实模型下,参与计算者会严格按照协议操作,不会主动更改协议或数据.但可能保留中间计算结果,用于推算其他用户的私有数据.半恶意模型可以被看成一个交互式图灵机(ITM),除拥有标准磁带外,还拥有一个证据磁带.在协议的任何时刻,半恶意敌手必须将它代表某个用户发出的任何信息记录到证据磁带上.该敌手根据输入和一定随机性来决定是否忠实履行原协议.恶意模型是指模型中的参与方可以任意篡改、泄露协议和数据,甚至可以阻止协议的正常执行.任意半恶意模型下的SMC协议都可以借助于非交换的零知识证明(NIZKs)等工具转化为恶意模型下的协议[11].因此,文中只在半诚实和半恶意模型下考虑所设计SMC协议的安全性.LWE问题已经成为多个密码学源语的困难性基础.Regev[22]首先给出了该问题的一个量子规约.Brakerski等[23]首次给出了该问题的一个多项式规约,并讨论了带有一个等式约束的LWE问题(被称为First-is-errorless LWE)的困难性.将该概念进行扩展,考虑有多个等式约束的LWE问题的困难性.这是构建多密钥SMC协议的一个安全性基础.定义1 Some-are-errorless LWE设n≥1为维数,q≥2为模,l≥1为整数,为R上的误差分布.是上按照如下方式构造的概率分布:均匀随机选取依分布选择误差e,然后输出(a,<a,s>+e).搜索版本的Some-are-errorless LWE问题(表示为LWEn,l,q,χ)的目标是:给定l 个来自分布As,0的独立样本和任意个来自As,χ的独立样本,以高概率输出秘密向量判定版本的任务是以不可忽略的优势区分如下两个场景:在第一个场景中,均匀随机选择秘密向量;从分布As,0选取l个样本,然后从As,χ选取任意多个样本;在第二个场景中,从均匀随机选取所有样本.定理2 对整数n,q,l≥1(l≪n)和Tq上的误差分布,必存在一个从LWEn-l,q,χ问题到Some-are-errorless问题(LWEn,l,q,χ)的多项式规约.该规约最多将对应问题的成功优势降低这里p取遍q的所有素因子.证明:首先,均匀随机选择向量记r为a′的所有分量的最大公因子.如果r与q不互素,则终止算法.记a′的第i个分量为由于故与q有公因子的可能性为p-1,其中p为q的某个素因子.因而出现上述情况的可能性最大为若r不整除q,构造一个可逆矩阵使其最左一列为向量a′.矩阵U可以通过如下两个步骤来构造.(1)利用扩展欧几里得算法构造一个幺模矩阵R,满足Ra′=(r,0,0,…,0)T.(2)记U=R-1·diag(r,1,…,1).由R为幺模矩阵且Ra′=(r,0,0,…,0)T,知R可逆且有:R-1Ra′=a′=R-1(r,0,0,…,0)T,即a′为矩阵R-1的最左一列乘r.而U=R-1·diag(r,1,…,1)即为将R-1的最左一列乘r,其他元素不变.故U为满足条件的矩阵.均匀选取l个元素s0,s1,…,sl-1∈Zq,然后按照如下步骤构建规约过程,其中i=0,1,2,…,l-1.(1)从输出前l个抽样.(2)从谕言机获得样本任选di∈Tq,输出(U(d0|d1|…a),b+(s0·d)),这里竖线表示矩阵级联.若给定均匀随机样本,上述规约过程输出的样本与均匀随机分布的统计距离最大为2-n+l.这是因为:首先任意两个来自T的均匀随机变量的统计距离最大为2-1,因此两个Tn上的均匀随机向量的统计距离最大为2-n.由于前l个抽样的b部分在Tq上是均匀的,因此,来自的样本与均匀随机抽样的最大统计距离为2-n+l.记s′=(U-1)T((s0,s1,…,sl-1)|s)modq.若给定来自的抽样,该规约输出l个来自As′,0的抽样,其余抽样来自最大统计距离为2-n+l,这是因为[23]:由于U可逆,故s′=(U-1)T((s0,s1,…,sl-1)|s)是一个关于s和s′的双射.而s在上是均匀随机选择的,故也是均匀随机的,从而有上述结论.若q为素数,该规约最多将成功优势降低q-n.若q不是素数,则成功优势的损失最大为这表明只要n足够大,该规约的成功优势损失是可忽略的,即LWEn,l,q,χ问题的困难性可以与LWEn-l,q,χ问题相同.Boneh等[24]对具有密钥同态性质的伪随机函数进行了研究,其基本定义如下.定义2 (密钥同态伪随机函数[24]).设F:K×X→Y是一个伪随机函数(PRF),其密钥空间K具有群结构并具有某种群运算⊕;X和Y分别是明文和密文空间.称F是密钥同态的,若对任意k1,k2∈K,由F(k1,x)和F(k2,x)能找到某有效算法计算F(k1⊕k2,x).现对该定义进行扩展,并将密钥数量扩展到N.定义3 对某公钥加密方案E,设(pki,ski)为有效的公钥/私钥对.若对pk=f(pk1,pk2,…,pkN),能找到sk=g(sk1,sk2,…,skN),使(pk,sk)也是E的有效密钥对,则称E具有密钥同态性质,其中f和g为可有效计算的函数.特别地,若f 和g都是求和(乘积)函数,称E具有密钥加(乘)同态性质;若f和g都是线性函数,则称E具有密钥线性同态性质.3.2.1 GSW13方案GSW13方案是基于容错学习(LWE)问题的FHE方案.文中将利用该方案作为构造多密钥SMC协议的基础.为了叙述的简洁性,文中使用文献[25]的方式来描述该方案.定理3[25] 对m,m′,n∈Z且m≥n「log q⎤,必存在矩阵和一个函数G-1,满足对任意矩阵是0-1矩阵,且GG-1(M)=M.在文献[18]中,G与向量a或矩阵M的乘法结果就是对该向量或矩阵的比特合成,而G-1(a)表示对a的比特分解. GSW.Setup(1λ,1d):取格维数n=n(λ,d), 这里λ为安全参数,d∈Z是待运算电路的最大与非门(NAND)深度;取一个Bχ有界分布(λ,d)和一个大小为q=Bχ2ω(dλlogλ)的模q.以上参数能使得LWEn-1,q,χ问题的困难性假设成立.记m=nlog q+ω(log λ).GSW.KeyGen:取随机矩阵和向量记b=sB+e,其中e为小误差向量.取公钥私钥GSW.Encrypt:对明文μ,构造均匀随机矩阵R∈{0,1}m×m,计算C=AR+μG.GSW.Decrypt:记w=(0,0,…,「⎤),对密文矩阵C,计算v=tCG-1(wT)≈μ「⎤.若v的值接近0,则μ的值取0.若v的值接近「q/2⎤,则μ的值取1.GSW.Evaluation:对两个输入密文C1和C2,其同态加法、乘法和与非门(NAND)运算可以定义为:ADD(C1,C2): Output C1+C2∈.MULT(C1,C2): OutputC1G-1(C2)∈.NAND(C1,C2): Output G-C1G-1(C2).正确性:由公钥的构造方式可知有tA=e≈0成立.故tC=tAR+μtG≈μtG.故有:v=tCG-1(wT)≈μtGG-1(wT)≈μ「⎤.3.2.2 密钥同态性质定理4 在GSW13方案中,设为向量.取私钥公钥其中bi=siB+ei,i∈[N].记若用pk对明文μ加密得到:C=AR+μG.则可用对该密文解密.即如果保持矩阵B不变,则该方案具有密钥线性同态性.证明:可知有成立.故仍有tC=tAR+μtG≈μtG.因此按原方案解密可得到明文μ.故在B不变的情况下,该方案是密钥线性同态的.GSW13方案的基础方案是层次型的,即只能做有限次同态运算.要去除此限制,目前只能借助于自举技术,但自举技术会破坏GSW13方案的大部分优势.因此文中将构造基于层次型GSW13方案的SMC协议.以下叙述中,i∈[N].协议πf:分布式半诚实及半恶意环境和CRS模式下,安全计算单值函数f的协议. 输入:用户数量N(其中第i个用户的标识为Pi);用户Pi拥有隐私数据μi∈{0,1}.一个确定性PPT可计算函数f:{0,1}N→{0,1},被表示为一个仅包含与非门(NAND)的布尔电路Cir,其与非门电路最大深度为d.输出:μ=f(μ1,μ2,…,μN).步骤1 参数设置Setup(1λ,1d),包含两个操作.(1)选取格维数n=n(λ,d), 这里λ为安全参数;一个Bχ有界分布和一个大小为Bχ2ω(dλlogλ)的模q.以上参数满足对l=⎤log q」+1,Some-are-errorless问题是困难的,且q/B>8((n+1)·l+1)d.令m=n·l.(2) 选择公共随机串矩阵B步骤2 密钥生成:用户Pi执行如下算法.(1)SKGen(params):Pi取si输出私钥(2)PKGen(params):取随机向量eim,计算取个人公钥pki=Ai=[Bbi],其中上标i 是用户Pi的身份标识.步骤3 联合公钥生成及加密:每个用户公开自己的公钥pki并接收他人公钥,执行如下操作:(1)生成联合公钥.所有用户计算:(2)加密:用户Pi选择随机矩阵Ri{0,1}m×m,然后计算其中μi∈{0,1},为用户Pi 的隐私数据.将得到的密文Ci公布.步骤4 同态运算:所有用户在得到其他用户的密文矩阵Ci后,执行同态计算:CEvaluate(pk,Cir,C1,C2,…,CN)∈.其同态加法、乘法和与非门(NAND)运算定义与GSW13方案相同.步骤5 门限式(Threshold)解密:所有用户执行如下操作.(1)用户Pi选取随机向量令计算然后公布ωi.(2)得到所有ωi之后,计算:其中t为隐含的公用私钥,不显式出现.(3)所有用户计算v=ωG-1(wT),其中w=(0,0,…,「⎤).若v的值接近0,则取μ=0;若v的值接近「⎤,则取μ=1.上述过程同时给出了一个MFHE方案.该协议的正确性主要依赖于两个方面.首先,GSW13方案的正确性已经得到证明,故只需考察所用参数是否正确.其次,由原方案知,按上述参数设置,该方案在进行d层与非门同态运算之后的噪音不超过((n+1)·l+1)dBχ.因此,只要q/Bχ>8((n+1)·l+1)d,就能保证进行d层与非门同态运算后的误差(由v=ωG-1(wT)得到的v与μ的距离)不超过q/8,从而可以通过模q得到正确结果.其次,协议的加解密正确性主要涉及3个问题.(1)公用密钥对的正确性.协议πf所用密钥对的有效性已经由定理1.1得到证明.(2)方案中所取误差向量的分布问题.定理3.2已经证明了协议πf中的联合误差是服从某Bχ-有界分布的.(3)联合解密的正确性.首先,联合密钥对的合法性已经得到证明,即若有C=Enc(pk,μ),则必有μ=Dec(sk,C).其次,由步骤5知:由此可得:ωG-1(wT)=(tC+σ)G-1(wT)=tCG-1(wT)+σG-1(wT)=μ「⎤+μ「⎤.最后一个等号成立的原因是:G-1(「⎤)是对「⎤的比特分解,而由l=⎤log q」+1知「⎤的比特长度最大为l.由GSW13方案的正确性知,按照步骤5的操作即可解密得到μ=f(μ1,μ2,…,μN).4.3.1 半诚实模型下的安全性在半诚实模型和公共随机串(CRS)模式下,文中协议的安全性基于以下几个问题.(1)在上述设置下,GSW13基本方案的安全性可以归结为容错学习问题LWEn,q,χ.(2)部分解密结果的安全性.由步骤5可知,在等式ωi=ti·C+σi与ω=tC+σ中,ti和t为私钥,ti·C和t·C运算等价于向量内积运算,且σi和σ的前l个分量是服从Bχ-有界分布的,因此这两个等式构成了Some-are-errorless LWE问题,从而公布部分解密结果不会泄露用户隐私数据及私钥ti和隐含密钥t.4.3.2 半恶意模型下的安全性半恶意模型下的安全威胁主要来自于合谋(串谋)攻击,即多个用户合作利用其私有数据和公有数据,试图获得其他用户的私有数据.以下将考虑极端情况,即所有N 个用户中只有一个诚实用户Ph,其他N-1个半恶意用户合作攻击Ph.另外为方便表示,用ρi=ωiG-1(wT)+δi=vi+δi代替4.1节步骤5中的ωi作为用户Pi的部分解密结果,其中δi.由G-1(wT)的确定性知,若通过模拟得到的ρi与通过真实部分解密结果ωi计算得到的ρi不可区分,则真实的ωi与模拟得到的ωi也是不可区分的.定理5 设f为一个具有N个输入和1个输出的多项式时间(PPT)可计算的确定性函数.则上述协议πf能够在存在一个俘获了N-1个用户的静态半恶意敌手A的情况下实现f.证明:首先设计一个针对上述半恶意敌手A的PPT模拟器S.设唯一的诚实用户为Ph,该模拟器代表Ph执行如下操作.在第一轮对Ph的私有数据进行加密的时候,将真实数据用0代替.然后从“证据磁带”获得其他被俘获用户的输入和私钥.模拟器S将这些输入发送到一个理想机并得到输出比特y.然后S将以上数据作为输入执行f并获得一个同态计算后的密文C.最后它代表Ph执行模拟部分解密得到S(y,C,h,{ski}i∈{[N]\{h}}).最后,模拟器S将上述模拟部分解密结果公布.下面通过混合攻击游戏来证明模拟情况和真实情况的不可区分性,即其中,Z为特定环境,S为模拟器.游戏REALπ,A,Z:该游戏即在具有一个半恶意敌手A的真实环境Z中对协议πf的忠实执行过程.游戏HYBπ,A,Z:将以上游戏做如下修改.假定Ph能够获得所有私钥{ski}i∈{[N]\{h}},模拟器S代表用户Ph将以上数据作为输入执行f并获得一个同态计算后的密文C.最后Ph执行模拟的部分解密操作得到S(y,C,h,{ski}i∈{[N]\{h}}). 游戏IDEALF,S,Z:在该游戏中,用户Ph将对0加密得到的密文代替其私有数据的密文进行公布,其它操作与HYBπ,A,Z一样.引理证明:模拟器S利用除Ph的真实部分解密结果之外的信息(包括最终计算结果μ)来模拟计算Ph的部分解密结果,因此若设v=μ「q/2⎤+e′,则其模拟算法应该为⎤⎤其中,而Ph的真实部分解密结果具有以下形式(其中,δh):ρh=ωhG-1(wT)+δh=vh+δh由⎤+e′可以得到:ρh=vh+δh=Nμ「q/2⎤易知和δh在统计上是不可区分的,从而证明了模拟的部分解密结果(式(4))与真实部分解密结果(式(5))的不可区分性.故结论成立.引理证明:这两个游戏的唯一区别在于Ph公布的密文Ch是对其真实私有数据的加密还是对0的加密.但其加密方式的语义安全性已经被证明[18],故在这两种情况下的加密结果是计算上不可区分的,从而可以推断这两个游戏也是计算上不可区分的. 由引理1和2可知文中协议只需要3轮交互操作:第一轮是个人密钥对的生成、发布与接收;第二轮是公用密钥对的生成、密文的发布与接收;第三轮是联合解密.在时间效率上,GSW13方案同态计算每个与非门电路的平均复杂度为这里n为所用格的维数,L为待计算布尔电路的与非门深度,其中ω<2.372 7为常数.在空间效率上,由于GSW13方案的密文是矩阵,故在同态乘法中的密文膨胀率较小.而文献[11]方案的密文是向量,同态乘法会造成密文维数膨胀,对其空间效率造成极大影响.文献[10, 21]虽然也采用了GSW13方案作为基础,但其联合密文是用密文级联的方式构造的,因此需占用很大空间.表1为几个基于FHE的SMC方案的性能对比.可以看出,文中方案在时间、空间效率等主要性能上优于已有方案.表中ε∈(0,1),n为所用格的维数,q∈Z为模,Bχ∈Z为误差分布边界,N为参与计算的用户数,l=⎤log q」+1,U=(n+1)·l+1.基于GSW13全同态加密方案构造了一个层次型多密钥安全多方计算协议.该协议构造简单,只需要3轮通讯,且在半诚实与半恶意环境和公共随机串(CRS)模型下,其安全性可以归结到容错学习问题和它的一个变种问题(记为Some-are-errorless LWE);将该协议与已有协议进行了对比,结果表明:该协议具有加解密复杂度低、密文膨胀率小、且不需要运行密钥等优点,整体性能优于现有基于FHE技术的SMC方案.但该方案仍存在以下不足,值得深入研究.首先,GSW13方案的效率仍未达到实用要求,故可对其进行并行化处理[26],以提高整体效率;其次,在网络协议的执行过程中,应采用合适的方式[27]保证数据的安全传输和会话的协同性要求.【相关文献】[1] YAO A.Protocols for secure computations [C]∥Proceedings of the 23rd Annual Symposium on Foundations of Computer Science.New York:IEEE ComputerSociety,1982:160- 164.[2] GOLDREICH O,MICALI S,WIGDERSON A.How to play any mental game[C]∥Proceedings of the 19th An nual ACM Symposium on Theory of Computing.New York:ACM,1987:218- 229.[3] 范红,冯登国.安全协议理论与方法 [M].北京:科学出版社,2003.[4] CRAMER R,DAMGARDI,MAURER U.General secure multi-party computation from any linear secret-sharing scheme [C]∥Proceedings of the 19th Internatio nal Conference on Theory and Application of Cryptographic Techniques.Bengaluru:Springer-Verlag,2000:316- 334.[5] 唐韶华,马卫华.一种安全的分布式用户认证方案 [J].华南理工大学学报(自然科学版),1999,27(6):1- 5.TANG Shao-hua,MA Wei-hua.A Distributed user authhentication schemes for security [J].Journal of South China University of Technology(Natural Science Edition),1999,27(6):1-5.[6] CHEN H,CRAMER R.Algebraic geometric secret sharing schemes and secure multi-party computations over small fields[C]∥Advances in Cryptology-CRYPTO2006.California:Springer,2006:521- 536.[7] CREPEAU C,vAN DE Graaf,TAPP mitted oblivious transfer and private multi-party computation [C]∥Advances in Cryptology-CRYPT0’ 95.California:Sprin-ger,1995:110- 123.[8] DU W,ZHAN Z.A practical approach to solve Secure Multi-party Computation problems [C]∥Proceedings of the 2002 Workshop on New SecurityParadigms.Virginia:ACM,2002:127- 135.[9] LPEZ-Alt A,TROMER E,VAIKUNTANATHAN V.On-the-fly multiparty computation on the cloud via multikey fully homomorphic encryption [C]∥P roceedings of the 44th Annual ACM Symposium on Theory of Computing.New York:ACM,2012:1219- 1234.[10] CLEAR M,MCGOLDRICK C.Multi-identity and Multi-key leveled FHE from learning with errors [C]∥Advances in CRYPTO 2015.Berlin:Springer,2015:630- 656.[11] ASHAROV G,JAIN A,LOPEZ-Alt A, et al Multiparty computation with low communication,computation and interaction via threshold FHE [C]∥Advances in Cryptology-EUROCRYPT 2012.Berlin:Springer,2012:483- 501.[12] PANG L,SUN J F,LUO S S,et al.A research of the privacy preserving architecture of electronic auction [J].Journal of Convergence Information Technology,2012,7(1):172- 179.[13] RIVEST R L,ADIEMAN L,DERTOUZOS M L.On data banks and privacy homomorphisms [J].Foundations of Secure Computation,1978,4(11):169- 180.[14] GENTRY C.Fully homomorphic encryption using ideal lattices [C]∥The 41st ACM Symposium on Theory of Computing.Washington:ACM,2009:169- 178.[15] VAN DIJK M,GENTRY C,HALEVI S,et al.Fully homomorphic encryption over theintegers [C]∥Advances in Cryptol ogy-EUROCRYPT 2010.Riviera:Springer,2010:24- 43. [16] BRAKERSKI Z,VAIKUNTANATHAN V.Efficient fully homomorphic encryptionfrom(standard) LWE [J].SIAM Journal on Computing,2014,43(2):831- 871.[17] BRAKERSKI Z,GENTRY C,VAIKUNTANATHEAN V.(Leveled) Fully homomorphic encryption without bootstrapping [C]∥Proceedings of the 3rd Innovations in Theoretical Computer Science Conference.Massachusetts:ACM,2012:309- 325.[18] GENTRY C,SAHAI A,WATERS B.Homomorphic encryption from learning with errors:conceptually-simpler,asymptotically-faster,attribute-based [C]∥Advances in CRYPTO 2013.California:Springer,2013:75- 92.[19] NUIDA K,KUROSAWA K.(Batch) Fully homomorphic encryption over Integers for non-binary message spaces [C]∥Advances in Cryptology-EUROCRYPT2015.Berlin:Springer,2015:537- 555.[20] STEHLE D,STEINFELD R.Making NTRU as secure as worst-case problems over ideal lattices [C]∥Advances in Cryptology-EUROCRYPT 2011.Tallinn:Springer,2011:27- 47.[21] MUKHERJEE P,WICHS D.Two round multiparty computation via multi-key FHE[C]∥Annual International Conference on the Theory and Applications of Cryptographic Techniques.Berlin:Springer,2016:735- 763.[22] REGEV O.On lattices,learning with errors,random linear codes,and cryptography [J].Journal of the ACM,2009,56(6):1- 40.[23] BRAKERSKI Z,LANGLOIS A,PEIKERT C.Classical hardness of learning with errors[C]∥ACM Symposium on Theory of Computing.New York:ACM,2013:575- 584.[24] BONEH D,LEWI K,MONTGOMERY H,et al.Key homomorphic PRFs and their applications [C]∥Advances in Cryptolo gy-CRYPTO 2013.California:Springer,2013:410- 428.[25] ALPERIN-SHERIFF J,PEIKERT C.Faster bootstrapping with polynomial error[C]∥Advances in Cryptology-CRYPTO 2014.California:Springer,2014:297- 314.[26] HIROMASA R,ABE M,OKAMOTO T.Packing messages and optimizing bootstrapping in GSW-FHE [C]∥Public-Key Cryptography-PKC 2015.Gaithersburg:Springer,2015:699- 715.[27] 刘巍巍,周来水,庄海军,等.一种基于Internet的同步协同CAD/CAM系统的安全机制 [J].华南理工大学学报(自然科学版),2005,33(9):20- 24.LIU Wei-wei,ZHOU Lai-shui,ZHUANG Hai-jun,et al.A security mechanism for internet-based synchronous collaborative CAD/CAM system [J].Journal of South China University of Technology(Natural Science Edition),2005,33(9):20- 24.。

同态加密 解密过程原理

同态加密 解密过程原理

同态加密解密过程原理同态加密解密过程原理什么是同态加密?同态加密是一种特殊的加密方式,它能够在不解密的情况下对密文进行计算,并得到正确的结果。

这种加密方式可以在保护数据隐私的同时,实现对加密数据的快速处理和分析,因此在云计算等领域有着广泛的应用。

同态加密的基本原理同态加密的实现基于数学上的一些特殊性质,主要包括以下几个方面:第一点:加法同态特性同态加密的基础是加法同态特性。

简单来说,就是对于两个密文c1和c2,对应的明文分别为m1和m2,则加法同态特性可以保证加密后的结果c1+c2对应的明文是m1+m2。

也就是说,在不解密的情况下,我们可以对密文进行加法运算得到正确的结果。

第二点:乘法同态特性除了加法同态特性,同态加密还具备乘法同态特性。

对于两个密文c1和c2,对应的明文分别为m1和m2,则乘法同态特性可以保证加密后的结果c1c2对应的明文是m1m2。

同样地,在不解密的情况下,我们可以对密文进行乘法运算得到正确的结果。

第三点:同态加密的限制然而,同态加密并不是无限制的。

同态加密有一个重要的限制条件,即只支持特定类型的运算。

在实际应用中,通常会选择支持加法和乘法运算,但不支持其他复杂运算。

因此,在设计和使用同态加密方案时,需要根据实际需求对加密算法进行选择和调整。

同态加密的解密过程同态加密的解密过程相对简单明了,以下是基本的解密流程:1.接收到加密的密文数据,将其用私钥进行解密,得到对应的明文数据。

2.根据加密方案的约定,使用明文数据进行需要的计算操作。

3.如果需要返回密文结果,将计算得到的明文数据用公钥进行加密,得到对应的密文数据。

4.返回密文结果或明文结果,完成解密过程。

同态加密的应用前景同态加密在云计算、数据安全和隐私保护等领域有着广阔的应用前景。

它可以在保护数据隐私的同时,使得在云端进行数据处理和计算成为可能。

例如,在医疗领域中,可以利用同态加密对医疗数据进行高效的分析和挖掘,同时保护医患隐私信息。

百万富翁终极教程之理财篇课程二十

百万富翁终极教程之理财篇课程二十

我们能赚多少钱,很大程度上是由我们工作、生活的效率决定的。
想象一下,今天你的家里突然停水了,为了能有水做饭,你必须提着水桶前往500米外的一个消防栓附近打水,前后会用掉30分钟。而往常在家有自来水的时候,这个工作只需要30秒就能完成。
接一桶水的结果一样,但付出的劳动大不相同,效率也大大不同。
16、减少看报纸、新闻的时间,多数新闻只读标题
17、电脑是生产工具,不是娱乐工具,尽量减少使用电脑来娱乐
18、读每本书时,把重要的东西写下来,不然你可能就白读了,过不了多久你会全部忘掉
19、凡事提前,手表调快5分钟
20、不断地问自己:"我现在应该做什么事情?"
21、拖延工作,一定是在逃避什么。找出真正的原因解决它
同样的一份洗车的工作,一个人刚刚入行一个小时可能只能清洗2辆轿车,获得10元劳动报酬。而另一个人经过长时间的训练,积累了更多的技巧、经验,一个小时可以洗5辆,获得25元的报酬。当一个工作日结束的时候,新手的收入只够他一个人吃饭,而老工人的收入足可以养活一家3口,这就是效率不同带来的结果。
在我们的日常生活中,其实很多事情可以通过观察、思考、实践,改进或者提高效率,当一件件的小事被优化,更多的时间、精力、金钱会被节约出来,我们就会生活的更加幸福。
在城里效率也差很多,很多朋友居住的地方距离工作的地方很远,每天挤公共汽车来回需要2个小时,一周有10个小时消耗在来回上班途中,一年大约需要480个小时,以每8小时为一个工作日计算,一年有60个工作日,也就是3个工作月是在路上度过的,这60个工作日的时间消耗,是没有一分钱工资的。
而另外一个人,住在离上班地点5分钟就能到达的地方,他每年花在路上的时间只有20小时,他可以有更多的时间学习、娱乐、锻炼身体、陪伴家人,生活质量也是不一样的。这样他的效率就远远超过了那些挤公车的人。为了缩短在路上消耗的时间,人们才会买车、乘坐出租,用更快的交通方式弥补时间。

同态加密技术的实际应用案例

同态加密技术的实际应用案例

同态加密技术的实际应用案例同态加密技术是一种能够在不暴露数据的情况下对其进行计算的加密技术。

它可以在加密状态下对数据进行运算,得到的结果仍然是加密的,只有在解密后才能获取明文结果。

由于其独特的特性,同态加密技术在多个领域都有广泛的应用。

以下是十个同态加密技术的实际应用案例。

1. 金融领域同态加密技术可以应用于金融领域中的数据处理。

例如,在支付系统中,可以使用同态加密技术对用户的交易数据进行加密处理,保护用户的隐私信息,同时保持数据的可计算性,以便进行风险评估和反欺诈分析。

2. 医疗保健同态加密技术可以应用于医疗保健领域中的数据处理。

例如,在电子病历系统中,可以使用同态加密技术对患者的个人信息进行加密处理,以保护其隐私。

同时,医院可以使用同态加密技术对医疗数据进行计算,例如统计分析和疾病预测,而不暴露敏感信息。

3. 云计算同态加密技术可以应用于云计算中的数据保护。

在云计算中,同态加密可以保护用户的数据隐私,同时允许云服务提供商进行计算,例如搜索和排序,而无需访问明文数据。

这可以提高云计算的安全性和隐私性。

4. 物联网同态加密技术可以应用于物联网中的数据保护。

在物联网中,大量的设备和传感器产生的数据需要进行安全处理和隐私保护。

使用同态加密技术,可以对物联网中的数据进行加密处理,同时允许进行数据分析和处理,例如异常检测和预测分析。

5. 数据共享同态加密技术可以应用于数据共享场景中。

在一些合作项目中,不同的组织需要共享数据,但又需要保护数据隐私。

使用同态加密技术,可以对数据进行加密处理,同时允许进行计算,例如数据聚合和数据分析,而不暴露敏感信息。

6. 版权保护同态加密技术可以应用于版权保护。

在数字内容的传输和使用中,版权保护是一个重要的问题。

使用同态加密技术,可以对数字内容进行加密处理,以防止未经授权的访问和复制。

7. 智能合约同态加密技术可以应用于智能合约中的数据保护。

在区块链技术中,智能合约可以自动执行合约规定的操作。

Paillier同态加密方案

Paillier同态加密方案

Paillier同态加密⽅案\(1.\) 背景\(1.1\) ⽣成公钥密钥随机选取⼤素数 \(p,\ q\),计算 \(n = pq,\ \lambda = [p - 1,\ q - 1]\),保证 \((pq,\ (p - 1)\cdot (q - 1)) = 1\),即 \((n,\ \phi(n)) = 1\)随机选取 \(g\in \mathbb{Z_{n^2}^{*}}\),计算 \(\mu = [L(g^{\lambda}\ mod\ n^2)]^{-1}\ mod\ n\),其中 \(L(x) = \frac{x - 1}{n}\)令 \((n,\ g)\) 为公钥,\((p,\ q,\ \lambda)\) 为私钥多说⼀嘴,很多⼈⽆法理解为何保证了 \((p,\ q) = 1\),还要保证 \((n,\ \phi(n)) = 1\),事实上如果构造出 \(p = kq + 1\),那么 \(n\) 和 \(\phi(n)\)就出现了 \(q\) 这个公因⼦\(1.2\) 加密将明⽂ \(m\) 映射成正整数选取 \(r\in \mathbb{Z_{n}^{*}}\),这意味着 \((r,\ n) = 1\)计算密⽂ \(c = g^{m}\cdot r^{n}\ (mod\ n^2)\)\(1.3\) 解密计算 \(m = L(c^{\lambda}\ mod\ n^2)\cdot \mu\ (mod\ n)\)\(1.4\) 正确性\(paillier\) 算法的正确性基于以下事实\[(1 + n)^{x}\equiv 1 + nx\ (mod\ n^2) \]由\[\lambda = [p - 1,\ q - 1] = \frac{(p - 1)(q - 1)}{(p - 1,\ q - 1)} \]所以对于 \(\forall v\in \mathbb{Z}\),满⾜\[v^{\lambda}\equiv 1\ (mod\ p),\ v^{\lambda}\equiv 1\ (mod\ q) \]所以 \(v^{\lambda}\equiv 1\ (mod\ n)\),这是因为 \(n = pq\) 且 \((p, q) = 1\)所以有 \(g^{\lambda}\equiv 1\ (mod\ n),\ r^{\lambda}\equiv 1\ (mod\ n)\)不妨设 \(g^{\lambda} = 1 + qn,\ r^{\lambda} = 1 + q'n\),满⾜ \(q,\ q'\in \mathbb{Z}\)计算\[\begin{aligned} c^{\lambda} & \equiv g^{m\lambda}\cdot r^{n\lambda}\ (mod\ n^2)\\ & \equiv (1 + qn)^{m}\cdot (1 + q'n)^{n}\ (mod\ n^2)\\ & \equiv (1 + qnm)\cdot (1 + q'n^2)\ (mod\ n^2)\\ & \equiv 1 + qnm\ (mod\ n^2) \end{aligned} \]所以\[\frac{c^{\lambda} - 1}{n}\equiv qm\ ( mod\ n^2) \]同理计算出\[\frac{g^{\lambda} - 1}{n}\equiv q\ (mod\ n^2) \]所以\[m\equiv \frac{\frac{c^{\lambda} - 1}{n}\ mod\ n^2}{\frac{g^{\lambda} - 1}{n}\ mod\ n^2}\equiv qm\cdot q^{-1}\equiv m\ (mod\ n) \]\(1.5\) 随机选取 \(g\)令 \(g = 1 + n\)则 \((1 + n)^n\equiv 1 + n^2\equiv 1\ (mod\ n^2)\),这意味着 \(ord(1 + n)\mid n\)⽽对于 \(0 < k < n\),有 \((1 + n)^k\equiv 1 + kn\not\equiv 1\ (mod\ n^2)\),所以 \(ord(1 + n) = n\)进⼀步,令 \(g = 1 + kn,\ 0 < k < n\)则 \((1 + kn)^n\equiv 1\ (mod\ n^2)\)对于 \(0 < k' < n\),有 \((1 + kn)^{k'}\equiv 1 + k'kn\ (mod\ n^2)\),只需要 \(kk'\not\equiv 0\ (mod\ n)\) 即可,即\[k\not\equiv p\ (mod\ n),\ k\not\equiv q\ (mod\ n) \]所以对 \(g\) 的随机选取,转化为对 \(k\in \mathbb{Z_{n}^{*}}\) 的随机选取\(1.6\) 加法同态性考虑加密 \(m_{1} + m_{2}\),得到\[c = Enc(m_{1} + m_{2}) \equiv g^{m_{1}+m_{2}}(mod\ n^2) \]在考虑分别加密 \(m_{1},\ m_{2}\),得到\[\begin{aligned} c_{1} & = Enc(m_{1})\equiv g^{m_{1}}\cdot r_{1}^{n}\ (mod\ n^2)\\ c_{2} & = Enc(m_{2})\equiv g^{m_{2}}\cdot r_{2}^{n}\ (mod\ n^2) \end{aligned} \]所以\[c_{1}c_{2}\equiv g^{m_{1} + m_{2}}\cdot (r_{1}\cdot r_{2})^n\ (mod\ n^2) \]考虑解密 \(c_{1}c_{2}\),设 \(g^{\lambda} = 1 + qn,\ q\in \mathbb{Z_{n}}^{*}\)\[(c_{1}c_{2})^{\lambda}\equiv 1 + qn(m_{1} + m_{2})\ (mod\ n^2) \]剩下的计算与之前类似,解密得到明⽂为 \(m_{1} + m_{2}\)也就是说 \(c_{1}c_{2}\) 的解密结果为 \(m_{1} + m_{2}\),即\[Dec(Enc(m_{1})\cdot Enc(m_{2})) = m_{1} + m_{2} \]满⾜加法同态⾄于为什么是加法同态,是因为我们对明⽂的操作是加法\(2.\) 问题描述随机选择两个 \(10\) 位素数,这⾥指的是 \(10\) 位⼆进制串令 \(n = pq\),随机选择 \(g\),计算公钥和私钥设消息 \(m_{1} = 15,\ m_{2} = 20\),随机选取 \(r_{1},\ r_{2}\in \mathbb{Z_{n}^{*}}\),求 \(m_{1},\ m_{2}\) 的密⽂ \(c_{1},\ c_{2}\)对 \(c_{1},\ c_{2}\) 进⾏解密,求 \(m'_{1},\ m'_{2}\)对 \(c_{1}c_{2}\) 做解密运算,得到 \(m'\),验证 \(m' = m_{1} + m_{2}\)\(3.\) 问题解与分析\(3.1\) 随机构造两个 \(10\) 位素数 \(p,\ q\)⽤字符串⽣成,转化为整数,并判断是否是素数,注意字符串的⾸末位都为 \(1\)bool isPrime(int x){if(x == 1) return 0;for(int i = 2; i * i <= x; ++i)if(x % i == 0) return 0;return 1;}int getPrime(int L){int ans = 0;do {ans = 1;for(int i = 0; i < L - 2; ++i)ans *= 2, ans += rand() % 2;ans *= 2, ans += 1;}while(!isPrime(ans));return ans;}\(3.2\) 随机选择 \(g\),计算公钥和私钥\(g = 1 + kn,\ k\in \mathbb{Z_{n}^{*}}\),对 \(g\) 的随机转化为对 \(k\) 的随机\(g = 1 + kn,\ k\in \mathbb{Z_{n}^{*}}\),对 \(g\) 的随机转化为对 \(k\) 的随机先筛出 \(\mathbb{Z_{n}^{*}}\),然后随机返回 \(k\in \mathbb{Z_{n}^{*}}\),计算具体的公钥和密钥struct PBK{int n;LL g;PBK() {}PBK(int _n, LL _g): n(_n), g(_g) {}void out() { cout << "公钥 <n, g>: <" << n << ", " << g << ">" << endl; }};struct SK{int p, q, lambda;SK() {}SK(int _p, int _q, int _lambda): p(_p), q(_q), lambda(_lambda) {}void out() { cout << "私钥 <p, q, lambda>: <" << p << ", " << q << ", " << lambda << ">" << endl; }};void getZnStar(vector<int>& ZnStar, int n){for(int i = 1; i < n; ++i)if(__gcd(i, n) == 1)ZnStar.pb(i);}int getNumOfZnStar(vector<int>& ZnStar) { return ZnStar[rand() % ZnStar.size()]; }int getLambda(int p, int q) { return (p - 1) * (q - 1) / __gcd(p - 1, q - 1); }pair<PBK, SK> getPublicKey(int L, vector<int>& ZnStar){int n, p, q, lambda;LL g;while(1) {p = getPrime(L);q = getPrime(L);lambda = getLambda(p, q);n = p * q;if(__gcd(n, lambda) == 1 && p != q) break;}LL nn = 1LL * n * n;getZnStar(ZnStar, n);g = (1 + 1LL * n * getNumOfZnStar(ZnStar)) % nn;return {PBK(n, g), SK(p, q, lambda)};}\(3.3\) 加密 \(m_{1},\ m_{2}\)根据⽅案进⾏模拟,加密函数如下,\(qmul()\) 为快速乘算法,避免爆出 \(long\ long\) 范围,\(qpow()\) 为快速幂算法,\(nn\) 为 \(n^2\) LL encryption(int m, LL g, int n, vector<int>& ZnStar){LL nn = 1LL * n * n;LL r = getNumOfZnStar(ZnStar);LL c = qmul(qpow(g, m, nn), qpow(r, n, nn), nn);return c;}\(3.4\) 解密 \(m_{1},\ m_{2}\)根据⽅案进⾏模拟,解密函数如下LL getLx(LL x, int n, LL nn) { return (x - 1) / n % nn; }LL decryption(LL c, LL g, int n, int lambda){LL nn = 1LL * n * n;LL x1 = qpow(c, lambda, nn), L1 = getLx(x1, n, nn);LL x2 = qpow(g, lambda, nn), L2 = getLx(x2, n, nn);LL mu = getInv(L2, n);LL plaintext = L1 * mu % n;return plaintext;}\(3.5\) 验证同态判断 \(m_{1} + m_{2} = Dec(m_{1}\cdot m_{2})\) 即可\(4.\) 代码\(4.\) 代码#include <bits/stdc++.h>#define LL long long#define pb push_backusing namespace std;struct PBK{int n;LL g;PBK() {}PBK(int _n, LL _g): n(_n), g(_g) {}void out() { cout << "公钥 <n, g>: <" << n << ", " << g << ">" << endl; }};struct SK{int p, q, lambda;SK() {}SK(int _p, int _q, int _lambda): p(_p), q(_q), lambda(_lambda) {}void out() { cout << "私钥 <p, q, lambda>: <" << p << ", " << q << ", " << lambda << ">" << endl; } };LL qmul(LL a, LL b, LL mod){LL res = 0;while(b > 0) {if(b & 1) res += a, res %= mod;a += a, a %= mod;b >>= 1;}return res;}LL qpow(LL a, LL b, LL MOD){if(!a) return 0;LL ans = 1;while(b) {if(b & 1) ans = qmul(ans, a, MOD), ans %= MOD;a = qmul(a, a, MOD), a %= MOD,b >>= 1;}return ans;}LL phi(LL m){LL ans = m;for(LL i = 2; i * i <= m; ++i) {if(m % i == 0) {ans -= ans / i;while(m % i == 0) m /= i;}}if(m > 1) ans -= ans / m;return ans;}LL getInv(LL a, LL MOD){return qpow(a, phi(MOD) - 1, MOD);}bool isPrime(int x){if(x == 1) return 0;for(int i = 2; i * i <= x; ++i)if(x % i == 0) return 0;return 1;}int getPrime(int L){int ans = 0;do {ans = 1;for(int i = 0; i < L - 2; ++i)ans *= 2, ans += rand() % 2;ans *= 2, ans += 1;}while(!isPrime(ans));return ans;}void getZnStar(vector<int>& ZnStar, int n){for(int i = 1; i < n; ++i)if(__gcd(i, n) == 1)ZnStar.pb(i);}int getNumOfZnStar(vector<int>& ZnStar) { return ZnStar[rand() % ZnStar.size()]; } int getLambda(int p, int q) { return (p - 1) * (q - 1) / __gcd(p - 1, q - 1); }pair<PBK, SK> getPublicKey(int L, vector<int>& ZnStar){int n, p, q, lambda;LL g;while(1) {p = getPrime(L);q = getPrime(L);lambda = getLambda(p, q);n = p * q;if(__gcd(n, lambda) == 1 && p != q) break;}LL nn = 1LL * n * n;getZnStar(ZnStar, n);g = (1 + 1LL * n * getNumOfZnStar(ZnStar)) % nn;return {PBK(n, g), SK(p, q, lambda)};}LL encryption(int m, LL g, int n, vector<int>& ZnStar){LL nn = 1LL * n * n;LL r = getNumOfZnStar(ZnStar);LL c = qmul(qpow(g, m, nn), qpow(r, n, nn), nn);return c;}LL getLx(LL x, int n, LL nn) { return (x - 1) / n % nn; }LL decryption(LL c, LL g, int n, int lambda){LL nn = 1LL * n * n;LL x1 = qpow(c, lambda, nn), L1 = getLx(x1, n, nn);LL x2 = qpow(g, lambda, nn), L2 = getLx(x2, n, nn);LL mu = getInv(L2, n);LL plaintext = L1 * mu % n;return plaintext;}int main(){srand((unsigned)time(NULL));int L = 10, m1 = 15, m2 = 20;vector<int> ZnStar;auto i = getPublicKey(L, ZnStar);PBK pbk = i.first;SK sk = i.second;pbk.out();sk.out();LL ciphertext1 = encryption(m1, pbk.g, pbk.n, ZnStar);LL ciphertext2 = encryption(m2, pbk.g, pbk.n, ZnStar);cout << "明⽂ m1 加密为: " << ciphertext1 << endl;cout << "明⽂ m2 加密为: " << ciphertext2 << endl;LL plaintext1 = decryption(ciphertext1, pbk.g, pbk.n, mbda);LL plaintext2 = decryption(ciphertext2, pbk.g, pbk.n, mbda);LL nn = 1LL * pbk.n * pbk.n;LL ciphertext = qmul(ciphertext1, ciphertext2, nn);LL plaintext = decryption(ciphertext, pbk.g, pbk.n, mbda);cout << "秘⽂ c1 解密为: " << plaintext1 << endl;cout << "秘⽂ c2 解密为: " << plaintext2 << endl;cout << "秘⽂ c1c2 解密为: " << plaintext << endl;if(plaintext1 + plaintext2 == plaintext) cout << "满⾜同态" << endl;return 0;}。

同态加密——精选推荐

同态加密——精选推荐

同态加密同态加密是指这样⼀种加密函数,对明⽂进⾏环上的加法和乘法运算再加密,与加密后对密⽂进⾏相应的运算,结果是等价的。

全同态加密是指同时满⾜加同态和乘同态性质,可以进⾏任意多次加和乘运算的加密函数。

⽤数学公式来表达,即Dec(f(En(m1),En(m2),…,En(mk)))=f(m1,m2,…,mk),或写成:f(En(m1),En(m2),…,En(mk))=En(f(m1,m2,…,mk)),如果f是任意函数,称为全同态加密。

加法同态,如果存在有效算法⊕,E(x+y)=E(x)⊕E(y)或者 x+y=D(E(x)⊕E(y))成⽴,并且不泄漏 x 和 y。

乘法同态,如果存在有效算法,E(x×y)=E(x) E(y)或者 xy=D(E(x) E(y))成⽴,并且不泄漏 x 和 y。

加密就是将消息或原始信息,⽤数学⽅法打乱,然后将其保存或传递给另⼀⽅,后者将使⽤另⼀种数学⽅法对信息进⾏解密并读取它。

理想情况下,加密可以增加数据的安全性,因为只有我们授权的⼈可以读取消息。

信息在解密之前都是很难辨认的,⼀旦加密后,则只有给定密钥才可以解密。

虽然不同形式的加密已存在⼏个世纪,但它仍然是有效果的:加密的数据⼀定⽐不加密的数据安全得多,哪怕是在防⽕墙和杀毒软件之后也⼀样。

加密是保护您的数据避免第三⽅窥探的⽅法,就像你的⽹上购物车⾥,填满了商品。

Gentry发现了⼀个⽅法:Boostrapping,该⽅法我把它称之为:同态解密。

(他为什么可以构造全同态加密⽅案呢)这个⽅法的作⽤是约减噪⾳。

因为格上加密法案是噪⾳⽅案,即在密⽂中含有噪⾳,所以每次密⽂计算后,噪⾳都会增加,尤其是密⽂乘法导致噪⾳增长的⾮常快。

即使你构造了⼀个具有同态性的加密⽅案,由于噪⾳增长,导致⽆法获得同态性。

因此,约减密⽂计算后的噪⾳变得异常关键。

当然在此之前应该构造⼀个具有同态性的⽅案Gentry是在格上⾸先构造⼀个具有同态性的加密⽅案,该⽅案能够做加法,也能够做乘法,但是只能做有限次的乘法。

安全多方计算技术研究与应用

安全多方计算技术研究与应用

安全多方计算技术研究与应用张卷美;徐荣华【摘要】认为同态密码的本质是通过密文运算,实现相对应的明文运算。

基于同态密码、格理论密码,分别设计了安全多方计算协议,解决了安全两方线段求解直线相交问题和聚类分析中一种经常遇到的加权平均问题。

认为目前安全多方计算的实际应用比较滞后,但随着其理论的不断成熟以及各种密码理论基础技术的不断发展,安全多方计算最终会为新时代下的信息安全提供服务。

%The essence of homomorphic encryption is to realize the corresponding plaintext operation by calculating cipher text. In this paper, we propose some secure multi-party computation schemes based on homomorphic encryption and lattice theory. With these protocols, the secure two-party line segment intersection problem and weighted-average problem, which are often encountered when solving the problem of clustering analysis, are solved. Practical application of secure multi-party computation is lagging, but with the continuous development of its theory and various kinds of cryptography, secure multi-party computation wil increase information security in the future.【期刊名称】《中兴通讯技术》【年(卷),期】2016(000)001【总页数】3页(P23-25)【关键词】安全多方计算;同态加密;格密码【作者】张卷美;徐荣华【作者单位】北京电子科技学院,北京 100070;北京电子科技学院,北京 100070【正文语种】中文【中图分类】TN929.5安全多方计算是密码学的基础问题之一,概括了大多数密码协议,如认证协议、在线支付协议、公平交换协议、拍卖协议、选举协议、密文数据库查询与统计等等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

同态加密的百万富翁问题高效解决方案
同态加密是一种重要的密码学技术,可以实现在加密状态下进行计算,保护数据隐私。

在实际应用中,同态加密可用于处理敏感数据,如医疗健康、金融交易等领域。

本文将介绍同态加密在解决百万富翁问题上的高效方案。

百万富翁问题是一个经典的数学问题,它的描述如下:公正的硬币抛掷若干次,若第一次正面朝上,甲方付给乙方一元钱;否则乙方付给甲方2的$n$次方元钱,其中$n$为正整数。

问题是什么情况下甲方能够确保比赛赢得到钱?
传统的解决方案需要进行大量的计算,特别是在$n$较大时,计算复杂度非常高。

而同态加密可以改变这种情况,将所有的计算转化为在加密状态下进行,最后解密得到结果。

下面我们介绍如何使用同态加密来解决百万富翁问题。

首先,我们需要将问题转化为一个数学公式,即:
$$
A = \left\{
\begin{aligned}
1, & \text{第1次正面朝上} \\
2^n, & \text{第1次反面朝上}
\end{aligned}
\right.
$$
其中$A$表示乙方要支付给甲方的金额。

使用同态加密,我们
可以将$A$加密后得到一个密文$E(A)$,并对$E(A)$进行加密
操作,得到$E(A^2)$。

接着,我们将$E(A^2)$发送给甲方,让甲方对其解密。

这样,甲方就能得到$A^2$的值了。

通过这种
方法,可以得出以下公式:
$$A^2 = \left\{
\begin{aligned}
1, & \text{第1次正面朝上} \\
2^{2n}, & \text{第1次反面朝上}
\end{aligned}
\right.
$$
然后我们将$A^2$加密后得到$E(A^2)$,并对其进行加密操作,得到$E(A^4)$。

按照上述方式继续操作,我们可以得到:
$$
\begin{aligned}
E(A^1) \to E(A^2) \to E(A^4) \to E(A^8) \to \cdots \to E(A^{2^{n-1}})
\end{aligned}
$$
通过这种方式,甲方就能够得到$A^{2^{n-1}}$的值了。

因此,甲方可以比乙方高出$2^{n-1}$元钱,即甲方的收益为$2^{n-
1}-1$元。

需要注意的是,同态加密方案需要选择合适的安全参数,以保证安全性和计算效率。

此外,同态加密技术还面临着信噪比问
题,即加密算法会引入一定的噪音,影响计算精度和效率。

总体来说,使用同态加密技术可以极大地提高百万富翁问题的计算效率和安全性。

随着同态加密技术的日益成熟和应用的扩大,我们相信会有更多的实际问题得到高效解决。

相关文档
最新文档