【コラム】

暗号破りのすすめ
――「RC5クラッキングコンテスト」入門

 「暗号破り」と聞くと、普通は犯罪的イメージを思い浮かべる。しかし、暗号技術の会社では、アルゴリズムにわざと攻撃を仕掛け、技術の安全性を確認するための「暗号破りコンテスト」を実施している。今回は、そのコンテストについて、内容や参加方法を紹介する。


■なぜ暗号を破るか

 一口に暗号化といってもいろいろと方法がある。WWWブラウザーなどでもっとも普及しているのが、「DES」(Data Encryption Standard:データ暗号化標準)と「RC5」と呼ばれる暗号アルゴリズムだ。これらはデータに鍵をかけてしまい(暗号化)、同じ鍵がなければ元に戻すこと(復号化)が不可能というものだ。
 鍵の長さが長ければ長いほど、鍵パターンの数が増え、正しい鍵を探しにくくなる。コンピュータの暗号の場合、鍵の長さは普通、bit数で表現される。たとえば、前述のDESというアルゴリズムは56bitの鍵しか扱えないが、 RC5 は最長128bitもの鍵を利用できる。アルゴリズム自体の差もあるが、単純に考えると鍵が1bit長くなると可能なパターンの数は倍になる。

 しかし、米国政府の輸出規制により、米国の会社は原則として米国とカナダ以外へは最長40bitの鍵を使用するソフトしか配布できない(北米以外に128bit鍵の暗号を使用できるのは許可を受けた銀行などに限られる)。Netscape NavigatorやInternet Explorerにしても、もちろんそうだ。つまり、128bit鍵を使用できる米国人に比べて日本人の使用している暗号は、格段に破りやすくなっている。56bit鍵と比べた場合だけでも 2^16(2の16乗)= 65,536 倍弱い暗号ということになる。

■暗号破りコンテストとは?

 そこで、自社製品にDESを実装しておりRC5の特許を持つRSA社が自ら賞金をかけて、アルゴリズムが安全でないことを証明するために暗号破りコンテストを開催している。米国行政法案(法案S-909)の欠陥を明らかにし、暗号輸出政策を考え直すことを訴えるものだ。

 これまでに破られたのは DES(56bit鍵) 2回、 RC5-56 (56bit鍵)だ(*1参照)。それぞれの所要時間は DES-II(2回目)39日、RC5-56 250日(*2参照) だった。これらの暗号を破ったのはdsitributed.netというプロジェクト。彼らは可能な鍵を片っ端から試していき、照合する強行突破を成し遂げた (brute-force cracking) 。

 現在はRC5-64を相手に奮戦している(*4参照)。RC5-64は名前の通りに64ビット鍵を使用している暗号アルゴリズムである。2^64ということは、1.8 x 10^19種類以上の膨大な数の「鍵の可能性」を探らなければいけない。これは、海を含めた地球上のどこかに落ちているコンタクトレンズを探すようなものだ。

 一台のコンピュータでこれだけの膨大な可能性を検索するには数千年かかるが、distributed.netチームは、インターネットに接続された何千台ものマシンに処理を分散することにより、解読までの期間を大幅に短縮した。RC5-56は250日で解読されたが、RC5-64はその256倍の時間が必要かと思われる。インテル設立者による「ムーアの法則」によれば、18ヶ月ごとにコンピュータの性能は倍になるそうだ。たとえそうでも、RC5-64を解読するには、現在よりさらに多くの参加者が必要になる。

■「RC5-64クラッキング」の参加方法

 実際にdistributed.netから「RC5-64クラッキング」(RC5-64 Secret-key Challenge)に参加するのは簡単だ。まずは、自分の使用している環境に合わせた解読用のクライアントソフトをdistributed.netのサイトから入手しよう。Windows、Macintosh、Unix用以外にも、NetwareやAmiga用なども揃っており、考えられるほとんどのプラットフォームで動作する。なお、このクライアントソフトは、システムで余っているCPUタイムしか使用せず、他のソフトの利用にまったく影響はない。

 コンテスト参加者は、「チーム」に参加することにより連合することも可能だ。チームにはOS別、利用ソフト別、趣味などいろいろなものが多数存在しており、自分に合ったチームがきっと見つかるだろう。 なお、現在の上位3チームのうち2チームが日本からの参加である(*5参照)。筆者が参加しているTeam MAGI(*6参照)は、現在3位のJLUG(*7参照)のサブチームとして参戦中だ。

 ソフトを入手したら、設定時に、参加するチームのメールアドレスを入力する。その後は、専用線だとバックグラウンドで動作させるだけである。ダイヤルアップでのインターネット利用でも、接続するごとに完了した鍵をサーバーに送り、新しい仕事を受け取ってくる作業を、クライアントソフトが自動で行なってくれる。

 distributed.netのサーバーは各参加者が処理した鍵の記録を取り、解読鍵数や平均速度を公開しているので、利用者は自分が解読した量を毎日統計ページで確認できて、自分の貢献度が分かる仕組みになっている。自分のメールアドレスで各チームに参加することもできる(*89参照)が、そちらの手順は少し複雑なので、各チームの解説ページを参照して欲しい。

 この多種多様なプラットフォームで動作しているクライアントはそのままシステムの性能ベンチマークとしても利用できるため、自分の解読速度を登録して他の参加者と比較するデータベースまで登場している。中には最速ではなく最低速を目指す人もいる(*10参照)。

 パソコンは、その処理能力の95%をなにもしないで浪費していると言われている。そのCPUタイムを使ってぜひ挑戦してみてはいかがだろう。

【参照URL】

[*1]RSA 社の各種クラッキングコンテストに関する情報
http://www.rsa.com/rsalabs/html/challenges.html

[*2]日本RSA社 RC5-56解読、プレスリリース
http://www.rsa-japan.co.jp/news/body_56bit.html

[*3]INTERNET Watch '98年2月25日記事
  暗号解読コンテスト「RSA DES Challenge II」の暗号、解読される
/www/article/980225/rsades2.htm

[*4]distributed.net Project Bovine RC5 Effort
http://www.distributed.net/rc5/

[*5]Yahoo!JAPAN「セキュリティと暗号化」
http://www.yahoo.co.jp/Computers_and_Internet/Security_and_Encryption/RSA/RSA_Secret_Key_Challenge/

[*6]Team MAGI's Official web Page
http://www.hal.ne.jp/hiroyk/teammagi/index.html

[*7]JLUG RC5-64 Cracking
http://www.linux.or.jp/~rc5/

[*8]RC5-64 Statistics
http://rc5stats.distributed.net/

[*9]RC5-64 Statistics Team MAGI
http://rc5stats.distributed.net/emsummary.idc?EM=rc5@magi.dsty.ac.jp

[*10]ベンチマーク登録ページ
http://www.orange.co.jp/~masaki/rc5/

('98/5/21)

[Reported by oliver@gol.com]


INTERNET Watchホームページ


ウォッチ編集部INTERNET Watch担当 internet-watch-info@impress.co.jp