ストリーム暗号の現状と課題 the State of Stream Ciphers
Total Page:16
File Type:pdf, Size:1020Kb
解 説 論 文 ストリーム暗号の現状と課題 The State of Stream Ciphers 森井昌克 Masakatu MORII 寺村亮一 Ryoichi TERAMURA アブストラクト ストリーム暗号は高速処理に優れた暗号のクラスであり,近年の情報の大規模化・通信の高速化に伴 い注目を集めている.このストリーム暗号の次世代を選定するプロジェクト eSTREAM(the ECRYPT stream cipher project)が欧州にて3年間にわたり開催され,その結果として先日七つのポートフォリオが選定された.本稿 では,ストリーム暗号を概観し,特にこのeSTREAMでの成果を踏まえて,現状最も使用されているストリーム暗号 であるRC4,これからのストリーム暗号であるeSTREAM暗号,そして現在ISO(International Organization for Standardization)に提案されている三つの暗号の動向について解説する. キーワード 暗号,ストリーム暗号,eSTREAM,RC4,WEP 1.はじめに 2.ストリーム暗号 コンピュータセキュリティ,及びネットワークセキュリ 2.1 共通鍵暗号としてのストリーム暗号 ティの分野は多岐にわたるが,その根幹を担う一つの分野が 暗号,そしてその利用を含む暗号技術である. 共通鍵暗号は暗号化と復号に同一の秘密鍵を用いる方式で 暗号の基本となるものが,暗号プリミティブと呼ばれる ある.共通鍵暗号方式は暗号化と復号に異なる鍵を用いる公 データの機密性,完全性,認証,否認防止等を実現するアル 開鍵暗号方式と異なり,通信等に用いる場合は事前に鍵を共 ゴリズムである.本論文では,この暗号プリミティブを扱い, 有する必要があるものの,暗号化処理速度の面で公開鍵暗号 以下,注記しない限り暗号プリミティブのことを暗号と呼ぶ. 方式より優れている.この共通鍵暗号は更に“ブロック暗号” 暗号には大きく分けて“公開鍵暗号” と“共通鍵暗号” という と“ストリーム暗号” の二つのクラスに大別できる(図 1).ブ 二つのクラスがある.後者の共通鍵暗号に属するストリーム ロック暗号は平文を 64 ビットや128 ビットのブロックに分割 暗号は高速処理に優れた暗号のクラスであり,近年の情報の し,それぞれに対して暗号化を行う方式である.またストリー 大規模化・通信の高速化に伴い注目を集めている.このスト ム暗号は平文をデータストリームとして扱い,ビットもしく リーム暗号の次世代を選定するプロジェクト eSTREAM(the はバイト単位で逐次暗号化を行う方式である.これらの関係 ECRYPT stream cipher project)(1)が欧州にて3年間にわたり開 は誤り訂正符号におけるブロック符号と畳込み符号の関係に 催され,その結果として先日七つのポートフォリオが選定さ れた(2008年9月17日現在). 本稿では,ストリーム暗号を概観し,特にこの eSTREAM での成果を踏まえて,現状最も使用されているストリー ム 暗 号 で あ る RC4, こ れ か ら の ス ト リ ー ム 暗 号 で あ る eSTREAM暗号,そして現在ISO(International Organization for Standardization)に提案されている三つの暗号の動向について 解説する. 森井昌克 正員 神戸大学大学院工学研究科 図 1 ブロック暗号とストリーム暗号 ブロック暗号は, E-mail [email protected] 一つ一つのブロックが独立に暗号化復号されることに対し 寺村亮一 学生員 神戸大学大学院工学研究科 E-mail [email protected] て,ストリーム暗号では,ビットもしくはバイト単位で暗号 Masakatu MORII, Member and Ryoichi TERAMURA, Student Member (Graduate School 化復号されるものの独立ではなく,先の暗号化復号処理に依 of Engineering, Kobe University, Kobe-shi, 657-8501, Japan). Fundamentals Review Vol.2 No.3 pp.66-pp.75 2009年1月 存する. 66 Fundamentals Review Vol.2 No.3 相似する.通常,ブロック暗号は一つ一つのブロックが独立 に暗号化復号される.それに対して,ストリーム暗号はビッ トもしくはバイト単位で暗号化復号が行われ,それぞれの処 理は独立でなく先の処理に依存する.前者の代表的な暗号と して,Advanced Encryption Standard(AES)(2),Camellia(3)等が, 後者の代表的な暗号としてRivest Cipher 4(RC4),MUGI(4)等 が挙げられる. 広い意味で,ストリーム暗号はビットあるいはバイトごと の平文に対して,事前の暗号化復号処理に依存して,事後の 暗号化復号処理を行う方式であるが,本稿では狭い意味での ストリーム暗号である,鍵から得られるキーストリームと平 文ストリームの排他的論理和で暗号化を行う方式を扱う. 図 3 KSA と PRGA ストリーム暗号では KSA に鍵,IV を 2.2 ストリーム暗号の概要 入力することで内部状態を初期化する.またその初期化され た内部状態を PRGA に入力することで内部状態の更新を行い, キーストリームを出力する. 典型的なストリーム暗号としてワンタイムパッドが挙げら れる(図 2).これは平文と同じ長さの乱数系列を利用者間で まず暗号化に用いる乱数系列は一度使用すると二度と再利用 共有し,平文との排他的論理和をとることで暗号化復号を行 してはならない.更に平文と同じ長さの乱数系列を安全に共 う方式である.例えばアリスがボブに対して“こんにちは” と 有しなければならない.安全とは送受信を行う二者以外が有 いう内容の平文をワンタイムパッド方式で暗号化して送った することも,推定することもできないことを意味する.これ と仮定する.事前に共有しておいた乱数系列と送られてきた らの仮定は現実的ではない. 暗号文の排他的論理和をとることで,ボブは容易に暗号文か 一般に用いられるストリーム暗号ではワンタイムパッドと ら“こんにちは” という平文を得ることができる.しかし正し 異なり平文と同じ長さの乱数系列を共有するのでなく,擬似 い乱数系列を知らない攻撃者は,ある乱数系列と暗号文の排 乱数生成器,及び秘密鍵と呼ばれる短い情報を共有し,それ 他的論理和が“こんにちは” になることを知ったとしても,異 らから擬似乱数系列を生成し暗号化に利用する. なる乱数系列との排他的論理和から得られる“さようなら” 等 ストリーム暗号は暗号化や復号の際,秘密鍵や初期化ベ の様々な平文の中から“こんにちは” が正しい平文と決定でき クトル(IV : Initialization Vector)をシードとしてキースト ない.このため暗号化に使用された正しい乱数系列を知らな リームと呼ばれる任意長の擬似乱数系列を生成する.そし い攻撃者は暗号文だけ手に入れたとしても,暗号文から正し て得られたキーストリーム Z と平文 P の排他的論理和をと い平文の内容を特定することは不可能である.乱数系列が真 ることで暗号文 C を導出する( P � Z � C ).また復号の際 性乱数系列であればワンタイムパッドは理想的な暗号方式と には暗号文 C とキーストリーム Z の排他的論理和をとるこ なり得る. とで元の平文 P を導出する( C � Z � P � Z � Z � P ). ワンタイムパッドは理想的な暗号であるものの,その安全 ストリーム暗号の擬似乱数生成アルゴリズムは大きく二つ な運用に関して問題ともいえる,幾つかの仮定を必要とする. の段階に区別できる.一つは秘密鍵や初期化ベクトルを用い て擬似乱数生成器の内部状態を初期化するアルゴリズム,も う一つは内部状態を更新しながらキーストリームを生成する アルゴリズムである.前者は鍵スケジューリングアルゴリズ ム(KSA:Key Scheduling Algorithm),後者は擬似乱数生成ア ルゴリズム(PRGA:Pseudo-Random Generation Algorithm)と 呼ばれる(図 3).ワンタイムパッドと等価ではないものの, 同等の安全性を得るための条件として,擬似乱数生成器の生 成するキーストリームには,周期が長いこと,キーストリー ムのビット間に相関がないこと等,真性乱数系列に期待でき る性質が求められる. ストリーム暗号では KSA に鍵,IV を入力することで内部 状態を初期化する.またその初期化された内部状態を PRGA 図 2 ワンタイムパッド 正しい乱数を知らない攻撃者は, に入力することでキーストリームを出力する. ある乱数系列と暗号文の排他的論理和が,“こんにちは”とい ストリーム暗号はその内部状態の構成の違いから線形 う平文になることを知ったとしても,様々な平文の中から“こ フィードバックシフトレジスタ(LFSR:Linear Feedback Shift んにちは”が正しい平文であることを決定できない. Register)型と状態遷移型の二つに区別できる(図 4).前者は Fundamentals Review Vol.2 No.3 67 機能力では現実時間内に鍵の全候補を試すことは不可能 であるため,総当たり攻撃は脅威とはならない.総当た り攻撃に対して,暗号のアルゴリズム上の欠陥を利用し, 効率的に鍵を探索する方法をショートカット攻撃と呼ぶ. • 識別攻撃 ストリーム暗号のキーストリームが真性乱数系列であれ ば,そのストリーム暗号はワンタイムパッドと等価とな り安全性は保証される.識別攻撃はキーストリームと真 性乱数系列を識別,すなわちストリーム暗号の擬似乱数 生成器が発生する乱数が真性乱数となりえないことを証 明することで安全性の評価を行う攻撃方法である.識別 図 4 LFSR 型と状態遷移型 (a)LFSR型のストリーム暗号 攻撃それ自体では暗号の安全性上,大きな脅威とはなら では LFSR の出力を非線形関数に通すことでキーストリームを ないとも考えられる.しかし識別攻撃の研究を進めるこ 生成する.(b)状態遷移型のストリーム暗号では内部状態その とで,キーストリームの乱数性の偏りを利用した鍵回復 ものをかくはんしキーストリームを生成する. 攻撃や内部状態復元攻撃へ発展する可能性がある. LFSR から得られるビット列を非線形関数に通すことでキー ストリームを生成する手法であり,後者はレジスタ内の情報 • 出力予測攻撃 をスワップ等でかくはんし,それら情報自体をキーストリー 出力予測攻撃はキーストリームの一部の情報を利用して, ムとして出力する手法である.LFSR 型の代表的な暗号とし キーストリームの他の部分を高い確率で予測する攻撃で て Snow 2.0(5),状態遷移型の代表的な暗号として RC4 が挙げ ある.出力予測攻撃が可能ならば,攻撃者は暗号化に使 られる. 用された平文の一部を推測するだけで,平文の他の部分 一般にストリーム暗号はブロック暗号と比較して,アルゴ の情報も取得することができる. リズム記述量,あるいは回路規模を小さくでき , また高速化 が可能である.しかしながら,その安全性に関する議論はブ • 内部状態復元攻撃 ロック暗号ほど進んでいない.ブロック暗号の研究において 内部状態復元攻撃はキーストリームから擬似乱数生成器 培われた評価手法をストリーム暗号に適用できる部分がある の内部状態を復元する攻撃である.ストリーム暗号は ものの,その構造の相違から必ずしも同一に扱うことはでき PRGA で内部状態の情報のみを利用してキーストリーム ない.また,擬似乱数生成器を用いることから,乱数系列の を出力するため,攻撃者はある時刻の内部状態を復元で 性質をもって評価尺度とする議論も存在するが,必ずしも十 きれば,以降のキーストリームを全て知ることが可能と 分ではない.高速かつ低消費電力な通信が望まれる中,スト なる.これより攻撃者はキーストリームと暗号文の排他 リーム暗号が果たす役割は今後ますます増大すると考えられ 的論理和をとり暗号文を解読できる.この攻撃手法は鍵 る.それゆえ,暗号としての最も要求される性質である安全 回復攻撃とともに非常に強力な攻撃手法である. 性,及びその評価手法の開発が希求されている. • 鍵回復攻撃 2.3 ストリーム暗号に対する攻撃手法 鍵回復攻撃はキーストリームから秘密鍵を効率良く回復 する攻撃である.ストリーム暗号では暗号化復号に利用 本節ではストリーム暗号の安全性評価を行う上で重要とな する秘密情報は鍵のみに依存することが一般的であるた る代表的な攻撃手法を与える. め,鍵回復攻撃が成功すると攻撃者はその鍵によって暗号 化された全ての暗号文を解読することができる.一般に • 総当たり攻撃 鍵の全数探索未満の計算量(128 ビットの鍵ならば 2128 未 攻撃者はすべての秘密鍵を候補として復号することに 満)で鍵の回復が成功するとき,“暗号は解読された” とい より,暗号文を解読することができる.このように鍵 われる.ブロック暗号,ストリーム暗号とも,いかなる の全数探索を行う攻撃手法を総当たり攻撃(Brute Force 攻撃方法においても鍵の全数探索以上の計算量を必要と Attack)という.一般に現在の暗号は,鍵長を長く取るこ するように設計することが必要条件となっている.した とによって,この攻撃に対して十分な安全性を持つよう がって,鍵の全数探索未満の計算量で鍵の導出が可能な に設計されている.このため現在の多くの暗号は128ビッ らば,その暗号は根本的な設計不良とみなされ,安全性 ト以上の鍵長を有している.鍵長が 128 ビットである場 の面で著しい欠点を持つと考えられる. 合,攻撃者は総当たり攻撃で解読するために2128 個の鍵の 候補を試さなくてはならない.しかしながら現在の計算 本節ではストリーム暗号の特徴から攻撃手法を五つに大別 68 Fundamentals Review Vol.2 No.3 述できる(図 5).また他のストリーム暗号同様,KSA に秘密 鍵を入力することで内部状態を初期化し,PRGA に初期化し た内部状態を入力することでキーストリームを生成する.そ してこのキーストリームと平文/暗号文との排他的論理和を とることで,RC4の暗号化復号処理は完了する. 3.2 RC4の安全性に関する研究動向 RC4 はそのアルゴリズムの公開以来,多様な視点からその 安全性に関して研究が続けられている.しかしながら128ビッ トの鍵長で実装したRC4に対して,現実時間で鍵を導出でき る攻撃は提案されていない.しかし識別攻撃や内部状態推測 STEP1:ポインタiの値をインクリメント 攻撃,キーストリームから鍵の一部が推測可能となる弱鍵の STEP2:iの指す配列値をポインタjにインクリメント 研究等は一定の成果を上げており,現在でも研究が盛んに行 STEP3:i,jの指す配列値を交換 STEP4:i,jの指す要素の和の配列値を出力 われている.本節ではこれらの研究動向を解説する. 図5. RC4のPRGA概要 RC4 に対する最も強力な識別攻撃は 2005 年に Mantin によ (9) した.これらは更に推測決定攻撃や相関攻撃等,より細別す り提案された攻撃手法である .RC4 は状態遷移型のスト ることが可能である(例:推測決定攻撃を用いた内部状態復 リーム暗号であり,ポインタで示された二つのレジスタ値を 元手法等). スワップすることで内部状態を混ぜ合わせる.逆にいえばポ インタに示されない限り,レジスタに格納された値は保持さ 3.RC4(Arcfour) れることを意味する.また RC4 ではキーストリーム 1 バイト の出力に最大でも三つのレジスタの値S[i], S[j], S[S[i]+S[j]] 3.1 RC4とは しか使用しない.すなわちポインタ i がまた同じレジスタを 指すまでの時刻28 の間,この三つのレジスタの値がポインタ t t 8 RC4 は 1987 年に RSA Security 社の Ron Rivest によって開発 に示されなければ,ある時刻 と時刻 +2 のキーストリーム されたストリーム暗号である.RC4 は開発当初からそのアル のバイトは高い確率で同一の値が出力される.すなわちキー ゴリズムは非公開とされていたが,1994 年にインターネッ ストリームに偏りが生じ,その結果,真性乱数とRC4のキー ト上に RC4 と等価な処理を行うアルゴリズムが RSA Security ストリームを区別することが可能になる.Mantin によって提 26.5 社の承諾なく公開された.現在そのアルゴリズムは多くが知 案された識別攻撃は 2 バイトのキーストリームを観測すれ るところであるが,公式には RSA Security 社は RC4 のアルゴ ば確率 2/3 以上で成功する.更に Mantin はこの RC4 のキース リズムを現在でも公開していない.このため本章で解説する トリームに偏りが生じるという特性を利用した出力予測攻撃 (9) t t 8 RC4はあくまでも RC4と等価な暗号化処理を行うストリーム も提案している .先ほど時刻 と時刻 +2 のキーストリー 暗号“Arcfour(Alleged RC4)” である.ただし本稿では混乱を ムのバイトが高い確率で一致すると述べた.すなわちある時 8 避けるためArcfourをRC4と呼ぶ. 刻から 2 ずれた出力を高い確率で予測することも可能とな 45 RC4 の特長として非常に短いコードで記述できる点,ソフ る.この攻撃ではキーストリームの2 バイトを観測した後に 50 トウェア上で非常に高速に動作する点等が挙げられる.サー それ以外の 1 ビットを確率 0.85 で予測でき,2 バイトを観測 バ・ブラウザ間通信の標準プロトコルである Secure Sockets した後にそれ以外の8ビットを確率0.82で予測できる. Layer(SSL) / Transport Layer Security(TLS)(6)や無線 LAN 用 RC4に対する最も有名な内部状態復元攻撃として,1998年 のプロトコルであるWired Equivalent Privacy(WEP)(7),その に Knudsen らによって提案された木探索を利用した攻撃が挙 (10) 後継である Wi-Fi Protected Access(WPA)(8)等,様々な標準 げられる .後にこれは白石らによって木探索部分を深さ優 規格に採用されている. 先の探索を行う攻撃として改良され,内部状態の73バイトを 20 RC4 は 8 ビットから 2,048 ビットの間から鍵長を選択でき, 知ることにより2 の計算量によって,高い確率で,残りの内 (11) それより時刻ごとに 8 ビット単位でキーストリームを出力す 部状態を推定し得ることが示された .木探索とは異なる内 る.鍵長の安全なパラメータとしては 128 ビット以上が推奨 部状態復元攻撃としては,Golić によって提案されたキースト されている.RC4 の内部状態は 2n 個の要素を持つ配列と 2 個 リームを入力とする事後確率の繰返し計算に基づく内部状態 (12) のポインタから構成されており,要素とポインタはそれぞれ 復元攻撃が挙げられる .またこの手法は前述した木探索に n ビットの変数である.ここで n は可変の値であり,一般的 基づく方法と併用することが可能であり,大東らは実際に二 に n=8 が採用される.RC4 の KSA,PRGA はスワップ処理を つの方法を併用することで更に内部状態復元攻撃を改良して (13) 中心としたアルゴリズムであり,共に非常に短いコードで記 いる .また著者らは KSA 終了時の一部の内部状態に対す る復元可能な割合及び復元できる内部状態のバイト数につい Fundamentals Review Vol.2 No.3 69 て考察している(14),(15). えいすることを利用している.104 ビットの秘密鍵を FMS 攻 RC4 に対する鍵回復攻撃としては弱鍵を利用した Roos の 撃で復元するためには約 400 万から 600 万の暗号化パケット 攻撃が有名である.Roos は鍵の 1 バイト目 K[0] と 2 バイト を観測する必要がある.FMS 攻撃への耐性を有するために, 目 K[1] が (K[0]+K[1]) mod 256 = 0 の条件を満たす鍵におい 無線 LAN 機器を扱うベンダの製品では WEPplus と呼ばれる て,鍵の 3 バイト目 K[2] が 1/22.85 の確率でキーストリームか 技術を採用している(19).この技術は FMS 攻撃に用いられる ら得られることを示した(16).この弱鍵を対象にした攻撃で weak IV をフィルタリングして取り除くことで,安全な IVの は,1/210.85 の確率で秘密鍵の 16 ビット分を復元できることに みをWEPで用いる方法である. なり,効率的な鍵の復元が可能となる.この弱鍵を用いた攻 2007 年,Tews らによって,IV によらず高速に 104 ビット 撃は(K[0]+K[1]) mod 256 = 0を満たす鍵をスキップするとい の秘密鍵が導出できることが示された(20).この攻撃は PTW う単純なフィルタリングパターンによって防ぐことが可能で 攻撃と呼ばれる(著者の並び順では TPW 攻撃と呼ぶところで ある. あるが,Tews自身からPTW攻撃と記するよう要望).この攻 著者らは Roos らと異なる方法で弱鍵を定義し,それらを 撃は 2006 年に Klein によって発表された鍵回復攻撃(21)を発展 用いた秘密鍵探索法を提案している.この攻撃ではキースト させたものである.しかし,PTW攻撃には大量のARPパケッ リームから内部状態を復元する方法と内部状態から秘密鍵を トが必要となるため,現実的な時間で攻撃を成功させるため 回復する方法をそれぞれ組み合わせることで,弱鍵の一部を には,アクセスポイントに対して不正アクセスを行い,大量 回復する.この手順によって復元可能な弱鍵の具体例は文献