KR100397316B1 - 기억 장치, 암호화ㆍ복호화 장치 및 불휘발성 메모리의액세스 방법 - Google Patents

기억 장치, 암호화ㆍ복호화 장치 및 불휘발성 메모리의액세스 방법 Download PDF

Info

Publication number
KR100397316B1
KR100397316B1 KR10-2000-7007991A KR20007007991A KR100397316B1 KR 100397316 B1 KR100397316 B1 KR 100397316B1 KR 20007007991 A KR20007007991 A KR 20007007991A KR 100397316 B1 KR100397316 B1 KR 100397316B1
Authority
KR
South Korea
Prior art keywords
data
encryption key
key
memory
storage device
Prior art date
Application number
KR10-2000-7007991A
Other languages
English (en)
Other versions
KR20010034283A (ko
Inventor
나카무라야스히로
히라카세이지
아사다카즈노리
에라사토시
Original Assignee
비.유.지., 인크.
동경 엘렉트론 디바이스 주식회사
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 비.유.지., 인크., 동경 엘렉트론 디바이스 주식회사 filed Critical 비.유.지., 인크.
Publication of KR20010034283A publication Critical patent/KR20010034283A/ko
Application granted granted Critical
Publication of KR100397316B1 publication Critical patent/KR100397316B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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

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)

Abstract

기억 장치(10)는 플래쉬 메모리(11), 제어기(16) 및 제2 ROM15를 구비한다. 플래쉬 메모리(11)에는 데이터 키가 저장되어 있다. 제2 ROM(15)에는 시스템 키가 등록되어 있다. 시스템 키는 복수의 기억 장치(10)에 공통의 암호 키이며, 데이터 키는 각 기억 장치(10)에 고유의 키이다. 제어기(16)는 데이터를 기록할 때는, 데이터 키와 시스템 키를 이용하여 데이터를 암호화하여 플래쉬 메모리(11)에 기록한다. 데이터를 판독할 때는 데이터 키와 시스템 키를 이용하여 데이터 키를 복호화하여 외부에 출력한다. 데이터 키는 시스템 키에 의해 암호화되어 있어도 좋다. 이 경우, 제어기(16)는 데이터를 기록할 때, 데이터 키를 시스템 키로 복호화하고, 그 복호화 데이터 키를 이용하여 데이터를 암호화하여도 좋다. 데이터를 판독할 때는 시스템 키를 이용하여 데이터 키를 복호화하고, 암호화 데이터를 복호화 데이터 키를 이용하여 복호화하여도 좋다.

Description

