WO2023084645A1 - メモリコントローラおよびフラッシュメモリシステム - Google Patents

メモリコントローラおよびフラッシュメモリシステム Download PDF

Info

Publication number
WO2023084645A1
WO2023084645A1 PCT/JP2021/041368 JP2021041368W WO2023084645A1 WO 2023084645 A1 WO2023084645 A1 WO 2023084645A1 JP 2021041368 W JP2021041368 W JP 2021041368W WO 2023084645 A1 WO2023084645 A1 WO 2023084645A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
area
flash memory
encryption
processing unit
Prior art date
Application number
PCT/JP2021/041368
Other languages
English (en)
French (fr)
Inventor
謙一 田窪
Original Assignee
Tdk株式会社
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 Tdk株式会社 filed Critical Tdk株式会社
Priority to PCT/JP2021/041368 priority Critical patent/WO2023084645A1/ja
Publication of WO2023084645A1 publication Critical patent/WO2023084645A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to memory controllers and flash memory systems.
  • a memory controller that controls a flash memory as a nonvolatile memory, and a memory system (flash memory system, etc.) that includes such a memory controller and a nonvolatile memory have been proposed (see, for example, Patent Document 1). .
  • a memory controller is a memory controller that controls a flash memory, and includes an arithmetic processing unit that controls data in a user data area in the flash memory.
  • the arithmetic processing unit performs a first encryption process on the data contained in the first area using a fixed first encryption key, and performs the first encryption process on the data contained in the first area. is stored in the user data area, and the power of the flash memory and the memory controller is turned off to on for the data contained in the second area.
  • a second encryption process is performed using a second encryption key that is newly generated at each power-on transition, and a second encryption obtained by this second encryption process Data is saved in the user data area.
  • a flash memory system includes the memory controller according to the embodiment of the present invention and the flash memory.
  • FIG. 1 is a block diagram showing a schematic configuration example of a flash memory system etc. according to an embodiment of the present invention
  • FIG. 2 is a block diagram showing a detailed configuration example of an arithmetic processing unit shown in FIG. 1
  • FIG. 2 is a block diagram showing another detailed configuration example of an arithmetic processing unit shown in FIG. 1
  • FIG. 4 is a flow chart showing an example of activation processing according to the embodiment
  • FIG. 1 is a block diagram showing a schematic configuration example of a flash memory system (flash memory system 3) according to one embodiment of the present invention together with an external host system 4.
  • This flash memory system 3 is, for example, a system corresponding to an SSD (Solid State Drive), an eMMC (embedded Multi Media Card), or the like.
  • the flash memory system 3 comprises a flash memory 1 and a memory controller 2.
  • the host system 4, memory controller 2, and flash memory 1 are interconnected via various buses 91a, 91b, and 92, as shown in FIG.
  • the host system 4 is a host system that uses the flash memory system 3 as a secondary storage device.
  • the host system 4 includes a CPU (Central Processing Unit) for controlling the operation of the entire host system 4, a companion chip for exchanging various information with the flash memory system 3, and the like.
  • a host system 4 is, for example, an information processing device such as a personal computer (PC) or a digital still camera.
  • the host system 4 also supplies a predetermined command Cm (internal command) to the flash memory system 3 to instruct the flash memory system 3 to execute various processes, as shown in FIG. It has become.
  • this command Cm is a command for the memory controller 2 in the flash memory system 3 to instruct the flash memory 1 to execute various processes.
  • the flash memory 1 performs various operations according to commands Cm given from the memory controller 2 .
  • the flash memory 1 is a non-volatile memory, and is configured using one or two or more flash memory chips (chips).
  • This flash memory 1 is, for example, a NAND flash memory.
  • NAND type flash memory data is written and read in page units, and data is erased (all at once) in block units composed of a plurality of pages.
  • the pages and blocks in the flash memory 1 are also generally called physical pages and physical blocks, respectively. This is to distinguish them from logical pages and logical blocks, which are units in which the host system 4 handles data.
  • each physical block contains, for example, 64, 128 or 256 physical pages.
  • each physical page includes, for example, 4, 8 or 16 sectors (physical sectors).
  • Each physical sector is an area allocated to store 512 bytes of data (one sector of data).
  • Such a flash memory 1 comprises a register and a memory cell array in which a plurality of memory cells are arranged.
  • a memory cell array has a plurality of memory cell groups and word lines. Each memory cell group consists of a plurality of memory cells connected in series.
  • a word line is for selecting a specific memory cell from among the memory cell group. Data is written from the register to the selected memory cell or data is read from the selected memory cell to the register between the memory cell selected via the word line and the register. It has become.
  • this flash memory 1 comprises a user data area 11, which is an area where user data is stored, and a management data area 12.
  • the encrypted data 111a and 111b are data (user data) contained in the normal area
  • the encrypted data 112 is data (user data) contained in the secure area.
  • the normal area is an LBA for which data discarding is not required when the power of the flash memory system 3 (flash memory 1 and memory controller 2) changes from an on state to an off state (during power off transition). (Logical Block Address) range.
  • the secure area is an LBA range that is set to require data destruction at the time of such power-off transition.
  • user data stored in such a secure area includes, for example, passwords, financial information, medical information, data in the middle of calculation, and data in the middle of copying.
  • data having security properties such as data are exemplified.
  • the above-described normal area and secure area (whether or not data should be discarded when the power is turned off) are set (preset) by the host system 4, for example, in the command Cm described above.
  • areas (normal areas) to which encryption keys 221a and 221b described later are applied are set by the LBA ranges 41a and 41b set on the host system 4 side.
  • an area (secure area) to which an encryption key 222, which will be described later, is applied is set by the LBA range 42 set on the host system 4 side.
  • the area (normal area) set by the LBA ranges 41a and 41b corresponds to a specific example of the "first area” in the present invention.
  • the area (secure area) set by the LBA range 42 corresponds to a specific example of the "second area” in the present invention.
  • the encrypted data 111a and 111b described above each correspond to a specific example of the "first encrypted data” in the present invention.
  • the encrypted data 112 described above corresponds to a specific example of "second encrypted data” in the present invention.
  • the management data area 12 is an area in which various management data are stored.
  • information that is the basis of encryption keys 221a and 221b, which will be described later, is stored in the management data area 12, respectively.
  • the management data area 12 also stores the setting of the LBA range described above.
  • the memory controller 2 controls the flash memory 1 according to instructions (command Cm described above) from the host system 4 . Specifically, the memory controller 2 writes data (user data) received from the host system 4 into the flash memory 1 when a write request is received from the host system 4, for example. Further, the memory controller 2 reads data (user data) from the flash memory 1 and transmits the read data to the host system 4 when, for example, a read request is received from the host system 4 .
  • Such a memory controller 2 includes, for example, a microprocessor, host interface block, SRAM (Static Random Access Memory), buffer, flash memory interface block, and ROM (Read Only Memory).
  • SRAM Static Random Access Memory
  • ROM Read Only Memory
  • the volatile RAM 22 is, for example, a volatile memory such as the SRAM described above.
  • encryption keys 221a, 221b, and 222 are stored in this volatile RAM 22, respectively.
  • the encryption keys 221a and 221b are encryption keys applied to the encrypted data 111a and 111b, respectively, as shown in FIG. Specifically, encrypted data 111a and 111b are generated by performing encryption processing using encryption keys 221a and 221b on data contained in the LBA ranges 41a and 41b (normal areas), respectively. , is stored in the user data area 11 in the flash memory 1 .
  • Such encryption keys 221a and 221b are generated based on the key information 12a and 12b stored in the management data area 12, respectively, as shown in FIG. Further, both of these encryption keys 221a and 221b are encryption keys composed of fixed (unchangeable) information.
  • the encryption keys 221a and 221b generated in this way are finally stored in the management data area 12 in the flash memory 1, as indicated by the dashed arrows P1a and P1b in FIG. It is designed to be saved.
  • the encryption key 222 is the encryption key applied to the encrypted data 112 as shown in FIG. Specifically, the data contained in the LBA range 42 (secure area) is encrypted using the encryption key 222 to generate the encrypted data 112, which is the user data in the flash memory 1. It is designed to be saved in the area 11.
  • the encryption key 222 is generated based on random numbers obtained from the random number generator 23, as shown in FIG. Specifically, the encryption key 222 is set every time the flash memory system 3 (flash memory 1 and memory controller 2) is switched from an off state to an on state (power-on transition, power startup). A new random number is generated based on such a random number. That is, unlike the above-described encryption keys 221a and 221b, this encryption key 222 is an encryption key composed of variable information.
  • the encryption keys 221a and 221b correspond to a specific example of the "first encryption key” in the present invention.
  • the encryption key 222 corresponds to a specific example of the "second encryption key” in the present invention.
  • the arithmetic processing unit 21 performs various controls on data (user data) in the user data area 11 in the flash memory 1 .
  • Such an arithmetic processing unit 21 is configured using, for example, the above-described microprocessor or the like.
  • FIGS. 2A and 2B are block diagrams showing detailed configuration examples of the arithmetic processing unit 21, respectively.
  • the arithmetic processing unit 21 has a buffer 211 and an encryption/decryption processing unit 212.
  • Various buses (internal buses 81, 82 and They are connected to each other via an external bus 83).
  • an internal bus 81 is connected between the flash memory 1 and the arithmetic processing unit 21, and a buffer 211 and encryption/decryption data in the arithmetic processing unit 21 are connected.
  • An internal bus 82 is connected to the processing unit 212 .
  • An external bus 83 is connected between the arithmetic processing section 21 and the host system 4 .
  • the buffer 211 is a part that temporarily accumulates data read from the flash memory 1 and data to be written to the flash memory 1 . Specifically, the data read from the flash memory 1 is held in the buffer 211 until the host system 4 can receive it. Data to be written into the flash memory 1 is held in the buffer 211 until the flash memory 1 becomes writable.
  • the encryption/decryption processing unit 212 uses the encryption keys 221a, 221b, and 222 described above to perform encryption processing and decryption processing on data, respectively. Specifically, the encryption/decryption processing unit 212 uses encryption keys 221a, 221b, and 222 to encrypt data to be written into the flash memory 1. FIG. The encryption/decryption processing unit 212 also uses the encryption keys 221a, 221b, and 222 to decrypt the data read from the flash memory 1 (encrypted data 111a, 111b, and 112 described above).
  • a buffer 211 is arranged between the flash memory 1 and the encryption/decryption processing unit 212. Therefore, in the example of FIG. 2A, data (encrypted data 111a, 111b, 112) after encryption processing (before decryption processing) by the encryption/decryption processing unit 212 is temporarily held in the buffer 211.
  • a buffer 211 is arranged between the encryption/decryption processing unit 212 and the host system 4 . Therefore, in the example of FIG. 2B, data after decryption processing (before encryption processing) by the encryption/decryption processing unit 212 is temporarily held in the buffer 211 .
  • data erasing in flash memory is generally performed collectively in units of physical blocks, as described above. For this reason, for example, in a case where data that may be left (does not need to be discarded) and data to be discarded coexist in one physical block, may be difficult to deal with.
  • a method (comparative example) of erasing (or degrading) data in the above-described specific area (secure area, etc.) by operating a predetermined backup circuit after the transition to power-off (power-off state) is also possible.
  • the technique of this comparative example requires a dedicated circuit (the above-described backup circuit and a circuit for erasing or degrading data).
  • the backup circuit in particular becomes a burden in terms of cost and mounting area.
  • the method of the comparative example requires a dedicated circuit as described above, so it can be said that it is difficult to improve security with a simple configuration.
  • the arithmetic processing unit 21 in the memory controller 2 performs encryption processing using the encryption keys 221a, 221b, and 222 described above. Such encryption processing and the like will be described in detail below.
  • the arithmetic processing unit 21 (encryption/decryption processing unit 212 described above) performs the following operations depending on whether or not data should be discarded (normal area and secure area settings) when the power is turned off. Encryption processing is performed by a different method.
  • the arithmetic processing unit 21 first encrypts the data contained in the LBA ranges 41a and 41b (normal areas) using the fixed encryption keys 221a and 221b, respectively. Then, the arithmetic processing unit 21 saves the encrypted data 111a and 111b obtained by such encryption processing in the user data area 11, respectively.
  • the arithmetic processing unit 21 encrypts the data contained in the LBA range 42 (secure area) using the encryption key 222 newly generated each time the power is turned on. . Then, the arithmetic processing unit 21 saves the encrypted data 112 obtained by such encryption processing in the user data area 11 .
  • the encryption processing using the encryption keys 221a and 221b described above corresponds to a specific example of the "first encryption processing" in the present invention.
  • the encryption processing using the encryption key 222 described above corresponds to a specific example of the "second encryption processing" in the present invention.
  • the arithmetic processing unit 21 stores the encryption keys 221a and 221b for the normal area in a non-volatile area (for example, the management data area 12 in the flash memory 1 described above) (broken line in FIG. 1). arrows P1a and P1b).
  • the arithmetic processing unit 21 updates the encryption key 222 for the secure area each time the encryption key 222 is newly generated. It is stored in the volatile RAM 22) in the memory controller 2 described above.
  • the arithmetic processing unit 21 stores, for example, key information for generating this encryption key 222 (information on which the encryption key 222 is based) in such a volatile area. It may be stored inside.
  • the encrypted data 112 corresponding to the above-described secure area is actually erased at the following times, like other data (user data). In other words, it is the timing at which all valid data is lost in the relevant physical block, or the timing immediately before writing new data to the relevant physical block. In addition, it is not necessary to distinguish, for example, address management methods between data that is not discarded (encrypted data 111a, 111b, etc.) and data that is discarded (encrypted data 112, etc.) when the power is turned off. I can say In other words, both types of data may be mixedly written in the same physical block in the user data area 11 .
  • the arithmetic processing unit 21 and the like perform, for example, the following processing (startup processing) at the time of the power-on transition (power startup) described above.
  • FIG. 3 is a flow chart showing an example of startup processing according to the present embodiment.
  • the arithmetic processing unit 21 first determines whether the setting of the secure area (LBA range 42) in the management data area 12 is valid or invalid in the above-described command Cm supplied from the host system 4. It is determined whether or not (step S11). Here, if it is determined that the setting of the secure area is invalid (step S11: N), the series of processing (startup processing) shown in FIG. 3 ends.
  • step S11: Y if it is determined that such a secure area setting is valid (step S11: Y), the process is as follows. That is, next, the encryption key 222 applied to such a secure area is generated based on the random number obtained from the random number generator 23 as described above (step S12). Subsequently, the arithmetic processing unit 21 determines whether or not the correction setting for the secure data (encrypted data 112) is valid or invalid in the management data area 12 (step S13). Here, if it is determined that such correction settings are invalid (step S13: N), the series of processes shown in FIG. 3 ends.
  • step S13: Y when it is determined that such correction setting is valid (step S13: Y), the following is performed. That is, next, the arithmetic processing unit 21 determines whether or not the user data area 11 is mapped to the target (correction target) LBA range 42 (step S14). Here, if it is determined that such mapping has not been performed (step S14: N), the series of processes shown in FIG. 3 ends.
  • step S14 if it is determined that such mapping has been done (step S14: Y), the following will occur. That is, next, the arithmetic processing unit 21 executes correction processing of the mapping information in the target (correction target) LBA range 42 . Specifically, the arithmetic processing unit 21 executes correction processing to a predetermined pattern on the target (correction target) encrypted data 112 (step S15). As a result, the pattern in the written data (encrypted data 112) is updated and then supplied to the host system 4 side. Therefore, even when it is desired that data be set to a specific pattern, such as data in the management area of a file system, the encrypted data 112 can be updated to a specific pattern. Further, as shown in parentheses in FIG. 3, for example, deletion processing of the encrypted data 112 may be executed as correction processing for such encrypted data 112 .
  • the data contained in the LBA ranges 41a and 41b are encrypted using the fixed encryption keys 221a and 221b, and the obtained Encrypted data 111 a and 11 b are stored in the user data area 11 .
  • the data contained in the LBA range 42 (secure area) is encrypted using a newly generated encryption key 222 each time the power is turned on (power is activated). The encrypted data 112 thus obtained is stored in the user data area 11 .
  • the encryption key 222 necessary for decryption processing has been lost. I can't get it out.
  • the random number generation unit 23 used to generate the encryption key 222 and the circuit (encryption/decryption processing unit 212) that performs encryption processing using the encryption key 222 are generally used for security purposes. Also (existing circuits and the like can be diverted), unlike the above-described comparative example, a dedicated circuit is substantially unnecessary. For these reasons, in this embodiment, it is possible to improve security with a simple configuration.
  • the encryption keys 221a and 221b applied to the data in the normal area are stored in a non-volatile area (for example, the management data area 12 in the flash memory 1).
  • the encryption key 222 (or key information for generating this encryption key 222) applied to the above-described secure area is changed to a volatile area (for example, a volatile RAM 22).
  • a volatile area for example, a volatile RAM 22.
  • the encrypted data 112 corresponding to the secure area is corrected to a predetermined pattern (for example, the deletion process described above).
  • a predetermined pattern for example, the deletion process described above.
  • encrypted data 111a and 111b are given as examples of encrypted data corresponding to the above-described normal area, and as an example of encrypted data corresponding to the above-described secure area,
  • the encrypted data 112 has been mentioned and explained.
  • the random number generator 23 is provided in the memory controller 2
  • the present invention is not limited to this example. It may be provided outside the controller 2 .
  • the flash memory 1 is a NAND flash memory
  • the present invention is not limited to this example, and a NOR flash memory may be used as the flash memory 1, for example. .
  • the configuration (generation method, storage area, etc.) of the two types of encryption keys was specifically described. is not limited to those described in the above embodiments.
  • the encryption keys 221a and 221b are respectively stored in the management data area 12 in the flash memory 1 as a non-volatile area.
  • these encryption keys 221a and 221b may be stored in other non-volatile areas within the flash memory 1 and memory controller 2, respectively.
  • an example of performing encryption processing and decryption processing using an encryption key has been described. The keys may be separately managed and used.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本発明の一実施の形態に係るメモリコントローラは、フラッシュメモリを制御するメモリコントローラであって、上記フラッシュメモリにおけるユーザデータ領域内のデータに対する制御を行う演算処理部を、備えている。この演算処理部は、上記第1の領域に含まれるデータに対しては、固定化された第1の暗号鍵を用いて、第1の暗号化処理を行うと共に、この第1の暗号化処理により得られる第1の暗号化データを、上記ユーザデータ領域内に保存し、上記第2の領域に含まれるデータに対しては、上記フラッシュメモリおよび上記メモリコントローラの電源がオフ状態からオン状態へと移行する電源オン移行の際ごとに新規に生成される、第2の暗号鍵を用いて、第2の暗号化処理を行うと共に、この第2の暗号化処理により得られる第2の暗号化データを、上記ユーザデータ領域内に保存する。

Description

メモリコントローラおよびフラッシュメモリシステム
 本発明は、メモリコントローラおよびフラッシュメモリシステムに関する。
 不揮発性メモリとしてのフラッシュメモリ等を制御するメモリコントローラや、そのようなメモリコントローラと不揮発性メモリとを備えたメモリシステム(フラッシュメモリシステム等)が、提案されている(例えば、特許文献1参照)。
特表2021-520021号公報
 ところで、このようなメモリコントローラ等では一般に、簡易な構成でセキュリティ性を向上させることが求められている。簡易な構成でセキュリティ性を向上させることが可能な、メモリコントローラおよびフラッシュメモリシステムを提供することが望ましい。
 本発明の一実施の形態に係るメモリコントローラは、フラッシュメモリを制御するメモリコントローラであって、上記フラッシュメモリにおけるユーザデータ領域内のデータに対する制御を行う演算処理部を、備えたものである。この演算処理部は、上記第1の領域に含まれるデータに対しては、固定化された第1の暗号鍵を用いて、第1の暗号化処理を行うと共に、この第1の暗号化処理により得られる第1の暗号化データを、上記ユーザデータ領域内に保存し、上記第2の領域に含まれるデータに対しては、上記フラッシュメモリおよび上記メモリコントローラの電源がオフ状態からオン状態へと移行する電源オン移行の際ごとに新規に生成される、第2の暗号鍵を用いて、第2の暗号化処理を行うと共に、この第2の暗号化処理により得られる第2の暗号化データを、上記ユーザデータ領域内に保存する。
 本発明の一実施の形態に係るフラッシュメモリシステムは、上記本発明の一実施の形態に係るメモリコントローラと、上記フラッシュメモリと、を備えたものである。
 本発明の一実施の形態に係るメモリコントローラおよびフラッシュメモリシステムによれば、簡易な構成でセキュリティ性を向上させることが可能となる。
本発明の一実施の形態に係るフラッシュメモリシステム等の概略構成例を表すブロック図である。 図1に示した演算処理部の詳細構成例を表すブロック図である。 図1に示した演算処理部の他の詳細構成例を表すブロック図である。 実施の形態に係る起動処理の一例を表す流れ図である。
 以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、説明は以下の順序で行う。
1.実施の形態(セキュア領域のデータに対して毎回生成される暗号鍵を用いる例)
2.変形例
<1.実施の形態>
[構成]
 図1は、本発明の一実施の形態に係るフラッシュメモリシステム(フラッシュメモリシステム3)の概略構成例を、外部のホストシステム4とともに、ブロック図で表したものである。このフラッシュメモリシステム3は、例えば、SSD(Solid State Drive)や、eMMC(embedded Multi Media Card)等に相当するシステムである。
 図1に示したように、フラッシュメモリシステム3は、フラッシュメモリ1と、メモリコントローラ2とを、備えている。なお、ホストシステム4と、メモリコントローラ2と、フラッシュメモリ1との間は、図1に示したように、各種のバス91a,91b,92を介して、相互に接続されている。
(A.ホストシステム4)
 ホストシステム4は、フラッシュメモリシステム3を二次記憶装置として使用する、ホストシステムである。ホストシステム4は、このホストシステム4全体の動作を制御するためのCPU(Central Processing Unit)や、フラッシュメモリシステム3と間での各種情報の授受を担うコンパニオンチップ等を、備えている。このようなホストシステム4は、例えば、パーソナルコンピュータ(PC)やデジタルスチルカメラ等の、情報処理装置である。
 ホストシステム4はまた、例えば図1に示したように、所定のコマンドCm(内部コマンド)をフラッシュメモリシステム3へと供給することで、フラッシュメモリシステム3に対して各種処理の実行を指示するようになっている。具体的には、このコマンドCmとは、フラッシュメモリシステム3内のメモリコントローラ2がフラッシュメモリ1に対して、各種処理の実行を指示するためのコマンドである。つまり、フラッシュメモリ1は、メモリコントローラ2から与えられるコマンドCmに従って、各種動作を行うようになっている。
