新起点
ElGamal加密算法
2020-08-03 01:03:13

在密码学中,ElGamal加密算法是一个基于迪菲-赫尔曼密钥交换的非对称加密算法。它在1985年由塔希尔·盖莫尔提出。GnuPG和PGP等很多密码学系统中都应用到了ElGamal算法。

ElGamal加密算法可以定义在任何循环群 G {\displaystyle G} 上。它的安全性取决于 G {\displaystyle G} 上的离散对数难题。

ElGamal加密算法由三部分组成:密钥生成、加密和解密。

密钥生成的步骤如下:

使用Alice的公钥 ( G , q , g , h ) {\displaystyle (G,q,g,h)} 向她加密一条消息 m {\displaystyle m} 的加密算法工作方式如下:

值得注意的是,如果一个人知道了 m {\displaystyle m'} ,那么它很容易就能知道 h y {\displaystyle h^{y}} 的值。因此对每一条信息都产生一个新的 y {\displaystyle y} 可以提高安全性。所以 y {\displaystyle y} 也被称作临时密钥(英语:ephemeral key)。

利用私钥 x {\displaystyle x} 对密文 ( c 1 , c 2 ) {\displaystyle (c_{1},c_{2})} 进行解密的算法工作方式如下:

ElGamal加密系统通常应用在混合加密系统(英语:hybrid cryptosystem)中。例如:用对称加密体制来加密消息,然后利用ElGamal加密算法传递密钥。这是因为在同等安全等级下,ElGamal加密算法作为一种非对称密码学系统,通常比对称加密体制要慢。对称加密算法的密钥和要传递的消息相比通常要短得多,所以相比之下使用ElGamal加密密钥然后用对称加密来加密任意长度的消息,这样要更快一些。


网站公告: