KR20010006968A - 메모리 카드용 보안 유닛 - Google Patents

메모리 카드용 보안 유닛 Download PDF

Info

Publication number
KR20010006968A
KR20010006968A KR1020000018211A KR20000018211A KR20010006968A KR 20010006968 A KR20010006968 A KR 20010006968A KR 1020000018211 A KR1020000018211 A KR 1020000018211A KR 20000018211 A KR20000018211 A KR 20000018211A KR 20010006968 A KR20010006968 A KR 20010006968A
Authority
KR
South Korea
Prior art keywords
data
command
memory card
encryption
recorder
Prior art date
Application number
KR1020000018211A
Other languages
English (en)
Other versions
KR100710603B1 (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 KR20010006968A publication Critical patent/KR20010006968A/ko
Application granted granted Critical
Publication of KR100710603B1 publication Critical patent/KR100710603B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04KSECRET COMMUNICATION; JAMMING OF COMMUNICATION
    • H04K1/00Secret communication
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1014Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to tokens
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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
    • 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
    • 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/00485Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier
    • G11B20/00492Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier wherein content or user data is encrypted
    • G11B20/00507Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier wherein content or user data is encrypted wherein consecutive physical data units of the record carrier are encrypted with separate encryption keys, e.g. the key changes on a cluster or sector basis
    • 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/10Digital recording or reproducing
    • 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/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • 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/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/16Solid state audio

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 데이터의 불법적인 검색을 방지하는 보안 유닛에 관한 것으로, 이 보안 유닛은 보안 유닛에 의해 수신된 명령에 따라 데이터를 암호화하는 유닛과 데이터 암호화의 중간 결과와 최종 결과 모두를 저장하는 공통 레지스터를 포함한다. 레지스터에 동작가능하도록 결합된 스위칭 소자는 레지스터의 콘텐츠를 선택적으로 출력한다. 스위칭 소자는 암호화의 중간 결과에 대한 외부 접근을 방지하도록 제어된다. 이러한 보안 유닛은 디지털 오디오 레코더/플레이어와 같은 기록/재생 장치에 부착가능한 메모리 유닛의 일부로서 특히 유용하게 사용될 수 있다.

Description

메모리 카드용 보안 유닛{Security unit for use in memory card}
본 발명은 메모리 또는 데이터 처리 유닛에 저장된 데이터를 허가없이 검색하는 것을 방지하기 위하여 메모리 유닛 그리고/또는 데이터 처리 유닛에 사용되는 보안 유닛에 관한 것이다.
전기소거가능 PROM (EEPROM)과 같은 종래의 비휘발성 메모리에서는, 1비트의 정보를 저장하기 위하여 두개의 트랜지스터가 사용된다. 그 결과, 비트당 메모리 영역은 커지며, 이로 인해 메모리를 통합하는 기능이 제한된다. 한편, 이러한 문제점은 "모든 비트 소거(all-bit-erase)" 방법에 따라 단일 트랜지스터를 이용하여 1비트가 저장되는 최근 개발된 플래쉬 메모리에서 해결되었다. 머지 않은 장래에, 플래쉬 메모리가 다수의 어플리케이션에서 자기 디스크, 광 디스크와 같은 종래의 기록 매체를 대체할 것으로 예상된다.
카드 판독/기록부에 부착하거나 그로부터 분리가능한 플래쉬 메모리에 기초한 메모리 카드 또는 "메모리 스틱(memory sticks)"이 개발되었다. 이러한 유형의 메모리 카드가 등장함에 따라, 디지털 오디오 기록/재생 유닛이 개발되어 CD(컴팩트 디스크) 또는 미니-디스크와 같은 종래의 디스크 모양의 매체 대신에 메모리 카드를 사용하게 되었다.
기록 매체로서 메모리 카드를 사용하는 오디오 레코더는 일반적으로 기록/재생을 위하여 비교적 높은 품질로 데이터를 저장되도록 하는 데이터 압축 방법을 이용한다. 암호화 방법은 이러한 오디오 레코더에서 기록되고 재생되는 뮤직 타이틀의 저작권을 보호하기 위하여 실행된다. 예를 들면, 오디오 레코더는 암호화 기술을 통하여 메모리 카드가 무효한지, 그리하여 레코더와 함께 사용되지 못하는 지를 판단하도록 설계된다. 다시 말하면, 유효 레코더와 유효 메모리 카드를 함께 사용하여 암호화된 데이터를 해독할 수 있다. 암호화 기술은 저작권 보호뿐만 아니라 메모리 카드에 저장된 정보의 보안을 보호하기 위해 사용될 수 있다.
일반적인 메모리 카드는 암호화 기능을 포함하지 않는다. 그러므로, 이러한 메모리 카드에 기밀 데이터를 기록하고자 할 때, 카드가 삽입되며 기록을 위한 데이터를 설정하는 "세트"측, 즉, 장치 ("세트")에 데이터가 암호화된다. 그런 다음, 암호화된 데이터는 저장을 위해 메모리 카드에 전송된다. 암호화 키가 메모리 카드에 저장된 경우, 카드의 데이터 보안이 손상된다. 한편, 암호화 키가 특정 세트에 저장되면, 그 세트에 의해 원래 암호화되고 메모리 카드상에 기록된 데이터는 그 특정 세트 이외의 세트에 의해 암호화될 수 없다. 그러므로, 메모리 카드의 호환성은 유지되지 않는다. 이러한 문제를 해결하기 위하여, 세트와 메모리 카드 각각이 암호화 기능을 가진 시스템이 제안되어, 세트와 메모리 카드가 상호 인증되도록 하였다. 이러한 경우의 메모리 카드는 데이터 암호화를 실행하는 처리 회로를 가진 "스마트 카드"로 간주된다. 이러한 방법으로, 카드의 보안과 호환성 모두를 유지할 수 있다.
상기와 같은 인증 및 암호화 기능을 가진 보안 유닛은 데이터 암호화 규격(Data Encryption Standard:DES)에 따라 암호화한다. DES는 텍스트를 블럭으로 세그멘트화하고 각 블럭 세그먼트를 암호화하는 블럭 암호화 시스템이다. DES를 이용하여, 64비트의 입력 데이터가 64비트의 키(사실상, 56비트의 키와 8비트의 패리티)로 암호화되며 64비트의 암호화된 데이터가 출력된다. DES는 4가지 용도의 모드를 가지며, 그중 하나는 암호 블럭 체인화(Cipher Block Chaining) 모드이다. CBC 모드는 64비트의 텍스트와 선행 암호화 데이터(64비트)가 XOR되어 그 결과가 DES 유닛에 입력되는 피드백 형의 모드이다. 최초의 상태에서, 암호화된 데이터가 없으므로, 초기화 벡터가 사용된다. 또한, 세트와 메모리 카드 사이에서 데이터가 교환되므로, 난수(랜덤 넘버)가 생성되어 데이터에 부가된다.
메모리 카드가 내부 보안 유닛을 가지는 경우, 세트는 메모리 카드에 명령어를 전송하고, 메모리 카드는 암호화 키를 포함한 데이터를 반송함으로써 이에 대응함으로써, 세트와 카드를 상호 인증한다. 메모리 카드의 암호화 회로는 레지스터(register)를 가지며, 이것의 내용은 세트에 의한 명령에 대응하여 세트에 전송된다. 암호화 과정의 중간 산출 결과를 저장하는 또 다른 레지스터가 요구될 수 있다. 예를 들면, 단 하나의 암호화 회로가 존재하는 경우, 암호화 과정이 여러번 실행될 때, 암호화 과정의 중간 산출 결과를 저장하기 위하여 레지스터가 제공된다. 이러한 레지스터는 외부 접근이 금지되어 있다. 중간 산출 결과는 암호화된 데이터를 해독하기 위해 사용된다.
따라서, 내부 보안 유닛을 가진 메모리 카드에는 두 가지 유형의 레지스터가 제공된다. 즉, 명령에 대응하여 세트에 전송될 데이터를 저장하는 접근가능 레지스터와, 암호화 과정의 중간 산출 결과를 저장하는 접근불가 레지스터가 제공된다. 따라서, 2개의 레지스터로 인하여, 보안의 회로 규모는 커진다. 이로 인해, IC 칩으로 구성된 보안 유닛의 집적을 증가시키는 기능이 방해를 받는다. 암호화 과정이 여러번 실행되는 경우, 데이터를 임시로 저장하는 레지스터를 제거하기 위하여, 복수의 암호화 회로를 사용하여 최종 데이터(암호화된 데이터)를 거의 동시에 획득해야 한다. 이런 경우, 회로 규모가 또한 커진다.
따라서, 본 발명의 목적은 작은 회로 규모에서도 보안을 유지할 수 있는 보안 유닛을 제공하는 것이다.
본 발명의 다른 목적은 작은 회로 규모를 가진 보안 유닛을 포함한 메모리 유닛을 제공하는 것이다.
본 발명의 모든 실시예에서, 보안 유닛은 보안 유닛에 의해 수신된 명령에 따라 데이터를 암호화하는 암호화 유닛과, 데이터 암호화의 중간 결과와 최종 결과 모두를 저장하는 공통 레지스터를 포함한다. 레지스터에 동작가능하도록 결합된 스위칭 소자는 레지스터의 내용을 선택적으로 출력한다. 스위칭 소자는 암호화의 중간 결과에 대한 외부 접근을 방지하도록 제어된다. 보안 유닛은 디지털 오디오 레코더/플레이어와 같은 기록/재생 장치에 부착가능한 메모리 유닛의 일부로서 특히 유용하다.
공통 레지스터는 암호화 과정의 중간 산출 결과와 최종 결과를 저장하는 기능을 가지므로, 이러한 기능들을 위해 복수의 레지스터들을 사용할 필요는 없다. 또한, 다수의 암호화 회로를 사용할 필요도 없다. 그러므로, 보안 유닛의 회로 규모는 줄어든다.
상기 언급한 본 발명의 목적, 부가적인 목적들, 특징, 잇점들은 첨부된 도면과 연관되어 설명될 아래의 상세한 설명으로부터 명확해 질 것이다.
도 1은 본 발명의 실시예에 따른 레코더/플레이어와 메모리 카드의 전체적인 구성을 도시한 도면.
도 2는 본 발명의 실시예에 따른 보안형 메모리 카드의 내부 구조를 도시한 도면.
도 3은 본 발명의 실시예에 따른 비보안형 메모리 카드의 내부 구조를 도시한 도면.
도 4는 본 발명의 실시예에 따른 플래쉬 메모리의 파일 시스템 처리 계층의 구조를 도시한 도면.
도 5는 플래쉬 메모리의 물리적 데이터 구조의 포맷을 도시한 도면.
도 6은 플래쉬 메모리의 부트 블럭의 구조를 도시한 도면.
도 7은 플래쉬 메모리의 부트 블럭의 부트 및 속성 정보의 구조를 도시한 도면.
도 8a와 8b는 콘텐츠와 키 사이의 관계를 도시한 도면.
도 9는 기록 동작에서 암호화 과정을 설명하기 위해 참조될 도면.
도 10은 인증 과정을 설명하기 위해 참조될 도면.
도 11은 기록 동작에서 암호화 과정을 설명하기 위해 참조될 도면.
도 12는 재생 동작에서 암호화 과정을 설명하기 위해 참조될 도면.
도 13은 재생 동작에서 암호 해독 과정을 설명하기 위해 참조될 도면.
도 14는 레코더와 메모리 카드 사이에 배치된 인터페이스의 동작을 설명하기 위해 참조될 도면.
도 15는 레코더와 메모리 카드 사이에 배치된 인터페이스의 동작을 설명하기 위해 참조될 도면.
도 16은 본 발명의 실시예에서 사용되는 프로토콜 명령어의 예를 나타낸 표.
도 17 및 도 18은 본 발명의 실시예에서 사용되는 명령을 나타낸 표.
도 19는 본 발명에 따른 메모리 유닛의 개략적 블럭도.
도 20은 본 발명에 따른 보안 블럭의 구조를 도시한 개략적 블럭도.
* 도면의 주요 부분에 대한 부호의 설명 *
1 : 레코더/플레이어 2 : 중앙처리장치(CPU)
3 : 보안 블럭 4 : 동작 버튼
5 : 디스플레이 장치
도 1은 본 발명의 실시예에 따른 디지털 오디오 레코더/플레이어(1)의 구조를 도시한 블럭도이다. 디지털 오디오 레코더/플레이어(1)는 분리가능한 메모리 카드(또는 Memory StickTM)을 이용하여 디지털 오디오 신호를 기록및 재생한다. 레코더/플레이어(1)는 증폭 유닛(미도시), 스피커(미도시), CD 플레이어(미도시), MD 레코더(미도시), 튜너(미도시)등과 함께 오디오 시스템의 일부이다. 본 발명은 다른 오디오 세트에 적용가능하다. 예를 들면, 레코더/플레이어(1)는 휴대가능한 장치이다. 본 발명은 또한 위성 데이터 통신, 디지털 방송, 또는 인터넷등을 통하여 전파되는 디지털 오디오 데이터를 기록하는 세트 탑 박스에도 적용가능하다. 또한, 본 발명은 오디오 데이터보다는 동영상 데이터와 정지 영상 데이터를 기록/재생하는 시스템에 적용가능하다. 본 발명의 실시예에 따른 시스템은 디지털 오디오 신호이외에도 화상, 텍스트와 같은 부가 정보를 기록하고 재생한다.
레코더/플레이어(1)는 중앙처리장치(CPU)(2), 보안 블럭(3), 동작 버튼(4), 디스플레이 장치(5)를 가진다. 보안 블럭(3), 동작 버튼(4), 디스플레이 장치(5)는 버스(16)를 통하여 CPU(2)에 연결된다. 보안 블럭(3)은 데이터 암호화 규격(Data Encryption Standard:DES) 암호화 회로를 포함한다. 사용자의 동작 버튼(4)에 대응하는 기록 명령, 재생 명령등과 같은 데이터는 버스(16)를 통하여 CPU(2)에 제공된다. 다양한 정보들, 레코더/플레이어(1)의 동작 상태등은 디스플레이 장치(5)상에 표시된다. 오디오 인터페이스(6)는 아래에 상세히 설명될 외부 입력/출력과 내부 오디오 부호화기/복호화기(7) 사이에 배치된다.
후에 상세히 설명된 대로, 메모리 카드(40)는 플래쉬 메모리(비휘발성 메모리)(42), 제어 블럭(41), 보안 블럭(52)(DES 암호화 회로를 포함), 통신 인터페이스, 레지스터등을 가진 IC 칩이다. 메모리 카드(40)는 레코더/플레이어(1)에 착탈가능하다. 실시예에 따르면, 레코더/플레이어(1)는 암호화 기능(즉, 보안 블럭(52))을 가지지 않은 메모리와도 호환성이 있다.
오디오 부호화기/복호화기(7)는 메모리 카드(40)에 기입될 고효율의 암호화 방법에 따라 디지털 오디오 데이터를 부호화한다. 또한, 부호화기/복호화기(7)는 메모리 카드(40)로부터 판독된 부호화된 데이터를 복호화한다. MDs에 사용된 Adaptive Transform Acoustic Coding(ATRAC) 포맷의 변형인 고효율의 ATRAC3 포맷 부호화 방법을 사용할 수도 있다.
ATRAC3 포맷에서, 44.1KHz에서 샘플링되고 16비트로 양자화된 오디오 데이터는 고효율로 부호화된다. 처리될 오디오 데이터의 최소 데이터 유닛은 사운드 유닛("SU")이다. 1SU는 1024샘플 데이터를 가지며, 몇백 바이트의 데이터로 압축되는 (1024 x 16비트 x 2 채널) 비트를 가진다. 1SU의 기간은 약 23msec이다. 이러한 고효율 암호화 방법에서, 압축된 데이터의 크기는 원래 데이터의 크기보다 약 10배정도 작다. MDs에서 사용된 ATRAC3 포맷과 비교하여, ATRAC3 포맷에 따라 압축, 압축해제된 오디오 신호는 오디오 품질에 있어서도 떨어지지 않는다.
아나로그 입력(8)은 MD, 튜너, 테이프의 재생 출력 신호를 아나로그-디지털(A/D) 변환기(9)에 제공한다. A/D 변환기(9)는 아나로그 입력(8)으로부터의 신호를 디지털 오디오 신호(샘플링 주파수 = 44.1KHz, 양자화 비트수 = 16)로 변환하고, 이 변환된 디지털 오디오 신호를 오디오 인터페이스(6)에 제공한다. 디지털 입력(10)은 MD, CD의 디지털 출력 신호, 디지털 방송 신호, 또는 네트워크 전파된 오디오 데이터를 오디오 인터페이스(6)에 제공한다. 디지털 입력 신호는 예를 들면, 광 케이블을 통해 전송된다. 오디오 인터페이스(6)는 A/D 변환기(9)와 디지털 입력(10)으로부터의 입력 디지털 오디오 신호를 선택하여 오디오 부호화기/복호화기(7)에 제공한다.
오디오 부호화기/복호화기(7)는 입력된 디지털 오디오 신호를 부호화하여 보안 블럭(3)에 제공한다. 보안 블럭(3)은 데이터(여기에서는 디지털 오디오 신호)의 내용에 대한 저작권을 보호하기 위하여 오디오 부호화기/복호화기(7)로부터 수신된 부호화된 데이터를 암호화한다. 레코더/플레이어(1)의 보안 블럭(3)은 복수의 마스터 키와 각 유닛 고유의 저장 키를 가진다. 또한, 보안 블럭(3)은 랜덤 넘버 생성 회로(미도시)를 가진다. 보안 블럭(52)을 가진 메모리 카드(40)가 레코더/플레이어(1)에 부착되면, 레코더/플레이어(1)의 보안 블럭(3)은 메모리 카드(40)이 유효한지를 판단한다 (즉, 메모리 카드(40)를 인증한다). 레코더/플레이어(1)의 보안 블럭(3)이 적절한 인증 메모리 카드(40)를 가진 후, 레코더/플레이어(1)의 보안 블럭(3)과 메모리 카드(40)의 보안 블럭(52)은 세션 키를 공유한다.
보안 블럭(3)으로부터 출력된 암호화된 오디오 데이터는 CPU(2)에 제공된다. CPU(2)는 양방향 직렬 인터페이스(11)를 통하여 메모리 카드(40)과 통신한다. 실시예에서, 메모리 카드(40)는 레코더/플레이어(1)의 부착/탈착 메카니즘(미도시)에 부착된다. CPU(2)는 메모리 카드(40)의 플래쉬 메모리(42)에 암호화된 데이터를 기입한다. 암호화된 데이터는 CPU2와 메모리 카드(40) 사이에서 직렬로 전송된다.
CPU(2)는 메모리 인터페이스(11)를 통하여 메모리 카드(40)로부터의 암호화된 오디오 데이터를 판독하고, 이를 보안 블럭(3)에 제공한다. 보안 블럭(3)은 암호화된 오디오 데이터를 해독한다. 해독된 오디오 데이터는 해독된 오디오 데이터를 복호화하는 오디오 부호화기/복호화기(7)에 제공된다. 오디오 부호화기/복호화기(7)의 출력 신호는 오디오 인터페이스(6)를 통하여 D/A 변환기(12)에 제공된다. D/A 변환기(12)는 디지털 오디오 데이터를 아나로그 오디오 신호로 변환하고 그 결과를 출력(13)을 통하여 전송한다. 오디오 부호화기/복호화기(7)로부터 수신된 오디오 데이터와 보안 블럭(3)으로부터 수신된 해독된 데이터는 출력(14, 15)를 각각 통하여 또한 인터페이스(6)를 통하여 디지털 출력 신호로서 출력된다.
도 2는 메모리 카드(40)의 내부 구조를 도시한 블럭도이다. 메모리 카드(40)는 제어 블럭(41), 보안 블럭(52), 플래쉬 메모리(42)를 가진 1칩 집적회로(IC)이다. 도 2에 도시한 바와 같이, 레코더/플레이어(1)의 CPU(2)와 메모리 카드(40) 사이에 배치된 양방향 직렬 인터페이스(11)은 데이터와 함께 전송되는 클럭 신호를 전송하는 클럭 라인 SCK, 상태 신호를 전송하는 상태 라인 SBS, 데이터를 전송하는 데이터 라인 DIO, 인터럽트 라인 INT, 2개의 GND 라인, 2개의 VCC 라인, 2개의 예비(reserve) 라인을 포함한 10 라인으로 구성된다.
10라인들중 4개의 주요 라인들은 클럭 라인 SCK, 상태 라인 SBS, 데이터 라인 DIO, 인터럽트 라인 INT이다. 클럭 라인 SCK는 데이터 전송을 동기화하기 위해 클럭 신호를 전송하기 위해 사용된다. 상태 라인 SBS는 메모리 카드(40)의 상태를 나타내는 상태 신호를 전송하기 위해 사용된다. 데이터 라인 DIO는 명령과 암호화된 오디오 데이터를 입력, 출력하기 위해 사용된다. 인터럽트 라인 INT는 메모리 카드(40) 발행으로부터 레코더/플레이어(1)의 CPU(2)에 인터럽트 요청 신호를 전송하기 위해 사용된다. 메모리 카드(40)가 레코더/플레이어(1)에 부착되면, 인터럽트 신호가 생성된다. 다른 실시예에서, 인터럽트 신호는 데이터 라인 DIO를 통하여 전송되며, 이런 경우, 인터럽트 라인 INT는 접지되며 사용되지 않는다.
직렬/병렬 및 병렬/직렬 인터페이스 블럭("S/P 및 P/S IF 블럭")(43)은 인터페이스(11)에 결합된 제어 블럭(41)의 인터페이스이다. S/P 및 P/S IF 블럭(43)은 레코터/플레이어(1)로부터 수신된 직렬 데이터를 병렬 데이터로 변환한다. 또한, 제어 블럭(41)의 병렬 데이터를 직렬 데이터로 변환하여, 직렬 데이터를 레코더/플레이어(1)에 제공한다. 또한, S/P및 P/S IF 블럭(43)은 데이터 라인을 통하여 수신된 명령과 데이터를 플래쉬 메모리(42) 접근용과 암호화 과정 실행용으로 분리한다.
다시 말하면, 데이터 라인 DIO를 사용하여, 명령이 전송되면, 데이터가 전송된다. S/P P/S IF 블럭(43)은 수신된 명령과 데이터가 플래쉬 메모리(42) 접근용인지 또는 암호화 과정 실행용인지를 수신된 명령의 코드에 의해 판단한다. 판단 결과에 대응하여, 플래쉬 메모리(42) 접근용 명령은 명령 레지스터(register)(44)에 저장되며, 데이터는 페이지 버퍼(45)와 기입 레지스터(46)에 저장된다. 에러 보정 코드 부호화 회로(47)은 기입 레지스터(46)와 연결되어 배치된다. 에러 보정 코드 부호화 회로(47)는 페이지 버퍼(45)에 임시로 저장되는 데이터에 대한 에러 보정 코드의 용장(redundant) 코드를 생성한다.
명령 레지스터(44), 페이지 버퍼(45), 기입 레지스터(46), 에러 보정 코드 부호화 회로(47)의 출력 데이터는 플래쉬 메모리 인터페이스및 시퀀서 ("메모리 IF 및 시퀀서)(51)에 제공된다. 메모리 IF 및 시퀀서(51)는 플래쉬 메모리(42)에 결합된 인터페이스이며, 플래쉬 메모리(42)와 제어 블럭(41) 사이에 교환되는 데이터를 제어한다. 예를 들면, 데이터는 메모리 IF 및 시퀀서(51)를 통하여 플래쉬 메모리(42)에 기입된다.
플래쉬 메모리(42)로부터 판독된 데이터는 메모리 IF 및 시퀀서(51)를 통하여 페이지 버퍼(45), 판독 레지스터(48), 에러 보정 회로(49)에 제공된다. 에러 보정 회로(49)는 페이지 버퍼(45)에 저장된 데이터의 에러를 보정한다. 페이지 버퍼(45)로부터 출력된 에러 보정 데이터와 판독 레지스터(48)로부터 출력된 데이터는 S/P 및 P/S IF 블럭(43)에 제공되며, 직렬 인터페이스(11)를 통하여 레코더/플레이어(1)의 CPU(2)에 제공된다.
플래쉬 메모리(42)에 기입된 콘텐츠(ATRAC3 포맷으로 압축된 오디오 데이터:ATRAC3 데이터)의 저작권을 보호하기 위하여, 레코더/플레이어(1)의 보안 블럭(3)과 메모리 카드(40)의 보안 블럭(52)은 함께 콘텐츠를 암호화한다. 보안 블럭(52)는 버퍼, 메모리(53), DES 암호화 회로(54), 비휘발성 메모리(55)등을 가진다.
도 2에 도시한 바와 같이, 구성 ROM(50)이 제어 블럭(41)에 배치된다. 구성 ROM(50)은 메모리 카드(40)의 버전 정보와 다양한 종류의 속성 정보를 저장한다. 메모리 카드(40)는 사용자에 의해 동작가능한 쓰기 보호 스위치(60)를 가진다. 스위치(60)를 쓰기 보호 위치에 두면, 레코더/플레이어(1)가 플래쉬 메모리(42)에 소거 명령을 전송하여도, 플래쉬 메모리(42)에 저장된 데이터는 소거되지 않는다. 스위치(60)를 쓰기 비보호 위치에 두면, 플래쉬 메모리(42)에 저장된 데이터는 소거가능하다. 발진기(61)는 메모리 카드(40)에서 실행된 과정들에 대한 타이밍 참조로서 사용되는 클럭 신호를 생성한다.
메모리 카드(40)의 보안 블럭(52)은 복수의 인증 키와 각 메모리 카드 고유의 저장 키를 가진다. 비휘발성 메모리(55)는 보안 블럭(52)의 외부로부터의 접근이 불가한 암호화 또는 저장 키를 저장한다. 보안 블럭(52)은 랜덤 넘버 생성 회로를 가진다. 보안 블럭(52)은 레코더/플레이어(1)(소정의 데이터 포맷을 이용하는 전용 시스템을 형성한다)을 인증하고 세션 키를 공유한다. ATRAC3 데이터를 암호화할 콘탠츠 키는 세션 키로 암호화되고 레코더/플레이어(1)과 메모리 카드(40) 사시에 전송된다. 메모리 카드(40)의 보안 블럭(52)과 함께, 레코더/플레이어(1)의 보안 블럭(3)은 각 세트 고유의 저장 키를 가진다. 콘텐츠가 암호화되고 플래쉬 메모리(42)에 저장되면, 저장 키와 대응하는 콘텐츠 키가 암호화되어 암호화된 콘텐츠와 함께 저장된다.
도 3은 암호화 기능을 가지지 않은 메모리 카드(40')를 도시한다. 다시 말하면, 메모리 카드(40')는 비보안형 메모리 카드이다. 도 2의 메모리 카드(40)와 달리, 메모리 카드(40')는 보안 블럭(52)을 가지지 않는다. 메모리 카드(40')의 나머지 구조는 메모리 카드(40)와 실질적으로 동일하다. 또한, 메모리 카드(40')의 크기와 모양은 메모리 카드(40)와 동일하다. 도 1의 레코더/플레이어(1)가 보안형 레코더이므로, 레코더/플레이어(1)와 메모리 카드(40)는 상호 인증되며 그 사이에 키가 통신된다. 도 3의 메모리 카드(40')가 레코더/플레이어(1)에 부착되면, 레코더/플레이어(1)는 메모리 카드(40')가 비보안형 메모리 카드이며 레코더/플레이어(1)와 함께 사용될 수 없음을 판단한다.
레코더/플레이어(1)이 그에 부착된 메모리 카드의 유형을 판단하는 몇가지 방법이 있다. 일예로서, 메모리 카드(40')가 레코더/플레이어(1)에 부착되면, 인증을 위하여 레코더/플레이어(1)에서 메모리 카드(40')로 키가 전송된다. 메모리 카드(40')가 레코더/플레이어(1)에 정확한 응답을 전송하지 않으므로, 레코더/플레이어(1)는 타임-아웃 시간이 경과한 후 메모리 카드(40')가 보안형이 아님을 판단한다. 또 다른 예로서, 메모리 카드(40 또는 40')가 레코더/플레이어(1)에 부착되면, 메모리 카드가 보안형인지를 나타내는 식별 정보가 메모리 카드의 소정 영역(부트 영역)에 기록된다. 이러한 식별 정보를 판독한 후, 레코더/플레이어(1)는 그에 부착된 메모리 카드의 유형을 판단한다.
도 1에 도시한 레코더/플레이어(1)에 부가하여, 본 발명에 따라 비보안형 메모리 카드(40')를 사용하는 유닛을 설명한다. 일예는 CCD(Charge Coupled Device) 카메라로 제작된 화상을 메모리 카드(40')에 기록하고 그로부터 화상을 재생하는 디지털 핸디 무비 카메라이다. 후에 설명되겠지만, 본 발명의 실시예에 따르면, 메모리 카드(40)의 호환성을 개선하기 위하여, 디지털 핸디 무비 카메라와 같은 비보안 장치는 메모리 카드(40)를 이용하여 데이터를 기록및 재생할 수 있도록 구성된다. 즉, 상기와 같이, S/P 및 P/S IF 블럭(43)은 명령과 데이터를 플래쉬 메모리(42)와 보안 블럭(52)용으로 구분하는 기능을 가진다.
실시예에 따라, 메모리 카드(40, 40')는 개인용 컴퓨터의 디스크 모양의 기록 매체 FAT(File Allocation Table) 파일 시스템을 이용하여 데이터를 저장한다. 플래쉬 메모리(42)는 IPL(Initial Program Load) 영역, FAT 영여그 루트(route) 디렉토리를 가진다. IPL 영역은 레코더/플레이어(1)의 메모리에 최초로 로드된 프로그램의 주소를 저장한다. 또한, IPL 영역은 플래쉬 메모리(42)의 다양한 정보를 저장한다. FAT 영역은 플래쉬 메모리(42)의 메모리 블럭과 연관하여 데이터를 저장한다. 즉, FAT 영역은 사용되지 않은 블럭, 후속 블럭 번호, 불량 블럭, 최종 블럭을 나타내는 값을 저장한다. 루트 디렉토리는 디렉토리 엔트리(파일 속성, 업데이트된 날짜(년도, 월, 일), 개시 클러스터, 파일 크기등)를 저장한다.
메모리 카드(40, 40')의 포맷으로 정의된 파일 관리 시스템뿐만 아니라, 음악 파일을 위한 파일 관리 정보(트랙 정보 관리 파일)를 정의할 수 있다. 트랙 정보 관리 파일은 메모리 카드(40, 40')의 사용자 블럭을 이용하여 플래쉬 메모리(42)에 저장된다. 그러므로, 메모리 카드(40 또는 40')의 FAT이 손상되어도, 파일은 복구될 수 있다.
트랙 정보 관리 파일은 CPU(2)에 의해 생성된다. 레코더/플레이어(1)의 전원이 턴온되면, CPU(2)는 메모리 카드(40 또는 40')가 레코더/플레이어(1)에 부착되었는지를 판단한다. 메모리 카드(40 또는 40')가 레코더/플레이어(1)에 부착되면, CPU(2)는 플래쉬 메모리(42)의 부트 블럭을 판독한다. 부트 블럭의 식별 정보에 따라, CPU(2)는 부착된 메모리 카드가 보안형 메모리 카드인지를 판단한다.
메모리 카드(40)가 부착되면 (즉, 보안형이면), CPU(2)는 인증 절차를 실행한다. 메모리 카드(40)로부터 판독된 기타 데이터는 CPU(2)에 의해 관리된 메모리(미도시)에 저장된다. 사용된 메모리 카드(40 또는 40')의 플래쉬 메모리(42)에서, 쉽핑(shipping)되기전에, FAT 과 루트 방향이 기입된다. 데이터가 기록되면, 트랙 정보 관리 파일이 생성된다. CPU(2)가 메모리 카드(40)을 인증한 후, 레코더/플레이어(1)은 암호화된 ATRAC3 데이터 파일을 기록 또는 재생한다.
데이터가 기록되면, 동작 버튼(4)의 동작에 대응하여 기록 명령이 발행된다. 입력 오디오 데이터는 부호화기/복호화기(7)에 의해 압축된다. 부호화기/복호화기(7)로부터 수신된 ATRAC3 데이터는 보안 블럭(3)에 의해 암호화된다. CPU(2)는 암호화된 ATRAC3 데이터를 메모리 카드(40)의 플래쉬 메모리(42)에 저장한다. 그런 다음, FAT와 트랙 정보 관리 파일이 업데이트된다. 파일이 업데이트될 때마다 (즉, 오디오 데이터가 기록되면), FAT와 트랙 정보 관리 파일이 CPU(2)에 의해 제어되는 메모리에 재기입된다. 메모리 카드(40)가 레코더/플레이어(1)로부터 분리되거나, 레코더/플레이어(1)의 전원이 턴온되면, 최종 FAT와 트랙 정보 관리 파일이 메모리로부터 메모리 카드(40)의 플래쉬 메모리(42)에 제공된다. 이런 경우, 오디오 데이터가 기록될 때마다, 플래쉬 메모리(42)에 저장된 FAT와 트랙 정보 관리 파일이 재작성된다. 데이터가 편집(edit)되면, 트랙 정보 관리 파일의 콘텐츠는 업데이트된다.
도 4는 저장 매체로서 메모리 카드(40 또는 40')를 메모리 카드(40 또는 40')를 사용하는 컴퓨터 시스템의 파일 시스템 처리의 계층을 도시하는 개략적 도면이다. 도시한 바와 같이, 최상단 계층 레벨은 어플리케이션 처리층이다. 어플리케이션 처리층은 파일 관리 처리층, 논리 어드레스 관리층, 물리 어드레스 관리층, 플래쉬 메모리 접근층이 후속된다. 파일 관리 처리층은 FAT 파일 시스템이다. 물리적 어드레스는 메모리 카드(40 또는 40')의 플래쉬 메모리(42)의 개별 블럭에 지정된다. 플래쉬 메모리(42)의 블럭과 그의 물리적 어드레스간의 관계는 변화하지 않는다. 논리적 어드레스는 파일 관리 처리층상에 논리적으로 처리되는 주소이다.
도 5는 메모리 카드(40 또는 40')의 플래쉬 메모리(42)에서 처리된 데이터의 물리적 구조를 도시한 도면이다. 플래쉬 메모리(42)에서, 데이터 유닛(세그먼트라고 함)는 소정 수의 블럭(고정 길이)으로 나누어진다. 하나의 블럭은 소정 수의 페이지(고정 길이)로 나누어 진다. 플래쉬 메모리(42)에서, 데이터는 한번에 하나의 블럭씩 소거된다. 마찬가지로, 각 페이지의 크기는 동일하다. 1블럭은 페이지0에서 페이지m으로 구성된다. 1블럭은 8KB(킬로바이트) 또는 16KB의 저장 용량을 가지며, 1페이지는 512B(바이트)의 저장 용량을 가진다. 1블럭이 8KB의 저장 용량을 가지면, 플래쉬 메모리(42)의 총 저장 용량은 4MB (512 블럭) 또는 8MB(1024 블럭)이다. 1블럭이 16KB의 저장 용량을 가지면, 플래쉬 메모리(42)의 총 저장 용량은 16MB(1024 블럭), 32MB(2048 블럭), 64MB (4096 블럭)이다.
1페이지는 512 바이트의 데이터 부분과 16 바이트의 용장 부분으로 구성된다. 용장 부분의 처음 3 바이트는 데이터가 업데이트될 때마다 재작성되는 덮어쓰기(overwrite)부분이다. 처음 3 바이트는 연속적으로 블럭 상태 영역, 페이지 상태 영역, 업데이트 상태 영역을 포함한다. 용장 부분의 나머지 13 바이트는 데이터 부분의 내용에 따라 달라지는 고정 데이터이다. 13 바이트는 관리 플래그 영역(1바이트), 논리적 어드레스 영역(2바이트), 포맷 예비 영역(5바이트), 분산 정보 에러 보정 코드 (Error-Correcting Code:ECC)(2바이트), 데이터 ECC 영역(3바이트)을 포함한다. 분산 정보 ECC 영역은 관리 플래그 영역, 논리적 어드레스 영역, 포맷 예비 영역에 대한 에러 보정에 위한 용장 데이터를 포함한다. 데이터 ECC 영역은 512-바이트 영역의 데이터에 대한 에러 보정 처리를 위한 용장 데이터를 포함한다.
관리 플래그 영역은 시스템 플래그(1:사용자 블럭, 0:부트 블럭), 변환 테이블 플래그(1:무효, 0: 테이블 블럭), 복사 금지 플래그 (1:복사 허용, 0:복사 불허), 접근 허용 플래그(1:프리(free), 0:판독 금지)를 포함한다.
처음 2 블럭(블럭 0,1)은 부트 블럭이다. 블럭1은 블럭0의 백업이다. 부트 블럭은 메모리 카드(40 또는 40')에서 유효하지 않은 최상단 블럭이다. 메모리 카드(40 또는 40')가 레코더/플레이어(1)에 부착되면, 부트 블럭이 제일 먼저 액서스된다. 잔여 블럭들은 사용자 블럭이다. 부트 블럭의 페이지0은 헤더 영역, 시스템 엔트리 영역, 부트 및 속성 정보 영역을 포함한다. 부트 블럭의 페이지1은 금지된 블럭 데이터 영역을 포함한다. 부트 블럭의 페이지2는 CIS(Card Information Structure)/IDI(Idenfity Driver Information) 영역을 포함한다.
도 6은 부트 블럭의 페이지 0, 1, 2를 도시한다. 부트 블럭의 헤더(368바이트)는 부트 블럭 ID, 포맷 버전, 부트 블럭의 유효 엔트리수를 저장한다. 시스템 엔트리(48바이트)는 금지된 블럭 데이터의 시작 위치, 그 데이터 크기, 그 데이터 유형, CIS/IDI의 데이터 시작 위치, 그 데이터 크기, 그 데이터 유형을 저장한다. 부트 및 속성 정보는 메모리 카드 유형 (판독 전용형, 재작성형, 하이브리드형), 블럭 크기, 블럭수, 총 블럭수, 보안/비보안형, 카드 제작 데이터(제작일)등을 포함한다.
도 7은 도 6에 도시한 부트 및 속성 정보(96바이트)의 구조를 도시한다. 부트 및 속성 정보는 메모리 카드의 종류, 유형 (판독전용, 판독 쓰기 인에이블, 두가지 유형의 하이브리드등), 블럭 크기, 블럭수, 총 블럭수, 보안형/비보안형, 제작 데이터(제작일:년, 월, 일)등을 포함한다. 레코더/플레이어(1)는 보안 유형 정보(1바이트)를 이용하여 메모리 카드가 보안형인지를 판단한다. 도 7에서, (*1)은 메모리 카드가 부착된 경우 레코더/플레이어(1)이 판독, 점검하는 데이터 항목을 나타내며, (*2)는 제작/품질 관리 데이터 항목을 나타낸다.
플래쉬 메모리(42)의 절연막은 이 메모리에 저장된 데이터가 재작성될 때마다 품질이 저하된다. 그러므로, 메모리 카드(40 또는 40')의 수명은 플래쉬 메모리(42)가 재기입되는 횟수에 의해 제한된다. 따라서, 플래쉬 메모리(42)의 특정 저장 영역(블럭)을 반복적으로 접근하는 것을 금지하는 것이 바람직하다. 따라서, 특정 물리적 어드레스에 저장된 데이터가 재작성될 때, 업데이트된 데이터는 동일 블럭으로 되돌아가 기입되지 않는다. 대신에, 업데이트된 데이터는 사용되지 않은 블럭에 기입된다. 그러므로, 데이터가 업데이트된 후, 물리적 주소와 논리적 주소 사이의 관계는 변경된다. 이러한 과정(스와핑 과정이라고 함)이 실행되면, 동일한 블럭으로의 반복적으로 접근은 금지된다. 이렇게 하여, 플래쉬 메모리(42)의 서비스 수명이 연장된다.
논리적 어드레스가 블럭에 기입된 데이터에 대응하므로, 업데이트된 데이터가 또 다른 블럭으로 물리적으로 이동한다고 해도, FAT에는 동일한 논리적 어드레스가 유지된다. 스와핑 과정은 논리적 어드레스와 물리적 어드레스 사이의 관계의 변화를 유발한다. 이렇게 하여, 논리적 어드레스를 물리적 어드레스로 변환하는 종래의 테이블은 이러한 스와핑 과정이 실행되면 그에 따라 변경된다. 변환 테이블을 참조로, FAT에 의해 지정된 논리적 어드레스에 대응하는 물리적 어드레스가 획득된다. 이렇게 하여, 업데이트된 데이트는 동일한 논리적 어드레스를 이용하여 적절하게 액서스된다.
논리적 어드레스-물리적 어드레스 변환 테이블은 CPU(2)에 의해서 RAM에 저장된다. 그러나, RAM의 저장 용량이 작은 경우, 논리적 어드레스-물리적 어드레스 변환 테이블은 플래쉬 메모리(42)에 저장될 수 있다. 이 테이블은 기본적으로 오름 차순으로 배열된 논리적 어드레스(2바이트)를 물리적 어드레스(2바이트)와 상호연관시킨다. 플래쉬 메모리(42)의 최대 저장 용량이 128MB(8192블럭)이므로, 8192 어드레스들은 2바이트로 표시될 수 있다. 또한, 논리 어드레스-물리 어드레스 변환 테이블은 플래쉬 메모리의 저장 용량에 비례한다. 플래쉬 메모리(42)의 저장 용량이 8MB(2 세그먼트)이면, 2 세그먼트에 대응하는 2 페이지는 논리 어드레스-물리 어드레스 변환 테이블을 위해 사용된다. 논리 어드레스-물리 어드레스 변환 테이블은 플래쉬 메모리(42)에 저장된 경우, 각 페이지의 용장부의 관리 플래그의 1비트는 관련 블럭이 논리 어드레스-물리 어드레스 변환 테이블에 저장되었는지의 여부를 나타낸다.
이제, 보안 보호 기능에 대해 보다 상세히 설명한다. 우선, 도 8A와 8B에서, 키와 콘텐츠 사이의 관계가 도시되어있다. 플래쉬 메모리(42)에 저장된 각 곡조(또는 노래)는 트랙이라고 한다. 도 8a는 플래쉬 메모리(42)에 저장된 1트랙을 도시한다. 도 8a에 도시한 바와 같이, 각 트랙은 키 영역(헤더)(101)을 포함한다. 암호화된 오디오 데이터의 각 트랙(타이틀)에 대해 생성된 콘텐츠 키 CK는 메모리 카드 고유의 저장 키 Kstm로 암호화되어 그 결과로 나타나는 데이터가 키 영역(101)에 저장된다. 콘텐츠 키 CK와 저장 키 Kstm에 대한 암호화 과정에서 DES가 사용된다. DES(Kstm, CK)는 콘텐츠 키 CK가 저장 키 Kstm으로 암호화되었음을 나타낸다. 부호화된값은 바람직하게 56비트의 데이터와 CRC(Cyclical Redundancy Checking)에 의해 검출된 8비트의 에러로 구성된 64비트를 가진다.
각 트랙은 부분들(102)로 나누어진다. 부분 키 PK는 각 부분에 기록된다. 도 8a에 도시된 트랙은 하나의 부분(102)을 가진다. 부분(102)는 블럭(103) 세트(각 16KB)이다. 각 블럭(103)은 블럭 시드 BK_SEED 와 최초 벡터 INV를 저장한다. 부분 키 PK는 콘텐츠의 암호화를 위해 블럭키 BK를 생성하기 위해 콘텐츠 키 CK와 한쌍을 이룬다. 즉, BK = DES(CK(+)PK,BK_SEED)(56비트 + 8비트)(여기에서 (+)는 배타적 논리합(exclusive OR)을 나타낸다). 최초 벡터 INV는 블럭에 대한 암호화/해독 과정을 위한 최초값이다.
도 8b는 레코더/플레이어(1)에서 콘텐츠 데이터에 관한 것이다. 콘텐츠의 각 트랙에 대한 콘텐츠 키 CK가 해독되며, 결과 데이터는 레코더 고유의 저장 키 Kstd로 재암호화된다. 재암호화된 데이터는 키 영역(111)에 저장된다. 즉, 해독 과정은 IDES(Kstm,CK)(56 비트 + 8 비트)에 의해 표시된다. 재암호화 과정은 DES (Kstd,CK)(56비트+8비트)에 의해 표시된다. 블럭 키 BK를 생성하는 부분 키 PK는 콘텐츠의 각 부분(112)에 대해 기록된다. 부분(112)의 각 블럭(113)은 블럭 시드 BD_SEED 와 최초 벡터 INV를 저장한다. 메모리 카드와 함께, 블럭 키 BK는 BK = DES(CK(+)PK,BK_SEED)(56비트+8비트)로 나타낸다.
메모리 카드(40)로의 쓰기 동작
레코더/플레이어(1)의 기록(쓰기)에 사용되는 암호화 과정을 도 9와 함께 설명한다. 설명의 편의상, 도 9에서, 도 1과 유사한 부분들은 동일한 참조 번호를 사용하였으며 이에 대한 설명은 생략한다. 또한, 레코더/플레이어(1)과 메모리 카드(40)의 구성요소들 사이에서 데이터와 명령 전송에 사용되는 인터페이스(11), 버스(6), 제어 블럭(41)은 도 9와 후속되는 설명에서 생략되었다. 도 9에서, SeK는 레코더/플레이어(1)와 메모리 카드(40) 사이에 상호 인증되어 공유되는 세션 키이다. 도 9에서, 참조번호 10'는 CD이며, 디지털 입력(10)에 입력된 디지털 오디오 신호의 소스이다.
메모리 카드(40)가 레코더/플레이어(1)에 부착되면, 레코더/플레이어(1)는 메모리 카드(40)가 보안형 메모리 카드인지를 부트 영역의 식별 정보로 판단한다. 메모리 카드(40)가 보안형 메모리 카드이므로, 레코더/플레이어(1)와 메모리 카드(40)는 상호 인증된다.
레코더/플레이어(1)와 메모리 카드(40) 사이의 상호 인증 과정은 도 10을 참조로 아래와 같이 설명된다.
레코더/플레이어(1)에서 메모리 카드(40)로 쓰기 요청 신호가 전송된 후, 레코더/플레이어(1)와 메모리 카드(40)는 다시 상호 인증되며, 이에 관하여서는 도 10에서 보다 상세히 설명된다. 레코더/플레이어(1)와 메모리 카드(40)가 상호 식별 과정에 따라 서로를 적합하다고 인식하면, 후에 도 11을 참조로 보다 상세히 설명될 키 쓰기 과정이 실행된다. 그렇지 않으면, 쓰기 동작은 종료된다. 키 쓰기 과정이 완료되면, 오디오 데이터가 암호화되어 CPU(2)에 의해 인터페이스(11)를 통하여 메모리 카드(40)에 기입된다.
도 9에서, 레코더/플레이어(1)는 기입될 데이터(곡조)의 각 트랙을 위한 랜덤 넘버를 생성하고 각 랜덤 넘버에 따라 대응하는 콘텐츠 키 CK를 생성한다. 레코더/플레이어(1)의 보안 블럭(3)은 세션 키 SeK를 이용하여 콘텐츠 키 CK를 암호화한다. 레코더/플레이어(1)는 메모리 카드(40)에 암호화된 콘텐츠 키 CK를 출력한다. 메모리 카드(40)의 보안 블럭(52)의 DES 암호화/해독 회로(54)는 암호화된 콘텐츠 키 CK를 해독하고 메모리(55)로부터의 저장 키 Kstm을 이용하여 해독된 콘텐츠 키 CK를 재암호화한다. 메모리 카드(40)는 재암호화된 CK를 레코더/플레이어(1)(CPU(2))에 출력한다. 레코더/플레이어(1)(CPU(2))는 재암호화된 콘텐츠 키 CK를 각 트랙의 키 영역(111)(도 8b에 도시한)에 설정한다. 레코더/플레이어(1)는 각 트랙의 각 부분 데이터 영역(112)(도 8b에 도시)를 위한 랜덤 넘버를 생성하고, 각 랜덤 넘버에 따라 부분 키 PK를 생성한다. 생성된 각각의 부분 키 PK는 CPU(2)에 의해 대응하는 부분 데이터 영역(112)에 설정된다.
임시키 TMK는 각 부분 데이터 영역(112)에 대하여 레코더/플레이어(1)에 의해 부분 키 PK와 콘텐츠 키 CK에 대하여 아래의 수식(1)과 같이 XOR를 실행하여 생성된다. 임시 키 TMK를 생성하는 것은 XOR 함수를 사용하는 것에 제한되지 않는다. 간단한 AND 연산자와 같은 기타 함수 연산자들을 사용할 수도 있다.
TMK = PK XOR CK ...(1)
레코더/플레이어(1)는 각 부분 데이터 영역(112)의 각 블럭(113)에 대한 랜덤 넘버를 생성하고 각 랜덤 넘버에 따라 블럭 시드 BK_SEED를 생성한다. 또한, 레코더/플레이어(1)(CPU(2))는 생성된 블럭 시트 BK_SEED를 각 대응하는 블럭(113)에서의 적절한 위치에 설정한다. 레코더/플레이어(1)는 수식(2)에서 임시 키 TMK와 블럭 시드 BK_SEED를 이용하여 각 블럭(113)에 대한 블럭 키 BK를 생성하기 위한 MAC(Message Authentication Code) 동작을 실행한다.
BK = MAC (TMK,BK_SEED) ...(2)
블럭 키 BK를 생성하기 위해 SHA-1(secure Hash algorithm), RIPEMD-160, 또는 기타 일방 Hash 함수의 입력에 비밀키를 사용하여 MAC 연산이 아닌 과정을 실행할 수 있다. 여기에서, 일방향 함수 f는 x로부터 y =f(x) 를 산출하기에 용이하나 y로부터 x를 구하기는 어려운 함수를 정의한다. 일방향 Hash 함수는 "Handbook of Applied Cryptography, CRC Press"에 보다 상세히 설명되어 있다.
오디오 부호화기/복호화기(7)는 CD(10')으로부터 디지털 입력(10)으로 입력된 디지털 오디오 신호 또는 아니로그 입력(8)에 입력된 아나로그 오디오 신호를 디지털 신호로 변환하는 A/D 변환기(9)로부터의 디지털 신호를 ATRAC3 포맷에 따라 압축한다. 그런 다음, 보안 블럭(3)은 압축된 오디오 데이터를 블럭 키 BK를 이용하여 CBC(Cipher Block Chaining) 모드로 암호화하며, 이때 CBC 모드는 Federal Information Processing Standard (FIPS) PUB81(DES MODES OF OPERATION)에 정의된 데이터 암호화 모드이다.
레코더/플레이어(1)는 암호화된 오디오 데이터에 헤더를 부가하고 그 결과를 메모리 카드(40)에 출력한다. 메모리 카드(40)는 암호화된 오디오 데이터와 헤더를 플래쉬 메모리(42)에 기입한다. 이렇게 하여, 레코더/플레이어(1)로부터 메모리 카드(40)에 오디오 데이터를 기입하는 과정이 완성된다.
도 10은 레코더/플레이어(1)(SET1)과 메모리 카드(40)(MEMORY CARD) 사이에 실행된 인증 과정을 도시한다. 단계 S1에서, 메모리 카드(40)의 보안 블럭(52)의 랜덤 넘버 생성기는 랜덤 넘버 Rm를 생성하여 이 넘버와 메모리 카드(40)의 일련 번호 ID를 레코더/플레이어(1)에 전송한다.
단계 S2에서, 레코더/플레이어(1)는 Rm과 ID를 수신하여 관계 IKj = MAC(MKj,ID)에 따라 인증 키 IKj를 생성하며, 여기에서 MKj는 보안 블럭(3)에 저장된 마스터 키들중 하나이다. 레코더/플레이어(1)는 랜덤 넘버 Rd를 생성하고 인증 키를 가진 메시지 인증기 MACA(Message Authentication Code), 즉, MAC(IKj,Rd//Rm//ID) 를 생성한다. 이리하여, 레코더/플레이어(1)는 랜덤 넘버 Sd를 생성하여 Rd//Sd//MACA//j를 메모리 카드(40)에 전송한다.
단계 S3에서, 메모리 카드(40)는 데이터 Rd//Sd//MACA//j를 수신하고, j에 대응하는 보안 블럭(52)으로부터의 인증 키 IKj를 검색하여, Rd, Rm, ID를 이용하여 MACB를 인증키 IKj로 산출한다. 산출된 MACB가 수신된 MACA와 동일한 경우, 메모리 카드(40)는 레코더/디스플레이어(1)가 유효한(즉, 허가된) 것으로 판단한다. 단계 S4에서, 메모리 카드(40)는 MACC= MAC (IKj,Rm//Rd)를 생성하며 랜덤 넘버 Sm을 생성한다. 그런 다음, 메모리 카드(40)는 Sm//MACO를 레코더/플레이어(1)에 전송한다.
단계 S5에서, 레코더/플레이어(1)는 메모리 카드(40)으로부터 Sm//MACC를 수신한다. 레코더/플레이어(1)는 IKj, Rm, Rd를 이용하여 MACD를 산출한다. 산출된 MACD가 수신된 MACC와 동일한 경우, 레코더/플레이어(1)는 메모리 카드(40)이 유효한(즉, 허가된) 것으로 판단한다. 단계 S6에서, 레코더/플레이어(1)는 MAC(IKj, Rm//Rd)를 세션 키 SeK로 지정한다. 단계 S7에서, 메모리 카드(40)는 MAC (IKj, Rm//Rd)를 세션 키 SeK로 지정한다. 레코더/플레이어(1)와 메모리 카드(40)가 상호 인증되면, 세션 키 SeK는 그들 사이에 공유된다. 세션 키 SeK는 인증이 성공할 때 마다 생성된다.
도 11은 레코더/플레이어(1)(SET)가 메모리 카드(40)(MEMORY CARD)의 플래쉬 메모리(42)에 오디오 데이터를 기록하는 경우의 키 기입 과정을 도시한다. 단계 S11에서, 레코더/플레이어(1)는 콘텐츠의 각 트랙을 위한 랜덤 넘버를 생성하고 콘텐츠 키 CK를 생성한다. 단계 S12에서, 레코더/플레이어(1)는 세션 키 SeK와 함께 콘텐츠 키를 암호화하고 암호화된 DES(SeK,CK)를 메모리 카드(40)에 전송한다.
단계 S13에서, 메모리 카드940)는 레코더/플레이어(1)로부터 데이터 DES(SeK,CK)를 수신하고 세션 키 SeK와 함께 콘텐츠 키 CK를 해독한다. 해독 과정은 IDES(SeK, DES(SeK, CK))에 의해 표시된다. 단계 S14에서, 메모리 카드(40)는 메모리(55)로부터의 저장 키 Kstm과 함께 암호화된 콘텐츠 키 CK를 재암호화하고 재암호화된 콘텐츠 키 DES(Kstm, CK)를 레코더/플레이어(1)에 전송한다.
단계 S15에서, 레코더/플레이어(1)는 대응 데이터 영역(112)를 관리하기 위한 키 영역(111)에 재암호화된 콘텐츠 키 CK를 위치시키고, 재암호화된 콘텐츠 키 CK와 콘텐츠가 메모리 카드(40)의 플래쉬 메모리(42)에 기록되도록 포맷팅 과정을 실행한다. 콘텐츠를 암호화하기 위하여, 도 9와 수식(11)에서 보여진 바와 같이, 콘텐츠 키 CK와 부분 키 PK는 배타적 논리합(XOR 또는 AND)된다. XOR 연산의 결과는 임시 키 TMK이다. 임시 키 TMK는 보안 블럭(3)에만 저장된다. 이렇게 하여, 임시 키 TMK는 보안 블럭(3)의 외부로부터의 접근이 불가능하다. 각 블럭(113)의 시작에서, 랜덤 넘버가 블럭 시드 BK_SEED로서 생성된다. 랜덤 넘버는 각 부분 데이터 영역(112)에 저장된다. 레코더/플레이어(1)는 블럭 시드 BK_SEED 와 임시 키 TMK를 암호화하여 블럭 키 BK를 획득한다. 다시 말하면, BK=(CK(+)PK, BK_SEED) 관계가 획득된다. 블럭 키 BK는 보안 블럭(3)에만 저장된다. 이렇게 하여, 블럭 키 BK는 보안 블럭(3)의 외부로 부터의 접근이 불가능하다.
단계 S16에서, 레코더/플레이어(1)는 블럭 키 BK와 함께 블럭 별로 각 부분 데이터 영역(112)의 데이터를 암호화하여, 암호화된 데이터와 키 영역(111)의 데이터를 메모리 카드(40)에 전송한다. 단계 S17에서, 메모리 카드(40)는 레코더/플레이어(1)로 부터 수신된 암호화된 데이터와 키 영역(111)의 데이터 (헤더 데이터)를 플래쉬 메모리(42)에 기록한다.
메모리 카드(40)로부터의 판독 동작
레코더/플레이어(1)의 재생(읽기)을 위한 암호해독 과정은 도 12를 참조로 설명한다. 편의상, 도 12에서, 도 1와 동일한 부분은 동일한 참조 번호를 사용하였으며 그에 대한 설명은 생략하였다. 또한, 레코더/플레이어(1)와 메모리 카드(40)의 구성요소들 사이에서 데이터와 명령 전송에 사용되는 인터페이스(11), 버스(6), 제어 블럭(41)은 도 12와 후속되는 설명에서 생략되었다.
원하는 데이터(곡조)의 트랙이 레코더/플레이어(1)에서 메모리 카드(40)로 전송된다. 레코더/플레이어(1)와 메모리 카드(40)는 도 10과 연관된 상기 설명에서와 같이 상호 인증을 실행한다. 레코더/플레이어(1)와 메모리 카드(40)가 상호 식별 과정에 따라 서로를 적합하다고 인식하면, 후에 도 11을 참조로 보다 상세히 설명될 키 쓰기 과정이 실행된다. 그렇지 않으면, 쓰기 동작은 종료된다. 키 쓰기 과정이 완료되면, 암호화된 오디오 데이터가 CPU(2)에 의해 메모리 카드(40)로부터 레코더/플레이어(1)에 판독된다.
레코더/플레이어(1)와 메모리 카드(40) 사이에 상호 식별이 실행되므로, 암호화된 콘텐츠 키 CK는 레코더/플레이어(1)와 메모리 카드(40)가 서로를 적합하다고 인식하는 경우에만 적절한 세션 키 SeK를 사용하여 암호해독될 수 있다. 그러므로, 오디오 데이터의 불법 도용을 쉽게 방지할 수 있다. 판독 동작중 판독된 데이터는 도 9에 도시된 상기 쓰기 동작에 의해 기입된다. 콘텐츠 키 CK와 부분 키 PK를 각 부분 데이터 영역(112)에 설정하는 것과, 블럭 시드 BK_SEED를 각 블럭(113)에 설정하는 것은 대응하는 데이터 영역(102)에 데이터를 기입하고 그로부터 데이터를 판독하기 위한 것이다. 도 10의 단계 S6이 완료되면, 메모리 카드(40)와 레코더/플레이어(1)는 세션 키 SeK를 공유한다. 메모리 카드(40)로부터 오디오 데이터를 판독하는 것은 아래와 같이 진행된다.
메모리 카드(40)는 판독 요청 신호에 대응하는 부분 데이터 영역(102)(도 8a)에서 데이터를 명시하고 명시된 부분 데이터 영역(102)의 블럭(103)(도 8a)으로부터 사운드 유닛 SUs로 오디오 데이터를 출력한다. 메모리 카드(40)는 또한 오디오 데이터의 대응 영역(101)(도 8a)를 판독하고 그 결과를 레코더/플레이어(1)에 출력한다.
레코더/플레이어(1)는 키 영역(101)의 데이터로부터 암호화된 콘텐츠 CK를 픽업하고 그것을 메모리 카드(40)에 출력한다. 메모리 카드(40)의 보안 블럭(52)의 DES 암호화/해독 회로(54)는 메모리(55)에 저장된 저장 키 Kstm을 이용하여 암호화된 콘텐츠 키 CK를 해독하고 해독된 콘텐츠 키 CK를 세션 키 SeK를 이용하여 재암호화한다.
메모리 카드(40)는 재암호화된 콘텐츠 키 CK를 레코더/플레이어(1)에 출력한다. 레코더/플레이어(1)는 세션 키 SeK를 이용하여 메모리 카드(40)로부터의 재암호화된 콘텐츠 키 CK를 해독한다. 그런 다음, 레코더/플레이어(1)는 해독된 콘텐츠 키 CK와 각 부분 데이터 영역(102)의 데이터로부터의 부분 키 PK를 XOR하여 수식(3)에 따른 임시 키 TMK를 획득한다.
TMK = PK XOR CK ...(3)
레코더/플레이어(1)는 임시키 TMK와 각 부분 데이터 영역(102)의 블럭 시드 BK_SEED를 이용하여 아래의 수식(4)에 도시한 MAC 연산을 실행하여 블럭 키 BK를 획득한다. 블럭 키 BK는 아래와 같이 보든 블럭(103)에 대해 검색된다.
BK = MAC (TMK,BK_SEED) ...(4)
레코더/플레이어(1)의 보안 블럭(3)은 블럭 키 BK를 이용하여 오디오 데이터를 해독한다. 상세히 설명하면, 오디오 데이터는 개별적으로 검색된 블럭 키 BK를 이용하여 모든 블럭(103)에 대하여 암호해독된다. 또한, 암호화를 위해 사용된 동일한 16KB 블럭(103)에서도 암호해독은 실행된다. 오디오 부호화기/복호화기(7)는 ATRAC3 시스템에 따라 암호해독된 오디오 데이터를 확장하고, 복호화된 신호를 디지털 출력(14)를 통하여 출력하거나, D/A 변환기(12)는 디지털 오디오 신호를 아나로그 신호로 변환하고 그 결과를 아나로그 출력(13)을 통하여 출력한다. 또는, 보안 블럭(3)으로부터의 ATRAC3 오디오 데이터는 출력(15)을 통하여 출력된다. 오디오 부호화기/복호화기(7)는 오디오 데이터를 사운드 유닛 SUs로 확장한다.
도 13은 레코더/플레이어(1)가 메모리 카드(40)의 플래쉬 메모리(42)에 저장된 오디오 트랙을 재생할 때의 암호해독 과정을 보여준다. 도 9 내지 도 11에 도시한 쓰기 동작에서처럼, 세션 키 SeK는 레코더/플레이어(1)와 메모리 카드(40)가 상호 인증된 후 레코더/플레이어(1)와 메모리 카드(40) 사이에서 공유된다.
단계 S21에서, 레코더/플레이어(1)(SET)는 메모리 카드(40)(MEMORY CARD)로부터 데이터를 판독하여 저장 키 Kstm과 함께 암호화된 콘텐츠 키(즉, DES(Kstm,CK))와 암호화된 콘텐츠(원하는 트랙의 부분 데이터 영역(102))를 획득한다. 그런 다음, 레코더/플레이어(1)는 메모리 카드(40)에 저장 키 Kstm과 함께 암호화된 콘텐츠 키 CK를 전송한다.
단계 S22에서, 메모리 카드(40)는 저장 키 Kstm과 함께 콘텐츠키 CK (즉, IDES(Kstm,DES(Kstm,CK))를 해독한다. 단계 S23에서, 메모리 카드(40)는 세션 키 SeK와 함께 해독된 콘텐츠 키를 암호화하고 DES(SeK,CK)를 레코더/플레이어(1)에 전송한다.
단계 S24에서, 레코더/플레이어(1)는 세션 키 SeK와 함께 콘텐츠 키를 해독한다. 단계 S25에서, 레코더/플레이어(1)는 해독된 콘텐츠 키 CK, 부분 키 PK, 블럭 시드 BK_SEED와 함께 블럭 키 BK를 생성한다. 단계 S26에서, 레코더/플레이어(1)는 블럭 유닛으로 블럭 키 BK와 함께 각 암호화된 부분 데이터 영역(102)을 해독한다. 오디오 부호화기/복호화기(7)는 해독된 오디오 데이터를 복호화한다.
도 2에 도시된 인터페이스(11)을 참조로, 도 14는 메모리 카드(40)로부터 판독된 데이터의 타이밍도이다. 상태 0(최초 상태)이 아닌 상태에서, 데이터를 동기화하기 위해 사용된 클럭 신호는 클럭 라인 SCK를 통하여 전송된다. 레코더/플레이어(1)와 메모리 카드(40) 사시에 데이터가 전송 또는 수신되면, 상태 라인 SBS의 신호 레벨은 낮아진다. 최초 조건은 상태 또는 상태0(최초 상태)라고 한다. 타이밍 t31에서, 레코더/플레이어(1)는 상태 라인 SBS의 신호 레벨이 높아지도록(상태1) 한다.
상태 라인 SBS의 신호 레벨이 높아지면, 메모리 카드(40)(S/P 및 P/S IF 블럭(43))는 상태0이 상태1로 변경되었음을 판단한다. 상태1에서, 레코더/플레이어(1)는 데이터 라인 DIO를 통하여 메모리 카드(40)로 판독 명령을 전송한다. 이렇게 하여, 메모리 카드(40)는 판독 명령을 수신한다. 판독 명령은 Transfer Protocol Command (TPC)라고 하는 프로토콜 명령이다. 후에 상세히 설명되겠지만, 프로토콜 명령은 통신의 내용과 그에 따르는 데이터의 길이 지정한다.
타이밍 t32에서, 명령이 전송된 후, 상태 라인 SBS의 신호 레벨은 하이에서 로우로 변경된다. 이렇게 하여, 상태1은 상태2로 변경된다. 상태2에서, 메모리 카드(40)에 의해 수신된 명령에 의해 지정된 과정이 실행된다. 사실상, 판독 명령에 의해 지정된 어드레스의 데이터는 플래쉬 메모리(42)로부터 페이지 버퍼(45)로 판독된다. 과정이 실행되는 동안, 사용중(busy) 신호(하이 레벨)가 데이터 라인 DIO를 통하여 레코더/플레이어(1)에 전송된다.
타이밍 t33에서, 데이터가 플래쉬 메모리(42)로부터 페이지 버퍼(45)로 판독된 후, 사용중 신호의 공급이 중단된다. 메모리 카드(40)이 판독 명령에 따라 데이터를 전송할 준비가 되었음을 나타내는 준비완료(ready) 신호(로우 레벨)가 레코더/플레이어(1)에 출력된다.
레코더/플레이어(1)가 메모리 카드(40)로부터 준비완료 신호를 수신하면, 레코더/플레이어(1)는 메모리 카드(40)가 판독 명령을 처리할 준비가 되었음을 판단한다. 타이밍 t34에서, 레코더/플레이어(1)는 상태 라인 SBS의 신호 레벨이 하이가 되도록 한다. 다시 말하면, 상태2가 상태3으로 변경된다.
상태3에서, 메모리 카드(40)는 페이지 버퍼(45)에 판독된 데이터를 데이터 라인 DIO를 통하여 레코더/플레이어(1)에 출력한다. 타이밍 t35에서, 판독된 데이터가 전송된 후, 레코더/플레이어(1)는 클럭 라인 SCK를 통한 클럭 신호 전송을 중단한다. 또한, 레코더/플레이어(1)는 상태 라인 SBS의 신호 레벨을 하이에서 로우로 변경한다. 이렇게 하여, 상태3은 최초 상태(상태0)으로 변경된다.
타이밍 t36에서처럼 메모리 카드(40)에서의 상태 변경으로 인해 인터럽트 과정이 실행되어야 하는 경우, 메모리 카드(40)는 데이터 라인 DIO를 통하여 레코더/플레이어(1)에 인터럽트 신호를 전송한다. 레코더/플레이어(1)가 상태0의 메모리 카드(40)로부터 데이터 라인 DIO를 통하여 인터럽트 신호를 수신하면, 레코더/플레이어(1)는 신호가 인터럽트 신호임을 판단하고 그 인터럽트 신호에 대응하는 절차를 실행한다.
도 15는 메모리 카드(40)의 플래쉬 메모리(42)에 데이터가 기입되는 동작을 도시한 타이밍도이다. 최초 상태(상태0)에서, 클럭 신호는 클럭 라인 SCK를 통하여 전송되지 않는다. 타이밍 t41에서, 레코더/플레이어(1)는 상태 라인 SBS의 신호 레벨을 로우에서 하이로 변경한다. 이렇게 하여, 상태0은 상태1로 변경된다. 상태1에서, 메모리 카드940)는 명령을 수신할 준비가 완료되었다. 타이밍 t41에서, 데이터 라인 DIO를 통하여 메모리 카드(40)에 쓰기 명령이 전송되며, 메모리 카드(40)는 쓰기 명령을 수신한다.
타이밍 t42에서, 레코더/플레이어(1)는 상태 라인 SBS의 신호 레벨을 하이에서 로우로 변경하도록 한다. 이렇게 하여, 상태1은 상태2로 변경된다. 상태2에서, 레코더/플레이어(1)는 쓰기 데이터를 데이터 라인 DIO를 통하여 메모리 카드(40)에 전송하고 메모리 카드(40)는 수신된 쓰기 데이터를 페이지 버퍼(45)에 저장한다.
타이밍 t43에서, 레코더/플레이어(1)는 상태 라인 SBS의 신호 레벨을 로우에서 하이로 변경하도록 한다. 이렇게 하여, 상태2는 상태3으로 변경된다. 상태3에서, 메모리 카드(40)는 플래쉬 메모리(42)에 쓰기 데이터를 기입하고, 메모리 카드(40)는 데이터 라인 DIO를 통하여 레코더/플레이어(1)에 사용중 신호(하이 레벨)를 전송하며, 레코더/플레이어(1)는 쓰기 명령을 메모리 카드(40)에 전송한다. 현재 상태가 상태3이므로, 레코더/플레이어(1)는 메모리 카드(40)로부터 수신된 신호가 상태 신호라는 것을 판단한다.
타이밍 t4에서, 메모리 카드(40)는 사용중 신호를 출력하는 것을 중지하고 레코더/플레이어(1)에 준비완료 신호(로우 레벨)을 전송한다. 레코더/플레이어(1)가 준비완료 신호를 수신하면, 레코더/플레이어(1)는 쓰기 명령에 대응하는 쓰기 과정이 완료되었음을 판단하고 클럭 신호 전송을 중지한다. 타이밍 t45에서, 레코더/플레이어(1)는 상태 라인 SBS의 신호 레벨을 하이에서 로우로 변경한다. 이렇게 하며, 상태3은 상태0(최초 상태)으로 되돌아간다.
레코더/플레이어(1)가 상태0에서 데이터 라인 DIO를 통하여 메모리 카드(40)로부터 하이 레벨 신호를 수신하면, 레코더/플레이어(1)는 수신된 신호가 인터럽트 신호라는 것을 판단한다. 레코더/플레이어(1)는 수신된 인터럽트 신호에 대응하는 과정을 실행한다. 메모리 카드(40)가 레코더/플레이어(1)로부터 분리되면, 메모리 카드(40)은 인터럽트 신호를 생성한다.
상태 1에서 판독 및 쓰기 과정이외에, 명령이 전송된다. 상태2에서, 명령에 대응하는 데이터가 전송된다.
레코더/플레이어(1)와 메모리 카드(40) 사이에 배치된 직렬 인터페이스는 상기와 같이 인터페이스(11)에 제한되지 않는다. 즉, 다양한 유형의 직렬 인터페이스가 사용된다.
도 16은 직렬 인터페이스의 데이터 라인 DIO를 통하여 전송된 프로토콜 명령(TPC 코드)의 일예를 나타낸 테이블이다. 각 프로토콜 명령의 데이터 길이는 1바이트이다. 도 16에서, 각 프로토콜 명령은 16진법 (접미사h를 가짐)과 10진법으로 표기된다. 또한, 개별 프로토콜 명령의 정의는 비보안형 메모리 카드(40')(도 3)와 보안형 메모리 카드(40)(도 2) 모두에 대해 표시된다. 도 16에서, R과 W는 읽기형 프로토콜 명령과 쓰기형 프로토콜 명령을 각각 나타낸다. 상기한 바와 같이, 명령이 상태1로 전송되며 데이터는 상태2로 전송되므로, 각 프로토콜 명령에 대응하는 데이터 길이(바이트로 나타냄)가 표시된다.
이제, 프로토롤 명령 TPC 각각을 설명할 것이다.
TPC = 2Dh는 종래 플래쉬 메모리로의 접근 명령이다 (이 명령은 간단히 메모리 제어 명령이라고 한다). 이 명령은 페이지 데이터 판독 명령이며 메모리 카드(40,40')에 공용으로 사용된다. 명령에 후속되는 데이터 길이는 1페이지에 대한 데이터 길이이다 (512 바이트 + 2 바이트(CRC)). 페이지 데이터는 페이지 버퍼(45)로부터 판독된다.
TPC = D2h는 메모리 제어 명령이다. 이 명령은 페이지 데이터 쓰기 명령이다. 명령에 후속되는 데이터 길이는 1페이지에 대한 데이터 길이이다 (512 바이트 + 2 바이트(CRC)). 페이지 데이터는 페이지 버퍼(45)에 기입된다.
TPC = 4Bh는 메모리 제어 명령이다. 이 명령은 판독 레지스터(48)에 대한 판독 명령이다. 명령에 후속되는 데이터 길이는 (31 바이트 + 2 바이트(CRC))이다.
TPC = B4h는 메모리 제어 명령이다. 이 명령은 쓰기 레지스터(46)에 대한 쓰기 명령이다. 명령에 후속되는 데이터 길이는 (31 바이트 + 2 바이트(CRC))이다.
TPC = 78h는 메모리 제어 명령이다. 이 명령은 판독 레지스터(48)로부터 1 바이트를 판독하기 위한 명령이다. 명령에 후속되는 데이터 길이는 (1 바이트 + 2 바이트(CRC))이다.
TPC = 87h는 메모리 제어 명령이다. 이 명령은 명령 레지스터(44)의 접근 범위를 가변하기 위한 명령이다. 명령에 후속되는 데이터 길이는 (4 바이트 + 2 바이트(CRC))이다.
TPC = 1Eh는 메모리 카드(40)의 보안 블럭(52)의 상태 레지스터를 위한 데이터 판독 명령이다. 그러나, 이 명령은 메모리 카드(40')에 대하여 정의되지 않는다. 명령에 후속되는 데이터 길이는 (2 바이트 + 2 바이트(CRC))이다. 보안 블럭(52)에 대한 전용 명령은 보안 명령이라고 한다.
TPC = E1h는 메모리 제어 명령이다. 이 명령은 명령 레지스터(44)에 대한 명령 설정 명령이다. 이 명령에 후속되는 명령은 TPC 명령보다 낮은 계층 레벨을 가진다. 그러므로, 이 명령의 데이터 길이는 (1바이트 + 2 바이트(CRC))이다.
TPC = 3Ch는 메모리 카드(40)의 보안 블럭(52)에 대한 보안 데이터 읽기 명령이다. 그러나, 이 명령은 메모리 카드(40')에 대하여 정의되지 않는다. 명령에 후속되는 데이터 길이는 (24 바이트 + 2 바이트(CRC))이다.
TPC = C3h는 메모리 카드(40)의 보안 블럭(52)에 대한 보안 데이터 쓰기 명령이다. 그러나, 이 명령은 메모리 카드(40')에 대하여 정의되지 않는다. 명령에 후속되는 데이터 길이는 (26 바이트 + 2 바이트(CRC))이다.
도 17과 도 18에서, TPC = F1h 명령이 후속되는 명령(1바이트)이 설명된다. 도 17는 비보안형 메모리 카드(40')에 대한 명령을 보여준다. 이들은 아래와 같다.
E1h = AAh: 블럭 읽기 명령
E1h = 55h: 블럭 쓰기 명령
E1h = 33h: 블럭 읽기/쓰기 취소 명령
E1h = 99h: 블럭 소거 명령
E1h = CCh: 메모리 동작 중단 명령
E1h = 5Ah: 전원 절감 모드 명령
E1h = C3h: 페이지 버퍼 지움(클리어) 명령
E1h = 3Ch: 메모리 컨트롤러 리셋 명령
도 18은 보안형 메모리 카드(40)을 위한 명령을 도시한다. 도 18에 도시한 명령(AAh에서 3Ch)의 정의는 도 17에 도시한 정의와 동일하므로 생략된다. 즉, 이러한 명령들은 메모리 카드(40, 40')에 공용으로 정의된 메모리 제어 명령들이다. 도 18에서, 명령들(60h에서 83h)은 메모리 카드(40) 전용의 암호화 과정(암호해독 과정과 인증 과정 포함)을 위한 보안 명령어들이다.
도 17, 도 18에 도시한 바와 같이, 메모리 카드(40, 40')에 공용인 메모리 제어 명령 TPC와 메모리 카드(40) 전용인 보안 명령 TPC가 정의된다. 마찬가지로, 이러한 관계는 낮은 계층 레벨의 명령에도 적용된다. 즉, 낮은 계층 레벨에서, 공통 메모리 제어 명령과 보안 명령이 정의된다. 보안 명령은 메모리 카드(40')에 대해서는 정의되지 않는다 (사용되지 않는다). 실시예에 따르면, S/P 및 P/S IF 블럭(43)이 직렬 인터페이스를 통하여 레코더(1)로부터 명령을 수신하면, 메모리 카드(40)는 수신된 명령 TPC가 공통 메모리 제어 명령 또는 보안 명령인지를 판단한다. 메모리 카드(40)는 후속 데이터를 판단 결과에 대응하는 적절한 회로에 전송한다. 수신된 명령이 예를 들어 다른 명령이 후속되는 TPC=E1h 명령이면, 메모리 카드(40)는 도 18에 도시한 명령을 위한 정의에 대응하는 적절한 회로에 명령을 전송한다.
도 19는 수신된 명령에 대응하여 데이터의 전송을 의도하였던 회로를 선택하기 위한 구성을 도시한다. 이러한 구성은 메모리 카드(40)의 인터페이스 회로(43)내에서 구현된다. 데이터는 데이터 라인 DIO를 통하여 레코더(1)로부터 메모리 카드(40)에 전송된다. 수신된 데이터는 지연 회로(150)를 통하여 스위치 회로(152)의 단말기 "a"에 제공된다. 또한, 수신된 데이터는 검출 회로(151)의 입력 단말기에 제공된다. 검출 회로(151)는 데이터 라인 DIO를 통하여 수신된 프로토콜 명령(TPC)이 메모리 제어 명령 또는 보안 명령인지를 프로토콜 명령의 코드값에 따라 판단한다. 스위치 회로(152)는 판단 결과에 따라 제어된다. 지연 회로(150)는 검출 회로(151)의 검출 시간을 보상한다. 이러한 구조적 소자들은 S/P 및 P/S IF 블럭(43)의 하드웨어 그리고/또는 소프트웨어에 의해 이루어진다. 실시예에 따르면, 메모리 제어 명령에 대하여 사용되지 않은 코드들이 보안 명령에 지정되므로, 검출 회로(151)는 이러한 2가지 유형의 명령을 용이하게 판단할 수 있다.
검출 회로(151)가 수신된 프로토콜 명령이 메모리 제어 명령이라고 판단하면, 스위치 회로(151)의 단말기 "a"는 단말기 "b"에 연결된다. 이렇게 하여, 메모리 제어 명령은 페이지 버퍼(예를 들면, 도 2에 도시되었으나 도 19에서는 생략된 페이지 버퍼(45)), 레지스터(예를 들면, 도 2에 도시된 레지스터(46 또는 48)) 등에 스위치 회로(151)의 단말기 "a"와 "b" 를 통하여 제공되어 플래쉬 메모리(42)를 제어한다. 메모리 제어 명령에 후속되는 데이터는 페이지 버퍼, 레지스터등에 제공된다. 또는, 페이지 버퍼, 레지스터등으로부터 스위치 회로(151)의 단말기 "a"와 "b"를 통하여 레코더(1)로 데이터가 전송된다.
검출 회로(151)가 수신 프로토콜 명령이 보안 명령임을 판단하면, 스위치 회로(151)의 단말기는 스위치 회로(151)의 단말기 "c"에 연결된다. 보안 명령은 스위치 회로(151)의 단말기들 "a" 와 "c"를 통하여 보안 블럭(52)에 제공된다. 보안 명령에 후속되는 데이터는 보안 블럭(52)에 제공된다. 데이터는 스위치 회로(151)의 단말기들 "a"와 "c"를 통하여 보안 블럭(52)으로부터 레코더(1)에 전송된다.
수신된 명령이 프로토콜 명령(TPC = E1h)이면, 정상적인 메모리 제어 명령 또는 보안 명령이 후속된다. 검출 회로(151)가 TPC = E1h 프로토콜 명령을 수신하면, 검출 회로(151)는 명령 다음에 제어 명령 또는 보안 명령이 후속되는 지를 판단한다. 그런 다음, 메모리 카드(40)는 판단 결과에 따라 스위치 회로(151)를 제어한다. 수신된 명령이 명령 TPC = E1h가 아니며 메모리 제어 명령 또는 보안 명령이 후속되는 경우, 메모리 카드(40)는 명령의 코드값에 대응하는 적절한 회로에 데이터를 전송한다.
메모리 카드(40)가 수신된 명령이 메모리 제어 명령 또는 보안 명령인지를 판단하는 기능을 가진 경우, 메모리 카드(40)는 비보안형 레코더를 위해 사용될 수 있다. 즉, 비보안형 레코더는 메모리 카드(40)와 보안 정보를 교환하지 않는다. 비보안형 레코더는 쓰기/읽기 메모리 제어 명령과 그에 대응하는 데이터만을 메모리 카드(40)에 전송한다. 상기와 같이, 메모리 카드(40)는 레코더로부터 수신된 명령이 메모리 제어 명령인지를 판단하고 그에 대응하는 데이터를 플래쉬 메모리(42)에/으로부터 기입/판독한다. 이렇게 하여, 메모리 카드(40)에/으로부터 데이터를 기입/판독한다.
도 20에서, 본 발명의 실시예를 더욱 상세히 설명한다. 도 20은 메모리 카드(40)의 보안 블럭(52)의 구조를 상세히 도시한다. 보안 블럭(52)은 비휘발성 메모리(42), S/P 및 P/S IF 블럭(43), 페이지 버퍼(45)등과 함께 단일 칩 IC의 구조를 가진다. 상기한 바와 같이, S/P 및 P/S IF 블럭(43)과 보안 블럭(52)은 연결된다. 레코더(1)의 보안 블럭(3)의 구조는 도 20의 보안 블럭(52)의 구조와 동일하다.
도 20에서, 참조 번호 110은 키 저장 메모리(비휘발성)를 가진 DES 암호화 회로이다. 암호화 회로(110)와 연결된 레지스터 그룹(111)이 제공된다. 암호화 회로 (110)는 예를 들면, CBC 모드로 암호화 과정을 실행하며 스위치 회로들(112, 113)들 제어하여 피드백 루프를 형성한다. 기입 레지스터(114)의 콘탠츠는 스위치 회로(112)를 통하여 레지스터 그룹(111)에 제공된다. 레지스터 그룹(111)의 콘텐츠는 판독 레지스터(115)에 저장된다.
판독 레지스터(115)는 암호화 회로(110)에서 사용된 레지스터 그룹(111)에 연결된다. 암호화 과정의 중간 산출 결과는 판독 레지스터(115)에 저장된다. 기입 레지스터(114)에 기입된 데이터는 S/P(직렬-병렬) 및 P/S (병렬-직렬) 블럭(116)으로부터 제공된다. 판독 레지스터(115)로부터 판독된 데이터는 S/P 및 P/S 블럭(116)을 통하여 IF 블럭(43)으로 제공된다. 쓰기 데이터는 상기 설명한 직렬 인터페이스를 통하여 레코더(1)로부터 제공된다. 판독된 데이터는 직렬 인터페이스를 통하여 레코더(1)에 제공된다.
보안 블럭(52)은 또한 명령 레지스터(CMD)(117)와 상태 레지스터(STTS)(118)을 포함한다. 도 18에 도시한 보안 명령(60h-83h)은 레코더(1)로부터 메모리 카드(40)로 전송된다. 보안 명령은 IF 블럭(43)과 S/P 및 P/S 블럭(116)을 통하여 명령 레지스터(117)에 저장된다. 명령 레지스터(117)는 후속으로 실행될 명령을 생성한다. 명령 레지스터(117)에 저장된 명령은 판독 레지스터(115)로부터 비밀이 아닌 내용을 외부로 판독되도록 허용하명령이다. 이러한 명령들은 예를 들면 도 18에 도시한 63h, 67h, 6Dh 명령들이다. 이러한 명령들로, 암호화 회로(110)에 의해 암호화된 데이터는 레지스터 그룹(111)에서 판독 레지스터(115)로 전송된다. 비밀이 아닌 데이터의 판독을 허용하는 명령으로, 판독 레지스터(115)는 판독-인에이블된다. 도 20에서, 스위치 회로(122)의 온/오프 상태는 각각 판독 인에이블/디스에이블 상태를 나타낸다.
상태 레지스터(118)에 저장된 상태 정보는 S/P 및 P/S 블럭(116)과 IF 블럭(43)을 통하여 레코더(1)에 전송된다. 보안 블럭(52)은 또한 생성된 명령을 저장하는 명령 레지스터(119)를 가진다. 또한, 보안 블럭(52)은 예를 들면 명령 코드를 증가시키는 증가 블럭(120)을 가진다. 이렇게 하여, 보안 블럭(52)은 연속적으로 명령 코드를 생성한다. 메모리 카드(40)의 전원이 턴온되면 (최초 상태에서), 내부적으로 생성된 명령의 명령 코드는 60h이다. 보안 블럭(52)이 하나의 명령을 실행할 때마다, 증가 블럭(120)은 명령 코드를 "+1" 만큼(61h, 62h, 63h,...71h와 같이) 증가시킨다. 메모리 카드(40)가 레코더(1)에 부착되면, 명령 코드는 60h에서 71h까지 증가하여 메모리 카드(40)를 인증한다. 명령 코드 72h에서 83h는 메모리 카드(40)가 인증된 후 사용된다. 명령 코드 72h에서 83h는 인증 과정에서 사용된 명령에서와는 달리 자유롭게 반복적으로 사용된다.
비교 회로(121)는 두개의 명령 레지스터(117, 119)에 저장된 값을 비교한다. 비교 회로(121)의 비교 결과는 상태 레지스터(118)에 저장된다. 비교 회로(121)가 레코더(1)로부터 수신된 명령(즉, 명령 레지스터(117)의 콘텐츠)이 내부적으로 생성된 명령(즉, 명령 레지스터(119)의 콘텐츠)과 정합된다고 판단하면, 비에러(non-error) 상태가 상태 레지스터(118)에 설정된다. 상태를 나타내는 데이터는 레코더(1)에 전송된다. 이렇게 하여, 레코더(1)의 동작은 계속된다. 비교 회로(121)의 비교 결과가 이러한 명령들이 정합되지 않음을 나타내면, 상태 레지스터(118)에 에러 상태가 설정된다. 상태를 나타내는 데이터는 레코더(1)에 전송된다. 이렇게 하여, 레코더(1)는 동작을 중지한다. 또한, 상태를 나타내는 메시지가 표시된다. 이런 경우, 재설정 동작이 실행되면, 비교 회로(121)는 초기화된다.
실시예에 따르면, 인증 명령은 소정의 순서로만 실행될 수 있다. 그러므로, 판독 레지스터(115)를 인에이블할 수 있는 명령인 63h, 67h, 6Dh등이 암호화 과정의 중간 산출 결과를 불법적으로 판독하기 위해 제공되는 경우에도, 비교 회로(121)의 비교 결과가 부정합을 나타내므로, 레코더(1)의 동작은 중단된다. 이렇게 하여, 암호화 과정의 중간 산출 결과는 불법적으로 판독되지 않는다.
본 발명에 따른 상기 보안 기능이 메모리 유닛(40)의 보안 유닛(52)과 연관되어 설명되었지만, 본 발명이 레코더(1)의 보안 블럭(3)에도 적용될 수 있음에 유의한다. 다시 말하면, 보안 블럭(52)의 일부 특징들은, 특히, 중간 산출 결과를 판독할 수 없도록 하는 기능은 레코더의 보안 블럭(3)에 병합될 수 있다. 또한, DES가 바람직한 암호화 방법으로서 설명되었으나, 다양한 다른 암호화 방법들도 대체 방법으로 사용가능하다.
상기 설명에서, 본 발명의 실시예들은 선행 기술에 대한 이점들을 보여준다. 예를 들면, 암호화 과정을 실행하는 보안 유닛에서, 하나의 레지스터가 암호화 과정의 중간 산출 결과를 저장하는 기능과 암호화된 데이터를 저장하는 부가적 기능을 모두 실행하므로 2개의 레시트터를 사용하지 않아도 된다. 또한, 복수의 암호화 회로를 사용하지 않아도 되므로 보안 유닛의 회로 규모를 줄일 수 있다. 또한, 레지스터는 명령 코드를 이용하여 비밀이 아닌 데이터가 레지스터에 저장된 경우에만 판독-인에이블되므로 데이터를 외부에서 접근할 수 있도록 한다. 즉, 기밀의 내부 산출 결과는 외부 접근을 방지할 수 있다. 이렇게 하여, 기밀 데이터의 보안은 개선된다. 레지스터에 저장된 내용이 판독되도록 허용하는 명령이 수신되어도, 중간 산출 결과는 접근할 수 없다.
아래의 청구항들은 여기에 설명된 본 발명의 포괄적이고 특정한 특징들을 모두 포함하며 발명의 범위에 대한 설명도 그에 해당된다.

Claims (18)

  1. 보안 유닛으로서,
    상기 보안 유닛에 의해 수신된 외부 생성된 명령들의 소정의 순서에 따라 데이터를 암호화하는 암호화 수단과,
    상기 암호화의 최종 결과를 저장하는 저장 수단과,
    상기 저장 수단에 동작가능하게 결합되어, 상기 저장 수단의 콘텐츠를 선택적으로 출력하는 스위칭 수단을 포함하고,
    상기 스위칭 수단은 상기 저장 수단에 저장된 상기 암호화 과정의 중간 결과로의 외부 접근을 방지하도록 제어되는 보안 유닛.
  2. 제 1 항에 있어서,
    상기 보안 유닛에 의해 수신된 외부적으로 생성된 명령을 저장하기 위한 제2 저장 수단을 더 포함하고,
    상기 스위칭 수단은 상기 제2 저장 수단에 저장된 명령에 따라 상기 암호화의 결과로의 접근을 방지하도록 제어되는 보안 유닛.
  3. 제 1 항에 있어서,
    상기 명령이 상기 소정의 순서대로 수신되었는지 여부를 검출하는 검출 수단을 더 포함하는 보안 유닛.
  4. 제 1 항에 있어서,
    상기 소정의 순서대로 명령을 생성하는 명령 생성 수단과,
    외부적으로 생성된 명령을 상기 명령 생성 수단에 의해 생성된 명령과 비교하는 비교 수단을 더 포함하고,
    상기 비교된 명령들이 서로 일치하지 않는 경우, 상기 보안 유닛은 에러 신호를 출력하는 보안 유닛.
  5. 보안 유닛의 외부로부터 소정의 순서로 수신된 명령에 따라 데이터를 암호화하기 위해 비휘발성 메모리와 보안 유닛을 포함하며, 상기 암호화된 데이터는 상기 비휘발성 메모리에 저장되는 메모리 유닛으로서,
    상기 보안 유닛은,
    상기 암호화의 최종 결과를 저장하는 저장 수단과,
    상기 저장 수단에 동작가능하게 결합되어, 상기 저장 수단의 콘텐츠를 선택적으로 출력하는 스위칭 수단을 포함하고,
    상기 스위칭 수단은 상기 저장 수단에 저장된 상기 암호화 과정의 중간 결과로의 외부 접근을 방지하도록 제어되는 메모리 유닛.
  6. 제 5 항에 있어서,
    상기 보안 유닛은 상기 보안 유닛에 의해 수신된 외부적으로 생성된 명령을 저장하기 위한 제2 저장 수단을 더 포함하고,
    상기 스위칭 수단은 상기 제2 저장 수단에 저장된 명령에 따라 상기 암호화의 결과로의 접근을 방지하도록 제어되는 메모리 유닛.
  7. 제 5 항에 있어서,
    상기 보안 유닛은 상기 명령이 상기 소정의 순서대로 수신되었는지 여부를 검출하는 검출 수단을 더 포함하는 메모리 유닛.
  8. 제 5 항에 있어서,
    상기 보안 유닛은,
    상기 소정의 순서대로 명령을 생성하는 명령 생성 수단과,
    상기 보안 유닛에 의해 수신된 명령을 상기 명령 생성 수단에 의해 생성된 명령과 비교하는 비교 수단을 더 포함하고,
    상기 비교된 명령들이 서로 일치하지 않는 경우, 상기 보안 유닛은 에러 신호를 출력하는 메모리 유닛.
  9. 제 5 항에 있어서,
    상기 비휘발성 메모리와 상기 보안 유닛에 연결되어, 상기 메모리 유닛에 제공된 외부 데이터를 수신하고 상기 외부 데이터를 상기 비휘발성 메모리 또는 상기 보안 유닛에 선택적으로 제공하는 인터페이스 수단을 더 포함하는 메모리 유닛.
  10. 제 9 항에 있어서,
    상기 인터페이스 수단은 상기 메모리 유닛에 제공된 외부 명령을 수신하고 상기 외부 명령에 따라 상기 비휘발성 메모리 또는 상기 보안 유닛에 데이터를 제공하는 메모리 유닛.
  11. 소정의 순서로 수신된 명령에 따라 데이터를 암호화하는 방법으로서,
    저장 수단에 상기 암호화의 최종 결과를 저장하는 단계와,
    상기 저장 수단에 저장된 상기 암호화의 중간 결과에 대한 접근을 방지하는 단계를 포함하는 데이터 암호화 방법.
  12. 제 11 항에 있어서,
    수신된 명령에 대응하여 상기 암호화의 최종 결과를 출력하지 못하도록 하는 단계를 더 포함하는 데이터 암호화 방법.
  13. 제 11 항에 있어서,
    상기 명령이 상기 소정의 순서로 수신되었는지 여부를 검출하는 단계를 더 포함하는 데이터 암호화 방법.
  14. 제 11 항에 있어서,
    상기 소정의 순서로 명령을 생성하는 단계와,
    소정의 순서로 수신된 명령과 상기 생성된 명령을 비교하는 단계와,
    그렇게 비교된 명령들이 일치하지 않는 경우에 에러 신호를 출력하는 단계를 더 포함하는 데이터 암호화 방법.
  15. 제 11 항에 있어서,
    상기 저장 수단은 단일 레지스터(register)인 데이터 암호화 방법.
  16. 보안 유닛으로서,
    상기 보안 유닛에 의해 수신된 명령에 따라 데이터를 암호화하는 암호화 유닛과,
    상기 데이터 암호화의 중간 결과와 최종 결과 모두를 저장하는 공통 레지스터와,
    상기 레지스터에 동작가능하게 결합되어, 상기 레지스터의 콘텐츠를 선택적으로 출력하는 스위칭 소자를 포함하고,
    상기 스위칭 소자는 암호화의 상기 중간 결과에 대한 외부 접근을 방지하도록 제어되는 보안 유닛.
  17. 수신된 명령에 따라 데이터를 암호화하기 위해 비휘발성 메모리와 보안 유닛을 포함하는 메모리 유닛으로서,
    상기 암호화된 데이터는 상기 비휘발성 메모리에 저장되고, 상기 보안 유닛은,
    상기 데이터 암호화의 중간 결과와 최종 결과 모두를 저장하는 공통 레지스터와,
    상기 레지스터에 동작가능하게 결합되어, 상기 레지스터의 콘텐츠를 선택적으로 출력하는 스위칭 소자를 포함하고,
    상기 스위칭 소자는 암호화의 상기 중간 결과에 대한 외부 접근을 방지하도록 제어되는 메모리 유닛.
  18. 보안 유닛을 포함하는 데이터 처리 유닛으로서, 상기 보안 유닛은,
    상기 보안 유닛에 의해 수신된 명령에 따라 데이터를 암호화하는 암호화 유닛과,
    상기 데이터 암호화의 중간 결과와 최종 결과 모두를 저장하는 공통 레지스터와,
    상기 레지스터에 동작가능하게 결합되어, 상기 레지스터의 콘텐츠를 선택적으로 출력하는 스위칭 소자를 포함하고,
    상기 스위칭 소자는 암호화의 상기 중간 결과에 대한 외부 접근을 방지하도록 제어되는 데이터 처리 유닛.
KR1020000018211A 1999-04-07 2000-04-07 메모리 카드용 보안 유닛 KR100710603B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP99-099947 1999-04-07
JP9994799 1999-04-07
JP99-178188 1999-06-24
JP17818899 1999-06-24

Publications (2)

Publication Number Publication Date
KR20010006968A true KR20010006968A (ko) 2001-01-26
KR100710603B1 KR100710603B1 (ko) 2007-04-24

Family

ID=26441035

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000018211A KR100710603B1 (ko) 1999-04-07 2000-04-07 메모리 카드용 보안 유닛

Country Status (6)

Country Link
US (2) US6820203B1 (ko)
EP (1) EP1043860B1 (ko)
KR (1) KR100710603B1 (ko)
CN (1) CN1197374C (ko)
DE (1) DE60038919D1 (ko)
MY (1) MY128617A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100503588B1 (ko) * 2001-02-07 2005-07-26 가부시키가이샤 히타치세이사쿠쇼 불휘발성 메모리를 갖는 기록 장치
KR100910432B1 (ko) * 2001-03-16 2009-08-04 콸콤 인코포레이티드 무선 통신 장치용 보안 처리 및 데이터 저장을 제공하는 방법 및 장치
KR20140022869A (ko) * 2011-04-05 2014-02-25 인트린직 아이디 비브이 메모리 시동 노이즈에 기초한 랜덤 번호 생성 시스템

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW490611B (en) * 2000-03-31 2002-06-11 Jian-Tsz Hou Encryption and decryption memory and access control method
FR2810139B1 (fr) * 2000-06-08 2002-08-23 Bull Cp8 Procede de securisation de la phase de pre-initialisation d'un systeme embarque a puce electronique, notamment d'une carte a puce, et systeme embarque mettant en oeuvre le procede
US7958376B2 (en) * 2000-11-02 2011-06-07 Ati Technologies Ulc Write once system and method for facilitating digital encrypted transmissions
US20020066017A1 (en) * 2000-11-28 2002-05-30 Multiscience System Pte Ltd. Security systems for internet transactions and method of use
US8522041B2 (en) * 2000-12-07 2013-08-27 Sony Corporation System and method for efficiently performing a data encryption operation
DE10110049A1 (de) * 2001-03-02 2002-09-05 Bosch Gmbh Robert Verfahren und Vorrichtung zur Datenverschlüsselung bei der Programmierung von Steuergeräten
DE10113531A1 (de) * 2001-03-20 2002-10-17 Infineon Technologies Ag Datenträger
KR100555003B1 (ko) * 2001-06-04 2006-02-24 가부시끼가이샤 르네사스 테크놀로지 기억 장치
GB0123417D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
JPWO2003065225A1 (ja) * 2002-01-31 2005-05-26 松下電器産業株式会社 メモリデバイス、端末装置及びデータ修復システム
JP2003242470A (ja) * 2002-02-21 2003-08-29 Sony Corp 外部接続機器及びホスト機器
JP4326186B2 (ja) * 2002-04-15 2009-09-02 ソニー株式会社 情報処理装置および方法
US20030226029A1 (en) * 2002-05-29 2003-12-04 Porter Allen J.C. System for protecting security registers and method thereof
US7802108B1 (en) * 2002-07-18 2010-09-21 Nvidia Corporation Secure storage of program code for an embedded system
JP4600042B2 (ja) * 2002-12-06 2010-12-15 ソニー株式会社 記録再生装置およびデータ処理装置
US7085155B2 (en) * 2003-03-10 2006-08-01 Energy Conversion Devices, Inc. Secured phase-change devices
US20040254662A1 (en) * 2003-05-27 2004-12-16 Cook, Charles H. Encoded system for recording music and the like
KR20040104778A (ko) * 2003-06-04 2004-12-13 삼성전자주식회사 스마트카드를 이용한 장치 인증을 통해 홈 도메인을구성하는 방법, 및 홈 도메인 구성을 위한 스마트카드
GB2404489A (en) 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium content
GB2404487A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium content
US7549044B2 (en) * 2003-10-28 2009-06-16 Dphi Acquisitions, Inc. Block-level storage device with content security
JP2006023957A (ja) * 2004-07-07 2006-01-26 Sony Corp 半導体集積回路及び情報処理装置
JPWO2006006387A1 (ja) * 2004-07-08 2008-04-24 松下電器産業株式会社 ホスト機器、記憶装置、及び記憶装置へのアクセス方法
FR2874144A1 (fr) * 2004-08-03 2006-02-10 France Telecom Procede d'authentification anonyme base sur un algorithme cryptographique de type asymetrique
US7890769B2 (en) * 2004-08-04 2011-02-15 Broadcom Corporation System and method for secure code downloading
EP1626579A1 (en) * 2004-08-11 2006-02-15 Thomson Licensing Device pairing
EP1640844A1 (en) 2004-09-27 2006-03-29 STMicroelectronics Limited Secure OTP using external memory
EP1650646A3 (en) * 2004-10-22 2008-11-19 Quantum Corporation Data storage system for storing data in different types of data storage media
US7409623B2 (en) * 2004-11-04 2008-08-05 Sigmatel, Inc. System and method of reading non-volatile computer memory
US20060099991A1 (en) * 2004-11-10 2006-05-11 Intel Corporation Method and apparatus for detecting and protecting a credential card
KR20060067584A (ko) * 2004-12-15 2006-06-20 삼성전자주식회사 해킹 방지 기능이 있는 스마트 카드
CN101107808B (zh) * 2005-01-24 2011-01-26 松下电器产业株式会社 署名生成装置及署名验证装置
FR2881900B1 (fr) * 2005-02-09 2007-04-27 Algoril Holding Sa Procede de cryptographie de messages a cle privee, et application a une installation
CA2605879C (en) 2005-05-09 2012-07-17 United Parcel Service Of America, Inc. Systems and methods for routing and scheduling
US9171187B2 (en) * 2005-05-13 2015-10-27 Nokia Technologies Oy Implementation of an integrity-protected secure storage
US20070022243A1 (en) * 2005-07-22 2007-01-25 John Rudelic Method and apparatus capable of disabling authenticated operations and guaranteed secure boot in a wireless platform
JP4361894B2 (ja) * 2005-09-15 2009-11-11 株式会社エヌ・ティ・ティ・ドコモ 外部メモリ管理装置、及び外部メモリ管理方法
US20090080647A1 (en) * 2005-12-14 2009-03-26 Nds Limited Method and System for Usage of Block Cipher Encryption
DE102005062429A1 (de) * 2005-12-23 2007-07-19 Mathias Brosz Verfahren und Vorrichtung zum Verarbeiten von Daten
KR100750153B1 (ko) * 2006-01-03 2007-08-21 삼성전자주식회사 Wusb 보안을 위한 세션 키를 제공하는 방법 및 장치,이 세션 키를 획득하는 방법 및 장치
KR101197556B1 (ko) * 2006-01-09 2012-11-09 삼성전자주식회사 불 휘발성 메모리의 프로그램 동작을 검증하는 장치 및방법, 그리고 그 장치를 포함한 메모리 카드
KR100745603B1 (ko) * 2006-02-08 2007-08-02 삼성전자주식회사 보안 멀티미디어 카드 및 그것을 포함하는 메모리 카드시스템
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
IL187043A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Secure pipeline manager
CN101335755B (zh) * 2008-05-19 2012-07-04 北京深思洛克软件技术股份有限公司 一种利用声音信息提高信息安全设备验证安全性的方法
US8484486B2 (en) * 2008-08-06 2013-07-09 Silver Spring Networks, Inc. Integrated cryptographic security module for a network node
US8762708B2 (en) 2008-10-11 2014-06-24 David L. Blankenbeckler Secure content distribution system
JP5178839B2 (ja) 2009-11-27 2013-04-10 株式会社東芝 メモリチップ
US8589667B2 (en) * 2010-04-19 2013-11-19 Apple Inc. Booting and configuring a subsystem securely from non-local storage
US20120246713A1 (en) * 2011-03-24 2012-09-27 Cheng-Hsiung Liao Method and apparatus for controlling access of a secure digital memory card
US20140245021A1 (en) * 2013-02-27 2014-08-28 Kabushiki Kaisha Toshiba Storage system in which fictitious information is prevented
WO2018060769A1 (en) * 2016-09-28 2018-04-05 Nanolock Security Inc. Access control for integrated circuit devices
US10372625B2 (en) * 2016-12-27 2019-08-06 Intel Corporation Secure memory

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2459595A1 (fr) * 1979-06-15 1981-01-09 Telediffusion Fse Systeme de television a controle d'acces utilisant une cle electronique variable
DE3318083A1 (de) * 1983-05-18 1984-11-22 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung mit einem speicher und einer zugriffskontrolleinheit
FR2686171B1 (fr) * 1992-01-14 1996-09-06 Gemplus Card Int Carte a memoire de masse pour microordinateur avec facilites d'execution de programmes internes.
FR2686170B1 (fr) * 1992-01-14 1996-09-06 Gemplus Card Int Carte a memoire de masse pour microordinateur.
JPH06103748A (ja) * 1992-09-16 1994-04-15 Mitsubishi Electric Corp Icメモリカードの電源制御回路
JP3329496B2 (ja) * 1992-11-04 2002-09-30 富士通株式会社 Icカード
JPH06243046A (ja) * 1993-02-19 1994-09-02 Sansei Denshi Japan Kk 情報保護方法及び情報メディア
US5914471A (en) * 1993-07-20 1999-06-22 Koninklijke Ptt Nederland N.V. Method and apparatus for recording usage data of card operated devices
US5442704A (en) 1994-01-14 1995-08-15 Bull Nh Information Systems Inc. Secure memory card with programmed controlled security access control
US5467398A (en) * 1994-07-05 1995-11-14 Motorola, Inc. Method of messaging in a communication system
AU6502896A (en) * 1995-07-20 1997-02-18 Dallas Semiconductor Corporation Single chip microprocessor, math co-processor, random number generator, real-time clock and ram having a one-wire interface
US5758068A (en) * 1995-09-19 1998-05-26 International Business Machines Corporation Method and apparatus for software license management
JP3088337B2 (ja) 1997-05-30 2000-09-18 三菱電機株式会社 暗号処理装置、icカード及び暗号処理方法
JPH113284A (ja) * 1997-06-10 1999-01-06 Mitsubishi Electric Corp 情報記憶媒体およびそのセキュリティ方法
US6307940B1 (en) * 1997-06-25 2001-10-23 Canon Kabushiki Kaisha Communication network for encrypting/deciphering communication text while updating encryption key, a communication terminal thereof, and a communication method thereof
CA2303297C (en) * 1997-09-16 2008-11-25 Information Resource Engineering, Inc. Cryptographic co-processor
KR100279522B1 (ko) * 1997-11-20 2001-03-02 니시무로 타이죠 카피 방지장치 및 이와 같은 카피 방지장치에 사용되는 정보 기록매체
DE19804784A1 (de) * 1998-02-06 1999-08-12 Philips Patentverwaltung Chipkarte mit integrierter Schaltung
US6848050B1 (en) * 1998-04-16 2005-01-25 Citicorp Development Center, Inc. System and method for alternative encryption techniques
CN100426263C (zh) * 1998-10-16 2008-10-15 松下电器产业株式会社 记录媒体装置和存取装置
US6178506B1 (en) * 1998-10-23 2001-01-23 Qualcomm Inc. Wireless subscription portability
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
US6496808B1 (en) * 1998-12-22 2002-12-17 At&T Corp. Using smartcards to enable probabilistic transaction on an untrusted device
US6367019B1 (en) * 1999-03-26 2002-04-02 Liquid Audio, Inc. Copy security for portable music players
TW526643B (en) * 1999-05-20 2003-04-01 Ind Tech Res Inst Data access control system and method
US6799272B1 (en) * 1999-05-26 2004-09-28 Lucent Technologies Inc. Remote device authentication system
US6920221B1 (en) * 1999-08-29 2005-07-19 Intel Corporation Method and apparatus for protected exchange of status and secret values between a video source application and a video hardware interface
US6477252B1 (en) * 1999-08-29 2002-11-05 Intel Corporation Digital video content transmission ciphering and deciphering method and apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100503588B1 (ko) * 2001-02-07 2005-07-26 가부시키가이샤 히타치세이사쿠쇼 불휘발성 메모리를 갖는 기록 장치
KR100910432B1 (ko) * 2001-03-16 2009-08-04 콸콤 인코포레이티드 무선 통신 장치용 보안 처리 및 데이터 저장을 제공하는 방법 및 장치
KR20140022869A (ko) * 2011-04-05 2014-02-25 인트린직 아이디 비브이 메모리 시동 노이즈에 기초한 랜덤 번호 생성 시스템

Also Published As

Publication number Publication date
KR100710603B1 (ko) 2007-04-24
EP1043860B1 (en) 2008-05-21
DE60038919D1 (de) 2008-07-03
EP1043860A2 (en) 2000-10-11
US7124436B2 (en) 2006-10-17
MY128617A (en) 2007-02-28
CN1272027A (zh) 2000-11-01
US20050060540A1 (en) 2005-03-17
US6820203B1 (en) 2004-11-16
CN1197374C (zh) 2005-04-13
EP1043860A3 (en) 2005-09-14

Similar Documents

Publication Publication Date Title
KR100710603B1 (ko) 메모리 카드용 보안 유닛
EP1050821B1 (en) Memory units, data processing units, and methods therefor
KR100644736B1 (ko) 메모리 유닛, 데이터 처리 유닛 및 데이터 처리 방법
US8607069B2 (en) Data processing apparatus, data processing method, terminal unit, and transmission method of data processing apparatus
US6404676B2 (en) Nonvolatile memory and nonvolatile memory reproducing apparatus
US6691149B1 (en) System for distributing music data files between a server and a client and returning the music data files back to the previous locations
US7082256B2 (en) Recording medium editing apparatus based on content supply source
US7155013B2 (en) Recording apparatus, recording method, reproducing apparatus, and reproducing method
US20060095381A1 (en) Reproducing apparatus and reproducing method
US7673153B1 (en) Data processing method, apparatus and system for encrypted data transfer
KR100729546B1 (ko) 편집 장치, 편집 방법 및 비휘발성 메모리
JP2001077805A (ja) セキュリティ装置、メモリ装置、データ処理装置および方法
JP3882460B2 (ja) メモリ装置、データ処理装置、データ処理システムおよびデータ処理方法
JP3882459B2 (ja) メモリ装置、データ処理装置、データ処理システムおよびデータ処理方法
JP4300643B2 (ja) 著作権対応携帯端末、著作権非対応携帯端末
KR100727799B1 (ko) 재생 장치 및 재생 방법
ZA200006274B (en) Data processing apparatus, data processing method, terminal unit, and transmission method of data processing apparatus.

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130405

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140404

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee