(57)【特許請求の範囲】
【請求項１】
書き込み及び読み出し操作のそれぞれの間に、第１の数の実バンドのユーザデータを暗号化および暗号解読するように構成され、個別の第１のメディア暗号鍵が前記実バンドのそれぞれと関連付けられている、コントローラと、
前記コントローラに通信可能に結合するように構成されたホストデバイスとを含み、前記ホストデバイスが、第２の数の仮想バンドを前記第１の数の実バンドへ集信することにより前記書き込み及び読み出し操作を実行するように更に構成されており、前記第１の数が前記第２の数より小さく、実バンドの特定の１つにおける仮想バンドの各々からのユーザデータが、前記実バンドの特定の１つに関する前記個別の第１のメディア暗号鍵および前記実バンドの特定の１つにおける前記仮想バンドの各々に関連付けられた個別の仮想メディア暗号鍵に基づいた個別の第２のメディア暗号鍵を用いて暗号化および暗号解読される、装置。
【請求項２】
前記ホストデバイスが、前記第２の数の仮想バンドを前記第１の数の実バンドにマッピングするように構成された仮想マシンマネージャを含む、請求項１に記載の装置。
【請求項３】
前記仮想マシンマネージャが、前記第２の数の仮想バンドを前記第１の数の実バンドにマッピングするように構成された１つ又は複数の仮想バンドマネージャを更に含む、請求項２に記載の装置。
【請求項４】
前記１つ又は複数の仮想バンドマネージャのそれぞれが、多数の前記仮想バンドを１つ又は複数の前記第１の数の実バンドにマッピングするように更に構成されている、請求項３に記載の装置。
【請求項５】
前記コントローラが、鍵マテリアルを格納するように構成されたバンドマネージャを更に含む、請求項１〜４の何れかに記載の装置。
【請求項６】
前記バンドマネージャが、不透明鍵記憶装置を更に含む、請求項５に記載の装置。
【請求項７】
前記コントローラが、暗号化および暗号解読モジュールを更に含む、請求項１〜６の何れかに記載の装置。
【請求項８】
前記暗号化および暗号解読モジュールが、ハードウェアで実現される、請求項７に記載の装置。
【請求項９】
各仮想バンドが、一意の認証鍵および暗号鍵でもってセキュリティの観点から完全に保護されている、請求項１〜８の何れかに記載の装置。
【請求項１０】
前記第１の数が、前記第２の数よりも１桁以上小さい、請求項１〜９の何れかに記載の装置。
【請求項１１】
多数の仮想バンドを自己暗号化記憶デバイスの記憶装置用の実バンドへ集信する方法であって、
前記多数の仮想バンドのそれぞれの仮想論理ブロックアドレスレンジの１つ又は複数の部分を、前記実バンドの論理ブロックアドレスレンジの部分に関連付け、
仮想マシンの認証鍵、及び前記仮想マシンを走らせているホストデバイスに格納された仮想鍵マテリアルに基づいて、前記多数の仮想バンドのそれぞれに対して個別の仮想メディア暗号鍵を生成し、
前記多数の仮想バンドの特定の１つに対する個別の仮想メディア暗号鍵を、前記多数の仮想バンドの特定の１つに関連付けられた前記実バンドの論理ブロックアドレスレンジの部分を含むI/O要求に関連付けることを含む、方法。
【請求項１２】
前記ホストデバイスの認証鍵、及び前記自己暗号化記憶デバイスに格納された鍵マテリアルに基づいて、前記実バンド用の第１のメディア暗号鍵を生成し、
前記第１のメディア暗号鍵、及び前記I/O要求に関連付けられた個別の仮想メディア暗号鍵のそれぞれに基づいて、前記多数の仮想バンドの特定の１つに関連付けられた前記実バンドの論理ブロックアドレスレンジの部分を含む前記I/O要求に対して多数の第２のメディア暗号鍵を生成することを更に含む、請求項１１に記載の方法。
【請求項１３】
記憶媒体にデータを書き込む前に、前記第２のメディア暗号鍵を用いて書き込みI/O要求に関連付けられた前記データを暗号化し、
前記記憶媒体からデータを読み出した後に、前記第２のメディア暗号鍵を用いて読み出しI/O要求に関連付けられた前記データを暗号解読することを更に含む、請求項１２に記載の方法。
【請求項１４】
第１の数の仮想バンドが、第２の数の実バンドへ集信され、前記第２の数が前記第１の数よりも小さい、請求項１１〜１３の何れかに記載の方法。
【請求項１５】
前記第２の数が、前記第１の数よりも１桁以上小さい、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、記憶システムに関し、より具体的には自己暗号化ドライブのための仮想バンド集信（virtual bands concentration）を実現するための方法および／または装置に関する。
【０００２】
本出願は、2013年８月28日に出願された米国仮特許出願第６１／８７０９３６号に関連しており、当該米国仮特許出願は、参照により全体として本明細書に組み込まれる。
【背景技術】
【０００３】
自己暗号化ドライブ（Self Encrypting Drive：SED）は通常、書き込み及び読み出し操作のそれぞれの間にユーザデータを暗号化および暗号解読するためにハードウェアを利用する。暗号化および暗号解読は、メディア暗号鍵（Media Encryption Key：MEK）を用いて達成される。MEKは一般に、論理ブロックアドレス（Logical Block Address：LBA）の関数であり、この場合、全LBA空間は、各バンド（帯域）の一意のMEKを用いて幾つかのLBAレンジ（「データバンド」又は単に「バンド」と称する）に分割される。ハードウェアの制限により、深刻なパフォーマンス（性能）低下を伴わずにSEDがサポートすることができるバンドの数は制限される（１６が妥当な大きい数である）。ハードウェアによりサポートされるLBAレンジの数よりも多いアクティブなバンドを有することは、一定の鍵スワップに起因してパフォーマンスに悪影響を及ぼす。従来の具現化形態におけるホストの観点から、ホストが単一の認証鍵（Authentication Key：AK）に従ったアクセス制御を有するユーザデータは、単一のLBAレンジに連続的に格納される必要がある。単一のLBAレンジ又はバンドの制限により、特定のタイプの応用形態（仮想マシン（Virtual Machine：VM）のような）は、SEDの配備から十分に恩恵を受けることを困難にする。その理由は、VMが、記憶装置のさらにフレキシブルで効率的な使用を可能にするために、多く（恐らく数千）のバンドを必要とするかもしれないからである。
【０００４】
自己暗号化ドライブ用の仮想バンド集信を有することが望ましい。
【０００５】
概要
本発明は、記憶デバイス及びホストデバイスを含む装置に関係する。記憶デバイスは、書き込み及び読み出し操作のそれぞれの間に、ユーザデータを暗号化および暗号解読するように構成され得る。ホストデバイスは、記憶デバイスに通信可能に結合される。ホストデバイスは、第１の数の仮想バンドを第２の数の実バンドへ集信することにより書き込み及び読み出し操作を実行するように構成されることができ、第２の数は第１の数より小さくすることができる。
【０００６】
本発明の実施形態は、以下の詳細な説明、及び添付の特許請求の範囲および図面から明らかになるであろう。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態による、システムを示す図である。
【図２】本発明の一実施形態による、仮想バンド集信装置のホスト部分を示す図である。
【図３】本発明の一実施形態による、仮想バンド集信装置の記憶装置部分を示す図である。
【図４】本発明の一実施形態による、プロセスを示す図である。
【図５】本発明の一実施形態による、複数のバンド（マルチバンド）を備える仮想バンドマネージャを示す図である。
【図６】本発明の一実施形態による、１つ又は複数のバンドを備えるマルチ仮想バンドマネージャを有するホストを示す図である。
【０００８】
実施形態の詳細な説明
本発明の実施形態は、（i）仮想マシンマネージャ（Virtual Machine Manager：VMM）の一部として仮想バンドマネージャ（Virtual Band Manager：VBM）を実現することができる、（ii）入力／出力（I/O）毎にメディア暗号鍵を生成することができる、（iii）ハードウェアの暗号化／暗号解読でもって数千の仮想データバンドをサポートすることができる、（iv）仮想マシンの移行（マイグレーション）を容易にすることができる、（v）データバンド毎の暗号消去を可能にすることができる、（vi）ホスト側でマルチ仮想バンドを依然としてサポートしながら、SEDがサポートする必要があるバンドの数を低減することができる、（vii）第１の数の仮想バンドを大幅に少ない第２の数の実バンドへ集信することができる、及び／又は（viii）認証データが、各読み出し／書き込み操作の間にホストにより供給されることを可能にすることができる自己暗号化ドライブ用の仮想バンド集信（Virtual Bands Concentration：VBC）を提供することを含む。
【０００９】
様々な実施形態において、方法および装置は、複数のデータバンドに対して一意のメディア暗号鍵（MEK）（複数）を動的に生成するために提供される。用語「データバンド」（又は簡単に「バンド」）は一般に、論理ブロックアドレス（LBA）のレンジを意味する。全LBA空間は、幾つかのLBAレンジ（バンド）へ分割される。各バンドは、一意のMEKと関連付けられる。MEKは、ホストにより動的に提供される認証情報に基づいている（例えば、ユーザ認識動作に関連付けられた「メタデータ」の一部として）。MEKを動的に生成することは一般に、各I/O動作（操作）毎に新しい鍵を形成するプロセスを意味する。MEKの動的生成は一般に、「オンザフライ」と言われている。様々な実施形態において、共通の認証鍵（AK）の使用は、マルチバンドを横切って、単一の認証鍵でもって管理される必要があるホストデータの論理ブロックアドレス（LBA）空間の不連続バンドをシミュレートすることを可能にする。鍵マテリアル（例えば、認証データ）は、各読み出し／書き込み操作に対してホスト（例えば、VMプレイヤ又はVMマネージャ（VM Manager：VMM）等）により供給され、それにより数千（又はそれ以上）のバンドを使用可能にする安全（セキュア）な方法が提供される。
【００１０】
図１を参照すると、本発明の一実施形態による、仮想バンド集信方法を実現するシステム１００の図が示される。様々な実施形態において、システム１００は、自己暗号化記憶システムとして実現され得る。幾つかの実施形態において、システム１００は、ブロック１０１、ブロック１０３及びブロック１０５を含む。ブロック１０１は、本発明の一実施形態による、バンドマネージャ及び暗号化／暗号解読回路を実現する記憶（ストレージ）コントローラを含む。ブロック１０３は、記憶媒体（メディア）を実現する。幾つかの実施形態において、ブロック１０３は、不揮発性メモリ（Non-Volatile Memory：NVM）媒体（例えば、磁気メモリ、フラッシュメモリなど）を含む。しかしながら、特定の応用形態の設計基準を満たす他のタイプの媒体（例えば、バッテリサポートを備える又は備えない揮発性メモリ）も、それに応じて実現され得る。しかし、揮発性メモリの場合、安全性（及びデータ）は、電力損失の際に失われる。ブロック１０５は、本発明の一実施形態による、仮想メモリマネージャ（Virtual Memory Manager：VMM）を実現するホストを含む。ブロック１０１及び１０３は、記憶デバイス（Storage Device：SD）１０２を形成するように関連して動作するように結合される。SD１０２及びホスト１０５は、互いに通信可能に結合されるように構成される。
【００１１】
コントローラ１０１は、１つ又は複数の個々のメモリチャネルを制御するように構成され得る。幾つかの実施形態において、コントローラ１０１は、複数のメモリチャネルを制御するためにマルチメモリチャネルコントローラのインスタンスを実現することができる。コントローラ１０１は、記憶媒体１０３にコントローラ１０１を結合するように構成された媒体インターフェースを有する。不揮発性メモリ（NVM）の実施形態において、記憶媒体１０３は、１つ又は複数の不揮発性メモリデバイス１０７を含むことができる。幾つかの実施形態において、不揮発性メモリデバイス１０７は、１つ又は複数の不揮発性メモリターゲット（例えば、ダイ、円盤状記録媒体など）１０９を有する。不揮発性メモリデバイス１０７の特定の１つのタイプに応じて、特定の不揮発性メモリデバイス１０７における複数の不揮発性メモリターゲット１０９は、随意に及び／又は選択的に並列にアクセス可能である。不揮発性メモリデバイス１０７は一般に、コントローラ１０１に通信可能に結合することを可能にされた記憶デバイスの１つのタイプを表す。しかしながら、様々な実施形態において、任意のタイプの記憶デバイスが使用可能であり、例えば、磁気記憶装置、光学式記憶装置、SLC（シングルレベルセル）NANDフラッシュメモリ、MLC（マルチレベルセル）NANDフラッシュメモリセル、TLC（トリプルレベルセル）NANDフラッシュメモリ、NORフラッシュメモリ、電気的プログラム可能読み出し専用メモリ（EPROM）、スタティックRAM（SRAM）、ダイナミックRAM（DRAM）、磁気ランダムアクセスメモリ（MRAM）、強誘電体メモリ（例えば、FeRAM、F-RAM、FRAMなど）、相変化メモリ（例えば、PRAM、PCRAMなど）、レーストラックメモリ（又はドメインウォールメモリ（Domain-Wall Memory：DWM））、抵抗変化メモリ（RRAM又はReRAM）、或いは任意のタイプのメモリデバイス又は記憶媒体である。
【００１２】
幾つかの実施形態において、コントローラ１０１及び不揮発性メモリ媒体１０３は、別個の集積回路（又はデバイス）で実現される。コントローラ１０１及び不揮発性メモリ媒体１０３が別個の集積回路（又はデバイス）として実現される場合、コントローラ１０１の媒体インターフェースは一般に、複数のデータ入力／出力（I/O）ピン及び複数の制御I/Oピンを管理するように可能にされる。データI/Oピン及び制御I/Oピンは、コントローラ１０１を包含するデバイスを、不揮発性メモリ媒体１０３を形成する外部デバイスに接続するように構成され得る。様々な実施形態において、コントローラ１０１は、埋め込み式コントローラとして実現される。様々な実施形態において、コントローラ１０１及びNVM媒体１０３は、ソリッドステートハイブリッドハードディスクドライブ（Solid State Hybrid Hard Disk Drive：SSHD）、ハードディスクドライブ（HDD）又はソリッドステートドライブ／ディスク（Solid State Drive：SSD）を実現する。
【００１３】
また、コントローラ１０１は、コマンドを受け取り、応答をホスト１０５に送信するように構成されたコマンドインターフェースも有する。複数の不揮発性メモリデバイスを実現する実施形態において、コントローラ１０１は、独自のプロセスを介して不揮発性メモリデバイスを管理する少なくとも１つのNVM制御プロセッサ、及び他のプロセスに従ってホストインターフェースを管理するホストプロセッサを含む。NVM制御プロセッサ（単数または複数）及びホストプロセッサは、所定のインターフェースを介して通信する。ホストプロセッサは、所定の通信インターフェース（又はプロトコル）に従ってコマンドを処理するNVM制御プロセッサに、ホストコマンドを伝える。また、コントローラ１０１は、本発明の一実施形態による、仮想バンド集信方法を実現するように構成されたバンドマネージャ（Band Manager：BM）１１０及び暗号化／暗号解読（E/D）ブロック（又は回路）１１２も含む。バンドマネージャ１１０は、記憶デバイス１０２により使用される鍵マテリアル（Key Material：KM）を格納する鍵記憶装置（Key Storage：KS）１１４を含む。幾つかの実施形態において、鍵記憶装置１１４は、ホスト１０５により使用される仮想鍵マテリアル（Virtual Key Material：VKM）も格納することができる。
【００１４】
ホスト１０５は、仮想マシンマネージャ（VMM）ブロック１２０を含む。VMM１２０は、本発明の一実施形態による、仮想バンド集信方法を実現するように構成される。ＶＭＭ１２０は、１つ又は複数の仮想バンドマネージャ（VBM）１２２を含む。幾つかの実施形態において、VMM１２０は、各実バンドに対して別個のVBM１２２のインスタンスを走らせる。各VBM１２２は、仮想鍵マテリアル（VKM）を格納する仮想鍵記憶装置（VKS）１２４を含む。各VBM１２２は、複数の仮想バンド（VB）をSD１０２上の記憶装置のための実バンド１３０へ集信する。各VBM１２２により受け取られた複数の仮想バンドは、VMM１２０により各VBM１２２と関連付けられるホスト１０５上で走っている多数の仮想マシン（VM）からである。単一のVBM１２２は、１つ又は複数の実バンドを管理することができる。各VBM１２２は、個々の認証鍵（AK）１０４を提供することにより、記憶デバイス１０２に対してそれ自体を認証する。
【００１５】
図２を参照すると、本発明の一実施形態による、仮想バンド集信装置のホスト部分を示すホスト１０５の図が示される。本発明の実施形態は、以下に限定されないが、TCG Enterprise SSC、TCG Opal及びATA Securityを含む幾つかのセキュリティプロトコルで使用され得る一般的なセキュリティパラダイムを用いて後述される。様々な実施形態において、自己暗号化ドライブ（SED）は、論理ブロックアドレス（LBA）レンジ（又はデータバンド）で動作する。例えば、LBA1.1〜LBA1.2のLBAレンジを有するバンド１３０が図２及び図３に示される。様々な実施形態において、ホスト１０５は、認証鍵（AK）１０４を用いて、記憶デバイス（SD）１０２とそれ自体を認証する或る種のセキュリティアプリケーション（AP）を走らせることができる。
【００１６】
従来のSEDにおいて、データ速度を維持するという理由で、バンドの数は制限されており、LBAレンジのルックアップは、ハードウェアで実現されることが多く、ハードウェアテーブルのサイズは制限される。そのため、従来のSEDは、パフォーマンスインパクトなしで、１６よりも多いLBAレンジをめったにサポートしない。この性能値は大部分の応用形態に事実上十分である（例えば、TCG Opal 2.0は、ほんの８バンドを必要とする）が、それは、非常に普及している仮想マシン（VM）の環境に対して困難になる。
【００１７】
幾つかの実施形態において、単一のコンピュータは、いわゆる仮想マシン（VM）の複数個をホストとして処理することができ、それらのそれぞれは、個々の動作のためにLBAの幾つかのレンジを必要とする（例えば、図２は、ホスト１０５上で走っている３つの仮想マシンVM３１１、３１２及び３１３を示す）。各仮想マシン３１１−３１３（例えば、VM-x、x=１、２・・と表記された）の観点から、各VM-xは、０からLBA_MAX(x)のLBAを使用することができ、ここでxはVMの数である。VMにより使用されるLBAは、「仮想LBA（Virtual LBA）」（VLBA）と呼ばれ、記憶デバイス１０２に知られている実LBAからそれらを区別する。VMマネージャ（VMM）１２０は、記憶デバイス１０２が理解することができる実LBAへVLBAをマッピングする役割を果たす。
【００１８】
VMが常に形成されて削除されるので、連続した実LBAレンジを各VMに割り当てることは、必ずしも可能であるとは限らない。その代わりに、一組のバンドが割り当てられ、記憶デバイス１０２の実LBA空間の外に任意に「スライス」される。従って、図２の例に示されたように、仮想マシンVM-1の２つの仮想バンド（VB）３２０及び３２１は、単一の実LBAバンド１３０へマッピングされる。一般に、実バンドの数は、仮想バンドの数よりも少なく、多くの場合、実バンドの数は、仮想バンドの数よりも大幅に少なくすることができる。例えば、１０〜２０個の実バンドは、適度に多い数の実バンドと考えられるが、特定の応用形態により必要とされる仮想バンドの数は、数百、数千、又はさらに大きな数とすることができる。従って、実データバンドの数および仮想データバンドの数は、例えば、１桁以上だけ異なることができる。ほとんど個別的なホストとして働く各VM３１１〜３１３は、VBM１２２の助けを借りて記憶デバイス１０２とそれ自体を認証することができ、VBM１２２は、仮想LBAと実LBAとの間で（逆もまた同じ）変換を行う。VBM１２２の具現化形態は、記憶デバイス１０２のBM１１０の具現化形態と同じセキュリティ基準（特にVKSメンテナンス及びアクセスに関して）に従っている。
【００１９】
VBM１２２は、VM３１１〜３１３を認証し、認証鍵（AK）１０４及びセキュリティプロトコル（例えば、TCG又はその他）終端（終了）を記憶デバイス（SD）１０２に提供する。ホスト側では、VBM１２２は、任意の数の仮想バンド（VB）をサポートするように構成され得る。記憶デバイス側では、VBM１２２は、後述されるようなVBM１２２が複数の仮想バンドを統合または集信する幾つかの実データバンドのみをサポートすることができる。多くの実施形態において、VBM１２２は、図２で示されるように、ほんの１つの記憶デバイス側（実）データバンド１３０をサポートするように構成される。
【００２０】
幾つかの実施形態において、VBM１２２は永続的に、例えば別個のフラッシュデバイス又はEEPROMに仮想鍵記憶装置（Virtual Key Storage：VKS）１２４自体をセーブする。VKS１２４は、各仮想バンドの仮想鍵マテリアル（VKM）（例えば、VB1.1及びVB1.2用の仮想鍵マテリアルVKM1.1 ３８１及びVKM1.2 ３８２がそれぞれ、図２に示される）を格納する。他の実施形態において、記憶デバイス１０２は、仮想鍵マテリアルを格納するために、いわゆる不透明鍵記憶装置（Opaque Key Storage：OKS）３６２（図３に示される）を提供する。OKS３６２は「不透明」であると呼ばれ、その理由は、SD１０２が仮想バンドの知識が全くなく、それ故にOKS３６２が何らかの鍵マテリアルを包含することを知らないからである。SD１０２に関する限り、OKS３６２は、ありきたりのデータブロックである。
【００２１】
SD１０２に位置するOKS３６２に仮想鍵マテリアルを格納することは、１つのホストから別のホストへのVM移行を容易にする。VMM認証情報（例えば、AK１０４）を知っている限り、VMM１２０は、OKS３６２からのコンテンツ３８９を用いて別のホスト上のそれぞれのVKS１２４を回復することができる。SD１０２は、OKS３６２にセーブされた情報のタイプに関して無関心である。VBM１２２が仮想鍵マテリアルの何れか（例えば、VKM1.1 ３８１及びVKM1.2 ３８２など）を変更する場合、全OKS３６２は書き換えられ、古いコピーがゼロで埋められる（例えば、SD１０２は、ホストの要求に基づいてこのタイプのサービスを提供する必要がある）。
【００２２】
図３を参照すると、本発明の一実施形態による、仮想バンド集信装置の記憶デバイス部分を示す記憶デバイス１０２の図が示される。様々な実施形態において、SD１０２は、鍵記憶装置（KS）１１４を包含するバンドマネージャ（BM）アプリケーション１１０
を走らせる。KS１１４が上書きされる場合、KS１１４の全ての古いコピーがサニタイズされる又はゼロで埋められる必要があることに留意することが重要である（例えば、サニタイズの手順は記憶媒体１０３のタイプに依存し、以下に限定されないが、磁気媒体の消磁、フラッシュデバイスの消去などを含むことができる）。幾つかの実施形態において、KS１１４は、各実データバンドに対する鍵マテリアル（KM）３６１の１つのサンプルを包含する。バンド１３０に対する鍵マテリアル３６１（KM1）の単一のサンプルが、図３に示される。
【００２３】
各実データバンドのメディア暗号鍵（MEK）３４１が、対応するKMでAK１０４を「ラッピング」することにより生成される。AK１０４及び鍵マテリアルKM1をラッピングすることによりメディア暗号鍵MEK1を生成する例が、図３に示される。ラッピング演算は、乗算器３５１により示される。ラッピングは、本明細書において、非常に包括的な意味で使用される。幾つかの実施形態において、KM３６１は単に、AK１０４で暗号化された対応するMEKである（例えば、AK１０４が主要な暗号鍵（key encryption key：KEK）として使用され、そのため「ラッピング」３５１が暗号化操作に相当する）。暗号化／暗号解読は、以下に限定されないが、AES又はXTSの幾つかのバージョンを含むことができる。幾つかの実施形態において、ラッピングは、以下に限定されないが、AK１０４と鍵マテリアル３６１（例えば、図３のKM1）との間でXORを実行することを含むことができる。しかしながら、鍵マテリアル３６１のランダム性を低減しない任意の演算が、特定の応用形態の設計基準を満たすために適宜に実施され得る。マルチバンドの実施形態において、個々のMEK（例えば、MEK1、MEK2、・・、MEKn）が、個々の鍵マテリアル３６１（例えば、KM1、KM2、・・、KMn）でAK１０４をラッピングすることによりｎ個のバンドのそれぞれに対して生成される。
【００２４】
様々な実施形態において、暗号化装置（Encryptor）／暗号解読装置（Decryptor）（ED）１１２が、ハードウェア（HW）モジュールとして実現される。ED１１２は、各バンドの境界（例えば、図３に示されたバンド１３０のLBA1.1〜LBA1.2）が定義されたテーブルを維持する。各バンドのMEK３４１は、AK１０４及び対応する鍵マテリアル３６１に基づいたラッピング演算３５１により計算され、ED１１２へロードされる。これらの実施形態において、読み出し／書き込みデータ要求３１１がホスト１０５から到来する場合、ED１１２がルックアップを実行して、データバンドに対して当該要求のLBAを分類し、適切なMEK３４１を選択する（例えば、実バンド１３０に対してMEK1）。従来のSEDにおいて、読み出しデータは、選択されたMEKで暗号解読されていたが、書き込みデータは、選択されたMEKで暗号化されていた。仮想バンド集信の実施形態において、選択されたMEK３４１は、データの暗号化／暗号解読に使用されない。むしろ、選択されたMEK３４１は、ラッピング演算３４２〜３４８により各I/O要求の暗号化／暗号解読に使用される実際のMEK（例えば、MEK1.1  ３４４、MEK1.2  ３４５、MEK3.1  ３４７、MEK3.2  ３４９など）を計算するために使用される。ラッピング演算３４２〜３４８は、ラッピング演算３５１（後述される）と同様に実施され得る。
【００２５】
様々な実施形態において、MEK３４１は、ホスト１０５に送信されず、（適切な実施として）平易な形態で媒体１０３に格納されない。代わりに、鍵マテリアルKM３６１だけが格納され、認証鍵（AK）１０４がMEK３４１を回復するために必要とされる。SD１０２が適切に構成される場合、媒体１０３に対するデータの読み出し又は書き込みは、正しい認証情報を知らないどんな人でも不可能である。
【００２６】
幾つかの実施形態において、各個々のバンドのゼロ初期化が可能にされる。例えば、ユーザが特定のバンドのKM３６１又はVKM３８１、３８２を変更し、KM３６１又はVKM３８１、３８２の全ての古いコピー（たとえ暗号化されたものでも）が特定の媒体サニタイズ規則（例えば、磁気媒体の消磁、フラッシュの消去など）に従ってサニタイズされる場合、特定のバンドのデータは、正しい認証情報を知っている誰かを含む誰かにより、これ以上読み出されることができない。いわゆる「ゼロ初期化」機能は、データ除去のために迅速で信頼できて正確な方法を提供し、安全な記憶デバイスの再使用を可能にする。
【００２７】
仮想バンド集信の実施形態において、VBM１２２は、SDバンドマネージャ（BM）１１０と共に、AK１０４を用いてそれ自体を認証する。認証後、VBM１２２は、別のデバイスから、又はOKS３６２から個々のVKS１２４をロードする。VM３１１〜３１３の各々は、個々の認証鍵を用いてそれ自体を認証する必要がある（例えば、VM-1  ３１１は、AK1  ３０４を用いてそれ自体を認証し、VM-3  ３１３はAK3  ３０５を用いてそれ自体を認証する等）。個々の仮想MEK（VMEK）３８４、３８６、３８７、３８８は、適切な仮想鍵マテリアル（例えば、VKM1.1  ３８１、VKM1.2  ３８２等）で個々の認証鍵AKxをラッピング（例えば、個々のラッピング演算３８３、３８５等）することにより、各仮想バンド（VB）のために生成される。対応するVMEKは、SD１０２に送信されている各I/O要求に添付される。ED１１２は、各I/O要求に添付されたVMEKをデータバンド用のMEK３４１（例えば、MEK1は、図２及び図３に示されたデータバンド１３０に使用される）でラッピングし、特定のデータ操作のために個々のMEK（例えば、MEK1.1、MEK1.2、MEK3.1、MEK3.2等）を生成する。
【００２８】
NVMエクスプレス（NVM Express：NVME）のホストプロトコルの実施形態において、ベンダの特定の読み出し／書き込みは定義されることができ、この場合、特別なSGL（Scatter-Gather List：スキャッター／ギャザーリスト）が提供される。SGLは、各I/O動作（演算）に関するVMEK情報を包含する。SATAプロトコルにおいて、ホストは単純に、書き込みにおけるセクタの数を拡張して鍵が提供される場所を示すことにより、又はより大きなセクタ（例えば、５２０バイトのセクタ）を転送して鍵マテリアルを当該より大きなセクタ自体に入れることにより、書き込みコマンドに対してVMEKを適用する。読み出しは、既存のSATA（ACS）プロトコルに適合するのに非常に困難である。一例において、ベンダの一意のコマンドは、LBAと共にVMEKを転送することが読み出されることを可能にすることを定義され得る。別の例において、ホストは、VMEKのテーブルを記憶デバイスに内在するバッファへ転送し、且つ予約ビット（合計で７ビット）を使用して記憶デバイスのテーブルへ索引付けして、転送時にVMEKを迅速にルックアップすることができる。この実施形態は、コントローラにおいて、既存のSATA HWオートメーションの使用を可能にする。
【００２９】
図４を参照すると、本発明の一実施形態による、例示的なプロセス４００を示す図が示される。幾つかの実施形態において、プロセス（又は方法）４００は、ステップ（又は状態）４０２、ステップ（又は状態）４０４、ステップ（又は状態）４０６、ステップ（又は状態）４０８、ステップ（又は状態）４１０、及びステップ（又は状態）４１２を含むことができる。ステップ４０２において、ホスト１０５の仮想バンドマネージャ（VBM）１２２が、記憶デバイス１０２のバンドマネージャ（BM）１１０と共に、認証鍵（AK）１０４を用いてそれ自体を認証する。ステップ４０４において、VBM１２２が、別のデバイスから、又は記憶デバイス１０２の不透明鍵記憶装置（OKS）３６２から、仮想鍵記憶装置（VKS）１２４をロードする。ステップ４０６において、各仮想マシン（VMx）が、個々の認証鍵（AKx）を用いてそれ自体を認証する。ステップ４０８において、仮想メディア暗号鍵（VMEK）が、個々の認証鍵（AKx）をVKS１２４からの個々の仮想鍵マテリアル（例えば、VKMx）でラッピングすることにより、各仮想バンド（VB）に対して生成される。ステップ４１０において、適切なVMEKが、記憶デバイス１０２に送信されている各I/O要求に添付される。ステップ４１２において、記憶デバイス１０２の暗号化／暗号解読ハードウェア１１２が、各I/O要求に添付されたVMEKを、対応するデータバンド用に記憶デバイス１０２で生成されたメディア暗号鍵（MEK）でラッピングし、特定のデータ操作（演算）に対して個々のMEKを生成する。
【００３０】
図５を参照すると、本発明の一実施形態による、複数の実バンドを有する仮想バンドマネージャを実現するシステム５００を示す図が示される。システム５００は、記憶媒体５０３を有する記憶デバイス５０２及びホスト５０５を含む。また、記憶デバイス５０２は、（図２及び図３に関連して上述された）本発明の一実施形態による仮想バンド集信方法を実現するように構成されたバンドマネージャ（BM）５１０及び暗号化／暗号解読（E/D）ブロック（又は回路）５１２も含む。暗号化／暗号解読（E/D）ブロック５１２は、多数の実バンド１３０−１から１３０−Ｎを処理するように構成される。バンドマネージャ５１０は、鍵マテリアル（例えば、KM1  ５６０〜KMN  ５６２）を格納する鍵記憶装置（key Storage：KS）５１４を含む。鍵マテリアルは、実バンド１３０−１〜１３０−Ｎの暗号化／暗号解読に関連して記憶デバイス５０２により使用される（例えば、ラッピング演算５５１〜５５２により生成された個々のメディア暗号鍵を用いて）。ラッピング演算５５１〜５５２は、図２及び図３に関連して上述されたラッピング演算３５１、３８３及び３８５と同様に実現され得る。
【００３１】
ホスト５０５は、本発明の一実施形態による、仮想バンド集信方法を実現するように構成された仮想マシンマネージャ（VMM）を含む。VMMは、仮想バンドマネージャ（VBM）５２２を含む。VBM５２２は、複数の実バンド１３０−１〜１３０−Ｎを管理するように構成される。VBM５２２は、図２のVBM１２２と同様に動作するように構成され得る。VBM５２２は、複数の仮想バンド（VB）を、SD５０２の記憶装置のための実バンド１３０−１〜１３０−Ｎへ集信する。VBM５２２により受け取られた複数の仮想バンドは、ホスト５０５上で走っている多数の仮想マシン（VM）から来ることができる。
【００３２】
図６を参照すると、本発明の一実施形態による、複数の仮想バンドマネージャを有するホストを実現するシステム６００を示す図が示される。システム６００は、記憶媒体６０３を有する記憶デバイス６０２及びホスト６０５を含む。また、記憶デバイス６０２は、（図２及び図３に関連して上述された）本発明の一実施形態による、仮想バンド集信方法を実現するように構成されたバンドマネージャ（BM）６１０及び暗号化／暗号解読（E/D）ブロック（又は回路）６１２も含む。暗号化／暗号解読（E/D）ブロック６１２は、多数の実バンド１３０−１〜１３０−Ｎを処理するように構成される。バンドマネージャ６１０は、鍵マテリアル（例えば、KM1  ６６１〜KMN  ６６２）を格納する鍵記憶装置（KS）６１４を含む。鍵マテリアルは、実バンド１３０−１〜１３０−Ｎの暗号化／暗号解読に関連して記憶デバイス６０２により使用される（例えば、ラッピング演算６５１〜６５２により生成された個々のメディア暗号鍵を用いて）。ラッピング演算６５１〜６５２は、図２及び図３に関連して上述されたラッピング演算３５１、３８３及び３８５と同様に実現され得る。
【００３３】
ホスト６０５は、本発明の一実施形態による、仮想バンド集信方法を実現するように構成された仮想マシンマネージャ（VMM）を含む。当該VMMは、複数の仮想バンドマネージャ（VBM）６２２−１〜６２２−Ｎを含む。VBM６２２−１〜６２２−Ｎは、複数の実バンド１３０−１〜１３０−Ｎを管理するように構成される。VBM６２２−１〜６２２−Ｎは、図２のVBM１２２と同様に動作するように構成され得る。VBM６２２−１〜６２２−Ｎは、複数の仮想バンド（VB）を、SD６０２の記憶装置のための実バンド１３０−１〜１３０−Ｎへ集信する。VBM６２２−１〜６２２−Ｎにより受け取られた複数の仮想バンドは、ホスト６０５上で走っている多数の仮想マシン（VM）から来ることができる。
【００３４】
VBM６２２−１〜６２２−Ｎのそれぞれは、多数の仮想バンドを、１つ又は複数の実バンド１３０−１〜１３０−Ｎへ集信することができる。VBM６２２−１〜６２２−Ｎのそれぞれは、個々の認証鍵AK1〜AKNを用いてそれ自体を認証する。記憶デバイス６０２のバンドマネージャ６１０は、個々の認証鍵AK1〜AKN及び個々の鍵マテリアルKM1  ６６１〜KMN６６２をラッピングすることにより、バンド１３０−１〜１３０−Ｎ用の個々のメディア暗号鍵を生成する。
【００３５】
本明細書においてbe動詞および動詞と共に使用される場合の用語「できる（may）」及び「一般に（generally）」は、説明が例示であり、且つ本開示に提示された特定の例および本開示に基づいて導出され得る代案の例を網羅するのに十分に広いと考えられることを意図することを伝えることが意図されている。用語「できる（may）」及び「一般に（generally）」は本明細書で使用される限り、望ましいこと又は対応する要素を省略する可能性を必然的に含むように解釈されるべきではない。用語「大幅に少ない（小さい）」は一般に、例えば比較されるアイテムが１桁以上だけ異なることができる意図を伝えることが意図されている。
【００３６】
本発明は特に、その実施形態に関連して図示されて説明されたが、当業者によって理解されるように、形状および細部の様々な変更は、本発明の範囲から逸脱せずに行われ得る。
【図１】
0005978260.tif 000002
【図２】
0005978260.tif 000003
【図３】
0005978260.tif 000004
【図４】
0005978260.tif 000005
【図５】
0005978260.tif 000006
【図６】
0005978260.tif 000007