暗号理論の問題
素数 と、法 の原始根 を公開パラメータとするエルガマル暗号を考える。受信者は秘密鍵 を選び、公開鍵 ()を公開している。
送信者は平文 ( の整数)を、整数 を選んで
により暗号文 に変換して送る。受信者が受け取った暗号文が であるとき、平文 を求めよ。
この問題で使うもの
- エルガマル暗号(説明と入口の問題)
- 繰り返し二乗法によるべき剰余(説明と入口の問題)
- 法 での逆元(拡張ユークリッドの互除法)(説明と入口の問題)
この問題を解けるようになるまで(27 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
が成り立つことを使うと、送信者が選んだ を知らなくても を計算できる。
ヒント 2
を繰り返し 2 乗法で計算し、 を求める。
ヒント 3
, から となる。次に の法 での逆元を求めよう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
復号の原理 なので、 とおくと
である。 は素数で だから は法 で逆元をもち、 で平文が得られる。
を計算する 繰り返し 2 乗法を用いる。
、 なので 。
の逆元 より 。
平文
より 。
(確認: であり、 とすると 、 で となり、暗号文と一致する。)
別解
共有秘密 を計算する()。、、。()、。よって 。 より 。 なので 。。検算: で一致。