【技术实现步骤摘要】
一种基于格的分布式门限加法同态加密方法
[0001]本专利技术涉及基于同态加密的安全多方计算
,更具体地,涉及一种基于格的分布式门限加法同态加密方法。
技术介绍
[0002]基于属性加密机制是基于身份加密机制的一种扩展,从本质上来说,基于属性加密机制是在基于身份加密机制中引入了访问结构的概念,实现了对解密权限和访问权限的控制。最早的公开研究起源于简单属性加密,后来扩展到属性前面、属性安全协议的等研究内容。与传统密码学相比,属性加密机制极大的丰富了加密策略的灵活性和用户权限的可描述性,从一点的一对一模式扩展到一对多模式,它具有高效灵活的特点;加密代价仅与相应属性个数相关,而与系统中用户的数量无关;用户能否解密一个密文仅取决于他的属性是否满足密文的策略,而与他是否在密文生产前加入这个系统无关;基米策略可支持复杂的访问结构,如门限式、布达尔表达式;加密这不需要知道解密者的身份信息。基于以上优良特点,属性加密机制可以有效地实现非交互的访问控制。
[0003]当前实现安全多方计算的主流密码技术有门限秘密共享和同态加密等。同态加密允许对密文域数据进行特定的代数运算,其解密的结果和明文域进行同样的计算结果相同或相似。其特性被广泛应用在隐私保护的云服务计算、外包计算、连邦学习场景中,是新兴隐私技术的一个方向。Shamir的门限秘密共享方案通过构造一个k
‑
1次多项式,并将多有共享的秘密作为这个多项式的常数项,将秘密分成n个秘密份额分别分给多个参与者。k个或k个以上的参与者合作利用插值公式可以回复出所共 ...
【技术保护点】
【技术特征摘要】
1.一种基于格的分布式门限加法同态加密方法,其特征在于,包括:S1.系统初始设置:输入安全参数λ,输出系统参数params={param0,paramSS},其中param0是系统初始化相关参数集合,paramSS是多秘密共享相关参数集合;S2.用户秘钥生成:输入系统参数params,输出公私钥对(pk
u
,sk
u
);S3.用户私钥份额生成:输入系统参数params、用户u的私钥sk
u0
和用户集合U中的公钥集合{pk
v1
}
v∈U
,输出为加密消息集合{e
uv
}
v∈U
和用户u的公开份额的有序集合S4.系统公钥合成:输入系统参数params,所有用户的公钥集合{pk
u0
}
u∈U
,计算pk=[∑
u∈U
pk
u0
]
q
,输出系统公钥pk;S5.数据加密:输入系统参数params,系统公钥pk,用户u的明文数据m
u
,输出用户u的密文数据c
u
=(c
u0
,c
u1
);S6.加法同态运算:输入系统参数params,用户的密文数据集合{c
u
}
u∈U
,用户的权重系数集合{w
u
}
u∈U
,然后分别计算ct0=[∑
u∈U
c
u0
·
w
u
]
q
、ct1=[∑
u∈U
c
u1
·
w
u
]
q
,最后输出系统密文ct=(ct0,ct1);S7.部分解密:输入系统参数params,系统密文ct,用户u的公钥pk
u
和用户u收到集合U中其他用户的加密消息集合{e
vu
}
v∈U\{u}
,输出用户u的部分解密值pm
u
;S8.最终解密:输入系统参数params,系统密文ct=(ct0,ct1),用户的部分解密值集合P1={pm
u
}
u∈V
,其中|P1|≥th,系统公开份额集合OS
sys
,集合U中所有用户公开份额集合和输出由最终解密值组成的多项式M。2.根据权利要求1所述的基于格的分布式门限加法同态加密方法,其特征在于,具体设置多项式次数d、多项式系数模数q、明文多项式模数t、不可约分圆多项式f(x)、整数多项式环Rq表示所有元素系数模q的环R、正态分布χ、均匀分布μ、环R上任意元素混合加密体制HPKE={HPKE.Gen,HPKE.Enc,HPKE.Dec}和多秘密共享方案MultiSS={MultiSS.Setup,MultiSS.Split,MultiSS.Recover};其中HPKE.Gen是密钥生成算法,输入为安全参数,输出为加解密的密钥对;HPKE.Enc为加密算法,输入为加密密钥和明文,输出为密文;HPKE.Dec为解密算法,输入为密文和解密密钥,输出为明文;MultiSS.Setup为系统初始化算法,输入为安全参数,输出为系统参数;MultiSS.Split为秘密分发算法,输入为系统参数和有序的秘密集合,输出为秘密份额集合和用户公开份额;MultiSS.Recover为秘密重构算法,输入为系统参数和秘密份额集合,输出为有序的秘密集合;然后随机选择对于paramSS={n,th,m,U,V,PList,GList,BList,OS
sys
},则执行算法MultiSS.Setup(1
λ
)
→
paramSS可得;其中q为大整数素数,n为参与者的数量,th为门限值,m为一次要共享的秘密数量,要求m≥th;所有参与者的集合为U,满足门限数量的用户集合为V,即n≥|V|≥th;然后在[n+2m+th,q
‑
1]中随机选择n个互不相同的整数p1,p2,p3,
…
,p
n
作为n个参与者的个人身份标识,其集合记为PList;设区间[m,m+n
‑
1]中连续n个整数g1,g2,g3,
…
,g
n
为系统公开份额的标识,其集合记为GList;最后在[0,q
‑
1]范围内随机选择n个随机整数k1,k2,k3,
…
,k
n
,称其系统公开份额,其集合记为OS
sys
。
3.根据权利要求2所述的基于格的分布式门限加法同态加密方法,其特征在于,所述的秘密分发算法MultiSS.Split由秘密分发者负责执行,输入系统参数paramSS和有序的秘密集合mList,输出秘密份额集合SList和用户公开份额OS
u
;设待共享的m个秘密具体为C1,C2,C3,
…
,C
m
,具体步骤如下:插值生成n+m
‑
1次多项式h(x):根据m个秘密组成的数值对(0,C1),(1,C2),(2,C3),
…
(m
‑
1,C
m
),以及n个系统公开份额的数值对(g1,k1),(g2,k2),(g3,k3),
…
,(g
n
,k
n
)共n+m个数值对,利用拉格朗日多项式插值算法,计算得到n+m
‑
1次多项式h(x)=a0+a1x+a2x2+
…
+a
n+m
‑1x
n+m
‑1;生成参与者的秘密份额集合SList:利用得到的n+m
‑
1次多项式h(x),分别计算参与者的秘密份额;将用户的个人身份标识p
i
作为自变量输入多项式h(x),得到的函数值h(p
i
)即为参与者的秘密份额,设其集合为SList;当m>th时,需生成秘密分发者的公开份额集合OS
u
:设区间[m+n,m+2n
‑
th
‑
1]中连续m
‑
th个整数b1,b2,b3,
…
,b
m
‑
th
为秘密分发者公开份额的标识,其集合记为BList;将秘密分发者公开份额的标识集合BList分别输入多项式h(x)得到对应的值h(b
i
),其集合记作OS
u
。4.根据权利要求3所述的基于格的分布式门限加法同态加密方法,其特征在于,所述的秘密重构算法MultiSS.Recover由任何有秘密恢复需求的一方执行,输入系统参数paramSS、秘密份额集合SList,要求集合中的数量不少于th和秘密分发者的公开份额集合OS
u
,输出有序的秘密集合mList,具体步骤如下:插值恢复n+m
‑
1次多项式h(x):根据秘密份额集合SList,得到不少于th个数值对(p
i
,h(p
i
));根据系统公开份额OS
sys
,得到n个数值对(g
n
,k
n
);若m>th时,则还需结合秘密分发者的公开份额集合OS
u
,得到m
‑
th个数值对(b
i
,h(b
i
));利用一共不少于m+n个数值对,使用拉格朗日多项式插值算法,恢复h(x);生成有序的秘密集合mList:分别计算C
i
=h(i
‑
1)来恢复秘密,其中i=1,2,
…
,m,该集合记作mList。5.根据权利要求4所述的基于格的分布式门限加法同态加密方法,其特征在于,所述的步骤S2具体包括:首先从系数是{
‑
1,0,1}的多项式...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。