JP5978260B2 - 自己暗号化ドライブ用の仮想バンド集信 - Google Patents

自己暗号化ドライブ用の仮想バンド集信 Download PDF

Info

Publication number
JP5978260B2
JP5978260B2 JP2014150595A JP2014150595A JP5978260B2 JP 5978260 B2 JP5978260 B2 JP 5978260B2 JP 2014150595 A JP2014150595 A JP 2014150595A JP 2014150595 A JP2014150595 A JP 2014150595A JP 5978260 B2 JP5978260 B2 JP 5978260B2
Authority
JP
Japan
Prior art keywords
virtual
bands
band
real
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014150595A
Other languages
English (en)
Other versions
JP2015062110A (ja
Inventor
ジェレミー・ワーナー
レオニド・バリュディン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LSI Corp
Original Assignee
LSI Logic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/033,753 external-priority patent/US9117086B2/en
Application filed by LSI Logic Corp filed Critical LSI Logic Corp
Publication of JP2015062110A publication Critical patent/JP2015062110A/ja
Application granted granted Critical
Publication of JP5978260B2 publication Critical patent/JP5978260B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は一般に、記憶システムに関し、より具体的には自己暗号化ドライブのための仮想バンド集信(virtual bands concentration)を実現するための方法および/または装置に関する。
本出願は、2013年8月28日に出願された米国仮特許出願第61/870936号に関連しており、当該米国仮特許出願は、参照により全体として本明細書に組み込まれる。
自己暗号化ドライブ(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が、記憶装置のさらにフレキシブルで効率的な使用を可能にするために、多く(恐らく数千)のバンドを必要とするかもしれないからである。
自己暗号化ドライブ用の仮想バンド集信を有することが望ましい。
概要
本発明は、記憶デバイス及びホストデバイスを含む装置に関係する。記憶デバイスは、書き込み及び読み出し操作のそれぞれの間に、ユーザデータを暗号化および暗号解読するように構成され得る。ホストデバイスは、記憶デバイスに通信可能に結合される。ホストデバイスは、第1の数の仮想バンドを第2の数の実バンドへ集信することにより書き込み及び読み出し操作を実行するように構成されることができ、第2の数は第1の数より小さくすることができる。
本発明の実施形態は、以下の詳細な説明、及び添付の特許請求の範囲および図面から明らかになるであろう。
本発明の一実施形態による、システムを示す図である。 本発明の一実施形態による、仮想バンド集信装置のホスト部分を示す図である。 本発明の一実施形態による、仮想バンド集信装置の記憶装置部分を示す図である。 本発明の一実施形態による、プロセスを示す図である。 本発明の一実施形態による、複数のバンド(マルチバンド)を備える仮想バンドマネージャを示す図である。 本発明の一実施形態による、1つ又は複数のバンドを備えるマルチ仮想バンドマネージャを有するホストを示す図である。
実施形態の詳細な説明
本発明の実施形態は、(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)を提供することを含む。
様々な実施形態において、方法および装置は、複数のデータバンドに対して一意のメディア暗号鍵(MEK)(複数)を動的に生成するために提供される。用語「データバンド」(又は簡単に「バンド」)は一般に、論理ブロックアドレス(LBA)のレンジを意味する。全LBA空間は、幾つかのLBAレンジ(バンド)へ分割される。各バンドは、一意のMEKと関連付けられる。MEKは、ホストにより動的に提供される認証情報に基づいている(例えば、ユーザ認識動作に関連付けられた「メタデータ」の一部として)。MEKを動的に生成することは一般に、各I/O動作(操作)毎に新しい鍵を形成するプロセスを意味する。MEKの動的生成は一般に、「オンザフライ」と言われている。様々な実施形態において、共通の認証鍵(AK)の使用は、マルチバンドを横切って、単一の認証鍵でもって管理される必要があるホストデータの論理ブロックアドレス(LBA)空間の不連続バンドをシミュレートすることを可能にする。鍵マテリアル(例えば、認証データ)は、各読み出し/書き込み操作に対してホスト(例えば、VMプレイヤ又はVMマネージャ(VM Manager:VMM)等)により供給され、それにより数千(又はそれ以上)のバンドを使用可能にする安全(セキュア)な方法が提供される。
図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は、互いに通信可能に結合されるように構成される。
コントローラ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)、或いは任意のタイプのメモリデバイス又は記憶媒体である。
幾つかの実施形態において、コントローラ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)を実現する。
また、コントローラ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)も格納することができる。
ホスト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に対してそれ自体を認証する。
図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)を走らせることができる。
従来のSEDにおいて、データ速度を維持するという理由で、バンドの数は制限されており、LBAレンジのルックアップは、ハードウェアで実現されることが多く、ハードウェアテーブルのサイズは制限される。そのため、従来のSEDは、パフォーマンスインパクトなしで、16よりも多いLBAレンジをめったにサポートしない。この性能値は大部分の応用形態に事実上十分である(例えば、TCG Opal 2.0は、ほんの8バンドを必要とする)が、それは、非常に普及している仮想マシン(VM)の環境に対して困難になる。
幾つかの実施形態において、単一のコンピュータは、いわゆる仮想マシン(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をマッピングする役割を果たす。
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メンテナンス及びアクセスに関して)に従っている。
VBM122は、VM311〜313を認証し、認証鍵(AK)104及びセキュリティプロトコル(例えば、TCG又はその他)終端(終了)を記憶デバイス(SD)102に提供する。ホスト側では、VBM122は、任意の数の仮想バンド(VB)をサポートするように構成され得る。記憶デバイス側では、VBM122は、後述されるようなVBM122が複数の仮想バンドを統合または集信する幾つかの実データバンドのみをサポートすることができる。多くの実施形態において、VBM122は、図2で示されるように、ほんの1つの記憶デバイス側(実)データバンド130をサポートするように構成される。
幾つかの実施形態において、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は、ありきたりのデータブロックである。
SD102に位置するOKS362に仮想鍵マテリアルを格納することは、1つのホストから別のホストへのVM移行を容易にする。VMM認証情報(例えば、AK104)を知っている限り、VMM120は、OKS362からのコンテンツ389を用いて別のホスト上のそれぞれのVKS124を回復することができる。SD102は、OKS362にセーブされた情報のタイプに関して無関心である。VBM122が仮想鍵マテリアルの何れか(例えば、VKM1.1 381及びVKM1.2 382など)を変更する場合、全OKS362は書き換えられ、古いコピーがゼロで埋められる(例えば、SD102は、ホストの要求に基づいてこのタイプのサービスを提供する必要がある)。
図3を参照すると、本発明の一実施形態による、仮想バンド集信装置の記憶デバイス部分を示す記憶デバイス102の図が示される。様々な実施形態において、SD102は、鍵記憶装置(KS)114を包含するバンドマネージャ(BM)アプリケーション110
を走らせる。KS114が上書きされる場合、KS114の全ての古いコピーがサニタイズされる又はゼロで埋められる必要があることに留意することが重要である(例えば、サニタイズの手順は記憶媒体103のタイプに依存し、以下に限定されないが、磁気媒体の消磁、フラッシュデバイスの消去などを含むことができる)。幾つかの実施形態において、KS114は、各実データバンドに対する鍵マテリアル(KM)361の1つのサンプルを包含する。バンド130に対する鍵マテリアル361(KM1)の単一のサンプルが、図3に示される。
各実データバンドのメディア暗号鍵(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個のバンドのそれぞれに対して生成される。
様々な実施形態において、暗号化装置(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(後述される)と同様に実施され得る。
様々な実施形態において、MEK341は、ホスト105に送信されず、(適切な実施として)平易な形態で媒体103に格納されない。代わりに、鍵マテリアルKM361だけが格納され、認証鍵(AK)104がMEK341を回復するために必要とされる。SD102が適切に構成される場合、媒体103に対するデータの読み出し又は書き込みは、正しい認証情報を知らないどんな人でも不可能である。
幾つかの実施形態において、各個々のバンドのゼロ初期化が可能にされる。例えば、ユーザが特定のバンドのKM361又はVKM381、382を変更し、KM361又はVKM381、382の全ての古いコピー(たとえ暗号化されたものでも)が特定の媒体サニタイズ規則(例えば、磁気媒体の消磁、フラッシュの消去など)に従ってサニタイズされる場合、特定のバンドのデータは、正しい認証情報を知っている誰かを含む誰かにより、これ以上読み出されることができない。いわゆる「ゼロ初期化」機能は、データ除去のために迅速で信頼できて正確な方法を提供し、安全な記憶デバイスの再使用を可能にする。
仮想バンド集信の実施形態において、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等)を生成する。
NVMエクスプレス(NVM Express:NVME)のホストプロトコルの実施形態において、ベンダの特定の読み出し/書き込みは定義されることができ、この場合、特別なSGL(Scatter-Gather List:スキャッター/ギャザーリスト)が提供される。SGLは、各I/O動作(演算)に関するVMEK情報を包含する。SATAプロトコルにおいて、ホストは単純に、書き込みにおけるセクタの数を拡張して鍵が提供される場所を示すことにより、又はより大きなセクタ(例えば、520バイトのセクタ)を転送して鍵マテリアルを当該より大きなセクタ自体に入れることにより、書き込みコマンドに対してVMEKを適用する。読み出しは、既存のSATA(ACS)プロトコルに適合するのに非常に困難である。一例において、ベンダの一意のコマンドは、LBAと共にVMEKを転送することが読み出されることを可能にすることを定義され得る。別の例において、ホストは、VMEKのテーブルを記憶デバイスに内在するバッファへ転送し、且つ予約ビット(合計で7ビット)を使用して記憶デバイスのテーブルへ索引付けして、転送時にVMEKを迅速にルックアップすることができる。この実施形態は、コントローラにおいて、既存のSATA HWオートメーションの使用を可能にする。
図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を生成する。
図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と同様に実現され得る。
ホスト505は、本発明の一実施形態による、仮想バンド集信方法を実現するように構成された仮想マシンマネージャ(VMM)を含む。VMMは、仮想バンドマネージャ(VBM)522を含む。VBM522は、複数の実バンド130−1〜130−Nを管理するように構成される。VBM522は、図2のVBM122と同様に動作するように構成され得る。VBM522は、複数の仮想バンド(VB)を、SD502の記憶装置のための実バンド130−1〜130−Nへ集信する。VBM522により受け取られた複数の仮想バンドは、ホスト505上で走っている多数の仮想マシン(VM)から来ることができる。
図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と同様に実現され得る。
ホスト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)から来ることができる。
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用の個々のメディア暗号鍵を生成する。
本明細書においてbe動詞および動詞と共に使用される場合の用語「できる(may)」及び「一般に(generally)」は、説明が例示であり、且つ本開示に提示された特定の例および本開示に基づいて導出され得る代案の例を網羅するのに十分に広いと考えられることを意図することを伝えることが意図されている。用語「できる(may)」及び「一般に(generally)」は本明細書で使用される限り、望ましいこと又は対応する要素を省略する可能性を必然的に含むように解釈されるべきではない。用語「大幅に少ない(小さい)」は一般に、例えば比較されるアイテムが1桁以上だけ異なることができる意図を伝えることが意図されている。
本発明は特に、その実施形態に関連して図示されて説明されたが、当業者によって理解されるように、形状および細部の様々な変更は、本発明の範囲から逸脱せずに行われ得る。

Claims (15)

  1. 書き込み及び読み出し操作のそれぞれの間に、第1の数の実バンドのユーザデータを暗号化および暗号解読するように構成され、個別の第1のメディア暗号鍵が前記実バンドのそれぞれと関連付けられている、コントローラと、
    前記コントローラに通信可能に結合するように構成されたホストデバイスとを含み、前記ホストデバイスが、第の数の仮想バンドを前記第1の数の実バンドへ集信することにより前記書き込み及び読み出し操作を実行するように更に構成されており、前記第の数が前記第2の数より小さく、実バンドの特定の1つにおける仮想バンドの各々からのユーザデータが、前記実バンドの特定の1つに関する前記個別の第1のメディア暗号鍵および前記実バンドの特定の1つにおける前記仮想バンドの各々に関連付けられた個別の仮想メディア暗号鍵に基づいた個別の第2のメディア暗号鍵を用いて暗号化および暗号解読される、装置。
  2. 前記ホストデバイスが、前記第の数の仮想バンドを前記第の数の実バンドにマッピングするように構成された仮想マシンマネージャを含む、請求項1に記載の装置。
  3. 前記仮想マシンマネージャが、前記第の数の仮想バンドを前記第の数の実バンドにマッピングするように構成された1つ又は複数の仮想バンドマネージャを更に含む、請求項2に記載の装置。
  4. 前記1つ又は複数の仮想バンドマネージャのそれぞれが、多数の前記仮想バンドを1つ又は複数の前記第の数の実バンドにマッピングするように更に構成されている、請求項3に記載の装置。
  5. 前記コントローラが、鍵マテリアルを格納するように構成されたバンドマネージャを更に含む、請求項1〜4の何れかに記載の装置。
  6. 前記バンドマネージャが、不透明鍵記憶装置を更に含む、請求項5に記載の装置。
  7. 前記コントローラが、暗号化および暗号解読モジュールを更に含む、請求項1〜6の何れかに記載の装置。
  8. 前記暗号化および暗号解読モジュールが、ハードウェアで実現される、請求項7に記載の装置。
  9. 各仮想バンドが、一意の認証鍵および暗号鍵でもってセキュリティの観点から完全に保護されている、請求項1〜8の何れかに記載の装置。
  10. 前記第の数が、前記第の数よりも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に記載の方法。
JP2014150595A 2013-09-23 2014-07-24 自己暗号化ドライブ用の仮想バンド集信 Expired - Fee Related JP5978260B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/033,753 US9117086B2 (en) 2013-08-28 2013-09-23 Virtual bands concentration for self encrypting drives
US14/033,753 2013-09-23

Publications (2)

Publication Number Publication Date
JP2015062110A JP2015062110A (ja) 2015-04-02
JP5978260B2 true JP5978260B2 (ja) 2016-08-24

Family

ID=52822267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014150595A Expired - Fee Related JP5978260B2 (ja) 2013-09-23 2014-07-24 自己暗号化ドライブ用の仮想バンド集信

Country Status (1)

Country Link
JP (1) JP5978260B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047468B2 (en) * 2007-12-28 2015-06-02 Intel Corporation Migration of full-disk encrypted virtualized storage between blade servers
US8364983B2 (en) * 2008-05-08 2013-01-29 Microsoft Corporation Corralling virtual machines with encryption keys
US8140865B2 (en) * 2009-02-06 2012-03-20 International Business Machines Corporation Pre-configuring of encryption bands on a disk for use in a plurality of array configurations
US8442235B2 (en) * 2010-04-14 2013-05-14 Microsoft Corporation Extensible management of self-encrypting storage devices
JP5640845B2 (ja) * 2011-03-18 2014-12-17 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法

Also Published As

Publication number Publication date
JP2015062110A (ja) 2015-04-02

Similar Documents

Publication Publication Date Title
US9614674B2 (en) Virtual bands concentration for self encrypting drives
US8862902B2 (en) Cascaded data encryption dependent on attributes of physical memory
KR102176612B1 (ko) 보안 서브시스템
US20140032935A1 (en) Memory system and encryption method in memory system
US11416417B2 (en) Method and apparatus to generate zero content over garbage data when encryption parameters are changed
TWI679554B (zh) 資料儲存裝置以及其操作方法
US9323943B2 (en) Decrypt and encrypt data of storage device
CN101169971A (zh) 电子硬盘
JP2024500732A (ja) 内部動作を介してキー・パーio対応デバイス中に記憶されたデータの暗号消去
US9176896B2 (en) Method of managing aligned and unaligned data bands in a self encrypting solid state drive
US11349643B2 (en) Techniques for using local key management in a data storage system
US20190377693A1 (en) Method to generate pattern data over garbage data when encryption parameters are changed
TWI736000B (zh) 資料儲存裝置以及其操作方法
JP5978260B2 (ja) 自己暗号化ドライブ用の仮想バンド集信
TW201830284A (zh) 資料儲存系統、資料儲存方法及資料讀取方法
US9058295B2 (en) Encrypt data of storage device
GB2520113A (en) Virtual bands concentration for self encrypting drives
CA2563144C (en) System and method for file encryption and decryption
KR20230166408A (ko) 스토리지 장치 및 데이터 처리 방법
Lee et al. Secure Deletion for Flash-Based Self-Encrypting Drives

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150119

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151215

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160315

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160425

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160524

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160623

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160725

R150 Certificate of patent or registration of utility model

Ref document number: 5978260

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees