一种基于同态的云辅助动态通用安全多方计算方法技术

技术编号:22172924 阅读:52 留言:0更新日期:2019-09-21 13:37
本发明专利技术公开了一种基于同态的云辅助动态通用安全多方计算方法,其包括以下步骤:S1、生成参与方的公钥、私钥和计算密钥;S2、对参与方的数据消息进行加密后得到对应的密文;S3、生成参与方的盲化参数和盲化密钥;S4、将参与方的密文、公钥、计算密钥和盲化参数组合成数据元组并上传至云服务器;S5、提出计算需求申请;选取计算函数和计算参与方;S6、获取计算参与方联合运算结果的密文;S7、获取部分解密密文;S8、对部分解密密文进行再解密,得到最终解密值,完成多方计算。本发明专利技术采用多密钥同态算法实现云辅助下的通用安全多方计算,支持计算参与方的动态变化,能够有效减少参与方端的计算负担和通信轮数,提高效率。

A Homomorphic-based Cloud-Assisted Dynamic Universal Secure Multi-party Computing Method

【技术实现步骤摘要】
一种基于同态的云辅助动态通用安全多方计算方法
本专利技术涉及云计算领域,具体涉及一种基于同态的云辅助动态通用安全多方计算方法。
技术介绍
云计算及其相关技术自出现以来,经历了快速而蓬勃的发展,它的使用为各类新技术、新应用的产生和推广提供了更灵活、更高效、更多维度的支撑,同时也为一些传统问题的解决提供了新的思路。安全多方计算指的是多个互相不信任的参与方,想要利用各自持有的隐私数据完成联合计算,完成计算后除了得到既定的输出外,不会造成私有数据和预计输出等信息的泄露。目前对于安全多方计算的研究主要分为通用协议和专用协议两类,通用协议对联合计算的类型不做限定,通常假定为计算函数f,专用协议中指定具体场景下的计算需求,如元素排序、求解集合关系等。传统的通用安全多方计算协议通过一些密码技术和参与方的直接通信完成计算目标,参与方端计算负担大、通信轮数多且协议复杂度高,使得传统的安全多方计算方法效率低。
技术实现思路
针对现有技术中的上述不足,本专利技术提供的一种基于同态的云辅助动态通用安全多方计算方法解决了现有通用安全多方计算方法的动态性差和效率低的问题。为了达到上述专利技术目的,本专利技术采用的技术方案为:提供一种基于同态的云辅助动态通用安全多方计算方法,其包括以下步骤:S1、生成参与方的公钥、私钥和计算密钥;S2、对参与方的数据消息进行加密后得到对应的密文;S3、生成参与方的盲化参数和盲化密钥;S4、将参与方的密文、公钥、计算密钥和盲化密钥组合成数据元组并上传至云服务器;S5、通过需要执行联合计算的参与方向云服务器提出计算需求申请;选取计算函数和包括提出计算需求申请的参与方在内的N个计算参与方;S6、通过云服务器根据数据元组中的密文、公钥、计算密钥和计算函数得到N个计算参与方联合运算结果的密文;S7、通过云服务器根据数据元组中的盲化密钥对N个计算参与方联合运算结果的密文进行部分解密,得到部分解密密文并将其发送至提出计算需求申请的计算参与方;S8、通过提出计算需求申请的计算参与方根据其他计算参与方的盲化参数对部分解密密文进行再解密,得到最终解密值,完成多方计算。进一步地,步骤S1的具体方法包括以下子步骤:S1-1、根据设定的安全参数生成阶数n,剩余类模数q,n次多项式φ(x)∈Z[x],φ(x)=xn+1;并将环Z[x]/<φ(x)>和环Zq[x]/<φ(x)>分别记为和取上的B-界分布χ为基准分布;将n、q、p和χ作为初始参数;其中n的取值为以2为底整数为幂的指数值;q取素数;Z[x]为变量x取值在整数范围上的多项式;Zq[x]为变量x取值在{0,1,…,q-1}范围上的多项式;p为上的可逆元素;B为分布上元素的无穷范数上限;χ是离散高斯分布,其标准差为关于n的多项式函数;S1-2、生成逐渐减小的模量组值对于i={0,1,...,ddec},根据公式f(i):=pu(i)+1获取可逆的公钥标准基量f(i);其中u(i)为从χ中随机选取的公钥基量;ddec为解密电路深度;:=为确定性运算;S1-3、根据公式h(i)=pg(i)(f(i))-1获取公钥组量h(i);g(i)为从χ中随机选取的公钥随机化参数;S1-4、分别根据公式pk:=h(0)生成公钥pk和私钥sk;S1-5、根据公式分别获取第一密钥组值和第二密钥组值其中为秘密值组,为噪声值组,S1-6、根据公式生成计算密钥ek。进一步地,步骤S2的具体方法为:根据公式c:=hs+pe+m获取加密后的的密文c;其中m为参与方的数据消息;h为由所有公钥组量h(i)组成的向量;s和e分别为χ上随机选取的两个多项式。进一步地,步骤S3的具体方法为:通过第j个参与方从χ上选择与其对应的盲化参数rj,其中盲化参数rj在上可逆;根据公式生成第j个参与方的盲化密钥bkj;其中skj为第j个参与方的私钥。进一步地,步骤S5中选取计算函数和包括提出计算需求申请的参与方在内的N个计算参与方的具体方法为:通过提出计算需求申请的参与方指定计算函数和具体的计算参与方个数,或通过服务器根据提出计算需求申请的计算参与方指定的条件下自动选取计算函数和具体的计算参与方个数。进一步地,步骤S6的具体方法为:将计算函数拆分为加法运算和乘法运算;对于加法运算:根据递推公式获取中间参数并取最接近的整向量作为运算的结果,将运算结果的模p作为两消息和的密文;其中l=1,...,r;jl为两密文对应的公钥集合的并集中的公钥编号;为两密文对应的计算密钥的并集矩阵;当l=1时,为进行加法运算的两密文的和;对于乘法运算:判断两密文对应的公钥集合是否存在交集,对于交集中存在的公钥,根据递推公式获取中间参数对于不在交集中的公钥,根据递推公式获取中间参数并取最接近的整向量作为运算的结果,将运算结果的模p值作为两消息积的密文;当l=1时,为进行乘法运算的两密文的积;完成所有加法运算和乘法运算,得到N个计算参与方联合运算结果的密文。进一步地,步骤S7中通过云服务器根据数据元组中的盲化密钥对N个计算参与方联合运算结果的密文进行部分解密的具体方法为:根据公式得到第j个计算参与方获取的部分解密密文其中为N个计算参与方联合运算结果的密文;bkj为第j个计算参与方的盲化密钥。进一步地,步骤S8的具体方法为:根据公式获取同模输出uf-j,取同模输出uf-j模p的结果,得到提出计算需求申请的计算参与方的输出,即最终解密值,完成多方计算;其中rj为第j个计算参与方的盲化参数;为第j个计算参与方获取的部分解密密文;:=为确定性运算。进一步地,可逆元素p的取值为2。本专利技术的有益效果为:本专利技术采用多密钥同态算法实现云辅助下的通用安全多方计算,能够有效减少参与方端的计算负担和通信轮数,降低协议复杂度,实现了安全多方计算与云环境的良好结合,使之既能达到多方计算的安全目标,又能充分利用云服务器的优势。本专利技术安全高效,仅需3轮通信,且支持计算参与方的动态变化。附图说明图1为本专利技术的流程示意图。具体实施方式下面对本专利技术的具体实施方式进行描述,以便于本
的技术人员理解本专利技术,但应该清楚,本专利技术不限于具体实施方式的范围,对本
的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本专利技术的精神和范围内,这些变化是显而易见的,一切利用本专利技术构思的专利技术创造均在保护之列。如图1所示,该基于同态的云辅助动态通用安全多方计算方法包括以下步骤:S1、生成参与方的公钥、私钥和计算密钥;S2、对参与方的数据消息进行加密后得到对应的密文;S3、生成参与方的盲化参数和盲化密钥;S4、将参与方的密文、公钥、计算密钥和盲化密钥组合成数据元组并上传至云服务器;S5、通过需要执行联合计算的参与方向云服务器提出计算需求申请;选取计算函数和包括提出计算需求申请的参与方在内的N个计算参与方;S6、通过云服务器根据数据元组中的密文、公钥、计算密钥和计算函数得到N个计算参与方联合运算结果的密文;S7、通过云服务器根据数据元组中的盲化密钥对N个计算参与方联合运算结果的密文进行部分解密,得到部分解密密文并将其发送至提出计算需求申请的计算参与方;S8、通过提出计算需求申请的计算参与方根据其他计算参与方的盲化参数对部分解密密文进行再解密,得到最终解密值,完成多方计算。步骤S本文档来自技高网
...

