KR100648388B1 - 장치간의 상호 식별용 데이터 처리 시스템 및 방법 - Google Patents

장치간의 상호 식별용 데이터 처리 시스템 및 방법 Download PDF

Info

Publication number
KR100648388B1
KR100648388B1 KR1020000013057A KR20000013057A KR100648388B1 KR 100648388 B1 KR100648388 B1 KR 100648388B1 KR 1020000013057 A KR1020000013057 A KR 1020000013057A KR 20000013057 A KR20000013057 A KR 20000013057A KR 100648388 B1 KR100648388 B1 KR 100648388B1
Authority
KR
South Korea
Prior art keywords
data
key
data processing
processing apparatus
random number
Prior art date
Application number
KR1020000013057A
Other languages
English (en)
Other versions
KR20010006805A (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 KR20010006805A publication Critical patent/KR20010006805A/ko
Application granted granted Critical
Publication of KR100648388B1 publication Critical patent/KR100648388B1/ko

Links

Images

Classifications

    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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]
    • 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/00094Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers
    • 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/00094Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers
    • G11B20/00115Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers wherein the record carrier stores a unique medium identifier
    • 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/00478Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier wherein contents are decrypted and re-encrypted with a different key when being copied from/to 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/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/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/00514Circuits 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 the entire content is encrypted with the same key, e.g. disc key or master key
    • 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/00528Circuits 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 each title is encrypted with a separate encryption key for each title, e.g. title key for movie, song or data file
    • 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/00731Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction
    • G11B20/00746Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction can be expressed as a specific number
    • G11B20/00753Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction can be expressed as a specific number wherein the usage restriction limits the number of copies that can be made, e.g. CGMS, SCMS, or CCI flags
    • 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
    • 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/2103Challenge-response
    • 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)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

제 1 상호 식별 유닛 내의 저장 유닛은 마스터 키 데이터를 저장하고, 제 2 상호 식별 유닛 내의 제 2 저장 유닛은 식별 키 데이터를 저장한다. 난수 생성 유닛은 상호 식별 유닛들에서 마스터 키와 이에 대응하는 식별 키를 선택하는데 사용되는 번호를 생성한다. 제 1 상호 식별 유닛은 선택된 마스터 키를 사용하여 선택된 식별 키의 평가치를 생성하고, 이 평가치를 제 2 상호 식별 유닛으로 상호 식별을 실행할 때 공통키로서 사용한다.
데이터 처리 시스템, 데이터 처리 방법, 상호 식별.

Description

장치간의 상호 식별용 데이터 처리 시스템 및 방법{Data processing system and method for mutual identification between apparatuses}
도 1은 본 발명에 따라 구성된 오디오 시스템의 전체 시스템 구성을 도시하는 도면.
도 2는 도 1에 도시된 휴대용 저장 장치 및 휴대용 플레이어의 내부 구조를 설명하는 도면.
도 3은 도 2에 도시된 휴대용 저장 장치의 저장 유닛에 저장된 데이터를 도시하는 도면.
도 4는 도 2에 도시된 휴대용 장치의 플래시 메모리 내에 저장된 데이터를 도시하는 도면.
도 5는 도 2에 도시된 휴대용 저장 장치 내에 도시된 서브디렉토리인 재생 관리 파일(PBLIST.MSF)의 데이터 구조를 도시하는 도면.
도 6은 속성 헤더를 포함하며, 소정의 유닛 길이의 블록으로 분할된 ATRAC3 데이터 파일의 데이터 구조를 도시하는 도면.
도 7은 재생 관리 파일(PBLIST)의 전체 데이터 구조를 도시하는 도면.
도 8은 헤더부, 메인 데이터부 및 부가 정보 데이터 부를 포함하는 재생 관 리 파일(PBLIST)의 상세 데이터 구조를 도시하는 도면.
도 9는 도 2에 도시된 휴대용 플레이어의 저장 유닛에 저장된 데이터 구조를 도시하는 도면.
도 10은 ATRAC3 데이터 파일의 상세 데이터 구조를 도시하는 도면.
도 11은 ATRAC3 데이터 파일의 속성 헤더의 상부 데이터 구조를 도시하는 도면.
도 12는 ATRAC3 데이터 파일의 속성 헤더의 중간부분의 데이터 구조를 도시하는 도면.
도 13은 상호 관련된 기록 모드, 기록 시간 및 그 밖의 정보에 대한 상관 관계 테이블.
도 14는 복제 제어 상태를 도시하는 테이블.
도 15는 ATRAC3 데이터 파일의 속성 헤더의 하부 데이터 구조를 도시하는 도면.
도 16은 ATRAC3 데이터 파일의 데이터 블록의 헤더의 데이터 구조를 도시하는 도면.
도 17은 도 2에 도시된 휴대용 플레이어의 저장 유닛에 저장된 데이터 구조를 도시하는 도면.
도 18은 도 2에 도시된 휴대용 플레이어의 암호화/해독화 유닛 내의 암호화의 CBC 모드를 설명하는 도면.
도 19는 도 2에 도시된 휴대용 플레이어의 암호화/해독화 유닛 내의 해독화의 CBC 모드를 설명하는 도면.
도 20은 휴대용 플레이어로부터 도 2에 도시된 휴대용 저장 장치로의 기록 동작을 설명하는 흐름도.
도 21은 도 2에 도시된 상호 식별 유닛에 의해 식별키 데이터(IKj)의 선택을 도시하는 도면.
도 22는 도 2에 도시된 휴대용 저장 장치와 휴대용 플레이어 간의 상호 식별 처리를 설명하는 도면.
도 23은 세션 키 데이터 Sek의 생성을 설명하는 도면.
도 24는 도 2에 도시된 휴대용 플레이어로부터 휴대용 저장 장치로의 오디오 데이터 기록 동작을 설명하는 도면.
도 25는 도 2에 도시된 휴대용 저장 장치로부터 휴대용 플레이어로의 판독 동작을 설명하는 흐름도.
도 26은 도 2에 도시된 휴대용 저장 장치로부터 휴대용 플레이어로의 오디오 데이터 판독 동작을 설명하는 도면.
도 27은 휴대용 플레이어의 편집 모듈에 의해 트랙 데이터 파일의 개별적 편집을 설명하는 도면.
도 28은 도 29에 도시된 개별적 편집 이후, 트랙(1)의 클러스터 CL(2)내의 데이터를 도시하는 도면.
도 29는 도 27에 도시된 개별적 편집 이후, 트랙(2)의 클러스터 CL(2)내의 데이터를 도시하는 도면.
도 30은 도 2에 도시된 휴대용 플레이어의 편집 모듈에 의해 개별적인 편집 단계에서 새로운 트랙 데이터 파일의 파트 키 데이터와 트랙 키 데이터를 생성하는 흐름도.
도 31은 도 2에 도시된 휴대용 플레이어의 편집 모듈에 의해 트랙 데이터 파일의 결합된 편집을 설명하는 도면.
도 32는 도 2에 도시된 휴대용 플레이어의 편집 모듈에 새롭게 생성된 트랙 데이터 파일(3) 부분(1,2)의 파트 키 데이터를 생성하는 흐름도.
* 도면의 주요부분에 대한 부호의 설명 *
1: 오디오 시스템 2: 컴퓨터
3: 휴대용 저장 장치 4: 휴대용 플레이어
31: 메인 제어 모듈 32: 통신 인터페이스
33: 제어 모듈 34: 플래시 메모리
51: 암호화/해독화 유닛 52: 키 생성/처리 유닛
53: 상호 식별 유닛 55: 제어 유닛
본 발명은 데이터 처리 장치들 간의 상호 식별을 실행하는 데이터 처리 시스템 및 방법에 관한 것이다.
오디오 및 그 밖의 데이터의 불법 사용을 금하기 위해, 즉, 이러한 데이터의 저작권(들)을 보호하기 위해, 제 1 데이터 처리 장치가 각 장치가 적법한 대상으로서 인식되는 장치들 간의 상호 식별 처리가 실행되지 않을 경우, 임의의 이러한 데이터가 제 2 데이터 처리 장치로 출력되는 것을 제한할 수 있다.
이러한 상호 식별 처리용의 많은 시스템들이 있는데, 일 예를 들면, 공통 키 시스템(common key system)이 있다.
공통 키 시스템에 있어서, 제 1 및 제 2 데이터 처리 장치들은 단일 공통 키를 공유한다. 예를 들면, 하나의 장치가 인수가 생성되었다는 것을 다른 장치에 통보하며, 두 장치들은 인수와 공통키를 사용하여 동작들을 수행하고, 각각은 서로에게 처리 결과를 출력한다. 데이터 처리 장치들은 그 자신의 처리 결과들과 다른 장치로부터 입력된 결과들을 각각 비교하여 결과들이 일치하는 경우, 적법한 대상으로서 다른 장치를 인식한다.
이러한 공통 키 시스템에 있어서, 적법한 대상들이 아닌 사람들로부터 공통 키의 비밀을 유지해야할 필요가 있다. 공통 키가 불법 대상에 의해 획득되는 경우, 불법 대상은 시스템에 속한 적법한 대상으로서 인식되지 않아 데이터 사용이 금지될 수 있다.
본 발명은 상기 문제를 고려하여 생성되었으며, 공통 키를 사용하여 개선된 상호 식별 기술들을 갖는 데이터 처리 시스템 및 방법을 제공하는 것을 그 목적으로 한다.
본 발명의 다른 목적 및 장점은 상세한 설명 및 도면을 참조하여 더욱 명백히 설명하였다.
본 발명에 따라, 상술한 문제점을 해결하여 상기 목적을 달성하기 위해, 상호 식별은 제 1 데이터 처리 장치와 제 2 데이터 처리 장치 간에 실행되며, 상기 제 1 데이터 처리 장치는 복수의 상이한 제 1 키 데이터를 저장하는 제 1 저장 수단과 복수의 제 1 키 데이터 중 하나의 제 1 키 데이터를 선택하고 상기 선택된 제 1 키 데이터를 상기 제 2 데이터 처리 장치에 대한 상호 식별용으로 사용하는 제 1 상호 식별 처리 수단을 포함하며; 상기 제 2 데이터 처리 장치는 복수의 상이한 제 2 키 데이터를 저장하는 제 2 저장 수단과 복수의 제 2 키 데이터 중에서 제 1 상호 식별 처리 수단에 의해 선택된 제 1 키 데이터에 대응하는 제 2 키 데이터를 선택하고 상기 선택된 제 2 키 데이터를 상기 제 1 데이터 처리 장치와의 상호 식별용으로 사용하는 제 2 상호 식별 처리 수단을 포함한다.
또한, 본 발명의 양호한 실시예에 따르면, 제 1 및 제 2 데이터 처리 장치 중 적어도 하나는 인수를 생성하고 상기 생성된 인수를 다른 장치에 통지한다. 이와 대응하여, 제 1 상호 식별 처리 수단은 인수에 기초하여 제 1 키 데이터를 선택하며, 제 2 상호 식별 처리 수단은 인수에 기초하여 제 2 키 데이터를 선택한다.
본 발명의 양호한 실시예에 따르면, 상기 제 1 데이터 처리 장치는 또한 상기 선택된 제 1 키 데이터로부터 상기 제 2 상호 식별 처리 수단에 의해 선택된 제 2 키 데이터를 계산하는 키 데이터 계산 수단을 포함하며, 상기 제 1 상호 식별 처리 수단은 공통 키로서 상기 계산된 제 2 키 데이터를 사용하는 상기 제 2 상호 식별 처리 수단으로 상호 식별 처리를 실행한다.
또한, 본 발명의 양호한 실시예에 따르면, 상기 제 2 데이터 처리 장치의 상기 제 2 상호 식별 처리 수단은 제 1 데이터 처리 장치로부터 입력된 난수와 인수로써 상기 선택된 제 2 키 데이터를 사용하여 단방향 해시 함수 연산을 실행하여, 제 1 처리 결과를 계산하고, 상기 제 1 처리 결과를 상기 제 1 데이터 처리 장치에 출력하며; 상기 제 1 데이터 처리 장치는 또한 난수를 생성하여 이를 상기 제 2 상호 식별 처리 수단에 출력하는 난수 생성 수단을 포함하며; 상기 제 1 상호 식별 처리 수단은 난수 생성 수단에 의해 생성된 난수와 인수로서 계산된 제 2 키 데이터를 사용하여 단방향 해시 함수 연산을 실행하여, 제 2 처리 결과를 산출하고, 제 2 데이터 처리 장치로부터 입력된 제 1 처리 결과가 제 2 처리 결과와 일치하는 경우 적법한 대상으로서 제 2 데이터 처리 장치를 식별한다.
또한, 본 발명의 양호한 실시예에 따르면, 상기 제 1 데이터 처리 장치의 제 1 상호 식별 처리 수단은 제 2 데이터 처리 장치로부터 입력된 난수와 인수들로써 계산된 제 2 키 데이터를 사용하여 단방향 해시 함수 연산을 실행하여, 제 3 처리 결과를 계산하고, 상기 제 3 처리 결과를 제 2 데이터 처리 장치에 출력하며; 상기 제 2 데이터 처리 장치는 상기 난수를 생성하여, 이를 상기 제 1 상호 식별 처리 수단에 출력하는 난수 생성 수단을 더 포함하며; 상기 제 2 상호 식별 처리 수단은 제 2 데이터 처리 장치의 난수 생성 수단에 의해 생성된 난수와 인수들로써 상기 선택된 제 2 키 데이터를 사용하여 단방향 해시 함수 연산을 실행하여, 제 4 처리 결과를 산출하고, 제 1 데이터 처리 장치로부터 입력된 제 3 처리 결과와 제 4 처리 결과가 일치하는 경우, 적법한 대상으로서 상기 제 1 데이터 처리 장치를 식별한다.
또한, 본 발명의 양호한 실시예에 따르면, 상기 제 1 데이터 처리 장치와 상기 제 2 데이터 처리 장치는 입력으로써 키 선택 데이터를 수신하며; 상기 제 1 상호 식별 처리 수단은 상기 키 선택 데이터에 기초하여 복수의 제 1 키 데이터로부터 하나의 제 1 키 데이터를 선택하며, 상기 제 2 상호 식별 처리 수단은 상기 키 선택 데이터에 기초하여 복수의 제 2 키 데이터로부터 하나의 제 2 키 데이터를 선택한다.
최종적으로, 제 1 데이터 처리 장치와 제 2 데이터 처리 장치들 간의 상호 식별을 실행하는 본 발명의 데이터 처리 방법은, 상기 제 1 데이터 처리 장치에서, 복수의 제 1 키 데이터로부터 하나의 제 1 키 데이터를 선택하고 상기 선택된 제 1 키 데이터를 상기 제 2 데이터 처리 장치와의 상호 식별용으로 사용하는 단계; 및 상기 제 2 데이터 처리 장치에서, 복수의 제 2 키 데이터로부터, 상기 선택된 제 1 키 데이터에 대응하는 제 2 키 데이터를 선택하여 상기 선택된 제 2 키 데이터를 상기 제 1 데이터 처리 장치와의 상호 식별용으로 사용하는 단계를 포함한다.
따라서, 본 발명은 다른 장치들의 각각에 관하여 하나 이상의 단계의 관계 및 몇몇 단계와, 이러한 단계들을 산출하도록 채택된 부분들의 배열, 구성요소들의 조합(들) 및 구조의 특징을 사용하는 장치를 포함하며, 본 발명의 정신과 범위는 후술되는 청구범위 내에서 의도되었다.
도 1은 본 발명에 따라 구성된 오디오 시스템(1)의 시스템 구조를 도시한다. 오디오 시스템(1)은 컴퓨터(2), 휴대용 저장 장치(3), 휴대용 플레이어(4), CD-롬 드라이브(6) 및 CD 플레이어(7)를 포함한다. 오디오 시스템(1)은 본 발명의 데이터 처리 시스템에 해당하며, 휴대용 저장 장치(3)는 본 발명의 저장 장치에 해당하고, 휴대용 플레이어(4)는 본 발명의 데이터 처리 장치에 해당한다.
본 실시예에 있어서, 본 발명의 제 1 키 데이터는 콘텐트 키 데이터(CK)에 해당하며, 제 2 키 데이터는 파트 키 데이터(PK)에 해당하고, 제 3 키 데이터는 임시 키 데이터(TMK)에 해당하고, 제 4 키 데이터는 블록 시드 데이터(BS)에 해당하고, 제 5 키 데이터는 블록 키 데이터에 해당한다.
도 2는 도 1에 도시된 휴대용 저장 장치(3)와 휴대용 플레이어(4)의 내부 구조를 도시한다. 본 실시예에서, 본 발명의 모듈 사용 키 데이터 계산 수단은 도 2에 도시된 키 생성/키 처리 유닛(62)에 해당하며, 암호화 수단은 암호화/해독화 유닛(64)에 해당하고, 키 데이터 처리 수단은 편집 모듈(44)에 해당한다.
컴퓨터(2)
컴퓨터(2)는 네트워크(5)에 접속되어, 네트워크(5)를 경유하여 EMD (Electronic Music Distribution) 또는 다른 서비스들을 제공하는 서비스 제공자의 호스트 컴퓨터(미 도시)로부터 오디오 데이터(트랙 데이터)를 수신하여, 수신된 오디오 데이터를 필요에 따라 휴대용 플레이어(4)에 출력한다. 컴퓨터(2)는 콘텐트 데이터 수신시, 서비스 제공자의 호스트 컴퓨터를 사용하여 식별, 요금 및 그 밖의 필요한 정보를 교환한다. 컴퓨터(2)는 또한 CD-롬 드라이브(6)로부터 휴대용 플레이어(4)로 입력된 오디오 데이터를 옮길 수 있다.
휴대용 저장 장치(3)
도 2에 도시된 바와 같이, 휴대용 저장 장치(3)는 메모리 스틱이라는 상표의 소니 코포레이션으로부터 상업적으로 가용한 플래시 메모리(34)와 같은 재기록가능 반도체 메모리를 내장하고 있다. 또한, 휴대용 저장 장치(3)는 메인 제어 모듈(31), 통신 인터페이스(32), 제어 모듈(33) 및 플래시 메모리 관리 모듈(35)을 구비하고 있다.
제어 모듈(33)
제어 모듈(33)은 암호화하기 위해 독점적으로 사용된 다중-층 구조를 갖는 단일 칩 집적 회로이다. 내부 메모리 셀들은 알루미늄 층들과 같은 더미 층들(dummy layers) 사이에 개재된다. 또한, 제어 모듈(33)은 동작 전압 또는 동작 주파수의 범위가 좁으며, 접근이 어려우므로, 임의의 저장된 데이터가 외부로부터 불법 판독될 수 없다.
도 2에 도시된 바와 같이, 제어 모듈(33)은 난수 생성 유닛(50), 저장 유닛(51), 키 생성/처리 유닛(52), 상호 식별 유닛(53), 암호화/해독화 유닛(54) 및 제어 유닛(55)을 포함한다. 난수 생성 유닛(50)은 난수 생성 명령을 수신하여 64 비트(8-바이트) 난수를 생성한다. 저장 유닛(51)은 EEPROM(electrically erasable programmable read only memory) 또는 그 밖의 비휘발성 메모리를 포함할 수 있고, 식별하기 위해 요구되는 키 데이터 및 그 밖의 다양한 데이터를 저장한다.
도 3은 저장 유닛(51)에 저장된 데이터를 도시한다. 이 저장된 데이터는 식 별 키 데이터(IK0 내지 IK31), 장치 식별 데이터(IDm) 및 저장 사용 키 데이터(Skm)를 포함한다.
식별 키 데이터(IK0 내지 IK31)는 휴대용 저장 장치(3)가 휴대용 플레이어(4)로 상호 식별 처리를 실행할 때 사용되는 키 데이터이다. 식별 키 데이터(IK0 내지 IK31) 중에서 하나의 식별키가 상호 식별 처리가 실행될 때마다 임의로 선택된다. 식별 키 데이터(IK0 내지 IK31) 및 저장 사용 키 데이터(Skm)가 휴대용 저장 장치(3)의 외부로부터 판독될 수 없음을 주목해야 한다. 장치 식별 데이터(IDm)는 각각의 휴대용 저장 장치(3)에 유일하게 첨부된 식별 데이터이며, 휴대용 저장 장치(3)가 휴대용 플레이어(4)로 상호 식별 처리를 실행할 때 판독된다. 저장 사용 키 데이터(Skm)는 콘텐트 키 데이터(CK)를 암호화하여 후술될 플래시 메모리(34) 내에 동일한 것을 저장할 때 사용된다.
키 생성/처리 유닛(52)은 MAC(message authentication code) 연산 및/또는 ISO/IEC9797 표준에 의해 정의된 그 밖의 다양한 연산들을 실행함으로써 키 데이터를 생성한다. 현재, MAC 연산은 DES(data encryption standard)로써 FIPSPUB46-2에 정의된 "블록 암호 알고리즘(block cipher algorithm)"을 사용한다. MAC 연산은 임의의 길이를 갖는 데이터가 고정 길이로 압축되는 단방향 해시 함수(one-way Hash function)이며, 함수 값은 비밀키에 의해 결정된다.
상호 식별 유닛(53)은 휴대용 플레이어(4)로부터 오디오 데이터를 수신하여 이를 플래시 메모리(34)에 기록하기 전에 휴대용 플레이어(4)로 상호 식별 처리를 실행한다. 상호 식별 유닛(53)은 플래시 메모리(34)로부터 오디오 데이터를 판독하여 이를 휴대용 플레이어(4)에 출력하기 전에 휴대용 플레이어(4)로 상호 식별 처리를 실행한다. 상호 식별 유닛(53)은 상호 식별 처리의 일부로써 MAC 연산도 실행한다. 저장 유닛(51)에 저장된 데이터는 상호 식별 처리를 실행하는데 사용된다.
암호화/해독화 유닛(54)은 DES,IDEA,MISTY, 또는 그 밖의 다른 블록 암호 알고리즘들을 사용하여 암호화 및 해독화를 실행한다. 사용된 모드는 FIPS PUB81 "DES MODES OF OPERATION"에 기술된 바와 같이 ECB(electronic cod book) 모드 및 CBC(cipher block chaining)모드이다. ECB 및 CBC 모드들에 따른 블록 암호화/해독화에 있어서, 지정된 데이터는 지정된 키 데이터를 사용하여 암호화/해독화된다. 제어 유닛(55)은 난수 생성 유닛(50), 저장 유닛(51), 키 생성/처리 유닛(52), 상호 식별 유닛(53) 및 암호화/해독화 유닛(54)에 의한 처리를 중앙 집중적으로 제어한다.
플래시 메모리(34)
일단, 휴대용 플레이어(4)가 상호 식별 유닛(53)에 의해 적법한 대상으로서 인식되면, 플레이어(4)로부터 입력된 오디오 데이터는 플래시 메모리(34)로 기록된다. 반대로, 휴대용 플레이어(4)가 상호 식별 유닛(53)에 의해 적법한 대상으로써 인식되면, 오디오 데이터는 플래시 메모리(34)로부터 휴대용 플레이어(4)에 출력될 수 있다. 플래시 메모리(34)는 32Mbyte 의 저장 용량을 갖는다.
도 4에 도시된 바와 같이, 플래시 메모리(34)는 일련의 트랙 데이터 파일들(1010,1011,1012,1013)에 의해 연결된 재생 관리 파일(100)을 저장한다. 재생 관리 파일(100)은 트랙 데이터 파일들(1010 내지 1013)의 재생을 관리하기 위한 데이터를 포함한다. 트랙 데이터 파일들(1010 내지 1013)은 실제 트랙 데이터(오디오 데이터)를 포함한다. 본 실시예에서, 트랙 데이터는 오디오 데이터의 하나의 노래의 가치를 의미하는데 사용된다.
도 5 및 6은 재생 관리 파일이 샘플 파일 포맷을 실행할 때 사용되는 방법을 도시한다. ATRAC3는 "MDs(Mini-DiscsTM)"에 사용되는 "ATRAC(Adaptive Transform Acoustic Coding)"을 변형한 것으로, 오디오 데이터용의 고효율 암호화 포맷이다. 도 5는 재생 관리 파일의 구조를 도시한다. 도 6은 ATRAC3 데이터 파일의 파일 구조를 도시한다. ATRAC3 데이터 파일은 각각의 음악 프로그램에 대한 속성 헤드 및 암호화된 음악 데이터 영역으로 구성되어 있다. 재생 관리 파일 및 ATRAC3 속성 헤더 모두는 16KB(하나의 블록)의 고정된 파일 길이를 갖는다.
도 5에 도시된 재생 관리 파일은 헤더, 메모리 카드 이름(NM-IS;1 바이트 코드에 대해), 메모리 카드 이름(NM2-S;2 바이트 코드에 대해), 프로그램 재생 시퀀스 테이블(TRKTBL) 및 부가 정보 영역(INF-S)으로 구성된다. 데이터 파일의 시작부분의 속성 헤더(도 6에 도시)는 헤더, 프로그램 이름(NM1;1 바이트 코드에 대해), 프로그램 이름(NM2;2 바이트 코드에 대해), 트랙 정보(TRAKINF;트랙 키 정보와 같은), 파트 정보(PRTINF) 및 부가 트랙 정보 영역(INF)으로 구성된다. 헤더는 파트들의 전체 수의 정보, 트랙 이름, 부가 정보 영역의 크기 등을 포함한다.
속성 헤더는 ATRAC3 음악 데이터를 뒤따른다. 음악 데이터는 매 16KB마다 블록-분할되어 있고, 각 블록은 헤더로 시작한다. 헤더는 암호화된 데이터를 디코딩하기 위한 초기값을 포함한다. ATRAC3 데이터 파일의 음악 데이터만이 암호화된다. 따라서, 재생 관리 파일, 헤더 등은 암호화되지 않는다.
도 7은 재생 관리 파일의 상세한 데이터 구조를 도시하는 개략도이다. 도 8은 도 7의 헤더부 및 재생 관리 파일의 나머지 부분을 도시한다. 재생 관리 파일은 32 바이트 헤더, 이름(NM1-S) 영역(256 바이트)(메모리 카드에 대해), 이름(NM2-S) 영역(512 바이트), 콘텐트 키 영역, MAC 영역, S-YMDhms 영역, 재생 시퀀스 관리 테이블(TRKTBL) 영역(800바이트), 메모리 카드 부가 정보(INF-S) 영역(14720 바이트) 및 잉여 헤더 정보 영역을 포함한다. 재생 관리 파일 내의 이러한 영역들의 각 시작 위치들은 사전 지정된다.
도 8에 도시된 바와 같이, (0x0000) 내지 (0x0010)의 첫번째 32 바이트는 헤더용으로 사용된다. 파일 내에서, 16-바이트 영역들은 슬롯들로 불린다. 헤더는 0x000 및 0x0010에 지시된 제 1 및 제 2 슬롯들에 위치된다. "예약(Reserved)"로 표시된 영역은 지정되지 않은 영역이다. 통상적으로, 널(null)(0x00)은 예약 영역들에 기록된다. 그러나, 데이터가 예약 영역에 기록된다하더라도, 이 데이터는 무시된다. 예약 영역은 이후에 파일 포맷의 수정시에 사용되도록 의도되었다. 선택 영역(Option area)들이 사용되지 않을 시, 예약 영역들로서 처리된다. 또한, 재생 관리 파일 헤더는 다음에 정의된 영역을 포함한다:
= BLKID-TL0(4 바이트)
의미: BLOCKID FILE ID
기능: 재생 관리 파일의 상단(top)을 식별함.
값: 고정된 값 = "TL = 0"(예를 들면, 0x544C2D30)
= MCode(2 바이트)
의미: MAKER CODE
기능: 레코더/플레이어의 메이커 및 모델을 식별함.
값: 상위 10 비트(메이커 코드), 하위 6비트(모델 코드)
= REVISION(4 비트)
의미: PBLIST의 재기록 시간수.
기능: 재생 관리 파일이 재기록될 때마다의 증가량.
값: 0에서 시작, 1씩 증가.
= SY1C+L(2바이트)
의미: NM1-S 영역에 기록된 메모리 카드의 이름(1 바이트 코드)의 속성.
기능: 1 바이트 코드로써 문자 코드 및 언어 코드를 나타낸다.
값: 문자 코드(C): 상위 1 바이트.
00: 비-문자 코드, 2 진수.
01: ASCII(American Standard Code for Information Interchange)
02: ASCII + KANA
03: 수정된 8859-1
81: MS-JIS
82: KS C 5601-1989
83: GB (Great Britain)2312-80
90: S-JIS(Japanese Industrial Standards)(음성용)
언어 코드(L): 하위 1 비트는 EBU Tech 3258 표준에 기초하여 언어를 식별한다.
00: 설정되지 않음.
08: 독어
09: 영어
0A: 스페인어
0F: 불어
15: 이탈리아어
1D: 네델란드어
65: 한국어
69: 일본어
75: 중국어
데이터가 기록되지 않을 때, 이 영역은 모두 0이 된다.
= SN2C + L(2 바이트)
의미: NM2-S 영역의 메모리 카드의 이름 속성.
기능: 1 바이트 코드로써 문자 코드 및 언어 코드를 나타낸다.
값: SN1C+L과 동일.
= SINFSIZE(2 바이트)
의미: INF-S 영역내의 메모리 카드의 부가 정보의 전체 크기.
기능: 16 바이트의 증가량으로써 데이터 크기를 나타낸다. 데이터가 기록되지 않을 경우, 이 영역은 모두 0 이 된다.
값: 크기:0x0001 내지 0x39C(924)
= T-TRK(2 바이트)
의미: TOTAL TRACK NUMBER
기능: 총 트랙들의 수를 나타낸다.
값: 1 내지 0x0190(최대 400 트랙). 데이터가 기록될 때, 이 영역은 모두 0이 된다.
= VerNo(2 바이트)
의미: 포맷 버전 번호.
기능: 주 버전 번호(상위 1 바이트) 및 부 버전 번호(하위 1 바이트)를 나타낸다.
값: 0x0100(ver 1.0)
0x0203(ver 2.3)
이어서, 헤더에 앞선 영역들을 설명한다.
= NM1-S
의미: 메모리 카드 이름(1 바이트 코드)
기능: 1 바이트 코드(최대 256)로서 메모리 카드의 이름을 나타낸다. 이 영역의 단부에는, 엔드(end) 코드(0x00)가 기록된다. 이 크기는 엔드 코드로부터 계산된다. 데이터가 기록되지 않을 경우, 널(0x00)은 적어도 1 바이트로 이 영역의 시작(0x0020)으로부터 기록된다.
값: 다양한 문자 코드.
= NM2-S
의미: 메모리 카드 이름(2 바이트 코드).
기능: 2 바이트 코드(최대 512)로서 메모리 카드의 이름을 나타낸다. 이 영역의 단부에는, 엔드 코드(0x00)가 기록된다. 이 크기는 엔드 코드로부터 계산된다. 데이터가 기록되지 않을 경우, 널(0x00)은 적어도 2 바이트로 이 영역의 시작(0x0120)으로부터 기록된다.
값: 다양한 문자 코드.
= CONTENTS KEY
의미: 음악 프로그램용 값. MG(M)으로 보호되어 저장된다. CONTENTS KEY와
동일.
기능: S-YMDhms의 MAC 계산용으로 필요한 키로써 사용됨.
값: 0 내지 0xFFFFFFFFFFFFFFFF
= MAC
의미: 위조된 저작권 정보 체크값.
기능: S-YMDhms 및 CONTENTS KEY 로 생성된 값을 나타낸다.
값: 0 내지 0xFFFFFFFFFFFFFFFF
= S-YMDhms (4 바이트)(옵션)
의미: 신뢰할 만한 시계로 레코더/플레이어에 의해 기록된 년, 월, 일,
시, 분 및 초.
기능: 지난 기록된 날짜 및 시간을 식별. EMD의 경우, 이 영역은 필수.
값: 비트 25 내지 31: 년 0 내지 99(1980 내지 2079)
비트 21 내지 24: 월 0 내지 12
비트 16 내지 24: 일 0 내지 31
비트 11 내지 15: 시 0 내지 23
비트 05 내니 10: 분 0 내지 59
비트 00 내지 04: 초 0 내지 29(2 초 간격)
= TRK-nnn
의미: 재생된 ATRAC3 데이터 파일의 SQN(시퀀스)번호.
기능: TRKINF의 FN0를 나타낸다.
값: 1 내지 400(0x190)
트랙이 없을 경우, 이 영역은 모두 0 이 된다.
= INF-S
의미: 메모리 카드의 부가 정보(예를 들면, 사진, 노래, 가이드 등에 관한 정보).
기능: 헤더를 갖는 가변 길이 부가 정보를 나타낸다. 복수의 부가 정보 형태가 사용된다. 부가 정보의 각각의 형태는 ID 및 데이터 크기를 갖는다. 헤더를 포함하는 각각의 부가 정보 영역은 적어도 16 바이트와 4 바이트의 증분으로 구성된다. 상세한 것은 다음 섹션을 참고하기 바란다.
값: "부가 정보의 데이터 구조"의 섹션을 참조.
재생 관리 파일의 마지막 슬롯에 있어서, 헤더로부터의 BLKID-TL0, MCode 및 REVISION의 복제들이 여분으로 기록된다.
데이터가 메모리 카드로 기록되고 있고 중에, 메모리 카드가 우연히 분리되거나, 레코더/플레이어의 전원이 끊어졌을 경우, 종료 에러가 검출되어야 한다. 상술한 바와 같이, REVISION 영역은 각 블록 시작과 끝 부분에 위치한다. 데이터가 재기록될 때마다, REVISION 영역의 값은 증가된다. 종료 에러가 블록에 기록하는 중에 발생되면, 블록의 시작부분에 REVISION 영역의 값은 블록의 끝 부분의 REVISION 영역의 값과 일치하지 않는다. 두 REVISION 영역간의 이러한 불일치는 종료 에러가 높은 가능성으로 결정되도록 한다. 이러한 비정상적인 종료가 검출되면, 에러 메시지 같은 경고가 발생한다.
또한, 고정된 값 BLKID-TL0 이 하나의 블록(16KB)의 시작부분에 기록되기 때문에, 고정된 값은 데이터 복구를 위해 참조로써 사용될 수 있다. 다시 말하면, 고정된 값은 파일의 형태가 결정되는 것을 허용한다. 고정된 값 BLKID-TL0 이 헤더와 각 블록의 끝부분에 여분으로 기록되기 때문에, 신뢰할 만하다. 대안으로, 전체 재생 관리 파일이 여분으로 기록될 수 있다.
ATRAC3 데이터 파일의 데이터량이 트랙 정보 관리 파일의 양보다 훨씬 크기 때문에, ATRAC3 데이터 파일들은 여분으로 기록될 수 없다. 대신에, COONUM0 및 BLOCK SERIAL 값들이 잃어 버린 ATRAC3 데이터(후술됨)를 복구하는데 일조로 사용될 수 있다. 또한, 하나의 ATRAC3 데이터 파일은 분산된 복수의 블록들로 구성될 수 있다. 동일한 파일의 블록들을 식별하기 위해, CONNUM0 이 사용되며 사용되는 블록들의 순위 BLOCK SERIAL를 식별한다. 마찬가지로, 상술한 바와 같이, 메이커 코드(MCode)는 각 블록의 시작 부분과 끝 부분에 여분으로 기록되어, 적절하게 기록된 파일의 메이커를 식별한다.
도 8은 또한 부가 정보 영역의 구조를 도시한다. 부가 정보 영역은 다음 데이터 및 부가 가변 길이 데이터로 구성된 헤더로 이루어져 있다.
= INF
의미: FIELD ID
기능: 부가 정보(고정된 값)의 시작을 나타낸다.
값: 0x69
= ID
의미: 부가 정보 키 코드.
기능: 부가 정보의 카테고리를 나타낸다.
값: 0 내지 0xFF
= SIZE
의미: 개별적인 부가 정보의 크기.
기능: 각 형태의 부가정보 크기를 나타낸다. 데이터 크기가 제한되지 않더라도, 적어도 16 바이트 및 4 바이트의 증분이 되어야 한다. 데이터의 나머지는 널(0x00)로 채워져야 한다.
값: 16 내지 14784(0x39C0)
= MCode
의미: MAKER CODE
기능: 레코더/플레이어의 메이커 및 모델을 식별.
값: 상위 10 비트(메이커 코드), 하위 10 비트(기계 코드)
= C + L
의미: 12 바이트로부터 시작하는 데이터 영역의 문자 속성.
기능: 1 바이트 코드로써 문자 코드 및 언어 코드를 나타낸다.
값: SNC + L과 동일.
= DATA
의미: 개별적 부가 정보
기능: 가변 길이 데이터를 갖는 부가 정보의 각 형태를 나타낸다. 실제 데이터는 12 바이트로부터 항상 시작한다. 실제 데이터의 길이(크기)는 적어도 4 바이트 및 4 바이트의 증분이 되어야한다. 데이터 영역의 나머지는 널(0x00)로 채워져야 한다.
값: 부가 정보의 각 형태의 콘텐트에 대응하여 개별적으로 지정.
그 다음, 도 9에 도시된 트랙 데이터 파일들(1010 내지 1013)에 대하여 설명한다. 트랙 데이터 파일(1010)은 5개의 클러스터들(CL(0), CL(1), CL(2), CL(3),CL(4))를 포함하는 하나의 파트로 구성되어 있다. 트랙 데이터 파일(1010)을 포함하는 파트는 클러스터CL(0)의 헤드에서 시작하여 클러스터CL(4)의 사운드 유닛SU(4)에서 종결된다.
트랙 데이터 파일들(1011 내지 1013) 각각이 도 9에 도시된 구조와 근본적으로 동일하지만, 파트들의 수, 클러스터들의 수 및 클러스터에 포함된 사운드 유닛(SU)들의 수는 독립적으로 결정되며, 트랙 데이터 파일들 사이에서 변할 수 있다.
이어서, 음악 프로그램들과 ATRAC3 데이터 파일들 간의 관계가 설명된다. 하나의 트랙은 하나의 음악 프로그램에 대응한다. 또한, 하나의 음악 프로그램은 하나의 ATRAC3 데이터(도 6 참조)로 구성된다. ATRAC3 데이터 파일은 메모리 카드(40)에 한번에 한 클러스터로 기록된다. 각 클러스터는 16 KB의 용량을 갖는다. 하나의 파일만이 각 클러스터에 포함된다. 플래시 매모리(42)에 대한 데이터의 최소 소거가능 유닛은 하나의 블록이다. 하나의 블록은 하나의 클러스터 또는 하나의 섹터를 의미한다.
하나의 음악 프로그램(또는 트랙)은 트랙 데이터 파일의 하나의 파트에 일반적으로 기록된다. 그러나, 프로그램이 편집되는 경우, 음악 프로그램은 복수의 파트들로 분리된다. 단일 음악 프로그램을 포함하는 하나 이상의 파트간의 관계는 각 음악 프로그램(도 6 참조)의 속성 헤더에 저장된 파트 정보 PRTINF로 관리된다. 파트 크기는 파트 정보 PRTINF의 파트 크기 PRTSIZE(4 바이트)로 표현된다. 파트 크기 PRTSIZE의 첫 번째 2 바이트는 현재 파트의 전체 클러스터들의 수를 나타낸다. 그 다음의 2 바이트는 제 1 및 최종 클러스터들의 시작 사운드 유닛(SU)과 종결 사운드 유닛(SU)의 위치들을 각각 나타낸다. 이러한 파트들의 마킹으로, 편집되는 동안 발생한 음악 데이터의 이동이 트래킹될 수 있다.
SU는 ATRAC3 포맷에 따라 압축된 파트의 최소 유닛이다. 하나의 SU 는 44.1kHz(1024x16 비트 x 2 채널)에서 1024 샘플들로 구성되어, 10의 인수에 의해 압축될 수 있다. 이것은 오디오의 약 23 msec에 대응한다. 통상적으로, 단일 파트는 수천 SU를 포함한다. 따라서, 42 SU로 구성된 하나의 클러스터는 약 1초의 오디오를 저장한다.
이론상으로는, 하나의 트랙을 포함하는 파트들의 최대 수는 645이다. 그러나, 임의의 주어진 트랙에서 사용 가능한 파트들의 실제 수는 헤더, 프로그램 이름, 부가 데이터 및 부가 정보의 크기 등에 의해 제한된다.
도 10은 1 SU 가 N 바이트(예를 들면, N = 384 바이트)인 경우, ATRAC3 데이터 파일 A3Dnnnn의 데이터 배열을 도시한다. 도 10은 또한, 데이터 파일 및 음악 데이터 파일(1 블록)의 속성 헤더(1 블록)를 두 개의 블록들의 각 슬롯(16 x 2 = 32 킬로바이트)의 제 1 바이트(0x0000 내지 0x7FFF)와 더불어 도시한다. 도 11에 도시된 바와 같이, 속성 헤더의 제 1 의 32 바이트는 헤더로써 사용되고; 256 바이트는 음악 프로그램 영역 NM1(256 바이트)으로써 사용되며; 512 바이트는 음악 프로그램 제목 영역 NM2(512 바이트)로써 사용된다. ATRAC3 데이터 파일의 헤더는 다음 영역들을 포함한다:
=BLKID-HD0(4 바이트)
의미:BLOCKID FIELD ID
기능:ATRAC3 데이터 파일의 상단을 식별함.
값:고정값="HD=0"(예를 들어,0x48442D30)
=MCode(2 바이트)
의미:MAKER CODE
기능:레코더/플레이어의 메이커와 모델을 식별함.
값:상위 10 비트(메이커 코드);하위 6 비트(기계 코드)
=BLOCK SERIAL(4 바이트)
의미: 트랙 시리얼 번호
기능: 0에서 개시되어 1 씩 증가한다. 음악 프로그램을 편집할지라도, 이 값은 변하지 않는다.
값:0 내지 0xFFFFFFFF.
= NIC+L(2 바이트)
의미:트랙(음악 프로그램 타이틀)의 데이터(NM1)의 속성을 나타낸다.
기능:NM1의 문자 코드 및 언어 코드를 1 바이트 코드로서 나타낸다.
값:SN1C+L과 동일
=N2C+L(2 바이트)
의미:트랙(음악 프로그램 타이틀)의 데이터(NM2)의 속성을 나타낸다.
기능:NM1의 문자 코드 및 언어 코드를 1 바이트 코드로서 나타낸다.
값:SN1C+L과 동일
=INFSIZE(2 바이트)
의미:현재 트랙의 부가 정보의 전체 크기.
기능:16 바이트의 배수로서 데이터 크기를 나타낸다. 데이터가 기록되지 않을 때, 이 영역은 모두 0이 되어야 한다.
값: 0x0000 내지 0x3C6(966)
=T-PRT(2 바이트)
의미:총 바이트 수
기능:현재 트랙을 구성하는 파트들의 수를 나타낸다.
일반적으로, T-PRT의 값은 1이다.
값:1 내지 285(645 십진)
=T-SU(4 바이트)
의미:총 SU 수
기능:한 트랙 내의 프로그램 성능 지속기간에 일치하는 총 SU 수를 나타낸다.
값:0x01 내지 0x001FFFFF
=INX(2 바이트)(옵션)
의미:INDEX의 상대적 위치
기능:음악 프로그램을 나타내는 부분 중 상단을 나타내는 포인터로서 사용된다. INX 값은 프로그램의 현재 위치로서, SU 수를 4로 나눈 값으로 나타난다. 이런 INX 값은 SU 수보다 4배 큰 값에 일치한다.(약 93 msec)
값: 0 내지 0xFFFF(최대 약 6084 sec)
=XT(2 바이트)(옵션)
의미:INDEX의 재생 지속기간
기능:SU 수를 4로 나눈 값을 갖는 INX-nnn에 의해 나타난 재생 지속기간을 나타낸다. INDEX 값은 일반적인 SU 보다 4배 큰 값에 일치한다.(약 93 msec)
값:0x0000(세팅불능);0x01 내지 0xFFFE(6084 sec 까지);0xFFFF(프로그램 종료시까지)
다음에, 음악 프로그램 타이틀 영역들(NM1과 NM2)을 설명하겠다.
=NM1
의미:음악 프로그램 타이틀의 문자열
기능:음악 프로그램 타이틀을 1 바이트 코드로서 나타낸다(256 문자까지)(가변 길이). 타이틀 영역은 엔드 코드(0x00)로 완성되어야 한다. 크기는 엔드 코드로부터 계산되어야 한다. 데이터가 기록되어 있지 않을 때, 널(0x00)이 적어도 1 바이트에 대한 영역의 시작(0x0020)에서부터 기록되어야 한다.
값:다양한 문자 코드들
=NM2
의미:음악 프로그램 타이틀의 문자열
기능:음악 프로그램 타이틀을 2 바이트 코드로서 나타낸다(512 문자까지)(가변 길이). 타이틀 영역은 엔드 코드(0x00)로 완성되어야 한다. 크기는 엔드 코드로부터 계산되어야 한다. 데이터가 기록되어 있지 않을 때, 널(0x100)이 1 바이트에 대한 영역의 시작(0x0120)에서부터 기록되어야 한다.
값:다양한 문자 코드들
속성 헤더의 고정된 위치(0x320)로부터 시작된 80 바이트의 데이터는 트랙 정보 영역 TRKINF로 불린다. 이런 영역은 주로 특정 트랙의 보안 정보 및 복제 제어 정보를 총괄적으로 관리하는데 사용된다. 도 12는 TRKINF의 파트를 도시한다. TRKINF 영역은 다음의 영역들을 포함한다.
=CONTENTS KEY(8 바이트)
의미:각각의 음악 프로그램의 값. CONTENTS KEY 값은 메모리 카드의 보안 블록에서 보호되고 저장된다.
기능:음악 프로그램을 재생하기 위한 키로서 사용된다. MAC 값을 계산하는데 사용된다.
값:0 내지 0xFFFFFFFFFFFFFFFF
MAC(8 바이트)
의미:위조된 저작권 정보 체크 값
기능:콘텐트 누적수와 보안 시퀀스 수를 포함하는 다수의 TRKINF 값에 의해 발생된 값을 나타낸다. 보안 시퀀스 수는 메모리 카드의 보안 영역에 기록된 시퀀스 수이다. 저작권 비보호형 레코더는 메모리 카드의 보안 영역으로부터 데이터를 판독할 수 없다. 반면에, 저작권 보호형 레코더와 메모리 카드로부터 데이터를 판독할 수 있는 프로그램으로 동작하는 컴퓨터는 보안 영역에 액세스할 수 있다.
=A(1 바이트)
의미:파트 속성
기능:파트의 압축 모드와 같은 정보를 나타낸다.
값:이후에 설명 참조(도 12 및 도 13 참조)
다음에, 영역A의 값을 설명하겠다. 이후의 설명에서, 단일 모드(N=0 또는 1)는 비트 7=1, 서브신호=0, 메인신호=(L+R)인 특별 접합 모드로서 정의된다. 저작권 보호가 불가능한 플레이어는 정보 비트 2 및 1 을 무시한다.
영역A의 비트0은 엠파시스(emphasis)의 온-오프 여부를 나타낸다. 비트1은 스킵 재생 또는 일반 재생을 나타낸다. 비트2는 오디오 데이터, FAX 데이터와 같은 데이터형을 지시한다. 비트3은 정의되지 않았다. ATRAC3에 대한 모드 정보는 비트4,5,및 6의 조합으로 도 13에 도시된 바와 같이 표시된다. 즉, N 은 모드를 나타내고, 3 비트로 표시된다. 도 13에서, 열거한 (단일(N=0 또는 1), LP(N=2), SP(N=4), EX(N=5), 및 HQ(N=7))의 5개의 모드들의 형태에 따라, 기록 지속기간(64MB 메모리 카드), 데이터 전송 속도, 및 블록 당 SU수가 제공된다. 각각의 SU의 바이트 수는 정의된 모드에 의존한다. 단일 모드 1에서, SU는 136바이트이다. LP 모드 1에서, SU는 192바이트이다. SP 모드 1에서, SU는 304바이트이다. EX 모드 1에서, SU는 384바이트이다. HQ 모드 1에서, SU는 512바이트이다. 영역A의 비트7은 ATRAC3의 모드 형태(0:이중, 1:접합)를 나타낸다.
예를 들어, SP 모드에 사용되는 64MB 메모리 카드를 설명하겠다. 64MB 메모리 카드는 3968 블록들을 가진다. SP 모드에서, 1 SU는 304바이트이기 때문에, 블록은 53 SU를 포함한다. 그러므로, 1 SU는 (1024/44100)초에 일치한다. 그러므로, 64MB 메모리 카드는 (1024/44100)x53x(3968-10)=4863 초=81 분을 저장한다. 전송 속도는 (44100/1024)x304x8=104737bps 이다.
도 12를 다시 참조하여, TRKINF의 영역들의 남은 부분을 설명하겠다.
=LT(1 바이트)
의미:재생 제한 플래그(비트7 및 6)와 보안부(비트5 내지 0).
기능:현재 트랙의 제한을 나타낸다.
값: 비트7: 0=무제한, 1=제한
비트6: 0=유효, 1=만료
비트5 내지 0: 보안부(0이상에서 재생 금지)
=FNo(2 바이트)
의미:파일 번호
기능:메모리 카드의 보안 영역에 기록된 MAC 계산값의 위치를 지정하는 초기에 기록된 트랙 번호를 나타낸다.
값:1 내지 0x190(400)
=MG(D) SERIAL-nnn(16 바이트)
의미:레코더/플레이어의 보안 블록(20:보안 IC)의 시리얼 번호를 나타낸다.
기능:각각의 레코더/플레이어의 유일한 값
값:0 내지 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
=CONNUM(4 바이트)
의미:콘텐트 누적 번호
기능:각각의 음악 프로그램에 대해 누적된 유일한 값을 나타낸다. 상기 값은 레코더/플레이어의 보안 블록에 의해 관리된다. 상기 값의 최대는 232, 즉 4,200,000,000이다. 기록된 프로그램을 확인하는데 사용된다.
값:0 내지 0xFFFFFFFF
=YMDhms-S(4 바이트)(옵션)
의미:재생 제한을 가진 트랙의 재생 개시 날짜와 시간
기능:EMD와 함께 데이터 재생이 허용되는 날짜와 시간을 나타낸다.
값:다른 영역들의 날짜와 시간 표시법과 동일함
=YMDhms-E(4 바이트)(옵션)
의미:재생 제한을 가진 트랙의 재생 종료 날짜와 시간
기능:EMD와 함께 데이터 재생이 만료되는 날짜와 시간을 나타낸다.
값:다른 영역들의 날짜와 시간 표시법과 동일함
=MT(1 바이트)(옵션)
의미:허용되는 재생 횟수의 최대값
기능:EMD에 의해 나타난 재생 횟수의 최대값을 나타낸다.
값:1 내지 0xFF. 사용되지 않으면, 영역MT의 값은 00이다.
=CT(1 바이트)(옵션)
의미:재생 횟수
기능:허용되는 재생 횟수 중에서 현재 재생 횟수를 나타낸다. 데이터가 재생되면, 영역CT의 값은 감소한다.
값:0x00 내지 0xFF. 사용되지 않으면, 영역CT의 값은 0x00이다. 영역LT의 비트7이 1이고 영역CT의 값이 00이면, 데이터는 재생이 금지된다.
=CC(1 바이트)
의미:COPY CONTROL
기능:복제 동작을 제어한다.
값:(도 14 참조)비트6과 비트7은 복제 제어 정보를 나타낸다. 비트4와 비트5는 고속 디지털 복제 동작에 대한 복제 제어 정보를 나타낸다. 비트2와 비트3은 보완 블록 인증 레벨을 나타낸다. 비트0과 비트1은 규정되지 않았다.
CC의 예:
(비트7과 비트6)
11:무제한 복제 허용
01:복제 금지
00:1회 복제 허용
(비트3과 비트2)
00:아날로그/디지털 입력 기록
MG 인증 레벨이 0이다. CD의 데이터를 사용하여 디지털 기록 동작을 실행할 때, (비트7과 비트6):00 및 (비트3과 비트2):00이다.
=CN(1 바이트)(옵션)
의미:고속 시리얼 복제 관리 시스템에서 허용 복제 횟수
기능:허용 복제 회수를 1회로 제한하거나 무제한 허용하지 않고, 복제 회수를 늘림. 1 세대 복제에서만 유효. 영역CN의 값은 복제 동작이 실행될 때마다 감소한다.
값:
00:복제 금지
01 내지 0xFE:횟수
0xFF:회수 제한
도 10을 다시 참조하면, 트랙 정보 영역 TRKINF 이후에, 0x370 부터 개시되는 24 바이트의 파트 관리 정보 영역 PRTINF이 배열된다. 트랙이 다수의 파트들로 구성되고, 각각의 파트들의 주소들은 PRTINF 에 연속적으로 배치되어 있다. 도 15는 PRTINF 영역의 부분을 도시한다. 다음에, PRTINF 영역이 배열 순서대로 설명된다.
=PRTSIZE(4 바이트)
의미:파트 크기
기능: 파트 크기를 나타낸다. 클러스터:2 바이트(최상위 위치), 개시 SU:1 바이트(상부), 종료 SU:1 바이트(최하부 위치).
값:클러스터:1 내지 0x1F40(8000)
개시 SU:0 내지 0xA0(160)
종료 SU:0 내지 0xA0(16)(SU는 0에서 개시됨)
=PRTKEY(8 바이트)
의미:파트 암호화 값
기능:파트를 암호화한다. 초기값=0이다. 편집 규칙이 적용된다.
값:0 내지 0xFFFFFFFFFFFFFFFF
=CONNUM0(4 바이트)
의미:초기에 발생된 콘텐트 누적 번호 키
기능:콘텐트의 ID를 유일하게 설계한다.
값:콘텐트 누적 번호 초기 값 키의 값과 동일한 값
도 10에서 도시된 바와 같이, ATRAC3 데이터 파일의 헤더 속성은 부가 정보 INF 영역을 포함한다. 부가 정보는 개시 위치가 고정되어 있지 않다는 점을 제외하면 재생 관리 파일의 부가 정보 INF-S 영역(도 7 및 도 8 참조)과 동일하다. 하나 이상의 다수의 파트들의 종료지점인 마지막 바이트 위치(4 바이트의 배수) 이후에 부가 정보 INF 영역이 배열된다.
=INF
의미:트랙에 대한 부가 정보
기능:헤더에 가변 길이 부가 정보를 나타낸다. 다양한 형태들의 다수의 부가 정보가 배열될 수 있다. 각각의 부가 정보 영역들은 ID 와 데이터 크기를 가진다. 각각의 부가 정보 영역은 적어도 16 바이트, 4 바이트의 배수로 구성된다.
값:재생 관리 파일의 부가 정보 INF-S와 동일한 값
상술된 속성 헤드 이후에 다수의 데이터 블록들이 배열된다. 헤드가 각각의 데이터 블록에 부가된다. 다음에, 도 16에 도시된 바와 같이, 부가된 헤더의 각각의 블록이 도시된다.
=BLKID-A3D(4 바이트)
의미:BLOCKID FILE ID
기능:ATRAC3 데이터의 상단을 식별함.
값:고정값="A3D"(예를 들어,0x41334420)
=MCode(2 바이트)
의미:MAKER CODE
기능:레코더/플레이어의 메이커와 모델을 식별함.
값:상위 10 비트(메이커 코드);하위 6 비트(기계 코드)
=CONNUM0(4 바이트)
의미:초기에 발생된 콘텐트의 누적 번호
기능:콘텐트의 ID를 유일하게 설계한다. 콘텐트를 편집할지라도, CONNUMO 영역의 값은 변하지 않는다.
값:콘텐트 누적 번호 초기 키와 동일한 값
=BLOCK SERIAL(4 바이트)
의미: 각각의 트랙에 할당된 시리얼 번호
기능: 0에서 개시되어 1 씩 증가한다. 콘텐트를 편집할지라도, BLOCK SERIAL 영역의 값은 변하지 않는다.
값:0 내지 0XFFFFFFFF.
=BLOCK-SEED(8 바이트)
의미:한 블록 암호화 키
기능:블록의 개시값은 레코더/플레이어의 보완 블록에 의해 발생된 난수이다. 난수 이후에 1 씩 증가하는 값이 배열된다. BLOCK-SEED 영역의 값이 손실되면, 1 블록에 일치하는 1초동안 사운드가 발생하지 않으므로, 동일한 데이터가 헤더와 블록의 마지막에 기록된다. 콘텐트를 편집할지라도, BLOCK-SEED 영역의 값은 변하지 않는다.
값:초기에 8 비트 난수
=INITIALIZATION VECTOR(8 바이트)
의미:ATRAC3 데이터를 암호화/해독화 하는데 필요한 값
기능:각각의 블록을 위한 ATRAC3 데이터를 암호화 및 해독화하는데 필요한 초기값을 나타낸다. 블록은 0부터 개시된다. 다음의 블록은 마지막 암호화된 8 비트 값의 마지막 SU에서 개시된다. 블록을 분할할 때, 개시 SU 바로 전에 마지막 8 바이트가 사용된다. 콘텐트를 편집할지라도, INITIALIZATION VECTOR 영역의 값은 변하지 않는다.
값:0 내지 0xFFFFFFFFFFFFFFFF
=SU-nnn
의미:사운드 유닛의 데이터
기능:1024 샘플들로부터 압축된 데이터를 나타낸다. 출력 데이터의 바이트 수는 압축 모드에 의존한다. 콘텐트를 편집할지라도, SU-nnn 영역의 값은 변하지 않는다. 예를 들어, SP 모드에서, N=384 바이트이다.
값:ATRAC3 의 데이터 값
도 10에서, N=384이므로, 42개 SU들이 하나의 블록에 기록된다. 블록의 첫번째 두개의 슬롯들(4 바이트)은 헤더로 사용된다. 마지막 슬롯(2 바이트)에서, BLKID-A3D, Mcode, CONNUM0, 및 BLOCK SERIAL 은 덧붙여져서 기록된다. 그러므로, 한 블록의 남은 영역의 M 바이트는 (16,384-384x42-16x3=208) 바이트이다. 상술된 바와 같이, 8 바이트 BLOCK SEED 영역이 또한 덧붙여져서 기록된다.
또한, 사운드 유닛 SU(0)~ (101)은 각각 도 2에 도시된 암호화/해독화 유닛(64)의 CBC(cipher block chaining) 모드 중에 64 비트(8 바이트) 암호 블록들의 유닛들에서 암호화를 실행하여 생성된 각각 8 바이트 암호문 Ci 으로 구성된다. 본 발명에서, 사운드 유닛 SU의 바이트수(예를 들면, 160 바이트)는 암호화 단위인, 암호 블록의 바이트수(예를 들면, 8 바이트)의 배수로 나타난다. 즉, 한 사운드 유닛 SU은 예를 들어, 20 개의 암호문 Ci 으로 구성된다. 각각의 암호문 Ci 는 사운드 유닛 SU내에 있고, 암호문 Ci는 절대 다수의 사운드 유닛 SU을 암호화하지 않는다.
플래시 메모리(34)에 저장된 오디오 데이터는 다음과 같이 압축된다. 압축 유닛은 사운드 유닛 SU이다. 따라서, 오디오 데이터가 휴대용 저장 장치(3)로부터 휴대용 플레이어(4)에 판독될 때, 최소 판독가능한 유닛은 사운드 유닛 SU이다. 그렇기 때문에, 암호화 블록 사이에 틈이 없게 되고, 플래시 메모리(34)에 저장된 암호화된 오디오 데이터를 액세스할 때 프로세싱 부하가 감소된다. 각각의 클러스터에 포함된 사운드 유닛 SU의 수는 1 내지 102 사이의 임의의 수가 될 수 있다. 또한, 오디오 데이터의 압축하는 방법은 ATRAC3 또는 다른 CODEC 방법이 될 수 있다.
블록 시드 데이터 BS는 각각의 클러스터마다 난수를 발생시켜 생성할 수 있으며, 다음과 같이, 휴대용 플레이어(4)의 클러스터마다 블록 키 데이터 BK를 생성할 때 사용된다. 또한, 각각의 클러스터의 사운드 유닛은 플래시 메모리(34)의 연속적인 주소에 순서대로 저장된다. 그러므로, 암호화 블록은 연속적으로 플래시 메모리(34)에 암화화된 순서대로 저장된다.
플래시 메모리 관리 모듈(35)
플래시 메모리 관리 모듈(35)은 플래시 메모리(34)에 데이터를 기록하거나 플래시 메모리(34)로부터 데이터를 판독시에 제어를 실행한다.
휴대용 플레이어(4)
도 2에 도시된 바와 같이, 휴대용 플레이어(4)는 메인 제어 모듈(41), 통신 인터페이스(42), 제어 모듈(43), 편집 모듈(44), 압축/확장 모듈(45), 스피커(46), D/A 변환기(47), 및 A/C 변환기(48)를 포함하고 있다.
메인 제어 모듈(41)
메인 제어 모듈(41)은 휴대용 플레이어(4)에 의한 프로세싱을 중앙 집중적으로 제어한다.
제어 모듈(43)
제어 모듈(43)은 난수 발생 유닛(60), 저장 유닛(61), 키 생성/키 처리 유닛(62), 상호 식별 유닛(63), 암호화/해독화 유닛(64), 및 제어 유닛(65)을 포함한다.
제어 모듈(43)은 암호화에만 사용되는 제어 모듈(33)과 유사한 다층 구조를 가진 단일칩 집적 회로로 구성된다. 내부 메모리 셀은 더미층들 사이에 개재된다(알루미늄 층들과 같이). 또한, 제어 모듈(43)의 좁은 동작 전압 또는 좁은 동작 주파수는 범위를 가지며, 외부로부터 데이터가 불법적으로 판독되는 것을 방지하는 탬퍼(tamper) 저항이다.
난수 발생 유닛(60)은 난수 발생 명령을 수신하자마자 64 비트(8 바이트)의 난수를 발생한다.
저장 유닛(61)은 식별에 요구되는 다양한 데이터를 저장한다. 도 17에 도시된 바와 같이, 저장 유닛(61)은 마스터 키 데이터(MK0 내지 MK31)와 식별 데이터(IDm)를 저장한다.
이하의 식(1)은 마스터 키 데이터(MK0 내지 MK31), 식별 키(IK0 내지 IK31), 및 장치 식별 데이터(IDm) 사이의 관계를 나타낸다. 다음의 식에서, f(a,b)는 인수 a 및 b로부터 값을 유도하는 함수이다.
IKj=f(MKj, IDm) (1)
여기서, j는 0≤j≤31 를 만족시키는 정수.
저장 유닛(61)에서 식별 키(IK0 내지 IK31)의 저장 주소는 5 비트로 표현된다. 저장 유닛(61)에서 마스터 키 데이터(MK0 내지 MK31)는 대응하는 저장 주소에 할당된다.
키 생성/키 처리 유닛(62)은 다양한 동작을 실행하여 키 데이터를 생성한다(예를 들어, MAC 동작은 ISO/IEC9797에 정의됨). 이때에, FIPS PUB 46-2에서 규정된 DES 는 "블록 암호 알고리즘"으로서 사용된다.
상호 식별 유닛(63)은 컴퓨터(2)에서 휴대용 저장 장치(3)로의 오디오 데이터를 전송하기 이전에 휴대용 저장 장치와 함께 상호 식별 프로세싱을 실행한다. 상호 식별 유닛(63)은 또한 휴대용 저장 장치(3)로부터 오디로 데이터를 수신하기 전에 휴대용 저장 장치(3)와 함께 상호 식별 프로세싱을 실행한다. 또한, 상호 식별 유닛(63)은 상호 식별 프로세싱 동안에 MAC 동작을 실행하고, 저장 유닛(61)에 저장된 데이터를 사용한다. 상호 식별 유닛(61)은 오디오 데이터가 저장 유닛에 입출력되기 전에 네트워크(5)상의 컴퓨터 또는 컴퓨터(2)와 함께 상호 식별 프로세싱을 실행한다.
암호화/해독화 유닛(64)은 FIPS PUB(81)에서 설명된 ECB 모드 또는 CBC 모드를 선택적으로 사용하여 블록 암호화를 실행한다. 암호화/해독화 유닛(64)은 암호화된 오디오 데이터(암호문)를 생성하는 식(2)에 기초한 64 비트의 암호 블록의 유닛에서, 컴퓨터(2) 또는 CD 플레이어(7)로부터의 오디오 데이터(플레인 데이터) 입력을 암호화하기 위해, CBC 모드의 56 비트 키 k 를 사용한다.
CBC 모드에서, 이전의 것은 다음의 데이터 그룹을 암호화하는데 사용된다. 그러므로, 식별 데이터가 입력되면, 다른 암호문이 출력된다. 이런 것으로 인해, 해독이 어려워진다.
Ci=Ek (Pi XOR Ci-1) (2)
여기서,
i:1이상의 정수
Pi:플레인 텍스트(64 비트)
Ci:암호문(64 비트)
XOR:배타적 논리합(OR)
Ek:56 비트 키 데이터 k를 사용하는 DES 시스템에 의한 암호화
식(2)의 연산은 도 18을 참조로 설명된다. "IV"는 블록 암호화 초기값(64 비트)이고, 휴대용 저장 장치(3)의 플래시 메모리(34)에서 클러스터(CL) 내의 사운드 유닛 SU(0) 바로 이전에 저장된다.
ATRAC는 MiniDisk®에 사용된 코딩 및 압축 방법이며, 288 kbit/s 44.1 kHz 샘플 스테레오 신호가 대역 분할과 MDCT(modified discrete cosine transform)를 이용하여 인코딩된다. 먼저, 데이터는 대역 분할 필터에 의해 1/4, 1/4, 및 1/2 로 3 대역으로 분할되고, MDCT에 의해 주파수 영역으로 변환되며, MDCT의 계수는 적응 비트 분할에 의해 여러 크기로 양자화된다.
암호화/해독화 유닛(64)은 FIPS81 모드 사이에서 ECB 모드 및 CBC 모드(15)를 사용하여 해독화를 실행한다. 암호화/해독화 유닛(64)은 이하에 도시된 식(3)에 따라 56 비트 키 k 를 사용하여 암호 블록의 유닛에서 암호문을 해독하여 플레인 텍스트를 생성한다.
Pi= Ci-1 XOR Dk(Ci) (3)
여기서,
i:1이상의 정수
Pi:플레인 텍스트(64 비트)
Ci:암호문(64 비트)
XOR:배타적 논리합(OR)
Dk:56 비트 키 데이터 k를 사용하는 DES 시스템에 의한 암호화
식(3)의 연산은 도 19를 참조로 설명된다. 도 19에서, "IV"는 블록 암호화 초기값(64 비트)이고, 휴대용 저장 장치(3)의 플래시 메모리(34)에서 클러스터(CL)내의 사운드 유닛 SU(0) 바로 이전에 저장된다.
제어 유닛(65)은 난수 발생 유닛(60), 저장 유닛(61), 키 생성/처리 유닛(62), 상호 식별 유닛(63), 및 암호화/해독화 유닛(64)의 프로세싱을 제어한다.
편집 모듈(44)
편집 모듈(44)은 휴대용 저장 장치(3)의 플래시 메모리(34)에 저장된 트랙 데이터 파일(1010 내지 1013)(도 4 참조)을 편집하여 사용자의 명령에 기초하여 새로운 트랙 파일을 생성한다. 이런 편집 동작은 한 트랙 데이터 파일을 두 트랙 데이터 파일로 나누는 분할 편집과 두 트랙 데이터 파일을 한 트랙 데이터 파일로 붙이는 결합 편집을 포함한다. 이런 편집을 한 후에, 재생 관리 파일(100)과 트랙 데이터 파일(1010 내지 1013)이 필요에 따라 재기록된다.
압축/확장 모듈(45)
암호화된 오디오 데이터를 재생하는 프로세싱 파트로서, 압축/확장 모듈(45)은 압축된 ATRAC3 오디오 데이터를 압축 해제하여, D/A 변환기(47)에 출력한다. 또한, 모듈(45)은 오디오 신호 데이터를 CD 플레이어(7) 또는 컴퓨터(2)로부터 CD 휴대용 저장 장치(3)에 저장할 때 ATRAC3 포맷을 사용하여 오디오 데이터를 압축한다.
D/A 변환기(47)
D/A 변환기(47)는 압축/확장 모듈(45)로부터의 디지털 오디오 데이터를 스피커(46)에 출력되는 아날로그 오디오 데이터로 변환한다.
스피커(46)
스피커(46)는 D/A 변환기(47)로부터의 오디오 데이터 입력에 따라 사운드를 출력한다.
A/D 변환기(48)
A/D 변환기(48)는 압축/확장 모듈(45)에 출력하기 위해 CD 플레이어(7)로부터의 아날로그 오디오 데이터 입력을 디지털 데이터로 변환한다.
휴대형 저장 장치(3)에 대한 기록 동작
도 20은 휴대형 플레이어(4)에서 휴대형 저장 장치(3)로 데이터를 기록하는 동작을 설명하는 흐름도이다.
단계 S1 : 기록 요청 신호가 휴대형 플레이어(4)로부터 휴대형 저장 장치(3)로 전송된다.
단계 S2 : 휴대형 저장 장치(3)와 휴대형 플레이어(4) 사이의 상호 식별에 사용되는 식별 키 데이터 IKj가 선택된다. 이 단계의 처리는 이하에서 상세히 설명된다.
단계 S3 : 상호 식별 처리는 휴대형 저장 장치(3)와 휴대형 플레이어(4) 사이에서 행해진다. 이 단계에서의 처리는 이하에서 상세히 설명한다.
단계 S4 : 휴대형 저장 장치(3)와 휴대형 플레이어(4) 각각은 세 번째 대상이 단계 S3의 상호 식별 처리에 따라 정당한 것으로 인정되면, 제어는 단계 S5로 간다. 그렇지 않으면, 처리는 종결된다.
단계 S5 : 세션 키 데이터 Sek가 휴대형 저장 장치(3)와 휴대형 플레이어(4) 양자에서 생성된다. 이 단계에서의 처리는 이하에서 상세히 설명한다.
단계 S6 : 암호화된 오디오 데이터가 출력되어 휴대형 플레이어(4)에서 통신 인터페이스(32, 42)를 통해 휴대형 저장 장치(3)에 기록된다. 이 단계에서의 처리는 이하에서 상세히 설명된다.
이러한 방식으로, 상호 식별 처리가 휴대형 저장 장치(3)와 휴대형 플레이어(4) 사이에서 행해지고, 세 번째 대상이 정당한 것으로 각각 인정될 경우에만 암호화된 오디오 데이터가 휴대형 플레이어(4)로부터 휴대형 저장 장치(3)로 기록된다. 이러한 방법에 의해, 오디오 데이터의 불법 복제를 용이하게 피할 수 있다.
식별 키 데이터 IK j 의 선택(도 20의 단계 S2)
도 21은 도 20의 단계 S2에서 원래부터 나타나 있었던 식별 키 데이터 IKj의 선택을 설명한다. 64 비트 난수 Rj가 도 2에 도시된 휴대형 플레이어(4)의 난수 발생 유닛(60)에 의해 생성된다. 난수 Rj는 휴대형 플레이어(4)로부터 휴대형 저장 장치(3)로 출력된다. 휴대형 저장 장치(3)의 상호 식별 유닛(3)은 64 비트 난수 Rj의 하위 5 비트를 사용하여 식별 키 데이터 IKj(여기서 j는 0≤j≤31를 만족시키는 정수)를 미리 저장된 식별 키 데이터 IK0에서 저장 유닛(51)에 저장된 IK31로 지정한다. 장치 식별 데이터 IDm는 마찬가지로 휴대형 저장 장치(3)의 저장 유닛(51)으로부터 판독되어 휴대형 플레이어(4)로 출력된다. 휴대형 플레이어(4)의 상호 식별 유닛(63)은 난수 Rj의 하위 5 비트를 사용하여 마스터 키 데이터 MKj를 미리 저장된 마스터 키 데이터 MKO에서 MK31로 지정한다.
키 생성/키 처리 유닛(62)은 지정된 마스터 키 데이터 MKj와 장치 식별 데이터 IDm을 사용하여 하기 식(4)에 기초하여 식별 키 데이터 IKj를 생성한다. f(a, b)는 예를 들면 변수 a, b로부터 값을 구하기 위한 임의의 함수이다.
IKj=f(MKj, IDm) (4)
휴대형 저장 장치(3)와 휴대형 플레이어(4)가 식(4)에 나타낸 관계를 갖는 식별 키 데이터 IK0 내지 IK31과 마스터 키 데이터 MK0 내지 MK31을 가지면, 동일 식별 키 데이터 IKj가 도 21에 나타낸 처리에 의해 선택된다.
선택된 식별 키 데이터 IKj는 이하에 기술되는 것과 같이, 상호 식별 처리에서 비밀 키로서 사용된다. 도 21에 나타낸 처리가 행해질 때에는, 식별 키 데이터가 32개의 식별 키 데이터 IKj중에서 난수 Rj에 따라 임의로 선택된다. 이것은 단지 하나의 식별 키 데이터가 사용되는 경우의 1/32로 성공적으로 불법 식별을 꾸밀 가능성을 감소시켜, 불법 식별을 피할 수 있는 가능성을 높인다.
상기한 실시예에 있어서, 식별 키 데이터는 난수를 사용하여 선택된다. 그러나 휴대형 저장 장치(3)와 휴대형 플레이어(4)의 외부로부터 입력된 키 지정 신호에 기초하여 식별 키를 결정하는 것도 가능하다.
휴대형 저장 장치(3)와 휴대형 플레이어(4) 사이의 상호 식별(도 20의 단계 S3)
도 22는 휴대형 저장 장치(3)와 휴대형 플레이어(4) 사이에서 행해지는 상호 식별 처리를 설명하는 도면이다. 상호 식별 처리를 개시하기 전에, 도 21에 나타낸 식별 키 데이터 IKj의 선택이 완료되고 휴대형 플레이어(4)의 상호 식별 유닛(53)이 선택된 식별 키 데이터 IKj와 장치 식별 데이터 IDm을 가진다. 또한, 휴대형 저장 장치(3)의 상호 식별 유닛(63)은 선택된 식별 키 데이터 IKj와 휴대형 저장 장치(3)의 장치 식별 데이터 IDm를 가진다. 상호 식별은 다음과 같이 진행한다.
단계 S10 : 휴대형 저장 장치(3)의 난수 발생 유닛(50)은 64비트 난수 Rms를 생성하고 그것을 휴대형 플레이어(4)에 출력한다.
단계 S11 : 휴대형 플레이어(4)의 난수 발생 유닛(60)은 64 비트 난수 Rd 및 Sd를 생성한다.
단계 S12 : 휴대형 플레이어(4)의 상호 식별 유닛(63)은 도 20에 나타낸 단계 S2에서 얻어진 식별 키 데이터 IKj와 "Rd∥Rms∥IDm"를 사용하여 아래에 나타낸 것과 같은 식(5)에 기초한 MAC 연산을 행하여, MACA을 찾는다. 여기서, A∥B는 A와 B의 결합을 나타낸다(n 비트 A의 끝으로의 n 비트 B의 결합은 (n+m) 비트를 만든다).
MACA=MAC(IKj, Rd∥Rms∥IDm) (5)
단계 S13 : 휴대형 플레이어(4)는 "Rd∥Sd∥MACA∥j"를 휴대형 저장 장치(3) 에 출력한다.
단계 S14 : 휴대형 저장 장치(3)의 상호 식별 유닛(52)은 도 20에 나타낸 단계 S20에서 얻어진 식별 키 데이터 IKj와 Rd∥Rms∥IDm을 사용하여 아래에 나타낸 것과 같은 식(6)에 기초하여 MAC 연산을 행하고, MACB을 찾는다.
MACB=MAC(IKj, Rd∥Rms∥IDm) (6)
단계 S15 : 휴대형 저장 장치(3)의 상호 식별 유닛(53)은 단계 S14에서 발견된 MACB와 단계 S13에서 입력된 MACA을 비교한다. 이들이 일치하며, 휴대형 플레이어(4)는 적당한 식별 키 데이터 IKj를 가지므로, 휴대형 저장 장치(3)는 적법한 대상으로서 적당한 식별 키 데이터를 식별한다.
단계 S16 : 휴대형 저장 장치(3)의 상호 식별(53)은 도 20에 나타낸 단계 S2에서 얻어진 식별 키 데이터 IKj와 "Rms∥Rd"를 사용하여 식(7)에 기초한 MAC 연산을 행하고, MACC를 찾는다.
MACC=MAC(IKj, Rms∥Rd) (7)
단계 S17 : 휴대형 저장 장치(3)의 난수 발생 유닛(50)은 64비트 난수 Sms를 생성한다.
단계 S18 : "Sms∥MACC"는 휴대형 저장 장치(3)로부터 휴대형 플레이어(4)로 출력된다.
단계 S19 : 휴대형 플레이어(4)의 상호 식별 유닛(63)은 식(8)에 기초한 MAC 연산을 행하여 MACd를 찾는다.
MACd = MAC(IKj, Rms∥Rd) (8)
단계 S20 : 휴대형 플레이어(4)의 상호 식별 유닛(53)은 단계 S19에서 발견된 MACd와 단계 S18에서 입력된 MACc를 비교한다, 이들이 일치하면, 휴대형 저장 장치(3)는 적당한 식별 키 데이터 IKj를 가지므로, 휴대형 플레이어(4)는 그것을 적법한 대상으로 식별한다.
상기한 것에 따라, 휴대형 저장장치(3)와 휴대형 플레이어(4) 사이의 상호 식별이 달성된다.
세션 키 데이터 Sek의 생성(도 20의 단계 S5)
도 23은 세션 키 데이터 Sek의 생성을 설명한다. 세션 키 데이터 Sek의 생성을 시작하기 전에, 도 21에 나타낸 식별 키 데이터 IKj와 도 22에 나타낸 상호 식별 처리의 선택이 완료된다. 양 휴대형 저장 장치(3)와 휴대형 플레이어(4)는 선택된 식별 키 데이터 IKj와 난수 Sd, Sms를 갖는다. 세션 키 데이터 Sek의 생성은 다음과 같이 진행한다.
단계 S30 : 휴대형 플레이어(4)의 상호 식별 유닛(63)은 선택된 식별 키 데이터 IKj와 "Sd∥Sms"를 사용하여 식(9)에 기초한 MAC 연산을 행하여 세션 키 데이터 Sek를 생성한다.
Sek=MAC(IKj, Sd∥Sms) (9)
단계 S31 : 휴대형 저장장치(3)의 상호 식별 유닛(53)은 선택된 식별 키 데이터 IKj와 "Sd∥Sms"를 사용하여 식(10)에 기초한 MAC 연산을 행하여 세션 키 데이터 Sek를 생성한다.
Sek=MAC(IKj, Sd∥Sms) (10)
휴대형 저장 장치(3)에서 생성된 세션 키 데이터 Sek는 상대방 모두가 적법한 것이라면 휴대형 플레이어(4)에서 생성된 세션 키 데이터 Sek와 동일하다.
휴대형 저장 장치(3)로의 오디오 데이터의 기록(도 20의 단계 S6)
도 24는 휴대형 플레이어(4)로부터 휴대형 저장 장치(3)로의 오디오 데이터의 기록 처리를 설명한다. 기록 처리를 시작하기 전에, 도 23에 나타낸 세션 키 데이터 Sek의 생성 처리가 완료되고 휴대형 저장 장치(3)와 휴대형 플레이어(4)는 동일한 세션 키 데이터 Sek를 갖는다. 휴대형 저장 장치(3)로의 오디오 데이터의 기록은 다음과 같이 진행한다.
단계 S40 : 휴대형 플레이어(4)는 난수 발생 유닛(60)을 요구하여 각 트랙에 대한 난수를 발생하고 각 난수에 따라 대응하는 콘텐트 키 데이터 차를 생성한다.
단계 S41 : 휴대형 플레이어(4)는 세션 키 데이터 Sek를 사용하여 암호화/해독화 유닛(64)의 단계 S40에서 생성된 콘텐트 키 데이터 CK를 암호화한다.
단계 S42 : 휴대형 플레이어(4)는 단계 S41에서 암호화된 콘텐트 키 데이터 CK를 휴대형 저장 장치(3)로 출력한다.
단계 S43 : 휴대형 저장 장치(3)는 암호화/해독화 유닛(4)에서의 단계 S42에서 입력 암호화된 콘텐트 키 데이터 CK를 해독한다.
단계 S44 : 휴대형 저장 장치(3)는 저장 유닛(51)으로부터 판독된 저장 사용 키 데이터 Skm를 사용하여 암호화/해독화 유닛(54)에서의 단계 S43에서 해독된 콘텐트 키 데이터 CK를 암호화한다.
단계 S45 : 휴대형 저장 장치(3)는 암호화된 CK를 휴대형 플레이어(4)에 출력한다.
단계 S46 : 휴대형 플레이어(4)는 관련 암호화된 콘텐트 키 데이터 CK를 트랙 데이터 파일 l0ln의 TRKINF에 설정한다.
단계 S47 : 난수 발생 유닛(60)은 트랙 데이터 파일의 각 부분에 대해 난수를 발생하고 이 난수에 따라 부분 키 데이터 PK를 생성한다. 생성된 부분 키 데이터 PK는 트랙 데이터 파일 l0ln의 관리 데이터 PRTINF에 설정된다.
단계 S48 : 단계 S45에서 생성된 부분 키 데이터 PK의 XOR과 콘텐트 키 데이터는 하기 식(11)으로 나타낸 것과 같이 트랙 데이터 파일의 각 부에 대한 키 생성/처리 유닛(62)에서 얻어진다. 처리 결과는 임시 키 데이터 TMK의 발생이다. 임시 키 데이터 TMK의 생성은 XOR 기능을 사용하는 것에 제한되지 않는다. 그것은 다른 함수 연산자, 예를 들면 단수한 AND 연산자를 사용할 수 있다.
TMK= PK XOR CK (11)
단계 S49 : 난수 발생 유닛(60)은 각 블록에 대해 난수를 발생하고 이 난수에 따라 블록 시드 데이터 BS를 생성한다. 또, 휴대형 플레이어(4)는 생성된 블록 시드 데이터 BS를 각 대응하는 블록의 적당한 위치에 설정한다.
단계 S50 : 키 생성/키 처리 유닛(62)은 단계 S46에서 생성된 임시 키 데이터 TMK와 식(12)의 단계 S47에서 생성된 블록 시드 데이터 BS를 사용하여 MAC 연산을 행하고 각 블록에 대한 블록 키 데이터 BK를 생성한다.
BK = MAC(TMK, BS) (12)
블록 키 데이터 BK를 생성하기 위해 SHA-1(secure Hash algorithm), RIP등-160, 또는 다른 단방향 해시 함수의 입력에 대해 비밀 키를 사용하여 MAC 연산하는 것 이외의 처리를 할 수 있다. 여기서, 단방향 함수 f는 x로부터 y=f(x)로 계산하기는 쉽지만, y로부터 x를 찾는 것은 어려운 함수로 정의한다. 단방향 해시 함수는 문헌 "Handbook of Applied Cryptography, CRC Press"에 상세히 기술되어 있다.
단계 S51 : 휴대형 플레이어(4)는 압축/신장 모듈(45)의 ATRAC3 포맷에 따라 컴퓨터(2) 또는 휴대용 플레이어(4)로부터 입력된 오디오 데이터를 압축한다. 이후, 암호화/해독화 유닛(4)은 단계 S50에서 생성된 블록 키 데이터 BK를 사용하여 CBC 모드로 압축된 오디오 데이터를 암호화한다.
단계 S52 : 휴대형 플레이어(4)는 헤더를 단계 S51에서 암호화된 오디오 데이터에 가하여 이들을 통신 인터페이스(32, 42)를 통해 휴대형 저장 장치(3)에 출력한다.
단계 S53 : 휴대형 저장 장치(3)는 암호화된 오디오 데이터와 헤더를 플래시 메모리(34)에 기록한다.
이 때, 휴대형 플레이어(4)로부터 휴대형 플레이어(4)로의 오디오 데이터의 기록이 종료된다. 상기 설명은 단지 기록 트랙 데이터 파일 1010 내지 1013를 설명하였지만, 휴대형 플레이어(4)도 이러한 식으로 재생 관리 파일(100)을 기록한다.
휴대형 저장 장치(3)로부터의 판독
도 25는 휴대형 저장 장치(3)에서 휴대형 플레이어(4)로의 판독을 위한 판독 동작을 설명하는 플로차트이다.
단계 S61 : 원하는 트랙 데이터(튠(tune))를 지정하는 판독 요구 신호가 휴대형 플레이어(4)로부터 휴대형 저장 장치(3)로 전송된다.
단계 S2 : 휴대형 저장 장치(3)와 휴대형 플레이어(4) 사이의 상호 식별을 행할 때 사용되는 식별 키 데이터 IKj는 상기와 같은 방식으로 선택된다.
단계 S3 : 상호 식별 처리는 휴대형 저장 장치(3)와 휴대형 플레이어(4) 사이에서 상기와 같은 방식으로 행해진다.
단계 S4 : 휴대형 저장 장치(3)와 휴대형 플레이어(4) 양자가 서로 적법한 것으로서 식별되는 경우에, 이 처리는 진행한다. 그렇지 않으면, 처리는 종료된다.
단계 S5 : 세션 키 데이터 Sek는 휴대형 저장 장치(3)와 휴대형 플레이어(4)에서 상기와 같은 방식으로 생성된다.
단계 S6 : 암호화된 오디오 데이터는 통신 인터페이스(32, 42)를 통해 휴대형 저장 장치(3)와 휴대형 플레이어(4)로 판독된다. 이 처리는 이하에서 상세히 설명된다.
상호 식별은 휴대형 저장 장치(3)와 휴대형 플레이어(4) 사이에서 행해진다. 2 상대방이 서로 적법한 것으로 식별될 경우에만 암호화된 콘텐트 키 데이터가 적당한 세션 키 데이터 Sek를 사용하여 해독될 수 있다. 그러므로, 오디오 데이터의 불법 사용이 용이하게 회피될 수 있다.
휴대형 저장 장치(3)로부터의 오디오 데이터의 판독(도 25의 단계 S63)
도 26은 휴대형 저장 장치(3)에서 휴대형 플레이어(4)로의 오디오 데이터의 판독을 설명한다. 이러한 판독 단계는 상기 방법에 의해 기록될 데이터를 필요로 한다. 트랙 데이터 파일 1010 내지 1013의 기록은 TRKINF의 콘텐트 키 데이터 PK와, 각 클러스터 CL의 블록 시드 데이터 BS를 설정하는 기준이다. 단계 S5의 처리가 종료하기 때문에, 휴대형 저장 장치(3)와 휴대형 플레이어(4)는 동일한 세션 키 데이터를 가진다. 휴대형 저장 장치(3)로부터의 오디오 데이터의 판독은 다음과 같이 진행한다.
단계 S71 : 휴대형 저장장치(3)는 판독 요구 신호에 대응하는 트랙 데이터 파일을 지정하고 지정된 트랙 데이터를 포함하는 클러스터로부터 사운드 유닛 SU의 오디오 데이터를 출력한다. 휴대형 저장 장치(3)는 또한 오디오 데이터의 대응하는 속성 헤더를 판독한다.
단계 S72 : 휴대형 플레이어(4)는 입력 속성 헤더에서 TRKINF로부터 CK를 꺼내어 휴대형 저장 장치(3)에 출력한다.
단계 S73 : 휴대형 저장 장치(3)의 암호화/해독화 유닛(54)은 저장 유닛(51)에 저장된 저장 키 데이터를 사용하여 단계 S72에서 입력된 콘텐트 키 데이터 CK를 해독한다.
단계 S74 : 휴대형 저장 장치(30의 암호화/해독화 유닛(54)은 도 25에 나타낸 단계 S5에서 얻어진 세션 키 데이터 Sek를 사용하여 단계 S73에서 해독된 콘텐트 키 데이터 차를 암호화한다.
단계 S75 : 휴대형 저장 장치(3)는 단계 S74에서 암호화된 콘텐트 키 데이터 CK를 휴대형 플레이어(4)로 출력한다.
단계 S76 : 휴대형 플레이어(4)의 암호화/해독화 유닛(64)은 세션 키 데이터 Sek를 사용하여 단계 S73에서 휴대형 저장 장치(3)로부터 입력된 콘텐트 키 데이터 CK를 해독한다.
단계 S77 : 휴대형 플레이어(4)의 키 생성/처리 유닛(62)은 단계 S76에서 해독된 콘텐트 키 데이터 CK의 XOR과 단계 S71에서 입력되는 속성 헤더의 PRTINF로부터 부분 키 데이터 PK를 얻으며, 처리 결과를 식(13)에 따라 임시 키 데이터 TMK로서 정의한다.
TMK=PK XOR CK (13)
단계 S78 : 휴대형 플레이어(4)의 키 생성/키 처리 유닛(62)은 S77에서 생성된 임시 키 데이터 TMK와 단계 S71에서 입력된 트랙 데이터 파일의 블록 시드 데이터 BS를 사용하여 다음 식(14)에 나타낸 MAC 연산을 행하고 처리 결과를 블록 키 데이터 BK로서 정의한다. 블록 키 데이터 BK는 다음과 같은 모든 클러스터에 대해 발견된다.
BK=MAC(TMK, BS) (14)
단계 S79 : 휴대형 플레이어(4)는 단계 S78에서 생성된 블록 키 데이터 BKK를 사용하여 암호화/해독화 유닛(64)의 단계 S71에서의 오디오 데이터 입력을 해독한다.
이 때, 오디오 데이터는 개별적으로 발견된 블록 키 데이터 BK를 사용하여 모든 클러스터(블록)에 대해 해독된다. 또한, 해독은 암호화에 사용된 것과 동일한 8바이트 블록으로 행해진다.
단계 S80 : 휴대형 플레이어(4)는 압축/신장 모듈(45)의 ATRAC2 시스템에 의해 단계S79에서 해독된 오디오 데이터를 신장하여 신장된 오디오 데이터를 스피커(46)로 출력하기 위해 D/A 컨버터(47)에서 디지털 포맷으로 변환한다.
단계 S78에서 해독된 오디오 데이터는 음성 유닛 SU에서 신장된다.
트랙 데이터 파일의 분할 편집
전술한 바와 같이, 휴대형 플레이어(4)의 편집 모듈(44)은 2개의 트랙 데이터 파일을 생성하기 위한 하나의 트랙 데이터 파일을 분할하는 분할 편집과 하나의 트랙 데이터 파일을 생성하기 위한 2개의 트랙 데이터 파일을 결합하는 결함 편집을 행하도록 되어 있다.
먼저, 분할 편집을 설명한다. 도 27은 휴대형 플레이어(4)의 편집 모듈(44)에 의한 트랙 데이터 파일의 분할 편집을 설명한다. 예로서, 편집 모듈(44)은 도 27의 (a)에 나타낸 트랙 데이터 파일(2)을 도 27의 (b)에 나타낸 새로운 트랙 데이터 파일(1)과 도 27의 (c)에 나타낸 트랙 데이터 파일(2)로 분할한다. 최소 분할 단위는 음성 유닛 SU이다. 이 예에 있어서, 클러스터 CL(2)의 음성 유닛SU(3)과 SU(4)은 도 27의 (b)에 나타낸 것과 같이 분할된다.
분할 후, 트랙 데이터 파일(1)의 클러스터 CL(2)은 도 28에 나타낸 것과 같고, 새로 생성된 데이터 파일(2)의 클러스터 CL(0)은 도 29에 나타낸 것과 같다. 분할전 트랙 데이터 파일(1)의 클러스터(2)의 음성 유닛 SU(4)은 트랙 데이터 파일(2)의 클러스터 CL(0)의 음성 유닛 SU(0)으로 된다. 마찬가지로, 분할전 트랙 데이터 파일(1)의 클러스터(2)의 음성 유닛 SU(5)는 트랙 데이터 파일(2)의 클러스터 치(0)의 음성 유닛 SU(1)로 된다.
또한, 트랙 데이터 파일(2)의 클러스터 CL(0)의 블록 암호화 초기치 IV는 도 27의 (a) 및 (b)에 나타낸 트랙 데이터 파일(1)의 클러스터 CL(2)의 음성 유닛 SU(3)의 최후 8 바이트와 동일하게 설정된다. 상기한 바와 같이, 각 클러스터에 있어서 블록 암호화 초기치 IV는 제 1 음성 유닛 SU(0) 직전의 8 바이트로서 배열된다. 따라서, 각 분할된 클러스터는 그 자신의 암호화 정보를 포함하므로, 후속 분할에 관계없이, 데이터는 용이하게 재생될 수 있다.
분할전의 콘텐트 키 데이터, 부분 키 데이터 및 블록 키 데이터는 CK-1, PK-1 및 BK-1이다. 또한, 분할 수의 트랙 데이터 파일(1)의 콘텐트 키 데이터, 부분 키 데이터 및 블록 키 데이터는 CK-1', PK-1' 및 BK-1이다. 또, 트랙 데이터 파일(2)의 콘텐트 키 데이터, 부분 키 데이터 및 블록 키 데이터는 CK-2, PK-2 및 BK-1이다.
도 30은 휴대형 플레이어(4)의 편집 모듈(44)에서 새로운 트랙 데이터 파일(2)의 부분 키 데이터와 콘텐트 키 데이터의 생성을 설명하는 플로챠트이다. 분할에 의해 생성된 새로운 트랙 데이터 파일(2)은 트랙 데이터 파일(1)로부터 분리된 새로운 콘텐트 키 데이터 CK-2를 가진다. 이하에 나타낸 것과 같은 부분 키 데이터 PK-2를 계산함으로써, 블록 키 데이터 BK-1은 분할전과 동일하다. 이 처리는 다음과 같이 계속된다.
단계 S90 : 제어가 단계 S91로 가는 분할 명령을 수신할 때까지 편집 모듈(44)은 대기한다.
단계 S91 : 난수 발생 유닛(60)은 난수를 발생하여 이 발생된 난수에 따라 새로운 콘텐트 키 데이터 CK-2를 생성한다.
단계 S92 : 휴대형 저장 장치(3)의 암호화/해독화 유닛(54)은 저장 유닛(51)에 저장된 저장 사용 키 데이터 Skm를 사용하여 단계 S91에서 생성된 콘텐트 키 데이터 CK-2를 암호화한다.
단계 S93 : 편집 모듈(44)은 암호화된 콘텐트 키 데이터 CK-2를 대응하는 트랙 데이터 파일의 TRKINF에 기록한다.
단계 S94 : 편집 모듈(44)은 식(15)에 기초하여 트랙 데이터 파일(2)의 부분 키 데이터 PK-2를 생성한다.
PK-1 = CK-1 XOR PK-1 XOR CK-2 (15)
이러한 처리는 분할전 트랙 데이터 파일(1)의 임시 키 데이터와 같이 생성된 트랙 데이터 파일(2)에 대한 임시 키 데이터(식(11)로부터) 및 블록 키 BK-1과 같이 생성된(식 (12)로부터) 클러스터 키 데이터를 만든다. 이 때문에, 새로운 블록 키 데이터를 사용하여 다시 트랙 데이터 파일(2)에 음성 유닛 SU을 암호화할 필요가 없다.
단계 S95 : 편집 모듈(44)은 단계 S94에서 생성된 부분 키 데이터 PK-2를 대응하는 트랙 데이터 파일의 PRTINF에 기록한다.
따라서, 새로운 콘텐트 키 데이터 CK-2가 새로 생성된 트랙 데이터 파일(2)의 콘텐트 키 데이터와 같을 경우에도, 식(15)에 기초하여 생성된 부분 키 데이터 PK-2는 임시 키 데이터가 분할전 임시 키 데이터와 같게 만들어지도록 한다. 그 결과, 블록 키 데이터는 또한 분할전과 동일하다. 그러므로, 새로운 클러스터 키 데이터를 사용하여 다시 트랙 데이터 파일(2)의 음성 유닛 SU을 암호화할 필요가 없다. 마찬가지로, 블록 키 데이터 BK-1을 변경하지 않도록 분할 후 트랙 데이터 파일(1)의 부분 키 데이터 PK-1'은 콘텐트 키 데이터 CK-1에 따라 결정된다. 그 결과, 새로운 블록 키 데이터를 사용하여 다시 분할 수 트랙 데이터 파일(1)의 음성 유닛 SU를 암호화할 필요가 없다. 이것은 처리량의 큰 증가를 피하면서 트랙 데이터 파일의 분할 편집을 허용한다. 상기 설명은 트랙 데이터 파일 1010 내지 1013에만 관련되어 있으나, 편집 모듈(44)은 상응하는 방식으로 재생 관리 파일을 재기록한다.
도 31은 휴대형 플레이어(4)의 편집 모듈에 의한 2개의 트랙 데이터 파일의 결합(또는 머징)을 설명한다. 예를 들면, 편집 모듈(44)은 도 31의 (a)에 나타낸 트랙 데이터 파일(1)과 도 31의 (b)에 나타낸 트랙 데이터 파일(2)을 결합하여 도 31의 (c)에 나타낸 트랙 데이터 파일(3)을 생성한다. 결함에 의해, 새로운 트랙 데이터 파일(3)이 결합전 트랙 데이터 파일(1)로 이루어진 부분(1)과 결합전 트랙 데이터 파일(2)로 이루어진 부분(2)을 포함하는 것으로 생성된다.
더욱이, 트랙 데이터 파일(3)을 위한 콘텐트 키 데이터 CK-3, 부분(1)을 위한 부분 키 데이터 PK-3-1 및 부분(2)을 위한 부분 키 데이터 PK-3-2는 이하에서 상세히 설명되는 것과 같이 새롭게 생성된다. 이 새롭게 생성된 키 데이터는 트랙 데이터 파일(3)의 TRKINF와 PRTINF로 설정된다.
결합전 트랙 데이터 파일(1)의 클러스터 CL(0)과 CL(4)는 결합 후 트랙(3)의 부분(1)의 스타트 클러스터와 엔드 클러스터로 된다. 또한, 결합 전 트랙 데이터 파일(2)의 클러스터 CL(0)과 CL(5)는 결합 후 트랙(3)의 스타트 클러스터와 엔드 클러스터로 된다.
도 32는 새롭게 생성된 트랙 데이터 파일(3)의 부분(1)과 (2)에 대한 부분 키 데이터의 생성을 설명하는 흐름도이다. 다음이 설명에 있어서 트랙 데이터 파일(1)은 콘텐트 키 데이터 CK-1, 부분 키 데이터 PK-1, 및 블록 키 데이터 BK-1를 사용하고, 한편 트랙 데이터 파일(2)은 콘텐트 키 데이터 CK-2, 부분 키 데이터 PK-2 및 블록 키 데이터 BK-2를 사용한다. 트랙 데이터 파일(3)은 이하에서 설명하는 것과 같이 부분(1) 및 (2)의 부분 키 데이터를 계산함으로써 새로운 콘텐트 키 데이터 CK-3를 획득한다.
블록 키 데이터 BK-1과 BK-2는 결합전과 같이 유지한다. 결합 처리는 다음과 같이 진행한다.
단계 S100 : 편집 모듈(44)은 제어가 단계 S101로 가는 결합 명령을 받을 때까지 대기한다.
단계 S101 : 난수 발생 유닛(60)은 난수를 발생하고 그에 따라 콘텐트 키 데이터 CK-3를 생성한다.
단계 S102 : 휴대형 저장 장치(3)의 암호화/해독화 유닛(54)은 저장 유닛(51)에 저장된 저장 사용 키 데이터 Skm을 사용하여 단계 S101에서 생성된 콘텐트 키 데이터 CK-3을 암호화한다.
단계 S103 : 편집 모듈(44)은 암호화된 콘텐트 키 데이터 CK-3를 트랙 데이터 파일(3)의 TRKINF에 기록한다.
단계 S104 : 편집 모듈(44)은 식(16)에 기초하여 트랙 데이터 파일(3)의 부분(1)에 대한 부분 키 데이터 PK-3-1를 생성한다.
PK-3-1= CK-1 XOR PK-1 XOR CK-3 (16)
그러므로, 부분(1)의 임시 키 데이터(식(11)으로부터)는 결합전 트랙 데이터 파일(1)의 임시 키 데이터와 같다. 그 결과, 부분(1)의 블록 키 데이터는 또한 결합 전 트랙 데이터 파일(1)의 블록 키 데이터 BK-1과 같다. 따라서, 새로운 블록 키 데이터를 사용하여 다시 부분(1)의 음성 유닛 SU을 암호화할 필요가 없다.
단계 S105 : 편집 모듈(44)은 식(17)에 기초하여 트랙 데이터 파일(3)의 부분(2)에 대한 부분 키 데이터 PK-3-2를 생성한다.
PK-3-2=CK-2 XOR PK-2 XOR CK-3 (17)
그러므로, 부분(2)의 임시 키 데이터는 트랙 데이터 파일(2)의 임시 키 데이 터와 같다. 그 결과, 부분(2)의 블록 키 데이터는 또한 트랙 데이터 파일(2)의 블록 키 데이터 BK-2와 같다. 이 때문에, 새로운 블록 키 데이터를 사용하여 다시 부분920의 음성 유닛 SU를 암호화할 필요가 없다.
단계 S106 : 편집 모듈(44)은 트랙 데이터 파일(3)의 부분(10의 PRINTF에서의 단계 S104에서 생성된 부분 키 데이터 PK-3-1를 기록한다.
단계 S107 : 편집 모듈(44)은 트랙 데이터 파일(3)의 부분(2)의 PRINTF에서의 단계 S105에서 생성된 부분 키 데이터 PK-3-2를 기록한다.
따라서, 새로운 콘텐트 키 데이터 CK-3이 새롭게 생성된 트랙 데이터 파일(3)의 콘텐트 키 데이터와 같을 때에도, 식 (16) 및 식 (17)에 기초하여 생성된 부분 키 데이터 PK-3-1과 PK-3-2는 각 부분에 대한 임시 키 데이터가 결합전 유사 데이터에 대한 것과 동일하게 만들어지도록 한다. 결과적으로, 대응하는 부분들의 블록 키 데이터는 결합전 BK-1 및 BK-2와 또한 동일하다. 그러므로, 새로운 블록 키 데이터를 사용하여 다시 부분(1) 및 부분(2)의 음성 유닛 SU을 암호화할 필요는 없다. 이 때문에, 통상 결합된 편집을 수반하는 처리량의 큰 증대를 회피할 수 있다. 또한, 상기 설명은 트랙 데이터 파일 1010 내지 1013에만 관계되어 있지만, 편집 모듈(44)은 그에 따라 재생 관리 파일(100)을 재기록한다.
본 발명은 상기 실시예로 제한되는 것은 아니다. 예를 들면, 상기 실시예는 암호 블록(CBC 모드의 암호화 유닛)의 바이트의 전체 배수(8비트)로서 음성 유닛 SU의 바이트 수(160 바이트)를 가진다. 그러나, 본 발명은 음성 유닛 SU의 데이터 길이를 조정하기 위해 페이딩(padding)을 삽입하여 전체 배수가 아닐 때에 조정될 수 있다.
또한, 상기 경우는 상호 식별 처리가 도 22에 나타낸 것과 같이 행해질 때 휴대형 플레이어(4)에 휴대형 저장 장치(3)에서 생성된 난수 Rms를 먼저 출력하는 것을 나타내었다. 그러나 휴대형 플레이어(4)에서 생성된 난수를 휴대형 저장 장치(3)에 먼저 출력하는 것도 가능하다.
또한, 32 세트의 식별 키 데이터와 마스터 키 데이터가 저장 유닛(51, 61)에 저장되어 있는 경우를 나타냈으나, 식별 키 데이터가 2이상이면 이들 세트는 난수이어도 된다.
또한, 식별 키 데이터 IK0 내지 IK31가 휴대형 플레이어(4)의 마스터 키 데이터 MK0 내지 MK31로부터 생성되는 경우가 주어졌지만, 또한 휴대형 저장 장치(3)에서와 같은 방식으로 휴대형 플레이어(4)의 식별 키 데이터 IK0 내지 IK31를 저장하고 난수 Rj에 따라 식별 키 데이터를 선택하는 것도 가능하다.
또한, 도 21에 나타낸 것과 같이, 식별 키 데이터 IKj와 마스터 키 데이터 MKj가 휴대형 저장 장치(3)와 휴대형 플레이어(4)에서 휴대형 플레이어(4)에서 생성된 난수 Rj를 사용하여 선택되는 경우가 예시되었지만, 또한 휴대형 저장 장치(3)에서 생성된 난수를 사용하거나 휴대형 저장 장치(3)와 휴대형 플레이어(4) 양자에서 발생된 난수를 사용하는 것도 가능하다.
또한, 상기 실시예는 식별 키 데이터 IKj와 마스터 키 데이터 MKj가 난수 Rj에 기초하여 휴대형 저장 장치(3)와 휴대형 플레이어(4)에서 선택되는 경우를 나타냈지만, 본 발명에 따르면, 외부로부터 휴대형 저장 장치(3)와 휴대형 플레어(4)에 5비트 키 선택 명령 데이터를 입력하고 휴대형 저장 장치(3)와 휴대형 플레이어(4)에서 관련 키 선택 명령 데이터에 의해 표시된 서로에 대응하는 식별 키 데이터 IKj와 마스터 키 데이터 MKj를 선택하는 것도 가능하다.
또한, 트랙 데이터로서 오디오 데이터를 포함하는 데이터의 예를 들었으나, 본 발명은 또한 동화상 데이터, 정지화상 데이터, 서류 데이터, 프로그램 데이터 및 다른 형태의 데이터를 포함하는 트랙 데이터가 플래시 메모리(34)에 저장되어 있는 경우에 적용될 수도 있다.
상기한 설명한 예에서와 같이, 본 발명의 데이터 처리 장치, 데이터 처리 시스템 및 그 방법에 따르면, 제 1 키 데이터가 제 3 키 데이터를 사용하고 제 3 키 데이터를 저장 장치에 저장하여 트랙 데이터를 암호화한 후 변경되는 경우에도, 제 3 키 데이터는 변경되지 않으므로, 트랙 데이터를 해독 및 다시 암호화할 필요가 없게 된다. 이 때문에, 제 1 키 데이터가 변경될 때 필요한 처리량이 크게 감소된다.
따라서, 상기한 설명으로부터 명백하게 만들어지는 것 중에서, 상기한 목적은 효과적으로 얻어지며, 어떤 변경이라도 본 발명의 사상 및 범위를 이탈하지 않 고 상기 방법 및 구성(들)에 대해 행해질 수 있기 때문에, 상기 상세한 설명에 포함되고 첨부하는 도면에 나타낸 모든 사항은 예시적인 것이며 본 발명을 한정하고자 하는 것은 아니라는 것을 알 수 있을 것이다.
또한, 다음의 특허청구의 범위는 본 명세서에 기술된 본 발명의 일반적이고 특별한 모든 특징 및 본원에 속할 수도 있는 본 발명의 범위의 모든 설명을 언어로서 포함하고자 하는 것으로 이해해야 한다.

Claims (18)

  1. 제 1 데이터 처리 장치와 제 2 데이터 처리 장치 간의 상호 식별(mutual identification)을 실행하는 데이터 처리 시스템에 있어서,
    상기 제 1 데이터 처리 장치는:
    복수의 상이한 제 1 키 데이터를 저장하는 제 1 저장 수단과;
    상기 복수의 제 1 키 데이터로부터 제 1 키를 선택하고, 상기 선택된 제 1 키를 제 2 데이터 처리 장치와의 상호 식별용으로 사용하는 제 1 상호 식별 처리 수단을 포함하며;
    상기 제 2 데이터 처리 장치는:
    복수의 상이한 제 2 키 데이터를 저장하는 제 2 저장 수단과;
    상기 복수의 제 2 키 데이터로부터, 상기 제 1 상호 식별 처리 수단에 의해 선택된 상기 제 1 키에 대응하는 제 2 키를 선택하고, 상기 제 2 키를 상기 제 1 데이터 처리 장치와의 상호 식별용으로 사용하는 제 2 상호 식별 처리 수단을 포함하는, 데이터 처리 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 데이터 처리 장치와 상기 제 2 데이터 처리 장치 중 적어도 하나는 난수를 생성하고 상기 난수를 출력하는 수단을 더 포함하며;
    상기 제 1 상호 식별 처리 수단은 상기 난수에 기초하여 상기 제 1 키를 선택하고;
    상기 제 2 상호 식별 처리 수단은 상기 난수에 기초하여 상기 제 2 키를 선택하는, 데이터 처리 시스템.
  3. 제 1 항에 있어서,
    상기 제 1 데이터 처리 장치는 상기 선택된 제 1 키를 사용하여 상기 제 2 상호 식별 처리 수단에 의해 선택된 상기 제 2 키의 평가치를 계산하는 키 데이터 계산 수단을 더 포함하며;
    상기 제 1 상호 식별 처리 수단은 공통 키로서 상기 제 2 키의 평가치를 이용하여 상기 제 2 상호 식별 처리 수단에 대하여 상호 식별을 실행하는, 데이터 처리 시스템.
  4. 제 3 항에 있어서,
    상기 제 2 데이터 처리 장치는 식별 데이터를 저장하고, 상기 식별 데이터를 상기 제 1 데이터 처리 장치에 출력하는 수단을 더 포함하며;
    상기 계산 수단은 상기 제 2 키의 평가치를 계산하기 위해 상기 제 2 데이터 처리 장치로부터 입력된 상기 식별 데이터를 사용하는, 데이터 처리 시스템.
  5. 제 3 항에 있어서,
    상기 제 1 데이터 처리 장치는 난수를 생성하고, 상기 난수를 상기 제 2 상호 식별 처리 수단에 출력하는 난수 생성 수단을 포함하며;
    상기 제 2 데이터 처리 장치의 상기 제 2 상호 식별 처리 수단은 상기 제 1 데이터 처리 장치로부터 입력된 상기 난수와 상기 선택된 제 2 키를 인수들(arguments)로써 사용하여 단방향 해시(Hash) 함수 연산을 실행하여 제 1 처리 결과를 계산하고, 상기 제 1 처리 결과를 상기 제 1 데이터 처리 장치에 출력하며;
    상기 제 1 상호 식별 처리 수단은 상기 난수 생성 수단에 의해 생성된 상기 난수와 상기 제 2 키의 평가치를 인수들로써 사용하여 단방향 해시 함수 연산을 실행하여 제 2 처리 결과를 산출하고, 상기 제 2 데이터 처리 장치로부터 입력된 상기 제 1 처리 결과와 상기 제 2 처리 결과가 일치하는 경우, 적법한 대상으로서 상기 제 2 데이터 처리 장치를 식별하는, 데이터 처리 시스템.
  6. 제 5 항에 있어서,
    상기 제 2 데이터 처리 장치는 제 2 난수를 생성하고 상기 생성된 제 2 난수를 상기 제 1 상호 식별 처리 수단에 출력하는 제 2 난수 생성 수단을 포함하며;
    상기 제 1 데이터 처리 장치의 상기 제 1 상호 식별 처리 수단은 상기 제 2 데이터 처리 장치로부터 입력된 상기 제 2 난수와 상기 제 2 키의 평가치를 인수들로써 사용하여 제 2 단방향 해시 함수 연산을 실행하여 제 3 처리 결과를 계산하고, 상기 제 3 처리 결과를 상기 제 2 데이터 처리 장치에 출력하며;
    상기 제 2 상호 식별 처리 수단은 상기 제 2 데이터 처리 장치의 제 2 난수 생성 수단에 의해 생성된 상기 제 2 난수와 상기 선택된 제 2 키를 인수들로써 사용하여 상기 제 2 단방향 해시 함수 연산을 실행하여 제 4 처리 결과를 산출하고, 상기 제 1 데이터 처리 장치로부터 입력된 상기 제 3 처리 결과와 상기 제 4 처리 결과가 일치하는 경우, 적법한 대상으로서 상기 제 1 데이터 처리 장치를 식별하는, 데이터 처리 시스템.
  7. 제 1 항에 있어서,
    상기 제 1 데이터 처리 장치와 상기 제 2 데이터 처리 장치는 입력으로써 키 선택 데이터를 수신하며;
    상기 제 1 상호 식별 처리 수단은 상기 키 선택 데이터에 기초하여 상기 복수의 제 1 키 데이터로부터 제 1 키를 선택하며;
    상기 제 2 상호 식별 처리 수단은 상기 키 선택 데이터에 기초하여 상기 복수의 제 2 키 데이터로부터 제 2 키를 선택하는, 데이터 처리 시스템.
  8. 제 1 항에 있어서,
    상기 제 1 데이터 처리 장치와 상기 제 2 데이터 처리 장치는 상기 제 1 상호 식별 처리 수단과 상기 제 2 상호 식별 처리 수단이 적법한 대상으로서 서로 인식할 때, 상기 제 1 및 제 2 데이터 처리 장치들 사이에 전송된 데이터를 해독하기 위한 키 데이터를 출력하는, 데이터 처리 시스템.
  9. 제 8 항에 있어서,
    상기 제 2 데이터 처리 장치는 상기 제 1 데이터 처리 장치로부터 입력된 인코딩된 데이터를 저장하는 수단을 더 포함하는, 데이터 처리 시스템.
  10. 제 1 데이터 처리 장치와 제 2 데이터 처리 장치 간의 상호 식별을 실행하는 데이터 처리 방법에 있어서,
    상기 제 1 데이터 처리 장치에서 복수의 제 1 키 데이터로부터 제 1 키를 선택하고, 상기 선택된 제 1 키를 상기 제 2 데이터 처리 장치와의 상호 식별용으로 사용하는 단계; 및
    상기 제 2 데이터 처리 장치에서 복수의 제 2 키 데이터로부터 상기 선택된 제 1 키에 대응하는 제 2 키를 선택하고, 상기 선택된 제 2 키를 상기 제 1 데이터 처리 장치와의 상호 식별용으로 사용하는 단계를 포함하는, 데이터 처리 방법.
  11. 제 10 항에 있어서,
    상기 제 1 데이터 처리 장치와 제 2 데이터 처리 장치 중 적어도 하나에 의해 난수를 생성하고, 상기 난수를 출력하는 단계;
    상기 난수에 기초하여 상기 제 1 키를 상기 제 1 데이터 처리 장치에서 선택하는 단계; 및
    상기 난수에 기초하여 상기 제 2 키를 상기 제 2 데이터 처리 장치에서 선택하는 단계를 더 포함하는, 데이터 처리 방법.
  12. 제 10 항에 있어서,
    상기 제 1 데이터 처리 장치에서, 상기 선택된 제 1 키를 사용하여 상기 제 2 데이터 처리 장치에 의해 선택된 상기 제 2 키의 평가치를 계산하는 단계; 및
    공통 키로서 상기 제 2 키의 평가치를 사용하여 상기 제 1 데이터 처리 장치와 상기 제 2 데이터 처리 장치 간의 상호 식별을 실행하는 단계를 더 포함하는, 데이터 처리 방법.
  13. 제 12 항에 있어서,
    상기 제 2 데이터 처리 장치에 저장된 식별 데이터를 상기 제 1 데이터 처리 장치에 출력하는 단계를 더 포함하며;
    상기 계산 단계는 상기 식별 데이터를 사용하여 상기 제 2 키의 평가치를 계산하는 단계를 포함하는, 데이터 처리 방법.
  14. 제 12 항에 있어서,
    상기 제 1 데이터 처리 장치에서 난수를 생성하고, 상기 난수를 상기 제 2 데이터 처리 장치에 출력하는 단계;
    상기 제 2 데이터 처리 장치에서 상기 제 1 데이터 처리 장치로부터 입력된 상기 난수와 상기 선택된 제 2 키를 인수들로써 사용하여 단방향 해시 함수 연산을 실행하여 제 1 처리 결과를 계산하고, 상기 제 1 처리 결과를 상기 제 1 데이터 처리 장치에 출력하는 단계; 및
    상기 제 1 데이터 처리 장치에서 상기 난수와 상기 제 2 키의 평가치를 인수들로써 사용하여 단방향 해시 함수 연산을 실행하여 제 2 처리 결과를 산출하고, 상기 제 2 데이터 처리 장치로부터 입력된 상기 제 1 처리 결과와 상기 제 2 처리 결과가 일치하는 경우, 적법한 대상으로서 상기 제 2 데이터 처리 장치를 식별하는 단계를 더 포함하는, 데이터 처리 방법.
  15. 제 14 항에 있어서,
    상기 제 2 데이터 처리 장치에서 제 2 난수를 생성하고, 상기 제 2 난수를 상기 제 1 데이터 처리 장치에 출력하는 단계;
    상기 제 1 데이터 처리 장치에서 상기 제 2 데이터 처리 장치로부터 입력된 상기 제 2 난수와 상기 제 2 키의 평가치를 인수들로써 사용하여 제 2 단방향 해시 함수 연산을 실행하여 제 3 처리 결과를 계산하고, 상기 제 3 처리 결과를 상기 제 2 데이터 처리 장치에 출력하는 단계; 및
    상기 제 2 데이터 처리 장치에서, 상기 제 2 난수와 상기 선택된 제 2 키를 인수들로써 사용하여 상기 제 2 단방향 해시 함수 연산을 실행하여 제 4 처리 결과를 산출하고, 상기 제 1 데이터 처리 장치로부터 입력된 상기 제 3 처리 결과와 상기 제 4 처리 결과가 일치하는 경우, 적법한 대상으로서 상기 제 1 데이터 처리 장치를 식별하는 단계를 더 포함하는, 데이터 처리 방법.
  16. 제 10 항에 있어서,
    상기 제 1 데이터 처리 장치와 상기 제 2 데이터 처리 장치에서 입력으로써 키 선택 데이터를 수신하는 단계;
    상기 제 1 데이터 처리 장치에서, 상기 키 선택 데이터에 기초하여 상기 복수의 제 1 키 데이터로부터 제 1 키를 선택하는 단계; 및
    상기 제 2 데이터 처리 장치에서, 상기 키 선택 데이터에 기초하여 상기 복수의 제 2 키 데이터로부터 제 2 키를 선택하는 단계를 더 포함하는, 데이터 처리 방법.
  17. 제 10 항에 있어서,
    상기 제 1 데이터 처리 장치와 상기 제 2 데이터 처리 장치가 적법한 대상으로서 서로 인식할 때, 상기 제 1 및 제 2 데이터 처리 장치들 사이에 전송된 데이터를 해독하기 위한 키 데이터를 출력하는 단계를 더 포함하는, 데이터 처리 방법.
  18. 제 17 항에 있어서,
    상기 제 1 데이터 처리 장치로부터 입력된 인코딩된 데이터를 상기 제 2 데이터 처리 장치에 저장하는 단계를 더 포함하는, 데이터 처리 방법.
KR1020000013057A 1999-03-15 2000-03-15 장치간의 상호 식별용 데이터 처리 시스템 및 방법 KR100648388B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP6915199 1999-03-15
JP99-069151 1999-03-15
JP17818899 1999-06-24
JP99-178188 1999-06-24

Publications (2)

Publication Number Publication Date
KR20010006805A KR20010006805A (ko) 2001-01-26
KR100648388B1 true KR100648388B1 (ko) 2006-11-24

Family

ID=26410338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000013057A KR100648388B1 (ko) 1999-03-15 2000-03-15 장치간의 상호 식별용 데이터 처리 시스템 및 방법

Country Status (6)

Country Link
US (1) US6799273B1 (ko)
EP (1) EP1037131B1 (ko)
KR (1) KR100648388B1 (ko)
CN (1) CN1270470C (ko)
MY (1) MY126941A (ko)
TW (1) TW529267B (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062451A1 (en) * 1998-09-01 2002-05-23 Scheidt Edward M. System and method of providing communication security
US6937814B1 (en) 2000-04-14 2005-08-30 Realnetworks, Inc. System and method for play while recording processing
JP2003050745A (ja) * 2001-08-07 2003-02-21 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2003157332A (ja) * 2001-11-21 2003-05-30 Oki Electric Ind Co Ltd 本人確認装置、本人確認システム、カード発行装置及びカード発行システム
JP4157709B2 (ja) * 2002-01-31 2008-10-01 富士通株式会社 アクセス制御方法及び記憶装置
JP4139114B2 (ja) * 2002-02-04 2008-08-27 松下電器産業株式会社 デジタルコンテンツ管理装置およびデジタルコンテンツ管理プログラム
US7681030B2 (en) * 2002-02-08 2010-03-16 Ntt Docomo, Inc. Mobile communication terminal, information processing method, data processing program, and recording medium
DE60323182D1 (de) 2002-06-11 2008-10-09 Matsushita Electric Ind Co Ltd Authentifizierungssystem
JP2004112461A (ja) * 2002-09-19 2004-04-08 Sony Corp データ処理方法、そのプログラムおよびその装置
EP1574960A4 (en) * 2002-12-06 2008-11-19 Sony Corp RECORDING / REPRODUCING DEVICE, DATA PROCESSING DEVICE, AND RECORDING / REPLAYING SYSTEM
JP4007177B2 (ja) * 2002-12-09 2007-11-14 ソニー株式会社 データ編集方法、データ編集装置
US7596703B2 (en) * 2003-03-21 2009-09-29 Hitachi, Ltd. Hidden data backup and retrieval for a secure device
EP1591867A3 (en) * 2004-04-26 2005-11-23 Trek 2000 International Ltd Portable data storage device with encryption system
CA2564576A1 (en) * 2004-04-26 2005-11-03 Trek 2000 International Ltd. Portable data storage device with encryption system
AU2006203591B2 (en) * 2004-04-26 2007-11-01 Trek 2000 International Ltd. Portable Data Storage Device with Encryption System
WO2006077822A1 (ja) * 2005-01-24 2006-07-27 Matsushita Electric Industrial Co., Ltd. 署名生成装置及び署名検証装置
US7493494B2 (en) * 2005-11-03 2009-02-17 Prostor Systems, Inc. Secure data cartridge
US7668848B2 (en) * 2005-12-07 2010-02-23 Motorola, Inc. Method and system for selectively decoding audio files in an electronic device
EP1999680A2 (en) * 2006-03-15 2008-12-10 ActivIdentity, Inc. Method and system for obtaining assurance that a content control key is securely stored in a remote security module for further secure communications between a content provider and said security module.
JP4767057B2 (ja) * 2006-03-27 2011-09-07 富士通株式会社 ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置
US20080107275A1 (en) * 2006-11-08 2008-05-08 Mehdi Asnaashari Method and system for encryption of information stored in an external nonvolatile memory
WO2009145773A1 (en) * 2008-05-29 2009-12-03 Hewlett-Packard Development Company, L.P. Providing authenticated communications to a replaceable printer component
DK2294505T3 (en) * 2008-05-29 2018-04-09 Hewlett Packard Development Co REPLACEMENT OF REPLACEABLE PRINTER COMPONENT
GB2528959C (en) * 2014-08-07 2017-06-28 Gurulogic Microsystems Oy Encoder, decoder and methods
US11494481B2 (en) * 2019-05-10 2022-11-08 Canon Kabushiki Kaisha Authentication apparatus for authenticating authentication target device
JP2021111280A (ja) * 2020-01-15 2021-08-02 キヤノン株式会社 相互認証ペアを形成する方法および認証装置
US11809611B2 (en) * 2020-02-24 2023-11-07 Microsoft Technology Licensing, Llc Protecting device detachment with bus encryption
TWI792739B (zh) * 2020-12-11 2023-02-11 熵碼科技股份有限公司 用來控制裝置激活的方法以及相關電子裝置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481610A (en) * 1994-02-28 1996-01-02 Ericsson Inc. Digital radio transceiver with encrypted key storage
US6128742A (en) * 1998-02-17 2000-10-03 Bea Systems, Inc. Method of authentication based on intersection of password sets

Also Published As

Publication number Publication date
KR20010006805A (ko) 2001-01-26
CN1270470C (zh) 2006-08-16
TW529267B (en) 2003-04-21
MY126941A (en) 2006-11-30
CN1267158A (zh) 2000-09-20
EP1037131B1 (en) 2013-10-09
US6799273B1 (en) 2004-09-28
EP1037131A2 (en) 2000-09-20
EP1037131A3 (en) 2005-09-14

Similar Documents

Publication Publication Date Title
KR100648388B1 (ko) 장치간의 상호 식별용 데이터 처리 시스템 및 방법
KR100718477B1 (ko) 암호화된 데이터 전송을 위한 처리 방법 및 장치
KR100934108B1 (ko) 암호화된 데이터 전송을 위한 데이터 처리 방법, 장치 및시스템
JP4366845B2 (ja) データ処理装置およびデータ処理方法、並びにプログラム提供媒体
JP4660899B2 (ja) データ処理装置およびデータ処理方法、並びにプログラム提供媒体
KR100843942B1 (ko) 정보 처리 시스템, 정보 처리 방법, 및 정보 처리 장치,및 프로그램 제공 매체
KR100712377B1 (ko) 재생 장치 및 재생 방법
JP4608749B2 (ja) データ処理装置、データ処理方法、およびライセンスシステム、並びにプログラム提供媒体
US7155013B2 (en) Recording apparatus, recording method, reproducing apparatus, and reproducing method
KR100699189B1 (ko) 비휘발성 기록 매체, 기록 방법, 및 기록 장치
JP3925033B2 (ja) データ処理装置、記憶装置、データ処理システムおよびその方法
JP4172131B2 (ja) データ処理装置、データ処理システムおよびその方法
JP2000332748A (ja) データ処理システムおよびその方法
RU2253146C2 (ru) Воспроизводящее устройство и способ воспроизведения

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121105

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131108

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141112

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee