同态加密 ElGamal方案
First Post:
Last Update:
Word Count:
Read Time:
Last Update:
Word Count:
692
Read Time:
3 min
同态加密 ElGamal方案
原理
ElGamal方案
generate_keys(p,g)
encrypt(m,p,g,y)
decrypt(c,x,p)
同态加密过程
- 生成一个大素数
和生成元 - 用
generate_keys(p,g)
生成公钥和私钥 - 将字节串明文转换为大整数
- 用
encrypt(m,p,g,y)
进行加密
- 生成一个大素数
- 同态解密过程
- 用
decrypt(c,x,p)
进行解密
- 用
乘法同态
homomorphic_addition(c1, c2, p)
- 加密过程
- 选择明文
- 用
encrypt(m, p, g, y)
分别对进行加密,得到 - 用
homomorphic_addition(c1, c2, p)
计算得到密文
- 选择明文
- 解密过程
- 用
decrypt(c3, x, p)
进行解密
- 用
EXP
1 |
|
Output
1 |
|
不过,有一种简单的技巧可以实现基本的加法同态,它被称为“乘法同态转化”。具体方法是,对于明文
reward
Alipay
Wechat