暗号技術の基礎と応用
教科書どおりのRSA暗号(平文 m をそのまま c = m^e mod n とする方式)を、パディングを付けずに実際の通信に使うことの問題点として、正しいものはどれか。
- A公開鍵で暗号化した暗号文は、秘密鍵がなくても、同じ公開鍵だけで復号できてしまう
- B公開指数 e を公開しているので、e から秘密指数 d をそのまま計算できてしまう
- C同じ平文は常に同じ暗号文になるので、候補の平文を公開鍵で暗号化して比べれば、平文を言い当てられる
答えと解説を見る
正解:C. 同じ平文は常に同じ暗号文になるので、候補の平文を公開鍵で暗号化して比べれば、平文を言い当てられる
教科書どおりのRSA暗号は乱数を使わない確定的な方式なので、「はい」「いいえ」のように候補が少ない平文は、攻撃者が候補をすべて公開鍵で暗号化して暗号文と比べるだけで分かってしまいます。また、平文が小さいと m^e が n を超えず、暗号文の e 乗根をとるだけで平文が求まる場合もあります。実際のRSA暗号では、OAEPのように乱数を含むパディングを付けてから暗号化し、署名ではPSSなどのパディングを使います。さらに、TLS 1.3では、RSA暗号で鍵の材料を暗号化して送る方式そのものが廃止され、RSAは署名にだけ使われます。
- A. 復号には秘密指数 d が必要で、公開鍵だけでは復号できません。
- B. d を求めるには φ(n)、つまり n の素因数分解が必要で、e が公開されていても計算できません。
- C. 正しい。確定的な暗号なので、候補を暗号化して比べる攻撃が成り立ちます。