見出し画像

NY駐在員報告  「暗号技術の現状と課題(その1)」 1996年2月

 1年前に「ネットワークセキュリティと暗号技術」について報告したが、今回はエレクトロニック・コマースとの関係で注目を浴びている暗号技術に焦点を当てて報告する(暗号技術に関する基礎知識が必要であれば、1年前のレポートを参照されたい)。

エレクトロニック・コマースと暗号

 コンピュータ・ネットワークを使って商取引をする場合、様々な問題が生じる。たとえば、A社から送られてきた注文書はそのまま信用してよいのかどうか。電子化されたドキュメントは容易にコピーできる。そればかりか、相手に気付かれないように改竄も可能だ。オリジナルの注文書は商品の数量が10個なのに、それを50個と書き換えても、電子化されたドキュメントでは改竄の痕跡は残らない。そもそも、送られてきた注文書は、本当にA社が作成したものなのかどうかも怪しい。競争相手のB社がA社のフリをして送ってきたのかもしれない。たとえ注文書にスキャナで読みとった社長のサインや印鑑があっても、別の注文書からコピーして張り付けることもできる。

 別の例を考えよう。インターネット上で見つけたサイバーショップでカナダ産のメープル・シロップを購入する場合を考えよう。注文書を記入していくと、最後に支払い方法を選択することになる。VISAカードかマスターカードが利用できる。カードの種類を選び、クレジットカードの番号、有効期限などを入力して、ふと心配になる。このクレジットカードのデータが誰かに盗聴されて悪用されるのではないかと。

 インターネットでは、誰かが自分のフリをして注文書を送る可能性もあれば、送信したクレジットカードの情報を盗まれる恐れも十分にある。銀行や企業内のネットワークと違い、ネットワークがオープンであるため、ネットワークそのもののセキュリティレベルが低いからである。
 そこで登場するのが暗号技術である。暗号技術を用いれば、情報(たとえば注文書)を送ってきた相手が本人であること及びその情報が第三者によって改竄されていないことを確認し、さらにその情報の秘密性を保持できる。

 すでにインターネット上では多くの企業が、モノやサービスを販売している。WWWを用いてビジネスを行っている1000社を対象にアンケート調査を実施したアクティブメディア社は、95年の市場規模を4億ドルと推計している。ちなみにモノやサービスを販売している個々のサイバーショップの売上げは大きくばらついており、4割強は月1000ドル未満、約3割は1000〜9999ドル、約2割が1万〜10万ドル未満、約5%が10万ドル以上となっている(この調査における月間の売上高の最高は300万ドルである)。こうしたサイバーショップの中でクレジットカードによる決済を行っているサイトは、ほとんどがこの暗号技術を用いてカード情報を保護している。

 また、最近、インターネットを利用してEDI(電子データ交換)を行う「インターネットEDI」に関心が集まってきている。インターネットはEDIサービスを提供するVANに比べて信頼性とセキュリティが低いという弱点があるが、これを運用と暗号技術によってカバーできれば、低コストで柔軟性がありオープンなEDIネットワークを実現できると考えられているからである。

 以上のような背景があって、2年くらい前から暗号技術が注目されているのである。では、現在の暗号標準、連邦政府の政策、民間における暗号技術の現状をみてみよう。

