WO1999038078A1 - Dispositif de stockage, dispositif de cryptage/decryptage et procede permettant d'acceder a une memoire remanente - Google Patents

Dispositif de stockage, dispositif de cryptage/decryptage et procede permettant d'acceder a une memoire remanente Download PDF

Info

Publication number
WO1999038078A1
WO1999038078A1 PCT/JP1999/000170 JP9900170W WO9938078A1 WO 1999038078 A1 WO1999038078 A1 WO 1999038078A1 JP 9900170 W JP9900170 W JP 9900170W WO 9938078 A1 WO9938078 A1 WO 9938078A1
Authority
WO
WIPO (PCT)
Prior art keywords
encryption key
data
key
storage device
encryption
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.)
Ceased
Application number
PCT/JP1999/000170
Other languages
English (en)
French (fr)
Inventor
Yasuhiro Nakamura
Seiji Hiraka
Kazunori Asada
Satoshi Era
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tokyo Electron Ltd
B U G Inc
Original Assignee
Tokyo Electron Ltd
B U G Inc
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 Tokyo Electron Ltd, B U G Inc filed Critical Tokyo Electron Ltd
Priority to EP99901112A priority Critical patent/EP1056015A4/en
Publication of WO1999038078A1 publication Critical patent/WO1999038078A1/ja
Priority to US09/619,860 priority patent/US6457126B1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00217Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source
    • G11B20/00253Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source wherein the key is stored on the record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0822Key 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 key encryption key
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB

Definitions

  • the present invention relates to a storage device used as an external storage device of a computer or the like, and more particularly to a storage device that stores data in an encrypted state.
  • an encryption key is stored in a storage device, and data is encrypted using this encryption key.
  • data stored in a memory and read out from the memory are decrypted using the encryption key.
  • the encryption key is common to all storage devices, if the key of one storage device is known, the key of another mass-produced storage device is also known. The evening may be decoded.
  • the present invention has been made in view of the above situation, and has as its object to provide a storage device that has a function of encrypting and decrypting data and has a low risk of leakage of confidential information such as an encryption key.
  • a storage device includes: a rewritable nonvolatile memory (11) for storing data; and a control unit (11) for accessing the nonvolatile memory.
  • 1 2) is a storage device for storing data
  • a first encryption key is stored in the non-volatile memory, a second symbol key is stored in the control means, and the first symbol key is encrypted by the second symbol key.
  • the control means uses key decryption means (12) for decrypting the first code key using the second encryption key, and uses the first encryption key decrypted by the key decryption means.
  • the first and second encryption keys are used, these are stored in a distributed manner, and the first encryption key is encrypted with the second encryption key. There is less risk that the encryption key will be leaked than in the case of one, and the data will not be stolen.
  • the first encryption key since the first encryption key is stored in a rewritable nonvolatile memory, the first encryption key can be changed for each device or for each fixed number. Therefore, even if the second encryption key is leaked, it is difficult to decrypt the data of all the recording devices.
  • the nonvolatile memory is provided for storing data, and the cost and the like do not increase even if the first encryption key is stored.
  • the second encryption key is common to a plurality of the storage devices, and the first encryption key is common or only to a part of the storage device storing the same second encryption key. Is a unique encryption key. With this configuration, a different encryption key can be used for each device.
  • the non-volatile memory is composed of a flash memory (11), and the control means is composed of a mask storing the second encryption key; ROM (read only memory) (15).
  • ROM read only memory
  • Mask ROM and the like are suitable for mass production, and information including the second key can be manufactured at low cost.
  • the flash memory is rewritable, and can be recorded at any time by changing the first No. key for each device or for each predetermined number.
  • the password may be fetched, and the encrypted first encryption key may be decrypted only when the correct password is entered.
  • the first encryption key is encrypted by a third encryption key generated based on the second encryption key and a password and stored in the nonvolatile memory, and the key decryption is performed.
  • the means include a means for inputting a password, and an input path. Means for generating a third encryption key from a word, and means for decrypting the encrypted first encryption key using the second encryption key and the generated third encryption key. Prepare.
  • the key decryption means is composed of, for example, a decryption program and a means (16) for executing the decryption program, and the decryption program is stored in the non-volatile memory. With such a configuration, a decryption program corresponding to the password can be appropriately recorded in the nonvolatile memory.
  • the key decrypting means, the writing means, and the reading means store a decrypted first encryption key, and include a volatile memory (13) protected from external access.
  • the decrypted first encryption key is stored in RAM (random access memory) and used. If the contents of this RAM can be read externally, the data stored in non-volatile memory will be decrypted. For this reason, volatile memory should be protected against external access.
  • the nonvolatile memory is, for example, a flash memory (11).
  • the key generation means may be configured to generate the first symbol key based on the input password. With such a configuration, it becomes more difficult to specify the first encryption key.
  • the second encryption key may be, for example, an encryption key common to a plurality of storage devices.
  • the control means may be provided with a mask R ⁇ M or the like in which a common encryption key is stored in a plurality of devices, and the cost may be reduced. Can be reduced.
  • the storage device includes:
  • a storage device configured to store data
  • the control unit includes a writing unit (16) for encrypting data using the first and second encryption keys and writing the encrypted data to the non-volatile memory; and reading data from the non-volatile memory to read the data.
  • the data stored in the non-volatile memory is encrypted using a plurality of encryption keys. Therefore, if both encryption keys are not known, the data recorded in the non-volatile memory cannot be decrypted, and it is possible to store highly confidential data more securely than when a single key is used. it can.
  • the second encryption key is an encryption key common to a plurality of storage devices, and is stored in a read-only memory (15) arranged in the control unit.
  • the first key is an encryption key common or unique to only a part of a plurality of storage devices that share the second key.
  • the first encryption key can be easily changed for each storage device.
  • the second encryption key common to the plurality of storage devices is stored in the read-only memory. This makes it possible to mass-produce a memory for storing the second encryption key.
  • the nonvolatile memory is a flash memory (11)
  • the read-only memory is a mask ROM (read-only memory) (15).
  • the storage device includes:
  • Control means (12) comprising read means (16) for decrypting and outputting the data, and prohibiting means (16,22, IDB, 25) for prohibiting external access to the volatile memory.
  • the encryption key is encrypted, but is decrypted when used and stored in volatile memory. Therefore, if this volatile memory is accessed and data is read, the encryption key will be known. In the present invention, such a situation can be prevented because the prohibition means prohibits external access to the volatile memory.
  • the prohibiting unit may be, for example, a sealing unit (25) for sealing the control unit, and a sealing unit sealed between the volatile memory and the decoding unit.
  • An internal bus (IDB) that transmits data over the According to this configuration, since the volatile memory is sealed, the volatile memory cannot be directly accessed from outside. Also, since the bus between the decryption means and the volatile memory is sealed, it is difficult to probe the data on the bus to determine the encryption key.
  • a data bus (DB) to be transmitted and the internal path are configured separately, and the decrypted encryption key is not output on the data path. With this configuration, it is possible to prevent a situation in which the probe for the bus that is drawn outside is monitored to monitor the encryption key.
  • the prohibiting means includes an opening detection means (22) for detecting that the storage device has been opened, and a means (16) for erasing the contents of the nonvolatile memory when the opening detection means detects the opening. ) May be included.
  • a storage device includes:
  • Key storage means (15) for storing a second encryption key
  • the storage device itself can generate the first encryption key. If this encryption key is generated based on, for example, a user's password, the encryption key will be different for each device, and it will be very difficult to decipher the encryption, thus increasing the reliability of the system. Can be.
  • the key generation unit stores the generated first encryption key in the non-volatile memory, and the writing unit and the reading unit encrypt and decrypt the first encryption key stored in the non-volatile memory. It may be used for chemical conversion. According to this configuration, for example, at the time of formatting, the first encryption key is generated and stored in the non-volatile memory, and thereafter, this key is used, so that the processing can be speeded up. it can.
  • the configuration may be such that the first encryption key is generated based on the input password. With such a configuration, it becomes more difficult to specify the first encryption key.
  • the second encryption key is, for example, an encryption key common to a plurality of storage devices, and is stored in a key storage unit including a read-only memory such as a mask ROM.
  • a key storage unit including a read-only memory such as a mask ROM.
  • a storage device includes:
  • a second encryption key storage means (15) for storing a second encryption key
  • Third encryption key storage means (15) for storing a third encryption key
  • the first to third encryption keys are distributed in the apparatus.
  • the encryption / decryption device comprises: a rewritable nonvolatile memory (11) storing a first encryption key; and a readout memory storing a second encryption key.
  • Dedicated memory (15)
  • data can be encrypted and decrypted using two encryption keys.
  • the second encryption key common to a plurality of devices can be arranged in the read-only memory, and the individual encryption key can be stored in the nonvolatile memory.
  • a common encryption key common to a plurality of devices is stored in a read-only memory, and a unique individual encryption key is encrypted with the common encryption key. And store it in rewritable non-volatile memory.
  • the individual encryption key is decrypted using the common encryption key, and the data is decrypted using the decrypted individual encryption key to write the data to the nonvolatile memory.
  • the individual encryption key is decrypted using the common encryption key, and the data read from the nonvolatile memory is decrypted using the individual encryption key.
  • the individual encryption key may be decrypted only when a predetermined password is input.
  • the individual encryption key is encrypted by the third encryption key generated based on the common encryption key and the passcode, stored in the nonvolatile memory, and inputs a password.
  • the third encryption key is generated from the input passcode, and the individual encryption key is decrypted using the common encryption key and the generated third encryption key.
  • the common encryption key and the decrypted individual encryption key may be protected, for example, from external access. With such a configuration, reliability can be further improved.
  • FIG. 1 is a block diagram showing a basic configuration of a storage device, a computer, and a test device according to the first to third embodiments of the present invention.
  • FIG. 2 is a diagram showing an internal configuration of the flash memory and the second ROM.
  • FIG. 3 is a flowchart for explaining the operation of writing data to the flash memory.
  • FIG. 4 is a flowchart for explaining an operation of reading data from the flash memory.
  • FIG. 5 is a flowchart for explaining the test operation.
  • FIG. 6 is a block diagram for explaining an example of a configuration for prohibiting access to an area storing confidential information.
  • FIG. 7 is a diagram showing an example of a configuration for resetting the contents of the SRAM in the test mode.
  • FIG. 8 is a diagram illustrating a configuration of a brush memory of a storage device according to a fourth embodiment of the present invention.
  • FIG. 9 is a flowchart for explaining a data key decryption operation in the second embodiment.
  • FIG. 10 is a block diagram showing a configuration of a storage device according to the fourth to seventh embodiments of the present invention.
  • FIG. 11 is a diagram showing a configuration of the EEPROM shown in FIG.
  • FIG. 12 is a flowchart for explaining an encryption key generation process of the storage device according to the sixth embodiment.
  • FIG. 13 is a flowchart for explaining an encryption key generation / recording process of the storage device according to the seventh embodiment.
  • FIG. 14 is a block diagram showing the structure of the storage device according to the eighth embodiment of the present invention. BEST MODE FOR CARRYING OUT THE INVENTION
  • FIG. 1 shows a configuration of a storage device according to the first embodiment of the present invention.
  • the storage device 10 includes a flash memory 11 and an LSI 12 for accessing the flash memory 11.
  • the flash memory 11 is a block erase type storage element, as is generally known. That is, the flash memory 11 is a memory that includes a plurality of blocks including a plurality of memory cells and can write data to a previously erased block.
  • the storage area of the flash memory 11 includes an area T1, as shown in FIG. 2 (A).
  • Area T1 encrypts and decrypts data
  • the data key k1 is composed of a prime number having a sufficiently large number of bits, and is encrypted by a system key k2 described later.
  • a file allocation table (FAT) indicating a file location, directory information, an empty block table indicating an erased block, and the like are also stored in the flash memory 1.
  • FAT file allocation table
  • the data encrypted by the data key k 1 is also stored in the flash memory 11.
  • the LSI 12 performs various control operations to access the flash memory 11 under the control of the computer 20.
  • the LSI 12 is composed of an SRAMI 3, first and second ROMs 14 and 15 and a controller 16.
  • the SRAM (static random access memory) 13 is a volatile high-speed memory and functions as a work area for the controller 16.
  • the first R ⁇ M (read only memory) 14 is a read-only memory including a mask ROM and the like, and stores an operation program of the controller 16.
  • the second ROM 15 is a read-only memory including a mask ROM or the like. As shown in FIG. 2B, the storage area of the second ROM 15 includes a system key area T2, a decryption program storage area ⁇ 3, an expected value area ⁇ 4, and a hash function area ⁇ 5. included.
  • the system key area # 2 stores a system key k2 which is an encryption key commonly set in all the storage devices 10.
  • the decryption program storage area T3 stores a decryption program for decrypting the data key k1.
  • the expected value area T4 stores an expected value D described later.
  • the hash function area T5 stores a hash function. Different physical addresses are assigned to the flash memory 11, the SRAM 13, and the first and second ROMs 14 and 15.
  • the first address of the system key area T2 of the second ROM 15 is A1.
  • the start address of the decryption program area T3 is A2.
  • the start address of the expected value area T4 is A3.
  • the leading address of the hash function area T5 is A4.
  • the controller 16 is composed of a CPU (Central Processing Unit), a DSP (Digital Signal Processor) and the like and its peripheral circuits. Controller 16 operates according to the program stored in the first: OM14 4 program area. Specifically, the controller 16 performs (1) an operation of writing data to the flash memory 11, (2) an operation of reading data from the flash memory 11, and (3) a memory in the storage device 10. Perform the test operation to be tested.
  • CPU Central Processing Unit
  • DSP Digital Signal Processor
  • the controller 16 is functionally composed of an IZO buffer (interface circuit) 161, a control unit 162 connected to the interface circuit 161, and an address counter 163. You.
  • the interface circuit 161 is connected to an external computer 20 and a test device 30 via a bus (data bus and control bus) 21.
  • the address counter 163 is connected to the address terminals Add of the flash memories 11 and 13 and the first and second OMs 14 and 15 via the address bus.
  • control terminal of the control unit 162 is connected to the control terminals Cont of the flash memory 11, the SRAM 13, and the first and second ROMs 14 and 15 via a control bus.
  • the first data input / output terminal of the control unit 16 2 is connected via the data path DB. Connected to data terminal Data of flash memory 11 and first ROM14.
  • the second data input / output terminal of the control unit 162 is connected to the SRAM 13 and the data terminal Data of the second ROM 15 via the internal data bus IDB.
  • the SRAMI 3, the first and second ROMs 14 and 15, the controller 16 and the internal data bus IDB are integrally molded of resin or the like. Therefore, the data stored in the SRAM I3 and the second ROM 15 is not output to the outside of the LSI 12. That is, the data stored in the SRAM 13 and the second ROM 15 are protected against external access.
  • This storage device 10 is connected to the computer 20 by a cable or plug-in.
  • the computer 20 displays a message such as “Please enter a password” on a display screen (not shown), for example.
  • a message such as “Please enter a password” on a display screen (not shown), for example.
  • the user enters the password.
  • the driver of the computer 20 and the control unit 162 of the controller 16 mutually authenticate each other based on the password. Then, when the mutual authentication is successful, the use of the storage device 10 is permitted. On the other hand, if the mutual authentication fails, the control unit 162 prohibits subsequent access.
  • control unit 162 outputs a command requesting transmission of write data to the bus 21 via the I / O buffer 161 (step S).
  • the computer 20 sends the total amount of data to be written and the starting logical address. Subsequently, the computer 20 sequentially transmits the write data.
  • the control unit 162 fetches the total amount of data and the start logical address transmitted from the computer 20 via the IZO buffer 161 (step S2).
  • the control unit 16 2 reads out the encrypted data key k 1 from the area T 1 of the flash memory 11 onto the SRAM 13. Further, the decryption program stored in the decryption program area T3 is executed, and the data key k1 is decrypted on the SRAM 13 using the system key k2, thereby generating a plaintext data key k1. Then, the generated data key k1 is stored in the SRAM 13 (step S3).
  • control unit 162 refers to the free block table stored in the flash memory 11 to specify a free block to be written. Then, the physical address of the empty block specified as the writing target is set in the address counter (step S4).
  • the computer 20 sequentially outputs the data to be written onto the data path 21.
  • the control unit 16 receives the data supplied from the computer 20 (Step S5). Then, the control unit 162 encrypts the fetched data using the plaintext data key k1 held in the SRAM 13 (step S6).
  • the control unit 162 outputs the write control signal to the control bus, and outputs the encrypted data to the data bus DB.
  • the encrypted data output to the data bus DB is written into the flash memory 11 at the position indicated by the address counter 163 (step S7).
  • the control unit 162 determines whether or not the processing has been completed for all data (step S8). If the processing has not been completed, the address counter 16 3 is updated (step S 9), and the process returns to step S 5 to take in the next data, encrypt the data, and store it in the next storage area of the flash memory 11. Write.
  • step S9 If the current block to be written is full, the next empty block is selected in step S9, and the physical address of the selected empty block is set in the address counter 163. Write data to empty blocks.
  • control unit 162 After storing the data, the control unit 162 updates the FAT, directory information, empty block table, and the like stored in the flash memory 11. Further, the data key k1 stored in the SRAM 13 is deleted (step S10), and the process is terminated.
  • the computer 20 When reading data from the storage device 10, the computer 20 outputs a read command to the storage device 10 via the path 21.
  • the control unit 162 decodes this command. Then, when it is determined that this command is an instruction to read data, the processing shown in FIG. 4 is started. First, the control unit 162 outputs a command requesting transmission of the first logical address and the total amount of data to be read on the bus 21 via the IZO buffer 161 (step S11). ).
  • the computer 20 In response to this request, the computer 20 notifies the controller 16 via the bus 21 of the start address (logical address) and the total amount of data to be read.
  • the control unit 162 receives the start address and the total amount of data via the IZO buffer 161 (step S12).
  • control unit 162 executes the decryption program stored in the decryption program area T3. Then, according to the decryption program, the encrypted data key k1 is read from the data key area T1 of the flash memory 11 and decrypted using the system key k2 to generate a plaintext data key kl. Then, the data is stored in SRAM 13 (step S 13).
  • control unit 162 determines the physical address where the read target file (data) is stored based on the FAT and directory information stored in the flash memory 11. Then, the determined physical address is set in the address counter 163 and output to the internal data bus IDB (step S14).
  • control unit 162 outputs a read control signal, and reads data stored in the physical address designated by the address counter 1663 via the data bus DB (step S15).
  • the control unit 162 decrypts the read data using the data key k1 stored in the SRAM 13. Next, the control unit 162 transmits the decrypted data to the computer 20 via the 10 buffer 161 and the path 21 (step S16).
  • step S17 the controller 162 determines whether or not the reading is completed.
  • the control unit 162 specifically determines, for example, whether or not the total amount of the read data matches the total amount instructed by the computer 20. If the reading has not been completed, the address counter 1663 updates the physical address (step S18).
  • control unit 162 reads out, decodes and outputs the data while sequentially updating the physical address in the same manner.
  • control unit 162 erases the data key on the SAM 13 (step S19), and ends the read operation.
  • the common encryption key (system key k 2) is stored in the second OM 15 of the plurality of storage devices 10, and the encryption key unique to each storage device 10 is stored.
  • Data key k 1 is stored in the flash memory 11.
  • the data key kl has been previously encrypted with the system key k2. Therefore, without knowing both the data key k 1 and the system key k 2, the data recorded in the flash memory 11 cannot be decrypted. Therefore, even when highly confidential data is stored in the flash memory 11, leakage of the confidential data can be effectively prevented.
  • system key k2 common to the plurality of storage devices 10 is recorded in the second ROM 15 composed of a read-only memory suitable for mass production such as a mask ROM, and the individual data key k1 is recorded. If the data is recorded in the flash memory 11 for use, it is possible to suppress the rise in cost.
  • the data key k1 is set for each storage device 10, for some reason, if both the data key k1 and the system key k2 of a certain storage device 10 are known, the other storage device The data stored in 10 cannot be decrypted. Therefore, damage can be minimized (one). Further, according to this configuration, transmission and reception of data between the SRAM 13 and the second ROM 15 and the controller 16 are performed via the internal data bus IDB. Therefore, data transmitted and received from outside the LSI 12 cannot be observed. Therefore, leakage of confidential information including the decrypted data key k1 and system key k2 can be prevented.
  • the storage device 10 is tested at the time of manufacture and shipment, and the flash memory 11, the SRAM 13, the first ROM 14 and the second ROM 15 can store data correctly, or Confirm that the data is correctly stored.
  • the system key k2 @ decryption program is already recorded at the time of the test. It is not desirable that the system key k2 ⁇ decryption program leaks to the outside even if it is a test.
  • a special test mode is used as the test of the second ROM 15.
  • the storage device 10 When the storage device 10 is to be tested, the storage device 10 is connected to an external test device 30 or the like, and the test device 30 sends a test command to the controller 16.
  • the control unit 162 starts the processing shown in FIG. 5 in response to the test command.
  • control unit 162 tests the flash memory 11 (step S21).
  • the test of the flash memory 11 is specifically performed according to the following procedure. That is, first, the control unit 162 initializes the flash memory 11 and checks that data "0" is stored in the entirety. Next Then, the control unit 162 writes “1” to the flash memory 11 and reads it to confirm that the write data and the read data match.
  • the flash memory 11 contains an error bit with a certain probability, and when an error bit is detected, its position and the like are also determined.
  • control unit 162 tests the SRAMI 3 (step S22).
  • control unit 162 writes a predetermined value to all the bits of the SRAM 13 while sequentially updating the address.
  • data is read from the SRAM 13 and the test device 30 determines whether or not the written data and the read data match.
  • the control unit 162 tests the first ROM 14 (step S23).
  • the test of the first ROM 14 is performed by reading the data stored in the first ROM 14 and confirming with the test device 30 that the read data matches the expected value.
  • the control unit 16 2 tests the second ROM 15.
  • the test of the second ROM 15 is basically the same as the test of the first ROM 14. That is, this is performed by reading the stored data and determining whether or not correct data is stored.
  • the system key k2 and the decryption program may be known to a third party, and the data key kl and the system key k2 may be stolen or misused. Therefore, different test methods are used for the system key area T2 and the decryption program area T3.
  • control unit 162 sets the first address A1 of the second ROM 15 in the address counter 163 (step S24).
  • the control unit 162 sends the address indicated by the address counter 163 to the system key It is determined whether or not the address indicated by the address address counter 163 of the decryption program area T3 or the address T2 ⁇ A3) (step S25). If it is determined that the addresses are in these areas, the address is updated without doing anything (step S26), and the process returns to step S25.
  • step S27 the data is read out and supplied to the test device 30 (step S27). Further, it is determined whether or not the next address exists (step S28), and if so, the address is updated (step S26) and the process returns to step S25.
  • control unit 162 sequentially reads out the storage data from the address A3 of the second ROM 15 and outputs it to the bus 21 via the IO buffer 161.
  • the test apparatus 30 determines whether or not the read data matches a predetermined recording pattern, and if not, determines the address.
  • control unit 162 reads out the hash function H stored in the hash function area T5 (step S29). Next, the control unit 162 reads the set Di of the expected value stored in the expected value area T4 (step S30).
  • the control unit 162 obtains a value obtained by substituting the two data into the hash function H for a set of data of predetermined bytes sequentially read from the system key area D2 and the decryption program area T3 (step S3). 1). Specifically, the control unit 162 reads the i-th data set of the data of the predetermined bits sequentially read from the system key area T2 and the decryption program area T3. When the set obtained is ai and bi, a value H (ai, bi) obtained by substituting ai and bi into the hash function H is obtained.
  • the control unit 162 repeats the comparison operation until all the stored data of the system key area T2 and the decryption program area T3 are read. For example, if the total of the size of the system key area T2 and the size of the decryption program area T3 is 4 kbytes, and if the sizes of a and b are 5 and 12 bytes, the work is performed four times. repeat.
  • control unit 162 transmits a match detection signal to the test device 30 (step S33). If there is any mismatch even once, the control unit 162 transmits a mismatch detection signal to the test device 30 (step S34). This ends the test operation.
  • the quality of the memory in the storage device 10 is inspected without disclosing confidential information such as a system key k2 ⁇ decryption program to a tester. be able to.
  • test method is only an example. Therefore, if the system key k 2 ⁇ the decrypted data key k 1 is not output outside the LSI 12, any testing method may be used. For example, a test using the above-described hash function H may be performed on all data stored in the second ROM 15. Further, the expected value Di may be provided from the test device 30 to the storage device 10.
  • the function H is not limited to a hash function. However, the function H is preferably a one-way function in which a plurality of variables correspond to one operation result. With this configuration, even if the expected value Di is known to a third party, The system key k 2 and the decryption program itself cannot be specified.
  • the control unit 162 sequentially writes and reads data in the test mode. However, when the test mode is set, the storage device 10 directly connects the external bus 21 and the internal bus until the test mode is released, and the test device 30 It may be configured so that the memory can be directly accessed.
  • the second ROM 15 is set to the disabled state so that external direct access is not accepted (prohibited). It is desirable to mask the address signal. Specifically, for example, as shown in FIG. 6, the upper address signal may be decoded.
  • the plaintext data key k 1 is stored in the SRAM 13.
  • the data key k1 may be disclosed to a third party.
  • the control unit 162 may send a reset signal to the SRAM 13 to reset it.
  • the reset signal may be turned off so that a test can be executed according to external control.
  • the data key k1 when the system key k2 is leaked, the data key k1 can be decrypted using the system key k2. However, it is also possible to configure so that the data key cannot be decrypted only by knowing the system key k2.
  • a second embodiment having such a configuration will be described below.
  • the basic configuration of the storage device of this embodiment is the same as the configuration shown in FIG. 1, and the data key k 1 is stored in the data key area T 1 of the flash memory 11.
  • the data key k 1 stored in the data key area T 1 is encrypted using a value obtained by combining the system key k 2 and the predetermined value RN as a ⁇ key.
  • the predetermined value RN is a value generated by a random number generation program of a type whose output value depends on the initial value.
  • the password PW for decryption is used as this initial value.
  • the flash memory 11 stores a decryption program and a random number program.
  • the decryption program is a program for decrypting the data key k1 based on the pass key PW.
  • the random number program is substantially the same as that used when generating the above-mentioned predetermined value RN.
  • the driver on the computer 20 requests the user to input a passcode.
  • the driver supplies an instruction signal for instructing decryption of the data key kl and a password input together with the instruction signal to the controller 16 via the bus 21.
  • the controller 162 receives the password in response to the instruction signal (FIG. 9, step S41), and starts the random number program. Then, the received password is given as an initial value (step S42). In this random number generation program, the output value depends on the initial value, and the output value is determined by the initial value.
  • the control unit 162 creates an encryption key by combining the random number RN generated by the random number program with the system key k2 (step S43).
  • the encryption key is obtained by adding the system key k 2 and the random number RN to each other (“k 2 + RNJ”). , Or concatenated with each other (“k 2; RN”) or multiplied with each other (“k 2.; N”).
  • control unit 162 decrypts the data key k1 using the created encryption key (step S44).
  • control unit 162 encrypts the data supplied from the computer 20 using the decrypted data key k1 and stores the data in the brush memory 11. Then, the control unit 162 decodes the data read from the flash memory 11 and supplies the data to the computer 20.
  • an encryption key and a decryption program for encrypting the data key k 1 can be individually created for each storage device 10 and stored in the flash memory 11. As a result, the encryption key can be made different for each storage device 10.
  • a decryption program and a random number program may be encrypted with the system key k2 and stored in the flash memory 11.
  • these programs are executed, and the process of decrypting the data key is executed.
  • the decryption program of the second embodiment can employ any configuration as long as the data key k1 can be decrypted based on information identifying a user such as a password.
  • Equation 1 For example, generate a temporary encryption key kt based on the password PW, As shown in Equation 1, the data key k1 is encrypted with the temporary key key kt, and the encryption result is encrypted with the system key k2. The result k1d is stored in the area T1 of the flash memory 11. You can.
  • the temporary encryption key kt may be generated, for example, by using a password PW as a seed and generating a random number. (Formula 1)
  • the data k 1 d stored in the area D 1 is decrypted with the system key k 2 (kt ( k 1)).
  • a temporary symbol key kt is generated based on the input password PW.
  • the data key k1 may be decrypted using the temporary encryption key kt.
  • the system key k2 is stored in plain text in the second ROM 15.
  • the system key k 2 may be stored in the second ROM 15 in a state of being encrypted with the temporary symbol ⁇ k t. In this case, after the system key k2 is decrypted using the temporary symbol key kt, a process of decrypting the data key k1 is performed.
  • the first ROM 14 and the second ROM 15 are provided separately.
  • the first ROM 14 and the second ROM 15 may be different areas of one ROM.
  • the data bus is configured so that the communication contents between the ROM and the controller 16 do not leak outside the LIS 12.
  • the system key k2 does not need to be common to all the storage devices 10, and the system key k2 may be changed every fixed number. Further, the data key k1 does not need to be different for each storage device 10, and may be common to a plurality of storage devices 10. However, it is desirable to set the data key k1 to be different between the storage devices 10 having the same system key k2. (Third embodiment)
  • the data key kl is stored in the flash memory 11 after being encrypted using the system key k2.
  • the data key k 1 is stored in the flash memory 11 after being encrypted using the temporary encryption key k t.
  • the data key k 1 may be stored in the flash memory 11 as plain text.
  • the data may be encrypted and decrypted using both the data key k1 and the system key k2.
  • a third embodiment of the present invention in which data is encrypted and decrypted by using both the data key k1 and the system key k2 will be described.
  • the configuration of a storage device 10 according to the third embodiment of the present invention is substantially the same as the configuration in the first embodiment shown in FIG.
  • the general encrypted data is stored in the flash memory 11.
  • the data key k 1 is stored in plain text in the area T 1 of the flash memory 11. Since the data key k1 is stored in plain text in the area T1, the second ROM 15 does not need to store a decryption program for decrypting the data key k1. Lya
  • T3 is not required.
  • the operation of the storage device 10 and the computer 20 (or the test device 30) having the above configuration will be described.
  • the operation of the mutual authentication between the computer 20 and the storage device 10 is substantially the same as the operation at the time of the mutual authentication of (0) in the first embodiment.
  • the operation for writing data to the storage device 10 is also substantially the same as the above-described (1) write operation in the first embodiment.
  • step S3 the control unit 162 simply reads out the data key k1 from the area T1 of the flash memory 11 and stores it in the SRAM 13. That is, the data key k1 is not decrypted.
  • step S6 the control unit 162 encrypts the data fetched from the computer 20 in step S5 using the data key kl and the system key k2 held in the SRAM 13. .
  • control unit 162 performs addition (k1 + k2), concatenation (k1; k2), multiplication (k1 ⁇ k2), and the like of the data key k1 and the system key k2. Then, a new key is generated, and the data is encrypted using this key. Alternatively, the data is encrypted with the data key k1, and the encrypted data is further encrypted with the system key k2.
  • step S10 the control unit 162 updates the empty block table, FAT, directory information, etc., and erases both the data key k1 and the system key k2 stored in the SRAM 13 Then, the process ends.
  • the operation for reading data from the storage device 10 is also substantially the same as the above-described (2) read operation in the first embodiment.
  • step S13 when the control unit 162 reads the plaintext data key k1 from the area T1 of the flash memory 11, it stores it in the SRAM13. Further, the system key k 2 is read from the system key area T 2 of the second ROM 15 and stored in the SRAM 13.
  • step S16 the control unit 162 decrypts the data read in step S15 using the system key k2 in addition to the data key k1 on the SRAM 13 , Generate plaintext data.
  • step S19 the controller 16 erases both the data key k1 and the system key k2 on the SRAM 13 and ends the read operation.
  • data is encrypted and decrypted using data key kl and system key k2. Therefore, the data key kl and the system key Without knowing both k2, the data recorded in the flash memory 11 cannot be decrypted. For this reason, highly confidential data can be stored more securely than when a single encryption key is used.
  • the data key k 1 and the system key k 2 are distributed and stored at different positions in the storage device 10. This makes it difficult to identify the encryption key.
  • the system key k2 is sealed in LSI12, and the system key k2 cannot be directly known from outside. Further, if the data key kl is individually set for each storage device 10, even if the data key k 1 is known for a certain storage device 10, the data key k 1 is known for another storage device 10. 1 cannot decrypt the data. Therefore, damage can be minimized (one vehicle).
  • the operation of testing the flash memory 11, the SRAM 1.3, and the first ROM 14 is substantially the same as the above-described test operation (3) in the first embodiment. It is.
  • control unit 162 executes the processing of steps S29 to S34 in the first embodiment. The same process is performed on the second ROM 15 to test the second ROM 15.
  • control unit 162 reads the expected value set Di and the hash function H from the expected value area T4 and the hash function area T5 in the second ROM 15. Next, a value is obtained by substituting a set of data of predetermined bytes sequentially read from the second ROM 15 into the read hash function H. Then, it is determined whether or not the obtained value yi matches the expected value Di.
  • the control unit 162 repeats the comparison operation until all the data stored in the second ROM 15 is read. Then, when all the calculation results match all the expected values, a match detection signal is transmitted to the test device 30 and the test operation is terminated. You. If there is no match even once, a mismatch detection signal is transmitted to the test device 30 and the test operation is terminated.
  • test method is an example, and any test method may be employed as long as the system key k2 is not output to the outside of LSI12.
  • the test using the above-described hash function H is performed only for an area in which highly sensitive information is stored, such as an area in which the system key k 2 is stored. And for other areas, the first RO
  • the stored data may be sequentially read out and compared with the expected value.
  • the expected value Di may be provided from the test device 30 to the storage device 10.
  • data is encrypted and decrypted using two encryption keys, a data key k 1 and a system key k 2.
  • data may be encrypted and decrypted using three or more encryption keys.
  • a fourth embodiment using three or more encryption keys will be described.
  • controller 16 is
  • the basic operation of the storage device 10 of this embodiment is the same as the basic operation of the storage device 10 of the third embodiment.
  • the data received from the computer 20 is encrypted by the data key kl, the system key k2, and the 3 using the encryption key k3.
  • Decryption of data read from the flash memory 11 is also performed using the data key kl, the system key k2, and the third encryption key k3.
  • the method of data encryption is arbitrary.
  • the method of creating the encryption key is arbitrary.
  • data received from the computer 20 may be encrypted with a data key k1, further encrypted with a system key k2, and further encrypted with a third encryption key k3.
  • the data read from the flash memory 11 is decrypted with the third encryption key k3, the decrypted data is decrypted with the system key k2, and this is further decrypted. This is performed by decrypting with the key k 1.
  • a new symbol key is generated by performing operations such as addition (kl + k2 + k3) and concatenation (k1; k2; k3) on these three symbol keys. May be used to encrypt the data.
  • the storage location of the third key code k3 is not limited to the EEPROM 160.
  • any area of the second R ⁇ M 15 may be used.
  • each encryption key (data key kl, system key k2, third key code k3) is stored in each memory as plain text.
  • each encryption key may be read, and the data key may be decrypted and decrypted.
  • the encryption key itself may be encrypted and stored in each memory.
  • the third encryption key k3 may be encrypted with the system key k2 and recorded in the EEPROM 164.
  • the third key code k3 is decrypted using the system key k2.
  • the data is encrypted or decrypted using the decrypted third encryption key k3.
  • the third encryption key k 3 is encrypted, but is decrypted when used and stored in the SRAM 13. Therefore, if the SRAM 13 is externally accessed and data is read, the third key k 3 will be known. However, in the physical configuration shown in FIG. 10, external access to the SRAM 13 is prohibited due to sealing and bus division, etc., so the third plaintext key k 3 Leakage is prevented.
  • each No. key (data key kl, system key k2, third No. key k3) is stored in the nonvolatile memory in advance.
  • the encryption key may be temporarily generated.
  • a sixth embodiment having such a configuration will be described.
  • the basic configuration of the storage device 10 of this embodiment is substantially the same as the configuration shown in FIG. However, as shown in FIG. 11, the EEPROM 164 stores a random number program that outputs a value determined according to the set initial value and a symbol key generation program.
  • the computer 20 requests the user to input a password according to the request of the storage device 10 (or according to the request of the driver on the computer 20) (Step S5 1).
  • the control unit 162 activates the random number program and sets the supplied password as an initial value (step S52). 5 3).
  • the random number program When the random number program is executed, it generates one value corresponding to the initial value.
  • the control unit 16 2 stores this value in the SRAM 13 and uses it as the third encryption key k 3 (Step S54).
  • the subsequent data read operation and write operation are the same as in the fifth embodiment.
  • the timing for generating the third encryption key k3 is arbitrary.
  • the third encryption key k 3 may be generated at the time of starting use of the storage device 10 or at the time of accessing the flash memory 11.
  • the third encryption key k3 has a different value. Therefore, according to this embodiment, the encryption of the stored data cannot be decrypted unless a correct password is input. Therefore, even if the system key is leaked, the stored data can be held safely.
  • the random number program may be encrypted with the data keys k 1 and Z or the system key k 2 and stored in the flash memory 11.
  • the storage location of the encryption key generation program including the random number program is not limited to EEPROM 164, but is arbitrary.
  • an encryption generation program is stored, and the encryption key obtained by executing this encryption program is stored in the first or second storage. It may be used as an encryption key for the server.
  • the basic configuration of the storage device 10 of this embodiment is substantially the same as the configuration shown in FIG. However, in this embodiment, when the storage device 10 is used for the first time (for example, when the storage device 10 is formatted), the user uses the storage device 10 as a computer 2 having a predetermined driver function. 0, and specify the data key setting from computer 20 to storage device 10. Is transmitted.
  • control unit 162 In response to this instruction signal, the control unit 162 starts the processing shown in FIG. 13 and requests the computer 20 to supply a password (step S61).
  • a password is supplied from the computer responding to this request according to the operation of the user or the like, the control unit 162 receives the password (step S62), and executes a predetermined process including, for example, a format process. Processing is performed (step S63).
  • control section 162 starts the random number program with the supplied password (or the value indicated by the password) as an initial value (step S64).
  • the control unit 162 stores the obtained random number value as the data key k1 in the area T1 (step S65), and ends the processing.
  • the storage device 10 encrypts and decrypts data using the data key k 1 and the system key k 2 (in the fourth embodiment, further, a third symbol key k 3). .
  • the data key is generated based on the password input by the user himself. Further, since the data key k1 only needs to be read from the flash memory 11, the processing time for encryption / decryption can be reduced.
  • the data key k1 may be encrypted with the system key k2. In this case, operations such as writing data to the flash memory 11 in a normal state and reading data from the flash memory 11 are the same as those in the first embodiment, for example.
  • the invention is more complete when combined with tamper-free technology. That is, it is desirable that the storage data be destroyed when the housing 25 of the storage device 10 is opened.
  • the storage device 10 of this embodiment includes micro switches 22 arranged at a plurality of locations in a housing 25, a capacitor (or a secondary battery) 23, and an OR gate 24. It has.
  • the microswitch 22 is normally in an off state, and is turned on when the housing 25 is opened. When at least one of the microswitches 22 is turned on, this ON signal is supplied to the control unit 162 as an interrupt signal via the OR gate 24.
  • control unit 16 2 In response to this interrupt signal, the control unit 16 2 initializes the flash memory 11 and SRAM 13. At this time, the power required for initialization is supplied from a capacitor (or a secondary battery) 23.
  • the control unit 162 when a part of the housing 25 is opened, the control unit 162 performs an interrupt process. If this interrupt process is a process for erasing the contents of the flash memory 11 and the contents of the SRAM 13, the contents of the flash memory 11 and the contents of the SRAM 13 are erased. Therefore, it is possible to prevent the confidential information stored in the flash memory 11 from leaking to a third party.
  • the flash memory 11 be capable of erasing the entire memory at once.
  • the control unit 16 2 When erasing sequentially in block units, a free block table is referenced, blocks that are not empty are erased first, and empty blocks are erased last.
  • DOS disk operating system
  • the data may not be actually erased by rewriting the first character to a predetermined code.
  • the other data when erasing data, if there is other data in the block where the data to be erased is located, the other data is moved (copied) to a free block before that block. Should be physically deleted.
  • the stored data may be forcibly erased when the package of the LSI 12 is opened by using a well-known tamper-free technology. Thereby, the reliability of the storage device 10 can be further improved.
  • the storage contents of the EEPROM 164 may be automatically erased when the case of the storage device 10 or the package of the controller 16 is opened. According to this, the third key code k3 is prevented from leaking to a third party, and the reliability is further improved.
  • the present invention is also applicable to a device that encrypts and outputs received plaintext data and decrypts and outputs received ciphertext.
  • confidential information stored in the storage device Information can be stored safely, and the reliability of the recorded contents of the storage device can be improved.

