(57)【特許請求の範囲】
【請求項１】
データ処理装置により実行される方法であって、前記方法は、
コンピュータにより、メモリ装置のアドレスマップにアクセスするステップであって、前記アドレスマップは、前記メモリ装置の第１のメモリ位置と第２のメモリ位置とを参照し、前記第１のメモリ位置は前記メモリ装置に対するフルディスク暗号化動作により暗号化されるべきデータを格納する、ステップと、
前記コンピュータにより、前記第２の位置に対して暗号化動作を実行しないで、前記第２のメモリ位置を暗号化されていると指定するステップと、
前記コンピュータにより、前記メモリ装置の暗号化されていると未だ指定されていないメモリ位置に格納されたデータのみを暗号化するステップであって、該暗号化の後に、前記第１のメモリ位置と前記第２のメモリ位置のデータはディスク暗号化されていると指定される、ステップと、
を有する方法。
【請求項２】
前記第２のメモリ位置を暗号化されていると指定するステップは、
連続する第２のメモリ位置の１又は複数のセットを決定するステップと、
連続する第２のメモリ位置の各セットについて、
対応する位置範囲を決定するステップであって、前記対応する位置範囲は、開始論理アドレスと終了論理アドレスを指定する、ステップと、
前記対応する位置範囲を暗号化されていると指定するステップと、
を有する、請求項１に記載の方法。
【請求項３】
メモリ装置の前記論理アドレスマップは、ディスクドライブの論理アドレスを表す、請求項１又は２に記載の方法。
【請求項４】
前記メモリ装置は、固体メモリ装置であり、物理アドレスマップを含み、前記物理アドレスマップは前記論理アドレスを物理アドレスにマッピングする、請求項１乃至３のいずれか一項に記載の方法。
【請求項５】
前記固体メモリ装置は、フラッシュメモリ装置である、請求項１乃至４のいずれか一項に記載の方法。
【請求項６】
前記データを暗号化した後に、前記コンピュータにより、メモリ装置の論理アドレスマップにアクセスするステップと、
前記コンピュータにより、前記第２のメモリ位置を復号化されているとして指定するステップと、
前記コンピュータにより、前記メモリ装置の前記第１のメモリ位置に格納されたデータのみを復号化するステップであって、前記第１のメモリ位置及び前記第２のメモリ位置のデータは復号化されているとして指定される、ステップと、
を更に有する請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
前記第２のメモリ位置を暗号化されていると指定するステップは、リブート環境から前記第２のメモリ位置を暗号化されていると指定するステップを有し、
前記メモリ装置の暗号化されていると未だ指定されていないメモリ位置に格納されたデータのみを暗号化するステップは、ホストオペレーティングシステム環境から、前記メモリ装置の暗号化されていると未だ指定されていないメモリ位置に格納されたデータのみを暗号化するステップを有する、
請求項１乃至６のいずれか一項に記載の方法。
【請求項８】
前記アドレスマップにアクセスするステップは、前記メモリ装置の論理アドレスマップにアクセスするステップを有し、前記論理アドレスマップは、前記メモリ装置の第１のメモリ位置及び第２のメモリ位置を論理アドレスにより参照し、前記第１及び第２のメモリ位置は、マッピングテーブルで前記論理アドレスにマッピングされた物理アドレスによりアドレス指定される物理メモリ位置に対応し、
前記第２のメモリ位置を暗号化されていると指定するステップは、前記第２の論理メモリ位置を暗号化されていると指定するステップを有する、
請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
前記第２のメモリ位置は、空きメモリ位置を有する、請求項１乃至８のいずれか一項に記載の方法。
【請求項１０】
命令を格納している少なくとも１つの機械アクセス可能記憶媒体であって、前記命令は、機械により実行されると前記機械に、
前記メモリ装置のアドレスマップにアクセスするステップであって、前記アドレスマップは、前記メモリ装置の第１のメモリ位置と第２のメモリ位置とを参照し、前記第１のメモリ位置は前記メモリ装置に対するフルディスク暗号化動作により暗号化されるべきデータを格納する、ステップと、
前記第２の位置に対して暗号化動作を実行しないで、前記第２のメモリ位置を暗号化されていると指定するステップと、
前記メモリ装置の暗号化されていると未だ指定されていないメモリ位置に格納されたデータのみを暗号化するステップであって、該暗号化の後に、前記第１のメモリ位置と前記第２のメモリ位置のデータはディスク暗号化されていると指定される、ステップと、
を含む動作を実行させる、記憶媒体。
【請求項１１】
前記第２のメモリ位置を暗号化されていると指定するステップは、
連続する第２のメモリ位置の１又は複数のセットを決定するステップと、
連続する第２のメモリ位置の各セットについて、
対応する位置範囲を決定するステップであって、前記対応する位置範囲は、開始論理アドレスと終了論理アドレスを指定する、ステップと、
前記対応する位置範囲を暗号化されていると指定するステップと、
を有する、請求項１０に記載の記憶媒体。
【請求項１２】
メモリ装置の前記論理アドレスマップは、ディスクドライブの論理アドレスを表す、請求項１０又は１１に記載の記憶媒体。
【請求項１３】
前記メモリ装置は、固体メモリ装置であり、物理アドレスマップを含み、前記物理アドレスマップは前記論理アドレスを物理アドレスにマッピングする、請求項１０乃至１２のいずれか一項に記載の記憶媒体。
【請求項１４】
前記固体メモリ装置は、フラッシュメモリ装置である、請求項１０乃至１３のいずれか一項に記載の記憶媒体。
【請求項１５】
前記命令は、実行されると前記機械に、さらに、
前記データを暗号化した後に、メモリ装置の論理アドレスマップにアクセスするステップと、
前記第２のメモリ位置を復号化されているとして指定するステップと、
前記メモリ装置の前記第１のメモリ位置に格納されたデータのみを復号化するステップであって、前記第１のメモリ位置及び前記第２のメモリ位置のデータは復号化されているとして指定される、ステップと、
を含む動作を更に実行させる、請求項１０乃至１４のいずれか一項に記載の記憶媒体。
【請求項１６】
前記第２のメモリ位置を暗号化されていると指定するステップは、リブート環境から前記第２のメモリ位置を暗号化されていると指定するステップを有し、
前記メモリ装置の暗号化されていると未だ指定されていないメモリ位置に格納されたデータのみを暗号化するステップは、ホストオペレーティングシステム環境から、前記メモリ装置の暗号化されていると未だ指定されていないメモリ位置に格納されたデータのみを暗号化するステップを有する、
請求項１０乃至１５のいずれか一項に記載の記憶媒体。
【請求項１７】
前記アドレスマップにアクセスするステップは、前記メモリ装置の論理アドレスマップにアクセスするステップを有し、前記論理アドレスマップは、前記メモリ装置の第１のメモリ位置及び第２のメモリ位置を論理アドレスにより参照し、前記第１及び第２のメモリ位置は、マッピングテーブルで前記論理アドレスにマッピングされた物理アドレスによりアドレス指定される物理メモリ位置に対応し、
前記第２のメモリ位置を暗号化されていると指定するステップは、前記第２の論理メモリ位置を暗号化されていると指定するステップを有する、
請求項１０乃至１６のいずれか一項に記載の記憶媒体。
【請求項１８】
メモリ装置のアドレスマップにアクセスする手段であって、前記アドレスマップは、前記メモリ装置の第１のメモリ位置と第２のメモリ位置とを参照し、前記第１のメモリ位置は前記メモリ装置に対するフルディスク暗号化動作により暗号化されるべきデータを格納する、手段と、
前記第２の位置に対して暗号化動作を実行しないで、前記第２のメモリ位置を暗号化されていると指定する手段と、
前記メモリ装置の暗号化されていると未だ指定されていないメモリ位置に格納されたデータのみを暗号化するステップであって、該暗号化の後に、前記第１のメモリ位置と前記第２のメモリ位置のデータはディスク暗号化されていると指定される、手段と、
を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書は、暗号化に関する。
【背景技術】
【０００２】
フルディスク暗号化は、ハードディスクドライブにある全てのデータを暗号化する技術である。多くのフィアルシステムでは、ハードディスクドライブからのデータの削除は、実際には、ハードディスクドライブからデータを削除していない。代わりに、該データにより占有されていたメモリ位置が、未使用としてマークされ、実際のデータは残ったままである。したがって、フルディスク暗号化技術は、ハードディスクドライブの使用及び未使用部分の両方を暗号化して、暗号化されていないデータが残されないようにする。
【０００３】
ハードドライブへのデータの書き込みは、物理的記憶媒体に比べて相対的に非破壊処理である。つまり、データは、記憶媒体の劣化を伴わずに、非常に多くの回数、ハードドライブのメモリ位置に書き込むことができる。しかしながら、幾つかの種類のコンピュータ記憶装置は、ハードドライブに比べてリード及びライト動作の観点から相対的に限られた寿命しか有しない。固体ドライブ及びＵＳＢフラッシュドライブは、メモリセルがプログラミング及び消去の繰り返しにより最終的に消耗する消去可能なコンピュータ記憶装置の例である。このようなメモリ装置の全体的寿命を延ばすために、ブロック又はページのようなメモリ装置のアドレス可能セクションは、ウェアレベリングと同じようなレートでプログラミング及び／又は消去できる。ウェアレベリングは、メモリ装置のメモリセルが等しく損耗し、例えばメモリセルのプログラミング及び／又は消去がメモリ装置の寿命に渡って全てのメモリセルで同様のレートで生じる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
フルディスク暗号化は、メモリセルの使用及び未使用部分の両方を暗号化し、暗号化されていないデータが存在しないようにするので、フルディスク暗号化は、固体ドライブの経時劣化を早め、ウェアレベリング動作のために使用されるウェアレベリングテーブルの拡大を早めてしまう。これは、記憶装置の寿命を不要に短縮し、リード及びライトアクセス回数を減少させてしまう。
【課題を解決するための手段】
【０００５】
概して、本願明細書に記載する主題の１つの新規な態様は、方法により実施され得る。前記方法は、コンピュータにより、メモリ装置のアドレスマップにアクセスするステップであって、前記アドレスマップは、前記メモリ装置の第１のメモリ位置と第２のメモリ位置とを参照し、前記第１のメモリ位置は前記メモリ装置に対するフルディスク暗号化動作により暗号化されるべきデータを格納する、ステップと、前記コンピュータにより、前記第２の位置に対して暗号化動作を実行しないで、前記第２のメモリ位置を暗号化されていると指定するステップと、前記コンピュータにより、前記メモリ装置の前記第１のメモリ位置に格納されたデータのみを暗号化するステップであって、前記第１のメモリ位置と前記第２のメモリ位置のデータはディスク暗号化されていると指定される、ステップと、を有する。上述の態様の他の実施形態は、対応するシステム、装置及び上記方法の動作を実行するよう構成されコンピュータ記憶装置上にエンコードされたコンピュータプログラムを含む。
【０００６】
本願明細書に記載する主題の特定の実施形態は、以下の利点のうちの１又は複数を実現するために実施され得る。空きメモリ位置を暗号化しないことにより、その位置のプログラミングを回避する。それにより、その位置に対するリード及びライトサイクルの回数を低減し、さらには、ウェアテーブルの不要な拡張を回避する。また、これは、ウェアテーブルが複雑性の点で不要に拡張されないので、全ての位置がフルディスク暗号化によりプログラミングされている固体メモリ装置に比べて、リード及びライトのときの性能を向上できる。
【０００７】
本願明細書に記載する主題の１又は複数の実施形態の詳細は、添付の図面及び以下の説明で説明される。主題の他の特徴、態様及び利点は、説明、図面及び請求の範囲から明らかになる。
【図面の簡単な説明】
【０００８】
【図１】固体ドライブにおける論理メモリアドレスの物理メモリアドレスへのマッピング例のブロック図である。
【図２】ウェアレベリングを実施するメモリ装置の暗号化例のブロック図である。
【図３】ウェアレベリングを有するメモリ装置のデータを暗号化する処理例のフロー図である。
【図４】ウェアレベリングを有するメモリ装置のデータを暗号化する別の処理例のフロー図である。
【図５】ウェアレベリングを有するメモリ装置のデータを復号化する処理例のフロー図である。
【図６】図１−５に関して説明される処理及びシステムを実施するために用いられ得る例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００９】
種々の図面を通じて同様の参照符号及び記号は同様の要素を示す。
【００１０】
図１は、固体ドライブメモリ装置１３０における論理メモリアドレスの物理メモリアドレスへのマッピング例のブロック図である。メモリ装置１３０は、固体メモリ装置、例えばフラッシュドライブを有する。論理アレイのような論理−物理マッピング１０２は、論理メモリ位置をメモリ装置１３０内の物理的位置にマッピングする。例えば、オペレーティングシステムは、ハードドライブの論理メモリ位置にアクセスするよう構成され得る。例えば、論理的位置は、使用されるアドレス方式に依存して、５１２バイト又は４０９６バイトのブロックのような隣接論理ブロックのセットとしてアドレス指定される。しかしながら、メモリ装置１３０は、例えばＮＯＲ又はＮＡＮＤフラッシュメモリであっても良く、メモリ装置１３０の物理的トランジスタアレイアーキテクチャによって、異なるアドレス方式を実装する。したがって、論理−物理マッピング１０２は、ハードディスク表面１１０の論理アドレスをメモリ装置１３０の物理アドレスにマッピングする。
【００１１】
多くのハードディスクドライブアーキテクチャでは、データは、格納されるとき、同じ位置に再書き込みされ得る。ハードディスクドライブの磁気媒体は、メモリ装置１３０のトランジスタと比べてより多くのリード及びライトサイクルに損傷することなく耐えられるので、ウェアレベリングは、論理−物理マッピング１０２と共に、メモリ装置１３０内の位置を通じて均等に、プログラミング及び消去動作を分配するために用いられる。一般に、ウェアレベリングは、メモリ装置内の物理メモリ位置の間で書き込み動作を均一に分布させることにより、固体メモリ装置の寿命を延ばす技術である。
【００１２】
簡易なウェアレベリング動作は、論理−物理マッピング１０２に反映される。例えば、メモリ装置が、それぞれデータ１０５、１１０、１１５により表される３個のファイルを格納すると仮定する。説明を簡単にするため、データは、論理アドレス及び物理アドレスの両方により定められる連続した位置に格納される。第１のファイルのデータ１０５は、第１の連続論理メモリ位置セットに格納される。第１の連続論理メモリ位置セットは、メモリ位置１３０内の第１の連続物理メモリ位置セットに対応する。第２及び第３のファイルのデータ１１０及び１１５は、連続論理メモリ位置に格納される。しかしながら、第１のファイルのデータ１１０は、メモリ装置１３０内の第１の連続物理メモリ位置セットに格納され、第２のファイルのデータ１１５は、メモリ装置１３０内の第２の連続物理メモリ位置セットに格納される。
【００１３】
ポインタ１２０は、ライト動作中にデータを格納するために用いられるメモリ装置１３０内の次の位置（例えば、メモリ位置、メモリブロック）を指すために用いられる。ポインタ１２０及びマッピング１０２は、メモリ装置１３０と関連するメモリ制御ロジック１１２により制御される。両者は、一つには、ウェアレベリング動作を達成するために用いられる。
【００１４】
第２のファイルのデータがユーザにより更新され、第２のファイルのデータ１１５の論理メモリ位置は変わらないと仮定する。しかしながら、データ１１５を格納するために用いられる物理メモリ位置は変更される。例えば、ファイルが約２０メガバイトのサイズであると仮定する。更新されたデータ１１５は、メモリ装置１３０の上の図のポインタ１２０の位置から、メモリ装置１３０に書き込まれる。書き込み動作の終わりに、ポインタ１２０は、前のポインタ位置からデータ１１５の２０ＭＢを格納するために必要な量だけ進められ、ファントムブロック１１６により示されるメモリ位置に前に格納されていた変更されたデータ１１５は、ファントムブロック１１６の終わりとポインタ１２０との間の範囲にある位置に保存される。
【００１５】
別の一般的に用いられる処理及びコンピュータ装置は、フルディスク暗号化である。フルディスク暗号化は、ハードディスクドライブの全てのメモリ位置を暗号化する。幾つかのフルディスク暗号化技術では、マスタブートレコードが暗号化されずに残される。しかしながら、幾つかの他のフルディスク暗号化技術は、マスタブートレコードも暗号化できる。実際のハードディスクドライブでは、ファイルが削除されるとき、実際の基礎データは、ハードディスクドライブのメモリ位置に格納されたままである。したがって、フルディスク暗号化は、消去されていないファイルに格納されたデータ、並びに削除されたファイルのデータの一部及びハードディスクドライブに格納された他のデータの両方へのアクセスを禁止するために用いられる。
【００１６】
フルディスク暗号化はハードディスク全体を暗号化するので、フルディスク暗号化を使用すると、論理アドレスにより定められる各位置は、暗号化データを書き込まれる。したがって、論理ハードドライブ全体のこの暗号化の結果、メモリ装置１３０のメモリ位置のほぼ全部がマッピングされ及び使用される。これは、メモリ装置１３０内の各メモリ位置が経験するプログラミングサイクルの数を劇的に増大させ、したがって、メモリ装置１３０の経時劣化を早め、及び／又はリード及びライト動作回数に関する性能を劣化させ得る進行した状態へ論理−物理マッピング１０２を進めてしまう。
【００１７】
幾つかの実装では、メモリ装置１３０は、データがメモリ装置内の他の位置に格納されるとき、元の位置にある残存データを消去する「フラッシング」動作を実施し得る。例えば、ファントムブロック１１６により示されるような、始めにデータ１１５を格納していたメモリ位置は、データ１１５が新しい位置に保存された後に消去される。したがって、ファントムブロック１１６により示されるメモリ位置は、データ１１５が保存された後に空になる（例えば、全ての値が論理０になり、又は全ての値が論理１になる）。
【００１８】
したがって、データが格納されていない装置１３０の実際の物理メモリ位置のデータを暗号化するために如何なる動作（practical）も必要はない。したがって、装置ロジック１１２は、フルディスク暗号化処理中のメモリ装置１３０に対するプログラミング動作の量を削減するウェアレベリング技術を実施できる。
【００１９】
他の実装では、メモリ装置１３０は、フラッシング動作を実施しなくても良い。したがって、残存データは、幾つかのメモリ位置に保持されても良い。しかしながら、これらの物理メモリ位置は、もはや、データが格納される論理位置として論理的にマッピングされないので、妥協の危険は比較的小さい。したがって、残存データを格納している装置１３０の実際の物理メモリ位置のデータを暗号化することは、スキップできる。またもや、装置ロジック１１２は、フルディスク暗号化処理中のメモリ装置１３０に対するプログラミング動作の量を削減するウェアレベリング技術を実施できる。
【００２０】
図２は、ウェアレベリングを実施するメモリ装置の暗号化例のブロック図である。前述のように、フルディスク暗号化は、ハードディスク全体を暗号化し、ハードディスクの全データを保護する。しかしながら、ハードディスクと異なり、メモリ装置は、データ１０５、１１０、１１５を格納するために用いられる位置以外の位置にデータを格納しない（或いは、代替で、これらの他の位置に格納されたデータは、データを格納する論理位置に論理的にマッピングされない）。したがって、メモリ装置１３０は、フルディスク暗号化の目標を実質的に達成するために、データ１０５、１１、１１５を暗号化する必要があるだけである。
【００２１】
図３を参照して、メモリ装置１３０のデータ１０５、１１、１１５を暗号化する処理の一例を説明する。図３は、ウェアレベリングを有するメモリ装置のデータを暗号化する例示的な処理３００のフロー図である。この処理は、コンピュータ装置に格納されるソフトウェアにより実施できる。図３の限定の一例は、処理は、プリブート及びポストブート環境の両方で生じる。本願明細書で用いられるように、プリブート環境は、主オペレーティングシステムをブートする前のコンピュータ装置上の環境である。
【００２２】
処理３００は、プリブート環境のインスタンスを作成する（３０２）。例えば、コンピュータで動作するプログラムは、オペレーティングシステムをリブートさせ、コンピュータにプリブート環境で以下のステップの幾つかを実行させるフラグを設定させても良い。
【００２３】
処理３００は、復号化の初期状態を有するボリュームの暗号化を示すマップを生成する（３０４）。例えば、処理３００は、装置１３０の論理−物理マッピング１０２にアクセスし、全ての論理位置、したがって全ての物理位置を暗号化されていないとして指定しても良い。
【００２４】
処理３００は、空きメモリ位置を識別する（３０６）。空きメモリ位置は、データを格納するために利用可能な位置である。例えば、処理３００は、空きメモリ位置として割り当てられていないメモリ位置であると示される、ディスク表面１１０の図の論理位置を識別しても良い。これらの論理位置は、データを格納するために利用可能であると示される、メモリ装置１３０内の物理位置（つまり、空き位置、又はデータが別の位置に書き込まれた後にデータが未だ格納されていない位置）に対応する。
【００２５】
処理３００は、空きメモリ位置を暗号化されているとして指定する（３１０）。例えば、空きとして指定される論理位置は、図２のディスク表面１１０の図における「ＵＥ->Ｅ」動作により示されるように、暗号化されているとしても指定される。割り当ては、各未使用セクタにより詳細に記述されても良く、又は幾つかの実装では、未使用ブロックに渡る範囲により未使用空間の連続ブロックを詳細に記述しても良い。位置は、実際の暗号化動作を実行せずに、暗号化されているとして指定される。
【００２６】
未使用範囲は、それらが対応するメモリ位置に格納されたデータを有しないので、ホストオペレーティングシステムはそれらを読み出そうとせず、それらに格納されたデータは値を有しないだろう（例えば、空き位置又は記憶のために利用可能な位置である）。範囲が暗号化されていることを示すだけで、ホストオペレーティングシステムの暗号化処理は、これらの位置を暗号化しない。これは、ウェアレベリングテーブルの増大を防ぎ、メモリ装置１３０内の実際の物理メモリ位置の不要なプログラミングを防ぐ。
【００２７】
処理３００は、プリブート環境からホストオペレーティングシステム環境へブートする（３１２）。例えば、処理が、空きメモリ位置を暗号化されていると指定するときに、該空きメモリ位置の識別を終了した後に、処理３００は、コンピュータ装置に、ホストオペレーティングシステムへとブートさせる。
【００２８】
処理３００は、暗号化されていると指定されていないメモリ位置を暗号化する（３１４）。例えば、ホストオペレーティングシステムで動作する暗号化処理は、空きメモリ位置の暗号化を示すマップにアクセスする。したがって、これらの位置は暗号化されない。代わりに、暗号化されている位置のみが、実際のデータを格納しているとして示される位置である。図２の例では、実際のデータを格納している位置は、データ１０５、１１０、１１５の記憶に対応する論理メモリ位置である。暗号化処理中、データ１０５、１１０、１１５は暗号化され、暗号化データ１０５’、１１０’、１１５’を生成する。
【００２９】
暗号化データは、ポインタ１２０の位置から書き込まれる。例えば、メモリ装置１３０は１００ＧＢの固体ドライブであり、ポインタは概ね５０ＧＢの位置にある物理メモリ位置を参照していたと仮定する。また、データ１０５、１１０、１１５は全部で２５ＧＢであると仮定する。フルディスク暗号化の結果として、ポインタは、約７５ＧＢの位置へ進められる（つまり、暗号化データ１０５’、１１０’、１１５’のサイズに対応する２５ＧＢだけ進められる）。
【００３０】
上述の例は、３個の連続するデータブロックに関して説明した。実際には、ポインタ１２０は、メモリ装置の全てのメモリ位置１３０を通じて１回以上循環され、メモリ装置１３０の物理位置内で部分的に細分化されたファイルを生じ得る。とにかく、空きメモリ位置を暗号化されているとして指定するマップを生成する同じ処理は、ファイルがメモリ装置１３０内で細分化されるときに適用される。このような状況では、暗号化データは、図２に示すような連続ブロックを形成しないかも知れない。しかし、ウェアレベリングテーブルの拡張、及びメモリ装置１３０内の物理メモリ位置に対する不要なリード及びライト動作は、依然として低減されるだろう。
【００３１】
図４は、ウェアレベリングを有するメモリ装置のデータを暗号化する別の例示的な処理４００のフロー図である。処理４００は処理３００と異なり、処理４００では、プリブート環境とポストブート環境との間で区分されるが、必須ではない。例えば、処理４００を実施するコンピュータ装置は固体ドライブを備えると仮定する。オペレーティングシステム及びプログラムがディスク表面１１０及び論理−物理マッピング１２０に依存するアドレス指定処理を実施する間、データはコンピュータに格納され得る。これは、フルディスク暗号化処理中に、空きメモリ位置が暗号化されているとして自動的に指定できることを示す。
【００３２】
処理４００は、メモリ装置の第１及び第２の位置を参照するメモリマップにアクセスする（４０２）。第１のメモリ位置は、メモリ装置に対するフルディスク暗号化動作により暗号化されるべきデータを格納する。例えば、第１のメモリ位置は、論理メモリ位置、したがってデータ１０５、１１０、１１５を格納するために用いられる物理メモリ位置に対応する。第２のメモリ位置は、ライト動作のために利用可能なメモリ位置、例えばメモリ装置１３０内の空きメモリ位置又は残存データを格納するメモリ装置１３０内の位置に対応する。
【００３３】
処理４００は、第２のメモリ位置を暗号化されているとして指定する（４０４）。例えば、空きとして指定される論理位置は、ディスク表面１１０の図における「ＵＥ->Ｅ」動作により示されるように、暗号化されているとしても指定される。この指定は、実際の暗号化動作の使用を含まない。
【００３４】
処理４００は、メモリ装置の第１のメモリ位置に格納されたデータのみを暗号化する（４０６）。こうすることにより、第１のメモリ位置及び第２のメモリ位置のデータは、ディスク暗号化されていると指定される。
【００３５】
処理４００は、メモリ装置全体を暗号化されているとして指定する（４０８）。例えば、処理４００は、メモリ装置１３０全体が暗号化されていると指定することにより、フルディスク暗号化動作を完了する。
【００３６】
その後、データは、メモリ装置１３０から読み出され、ランダムアクセスメモリ内で復号化され得る。これは通常動作の一部である。同様に、データは、メモリ装置１３０に書き込まれる前に、ランダムアクセスメモリ内で暗号化され得る。
【００３７】
図５は、ウェアレベリングを有するメモリ装置のデータを復号化する例示的な処理５００のフロー図である。処理５００は、処理３００及び４００と同じ目的を有する。つまり、ウェアレベリングテーブルの拡張を低減し、及びメモリ装置１３０の物理位置の不要なプログラミング動作の回数を低減する。
【００３８】
処理５００は、メモリ装置の第１及び第２の位置を参照するメモリマップにアクセスする（５０２）。第１のメモリ位置は、メモリ装置に対するフルディスク復号化動作により復号化されるべきデータを格納する。例えば、第１のメモリ位置は、論理メモリ位置、したがって図２の暗号化データ１０５’、１１０’、１１５’を格納するために用いられる物理メモリ位置に対応する。第２のメモリ位置は、ライト動作のために利用可能なメモリ位置、例えばメモリ装置１３０内の空きメモリ位置に対応する。
【００３９】
処理５００は、第２のメモリ位置を暗号化されていないとして指定する（５０４）。例えば、空きと指定される論理位置は、暗号化されているとしても指定される。
【００４０】
処理５００は、第１のメモリ装置にあるデータのみを復号化し（５０６）、次にメモリ装置全体を復号化されているとして指定する（５０８）。
【００４１】
本願明細書に記載される主題及び動作の実施例は、本願明細書に開示した構造及びそれらの構造的等価物を含むデジタル電子回路、又はコンピュータソフトウェア、ファームウェア、ハードウェア、又はそれらの１以上の組合せで実装できる。本願明細書に記載される主題及び動作の実施例は、データ処理装置により実行するために又はデータ処理装置の動作を制御するためにコンピュータ記憶媒体上にエンコードされた１又は複数のコンピュータプログラム、つまりコンピュータプログラム命令の１又は複数のモジュールで実装できる。
【００４２】
コンピュータ記憶媒体は、コンピュータ可読記憶装置、コンピュータ可読記憶担体、ランダム若しくはシリアルアクセスメモリアレイ若しくは素子、又はそれらの１以上の組合せであり又はそれに含まれ得る。コンピュータ記憶媒体は、１又は複数の別個の物理コンポーネント又は媒体（例えば、複数のＣＤ、ディスク又は他の記憶装置）でもあり又はそれに含まれ得る。
【００４３】
本願明細書に記載した動作は、１又は複数のコンピュータ可読記憶装置に格納された若しくは他のソースから受信されたデータに対して、データ処理装置により実行される動作として実装され得る。
【００４４】
用語「データ処理装置」は、データを処理するあらゆる種類の装置、素子、機械を包含し、例としてプログラマブルプロセッサ、コンピュータ、システムオンチップ、又はそれらの複数若しくは組合せを含む。装置は、特定目的論理回路、例えばＦＰＧＡ（field  programmable  gate  array）又はＡＳＩＣ（application-specific  integrated  circuit）を含み得る。装置は、ハードウェアに加えて、問題のコンピュータプログラムのために実行環境を生成するコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、プラットフォーム間ランタイム環境、仮想機械、又はそれらの１又は複数の組合せも含み得る。装置及び実行環境は、ウェブサービス、分散型コンピューティング及びグリッドコンピューティング基盤のような種々の異なるコンピューティングモデル基盤を実現できる。
【００４５】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られている）は、コンパイル済みの又はインタープリット済みの言語、宣言型又は手続き型言語を含む任意の形式のプログラミング言語で記述できる。また、コンピュータプログラムは、スタンドアロン型プログラムとして、又はモジュール、サブルーチン、オブジェクト若しくはコンピューティング環境での使用に適した他のユニットを含む任意の形式で展開できる。コンピュータプログラムは、ファイルシステムにおけるファイルに対応しても良いが、必須ではない。プログラムは、他のプログラム又はデータを保持するファイルの一部（例えば、マークアップ言語文書内に格納された１又は複数のスクリプト）に、問題のプログラムに特化した単一ファイル内に、又は複数の協調ファイル（例えば、１又は複数のモジュール、サブプログラム又はコードの一部を格納するファイル）内に格納され得る。コンピュータプログラムは、１つのコンピュータで又は１箇所若しくは複数箇所に分散して置かれ通信ネットワークにより相互接続される複数のコンピュータで実行されるよう配置できる。
【００４６】
本願明細書に記載した処理及び論理フローは、入力データに対して作用し出力を生成することにより動作を実行するために、１又は複数のコンピュータプログラムを実行する１又は複数のプログラマブルプロセッサにより実行され得る。処理及び論理フローは、特定目的論理回路、例えばＦＰＧＡ（field  programmable  gate  array）又はＡＳＩＣ（application-specific  integrated  circuit）により実行でき、また装置は特定目的論理回路、例えばＦＰＧＡ又はＡＳＩＣとしても実装できる。
【００４７】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用及び特定目的プロセッサの両方、及び任意の種類のデジタルコンピュータの１又は複数のプロセッサを含む。概して、プロセッサは、命令及びデータを読み出し専用メモリ又はランダムアクセスメモリ又はそれらの両方から受信する。コンピュータの基本要素は、命令に従って動作を実行するプロセッサと、命令及びデータを格納する１又は複数のメモリ装置である。概して、コンピュータは、データを格納する１又は複数の大容量記憶装置、例えば磁気、光磁気ディスク若しくは光ディスクを含み、又はこれらからデータを受信し若しくはこれらにデータを転送するために動作可能に結合される。しかしながら、コンピュータはこのような装置を有する必要はない。さらに、コンピュータは、別の装置、例えば少数の例を挙げると、携帯電話機、ＰＤＡ（personal  digital  assistant）、モバイルオーディオ若しくはビデオプレイヤ、ゲーム端末、ＧＰＳ（Global  Positioning  System）受信機、又はポータブル記憶装置（例えば、ＵＳＢ（universal  serial  bus）フラッシュドライブ）に備えられても良い。コンピュータプログラム命令及びデータを格納するのに適する装置は、あらゆる形式の不揮発性メモリ、媒体及びメモリ装置を含み、例えば、半導体メモリ素子、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリ素子、磁気ディスク、例えば内蔵ハードディスク若しくは取り外し可能ディスク、光磁気ディスク、及びＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含む。プロセッサ及びメモリは、特定目的論理回路により補強され、又はそれに組み込まれ得る。
【００４８】
図６は例示的なコンピュータシステムを示す。図６は、図１−５に関して上述した処理及びシステムを実施するために用いられ得る例示的なコンピュータシステム６００のブロック図である。システム６００は、プロセッサ６１０、メモリ６２０、記憶装置６３０及び入力／出力装置６４０を有する。各コンポーネント６１０、６２０、６３０、６４０は、例えば、システムバス６５０を用いて相互接続できる。プロセッサ６１０は、システム６００内で実行のために命令を処理できる。プロセッサ６１０は、システム６２０内に又は記憶装置６３０に格納された命令を処理できる。
【００４９】
メモリ６２０は、システム６００内で情報を格納する。ある実装では、メモリ６２０は、コンピュータ可読媒体である。ある実装では、メモリ６２０は、揮発性メモリユニットである。別の実装では、メモリ６２０は、不揮発性メモリユニットである。
【００５０】
記憶装置６３０は、システム６００に大容量記憶を提供できる。ある実装では、記憶装置６３０は、コンピュータ可読媒体である。種々の異なる実装では、記憶装置６３０は、例えば、ハードディスクドライブ、光ディスクドライブ、固体ドライブ、及び／又は他の大容量記憶装置を含み得る。
【００５１】
入力／出力装置６４０は、システム６００に入力／出力動作を提供する。ある実装では、入力／出力装置６４０は、１又は複数のネットワークインタフェース装置、例えばEthernet（登録商標）カード、シリアル通信装置、例えばＲＳ−２３２ポート、及び／又は無線インタフェース装置、例えば８０２．１１カードを含み得る。別の実装では、入力／出力装置は、入力デ―タを受信し及び他の入力／出力装置、例えばキ―ボード、プリンタ及びディスプレイ装置６６０へ出力データを送信するよう構成されるドライバ装置を含み得る。
【００５２】
本願明細書は多くの特定の実装の詳細を含むが、これらは、発明の範囲又は請求の範囲の限定ではなく、特定の発明の特定の実施形態に固有の特徴の説明として解釈されるべきである。本願明細書に別個の実施形態の文脈で記載された特定の特徴は、単一の実施形態の中で組み合わせて実装することもできる。反対に、本願明細書に単一の実施形態の文脈で記載された特定の特徴は、複数の実施形態で別個に又は任意の適切な実施形態で実装することもできる。
【００５３】
さらに、特徴は、特定の組合せで動作するとして上述され、そのように最初に請求されるが、請求される組合せの中の１又は複数の特徴は、幾つかの場合には該組合せから削除され、請求される組合せは小結合又は小結合の変形を対象とし得る。
【００５４】
同様に、動作は特定の順序で図示されたが、これは、所望の結果を達成するために、このような動作が図示の特定の順序で又は連続的順序で実行されることを要求すると又は全ての図示の動作が実行されると理解されるべきではない。特定の環境では、マルチタスク及び並列処理が有利であっても良い。さらに、上述の実施形態における種々のシステムコンポーネントの分離は、全ての実施形態においてこのような分離を必要とすると理解されるべきではない。また、記載したプログラムコンポーネント及びシステムが概して単一のソフトウェアプロダクトに統合され又は複数のソフトウェアプロダクトにパッケージ化できることが理解されるべきである。
【００５５】
したがって、主題の特定の実施形態が記載された。他の実施形態も添付の請求の範囲に包含される。幾つかの例では、請求項に記載された動作は、異なる順序で実行でき、依然として所望の結果を達成する。さらに、図示された処理は、所望の結果を達成するために、必ずしも図示された特定の順序又はシーケンシャルな順序である必要はない。特定の実装では、マルチタスク及び並列処理が有利であっても良い。
【００５６】
［関連出願の参照］
本願は、米国特許出願番号１３/０７９,８８９号、出願日２０１１年４月５日の優先権の利益を主張する。該米国特許出願は、参照されることによりここに全内容が組み込まれる。
【図１】
0005721901.tif 000002
【図２】
0005721901.tif 000003
【図３】
0005721901.tif 000004
【図４】
0005721901.tif 000005
【図５】
0005721901.tif 000006
【図６】
0005721901.tif 000007