ストリーム暗号を利用するうえで最も重要なルールの1つに「異なる2つの文書を暗号化する際,同じ鍵ストリームを使ってはならない」というものがある。というのも,同じ鍵ストリームで暗号化された2つの文書にXOR演算を施すと暗号を破れてしまうからだ。XOR演算で鍵ストリームはキャンセルされ,2つの文書(平文)にXOR演算を施した文書が得られる。この文書に対して,文字の頻度分析やそのほかの基本的な手法を用いれば,暗号化前の2つの文書が簡単に手に入る。

 素人は,同じ鍵ストリームを2回使うという過ちを犯す。この過ちを突く攻撃を防ぐ簡単な方法は,文書を暗号化する際に,毎回異なる初期化ベクトル(IV:Initialization Vector)を鍵に加えるようにすることだ。

 米Microsoftは,WordとExcelの両方でRC4ストリーム暗号を使用している。そこでは,同じ鍵ストリームを使うという間違いを犯している。Hongjun Wu氏が,論文の中で以下のように説明している。「この論文で,Microsoft Word/Excelに存在する深刻なセキュリティ上の欠陥を指摘する。WordとExcelが文書保護に使っているストリーム暗号RC4の鍵長は,最大で128ビットである。しかし,暗号化された文書が編集されて保存されるときにはIVは変更されない。そのため,RC4の生成する同じ鍵ストリームが,更新された文書の暗号化に使われる。暗号化された文書の情報の多くが容易に解読できてしまうので,結果は悲惨だ」

 この欠陥は目新しくない。Microsoft社は1999年に,同じ間違いをWindows NTのSyskeyユーティリティのRC4でも犯している。5年後に,Microsoft社は別の製品で同じ失敗をしている。

Hongjun Wu氏の論文(PDF形式):
http://eprint.iacr.org/2005/007.pdf

Microsoft社が1999年に犯した間違い:
http://www.bindview.com/Support/RAZOR/Advisories/...

Copyright (c) 2005 by Bruce Schneier.


◆オリジナル記事「Microsoft RC4 Flaw」
「CRYPTO-GRAM February 15, 2005」
「CRYPTO-GRAM February 15, 2005」日本語訳ページ
「CRYPTO-GRAM」日本語訳のバックナンバー・ページ
◆この記事は,Bruce Schneier氏の許可を得て,同氏が執筆および発行するフリーのニュース・レター「CRYPTO-GRAM」の記事を抜粋して日本語化したものです。
◆オリジナルの記事は,「Crypto-Gram Back Issues」でお読みいただけます。CRYPTO-GRAMの購読は「Crypto-Gram Newsletter」のページから申し込めます。
◆日本語訳のバックナンバーは「Crypto-Gram日本語訳」のページからお読みいただけます。
◆Bruce Schneier氏は米Counterpane Internet Securityの創業者およびCTO(最高技術責任者)です。Counterpane Internet Securityはセキュリティ監視の専業ベンダーであり,国内ではインテックと提携し,監視サービス「EINS/MSS+」を提供しています。