Landscapes

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

Description

明細書 記憶装置、 暗号化 · 復号化装置、 及び不揮発性メモリのアクセス方法 この特許出願は、 平成 1 0年 1月 2 1 日に日本国特許庁に出願された 特願平 1 0— 9 3 0 3のパリ条約に基づく優先権を主張する出願であり、 この日本国特許出願の内容は参照のため、 この明細書に取り込むものと する。 技術分野
この発明は、 コンピュー夕等の外部記憶装置等として使用される記憶 装置に関し、 特に、 データを暗号化した状態で保存する記憶装置に関す る。 背景技術
コンピュータ技術の発展に伴い、 機密情報の保護の必要性が増大して いる。 このため、 データを暗号化して記憶したり、 送信したりする暗号 化技術の重要性が高まっており、 例えば、 記憶装置に暗号鍵を格納して おき、 データをこの暗号鍵を用いて暗号化してメモリに格納し、 メモリ から読み出されたデータをこの暗号鍵を用いて復号化すること等が行わ れている。
しかし、 暗号鍵を全ての記憶装置に共通にすると、 1つの記憶装置の 喑号鍵が知られると、 大量生産されている他の記憶装置の喑号鍵も知ら れることになり、 記憶デ一夕が解読されるおそれがある。
記憶装置に個別に暗号鍵を設定することも可能であるが、 製造工程が 増加し、 記憶装置の製造コス トが上昇してしまう。 また、 コンピュータで全てのデータを暗号化してメモリカ一ドに格納 し、 メモリ力一ドから読み出したデータをコンピュータで復号化する技 術も知られている。 しかし、 この方法では、 コンピュータと記憶装置間 の通信をモニタすることにより、暗号鍵が知られてしまうおそれがある。 この発明は上記実状に鑑みてなされたもので、 データを暗号化及ぴ復 号化する機能を備え、 且つ、 暗号鍵等の機密情報の漏洩の虞の少ない記 憶装置を提供することを目的とする。
また、 この発明は、 たとえ、 一部の記憶装置の暗号鍵等が漏洩しても、 他の記憶装置の暗号鍵が漏洩することのない記憶装置を提供することを 他の目的とする。 発明の開示
上記目的を達成するため、この発明の第 1の観点にかかる記憶装置は、 データを記憶するための書換可能な不揮発性メモリ ( 1 1 ) と、 前記不揮発性メモリをアクセスするための制御手段 ( 1 2 ) とより構 成され、 データを記憶するための記憶装置であって、
前記不揮発性メモリに第 1の暗号鍵が格納され、 前記制御手段内に第 2の喑号鍵が格納され、 前記第 1の喑号鍵は、 前記第 2の喑号鍵により 暗号化されており、
前記制御手段は、 前記第 2の暗号鍵を用いて前記第 1の喑号鍵を復号 化する鍵復号手段 ( 1 2 ) と、 前記鍵復号手段により復号化された第 1 の暗号鍵を用いてデータを暗号化して前記不揮発性メモリに書き込む書 込手段 ( 1 2 ) と、 前記不揮発性メモリからデータを読み出して、 前記 鍵復号手段により復号化された前記第 1の暗号鍵を用いて読み出したデ 一タを復号化する読出手段 ( 1 2 ) とを備える、
ことを特徴とする。 この記憶装置によれば、 第 1 と第 2の暗号键を使用し、 これらを分散 して格納し、 さらに、 第 1の暗号鍵を第 2の暗号鍵で暗号化しているの で、 暗号鍵が 1つの場合より も、 暗号鍵が漏洩する危険が少なく、 デー タが盗用されにくレ、。
特に、 第 1の暗号鍵を書き換え可能な不揮発性メモリに格納している ので、 第 1 の暗号鍵を装置毎、 或いは、 一定台数毎に変更することがで きる。 従って、 第 2の暗号鍵が漏洩しても、 全ての記録装置のデータを 解読することは困難である。
また、 不揮発性メモリは、 データを格納するために用意されているも のであり、 第 1 の暗号鍵を格納しても、 コス ト等が上昇することがない。 前記第 2の喑号鍵は複数の前記記憶装置に共通であり、 前記第 1 の暗 号鍵は、 同一の第 2の暗号鍵を記憶している前記記憶装置の一部のみに 共通或いはそれぞれに固有の暗号鍵である。 この構成により、 装置毎に 異なる暗号鍵を使用できる。
例えば、 前記不揮発性メモリはフラッシュメモリ ( 1 1 ) から構成さ れ、 前記制御手段は前記第 2の暗号鍵を記憶したマスク; R O M (読み出 し専用メモリ) ( 1 5 ) から構成される。 マスク R O Mなどは大量生産 に適しており、第 2の喑号鍵を含む情報を安価に製造することができる。 一方、 フラッシュメモリは、 書き換え可能であり、 第 1の喑号鍵を装置 毎又は所定台数毎に変更して、 任意のタイ ミングで記録することができ る。
パスワードを取り込み、 正しいパスワードが入力された場合のみ、 前 記暗号化された第 1の暗号鍵を復号化するようにしてもょレ、。この場合、 例えば、 前記第 1の暗号鍵は、 前記第 2の暗号鍵とパスワードを基に生 成された第 3の暗号鍵により暗号化されて前記不揮発性メモリに格納さ れ、 前記鍵復号手段は、 パスワー ドを入力する手段と、 入力されたパス ワードから第 3の暗号鍵を生成する手段と、 前記第 2の暗号鍵と生成さ れた第 3の暗号鍵とを用いて前記暗号化されている第 1の暗号鍵を復号 化する手段を備える。
前記鍵復号手段は、 例えば、 復号プログラムと該復号プログラムを実 行する手段 ( 1 6 ) とより構成され、 前記復号プログラムは前記不揮発 性メモリに格納される。 このような構成とすれば、 パスワードに応じた 復号プログラムを適宜不揮発性メモリに記録することができる。
前記鍵復号手段と前記書込手段と前記読出手段は、 復号化された第 1 の暗号鍵を記憶し、 外部からのアクセスに対して保護された揮発性メモ リ ( 1 3 ) を含む。 復号化された第 1の暗号鍵は R A M (ランダムァク セスメモリ) などに格納され、 使用される。 この R A Mの内容が外部か ら読み出せると、 不揮発性メモリに格納されたデータが解読されてしま う。 このため、 揮発性メモリは、 外部からのアクセスに対してプロテク トされていることが望ましい。
前記不揮発性メモリは、 例えば、 フラッシュメモリ ( 1 1 ) である。 前記制御手段は、 前記第 1の暗号鍵を生成し、 生成した第 1の暗号鍵 を前記第 2の暗号鍵を用いて暗号化して前記不揮発性メモリに記録する 鍵生成手段 ( 1 6 ) を備えるものであってもよい。 この構成によれば、 記憶装置自体が第 1の暗号鍵を生成し、 データの暗号化 ·復号化に使用 することができる。
前記鍵生成手段は、 入力されたパスヮードに基づいて前記第 1の喑号 鍵を生成するように構成してもよい。このような構成とすることにより、 第 1の暗号鍵の特定が一層困難となる。
前記第 2の暗号鍵は、 例えば、 複数の記憶装置に共通の暗号鍵であつ てもよい。 このような構成とすれば、 制御手段を、 複数の装置に共通な 暗号鍵が格納されたマスク R〇M等を備えるものとするなどして、 コス トを低減できる。
また、 この発明の第 2の観点にかかる記憶装置は、
第 1の暗号鍵とデータを記憶するための書換可能な不揮発性メモリ ( 1 1 ) と、
第 2の喑号键を記憶し、 前記不揮発性メモリをアクセスするための制 御手段 ( 1 2 ) と、
より構成され、 データを記憶する記憶装置であって、
前記制御手段は、 前記第 1 と第 2の暗号鍵を用いてデータを暗号化し て前記不揮発性メモリに書き込む書込手段 ( 1 6 ) と、 前記不揮発性メ モリからデータを読みだして前記第 1 と第 2の暗号鍵を用いて復号化し て出力する読出手段 ( 1 6 ) とを備える、
ことを特徴とする。
このような構成によれば、 不揮発性メモリに格納されているデータは 複数の暗号鍵を用いて暗号化されている。 従って、 両方の暗号鍵を知ら なければ、 不揮発性メモリに記録されているデータを復号できず、 単一 の喑号鍵を使用する場合より も、 機密性の高いデータを安全に記憶する ことができる。
また、 2つの暗号鍵が、 記憶装置内の異なった位置に分散して格納さ れているので、 暗号鍵の特定が困難である。
例えば、 前記第 2の暗号鍵は、複数の記憶装置に共通の暗号鍵であり、 前記制御手段に配置された読出専用メモリ ( 1 5 ) に格納される。 また、 前記第 1の喑号鍵は、 前記第 2の喑号鍵を共通とする複数の記憶装置の —部のみに共通又は固有の暗号鍵である。
第 1の暗号鍵を書き換え可能な不揮発性メモリに格納することにより、 例えば、 記憶装置毎に容易に第 1の暗号鍵を変更することができる。 ま た、 複数の記憶装置に共通の第 2の暗号鍵を読出専用メモリに格納する ことにより、 第 2の暗号鍵を記憶するメモリを大量生産する事が可能と なる。
例えば、 前記不揮発性メモリは、 フラッシュメモリ ( 1 1 ) であり、 前記読出専用メモリはマスク ROM (読み出し専用メモリ) ( 1 5) で ある。
また、 この発明の第 3の観点にかかる記憶装置は、
暗号化された暗号鍵を記憶する暗号鍵記憶手段 ( 1 1 ) と、 前記暗号鍵を用いて暗号化されたデータを記憶するための書換可能な 不揮発性メモリ ( 1 1 ) と、
前記暗号鍵を復号する復号手段 ( 1 6) と、 前記復号手段により復号 された暗号鍵を記憶する揮発性メモリ ( 1 3) と、 前記揮発性メモリに 記憶された暗号鍵を用いて外部より供給されるデータを暗号化して前記 不揮発性メモリに書き込む書込手段 ( 1 6) と、 前記不揮発性メモリか らデータを読み出し、 読み出したデータを前記揮発性メモリに記憶され ている暗号鍵を用いて復号化して出力する読出手段 ( 1 6) とを備える 制御手段 ( 1 2) と、 前記揮発性メモリへの外部からのアクセスを禁止 する禁止手段 ( 1 6, 2 2, I DB, 2 5) と、 を備え、
復号化された暗号鍵への外部からのアクセスが防止されていることを 特徴とする。
暗号鍵は、 暗号化されているが、 使用時には復号化され、 揮発性メモ リに格納される。 従って、 この揮発性メモリをアクセスして、 データを 読み出せば暗号鍵が知られてしまう。 この発明では、 禁止手段により、 揮発性メモリへの外部からのアクセスを禁止しているので、 このような 事態を防止できる。
前記禁止手段は、 例えば、 前記制御手段を封止する封止手段 (2 5) と、 前記封止手段に封止され、 前記揮発性メモリ と前記復号手段との間 でデータを伝送する内部バス ( I D B) と、 を含む。 この構成によれば、 揮発性メモリが封止されているので、 この揮発性メモリを外部から直接 アクセスすることができない。 また、 復号手段と揮発性メモリ間のバス も封止されているので、 バス上のデータをプローブして、 暗号鍵を判別 することも困難である。
前記暗号鍵記憶手段と前記復号手段との間で暗号化された暗号鍵を伝 送し、 及び、 前記書込手段及び前記読出手段と前記不揮発性メモリ との 間で暗号化されているデータを伝送するデータバス (DB) と、 前記内 部パスとを別体に構成し、 前記復号化された暗号鍵は前記データパス上 には出力されないように構成することが望ましい。 この構成により、 外 部に引き出されているバスをプローブして、 暗号鍵をモニタする事態を 防止できる。
前記禁止手段は、 この記憶装置が開封されたことを検出する開封検出 手段 (2 2) と、 前記開封検出手段が開封を検出した際に、 前記不揮発 性メモリの内容を消去する手段 ( 1 6) を含んでもよい。
この構成によれば、 不揮発性メモリや揮発性メモリへの不正なァクセ スを禁止できる。
また、 この発明の第 4の観点にかかる記憶装置は、
不揮発性メモリ と、
第 1の暗号鍵を生成する鍵生成手段 ( 1 6) と、
第 2の暗号鍵を記憶する鍵記憶手段 ( 1 5) と、
前記鍵生成手段により生成された前記第 1の暗号鍵と前記鍵記憶手段 に記憶されている前記第 2の暗号鍵とを用いてデータを暗号化して前記 不揮発性メモリに書き込む書込手段 ( 1 6) と、 前記不揮発性メモリか らデータを読出して前記第 1 と第 2の暗号鍵を用いて復号化して出力す る読出手段 ( 1 6) とを備える、 ことを特徴とする。
この構成によれば、 記憶装置自体が第 1の暗号鍵を生成することがで きる。 この暗号鍵を、 例えば、 使用者のパスワード等に基づいて生成す るようにすれば、 暗号鍵が装置毎に異なることになり、 暗号の解読は非 常に困難となり、 システムの信頼度を高めることができる。
前記鍵生成手段は、 生成した第 1の暗号鍵を、 前記不揮発性メモリに 格納し、 前記書込手段及び読出手段は、 前記不揮発性メモリに格納され た第 1の暗号鍵を暗号化 *復号化に使用してもよい。 この構成によれば、 例えば、 フォーマッ ト時等に、 第 1の暗号鍵を生成して不揮発性メモリ に格納しておき、 以後は、 この鍵を使用するので、 処理を高速化するこ とができる。
入力されたパスヮードに基づいて前記第 1の暗号鍵を生成するように 構成してもよい。 このような構成とすることにより、 第 1の暗号鍵の特 定が一層困難となる。
前記第 2の暗号鍵は、 例えば、複数の記憶装置に共通の暗号鍵であり、 マスク R O M等の読出専用メモリからなる鍵記憶手段に格納される。 こ のような構成とすれば、 複数の装置に共通な暗号鍵をマスク R O M等で 製造でき、 コス トを低減できる。
また、 この発明の第 5の観点にかかる記憶装置は、
第 1の暗号鍵を記憶する第 1の暗号鍵記憶手段 ( 1 1 ) と、
第 2の暗号鍵を記憶する第 2の暗号鍵記憶手段 ( 1 5 ) と、
第 3の暗号鍵を記憶する第 3の暗号鍵記憶手段 ( 1 5 ) と、
前記第 1乃至第 3の暗号鍵記憶手段に記憶された前記第 1乃至第 3の 暗号鍵を用いてデータを暗号化して不揮発性メモリに書き込む書込手段 ( 1 6 ) と、 前記不揮発性メモリからデータを読出して前記第 1乃至第 3の暗号鍵を用いて復号化して出力する読出手段 ( 1 6 ) とを備え、 前記第 1乃至第 3の暗号鍵は、 装置内において分散して配置されてい ることを特徴とする。
この発明によれば、 3以上の暗号鍵を使用し、 かつ、 これらを分散し て格納することにより、 暗号の解読を非常に困難にすることができる。 また、 この発明の第 6の観点にかかる暗号化 ·復号化装置は、 第 1の暗号鍵が格納された書換可能な不揮発性メモリ ( 1 1 ) と、 第 2の暗号鍵が格納された読み出し専用メモリ ( 1 5 ) と、
データを前記第 1 と第 2の暗号鍵を用いて暗号化して出力する暗号化 手段 ( 1 6 ) と、 暗号化されたデータを前記第 1 と第 2の暗号鍵を用い て復号化して出力する復号化手段 ( 1 6 ) とを備える、
ことを特徴とする。
この構成によれば、 2つの暗号鍵を用いてデータを暗号化 ·復号化す ることができる。 しかも、 読み出し専用メモリに、 複数の装置に共通の 第 2の暗号鍵を配置し、 不揮発性メモリに個別暗号鍵を格納することが できる。
また、この癸明の第 7の観点に係る不揮発性メモリのアクセス方法は、 複数の装置に共通の共通暗号鍵を読出専用メモリに記憶させ、 ュニー クな個別暗号鍵を前記共通暗号鍵で暗号化して書換可能な不揮発性メモ リに記憶させておき、
前記不揮発性メモリにデータを書き込む際は、 前記共通暗号鍵を用い て前記個別喑号鍵を復号化し、 復号化した前記個別暗号鍵を用いてデ一 タを喑号化して前記不揮発性メモリに書き込み、
前記不揮発性メモリからデータを読み出す際は、 前記共通暗号鍵を用 いて前記個別喑号鍵を復号化し、 前記不揮発性メモリから読み出したデ —タを復号化した個別暗号鍵を用いて復号化して出力する、
ことを特徴とする。 このアクセス方法によっても、 喑号鍵が 1 つの場合より も、 暗号鍵が 漏洩する危険が少なく、 データが盗用されにくい。 また、 コス トの上昇 も少ない。
所定のパスヮードが入力された時にのみ、 前記個別暗号鍵を復号化す るようにしても良い。 この場合、 前記個別暗号鍵は、 前記共通暗号鍵と パスヮ一ドを基に生成された第 3の暗号鍵により暗号化されて前記不揮 発性メモリに記憶されており、 パスワードを入力し、 入力されたパスヮ 一ドから前記第 3の暗号鍵を生成し、 前記共通暗号鍵と生成された第 3 の暗号鍵とを用いて前記個別暗号鍵を復号化する。
また、 前記共通暗号鍵及ぴ復号化された個別暗号鍵は、 例えば、 外部 からのアクセスに対し、 プロテク トされてもよい。 このような構成とす ることにより、 信頼性をより高めることができる。 図面の簡単な説明
図 1は、 この発明の第 1〜第 3の実施の形態にかかる記憶装置、 コン ピュ一タ、 及び、 テス ト装置の基本構成を示すブロック図である。
図 2は、フラッシュメモリ と第 2の R O Mの内部構成を示す図である。 図 3は、 フラッシュメモリへのデータの書き込み動作を説明するため のフローチヤ一トである。
図 4は、 フラッシュメモリからのデータの読み出し動作を説明するた めフローチャートである。
図 5は、 テス ト動作を説明するためのフローチャートである。
図 6は、 機密情報を記憶した領域へのアクセスを禁止する構成の一例 を説明するためのブロック図である。
図 7は、 テス トモードで、 S R A Mの内容をリセッ トする構成の一例 を示す図である。 図 8は、 この発明の第 4の実施の形態にかかる記憶装置のブラッシュ メモリの構成を示す図である。
図 9は、 第 2の実施の形態におけるデータ鍵復号動作を説明するため のフローチヤ一トである。
図 1 0は、 この発明の第 4〜第 7の実施の形態にかかる記憶装置の構 成を示すブロック図である。
図 1 1は、 図 1 0に示す E E P R O Mの構成を示す図である。
図 1 2は、 第 6の実施の形態にかかる記憶装置の暗号鍵生成処理を説 明するためのフローチャートである。
図 1 3は、 第 7の実施の形態にかかる記憶装置の暗号鍵生成 ·記録処 理を説明するためのフローチャートである。
図 1 4は、 この発明の第 8の実施の形態にかかる記憶装置の構造を示 すブロック図である。 発明を実施するための最良の形態
以下、 この発明の実施の形態にかかる記憶装置を、 フラッシュメモリ 装置を例に説明する。
図 1は、この発明の第 1の実施の形態にかかる記憶装置の構成を示す。 図示するように、 記憶装置 1 0は、 フラッシュメモリ 1 1 と、 フラッ シュメモリ 1 1をアクセスするための L S I 1 2 とより構成されている。 フラッシュメモリ 1 1は、 通常知られているように、 ブロック消去型 の記憶素子である。 すなわち、 フラッシュメモリ 1 1は、 複数のメモリ セルから構成された複数のブロックを備え、 予め消去されたブロックに データの書き込みが可能なメモリである。
フラッシュメモリ 1 1が有する記憶領域には、 図 2 ( A ) に示すよう に、 エリア T 1が含まれる。 エリア T 1には、 データを暗号化及び復号 化するための暗号鍵であるデータ鍵 k 1力 S、 予め記録されている。 デー タ鍵 k 1は、 十分大きなビッ ト数の素数等から構成され、 後述するシス テム鍵 k 2により暗号化されている。
また、 ファイルの位置を示すファイルアロケーショ ンテーブル (FA T) 、 ディ レク トリ情報、 消去済みのブロックを示す空きブロックテー ブル等もフラッシュメモリ 1 丄 に格納されている。
また、 データ鍵 k 1により暗号化されたデータもフラッシュメモリ 1 1に格納されている。
L S I 1 2は、 コンピュータ 20の制御に従って、 フラ ッシュメモリ 1 1をアクセスするために種々の制御動作を行う。 L S I 1 2は、 S R AMI 3と、 第 1 と第 2の ROM1 4、 1 5 と、 コン トローラ 1 6と、 より構成される。
S RAM (スタティ ックランダムアクセスメモリ) 1 3は、 揮発性の 高速メモリ であり、 コン トローラ 1 6のワークエリアとして機能する。 第 1の R〇M (リー ドオンリ メモリ) 1 4は、 マスク R OM等からな る読出専用メモリ であり、 コントローラ 1 6の動作プログラムを記憶す る。
第 2の ROM1 5は、マスク ROM等からなる読出専用メモリである。 第 2の ROM 1 5が有する記憶領域には、 図 2 (B) に示すように、 シ ステム鍵エリア T 2、 復号プログラム記憶エリ ア Τ 3、 期待値エリア Τ 4及びハツシュ関数ェリア Τ 5が含まれる。
システム鍵ェリア Τ 2は、 全ての記憶装置 1 0に共通に設定された暗 号鍵であるシステム鍵 k 2を記憶する。 復号プログラム記憶ェリア T 3 は、 データ鍵 k 1を復号化するための復号プログラムを記憶する。 期待 値エリア T 4は、 後述する期待値 Dを記憶する。 ハッシュ関数エリア T 5は、 ハッシュ関数を記憶する。 フラッシュメモリ 1 1、 S RAM 1 3、 及び第 1及び第 2の ROM 1 4、 1 5には、 互いに異なった物理ァ ドレスが割り当てられている。 また、 第 2の ROM1 5の、 システム鍵ェリア T 2の先頭ァ ドレスは A 1である。 復号プログラムェリア T 3の先頭ァ ドレスは A 2である。 期待値エリア T 4の先頭ア ドレスは A 3である。 ハッシュ関数エリア T 5はの先頭ァ ドレスは A4である。
コントローラ 1 6は、 C PU (中央処理装置) 、 D S P (ディジタル シグナルプロセッサ) 等とその周辺回路から構成されている。 コント口 —ラ 1 6は、 第 1の: OM1 4のプログラムエリァに格納されたプログ ラムに従って動作する。 具体的には、 コン トローラ 1 6は、 ( 1 ) フラ ッシュメモリ 1 1へのデータの書き込み動作、 (2) フラッシュメモリ 1 1からのデータの読み出し動作、 ( 3 ) 記憶装置 1 0内のメモリをテ ス トするテス ト動作を行う。
コン トローラ 1 6は、 機能的には、 I ZOバッファ (インタフェース 回路) 1 6 1 と、 インタフェース回路 1 6 1に接続された制御部 1 6 2 と、 ア ドレスカウンタ 1 6 3と、 より構成される。
インタフェース回路 1 6 1は、 外部のコンピュータ 2 0及びテス ト装 置 3 0等にバス (データバス及びコントロールバス) 2 1を介して接続 されている。
ア ドレスカウンタ 1 6 3は、 ア ドレスバスを介してフラッシュメモリ 1 1、 S RAM1 3、 第 1及ぴ第 2の: OM 1 4、 1 5のア ドレス端子 Addに接続されている。
また、 制御部 1 6 2の制御端子は、 制御バスを介してフラッシュメモ リ 1 1、 S RAM 1 3、 第 1及び第 2の ROM1 4、 1 5の制御端子 Co ntに接続されている。
制御部 1 6 2の第 1のデータ入出力端子は、 データパス D Bを介して フラッシュメモリ 1 1 と第 1の ROM l 4のデータ端子 Dataに接続され ている。 制御部 1 6 2の第 2のデータ入出力端子は、 内部データバス I DBを介して S RAM 1 3と第 2の ROM1 5のデータ端子 Dataに接続 されている。
S RAMI 3、 第 1及び第 2の ROM l 4、 1 5、 コン トローラ 1 6、 及ぴ内部データバス I D Bは、樹脂等により一体にモールドされている。 このため、 S RAMI 3及び第 2の ROM1 5の記憶データが L S I 1 2の外部に出力されることはない。 即ち、 S R AM 1 3及び第 2の R O M l 5の記憶データは、 外部からのアクセスに対してプロテク トされて いる。
この記憶装置 1 0は、 コンピュータ 20にケーブルにより接続され又 はプラグイン接続される。
接続後の記憶装置 1 0とコンピュータ 20 (又はテス ト装置 3 0) の 動作を説明する。
(0) 相互認証時
この記憶装置 1 0を使用する場合、 先ず、 コンピュータ 2 0と記憶装 置 1 0の間で相互認証を行う。
この相互認証時、 コンピュータ 20は、 例えば、 図示せぬ表示画面に 「パスワードを入力してください」 等のメ ッセージを表示する。 このメ ッセージに応答して、 使用者がパスワードを入力する。
コンピュータ 20のドライバとコン トローラ 1 6の制御部 1 6 2は、 このパスワードに基づいて、 相互に認証し合う。 そして、 相互認証に成 功すると、 記憶装置 1 0の使用を許可する。 一方、 相互認証に失敗する と、 制御部 1 6 2は、 以後のアクセスを禁止する。
( 1 ) 書き込み動作
記憶装置 1 0にデータを書き込む場合、 コンピュータ 20は、 バス 2 1を介して記憶装置 1 0に書込コマンドを出力する。 この書き込みコマ ン ドは I /Oバッファ 1 6 1にセッ トされる。 制御部 1 6 2は、 このコ マンドを解読し、 データの書き込みコマンドであることを判別すると、 図 3に示す処理を開始する。
まず、 制御部 1 6 2は、 I /Oバッファ 1 6 1を介して、 バス 2 1上 に書き込みデータの送信を要求するコマン ドを出力する (ステップ S
1)
この要求に応答して、 コンピュータ 2 0は、書き込みデータの総量と、 先頭の論理ア ドレスを送信する。 続いて、 コンピュータ 2 0は書き込み データを順次送信する。
制御部 1 6 2は、 コンピュータ 20から送信されて来たデータ総量と 先頭論理ァドレスを I ZOバッファ 1 6 1を介して取り込む (ステップ S 2 ) 。
制御部 1 6 2は、 フラッシュメモリ 1 1のエリア T 1から暗号化され たデータ鍵 k 1を S RAM 1 3上に読み出す。 さらに、 復号プログラム エリア T 3に格納されている復号プログラムを実行し、 システム鍵 k 2 を用いて、 データ鍵 k 1を S RAM 1 3上で復号化し、 平文のデータ鍵 k 1を生成する。 そして、 生成したデータ鍵 k 1を S RAM 1 3に記憶 させる (ステップ S 3) 。
次に、 制御部 1 6 2は、 フラッシュメモリ 1 1に格納されている空き ブロックテーブルを参照して、書き込み対象の空きプロックを特定する。 そして、 書き込み対象として特定された空きプロックの物理ァ ドレスを ア ドレスカウンタに設定する (ステップ S 4) 。
—方、 コンピュータ 20は書き込み対象のデータをデータパス 2 1上 に順次出力する。
制御部 1 6 2は、 コンピュータ 20から供給されるデータを取り込む (ステップ S 5) 。 そして、 制御部 1 6 2は、 取り込んだデータを S R AM 1 3に保持されている平文のデータ鍵 k 1を用いて暗号化する (ス テツプ S 6 ) 。
制御部 1 6 2は、 書込制御信号を制御バスに出力し、 さらに、 暗号化 したデータをデータバス D Bに出力する。データバス D Bに出力された、 この暗号化済みのデータは、 フラッシュメモリ 1 1のア ドレスカウンタ 1 6 3が指示する位置に書き込まれる (ステップ S 7) 。
制御部 1 6 2は、 全てのデータについて処理を終了したか否かを判別 する (ステップ S 8 ) 。 処理が終了していなければ、 ア ドレスカウンタ 1 6 3を更新して (ステップ S 9) 、 ステップ S 5に戻って次のデータ を取り込み、 暗号化して、 フラッシュメモリ 1 1の次の記憶エリアに書 き込む。
なお、 現在の書込対象ブロックが一杯になった場合には、 ステップ S 9で次の空きブロックを選択し、 選択した空きブロックの物理ァドレス をア ドレスカウンタ 1 6 3にセッ トし、 次の空きブロックにデータを書 き込む。
制御部 1 6 2は、 データを格納し終わると、 フラ ッシュメモリ 1 1に 格納されている FAT、 ディ レク トリ情報、 空きプロックテーブル等を 更新する。 さらに、 S RAM1 3に記憶されたデータ鍵 k 1を消去し(ス テツプ S 1 0) 、 処理を終了する。
(2) 読み出し動作
記憶装置 1 0からデータを読み出す場合、 コンピュータ 20は、 パス 2 1を介して記憶装置 1 0に読み出しコマンドを出力する。
読み出しコマンドが I ZOバッファ 1 6 1にセッ トされると、 制御部 1 6 2は、 このコマンドを解読する。 そして、 このコマンドがデータの 読み出しの指示であることを判別すると、 図 4に示す処理を開始する。 まず、 制御部 1 6 2は、 I ZOバッファ 1 6 1を介して、 バス 2 1上 に先頭の論理ァドレスと読み出し対象データの総量の送信を要求するコ マン ドを出力する (ステップ S 1 1 ) 。
この要求に応答し、 コンピュータ 2 0は、 読み出し対象データの先頭 ア ドレス (論理ア ドレス) とデータ総量をバス 2 1を介してコ ン ト 口一 ラ 1 6に通知する。
制御部 1 6 2は、 I ZOバッファ 1 6 1を介して先頭ァ ドレスとデー タ総量を受信する (ステップ S 1 2) 。
次に、 制御部 1 6 2は、 復号プログラムェリア T 3に格納された復号 プログラムを実行する。 そして、 復号プログラムに従い、 暗号化された データ鍵 k 1をフラッシュメモリ 1 1のデータ鍵ェリア T 1から読み出 し、 システム鍵 k 2を用いてこれを復号化して、 平文のデータ鍵 k lを 生成して、 S R AM 1 3に格納する (ステップ S 1 3 ) 。
次に、 制御部 1 6 2は、 フラッシュメモリ 1 1に記憶されている F A T及びディ レク ト リ情報などに基づき、読み出し対象ファイル(データ) が格納されている物理ア ドレスを判別する。 そして、 判別された物理ァ ドレスをァ ドレスカウンタ 1 6 3にセッ トし、 内部データバス I D B上 に出力させる (ステップ S 1 4) 。
さらに、 制御部 1 6 2は、 読み出し制御信号を出力し、 ア ドレスカウ ンタ 1 6 3が指示する物理ア ドレスに記憶されたデータを、 データバス DBを介して読み出す (ステップ S 1 5) 。
制御部 1 6 2は、 読み出したデータを、 S R AM 1 3に格納したデー タ鍵 k 1を用いて復号化する。 次いで制御部 1 6 2は、 復号化したデー タを、 1 0バッファ 1 6 1及びパス 2 1を介してコ ンピュータ 20に 送信する (ステップ S 1 6) 。
次に、 制御部 1 6 2は、 読み出しが終了したか否かを判別する (ステ ップ S 1 7 ) 。 ステップ S 1 7において、 制御部 1 6 2は、 具体的には、 例えば、 読み出したデータの総量がコンピュータ 2 0から指示された総 量に一致したか否かを判別する。 そして、 読み出しが終了していない場 合、 ア ドレスカウンタ 1 6 3は、 物理ァ ドレスを更新する (ステップ S 1 8 ) 。
制御部 1 6 2は、 以後、 同様にして、 物理ア ドレスを順次更新しなが ら、 データを読み出し、 復号化して出力する。
指定された量のデータを読み終えたと判断されると、制御部 1 6 2は、 S A M 1 3上のデータ鍵を消去し (ステップ S 1 9 ) 、 読み出し動作 を終了する。
このように、 この実施の形態によれば、 複数の記憶装置 1 0の第 2の O M 1 5に共通の暗号鍵 (システム鍵 k 2 ) が格納され、 各記憶装置 1 0に固有の暗号鍵 (データ鍵 k 1 ) がフラ ッシュメモリ 1 1に格納さ れる。 データ鍵 k lは、 システム鍵 k 2により予め暗号化されている。 従って、 データ鍵 k 1 とシステム鍵 k 2の両方を知らなければ、 フラッ シュメモリ 1 1に記録されているデータを復号化することができない。 従って、 フラッシュメモリ 1 1に機密性の高いデータを格納している場 合でも、 その機密の漏洩を有効に防止できる。
しかも、 複数の記憶装置 1 0に共通なシステム鍵 k 2を、 マスク R O Mなどの大量生産に適した読み出し専用メモリからなる第 2の R O M 1 5に記録し、 個別のデータ鍵 k 1をデータ記録用のフラッシュメモリ 1 1に記録すれば、 コス トの上昇を抑えることも可能である。
また、 データ鍵 k 1が記録装置 1 0毎に設定されていれば、 何らかの 理由により、 ある記憶装置 1 0のデータ鍵 k 1 とシステム鍵 k 2の両方 が知られても、 他の記憶装置 1 0が記憶するデータを復号化することは できない。 従って、 被害を最小 ( 1台) に抑えることができる。 また、 この構成によれば、 S R AM 1 3 と第 2の R OM 1 5とコン ト ローラ 1 6 との間のデータの送受信は内部データバス I D Bを介して行 われる。 このため、 L S I 1 2の外部からは送受信されるデータを観察 することができない。 従って、 復号化されたデータ鍵 k 1及びシステム 鍵 k 2を含む機密情報の漏洩を防ぐことができる。
( 3) テス ト動作
記憶装置 1 0は、 製造時や出荷時にテス トされ、 フラッシュメモリ 1 1、 S RAM 1 3 , 第 1の ROM1 4及び第 2の R OM 1 5の全てがデ —タを正しく記憶できること、 或いは正しくデータを記憶していること が確認される。
—方、 第 2の ROM 1 5はマスク ROM等で構成されているため、 テ ス ト時にシステム鍵 k 2ゃ復号プログラムが既に記録されている。 シス テム鍵 k 2ゃ復号プログラムは、 テス トであっても外部に漏れるこどは 望ましくない。
そこで、 この実施の形態では、 第 2の ROM1 5のテス トと して、 特 有なテス トモ一ドを使用する。
記憶装置 1 0をテス トする場合、 記憶装置 1 0は外部のテス ト装置 3 0等に接続され、 テス ト装置 3 0はコン トローラ 1 6にテス トコマン ド を送出する。
制御部 1 6 2は、 このテス トコマンドに応答し、 図 5に示す処理を開 始する。
まず、 制御部 1 6 2は、 フラッシュメモリ 1 1のテス トを行う (ステ ップ S 2 1 ) 。
フラッシュメモリ 1 1のテス トは、 具体的には、 以下に述べる手順で 行う。 すなわち、 まず制御部 1 6 2は、 フラ ッシュメモリ 1 1を一且初 期化し、 全体にデータ 「0」 が格納されていることをチェックする。 次 に、 制御部 1 6 2は、 フラッシュメモリ 1 1に 「 1」 を書き込み、 これ を読み出して、 書込データと読出データが一致することを確認する。 フ ラッシュメモリ 1 1は一定の確率でエラ一ビッ トを含んでおり、 エラ一 ビッ 卜が検出された場合には、 その位置等も判別する。
フラッシュメモリ 1 1のテス トが完了すると、 制御部 1 6 2は、 S R AMI 3をテス トする (ステップ S 2 2) 。
具体的には、 まず、 制御部 1 6 2は、 ア ドレスを順次更新しながら、 S R AM 1 3の全てのビッ トに所定の値を書き込む。 次いで、 S RAM 1 3からデータを読み出し、 書き込んだデータと読み出したデータとが —致するか否かを、 テス ト装置 3 0により判別する。
S RAM 1 3のテス トが完了すると、 制御部 1 6 2は、 第 1の ROM 1 4をテス トする (ステップ S 2 3) 。 第 1の ROM1 4のテス トは、 第 1の ROM 1 4の記憶データを読み出し、 読み出されたデータが期待 値と一致することをテス ト装置 3 0で確認することにより行う。
第 1の ROM1 4のテス トが完了すると、 制御部 1 6 2は、 第 2の R OM 1 5をテス 卜する。 第 2の ROM 1 5のテス トは、 基本的には、 第 1の ROM 1 4のテス トと同一である。 つまり、記憶データを読み出し、 正しいデータが記憶されているか否かを判別することにより行う。
但し、 システム鍵 k 2及ぴ復号プログラムをそのまま読み出すと、 シ ステム鍵 k 2及び復号プログラムが第三者に知られ、 データ鍵 k l及び システム鍵 k 2が盗用又は悪用される虞がある。 そこで、 システム鍵ェ リア T 2と復号プログラムェリア T 3については、 異なるテス ト方法を 採用する。
まず、 制御部 1 6 2は、 第 2の ROM 1 5の先頭ァ ドレス A 1をア ド レスカウンタ 1 6 3にセッ トする (ステップ S 24) 。 次に、 制御部 1 6 2は、 ア ドレスカウンタ 1 6 3が指示するァドレスがシステム鍵ェリ ァ T 2又は復号プログラムエリア T 3のア ドレス ア ドレスカウ ンタ 1 6 3が指示するア ドレス < A 3 ) であるか否かを判別する (ステ ップ S 2 5 ) 。 これらのエリアのア ドレスであると判断された場合、 何 もせずにア ドレスを更新して (ステップ S 2 6) 、 ステップ S 2 5にリ ターンする。
一方、 これらのエリアのア ドレスではないと判断された場合、 そのデ —タを読み出し、 テス ト装置 3 0に供給する (ステップ S 2 7) 。 さら に、 次のア ドレスが存在するか否かを判別し (ステップ S 2 8 ) 、 存在 すれば、 ア ドレスを更新して (ステップ S 2 6) 、 ステップ S 2 5にリ ターンする。
このよ う にして、 制御部 1 6 2は、 第 2の ROM1 5のア ドレス A 3 以降の記憶データを順次読み出し、 I Oバッファ 1 6 1を介してバス 2 1上に出力する。 テス ト装置 3 0は、 読み出されたデ一タが、 予め定 められている記録パターンと一致するか否か等を判断し、 一致しない場 合には、 そのア ドレスを判別する。
アドレス A 3以降のエリアのテス トが終了すると、 システム鍵ェリァ T 2と復号プログラムエリア丁 3のテス トに移る。
まず、 制御部 1 6 2は、 ハッシュ関数ェリア T 5に記憶されたハッシ ュ関数 Hを読み出す (ステップ S 29 ) 。 次に、 制御部 1 6 2は、 期待 値エリア T 4に格納されている期待値のセッ ト Diを読み出す (ステツ プ S 30 ) 。
制御部 1 6 2は、 システム鍵ェリア丁 2と復号プログラムェリア T 3 から順次読み出した所定バイ トのデータの組について、 この 2つのデー タをハッシュ関数 Hに代入した値を求める (ステップ S 3 1 ) 。 具体的 には、 制御部 1 6 2は、 システム鍵ェリア T 2と復号プログラムエリア T 3から順次読み出した所定パイ トのデータの組のう ち i番目に読み出 した組を a i及び b iと した場合、 a i及び b iをハッシュ関数 Hに代入し た値 H ( a i, b i) を求める。
そして、 制御部 1 6 2は、 ステップ S 3 1で求めた値 y i (つま り、 y i=H ( a i, b i) ) が、 期待値 D iに一致するか否かを判別する (ス テツプ S 3 2 ) 。
制御部 1 6 2は、 システム鍵ェリア T 2と復号プログラムェリア T 3 の全記憶データを読み出すまで、 比較動作を繰り返す。 例えば、 システ ム鍵エリァ T 2のサイズと復号プログラムエリア T 3のサイズとの合計 が 4 kバイ トであり、 a、 bのサイズがいずれも 5 1 2バイ トとすれば、 4回作業を繰り返す。
制御部 1 6 2は、 全ての演算結果 yiと全ての期待値 Diが一致する場 合、 一致検出信号をテス ト装置 3 0に送信する (ステップ S 3 3) 。 1 回でも不一致があった場合、 制御部 1 6 2は、 テス ト装置 3 0に不一致 検出信号を送信する (ステップ S 34) 。 以上でテス ト動作を終了する。
このようなテス トモー ドを採用することにより、 システム鍵 k 2ゃ復 号プログラム等の機密情報をテス ト実施者に公開することなく、 記憶装 置 1 0内のメモリの良 · 不良を検査することができる。
なお、 このテス ト手法は、 一例に過ぎない。 従って、 システム鍵 k 2 ゃ復号化されたデータ鍵 k 1が L S I 1 2の外部に出力されないならば、 どのようなテス ト手法を採用してもよい。 例えば、 第 2の ROM 1 5に 格納されているすべてのデータについて、 上述のハッシュ関数 Hを用い たテス トを行ってもよい。 また、 期待値 Diをテス ト装置 3 0から記憶 装置 1 0に提供するようにしてもよい。
また、 関数 Hは、 ハッシュ関数に限定されない。 しかし、 関数 Hは、 一つの演算結果に対して複数の変数が対応する一方向関数が望ましい。 このような構成とすれば、 たとえ、 期待値 Diが第三者に知られても、 システム鍵 k 2 と復号プログラム自体を特定することはできなくなる。 なお、 以上の説明では、 テス トモードで、 制御部 1 6 2がデータの書 き込み及び読み出しを順次行った。 しかし、 この記憶装置 1 0は、 テス トモ一ドが設定されると、.テス トモ一ドが解除されるまで、 外部のバス 2 1 と内部バスを直結し、 テス ト装置 3 0が、 各メモ リを直接アクセス できるように構成されても良い。
この場合、 システム鍵ェリア T 2及び復号プログラムエリア T 3がァ ドレッシングされたときは、 第 2の R O M 1 5をデイスエイブル状態に 設定し、 外部からの直接アクセスを受付けない (禁止する) ように、 ァ ドレス信号をマスクすることが望ましい。 具体的には、 例えば図 6に示 すように、 上位のァ ドレス信号をデコ一ドすればよい。
上記実施の形態では、フラッシュメモリ 1 1にデータを書き込んだり、 フラッシュメモリ 1 1からデータを読み出したりする間は、 S R A M 1 3に平文のデータ鍵 k 1が記憶される。 一方、 この状態で、 動作クロッ クを停止し、 テス トモードに入り、 S R A M 1 3の記憶データを読み出 すと、 データ鍵 k 1が第三者に知られてしま う虞がある。
このため、 図 7に示すように、 テス トモ一ドが指示されると、 制御部 1 6 2が、 S R A M 1 3にリセッ ト信号を送出して、 これをリセッ トし てもよい。 この場合は、 例えば、 リセッ トの後、 外部からの制御に従つ たテス トを実行できるように、 リセッ ト信号をオフする構成とすればよ い。
(第 2の実施の形態)
第 1の実施の形態では、 システム鍵 k 2が漏洩した場合、 このシステ ム鍵 k 2を用いてデータ鍵 k 1が復号可能である。 しかし、 システム鍵 k 2を知っているだけではデータ鍵が復号できないよ うに構成すること も可能である。 このような構成の第 2の実施の形態を以下に説明する。 この実施の形態の記憶装置の基本構成は、 図 1に示す構成と同一であ り、 データ鍵 k 1は、 フラッシュメモリ 1 1のデータ鍵ェリア T 1に格 納されている。
但し、 データ鍵ェリア T 1に格納されているデータ鍵 k 1は、 システ ム鍵 k 2と所定値 RNとを組み合わせて得られた値を喑号鍵と して用い て暗号化されている。 この所定値 RNは、 出力値が初期値に依存するタ ィプの乱数発生プログラムにより生成された値である。 この初期値と し て、 暗号解読のためのパスワード PWが用いられる。
さらに図 8に示すように、 フラッシュメモリ 1 1には、 復号プロダラ ム及び乱数プログラムが記憶されている。 復号プログラムは、 パスヮ一 ド PWに基づいてデータ鍵 k 1を復号化するためのプログラムである。 乱数プログラムは、 上述した所定値 RNを生成する際に使用するものと 実質的に同一のものである。
この記憶装置 1 0を使用する際 (データのリ一ドノライ ト時等) 、 コ ンピュ一タ 20上の ドライバは、使用者にパスヮ一ドの入力を要求する。
ドライバは、 パスワードが入力されると、 データ鍵 k lの復号化を指 示する指示信号と、 この指示信号と共に入力されたパスワードとを、 バ ス 2 1を介してコン トローラ 1 6に供給する。
制御部 1 6 2は、 この指示信号に応答し、 パスワードを受信して (図 9、 ステップ S 4 1 ) 、 乱数プログラムを起動する。 そして、 受信した パスワードを初期値と して与える (ステップ S 4 2) 。 この乱数発生プ ログラムは、 出力値が初期値に依存するタイプのものであり、 出力され る値が初期値により定まる。
制御部 1 6 2は、 乱数プログラムが生成した乱数値 RNとシステム鍵 k 2とを組み合わせて暗号鍵を作成する (ステップ S 4 3) 。 暗号鍵は、 例えば、 システム鍵 k 2と乱数値 RNとを、互いに加算(「k 2 +RNJ ) したり、 互いに連結 ( 「k 2 ; R N」 ) したり、 互いに乗算 ( 「k 2 . ; N」 ) したり して作成する。
暗号鍵が作成されると、 制御部 1 6 2は、 作成された暗号鍵を用いて データ鍵 k 1を復号化する (ステップ S 4 4 ) 。
以後、 制御部 1 6 2は、 復号化されたデータ鍵 k 1 を用いて、 コンビ ユータ 2 0から供給されたデータを暗号化してブラッシュメモリ 1 1に 格納する。 そして、 制御部 1 6 2は、 フラ ッシュメモリ 1 1から読み出 したデータを復号化し、 コンピュータ 2 0に供給する。
このような構成とすれば、 システム鍵 k 2が何らかの原因で第三者に 知られても、 その第三者がパスワードを知らない限り、 データ鍵 k lを 復号化することができず、 フラッシュメモリ 1 1に記憶されているデー タを復号化することができない。 従って、 フラッシュメモリ 1 1に格納 されたデータの漏洩を防止することができる。
また、データ鍵 k 1を暗号化するための暗号鍵及び復号プログラムを、 記憶装置 1 0毎に個別に作成して、 フラッシュメモリ 1 1に格納するこ ともできる。 これにより、 記憶装置 1 0毎に暗号鍵を異ならせることが できる。
なお、 第 2の実施の形態で、 例えば、 復号プログラムと乱数プロダラ ムをシステム鍵 k 2で暗号化して、 フラッシュメモリ 1 1に格納してお いても良い。 この場合、 システム鍵 k 2でこれらのプログラムを復号化 した後、 これらのプログラムを実行し、 データ鍵を復号化する処理を実 行する。
また、 第 2の実施の形態の復号プログラムは、 パスワード等の使用者 を特定する情報に基づいてデータ鍵 k 1を復号化できるならば、 任意の 構成が採用可能である。
例えば、 パスワード P Wに基づいて一時的な暗号鍵 k t を生成し、 数 式 1に示すように、 データ鍵 k 1を一時的な喑号鍵 k tで暗号化し、 暗 号結果をシステム鍵 k 2で暗号化した結果 k 1 dをフラッシュメモリ 1 1のエリア T 1に格納してもよレヽ。 一時的な暗号鍵 k tは、 例えば、 パ スワード PWを種と して乱数を癸生することにより生成すればよい。 (数式 1 )
k 1 d = k 2 (k t ( k 1 ) )
この場合、 エリア T 1に格納されているデータ鍵 k 1を復号化するた めには、 まず、 エリア丁 1に格納されているデータ k 1 dをシステム鍵 k 2で復号化して (k t (k 1 ) ) を生成する。 次に、 入力されたパス ワード PWに基づいて一時的な喑号鍵 k tを生成する。 そして、 この一 時的な暗号鍵 k tを用いてデータ鍵 k 1を復号化するようにすればよレ、。 第 1及び第 2の実施の形態では、 システム鍵 k 2を平文のまま第 2の ROM1 5に格納した。 しかし、 システム鍵 k 2は一時的な喑号键 k t で暗号化された状態で第 2の R OM 1 5に格納されてもよい。 この場合 には、 一時的な喑号鍵 k tを用いてシステム鍵 k 2を復号化した後、 デ —タ鍵 k 1を復号化する処理を行う。
また、 図 1では、第 1の ROM 1 4と第 2の ROM 1 5を別体とした。 しかし、 第 1の ROM 1 4と第 2の ROM1 5とを、 1つの ROMの異 なる領域と してもよい。 この場合も、 この ROMとコントローラ 1 6と の間の通信内容が L I S 1 2の外部に漏れないようにデータバスを構成 する。
システム鍵 k 2は全ての記憶装置 1 0に共通である必要はなく、 一定 台数毎にシステム鍵 k 2を変更してもよい。 また、 データ鍵 k 1は、 記 憶装置 1 0毎に異なる必要はなく、複数の記憶装置 1 0に共通でもよい。 但し、 システム鍵 k 2を同一にする記憶装置 1 0の間では、 データ鍵 k 1が異なるように設定することが望ましい。 (第 3の実施の形態)
第 1の実施の形態で、 データ鍵 k lは、 システム鍵 k 2を用いて暗号 化された上でフラッシュメモリ 1 1に格納されていた。 第 2の実施の形 態で、 データ鍵 k 1は、 一時的な暗号鍵 k t を用いて暗号化された上で フラッシュメモリ 1 1 に格納されていた。
しかし、 データ鍵 k 1は平文のままフラッシュメモリ 1 1に格納され ていてもよい。 この場合は、 例えば、 データ鍵 k 1及びシステム鍵 k 2 の両方を用いてデータの暗号化及び復号化を行えばよい。 以下では、 デ —タ鍵 k 1及びシステム鍵 k 2の両方を用いてデータの暗号化及び復号 化を行うこの発明の第 3の実施の形態を説明する。
この発明の第 3の実施の形態にかかる記憶装置 1 0の構成は、 図 1に 示す、 第 1の実施の形態における構成と実質的に同一である。 暗号化さ れた一般のデータはフラッシュメモリ 1 1に格納される。
ただし、 フラ ッシュメモリ 1 1 のェリア T 1 には、 データ鍵 k 1 は平 文のまま記憶されている。 データ鍵 k 1は平文のままエリア T 1に格納 されているため、 第 2の R O M 1 5は、 データ鍵 k 1 を復号化するため の復号プログラムを格鈉する必要がなく、 従って復号プログラムェリァ
T 3は不要である。
次に、 上記構成の記憶装置 1 0及びコンピュータ 2 0 (又はテス ト装 置 3 0 ) の動作を説明する。 ただし、 コンピュータ 2 0 と記憶装置 1 0 との間での相互認証の動作は、第 1の実施の形態における上述した ( 0 ) の相互認証時の動作と実質的に同一である。
記憶装置 1 0にデータを書き込む場合の動作も、 第 1の実施の形態に おける上述した ( 1 ) の書き込み動作と実質的に同一である。
ただし、 ステップ S 3で、 制御部 1 6 2は、 フラッシュメモリ 1 1 の エリア T 1からデータ鍵 k 1を単に読み出して S R A M 1 3に格納する。 すなわち、 データ鍵 k 1の復号化は行わない。
また、 ステップ S 6で、 制御部 1 6 2は、 ステップ S 5でコンビユー タ 20から取り込んだデータを、 S RAM 1 3に保持されているデータ 鍵 k l とシステム鍵 k 2を用いて暗号化する。
例えば、 制御部 1 6 2は、 データ鍵 k 1 とシステム鍵 k 2を加算 (k 1 + k 2) 、 連結 (k 1 ; k 2 ) 、 乗算 (k 1 ♦ k 2) 等することによ り、 新たな喑号鍵を生成し、 この鍵を用いてデータを暗号化する。 或い は、 データ鍵 k 1でデータを暗号化し、 さらに、 暗号化されたデータを システム鍵 k 2で暗号化する。
そして、 ステップ S 1 0で、 制御部 1 6 2は、 空きブロックテーブル と FAT及びディ レク トリ情報などを更新し、 S RAM 1 3に記憶され たデータ鍵 k 1及びシステム鍵 k 2を両方消去して、 処理を終了する。 記憶装置 1 0からデータを読み出す場合の動作も、 第 1の実施の形態 における上述の (2) の読み出し動作と実質的に同一である。
ただし、 ステップ S 1 3で、 制御部 1 6 2は、 フラッシュメモリ 1 1 のエリア T 1から平文のデータ鍵 k 1を読み出すと、 S RAM 1 3に格 納する。 また、 第 2の ROM1 5のシステム鍵エリア T 2からシステム 鍵 k 2を読み出し、 S RAM1 3に格納する。
また、 ステップ S 1 6で、 制御部 1 6 2は、 ステップ S 1 5で読み出 したデータを、 S RAM 1 3上のデータ鍵 k 1に加えシステム鍵 k 2も 用いて復号化することにより、 平文のデータを生成する。
そして、 ステップ S 1 9で、 コントローラ 1 6は、 S RAM1 3上の データ鍵 k 1及びシステム鍵 k 2を両方消去してから、 読み出し動作を 終了する。
この実施の形態によれば、 データ鍵 k l とシステム鍵 k 2とを用いて データが暗号化及び復号化される。 従って、 データ鍵 k l とシステム鍵 k 2の両方を知らなければ、 フラッシュメモリ 1 1に記録されているデ —タを復号できない。 このため、 単一の暗号鍵を使用する場合より も、 機密性の高いデ一タを安全に記憶することができる。
また、 データ鍵 k 1及びシステム鍵 k 2は、 記憶装置 1 0の異なった 位置に分散して格納されている。 このため、 暗号鍵の特定が困難となる。 特に、 システム鍵 k 2は、 L S I 1 2内に封止されており、 システム鍵 k 2を外部から直接知ることはできない。 また、 データ鍵 k lが、 記憶 装置 1 0毎に個別に設定されていれば、 ある記憶装置 1 0についてデー タ鍵 k 1が知られても、 他の記憶装置 1 0についてはそのデータ鍵 k 1 では、 データを復号できない。 従って、 被害を最小 ( 1台) に抑えるこ とができる。
また、 テス ト動作のうち、 フラッシュメモリ 1 1、 S RAM 1.3及び 第 1の ROM1 4をテス トする動作は、 第 1の実施の形態における上述 の (3) のテス ト動作と実質的に同一である。
フラッシュメモリ 1 1、 S R AM 1 3及び第 1の R OM 1 4のテス ト が完了すると、 制御部 1 6 2は、 第 1の実施の形態におけるステップ S 2 9〜 S 3 4の処理と実質的に同一の処理を第 2の ROM1 5について 行うことにより、 第 2の ROM1 5をテス トする。
具体的には、 制御部 1 6 2は、 第 2の ROM1 5内の期待値ェリア T 4及びハッシュ関数ェリア T 5から、 期待値のセッ ト D i及びハッシュ 関数 Hを読み出す。 次に、 読み出したハッシュ関数 Hに、 第 2の ROM 1 5から順次読み出した所定バイ トのデータの組を代入した値を求める。 そして、 求めた値 yiが、 期待値 Diに一致するか否かを判別する。
制御部 1 6 2は、 第 2の ROM1 5の全記憶データを読み出すまで、 比較動作を繰り返す。 そして、 全ての演算結果と全ての期待値が一致す る場合、 一致検出信号をテス ト装置 3 0に送信し、 テス ト動作を終了す る。 1回でも不一致の場合、 不一致検出信号をテス ト装置 3 0に送信し て、 テス ト動作を終了する。
このようなテス トモ一ドを採用することにより、 システム鍵 k 2等の 機密情報をテス ト実施者に公開することなく、 記憶装置 1 0内のメモリ の良 '不良を検査することができる。 このため、 テス ト担当者等による システム鍵 k 2の盗用又は悪用を避けられる。
なお、 このテス ト手法は、 一例であり、 システム鍵 k 2が L S I 1 2 の外部に出力されないならば、どのよ うなテス ト手法を採用してもよい。 例えば、 第 2の R O M 1 5のうち、 システム鍵 k 2が格納されている領 域等の機密性の高い情報が格納されている領域についてのみ、 上述のハ ッシュ関数 Hを用いたテス トを行い、 他の領域については、 第 1の R O
M l 4 と同様に、 記憶データを順次読み出し、 期待値と比較するように してもよい。 また、 期待値 D iをテス ト装置 3 0から記憶装置 1 0に提 供するようにしてもよい。
(第 4の実施の形態)
第 3の実施の形態では、 データ鍵 k 1 とシステム鍵 k 2の 2つの暗号 鍵を使用してデータを暗号化及び復号化した。 しかし、 3以上の暗号鍵 を使用して、 データを暗号化及び復号化してもよい。 以下、 3以上の暗 号鍵を使用する第 4の実施の形態を説明する。
この実施の形態の記憶装置の基本構成は、 第 1〜第 3の実施の形態に おけるものと実質的に同一である。 ただし、 コントローラ 1 6は、 図 1
0に示すよ うに、 E E P R O M 1 6 4を内蔵している。 E E P R O M 1
6 4には、 第 3の暗号鍵 k 3が格納されている。
この実施の形態の記憶装置 1 0の基本動作は、 第 3の実施の形態にお ける記憶装置 1 0の基本動作と同一である。 ただし、 コンピュータ 2 0 から受信したデータの暗号化は、 データ鍵 k l、 システム鍵 k 2及び第 3の暗号鍵 k 3を用いて行う。 フラッシュメモリ 1 1から読み出したデ 一タの復号化も、 データ鍵 k l、 システム鍵 k 2及び第 3の暗号鍵 k 3 を用いて行う。
データの暗号化の手法は任意である。 暗号鍵の作成方法は、 任意であ る。 たとえば、 コンピュータ 2 0から受信したデータをデータ鍵 k 1で 暗号化し、 さらに、 これをシステム鍵 k 2で暗号化し、 さらに、 第 3の 暗号鍵 k 3で暗号化してもよい。 この場合、 復号化は、 フラッシュメモ リ 1 1から読み出したデータを第 3の暗号鍵 k 3で復号化し、 復号化さ れたデ一タをシステム鍵 k 2で復号化し、 さらに、 これをデータ鍵 k 1 で復号化することにより行う。
また、 これら 3つの喑号鍵について加算 (k l + k 2 + k 3) 、 連結 ( k 1 ; k 2 ; k 3 ) 等の演算を行つて新たな喑号鍵を生成し、 この暗 号鍵を使用してデータを暗号化してもよい。
このように、 暗号鍵を多数箇所に分散して格納することにより、 暗号 の解読がより困難となる。 従って、信頼性の高い記憶装置を提供できる。 なお、 第 3の喑号鍵 k 3の記憶位置は、 E E P ROM1 64に限定さ れない。 たとえば、 第 2の R〇M 1 5の任意の領域でもよい。
(第 5の実施の形態)
第 3及び第 4の実施の形態では、 各暗号鍵 (データ鍵 k l、 システム 鍵 k 2、 第 3の喑号鍵 k 3) が平文のまま各メモリに格納されている。 しかし、 これらの手法では、 各暗号鍵の記憶位置が漏洩すると、 各暗号 鍵が読み出され、 データ鍵が復号化され、 解読される虞がある。
そこで、 暗号鍵自体を暗号化して各メモリ に格納してもよい。 例えば、 第 3の暗号鍵 k 3をシステム鍵 k 2で暗号化して E E P ROM 1 64に 記録してもよい。 この場合、 データの書込時及び読み出し時には、 例え ば、 システム鍵 k 2を用いて第 3の喑号鍵 k 3を復号化する。 そして、 復号化された第 3の暗号鍵 k 3を用いて、 データの暗号化や復号化を行 0。
この構成では、 第 3の暗号鍵 k 3は暗号化されているが、 使用時には 復号化され、 S RAM 1 3に格納される。 従って、 この S RAM 1 3を 外部からアクセスして、 データを読み出せば第 3の喑号鍵 k 3が知られ てしまう。 しかし、 図 1 0の物理的構成では、 封止及びバスの分割等に より、 S RAM 1 3への外部からのアクセスが禁止されているので、 平 文である第 3の喑号鍵 k 3の漏洩が防止される。
(第 6の実施の形態)
第 3〜第 5の実施の形態では、 各喑号鍵 (データ鍵 k l、 システム鍵 k 2、 第 3の喑号鍵 k 3 ) が不揮発性メモリに予め格納されている。 し かし、 この記憶装置 1 0の使用時に、 暗号鍵を一時的に生成してもよい。 以下、 このような構成の第 6の実施の形態を説明する。
この実施の形態の記憶装置 1 0の基本構成は、 図 1 0に示す構成と実 質的に同一である。 ただし、 E E P R OM 1 6 4には、 図 1 1に示すよ うに、 設定された初期値に対応して定まる値を出力する乱数プログラム と喑号鍵生成プログラムが記憶されている。
この場合の記憶装置 1 0の動作を図 1 2を参照して説明する。
まず、 この記憶装置 1 0を使用する際、 コンピュータ 2 0は、 記憶装 置 1 0の要求に従って (又はコンピュータ 2 0上のドライバの要求に従 つて) 、 使用者にパスワードの入力を要求する (ステップ S 5 1 ) 。 この要求に従って、 使用者によりパスワードが入力されると (ステツ プ S 5 2 ) 、 制御部 1 6 2は、 乱数プログラムを起動し、 供給されたパ スワードを初期値と して設定する (ステップ S 5 3) 。 乱数プログラム は、 実行されると、 初期値に対応する値を 1つ発生する。 制御部 1 6 2 は、 この値を S RAM 1 3に格納し、 第 3の暗号鍵 k 3 として使用する (ステップ S 5 4 ) 。
以後のデータ読出動作、書込動作は、 第 5の実施の形態と同様である。 第 3の暗号鍵 k 3を生成するタイミングは任意である。 第 3の暗号鍵 k 3は、 記憶装置 1 0の使用開始時や、 フラッシュメモリ 1 1をァクセ スする際などのタイ ミングで生成されてよい。
データを格納した際に設定したパスヮードと、 データを読み出す際に 設定したパスヮードが異なる場合、 第 3の暗号鍵 k 3は異なった値とな る。 このため、 この実施の形態によれば、 正しいパスワードを入力しな ければ、 記憶データの暗号が解読できない。 従って、 システムキーが漏 洩した場合でも、 記憶データを安全に保持できる。
なお、 乱数プログラムをデータ鍵 k 1及び Z又はシステム鍵 k 2で暗 号化して、 フラッシュメモリ 1 1に格納してもよい。
なお、 乱数プログラムを含む暗号鍵生成プログラムの記憶位置は、 E E P R O M 1 6 4に限定されず、 任意である。 例えば、 第 1の実施の形 態において、 データ键 k 1又はシステム鍵 k 2に代えて、 暗号生成プロ グラムを記憶させ、 この暗号プログラムを実行して得られた暗号鍵を第 1又は第 2の暗号鍵と して使用してもよい。
(第 7の実施の形態)
この発明の実施の形態では、 使用者が生成した暗号鍵をフラッシュメ モリ 1 1に登録し、以後この暗号鍵を使用することも可能である。 以下、 このよ うな構成の第 7の実施の形態を説明する。
この実施の形態の記憶装置 1 0の基本構成は、 図 1 0に示す構成と実 質的に同一である。 ただし、 この実施の形態では、 この記憶装置 1 0を 最初に使用する際 (例えば、 記憶装置 1 0のフォーマッ ト時) 、 使用者 は、 この記憶装置 1 0を所定のドライバ機能を有するコンピュータ 2 0 に接続し、 コンピュータ 2 0から記憶装置 1 0に、 データ鍵の設定を指 示する指示信号を送信する。
この指示信号に応答し、制御部 1 6 2は、 図 1 3に示す処理を開始し、 コンピュータ 2 0にパスワードの供給を要求する (ステップ S 6 1 ) 。 この要求に応答したコンピュータから、 使用者の操作等に従ってパスヮ ―ドが供給されると、 制御部 1 6 2は、 パスワードを受信し (ステップ S 6 2 ) 、 例えばフォーマツ トの処理を含む所定の処理を行う (ステツ プ S 6 3 ) 。
所定の処理終了後、 制御部 1 6 2は、 供給されたパスワード (又は、 パスワー ドが示す値) を初期値として、 乱数プログラムを起動する (ス テツプ S 6 4 ) 。
制御部 1 6 2は、 得られた乱数値をデータ鍵 k 1 と し、 エリア T 1に 格納し (ステップ S 6 5 ) 、 処理を終了する。
通常状態でのフラッシュメモリ 1 1へのデータの書き込み · ブラッシ ュメモリ 1 1からのデータの読み出し等の動作は、 上述の第 3の実施の 形態と同様である。 すなわち、 この記憶装置 1 0は、 データ鍵 k 1 とシ ステム鍵 k 2 (第 4の実施の形態では、 さらに、 第 3の喑号鍵 k 3 ) を 用いてデータを暗号化及び復号化する。
このような構成とすれば、 使用者自身が入力したパスヮードに基づい てデータ鍵が生成される。 また、 データ鍵 k 1をフラッシュメモリ 1 1 から読み出すだけで済むので、 暗号化 ·復号化の処理時間が短くてすむ。 なお、 乱数プログラムが発生した値をデータ鍵 k 1 として設定する際 に、 例えば、 このデータ鍵 k 1をシステム鍵 k 2で暗号化してもよい。 この場合、 通常状態でのフラッシュメモリ 1 1へのデータの書き込み · フラッシュメモリ 1 1からのデータの読み出し等の動作は、 例えば、 上 述の第 1の実施の形態と同様である。
(第 8の実施の形態) この発明は、 タンパフリー技術と組み合わせることにより、 より完全 なものとなる。 即ち、 この記憶装置 1 0の筐体 2 5が開封された時点で、 記憶データを破壊するように構成することが望ましい。
このような構成を有する記憶装置 1 0の一例を説明する。
この実施の形態の記憶装置 1 0は、 図 1 4に示すように、 筐体 2 5内 の複数箇所に配置されたマイクロスィッチ 2 2 と、 コンデンサ (又は二 次電池) 2 3 とオアゲート 2 4を備えている。
記憶装置 1 0がコンピュータ 2 0に接続された状態において、 パス 2 1の電源ラインからコンデンサ (又は二次電池) 2 3に電力が供給され、 コンデンサ 2 3は充電される。
マイクロスィッチ 2 2は、 通常状態では、 オフ状態にあり、 筐体 2 5 が開封された時にオンする。 1つでもマイクロスィッチ 2 2がオンする と、 このオン信号は、 オアゲート 2 4を介して割り込み信号として、 制 御部 1 6 2に供給される。
この割り込み信号に応答して、 制御部 1 6 2は、 フラッシュメモリ 1 1及び S R A M 1 3を初期化する。 この際、 初期化に要する電力は、 コ ンデンサ (又は二次電池) 2 3から供給される。
この構成によれば、 筐体 2 5の一部が開封された際に、 制御部 1 6 2 は割り込み処理を行う。 この割り込み処理を、 フラッシュメモリ 1 1の 内容及び S R A M 1 3の內容を消去する処理とすれば、 フラッシュメモ リ 1 1の内容及び S R A M 1 3の内容は消去される。 従って、 フラッシ ュメモリ 1 1に記憶されていた機密情報が第三者に漏れることが避けら れる。
なお、 フラッシュメモリ 1 1 としては、 メモリ全体を一括して消去で きるものが望ましい。
また、 ブロック単位で順次消去する場合には、 制御部 1 6 2は、 フラ ッシュメモリ 1 1の任意のブロックを消去する際、 空きブロックテープ ルを参照し、 空きブロックではないブロックを先に消去し、 空きブロッ クを最後に消去する。 一般的な D O S (ディスクォペレ一ティングシス テム) では、 ファイル等を消去する際、 先頭の 1文字を所定コードに書 き換えることにより、 実際にはデータを消去しない場合がある。 この種 のシステムでは、 データを消去する際には、 消去対象のデータが位置す るブロック内に他のデータがある場合に、 他のデータを空きブロックに 移動 (コピー) してから、 そのブロックを物理的に消去しておく ことが 望ましい。
また、 周知のタンパフリー技術を使用し、 L S I 1 2のパッケージが 開封された際に、 記憶データを強制的に消失させるようにしてもよい。 これにより、 記憶装置 1 0の信頼性をより高めることができる。
また、 周知のタンパフリ一技術を使用し、 記憶装置 1 0のケース又は コントローラ 1 6のパッケージがあけられた時等で、 E E P R O M 1 6 4の記憶内容を自動的に消去できるようにしてもよい。 これによれば、 第 3の喑号鍵 k 3が第三者に漏れることが避けられ、 信頼性がさらに向 上する。
なお、 この発明は、 受信した平文のデータを暗号化して出力し、 受信 した暗号文を復号化して出力する装置等にも適用可能である。
この場合の構成及び動作は、 フラッシュメモリ 1 1へのデータの書込 処理が外部への出力 (送信) 処理、 フラッシュメモリ 1 1からのデータ の読み出しが外部からの入力 (受信) 処理に変更される点を除けば、 上 述の第 1〜第 8の実施の形態の処理と同一である。
その他、この発明は上述の第 1〜第 8の実施の形態に限定されず、種々 の変形及び応用が可能である。
以上説明したように、 この発明によれば、 記憶装置に記憶された機密情 報を安全に記憶でき、 記憶装置の記録内容の信頼性を高めることができ る。

Claims

請求の範囲
1. データを記憶するための書換可能な不揮発性メモリ ( 1 1 ) と、 前記不揮発性メモリをアクセスするための制御手段 ( 1 2) とより構 成され、 データを記憶するための記憶装置であって、
前記不揮発性メモリ に第 1の暗号鍵が格納され、 前記制御手段内に第 2の暗号鍵が格納され、 前記第 1の暗号鍵は、 前記第 2の喑号鍵により 暗号化されており、
前記制御手段は、 前記第 2の暗号键を用いて前記第 1の喑号鍵を復号 化する鍵復号手段 ( 1 2) と、 前記鍵復号手段により復号化された第 1 の暗号鍵を用いてデータを暗号化して前記不揮発性メモリに書き込む書 込手段 ( 1 2) と、 前記不揮発性メモリからデータを読み出して、 前記 鍵復号手段により復号化された前記第 1の暗号鍵を用いて読み出したデ 一タを復号化する読出手段 ( 1 2) とを備える、
ことを特徴とする記憶装置。
2. 前記第 2の暗号鍵は複数の前記記憶装置に共通であり、 前記第 1 の暗号鍵は、 同一の第 2の暗号鍵を記憶している前記記憶装置の一部に 共通の暗号鍵である、 ことを特徴とする請求項 1に記載の記憶装置。
3. 前記第 2の暗号鍵は複数の前記記憶装置に共通であり、 前記第 1 の暗号鍵は、 同一の第 2の暗号鍵を記憶している前記記憶装置のそれぞ れに固有の暗号鍵である、ことを特徴とする請求項 1に記載の記憶装置。
4. 前記不揮発性メモリはフラッシュメモリ ( 1 1 ) から構成され、 前記制御手段は前記第 2の暗号鍵を記憶したマスク ROM (読み出し専 用メモリ) ( 1 5) を含む、 ことを特徴とする請求項 1に記載の記憶装
5. 前記鍵復号手段は、 パスワードを取り込み、 正しいパスワードが 入力された場合のみ、 前記暗号化された第 1の暗号鍵を復号化する、 こ とを特徴とする請求項 1に記載の記憶装置。
6. 前記第 1の暗号鍵は、 前記第 2の暗号鍵とパスワー ドを基に生成 された第 3の暗号鍵により喑号化されて前記不揮発性メモリに格納され ており、
前記鍵復号手段は、 パスワードを入力する手段と、 入力されたパスヮ ー ドから第 3の暗号鍵を生成する手段と、 前記第 2の暗号鍵と生成され た第 3の暗号鍵とを用いて前記暗号化されている第 1の暗号鍵を復号化 する手段 ( 1 6) を備える、 ことを特徴とする請求項 1に記載の記憶装
7. 前記鍵復号手段は、 復号プログラムと該復号プログラムを実行す る手段 ( 1 6) とより構成され、
前記復号プログラムは前記不揮発性メモリに格納されている、 ことを特徴とする請求項 1に記載の記憶装置。
8. 前記鍵復号手段と前記書込手段と前記読出手段は、 復号化された 第 1の暗号鍵を記憶し、 外部からのアクセスに対して保護された揮発性 メモリ ( 1 3) を含む、
ことを特徴とする請求項 1に記載の記憶装置。
9. 前記不揮発性メモリはフラッシュメモリ ( 1 1 ) である、 ことを 特徴とする請求項 1に記載の記憶装置。
1 0. 前記制御手段は、 前記第 1の暗号键を生成し、 生成した第 1の 暗号鍵を前記第 2の暗号鍵を用いて暗号化して前記不揮発性メモリ に記 録する鍵生成手段 ( 1 6) を備える、
ことを特徴とする請求項 1に記載の記憶装置。
1 1. 前記鍵生成手段は、 入力されたパスワードに基づいて前記第 1 の暗号鍵を生成する、 ことを特徴とする請求項 1 0に記載の記憶装置。
1 2. 前記第 2の暗号鍵は、 複数の記憶装置に共通の暗号鍵である、 ことを特徴とする請求項 1 0に記載の記憶装置。
1 3. 第 1の喑号鍵とデータを記憶するための書換可能な不揮発性メ モリ ( 1 1 ) と、
第 2の暗号鍵を記憶し、 前記不揮発性メモリをアクセスするための制 御手段 ( 1 2) と、
より構成され、 データを記憶する記憶装置であって、
前記制御手段は、 前記第 1 と第 2の暗号鍵を用いてデータを暗号化し て前記不揮発性メモリ に書き込む書込手段 ( 1 6) と、 前記不揮発性メ モリからデータを読みだして前記第 1 と第 2の暗号鍵を用いて複号化し て出力する読出手段 ( 1 6) とを備える、
ことを特徴とする記憶装置。
1 4. 前記第 2の暗号鍵は、 複数の記憶装置に共通の暗号鍵であり、 前記制御手段に配置された読出専用メモリに格納され、
前記第 1の暗号鍵は、 前記第 2の暗号鍵を共通とする複数の記憶装置 の一部のみに共通又は固有の喑号鍵である、
ことを特徴とする請求項 1 3に記載の記憶装置。
1 5. 前記不揮発性メモリはフラッシュメモリ ( 1 1 ) から構成され、 前記制御手段は前記第 2の暗号鍵を記憶したマスク ROM (読み出し専 用メモリ) ( 1 5) を備える、
ことを特徴とする請求項 1 3に記載の記憶装置。
1 6. 暗号化された暗号鍵を記憶する暗号鍵記憶手段 ( 1 1 ) と、 前記暗号鍵を用いて暗号化されたデータを記憶するための書換可能な 不揮発性メモリ ( 1 1 ) と、
前記暗号鍵を復号する復号手段 ( 1 6) と、 前記復号手段により復号 された暗号鍵を記憶する揮発性メモリ ( 1 3) と、 前記揮発性メモリ に 記憶された暗号鍵を用いて外部より供給されるデータを暗号化して前記 不揮発性メモリに書き込む書込手段 ( 1 6) と、 前記不揮発性メモリか らデータを読み出し、 読み出したデータを前記揮発性メモリに記憶され ている暗号鍵を用いて復号化して出力する読出手段 ( 1 6) とを備える 制御手段 ( 1 2) と、 前記揮発性メモリへの外部からのアクセスを禁止 する禁止手段 ( 1 6, 2 2, I DB, 2 5) と、 を備え、
復号化された暗号鍵への外部からのアクセスが防止されていることを 特徴とする記憶装置。
1 7. 前記禁止手段は、 この記憶装置が開封されたことを検出する開 封検出手段 ( 1 6, 2 2) と、 前記開封検出手段が開封を検出した際に、 前記不揮発性メモリ の内容を消去する手段 ( 1 6 ) を含む、 ことを特徴 とする請求項 1 6に記載の記憶装置。
1 8. 前記禁止手段は、 前記制御手段を封止する封止手段 ( 2 5) と、 前記封止手段に封止され、 前記揮発性メモリ と前記復号手段との間でデ ータを伝送する内部パス ( I D B) と、 を含む、 ことを特徴とする請求 項 1 6に記載の記憶装置。
1 9. 前記暗号鍵記憶手段と前記復号手段との間で暗号化された暗号 鍵を伝送し、 かつ、 前記書込手段及び前記読出手段と前記不揮発性メモ リ との間で暗号化されているデータを伝送するデータパス (D B) と、 前記内部パスとは別体に構成され、
前記復号化された暗号鍵は前記データバス上には出力されないように 構成されている、
ことを特徴とする請求項 1 8に記載の記憶装置。
20. 不揮発性メモリ ( 1 1 ) と、
第 1の暗号鍵を生成する鍵生成手段 ( 1 6) と、
第 2の暗号鍵を記憶する鍵記憶手段 ( 1 5) と、
前記鍵生成手段により生成された前記第 1の暗号鍵と前記鍵記憶手段 に記憶されている前記第 2の暗号鍵とを用いてデータを暗号化して前記 不揮発性メモリに書き込む書込手段 ( 1 6) と、 前記不揮発性メモリか らデータを読出して前記第 1 と第 2の暗号鍵を用いて復号化して出力す る読出手段 ( 1 6) とを備える、
ことを特徴とする記憶装置。
2 1. 前記鍵生成手段は、 生成した第 1の暗号鍵を、 前記不揮発性メ モリ に格納する手段を備え、 前記書込手段及ぴ前記読出手段は、 前記不 揮発性メモ'リに格納された第 1の暗号鍵を使用する、
ことを特徴とする請求項 2 0に記載の記憶装置。
2 2. 前記鍵生成手段は、 入力されたパスワー ドに基づいて前記第 1 の暗号鍵を生成する、 ことを特徴とする請求項 20に記載の記憶装置。
2 3. 前記第 2の暗号鍵は、 複数の記憶装置に共通の暗号鍵であり、 読出専用メモリからなる前記鍵記憶手段に格納されている、
ことを特徴とする請求項 2 0に記載の記憶装置。
24. 第 1の暗号鍵を記憶する第 1の暗号鍵記憶手段 ( 1 1 ) と、 第 2の喑号鍵を記憶する第 2の暗号鍵記憶手段 ( 1 5) と、 第 3の暗号鍵を記憶する第 3の暗号鍵記憶手段 ( 1 5) と、 前記第 1乃至第 3の暗号鍵記憶手段に記憶された前記第 1乃至第 3の 暗号鍵を用いてデータを暗号化して不揮発性メモリに書き込む書込手段 ( 1 6) と、 前記不揮発性メモリからデータを読出して前記第 1乃至第
3の暗号鍵を用いて復号化して出力する読出手段 ( 1 6) とを備え、 前記第 1乃至第 3の暗号鍵が分散して配置されていることを特徴とす る記憶装置。
2 5. 第 1の暗号鍵が格納された書換可能な不揮発性メモリ ( 1 1 ) と、
第 2の暗号鍵が格納された読み出し専用メモリ ( 1 5 ) と、 データを前記第 1 と第 2の暗号鍵を用いて暗号化して出力する暗号化 手段 ( 1 6 ) と、 暗号化されたデータを前記第 1 と第 2の喑号鍵を用い て復号化して出力する復号化手段 ( 1 6 ) とを備える、
ことを特徴とする暗号化 ·復号化装置。
2 6 . 複数の装置に共通の共通暗号鍵を読出専用メモリ に記憶させ、 ユニークな個別暗号鍵を前記共通暗号鍵で暗号化して書換可能な不揮発 性メモリに記憶させておき、
前記不揮発性メモリにデータを書き込む際は、 前記共通暗号鍵を用い て前記個別喑号键を複号化し、 復号化した前記個別暗号鍵を用いてデー タを暗号化して前記不揮発性メモリ に書き込み、
前記不揮発性メモリからデータを読み出す際は、 前記共通暗号鍵を用 いて前記個別暗号鍵を復号化し、 前記不揮発性メモリから読み出したデ 一タを復号化した個別暗号鍵を用いて復号化して出力する、
ことを特徴とする不揮発性メモリのアクセス方法。
2 7 . 所定のパスワードが入力された時にのみ、 前記個別喑号鍵を復 号化する、 ことを特徴とする請求項 2 6に記載の不揮発性メモリ のァク セス方法。
2 8 . 前記個別暗号鍵は、 前記共通暗号鍵とパスワードを基に生成さ れた第 3の喑号键により暗号化されて前記不揮発性メモリに記憶されて おり、
パスワードを入力し、 入力されたパスヮードから前記第 3の暗号鍵を 生成し、 前記共通暗号鍵と生成された第 3の暗号鍵とを用いて前記個別 暗号键を復号化する、 ことを特徴とする請求項 2 6に記載の不揮発性メ モリ のアクセス方法。
2 9 . 前記共通暗号鍵及ぴ復号化された個別暗号鍵は、 外部からのァ クセスに対し、 プロテク トされている、 ことを特徴とする請求項 2 6に 記載の不揮発性メモリのアクセス方法。
PCT/JP1999/000170 1998-01-21 1999-01-20 Dispositif de stockage, dispositif de cryptage/decryptage et procede permettant d'acceder a une memoire remanente Ceased WO1999038078A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP99901112A EP1056015A4 (en) 1998-01-21 1999-01-20 MEMORY DEVICE, DEVICE AND DECOMPOSITION DEVICE AND ACCESS PROCESS FOR NON-VOLATILE MEMORY
US09/619,860 US6457126B1 (en) 1998-01-21 2000-07-20 Storage device, an encrypting/decrypting device and method of accessing a non-volatile memory

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP930398 1998-01-21
JP10/9303 1998-01-21

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US09/619,860 Continuation US6457126B1 (en) 1998-01-21 2000-07-20 Storage device, an encrypting/decrypting device and method of accessing a non-volatile memory

