ElGamal加密算法
来自维基百科,自由的百科全书
在密碼學中,ElGamal加密算法是一個基於迪菲-赫爾曼密鑰交換的非對稱加密算法。它在1985年由塔希爾·蓋莫爾提出。[1]GnuPG和PGP等很多密碼學系統中都應用到了ElGamal算法。
算法
ElGamal加密算法由三部分組成:密鑰生成、加密和解密。
密鑰生成的步驟如下:
- Alice利用生成元產生一個階循環群的有效描述。該循環群需要滿足一定的安全性質。
- Alice從中隨機選擇一個。
- Alice計算。
- Alice公開以及的描述作為其公鑰,並保留作為其私鑰。私鑰必須保密。
使用Alice的公鑰向她加密一條消息的加密算法工作方式如下:
- Bob從隨機選擇一個,然後計算。
- Bob計算共享秘密。
- Bob把他要發送的秘密消息映射為上的一個元素。
- Bob計算。
- Bob將密文發送給Alice。
值得注意的是,如果一個人知道了,那麼它很容易就能知道的值。因此對每一條信息都產生一個新的可以提高安全性。所以也被稱作臨時密鑰。
利用私鑰對密文進行解密的算法工作方式如下:
- 解密算法是能夠正確解密出明文的,因為
ElGamal加密系統通常應用在混合加密系統中。例如:用對稱加密體制來加密消息,然後利用ElGamal加密算法傳遞密鑰。這是因為在同等安全等級下,ElGamal加密算法作為一種非對稱密碼學系統,通常比對稱加密體制要慢。對稱加密算法的密鑰和要傳遞的消息相比通常要短得多,所以相比之下使用ElGamal加密密鑰然後用對稱加密來加密任意長度的消息,這樣要更快一些。
參考文獻
Wikiwand - on
Seamless Wikipedia browsing. On steroids.