JP2013062616A - Storage device, data storage method, and data controller - Google Patents

Storage device, data storage method, and data controller Download PDF

Info

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
Application number
JP2011198744A
Other languages
Japanese (ja)
Inventor
Yoshiyuki Kudo
喜之 工藤
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.)
Toshiba Corp
Original Assignee
Toshiba 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
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011198744A priority Critical patent/JP2013062616A/en
Publication of JP2013062616A publication Critical patent/JP2013062616A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a storage device capable of improving a security level while reducing a management load on a user.SOLUTION: A storage device includes a non-volatile storage part for storing data to be transmitted from a host device. A host side encryption processing part encrypts data by using a first encryption key and outputs the data as first data. A media side encryption processing part encrypts the first data by using a second encryption key generated through the use of position information in the storage part to which the data is written and allows the storage part to store the data as second data. When the second data is read and rewritten into the storage part, a third encryption key is generated through the use of information of a position for rewriting. Then, the second data is decrypted into the first data by using the second encryption key, and the first data is encrypted again by using the third encryption key and stored in the storage part.

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.

特開2006−173853号公報JP 2006-173853 A

しかしながら、従来技術を用いた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.

図1は、第1の実施形態に係るSSD装置の構成を示すブロック図である。FIG. 1 is a block diagram showing the configuration of the SSD device according to the first embodiment. 図2は、再暗号化処理の処理手順を示す図である。FIG. 2 is a diagram illustrating a processing procedure of the re-encryption process. 図3は、コンパクションを説明するための図である。FIG. 3 is a diagram for explaining compaction. 図4は、第2の実施形態に係るSSD装置の構成を示すブロック図である。FIG. 4 is a block diagram illustrating a configuration of the SSD device according to the second embodiment. 図5は、情報処理装置として用いられるPCのハードウェア構成を示す図である。FIG. 5 is a diagram illustrating a hardware configuration of a PC used as an information processing apparatus.

以下に添付図面を参照して、実施形態に係る記憶装置、データ記憶方法、及びデータコントローラを詳細に説明する。なお、この実施形態により本発明が限定されるものではない。   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 device 1A functions as an external memory of the host system 2.

本実施形態のSSD装置1Aは、利用者がログインの際に外部入力するパスワードを用いて取得されるユーザ暗号鍵を用いてデータを暗号化しておく。また、データを格納するブロックの位置に基づいて生成されるブロック暗号鍵を用いて、データをさらに暗号化しておく。そして、データの格納位置を変更する際(例えばコンパクション時)には、暗号化に用いたブロック暗号鍵を用いてデータを復号化し、新たなブロック暗号鍵を用いて、再暗号化処理を行う。これにより、SSD装置1Aは、ブロック暗号鍵で暗号化されたデータに対して再暗号化処理(暗号化処理のやり直し)を行う。   The SSD device 1A of the present embodiment encrypts data using a user encryption key acquired using a password that is externally input by the user when logging in. In addition, the data is further encrypted using a block encryption key generated based on the position of the block storing the data. When the data storage position is changed (for example, during compaction), the data is decrypted using the block encryption key used for encryption, and re-encryption processing is performed using the new block encryption key. As a result, the SSD device 1A performs re-encryption processing (re-execution of encryption processing) on the data encrypted with the block encryption key.

SSD装置1Aは、ホストコントローラ3Aと、バッファメモリ6と、メディアコントローラ7Aと、ストレージメディア10と、を有している。ホストコントローラ3Aは、ホストシステム2とバッファメモリ6との間のデータ転送制御を行う。ホストコントローラ3Aは、ホストI/F4と、ホスト側暗号処理部5と、を備えている。   The SSD device 1A includes a host controller 3A, a buffer memory 6, a media controller 7A, and a storage medium 10. The host controller 3A performs data transfer control between the host system 2 and the buffer memory 6. The host controller 3A includes a host I / F 4 and a host-side encryption processing unit 5.

ホスト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 encryption processing unit 5 encrypts data sent from the host system 2 using the user encryption key 14 and sends it to the buffer memory 6. The host-side encryption processing unit 5 decrypts the data in the buffer memory 6 using the user encryption key 14 and sends the data to the host system 2 via the host I / F 4.

バッファメモリ6は、ホストシステム2とストレージメディア10との間で、データ転送用キャッシュ及び作業領域用メモリなどとして機能する。バッファメモリ6の作業領域用メモリには、各種管理テーブル(後述の論物変換テーブルなど)が格納される。   The buffer memory 6 functions as a data transfer cache and a work area memory between the host system 2 and the storage medium 10. Various management tables (such as a logical-physical conversion table described later) are stored in the work area memory of the buffer memory 6.

バッファメモリ6は、例えばDRAM(Dynamic Random Access Memory)などの揮発性半導体メモリである。なお、DRAMの代わりに、FeRAM(Ferroelectric RAM)、MRAM(Magnetoresistive RAM)、PRAM(Phase change RAM)などの不揮発性ランダムアクセスメモリを用いてもよい。   The buffer memory 6 is a volatile semiconductor memory such as a DRAM (Dynamic Random Access Memory). Instead of the DRAM, a nonvolatile random access memory such as FeRAM (Ferroelectric RAM), MRAM (Magnetoresistive RAM), or PRAM (Phase change RAM) may be used.

メディアコントローラ7Aは、バッファメモリ6とストレージメディア10との間のデータ転送制御を行う。メディアコントローラ7Aは、メディア側暗号処理部8と、書き込み管理部9と、を備えている。   The media controller 7 </ b> A performs data transfer control between the buffer memory 6 and the storage medium 10. The media controller 7A includes a media-side encryption processing unit 8 and a write management unit 9.

メディア側暗号処理部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 user encryption key 14 and the block encryption key 15) is stored in the storage medium 10. Further, the media side encryption processing unit 8 decrypts the data in the storage medium 10 by using the block encryption key 15 and the block write count information 11.

また、メディア側暗号処理部8は、ストレージメディア10内のデータを所定のタイミング(後述のコンパクション時やウェアレベリング時)で再暗号化し、再暗号化したデータ(ユーザ暗号鍵14およびブロック暗号鍵15で暗号化されたデータ)をストレージメディア10に記憶させる。再暗号化処理は、ストレージメディア10内に記憶されているデータをブロック暗号鍵15で復号化した後、再度、暗号化してストレージメディア10内に記憶させる処理(保存中のデータに対する暗号鍵の架け替え)である。再暗号化の際には、ブロック暗号鍵15が新たに生成されるので、再暗号化前のデータと、再暗号化後のデータとは、異なることとなる。   The media side encryption processing unit 8 re-encrypts the data in the storage medium 10 at a predetermined timing (during compaction or wear leveling described later), and re-encrypted data (the user encryption key 14 and the block encryption key 15). (Encrypted data) is stored in the storage medium 10. The re-encryption process is a process of decrypting the data stored in the storage medium 10 with the block encryption key 15 and then encrypting it again and storing it in the storage medium 10 (building an encryption key for the data being saved). Replacement). At the time of re-encryption, since the block encryption key 15 is newly generated, the data before re-encryption is different from the data after re-encryption.

書き込み管理部9は、ストレージメディア10へのデータの書き込み管理を行う。ホストシステム2からの要求により書き込みが行われるデータには、論理アドレス(Logical Block Address:LBA)が割り当てられる。ホストシステム2から送信される書き込みコマンドには、書き込みが要求されるデータと、当該データに割り当てられた論理アドレスとが含まれる。ストレージメディア10において、書き込みが要求されたデータが書き込まれるブロックは、書き込み管理部9が、データに割り当てられた論理アドレスとは無関係に決定する。書き込み管理部9は、後述の論物変換テーブルに基づいて、ストレージメディア10内におけるデータの読み書きを行う。   The write management unit 9 manages writing of data to the storage medium 10. A logical address (Logical Block Address: LBA) is assigned to data to be written in response to a request from the host system 2. The write command transmitted from the host system 2 includes data requested to be written and a logical address assigned to the data. In the storage medium 10, the block in which the data requested to be written is written is determined by the write management unit 9 regardless of the logical address assigned to the data. The write management unit 9 reads and writes data in the storage medium 10 based on a logical / physical conversion table described later.

ストレージメディア10は、半導体チップからなる不揮発性半導体メモリとしての記憶素子(半導体記憶装置)であり、例えばNAND型のフラッシュメモリを用いて構成されている。ストレージメディア10は、ページと呼ばれる単位で読み書きが可能であり、複数ページがまとまってブロックと呼ばれる消去単位の記憶領域を構成している。そして、ストレージメディア10は、複数のブロックで構成されている。   The storage medium 10 is a storage element (semiconductor storage device) as a nonvolatile semiconductor memory made of a semiconductor chip, and is configured using, for example, a NAND flash memory. The storage medium 10 is readable and writable in units called pages, and a plurality of pages are grouped to constitute a storage area of an erasing unit called a block. The storage medium 10 is composed of a plurality of blocks.