(B.フラッシュメモリ1)
 フラッシュメモリ1は、不揮発性メモリであり、1または2以上のフラッシュメモリチップ(チップ)を用いて構成されている。このフラッシュメモリ1は、例えば、NAND型フラッシュメモリとなっている。このNAND型のフラッシュメモリでは、ページ単位でデータの書き込みおよび読み出しが行われると共に、複数ページにて構成されるブロック単位で、データの消去(一斉消去)が行われる。
 ちなみに、フラッシュメモリ1におけるページおよびブロックはそれぞれ、一般に、物理ページ、物理ブロックとも呼ばれる。これは、ホストシステム4がデータを取り扱うときの単位である、論理ページおよび論理ブロックと区別するためである。
 具体的には、各物理ブロックは、例えば、64個、128個または256個の物理ページを含んでいる。また、各物理ページは、例えば、4個、8個または16個のセクタ(物理セクタ)を含んでいる。各物理セクタは、512バイトのデータ(1セクタのデータ)を格納するために割り当てられた領域である。
 このようなフラッシュメモリ1は、レジスタと、複数のメモリセルが配列されたメモリセルアレイと、を備えている。メモリセルアレイは、複数のメモリセル群と、ワード線と、を有している。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群のうちから特定のメモリセルを選択するためのものである。ワード線を介して選択されたメモリセルと、レジスタとの間で、レジスタから選択されたメモリセルへのデータの書き込み、または、選択されたメモリセルからレジスタへのデータの読み出しが、行われるようになっている。
 また、図1に示したように、このフラッシュメモリ1は、ユーザデータが保存される領域であるユーザデータ領域11と、管理データ領域12と、を備えている。
(ユーザデータ領域11)
 ユーザデータ領域11内には、図1に示した例では、暗号化データ111a,111b,112がそれぞれ、保存(格納)されている。
 暗号化データ111a,111bはそれぞれ、ノーマル領域に含まれるデータ(ユーザデータ)であり、暗号化データ112は、セキュア領域に含まれるデータ(ユーザデータ)である。ノーマル領域とは、フラッシュメモリシステム3(フラッシュメモリ1およびメモリコントローラ2)の電源がオン状態からオフ状態へと移行する際(電源オフ移行の際)における、データ破棄が不要と設定されているLBA(Logical Block Address:論理ブロックアドレス)範囲である。一方、セキュア領域とは、そのような電源オフ移行の際でのデータ破棄が必要と設定されているLBA範囲である。
 なお、そのようなセキュア領域に保存される(電源オフ移行の際でのデータ破棄が必要とされる)ユーザデータとしては、例えば、パスワード、財務情報、医療情報、演算途中のデータ、複写途中のデータ等の、セキュリティ性を有する各種データが挙げられる。
 上記したノーマル領域やセキュア領域(電源オフ移行の際でのデータ破棄の要否)は、例えば前述したコマンドCmにおいて、ホストシステム4側で設定(事前設定)されるようになっている。具体的には、図1に示した例では、ホストシステム4側で設定されたLBA範囲41a,41bによってそれぞれ、後述する暗号鍵221a,221bが適用される領域(ノーマル領域)が、設定されている。また、ホストシステム4側で設定されたLBA範囲42によって、後述する暗号鍵222が適用される領域(セキュア領域)が、設定されている。
 ここで、LBA範囲41a,41bによって設定される領域(ノーマル領域)は、本発明における「第1の領域」の一具体例に対応している。同様に、LBA範囲42によって設定される領域(セキュア領域)は、本発明における「第2の領域」の一具体例に対応している。また、上記した暗号化データ111a,111bはそれぞれ、本発明における「第1の暗号化データ」の一具体例に対応している。同様に、上記した暗号化データ112は、本発明における「第2の暗号化データ」の一具体例に対応している。
(管理データ領域12)
 管理データ領域12は、各種の管理データが保存される領域である。また、図1に示した例では、後述する暗号鍵221a,221bの基となる情報(鍵情報12a,12b)がそれぞれ、管理データ領域12に保存されている。また、この管理データ領域12には、上記したLBA範囲の設定も、保存されるようになっている。
(C.メモリコントローラ2)
 メモリコントローラ2は、ホストシステム4からの命令(前述したコマンドCm)に従って、フラッシュメモリ1を制御するものである。具体的には、メモリコントローラ2は、例えば、ホストシステム4から書き込み要求があった場合には、ホストシステム4から受信したデータ(ユーザデータ)を、フラッシュメモリ1に書き込むようになっている。また、メモリコントローラ2は、例えば、ホストシステム4から読み出し要求があった場合には、フラッシュメモリ1からデータ(ユーザデータ)を読み出して、ホストシステム4へと送信するようになっている。
 このようなメモリコントローラ2は、例えば、マイクロプロセッサ、ホストインターフェースブロック、SRAM(Static Random Access Memory)、バッファ、フラッシュメモリインターフェースブロック、および、ROM(Read Only Memory)、などを含んで構成されている。
 具体的には、図1に示した例では、上記したマイクロプロセッサ等を含んで構成される、演算処理部21、揮発性RAM22および乱数生成部23を、備えている。
(揮発性RAM22,乱数生成部23)
 揮発性RAM22は、例えば上記したSRAM等の揮発性メモリである。図1に示した例では、この揮発性RAM22内に、暗号鍵221a,221b,222が、それぞれ保存されている。
 暗号鍵221a,221bはそれぞれ、図1に示したように、暗号化データ111a,111bに適用される暗号鍵である。具体的には、LBA範囲41a,41b(ノーマル領域)に含まれるデータに対してそれぞれ、暗号鍵221a,221bを用いた暗号化処理が行われることで、暗号化データ111a,111bがそれぞれ生成され、フラッシュメモリ1内のユーザデータ領域11に保存されるようになっている。
 このような暗号鍵221a,221bはそれぞれ、図1に示したように、管理データ領域12内に保存されている鍵情報12a,12bに基づいて、生成されるようになっている。また、これらの暗号鍵221a,221bはいずれも、固定化された(不変の)情報により構成された、暗号鍵となっている。なお、このようにして生成された暗号鍵221a,221bはそれぞれ、例えば図1中の破線の矢印P1a,P1bにて示したように、最終的には、フラッシュメモリ1内の管理データ領域12に保存されるようになっている。
 暗号鍵222は、図1に示したように、暗号化データ112に適用される暗号鍵である。具体的には、LBA範囲42(セキュア領域)に含まれるデータに対して、暗号鍵222を用いた暗号化処理が行われることで、暗号化データ112が生成され、フラッシュメモリ1内のユーザデータ領域11に保存されるようになっている。
 このような暗号鍵222は、上記した暗号鍵221a,221bとは異なり、図1に示したように、乱数生成部23から得られる乱数に基づいて生成されるようになっている。具体的には、暗号鍵222は、フラッシュメモリシステム3(フラッシュメモリ1およびメモリコントローラ2)の電源がオフ状態からオン状態へと移行する際(電源オン移行,電源起動の際)ごとに毎回、そのような乱数に基づき、新規に生成されるようになっている。つまり、この暗号鍵222は、上記した暗号鍵221a,221bとは異なり、可変の情報により構成された暗号鍵である。
 ここで、暗号鍵221a,221bは、本発明における「第1の暗号鍵」の一具体例に対応している。また、暗号鍵222は、本発明における「第2の暗号鍵」の一具体例に対応している。
(演算処理部21)
 演算処理部21は、フラッシュメモリ1におけるユーザデータ領域11内のデータ(ユーザデータ)に対して、各種制御を行うものである。このような演算処理部21は、例えば、前述したマイクロプロセッサ等を用いて構成されている。
 図2A,図2Bはそれぞれ、この演算処理部21の詳細構成例を、ブロック図で表したものである。
 図2A,図2Bに示したように、演算処理部21は、バッファ211および暗号化/復号処理部212を、有している。また、これらのバッファ211および暗号化/復号処理部212と、ホストシステム4と、フラッシュメモリ1との間はそれぞれ、前述したバス91a,91b,92を構成する各種バス(内部バス81,82および外部バス83)を介して、互いに接続されている。具体的には、図2A,図2Bに示したように、フラッシュメモリ1と演算処理部21との間には、内部バス81が接続され、演算処理部21内におけるバッファ211と暗号化/復号処理部212との間には、内部バス82が接続されている。また、演算処理部21とホストシステム4との間には、外部バス83が接続されている。
 バッファ211は、フラッシュメモリ1から読み出されたデータや、フラッシュメモリ1に書き込むデータを、一時的に蓄積する部分である。具体的には、フラッシュメモリ1から読み出されたデータは、ホストシステム4が受け取り可能な状態となるまで、バッファ211に保持されるようになっている。また、フラッシュメモリ1に書き込まれるデータは、フラッシュメモリ1が書き込み可能な状態となるまで、バッファ211に保持されるようになっている。
 暗号化/復号処理部212は、図2A,図2Bに示したように、前述した暗号鍵221a,221b,222を用いて、データに対する暗号化処理や復号処理を、それぞれ行うものである。具体的には、暗号化/復号処理部212は、暗号鍵221a,221b,222を用いて、フラッシュメモリ1に書き込まれるデータに対する暗号化処理を行う。また、暗号化/復号処理部212は、暗号鍵221a,221b,222を用いて、フラッシュメモリ1から読み出されたデータ(前述した暗号化データ111a,111b,112)に対する復号処理を行う。
 なお、このような暗号鍵221a,221b,222を用いた暗号化処理等の詳細については、後述する。
 ここで、図2Aの例では、フラッシュメモリ1と暗号化/復号処理部212との間に、バッファ211が配置されている。したがって、この図2Aの例では、バッファ211内には、暗号化/復号処理部212による暗号化処理後(復号処理前)のデータ(暗号化データ111a,111b,112)が、一時的に保持されることになる。
 一方、図2Bの例では、暗号化/復号処理部212とホストシステム4との間に、バッファ211が配置されている。したがって、この図2Bの例では、バッファ211内には、暗号化/復号処理部212による復号処理後(暗号化処理前)のデータが、一時的に保持されることになる。
 これらのことから、図2A,図2Bに示した構成例同士を比較すると、暗号化処理後(復号処理前)のデータがバッファ211内に保持されている、図2Aの構成例のほうが、図2Bの構成例と比べ、セキュリティ性が更に向上することになると言える。
