(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5978260
(24)【登録日】2016年7月29日
(45)【発行日】2016年8月24日
(54)【発明の名称】自己暗号化ドライブ用の仮想バンド集信
(51)【国際特許分類】
H04L 9/14 20060101AFI20160817BHJP
G06F 21/62 20130101ALI20160817BHJP
G09C 1/00 20060101ALI20160817BHJP
【FI】
H04L9/00 641
G06F21/62 309
G09C1/00 660D
【請求項の数】15
【外国語出願】
【全頁数】13
(21)【出願番号】特願2014-150595(P2014-150595)
(22)【出願日】2014年7月24日
(65)【公開番号】特開2015-62110(P2015-62110A)
(43)【公開日】2015年4月2日
【審査請求日】2015年1月19日
(31)【優先権主張番号】14/033,753
(32)【優先日】2013年9月23日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508243639
【氏名又は名称】エルエスアイ コーポレーション
(74)【代理人】
【識別番号】100087642
【弁理士】
【氏名又は名称】古谷 聡
(74)【代理人】
【識別番号】100082946
【弁理士】
【氏名又は名称】大西 昭広
(74)【代理人】
【識別番号】100121061
【弁理士】
【氏名又は名称】西山 清春
(74)【代理人】
【識別番号】100195693
【弁理士】
【氏名又は名称】細井 玲
(72)【発明者】
【氏名】ジェレミー・ワーナー
(72)【発明者】
【氏名】レオニド・バリュディン
【審査官】
中里 裕正
(56)【参考文献】
【文献】
米国特許出願公開第2009/0282266(US,A1)
【文献】
米国特許出願公開第2011/0258456(US,A1)
【文献】
特開2012−198711(JP,A)
【文献】
米国特許出願公開第2009/0169020(US,A1)
【文献】
米国特許出願公開第2010/0205453(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/14
G06F 21/62
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
書き込み及び読み出し操作のそれぞれの間に、第1の数の実バンドのユーザデータを暗号化および暗号解読するように構成され、個別の第1のメディア暗号鍵が前記実バンドのそれぞれと関連付けられている、コントローラと、
前記コントローラに通信可能に結合するように構成されたホストデバイスとを含み、前記ホストデバイスが、第2の数の仮想バンドを前記第1の数の実バンドへ集信することにより前記書き込み及び読み出し操作を実行するように更に構成されており、前記第1の数が前記第2の数より小さく、実バンドの特定の1つにおける仮想バンドの各々からのユーザデータが、前記実バンドの特定の1つに関する前記個別の第1のメディア暗号鍵および前記実バンドの特定の1つにおける前記仮想バンドの各々に関連付けられた個別の仮想メディア暗号鍵に基づいた個別の第2のメディア暗号鍵を用いて暗号化および暗号解読される、装置。
【請求項2】
前記ホストデバイスが、前記第2の数の仮想バンドを前記第1の数の実バンドにマッピングするように構成された仮想マシンマネージャを含む、請求項1に記載の装置。
【請求項3】
前記仮想マシンマネージャが、前記第2の数の仮想バンドを前記第1の数の実バンドにマッピングするように構成された1つ又は複数の仮想バンドマネージャを更に含む、請求項2に記載の装置。
【請求項4】
前記1つ又は複数の仮想バンドマネージャのそれぞれが、多数の前記仮想バンドを1つ又は複数の前記第1の数の実バンドにマッピングするように更に構成されている、請求項3に記載の装置。
【請求項5】
前記コントローラが、鍵マテリアルを格納するように構成されたバンドマネージャを更に含む、請求項1〜4の何れかに記載の装置。
【請求項6】
前記バンドマネージャが、不透明鍵記憶装置を更に含む、請求項5に記載の装置。
【請求項7】
前記コントローラが、暗号化および暗号解読モジュールを更に含む、請求項1〜6の何れかに記載の装置。
【請求項8】
前記暗号化および暗号解読モジュールが、ハードウェアで実現される、請求項7に記載の装置。
【請求項9】
各仮想バンドが、一意の認証鍵および暗号鍵でもってセキュリティの観点から完全に保護されている、請求項1〜8の何れかに記載の装置。
【請求項10】
前記第1の数が、前記第2の数よりも1桁以上小さい、請求項1〜9の何れかに記載の装置。
【請求項11】
多数の仮想バンドを自己暗号化記憶デバイスの記憶装置用の実バンドへ集信する方法であって、
前記多数の仮想バンドのそれぞれの仮想論理ブロックアドレスレンジの1つ又は複数の部分を、前記実バンドの論理ブロックアドレスレンジの部分に関連付け、
仮想マシンの認証鍵、及び前記仮想マシンを走らせているホストデバイスに格納された仮想鍵マテリアルに基づいて、前記多数の仮想バンドのそれぞれに対して個別の仮想メディア暗号鍵を生成し、
前記多数の仮想バンドの特定の1つに対する個別の仮想メディア暗号鍵を、前記多数の仮想バンドの特定の1つに関連付けられた前記実バンドの論理ブロックアドレスレンジの部分を含むI/O要求に関連付けることを含む、方法。
【請求項12】
前記ホストデバイスの認証鍵、及び前記自己暗号化記憶デバイスに格納された鍵マテリアルに基づいて、前記実バンド用の第1のメディア暗号鍵を生成し、
前記第1のメディア暗号鍵、及び前記I/O要求に関連付けられた個別の仮想メディア暗号鍵のそれぞれに基づいて、前記多数の仮想バンドの特定の1つに関連付けられた前記実バンドの論理ブロックアドレスレンジの部分を含む前記I/O要求に対して多数の第2のメディア暗号鍵を生成することを更に含む、請求項11に記載の方法。
【請求項13】
記憶媒体にデータを書き込む前に、前記第2のメディア暗号鍵を用いて書き込みI/O要求に関連付けられた前記データを暗号化し、
前記記憶媒体からデータを読み出した後に、前記第2のメディア暗号鍵を用いて読み出しI/O要求に関連付けられた前記データを暗号解読することを更に含む、請求項12に記載の方法。
【請求項14】
第1の数の仮想バンドが、第2の数の実バンドへ集信され、前記第2の数が前記第1の数よりも小さい、請求項11〜13の何れかに記載の方法。
【請求項15】
前記第2の数が、前記第1の数よりも1桁以上小さい、請求項14に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般に、記憶システムに関し、より具体的には自己暗号化ドライブのための仮想バンド集信(virtual bands concentration)を実現するための方法および/または装置に関する。
【0002】
本出願は、2013年8月28日に出願された米国仮特許出願第61/870936号に関連しており、当該米国仮特許出願は、参照により全体として本明細書に組み込まれる。
【背景技術】
【0003】
自己暗号化ドライブ(Self Encrypting Drive:SED)は通常、書き込み及び読み出し操作のそれぞれの間にユーザデータを暗号化および暗号解読するためにハードウェアを利用する。暗号化および暗号解読は、メディア暗号鍵(Media Encryption Key:MEK)を用いて達成される。MEKは一般に、論理ブロックアドレス(Logical Block Address:LBA)の関数であり、この場合、全LBA空間は、各バンド(帯域)の一意のMEKを用いて幾つかのLBAレンジ(「データバンド」又は単に「バンド」と称する)に分割される。ハードウェアの制限により、深刻なパフォーマンス(性能)低下を伴わずにSEDがサポートすることができるバンドの数は制限される(16が妥当な大きい数である)。ハードウェアによりサポートされるLBAレンジの数よりも多いアクティブなバンドを有することは、一定の鍵スワップに起因してパフォーマンスに悪影響を及ぼす。従来の具現化形態におけるホストの観点から、ホストが単一の認証鍵(Authentication Key:AK)に従ったアクセス制御を有するユーザデータは、単一のLBAレンジに連続的に格納される必要がある。単一のLBAレンジ又はバンドの制限により、特定のタイプの応用形態(仮想マシン(Virtual Machine:VM)のような)は、SEDの配備から十分に恩恵を受けることを困難にする。その理由は、VMが、記憶装置のさらにフレキシブルで効率的な使用を可能にするために、多く(恐らく数千)のバンドを必要とするかもしれないからである。
【0004】
自己暗号化ドライブ用の仮想バンド集信を有することが望ましい。
【0005】
概要
本発明は、記憶デバイス及びホストデバイスを含む装置に関係する。記憶デバイスは、書き込み及び読み出し操作のそれぞれの間に、ユーザデータを暗号化および暗号解読するように構成され得る。ホストデバイスは、記憶デバイスに通信可能に結合される。ホストデバイスは、第1の数の仮想バンドを第2の数の実バンドへ集信することにより書き込み及び読み出し操作を実行するように構成されることができ、第2の数は第1の数より小さくすることができる。
【0006】
本発明の実施形態は、以下の詳細な説明、及び添付の特許請求の範囲および図面から明らかになるであろう。
【図面の簡単な説明】
【0007】
【
図1】本発明の一実施形態による、システムを示す図である。
【
図2】本発明の一実施形態による、仮想バンド集信装置のホスト部分を示す図である。
【
図3】本発明の一実施形態による、仮想バンド集信装置の記憶装置部分を示す図である。
【
図4】本発明の一実施形態による、プロセスを示す図である。
【
図5】本発明の一実施形態による、複数のバンド(マルチバンド)を備える仮想バンドマネージャを示す図である。
【
図6】本発明の一実施形態による、1つ又は複数のバンドを備えるマルチ仮想バンドマネージャを有するホストを示す図である。
【0008】
実施形態の詳細な説明
本発明の実施形態は、(i)仮想マシンマネージャ(Virtual Machine Manager:VMM)の一部として仮想バンドマネージャ(Virtual Band Manager:VBM)を実現することができる、(ii)入力/出力(I/O)毎にメディア暗号鍵を生成することができる、(iii)ハードウェアの暗号化/暗号解読でもって数千の仮想データバンドをサポートすることができる、(iv)仮想マシンの移行(マイグレーション)を容易にすることができる、(v)データバンド毎の暗号消去を可能にすることができる、(vi)ホスト側でマルチ仮想バンドを依然としてサポートしながら、SEDがサポートする必要があるバンドの数を低減することができる、(vii)第1の数の仮想バンドを大幅に少ない第2の数の実バンドへ集信することができる、及び/又は(viii)認証データが、各読み出し/書き込み操作の間にホストにより供給されることを可能にすることができる自己暗号化ドライブ用の仮想バンド集信(Virtual Bands Concentration:VBC)を提供することを含む。
【0009】
様々な実施形態において、方法および装置は、複数のデータバンドに対して一意のメディア暗号鍵(MEK)(複数)を動的に生成するために提供される。用語「データバンド」(又は簡単に「バンド」)は一般に、論理ブロックアドレス(LBA)のレンジを意味する。全LBA空間は、幾つかのLBAレンジ(バンド)へ分割される。各バンドは、一意のMEKと関連付けられる。MEKは、ホストにより動的に提供される認証情報に基づいている(例えば、ユーザ認識動作に関連付けられた「メタデータ」の一部として)。MEKを動的に生成することは一般に、各I/O動作(操作)毎に新しい鍵を形成するプロセスを意味する。MEKの動的生成は一般に、「オンザフライ」と言われている。様々な実施形態において、共通の認証鍵(AK)の使用は、マルチバンドを横切って、単一の認証鍵でもって管理される必要があるホストデータの論理ブロックアドレス(LBA)空間の不連続バンドをシミュレートすることを可能にする。鍵マテリアル(例えば、認証データ)は、各読み出し/書き込み操作に対してホスト(例えば、VMプレイヤ又はVMマネージャ(VM Manager:VMM)等)により供給され、それにより数千(又はそれ以上)のバンドを使用可能にする安全(セキュア)な方法が提供される。
【0010】
図1を参照すると、本発明の一実施形態による、仮想バンド集信方法を実現するシステム100の図が示される。様々な実施形態において、システム100は、自己暗号化記憶システムとして実現され得る。幾つかの実施形態において、システム100は、ブロック101、ブロック103及びブロック105を含む。ブロック101は、本発明の一実施形態による、バンドマネージャ及び暗号化/暗号解読回路を実現する記憶(ストレージ)コントローラを含む。ブロック103は、記憶媒体(メディア)を実現する。幾つかの実施形態において、ブロック103は、不揮発性メモリ(Non-Volatile Memory:NVM)媒体(例えば、磁気メモリ、フラッシュメモリなど)を含む。しかしながら、特定の応用形態の設計基準を満たす他のタイプの媒体(例えば、バッテリサポートを備える又は備えない揮発性メモリ)も、それに応じて実現され得る。しかし、揮発性メモリの場合、安全性(及びデータ)は、電力損失の際に失われる。ブロック105は、本発明の一実施形態による、仮想メモリマネージャ(Virtual Memory Manager:VMM)を実現するホストを含む。ブロック101及び103は、記憶デバイス(Storage Device:SD)102を形成するように関連して動作するように結合される。SD102及びホスト105は、互いに通信可能に結合されるように構成される。
【0011】
コントローラ101は、1つ又は複数の個々のメモリチャネルを制御するように構成され得る。幾つかの実施形態において、コントローラ101は、複数のメモリチャネルを制御するためにマルチメモリチャネルコントローラのインスタンスを実現することができる。コントローラ101は、記憶媒体103にコントローラ101を結合するように構成された媒体インターフェースを有する。不揮発性メモリ(NVM)の実施形態において、記憶媒体103は、1つ又は複数の不揮発性メモリデバイス107を含むことができる。幾つかの実施形態において、不揮発性メモリデバイス107は、1つ又は複数の不揮発性メモリターゲット(例えば、ダイ、円盤状記録媒体など)109を有する。不揮発性メモリデバイス107の特定の1つのタイプに応じて、特定の不揮発性メモリデバイス107における複数の不揮発性メモリターゲット109は、随意に及び/又は選択的に並列にアクセス可能である。不揮発性メモリデバイス107は一般に、コントローラ101に通信可能に結合することを可能にされた記憶デバイスの1つのタイプを表す。しかしながら、様々な実施形態において、任意のタイプの記憶デバイスが使用可能であり、例えば、磁気記憶装置、光学式記憶装置、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)、或いは任意のタイプのメモリデバイス又は記憶媒体である。
【0012】
幾つかの実施形態において、コントローラ101及び不揮発性メモリ媒体103は、別個の集積回路(又はデバイス)で実現される。コントローラ101及び不揮発性メモリ媒体103が別個の集積回路(又はデバイス)として実現される場合、コントローラ101の媒体インターフェースは一般に、複数のデータ入力/出力(I/O)ピン及び複数の制御I/Oピンを管理するように可能にされる。データI/Oピン及び制御I/Oピンは、コントローラ101を包含するデバイスを、不揮発性メモリ媒体103を形成する外部デバイスに接続するように構成され得る。様々な実施形態において、コントローラ101は、埋め込み式コントローラとして実現される。様々な実施形態において、コントローラ101及びNVM媒体103は、ソリッドステートハイブリッドハードディスクドライブ(Solid State Hybrid Hard Disk Drive:SSHD)、ハードディスクドライブ(HDD)又はソリッドステートドライブ/ディスク(Solid State Drive:SSD)を実現する。
【0013】
また、コントローラ101は、コマンドを受け取り、応答をホスト105に送信するように構成されたコマンドインターフェースも有する。複数の不揮発性メモリデバイスを実現する実施形態において、コントローラ101は、独自のプロセスを介して不揮発性メモリデバイスを管理する少なくとも1つのNVM制御プロセッサ、及び他のプロセスに従ってホストインターフェースを管理するホストプロセッサを含む。NVM制御プロセッサ(単数または複数)及びホストプロセッサは、所定のインターフェースを介して通信する。ホストプロセッサは、所定の通信インターフェース(又はプロトコル)に従ってコマンドを処理するNVM制御プロセッサに、ホストコマンドを伝える。また、コントローラ101は、本発明の一実施形態による、仮想バンド集信方法を実現するように構成されたバンドマネージャ(Band Manager:BM)110及び暗号化/暗号解読(E/D)ブロック(又は回路)112も含む。バンドマネージャ110は、記憶デバイス102により使用される鍵マテリアル(Key Material:KM)を格納する鍵記憶装置(Key Storage:KS)114を含む。幾つかの実施形態において、鍵記憶装置114は、ホスト105により使用される仮想鍵マテリアル(Virtual Key Material:VKM)も格納することができる。
【0014】
ホスト105は、仮想マシンマネージャ(VMM)ブロック120を含む。VMM120は、本発明の一実施形態による、仮想バンド集信方法を実現するように構成される。VMM120は、1つ又は複数の仮想バンドマネージャ(VBM)122を含む。幾つかの実施形態において、VMM120は、各実バンドに対して別個のVBM122のインスタンスを走らせる。各VBM122は、仮想鍵マテリアル(VKM)を格納する仮想鍵記憶装置(VKS)124を含む。各VBM122は、複数の仮想バンド(VB)をSD102上の記憶装置のための実バンド130へ集信する。各VBM122により受け取られた複数の仮想バンドは、VMM120により各VBM122と関連付けられるホスト105上で走っている多数の仮想マシン(VM)からである。単一のVBM122は、1つ又は複数の実バンドを管理することができる。各VBM122は、個々の認証鍵(AK)104を提供することにより、記憶デバイス102に対してそれ自体を認証する。
【0015】
図2を参照すると、本発明の一実施形態による、仮想バンド集信装置のホスト部分を示すホスト105の図が示される。本発明の実施形態は、以下に限定されないが、TCG Enterprise SSC、TCG Opal及びATA Securityを含む幾つかのセキュリティプロトコルで使用され得る一般的なセキュリティパラダイムを用いて後述される。様々な実施形態において、自己暗号化ドライブ(SED)は、論理ブロックアドレス(LBA)レンジ(又はデータバンド)で動作する。例えば、LBA1.1〜LBA1.2のLBAレンジを有するバンド130が
図2及び
図3に示される。様々な実施形態において、ホスト105は、認証鍵(AK)104を用いて、記憶デバイス(SD)102とそれ自体を認証する或る種のセキュリティアプリケーション(AP)を走らせることができる。
【0016】
従来のSEDにおいて、データ速度を維持するという理由で、バンドの数は制限されており、LBAレンジのルックアップは、ハードウェアで実現されることが多く、ハードウェアテーブルのサイズは制限される。そのため、従来のSEDは、パフォーマンスインパクトなしで、16よりも多いLBAレンジをめったにサポートしない。この性能値は大部分の応用形態に事実上十分である(例えば、TCG Opal 2.0は、ほんの8バンドを必要とする)が、それは、非常に普及している仮想マシン(VM)の環境に対して困難になる。
【0017】
幾つかの実施形態において、単一のコンピュータは、いわゆる仮想マシン(VM)の複数個をホストとして処理することができ、それらのそれぞれは、個々の動作のためにLBAの幾つかのレンジを必要とする(例えば、
図2は、ホスト105上で走っている3つの仮想マシンVM311、312及び313を示す)。各仮想マシン311−313(例えば、VM-x、x=1、2・・と表記された)の観点から、各VM-xは、0からLBA_MAX(x)のLBAを使用することができ、ここでxはVMの数である。VMにより使用されるLBAは、「仮想LBA(Virtual LBA)」(VLBA)と呼ばれ、記憶デバイス102に知られている実LBAからそれらを区別する。VMマネージャ(VMM)120は、記憶デバイス102が理解することができる実LBAへVLBAをマッピングする役割を果たす。
【0018】
VMが常に形成されて削除されるので、連続した実LBAレンジを各VMに割り当てることは、必ずしも可能であるとは限らない。その代わりに、一組のバンドが割り当てられ、記憶デバイス102の実LBA空間の外に任意に「スライス」される。従って、
図2の例に示されたように、仮想マシンVM-1の2つの仮想バンド(VB)320及び321は、単一の実LBAバンド130へマッピングされる。一般に、実バンドの数は、仮想バンドの数よりも少なく、多くの場合、実バンドの数は、仮想バンドの数よりも大幅に少なくすることができる。例えば、10〜20個の実バンドは、適度に多い数の実バンドと考えられるが、特定の応用形態により必要とされる仮想バンドの数は、数百、数千、又はさらに大きな数とすることができる。従って、実データバンドの数および仮想データバンドの数は、例えば、1桁以上だけ異なることができる。ほとんど個別的なホストとして働く各VM311〜313は、VBM122の助けを借りて記憶デバイス102とそれ自体を認証することができ、VBM122は、仮想LBAと実LBAとの間で(逆もまた同じ)変換を行う。VBM122の具現化形態は、記憶デバイス102のBM110の具現化形態と同じセキュリティ基準(特にVKSメンテナンス及びアクセスに関して)に従っている。
【0019】
VBM122は、VM311〜313を認証し、認証鍵(AK)104及びセキュリティプロトコル(例えば、TCG又はその他)終端(終了)を記憶デバイス(SD)102に提供する。ホスト側では、VBM122は、任意の数の仮想バンド(VB)をサポートするように構成され得る。記憶デバイス側では、VBM122は、後述されるようなVBM122が複数の仮想バンドを統合または集信する幾つかの実データバンドのみをサポートすることができる。多くの実施形態において、VBM122は、
図2で示されるように、ほんの1つの記憶デバイス側(実)データバンド130をサポートするように構成される。
【0020】
幾つかの実施形態において、VBM122は永続的に、例えば別個のフラッシュデバイス又はEEPROMに仮想鍵記憶装置(Virtual Key Storage:VKS)124自体をセーブする。VKS124は、各仮想バンドの仮想鍵マテリアル(VKM)(例えば、VB1.1及びVB1.2用の仮想鍵マテリアルVKM1.1 381及びVKM1.2 382がそれぞれ、
図2に示される)を格納する。他の実施形態において、記憶デバイス102は、仮想鍵マテリアルを格納するために、いわゆる不透明鍵記憶装置(Opaque Key Storage:OKS)362(
図3に示される)を提供する。OKS362は「不透明」であると呼ばれ、その理由は、SD102が仮想バンドの知識が全くなく、それ故にOKS362が何らかの鍵マテリアルを包含することを知らないからである。SD102に関する限り、OKS362は、ありきたりのデータブロックである。
【0021】
SD102に位置するOKS362に仮想鍵マテリアルを格納することは、1つのホストから別のホストへのVM移行を容易にする。VMM認証情報(例えば、AK104)を知っている限り、VMM120は、OKS362からのコンテンツ389を用いて別のホスト上のそれぞれのVKS124を回復することができる。SD102は、OKS362にセーブされた情報のタイプに関して無関心である。VBM122が仮想鍵マテリアルの何れか(例えば、VKM1.1 381及びVKM1.2 382など)を変更する場合、全OKS362は書き換えられ、古いコピーがゼロで埋められる(例えば、SD102は、ホストの要求に基づいてこのタイプのサービスを提供する必要がある)。
【0022】
図3を参照すると、本発明の一実施形態による、仮想バンド集信装置の記憶デバイス部分を示す記憶デバイス102の図が示される。様々な実施形態において、SD102は、鍵記憶装置(KS)114を包含するバンドマネージャ(BM)アプリケーション110
を走らせる。KS114が上書きされる場合、KS114の全ての古いコピーがサニタイズされる又はゼロで埋められる必要があることに留意することが重要である(例えば、サニタイズの手順は記憶媒体103のタイプに依存し、以下に限定されないが、磁気媒体の消磁、フラッシュデバイスの消去などを含むことができる)。幾つかの実施形態において、KS114は、各実データバンドに対する鍵マテリアル(KM)361の1つのサンプルを包含する。バンド130に対する鍵マテリアル361(KM1)の単一のサンプルが、
図3に示される。
【0023】
各実データバンドのメディア暗号鍵(MEK)341が、対応するKMでAK104を「ラッピング」することにより生成される。AK104及び鍵マテリアルKM1をラッピングすることによりメディア暗号鍵MEK1を生成する例が、
図3に示される。ラッピング演算は、乗算器351により示される。ラッピングは、本明細書において、非常に包括的な意味で使用される。幾つかの実施形態において、KM361は単に、AK104で暗号化された対応するMEKである(例えば、AK104が主要な暗号鍵(key encryption key:KEK)として使用され、そのため「ラッピング」351が暗号化操作に相当する)。暗号化/暗号解読は、以下に限定されないが、AES又はXTSの幾つかのバージョンを含むことができる。幾つかの実施形態において、ラッピングは、以下に限定されないが、AK104と鍵マテリアル361(例えば、
図3のKM1)との間でXORを実行することを含むことができる。しかしながら、鍵マテリアル361のランダム性を低減しない任意の演算が、特定の応用形態の設計基準を満たすために適宜に実施され得る。マルチバンドの実施形態において、個々のMEK(例えば、MEK1、MEK2、・・、MEKn)が、個々の鍵マテリアル361(例えば、KM1、KM2、・・、KMn)でAK104をラッピングすることによりn個のバンドのそれぞれに対して生成される。
【0024】
様々な実施形態において、暗号化装置(Encryptor)/暗号解読装置(Decryptor)(ED)112が、ハードウェア(HW)モジュールとして実現される。ED112は、各バンドの境界(例えば、
図3に示されたバンド130のLBA1.1〜LBA1.2)が定義されたテーブルを維持する。各バンドのMEK341は、AK104及び対応する鍵マテリアル361に基づいたラッピング演算351により計算され、ED112へロードされる。これらの実施形態において、読み出し/書き込みデータ要求311がホスト105から到来する場合、ED112がルックアップを実行して、データバンドに対して当該要求のLBAを分類し、適切なMEK341を選択する(例えば、実バンド130に対してMEK1)。従来のSEDにおいて、読み出しデータは、選択されたMEKで暗号解読されていたが、書き込みデータは、選択されたMEKで暗号化されていた。仮想バンド集信の実施形態において、選択されたMEK341は、データの暗号化/暗号解読に使用されない。むしろ、選択されたMEK341は、ラッピング演算342〜348により各I/O要求の暗号化/暗号解読に使用される実際のMEK(例えば、MEK1.1 344、MEK1.2 345、MEK3.1 347、MEK3.2 349など)を計算するために使用される。ラッピング演算342〜348は、ラッピング演算351(後述される)と同様に実施され得る。
【0025】
様々な実施形態において、MEK341は、ホスト105に送信されず、(適切な実施として)平易な形態で媒体103に格納されない。代わりに、鍵マテリアルKM361だけが格納され、認証鍵(AK)104がMEK341を回復するために必要とされる。SD102が適切に構成される場合、媒体103に対するデータの読み出し又は書き込みは、正しい認証情報を知らないどんな人でも不可能である。
【0026】
幾つかの実施形態において、各個々のバンドのゼロ初期化が可能にされる。例えば、ユーザが特定のバンドのKM361又はVKM381、382を変更し、KM361又はVKM381、382の全ての古いコピー(たとえ暗号化されたものでも)が特定の媒体サニタイズ規則(例えば、磁気媒体の消磁、フラッシュの消去など)に従ってサニタイズされる場合、特定のバンドのデータは、正しい認証情報を知っている誰かを含む誰かにより、これ以上読み出されることができない。いわゆる「ゼロ初期化」機能は、データ除去のために迅速で信頼できて正確な方法を提供し、安全な記憶デバイスの再使用を可能にする。
【0027】
仮想バンド集信の実施形態において、VBM122は、SDバンドマネージャ(BM)110と共に、AK104を用いてそれ自体を認証する。認証後、VBM122は、別のデバイスから、又はOKS362から個々のVKS124をロードする。VM311〜313の各々は、個々の認証鍵を用いてそれ自体を認証する必要がある(例えば、VM-1 311は、AK1 304を用いてそれ自体を認証し、VM-3 313はAK3 305を用いてそれ自体を認証する等)。個々の仮想MEK(VMEK)384、386、387、388は、適切な仮想鍵マテリアル(例えば、VKM1.1 381、VKM1.2 382等)で個々の認証鍵AKxをラッピング(例えば、個々のラッピング演算383、385等)することにより、各仮想バンド(VB)のために生成される。対応するVMEKは、SD102に送信されている各I/O要求に添付される。ED112は、各I/O要求に添付されたVMEKをデータバンド用のMEK341(例えば、MEK1は、
図2及び
図3に示されたデータバンド130に使用される)でラッピングし、特定のデータ操作のために個々のMEK(例えば、MEK1.1、MEK1.2、MEK3.1、MEK3.2等)を生成する。
【0028】
NVMエクスプレス(NVM Express:NVME)のホストプロトコルの実施形態において、ベンダの特定の読み出し/書き込みは定義されることができ、この場合、特別なSGL(Scatter-Gather List:スキャッター/ギャザーリスト)が提供される。SGLは、各I/O動作(演算)に関するVMEK情報を包含する。SATAプロトコルにおいて、ホストは単純に、書き込みにおけるセクタの数を拡張して鍵が提供される場所を示すことにより、又はより大きなセクタ(例えば、520バイトのセクタ)を転送して鍵マテリアルを当該より大きなセクタ自体に入れることにより、書き込みコマンドに対してVMEKを適用する。読み出しは、既存のSATA(ACS)プロトコルに適合するのに非常に困難である。一例において、ベンダの一意のコマンドは、LBAと共にVMEKを転送することが読み出されることを可能にすることを定義され得る。別の例において、ホストは、VMEKのテーブルを記憶デバイスに内在するバッファへ転送し、且つ予約ビット(合計で7ビット)を使用して記憶デバイスのテーブルへ索引付けして、転送時にVMEKを迅速にルックアップすることができる。この実施形態は、コントローラにおいて、既存のSATA HWオートメーションの使用を可能にする。
【0029】
図4を参照すると、本発明の一実施形態による、例示的なプロセス400を示す図が示される。幾つかの実施形態において、プロセス(又は方法)400は、ステップ(又は状態)402、ステップ(又は状態)404、ステップ(又は状態)406、ステップ(又は状態)408、ステップ(又は状態)410、及びステップ(又は状態)412を含むことができる。ステップ402において、ホスト105の仮想バンドマネージャ(VBM)122が、記憶デバイス102のバンドマネージャ(BM)110と共に、認証鍵(AK)104を用いてそれ自体を認証する。ステップ404において、VBM122が、別のデバイスから、又は記憶デバイス102の不透明鍵記憶装置(OKS)362から、仮想鍵記憶装置(VKS)124をロードする。ステップ406において、各仮想マシン(VMx)が、個々の認証鍵(AKx)を用いてそれ自体を認証する。ステップ408において、仮想メディア暗号鍵(VMEK)が、個々の認証鍵(AKx)をVKS124からの個々の仮想鍵マテリアル(例えば、VKMx)でラッピングすることにより、各仮想バンド(VB)に対して生成される。ステップ410において、適切なVMEKが、記憶デバイス102に送信されている各I/O要求に添付される。ステップ412において、記憶デバイス102の暗号化/暗号解読ハードウェア112が、各I/O要求に添付されたVMEKを、対応するデータバンド用に記憶デバイス102で生成されたメディア暗号鍵(MEK)でラッピングし、特定のデータ操作(演算)に対して個々のMEKを生成する。
【0030】
図5を参照すると、本発明の一実施形態による、複数の実バンドを有する仮想バンドマネージャを実現するシステム500を示す図が示される。システム500は、記憶媒体503を有する記憶デバイス502及びホスト505を含む。また、記憶デバイス502は、(
図2及び
図3に関連して上述された)本発明の一実施形態による仮想バンド集信方法を実現するように構成されたバンドマネージャ(BM)510及び暗号化/暗号解読(E/D)ブロック(又は回路)512も含む。暗号化/暗号解読(E/D)ブロック512は、多数の実バンド130−1から130−Nを処理するように構成される。バンドマネージャ510は、鍵マテリアル(例えば、KM1 560〜KMN 562)を格納する鍵記憶装置(key Storage:KS)514を含む。鍵マテリアルは、実バンド130−1〜130−Nの暗号化/暗号解読に関連して記憶デバイス502により使用される(例えば、ラッピング演算551〜552により生成された個々のメディア暗号鍵を用いて)。ラッピング演算551〜552は、
図2及び
図3に関連して上述されたラッピング演算351、383及び385と同様に実現され得る。
【0031】
ホスト505は、本発明の一実施形態による、仮想バンド集信方法を実現するように構成された仮想マシンマネージャ(VMM)を含む。VMMは、仮想バンドマネージャ(VBM)522を含む。VBM522は、複数の実バンド130−1〜130−Nを管理するように構成される。VBM522は、
図2のVBM122と同様に動作するように構成され得る。VBM522は、複数の仮想バンド(VB)を、SD502の記憶装置のための実バンド130−1〜130−Nへ集信する。VBM522により受け取られた複数の仮想バンドは、ホスト505上で走っている多数の仮想マシン(VM)から来ることができる。
【0032】
図6を参照すると、本発明の一実施形態による、複数の仮想バンドマネージャを有するホストを実現するシステム600を示す図が示される。システム600は、記憶媒体603を有する記憶デバイス602及びホスト605を含む。また、記憶デバイス602は、(
図2及び
図3に関連して上述された)本発明の一実施形態による、仮想バンド集信方法を実現するように構成されたバンドマネージャ(BM)610及び暗号化/暗号解読(E/D)ブロック(又は回路)612も含む。暗号化/暗号解読(E/D)ブロック612は、多数の実バンド130−1〜130−Nを処理するように構成される。バンドマネージャ610は、鍵マテリアル(例えば、KM1 661〜KMN 662)を格納する鍵記憶装置(KS)614を含む。鍵マテリアルは、実バンド130−1〜130−Nの暗号化/暗号解読に関連して記憶デバイス602により使用される(例えば、ラッピング演算651〜652により生成された個々のメディア暗号鍵を用いて)。ラッピング演算651〜652は、
図2及び
図3に関連して上述されたラッピング演算351、383及び385と同様に実現され得る。
【0033】
ホスト605は、本発明の一実施形態による、仮想バンド集信方法を実現するように構成された仮想マシンマネージャ(VMM)を含む。当該VMMは、複数の仮想バンドマネージャ(VBM)622−1〜622−Nを含む。VBM622−1〜622−Nは、複数の実バンド130−1〜130−Nを管理するように構成される。VBM622−1〜622−Nは、
図2のVBM122と同様に動作するように構成され得る。VBM622−1〜622−Nは、複数の仮想バンド(VB)を、SD602の記憶装置のための実バンド130−1〜130−Nへ集信する。VBM622−1〜622−Nにより受け取られた複数の仮想バンドは、ホスト605上で走っている多数の仮想マシン(VM)から来ることができる。
【0034】
VBM622−1〜622−Nのそれぞれは、多数の仮想バンドを、1つ又は複数の実バンド130−1〜130−Nへ集信することができる。VBM622−1〜622−Nのそれぞれは、個々の認証鍵AK1〜AKNを用いてそれ自体を認証する。記憶デバイス602のバンドマネージャ610は、個々の認証鍵AK1〜AKN及び個々の鍵マテリアルKM1 661〜KMN662をラッピングすることにより、バンド130−1〜130−N用の個々のメディア暗号鍵を生成する。
【0035】
本明細書においてbe動詞および動詞と共に使用される場合の用語「できる(may)」及び「一般に(generally)」は、説明が例示であり、且つ本開示に提示された特定の例および本開示に基づいて導出され得る代案の例を網羅するのに十分に広いと考えられることを意図することを伝えることが意図されている。用語「できる(may)」及び「一般に(generally)」は本明細書で使用される限り、望ましいこと又は対応する要素を省略する可能性を必然的に含むように解釈されるべきではない。用語「大幅に少ない(小さい)」は一般に、例えば比較されるアイテムが1桁以上だけ異なることができる意図を伝えることが意図されている。
【0036】
本発明は特に、その実施形態に関連して図示されて説明されたが、当業者によって理解されるように、形状および細部の様々な変更は、本発明の範囲から逸脱せずに行われ得る。