ここで、ストレージメディア10への書き込み方式について説明する。NAND型のメモリでは、追記方式が採用される。この追記方式では、ブロック単位でデータの消去を行い、消去済みのブロックに対してページ単位で書き込みを行う。すなわち、NAND型の半導体メモリにおいては、消去済みのブロックのうち書き込みがまだ行われていないページに対して書き込みが可能であり、既に書き込みが行なわれたページに対する上書きは不可能である。   Here, a writing method to the storage medium 10 will be described. The NAND type memory employs a write-once system. In this additional recording method, data is erased in units of blocks, and writing is performed in units of pages for erased blocks. That is, in the NAND type semiconductor memory, it is possible to write to a page that has not been written in the erased block, and it is impossible to overwrite a page that has already been written.

このため、データの書き込み要求において指定された論理アドレスが再度指定されて新たなデータの書き込みがホストシステム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 SSD device 1A is still written in the erased block. Write new data to a page that does not exist. At this time, the page written last time corresponding to the logical address is invalidated, and the page written with new data is validated.

上述の追記方式において、書き込みを続けることにより、無効にされたページが増えてくると、ストレージメディア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 storage medium 10 decreases. Then, the number of new erased blocks that can be written, that is, blocks that have not yet been written after erasure (referred to as free blocks) is reduced, and writing becomes impossible when free blocks cannot be secured. End up. In order to prevent this, the media controller 7A performs garbage collection at an appropriate timing. Garbage collection performed in a NAND type semiconductor memory is called compaction.

コンパクションは、追加書き込みによって無効となったデータ領域を再利用するため、有効データを集めて空き領域(フリーブロック)に再配置した後、有効データが無くなった領域(ブロック)を消去して空き領域(フリーブロック)とする処理である。換言すると、コンパクションは、有効なデータを読み出して、新しいブロックに書き直す処理である。   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 SSD device 1A performs wear leveling that equalizes (smooths) the number of rewrites for each storage area (region) of the storage medium 10. In the SSD device 1A, a process called compaction or wear leveling is executed on write data as a background process in the device.

ストレージメディア10は、ブロック書き込み回数情報11と、ユーザデータ12と、書き込み位置管理情報13と、ユーザ暗号鍵14と、ブロック暗号鍵15と、を格納している。   The storage medium 10 stores block write count information 11, user data 12, write position management information 13, user encryption key 14, and block encryption key 15.

ブロック書き込み回数情報11は、ブロック単位ごとのデータ書き込み回数を示す情報である。ユーザデータ12は、ホストシステム2から書き込まれるデータである。   The block write count information 11 is information indicating the data write count for each block. User data 12 is data written from the host system 2.

書き込み位置管理情報13は、例えば論物変換テーブル(アドレス変換テーブル)などである。論物変換テーブルは、ホストシステム2で指定された論理アドレス(LBA)とストレージメディア10内のデータの格納位置を指定する物理アドレスとの対応関係を示すものである。論物変換テーブルは、SSD装置1Aおよびホストシステム2を用いて構成されるメモリシステムの起動時等の所定タイミングで、バッファメモリ6に展開される。メディアコントローラ7Aは、データ書き込みやデータ消去等に伴い論理アドレスと物理アドレスとの対応関係が更新された場合、バッファメモリ6に展開された論物変換テーブルを更新する。   The write position management information 13 is, for example, a logical / physical conversion table (address conversion table). The logical-physical conversion table indicates the correspondence between the logical address (LBA) specified by the host system 2 and the physical address specifying the data storage location in the storage medium 10. The logical-physical conversion table is developed in the buffer memory 6 at a predetermined timing such as when a memory system configured using the SSD device 1A and the host system 2 is started. The media controller 7A updates the logical-physical conversion table developed in the buffer memory 6 when the correspondence relationship between the logical address and the physical address is updated with data writing, data erasing, or the like.

ユーザ暗号鍵14は、ホストシステム2から送られてくるデータの暗号化に用いられる暗号鍵である。ユーザ暗号鍵14は、パスワードなどのユーザ認証情報に基づいて、ストレージメディア10内からホスト側暗号処理部5に読み出される。   The user encryption key 14 is an encryption key used for encrypting data sent from the host system 2. The user encryption key 14 is read from the storage medium 10 to the host-side encryption processing unit 5 based on user authentication information such as a password.

