ElGamal算法是一种常见加密算法, 与Diffie-Hellman算法有密切关联。
该算法安全性依赖于计算有限域上离散对数难题:求解离散对数(目前)是困难的,其逆运算指数运算简单。
算法思路:
假设有2个用户Alice 和 Bob,Bob欲使用ElGamal加密算法向Alice发送信息。对于Alice,首先要选择一个素数q, α是素数q的本原根。 [本原根的概念对应模q乘法群(需循环群)中的生成元。
- Alice产生一个
,∈(1, q - 1)
- 计算
=mod q
- A的私钥为
, 公钥为 {q, α,}
公钥存在于某个可信公开中心目录,任何用户都可访问对于Bob, 首先去上述中心目录访问得Alice的公钥 {q, α,
}
然后将自己欲发送的明文M, (M ∈ [1, q - 1]&#