キーリカバリとは
インフォメーションテクノロジの分野において、暗号は非常に重要な基本技術となっています。データベースに保存される情報やネットワークを行き来する情報のうち、重要なものは暗号化されています。暗号が多用されるにつれ、暗号用の鍵を紛失してしまったために大切なデータにアクセスできなくなってしまうというような問題が発生してきます。キーリカバリは、鍵を失ってしまったような場合でも暗号化されたデータを復元できるようにする技術です。
あるデータを暗号化する際に、そのデータを復元するための鍵をカプセル化し元のデータと一緒に保管しておきます。暗号用の鍵を喪失してしまった場合は、キーリカバリエージェントと呼ばれるサーバを使ってカプセル化された鍵を取り出し、取り出した鍵を使ってデータを復元します。
キーリカバリのしくみ
キーリカバリには種々の方式があります。ここではそのうちの一つを、処理の手順にそって説明します。
- キーリカバリエージェントの選択
キーリカバリエージェントとはキーリカバリサービスを行うサーバで、信頼できる第三者機関によって運営されます。エージェントは自分の公開鍵を公開しておきユーザが使用できるようにしておきます。
データを暗号化する前に、ユーザはまずどのキーリカバリエージェントを利用するかを決めます。通常は複数のエージェントを選択します。使用するエージェントが決まったら、ユーザはすべてのエージェントの公開鍵を取得しておきます。
- キーリカバリブロックの作成
ユーザが任意のデータを暗号化する際、同時に暗号用の鍵(セッションキー)を回復するための情報も作成します。
具体的には、まず乱数をエージェントの数だけ作成し、次にそれぞれの乱数から一方向関数を用いてカプセル化のための鍵を作成します。このカプセル化鍵でセッションキーを多重にカプセル化(暗号化)します。また、これとは別に乱数をそれぞれのエージェントの公開鍵で暗号化します。
カプセル化されたセッションキー、暗号化された乱数および鍵の回復に必要なその他のデータをあわせてキーリカバリブロックと呼びます。キーリカバリブロックは暗号化されたデータと一緒にして保存されます。
- キーリカバリプロセス
通常、暗号化されたデータは別個に保管してあるセッションキーを使って復号化されます。しかし、何らかの理由でのこのセッションキーを喪失してしまったときには、ユーザはキーリカバリブロックを使ってセッションキーの回復を行います。
まず、ユーザはキーリカバリブロックの中から暗号化された乱数を取り出し、これを関係するすべてのキーリカバリエージェントに送ります。キーリカバリエージェントでは自分の秘密鍵を使って乱数を復号化し、そこからカプセル化鍵を作成してユーザに送り返します。ユーザは、エージェントから返されたカプセル化鍵を使って、カプセル化されていたセッションキーを回復する事ができます。
鍵認証サービスへの応用
私たちのグループでは、キーリカバリも鍵認証サービスのうちの一つととらえ、時間鍵などと同一の枠組みを使って提供できるシステムを提案しています。
一般的に、キーリカバリサービスで鍵を回復するためには、何らかの形でサービスの要求者の認証を行う必要があります。ふつう、この認証に必要な情報はキーリカバリーブロックに保存されます。
私たちのシステムでは、キーリカバリエージェントがキーリカバリに必要な鍵証明書を発行し、この中に認証のための情報を記述しておきます。この鍵証明書を使ってキーリカバリブロックを作成しておけば、証明書に記述された条件がととのったときにキーリカバリが行われます。
学会での発表・論文・著作物
- 沼尾,中山,"復元機能をもつインタネット上のアーカイブサーバ",The 1998 Symposium on Cryptography and Information Security, SCIS'98-5.2.A, Hamanako, Japan, 1998
|