在密码学中,ElGamal加密算法是一个基于迪菲-赫尔曼密钥交换的非对称加密算法。它在1985年由塔希尔·盖莫尔提出。[1]GnuPG和PGP等很多密码学系统中都应用到了ElGamal算法。
ElGamal加密算法可以定义在任何循环群上。它的安全性取决于上的离散对数难题。
算法
ElGamal加密算法由三部分组成:密钥生成、加密和解密。
密钥生成
密钥生成的步骤如下:
- Alice利用生成元产生一个阶循环群的有效描述。该循环群需要满足一定的安全性质。
- Alice从中随机选择一个。
- Alice计算。
- Alice公开以及的描述作为其公钥,并保留作为其私钥。私钥必须保密。
加密
使用Alice的公钥向她加密一条消息的加密算法工作方式如下:
- Bob从随机选择一个,然后计算。
- Bob计算共享秘密。
- Bob把他要发送的秘密消息映射为上的一个元素。
- Bob计算。
- Bob将密文发送给Alice。
值得注意的是,如果一个人知道了,那么它很容易就能知道的值。因此对每一条信息都产生一个新的可以提高安全性。所以也被称作临时密钥(英语:ephemeral key)。
解密
利用私钥对密文进行解密的算法工作方式如下:
- Alice计算共享秘密
- 然后计算,并将其映射回明文,其中是在群上的逆元。(例如:如果是整数模n乘法群的一个子群,那么逆元就是模逆元)。
- 解密算法是能够正确解密出明文的,因为
实际使用
ElGamal加密系统通常应用在混合加密系统(英语:hybrid cryptosystem)中。例如:用对称加密体制来加密消息,然后利用ElGamal加密算法传递密钥。这是因为在同等安全等级下,ElGamal加密算法作为一种非对称密码学系统,通常比对称加密体制要慢。对称加密算法的密钥和要传递的消息相比通常要短得多,所以相比之下使用ElGamal加密密钥然后用对称加密来加密任意长度的消息,这样要更快一些。
参考文献
- ^ Taher ElGamal. A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms (PDF). IEEE Transactions on Information Theory. 1985, 31 (4): 469–472 [2016-12-14]. doi:10.1109/TIT.1985.1057074. (原始内容存档 (PDF)于2011-08-13). (conference version appeared in CRYPTO'84, pp. 10–18)
|
---|
算法 | 整数分解 | - Benaloh(英语:Benaloh cryptosystem)
- Blum–Goldwasser(英语:Blum–Goldwasser cryptosystem)
- Cayley–Purser(英语:Cayley–Purser algorithm)
- Damgård–Jurik(英语:Damgård–Jurik cryptosystem)
- GMR(英语:GMR (cryptography))
- Goldwasser–Micali(英语:Goldwasser–Micali cryptosystem)
- Paillier(英语:Paillier cryptosystem)
- Rabin(英语:Rabin cryptosystem)
- RSA
- Okamoto–Uchiyama(英语:Okamoto–Uchiyama cryptosystem)
- Schmidt–Samoa(英语:Schmidt–Samoa cryptosystem)
|
---|
离散对数 | - Cramer–Shoup(英语:Cramer–Shoup cryptosystem)
- DH
- DSA
- ECDH
- ECDSA
- EdDSA
- EKE(英语:Encrypted key exchange)
- ElGamal
- MQV(英语:MQV)
- Schnorr(英语:Schnorr signature)
- SPEKE(英语:SPEKE (cryptography))
- SRP(英语:Secure Remote Password protocol)
- STS(英语:Station-to-Station protocol)
- SM2
|
---|
其他 | - AE(英语:Algebraic Eraser)
- CEILIDH(英语:CEILIDH)
- EPOC(英语:Efficient Probabilistic Public-Key Encryption Scheme)
- HFE(英语:Hidden Field Equations)
- IES(英语:Integrated Encryption Scheme)
- Lamport(英语:Lamport signature)
- McEliece(英语:McEliece cryptosystem)
- Merkle–Hellman(英语:Merkle–Hellman knapsack cryptosystem)
- Naccache–Stern(英语:Naccache–Stern cryptosystem)
- Naccache–Stern knapsack cryptosystem(英语:Naccache–Stern knapsack cryptosystem)
- NTRU
- NTRUEncrypt(英语:NTRUEncrypt)
- NTRUSign(英语:NTRUSign)
- Three-pass protocol(英语:Three-pass protocol)
- XTR(英语:XTR)
|
---|
|
---|
理论 | - 离散对数
- 椭圆曲线密码学
- Non-commutative cryptography(英语:Non-commutative cryptography)
- RSA problem(英语:RSA problem)
- 陷门函数
|
---|
标准化 | - CRYPTREC(英语:CRYPTREC)
- IEEE P1363(英语:IEEE P1363)
- NESSIE(英语:NESSIE)
- NSA Suite B(英语:NSA Suite B Cryptography)
|
---|
论题 | |
---|
|
| |
|