DES

 DES(Data Encryption Standard) については、1年前にレポートにも書いたが、77年に連邦政府によって正式に標準として認められた暗号である。DESのアルゴリズムは最初、IBM社によって開発されたもので、暗号化と復号化に同じ鍵を用いる対称鍵暗号(共有鍵暗号、秘密鍵暗号とも呼ばれる)である。これまで政府機関はもちろん、民間でも広く用いられてきた。たとえば、毎日2兆ドル以上の金融取引をしている米国銀行業界は、取引データの保護のために今でもこのDESを用いている。

 DESで用いられる鍵の長さは64ビットであるが、そのうち8ビットはエラー訂正用のチェックビットなので、実際の長さは56ビットである。暗号化された情報の発信者でもなく、受信者でもない第三者が暗号を解く、つまり解読する方法でもっとも一般的なものは、"brute-force exhaustive search"と呼ばれる方法である。
 これは、片っ端から鍵を試してみるという野蛮な方法であるが、これに優る現実的な方法はない。この方法では最大「2の『鍵の長さ』乗」の試行が必要とされる。つまり、DESの場合、「2の56乗」回以内で解読できることになる。平均(つまり期待値)はおよそ「2の55乗」回(約3.6京回)ということになる。1秒間に1回鍵を試みることができるとして、解読に10億年以上かかる計算になる。1秒間に10万回と仮定しても1万年である。そう考えると一見、安全なように思える。しかし、実際はそうではない。暗号技術の専門家によれば、わずか400ドルで購入できるプログラム可能なゲートアレイを用いれば、1秒間に3000万の鍵をチェックできるというのだ。つまり、400ドルのお金を持ったハッカーなら38年でDESによる暗号を解読できることになる。まさにエレクトロニクス技術の進歩の成果である。もちろんもっとお金をかければ、さらに短時間で解読可能になる。1万ドルを投じれば約555日になるし、1000万ドルかければもっと効率の良い解読装置を作ることができ、6分間で解読できる。3億ドルなら12秒になる。
 暗号の解読のために3億ドルの装置を開発する企業はないかもしれないが、世界中の通信を傍受しているといわれているNSA (National Security Agency) なら可能性はあるだろう。おまけに1年半〜2年で必要なコストは半減する世界なのだ。犯罪者がこうした装置を開発して、DESによる暗号を解読するのは時間の問題だといってよい。

 DESはFIPS 46-1で定義されている。FIPSはFederal Information Processing Standardの略で、NIST (National Institute of Standards and Technology) が発行する情報処理関係の規格をまとめたものである。NISTは5年毎にこれを見直しており、最近時点でDESが認証をうけたのは93年である。暗号技術の専門家の間では、次の98年にはDESは認証されないだろうと言われている。

 そこで銀行がDESの後継用に採用を考えている暗号が「triple-DES」である。triple-DESは、DESの2倍の長さのキーを用いて、DESと同じアルゴリズムによる演算を3回繰り返すことによって解読を困難にした暗号である。しかし、銀行が海外の支店での利用のためにtriple-DESの輸出許可を求めても、連邦政府はあいかわらず、輸出を許可しようとしない。この辺りの事情は1年前とあまり変化していないようだ。

Capstone計画

 Capstone計画は、連邦政府が「1987年コンピュータ・セキュリティ法」に基づいて進めている暗号に関する長期プロジェクトであり、MISSI (Multilevel Information System Security Initiative) の一環でもある。このプロジェクトがスタートした背景には、エレクトロニクスを含む情報技術の進歩によってDESの安全性が疑わしくなってきたことの他に、暗号技術が特殊な世界のものでなくなってきたことがあげられる。つまり、かつて暗号は国防省、国務省、CIAといった連邦政府機関と銀行などの一部の大企業が利用する技術であった。しかし、これもまた情報技術の発達によって、高度な暗号技術も個人が1500ドルのパソコンで利用できるものになってしまった。これは電話や電子メールのプライバシーを守りたいと思っている個人にとっては望ましいことであるが、連邦政府にとっては極めて頭の痛い問題である。

 連邦政府の心配は2つある。一つは、強力な暗号プログラムやそれを組み込んだチップが外国に流れることによって、諜報活動が阻害され、国家の安全保障に影響がでることであり、もう一つは同様の理由で、国内における犯罪捜査に支障がでることである。つまり、暗号技術によって、政府や企業、あるいは個人は秘密にしたい情報を盗聴や盗難から守ることができる。しかし、一方で国家の安全保障に悪影響を与え、犯罪捜査を困難にするものでもある。専門家は10年以内に、ほとんどすべてのデジタル情報の通信(電子メール、FAXはもちろん、電話も含まれる)は、暗号化されるだろうと予測している。
 そこで、連邦政府はこの問題について検討し、次の4つの選択肢を考えた。