기억 장치, 암호화ㆍ복호화 장치 및 불휘발성 메모리의 액세스 방법{STORAGE DEVICE, ENCRYPTING/DECRYPTING DEVICE, AND METHOD FOR ACCESSING NONVOLATILE MEMORY}
컴퓨터 기술이 발전함에 따라 기밀 정보를 보호할 필요성이 증대하고 있다. 이러한 필요성 때문에, 데이터를 암호화하여 기억하거나 송신하는 암호화 기술의 중요성이 높아지고 있다. 예컨대, 기억 장치에 암호 키를 저장하여 놓고, 이 암호 키로 데이터를 암호화하여 메모리에 저장하며, 메모리로부터 판독된 데이터가 상기 암호 키에 의해 복호화된다.
그러나, 암호 키를 모든 기억 장치에 공통으로 하면, 하나의 기억 장치의 암호 키가 알려질 경우, 대량 생산되고 있는 다른 기억 장치의 암호 키도 알려지게 되어 기억 데이터가 해독될 우려가 있다.
기억 장치에 개별적으로 암호 키를 설정하는 것도 가능하나, 제조 공정이 증가하여 기억 장치의 제조 비용이 상승해 버린다.
또한, 컴퓨터로 모든 데이터를 암호화하여 메모리 카드에 저장하고, 메모리 카드로부터 판독 데이터를 컴퓨터로 복호화하는 기술도 알려져 있다. 그러나, 이 방법에서는 컴퓨터와 기억 장치 사이의 통신을 모니터함으로써 암호 키가 알려져 버릴 우려가 있다.
본 발명은 상기 문제점을 감안하여 이루어진 것으로 데이터를 암호화 및 복호화하는 기능을 구비하고, 또한, 암호 키 등의 기밀 정보의 누설의 우려가 적은 기억 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 가령 일부의 기억 장치의 암호 키 등이 누설되어도, 다른 기억 장치의 암호 키가 누설되는 일이 없는 기억 장치를 제공하는 것을 다른 목적으로 한다.
이 특허 출원은 평성 l0년 1월 21일에 일본국 특허청에 출원된 일본 특허 출원 평 10-9303의 파리 조약에 기초하는 우선권을 주장하는 출원이며, 이 일본 특허 출원의 내용은 참조용으로 명세서에 기재되었다.
본 발명은 컴퓨터 등의 외부 기억 장치 등으로 사용되는 기억 장치에 관한 것으로써, 특히 데이터를 암호화 한 상태로 저장하는 기억 장치에 관한 것이다.
도 1은 본 발명의 제1∼제3 실시의 형태에 관한 기억 장치, 컴퓨터 및 테스트 장치의 기본 구성을 나타내는 블록도.
도 2는 플래쉬 메모리와 제2 ROM의 내부 구성을 나타내는 내부 구성도.
도 3은 플래쉬 메모리로의 데이터의 기록 동작을 설명하기 위한 흐름도.
도 4는 플래쉬 메모리로부터의 데이터의 판독 동작을 설명하기 위한 흐름도.
도 5는 테스트 동작을 설명하기 위한 흐름도.
도 6은 기밀 정보를 기억한 영역으로의 액세스를 금지하는 구성의 일례를 설명하기 위한 블록도.
도 7은 테스트 모드로 SRAM의 내용을 리셋하는 구성의 일례를 나타내는 구성도.
도 8은 본 발명의 제4 실시의 형태에 관한 기억 장치의 플래쉬 메모리의 구성을 나타내는 구성도.
도 9는 제2 실시의 형태에 있어서 데이터 키 복호 동작을 설명하기 위한 흐름도.
도 10은 본 발명의 제4∼제7 실시의 형태에 관한 기억 장치의 구성을 나타내는 블록도.
도 11은 도 10에 나타내는 EEPROM의 구성을 나타내는 구성도.
도 12는 제6 실시의 형태에 관한 기억 장치의 암호 키 생성 처리를 설명하기 위한 흐름도.
도 13은 제7 실시의 형태에 관한 기억 장치의 암호 키 생성·기록 처리를 설명하기 위한 흐름도.
도 14는 본 발명의 제8 실시의 형태에 관한 기억 장치의 구조를 나타내는 블록도.
상기 목적을 달성하기 위해서, 본 발명의 제1 관점에 관한 기억 장치는 데이터를 기억하기 위한 재기록 가능한 불휘발성 메모리(11)와, 상기 불휘발성 메모리를 액세스하기 위한 제어 수단(12)을 포함하며, 상기 불휘발성 메모리에 제1 암호 키가 저장되고, 상기 제어 수단 내에 제2 암호 키가 저장되며, 상기 제1 암호 키는 상기 제2 암호 키에 의해 암호화되고,
상기 제어 수단은 상기 제2 암호 키를 이용하여 상기 제1 암호 키를 복호화하는 키 복호 수단(16)과, 상기 키 복호 수단에 의해 복호화 된 제1 암호 키를 이용해서 데이터를 암호화하여 상기 불휘발성 메모리에 기록하는 기록 수단(16)과, 상기 불휘발성 메모리로부터 데이터를 판독하고, 상기 키 복호 수단에 의해 복호화 된 제1 암호 키를 이용하여 판독 데이터를 복호화하는 판독 수단(16)을 구비하는 것을 특징으로 한다.
이 기억 장치에 따르면, 제1과 제2 암호 키를 사용하고, 이들을 분산하여 저장하고 있으며, 또한, 제1 암호 키를 제2 암호 키로 암호화하고 있기 때문에, 암호 키가 하나인 경우보다 암호 키가 누설될 위험이 적어 데이터가 도용되기 어렵다.
특히, 제1 암호 키를 재기록 가능한 불휘발성 메모리에 저장하고 있기 때문에, 제1 암호 키를 장치마다 또는 일정 대수마다 변경할 수 있다. 따라서, 제2 암호 키가 누설되어도 모든 기록 장치의 데이터를 해독하는 일은 곤란하다.
또한, 불휘발성 메모리는 데이터를 저장하기 위한 것으로 제1 암호 키를 저장하여도 비용 등이 상승하는 일이 없다.
상기 제2 암호 키는 복수의 상기 기억 장치에 공통이며, 상기 제1 암호 키는 동일한 제2 암호 키를 기억하고 있는 상기 기억 장치의 일부에만 공통되거나 각각의 기억 장치에 고유한 암호 키이다. 이러한 구성에 의해 장치마다 다른 암호 키를 사용할 수 있다.
예컨대, 상기 불휘발성 메모리는 플래쉬 메모리(11)로 구성되고, 상기 제어 수단은 상기 제2 암호 키를 기억한 마스크 ROM(일어내기 전용 메모리)(15)을 포함한다. 마스크 ROM 등은 대량 생산에 알맞아 제2 암호 키를 포함하는 정보를 저렴하게 제조할 수 있다. 한편, 플래쉬 메모리는 재기록 가능하며, 제1 암호 키를 장치마다 또는 소정 대수마다 변경하여 임의의 타이밍으로 기록할 수 있다.
패스워드를 받아들여 옳은 패스워드가 입력된 경우에만, 상기 암호화된 제1 암호 키를 복호화 하도록 하여도 좋다. 이 경우, 예컨대, 상기 제1 암호 키는 상기 제2 암호 키와 패스워드를 기초로 생성된 제3 암호 키에 의해 암호화되어 상기 불휘발성 메모리에 저장되고, 상기 키 복호 수단은 패스워드를 입력하는 수단과, 입력된 패스워드로부터 제3 암호 키를 생성하는 수단과, 상기 제2 암호 키와 생성된 제3 암호 키를 이용하여 상기 암호화 되어 있는 제1 암호 키를 복호화하는 수단을 구비한다.
예컨대, 상기 키 복호 수단은 복호 프로그램과 그 복호 프로그램을 실행하는 수단(16)으로 구성되고, 상기 복호 프로그램은 상기 불휘발성 메모리에 저장된다. 이러한 구성에 의하면, 패스워드에 따른 복호 프로그램을 적절하게 불휘발성 메모리에 기록할 수 있다.
상기 키 복호 수단, 상기 기록 수단 및 상기 판독 수단은 복호화 된 제1 암호 키를 기억하고, 외부로부터의 액세스에 대하여 보호된 휘발성 메모리(l3)를 포함한다. 복호화 된 제 1 암호 키는 RAM(랜덤 액세스 메모리) 등에 저장되어 사용된다. 이 RAM의 내용이 외부에서 판독되면, 불휘발성 메모리에 저장된 데이터가 해독되어 버린다. 따라서, 휘발성 메모리는 외부로부터의 액세스에 대하여 보호되는 것이 바람직하다.
상기 불휘발성 메모리는 예컨대, 플래쉬 메모리(11)이다.
상기 제어 수단은 상기 제1 암호 키를 생성하고 생성한 제1 암호 키를 상기 제2 암호 키를 이용하여 암호화해서 상기 불휘발성 메모리에 기록하는 키 생성 수단(16)을 구비하는 것이어도 좋다. 이 구성에 따르면, 기억 장치 자체가 제1 암호 키를 생성하여, 데이터의 암호화 및 복호화에 사용할 수 있다.
상기 키 생성 수단은 입력된 패스워드에 기초하여 상기 제1 암호 키를 생성하도록 구성하여도 좋다. 이러한 구성으로 하는 것에 의해, 제 1 암호 키의 특정이 한층 더 곤란해진다.
상기 제2 암호 키는 예컨대, 복수의 기억 장치에 공통의 암호 키여도 좋다. 이러한 구성으로 하면, 제어 수단이 복수의 장치에 공통인 암호 키가 저장된 마스크 ROM 등을 구비함으로써 비용을 절감할 수 있다.
또한, 본 발명의 제2 관점에 관한 기억 장치는, 제1 암호 키와 데이터를 기억하기 위한 재기록 가능한 불휘발성 메모리(11)와, 제2 암호 키를 기억하고 상기 불휘발성 메모리를 액세스하기 위한 제어 수단(l2)으로 구성되고,
상기 제어 수단은 상기 제1 및 제2 암호 키를 이용하여 데이터를 암호화하여 상기 불휘발성 메모리에 기록하는 기록 수단(16)과, 상기 불휘발성 메모리로부터 데이터를 판독하고 상기 제1 및 제2 암호 키를 이용하여 복호화해서 출력하는 판독 수단(l6)을 구비하는 것을 특징으로 한다.
이러한 구성에 따르면, 불휘발성 메모리에 저장되어 있는 데이터는 복수의암호 키를 이용하여 암호화되어 있다. 따라서, 양방의 암호 키를 모르면, 불휘발성 메모리에 기록되어 있는 데이터를 복호할 수 없어, 단일 암호 키를 사용하는 경우보다 기밀성이 높은 데이터를 안전하게 기억할 수 있다.
또한, 2개의 암호 키가 기억 장치내의 다른 위치에 분산되어 저장되어 있기 때문에 암호 키의 특정이 곤란하다.
예컨대, 상기 제2 암호 키는 복수의 기억 장치에 공통의 암호 키이며, 상기 제어 수단에 배치된 판독 전용 메모리(15)에 저장된다. 또한, 상기 제1 암호 키는 상기 제2 암호 키를 공통으로 하는 복수의 기억 장치의 일부에만 공통이거나 고유의 암호 키이다.
제1 암호 키를 재기록 가능한 불휘발성 메모리에 저장함으로써, 예컨대, 기억 장치마다 용이하게 제1 암호 키를 변경할 수 있다. 또한, 복수의 기억 장치에 공통의 제2 암호 키를 판독 전용 메모리에 저장하는 것에 의해, 제2 암호 키를 기억하는 메모리를 대량 생산하는 일이 가능해진다. 예컨대, 상기 불휘발성 메모리는 플래쉬 메모리(11)이며, 상기 판독 전용 메모리는 마스크 ROM(판독 전용 메모리) (15)이다.
또한, 본 발명의 제3 관점에 관한 기억 장치는,
암호화된 암호 키를 기억하는 암호 키 기억 수단(11)과,
상기 암호 키를 이용하여 암호화된 데이터를 기억하기 위한 재기록 가능한 불휘발성 메모리(11)와,
상기 암호 키를 복호하는 복호 수단(16)과, 상기 복호 수단에 의해 복호된 암호 키를 기억하는 휘발성 메모리(13)와, 상기 휘발성 메모리에 기억된 암호 키를 이용하여 외부로부터 공급되는 데이터를 암호화하여 상기 불휘발성 메모리에 기록하는 기록 수단(l6)과, 상기 불휘발성 메모리로부터 데이터를 판독하고, 그 판독 데이터를 상기 휘발성 메모리에 기억되어 있는 암호 키를 이용하여 복호화해서 출력하는 판독 수단(16)을 구비하는 제어 수단(12)과,상기 휘발성 메모리로의 외부로부터의 액세스를 금지하는 금지 수단(16, 22, IDB, 25)를 구비하며,
복호화 된 암호 키에 대한 외부로부터의 액세스가 방지되는 것을 특징으로 한다.
암호 키는 암호화되어 있지만, 사용시에는 복호화되어 휘발성 메모리에 저장된다. 따라서, 이 휘발성 메모리를 액세스하여, 데이터가 판독되면 암호 키가 알려져 버린다. 본 발명에서는 금지 수단에 의해 휘발성 메모리로 외부로부터의 액세스를 금지하고 있기 때문에, 이러한 사태를 방지할 수 있다.
예컨대, 상기 금지 수단은 상기 제어 수단을 밀봉하는 밀봉 수단(25)과, 상기 밀봉 수단에 밀봉되어 상기 휘발성 메모리와 상기 복호 수단 사이에서 데이터를 전송하는 내부 버스(IDB)를 포함한다. 이 구성에 따르면, 휘발성 메모리가 밀봉되어 있기 때문에, 이 휘발성 메모리를 외부에서 직접 액세스할 수 없다. 또한, 복호 수단과 휘발성 메모리 사이의 버스도 밀봉되어 있기 때문에, 버스상의 데이터를 프로브하여 암호 키를 판별하는 것도 곤란하다.
상기 암호 키 기억 수단과 상기 복호 수단 사이에서 암호화된 암호 키를 전송하고, 상기 기록 수단 및 상기 판독 수단과 상기 불휘발성 메모리 사이에서 암호화되어 있는 데이터를 전송하는 데이터 버스(DB)와, 상기 내부 버스를 별개로 구성하여, 상기 복호화 된 암호 키는 상기 데이터 버스상에는 출력되지 않도록 구성하는 것이 바람직하다. 이 구성에 의해, 외부에 인출되어 있는 버스를 프로브하여, 암호 키를 모니터하는 사태를 방지할 수 있다.
상기 금지 수단은 이 기억 장치가 개봉된 것을 검출하는 개봉 검출 수단(22)과, 상기 개봉 검출 수단이 개봉을 검출했을 때 상기 불휘발성 메모리의 내용을 소거하는 수단(16)을 포함하여도 좋다.
이 구성에 따르면, 불휘발성 메모리나 휘발성 메모리로의 부정한 액세스를 금지할 수 있다. 또한, 본 발명의 제4 관점에 관한 기억 장치는 불휘발성 메모리와,
제1 암호 키를 생성하는 키 생성 수단(16)과,
제2 암호 키를 기억하는 키 기억 수단(15)과,
상기 키 생성 수단에 의해 생성된 상기 제1 암호 키와 상기 키 기억 수단에 기억되어 있는 상기 제2 암호 키를 이용하여 데이터를 암호화하고 상기 불휘발성 메모리에 기록하는 기록 수단(16)과, 상기 불휘발성 메모리로부터 데이터를 판독하고 상기 제1과 제2 암호 키를 이용해서 복호화하여 출력하는 판독 수단(16)을 구비하는 것을 특징으로 한다.
이 구성에 따르면, 기억 장치 자체가 제1 암호 키를 생성할 수 있다. 예컨대, 이 암호 키를 사용자의 패스워드 등에 기초하여 생성하도록 하면, 암호 키가 장치마다 다르게 되고, 암호의 해독은 매우 곤란해져 시스템의 신뢰도를 높일 수 있다.
상기 키 생성 수단은 생성한 제1 암호 키를 상기 불휘발성 메모리에 저장하고, 상기 기록 수단 및 판독 수단은 상기 불휘발성 메모리에 저장된 제 1 암호 키를 암호화 및 복호화에 사용하여도 좋다. 이 구성에 따르면, 예컨대, 포맷시 제1 암호 키를 생성하여 불휘발성 메모리에 저장해 놓고, 이후에는 이 키를 사용하기 때문에 처리를 고속화할 수 있다.
입력된 패스워드에 기초하여 상기 제 1 암호 키를 생성하도록 구성하여도 좋다. 이러한 구성으로 하는 것에 의해 제1 암호 키의 특정이 한층 더 곤란해진다.
예컨대, 상기 제2 암호 키는 복수의 기억 장치에 공통의 암호 키이며, 마스크 ROM 등의 판독 전용 메모리로 이루어지는 키 기억 수단에 저장된다. 이러한 구성으로 하면, 복수의 장치에 공통인 암호 키를 마스크 ROM 등으로 제조할 수 있어 비용을 절감할 수 있다.
또한, 본 발명의 제5 관점에 관한 기억 장치는,
제1 암호 키를 기억하는 제1 암호 키 기억 수단(11)과,
제2 암호 키를 기억하는 제2 암호 키 기억 수단(15)과,
제3 암호 키를 기억하는 제3 암호 키 기억 수단(15)과,
상기 제1 내지 제3 암호 키 기억 수단에 기억된 상기 제1 내지 제3 암호 키를 이용하여 데이터를 암호화하고 불휘발성 메모리에 기록하는 기록 수단(16)과, 상기 불휘발성 메모리로부터 데이터를 판독하고 상기 제1 내지 제3 암호 키를 이용하여 복호화하여 출력하는 판독 수단(16)을 구비하고,
상기 제1 내지 제3 암호 키는 장치내에 있어서 분산되어 배치되어 있는 것을 특징으로 한다.
본 발명에 따르면, 3 이상의 암호 키를 사용하고 이들을 분산하여 저장함으로써 암호의 해독을 매우 곤란하게 할 수 있다.
또한, 본 발명의 제6 관점에 관한 암호화·복호화 장치는,
제1 암호 키가 저장된 재기록 가능한 불휘발성 메모리(11)와,
제2 암호 키가 저장된 판독 전용 메모리(15)와,
데이터를 상기 제1과 제2 암호 키를 이용하여 암호화하여 출력하는 암호화 수단(16)과, 암호화된 데이터를 상기 제1과 제2 암호 키를 이용하여 복호화하여 출력하는 복호화 수단(16)을 구비하는 것을 특징으로 한다.
이 구성에 따르면, 2개의 암호 키를 이용하여 데이터를 암호화 및 복호화할 수 있다. 더구나, 복수의 장치에 공통인 제2 암호 키는 판독 전용 메모리에 저장될 수 있으며, 개별 암호 키는 불휘발성 메모리에 저장될 수 있다.
또한, 본 발명의 제7 관점에 관한 불휘발성 메모리의 액세스 방법은 복수의 장치에 공통의 공통 암호 키를 판독 전용 메모리에 기억시키고, 고유의 개별 암호 키를 상기 공통 암호 키로 암호화하여 재기록 가능한 불휘발성 메모리에 기억시켜 놓고,
상기 불휘발성 메모리에 데이터를 기록할 때는 상기 공통 암호 키를 이용하여 상기 개별 암호 키를 복호화하고, 복호화한 상기 개별 암호 키를 이용하여 데이터를 암호화하여 상기 불휘발성 메모리에 기록하고,
상기 불휘발성 메모리로부터 데이터를 판독할 때는 상기 공통 암호 키를 이용하여 상기 개별 암호 키를 복호화하고, 복호화한 개별 암호 키를 이용하여 상기 불휘발성 메모리로부터 판독 데이터를 복호화하여 출력하는 것을 특징으로 한다.
이 액세스 방법에 의해서도 암호 키가 한 개인 경우보다도, 암호 키가 누설될 위험이 적어 데이터가 도용되기 어렵다. 또한, 비용 상승도 적다.
소정의 패스워드가 입력된 때에만, 상기 개별 암호 키를 복호화하도록 하여도 좋다. 이 경우 상기 개별 암호 키는 상기 공통 암호 키와 패스워드를 기초로 생성된 제3 암호 키에 의해 암호화되어 상기 불휘발성 메모리에 기억되며, 패스워드를 입력하여, 그 입력된 패스워드로부터 상기 제3 암호 키를 생성하고, 상기 공통암호 키와 생성된 제3 암호 키를 이용하여 상기 개별 암호 키를 복호화한다.
또한, 상기 공통 암호 키 및 복호화된 개별 암호 키는 예컨대, 외부로부터의 액세스에 대하여 보호되어도 좋다. 이러한 구성에 의해 신뢰성을 보다 높일 수 있다.
이하, 본 발명의 실시의 형태에 관한 기억 장치를 플래쉬 메모리 장치를 예로 설명한다.
도 1은 본 발명의 제1 실시의 형태에 관한 기억 장치의 구성을 나타낸다. 도시한 바와 같이, 기억 장치(10)는 플래쉬 메모리(11)와 플래쉬 메모리(11)를 액세스하기 위한 LSI(12)로 구성되어 있다.
플래쉬 메모리(11)는 통상 알려져 있는 바와 같이, 블록 소거형의 기억 소자이다. 즉, 플래쉬 메모리(11)은 복수의 메모리 셀로 구성된 복수의 블록을 구비하고, 미리 소거된 블록에 데이터의 기록이 가능한 메모리이다.
플래쉬 메모리(11)가 갖는 기억 영역에는 도 2(A)에 타나낸 바와 같이, 영역 (T1)이 포함된다. 영역(T1)에는 데이터를 암호화 및 복호화하기 위한 암호 키 인 데이터 키(k1)가 미리 기록되어 있다. 데이터 키(k1)는 충분히 큰 비트 수의 소수 등으로 구성되고, 후술하는 시스템 키(k2)에 의해 암호화되어 있다.
또한, 파일의 위치를 나타내는 파일 할당 테이블(FAT), 디렉토리 정보, 소거가 끝난 블록을 나타내는 빈 블록 테이블 등도 플래쉬 메모리(11)에 저장되어 있다.
또한, 데이터 키(k1)에 의해 암호화된 데이터도 플래쉬 메모리(11)에 저장되어 있다.
LSI(12)는 컴퓨터(20)의 제어에 따라서, 플래쉬 메모리(11)를 액세스하기 위해 여러 가지의 제어 동작을 행한다. LSI(12)는 SRAM(13)과, 제1 및 제2 ROM(14, 15)과, 제어기(16)로 구성된다.
SRAM(스태틱 랜덤 액세스 메모리)(13)는 휘발성의 고속 메모리이며, 제어기(16)의 워크 영역으로서 기능한다.
제1 ROM(리드-온리 메모리)(14)은 마스크 ROM 등으로 이루어지는 판독 전용 메모리이며, 제어기(16)의 동작 프로그램을 기억한다.
제2 ROM(15)은 마스크 ROM 등으로 이루어지는 판독 전용 메모리이다. 제2 ROM(15)이 갖는 기억 영역에는 도 2(B)에 나타낸 바와 같이, 시스템 키 영역(T2),복호 프로그램 기억 영역(T3), 기대치 영역(T4) 및 해시(hash) 함수 영역(T5)이 포함된다.
시스템 키 영역(T2)은 모든 기억 장치(10)에 공통으로 설정된 암호 키 인 시스템 키(k2)를 기억한다. 복호 프로그램 기억 영역(T3)은 데이터 키(k1)를 복호화하기 위한 복호 프로그램을 기억한다. 기대치 영역(T4)은 후술하는 기대치(D)를 기억한다. 해시 함수 영역(T5)은 해시 함수를 기억한다.
플래쉬 메모리(11), SRAM(13), 및 제1 및 제2 ROM(14, 15)에는 서로 다른 물리 어드레스가 할당되어 있다.
또한, 제2 ROM(15)의 시스템 키 영역(T2)의 선두 어드레스는 A1이다. 복호 프로그램 영역(T3)의 선두 어드레스는 A2이다. 기대치 영역(T4)의 선두 어드레스는 A3이다. 해시 함수 영역(T5)의 선두 어드레스는 A4이다.
제어기(16)는 CPU(중앙 처리 장치), DSP(디지탈 시그널 프로세서) 등과 그 주변 회로로 구성되어 있다. 제어기(16)는 제1 ROM(14)의 프로그램 영역에 저장된 프로그램에 따라서 동작한다. 구체적으로는, 제어기(16)는 ① 플래쉬 메모리(11)로의 데이터의 기록 동작, ② 플래쉬 메모리(11)로부터의 데이터의 판독 동작, ③ 기억 장치(10)내의 메모리를 테스트하는 테스트 동작을 행한다.
제어기(16)는 기능적으로는, I/O 버퍼(인터페이스 회로)(161)와, 인터페이스 회로(161)에 접속된 제어부(162)와, 어드레스 카운터(163)로 구성된다.
인터페이스 회로(161)는 외부의 컴퓨터(20) 및 테스트 장치(30) 등에 버스 (데이터 버스 및 컨트롤 버스)(21)를 통해 접속되어 있다.
어드레스 카운터(163)는 어드레스 버스를 통해 플래쉬 메모리(11), SRAM (13), 제1 및 제2 ROM(14, 15)의 어드레스 단자 (Add)에 접속되어 있다.
또한, 제어부(162)의 제어 단자는 제어 버스를 통해 플래쉬 메모리(11), SRAM(13), 제1 및 제2 ROM(14, 15)의 제어 단자 (Cont)에 접속되어 있다.
제어부(162)의 제1 데이터 입출력 단자는 데이터 버스(DB)를 통해 플래쉬 메모리(11)와 제1 ROM(14)의 데이터 단자(Data)에 접속되어 있다. 제어부(162)의 제2 데이터 입출력 단자는 내부 데이터 버스(IDB)를 통해 SRAM(l3)과 제2 ROM(15)의 데이터 단자(Data)에 접속되어 있다.
SRAM(13), 제1 및 제2 ROM(14,15), 제어기(16), 및 내부 데이터 버스(IDB)는 수지 등에 의해 일체로 몰드되어 있다. 이 때문에, SRAM(13) 및 제2 ROM(15)의 기억 데이터가 LSI(12)의 외부에 출력되는 일은 없다. 즉, SRAM(13) 및 제2 ROM (15)의 기억 데이터는 외부로부터의 액세스에 대하여 보호되어 있다.
이 기억 장치(10)는 컴퓨터(20)에 케이블에 의해 접속되고 또는 플러그인 접속된다.
접속 후의 기억 장치(10)와 컴퓨터(20)(또는 테스트 장치(30))의 동작을 설명한다.
(0) 상호 인증시
이 기억 장치(10)를 사용하는 경우, 우선, 컴퓨터(20)와 기억 장치(10)의 사이에서 상호 인증을 행한다.
이 상호 인증시, 컴퓨터(20)는 예컨대, 도시하지 않는 표시 화면에「패스워드를 입력하여 주십시오」등의 메시지를 표시한다. 이 메시지에 응답하여, 사용자가 패스워드를 입력한다.
컴퓨터(20)의 드라이버와 제어기(16)의 제어부(162)는 이 패스워드에 기초하여 상호 인증한다. 그리고, 상호 인증에 성공하면, 기억 장치(10)의 사용을 허가한다. 한편, 상호 인증에 실패하면, 제어부(162)는 이후의 액세스를 금지한다.
(1) 기록 동작
기억 장치(10)에 데이터를 기록하는 경우, 컴퓨터(20)는 버스(21)를 통해 기억 장치(10)에 기록 명령을 출력한다. 이 기록 명령은 I/O 버퍼(161)에 셋트된다. 제어부(162)는 이 명령을 해독하여, 데이터의 기록 명령인 것을 판별하면, 도 3에 나타내는 처리를 개시한다.
우선, 제어부(162)는 I/O 버퍼(161)을 통해, 버스(21)상에 기록 데이터의 송신을 요구하는 명령을 출력한다(단계 S1) .
이 요구에 응답하여, 컴퓨터(20)는 기록 데이터의 총량과 선두의 논리 어드레스를 송신한다. 계속해서, 컴퓨터(20)는 기록 데이터를 순차 송신한다.
제어부(162)는 컴퓨터(20)로부터 송신되어 오는 데이터 총량과 선두 논리 어드레스를 I/O 버퍼(161)를 통해 받아들인다(단계 S2).
제어부(162)는 플래쉬 메모리(11)의 영역(T1)으로부터 암호화된 데이터 키 (k1)를 SRAM(13)상에 판독한다. 또한, 복호 프로그램(T3)에 저장되어 있는 복호 프로그램을 실행하여, 시스템 키(k2)를 이용하여, 데이터 키(k1)를 SRAM(13)상에서 복호화하여, 평문의 데이터 키(k1)를 생성한다. 그리고, 생성한 데이터 키(k1)를 SRAM(13)에 기억시킨다(단계 S3).
다음에, 제어부(162)는 플래쉬 메모리(11)에 저장되어 있는 빈 블록 테이블을 참조하여, 기록 대상의 빈 블록을 특정한다. 그리고, 기록 대상으로써 특정된 빈 블록의 물리 어드레스를 어드레스 카운터에 설정한다(단계 S4).
한편, 컴퓨터(20)는 기록 대상의 데이터를 데이터 버스(21)상에 순차 출력한다.
제어부(162)는 컴퓨터(20)로부터 공급되는 데이터를 받아들인다(단계 S5). 그리고, 제어부(162)는 받아들인 데이터를 SRAM(13)에 유지되어 있는 평문의 데이터 키(k1)를 이용하여 암호화한다(단계 S6).
제어부(162)는 기록 제어 신호를 제어 버스에 출력하고, 또한, 암호화한 데이터를 데이터 버스(DB)에 출력한다. 데이터 버스(DB)에 출력된 암호화가 끝난 데이터는 플래쉬 메모리(11)의 어드레스 카운터(163)가 지시하는 위치에 기록된다.(단계 S7).
제어부(162)는 모든 데이터에 관해서 처리를 종료했는지 아닌지를 판별한다(단계 S8). 처리가 종료하고 있지 않으면, 어드레스 카운터(163)를 갱신하고(단계 S9), 단계 S5로 되돌아가 다음 데이터를 취득하며, 암호화하여 플래쉬 메모리(11)의 다음 기억 영역에 기록한다.
또, 현재의 기록 대상 블록이 가득 찬 경우에는 단계 S9에서 다음 빈 블록을 선택하여, 선택한 빈 블록의 물리 어드레스를 어드레스 카운터(163)에 셋트하고, 다음의 빈 블록에 데이터를 기록한다.
제어부(162)는, 데이터 저장하기가 끝나면, 플래쉬 메모리(11)에 저장되어 있는 FAT, 디렉토리 정보, 빈 블록 테이블 등을 갱신한다. 또한, SRAM(13)에 기억된 데이터 키(k1)를 소거하여(스텝 S10) 처리를 종료한다.
(2) 판독 동작
기억 장치(10)로부터 데이터를 판독하는 경우, 컴퓨터(20)는 버스(21)를 통해 기억 장치(10)에 판독 명령을 출력한다.
판독 명령이 I/O 버퍼(161)에 셋트되면, 제어부(162)는 이 명령을 해독한다. 그리고, 이 명령이 데이터 판독의 지시인 것을 판별하면, 도 4에 나타내는 처리를 개시한다.
우선, 제어부(162)는 I/O 버퍼(161)를 통해, 버스(21)상에 선두의 논리 어드레스와 판독 대상 데이터의 총량의 송신을 요구하는 명령을 출력한다(단계 S11).
이 요구에 응답하여 컴퓨터(20)는 판독 대상 데이터의 선두 어드레스(논리 어드레스)와 데이터 총량을 버스(21)를 통해 제어기(16)에 통지한다.
제어부(162)는 I/O 버퍼(161)를 통해 선두 어드레스와 데이터 총량을 수신한다(단계 S12).
다음에, 제어부(162)는 복호 프로그램 영역(T3)에 저장된 복호 프로그램을 실행한다. 그리고, 복호 프로그램에 따라서, 암호화된 데이터 키(k1)를 플래쉬 메모리(11)의 데이터 키 영역(T1)으로부터 판독하고, 시스템 키(k2)를 이용하여 이것을 복호화하며, 평문의 데이터 키(k1)를 생성하여, SRAM(13)에 저장한다(단계 S13 ).
다음에, 제어부(162)는 플래쉬 메모리(11)에 기억되어 있는 FAT 및 디렉토리정보 등에 기초하여, 판독 대상 파일(데이터)이 저장되어 있는 물리 어드레스를 판별한다. 그리고, 판별된 물리 어드레스를 어드레스 카운터(163)에 셋트하여, 내부 데이터 버스(IDB) 상에 출력시킨다(단계 S14).
또한, 제어부(162)는 판독 제어 신호를 출력하여, 어드레스 카운터(163)가 지시하는 물리 어드레스에 기억된 데이터를 데이터 버스(DB)를 통해 판독한다.(단계 S15).
제어부(162)는 판독한 데이터를 SRAM(13)에 저장한 데이터 키(k1)를 이용하여 복호화 한다. 계속해서 제어부(162)는 복호화한 데이터를 I/O 버퍼(161) 및 버스(21)를 통해 컴퓨터(20)에 송신한다(단계 S16).
다음에, 제어부(162)는 판독이 종료되었는지 아닌지를 판별한다(단계 Sl7). 단계 S17에 있어서, 제어부(162)는 구체적으로는, 예컨대, 판독 데이터의 총량이 컴퓨터(20)로부터 지시된 총량에 일치했는지 아닌지를 판별한다. 그리고, 판독이 종료하지 않는 경우, 어드레스 카운터(163)는 물리 어드레스를 갱신한다(단계 S18).
제어부(162)는 이후, 마찬가지로 하여, 물리 어드레스를 순차 갱신하면서 데이터를 판독하고 복호화하여 출력한다.
지정된 양의 데이터 읽기가 끝났다고 판단되면, 제어부(162)는 SRAM(13)상의 데이터 키를 소거하고(단계 S19) 판독 동작을 종료한다.
이와 같이, 이 실시의 형태에 따르면, 복수의 기억 장치(10)의 제2 ROM(15)에 공통의 암호 키(시스템 키 k2)가 저장되고, 각 기억 장치(10)에 고유의 암호 키(데이터 키 kl)가 플래쉬 메모리(11)에 저장된다. 데이터 키(k1)는 시스템 키(k2)에 의해 미리 암호화되어 있다. 따라서, 데이터 키(k1)와 시스템 키(k2)의 양방을 모르면, 플래쉬 메모리(11)에 기록되어 있는 데이터를 복호화할 수 없다. 따라서, 플래쉬 메모리(11)에 기밀성이 높은 데이터를 저장하고 있는 경우라도, 그 기밀의 누설을 유효하게 방지할 수 있다.
더구나, 복수의 기억 장치(10)에 공통인 시스템 키(k2)를 마스크 롬 등의 대량 생산에 알맞은 판독 전용 메모리로 이루어지는 제2 ROM(15)에 기록하고, 개별의 데이터 키(k1)를 데이터 기록용의 플래쉬 메모리(11)에 기록하면 비용의 상승을 억제할 수 있다.
또한, 데이터 키(k1)가 기록 장치(10)마다 설정되어 있으면, 어떠한 이유에 의해 어떤 기억 장치(10)의 데이터 키(k1)와 시스템 키(k2)의 양방이 알려져도, 다른 기억 장치(10)가 기억하는 데이터를 복호화 할 수 없다. 따라서, 피해를 최소(1 대의 기억 장치)로 억제할 수 있다.
또한, 이러한 구성에 따르면, SRAM(13)과 제2 ROM(15)과 제어기(16) 사이의 데이터의 송수신은 내부 데이터 버스(IDB)를 통해 행해진다. 이 때문에, LSI(12)의 외부에서는 송수신되는 데이터를 관찰할 수 없다. 따라서, 복호화된 데이터 키(kl) 및 시스템 키(k2)를 포함하는 기밀 정보의 누설을 막을 수 있다.
(3) 테스트 동작
기억 장치(10)는 제조시나 출하시에 테스트되어, 플래쉬 메모리(11), SRAM (13), 제1 ROM(14) 및 제2 ROM(15)의 전부가 데이터를 정확하게 기억할 수 있는 것 또는 정확하게 데이터를 기억하고 있는 것이 확인된다.
한편, 제2 ROM(15)은 마스크 ROM 등으로 구성되어 있기 때문에, 테스트시에 시스템 키(k2)나 복호 프로그램이 이미 기록되어 있다. 시스템 키(k2)나 복호 프로그램은 테스트되는 동안에도 외부로 새는 것은 바람직하지 않다.
그래서, 이 실시의 형태에서는 제2 ROM(15)의 테스트로서 특유한 테스트 모드를 사용한다.
기억 장치(10)를 테스트하는 경우, 기억 장치(10)는 외부의 테스트 장치(30)등에 접속되며, 테스트 장치(30)는 제어기(16)에 테스트 명령을 송신한다.
제어부(162)는 이 테스트 명령에 응답하여 도 5에 나타내는 처리를 개시한다.
우선, 제어부(162)는 플래쉬 메모리(11)의 테스트를 행한다(단계 S21).
플래쉬 메모리(11)의 테스트는 구체적으로는 이하에 진술하는 순서로 행해진다. 즉, 우선 제어부(162)는 플래쉬 메모리(11)를 일단 초기화하여, 전체에 데이터「0」이 저장되어 있는 것을 점검한다. 다음에, 제어부(162)는 플래쉬 메모리(11)에「1」을 기록하고, 이것을 판독하여 기록 데이터와 판독 데이터가 일치하는 것을 확인한다. 플래쉬 메모리(11)는 일정한 확률로 에러 비트를 포함하고 있고, 에러 비트가 검출된 경우에는 그 위치 등도 판별한다.
플래쉬 메모리(11)의 테스트가 완료되면, 제어부(162)는 SRAM(13)을 테스트한다(단계 S22).
구체적으로는, 우선, 제어부(162)는 어드레스를 순차 갱신하면서, SRAM(13)의 모든 비트에 소정의 값을 기록한다. 계속해서, SRAM(13)으로부터 데이터를 판독하고 기록한 데이터와 판독 데이터가 일치하는지 여부를 테스트 장치(30)에 의해 판별한다.
SRAM(13)의 테스트가 완료되면, 제어부(162)는 제1 ROM(14)을 테스트한다(단계 S23). 제1 ROM(14)의 테스트는 제1의 ROM(14)의 기억 데이터를 판독하고, 판독 데이터가 기대치와 일치하는 것을 테스트 장치(30)에서 확인함으로써 행한다.
제1 ROM(14)의 테스트가 완료되면, 제어부(162)는 제2 ROM(15)을 테스트한다. 제2 ROM(15)의 테스트는 기본적으로는 제1 ROM(14)의 테스트와 동일하다. 즉, 기억 데이터를 판독하고, 옳은 데이터가 기억되어 있는지 여부를 판별함으로써 행해진다.
단지, 시스템 키(k2) 및 복호 프로그램을 그대로 판독하면, 시스템 키(k2) 및 복호 프로그램이 제3자에게 알려져, 데이터 키(k1) 및 시스템 키(k2)가 도용 또는 악용될 우려가 있다. 그래서, 시스템 키 영역(T2)과 복호 프로그램 영역(T3)에 대해서는 다른 테스트 방법을 채용한다.
우선, 제어부(162)는 제2 ROM(15)의 선두 어드레스(A1)를 어드레스 카운터(163)에 셋트한다(단계 S24). 다음에, 제어부(162)는 어드레스 카운터(163)가 지시하는 어드레스가 시스템 키 영역(T2) 또는 복호 프로그램 영역(T3)의 어드레스[A1≤어드레스 카운터(163)가 지시하는 어드레스<A3]인지 여부를 판별한다(단계 S25). 이들의 영역의 어드레스라고 판단된 경우, 아무것도 하지 않고서 어드레스를 갱신하여(단계 S26), 단계 S25로 복귀한다.
한편, 이들의 영역의 어드레스가 아니라고 판단된 경우, 그 데이터를 판독하여, 테스트 장치(30)에 공급한다(단계 S27). 또한, 다음 어드레스가 존재하는지 아닌지를 판별하고(단계 S28), 존재하면, 어드레스를 갱신하여(단계 S26), 단계 S25로 복귀한다.
이와 같이 하여, 제어부(162)는 제2 ROM(15)의 어드레스(A3) 이후의 기억 데이터를 순차 판독하고, I/O 버퍼(161)를 통해 버스(21)상에 출력한다. 테스트 장치(30)는 판독된 데이터가 미리 정해져 있는 기록 패턴과 일치하는지 여부 등을 판단하여, 일치하지 않는 경우에는 그 어드레스를 판별한다.
어드레스(A3) 이후의 영역의 테스트가 종료하면, 시스템 키 영역(T2)과 복호 프로그램 영역(T3)의 테스트에 이동한다.
우선, 제어부(162)는 해시 함수 영역(T5)에 기억된 해시 함수(H)를 판독한다(단계 S29). 다음에, 제어부(162)는 기대치 영역(T4)에 저장되어 있는 기대치의 셋트(Di)를 판독한다(단계 S30) .
제어부(162)는 시스템 키 영역(T2)과 복호 프로그램 영역(T3)으로부터 순차 판독된 소정 바이트의 데이터 세트에 관해서, 이 2개의 데이터를 해시 함수 (H)에 대입한 값을 구한다(단계 S31). 구체적으로는 제어부(162)는 시스템 키 영역(T2)과 복호 프로그램 영역(T3)으로부터 순차 판독된 소정 바이트의 데이터 세트 중 i 번째로 판독된 세트를 ai 및 bi로 한 경우, ai 및 bi를 해시 함수(H)에 대입한 값(H)(ai, bi)을 구한다.
그리고, 제어부(162)는 단계(S31)에서 요구한 값(yi)[즉, yi = H(ai, bi)]이 기대치(Di)에 일치하는지 여부를 판별한다(단계 S32).
제어부(162)는 시스템 키 영역(T2)과 복호 프로그램 영역(T3)의 모든 기억 데이터를 판독될 때까지 비교 동작을 반복한다. 예컨대, 시스템 키 영역(T2)의 사이즈와 복호 프로그램 영역(T3)의 사이즈의 합계가 4k바이트이며, a, b의 사이즈가 어느 쪽도 512바이트라고 하면 4회 작업을 반복한다.
제어부(162)는 모든 연산 결과 yi와 모든 기대치(Di)가 일치하는 경우, 일치 검출 신호를 테스트 장치(30)에 송신한다(단계 S33). 한 번이라도 불일치가 있었던 경우, 제어부(162)는 테스트 장치(30)에 불일치 검출 신호를 송신한다(단계 S34). 이상으로 테스트 동작을 종료한다.
이러한 테스트 모드를 채용함으로써, 시스템 키(k2)나 복호 프로그램 등의 기밀 정보를 테스트 실시자에게 공개하는 일 없이 기억 장치(10)내의 메모리의 불량 여부를 검사할 수 있다.
또, 이 테스트 방법은 일례에 불과하다. 따라서, 시스템 키(k2)나 복호화된 데이터 키(k1)가 LSI(12)의 외부에 출력되지 않으면, 어떠한 테스트 수법을 채용하여도 좋다. 예컨대, 제2 ROM(15)에 저장되어 있는 모든 데이터에 관해서, 상술의 해시 함수(H)를 이용한 테스트를 하여도 좋다. 또한, 기대치(Di)를 테스트 장치(30)로부터 기억 장치(10)에 제공하도록 하여도 좋다.
또한, 함수(H)는 해시 함수에 한정되지 않는다. 그러나, 함수(H)는 하나의 연산 결과에 대하여 복수의 변수가 대응하는 한 방향 함수가 바람직하다. 이러한 구성으로 하면, 가령, 기대치(Di)가 제 3자에게 알려지더라도, 시스템 키(k2)와 복호 프로그램 자체를 특정하는 것은 할 수 없게 된다.
또, 이상의 설명에서는 제어부(162)가 테스트 모드시 데이터를 순차적으로 기록 및 판독하였다. 그러나, 이 기억 장치(10)는 테스트 모드가 설정되면, 테스트 모드가 해제될 때까지 외부의 버스(21)와 내부 버스를 직접 연결하고, 테스트 장치(30)가 각 메모리를 직접 액세스 할 수 있도록 구성되어도 좋다.
이 경우, 시스템 키 영역(T2) 및 복호 프로그램 영역(T3)이 어드레싱되었을 때는 제2 ROM(15)을 디스에이블(disable) 상태로 설정하고, 외부로부터의 직접 액세스를 접수하지 않도록(금지하도록), 어드레스 신호를 마스크하는 것이 바람직하다. 구체적으로는, 예컨대 도 6에 나타낸 바와 같이, 상위의 어드레스 신호를 디코딩하면 좋다.
상기 실시의 형태에서는 플래쉬 메모리(11)에 데이터를 기록하거나, 플래쉬 메모리(11)로부터 데이터를 판독하거나 하는 동안은 SRAM(13)에 평문의 데이터 키(k1)가 기억된다. 한편, 이 상태에서 동작 클록을 정지하여, 테스트 모드로 들어가 SRAM(13)의 기억 데이터를 판독하면, 데이터 키(k1)가 제 3자에게 알려져 버릴 우려가 있다.
이 때문에, 도 7에 나타낸 바와 같이, 테스트 모드가 지시되면, 제어부(162)가 SRAM(13)에 리셋트 신호를 송신하고 이것을 리셋트하여도 좋다. 이 경우는, 예컨대, 리셋트 후, 외부로부터의 제어에 따른 테스트를 실행할 수 있도록 리셋트 신호를 오프시키는 구성도 좋다.
(제2 실시의 형태)
제1 실시의 형태에서는 시스템 키(k2)가 누설된 경우, 이 시스템 키(k2)를 이용하여 데이터 키(k1)를 복호할 수 있다. 그러나, 시스템 키(k2)를 알고 있는 것만으로는 데이터 키가 복호할 수 없도록 구성하는 것도 가능하다. 이러한 구성의 제2 실시의 형태를 이하에 설명한다.
이 실시 형태의 기억 장치의 기본 구성은 도 1에 나타내는 구성과 동일하며, 데이터 키(k1)는 플래쉬 메모리(11)의 데이터 키 영역(T1)에 저장되어 있다.
단지, 데이터 키 영역(T1)에 저장되어 있는 데이터 키(k1)는 시스템 키(k2)와 소정치 RN을 조합하여 얻어진 값을 암호 키로서 이용하여 암호화되어 있다. 이 소정치 RN은 출력값이 초기값에 의존하는 타입의 난수 발생 프로그램에 의해 생성된 값이다. 이 초기값으로 암호 해독을 위한 패스워드 PW가 이용된다.
또한 도 8에 나타낸 바와 같이, 플래쉬 메모리(11)에는 복호 프로그램 및 난수 프로그램이 기억되어 있다. 복호 프로그램은 패스워드(PW)에 기초하여 데이터 키(k1)를 복호화하기 위한 프로그램이다. 난수 프로그램은 상술한 소정치(RN)을 생성할 때에 사용하는 것과 실질적으로 동일한 것이다.
이 기억 장치(10)를 사용할 때(데이터의 판독/기록시 등), 컴퓨터(20)상의 드라이버는 사용자에게 패스워드의 입력을 요구한다.
드라이버는 패스워드가 입력되면, 데이터 키(k1)의 복호화를 지시하는 지시 신호와, 이 지시 신호와 같이 입력된 패스워드를 버스(21)를 통해 제어기(16)에 공급한다.
제어부(162)는 이 지시 신호에 응답하고, 패스워드를 수신하여(도 9, 단계 S41), 난수 프로그램을 기동한다. 그리고, 수신한 패스워드를 초기값으로서 부여한다(단계 S42). 이 난수 발생 프로그램은 출력 값이 초기값에 의존하는 타입의 것으로 출력되는 값이 초기 값에 의해 정해진다.
제어부(162)는 난수 프로그램이 생성한 난수치 RN과 시스템 키(k2)를 조합하여 암호 키를 작성한다(단계 S43). 암호 키는 예컨대, 시스템 키(k2)와 난수치(RN)를, 서로 가산(「k2 + RN」)하거나, 서로 연결(「k2; RN」) 하거나, 서로 곱셈(「k2 * RN」)하거나 하여 작성한다.
암호 키가 작성되면, 제어부(162)는 작성된 암호 키를 이용하여 데이터 키(k1)를 복호화한다(단계 S44).
이후, 제어부(162)는 복호화된 데이터 키(k1)를 이용하여, 컴퓨터(20)로부터 공급된 데이터를 암호화하여 플래쉬 메모리(11)에 저장한다. 그리고, 제어부(162)는 플래쉬 메모리(11)로부터 판독 데이터를 복호화하여 컴퓨터(20)에 공급한다.
이러한 구성으로 하면, 시스템 키(k2)가 어떠한 원인으로 제3자에게 알려져도, 그 제3자가 패스워드를 모르는 한, 데이터 키(k1)를 복호화할 수 없고, 플래쉬 메모리(11)에 기억되어 있는 데이터를 복호화 할 수 없다. 따라서, 플래쉬 메모리(11)에 저장된 데이터의 누설을 방지할 수 있다.
또한, 데이터 키(k1)를 암호화하기 위한 암호 키 및 복호 프로그램을 기억 장치(10)마다 개별로 작성하여 플래쉬 메모리(11)에 저장할 수도 있다. 이에 따라, 기억 장치(10)마다 암호 키를 다르게 할 수 있다.
또, 제2 실시의 형태로, 예컨대, 복호 프로그램과 난수 프로그램을 시스템 키(k2)로 암호화하여 플래쉬 메모리(11)에 저장해 두어도 좋다. 이 경우, 시스템 키(k2)로 이들의 프로그램을 복호화한 후, 이들의 프로그램을 실행하여, 데이터 키를 복호화하는 처리를 실행한다.
또한, 제2 실시 형태의 복호 프로그램은 패스워드 등의 사용자를 특정하는 정보에 기초하여 데이터 키(k1)를 복호화할 수 있으면, 임의의 구성이 채용 가능하다.
예컨대, 패스워드(PW)에 기초하여 일시적인 암호 키(kt)를 생성하고, 수식(1)에 나타낸 바와 같이, 데이터 키(k1)를 일시적인 암호 키(kt)로 암호화하여, 암호 결과를 시스템 키(k2)로 암호화한 결과(k1d)를 플래쉬 메모리(11)의 영역(T1)에 저장하여도 좋다. 예컨데, 일시적인 암호 키 (kt)는 패스워드(PW)를 근본으로서 난수를 발생함으로써 생성하면 좋다.
이 경우, 영역(T1)에 저장되어 있는 데이터 키(k1)를 복호화하기 위해서는 우선 영역(T1)에 저장되어 있는 데이터(k1d)를 시스템 키(k2)로 복호화하여 (kt (k1))를 생성한다. 다음에, 입력된 패스워드(PW)에 기초하여 일시적인 암호 키(kt)를 생성한다. 그리고, 이 일시적인 암호 키(kt)를 이용하여 데이터 키(k1)를 복호화하도록 하면 좋다.
제1 및 제2 실시 형태에서는 시스템 키(k2)를 평문의 형태대로 제2 ROM(15)에 저장하였다. 그러나, 시스템 키(k2)는 일시적인 암호 키(kt)로 암호화된 상태로 제2 ROM(15)에 저장되어도 좋다. 이 경우에는 일시적인 암호 키(kt)를 이용하여 시스템 키(k2)를 복호화한 후, 데이터 키(k1)를 복호화하는 처리를 행한다.
또한, 도 1에서는 제 1 ROM(14)과 제2 ROM(15)를 별개로 했다. 그러나, 제1 ROM(14)과 제2 ROM(15)을 하나의 ROM의 다른 영역으로 하여도 좋다. 이 경우도, 이 ROM과 제어기(16) 사이의 통신 내용이 LIS(12)의 외부에 새지 않도록 데이터 버스를 구성한다.
시스템 키(k2)는 모든 기억 장치(10)에 공통일 필요는 없고, 일정 대수마다 시스템 키(k2)를 변경하여도 좋다. 또한, 데이터 키(k1)는 기억 장치(10)마다 다를 필요는 없고, 복수의 기억 장치(10)에 공통이여도 좋다. 단지, 시스템 키(k2)를 동일하게 하는 기억 장치(10)의 사이에서는 데이터 키(k1)가 다르게 설정하는 것이 바람직하다.
(제3 실시의 형태)
제1 실시 형태에서 데이터 키(k1)는 시스템 키(k2)를 이용하여 암호화된 뒤에 플래쉬 메모리(11)에 저장되어 있었다. 제2 실시 형태에서, 데이터 키(k1)는 일시적인 암호 키(kt)를 이용하여 암호화된 뒤에 플래쉬 메모리(11)에 저장되어 있었다.
그러나, 데이터 키(k1)는 평문의 형태대로 플래쉬 메모리(11)에 저장되어 있어도 좋다. 이 경우는 예컨대, 데이터 키(k1) 및 시스템 키(k2)의 양방을 이용하여 데이터의 암호화 및 복호화를 행하면 좋다. 이하에서는 데이터 키(k1) 및 시스템 키(k2)의 양방을 이용하여 데이터의 암호화 및 복호화를 하는 본 발명의 제3 실시의 형태를 설명한다.
본 발명의 제3 실시의 형태에 관한 기억 장치(10)의 구성은 도 1에 나타내는 제1 실시의 형태에 있어서의 구성과 실질적으로 동일하다. 암호화된 일반의 데이터는 플래쉬 메모리(11)에 저장된다.
다만, 플래쉬 메모리(11)의 영역(T1)에는 데이터 키(k1)는 평문의 형태대로 기억되어 있다. 데이터 키(k1)는 평문의 형태대로 영역(T1)에 저장되어 있기 때문에, 제2 ROM(15)은 데이터 키(k1)를 복호화하기 위한 복호 프로그램을 저장할 필요가 없고, 따라서 복호 프로그램 영역(T3)은 불필요하다.
다음에, 상기 구성의 기억 장치(10) 및 컴퓨터(20)(또는 테스트 장치(30))의 동작을 설명한다. 다만, 컴퓨터(20)와 기억 장치(10)와의 사이에서의 상호 인증의 동작은 제1 실시의 형태에 있어서의 상술한 (0)의 상호 인증시의 동작과 실질적으로 동일하다.
기억 장치(10)에 데이터를 기록하는 경우의 동작도, 제1 실시의 형태에 있어서의 상술한 (1)의 기록 동작과 실질적으로 동일하다.
다만, 단계(S3)에서 제어부(162)는 플래쉬 메모리(11)의 영역(T1)으로부터 데이터 키(k1)를 단순히 판독하여 SRAM(13)에 저장한다.
즉, 데이터 키(k1)의 복호화는 행하지 않는다.
또한, 단계(S6)에서, 제어부(162)는 단계(S5)에서 컴퓨터(20)로부터 받아들인 데이터를 SRAM(13)에 유지되어 있는 데이터 키(k1)와 시스템 키(k2)를 이용하여 암호화한다.
예컨대, 제어부(162)는 데이터 키(k1)와 시스템 키(k2)를 가산(kl+k2), 연결(k1; k2), 곱셈(k1·k2) 등 함으로써 새로운 암호 키를 생성하여, 이 키를 이용하여 데이터를 암호화한다. 또는, 데이터 키(k1)에서 데이터를 암호화하고, 또한, 암호화된 데이터를 시스템 키(k2)로 암호화한다.
그리고, 단계(S10)에서, 제어부(162)는 빈 블록 테이블과 FAT 및 디렉토리 정보 등을 갱신하여, SRAM(13)에 기억된 데이터 키(k1) 및 시스템 키(k2)를 양방 소거하여 처리를 종료한다.
기억 장치(10)로부터 데이터를 판독하는 경우의 동작도, 제1 실시의 형태에 있어서의 상술의 (2)의 판독 동작과 실질적으로 동일하다.
다만, 단계(S13)에서, 제어부(162)는 플래쉬 메모리(11)의 영역(T1)으로부터 평문의 데이터 키(k1)를 판독하면, SRAM(13)에 저장한다. 또한, 제2 ROM(15)의 시스템 키 영역(T2)으로부터 시스템 키(k2)를 판독하여 SRAM(13)에 저장한다.
또한, 단계(S16)에서, 제어부(162)는 단계(Sl5)에서 판독한 데이터를 SRAM(13)상의 데이터 키(k1)에 더하여 시스템 키(k2)도 이용하여 복호화함으로써 평문의 데이터를 생성한다.
그리고, 단계(S19)에서 제어기(16)는 SRAM(13)상의 데이터 키(k1) 및 시스템 키(k2) 양방을 소거하고 나서 판독 동작을 종료한다.
이 실시의 형태에 따르면, 데이터 키(k1)와 시스템 키(k2)를 이용하여 데이터가 암호화 및 복호화된다. 따라서, 데이터 키(k1)와 시스템 키(k2)의 양방을 모르면, 플래쉬 메모리(11)에 기록되어 있는 데이터를 복호할 수 없다. 이 때문에, 단일의 암호 키를 사용하는 경우보다도, 기밀성이 높은 데이터를 안전하게 기억할 수 있다.
또한, 데이터 키(k1) 및 시스템 키(k2)는 기억 장치(10)의 다른 위치에 분산되어 저장되어 있다. 이 때문에, 암호 키의 특정이 곤란해진다. 특히, 시스템 키(k2)는 LSI(12)내에 밀봉되어 있고, 시스템 키(k2)를 외부에서 직접 알 수 없다. 또한, 데이터 키(k1)가 기억 장치(l0)마다 개별로 설정되어 있으면, 어떤 기억 장치(10)에 관해서 데이터 키(k1)가 알려져도, 다른 기억 장치(10)에 대해서는 그 데이터 키(k1)로는 데이터를 복호할 수 없다. 따라서, 피해를 최소(1대의 기억 장치)로 억제할 수 있다.
또한, 테스트 동작 중, 플래쉬 메모리(11), SRAM(13) 및 제1 ROM(14)을 테스트하는 동작은 제1 실시의 형태에 있어서의 상술의 (3)의 테스트 동작과 실질적으로 동일하다.
플래쉬 메모리(11), SRAM(13) 및 제1 ROM(14)의 테스트가 완료되면, 제어부(162)는 제1 실시의 형태에 있어서의 단계(S29∼S34)의 처리와 실질적으로 동일한 처리를 제2 ROM(15)에 관해서 행하는 것에 따라 제2 ROM(15)을 테스트한다.
구체적으로 제어부(162)는 제2 ROM(15) 내의 기대치 영역(T4) 및 해시 함수 영역(T5)으로부터, 기대치의 셋트(Di) 및 해시 함수(H)를 판독한다. 다음에, 판독된 해시 함수(H)에, 제2 ROM(15)으로부터 순차 판독된 소정 바이트의 데이터 세트를 대입한 값을 구한다. 그리고, 요구한 값(yi)이 기대치(Di)에 일치하는지 여부를 판별한다.
제어부(162)는 제2 ROM(15)의 모든 기억 데이터를 판독할 때까지 비교 동작을 반복한다. 그리고, 모든 연산 결과와 모든 기대치가 일치하는 경우, 일치 검출 신호를 테스트 장치(30)에 송신하여 테스트 동작을 종료한다. 한 번이라도 불일치의 경우, 불일치 검출 신호를 테스트 장치(30)에 송신하여 테스트 동작을 종료한다.
이러한 테스트 모드를 채용함으로써, 시스템 키(k2) 등의 기밀 정보를 테스트 실시자에게 공개하지 않고, 기억 장치(10)내의 메모리의 불량 여부를 검사할 수 있다. 이 때문에, 테스트 담당자 등에 의한 시스템 키(k2)의 도용 또는 악용을 피할 수 있다.
또, 이 테스트 수법은 일례이며, 시스템 키(k2)가 LSI(12)의 외부에 출력되지 않으면, 어떠한 테스트 수법을 채용하여도 좋다. 예컨대, 제2 ROM(15) 중, 시스템 키(k2)가 저장되어 있는 영역 등의 기밀성이 높은 정보가 저장되어 있는 영역에 관해서만, 상술의 해시 함수(H)를 이용한 테스트를 행하고, 다른 영역에 대해서는 제1 ROM(14)와 같이, 기억 데이터가 순차적으로 판독되고, 기대치와 각각 비교되도록 하여도 좋다. 또한, 기대치(Di)를 테스트 장치(30)로부터 기억 장치(10)에 제공하도록 하여도 좋다.
(제4 실시의 형태)
제3 실시 형태에서는 데이터 키(k1)와 시스템 키(k2) 2개의 암호 키를 사용하여 데이터를 암호화 및 복호화했다. 그러나, 3개 이상의 암호 키를 사용하여, 데이터를 암호화 및 복호화하여도 좋다. 이하, 3개 이상의 암호 키를 사용하는 제4 실시의 형태를 설명한다.
이 실시의 형태의 기억 장치의 기본 구성은 제1∼제3 실시의 형태에 있어서의 것과 실질적으로 동일하다. 다만, 제어기(16)는 도 10에 나타낸 바와 같이, EEPROM(164)를 내장하고 있다. EEPROM(164)에는 제3 암호 키(k3)가 저장되어 있다.
이 실시의 형태의 기억 장치(10)의 기본 동작은 제3 실시의 형태에 있어서의 기억 장치(10)의 기본 동작과 동일하다. 다만, 컴퓨터(20)로부터 수신한 데이터의 암호화는 데이터 키(k1), 시스템 키(k2) 및 제3 암호 키(k3)를 이용하여 행한다. 플래쉬 메모리(11)로부터 판독 데이터의 복호화도 데이터 키(k1), 시스템 키(k2) 및 제3 암호 키(k3)를 이용하여 행한다.
데이터의 암호화 수법은 임의적이다. 암호 키의 작성 방법도 임의적이다. 예컨대, 컴퓨터(20)로부터 수신한 데이터를 데이터 키(k1)로 암호화하고, 또한, 이것을 시스템 키(k2)로 암호화하며, 또한, 제3 암호 키(k3)로 암호화하여도 좋다. 이 경우, 복호화는 플래쉬 메모리(11)로부터 판독한 데이터를 제3 암호 키(k3)로 복호화하여, 복호화된 데이터를 시스템 키(k2)로 복호화하고, 또한, 이것을 데이터 키(k1)로 복호화함으로써 행한다.
또한, 이들 3가지의 암호 키에 관해서 가산(k1+ k2+ k3), 연결(k1 ; k2 ;k3) 등의 연산을 행하여 새로운 암호 키를 생성하고, 이 암호 키를 사용하여 데이터를 암호화하여도 좋다.
이와 같이, 암호 키를 다수 개소에 분산하여 저장함으로써, 암호의 해독이 보다 곤란해진다. 따라서, 신뢰성이 높은 기억 장치를 제공할 수 있다.
또, 제3 암호 키(k3)의 기억 위치는 EEPROM(164)에 한정되지 않는다. 예컨대, 제2 ROM(15) 내의 임의 영역일 수도 있다.
(제5 실시의 형태)
제3 및 제4 실시의 형태에서는 각 암호 키(데이터 키(k1), 시스템 키(k2), 제3 암호 키(k3))가 평문대로 각 메모리에 저장되어 있다. 그러나, 이들의 수법에서는 각 암호 키의 기억 위치가 누설되면, 각 암호 키가 판독되어, 데이터 키가 복호화되어 해독될 우려가 있다.
그래서, 암호 키 자체를 암호화하여 각 메모리에 저장하여도 좋다. 예컨대, 제3 암호 키(k3)를 시스템 키(k2)로 암호화하여 EEPROM(164)에 기록하여도 좋다. 이 경우, 데이터의 기록시 및 판독시 예컨대, 시스템 키(k2)를 이용하여 제3 암호 키(k3)를 복호화한다. 그리고, 복호화된 제3 암호 키(k3)를 이용하여 데이터의 암호화나 복호화를 행한다.
이 구성에서는 제3 암호 키(k3)는 암호화되어 있지만, 사용시에는 복호화되어 SRAM(13)에 저장된다. 따라서, 이 SRAM(13)을 외부로부터 액세스하여, 데이터를 판독하면 제3 암호 키(k3)가 알려져 버린다. 그러나, 도 10의 물리적 구성에서는 밀봉 및 버스의 분할 등에 의해 SRAM(13)으로 외부로부터의 액세스가 금지되어 있기 때문에, 평문인 제3 암호 키(k3)의 누설이 방지된다.
(제6 실시의 형태)
제3∼제5 실시의 형태에서는 각 암호 키[데이터 키(k1), 시스템키(k2), 제3 암호 키(k3)]가 불휘발성 메모리에 미리 저장되어 있다. 그러나, 이 기억 장치(10)의 사용시에 암호 키를 일시적으로 생성하여도 좋다. 이하, 이러한 구성의 제6 실시의 형태를 설명한다.
이 실시 형태의 기억 장치(10)의 기본 구성은 도 10에 나타내는 구성과 실질적으로 동일하다. 다만, EEPROM(164)에는 도 11에 나타낸 바와 같이, 설정된 초기 값에 대응하여 정해지는 값을 출력하는 난수 프로그램과 암호 키 생성 프로그램이 기억되어 있다.
이 경우의 기억 장치(10)의 동작을 도 12를 참조하여 설명한다.
우선, 이 기억 장치(10)를 사용할 때, 컴퓨터(20)는 기억 장치(l0)의 요구에 따라서[또는 컴퓨터(20)상의 드라이버의 요구에 따라서], 사용자에게 패스워드의 입력을 요구한다(단계 S51).
이 요구에 따라서, 사용자에 의해 패스워드가 입력되면(단계 S52), 제어부(162)는 난수 프로그램을 기동시켜, 공급된 패스워드를 초기 값으로 설정한다(단계 S53). 난수 프로그램이 실행되면, 초기값에 대응하는 값이 생성된다. 제어부(162)는 이 값을 SRAM(13)에 저장하여, 제3 암호 키(k3)로서 사용한다(단계 S54).
이후의 데이터 판독 동작, 기록 동작은 제5 실시의 형태와 마찬가지이다. 제3 암호 키(k3)를 생성하는 타이밍은 임의적이다. 제3 암호 키(k3)는 기억 장치(10)의 사용 개시시나, 플래쉬 메모리(11)를 액세스할 때 등의 타이밍에서 생성되어도 좋다.
데이터를 저장할 때 설정한 패스워드와 데이터를 판독할 때에 설정한 패스워드가 다른 경우, 제3 암호 키(k3)는 다른 값이 된다. 이 때문에, 이 실시의 형태에 따르면, 옳은 패스워드를 입력하지 않으면, 기억 데이터의 암호를 해독할 수 없다. 따라서, 시스템 키가 누설된 경우라도 기억 데이터를 안전하게 유지할 수 있다.
또한, 난수 프로그램을 데이터 키(k1) 및/또는 시스템 키(k2)로 암호화하여, 플래쉬 메모리(11)에 저장하여도 좋다.
또, 난수 프로그램을 포함하는 암호 키 생성 프로그램의 기억 위치는 EEPROM (164)에 한정되지 않고 임의적이다. 예컨대, 제1 실시의 형태에 있어서, 데이터 키(k1) 또는 시스템 키(k2) 대신에 암호 생성 프로그램을 기억시켜, 이 암호 프로그램을 실행하여 얻어진 암호 키를 제1 또는 제2 암호 키로서 사용하여도 좋다.
(제7 실시의 형태)
본 발명의 실시의 형태에서는 사용자가 생성한 암호 키를 플래쉬 메모리(11)에 등록하고, 이후 이 암호 키를 사용하는 것도 가능하다. 이하, 이러한 구성의 제7 실시의 형태를 설명한다.
이 실시 형태의 기억 장치(10)의 기본 구성은 도 10에 나타내는 구성과 실질적으로 동일하다. 다만, 이 실시의 형태에서는 이 기억 장치(10)를 최초에 사용할 때[예컨대, 기억 장치(10)의 포맷시], 사용자는 이 기억 장치(10)를 소정의 드라이버 기능을 갖는 컴퓨터(20)에 접속시키고, 컴퓨터(20)로부터 기억 장치(10)에 데이터 키의 설정을 지시하는 지시 신호를 송신한다.
이 지시 신호에 응답하여, 제어부(162)는 도 13에 나타내는 처리를 개시하여 컴퓨터(20)에 패스워드의 공급을 요구한다(단계 S61). 이 요구에 응답하여 컴퓨터로부터 사용자의 조작 등에 따라서 패스워드가 공급되면, 제어부(162)는 패스워드를 수신하고(단계 S62), 예컨대 포맷 처리를 포함하는 소정의 처리를 행한다(단계 S63).
소정의 처리 종료후, 제어부(162)는 공급된 패스워드(또는, 패스워드가 나타내는 값)를 초기값으로 난수 프로그램을 기동한다(단계 S64).
제어부(162)는 얻어진 난수치를 데이터 키(k1)로 하고 영역(T1)에 저장하여(단계 S65) 처리를 종료한다.
통상 상태에서의 플래쉬 메모리(11)로의 데이터의 기록·플래쉬 메모리(11)로부터의 데이터의 판독 등의 동작은 상술의 제3 실시의 형태와 마찬가지이다. 즉, 이 기억 장치(10)는 데이터 키(k1)와 시스템 키(k2)[제4 실시의 형태에서는 또한, 제3 암호 키(k3)]를 이용하여 데이터를 암호화 및 복호화한다.
이러한 구성으로 하면 사용자 자신이 입력한 패스워드에 기초하여 데이터 키가 생성된다. 또한, 데이터 키(k1)를 플래쉬 메모리(11)로부터 판독하는 것만으로 끝나기 때문에, 암호화 및 복호화의 처리 시간이 짧아도 된다.
또, 난수 프로그램이 발생한 값을 데이터 키(k1)로서 설정할 때에, 예컨대,이 데이터 키(k1)를 시스템 키(k2)로 암호화하여도 좋다. 이 경우, 통상 상태에서의 플래쉬 메모리(11)로의 데이터의 기록·플래쉬 메모리(11)로부터의 데이터의 판독 등의 동작은 상술의 제1 실시의 형태와 마찬가지이다.
(제8 실시의 형태)
본 발명은 탬퍼 프리 기술(temper free technique)과 조합하는 것에 의해 보다 완전한 것이 된다. 즉, 이 기억 장치(10)의 케이스(25)가 개봉된 시점에서 기억 데이터를 파괴하도록 구성하는 것이 바람직하다.
이러한 구성을 갖는 기억 장치(l0)의 일례를 설명한다.
이 실시 형태의 기억 장치(10)는 도 14에 나타낸 바와 같이, 하우징(25)내의 복수 개소에 배치된 마이크로 스위치(22)와 콘덴서(또는 2차 전지)(23)와 OR 게이트(24)를 구비하고 있다.
기억 장치(10)가 컴퓨터(20)에 접속된 상태에 있어서, 버스(21)의 전원 라인으로부터 콘덴서(또는 2차 전지)(23)에 전력이 공급되고 콘덴서(23)가 충전된다.
마이크로 스위치(22)는 통상 상태에서는 오프(OFF) 상태에 있고, 케이싱(25)이 개봉된 때에 온(ON) 된다. 하나라도 마이크로 스위치(22)가 온 되면, 이 온 신호는 OR 게이트(24)를 통해 인터럽트 신호로서 제어부(162)에 공급된다.
이 인터럽트 신호에 응답하여, 상기 제어부(162)는 플래쉬 메모리(11) 및 SRAM (13)을 초기화한다. 이 때, 초기화에 필요한 전력은 콘덴서(또는 2차 전지)(23)로부터 공급된다.
이 구성에 따르면, 상기 케이싱(25)의 일부가 개봉되었을 때에, 제어부(162)가 인터럽트 처리를 행한다. 이 인터럽트 처리가 플래쉬 메모리(11)의 내용 및 SRAM(13)의 내용을 소거하는 처리로 설정되면, 플래쉬 메모리(11)의 내용 및 SRAM(13)의 내용이 소거된다. 따라서, 플래쉬 메모리(11)에 기억되어 있던 기밀 정보가 제3자에게 유출되는 것을 피할 수 있다.
또, 플래쉬 메모리(11)로서는 메모리 전체를 일괄해서 소거할 수 있는 것이 바람직하다.
또한, 블록 단위로 순차 소거하는 경우에 제어부(162)는 플래쉬 메모리(11)의 임의의 블록을 소거할 때, 빈 블록 테이블을 참조하고, 빈 블록이 아닌 블록을 먼저 소거하여 빈 블록을 마지막으로 소거한다. 일반적인 DOS(디스크 오퍼레이팅 시스템)에서는 파일 등을 소거할 때, 선두의 1 문자를 소정 코드에 재기록하는 것에 의해, 실제로는 데이터를 소거하지 않는 경우가 있다. 이 종류의 시스템에서는 데이터를 소거할 때 소거 대상의 데이터가 위치하는 블록 내에 다른 데이터가 있는 경우에, 다른 데이터를 빈 블록으로 이동(복사)시키고 나서, 그 블록을 물리적으로 소거해 두는 것이 바람직하다.
또한, 주지의 템퍼 프리 기술을 사용하여 LSI(12)의 패키지가 개봉되었을 때에, 기억 데이터를 강제적으로 소거하도록 하여도 좋다. 이에 따라, 기억 장치(10)의 신뢰성을 보다 높일 수 있다.
또한, 주지의 템퍼 프리 기술을 사용하여 기억 장치(10)의 케이싱 또는 제어기(16)의 패키지가 열린 때, EEPROM(164)의 기억 내용을 자동적으로 소거할 수 있도록 하여도 좋다. 이에 따르면, 제3 암호 키(k3)가 제3자에게 새나가는 것을 피할 수 있어 신뢰성이 더욱 향상한다.
또한, 본 발명은 수신한 평문의 데이터를 암호화하여 출력하고, 수신한 암호문을 복호화하여 출력하는 장치 등에도 적용 가능하다.
이 경우의 구성 및 동작은 플래쉬 메모리(11)로의 데이터의 기록 처리가 외부로의 출력(송신) 처리, 플래쉬 메모리(11)로부터의 데이터의 판독이 외부로부터의 입력(수신) 처리로 변경되는 점을 제외하면, 상술의 제1∼제8 실시의 형태의 처리와 동일하다.
기타, 본 발명은 상술의 제1∼제8 실시의 형태에 한정되지 않고, 여러가지의 변형 및 응용이 가능하다. 이상 설명한 바와 같이, 본 발명에 따르면 기억 장치에 기억된 기밀 정보를 안전하게 기억할 수 있고, 기억 장치의 기록 내용에 대한 신뢰성을 높일 수 있다.

Claims (31)

  1. 데이터를 기억하기 위한 재기록 가능한 불휘발성 메모리(11)와, 상기 불휘발성 메모리를 액세스하기 위한 제어 수단(l2)으로 구성되며, 상기 불휘발성 메모리에 제1 암호 키가 저장되고, 상기 제어 수단 내에 복수의 기억 장치에 공통인 제2 암호 키가 저장되며, 상기 제1 암호 키는 상기 제2 암호 키에 의해 암호화되는 데이터 기억용 기억 장치에 있어서,
    상기 제어 수단은 상기 제2 암호 키를 이용하여 상기 제1 암호 키를 복호화하는 키 복호 수단(16)과, 상기 키 복호 수단에 의해 복호화된 제1 암호 키를 이용하여 데이터를 암호화하고, 암호화된 데이터를 상기 불휘발성 메모리에 기록하는 기록 수단(16)과, 상기 불휘발성 메모리로부터 데이터를 판독하고 상기 키 복호 수단에 의해 복호화된 상기 제1 암호 키를 이용해서 판독 데이터를 복호화하는 판독 수단(16)을 구비하고,
    상기 제1 암호 키는 동일한 제2 암호 키를 기억하고 있는 상기 기억 장치의 일부에 공통인 암호 키인 것을 특징으로 하는 기억 장치.
  2. 삭제
  3. 제1항에 있어서, 상기 제1 암호 키는 동일한 제2 암호 키를 기억하고 있는 상기 기억 장치 각각에 고유한 암호 키인 것을 특징으로 하는 기억 장치.
  4. 제1항에 있어서, 상기 불휘발성 메모리는 플래쉬 메모리(11)로 구성되며, 상기 제어 수단은 상기 제2 암호 키를 기억한 마스크 ROM(판독 전용 메모리)(15)을 포함하는 것을 특징으로 하는 기억 장치.
  5. 제1항에 있어서, 상기 키 복호 수단은 패스워드를 검색하고, 정확한 패스워드가 입력된 경우에만 상기 암호화된 제1 암호 키를 복호화하는 것을 특징으로 하는 기억 장치.
  6. 제1항에 있어서, 상기 제1 암호 키는 상기 제2 암호 키와 패스워드를 기초로 생성된 제3 암호 키에 의해 암호화되어 상기 불휘발성 메모리에 저장되고,
    상기 키 복호 수단은 패스워드를 입력하는 수단과, 그 입력된 패스워드로부터 제3 암호 키를 생성하는 수단과, 상기 제2 암호 키와 생성된 제3 암호 키를 이용하여 상기 암호화되어 있는 제1 암호 키를 복호화하는 수단(16)을 구비하는 것을 특징으로 하는 기억 장치.
  7. 제1항에 있어서, 상기 키 복호 수단은 복호 프로그램과 그 복호 프로그램을 실행하는 수단(16)으로 구성되고,
    상기 복호 프로그램은 상기 불휘발성 메모리에 저장되어 있는 것을 특징으로 하는 기억 장치.
  8. 제1항에 있어서, 상기 키 복호 수단, 상기 기록 수단 및 상기 판독 수단은 복호화된 제1 암호 키를 기억하고, 외부로부터의 액세스에 대하여 보호된 휘발성 메모리(13)를 포함하는 것을 특징으로 하는 기억 장치.
  9. 제1항에 있어서, 상기 불휘발성 메모리는 플래쉬 메모리(11)인 것을 특징으로 하는 기억 장치.
  10. 제1항에 있어서, 상기 제어 수단은 상기 제1 암호 키를 생성하고, 그 생성한 제1 암호 키를 상기 제2 암호 키를 이용하여 암호화해서 상기 불휘발성 메모리에 기록하는 키 생성 수단(16)을 구비하는 것을 특징으로 하는 기억 장치.
  11. 제10항에 있어서, 상기 키 생성 수단은 입력된 패스워드에 기초하여 상기 제1 암호 키를 생성하는 것을 특징으로 하는 기억 장치.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 제1항에 있어서, 상기 제어 수단은 복호화된 제1 암호 키가 기억된 휘발성 메모리를 포함하고, 상기 휘발성 메모리에 대한 외부로부터의 액세스를 금지하는 금지 수단(16, 22, IDB, 25)을 더 포함하며, 상기 기억 장치는 복호화된 제1 암호 키에 대한 외부로부터의 액세스가 방지되는 것을 특징으로 하는 기억 장치.
  17. 제16항에 있어서, 상기 금지 수단은 상기 기억 장치가 개봉된 것을 검출하는 개봉 검출 수단(16, 22)과, 상기 개봉 검출 수단이 개봉을 검출했을 때, 상기 불휘발성 메모리의 내용을 소거하는 수단(16)을 포함하는 것을 특징으로 하는 기억 장치.
  18. 제16항에 있어서, 상기 금지 수단은 상기 제어 수단을 밀봉하는 밀봉 수단 (25)과, 상기 밀봉 수단으로 밀봉되어 상기 휘발성 메모리와 상기 복호 수단 사이에 데이터를 전송하는 내부 버스(IDB)를 포함하는 것을 특징으로 하는 기억 장치.
  19. 제18항에 있어서, 상기 암호 키 기억 수단과 상기 복호 수단 사이에서 암호화된 암호 키를 전송하고, 또한, 상기 기록 수단 및 상기 판독 수단과 상기 불휘발성 메모리 사이에서 암호화되어 있는 데이터를 전송하는 데이터 버스(DB)와 상기 내부 버스는 별개로 구성되며,
    상기 복호화된 암호 키는 상기 데이터 버스상에는 출력되지 않도록 구성되어 있는 것을 특징으로 하는 기억 장치.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 제1항에 있어서, 버스를 통하여 컴퓨터에 분리 가능하게 접속될 수 있는 인터페이스를 포함하고, 상기 기억 장치는 이 기억 장치가 접속되는 컴퓨터의 외부 기억 장치로서 기능하며, 암호화되어 상기 재기록 가능한 불휘발성 메모리에 기억되는 데이터는 상기 버스와 인터페이스를 통하여 상기 컴퓨터로부터 공급되고, 상기 불휘발성 메모리로부터 판독된 데이터는 복호화되어 상기 인터페이스 및 버스를 통해 상기 컴퓨터에 제공되는 것을 특징으로 하는 기억 장치.
  31. 제16항에 있어서, 버스를 통하여 컴퓨터에 분리 가능하게 접속될 수 있는 인터페이스를 포함하고, 상기 기억 장치는 이 기억 장치가 접속되는 컴퓨터의 외부 기억 장치로서 기능하며, 암호화되어 상기 재기록 가능한 불휘발성 메모리에 기억되는 데이터는 상기 버스와 인터페이스를 통하여 상기 컴퓨터로부터 공급되고, 상기 불휘발성 메모리로부터 판독된 데이터는 복호화되어 상기 인터페이스 및 버스를 통해 상기 컴퓨터에 제공되는 것을 특징으로 하는 기억 장치.
