Appearance
同态加密
Paillier加密: 任意次同态加与标量乘
支持无限次的加法同态以及明文k与密文的乘法同态(),这里先讲g优化为n+1后的Paillier加密。
参数设置:
- 选择两个大素数,计算
- 计算 ,,
- 由二项式定理易知:,易知
- 对于一个映射 是单射
证明
设 ,则 ,则 ,设 ,则 ,如果,则,而,则恒成立,但是对于模而言,如果,则,故不成立,所以,即,从而。证毕。
- 是一个同态
- 公钥为 , 私钥为 ,既
加密
- 选择随机数
- 明文
- 密文计算:
解密
- 计算 ,则 ,\because gcd(r,N^2) = 1 \And \phi(N^2) = N\phi(N) \rightarrow r^{N\phi(N)} \equiv 1 \; mod \; N^2
- 计算 (参数设置中的3)
- 解得
原始版本:把 换成生成元 ,则加密为 ,跟优化后的比多了一次幂运算。
同态加
- 设有两个密文 ,
- 则
标量乘
- 设有密文 ,标量
- 则
BGN加密: 任意次同态加与一次同态乘
配对的一些性质: 乘法同态: e(u1·u2, v) = e(u1, v) · e(u2, v) e(u, v1·v2) = e(u, v1) · e(u, v2) 指数可提到映射外: e(u^a, v) = e(u, v)^a,e(u, v^b) = e(u, v)^b 合起来:
密钥生成
- 选择两个大素数,计算
- 准备双线性映射 ,生成元 ,生成元 ,
- 公钥为 ,私钥为
加密 计算 ,其中为明文,为随机数
解密
- 计算
- 然后对其进行离散对数求解,得到
同态加
同态乘
- ,
- denote ,