(57)【要約】【課題】暗号鍵を事前に管理者（第三者機関）に教えることなく、かつ演算機能を有する記憶媒体を紛失した際にリカバリする暗号鍵を限定したものとすることができる機密情報管理システムを提供する。【解決手段】第三者機関STTPとＩＣカードICCとユーザPCとを用いる。第三者機関STTPは、第１の鍵生成補助情報Ｒａiｂi（mod ni）及びユーザの識別子情報Ｒdi（mod ni）を記憶する。ユーザ演算機PCの仮想演算機モニタVMMは、ＩＣカードICCが接続されていないときに、第三者機関に第２のリカバリ補助情報（ａiｂi）e（mod n）を送って得た第３のリカバリ補助情報（Ｒdi）ａiｂi（mod ni）と、パスワードのハッシュ値ｈと、乱数ｒiとからディスク暗号鍵ｓｋi=Ｒａiｂiｈ（pwi）di（mod ni）をリカバリする。【選択図】図１
2009200990.tif 000002
【特許請求の範囲】
【請求項１】
ディスク暗号鍵の生成及びリカバリに必要な第１の情報を第１の記憶部に記憶した演算機能を備えた信頼できる第三者機関と、ディスク暗号鍵の生成に必要な第２の情報を第２の記憶部に記憶した演算機能を備えた記憶媒体と、前記ディスク暗号鍵の生成及びリカバリに必要な第３の情報を第３の記憶部に記憶したユーザ演算機とを備え、
前記ユーザ演算機が、前記ディスク暗号鍵により前記ユーザ演算機中の前記第３の記憶部を構成するハード・ディスク上のバイトデータを暗号化し、前記ディスク暗号鍵により前記ユーザ演算機の暗号化されたオペレーティング・システム及び前記バイトデータを復号化する機密情報管理システムにおけるディスク暗号鍵の生成及びリカバリ方法であって、
前記ディスク暗号鍵ｓｋiとして、ＲＳＡ暗号により作成されたＲａiｂiｈ（pwi）di（mod ni）を用い、但し、Ｒは前記第三者機関によって生成される公開乱数であり、ａiは前記ユーザ演算機によって生成されるランダム値であり、ｂiは前記第三者機関によって生成されるランダム値であり、ｈ（pwi）は前記演算機能を有する記憶媒体に記憶されたパスワードpwiのハッシュ値であり、ｄiは前記演算機能を有する記憶媒体に記憶されたユーザのＲＳＡ鍵（ｅi，ｄi，ｎi）中の秘密鍵であり、ｎiは前記ユーザのＲＳＡ鍵（ｅi，ｄi，ｎi）中の公開鍵の一部であり、
前記第三者機関の前記第１の記憶部に、前記第１の情報として少なくともユーザの識別子情報Ｒdi（mod ni）を記憶しておき、
前記演算機能を有する記憶媒体の前記第２の記憶部に、前記第２の情報として少なくとも前記ＲＳＡ鍵（ｅi，ｄi，ｎi）と前記パスワードpwiとを記憶しておき、
前記ユーザ演算機の前記第３の記憶部に、前記第３の情報として少なくとも鍵生成情報Ｒａiｂi（mod ni）及びリカバリ情報（ａiｂi）e（mod n）を記憶しておき、
前記ディスク暗号鍵ｓｋiを生成する際には、前記ユーザ演算機により、前記ハッシュ値ｈ（pwi）と乱数ｒiとを生成してこれらの値ｈ（pwi）及びｒiと前記鍵生成情報Ｒａiｂi（mod ni）とを用いてＲＳＡブラインド署名に必要なチャレンジｃ＝［ｒieiＲａiｂiｈ（pwi）（mod ni）］を生成し、前記演算機能を有する記憶媒体により、前記チャレンジｃに対してＲＳＡブラインド署名を行って鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）を生成し、前記ユーザ演算機により、前記鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）から前記ディスク暗号鍵ｓｋiを生成し、
前記ディスク暗号鍵ｓｋiをリカバリする際には、前記第三者機関に前記ユーザ演算機から前記リカバリ補助情報（ａiｂi）e（mod n）を送信し、前記第三者機関が前記リカバリ補助情報（ａiｂi）e（mod n）と前記ユーザの識別子情報Ｒdi（mod ni）とに基づいて、前記ディスク暗号鍵のリカバリに必要な新たなリカバリ情報（Ｒdi）ａiｂi（mod ni）を生成し、前記ユーザ演算機が、前記新たなリカバリ補助情報（Ｒdi）ａiｂi（mod ni）と前記ハッシュ値ｈとから前記ディスク暗号鍵ｓｋiをリカバリすることを特徴とするディスク暗号鍵の生成及びリカバリ方法。
【請求項２】
ディスク暗号鍵の生成及びリカバリに必要な第１の情報を第１の記憶部に記憶した演算機能を備えた信頼できる第三者機関と、ディスク暗号鍵の生成に必要な第２の情報を第２の記憶部に記憶した演算機能を備えた記憶媒体と、前記ディスク暗号鍵の生成及びリカバリに必要な第３の情報を第３の記憶部に記憶したユーザ演算機とを備え、
前記ユーザ演算機が、前記ディスク暗号鍵により前記ユーザ演算機中の前記第３の記憶部を構成するハード・ディスク上のバイトデータを暗号化し、前記ディスク暗号鍵により前記ユーザ演算機の暗号化されたオペレーティング・システム及び前記バイトデータを復号化する機密情報管理システムであって、
前記ディスク暗号鍵ｓｋiとして、ＲＳＡ暗号により作成されたＲａiｂiｈ（pwi）di（mod ni）を用い、但し、前記第三者機関によって生成されるＲは公開乱数であり、ａiは前記ユーザ演算機によって生成されるランダム値であり、ｂiは前記第三者機関によって生成されるランダム値であり、ｈ（pwi）は前記演算機能を有する記憶媒体に記憶されたパスワードpwiのハッシュ値であり、ｄiは前記演算機能を有する記憶媒体に記憶されたユーザのＲＳＡ鍵（ｅi，ｄi，ｎi）中の秘密鍵であり、ｎiは前記ユーザのＲＳＡ鍵（ｅi，ｄi，ｎi）中の公開鍵の一部であり、
前記第三者機関の前記第１の記憶部に、前記第１の情報として少なくともユーザの識別子情報Ｒdi（mod ni）が記憶されており、
前記演算機能を有する記憶媒体の前記第２の記憶部に、前記第２の情報として少なくとも前記ＲＳＡ鍵（ｅi，ｄi，ｎi）と前記パスワードpwiとが記憶されており、
前記ユーザ演算機の前記第３の記憶部に、前記第３の情報として少なくとも鍵生成情報Ｒａiｂi（mod ni）及びリカバリ情報（ａiｂi）e（mod n）が記憶されており、
前記ディスク暗号鍵ｓｋiを生成する際には、前記ユーザ演算機が、前記ハッシュ値ｈ（pwi）と乱数ｒiとを生成してこれらの値ｈ（pwi）及びｒiと前記鍵生成情報Ｒａiｂi（mod ni）とを用いてＲＳＡブラインド署名に必要なチャレンジｃ＝［ｒieiＲａiｂiｈ（pwi）（mod ni）］を生成し、前記演算機能を有する記憶媒体が、前記チャレンジｃに対してＲＳＡブラインド署名を行って鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）を生成し、さらに前記ユーザ演算機が前記鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）から前記ディスク暗号鍵ｓｋiを生成し、
また前記ディスク暗号鍵をリカバリする際には、前記第三者機関に前記ユーザ演算機が前記リカバリ補助情報（ａiｂi）e（mod n）を送信し、前記第三者機関が前記リカバリ補助情報（ａiｂi）e（mod n）と前記ユーザの識別子情報Ｒdi（mod ni）とに基づいて、前記ディスク暗号鍵のリカバリに必要な新たなリカバリ情報（Ｒdi）ａiｂi（mod ni）を生成し、前記ユーザ演算機が、前記新たなリカバリ補助情報（Ｒdi）ａiｂi（mod ni）と前記ハッシュ値ｈとから前記ディスク暗号鍵をリカバリすることを特徴とする機密情報管理システム。
【請求項３】
ＲＳＡ暗号に用いる自分自身のＲＳＡ鍵（ｅ，ｄ，ｎ）の生成、自分の公開鍵証明書CERTの生成、ユーザの公開鍵証明書certiの生成、公開乱数Ｒの生成及びディスク暗号鍵ｓｋiの生成に必要なランダム値ｂiの生成、該ランダム値ｂiを用いた第１のリカバリ補助情報ｂie（mod n）の生成、ディスク暗号鍵ｓｋiの生成に必要な第１の鍵生成補助情報Ｒａiｂi（mod ni）の生成を行う第１の演算部と、前記ＲＳＡ鍵（ｅ，ｄ，ｎ）、前記公開鍵証明書CERT、前記公開乱数Ｒ、前記ユーザの公開鍵証明書certi及び該ユーザの公開鍵証明書certiと関連付けられたユーザの識別子情報Ｒdi（mod ni）を記憶する第１の記憶部とを備えた信頼できる第三者機関と、
ＲＳＡ暗号に用いるユーザのＲＳＡ鍵（ｅi，ｄi，ｎi）の生成、前記ユーザのパスワードpwiの生成または変更、前記第三者機関から与えられた前記公開乱数Ｒに前記ＲＳＡ鍵の秘密鍵ｄi及びｎiを用いてＲＳＡ署名することにより前記ユーザの識別子情報Ｒdi（mod ni）の生成を行う第２の演算部と、前記ユーザのＲＳＡ鍵（ｅi，ｄi，ｎi）、前記ユーザの公開鍵証明書certi及び前記パスワードpwiを記憶する第２の記憶部とを備えて、前記ユーザが管理する演算機能を有する記憶媒体と、
オペレーティング・システムが起動する前から動作可能な機能を有して、前記ディスク暗号鍵生成に必要なランダム値ａiの生成、前記ランダム値ａiを用いたディスク暗号鍵ｓｋiの生成に必要な第２の鍵生成補助情報Ｒａi（mod ni）の生成、前記パスワードpwiのハッシュ値ｈ（pwi）を求め且つ乱数ｒiを生成してこれらの値ｈ（pwi）及びｒiと、前記第１の鍵生成補助情報Ｒａiｂi（mod ni）とを用いたＲＳＡブラインド署名に必要なチャレンジｃ＝［ｒieiＲａiｂiｈ（pwi）（mod ni）］の生成、前記第三者機関の前記第１の演算部が生成した前記第１のリカバリ補助情報ｂie（mod n）と前記ランダム値ａiとを用いた前記ディスク暗号鍵のリカバリに必要な第２のリカバリ補助情報（ａiｂi）e（mod n）の生成、前記ディスク暗号鍵ｓｋiの生成及び前記ディスク暗号鍵ｓｋiを用いた暗号化されたオペレーティング・システムの復号化を行い、前記ディスク暗号鍵ｓｋiを用いた前記ハード・ディスク上のバイトデータの暗号化を行う第３の演算部と、前記暗号化されたオペレーティング・システム及び機密情報、前記公開鍵証明書CERT、前記第１の鍵生成補助情報Ｒａiｂi（mod ni）並びに前記第２のリカバリ補助情報（ａiｂi）e（mod n）を記憶するハード・ディスクから成る第３の記憶部とを備え、前記第３の演算部により、暗号化された前記オペレーティング・システムを前記ディスク暗号鍵ｓｋiを用いて復号しながら前記オペレーティング・システムを起動するユーザ演算機とを備え、
前記第三者機関の前記第１の演算部は、前記ランダム値ｂiと前記第２の鍵生成補助情報Ｒａi（mod ni）とを用いて前記ディスク暗号鍵ｓｋiの生成に必要な前記第１の鍵生成補助情報Ｒａiｂi（mod ni）を生成し、前記ユーザ演算機の前記第３の演算部から前記第２のリカバリ補助情報（ａiｂi）e（mod n）が入力されると、該第２のリカバリ補助情報（ａiｂi）e（mod n）と前記ユーザの識別子情報Ｒdi（mod ni）とに基づいて、前記ディスク暗号鍵のリカバリに必要な第３のリカバリ補助情報（Ｒdi）ａiｂi（mod ni）を生成し、
前記演算機能を備えた記憶媒体の前記第２の演算部は、前記ユーザ演算機に入力されたパスワードが前記第２の記憶部に記憶された前記パスワードpwiと一致するか否かにより前記ユーザ演算機の認証を行い、認証された前記ユーザ演算機の前記第３の演算部が生成した前記チャレンジｃ＝［ｒieiＲａiｂiｈ（pwi）（mod ni）］に対してＲＳＡブラインド署名を行い、
前記ユーザ演算機の前記第３の演算部は、前記演算機能を備えた記憶媒体が接続されているときに、前記第三者機関の公開鍵証明書CERTと前記ユーザの公開鍵証明書certiを用いて前記ユーザの前記ＲＳＡ鍵中の公開鍵（ｅi，ｎi）を検証したときには、前記第３の演算部により前記チャレンジに対してブラインド署名されて得られた第３の鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）から前記ブラインド署名を検証し、検証された前記第３の鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）から前記ディスク暗号鍵ｓｋi=Ｒａiｂiｈ（pwi）di（mod ni）を生成し、
前記ユーザ演算機の前記第３の演算部は、前記演算機能を備えた記憶媒体が接続されていないときに、前記第三者機関に前記第２のリカバリ補助情報（ａiｂi）e（mod n）を送って得た前記第３のリカバリ補助情報（Ｒdi）ａiｂi（mod ni）と前記ハッシュ値ｈ（pwi）とから前記ディスク暗号鍵ｓｋi=Ｒａiｂiｈ（pwi）di（mod ni）をリカバリすることを特徴とする機密情報管理システム。
【請求項４】
前記第三者機関の前記公開鍵証明書CERTには、前記第１の演算部により生成された前記ユーザからの申請に基づいて失効したユーザの公開鍵証明書をリスト化した証明書失効リストCRLが付随しており、
前記ユーザ演算機の前記第３の記憶部は、前記第三者機関から得た前記証明書失効リストCRLを記憶しており、
前記ユーザ演算機の前記第３の演算部は、前記ユーザの公開鍵証明書certiが前記証明書失効リストCRLに含まれているときには、前記オペレーティング・システムの起動を行わないことを特徴とする請求項３に記載の機密情報管理システム。
【請求項５】
前記ユーザ演算機の前記第３の演算部は、起動されるたびに、前記証明書失効リストCRLを更新する請求項４に記載の機密情報管理システム。
【請求項６】
前記ユーザ演算機の前記第３の演算部は、前記ユーザ演算機に入力されたパスワードが前記第２の記憶部に記憶された前記パスワードpwiと一致しないことを前記演算機能を備えた記憶媒体の前記第２の演算部が判定したとき、前記第三者機関の公開鍵証明書CERTと前記ユーザの公開鍵証明書certiを用いて前記ユーザの前記ＲＳＡ鍵中の公開鍵（ｅi，ｎi）の検証が成功しなかったとき、前記第２の演算部により前記チャレンジに対してブラインド署名されて得られた第３の鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）から前記ブラインド署名を検証できなかったときに、前記オペレーティング・システムの起動を行わないことを特徴とする請求項３に記載の機密情報管理システム。
【請求項７】
前記第三者機関は、同じ前記ユーザ演算機の前記第３の演算部から予め定めた回数以上前記第２のリカバリ補助情報（ａiｂi）e（mod n）が入力されると、前記第３のリカバリ補助情報（Ｒdi）ａiｂi（mod ni）を前記ユーザ演算機に与えることを停止する請求項３に記載の機密情報管理システム。
【請求項８】
前記第三者機関の前記第１の演算部は、前記演算機能を備えた記憶媒体に前記ユーザの初期パスワードを与える機能を有している請求項３に記載の機密情報管理システム。
【請求項９】
前記演算機能を有する記憶媒体の前記第２の演算部は、前記ユーザ演算機から予め定めた回数以上第２の記憶部に記憶しているパスワードと異なるパスワードが送信されると、前記ユーザ演算機の認証を停止する請求項３に記載の機密情報管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＳＡ暗号を用いたディスク暗号鍵の生成及びリカバリ方法並びに機密情報管理システムに関するものである。
【背景技術】
【０００２】
近年、情報漏洩が深刻な問題になっている。一方でユーザのディスクには機密情報が多く含まれる可能性がある。このため、ディスクに保存されている情報の暗号化を行い、その暗号鍵を厳密に保管することが重要になっている。
【０００３】
ディスクの暗号化は、Full disk encryptionとFilesystem-level encryptionの２つに分類できる。Full disk encryptionがディスク上の全てのバイトデータを暗号化／復号を行うのに対し、Filesystem-level encryptionはファイルやディレクトリを認識してその単位で暗号化／復号を行う。Full disk encryptionでは、Windows（登録商標） Vista（登録商標）のBitLocker（登録商標）が有名である。Full disk encryptionについては、Niels Ferguson著の "AES-CBC +Elephant diffuser: A Disk Encryption Algorithm for Windows（登録商標） Vista（登録商標）"、（ Microsoft Corp．2006）に記載されている。Filesystem-level encryptionでは、Secure File System[J．P．Hughes and C．J．Feist、 "Architecture of the Secure File System"、 Proceedings of the Eighteenth IEEE Symposium on Mass Storage Systems and Technologies (MSS'01)、 2001］が提案されている。
【０００４】
また暗号鍵をスマートカード（登録商標）やUSBキーなどのトークンと呼ばれる演算機能を有する記憶媒体に保管することによって、ハード・ディスクのセキュリティを高める技術については、非特許文献１乃至５に記載されている。これら非特許文献に記載の技術では、認証のために共有する秘密情報をスマートカード内に格納しており、その秘密情報はパスワードや離散対数問題で保護されている。また、スマートカードと仮想演算機モニタ（VMM）を組み合わせることによりセキュリティの強化を図っている技術もある（非特許文献６）。さらにキーリカバリに関する技術も数多く提案されている（非特許文献７乃至１１）。これらの技術は、キーリカバリを、Key escrow、Trusted third party（信頼できる第三者機関）、Commercial key backup、Key encapsulationの４つに分類している。非特許文献８及び９に示されたKey encapsulationのみが、管理者に鍵を知られないようにしている。。しかし、この技術で、管理者が鍵自体を知らないので、リカバリされる鍵が本当に依頼してきたユーザの鍵であるかを確認するのが難しい。これは、悪意あるユーザによって意図しない暗号鍵がリカバリされうることを意味する。鍵に証明書を付ける方式も考えられるが、その場合は鍵が管理者に知られてしまう。また、これらの他に、スマートカードを用いたキーリカバリもいくつか出されている（非特許文献１０及び１１）。パスワードによる鍵の保管に関する論文では、ブラインド署名を応用した安全な秘密鍵管理に関する技術も提案されている（非特許文献１２）。この技術では、秘密鍵は、パスワードで暗号化されているデータに対するブラインド署名自体であり、ローカルディスクに保存される。この二重の暗号化により、パスワードへのBrute Forceアタックを防ぐことができる。
【０００５】
公開暗号鍵に関する周知技術としては、ＲＳＡ暗号で用いるＲＳＡ鍵、ＲＳＡブラインド署名が知られている（非特許文献１３）。ＲＳＡ暗号におけるＲＳＡ署名を用いた相手認証方式については、非特許文献１３の第１５６頁に記載の「デジタル署名を利用した相手認証方式」の説明と第１７５頁の「RSA署名（11.3節）」の説明に記載されている。またブラインドＲＳＡ署名については、非特許文献１３の第１８４頁に記載されている。
【０００６】
また特許第３０４３７６２号公報（特許文献１）には、ＲＳＡ暗号に用いる秘密鍵及び公開鍵を生成する鍵生成装置が開示されている。また特公平７−１１８７０９号公報（特許文献２）にも公開鍵暗号としてＲＳＡ暗号を用いる技術が開示されている。
【０００７】
さらに「キーエスクロー」と「鍵供託」に関する発明としては、特許文献２（特開平１０−２００５２０号公報「鍵管理方法及びシステム」）と特許文献３（特許第３３２１４２８号「非寄託型鍵回復方法、その装置及びプログラム」）がある。
【０００８】
また特許文献４（特開２００４−２３１２２号公報「ＩＣカードを利用した暗号システム」）には、演算機能を有する記憶媒体を用いる暗号システムが開示されている。
【非特許文献１】W． C． Ku and S． M． Chen、 "Weakness and improve- ments of an efficient password based remote user authentication scheme using smart cards"、 IEEE Trans． on Consumer Electronics、 Vol．50(1)、 2004．
【非特許文献２】C． C． Chang、 J． S． Lee、 "A Smart-Card-Based Remote Authentication Scheme"、 Proceedings of the Second International Conference on Embedded Software and Systems (ICESS'05)、 2005．
【非特許文献３】E． J． Yoon and K． Y． Yoo、 "More Efficient and Secure Remote User Authentication Scheme Using Smart Cards"、 Proceedings of the 11th International Conference on Parallel and Distributed Systems (ICPADS'05)、 2005．
【非特許文献４】M． S． Hwang and L． H． Li、 "A New Remote User Authentication Scheme Using Smart Cards"、 IEEE Trans． on Consumer Electronics、 Vol．46(1)、 2000．
【非特許文献５】H． M． Sun、 "An Efficient Remote User Authenti- cation Scheme Using Smart Cards"、 IEEE Trans． on Consumer Electronics、 Vol．46(4)、 2000．
【非特許文献６】Y． Wang and P． Dasgupta、 "Remote User Authen- tication Using VMM-based Security Manager"、 http://cactus．eas．asu．edu/Partha/Papers-PDF/2006/ authentication_yw．pdf、 2006．
【非特許文献７】S． Lim、 S． Kang and J． Sohn、 "Modeling of Multiple Agent based Cryptographic Key Recovery Protocol"、 Proceedings of the 19th Annual Computer Security Applications Conference (ASAC 2003)、 2003．
【非特許文献８】M． J． Markowitz and R． S． Schlafly、 "Key Recovery in SecretAgent"、 Digital Signature、 1997．
【非特許文献９】R． Gennaro、 et． al．、 "Secure Key Recovery"、 IBM Thomas J． Watson Research Center、 1999．
【非特許文献１０】K． Narimani、 G． B． Agnew、 "Key Management and Mutual Authentication for Multiple Field Records"、 Proceedings of the Third International Conference on Information Technology: New Generations (ITNG'06)、 2006．
【非特許文献１１】M． Blaze、 "Key Management in an Encrypting File System"、 Proceedings of the USENIX Summer 1994 Technical Conference、 1994．
【非特許文献１２】M． Kwon、 Y． Cho、 "Protecting Secret Keys with Blind Computation Service"、 The 3rd International Work- shop on Information Security Applications、 2002．
【非特許文献１３】岡本龍明及び山本博資著の「現代暗号」（産業図書）の第１５６頁、第１７５頁及び第１８４頁
【特許文献１】特許第３０４３７６２号公報
【特許文献２】特開平１０−２００５２０号公報
【特許文献３】特許第３３２１４２８号公報
【特許文献４】特開２００４−２３１２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来のＩＣカード等の演算機能を有する記憶媒体を用いる暗号鍵技術では、トークンの紛失に備えて暗号鍵のリカバリまでを考慮する必要がある。しかしながら、暗号鍵が事前に管理者である第三者機関に知られる、または悪意あるユーザによって意図しない暗号鍵がリカバリされる可能性があるなどの問題がある。これらは内部からの情報漏洩を引き起こす原因になる恐れがある。
【００１０】
本発明の目的は、ディスク暗号鍵を事前に管理者としての第三者機関に教えることなく、かつ演算機能を有する記憶媒体を紛失した際でも、ユーザが記憶するパスワードと、ユーザ演算機の記憶部及び第三者機関の記憶部に記憶した情報とに基づいて、ディスク暗号鍵をリカバリすることができるディスク暗号鍵の生成及びリカバリ方法並びに該方法を実施する機密情報管理システムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明のディスク暗号鍵の生成及びリカバリ方法を実施する機密情報管理システムは、演算機能を有する信頼できる第三者機関(Trusted Third Party)と、一般的にトークンと呼ばれるユーザが管理する演算機能を備えた記憶媒体と、ユーザ演算機とから構成される。信頼できる第三者機関は、ディスク暗号鍵の生成及びリカバリに必要な第１の情報を第１の記憶部に記憶している。演算機能を備えた記憶媒体は、ディスク暗号鍵の生成に必要な第２の情報を第２の記憶部に記憶している。更にユーザ演算機は、ディスク暗号鍵の生成及びリカバリに必要な第３の情報を第３の記憶部に記憶している。ユーザ演算機は、ディスク暗号鍵によりユーザ演算機中の第３の記憶部を構成するハード・ディスク上のバイトデータを暗号化し、ディスク暗号鍵によりユーザ演算機の暗号化されたオペレーティング・システム及びバイトデータを復号化する。
【００１２】
本発明のディスク暗号鍵の生成及びリカバリ方法では、ディスク暗号鍵ｓｋiとして、ＲＳＡ暗号により作成されたＲａiｂiｈ（pwi）di（mod ni）を用いる。但し、Ｒは、第三者機関によって生成される公開乱数であり、ａiはユーザ演算機によって生成されるランダム値であり、ｂiは第三者機関によって生成されるランダム値であり、ｈ（pwi）は演算機能を有する記憶媒体に記憶されたパスワードpwiのハッシュ値であり、ｄiは演算機能を有する記憶媒体に記憶されたユーザのＲＳＡ鍵（ｅi，ｄi，ｎi）中の秘密鍵であり、ｎiはユーザのＲＳＡ鍵（ｅi，ｄi，ｎi）中の公開鍵の一部である。そして本発明の方法では、第三者機関の第１の記憶部に、第１の情報として少なくともユーザの識別子情報Ｒdi（mod ni）を記憶する。また演算機能を有する記憶媒体の第２の記憶部に、第２の情報として少なくともＲＳＡ鍵（ｅi，ｄi，ｎi）とパスワードpwiとを記憶する。さらにユーザ演算機の第３の記憶部に、第３の情報として少なくとも鍵生成情報Ｒａiｂi（mod ni）及びリカバリ情報（ａiｂi）e（mod n）を記憶する。
【００１３】
そして本発明の方法では、ディスク暗号鍵ｓｋiを生成する際に、ユーザ演算機により、ハッシュ値ｈ（pwi）と乱数ｒiとを生成してこれらの値ｈ（pwi）及びｒiと鍵生成情報Ｒａiｂi（mod ni）とを用いてＲＳＡブラインド署名に必要なチャレンジｃ＝［ｒieiＲａiｂiｈ（pwi）（mod ni）］を生成する。次に演算機能を有する記憶媒体により、チャレンジｃに対してＲＳＡブラインド署名を行って鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）を生成する。そしてユーザ演算機により、鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）からディスク暗号鍵ｓｋiを生成する。
【００１４】
また本発明の方法おいては、ディスク暗号鍵ｓｋiをリカバリする際に、第三者機関にユーザ演算機からリカバリ補助情報（ａiｂi）e（mod n）を送信する。第三者機関はリカバリ補助情報（ａiｂi）e（mod n）とユーザの識別子情報Ｒdi（mod ni）とに基づいて、ディスク暗号鍵のリカバリに必要な新たなリカバリ情報（Ｒdi）ａiｂi（mod ni）を生成する。そしてユーザ演算機が、新たなリカバリ補助情報（Ｒdi）ａiｂi（mod ni）とハッシュ値ｈとからディスク暗号鍵ｓｋiをリカバリする。
【００１５】
ディスク暗号鍵Ｒａiｂiｈ（pwi）di（mod ni）を生成するには、ＲＳＡ秘密鍵、パスワードのハッシュ値ｈ（pwi）及びａiｂiが必要である。本発明の方法を実施する場合、第三者機関及び攻撃者はこれらのいずれも知ることができない。つまり、本発明の方法を用いると、第三者機関はユーザの秘密情報を一切保持していない。第三者機関が知ることのできる値は、少なくともユーザの識別子情報Ｒdi（mod ni）である。しかしながら、たとえ第三者機関が識別子情報Ｒdi（mod ni）を知っていたとしても、RSA暗号の秘匿性によって、この値からａiｂiあるいは秘密鍵ｄiを取得することはできない。したがって、第三者機関がリカバリ以前にディスク暗号鍵を知ることはできない。これは攻撃者も同様である。一方、ユーザも同様にａiｂiあるいは秘密鍵ｄiを知ることができない。そのため、本発明の方法によれば、ユーザはＩＣカードを使わずにディスク暗号鍵を生成することができない。よって本発明によれば、ディスク暗号鍵を事前に第三者機関に教えることなく、暗号鍵をユーザとリンクさせることでリカバリされる暗号鍵を限定できる。そのため暗号鍵のリカバリは、ユーザと第三者機関が協力することによって行われるものの、第三者機関がユーザの秘密情報を一切保持しなくて済むという利点が得られる。
【００１６】
上記方法を実施する本発明の機密情報管理システムは、前述の第三者機関と、演算機能を備えた記憶媒体と、ユーザ演算機とを備えている。そして第三者機関の第１の記憶部が、第１の情報として少なくともユーザの識別子情報Ｒdi（mod ni）を記憶している。また演算機能を有する記憶媒体の第２の記憶部が、第２の情報として少なくともＲＳＡ鍵（ｅi，ｄi，ｎi）とパスワードpwiとを記憶する。更にユーザ演算機の第３の記憶部が、第３の情報として少なくとも鍵生成情報Ｒａiｂi（mod ni）及びリカバリ情報（ａiｂi）e（mod n）を記憶する。そしてディスク暗号鍵ｓｋiを生成する際には、ユーザ演算機が、ハッシュ値ｈ（pwi）と乱数ｒiとを生成してこれらの値ｈ（pwi）及びｒiと鍵生成情報Ｒａiｂi（mod ni）とを用いてＲＳＡブラインド署名に必要なチャレンジｃ＝［ｒieiＲａiｂiｈ（pwi）（mod ni）］を生成する。また演算機能を有する記憶媒体が、チャレンジｃに対してＲＳＡブラインド署名を行って鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）を生成する。さらにユーザ演算機が鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）からディスク暗号鍵ｓｋiを生成する。またディスク暗号鍵を生成する際には、第三者機関にユーザ演算機がリカバリ補助情報（ａiｂi）e（mod n）を送信し、第三者機関がリカバリ補助情報（ａiｂi）e（mod n）とユーザの識別子情報Ｒdi（mod ni）とに基づいて、ディスク暗号鍵のリカバリに必要な新たなリカバリ情報（Ｒdi）ａiｂi（mod ni）を生成する。そしてユーザ演算機が、新たなリカバリ補助情報（Ｒdi）ａiｂi（mod ni）とハッシュ値ｈとからディスク暗号鍵をリカバリする。
【００１７】
本発明のより具体的な機密情報管理システムでは、信頼できる第三者機関は、第１の演算部と第１の記憶部とを有している。そして第１の演算部は、ＲＳＡ暗号に用いる自分自身のＲＳＡ鍵（ｅ，ｄ，ｎ）の生成、自分の公開鍵証明書CERTの生成、ユーザの公開鍵証明書certiの生成、公開乱数Ｒの生成及びディスク暗号鍵ｓｋiの生成に必要なランダム値ｂiの生成、該ランダム値ｂiを用いた第１のリカバリ補助情報ｂie（mod n）の生成、ディスク暗号鍵ｓｋiの生成に必要な第１の鍵生成補助情報Ｒａiｂi（mod ni）の生成を行う。そして第１の記憶部には、ＲＳＡ鍵（ｅ，ｄ，ｎ）、公開鍵証明書CERT、公開乱数Ｒ、ユーザの公開鍵証明書certi及び該ユーザの公開鍵証明書certiと関連付けられたユーザの識別子情報Ｒdi（mod ni）を記憶する。なお通常、公開鍵証明書CERTには、第１の演算部により生成されたユーザからの申請に基づいて失効したユーザの公開鍵証明書をリスト化した証明書失効リストCRLが付随している。
【００１８】
また演算機能を備えた記憶媒体は、ユーザにより保管管理され、第２の演算部と第２の記憶部とを有している。第２の演算部は、ＲＳＡ暗号に用いるユーザのＲＳＡ鍵（ｅi，ｄi，ｎi）の生成、ユーザのパスワードpwiの生成または変更、第三者機関から与えられた公開乱数ＲにＲＳＡ鍵の秘密鍵ｄi及びｎiを用いてＲＳＡ署名することによりユーザの識別子情報Ｒdi（mod ni）の生成を行う。そして第２の記憶部は、ユーザのＲＳＡ鍵（ｅi，ｄi，ｎi）、ユーザの公開鍵証明書certi及びパスワードpwiを記憶する。
【００１９】
ユーザ演算機は、第３の演算部と第３の記憶部とを有する。第３の演算部は、オペレーティング・システムが起動する前から動作可能な機能を有する第３の演算部とを備えている。そして第３の演算部は、以下の演算を行う。まずディスク暗号鍵生成に必要なランダム値ａiの生成及びランダム値ａiを用いたディスク暗号鍵ｓｋiの生成に必要な第２の鍵生成補助情報Ｒａi（mod ni）の生成を行う。そして第３の演算部は、パスワードpwiのハッシュ値ｈ（pwi）を求め且つ乱数ｒiを生成して、これらの値ｈ（pwi）及びｒiと、第１の鍵生成補助情報Ｒａiｂi（mod ni）とを用いたＲＳＡブラインド署名に必要なチャレンジｃ＝［ｒieiＲａiｂiｈ（pwi）（mod ni）］を生成する。さらに第三者機関の第１の演算部が生成した第１のリカバリ補助情報ｂie（mod n）とランダム値ａiとを用いたディスク暗号鍵のリカバリに必要な第２のリカバリ補助情報（ａiｂi）e（mod n）を生成する。そして第３の演算部は、ディスク暗号鍵ｓｋiの生成及びディスク暗号鍵ｓｋiを用いた暗号化されたオペレーティング・システムの復号化を行う。更に第３の演算部は、ディスク暗号鍵ｓｋiを用いたハード・ディスク上のバイトデータの暗号化を行う。オペレーティング・システムが起動する前から動作可能な機能を有する第３の演算部としては、例えば、仮想演算機モニタ(Virtual Machine Monitor)を用いることができる。また第３の記憶部は、暗号化されたオペレーティング・システム、機密情報、公開鍵証明書CERT、第１の鍵生成補助情報Ｒａiｂi（mod ni）及び第２のリカバリ補助情報（ａiｂi）e（mod n）を記憶するハード・ディスクから成る。第３の演算部は、暗号化されたオペレーティング・システムをディスク暗号鍵ｓｋiを用いて復号しながらオペレーティング・システムを起動する。
【００２０】
そして本発明の具体的なシステムにおいては、第三者機関の第１の演算部が、ランダム値ｂiと第２の鍵生成補助情報Ｒａi（mod ni）とを用いてディスク暗号鍵ｓｋiの生成に必要な第１の鍵生成補助情報Ｒａiｂi（mod ni）を生成する。そして第１の演算部は、ユーザ演算機の第３の演算部から第２のリカバリ補助情報（ａiｂi）e（mod n）が入力されると、該第２のリカバリ補助情報（ａiｂi）e（mod n）とユーザの識別子情報Ｒdi（mod ni）とに基づいて、ディスク暗号鍵のリカバリに必要な第３のリカバリ補助情報（Ｒdi）ａiｂi（mod ni）を生成する。また演算機能を備えた記憶媒体の第２の演算部は、ユーザ演算機に入力されたパスワードが第２の記憶部に記憶されたパスワードpwiと一致するか否かによりユーザ演算機の認証を行う。そして第２の演算部は、認証されたユーザ演算機の第３の演算部が生成したチャレンジｃ＝［ｒieiＲａiｂiｈ（pwi）（mod ni）］に対してＲＳＡブラインド署名を行う。
【００２１】
さらにユーザ演算機の第３の演算部は、演算機能を備えた記憶媒体が接続されているときに、第三者機関の公開鍵証明書CERTとユーザの公開鍵証明書certiを用いてユーザのＲＳＡ鍵中の公開鍵（ｅi，ｎi）を検証したときには、第３の演算部によりチャレンジに対してブラインド署名されて得られた第３の鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）からブラインド署名を検証する。そして第３の演算部は、検証された第３の鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）からディスク暗号鍵ｓｋi=Ｒａiｂiｈ（pwi）di（mod ni）を生成する。
【００２２】
またユーザ演算機の第３の演算部は、演算機能を備えた記憶媒体が接続されていないときに、第三者機関に第２のリカバリ補助情報（ａiｂi）e（mod n）を送って得た第３のリカバリ補助情報（Ｒdi）ａiｂi（mod ni）とハッシュ値ｈ（pwi）とからディスク暗号鍵ｓｋi=Ｒａiｂiｈ（pwi）di（mod ni）をリカバリする。
【００２３】
本発明の具体的な機密情報管理システムによれば、限定された信頼性を有する第三者機関は演算機能を有する記憶媒体の第２の演算部が生成した公開情報としてのユーザの識別子情報Ｒdi（mod ni）を第１の記憶部に記憶しているだけである。この識別子情報Ｒdi（mod ni）に含まれる秘密鍵ｄiは、ＲＳＡ暗号であるため解読ができない。したがって限定された信頼性を有する第三者機関から、秘密鍵ｄiが漏洩することはない。またユーザ演算機の第３の記憶部には秘密鍵ｄiに関する情報を含んだデータが記憶されることはない。そしてユーザ演算機の第３の演算機は、演算機能を有する記憶媒体が接続されるたびにディスク暗号鍵ｓｋi=Ｒａiｂiｈ（pwi）di（mod ni）を演算により生成するものの、ディスク暗号鍵を保存することはない。したがって不正なアクセスによってディスク暗号鍵が漏洩することがない。さらに演算機能を有する記憶媒体が無くなった場合において、ディスク暗号鍵をリカバリする際に使用する第３の記憶部に記憶された第２のリカバリ補助情報（ａiｂi）e（mod n）にも、秘密鍵ｄiに関する情報を含んだデータが記憶されることはない。そしてディスク暗号鍵をリカバリする際に、第三者機関は、ユーザ演算機からの第２のリカバリ補助情報（ａiｂi）e（mod n）とユーザの識別子情報Ｒdi（mod ni）とに基づいて、ディスク暗号鍵のリカバリに必要な第３の補助情報（Ｒdi）ａiｂi（mod ni）を生成してユーザ演算機にこの情報を渡す。しかしながら第３のリカバリ補助情報（Ｒdi）ａiｂi（mod ni）からも秘密鍵ｄiに関する情報を得ることはできない。そしてユーザ演算機の第３の演算部は、第３のリカバリ補助情報（Ｒdi）ａiｂi（mod ni）とハッシュ値ｈとから、ＲＳＡ暗号のディスク暗号鍵ｓｋi=Ｒａiｂiｈ（pwi）di（mod ni）をリカバリする。このディスク暗号鍵からも秘密鍵ｄiに関する情報を得ることはできない。したがって本発明によれば、暗号鍵を事前に管理者（第三者機関）に教えることなく、かつ演算機能を有する記憶媒体を紛失した際にリカバリするディスク暗号鍵を限定した機密情報管理システムを提供できる。以上のことから、本発明の機密情報管理システムによれば、ディスク暗号鍵を事前に管理者として第三者機関に教えることなく、ディスク暗号鍵をユーザ演算機と第三者機関とのリンクによりリカバリできるようにしたので、第三者機関がユーザの秘密情報を一切保持しなくて済む利点が得られる。
【００２４】
またユーザ演算機の第３の演算部は、ユーザ演算機に入力されたパスワードが第２の記憶部に記憶されたパスワードpwiと一致しないことを演算機能を備えた記憶媒体の第２の演算部が判定したとき、第三者機関の公開鍵証明書CERTとユーザの公開鍵証明書certiを用いてユーザのＲＳＡ鍵中の公開鍵（ｅi，ｎi）の検証が成功しなかったとき、第２の演算部によりチャレンジに対してブラインド署名されて得られた第３の鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）からブラインド署名を検証できなかったときには、いずれの場合も、オペレーティング・システムの起動を行わない。このようにすると機密の安全性が検証できない状態では、ディスク暗号鍵の生成及びリカバリをすることができなくなるので、鍵保管の安全性が更に高まる。
【００２５】
また第三者機関の公開鍵証明書CERTに証明書失効リストCRLが付随している場合には、ユーザ演算機の第３の記憶部は、第三者機関から得た証明書失効リストCRLを記憶している。そしてユーザ演算機の第３の演算部は、ユーザの公開鍵証明書certiが証明書失効リストCRLに含まれているときには、オペレーティング・システムの起動を行わないようにするのが好ましい。このようにすると、例えば、社内のネットワークに接続できないユーザ演算機（退職者が使用していたパーソナルコンピュータ等）からのアクセスを禁止して、より安全性を高めることができる。
【００２６】
なおユーザ演算機の仮想演算機モニタが、起動されるたびに、証明書失効リストCRLを更新すると、常に最新のリストを用いて判断することができるので、さらに安全性を高めることができる。
【００２７】
また第三者機関は、同じユーザ演算機の第３の演算部から予め定めた回数以上第２のリカバリ補助情報（ａiｂi）e（mod n）が入力されると、第３のリカバリ補助情報（Ｒdi）ａiｂi（mod ni）をユーザ演算機に与えることを停止するようにする。このようにすると演算機能を有する記憶媒体を紛失した状態（異常な運営状態）で、何度もディスク暗号鍵がリカバリされることがなくなって、システムの正常な運営を確保することができる。
【００２８】
さらに第三者機関の第１の演算部は、演算機能を備えた記憶媒体にユーザの初期パスワードを与える機能を有していてもよい。このようにするとユーザがパスワードの設定作業をしなくても、システムの稼動が可能になる。なお初期パスワードのユーザによる変更は可能である。
【００２９】
また演算機能を有する記憶媒体の第２の演算部は、ユーザ演算機から予め定めた回数以上第２の記憶部に記憶しているパスワードと異なるパスワードが送信されると、ユーザ演算機の認証を停止するようにするのが好ましい。このようにするとパスワードを知らない攻撃者からの攻撃を有効に阻止することができる。
【発明の効果】
【００３０】
本発明によれば、暗号鍵を事前に管理者（第三者機関）に教えることなく、かつ演算機能を有する記憶媒体を紛失した際にリカバリする暗号鍵を限定したもの（秘密鍵ｄiを知ることができないもの）とすることができる機密情報管理システムを提供できる。
【発明を実施するための最良の形態】
【００３１】
以下図面を参照して本発明の機密情報管理システムの一実施の形態を詳細に説明する。図１は、本発明のディスク暗号鍵の生成及びリカバリ方法を実施できる機密情報管理システムの構成を概略的に示すものである。図１において、STTPは信頼できる第三者機関（Semi-Trusted Third Party）である（以下の説明では単に第三者機関と言う）。この第三者機関STTPは、サーバによって構成される。またICCはトークンと呼ばれるユーザが管理する演算機能を備えた記憶媒体としてのＩＣカードである。さらにPCはパーソナルコンピュータから構成されたユーザ演算機である。ＩＣカードは、鍵生成と認証強化を目的として用いる。AES（Advanced Encryption Standard）などの共通鍵暗号方式を利用すると、乱数である暗号鍵を覚えることが難しい。そのため、ＩＣカードを利用することによって暗号鍵を生成する。一方、ＩＣカードは、企業内等で使われるIDカードと兼用することが可能である。そのため、暗号鍵がユーザのIDとリンクする。これにより、ＩＣカードを所持する特定のユーザのみがユーザ演算機PC内のオペレーティング・システムを起動できるようになる。後に説明するように、ＩＣカードICCには、公開鍵暗号の秘密鍵、公開鍵、公開鍵証明書及び署名計算処理プログラムなどが格納されている。以下の説明では、ＩＣカードを演算機能を備えた記憶媒体の代表として説明する。
【００３２】
本実施の形態では、フル・ディスク・エンクリプション（Full disk encryption）を実現する。ここでフル・ディスク・エンクリプションとは、ディスク上の全てのバイトデータを暗号化する方式である。この方式のメリットとしては、ファイル以外のスワップ（swap）領域やテンポラリ（temporary）ファイルも暗号化される点や暗号すべきデータかどうかのユーザ判断が不要な点などが挙げられている。フル・ディスク・エンクリプションを実現するには、予めオペレーティング・システムのプログラムが暗号化されてインストールされたハードディスクHDDに対して、何らかのプログラムがディスクアクセスを復号しながらそのオペレーティング・システムを起動させる。ただし、ディスクの暗号化／復号は高速に行われる必要があるため、AESなどの共通鍵暗号方式を利用する。また本実施の形態では、フル・ディスク・エンクリプションを実現する。後に説明するが、ユーザ演算機PCは、オペレーティング・システムOSを起動する前から動作可能な機能を有する第３の演算部C3を備えている。そこでオペレーティング・システムOS起動前に復号を行うために、ユーザ演算機PCで用いる第３の演算部C3として仮想演算機モニタVMM（Virtual Machine Monitor）を使用する。仮想演算機モニタVMMはディスクアクセスデータを強制的にフックして自身が持つ暗号処理エンジンを利用して暗号化／復号を行う。簡単に説明すると、仮想演算機モニタVMMは、まず公開鍵認証を用いてＩＣカードICCをローカル認証する。この認証が通ると、仮想演算機モニタVMMは正しいディスク暗号鍵を取得できる（この暗号鍵は仮想演算機モニタVMMのメモリ上にロードされる）。また、これと同時にPKI（Public Key Infrastructure）と呼ばれる公開鍵暗号基盤等で使用するＩＣカードICC内の署名生成計算の正当性が保証されることになる。
【００３３】
図１に示すように、システムを構築するにあたって、第三者機関STTPでは初期フェーズが実行され、第三者機関STTPとＩＣカードICCとの間で登録フェーズ（１）が実行され、第三者機関STTPとユーザ演算機PCとの間で登録フェーズ（２）が実行される。そしてシステムを動作させる際には、ＩＣカードICCとユーザ演算機ＰＣとの間で、ローカル認証フェーズが実行され、その後ユーザ演算機ＰＣでディスク暗号鍵生成フェーズが実行されてディスク暗号鍵の生成が行われる。ディスク暗号鍵が生成されると、一番最初の段階でＩＣカードICCとユーザ演算機PCとの間で、ディスク暗号鍵を用いたＯＳ暗号初期化フェーズが実行される。そして以後、ユーザ演算機PCを起動する際には、ＩＣカードICCとユーザ演算機PCとの間で、毎回ローカル認証フェーズ及びディスク暗号鍵生成フェーズが実行されてディスク暗号鍵の生成が行われる。そして生成したディスク暗号鍵を用いて、ユーザ演算機PCでは、オペレーティング・システムOSの起動を行う。なお後述するように、このとき第三者機関STTPとユーザ演算機PCとの間で証明書失効リストCRLの更新が行われる。ユーザがＩＣカードICCを無くした場合には、第三者機関STTPとユーザ演算機PCとの間でキーリカバリフェーズが実行される。図２には、各フェーズの実行時期を示してある。なおＯＳ暗号初期化フェーズは、準備時とキーリカバリフェーズを実行した後の両段階で実行される。またキーリカバリフェーズは、ユーザがＩＣカードICCを紛失した場合に実行される。
【００３４】
なお図１の実施の形態においては、以下の条件が満たされている。
【００３５】
１．第三者機関STTPは、公開鍵証明書CERT及び証明書失効リストCRLを正当に発行し、これらが改ざんされないように保存する。
【００３６】
２．ＩＣカードICCには耐タンパー性があり、ＩＣカードICC及びＩＣカードICCとユーザ演算機PC間の経路から秘密情報が盗まれない。
【００３７】
３．ＩＣカードICC内の計算処理アルゴリズム（署名生成計算など）は改変されない。
【００３８】
４．第三者機関STTPは、第三者機関STTP用のパスワードを使ってＩＣカードICC内のデータを自由に変更できるが、データの参照はできない。
【００３９】
５．ユーザは、一般ユーザ用のパスワードを使って自分のＩＣカードICC内の秘密鍵以外のデータを参照できるが、変更できない。
【００４０】
６．ユーザ演算機PC内にある仮想演算機モニタVMMのコードは改ざんされず、仮想演算機モニタVMM内の情報は第三者機関STTPに覗かれない。
【００４１】
７．ユーザがＩＣカードICCを紛失すると同時にパスワードを忘れる、という状況を考えない。
【００４２】
以下、上記の条件の下で、プロトコルの各フェーズにおける動作を説明しながら、併せて各構成要素についても詳しく説明する。図３には、第三者機関STTPにおいて実行される初期フェーズのステップが示されている。初期フェーズ、登録フェーズ（１）及び（２）並びにキーリカバリフェーズを実行する第三者機関STTPは信頼できる第三者機関としての管理者である。ここでは第三者機関がユーザに関する情報の発行や管理、鍵のリカバリなどを行う。第三者機関STTPは、ユーザ情報の発行手続きや、ＩＣカードICCの発行などを正当に行い、保管している情報が改ざんされないように管理する。しかし、暗号鍵などのユーザの秘密情報の漏洩までは保護しない。つまり、第三者機関STTPが保持するユーザに関する情報は公開情報のみとし、秘密にすべき情報は自分自身の秘密鍵のみとする。本実施の形態では、第三者機関STTPは、第１の演算部C1と第１の記憶部M1とを備えて、図示しないネットワークを介して複数のユーザ演算機PCと接続されるコンピュータサーバである。このサーバからなる第三者機関STTPは、登録フェーズ（１）の際に各ユーザ演算機PCに対応してそれぞれＩＣカードICCを発行する。したがって第三者機関STTPは、ＩＣカードICCとの間でデータの授受を行えるように構成されている。第三者機関STTPの第１の演算部C1は、初期フェーズにおいて、周知のＲＳＡ暗号に用いる自分自身のＲＳＡ鍵（ｅ，ｄ，ｎ）と自分の公開鍵証明書CERTとを生成する（ステップSTA1及びSTA2）。さらに第三者機関STTPは、常時、証明書失効リストCRLを生成している（ステップSTA3）。証明書失効リストCRLには、本実施の形態のシステムを利用できなくなった即ち特定のユーザの公開鍵証明書が使えなくなった（失効している）ことが、リストとして登録されている。このリストは、常時更新されている。そして第三者機関STTPは、登録フェース（１）でＩＣカードICCに渡す公開乱数Ｒを生成する（ステップSTA4）。なお本実施の形態では、証明書失効リストCRLは公開鍵証明書CERTと付随しているものと考える。
【００４３】
図４には、第三者機関STTPとＩＣカードICCとの間で行う登録フェーズ（１）のステップが示されている。また図５には、登録フェーズ（１）における第三者機関STTPとＩＣカードICCとの間におけるデータの授受関係が示されている。登録フェーズ（１）では、ＩＣカードICCと第三者機関STTPを接続し、ＩＣカードICCの初期設定を行う。図１に示すように、演算機能を備えた記憶媒体として用いられるＩＣカードICCも、第２の演算部Ｃ2と第２の記憶部Ｍ2とを有している。第２の演算部Ｃ2は、登録フェーズ（１）において、ＩＣカードICCを第三者機関STTPのサーバに接続する（ステップSTB1）。そして第２の演算部Ｃ2は、ＲＳＡ暗号に用いるユーザのＲＳＡ鍵（ｅi，ｄi，ｎi）を作成する（ステップSTB2）。そして第２の演算部Ｃ2は、ユーザのＲＳＡ鍵のうち公開鍵（ｅi，ｎi）を第三者機関STTPに送信する（ステップSTB3）。第三者機関STTPの第１の演算部C1は、ユーザの公開鍵（ｅi，ｎi）を受信すると公開鍵に対する証明書であるユーザの公開鍵証明書certiを作成して（ステップSTB4）、これを第１の記憶部Ｍ1に記憶し、さらにＩＣカードICCに送信する（ステップSTB5）。ＩＣカードICCは、第２の演算部Ｃ2を経由してユーザの公開鍵証明書certiを第２の記憶部Ｍ2に記憶する。
【００４４】
次にＩＣカードICCの第２の演算部Ｃ2は、受信した公開乱数Ｒに対して秘密鍵ｄiを公開鍵ｎiを用いてＲＳＡ署名を行い、ユーザの識別子情報Ｒdi（mod ni）を作成する。そしてＩＣカードICCは、作成したユーザの識別子情報Ｒdi（mod ni）を第三者機関STTPに送信する（ステップSTB6）。第三者機関STTPは、送信されたユーザの識別子情報Ｒdi（mod ni）を第１の記憶部Ｍ1を保存する（ステップSTB7）。なお保存する際に、第三者機関STTPは、ユーザの識別子情報Ｒdi（mod ni）をユーザの公開鍵証明書certiと関連付けて（リンクさせて）記憶する。その後、第三者機関STTPの第１の演算部Ｃ１は、初期のパスワードpwiと公開乱数Ｒを作成してＩＣカードICCに送信する。なおＩＣカードICCが初期フェーズで第２の記憶部M2に記憶した初期パスワードを、ユーザが変更して第２の記憶部Ｍ2に登録する（ステップSTB8）。ＩＣカードICC側で、ユーザが最初からパスワードpwiを設定してもよいのは勿論である。このようにして登録フェーズ（１）が終了する。なお登録フェーズ（１）では、第２の記憶部Ｍ2に、ユーザのＲＳＡ鍵（ｅi，ｄi，ｎi）、第三者機関STTPによって発行されたユーザの公開鍵証明書certi及び最終的にユーザが決定したパスワードpwiが記憶される。
【００４５】
その後第三者機関STTPとユーザ演算機PCとの間で登録フェーズ（２）を実行する。図６は、登録フェーズ（２）のステップの詳細を示す。また図７は、登録フェーズ（２）における第三者機関STTPとユーザ演算機PCの第３の演算部C3との間のデータの授受の関係を示している。登録フェーズ（２）では、安全な通信路を使ってユーザ演算機PCの第３の演算部C3を第三者機関STTPと接続させ、リカバリに必要な情報を仮想演算機モニタVMM内に作成する。ユーザ演算機PCは、第３の演算部C3と、第３の記憶部M3とを有する。第３の演算部C3は、オペレーティング・システムOSが起動する前から動作可能な機能を有している。本実施の形態では、第３の演算部C3として仮想演算機モニタ(Virtual Machine Monitor)ＶＭＭを用いる。仮想演算機モニタＶＭＭは、ディスク暗号鍵生成に必要なランダム値ａiの生成、オペレーティング・システムが起動する前における、オペレーティング・システム用プログラムの復号化、ハード・ディスク上のバイトデータの暗号化、パスワードpwiのハッシュ値ｈを求め且つ乱数ｒiを生成してこれらの値ｈ及びｒiと、パスワードpwiと第１の鍵生成補助情報Ｒａiｂi（mod ni）とを用いたＲＳＡブラインド署名に必要なチャレンジｃ＝［ｒieiＲａiｂiｈ（pwi）（mod ni）］の生成、ディスク暗号鍵のリカバリに必要な第２のリカバリ補助情報（ａiｂi）e（mod n）の生成及びディスク暗号鍵ｓｋiの生成を含む演算処理を行う。そして第３の記憶部M3は、ハード・ディスクから構成されている。
【００４６】
図６及び図７に示すように、まずユーザ演算機PCを第三者機関STTPのサーバに接続する（ステップSTC1）。ユーザ演算機PCの第３の演算部C3を構成する仮想演算機モニタVMMは、第三者機関STTPから第三者機関STTP自身の公開鍵証明書CERT、証明書失効リストCRL、公開乱数Ｒ及びｎiを取得する（ステップSTC2）。そしてユーザ演算機PCの仮想演算機モニタVMMは、自分自身の秘密情報としてのランダム値ａiを生成し、第三者機関STTPから得た公開乱数Ｒとランダム値ａiとを用いてディスク暗号鍵ｓｋiの生成に必要な第２の鍵生成補助情報Ｒａi（mod ni）を計算して第三者機関STTPの第１の演算部Ｃ1に送信する（ステップSTC3）。そして第三者機関STTPの第１の演算部Ｃ1は、自分自身の秘密情報としてのランダム値ｂiを生成し、ディスク暗号鍵の生成に必要な第１の鍵生成補助情報Ｒａiｂi（mod ni）と第１のリカバリ補助情報ｂie（mod n）を計算してユーザ演算機PCの仮想演算機モニタVMMへ送信する（ステップSTC4）。仮想演算機モニタVMMは、送信されてきた第１の鍵生成補助情報Ｒａiｂi（mod ni）を第３の記憶部Ｍ3に保存する（ステップSTC5）。そして仮想演算機モニタVMMは、送信されてきた第１のリカバリ補助情報ｂie（mod n）とランダム値ａiとに基づいて第２のリカバリ補助情報（ａiｂi）e（mod n）を演算して第３の記憶部M３を記憶する（ステップSTC6）。このようにしてユーザ演算機PCの第３の記憶部M３には、第１の鍵生成補助情報Ｒａiｂi（mod ni）と第２のリカバリ補助情報（ａiｂi）e（mod n）とが保存されて、登録フェーズ（２）が終了する。
【００４７】
次にユーザ演算機PCを起動するために必要なローカル認証フェーズについて説明する。図８は、ローカル認証フェーズのステップの詳細を示している。そして図９は、このフェーズにおけるＩＣカードICCとユーザ演算機PCとの間のデータの授受の関係を示している。ローカル認証フェーズとは、ユーザ演算機PCの第３の演算部C3を構成する仮想演算機モニタVMMがＩＣカードICCの正当性をローカルで認証するフェーズである。これにより、ＩＣカードICCが第三者機関STTPによって正当に発行されたものであるかどうかを確認できる。本実施の形態では、ディスク暗号鍵の生成の効率化のため、ＲＳＡブラインド署名を利用する。このフェーズでは、ＩＣカードICCは、仮想演算機モニタVMMからのパスワードが正しいことを確認すると、仮想演算機モニタVMMに対してユーザの公開鍵証明書certiを送信する。仮想演算機モニタVMMは、第三者機関STTPの公開鍵証明書CERTとユーザの公開鍵証明書certiとを用いてユーザの公開鍵を検証し、その後ユーザの公開鍵をユーザの公開鍵証明書certiから取得する。そして仮想演算機モニタVMMは、ＩＣカードICCを利用してブラインド署名を作成し、ユーザの公開鍵を用いてその署名を検証する。より具体的に説明すると、まず最初にＩＣカードICCをユーザ演算機PCにデータの授受が可できるように接続してユーザ演算機PCの電源を入れる（ステップSTD1）。次に記憶しているパスワードを、ユーザがユーザ演算機PCに入力する。ユーザ演算機PCの仮想演算機モニタVMMは、パスワードをＩＣカードICCに送信する（ステップSTD2）。ＩＣカードICCは、第２の演算部C2でパスワードをチェックする（ステップSTD3）。すなわちパスワードがＩＣカードICCの第２の記憶部M2に記憶しているパスワードpwiと同じであればステップSTD6へと進み、不一致であればステップSTD4でＩＣカードICCがエラーを発行する（ステップSTD4）。そしてエラーが発行されると、ステップSTD5でユーザ演算機PCの仮想演算機モニタVMMが認証エラーを発行し、オペレーティング・システムを起動することなく、仮想演算機モニタVMMは起動を強制終了する。ステップSTD3でパスワードの一致が確認されると、ステップSTD6で、ＩＣカードICCは第２の記憶部M2に記憶しているユーザの公開鍵証明書certiを仮想演算機モニタVMMへ返信する。ステップSTD7では、第３の記憶部Ｍ3に記憶した第三者機関の公開鍵証明書CERTと、ＩＣカードICCから挿入されたユーザの公開鍵証明書certiを用いてユーザのＲＳＡ鍵中の公開鍵（ｅi，ｎi）を検証する。公開鍵（ｅi，ｎi）が正しいものでない場合には、ステップSTD5でユーザ演算機PCの仮想演算機モニタVMMが認証エラーを発行し、オペレーティング・システムを起動することなく、仮想演算機モニタVMMは起動を強制終了する。公開鍵（ｅi，ｎi）が検証できたときにはステップSTD8へと進む。ステップSTD8では、仮想演算機モニタVMMがパスワードpwiのハッシュ値ｈを求め且つ乱数ｒiを生成する。そして仮想演算機モニタVMMは、これらの値ｈ及びｒiと、第３の記憶部Ｍ3に記憶した第１の鍵生成補助情報Ｒａiｂi（mod ni）とを用いてＲＳＡブラインド署名に必要なチャレンジｃ＝［ｒieiＲａiｂiｈ（pwi）（mod ni）］を生成し、生成したチャレンジｃをＩＣカードICCに送信する（ステップSTD8）。ＩＣカードICCは、第２の演算部Ｃ2によりチャレンジｃ＝［ｒieiＲａiｂiｈ（pwi）（mod ni）］に対してＲＳＡブラインド署名をして［ｄi乗して］、その結果であるｒiＲａiｂiｈ（pwi）di（mod ni）［第３の鍵生成補助情報］を仮想演算機モニタVMMに返信する（ステップSTD9）。仮想演算機モニタVMMは、受け取ったＲＳＡブラインド署名されたチャレンジｃdi（mod ni）をｅi乗して、チャレンジｃに戻るか否かを検証する（ステップSTD10）。もし検証でチャレンジｃに戻らなかった場合（検証が成功しなかった場合）には、エラーと判定してステップSTD5へと進んで、オペレーティング・システムOSを起動することなく、仮想演算機モニタVMMは起動を強制終了する。そして検証ができた場合には、ローカル認証が成功したものと判定する（ステップSTD11）。
【００４８】
次に、ユーザ演算機PCの仮想演算機モニタVMMは、ディスク暗号鍵生成フェーズを実行する。図１０には、ディスク暗号鍵生成フェーズのステップの詳細を示す。このフェーズでは、仮想演算機モニタVMMは、検証された第３の鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）を１／ｒi（mod ni）倍して（ステップSTE1）、ディスク暗号鍵ｓｋi=Ｒａiｂiｈ（pwi）di（mod ni）を取得する（ステップSTE2）。仮想演算機モニタVMMは、ディスク暗号鍵ｓｋi=Ｒａiｂiｈ（pwi）di（mod ni）を取得すると、暗号化されたオペレーティング・システムをディスク暗号鍵ｓｋiを用いて復号しながらオペレーティング・システムを起動する。その結果、ユーザ演算機PCが稼働状態になる。なお仮想演算機モニタVMMは、得られたディスク暗号鍵ｓｋiを共通暗号方式の鍵サイズで分割し、先頭から必要なだけの鍵を使用する。例えば、共通鍵暗号方式をAES-128、ｎiのサイズを１０２４ビットとした場合、８個のディスク暗号鍵が生成されることになる。実際に、使うのは最初のディスク暗号鍵のみである。
【００４９】
次にユーザがＩＣカードICCを紛失した場合の、キーリカバリフェーズについて説明する。図１１は、ユーザ演算機PCの仮想演算機モニタVMMで実行されるキーリカバリフェーズの詳細ステップを示す。図１２は、キーリカバリフェーズのデータの授受の関係を示す。ステップSTF1では、ＩＣカードがユーザ演算機PCに挿入されていなくて、第三者機関STTPにユーザ演算機PCが接続されている場合には、ＩＣカードが紛失されたか否かの判定が行われる。そしてステップSTF2では、紛失回数が予め定めたＮｒ回未満か否かの判定がなされる。これは無制限にキーリカバリーを認めると、ＩＣカードが無くても、ユーザ演算機PCを起動することができるようになって、ＩＣカードを用いるシステムの意味がなくなるためである。そのため紛失回数がＮｒ回以上になると、すなわちＩＣカードを用いないで、キーリカバリだけでユーザ演算機を起動する回数がＮｒ以上になると、キーリカバリができないようになる。したがってユーザは、再度新たなＩＣカードICCの発行を受け、前述の登録フェーズ（１）及び（２）を行う。紛失回数が予め定めたＮｒ回未満の場合には、ステップSTF3でユーザ演算機PCの仮想演算機モニタVMMはユーザ演算機PCを第三者機関STTPのサーバに接続する。そして仮想演算機モニタVMMは、第三者機関STTPに第２のリカバリ補助情報である（ａiｂi）e（mod n）を送信する（ステップSTF5）。第三者機関STTPの第１の演算部C2は、第２のリカバリ補助情報である（ａiｂi）e（mod n）を得ると、これを復号してａiｂiを取得する（ステップSTF5）。そして第三者機関STTPの第１の演算部C2は、第１の記憶部Ｍ1に記憶しているユーザのＩＣカードICCに対応した識別子情報Ｒdi（mod ni）を選択し（ステップSTF6）、（Ｒdi）ａiｂi（mod ni）［第３のリカバリ補助情報］を演算する。そして第三者機関STTPは、この第３のリカバリ補助情報としての（Ｒdi）ａiｂi（mod ni）をユーザ演算機PCの仮想演算機モニタVMMに返信する（ステップSTF7）。仮想演算機モニタVMは、受信した第３のリカバリ補助情報（Ｒdi）ａiｂi（mod ni）と、第３の記憶部Ｍ3に記憶しているハッシュ値ｈと、乱数ｒiとからＲａiｂiｈ（pwi）di（
mod ni）を計算してディスク暗号鍵ｓｋiをリカバリする（ステップSTF8）。仮想演算機モニタVMMは、暗号化されたオペレーティング・システムをディスク暗号鍵ｓｋiを用いて復号しながらオペレーティング・システムを起動する。これによりユーザ演算機PCの第３の記憶部Ｍ3に記憶した機密情報をユーザは利用することが可能になる。しかしキーリカバリは、ＩＣカードを紛失した場合の緊急避難的な解決手段である。したがってユーザとしては、新たなＩＣカードの発行を受けるべきである。なおこのキーリカバリでは、安全な通信路を使ってユーザ演算機PCの第３の演算機C3の仮想演算機モニタVMMを第三者機関STTPと接続してキーリカバリを実施する必要がある。そしてキーリカバリ後、ユーザはディスク暗号鍵を破棄し、再度登録フェーズ（２）から上記フェーズを繰り返す。また、パスワードも変更するのが好ましい。そのためステップSTGにおいて、新たに発行を受けたＩＣカードを用いてＯＳ暗号初期化フェーズを実施する。このＯＳ暗号初期化フェーズは、前述の各フェーズを実行する過程の初期段階で、ユーザ演算機PCのオペレーティング・システムＯＳを暗号化する際にも実行される。このＯＳ暗号初期化フェーズは、仮想演算機モニタVMMで実施される。
【００５０】
図１３は、ＯＳ暗号初期化フェーズの詳細ステップを示す。図１３に示すように、ステップSTG1では、ディスク暗号鍵が変更か否かの判定が実行される。変更でなければ終了する。最初の暗号化の場合も変更と解釈する。そしてステップSTG2で、初めてのディスク暗号鍵か否かの判定が行われる。初めてのディスク暗号鍵であれば、ステップSTG4へと進み、そうでなければステップSTG3へと進む。ステップSTG3では古い（リカバリした）ディスク暗号鍵でオペレーティング・システムのプログラムをすべて復号する。そしてステップSTG4で新しいディスク暗号鍵でオペレーティング・システムのプログラムをすべて暗号化する。初期段階においては、最初にディスク暗号鍵でオペレーティング・システムのプログラムをすべて暗号化する。このようにこのフェーズでは、仮想演算機モニタVMMは、新たなディスク暗号鍵を生成したときに限り、その鍵を使ってオペレーティング・システムのプログラムを丸ごと暗号初期化する。また、暗号鍵が変更された時は、オペレーティング・システムのプログラムを古い暗号鍵で一度復号し、その後新しい暗号鍵で再び暗号化する。このとき、再度登録フェーズから行う必要があるが、ＩＣカード内の秘密鍵を変更する必要がないため、登録フェーズ（１）は行う必要がない。
【００５１】
以上の通り、本発明の実施の形態では、ディスク暗号鍵ｓｋiを生成する際に、ユーザ演算機PCにより、ハッシュ値ｈ（pwi）と乱数ｒiとを生成してこれらの値ｈ（pwi）及びｒiと鍵生成情報Ｒａiｂi（mod ni）とを用いてＲＳＡブラインド署名に必要なチャレンジｃ＝［ｒieiＲａiｂiｈ（pwi）（mod ni）］を生成する。次にＩＣカードICCにより、チャレンジｃに対してＲＳＡブラインド署名を行って第３の鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）を生成する。そしてユーザ演算機により、第３の鍵生成補助情報ｒiＲａiｂiｈ（pwi）di（mod ni）からディスク暗号鍵ｓｋiを生成する。
【００５２】
また本発明の実施の形態においては、ディスク暗号鍵ｓｋiを生成する際に、第三者機関にユーザ演算機PCから第２のキーリカバリ補助情報（ａiｂi）e（mod n）を送信する。第三者機関は第２のリカバリ補助情報（ａiｂi）e（mod n）とユーザの識別子情報Ｒdi（mod ni）とに基づいて、ディスク暗号鍵のリカバリに必要な新たなリカバリ補助情報である第３のリカバリ補助情報（Ｒdi）ａiｂi（mod ni）を生成する。そしてユーザ演算機が、第３のリカバリ補助情報（Ｒdi）ａiｂi（mod ni）とハッシュ値ｈ（pwi）とからディスク暗号鍵ｓｋiをリカバリする。
【００５３】
本実施の形態によれば、リカバリが限定される。秘密鍵は、ＩＣカードICCにのみ格納されている。そのためユーザの識別子情報Ｒdi（mod ni）は、ユーザのＩＣカードICからしか得られない。つまりユーザの識別子情報Ｒdi（mod ni）が、公開鍵証明書を通じて仮想演算機モニタPCとリンクする。また、リカバリされるディスク暗号鍵Ｒａiｂiｈ（pwi）di（mod ni）は、第三者機関STTPが保管するユーザの識別子情報Ｒdi（mod ni）から作成される。そのため、リカバリされる暗号鍵が識別子情報Ｒdi（mod ni）とリンクする。したがって、リカバリされる暗号鍵がユーザとリンクすることになる。これは、第三者機関STTPがＩＣカードICCを紛失したユーザを認証できれば、リカバリされる暗号鍵をＲａiｂiｈ（pwi）di（mod ni）に限定できることを意味する。
【００５４】
ディスク暗号鍵を生成するには、RSA秘密鍵、パスワードのハッシュ値ｈ（pwi）及びａiｂiが必要である。しかし、第三者機関STTP及び攻撃者はこれらのいずれも知らない。つまり、第三者機関STTPはユーザの秘密情報を一切保持していない。一方、第三者機関STTPが知ることのできる値は、登録フェーズにおける第１の鍵生成補助情報Ｒａiｂi（mod ni）及びユーザの識別子情報Ｒdi（mod ni）である。しかしながら、たとえ第三者STTPが第１の鍵生成補助情報Ｒａiｂi（mod ni）あるいは識別子情報Ｒdi（mod ni）を知っていたとしても、RSA暗号の秘匿性によって、これらの値からａiｂiあるいは秘密鍵ｄiを取得できない。したがって、第三者機関STTPがリカバリ以前にディスク暗号鍵を知ることができない。これは攻撃者も同様である。一方、ユーザも同様にａiｂiあるいは秘密鍵ｄiを知ることができない。そのため、ユーザはＩＣカードICCを使わずにディスク暗号鍵を生成できない。よって本実施の形態によれば、ディスク暗号鍵の秘密が確実に保護されている。
【００５５】
よって本発明によれば、ディスク暗号鍵を事前に第三者機関STTに教えることなく、暗号鍵をユーザとリンクさせることでリカバリされる暗号鍵を限定できる。そのため暗号鍵のリカバリは、ユーザと第三者機関STTPが協力することによって行われるものの、第三者機関STTPがユーザの秘密情報を一切保持しなくて済むという利点が得られる。
【００５６】
上記の実施の形態では、ユーザ演算機PCからＩＣカードICCに誤ったパスワードを何度も入力できる。そこでＩＣカードICC（演算機能を有する記憶媒体）の第２の演算部C2を、ユーザ演算機PCから予め定めた回数以上第２の記憶部M2に記憶しているパスワードと異なるパスワードが送信されると、ユーザ演算機PCの認証を停止するようにしてもよい。このようにするとパスワードを知らない攻撃者からの攻撃を有効に阻止することができる。
【図面の簡単な説明】
【００５７】
【図１】本発明の方法を実施する本発明の機密情報管理システムの構成を概略的に示すものである。
【図２】図１に示した各フェーズの実行時期を示す図である。
【図３】第三者機関STTPにおいて実行される初期フェーズのステップを示す図である。
【図４】第三者機関STTPとＩＣカードICCとの間で行う登録フェーズ（１）のステップを示す図である。
【図５】登録フェーズ（１）における第三者機関STTPとＩＣカードICCとの間におけるデータの授受関係を示す図である。
【図６】第三者機関STTPとユーザ演算機PCとの間で行う登録フェーズ（２）のステップを示す図である。
【図７】登録フェーズ（２）における第三者機関STTPとＩＣカードICCとの間におけるデータの授受関係を示す図である。
【図８】ローカル認証フェーズのステップを示す図である。
【図９】ローカル認証フェーズにおけるＩＣカードICCとユーザ演算機PCとの間におけるデータの授受の関係を示す図である。
【図１０】ディスク暗号鍵生成フェーズのステップを示す図である。
【図１１】ユーザ演算機PCの仮想演算機モニタVMMで実行されるキーリカバリフェーズの詳細ステップを示す図である。
【図１２】キーリカバリフェーズのデータの授受の関係を示す図である。
【図１３】ＯＳ暗号初期化フェーズの詳細ステップを示す図である。
【符号の説明】
【００５８】
STTP  第三者機関
ICC   ＩＣカード（演算機能を有する記憶媒体）
PC    ユーザ演算機
【図１】
2009200990.tif 000003
【図２】
2009200990.tif 000004
【図３】
2009200990.tif 000005
【図４】
2009200990.tif 000006
【図５】
2009200990.tif 000007
【図６】
2009200990.tif 000008
【図７】
2009200990.tif 000009
【図８】
2009200990.tif 000010
【図９】
2009200990.tif 000011
【図１０】
2009200990.tif 000012
【図１１】
2009200990.tif 000013
【図１２】
2009200990.tif 000014
【図１３】
2009200990.tif 000015