複数宛先へのハイブリッド暗号
送信者 S が,同じメッセージを受信者 A,B,C の 3 人にハイブリッド暗号方式で送る。各受信者が自分の秘密鍵だけで復号でき,それ以外の者は復号できないようにするとき,S が行う処理として,適切なものはどれか。ここで,S は各受信者の公開鍵を正しく入手しているものとする。
- ア共通鍵 K を生成してメッセージを 1 回暗号化し,K を S の秘密鍵で暗号化して暗号文とともに送る。
- イ共通鍵 K を生成してメッセージを 1 回暗号化し,K を A の公開鍵で暗号化した結果を,さらに B の公開鍵,C の公開鍵で順に暗号化して送る。
- ウ共通鍵 K を生成してメッセージを 1 回暗号化し,K を A,B,C の公開鍵でそれぞれ暗号化した三つの値を暗号文とともに送る。
- エ受信者ごとに異なる共通鍵を生成してメッセージをそれぞれ暗号化し,各共通鍵を S の公開鍵で暗号化して送る。
正解と解説を見る
正解 ウ
この問題の基礎知識
- ハイブリッド暗号方式は,メッセージ本体を処理の速い共通鍵暗号で暗号化し,その共通鍵を受信者の公開鍵で暗号化して送る方式である。
- 公開鍵で暗号化したデータは対応する秘密鍵でしか復号できない。機密性の確保には受信者の公開鍵を用い,送信者の秘密鍵による処理はデジタル署名の考え方である。
- 複数の公開鍵で順に多重に暗号化したデータは,対応する全ての秘密鍵で逆の順に復号しなければ取り出せない。
ア共通鍵 K を生成してメッセージを 1 回暗号化し,K を S の秘密鍵で暗号化して暗号文とともに送る。
S の秘密鍵で暗号化した K は,S の公開鍵を入手できる誰でも復号できる。受信者以外にも K が知られ,メッセージの機密性を確保できない。秘密鍵による暗号化はデジタル署名の考え方である。
イ共通鍵 K を生成してメッセージを 1 回暗号化し,K を A の公開鍵で暗号化した結果を,さらに B の公開鍵,C の公開鍵で順に暗号化して送る。
多重に暗号化した K を取り出すには,C,B,A の秘密鍵で順に復号する必要がある。3 人の秘密鍵がそろわなければ復号できず,各受信者が自分の秘密鍵だけで復号することはできない。
ウ共通鍵 K を生成してメッセージを 1 回暗号化し,K を A,B,C の公開鍵でそれぞれ暗号化した三つの値を暗号文とともに送る。正解
メッセージ本体の暗号化は 1 回で済み,K だけを受信者ごとの公開鍵で暗号化する。各受信者は自分の秘密鍵で K を復号してメッセージを復号できる。CMS の EnvelopedData も,内容暗号化鍵を受信者ごとに暗号化する。
エ受信者ごとに異なる共通鍵を生成してメッセージをそれぞれ暗号化し,各共通鍵を S の公開鍵で暗号化して送る。
S の公開鍵で暗号化した共通鍵は S の秘密鍵でしか復号できないので,受信者は共通鍵を取り出せず,メッセージを復号できない。共通鍵の暗号化には受信者の公開鍵を用いる必要がある。
検証用の出典出典照合済み
RFC 5652 Cryptographic Message Syntax (CMS)照合の根拠(3 件)
- ウ(正解): 内容暗号化鍵を受信者ごとに暗号化する
The content-encryption key is encrypted for each recipient.
RFC 5652 · Section 6(新しいタブで開きます) - ウ(正解)/ア・エ(誤り): 鍵輸送では内容暗号化鍵を受信者の公開鍵で暗号化する。送信者 S の秘密鍵・公開鍵を使うのではない
key transport: the content-encryption key is encrypted in the recipient's public key;
RFC 5652 · Section 6(新しいタブで開きます) - イ(誤り): 受信者は自分宛ての暗号化された鍵を一つ復号するだけで開封できる構造であり,多重暗号化では 3 人の秘密鍵が必要になる
A recipient opens the digital envelope by decrypting one of the encrypted content-encryption keys and then decrypting the encrypted content with the recovered content-encryption key.
RFC 5652 · Section 6(新しいタブで開きます)
各受信者が自分の秘密鍵だけで復号するには,共通鍵 K をそれぞれの公開鍵で個別に暗号化する必要がある。アは S の公開鍵で誰でも K を復号でき,エは S しか K を復号できない(公開鍵暗号の性質から論理的に排除)。