[動作および作用・効果]
(A.セキュア領域のデータ破棄について)
 ところで、一般に、フラッシュメモリにおける特定領域(例えば前述したセキュア領域)内のデータを、フラッシュメモリシステムにおける電源オフ移行の際(電源オフ時)に、セキュリティ性確保の観点で、破棄したいケースがある。つまり、このセキュア領域内には、例えば前述したような、セキュリティ性を有する各種データが保存されていることから、上記した電源オフ移行後には保持せずに、破棄しておきたいといったケースである。
 また、フラッシュメモリにおけるデータの消去は、一般的には前述したように、物理ブロック単位で一括して行われる。このため、例えば、1つの物理ブロック内で、電源オフ移行の際に残しておいてもよい(破棄しなくてもよい)データと、破棄したいデータとが、それぞれ混在しているような場合には、対処が困難となるケースも生じ得る。
 ここで、例えば、電源オフ移行後(電源オフ状態)に、所定のバックアップ回路を動作させることで、上記した特定領域(セキュア領域等)のデータを消去(あるいは劣化)させる手法(比較例)も、考えられる。ただし、この比較例の手法では、専用の回路(上記したバックアップ回路や、データを消去あるいは劣化させる回路)が、必要となる。このうち、特にバックアップ回路は、コストおよび実装面積の点で、負担となってしまう。
 このようにして比較例の手法では、上記したような専用の回路が必要となることから、簡易な構成でセキュリティ性を向上させることが、困難であると言える。
(B.本実施の形態の動作例)
 そこで、本実施の形態のフラッシュメモリシステム3では、メモリコントローラ2内の演算処理部21において、前述した暗号鍵221a,221b,222を用いた暗号化処理等を、行うようになっている。以下、このような暗号化処理等について、詳細に説明する。
(B-1.暗号化処理)
 まず、上記したような電源オフ移行の際でのデータ破棄の要否(前述したノーマル領域やセキュア領域)の設定は、例えば前述したコマンドCmにて、ホストシステム4側で事前に行われる。具体的には、図1に示した例では、ホストシステム4側で設定されたLBA範囲41a,41bによってそれぞれ、ノーマル領域(上記した電源オフ移行の際でのデータ破棄が不要な領域)が設定されている。また、ホストシステム4側で設定されたLBA範囲42によって、セキュア領域(上記した電源オフ移行の際でのデータ破棄が必要な領域)が設定されている。なお、このようにして設定されたLBA範囲42は、例えば図1中に示したように、演算処理部21からフラッシュメモリ1内の管理データ領域12へと供給され、保存されることになる。
 そして、演算処理部21(前述した暗号化/復号処理部212)は、このような電源オフ移行の際でのデータ破棄の要否(ノーマル領域およびセキュア領域の設定)に応じて、以下のような異なる手法にて、暗号化処理を行う。
 すなわち、演算処理部21は、まず、LBA範囲41a,41b(ノーマル領域)に含まれるデータに対してはそれぞれ、固定化された暗号鍵221a,221bを用いて暗号化処理を行う。そして、演算処理部21は、そのような暗号化処理により得られる暗号化データ111a,111bをそれぞれ、ユーザデータ領域11内に保存する。
 一方、演算処理部21は、LBA範囲42(セキュア領域)に含まれるデータに対しては、上記した電源オン移行の際ごとに新規に生成される暗号鍵222を用いて、暗号化処理を行う。そして、演算処理部21は、そのような暗号化処理により得られる暗号化データ112を、ユーザデータ領域11内に保存する。
 ここで、上記した暗号鍵221a,221bを用いた暗号化処理は、本発明における「第1の暗号化処理」の一具体例に対応している。また、上記した暗号鍵222を用いた暗号化処理は、本発明における「第2の暗号化処理」の一具体例に対応している。
 また、演算処理部21は、上記したノーマル領域用の暗号鍵221a,221bについては、不揮発性領域(例えば前述した、フラッシュメモリ1における管理データ領域12)内に、保存する(図1中の破線の矢印P1a,P1b参照)。一方、演算処理部21は、上記したセキュア領域用の暗号鍵222については、ノーマル領域用の暗号鍵221a,221bとは異なり、暗号鍵222が新規に生成される度に、揮発性領域(例えば前述した、メモリコントローラ2における揮発性RAM22)内に、保存する。なお、この際に演算処理部21は、暗号鍵222自体の代わりに、例えば、この暗号鍵222を生成するための鍵情報(暗号鍵222の基となる情報)を、そのような揮発性領域内に保存するようにしてもよい。
 ちなみに、上記したセキュア領域に対応する暗号化データ112が、実際に消去されるのは、他のデータ(ユーザデータ)と同様に、以下の時点である。すなわち、該当する物理ブロックにおいて、有効なデータが全て無くなったタイミング、あるいは、該当ブロックに対して新規にデータを書き込む直前のタイミングである。また、上記した電源オフ移行の際に破棄しないデータ(暗号化データ111a,111bなど)と、破棄するデータ(暗号化データ112など)とで、例えば、アドレス管理の方法を区別する必要は無いと言える。つまり、ユーザデータ領域11内の同一の物理ブロックに対して、これら双方のデータが、混在して書き込まれるようにしてもよい。
