1.Paillier同态加密算法
1.1 加解密过程:
1.1.1密钥生成
1.随机选择两个大素数,满足
且
长度相等。
2.计算以及
,这里
表示最小公倍数。
3.随机选择,也可令
,优化计算速度
4.定义L函数,计算
公钥,私钥
1.1.2 加密
1.输入明文信息,满足
2.选择随机数且
3.计算密文,若
,则:
1.1.3 解密
1.输入密文,满足
2.计算
1.2 正确性与安全性
1.2.1 解密正确性
当时,
,根据费马小定理,
,同理,
,所以
,所以
,又因为
互素,所以
,所以
,所以
,而
所以
1.2.2 同态加正确性
注意明文的加法是加密域的乘法
1.2.3 同态标量乘正确性
注意明文的乘法是加密域的指数运算
1.2.4 安全性
Paillier方案满足加密方案的标准安全定义:语义安全,即在选择明文攻击下的密文的不可区分性(IND-CPA)。直观地说,就是密文不会泄露明文中的任意信息。方案安全性可以归约到判定性合数剩余假设。、
2.门限 Paillier 加密方案
2.1 加解密过程:
2.1.1 密钥生成
1.选择两个大素数,计算
2.选择3个随机参数,计算公钥:
3.采用Shamir秘密共享方案选择随机参数,将私钥
进行拆分,计算私钥多项式
Shamir秘密共享方案
4.每个用户的私钥:
5.公钥:
6.验证密钥,公开用于验证用户提交的
的正确性,其中
,
为用户数
2.1.2 加密
1.选择随机数
2.计算密文:
2.1.3 解密
1.部分解密(每个用户单独执行):
2.合并解密:当收集到t+1份有效解密份额后,计算:
其中