A. 政府として認めていない暗号の使用を法律で禁止する
B. 誰も知らないトラップドア付きの暗号を普及させる
C. 鍵を第三者(政府)に預けるという「Key Escrow」型の暗号を利用するように呼びかける
D. 政府が介在することを諦めて、自由にさせる

 この結果選ばれたのはC案であり、Capstone計画はこの方針に基づいて進められている。つまり、連邦政府は、必要なときに(もちろん裁判所の許可を得て)第三者に預けられた鍵を取り出して暗号の復号化ができる仕組みを構築する道を選択したのである。

 Capstone計画は次の4つの要素からできている。

  1. 暗号標準であるEES (Escrowed Encryption Standard)

  2. 電子署名標準であるDSS (Digital Signature Standard)

  3. メッセージのダイジェスト化の標準であるSHS (Secure Hash Standard)

  4. 暗号鍵の配送方式(詳細は未発表)

 Capstone計画でもちいられる暗号の鍵の長さは80ビットになっている。つまり鍵の長さが56ビットであるDESと比較すると、24ビット分だけ強力になっている。一般的に鍵が1ビット長くなれば、解読の難しさは2倍になる。つまりCapstone計画の暗号はDESより1600万倍以上強力であり、DESを12秒で解読できるコンピュータでもCapstone計画の暗号なら6年以上かかるという計算になる。まあ、3億ドルの資金と6年の歳月をかけて暗号を解読しようと考える物好きな人も組織も、極めて希だろうから、そういう意味でCapstone計画の暗号は(アルゴリズムに欠陥さえなければ)まず安全だと言えるだろう。

EES (Escrowed Encryption Standard)

 EES (Escrowed Encryption Standard)は、94年2月4日にNISTから発表された暗号標準で、SKIPJACKと呼ばれるアルゴリズムを採用している。このSKIPJACKは、NISTの協力を得てNSAが開発したものなのだが、詳細は機密扱いになっていて公開されていない。このアルゴリズムを組み込んだチップが有名なクリッパーチップ(Clipper Chip)である(EESの仕組みとクリッパーチップをめぐる議論については1年前のレポートを参照されたい)。

 クリッパーチップは、電話やFAX用に開発されたデバイスで、コンピュータ用にはPCMCIA Tupe II に適合したFortezzaカードが開発されている。なお、Fortezzaカードは暗号化・復号化機能だけではなく、電子署名機能も備えている。
 ここでは、暗号化・復号化機能について、クリッパーチップを例にとって説明しよう。

 クリッパーチップには、SKIPJACKというアルゴリズムとLCM-1 (LEAF Creation Method 1) と呼ばれる仕組みが組み込まれている。LEAFは、通信の際に付加的に送られる情報でLaw Enforcement Access Fieldの略である。

 暗号化及び復号化に用いられる鍵は「セッション・キー」と呼ばれ、前述のとおり80ビットの長さである。このセッション・キーはセッション(1回の通話や通信)毎に新しいものが自動的に生成されるため、これを第三者に寄託することは、技術的に極めて困難である。そこで、このセッション・キーを「デバイス・キー」と呼ばれるチップ毎に異なる鍵で暗号化したものとチップの「シリアル・ナンバー」をクリッパーチップ共通の「ファミリー・キー」でさらに暗号化した情報を付加情報として送信する仕組みを作った。これがLCM-1である。

 具体的に説明した方が分かりやすいかもしれない。FBIが裁判所の許可を得てクリッパーチップを用いた電話による会話を盗聴するケースを考えてみよう。連邦政府の当初計画によれば、デバイス・キーは二つに分割されて、NISTと財務省のAutomated System Divisionに保管されている。(ここから先はフィクションであるが、たぶん手順はそう変わらないだろう)FBIはまず、盗聴している電話線を流れるすべての情報を記録する。この中には暗号化された通話内容の他に、付加的に送られているLEAFが含まれている。FBIはLEAFの情報をクリッパーチップ共通のファミリー・キー(これは秘密でもなんでもない)を使って復号化する。すると盗聴対象のクリッパーチップのシリアル・ナンバーが明らかになる。次に、NISTと財務省に裁判所の許可証とシリアル・ナンバーを提示し、分割されたデバイス・キーを入手する。次のステップでは、合成したデバイス・キーで復号化したLEAFの残りをさらに復号化するとセッション・キーが明らかになる。そして最後に、暗号化された通話内容をセッション・キーで復号化して目的の情報を得るのである(1年前の説明より易しくなったでしょうか?)。

 さらに詳細を知りたい人は、Dorothy E. Denning, "The Clipper Encryption System", American Scientist, Vol.81, No.4, July-August 1993を参照されたい。

