(57)【要約】【課題】ファイルの暗号化と復号化のための複数のキーを管理するシステムと方法により、過去に使用されたキーの暗号化されたリストを提供する。【解決手段】このリストそのものは、現行キーを使って暗号化される。過去キーの１または複数を使って暗号化されたファイルを復号化するには、リストを復号化し、適当な過去キーを読み出すことができる。ファイルのキー変更を行うために、自動プロセスが過去キーを使っていずれかのファイルを復号化し、現行キーを使ってこれを暗号化する。新しい現行キーが導入されると、旧現行キーはキーリストを暗号化するのに使用でき、旧現行キーはリストに追加され、リストは新しい現行キーを使って再暗号化される。【選択図】図７
2006222944.tif 000002
【特許請求の範囲】
【請求項１】
ファイルの暗号化および復号化のための複数のキーを管理する方法において、
第一のキーを使ってキーリストを復号化すること、
前記第一のキーを前記キーリストに追加すること、および
第二のキーを使って前記キーリストを暗号化すること
を備えたことを特徴とする方法。
【請求項２】
請求項１に記載の方法において、
前記第一のキーを使って少なくともひとつのファイルを暗号化すること、および
少なくともひとつのファイルとともに前記第一のキーを指し示すポインタを記憶すること
をさらに備えたことを特徴とする方法。
【請求項３】
請求項１に記載の方法において、
前記第一のキーを使って少なくともひとつのファイルを復号化すること、および
前記第二のキーを使って前記少なくともひとつのファイルを暗号化すること
をさらに備えたことを特徴とする方法。
【請求項４】
請求項１に記載の方法において、
人に対し、少なくともひとつのキーを入力するよう促すこと、および
前記少なくともひとつのキーを前記キーリストに追加すること
をさらに備えたことを特徴とする方法。
【請求項５】
請求項１に記載の方法において、前記キーリストは、ユーザプロフィールとともに記憶されることを特徴とする方法。
【請求項６】
請求項１に記載の方法において、前記第二のキーは、携帯デバイスに記憶されることを特徴とする方法。
【請求項７】
請求項１に記載の方法において、前記キーリストにおいて利用できない第三のキーをキャッシュメモリに記憶することをさらに備えたことを特徴とする方法。
【請求項８】
ファイルの暗号化および復号化のための複数のキーを管理するための命令が記憶されたコンピュータ読取可能記録媒体において、
第一のキーを使ってキーリストを復号化するための命令と、
前記第一のキーを前記キーリストに追加するための命令と、
第二のキーを使って前記キーリストを暗号化するための命令と
を備えたことを特徴とするコンピュータ読取可能記録媒体。
【請求項９】
請求項８に記載のコンピュータ読取可能記録媒体において、
前記第一のキーを使って少なくともひとつのファイルを暗号化するための命令と、
前記少なくともひとつのファイルとともに前記第一のキーを指し示すポインタを記憶するための命令と
をさらに備えたことを特徴とするコンピュータ読取可能記録媒体。
【請求項１０】
請求項８に記載のコンピュータ読取可能記録媒体において、
前記第一のキーを使って少なくともひとつのファイルを復号化するための命令と、
前記第二のキーを使って前記少なくともひとつのファイルを暗号化するための命令と
をさらに備えたことを特徴とするコンピュータ読取可能記録媒体。
【請求項１１】
請求項８に記載のコンピュータ読取可能記録媒体において、
人に対し、少なくともひとつのキーを指示するよう促すための命令と、
前記少なくともひとつのキーを前記キーリストに追加するための命令と
をさらに備えたことを特徴とするコンピュータ読取可能記録媒体。
【請求項１２】
請求項８に記載のコンピュータ読取可能記録媒体において、前記キーリストは、ユーザプロフィールとともに記憶されることを特徴とするコンピュータ読取可能記録媒体。
【請求項１３】
請求項８に記載のコンピュータ読取可能記録媒体において、前記第二のキーは、携帯デバイスに記憶されることを特徴とするコンピュータ読取可能記録媒体。
【請求項１４】
請求項８に記載のコンピュータ読取可能記録媒体において、前記キーリストでは利用できない第三のキーをキャッシュメモリに記憶するための命令をさらに備えたことを特徴とするコンピュータ読取可能記録媒体。
【請求項１５】
ファイルの暗号化および復号化のための複数のキーを管理する手段を備えるコンピュータにおいて、前記手段は、
第一のキーを使ってキーリストを復号化する手段と、
前記第一のキーを前記キーリストに追加する手段と、
第二のキーを使って前記キーリストを暗号化する手段と
を備えたことを特徴とするコンピュータ。
【請求項１６】
請求項１５に記載のコンピュータにおいて、
前記第一のキーを使って少なくともひとつのファイルを暗号化する手段と、
前記少なくともひとつのファイルとともに前記第一のキーを指し示すポインタを記憶する手段と
をさらに備えたことを特徴とするコンピュータ。
【請求項１７】
請求項１５に記載のコンピュータにおいて、
前記第一のキーを使って少なくともひとつのファイルを復号化する手段と、
前記第二のキーを使って前記少なくともひとつのファイルを暗号化する手段と
をさらに備えたことを特徴とするコンピュータ。
【請求項１８】
請求項１５に記載のコンピュータにおいて、
人に対し、少なくともひとつのキーを入力するよう促す手段と、
前記少なくともひとつのキーを前記キーリストに追加する手段と
をさらに備えたことを特徴とするコンピュータ。
【請求項１９】
請求項１５に記載のコンピュータにおいて、前記第二のキーは、携帯デバイスに記憶されることを特徴とするコンピュータ。
【請求項２０】
請求項１５に記載のコンピュータにおいて、前記キーリストにおいて利用できない第三のキーをキャッシュメモリに記憶する手段をさらに備えたことを特徴とするコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティングに関し、より詳しくは、１または複数のコンピューティングデバイスにわたって記憶されたデータを、暗号化するために複数のキーを使用するデータ暗号化に関する。
【背景技術】
【０００２】
ファイル暗号化は、データセキュリティ保護のための方法として採用されることがますます多くなっている。ＥＦＳ（Encrypted File System）という形態の自動化されたファイル暗号化を提供しているオペレーティングシステムさえある。ファイル暗号化が使用される状況に関係なく、長い時間をかけて、ファイルを複数のキーに従って暗号化することもできる。複数の第一のファイルが第一のキーに従って暗号化され、複数の第二のファイルが第二のキーに従って暗号化され、過去のファイルは、その数を問わず、過去のキーを使って暗号化される。
【０００３】
ＥＦＳの場合を例にとると、オペレーティングシステムは、例えば、スマートカードから利用できるキーに従ってファイルを暗号化することがある。ユーザがスマートカードを使って多くのサーバ上の多くのファイルを暗号化した場合、そのユーザが現行のキーを変更すると、古いファイルは依然として古いスマートカードに従って暗号化されることから、ユーザはそれらすべてについて、手作業でキーを変更しなければならない。カードの切り替え時にキー変更を行う自動プロセスが使用されることがあるものの、このようなプロセスは終了までに時間とリソースを要し、さらに、十分な知識のないユーザであれば、キー変更プロンプトを見落としてしまうかもしれない。すると、ユーザは、古いスマートカードで暗号化されたファイルを開くたびに、自分が現在使っているスマートカードを抜き、古いスマートカードを差し込まなければならない。古いカードをなくしてしまうと、ＥＦＳリカバリエージェントを使って自分のデータを復元しなければならず、あるいはそのファイルにまったくアクセスできなくなる。この問題は、特定のＥＦＳで使用するための多数のスマートカードを使ってきたユーザにとって、より深刻である。
【０００４】
【特許文献１】米国特許第６，２４９，８６６号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このため、ＥＦＳその他に関し、複数の暗号化キーを使って暗号化されたファイルに、過去に使用された暗号化キーを変更することなく、ひとつの現行の暗号化キーによってアクセスできるようにして、長期的にアクセスできることが好ましい。ユーザの介入を必要とせずに、暗号化されたすべてのファイルについてキー変更するメカニズムもまた、有用性を向上させ、過去の暗号化キーの紛失や破壊によるデータ喪失を防止する上で有利である。
【課題を解決するための手段】
【０００６】
上記のような従来技術の欠点を考慮し、本発明はファイルの暗号化と復号化のための複数のキーを管理するシステムと方法を提案する。一般に、過去に使用されたキーのリストは、ひとつのキーを使って暗号化され、このキーを本明細書においては「現行キー（current key）」と呼ぶ。このようにして、キーリストへのアクセスは、現行キーを所有するものだけに限定される。過去キー（previous key）のうちの１または複数によって暗号化されているファイルを復号化するために、このリストを復号化し、適切な過去キーを呼び出すことができる。ファイルを過去キーでの暗号化状態から現行キーでの暗号化状態に移すために（本明細書において「キー変更（re-keying）」という）、自動プロセスが、ファイルおよび／またはそのファイルの暗号化に使用された復号化キーを、そのファイルやキーが暗号化されたときの過去キーを使って復号化し、現行キーを使ってそのファイルやキーを暗号化することができる。自動プロセスは、その間により優先順位の高いコンピューティング作業を行うかもしれないユーザにとっての遅延を最小限にするために、コンピューティング資源が利用可能なときに動作できる。新しい現行キーが導入されると、旧現行キーはキーリストの復号化に使用され、旧現行キーはリストに追加され、リストは新しい現行キーを使って再暗号化（re-encrypt）される。
【発明を実施するための最良の形態】
【０００７】
本発明によるファイルの暗号化と復号化のための複数のキーを管理するシステムと方法について、添付の図面を参照しながらさらに説明する。
【０００８】
以下の説明と図面には、本発明の各種の実施例を十分に理解できるよう、特定の具体的な詳細事項が示されている。しかしながら、本発明の各種の実施例が不必要に不明瞭になるのを避けるために、コンピューティングおよびソフトウェア技術にしばしば関連する特定の周知の詳細事項については、以下の説明には記載されていない。さらに、当業者は、下記の詳細事項の１または複数を用いない本発明の他の実施例も実現できると理解するであろう。最後に、下記の開示においては、ステップやシーケンスに関するさまざまな方法が説明されているが、この説明は本発明の実施例の明確な構成を示すためのものであり、開示されているステップやステップのシーケンスが本発明の実現に必要なものであると解釈すべきではない。
【０００９】
図１は、本発明のさまざまな態様に関連して使用するのに適したコンピューティングデバイスの一例１００の基本的特徴の概要を表すブロック図である。図１において、本発明を実現するためのシステムの一例は、デバイス１００等のコンピューティングデバイスを含む。デバイス１００は、一般に、そのもっとも基本的な構成において、処理ユニット１０２とメモリ１０３とを備える。コンピューティングデバイスの正確な構成と種類に応じて、メモリ１０３は、揮発性メモリ１０３Ａ（例えばＲＡＭ）、不揮発性メモリ１０３Ｃ（例えばＲＯＭ、フラッシュメモリ等）またはこれらの組み合わせのいずれでもよい。さらに、デバイス１００はまた、磁気または光ディスクまたはテープ等の大量記憶装置（取り外し可能型１０４および／または取り外し不能型１０５）を備えていてもよい。このようなメモリ場所１０３Ａ，１０３Ｃ，１０４，１０５または通信接続１０８を通じてデバイス１００にアクセス可能な場所において、暗号化されたデータ１０３Ｂ，１０３Ｄ，１０４Ａ，１０５Ａが見られる。暗号化されたデータは、何らかのアルゴリズムを使って可逆的にスクランブルされ、復号化キーがわかっていれば、そのデータを解読できる。
【００１０】
デバイス１００は、スマートカードリーダ１０７Ａ等の入力デバイス１０７および／またはディスプレイ、プリンタその他の出力デバイス１０６を備えていてもよい。デバイス１００のその他の態様では、有線または無線媒体を使った他のデバイス、コンピュータ、ネットワーク、サーバ等との通信ネットワーク１０８が含まれるかもしれない。これらのデバイスはすべて当業界において周知であるため、ここでは詳しく説明しない。
【００１１】
デバイス１００が暗号化されたデータ１０３Ｂ，１０３Ｄ，１０４Ａ，１０５Ａを復号化するためには、１または複数のキー（図示せず）が必要である。復号化キーは、暗号化されたデータを解読するのに使用可能などのような情報でもよい。このようなキーは、それ自体、例えば、不揮発性システムメモリ１０３Ｃ等、何らかの形態のコンピュータメモリから入手可能な、デジタル形式で記憶された情報である。復号化キーは、例えば、これに限られないが、スマートカードリーダ１０７Ａに挿入されるスマートカード等、さまざまな他のソースからも入手できる。キーがスマートカードに記憶されると、カードは、リーダ１０７Ａに挿入され、キーがコンピューティングデバイス１００によってカードから読み出され、このキーは、データ、例えば１０３Ｂを復号化するのに使用される。
【００１２】
実施例は本発明を１または複数の独立型コンピュータシステムに関して利用することを示しているが、本発明はそれに限定されず、ネットワーク化または分散型コンピューティング環境等、どのようなコンピューティング環境に関しても実現できる。また、本発明は複数の処理チップまたはデバイスにおいて、あるいはその間でも実現でき、記憶装置も複数のデバイスにわたって同様に実現できる。このようなデバイスには、パーソナルコンピュータ、ネットワークサーバ、ハンドヘルドデバイス、スーパーコンピュータ、あるいは自動車や飛行機等の他のシステムに搭載されたコンピュータがある。
【００１３】
図２は、ネットワーク化された、または分散型コンピュータ環境の一例の略図である。この環境は、コンピューティングデバイス２７１，２７２，２７６，２７７のほか、オブジェクト２７３，２７４，２７５およびデータベース２７８を含む。これらのエンティティ２７１，２７２，２７３，２７４，２７５，２７６，２７７，２７８は各々、プログラム、方法、データ記憶装置、プログラマブルロジック等であってよい。エンティティ２７１，２７２，２７３，２７４，２７５，２７６，２７７，２７８は、ＰＤＡ、オーディオ／ビデオデバイス、ＭＰ３プレイヤ、パーソナルコンピュータ等の同じまたは異なるデバイスの一部となることができる。各エンティティ２７１，２７２，２７３，２７４，２７５，２７６，２７７，２７８は、通信ネットワーク２７０によって、他のエンティティ２７１，２７２，２７３，２７４，２７５，２７６，２７７，２７８と通信することができる。この点において、２８０Ａ，２８０Ｂ，２８０Ｃ，２８０Ｄ等の場所に示されている暗号化されたデータは、そのネットワーク内のどのエンティティにあってもよい。暗号化されたデータ２８０Ａ，２８０Ｂ，２８０Ｃ，２８０Ｄは、本発明によるシステムと方法を実現する各種のデバイスによってアクセスされ、キー変更され、その他使用される。
【００１４】
ネットワークコンピューティング環境をサポートするシステム、コンポーネント、ネットワーク構成は多種多様である。例えば、コンピューティングシステムは、有線または無線システム、ローカルネットワークあるいは広域に分散されるネットワークによって相互に接続されていてもよい。現在、多くのネットワークがインターネットに接続されている。このようなネットワークはいずれも、インターネットに接続されているか否かを問わず、本願で提案されるシステムと方法に関連して使用できる。
【００１５】
ネットワークインフラストラクチャにより、クライアント／サーバ、ピアツーピアまたはハイブリッドアーキテクチャ等のホストネットワークトポロジーのホストをイネーブルする。「クライアント」とは、あるクラスまたはグループのメンバーであり、それと関係のない他のクラスまたはグループのサービスを利用する。コンピューティングにおいて、クライアントはあるプロセス、すなわち、別のプログラムによって提供されるサービスを要求する命令またはタスクの集合と言ってもよい。クライアントプロセスは、他のプログラムまたはそのサービス自体に関する実際の詳細事項を「知る」ことなく、要求したサービスを利用する。クライアント／サーバアーキテクチャ、特にネットワークシステムにおいて、クライアントは通常、別のコンピュータ、例えばサーバによって提供される共有のネットワーク資源にアクセスするコンピュータである。図２の例において、エンティティ２７１，２７２，２７３，２７４，２７５，２７６，２７７，２７８のいずれも、状況に応じて、クライアント、サーバあるいはその両方と考えることができる。
【００１６】
サーバは通常、ただし必ずしもそうとは限らないが、インターネット等、リモートまたはローカルネットワーク上でアクセス可能なリモートコンピュータシステムである。クライアントプロセスは第一のコンピュータシステムにおいて動作し、またサーバプロセスは、第二のコンピュータシステムで動作しながら、相互に通信媒体によって通信しており、その結果、機能性を分散させ、複数のクライアントがサーバの情報収集機能を利用するのを可能にしている。ソフトウェアオブジェクトは、複数のコンピューティングデバイスまたはオブジェクトの間で分散させることができる。
【００１７】
クライアントとサーバは、プロトコルレイヤによって提供される機能を利用しながら、相互に通信する。一般に、ＩＰ（Internet Protocol）アドレス等のコンピュータネットワークアドレスやＵＲＬ（Universal Resource Locator）等のその他の基準を使い、サーバまたはクライアントコンピュータを相互に特定できる。ネットワークアドレスは、ＵＲＬアドレスということができる。通信媒体上で通信が可能であり、例えば、大容量通信のために、クライアントとサーバはＴＣＰ／ＩＰ接続を通じて相互に連結される。
【００１８】
本発明に関する以下の説明から明らかになるように、本発明のさまざまな実施例は、例えばコンピューティングデバイス２７７等のネットワーククライアントデバイスを備える。クライアント２７７は、基本的に一人の人によって操作されるパーソナルコンピュータであってもよい。その人は、クライアント２７７を使って、複数の場所、例えば２８０Ａ，２８０Ｄと通信し、これらに暗号化されたデータを記憶させるかもしれない。コンピューティングデバイス２７２は、例えば、ユーザが暗号化されたファイルを保存し、そのファイルに遠隔的にアクセスできるようにするサーバであってもよい。現代のコンピューティングには、例えば電子メールおよびその他の個人データ、データベース、ファイルおよび会社や企業の情報等のデータを、ネットワーク上のさまざまな場所からアクセスできるネットワーク環境の中で保存することがますますかかわってきている。キーのリストが個人的デバイス２７７に保持され、個人的デバイス２７７で実行されるプロセスは、そのリストのほか、個人的デバイス２７７、サーバ２７２あるいはそのネットワーク内の他のデバイスのいずれかに存在する、暗号化されたデータのキー変更のためのプロセスを管理する。
【００１９】
図２で紹介する一般的フレームワークに従って構築される多様なコンピューティング環境から見て、本明細書で説明するシステムと方法は、特定のコンピューティングアーキテクチャに何らかの形で限定されるとは解釈できない。本発明はひとつの実施例に限定されるべきではなく、付属の特許請求範囲による幅と範囲の中で解釈されるべきである。
【００２０】
本発明のシステムと方法は、データが複数のキーに従って暗号化される、あらゆる状況で利用でき、このような状況のひとつは、ＥＦＳを利用するコンピュータシステムで起こりうる。特に、ＥＦＳは１または複数のキーに基づいてファイルを暗号化し、しばらくすると、そのシステムで使用するための所望のキーが変更されるかもしれない。このよう変更が行われた場合、過去キーを使って暗号化されたファイルに引き続きアクセスするためには、その過去キーを保持する必要がある。各種の実施例は、そのような過去キーを安全な方法で保持、管理し、これにアクセスし、また過去キーを必要とせずに、暗号化されたファイルのキー変更を行うための有益なシステムと方法を提案する。
【００２１】
ＥＦＳは当業界で周知であり、最近のMICROSOFT WINDOWS（登録商標）のオペレーティングシステムで具現化されている。このようなＥＦＳの実施例のひとつが、例えば、特許文献１に記載されている。ＥＦＳは、ファイルが長期メモリに記憶されるときに自動的に暗号化され、許可を受けたユーザによって必要とされたときに自動的に復号化される、あらゆる自動システムである。ＥＦＳの各種の実現形態は、ユーザが自分は暗号化されたファイルにアクセスする許可を有しているということを証明するユーザ認証プロセスを提供する。すると、ユーザが保護したいと思うファイルを暗号化および／または復号化するために、ユーザのためのキー（数を問わない）が作成される。
【００２２】
本発明はどのような種類のＥＦＳでも運用できるが、本発明に関連して使用可能なＥＦＳの特徴を一般的に示すために、MICROSOFT（登録商標）EFSについて説明する。MICROSOFT（登録商標）EFSは、ファイルのセキュリティを保護するために公開キー暗号法を採用している。これは、暗号化と復号化のために、公開キーと秘密キーの両方が存在することを意味する。しかしながら、公開キーが暗号化するものはファイルそのものではない。その代わりに、個々のファイルはＦＥＫ（File Encryption Key）と呼ばれる対称キーで暗号化され、このＦＥＫは、ＤＤＦ（Data Decryption Field）と呼ばれるフィールドにおいて、暗号化されたファイルのヘッダに記憶される。しかしながら、ＦＥＫは、公開され、露出されたままではない。これは、ユーザの公開キーで暗号化される。ユーザがファイルを開きたいとき、その秘密キーを使ってＦＥＫが復号化され、その後、ＦＥＫを使ってファイルが復号化される。このような装置の長所は、たとえハッカーがＦＥＫを復号化できたとしても、ほとんどのファイルが異なるＦＥＫを持っているため、ハッカーはひとつのファイルにしか入り込めないという点である。
【００２３】
図３は、暗号化ファイルシステム（ＥＦＳ）３５の一例を示す。図３において、キー３９は、キーデバイスの例３２等の場所から読み出されるかもしれない。プロセス３３は、キー３９またはそれから導き出されるキーを使い、いくつもの記憶手段３４の場所のいずれにおいてもファイル３６を復号化できる。コンピュータ３０は、汎用コンピュータシステムまたは、図１に関して説明したその他のコンピュータデバイスとすることができる。
【００２４】
ＥＦＳ３５は、ファイル暗号化を目的として非対称キーから対称マスターキーを導き出す。対称マスターキーは、例えば、キーデバイス３１に挿入される非対称キー３９から導き出される。対称マスターキーを使用することには、いくつかの利点がある。例えば、第一に、このような対称キーは、キーデバイス上に記憶された元の非対称キーペアに継続的にアクセスすることなく、再利用できる点である。キーキャッシュノードは、ＥＦＳのある実施例において、コンピュータメモリまたはメモリデバイスに対称マスターキーを記憶するために使用される。キーデバイス３１に関する２種類のキーキャッシュノードは、対称マスターキータイプのキャッシュとPin/CardState型のキャッシュである。いったん、対称マスターキータイプのキャッシュが確立されると、ＥＦＳがファイルを暗号化／復号化するために、キーデバイスがアクティベートされる（例えば、スマートカードがリーダの中に挿入される）必要はない。対称マスターキー型のキャッシュは、システムパラメータから判断すると、ワークステーションがロックされた後でも有効であるが、特定のユーザについては、使用をログオフした後に無効、使用不能にすることができる。これに対し、Pin/CardState型のキャッシュは、カードがリーダから取り出されたとたんに無効にできる。
【００２５】
第二に、対称マスターキーは、暗号化と復号化において、非対称キーよりはるかに高速である。最後に、対称マスターキーが使用されるＥＦＳ３５の実施例のさらに別の利点は、ユーザが遠隔的にＥＦＳ３５にアクセスする際、ある程度のポータビリティが得られることである。ＦＥＫによってエンドツーエンドで暗号化または復号化されたファイルは、リモートサーバからダウンロードされ、クライアントシステムによってアクセスされると、クライアントシステムでの復号化プロセスを必要とする。対称マスターキーは、キーデバイスが利用可能ないずれかのクライアントシステムのコンピュータメモリから導き出す、あるいは呼び出すことができる。対称マスターキーがいったん導き出されると、あるいは利用可能になると、暗号化または復号化されたファイルは、クライアントシステムにおいて復号化キーを発見するための追加の処理を行うことなく、複数のリモートサーバからダウンロードされる。
【００２６】
いくつかのＥＦＳにおいて、各ユーザの対称マスターキーは固有のものである。ユーザ本人だけが、自分の対称マスターキーを導き出すことができる。ユーザ以外の個人は、そのユーザの秘密キーを持っていないため、ユーザのマスターキーを導き出すことを禁じられる。対称マスターキーは、キーデバイス３１から読み出すことのできる非対称キーから、少なくとも一度読み出される。その後、対称マスターキーは、ランダムに生成されたファイル暗号化キー（ＦＥＫ）を暗号化するのに使用できる。
【００２７】
非対称キーペアは、例えば、キーデバイス３１の中に記憶できる。すると、対称マスターキーは、非対称キーペアの秘密キーから導き出される。あるいは、対称マスターキーは、非対称キーペアの両方のキーを使って導き出すこともできる。対称マスターキーがメモリ３２の中に記憶されると、ある実施例において、対称マスターキーは、起動のたびに、汎用コンピュータまたはオペレーティングシステムのためのセッションキーを使って暗号化される。
【００２８】
キーデバイス３１は、別の実施例において、スマートカード、ハードウェアセキュリティモジュール、トークン、ハードディスクまたは、非対称キーペアの秘密キーを安全に記憶するために構成可能な類似のデバイスであってもよい。キーデバイス３１は、非対称キーペアの秘密キーを記憶する汎用デバイスとして考えられる。このため、キーデバイスは、コンピュータ３０の周辺デバイスとして構築される。あるいは、キーデバイス３１は、コンピュータ３０のマザーボードに実際に接着またはその他の方法で固定される、プロセッサチップまたはその他のチップの一部、あるいは特定用途向け集積回路（ＡＳＩＣ）のような、非対称キーペアの秘密キーだけ、または非対称キーペアを含むチップのように、コンピュータ３０そのものに内蔵させることができる。このように、チップが実際に汎用コンピュータの中、そしてマザーボードの上に含められる場合がある。非対称キーペアの秘密キーを記憶するハードウェアデバイスがない場合、これは、ハードディスク上に記憶されるものなど、ソフトウェアにも記憶することができる。そのため、キーデバイスは非常に包括的と考えるべきである。
【００２９】
ＥＦＳ３５は、非対称キーペアの秘密キーから対称マスターキーを導き出すためのさまざまな実施例やアルゴリズムを使用できる。ＲＳＡ暗号化アルゴリズムは、周知の、容認された暗号化アルゴリズムである。ＲＳＡは、基本的に公開キー暗号方式に使用される。これ以外の、ＤＥＳ（Data Encryption Standard）、Triple DES，ＡＥＳ（Advanced Encryption Standard）等のアルゴリズムは、対称マスターキーによって暗号化されるＦＥＫを使ってデータファイルを暗号化、復号化するのに使用される。
【００３０】
ある実施例において、本明細書で考慮されるキーリストは、対称マスターキーのリスト、つまり「マスターキー履歴」とすることができる。新しい非対称キーが導入されると、過去の対称マスターキーがリストに追加され、新しいマスターキー、つまり新しい非対称キーから導き出されるマスターキーを使ってリストが暗号化される。別の実施例では、本明細書で提案されるキーリストに、非対称公開キー／秘密キーのペアおよび／またはＦＥＫのような他のＥＦＳキーを入れてもよい。
【００３１】
マスターキーが許可される場合、マスターキーがソフトウェア対称キーであることから、そのキーを安全に記憶することが可能である。このため、マスターキーを使用するＥＦＳシステムは、本明細書で提案するキー管理技術に特に適している。これに対し、多くの実施例において、ＲＳＡキーペアは、ＣＳＰ（Cryptographic Service Provider）の中に引き続き存在するため、ソフトウェアＲＳＡキー（またはそれらが生成するマスターキー）を永久保存する必要がない。「マスターキー履歴」の機能は、本発明の実施例の説明にあるように、ソフトウェアに基づくもの、ハードウェアに基づくもの、あるいはその他、あらゆる種類のキーを保護するのに使用できる。このようなキーのひとつが、ハードウェアＲＳＡ秘密キーから導き出されるマスターキーである。
【００３２】
「マスターキー履歴」の特異な面は、非認証（ｘ．５０９，ＸｒＭＬ等）ベースの非対称キーペアもまたＥＦＳとともに使用できるようにし、認証に基づくひとつの非対称キーを通じたアクセスだけを可能にしながら、システムによって記憶、管理、使用されるようにする点である。対称キーは、現行の認証済み公開キーを使ってラップされ、対応する非対称秘密キーを使って復号化される。これにより、システムのキーの利便性と全体的な多様性が増す。
【００３３】
つまり、図３に関して、本発明はＥＦＳ３５に関連するキーを管理するのに使用できる。どのようなＥＦＳも、本明細書に記載される技術を使用できる。ＥＦＳの例としては、MICROSOFT WINDOWS（登録商標）によって使用されるものがある。MICROSOFT（登録商標）EFSの一部のバージョンは、非対称キーペアから対称マスターキーを導き出す。対称マスターキーは、１または複数のＦＥＫを暗号化する。このため、本明細書において、キーがファイルを暗号化または復号化するものと述べられている場合、これは実際にＦＥＫの暗号化と復号化を行い、これが特定のファイルの暗号化または復号化に使用されるものと理解される。本発明は、このプロセスの個々のすべてのキーを管理するのに使用できる。
【００３４】
図４は、ユーザとの直接対話を持つこと（あるいは、これが最良であるといわれるかもしれないが、スクリーン上にユーザインタフェースを表示すること）が認められていない内部サービスから、スマートカード等のキーデバイスにアクセスするために、個人識別番号（ＰＩＮ）等のキーを読み出すシステムと方法の例を示す。キーを要求する入力されたコマンドがＬＳＡＳＳ（Local Security Authority Security Service）ＥＦＳ４０に到達すると、ＬＳＡＳＳ  ＥＦＳ４０は、プロセス４１（新プロセス４２という）を発生させ、これが、ユーザにキーの入力を促すユーザインタフェース４４を発生させる。キーは、必要に応じて暗号化／復号化に使用されるために、ＬＳＡＳＳ  ＥＦＳに送り返される。
【００３５】
図４に示されるプロセスにより、ＥＦＳは確実に、スマートカード上のハードウェアペースの秘密キーに基づくマスターキーが使用されるときに、キーリストのエントリを更新するのに必要なすべての個人識別番号（ＰＩＮ）を有することになる。このような状況のために、ＥＦＳシステムは、図のプロセスを通じて、複数のスマートカードのためのＰＩＮを獲得する。一般に、ＬＳＡＳＳは、ユーザと直接対話できないシステムサービスである。従って、ＥＦＳ４０は、例えばユーザに適当なＰＩＮを入力するよう促すユーザインタフェース４４を表示することにより、１または複数のＰＩＮを収集する別のプロセス４２を発生させる。プロセス４２は、次に、ＰＩＮを安全な方法でＬＳＡに送り返す（４３）。すると、ＥＦＳは、４３に示されているように、所定の期間だけＰＩＮをキャッシュに格納する。このＰＩＮは、暗号化されたファイルを復号化するために、スマートカード上の秘密キーにアクセスする際に使用される。
【００３６】
図４のその他の実施例も当業者によって推測できるであろう。例えば、図４に示されている動作を実現する別の方法は、ＥＦＳに対してＰＩＮプロンプトが必要か否かを判断するよう問い合わせを行うために、暗号化されたファイルにアクセスするクライアントアプリケーションに関するものである。その場合、アプリケーションはＰＩＮを求め、これをＬＳＡＳＳに送る。これにより、モダルプロンプトが可能となり、その結果、ユーザにとって、自分がＰＩＮの入力を促されていることがより明確となる。
【００３７】
図５は、本発明のさまざまな利点によって対応される問題の例を示す。キー、例えばＥＦＳ５５の中の第一のキー５９Ｂが変更されると、あるファイル５７の復号化には過去に使用されたキー５９Ａが必要となり、５８に記憶されているもの等のその他のファイルの復号化には、第一のキー５９Ａが必要となる。いずれの場合も、新規なキー、例えば第二のキー５９Ｃは、ファイル５７，５８の復号化に使用できない。従って、第二のキー５９Ｃを使ってファイル５７，５８に効率的かつシームレスに引き続きアクセスできるようにし、また第二のキー５９Ｃを使ってファイル５７，５８の再暗号化のための技術が望まれる。
【００３８】
ユーザがスマートカード上に記憶されたキーを使って多くのサーバ上の多くのファイルを暗号化した場合を考える。ユーザが現行キー（ＥＦＳによって現在使用されるキー）を変更する場合、古いファイルはすべて、その後も古いスマートカードのキーに従って暗号化され、ユーザは、例えば、そのような作業を実行できるキー変更ウィザードアプリケーション等を使って自分のすべてのファイルを手作業でキー変更しなければならず、また、ユーザにあまり知識がない場合は、現在のスマートカードを抜き、古いスマートカードを差し込まざるをえないかもしれない。古いカードを紛失しまっていれば、ユーザは自分のデータを、MICROSOFT（登録商標）EFSによって提供されるリカバリエージェント等の復元アプリケーションを使って復元しなければならない。問題は、ＥＦＳにキーを供給するために多数のスマートカードを使用するユーザにとって、より深刻である。
【００３９】
図５に示される問題を回避するために、ユーザが長い間に使用した各種の復号化キーを安全に記憶するために、キーリスト、あるいはキー履歴機能が実装される。問題はＥＦＳに関して述べられているが、本発明は、どのような設定の復号化キーを管理するのにも使用できる。ＥＦＳと使用した場合、本発明の実施例には、コンピュータ５０に、例えばレジストリキーを通じて、暗号化キーを追跡し続けるための自動プロセスをオンまたはオフにする設定を含めてもよい。このポリシーにより、ＥＦＳクライアントが、キー変更が実行されるときに過去に暗号化されたファイルの暗号化されたリストを自動的に維持するのをディスエーブルまたはイネーブルする。この機能がオペレーティングシステムに備えられていると、デフォルトでＯＮにすることができる。
【００４０】
図６は、このようなキーリスト６１０を示す。キーリスト６１０は、暗号化されたファイル、例えばファイル６０６に記憶されていてもよい。図の実施例において、ＥＦＳ６０５はすべてのキー、つまりMICROSOFT（登録商標）EFSの中のすべての対称マスターキー（このようなマスターキーがポリシーによってイネーブルされる場合）の履歴を保持する。このような実施例において、マスターキーがソフトウェア対称キーであることから、リスト６１０を安全に記憶することが可能である。過去キーを安全に記憶することに加え、キーリスト６１０の機能は、ソフトウェアＲＳＡキーを喪失または不正使用から保護することができる。また、この機能は、暗号化キーのバックアップの記憶において、また復元メカニズムとして、いくつかの利点を提供する。
【００４１】
特定のユーザのためにコンピュータ６００上で使用されたキーリスト６１０は、ユーザプロフィールの一部として記憶されるかもしれない。例えば、暗号ファイル６０６へのキーは、特定のユーザプロフィールに対応する。キーリスト６１０は、ファイルとして、レジストリ内のバイナリラージオブジェクト（ＢＬＯＢ）ストラクチャとして、あるいはＵＳＢドライブまたはスマートカード等の携帯デバイス上に記憶できる。MICROSOFT WINDOWS（登録商標）のオペレーティングシステムにおいて、キーリストを含むバイナリＢＬＯＢストラクチャに関するレジストリロケーションの例は、  
HKCU/Software/Microsoft/Windows NT/CurrentVersion/EFS/CurrentKeys/MasterKeyHistory
である。
【００４２】
例えば、EncryptionKeyHashと呼ばれる新しいレジストリ値は、MasterKeyHistoryレジストリに基づいて追加される。このレジストリ値は、キーリスト６１０の暗号化に使用される認証のハッシュを含んでいてもよい。
【００４３】
図７は、第二のキー７０９を使って暗号化されたキーリストの例７００を示す。第二のキー７０９はまた、現行キーとも呼ばれる。それは、第二のキー７０９が、ファイルを暗号化するためにＥＦＳシステムによって現在使用されているキー、あるいは前述のように、ＦＥＫと想定される。キーリスト７００は、複数の過去キー７０１−７０４を含み、これらは、過去キー７０１−７０４を使って暗号化されたファイル７０７，７０８についての復号化、暗号化、キー変更等のために、必要に応じて使用される。このため、キーリスト７００により、過去の暗号化キー７０１−７０４を使って暗号化されたファイル７０７，７０８に、現行または更新された暗号化キー７０９の所有の検証を通じてアクセスすることか可能となる。
【００４４】
キーリスト内のあるキーのフォーマットは、次のとおりとすることができる。
<sizeof(keydata),keydata>
上記以外のデータもこのキーリストストラクチャに記憶でき、これは実現例にすぎないことに注意することが重要である。
【００４５】
図７は、キーデータコラム７０５のサイズを提示することによってこのフォーマットを示したもので、図中、７０１ａは第一のキー７０１のサイズ、７０２ａは過去キー７０２のサイズ、７０３ａは過去キー７０３のサイズ、７０４ａは過去キー７０４のサイズである。サイズのフィールド、例えば７０１ａは、完全性のチェックとして機能する。このようなフィールドの使用は、不正なキーがファイルの暗号化に使用できないようにするのに役立つ。キーリスト７００の暗号化タイプは、ユーザプロフィールまたはレジストリの中の同じ場所、例えば、  
EFS/CurrentKeys/MasterKeyHistory/EncryptionKeyType
に記憶される。
【００４６】
このようなキーの数値として考えられるものには、例えば、  
EFS_KEY_TYPE_RSAKEY(0x00000001).EFS_KEY_TYPE_MASTERKEY(0x00000002)
である。
【００４７】
このため、ＥＦＳに基づくレジストリストラクチャの例は、  
HKCU/Software/Microsoft/Windows NT/CurrentVersion/EFS
CurrentKeys
Certificate Hash (= Current Key)
Master Key History
Encryption Key Type (RSA or MasterKey)
Encryption Key Hash
Hash1:Encrypted[sizeof(keydata1),keydata1=EcurrentKey{old smart card master key 1}]
Hash2:Encrypted[sizeof(keydata2),keydata2=EcurrentKey{old smart card master key 2}］
...
Hashn:Encrypted[sizeof(keydatan),keydatan=EcurrentKey{old smart card master key n}］
である。
【００４８】
本願で提案するキーリスト７００がＥＦＳと使用され、現行キー７０９がない実施例において、新しい現行キーがインストールされると、EncryptionKeyHashに対応するキーが新規エントリとしてキーリスト７００に追加される。このような実施例は、現行キー７０９がユーザによって誤って削除された場合に対応している。
【００４９】
過去キー７０１−７０４、例えば、過去のマスターキーは、定期的に現行キー７０９に暗号化される。この点において、ソフトウェアに基づくキーが現行キー７０９であればこれらはＲＳＡ−キーを使って暗号化され、スマートカードが現行キー７０９であればマスターキーが使用される。
【００５０】
このため、第一のキー７０１はもともと、ＥＦＳシステムのように、ファイルの暗号化のための現行キーかもしれず、現行キーは第二のキー７０９に変更されうる。キーは、さまざまな理由で変更される。安全上の理由のため、あるいは単に、第一のキー７０１にアクセスするためのスマートカード等のカードをなくしてしまったという理由で変更されるかもしれない。ある実現例において、スマートカードを使ってキー履歴が暗号化され、このカードを紛失した場合、キーリスト７００全体が失われ、ファイル７０７，７０８は、データ復元エージェントを使って復元しなければならない。別の実現例では、データ復元エージェントを使ってキーリスト７００を暗号化することもできる。
【００５１】
キーの変更は、ＥＦＳポリシーが、例えばＲＳＡキーである第一のキー７０１の使用を第二のキー、マスターキーの使用に変更した、あるいはその逆の場合にも行われる。現行キーとしての第一の暗号化キー７０１から現行キーとしての第二のキー７０９への変更プロセスは、次のように進められる。  
・キーリストはまず、第一のキー７０１を使って復号化される。  
・キーリストは次に、第二のキー７０２を使って再暗号化される。  
・第一のキー７０１、例えばスマートカードから導き出されたマスターキーは、第二のキー７０９に暗号化され、レジストリ内のリスト７００に追加される。
【００５２】
さらに、状況に応じて以下のステップが実行されてもよい。  
・第二のキー７０９がソフトウェアキーであれば、キーリスト７００は、直接ＲＳＡ法を使って有利に暗号化される。  
・第二のキー７０９がスマートカードキーであれば、キーリスト７００は、マスターキー方式を使って暗号化される。
【００５３】
図８は、ファイルをキー変更する、また再暗号化するためのプロセスの例を示す。図８のようなプロセスは、すべてのファイルのキー変更を長時間待つことのないシームレスなユーザエクスペリエンスを提供するためにコンピューティング資源が利用可能なときに長い期間にわたって動作するよう実現される。これは、長期間、すべてのファイルのキー変更を行う能力を促進するためのメカニズムである。図８のプロセスは、特に１枚または複数のスマートカードが使用され、多くのファイルが更新を必要とするが、同じプロセスまたはセッションでは完遂できない場合のファイルのキー変更を単純化する。過去に暗号化されたファイルにアクセスするためにキーリストを使用しても、過去キーを使って暗号化されたファイルのキー変更が必須となることはなく、管理しやすくするために、この作業を単に容易にするものである点に注意することも重要である。
【００５４】
このため、図８において、第一のファイルｘが選択され（８００）、ファイルｘの暗号化に使用されるキーが判断される（８０１）。この判断は、そのファイルとともに記憶され、適当な暗号化キーを指し示すポインタによって容易になる。次に、必要なキー、例えば第一のキーがキーリストから読み出され（８０２）、これを使ってファイルｘが復号化される（８０３）。ファイルｘは次に、ステップ８０４において、現行キー、例えば第二のキーを使って暗号化される。別のファイルのキー変更を行うのに十分なコンピューティング資源が利用できる場合は、それを行うとの判断が下される（８０５）。十分な資源がなければ、プロセスはそのような資源が利用可能となるまで休止状態となる（８０６）か、あるいは終了する。このように長期間にわたってファイルをキー変更することにより、ユーザが介入すること、あるいはユーザが復号化／暗号化プロセスを待つことが不要なバックグラウンドでのキー変更が可能となる。キー変更が済んでいないファイルには、単にキーリストを見て、復号化のための適当な過去キーを呼び出すか、あるいは現行キーを使って復号化することによってアクセスされる。
【００５５】
図９は、図８に示すプロセスの、より詳細な実施例を示す。図９は、より詳しくは、ファイルの暗号化にＥＦＳを採用する本発明の実施例に関する。図９に示されているように、ＥＦＳクライアントは、ファイルキー変更プロセスを開始する（９００）。ファイルが開かれる（９０１）。そのファイルがリモートファイルであるか否かが判断される（９０２）。そのファイルがローカルであれば、ローカルファイルにアクセスする（９０３）ためのＥＦＳプロセスが開始される。ファイルがリモートであれば、適当なＥＦＳの参照とプロセスが開始し、ファイルのあるサーバと相互作用し、暗号化されたファイルをＥＦＳクライアントにダウンロードする。いずれの場合も、キーリストを読み出すことができる（９０５）。
【００５６】
キーリストは、例えば、現行のＥＦＳマスターキー９０６を使って復号化される。MICROSOFT（登録商標）style EFSにおいて、キーを使ってＤＤＦを復号化し、ＦＥＫを読み出す（９０７）。新しいＤＤＦは、ファイル９０８に追加される。古いＤＤＦは、ファイル９０９から削除される。そのファイルのための適当なキーを指し示すポインタは、特定のＥＦＳシステムにおける整合性のために必要なその他の更新とともに更新される（９１０）。最後に、ファイルは閉じられる（９１１）。これで、ファイルのキー変更が無事に終了したことになる（９１２）。図９から当業者にとって明白であろう本発明の利点のひとつは、ファイルを明らかにせず、あるいはサーバ上での管理者の介入を必要とせず、またサーバで使用されるキーをクライアントに移動させることを必要とせずに、リモートサーバ上のファイルを容易に移動できる点である。
【００５７】
図１０は、ＥＦＳにおいて使用される現行キーを変更するプロセスを示す。過去に使用されたキー（第一のキー）は、キーリスト１０００を復号化するのに使用できる。過去キーは次にリスト１００１に追加され、リストは新たな現行キー１００２を使って暗号化できる。他のステップも実行される場合があるが、リスト更新プロセスはこれら３つのステップを含む。過去キーは、過去キーを使って暗号化されたファイルのリストにおいて利用可能となり、現行キーにアクセスできるものしか、過去キーにはアクセスできないことになる。このプロセスは、図７も参照しながら説明する。
【００５８】
図７に関して前述したように、本発明の実施例では、ＥＦＳシステムに内蔵されたキーリストが提案されている。このような実施例において、現行キーがなく、新しい現行キーがインストールされると、ステップ１００１において、EncryptionKeyHashに対応するキーがキーリストの中に新規エントリとして追加される。こうした実施例は、現行キーが削除された場合に対応する際に有利である。
【００５９】
図１０のプロセスは、過去キーをキーリストに追加するために定期的に行われても、また、どのキーが有益で必要と考えられるかによって、必要に応じて実行されてもよい。ＥＦＳにより、ユーザファイル、あるいは、さらに言えばＤＤＦを暗号化するのに第一のキーが使用され、第一のキーが第二のキーに変更されるたびに、図１０に示されているようなプロセスによって第一のキーをキーリストに記憶することは有益であろう。前述のように、キーを変更する理由はさまざまであり、例えば、第一のキー、例えばＲＳＡキーの使用に関するＥＦＳポリシーが、第二のキー、マスターキーの使用に変更される、またはその逆の場合である。現行キーとしての第一の暗号化キー７０１から現行キーとしての第二のキー７０９に変更するためのプロセスは、次のように進められる。
【００６０】
図７について前述したように、第二のキーがソフトウェアキーの場合、ステップ１００２において、キーリストは直接ＲＳＡ方式を使って暗号化されることに注意する。第二のキーがスマートカードキーであれば、ステップ１００２において、キーリストはマスターキー方式を使って暗号化されるであろう。
【００６１】
図１１は、キー変更ウィザードのためのＧＵＩ（Graphical User Interface）の例を示す。このようなウィザードは、ユーザに対し、ＥＦＳの中のファイルにアクセスするのに必要な過去キーをすべて入力するよう促す。図１１のウィザードは、図７に示されるキーリストを更新できる工程によってサポートされる。ウィザードを提示することにより、キー変更は半自動的に行われ、これは、ユーザによるプロセスへの入力が可能になるため、有益である。ＧＵＩ１１０１は、ディスプレイ表面１１００に表示される。図１１のＧＵＩ１１０１の構成要素は、例えば、ユーザに過去に使用したキーを入力するよう促すユーザプロンプト１１０２、復号化キーを入力するための文字入力エリア１１０３、自動的にキーを入力するための選択ボタン１１０５、ユーザが情報の入力を終え、キー情報がキーリストにロードされたこと、あるいはファイルをキー変更する、および／またはその他の理由でファイルにアクセスするために、入力されたキーが自動的に使用されるその他の記憶場所を示すコマンドボタン１１０４とすることができる。
【００６２】
図１２は、図７のキーリストにはないキー１２２０−１２２２を、例えばキーデバイス１２０１または図１１のＧＵＩを通じてコンピュータ１２００に導入し、ＥＦＳ１２０５が使用するためにキーキャッシュ１２３０の中に一時的に格納することのできる装置を示す。このようなキー１２２０−１２２２は、ユーザがログオフすると、不正使用を防止するために、メモリ１２０２から削除される。
【００６３】
図１２に示されているようなキャッシュ１２３０の使用をトリガする一般的な状況は、ユーザが複数のスマートカード上に複数のキーを記憶させて持っているというものである。何らかの理由で、図７のキーリスト等のソースからキーを取得することが困難または不可能かもしれない。このような設定において、第一のスマートカード搭載キー１２２０、第二のスマートカード搭載キー１２２１、第三のスマートカード搭載キー１２２２が、例えば、コンピュータ１２００に動作的に接続されるスマートカードリーダ等のキーデバイス１２０１に挿入される。キーを搭載しているカードが挿入されるたびに、コンピュータ１２００は、そのキーをキーキャッシュ１２３０に格納する。例えば、キー１２２０Ａ，１２２１Ａ，１２２２Ａは、それぞれキー１２２０，１２２１，１２２２のキャッシュに格納されたバージョンである。ファイル暗号化および復号化プロセス１２０３は、キャッシュに格納されたキー１２２０−１２２２を使って、必要に応じて、仮説的な記憶場所１２０４に記憶されたファイル１２０６を復号化および／または暗号化する。ファイル１２０６はまた、その後のキャッシュ格納動作が必要とならないようにするために、現行キーにキー変更される。
【００６４】
記憶装置１２０４と前の図面の６０４，５４，３４等の関連する構成要素について簡単に触れると、コンピューティングデバイスは、通常、少なくとも何らかの形のコンピュータ読取可能媒体を含むことに注意すべきである。コンピュータ読取可能媒体は、３０，５０，６００，１２００等のコンピュータによってアクセス可能な、どのような利用可能な媒体であってもよい。例えば、これに限定されないが、コンピュータ読取可能媒体には、コンピュータ記憶媒体と通信媒体がある。コンピュータ記憶媒体は、コンピュータ読取可能命令、データストラクチャ、プログラムモジュールその他のデータ等の情報を記憶するためのいずれかの方法や技術を使って実現される揮発性および不揮発性、取り外し可能および取り外し不能媒体を含む。コンピュータ記憶媒体には、これに限定されないが、ＲＡＭ，ＲＯＭ，ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤまたはその他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶デバイス、あるいは所望の情報を記憶するのに使用でき、３０，５０，６００，１２００等のコンピュータによってアクセス可能なその他あらゆる媒体がある。通信媒体は通常、コンピュータ読取可能命令、データストラクチャ、プログラムモジュールまたは、搬送波その他の伝送メカニズム等の変調データ信号におけるその他のデータを具現化する。「変調データ信号」という用語は、その特徴の１または複数が、その信号の中の情報を暗号化するように設定または変更されている信号を意味する。例えば、これに限定されないが、通信媒体には、有線ネットワークまたは直接配線接続等の有線媒体および、音響、ＲＦ、赤外線その他無線媒体等の無線媒体がある。上記のいずれかを組み合わせたものもまた、コンピュータ読取可能媒体の範囲に含められるべきである。
【００６５】
本明細書で説明したさまざまな技術は、ハードウェアまたはソフトウェア、あるいは適当であればその両方の組み合わせに関連して実現されると理解すべきである。このため、本発明による方法と装置、あるいはその特定の態様または部分は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードドライブまたは、プログラムコードがコンピュータ等の機械にロードされ、その機械によって実行されると、機械が本発明を実施するための装置となるようなその他の機械読取可能記憶媒体において具現化されるプログラムコード（つまり、命令）の形態をとることができる。プログラム可能コンピュータ上でプログラムコードが実行される場合、そのコンピュータデバイスは一般に、プロセッサ、プロセッサにより読みとられる記憶媒体（揮発性および不揮発性メモリおよび／または記憶素子を含む）、少なくともひとつの入力デバイスおよび少なくともひとつの出力デバイスを備える。例えば、データ処理ＡＰＩ、再利用可能な制御装置その他を通じて本発明のユーザインタフェース技術を実現または使用する１または複数のプログラムは、コンピュータシステムと通信するための高水準手順型言語またはオブジェクト指向プログラム言語で実現されていることが好ましい。しかしながら、プログラム、希望に応じてアセンブリまたは機械言語でも実現できる。いずれの場合も、言語はコンパイルまたは解釈された言語で、ハードウェアの実装と組み合わされる。
【００６６】
実施例は、１または複数の独立型コンピュータシステムに関連して本発明を使用することについて述べられているが、本発明はこれに限定されず、ネットワークまたは分散型コンピューティング環境等、どのようなコンピューティング環境に関しても実現できる。さらに、本発明は、複数の処理チップまたはデバイスの中で、またこれらの間で実現でき、記憶装置は複数のデバイスにわたって同様に実現される。このようなデバイスには、パーソナルコンピュータ、ネットワークサーバ、ハンドヘルドデバイス、スーパーコンピュータまたは、自動車や飛行機等の他のシステムに搭載されたコンピュータが含まれる。従って、本発明は、いずれかひとつ実施例に限定されるのではなく、添付の特許請求範囲による幅と範囲で解釈すべきである。
【図面の簡単な説明】
【００６７】
【図１】本発明の各種の態様での使用に適したコンピューティングデバイスの一例の基本的特徴の概要を表わすブロック図である。コンピューティングデバイスは、暗号化されたデータ１０３Ｂ，１０３Ｄ，１０４Ａ，１０５Ａを有する。これらのデータへのアクセスには、本明細書に記載された技術に従って管理することのできる１または複数の復号化キーを必要とする。
【図２】本発明を含み、コンピュータ化プロセスが実現される先行技術のネットワークコンピューティング環境の一例を示す図である。ネットワークコンピューティングデバイスは、暗号化されたデータの例２８０Ａ，２８０Ｂ，２８０Ｃ，２８０Ｄを記憶することができる。このようなデータへのアクセスは、本明細書に記載された技術に従って管理することのできる１または複数の復号化キーを必要とする。
【図３】ファイルを暗号化、復号化するために暗号化キーを使用するファイル暗号化システム（ＥＦＳ）の例を示す図である。キー３９は、キーデバイスの例３１等の場所から読み出される。プロセス３３は、キー３９またはこれから導き出されるキーを使い、さまざまな記憶場所３４のいずれかにおいて、ファイル３６を復号化することがある。
【図４】スマートカード等のキーデバイスから、個人識別番号（ＰＩＮ）等のキーを読み出すシステムと方法の例を示す図である。キーを要求する入力コマンドがＬＳＡＳＳ（Local Security Authority Subsystem Service）ＥＦＳ４０に到達すると、ＬＳＡＳＳ  ＥＦＳ４０は、プロセス４１を発生させ、これは新プロセス４２と呼ばれ、ユーザにキーの入力を促すユーザインタフェース４４を発生させる。キーはＬＳＡＳＳ  ＥＦＳに送り返され、必要に応じて暗号化／復号化に使用されるよう、スマートカード携帯デバイスに記憶されたキーにアクセスされる。
【図５】本発明のさまざまな利点によって対応される問題の例を示す図である。第一のキー、例えばＥＦＳ５５の第一のキー５９Ｂが変更されると、一部のファイル５７の復号化には過去に使用されたキー５９Ａが必要であり、その一方で、５８に記憶されているもののような他のファイルの復号化には第一のキー５９Ｂが必要となる。いずれにせよ、新しいキー、例えば第二のキー５９Ｃは、ファイル５７，５８の復号化に単独では使用できない。従って、第二のキー５９Ｃを使ってファイル５７，５８に効率的かつシームレスに継続的にアクセスし、また第二のキー５９Ｃを使ってファイル５７，５８を再暗号化するための技術が望まれる。
【図６】暗号化されたファイル、例えばファイル６０６の間で記憶できるキーリスト６１０を示す図である。キーリスト６１０の特性は図７に示される。
【図７】現行キー７０９を使って暗号化されるキーリストの例７００を示す図である。キーリストは複数の過去キー７０１−７０４を含み、これらのキーは、過去キー７０１−７０４を使って暗号化されたファイル７０７，７０８についての復号化、暗号化、キー変更等に、必要に応じて使用される。
【図８】ファイルのキー変更（再暗号化ともいう）のためのプロセスの一例を示す図である。図８に示されているようなプロセスは、長期にわたり、すべてのファイルについて時間のかかるキー変更が行われるのを待つことのない、シームレスなユーザ体験を提供するために、コンピューティング資源を利用可能なときに動作するよう構成することができる。
【図９】図８に示されるプロセスの、より詳細な実施例を示す図である。
【図１０】ＥＦＳにおいて使用される現行キーを変更するためのプロセスを示す図である。過去に使用されたキー（第一のキー）は、キーリストの復号化に使用できる。その後、その過去キーはリストに追加され、このリストは新しい現行キーを使って暗号化できる。過去キーは、その過去キーを使って暗号化されたいずれかのファイルに関するリストにおいて使用でき、現行キーにアクセスできるものだけが過去キーにアクセスできる。
【図１１】キー変更ウィザードのためのＧＵＩ（Graphical User Interface）の一例を示す図である。このようなウィザードはすべての過去キーと、ＥＦＳ内のファイルにアクセスするのに必要な現行キーおよび／または新しいキーを入力するようユーザに求める。
【図１２】図７のキーリスト上にないキー１２２０−１２２２が、例えばキーデバイス１２０１を通じてコンピュータ１２００に導入され、ＥＦＳによって使用されるよう、一時的にキャッシュに格納される装置を示す図である。このようなキーを、ユーザがログオフしたときに、不正使用を防止するため、メモリから削除することができる。
【図１】
2006222944.tif 000003
【図２】
2006222944.tif 000004
【図３】
2006222944.tif 000005
【図４】
2006222944.tif 000006
【図５】
2006222944.tif 000007
【図６】
2006222944.tif 000008
【図７】
2006222944.tif 000009
【図８】
2006222944.tif 000010
【図９】
2006222944.tif 000011
【図１０】
2006222944.tif 000012
【図１１】
2006222944.tif 000013
【図１２】
2006222944.tif 000014