ブロック暗号鍵15は、ユーザ暗号鍵14で暗号化されたデータをさらに暗号化する際や再暗号化の際に用いられる暗号鍵である。ブロック暗号鍵15は、ユーザデータ12が書き込まれるストレージメディア10内の位置(ブロックの位置)を用いて生成される。   The block encryption key 15 is an encryption key used when the data encrypted with the user encryption key 14 is further encrypted or re-encrypted. The block encryption key 15 is generated using the position (block position) in the storage medium 10 where the user data 12 is written.

SSD装置1Aでは、メディアコントローラ内の制御ファームウェアがコンパクションなどと同時にメディア側暗号処理部8による再暗号化を制御する。また、メディアコントローラ内の制御ファームウェアが、ブロック書き込み回数情報11を用いたメディア側暗号処理部8によるデータの暗号化を制御する。   In the SSD device 1A, control firmware in the media controller controls re-encryption by the media side encryption processing unit 8 simultaneously with compaction and the like. The control firmware in the media controller controls data encryption by the media side encryption processing unit 8 using the block write count information 11.

ホストシステム2から送られてくるデータは、ホストI/F4を介してホスト側暗号処理部5に送られる。このとき、ホストシステム2からホストコントローラ3Aへは、パスワードなどのユーザ認証情報が入力される。このユーザ認証情報に基づいて、ホストコントローラ3Aは、ストレージメディア10からユーザ暗号鍵14を読み出して、ユーザ暗号鍵14をホスト側暗号処理部5に設定する。   Data sent from the host system 2 is sent to the host-side cryptographic processor 5 via the host I / F 4. At this time, user authentication information such as a password is input from the host system 2 to the host controller 3A. Based on this user authentication information, the host controller 3 A reads the user encryption key 14 from the storage medium 10 and sets the user encryption key 14 in the host-side encryption processing unit 5.

ユーザ暗号鍵14がホスト側暗号処理部5に設定されている状態(利用者のログオン時)では、ストレージメディア10内のユーザデータ12を正しく読み書きすることが可能となる。ホスト側暗号処理部5は、ユーザ暗号鍵14を用いて、ホストシステム2から送られてくるデータを暗号化する。そして、ホスト側暗号処理部5は、暗号化したデータ(以下、ホスト側暗号化データという)をバッファメモリ6に記憶させる。   When the user encryption key 14 is set in the host-side encryption processing unit 5 (when the user logs on), the user data 12 in the storage medium 10 can be read and written correctly. The host-side encryption processing unit 5 encrypts data sent from the host system 2 using the user encryption key 14. Then, the host-side encryption processing unit 5 stores the encrypted data (hereinafter referred to as host-side encrypted data) in the buffer memory 6.

メディア側暗号処理部8は、バッファメモリ6のホスト側暗号化データを、ブロック暗号鍵15とブロック書き込み回数情報11を用いてさらに暗号化し、暗号化したデータ(以下、メディア側暗号化データという)をストレージメディア10に記憶させる。   The media side encryption processing unit 8 further encrypts the host side encrypted data in the buffer memory 6 by using the block encryption key 15 and the block write count information 11 (hereinafter referred to as media side encrypted data). Is stored in the storage medium 10.

この後、必要に応じて、コンパクションやウェアレベリングが行われる。コンパクションやウェアレベリングは、例えば、ユーザ暗号鍵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 user encryption key 14 is not set in the host-side encryption processing unit 5 (when the user logs off). In the present embodiment, when performing compaction or wear leveling, the media side encryption processing unit 8 re-encrypts the media side encrypted data.

図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 SSD device 1A is performed, for example, when performing compaction or wear leveling. Here, the re-encryption process when the SSD device 1A performs compaction will be described. Here, a case where the user data 12 is data to be compacted will be described.