電子署名の仕組み

 DSSとSHSの説明をする前に、簡単に電子署名 (Digital Signature) の仕組みを説明しておこう。

 電子署名の目的は、相手が本人であること(Authentication) 及びドキュメントの内容が第三者によって改竄されていないこと (Integrity) を確認することである。暗号の利用者にとって最大の脅威は、暗号を解読されることでなく、暗号文を偽造されて情報が混乱することにある。したがって偽造不可能な電子署名技術は、強力な暗号技術と同等に重要とみなされている。

 一般的に電子署名には公開鍵暗号が用いられる。公開鍵暗号は、本人しか知らない秘密鍵 (Private Key) と誰もが入手可能な公開鍵 (Public Key) の二つの鍵を持ち、どちらの鍵でも暗号化可能であるが、それを復号化するにはもう一方の鍵が必要となるという特徴を持った暗号である。つまり、秘密鍵で暗号化した暗号文は公開鍵で復号化できるのだが、秘密鍵では復号化できない。逆も真で、公開鍵で暗号化した暗号文は秘密鍵で復号化できるのだが、公開鍵では復号化できない。そして(当然のことながら)片方の鍵からもう一方の鍵を知ることはできない。

 この公開鍵暗号を用いれば、簡単に偽造不可能な電子署名が可能になる。つまり、AがBに情報を送るときにAの秘密鍵 (As) で暗号化して送ればよい。BがAの公開鍵 (Ap) で復号化できれば、この情報はA本人が作成したものであることが証明される(もちろん、AsがA本人によってきちんと管理されていることが前提である)。

 実際には、通信文そのものの秘密を守るために、Aは電子署名した通信文をさらに暗号化してBに送る必要がある。情報技術が進歩して、高度な暗号化パソコンでも利用可能になったとはいえ、通信文が長文である場合には、暗号化・復号化にそれなりの時間がかかる。電子署名のためと機密保護のために長い通信文を2度も暗号化するのは賢い方法ではない。そこで電子署名には通信文のダイジェストを利用する方法が一般的である。このために用いられるのがハッシュ関数である。ハッシュ関数を用いれば、どんな長文の通信文でも一定の長さの電子的なダイジェストをつくれる。ハッシュ関数でつくられたダイジェストからは元の通信文をつくることはできないが、2種類の異なる通信文から同じダイジェストがつくられることはない(理論上はあり得ても、現実にはないと考えてよい)。

 非常に複雑になるが、実際の手順は次のようになる(この例は American Bar Association が公認する方法であるが、通信文そのものの暗号化にも公開鍵暗号を用いている)。

  1. AはBの公開鍵 (Bp) で通信文を暗号化する(通信文の機密を守るため)

  2. Aはハッシュ関数を用いて通信文のダイジェストを作成する

  3. AはこのダイジェストをAの秘密鍵 (As) を用いて暗号化する(これが電子署名である)

  4. Aは1.で得られた暗号化された通信文に3.で得られた電子署名を添付してBに送信する

  5. Bは受け取ったメールの本体をBの秘密鍵 (Bs) で復号化する

  6. Bは解読した通信文のダイジェストをハッシュ関数を用いて作成する

  7. Bはメールに添付された電子署名をAの公開鍵 (Ap) で復号化する

  8. Bは6.の結果と7.の結果を比較する

 通信文の機密は1.の手順によって守られる。なぜならBpで暗号化されたメッセージはBが管理するBsでしか復号化できないからだ。また8の手順で二つのダイジェストが同じであれば、メールに添付された電子署名はAが管理するAsによって暗号化されているのだから、メールを送ってきた本人が確かにAであり、メール自身も改竄されていないことが確認できるのである。