(B-2.起動処理)
 また、本実施の形態では、前述した電源オン移行(電源起動)の際に、演算処理部21等は、例えば以下のような処理(起動処理)を行う。
 図3は、本実施の形態に係る起動処理の一例を、流れ図で表したものである。
 この図3に示した起動処理例において、演算処理部21はまず、ホストシステム4から供給される前述したコマンドCmにおいて、管理データ領域12内のセキュア領域(LBA範囲42)の設定が有効か無効かについて、判定を行う(ステップS11)。ここで、セキュア領域の設定が無効であると判定した場合には(ステップS11:N)、図3に示した一連の処理(起動処理)が終了となる。
 一方、そのようなセキュア領域の設定が有効であると判定した場合には(ステップS11:Y)、以下のようになる。すなわち、次に、そのようなセキュア領域に適用される暗号鍵222が、前述したように、乱数生成部23から得られる乱数に基づいて生成される(ステップS12)。続いて、演算処理部21は、管理データ領域12内において、セキュアデータ(暗号化データ112)への補正の設定が有効か無効かについて、判定を行う(ステップS13)。ここで、そのような補正の設定が無効であると判定した場合には(ステップS13:N)、図3に示した一連の処理が終了となる。
 一方、そのような補正の設定が有効であると判定した場合には(ステップS13:Y)、以下のようになる。すなわち、次に演算処理部21は、対象(補正対象)のLBA範囲42にユーザデータ領域11がマッピングされているのか否かについて、判定を行う(ステップS14)。ここで、そのようなマッピングがされていないと判定した場合には(ステップS14:N)、図3に示した一連の処理が終了となる。
 一方、そのようなマッピングがされていると判定した場合には(ステップS14:Y)、以下のようになる。すなわち、次に演算処理部21は、対象(補正対象)のLBA範囲42におけるマッピング情報の補正処理を、実行する。具体的には、演算処理部21は、対象(補正対象)の暗号化データ112に対して、所定パターンへの補正処理を実行する(ステップS15)。これにより、書き込み済みのデータ(暗号化データ112)におけるパターンが更新されたうえで、ホストシステム4側へ供給されることになる。したがって、例えばファイルシステムの管理領域のデータのように、データが特定のパターンに設定されることが望ましい場合においても、暗号化データ112を特定のパターンに更新することができる。また、例えば図3中の括弧書きで示したように、このような暗号化データ112に対する補正処理として、暗号化データ112の削除処理を実行するようにしてもよい。
 以上で、図3に示した一連の処理が終了となる。
(D.作用・効果)
 このようにして本実施の形態では、LBA範囲41a,41b(ノーマル領域)に含まれるデータに対しては、固定化された暗号鍵221a,221bを用いて暗号化処理が行われ、得られた暗号化データ111a,11bがユーザデータ領域11内に保存される。一方、LBA範囲42(セキュア領域)に含まれるデータに対しては、前述した電源オン移行(電源起動)の際ごとに新規に生成される暗号鍵222を用いて暗号化処理が行われ、得られた暗号化データ112がユーザデータ領域11内に保存される。
 これにより、前述した電源オフ移行後(例えば、電源再起動後)では、セキュア領域のデータを読み出そうとしても、復号処理に必要な暗号鍵222が失われてしまっているため、正常に読み出せないことになる。つまり、そのような電源再起動(再度の電源オン移行)の際に、新たな暗号鍵222が再度生成されることから、読み出せるデータはランダム値になってしまう。また、このような暗号鍵222の生成に使用される乱数生成部23や、暗号鍵222を用いた暗号化処理等を行う回路(暗号化/復号処理部212)などは、一般的なキュリティ用途にも用いられる(既存の回路等を流用可能)ため、前述した比較例とは異なり、専用の回路が実質的に不要となる。これらのことから、本実施の形態では、簡易な構成でセキュリティ性を向上させることが可能となる。
 また、本実施の形態では、上記したノーマル領域のデータに適用される暗号鍵221a,221bは、不揮発性領域(例えば、フラッシュメモリ1における管理データ領域12)内に保存される。一方、上記したセキュア領域に適用される暗号鍵222(または、この暗号鍵222を生成するための鍵情報)は、新規に生成される度に、揮発性領域(例えば、メモリコントローラ2における揮発性RAM22)内に保存される。これにより、フラッシュメモリシステム3(フラッシュメモリ1およびメモリコントローラ2)の電源オフ移行時に、そのような暗号鍵222や鍵情報のデータは破棄されて、使い回しができなくなるとともに、暗号鍵221a,221bのデータは不揮発性領域内に残存することから、その後の再使用が可能となる。これらのことから、本実施の形態では、セキュリティ性を更に向上させつつ、利便性も向上させることが可能となる。
 更に、本実施の形態では、上記した電源オン移行(電源起動)の際に、セキュア領域に対応する暗号化データ112に対して、所定パターンへの補正処理(例えば、前述した削除処理など)を実行するようにしたので、以下のようになる。すなわち、例えば前述したように、暗号化データ112が特定のパターンに設定されることが望ましい場合に、そのような補正処理を実行することで、適切に対応することができるようになる。その結果、本実施の形態では、セキュリティ性を確保しつつ、利便性も向上させることが可能となる。
<2.変形例>
 以上、実施の形態を挙げて本発明を説明したが、本発明はこの実施の形態に限定されず、種々の変形が可能である。
 例えば、上記実施の形態では、ホストシステム、フラッシュメモリおよびメモリコントローラの構成や、演算処理部の構成をそれぞれ、具体的に挙げて説明したが、これらの各構成は、上記実施の形態で説明したものには限られない。具体的には、例えば上記実施の形態では、前述したノーマル領域に対応する暗号化データの一例として、暗号化データ111a,111bを挙げると共に、前述したセキュア領域に対応する暗号化データの一例として、暗号化データ112を挙げて説明した。ただし、これらの例には限られず、ノーマル領域やセキュア領域に対応する暗号化データの数や種類等については、任意に設定することが可能である。また、上記実施の形態では、乱数生成部23が、メモリコントローラ2内に設けられている場合の例について説明したが、この例には限られず、例えば、そのような乱数生成部23が、メモリコントローラ2の外部に設けられているようにしてもよい。更に、上記実施の形態では、フラッシュメモリ1がNAND型フラッシュメモリである場合の例について説明したが、この例には限られず、例えばフラッシュメモリ1として、NOR型フラッシュメモリを用いるようにしてもよい。
 また、上記実施の形態では、2種類の暗号鍵(暗号鍵221a,221bおよび暗号鍵222)の構成(生成方法や保存領域等)について、具体的に挙げて説明したが、これらの各暗号鍵の生成方法や保存領域等については、上記実施の形態で説明したものには限られない。具体的には、上記実施の形態では、暗号鍵221a,221bがそれぞれ、不揮発領域としての、フラッシュメモリ1内の管理データ領域12に保存される場合の例について説明したが、この例には限られない。すなわち、例えば、これらの暗号鍵221a,221bがそれぞれ、フラッシュメモリ1内やメモリコントローラ2内における、他の不揮発領域に保存されるようにしてもよい。また、上記実施の形態では、暗号鍵を用いて暗号化処理および復号処理をそれぞれ行う場合の例について説明したが、例えば、暗号化処理に適用される暗号鍵と、復号処理に適用される復号鍵とをそれぞれ、区別して管理および使用するようにしてもよい。
 更に、上記実施の形態では、演算処理部21による各種の処理例(前述した暗号化処理や起動処理、補正処理等)について、具体的に挙げて説明したが、これらの各種の処理例は、上記実施の形態で説明したものには限られない。具体的には、例えば上記実施の形態では、起動処理の際での補正処理の一例として、暗号化データ112の削除処理を挙げて説明したが、この例には限られず、他の内容の補正処理を実行するようにしてもよい。
 加えて、これまでに説明した各構成例や動作例等を、任意の組み合わせで適用してもよい。

Claims (6)

  1.  フラッシュメモリを制御するメモリコントローラであって、
     前記フラッシュメモリにおけるユーザデータ領域内のデータに対する制御を行う演算処理部を備え、
     前記演算処理部は、
     第1の領域に含まれるデータに対しては、固定化された第1の暗号鍵を用いて、第1の暗号化処理を行うと共に、前記第1の暗号化処理により得られる第1の暗号化データを、前記ユーザデータ領域内に保存し、
     第2の領域に含まれるデータに対しては、前記フラッシュメモリおよび前記メモリコントローラの電源がオフ状態からオン状態へと移行する電源オン移行の際ごとに新規に生成される、第2の暗号鍵を用いて、第2の暗号化処理を行うと共に、前記第2の暗号化処理により得られる第2の暗号化データを、前記ユーザデータ領域内に保存する
     メモリコントローラ。
  2.  前記演算処理部は、
     前記第1の暗号鍵を、不揮発性領域内に保存していると共に、
     前記第2の暗号鍵が新規に生成される度に、前記第2の暗号鍵、または、前記第2の暗号鍵を生成するための鍵情報を、揮発性領域内に保存する
     請求項1に記載のメモリコントローラ。
  3.  前記演算処理部は、前記電源オン移行の際に、
     前記第2の暗号化データに対して、所定パターンへの補正処理を実行する
     請求項1または請求項2に記載のメモリコントローラ。
  4.  前記補正処理が、前記第2の暗号化データに対する削除処理である
     請求項3に記載のメモリコントローラ。
  5.  前記第1の領域が、前記電源が前記オン状態から前記オフ状態へと移行する電源オフ移行の際でのデータ破棄が不要と設定されている、ノーマル領域であると共に、
     前記第2の領域が、前記電源オフ移行の際でのデータ破棄が必要と設定されている、セキュア領域である
     請求項1ないし請求項4のいずれか1項に記載のメモリコントローラ。
  6.  請求項1ないし請求項5のいずれか1項に記載のメモリコントローラと、
     前記フラッシュメモリと
     を備えたフラッシュメモリシステム。
PCT/JP2021/041368 2021-11-10 2021-11-10 メモリコントローラおよびフラッシュメモリシステム WO2023084645A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/041368 WO2023084645A1 (ja) 2021-11-10 2021-11-10 メモリコントローラおよびフラッシュメモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/041368 WO2023084645A1 (ja) 2021-11-10 2021-11-10 メモリコントローラおよびフラッシュメモリシステム

Publications (1)

Publication Number Publication Date
WO2023084645A1 true WO2023084645A1 (ja) 2023-05-19

Family

ID=86335263

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/041368 WO2023084645A1 (ja) 2021-11-10 2021-11-10 メモリコントローラおよびフラッシュメモリシステム

Country Status (1)

Country Link
WO (1) WO2023084645A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149620A (ja) * 2003-11-14 2005-06-09 Fuji Xerox Co Ltd 記憶装置およびファイルシステム
JP2005311719A (ja) * 2004-04-21 2005-11-04 Sharp Corp データ処理装置及び画像形成装置
US20070101158A1 (en) * 2005-10-28 2007-05-03 Elliott Robert C Security region in a non-volatile memory
JP4463320B1 (ja) * 2009-06-12 2010-05-19 株式会社ハギワラシスコム 暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法
US20170220487A1 (en) * 2016-02-02 2017-08-03 Yong-Won Jung System-on-chips and operation methods thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149620A (ja) * 2003-11-14 2005-06-09 Fuji Xerox Co Ltd 記憶装置およびファイルシステム
JP2005311719A (ja) * 2004-04-21 2005-11-04 Sharp Corp データ処理装置及び画像形成装置
US20070101158A1 (en) * 2005-10-28 2007-05-03 Elliott Robert C Security region in a non-volatile memory
JP4463320B1 (ja) * 2009-06-12 2010-05-19 株式会社ハギワラシスコム 暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法
US20170220487A1 (en) * 2016-02-02 2017-08-03 Yong-Won Jung System-on-chips and operation methods thereof

Similar Documents

Publication Publication Date Title
US11368313B2 (en) Data storage devices and methods for encrypting a firmware file thereof
US11030093B2 (en) High efficiency garbage collection method, associated data storage device and controller thereof
JP4713867B2 (ja) メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
US8209463B2 (en) Expansion slots for flash memory based random access memory subsystem
US20090198874A1 (en) Mitigate flash write latency and bandwidth limitation
JP2020095723A (ja) 階層セキュリティを備えたフラッシュ変換層
JP2010509690A (ja) 記憶装置のセキュリティを確保する方法とシステム
TWI668700B (zh) 資料儲存裝置與記憶體裝置之資料處理方法
JP2006048893A (ja) 不良ブロック管理機能を有するフラッシュメモリ装置及びフラッシュメモリ装置の不良ブロック管理方法
CN110908932B (zh) 数据处理装置及其数据保护方法
JP2007094764A (ja) メモリシステム
US8886963B2 (en) Secure relocation of encrypted files
WO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP2006195565A (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
WO2023084645A1 (ja) メモリコントローラおよびフラッシュメモリシステム
US11360912B2 (en) Method for performing adaptive locking range management, associated data storage device and controller thereof
WO2006030421A2 (en) Emulating small block size of flash memory
JP2013062616A (ja) 記憶装置、データ記憶方法、及びデータコントローラ
TWI775284B (zh) 記憶系統、其控制方法及資訊處理系統
TWI684865B (zh) 用來進行適應性鎖定範圍管理之方法以及資料儲存裝置及其控制器
KR100703727B1 (ko) 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
JP2000250818A (ja) 記憶システム、記憶装置及び記憶データ保護方法
JP4031693B2 (ja) 不揮発性メモリおよびこれを有したデータ記憶装置
JP4332134B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP5707695B2 (ja) フラッシュディスク装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2023504809

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 18019329

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21964004

Country of ref document: EP

Kind code of ref document: A1