(57)【特許請求の範囲】
【請求項１】
記憶媒体から格納されたデータの一部を読み出すステップと、
格納されたデータの一部を復号するステップと、
変更が要求されたら、格納されたデータの一部を変更して変更データを作り出すステップと、
変更データを暗号化するステップと、
暗号化した変更データを記憶媒体に書き込むステップと、
記憶媒体上のブロックを、当該ブロックが新たに格納される記憶媒体の場所により決定される暗号化スキームを用いて再暗号化するステップと、
再暗号化された前記ブロックを、前記新たに格納される記憶媒体の場所に書き込むステップとを含む、方法。
【請求項２】
請求項１に記載の方法であって、格納されたデータの一部は整数のセクタのデータを含む、方法。
【請求項３】
請求項１に記載の方法であって、格納されたデータの一部はデータのトラックから読み出される、方法。
【請求項４】
請求項１に記載の方法であって、変更データを暗号化するステップはブロック暗号化を使用する、方法。
【請求項５】
請求項１に記載の方法であって、記憶媒体はディスクを含む、方法。
【請求項６】
記憶媒体と、
記憶媒体から格納されたデータの一部を読み出し、格納されたデータの一部を復号し、変更が要求されたら、格納されたデータの一部を変更して変更データを作り出し、変更データを暗号化し、暗号化した変更データを記憶媒体に書き込み、記憶媒体上のブロックを、当該ブロックが新たに格納される記憶媒体の場所により決定される暗号化スキームを用いて再暗号化し、再暗号化された前記ブロックを、前記新たに格納される記憶媒体の場所に書き込むプロセッサとを含む、装置。
【請求項７】
請求項６に記載の装置であって、格納されたデータの一部は整数のセクタのデータを含む、装置。
【請求項８】
請求項６に記載の装置であって、格納されたデータの一部はデータのトラックを含む、装置。
【請求項９】
請求項６に記載の装置であって、プロセッサはブロック暗号化を使用する、装置。
【請求項１０】
請求項６に記載の装置であって、記憶媒体はディスクを含む、装置。
【請求項１１】
データの暗号化されたブロックを記憶媒体上に格納するステップと、
記憶媒体上のブロックを、当該ブロックが新たに格納される記憶媒体の場所により決定される暗号化スキームを用いて再暗号化するステップと、
再暗号化された前記ブロックを、前記新たに格納される記憶媒体の場所に書き込むステップとを含む、方法。
【請求項１２】
請求項１１に記載の方法であって、選出されたブロックはランダムに選択される、方法。
【請求項１３】
請求項１１に記載の方法であって、
選出されたデータのブロックは元々データのブロックを暗号化するのに使用された第１の暗号化スキームとは異なる第２の暗号化スキームを使用して再暗号化される、方法。
【請求項１４】
請求項１１に記載の方法であって、再暗号化されたデータのブロックを記憶媒体上の異なる場所に格納するステップは記憶媒体上のブロック間にギャップを導入する、方法。
【請求項１５】
請求項１１に記載の方法であって、再暗号化されたデータのブロックを記憶媒体上の異なる場所に格納するステップは記憶媒体を含む装置がアイドルである時に生じる、方法。
【請求項１６】
記憶媒体と、
暗号化されたデータのブロックを記憶媒体上に格納し、記憶媒体上のブロックを、当該ブロックが新たに格納される記憶媒体の場所により決定される暗号化スキームを用いて再暗号化し、再暗号化した前記ブロックを、前記新たに格納される記憶媒体の場所に書き込むプロセッサとを含む、装置。
【請求項１７】
請求項１６に記載の装置であって、選出されたブロックはランダムに選択される、装置。
【請求項１８】
請求項１６に記載の装置であって、選出されたデータのブロックは元々データのブロックを暗号化するのに使用された第１の暗号化スキームとは異なる第２の暗号化スキームを使用して再暗号化される、装置。
【請求項１９】
請求項１６に記載の装置であって、記憶媒体上のブロックはギャップにより分離される、装置。
【請求項２０】
データのブロックを暗号化して暗号化されたデータのブロックを作り出すステップと、
暗号化されたデータのブロックを記憶媒体上に格納するステップと、
暗号化されたデータのブロックが記憶媒体上に格納された時間に関連する補助データを格納するステップと、
記憶媒体から暗号化されたデータのブロックを読み出すステップと、
記憶媒体上のブロックを、当該ブロックが新たに格納される記憶媒体の場所により決定される暗号化スキームを用いて再暗号化するステップと、
再暗号化された前記ブロックを、前記新たに格納される記憶媒体の場所に書き込むステップと、
再暗号化されたデータのブロックが記憶媒体上に書き込まれた時間に関連する補助データを格納するステップとを含む、方法。
【請求項２１】
記憶媒体と、
データのブロックを暗号化して暗号化されたデータのブロックを作り出し、暗号化されたデータのブロックを記憶媒体上に格納し、暗号化されたデータのブロックが記憶媒体上に格納された時間に関連する補助データを格納し、記憶媒体から暗号化されたデータのブロックを読み出し、記憶媒体上のブロックを、当該ブロックが新たに格納される記憶媒体の場所により決定される暗号化スキームを用いて再暗号化し、再暗号化された前記ブロックを、前記新たに格納される記憶媒体の場所に書き込み、再暗号化されたデータのブロックが記憶媒体上に書き込まれた時間に関連する補助データを格納するプロセッサとを含む、装置。
【発明の詳細な説明】
【背景技術】
【０００１】
磁気または光ディスク装置、プローブ記憶装置、または固体デバイス等のさまざまなタイプのデータ記憶装置内に格納されたデータは許可されないパーティや敵による周期的な点検に曝される。
【０００２】
このような装置上のデータを保護する１つの方法は、たとえば、公開鍵や個人鍵を使用してデータを暗号化することである。鍵を知らない敵はデータを復号できないが、暗号化されたデータのスナップショットを作ることができる。異なるスナップショットを較べることにより、敵は格納されたデータに関するある情報を得ることができる。データの時間にわたる変化の解析はトラフィック解析と呼ばれる。たとえば、ファイル割当テーブル（またはもう１つのファイル・システム・エリア）内の変化はデータ変化の程度を示すことができるが、最も重要なのは、データベースの変化は変化した記録に関する情報を示すことができる点である。
【０００３】
その例は敵が予約をし、その後記憶媒体へのアクセスを得ると、予約システムデータベース内の変更された場所を見つける飛行予約システムである。予約に応答してデータベースが変更された場所を知ることにより、敵はデータ構造、特定の飛行に対する記録の場所、座席、航空会社、等に関する知識を得ることができる。この知識により、目標とする予約は続けられ制限を超えた予約を引き起こす。このようにして、予約システムデータベースに頼る航空会社に重大な損害を与えることがある。
【発明の開示】
【課題を解決するための手段】
【０００４】
第１の側面において、本発明は記憶媒体から格納されたデータの一部を読出し、格納されたデータの一部を復号し、変更が要求されれば、格納されたデータの一部を変更して変更データを作り出し、変更データを暗号化し、暗号化した変更データを記憶媒体に書き込むことを含む方法を提供する。
【０００５】
もう１つの側面において、本発明は記憶媒体、および記憶媒体から格納されたデータの一部を読出し、格納されたデータの一部を復号し、変更が要求されれば、格納されたデータの一部を変更して変更データを作り出し、変更データを暗号化し、暗号化した変更データを記憶媒体に書き込むプロセッサを含む装置を提供する。
【０００６】
もう１つの側面において、本発明は暗号化されたデータのブロックを記憶媒体上に格納し、データの選出されたブロックを再暗号化し、データの再暗号化されたブロックを記憶媒体上の異なる場所に格納することを含む方法を提供する。
【０００７】
もう１つの側面において、本発明は記憶媒体、および暗号化されたデータのブロックを記憶媒体上に格納し、選出されたデータのブロックを再暗号化し、再暗号化されたデータのブロックを記憶媒体上の異なる場所に格納するプロセッサを含む装置を提供する。
【０００８】
もう１つの側面において、本発明はデータのブロックを暗号化して暗号化されたデータのブロックを作り出し、暗号化されたデータのブロックを記憶媒体上に格納し、暗号化されたデータのブロックが記憶媒体上に格納された時間に関連する補助データを格納し、暗号化されたデータのブロックを記憶媒体から読出し、暗号化されたデータのブロックを再暗号化し、暗号化されたデータのブロックを記憶媒体上に格納し、再暗号化されたデータのブロックが記憶媒体上に再書込みされた時間に関連する補助データを格納するステップを含む方法を提供する。
【０００９】
もう１つの側面において、本発明は記憶媒体、およびデータのブロックを暗号化して暗号化されたデータのブロックを作り出し、暗号化されたデータのブロックを記憶媒体上に格納し、暗号化されたデータのブロックが記憶媒体上に格納された時間に関連する補助データを格納し、暗号化されたデータのブロックを記憶媒体から読出し、暗号化されたデータのブロックを再暗号化し、再暗号化されたデータのブロックを記憶媒体上に格納し、再暗号化されたデータのブロックが記憶媒体上に再書込みされた時間に関連する補助データを格納するプロセッサを含む装置を提供する。
【００１０】
これらおよび他の特徴および利点は下記の詳細な説明を読めば明らかとなる。
【実施例】
【００１１】
本発明は格納された情報を許可されないアクセスから保護する方法および装置に関連し、特に、データがトラフィック解析を介した発見に抵抗するようにデータ記憶装置内のデータを暗号化または操作することに関連している。
【００１２】
図面について、図１は本発明の側面に従って動作することができるディスク装置１０の形のデータ記憶装置の絵画表現である。ディスク装置はハウジング１２を含み、本図では上部が除去されて下部が見え、ディスク装置のさまざまなコンポーネントを含むサイズおよび構成とされる。ディスク装置は、ここでは磁気ディスクである、ハウジング内の少なくとも１つのデータ記憶媒体１６を回転させるスピンドルモータ１４を含んでいる。少なくとも１本のアーム１８がハウジング１２内に含まれ、各アーム１８は記録および／または読取ヘッドまたはスライダ２２を有する第１端２０、およびベアリング２６により軸上にピボット搭載された第２端２４を有する。アクチュエータモータ２８がアームの第２端２４に配置され、アーム１８をピボットしてヘッド２２をディスク１６上の所望のトラック上に位置決めする。アクチュエータモータ２８は図示せぬコントローラにより調整される。データはディスク上の同心トラック３０内に格納される。多数のディスクが含まれる場合、多数のディスク上の対応するトラックがシリンダを形成する。トラックはセクタ３２へ分割されデータのブロックがセクタ内に格納される。
【００１３】
図２は本発明の側面を実施するのに使用できる装置４０のブロック図である。この装置はコンピュータ４２およびデータ記憶装置４４を含み、それは、たとえば、ディスク装置、プローブ記憶装置、フラッシュメモリ、メモリカード、固体記憶装置、その他の記憶装置とすることができる。コンピュータ４２はホスト・オペレーティングシステムに従って作動しチャネル４８を介してデータ記憶装置と通信するプロセッサ４６を含んでいる。コンピュータは入力および出力装置およびメモリコンポーネント等のコンピュータ内で一般的に見られる他のコンポーネントも含んでいるが、図示されていない。プロセッサ４６は本明細書に記述されているさまざまな読取り、書込みおよび暗号化機能を実施するように動作することができる。
【００１４】
データ記憶装置は磁気または光記憶媒体、強誘電性媒体、位相変化媒体、または固体メモリ等のあるタイプの記憶媒体５０、および媒体に対するデータの読み書きを制御するコントローラ５２を含んでいる。コントローラはデータ記憶装置内に含まれ記憶媒体に対して読み書きされるデータを処理するのに使用されるファームウエア５２を実行することができる。メモリ５４および暗号モジュール５６を含む付加コンポーネントを含めてデータの処理を促進することができる。暗号モジュールは図２に示すように記憶装置の内側とすることができ、またはオペレーティングシステム（ＯＳ）内にソフトウェアとして実現することができ、またはホストおよび記憶装置間のデータパス内に挿入することができる。
【００１５】
一側面において、本発明はディスク記憶装置に対する全シリンダまたはセクタまたはトラック暗号化を提供する。一実施例では、ディスク装置は回転可能な磁気または光記憶媒体上の同心円形トラック内の複数の論理ブロックに情報を格納する。本発明のこの側面において、トラック内のどこかでデータが変更される場合、全トラック上のデータが読み出されて変更が行われる。次に、全トラックからのデータが暗号化されてディスクに書き戻される。
【００１６】
この方法において、敵が変更前後の格納された情報のスナップショットを比較すれば、比較により決定できる唯一の情報はデータがトラック内のどこかで変更しているということである。このように、スナップショット間の変更からなんらかの意味のある結論を引き出すのは困難である。
【００１７】
本発明のもう１つの側面では、暗号化を実現するために、記憶媒体上のトラックから格納されたデータの一部をバッファへ読み出してバッファのコンテンツを暗号化することができる。トラックの選出部は一緒に処理すべきデータを含んでいる。たとえば、その部分のデータをデータアクセスのために読出し復号する、または読出し、復号、修正、暗号化してデータライト操作のためにディスクへ書き戻すことができる。その部分は、たとえば、インターリーブド・ブロック・シーケンスを形成する、全セクタ、セクタ内のブロックの半分、１／３等の隣接シーケンス、さらにはセクタ内の各ｋｔｈブロック（１つ置き、２つ置き、等）等の予め定められた部分とすることができる。セクタ内の記憶ブロックは任意に部分に分割して一緒に処理することができる。
【００１８】
トラックデータの任意の部分を一緒に処理できるが、一例ではこの部分は整数のセクタを含んでいる。２つ以上のセクタを使用するとトラフィック解析に対するデータ変更の場所に関する比例的に少ない情報が与えられる。この部分は暗号化ハードウェアおよびソフトウェアのケイパビリティに従って選択することができ、アクセス速度、バッファサイズ、暗号化エンジンの複雑さ、データ・アクセス・レイテンシ（ｌａｔｅｎｃｙ）、等の最善のトレードオフを達成する。
【００１９】
図３は本発明の一側面を例示するフロー図である。ホストは所望場所（ＬＢＡ）を有するデータのブロックをディスク装置へ送り、それはＬＢＡがあるトラックを決定し、データを読出し、データを復号し、ＬＢＡを修正し、修正データを暗号化して修正ＬＢＡへ書き戻す。
【００２０】
図３の例において、ホストコンピュータはディスク上に格納されるデータへ変更を送信する（ブロック７０）。変更されるデータを含むデータのトラックの一部がバッファメモリへ読み込まれ（ブロック７２）、古いデータが読み出され復号された後で変更がなされる（ブロック７４）。次に、変更データを含む（ブロック７６）全部分が暗号化され（ブロック７８）ディスクに書き込まれる（ブロック８０）。この例では、ディスク装置が暗号化を行う。暗号化は「ワイドブロック」暗号化である、すなわち、平文内の各ビットは暗号文の全ビットに影響を及ぼす。
【００２１】
本発明のもう１つの側面において、記憶システムがアクションを開始しない受動方法を使用する代りに、本発明は能動記憶システムを提供し、それはデータレイアウト（すなわち、場所）内に多くの変更を導入し、敵はどの変更がダミー変更でどの変更がリアルであるかが判らない。
【００２２】
一タイプの能動記憶システムはランダム・データ・リローションを提供する。図４はデータ・リローション方法に例示するフロー図である。ブロック８１に示すように、この方法は記憶装置に格納されるデータの暗号化ブロックで開始する。これらのブロックのいくつかはそれらに対する新しい場所と一緒に（ブロック８３）ランダムに選出され（ブロック８２）、選出ブロックは新しい場所によって決まる暗号化方法により再暗号化される。次に、データの再暗号化ブロックが記憶媒体上の新しい場所に格納される（ブロック８６）。
【００２３】
データブロックは、記憶媒体上のそれらの場所に応じて、異なる暗号化スキームまたは異なる鍵を使用して異なって暗号化される。すなわち、同じデータが記憶媒体上の異なる場所に格納される時に異なって見える。
【００２４】
ランダムデータ再配置はホスト・オペレーティングシステム（ＯＳ）レベルで実現することができる。暗号化はデータ場所によって決まる。暗号の用語で、これは「ロケーションツィーク（ｌｏｃａｔｉｏｎ  ｔｗｅａｋ）」と呼ばれる。暗号化を実施するのに使用される鍵は不変であるが、暗号化スキームはツィーク（ｔｗｅａｋ）される、すなわち、ディスク上の可能な各場所に対して修正される。
【００２５】
暗号化がホストにより実施されるかディスク装置により実施されるかは重要ではない。データのランダムに選出されたブロックの暗号化形式は２つの異なる場所において異なり、ディスク・オフラインを調べるアタッカーは新しい場所に同じデータが書き込まれたか異なるデータが書き込まれたか判らない。
【００２６】
暗号化および復号は暗号化している記憶システム内で自動的とすることができる。データは読み出されると、復号形式でホストへ与えられる。データはディスクに書き込まれると、秘密鍵により暗号化され暗号化は場所によりツィークされる。それにより暗号化はホストに対してトランスペアレントとされる。ホストはデータのあるブロックを再配置するだけでよい。
【００２７】
あるいは、ファイルシステムが記憶装置（たとえば、オブジェクトベース記憶装置（ＯＳＤ）内の）により知られる、または処理される場合、記憶装置は再配置操作を背景操作として実施することができる。たとえば、システムがアイドルであれば、ランダムに選出された論理ブロックは記憶装置内で再暗号化され媒体上の他の場所へ再配置される。
【００２８】
もう１つの例では、再配置操作はデフラグメンテーション（ｄｅｆｒａｇｍｅｎｔａｔｉｏｎ）等の他の有用なタスクに接続することができる。デフラグメンテーションが実施されると、データブロックは移され、そのため、ホストは影響を受けたデータを再び移す必要がない。ホストはこれらのブロックのいくつかを再配置し、それらは既に隣接ブロックの一部であるため、デフラグメンテーションにより移されることはない。したがって、これら２つの操作は、一方が他方を容易にできる点において、関連している。
【００２９】
デフラグメンテーションに続いて、記憶媒体の一部は空きとなる。デフラグメンテッド（ｄｅｆｒａｇｍｅｎｔｅｄ）・ディスクにおいて、空きエリアは任意にシャッフル（ｓｈｕｆｆｌｅ）することができ、ランダムデータで満たすことさえできる。ファイルは移されて、ファイル間にギャップを導入したりギャップを変えたりして、ほとんどあらゆるブロックが再暗号化される。任意のデータ再配置がトラフィック解析を防止する。任意の２つのデータブロックのコンテンツをファイル割当テーブルまたは他のデータシステム内の対応する変更と交換することができる。２つのランダムな場所によりこれは「シャッフル」と呼ばれる。しかしながら、ランダムな場所を使用する必要はない。たとえば、ある範囲のブロックに対してＢｌｏｃｋ［ｋ］がＢｌｏｃｋ［ｋ＋１］と交換されるところでは、ブロックはより規則的に移すことができる。
【００３０】
その結果、データの多くの変更されたブロックが生じ、敵はスナップショットを較べてもどの変更が新しいデータに対応し、どれがデータ再配置の結果であるか判らない。
【００３１】
もう１つのタイプの能動記憶システムはデータリフレッシュ操作を提供する。情報の各ブロックに対して、それが書き込まれた時間を格納するのは有用である。ある時間後に、データは同じ場所に再書込みすることができ書込時間を識別する補助データが更新される。ブロック暗号化はこの最終書込時間データにより修正（すなわち、ツィーク）することができ、リフレッシュされたブロックは完全に違って見える。
【００３２】
一側面において、データ記憶装置は暗号化装置とすることができる。それはリアルタイムクロックを有し、ホストから現在時間を受信することができ、あるいはこの装置はある数の書込操作後に増分されるカウンタを使用することができる。時間関連補助データを対応するデータブロックと共にエラー訂正コードと同様に格納することができ、あるいはサーボ情報と共にブロック間のギャップ内または個別のテーブル内に格納することができる。
【００３３】
暗号化はホストにより行うこともでき、それは、たとえば、物理的データブロックよりも短い論理データブロックを使用し、空きスペースを補助データに関連する時間で満たす。装置ドライバは補助データをトランスペアレントに付加および除去することができ、そのためソフトウェア・アプリケーションは修正する必要がない。
【００３４】
暗号化は記憶場所だけでなく任意のデータによりツィークすることができる。たとえば、カウンタ／時間補助データをその場所に単純にアペンド（ａｐｐｅｎｄ）またはプリペンド（ｐｒｅｐｅｎｄ）する、またはそれとの排他的ＯＲ演算において結合してツィークを得ることができ、それは暗号化を修正するのに使用される。
【００３５】
図５は本発明のこの側面を例示するフロー図である。データのブロックはブロックが格納された時間の表示と結合して格納される（ブロック９０）。次に、ブロックは読み出され（ブロック９２）、データが前に格納された時に使用された暗号化スキームとは異なる暗号化スキームにより再暗号化される。たとえば、暗号化スキームはブロックが格納された時間によって決まることがある（ブロック９４）。次に、再暗号化されたデータのブロックが記憶媒体に書き戻される（ブロック９８）。
【００３６】
この方法により、記憶装置は最も古いブロックをリフレッシュするだけでなく、他のランダムに選択されたブロックもリフレッシュする。このように、敵はスナップショットを較べてもどの変更が新しいデータに対応し、どれがデータリフレッシュ操作の結果であるか判らない。
【００３７】
データの頻繁なリフレッシングにより、タイミングのよい減磁がデータの完全性を劣化させそうにないため、記憶装置はより密にデータを書き込むことができる。このように、このスキームは記憶容量の増加に導く。
【００３８】
ディスク装置について本発明を記述してきたが、プローブ記憶装置、フラッシュメモリ、メモリカード、または固体メモリデバイス等の他の記憶装置に概念を拡張するのは回りくどいことではない。
【００３９】
前記したインプリメンテーションおよび他のインプリメンテーションは特許請求の範囲内に入る。
【図面の簡単な説明】
【００４０】
【図１】本発明の側面に従って構成することができるデータ記憶装置の絵画表現である。
【図２】本発明の側面を実施するのに使用することができるコンピュータシステムのブロック図である。
【図３】本発明の一側面を例示するフロー図である。
【図４】本発明のもう１つの側面を例示するフロー図である。
【図５】本発明のもう１つの側面を例示するフロー図である。
【符号の説明】
【００４１】
１０  ディスク装置
１２  ハウジング
１４  スピンドルモータ
１６，５０  記憶媒体
１８  アーム
２０，２４  端
２２  スライダ
２６  ベアリング
２８  アクチュエータモータ
３０  トラック
４２  コンピュータ
４４  データ記憶装置
４６  プロセッサ
４８  チャネル
５２  コントローラ
５４  メモリ
５６  暗号モジュール
【図１】
0005004190.tif 000002
【図２】
0005004190.tif 000003
【図３】
0005004190.tif 000004
【図４】
0005004190.tif 000005
【図５】
0005004190.tif 000006