首页> 中国专利> 一种基于同态的云辅助动态通用安全多方计算方法

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

摘要

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

著录项

  • 公开/公告号CN110266721A

    专利类型发明专利

  • 公开/公告日2019-09-20

    原文格式PDF

  • 申请/专利权人 西南交通大学;

    申请/专利号CN201910603234.8

  • 发明设计人 张文芳;王祎云;王小敏;

    申请日2019-07-05

  • 分类号

  • 代理机构成都正华专利代理事务所(普通合伙);

  • 代理人陈选中

  • 地址 610031 四川省成都市二环路北一段

  • 入库时间 2024-02-19 14:58:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-11-04

    专利权的转移 IPC(主分类):H04L29/06 专利号:ZL2019106032348 登记生效日:20221025 变更事项:专利权人 变更前权利人:西南交通大学 变更后权利人:芽米科技(广州)有限公司 变更事项:地址 变更前权利人:610031 四川省成都市二环路北一段 变更后权利人:510530 广东省广州市黄埔区科丰路85号801房

    专利申请权、专利权的转移

  • 2020-04-28

    授权

    授权

  • 2019-10-22

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20190705

    实质审查的生效

  • 2019-09-20

    公开

    公开

说明书

技术领域

本发明涉及云计算领域,具体涉及一种基于同态的云辅助动态通用安全多方计算方法。

背景技术

云计算及其相关技术自出现以来,经历了快速而蓬勃的发展,它的使用为各类新技术、新应用的产生和推广提供了更灵活、更高效、更多维度的支撑,同时也为一些传统问题的解决提供了新的思路。安全多方计算指的是多个互相不信任的参与方,想要利用各自持有的隐私数据完成联合计算,完成计算后除了得到既定的输出外,不会造成私有数据和预计输出等信息的泄露。目前对于安全多方计算的研究主要分为通用协议和专用协议两类,通用协议对联合计算的类型不做限定,通常假定为计算函数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、通过提出计算需求申请的计算参与方根据其他计算参与方的盲化参数对部分解密密文进行再解密,得到最终解密值,完成多方计算。

步骤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的具体方法为:将计算函数拆分为加法运算和乘法运算;要求当模量值B=poly(n)时,其中常数δ∈(0,1),电路深度d满足解密电路的深度上界为计算函数f的运算在此界限内进行;poly(·)为多项式关系;为时间复杂度的上界;

对于加法运算:根据递推公式

获取中间参数并取最接近的整向量作为运算的结果,将运算结果的模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。参与方是指接入云服务器的终端,计算参与方是具体参与计算的终端,因此参与方的集合包括了计算参与方的集合。本方法在实施前,可以先根据设定的安全参数生成阶数n,n的取值为以2为底整数为幂的指数值。χ满足:是离散高斯分布,标准差是关于n的多项式函数,

在具体实施过程中,本发明支持计算参与方的动态增减,成员更新时无需重启整个协议,计算参与方只需再进行一步解密过程即可完成输出更新,对服务器来说,成员变更前的同态密文也可作为中间计算结果使用,计算量更小;另外,在部分数据更新的情况下,并不需要重启整个协议过程,例如:计算参与方追加消息时,只需将追加数据的密文上传,并添加原始密文与追加密文的同态运算过程,即可进行后续操作。

本发明效率更高,在计算复杂度上,本发明可用算法基于NTRU构建,因此加解密速度快,密文膨胀小,同时利用云服务器的性能优势,通过将同态运算外包,进一步减轻了参与方端的计算负担,使得参与方的加解密复杂度仅和自身数据、期望输出、参与方数量有关;通信复杂度上,协议的交互轮数为3轮,已达到有云参与情况下的最优轮次。

本发明安全性更好,本发明利用盲化密钥有效保证了参与方在部分解密权限授权到云服务器的同时,其私钥的机密性不被破坏,在面对诚实而好奇的敌手或任意参与方合谋攻击时,方案的安全性能够得到证明,且其安全性能够规约到算法的安全性上,有效保护了参与方隐私数据和相关的计算中间值不被其他参与方和云服务器获取。

综上所述,本发明采用多密钥同态算法实现云辅助下的通用安全多方计算,能够有效减少参与方端的计算负担和通信轮数,降低协议复杂度,实现了安全多方计算与云环境的良好结合,使之既能达到多方计算的安全目标,又能充分利用云服务器的优势。本发明安全高效,仅需3轮通信,且支持计算参与方的动态变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号