暗号理論の問題
素数 と、法 の原始根 を公開パラメータとするエルガマル暗号を考える。受信者の公開鍵は である(秘密鍵 は を満たすが、公開されていない)。
平文 ( の整数)を暗号化するとき、送信者は乱数 を選び、
として暗号文 を送る。
ある送信者が、2 つの平文 , を暗号化する際に、誤って同じ乱数 を使ってしまった。その結果、暗号文はそれぞれ
となった。攻撃者は何らかの方法で であることを知った。このとき、秘密鍵 や乱数 を求めずに得られる ( の整数)を求めよ。
この問題で使うもの
- エルガマル暗号(説明と入口の問題)
- 法 での逆元(拡張ユークリッドの互除法)(説明と入口の問題)
この問題を解けるようになるまで(27 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
2 つの暗号文で が等しいことから、同じ乱数 が使われ、 と には共通の因子 が掛かっていることに注目しよう。
ヒント 2
とおくと , 。よって 、 で求められる。逆元はユークリッドの互除法で求める。
ヒント 3
なので となる。あとは の法 での逆元を求めて に掛ければよい。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
同じ乱数 を使っているので、2 つの暗号文に共通の値
が現れ、
が成り立つ(実際 であることからも同じ と分かる)。 は素数なので、 は法 で逆元をもつ。
を求める. である。 の法 での逆元を求める。ユークリッドの互除法より
これを逆にたどると
よって (確認: )。したがって
を求める. である。 の逆元は、 より なので (確認: )。よって
検算. 実際、()、()であり、、、 となって与えられた暗号文と一致する。
まとめると、 により、秘密鍵を知らなくても が得られる。
別解
同じ を使うと共有鍵 が同じになる。、 より
より 。したがって
。 より 、 より 。
検算: ()なので 。()。。一致。
よって 。