KR100710603B1 - 메모리 카드용 보안 유닛 - Google Patents
메모리 카드용 보안 유닛 Download PDFInfo
- Publication number
- KR100710603B1 KR100710603B1 KR1020000018211A KR20000018211A KR100710603B1 KR 100710603 B1 KR100710603 B1 KR 100710603B1 KR 1020000018211 A KR1020000018211 A KR 1020000018211A KR 20000018211 A KR20000018211 A KR 20000018211A KR 100710603 B1 KR100710603 B1 KR 100710603B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- memory card
- encryption
- recorder
- security unit
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 145
- 238000000034 method Methods 0.000 claims description 81
- 230000008569 process Effects 0.000 claims description 55
- 238000012545 processing Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 7
- 238000013478 data encryption standard Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 21
- 238000007726 management method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 230000005236 sound signal Effects 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 10
- 238000012937 correction Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 238000013519 translation Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 229920006344 thermoplastic copolyester Polymers 0.000 description 2
- 102100029768 Histone-lysine N-methyltransferase SETD1A Human genes 0.000 description 1
- 101000865038 Homo sapiens Histone-lysine N-methyltransferase SETD1A Proteins 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04K—SECRET COMMUNICATION; JAMMING OF COMMUNICATION
- H04K1/00—Secret communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/101—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
- G06F21/1014—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits 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/00217—Circuits 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/00253—Circuits 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits 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/00485—Circuits 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/00492—Circuits 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/00507—Circuits 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/20—Initialising; Data preset; Chip identification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2137—Time limited access, e.g. to a computer or data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/16—Solid 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)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 데이터의 허가되지 않은 검색을 방지하는 보안 유닛에 관한 것으로, 이 보안 유닛은 보안 유닛에 의해 수신된 명령들에 따라 데이터를 암호화하는 암호화 유닛과, 데이터 암호화의 중간 결과들 및 최종 결과들 모두를 저장하는 공통 레지스터를 포함한다. 공통 레지스터에 동작 가능하게 결합된 스위칭 소자는 공통 레지스터의 콘텐츠를 선택적으로 출력한다. 스위칭 소자는 암호화의 중간 결과들에 대한 외부 액세스를 방지하도록 제어된다. 이러한 보안 유닛은 디지털 오디오 레코더/플레이어와 같은 기록/재생 장치에 부착 가능한 메모리 유닛의 일부로서 특히 유용하다.
보안 유닛, 메모리 유닛, 공통 레지스터, 데이터 암호화, 스위칭 소자
Description
도 1은 본 발명의 실시예에 따른 레코더/플레이어와 메모리 카드의 전체적인 구성을 도시한 도면.
도 2는 본 발명의 실시예에 따른 보안형 메모리 카드의 내부 구조를 도시한 도면.
도 3은 본 발명의 실시예에 따른 비보안형 메모리 카드의 내부 구조를 도시한 도면.
도 4는 본 발명의 실시예에 따른 플래시 메모리의 파일 시스템 처리 계층의 구조를 도시한 도면.
도 5는 플래시 메모리의 물리적 데이터 구조의 포맷을 도시한 도면.
도 6은 플래시 메모리의 부트 블럭(boot block)의 구조를 도시한 도면.
도 7은 플래시 메모리의 부트 블럭의 부트 및 속성 정보의 구조를 도시한 도면.
도 8a와 8b는 콘텐츠와 키 사이의 관계를 도시한 도면.
도 9는 기록 동작에서 암호화 과정을 설명하기 위해 참조될 도면.
도 10은 인증 과정을 설명하기 위해 참조될 도면.
도 11은 기록 동작에서 암호화 과정을 설명하기 위해 참조될 도면.
도 12는 재생 동작에서 암호화 과정을 설명하기 위해 참조될 도면.
도 13은 재생 동작에서 암호 해독 과정을 설명하기 위해 참조될 도면.
도 14는 레코더와 메모리 카드 사이에 배치된 인터페이스의 동작을 설명하기 위해 참조될 도면.
도 15는 레코더와 메모리 카드 사이에 배치된 인터페이스의 동작을 설명하기 위해 참조될 도면.
도 16은 본 발명의 실시예에서 사용되는 프로토콜 명령의 예를 나타낸 표.
도 17 및 도 18은 본 발명의 실시예에서 사용되는 명령을 나타낸 표.
도 19는 본 발명에 따른 메모리 유닛의 개략적 블럭도.
도 20은 본 발명에 따른 보안 블럭의 구조를 도시한 개략적 블럭도.
* 도면의 주요 부분에 대한 부호의 설명 *
1 : 레코더/플레이어 2 : 중앙처리장치(CPU)
3 : 보안 블럭 4 : 동작 버튼
5 : 디스플레이 장치
기술 분야
본 발명은 일반적으로, 메모리 또는 데이터 처리 유닛들에 저장된 데이터의 허가되지 않은 검색을 방지하기 위하여 메모리 유닛 및/또는 데이터 처리 유닛에 사용되는 보안 유닛에 관한 것이다.
본 발명은 일반적으로, 메모리 또는 데이터 처리 유닛들에 저장된 데이터의 허가되지 않은 검색을 방지하기 위하여 메모리 유닛 및/또는 데이터 처리 유닛에 사용되는 보안 유닛에 관한 것이다.
종래 기술
EEPROM(Electrically Erasable Programmable ROM)과 같은 종래의 비휘발성 메모리에서는, 1비트의 정보를 저장하기 위하여 두 개의 트랜지스터가 사용된다. 그 결과, 비트당 메모리 영역은 커지며, 이로 인해 메모리를 통합하는 기능이 제한된다. 한편, 이러한 문제점은 "모든 비트 동시 소거(all-bit-simultaneous-erase)" 방법에 따라 단일 트랜지스터를 이용하여 1비트가 저장되는 최근 개발된 플래시 메모리에서 해결되었다. 멀지 않은 미래에, 플래시 메모리들이 많은 응용에서 자기 디스크 및 광 디스크와 같은 종래의 기록 매체를 대체할 것으로 예상된다.
EEPROM(Electrically Erasable Programmable ROM)과 같은 종래의 비휘발성 메모리에서는, 1비트의 정보를 저장하기 위하여 두 개의 트랜지스터가 사용된다. 그 결과, 비트당 메모리 영역은 커지며, 이로 인해 메모리를 통합하는 기능이 제한된다. 한편, 이러한 문제점은 "모든 비트 동시 소거(all-bit-simultaneous-erase)" 방법에 따라 단일 트랜지스터를 이용하여 1비트가 저장되는 최근 개발된 플래시 메모리에서 해결되었다. 멀지 않은 미래에, 플래시 메모리들이 많은 응용에서 자기 디스크 및 광 디스크와 같은 종래의 기록 매체를 대체할 것으로 예상된다.
카드 판독/기록 유닛에 부착 가능하고 그로부터 분리 가능한 플래시 메모리-기반 메모리 카드들 또는 "메모리 스틱(memory sticksTM)"은 공지되어 있다. 이러한 유형의 메모리 카드가 등장함에 따라, 디지털 오디오 기록/재생 유닛들이 개발되어, CD(콤팩트 디스크) 또는 미니-디스크와 같은 종래의 디스크형 매체 대신에 메모리 카드를 사용하게 되었다.
메모리 카드를 기록 매체로서 사용하는 오디오 레코더는 통상적으로 기록/재생을 위하여 상대적으로 높은 품질로 데이터를 복원하도록 하는 데이터 압축 방법을 이용한다. 암호화 방법은 이러한 오디오 레코더에서 기록되고 재생되는 뮤직 타이틀들의 저작권을 보호하기 위하여 구현될 수 있다. 예를 들면, 오디오 레코더는 메모리 카드가 무효한지, 그리하여 레코더와 함께 사용되는 것이 금지되는지를 암호화 기술을 통하여 판단하도록 설계될 수 있다. 다시 말하면, 유효 레코더와 유효 메모리 카드를 조합하여 암호화된 데이터를 해독할 수 있다. 암호화 기술은 저작권 보호뿐만 아니라 메모리 카드에 저장된 다른 정보의 보안을 보호하기 위해 사용될 수 있다.
종래의 메모리 카드는 암호화 기능을 포함하지 않는다. 그러므로 이러한 메모리 카드에 기밀 데이터를 기록하고자 할 때, 카드가 삽입되며 기록을 위한 데이터를 설정하는 "세트" 측, 즉, 장치 ("세트") 상에서 데이터가 암호화된다. 그런 다음, 암호화된 데이터는 저장을 위해 메모리 카드에 전송된다. 해독 키가 또한 메모리 카드에 저장된 경우, 카드의 데이터 보안이 위태롭다. 한편, 해독 키가 특정 세트에 저장되면, 그 세트에 의해 원래 암호화되고 메모리 카드상에 기록된 데이터는 그 특정 세트 이외의 세트들에 의해 해독될 수 없다. 그러므로 메모리 카드들의 호환성은 유지될 수 없다. 이러한 문제를 해결하기 위하여, 세트와 메모리 카드 각각이 암호화 기능을 가진 시스템이 제안되어, 세트와 메모리 카드가 상호 인증되도록 하였다. 이러한 경우의 메모리 카드는 데이터 암호화를 실행하는 처리 회로를 가진 "스마트 카드"로 간주될 수 있다. 이러한 방식으로, 카드들의 보안과 호환성 모두를 유지할 수 있다.
상기와 같은 인증 및 암호화 기능들을 가진 보안 유닛은 데이터 암호화 표준(Data Encryption Standard: DES)에 따라 암호화할 수 있다. DES는, 텍스트를 블럭으로 세그멘트화하고 각 블럭 세그먼트를 암호화하는 블럭 암호화 시스템이다. DES를 이용하여, 64비트의 입력 데이터가 64비트의 키(사실상, 56비트의 키와 8비트의 패리티)로 암호화되며 64비트의 암호화된 데이터가 출력된다. DES는 4가지 용도의 모드를 가지며, 그중 하나는 암호 블럭 체인화(Cipher Block Chaining) 모드이다. CBC 모드는 64비트의 텍스트와 선행 암호화 데이터(64비트)가 XOR되어 그 결과가 DES 유닛에 입력되는 피드백 형의 모드이다. 초기 상태에서, 암호화된 데이터가 없으므로, 초기화 벡터가 사용된다. 또한, 세트와 메모리 카드 사이에서 데이터가 교환되므로, 랜덤 넘버들(random numbers)이 생성되어 데이터에 부가될 수 있다.
메모리 카드가 내부 보안 유닛을 가질 때, 세트는 메모리 카드에 명령을 전송할 수 있고, 메모리 카드는 암호화 키를 포함한 데이터를 반송함으로써 이에 응답할 수 있고, 따라서 세트와 카드를 상호 인증한다. 메모리 카드의 암호화 회로는 레지스터(register)를 가지며, 레지스터의 콘텐츠는 세트에 의해 발행된 명령에 응답하여 세트에 전송된다. 암호화 과정의 중간 산출 결과들을 저장하는 또 다른 레지스터가 요구될 수 있다. 예를 들면, 단 하나의 암호화 회로가 존재하는 경우, 암호화 과정이 여러 번 실행될 때, 암호화 과정의 중간 산출 결과를 저장하기 위하여 레지스터가 제공된다. 이러한 레지스터는 외부 액세스가 금지되어 있다. 중간 산출 결과는 암호화된 데이터를 해독하기 위해 사용된다.
따라서, 내부 보안 유닛을 가진 메모리 카드에는 두 가지 유형의 레지스터가 제공된다: 즉, 명령에 응답하여 세트에 전송될 데이터를 저장하는 액세스 가능 레지스터와; 암호화 과정의 중간 산출 결과를 저장하는 액세스 불가 레지스터가 제공된다. 따라서, 2개의 레지스터로 인하여, 보안 유닛의 회로 규모는 커진다. 이는, IC 칩으로 구성된 보안 유닛의 집적을 증가시키는 기능을 방해한다. 암호화 과정이 여러 번 수행되는 경우, 데이터를 임시로 저장하는 레지스터를 제거하기 위하여, 복수의 암호화 회로를 사용하여 최종 데이터(암호화된 데이터)를 거의 동시에 획득해야 한다. 따라서, 이런 경우, 회로 규모가 또한 커진다.
삭제
삭제
따라서, 본 발명의 목적은 보안을 작은 회로 규모로 유지할 수 있는 보안 유닛을 제공하는 것이다.
본 발명의 다른 목적은 작은 회로 규모를 가진 보안 유닛을 포함한 메모리 유닛을 제공하는 것이다.
본 발명의 예시적 실시예에서, 보안 유닛은 보안 유닛에 의해 수신된 명령들에 따라 데이터를 암호화하는 암호화 유닛과, 데이터 암호화의 중간 결과들 및 최종 결과들 모두를 저장하는 공통 레지스터를 포함한다. 공통 레지스터에 동작 가능하게 결합된 스위칭 소자는 공통 레지스터의 콘텐츠를 선택적으로 출력한다. 스위칭 소자는 암호화의 중간 결과들에 대한 외부 액세스를 방지하도록 제어된다. 이러한 보안 유닛은 디지털 오디오 레코더/플레이어와 같은 기록/재생 장치에 부착 가능한 메모리 유닛의 일부로서 특히 유용하다.
본 발명의 다른 목적은 작은 회로 규모를 가진 보안 유닛을 포함한 메모리 유닛을 제공하는 것이다.
본 발명의 예시적 실시예에서, 보안 유닛은 보안 유닛에 의해 수신된 명령들에 따라 데이터를 암호화하는 암호화 유닛과, 데이터 암호화의 중간 결과들 및 최종 결과들 모두를 저장하는 공통 레지스터를 포함한다. 공통 레지스터에 동작 가능하게 결합된 스위칭 소자는 공통 레지스터의 콘텐츠를 선택적으로 출력한다. 스위칭 소자는 암호화의 중간 결과들에 대한 외부 액세스를 방지하도록 제어된다. 이러한 보안 유닛은 디지털 오디오 레코더/플레이어와 같은 기록/재생 장치에 부착 가능한 메모리 유닛의 일부로서 특히 유용하다.
유리하게, 공통 레지스터는 암호화 과정의 중간 산출 결과 및 최종 결과 모두를 저장하는 기능을 가지므로, 이러한 기능들을 위해 복수의 레지스터를 사용할 필요는 없다. 또한, 다수의 암호화 회로를 사용할 필요도 없다. 그러므로 보안 유닛의 회로 규모는 줄어들 수 있다.
상기 언급한 본 발명의 목적, 부가적인 목적들, 특징, 이점들은 첨부된 도면과 연관되어 설명될 아래의 상세한 설명으로부터 명확해 질 것이다.
도 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)로부터 판독된 부호화된 데이터를 복호화한다. MD들에 사용된 Adaptive Transform Acoustic Coding(ATRAC) 포맷의 변형인 고효율의 ATRAC 3 포맷 부호화 방법을 사용할 수도 있다.
ATRAC 3 포맷에서, 44.1KHz에서 샘플링되고 16비트로 양자화된 오디오 데이터는 고효율로 부호화된다. 처리될 오디오 데이터의 최소 데이터 유닛은 사운드 유닛("SU")이다. 1SU는 1024개의 샘플 데이터를 가지며, 몇백 바이트의 데이터로 압축되는 (1024 x 16비트 x 2채널) 비트를 가진다. 1 SU의 지속 기간은 약 23msec이다. 이러한 고효율 암호화 방법에서, 압축된 데이터의 크기는 원래 데이터의 크기보다 약 10배 정도 작다. MDs에서 사용된 ATRAC 3 포맷과 비교하여, ATRAC 3 포맷에 따라 압축, 압축 해제된 오디오 신호는 오디오 품질에 있어서도 떨어지지 않는다.
예시적으로, 아날로그 입력(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)에 암호화된 데이터를 기입한다. 암호화된 데이터는 CPU(2)와 메모리 카드(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)에 기입된 콘텐츠(ATRAC 3 포맷으로 압축된 오디오 데이터: ATRAC 3 데이터)의 저작권을 보호하기 위하여, 레코더/플레이어(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)(미리 결정된 데이터 포맷을 이용하는 전용 시스템을 형성한다)을 인증하고 세션 키를 공유한다. ATRAC 3 데이터를 암호화할 콘텐츠 키는 세션 키로 암호화되고 레코더/플레이어(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)에 의해 관리된 메모리(미도시)에 저장된다. 선적(shipping)되기 전에, 사용된 메모리 카드(40 또는 40')의 플래시 메모리(42)에 FAT과 루트 방향이 기입된다. 데이터가 기록되면, 트랙 정보 관리 파일이 생성된다. CPU(2)가 메모리 카드(40)을 인증한 후, 레코더/플레이어(1)는 암호화된 ATRAC 3 데이터 파일을 기록 또는 재생한다.
데이터가 기록되면, 동작 버튼(4)의 동작에 대응하여 기록 명령이 발행된다. 입력 오디오 데이터는 부호화기/복호화기(7)에 의해 압축된다. 부호화기/복호화기(7)로부터 수신된 ATRAC 3 데이터는 보안 블럭(3)에 의해 암호화된다. CPU(2)는 암호화된 ATRAC 3 데이터를 메모리 카드(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)에서, 데이터는 한번에 하나의 블럭씩 소거된다. 데이터는 플래시 메모리(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(Identify 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)의 저장 용량에 비례한다. 플래시 메모리(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)로부터의 디지털 신호를 ATRAC 3 포맷에 따라 압축한다. 그런 다음, 보안 블럭(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에서, 메모리 카드(40)는 레코더/플레이어(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)는 ATRAC 3 시스템에 따라 해독된 오디오 데이터를 확장하고, 복호화된 신호를 디지털 출력(14)을 통하여 출력하거나, D/A 변환기(12)는 디지털 오디오 신호를 아날로그 신호로 변환하고 그 결과를 아날로그 출력(13)을 통하여 출력한다. 또는, 보안 블럭(3)으로부터의 ATRAC 3 오디오 데이터는 출력(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에서, 메모리 카드(40)는 명령을 수신할 준비가 완료되었다. 타이밍 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)로부터 수신된 신호가 상태 신호라는 것을 판단한다.
타이밍 t44에서, 메모리 카드(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 저장 수단을 더 포함하고,상기 스위칭 수단은 상기 제 2 저장 수단에 저장된 명령에 따라 상기 암호화의 결과들에 대한 액세스를 방지하도록 제어되는, 보안 유닛.
- 제 1 항에 있어서,상기 명령들이 상기 미리 결정된 시퀀스로 수신되었는지 여부를 검출하는 검출 수단을 더 포함하는, 보안 유닛.
- 제 1 항에 있어서,상기 미리 결정된 시퀀스로 명령들을 생성하는 명령 생성 수단과;상기 외부적으로 생성된 명령들을 상기 명령 생성 수단에 의해 생성된 명령들과 비교하는 비교 수단을 더 포함하고,상기 비교된 명령들이 일치하지 않는 경우에 상기 보안 유닛은 에러 신호를 출력하는, 보안 유닛.
- 비휘발성 메모리 및 보안 유닛을 포함하는 메모리 유닛으로서, 상기 보안 유닛은 상기 보안 유닛의 외부로부터 미리 결정된 시퀀스로 수신된 명령들에 따라 데이터를 암호화하고, 상기 암호화된 데이터는 상기 비휘발성 메모리에 저장되며, 상기 보안 유닛은:상기 암호화의 중간 결과 및 최종 결과 모두를 저장하는 저장 수단과;상기 저장 수단에 동작 가능하게 결합되어, 상기 저장 수단의 콘텐츠를 선택적으로 출력하는 스위칭 수단을 포함하고,상기 스위칭 수단은 상기 저장 수단에 저장된 상기 암호화 과정의 중간 결과들에 대한 외부 액세스를 방지하도록 제어되는, 메모리 유닛.
- 제 5 항에 있어서,상기 보안 유닛은 상기 보안 유닛에 의해 수신된 외부적으로 생성된 명령을 저장하는 제 2 저장 수단을 더 포함하고,상기 스위칭 수단은 상기 제 2 저장 수단에 저장된 명령에 따라 상기 암호화의 결과들에 대한 액세스를 방지하도록 제어되는, 메모리 유닛.
- 제 5 항에 있어서,상기 보안 유닛은 상기 명령들이 상기 미리 결정된 시퀀스로 수신되었는지 여부를 검출하는 검출 수단을 더 포함하는, 메모리 유닛.
- 제 5 항에 있어서,상기 보안 유닛은,상기 미리 결정된 시퀀스로 명령들을 생성하는 명령 생성 수단과,상기 보안 유닛에 의해 수신된 명령들을 상기 명령 생성 수단에 의해 생성된 명령들과 비교하는 비교 수단을 더 포함하고,상기 비교된 명령들이 일치하지 않는 경우에 상기 보안 유닛은 에러 신호를 출력하는, 메모리 유닛.
- 제 5 항에 있어서,상기 비휘발성 메모리와 상기 보안 유닛에 접속되어, 상기 메모리 유닛에 공급된 외부 데이터를 수신하고 상기 외부 데이터를 상기 비휘발성 메모리 또는 상기 보안 유닛에 선택적으로 공급하는 인터페이스 수단을 더 포함하는, 메모리 유닛.
- 제 9 항에 있어서,상기 인터페이스 수단은 상기 메모리 유닛에 공급된 외부 명령을 수신하고 상기 외부 명령에 따라 상기 비휘발성 메모리 또는 상기 보안 유닛에 데이터를 공급하는, 메모리 유닛.
- 미리 결정된 시퀀스로 수신된 명령들에 따라 데이터를 암호화하는 방법에 있어서:상기 암호화의 중간 결과 및 최종 결과 모두를 저장 수단에 저장하는 단계와;상기 저장 수단에 또한 저장된 상기 암호화의 중간 결과들에 대한 액세스를 방지하는 단계를 포함하는, 데이터 암호화 방법.
- 제 11 항에 있어서,수신된 명령에 응답하여 상기 암호화의 최종 결과들의 출력을 방지하는 단계를 더 포함하는, 데이터 암호화 방법.
- 제 11 항에 있어서,상기 명령들이 상기 미리 결정된 시퀀스로 수신되었는지 여부를 검출하는 단계를 더 포함하는, 데이터 암호화 방법.
- 제 11 항에 있어서,상기 미리 결정된 시퀀스로 명령을 생성하는 단계와;상기 미리 결정된 시퀀스로 수신된 명령들과 상기 생성된 명령들을 비교하는 단계와;상기 비교된 명령들이 일치하지 않는 경우에 에러 신호를 출력하는 단계를 더 포함하는, 데이터 암호화 방법.
- 제 11 항에 있어서,상기 저장 수단은 단일 레지스터인, 데이터 암호화 방법.
- 보안 유닛에 있어서:상기 보안 유닛에 의해 수신된 명령들에 따라 데이터를 암호화하는 암호화 유닛과;상기 데이터 암호화의 중간 결과들 및 최종 결과들 모두를 저장하는 공통 레지스터와;상기 레지스터에 동작 가능하게 결합되어, 상기 레지스터의 콘텐츠를 선택적으로 출력하는 스위칭 소자를 포함하고,상기 스위칭 소자는 암호화의 상기 중간 결과들에 대한 외부 액세스를 방지하도록 제어되는, 보안 유닛.
- 비휘발성 메모리 및 보안 유닛을 포함하는 메모리 유닛으로서, 상기 보안 유닛은 수신된 명령들에 따라 데이터를 암호화하고, 상기 암호화된 데이터는 상기 비휘발성 메모리에 저장되며, 상기 보안 유닛은:상기 데이터 암호화의 중간 결과들 및 최종 결과들 모두를 저장하는 공통 레지스터와;상기 레지스터에 동작 가능하게 결합되어, 상기 레지스터의 콘텐츠를 선택적으로 출력하는 스위칭 소자를 포함하고,상기 스위칭 소자는 암호화의 상기 중간 결과들에 대한 외부 액세스를 방지하도록 제어되는, 메모리 유닛.
- 보안 유닛을 포함하는 데이터 처리 유닛에 있어서, 상기 보안 유닛은:상기 보안 유닛에 의해 수신된 명령들에 따라 데이터를 암호화하는 암호화 유닛과;상기 데이터 암호화의 중간 결과들 및 최종 결과들 모두를 저장하는 공통 레지스터와;상기 레지스터에 동작 가능하게 결합되어, 상기 레지스터의 콘텐츠를 선택적으로 출력하는 스위칭 소자를 포함하고,상기 스위칭 소자는 암호화의 상기 중간 결과들에 대한 외부 액세스를 방지하도록 제어되는, 데이터 처리 유닛.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9994799 | 1999-04-07 | ||
JP99-099947 | 1999-04-07 | ||
JP17818899 | 1999-06-24 | ||
JP99-178188 | 1999-06-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010006968A KR20010006968A (ko) | 2001-01-26 |
KR100710603B1 true 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) |
Families Citing this family (56)
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 |
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 |
KR100910432B1 (ko) * | 2001-03-16 | 2009-08-04 | 콸콤 인코포레이티드 | 무선 통신 장치용 보안 처리 및 데이터 저장을 제공하는 방법 및 장치 |
DE10113531A1 (de) * | 2001-03-20 | 2002-10-17 | Infineon Technologies Ag | Datenträger |
WO2002099742A1 (fr) * | 2001-06-04 | 2002-12-12 | Renesas Technology Corp. | Carte memoire |
GB0123417D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Improved data processing |
KR20040080936A (ko) * | 2002-01-31 | 2004-09-20 | 마쯔시다덴기산교 가부시키가이샤 | 메모리 디바이스, 단말장치 및 데이터 복원 시스템 |
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 | 半導体集積回路及び情報処理装置 |
US7900007B2 (en) * | 2004-07-08 | 2011-03-01 | Panasonic Corporation | Host device, storage device, and method for accessing storage device |
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 | 삼성전자주식회사 | 해킹 방지 기능이 있는 스마트 카드 |
US7917764B2 (en) * | 2005-01-24 | 2011-03-29 | Panasonic Corporation | Signature generation device and signature verification device |
FR2881900B1 (fr) * | 2005-02-09 | 2007-04-27 | Algoril Holding Sa | Procede de cryptographie de messages a cle privee, et application a une installation |
JP2008543695A (ja) | 2005-05-09 | 2008-12-04 | ユナイテッド パーセル サービス オブ アメリカ インコーポレイテッド | ルーティング及びスケジューリングを行うためのシステム及び方法 |
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 | 株式会社エヌ・ティ・ティ・ドコモ | 外部メモリ管理装置、及び外部メモリ管理方法 |
AU2006324920B2 (en) * | 2005-12-14 | 2010-08-12 | 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 |
US9383969B2 (en) * | 2011-04-05 | 2016-07-05 | Intrinsic Id B.V. | Random number generating system based on memory start-up noise |
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 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06150084A (ja) * | 1992-11-04 | 1994-05-31 | Fujitsu Ltd | Icカード |
US5442704A (en) | 1994-01-14 | 1995-08-15 | Bull Nh Information Systems Inc. | Secure memory card with programmed controlled security access control |
KR960004734B1 (ko) * | 1993-02-19 | 1996-04-12 | 삼성전자주식회사 | 정보 보호방법 및 정보기억미디어 |
WO1998054687A1 (fr) | 1997-05-30 | 1998-12-03 | Mitsubishi Denki Kabushiki Kaisha | Processeur cryptographique, carte de circuits integres et procede de traitement cryptographique |
JPH113284A (ja) * | 1997-06-10 | 1999-01-06 | Mitsubishi Electric Corp | 情報記憶媒体およびそのセキュリティ方法 |
Family Cites Families (23)
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 |
FR2686170B1 (fr) * | 1992-01-14 | 1996-09-06 | Gemplus Card Int | Carte a memoire de masse pour microordinateur. |
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. |
JPH06103748A (ja) * | 1992-09-16 | 1994-04-15 | Mitsubishi Electric Corp | Icメモリカードの電源制御回路 |
US5914471A (en) * | 1993-07-20 | 1999-06-22 | Koninklijke Ptt Nederland N.V. | Method and apparatus for recording usage data of card operated devices |
US5467398A (en) * | 1994-07-05 | 1995-11-14 | Motorola, Inc. | Method of messaging in a communication system |
AU6762196A (en) * | 1995-07-20 | 1997-02-18 | Dallas Semiconductor Corporation | Secure module with microprocessor and co-processor |
US5758068A (en) * | 1995-09-19 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for software license management |
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 |
CA2634812C (en) * | 1997-09-16 | 2010-03-30 | Safenet, 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 |
US6859535B1 (en) * | 1998-10-16 | 2005-02-22 | Matsushita Electric Industrial Co., Ltd. | Digital content protection system |
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 |
US6477252B1 (en) * | 1999-08-29 | 2002-11-05 | Intel Corporation | Digital video content transmission ciphering and deciphering method and apparatus |
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 |
-
2000
- 2000-04-06 US US09/544,072 patent/US6820203B1/en not_active Expired - Lifetime
- 2000-04-07 DE DE60038919T patent/DE60038919D1/de not_active Expired - Lifetime
- 2000-04-07 EP EP00302968A patent/EP1043860B1/en not_active Expired - Lifetime
- 2000-04-07 MY MYPI20001436A patent/MY128617A/en unknown
- 2000-04-07 KR KR1020000018211A patent/KR100710603B1/ko not_active IP Right Cessation
- 2000-04-07 CN CNB001178598A patent/CN1197374C/zh not_active Expired - Lifetime
-
2004
- 2004-10-25 US US10/972,969 patent/US7124436B2/en not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06150084A (ja) * | 1992-11-04 | 1994-05-31 | Fujitsu Ltd | Icカード |
KR960004734B1 (ko) * | 1993-02-19 | 1996-04-12 | 삼성전자주식회사 | 정보 보호방법 및 정보기억미디어 |
US5442704A (en) | 1994-01-14 | 1995-08-15 | Bull Nh Information Systems Inc. | Secure memory card with programmed controlled security access control |
WO1998054687A1 (fr) | 1997-05-30 | 1998-12-03 | Mitsubishi Denki Kabushiki Kaisha | Processeur cryptographique, carte de circuits integres et procede de traitement cryptographique |
JPH113284A (ja) * | 1997-06-10 | 1999-01-06 | Mitsubishi Electric Corp | 情報記憶媒体およびそのセキュリティ方法 |
Non-Patent Citations (2)
Title |
---|
11003284 * |
EP조사보고서 |
Also Published As
Publication number | Publication date |
---|---|
EP1043860A3 (en) | 2005-09-14 |
CN1197374C (zh) | 2005-04-13 |
KR20010006968A (ko) | 2001-01-26 |
US6820203B1 (en) | 2004-11-16 |
EP1043860A2 (en) | 2000-10-11 |
CN1272027A (zh) | 2000-11-01 |
EP1043860B1 (en) | 2008-05-21 |
US7124436B2 (en) | 2006-10-17 |
DE60038919D1 (de) | 2008-07-03 |
US20050060540A1 (en) | 2005-03-17 |
MY128617A (en) | 2007-02-28 |
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 | |
EP1512147A2 (en) | System, method, and device for playing back recorded audio, video or other content from non-volatile memory cards, compact disks or other media | |
US7673153B1 (en) | Data processing method, apparatus and system for encrypted data transfer | |
US6985584B1 (en) | Non-volatile record medium, recording method, and recording apparatus | |
KR100729546B1 (ko) | 편집 장치, 편집 방법 및 비휘발성 메모리 | |
JP2001077805A (ja) | セキュリティ装置、メモリ装置、データ処理装置および方法 | |
JP2003044361A (ja) | データ保存再生システム、データ保存装置、データ再生装置、データ保存再生方法、プログラム、および媒体 | |
JP3882460B2 (ja) | メモリ装置、データ処理装置、データ処理システムおよびデータ処理方法 | |
JP3882459B2 (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 |