ElGamal暗号
ElGamal暗号とは離散対数問題を用いた公開鍵暗号方式である。
手順
準備
以下の手順で公開鍵と秘密鍵の生成を行う。
- 大きな素数である法 を用意する。
- を満たす 原始根 を選ぶ。
- 満たす自然数 をランダムに選ぶ。
- を計算する。
組 が公開鍵、 が秘密鍵となる。
暗号化
公開鍵 を用いて、以下の手順により暗号化を行う。
- 平文 を用意する。
- を満たす 自然数 をランダムに選ぶ。
- を計算する。
- を計算する。
組 が暗号文となる。
復号
以下のように平文を計算する。
のモジュラ逆数 は、フェルマーの小定理や拡張ユークリッド互除法を用いて計算できる。
評価
ElGamal 暗号の安全性と健全性について示す。
安全性
を用いて秘密鍵 を求めることは、理論上可能である。
しかし離散対数問題により、現実的な時間で計算するのは難しい。
健全性
以下に復号が成り立つことを示す。
まとめ
離散対数問題に基づく公開鍵暗号である、ElGamal暗号の手順、安全性、健全性についてまとめた。
各パラメータ
:秘密鍵
:乱数
:法(公開鍵)
:原始根(公開鍵)
:公開鍵
:暗号文
:暗号文