KR10-2000-7007991A 1998-01-21 1999-01-20 기억 장치, 암호화ㆍ복호화 장치 및 불휘발성 메모리의액세스 방법 KR100397316B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP930398 1998-01-21
JP98-009303 1998-01-21

Publications (2)

Publication Number Publication Date
KR20010034283A KR20010034283A (ko) 2001-04-25
KR100397316B1 true KR100397316B1 (ko) 2003-09-06

Family

ID=11716711

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7007991A KR100397316B1 (ko) 1998-01-21 1999-01-20 기억 장치, 암호화ㆍ복호화 장치 및 불휘발성 메모리의액세스 방법

Country Status (4)

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

Families Citing this family (85)

* 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
TW587252B (en) * 2000-01-18 2004-05-11 Hitachi Ltd Semiconductor memory device and data processing device
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
JP2002229861A (ja) * 2001-02-07 2002-08-16 Hitachi Ltd 著作権保護機能つき記録装置
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
EP1449045A2 (en) 2001-11-14 2004-08-25 International Business Machines Corporation Device and method with reduced information leakage
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
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
JPWO2005004382A1 (ja) 2003-07-08 2006-08-17 富士通株式会社 暗号処理装置
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
KR101238848B1 (ko) 2004-12-21 2013-03-04 샌디스크 코포레이션 파티셔닝을 포함한 다기능 컨텐트 제어
CN101908106B (zh) 2004-12-21 2013-06-05 桑迪士克股份有限公司 具有通用内容控制的存储设备
US8601283B2 (en) * 2004-12-21 2013-12-03 Sandisk Technologies Inc. Method for versatile content control with partitioning
US20070168292A1 (en) * 2004-12-21 2007-07-19 Fabrice Jogand-Coulomb Memory system with versatile content control
US8504849B2 (en) * 2004-12-21 2013-08-06 Sandisk Technologies Inc. Method for versatile content control
JP5118494B2 (ja) 2004-12-21 2013-01-16 サンディスク コーポレーション イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
US8108691B2 (en) 2005-02-07 2012-01-31 Sandisk Technologies Inc. Methods used in a secure memory card with life cycle phases
US8423788B2 (en) 2005-02-07 2013-04-16 Sandisk Technologies Inc. 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
JP4702596B2 (ja) * 2005-02-28 2011-06-15 ソニー株式会社 復号回路、復号装置、復号方法及び復号プログラム
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
US7748031B2 (en) 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
KR100641297B1 (ko) * 2005-08-18 2006-11-02 삼성전자주식회사 롬 스크램블 방식의 반도체 장치 및 상기 반도체 장치의동작 방법
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
US7536540B2 (en) 2005-09-14 2009-05-19 Sandisk Corporation Method of hardware driver integrity check of memory card controller firmware
US20070136593A1 (en) * 2005-12-14 2007-06-14 Richard Plavcan Secure information storage apparatus
US8234505B2 (en) * 2006-01-20 2012-07-31 Seagate Technology Llc Encryption key in a storage system
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
US8290159B2 (en) 2007-03-16 2012-10-16 Ricoh Company, Ltd. Data recovery method, image processing apparatus, controller board, and data recovery program
JP5041833B2 (ja) * 2007-03-16 2012-10-03 株式会社リコー データ復旧方法、画像処理装置、コントローラボード及びデータ復旧プログラム
US8190920B2 (en) * 2007-09-17 2012-05-29 Seagate Technology Llc Security features in an electronic device
JP5078580B2 (ja) * 2007-12-04 2012-11-21 株式会社リコー データ管理装置及びデータ管理方法
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
US8145855B2 (en) 2008-09-12 2012-03-27 Sandisk Technologies Inc. Built in on-chip data scrambler for non-volatile memory
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
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 株式会社日立製作所 ストレージシステムおよびストレージシステム用キャッシュ制御装置
US9318221B2 (en) 2014-04-03 2016-04-19 Winbound Electronics Corporation Memory device with secure test mode
EP2945092B1 (en) * 2014-05-15 2018-05-16 Winbond Electronics Corp. Memory device with secure test mode
US10387662B2 (en) 2014-07-16 2019-08-20 Jeffrey B. Canter Flash memory device for storing sensitive information and other data
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
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
KR20220155684A (ko) 2021-05-17 2022-11-24 삼성전자주식회사 Crum 칩 및 스마트 카드

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0752635A1 (en) * 1995-07-07 1997-01-08 Sun Microsystems, Inc. System and method to transparently integrate private key operations from a smart card with host-based encryption services
KR970066880A (ko) * 1996-03-01 1997-10-13 포만 제프리 엘 파일 보호 방법