DSS (Digital Signature Standard)

 電子署名用の規格案としてDSS (Digital Signature Standard)の詳細がNISTから公表されたのは91年8月である。一般からのコメントを求める期間が設けられた後、一部修正され、94年5月に正式にFIPS-186として登録された。DSSは離散対数問題(discrete log problem)に基づく電子署名用の暗号方式であり、C. P. Schnorrと T. ElGamalによって提案されたアルゴリズムを用いている。

 このDSSの評判はあまりよくない。一言で言えば、事実上の標準になっている公開鍵暗号の一つであるRSA暗号システムを採用しなかったからである。DSSはいくつかの点でRSAより劣っていると言われている。まず、第一は信頼性である。離散対数問題そのものは古くから知られているが、DSSで採用されているアルゴリズムは比較的新しいもの(89年にSchnorrによって提案されたもの)であり、研究者によって十分吟味されたものではない。一般的に暗号の安全性は、十分な期間、多くの暗号研究者によって調査研究されることによって保証されるものだと考えられている。実際に、発表されて数年は十分に強力だと思われていた暗号に欠陥が発見されたこともある。DSSのアルゴリズムは十分なテストを受けているとはいえないし、数学的にも安全性は証明されていないと考えられている。一方、RSA暗号システムは、アルゴリズムが発表されてからすでに15年以上経っており、世界中の暗号研究者から安全性を認められている。

 第二に、DSSは電子署名の検証に時間がかかるという点である。たしかに、RSAを用いた電子署名に比べると、検証に要する時間が長い。これについては、NISTは電子署名に要する時間は、RSAの方がDSSより長いと反論している。電子署名に要する時間が短い方がよいか、署名の検証に要する時間が短い方がよいかは、議論のあるところかもしれないが、実際の利用を考えると署名を検証をする頻度の方が多く、一般的には検証時間が短い方がよいと言われている。

 Capstone計画を進めているNISTとNSAが、なぜRSAを採用しなかったかは明らかにされていない。時間が経てば、多くの暗号研究者によってDSSは十分安全な電子署名規格であると認められるかもしれないが、現時点では、DSSには重大な欠陥がある可能性があると警告する研究者もいる。

SHS (Secure Hash Standard)

 SHS (Secure Hash Standard) は、DSSを用いた電子署名のためのハッシュ関数である。DSSと同様にNISTによって提案され、93年5月にFIPS-180として正式に規格として登録されている。SHSは与えられたメッセージの長さに関わらず、160ビット長の電子的なメッセージのダイジェストを作成する。当然のことながら、元のメッセージを1文字変更しただけでも、SHSによって生成されるダイジェストは異なるものになる。電子署名用のハッシュ関数としてもっとも一般的なMD-5 (Message Digest-5) のダイジェストの長さは128ビットであるので、SHSの方がより確実だと言える。しかし、同時にダイジェストを生成する時間もMD-5に比べて約25%長く必要とする。
 ともあれ、SHSはCapstone計画の中で唯一、民間から批判をされていない規格である。

Fortezza

 95年1月、国防総省は、今後国防総省が調達するパソコン及びワークステーションには、少なくとも2つのPCMCIA Type IIのスロットが必要となることを明らかにした。これはNSAがデザインしたFortezzaカードが利用できるようにするためである。このFortezzaカードには、暗号標準であるEES、電子署名標準であるDSS、メッセージのダイジェスト化の標準であるSHSのすべてを満たすソフトウェアがチップ化されて収納されている。つまり、このFortezzaカードこそが、Capstone計画において、これまでに得られた成果を集大成したものだと考えることができる。

 カードに鍵を持たせることによって、鍵の管理は容易になり、鍵を盗まれる危険性も少なくなる。もちろん、この利点に目を付けたのはNSAだけではない。暗号機能を持ったPCMCIAカードは、既に商用のものが存在している。Fortezzaカードが他の商用暗号カードと異なる点は、暗号機能と電子署名機能の両方を持っていることである。このカードにはモデム機能の付いているものと付いていないものがあるが、モデム機能付きのカードの場合、普通に電子メールの受発信を行うように、メールを暗号化して電子署名を添付して送信し、受け取った暗号化されたメールを復号化して電子署名を確認することができる。

 言うまでもなく、Fortezzaカードの暗号アルゴリズムはSKIPJACKであり、復号化するための鍵を政府が入手できるようにデバイス・キーが分割されてNISTと財務省に寄託される仕組みになっている。これはクリッパー・チップと同じである。Fortezzaカードにはこの他に電子署名用の秘密鍵も格納されているのだが、この鍵も同じように寄託される仕組みになっている。

 NSAはこのカードをすべての連邦政府機関のセキュリティ確保のために開発したのであるが、できれば民間企業にこの商用バージョンを開発させて、世界中に普及させたいと(強く)願っているらしい。この願いが神様に通じたのかどうかはわからないが、95年10月、ネットスケープ・コミュニケーションズ社が驚くべき発表を行った。Fortezzaカードをサポートするというのだ。つまり、ネットスケープ・ナビゲータやWebサーバー用のソフトウェアに手を加えて、Fortezzaカードをセキュリティ用のトークンとして利用できるようにするという計画を発表したのである。

 国防総省を始めとする連邦政府機関は、これまでの独自の技術や規格を用いたクローズドなシステムを改めて、できる限り民生用の技術や規格を取り入れたシステムを作ろうとしている。PCMCIAカードの採用やWWWを用いた情報システム開発もその一環である。たとえば、Fortezzaカードは国防総省のDMS (Defence Message Sytem) やWWWをベースにした諜報機関の情報システムであるIntelinkに利用されることになっている。

 したがってネットスケープ社のねらいは、連邦政府市場である。しかし、同社が連邦政府の暗号技術の輸出規制に強く反対している企業の一つであったことから、(根も葉もない噂ではあるが)同社は連邦政府のある機関に脅されて計画に協力しているのではないかとか、裏でなんらかの取引があったのではないかと勘ぐる声もある。

 もう一つ見逃せない動きは、ANSI (American National Standards Institute) が金融機関のための次世代セキュリティ規格を開発しようとしているのだが、これにFortezzaカードが採用される可能性があるということである。
 連邦政府の暗号政策については、その輸出規制問題と併せて後述することにして、次に民間の暗号技術をみてみよう。