メディア側暗号化データとしてのユーザデータ12は、ストレージメディア10内に格納されている。コンパクションが開始されると(ステップS5)、ユーザデータ12のうちコンパクション対象となるデータ(新たなブロックに移動させられるデータ)が、ストレージメディア10からバッファメモリ6に読み出される。具体的には、コンパクション対象となるデータが、書き込み管理部9を経由してメディア側暗号処理部8に送られる。これにより、メディア側暗号処理部8は、ブロック暗号鍵15とブロック書き込み回数情報11を用いて、コンパクション対象となるデータを復号化し(ステップS10)、復号化したデータをバッファメモリ6に送る。バッファメモリ6に展開されるデータは、ホスト側暗号化データ(ユーザ暗号鍵14で暗号化されたデータ)である。   User data 12 as media-side encrypted data is stored in the storage medium 10. When compaction is started (step S5), data to be compacted among the user data 12 (data to be moved to a new block) is read from the storage medium 10 to the buffer memory 6. Specifically, data to be compacted is sent to the media side encryption processing unit 8 via the write management unit 9. As a result, the media side encryption processing unit 8 decrypts the data to be compacted using the block encryption key 15 and the block write count information 11 (step S10), and sends the decrypted data to the buffer memory 6. The data developed in the buffer memory 6 is host side encrypted data (data encrypted with the user encryption key 14).

書き込み管理部9は、コンパクション対象となるデータを新規に書き込むフリーブロックの書き込み回数を1だけ加算し、これにより、ブロック書き込み回数情報11を更新する(ステップS20)。   The write management unit 9 adds 1 to the number of times of writing a free block in which data to be compacted is newly written, and thereby updates the block write number information 11 (step S20).

そして、バッファメモリ6上で有効ブロックを集約し、フリーブロックへの書き込みデータを作成する。これにより、バッファメモリ6上でコンパクションが実行される(ステップS30)。   Then, the effective blocks are aggregated on the buffer memory 6 to create write data to the free block. Thereby, compaction is executed on the buffer memory 6 (step S30).

ここで、コンパクションの処理手順について説明する。図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 SSD device 1A.

ここでは、ブロック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 buffer memory 6 via the write management unit 9. Here, as shown in FIG. 3C, data A1 written in page 1 of block b1, data B1 written in page 2 of block b1, and page 2 of block b2 are written. The data E1 is read out to the buffer memory 6. Then, the data B1, E1, and A2 are re-encrypted and written as data B2, data E2, and data A2 on pages 1 to 3 of the block b4.

このとき、書き込み管理部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 write management unit 9 to the block b4. Thereby, optimization (compaction) of the use area is executed.

なお、コンパクションは、ブロックの書き込み頻度を平滑化させるため、無効データの少ないブロックに対しても定期的に実行される。さらに、ブロックの書き込み頻度を平滑化させるため、ウェアレベリングとして、使用中のブロックとフリーブロックの入れ替えも定期的に実行される。   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 SSD device 1A, when compaction is executed on the buffer memory 6 and data to be written to the free block is created, the media side encryption processing unit 8 reads the physical position where the host side encrypted data is written (the physical position of the free block). ), A random number, and the block write count information 11, a block encryption key 15 is generated for each physical block unit. The media side encryption processing unit 8 re-encrypts the data to be written to the free block using the updated block encryption key 15 (step S40). The block encryption key 15 generated by the media side encryption processing unit 8 is stored in the storage medium 10.

書き込みブロックは、一度データが書き込まれると消去しない限り、再度書き込みを行うことはできない。そこで、本実施形態では、データの暗号化にブロック書き込み回数情報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 storage medium 10 by the write management unit 9 as host-side encrypted data (step S50). Since actual writing is performed in units of pages, the page key is derived from the block encryption key or generated from the offset within the block.

書き込み管理部9は、コンパクション対象の全データを再暗号化してコンパクションしたか否かを判断する(ステップS60)。コンパクションが終了していない場合(コンパクションされていないデータが残っている場合)(ステップS60、No)、ステップS10〜S60の処理が繰り返される。一方、コンパクションが終了すると(ステップS60、Yes)、書き込み管理部9は、ステップS30の処理によって無効になったブロックを消去してフリーブロックにする。なお、ステップS30の処理によって無効になったブロックの消去は、無効になった時点でフリーブロックにしてもよい。   The write management unit 9 determines whether or not compaction is performed by re-encrypting all the data to be compacted (step S60). When compaction has not ended (when data that has not been compacted remains) (step S60, No), the processes of steps S10 to S60 are repeated. On the other hand, when compaction is completed (step S60, Yes), the write management unit 9 erases the block invalidated by the process of step S30 to make a free block. Note that the erasure of the block invalidated by the process of step S30 may be a free block at the time of invalidation.

ホスト側暗号化データが再暗号化されることにより、ホスト側暗号化データは、ストレージメディア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 storage medium 10. For this reason, the write management unit 9 updates the write position management information 13. At this time, the write position management information 13 is re-encrypted using the block encryption key 15 and the block write count information 11 in the media side encryption processing unit 8 as with the user data 12 (step S70). Then, the write management unit 9 writes the re-encrypted write position management information 13 in the storage medium 10 (step S80).

このように、本実施形態では、ホスト側暗号処理部5とは別にメディア側暗号処理部8が設けられている。そして、メディア側暗号処理部8に物理ブロック単位の鍵と、ブロック書き込み回数情報11と、を用いてデータの暗号化を行っている。   As described above, in this embodiment, the media side encryption processing unit 8 is provided separately from the host side encryption processing unit 5. Then, the media side encryption processing unit 8 uses the physical block unit key and the block write count information 11 to encrypt the data.

これにより、再暗号化の際にユーザ暗号鍵が不要となるので、ユーザ暗号鍵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 user encryption key 14 is not set in the host-side encryption processing unit 5. In addition, since re-encryption is performed on the media-side encrypted data, plaintext is never expanded. Therefore, it is possible to perform the re-encryption process while maintaining the encrypted state in units of LBA without exposing the plaintext data. Further, since re-encryption is performed only with information in the SSD device 1A, it becomes possible to perform re-encryption simultaneously with compaction.

また、書き込み位置管理情報13を、ブロック暗号鍵15およびブロック書き込み回数情報11を用いて再暗号化しているので、書き込み位置管理情報13の解析を防止できる。したがって、ストレージメディア10内に格納されているデータの物理位置が特定されることを防止できる。   Moreover, since the write position management information 13 is re-encrypted using the block encryption key 15 and the block write count information 11, the analysis of the write position management information 13 can be prevented. Therefore, it is possible to prevent the physical position of the data stored in the storage medium 10 from being specified.

なお、コンパクション対象のデータは、ユーザデータ12に限らず、何れのデータ(例えば、ブロック書き込み回数情報11、書き込み位置管理情報13、ユーザ暗号鍵14、ブロック暗号鍵15)であってもよい。また、本実施の形態では、コンパクションやウェアレベリングの際に再暗号化を行う場合について説明したが、定期的な暗号鍵変更の際に、再暗号化してもよい。   The compaction target data is not limited to the user data 12, but may be any data (for example, the block write count information 11, the write position management information 13, the user encryption key 14, and the block encryption key 15). Further, in the present embodiment, the case where re-encryption is performed at the time of compaction and wear leveling has been described, but re-encryption may be performed when the encryption key is periodically changed.

また、本実施の形態では、SSD装置1Aによる再暗号化を例に挙げているが、他のストレージ装置であっても、データの書き込み物理位置を意図的に変更させることでSSD装置1Aと同様の効果を得ることは可能である。   In this embodiment, the re-encryption by the SSD device 1A is taken as an example. However, even in other storage devices, the data write physical position is intentionally changed to be similar to the SSD device 1A. It is possible to obtain the effect.

このように第1の実施形態によれば、ユーザ暗号鍵14とブロック暗号鍵15を用いてデータを暗号化するとともに、ブロック暗号鍵15を用いてデータを再暗号化するので、利用者の管理負担を軽減しつつセキュリティレベルを向上させることが可能となる。   As described above, according to the first embodiment, the user encryption key 14 and the block encryption key 15 are used to encrypt data, and the block encryption key 15 is used to re-encrypt the data. It is possible to improve the security level while reducing the burden.

また、コンパクションやウェアレベリングと再暗号化の両立が可能となるので、装置解析によって長期保存された重要データを危険にさらすことがなくなり、セキュリティレベルを向上させることが可能となる。   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 position management information 13 can be encrypted, it is possible to improve the security level against data destruction and analysis by specifying the physical position.

(第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 cryptographic processing unit 5 and the media-side cryptographic processing unit 8 in the first embodiment are configured as one component.

図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 SSD device 1B is a device having the same function as the SSD device 1A, and includes a host controller 3B, a buffer memory 6, a media controller 7B, a storage medium 10, and an encryption processing unit 20. .

ホストコントローラ3Bは、ホストシステム2と暗号処理部20とに接続されている。また、暗号処理部20は、ホストコントローラ3B、バッファメモリ6、メディアコントローラ7B、ストレージメディア10に接続されている。また、バッファメモリ6は、暗号処理部20、メディアコントローラ7Bに接続されている。そして、ストレージメディア10が、暗号処理部20、メディアコントローラ7Bに接続されている。   The host controller 3B is connected to the host system 2 and the encryption processing unit 20. The encryption processing unit 20 is connected to the host controller 3B, the buffer memory 6, the media controller 7B, and the storage medium 10. The buffer memory 6 is connected to the encryption processing unit 20 and the media controller 7B. The storage medium 10 is connected to the encryption processing unit 20 and the media controller 7B.

ホストコントローラ3Bは、ホストI/F4を備え、メディアコントローラ7Bは、書き込み管理部9を備えている。暗号処理部20は、ホスト側暗号処理部5の機能とメディア側暗号処理部8の機能とを合わせた機能を備えている。   The host controller 3B includes a host I / F 4, and the media controller 7B includes a write management unit 9. The cryptographic processing unit 20 has a function that combines the functions of the host-side cryptographic processing unit 5 and the media-side cryptographic processing unit 8.

ホストシステム2から送られてくるデータは、ホストI/F4を介して暗号処理部20に送られる。このとき、ホストシステム2からホストコントローラ3Bへは、パスワードなどのユーザ認証情報が入力される。これにより、ホストコントローラ3Bは、ストレージメディア10からユーザ暗号鍵14を読み出して、読み出したユーザ暗号鍵14を暗号処理部20に設定する。   Data sent from the host system 2 is sent to the cryptographic processing unit 20 via the host I / F 4. At this time, user authentication information such as a password is input from the host system 2 to the host controller 3B. Accordingly, the host controller 3B reads the user encryption key 14 from the storage medium 10 and sets the read user encryption key 14 in the encryption processing unit 20.

ユーザ暗号鍵14が暗号処理部20に設定されている状態(利用者のログオン時)では、ストレージメディア10内のユーザデータ12を正しく読み書きすることが可能となる。例えば、暗号処理部20は、ユーザ暗号鍵14を用いて、ホストシステム2から送られてくるデータを暗号化する。そして、暗号処理部20は、暗号化したデータを、ホスト側暗号化データとしてバッファメモリ6に記憶させる。   When the user encryption key 14 is set in the encryption processing unit 20 (when the user logs on), the user data 12 in the storage medium 10 can be correctly read and written. For example, the encryption processing unit 20 encrypts data sent from the host system 2 using the user encryption key 14. Then, the encryption processing unit 20 stores the encrypted data in the buffer memory 6 as host side encrypted data.

暗号処理部20は、バッファメモリ6のホスト側暗号化データを、ブロック暗号鍵15とブロック書き込み回数情報11を用いてさらに暗号化し、暗号化したデータを、ユーザデータ12としてストレージメディア10に記憶させる。   The encryption processing unit 20 further encrypts the host-side encrypted data in the buffer memory 6 using the block encryption key 15 and the block write count information 11, and stores the encrypted data in the storage medium 10 as user data 12. .

この後、必要に応じて、コンパクションやウェアレベリングが行われる。ユーザデータ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 user data 12, data to be compacted among the user data 12 is read from the storage medium 10 to the buffer memory 6. As a result, the encryption processing unit 20 decrypts the data to be compacted using the block encryption key 15 and the block write count information 11 and sends the decrypted data to the buffer memory 6. The data developed in the buffer memory 6 is host side encrypted data (data encrypted with the user encryption key 14). Then, the cryptographic processing unit 20 uses the physical position (physical position of the free block) where the host side encrypted data is written, the random number, and the block write count information 11 to use the block encryption key 15 for each physical block unit. Create The encryption processing unit 20 re-encrypts the data to be written to the free block using the updated block encryption key 15.

そして、再暗号化されたデータは、ホスト側暗号化データとして、書き込み管理部9がストレージメディア10に書き戻す。コンパクションが終了すると、書き込み管理部9は、コンパクションによって無効になったブロックを消去してフリーブロックにする。   Then, the re-encrypted data is written back to the storage medium 10 by the write management unit 9 as host-side encrypted data. When the compaction is completed, the write management unit 9 erases the block invalidated by the compaction to make a free block.

SSD装置1A,1Bは、情報処理装置の記憶手段として利用される。図5は、情報処理装置として用いられるPCのハードウェア構成を示す図である。ここでは、SSD装置1Bを備えた情報処理装置500について説明する。   The SSD devices 1A and 1B are used as storage means of the information processing device. FIG. 5 is a diagram illustrating a hardware configuration of a PC used as an information processing apparatus. Here, the information processing apparatus 500 including the SSD apparatus 1B will be described.

図5に示すように、情報処理装置500は、CPU501と、RAM502と、ROM503と、電源ユニット504と、入力インタフェース(I/F)505と、SSD装置1Bと、を備えている。   As illustrated in FIG. 5, the information processing apparatus 500 includes a CPU 501, a RAM 502, a ROM 503, a power supply unit 504, an input interface (I / F) 505, and an SSD device 1B.

本実施の形態の情報処理装置500では、電源ユニット504により電源が投入された場合に、ROM503に格納されていたBIOS(Basic Input/Output System)がCPU501により読み出され、RAM502を作業領域として動作する。   In the information processing apparatus 500 according to the present embodiment, when power is turned on by the power supply unit 504, a BIOS (Basic Input / Output System) stored in the ROM 503 is read by the CPU 501 and operates using the RAM 502 as a work area. To do.

以上説明したとおり、第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 SYMBOLS 1A, 1B ... SSD apparatus, 2 ... Host system, 3A, 3B ... Host controller, 5 ... Host side encryption processing part, 7A, 7B ... Media controller, 8 ... Media side encryption processing part, 10 ... Storage media, 11 ... Block Write count information, 12 ... user data, 13 ... write position management information, 14 ... user encryption key, 15 ... block encryption key, 20 ... encryption processing unit, 500 ... information processing device, b1-b4 ... block

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の暗号鍵を、前記記憶部内における前記第2の位置を含むデータ消去単位毎のデータ書き換え回数をさらに用いて生成する請求項1に記載の記憶装置。   The storage device according to claim 1, wherein the media-side encryption processing unit generates the second encryption key by further using a data rewrite count for each data erasing unit including the second position in the storage unit. 前記記憶部から有効なデータを読み出して新しいブロックに書き直す処理であるコンパクションの際に、前記メディア側暗号処理部が、前記再暗号化を行い、当該再暗号化した第3のデータを前記記憶部の第2の位置に記憶させる請求項1または2に記載の記憶装置。   During compaction, which is a process of reading valid data from the storage unit and rewriting it into a new block, the media side encryption processing unit performs the re-encryption and stores the re-encrypted third data in the storage unit The storage device according to claim 1, wherein the storage device is stored in the second position. 前記記憶部内のデータ書き換え回数を平準化するウェアレベリングの際に、前記メディア側暗号処理部が、前記再暗号化を行い、当該再暗号化した第3のデータを前記記憶部の第2の位置に記憶させる請求項1または2に記載の記憶装置。   At the time of wear leveling for leveling the number of data rewrites in the storage unit, the media-side encryption processing unit performs the re-encryption, and the re-encrypted third data is stored in the second position of the storage unit. The storage device according to claim 1, wherein the storage device is stored in the storage device. 前記記憶部は、前記ホスト装置で指定された論理アドレスと前記記憶部内で前記データが書き込まれる位置を指定する物理アドレスとの対応関係を示す書き込み位置情報をさらに記憶し、
前記メディア側暗号処理部は、前記第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.
前記記憶部は、NAND型のフラッシュメモリを用いて構成されている請求項1乃至5のいずれか1つに記載の記憶装置。   The storage device according to claim 1, wherein the storage unit is configured using a NAND flash memory. ホスト装置から送られてくるデータを記憶する不揮発性の記憶部内から、外部入力されるユーザ認証情報に基づいて第1の暗号鍵を読み出すとともに、前記第1の暗号鍵を用いて前記データを暗号化し、暗号化した第1のデータを出力する第1の暗号化ステップと、
前記データが書き込まれる前記記憶部内の書き込み位置の情報を用いて第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.
ホスト装置から送られてくるデータを記憶する不揮発性の記憶部内から、外部入力されるユーザ認証情報に基づいて前記記憶部から第1の暗号鍵を読み出すとともに、前記第1の暗号鍵を用いて前記データを暗号化し、暗号化した第1のデータを出力するホスト側暗号処理部と、
前記データが書き込まれる前記記憶部内の書き込み位置の情報を用いて第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.
JP2011198744A 2011-09-12 2011-09-12 Storage device, data storage method, and data controller Withdrawn JP2013062616A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (8)

* Cited by examiner, † Cited by third party
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