(57)【特許請求の範囲】
【請求項１】
データ鍵を用いてメッセージを暗号化し、公開鍵を用いて前記データ鍵を暗号化し、公開鍵と対になる秘密鍵を用いてデータ鍵を復号し、該復号したデータ鍵を用いて前記メッセージを復号する暗号システムにおけるデータ回復方法であって、
前記暗号システムは、互いにネットワークを介して接続される、利用者装置、鍵登録装置、鍵保管装置及びデータ回復装置を備え、
前記利用者装置は、前記暗号化したメッセージ及び上記暗号化したデータ鍵を結合したエンベロープデータと、前記秘密鍵を分割した分割秘密鍵とを生成する装置であり、
前記鍵保管装置は、分割秘密鍵を保管するための装置であり、
前記鍵登録装置は、前記鍵保管装置に関する情報及び鍵保管装置証明書を管理する装置であり、
前記データ回復装置は、前記分割秘密鍵及び前記エンベロープデータを用いて前記データ鍵を復号する装置であり、
前記データ回復方法は、
前記鍵保管装置の前記公開鍵を用いて暗号化した前記分割秘密鍵の登録を要求する鍵登録要求ステップと、
前記要求された分割秘密鍵を登録する鍵登録応答ステップと、
前記登録された分割秘密鍵を鍵保管装置に保管する鍵保管応答ステップと、
各前記鍵保管装置において部分的に回復したデータ鍵を合成し、データ鍵を復号するデータ鍵回復要求ステップと、
前記鍵保管装置の分割秘密鍵を用いて暗号化したデータ鍵を部分回復するデータ鍵回復応答ステップとを含み、
前記鍵登録応答ステップは、
第１の識別子を前記利用者装置に送信する第１のステップと、
前記第１の識別子と前記鍵保管装置の識別子とを用いて第２の識別子を生成する第２のステップとを含み、
前記鍵保管応答ステップは、
前記登録された分割鍵の各々を前記第２の識別子と関連付けて各前記鍵保管装置に保管するステップであり、
前記データ鍵回復要求ステップは、
第１の識別子と前記鍵保管装置の識別子とを用いて第２の識別子を算出するステップを含み、
前記データ鍵回復応答ステップは、
前記算出された第２の識別子を用いて、前記鍵保管装置に保管された分割秘密鍵を検索するステップを含む暗号データ回復方法。
【請求項２】
前記鍵登録応答ステップの前記第１のステップは、回復権限をもつ利用者の鍵を用いて前記第１の識別子を暗号化するステップを含む、請求項１記載の暗号データ回復方法。
【請求項３】
前記鍵登録応答ステップの前記第１のステップは、前記第１の識別子を、前記第１の識別子の出力時刻又は前記秘密鍵の分割に関する情報に関連付けて、可搬型媒体に格納するステップを含む、請求項１記載の暗号データ回復方法。
【請求項４】
前記鍵応答ステップの前記第２のステップは、前記鍵保管装置の識別子の値が異なる場合は、異なる値の前記第２の識別子を生成する、請求項１記載の暗号データ回復装置。
【請求項５】
前記鍵応答ステップの前記第２のステップは、前記第１の識別子の値が異なる場合は、異なる値の前記第２の識別子を生成する、請求項１記載の暗号データ回復装置。
【請求項６】
ネットワークを介して接続される、利用者装置、複数の鍵保管装置、鍵登録装置及び鍵回復装置を備える鍵登録システムにおいて、
前記利用者装置は、秘密鍵を分割した分割秘密鍵のそれぞれを鍵保管装置に供託し、その引換えとなる秘密鍵の識別子を記憶する装置であり、
前記鍵保管装置は、保管用の識別子と関連付けて、該鍵保管装置の公開鍵で暗号化された分割秘密鍵を記憶する装置であり、
前記鍵登録装置は、暗号化された前記分割秘密鍵を、識別子を用いて識別された鍵保管装置に送付する装置であり、
前記データ回復装置は、暗号化されたデータ鍵を、識別子を用いて識別された鍵保管装置に送付する装置であり、
前記鍵登録装置は、前記秘密鍵の識別子と前記鍵保管装置の識別子とを用いて、第１の保管用識別子を算出する第１の手段を備え、
前記データ回復装置は、前記秘密鍵の識別子と前記鍵保管装置の識別子とを用いて第２の保管用識別子を算出する第２の手段を備え、
前記第１の手段と、前記第２の手段とが、前記算出に同一の演算方法を用いることを特徴とする鍵登録システム。
【請求項７】
秘密鍵を分割した分割秘密鍵を、複数の鍵保管装置で分散保管する秘密鍵の登録システムにおいて、
前記分割秘密鍵の保管場所を特定するための識別子を保持する可搬型記憶媒体を備えることを特徴とする秘密鍵の鍵登録システム。
【請求項８】
秘密鍵を分割した分割秘密鍵を、複数の鍵保管装置で分散保管する秘密鍵の登録システムにおいて、
前記分割秘密鍵の保管場所を特定するための識別子を暗号化した状態で保管する利用者装置を備えることを特徴とする秘密鍵の鍵登録システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、機密データを暗号化し、保管するデータベースシステムあるいはファイルサーバシステムにおいて、暗号鍵を紛失した利用者が、予め預けていた暗号鍵を用いて、機密データを回復するデータ回復システムに関する。また、本発明は、利用者が自らの秘密鍵を紛失した場合に、或いは、機密管理を引き継いだ第三者が鍵保管装置に供託した暗号鍵を基づき、機密データを復元する鍵供託装置に関する。
【０００２】
【従来の技術】
一般に暗号技術とは、セキュアなサービスを保障する技術である。現在までに実用化されたサービスおよびその保証内容を示す。
【０００３】
(1)機密データベース
機密情報を暗号化した状態で長期的保存。
【０００４】
(2)暗号電子メール、SSL
インタネット／イントラネット上の通信内容の盗聴行為を無効化。
【０００５】
(3)通信データの電子署名
暗号アルゴリズムの性質を利用し、送信者の身元証明やデータの正当性を保証。
【０００６】
(2)のサービスと関連し、米国や欧州では、犯罪捜査について、"通信内容の傍受（すなわち、合法的盗聴）"は、重要な役割を果たすといわれている。凶悪犯罪において、通信に強い暗号（すなわち、暗号鍵のビット長が長い暗号）が使用された場合に、傍受による情報入手は困難となり、捜査に大きな障害となることが予想される。
【０００７】
このため、合法的盗聴用のシステムが米国政府により提案されている。たとえば、'70年代のCapstone計画、'94年のEES(Escrowed Encryption Standard)である。これらのシステムは、key escrow（鍵供託）システムと呼ばれる。key escrowとは、「暗号通信の利用者は、自分の暗号鍵を政府が認める第三者機関に預ける。その後、預けた鍵を用いて暗号通信を行う。法の執行機関（裁判所）が必要性を認めた場合に、捜査機関（警察）が暗号通信を盗聴する。捜査機関は、第三者機関から入手した暗号鍵を用いて、通信内容を解読する」という意味である。
【０００８】
鍵供託システムでは、とくに供託する秘密鍵を複数の鍵保管装置に分割して保管する場合がある。鍵供託システムの公知な例として、Silvio Micaliによる「Fair Cryptosystems(MIT/LCSlTR-579. c, Laboratory for Computer Science, Massachusetts Institute of Technology, 1994年８月)」があり、その内容は、たとえば、米国特許第5,276,737号および第5,315,658号、或いは、特表平８-506217号公報に開示されている。
【０００９】
鍵供託方式は、捜査機関にとって有益な暗号方式であり、以下の特長を備えている。
【００１０】
(a) 鍵を分割することで、鍵保管装置の管理者が特定の利用者の秘密鍵を推測したり、改ざんできる可能性を少なくする（Secret Sharing）。
【００１１】
(b) 分割した秘密鍵を集めることで、もとの秘密鍵を再構成ができることを事前に検証できる（Verifiable Secret Sharing）。
【００１２】
(c) 総数n個の鍵保管装置のうちの一部が利用できない場合にも、残りの分割鍵k個を合成し、もとの秘密鍵を復元できる（k out of nしきい値法）。
【００１３】
なお、鍵供託方式には、ブラインド復号と呼ばれる技術を用いることがある。一般に、ブラインド復号とは、暗号文の所有者は、鍵の所有者に暗号文を明かさずに、鍵の所有者は暗号文の所有者に暗号文を明かさずに復号する暗号技術である。
【００１４】
ブラインド復号を用いることで、たとえば利用者の識別子や名前を、鍵保管機関に明かさずに、分割した秘密鍵を再構成できる。（なお、後述のように、本発明では、ブラインド復号の適用として、従来のように秘密鍵を再構成せずに、データ鍵を再構成するところに特長がある。）
犯罪捜査を目的とし、政府主導で計画を進めた鍵供託システムに対し、民間企業主導で構築する鍵供託システムが存在する。後者は、「個人や企業の機密情報をバックアップするシステムで、故意あるいは事故により暗号鍵を紛失した場合にも、暗号化した情報を正しく復号できることを保証する」システムである。鍵回復システムの公知な例として、Balensonなどによる「Software Clipper」や「Commercial Key Escrow」があり、これらの内容は、たとえば、米国特許第 5,557,346号および第5,557,765号に開示されている。
【００１５】
目下のところ、民間主導の鍵供託システムを鍵回復(key recovery)システムと称し、政府主導の鍵供託システムを区別する場合が多い。以下に、鍵供託システム（以下「KES」と称する）と鍵回復システム(以下、「KRS」と称する。)との相違をまとめる。
【００１６】
両者は、運用面では異なる。KESは合法的盗聴を前提とし、捜査機関が、盗聴データの強制回復（解読）を行う。これに対し、KRSは、利用者自らが鍵回復や情報の復元等サービスを、システムに依頼する。
【００１７】
その一方、両者が用いる暗号技術は、基本的には同じである。既存のKESやKRSの仕様には、適用対象(インタネット(Internet)、電話、ファイル( File system)、データベース( Database)など)、実現手段(ソフトウエア／ハードウエア)、使用する暗号アルゴリズム（RSA、DES、SKIPJACK）などに細かい違いがある。適用対象の目的や構成に応じ、それぞれ工夫されたKES(或いはKRS)が存在する。その一方で、多くのシステムでは、鍵の所有者や鍵の保管場所を間接的に特定できる情報を、暗号化データを添付する暗号技術を採用している。KESではLEAF(Law Enforcement Access Field)、KRSではDRF(Data Recovery Field)と、この添付情報の名称を変えるが、その内容は大同小異である。つまり、KESとKRSの仕組み自体はほぼ等しいといえよう。
【００１８】
【発明が解決しようとする課題】
上述した従来の暗号データ回復方法および鍵供託装置には以下の問題点がある。
【００１９】
(1)登録後は参照はほとんどしない長期保存という形態の機密データベースに適用する場合に、暗号データ回復方法や装置として以下の問題点がある。
【００２０】
たとえば、Commercial Key Escrow(以下、場合により「CKE」と称する。)では、システム管理者用のマスタ鍵を設け、そのマスタ鍵を使って、DRFを強制回復することで、あらかじめ復元可能なデータ鍵を参照できる。システム管理者の権限で、登録者以外の第三者を、暗号データの復号が可能な者にすることが可能となる。このことは、逆にいえば、システム管理者のパスワードが盗まれた場合に、機密データベース内の全データが危険にさらされる可能性があることを意味している。
【００２１】
また、CKEで想定しているような、後任者が決まらないうちに前任者が退出した場合の鍵の緊急回復というのは、実際には少ない。会社での機密書類管理は、部署内で前任者から後任者へ機密書類が入った箱(倉庫、たとえば、ファイルサーバ)と鍵とを渡され、引継ぐ運用がより多い。このような場合、機密業務引継ぎにおいて、計算機システムの管理者が介在する方法ではなく、たとえば、いったん前任者の暗号化したファイルを復号し、後任者の鍵で再暗号化するために、前任者から後任者へ鍵あるいは鍵相当のものを直接ひきつぐ運用ができることが望ましい。
【００２２】
(2)預けた秘密鍵を再構成することなしに、データ回復装置によって、暗号化されたデータを無制限に回復できる可能性がある。
【００２３】
(3)暗号データにDRFを添付するKRSに基づき、第三者により強制回復がなされる可能性がある。
【００２４】
データ回復情報DRFとは、捜査機関が暗号文を強制回復する際に利用する情報である。捜査機関は、DRFが暗号文に結合され、削除したり破壊されない場合に限り、強制回復が可能である。対象システムの目的ごとに、全てあるいはこのうち一部分を利用する。1996年以後、米国暗号製品は、DRFを採用している場合が多い。
【００２５】
DRFの構成要素として現在検討されている主な項目を以下に示す 。
【００２６】
・通信者に暗号鍵の供託を命じた国の名前
・暗号鍵の供託する第３者機関(あるいはデータ回復装置)の名前
・正当な供託がどうかを判定するチェックサム
・データの暗号化あるいは復号方法
・暗号鍵を強制回復する鍵そのもの(あるいは強制回復する鍵の取り寄せ方法)
ある特定の暗号データがDRFを用いて強制回復されることで、そのDRFが添付したデータだけでなく、その暗号データの鍵の所有者に関し、他の暗号データすべてが暴露される可能性が高い。
【００２７】
(4)利用者と各鍵保管装置の間、各鍵保管装置とデータ回復装置の間で、利用者を特定できる情報が共有される可能性がある。
【００２８】
本発明の目的は、各装置の間で、利用者が特定されず、かつ、利用者の秘密鍵を再構成することなく、信頼性をもって、利用者が作成したデータを回復できるデータ回復システムを提供することにある。
【００２９】
【課題を解決するための手段】
本発明の目的は、機密データを生成するとともに、暗号化された機密データを復号するための秘密鍵を分割して、分割秘密鍵を生成する利用者計算機と、分割秘密鍵をそれぞれ保管する複数の鍵保管装置と、機密データを回復する処理を実行するデータ回復装置とを備え、前記利用者計算機、前記複数の鍵保管装置およびデータ回復装置との間が、ネットワークを介して接続されたシステムにおいて、
利用者計算機において、機密データをデータ鍵にて暗号化したデータ、および、前記秘密鍵を用いて当該データ鍵を暗号化したデータからなるエンベロープデータを生成し、これを保存するステップと、前記秘密鍵を分割して、複数の分割秘密鍵を生成するステップと、前記分割秘密鍵を、前記複数の鍵保管装置にそれぞれ保管するステップと、前記分割秘密鍵の鍵保管装置への保管の引き換えとして、供託鍵識別子を、利用者に通知するステップと、前記供託鍵識別子および前記エンベロープデータを、前記データ回復装置に与えるステップと、前記分割秘密鍵を参照して、暗号化されたデータ鍵を部分的に復号するステップと、前記部分的に復号されたデータ鍵に基づき、データ鍵を再構成し、再構成されたデータ鍵を用いて、前記エンベロープデータ中のデータ鍵にて暗号化された機密データを復号して、機密データを得るステップとを備えたことを特徴とするデータ回復方法により達成される。
【００３０】
本発明においては、まず、機密データベースなどを利用する利用者の秘密鍵を、鍵保管装置に保管、すなわち、供託する。たとえば、データベースの登録者として利用者が使用する公開鍵アルゴリズムの秘密鍵を、鍵保管装置に保管させ、所定のデータ鍵にて暗号化したデータと、暗号化に用いたデータ鍵とを結合してエンベロープデータを生成し、これを、上記機密データベースに保存する。
【００３１】
利用者が秘密鍵を紛失した場合など、データ鍵を用いて機密データを復号できなくなったときに、鍵保管装置に保管された分割秘密鍵を用いて、データ鍵を部分的に復号する。部分的に復号されたデータ鍵により、データ鍵が再構成され、これにより、機密データを回復することができる。
【００３２】
或いは、本発明において、エンベロープデータは、機密データをデータ鍵にて暗号化したデータ、および、公開鍵暗号系を用いて前記秘密鍵に対応する公開鍵にて前記データ鍵を暗号化したデータから構成されていても良い。
【００３３】
本発明の好ましい実施態様においては、ブラインド復号を用いてデータ鍵を部分的に復号している。すなわち、データ鍵の保有者（データ回復装置）は、秘密鍵の保有者（鍵保管装置）にデータ鍵を明かすことなく、かつ、秘密鍵の保有者は、データ鍵の保有者に秘密鍵を明かすことなく、データ鍵を復号することができる。これにより、利用者の秘密であるデータ鍵と秘密鍵とを結び付けて、利用者の暗号化した全てのデータが暴露されることを防ぐ。
【００３４】
したがって、この実施態様によれば、以下の特徴を備えたデータ回復方法を提供することが可能となる。
【００３５】
・データ回復装置が回復するのはデータ鍵であり、データではない。
【００３６】
・利用者の秘密鍵は、分割された状態にあり、再構成されない。
【００３７】
・各鍵保管装置内で、分割された状態の秘密鍵（分割秘密鍵）にデータ鍵を作用させデータ鍵を部分復号する。
【００３８】
・部分復号したデータ鍵をデータ回復装置で再構成する。
【００３９】
本発明のさらに好ましい実施態様においては、前記分割秘密鍵を生成するステップが、鍵保管装置の数、並びに、該鍵保管装置のそれぞれの公開鍵暗号方式の公開鍵および前記公開鍵の証明書を入力するステップと、前記秘密鍵を、上記鍵保管装置の数に基づき分割するステップと、前記分割された秘密鍵の各々を、上記鍵保管装置の公開鍵をそれぞれ用いて暗号化するステップとを含んでいる。
【００４０】
本発明のさらに好ましい実施態様においては、分割秘密鍵を保管するステップが、前記供託鍵識別子および分割秘密鍵の数に基づき、前記分割秘密鍵の数だけの保管鍵識別子を算出するステップと、前記保管鍵識別子と分割秘密鍵とを組み合わせて、これを、対応する鍵保管装置に保管するステップとを含んでいる。
【００４１】
本発明のさらに好ましい実施態様においては、前記供託鍵識別子を利用者に通知するステップが、分割秘密鍵の保管が完了した時間を示す供託時間および当該保管に関するコメントの少なくとも一方を、前記供託鍵識別子に対応させて、可搬記憶媒体に格納するステップを含んでいる。
【００４２】
本発明のさらに好ましい実施態様においては、前記供託鍵識別子および前記エンベロープデータを、前記データ回復装置に与えるステップが、前記可搬型媒体から、前記供託鍵識別子と、対応する供託時間およびコメントの少なくとも一方とを対にして読み出すステップを含んでいる。
【００４３】
本発明のさらに好ましい実施態様においては、さらに、利用者計算機により、自己の供託鍵識別子を無効にすべき場合に、その旨を示す指令を、鍵保管装置および鍵登録機関の少なくとも一方に与えるステップを備え、かつ、前記供託鍵識別子および前記エンベロープデータを、前記データ回復装置に与えるステップが、前記鍵保管装置および鍵登録機関に、供託鍵識別子が無効であるか否かを問い合わせるステップを含んでいる。
【００４４】
また、本発明の実施態様においては、前記エンベロープデータに、前記鍵供託識別子が添付されていないのが好ましい。
【００４５】
また、本発明の目的は、利用者の秘密鍵を分割して、分割秘密鍵を生成する利用者計算機と、分割秘密鍵をそれぞれ保管する複数の鍵保管装置とを備え、前記利用者計算機と前記複数の鍵保管装置との間が、それぞれネットワークを介して接続された鍵登録システムであって、前記利用者計算機が、前記複数の鍵保管装置の数だけ、秘密鍵を分割して分割秘密鍵を生成するように構成され、前記鍵保管装置が、前記利用者装置から与えられた分割秘密鍵を、装置固有の公開鍵にてそれぞれ暗号化して保管するために、前記利用者装置に、前記固有の公開鍵を送付し、かつ、前記利用者装置にて前記固有の公開鍵にて暗号化された分割秘密鍵を受け入れて保管するように構成されたことを特徴とする鍵登録システム、或いは、
利用者の秘密鍵を分割して、分割秘密鍵を生成する利用者計算機と、分割秘密鍵をそれぞれ保管する複数の鍵保管装置と、暗号化されたデータをデータ鍵を用いて復号するデータ回復装置とを備え、前記利用者計算機、前記複数の鍵保管装置、および、データ回復装置との間が、それぞれネットワークを介して接続されたデータ回復システムであって、前記データ回復装置が、利用者の秘密鍵にて暗号化されたデータ鍵を受け入れ、ブラインド復号を用いて、ブラインド暗号化データ鍵を前記複数の鍵保管装置に与え、かつ、前記複数の鍵保管装置により得られた復号結果に基づき、データ鍵を再構成し、再構成されたデータ鍵を用いて暗号化されたデータを復号するように構成されたことを特徴とするデータ回復システムにより達成される。
【００４６】
この発明の好ましい実施態様においては、さらに、利用者装置と鍵保管装置との間に位置し、双方とネットワークを介して接続可能な鍵登録装置を備え、前記鍵登録装置が、前記利用者装置から、分割秘密鍵を受け入れて、これを鍵保管装置に転送し、かつ、分割秘密鍵の鍵保管装置への保管の引き換えとして、利用者装置に供託鍵識別子を発行するように構成されている。
【００４７】
或いは、本発明の好ましい実施態様においては、前記鍵保管装置が、供託鍵識別子を、可搬記憶媒体に格納するように構成されている。
【００４８】
【発明の実施の形態】
以下、添付図面を参照して、 本発明の実施の形態につき詳細に説明を加える。図１は、本発明の実施の形態にかかる鍵登録／データ回復システムの構成を示すブロックダイヤグラムである。図１に示すように、この鍵登録／データ回復システムは、利用者が暗号を利用して通信を行うための利用者用システム１２、利用者が鍵を供託する場合に、当該鍵を登録する鍵登録装置２０、鍵登録装置２０の制御のもと、利用者の秘密鍵を分割した鍵をそれぞれ保管する複数の鍵保管装置３１、３２、３３、および、暗号化されたデータを復号するデータ回復装置４０を備えている。このシステムには、機密情報を所定の形式にて格納する機密データベース５０が接続されている。なお、図１において、利用者用システムは１つだけ図示し、鍵保管装置は３つだけ図示している。
【００４９】
利用者用システム１２は、ＩＣカードなどの可搬記憶媒体に情報を書込み或いはこれから情報を読み込む可搬記憶媒体書込み／読みだし装置を備えている。また、利用者用システム１２と鍵登録装置２０との間、鍵登録装置２０と鍵保管装置３１、３２、３３との間、利用者用システム１２とデータ回復装置４０との間、および、データ回復装置４０と鍵保管装置３１、３２、３３との間などは、通信回線６０にて結ばれている。
【００５０】
また、利用者用システム１２、鍵登録装置２０、データ回復装置４０は、中央処理装置（ＣＰＵ）、メモリ、キーボード、ディスプレイなどを備え、通信回線を経た他の装置からの指示、或いは、キーボードを介して入力された指示に応答して、所定の処理を実行するようになっている。
【００５１】
鍵保管装置３１、３２、３３は、ＣＰＵ、外部記憶装置などを備え、鍵登録装置２０やデータ回復装置４０から通信装置を経て与えられた指示にしたがって、処理を実行し、処理結果を返送するようになっている。
【００５２】
このような鍵登録／データ回復システムにて利用者による操作或いは各装置にて実行される処理の概要を説明する。図２は、鍵を供託するための処理の概要を示すフローチャートである。
【００５３】
この実施の形態において、鍵登録装置２０は、鍵保管装置の各々を管理している。この管理は、以下のような手法でなされている。まず、鍵登録装置２０は、鍵保管装置３１ないし３３に、鍵保管装置証明書の送付を求め、これに応答して、鍵保管装置３１ないし３３は、鍵保管装置証明書を送付する。次いで、鍵登録装置２０は、鍵保管装置３１ないし３３のそれぞれを審査し、審査の結果、鍵保管装置として適切であると判断すれば、自システム内に、当該鍵保管装置を登録する。
【００５４】
利用者ａが自己が使用する秘密鍵（すなわち、利用者秘密鍵ＳＫa）を、鍵登録装置２０に登録する場合には、利用者用システム１２にて、利用者秘密鍵ＳＫaを分割することにより得た分割秘密鍵を生成して、鍵登録装置２０にその保管鍵を依頼する。鍵登録装置２０は、これに応答して、自己が管理する鍵保管措置３１ないし３３に、分割秘密鍵の保管を依頼し、利用者秘密鍵ＳＫaに対応した供託鍵ＩＤを割り当てて、これを利用者用システム１２に通知する（図２のス１００）。
【００５５】
利用者ａは、利用者用システム１２にて作成した機密情報ｍを、共通鍵暗号方式の暗号鍵ＤＫにて暗号化し、暗号化した機密情報Ｅ(ＤＫ，ｍ)と、暗号鍵ＤＫを公開鍵ＰＫaにて暗号化したものＥ(ＰＫa，ＤＫ)とに基づくエンベロープデータ（たとえば、 Ｅ(ＰＫa，ＤＫ)，Ｅ(ＤＫ，ｍ)）を、機密データベースに転送する。この機密データベースにおいては、各利用者ｉにより作成さえた、このようなエンベロープデータ(Ｅ(ＰＫi，ＤＫ)，Ｅ(ＤＫ，ｍ))が保存される（図２のステップ１５０）。
【００５６】
エンベロープデータ（たとえば、 Ｅ(ＰＫa，ＤＫ)，Ｅ(ＤＫ，ｍ)）を開けるためには、利用者ａの秘密鍵ＳＫaを用いて、暗号鍵ＤＫを取り出した後に、この暗号鍵ＤＫを用いて、暗号化された機密情報を復号する必要がある。このため、秘密鍵ＳＫaを紛失すると、上記エンベロープデータをあけて、機密情報を得ることができなくなる。
【００５７】
なお、従来のＫＲＳと同様に、エンベロープデータに鍵供託ＩＤを付加することも可能であるが、本実施の形態においては、後述するように、ＩＣカードなどの可搬記憶媒体に供託鍵ＩＤを格納する手法を採用している。
【００５８】
利用者ａが秘密鍵ＳＫaを紛失した場合に、機密情報を得るための処理の概略につき、以下に説明を加える。ここに、図３は、データ回復の処理の概略を示すフローチャートである。
【００５９】
利用者ａは自己のシステム１２を操作して、エンベロープデータおよび自己の供託鍵ＩＤを、データ回復装置４０に送信して、データの復号を要求する（ステップ１６０）。
【００６０】
データ回復装置４０は、これに応答して、供託鍵ＩＤに基づき、分割秘密鍵を保持する全ての鍵保管装置３１ないし３３に、所定の情報を与える。鍵保管装置３１は与えられた情報に基づき、必要な処理を実行して、処理結果をデータ回復装置４０に返信する。さらに、データ回復装置４０は、返信された処理結果に基づき、暗号化された機密情報を復号して、機密情報ｍを得て、これを利用者ａのシステム１２に通知する（ステップ１９０）。このようにして、利用者ａは、秘密鍵ＳＫaを紛失した場合でも、自己の作成した機密情報ｍを回復することが可能となる。
【００６１】
以下、図２のステップ１００および図３のステップ１５５につき、より詳細に説明を加える。
【００６２】
ここに、図４は、分割秘密鍵の供託の際の処理の概要を説明するための図、図５は、データ回復の際の処理の概要を説明するための図である。まず、図２および図４を参照して、ステップ１００をより詳細に説明する。
【００６３】
この処理においては、利用者が自己のプライバシーに関するものと考えられる利用者秘密鍵ＳＫaを、第三者（或いは第三者機関）に供託するため、利用者の不安を軽減して、安心して利用者秘密鍵ＳＫaを供託できる処理にする必要がある。そこで、まず第一に、利用者秘密鍵を利用者以外の者に知られないように供託するため、利用者秘密鍵を、利用者用システム１２にて分割して、分割された秘密鍵（分割秘密鍵）を、複数の鍵保管装置に保管させるのが好ましい。また、分割秘密鍵を保管する鍵保管装置の内部から、鍵の所有者が特定されないのが好ましい。このため、鍵保管装置には所有者が推測できないような識別子を用いて、鍵登録装置が、鍵保管装置および鍵を管理するのが好ましい。
【００６４】
さらに、供託された利用者の秘密鍵は、データ回復のために使用されるが、これは、利用者の側に何らかの障害が発生して暗号文の復号が不可能になったときに利用すべきものであるため、秘密鍵が正しく供託されていることを保証する手段が必要である。鍵供託の処理は鍵登録装置および鍵保管装置による複雑な手順により構成されている。さらに、利用者によっては、鍵供託が完了する以前には暗号を利用したくない場合もある。そこで、利用者が、秘密鍵の登録状況を追跡できることが好ましい。
【００６５】
以上のことから、鍵供託の処理（ステップ１００）は、大きく分けて、以下のステップにより構成されている。
【００６６】
秘密鍵を分割する秘密鍵分割処理（ステップ１１０）
分割秘密鍵の供託を利用者が依頼する鍵登録処理（ステップ１２０）
分割秘密鍵を鍵保管装置に保管させる鍵配送処理（ステップ１３０）
分割秘密鍵が正しいことを確認する鍵検証処理（これは、本実施の形態においては実行されていない）、および、
鍵供託の状況を利用者に通知する鍵登録確認処理（ステップ１４０）
秘密鍵分割処理（ステップ１１０）は、利用者用システム１２において、利用者秘密鍵を分割するものである。この処理において、利用者はシステム１２を操作して、供託すべき秘密鍵ＳＰＫaを指定する（ステップ１１１）。次いで、利用者用システム１２は、生成すべき分割秘密鍵の数だけ、鍵保管装置証明書を、鍵登録装置２０から入手する（ステップ１１２）。次いで、分割秘密鍵の各々に対応する、保管先である鍵保管装置３１、３２、３３を決定する（ステップ１１３）。
【００６７】
その後に、利用者秘密鍵、秘密鍵を分割すべき数および分割アルゴリズムを入力パラメータとして、利用者秘密鍵ＳＰＫaを当該分割アルゴリズムを用いて分割し、必要な数の分割秘密鍵ＳＰＫa1、 ＳＰＫa2、 ＳＰＫa3を生成する。次いで、分割秘密鍵を、各鍵保管装置の公開鍵ＰＫKS1、ＰＫKS2、ＰＫKS3にてそれぞれ暗号化して、保管鍵Ｅ(ＰＫKSi，ＳＰＫai)（図４の符号６４１、６４２、６４３参照）を得る（ステップ１１４）。これら保管鍵は、鍵登録装置２０に転送される。なお、後述するデータ回復処理との関係を考慮して、無秩序に秘密鍵を分割することはできず、利用者秘密鍵に適用される公開鍵暗号方式に依存する。このため、分割アルゴリズムは、予め用意されたものから、利用者が選択することになる。複数の分割アルゴリズムから利用者が選択してもよいし、単一の分割アルゴリズムのみを設け、このアルゴリズムにしたがって、利用者秘密鍵を分割するようにしてもよい。
【００６８】
以下に、ステップ１１２に示す処理をすべき背景、および、処理の内容につきより詳細に説明する。本実施の形態においては、鍵登録／データ回復システムを構成する全ての装置が信頼に足りることにより、はじめてシステムは、信頼できるものとして機能できる。本実施の形態においては、複数の鍵保管装置が存在することを前提としているが、その一方、全ての鍵保管装置が、鍵登録／データ回復システムに受け入れられるわけではない。すなわち、数多く存在する鍵保管装置の中で、信頼に足る鍵保管装置のみを鍵登録／データ回復システムの構成要素とすることにより、システム全体のセキュリティを維持している。このため、鍵登録装置などにおいて、鍵保管装置の登録の受付、審査、管理および更新ができるようになっている。これら受付、審査、管理および更新の手順は、制度として確立しておけばよい。
【００６９】
また、鍵登録／データ回復システムを運用している際に、利用者用システム１２やデータ回復装置４０が、必要に応じて、鍵保管装置の公開鍵を求める場合がある。この場合に、鍵登録装置２０は、利用者用システム１２或いはデータ回復装置４０に、公開鍵を確実に（すなわち、改竄されることなく）通知できることが必要である。これにより、利用者用システム１２は、自己の利用者秘密鍵の登録において、保管鍵を生成するための鍵保管装置の公開鍵を得ることができ、また、データ回復装置４０は、鍵保管装置３１〜３３と通信するために必要な情報を得ることができる。
【００７０】
このため、鍵登録装置２０においては、上述した事項を考慮して、以下の管理処理が実行できるようになっている。すなわち、
鍵保管装置を登録・更新する鍵保管装置登録・更新処理、
鍵保管装置の登録を削除する鍵保管装置削除処理、および、
鍵保管装置の登録情報を通知する鍵保管装置証明書リスト通知処理、である。
【００７１】
このうち、４番目の処理（鍵保管装置証明書リスト通知処理）が、ステップ１１２の処理に対応する。ここに、図６は、鍵保管装置証明書リスト通知処理をより詳細に示す図である。
【００７２】
この処理においては、鍵登録／データ回復システムに登録されている鍵保管装置に関する鍵保管装置証明書が利用者用システム１２に提供される。
【００７３】
まず、鍵登録装置２０が、必要とする鍵保管装置の数である鍵保管装置証明書必要数を、要求元（この場合には利用者用システム１２）から受け入れると（ステップ２０１)、鍵登録装置２０の証明書データベース（図示せず）内の証明書レコードの中から証明書レコード状態が「有効」である証明書レコードを特定して（ステップ２０２）、必要数だけ取り出す(ステップ２０３）。次いで、取り出した証明書レコード内の鍵保管装置証明書を含む鍵保管装置証明書リストを作成し（ステップ２１０）、これを要求元（利用者用システム１２）に返送する（ステップ２１５）。
【００７４】
たとえば、利用者用システム１２においては、受理した鍵保管装置証明書リストに基づき、各証明書の内容を、ディスプレイの画面上に表示し、利用者に承認を得る。この際、利用者が指定した鍵保管装置の必要数にくらべて、鍵保管装置の数が少ない場合には(ステップ２１１でノー(Ｎ)）、鍵登録装置２０は、これに応答して、有効な鍵保管装置から補完し、必用な数の証明書を追加して、要求元（利用者用システム）に返送する(ステップ214)。その一方、必用数よりも多い場合には（ステップ２１２でノー(Ｎ)）、鍵登録装置２０において乱数を用いて、必用な数に、鍵保管装置を絞り込めば良い（ステップ２１３）。このようにして、鍵保管装置証明書リストが、鍵登録装置２０から利用者用システム１２に転送される。
【００７５】
さて、上述したように、ステップ１１０の処理が終了すると、鍵登録処理１２０が実行される。利用者用システム１２は、保管鍵および鍵保管装置の鍵保管証明書に基づき、保管鍵情報を生成し、次いで、当該保管鍵の所有者を示す所有者情報を含む鍵属性情報および利用者自身の公開鍵証明書である利用者証明書に基づき鍵登録要求データを生成して、これらを鍵登録装置２０に送信する（ステップ１２１）。なお、本実施の形態において、利用者証明書は、別途、証明機関から発行されている。
【００７６】
鍵登録装置２０が、鍵登録要求データを受理すると、利用者用システム１２により指定された鍵保管装置の全てが稼働中か否かを判断し（ステップ１２２）、稼働中である場合には、鍵登録装置２０の外部記憶装置（図示せず）中の供託鍵ＩＤデータベースを参照して、利用者秘密鍵に対応する供託鍵ＩＤ（ＥＫIDa）を割り当てる（ステップ１２３）。次いで、鍵登録装置２０は、自己の作動状態を示す供託状態を「登録中」として、これを示す供託状態コードを、主記憶装置（図示せず）の所定の領域に記憶する。次いで、供託状態コード、鍵登録要求データに含まれる鍵属性情報および供託鍵ＩＤに基づき、少なくとも、これら情報を含む供託鍵ＩＤレコードを生成し、これを供託鍵ＩＤデータベースに記憶し、かつ、供託鍵ＩＤを、利用者用システム１２に転送する。
【００７７】
なお、供託鍵ＩＤデータベースに記憶可能な供託鍵ＩＤレコードの数には限界がある。そのため、限界値を超える場合には、供託鍵ＩＤの割り当ては行われず、鍵登録が失敗した旨を、利用者用システム１２に通知する。
【００７８】
利用者は供託鍵ＩＤを入手することにより、この供託鍵ＩＤを、利用者用システム１２から鍵登録装置２０やデータ回復装置４０に送信することにより、鍵供託の状況やデータ回復の状況を問い合わせることができる。また、鍵供託の処理において、鍵登録装置は、利用者から鍵登録要求があったことを記録するログ採取処理や、異常発生時の警報発信処理を実行できるのが好ましい。鍵登録装置２０においては、鍵登録要求の時点で、利用者の分割秘密鍵を所持しているが、分割秘密鍵が保管先である鍵保管装置の公開鍵にて既に暗号化された保管鍵の形式となっているため、鍵登録装置が、分割秘密鍵自体を参照することはできない。このため、鍵登録装置にて、自己の分割秘密鍵を参照されることに対する不安を利用者が感じる必要がなくなる。
【００７９】
次に、ステップ１３０の鍵配送処理につき説明を加える。この処理においては、鍵登録装置２０が、受理した保管鍵を、各鍵保管装置３１、３２および３３に配送する。
【００８０】
鍵登録装置２０は、鍵登録処理（ステップ１２０）にて受理した鍵登録要求データから、保管鍵に関する情報（保管鍵情報）を取り出し、供託鍵ＩＤおよび保管鍵情報から得られた鍵保管装置証明書に含まれる鍵保管装置ＩＤ（すなわち、鍵保管装置が登録されると発行される、該鍵保管装置を特定するための識別子）に基づき、固有の値である保管鍵ＩＤ（図４の符号６６１、６６２および６６３参照）を生成する（ステップ１３１）。この保管鍵ＩＤは、供託鍵ＩＤが同じ場合でも、鍵保管装置ＩＤが異なる場合には、異なる値が得られるようになっている。また、一つの鍵保管装置において、異なる供託鍵ＩＤには異なる保管鍵ＩＤが得られるようになっている。
【００８１】
このステップ１３１の保管鍵ＩＤの生成処理を、図７を参照してより詳細に説明する。まず、鍵登録装置２０は、利用者用システム１２により送信された鍵登録要求データ内の保管鍵情報を取り出す。次いで、保管鍵の分割数ｎ、供託鍵ＩＤ（ＥＫIDa）および鍵保管装置ＩＤ（ＫＳIDi）を受け入れる（ステップ３０１ないしステップ３０３）。ここに、鍵保管装置ＩＤは、鍵保管装置が登録されることにより発行される、該鍵保管装置を特定するための識別子である。
【００８２】
次いで、これらに基づき保管鍵ＩＤ（ＳＰＫaiＩＤi）を生成する。保管鍵ＩＤは、供託鍵ＩＤが同じ場合でも鍵保管装置ＩＤが異なる場合には、異なる値が得られるようになっている関数f()を用いる(ステップ３１０）。また、この保管鍵ＩＤは、ある鍵保管装置について見た場合に、異なる供託鍵ＩＤには必ず異なる保管鍵ＩＤとなるようになっている。このような作成用関数f()を用いて、ステップ３１１の処理を繰り返し、全ての鍵保管装置に関する鍵保管ＩＤを作成することにより、この処理が終了する（ステップ３０４）。
【００８３】
鍵登録装置２０は、次いで、ステップ１３１にて得た保管鍵ＩＤと、保管鍵情報中の保管鍵とから、保管鍵要求データ（Ｅ(ＰＫKSi，ＳＰＫai)ＳＰＫaiＩＤi）（図４の符号６５１ないし６５３参照）を生成し、対応する鍵保管装置に送信する（ステップ１３２）。鍵保管装置において保管鍵が保管されたことを、鍵登録装置２０が確認した（ステップ１３３）後に、他の鍵保管装置に対する保管鍵要求データの送信を実行する（ステップ１３４参照）。このようにして、全ての鍵登録装置に保管鍵が送信される。
【００８４】
鍵保管要求データを受信した鍵保管装置は、受理した鍵保管データから、保管鍵Ｅ(ＰＫKSi，ＳＰＫai)および保管鍵ＩＤ（ＳＰＫaiＩＤi）を取り出して、保管鍵レコードを生成し、これを、自己が所有する保管鍵データベースに登録する。なお、保管鍵データベースに登録可能な、保管鍵レコードの数には、限界がある。この限界（上限値）は、供託鍵ＩＤデータベースにて格納可能なレコードの最大値より大きくしておく。これにより、保管鍵データベースのオーバーフローにより鍵配送が失敗することを防止することができる。また、鍵登録装置は、上記処理において、鍵保管要求データを送信したことを記録するログ採取処理や、異常発生時の警報発信処理を実行できることが好ましい。また、鍵保管装置においても、鍵登録装置から鍵保管要求データが送信されたことを記録するログ採取処理が実行されるのが好ましい。
【００８５】
なお、この実施の形態においては、鍵検証処理が実行されないため、鍵配送が完了した時点で、供託鍵ＩＤレコードの供託状態コードは、「供託完了」を示すものとなる。
【００８６】
この実施の形態においては、実行されないが鍵検証処理は、鍵配送が正しく行われていることを鍵登録装置が確認するものである。この処理は、ステップ１３０の鍵配送処理の後に実行され得る。以下、この鍵配送処理につき説明を加える。
【００８７】
鍵登録装置は、鍵登録要求データから利用者証明書を取り出し、さらに、この利用者証明書中の利用者の公開鍵、すなわち、利用者公開鍵を取り出す。鍵登録装置は乱数を発生させ、その乱数を暗号化対象データとし、利用者公開鍵を暗号鍵として、公開鍵方式暗号化関数にて暗号化データを得て、この暗号化データを検証データとする。
【００８８】
次いで、鍵登録装置は、この検証データと保管鍵ＩＤとから鍵検証要求データを生成し、それぞれ、これを鍵保管装置の各々に送信する。鍵検証要求データを受理した鍵保管装置は、鍵検証要求データ中の保管鍵ＩＤをキーにして、保管鍵データベースから保管鍵を取り出して、求めた保管鍵を鍵保管装置自身の秘密鍵で復号して利用者の分割秘密鍵を求め、この分割秘密鍵で鍵検証要求データ中の検証データを公開鍵方式復号化関数にて復号したもの、すなわち、鍵検証応答データを生成する。
【００８９】
次いで、保管鍵が取り出せた場合には、「復号成功」を示すコードを、復号結果コードとして記憶装置中の所定の領域に格納し、復号結果コードおよび鍵検証応答データを、鍵登録装置に返送する。その一方、保管鍵が取り出せない場合には、「復号失敗」を示すコードを、復号結果コードとして記憶装置中の所定の領域に格納し、復号結果コードを、鍵登録装置に返送する。
【００９０】
鍵登録装置は、全ての鍵保管装置から、「復号成功」の復号結果コードを受信した場合には、鍵検証応答データを取り出して、取り出した複数の鍵検証応答データに基づき、鍵回復応答データ合成関数を用いて、ブラインド復号データ鍵を得る。
【００９１】
ブラインド復号データ鍵として得られたデータが、検証データ生成時に使用した乱数と一致すれば、利用者の秘密鍵が正しく供託されていると判断し、供託鍵ＩＤをキーにして、供託鍵ＩＤデータベースから対応する供託鍵ＩＤレコードを検索し、供託鍵ＩＤレコード内の供託状態コードを「供託完了」をしめすものに更新する。その一方、鍵検証が成功しなかった場合には、警報を発信することが望ましい。
【００９２】
次に、鍵登録確認処理（ステップ１４０）につき、より詳細に説明を加える。
【００９３】
本処理においては、鍵登録装置２０から利用者用システム１２に、供託の引き換えというべき供託鍵ＩＤが返送される。
【００９４】
まず、鍵登録装置２０は、利用者用システム１２に、供託鍵ＩＤ（図４の符号６６０参照）を転送する。利用者用システム１２から返信（ＡＣＫ）が戻った後に、鍵登録装置２０は、鍵保管装置３１ないし３３の全てに、ステップ１３０において配送した鍵（保管鍵）が有効となったことを通知して、供託を完了する（ステップ１４２）。なお、供託鍵ＩＤを利用者用システム１２に送付した後のコミット処理であるステップ１４２を省略しても良い。
【００９５】
或いは、供託鍵ＩＤを、通信回線にてオンライン送付せずに、オフライン送付することにより、利用者に届けてもよい。この場合には、利用者は、自己の利用者秘密鍵の供託処理状況を調べられ得ることが必要である。利用者用システム１２は、オフラインにて送付された供託鍵ＩＤを含む鍵登録確認要求データを生成し、これを鍵登録装置２０に送信する。鍵登録装置２０は、これに応答して、鍵登録確認要求データから供託鍵ＩＤを取り出し、この供託鍵ＩＤをキーとして、供託鍵ＩＤデータベースを検索し、対応する供託状態コードを参照して、当該利用者の秘密鍵の供託状況を調べる。次いで、供託状況コードに基づき、鍵登録確認応答データを生成して、これを利用者用システム１２に送信する。このようにオフライン送付にて供託鍵ＩＤを届ける場合には、上述した処理の終了をまって、鍵登録装置２０は鍵登録が正常に終了したと判断するのが好ましい。
【００９６】
このようにして、利用者の秘密鍵（当該秘密鍵に基づく保管鍵）が、鍵登録装置２０などの処理を介して、各鍵保管装置３１ないし３３に保管される。
【００９７】
なお、図１に示すように、本実施の形態において、利用者用システム１２と鍵登録装置２０との間が、オープンなネットワークにて接続されている場合には、通信内容を盗まれるおそれがあるため、これらの間では、暗号化された情報の通信がなされる。鍵登録装置２０と鍵保管装置３１ないし３３との間も、オープンなネットワークにて接続されている場合には、同様に、暗号化された情報を通信することが好ましい。しかしながら、本実施の形態においては、後者の通信は、それぞれ、１対１の通信が可能な信頼性の高い専用回線にて実行されている。したがって、保管鍵ＩＤ（図４の符号６６１ないし６６３参照）を、暗号化せずに通信している。
【００９８】
次に、利用者が、自己の利用者秘密鍵の供託を無効としたい場合に実行される処理（鍵抹消処理）につき、簡単に説明を加える。この場合には、利用者はシステム１２を操作して、自己の供託鍵ＩＤを無効にするように、鍵登録装置２０に指示を与える。これに対応して、鍵登録装置２０は、無効な供託鍵ＩＤを示す抹消鍵リストに、当該供託鍵ＩＤを加え、当該供託鍵ＩＤを無効とする。これにより、この供託鍵ＩＤを示すデータ回復要求があった場合でも、後述するように、データ回復装置４０によりデータ回復が拒否され、利用者のプライバシーを保護することができる。
【００９９】
次に、図３および図５を参照して、ステップ１５５をより詳細に説明する。本処理においては、供託された利用者秘密鍵に基づき、暗号化されたデータ（エンベロープデータ）の回復（復号）が実行される。
【０１００】
利用者が自己の利用者秘密鍵を紛失して、機密データベース５０に格納したエンベロープ情報から、機密情報ｍを得ることができなくなってしまった場合に、利用者用システム１４（或いは１２）を操作して、データ回復装置４０に、データの回復を依頼する。データ回復装置４０にて実行される処理は、利用者用システム１４からのデータ回復依頼に応答して実行されるが、これは、通信回線を経たオンライン通信による依頼に限定されるものではなく、オフラインにより、データ回復装置４０を操作するオペレータが、利用者からデータ回復に必要なデータを得ている場合も含まれる。
【０１０１】
また、データ回復の際に、利用者秘密鍵を得て、これを用いてデータを回復すると、利用者の機密データは、利用者の意思によらず、無制限に復号できるようになってしまう。そこで、本実施の形態においては、利用者の秘密鍵自体を明らかにすることなしに、データを回復できるようにしている。また、データ回復の際に、暗号化された機密データ（エンベロープデータ）のみでは、利用者秘密鍵を特定することができないため、さらに、供託鍵ＩＤが必要である。ところが、供託鍵ＩＤおよびエンベロープデータが盗難されると、利用者以外の者により、不当に機密データが復号されるおそれがある。このため、前述した鍵抹消処理により復号を禁止された供託鍵ＩＤについて、データ回復装置にて、データの回復を実行できないようにする必要がある。そこで、本実施の形態においては、図３のステップ１６１内の無効な供託鍵ＩＤを入手する抹消鍵リスト通知処理（図６のステップ５１１参照）、鍵登録／データ回復システムに含まれる全ての鍵登録装置の登録情報を入手する鍵保管装置証明書リスト通知処理（図８のステップ５０１参照）、たとえば、PKCS#７の形式のエンベロープデータからデータ鍵を得るデータ鍵回復処理（図３のステップ１７０）、および、データ鍵から暗号化された機密情報ｍを復号して、機密情報（メッセージ）ｍを得るメッセージ回復処理（ステップ１９０）が含まれている。
【０１０２】
データ回復装置４０においては、供託鍵ＩＤおよびエンベロープデータを含む、データ回復要求を受け入れると（図３のステップ１６１）、抹消鍵リスト通知処理（図８のステップ５１１）を起動する。データ回復装置４０は、ステップ５１１ないし５１３の処理を実行することにより、抹消された供託鍵ＩＤ（すなわち、無効供託鍵ＩＤ）を知ることができ、これにより、供託鍵ＩＤの漏洩などにより、利用者以外の者によるデータの回復を阻止することが可能となる。
【０１０３】
この処理において、データ回復装置４０は、鍵登録装置２０に、鍵抹消処理により作成、更新されている抹消鍵リストの送付を要求する（ステップ５１１）。得られた抹消鍵リスト中に、データ回復要求に関連する供託鍵ＩＤが含まれている場合には、供託鍵ＩＤが無効であると判断し、これ以降の処理を拒否するステップ５１２、５１３）。これに対して、抹消鍵リスト中に、データ回復要求に関連する供託鍵ＩＤが含まれていない場合には、これが、有効な供託鍵ＩＤであるか否かが判断される（図３のステップ１６２参照）。
【０１０４】
次に、図８を参照して、ステップ１６２の処理につき、さらに詳細に説明する。
【０１０５】
ステップ１６２において、まず、データ回復装置４０は、現在利用できる鍵保管装置を確認する（ステップ５０１）。これは、鍵登録装置２０に、登録された鍵保管装置の証明書および鍵保管装置のアドレスを送付するように依頼することにより実現される。 これにより、鍵登録装置２０の証明書データベースに登録されている全ての鍵保管装置の鍵保管装置証明書および鍵保管装置のアドレスがデータ回復装置４０に通知され、鍵保管装置が動作するアドレスや公開鍵を得ることができる。
【０１０６】
次いで、データ回復装置４０は、利用者用システム１４により送信されたデータ回復要求データから供託鍵ＩＤ（ＥＫIDa）を取り出す（ステップ６０２）とともに、必要な鍵保管装置ＩＤ（ＫＳIDi）を得る（ステップ６０３）。ステップ６０３は、より具体的には、データ回復装置４０が、鍵登録装置２０に、鍵保管装置のリストを請求することにより実現される。なお、鍵保管装置のリスト、すなわち、すべての鍵保管装置ＩＤを記憶したデータベースを、データ回復装置４０が予め備えている。実際には、さらに、必要な鍵保管装置が、現在稼働しているか否かを、鍵登録装置２０に問い合わせて確認してもよい。
【０１０７】
次いで、保管鍵ＩＤ作成用関数f()に基づき（ステップ６０４）、保管鍵ＩＤを生成する（ステップ６０５）。なお、関数f()は、ステップ３１０にて用いた関数f()と同一である。
【０１０８】
さらに、データ回復装置４０は、供託鍵ＩＤおよび鍵保管装置ＩＤとにしたがって、保管鍵ＩＤを生成する（ステップ６０５）。ステップ６０５の処理を繰り返すことにより、データ回復に必要な全ての鍵保管装置の保管鍵ＩＤを得ることが可能となる。全ての保管鍵ＩＤ（ＳＰＫaiＩＤi）が生成されると、処理を終了する（ステップ６０７）。
【０１０９】
上述したようにステップ１６０の処理が終了すると、データ回復装置４０は、鍵保管装置３１ないし３３に対して、各鍵保管装置の部分秘密鍵を用いて、送信したデータを復号することを求める。
【０１１０】
まず、図３のステップ１７１において、データ回復装置４０、エンベロープデータ内の暗号化データ鍵Ｅ(ＰＫa，ＤＫ)（図５の符号７４０参照）を取り出す。次いで、生成した保管鍵ＩＤ（ＳＰＫaiＩＤi）および上記暗号化データ鍵をパラメータとして、データ回復装置自身の公開鍵ＰＫDR（図５の符号７１１参照）および所定の鍵回復データ生成関数を用いて、ブラインド暗号化データ鍵（Ｅ(ＰＫDR，Ｅ(ＰＫa，ＤＫ))ＳＰＫaiＩＤi）（図５の符号７５１ないし７５３参照）を生成する。ブラインド暗号化データ鍵は、ブラインド復号の手法を用いて、データ鍵を暗号化した状態を意味している。このブラインド暗号化データ鍵は、鍵回復要求を示す指示とともに、鍵保管装置のアドレスで指定された、鍵保管装置３１ないし３３の何れかに送信される。
上記ブラインド暗号化データ鍵を受理した鍵保管装置は、受理したデータから保管鍵ＩＤを取り出し、取り出された保管鍵ＩＤをキーに、保管鍵データベースから、対応する保管鍵レコードを検索する（ステップ１８１、１８２）。対応する保管鍵レコードが検索されなかった場合には（ステップ１８３でノー(Ｎ)）、鍵回復状態を示すデータ鍵回復結果コードを「部分回復の失敗」に設定して、「部分回復の失敗」を示すデータを、データ回復装置４０に送信する（ステップ１８６）。
【０１１１】
これに対して、対応する保管鍵レコードが検索された場合には（ステップ１８３でイエス(Ｙ)）、保管鍵データベース内の保管鍵に基づき、自己の秘密鍵ＳＫKSiを用いて、分割秘密鍵を生成し、得られた分割秘密鍵とブラインド暗号化データ鍵を作用させる（ステップ１８４）。すなわち、ステップ１８４においては、まず、保管鍵レコードから保管鍵が取り出され、保管鍵が鍵保管装置の秘密鍵ＳＫKSiで復号され、これにより利用者分割秘密鍵が復元される。次いで、ブラインド暗号化データ鍵を復号対象データとし、かつ、復元された利用者分割秘密鍵を復号鍵として、公開鍵暗号方式復号関数を呼び出して作用させ、出力された復号データ鍵（Ｅ(ＰＫDR，ＤＫi）（図５の符号７６１ないし７５３参照）を、データ回復装置４０に与えるべき鍵回復応答データとする。
【０１１２】
その後に、データ鍵回復結果コードを「回復成功」を示すものにして、これを鍵保管装置の記憶装置中の所定の領域に格納する。さらに、鍵回復応答データにデータ鍵回復結果コードを付加して、これを、データ回復装置４０に返送する（ステップ１８５）。
【０１１３】
一般に、ブラインド復号とは、暗号文の所有者が鍵の所有者に暗号文を明かさず、かつ、鍵の所有者は、暗号文の所有者に鍵を明かさず復号化を行うことをいう。本実施の形態においては、このようなブラインド復号の手法を用いた、ブラインド復号部分データ鍵が生成され、鍵保管装置は、部分データ鍵の所有者を知ることができず、また、鍵保管装置で得られる部分データ鍵は、単独ではデータ鍵になり得ないため、利用者のプライバシーを侵すことが防止できる。
【０１１４】
鍵保管装置からの鍵回復応答データを受理すると（ステップ１７２）、データ鍵を再構成するための全てのデータが得られたか否かが判断される（ステップ１７３）。必要な全ての鍵保管装置に対して、ステップ１７１、ステップ１８０の処理が実行されることにより、必要な全ての暗号化データ鍵（Ｅ(ＰＫDR，ＤＫi）が得られる。データ回復装置４０においては、得られた暗号化データ鍵に、自己の秘密鍵ＳＫDR（図５の符号７１２参照）を作用させることにより、ＤＫiを得ることができ、これにより、データ鍵ＤＫを再構成することが可能となる（ステップ１７４）。
【０１１５】
次いで、データ回復装置４０は、得られたデータ鍵を用いて、エンベロープデータの内の暗号化された機密情報（暗号化メッセージ）（Ｅ(ＤＫ，ｍ)）を復号する。すなわち、エンベロープデータから暗号化メッセージを取り出し、データ鍵を用いて、共通鍵方式復号関数を呼び出して、機密情報ｍを得る。得られた機密情報ｍは、利用者に通知される。
【０１１６】
このように、本実施の形態によれば、ブラインド部分復号データ鍵が用いられており、鍵保管装置にて得られる復号結果は、単独ではデータ鍵にならず、かつ、データ回復装置においても、利用者の秘密鍵が再構成されないため、利用者のプライバシーを侵すことなく、データ（機密情報）を回復することが可能となる。
【０１１７】
次に、本実施の形態にて、利用者秘密鍵が登録された際に、鍵登録装置２０によりそのデータが作成され、その後に、利用者に（オフラインにて）送付される可搬記憶媒体につき説明を加える。前述したように、供託鍵ＩＤは、鍵登録装置２０から、秘密鍵を供託した利用者のシステム１２に、通信回線を介して送付しても良いが、より秘密の漏洩を防止する見地から、供託鍵ＩＤを記憶したメモリを備えた可搬記憶媒体を、利用者にオフライン送付するのがより好ましい場合がある。また、供託鍵ＩＤは、秘密鍵の引き換えに与えられるものであり、データ回復を依頼する際に、利用者の真正さを証明するために重要である。したがって、利用者用システム１２の外部記憶装置などにて保管するよりも、物理的に分離できる可搬型媒体に格納し、複写禁止、閲覧禁止にすることが望ましい。たとえば、利用者自身が携帯するか、或いは、より安全な金庫等で厳重に保管し、データ回復が必要になったときに利用するのが望ましい。
【０１１８】
図９は、本実施の形態にて使用される可搬記憶媒体の一例を示すブロックダイヤグラムである。可搬記憶媒体４００は、たとえば、スマートカード(Smart Card)、ＩＣカードなどに対応する。図４に示すように、可搬記憶媒体は、鍵登録装置２０や利用者用システム１２と接続するためのインタフェース４１０と、必要な処理を実行するためのプロセッサ４２０と、カード所有者のパスワードを記憶するためのパスワードメモリ４２５と、供託鍵ＩＤを記憶するＩＤメモリ４３０とを有している。プロセッサ４２０は、ＩＤメモリ４３０に供託鍵ＩＤを書込み、或いは、記憶された供託鍵ＩＤを読み出す処理、および、インタフェース４１０を介して接続されたコンピュータ（たとえば、利用者用システム１２）から与えられたパスワードと、パスワードメモリ４２５に記憶されたパスワードとを比較して、ＩＤメモリ４３０のアクセスの可否を決定する処理などを実行する。
【０１１９】
この実施の形態にかかる可搬記憶媒体４００においては、ＩＤメモリ４３０に、複数の供託鍵ＩＤが記憶できるようになっている。利用者は、利用するサービス(すなわち、機密データベース)ごとに、異なる秘密鍵を作成する場合がある。また、一つの鍵登録／データ回復システムに、複数の鍵を供託した場合がある。この際に、問題となるのは、利用者が、データ回復の際に、どの供託鍵IDを用いればよいかわからなくなることである。
【０１２０】
そこで、本実施の形態において、ＩＤメモリ４３０には、供託鍵ＩＤ（符号４３１参照）のそれぞれに対応して、供託した時刻（符号４３２参照）および供託鍵の使用するサービスについての覚え書き等のコメント（符号４３３参照）のうちの少なくとも一方が記憶できるのが好ましい。たとえば、コメント欄４３３には、供託鍵ＩＤに対応する秘密鍵を用いるべきデータを格納した機密データベース名を示す文字列を記憶しておけばよい。
【０１２１】
このように供託鍵ＩＤを可搬記憶媒体４００のＩＤメモリ４３０に格納することにより、業務の引き継ぎなどにも対応できる。たとえば、利用者が業務において、機密情報を暗号化して、暗号化した情報を機密データベースに格納するとともに、その秘密鍵を、鍵登録装置２０を介して、鍵保管装置に供託する。この場合に、その供託鍵IDは、可搬記憶媒体４００のＩＤメモリ４３０に格納される。この利用者が、何らかの事情により、その業務から外れた場合には、後任者に供託鍵ＩＤを格納したＩＤメモリ４３０を備えた可搬記憶媒体４００を譲渡することにより、機密を安全に引き継ぐことが可能となる。なお、ここでいう安全とは、前任者の暗号鍵で復号した後に、機密情報を新任者の暗号鍵で再暗号化する処理が不要であることを意味している。
【０１２２】
図１０は、図９に示す可搬記憶媒体４００を利用した鍵登録／データ回復システムの運用を説明するための図である。図１０において、符号９１１は、利用者ａの公開鍵、符号９１２は、利用者ａの秘密鍵である。秘密鍵９１２は、公開鍵９１１と対をなしている。また、符号９２１は、利用者bの公開鍵、符号９２２は利用者bの秘密鍵である。秘密鍵９２１は、公開鍵９２１と対をなしている。ここで、可搬記憶媒体４００は、接続可能な計算機（鍵登録装置２０、利用者用システム１２、１４など）に対応して、以下のとおりの４種類の使い方が可能である。
(i)  鍵登録装置２０に接続され、供託鍵ＩＤ（符号９６０）を格納する可搬記憶媒体（符号９００参照）、
(ii) 利用者用システム１２に接続された供託鍵ＩＤ（符号９６１）を格納した可搬記憶媒体（符号９０１参照）、
(iii)利用者用システム１４と接続可能な、供託鍵ＩＤ（符号９６２）を格納した可搬記憶媒体（符号９０２参照）、および、
(iv) データ回復装置４０に接続可能な、供託鍵ＩＤ（符号９６３）を格納した可搬記憶媒体（符号９０３参照）である。
【０１２３】
(i)の場合には、可搬記憶媒体９００は、鍵登録装置２０にオフラインで接続され、供託鍵ＩＤ９６０は平文の状態で、そのＩＤメモリに格納される。データ回復の際に、可搬記憶媒体９００は、データ回復装置４０にオフラインにて接続され、或いは、利用者用システム１２または１４に接続されて、供託鍵ＩＤ９６０を、データ回復装置４０の公開鍵（ＰＫDR）（符号７１１参照）にて暗号化して、これをデータ回復装置４０に送付する必要がある。
【０１２４】
このような形態は、鍵登録装置２０において、管理者が、供託鍵ＩＤを格納した可搬記憶媒体を作成し、これを発行するような場合に相当する。
【０１２５】
(ii)の場合には、供託鍵ＩＤ９６１は、利用者ａの公開鍵（ＰＫa）（符号９１１参照）にて暗号化され、鍵登録装置２０から利用者用システム１２に転送される。その後、利用者用システム１２において、暗号化された供託鍵ＩＤは、秘密鍵（符号９１２参照）にて復号され、平文の状態で、可搬記憶媒体９０１のＩＤメモリに格納される。なお、データ回復の際の手順は、上述した形態(i)と同様である。このような形態においては、予め可搬記憶媒体が利用者に配布される。また、この形態では、上述した形態(i)と比較して、利用者の利便性が重視されている。
【０１２６】
(iii)の場合には、供託鍵ＩＤは、利用者ｂの公開鍵（ＰＫb）（符号９２１）にて暗号化され、鍵登録装置２０から利用者用システム１２或いは１４に転送される。利用者用システム１２、１４においては、暗号化された供託鍵ＩＤが、可搬記憶媒体９０２に格納される。これは、利用者ｂが、自己の秘密鍵（ＳＫb）（符号９２２）を紛失しないことが前提となる。データ回復の際には、秘密鍵９２２にて、供託鍵ＩＤを復号した後に、形態(i)と同様の手順が実行される。この形態は、機密データベースが、いわゆる必須アクセス制御（ＭＡＣ：Mandatory Access Control)で運用されており、利用者aは機密情報は登録できるが参照できず、その一方、利用者bは機密データは参照できるが変更できないという場合に相当する。
【０１２７】
(iv)の場合には、供託鍵ＩＤは、データ回復装置の公開鍵（ＰＫDR）（符号７１１）にて暗号化され、鍵登録装置において、可搬記憶媒体９０３のＩＤメモリに格納され、或いは、利用者用システム１２、１４に転送されて、利用者用システムにおいて、可搬記憶媒体９０３のＩＤメモリに格納される。これは、データ回復装置の秘密鍵７１２が紛失されることがないことを前提としている。データ回復の際は、データ回復装置４０において、可搬記憶媒体９０３をオフライン接続し、或いは、利用者用システム１２、１４から、可搬記憶媒体９０３中の暗号化された供託鍵ＩＤが、データ回復装置４０に転送される。この形態は、必ず特定の装置であるデータ回復装置４０を使用することを予め義務づけられ、これを変更できないように鍵登録／データ回復システムが運用されている場合に相当する。
【０１２８】
次に、鍵証明書の発行および鍵保管装置証明書の作成に関する処理につき、簡単に説明を加える。この処理において、認証局(Certificate Authority)により、鍵保管装置に対して鍵証明書が発行される。認証局は、鍵登録／データ回復システムにおいて、公開鍵の鍵証明書を発行するための専門の認証装置である。より具体的には、
(a)鍵保管装置は、認証局に対して、鍵保管装置の鍵証明書の発行を要求する。認証局は、鍵証明書を作成し、これを鍵保管装置に送付する。これらは、一般にはオフラインにて行われる。
【０１２９】
(b)次いで、鍵保管装置は、認証局から送付された鍵証明書、鍵保管装置属性、鍵保管装置ＩＤなどを含む、自分自身の鍵保管装置証明書を作成する。
【０１３０】
次に、鍵登録装置において、鍵保管装置リスト通知処理以外に実行される処理につき、簡単に説明する。これら処理は、鍵保管装置証明書リスト通知処理から類推できる処理である。
【０１３１】
鍵保管装置登録・更新処理においては、鍵保管装置が、鍵登録／データ回復システムにて機能可能なものとして登録され、登録された鍵保管装置の内容が更新される。鍵保管装置を登録する際には、鍵登録装置は、鍵保管装置証明書および鍵保管装置アドレスを受け入れ、鍵保管装置証明書内の鍵保管装置ＩＤ、鍵保管装置証明書、鍵保管装置アドレス、および、「有効」を示す証明書レコード状態に基づき、証明書レコードを作成し、これを、鍵登録装置中の証明書データベース（証明書レコードから構成される）に格納する。その後に、鍵登録装置は、登録の成功を示すコードを、登録を要求した要求元に返送する。
【０１３２】
証明書データベースに格納できる証明書レコード数には限界がある。この限界値を超えた場合には、鍵保管装置登録は失敗するため、鍵登録装置は、登録の失敗を示すコードを、登録を要求した要求元に返送する。
【０１３３】
また、鍵保管装置を更新する際には、鍵登録装置は、鍵保管装置証明書および鍵保管装置アドレスを受け入れ、鍵保管装置証明書中の鍵保管装置ＩＤ、鍵保管装置証明書、鍵保管装置アドレス、および、「有効」を示す証明書レコード状態に基づき、証明書レコードを作成して、これを用いて、鍵登録装置中の証明書データベースを更新する。その後に、鍵登録装置は、更新の結果（「成功」或いは「失敗」）を示すコードを要求元に返送する。
【０１３４】
鍵保管装置削除処理においては、鍵登録／データ回復システムに登録されている鍵保管装置に関する情報が削除される。鍵登録装置が、鍵保管装置の鍵保管装置ＩＤを受け入れると、入力された鍵保管装置ＩＤと等しい、証明書データベースに格納された鍵保管装置ＩＤを持つ証明書レコードの証明書レコード状態を「無効」に設定する。その後に、鍵登録装置は、削除の結果（「成功」或いは「失敗」）を示すコードを要求元に返送する。
【０１３５】
以上、詳細に説明したように、本実施の形態にかかる 鍵登録／データ回復システムは、以下のような特徴を備えている。
【０１３６】
(1) DRFを前提としない鍵回復方式を提供する。
【０１３７】
(2) 利用者と鍵保管装置との仲介をする鍵登録装置を提供する。
【０１３８】
(3) 各保管装置の分割した秘密鍵に対し、データ鍵をブラインド復号を用いて復号する。
【０１３９】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【０１４０】
たとえば、前記実施の形態において、機密データベースに格納されるべき暗号化されたデータは、(Ｅ(ＰＫa，ＤＫ)，Ｅ(ＤＫ，ｍ))という形式となっているが、これに限定されるものではなく、Ｅ(ＰＫa，ＤＫ，Ｅ(ＤＫ，ｍ))など、他の形式であっても良いことは明らかである。
【０１４１】
また、前記実施の形態においては、秘密鍵を用いて、データ鍵を暗号化したようなエンベロープデータが生成されているが、これに限定されるものではなく、公開鍵暗号系を用いて、秘密鍵に対応する公開鍵にて暗号化したようなエンベロープデータを生成してもよいことは明らかである。
【０１４２】
さらに、本明細書において、手段とは、必ずしも物理的手段を意味するものではなく、各手段の機能が、ソフトウエアによって実現される場合も包含する。また、一つの手段の機能が二以上の物理的手段により実現されても、二以上の手段の機能が一つの物理的手段により実現されてもよい。
【０１４３】
【発明の効果】
本発明によれば、
(1) 合法的盗聴を行うKESに転用される可能性が少ないので、利用者が安心して鍵供託できる。
【０１４４】
(2) 信頼できる鍵登録装置を介することで、鍵供託作業の利便性が増す。また、利用者に対して、鍵登録装置が信頼できうる鍵保管装置を複数紹介することができる。また、利用者は、１か所の鍵登録装置に鍵を送ることで鍵供託作業が済む。複数の鍵保管装置へ鍵を送る手間を鍵登録装置が代行することができる。
【０１４５】
(3) 利用者の秘密が鍵登録／データ回復システム内で漏洩しない。利用者の秘密であるデータ鍵と秘密鍵とが、それぞれデータ回復装置、鍵保管装置に分散している。しかし、互いの装置には情報が漏洩しない。
【０１４６】
したがって、本発明によれば、各装置の間で、利用者が特定されず、かつ、利用者の秘密鍵を再構成することなく、信頼性をもって、利用者が作成したデータを回復できるデータ回復システムを提供することが可能となる。
【図面の簡単な説明】
【図１】  図１は、本発明の実施の形態にかかる鍵登録／データ回復システムの構成を示すブロックダイヤグラムである。
【図２】  図２は、鍵を供託するための処理の概要を示すフローチャートである。
【図３】  図３は、データ回復の処理の概略を示すフローチャートである。
【図４】  図４は、分割秘密鍵の供託の際の処理の概要を説明するための図である。
【図５】  図５は、データ回復の際の処理の概要を説明するための図である。
【図６】  図６は、鍵保管装置証明書リスト通知処理をより詳細に示す図である。
【図７】  図７は、保管鍵ＩＤの生成処理をより詳細に示すフローチャートである。
【図８】  図８は、データ回復処理において、供託鍵ＩＤおよび保管鍵ＩＤの計算を示すフローチャートである。
【図９】  図９は、本実施の形態にて使用される可搬記憶媒体の一例を示すブロックダイヤグラムである。
【図１０】  図１０は、図９に示す可搬記憶媒体を利用した鍵登録／データ回復システムの運用を説明するための図である。
【符号の説明】
１０              鍵登録／データ回復システム
１２、１４        利用者用システム
２０              鍵登録装置
３１、３２、３３  鍵保管装置
４０              データ回復装置
【図１】
0003656688.tif 000002
【図２】
0003656688.tif 000003
【図３】
0003656688.tif 000004
【図４】
0003656688.tif 000005
【図５】
0003656688.tif 000006
【図６】
0003656688.tif 000007
【図７】
0003656688.tif 000008
【図８】
0003656688.tif 000009
【図９】
0003656688.tif 000010
【図１０】
0003656688.tif 000011