RSA暗号システム

 公開鍵暗号方式として有名なRSA暗号システムは、77年にMIT(マサチューセッツ工科大学)のRon Rivest, Adi Shamir, Leonard Adlemanによって発表された(RSAは3人の頭文字である)。それ以来、多くの暗号の専門家がこのアルゴリズムを研究し、ハッカーがRSA暗号を解読しようと努力しているのだが、未だに欠陥は発見されず、解読に成功した事例もない。この3人の研究者が82年に設立したRSAデータ・セキュリティ社自身も、暗号解読コンテストを何度も開催しているが、解読に成功して賞金を得たハッカーはいない。こうしたことから、現在では秘密鍵の管理さえきちんと行えば、現存する暗号技術の中でもっとも安全な暗号だとの評価を得ている(RSA暗号システムの原理については1年前のレポートを参照されたい)。

 このRSA暗号システムのアルゴリズムは特許として登録されており、RSA社から100社を超える企業にライセンスされている。今ではRSA社は商業的に成功を収めた企業であると思われているが、数年前まではそうではなかった。RSA暗号体系は確かに解読が困難な暗号ではあるのだが、会社が設立された当時のコンピュータの能力では、暗号化と復号化に相当の時間を要した。このために、なかなか利用者が現れなかったのである。ちなみにDESと比較すると、ソフトウェアで処理した場合、少なくともDESの100倍以上、チップ化されたDESと比較すると1000倍から1万倍も時間を必要とする。

 現在ではパソコンでも利用できるようになったが、その処理時間を考えて、一般にはDESやIDEA (International Data Encryption Algorithm) などの対称鍵暗号と組み合わせて利用されている。長いメッセージを直接RSAで暗号化するより、メッセージはDESやIDEAを用いて暗号化し、その暗号化に用いた鍵をRSAで暗号化した方が、暗号化・復号化に必要な時間を短くできるからである。この方式は「RSA電子封筒方式(RSA Digital Envelope)」と呼ばれ、PEM (Privacy Enhanced Mail) やPGP (Pretty Good Privacy) でも採用されている。

 すでに述べたようにRSAはすでに多くの企業によって利用されている。身近な例で言えば、アップル社のSystem7 Pro、ノベル社のNetware、ロータス社のNotes、マイクロソフト社のWindows for Workgroupsなどである。また、インターネット上で利用されている暗号システムや電子署名システムのほとんどはRSAを利用している。RSAはもっとも広く利用されている公開鍵暗号方式であり、この世界の事実上の標準となっている。

(次号に続く)

この記事が気に入ったらサポートをしてみませんか?