Family Cites Families (14)

* 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
JPH02130044A (ja) * 1988-11-09 1990-05-18 Aisin Seiki Co Ltd 暗号鍵装置
JPH02235158A (ja) * 1989-03-09 1990-09-18 Mitsubishi Electric Corp Icカードのセキユリテイ機能
US5533123A (en) * 1994-06-28 1996-07-02 National Semiconductor Corporation Programmable distributed personal security
JP2725610B2 (ja) * 1994-09-27 1998-03-11 日本電気株式会社 秘密鍵暗号方法及び装置
JPH08161232A (ja) * 1994-12-05 1996-06-21 Oki Electric Ind Co Ltd 機密データ内蔵機器のセキュリティ装置
US5774544A (en) * 1996-03-28 1998-06-30 Advanced Micro Devices, Inc. Method an apparatus for encrypting and decrypting microprocessor serial numbers
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> 秘密情報蓄積方法およびシステム
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0752635A1 (en) * 1995-07-07 1997-01-08 Sun Microsystems, Inc. System and method to transparently integrate private key operations from a smart card with host-based encryption services
KR970066880A (ko) * 1996-03-01 1997-10-13 포만 제프리 엘 파일 보호 방법

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100397316B1 (ko) 기억 장치, 암호화ㆍ복호화 장치 및 불휘발성 메모리의액세스 방법
JP3638770B2 (ja) テスト機能を備える記憶装置
EP2115655B1 (en) Virtual secure on-chip one time programming
TWI407745B (zh) 安全與重播受保護之記憶儲存
US7389536B2 (en) System and apparatus for limiting access to secure data through a portable computer to a time set with the portable computer connected to a base computer
US7953985B2 (en) Memory card, application program holding method, and holding program
EP1607872B1 (en) Memory device
US20060095699A1 (en) Nonvolatile semiconductor memory and method of managing information in information distribution system
EP1517244B1 (en) Information storage device, memory access control system and method, and computer program
US20160140057A1 (en) Semiconductor device and encryption key writing method
EP0950941A2 (en) Method of and apparatus for protecting data on storage medium and storage medium
KR20010083073A (ko) 반도체 메모리 카드 및 데이터 판독장치
KR20030029970A (ko) 프로세서에서 데이터 보안성을 갖는 메모리 장치
EP1785902A1 (en) Decryption key table access control on ASIC or ASSP
JP2002025278A (ja) 半導体記憶装置
US8015416B2 (en) Memory information protection system and methods
US6101605A (en) Method and apparatus for performing a secure operation
JP2001356963A (ja) 半導体装置およびその制御装置
CN112384922B (zh) 加密密钥分布
CN114662135A (zh) 数据访问方法、计算机设备及可读存储介质
US20090172414A1 (en) Device and method for securing software
US9875048B2 (en) Solid state memory unit and method for protecting a memory including verification of a sequence of requests for access to physical blocks
CN100440180C (zh) 处理器、存储器、计算机系统、系统lsi及其验证方法
CN115688120A (zh) 安全芯片固件导入方法、安全芯片及计算机可读存储介质
CN112468300B (zh) 具有旁通通道的金钥管理装置及处理器芯片

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070823

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee