(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスでソフトウェアアプリケーションから読み取り要求を受信し、前記コンピューティングデバイスに結合されたストレージデバイスに格納されたデータの第１のデータブロックに関する読み取りタスクを実行する段階と、
前記第１のデータブロックに関連する第１のメタデータキャッシュで第１の参照暗号化コードにアクセスする段階と、
前記第１のデータブロックに関する第１の新しい暗号化コードを算出する段階と、
前記第１の新しい暗号化コードを前記第１の参照暗号化コードと比較する段階と、
前記第１の新しい暗号化コードが前記第１の参照暗号化コードと一致する場合に、前記読み取り要求を承諾する段階と、
前記第１の新しい暗号化コードが前記第１の参照暗号化コードと不一致の場合に、前記読み取り要求を拒否する段階と
を備え、
前記読み取りタスクは、前記第１のデータブロックを読み取ることを含み、
前記承諾する段階は、前記読み取りタスクを促進する段階を有し、
前記拒否する段階は、前記読み取り要求に応答してエラーメッセージを発行する段階を有し、
前記第１の参照暗号化コードを含むデータブロックが前記第１のメタデータキャッシュから欠落する場合に、前記読み取り要求が提出され、欠落した前記データブロックに対する前記読み取りタスクを促進する、方法。
【請求項２】
前記第１の参照暗号化コードおよび前記第１の新しい暗号化コードは、ハッシュベースのメッセージ認証コード（ＨＭＡＣ）を含む、請求項１に記載の方法。
【請求項３】
前記ソフトウェアアプリケーションは、前記コンピューティングデバイスで起動するオペレーティングシステムを含む、請求項１または２に記載の方法。
【請求項４】
コンピューティングデバイスで前記ソフトウェアアプリケーションから書き込み要求を受信し、第２のデータブロックに関する書き込みタスクを実行する段階と、
前記第２のデータブロックに関連する第２のメタデータキャッシュで第２の参照暗号化コードにアクセスする段階と、
前記第２のデータブロックに関する第２の新しい暗号化コードを算出する段階と、
前記第２のメタデータキャッシュ中の前記第２の新しい暗号化コードにより前記第２の参照暗号化コードを置換する段階と、
前記書き込み要求を承諾する段階とを更に備え、
前記書き込みタスクは、前記ストレージデバイスに格納された前記データに前記第２のデータブロックを書き込むことを含み、
前記承諾する段階は、前記書き込みタスクを促進する段階を有する、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記第２のメタデータキャッシュは、複数の将来の読み取り要求のために前記第２の新しい暗号化コードが参照暗号化コードとして使用されるように、前記第２の新しい暗号化コードを維持する、請求項４に記載の方法。
【請求項６】
前記第２の参照暗号化コードおよび前記第２の新しい暗号化コードは、ハッシュベースのメッセージ認証コード（ＨＭＡＣ）を含む、請求項４または５に記載の方法。
【請求項７】
前記ソフトウェアアプリケーションは、前記コンピューティングデバイスで起動するオペレーティングシステムを含む、請求項４から６のいずれか１項に記載の方法。
【請求項８】
コンピューティングデバイスでソフトウェアアプリケーションから読み取り要求を受信し、前記コンピューティングデバイスに結合されたストレージデバイスに格納されたデータの第１のデータブロックに関する読み取りタスクを実行する第１のロジックと、
前記第１のデータブロックに関連する第１のメタデータキャッシュで第１の参照暗号化コードにアクセスする第２のロジックと、
前記第１のデータブロックに関する第１の新しい暗号化コードを算出する第３のロジックと、
前記第１の新しい暗号化コードを前記第１の参照暗号化コードと比較する第４のロジックと、
前記第１の新しい暗号化コードが前記第１の参照暗号化コードに一致する場合に、前記読み取り要求を承諾する第５のロジックとを備え、
前記読み取りタスクは、前記第１のデータブロックを読み取ることを含み、
前記承諾することは、前記読み取りタスクを促進することを含み、
前記第５のロジックは、前記第１の新しい暗号化コードが前記第１の参照暗号化コードと不一致の場合に、前記読み取り要求を更に拒否し、
前記拒否することは、前記読み取り要求に応答してエラーメッセージを発行することを含み、
前記第１の参照暗号化コードを含むデータブロックが前記第１のメタデータキャッシュから欠落する場合に、前記読み取り要求が提出され、欠落した前記データブロックに対する前記読み取りタスクを促進する、装置。
【請求項９】
前記第１の参照暗号化コードおよび前記第１の新しい暗号化コードは、ハッシュベースのメッセージ認証コード（ＨＭＡＣ）を含む、請求項８に記載の装置。
【請求項１０】
前記ソフトウェアアプリケーションは、前記コンピューティングデバイスで起動するオペレーティングシステムを含む、請求項８または９に記載の装置。
【請求項１１】
前記第１のロジックは、コンピューティングデバイスで前記ソフトウェアアプリケーションから書き込み要求を更に受信し、第２のデータブロックに関する書き込みタスクを実行し、前記書き込みタスクは、前記ストレージデバイスに格納された前記データに前記第２のデータブロックを書き込むことを含み、
前記第２のロジックは、前記第２のデータブロックに関連する第２のメタデータキャッシュで第２の参照暗号化コードに更にアクセスし、
前記第３のロジックは、前記第２のデータブロックに関する第２の新しい暗号化コードを更に算出し、
前記第４のロジックは、前記第２のメタデータキャッシュ中の前記第２の新しい暗号化コードにより前記第２の参照暗号化コードを更に置換し、
前記第５のロジックは、前記書き込み要求を更に承諾し、前記承諾することは、前記書き込みタスクを促進することを含む、請求項８から１０のいずれか１項に記載の装置。
【請求項１２】
前記第２のメタデータキャッシュは、複数の将来の読み取り要求のために前記第２の新しい暗号化コードが参照暗号化コードとして使用されるように、前記第２の新しい暗号化コードを維持する、請求項１１に記載の装置。
【請求項１３】
前記第２の参照暗号化コードおよび前記第２の新しい暗号化コードは、ハッシュベースのメッセージ認証コード（ＨＭＡＣ）を含む、請求項１１または１２に記載の装置。
【請求項１４】
前記ソフトウェアアプリケーションは、前記コンピューティングデバイスで起動するオペレーティングシステムを含む、請求項１１から１３のいずれか１項に記載の装置。
【請求項１５】
請求項１から７のいずれか１項に記載の方法に従って、複数のオペレーションをコンピューティングデバイスに実行させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムを格納するコンピュータ可読記録媒体。
【請求項１７】
請求項１から７のいずれか１項に記載の方法に従って、複数のオペレーションを実行するメカニズムを備えるシステム。
【請求項１８】
請求項１から７のいずれか１項に記載の方法に従って、複数のオペレーションを実行する手段を備える装置。
【請求項１９】
請求項１から７のいずれか１項に記載の方法に従って、複数のオペレーションを実行するコンピューティングデバイス。
【請求項２０】
請求項１から７のいずれか１項に記載の方法に従って、複数のオペレーションを実行する通信デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の複数の実施形態は、セキュリティシステムに関する。より具体的には、本発明の複数の実施形態は、複数のコンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズムに関する
【背景技術】
【０００２】
データセキュリティは、コンピュータセキュリティの周知の部門であり、窃盗、破損、自然災害等に対するストレージデータのセキュリティを提供する。しかし、データセキュリティを提供する従来システムは、限界があり、非効率である。例えば、多くの従来システムは、傍受され得るデータを単に退避するデータ暗号化に依存し、その整合性は、例えば、オフライン変更により攻撃される可能性がある。更に、これらの従来システムは、リソースが非効率で、電力を消費するが、ストレージデータの暗号化されないあらゆる部分に対する保護を提供しない。
【図面の簡単な説明】
【０００３】
本発明の実施形態は、限定のためでなく、例として図示し、添付の図面において、同様の符号は同様の要素を指す。
【図１】一実施形態による、コンピューティングデバイスで使用するストレージデータの暗号化不要の保護のためのマッピングフレームワークベースのメカニズムを図示する。
【図２】一実施形態による、複数のコンピューティングデバイスでストレージデータの暗号化不要の保護のためのマッピングフレームワークベースのメカニズムを図示する。
【図３】一実施形態による、整合性ストレージデータのセキュリティおよび保護を促進するトランズアクションシーケンスを図示する。
【図４Ａ】一実施形態による、読み取りオペレーションを処理する場合に整合性ストレージデータのセキュリティおよび保護を促進する方法を図示する。
【図４Ｂ】一実施形態による、書き込みオペレーションを処理する場合に整合性ストレージデータのセキュリティおよび保護を促進する方法を図示する。
【図５】本発明の一実施形態による、本開示の複数の実施形態を実装するのに好適なコンピュータシステムを図示する。
【発明を実施するための形態】
【０００４】
以下の説明において、様々な具体的詳細を記載する。しかし、本発明の複数の実施形態は、これらの具体的詳細がなくとも実施可能である。他の複数の例において、本明細書の理解を妨げないようにするべく、周知の複数の回路、構造、および技術を詳細に示していない。
【０００５】
複数の実施形態は、セキュリティを提供し、ハッキング攻撃、窃盗、破損、自然または人間による災害等に起因するいずれの不作為または故意による変更に対しても、ストレージデータの整合性を維持することを促進する。複数の実施形態は、複数のコンピューティングシステムでストレージデータの暗号化不要の整合性保護を促進するメカニズムを提供することができ、メカニズムは、マッピングフレームワークベースであるか、またはブロックデバイスドライバ等として実装してもよく、例えば、ハッシュベースのメッセージ認証コード（ＨＭＡＣ）を格納するのに役立ち得る。例えば、複数の実施形態は、例えば、ストレージハードウェアの移動または変更、ストレージデータの暗号化／復号等をする必要もなく、セキュアな内部計算および検証メカニズム（例えばＨＭＡＣ）によりいずれの変更（例えば、オフライン変更等）に対しても、ストレージデータ（例えば、オペレーティングシステムによりアクセスされるデータ）のデバイスマッパベースのセキュリティおよび整合性を提供する。データを暗号化する必要なくストレージデータのセキュリティおよび整合性を促進することにより、ストレージデータが暗号化されず、従って必要な場合に、データのより簡単なアクセスおよびリカバリを促進することを可能にする。更に、ストレージデータを暗号化する必要がないことにより、より良好なリソースの効率性および低い電力消費を提供する。
【０００６】
ストレージデバイス上のデータは、例えば５１２バイトの複数のセクタで編成され、読み取りおよび書き込みオペレーションの最小単位としてみなされ得る。複数のセクタは、複数のブロックのグループを指し、例えば、４Ｋブロックは８セクタを含み得る。セクタおよび／またはブロックのサイズは、変わり得ることが企図される。更に、通常、ファイルシステムは、複数のブロックと共に動作し、１または複数のブロックを読み取る読み取り要求等の読み取り／書き込み要求を発行することができ、これは、１つのブロックの場合、通常、例えば、データ４Ｋブロックの８セクタ全てを読み取ることに翻訳される。ストレージデバイス（ＳＤ）については、ストレージ全体が複数のパーティションに分割され、各パーティションは、いくつかのブロックからなることがある。例えば、ストレージデバイスＳＤＡは、ｓｄａ１、ｓｄａ２、ｓｄａ３等のパーティションに分割され得る。これらのパーティションは、マイクロソフト（登録商標）コーポレーション等によるｅｘｔ４、ファイルアロケーションテーブル（ＦＡＴ）、ニューテクノロジーファイルシステム（ＮＴＦＳ）等の異なるファイルシステムにフォーマットすることができ、例えばｓｄａ１はｅｘｔ４であり、ｓｄａ２はＮＴＦＳ等であってもよい。更に、ファイルシステムは、１または複数のブロック層を呼び出し、複数のデータブロックを読み取ることができ、読み取り要求が発行される場合等には、ファイルシステムは、即座にブロック層を呼び出すことができるが、書き込み要求が発行される場合には、複数のページは更新されるが、ブロックデバイスに即座に書き込まれないことがある。そのような複数のページは、ページキャッシュと呼ばれることがある。ページキャッシュは、再書き込みオペレーション中にブロックデバイスに再書き込みすることができ、その間、ファイルシステムは、複数のブロック層に書き込み要求を送信し得る。
【０００７】
複数の実施形態は、本文書全体で説明するように、マッピングフレームワークのかたちで実装されるストレージデータの暗号化不要の整合性保護を促進するメカニズムを提供するが、これらの実施形態は、マッピングフレームワークに限定されず、代わってブロックデバイスドライバを、このメカニズムを実装するべく使用し得ることが企図される。
【０００８】
図１は、一実施形態による、コンピューティングデバイスで使用されるストレージデータの暗号化不要の保護のためのマッピングフレームワークベースのメカニズムを図示する。コンピューティングデバイス１００は、ホストマシンとして機能し、ストレージデータの暗号化不要の保護のためのマッピングフレームワークベースのメカニズム（「整合性保護メカニズム」）１１０を使用し、１または複数のストレージデバイスに格納されたデータのセキュリティおよび整合性を促進する。一実施形態において、ストレージデータ保護メカニズム１１０は、オペレーティングシステムカーネル１１４（例えば、Ｌｉｎｕｘ（登録商標）カーネル）の一部であるマッピングフレームワーク１１６（「デバイスマッパ」とも呼ぶ）のためのプラグインモジュールとして提供され得る。カーネル１１４は、ブリッジとして機能し、または複数のソフトウェアアプリケーション（例えば、ユーザ空間１１２を介して提供される）間の通信およびハードウェアレベル（例えば、ハードウェアストレージデバイス）で行われる任意のデータ処理を促進する等により、システムリソースを管理するオペレーティングシステム１０６のコンポーネントとして機能し得る。マッピングフレームワーク１１６は、あるブロックデバイスを別のブロックデバイスにマッピングし、またはあるデバイスのブロックを同一または他のデバイスのブロックにマッピングするフレームワークまたはマッパとして機能し、エンタープライズボリュームマネージメントシステム（ＥＶＭＳ）、ロジックボリュームマネージャ（ＬＶＭ）、ｄｍ−ｃｒｙｐｔ等のための基礎として機能し得る。
【０００９】
コンピューティングデバイス１００としては、スマートフォン（例えば、アップル（登録商標）のアイフォン（登録商標）、リサーチインモーション（登録商標）のブラックベリー（登録商標）等）を含む携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）等、タブレットコンピュータ（例えば、アップル（登録商標）のアイパッド（登録商標）、サムスン（登録商標）のギャラクシータブ（登録商標）等）、ラップトップコンピュータ（例えば、ノートブック、ネットブック、ウルトラブック（商標）等）、ｅ−ｒｅａｄｅｒ（例えば、アマゾン（登録商標）のキンドル（登録商標）、バーンズアンドノーブル（登録商標）のＮｏｏｋ（登録商標）等）などのモバイルコンピューティングデバイスが挙げられ得る。更に、コンピューティングデバイス１００としては、セットトップボックス（例えば、インターネットベースのケーブルテレビセットトップボックス等）、テレビ、車内エンターテイメントシステム、およびデスクトップコンピュータ、サーバコンピュータ等のより大きいコンピューティングデバイスが挙げられ得る。
【００１０】
コンピューティングデバイス１００は、コンピューティングデバイス１００の任意のハードウェアもしくは物理的リソースとユーザとの間のインターフェースとして機能するオペレーティングシステム（ＯＳ）１０６を含む。更に、コンピューティングデバイス１００は、１または複数のプロセッサ１０２、メモリデバイス１０４、ネットワークデバイス、ドライバ等、ならびにタッチスクリーン、タッチパネル、タッチパッド、仮想もしくは通常のキーボード、仮想もしくは通常のマウス等の入力／出力（Ｉ／Ｏ）源１０８を含む。「コンピューティングデバイス」、「ノード」、「コンピューティングノード」、「クライアント」、「ホスト」、「サーバ」、「メモリサーバ」、「機械」、「デバイス」、「コンピューティングデバイス」、「コンピュータ」、「コンピューティングシステム」等のような用語は、本文書全体で同じ意味で使用され得ることに留意されたい。
【００１１】
図２は、一実施形態による、複数のコンピューティングデバイスでストレージデータの暗号化不要の保護のためのマッピングフレームワークベースのメカニズムを図示する。一実施形態において、データ完全性保護メカニズム１１０は、受信ロジック２０２、提出ロジック２０４、参照ロジック２０６、計算ロジック２０８、比較ロジック２１０、更新ロジック２１２、および決定ロジック２１４等、いくつかのコンポーネントを含む。図１を参照してすでに説明したように、データ整合性保護ロジック１１０は、オペレーティングシステムの一部として存在し、任意の数およびタイプのソフトウェアアプリケーション２２２と、図１のコンピューティングデバイス１００等のコンピューティングデバイスに関連する任意の数およびタイプのストレージデバイス２３２との間の通信を維持し得る。本文書全体で、「ロジック」という用語は、「処理ロジック」、「コンポーネント」またはモジュールと同じ意味で言及され、例として、ソフトウェア、ハードウェア、および／またはソフトウェア、ハードウェア、およびファームウェア等のいずれかの組み合わせを含み得る。
【００１２】
一実施形態において、データ完全性保護メカニズム１１０は、コンピューティングデバイスと結合された１または複数のストレージデバイス２３２においてデータのセキュリティおよび整合性保護を提供する。ストレージデータは、コンピューティングデバイスで起動するオペレーティングシステム、および／または１もしくは複数のソフトウェアアプリケーション２２２によりアクセスされ、使用され得る。例えば、データは、複数のソフトウェアコード、複数のソフトウェアコードの関連部分、および／またはメタデータキャッシュ等のその他の関連情報を含み、これらは、複数のソフトウェアアプリケーション２２２および／またはオペレーティングシステムによりアクセスされ、使用され得る。ストレージデバイス２３２の例としては、ランダムアクセスメモリ（ＲＡＭ）、独立ディスクの冗長アレイ（ＲＡＩＤ）、不均等メモリアクセス（ＮＵＭＡ）のメモリシステム、ストレージエリアネットワーク、プロセッサレジスタ、メモリチャネル、磁気ディスク、光ディスク、磁気テープ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、ネットワークファイルシステム、リレーショナルデータベース等、任意の数およびタイプのストレージシステムが挙げられ得る。
【００１３】
一実施形態において、データ完全性保護メカニズム１１０の受信ロジック２０２は、ソフトウェアアプリケーション２２２からのデータ読み取りまたはデータ書き込み等のタスクの呼び出しまたは要求を受信するべく使用され得る。読み取り要求は、ストレージデバイス２３２でデータのいずれかの部分（例えば、１または複数のデータブロック）を読み取ることを試みる場合にアプリケーション２２２により促進される読み取りコマンド（例えばｓｙｓ＿ｒｅａｄ。ソフトウェアアプリケーション等は、ｒｅａｄ（）ｌｉｂｒａｒｙ  ｆｕｎｃｔｉｏｎを使用し、これにより次にｓｙｓｔｅｍ  ｃａｌｌ  ｓｙｓ＿ｒｅａｄを呼び出すことができる）を参照する。対照的に、書き込み要求は、書き込みコマンド（例えばｓｙｓ＿ｗｒｉｔｅ。ソフトウェアアプリケーション等は、ｗｒｉｔｅ（）ｌｉｂｒａｒｙ  ｆｕｎｃｔｉｏｎを使用し、これにより次にｓｙｓｔｅｍ  ｃａｌｌ  ｓｙｓ＿ｗｒｉｔｅを呼び出すことができる）を参照し、ソフトウェア管理者またはプログラマによる既存ストレージデータの変更等、データを変更することを含めて、ストレージデバイス２３２の既存データに１または複数のデータブロックを更に書き込む。次に、提出ロジック２０４は、受信された要求に記載されるように１または複数のデータブロックを読み取り、または書き込む等、ストレージデータの１または複数の関連データブロックに対する要求タスク（例えば、読み取り、書き込み等）が実行され得るように、受信された要求を提出または送信する。
【００１４】
一実施形態において、参照ロジック２０６は、複数の関連データブロックに関連する整合性メタデータキャッシュにアクセスし、複数のデータブロックのいずれかがメタデータキャッシュ内に格納された対応するＨＭＡＣを有するか否かを判断する。整合性メタデータキャッシュは、複数の整合性メタデータのデータブロックの集合として編成され得、各ブロックは、複数のＨＭＡＣを保持するなど、いくつかの整合性メタデータの記録を保持することが意図される。複数の整合性メタデータのデータブロックが同一のパーティション（ブロックデバイス）に格納されてもよく、実際の複数のデータブロックは、同一または異なるストレージデバイス上に存在する専用パーティション上に存在し、またはこれに格納され得る。参照ＨＭＡＣを含む整合性メタデータのデータブロックがキャッシュから欠落している場合、それは、適切な位置から読み取られ得る。
【００１５】
一方、計算ロジック２０８は、暗号化キーを使用して、複数の関連データブロックのそれぞれについて新しいＨＭＡＣを算出する。複数の暗号化キーを使用することによるＨＭＡＣの算出は、一例として提供するものであり、本発明の複数の実施形態は、いずれか特定の処理または技術に限定されないことが企図される。暗号化キーは、初期化、ブートアップ等、１つまたは複数の既知の処理のうちいずれかを使用して受信されてもよく、または任意の数の既知の方法を用いる処理中に任意の時点で提供されてもよい。更に、暗号化キーおよび複数の既知の暗号化機能（例えば、メッセージダイジェストアルゴリズム５（ＭＤ５）、セキュアハッシュアルゴリズム１（ＳＨＡ‐１）等）のいずれかの組み合わせを用いて、ＨＭＡＣ‐ＭＤ５、ＨＭＡＣ‐ＳＨＡ１等の各関連データブロックについて、ＨＭＡＣが算出され得る。例えば、ＨＭＡＣは、
【数１】
0005975501.tif 000002
を用いて算出され得、式中、Ｈは暗号化ハッシュ関数を指し、Ｋは、ハッシュ関数の入力ブロックサイズに対する追加のゼロを右に埋め込むシークレットキー、またはブロックサイズよりも長い場合には元のキーのハッシュを指し、ｍは認証されるメッセージ（データブロック、要求内容等）を指し、｜｜は連結を意味し、
【数２】
0005975501.tif 000003
は排他または（ＸＯＲ）を意味し、ｏｐａｄは、外側の埋め込み（例えば、０ｘ５ｃ５ｃ５ｃ...５ｃ５ｃ。１ブロック長の１６進数定数）を指し、ｉｐａｄは、内側の埋め込み（例えば、０ｘ３６３６３６...３６３６。１ブロック長の１６進数定数）を指す。例えば、ブロックサイズは４Ｋであり、ＨＭＡＣ‐ＳＨＡ２５６サイズは３２バイトであるとき、１つのブロックは、１２８のＨＭＡＣを保持する能力を有し得る。整合性メタデータキャッシュは、特定のデータブロックのための整合性メタデータ（例えば、１または複数のＨＭＡＣ等）を含み得る。例えば、データの１つの４Ｋブロックは、１２８のＨＭＡＣ―ＳＨＡ２５６を含み得るであろう。整合性メタデータキャッシュは、複数のブロック（例えば４Ｋブロック等）の集合を指し、ランダムアクセスメモリにおいて利用可能な整合性メタデータ（ＨＭＡＣ）を含み得る。
【００１６】
要求が読み取り要求である場合、一実施形態において、計算ロジック２０８により使用されるＨＭＡＣ計算法に関わらず、各データブロックについて新しいＨＭＡＣが算出されると、次に比較ロジック２１０によりそのデータブロックに対する参照ＨＭＡＣと比較される。比較されると、決定ブロック２１４により要求を許可するべきか拒否するべきかについて決定される。例えば、新たに算出されたＨＭＡＣと参照されたＨＭＡＣとの間に一致が存在する場合等、好結果の比較のときは読み取り要求を許可して上位層に転送し、関連データブロックを読み取る等、要求タスクを実行し得る。対照的に、算出されたＨＭＡＣと参照されたＨＭＡＣとの間に不一致がある等、失敗した比較のときには、読み取り要求を拒否し、エラーメッセージを発行して上位層に転送し、関連データブロックを破棄して読み取らない等、要求タスクを実行しない。
【００１７】
要求が書き込み要求である場合、一実施形態において、計算ロジック２０８により使用されるＨＭＡＣ計算法に関わらず、ストレージデータに書き込まれる各データブロックについて新しいＨＭＡＣを算出すると、更新ロジック２１２を使用して、各データブロックの対応する参照ＨＭＡＣを新たに算出されたＨＭＡＣを用いて更新し、または新たに算出されたＨＭＡＣは、そのデータブロックを代用する。次に、整合性メタデータキャッシュ中のこれらの新たに配置したＨＭＡＣを参照し、あらゆる複数の将来の読み取り要求に応答して比較することができる。
【００１８】
特定の特徴を追加、除去、および／または強化することを含む本発明の様々な実施形態を促進するべく、任意の数およびタイプのコンポーネントを、データ完全性保護メカニズム１１０に追加し、および／またはデータ完全性保護メカニズム１１０から取り外し得ることが企図される。データ完全性保護メカニズム１１０を簡略で明確なものとし、またその理解を促進するため、コンピューティングデバイスに関するもの等の規格および／または既知のコンポーネントの多くは、ここにおいて図示せず、または論じない。本発明の実施形態は、いずれかの特定の技術、トポロジー、システム、アーキテクチャ、および／または規格に限定されず、任意の将来の変更を採用し、これに適合するのに十分に動的であることが企図される。
【００１９】
図３は、一実施形態による、整合性ストレージデータのセキュリティおよび保護を促進するトランズアクションシーケンスを図示する。トランズアクションシーケンス３００は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック等）、ソフトウェア（処理デバイス上で起動される命令等）、またはそれらの組み合わせを有し得る処理ロジックにより実行され得る。一実施形態において、方法３００は、図１のデータ完全性保護メカニズム１１０により実行され得る。
【００２０】
トランズアクションシーケンス３００は、ユーザ空間１１２のソフトウェアアプリケーション２２２により開始し、トランズアクション（例えば、読み取りトランズアクション（例えばｓｙｓ＿ｒｅａｄ）、書き込みトランズアクション（例えばｓｙｓ＿ｗｒｉｔｅ）等）のための呼び出しを促進する。次に、要求は、システム呼出しインターフェース３０２に仮想ファイルシステム（ＶＦＳ）層３０４（例えば、ｖｆｓ＿ｒｅａｄ、ｖｆｓ＿ｗｒｉｔｅ等）を呼び出させることにより、オペレーティングシステムのカーネル１１４におけるシステム呼出しインターフェース３０２を介してＶＦＳ３０４に送信される。ＶＦＳ層３０４は、ファイルシステム層３０６を呼び出し、要求を読み取り、ブロックデバイス層３０８に転送する。ファイルシステム層３０６は、要求（例えばブロックＩ／Ｏ読み取り要求）をブロックデバイス層３０８に提出し、ブロックデバイス層３０８は、次に、マッピングフレームワークまたはデバイスマッパ１１６で受信される要求をキュー登録する。
【００２１】
一実施形態において、マッピングフレームワーク１１６は、マッピングフレームワーク１１６のプラグインモジュールとして提供され得るデータ完全性保護メカニズム１１０に対して要求を転送し、またはデータ完全性保護メカニズム１１０を介して要求をマッピングし得る。一実施形態において、データ完全性保護メカニズム１１０は、要求を処理し、ブロックデバイス層３１０に提出する。ブロックデバイス層３１０は、一実施形態において、データブロックデバイスおよび対応する整合性ブロックデバイスを含み得る。データブロックデバイスは、実際のストレージデータを含み得るが、整合性ブロックデバイスは、整合性メタデータ（例えば参照ＨＭＡＣ）を含み得る。一実施形態において、前述のように、読み取り要求の場合にはデータ完全性保護メカニズム１１０は、ＨＭＡＣを算出し、それを参照ＨＭＡＣと比較することができるが、書き込み要求の場合にはＨＭＡＣを算出し、将来、参照ＨＭＡＣとして使用される整合性ブロックデバイスにそれを格納し得る。次に、ブロックデバイス層３１０は、要求に記載される要求タスクが実行され得るように、要求をブロックデバイスドライバ３１２にキュー登録する。次に、ブロックデバイスドライバ３１２は、ｓｄａおよび／またはｓｄｂを含むストレージデバイス２３２等、関連ハードウェア３２０でストレージデータの１または複数のデータブロックに関する要求タスクを実行する。
【００２２】
図４Ａは、一実施形態による、読み取りオペレーションを処理する場合に整合性ストレージデータのセキュリティおよび保護を促進する方法を図示する。方法４００は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック等）、ソフトウェア（処理デバイス上で起動される複数の命令等）、またはこれらの組み合わせを有し得る処理ロジックにより実行され得る。一実施形態において、方法４００は、図１のデータ完全性保護メカニズム１１０により実行され得る。
【００２３】
方法４００は、コンピューティングシステムで起動するソフトウェアアプリケーション（例えば、オペレーティングシステムまたはその他のソフトウェアアプリケーション）から受信される要求により、ブロック４０５で開始し、コンピューティングシステムと通信するストレージデバイスに格納されたデータのデータブロックにアクセスし、読み取る。いくつの、またはどのタイプのデータブロックが読み取られ得るかについて課される限定は、ないことが企図される。換言すれば、要求が受信され、いずれの数およびタイプのデータブロックも読み取ってもよい。ブロック４１０で、要求されたデータブロックが読み取られ得るように、読み取り要求は、処理に提出される。ブロック４１５で、データブロックに関連する整合性メタデータキャッシュがアクセスされ、整合性メタデータキャッシュに格納された参照ＨＭＡＣにアクセスし、参照ＨＭＡＣは、要求されたデータブロックに対応し、または参照する。ＨＭＡＣを含むデータブロックが欠落し、または整合性メタデータキャッシュ中に存在しない場合、図２の参照ロジック２０６は、関連ブロック層に読み取り要求を提出し、ブロックデバイスからデータブロックを読み取ることができる。
【００２４】
ブロック４２０で、暗号化キーおよび１つまたは複数の既知の算出プロセスのいずれかを使用して、要求されたデータブロックに対応する新しいＨＭＡＣを算出する。一実施形態において、ブロック４２５で、新たに算出されたＨＭＡＣが、整合性メタデータキャッシュから得た参照ＨＭＡＣと比較される。決定ブロック４３０で、算出されたＨＭＡＣが参照ＨＭＡＣと一致するか否かについて判断される。一致する場合、ブロック４３５で、要求を許可し、要求されたデータブロックが読み取られる等、読み取り要求を促進するソフトウェアアプリケーション（ユーザ空間にある）までの複数の上位層にそれを転送することにより、処理は継続する。一致しない場合、ブロック４４０で、処理を終了し、エラーメッセージが発行され、複数の上位層に転送される。
【００２５】
図４Ｂは、一実施形態による、書き込みオペレーションを処理する場合に整合性ストレージデータのセキュリティおよび保護を促進する方法を図示する。方法４５０は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック等）、ソフトウェア（処理デバイス上で起動される複数の命令等）、またはこれらの組み合わせを有し得る処理ロジックにより実行され得る。一実施形態において、方法４５０は、図１のデータ完全性保護メカニズム１１０により実行され得る。
【００２６】
方法４５０は、コンピューティングシステムで起動するソフトウェアアプリケーション（例えば、オペレーティングシステムまたはその他のソフトウェアアプリケーション）から受信される要求により、ブロック４５５で開始し、コンピューティングシステムと通信するストレージデバイスで既存のデータにデータブロックを書き込む。いくつの、またはどのタイプのデータブロックが読み取られ得るかについて課される限定は、ないことが企図される。換言すれば、要求が受信され、いずれの数およびタイプのデータブロックも読み取ってもよい。ブロック４６０で、データブロックが書き込まれ得るように、書き込み要求は、処理に提出される。ブロック４６５で、データブロックに関連する整合性メタデータキャッシュがアクセスされ、整合性メタデータキャッシュに格納された参照ＨＭＡＣにアクセスし、参照ＨＭＡＣは、データブロックに対応し、または参照する。
【００２７】
ブロック４７０で、暗号化キーおよび１つまたは複数の既知の算出プロセスのいずれかを使用して、要求されたデータブロックに対応する新しいＨＭＡＣが算出される。一実施形態において、ブロック４７５で、整合性メタデータキャッシュは、既存の参照ＨＭＡＣを新たに算出されたＨＭＡＣで置換することにより更新される。更に、図２の更新ロジック２１２は、ＨＭＡＣを更新し得るが、書き込み要求を即座に送信して整合性ブロックをブロックデバイスに書き込まなくてもよい。ブロック４８０で、書き込み要求を許可することにより処理は継続し、データブロックがストレージデータに書き込まれる。ブロック４８５で、書き込みデータブロックの確認を上位層に送信する。
【００２８】
図５は、コンピューティングシステム５００の実施形態を図示する。コンピューティングシステム５００は、例えば、デスクトップコンピューティングシステム、ラップトップコンピューティングシステム、携帯電話、移動体通信可能なＰＤＡを含むパーソナルデジタルアシスタント（ＰＤＡ）、セットトップボックス、スマートフォン、タブレット等を含む、様々なコンピューテイングおよび電子デバイス（有線または無線）を表す。代替のコンピューティングシステムは、より多い、より少ない、および／または異なるコンポーネントを含み得る。
【００２９】
コンピューティングシステム５００は、バス５０５（または情報を通信するリンク、相互接続、または別のタイプの通信デバイスもしくはインターフェース）、および情報を処理し得るバス５０５に結合されたプロセッサ５１０を含む。コンピューティングシステム５００は、１つのプロセッサと共に図示されるが、電子システム５００は、１つまたは複数の中央処理装置、グラフィックスプロセッサ、および物理プロセッサ等の複数のプロセッサおよび／またはコプロセッサを含み得る。
【００３０】
コンピューティングシステム５００は、バス５０５に結合されたランダムアクセスメモリ（ＲＡＭ）または他のダイナミック型ストレージデバイス５２０（メインメモリと呼ばれる）を更に含み、プロセッサ５１０により実行され得る情報および命令を格納することができる。また、メインメモリ５２０を用いて、プロセッサ５１０による命令の実行中に一時変数または他の中間情報を格納してもよい。
【００３１】
コンピューティングシステム５００は、プロセッサ５１０の静的情報および複数の命令を格納し得るバス５０５に結合された、読み取り専用メモリ（ＲＯＭ）および／または他のストレージデバイス５３０も含み得る。データストレージデバイス５４０は、情報および複数の命令を格納するべくバス５０５に結合され得る。磁気ディスクもしくは光ディスク、および対応するドライブ等のデータストレージデバイス５４０は、コンピューティングシステム５００に結合され得る。
【００３２】
また、コンピューティングシステム５００は、バス５０５を介してブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、または有機発光ダイオード（ＯＬＥＤ）アレイ等のディスプレイデバイス５５０に結合し、ユーザに情報を表示し得る。英数字および他の複数のキーを含むユーザ入力デバイス５６０は、バス５０５に結合し、プロセッサ５１０に情報および複数のコマンド選択を通信し得る。別のタイプのユーザ入力デバイス５６０は、マウス、トラックボール、またはカーソル方向キー等のカーソル制御器５７０であり、方向情報および複数のコマンド選択をプロセッサ５１０に通信し、ディスプレイ５５０上でカーソル移動を制御する。コンピュータシステム５００のカメラおよびマイクの複数のアレイ５９０は、ジェスチャを観察し、音声および動画を記録し、視覚および音声コマンドを受信および送信するべく、バス５０５に結合され得る。
【００３３】
コンピューティングシステム５００は、ネットワークインターフェース５８０を更に含み、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、クラウドネットワーク、モバイルネットワーク（例えば第３世代移動通信システム（３Ｇ）等）、イントラネット、インターネット等のネットワークへのアクセスを提供し得る。ネットワークインターフェース５８０は、例えば、アンテナ５８５を有する無線ネットワークインターフェースを含み、アンテナ５８５は、１または複数のアンテナを表し得る。また、ネットワークインターフェース５８０は、例えば、ネットワークケーブル５８７を介して複数の遠隔デバイスと通信する有線ネットワークインターフェースを含み、ネットワークケーブル５８７は、例えば、イーサネット（登録商標）ケーブル、同軸ケーブル、光ファイバケーブル、シリアルケーブル、またはパラレルケーブルであり得る。
【００３４】
ネットワークインターフェース５８０は、例えば、ＩＥＥＥ８０２．１  ｌｂおよび／またはＩＥＥＥ８０２．１  ｌｇ規格に適合することによりＬＡＮへのアクセスを提供し、および／または無線ネットワークインターフェースは、例えば、複数のＢｌｕｅｔｏｏｔｈ（登録商標）規格に適合することによりパーソナルエリアネットワークへのアクセスを提供し得る。
【００３５】
以前および後のバージョンの規格を含む他の複数の無線ネットワークインターフェースおよび／またはプロトコルもサポートされ得る。
【００３６】
複数の無線ＬＡＮ規格による通信に加えて、またはこれの代わりに、ネットワークインターフェース５８０は、例えば、時間分割多重アクセス（ＴＤＭＡ）プロトコル、モバイル通信用グローバルシステム（ＧＳＭ（登録商標））プロトコル、コード分割多重アクセス（ＣＤＭＡ）プロトコル、および／またはその他のタイプの複数の無線通信プロトコルを用いる無線通信を提供し得る。
【００３７】
ネットワークインターフェース５８０は、例えば、モデム、ネットワークインタフェースカード、またはＬＡＮまたはＷＡＮをサポートするべく通信リンクを提供する目的のためのイーサネット（登録商標）、トークンリング、または他のタイプの複数の物理的な有線もしくは無線アタッチメントに結合するために用いられるもの等、他の複数の周知のインターフェースデバイス等の１または複数の通信インターフェースを含み得る。このように、コンピュータシステムは、例えば、イントラネットまたはインターネットを含む従来のネットワークインフラストラクチャによるいくつかの周辺機器、クライアント、コントロールサーフェス、コンソールまたはサーバにも結合され得る。
【００３８】
上記の例よりも少ないか、または多い装備システムが特定の複数の実装例には好ましい場合があることを理解されたい。従って、コンピューティングシステム５００の構成は、価格の制約、性能要件、技術的改善、または他の条件等の様々な要素に応じて実装例毎に異なり得る。電子デバイスまたはコンピュータシステム５００の例としては、モバイルデバイス、パーソナルデジタルアシスタント、モバイルコンピューティングデバイス、スマートフォン、携帯電話、ハンドセット、ワンウェイページャ、ツーウェイページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ（ＰＣ）、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、サーバ、サーバアレイもしくはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、一般消費者向け電子機器、プログラマブル一般消費者向け電子機器、テレビ、デジタルテレビ、セットトップボックス、無線アクセスポイント、基地局、加入者局、モバイル加入者センタ、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、機械、またはこれらの組み合わせが挙げられ得るが、これらに限定されない。
【００３９】
複数の実施形態は、親基板を使用して相互接続される１または複数のマイクロチップまたは集積回路、ハードワイヤによるロジック、メモリデバイスにより格納され、マイクロプロセッサ、ファームウェア、特定用途向け集積回路（ＡＳＩＣ）、および／またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）により実行されるソフトウェアのいずれかまたは組み合わせとして実装され得る。「ロジック」という用語は、例として、ソフトウェアもしくはハードウェア、および／またはソフトウェアおよびハードウェアの組み合わせを含み得る。
【００４０】
複数の実施形態は、例えば、コンピュータ、複数のコンピュータのネットワーク、または他の複数の電子デバイス等の１または複数の機械により実行されると、本発明の実施形態による複数のオペレーションを実行する１または複数の機械をもたらし得る機械実行可能な複数の命令を格納した１または複数の機械可読媒体を含み得るコンピュータプログラム製品として提供され得る。機械可読媒体としては、フロッピー（登録商標）ディスケット、光ディスク、ＣＤ−ＲＯＭ（コンパクトディスク読み取り専用メモリ）、ならびに光磁気ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ（消去可能プログラマブル読み取り専用メモリ）、ＥＥＰＲＯＭ（電気的に消去可能なプログラマブル読み取り専用メモリ）、磁気もしくは光カード、フラッシュメモリ、または機械実行可能な複数の命令を格納するのに好適な他のタイプの媒体／機械可読媒体が挙げられ得るが、これらに限定されない。
【００４１】
更に、複数の実施形態は、コンピュータプログラム製品としてダウンロードされ、プログラムは、搬送波において実施され、および／またはこれにより変調される１または複数のデータ信号または通信リンク（例えば、モデムおよび／またはネットワーク接続）を介する他の伝播媒体により、遠隔コンピュータ（例えば、サーバ）から要求元コンピュータ（例えば、クライアント）に送信され得る。従って、本明細書において用いるように、機械可読媒体は、そのような搬送波を備えてもよいが、必要とはされない。
【００４２】
「一実施形態」、「実施形態」、「例示的な実施形態」、「様々な実施形態」等に参照することにより、そのように説明する本発明の実施形態が特定の複数の特徴、構造、または特性を備え得ることを示すが、全ての実施形態は、特定の複数の特徴、構造、または特性を必ずしも備えるものではない。更に、いくつかの実施形態は、複数の他の実施形態について説明した複数の特徴のいくつか、もしくは全てを備え、またはそれらを全く備えないこともある。
【００４３】
以下の説明および特許請求の範囲において、「結合された」という用語は、その複数の派生語と共に使用され得る。「結合された」は、２またはそれ以上の要素が互いに共働またはインタラクトすることを示すべく用いられるが、その間に介在する物理的または電気的な複数のコンポーネントを有することもあり、有しないこともある。
【００４４】
特許請求の範囲において使用するように、別途指定しない限り、共通の要素を説明するべく序数形容詞「第１の」、「第２の」、「第３の」等を使用しても、同様の複数の要素の異なる例を参照することを単に示すのみであり、そのように説明する複数の要素が時間的、空間的、順位、またはその他の様式のいずれかにおいて所与の順序でなければならないことの示唆を意図するものではない。
【００４５】
以下の複数の節および／または例は、更なる複数の実施形態または例に関する。
【００４６】
これらの例における具体的事柄は、１または複数の実施形態のいずれかの箇所で使用され得る。異なる実施形態または例の様々な特徴は、含まれるいくつかの特徴と様々に組み合わされ、他の特徴は、様々な異なる用途に適するように除外されてもよい。いくつかの実施形態は、コンピューティングデバイスのソフトウェアアプリケーションから読み取り要求を受信し、コンピューティングデバイスに結合されたストレージデバイスに格納されたデータの第１のデータブロックに関する読み取りタスクを実行する段階と、第１のデータブロックに関連する第１のメタデータキャッシュにおいて第１の参照暗号化コードにアクセスする段階と、第１のデータブロックに関する第１の新しい暗号化コードを算出する段階と、第１の新しい暗号化コードを第１の参照暗号化コードと比較する段階と、第１の新しい暗号化コードが第１の参照暗号化コードに一致する場合に、読み取り要求を承諾する段階とを備え、読み取りタスクは、第１のデータブロックを読み取ることを含み、承諾する段階は、読み取りタスクを促進する段階を有する、方法に関する。
【００４７】
複数の実施形態または例は、第１の新しい暗号化コードが第１の参照暗号化コードと不一致の場合に読み取り要求を拒否する段階を更に備え、拒否する段階は、読み取り要求に応答してエラーメッセージを発行する段階を有し、第１の参照暗号化コードを含むデータブロックが第１のメタデータキャッシュから欠落する場合、読み取り要求を提出し、欠落したデータブロックに対する読み取りタスクを促進する、上記の複数の方法のいずれかを備える。
【００４８】
複数の実施形態または例は、第１の参照暗号化コードおよび新しい暗号化コードが、ハッシュベースのメッセージ認証コード（ＨＭＡＣ）を含む、上記の複数の方法のいずれかを備える。
【００４９】
複数の実施形態または例は、ソフトウェアアプリケーションが、コンピューティングデバイスで起動するオペレーティングシステムを有する、上記の複数の方法のいずれかを備える。
【００５０】
複数の実施形態または例は、コンピューティングデバイスのソフトウェアアプリケーションから書き込み要求を受信し、第２のデータブロックに関する書き込みタスクを実行する段階と、第２のデータブロックに関連する第２のメタデータキャッシュにおいて第２の参照暗号化コードにアクセスする段階と、第２のデータブロックに関する第２の新しい暗号化コードを算出する段階と、第２のメタデータキャッシュ中の第２の新しい暗号化コードにより第２の参照暗号化コードを置換する段階と、書き込み要求を承諾する段階とを更に備え、書き込みタスクは、ストレージデバイスに格納されたデータに第２のデータブロックを書き込むことを含み、承諾する段階は、書き込みタスクを促進する段階を有する、上記の複数の方法のいずれかを備える。
【００５１】
複数の実施形態または例は、第２の新しい暗号化コードを複数の将来の読み取り要求のための参照暗号化コードとして使用するように、第２のメタデータキャッシュが第２の新しい暗号化コードを維持する、上記の複数の方法のいずれかを備える。
【００５２】
複数の実施形態または例は、第２の参照暗号化コードおよび第２の新しい暗号化コードが、ハッシュベースのメッセージ認証コード（ＨＭＡＣ）を含む、上記の複数の方法のいずれかを備える。
【００５３】
複数の実施形態または例は、ソフトウェアアプリケーションが、コンピューティングデバイスで起動するオペレーティングシステムを有する、上記の複数の方法のいずれかを備える。
【００５４】
別の実施形態または例において、装置は、コンピューティングデバイスでソフトウェアアプリケーションから読み取り要求を受信し、コンピューティングデバイスに結合されたストレージデバイスに格納されたデータの第１のデータブロックに関する読み取りタスクを実行する第１のロジックと、第１のデータブロックに関連する第１のメタデータキャッシュで第１の参照暗号化コードにアクセスする第２のロジックと、第１のデータブロックに関する第１の新しい暗号化コードを算出する第３のロジックと、第１の新しい暗号化コードを第１の参照暗号化コードと比較する第４のロジックと、第１の新しい暗号化コードが第１の参照暗号化コードと一致する場合に読み取り要求を承諾する第５のロジックとを備え、読み取りタスクは、第１のデータブロックを読み取ることを含み、承諾する段階は、読み取りタスクを促進する段階を有する。
【００５５】
複数の実施形態または例は、第１の新しい暗号化コードが第１の参照暗号化コードと不一致の場合に、第５のロジックは、読み取り要求を更に拒否し、拒否することは、読み取り要求に応答してエラーメッセージを発行することを含み、第１の参照暗号化コードを含むデータブロックが第１のメタデータキャッシュから欠落する場合に、読み取り要求を提出し、欠落したデータブロックに対する読み取りタスクを促進する上記の装置を備える。
【００５６】
複数の実施形態または例は、第１の参照暗号化コードおよび新しい暗号化コードが、ハッシュベースのメッセージ認証コード（ＨＭＡＣ）を含む、上記の装置を備える。
【００５７】
複数の実施形態または例は、ソフトウェアアプリケーションが、コンピューティングデバイスで起動するオペレーティングシステムを含む、上記装置を備える。
【００５８】
複数の実施形態または例は、第１のロジックは、コンピューティングデバイスでソフトウェアアプリケーションから書き込み要求を更に受信し、第２のデータブロックに関する書き込みタスクを実行し、書き込みタスクは、ストレージデバイスに格納されたデータに第２のデータブロックを書き込むことを含み、第２のロジックは、第２のデータブロックに関連する第２のメタデータキャッシュで第２の参照暗号化コードに更にアクセスし、第３のロジックは、第２のデータブロックに関する第２の新しい暗号化コードを更に算出し、第４のロジックは、第２のメタデータキャッシュ中の第２の新しい暗号化コードにより第２の参照暗号化コードを更に置換し、第５のロジックは、書き込み要求を更に承諾し、承諾することは、書き込みタスクを促進することを含む、上記の装置を備える。
【００５９】
複数の実施形態または例は、複数の将来の読み取り要求のために第２の新しい暗号化コードを参照暗号化コードとして使用するように、第２のメタデータキャッシュは、第２の新しい暗号化コードを維持する、上記の装置を備える。
【００６０】
複数の実施形態または例は、第２の参照暗号化コードおよび第２の新しい暗号化コードが、ハッシュベースのメッセージ認証コード（ＨＭＡＣ）を含む、上記の装置を備える。
【００６１】
複数の実施形態または例は、ソフトウェアアプリケーションが、コンピューティングデバイスで起動するオペレーティングシステムを含む、上記装置を備える。
【００６２】
別の実施形態または例において、システムは、命令を格納するメモリを有するコンピューティングデバイスと、複数の命令を実行する処理デバイスとを備え、コンピューティングデバイスは、コンピューティングデバイスでソフトウェアアプリケーションから読み取り要求を受信し、コンピューティングデバイスに結合されたストレージデバイスに格納されたデータの第１のデータブロックに関する読み取りタスクを実行し、第１のデータブロックに関連する第１のメタデータキャッシュで第１の参照暗号化コードにアクセスし、第１のデータブロックに関する第１の新しい暗号化コードを算出し、第１の新しい暗号化コードを第１の参照暗号化コードと比較し、第１の新しい暗号化コードが第１の参照暗号化コードと一致する場合に読み取り要求を承諾するメカニズムを更に有し、読み取りタスクは、第１のデータブロックを読み取ることを含み、承諾することは、読み取りタスクを促進することを含む。
【００６３】
複数の実施形態または例は、第１の新しい暗号化コードが第１の参照暗号化コードと不一致の場合に、第５のロジックは、読み取り要求を更に拒否し、拒否することは、読み取り要求に応答してエラーメッセージを発行することを含み、第１の参照暗号化コードを含むデータブロックが第１のメタデータキャッシュから欠落する場合に、読み取り要求を提出し、欠落したデータブロックに対する読み取りタスクを促進する、上記システムを備える。
【００６４】
複数の実施形態または例は、第１の参照暗号化コードおよび第１の新しい暗号化コードが、ハッシュベースのメッセージ認証コード（ＨＭＡＣ）を含む、上記のシステムを備える。
【００６５】
複数の実施形態または例は、ソフトウェアアプリケーションが、コンピューティングデバイスで起動するオペレーティングシステムを含む、上記システムを備える。
【００６６】
複数の実施形態または例は、第１のロジックが、コンピューティングデバイスでソフトウェアアプリケーションから書き込み要求を更に受信し、第２のデータブロックに関する書き込みタスクを実行し、書き込みタスクは、ストレージデバイスに格納されたデータに第２のデータブロックを書き込むことを含み、第２のロジックは、第２のデータブロックに関連する第２のメタデータキャッシュで第２の参照暗号化コードに更にアクセスし、第３のロジックは、第２のデータブロックに関する第２の新しい暗号化コードを更に算出し、第４のロジックは、第２のメタデータキャッシュ中の第２の新しい暗号化コードにより第２の参照暗号化コードを更に置換し、第５のロジックは、書き込み要求を更に承諾し、承諾することは、書き込みタスクを促進することを含む、上記のシステムを備える。
【００６７】
複数の実施形態または例は、複数の将来の読み取り要求のために第２の新しい暗号化コードを参照暗号化コードとして使用するように、第２のメタデータキャッシュは、第２の新しい暗号化コードを維持する、上記のシステムを備える。
【００６８】
複数の実施形態または例は、第２の参照暗号化コードおよび第２の新しい暗号化コードが、ハッシュベースのメッセージ認証コード（ＨＭＡＣ）を含む、上記のシステムを備える。
【００６９】
複数の実施形態または例は、ソフトウェアアプリケーションが、コンピューティングデバイスで起動するオペレーティングシステムを含む、上記のシステムを備える。
【００７０】
別の実施形態または例において、装置は、上述の１つまたは複数の動作のいずれかを実行する手段を備える。
【００７１】
更に別の実施形態または例において、少なくとも１つの機械可読媒体は、コンピューティングデバイス上で実行されることに応答して、コンピューティングデバイスに上述の１つまたは複数のオペレーションのいずれかによる方法を実行させる複数の命令を含む。更に別の実施形態または例において、少なくとも１つの非一時的または有形の機械可読媒体は、コンピューティングデバイス上で実行されることに応答して、コンピューティングデバイスに上述の１つまたは複数オペレーションのいずれかによる方法を実行させる、複数の命令を含む。
【００７２】
更に別の実施形態または例において、コンピューティングデバイスは、上述の１つまたは複数のオペレーションのいずれかによる方法を実行するように構成される。
【００７３】
複数の図面および上記の説明は、複数の実施形態の例を与える。当業者は、説明した要素の１つまたは複数を組み合わせて単一の機能要素にし得ることを理解するであろう。あるいは、特定の複数の要素は、複数の機能要素に分割してもよい。一実施形態の複数の要素は、別の実施形態に付加してもよい。例えば、本明細書において説明する処理の順序を変更し得るが、本明細書において説明する様式には限定されない。更に、いずれかの流れ図におけるアクションを、示す順序で実装する必要はなく、動作の全ては、必ずしも実行する必要はない。また、他の動作に依存しない動作を他の動作と並行に実行してもよい。複数の実施形態の範囲は、これらの具体的な例によって限定されるものではない。構造における差異、寸法、および材料の使用等、様々な変形形態は、明細書において明示的に与えられているか否かに関わらず、可能である。複数の実施形態の範囲は、少なくとも、以下の特許請求の範囲により与えられるのと同程度に広範である。
【図１】
0005975501.tif 000004
【図２】
0005975501.tif 000005
【図３】
0005975501.tif 000006
【図４Ａ】
0005975501.tif 000007
【図４Ｂ】
0005975501.tif 000008
【図５】
0005975501.tif 000009