【技术保护点】
1.一种基于同态的云辅助动态通用安全多方计算方法,其特征在于,包括以下步骤:S1、生成参与方的公钥、私钥和计算密钥;S2、对参与方的数据消息进行加密后得到对应的密文;S3、生成参与方的盲化参数和盲化密钥;S4、将参与方的密文、公钥、计算密钥和盲化密钥组合成数据元组并上传至云服务器;S5、通过需要执行联合计算的参与方向云服务器提出计算需求申请;选取计算函数和包括提出计算需求申请的参与方在内的N个计算参与方;S6、通过云服务器根据数据元组中的密文、公钥、计算密钥和计算函数得到N个计算参与方联合运算结果的密文;S7、通过云服务器根据数据元组中的盲化密钥对N个计算参与方联合运算结果的密文进行部分解密,得到部分解密密文并将其发送至提出计算需求申请的计算参与方;S8、通过提出计算需求申请的计算参与方根据其他计算参与方的盲化参数对部分解密密文进行再解密,得到最终解密值,完成多方计算。

【技术特征摘要】
1.一种基于同态的云辅助动态通用安全多方计算方法,其特征在于,包括以下步骤:S1、生成参与方的公钥、私钥和计算密钥;S2、对参与方的数据消息进行加密后得到对应的密文;S3、生成参与方的盲化参数和盲化密钥;S4、将参与方的密文、公钥、计算密钥和盲化密钥组合成数据元组并上传至云服务器;S5、通过需要执行联合计算的参与方向云服务器提出计算需求申请;选取计算函数和包括提出计算需求申请的参与方在内的N个计算参与方;S6、通过云服务器根据数据元组中的密文、公钥、计算密钥和计算函数得到N个计算参与方联合运算结果的密文;S7、通过云服务器根据数据元组中的盲化密钥对N个计算参与方联合运算结果的密文进行部分解密,得到部分解密密文并将其发送至提出计算需求申请的计算参与方;S8、通过提出计算需求申请的计算参与方根据其他计算参与方的盲化参数对部分解密密文进行再解密,得到最终解密值,完成多方计算。2.根据权利要求1所述的基于同态的云辅助动态通用安全多方计算方法,其特征在于,所述步骤S1的具体方法包括以下子步骤:S1-1、根据设定的安全参数生成阶数n,剩余类模数q,n次多项式φ(x)∈Z[x],φ(x)=xn+1;并将环Z[x]/<φ(x)>和环Zq[x]/<φ(x)>分别记为和取上的B-界分布χ为基准分布;将n、q、p和χ作为初始参数;其中n的取值为以2为底整数为幂的指数值;q取素数;Z[x]为变量x取值在整数范围上的多项式;Zq[x]为变量x取值在{0,1,…,q-1}范围上的多项式;p为上的可逆元素;B为分布上元素的无穷范数上限;χ是离散高斯分布,其标准差为关于n的多项式函数;S1-2、生成逐渐减小的模量组值对于i={0,1,...,ddec},根据公式f(i):=pu(i)+1获取可逆的公钥标准基量f(i);其中u(i)为从χ中随机选取的公钥基量;ddec为解密电路深度;:=为确定性运算;S1-3、根据公式h(i)=pg(i)(f(i))-1获取公钥组量h(i);g(i)为从χ中随机选取的公钥随机化参数;S1-4、分别根据公式pk:=h(0)生成公钥pk和私钥sk;S1-5、根据公式分别获取第一密钥组值和第二密钥组值其中为秘密值组,为噪声值组,S1-6、根据公式生成计算密钥ek。3.根据权利要求2所述的基于同态的云辅助动态通用安全多方计算方法,其特征在于,所述步骤S2的具体方法为:根据公式c:=hs+pe+m获取加密后的的密文c;其中m为参与方的数据消息;h为由所有公钥组...

【专利技术属性】
技术研发人员:张文芳王祎云王小敏
申请(专利权)人:西南交通大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1