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