説明

暗号化ファイル・システムにおける改善された入出力制御および効率

【課題】暗号化ファイル・システム(EFS:encrypted file system)において入出力制御および効率を改善する手法が提供される。
【解決手段】この手法では、ソフトウェア・アプリケーションが、第1バッファにデータを書き込み、次に不揮発性記憶デバイスに暗号化ファイル・システムがデータを保存することをリクエストする。暗号化ファイル・システムは、データを暗号化して、暗号化データを第2バッファに記憶し、次に、暗号化データを第2バッファから不揮発性記憶領域に書き込む。その一方でソフトウェア・アプリケーションは、データが不揮発性記憶領域にまだ書かれていなくても、データが第2バッファにコピーされた後、さらなるデータのバッファへの書き込みを再開できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化ファイル・システム(encrypted file system)における入出力制御および効率を改善する手法に関する。特に本発明は、暗号化ファイル・システムにデータを記憶する間にアプリケーションが待機しなければならない時間を短縮する手法を提供する。
【背景技術】
【0002】
暗号化ファイル・システムには、「フル・ディスク暗号化」(「ディスク全体暗号化」としても既知である)ならびにファイル・システム・レベル暗号化(「フォルダ暗号化」としても既知である)がある。名前が示すように、フル・ディスク暗号化では、スワップ・ファイルおよび一時ファイルを含むほぼすべてのファイルが暗号化される。ほぼすべてが暗号化されるため、ユーザは通常、どのファイルを暗号化するかを決定することはできない。一方、ファイル・システム・レベル暗号化は、ディスク暗号化の一形態であり、個々のファイル、ディレクトリ(フォルダ)、またはファイル・システム自体が暗号化される。典型的には、ファイル・システム・レベル暗号化の方が、特にファイルおよびディレクトリの暗号化に使用される暗号鍵に関して柔軟性がある。一般に、ファイル・システム・レベル暗号化ではファイル・システム・メタデータ(例えば、ディレクトリ構造、ファイル名など)は暗号化されず、その一方でフル・ディスク暗号化のもとでは従来、このメタデータは暗号化される。暗号化ファイル・システムの特定のタイプにかかわらず、暗号化ファイル・システムには入出力制御ならびに効率の面で課題がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
暗号化ファイル・システムは、非暗号化データを、暗号化アルゴリズムを用いて暗号化形式に暗号化してから、その暗号化データをハード・ドライブなどの不揮発性記憶デバイス上に記憶する。データを暗号化形式に暗号化して、それからその暗号化データを不揮発性記憶デバイスに書き込むには、比較的時間がかかる。1つの課題は、ソフトウェア・アプリケーションが続行するのが、暗号化ファイル・システムによるデータの暗号化および記憶を待ってからになるということである。これは、暗号化ファイル・システム、ならびに暗号化ファイル・システムを使用するシステムにおいて実行されるソフトウェア・アプリケーション両方に関して効率低下をもたらす。
【課題を解決するための手段】
【0004】
本発明は、ソフトウェア・アプリケーションが、第1バッファにデータを書き込み、次に不揮発性記憶デバイス上に暗号化ファイル・システムがデータを保存することをリクエストする手法を使用して、前述の課題を解決しようとするものである。暗号化ファイル・システムは、データを暗号化して、暗号化データを第2バッファに記憶し、次に、暗号化データを第2バッファから不揮発性記憶領域に書き込む。その一方でソフトウェア・アプリケーションは、データがまだ不揮発性記憶領域に書き込まれていなくても、データが第2バッファにコピーされた後、さらなるデータのバッファへの書き込みを再開できる。
【0005】
以下、単なる例として、添付の図面を参照して本発明の実施形態について記載する。
【図面の簡単な説明】
【0006】
【図1】本願明細書に記載される方法を実装することができるデータ処理システムのブロック図である。
【図2】図1に示された情報処理システム環境の拡張を提供し、本願明細書に記載される方法が、ネットワーク環境で動作する多種多様な情報処理システム上で実行可能であることを示す。
【図3】アプリケーションのデータを暗号化ファイル・システムにセキュアに保存するためのアプリケーションと暗号化ファイル・システムとの間のインターフェースの図である。
【図4】暗号化ファイル・システムをデータの暗号化に使用中、アプリケーションが新たなデータの書き込みを待機する必要がないように、アプリケーションがそのデータを、暗号化ファイル・システムを使用して保存することを示す流れ図である。
【発明を実施するための形態】
【0007】
以下の記載および図面には、具体的な特定の詳細事項を記載し、本発明の様々な実施形態の完全な理解を提供する。なお、本発明の様々な実施形態を不必要に曖昧にしないよう、コンピューティングおよびソフトウェアの技術に関連することの多い特定の周知の詳細事項は以下の開示には記載されない。さらに、当業者には当然のことであるが、以下に記載される詳細事項の1つ以上を用いずに本発明の他の実施形態を実践することができる。最後に、以下の開示では、ステップおよびシーケンスを参照して様々な方法が記載されるが、そのような記載は、本発明の実施形態の明確な実装を提供するものであり、ステップおよびステップのシーケンスは、本発明の実践に必須と受け取られてはならない。それどころか、下記の事項は、本発明の例の詳細な記載を提供することを目的としており、本発明自体を限定するものと受け取られてはならない。むしろ、様々な変形物が、本記載に続く特許請求の範囲により定義される本発明の範囲内に入ると考えられる。
【0008】
以下の詳細な説明は、全般的に上記の本発明の概要に従い、必要に応じて、本発明の様々な側面および実施形態の定義をさらに説明し、拡大する。この目的を達成するために、この詳細な説明では、まず、本発明に関連するソフトウェアまたはハードウェア、あるいはその両方の技術を実装するのに適した図1のコンピューティング環境について記載する。現代のコンピューティング技術が、複数の別々のデバイスにまたがって実行可能であることを強調するために、図2には、基本的なコンピューティング環境の拡張としてネットワーク化環境が示されている。
【0009】
図1は、情報処理システム100を示し、これは、本願明細書に記載されるコンピューティング動作を実行することができるコンピュータ・システムの単純化した例である。情報処理システム100は、プロセッサ・インターフェース・バス112に結合された1つ以上のプロセッサ110を含む。プロセッサ・インターフェース・バス112は、プロセッサ110を、メモリ・コントローラ・ハブ(MCH:Memory Controller Hub)としても既知であるノースブリッジ115に接続する。ノースブリッジ115は、システム・メモリ120に接続されており、プロセッサ(単数または複数)110がシステム・メモリにアクセスする手段を提供する。グラフィックス・コントローラ125もノースブリッジ115に接続されている。一実施形態では、PCI(Peripheral Component Interconnect:周辺コンポーネント・インターコネクト)Express(R)バス118が、ノースブリッジ115をグラフィックス・コントローラ125に接続するために使用されている。グラフィックス・コントローラ125は、コンピュータ・モニタなどのディスプレイ・デバイス130に接続されている。
【0010】
ノースブリッジ115およびサウスブリッジ135は、バス119を使用して相互に接続されている。一実施形態では、バスは、ノースブリッジ115とサウスブリッジ135との間で各方向にデータを高速転送するダイレクト・メディア・インターフェース(DMI:Direct Media Interface)バスである。別の実施形態では、周辺コンポーネント・インターコネクト(PCI)バスが、ノースブリッジと、サウスブリッジとを接続するために使用されている。I/Oコントローラ・ハブ(ICH:I/O Controller Hub)としても既知であるサウスブリッジ135は、一般に、ノースブリッジによって提供される能力よりも低速で動作する能力を実装するチップである。サウスブリッジ135は通常、様々なコンポーネントの接続に使用される様々なバスを提供する。このバスには、PCIおよびPCI Expressバス、ISAバス、システム管理バス(SMBusまたはSMB(System Management Bus))、ロー・ピン・カウント(LPC:Low Pin Count)バスが含まれ得る。LPCバスは、ブートROM196および「レガシー」I/Oデバイス(「スーパーI/O」チップを使用する)などの低帯域幅デバイスを接続するために使用されることが多い。「レガシー」I/Oデバイス(198)には、シリアルおよびパラレル・ポート、キーボード、マウス、フレキシブル・ディスク・コントローラが含まれ得る。さらにLPCバスが、サウスブリッジ135をトラステッド・プラットフォーム・モジュール(TPM:Trusted Platform Module)195に接続するために使用される。サウスブリッジ135に含まれることの多いその他のコンポーネントには、ダイレクト・メモリ・アクセス(DMA:Direct Memory Access)コントローラ、プログラマブル・インタラプト・コントローラ(PIC:Programmable Interrupt Controller)、および、サウスブリッジ135をハイブリッド・ハード・ディスク・ドライブなどの不揮発性記憶デバイス300にバス184を使用して接続する記憶デバイス・コントローラがある。
【0011】
ExpressCard(R)155は、ホットプラグ可能なデバイスを情報処理システムに接続するために使用されるスロットである。ExpressCard155は、ユニバーサル・シリアル・バス(USB:Universal Serial Bus)、PCI Expressバスの両方を使用してサウスブリッジ135に接続されるため、PCI ExpressおよびUSB両方の接続性をサポートする。サウスブリッジ135は、USBに接続するデバイスにUSB接続性を提供するUSBコントローラ140を含む。こうしたデバイスには、ウェブカメラ(カメラ)150、赤外線(IR:infrared)受信機148、ワイヤレス・パーソナル・エリア・ネットワーク(PANs:personal area networks)を提供するBluetooth(R)デバイス146、キーボードおよびトラックパッド144、ならびにそのほか、マウス、リムーバブル不揮発性記憶デバイス145、モデム、ネットワーク・カード、ISDNコネクタ、ファックス、プリンタ、USBハブ、およびその他多数のタイプのUSB接続デバイスなど、種々のUSB接続デバイス142が含まれる。リムーバブル不揮発性記憶デバイス145は、USB接続デバイスとして示されているが、リムーバブル不揮発性記憶デバイス145は、例えばFirewire(R)インターフェースなどの別のインターフェースを使用して接続されてもよいであろう。リムーバブル記憶デバイス145は、図3〜6に示されているハイブリッド・ディスク・ドライブ300などのハイブリッド・ディスク・ドライブとすることもできる。
【0012】
ワイヤレス・ローカル・エリア・ネットワーク(LAN:Local Area Network)デバイス175が、PCIまたはPCI Expressバス172を介してサウスブリッジ135に接続されている。LANデバイス175は、典型的には、情報処理システム100と、別のコンピュータ・システムまたはデバイスとの間でのワイヤレス通信にすべてが同じプロトコルを使用する無線変調技術のIEEE802.11標準のうちの1つを実装する。光学記憶デバイス190は、シリアルATA(SATA:Serial ATA)バス188を使用してサウスブリッジ135に接続されている。シリアルATAアダプタおよびデバイスは、高速シリアル・リンク上で通信する。シリアルATAバスは、サウスブリッジ135を、ハード・ディスク・ドライブなどの他の形態の記憶デバイスに接続するためにも使用されている。サウンド・カードなどの音声回路160が、バス158を介してサウスブリッジ135に接続されている。音声回路160は、音声ライン入力および光デジタル音声入力ポート162、光デジタル出力およびヘッドホン・ジャック164、内蔵スピーカ166、ならびに内蔵マイク168などの機能性を提供するために使用される。イーサネット(R)コントローラ170が、PCIまたはPCI Expressバスなどのバスを使用してサウスブリッジ135に接続されている。イーサネット・コントローラ170は、情報処理システム100を、ローカル・エリア・ネットワーク(LAN)、インターネット、およびその他のパブリックおよびプライベート・コンピュータ・ネットワークなどのコンピュータ・ネットワークと接続するために使用されている。
【0013】
図1は1つの情報処理システムを示すが、情報処理システムは多数の形態をとり得る。例えば、情報処理システムは、デスクトップ、サーバ、携帯用、ラップトップ、ノート型、またはその他のフォーム・ファクタのコンピュータもしくはデータ処理システムの形態をとり得る。さらに情報処理システムは、携帯情報端末(PDA:personal digital assistant)、ゲーム・デバイス、ATM機、携帯用電話デバイス、通信デバイス、またはプロセッサとメモリとを含んだその他のデバイスなど、他のフォーム・ファクタをとることもできる。
【0014】
図1に示され本願明細書に記載されている、セキュリティ機能を提供するトラステッド・プラットフォーム・モジュール(TPM195)は、ハードウェア・セキュリティ・モジュール(HSM:hardware security module)の一例にすぎない。したがって、本願明細書に記載され、請求されるTPMは、任意のタイプのHSMを含み、次に限定はされないが、「トラステッド・プラットフォーム・モジュール(TPM)規格バージョン1.2」という題の、トラステッド・コンピューティング・グループ(TCG:Trusted Computing Groups)標準に準拠するハードウェア・セキュリティ・デバイスを含む。TPMは、図2に略図が示されているものなどの様々な情報処理システムに組み込まれ得るハードウェア・セキュリティ・サブシステムである。
【0015】
図2は、図1に示された情報処理システム環境の拡張を提供し、本願明細書に記載される方法が、ネットワーク環境で動作する多種多様な情報処理システム上で実行可能であることを示す。情報処理システムのタイプは、ハンドヘルド・コンピュータ/移動電話210などの小型のハンドヘルド・デバイスから、メインフレーム・コンピュータ270などの大型メインフレーム・システムまで多岐にわたる。ハンドヘルド・コンピュータ210の例には、携帯情報端末(PDA)、MP3プレーヤ、携帯用テレビ、およびコンパクト・ディスク・プレーヤなどの個人用娯楽デバイスがある。情報処理システムの他の例には、ペン、すなわちタブレット・コンピュータ220、ラップトップ、すなわちノート型コンピュータ230、ワークステーション240、パーソナル・コンピュータ・システム250、およびサーバ260がある。図2に個別に示されていない他のタイプの情報処理システムは、情報処理システム280によって表されている。図のように、コンピュータ・ネットワーク200を使用して、様々な情報処理システムをともにネットワーク化することが可能である。様々な情報処理システムを相互接続するために使用できるコンピュータ・ネットワークのタイプには、ローカル・エリア・ネットワーク(LAN)、ワイヤレス・ローカル・エリア・ネットワーク(WLAN:Wireless Local Area Network)、インターネット、公衆交換電話網(PSTN:Public Switched Telephone Network)、その他のワイヤレス・ネットワーク、および情報処理システムを相互接続するために使用可能なその他任意のネットワーク・トポロジが含まれる。情報処理システムの多くは、ハード・ドライブまたは不揮発性メモリ、あるいはその両方などの不揮発性データ・ストアを含む。図2に示されている情報処理システムの一部は、独立した不揮発性データ・ストアとともに示されている(サーバ260は不揮発性データ・ストア265とともに示されており、メインフレーム・コンピュータ270は不揮発性データ・ストア275とともに示されており、さらに情報処理システム280は不揮発性データ・ストア285とともに示されている)。不揮発性データ・ストアは、様々な情報処理システムに外付けされるコンポーネントとされても、情報処理システムのうちの1つに内蔵されてもよい。さらに、リムーバブル不揮発性記憶デバイス145を情報処理システムのUSBポートまたはその他のコネクタに接続するなど、様々な技術を使用して、リムーバブル不揮発性記憶デバイス145を2つ以上の情報処理システム間で共有することが可能である。
【0016】
図3は、アプリケーションのデータを暗号化ファイル・システムにセキュアに保存するためのアプリケーションと暗号化ファイル・システムとの間のインターフェースの図である。アプリケーション300は、データ310を第1バッファ320に書き込む。図のように、第1バッファは、アプリケーション300により使用または生成される暗号化データの記憶に使用される。バッファ320が一杯になったときなど、ある時点で、データを暗号化ファイル・システム375に書き込むよう暗号化ファイル・システム・プロセス330にリクエストが行われる。一実施形態では、暗号化ファイル・システム・プロセスは、オペレーティング・システムのカーネル内で実行されるカーネル・プロセスである。
【0017】
暗号化ファイル・システム・プロセス330は、第1バッファ320からデータを読み出し、暗号化データ340を第2バッファ350に書き込む。一実施形態では、データは、第1バッファ320から読み出されて暗号化され、結果として生じる暗号化データ340が第2バッファ350に記憶される。別の実施形態では、データは、第1バッファ320から読み出され、第2バッファ350に書き込まれて、次に第2バッファにおいてその場で(in place)暗号化される。暗号化データ340が作成されて第2バッファ350に記憶された後(例えば、上述の実施形態のうちの1つを使用)、続いて暗号化ファイル・システム・プロセス330はディスク書き込み360を実行し、その結果、暗号化データが第2バッファ350から読み出されて、暗号化ファイル・システムの一部である不揮発性データ・ストア370に記憶される。
【0018】
アプリケーション300は、暗号化ファイル・システム・プロセス330によって、データが第1バッファ320から読み出された後、さらなるデータを第1バッファ320に書き込むことができる。一実施形態では、暗号化ファイル・システム・プロセスは、アプリケーション300からリクエストを受けると、第1バッファ320をロックする。暗号化ファイル・システム・プロセス330は、データの読み出しを終えると、アプリケーション300が第1バッファへのデータの書き込みを再開できるよう第1バッファ320をロック解除(unlock)する。このように、アプリケーション300は、第2バッファ350に記憶されている暗号化データのすべてが暗号化データ・ストア370に書き込まれる前に、第1バッファ300に対するデータの書き込みを再開することができる。
【0019】
図4は、暗号化ファイル・システムをデータの暗号化に使用中、アプリケーションが新たなデータの書き込みを待機する必要がないように、アプリケーションがそのデータを、暗号化ファイル・システムを使用して保存すること示す流れ図である。ソフトウェア・アプリケーションの処理は300にて開始し、その後ステップ410でソフトウェア・アプリケーションは、非暗号化データを、ソフトウェア・アプリケーションが実行されている情報処理システムのメモリに記憶される第1バッファ320に書き込む。ある時点で(例えば、第1バッファ320が一杯になったときまたはほぼ一杯になったときなど)、バッファに書き込まれたデータを、暗号化ファイル・システムにより管理されている不揮発性記憶装置に保存するようリクエストが行われる(ステップ420)。一実施形態では、リクエストは、第1バッファ320のポインタまたはアドレス、ならびに暗号化ファイル・システム内でデータが記憶されるべき任意のファイル特性(例えば、ファイル名、ファイル位置、ディレクトリなど)を含む。ステップ425で、ソフトウェア・アプリケーションは、暗号化ファイル・システム・プロセスにより第1バッファがロック解除されるまで、第1バッファ320に対するさらなるデータの書き込みを待機する。
【0020】
暗号化ファイル・システム処理(例えば、オペレーティング・システム・カーネル・プロセスにより実行される)が、330にて開始するよう示されており、その後ステップ430にて暗号化ファイル・システム・プロセスは、データを不揮発性記憶装置に保存するリクエストを受ける。ステップ440にて、暗号化ファイル・システムは、暗号化データの記憶に使用されることになる既存の第2バッファを、割り当てまたは使用する。ステップ450にて、暗号化ファイル・システム・プロセスが第1バッファ320からデータを読み出している間、第1バッファはロックされ、ソフトウェア・アプリケーション(または他のソフトウェア・アプリケーション)が、暗号化ファイル・システム・プロセスによるデータの読み出し中に第1バッファにデータを書き込めるようにする。第1実施形態では、ステップ460にて、非暗号化データが第1バッファ320から読み出され、暗号化ファイル・システム・プロセスにより暗号化され、暗号化データが第2バッファ350に記憶される。第2実施形態では、ステップ460にて、非暗号化データが第1バッファ320から読み出され、第2バッファ350に書き込まれ、その場で暗号化される。一方、第3実施形態では、ステップ460にて、非暗号化データが第1バッファ320から読み出され、別のバッファ(第3バッファ)に書き込まれ、次に第3バッファ内のデータが読み出されて暗号化され、結果として生じる暗号化データが第2バッファ350に記憶される。いずれの場合でも、ステップ470にて暗号化ファイル・システム・プロセスは、第1バッファからすべてのデータが読み出された後、第1バッファをロック解除する。第1実施形態を使用すると、第1バッファ320からすべてのデータが読み出され、結果として生じる暗号化データが第2バッファ350に書き込まれると、第1バッファがロック解除される。第2実施形態を用いると、すべての非暗号化データが第1バッファ320から読み出されて第2バッファ350に書き込まれると、第1バッファがロック解除される(すなわち、その場で暗号化が実行される前)。最後に、第3実施形態を使用すると、第1バッファは、第1バッファ320からすべての非暗号化データが読み出されて、「第3」バッファに書き込まれるとロック解除される(データが暗号化され第2バッファ350に書き込まれる前)。
【0021】
第1バッファ320がロック解除されると、ステップ475にて、ソフトウェア・アプリケーションが通知を受け、ソフトウェア・アプリケーションは、結果として生じる暗号化データが実際に不揮発性記憶装置に書き込まれるのを待つ必要なく、第1バッファ320を使用してデータの読み出しおよび書き込みを再開することができる。ステップ475と同時に、ステップ480にて、暗号化ファイル・システム・プロセスによる、第2バッファ350に記憶された暗号化データの、暗号化ファイル・システムにより管理されている不揮発性記憶装置370への書き込みが行われる。上記のように、暗号化ファイル・システム・プロセスが暗号化データをデータ・ストア370に書き込んでいる間、暗号化ファイル・システムにより管理されている不揮発性記憶装置に最終的に書き込まれるデータの第1バッファ320への書き込みを、ソフトウェア・アプリケーションが自由に再開できる。ステップ490にて、暗号化データが不揮発性記憶装置に書き込まれた後、第2バッファの記憶に使用されているメモリを解放するために、第2バッファが割り当て解除(解放)される。暗号化ファイル・システム処理は、ソフトウェア・アプリケーションによって、さらなるデータを読み出すよう、またはそれを暗号化ファイル・システムにより管理されている不揮発性記憶領域に書き込むよう暗号化ファイル・システムがリクエストされるまで、495にて終了する。
【0022】
本発明の好適な実装の1つは、クライアント・アプリケーション、すなわち、例えばコンピュータのランダム・アクセス・メモリに常駐するとよいコード・モジュール内の命令のセット(プログラム・コード)またはその他の機能的記述情報(functional descriptive material)である。命令セットは、コンピュータによって要求されるまで、例えばハード・ディスク・ドライブ内などの別のコンピュータ・メモリ、または光ディスク(最終的にCD ROMにおいて使用される)もしくはフレキシブル・ディスク(最終的にフレキシブル・ディスク・ドライブにおいて使用される)などのリムーバブル・メモリなどに記憶されていても、またはインターネットもしくはその他のコンピュータ・ネットワークを介してダウンロードされてもよい。したがって、本発明は、コンピュータ用のコンピュータ・プログラム製品として実装されてもよい。さらに、記載された様々な方法は、都合のよいことに、ソフトウェアによって選択的に有効化または再設定される汎用コンピュータによって実装されるが、当該の方法が、ハードウェア、ファームウェア、または要求される方法ステップを実行するよう構築された、より特殊な装置において実行され得ることも、当業者には当然のことである。機能的記述情報は、機能性を機械に与える情報である。機能的記述情報は、次に限定されるものではないが、コンピュータ・プログラム、命令、ルール、ファクト(fact)、計算可能関数の定義、オブジェクト、データ構造を含む。
【0023】
本発明の特定の実施形態を示し説明したが、当業者には当然のことながら、本願明細書の教示に基づき、本発明およびそのより広範な側面から逸脱することなく、変更を加えることおよび改変することができる。したがって、添付の特許請求の範囲は、そのような変更および改変すべてを、本発明の範囲内にあるものとしてその範囲内に含むものとする。さらに、当然のことながら、本発明は添付の特許請求の範囲のみによって定義される。当業者には当然のことながら、導入される請求項の構成要素の特定数が意図される場合、そのような意図は請求項内で明確に述べられ、そのように述べられていなければそのような限定は存在しない。理解するための支援として非限定的な例を挙げると、以下の添付の特許請求の範囲は、請求項の構成要素を導入するために、前置き表現「少なくとも1つの」および「1つ以上の」の利用を含む。しかし、そのような表現の使用は、不定冠詞「a」または「an」による請求項の構成要素の導入が、当該の導入された請求項の構成要素を含む特定の請求項を、当該構成要素を1つのみ含む発明に制限することを意味すると解釈されるべきではない。これは、同じ請求項が前置き表現「1つ以上の」または「少なくとも1つの」と、「a」または「an」などの不定冠詞とを含む場合であっても同じである。請求項における定冠詞の使用についても同じことが言える。

【特許請求の範囲】
【請求項1】
コンピュータに実装される方法であって、
ソフトウェア・アプリケーションによって、第1セットのデータを第1バッファに書き込むステップと、
前記第1バッファに記憶された前記データを暗号化ファイル・システムが保存することをリクエストするステップと、
前記暗号化ファイル・システムによって、前記第1セットのデータを暗号化するステップであって、結果として第1セットの暗号化データが生じ、前記第1セットの暗号化データは、第2バッファに記憶される、前記ステップと、
前記暗号化ファイル・システムによって、前記第1セットの暗号化データを不揮発性記憶領域に書き込むステップと、
前記ソフトウェア・アプリケーションによって、第2セットのデータを前記第1バッファに書き込むステップであって、前記第2セットのデータは、前記第1セットの暗号化データの前記不揮発性記憶領域への書き込みを前記暗号化ファイル・システムが完了する前に、前記第1バッファに書き込まれる、前記ステップと、
を含む、方法。
【請求項2】
前記第1バッファがロック解除されるまで前記第1バッファにさらなるデータが書き込まれないように、前記リクエストの後に前記第1バッファをロックするステップと、
前記第1バッファをロック解除するステップであって、前記ロック解除は、前記暗号化の後、ただし前記第1セットの暗号化データがすべて前記不揮発性記憶領域に書き込まれる前に実行される、前記ステップと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記ソフトウェア・アプリケーションは、前記第1バッファがロック解除されるまで、前記第2セットのデータの前記第1バッファへの書き込みを待機する、請求項2に記載の方法。
【請求項4】
オペレーティング・システム・カーネル・プロセスが、前記暗号化と、前記第1セットの暗号化データの前記不揮発性記憶領域への前記書き込みとを実行する、請求項1に記載の方法。
【請求項5】
前記第1セットのデータを前記第1バッファに書き込む前に、前記第1バッファが前記ソフトウェア・アプリケーションによって所有されるよう前記第1バッファを割り当てるステップであって、前記リクエストするステップは、前記第1バッファのアドレスを前記暗号化ファイル・システムに送るステップを含む、前記ステップと、
前記ソフトウェア・アプリケーションから前記リクエストを受けた後に、前記暗号化ファイル・システムによって前記第1バッファをロックするステップであって、前記ロックは、前記ソフトウェア・アプリケーションを含め、コンピュータ・システムにおいて実行されているいずれのソフトウェア・アプリケーションもデータを前記第1バッファに書き込むことができないようにする、前記ステップと、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記暗号化を実行する前に、前記暗号化ファイル・システムによって前記第2バッファを割り当てるステップと、
前記第1セットのデータを前記第1バッファから読み出すステップと、
前記第1セットのデータを前記第2バッファに書き込むステップと、
前記第1セットのデータが前記第2バッファに書き込まれた後に、前記第1バッファをロック解除するステップと、
前記第2バッファに書き込まれた前記データをその場で暗号化するステップであって、結果として前記第1セットの暗号化データが前記第2バッファに記憶される、前記ステップと、
をさらに含む、請求項5に記載の方法。
【請求項7】
前記第1バッファがロック解除されたという通知を、前記ソフトウェア・アプリケーションにて受けるステップと、
前記第1セットのデータの前記暗号化が前記暗号化ファイル・システムによって完了される前に、前記ソフトウェア・アプリケーションによって前記第2セットのデータを前記第1バッファに書き込むステップと、
をさらに含む、請求項6に記載の方法。
【請求項8】
1つ以上のプロセッサと、
前記プロセッサのうちの少なくとも1つによってアクセス可能なメモリと、
前記プロセッサのうちの1つ以上によってアクセス可能な不揮発性記憶デバイスと、
前記プロセッサによって実行されるオペレーティング・システムであって、前記オペレーティング・システムは、暗号化データを前記不揮発性記憶デバイスに記憶する暗号化ファイル・システムを含む、前記オペレーティング・システムと、
前記オペレーティング・システムによって管理され、前記プロセッサのうちの1つ以上によって実行されるソフトウェア・アプリケーションと、
命令のセットであって、以下のアクション:
前記ソフトウェア・アプリケーションによって、第1セットのデータを、前記メモリに記憶される第1バッファに書き込むこと、
前記第1バッファに記憶された前記データを前記暗号化ファイル・システムが保存することをリクエストすること、
前記暗号化ファイル・システムによって、前記第1セットのデータを暗号化することであって、結果として第1セットの暗号化データが生じ、前記第1セットの暗号化データは、前記メモリに記憶される第2バッファに記憶される、前記暗号化すること、
前記暗号化ファイル・システムによって、前記第1セットの暗号化データを前記不揮発性記憶デバイスに書き込むこと、および
前記ソフトウェア・アプリケーションによって、第2セットのデータを前記第1バッファに書き込むことであって、前記第2セットのデータは、前記第1セットの暗号化データの前記不揮発性記憶領域への書き込みを前記暗号化ファイル・システムが完了する前に、前記第1バッファに書き込まれる、前記書き込むこと、
を実行するために、メモリにロードされて前記プロセッサのうちの少なくとも1つによって実行される、前記命令のセットと、
を含む、情報処理システム。
【請求項9】
前記プロセッサのうちの少なくとも1つによって実行される前記命令は、
前記第1バッファがロック解除されるまで前記第1バッファにさらなるデータが書き込まれないように、前記リクエストの後に前記第1バッファをロックすること、および
前記第1バッファをロック解除することであって、前記ロック解除は、前記暗号化の後、ただし前記第1セットの暗号化データがすべて前記不揮発性記憶領域に書き込まれる前に実行される、前記ロック解除すること、
を含むさらなるアクションを実行する、請求項8に記載の情報処理システム。
【請求項10】
前記ソフトウェア・アプリケーションは、前記第1バッファがロック解除されるまで、前記第2セットのデータの前記第1バッファへの書き込みを待機する、請求項9に記載の情報処理システム。
【請求項11】
前記プロセッサのうちの少なくとも1つによって実行される前記命令は、
前記第1セットのデータを前記第1バッファに書き込む前に、前記第1バッファが前記ソフトウェア・アプリケーションによって所有されるよう前記メモリ内の前記第1バッファを割り当てることであって、前記リクエストすることは、前記第1バッファのアドレスを前記暗号化ファイル・システムに送ることを含む、前記割り当てること、および
前記ソフトウェア・アプリケーションから前記リクエストを受けた後に、前記暗号化ファイル・システムによって前記第1バッファをロックすることであって、前記ロックは、前記ソフトウェア・アプリケーションを含め、前記オペレーティング・システムにおいて実行されているいずれのソフトウェア・アプリケーションもデータを前記第1バッファに書き込むことができないようにする、前記ロックすること、
を含むさらなるアクションを実行する、請求項8に記載の情報処理システム。
【請求項12】
前記プロセッサのうちの少なくとも1つによって実行される前記命令は、
前記暗号化を実行する前に、前記暗号化ファイル・システムによって前記第2バッファを割り当てること、
前記第1セットのデータを前記第1バッファから読み出すこと、
前記第1セットのデータを前記第2バッファに書き込むこと、
前記第1セットのデータが前記第2バッファに書き込まれた後に、前記第1バッファをロック解除すること、および
前記第2バッファに書き込まれた前記データをその場で暗号化することであって、結果として前記第1セットの暗号化データが前記第2バッファに記憶される、前記暗号化すること、
を含むさらなるアクションを実行する、請求項11に記載の情報処理システム。
【請求項13】
前記プロセッサのうちの少なくとも1つによって実行される前記命令は、
前記第1バッファがロック解除されたという通知を、前記ソフトウェア・アプリケーションにて受けること、および
前記第1セットのデータの前記暗号化が前記暗号化ファイル・システムによって完了される前に、前記ソフトウェア・アプリケーションによって前記第2セットのデータを前記第1バッファに書き込むこと、
を含むさらなるアクションを実行する、請求項12に記載の情報処理システム。
【請求項14】
機能的記述情報を含み、コンピュータ可読媒体に記憶されたコンピュータ・プログラム製品であって、前記機能的記述情報は、情報処理システムによって実行されると、前記情報処理システムに、
ソフトウェア・アプリケーションによって、第1セットのデータを第1バッファに書き込むこと、
前記第1バッファに記憶された前記データを暗号化ファイル・システムが保存することをリクエストすること、
前記暗号化ファイル・システムによって、前記第1セットのデータを暗号化することであって、結果として第1セットの暗号化データが生じ、前記第1セットの暗号化データは、第2バッファに記憶される、前記暗号化すること、
前記暗号化ファイル・システムによって、前記第1セットの暗号化データを不揮発性記憶領域に書き込むこと、および
前記ソフトウェア・アプリケーションによって、第2セットのデータを前記第1バッファに書き込むことであって、前記第2セットのデータは、前記第1セットの暗号化データの前記不揮発性記憶領域への書き込みを前記暗号化ファイル・システムが完了する前に、前記第1バッファに書き込まれる、前記書き込むこと、
を含むアクションを実行させる、コンピュータ・プログラム製品。
【請求項15】
前記第1バッファがロック解除されるまで前記第1バッファにさらなるデータが書き込まれないように、前記リクエストの後に前記第1バッファをロックすること、および
前記第1バッファをロック解除することであって、前記ロック解除は、前記暗号化の後、ただし前記第1セットの暗号化データがすべて前記不揮発性記憶領域に書き込まれる前に実行される、前記ロック解除すること、
を含むさらなるアクションを前記情報処理システムに実行させる機能的記述情報をさらに含む、請求項14に記載のコンピュータ・プログラム製品。
【請求項16】
前記ソフトウェア・アプリケーションは、前記第1バッファがロック解除されるまで、前記第2セットのデータの前記第1バッファへの書き込みを待機する、請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
オペレーティング・システム・カーネル・プロセスが、前記暗号化と、前記第1セットの暗号化データの前記不揮発性記憶領域への前記書き込みとを実行する、請求項14に記載のコンピュータ・プログラム製品。
【請求項18】
前記第1セットのデータを前記第1バッファに書き込む前に、前記第1バッファが前記ソフトウェア・アプリケーションによって所有されるよう前記第1バッファを割り当てることであって、前記リクエストすることは、前記第1バッファのアドレスを前記暗号化ファイル・システムに送ることを含む、前記割り当てること、および
前記ソフトウェア・アプリケーションから前記リクエストを受けた後に、前記暗号化ファイル・システムによって前記第1バッファをロックすることであって、前記ロックは、前記ソフトウェア・アプリケーションを含め、コンピュータ・システムにおいて実行されているいずれのソフトウェア・アプリケーションもデータを前記第1バッファに書き込むことができないようにする、前記ロックすること、
を含むさらなるアクションを前記情報処理システムに実行させる機能的記述情報をさらに含む、請求項14に記載のコンピュータ・プログラム製品。
【請求項19】
前記暗号化を実行する前に、前記暗号化ファイル・システムによって前記第2バッファを割り当てること、
前記第1セットのデータを前記第1バッファから読み出すこと、
前記第1セットのデータを前記第2バッファに書き込むこと、
前記第1セットのデータが前記第2バッファに書き込まれた後に、前記第1バッファをロック解除すること、および
前記第2バッファに書き込まれた前記データをその場で暗号化することであって、結果として前記第1セットの暗号化データが前記第2バッファに記憶される、前記暗号化すること、
を含むさらなるアクションを前記情報処理システムに実行させる機能的記述情報をさらに含む、請求項18に記載のコンピュータ・プログラム製品。
【請求項20】
前記第1バッファがロック解除されたという通知を、前記ソフトウェア・アプリケーションにて受けること、および
前記第1セットのデータの前記暗号化が前記暗号化ファイル・システムによって完了される前に、前記ソフトウェア・アプリケーションによって前記第2セットのデータを前記第1バッファに書き込むこと、
を含むさらなるアクションを前記情報処理システムに実行させる機能的記述情報をさらに含む、請求項19に記載のコンピュータ・プログラム製品。
【請求項21】
コンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されると、請求項1〜7に記載のすべての前記ステップを実行するようになっているプログラム・コード手段を含む、コンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2011−530754(P2011−530754A)
【公表日】平成23年12月22日(2011.12.22)
【国際特許分類】
【出願番号】特願2011−522476(P2011−522476)
【出願日】平成21年8月3日(2009.8.3)
【国際出願番号】PCT/EP2009/060009
【国際公開番号】WO2010/018093
【国際公開日】平成22年2月18日(2010.2.18)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】