(57)【特許請求の範囲】
【請求項１】
ネットワークに接続された秘密情報管理装置にて秘密情報を用いた演算処理を実行する際に使用する秘密情報を管理する方法において、公開鍵と秘密鍵のペアを個別に保持する少なくとも２つ以上の耐タンパ性演算装置を用い、
秘密情報を用いた演算処理の実行前に、秘密情報暗号化処理のために、
秘密情報管理装置が秘密情報を生成し、生成した秘密情報を前記少なくとも２つ以上の耐タンパ性演算装置のうちの第１の耐タンパ性演算装置に送り、秘密情報の暗号化依頼を行ない、
前記第１の耐タンパ性演算装置は、これに応答して該演算装置の公開鍵を用いて秘密情報を暗号化した秘密情報を生成し、得られた暗号化済み秘密情報を秘密情報管理装置へ返送し、
秘密情報管理装置は受信した暗号化済み秘密情報を不揮発性メモリに保存した後、暗号化前の前記生成した秘密情報を消去し、
更に、秘密情報管理装置は、不揮発性メモリに保存されている前記暗号化済み秘密情報を前記少なくとも２つ以上の耐タンパ性演算装置のうちの前記第１の耐タンパ性演算装置とは別の耐タンパ性演算装置から取得した該演算装置の公開鍵とともに前記第１の耐タンパ性演算装置に送信し、
前記第１の耐タンパ性演算装置は、受信した暗号化済み秘密情報を該演算装置のみが保持する秘密鍵で復号化し、得られた秘密情報を受信した前記別の耐タンパ性演算装置の公開鍵で暗号化し、得られた暗号化済み秘密情報を秘密情報管理装置に返送し、
秘密情報管理装置は受信した暗号化済み秘密情報を不揮発性メモリに保存する、これら秘密情報暗号化処理のための手順を、前記少なくとも２つ以上の耐タンパ性演算装置の各々に対して繰り返して、前記少なくとも２つ以上の耐タンパ性演算装置の各々の公開鍵で暗号化した秘密情報を保持し、
次に、秘密情報を用いた演算処理を行うために、秘密情報管理装置は、使用する耐タンパ性演算装置に対して、不揮発性メモリから該耐タンパ性演算装置の公開鍵で暗号化された秘密情報を演算対象データとともに送信し、
該耐タンパ性演算装置は受信した暗号化済み秘密情報を該演算装置のみが保持する秘密鍵を用いて復号化し、復号化された秘密情報と演算対象データを用いて演算処理を実行し、演算結果を秘密情報管理装置へ返送することを特徴とする秘密情報管理方法。
【請求項２】
請求項１記載の方法において、秘密情報管理装置がディジタル証明書発行サーバであり、前記少なくとも２つ以上の耐タンパ性演算装置が２つの耐タンパ性演算装置からなり、各耐タンパ性演算装置が第１及び第２のＩＣチップ内臓ＵＳＢトークンであり、秘密情報が証明書署名鍵であり、秘密情報を用いた演算処理が証明書署名鍵を用いた署名処理であることを特徴とする秘密情報管理方法。
【請求項３】
請求項１記載の秘密情報管理方法に使用する秘密情報管理装置であって、秘密情報生成部と、暗号化済み秘密情報保存領域と、秘密情報演算対象データ管理部と、秘密情報管理部とデータ送受信部とを備え、
秘密情報暗号化処理時に、秘密情報管理部が、秘密情報生成部で生成された秘密情報をデータ送受信部を介して前記第１の耐タンパ性演算装置に送信させ、前記第１の耐タンパ性演算装置からデータ送受信部を介して受信される該演算装置の公開鍵で暗号化された秘密情報を暗号化済み秘密情報保存領域に保存させ、
更に、追加の秘密情報暗号化処理時に、秘密情報管理部が、暗号化済み秘密情報保存領域に保存された前記第１の耐タンパ性演算装置の公開鍵で暗号化された秘密情報を前記別のタンパ性演算装置から取得した該演算装置の公開鍵とともにデータ送受信部を介して前記第１の耐タンパ性演算装置に送信し、前記第１の耐タンパ性演算装置から受信される前記別の耐タンパ性演算装置の公開鍵で暗号化された秘密情報を暗号化済み秘密情報保存領域に保存させ、
更に、秘密情報演算処理時に、秘密情報管理部が、前記使用する耐タンパ性演算装置に対し、暗号化済み秘密情報保存領域から該演算装置の公開鍵で暗号化された秘密情報を、秘密情報演算対象データ管理部が管理する演算対象データとともにデータ送受信部を介して送信し、該演算装置からデータ送受信部を介して受信される秘密情報演算処理結果を保存管理することを特徴とする秘密情報管理装置。
【請求項４】
請求項１記載の秘密情報管理方法に使用する耐タンパ性演算装置であって、公開鍵保存領域と、秘密鍵保存領域と、鍵管理部と、秘密情報演算処理部と、データ送受信部とを備え、
秘密情報暗号化処理時に、秘密情報管理装置からデータ送受信部を介して秘密情報を受信すると、秘密情報演算処理部が、公開鍵保存領域から鍵管理部を介して公開鍵を読み込み、秘密情報を該公開鍵で暗号化し、得られた暗号化済み秘密情報をデータ送受信部を介して秘密情報管理装置に返送し、
更に、追加の秘密情報暗号化処理時に、秘密情報管理装置からデータ送受信部を介して自己の公開鍵で暗号化された前記暗号化済み秘密情報と、自己とは別の耐タンパ性演算装置の公開鍵とを受信すると、演算処理部が受信した前記暗号化済み秘密情報を秘密鍵保存領域から読み出した秘密鍵を用いて復号化して秘密情報を抽出し、抽出した秘密情報を受信した前記別の耐タンパ性演算装置の公開鍵を用いて暗号化し、得られた暗号化済み秘密情報を秘密情報管理装置に返送し、
更に、秘密情報演算処理時に、秘密情報管理装置からデータ送受信部介して自己の公開鍵で暗号化された秘密情報と演算対象データを受信すると、演算処理部が受信した暗号化済み秘密情報を秘密鍵保存領域から読み出した秘密鍵を用いて復号化して秘密情報を抽出し、抽出した秘密情報と受信した演算対象データを用いて演算処理を実行し、その結果を秘密情報管理装置に返送することを特徴とする耐タンパ性演算装置。
【請求項５】
請求項３記載の秘密情報管理装置を実現するためのコンピュータプログラムであって、秘密情報生成部と、暗号化済み秘密情報保存領域と、秘密情報演算対象データ管理部と、秘密情報管理部とデータ送受信部とを構成するコンピュータに、
秘密情報暗号化処理時に、秘密情報管理部が、秘密情報生成部で生成された秘密情報をデータ送受信部を介して前記第１の耐タンパ性演算装置に送信させ、前記第１の耐タンパ性演算装置からデータ送受信部を介して受信される該演算装置の公開鍵で暗号化された秘密情報を暗号化済み秘密情報保存領域に保存させるステップを実行させ、
更に、追加の秘密情報暗号化処理時に、秘密情報管理部が、暗号化済み秘密情報保存領域に保存された前記第１の耐タンパ性演算装置の公開鍵で暗号化された秘密情報を前記別のタンパ性演算装置から取得した該演算装置の公開鍵とともにデータ送受信部を介して前記第１の耐タンパ性演算装置に送信し、前記第１の耐タンパ性演算装置から受信される前記別の耐タンパ性演算装置の公開鍵で暗号化された秘密情報を暗号化済み秘密情報保存領域に保存させるステップを実行させ、
更に、秘密情報演算処理時に、秘密情報管理部が、前記使用する耐タンパ性演算装置に対し、暗号化済み秘密情報保存領域から該演算装置の公開鍵で暗号化された秘密情報を、秘密情報演算対象データ管理部が管理する演算対象データとともにデータ送受信部を介して送信し、該演算装置からデータ送受信部を介して受信される秘密情報演算処理結果を保存管理するステップを実行させることを特徴とする秘密情報管理装置を実現するためのコンピュータプログラム。
【請求項６】
請求項４記載の耐タンパ性演算装置を実現するためのコンピュータプログラムであって、公開鍵保存領域と、秘密鍵保存領域と、鍵管理部と、秘密情報演算処理部と、データ送受信部とを構成するコンピュータに、
秘密情報暗号化処理時に、秘密情報管理装置からデータ送受信部を介して秘密情報を受信すると、秘密情報演算処理部が、公開鍵保存領域から鍵管理部を介して公開鍵を読み込み、秘密情報を該公開鍵で暗号化し、得られた暗号化済み秘密情報をデータ送受信部を介して秘密情報管理装置に返送するステップを実行させ、
更に、追加の秘密情報暗号化処理時に、秘密情報管理装置からデータ送受信部を介して自己の公開鍵で暗号化された前記暗号化済み秘密情報と、自己とは別の耐タンパ性演算装置の公開鍵とを受信すると、演算処理部が受信した前記暗号化済み秘密情報を秘密鍵保存領域から読み出した秘密鍵を用いて復号化して秘密情報を抽出し、抽出した秘密情報を受信した前記別の耐タンパ性演算装置の公開鍵を用いて暗号化し、得られた暗号化済み秘密情報を秘密情報管理装置に返送するステップを実行させ、
更に、秘密情報演算処理時に、秘密情報管理装置からデータ送受信部介して自己の公開鍵で暗号化された秘密情報と演算対象データを受信すると、演算処理部が受信した暗号化済み秘密情報を秘密鍵保存領域から読み出した秘密鍵を用いて復号化して秘密情報を抽出し、抽出した秘密情報と受信した演算対象データを用いて演算処理を実行し、その結果を秘密情報管理装置に返送するステップを実行させることを特徴とする耐タンパ性演算装置を実現するためのコンピュータプログラム。
【請求項７】
請求項５又は６記載のコンピュータプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、第三者へ漏洩してはならない秘密情報を利用した暗号処理や認証処理などのサービスをネットワーク上で提供する際に使用する秘密情報の管理方法および装置に関する。
【０００２】
【従来の技術】
ネットワークに接続されている装置上で秘密情報を用いた暗号処理や認証処理などの演算処理を行う際に秘密情報の第三者への漏洩を防ぐ方法として、図７に示すように、フアイアーウォールにより外部ネットワークから秘密情報が保存されている装置自体に第三者が不正アクセスできないようにする方法(例えば非特許文献１参照)や、秘密情報管理装置に耐タンパ装置を接続しこれに秘密情報を格納する方法がある。
【０００３】
【非特許文献１】
「ファイアウォール構築  インターネット・セキュリティ」オライリー・ジャパン発行、１９９６年７月３０日、p.68、ISBN4-900900-03-6
【０００４】
【発明が解決しようとする課題】
上記のフアイアーウォールによる秘密情報の保護方法ではセキュリティホールによりフアイアーウォールが破られた場合、秘密情報管理装置上には秘密情報が暗号化されずに存在しているため秘密情報を取得されてしまい、秘密情報を利用したサービスに関する暗号処理や認証処理を第三者が不正に行うことできる。
【０００５】
一方、耐タンパ装置を用いた保護方法では第三者と秘密情報管理装置運用者が結託を行った場合、秘密情報管理装置運用者が耐タンパ装置を物理的に離れた外部に容易に持ち出すことが可能で、別の環境にて秘密情報を利用したサービスに関する暗号処理や認証処理を第三者が不正に行うことできる。また、耐タンパ装置を用いた保護方法では耐タンパ装置が破損した場合などに秘密情報が失われてしまうことを防ぐためにマスターとなる秘密情報を第三者への漏洩対策がなされている物理的に孤立した環境にて管理する必要があり、環境の構築や秘密情報管理のためのコストが必要になる。
【０００６】
本発明では第三者へ漏洩してはならない秘密情報を利用した暗号処理や認証処理などのサービスをネットワーク上で提供する際の秘密情報の管理と暗号処理や認証処理などの演算処理を安全かつ容易に行う方法を及び装置を提供することにある。
【０００７】
【課題を解決するための手段】
本発明は、上記目的を達成するために、公開鍵と秘密鍵のペアを個別に保持する少なくとも２つ以上の耐タンパ性演算装置を用い、秘密情報を用いた演算処理の実行前に、秘密情報暗号化処理のために、秘密情報管理装置が秘密情報を生成し、生成した秘密情報を前記少なくとも２つ以上の耐タンパ性演算装置のうちの第１の耐タンパ性演算装置に送り、秘密情報の暗号化依頼を行ない、前記第１の耐タンパ性演算装置は、これに応答して該演算装置の公開鍵を用いて秘密情報を暗号化した秘密情報を生成し、得られた暗号化済み秘密情報を秘密情報管理装置へ返送し、秘密情報管理装置は受信した暗号化済み秘密情報を不揮発性メモリに保存した後、暗号化前の前記生成した秘密情報を消去し、更に、秘密情報管理装置は、不揮発性メモリに保存されている前記暗号化済み秘密情報を前記少なくとも２つ以上の耐タンパ性演算装置のうちの前記第１の耐タンパ性演算装置とは別の耐タンパ性演算装置から取得した該演算装置の公開鍵とともに前記第１の耐タンパ性演算装置に送信し、前記第１の耐タンパ性演算装置は、受信した暗号化済み秘密情報を該演算装置のみが保持する秘密鍵で復号化し、得られた秘密情報を受信した前記別の耐タンパ性演算装置の公開鍵で暗号化し、得られた暗号化済み秘密情報を秘密情報管理装置に返送し、秘密情報管理装置は受信した暗号化済み秘密情報を不揮発性メモリに保存する、これら秘密情報暗号化処理のための手順を、前記少なくとも２つ以上の耐タンパ性演算装置の各々に対して繰り返して、前記少なくとも２つ以上の耐タンパ性演算装置の各々の公開鍵で暗号化した秘密情報を保持し、次に、秘密情報を用いた演算処理を行うために、秘密情報管理装置は、使用する耐タンパ性演算装置に対して、不揮発性メモリから該耐タンパ性演算装置の公開鍵で暗号化された秘密情報を演算対象データとともに送信し、該耐タンパ性演算装置は受信した暗号化済み秘密情報を該演算装置のみが保持する秘密鍵を用いて復号化し、復号化された秘密情報と演算対象データを用いて演算処理を実行し、演算結果を秘密情報管理装置へ返送することを特徴とする。
【０００８】
この方法によれば、秘密情報管理装置に保存される秘密情報は暗号化されており、且つこの暗号化された秘密情報を復号化するために必要な鍵は耐タンパ性演算装置内に格納されているので、第三者が不正に秘密情報を取得することは不可能である。また、耐タンパ性演算装置が盗難されたとしても、この装置内には秘密情報は存在しないため、この装置を悪用することはできない。また、耐タンパ性演算装置が破損したとしても、他の耐タンパ性演算装置により秘密情報を用いた演算処理を安全に行うことができる。
【００１０】
この方法によれば、秘密情報管理装置に保存されている第１の耐タンパ装置の公開鍵で暗号化された秘密情報から、第２の耐タンパ装置の公開鍵で暗号化された秘密情報を生成しているので、第１の耐タンパ装置の公開鍵で暗号化された秘密情報の保存後に秘密情報を消去することができる。また、必要に応じ、第３、第４などの耐タンパ性演算装置に対して第２の耐タンパ性演算装置と同様の処理を繰り返してそれらの公開鍵で暗号化された秘密情報を生成し、秘密情報管理装置に保存することにより、必要な数の耐タンパ性演算装置を秘密情報演算用に追加することができる。また、これらの耐タンパ性演算装置の追加は必要なときに行うことができる。
【００１１】
【発明の実施の形態】
本発明の秘密情報管理方法の実施の形態を図１〜図３を参照して説明する。
本発明の秘密情報管理方法では、秘密情報を用いた演算処理の実行前に、秘密情報を耐タンパ性演算装置１１で暗号化して秘密情報管理装置１０に保存する。この秘密情報暗号化処理の手順を図１に示す。
図１に示すように、耐タンパ性演算装置１１は、秘密情報暗号化処理のために、公開鍵Pk1と秘密鍵Sk1のペアを予め生成し、保持している。秘密情報管理装置１０は秘密情報Ｉを生成し、生成した秘密情報Ｉを秘密情報暗号化依頼として耐タンパ性演算装置１１に送信する。
秘密情報暗号化依頼を受けた耐タンパ性演算装置１１は、該装置が保持する公開鍵Pk1を用いて受信した秘密情報Ｉを暗号化し、得られた暗号化済み秘密情報encPk1(I)を秘密情報管理装置１０に返送する。
秘密情報管理装置１０は、受信した暗号化済み秘密情報encPk1(I)を不揮発性メモリのような保存領域に保存した後、秘密情報Ｉを消去する。
【００１２】
本発明の秘密情報管理方法では、更に耐タンパ性演算装置１２を追加するために、秘密情報を該耐タンパ性演算装置１２の公開鍵で暗号化して秘密方法管理装置に保存する。この追加の秘密情報暗号化処理の手順を図２に示す。
図２に示すように、耐タンパ性演算装置１２も、公開鍵Pk2と秘密鍵Sk2のペアを予め生成し、保持している。
秘密情報管理装置１０は、耐タンパ性演算装置１２から該装置の公開鍵Pk2を取得するとともに、不揮発性メモリに保存されている暗号化済み秘密情報encPk1(I)を読み出し、取得した公開鍵Pk2と読み出した暗号化済み秘密情報encPk1(I)を耐タンパ性演算装置１１に送信する。
耐タンパ性演算装置１１は、受信した該演算装置の公開鍵Pk1で暗号化された秘密情報encPk1(I)を該演算装置のみが持つ秘密鍵Sk1を用いて復号化して秘密情報Ｉを抽出し（I＝decSk1(encPk1(I))）、次いで抽出した秘密情報Ｉを受信した耐タンパ性演算装置１２の公開鍵Pk2を用いて暗号化し、得られた暗号化済み秘密情報encPk2(I)を秘密情報管理装置１０に返送する。
秘密情報管理装置１０は受信した暗号化済み秘密情報encPk2(I)を耐タンパ性演算装置１２における秘密情報演算処理のために不揮発性メモリに保存する。
【００１３】
本発明の秘密情報管理方法では、次に、演算対象データａに対し秘密情報Ｉを用いた演算処理を実行する。この秘密情報演算処理の手順を図３に示す。
図３に示すように、秘密情報管理装置１０は演算対象データａを生成するとともに、不揮発性メモリから暗号化済み秘密情報encPk1(I)を読み出し、耐タンパ性演算装置１１に秘密情報演算依頼として送信する。
耐タンパ性演算装置１１は、受信した該演算装置の公開鍵Pk1で暗号化された秘密情報encPk1(I)を該演算装置のみが持つ秘密鍵Sk1で復号化して秘密情報Ｉを抽出する（I＝decSk1(encPk1(I))）。次いで秘密情報Ｉと演算対象データａを用いて演算処理を実行し、演算処理結果f(I,a)を秘密情報演算応答として秘密情報管理装置１０に返送する。秘密情報管理装置１０は受信した演算処理結果f(I,a)を保存管理する。
【００１４】
この実施の形態では、使用中の第１の耐タンパ性演算装置１１が破損した場合には、第２の耐タンパ性演算装置１２を用いて秘密情報演算処理を行うことができる。また、負荷分散のために第１および第２の耐タンパ性演算装置１１及び１２を同時に使用し、多数の秘密情報演算処理を第１および第２の耐タンパ性演算装置で分散して行うこともできる。
【００１５】
また、この実施の形態では、秘密情報管理装置１０に保存されている第１の耐タンパ性演算装置１１の公開鍵で暗号化された秘密情報から、第２の耐タンパ性演算装置１２の公開鍵で暗号化された秘密情報を生成しているので、第１の耐タンパ性演算装置１１の公開鍵で暗号化された秘密情報の保存後に秘密情報を消去することができる。また、必要に応じ、第３、第４などの耐タンパ性演算装置に対して第２の耐タンパ性演算装置と同様の処理を繰り返してそれらの公開鍵で暗号化された秘密情報を生成し、秘密情報管理装置に保存することにより、必要な数の耐タンパ性演算装置を秘密情報演算用に追加することができる。また、秘密情報管理装置に保存されている第２の耐タンパ性演算装置１２の公開鍵で暗号化された秘密情報から、第３の演算装置の公開鍵で暗号化された秘密情報を生成することもできる。また、これらの耐タンパ性演算装置の追加は必要なときに行うことができる。
【００１６】
図４は図１〜図３に示す本発明の秘密情報管理方法に使用する秘密情報管理装置１０の構成を示す。
本発明で使用する秘密情報管理装置は、秘密情報生成部１０１と、暗号化済み秘密情報保存領域(不揮発性メモリ)１０２と、秘密情報演算対象データ管理部１０３と、秘密情報管理部１０４とデータ送受信部１０５とを備え、秘密情報暗号化処理時に、秘密情報管理部１０４が、秘密情報生成部１０１で生成された秘密情報Ｉをデータ送受信部１０５を介して第１の耐タンパ性演算装置に送信させ、第１の耐タンパ性演算装置１１からデータ送受信部１０５を介して受信される該演算装置の公開鍵Pk1で暗号化された秘密情報encPk1(I)を暗号化済み秘密情報保存領域１０２に保存させる。
【００１７】
更に、追加の秘密情報暗号化処理時に、秘密情報管理部１０４が、保存領域１０２に保存された第１の耐タンパ性演算装置の公開鍵で暗号化された秘密情報encPk1(I)を第２のタンパ性演算装置から取得した該演算装置の公開鍵Pk2とともにデータ送受信部１０５を介して第１の耐タンパ性演算装置１１に送信し、第１の耐タンパ性演算装置１１から受信される第２の耐タンパ性演算装置の公開鍵で暗号化された秘密情報encPk2(I)を暗号化済み秘密情報保存領域１０２に保存させる。
【００１８】
更に、秘密情報演算処理時に、秘密情報管理部１０４が、第１の耐タンパ性演算装置１１に対し、暗号化済み秘密情報保存領域１０２から該演算装置の公開鍵で暗号化された秘密情報encPk1(I)を、秘密情報演算対象データ管理部１０３が管理する演算対象データａとともにデータ送受信部１０５を介して送信し、該演算装置１１からデータ送受信部１０５を介して受信される秘密情報演算処理結果f(I,a)を保存管理する。
【００１９】
図５は図１〜図３に示す本発明の秘密情報管理方法に使用する耐タンパ性演算装置１１を示す。なお、耐タンパ性演算装置１２も耐タンパ性演算装置１と同一の構成である。
本発明で使用する耐タンパ性演算装置１１は、公開鍵保存領域１１１と、秘密鍵保存領域１１２と、鍵管理部１１３と、秘密情報演算処理部１１４と、データ送受信部１１５とを備え、秘密情報暗号化処理時に、秘密情報管理装置１０からデータ送受信部１１５を介して秘密情報Ｉを受信すると、秘密情報演算処理部１１４が、公開鍵保存領域１１１から鍵管理部１１３を介して公開鍵Pk1を読み込み、秘密情報Ｉを該公開鍵Pk1で暗号化し、得られた暗号化済み秘密情報encPk1(I)をデータ送受信部１１５を介して秘密情報管理装置１０に返送する。
【００２０】
更に、追加の秘密情報暗号化処理時に、秘密情報管理装置１０から送受信部１１５を介して当該耐タンパ性演算装置１１の公開鍵で暗号化された前記暗号化済み秘密情報encPk1(I)と第２の耐タンパ性演算装置の公開鍵Pk2を受信すると、演算処理部１１４が受信した前記暗号化済み秘密情報encPk1(I)を秘密鍵保存領域１１２から読み出した秘密鍵Sk1を用いて復号化して秘密情報Ｉを抽出し、抽出した秘密情報Ｉを受信した第２の耐タンパ性演算装置の公開鍵Pk2を用いて暗号化し、得られた暗号化済み秘密情報encPk2(I)を秘密情報管理装置１０に返送する。
【００２１】
更に、秘密情報演算処理時に、秘密情報管理装置からデータ送受信部１１５を介して当該耐タンパ性演算装置１１の公開鍵で暗号化された秘密情報encPk1(I)と演算対象データａを受信すると、演算処理部１１４が受信した暗号化済み秘密情報encPk1(I)を秘密鍵保存領域１１２から読み出した秘密鍵Sk1を用いて復号化して秘密情報Ｉを抽出し、抽出した秘密情報Ｉと受信した演算対象データａを用いて演算処理を実行し、その結果を秘密情報管理装置１０に返送させる。
【００２２】
【実施例】
図６は本発明の秘密情報管理方法をインターネットを介した証明書発行サービスに適用した実施例の手順を示す。本例では、秘密情報管理装置１０がディジタル証明書発行サーバであり、耐タンパ性演算装置１１及び１２がＩＣチップ内臓ＵＳＢトークン１１及び１２であり、保護すべき秘密情報が証明書署名鍵SkTである。
本実施例では、証明書署名鍵SkTの保護管理のために、ディジタル証明書発行サービスの実行前に、ＵＳＢトークン１１及び１２はそれぞれ公開鍵Pk1と秘密鍵Sk1のペア及び公開鍵Pk2と秘密鍵Sk2のペアを予め生成し、保持している。ディジタル証明書発行サーバ１０は証明書署名鍵SkTを生成し、ＵＳＢトークン１１に送る。
署名鍵SkTを受信したＵＳＢトークン１はその公開鍵Pk1を用いて署名鍵SkTの暗号化を行い、得られた暗号化済み署名鍵encPk1(SkT)をディジタル署名発行サーバ１０に返却する。
EncPk1(SkT)を受信したディジタル証明書発行サーバ１０はこれを保存する。
【００２３】
続いてディジタル証明書発行サーバ１０はＵＳＢトークン１２からその公開鍵Pk2を取得し、Pk2とencPk1(SkT)をＵＳＢトークン１１に送信する。
ＵＳＢトークン１は受け取ったencPk1(SkT)をその秘密鍵Sk1で復号化して署名鍵SkTを抽出し(SkT=decSk1(encPk1(SkT)))、抽出したSkTを受け取ったＵＳＢトークン１２の公開鍵Pk2を用いて暗号化を行い、得られた暗号化済み署名鍵encPk2(SkT)をディジタル証明書発行サーバ１０に返却する。
encPk2(SkT)を受信したディジタル証明書発行サーバ１０はこれを保存する。
【００２４】
次に、証明書発行サービスの実行中の処理を説明する。
ディジタル証明書発行サーバ１０は、利用者から証明書発行依頼として利用者名ａを受信すると、保存されている符号化済み署名鍵encPk1(SkT)と利用者名ａをＵＳＢトークン１１に対して送信しディジタル署名生成依頼を行う。
ＵＳＢトークン１１はその秘密鍵Sk1を用いてencPk1(SkT)を復号化してから署名鍵SkTを抽出し(SkT=decSk1(encPk1(SkT)))、抽出したSkTを用いて署名対象データａに対するディジタル署名signSkT(a)を生成し、ディジタル証明書発行サーバ１０に返却する。ディジタル証明書発行サーバ１０はディジタル署名signSkT(a)と署名対象データａを使用し証明書Caを作成し利用者に送付する。
【００２５】
本例では、負荷分散のためにＵＳＢトークン１１と同時にＵＳＢトークン１２も使用する。この場合には、ディジタル証明書発行サーバ１０は、次の利用者から証明書発行依頼として利用者名bを受信すると、保存されている符号化済み署名鍵encPk2(SkT)と利用者名ｂをＵＳＢトークン１２に対して送信し、ＵＳＢトークン１２が署名対象データｂに対するディジタル署名を生成する。
【００２６】
以上、本発明の秘密情報管理方法の処理手順及び該方法に使用する秘密情報管理装置及び耐タンパ性演算装置の各部の機能について説明したが、これらの手順又は機能はコンピュータによって実行又は実現することができ、本発明はこれらの処理手順又は機能を実行又は実現するためのコンピュータプログラム及び該プログラムを記録した記録媒体も本発明の範囲に含むものである。
【００２７】
【発明の効果】
以上で説明した通り、本発明によれば第三者へ漏洩してはならない秘密情報を利用したサービスをネットワーク上で提供する際に使用する秘密情報を秘密情報管理装置に不正アクセスされたとしても第三者へ秘密情報が漏洩することなくかつ、秘密情報管理装置運用者が秘密情報を持ち出すことができず、秘密情報を安全に管理することが可能である。かつ、秘密情報の管理も容易になる。
【図面の簡単な説明】
【図１】  本発明の秘密情報管理方法に用いる秘密情報管理装置の構成を示す図である。
【図２】  本発明の秘密情報管理方法に用いる耐タンパ性演算装置の構成を示す図である。
【図３】  本発明の秘密情報管理方法における秘密情報暗号化処理の手順を示す図である。
【図４】  本発明の秘密情報管理方法における追加の秘密情報暗号化処理の手順を示す図である。
【図５】  本発明の秘密情報管理方法における秘密情報暗号化処理の手順を示す図である。
【図６】  本発明の秘密情報管理方法の実施例の処理手順を示す図である。
【図７】  従来の秘密情報管理方法を示す図である。
【符号の説明】
１０  秘密情報管理装置
１０１  秘密情報性西部
１０２  暗号化済み秘密情報保存領域
１０３  データ送受信部
１０４  秘密情報管理部
１０５  秘密情報演算対象データ管理部
１１、１２  耐タンパ性演算装置
１１１  公開鍵保存領域
１１２  秘密鍵保存領域
１１３  データ送受信部
１１４  鍵管理部
１１５  秘密情報演算処理部
【図１】
0004098144.tif 000002
【図２】
0004098144.tif 000003
【図３】
0004098144.tif 000004
【図４】
0004098144.tif 000005
【図５】
0004098144.tif 000006
【図６】
0004098144.tif 000007
【図７】
0004098144.tif 000008