Publications (1)

Publication Number Publication Date
WO1999038078A1 true WO1999038078A1 (fr) 1999-07-29

Family

ID=11716711

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1999/000170 Ceased WO1999038078A1 (fr) 1998-01-21 1999-01-20 Dispositif de stockage, dispositif de cryptage/decryptage et procede permettant d'acceder a une memoire remanente

Country Status (4)

Country Link
US (1) US6457126B1 (ja)
EP (1) EP1056015A4 (ja)
KR (1) KR100397316B1 (ja)
WO (1) WO1999038078A1 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005004382A1 (ja) * 2003-07-08 2005-01-13 Fujitsu Limited 暗号処理装置
KR100503588B1 (ko) * 2001-02-07 2005-07-26 가부시키가이샤 히타치세이사쿠쇼 불휘발성 메모리를 갖는 기록 장치
JP2006245704A (ja) * 2005-02-28 2006-09-14 Sony Corp 復号回路
JP2007195190A (ja) * 2006-01-20 2007-08-02 Seagate Technology Llc 記憶システムにおける暗号化キー
KR100817657B1 (ko) * 2000-01-18 2008-03-27 가부시키가이샤 히타치세이사쿠쇼 반도체 기억 장치, 데이터 처리 장치 및 반도체 장치
JP2008236091A (ja) * 2007-03-16 2008-10-02 Ricoh Co Ltd データ復旧方法、画像処理装置、コントローラボード及びデータ復旧プログラム
US7543159B2 (en) 2001-11-14 2009-06-02 International Business Machines Corporation Device and method with reduced information leakage
JP2009141530A (ja) * 2007-12-04 2009-06-25 Ricoh Co Ltd 画像形成装置及びデータ管理方法
US8290159B2 (en) 2007-03-16 2012-10-16 Ricoh Company, Ltd. Data recovery method, image processing apparatus, controller board, and data recovery program
JP2016076261A (ja) * 2014-04-03 2016-05-12 華邦電子股▲ふん▼有限公司 セキュアテストモードを有するメモリデバイスとその方法

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3602984B2 (ja) * 1999-07-09 2004-12-15 富士通株式会社 メモリ装置
US7131001B1 (en) * 1999-10-29 2006-10-31 Broadcom Corporation Apparatus and method for secure filed upgradability with hard wired public key
US20020091935A1 (en) * 2000-08-11 2002-07-11 Sony Corporation, A Corporation Of Japan Storage and retrieval of encrypted content on storage media
JP2002261748A (ja) * 2000-12-28 2002-09-13 Sony Corp データ送信装置及び方法並びにデータ記録装置及び方法
DE10101972A1 (de) * 2001-01-17 2002-07-25 Siemens Ag Vorrichtung mit einem Steuergerät und einem nicht-flüchtigen Speicher sowie Verfahren zum Betreiben einer solchen Vorrichtung
DE10110049A1 (de) * 2001-03-02 2002-09-05 Bosch Gmbh Robert Verfahren und Vorrichtung zur Datenverschlüsselung bei der Programmierung von Steuergeräten
US20020152392A1 (en) * 2001-04-12 2002-10-17 Motorola, Inc. Method for securely providing encryption keys
JP2002323993A (ja) * 2001-04-25 2002-11-08 Nec Corp シングルチップマイクロコンピュータ並びにその試験方法及び試験プログラム
US7328348B2 (en) * 2001-08-02 2008-02-05 Safenet, Inc. Method and system for securely timestamping digital data
FR2829603A1 (fr) * 2001-09-11 2003-03-14 St Microelectronics Sa Procede et dispositif de stockage et de lecture de donnees numeriques sur un support physique
GB0123417D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
JP4291970B2 (ja) * 2001-12-20 2009-07-08 富士通株式会社 暗号処理装置
US7987007B2 (en) 2002-03-18 2011-07-26 Creative Technology Ltd Memory module with audio playback mode
USD503408S1 (en) 2002-03-18 2005-03-29 Creative Technology Ltd. Media player
US7108605B2 (en) * 2002-09-30 2006-09-19 Igt EPROM file system in a gaming apparatus
US20040083378A1 (en) * 2002-10-29 2004-04-29 Research Triangle Software, Inc. Method, systems and devices for handling files while operated on in physically different computer devices
JP2004172762A (ja) * 2002-11-18 2004-06-17 Brother Ind Ltd 通信システム、端末装置及び電子機器、並びにプログラム
JP2004303092A (ja) * 2003-03-31 2004-10-28 Fujitsu Ltd メモリ装置、メモリアクセス制限システムおよびメモリアクセス方法
US7398544B2 (en) * 2003-05-12 2008-07-08 Sony Corporation Configurable cableCARD
JP4270496B2 (ja) * 2003-06-12 2009-06-03 シャープ株式会社 不揮発性半導体メモリ装置およびその消去制御方法
US6975092B2 (en) * 2003-07-03 2005-12-13 Dell Products L.P. Encrypted response smart battery
US7366302B2 (en) * 2003-08-25 2008-04-29 Sony Corporation Apparatus and method for an iterative cryptographic block
EP1560033A1 (fr) * 2004-01-29 2005-08-03 STMicroelectronics S.A. Circuit intégré comportant un mode de test sécurisé par initialisation du dit mode de test
US7607177B2 (en) * 2004-02-23 2009-10-20 Micron Technology, Inc. Secure compact flash
US20050209975A1 (en) * 2004-03-18 2005-09-22 Hitachi, Ltd. System, method and computer program product for conducting a secure transaction via a network
US8601283B2 (en) * 2004-12-21 2013-12-03 Sandisk Technologies Inc. Method for versatile content control with partitioning
CN101908106B (zh) 2004-12-21 2013-06-05 桑迪士克股份有限公司 具有通用内容控制的存储设备
WO2006071725A2 (en) 2004-12-21 2006-07-06 Sandisk Corporation Memory system with in-stream data encryption/decryption
CN101819612B (zh) 2004-12-21 2013-09-25 桑迪士克科技公司 具有分区的通用内容控制
US8504849B2 (en) * 2004-12-21 2013-08-06 Sandisk Technologies Inc. Method for versatile content control
US20070168292A1 (en) * 2004-12-21 2007-07-19 Fabrice Jogand-Coulomb Memory system with versatile content control
US8423788B2 (en) 2005-02-07 2013-04-16 Sandisk Technologies Inc. Secure memory card with life cycle phases
US8108691B2 (en) 2005-02-07 2012-01-31 Sandisk Technologies Inc. Methods used in a secure memory card with life cycle phases
US8321686B2 (en) 2005-02-07 2012-11-27 Sandisk Technologies Inc. Secure memory card with life cycle phases
JP4256859B2 (ja) * 2005-04-21 2009-04-22 シャープ株式会社 半導体記憶装置
FR2885417A1 (fr) * 2005-05-04 2006-11-10 St Microelectronics Sa Circuit integre comportant un mode de test securise par detection de l'etat chaine des cellules configurables du circuit integre
EP1722305A1 (en) * 2005-05-12 2006-11-15 Axalto S.A. Portable device with mass storage memory
US7743409B2 (en) 2005-07-08 2010-06-22 Sandisk Corporation Methods used in a mass storage device with automated credentials loading
KR100641297B1 (ko) * 2005-08-18 2006-11-02 삼성전자주식회사 롬 스크램블 방식의 반도체 장치 및 상기 반도체 장치의동작 방법
US7536540B2 (en) 2005-09-14 2009-05-19 Sandisk Corporation Method of hardware driver integrity check of memory card controller firmware
US7934049B2 (en) 2005-09-14 2011-04-26 Sandisk Corporation Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
US20070136593A1 (en) * 2005-12-14 2007-06-14 Richard Plavcan Secure information storage apparatus
US8639939B2 (en) * 2006-07-07 2014-01-28 Sandisk Technologies Inc. Control method using identity objects
US8613103B2 (en) * 2006-07-07 2013-12-17 Sandisk Technologies Inc. Content control method using versatile control structure
JP2008052360A (ja) * 2006-08-22 2008-03-06 Fujitsu Ltd ストレージ装置およびライト実行プログラム
US8200961B2 (en) * 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
US8423794B2 (en) 2006-12-28 2013-04-16 Sandisk Technologies Inc. Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications
US8190920B2 (en) * 2007-09-17 2012-05-29 Seagate Technology Llc Security features in an electronic device
US8250375B2 (en) * 2008-04-25 2012-08-21 Microsoft Corporation Generating unique data from electronic devices
US7743988B2 (en) * 2008-07-18 2010-06-29 Freescale Semiconductor, Inc. Authentication system including electric field sensor
US8429330B2 (en) 2008-09-12 2013-04-23 Sandisk Technologies Inc. Method for scrambling data in which scrambling data and scrambled data are stored in corresponding non-volatile memory locations
US8145855B2 (en) 2008-09-12 2012-03-27 Sandisk Technologies Inc. Built in on-chip data scrambler for non-volatile memory
WO2010030701A1 (en) * 2008-09-12 2010-03-18 Sandisk Corporation Built in on-chip data scrambler for non-volatile memory
US9104618B2 (en) * 2008-12-18 2015-08-11 Sandisk Technologies Inc. Managing access to an address range in a storage device
US20100268856A1 (en) * 2009-04-20 2010-10-21 Smith Eric R Formatting memory in a peripheral device
US8756391B2 (en) * 2009-05-22 2014-06-17 Raytheon Company Multi-level security computing system
DE102009036214A1 (de) * 2009-08-05 2011-02-10 Giesecke & Devrient Gmbh Tragbarer Datenträger mit einem Dekoder
US8255620B2 (en) 2009-08-11 2012-08-28 Texas Memory Systems, Inc. Secure Flash-based memory system with fast wipe feature
FR2955189B1 (fr) * 2009-11-12 2012-03-09 St Microelectronics Rousset Procede securise de traitement d'un contenu memorise au sein d'un composant, et composant correspondant
US9612978B2 (en) 2010-12-31 2017-04-04 International Business Machines Corporation Encrypted flash-based data storage system with confidentiality mode
EP2503482A1 (en) 2011-03-23 2012-09-26 ST-Ericsson SA Electronic device with flash memory component
DE102011120175A1 (de) * 2011-12-06 2013-06-06 Robert Bosch Gmbh Verfahren und Vorrichtung zum Schutz einesComputerprogramms gegen unberechtigte Benutzung
RU2485710C1 (ru) * 2011-12-23 2013-06-20 Общество с ограниченной ответственностью "ЕвроКомСервис" Криптокамера
DE102012006457A1 (de) * 2012-03-30 2013-10-02 Giesecke & Devrient Gmbh Verfahren zum Verschlüsseln von Daten auf einem Speichermedium
US9459955B2 (en) * 2012-05-24 2016-10-04 Sandisk Technologies Llc System and method to scramble data based on a scramble key
US9329992B2 (en) * 2013-12-04 2016-05-03 Silicon Motion, Inc. Data storage device and flash memory control method
CN103778964B (zh) * 2013-12-30 2016-08-17 上海晨思电子科技有限公司 一种NAND Flash烧写数据的处理、使用方法及装置、系统
WO2015118630A1 (ja) * 2014-02-05 2015-08-13 株式会社日立製作所 ストレージシステムおよびストレージシステム用キャッシュ制御装置
ES2683998T3 (es) * 2014-05-15 2018-10-01 Winbond Electronics Corp. Dispositivo de memoria con modo de prueba segura
AU2015290223B2 (en) 2014-07-16 2018-05-10 Bae Systems Information And Electronic Systems Integration Inc. Flash memory device for storing sensitive information and other data
US10387662B2 (en) 2014-07-16 2019-08-20 Jeffrey B. Canter Flash memory device for storing sensitive information and other data
CN105469835B (zh) * 2014-09-12 2018-11-13 华邦电子股份有限公司 存储装置及其测试方法
TWI679554B (zh) * 2017-03-07 2019-12-11 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
WO2020018644A1 (en) * 2018-07-17 2020-01-23 Canter Jeffrey B Flash memory device for storing sensitive information and other data
US11088832B2 (en) * 2020-01-09 2021-08-10 Western Digital Technologies, Inc. Secure logging of data storage device events
KR102938442B1 (ko) 2021-05-17 2026-03-11 삼성전자주식회사 Crum 칩 및 스마트 카드

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02130044A (ja) * 1988-11-09 1990-05-18 Aisin Seiki Co Ltd 暗号鍵装置
JPH02235158A (ja) * 1989-03-09 1990-09-18 Mitsubishi Electric Corp Icカードのセキユリテイ機能
JPH0895490A (ja) * 1994-09-27 1996-04-12 Nec Corp 秘密鍵暗号方法及び装置
JPH08161232A (ja) * 1994-12-05 1996-06-21 Oki Electric Ind Co Ltd 機密データ内蔵機器のセキュリティ装置
JPH103430A (ja) * 1996-06-14 1998-01-06 Dainippon Printing Co Ltd Icカード及び暗号処理プログラム実行方法
JPH103431A (ja) * 1996-06-17 1998-01-06 Nippon Telegr & Teleph Corp <Ntt> 秘密情報蓄積方法およびシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1238427A (en) * 1984-12-18 1988-06-21 Jonathan Oseas Code protection using cryptography
GB2205667B (en) * 1987-06-12 1991-11-06 Ncr Co Method of controlling the operation of security modules
US5533123A (en) * 1994-06-28 1996-07-02 National Semiconductor Corporation Programmable distributed personal security
US5778072A (en) * 1995-07-07 1998-07-07 Sun Microsystems, Inc. System and method to transparently integrate private key operations from a smart card with host-based encryption services
US5870468A (en) * 1996-03-01 1999-02-09 International Business Machines Corporation Enhanced data privacy for portable computers
US5774544A (en) * 1996-03-28 1998-06-30 Advanced Micro Devices, Inc. Method an apparatus for encrypting and decrypting microprocessor serial numbers
US6230267B1 (en) * 1997-05-15 2001-05-08 Mondex International Limited IC card transportation key set
JPH113284A (ja) * 1997-06-10 1999-01-06 Mitsubishi Electric Corp 情報記憶媒体およびそのセキュリティ方法
US6212635B1 (en) * 1997-07-18 2001-04-03 David C. Reardon Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place
EP0929040A3 (en) * 1997-12-25 2007-06-27 Nippon Telegraph and Telephone Corporation Microprocessor with data randomizing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02130044A (ja) * 1988-11-09 1990-05-18 Aisin Seiki Co Ltd 暗号鍵装置
JPH02235158A (ja) * 1989-03-09 1990-09-18 Mitsubishi Electric Corp Icカードのセキユリテイ機能
JPH0895490A (ja) * 1994-09-27 1996-04-12 Nec Corp 秘密鍵暗号方法及び装置
JPH08161232A (ja) * 1994-12-05 1996-06-21 Oki Electric Ind Co Ltd 機密データ内蔵機器のセキュリティ装置
JPH103430A (ja) * 1996-06-14 1998-01-06 Dainippon Printing Co Ltd Icカード及び暗号処理プログラム実行方法
JPH103431A (ja) * 1996-06-17 1998-01-06 Nippon Telegr & Teleph Corp <Ntt> 秘密情報蓄積方法およびシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1056015A4 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100817657B1 (ko) * 2000-01-18 2008-03-27 가부시키가이샤 히타치세이사쿠쇼 반도체 기억 장치, 데이터 처리 장치 및 반도체 장치
KR100503588B1 (ko) * 2001-02-07 2005-07-26 가부시키가이샤 히타치세이사쿠쇼 불휘발성 메모리를 갖는 기록 장치
US7543159B2 (en) 2001-11-14 2009-06-02 International Business Machines Corporation Device and method with reduced information leakage
WO2005004382A1 (ja) * 2003-07-08 2005-01-13 Fujitsu Limited 暗号処理装置
US7689836B2 (en) 2003-07-08 2010-03-30 Fujitsu Microelectronics Limited Encryption device
JP2006245704A (ja) * 2005-02-28 2006-09-14 Sony Corp 復号回路
JP2007195190A (ja) * 2006-01-20 2007-08-02 Seagate Technology Llc 記憶システムにおける暗号化キー
US8234505B2 (en) 2006-01-20 2012-07-31 Seagate Technology Llc Encryption key in a storage system
JP2008236091A (ja) * 2007-03-16 2008-10-02 Ricoh Co Ltd データ復旧方法、画像処理装置、コントローラボード及びデータ復旧プログラム
US8290159B2 (en) 2007-03-16 2012-10-16 Ricoh Company, Ltd. Data recovery method, image processing apparatus, controller board, and data recovery program
JP2009141530A (ja) * 2007-12-04 2009-06-25 Ricoh Co Ltd 画像形成装置及びデータ管理方法
JP2016076261A (ja) * 2014-04-03 2016-05-12 華邦電子股▲ふん▼有限公司 セキュアテストモードを有するメモリデバイスとその方法

Also Published As

Publication number Publication date
KR100397316B1 (ko) 2003-09-06
US6457126B1 (en) 2002-09-24
KR20010034283A (ko) 2001-04-25
EP1056015A4 (en) 2005-01-05
EP1056015A1 (en) 2000-11-29

Similar Documents

Publication Publication Date Title
WO1999038078A1 (fr) Dispositif de stockage, dispositif de cryptage/decryptage et procede permettant d&#39;acceder a une memoire remanente
EP1517244B1 (en) Information storage device, memory access control system and method, and computer program
EP2115655B1 (en) Virtual secure on-chip one time programming
CN100380348C (zh) 有加密部分或外部接口的半导体器件
EP1519275B1 (en) Information storage device, memory access control method, and computer program
US7356659B2 (en) Nonvolatile semiconductor memory and method of managing information in information distribution system
EP1519276A1 (en) Information storage device, memory access control system and method, and computer program
JPH11175403A (ja) テスト機能を備える記憶装置及びメモリのテスト方法
US7076667B1 (en) Storage device having secure test process
CN102027707A (zh) 具有保密软件映像的集成电路及其方法
US7975151B2 (en) Decryption key table access control on ASIC or ASSP
EP1519277A1 (en) Information storage device, memory access control method, and computer program
US12124618B2 (en) SoC architecture and data protection method thereof
CN110659506A (zh) 基于密钥刷新对存储器进行重放保护
JP7170999B2 (ja) 機密データを保護することが可能な電子機器
CN101124768A (zh) 使用受保护的非易失性存储器的系统和方法
US11809566B2 (en) Methods for fast, secure boot from nonvolatile memory device and corresponding systems and devices for the same
CN119150369A (zh) 片上系统及片上系统的操作方法
US8397081B2 (en) Device and method for securing software
CN115688120A (zh) 安全芯片固件导入方法、安全芯片及计算机可读存储介质
CN109598154B (zh) 一种可信全盘加解密方法
JPWO1999038078A1 (ja) 記憶装置、暗号化・復号化装置、及び不揮発性メモリのアクセス方法
US20230214144A1 (en) Electric device and method for emulating a non-volatile memory
CN117852105A (zh) 基于硬件增强的芯片安全管理方法、装置、终端及介质
CN121786799A (zh) 变频器加密烧录方法及系统

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP KR US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1999901112

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09619860

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 1020007007991

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1999901112

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020007007991

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1020007007991

Country of ref document: KR