KR100495187B1 - 데이터송신장치및송신방법,데이터수신장치및수신방법,기록매체 - Google Patents
데이터송신장치및송신방법,데이터수신장치및수신방법,기록매체 Download PDFInfo
- Publication number
- KR100495187B1 KR100495187B1 KR10-1998-0014432A KR19980014432A KR100495187B1 KR 100495187 B1 KR100495187 B1 KR 100495187B1 KR 19980014432 A KR19980014432 A KR 19980014432A KR 100495187 B1 KR100495187 B1 KR 100495187B1
- Authority
- KR
- South Korea
- Prior art keywords
- signal
- random number
- information
- receiving
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 272
- 230000005540 biological transmission Effects 0.000 title claims description 31
- 238000012545 processing Methods 0.000 claims description 101
- 230000008054 signal transmission Effects 0.000 claims 8
- 238000011156 evaluation Methods 0.000 claims 4
- 230000010365 information processing Effects 0.000 abstract description 52
- 238000003672 processing method Methods 0.000 abstract description 10
- 238000012546 transfer Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 104
- 238000010586 diagram Methods 0.000 description 57
- 238000004364 calculation method Methods 0.000 description 42
- 238000004891 communication Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 3
- YVGGHNCTFXOJCH-UHFFFAOYSA-N DDT Chemical compound C1=CC(Cl)=CC=C1C(C(Cl)(Cl)Cl)C1=CC=C(Cl)C=C1 YVGGHNCTFXOJCH-UHFFFAOYSA-N 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100383698 Secale cereale rscc gene Proteins 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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
- 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]
-
- 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
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/02—Control of operating function, e.g. switching from recording to reproducing
- G11B19/04—Arrangements for preventing, inhibiting, or warning against double recording on the same blank or against other recording or reproducing malfunctions
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/02—Control of operating function, e.g. switching from recording to reproducing
- G11B19/12—Control of operating function, e.g. switching from recording to reproducing by sensing distinguishing features of or on records, e.g. diameter end mark
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40104—Security; Encryption; Content protection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40117—Interconnection of audio or video/imaging devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
-
- 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/2103—Challenge-response
-
- 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/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
정보 처리 장치 및 정보 처리 방법은 부정하게 정보가 카피되는 것을 방지할 수 있다.
상세히 설명하면, 해시 함수(hash function) 및 서비스 키(service key)는 소스로서 기능하는 DVD 플레이어의 EEPROM 내에 미리 저장된다. 한편, 싱크(sink)로서 역할하는 개인용 컴퓨터(PC)의 EEPROM 내에서, 그 ID 및 라이센스 키(license key)는 미리 저장된다. DVD 플레이어는 ID를 전송하도록 PC에 요청한다. 그후, DVD 플레이어는 ID와 서비스 키를 연결하여 얻어진 데이터에 해시 함수를 적용하여, 라이센스 키(=hash(ID∥service_key))를 생성한다. 계속해서, DVD 플레이어는 소스측 공통 세션 키(source side common session key)를 생성하고 그 생성된 라이센스 키를 사용하여 세션 키를 암호화한다. 그후, DVD 플레이어는 암호화된 소스측 공통 세션 키를 PC에 전송한다. PC는 EEPROM 내에 저장된 라이센스 키를 사용하여 상기 암호화된 소스측 공통 세션 키를 해독하여, 소스측 공통 세션 키의 값과 동일한 값을 갖는 싱크측 공통 세션 키를 형성한다.
Description
1. 발명의 분야
일반적으로, 본 발명은 정보 처리 장치, 정보 처리 방법, 정보 처리 시스템, 및 기록 매체에 관한 것이다. 보다 구체적으로, 고도로 안전하게 데이터가 교환가능하도록 하는 정보 처리 장치, 정보 처리 방법, 정보 처리 시스템, 및 기록 매체에 관한 것이다.
2. 본 발명의 설명
최근에, 데이터가 장치들간에 교환될 수 있는 IEEE 1394 시리얼 버스에 의해 상호 접속된 AV 장치 등의 전자 장비와 개인용 컴퓨터로 구성된 시스템이 제안되어 있다.
예를 들어, 이러한 시스템에서, 일반 사용자는 DVD(Digital Video Disc) 플레이어를 사용하여 영상 정보를 재생하여 이 영상 정보를 1394 시리얼 버스를 통해 모니터에 전송함으로써 모니터 상에 표시할 수 있다. 영상 정보를 표시하기 위해 사용자에 의해 취해진 작업은, 사용자가 영상 정보의 DVD를 구입했을 때 얻어진 라이센스를 통해 정상적으로 영상 정보의 저작권자에 의해 자동적으로 인가된다. DVD 플레이어로부터 광자기 디스크 등의 또 다른 기록 매체에 재생된 영상 정보를 카피하는 작업을 위해, 사용자는 영상 정보의 저작권자로부터 특별한 인가를 얻는 것이 필수적이다. 카피 라이센스의 경우, 광자기 디스크 장치는 장치 상에 장착된 광자기 디스크에 영상 정보의 기록이 인가되었는지를 나타내는 키를 저장하는데 사용된다. 즉, 키는 광자기 디스크 장치가 유효 장치, 즉, 영상 정보의 저작권자에 의해 인가된 장치인지를 나타내는지에 관하여 판단을 하는데 사용된다. 만일, 광자기 디스크 장치가 유효 장치로서 인증된다면, 영상 정보를 장치로 기록하는 작업이 인가되도록 판단될 수 있다.
이 경우, 목적 장치가 정보 전송 장치로부터 정보 수신 장치로의 정보 전송시에 유효 장치임을 검증할 필요가 있다. 정보 전송 장치 및 정보 수신 장치가 각각 소스 및 싱크로서 언급되어야 한다.
도 41은 목적 장치를 인증하는 일반 방법을 도시하는 도면이다. 도 41에 도시되는 바와 같이, 소스 및 싱크에는 저작권자에 의해 미리 소정의 함수 f가 주어진다. 각각의 소스 및 싱크의 메로리에 저장된, 함수 F는 임력 및 출력을 식별하기가 어렵다. 또한, 함수 f를 알지 못하는 사람이 함수 f에 대한 입력으로부터 함수 f에 의해 형성된 출력을 추론하는 것은 어렵다. 함수 f는 저자(author)에 의해 라이센스된 장치에만 제공되고 저장된다.
소스는 난수 r을 생성하여 이 수 r를 1394 시리얼 버스를 통해 싱크에 전송한다. 소스는 함수 f를 난수 r에 적용하여, 수 x(=f(r))을 생성한다.
소스로부터 난수 r을 수신하여, 싱크는 함수 f를 난수 r에 적용하고 수 y(=f(r))를 생성한다. 그후, 싱크는 수 y를 소스에 전송한다.
소스는 계산된 수 x와 싱크로부터 수신된 수 y를 비교하여 수 x가 수 y와 동일한지를 판단한다. 만일, 수 x가 수 y와 동일하다면, 소스는 싱크가 유효 장치가 되도록 판단한다. 이 경우, 영상 정보는 싱크에 전송되기 전에 소정의 키를 사용하여 암호화된다.
키로서, 싱크 f로부터 소스에 의해 수신된 수 y에 대해 함수 f를 적용하여 발생된 값 k가 사용된다(k=f(y)). 동일한 토큰(token)으로서, 싱크는 함수 f를 수 y에 적용하여 값 k(=f(y))를 생성한다. 값 k는 암호화 영상 정보를 해독하는 키로서 사용된다.
그러나, 상기 방법에서, 소스 및 싱크로서 사용된 모든 전자 장치가 정보를 전송 및 수신하여 단일 함수 f를 비밀리에 보유하는 것이 필수적이다.
결국, 전자 장치 내에 보유된 함수 f가 인증되지 않은 사용자에 의해 도난될 때, 인증되지 않은 사용자는 1394 시리얼 버스에 의해 교환된 데이터를 모니터링 함으로써 키 k를 발생할 수 있고, 암호 데이터를 해석 및 해독할 수 있다. 이 방식에서, 인증되지 않은 사용자는 소정의 전자 장치를 사용하여 인증된 사용자로서 행함으로써 불법적으로 정보를 훔칠 수 있다.
(발명의 개요)
본 발명은 상기 문제점을 해결하고자 한다. 본 발명의 목적은 또한, 정보를 암호화 또는 해독하는데 요구된 데이터가 인증되지 않은 사용자에 의해 도난 당했을지라도, 소정의 전자 장치를 사용하여 인증되지 않은 사용자가 인증된 사용자인 것처럼 행하지 못하게 하는 것이다.
본 발명의 의도된 다수의 장점들뿐만 아니라, 상기 및 또 다른 목적, 특징이 더욱 분명해지며, 실시예를 나타내는 첨부 도면을 참조하여 양호한 실시예를 상세하게 설명함으로써 보다 용이하게 이해되게 된다.
본 발명의 바람직한 실시예가 도면을 참조하여 설명된다.
(양호한 실시예의 상세한 설명)
도 1은 본 발명이 적용된 정보 처리 시스템의 전형적인 구성을 도시한 블록도이다. 도 1에 도시되는 바와 같이, 구성에 있어서, DVD 플레이어(1), 개인용 컴퓨터(2), 광자기 디스크 장치(3), 데이터 방송/수신 장치(4), 모터(5), 및 텔레비젼 수상기(6)는 IEEE1394 시리얼 버스(11)에 의해 상호 접속된다.
도 2는 도 1에 도시된 정보 처리 시스템내의 DVD 플레이어(1), 개인용 컴퓨터(2), 및 광자기 디스크 장치(3)의 전형적인 구성을 상세하게 도시한 블록도이다. DVD 플레이어(1)는 내부 버스(28)에 의해 상호 접속된 CPU(21), ROM부(22), RAM부(23), 조작부(24), 드라이브(25), 1394 인터페이스부(26), 및 EEPROM부(27)를 구비한다. 도면에 도시되는 바와 같이, DVD 플레이어(1)는 1394 인터페이스부(26)를 통해 1394 시리얼 버스(11)에 접속된다. CPU(21)는 ROM부(22)내에 저장된 프로그램의 실행에 의한 여러 종류의 처리를 실행한다. RAM부(23)는 처리를 실행할 때, CPU(21)에 의해 요구된 데이터 및 프로그램 등의 정보를 적절히 저장하는데 사용된다. 조작부(24)는 버튼, 스위치, 및 원격 제어기 등의 구성요소를 구비한다. 사용자가 조작부(24)를 조작할 때, 조작을 나타내는 신호가 발생된다. 드라이버(25)는 도시되지 않은 DVD를 구동하며, DVD 상에 기록된 데이터를 재생한다. EEPROM부(27)는 DVD 플레이어(1)의 전원이 턴오프된 후 조차도 저장될 필요가 있는 정보를 저장하는데 사용된다. 본 실시예에서, 이러한 정보의 예는 암호/해독 키이다. 내부 버스(28)는 CPU(21), ROM부(22), RAM부(23), 조작부(24), 드라이브(25), 1394 인터페이스부(26), 및 EEPROM부(27)를 상호 접속하는데 사용된다.
DVD 플레이어(1)와 마찬가지로, 광자기 디스크 장치(3)는 내부 버스(38)에 의해 상호 접속된 CPU(31), ROM부(32), RAM부(33), 조작부(34), 드라이브(35), 1394 인터페이스부(36), 및 EEPROM부(37)을 구비한다. 내부 버스(38)에 대한 CPU(31)가 DVD 플레이어(1)내의 내부 버스(28)에 대한 CPU(21)의 기능과 동일하므로, 그 설명은 생략한다. DVD 대신 도면에 도시되지는 않은 광자기 디스크를 드라이버(35)가 구동하는 것은 단지 예외이다. 드라이버(35)는 광자기 디스크로부터 데이터를 기록 및 재생한다.
CPU(41)외에, ROM부(42), RAM부(43), 1394 인터페이스부(49), 및 EEPROM부(50)가 내부 버스(51)에 의해 상호 접속되며, 개인용 컴퓨터(2)는 입력/출력 인터페이스부(44), 키보드(45), 마우스(46), HDD(하드 디스크 드라이브)(47) 및 확장 보드(48)를 포함한다. 개인용 컴퓨터(2)는 1394 인터페이스부(49)를 통해 1394 시리얼 버스(11)에 접속된다. CPU(41)는 ROM부(42)내에 저장된 프로그램의 실행에 의해 여러 종류의 처리를 실행한다. RAM부(43)은 처리를 실행하는데 있어 CPU(41)의해 요구된 프로그램 및 데이터 등의 정보를 적절히 저장하는데 사용된다. 내부 버스(51)에 접속된, 입력/출력 인터페이스부(44)는 CPU(41)와, 키보드(45), 마우스(46), HDD(47), 및 확장 보드(48)간의 인터페이스로서 기능한다. 입력/출력 인터페이스부(44)는 내부 버스(51)를 통해 CPU(41)에 대한 인터페이스부(44)에 접속된 키보드(45) 및 마우스(46)로부터 입력된 신호를 통과시킨다. HDD(47)에 접속되어, 입력/출력 인터페이스부(44)는 내부 버스(51)로부터 출력되는 데이터 및 프로그램을 HDD(47)에 저장되게 하며, 반대로, HDD(47)내의 저장된 데이터 및 프로그램을 내부 버스(51)에 대해 판독 출력되게 한다. 확장 보드(48)는, 필요하다면, 개인용 컴퓨터(2)에 부가될 필수 기능들을 허용하도록 입력/출력 인터페이스부(44)에 접속된다. EEPROM부(50)는 개인용 컴퓨터(2)의 전원이 턴오프된 후에도 저장될 필요가 있는 정보를 저장하는데 사용된다. 본 실시예에서, 이러한 정보의 예는 여러 암호/해독 키들이 있다. 내부 버스(51)는 CPU(41), ROM부(42), RAM부(43), 1394 인터페이스부(49), EEPROM부(50), 및 입력/출력 인터페이스부(44)을 상호접속하기 위해 PCI(주위 구성요소 상호접속) 버스에 의해 전형적으로 구현되는 로컬 버스이다.
내부 버스(51)가 입력/출력 인터페이스부(44)을 통해 사용자에 개방되는 아키텍쳐로 설계되어야 한다. 즉, 사용자는 추가 보드를 확장 보드(48)로서 입력/출력 인터페이스부(44)에 접속하도록 허용되며, 필요하다면, 개인용 컴퓨터(2)내에 내장될 추가 보드에 대한 고객 프로그램을 기록하도록 허용된다. 그후, CPU(41)는 고객 프로그램을 실행하며, 소정의 기능을 구현하기 위해 내부 버스(51)에 의해 확장 보드(48)와 데이터를 적절히 교환한다.
DVD 플레이어(1) 및 광자기 디스크 장치(3)등의 고객 전자(CE) 장치의 경우, 반대로, 그 내부 버스(28, 38)은 사용자에 개방된 아키텍쳐로 설계되지 않는다. 이로써, 사용자는 내부 버스(28 또는 38)가 구체적으로 재설계되지 않는 한 내부 버스(28 또는 38)를 통해 전송된 데이터를 요구할 수 없다.
다음은 도 3 및 도 4를 참조하여 소스에 의해 실행된 싱크의 인증(authentication) 처리를 설명한 것이다. 도 3은 인증 처리를 설명하는데 사용된 다이어그램이다. 도 3에서, 처리는 싱크로서 기능하는 개인용 컴퓨터(2)내에 사용된 CPU(41)에 의해 프로그램으로서 실행될 ROM부(42)내에 저장된 라이센스 매니저(62)를 인증하기 위해, 소스로서 기능하는 DVD 플레이어(1)내에 사용된 ROM부(22)에 미리 프로그램으로서 저장된 펌웨어(20)에 의해 실행된다.
도 4는 DVD 플레이어(1)에 의해 구현된 소스가, 싱크가 유효 싱크이면 소스에 의해 발생된 소스측 공통 세션 키로서 동일 값을 갖는 싱크측 공통 세션 키를 생성하도록 싱크를 허용함으로써 개인용 컴퓨터(2)에 의해 싱크를 인증하는 과정을 구현하는 실시예를 도시한 다이어그램이다. DVD 플레이어(1)내에 사용된 EEPROM부(27)에서, 서비스 키 및 해시(hash) 기능은 미리 저장된다. 서비스 키 및 해시 기능은 DVD 플레이어(1)의 사용자에게 정보의 저작권자에 의해 주어지며, 각 사용자는 이를 EEPROM부(27)내에 비밀리에 보관하여야 한다.
저작권자는 그 저작권자에 의해 생성된 각각의 정보에 대해 서비스 키를 사용자에게 제공한다. 서비스 키는 시스템을 합성하기 위해 1394 시리얼 버스(11)에 의해 상호접속된 모든 장치에 대해 공통인 키로서 사용된다. 본 명세서에서, 시스템은 다수의 장치들로 구성되는 전체 시스템을 나타내는데 사용된다.
해시 함수는 임의의 길이를 갖는 입력을 64 비트 또는 128 비트 등의 고정 길이를 갖는 출력 데이터로 변환하는데 사용된다. 변환을 y=hash(x)라 하면, 부호 x는 해시 함수에 대한 입력이며, 부호 y는 함수에 의해 출력된 데이터이다. 이 경우, 해시 함수는 소정의 값 y로부터 값 x를 찾는 것이 어려운 복소수 함수이다. 해시 함수는 등식 hash(x1)=hash(x2)를 만족시키는 한쌍의 x1,x2를 찾는 것이 어려운 함수이다. MD5 및 SHA는 대표적인 1방향 해시 함수로 공지된 함수의 이름이다. 1방향 해시 함수의 상세한 설명을 위해, 브루스 쉬네이어에 의해 저작권 인정된, 윌리에 의해 출간된, "응용 암호 해독"(제 2판)을 인용한다.
도 4에서 도시된 실시예에서 전형적인 싱크로서 사용된 개인용 컴퓨터(2)에서, 전자 장치, 즉, 개인용 컴퓨터(2)에 고유한 ID, 및 정보 저작권자에 의해 미리 제공된 라이센스 키는 EEPROM부(50)에 비밀리에 보존된다. 이 노드(장치) 고유의 ID는 후술된 전자 장치의 제조업자에 의해 전자 장치에 지정된다. 라이센스 키는 n 비트 ID와 m 비트 서비스 키를 연결하여 얻어진 (n+m) 비트에 대해 해시 함수를 응용함으로써 얻어진 값이다. 이로써, 라이센스 키는 다음의 식으로 표현될 수 있다.
license_key=hash (ID∥service_key)
여기서, "ID∥service_key"는 ID와 서비스 키의 연결을 나타낸다.
1394 버스(11)의 명시에 의해 결정된 node_unique_ID는 ID로서 사용될 수 있다. 도 5는 노드 고유의 ID의 포맷을 나타내는 다이어그램이다. 도 5에 도시되는 바와 같이, 노드 고유의 ID는 8바이트(또는 64비트)로 구성된다. 상위 3바이트는 제조업자에 대한 고유 번호로서 전자 장치의 제조업자에 대해 IEEE에 의해 제어되고 IEEE에 의해 주어진다. 한편, 하위 5바이트는 사용자에 판매된 전자 장치에 대해 전자 장치의 제조업자 자체에 의해 지정될 수 있다. 전형적으로, 전체 하위 5바이트의 각각의 값은 장치의 시리얼 번호로서 전자 장치제조자에 의해 전자 장치에 지정된다. 상위 3바이트는 전자 장치의 제조업자에 대해 고유 값을 가지므로, node_unique_ID는 그 장치가 동일 제조업자 또는 다른 제조업자에 의해 형성되는지에 상관없이 각각의 전자 장치에 대해 고유하다.
도 4에 도시되는 바와 같이, 그 ID에 대해 개인용 컴퓨터(2)의 요구가 1394 시리얼 버스(11)에 의해 전송되도록 하기 위해 DVD 플레이어(1)내의 펌웨어(20)가 1394 인터페이스부(26)을 제어하는 단계 S1이 시작된다. 그후, 단계 S2로 진행하여, 개인용 컴퓨터(2)의 라이센스 매니저(62)는 ID에 대한 요구를 수신한다. 상세하게 서명하여, 개인용 컴퓨터(2)내에 사용된 1394 인터페이스부(49)은 DVD 플레이어(1)에 의해 전송된 ID에 대한 요구를 CPU(41)에 대해 1394 시리얼 버스(11)에 의해 통과시킨다. 과정은 그후 단계 S3로 진행하여, 라이센스 매니저(62)는 CPU(41)에 의해, 1394 인터페이스부(49)에 의해 순방향의 요구에 따라 EEPROM부(50)으로부터 ID를 판독하며, 이 ID를 1394 인터페이스부(49) 및 1394 시리얼 버스(11)에 의해 DVD플레이어(1)에 전송한다.
그후, 과정은 DVD 플레이어(1)에 사용된 1394 인터페이스부(26)이 ID를 수신하여, CPU(21)에 의해 실행되는 펌웨어(20)에 전달하는 단계 S4로 진행한다.
계속해서, 과정은 단계 S5로 진행하여, 펌웨어(20)는 개인용 컴퓨터(2)로부터 수신된 ID와 EEPROM부(27)내에 저장된 서비스 키를 연결하여 데이터(ID∥service_key)를 형성한다. 그때, 라이센스 키(1k)는 해시 함수를 다음의 식에 나타낸 데이터 (ID∥service_key)에 적용함으로써 계산된다.
1k=hash(ID∥service_key)
그후, 과정은 단계 S6으로 진행하여, 펌웨어(20)는 소스측 공통 세션 키 sk를 생성하며, 상세히 후술된다. 소스측 공통 세션 키 sk는 전송될 평문(clear text)을 암호화하기 위한 DVD 플레이어(1) 및 이 DVD 플레이어(1)로부터 수신된 암호문(encrypted text)을 해독하기 위한 개인용 컴퓨터(2)에 의해, 공통 세션 키 S로서 사용될 것이다.
그후, 과정은 단계 S7로 진행하여, 펌웨어(20)는 다음의 식에 따라 키로서, 단계 S5에서 계산된 라이센스 키 1k를 사용하여 단계 S6에서 생성된 소스측 공통 세션 키 sk를 암호화하여 암호화된 소스 측 공통 세션 키 e를 형성한다.
e=Enc(1k,sk)
상기 식의 우변의 Enc(A,B)는 공통 세션 키 암호/해독 기술을 나타내며, 이로써 데이터 B는 키 A를 사용하여 암호화되며 식의 좌변의 암호화된 소스측 공통 세션 키 e를 형성한다.
다음에, 과정은 단계 S8로 진행하여, 펌웨어(20)는 단계 S7에서 생성된 암호화된 소스측 공통 세션 키 e를 개인용 컴퓨터(2)에 전송한다. 상세히 설명하면, 암호화된 소스측 공통 세션 키 e는 DVD 플레이어(1)내에 사용된 1394 인터페이스부(26)에 의해, 1394 시리얼 버스(11)를 경유하여 개인용 컴퓨터(2)에 전송된다. 그후 과정은 단계 S9로 진행하여 개인용 컴퓨터(2)내에 사용된 1394 인터페이스부(49)은 암호화된 소스측 공통 세션 키 e를 수신한다. 그후, 라이센스 매니저(62)는 정보의 저작권자에 의해 미리 제공되어 EEPROM부(50)에 저장된 라이센스 키를 키로서 사용함으로써, 1394 인터페이스부(49)에 의해 전달된 암호화된 소스측 공통세션 키 e를 해독하여, 다음의 식에 따라 싱크측 공통 세션 키 sk'를 형성한다.
sk'=Dec(license_key, e)
상기 식의 우변의 Dec(A,B)는 공통 세션 키 암호/해독 기술을 나타내며, 이 암호화된 데이터 B는 키 A를 사용하여 해독되어 식의 좌변의 싱크측 공통 세션 키 sk'를 형성한다.
DES 알고리즘은 상기 언급된 "응용 암호 해독"을 참조하는 제 2판에 상세히 설명된 공통 세션 키 암호/해독 기술에 인용된 데이터 암호/해독 알고리즘으로서 공지되어 있다.
정보의 저작권자에 의해 제공되어 미리 개인용 컴퓨터(2)에 사용된 EEPROM부(50)내에 저장된 라이센스 키는 단계 S5에서 DVD 플레이어(1)에 의해 생성된 라이센스 키 1k로서 동일의 해시 함수를 사용하여 저작권자에 의해 계산된 값을 갖는다. 즉, 다음의 식이 성립한다.
1k=license_key
이로써, 동일 (라이센스) 키를 사용하는 공통 소스측 공통 세션 키 암호/해독 기술에 근거하여, 단계 S10에서, 개인용 컴퓨터(2)에 의해 실행된 해독하는 단계 S7에서 DVD 플레이어(1)에 의해 실행된 암호화의 역처리이다. 결국, 단계 S6에서, e가 DVD 플레이어(1)에 의해 생성된 소스측 공통 세션 키 sk의 암호화된 데이터이므로, 개인용 컴퓨터(2)에 의해 계산된 싱크측 공통 세션 키 sk', 즉, 암호화된 소스측 공통 세션 키 e의 해독 결과는 소스측 공통 세션 키 sk와 동일하다. 즉, 다음의 식이 성립한다.
sk'=sk
이 방식에서, 소스 및 싱크측 공통 세션 키 sk 및 sk'가 동일 값을 가지므로, DVD 플레이어(1)에 의해 전형적으로 구성된 소스 및 개인용 컴퓨터(2)에 의해 전형적으로 구현된 싱크는 공통 세션 키 S를 공유할 수 있다. 이 이유로 하여, DVD 플레이어(1)는 개인용 컴퓨터(2)에 전송될 저작권자에 의해 생성된 평문을 암호화할 때, 키 sk를 암호화 키로서 사용할 수 있다. 동일 토큰에 의해, 개인용 컴퓨터(2)는 DVD 플레이어(1)로부터 수신된 암호문을 해독할 때, 싱크측 공통 세션 키 sk'를 해독 키로서 사용할 수 있다. 대안의 예로서, DVD 플레이어(1)는 소스측 공통 세션 키 sk를 베이스로서 사용하여, 암호화 키로서 사용될 의사 난수(pseudo random number)를 생성되며, 이는 후술된다. 마찬가지로, 개인용 컴퓨터(2)는 싱크측 공통 세션 키 sk'를 베이스로서 사용하여, 해독 키로서 사용될 난수를 생성하며, 이는 후술된다.
상술된 바와 같이, 라이센스 키(1k)는 도 4에 도시된 과정의 단계 S5에서, 특정 전자 장치에 고유한 ID와 저작권자에 의해 생성된 텍스트에 대해 제공된 서비스 키의 연결에 대해 해시 함수를 적용하여 생성된다. 이와 같이, 소스는 텍스트에 대한 서비스 키를 가지지 않으며/또는 싱크는 법적 소유자에 대해 고유한 ID를 가지지 않는 한 쌍의 전자 장치에서, 정확한 라이센스 키 1k(도 4에 도시된 단계 S5에 언급됨)를 생성할 수 있다. 또한, 저작권자에 의해 인증되지 않은 전자 장치에는 라이센스 키가 제공되지 않으며, 이로써, 세션 키 sk'(도 4에 도시된 단계 S10에 언급됨)를 생성할 수 없다. 일반의 경우, 도 4에 도시된 과정이 완료된 후, DVD 플레이어(1)는 소스측 공통 세션 키 sk를 사용하여 재생 데이터 또는 평문을 암호화하여 이 암호화된 데이터 또는 암호문을 개인용 컴퓨터(2)에 전송한다. 정확한 라이센스 키가 제공된다면, 개인용 컴퓨터(2)는 싱크측 공통 세션 키 sk'(도 4에 도시된 과정의 단계 S10에 언급됨)를 생성할 수 있다. 개인용 컴퓨터(2)는 싱크측 공통 세션 키 sk'에 의해 DVD 플레이어(1)로부터 수신된 암호문 또는 암호화된 재생 데이터를 해독할 수 있다. 만일, 개인용 컴퓨터(2)가 인가된 전자 장치가 아니라면, 정확한 라이센스 키가 사용될 수 없기 때문에 싱크측 공통 세션 키 sk'를 생성할 수 없다. 결국, 인가되지 않은 개인용 컴퓨터(2)는 DVD 플레이어(1)로부터 수신된 암호화된 재생 데이터 또는 암호문을 해독할 수 없다. 환언하면, 소스에 의해 생성된 소스측 공통 세션 키와 동일 값을 갖는 싱크측 공통 세션 키 sk'를 생성할 수 있는 싱크만이 인증된다. 이것은 정보에 대한 저작권자에 의해 제공된 서비스 키 또는 저작권자에 의해 생성된 텍스트를 가지고 인가된 싱크로부터 정확한 ID를 수신하는 인가된 소스로서 기능하는 특정의 전자 장치만이 정확한 라이센스 키(1k)를 생성할 수 있다. 동일한 토큰에 의해, 저작권자에 의해 정확한 라이센스 키가 제공된 인가된 싱크로서 기능하는 특정의 전자 장치만이 암호화된 데이터 또는 암호문을 해독하기 위해 해독 키로서 사용할 정확한 싱크측 공통 세션 키 sk'를 생성할 수 있다.
개인용 컴퓨터(2)에 허여된 라이센스 키가 우연한 기회에 도난 당한 것으로 가장하자. 이 경우, 도난 당한 라이센스 키는 다른 전자 장치가 개인용 컴퓨터(2)에 지정된 것과는 다른 ID를 가지므로, 유효 싱크측 공통 세션 키 sk'를 생성하도록 또 다른 전자 장치에서 사용될 수 없다. ID가 장치마다 다르므로, 또 다른 전자 장치는 도난 당한 라이센스 키에 의해 DVD 플레이어(1)로부터 수신된 암호화된 재생 데이터 또는 암호문을 해독할 수 없다. 결과적으로, 전송된 정보의 안정성이 향상된다.
그런데, 인가되지 않은 사용자는 암호화된 소스측 공통 세션 키 e 및 소스측 공통 세션 키 sk를 우연한 기회에 몇몇 이유로 알 수 있다. 이 경우, 암호화된 소스측 공통 세션 키 e가 라이센스 키 1k를 사용하여 소스측 공통 세션 키 sk의 암호화로 인해 생성된 텍스트의 종류이므로, 인가되지 않은 사용자가 그 암호화 알고리즘이 개시된다면 시행 착오에 근거하여 암호화된 소스측 공통 세션 키 e를 계산하기 위해 라이센스 키 1k를 사용하여 소스측 공통 세션 키 sk의 암호화로 라이센스 키 1k의 모든 값을 사용함으로써 라이센스 키 1k의 정확한 값을 얻을 수 있는 확률이 꽤 크다.
인가되지 않은 사용자가 침해하지 않도록 방지하기 위해, 공지된 암호화된 소스측 공통 세션 키 e 및 공지된 소스측 공통 세션 키 sk로부터 역으로 유도하는 처리는 암호화 알고리즘을 유지함으로써, 즉, 암호화 알고리즘의 전부 또는 일부를 공개적으로 개시하지 않음으로써 어렵게 이루어 질 수 있다.
동일의 이유로, 시행 착오에 기준하여 공지된 라이센스 키를 형성하도록 해시 함수내의 공지된 서비스 키 및 공지된 ID의 모든 값을 사용하여 공지된 라이센스 키 및 ID로부터 서비스 키를 역으로 유도하는 처리는, 해시 함수를 비밀리에 유지함으로써, 즉, 모든 또는 부분적인 해시 함수를 공개적으로 개시하지 않음으로써, 복잡하게 이루어질 수 있다.
도 6은 인증 과정을 구현하는 또 다른 실시예를 도시하는 다이어그램이며, DVD 플레이어(1)에 의해 구현된 소스는, 싱크들이 유효 싱크이라면 소스에 의해 생성된 소스측 공통 세션 키와 동일한 값을 갖는 싱크측 공통 세션 키를 생성하도록 각각의 싱크를 허용함으로써, 개인용 컴퓨터(2) 및 광자기 디스크 장치(3)에 의해 구현된 2개의 싱크를 인증한다.
제 1 싱크로서 기능하는 개인용 컴퓨터(2)내에 사용된 EEPROM부(50)에서, 개인용 컴퓨터(2)에 대한 전자 장치의 제조업자에 의해 미리 고유하게 지정된 식별어 ID1 및, 컴퓨터(2)에 대한 정보의 저작권자에 의해 미리 제공된 라이센스 키 License Key 1는 저장된다. 동일한 토큰에 의해, 제 2 싱크로서 기능하는 광자기 디스크 장치(3)에서 사용된 EEPROM부(37)에서, 디스크 장치(3)에 대해 전자 장치의 제조업자에 의해 고유하게 미리 지정된 ID 인 ID2 및, 디스크 장치(3)에 대해 정보의 저작권자에 의해 미리 제공된 라이센스 키 License Key 2는 저장된다.
소스로서 기능하는 DVD 플레이어(1) 및 제 1 싱크로서 기능하는 개인용 컴퓨터(2)에 의해 단계 S11 내지 S20을 실행하는 처리들이 도 4에서 설명된 단계 S1 내지 S10와 기본적으로 동일하므로, 그 설명은 반복되지 않는다.
간략하게, 개인용 컴퓨터(2)는 상술된 바와 같이, 단계 S20에서 DVD 플레이어로부터 수신된 암호화된 소스측 공통 세션 키 el로부터 유효 싱크측 공통 세션 키 sk1'를 생성한다. 그후, 과정은 단계 S21로 진행하여 DVD 플레이어(1)내의 펌웨어(20)가 1394 시리얼 버스(11)를 경유하여 전송될 ID에 대한 광자기 디스크 장치(3)에 대한 요구를 하기 위해 1394 인터페이스부(26)를 제어한다. 그후, 과정은 단계 S22로 진행하여, 도 10에 도시된 광자기 디스크 장치(3)의 펌웨어(30)가 ID에 대한 요구를 수신한다. 상세하게는, 광자기 디스크 장치(3)내에 사용된 1394 인터페이스부(36)는 1394 시리얼 버스(11)를 경유하여 DVD 플레이어(1)에 의해 전송된 ID에 대한 요구를 CPU(31)에 전달한다. 그후 과정은 단계 S23에 진행하며, CPU(31)에 의해 실행된 펌웨어는 1394 인터페이스부(36)에 의해 순방향 요구에 따라 EEPROM부(37)으로부터 식별어 ID2를 판독하고 이 식별어 ID2를 1394 인터페이스부(36) 및 1394 시리얼 버스(11)를 경유하여 DVD 플레이어(1)에 전송한다.
그후, 과정은 단계 S24로 진행하며, DVD 플레이어(1)내에 사용된 1394 인터페이스부(26)은 식별어 ID2를 수신하며 CPU(21)에 의해 실행되는 펌웨어(20)에 전달한다.
개속해서, 과정은 단계 S25로 진행하여 펌웨어(20)는 광자기 디스크 장치(3)로부터 수신된 식별어 ID2와 EEPROM부(27)내에 저장된 서비스 키를 연결하여, 데이터(ID2∥service_key)를 형성한다. 그후, 라이센스 키 lk2는 해시 함수를 다음 식에 도시된 데이터(ID2∥service_key)에 적용함으로써 계산된다.
lk2=hash(ID2∥service_key)
그후, 과정은 단계 S26에 진행하여, 펌웨어(20)는 단계 S25에서 계산된 라이센스 키 lk2를 사용하여 단계 S16에서 생성된 소스측 공통 세션 키 sk를 암호화하여, 다음의 식으로 암호화된 소스측 공통 세션 키 e2를 형성한다.
e2=Enc(lk1.sk)
연속하여, 과정은 단계 S27에 진행하여 펌웨어(20)는 암호화된 소스측 공통 세션 키 e2를 광자기 디스크(3)에 전송한다. 상세하게, 암호화된 소스측 공통 세션 키 e2는 DVD 플레이어(1)내에 사용된 1394 인터페이스부(26)에 의해 1394 시리얼 버스(11)를 경유하여 광자기 디스크 장치(3)에 전송된다.
그후, 과정은 단계 S28로 진행하여, 광자기 디스크(3)내에 사용된 1394 인터페이스부(36)는 암호화된 소스측 공통 세션 키 e2를 수신한다. 그후, 과정은 단계 S29로 진행하여, 펌웨어(30)는 EEPROM부(37)내에 저장된 라이센스 키(license_key 2)를 키로서 사용하여, 1394 인터페이스부(36)에 의해 전달된 암호화된 소스측 공통 세션 키 e2를 암호화함으로써, 다음의 식에 따라 싱크측 공통 세션 키 sk2'를 형성한다.
sk2'=Dec(license_key 2, e2)
상술된 바와 같이, 개인용 컴퓨터(2) 및 광자기 디스크 장치(3)는 각각 단계 S20 및 S29에서 싱크측 공통 세션 키 sk1' 및 sk2'를 생성한다. 일반적으로, 싱크측 공통 세션 키 sk1' 및 sk2'는 단계 S16에서 DVD 플레이어(1)에 의해 생성된 소스측 공통 세션 키 sk와 동일 값을 갖는다.
도 6에 도시된 과정에서, DVD 플레이어(1)는 개인용 컴퓨터(2) 및 광자기 디스크 장치(3)에 개별적으로 ID 요구를 한다. 그러나, 방송 통신의 경우, 요구들은 동시에 이루어질 수 있으며, 도 7에 도시된 과정을 구현하는 실시예에 따른 처리가 실행될 수 있다.
도 7에 도시되는 바와 같이, 과정은 단계 S41을 시작하여, DVD 플레이어(1)는 방송 통신에 의해 ID에 대해 모든 싱크, 즉, 개인용 컴퓨터(2) 및 광자기 디스크 장치(3)에 요구를 전송한다. 그후, 과정은 단계 S42 및 S43에 진행하여, 개인용 컴퓨터(2) 및 광자기 디스크 장치(3)는 각각 ID에 대한 요구를 수신한다. 그후, 과정은 단계 S44 및 S45에 진행하여, 개인용 컴퓨터(2) 및 광자기 디스크 장치(3)는 EEPROM부(50,37)으로부터 식별어 ID1, ID2를 각각 판독하여 DVD 플레이어(1)에 이를 전송한다. 그후, 과정은 단계 S46, S47로 진행하여, DVD 플레이어(1)는 식별어 ID1,ID2를 각각 수신한다.
계속해서, 과정은 단계 S48에 진행하여, DVD 플레이어(1)는 개인용 컴퓨터(2)로부터 수신된 식별어 ID1과 EEPROM부(27)내에 저장된 서비스 키를 연결하여 데이터(ID∥service_key)를 형성한다. 그후, 라이센스 키 lk1는 해시 함수를 다음 식으로 나타낸 데이터 (ID∥service_key)에 적용함으로써 계산된다. 즉,
lk1=hash(ID∥service_key)
계속해서, 과정은 단계 S49로 진행하여, DVD 플레이어(1)는 광자기 디스크 장치(3)으로부터 수신된 식별어 ID2와 EEPROM부(27)에 저장된 서비스 키를 연결하여 데이터 (ID2∥service_key)를 형성한다. 그후, 라이센스 키 lk2는 해시 함수를 다음 식으로 나타낸 데이터 (ID2∥service_key)에 적용하여 계산된다.
lk2=hash(ID2∥service_key)
그후, 과정은 단계 S50으로 진행하여, DVD 플레이어(1)는 소스측 공통 세션 키 sk를 생성한다. 그후, 과정은 단계 S51로 진행하여, DVD 플레이어(1)는 단계 S48에서 계산된 라이센스 키 lk1를 키로서 사용하여 단계 S50에서 생성된 소스측 공통 세션 키 sk를 암호화함으로써, 다음 식에 따라 소스측 공통 세션 키 e1을 형성한다.
e1=Enc(lk1,sk)
그후, 과정은 단계 S52로 진행하여, DVD 플레이어(1)는 단계 S49에서 계산된 라이센스 키 lk2를 키로서 사용하여 단계 S50에서 생성된 소스측 공통 세션 키 sk를 암호화함으로써, 다음 식에 따라 소스측 공통 세션 키 e2를 형성한다. 즉,
e2=Enc(lk2,sk)
그후, 과정은 단계 S53으로 진행하여, 식별어 ID1, 암호화된 소스측 공통 세션 키 el, 식별어 ID2 및 암호화된 소스측 공통 세션 키 e2는 연결되어 다음 식을 형성한다.
e=ID1∥el∥ID2∥e2
계속해서, 과정은 단계S54로 진행하여, DVD 플레이어(1)는 암호화된 소스측 공통 세션 키 e를 방송 통신에 의해 개인용 컴퓨터(2) 및 광자기 디스크 장치(3)에 전송한다. 과정은 단계 S55 및 S56으로 진행하여, 개인용 컴퓨터(2) 및 광자기 디스크 장치(3)는 암호화된 소스측 공통 세션 키 e를 수신한다. 그후, 과정은 단계 S57 및 S58로 진행하여, 개인용 컴퓨터(2) 및 광자기 디스크 장치(3)는 EEPROM부(50,37)에 저장된 라이센스 키들, License Key1 및 License Key2를 키로서 사용함으로써 암호화된 소스측 공통 세션 키 e로부터 추출된 암호화된 소스측 공통 세션 키 el 및 e2를 해독하여, 다음 식에 따라 싱크측 공통 세션 키 sk1' 및 sk2'를 각각 형성한다.
sk1'=Dec(License_Key1, el)
sk2'=Dec(License_Key2, e2)
도 8은 인증 처리 과정을 구현하는 실시예를 도시한 것으로, 유효 싱크만이 시스템내의 소스에 의해 생성된 소스측 공통 세션 키 sk와 동일한 값을 갖는 싱크측 공통 세션 키 sk'를 생성할 것이며, 싱크는 다수의 서비스, 즉, 다수 종류의 서비스를 해독할 수 있게 된다. 다른 종류의 정보를 다루기 위해, 싱크로서 기능하는 개인용 컴퓨터(2)에는 License_Key1, License_Key2, License_Key3등의 EEPROM부(50)내에 저장된 다수의 라이센스 키들이 제공된다. 동일 토큰에 의해, 소스로서 기능하는 DVD 플레이어(1)는 싱크에 전송될 정보의 종류를 식별하는 다수의 서비스 ID 및, License_Key1, License_Key2, License_Key3등을 생성하는데 사용된 Service_key1, Service_key2, Service_key3등의 EEPROM부(27)내에 저장된 다수의 서비스 키들에 대한 정보를 갖는다. 도 8에 도시된 과정으로 실행된 처리는 다음의 단계들을 제외하고는 도 4에 도시된 과정과 유사하다. 단계 S81에서, DVD 플레이어(1)는 싱크로서 사용된 개인용 컴퓨터(2)에 의해 서비스될 정보의 종류를 식별하는 서비스 ID및 이 ID에 대한 요구를 개인용 컴퓨터(2)에 전송한다. 그후, 단계 S85에서, 라이센스 키 lk는 개인용 컴퓨터(2)로부터 수신된 ID 및, 실크에 전송된 정보의 종류, 즉, 단계 S81에서 개인용 컴퓨터(2)에 전송된 서비스 ID에 관련된 EEPROM부(27)내의 Service_key1, Service_key2, Service_key3중의 한 개에 대해 해시 함수를 적용함으로써 생성된다. 마지막으로, 단계 S90에서, 개인용 컴퓨터(2)는 단계 S89에서 DVD 플레이어(1)로부터 수신된 암호화된 싱크측 공통 세션 키 e 및, 단계 S82에서 DVD 플레이어(1)로부터 수신된 서비스 ID에 관련된 EEPROM부(50)내의 License_Key1, License_Key2, License_Key3중의 한 개로부터, 싱크측 공통 세션 키 sk'를 생성한다.
도 9는 인증 처리 과정을 구현하는 또 다른 실시예를 도시하는 다이어그램으로서, 유효 싱크는 소스에 의해 생성된 소스측 공통 세션 키 sk와 동일 값을 갖는 싱크측 공통 세션 키 sk'를 생성할 수 있다. 이 경우, 소스로서 사용된 DVD 플레이어(1)는 EEPROM부(27)내에 저장된 서비스 키, 해시 함수, 의사 난수 생성 함수 pRNG를 갖는다. 서비스 키, 해시 함수, 의사 난수 생성 함수 pRNG는 정보 저작권자에 의해 주어지며 비밀리에 보존된다. 한편, 싱크로서 기능하는 개인용 컴퓨터(2)에 의해 사용된 EEPROM부(50)에 저장되는 내용은, 정보의 저작권자에 의해 주어진 ID(전자 장치의 제조업자에 의해 개인용 컴퓨터(2)에 지정됨), 라이센스 키들 LK 및 LK', 함수 G, 및 의사 난수 생성 함수 pRNG이다.
라이센스 키 LK는 저작권자에 의해 생성된 고유의 난수인 반면에, 라이센스 키 LK'는 다음 식을 만족시키도록 저작권자에 의해 생성된다.
LK'=G^-1(R)
여기서, R=pRNG(H) (+) pRNG(LK)
H=hash((ID∥service_key)
부호 ^는 제곱수를 나타내며, G^-1는 함수 G의 역함수를 의미한다. 역함수 G^-1는 공지된 소정의 공식으로 용이하게 얻을 수 있다. 만일, 소정의 공식이 공지되지 않았다면, 역함수 G^-1의 값을 계산하는 것은 어렵다. 개시된 키에 근거한 암호화에 사용된 함수가 상기 함수로서 활용될 수 있다.
또한, 난수를 생성하는 함수 pRNG는 하드웨어에 의해 구현될 수 있다.
도 9에 도시되는 바와 같이, 과정은 단계 S101에서 시작하여, DVD 플레이어(1)내의 펌웨어(20)가 그 전송될 ID에 대한 개인용 컴퓨터(2)의 라이센스 매니저(62)에 대한 요구를 이룬다. 그후, 과정은 단계 S102로 진행하여, 개인용 컴퓨터(2)의 라이센스 매니저(62)는 ID에 대한 요구를 수신한다. 단계 S103에 진행하여, 라이센스 매니저(62)는 요구에 따라 EEPROM부(50)으로부터 ID를 판독하여 DVD 플레이어(1)에 ID를 전송한다. 그후, 과정은 단계 S104로 진행하여 DVD 플레이어(1)는 ID를 수신한다.
계속해서, 과정은 단계 S105로 진행하여, 펌웨어(20)는 개인용 컴퓨터(2)로부터 수신된 ID와 EEPROM부(27)에 저장된 서비스 키를 연결하여 데이터 (ID∥service_key)를 형성한다. 이때, 값 H는 다음의 식에 나타낸 대로, 해시 함수를 데이터 (ID∥service_key)에 적용함으로써 계산된다.
H=hash(ID∥service_key)
과정은 단계 S106에 진행하여, 펌웨어(20)는 소스측 공통 세션 키 sk를 생성한다. 그후, 과정은 단계 S107로 진행하여, 펌웨어(20)는 다음의 식에 따라 단계 S105에서 생성된 값 H 및 단계 S106에서 생성된 소스측 공통 세션 키 sk로부터 암호화 소스측 공통 세션 키 e 를 계산한다.
e=sk(+)pRNG(H)
여기서, 상기 식의 우변에 사용된 (+)은 배타적 논리합을 계산하는 연산의 연산자이며, 이로써, A(+)B는 A와 B의 배타적 논리합을 나타낸다.
즉, 단계 S107에서, 단계 S106에서 생성된 소스측 공통 세션 키 sk는 단계 S105에서 생성된 값 H에 의사 난수 생성 함수 pRNG를 인가함으로써 얻어진 난수 pRNG(H)의 대응 비트와, 키의 각각의 비트의 배타적 논리합을 얻음으로써, 암호화된 소스측 공통 세션 키 e를 생성하도록 암호화된다.
계속해서, 과정은 단계 S108에 진행하여, 펌웨어(20)는 단계 S107에서 생성된 암호화된 소스측 공통 세션 키 e를 개인용 컴퓨터(2)에 전송한다.
과정은 단계 S109에 진행하여, 개인용 컴퓨터(2)는 암호화된 소스측 공통 세션 키 e를 수신한다. 그후, 과정은 단계 S110에 진행하여, 라이센스 매니저(62)는 EEPROM부(50)내에 저장된 라이센스 키 LK 및 LK'를 사용하여 암호화 소스측 공통 세션 키 e를 해독함으로써, 다음의 식에 따라 싱크측 공통 세션 키 sk'를 형성한다.
sk'=e(+)G(LK')(+)pRNG(LK)
즉, 단계 S110에서, DVD 플레이어(1)로부터 수신된 암호화 소스측 공통 세션 키 e는, 암호화된 소스측 공통 세션 키 e, EEPROM부(50)내에 저장된 함수 G를 EEPROM부(50)내에 저장된 라이센스 키 LK'에 인가하여 얻어진 값 G(LK'), EEPROM부(50)내에 저장된 의사 난수 생성 함수pRNG를 EEPROM부(50)내에 저장된 라이센스 키 LK에 인가하여 얻어진 값 pRNG(LK)를 배타적 논리 합에 의해 싱크측 공통 세션 키 sk'를 생성하도록 해독된다.
도 4에 도시된 과정과 마찬가지로, 단계 S110에서 개인용 컴퓨터(2)에 의해 생성된 싱크측 공통 세션 키 sk'는 단계 S6에서 DVD 플레이어(1)에 의해 생성된 소스측 공통 세션 키 sk와 동일한 값을 갖는다. sk=sk'는 다음식에 의해 증명된다.
sk'=e(+)G(LK')(+)pRNG(LK)
상기 식의 우변의 e에 대해 (sk(+)pRNG(H))를 대체하여 다음 식을 얻는다.
sk'=sk(+)pRNG(H)(+)G(LK')(+)pRNG(LK)
G(LK')=G(G^-1(R))=R을 이용하여, 다음 식이 얻어진다.
sk'=sk(+)pRNG(H)(+)R(+)pRNG(LK)
상기 식의 우변의 R에 대해 (pRNG(H)(+)pRNG(LK))를 대체하여, 다음 식이 얻어진다.
sk'=sk(+)pRNG(H)(+)pRNG(H)(+)pRNG(LK)(+)pRNG(LK)=sk
상술된 바와 같이, 소스 및 싱크측 공통 세션 키 sk 및 sk'는 각각 소스 및 싱크로서 기능하는 DVD 플레이어(1) 및 개인용 컴퓨터(2)에 의해 공유되는 공통 키 S이다. 또한, 이전에 설명된 과정과는 달리, 정보의 저작권자만이 라이센스 키 LK, LK'를 생성할 수 있다. 이로써, 라이센스 키 LK, LK'를 불법적으로 생성하기 위해 소스에 의해 이루어진 시도는 실패로 끝난다. 결과적으로, 전송된 정보의 안전성은 더욱 개선될 수 있다.
상술된 인증 과정에서, 소스는 싱크가 유효 싱크일 때만 소스에 의해 생성된 소스측 공통 세션 키 sk와 동일 값을 갖는 싱크측 공통 세션 키 sk'를 생성하도록 싱크를 허용함으로써 인증한다. 과정은 또한 불법적으로 얻어진 응용 프로그램의 실행을 방지하기 위해 개인용 컴퓨터(2)내의 응용 프로그램을 로딩하도록 일반 동작을 인증하는데 적용될 수 있다. 이 경우, 각각의 응용 프로그램의 실행이 라이센스 매니저(62)가 도 3에서처럼 응용 모듈(61)를 인증하는 상술된 과정과 동일한 과정을 통해 프로그램의 저작권자에 의해 인가된 것인지 아닌지를 판단할 필요가 있다. 보다 구체적으로, 도 3에 도시된 인증 과정에서, 라이센스 매니저(62)는 소스로서 기능하는 반면에, 응용 모듈(61)은 싱크로서 기능한다.
상술된 인증 처리가 완료된 후에, 즉, 싱크가 소스에 의해 생성된 소스측 공통 세션 키 sk와 동일 값을 갖는 싱크측 공통 세션 키 sk'를 생성한 후에, 암호화 키를 사용하여 소스에 의해 암호화된 데이터 또는 평문은 소스로부터 싱크에 전송된다. 싱크에서, 암호화된 데이터 또는 암호문은 해독 키를 사용하여 해독된다. 상술된 바와 같이, 소스 및 싱크측 공통 세션 키 sk 및 sk'는 각각 암호 및 해독 키로서 사용될 수 있거나, 또는 대안적으로, 세션 키 sk 또는 sk'로부터 생성된 난수가 대신에 암호 또는 해독 키로서 사용된다. 데이터를 암호화기 위해 소스에 의해 실행된 연산 및 암호화된 데이터를 해독하기 위해 실행된 연산은 후술된다.
그 내부 기능이 사용자에 개방되지 않는 아키텍쳐로 조립되는 DVD 플레이어(1) 및 광자기 디스크 장치(3) 등의 전자 장치에 있어서, 소스가 암호화 데이터를 싱크에 전송하는 도 10에 도시된 시스템 등에서 1394 시리얼 버스(11)를 통해 전송된 데이터를 암호화 및 해독하는 처리는 각각 DVD 플레이어(1) 및 광자기 디스크 장치(3)내에 사용된 1394 인터페이스부(26,36)에 의해 실행된다. 데이터는 세션 키 S, 즉, 소스측 공통 세션 키 sk 또는 싱크측 공통 세션 키 sk'와, 시변 키 i, 엄밀하게는, 시변 키 i를 생성하기 위한 키 i'를 사용하여 암호화 및 해독된다. 세션 키 S 및 키 i'는 펌웨어(20 또는 30)에 의해 1394 인터페이스부(26 또는 36)에 각각 공급된다. 세션 키 S는 초기값으로서 사용된 초기값 키 Ss 및 시변 키 i를 교란시키기 위한 교란 키 Si로 구성된다. 초기값 키 Ss 및 교란 키 Si는 각각 앞서 설명된 싱크를 인증하는 처리에서 사용된 소스측 공통 세션 키 sk 또는 이 sk와 동일 값을 갖는 싱크측 공통 세션 키 sk'의 소정수의 상위 비트 및 소정수의 하위 비트로부터 형성된다. 세션 키 S는 각각의 영상 정보 또는 각각의 재생 동작에 대해 각각의 세션에서 적절하게 갱신된다. 한편, 세션 키 S의 교란 키 Si 및 키 i'로부터 생성되는 시변 키 i는 세션내의 다수의 시간을 갱신한다. 예를 들어, 소정의 시간으로 얻어진 시간 정보는 키 i'로서 사용될 수 있다.
소스로서 기능하는 DVD 플레이어(1)에 의해 재생 및 출력된 영상 데이터는, 1394 시리얼 버스(11)를 통해 싱크로서 사용된 개인용 컴퓨터(2) 및 광자기 디스크 장치(3)에 전송되며, 그후, 싱크에 의해 해독된다. 이 경우, 데이터는 세션 키 S 및 시변 키 i(엄밀히 말하면, 키 i')를 사용하여 DVD 플레이어(1)내에 사용된 1394 인터페이스부(26)에 의해 암호화되고, 암호화 데이터는 세션 키 S 및 시변 키 i(엄밀히 말하면, 키 i')를 사용하여 광자기 디스크 장치(3)내에 사용된 1394 인터페이스부(36)에 의해 해독된다.
한편, 개인용 컴퓨터(2)에서, 라이센스 매니저(62)는 응용 모듈(61)에 세션 키 S의 초기값 키 Ss를, 링크부으로 기능하는 1394 인터페이스부(49)에 대해 세션 키 S의 교란 키 Si 및 시변 키 i(엄밀히 말하면, 시변 키 i를 생성하는 키 i')를 제공한다. 1394 인터페이스부(49)에서, 시변 키 i는 교란 키 Si 및 키 i'로부터 생성되어 암호화 데이터를 해독하는데 사용된다. 해독된 데이터는 또한 세션 키 S(엄밀히 말하면, 세션 키 S의 초기값 키 Ss)를 사용하여 응용 모듈(61)에 의해 해독된다.
상술된 바와 같이, 내부 버스(51)가 사용자에 개발되는 아키텍쳐로 설계되는 개인용 컴퓨터(2)에서, 1394 인터페이스부(49)는 암호화 데이터에 대해 제 1단계의 해독만을 실행하여, 여전히 데이터는 암호화된 상태이다. 그후, 응용 모듈(61)은 1394 인터페이스부(49)에 의해 해독된 데이터에 대해 제 2단계의 해독을 실행하여, 평문을 형성한다. 이 방식에서, 개인용 컴퓨터(2)는 내부 버스(51)에 부가된 적절한 기능을 사용하여 하드 디스크 드라이브(47)상에 장착된 또 다른 매체에 대해, 내부 버스(51)를 통해 전송된 데이터(즉, 평문)를 카피하지 못하게 금지한다.
상술된 바와 같이, 본 발명의 실시예에 따라, 내부 버스가 사용자에 개방되지 않은 아키텍쳐를 갖는 CE 장치에서, 암호화된 데이터는 세션 키 S 및 시변 키 i(엄밀히 말하면, 키 i')에 의해 한번에 해독된다. 한편, 내부 버스가 사용자에 개방되는 아키텍쳐를 갖는 개인용 컴퓨터(2)등의 CE 장치의 경우, 암호화된 데이터는 제 1 단계에서, 세션 키 S 의 교란 키 Si 및 키 i'를 사용하여 생성된 시변 키 i에 의해 해독되며, 그 후, 제 2단계의 해독 단계에서, 세션 키 S의 초기값 Ss를 사용하여 해독된다. 제 1 및 제 2 단계의 해독 처리는 다음 식에 의해 표현된다.
Dec(Ss, Dec(i, Enc(algo(S+i'),Data)))=Data
여기서, 좌변의 algo(S+i')은 소정의 알고리즘을 세션 키 S 및 시변 키 i(엄밀히 말하면, 키 i')에 적용하여 생성된 값을 나타내며, 상기 식의 좌변의 Dec는 제 2단계의 해독을 나타내며, 또 다른 Dec는 제 1단계의 해독을, Enc는 소스에 의해 실행된 암호화를 나타낸다.
도 11은 상기 주어진 식에 나타난 Enc가 1394 인터페이스부(26)를 사용하는 DVD 플레이어(1)에 의해 실행된 암호화를 나타내도록 충족시키는 1394 인터페이스부(26)의 전형적인 구조를 도시하는 블록도이다. 도 11에 도시된 바와 같이, 상기 구조는 추가의 발생기(71), LFSR(Linear Feedback Shift Resister)(72), 수축(shrink) 발생기(73), 및 가산기(74)를 구비한다. 추가의 발생기(71)에 의해 생성된 m비트 데이터 및 LFSR 에 의해 생성된 1비트 데이터는 수축 발생기(73)에 공급된다. 수축 발생기(73)는 LFSR(72)에 의해 공급된 1비트 데이터의 값에 따라 추가의 발생기(71)로부터 수신된 m비트 데이터를 선택하여 이 선택된 m비트 데이터를 암호화 키로서 가산기(74)에 출력한다. m비트 암호화키, 수축 발생기(73)에 의해 생성된 난수는 주어진 상기 식의 키 (S+i')에 해당한다. 가산기(74)는 수축 발생기(73)로부터 수신된 m비트 암호화키를 입력된 평문, 즉, 1394 시리얼 버스(11)에 전송될 m비트 데이터에 가산하여, 암호문 또는 암호화된 데이터를 형성한다.
가산기(74)에 의해 실행된 가산은 mod 2^m(^은 제곱수를 의미함) 처리하며, 수축 발생기(73)에 의해 생성된 암호화키를 평문에 가산하는 것을 의미한다. 환언하면, 처리는 m비트 키를 이월이 무시된 m비트 데이터에 가산한다.
도 12는 도 11에 도시된 1394 인터페이스부(26)의 상세한 구조를 도시하는 블록도이다. 도 12에서, 펌웨어(20)로부터 수신된 세션 키 S의 초기값 키 Ss는 가산기(81)를 통해 레지스터(82)내에 보유되도록 제공된다. 전형적으로, 초기값 키 Ss는 범위 8 내지 32 비트 내의 길이를 각각 갖는 55 단어들로 구성된다. 한편, 세션 키 S의 교란 키 Si는 레지스터(85)내에 보유된다. 전형적으로, 교란 키 Si는 세션 키 S의 하위 32 비트이다.
키 i'는 32비트 레지스터(84)에 보유된다. 키 i'는 비트들의 누산 처리로 생성된다. 상세하게 설명하면, 패킷이 1394 시리얼 버스(11)를 통해 전송될 때마다, 키 i'를 형성하기 위한 2 비트들이 레지스터(84)에 공급된다. 32비트 키 i'는 16패킷이 전송될 때 그 생성이 완료된다. 그때, 32 비트 키 i'는 가산기(86)에 의해 레지스터(85)내에 저장된 교란 키 Si에 가산되어, 가산기(81)에 공급된 시변 키 i를 최종적으로 생성한다. 가산기(81)는 가산기(86)에 의해 출력된 시변 키 i를 레지스터(82)내에 저장된 초기값 키 Ss에 가산하여, 그 가산 결과를 레지스터(82)에 저장한다.
레지스터(82) 내의 단어당 비트 수는 8로 한다. 이 경우, 가산기(86)에 의해 출력된 시변 키 i가 32비트 폭이므로, 시변 키 i는 8비트로 구성된 4개 부분으로 분할된다. 4개의 각 부분은 소정의 어드레스, 즉, 어드레스 0 내지 54중의 하나에서 레지스터(82)내의 단어에 가산된다.
상술된 바와 같이, 초기값 Ss는 레지스터(82)에 초기에 저장된다. 암호문의 16 패킷이 전송될 때마다, 초기값 Ss는 시변 키 i를 가산함으로써 갱신된다.
가산기(83)는 레지스터(82)의 55 단어들 중 소정의 2 단어를 선택하여 그 선택된 2 단어를 상호 가산한다. 도 12에 도시된 타이밍에 있어, 어드레스 23 및 54에서의 단어는 가산기(83)에 의해 선택된다. 가산기(83)는 가산 결과를 수축 발생기(73) 및 레지스터(82)내의 한 단어에 공급한다. 도 12에 도시된 타이밍에서, 가산기(83)는 어드레스 0에서의 레지스터(82)의 단어에 그 가산 결과를 공급하여, 그 단어내에 현재 저장된 데이터를 대체한다.
다음 타이밍에서, 가산기(83)에 의해 선택된 2 단어는 어드레스 54 및 23으로부터 어드레스 53 및 22로 변경되며, 도면에 도시된 방향으로 1 단어단위로 이동된다. 동일 토큰에 의해, 가산기(83)에 의해 출력된 가산 결과의 지정은 상향 이동된다. 어드레스 0 이상에는 단어가 없으므로, 어드레스 0에서의 단어로부터 레지스터(82)의 바닥인 어드레스 54에서의 단어로 지정이 변화된다.
각각의 가산기(81, 83,86)에서, 배타적 논리 합을 계산하는 처리는 대신 실행될 수 있다.
도 13은 LFSR(72)의 전형적인 구조를 도시하는 블록도이다. 도 13에 도시된 바와 같이, LFSR(72)는 n비트들 중에 소정수의 비트들의 값들을 합산하기 위해 n 비트 시프트 레지스터(101) 및 가산기(102)를 구비한다. 가산기(102)에 의한 가산 결과 비트는 n비트 시프터 레지스터(101)의 가장 왼쪽 비트 bn에 저장된다. 동시에, 비트 bn의 이전의 값은 비트 bn의 오른쪽으로 비트 bn-1에 시프트된다. 동일 토큰에 의해, 오른쪽으로의 비트 시프팅은 이전의 비트 값 bn-1, bn-2, ...,에 인가되며, 도 13에 도시된 가장 오른쪽 비트 b1의 이전의 값이 출력된다. 다음 타이밍에서, 가산기(102)에 의한 가산의 결과로부터의 비트는 n비트 시프트 레지스터(101)의 가장 왼쪽 비트 bn에 다시 저장되며, 동시에, 비트 bn의 이전의 값은 다시 비트 bn의 오른쪽 비트 bn-1에 시프트된다. 동일 토큰에 의해, 오른쪽으로의 비트 이동은 다시 비트 bn-1, bn-2,...,의 이전의 값에 인가되며, 가장 오른쪽 비트 b1의 이전의 값이 다시 출력된다. 이 동작은 반복적으로 실행되며, 가장 오른쪽 비트 b1로부터 1 비트씩 순차적으로 출력한다.
도 13 은 LFSR(72)의 전형적인 구성을 도시하는 블록도이다. 한편, 도 14는 보다 구체적으로 LFSR(72)의 전형적인 구조를 도시하는 도면이다. 도 14에 도시된 구조에서, 시프트 레지스터(101)는 31비트로 구성된다. 가산기(102)는 가장 오른쪽 비트 b1의 값에 가장 왼쪽 비트 b31의 값을 가산하고 시프트 레지스터(101)의 가장 왼쪽 비트(31)내에 가산 결과를 저장하는데 사용된다.
도 12에 도시된 바와 같이, 수축 레지스터(73)는 조건 판정부(91) 및 FIFO부(92)으로 구성된다. 조건 판정부(91)는 LFSR(72)이 논리 값 "1"을 갖는 비트를 출력할 때, 추가의 생성기(71)내에 사용된 가산기(83)에 의해 제공된 m 비트 데이터를 FIFO 부(92)내에 전달하여 그 내부에 저장되도록 한다. 한편, LFSR(72)가 논리값 "0"를 갖는 비트를 출력할 때, 조건 판정부(91)는 추가의 발생기(71)내에 사용된 가산기(83)에 의해 공급된 m비트 데이터를 FIFO부(92)에 전달하지 않고 암호화 처리를 중단한다. 상기 방식에서, 수축 발생기(73)내에 사용된 조건 판정부(91)는 LFSR(72)이 논리값 "1"을 갖는 비트를 출력하는 동안에 추가의 발생기(71)에 의해 각각 생성된 m비트 데이터만을 선택하고 발생기(73)의 FIFO부(92)내에 그 선택된 m비트 데이터를 저장한다.
FIFO부(92)내에 저장된 각각의 m비트 데이터는, 싱크에 전송될 평문을 나타내는 데이터, 즉, 소스내의 DVD로부터 재생된 데이터에 암호화키를 가산함으로써 암호문을 생성하기 위해, 암호화 키로서 가산기(74)에 공급된다.
암호화된 데이터는 1394 시리얼 버스(11)를 경유하여 DVD 플레이어(1)로부터 광자기 디스크 장치(3) 및 개인용 컴퓨터(2)에 전송된다.
도 15는 1394 시리얼 버스(11)를 경유하여 DVD 플레이어(1)로부터 수신된 암호화 데이터를 해독하는 광자기 디스크 장치(3)내에 사용된 1394 인터페이스부(36)의 구조를 도시한 다이어그램이다. 도 15에서, 도 11에 도시된 DVD 플레이어(1)내에 사용된 1394 인터페이스부(26)와 마찬가지로, 구조는 추가의 발생기(171), LFSR(172), 수축 발생기(173), 및 감산기(174)로 구성된다. 추가의 발생기(171)에 의해 생성된 m비트 데이터 및 LFSR(172)에 의해 생성된 1 비트 데이터는 수축 발생기(173)에 공급된다. 수축 발생기(173)는 LFSR(172)에 의해 공급된 1 비트 데이터의 값에 따라 추가의 발생기(171)로부터 수신된 m비트 데이터를 선택하여 이 선택된 m비트 데이터를 암호화 키로서 감산기(174)에 출력한다. 감산기(174)는 암호문, 즉, 1394 시리얼 버스(11)를 경유하여 DVD 플레이어(1)로부터 수신된 m비트 데이터로부터, 수축 발생기(173)로부터 수신된 m비트 해독 키를 감산하여, 암호문을 평문으로 해독한다.
도 15에서 도시된 DVD 플레이어(1)내에 사용된 1394 인터페이스부(36)의 구조는, 감산기(174)가 가산기(74)대신에 사용된다는 점 외에는 도 11에 도시된 광자기 디스크 장치(3)에 사용된 1394 인터페이스부(26)와 기본적으로 동일하다.
도 16은 도 15에 도시된 1394 인터페이스부(36)의 세부적 구조를 간단한 방식으로 도시한 다이어그램이다. 도 16에 도시된 DVD 플레이어(1)내에 사용된 1394 인터페이스부(36)의 구조는 감산기(174)가 가산기(74)대신에 사용된다는 점 외에는 도 12에 도시된 광자기 디스크 장치(3)에 사용된 1394 인터페이스부(26)의 것과 기본적으로 동일하다. 도 16에 도시된 광자기 디스크 장치(3)의 1394 인터페이스부(36)에 사용된 추가의 발생기(171), LFSR(172), 수축 발생기(173), 가산기(181), 레지스터(182), 가산기(183), 레지스터(184), 레지스터(185), 가산기(186), 조건 판정부(191), FIFO부(192)는 도 12에 도시된 DVD 플레이어(1)의 394인터페이스부(26)내에 사용된 추가의 발생기(71), LFSR(72), 수축 발생기(73), 가산기(81), 레지스터(82), 가산기(83), 레지스터(84), 레지스터(85), 가산기(86), 조건 판정부(91), FIFO부(92)에 각각 대응한다.
이와 같이, 도 16에 도시된 광자기 디스크 장치(3)내에 사용된 1394 인터페이스부(36)의 동작이 도 12에 도시된 DVD 플레이어(1)내에 사용된 394 인터페이스부(26)의 것과 동일하므로, 그 설명은 생략한다. 그러나, 전자에서, 감산기(174)가 수축 발생기(173)내에 사용된 FIFO부(192)로부터 수신된 m비트 해독 키를, 암호문, 즉, 1394 시리얼 버스(11)를 경유하여 DVD 플레이어(1)로부터 수신된 m비트 데이터로부터 감산하여, 암호문을 평문으로 해독한다는 점에서 후자와 다르다.
광자기 디스크 장치(3)에 사용된 1394 인터페이스부(36)에서, 암호화 데이터는, 초기값 키 Ss 및 교란 키 Si로 구성되는 세션 키 S 및, 시변 키 i(엄밀히 말하면, 키 i')를 사용하여 한번에 해독된다.
개인용 컴퓨터(2)의 경우, 암호화 데이터는 제 1단계의 해독에서 세션 키 S의 교란 키 Si 및 키 i'에 의해 생성된 시변 키 i를 사용하여 1394 인터페이스부(49)에 의해 해독되고 제 2단계의 해독에서 세션 키 S의 초기값 키 Ss를 사용하여 응용부(61)에 의해 해독된다.
도 17은 하드웨어에 의해 1394 시리얼 버스(11)를 경유하여 DVD 플레이어(1)로부터 수신된 암호문 또는 암호 데이터를 해독하기 위해 개인용 컴퓨터(2)에서 사용된 1394 인터페이스부(49)의 전형적인 구조를 도시한 다이어그램이다. 도 17에 있어서, 도 15에 도시된 광자기 디스크 장치(3)내에 사용된 1394 인터페이스부(36) 및 도 11에 도시된 DVD 플레이어(1)내에 사용된 1394 인터페이스부(26)와 마찬가지로, 구조는 도 15에 도시된 추가의 발생기(171), LFSR(172), 수축 발생기(173), 감산기(174)에 각각 대응하는 추가의 발생기(271), LFSR(272), 수축 발생기(273), 감산기(274)로 구성된다. 라이센스 매니저(62)로부터의, 시변 키 i를 생성하기 위한 키 i' 및 도 17에 도시된 1394 인터페이스부(49)에 대해 입력된 시변 키 i를 교란하기 위한 세션 키 S의 교란 키 Si는, 펌웨어(30)로부터의, 도 15에 도시된 키 i' 및 1394 인터페이스부(36)에 대해 입력된 교란 키 Si와 동일하다. 그러나, 도 17에 도시된 1394 인터페이스부(49)에 대해 입력된 세션 키 S의 초기값 Ss의 모든 비트는 0에 리셋된다.
도 18은 도 17에 도시된 1394 인터페이스부(49)의 세부적 구조를 간단한 방식으로 도시한 다이어그램이다. 도 18에 도시된 개인용 컴퓨터(2)에서 사용된 1394 인터페이스부(49)의 구조는, 도 18에 도시된 1394 인터페이스부(49)에 대해 입력된 세션 키 S의 초기값 Ss의 모든 비트들이 0에 리셋되므로, 본질적으로, 해독 키는 초기값 키 Ss가 사용가능하지 않은 것처럼, 키 i'로부터 생성된 시변 키 i 및 교란 키 Si로부터만 생성되는 것 외에는, 도 12에 도시된 DVD 플레이어(1)내에 사용된 1394 인터페이스부(26) 및 도 16에 도시된 광자기 디스크 장치(3)내에 사용된 1394 인터페이스부(36)의 것과 기본적으로 동일하다는 것이 명료하다. 결과적으로, 감산기(274)에서, 암호화 데이터 또는 암호문은 시변 키 i만을 사용하여 해독된다. 초기값 키 Ss가 해독시에 아직 사용되지 않았으므로, 완전한 평문은 해독 결과로서 아직 얻어지지 않았다. 즉, 해독의 결과는 여전히 암호화된 상태이다. 이로써, 해독으로 생겨난 데이터는 그 데이터가 내부 버스(51)로부터 하드 디스크 드라이브(47)상에 장착된 하드 디스크 또는 또 다른 기록 매체에 카피되는 것처럼 사용될 수가 없다.
이어서, 시변 키 i를 사용함으로써 1394 인터페이스부(49) 내의 하드웨어에 의해 해독된 데이터 혹은 텍스트는 응용 모듈(61) 내의 소프트웨어에 의해서 더 해독된다. 도 19는 응용 모듈(61)의 전형적인 구성을 보인 도면이다. 기본적으로 도 11에 도시한 DVD 플레이어(1)에 사용된 인터페이스부(26), 도 15에 도시한 광자기 디스크 장치(3)에 사용된 1394 인퍼페이스부(36), 및 도 17에 도시한 개인용 컴퓨터(2)에 사용된 1394 인터페이스부(49)와 유사하게, 도 19에 도시한 응용 모듈(61)은 추가 발생기(61), LFSR(선형 귀환 시프트 레지스터; 372), 추가 발생기(171)와 동일한 구성의 수축 발생기(373) 및 감산기(374), LFSR(선형 귀환 시프트 레지스터; 172), 각각 도 15에 도시한 수축 발생기(173) 및 감산기(174)를 포함한다.
그러나, 세션 키(S)의 초기값 키(Ss)가 도 11에 도시한 DVD 플레이어(1)에 사용된 1394 인터페이스부(26) 및 도 15에 도시한 광자기 디스크 장치(3)에 사용된 1394 인터페이스부(36)의 경우와 같이 응용 모듈(61)에 공급되는 반면, 시변 키(i) 및 키(i')를 교란(deranging)하기 위한 세션키(S)의 교란키(Si)는 모든 비트가 0으로 리셋될 각각의 단위 원소임에 유념한다.
도 20은 도 19에 도시된 응용 모듈(61)의 상세한 구성을 간단하고 분명하게 도시한 도면이다. 응용 모듈(61)의 구성 역시 기본적으로 도 12에 도시한 DVD 플레이어(1)에 사용된 인터페이스부(26), 도 16에 도시한 광자기 디스크 장치(3)에 사용된 1394 인퍼페이스부(36), 및 도 18에 도시한 개인용 컴퓨터(2)에 사용된 1394 인터페이스부(49)와 동일하다. 추가 발생기(371)에서 사용된 가산기(381)부터 수축 발생기(373)에 사용된 FIFO부(392)까지, 도 20에 상세히 도시한 응용 모듈(61)에 사용된 구성요소들은 추가 생성기(171)에 사용된 가산기(181)부터 수축 발생기(173)에 사용된 FIFO부(192)까지 도 16에서 도시한 1394 인터페이스부(36)에 사용된 구성요소에 각각 대응한다. 그러나, 레지스터(384) 내의 키(i') 및 레지스터(385)내의 교란키(Si)의 모든 비트는 0이기 때문에, 가산기(386)에 의해서 생성된 시변 키(i)의 비트는 모두 0이다. 결국, 근본적으로 응용 모듈(61)은 시변키(i)가 없는 것처럼 동작한다. 즉, 해독키의 생성은 초기값 키(Ss)에만 의존한다. 이때, 감산기(374)는 암호화된 데이터를 해독하거나, 이러한 방식으로 생성된 해독키를 사용함으로써, 평문을 출력한다. 상기 기술된 바와 같이, 암호화된 데이터는 소위 제1 해독 단계에서 키(i') 및 교란키(Si)로부터 생성된 시변 키(i)에 기초하여 1394 인터페이스부(49)에 의해 수행된 해독 결과이다. 한편, 초기값 키(Ss)에 기초하여 응용 모듈(61)에 의해 수행된 해독은 최종의 완전한 평문을 생성하기 위한 제2 해독 단계라 한다.
상기 기술된 암호문의 해독이 광자기 디스크(3)에서 완료된 때, CPU(31)는 해독 데이터를 광자기 디스크에 데이터를 기록하기 위한 드라이브(35)에 공급한다.
한편, 개인용 컴퓨터(2)에서, CPU(41)는 1394 인터페이스부(49)에 의해 수행된 제1 해독 단계 결과에 따른 해독 데이터를 내부 버스(51)를 경유하여 데이터를 기록하기 위해 통상 하드 디스크 드라이브(47)에 공급한다. 개인용 컴퓨터(20)에서 앞에서 설명한 바와 같이 내부 버스(51)를 통해 전송된 데이터를 모니터하기 위한 확장 보드(48)로서 소정의 보드가 입력/출력 인터페이스부(44)에 접속될 수 있음에 유념해야 한다. 그럼에도 불구하고, 내부 버스(51)를 통해 전송된 데이터를 최종으로 해독할 수 있는 것은 응용 모듈(61)뿐이다. 따라서, 시변 키(i)에 기초하여 1394 인터페이스부(49)에 의해서 해독의 결과로 나온 암호 데이터를 확장 보드(48)가 모니터할 수 있어도, 암호 데이터는 데이터가 세션 키(S)의 초기값 키(Ss)를 사용함으로써 응용 모듈(61)에 의해 해독되지 않았기 때문에 완전히 평문이 아니다. 결국, 응용 모듈(61)에 의해 수행된 최종 해독하여 나온 완전한 평문이 내부 버스(51)를 통해 결코 전송되지 않는다면 완전한 평문이 불법으로 복제되는 것을 방지할 수 있다.
통상, 디피-헬만(Diffie-Hellman) 기술을 채택함으로써 세션키(S)를 소스 및 싱크가 공유하게 할 수 있다.
1394 인터페이스부(49) 혹은 개인용 컴퓨터(20)에 사용된 응용 모듈(61)은 비교적 처리능력이 낮아 데이터 해독을 행할 수 없음을 주의한다. 이러한 문제에 대처하기 위해서, 세션키(S)의 초기값 키(Ss)나 시변 키(i), 혹은 이들 모두는 단위 원소로서 소스에서 생성될 수 있다. 동일 토큰(token)에 의해서, 싱크 내의 단위 원소로서의 키들 중 어느 하나 혹은 이들 키를 사용함으로써, 데이터는 세션키(S)의 초기값 키(Ss) 및 시변키(i)를 사용함이 없이 소스에서 싱크로 가상으로 전송될 수 있다. 그러나, 이러한 방식으로는 데이터가 불법으로 복제되는 가능성 범위 내에 있게 된다.
응용 모듈(61) 자체가 불법 복제인 경우, 응용 모듈(61)에 의해서 수행된 해독 결과로 나온 평문 또한 불법으로 복제될 우려가 많다. 이 문제를 해결하기 위해서, 라이센스 매니저(62)는 앞에서 설명한 바와 같이 해독에 앞서 응용 모듈(61)의 진위를 입증할 수도 있다.
응용 모듈(61)의 진위를 입증하기 위한 방법으로서, 앞에서 설명한 공통 세션 키 암호/해독 기술에 더하여, 알려진 암호 키 암호 방법에 기초한 디지털 기호(signature)를 채택할 수 있다.
도 11, 12 및 15에 도시한 구성은 준동형(homomorphism) 관계를 만족시킨다. 즉, 키(K1 및 K2)가 갈로아 필드(Galois field; G)의 원소이면 두 개의 원소의 그룹 처리 결과 K1·K2 역시 갈로아 필드(G)의 원소이다. 더욱이, 소정의 함수(H)에 관하여 다음의 식이 성립한다.
H(K1·K2) = H(K1)·H(K2)
도 21은 DVD 플레이어(1)에 사용된 1394 인터페이스부(26)의 또 다른 전형적인 상세한 구성을 도시한 도면이다. 도면에 도시한 바와 같이, 세션키(S)의 초기값 키(Ss)는 LFSR(501 내지 503)에 공급되어 이에 초기값으로서 설정된다. LFSR(501 내지 503)의 폭은 20비트 크기인 n1 내지 n3 비트이다. LFSR(501 내지 503)은 이들의 폭 n1 내지 n3 이 서로 함께 하여 원소를 이루도록 설계된다. 즉, 예를 들면, 세션 키(S)의 초기값 키(Ss)의 상위 n1비트, 중위 n2비트 및 하위 n3비트는 초기값으로서 LFSR(501, 502, 503)에 각각 설정된다.
논리값 1의 인에이블 신호가 클록 기능부(506)로부터 LFSR(501 내지 503)에 공급된 때, LFSR(501 내지 503)은 각각 이의 내용을 m 비트만큼 시프트하여 m비트 데이터를 출력한다. m값은 통상 8, 16, 32 혹은 40으로 설정될 수 있다.
LFSR(501)에 의해 출력된 데이터는 가산기(504)에 의해서, LFSR(502)에 의해 출력된 데이터에 가산된다. 가산기(504)에 의해 수행된 가산 결과에 따른 캐리는 클록 기능부(506)에 공급되며, 가산 결과는 가산기(505)에 의해서, LFSR(503)에 의해 출력된 데이터에 가산된다. 가산기(504)에 의해 수행된 가산 결과에 따른 캐리는 클록 기능부(506)에 또한 공급되고 가산 결과는 배타적 논리합 계산 회로(508)에 공급된다.
가산기(504 및 506)에 의해 공급된 캐리들은 클록 기능부(506)에서 조합되어 00, 01, 10 혹은 11이 된다. 클록 기능부(506)는 000 내지 111 조합 중 하나를 나타내는 데이터를 가산기(504 및 505)로부터 받은 캐리들의 조합에 따라 LFSR(501 내지 503)으로 출력한다. 상기 기술한 바와 같이, 논리값 1의 인에이블 신호가 클록 기능부(506)로부터 LFSR(501 내지 503)으로 공급된 때, LFSR(501 내지 503)은 이의 내용을 각각 m비트만큼 시프트하여 새로운 m비트 데이터를 출력한다. 반면, 논리값 0의 인에이블 신호가 클록 기능부(506)로부터 LFSR(501 내지 503)으로 공급된 때, LFSR(501 내지 503)은 이의 내용을 시프트하지 않고 전에 우측으로 출력된 데이터와 동일한 m비트 데이터를 출력한다.
배타적 논리합 계산 회로(508)은 가산기(505)에 의해 수행된 가산 결과 및 레지스터(507)에 저장된 시변 키(i)를 받아, 이들 입력들의 배타적 논리합을 계산한다. 배타적 논리합 계산 회로(509)는 배타적 논리합 계산 회로(508)에 의해 출력된 배타적 논리합과 입력된 평문의 또 다른 배타적 논리합을 계산하여, 암호문으로서 다른 배타적 논리합을 출력한다.
도 22는 광자기 디스크 장치(3)에 사용된 1394 인터페이스부(36)의 또 다른 전형적인 상세한 구성을 도시한 도면이다. 도면에 도시한 바와 같이, LFSR(601)부터 배타적 논리합 계산 회로(609)까지 1394 인터페이스부(36)에 사용된 모든 구성요소는 LFSR(501)부터 배타적 논리합 계산 회로(509)까지 도 21에 도시한 1394 인터페이스부(26)에 사용된 대응하는 구성요소와 동일 구성을 갖는다. 따라서, 이들의 동작은 기본적으로 동일하기 때문에, 이들 동작의 설명은 반복하지 않는다. 도 22에 도시된 광자기 디스크 장치(3)에 사용된 1394 인터페이스부(36)와 도 21에 도시된 DVD 플레이어(1)에 사용된 1394 인터페이스부(26)간 차이는 후자에 사용된 배타적 논리합 계산 회로(509)가 평문을 암호화하고, 전자에 사용된 배타적 논리합 계산 회로(609)가 암호문을 해독한다는 것이다.
도 23은 개인용 컴퓨터(2)에 사용된 1394 인터페이스부(49)의 또 다른 전형적인 상세한 구성을 도시한 도면이다. 도면에 도시한 바와 같이, LFSR(701)부터 배타적 논리합 계산 회로(709)까지 1394 인터페이스부(49)에 사용된 모든 구성요소는 LFSR(601)부터 배타적 논리합 계산 회로(609)까지 도 22에 도시한 1394 인터페이스부(36)에 사용된 대응하는 구성요소와 동일 구성을 갖는다. 도 22에 도시된 광자기 디스크 장치(3)에 사용된 1394 인터페이스부(36)와 도 23에 도시된 개인용 컴퓨터(2)에 사용된 1394 인터페이스부(49)간 차이는 후자에 사용된 LFSR(701 내지 703)에 공급된 세션키(S)의 초기값 키(Ss)는 모든 비트가 0으로 재설정될 단위 원소라는 것이다. 따라서, 도 23에 도시한 개인용 컴퓨터(2)에 사용된 1394 인터페이스부(49)의 경우, 암호문의 해독은 근본적으로 키(i') 및 세션 키(S)의 교란키(Si)로부터 생성된 레지스터(707) 내의 시변키(i)에만 의존한다.
도 24는 개인용 컴퓨터(2)에 사용된 응용 모듈(61)의 또 다른 전형적인 상세한 구성을 도시한 도면이다. 도면에 도시한 바와 같이, LFSR(801)부터 배타적 논리합 계산 회로(809)까지 응용 모듈(61)에 사용된 모든 구성 요소는 LFSR(601)부터 배타적 논리합 계산 회로(609)까지 도 22에 도시한 1394 인터페이스부(36)에 사용된 대응하는 구성요소와 동일 구성을 갖는다. 도 22에 도시된 광자기 디스크 장치(3)에 사용된 1394 인터페이스부(36)와 도 24에 도시된 개인용 컴퓨터(2)에 사용된 응용 모듈(61)간 차이는 후자에 사용된 레지스터(807)에 공급된 시변키(i)는 모든 비트가 0으로 재설정될 단위 원소라는 것이다. 따라서, 도 24에 도시한 개인용 컴퓨터(2)에 사용된 응용 모듈(61)의 경우, 암호문의 해독은 근본적으로 세션 키(S)의 초기값 키(Ss)에만 의존한다.
도 19, 20 및 24에 도시한 구성 각각에서 해독 처리는 통상 소프트웨어에 의해 실현되는 응용 모듈(61)에 의해서 수행되는 것에 유념한다.
한편, 라이센스 키는 이를 혹시 어떤 이유로 도용될 경우 필요하다면 변경되거나 갱신될 수 있다. 라이센스 키는 도용될 가능성 범위 내에 있게 된다면 라이센스 키가 도용되지 않았어도 소정 시간에 한번 변경될 수 있음은 말할 나위도 없다. 이 경우, 유효기간을 나타내는 라이센스 키 버전이 DVD에 기록된다. 본 실시예의 경우, 라이센스 키의 유효기간은 라이센스 키를 생성하기 위해서 해시(hash) 함수가 적용될 횟수로 나타내어진다. DVD 플레이어로부터 재생되는 정보 대신에 인공위성을 통해 전송된 정보를 수신하기 위한 정보 수신 장치가 동작되는 대상물인 경우, 유효한 버전의 정보만이 인공위성을 경유하여 정보 수신 장치로 전송된다.
도 25 및 26은 갱신된 라이센스 키를 사용하여 DVD 플레이어(1)에서 소스측 공통 세션 키(sk)와 개인용 컴퓨터(2)에서 싱크측 공통 세션키(sk')를 생성하기 위한 과정을 구현하는 실시예를 보인 도면이다. 여러 가지 정보는 도 4에 도시한 실시예의 DVD 플레이어(1)에 사용된 EEPROM부(27) 및 개인용 컴퓨터(2)에 사용된 EEPROM부(50)에 저장된다는 사실에 더하여, 해시 함수는 EEPROM부(26) 뿐만이 아니라, 본 실시예의 경우 EEPROM부(50)에 저장되는 것에 유념한다.
도 25에 도시한 바와 같이, 과정은 소스로 작용하는 DVD 플레이어(1)가 ID에 대한 싱크로서 작용하는 개인용 컴퓨터(20)에 요청하는 단계 S151부터 시작한다. 이어서, 과정은 개인용 컴퓨터(2)가 ID에 대한 요청을 수신하는 단계 S152로 진행한다. 과정은 이어서 개인용 컴퓨터(2)가 DVD 플레이어(1)로 ID를 전송하는 단계 S153으로 진행한다. 이어서, 과정은 DVD 플레이어(1)가 ID를 수신하는 단계 S154로 계속된다.
계속해서, 과정은 DVD 플레이어(1)가 EEPROM부(27)에 저장된 서비스키와 함께 개인용 컴퓨터(2)로부터 수신된 ID를 연관시켜 data(ID || service_key)를 형성하도록 하는 단계 S155로 진행한다. 이어서, 라이센스 키(1k)는 다음 식에 보인 바와 같이 data(ID || service_key)에 해시 함수를 적용함으로써 계산된다.
1k = hash(ID || service_key)
상기 기술된 단계 S151 내지 S155에서 수행된 처리들은 도 4에 도시한 과정의 단계 S1 내지 S5에서 수행된 바와 동일한다.
이어서 과정은 단계 S156으로 진행하여, 여기서 DVD 플레이어(1)는 단계 S155에서 생성된 라이센스 키(1k)가 유효 버전을 갖고 있는지 여부, 즉 라이센스 키(1k)가 DVD에 기록된 소정값과 동일한 횟수로 해시 함수를 적용함으로써 생성되었는지 여부에 대해 판단한다. 상기 기술한 바와 같이, 라이센스 키(1k)의 현재의 유효 버전은 라이센스 키(1k)를 생성하기 위해서 해시 함수가 적용될 횟수를 나타내는 소정값으로서 기록된다. DVD에 기록된 소정값이 1보다 크다고 가정한다. 단계 S151에서 라이센스 키(1k)를 생성하기 위해서 해시 함수가 적용된 횟수는 1이기 때문에, 라이센스 키(1k)는 무효한 것으로 판단된다. 이 경우 과정은 단계 S157로 진행하여, 여기서 DVD 플레이어(1)는 라이센스 키(1k)를 생성하기 위해서 해시 함수가 적용된 횟수를 표시하는 변수 g를 1로 초기화하여, 생성된 라이센스 키(1k)를 변수 1kg에 저장한다. 이어서, 과정은 단계 S158로 계속되어, 여기서 해시 함수는 다음의 식에 따라 새로운 라이센스 키(1kg+1)를 발견하기 위해서 변수(1kg)의 내용에 적용된다.
1kg+1 = hash(1kg)
계속해서, 과정은 단계 S159로 진행하여, 여기서 단계 S158에서 생성된 라이센스 키(1kg+1)가 유효한 버전인지 여부를 판단한다. 라이센스 키(1kg+1)가 유효한 버전을 갖지 않는다면, 즉, 변수 g가 본 실시예의 경우 소정값에 이르지 않은 경우, 과정은 단계 S160으로 진행하여 여기서 DVD 플레이어(1)는 변수 g의 값을 1만큼 증가시켜 변수 1kg에 1kg+1를 저장한다.
단계 S158 및 S159는 변수(g)의 값, 즉 라이센스 키를 생성하기 위해 해시 함수가 적용되었던 횟수가 라이센스 키로서 DVD에 기록된 소정값에 도달할 때까지 반복하여 수행된다.
라이센스 키를 생성하기 위해 해시 함수가 적용되었던 횟수의 상한으로 작용하는 소정값은 통상 100으로 설정됨에 유념한다.
단계 S159에서 행해진 판단 결과, 라이센스 키를 생성하기 위해 해시 함수가 적용되었던 횟수가 라이센스 키의 버전으로서 DVD에 기록된 소정값에 도달하였음을 나타내면, 즉 판단결과, 유효한 라이센스 키(1kg+1)가 단계 S158에서 얻어졌음을 나타내거나, 단계 S156에서 행해진 판단의 결과, 단계 S155에서 생성된 라이센스 키(1k)가 유효한 경우, 즉 라이센스 키를 생성하기 위해서 해시 함수가 적용될 횟수가 1이면, 과정은 단계 S161로 가서, 여기서 DVD 플레이어(1)는 앞에서 설명한 도 4의 과정과 동일하게 소스측 공통 세션 키(sk)를 생성한다.
이어서, 과정은 단계 S162로 계속되어 여기서 DVD 플레이어(1)는 키로서 단계 S155 혹은 S158에서 계산된 라이센스 키(1kg)를 사용하여 단계 S161에서 생성된 소스측 공통 세션 키(sk)를 암호화하여 다음 식에 따라 상기 암호화된 소스측 공통 세션키(e)를 생성한다.
e = Enc(1kg, sk)
계속해서, 과정은 단계 S163으로 가서, 여기서 DVD 플레이어(1)는 라이센스 키를 생성하기 위해서 해시 함수가 적용된 휫수를 나타내는 변수(g)의 값에 따라 단계 S162에서 생성된 암호화된 소스측 공통 세션 키(e)를 개인용 컴퓨터(2)로 전송한다. 이어서 과정은 단계 S164로 진행하여 여기서 개인용 컴퓨터(2)는 암호화된 소스측 공통 세션키(e) 및 변수(g)의 값을 수신한다. 이어서, 과정은 단계 S165로 가서, 여기서 개인용 컴퓨터(2)는 라이센스 키를 생성하기 위해서 해시 함수가 적용된 휫수를 나타내는 변수(w)를 1로 초기화한다. 이어서 과정은 단계 S166으로 가서, 여기서 단계 S164에서 수신된 변수(g)의 값이 단계 S165에서 설정된 변수(w)의 값과 동일한지 여부를 판단한다. 이들이 서로 같지 않다면, 과정은 단계 S167로 가서, 여기서 개인용 컴퓨터(2)에 사용된 EEPROM부(50)에 저장된 해시 함수를 EEPROM부(50)에 또한 저장된 라이센스 키인 licence_keyw에 적용하여 다음 식에 따라 새로운 라이센스 키인 licence_keyw+1를 생성한다.
licence_keyw+1 = hash(licence_keyw)
이어서, 과정은 단계 S168로 계속되어, 여기서 개인용 컴퓨터(2)는 변수(w)를 1만큼 증가시키고 licence_keyw를 licence_keyw+1로 대치한다. 이어서 과정은 단계 S166로 복귀하여, 변수(g)의 값이 변수(w) 값과 동일한지 여부를 다시 판단한다. 단계 S166 내지 S168은 라이센스 키를 생성하기 위해서 해시 함수가 적용된 휫수를 나타내는 변수(w)의 값이 변수(g) 값과 동일할 때까지 반복하여 수행된다.
단계 S166에서 판단결과, 변수(w)의 값이 변수(g) 값과 동일하다면, 즉 현재 유효한 licence_keyw가 얻어졌다면, 과정은 단계 S169로 가서 여기서 개인용 컴퓨터(2)는 암호화된 소스측 공통 세션 키(e)를 해독하여 다음식에 따라 싱크측 공통 세션키(sk')를 생성한다.
sk' = Dec(licence_keyw, e)
상기 기술된 라이센스 키를 생성하기 위해서 해시 함수 적용을 적절하게 반복함으로써, 정보 보안이 더욱 향상될 수 있다.
도 25 및 26에 도시한 과정에 따라, 라이센스 키의 버전을 나타내는 변수(g)의 값은 소스에 의해서 싱크로 전송된다. 그러나, 라인센스 키를 생성하기 위해서 해시 함수의 적용은 도 25에 도시한 과정을 구현하는 실시예의 경우와 같이 버전을 전송할 필요없이 필요한 만큼의 휫수로 반복될 수 있고 도 26 대신 도 27로 계속될 수 있음에 유념해야 한다.
즉, 이 실시예의 경우, 단계 S163에서, 암호화된 소스측 공통 세션 키(e)만이 DVD 플레이어(1)에 의해서 개인용 컴퓨터(2)로 전송된다. 이때, 라이센스 키의 버전을 나타내는 변수(g)의 값은 전송되지 않는다. 이어서 과정은 단계 S164로 진행하여, 여기서 개인용 컴퓨터(2)는 암호화된 소스측 공통 세션 키(e)를 수신한다. 이어서, 과정은 단계 S165로 가서, 여기서 개인용 컴퓨터(2)는 암호화된 소스측 공통 세션 키(e)를 해독하여 다음의 식에 따라 EEPROM부(50)에 저장된 licence_key를 사용해 싱크측 공통 세션 키(sk')를 생성한다.
sk' = Dec(licence_key, e)
한편, 단계 S166에서, DVD 플레이어(1)는 다른 키들 중, 단계 S161에서 생성된 소스측 공통 세션 키(sk)를 사용하여 개인용 컴퓨터(2)로 전송될 데이터를 암호화하여, 이 암호화된 데이터를 컴퓨터(2)로 전송한다. 이어서 과정은 단계 S167로 가서, 여기서 개인용 컴퓨터(2)는 암호화된 데이터의 해독을 수신하고 이어서 단계 S168로 가서 다른 키들 중, 단계 S165에서 생성된 싱크측 공통 세션 키(sk')를 사용하여 상기 암호화된 데이터를 해독한다. 이어서, 과정은 단계 S169로 가서 여기서 개인용 컴퓨터(2)는 단계 S168에서 수행된 해독 결과로 나온 데이터가 정확한지 여부를 판단한다. 예를 들면, MPEG 시스템의 TS(트랜스포트 스트림) 패킷으로서 수신된 데이터는 패킷의 헤드 내의 16진수 값 47과의 동기화를 위한 코드를 갖는다. 이 경우, 데이터가 정확한지 여부에 관한 판단은 동기화 코드가 완벽한지 여부를 체크함으로써 수행될 수 있다.
정확한 암호화된 데이터가 단계 S168에서 나온 결과가 아니면, 과정은 단계 S170으로 가서 여기서 개인용 컴퓨터(2)는 다음의 식에 따라 라이센스 키를 갱신한다.
licence_key = hash(licence_key)
이어서, 과정은 단계 S171로 가서 여기서 개인용 컴퓨터(2)는 단계 S164에서 수행한 암호화된 소스측 공통 세션 키(e)를 다시 해독함으로써 다음의 식에 따라 단계 S170에서 생성된 갱신된 라이센스 키를 사용하여 새로운 싱크측 공통 세션 키(sk')를 생성한다.
sk' = Dec(licence_key, e)
계속해서, 과정은 단계 S168로 가서, 여기서 다른 키들 중, 단계 S171에서 생성된 싱크측 공통 세션키(sk')를 사용하여 단계 S167에서 수신된 암호화된 데이터를 다시 해독한다. 이어서, 과정은 단계 S169로 진행하여 여기서 개인용 컴퓨터(2)는 단계 S168에서 수행된 해독 결과로 나온 데이터가 정확한지 여부를 판단한다. 이와 같이, 단계 S170, S171, S168 및 S169는 단계 S169에서의 판단 결과, 정확한 해독된 데이터가 단계 S168에서 얻어졌음을 나타낼 때까지 반복하여 수행된다.
이런 식으로, 라이센스 키는 정확한 암호화된 데이터를 생성하도록 갱신된다.
상기 기술된 과정에 의해 나타낸 바와 같이, 소스에서, 소스측 공통 세션 키(sk)는 싱크로 전송될 데이터가 소스측 공통 세션 키(sk)를 사용하여 암호화되기 전에 생성되어야 한다. 반면, 싱크에서, 소스로부터 수신된 암호화된 데이터의 해독은 소스로부터 수신된 암호화된 소스측 공통 세션 키의 해독에 동기될 필요가 있다. 보다 구체적으로, 싱크측에서 과정은 암호화된 데이터를 수신하기 위한 단계 S167이 완료될 때까지는, 암호화된 소스측 공통 세션 키(e)를 해독하기 위한 단계 S165부터 해독된 데이터의 해독하기 위한 단계 S168까지를 진행할 수 없다.
더욱이, 암호화된 소스측 공통 세션 키(e) 및 싱크에 의해 수행된 암호문의 해독은 소스측 공통 세션키(sk) 및 소스에 의해서 수행된 평문의 암호화에 동기되어야 한다. 즉, LFSR(601)부터 배타적 논리합 계산 회로(608)까지 도 22에 도시한 광자기 디스크 장치(3)에 사용된 1394 인터페이스부(36)을 구성하는 구성요소들에 의해 생성된 해독키는 LFSR(5010)부터 배타적 논리합 계산 회로(508)까지 도 21에 도시한 DVD 플레이어(1)에 사용된 1394 인터페이스부(26)를 구성하는 구성요소들에 의해 생성된 암호화 키에 대응하여야 하며, 해독키를 사용하여 해독된 암호화된 데이터는 암호화키를 사용하여 평문의 암호화 결과로 나온 데이터이어야 한다. 상기 기술된 바와 같이, 이에 따라 암호화 키는 입력된 평문의 암호화에 동기하여 도 21에 도시한 1394 인터페이스부(26)에 의해 생성되어야 하며 그러므로 해독키는 동기화가 도 21 및 도 22에 명확히 도시되지 않았어도 수신된 암호문의 해독에 동기하여 도 22에 도시한 1394 인터페이스부(36)에 의해서 생성되어야 한다.
따라서, 소스로부터 전송된 암호문을 구성하는 패킷으로부터 1394 직렬 버스(11)를 경유하여 소스로 어떤 이유로 비트가 손실된 경우, 평문과 소스 내의 암호화 키간 타이밍 관계를 나타내는 상(phase)은 암호문과 싱크 내의 해독 키 간의 타이밍 관계를 나타내는 상으로서 지속될 수 없다. 그러나, 이 문제는 암호문과 싱크 내의 해독 키간 타이밍 관계를 나타내는 상을 주기적으로 갱신하거나 재초기화함으로써 해결될 수 있다. 도 28은 암호문과 싱크 내의 해독 키간 타이밍 관계를 나타내는 상을 주기적으로 갱신하거나 다시 초기화하기 위한 소스/싱크 시스템을 구현하는 실시예의 전형적인 구성을 도시한 도면이다.
도면에 도시한 바와 같이, 소스에서, 배타적 논리합 계산 회로(901)은 난수 발생기(903)에 의해서 생성된 난수와 입력된 평문과의 배타적 논리합(Ci)를 계산하여, 배타적 논리합(Ci)를 배타적 논리합 계산 회로(904) 및 세션키(s)의 초기값 키(Ss)를 또한 수신하는 처리 회로(902)로 출력한다. 처리 회로(902)는 세션키(S)의 초기값 키(Ss) 및 배타적 논리합 계산 회로(901)에 의해 출력된 배타적 논리합(Ci)에 대한 소정의 처리를 수행하여, 처리 결과(Vi)를 초기값으로서 난수 발생기(903)로 출력한다.
배타적 논리합 계산 회로(904)는 배타적 논리합 계산 회로(901)에 의해 생성된 배타적 논리합(Ci) 및 시변키(i)의 배타적 논리합을 계산하여 1394 직렬 버스(11)를 통해 싱크로 전송되는 암호문을 생성한다.
싱크는 소스에 의해 수행된 것들과 반대되는 순서로 동작을 수행한다. 보다 구체적으로, 배타적 논리합 계산 회로(911)는 1394 직렬 버스(11)를 통해 소스로부터 수신된 암호문과 시변키(i)의 배타적 논리합(Ci)을 계산하여 배타적 논리합(Ci)을 배타적 논리합 계산 회로(912) 및 세션키(S)의 초기값 키(Ss)을 또한 수신하는 처리 회로(913)으로 출력한다. 처리 회로(913)는 세션키(S)의 초기값 키(Ss) 및 배타적 논리합 계산 회로(911)에 의해 출력된 배타적 논리합(Ci)에 대한 소정의 처리를 수행하여, 처리 결과(Vi)를 난수 발생기(914)로 출력한다. 난수 발생기(914)는 초기값으로서 사용된 처리 회로(913)으로부터 처리값(Vi)과 함께 난수를 생성한다. 배타적 논리합 계산 회로(912)는 난수 발생기(914)에 의해 생성된 난수와 배타적 논리합 계산 회로(911)에 의해 생성된 배타적 논리합(Ci)의 최종 배타적 논리합을 계산하여 평문으로서 최종의 배타적 논리합을 출력한다.
도 29는 난수 발생기(903)의 전형적인 구성을 도시한 도면이다. 도면에 도시한 바와 같이, 난수 발생기(903)는 LFSR(931)부터 클록 기능부(936)까지 구성요소를 포함한다. 도면에 도시한 각각의 구성요소는 도 21 내지 도 24에 도시한 실시예의 대응하는 LFSR(501) 등, 가산기(504) 등, 혹은 클록 기능부(506) 등과 동일한 기능을 갖는다.
난수 발생기(914)는 도 29에 도시한 난수 발생기(903)과 동일한 구성을 갖는 것에 유념한다. 그러므로, 별도의 도면에서 전자의 구성을 도시할 필요는 없다.
도 30은 소스측 및 싱크측 처리 회로(902 및 913) 각각에 의해 수행되는 동작을 나타내는 흐름도이다.
다음과 같이 도 30에 도시한 흐름도를 참조하여 동작을 설명한다.
소스측 처리회로(902)는 이에 공급된 입력(Ci)으로부터 값(Vi)을 배타적 논리합 계산 회로(901) 및 세션키(S)의 초기값 키(Ss)에 의해 계산하도록 아래 주어진 식에 의해 표현된 함수 f를 갖는다.
Vi = f(Ss, Ci)
도면에 도시한 바와 같이, 흐름도는 다음과 같이 값 Vi = f(Ss, Ci)를 계산하기 위해서 입력(Ci)의 초기값으로서 처리회로(902)이 값 0을 사용하는 단계 S201부터 시작한다.
V0 = f(Ss, 0)
이어서 동작 흐름은 단계 S202로 진행하여, 여기서 단계 S201에서 계산된 값 V0는 도 29에 도시한 난수 발생기(903)로 공급된다. 난수 발생기(903)에서, 처리 회로(902)에 의해 출력된 값 V0는 초기값으로서 LFSR(931 내지 933)으로 공급된다. 도 21에 도시한 1394 인터페이스부(26)와 동일한 기술을 사용하여, 난수가 생성되어 난수 발생기(903)에 사용된 가산기(935)에 의해서 도 28에 도시한 배타적 논리합 계산 회로(901)로 출력한다. 배타적 논리합 계산 회로(901)는 난수 발생기(903)의 의해 생성된 난수 및 입력된 평문의 배타적 논리합(Ci)을 계산하여, 배타적 논리합(Ci)를 처리회로(902)로 출력한다.
한편, 도 30에 도시한 동작 흐름은 단계 S203으로 진행하여, 여기서 처리회로(902)는 변수(i)를 1로 설정한다. 이어서 동작 흐름은 단계 S204로 계속되어, 여기서 배타적 논리합 계산 회로(901)로부터 수신된 배타적 논리합(Ci)는 변수(C)에 저장된다.
이어서, 동작 흐름은 단계 S205로 가서, 여기서 처리회로(902)는 다음 식에 따라 처리를 수행한다.
Vi = f(Ss, Ci) + Vi-1
여기서, Ci는 변수(C)의 내용이다.
변수(i)의 값이 현재 1이기 때문에, 상기 식은 다음과 같이 다시 쓸 수 있다.
V1 = f(Ss, C1) + V0
여기서 V0는 단계 S201에서 계산된 값이다.
이어서, 동작 과정은 단계 S206으로 가서, 여기서 처리회로(902)는 변수(C)의 내용, 즉 이 경우 C1이 미리 설정된 소정의 값 T와 같은지 여부를 판단한다. 한편, 배타적 논리합 계산 회로(901)는 다른 배타적 논리합(Ci)를 처리회로(902)로 출력한다. 배타적 논리합(Ci)이 단계 S206에서 값 T와 같지 않은 것으로 판단되면, 동작 흐름은 단계 S207로 가서, 여기서 변수(i)의 내용은 배타적 논리합 계산 회로(901)로부터 수신된 다른 배타적 논리합(Ci), 즉 i = 2이므로 C2는 변수(C)에 저장되는 단계 S204로 복귀하기 전에 1만큼 증분된다.
이어서, 동작 흐름은 단계 S205로 가서, 여기서 처리회로(902)는 다음의 식에 따라 처리를 수행한다.
V2 = f(Ss, C2) + V1
여기서, V1은 바로 전에 반복해서 단계 S205에서 계산된 값이다.
계속해서, 동작 과정은 단계 S206으로 가서, 여기서 처리회로(902)는 입력된 배타적 논리합(Ci), 즉 이 경우 C1이 소정의 값 T와 같은지 여부를 판단한다. 입력된 배타적 논리합(C1)이 값 T와 다른 것으로 판단되면, 동작 흐름은 단계 S207로 가서, 여기서 변수(i)의 내용은 단계 S204로 복귀하기 전에 1만큼 증분된다. 이러한 식으로, 단계 S204 내지 S207은 입력된 배타적 논리합(Ci)이 값 T와 같게 될 때까지 반복하여 수행된다.
입력된 배타적 논리합(Ci)이 단계 S206에서 값 T와 같은 것으로 판단되면, 동작 흐름은 단계 S208로 가서, 여기서 단계 S205에서 계산된 값 Vi(즉 이 경우 V1)은 단계 S201에서 계산된 값 V0이 단계 S202에서 난수 발생기(903)으로 출력되었을 때 난수 발생기(903)으로 출력된다. 난수 발생기(903)에서, 처리회로(902)에 의해 출력된 값 V1은 초기값으로서 LFSR(931 내지 933)으로 공급된다. 초기값을 위한 난수가 생성되어 난수 발생기(903)에 사용된 가산기(935)에 의해서 도 28에 도시한 배타적 논리합 계산 회로(901)로 출력한다. 배타적 논리합 계산 회로(901)는 난수 발생기(903)에 의해서 생성된 난수와 입력된 평문과의 배타적 논리합(Ci)을 계산하여 이 배타적 논리합(Ci)를 다시 처리회로(902)로 출력한다.
한편, 처리회로(902)가 단계 S209에서 값 Vi을 난수 발생기(903)에 출력한 후, 도 30에 도시한 동작 흐름은 처리회로(902)가 변수(i)를 1로 리셋하는 단계 S203으로 복귀한다. 그후, 단계 S203 내지 S208은 반복하여 수행된다.
값 T가 8비트 폭이며 Ci 값의 생성 확률이 균일하다고 가정한다. 이 경우, T와 동일한 Ci 값의 확률은 1/256이며 여기서 256은 2의 8승이다. 즉, T와 동일한 값을 갖는 배타적 논리합(Ci)의 생성은 배타적 논리합 계산 회로(901)에 의해 수행된 256개의 일련의 동작당 한번의 비율로 일어나 배타적 논리합(Ci)를 생성한다. 결국, 난수를 생성하기 위한 난수 발생기(903)에서 사용된 초기값은 배타적 논리합 계산 회로(901)에 의해 수행된 256개의 일련의 동작당 한번의 비율로 갱신되어 배타적 논리합(Ci)을 생성한다.
배타적 논리합 계산 회로(901)에 의해 출력된 배타적 논리합(Ci)은 배타적 논리합(Ci)과 시변키(i)와의 배타적 논리합을 계산하기 위한 배타적 논리합 계산 회로(904)에 또한 공급된다. 배타적 논리합 계산 회로(904)에 의해 계산된 배타적 논리합은 암호문으로서 1394 직렬 버스(11)로 출력된다.
싱크에서, 배타적 논리합 계산 회로(911)는 소스로부터 직렬 버스(11)를 통해 수신된 암호문 및 시변키(i)와의 배타적 논리합을 계산하여, 배타적 논리합(Ci)을 배타적 논리합 계산 회로(912) 및 세션키(S)의 초기값 키(Ss)를 또한 수신하는 처리회로(913)로 출력한다. 소스측 처리회로(902)와 상당부분 유사하게, 처리회로(913)는 세션 키(S)의 초기값(Ss) 및 배타적 논리합 계산 회로(911)에 의해 출력된 배타적 논리합(Ci)에 대한 소정의 처리를 수행하여, 처리 결과(Vi)를 256개의 일련의 동작당 한번의 비율로 난수 발생기(914)로 출력하여 배타적 논리합(Ci)을 생성한다. 난수 발생기(914)는 초기값으로서 사용된 처리 결과(Vi)와 함께 난수를 생성한다. 배타적 논리합 계산 회로(912)는 난수 발생기(914)에 의해 생성된 난수의 최종 배타적 논리합과 배타적 논리합 계산 회로(911)에 의해 생성된 배타적 논리합(Ci)을 계산하여 평문으로서 최종의 배타적 논리합을 출력한다.
상기 기술된 바와 같이, 처리회로(913)는 처리 결과(Vi)를 배타적 논리합 계산 회로(911)에 의해 수행되는 256개의 일련의 동작당 한번의 비율로 난수 발생기(914)로 출력하여 배타적 논리합(Ci)을 생성한다. 결국, 소스로부터 싱크로 1394 직렬버스(11)를 경유하여 전송된 암호문과 싱크에서 해독키로 사용된 난수간 타이밍 관계를 나타내는 상은 배타적 논리합(Ci)를 생성하기 위해서 256개의 일련의 동작당 한번의 비율로 난수 발생기(914)로 처리 결과(Vi)를 처리회로(913)가 출력할 때 암호문을 구성하는 패킷으로부터 어떤 이유로 비트가 손실되는 경우 복구될 수 있다.
처리 회로(902 혹은 913)는 배타적 논리합(Ci)이 값 T와 같게 될 때(Ci = T) 처리 결과(Vi)를 난수 발생기(914)로 출력하기 때문에, 처리 회로(913)는 처리 결과(Vi)를 주기적으로 난수 발생기(914)로 출력하지 않는다는 것에 유념한다. 대신, 처리회로(913)는 평균적으로 배타적 논리합(Ci)를 생성하기 위해서 256개의 일련의 동작당 한번의 확률로 난수 발생기(914)로 처리 결과 Vi를 출력한다는 사실이외에 더 말할 것은 없다.
처리회로(902 및 913)가 처리 결과 Vi를 난수 발생기(903 및 914)로 출력하는 비율은 또한 소스에 의해 전송되고 싱크에 의해 수신되는 암호화된 데이터의 개수에 의해서도 근거함을 주의한다. 그러나, 하나의 데이터가 1394 직렬 버스(11)를 통해 전송 중에 손실된 때, 이 방법은 소스측에 데이터 수는 싱크측에서 데이터 수와 다르게 될 것이므로 소스와 싱크간 동기화를 설정하는 것이 더 이상 가능하지 않게 된다는 문제가 있을 것이다. 따라서 상기 기술된 실시예에 의해 구현된 동기화 기술을 채택하는 것이 바람직하다.
난수 발생기(903 혹은 914)에서 사용된 초기값으로서, 배타적 논리합 계산 회로(901 혹은 911)에 의해 출력된 배타적 논리합(Ci)은 그 자체로서 각각 난수 발생기(903 혹은 914)로 공급될 수 있다. 그러나, 이 경우 직렬 버스(11)를 통해 전송되므로 배타적 논리합(Ci)가 없어지게 될 우려가 많다. 이것은 배타적 논리합(Ci)이 초기값으로 직접 사용되지 않기 때문이다. 대신, 초기값으로서 배타적 논리합(Ci)에 대해 수행된 소정의 처리 결과로 나온 값 Vi를 사용함으로써, 데이터 보안이 더욱 개선될 수 있다.
한편, IEEE 1394 직렬 버스(11)를 통해 데이터를 전송하는 2가지 방법이 있다. 하나는 비동기 전송 방법이고 다른 하나는 등시성(isochronous) 전송 방법이다. 비동기 전송 방법에서, 데이터는 두 개의 장치간에 전송된다. 등시성 전송 방법에서, 데이터는 한 장치로부터 1394 직렬 버스에 접속된 모든 다른 것에 제공된다. 따라서, 싱크들의 인증과 도 4 및 다른 도면에 도시된 실시예의 키 공유 프로토콜을 위한 통신은 소스로부터 모든 싱크로 정보를 보낼 필요가 없기 때문에 비동기 전송 방법을 채택함으로서 정상적으로 달성된다.
도 4에 도시한 실시예의 인증 및 키 고유 프로토콜에서 개인용 컴퓨터(2)는 개인용 컴퓨터(2)가 정확한 라이센스 키를 갖지 않는 인증되지 않은 장치일지라도 DVD 플레이어(1)로부터 암호화된 소스측 공통 세션키를 획득할 수 있다. 앞에서 설명한 바와 같이, 암호화된 소스측 공통 세션키(e)는 라이센스 키(1k)를 사용하는 소스측 공통 세션 키(sk)의 암호화 결과로 나온 암호문이다. 개인용 컴퓨터(2)는 라이센스 키를 갖지 않는 인증되지 않은 장치이기 때문에, 개인용 컴퓨터(2)는 암호화된 싱크측 공통 세션키(e)의 해독에 의해 정확한 싱크측 공통 세션키(sk')를 얻을 수 없다. 그럼에도 불구하고, 암호화된 소스측 공통 세션키(e)는 그 자체로서 암호화된 정보의 해독에 직접 사용될 수 있는 우려가 많다.
암호화된 소스측 공통 세션키(e)(라이센스 키(1k)를 사용하여 소스측 공통 세션키(sk)의 암호화 결과로 나온 암호문) 외에도 개인용 컴퓨터(2)가 어떤 이유로 소스측 공통 세션키(sk)(평문)를 또한 수신한다면, 평문과 대응하는 암호문 모두가 얻어진다. 이 경우, 평문 및 암호문은 개인용 컴퓨터(2)가 갖지 않는 라이센스 키를 발견하는 데 사용될 우려가 많다. 일반적으로, 침범자(attacker)에 의해 알려진 평문과 암호문 쌍이 많을수록, 평문으로부터 암호문을 만드는데 사용된 라이센스 키를 알아내기 위해서 침범자에 의해 채택된 역 방법이 더욱 쉬워진다.
더욱이, 인증되지 않은 개인용 컴퓨터(2)는 라이센스 키(1k)를 계산하기 위한 틀린 ID를 사용하는 DVD 플레이어(1)에 틀린 ID를 전송할 수도 있다. 그 다음에, 라이센스 키(1k)는 소스측 공통 세션키(sk)를 암호화하는데 사용되어 암호화된 소스측 공통 세션키(e)를 생성하여 이를 개인용 컴퓨터(2)로 전송한다. 개인용 컴퓨터(2)는 ID를 전송함으로써 세션 동안 암호화된 소스측 공통 세션키(e)의 전송 요청을 하게 하였다고 가정한다. 이러한 요청이 몇 번 행해지면, 복수의 라이센스 키는 개인용 컴퓨터(2)로부터 수신된 상이한 ID로부터 DVD 플레이어(1)에 의해서 생성된다. 결국, 세션 동안 소스측 공통 세션 키(sk)의 암호화 결과로 나온 복수의 암호화된 소스측 공통 세션 키(e)는 개인용 컴퓨터(2)에 의해서 수신된다. 즉, 일단 개인용 컴퓨터(2)가 소스측 공통 세션 키(sk)를 얻으면, 개인용 컴퓨터(2)는 소스측 공통 세션키(sk) 및 암호화된 소스측 공통 세션키(e) 중 하나를 각각 포함하는 복수의 쌍을 알 수 있다.
도 31에 도시한 인증 과정을 구현하는 실시예는 상기 기술된 문제를 해결한다. 과정은 상이한 라이센스 키(1k)를 사용함으로써 소스측 공통 세션키(sk)의 암호화 결과로부터 나온 복수의 암호화된 소스측 공통 세션 키(e)를 인증되지 않은 싱크가 수신하는 것을 방지한다. 도면에 도시한 과정은 소스에 의해 싱크로 ID 요청하기 전에 몇 가지 처리들이 수행되는 것을 제외하고 도 4에 도시한 것과 기본적으로 동일하다.
상세히 하기 위해서, 도면의 과정에 도시된 바와 같이, 단계 S201에서, 싱크로 작용하는 개인용 컴퓨터(2)는 소스로 작용하는 DVD 플레이어(1)에 인증 요청, 즉 인증 프로토콜의 시작 요청을 전송한다. 이러한 인증 요청은 프로토콜에서 다른 전송의 경우와 같이 비동기 전송 방법을 사용하여 전송된다.
IEEE 1394 직렬 버스(11)에 접속된 장치는 버스 리셋 시간에서 그에 할당된 유일한 노드 번호를 각각 갖는다. 노드 번호는 장치를 전송하거나 수신하는 정보를 명시 및 확인하는데 사용된다.
도 32는 비동기 패킷 중 하나인 데이터 쿼드렛(quadlet) 패킷에 대한 기입 요청의 형식을 도시한 도면이다. 형식의 목적지 ID 필드는 정보 수신 장치의 노드 번호이며, 형식의 소스 ID 필드는 정보 전송 장치의 노드 번호이다. 인증 요청을 전달하는 패킷의 경우, 패킷이 인증 요청임을 표시하는 데이터는 쿼드렛 데이터 필드 내에 포함된다.
단계 S202에서 인증 요청을 전달하는 비동기 패킷을 수신한 때, DVD 플레이어(1)는 소스 ID, 즉 패킷을 전송하는 정보 전송 장치의 노드 ID를 가져온다. 이어서 과정은 단계 S203로 가서, 여기서 DVD 플레이어(1)는 현 세션 동안 소스측 공통 세션키(sk)의 암호화 결과로 나온 암호화된 소스측 공통 세션 키(e)가 노드 번호에 의해 식별된 정보 수신 장치로 전송되었는지 여부에 대해 판단한다. 단계 S203에서 판단결과, 현재 세션 동안 소스측 공통 세션키(sk)의 암호화 결과로 나온 암호화된 소스측 공통 세션 키(e)가 노드 번호에 의해 식별된 정보 수신 장치로 전송되었음을 나타낸 경우, 개인용 컴퓨터(2)에 대한 인증 프로토콜의 처리가 종료된다. 단계 S203에서 판단결과, 현 세션 동안 소스측 공통 세션키(sk)의 암호화 결과로 나온 암호화된 소스측 공통 세션 키(e)가 노드 번호에 의해 식별된 정보 수신 장치로 전송되지 않았음을 나타낸 경우, 과정은 단계 S204로 가서, 인증 프로토콜의 수행을 시작한다.
도 31에 도시한 과정의 단계 S204 내지 S213에서 수행된 처리들은 도 4에 도시한 과정의 단계 S1 내지 S10의 것들과 동일하다.
상기 처리들이 수행된 후, 단계 S214에서 DVD 플레이어(1)는 단계 S213에서 가져온 개인용 컴퓨터(2)의 노드 번호를 EEPROM부(27)에 기록한다. 노드 번호는 DVD 플레이어(1)가 현 세션의 소스측 공통 세션 키(sk)를 사용하는한 유지된다. 또 다른 소스 세션키(sk)가 다음 세션 동안에 생성된 때, 노드 번호는 EEPROM부(27)로부터 삭제된다.
상기 기술된 프로토콜 사용으로 단지 하나의 암호화된 소스측 공통 세션키(e)만이 싱크로 전송된다. 결국, 전송된 정보의 보안이 개선될 수 있다.
한편, 도 4에 도시한 인증 프로토콜의 단계 S7에서, 소스측 공통 세션 키(sk)는 라이센스 키(1k)를 사용하여 소스에 의해 암호화됨으로써 암호화된 소스측 공통 세션 키(e)를 생성하여 이를 싱크로 전송한다. 암호화 알고리즘으로서, 블록 암호화가 널리 사용된다. 블록 암호화에서, 평문은 일정한 길이의 블록 단위로 암호화된다. DES 암호화는 일반적으로 알려진 블록 암호화이다. DES 암호화는 평문의 각각의 64 비트 블록을 64비트 암호문으로 변환하는 암호화 알고리즘이다.
n-비트 평문을 n비트 암호문으로 변환하기 위해서 n-비트 블록 암호화는 도 4에 도시한 과정의 단계 S7에서 사용된 암호화 알고리즘이며 소스측 공통 세션 키(sk)의 개수는 n이라고 가정한다. 또한 n-비트 소스측 공통 세션키(sk) 및 라이센스 키(1k)에 암호화 알고리즘을 적용하여 얻어진 n-비트 결과 자체를 암호화된 소스측 공통 세션키(sk e)로서 사용한다고 가정한다.
소스는 동일 세션 내에 이전의 암호화된 소스측 공통 세션키(e) 이후 싱크에 또 다른 암호화된 소스측 공통 세션키(e)를 전송하려고 시도하는 것으로 가정한다. 또한, 이전의 암호화된 소스측 공통 세션 키(e)를 인증되지 않은 사람에 의해 분실되었다고 가정한다. 트랜잭션(transaction)은 동일 세션 내에 행해지기 때문에, 소스측 공통 세션키(sk)는 변경되지 않은 상태에 있다. 더욱이, 소스측 공통 세션키(sk)로부터 다른 암호화된 소스측 공통 세션키(e)를 생성할 때 동일 암호화 알고리즘이 채택되고 동일한 라이센스 키(1k)가 알고리즘에서 사용되기 때문에, 다른 암호화된 소스측 공통 세션키(e)는 이전의 암호화된 소스측 공통 세션 키(e)와 동일하다. 다른 암호화된 소스측 공통 세션키(e)는 인증되지 않은 사람에 의해 거의 도난당할 가능성의 범위 내에 있다. 다른 암호화된 소스측 공통 세션키(e)가 우연하게 인증되지 않은 사람에 의해서 또한 도난당한다면, 사람은 동일한 소스측 공통 세션키(sk)가 여전히 사용되고 있음을 알게 될 것이므로 문제를 야기시킨다.
도 33에 도시한 인증 과정을 실현하는 실시예는 상기 기술된 문제를 해결한다. 도면에 도시한 과정의 단계 S221 내지 S226에서 수행된 처리들이 도 4에 도시한 과정의 단계 S1 내지 S6의 것들과 동일하기 때문에 이들의 설명은 반복하지 않는다.
단계 S227에서, 소스는 n-비트의 난수 r를 생성한다. 이어서 과정은 단계 S228로 가서, 여기서 난수와 소스측 공통 세션키(sk)와의 결합은 다음과 같이 라이센스 키(1k)를 사용하여 암호화된다.
e = Enc(1k, r || sk)
암호화는 CBC 모드라 불리우는 암호화 모드에서 수행된다. 도 34는 CBC 모드를 구현하는 시스템의 구성을 도시한 도면이다. 도면 좌측 반과 우측 반은 각각 암호화와 해독을 나타낸다. 동일한 초기값 IV이 레지스터(1003 및 1012)에 저장된다. 초기값 IV는 전 시스템을 통해 일정하다.
암호화 처리에서, 우선 배타적 논리합 처리 회로(1001)은 평문의 제1 n-비트 블록과 레지스터(1003)에 저장된 초기값 IV와의 배타적 논리합을 계산한다. 배타적 논리 값은 암호화기(1002)에 공급된다. 암호화기(1002)에 의해 만들어진 n-비트의 암호문은 제1 블록으로서 통신 회로로 출력되고 레지스터로 귀환된다.
평문의 제2 n-비트 블록이 공급될 때, 배타적 논리합 처리 회로(1001)는 평문의 제2 n-비트 블록과 레지스터(1003)에 저장된 암호문의 제1 블록과의 배타적 논리합을 계산한다. 배타적 논리값은 암호화기(1002)에 공급되어 여기에서 암호화된다. 암호화기(1002)에 의해서 만들어진 n-비트의 암호문은 제2 블록으로서 통신 회선으로 출력되고 레지스터(1003)으로 귀환된다. 상기 기술된 동작은 반복하여 수행된다.
해독측에서, 통신 회선을 통해 전송된 제1 블록의 암호문은 해독기(1011)에 의해 해독된다. 배타적 논리합 처리 회로(1003)은 해독기(1011)의 출력과 레지스터(1012)에 저장된 초기값 IV과의 배타적 논리합을 계산하여 평문의 제1 블록을 생성한다.
통신 회로를 통해 수신된 암호문의 제1 블록은 또한 레지스터(1012)에 저장된다. 이어서 통신 회선을 통해 전송된 암호문의 제1 블록은 해독기(1011)에 의해 수신되어 해독된다. 배타적 논리합 처리 회로(1013)는 해독기(1011)에 의해 출력된 해독 결과의 제2 블록과 레지스터(1012)에 저장된 암호문의 제1 블록과의 배타적 논리합을 계산하여 평문의 제2 블록을 생성한다.
통신 회선을 통해 수신된 암호문의 제2 블록은 레지스터(1012)에 또한 저장된다.
상기 기술된 동작은 해독 처리를 달성하기 위해서 반복하여 수행된다.
CBC 모드는 브루스 슈나이더가 쓴 "적용된 암호문" 명칭의 문헌 제2 판에 상세히 설명되어 있음에 유념한다.
다시 도 33의 과정으로 돌아가서, 단계 S228에서, n-비트의 난수 r 및 소스측 공통 세션키(sk)는 평문의 제1 및 제2 블록으로서 암호화 알고리즘에서 사용된다. 즉, 배타적 논리합 처리 회로(1001)은 난수 r, 즉 평문의 제1 n-비트 블록과 레지스터(1003)에 저장된 초기값 IV와의 배타적 논리합을 계산한다. 배타적 논리 값은 암호화기(1002)에 공급되어 여기서 라이센스키(1k)를 사용하여 암호화된다. 따라서, 암호화기(1002)는 Enc(1k, r (+) IV)를 생성한다.
암호화기(1002)의 출력은 레지스터(1003)에 저장된다. 소스측 공통 세션키(sk), 즉 평문의 제2 블록을 수신한때, 배타적 논리합 처리 회로(1001)는 평문의 제2 블록과 레지스터(1003)에 저장된 암호화기의 출력과의 배타적 논리합을 계산한다. 결국, 암호화기(1002)는 Enc(1k, sk (+) Enc (1k, r (+) IV))를 생성한다.
단계 S229에서, 소스는 2개의 블록을 서로 연결하여 다음 식에 따라 싱크로 전송되는 e를 생성한다.
e = Enc (1k, r (+) IV) || Enc (1k, sk (+) Enc (1k, r (+) IV))
싱크측에서, 암호화기(1002)의 출력 e는 단계 S230에서 수신된다. 이어서 과정은 단계 S231로 진행하여 여기서 암호화된 소스측 공통 세션키(e)는 EEPROM부(50)에 저장된 라이센스 키를 사용하여 해독된다. 해독 결과는 제1 블록 r' 및 제2 블록 sk', 싱크측 공통 세션키를 포함한다.
상기 기술된 암호화 및 해독에서, 싱크에 의한 정확한 라이센스 키의 사용만으로 sk = sk'가 되는 결과가 된다. 결국, 소스 및 싱크는 공통 세션키를 공유할 수 있게 된다.
위에서 주어진 암호화된 소스측 공통 세션키(e)의 식은 소스측 공통 세션키(sk)가 암호화될 때마다, 세션키(sk)의 값이 변경되지 않은 채로 있을 경우라도, 상이한 암호화된 소스측 공통 세션키(e)로 된다는 것을 의미한다. 이것은 암호화에 포함된 난수 r이 변경되기 때문이다. 결국, 암호화된 소스측 공통 세션키(sk)의 상이한 값을 도용하는 사람이 동일 세션 내에서 값들이 생성되는지 여부를 결정하기는 어렵다.
상기 기술된 CBC 모드 외에도, 블록 암호화의 일반적으로 알려진 사용 모드는 ECB 모드, CFB 모드 및 OFB 모드를 포함한다. 마지막 두 개의 모드 각각은 귀환 루프를 포함하기 때문에, 이들은 도 33에 도시한 처리에 적용될 수 있다. 사실, 임의의 암호화 모드들은 이들이 귀환 루프를 포함하는 한, 도 33에 도시한 처리에 적용될 수 있다. 블록 암호화의 사용 모드는 브루스 슈나이더가 쓴 "적용된 암호문" 명칭의 문헌 제2 판에 상세히 기술되어 있다.
한편, 도 4에 도시한 실시예에 의해 실현된 처리에서, 소스는 소스측 공통 세션키(sk)를 암호화하여 암호화된 소스측 공통 세션키(e)를 싱크로 전송한다. 인증된 싱크만이 소스측 공통 세션키(sk)와 동일한 값을 갖는 싱크측 공통 세션키(sk')를 생성하기 위해서 암호화된 소스측 공통 세션키(e)을 정확하게 해독할 수 있기 때문에, 근본적으로 실시예는 싱크가 소스에 의해 인증되는 시스템이다. 그러나, 이 과정에서, 소스 자체는 인증되지 않는다. 결국, 인증되지 않은 소스가 암호화된 소스측 공통 세션키로서 우연한 데이터를 싱크로 전송할지라도, 싱크가 싱크측 공통 세션키(sk')로서 암호화된 소스측 공통 세션키(e)의 해독 결과를 받아들일 가능성의 범위 내에 있게 된다. 이 문제를 해결하기 위해서, 도 35에 도시한 인증 과정을 실현하는 실시예가 제공된다.
도면에 도시한 바와 같이, 인증 과정은 싱크로 작용하는 개인용 컴퓨터(2)가 소정수의 비트를 갖는 난수 r를 생성하는 단계 S241부터 시작한다. 실시예에서, 비트수는 64이며, 전형적인 값이다. 이어서 과정은 단계 S242로 가서, 여기서 난수는 소스로 작용하는 DVD 플레이어(1)로 전송된다. 이어서, 과정은 단계 S243으로 가서, 여기서 DVD 플레이어(1)는 난수 r를 수신한다. 이어서, 과정은 단계 S244로 계속되어 여기서 DVD 플레이어(1)는 개인용 컴퓨터(2)에 ID 요청을 행한다. 이어서 과정은 단계 S245로 가서, 여기서 개인용 컴퓨터(2)는 요청을 수신한다. 이어서, 과정은 단계 S246으로 가서, 여기서 개인용 컴퓨터(2)는 EEPROM부(50)로부터, 요청된 ID를 읽어내어 이를 DVD 플레이어(1)로 전송한다. 이어서, 과정은 단계 S247로 계속되어, 여기서 DVD 플레이어(1)는 ID를 수신한다.
이어서 과정은 단계 S248로 가서, 여기서 DVD 플레이어(1)는 다음식을 사용하여 라이센스 키(1k)를 생성한다.
1k = hash(ID || service_key)
이어서, 과정은 단계 S249로 가서, 여기서 DVD 플레이어(1)는 소스측 공통 세션키(sk)를 생성한다.
계속해서, 과정은 단계 S250로 계속되어, 여기서 DVD 플레이어(1)는 다음의 식을 사용하여 암호화된 소스측 공통 세션키(e)를 생성한다.
e = Enc(1k, r || sk)
과정은 이어서 단계 S251로 가서, 여기서 DVD 플레이어(1)는 암호화된 소스측 공통 세션키(e)를 개인용 컴퓨터(2)로 전송한다.
CBC 모드와 같은 귀환 루프를 포함하는 임의의 암호화 모드는 단계 S250에서 수행된 암호화에서 채택됨에 유념한다.
이어서, 과정은 단계 S252로 가서 여기서 개인용 컴퓨터(2)는 암호화된 소스측 공통 세션 키(e)를 수신한다. 계속해서, 과정은 단계 S253으로 가서, 여기서 개인용 컴퓨터(2)는 라이센스 키를 사용하여 암호화된 소스측 공통 세션키(e)를 해독하여 r' || sk', r'와 sk'와의 결합을 생성한다.
r'에 포함된 비트수는 사전에 결정된 단계 S241에서 생성된 난수 r의 것과 동일하다.
이어서, 과정은 단계 S254로 가서, 여기서 개인용 컴퓨터(2)는 r=r'이 성립하는지 여부를 조사한다. r=r'이 성립하면, 개인용 컴퓨터(2)는 DVD 플레이어(1)를 유효한 소스로서 인증하여 소스측 공통 세션키(sk')를 정확한 세션키로서 받아들인다. 이것은 정확한 라이센스 키(1k)를 생성할 수 있는 장치만이 라이센스 키를 사용하여 암호화된 소스측 공통 세션키(e)의 해독 결과 r'이 난수 r과 동일한 암호화된 소스측 공통 세션키(e)를 생성할 수 있기 때문이다.
r=r'이 성립하지 않으면, 개인용 컴퓨터(2)는 DVD 플레이어(1)를 유효한 소스로서 인증하지 않고, 소스측 공통 세션키(sk')를 버린다.
상기 기술된 인증 과정을 실현하는 실시예를 제공함으로써, 싱크는 소스를 인증할 수 있다. 더욱이, 인증 과정은 도 4에 도시한 실시예의 경우와 같이 인증된 싱크만이 정확한 싱크측 공통 세션키(sk')를 생성할 수 있는 특징을 보유한다.
도 36은 싱크가 소스를 인증할 수 있는 인증과정을 실현하는 또 다른 실시예를 도시한 도면이다. 도면에 도시한 과정의 단계 S261 내지 S266에서 수행된 처리들이 도 4에 도시한 과정의 단계 S1 내지 S6의 것들과 동일하기 때문에, 이들의 설명은 반복하지 않는다.
단계 S267에서, DVD 플레이어(1)는 시간 정보 T를 취한다. 구체적으로, IEEE 1394 명세에 의해 규정된 32비트의 cycle_time 레지스터의 내용이 통상 시간 정보로서 사용된다. cycle_time 레지스터는 IEEE 1394 직렬 버스(11)에 접속된 장치의 시간 정보를 균일하게 하는데 사용된다. 장치의 cycle_time 레지스터는 사이클 마스트, 즉 1394 직렬 버스(11) 상의 장치에 의해 보내진 패킷에 의해 균일하게 갱신된다. cycle_time 레지스터 각각의 내용은 24.576MHz의 주파수를 갖는 공통 클록 신호에 의해서 1만큼 증분되거나, 1394 직렬버스(11)를 통해 매 약 40 나노초에 한번 증분된다. 이러한 방식으로, 1394 직렬 버스(11)에 접속된 장치는 서로 일치되게 조정된다.
이어서, 과정은 단계 S268로 가서, 여기서 DVD 플레이저(1)은 T || sk를 암호화하여 암호화된 소스측 공통 세션키를 생성한다. 이어서, 과정은 단계 S269로 가서, 여기서 개인용 컴퓨터(2)에 암호화된 소스측 공통 세션키(e)를 전송한다. CBC 모드와 같은 귀환 루프를 포함하는 임의의 암호화 모드는 암호화 모드로서 채택됨에 유념한다.
이이서, 과정은 단계 S270로 가서, 여기서 개인용 컴퓨터(2)는 암호화된 소스측 공통 세션키(e)를 수신한다. 계속해서, 과정은 단계 S271로 가서, 여기서, 암호화된 소스측 공통 세션키(e)는 라이센스 키를 사용하여 해독됨으로써 해독 결과 T' || sk'를 생성한다. 해독 결과에서 T' 부분은 32비트의 폭이다.
이어서, 과정은 단계 S272로 가서, 개인용 컴퓨터(2) 자체의 cycle_time 레지스터의 내용과 T'를 비교함으로써 T'의 유효성을 검사한다. 그 차가 전형적인 소정의 값인 예를 들면 100 밀리초보다 작다면, T'는 유효한 것으로 판단된다. 그 차가 소정의 값보다 크다면 T'는 무효한 것으로 판단된다.
T'가 유효성 테스트를 통과하면, 개인용 컴퓨터(2)는 DVD 플레이어(1)를 유효한 장치인 것으로 판단하고 따라서 싱크측 공통 세션키(sk')를 받아들인다. T'가 유효성 테스트를 통과하지 못하면, 개인용 컴퓨터(2)는 DVD 플레이어(1)가 무효한 장치인 것으로 판단한다. 이 경우, 싱크측 공통 세션키(sk')는 무시된다. 이것은 정확한 라이센스 키(1k)를 생성할 수 있는 장치만이 라이센스키를 사용하여 암호화된 소스측 공통 세션키(e)의 해독의 결과 T'가 cycle_time 레지스터의 내용과 같은 암호화된 소스측 공통 세션키(e)를 생성할 수 있기 때문이다.
상기 기술된 인증 과정을 실현하는 실시예를 제공함으로써, 싱크는 소스를 인증할 수 있다. 더욱이, 인증 과정은 도 4에 도시된 실시예의 경우와 같이 인증된 싱크만이 정확한 싱크측 공통 세션키(sk')를 생성할 수 있는 특징을 또한 보유한다.
도 4에 도시한 실시예에 의해 구현된 처리에서, 라이센스 키를 갖는 인증된 싱크만이 소스측 공통 세션키(sk)와 동일한 싱크측 공통 세션키(sk')를 생성하도록 암호화된 소스측 공통 세션키(e)를 정확히 해독할 수 있다. 따라서, 근본적으로 이 실시예는 소스가 싱크를 인증하는 시스템이다. 그러나, 이 시스템에서, 인증되지 않은 싱크도 라이센스 키(1k)를 사용하여 소스측 공통 세션키(sk)의 암호화 결과로 나온 암호화된 소스측 공통 세션키(e)를 얻을 수 있다. 따라서, 소스측 공통 세션키(sk)와 동일한 싱크측 공통 세션키(sk')를 얻기 위한 시도에서 인증되지 않은 싱크가 암호화된 소스측 공통 세션키(e)를 해독할 가능성의 범위 내에 다분히 있게 된다.
도 37는 소스가 유효한 장치로서 싱크를 인증한 후에만 소스측 공통 세션키(sk)의 암호화로 결과로 나온 암호문을 소스가 전송하는 것으로서, 상기 기술된 문제를 해결하는 인증 과정을 실현하는 실시예를 도시한 도면이다. 과정은 도 37를 참조하여 이하 설명한다. 이 실시예에서, CBC 모드와 같은 귀환 루프를 포함하는 임의의 암호화 모드가 암호화 모드로서 채택될 수 있다.
도면에 도시한 과정의 단계 S281 내지 S285에서 수행된 처리들은 도 4에 도시한 과정의 단계 S1 내지 S5의 것들과 동일하므로, 이들의 설명은 반복하지 않는다. 단계 S86에서, DVD 플레이어(1)는 전형적으로 64로 미리 결정된 비트수를 각각 갖는 난수 r1 및 r2를 생성하여 이들을 결합해 M1를 형성한다. 이어서 과정은 단계 S287로 가서, 여기서 DVD 플레이어(1)는 라이센스 키(1k)를 사용하여 M1을 암호화하여 이어서 단계 S288에서 개인용 컴퓨터(2)로 전송된다.
단계 S289에서 X를 수신하는 개인용 컴퓨터(2)는 단계 S290에서 라이센스 키를 사용하여 X를 해독함으로써 r1' || r2', 즉 통상 64비트인 소정의 비트수를 각각 포함하는 r'1 및 r'2의 결합으로서 간주된 M'를 생성한다. 이어서, 과정은 단계 S291로 가서, 통상 64인 소정의 비트수를 갖는 난수 r3를 생성한다. 계속해서, 과정은 단계 S292로 가서, 여기서 r3는 r2'에 결합되어 M2를 형성한다. 이어서 과정은 단계 S293으로 가서, 여기서 M2는 라이센스 키를 사용하여 암호화되어 Y을 생성하고 이어서 단계 S294에서 DVD 플레이어(1)로 전송된다.
단계 S295에서 Y를 수신하는 DVD 플레이어(1)는 단계 S296에서 라이센스 키(1k)를 사용하여 Y를 해독하여, r3' || r2'', 즉 통상 64비트인 소정의 비트수를 각각 포함하는 r3' 및 r2''의 결합으로 간주되는 M2'를 형성한다. 이어서 과정은 단계 S297로 가서, 여기서 r2''는 단계 S286에서 생성된 r2와 비교되어 이들이 서로 동일한지 체크한다. r2''가 r2와 동일하다면 DVD 플레이어(1)는 개인용 컴퓨터(2)를 인증되지 않은 장치인 것으로 판단하고 인증 프로토콜을 종료한다. r2''가 r2와 동일하다면, 과정은 단계 S298로 가서, 여기서 DVD 플레이어(1)는 소스측 공통 세션키(sk)를 생성한다. 이어서 과정은 단계 S299로 가서, 여기서 r3'는 sk와 결합되어 M3를 형성한다. 이어서, 과정은 단계 S300으로 가서, 여기서 M3는 라이센스키(1k)를 사용하여 암호화되어 암호문 Z를 생성하고 이를 단계 S301에서 개인용 컴퓨터(2)로 전송한다.
단계 S302에서 Z를 수신하는 개인용 컴퓨터(2)는 단계 S303에서 라이센스 키를 사용하여 Z를 해독하여 r3'' || sk', 즉 통상 64비트의 소정의 비트수를 각각 포함하는 r3''와 sk'의 결합으로 간주되는 M3'를 생성한다. 이어서 과정은 단계 S304로 가서, 여기서 r3''가 단계 S291에서 생성된 r3와 같은지 체크한다. r3''가 r3와 같지 않다면, 개인용 컴퓨터(2)는 DVD 플레이어(1)가 인증되지 않은 장치인 것으로 판단하고 인증 프로토콜을 종료한다. r3''가 r3와 같다면, 개인용 컴퓨터(2)는 소스측 공통 세션키(sk)로서 단계 S303에서 생성된 싱크측 공통 세션키(sk')를 받아들인다.
상기 기술된 실시예에 의해 구현된 인증 프로토콜을 사용하여, 소스로 작용하는 DVD 플레이어(1)가 인증된 싱크로서 개인용 컴퓨터(2)를 인증한 후, DVD 플레이어(1)는 소스측 공통 세션키(sk)의 암호화 결과로 나오는 암호문 Z을 싱크로 전송한다. 이에 더하여, 도 33에 도시한 실시예와 거의 유사하게, 본 실시예의 경우, 소스가 라이센스키(1k)를 사용하여 암호문 Z을 생성하는 소스측 공통 세션키(sk)가 세션에서 변경되지 않은 채 있어도, Z는 r3', 즉 변수가 각각의 암호화에 연류되는 사실에 기인하여 세션 동안 암호화마다 달라진다. 결국, 본 실시예는 인증되지 않은 사람이 전송된 정보를 도용하기 어렵게 하는 특징을 제공한다.
그러나, 도 37에 도시한 실시예는 n비트 암호화 알고리즘이 채택되는 사실에 기인하여 r1, r2, r3 및 sk 각각이 n비트 폭인 경우 문제가 있다. 이것은 단계 S295에서 수신된 Y의 제1 n비트가 그대로 단계 S300에서 Z의 제1 n비트로서 사용될 경우, 소스가 인증되지 않은 장치일지라도 소스는 단계 S303에서 싱크에 의해 수행된 유효성 테스트를 통과하게 될 것이기 때문이다.
상기 기술된 문제를 해결하여, 본 발명은 도 38 내지 도 40에 도시한 다른 실시예들을 제공하며, 각각의 도면은 인증 프로토콜을 보인 것으로, 이 프로토콜에 의해서 소스는 싱크의 유효성을 입증한 후에 소스측 공통 세션키(sk)의 암호화 결과로 나온 암호문을 전송할 뿐만이 아니라 싱크 역시 소스를 인증할 수 있다. 도 38 및 도 39에 도시한 과정은 각각 도 37에 도시한 실시예의 전형적인 변형이다.
먼저, 도 38의 인증 프로토콜을 구현하는 실시예를 설명한다. 이 실시예에서, CBC 모드와 같은 귀환 루프를 포함하는 임의의 암호화 모드는 암호화 모드로서 채택될 수 있다.
도면에 도시한 과정의 단계 S311 내지 S327에서 수행된 처리들은 도 37에 도시한 과정의 단계 S281 내지 S297의 것들과 동일하므로, 이들의 설명은 반복하지 않는다. 단계 S328에서, DVD 플레이어(1)는 전형적으로 64로 미리 결정된 비트수를 각각 갖는 난수 r4 및 소스측 공통 세션키(sk)를 생성한다. 이어서 과정은 단계 S329로 가서, 여기서 r4는 r3'와 결합되어 M3를 생성한다. 이어서, 과정은 단계 S330으로 가서, 여기서 M3는 라이센스키(1k)를 사용하여 암호화되어 Z를 생성하고 이는 단계 S331에서 개인용 컴퓨터(2)로 전송된다.
단계 S332에서 Z를 수신하는 개인용 컴퓨터(2)는 단계 S333에서 라이센스 키를 사용하여 Z를 해독함으로써 r4' || r3'' || sk', 즉 통상 64비트인 소정의 비트수를 각각 포함하는 r4', r3'' 및 sk'의 결합으로서 간주된 M3'를 생성한다. 이어서, 과정은 단계 S334로 가서, r3''이 단계 S321에서 생성된 r3와 동일한지 체크하기 위해서 단계 S334로 진행한다. r3''가 r3와 동일하지 않다면 개인용 컴퓨터(2)는 DVD 플레이어(1)를 인증되지 않은 장치인 것으로 판단하고 인증 프로토콜을 종료한다. r3''가 r3와 동일하다면, 개인용 컴퓨터(2)는 소스측 공통 세션키(sk)로서 단계 S333에서 생성된 싱크측 공통 세션키(sk')를 받아들인다.
상기 기술된 인증 프로토콜을 구현하는 실시예에서, 싱크의 유효성을 입증한 후에 소스측 공통 세션키의 암호화 결과로 나온 암호문을 소스가 전송할 뿐만이 아니라, 싱크는 소스를 또한 인증할 수 있다.
상기 기술된 도 38의 과정과 거의 유사하게, 도 39에 도시한 과정 역시 도 37에 도시한 실시예의 전형적인 변형이다. 이 실시예에서, CBC 모드와 같은 귀환 루프를 포함하는 임의의 암호화 모드는 암호화 모드로서 채택될 수 있다.
도 39에 도시한 과정의 단계 S351 내지 S361에서 수행된 처리들은 도 37에 도시한 과정의 단계 S281 내지 S297의 것들과 동일하므로, 이들의 설명은 반복하지 않는다. 단계 S362에서, 개인용 컴퓨터(2)는 M2로서 r2' || r3를 생성한다. 이어서 과정은 단계 S363으로 가서, 여기서 개인용 컴퓨터(2)는 라이센스 키를 사용하여 M2를 암호화하여 Y를 생성하고 이는 단계 S364에서 DVD 플레이어(1)로 전송된다.
단계 S365에서 Y를 수신하는 DVD 플레이어(1)는 단계 S366에서 라이센스 키(1k)를 사용하여 Y를 해독함으로써 r2'' || r3, 즉 통상 64비트인 소정의 비트수를 각각 포함하는 r2'' 및 r3의 결합으로서 간주된 M2'를 생성한다. 이어서, 과정은 단계 S367로 가서, r2''이 단계 S356에서 생성된 r2와 동일한지 체크하기 위해서 단계 S367로 진행한다. r2''가 r2와 동일하지 않다면 DVD 플레이어(1)는 개인용 컴퓨터(2)를 인증되지 않은 장치인 것으로 판단하고 인증 프로토콜을 종료한다. r2''가 r2와 동일하다면, 과정은 단계 S368로 가서, 여기서 DVD 플레이어(1)는 소스측 공통 세션키(sk)를 생성한다. 이어서 과정은 단계 S369로 가서, 여기서 sk는 r3'와 결합되어 M3를 생성한다. 이어서, 과정은 단계 S370로 계속되어 여기서 M3는 라인센스키(1k)를 사용하여 암호화되어 암호문 Z를 형성하고 이는 단계 S371에서 개인용 컴퓨터(2)로 전송된다.
단계 S372에서 Z를 수신하는 개인용 컴퓨터(2)는 단계 S373에서 라이센스 키를 사용하여 Z를 해독함으로써 r3'' || sk', 즉 통상 64비트인 소정의 비트수를 각각 포함하는 r3'' 및 sk'의 결합으로서 간주된 M3'를 생성한다. 이어서, 과정은 단계 S374로 가서, r3''이 단계 S361에서 생성된 r3과 동일한지 체크하기 위해서 단계 S374로 진행한다. r3''가 r3와 동일하지 않다면 개인용 컴퓨터(2)는 DVD 플레이어(1)를 인증되지 않은 장치인 것으로 판단하고 인증 프로토콜을 종료한다. r3''가 r3와 동일하다면, 개인용 컴퓨터(2)는 소스측 공통 세션키(sk)로서 단계 S373에서 생성된 싱크측 공통 세션키(sk')를 받아들인다.
상기 기술된 인증 프로토콜을 구현하는 실시예에서, 싱크의 유효성을 입증한 후에 소스측 공통 세션키의 암호화 결과로 나온 암호문을 소스가 전송할 뿐만이 아니라, 싱크는 소스를 또한 인증할 수 있다. 이에 더하여, 상기 기술된 도 33의 과정과 거의 유사하게, 본 실시예의 경우, 소스가 라이센스키(1k)를 사용하여 암호문 Z을 생성하는 소스측 공통 세션키(sk)가 세션에서 변경되지 않은채 있어도, Z는 r4, 즉 DVD 플레이어(1)에 의해서 생성된 변수가 각각의 암호화에 연류되는 사실에 기인하여 세션 동안 암호화마다 달라진다. 결국, 본 실시예는 인증되지 않은 사람이 전송된 정보의 도용을 어렵게 하는 특징을 제공한다.
도 40은 도 38 및 도 39에 도시한 것들과 동일한 기능을 갖는 인증 프로토콜을 구현하는 실시예를 도시한 도면이다. 본 실시예에서도, CBC 모드와 같은 귀환 루프를 포함하는 임의의 암호화 모드를 암호화 모드로서 채택할 수 있다. 도면에 도시한 과정의 단계 S381 내지 S384에서 수행된 처리들은 도 4에 도시한 과정의 단계 S1 내지 S4의 것들과 동일하므로, 이들의 설명은 반복하지 않는다. 단계 S385에서, DVD 플레이어(1)는 전형적으로 64의 비트수를 갖는 난수 Rsrc를 생성한다. 이어서 과정은 단계 S386으로 가서, 난수 Rscc는 개인용 컴퓨터(2)로 전송된다.
이어서, 과정은 단계 S387로 가서, 여기서 개인용 컴퓨터(2)는 난수 Rsrc를 수신한다. 계속해서, 과정은 단계 S388로 가서, 여기서 개인용 컴퓨터(2)는 통상 64비트의 소정의 비트수를 갖는 난수 Rsnk를 생성한다. 이어서, 과정은 단계 S389로 가서, 여기서 난수 Rsrc는 난수 Rsnk와 결합되어 M1을 생성한다. 이어서, 과정은 단계 S390으로 가서, 여기서 M1은 라이센스키를 사용하여 암호화되어 X를 생성하고 이는 단계 S391에서 DVD 플레이어(1)로 전송된다.
단계 S392에서 DVD 플레이어(1)는 X를 수신한다. 이어서, 과정은 단계 S393으로 가서, 여기서 라이센스 키(1k)는 개인용 컴퓨터(2)에 할당된 ID 및 서비스 키로부터 계산된다. 단계 S394에서, 라이센스키(1k)는 Rsnk' || Rsrc', 즉 통상 64비트인 소정의 비트수를 각각 포함하는 Rsnk' 및 Rsrc의 결합으로서 간주된 M1'를 생성하기 위해서 X를 해독하는데 사용된다. 이어서, 과정은 단계 S395로 가서, Rsrc' = Rsrc인지 여부를 체크한다. Rsrc'이 Rsrc와 동일하지 않다면 개인용 컴퓨터(2)는 인증되지 않은 장치인 것으로 판단되어 이 경우 인증 프로토콜이 종료된다. Rsrc'가 Rsrc와 동일하다면, 과정은 단계 S396으로 가서, 여기서 DVD 플레이어(1)는 소스측 공통 세션키(sk)를 생성한다. 이어서, 과정은 단계 S397로 가서, 여기서 Rsrc는 Rsnk' 및 sk와 결합되어 M2를 생성한다. 이어서, 과정은 단계 S398로 가서, 여기서 M2는 라이센스키(1k)를 사용하여 암호화되어 Y를 생성하고 이는 단계 S399에서 개인용 컴퓨터(2)로 전송된다.
단계 S400에서 Y를 수신하는 개인용 컴퓨터(2)는 단계 S401에서 라이센스 키를 사용하여 Y를 해독함으로써 Rsrc'' || Rsnk'' || sk', 즉 통상 64비트인 소정의 비트수를 각각 포함하는 Rsrc'', Rsnk'' 및 sk'의 결합으로서 간주된 M3를 생성한다. 이어서, 과정은 단계 S402로 가서, Rsnk''이 단계 S388에서 생성된 Rsnk와 동일한지 체크하기 위해서 단계 S402로 진행한다. Rsnk''가 Rsnk와 동일하지 않다면 개인용 컴퓨터(2)는 DVD 플레이어(1)를 인증되지 않은 장치인 것으로 판단하고 싱크측 공통 세션키(sk')는 무시된다. Rsnk''가 Rsnk와 동일하다면, sk'는 공통 세션키로서 받어들여진다.
상기 기술된 인증 프로토콜을 구현하는 실시예에서, 싱크의 유효성을 입증한 후에 소스측 공통 세션키의 암호화 결과로 나온 암호문을 소스가 싱크로 전송할 뿐만이 아니라, 싱크는 소스를 또한 인증할 수 있다. 이에 더하여, 도 33의 과정과 거의 유사하게, 본 실시예의 경우, 소스가 라이센스키(1k)를 사용하여 암호문 Y을 생성하는 소스측 공통 세션키(sk)가 세션에서 변경되지 않은채 있어도, Y는 Rsrc, 즉 DVD 플레이어(1)에 의해서 생성된 변수가 각각의 암호화에 연류되는 사실에 기인하여 세션 동안 암호화마다 달라진다. 결국, 본 실시예는 인증되지 않은 사람이 전송된 정보를 도용하기 어렵게 하는 특징을 제공한다.
상기 기술된 실시예들에서, DVD 플레이어(1)는 개인용 컴퓨터(2) 및 광자기 디스크 장치(3) 각각이 싱크로 작용할 때 소스로서 작용한다. 해독은 제한된 의미로 해석되지 않도록 된 것임에 유념한다. 즉, 어떤 임의의 전자 장치라도 소스 혹은 싱크로서 사용될 수 있다.
더욱이, 데이터 처리 시스템을 포함하는 전자 장치를 서로 접속하기 위해 1394 직렬 버스가 외부 버스로서 사용되더라도, 본 실시예의 범위는 이러한 실시예들로 제한되지 않는다. 즉, 외부 버스로서 다양한 버스가 사용될 수 있고 외부 버스에 의해 서로 접속된 전자 장치는 상기 기술된 실시예에 사용된 것들로 제한되지 않는다. 임의의 전자 장치라도 데이터 처리 시스템을 구성하는데 사용될 수 있다.
CPU들에 의해 수행될 명령들로 구성된 다양한 프로그램은 자기 디스크, CD-ROM 디스크 및 망과 같은 매체를 제공함으로써 사용자에게 제공되고, 필요하다면 전자 장치에 설치된 RAM부 혹은 하드 디스크에 프로그램을 저장함으로써 사용될 수 있음을 주의한다.
본 발명에 의해 제공된 정보 처리 장치, 정보 처리 방법 및 기록 매체에서, 제1 키 LK는 또 다른 정보 처리 장치로부터 수신된 식별 데이터에 기초하여 생성되며 소정의 정보를 나타내는 제2 키 SVK는 소정의 처리를 거친다. 결국, 전송된 정보의 보안은 고도의 신뢰성이 보장될 수 있다.
더욱이, 본 발명에 의해 제공된 또 다른 정보 처리 장치, 또 다른 정보 처리 방법 및 또 다른 기록 매체에서, 소정의 처리를 거친 소정의 정보를 나타내는 제1 키 SVK 및 소정의 함수는 미리 저장된다. 제2 키 LK는 또 다른 정보 처리 장치 및 제1 키 SVK로부터 수신된 식별 데이터에 소정의 함수를 적용하여 생성된다. 제3 키 SK가 또 생성되어, 제2 키 LK를 사용하여 암호화되고 다른 정보 처리 장치로 전송된다. 결국, 또 다른 인증된 정보 처리 장치만이 이에 전송된 정보에 소정의 처리를 수행하는 것이 가능하며, 더욱이 정보의 보안성을 보장한다.
정보 처리 시스템으로, 본 발명에 의해 제공된 다른 정보 처리 방법 및 다른 기록 매체는 제1 정보 처리 장치에서 제2 정보 처리 장치로 전송되는 정보에 관련된 제1 키 SVK 및 처리 함수가 미리 저장된다. 제2 키 LK1는 제2 정보 처리 장치에 할당되고 이로부터 수신된 식별 데이터 및 제1 키 SVK에 소정의 함수를 적용하여 생성된다. 제3 키 SK1이 또한 생성되고 제2 키 LK2를 사용하여 암호화되어 제2 정보 처리 장치로 전송된다. 한편, 제2 정보 처리 장치에서, 제2 정보 처리 장치에 할당된 식별 데이터, 즉 제2 정보 처리 장치는 제2 정보 처리 장치에 고유한 식별 데이터를 소유하고 제1 정보 처리 장치로부터 수신된 소정의 정보에 소정의 처리를 수행하기 위한 허락을 나타내는 제4 키 LK2는 미리 저장된다. 제1 정보 처리 장치로부터 수신된 암호화된 제3 키는 제4 키 LK2를 사용하여 제3 키 SK1에 다시 해독된다. 결국, 전송된 정보의 높은 보안을 제공하는 정보 처리 시스템이 구현될 수 있다.
더욱이, 본 발명에 의해 제공된 또 다른 정보 처리 장치, 또 다른 정보 처리 방법 및 또 다른 기록 매체에 따라, 제1 키 LK, 제2 키 LK' 및 소정의 함수 G는 미리 저장된다. 제2 키 LK'는 제1 키 LK 및 소정의 함수 G의 역함수 G^-1에 기초하여 미리 생성된다. 결국, 전송된 정보의 보안은 고도의 신뢰성이 보장될 수 있다.
더욱이, 본 발명에 의해 제공된 또 다른 정보 처리 장치, 또 다른 정보 처리 방법 및 또 다른 기록 매체에서, 데이터 H는 또 다른 정보 처리 장치에 할당되고 이로부터 수신된 식별 데이터 및 제1 키 SVK에 소정의 함수를 적용하여 생성된다. 제2 키 SK는 데이터 H로부터 생성된 의사 난수 pRNG(H)를 사용하여 암호화되어 다른 정보 처리 장치로 전송된다. 결국, 전송된 정보의 높은 보안을 제공하는 정보 처리 장치가 구현될 수 있다.
더욱이, 본 발명에 의해 제공된 또 다른 정보 처리 장치, 또 다른 정보 처리 방법 및 또 다른 기록 매체에 있어서, 제1 정보 처리 장치에서 데이터 H는 제2 정보 처리 장치에 할당되고 이로부터 수신된 식별 데이터 및 제1 키 SVK에 제1 함수 h를 적용하여 생성된다. 제2 키 SK는 데이터 H로부터 생성된 의사 난수 pRNG(H)를 사용하여 암호화되어 제2 정보 처리 장치로 전송된다. 제2 정보 처리 장치에서, 제2 키 LK, 제4 키 LK' 및 소정의 함수 G가 미리 저장된다. 제4 키 LK'는 제3 키 LK 및 소정의 함수 G의 역합수 G^-1에 기초하여 생성된다. 결국, 전송된 정보의 높은 보안을 제공하는 정보 처리 장치가 구현될 수 있다.
본 발명은 고도로 안전하게 데이터가 교환가능하도록 하는 정보 처리 장치, 정보 처리 방법, 정보 처리 시스템, 및 기록 매체를 제공한다.
도 1은 본 발명이 적용되는 정보 처리 시스템의 전형적인 구조를 도시한 블록도.
도 2는 도 1에 도시된 정보 처리 시스템 내의 DVD 플레이어(1), 개인용 컴퓨터(2), 광자기 디스크 장치(3)의 전형적인 구조를 상세하게 도시한 블록도.
도 3은 인증(authentication) 처리를 설명하는데 사용되는 예시적 도면.
도 4는 도 3에 도시된 인증 처리를 실행하는 인증 과정을 구현하는 실시예를 도시하는 도면.
도 5는 노드 고유의 ID의 포맷을 도시한 도면.
도 6은 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 7은 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 8은 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 9는 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 10은 소스가 암호 데이터를 다수의 싱크들에 전송하는, 본 발명이 적용될 정보 처리 시스템을 구현하는 실시예를 도시하는 블록도.
도 11은 도 10에 도시된 시스템 내에서 소스로서 역할하는 DVD 플레이어(1)내에 사용되는 1394 인터페이스부(interface unit: 26)의 전형적인 구조를 도시한 블록도.
도 12는 도 11에 도시된 1394 인터페이스부(26)의 전형적인 상세한 구조를 도시한 블록도.
도 13는 도 12에 도시된 1394 인터페이스부(26)내에 사용된 LFSR(72)의 전형적인 상세한 구조를 도시한 블록도.
도 14는 도 13에 도시된 LFSR(72)의 보다 구체적 구조를 도시한 블록도.
도 15는 도 10에 도시된 시스템에서 싱크로서 역할하는 광자기 디스크 장치(3)에서 사용되는 1394 인터페이스부(36)의 전형적인 구조를 도시한 블록도.
도 16은 도 15에 도시된 1394 인터페이스부(36)의 전형적인 상세한 구조를 도시하는 블록도.
도 17은 도 10에 도시된 시스템의 또 다른 싱크로서 역할하는 개인용 컴퓨터에서 사용되는 1394 인터페이스부(49)의 전형적인 구조를 도시하는 블록도.
도 18은 도 17에 도시된 1394 인터페이스부(49)의 전형적인 상세한 구조를 도시한 블록도.
도 19는 도 10에 도시된 시스템의 또 다른 싱크로서 역할하는 개인용 컴퓨터(2)에서 사용되는 응용 모듈(61)의 전형적인 구조를 도시하는 블록도.
도 20은 도 19에 도시된 응용 모듈(61)의 전형적인 상세한 구조를 도시한 블록도.
도 21은 도 10에 도시된 시스템의 소스로서 역할하는 DVD 플레이어(1)에서 사용되는 1394 인터페이스부(36)의 또 다른 전형적인 상세한 구조를 도시한 블록도.
도 22는 도 10에 도시된 시스템의 싱크로서 역할하는 광자기 디스크 장치(3)에서 사용되는 1394 인터페이스부(36)의 또 다른 전형적인 상세한 구조를 도시한 블록도.
도 23은 도 10에 도시된 시스템의 또다른 싱크로서 역할하는 개인용 컴퓨터(2)에서 사용되는 1394 인터페이스부(49)의 또 다른 전형적인 상세한 구조를 도시한 블록도.
도 24는 도 10에 도시된 시스템의 또 다른 싱크로서 역할하는 개인용 컴퓨터(2)에서 사용되는 응용 모듈(61)의 또 다른 전형적인 구조를 도시한 블록도.
도 25는 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 26은 도 25에 도시된 인증 처리에 이어지는 처리를 도시한 도면.
도 27은 도 25에 도시된 인증 처리에 이어지는 또 다른 처리를 도시하는 도면.
도 28은 소스가 암호 데이터를 싱크에 전송하는, 본 발명이 적용되는 정보 처리 시스템을 구현하는 또 다른 실시예의 구조를 도시하는 블록도.
도 29는 도 28에 도시된 시스템의 소스 또는 싱크에서 사용되는 난수(random number) 발생기(903,914)를 도시한 블록도.
도 30은 도 28에 도시된 시스템의 소스 또는 싱크에서 사용되는 처리 회로(902,913)에 의해 실행된 동작을 나타내는 흐름도.
도 31은 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 32는 패킷의 포맷을 도시하는 도면.
도 33은 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 34는 CBC 모드의 전형적인 구조를 도시하는 블록도.
도 35는 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 36은 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 37은 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 38은 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 39은 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 40은 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
도 41은 인증 처리를 구현하는 또 다른 실시예를 도시하는 도면.
*도면의 주요 부분에 대한 상세한 설명*
1 : DVD 플레이어 2 : 개인용 컴퓨터
3 : 광자기 디스크 장치 5 : 모니터
Claims (36)
- 데이터 전송 장치로서, 상기 장치 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 전송 장치에 있어서,동료(partner) 장치로부터 신호를 수신하기 위한 신호 수신 수단;동료 장치에 신호를 전송하기 위한 신호 전송 수단; 및전송될 신호에 대해 소정의 암호화를 실행하기 위한 신호 암호화 수단을 구비하며,상기 신호 암호화 수단은 상기 신호 수신 수단으로부터 수신된 신호 전송 소스를 나타내는 정보를 검사하고, 만일, 신호가 상기 신호 전송 소스에 이미 전송되었다면, 상기 신호는 상기 신호 전송 소스에 다시 전송되지 않는, 데이터 전송 장치.
- 제 1항에 있어서, 상기 신호 전송 수단은 ID 요구 신호 및 암호문(encrypted text)을 전송하며,상기 신호 수신 수단은 ID를 수신하며,상기 신호 암호화 수단은 소정의 키(key)로부터 암호문을 생성하는 데이터 전송 장치.
- 데이터 전송 장치로서, 상기 장치 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 전송 장치에 있어서,동료 장치로부터 신호를 수신하기 위한 신호 수신 수단;동료 장치에 신호를 전송하기 위한 신호 전송 수단; 및전송될 신호에 대해 소정의 암호화를 실행하는 신호 암호화 수단을 구비하며,상기 신호 암호화 수단은,상기 신호 수신 수단으로부터 수신된 정보 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 1 정보를 생성하는 단계와,난수(random number)를 생성하는 단계와,암호문을 생성하는 단계를 실행하는, 데이터 전송 장치.
- 데이터 전송 장치로서, 상기 장치 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 장치에 있어서,동료 장치로부터 난수 및 ID 신호를 수신하기 위한 신호 수신 수단;동료 장치에 ID 요구 신호 및 암호문을 전송하기 위한 신호 전송 수단; 및전송될 신호에 대해 소정의 암호화를 실행하기 위한 신호 암호화 수단을 구비하며,상기 신호 암호화 수단은,상기 신호 수신 수단으로부터 수신된 정보 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 1 정보를 생성하는 단계와,상기 신호 수신 수단에 의해 수신된 난수와 상기 제 1 정보로부터 암호문을 생성하는 단계를 실행하는, 데이터 전송 장치.
- 데이터 전송 장치로서, 상기 장치 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 장치에 있어서,동료 장치로부터 ID 신호를 수신하기 위한 신호 수신 수단;ID 요구 신호 및 암호문을 동료 장치에 전송하기 위한 신호 전송 수단; 및전송될 신호에 대해 소정의 암호화를 실행하기 위한 신호 암호화 수단을 구비하며,상기 신호 암호화 수단은,상기 신호 수단으로부터 수신된 ID 정보 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 1 정보를 생성하는 단계와,시간 정보를 생성하는 단계와,상기 시간 정보 및 상기 제 1 정보로부터 암호문을 생성하는 단계를 실행하는, 데이터 전송 장치.
- 데이터 전송 장치로서, 상기 장치 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 장치에 있어서,동료 장치로부터 ID 신호 및 다른 신호들을 수신하기 위한 신호 수신 수단;ID 요구 신호 및 암호문을 동료 장치에 전송하기 위한 신호 전송 수단; 및전송될 신호에 대해 소정의 암호화를 실행하기 위한 신호 암호화 수단을 구비하며,상기 신호 암호화 수단은,상기 신호 수신 수단으로부터 수신된 ID 정보 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 1 정보를 생성하는 단계와,제 1 난수를 생성하는 단계와,상기 제 1 정보 및 상기 제 1 난수로부터 제 1 암호문을 생성하는 단계와,상기 신호 수신 수단으로부터 제 2 정보를 얻고 상기 제 2 정보 내에 포함된 제 2 난수를 복구하는 단계와,상기 제 1 난수와 상기 제 2 난수를 비교하고, 비교 출력이 소정의 결과를 나타낼 때만 제 2 암호문을 생성하는 단계를 포함하는, 데이터 전송 장치.
- 데이터 전송 장치로서, 상기 장치 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 장치에 있어서,동료 장치로부터 ID 신호 및 다른 신호들을 수신하기 위한 신호 수신 수단;ID 요구 신호 및 암호문을 동료 장치에 전송하기 위한 신호 전송 수단; 및전송될 신호에 대해 소정의 암호화를 실행하는 신호 암호화 수단을 구비하며,상기 신호 암호화 수단은,제 1 난수를 생성하는 단계와,상기 ID 정보 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 2 정보를 생성하는 단계와,상기 제 2 정보를 사용하여 상기 동료 장치로부터 수신되는 제 1 정보를 해독하고 상기 제 1 정보 내에 포함된 제 2 난수를 복원하는 단계와,상기 제 1 난수와 상기 제 2 난수를 비교하고, 비교 출력이 소정의 결과를 나타낼 때만 제 2 암호문을 생성하는, 데이터 전송 장치.
- 데이터 전송 방법에 있어서,자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되며,동료 장치로부터의 인증(authentication) 요구 신호가 수신 및 검사되며, 만일, 정보가 상기 동료 장치에 이미 전송된 것이라면, 상기 정보는 암호화되지 않고 상기 동료 장치에 다시 전송되지 않으며, 만일, 상기 정보가 상기 동료 장치에 아직 전송된 것이 아니라면, 상기 정보는 암호화되고 상기 동료 장치에 전송되는, 데이터 전송 방법.
- 제 8항에 있어서, 암호문은 수신 정보 및 미리 저장된 정보로부터 생성되는, 데이터 전송 방법.
- 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 전송 방법에 있어서,ID 요구 신호를 전송하는 단계;ID를 수신하는 단계;상기 ID 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 1 정보를 생성하는 단계;난수를 생성하는 단계;상기 제 1 정보 및 상기 난수로부터 암호문을 생성하는 단계; 및상기 암호문을 전송하는 단계를 구비하는, 데이터 전송 방법.
- 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 전송 방법에 있어서,난수를 수신하는 단계;ID 요구 신호를 전송하는 단계;ID를 수신하는 단계;상기 ID 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 1 정보를 생성하는 단계;상기 난수 및 상기 제 1 정보로부터 암호문을 생성하는 단계; 및상기 암호문을 전송하는 단계를 구비하는, 데이터 전송 방법.
- 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 전송 방법에 있어서,ID 요구 신호를 전송하는 단계;ID를 수신하는 단계;상기 ID 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 1 정보를 생성하는 단계;시간 정보를 생성하는 단계;상기 시간 정보 및 상기 제 1 정보로부터 암호문을 생성하는 단계; 및상기 암호문을 전송하는 단계를 구비하는, 데이터 전송 방법.
- 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 전송 방법에 있어서,ID 요구 신호를 전송하는 단계;ID를 수신하는 단계;상기 ID 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 1 정보를 생성하는 단계;제 1 난수를 생성하는 단계;상기 제 1 난수 및 상기 제 1 정보부터 제 1 암호문을 생성하는 단계;상기 제 1 암호문을 전송하는 단계;제 2 정보를 수신하는 단계;상기 제 2 정보로부터 제 2 난수를 복원하는 단계; 및상기 제 1 난수와 상기 제 2 난수를 비교하고, 비교 출력이 소정의 결과를 나타낼 때만 제 2 암호문을 생성하는 단계를 구비하는, 데이터 전송 방법.
- 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 전송 방법에 있어서,ID 요구 신호를 전송하는 단계;ID를 수신하는 단계;제 1 난수를 생성하는 단계;상기 제 1 난수를 전송하는 단계;제 1 정보를 수신하는 단계;상기 ID 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 2 정보를 생성하는 단계;상기 제 2 정보를 사용하여 상기 제 1 정보를 해독하고 상기 제 1 정보 내에 포함된 제 2 난수를 복원하는 단계; 및상기 제 1 난수와 상기 제 2 난수를 비교하여, 비교 출력이 소정의 결과를 나타낼 때만 제 2 암호문을 생성하는 단계를 구비하는, 데이터 전송 방법.
- 데이터 수신 장치로서, 다른 장치로부터 수신되는 정보와 상기 데이터 수신 장치 자체의 키를 사용하여 상기 다른 장치로부터 수신되는 데이터를 해독하기 위한 상기 데이터 수신 장치에 있어서,동료 장치로부터 신호를 수신하기 위한 신호 수신 수단;상기 신호 수신 수단에 의해 수신된 암호문을 해독하는 텍스트 해독 수단; 및신호를 동료 장치에 전송하기 위한 신호 전송 수단을 구비하며,상기 신호 전송 수단은 인증 요구 신호 및 ID 신호를 전송하는, 데이터 수신 장치.
- 데이터 수신 장치로서, 다른 장치로부터 수신되는 정보와 상기 데이터 수신 장치 자체의 키를 사용하여 상기 다른 장치로부터 수신되는 데이터를 해독하기 위한 상기 데이터 수신 장치에 있어서,동료 장치로부터 신호를 수신하기 위한 신호 수신 수단;상기 신호 수신 수단에 의해 수신된 암호문을 해독하기 위한 텍스트 해독 수단; 및신호를 동료 장치에 전송하기 위한 신호 전송 수단을 구비하며,상기 신호 수신 수단은 ID 요구 신호 및 암호문을 수신하며,상기 신호 해독 수단은 난수를 생성하고, 상기 신호 수신 수단에 의해 수신된 상기 암호문 내에 포함된 난수와 상기 생성된 난수를 비교하고, 비교 결과가 소정의 조건을 충족시킬 때만 해독된 출력을 생성하며,상기 신호 전송 수단은 상기 생성된 난수를 전송하는, 데이터 수신 장치.
- 데이터 수신 장치로서, 다른 장치로부터 수신되는 정보와 상기 데이터 수신 장치 자체의 키를 사용하여 상기 다른 장치로부터 수신되는 데이터를 해독하기 위한 상기 데이터 수신 장치에 있어서,동료 장치로부터 신호를 수신하기 위한 신호 수신 수단;상기 신호 수신 수단에 의해 수신된 암호문을 해독하는 텍스트 해독 수단; 및신호를 동료 장치에 전송하기 위한 신호 전송 수단을 구비하며,상기 신호 수신 수단은 ID 요구 신호 및 암호문을 수신하며,상기 신호 해독 수단은 난수를 생성하고, 상기 신호 수신 수단에 의해 수신된 상기 암호문 내에 포함된 난수와 상기 생성된 난수를 비교하고, 비교 결과가 소정의 조건을 충족시킬 때만 해독된 출력을 생성하며,상기 신호 전송 수단은 상기 ID를 전송하는, 데이터 수신 장치.
- 데이터 수신 장치로서, 다른 장치로부터 수신되는 정보와 상기 데이터 수신 장치 자체의 키를 사용하여 상기 다른 장치로부터 수신되는 데이터를 해독하기 위한 상기 데이터 수신 장치에 있어서,동료 장치로부터 신호를 수신하는 신호 수신 수단;상기 신호 수신 수단에 의해 수신된 암호문을 해독하기 위한 텍스트 해독 수단; 및신호를 동료 장치에 전송하기 위한 신호 전송 수단을 구비하며,상기 신호 수신 수단은 ID 요구 신호, 제 1 암호문, 및 제 3 암호문을 수신하며,상기 신호 해독 수단은,난수를 생성하고, 상기 신호 수신 수단에 의해 수신된 상기 제 1 암호문 및 상기 생성된 난수로부터 제 2 암호문을 생성하며,상기 신호 수신 수단에 의해 수신된 상기 제 3 암호문 내에 포함된 난수와 상기 생성된 난수를 비교하고, 비교 결과가 소정의 결과를 충족시킬 때만 해독 출력을 생성하며,상기 신호 전송 수단은 ID 및 상기 제 2 암호문을 전송하는, 데이터 수신 장치.
- 데이터 수신 장치로서, 다른 장치로부터 수신되는 정보와 상기 데이터 수신 장치 자체의 키를 사용하여 상기 다른 장치로부터 수신되는 데이터를 해독하기 위한 상기 데이터 수신 장치에 있어서,동료 장치로부터 신호를 수신하기 위한 신호 수신 수단;상기 신호 수신 수단에 의해 수신된 암호문을 해독하기 위한 텍스트 해독 수단; 및신호를 동료 장치에 전송하기 위한 신호 전송 수단을 구비하며,상기 신호 수신 수단은 ID 요구 신호, 제 1 난수, 및 제 2 암호문을 수신하며,상기 신호 해독 수단은,제 2 난수를 생성하고, 상기 신호 수신 수단에 의해 수신된 상기 제 1 난수 및 상기 생성된 제 2 난수로부터 제 1 암호문을 생성하며,상기 신호 수신 수단에 의해 수신된 상기 제 2 암호문 내에 포함된 난수와 상기 생성된 제 2 난수를 비교하고, 비교 결과가 소정의 조건을 충족시킬 때만 해독된 출력을 생성하며,상기 신호 전송 수단은 ID 및 상기 제 1 암호문을 전송하는, 데이터 수신 장치.
- 데이터 수신 방법으로서, 다른 장치로부터 수신되는 정보와 데이터 수신 장치 자체의 키를 사용하여 상기 다른 장치로부터 수신되는 데이터를 해독하기 위한 데이터 수신 방법에 있어서,인증 요구 신호를 전송하는 단계;ID 요구 신호를 수신하는 단계;ID를 전송하는 단계;암호문을 수신하는 단계; 및수신된 암호문을 해독하는 단계를 구비하는, 데이터 수신 방법.
- 데이터 수신 방법으로서, 다른 장치로부터 수신되는 정보와 데이터 수신 장치 자체의 키를 사용하여 상기 다른 장치로부터 수신되는 데이터를 해독하기 위한 데이터 수신 방법에 있어서,난수를 생성하는 단계;상기 난수를 전송하는 단계;ID 요구 신호를 수신하는 단계;ID를 전송하는 단계;암호문을 수신하는 단계; 및상기 생성된 난수와, 상기 수신된 암호문 내에 포함된 난수를 비교하고, 비교 결과가 소정의 조건을 충족시킬 때만 해독된 출력을 생성하는 단계를 구비하는, 데이터 수신 방법.
- 데이터 수신 방법으로서, 다른 장치로부터 수신되는 정보와 데이터 수신 장치 자체의 키를 사용하여 상기 다른 장치로부터 수신되는 데이터를 해독하기 위한 데이터 수신 방법에 있어서,ID 요구 신호를 수신하는 단계;ID를 전송하는 단계;암호문을 수신하는 단계;상기 수신된 암호문 내에 포함된 시간 정보의 유효성을 평가하는 단계; 및비교 결과가 소정의 조건을 충족시킬 때만 해독된 출력을 생성하는 단계를 구비하는, 데이터 수신 방법.
- 데이터 수신 방법으로서, 다른 장치로부터 수신되는 정보와 데이터 수신 장치 자체의 키를 사용하여 상기 다른 장치로부터 수신되는 데이터를 해독하기 위한 데이터 수신 방법에 있어서,ID 요구 신호를 수신하는 단계;ID를 전송하는 단계;제 1 암호문을 수신하는 단계;제 2 난수를 생성하는 단계;상기 수신된 제 1 암호문 내에 포함된 제 1 난수 및 상기 생성된 제 2 난수로부터 제 2 암호문을 생성하는 단계;상기 제 2 암호문을 전송하는 단계;제 3 암호문을 수신하는 단계; 및상기 생성된 제 2 난수 및 상기 수신된 제 3 암호문 내에 포함된 제 3 난수를 평가하고, 평가 결과가 소정의 조건을 충족시킬 때만 해독된 출력을 생성하는 단계를 구비하는, 데이터 수신 방법.
- 데이터 수신 방법으로서, 다른 장치로부터 수신되는 정보와 데이터 수신 장치 자체의 키를 사용하여 상기 다른 장치로부터 수신되는 데이터를 해독하기 위한 데이터 수신 방법에 있어서,ID 요구 신호를 수신하는 단계;ID를 전송하는 단계;제 1 난수를 수신하는 단계;제 2 난수를 생성하는 단계;상기 생성된 제 2 난수 및 상기 수신된 제 1 난수로부터 제 1 암호문을 생성하는 단계;상기 제 1 암호문을 전송하는 단계;제 2 암호문을 수신하는 단계;및상기 생성된 제 2 난수 및 상기 수신된 제 2 암호문 내에 포함된 제 3 난수를 평가하고, 평가 결과가 소정의 조건을 충족시킬 때만 해독된 출력을 생성하는 단계를 구비하는, 데이터 수신 방법.
- 데이터 전송 방법을 규정하는 프로그램을 저장하기 위한 기록 매체에 있어서, 그 방법에 의해,자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리후에 데이터가 전송되며,동료 장치로부터의 인증 요구 신호가 수신 및 검사되어, 만일, 정보가 상기 동료 장치에 이미 전송된 것이라면, 상기 정보는 암호화되지 않고 상기 동료 장치에 다시 전송되지 않으며, 만일, 상기 정보가 상기 동료 장치에 아직 전송된 것이 아니라면, 상기 정보는 암호화되어 상기 동료 장치에 전송되는, 기록 매체.
- 제 25항에 있어서, 암호문은 수신 정보 및 미리 저장된 정보로부터 생성되는, 기록 매체.
- 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 전송 방법을 규정하는 프로그램을 저장하기 위한 기록 매체에 있어서, 상기 방법은,ID 요구 신호를 전송하는 단계;ID를 수신하는 단계;상기 ID 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 1 정보를 생성하는 단계;난수를 생성하는 단계;상기 제 1 정보 및 상기 난수로부터 암호문을 생성하는 단계; 및상기 암호문을 전송하는 단계를 구비하는, 기록 매체.
- 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 전송 방법을 규정하는 프로그램을 저장하기 위한 기록 매체에 있어서, 상기 방법은,난수를 수신하는 단계;ID 요구 신호를 전송하는 단계;ID를 수신하는 단계;상기 ID 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 1 정보를 생성하는 단계;상기 난수 및 상기 제 1 정보로부터 암호문을 생성하는 단계; 및상기 암호문을 전송하는 단계를 구비하는, 기록 매체.
- 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 전송 방법을 규정하는 프로그램을 저장하기 위한 기록 매체에 있어서, 상기 방법은,ID 요구 신호를 전송하는 단계;ID를 수신하는 단계;상기 ID 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 1 정보를 생성하는 단계;시간 정보를 생성하는 단계;상기 시간 정보 및 상기 제 1 정보로부터 암호문을 생성하는 단계; 및상기 암호문을 전송하는 단계를 구비하는, 기록 매체.
- 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 전송 방법을 규정하는 프로그램을 저장하기 위한 기록 매체에 있어서, 상기 방법은,ID 요구 신호를 전송하는 단계;ID를 수신하는 단계;상기 ID 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 1 정보를 생성하는 단계;제 1 난수를 생성하는 단계;상기 제 1 난수 및 상기 제 1 정보부터 제 1 암호문을 생성하는 단계;상기 제 1 암호문을 전송하는 단계;제 2 정보를 수신하는 단계;상기 제 2 정보로부터 제 2 난수를 복원하는 단계;상기 제 1 난수와 상기 제 2 난수를 비교하는 단계; 및비교 출력이 소정의 결과를 나타낼 때만 제 2 암호문을 생성하는 단계를 구비하는, 기록 매체.
- 자체의 ID 코드 및 다른 장치로부터 수신된 ID 코드에 근거한 소정의 처리가 실행된 후에 데이터가 전송되는 데이터 전송 방법을 규정하는 프로그램을 저장하기 위한 기록 매체에 있어서, 상기 방법은,ID 요구 신호를 전송하는 단계;ID를 수신하는 단계;제 1 난수를 생성하는 단계;상기 제 1 난수를 전송하는 단계;제 1 정보를 수신하는 단계;상기 ID 및 미리 저장된 정보에 대해 소정의 함수를 적용함으로써 제 2 정보를 생성하는 단계;상기 제 2 정보를 사용하여 상기 제 1 정보를 해독하고 상기 제 1 정보 내에 포함된 제 2 난수를 복원하는 단계;상기 제 1 난수와 상기 제 2 난수를 비교하는 단계; 및비교 출력이 소정의 결과를 나타낼 때만 제 2 암호문을 생성하는 단계를 구비하는, 기록 매체.
- 기록 매체로서, 다른 장치로부터 수신된 정보와 자체 키를 사용하여 상기 다른 장치로부터 수신된 데이터를 해독하기 위한 데이터 수신 방법을 규정하는 프로그램을 저장하기 위한, 상기 기록 매체에 있어서, 상기 방법은,인증 요구 신호를 전송하는 단계;ID 요구 신호를 수신하는 단계;ID를 전송하는 단계;암호문을 수신하는 단계; 및수신된 암호문을 해독하는 단계를 구비하는, 기록 매체.
- 기록 매체로서, 다른 장치로부터 수신된 정보와 자체 키를 사용하여 상기 다른 장치로부터 수신된 데이터를 해독하기 위한 데이터 수신 방법을 규정하는 프로그램을 저장하기 위한, 상기 기록 매체에 있어서, 상기 방법은,난수를 생성하는 단계;상기 난수를 전송하는 단계;ID 요구 신호를 수신하는 단계;ID를 전송하는 단계;암호문을 수신하는 단계; 및상기 생성된 난수와 상기 수신된 암호문 내에 포함된 난수를 비교하고, 비교 결과가 소정의 조건을 충족시킬 때만 해독된 출력을 생성하는 단계를 구비하는, 기록 매체.
- 기록 매체로서, 다른 장치로부터 수신된 정보와 자체 키를 사용하여 상기 다른 장치로부터 수신된 데이터를 해독하기 위한 데이터 수신 방법을 규정하는 프로그램을 저장하기 위한, 상기 기록 매체에 있어서, 상기 방법은,ID 요구 신호를 수신하는 단계;ID를 전송하는 단계;암호문을 수신하는 단계;상기 수신된 암호문 내에 포함된 시간 정보의 유효성을 평가하고, 비교 결과가 소정의 조건을 충족시킬 때만 해독된 출력을 생성하는 단계를 구비하는, 기록 매체.
- 기록 매체로서, 다른 장치로부터 수신된 정보와 자체 키를 사용하여 상기 다른 장치로부터 수신된 데이터를 해독하기 위한 데이터 수신 방법을 규정하는 프로그램을 저장하기 위한, 상기 기록 매체에 있어서, 상기 방법은,ID 요구 신호를 수신하는 단계;ID를 전송하는 단계;제 1 암호문을 수신하는 단계;제 2 난수를 생성하는 단계;상기 수신된 제 1 암호문 내에 포함된 제 1 난수 및 상기 생성된 제 2 난수로부터 제 2 암호문을 생성하는 단계;상기 제 2 암호문을 전송하는 단계;제 3 암호문을 수신하는 단계; 및상기 생성된 제 2 난수 및 상기 수신된 제 3 암호문 내에 포함된 제 3 난수를 평가하고, 평가 결과가 소정의 조건을 충족시킬 때만 해독된 출력을 생성하는 단계를 구비하는, 기록 매체.
- 기록 매체로서, 다른 장치로부터 수신된 정보와 자체 키를 사용하여 상기 다른 장치로부터 수신된 데이터를 해독하기 위한 데이터 수신 방법을 규정하는 프로그램을 저장하기 위한, 상기 기록 매체에 있어서, 상기 방법은,ID 요구 신호를 수신하는 단계;ID를 전송하는 단계;제 1 난수를 수신하는 단계;제 2 난수를 생성하는 단계;상기 생성된 제 2 난수 및 상기 수신된 제 1 난수로부터 제 1 암호문을 생성하는 단계;상기 제 1 암호문을 전송하는 단계;제 2 암호문을 수신하는 단계;및상기 생성된 제 2 난수 및 상기 수신된 제 2 암호문 내에 포함된 제 3 난수를 평가하고, 평가 결과가 소정의 조건을 충족시킬 때만 해독된 출력을 생성하는 단계를 구비하는, 기록 매체.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10610497 | 1997-04-23 | ||
JP97-106104 | 1997-04-23 | ||
JP14369997 | 1997-06-02 | ||
JP97-143699 | 1997-06-02 | ||
JP21089997A JP3864401B2 (ja) | 1997-04-23 | 1997-08-05 | 認証システム、電子機器、認証方法、および記録媒体 |
JP97-210899 | 1997-08-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980081632A KR19980081632A (ko) | 1998-11-25 |
KR100495187B1 true KR100495187B1 (ko) | 2005-11-23 |
Family
ID=27310657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-1998-0014432A KR100495187B1 (ko) | 1997-04-23 | 1998-04-23 | 데이터송신장치및송신방법,데이터수신장치및수신방법,기록매체 |
Country Status (7)
Country | Link |
---|---|
US (3) | US6697945B2 (ko) |
EP (1) | EP0874300B1 (ko) |
JP (1) | JP3864401B2 (ko) |
KR (1) | KR100495187B1 (ko) |
CN (1) | CN1182475C (ko) |
DE (1) | DE69833608T2 (ko) |
MY (1) | MY121311A (ko) |
Families Citing this family (128)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1145507A (ja) * | 1997-07-24 | 1999-02-16 | Toshiba Corp | 情報再生装置、認識装置、情報処理システム |
JP4123455B2 (ja) * | 1998-07-31 | 2008-07-23 | 日本ビクター株式会社 | 情報処理方法及び情報処理装置 |
JP2000236325A (ja) * | 1999-02-09 | 2000-08-29 | Lg Electronics Inc | デジタルデータファイルの暗号化装置及びその方法 |
IL128720A (en) * | 1999-02-25 | 2009-06-15 | Cidway Technologies Ltd | Method for confirming actions performed over the phone |
US6615192B1 (en) | 1999-03-12 | 2003-09-02 | Matsushita Electric Industrial Co., Ltd. | Contents copying system, copying method, computer-readable recording medium and disc drive copying contents but not a cipher key via a host computer |
US6367019B1 (en) * | 1999-03-26 | 2002-04-02 | Liquid Audio, Inc. | Copy security for portable music players |
US6816596B1 (en) * | 2000-01-14 | 2004-11-09 | Microsoft Corporation | Encrypting a digital object based on a key ID selected therefor |
US7103574B1 (en) | 1999-03-27 | 2006-09-05 | Microsoft Corporation | Enforcement architecture and method for digital rights management |
US6829708B1 (en) * | 1999-03-27 | 2004-12-07 | Microsoft Corporation | Specifying security for an element by assigning a scaled value representative of the relative security thereof |
US7136838B1 (en) | 1999-03-27 | 2006-11-14 | Microsoft Corporation | Digital license and method for obtaining/providing a digital license |
US6973444B1 (en) | 1999-03-27 | 2005-12-06 | Microsoft Corporation | Method for interdependently validating a digital content package and a corresponding digital license |
TW518497B (en) | 1999-03-30 | 2003-01-21 | Sony Corp | Information processing system |
WO2000062475A1 (fr) * | 1999-04-13 | 2000-10-19 | Sony Corporation | Systeme de traitement de donnees, procede de traitement de donnees et dispositif de traitement de donnees |
CN1246853C (zh) * | 1999-04-30 | 2006-03-22 | 汤姆森特许公司 | 多格式个人数字音频播放机 |
JP4362888B2 (ja) | 1999-05-18 | 2009-11-11 | ソニー株式会社 | 情報処理装置および方法、並びに記録媒体 |
JP3727001B2 (ja) * | 1999-05-31 | 2005-12-14 | 日本ビクター株式会社 | コンテンツ販売システムにおけるコピー管理方法、及びその方法を実行するプレーヤ |
US7073073B1 (en) * | 1999-07-06 | 2006-07-04 | Sony Corporation | Data providing system, device, and method |
JP2001023300A (ja) | 1999-07-09 | 2001-01-26 | Fujitsu Ltd | 記憶装置、記録媒体のアクセス制御装置および記録媒体のアクセス制御方法 |
JP2001236081A (ja) * | 1999-11-12 | 2001-08-31 | Sony Corp | 情報処理装置および方法、並びにプログラム格納媒体 |
JP2001160262A (ja) * | 1999-11-30 | 2001-06-12 | Pioneer Electronic Corp | 情報記録読取方法ならびに装置 |
DE69941335D1 (de) | 1999-12-02 | 2009-10-08 | Sony Deutschland Gmbh | Nachrichtenauthentisierung |
JP3759455B2 (ja) * | 1999-12-07 | 2006-03-22 | 三洋電機株式会社 | データ再生装置 |
AU2000269232A1 (en) | 2000-01-14 | 2001-07-24 | Microsoft Corporation | Specifying security for an element by assigning a scaled value representative ofthe relative security thereof |
US6772340B1 (en) * | 2000-01-14 | 2004-08-03 | Microsoft Corporation | Digital rights management system operating on computing device and having black box tied to computing device |
JP2001283320A (ja) | 2000-03-31 | 2001-10-12 | Sony Corp | 情報販売装置および方法、並びにプログラム格納媒体 |
JP4608749B2 (ja) * | 2000-07-24 | 2011-01-12 | ソニー株式会社 | データ処理装置、データ処理方法、およびライセンスシステム、並びにプログラム提供媒体 |
US20020025045A1 (en) * | 2000-07-26 | 2002-02-28 | Raike William Michael | Encryption processing for streaming media |
US7178169B1 (en) * | 2000-09-01 | 2007-02-13 | Zoran Corporation | Method and apparatus for securing transfer of and access to digital content |
US7111175B2 (en) * | 2000-12-28 | 2006-09-19 | Intel Corporation | Method and apparatus for verifying the integrity of a media key block |
US7039803B2 (en) * | 2001-01-26 | 2006-05-02 | International Business Machines Corporation | Method for broadcast encryption and key revocation of stateless receivers |
US9520993B2 (en) * | 2001-01-26 | 2016-12-13 | International Business Machines Corporation | Renewable traitor tracing |
US6662284B2 (en) * | 2001-02-20 | 2003-12-09 | Hewlett-Packard Development Company, L.C. | Computer apparatus, method and memory including license key |
JP4545994B2 (ja) * | 2001-07-02 | 2010-09-15 | 三洋電機株式会社 | データ再生装置それに用いるデータ再生回路、およびデータ記録装置 |
JPWO2003013054A1 (ja) * | 2001-07-17 | 2004-11-25 | シャープ株式会社 | 処理に伴い暗号データの改ざん検出用データを生成する装置及び方法 |
KR20040028638A (ko) * | 2001-07-30 | 2004-04-03 | 소니 가부시끼 가이샤 | 무선 통신 시스템, 무선 통신 제어 장치 및 무선 통신제어 방법, 기억 매체, 및 컴퓨터 프로그램 |
JP2003050745A (ja) * | 2001-08-07 | 2003-02-21 | Sony Corp | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
JP3707407B2 (ja) * | 2001-08-28 | 2005-10-19 | セイコーエプソン株式会社 | パスワードを投写するプロジェクタ |
DE10164133A1 (de) * | 2001-12-30 | 2003-07-17 | Juergen K Lang | System und Verfahren zur Wiedergabe kopier- und nutzungsgeschützter Ton- und Bildmedien |
DE10164135A1 (de) * | 2001-12-30 | 2003-07-17 | Juergen K Lang | System und Verfahren zur kopier- und nutzungsgeschützten Ver- und Entschlüsselung, Übertragung und Speicherung elektronischer Ton- und Bildmedien |
DE10164131A1 (de) * | 2001-12-30 | 2003-07-17 | Juergen K Lang | Kryptographisches Modul zur Speicherung und Wiedergabe kopier-und nutzungsgeschützter elektronischer Ton- und Bildmedien |
DE10164134A1 (de) * | 2001-12-30 | 2003-07-17 | Juergen K Lang | System und Verfahren zur Erstellung und Verbreitung kopier- und nutzungsgeschützter elektronischer Ton- und Bildmedien und deren Dateninhalte |
US7293071B2 (en) * | 2002-05-27 | 2007-11-06 | Seiko Epson Corporation | Image data transmission system, process and program, image data output device and image display device |
US7530116B2 (en) | 2002-06-06 | 2009-05-05 | Macrovision Corporation | Controlling the downloading and recording of digital data |
JP2004087062A (ja) * | 2002-06-25 | 2004-03-18 | Sony Corp | データ記録媒体、識別情報記録方法、識別情報記録装置、識別情報再生方法、識別情報再生装置、情報サービス方法、情報サービスシステム |
US7885896B2 (en) | 2002-07-09 | 2011-02-08 | Avaya Inc. | Method for authorizing a substitute software license server |
US8041642B2 (en) | 2002-07-10 | 2011-10-18 | Avaya Inc. | Predictive software license balancing |
US7770212B2 (en) * | 2002-08-15 | 2010-08-03 | Activcard | System and method for privilege delegation and control |
US7698225B2 (en) * | 2002-08-30 | 2010-04-13 | Avaya Inc. | License modes in call processing |
US7966520B2 (en) * | 2002-08-30 | 2011-06-21 | Avaya Inc. | Software licensing for spare processors |
US7707116B2 (en) * | 2002-08-30 | 2010-04-27 | Avaya Inc. | Flexible license file feature controls |
US7681245B2 (en) * | 2002-08-30 | 2010-03-16 | Avaya Inc. | Remote feature activator feature extraction |
US7395435B2 (en) * | 2002-09-20 | 2008-07-01 | Atmel Corporation | Secure memory device for smart cards |
DE60320908D1 (de) | 2002-09-25 | 2008-06-26 | D & M Holdings Inc | System und Verfahren zur Sendung und zum Empfang von codierten Daten |
JP4214454B2 (ja) | 2002-12-13 | 2009-01-28 | ソニー株式会社 | 映像信号処理システム、映像信号処理装置および方法、記録媒体、並びにプログラム |
US7890997B2 (en) * | 2002-12-26 | 2011-02-15 | Avaya Inc. | Remote feature activation authentication file system |
JP2004220317A (ja) * | 2003-01-15 | 2004-08-05 | Sony Corp | 相互認証方法、プログラム、記録媒体、信号処理システム、再生装置および情報処理装置 |
US7272231B2 (en) * | 2003-01-27 | 2007-09-18 | International Business Machines Corporation | Encrypting data for access by multiple users |
US7370212B2 (en) | 2003-02-25 | 2008-05-06 | Microsoft Corporation | Issuing a publisher use license off-line in a digital rights management (DRM) system |
US7260557B2 (en) * | 2003-02-27 | 2007-08-21 | Avaya Technology Corp. | Method and apparatus for license distribution |
JP4300832B2 (ja) * | 2003-03-14 | 2009-07-22 | ソニー株式会社 | データ処理装置、その方法およびそのプログラム |
JP2004287160A (ja) | 2003-03-24 | 2004-10-14 | Seiko Epson Corp | 画像表示システム、プロジェクタ、画像表示方法、プロジェクタ制御方法、画像表示プログラムおよびプロジェクタ制御プログラム |
US7412060B2 (en) * | 2003-03-28 | 2008-08-12 | D&M Holdings Inc. | Contents data transmission/reception system, contents data transmitter, contents data receiver and contents data transmission/reception method |
DE10330191A1 (de) * | 2003-07-03 | 2005-02-10 | Siemens Ag | System bzw. Verfahren zur Freigabe freigabebedürftigter Softwareprogramme |
WO2005010770A1 (ja) | 2003-07-28 | 2005-02-03 | Sony Corporation | 情報処理装置および方法、記録媒体、並びにプログラム |
KR100565058B1 (ko) * | 2003-08-22 | 2006-03-30 | 삼성전자주식회사 | 최적의 디스플레이 환경을 설정하는 dvd 플레이어 및그 동작 방법 |
CA2438357A1 (en) * | 2003-08-26 | 2005-02-26 | Ibm Canada Limited - Ibm Canada Limitee | System and method for secure remote access |
DE602004009009T2 (de) * | 2003-09-05 | 2008-06-19 | D&M Holdings, Inc., Sagamihara | Sende- und Empfangssystem für Inhaltsdaten, Sender, Empfänger und Verfahren |
KR20050075877A (ko) * | 2004-01-16 | 2005-07-25 | 삼성전자주식회사 | 데이터 재전송 장치 및 방법 |
JP2005208823A (ja) * | 2004-01-21 | 2005-08-04 | Seiko Epson Corp | プロジェクタのネットワークシステム |
KR100962860B1 (ko) * | 2004-02-03 | 2010-06-09 | 인터내셔널 비지네스 머신즈 코포레이션 | 소프트웨어 라이센스 관리 시스템, 소프트웨어 제어기, 라이센스 관리 서버, 소프트웨어 제품 사용의 제어 방법 및 라이센스 관리 서버의 작동 방법 |
US20050177714A1 (en) * | 2004-02-10 | 2005-08-11 | Samsung Electronics Co., Ltd. | Authentication method of data processing apparatus with recording device and apparatus for the same |
FI120174B (fi) * | 2004-03-19 | 2009-07-15 | Nokia Corp | Tietojen tallentaminen laitteen yhteydessä |
US7216223B2 (en) * | 2004-04-30 | 2007-05-08 | Hewlett-Packard Development Company, L.P. | Configuring multi-thread status |
US7557941B2 (en) * | 2004-05-27 | 2009-07-07 | Silverbrook Research Pty Ltd | Use of variant and base keys with three or more entities |
US8312267B2 (en) | 2004-07-20 | 2012-11-13 | Time Warner Cable Inc. | Technique for securely communicating programming content |
US8266429B2 (en) | 2004-07-20 | 2012-09-11 | Time Warner Cable, Inc. | Technique for securely communicating and storing programming material in a trusted domain |
US7707405B1 (en) | 2004-09-21 | 2010-04-27 | Avaya Inc. | Secure installation activation |
US7747851B1 (en) * | 2004-09-30 | 2010-06-29 | Avaya Inc. | Certificate distribution via license files |
US8229858B1 (en) | 2004-09-30 | 2012-07-24 | Avaya Inc. | Generation of enterprise-wide licenses in a customer environment |
US8347078B2 (en) | 2004-10-18 | 2013-01-01 | Microsoft Corporation | Device certificate individualization |
US8336085B2 (en) | 2004-11-15 | 2012-12-18 | Microsoft Corporation | Tuning product policy using observed evidence of customer behavior |
US7869602B1 (en) | 2005-03-10 | 2011-01-11 | Sprint Spectrum L.P. | User-based digital rights management |
US8438645B2 (en) | 2005-04-27 | 2013-05-07 | Microsoft Corporation | Secure clock with grace periods |
US8725646B2 (en) | 2005-04-15 | 2014-05-13 | Microsoft Corporation | Output protection levels |
US9363481B2 (en) | 2005-04-22 | 2016-06-07 | Microsoft Technology Licensing, Llc | Protected media pipeline |
US9436804B2 (en) | 2005-04-22 | 2016-09-06 | Microsoft Technology Licensing, Llc | Establishing a unique session key using a hardware functionality scan |
US20060265758A1 (en) | 2005-05-20 | 2006-11-23 | Microsoft Corporation | Extensible media rights |
JP2007060066A (ja) * | 2005-08-23 | 2007-03-08 | Toshiba Corp | コンテンツデータ配信方法、並びにコンテンツデータ配信システム及びこれに用いられる携帯端末。 |
US7814023B1 (en) | 2005-09-08 | 2010-10-12 | Avaya Inc. | Secure download manager |
US20070107045A1 (en) * | 2005-09-13 | 2007-05-10 | Uniloc/Veriloc, Llc | Security system for transactions |
US8184811B1 (en) * | 2005-10-12 | 2012-05-22 | Sprint Spectrum L.P. | Mobile telephony content protection |
US20070162740A1 (en) * | 2006-01-12 | 2007-07-12 | Relan Sandeep K | Systems, methods, and apparatus for packet level security |
IL174494A0 (en) * | 2006-03-22 | 2007-07-04 | Nds Ltd | Period keys |
JP5040341B2 (ja) | 2006-04-04 | 2012-10-03 | セイコーエプソン株式会社 | プロジェクタシステム |
JP2007288254A (ja) * | 2006-04-12 | 2007-11-01 | Sony Corp | 通信システム、通信装置および方法、並びにプログラム |
US7751559B2 (en) * | 2006-09-07 | 2010-07-06 | International Business Machines Corporation | Secure transmission of cryptographic key |
US8520850B2 (en) | 2006-10-20 | 2013-08-27 | Time Warner Cable Enterprises Llc | Downloadable security and protection methods and apparatus |
US8732854B2 (en) | 2006-11-01 | 2014-05-20 | Time Warner Cable Enterprises Llc | Methods and apparatus for premises content distribution |
US8621540B2 (en) | 2007-01-24 | 2013-12-31 | Time Warner Cable Enterprises Llc | Apparatus and methods for provisioning in a download-enabled system |
JP4327865B2 (ja) * | 2007-03-29 | 2009-09-09 | 株式会社東芝 | コンテンツ処理装置、暗号処理方法及びプログラム |
JP5351158B2 (ja) * | 2007-07-23 | 2013-11-27 | インタートラスト テクノロジーズ コーポレイション | テザード装置システム及び方法 |
JP4734391B2 (ja) * | 2008-09-22 | 2011-07-27 | 株式会社東芝 | コンテンツ管理方法、コンテンツ管理装置、記録媒体、及び相互認証方法 |
US9866609B2 (en) | 2009-06-08 | 2018-01-09 | Time Warner Cable Enterprises Llc | Methods and apparatus for premises content distribution |
US9602864B2 (en) | 2009-06-08 | 2017-03-21 | Time Warner Cable Enterprises Llc | Media bridge apparatus and methods |
KR101683286B1 (ko) * | 2009-11-25 | 2016-12-06 | 삼성전자주식회사 | 이동통신망을 이용한 싱크 인증 시스템 및 방법 |
JP2011243093A (ja) * | 2010-05-20 | 2011-12-01 | Canon Inc | 情報処理装置、ユーザ認証方法、及びコンピュータプログラム |
US9906838B2 (en) | 2010-07-12 | 2018-02-27 | Time Warner Cable Enterprises Llc | Apparatus and methods for content delivery and message exchange across multiple content delivery networks |
JP2013031151A (ja) | 2011-06-20 | 2013-02-07 | Renesas Electronics Corp | 暗号通信システムおよび暗号通信方法 |
US8792637B2 (en) * | 2011-11-22 | 2014-07-29 | Combined Conditional Access Development & Support, LLC | Downloading of data to secure devices |
JP5643741B2 (ja) * | 2011-12-02 | 2014-12-17 | 株式会社東芝 | 認証装置、認証方法および認証プログラム |
US9565472B2 (en) | 2012-12-10 | 2017-02-07 | Time Warner Cable Enterprises Llc | Apparatus and methods for content transfer protection |
US20140282786A1 (en) | 2013-03-12 | 2014-09-18 | Time Warner Cable Enterprises Llc | Methods and apparatus for providing and uploading content to personalized network storage |
US9066153B2 (en) | 2013-03-15 | 2015-06-23 | Time Warner Cable Enterprises Llc | Apparatus and methods for multicast delivery of content in a content delivery network |
US10368255B2 (en) | 2017-07-25 | 2019-07-30 | Time Warner Cable Enterprises Llc | Methods and apparatus for client-based dynamic control of connections to co-existing radio access networks |
US9313568B2 (en) | 2013-07-23 | 2016-04-12 | Chicago Custom Acoustics, Inc. | Custom earphone with dome in the canal |
US9621940B2 (en) | 2014-05-29 | 2017-04-11 | Time Warner Cable Enterprises Llc | Apparatus and methods for recording, accessing, and delivering packetized content |
US11540148B2 (en) | 2014-06-11 | 2022-12-27 | Time Warner Cable Enterprises Llc | Methods and apparatus for access point location |
US9935833B2 (en) | 2014-11-05 | 2018-04-03 | Time Warner Cable Enterprises Llc | Methods and apparatus for determining an optimized wireless interface installation configuration |
CN104361733B (zh) * | 2014-11-26 | 2017-10-27 | 中国科学院电子学研究所 | 一种基于交叉编码的动态验证无线遥控的方法 |
US9986578B2 (en) | 2015-12-04 | 2018-05-29 | Time Warner Cable Enterprises Llc | Apparatus and methods for selective data network access |
US9918345B2 (en) | 2016-01-20 | 2018-03-13 | Time Warner Cable Enterprises Llc | Apparatus and method for wireless network services in moving vehicles |
US10492034B2 (en) | 2016-03-07 | 2019-11-26 | Time Warner Cable Enterprises Llc | Apparatus and methods for dynamic open-access networks |
US10164858B2 (en) | 2016-06-15 | 2018-12-25 | Time Warner Cable Enterprises Llc | Apparatus and methods for monitoring and diagnosing a wireless network |
JP6473876B2 (ja) * | 2016-12-01 | 2019-02-27 | 株式会社ユートピア企画 | セキュアネットワーク通信方法 |
CN109314699A (zh) | 2017-04-11 | 2019-02-05 | 华为技术有限公司 | 网络认证方法、设备和系统 |
US10645547B2 (en) | 2017-06-02 | 2020-05-05 | Charter Communications Operating, Llc | Apparatus and methods for providing wireless service in a venue |
US10638361B2 (en) | 2017-06-06 | 2020-04-28 | Charter Communications Operating, Llc | Methods and apparatus for dynamic control of connections to co-existing radio access networks |
KR102305858B1 (ko) * | 2017-09-26 | 2021-09-27 | 삼성에스디에스 주식회사 | 키 정보 프로비저닝 방법 및 이를 이용한 장치 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE426128B (sv) | 1981-04-08 | 1982-12-06 | Philips Svenska Ab | Metod vid overforing av datameddelanden mellan tva stationer, samt overforingsanleggning for utforande av metoden |
FR2530053B1 (fr) * | 1982-07-08 | 1986-04-25 | Bull Sa | Procede pour certifier la provenance d'au moins une information enregistree dans une memoire d'un premier dispositif electronique et transmise a un deuxieme dispositif electronique, et systeme pour la mise en oeuvre d'un tel procede |
US4799061A (en) * | 1985-11-18 | 1989-01-17 | International Business Machines Corporation | Secure component authentication system |
GB8704882D0 (en) * | 1987-03-03 | 1987-04-08 | Hewlett Packard Co | Secure messaging systems |
US5117458A (en) | 1989-11-01 | 1992-05-26 | Hitachi, Ltd. | Secret information service system and method |
DE69127560T2 (de) * | 1990-01-30 | 1998-04-23 | Toshiba Kawasaki Kk | Gegenseitiges Erkennungssystem |
US5148479A (en) * | 1991-03-20 | 1992-09-15 | International Business Machines Corp. | Authentication protocols in communication networks |
US5390252A (en) * | 1992-12-28 | 1995-02-14 | Nippon Telegraph And Telephone Corporation | Authentication method and communication terminal and communication processing unit using the method |
WO1995016990A1 (fr) * | 1993-12-18 | 1995-06-22 | Sony Corporation | Dispositif de reproduction de donnees et support d'enregistrement de donnees |
US5535276A (en) * | 1994-11-09 | 1996-07-09 | Bell Atlantic Network Services, Inc. | Yaksha, an improved system and method for securing communications using split private key asymmetric cryptography |
GB9507885D0 (en) * | 1995-04-18 | 1995-05-31 | Hewlett Packard Co | Methods and apparatus for authenticating an originator of a message |
US6785813B1 (en) * | 1997-11-07 | 2004-08-31 | Certicom Corp. | Key agreement and transport protocol with implicit signatures |
US5883958A (en) * | 1996-04-01 | 1999-03-16 | Sony Corporation | Method and device for data decryption, a method and device for device identification, a recording medium, a method of disk production, and a method and apparatus for disk recording |
US6775382B1 (en) * | 1997-06-30 | 2004-08-10 | Sun Microsystems, Inc. | Method and apparatus for recovering encryption session keys |
US6151676A (en) * | 1997-12-24 | 2000-11-21 | Philips Electronics North America Corporation | Administration and utilization of secret fresh random numbers in a networked environment |
US6445797B1 (en) * | 1998-12-16 | 2002-09-03 | Secure Choice Llc | Method and system for performing secure electronic digital streaming |
-
1997
- 1997-08-05 JP JP21089997A patent/JP3864401B2/ja not_active Expired - Lifetime
-
1998
- 1998-04-14 US US09/059,812 patent/US6697945B2/en not_active Expired - Lifetime
- 1998-04-20 EP EP98303007A patent/EP0874300B1/en not_active Expired - Lifetime
- 1998-04-20 DE DE69833608T patent/DE69833608T2/de not_active Expired - Lifetime
- 1998-04-21 MY MYPI98001787A patent/MY121311A/en unknown
- 1998-04-23 KR KR10-1998-0014432A patent/KR100495187B1/ko not_active IP Right Cessation
- 1998-04-23 CN CNB981147208A patent/CN1182475C/zh not_active Expired - Fee Related
-
2002
- 2002-07-12 US US10/195,022 patent/US7065214B2/en not_active Expired - Lifetime
- 2002-07-12 US US10/194,869 patent/US6934463B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1182475C (zh) | 2004-12-29 |
US6697945B2 (en) | 2004-02-24 |
US20020194475A1 (en) | 2002-12-19 |
EP0874300A2 (en) | 1998-10-28 |
US7065214B2 (en) | 2006-06-20 |
KR19980081632A (ko) | 1998-11-25 |
EP0874300B1 (en) | 2006-03-01 |
CN1202659A (zh) | 1998-12-23 |
DE69833608D1 (de) | 2006-04-27 |
US20020083319A1 (en) | 2002-06-27 |
MY121311A (en) | 2006-01-28 |
DE69833608T2 (de) | 2007-02-15 |
EP0874300A3 (en) | 1999-10-13 |
US20020199105A1 (en) | 2002-12-26 |
JPH1153264A (ja) | 1999-02-26 |
JP3864401B2 (ja) | 2006-12-27 |
US6934463B2 (en) | 2005-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100495187B1 (ko) | 데이터송신장치및송신방법,데이터수신장치및수신방법,기록매체 | |
KR100495189B1 (ko) | 데이터전송장치및방법,암호화장치및방법,데이터수신장치및방법,데이터해독장치및방법,및프로그램기록을위한기록매체 | |
EP1742137B1 (en) | Enciphering/deciphering device using a cryptographic key changed at a predetermined timing | |
US5949877A (en) | Content protection for transmission systems | |
KR20000076003A (ko) | 정보 처리 시스템, 정보 처리 장치 및 정보 처리 방법 | |
JP4748109B2 (ja) | 暗号化装置および方法、復号装置および方法、情報処理装置および方法、並びに情報再生装置 | |
JP2007043738A (ja) | 電子機器 |
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: 20130524 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20140523 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |