JP2021118370A - メモリシステム、情報処理装置、および情報処理システム - Google Patents
メモリシステム、情報処理装置、および情報処理システム Download PDFInfo
- Publication number
- JP2021118370A JP2021118370A JP2020008265A JP2020008265A JP2021118370A JP 2021118370 A JP2021118370 A JP 2021118370A JP 2020008265 A JP2020008265 A JP 2020008265A JP 2020008265 A JP2020008265 A JP 2020008265A JP 2021118370 A JP2021118370 A JP 2021118370A
- Authority
- JP
- Japan
- Prior art keywords
- key
- information
- key information
- data
- memory
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 377
- 230000010365 information processing Effects 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 claims description 128
- 230000008569 process Effects 0.000 claims description 57
- 238000012545 processing Methods 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 18
- 238000010586 diagram Methods 0.000 abstract description 3
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 32
- 230000006870 function Effects 0.000 description 27
- 238000013403 standard screening design Methods 0.000 description 9
- 238000009795 derivation Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000002427 irreversible effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2143—Clearing memory, e.g. to prevent the data from being stolen
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
【課題】 データの漏洩に対するセキュリティを強化できるメモリシステムを実現する。【解決手段】 実施形態によれば、メモリシステムは、第1不揮発性メモリと、第2不揮発性メモリと、コントローラとを具備する。第1不揮発性メモリは、複数の記憶素子を含む。第2不揮発性メモリは、各々にデータを1回のみ書き込み可能な複数の記憶素子を含み、第1鍵情報を格納する。コントローラは、情報処理装置に格納された第2鍵情報を受信し、第1鍵情報と第2鍵情報とを用いて第1鍵を生成し、少なくとも第1鍵を用いて第2鍵を生成するように構成される。コントローラは、第1不揮発性メモリに書き込むべきデータを第2鍵で暗号化し、第1不揮発性メモリから読み出したデータを第2鍵で復号するように構成される。【選択図】図1
Description
本発明の実施形態は、不揮発性メモリを備えるメモリシステムを制御する技術に関する。
近年、不揮発性メモリを備えるメモリシステムが広く普及している。
このようなメモリシステムの1つとして、NAND型フラッシュメモリを備えるソリッドステートドライブ(SSD)が知られている。SSDは、様々なコンピューティングデバイスのメインストレージとして使用されている。
このようなメモリシステムの1つとして、NAND型フラッシュメモリを備えるソリッドステートドライブ(SSD)が知られている。SSDは、様々なコンピューティングデバイスのメインストレージとして使用されている。
General Data Protection Regulation(GDPR)等の個人情報の取り扱いに関する規制が強化される中、メモリシステム内の不揮発性メモリからデータが確実に消去されたことを保証できる機能は重要である。
メモリシステムに消去機能が正しく実装されているかどうかは、メモリシステム(すなわちストレージ装置)が、その認定段階において、不良ブロックを含む全てのブロックのデータダンプを提供する機能を有することで証明できる。メモリシステムを供給する企業は、データダンプを提供することにより、メモリシステムが少なくとも一定レベルの消去機能を有していることを、例えばメモリシステムを利用するクラウドサービス提供企業に対して証明できる。
しかしながら、メモリシステムが実際に利用されている間に、ユーザ側からコマンドで上書きできないデータ領域や、不良ブロック等の消去が困難であるデータ領域に対して、消去動作が実際になされていることを保証することは容易ではない。そのため、消去動作の信頼性を高め、データの漏洩に対するセキュリティを強化できる新たな機能の実現が必要とされる。
実施形態の一つは、データの漏洩に対するセキュリティを強化できるメモリシステム、情報処理装置、および情報処理システムを提供する。
実施形態によれば、メモリシステムは、第1不揮発性メモリと、第2不揮発性メモリと、コントローラとを具備する。第1不揮発性メモリは、複数の記憶素子を含む。第2不揮発性メモリは、各々にデータを1回のみ書き込み可能な複数の記憶素子を含み、第1鍵情報を格納する。コントローラは、情報処理装置に格納された第2鍵情報を受信し、第1鍵情報と第2鍵情報とを用いて第1鍵を生成し、少なくとも第1鍵を用いて第2鍵を生成するように構成される。コントローラは、第1不揮発性メモリに書き込むべきデータを第2鍵で暗号化し、第1不揮発性メモリから読み出したデータを第2鍵で復号するように構成される。
以下、実施の形態について図面を参照して説明する。
(第1実施形態)
まず図1を参照して、第1実施形態に係る情報処理システム1の構成を説明する。情報処理システム1は、ホストデバイス2(以下、ホスト2と称する)と、メモリシステムと、情報処理装置とを含む。
まず図1を参照して、第1実施形態に係る情報処理システム1の構成を説明する。情報処理システム1は、ホストデバイス2(以下、ホスト2と称する)と、メモリシステムと、情報処理装置とを含む。
メモリシステムは、NAND型フラッシュメモリ5のような不揮発性メモリにデータを書き込み、不揮発性メモリからデータを読み出すように構成された半導体ストレージデバイスであり、ストレージデバイスとも称される。この不揮発性メモリは、各々にデータを複数回書き込み可能な複数の記憶素子を含む。メモリシステムは、例えばNAND型フラッシュメモリ5を備えるソリッドステートドライブ(SSD)3として実現されている。以下では、メモリシステムがSSD3として実現される場合について例示するが、メモリシステムはハードディスクドライブ(HDD)として実現されてもよい。
SSD3は、データの漏洩を防止するために、書き込み時にデータを自動的に暗号化する自己暗号化機能を有している。つまり、SSD3は、自己暗号化機能を有する自己暗号化ドライブ(self−encrypting drive:SED)である。SSD3は、例えばトラステッド・コンピューティング・グループ(TCG)の規格に準拠し、TCGの規格で定められた自己暗号化機能を有している。TCGの規格では、例えばデータ暗号化、ストレージの部分領域毎のアクセス制御が規定されている。
また、自己暗号化機能を有するSSD3に対してCryptographic Erase(暗号消去)が要求された場合、データを暗号化するためのデータ暗号鍵が、あるいはデータ暗号鍵を生成(すなわち導出)するための鍵情報が、消去される。これにより、データ暗号鍵を用いて暗号化され、NAND型フラッシュメモリ5に格納された暗号化データを復号できなくなるので、データの漏洩を防止できる。
Cryptographic Eraseでは、NAND型フラッシュメモリ5に格納された暗号化データそのものに対して消去動作を行う必要がなく、暗号化に用いられたデータ暗号鍵または鍵情報を消去して、暗号化データを消去したものとみなすことができる。したがって、Cryptographic Eraseは高い信頼性を有するデータ消去方法であると云える。
ホスト2は、大量且つ多様なデータをSSD3に保存するストレージサーバであってもよいし、パーソナルコンピュータであってもよい。あるいは、ホスト2は、個人情報のような機密にすべき情報を扱う各種の電子機器であってもよい。この電子機器は、例えば、コピー機、車載ドライブレコーダである。
SSD3は、ホスト2のストレージとして使用され得る。SSD3はホスト2に内蔵されてもよいし、ホスト2にケーブルまたはネットワークを介して接続されてもよい。
情報処理装置はSSD3に格納されるデータを保護するための機能を有する。情報処理装置は、例えばマイクロコンピュータとして実現される。以下では、この情報処理装置をセキュアマイコン7とも称する。
セキュアマイコン7はデータ暗号鍵の生成に必要な鍵情報を管理する。データ暗号鍵は、SSD3のNAND型フラッシュメモリ5に書き込まれるべきデータの暗号化と、NAND型フラッシュメモリ5から読み出されたデータの復号とを行うために用いられる。また、鍵情報は、鍵を生成するために用いる情報であってもよいし、鍵そのものであってもよい。
SSD3は、セキュアマイコン7で管理された鍵情報を用いてデータ暗号鍵を生成する。つまり、SSD3はセキュアマイコン7と連携してデータ暗号鍵を生成する。セキュアマイコン7は、SSD3にケーブルまたはネットワークを介して接続される。なお、複数のSSD3が、セキュアマイコン7で管理された鍵情報を用いてデータ暗号鍵を生成してもよい。つまり、セキュアマイコン7は複数のSSD3で用いられる鍵情報を管理し得る。
ホスト2およびセキュアマイコン7とSSD3とを接続するためのインタフェースは、SCSI、Serial Attached SCSI(SAS)、ATA(AT Attachment)、Serial ATA(SATA)、PCI Express(PCIe)(登録商標)、Ethernet(登録商標)、Fibre channel、NVM Express(NVMe)(登録商標)等に準拠する。
SSD3は、メモリコントローラ4およびNAND型フラッシュメモリ5を備える。メモリコントローラ4は、System−on−a−chip(SoC)のような回路によって実現され得る。
SSD3は、揮発性メモリであるランダムアクセスメモリ(RAM)、例えばダイナミックランダムアクセスメモリ(DRAM)6を備えていてもよい。あるいは、スタティックランダムアクセスメモリ(SRAM)のようなRAMがメモリコントローラ4に内蔵されていてもよい。なお、DRAM6が、メモリコントローラ4に内蔵されていてもよい。
DRAM6等のRAMには、例えばNAND型フラッシュメモリ5からロードされるファームウェア(FW)61の格納領域が設けられる。
NAND型フラッシュメモリ5は複数のブロックを含む。各ブロックは複数のページを含む。1つのブロックは最小の消去単位として機能する。ブロックは、「消去ブロック」、または「物理ブロック」と称されることもある。各ページは、同一ワード線に接続された複数のメモリセルを含む。1つのページは、データ書き込み動作およびデータ読み出し動作の単位である。なお、ワード線をデータ書き込み動作およびデータ読み出し動作の単位としてもよい。
各ブロックに対して許容できるプログラム/イレーズサイクル数には上限(最大P/Eサイクル数)がある。あるブロックの1回のP/Eサイクルは、このブロック内のすべてのメモリセルを消去状態にするための消去動作と、このブロックのページそれぞれにデータを書き込む書き込み動作とを含む。
メモリコントローラ4は、ホストインタフェース(ホストI/F)11、CPU12、NAND I/F13、DRAMインタフェース(DRAM I/F)14、暗号回路15、One−Time Programmableメモリ(OTPメモリ)16等を含んでもよい。これらホストI/F11、CPU12、NAND I/F13、DRAM I/F14、暗号回路15、およびOTPメモリ16は、バス10を介して相互接続され得る。
メモリコントローラ4は、Toggle DDR、Open NAND Flash Interface(ONFI)等のインタフェース規格に対応するNAND I/F13を介して、NAND型フラッシュメモリ5に電気的に接続されている。NAND I/F13は、NAND型フラッシュメモリ5を制御するように構成されたNAND制御回路として機能する。
NAND I/F13は、複数のチャネル(Ch)を介して、NAND型フラッシュメモリ5内の複数のNAND型フラッシュメモリチップにそれぞれ接続されていてもよい。複数のNAND型フラッシュメモリチップが並列に駆動されることにより、NAND型フラッシュメモリ5に対するアクセスを広帯域化することができる。
メモリコントローラ4は、NAND型フラッシュメモリ5を制御するように構成されたコントローラとして機能する。
メモリコントローラ4は、NAND型フラッシュメモリ5のデータ管理およびブロック管理を実行するように構成されたフラッシュトランスレーション層(FTL)として機能してもよい。このFTLによって実行されるデータ管理には、(1)論理アドレスそれぞれとNAND型フラッシュメモリ5の物理アドレスそれぞれとの間の対応関係を示すマッピング情報の管理、(2)ページ単位のリード/ライト動作とブロック単位の消去(イレーズ)動作とを隠蔽するための処理、等が含まれる。論理アドレスは、SSD3をアドレス指定するためにホスト2によって使用されるアドレスである。
論理アドレスそれぞれと物理アドレスそれぞれとの間のマッピングの管理は、論理物理アドレス変換テーブルを用いて実行される。メモリコントローラ4は、論理物理アドレス変換テーブルを使用して、論理アドレスそれぞれと物理アドレスそれぞれとの間のマッピングを特定の管理サイズ単位で管理する。ある論理アドレス対応する物理アドレスは、この論理アドレスのデータが書き込まれたNAND型フラッシュメモリ5内の物理記憶位置を示す。論理物理アドレス変換テーブルは、SSD3の電源オン時にNAND型フラッシュメモリ5からDRAM6にロードされてもよい。
1つのページへのデータ書き込みは、1回のP/Eサイクル当たり1回のみ可能である。このため、メモリコントローラ4は、ある論理アドレスに対応する更新データを、この論理アドレスに対応する以前のデータが格納されている物理記憶位置ではなく、別の物理記憶位置に書き込む。そして、メモリコントローラ4は、この論理アドレスをこの別の物理記憶位置に関連付けるように論理物理アドレス変換テーブルを更新することにより、以前のデータを無効化する。
ブロック管理には、不良ブロックの管理、ウェアレベリング、ガベージコレクション、等が含まれる。
ホストI/F11は、SSD3と、SSD3の外部装置であるホスト2およびセキュアマイコン7の各々との通信を行うハードウェアインタフェースである。ホストI/F11は、ホスト2から様々なコマンド、例えば、I/Oコマンド、各種制御コマンドを受信する回路として機能する。I/Oコマンドには、ライトコマンド、リードコマンド、が含まれ得る。制御コマンドには、アンマップコマンド(トリムコマンド)、フォーマットコマンドが含まれ得る。フォーマットコマンドは、SSD3全体をアンマップするためのコマンドである。ホストI/F11は、コマンドに応じた応答やデータをホスト2に送信する送信回路としても機能する。
ホストI/F11はさらに、セキュアマイコン7との間で様々な情報を送受信する送受信回路として機能する。セキュアマイコン7から受信する情報には、例えばデータ暗号鍵を生成するための鍵情報が含まれる。
DRAM I/F14は、DRAM6のアクセスを制御するように構成されたDRAM制御回路として機能する。DRAM6の記憶領域は、FW61を格納するための領域や、リード/ライトバッファ等として利用されるバッファ領域に割り当てられる。
暗号回路15はデータの暗号化および復号を行う。暗号回路15は、例えば、NAND I/F13を介してNAND型フラッシュメモリ5に書き込まれるべきデータを暗号化し、NANDインタフェース13を介してNAND型フラッシュメモリ5から読み出されたデータを復号する。暗号回路15は、例えばCPU12によって設定されるデータ暗号鍵を用いて、データの暗号化および復号を行う。
データ暗号鍵は、暗号回路15内の、例えばレジスタに格納される。したがって、暗号回路15に設定されたデータ暗号鍵は、SSD3への電力供給が遮断されたことに応じて消失する揮発性の鍵である。
OTPメモリ16は、各々に1回データを書き込み可能な複数の記憶素子(すなわちメモリセル)を含む。OTPメモリ16内の各記憶素子は、データを一度だけ書き込み可能な不可逆性の記憶素子である。OTPメモリ16として、例えば電気ヒューズ(e−Fuse)が用いられるが、これに限定されない。OTPメモリ16は、データ暗号鍵を生成するためのOTP鍵情報161を格納している。
CPU12は、ホストI/F11、NAND I/F13、およびDRAM I/F14を制御するように構成されたプロセッサである。CPU12は、DRAM6にロードされたFW61実行することによって様々な処理を行う。つまり、FW61はCPU12の動作を制御するための制御プログラムである。CPU12は、上述のFTLの処理に加え、ホスト2からの様々なコマンドを処理するためのコマンド処理等を実行することができる。なお、FTL処理およびコマンド処理の一部または全部は、メモリコントローラ4内の専用ハードウェアによって実行されてもよい。
CPU12は暗号回路15に設定するデータ暗号鍵を生成するために、例えば、セッション鍵生成部121、鍵情報受信部122、および暗号鍵生成部123として機能し得る。CPU12は、例えばFW61を実行することにより、これら各部として機能する。
セッション鍵生成部121は、メモリコントローラ4とセキュアマイコン7との間の接続において、セッションが確立された場合に、セッション鍵の生成および交換を行う。セッション鍵生成部121は、セッションが確立される毎にセッション鍵の生成および交換を行ってもよいし、メモリコントローラ4とセキュアマイコン7との間で最初にセッションが確立された際に1度だけ、セッション鍵の生成および交換を行ってもよい。セッション鍵は共通鍵として利用され得る。
鍵情報受信部122はセキュアマイコン7から、データ暗号鍵を生成するために用いる鍵情報を受信する。この鍵情報は、例えばセキュアマイコン7内に格納されたルート鍵情報221である。また、データ暗号鍵は、暗号回路15がデータの暗号化および復号を行う際に用いる暗号鍵である。
暗号鍵生成部123は、セキュアマイコン7から受信したルート鍵情報221と、OTPメモリ16に格納されたOTP鍵情報161とを用いて、ルート鍵を生成する。そして、暗号鍵生成部123はルート鍵を用いてデータ暗号鍵を生成する。つまり、データ暗号鍵は、ルート鍵情報221とOTP鍵情報161とから間接的に導出され得る。
暗号鍵生成部123は、生成されたデータ暗号鍵を暗号回路15に設定する。上述したように、暗号回路15はNAND型フラッシュメモリ5に書き込まれるべきデータをデータ暗号鍵で暗号化し、NAND型フラッシュメモリ5から読み出したデータをデータ暗号鍵で復号する。
なお、鍵情報受信部122はセキュアマイコン7から、データ暗号鍵を生成するために用いる情報として、ルート鍵情報221ではなく、暗号化されたルート鍵情報221、ルート鍵、および暗号化されたルート鍵のいずれか1つを受信してもよい。
セキュアマイコン7から共通鍵で暗号化されたルート鍵情報221を受信した場合、鍵情報受信部122は、その暗号化されたルート鍵情報221を共通鍵で復号する。あるいは、セキュアマイコン7から公開鍵で暗号化されたルート鍵情報221を受信した場合、鍵情報受信部122は、その暗号化されたルート鍵情報221を秘密鍵で復号する。暗号鍵生成部123は、復号されたルート鍵情報221と、OTPメモリ16に格納されたOTP鍵情報161とを用いて、ルート鍵を生成する。そして、暗号鍵生成部123はルート鍵を用いてデータ暗号鍵を生成する。
また、セキュアマイコン7からルート鍵が受信された場合、暗号鍵生成部123は、そのルート鍵を用いてデータ暗号鍵を生成する。
さらに、セキュアマイコン7から共通鍵で暗号化されたルート鍵を受信した場合、鍵情報受信部122は、その暗号化されたルート鍵を共通鍵で復号する。あるいは、セキュアマイコン7から公開鍵で暗号化されたルート鍵を受信した場合、鍵情報受信部122は、その暗号化されたルート鍵を秘密鍵で復号する。暗号鍵生成部123は、復号されたルート鍵を用いてデータ暗号鍵を生成する。
データ暗号鍵を生成するより詳細な例については、図2から図13を参照して後述する。
セキュアマイコン7は、CPU21、NOR型フラッシュメモリ22、I/F23等を備える。これらCPU21、NOR型フラッシュメモリ22、およびI/F23は、バス20を介して相互接続されていてもよい。
CPU21はセキュアマイコン7内の各部の動作を制御するように構成されたプロセッサである。CPU21は、例えばNOR型フラッシュメモリ22に格納されている制御プログラムを実行することによって様々な処理を行う。この制御プログラムはFWとも称される。CPU21は、SSD3で用いられるデータ暗号鍵の生成に必要な鍵情報を管理するための処理を実行できる。CPU21の動作は、CPU21によって実行されるFWによって制御される。なお、鍵情報の管理のための処理の一部または全部は、セキュアマイコン7内の専用のハードウェア(例えば処理回路)によって実行されてもよい。
NOR型フラッシュメモリ22は、各々にデータを複数回書き込み可能な複数の記憶素子を含む。NOR型フラッシュメモリ22には、SSD3で用いられるデータ暗号鍵の生成に必要な鍵情報(例えばルート鍵情報221)が格納される。なお、NOR型フラッシュメモリ22の代わりに、各々にデータを複数回書き込み可能な複数の記憶素子を含む別の種類の不揮発性メモリが用いられてもよい。
I/F23は、セキュアマイコン7と、セキュアマイコン7の外部のホスト2およびSSD3の各々との通信を行うハードウェアインタフェースである。I/F23は、ホスト2およびSSD3の各々との間で、様々なコマンドやデータを送受信する回路として機能する。
ホスト2から受信されるコマンドには、鍵情報消去コマンドが含まれる。鍵情報消去コマンドは、Cryptographic Eraseのためのコマンドの1つであり、TCG規格やその他インタフェース規格に定義されたデータ消去コマンドに準拠し得る。鍵情報消去コマンドは、SSD3内の暗号回路15に設定されるデータ暗号鍵を生成するための鍵情報(例えばルート鍵情報221)を、消去または変更するためのコマンドである。
鍵情報が消去されたことにより、SSD3のメモリコントローラ4はデータ暗号鍵を生成できなくなる。そのため、データ暗号鍵を用いて暗号化され、SSD3に格納された暗号化データを復号できなくなるので、データの漏洩を防止できる。つまり、鍵情報消去コマンドに応じてデータ暗号鍵を生成するための鍵情報を消去または変更することにより、SSD3に格納された暗号化データを消去したものとみなすCryptographic Eraseを実現できる。
CPU21は、SSD3のメモリコントローラ4がデータ暗号鍵を生成するために用いる鍵情報を管理するために、セッション鍵生成部211、鍵情報送信部212、鍵情報消去部213、および証明書発行部214として機能し得る。
セッション鍵生成部211は、セキュアマイコン7とメモリコントローラ4との間のセッションが確立された場合に、セッション鍵の生成および交換を行う。セッション鍵生成部211は、セッションが確立される毎にセッション鍵の生成および交換を行ってもよいし、セキュアマイコン7とメモリコントローラ4との間で最初にセッションが確立された際に1度だけ、セッション鍵の生成および交換を行ってもよい。セッション鍵は共通鍵として利用され得る。
鍵情報送信部212は、データ暗号鍵を生成するために用いられるルート鍵情報221を、NOR型フラッシュメモリ22から読み出し、メモリコントローラ4に送信する。なお、鍵情報送信部212は、ルート鍵情報221を暗号化してメモリコントローラ4に送信してもよい。
鍵情報消去部213は、ホスト2から鍵情報消去コマンドを受信したことに応じて、NOR型フラッシュメモリ22に格納されているルート鍵情報221を消去するための暗号消去処理を行う。鍵情報消去部213は、ホスト2から直接、鍵情報消去コマンドを受信してもよいし、ホスト2からメモリコントローラ4を介して鍵情報消去コマンドを受信してもよい。
暗号消去処理では、ルート鍵情報221が消去され、新たなルート鍵情報221に更新される。鍵情報消去部213は、例えばルート鍵情報221が格納されたNOR型フラッシュメモリ22内の記憶領域に乱数を書き込む(上書きする)ことによって、NOR型フラッシュメモリ22に格納されているルート鍵情報221を消去する。なお、この書き込まれた乱数が、新たなルート鍵情報221として管理されてもよい。
証明書発行部214は、鍵情報消去部213によって行われた暗号消去処理において、SSD3のNAND型フラッシュメモリ5に格納されたデータが消去されたことと、そのデータ消去が確実になされたこととを証明する電子証明書を発行する。証明書発行部214は、暗号消去処理を実行した際のログデータ(以下、消去ログとも称する)に対して、秘密鍵を用いてデジタル署名を付与して、電子証明書を発行する。
なお、セキュアマイコン7では、データ暗号鍵を生成するために用いられる情報として、ルート鍵情報221の代わりに、ルート鍵が管理されてもよい。その場合、鍵情報送信部212は、ルート鍵を、あるいは暗号化されたルート鍵を、メモリコントローラ4に送信する。また、鍵情報消去部213は、ホスト2から鍵情報消去コマンドを受信したことに応じて、NOR型フラッシュメモリ22に格納されているルート鍵を消去する。
以上の構成により、情報処理システム1においてデータの漏洩に対するセキュリティを強化できる。SSD3は、例えば、セキュアマイコン7から受信したルート鍵情報221と、OTPメモリ16に格納されたOTP鍵情報161とを用いてルート鍵301を生成し、ルート鍵301を用いてデータ暗号鍵を生成する。この場合、セキュアマイコン7に格納されたルート鍵情報221を消去することにより、SSD3はデータ暗号鍵を生成できなくなる。したがって、データ暗号鍵を用いて暗号化され、NAND型フラッシュメモリ5に格納された暗号化データを復号できないようにするデータ消去(すなわちCryptographic Erase)を実現できる。
ところでSSD3では、例えばOTP鍵情報161を用いて直接または間接に導出されるデータ暗号鍵が用いられる場合がある。この場合、OTP鍵情報161を用いて直接または間接にデータ暗号鍵を導くための情報がNAND型フラッシュメモリ5に格納されている。この情報は、例えば暗号化されたデータ暗号鍵であり、OTP鍵情報161を用いた復号により、データ暗号鍵が導出される。
このNAND型フラッシュメモリ5に格納された情報を消去することによって、Cryptographic Eraseを実現することも可能であるが、NAND型フラッシュメモリ5に対する物理アクセスによってデータの漏洩や改ざんが起きることも想定される。そのため、このようなSSD3ではより信頼度が高いCryptographic Eraseを実現するために、OTP鍵情報161が消去される。
OTP鍵情報161が消去された場合にも、SSD3ではデータ暗号鍵を生成できないので、NAND型フラッシュメモリ5に格納された暗号化データを復号できなくすることによるデータ消去を実現できる。
しかし、OTPメモリ16に格納されたOTP鍵情報161を消去した場合、SSD3を再利用するためには、新たなOTP鍵情報161をOTPメモリ16に格納する必要がある。これは、OTPメモリ16内の各記憶素子が、データを一度だけ書き込み可能な不可逆性の記憶素子であるためである。そのため、OTP鍵情報161を消去する方法を用いる場合には、メモリコントローラ4が、新たなOTP鍵情報161を格納するための記憶素子(記憶領域)を備えている必要がある。
OTPメモリ16の記憶素子を大量にメモリコントローラ4内に実装することは、メモリコントローラ4のコスト増を招く。そのため、OTP鍵情報161を消去する方法を、Cryptographic Eraseが頻繁に要求されるアプリケーションにおいて利用されるSSD3に適用することは難しい。また、特定分野のアプリケーションにも対応できるように、メモリコントローラ4の共通設計としてOTPメモリ16の多数の記憶素子(例えば多数のe−Fuse素子)を設けることも難しい。
本実施形態では、上述したように、セキュアマイコン7に格納されたルート鍵情報221を消去し、OTPメモリ16に格納されたOTP鍵情報161を消去しない。そのため、Cryptographic Eraseが行われる毎に新たなOTP鍵情報161を書き込むための大量のOTPメモリ16の記憶素子を、メモリコントローラ4に設ける必要がない。
さらに、工場のような環境ではなく、SSD3が実際に使用されるユーザ環境で、OTPメモリ16に対する確実な消去動作(例えばe−Fuse素子の切断)を保証することは、印加される電圧の安定性等から難しいことがある。これに対して、セキュアマイコン7内のNOR型フラッシュメモリ22に対する消去動作は、ユーザ環境であっても信頼性が高い。
本実施形態のSSD3は、OTPメモリ16に格納されたOTP鍵情報161だけでなく、セキュアマイコン7に格納されたルート鍵情報221も用いて、データ暗号鍵を生成する。そのため、セキュアマイコン7に格納されたルート鍵情報221が消去されるならば、OTPメモリ16に対する信頼性の低い消去動作が行われなくてもよい。したがって、鍵情報を消去することによるSSD3のCryptographic Eraseの信頼性を高めることができ、データの漏洩に対するセキュリティを強化できる。
また、本実施形態のセキュアマイコン7では、鍵情報消去コマンドに応じてルート鍵情報221が消去される際に、新たなルート鍵情報221が生成されてもよい。つまり、鍵情報消去コマンドに応じて、ルート鍵情報221が更新されてもよい。セキュアマイコン7では、例えばNOR型フラッシュメモリ22が利用可能である間、何度でもルート鍵情報221を更新できる。したがって、ルート鍵情報221を更新できる間、何度でもSSD3のデータ消去を行って、SSD3を再利用できる。これにより、確実、且つ多くの回数のデータ消去に対応することが求められるアプリケーションで利用されるSSD3において、メモリコントローラ4に大量のOTPメモリ16を設けるためのコストを低減できる。
図2から図13を参照して、SSD3のメモリコントローラ4がセキュアマイコン7から受信した鍵情報を用いてデータ暗号鍵を生成する幾つかの例を具体的に説明する。
(データ暗号鍵生成の第1の例)
図2はメモリコントローラ4によってデータ暗号鍵302が生成される第1の例を示す。この第1の例では、セキュアマイコン7からメモリコントローラ4に送信されるルート鍵情報221の機密性および完全性を考慮しない場合を例示する。第1の例では、OTP鍵情報161がメモリコントローラ4内のOTPメモリ16に秘匿されているので、ルート鍵情報221の機密性および完全性については考慮しないものとしている。
図2はメモリコントローラ4によってデータ暗号鍵302が生成される第1の例を示す。この第1の例では、セキュアマイコン7からメモリコントローラ4に送信されるルート鍵情報221の機密性および完全性を考慮しない場合を例示する。第1の例では、OTP鍵情報161がメモリコントローラ4内のOTPメモリ16に秘匿されているので、ルート鍵情報221の機密性および完全性については考慮しないものとしている。
セキュアマイコン7の鍵情報送信部212は、NOR型フラッシュメモリ22からルート鍵情報221を読み出す。鍵情報送信部212は、読み出したルート鍵情報221をそのままメモリコントローラ4に送信する。
メモリコントローラ4の鍵情報受信部122は、セキュアマイコン7からルート鍵情報221を受信する。暗号鍵生成部123は、受信したルート鍵情報221と、OTPメモリ16から読み出したOTP鍵情報161とを用いて、ルート鍵301を生成する。暗号鍵生成部123は、例えばNational Institute of Standards and Technology Special Publication(NIST SP) 800−133 “Recommendation for Cryptographic Key Generation”や、NIST SP 800−108 “Recommendation for Key Derivation Using Pseudorandom Functions”に記載された鍵導出方法を用いて、ルート鍵301を生成する。
NIST SP 800−133に記載された鍵導出方法を用いる場合、暗号鍵生成部123は、ルート鍵情報221とOTP鍵情報161との排他的論理和(XOR)演算や、OTP鍵情報161を用いた暗号処理によるルート鍵情報221の変換により、ルート鍵301を生成する。また、NIST SP 800−108に記載された鍵導出方法を用いる場合、暗号鍵生成部123はルート鍵情報221をラベル(すなわち入力データ)とする鍵導出関数により、ルート鍵301を生成してもよい。
暗号鍵生成部123は、生成したルート鍵301を用いて、間接または直接に導かれるデータ暗号鍵302を生成する。暗号鍵生成部123は、ルート鍵301を用いた特定の演算処理によりデータ暗号鍵302を生成する。より具体的には、暗号鍵生成部123は、例えばNAND型フラッシュメモリ5に格納された、暗号化されたデータ暗号鍵302を、ルート鍵301で復号することにより、データ暗号鍵302を生成する。
暗号鍵生成部123は、生成したデータ暗号鍵302を暗号回路15に設定する。暗号鍵生成部123は、生成したデータ暗号鍵302を、例えば暗号回路15内のレジスタに記憶させる。
図3のフローチャートは、セキュアマイコン7において実行される鍵情報送信処理の手順の第1の例を示す。
まず、セキュアマイコン7はSSD3のメモリコントローラ4とのセッションを確立したか否かを判定する(ステップS11)。セッションを確立する際には、メモリコントローラ4との間でセッション鍵(共通鍵)の生成と交換が行われてもよい。このセッション鍵の生成や共有/交換のやり方については、SP800−56A、SP800−56B、SP800−135などに準拠した形で実施してもよい。ここで利用される公開鍵、共通鍵、および暗号アルゴリズム用のパラメータなどは、セキュアマイコン7とメモリコントローラ4とで事前に共有あるいは(公開鍵暗号の場合は)配布などされているとする。メモリコントローラ4とのセッションを確立していない場合(ステップS11のNO)、ステップS11に戻り、メモリコントローラ4とのセッションを確立したか否かが再度判定される。
メモリコントローラ4とのセッションを確立した場合(ステップS11のYES)、セキュアマイコン7はNOR型フラッシュメモリ22に格納されたルート鍵情報221をメモリコントローラ4に送信し(ステップS12)、鍵情報送信処理を終了する。
図4のフローチャートは、メモリコントローラ4において実行される暗号鍵設定処理の手順の第1の例を示す。
まず、メモリコントローラ4はセキュアマイコン7とのセッションを確立したか否かを判定する(ステップS21)。セキュアマイコン7とのセッションを確立していない場合(ステップS21のNO)、ステップS21に戻り、セキュアマイコン7とのセッションを確立したか否かが再度判定される。
セキュアマイコン7とのセッションを確立した場合(ステップS21のYES)、メモリコントローラ4はセキュアマイコン7からルート鍵情報221を受信したか否かを判定する(ステップS22)。セキュアマイコン7からルート鍵情報221を受信していない場合(ステップS22のNO)、ステップS22に戻り、セキュアマイコン7からルート鍵情報221を受信したか否かが再度判定される。
セキュアマイコン7からルート鍵情報221を受信した場合(ステップS22のYES)、メモリコントローラ4は、受信したルート鍵情報221と、OTPメモリ16に格納されたOTP鍵情報161とを用いて、ルート鍵301を生成する(ステップS23)。メモリコントローラ4はルート鍵301を用いてデータ暗号鍵302を生成する(ステップS24)。そして、メモリコントローラ4は、このデータ暗号鍵302を暗号回路15に設定し(ステップS25)、暗号鍵設定処理を終了する。
以上の図2から図4を参照して説明した構成および手順により、SSD3の暗号回路15にデータ暗号鍵302が設定される。したがって、暗号回路15はデータ暗号鍵302を用いて、NAND型フラッシュメモリ5に書き込まれるべきデータを暗号化できると共に、NAND型フラッシュメモリ5から読み出されたデータを復号できる。
(データ暗号鍵生成の第2の例)
図5はメモリコントローラ4によってデータ暗号鍵302が生成される第2の例を示す。この第2の例では、セキュアマイコン7からメモリコントローラ4に送信されるルート鍵情報221の機密性および完全性を保証するために、ルート鍵情報221が共通鍵暗号方式で伝送される場合を例示する。
図5はメモリコントローラ4によってデータ暗号鍵302が生成される第2の例を示す。この第2の例では、セキュアマイコン7からメモリコントローラ4に送信されるルート鍵情報221の機密性および完全性を保証するために、ルート鍵情報221が共通鍵暗号方式で伝送される場合を例示する。
セキュアマイコン7の鍵情報送信部212は、NOR型フラッシュメモリ22からルート鍵情報221を読み出す。鍵情報送信部212は共通鍵303でルート鍵情報221を暗号化して、暗号化ルート鍵情報304を取得する。そして、鍵情報送信部212は暗号化ルート鍵情報304をメモリコントローラ4に送信する。
共通鍵303は、例えばセキュアマイコン7の出荷前にセキュアマイコン7内に格納された鍵であり得る。あるいは、メモリコントローラ4とのセッションを確立した際に共有される通信用のセッション鍵が共通鍵303として用いられてもよい。セキュアマイコン7とメモリコントローラ4との間で共通鍵を共有するための方法としては、NIST SP 800−38F “Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping”に記載された方法が用いられ得る。
メモリコントローラ4の鍵情報受信部122は、セキュアマイコン7から暗号化ルート鍵情報304を受信する。鍵情報受信部122は受信した暗号化ルート鍵情報304を共通鍵305で復号して、ルート鍵情報221を取得する。共通鍵305は、セキュアマイコン7で用いられている共通鍵303と同一の鍵である。セキュアマイコン7で用いられている共通鍵303と同様に、共通鍵305は、SSD3の出荷前にSSD3内に格納された鍵であってもよいし、セキュアマイコン7とのセッションを確立した際に共有されるセッション鍵であってもよい。
暗号鍵生成部123は、復号により得られたルート鍵情報221と、OTPメモリ16から読み出したOTP鍵情報161とを用いて、ルート鍵301を生成する。ルート鍵301を生成するための鍵導出方法については上述した通りである。
暗号鍵生成部123は、生成したルート鍵301から間接または直接に導かれるデータ暗号鍵302を生成する。そして、暗号鍵生成部123は、生成したデータ暗号鍵302を暗号回路15に設定する。
図6のフローチャートは、セキュアマイコン7において実行される鍵情報送信処理の手順の第2の例を示す。ここでは、メモリコントローラ4とのセッションを確立した際に生成および交換されるセッション鍵が、共通鍵303として用いられる場合を例示する。
まず、セキュアマイコン7はSSD3のメモリコントローラ4とのセッションを確立したか否かを判定する(ステップS31)。メモリコントローラ4とのセッションを確立していない場合(ステップS31のNO)、ステップS31に戻り、メモリコントローラ4とのセッションを確立したか否かが再度判定される。
メモリコントローラ4とのセッションを確立した場合(ステップS31のYES)、セキュアマイコン7はメモリコントローラ4との間でセッション鍵の生成および交換を行う(ステップS32)。これにより、セキュアマイコン7とメモリコントローラ4との間で共通鍵303,305として用いられるセッション鍵が共有される。セキュアマイコン7は共通鍵303(すなわちセッション鍵)で、NOR型フラッシュメモリ22から読み出されたルート鍵情報221を暗号化して、暗号化ルート鍵情報304を得る(ステップS33)。そして、セキュアマイコン7は暗号化ルート鍵情報304をメモリコントローラ4に送信し(ステップS34)、鍵情報送信処理を終了する。
図7のフローチャートは、メモリコントローラ4において実行される暗号鍵設定処理の手順の第2の例を示す。ここでは、メモリコントローラ4とのセッションを確立した際に生成および交換されるセッション鍵が、共通鍵305として用いられる場合を例示する。
まず、メモリコントローラ4はセキュアマイコン7とのセッションを確立したか否かを判定する(ステップS41)。セキュアマイコン7とのセッションを確立していない場合(ステップS41のNO)、ステップS41に戻り、セキュアマイコン7とのセッションを確立したか否かが再度判定される。
セキュアマイコン7とのセッションを確立した場合(ステップS41のYES)、メモリコントローラ4はセキュアマイコン7との間でセッション鍵の生成および交換を行う(ステップS42)。これにより、メモリコントローラ4とセキュアマイコン7との間で共通鍵303,305として用いられるセッション鍵が共有される。
メモリコントローラ4はセキュアマイコン7から暗号化ルート鍵情報304を受信したか否かを判定する(ステップS43)。暗号化ルート鍵情報304を受信していない場合(ステップS43のNO)、ステップS43に戻り、暗号化ルート鍵情報304を受信したか否かが再度判定される。
暗号化ルート鍵情報304を受信した場合(ステップS43のYES)、メモリコントローラ4は共通鍵305(すなわちセッション鍵)で、受信した暗号化ルート鍵情報304を復号して、ルート鍵情報221を得る(ステップS44)。なお、暗号化ルート鍵情報304が共通鍵303で暗号化されたものでないならば、共通鍵305を用いた復号でルート鍵情報221を得ることはできないので、暗号鍵設定処理が終了する。共通鍵305を用いた暗号化ルート鍵情報304の復号結果は、例えばCyclic Redundancy Check(CRC)符号を含む。メモリコントローラ4は、共通鍵305を用いた暗号化ルート鍵情報304の復号結果として、ルート鍵情報221が得られたかどうかを、CRC符号を用いて検証できる。
あるいは、暗号化ルート鍵情報304が、NIST SP 800−38Fに準拠した共通鍵303で暗号化されたものである場合、セキュアマイコン7は、その暗号化の際にチェック用のデータを併せて生成する。セキュアマイコン7は、暗号化ルート鍵情報304と共に、生成したチェック用のデータをメモリコントローラ4に送信する。メモリコントローラ4は、共通鍵305を用いた暗号化ルート鍵情報304の復号結果として、ルート鍵情報221が得られたかどうかを、このチェック用のデータを用いて検証できる。
メモリコントローラ4は、取得したルート鍵情報221と、OTPメモリ16に格納されたOTP鍵情報161とを用いて、ルート鍵301を生成する(ステップS45)。以降のステップS46およびステップS47の手順は、図4のフローチャートを参照して上述したステップS24およびステップS25の手順とそれぞれ同様である。
なお、共通鍵305として用いられるセッション鍵の生成および交換は、SSD3の起動時間を延ばす要因となる。そのため、メモリコントローラ4は、受信したセッション鍵共通鍵305を、OTP鍵情報161を用いて暗号化した暗号化セッション鍵を、NAND型フラッシュメモリ5に保存しておいてもよい。この場合、メモリコントローラ4は、保存した暗号化セッション鍵をOTP鍵情報161を用いて復号し、セキュアマイコン7から受信した暗号化ルート鍵情報304をセッション鍵共通鍵305を用いて復号し、ルート鍵301を生成できる。
以上の図5から図7を参照して説明した構成および手順により、SSD3の暗号回路15にデータ暗号鍵302が設定される。したがって、暗号回路15はデータ暗号鍵302を用いて、NAND型フラッシュメモリ5に書き込まれるべきデータを暗号化できると共に、NAND型フラッシュメモリ5から読み出されたデータを復号できる。
(データ暗号鍵生成の第3の例)
図8はメモリコントローラ4によってデータ暗号鍵302が生成される第3の例を示す。この第3の例では、セキュアマイコン7からメモリコントローラ4に送信されるルート鍵情報221の機密性および完全性を保証するために、ルート鍵情報221が公開鍵暗号方式(例えばRSA)で伝送される場合を例示する。
図8はメモリコントローラ4によってデータ暗号鍵302が生成される第3の例を示す。この第3の例では、セキュアマイコン7からメモリコントローラ4に送信されるルート鍵情報221の機密性および完全性を保証するために、ルート鍵情報221が公開鍵暗号方式(例えばRSA)で伝送される場合を例示する。
セキュアマイコン7の鍵情報送信部212は、NOR型フラッシュメモリ22からルート鍵情報221を読み出す。鍵情報送信部212は公開鍵306でルート鍵情報221を暗号化して、暗号化ルート鍵情報308を取得する。公開鍵306は、例えばRSA公開鍵である。公開鍵306は、セキュアマイコン7の出荷前にセキュアマイコン7内に格納されるか、メモリコントローラ4から受信され得る。鍵情報送信部212は、暗号化ルート鍵情報308をメモリコントローラ4に送信する。
メモリコントローラ4の鍵情報受信部122は、セキュアマイコン7から暗号化ルート鍵情報308を受信する。鍵情報受信部122は受信した暗号化ルート鍵情報304を、公開鍵306に対応する秘密鍵307で復号して、ルート鍵情報221を取得する。秘密鍵307は、例えばRSA秘密鍵である。秘密鍵307は、SSD3の出荷前にSSD3内に格納されるか、あるいはメモリコントローラ4によって生成され得る。
メモリコントローラ4の暗号鍵生成部123は、復号により得られたルート鍵情報221と、OTPメモリ16から読み出したOTP鍵情報161とを用いて、ルート鍵301を生成する。ルート鍵301を生成するための鍵導出方法については上述した通りである。
暗号鍵生成部123は、生成したルート鍵301から間接または直接に導かれるデータ暗号鍵302を生成する。そして、暗号鍵生成部123は、生成したデータ暗号鍵302を暗号回路15に設定する。
図9のフローチャートは、セキュアマイコン7において実行される鍵情報送信処理の手順の第3の例を示す。
まず、セキュアマイコン7はSSD3のメモリコントローラ4とのセッションを確立したか否かを判定する(ステップS51)。メモリコントローラ4とのセッションを確立していない場合(ステップS51のNO)、ステップS51に戻り、メモリコントローラ4とのセッションを確立したか否かが再度判定される。
メモリコントローラ4とのセッションを確立した場合(ステップS51のYES)、セキュアマイコン7は公開鍵306で、NOR型フラッシュメモリ22に格納されたルート鍵情報221を暗号化して、暗号化ルート鍵情報308を得る(ステップS52)。そして、セキュアマイコン7は暗号化ルート鍵情報308をメモリコントローラ4に送信し(ステップS53)、鍵情報送信処理を終了する。
図10のフローチャートは、メモリコントローラ4において実行される暗号鍵設定処理の手順の第3の例を示す。
まず、メモリコントローラ4はセキュアマイコン7とのセッションを確立したか否かを判定する(ステップS61)。セキュアマイコン7とのセッションを確立していない場合(ステップS61のNO)、ステップS61に戻り、セキュアマイコン7とのセッションを確立したか否かが再度判定される。
セキュアマイコン7とのセッションを確立した場合(ステップS61のYES)、メモリコントローラ4はセキュアマイコン7から暗号化ルート鍵情報308を受信したか否かを判定する(ステップS62)。暗号化ルート鍵情報308を受信していない場合(ステップS62のNO)、ステップS62に戻り、暗号化ルート鍵情報308を受信したか否かが再度判定される。
暗号化ルート鍵情報308を受信した場合(ステップS62のYES)、メモリコントローラ4は秘密鍵307で、受信した暗号化ルート鍵情報308を復号して、ルート鍵情報221を得る(ステップS63)。なお、暗号化ルート鍵情報308が秘密鍵307に対応する公開鍵306で暗号化されていないならば、秘密鍵307を用いた復号でルート鍵情報221を得ることはできないので、暗号鍵設定処理が終了する。秘密鍵307を用いた暗号化ルート鍵情報308の復号結果は、例えばCRC符号を含む。メモリコントローラ4は、秘密鍵307を用いた暗号化ルート鍵情報308の復号結果として、ルート鍵情報221が得られたかどうかを、CRC符号を用いて検証できる。
メモリコントローラ4は、取得したルート鍵情報221と、OTPメモリ16に格納されたOTP鍵情報161とを用いて、ルート鍵301を生成する(ステップS64)。以降のステップS65およびステップS66の手順は、図4のフローチャートを参照して上述したステップS24およびステップS25の手順とそれぞれ同様である。
以上の図8から図10を参照して説明した構成および手順により、SSD3の暗号回路15にデータ暗号鍵302が設定される。したがって、暗号回路15はデータ暗号鍵302を用いて、NAND型フラッシュメモリ5に書き込まれるべきデータを暗号化できると共に、NAND型フラッシュメモリ5から読み出されたデータを復号できる。
(データ暗号鍵生成の第4の例)
図11はメモリコントローラ4によってデータ暗号鍵302が生成される第4の例を示す。この第4の例では、セキュアマイコン7のNOR型フラッシュメモリ22内にルート鍵情報221の代わりにルート鍵301が格納され、セキュアマイコン7からメモリコントローラ4にルート鍵301が共通鍵暗号方式で伝送される場合を例示する。SP800−38Fに準拠するなどの共通鍵暗号方式での伝送により、ルート鍵301の機密性および完全性が保証される。
図11はメモリコントローラ4によってデータ暗号鍵302が生成される第4の例を示す。この第4の例では、セキュアマイコン7のNOR型フラッシュメモリ22内にルート鍵情報221の代わりにルート鍵301が格納され、セキュアマイコン7からメモリコントローラ4にルート鍵301が共通鍵暗号方式で伝送される場合を例示する。SP800−38Fに準拠するなどの共通鍵暗号方式での伝送により、ルート鍵301の機密性および完全性が保証される。
セキュアマイコン7の鍵情報送信部212は、NOR型フラッシュメモリ22からルート鍵301を読み出す。鍵情報送信部212は共通鍵303でルート鍵301を暗号化して、暗号化ルート鍵310を取得する。セキュアマイコン7とメモリコントローラ4とで共有される共通鍵303,305については、データ暗号鍵生成の第2の例において上述した通りである。共通鍵303,305は、ルート鍵301を暗号化し、復号するためのルート鍵暗号鍵とも称される。鍵情報送信部212は暗号化ルート鍵310をメモリコントローラ4に送信する。
メモリコントローラ4の鍵情報受信部122は、セキュアマイコン7から暗号化ルート鍵310を受信する。鍵情報受信部122は受信した暗号化ルート鍵310を共通鍵305で復号して、ルート鍵301を取得する。
暗号鍵生成部123は、復号により得られたルート鍵301から間接または直接に導かれるデータ暗号鍵302を生成する。そして、暗号鍵生成部123は、生成したデータ暗号鍵302を暗号回路15に設定する。
ルート鍵301を共通鍵暗号方式で伝送する場合には、ルート鍵情報221またはルート鍵301を公開鍵暗号方式で伝送する場合よりも、メモリコントローラ4においてルート鍵301を生成するための計算負荷が低減され、処理時間を短縮できる。これは一般に、あるデータを共通鍵で暗号化して共通鍵で復号する処理が、そのデータを公開鍵で暗号化して秘密鍵で復号する処理よりも、計算負荷が低く、処理時間が短いためである。
図12のフローチャートは、セキュアマイコン7において実行される鍵情報送信処理の手順の第4の例を示す。ここでは、メモリコントローラ4とのセッションを確立する際に生成および交換されるセッション鍵が、共通鍵303として用いられる場合を例示する。
ステップS71およびステップS72の手順は、図6のフローチャートを参照して上述したステップS31およびステップS32の手順とそれぞれ同様である。これにより、セキュアマイコン7は共通鍵303として用いられるセッション鍵を取得する。
次いで、セキュアマイコン7は共通鍵303で、NOR型フラッシュメモリ22に格納されたルート鍵301を暗号化して、暗号化ルート鍵310を得る(ステップS73)。そして、セキュアマイコン7は暗号化ルート鍵310をメモリコントローラ4に送信し(ステップS74)、鍵情報送信処理を終了する。
図12のフローチャートは、メモリコントローラ4において実行される暗号鍵設定処理の手順の第4の例を示す。ここでは、メモリコントローラ4とのセッションを確立した際に生成および交換されるセッション鍵が、共通鍵305として用いられる場合を例示する。
ステップS81およびステップS82の手順は、図7のフローチャートを参照して上述したステップS41およびステップS42の手順とそれぞれ同様である。これにより、メモリコントローラ4は共通鍵305として用いられるセッション鍵を取得する。
次いで、メモリコントローラ4はセキュアマイコン7から暗号化ルート鍵310を受信したか否かを判定する(ステップS83)。暗号化ルート鍵310を受信していない場合(ステップS83のNO)、ステップS83に戻り、暗号化ルート鍵310を受信したか否かが再度判定される。
暗号化ルート鍵310を受信した場合(ステップS83のYES)、メモリコントローラ4は共通鍵305で、受信した暗号化ルート鍵310を復号して、ルート鍵301を得る(ステップS84)。なお、暗号化ルート鍵310が共通鍵303で暗号化されたものでないならば、共通鍵305を用いた復号でルート鍵301を得ることはできないので、暗号鍵設定処理が終了する。共通鍵305を用いた暗号化ルート鍵310の復号結果は、例えばCRC符号を含む。メモリコントローラ4は、共通鍵305を用いた暗号化ルート鍵310の復号結果として、ルート鍵301が得られたかどうかを、CRC符号を用いて検証できる。
あるいは、暗号化ルート鍵310が、NIST SP 800−38Fに準拠した共通鍵303で暗号化されたものである場合、セキュアマイコン7は、その暗号化の際にチェック用のデータを併せて生成する。セキュアマイコン7は、暗号化ルート鍵310と共に、生成したチェック用のデータをメモリコントローラ4に送信する。メモリコントローラ4は、共通鍵305を用いた暗号化ルート鍵310の復号結果として、ルート鍵301が得られたかどうかを、このチェック用のデータを用いて検証できる。
メモリコントローラ4は、取得したルート鍵301を用いてデータ暗号鍵302を生成する(ステップS85)。そして、メモリコントローラ4は、このデータ暗号鍵302を暗号回路15に設定し(ステップS86)、暗号鍵設定処理を終了する。
以上の図11から図13を参照して説明した構成および手順により、SSD3の暗号回路15にデータ暗号鍵302が設定される。したがって、暗号回路15はデータ暗号鍵302を用いて、NAND型フラッシュメモリ5に書き込まれるべきデータを暗号化できると共に、NAND型フラッシュメモリ5から読み出されたデータを復号できる。
上述したデータ暗号鍵生成の第1乃至第4の例を含む様々な方法を用いて、メモリコントローラ4は、セキュアマイコン7から受け取ったルート鍵情報221またはルート鍵301を用いてデータ暗号鍵302を生成し、暗号回路15に設定できる。また、上述したデータ暗号鍵生成の第2乃至第4の例では、共通鍵暗号方式や公開鍵暗号方式により、機密性および完全性を保証してルート鍵情報221またはルート鍵301をセキュアマイコン7からメモリコントローラ4に伝送する方法を示した。本実施形態には、第2乃至第4の例に示した方法に限らず、伝送されるルート鍵情報221またはルート鍵301の機密性および完全性を保証するための様々な方法を適用できる。
(Cryptographic Erase)
図14のフローチャートは、セキュアマイコン7(より詳しくは鍵情報消去部213)において実行される暗号消去処理の手順の例を示す。ここでは、メモリコントローラ4がデータ暗号鍵302を生成するための鍵情報として、ルート鍵情報221がセキュアマイコン7内に格納されている場合を例示する。
図14のフローチャートは、セキュアマイコン7(より詳しくは鍵情報消去部213)において実行される暗号消去処理の手順の例を示す。ここでは、メモリコントローラ4がデータ暗号鍵302を生成するための鍵情報として、ルート鍵情報221がセキュアマイコン7内に格納されている場合を例示する。
まず、セキュアマイコン7はホスト2から鍵情報消去コマンドを受信したか否かを判定する(ステップS91)。鍵情報消去コマンドを受信していない場合(ステップS91のNO)、ステップS91に戻り、鍵情報消去コマンドを受信したか否かが再度判定される。
鍵情報消去コマンドを受信した場合(ステップS91のYES)、セキュアマイコン7はNOR型フラッシュメモリ22に格納されたルート鍵情報221を消去する(ステップS92)。セキュアマイコン7は、例えば乱数で上書きすることにより、NOR型フラッシュメモリ22に格納されたルート鍵情報221を消去する。これにより、メモリコントローラ4がルート鍵301を生成するために用いるルート鍵情報221が、セキュアマイコン7内のNOR型フラッシュメモリ22から消去される。
メモリコントローラ4は、ルート鍵情報221が消去されたので、これ以降に、ルート鍵301およびデータ暗号鍵302を生成することができない。そのため、メモリコントローラ4はNAND型フラッシュメモリ5から読み出した暗号化データを復号できない。したがって、ルート鍵情報221の消去により、NAND型フラッシュメモリ5のCryptographic Eraseが実現される。
なお、セキュアマイコン7は、ホスト2から鍵情報消去コマンドを受信した場合に、NOR型フラッシュメモリ22に格納されたルート鍵情報221を更新してもよい。この場合、セキュアマイコン7は、鍵情報消去コマンドに応じた暗号消去処理が行われる前後で、異なるルート鍵情報221をメモリコントローラ4に送信する。
また、セキュアマイコン7がホスト2から鍵情報消去コマンドを受信した場合、セキュアマイコン7に格納されたルート鍵情報221が消去されるだけでなく、メモリコントローラ4が現在使用しているデータ暗号鍵302も無効化(例えば消去)され得る。図15および図16のフローチャートを参照して、セキュアマイコン7とメモリコントローラ4とにおいて実行される暗号消去処理について説明する。
図15はセキュアマイコン7において実行される暗号消去処理の手順の別の例を示す。
まず、セキュアマイコン7はホスト2から鍵情報消去コマンドを受信したか否かを判定する(ステップS101)。鍵情報消去コマンドを受信していない場合(ステップS101のNO)、ステップS101に戻り、鍵情報消去コマンドを受信したか否かが再度判定される。
まず、セキュアマイコン7はホスト2から鍵情報消去コマンドを受信したか否かを判定する(ステップS101)。鍵情報消去コマンドを受信していない場合(ステップS101のNO)、ステップS101に戻り、鍵情報消去コマンドを受信したか否かが再度判定される。
鍵情報消去コマンドを受信した場合(ステップS101のYES)、セキュアマイコン7はメモリコントローラ4にデータ暗号鍵302の無効化を要求する(ステップS102)。この要求に応じて、メモリコントローラ4は暗号回路15に設定されているデータ暗号鍵302を無効化する。
セキュアマイコン7はデータ暗号鍵302の無効化が完了したことを示す応答をメモリコントローラ4から受信したか否かを判定する(ステップS103)。メモリコントローラ4から応答を受信していない場合(ステップS103のNO)、ステップS103に戻り、応答を受信したか否かが再度判定される。
メモリコントローラ4から応答を受信した場合(ステップS103のYES)、セキュアマイコン7はNOR型フラッシュメモリ22に格納されたルート鍵情報221を消去する(ステップS104)。
図16は、メモリコントローラ4において実行される暗号消去処理の手順の例を示す。
まず、メモリコントローラ4はセキュアマイコン7からデータ暗号鍵302の無効化が要求されたか否かを判定する(ステップS110)。データ暗号鍵302の無効化が要求されていない場合(ステップS110のNO)、ステップS110に戻り、データ暗号鍵302の無効化が要求されたか否かが再度判定される。
まず、メモリコントローラ4はセキュアマイコン7からデータ暗号鍵302の無効化が要求されたか否かを判定する(ステップS110)。データ暗号鍵302の無効化が要求されていない場合(ステップS110のNO)、ステップS110に戻り、データ暗号鍵302の無効化が要求されたか否かが再度判定される。
データ暗号鍵302の無効化が要求された場合(ステップS110のYES)、メモリコントローラ4は暗号回路15に設定されたデータ暗号鍵302を無効化する(ステップS111)。メモリコントローラ4は、例えば暗号回路15内のレジスタに記憶されたデータ暗号鍵302を無効化する。そして、メモリコントローラ4はデータ暗号鍵302の無効化が完了したことをセキュアマイコン7に通知する(ステップS112)。
図15および図16に示した暗号消去処理により、メモリコントローラ4がルート鍵301を生成するために用いたルート鍵情報221が、セキュアマイコン7内のNOR型フラッシュメモリ22から消去されると共に、ルート鍵情報221(より詳しくはルート鍵情報221を用いて生成されたルート鍵301)を用いて生成され、暗号回路15に設定されたデータ暗号鍵302が無効化される。
メモリコントローラ4はルート鍵情報221が消去されたので、これ以降にルート鍵301およびデータ暗号鍵302を生成することができない。そのため、メモリコントローラ4はNAND型フラッシュメモリ5から読み出した暗号化データを復号できない。したがって、ルート鍵情報221の消去により、NAND型フラッシュメモリ5のCryptographic Eraseが実現される。
さらに、暗号回路15に設定されたデータ暗号鍵302が無効化されるので、メモリコントローラ4がこれ以降に、既に消去されたルート鍵情報221に由来するデータ暗号鍵302でデータを暗号化し、暗号化データをNAND型フラッシュメモリ5に書き込むことを回避できる。ルート鍵情報221が消去された後に、暗号回路15に残存したデータ暗号鍵302でデータが暗号化され、NAND型フラッシュメモリ5に書き込まれた場合、SSD3の再起動等によって暗号回路15に設定されたデータ暗号鍵302が消失したならば、メモリコントローラ4はその書き込まれた暗号化データを復号できない。したがって、暗号回路15に設定されたデータ暗号鍵302を無効化することにより、復号できなくなる暗号化データがNAND型フラッシュメモリ5にさらに書き込まれることを防止できる。
(ルート鍵情報221が複数台のSSD3で用いられる場合)
セキュアマイコン7が複数台のSSD3で用いられる1つの鍵情報を管理する場合、上述したデータ暗号鍵生成の第1乃至第3の例のように、セキュアマイコン7がルート鍵301ではなく、ルート鍵情報221を管理することが望ましい。データ暗号鍵生成の第1乃至第3の例では、複数のSSD3の各々で用いられるルート鍵301が、セキュアマイコン7から提供されるルート鍵情報221と、各SSD3内に格納されたOTP鍵情報161とを組み合わせて生成される。そのため、あるSSD3の脆弱性によってルート鍵301が漏洩したとしても、漏洩したルート鍵301は、他の各SSD3で用いられるルート鍵301とは異なっている。したがって、あるSSD3から漏洩したルート鍵301を用いて生成されたデータ暗号鍵302で、他のSSD3に格納された暗号化データが復号されることを防止できる。
セキュアマイコン7が複数台のSSD3で用いられる1つの鍵情報を管理する場合、上述したデータ暗号鍵生成の第1乃至第3の例のように、セキュアマイコン7がルート鍵301ではなく、ルート鍵情報221を管理することが望ましい。データ暗号鍵生成の第1乃至第3の例では、複数のSSD3の各々で用いられるルート鍵301が、セキュアマイコン7から提供されるルート鍵情報221と、各SSD3内に格納されたOTP鍵情報161とを組み合わせて生成される。そのため、あるSSD3の脆弱性によってルート鍵301が漏洩したとしても、漏洩したルート鍵301は、他の各SSD3で用いられるルート鍵301とは異なっている。したがって、あるSSD3から漏洩したルート鍵301を用いて生成されたデータ暗号鍵302で、他のSSD3に格納された暗号化データが復号されることを防止できる。
また、ルート鍵情報221が漏洩した場合には、各SSD3に対して、ホスト2等からOTP鍵情報161の消去が要求されてもよい。OTP鍵情報161を消去するための消去動作では、OTPメモリ16内の、少なくともOTP鍵情報161の格納に用いられていた各記憶素子が、書き込み済みであることを示す状態になる(例えばゼロにされる)。これにより、漏洩したルート鍵情報221を用いて、各SSD3に格納された暗号化データが復号されることを防止できる。
さらに、複数台のSSD3の各々には、その1つのルート鍵情報221(あるいは1つのルート鍵301)に由来するデータ暗号鍵302で暗号化されたデータが格納されている。もし、それら複数台のSSD3に格納されたデータ全てを消去するのではなく、その中の特定のSSD3に格納されたデータを破棄する場合には、そのSSD3内のOTPメモリ16に格納されたOTP鍵情報161を消去してもよい。これにより、このSSD3ではデータ暗号鍵302を生成できなくなるので、データ暗号鍵302を用いて暗号化され、NAND型フラッシュメモリ5に格納された暗号化データを復号できないようにするCryptographic Eraseを実現できる。
(書き換え可能なFWを用いる場合)
CPU12によるセッション鍵生成部121、鍵情報受信部122、および暗号鍵生成部123の各機能は、ROM等に格納された書き換え不能なFW61ではなく、書き換え可能なFW(以下、第2FWと称する)を実行することによって実現されてもよい。この第2FWは、SSD3の起動時に、NAND型フラッシュメモリ5からDRAM6にロードされるか、あるいはセキュアマイコン7から受信され、DRAM6にロードされる。
CPU12によるセッション鍵生成部121、鍵情報受信部122、および暗号鍵生成部123の各機能は、ROM等に格納された書き換え不能なFW61ではなく、書き換え可能なFW(以下、第2FWと称する)を実行することによって実現されてもよい。この第2FWは、SSD3の起動時に、NAND型フラッシュメモリ5からDRAM6にロードされるか、あるいはセキュアマイコン7から受信され、DRAM6にロードされる。
第2FWを実行するCPU12は、SSD3がTCGストレージサブクラス(SSC)を実現するためのデータ保護方法に準拠しているかに応じて、データ暗号鍵302を生成するための処理を変更する。SSCに準拠するために用いるデータ保護方法としては、例えば、メモリコントローラ4内のOTP鍵情報161に由来するデータ暗号鍵302を用いてデータを暗号化する第1のデータ保護方法や、OTP鍵情報161と、メモリコントローラ4の外部の鍵情報とに由来するデータ暗号鍵302を用いてデータを暗号化する第2のデータ保護方法が利用できる。
第2FWを実行するCPU12は、メモリコントローラ4が第1のデータ保護方法に準拠しているならば、OTP鍵情報161に由来するデータ暗号鍵302を生成して、暗号回路15に設定する。これに対して、メモリコントローラ4が第2のデータ保護方法に準拠しているならば、CPU12は、OTP鍵情報161と、メモリコントローラ4の外部の鍵情報(例えばセキュアマイコン7内のルート鍵情報221)とに由来するデータ暗号鍵302を生成して、暗号回路15に設定する。
より具体的には、CPU12は、SSD3と接続されたセキュアマイコン7が存在するか否かに応じて、データ暗号鍵302の生成に、セキュアマイコン7に格納されたルート鍵情報221を用いるかどうかを制御してもよい。SSD3と接続されたセキュアマイコン7が存在しない場合、CPU12は、例えばOTP鍵情報161を用いてデータ暗号鍵302を生成する。
これに対して、SSD3と接続されたセキュアマイコン7が存在する場合、CPU12は、OTP鍵情報161と、セキュアマイコン7に格納されたルート鍵情報221とを用いてデータ暗号鍵302を生成する。つまり、CPU12は、SSD3と接続されたセキュアマイコン7が存在する場合に、セッション鍵生成部121、鍵情報受信部122、および暗号鍵生成部123として機能する。
このように、第2FWを実行するCPU12は、メモリコントローラ4が準拠しているTCG SSCの規格に応じて、動作を変更できる。したがって、第2FWを実行するCPU12は、第1のデータ保護方法にだけ準拠しているメモリコントローラ4の動作には影響を与えない。そして、第2のデータ保護方法に準拠しているメモリコントローラ4において、第2FWを実行するCPU12は、セッション鍵生成部121、鍵情報受信部122、および暗号鍵生成部123の機能により、OTP鍵情報161と、セキュアマイコン7に格納されたルート鍵情報221とに由来するデータ暗号鍵302を生成できる。
なお、第2FWがセキュアマイコン7(例えばNOR型フラッシュメモリ22)に格納されている場合、セキュアマイコン7の鍵情報消去部213は、ホスト2から鍵情報消去コマンドを受信したことに応じて、ルート鍵情報221だけでなく、第2FWも消去してもよい。これにより、OTP鍵情報161とルート鍵情報221とを用いてルート鍵301を生成し、データ暗号鍵302を生成するための制御プログラムが失われるので、メモリコントローラ4ではルート鍵301およびデータ暗号鍵302を生成できない。したがって、SSD3に格納された暗号化データが復号できなくなることによるCryptographic Eraseを実現できる。
(消去証明)
SSD3のようなストレージの廃棄や再利用のために、ストレージに格納されたデータが消去されたことと、そのデータ消去が確実になされたことを証明することとを、電子証明書として保証する場合がある。
SSD3のようなストレージの廃棄や再利用のために、ストレージに格納されたデータが消去されたことと、そのデータ消去が確実になされたことを証明することとを、電子証明書として保証する場合がある。
メモリコントローラ4は、例えばセキュアブートを行うことにより、改ざんされたプログラム(例えばマルウェア)が実行されないように制御される場合に、消去コマンドおよびダンプコマンドの実行ログに対してデジタル署名を付与して、データの消去を証明する電子証明書を発行し得る。セキュアブートは、SSD3の起動時に、ブートローダ、FW等の各プログラムを実行する前に当該プログラムを検証し、検証により正当性があると判断されたプログラムを実行する起動方法である。
ホスト2は、SSD3のデータが確実に消去されたかどうかを検証する場合、当該SSD3の識別情報を含む電子証明書を取得し、この電子証明書に付与されたデジタル署名を用いて電子証明書の正当性を検証する。つまり、正当な電子証明書であるならば、ホスト2は、SSD3のデータが消去され、且つそのデータ消去が確実になされたことが証明されていると判断する。これに対して、正当な電子証明書でないならば、ホスト2は、SSD3のデータが消去されていない、あるいはデータ消去が確実になされたことが証明されていないと判断する。
本実施形態では、セキュアマイコン7が鍵情報消去コマンドに応じた暗号消去処理において、SSD3に格納されたデータが消去されたことと、そのデータ消去が確実になされたこととを証明する電子証明書を発行し得る。より詳しくは、セキュアマイコン7は鍵情報消去コマンドに応じた暗号消去処理を実行した際のログデータ(消去ログ)に対して、秘密鍵を用いてデジタル署名を付与して、電子証明書を発行する。
図17はセキュアマイコン7によってデジタル署名403が生成される例を示す。セキュアマイコン7の鍵情報消去部213は、ホスト2から鍵情報消去コマンドを受け取ったことに応じて、ルート鍵情報221を消去する暗号消去処理を実行する。その際、鍵情報消去部213は、暗号消去処理の実行過程や実行結果に関する情報を含む消去ログ401を生成する。
証明書発行部214は消去ログ401のハッシュ値402を算出する。証明書発行部214は算出したハッシュ値402を秘密鍵404で暗号化することにより、デジタル署名403を取得する。秘密鍵404は、例えばRSA秘密鍵である。秘密鍵404は、セキュアマイコン7の出荷前にセキュアマイコン7内に格納されるか、あるいはセキュアマイコン7によって生成され得る。
次いで、証明書発行部214はデジタル署名403を付与した電子証明書を発行する。電子証明書は、例えば、消去ログ401、セキュアマイコン7の識別情報(ID)、SSD3の識別情報、および消去が行われた日時を示すタイムスタンプを含む。
図18はデジタル署名403が付与された電子証明書500を用いて、SSD3のデータ消去が証明されているか否かが判定される例を示す。ここでは、ホスト2が、SSD3の識別情報を含む電子証明書500を用いて、当該SSD3のデータ消去が証明されているか否かを判定する場合を例示する。
ホスト2は電子証明書500に含まれる消去ログ401を取得し、消去ログ401のハッシュ値502(以下、第1ハッシュ値502と称する)を算出する。また、ホスト2は、セキュアマイコン7の公開鍵505で、電子証明書500に付与されたデジタル署名403を復号して、ハッシュ値504(以下、第2ハッシュ値504と称する)を算出する。公開鍵505は、例えばRSA公開鍵である。ホスト2はセキュアマイコン7から公開鍵505を予め受信していてもよい。
ホスト2は第1ハッシュ値502と第2ハッシュ値504とを比較して、一致しているか否かを判定する。第1ハッシュ値502と第2ハッシュ値504とが一致しているならば、ホスト2はデジタル署名403が付与された電子証明書500により、SSD3のデータ消去が証明されていると判断する。これに対して、第1ハッシュ値502と第2ハッシュ値504とが異なっているならば、ホスト2はデジタル署名403が付与された電子証明書500により、SSD3のデータ消去が証明されていないと判断する。
このような消去証明のための構成により、デジタル署名403が付与された電子証明書500が正当であることに基づいて、ユーザはSSD3に格納されたデータが確実に消去されたことを確認できる。セキュアマイコン7は、ルート鍵情報221を消去する暗号消去処理を実行した際にデジタル署名403を付与した電子証明書500を発行することにより、ルート鍵情報221に由来するデータ暗号鍵302で暗号化されたデータの消去を保証できる。
図19のフローチャートは、セキュアマイコン7において実行される電子証明書の発行を含む暗号消去処理の手順の例を示す。
ステップS121およびステップS122の手順は、図14のフローチャートを参照して上述したステップS91およびステップS92の手順とそれぞれ同様である。
なお、ステップS121およびステップS122の手順は、図15のフローチャートを参照して上述したステップS101からステップS104までの手順に置き換えられてもよい。この場合、セキュアマイコン7は、メモリコントローラ4内の暗号回路15に設定されたデータ暗号鍵302が無効化されたことを確認した上で、ルート鍵情報221を消去できる。
ルート鍵情報221を消去した後、セキュアマイコン7は鍵情報消去コマンドの実行ログ401(すなわち消去ログ)のハッシュ値402を算出する(ステップS123)。セキュアマイコン7はハッシュ値402を秘密鍵404で暗号化して、デジタル署名403を生成する(ステップS124)。そして、セキュアマイコン7はデジタル署名403を付与した電子証明書500を発行する(ステップS125)。セキュアマイコン7は、例えばホスト2に、デジタル署名403を付与した電子証明書500を送信してもよい。
以上の暗号消去処理により、セキュアマイコン7はルート鍵情報221を消去することによって、SSD3のデータ消去を行うと共に、そのデータ消去を保証する電子証明書500を発行できる。
なお、電子証明書500は、SSD3のメモリコントローラ4によって発行されてもよい。例えばSSD3が破棄される場合に、ホスト2から鍵情報消去コマンドを受信したことに応じて、メモリコントローラ4はOTP鍵情報161を消去してもよい。その際、メモリコントローラ4は、OTP鍵情報161を消去した処理のログデータに対して、秘密鍵を用いてデジタル署名403を生成する。そして、メモリコントローラ4はデジタル署名403を付与した電子証明書500を発行する。これにより、そのSSD3からのデータの消去を証明できる。この電子証明書500は、例えば、ログデータ、SSD3の識別情報、およびOTP鍵情報161を消去した日時を含む。電子証明書500はさらに、セキュアマイコン7の識別情報を含んでいてもよい。
SSD3では、CPU12に、上述したセキュアマイコン7の鍵情報消去部213と証明書発行部214と同様の機能を持たせることにより、OTP鍵情報161を消去し、デジタル署名403を付与した電子証明書500を発行する。
ホスト2は、あるSSD3のメモリコントローラ4によって発行された電子証明書500を用いて、そのSSD3からのデータの消去が証明されているかどうかを検証する。この検証方法は、図18を参照して上述した方法と同様である。
ホスト2は、SSD3からのデータの消去が証明されている場合、そのSSD3に対応する識別情報を有するSSD3とのセッションの確立を禁止してもよい。これにより、既に破棄されたSSD3へのアクセスを防止できる。
(第2実施形態)
第1実施形態では、SSD3のメモリコントローラ4はデータ暗号鍵302を生成するためのルート暗号鍵情報221またはルート鍵301を、外部のセキュアマイコン7から取得する。これに対して第2実施形態では、SSD3がセキュアマイコン7を内蔵する。
第1実施形態では、SSD3のメモリコントローラ4はデータ暗号鍵302を生成するためのルート暗号鍵情報221またはルート鍵301を、外部のセキュアマイコン7から取得する。これに対して第2実施形態では、SSD3がセキュアマイコン7を内蔵する。
第2実施形態と第1実施形態とでは、SSD3がセキュアマイコン7を内蔵し、メモリコントローラ4内にセキュアマイコン7との通信を行うインタフェースがさらに設けられる構成のみが異なる。以下、第1実施形態と異なる点について主に説明する。
図20は第2実施形態に係る情報処理システム1の構成を示す。図20に示すように、セキュアマイコン7はSSD3の内部に設けられている。より具体的には、セキュアマイコン7は、例えばSSD3に内蔵された基板上に設けられている。セキュアマイコン7の構成は第1実施形態と同様である。
また、メモリコントローラ4は、第1実施形態において上述した構成に加えて、セキュアマイコン7との通信を行うマイコンI/F17を備えている。メモリコントローラ4はホストI/F11ではなく、マイコンI/F17を介して、セキュアマイコン7との通信を行う。マイコンI/F17は、Inter−Integrated Circuit(I2C)、Serial Peripheral Interface(SPI)等のインタフェース規格に準拠する。
マイコンI/F17は、セキュアマイコン7の各々との通信を行うハードウェアインタフェースである。マイコンI/F17は、セキュアマイコン7との間で様々なコマンドや情報を送受信する送受信回路として機能する。
より具体的には、メモリコントローラ4はマイコンI/F17を介して、ルート鍵情報221、暗号化ルート鍵情報304,308、または暗号化ルート鍵310をセキュアマイコン7から受信する。
また、メモリコントローラ4は、セキュアマイコン7で処理すべきコマンドをホスト2から受信した場合に、そのコマンドをマイコンI/F17を介してセキュアマイコン7に送出する。メモリコントローラ4は、例えば、ホスト2からホストI/F11を介して受信した鍵情報消去コマンドを、マイコンI/F17を介してセキュアマイコン7に送出する。
SSD3がセキュアマイコン7を内蔵することにより、SSD3の起動時にホストI/F11が使用可能な状態になる前に、メモリコントローラ4とセキュアマイコン7との間でセッションを確立して、セッション鍵(すなわち共通鍵303,305)を共有できる。
以上説明したように、第1および第2実施形態によれば、データの漏洩に対するセキュリティを強化できる。
SSD3において、NAND型フラッシュメモリ5は、各々にデータを複数回書き込み可能な複数の記憶素子を含む。OTPメモリ16は、各々にデータを1回書き込み可能な複数の記憶素子を含み、OTP鍵情報161を格納する。メモリコントローラ4は、セキュアマイコン7に格納されたルート鍵情報221を受信し、OTP鍵情報161とルート鍵情報221とを用いてルート鍵301を生成し、ルート鍵301を用いてデータ暗号鍵302を生成する。メモリコントローラ4は、NAND型フラッシュメモリ5に書き込むべきデータをデータ暗号鍵302で暗号化し、NAND型フラッシュメモリ5から読み出したデータをデータ暗号鍵302で復号する。
また、セキュアマイコン7において、NOR型フラッシュメモリ22は、各々にデータを複数回書き込み可能な複数の記憶素子を含み、SSD3で用いられるデータ暗号鍵302を生成するためのルート鍵情報221を格納する。CPU21は、ルート鍵情報221をSSD3に送信する。CPU21は、ホスト2からルート鍵情報221の消去が要求された場合、NOR型フラッシュメモリ22に格納されたルート鍵情報221を消去する。
このように、SSD3は、セキュアマイコン7から受信したルート鍵情報221と、OTPメモリ16に格納されたOTP鍵情報161とを用いてルート鍵301を生成し、ルート鍵301を用いてデータ暗号鍵302を生成する。この場合、セキュアマイコン7に格納されたルート鍵情報221を消去することにより、SSD3はデータ暗号鍵302を新たに生成できなくなる。そして、データ暗号鍵302を用いて暗号化され、NAND型フラッシュメモリ5に格納されたデータが復号できなくなるので、データの漏洩を防止できる。
また、セキュアマイコン7に格納されたルート鍵情報221を消去する一方で、OTPメモリ16に格納されたOTP鍵情報161を消去しない場合には、OTP鍵情報161の消去に応じて新たなOTP鍵情報161を書き込むために、SSD3に大量のOTPメモリ16(例えば多数のe−Fuse素子)を設ける必要がない。
さらに、セキュアマイコン7に格納されたルート鍵情報221が消去されるならば、OTP鍵情報161を消去するための、信頼性が低いOTPメモリ16に対する消去動作を行わなくてもよい。したがって、鍵情報を消去することによるSSD3のデータ消去(すなわちCryptographic Erase)の信頼性を高めることができ、データの漏洩に対するセキュリティを強化できる。
第1および第2実施形態に記載された様々な機能の各々は、回路(処理回路)によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。これら実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…情報処理システム、2…ホスト、3…SSD、4…メモリコントローラ、5…NAND型フラッシュメモリ、6…DRAM、7…セキュアマイコン、11…ホストI/F、12…CPU、13…NAND I/F、14…DRAM I/F、15…暗号回路、16…OTPメモリ、121…セッション鍵生成部、122…鍵情報受信部、123…暗号鍵生成部、161…OTP鍵情報、21…CPU、22…NOR型フラッシュメモリ、23…I/F、211…セッション鍵生成部、212…鍵情報送信部、213…鍵情報消去部、214…証明書発行部、221…ルート鍵情報。
Claims (19)
- 複数の記憶素子を含む第1不揮発性メモリと、
各々にデータを1回のみ書き込み可能な複数の記憶素子を含み、第1鍵情報を格納する第2不揮発性メモリと、
情報処理装置に格納された第2鍵情報を受信し、前記第1鍵情報と前記第2鍵情報とを用いて第1鍵を生成し、少なくとも前記第1鍵を用いて第2鍵を生成するように構成されるコントローラとを具備し、
前記コントローラは、前記第1不揮発性メモリに書き込むべきデータを前記第2鍵で暗号化し、前記第1不揮発性メモリから読み出したデータを前記第2鍵で復号するように構成されるメモリシステム。 - 前記コントローラはさらに、
共通鍵で暗号化された前記第2鍵情報を前記情報処理装置から受信し、
暗号化された前記第2鍵情報を前記共通鍵で復号し、
前記第1鍵情報と復号された前記第2鍵情報とを用いて前記第1鍵を生成し、
前記第1鍵を用いて前記第2鍵を生成するように構成される請求項1記載のメモリシステム。 - 前記コントローラはさらに、
公開鍵で暗号化された前記第2鍵情報を前記情報処理装置から受信し、
暗号化された前記第2鍵情報を前記公開鍵に対応する秘密鍵で復号し、
前記第1鍵情報と復号された前記第2鍵情報とを用いて前記第1鍵を生成し、
前記第1鍵を用いて前記第2鍵を生成するように構成される請求項1記載のメモリシステム。 - 前記コントローラはさらに、
共通鍵で暗号化された第3鍵を前記情報処理装置から受信し、
暗号化された前記第3鍵を前記共通鍵で復号し、
復号された前記第3鍵を用いて前記第2鍵を生成するように構成される請求項1記載のメモリシステム。 - 前記コントローラは暗号回路を含み、
前記コントローラは、前記第2鍵を前記暗号回路に設定し、前記暗号回路を用いて前記第1不揮発性メモリに書き込むべきデータを前記第2鍵で暗号化し、前記暗号回路を用いて前記第1不揮発性メモリから読み出されたデータを前記第2鍵で復号するように構成される請求項1記載のメモリシステム。 - 前記コントローラはさらに、
前記情報処理装置による要求に応じて、前記暗号回路に設定された前記第2鍵を無効化し、
前記第2鍵が無効化されたことを前記情報処理装置に通知するように構成される請求項5記載のメモリシステム。 - 前記コントローラはさらに、ホストからの要求に応じ、前記第2不揮発性メモリに格納された前記第1鍵情報を消去するように構成される請求項1記載のメモリシステム。
- 前記コントローラはさらに、
前記第1鍵情報を消去した処理のログデータに対して、秘密鍵を用いてデジタル署名を生成し、
前記ログデータ、前記メモリシステムの識別情報、および前記第1鍵情報を消去した日時を含む電子証明書と、前記デジタル署名とを、前記ホストに送信するように構成される請求項7記載のメモリシステム。 - 前記メモリシステムは、前記情報処理装置を内蔵する請求項1記載のメモリシステム。
- ホストおよびメモリシステムと通信可能であり、
各々にデータを複数回書き込み可能な複数の記憶素子を含み、前記メモリシステムで用いられる第1鍵を生成するための第1鍵情報を格納する不揮発性メモリと、
前記第1鍵情報を前記メモリシステムに送信するように構成される処理部とを具備し、
前記処理部は、前記ホストからの要求に応じ、前記不揮発性メモリに格納された前記第1鍵情報を消去するように構成される情報処理装置。 - 前記処理部はさらに、前記第1鍵情報を共通鍵で暗号化し、暗号化された前記第1鍵情報を前記メモリシステムに送信するように構成される請求項10記載の情報処理装置。
- 前記処理部はさらに、前記第1鍵情報を公開鍵で暗号化し、暗号化された前記第1鍵情報を前記メモリシステムに送信するように構成される請求項10記載の情報処理装置。
- 前記処理部はさらに、前記第1鍵を共通鍵で暗号化し、暗号化された前記第1鍵を前記メモリシステムに送信するように構成される請求項10記載の情報処理装置。
- 前記処理部は、前記第1鍵情報が格納された前記不揮発性メモリ内の記憶領域に乱数を書き込むことにより、前記不揮発性メモリに格納された前記第1鍵情報を消去するように構成される請求項10記載の情報処理装置。
- 前記処理部はさらに、
前記ホストからの要求に応じ、暗号回路に設定された第2鍵を無効化することを前記メモリシステムに要求し、
前記第2鍵が無効化されたことが前記メモリシステムから通知された場合、前記不揮発性メモリに格納された前記第1鍵情報を消去するように構成される請求項10記載の情報処理装置。 - 前記処理部はさらに、
前記第1鍵情報を消去した処理のログデータに対して、秘密鍵を用いてデジタル署名を生成し、
前記ログデータ、前記情報処理装置の識別情報、前記メモリシステムの識別情報、および前記第1鍵情報を消去した日時を含む電子証明書と、前記デジタル署名とを、前記ホストに送信するように構成される請求項10記載の情報処理装置。 - 情報処理装置とメモリシステムとによって構成される情報処理システムであって、
前記情報処理装置は、
各々にデータを複数回書き込み可能な複数の記憶素子を含む第1不揮発性メモリに格納された第1鍵情報を読み出し、
前記第1鍵情報を前記メモリシステムに送信するように構成され、
前記メモリシステムは、
前記情報処理装置から前記第1鍵情報を受信し、
各々にデータを1回のみ書き込み可能な複数の記憶素子を含む第2不揮発性メモリに格納された第2鍵情報を読み出し、
前記第1鍵情報と前記第2鍵情報とを用いて第1鍵を生成し、
少なくとも前記第1鍵を用いて第2鍵を生成し、
複数の記憶素子を含む第3不揮発性メモリに書き込むべきデータを前記第2鍵で暗号化し、前記第3不揮発性メモリから読み出したデータを前記第2鍵で復号するように構成される情報処理システム。 - ホストと通信可能であり、
前記情報処理装置はさらに、前記ホストから鍵情報の消去が要求された場合、前記第1不揮発性メモリに格納された前記第1鍵情報を消去するように構成される請求項17記載の情報処理システム。 - 前記情報処理装置はさらに、
前記第1鍵情報を消去した処理のログデータに対して、秘密鍵を用いてデジタル署名を生成し、
前記ログデータ、前記情報処理装置の識別情報、前記メモリシステムの識別情報、および前記第1鍵情報を消去した日時を含む電子証明書と、前記デジタル署名とを、前記ホストに送信するように構成される請求項18記載の情報処理システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020008265A JP2021118370A (ja) | 2020-01-22 | 2020-01-22 | メモリシステム、情報処理装置、および情報処理システム |
US17/016,732 US11775184B2 (en) | 2020-01-22 | 2020-09-10 | Memory system, information processing apparatus, and information processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020008265A JP2021118370A (ja) | 2020-01-22 | 2020-01-22 | メモリシステム、情報処理装置、および情報処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021118370A true JP2021118370A (ja) | 2021-08-10 |
Family
ID=76857024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020008265A Pending JP2021118370A (ja) | 2020-01-22 | 2020-01-22 | メモリシステム、情報処理装置、および情報処理システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US11775184B2 (ja) |
JP (1) | JP2021118370A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024052993A1 (ja) * | 2022-09-06 | 2024-03-14 | キオクシア株式会社 | メモリシステム |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11294582B2 (en) * | 2020-09-08 | 2022-04-05 | Micron Technology, Inc. | Customer-specific activation of functionality in a semiconductor device |
JP7254753B2 (ja) * | 2020-09-18 | 2023-04-10 | 株式会社東芝 | システムおよびサーバ装置 |
US11449265B2 (en) * | 2020-10-30 | 2022-09-20 | Seagate Technology Llc | Secure erasure of a drive array using drive-defined, trusted computing group bands |
US11977667B2 (en) * | 2020-11-25 | 2024-05-07 | Micron Technology, Inc. | Purging data at a memory device |
US12166873B2 (en) * | 2021-03-02 | 2024-12-10 | Seagate Technology Llc | Updateable encryption in self encrypting drives |
JP7413300B2 (ja) * | 2021-03-15 | 2024-01-15 | 株式会社東芝 | 記憶装置 |
US12182275B2 (en) * | 2022-03-29 | 2024-12-31 | Kioxia Corporation | Storage data deletion management system and apparatus |
US12224991B1 (en) * | 2022-12-16 | 2025-02-11 | Amazon Technologies, Inc. | Techniques for cloud-based privacy controls |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613921B2 (en) | 2005-05-13 | 2009-11-03 | Intel Corporation | Method and apparatus for remotely provisioning software-based security coprocessors |
US9191200B1 (en) * | 2010-10-07 | 2015-11-17 | L-3 Communications Corp. | System and method for changing the security level of a communications terminal during operation |
US9245143B2 (en) * | 2012-02-09 | 2016-01-26 | Microsoft Technology Licensing, Llc | Security policy for device data |
US9037854B2 (en) | 2013-01-22 | 2015-05-19 | Amazon Technologies, Inc. | Privileged cryptographic services in a virtualized environment |
US9363085B2 (en) * | 2013-11-25 | 2016-06-07 | Seagate Technology Llc | Attestation of data sanitization |
US9659191B2 (en) * | 2014-04-09 | 2017-05-23 | Seagate Technology Llc | Encryption key storage and modification in a data storage device |
JP2015232810A (ja) | 2014-06-10 | 2015-12-24 | 株式会社東芝 | 記憶装置、情報処理装置および情報処理方法 |
US9430405B2 (en) * | 2014-06-18 | 2016-08-30 | Fastly, Inc. | Encrypted purging of data from content node storage |
US9954680B1 (en) * | 2015-12-18 | 2018-04-24 | EMC IP Holding Company LLC | Secure management of a master encryption key in a split-key based distributed computing environment |
US10516533B2 (en) | 2016-02-05 | 2019-12-24 | Mohammad Mannan | Password triggered trusted encryption key deletion |
US10089178B2 (en) * | 2016-02-29 | 2018-10-02 | International Business Machines Corporation | Developing an accurate dispersed storage network memory performance model through training |
US10846441B2 (en) * | 2016-07-07 | 2020-11-24 | Hitachi, Ltd. | Computer system |
EP3688922A4 (en) * | 2017-09-27 | 2020-09-09 | Visa International Service Association | SECURE SHARED KEY ESTABLISHMENT FOR PAIR-TO-PAIR COMMUNICATIONS |
US10715313B2 (en) * | 2018-09-21 | 2020-07-14 | Blockchain Certified Data Sas | Systems and computer-based methods of document certification and publication |
JP7384914B2 (ja) * | 2018-10-12 | 2023-11-21 | ティーゼロ・アイピー,エルエルシー | 二重暗号化秘密パーツのサブセットを使用して秘密のアセンブリを可能にする二重暗号化秘密パーツ |
-
2020
- 2020-01-22 JP JP2020008265A patent/JP2021118370A/ja active Pending
- 2020-09-10 US US17/016,732 patent/US11775184B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024052993A1 (ja) * | 2022-09-06 | 2024-03-14 | キオクシア株式会社 | メモリシステム |
Also Published As
Publication number | Publication date |
---|---|
US20210223968A1 (en) | 2021-07-22 |
US11775184B2 (en) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11775184B2 (en) | Memory system, information processing apparatus, and information processing system | |
CN111475871B (zh) | 存储器系统 | |
US11329814B2 (en) | Self-encryption drive (SED) | |
US8589669B2 (en) | Data protecting method, memory controller and memory storage device | |
JP5595965B2 (ja) | 記憶装置、保護方法及び電子機器 | |
US20100058073A1 (en) | Storage system, controller, and data protection method thereof | |
JP2021043708A (ja) | メモリシステム | |
US20180260151A1 (en) | Data Storage Device and Operating Method Therefor | |
US20230179418A1 (en) | Storage controller and method of operating electronic system | |
KR101910826B1 (ko) | 사물인터넷 디바이스의 보안 방법 및 장치 | |
CN103257938B (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
CN115391844A (zh) | 安全密钥存储装置 | |
US11468159B2 (en) | Memory system | |
US11113399B2 (en) | Electronic apparatus and control method of electronic apparatus | |
TWI775284B (zh) | 記憶系統、其控制方法及資訊處理系統 | |
US12229432B2 (en) | Memory system and random number generation device | |
US20220261162A1 (en) | Memory system | |
US12260007B2 (en) | Secure flash controller | |
US20240427941A1 (en) | Memory system generating erase certificate | |
CN119416274A (zh) | 芯片的防破解方法、安全芯片、程序产品 |