JP2013062616A - Storage device, data storage method, and data controller - Google Patents
Storage device, data storage method, and data controller Download PDFInfo
- Publication number
- JP2013062616A JP2013062616A JP2011198744A JP2011198744A JP2013062616A JP 2013062616 A JP2013062616 A JP 2013062616A JP 2011198744 A JP2011198744 A JP 2011198744A JP 2011198744 A JP2011198744 A JP 2011198744A JP 2013062616 A JP2013062616 A JP 2013062616A
- Authority
- JP
- Japan
- Prior art keywords
- data
- encryption key
- storage unit
- encryption
- encrypted
- 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.)
- Withdrawn
Links
Images
Abstract
Description
本発明の実施形態は、記憶装置、データ記憶方法、及びデータコントローラに関する。 Embodiments described herein relate generally to a storage device, a data storage method, and a data controller.
従来から、SSD(Solid State Drive)という記憶装置が提供されている。SSDは、半導体メモリであるフラッシュメモリを使用している。そして、近年、PC(Personal Computer)に内蔵される記憶装置として、HDDの代わりにSSDが使用される傾向が高まりつつある。 Conventionally, a storage device called SSD (Solid State Drive) has been provided. The SSD uses a flash memory that is a semiconductor memory. In recent years, SSDs are increasingly used as storage devices built in PCs (Personal Computers) instead of HDDs.
このようなSSDでは、サーバのバックアップなどで長期保存されるデータを暗号化しておく場合がある。このような場合であっても、暗号化されたデータは、同一の値で同一の物理位置に配置されているので、装置が取り外され、故意に装置の不揮発領域が解析された場合には、データの物理位置が特定され、集中的に攻撃を受ける可能性があった。このため、定期的な暗号鍵の変更(再暗号化:Re-Encryption)処理が推奨されている。 In such an SSD, there is a case where data stored for a long period of time by server backup or the like is encrypted. Even in such a case, since the encrypted data is arranged at the same physical position with the same value, when the device is removed and the nonvolatile area of the device is intentionally analyzed, The physical location of the data was identified and could be attacked intensively. For this reason, periodic encryption key change (re-encryption) processing is recommended.
しかしながら、従来技術を用いたSSDでは、再暗号化処理を行う際に利用者が暗号鍵を設定する必要があった。このため、装置側が任意のタイミングで再暗号化処理を行うことはできなかった。また、暗号鍵の設定管理のため、再暗号化処理の終了まで利用者が拘束されるという問題があった。 However, in the SSD using the conventional technique, it is necessary for the user to set the encryption key when performing the re-encryption process. For this reason, the apparatus side cannot perform re-encryption processing at an arbitrary timing. In addition, there is a problem that the user is restricted until the end of the re-encryption process for managing the setting of the encryption key.
また、再暗号化処理に数時間単位の時間を要する場合があり、その期間中は暗号鍵を常に設定しておく必要がある。そして、再暗号化処理の際には、暗号鍵で暗号化されたデータが復号されて平文に戻された後、再暗号化されるので、再暗号化処理中は、装置内に平文でデータを晒すリスクを負うことになるという問題があった。 Also, the re-encryption process may take several hours, and it is necessary to always set the encryption key during that period. In the re-encryption process, the data encrypted with the encryption key is decrypted and returned to plain text and then re-encrypted. Therefore, during the re-encryption process, data in plain text is stored in the device. There was a problem of taking the risk of exposure.
本発明は、上記に鑑みてなされたものであって、利用者の管理負担を軽減しつつセキュリティレベルを向上させることができる記憶装置、データ記憶方法、及びデータコントローラを提供することを目的とする。 The present invention has been made in view of the above, and an object of the present invention is to provide a storage device, a data storage method, and a data controller that can improve the security level while reducing the management burden on the user. .
実施形態の記憶装置は、ホスト装置から送られてくるデータを記憶する不揮発性の記憶部と、ホスト側暗号処理部と、メディア側暗号処理部と、を備えている。前記ホスト側暗号処理部は、外部入力されるユーザ認証情報に基づいて前記記憶部から第1の暗号鍵を読み出すとともに、前記第1の暗号鍵を用いて前記データを暗号化し、暗号化した第1のデータを出力する。また、前記メディア側暗号処理部は、前記データが書き込まれる前記記憶部内の書き込み位置の情報を用いて第2の暗号鍵を生成するとともに、前記第2の暗号鍵を用いて前記第1のデータをさらに暗号化し、当該さらに暗号化した第2のデータを前記記憶部の第1の位置に記憶させる。そして、前記記憶部内から前記第2のデータを前記第1の位置から読み出して前記記憶部内の第2の位置に書き戻す場合には、前記メディア側暗号処理部が前記第2の暗号鍵を用いて前記第2のデータを前記第1のデータに復号化する。さらに、前記メディア側暗号処理部は、前記第2の位置の情報を用いて第3の暗号鍵を生成する。さらに、前記メディア側暗号処理部は、復号化した第1のデータを前記第3の暗号鍵を用いて再暗号化し、当該再暗号化した第3のデータを前記記憶部の第2の位置に記憶させる。 The storage device according to the embodiment includes a nonvolatile storage unit that stores data transmitted from the host device, a host-side encryption processing unit, and a media-side encryption processing unit. The host-side encryption processing unit reads the first encryption key from the storage unit based on user authentication information input from the outside, encrypts the data using the first encryption key, and encrypts the data. 1 data is output. The media-side encryption processing unit generates a second encryption key using information on a write position in the storage unit in which the data is written, and uses the second encryption key to generate the first data Is further encrypted, and the further encrypted second data is stored in the first position of the storage unit. When the second data is read from the first position and written back to the second position in the storage section, the media side encryption processing section uses the second encryption key. Then, the second data is decoded into the first data. Furthermore, the media side encryption processing unit generates a third encryption key using the information on the second position. Further, the media side encryption processing unit re-encrypts the decrypted first data using the third encryption key, and the re-encrypted third data is stored in the second position of the storage unit. Remember.
以下に添付図面を参照して、実施形態に係る記憶装置、データ記憶方法、及びデータコントローラを詳細に説明する。なお、この実施形態により本発明が限定されるものではない。 Hereinafter, a storage device, a data storage method, and a data controller according to embodiments will be described in detail with reference to the accompanying drawings. In addition, this invention is not limited by this embodiment.
(第1の実施形態)
図1は、第1の実施形態に係るSSD装置の構成を示すブロック図である。SSD装置(記憶装置)1Aは、パーソナルコンピュータ(以下、PCという)やCPUコアなどのホストシステム(情報処理装置)2に接続されている。SSD装置1Aは、ホストシステム2の外部メモリとして機能する。
(First embodiment)
FIG. 1 is a block diagram showing the configuration of the SSD device according to the first embodiment. The SSD device (storage device) 1A is connected to a host system (information processing device) 2 such as a personal computer (hereinafter referred to as a PC) or a CPU core. The
本実施形態のSSD装置1Aは、利用者がログインの際に外部入力するパスワードを用いて取得されるユーザ暗号鍵を用いてデータを暗号化しておく。また、データを格納するブロックの位置に基づいて生成されるブロック暗号鍵を用いて、データをさらに暗号化しておく。そして、データの格納位置を変更する際(例えばコンパクション時)には、暗号化に用いたブロック暗号鍵を用いてデータを復号化し、新たなブロック暗号鍵を用いて、再暗号化処理を行う。これにより、SSD装置1Aは、ブロック暗号鍵で暗号化されたデータに対して再暗号化処理(暗号化処理のやり直し)を行う。
The
SSD装置1Aは、ホストコントローラ3Aと、バッファメモリ6と、メディアコントローラ7Aと、ストレージメディア10と、を有している。ホストコントローラ3Aは、ホストシステム2とバッファメモリ6との間のデータ転送制御を行う。ホストコントローラ3Aは、ホストI/F4と、ホスト側暗号処理部5と、を備えている。
The
ホストI/F4は、SSD装置1Aとホストシステム2との間のデータ通信を行う通信インタフェースである。ホスト側暗号処理部5は、ホストシステム2から送られてくるデータを、ユーザ暗号鍵14を用いて暗号化し、バッファメモリ6に送る。また、ホスト側暗号処理部5は、バッファメモリ6内のデータを、ユーザ暗号鍵14を用いて復号化し、ホストI/F4を介してホストシステム2に送る。
The host I / F 4 is a communication interface that performs data communication between the SSD device 1 </ b> A and the host system 2. The host-side
バッファメモリ6は、ホストシステム2とストレージメディア10との間で、データ転送用キャッシュ及び作業領域用メモリなどとして機能する。バッファメモリ6の作業領域用メモリには、各種管理テーブル(後述の論物変換テーブルなど)が格納される。
The
バッファメモリ6は、例えばDRAM(Dynamic Random Access Memory)などの揮発性半導体メモリである。なお、DRAMの代わりに、FeRAM(Ferroelectric RAM)、MRAM(Magnetoresistive RAM)、PRAM(Phase change RAM)などの不揮発性ランダムアクセスメモリを用いてもよい。
The
メディアコントローラ7Aは、バッファメモリ6とストレージメディア10との間のデータ転送制御を行う。メディアコントローラ7Aは、メディア側暗号処理部8と、書き込み管理部9と、を備えている。
The media controller 7 </ b> A performs data transfer control between the
メディア側暗号処理部8は、バッファメモリ6内のデータ(ユーザ暗号鍵14で暗号化されたデータ)を、ブロック暗号鍵15とブロック書き込み回数情報11を用いて暗号化し、暗号化(2重暗号化)したデータ(ユーザ暗号鍵14およびブロック暗号鍵15で暗号化されたデータ)をストレージメディア10に記憶させる。また、メディア側暗号処理部8は、ストレージメディア10内のデータをブロック暗号鍵15とブロック書き込み回数情報11を用いて復号化する。
The media side encryption processing unit 8 encrypts the data in the buffer memory 6 (data encrypted with the user encryption key 14) using the block encryption key 15 and the block write count information 11, and encrypts the data (double encryption). Data) (data encrypted with the
また、メディア側暗号処理部8は、ストレージメディア10内のデータを所定のタイミング(後述のコンパクション時やウェアレベリング時)で再暗号化し、再暗号化したデータ(ユーザ暗号鍵14およびブロック暗号鍵15で暗号化されたデータ)をストレージメディア10に記憶させる。再暗号化処理は、ストレージメディア10内に記憶されているデータをブロック暗号鍵15で復号化した後、再度、暗号化してストレージメディア10内に記憶させる処理(保存中のデータに対する暗号鍵の架け替え)である。再暗号化の際には、ブロック暗号鍵15が新たに生成されるので、再暗号化前のデータと、再暗号化後のデータとは、異なることとなる。
The media side encryption processing unit 8 re-encrypts the data in the
書き込み管理部9は、ストレージメディア10へのデータの書き込み管理を行う。ホストシステム2からの要求により書き込みが行われるデータには、論理アドレス(Logical Block Address:LBA)が割り当てられる。ホストシステム2から送信される書き込みコマンドには、書き込みが要求されるデータと、当該データに割り当てられた論理アドレスとが含まれる。ストレージメディア10において、書き込みが要求されたデータが書き込まれるブロックは、書き込み管理部9が、データに割り当てられた論理アドレスとは無関係に決定する。書き込み管理部9は、後述の論物変換テーブルに基づいて、ストレージメディア10内におけるデータの読み書きを行う。
The
ストレージメディア10は、半導体チップからなる不揮発性半導体メモリとしての記憶素子(半導体記憶装置)であり、例えばNAND型のフラッシュメモリを用いて構成されている。ストレージメディア10は、ページと呼ばれる単位で読み書きが可能であり、複数ページがまとまってブロックと呼ばれる消去単位の記憶領域を構成している。そして、ストレージメディア10は、複数のブロックで構成されている。
The
ここで、ストレージメディア10への書き込み方式について説明する。NAND型のメモリでは、追記方式が採用される。この追記方式では、ブロック単位でデータの消去を行い、消去済みのブロックに対してページ単位で書き込みを行う。すなわち、NAND型の半導体メモリにおいては、消去済みのブロックのうち書き込みがまだ行われていないページに対して書き込みが可能であり、既に書き込みが行なわれたページに対する上書きは不可能である。
Here, a writing method to the
このため、データの書き込み要求において指定された論理アドレスが再度指定されて新たなデータの書き込みがホストシステム2から要求されると、SSD装置1Aは、消去済みのブロックのうちの書き込みがまだ行なわれていないページに対して新たなデータの書き込みを行う。このとき、当該論理アドレスに対応して前回書き込みが行われたページを無効にして、新たなデータの書き込みが行われたページを有効にする。
For this reason, when the logical address designated in the data write request is designated again and a new data write is requested from the host system 2, the
上述の追記方式において、書き込みを続けることにより、無効にされたページが増えてくると、ストレージメディア10において書き込みを実現可能な容量が少なくなってくる。そして、書き込みが可能な新規の消去済みのブロック、即ち、消去後に書き込みがまだ行なわれていないブロック(フリーブロックという)が少なくなり、フリーブロックの確保が不可能になった時点で書き込み不能となってしまう。これを防ぐために、メディアコントローラ7Aは、適当なタイミングでガベージコレクションを行なう。NAND型の半導体メモリにおいて行なうガベージコレクションは、特にコンパクションという。
In the above-described write-once system, if the number of invalidated pages increases by continuing to write, the capacity that can be written in the
コンパクションは、追加書き込みによって無効となったデータ領域を再利用するため、有効データを集めて空き領域(フリーブロック)に再配置した後、有効データが無くなった領域(ブロック)を消去して空き領域(フリーブロック)とする処理である。換言すると、コンパクションは、有効なデータを読み出して、新しいブロックに書き直す処理である。 Compaction reuses the data area invalidated by additional writing, so after collecting valid data and rearranging it in a free area (free block), it erases the area (block) where there is no valid data and frees it. (Free block). In other words, compaction is a process of reading valid data and rewriting it into a new block.
また、SSD装置1Aは、ストレージメディア10のそれぞれの記憶エリア(領域)ごとの書き換え回数を平準化(平滑化)するウェアレベリングを行なっている。SSD装置1Aでは、書き込みデータに対し、コンパクションやウェアレベリングと呼ばれる処理が、装置内のバックグラウンド処理として実行される。
In addition, the
ストレージメディア10は、ブロック書き込み回数情報11と、ユーザデータ12と、書き込み位置管理情報13と、ユーザ暗号鍵14と、ブロック暗号鍵15と、を格納している。
The
ブロック書き込み回数情報11は、ブロック単位ごとのデータ書き込み回数を示す情報である。ユーザデータ12は、ホストシステム2から書き込まれるデータである。
The block write count information 11 is information indicating the data write count for each block.
書き込み位置管理情報13は、例えば論物変換テーブル(アドレス変換テーブル)などである。論物変換テーブルは、ホストシステム2で指定された論理アドレス(LBA)とストレージメディア10内のデータの格納位置を指定する物理アドレスとの対応関係を示すものである。論物変換テーブルは、SSD装置1Aおよびホストシステム2を用いて構成されるメモリシステムの起動時等の所定タイミングで、バッファメモリ6に展開される。メディアコントローラ7Aは、データ書き込みやデータ消去等に伴い論理アドレスと物理アドレスとの対応関係が更新された場合、バッファメモリ6に展開された論物変換テーブルを更新する。
The write
ユーザ暗号鍵14は、ホストシステム2から送られてくるデータの暗号化に用いられる暗号鍵である。ユーザ暗号鍵14は、パスワードなどのユーザ認証情報に基づいて、ストレージメディア10内からホスト側暗号処理部5に読み出される。
The
ブロック暗号鍵15は、ユーザ暗号鍵14で暗号化されたデータをさらに暗号化する際や再暗号化の際に用いられる暗号鍵である。ブロック暗号鍵15は、ユーザデータ12が書き込まれるストレージメディア10内の位置(ブロックの位置)を用いて生成される。
The block encryption key 15 is an encryption key used when the data encrypted with the
SSD装置1Aでは、メディアコントローラ内の制御ファームウェアがコンパクションなどと同時にメディア側暗号処理部8による再暗号化を制御する。また、メディアコントローラ内の制御ファームウェアが、ブロック書き込み回数情報11を用いたメディア側暗号処理部8によるデータの暗号化を制御する。
In the
ホストシステム2から送られてくるデータは、ホストI/F4を介してホスト側暗号処理部5に送られる。このとき、ホストシステム2からホストコントローラ3Aへは、パスワードなどのユーザ認証情報が入力される。このユーザ認証情報に基づいて、ホストコントローラ3Aは、ストレージメディア10からユーザ暗号鍵14を読み出して、ユーザ暗号鍵14をホスト側暗号処理部5に設定する。
Data sent from the host system 2 is sent to the host-
ユーザ暗号鍵14がホスト側暗号処理部5に設定されている状態(利用者のログオン時)では、ストレージメディア10内のユーザデータ12を正しく読み書きすることが可能となる。ホスト側暗号処理部5は、ユーザ暗号鍵14を用いて、ホストシステム2から送られてくるデータを暗号化する。そして、ホスト側暗号処理部5は、暗号化したデータ(以下、ホスト側暗号化データという)をバッファメモリ6に記憶させる。
When the
メディア側暗号処理部8は、バッファメモリ6のホスト側暗号化データを、ブロック暗号鍵15とブロック書き込み回数情報11を用いてさらに暗号化し、暗号化したデータ(以下、メディア側暗号化データという)をストレージメディア10に記憶させる。
The media side encryption processing unit 8 further encrypts the host side encrypted data in the
この後、必要に応じて、コンパクションやウェアレベリングが行われる。コンパクションやウェアレベリングは、例えば、ユーザ暗号鍵14がホスト側暗号処理部5に設定されていない状態で(利用者のログオフ時に)行われる。本実施形態では、コンパクションやウェアレベリングを行う際に、メディア側暗号処理部8がメディア側暗号化データの再暗号化を行う。
Thereafter, compaction and wear leveling are performed as necessary. Compaction and wear leveling are performed, for example, in a state where the
図2は、再暗号化処理の処理手順を示す図である。SSD装置1Aによるデータの再暗号化処理は、例えば、コンパクションを行う場合やウェアレベリングを行う場合などに行われる。ここでは、SSD装置1Aがコンパクションを行う際の再暗号化処理について説明する。また、ここではユーザデータ12がコンパクション対象のデータである場合について説明する。
FIG. 2 is a diagram illustrating a processing procedure of the re-encryption process. Data re-encryption processing by the
メディア側暗号化データとしてのユーザデータ12は、ストレージメディア10内に格納されている。コンパクションが開始されると(ステップS5)、ユーザデータ12のうちコンパクション対象となるデータ(新たなブロックに移動させられるデータ)が、ストレージメディア10からバッファメモリ6に読み出される。具体的には、コンパクション対象となるデータが、書き込み管理部9を経由してメディア側暗号処理部8に送られる。これにより、メディア側暗号処理部8は、ブロック暗号鍵15とブロック書き込み回数情報11を用いて、コンパクション対象となるデータを復号化し(ステップS10)、復号化したデータをバッファメモリ6に送る。バッファメモリ6に展開されるデータは、ホスト側暗号化データ(ユーザ暗号鍵14で暗号化されたデータ)である。
書き込み管理部9は、コンパクション対象となるデータを新規に書き込むフリーブロックの書き込み回数を1だけ加算し、これにより、ブロック書き込み回数情報11を更新する(ステップS20)。
The
そして、バッファメモリ6上で有効ブロックを集約し、フリーブロックへの書き込みデータを作成する。これにより、バッファメモリ6上でコンパクションが実行される(ステップS30)。
Then, the effective blocks are aggregated on the
ここで、コンパクションの処理手順について説明する。図3は、コンパクションの処理手順を説明するための図である。図3では、SSD装置1Aにおける書き込みとコンパクションの遷移ブロック図を示している。
Here, the compaction processing procedure will be described. FIG. 3 is a diagram for explaining the compaction processing procedure. FIG. 3 shows a transition block diagram of writing and compaction in the
ここでは、ブロックb1〜b4が存在し、各ブロックb1〜b4がページ1〜3を有している場合のコンパクションについて説明する。図3の(a)は、最初の書き込み状態を示している。最初の書き込み状態は、例えば、ブロックb1のページ1〜3にデータA1〜C1が書き込まれ、ブロックb2のページ1〜3にデータD1〜F1が書き込まれ、ブブロックb3,b4がフリーブロックである。 Here, the compaction when the blocks b1 to b4 exist and each of the blocks b1 to b4 has pages 1 to 3 will be described. FIG. 3A shows an initial write state. In the initial writing state, for example, data A1 to C1 are written to pages 1 to 3 of block b1, data D1 to F1 are written to pages 1 to 3 of block b2, and blocks b3 and b4 are free blocks.
データC1、データD1、データF1に対し、更新書き込みがホストシステム2から指示された場合、ブロックb1の旧データに対して物理的な上書きではなく、図3の(b)に示すようにフリーブロックであるブロックb3に新たなデータをページ単位の追加書きで書き込まれる。 When update writing is instructed from the host system 2 to the data C1, data D1, and data F1, the old data in the block b1 is not physically overwritten, but a free block as shown in FIG. In the block b3, new data is written by additional writing in page units.
具体的には、ブロックb2のページ3に書き込まれていたデータF1が、再暗号化されてブロックb3のページ1にデータF2として書き込まれる。つぎに、ブロックb2のページ1に書き込まれていたデータD1が、再暗号化されてブロックb3のページ2にデータD2として書き込まれる。さらに、ブロックb1のページ3に書き込まれていたデータC1が、再暗号化されてブロックb3のページ3にデータC2として書き込まれる。 Specifically, the data F1 written in page 3 of block b2 is re-encrypted and written as data F2 in page 1 of block b3. Next, the data D1 written to page 1 of block b2 is re-encrypted and written as data D2 to page 2 of block b3. Further, the data C1 written on page 3 of block b1 is re-encrypted and written as data C2 on page 3 of block b3.
そして、ブロックb1の旧書き込み箇所のデータが無効にされる。ここでは、ブロックb2のページ3に書き込まれていたデータF1、ブロックb2のページ1に書き込まれていたデータD1、ブロックb1のページ3に書き込まれていたデータC1が、それぞれ無効化される。 Then, the data in the old writing part of the block b1 is invalidated. Here, the data F1 written on page 3 of block b2, data D1 written on page 1 of block b2, and data C1 written on page 3 of block b1 are invalidated.
図3の(b)におけるブロックb1,b2のように、無効データが多くなると、ブロックの利用効率が落ちる。このため、無効データの多くなったブロック内の有効データを、定期的にフリーブロックに移動・集約する。そして、移動元のブロック内に格納されていたデータを消去してフリーブロックへと変更させる(コンパクション)。 As the invalid data increases as in the blocks b1 and b2 in FIG. 3B, the use efficiency of the blocks decreases. For this reason, the valid data in the block with a large amount of invalid data is periodically moved / aggregated to the free block. Then, the data stored in the source block is erased and changed to a free block (compaction).
具体的には、有効データを、書き込み管理部9を経由してバッファメモリ6に読み出す。ここでは、図3の(c)に示すように、ブロックb1のページ1に書き込まれているデータA1と、ブロックb1のページ2に書き込まれているデータB1と、ブロックb2のページ2に書き込まれているデータE1と、がバッファメモリ6に読み出される。そして、データB1,E1,A2が再暗号化されてブロックb4のページ1〜3にデータB2、データE2、データA2として書き込まれる。
Specifically, the valid data is read out to the
このとき、書き込み管理部9からブロックb4へのデータ書き込みと同時にブロックb1、b2内のデータを消去してフリーブロックへと変更する。これにより、利用領域の最適化(コンパクション)が実行される。
At this time, the data in the blocks b1 and b2 is erased and changed to a free block simultaneously with the data writing from the
なお、コンパクションは、ブロックの書き込み頻度を平滑化させるため、無効データの少ないブロックに対しても定期的に実行される。さらに、ブロックの書き込み頻度を平滑化させるため、ウェアレベリングとして、使用中のブロックとフリーブロックの入れ替えも定期的に実行される。 Note that compaction is periodically executed even for blocks with less invalid data in order to smooth the writing frequency of the blocks. Furthermore, in order to smooth the writing frequency of the blocks, the used blocks and free blocks are periodically exchanged as wear leveling.
SSD装置1Aでは、バッファメモリ6上でコンパクションが実行されてフリーブロックへ書き込むデータが作成されると、メディア側暗号処理部8は、ホスト側暗号化データの書き込まれる物理位置(フリーブロックの物理位置)と、乱数と、ブロック書き込み回数情報11と、を用いて、物理ブロック単位毎にブロック暗号鍵15を生成する。メディア側暗号処理部8は、更新されたブロック暗号鍵15を用いて、フリーブロックへ書き込むデータを再暗号化する(ステップS40)。メディア側暗号処理部8で生成されたブロック暗号鍵15は、ストレージメディア10内に格納しておく。
In the
書き込みブロックは、一度データが書き込まれると消去しない限り、再度書き込みを行うことはできない。そこで、本実施形態では、データの暗号化にブロック書き込み回数情報11を用いる。例えば、ブロック書き込み回数情報11を、ブロック暗号鍵15を生成する際のSEEDとして用いる。これにより、ブロックへの書き込み回数が、生成されるブロック暗号鍵15に影響を与える。このため、もし同一データが再度同じブロックに書き込まれることがあったとしても、ブロック暗号鍵15が異なるので、メディア側暗号化データが、以前のメディア側暗号化データと同じデータパターンにはならない。 A write block cannot be written again unless it is erased once data is written. Therefore, in this embodiment, the block write count information 11 is used for data encryption. For example, the block write count information 11 is used as SEED when generating the block encryption key 15. Thereby, the number of times of writing to the block affects the generated block encryption key 15. For this reason, even if the same data is written again in the same block, the block encryption key 15 is different, so that the media side encrypted data does not have the same data pattern as the previous media side encrypted data.
なお、ブロック暗号鍵15は、ブロック書き込み回数情報11を用いることなく、ホスト側暗号化データの書き込まれる物理位置と、乱数と、を用いて生成してもよい。この場合であっても、暗号鍵は、ホスト側暗号化データが書き込まれる物理位置に依存する。このため、ホスト側暗号化データが異なるブロックへ書込まれる場合には、書き込む位置を変更するだけでデータパターンが異なることとなり、暗号鍵15の再生が不要となる。 The block encryption key 15 may be generated using the physical position where the host side encrypted data is written and the random number without using the block write count information 11. Even in this case, the encryption key depends on the physical position where the host side encrypted data is written. For this reason, when the host-side encrypted data is written into different blocks, the data pattern differs only by changing the writing position, and the encryption key 15 need not be reproduced.
再暗号化されたデータ(暗号化データ)は、ホスト側暗号化データとして、書き込み管理部9がストレージメディア10に書き戻す(ステップS50)。なお、実際の書き込みはページ単位で行われるので、ページ鍵はブロック暗号鍵から派生、またはブロック内のオフセットから生成される。
The re-encrypted data (encrypted data) is written back to the
書き込み管理部9は、コンパクション対象の全データを再暗号化してコンパクションしたか否かを判断する(ステップS60)。コンパクションが終了していない場合(コンパクションされていないデータが残っている場合)(ステップS60、No)、ステップS10〜S60の処理が繰り返される。一方、コンパクションが終了すると(ステップS60、Yes)、書き込み管理部9は、ステップS30の処理によって無効になったブロックを消去してフリーブロックにする。なお、ステップS30の処理によって無効になったブロックの消去は、無効になった時点でフリーブロックにしてもよい。
The
ホスト側暗号化データが再暗号化されることにより、ホスト側暗号化データは、ストレージメディア10内で新たな物理位置に格納される。このため、書き込み管理部9は、書き込み位置管理情報13を更新する。このとき、書き込み位置管理情報13は、ユーザデータ12と同様にメディア側暗号処理部8にて、ブロック暗号鍵15およびブロック書き込み回数情報11を用いて再暗号化しておく(ステップS70)。そして、書き込み管理部9は、再暗号化した書き込み位置管理情報13をストレージメディア10に書き込む(ステップS80)。
By re-encrypting the host-side encrypted data, the host-side encrypted data is stored at a new physical location in the
このように、本実施形態では、ホスト側暗号処理部5とは別にメディア側暗号処理部8が設けられている。そして、メディア側暗号処理部8に物理ブロック単位の鍵と、ブロック書き込み回数情報11と、を用いてデータの暗号化を行っている。
As described above, in this embodiment, the media side encryption processing unit 8 is provided separately from the host side
これにより、再暗号化の際にユーザ暗号鍵が不要となるので、ユーザ暗号鍵14がホスト側暗号処理部5に設定されていない状態で再暗号化を行なうことが可能となる。また、メディア側暗号化データに対して再暗号化を行うので、平文が展開されることはない。したがって、平文データを晒すことなくLBA単位で暗号化された状態を維持したまま、再暗号化処理を行なうことが可能となる。また、SSD装置1A内の情報のみで再暗号化を行うので、コンパクションと同時に再暗号化を実施することが可能となる。
As a result, a user encryption key is not required for re-encryption, and therefore re-encryption can be performed in a state where the
また、書き込み位置管理情報13を、ブロック暗号鍵15およびブロック書き込み回数情報11を用いて再暗号化しているので、書き込み位置管理情報13の解析を防止できる。したがって、ストレージメディア10内に格納されているデータの物理位置が特定されることを防止できる。
Moreover, since the write
なお、コンパクション対象のデータは、ユーザデータ12に限らず、何れのデータ(例えば、ブロック書き込み回数情報11、書き込み位置管理情報13、ユーザ暗号鍵14、ブロック暗号鍵15)であってもよい。また、本実施の形態では、コンパクションやウェアレベリングの際に再暗号化を行う場合について説明したが、定期的な暗号鍵変更の際に、再暗号化してもよい。
The compaction target data is not limited to the
また、本実施の形態では、SSD装置1Aによる再暗号化を例に挙げているが、他のストレージ装置であっても、データの書き込み物理位置を意図的に変更させることでSSD装置1Aと同様の効果を得ることは可能である。
In this embodiment, the re-encryption by the
このように第1の実施形態によれば、ユーザ暗号鍵14とブロック暗号鍵15を用いてデータを暗号化するとともに、ブロック暗号鍵15を用いてデータを再暗号化するので、利用者の管理負担を軽減しつつセキュリティレベルを向上させることが可能となる。
As described above, according to the first embodiment, the
また、コンパクションやウェアレベリングと再暗号化の両立が可能となるので、装置解析によって長期保存された重要データを危険にさらすことがなくなり、セキュリティレベルを向上させることが可能となる。 In addition, since compaction, wear leveling and re-encryption can be compatible, important data stored for a long time by device analysis is not exposed to danger, and the security level can be improved.
また、書き込み位置管理情報13などの重要情報を暗号化することが可能となるので、物理位置を特定されることによるデータ破壊および解析に対し、セキュリティレベルを向上させることが可能となる。
Further, since important information such as the write
(第2の実施形態)
つぎに、図4および図5を用いてこの発明の第2の実施形態について説明する。第2の実施形態では、第1の実施形態におけるホスト側暗号処理部5とメディア側暗号処理部8とを1つの構成要素で構成する。
(Second Embodiment)
Next, a second embodiment of the present invention will be described with reference to FIGS. In the second embodiment, the host-side
図4は、第2の実施形態に係るSSD装置の構成を示すブロック図である。図4の各構成要素のうち図1に示す第1の実施形態のSSD装置1Aと同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。 FIG. 4 is a block diagram illustrating a configuration of the SSD device according to the second embodiment. Among the constituent elements in FIG. 4, constituent elements that achieve the same functions as those of the SSD device 1 </ b> A of the first embodiment shown in FIG. 1 are assigned the same numbers, and redundant descriptions are omitted.
SSD装置1Bは、SSD装置1Aと同様の機能を有した装置であり、ホストコントローラ3Bと、バッファメモリ6と、メディアコントローラ7Bと、ストレージメディア10と、暗号処理部20と、を有している。
The
ホストコントローラ3Bは、ホストシステム2と暗号処理部20とに接続されている。また、暗号処理部20は、ホストコントローラ3B、バッファメモリ6、メディアコントローラ7B、ストレージメディア10に接続されている。また、バッファメモリ6は、暗号処理部20、メディアコントローラ7Bに接続されている。そして、ストレージメディア10が、暗号処理部20、メディアコントローラ7Bに接続されている。
The
ホストコントローラ3Bは、ホストI/F4を備え、メディアコントローラ7Bは、書き込み管理部9を備えている。暗号処理部20は、ホスト側暗号処理部5の機能とメディア側暗号処理部8の機能とを合わせた機能を備えている。
The
ホストシステム2から送られてくるデータは、ホストI/F4を介して暗号処理部20に送られる。このとき、ホストシステム2からホストコントローラ3Bへは、パスワードなどのユーザ認証情報が入力される。これにより、ホストコントローラ3Bは、ストレージメディア10からユーザ暗号鍵14を読み出して、読み出したユーザ暗号鍵14を暗号処理部20に設定する。
Data sent from the host system 2 is sent to the
ユーザ暗号鍵14が暗号処理部20に設定されている状態(利用者のログオン時)では、ストレージメディア10内のユーザデータ12を正しく読み書きすることが可能となる。例えば、暗号処理部20は、ユーザ暗号鍵14を用いて、ホストシステム2から送られてくるデータを暗号化する。そして、暗号処理部20は、暗号化したデータを、ホスト側暗号化データとしてバッファメモリ6に記憶させる。
When the
暗号処理部20は、バッファメモリ6のホスト側暗号化データを、ブロック暗号鍵15とブロック書き込み回数情報11を用いてさらに暗号化し、暗号化したデータを、ユーザデータ12としてストレージメディア10に記憶させる。
The
この後、必要に応じて、コンパクションやウェアレベリングが行われる。ユーザデータ12をコンパクションするタイミングになると、ユーザデータ12のうちコンパクション対象となるデータが、ストレージメディア10からバッファメモリ6に読み出される。これにより、暗号処理部20は、ブロック暗号鍵15とブロック書き込み回数情報11を用いて、コンパクション対象となるデータを復号化し、復号化したデータをバッファメモリ6に送る。バッファメモリ6に展開されるデータは、ホスト側暗号化データ(ユーザ暗号鍵14で暗号化されたデータ)である。そして、暗号処理部20は、ホスト側暗号化データの書き込まれる物理位置(フリーブロックの物理位置)と、乱数と、ブロック書き込み回数情報11と、を用いて、物理ブロック単位毎にブロック暗号鍵15を作成する。暗号処理部20は、更新されたブロック暗号鍵15を用いて、フリーブロックへ書き込むデータを再暗号化する。
Thereafter, compaction and wear leveling are performed as necessary. When it is time to compact the
そして、再暗号化されたデータは、ホスト側暗号化データとして、書き込み管理部9がストレージメディア10に書き戻す。コンパクションが終了すると、書き込み管理部9は、コンパクションによって無効になったブロックを消去してフリーブロックにする。
Then, the re-encrypted data is written back to the
SSD装置1A,1Bは、情報処理装置の記憶手段として利用される。図5は、情報処理装置として用いられるPCのハードウェア構成を示す図である。ここでは、SSD装置1Bを備えた情報処理装置500について説明する。
The
図5に示すように、情報処理装置500は、CPU501と、RAM502と、ROM503と、電源ユニット504と、入力インタフェース(I/F)505と、SSD装置1Bと、を備えている。
As illustrated in FIG. 5, the
本実施の形態の情報処理装置500では、電源ユニット504により電源が投入された場合に、ROM503に格納されていたBIOS(Basic Input/Output System)がCPU501により読み出され、RAM502を作業領域として動作する。
In the
以上説明したとおり、第1および第2の実施形態によれば、利用者の管理負担を軽減しつつセキュリティレベルを向上させることが可能となる。 As described above, according to the first and second embodiments, it is possible to improve the security level while reducing the management burden on the user.
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
1A,1B…SSD装置、2…ホストシステム、3A,3B…ホストコントローラ、5…ホスト側暗号処理部、7A,7B…メディアコントローラ、8…メディア側暗号処理部、10…ストレージメディア、11…ブロック書き込み回数情報、12…ユーザデータ、13…書き込み位置管理情報、14…ユーザ暗号鍵、15…ブロック暗号鍵、20…暗号処理部、500…情報処理装置、b1〜b4…ブロック
DESCRIPTION OF
Claims (8)
外部入力されるユーザ認証情報に基づいて前記記憶部から第1の暗号鍵を読み出すとともに、前記第1の暗号鍵を用いて前記データを暗号化し、暗号化した第1のデータを出力するホスト側暗号処理部と、
前記データが書き込まれる前記記憶部内の書き込み位置の情報を用いて第2の暗号鍵を生成するとともに、前記第2の暗号鍵を用いて前記第1のデータをさらに暗号化し、当該さらに暗号化した第2のデータを前記記憶部の第1の位置に記憶させるメディア側暗号処理部と、
を備え、
前記記憶部内から前記第2のデータを前記第1の位置から読み出して前記記憶部内の第2の位置に書き戻す場合には、前記メディア側暗号処理部が前記第2の暗号鍵を用いて前記第2のデータを前記第1のデータに復号化するとともに、前記第2の位置の情報を用いて第3の暗号鍵を生成し、復号化した第1のデータを前記第3の暗号鍵を用いて再暗号化し、当該再暗号化した第3のデータを前記記憶部の第2の位置に記憶させる記憶装置。 A non-volatile storage unit for storing data sent from the host device;
The host side that reads out the first encryption key from the storage unit based on user authentication information input from the outside, encrypts the data using the first encryption key, and outputs the encrypted first data An encryption processor;
A second encryption key is generated using information on a writing position in the storage unit in which the data is written, and the first data is further encrypted using the second encryption key, and the further encryption is performed. A media-side encryption processing unit for storing second data in a first position of the storage unit;
With
When reading the second data from the storage unit from the first location and writing it back to the second location in the storage unit, the media side encryption processing unit uses the second encryption key to The second data is decrypted into the first data, a third encryption key is generated using the information on the second position, and the decrypted first data is used as the third encryption key. A storage device that re-encrypts the data and stores the re-encrypted third data in the second position of the storage unit.
前記メディア側暗号処理部は、前記第2の暗号鍵を用いて前記書き込み位置情報を暗号化し、暗号化した前記書き込み位置情報を前記記憶部に記憶させる請求項1乃至4のいずれか1つに記載の記憶装置。 The storage unit further stores write position information indicating a correspondence relationship between a logical address specified by the host device and a physical address specifying a position where the data is written in the storage unit;
The media-side encryption processing unit encrypts the writing position information using the second encryption key, and stores the encrypted writing position information in the storage unit. The storage device described.
前記データが書き込まれる前記記憶部内の書き込み位置の情報を用いて第2の暗号鍵を生成するとともに、前記第2の暗号鍵を用いて前記第1のデータをさらに暗号化し、当該さらに暗号化した第2のデータを前記記憶部の第1の位置に記憶させる第2の暗号化ステップと、
を含み、
前記記憶部内から前記第2のデータを前記第1の位置から読み出して前記記憶部内の第2の位置に書き戻す場合には、前記第2の暗号鍵を用いて前記第2のデータを前記第1のデータに復号化するとともに、前記第2の位置の情報を用いて第3の暗号鍵を生成し、復号化した第1のデータを前記第3の暗号鍵を用いて再暗号化し、当該再暗号化した第3のデータを前記記憶部の第2の位置に記憶させるデータ記憶方法。 A first encryption key is read out based on user authentication information inputted from the outside in a non-volatile storage unit that stores data sent from the host device, and the data is encrypted using the first encryption key. And a first encryption step for outputting encrypted first data;
A second encryption key is generated using information on a writing position in the storage unit in which the data is written, and the first data is further encrypted using the second encryption key, and the further encryption is performed. A second encryption step for storing second data in a first position of the storage unit;
Including
When reading the second data from the storage unit from the first position and writing it back to the second position in the storage unit, the second data is written to the second data using the second encryption key. Decrypting the first data, generating a third encryption key using the second position information, re-encrypting the decrypted first data using the third encryption key, and A data storage method for storing re-encrypted third data in a second position of the storage unit.
前記データが書き込まれる前記記憶部内の書き込み位置の情報を用いて第2の暗号鍵を生成するとともに、前記第2の暗号鍵を用いて前記第1のデータをさらに暗号化し、当該さらに暗号化した第2のデータを前記記憶部の第1の位置に記憶させるメディア側暗号処理部と、
を備え、
前記記憶部内から前記第2のデータを前記第1の位置から読み出して前記記憶部内の第2の位置に書き戻す場合には、前記メディア側暗号処理部が前記第2の暗号鍵を用いて前記第2のデータを前記第1のデータに復号化するとともに、前記第2の位置の情報を用いて第3の暗号鍵を生成し、復号化した第1のデータを前記第3の暗号鍵を用いて再暗号化し、当該再暗号化した第3のデータを前記記憶部の第2の位置に記憶させるデータコントローラ。 A first encryption key is read from the storage unit based on user authentication information inputted from the outside in a non-volatile storage unit that stores data sent from the host device, and the first encryption key is used. A host-side encryption processing unit that encrypts the data and outputs the encrypted first data;
A second encryption key is generated using information on a writing position in the storage unit in which the data is written, and the first data is further encrypted using the second encryption key, and the further encryption is performed. A media-side encryption processing unit for storing second data in a first position of the storage unit;
With
When reading the second data from the storage unit from the first location and writing it back to the second location in the storage unit, the media side encryption processing unit uses the second encryption key to The second data is decrypted into the first data, a third encryption key is generated using the information on the second position, and the decrypted first data is used as the third encryption key. A data controller that re-encrypts the data and stores the re-encrypted third data in the second position of the storage unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011198744A JP2013062616A (en) | 2011-09-12 | 2011-09-12 | Storage device, data storage method, and data controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011198744A JP2013062616A (en) | 2011-09-12 | 2011-09-12 | Storage device, data storage method, and data controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013062616A true JP2013062616A (en) | 2013-04-04 |
Family
ID=48186936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011198744A Withdrawn JP2013062616A (en) | 2011-09-12 | 2011-09-12 | Storage device, data storage method, and data controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013062616A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10157149B2 (en) | 2014-12-02 | 2018-12-18 | Toshiba Memory Corporation | Memory device and host device |
JP2019205030A (en) * | 2018-05-22 | 2019-11-28 | 東芝メモリ株式会社 | Memory system and control method |
JP2019205031A (en) * | 2018-05-22 | 2019-11-28 | 東芝メモリ株式会社 | Memory system and control method |
-
2011
- 2011-09-12 JP JP2011198744A patent/JP2013062616A/en not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10157149B2 (en) | 2014-12-02 | 2018-12-18 | Toshiba Memory Corporation | Memory device and host device |
US10505927B2 (en) | 2014-12-02 | 2019-12-10 | Toshiba Memory Corporation | Memory device and host device |
JP2019205030A (en) * | 2018-05-22 | 2019-11-28 | 東芝メモリ株式会社 | Memory system and control method |
JP2019205031A (en) * | 2018-05-22 | 2019-11-28 | 東芝メモリ株式会社 | Memory system and control method |
JP7048411B2 (en) | 2018-05-22 | 2022-04-05 | キオクシア株式会社 | Memory system and control method |
JP7109992B2 (en) | 2018-05-22 | 2022-08-01 | キオクシア株式会社 | Memory system and control method |
TWI808919B (en) * | 2018-05-22 | 2023-07-11 | 日商鎧俠股份有限公司 | Memory system and method for controlling non-volatile memory |
JP7375071B2 (en) | 2018-05-22 | 2023-11-07 | キオクシア株式会社 | Memory system and control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7375071B2 (en) | Memory system and control method | |
JP5662037B2 (en) | Data whitening to read and write data to non-volatile memory | |
US20060149902A1 (en) | Apparatus and method for storing data in nonvolatile cache memory considering update ratio | |
KR102223819B1 (en) | Virtual bands concentration for self encrypting drives | |
TWI679554B (en) | Data storage device and operating method therefor | |
US8886963B2 (en) | Secure relocation of encrypted files | |
US20140032935A1 (en) | Memory system and encryption method in memory system | |
JP2021043708A (en) | Memory system | |
JP2018101411A (en) | Data storage device and operating method therefor | |
JP2015172959A (en) | Access method for flash memory | |
TWI648741B (en) | Controller for data storage device and method for erasing advanced data | |
JP2021118370A (en) | Memory system, information processing device, and information processing system | |
US20190377693A1 (en) | Method to generate pattern data over garbage data when encryption parameters are changed | |
KR20190045121A (en) | Method and apparatus for managing data of non-volatile memory in hybrid main memory system | |
JP2013062616A (en) | Storage device, data storage method, and data controller | |
TWI775284B (en) | Memory system, its control method and information processing system | |
KR101467227B1 (en) | Method for managing encrypted files based on password with secure file deleting function suitable for ssd and system for managing encrypted files using the same | |
TWI736000B (en) | Data storage device and operating method therefor | |
JP2008009933A (en) | Memory device and its control method | |
KR20150075350A (en) | Method for managing encrypted files based on password with secure file deleting function suitable for ssd and system for managing encrypted files using the same | |
US20230091431A1 (en) | Memory system and random number generation device | |
WO2024052993A1 (en) | Memory system | |
KR20180114774A (en) | Method and apparatus for managing data of non-volatile memory in hybrid main memory system | |
JP5978260B2 (en) | Virtual band concentrator for self-encrypting drives | |
JP2021149417A (en) | Storage device and control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20141202 |