|
必聴講座ご紹介 Cloud Days Tokyo 2012 エムオーテックス Cloud Days Tokyo 2012 ヴイエムウェア Cloud Days Osaka 2012 アマゾン データ サービス ジャパン |
【初級】暗号・認証技術を基礎から理解する 前編セキュリティを確保する中核技術
出典:日経ITプロフェッショナル 2005年1月号
46ページより
(記事は執筆時の情報に基づいており、現在では異なる場合があります) 情報データを様々な攻撃から守る安全なシステムを構築するためには,セキュリティ技術の理解が欠かせない。ここではセキュリティ確保の中核技術とも言える,「共通鍵/公開鍵暗号」,「デジタル署名」,「バイオメトリクス」といった暗号・認証技術を取り上げ,基本的な仕組みや利用動向を解説する。 今や日本の企業のほぼすべてがインターネットを利用しており,一般家庭を見ても利用人口は約5割に達するという。ITは水道や電気と並ぶ,欠かすことのできない社会インフラとなった。 しかし,コンピュータの数が増え,ユーザーが様々なサービスを享受できるようになった一方で,深刻な問題が発生してきた。それは,一つひとつのコンピュータに監視の目が行き届かなくなり,悪意のある人間による不正操作が行われやすい環境になってきたということだ。実際に,コンピュータ上のデータが盗まれたり,改ざんされるといった事件が多発するようになり,連日のように報道されている。様々なデバイスやネットワーク機器がつながるユビキタス社会が本格的に到来すれば,データが狙われる危険性はますます高まるだろう。 データを守り,システムのセキュリティを保つために今まで様々な技術が開発され,実際に利用されている。例えばセキュリティ技術の中核とも言える,通信の秘密を保つ「暗号技術」,また,データの改ざんを防ぎ,サービス利用者を認証する「デジタル署名技術」などだ。さらに最近は,より確実かつ安全に本人を認証できる技術として「バイオメトリクス技術」が普及しつつある。以下ではそれらの暗号・認証技術を取り上げ,基本的な仕組みを解説する(図1)。
古代からあった暗号そもそも暗号はいつ誕生したのだろうか。暗号の歴史は長く,紀元前までさかのぼることができる。もしかしたら人類が「文字」という技術に習熟した頃には,すでにあったのかもしれない。古代ギリシャでは,決まった太さの棒を二者間で共有し,棒に巻きつけた細長いテープに通信文を書き込む,という暗号方式が知られていた(図2)。このテープを違う太さの棒に巻き付けても,意味を成さない文字列が現れるだけ,というわけだ。
また古代ローマのジュリアス・シーザーが使ったとされる「シーザー暗号」は,アルファベットを順にずらしたものだった。映画「2001年宇宙の旅」に登場するコンピュータ「HAL9000」のHALという名前が,IBMを1文字ずつずらしたアナグラム(つづり換え語)であることは有名だが,これもシーザー暗号の一種と言えるかもしれない。もちろんアルファベットのずらし方は26通りしかないので,シーザー暗号の解読はそれほど難しくない。 古来,戦争では様々な暗号が使われたが,軍事用の暗号として最も有名なのは「エニグマ」であろう。エニグマは第二次大戦中にドイツ軍が開発した暗号で,機械によってアルファベットの文字を置き換えていくものだ。当時,同様の暗号は世界中で開発されており,日本ではパープル暗号と呼ばれる暗号が使われていた。米国国家安全保障局(NSA)の博物館などで,今もこれらの暗号機の姿を見ることができる。 DESの構造はらせん状それまで主に軍事用として発展してきた暗号は,1977年に大きな転機を迎える。米国商務省が政府標準暗号として採用した「DESデス(Data Encryption Standard)」の登場だ。DESはIBMのエンジニアたちによって設計された世界初の商業用暗号だった。軍事用に限らず広く利用されることを想定していたため,暗号化方式(アルゴリズム)を公開し,暗号化と復号化の際に用いる数値データ(これを「鍵」と呼ぶ)だけを秘密にすれば解読できないように設計された。 DESは,データの送信者と受信者だけが知っている共通の鍵を使う方式なので,「共通鍵暗号」と呼ばれる(図3)。共通鍵暗号方式は古くからある暗号の方式である。例えば「シーザー暗号」は,両者が文字のずらし幅を共有するという点で,共通鍵暗号方式だと言える。
コンピュータを用いた共通鍵暗号方式には,一定のかたまりのデータ(ブロック)をかき混ぜることで暗号化する「ブロック暗号」と,データを1ビット,もしくは数ビットごとの単位で暗号化していく「ストリーム暗号」という2つの方式がある。DESはブロック暗号をベースにした方式である。 DESが1回に処理するデータ長(ブロック長)は64ビット,鍵の長さは56ビットだ。1つのブロックを32ビットずつの左右のデータの固まり(サブブロック)に分け,それらをかき混ぜる処理が基本である(図4)。具体的には片方のサブブロックを「F関数」で変換し,もう片方のサブブロックとXOR演算で合成する。F関数は,「換字」(シーザー暗号のように,ある文字を別の文字に置き換える操作)と「転置」(文字位置の入れ替え)から成り立っている。 DESではこのように左右を入れ替える処理を16回繰り返す。ちょうどらせん状の梯子のようなイメージを思い浮かべてほしい。この構造は,設計者の名を取ってフェイステル(Feistel)梯子と呼ばれている。
1回ごとの変換はシンプルだが,繰り返すことでDESは全体として複雑な変換を実現している。この基本思想は,DES以降のすべてのブロック暗号に受け継がれていく。 鍵のサイズが強度の決め手共通鍵暗号では,「鍵」のサイズ(数値データのビット数)こそが「暗号の強度」を決定する極めて重要なパラメータとなる。暗号の最も原始的な解読法とは「すべての鍵を試してみる(鍵の総当り探索)」ことだ。計算機能力の向上とともに,この攻撃法は脅威が増している。例えば以前はWebブラウザ用の暗号などで,鍵長40ビットの暗号がよく用いられていた。しかし40ビットという鍵長は,今日のパソコンであれば数日で鍵を全部試してみることができ,とても安全とは言えない。 DESは鍵長が56ビットと短かったため,公開された当初から安全性に対して懸念の声が挙げられた。そこで金融業界など高い安全性が求められる分野では,1つのメッセージに対して暗号化を3回行って安全性を高める「TDEA」(「トリプルDES」とも言う)という方式を利用するようになった。具体的には,「DES暗号化→DES復号化→DES暗号化」という3段階の処理を,それぞれ異なる鍵で連続して行う注1)。 政府が疑われるDESの問題は鍵サイズの小ささだけではなかった。暗号研究者の間では,DESの暗号アルゴリズムの構造的な欠陥を利用した解読技術も研究が進められていた。解読を試みた研究者たちの本音は,むしろ「DESの設計者たちが,故意に欠陥(バックドア)を仕掛けていないかどうかをチェックしたい」という点にあったようだ。なぜならば米国政府がDESを採択した際に,設計プロセスが公開されなかったためである。つまり,政府と設計者たちだけが解読できる仕組みがあるのではないかと勘ぐられていたのだ。ただし,現在は「DESにはバックドアは存在しない」という結論に落ち着いている。 今までに発表された,DESの著名な解読技術としては,イスラエルのビハム(Biham)氏とシャミア(Shamir)氏が考案した「差分解読法(1989年)」や,日本の松井氏が考案した「線形解読法(1993年)」などが挙げられる。差分解読法は,10年以上も幾多の攻撃を退けてきたDESの解読に初めて成功した攻撃法である。また,線形解読法は,DESに対する攻撃法としては,現在知られている中で最も効率的なものとされている。 しかし,これらの解読法はいずれも解読のために大量の平文(暗号化する前の情報)と暗号文のセットを必要とする。例えば線形解読法では,64テラバイトの平文と暗号文のペアを事前に収集する必要がある。 「平文が分かっているのに“解読”するとはどういうことか」と不思議に思うかもしれない。だが,最新の暗号理論では,攻撃者が鍵以外のすべての情報を入手可能であるという仮定の下で鍵情報を復元することを,暗号解読と呼んでいる。 こうしてDESは次第に解読可能となり,90年代後半にコンピュータの処理能力や暗号解読技術が進歩すると,いよいよ解読が現実的になってきた。 ついに解読されたDESそうした中,97年に米RSA Data Security社の主催で「第1回DES解読コンテスト」が開催された。このとき,7万台のPCを使い,100日間かけてDESがついに解読された。99年の第3回コンテストでは,10万台のPCと専用ハードウエアを使って,解読時間が22時間にまで短縮した。この時点で,少なくとも高度なセキュリティが求められる場面ではDESを利用すべきではないと考えられるようになった。 米国技術標準局(NIST)はそうした状況を踏まえ,97年からDESの後継を担うべき新たな標準的な暗号技術の選考を開始していた。アルゴリズムを公募したところ,世界中から21のアルゴリズムが応募された。一般意見も採り入れて選考を行い,ベルギーのルーベン・カトリック大学の学生が応募した「ラインデール(Rijndael)」が,2000年に最終的に政府の「AES(標準暗号:Advanced Encryption Standard)」として選ばれた。この選考は世界中の研究者たちから驚きと賞賛をもって迎えられた。現在,ラインデールはVPNネットワーク,無線LANなど様々な分野の標準的な暗号として普及している。 なお,共通鍵暗号のもう1つの方法であるストリーム暗号の歴史は,ブロック暗号ほど華々しいものではない。ストリーム暗号は主に軍事目的という閉じた世界で利用されていたためでもある。しかし,ブロック暗号と比べて「小規模での実装が可能」,「ビット単位での処理が容易」といったメリットがあり,携帯電話やBluetoothなどの無線通信区間暗号として採用されている。処理効率の面から見れば,ブロック暗号よりも優れているので,今後の活用が期待される。
次回に続く
|