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