KR100715407B1 - 기밀 데이터의 입출력 처리에 관한 이력 정보를 중복하지않고 복수 저장할 수 있는 데이터 기억 장치 - Google Patents

기밀 데이터의 입출력 처리에 관한 이력 정보를 중복하지않고 복수 저장할 수 있는 데이터 기억 장치 Download PDF

Info

Publication number
KR100715407B1
KR100715407B1 KR1020057001293A KR20057001293A KR100715407B1 KR 100715407 B1 KR100715407 B1 KR 100715407B1 KR 1020057001293 A KR1020057001293 A KR 1020057001293A KR 20057001293 A KR20057001293 A KR 20057001293A KR 100715407 B1 KR100715407 B1 KR 100715407B1
Authority
KR
South Korea
Prior art keywords
license
data
history information
log
stored
Prior art date
Application number
KR1020057001293A
Other languages
English (en)
Other versions
KR20050033615A (ko
Inventor
요시히로 호리
겐이찌로 다다
다쯔야 히라이
마사후미 쯔루
다까유끼 하세베
Original Assignee
산요덴키가부시키가이샤
파이오니아 가부시키가이샤
후지쯔 가부시끼가이샤
가부시키가이샤 히타치세이사쿠쇼
피닉스 테크놀로지즈 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 산요덴키가부시키가이샤, 파이오니아 가부시키가이샤, 후지쯔 가부시끼가이샤, 가부시키가이샤 히타치세이사쿠쇼, 피닉스 테크놀로지즈 가부시키가이샤 filed Critical 산요덴키가부시키가이샤
Publication of KR20050033615A publication Critical patent/KR20050033615A/ko
Application granted granted Critical
Publication of KR100715407B1 publication Critical patent/KR100715407B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

데이터 기억 장치는 로그 메모리(253)를 포함하는 시큐어 데이터 기억부(250)를 구비한다. 로그 메모리(253)는 복수의 뱅크(2531~253N)로 이루어지고, 복수의 뱅크(2531~253N)에 링 형상으로 이력 정보를 저장한다. 복수의 뱅크(2531~253N)의 각각은 어드레스(0~N-1)에 의해 지정된다. 뱅크(2531~253N)의 각각에 저장되는 이력 정보는 관리 번호 영역(2541)과, 라이센스 ID(LID) 영역(2542)과, Ks2x 영역(2543)과, ST1 영역(2544)과, ST2 영역(2545)과, KPcmy 영역(2546)과, LBA 영역(2547)을 포함한다.
암호화 콘텐츠 데이터, 이력 정보, 최고 영역, 최신 영역, 콘텐츠키, 데이터 기억 장치, 라이센스 제공 장치

Description

기밀 데이터의 입출력 처리에 관한 이력 정보를 중복하지 않고 복수 저장할 수 있는 데이터 기억 장치{DATA STORAGE DEVICE CAPABLE OF STORING MULTIPLE SETS OF HISTORY INFORMATION ON INPUT/OUTPUT PROCESSING OF SECURITY DATA WITHOUT DUPLICATION}
본 발명은, 기밀 데이터의 판독 처리 및 기입 처리를 안전하게 제공하는 데이터 기억 장치에 관한 것으로, 특히 저작권 보호를 가능하게 하는 데이터 배신 시스템을 이용하여 취득된 암호화 데이터를 복호 및 재생하기 위한 라이센스를 기억하고, 멀티 액세스가 가능한 데이터 기억 장치에서 카피된 정보에 대한 저작권 보호를 가능하게 하는 데이터 기억 장치에 관한 것이다.
최근에 인터넷 등의 디지털 정보 통신망 등의 진보에 따라, 휴대 전화기 등을 이용한 개인용 단말기에 의해, 각 사용자가 용이하게 네트워크 정보에 액세스하는 것이 가능하게 되었다.
이와 같은 디지털 정보 통신망에서는, 디지털 신호에 의해 정보가 전송된다. 따라서 예를 들면 전술한 바와 같은 정보 통신망에서 전송된 음악이나 영상 데이터를 각 개인 사용자가 카피한 경우라도, 그와 같은 카피에 의한 음질이나 화질의 열화를 거의 발생시키지 않고, 데이터의 카피를 행하는 것이 가능하다.
따라서 이와 같은 디지털 정보 통신망 상에서 음악 데이터나 화상 데이터 등의 저작자의 권리가 존재하는 콘텐츠가 전달되는 경우, 적절한 저작권 보호를 위한 방책이 취해져 있지 않으면, 현저하게 저작권자의 권리가 침해될 우려가 있다.
한편, 저작권 보호의 목적을 최우선하여, 급속하게 확대되는 디지털 정보 통신망을 통해 콘텐츠 데이터의 배신을 행할 수 없다고 하면, 기본적으로는 저작물 데이터의 복제시에 일정한 저작권료를 징수하는 것이 가능한 저작권자의 입장에서도 오히려 불이익으로 된다.
그러나 음악 데이터나 화상 데이터 등의 콘텐츠 데이터를 디지털 정보 통신망을 통하여 공중에 배신하는 것은, 그 자체가 저작권자의 공중 송신권에 의한 제한을 받는 행위이기 때문에, 저작권 보호를 위한 충분한 방책이 강구될 필요가 있다.
이 경우, 디지털 정보 통신망을 통하여 공중에 송신되는 저작물인 음악 데이터나 화상 데이터 등의 콘텐츠 데이터에 대하여, 한번 수신된 콘텐츠 데이터가 더욱 멋대로 복제되는 것을 방지하는 것이 필요하게 된다.
이에 따라, 콘텐츠 데이터를 암호화한 암호화 콘텐츠 데이터를 보유하는 배신 서버가, 휴대 전화기 등의 단말 장치에 장착된 메모리 카드에 대하여 단말 장치를 통해 암호화 콘텐츠 데이터를 배신하는 데이터 배신 시스템이 제안되어 있다. 이 데이터 배신 시스템에서는, 미리 인증국에서 인증된 메모리 카드의 공개 암호 키와 그 증명서를 암호화 콘텐츠 데이터의 배신 요구시에 배신 서버에 송신하고, 배신 서버가 인증된 증명서를 수신한 것을 확인한 후에 메모리 카드에 대하여 암호 화 콘텐츠 데이터와, 암호화 콘텐츠 데이터를 복호하기 위한 라이센스를 송신한다. 라이센스는 암호화 콘텐츠 데이터를 복호하기 위한 복호키("콘텐츠키"라 한다. 이하 동일함.), 라이센스를 식별하기 위한 라이센스 ID 및 라이센스의 이용을 제한하기 위한 제어 정보 등을 포함하고 있다. 배신 서버로부터 메모리 카드에 대하여 라이센스를 송신할 때에는, 배신 서버 및 메모리 카드는 각각이 세션키를 생성하고, 배신 서버와 메모리 카드의 사이에서 키의 교환을 행함으로써, 암호 통신로를 구축하고, 배신 서버는 메모리 카드에 대하여 구축한 암호 통신로를 통해 라이센스를 송신한다. 그 때, 메모리 카드는 수신한 암호화 콘텐츠 데이터와 라이센스를 내부의 메모리에 기억한다.
메모리 카드에 기억한 암호화 콘텐츠 데이터를 재생하는 경우에는, 메모리 카드를 휴대 전화기에 장착한다. 최종적으로, 휴대 전화기는 통상의 통화 기능 이외에 메모리 카드로부터 암호화 콘텐츠 데이터와 콘텐츠키를 판독하여 암호화 콘텐츠 데이터를 복호하고, 또한 재생하여 외부에 출력하기 위한 전용 회로도 갖는다. 라이센스 키의 판독시에는, 메모리 카드와 전용 회로의 사이에 암호 통신로를 구축하고, 암호 통신로를 통해 메모리 카드로부터 전용 회로에 송신된다.
또한 메모리 카드는 다른 메모리 카드와의 사이에서 라이센스의 이동 또는 복제를 행하는 기능을 구비하고 있다. 이 경우, 배신 서버로부터 라이센스의 송신과 마찬가지로, 송신원의 메모리 카드와 송신처의 메모리 카드의 쌍방의 기능에 의해 암호 통신로를 구축한 후에, 라이센스가 송신원의 메모리 카드로부터 송신처의 메모리 카드에 대하여 송신된다. 라이센스를 이동할지 복제할지는, 라이센스에 포 함되는 제어 정보에 따라서 결정된다.
또한 송수신 중의 뜻하지 않은 중단에 의해 라이센스가 소실된 경우에, 그 처리를 재개할 수 있고, 또한 라이센스의 중복 송신을 방지하기 위해 라이센스의 입출력에 관한 최근의 이력 정보를 기록하고, 필요에 따라 출력하는 기능을 메모리 카드는 구비하고 있다. 송신원인 배신 서버 혹은 메모리 카드는 송신처의 메모리 카드로부터 이력 정보를 취득하여, 이 이력 정보에 따라서 라이센스의 송수신의 재개를 판단한다. 이력 정보는 라이센스 ID와 송수신을 나타내는 스테이터스 정보를 포함하고 있다.
이와 같이, 휴대 전화기의 사용자는 휴대 전화망을 이용하여 암호화 콘텐츠 데이터와 라이센스를 배신 서버로부터 수신하고, 메모리 카드에 기억한 후에, 메모리 카드에 기억된 암호화 콘텐츠 데이터를 재생하거나, 다른 메모리 카드에 옮기거나 할 수 있다. 또한 저작권자의 권리를 보호할 수 있다.
그러나 종래의 메모리 카드에서는, 최근의 이력 정보를 보유할 뿐이며, 중단 후, 다른 라이센스에 대한 송수신을 행한 경우에 앞의 중단에 대한 이력 정보가 없어져 버린다. 이와 같은 경우, 복수의 이력 정보를 저장함으로써, 사용자의 편리성을 개선하는 것이 가능하다.
또한 기억 소자에 대한 액세스의 고속화나, 기억 소자의 대용량화에 수반하여, 복수의 라이센스의 송수신을 병행하여 행하는 요구가 발생하는 일이 향후 예상된다. 그 경우, 적어도 병행하여 행해지는 처리에 관한 이력 정보를 저장할 수 있도록 하는 필요성이 생긴다.
이와 같이, 복수의 이력 정보를 저장할 수 있도록 하는 경우에, 라이센스의 수신 후에, 해당 라이센스를 다른 메모리 카드에 대하여 옮겼다고 한다면, 동일한 라이센스 ID에 대하여 서로 다른 스테이터스를 갖는 이력 정보가 저장된다고 하는 문제가 발생한다.
발명의 개시
이 때문에, 본 발명의 목적은, 라이센스에 대하여 저작권을 보호하고, 또한 라이센스의 송수신을 재개 가능하게 하기 위한 이력 정보를 중복하지 않고 복수 저장할 수 있는 데이터 기억 장치를 제공하는데 있다.
또, 본 발명은 콘텐츠 데이터에 대한 라이센스에 한정되는 것이 아니며, 비밀로 할 필요가 있는 기밀 데이터 일반에 확대될 수 있다.
따라서 본 발명에 따르면, 데이터 기억 장치는 일정한 수순에 따라서 기밀 데이터의 입출력을 행하고, 기밀 데이터를 기억하며, 또한 일정한 수순의 진행에 따라서 이력 정보를 저장 혹은 해당 이력 정보를 수시 갱신하는 데이터 기억 장치로서, 외부와 데이터의 입출력을 행하는 인터페이스와, 복수의 기밀 데이터를 저장하는 데이터 기억부와, 기밀 데이터의 입출력에 관한 복수의 이력 정보를 저장하는 로그 기억부와, 기밀 데이터의 입출력을 제어하는 제어부를 구비하며, 로그 기억부는 각각 1개의 이력 정보를 저장하는 2개 이상의 영역을 순환적으로 이용하는 링 버퍼로서 마련되어 있고, 로그 기억부에 기억되는 복수의 이력 정보의 각각은, 해당 이력 정보를 기억한 입출력 대상의 기밀 데이터를 식별하는 식별 정보를 포함하고, 제어부는 기밀 데이터의 입출력의 처리가 개시된 것에 수반하여 입출력의 대상 으로 된 기밀 데이터를 식별하는 식별 정보를 인터페이스를 통해 수취하고, 로그 기억부의 복수의 영역을 소정의 순서로 검색하여, 로그 기억부에 저장되어 있는 가장 오래된 이력 정보를 저장하는 영역을 최고(最古) 영역으로서 특정하고, 그 특정한 최고 영역에 수취한 식별 정보를 포함하는 기밀 데이터의 입출력 처리에 대한 이력 정보를 새로 저장한다.
바람직하게는, 이력 정보의 출력 요구에 대하여 이력 정보의 일부 또는 전부를 출력하는 이력 정보의 출력 처리에서, 제어부는 입출력의 대상으로 되는 기밀 데이터의 식별 정보를 인터페이스를 통해 수취하고, 로그 기억부의 복수의 영역을 소정의 순서로 검색하여, 최고 영역과, 수취한 식별 정보를 포함하는 가장 새로운 이력 정보를 저장하는 영역을 최신 영역으로서 특정하고, 최신 영역에 저장되어 있는 이력 정보의 일부 또는 전부를 인터페이스를 통해 출력한다.
바람직하게는, 이력 정보의 출력을 수반하는 상기 기밀 데이터의 입력 처리에서, 제어부는 입출력의 대상으로 되는 기밀 데이터의 식별 정보를 인터페이스를 통해 수취하고, 로그 기억부의 복수의 영역을 소정의 순서로 검색하여, 최고 영역과, 수취한 식별 정보를 포함하는 가장 새로운 이력 정보를 저장하는 최신 영역을 특정하고, 그 특정한 최신 영역에 저장되어 있는 이력 정보의 일부 또는 전부를 특정한 최고 영역에 복제함으로써 기밀 데이터의 입력 처리에 대한 새로운 이력 정보로서 저장하고, 특정된 최고 영역에 저장된 이력 정보의 일부 또는 전부를 인터페이스를 통해 출력한다.
바람직하게는, 다른 장치에 의해 일정한 수순의 진행에 의해 기록된 또 하나 의 이력 정보의 입력을 수반하는 기밀 데이터의 재출력 처리에서, 제어부는 입출력의 대상으로 되는 기밀 데이터의 식별 정보 및 또 하나의 이력 정보를 인터페이스를 통해 수취하고, 최고 영역 및 최신 영역을 특정하고, 그 특정한 최신 영역에 저장된 이력 정보와, 수취한 또 하나의 이력 정보에 기초하여, 기밀 데이터를 출력할지의 여부를 판정한다.
바람직하게는, 다른 장치에 의해 일정한 수순의 진행에 따라서 기록된 또 하나의 이력 정보의 입력을 수반하는 기밀 데이터의 출력 처리에서, 제어부는 입출력의 대상으로 되는 기밀 데이터의 식별 정보 및 또 하나의 이력 정보를 인터페이스를 통해 수취하고, 최고 영역 및 최신 영역을 특정하고, 그 특정한 최신 영역에 저장되어 있는 이력 정보의 일부 또는 전부를 특정한 최고 영역에 복제함으로써 기밀 데이터의 출력 처리에 대한 새로운 이력 정보로서 저장하고, 특정한 최고 영역에 저장된 이력 정보와, 수취한 또 하나의 이력 정보에 기초하여, 기밀 데이터를 출력할지의 여부를 판정한다.
바람직하게는, 최고 영역을 특정한 후, 제어부는 입출력 처리에서의 일정한 수순이 종료 혹은 중지될 때까지, 특정된 최고 영역에 저장된 이력 정보를 해당 수순의 진행에 따라서 수시 갱신한다.
바람직하게는, 복수의 이력 정보의 각각은, 로그 기억부에 기억된 순서를 식별하기 위한 관리 번호를 더 포함하고, 관리 번호는 로그 기억부에 연속해서 배치된 52개의 영역에 저장된 2개의 이력 정보에 포함되는 각각의 관리 번호에 기초하여, 오래된 이력 정보가 저장되는 최고 영역을 검출한다.
바람직하게는, 로그 기억부는 N(N은 2이상의 자연수)개의 영역을 순환적으로 이용하는 링 버퍼로 이루어지고, 관리 번호는 M(M은, N<M을 만족하는 자연수)의 잉여계로 이루어진다.
바람직하게는, 제어부는 로그 기억부에 연속해서 배치된 2개의 영역에 저장된 2개의 이력 정보에 포함되는 각각의 관리 번호를 취득하고, 그 취득한 2개의 관리 번호의 차에 기초하여, 2개의 해당 관리 번호를 포함하는 2개의 이력 정보가 연속해서 저장되었는지의 여부를 판정하고, 2개의 이력 정보가 불연속적으로 저장된 이력 정보일 때, 연속하는 2개의 영역 중, 후속 영역을 최고 영역으로서 검출한다.
따라서 본 발명에 따르면, 기밀 데이터를 보호하고, 또한 기밀 데이터의 입출력 처리에 관한 복수의 이력 정보를 중복하지 않고 저장하며, 출력 혹은 참조할 수 있다.
도 1은 데이터 배신 시스템을 개념적으로 설명하는 개략도이다.
도 2는 도 1에 도시하는 데이터 배신 시스템에서 송수신되는 데이터, 정보 등의 특성을 도시하는 도면이다.
도 3은 도 1에 도시하는 데이터 배신 시스템에서 사용되는 암호 통신에 이용되는 키, 정보 등의 특성을 도시하는 도면이다.
도 4는 도 1에 도시하는 라이센스 제공 장치의 구성을 도시하는 개략 블록도이다.
도 5는 도 1에 도시하는 단말 장치의 구성을 도시하는 개략 블록도이다.
도 6은 도 1에 도시하는 단말 장치에 장착되는 하드 디스크의 구성을 도시하는 개략 블록도이다.
도 7은 도 6에 도시하는 하드 디스크에서의 시큐어 데이터 기억부의 구성을 도시하는 도면이다.
도 8은 도 6에 도시하는 하드 디스크에서의 노멀 데이터 기억부의 구성을 도시하는 도면이다.
도 9는 도 1에 도시하는 데이터 배신 시스템에서의 배신 처리를 설명하기 위한 실시 형태 1에서의 제1 흐름도이다.
도 10은 도 1에 도시하는 데이터 배신 시스템에서의 배신 처리를 설명하기 위한 실시 형태 1에서의 제2 흐름도이다.
도 11은 도 9에 도시하는 단계 S20의 상세한 동작을 설명하기 위한 흐름도이다.
도 12는 도 11에 도시하는 단계 S20a의 상세한 동작을 설명하기 위한 흐름도이다.
도 13은 도 1에 도시하는 데이터 배신 시스템에서의 배신 처리 중의 재기입 처리를 설명하기 위한 실시 형태 1에서의 제1 흐름도이다.
도 14는 도 1에 도시하는 데이터 배신 시스템에서의 배신 처리 중의 재기입 처리를 설명하기 위한 실시 형태 1에서의 제2 흐름도이다.
도 15는 도 1에 도시하는 데이터 배신 시스템에서의 배신 처리 중의 재기입 처리를 설명하기 위한 실시 형태 1에서의 제3 흐름도이다.
도 16은 도 13에 도시하는 단계 S112a의 상세한 동작을 설명하기 위한 흐름도이다.
도 17은 복제·이동 처리가 행해지는 시스템 구성을 개념적으로 설명한 개략 도이다.
도 18은 도 17에 도시하는 시스템에서의 복제 또는 이동 처리를 설명하기 위한 실시 형태 1에서의 제1 흐름도이다.
도 19는 도 17에 도시하는 시스템에서의 복제 또는 이동 처리를 설명하기 위한 실시 형태 1에서의 제2 흐름도이다.
도 20은 도 18에 도시하는 단계 S218의 상세한 동작을 설명하기 위한 흐름도이다.
도 2l은 도 17에 도시하는 시스템에서의 복제 또는 이동 처리 중의 재기입 처리를 설명하기 위한 실시 형태 1에서의 제1 흐름도이다.
도 22는 도 17에 도시하는 시스템에서의 복제 또는 이동 처리 중의 재기입 처리를 설명하기 위한 실시 형태 1에서의 제2 흐름도이다.
도 23은 도 17에 도시하는 시스템에서의 복제 또는 이동 처리 중의 재기입 처리를 설명하기 위한 실시 형태 l에서의 제3 흐름도이다.
도 24는 도 5에 도시하는 단말 장치에 대한 재생 허락 처리를 설명하기 위한 흐름도이다.
도 25는 도 1에 도시하는 데이터 배신 시스템에서의 배신 처리를 설명하기 위한 실시 형태 5에서의 제1 흐름도이다.
도 26은 도 1에 도시하는 데이터 배신 시스템에서의 배신 처리를 설명하기 위한 실시 형태 5에서의 제2 흐름도이다.
도 27은 도 25에 도시하는 단계 S16a의 상세한 동작을 설명하기 위한 흐름도이다.
도 28은 도 17에 도시하는 시스템에서의 복제 또는 이동 처리를 설명하기 위한 실시 형태 5에서의 제1 흐름도이다.
도 29는 도 17에 도시하는 시스템에서의 복제 또는 이동 처리를 설명하기 위한 실시 형태 5에서의 제2 흐름도이다.
도 30은 도 28에 도시하는 단계 S208의 상세한 동작을 설명하기 위한 흐름도이다.
본 발명의 실시 형태에 대하여 도면을 참조하면서 상세히 설명한다. 또, 도면 중에서 동일 또는 상당 부분에는 동일 부호를 부여하고 그 설명은 반복하지 않는다.
[실시 형태1]
도 1은 본 발명에 따른 데이터 기억 장치가, 암호화 콘텐츠 데이터 및 암호화 콘텐츠 데이터를 복호하기 위한 라이센스를 취득하는 데이터 배신 시스템의 전체 구성을 개념적으로 설명하기 위한 개략도이다.
또, 이하에서는 디지털 방송망에 의해 배신된 영상 데이터를 단말 장치(10)에 의해 수신하여 단말 장치(10)에 장착된 데이터 기억 장치인 HD(하드 디스크 드 라이브)(20)에 기억하고, 또한 암호화된 영상 데이터를 복호하기 위한 라이센스를 쌍방향의 네트워크(30)에 단말 장치(10)와 접속되는 라이센스 제공 장치(40)로부터 네트워크(30)를 통해서 수신하여 HD(20)에 저장하고, 암호화된 영상 데이터를 단말 장치(10)에 내장된 전용의 재생 회로(도시 생략)에서 재생하는 데이터 배신 시스템의 구성을 예로 들어 설명한다. 한편, 이하의 설명으로 분명해지는 바와 같이, 본 발명은 이와 같은 경우에 한정되지 않고, 다른 저작물로서의 콘텐츠 데이터, 예를 들면 화상 데이터, 음악 데이터, 교재 데이터, 낭독 데이터, 서적 데이터, 게임 등의 프로그램이 취급되는 경우에서도 적용하는 것이 가능한 것이다. 또한 데이터 기억 장치에 대해서도 마찬가지이며, 하드 디스크에 한정되지 않고, 다른 데이터 기억 장치, 예를 들면 메모리 카드 등에서도 적용하는 것이 가능하다.
도 1을 참조하여, 단말 장치(10)는 디지털 방송망에 의해 배신되는, 암호화된 영상 데이터(이하, 콘텐츠 데이터라고도 함.)를 안테나(11)를 통해 수신하고, HD(20)에 기억한다. 암호화된 콘텐츠 데이터(이하, 암호화 콘텐츠 데이터라고도 함.)를 복호하기 위한 콘텐츠키를 포함하는 라이센스를 관리하고, 또한 배신하는 라이센스 제공 장치(40)는 라이센스의 배신을 요구하여 액세스해 온 단말 장치(10)에 장착된 HD(20)가 정당한 인증 데이터를 갖는지의 여부, 즉 라이센스 관리 기능을 구비한 정규의 데이터 기억 장치인지의 여부의 인증 처리를 행하고, HD(20)가 정당한 데이터 기억 장치였던 경우에만, 단말 장치(10)에 대하여 HD(20)에서만 복호 가능한 소정의 암호 방식에 의해 암호화한 라이센스를 송신한다. 그리고 단말 장치(10)는 네트워크(30)에 접속된 모뎀을 통해 암호화된 라이센스를 수신하면, 그 암호화된 라이센스를 장착된 HD(20)에 송신한다.
도 1에서는, 예를 들면 HD(20)는 단말 장치(10)에 착탈 가능한 구성으로 되어 있다. 단말 장치(10)에 장착된 HD(20)는 단말 장치(10)에 의해 수신된 암호화된 라이센스를 수취하고, 저작권을 보호하기 위해 라이센스에 대하여 이루어져 있는 암호화를 복호한 후에 HD(20) 내에 기억한다. 그리고 라이센스에 대응한 암호화 콘텐츠 데이터를 재생하는 경우, 라이센스에 포함되는 콘텐츠키와 암호화 콘텐츠 데이터를 단말 장치(10)에 공급한다.
그리고 단말 장치(10)의 사용자는 단말 장치(10)에서 콘텐츠키를 이용하여 복호되는 콘텐츠 데이터를 재생하는 것이 가능하게 된다.
이와 같은 구성으로 함으로써, 단말 장치(10)의 사용자는 라이센스 관리 기능을 구비한 정규의 인증 데이터를 갖는 HD(20)를 이용하지 않으면, 암호화된 콘텐츠를 수신하여 기억했다 하더라도 라이센스의 제공을 받을 수 없어, 콘텐츠 데이터를 재생할 수 없다.
또한 상술한 데이터 배신 시스템에서는, 암호화 콘텐츠 데이터의 제공원은 디지털 방송업자의 방송 서버이지만, 라이센스를 관리하는 라이센스 제공 장치(40)이어도 되고, 인터넷 등의 통신망을 통해 접속되는 라이센스 제공 장치(40)와는 다른 배신 서버이어도 된다. 또한 다른 사용자로부터의 복제이어도 된다. 즉, 암호화 콘텐츠 데이터 자체는 어디로부터 발신되더라도, 또한 어디에서 수신되어도 되며, 요점은 암호화 콘텐츠 데이터를 복호 가능한 라이센스를 엄중히 관리해 두기만 하면, 콘텐츠 데이터의 저작권을 보호할 수 있다.
따라서 본 발명의 실시 형태에서는 HD(20), 단말 장치(10) 및 라이센스 제공 장치(40)의 각각의 사이에서 행해지는 라이센스의 송수신 처리에서, 암호화 콘텐츠 데이터를 재생하기 위해 필요한 라이센스의 제공원이, 제공처에 대한 인증 및 체크 기능을 행하고, 비인증의 장치에 대한 라이센스의 출력을 방지한다. 또한 라이센스의 송수신 처리 중에 이상이 발생했을 때에, 라이센스가 중복하여 존재하는 것이 없도록 재처리가 필요한 라이센스를 특정함으로써 콘텐츠 데이터의 저작권 보호를 실현하면서, 뜻하지 않은 송수신 처리의 이상 종료로부터 회복 가능한 시스템의 구성에 대하여 설명한다.
도 2는 도 1에 도시한 데이터 배신 시스템에서 송수신되는 데이터, 정보 등의 특성을 설명하는 도면이다.
데이터 Dc는 콘텐츠 데이터이며, 여기서는 영상 데이터이다. 데이터 Dc는 콘텐츠키 Kc로 복호 가능한 암호화가 실시된다. 콘텐츠키 Kc에 의해 복호 가능한 암호화가 실시된 암호화 콘텐츠 데이터 E(Kc, Dc)가 이 형식으로 디지털 방송망에 의해 단말 장치(10)의 사용자에게 배포된다.
또한 이하에서는 E(X, Y)라는 표기는 데이터 Y를, 복호키 X에 의해 복호 가능한 암호화를 실시한 것을 나타내는 것으로 한다. 또한 데이터 Dc에 부수하여, 콘텐츠 데이터에 관한 저작권 혹은 서버 액세스 관련 등의 평문 정보로서의 부가 정보 Di가 배포된다.
또한 라이센스의 배신을 특정함과 함께, 각각의 라이센스를 특정하는 관리 코드인 라이센스 ID(LID)가 단말 장치(10)를 통해 라이센스 제공 장치(40)와 HD(20)의 사이에서 교환된다. 또한 라이센스로서는 데이터 Dc 및 콘텐츠키 Kc를 식별하기 위한 코드인 데이터 ID(DID)나, 이용자측으로부터의 지정에 의해 결정되는 라이센스 수나 기능 한정 등, 데이터 기억 장치에서의 라이센스나 재생의 취급에 대한 제한에 관한 제어 정보 AC가 존재한다.
콘텐츠키 Kc와, 제어 정보 AC와, DID와, LID를 합쳐, 이후 라이센스 LIC로 총칭하는 것으로 한다. DID는 데이터 Dc와 콘텐츠키 Kc와의 쌍에 대하여 할당된 식별 정보, 즉, 암호화 데이터 E(Kc, Dc)를 식별하기 위한 식별 정보로 된다. DID는 라이센스 LIC 이외에 암호화 데이터 E(Kc, Dc)와 함께 항상 취급되는 부가 정보 Di에도 포함되고, 참조할 수 있게 되어 있다.
도 3은 도 1에 도시하는 데이터 배신 시스템에서 사용되는 인증을 위한 데이터, 정보 등의 특성을 설명하는 도면이다.
HD(20) 등의 데이터 기억 장치 및 단말 장치(10) 등에 구비되는 재생 회로에는 고유의 클래스 공개 키 KPcmy 및 KPcpy가 각각 마련되고, 클래스 공개 키 KPcmy 및 KPcpy는 데이터 기억 장치에 고유의 클래스 비밀 키 Kcmy 및 재생 회로에 고유의 클래스 비밀 키 Kcpy에 의해 각각 복호 가능하다. 이들 클래스 공개 키 및 클래스 비밀 키는 재생 회로 혹은 데이터 기억 장치의 종류마다 다른 값을 가지며, 이들 클래스 공개 키 및 클래스 비밀 키를 공유하는 단위를 클래스라 한다. 기호 "y"는 그 클래스를 식별하기 위한 식별자를 나타낸다. 클래스는 제조 회사나 제품의 종류, 제조시의 로트 등에 의해 서로 다르다.
또한 데이터 기억 장치의 클래스 증명서로서 Cmy가 마련되고, 재생 회로의 클래스 증명서로서 Cpy가 마련된다. 이들 클래스 증명서는, 데이터 기억 장치 및 재생 회로의 클래스마다 서로 다른 정보를 갖는다.
데이터 기억 장치의 클래스 증명서 Cmy는 KPcmy//Icmy//E(Ka, H(KPcmy//Icmy))의 형식으로 출하시에 데이터 기억 장치에 기억되고, 재생 회로의 클래스 증명서 Cpy는 KPcpy//Icpy//E(Ka, H(KPcpy//Icpy))의 형식으로 출하시에 재생 회로에 기억된다. 여기서, X//Y는 X와 Y와의 연결을 나타내며, H(X)는 해시 함수에 의해 연산된 데이터 X의 해시값을 나타낸다. 마스터 키 Ka는, 이들 클래스 증명서를 작성하기 위해 사용되는 비밀 암호 키이고, 이 데이터 배신 시스템 전체에서 공통의 비밀 암호 키로서, 인증국에 의해 안전하게 관리 운용된다. 또한 클래스 정보 Icmy, Icpy는 클래스별 기기에 관한 정보 및 클래스 공개 키를 포함하는 정보 데이터이다.
또한 E(Ka, H(KPcmy//Icmy)) 및 E(Ka, H(KPcpy//Icpy))는 각각 KPcmy//Icmy 및 KPcpy//Icpy에 대한 전자 서명을 행한 서명 데이터이다.
또, 인증국은 서명 데이터를 작성하는 공적인 제3자 기관이고, 서명 데이터 E(Ka, H(KPcmy//Icmy)) 및 E(Ka, H(KPcpy//Icpy))는 인증국에 의해 생성된다.
또한 데이터 기억 장치에 대하여 안전하고, 또한 확실하게 라이센스 LIC를 송신하기 위한 키로서, 데이터 기억 장치라는 매체마다 설정되는 개별 공개 키 KPomz와, 개별 공개 키 KPomz로 암호화된 데이터를 복호하는 것이 가능한 개별 비밀 키 Komz가 존재한다. 여기서, 기호 "z"는 데이터 기억 장치를 개별적으로 식별하기 위한 식별자이다.
데이터 배신 시스템에서 데이터의 송수신이 행해질 때마다, 라이센스 제공 장치(40), 데이터 기억 장치(HD20) 및 단말 장치(10)의 재생 회로에서 생성되는 세션키 Kslx, Ks2x가 이용된다.
여기서, 세션키 Kslx, Ks2x는 라이센스 제공 장치(40), 데이터 기억 장치(HD20) 혹은 단말 장치(10)의 재생 회로간의 통신의 단위 혹은 액세스의 단위인 "세션"마다 발생하는 고유의 공통 키이다.
"세션"에는 라이센스 제공 장치(40)로부터 데이터 기억 장치(HD20)로 라이센스를 배신하는 "배신 세션", 데이터 기억 장치 사이에서의 라이센스의 복제나 이동을 행하는 "복제·이동 세션" 및 데이터 기억 장치(HD20)로부터 단말 장치(10)의 재생 회로로 라이센스를 출력하는 "재생 허락 세션"이 있다.
이들 세션키 Kslx, Ks2x는 각 세션마다 고유의 값을 가짐으로써, 라이센스 제공 장치(40), 데이터 기억 장치(HD20) 및 단말 장치(10)의 재생 회로에 의해 관리된다. 구체적으로는, 세션키 Kslx는 라이센스를 송수신할 때에, 라이센스의 송신측에 의해 세션마다 발생되고, 세션키 Ks2x는 라이센스의 수신측에 의해 세션마다 발생된다. 또, 기호 "x"는 세션에서의 일련의 처리를 식별하기 위한 식별자이다. 그리고 각 세션에서 이들의 세션키를 각 기기 사이에서 서로 수수하고, 다른 기기에서 생성된 세션키를 받아, 그 세션키에 의한 암호화를 실행한 후에, 라이센스 LIC, 또는 콘텐츠키를 포함하는 라이센스 LIC의 일부의 송신을 행함으로써, 세션에서의 보안 강도를 향상시킬 수 있다.
도 4는 도 1에 도시한 라이센스 제공 장치(40)의 구성을 도시하는 개략 블록 도이다.
라이센스 제공 장치(40)는 관리 대상의 라이센스를 유지하는 데이터베이스인 콘텐츠 DB(402)와, 라이센스를 배신하는 배신 세션에서의 모든 통신 기록을 수시 기억하고, 유지하는 데이터베이스인 로그 DB(404)와, 콘텐츠 DB(402) 및 로그 DB(404)와 버스(BS1)를 통해 데이터를 주고 받고, 소정의 처리를 행하기 위한 데이터 처리부(410)와, 네트워크(30)를 통해 단말 장치(10)와 데이터 처리부(410)의 사이에서 데이터 수수를 행하기 위한 통신 장치(450)를 구비한다.
데이터 처리부(410)는 버스(BS1) 상의 데이터에 따라, 데이터 처리부(410)의 동작을 제어하기 위한 배신 제어부(412)과, 배신 제어부(412)에 의해 제어되고, 배신 세션시에 세션키 Kslx를 발생하기 위한 세션키 발생부(414)와, 단말 장치(10)로부터 보내져 오는 HD(20)의 클래스 증명서 Cmy에 포함되는 서명 데이터 E(Ka, H(KPcmy//Icmy))를 복호하기 위한 HD(20)의 인증키 KPa를 유지하는 KPa 유지부(416)와, HD(20)로부터 보내져 온 클래스 증명서 Cmy를 통신 장치(450) 및 버스(BSl)를 통해 받고, KPa 유지부(416)로부터 받는 인증키 KPa에 의해 복호 처리를 행하고, 클래스 증명서 Cmy에 포함되는 서명 데이터 E(Ka, H(KPcmy//Icmy))의 복호 처리와, 클래스 증명서 Cmy에 포함되는 KPcmy//Icmy의 해시값을 계산하고, 양자의 결과를 비교 체크하여 클래스 증명서 Cmy의 검증을 행하는 인증부(418)와, 배신 세션마다 세션키 발생부(414)에 의해 생성된 세션키 Kslx를 인증부(418)에 의해 클래스 증명서 Cmy로부터 추출한 클래스 공개 키 KPcmy를 이용하여 암호화하고, 버스(BS1)에 출력하기 위한 암호 처리부(420)와, 세션키 Kslx에 의해 암호화된 후에 송 신된 데이터를 버스(BS1)로부터 받고, 복호 처리를 행하는 복호 처리부(422)를 포함한다.
데이터 처리부(410)는, 또한 배신 제어부(412)로부터 제공되는 라이센스 LIC를 복호 처리부(422)에 의해 얻어진 데이터 기억 장치마다 고유의 개별 공개 키 KPomz에 의해 암호화하기 위한 암호 처리부(424)와, 암호 처리부(424)의 출력을 복호 처리부(422)로부터 제공되는 세션키 Ks2x에 의해 더욱 암호화하여 버스(BS1)에 출력하기 위한 암호 처리부(426)를 포함한다.
또, 개별 공개 키 KPomz 및 세션키 Ks2x는 세션키 Kslx에 의해 암호화된 후에 단말 장치(10)로부터 제공된다. 복호 처리부(422)는 이를 복호하여 개별 공개 키 KPomz를 얻는다.
라이센스 제공 장치(40)의 배신 세션에서의 동작에 대해서는, 나중에 흐름도를 사용하여 상세히 설명한다.
도 5는 도 1에 도시한 단말 장치(10)의 구성을 설명하기 위한 개략 블록도이다.
단말 장치(10)는 디지털 방송망에 의해 전송되는 신호를 수신하는 안테나(102)와, 안테나(102)로부터의 신호를 복조하여 데이터로 변환, 혹은 안테나(102)로부터 송신하는 데이터를 변조하여 안테나(102)에 제공하는 수신부(104)와, 단말 장치(10)를 네트워크(30)에 접속하는 모뎀(106)과, 단말 장치(10)의 각 부의 데이터 수수를 행하는 버스(BS2)와, 버스(BS2)를 통해 단말 장치(10)의 동작을 제어하는 컨트롤러(108)와, HD(20)와 버스(BS2) 사이의 데이터의 수수를 제어하는 HD 인 터페이스부(110)를 포함한다.
단말 장치(10)는 또한 상술한 클래스 증명서 Cpy를 유지하는 인증 데이터 유지부(1502)를 포함한다. 여기서, 단말 장치(10)의 클래스를 식별하는 식별자 y는 y=3이라고 한다.
단말 장치(10)는 또한 클래스 고유의 복호키인 클래스 비밀 키 Kcp3를 유지하는 Kcp 유지부(1504)와, 버스(BS2)로부터 받은 데이터를 클래스 비밀 키 Kcp3에 의해 복호하고, HD(20)에 의해 발생된 세션키 Kslx를 얻는 복호 처리부(1506)를 포함한다.
단말 장치(10)는 또한 HD(20)에 기억된 콘텐츠 데이터의 재생을 행하는 재생 허락 세션에서, HD(20)와의 사이에서 교환되는 데이터를 암호화하기 위한 세션키 Ks2x를 난수 등에 의해 발생하는 세션키 발생부(1508)와, HD(20)로부터 콘텐츠키 Kc를 수취할 때에, 세션키 발생부(1508)에 의해 발생된 세션키 Ks2x를 복호 처리부(1506)에 의해 얻어진 세션키 Kslx에 의해 암호화하고, 버스(BS2)에 출력하는 암호 처리부(1510)와, 버스(BS2) 상의 데이터를 세션키 Ks2x에 의해 복호하여, 콘텐츠키 Kc를 출력하는 복호 처리부(1512)와, 버스(BS2)로부터 암호화 콘텐츠 데이터 E(Kc, Dc)를 받아, 복호 처리부(1512)로부터의 콘텐츠키 Kc에 의해 암호화 콘텐츠 데이터 E(Kc, Dc)를 복호하여 데이터 Dc를 재생부(1516)에 출력하는 복호 처리부(1514)와, 복호 처리부(1514)로부터의 출력을 받아 콘텐츠를 재생하기 위한 재생부(1516)와, 재생부(1516)의 출력을 디지털 신호로부터 아날로그 신호로 변환하는 DA 변환부(1518)와, DA 변환부(1518)의 출력을 텔레비전 모니터 등의 외부 출력 장치(도시 생략)에 출력하기 위한 단자(1520)를 포함하다.
또한 도 5에서는 점선으로 둘러싼 영역은 암호화 콘텐츠 데이터를 복호하여 영상 데이터를 재생하는 전용 회로인 재생 회로(150)를 구성한다. 재생 회로(150)는 보안을 향상시키기 위해 1칩 구성의 반도체 디바이스인 것이 바람직하다. 또한 재생 회로(150)는 외부로부터의 해석이 곤란한 내탬퍼 모듈로서 구성되는 것이 바람직하다.
단말 장치(10)의 각 구성 부분의 각 세션에서의 동작에 대해서는, 나중에 흐름도를 사용하여 상세히 설명한다.
여기서는, 단말 장치(10)는 암호화 콘텐츠 데이터를 수신하는 기능, 라이센스의 배신을 받는 기능, 재생 허락에 의해 암호화 콘텐츠 데이터를 재생하는 기능을 구비하였지만, HD(20)가 단말 장치(10)로부터 탈착 가능한 데이터 기억 장치인 점에서 분명히 알 수 있듯이, 이들 기능을 별도의 장치에 의해 실현해도 된다. 이 경우, 목적으로 하는 기능을 실현하는 장치에 HD(20)를 장착함으로써 용이하게 실현할 수 있다.
도 6은 도 1에 도시하는 HD(20)의 구성을 설명하기 위한 개략 블록도이다.
이미 설명한 바와 같이, 데이터 기억 장치인 HD(20)에는 클래스 공개 키 KPcmy와 클래스 비밀 키 Kcmy의 쌍 및 개별 공개 키 KPomz와 개별 비밀 키 Komz의 쌍이 마련되지만, HD(20)에서는 이들을 식별하는 식별자 y=1, 식별자 z=2로 표시되는 것으로 한다.
따라서 HD(20)는 클래스 증명서 Cm1로서 인증 데이터 KPcm1//Icm1//E(Ka, H(KPcm1//Icml))을 유지하는 인증 데이터 유지부(202)와, 클래스 비밀 키 Kcm1를 유지하는 Kcm 유지부(204)와, 개별 비밀 키 Kom2를 유지하는 Kom 유지부(206)와, 개별 비밀 키 Kom2에 의해 복호 가능한 개별 공개 키 KPom2를 유지하는 KPom 유지부(208)를 포함한다.
이와 같이, 데이터 기억 장치(여기서는 HD(20))의 암호 키를 마련함으로써, 이하의 설명에서 분명히 알 수 있듯이, 배신된 콘텐츠 데이터나 암호화된 콘텐츠키의 관리를 데이터 기억 장치 단위로 실행하는 것이 가능하게 된다.
HD(20)는 또한 단말 장치(10)의 HD 인터페이스부(110)와 단자(210)를 통해 신호를 수수하는 ATA(AT-Attachment) 인터페이스부(212)와, HD(20)에서의 데이터 전송로인 버스(BS3)와, ATA 인터페이스부(212)로부터 컨트롤러(214)를 통해 버스(BS3)에 출력된 데이터를, Kom 유지부(206)에 의해 공급된 개별 비밀 키 Kom2에 의해 복호하고, 라이센스 제공 장치(40)로부터 배신된 라이센스 LIC를 시큐어 데이터 기억부(250)에 출력하는 복호 처리부(216)와, KPa 유지부(218)로부터 인증키 KPa를 받고, 버스(BS3)에 출력된 데이터의 인증키 KPa에 의한 복호 처리를 실행하여 복호 결과를 컨트롤러(214)에 출력하고, 또한 얻어진 클래스 공개 키 KPcml을 암호 처리부(222)에 출력하는 인증부(220)와, 전환 스위치(260)에 의해 선택적으로 제공되는 세션키 Ks1x 또는 Ks2x에 의해 전환 스위치(262)에 의해 선택적으로 제공되는 데이터를 암호화하여 버스(BS3)에 출력하는 암호 처리부(224)를 포함한다.
HD(20)는 또한 배신, 복제·이동 및 재생 허락의 각 세션에서, 세션키 Kslx, Ks2x를 발생하는 세션키 발생부(226)와, 세션키 발생부(226)가 출력한 세션키 Kslx 를 인증부(220)에 의해 얻어지는 단말 장치(10)의 재생 회로(150)의 클래스 공개 키 KPcpy 혹은 다른 데이터 기억 장치(HD(2l)로 한다)의 클래스 공개 키 KPcmy에 의해 암호화하여 버스(BS3)에 송출하는 암호 처리부(222)와, 버스(BS3)로부터 세션키 Ks2x에 의해 암호화된 데이터를 받아 세션키 발생부(226)로부터 얻은 세션키 Kslx 또는 Ks2x에 의해 복호하는 복호 처리부(228)를 포함하다.
HD(20)는 또한 버스(BS3) 상의 데이터를 클래스 공개 키 KPcm1와 쌍을 이루는 클래스 비밀 키 Kcm1에 의해 복호하기 위한 복호 처리부(230)와, 라이센스 LIC를 HD(20)로부터 HD(21)로 이동 또는 복제하기 위해 출력할 때에, 제공처의 HD(21)로부터 수신한 개별 공개 키 KPomz(z≠2)에 의해 라이센스 LlC를 암호화하는 암호 처리부(232)를 포함한다.
HD(20)는 또한 암호화 콘텐츠 데이터 E(Kc, Dc)를 재생하기 위한 라이센스 LIC와, HD(20)가 처리하고 있는 세션의 처리 기록인 로그를 버스(BS3)로부터 받아 기억하는 시큐어 데이터 기억부(250)를 포함한다. 그리고 라이센스 LIC는 시큐어 데이터 기억부(250) 내의 라이센스 영역에 저장되고, 로그는 시큐어 데이터 기억부(250) 내의 로그 메모리에 저장된다. 시큐어 데이터 기억부(250)는, 예를 들면 반도체 메모리에 의해 구성된다.
도 7은 시큐어 데이터 기억부(250)에서의 메모리 구성을 도시한 도면이다.
도 7을 참조하여, 시큐어 데이터 기억부(250)는 라이센스 영역(251)과, 유효 플래그 영역(252)과, 로그 메모리(253)를 포함한다.
라이센스 영역(251)은 L개(L은 자연수)의 영역(2511~251L)으로 이루어지고, 각각 1개의 라이센스(콘텐츠키 Kc, 제어 정보 AC, 라이센스 ID(LID), 데이터 ID(DID))를 저장한다.
영역(2511~25lL)에 저장된 복수의 라이센스의 각각은, 어드레스(이하, LBA:Logical Block Address라 함.)에 의해 관리된다. 그리고 각 세션에서 기억 혹은 판독되는 라이센스 LIC는 모두 LBA에 의해 특정된다.
영역(2511~251L)에 대응하여 maxLBA+1~maxLBA+L의 LBA가 부여되어 있는 것으로 한다. 예를 들면, 영역(2513)에 저장된 라이센스 LIC는, LBA:maxLBA+3에 의해 특정된다. 이 때, LBA:0~maxLBA는 노멀 데이터 기억 영역(270)에 할당되는 것으로 한다. 상세 내용은 후술한다.
또, 라이센스 영역(251)에는 노멀 데이터 기억 영역(270)에 할당된 LBA(0~maxLBA)에 계속되는 값, 즉, maxLBA+1~maxLBA+L이 LBA로서 할당된다고 설명했지만, 라이센스 영역(251)에 할당하는 LBA를 한정하는 것은 아니다. 라이센스 영역(251)에 할당한 L개의 LBA에 의해, 각각이 영역(2511~251L) 중 어느 1개를 지정할 수 있는 값이면 어떠한 값이어도 되며, 노멀 데이터 기억 영역(270)에 할당한 LBA와 중복되는 값, 혹은 독립된 값을 LBA로서 할당하더라도 된다.
또한 유효 플래그 영역(252)은 시큐어 데이터 기억부(250) 상의 기억 위치를 특정하는 LBA 각각에 대응하여 마련되고, 대응하는 LBA에 의해 특정되는 위치에 기억되는 라이센스의 유효성을 도시하는 플래그를 기억한다.
유효 플래그 영역(252)은 영역(2521~252L)으로 이루어지고, 영역(2521~252L)은 각각 대응하는 영역(251l~251L)에 저장된 라이센스 LIC의 "유효", 또는 "무효" 를 저장한다.
유효 플래그 영역(252)의 플래그가 "유효"일 때, 플래그에 대응하는 LBA에 의해 특정되는 시큐어 데이터 기억부(250) 상의 기억 위치에 기억되어 있는 라이센스 LIC는 이용 가능하고, 사용자는 그 라이센스 LIC 내의 콘텐츠키 Kc를 재생 허락에 의해 판독하여, 대응하는 암호화 콘텐츠 데이터를 복호하고, 콘텐츠 데이터를 재생하거나, 그 라이센스 LIC를 다른 데이터 기억 장치에 이동·복제할 수 있다.
한편, 유효 플래그 영역(252)의 플래그가 "무효"일 때, 그 플래그에 대응하는 LBA에 의해 특정되는 시큐어 데이터 기억부(250) 상의 기억 위치에 기억되어 있는 라이센스 LIC는 이용 불가능하고, HD(20)의 컨트롤러(214)에 의해 그 LBA로부터의 라이센스 LIC는 거부된다. 즉, 소거된 것과 동일한 상태이다. 따라서 사용자는 그 라이센스 LIC에 대응한 콘텐츠 데이터를 재생할 수는 없다. 이 유효 플래그 영역(252)의 플래그는 라이센스의 새로운 기억에 의해 "유효"로 되고, 라이센스의 이동에 의해 "무효"로 된다.
로그 메모리(253)는 라이센스를 HD(20)에 입출력하는 경우의 이력 정보(이하에서는 "로그"라 함)를 1개 저장하는 N(N은 자연수)개의 영역(2531~253N)으로 이루어지는 링 메모리이다. 영역(2531~253N)은 각각 뱅크 0~N-1이라고 불리는 영역을 특정하는 명칭이 부여되어 있다. 따라서 뱅크 n(n은 N의 잉여계)이란 로그 메모리 상의 영역 253(n-1)을 나타낸다.
로그 메모리(253)는 복수의 로그를 링 형상으로 저장한다. 즉, 로그 메모리(253)는 뱅크 0에 의해 특정되는 영역(2531)으로부터 로그의 저장을 개시하고, 뱅 크 N-l에 의해 특정되는 영역(253N)에 로그를 저장하면, 다시 뱅크 0에 의해 특정되는 영역(2531)으로 되돌아가, 로그를 저장한다.
뱅크 0~N-1, 즉 로그 메모리(253)의 영역(2531~253N)의 각각에 저장되는 로그는 관리 번호 영역(2541)과, 라이센스 ID(LID) 영역(2542)과, Ks2x 영역(2543)과, ST1 영역(2544)과, ST2 영역(2545)과, KPcmy 영역(2546)과, LBA 영역(2547)을 포함한다.
관리 번호 영역(2541)은 로그를 뱅크 0~N-1의 각각에 저장할 때에, 로그의 저장 순서를 나타내는 관리 번호를 저장한다. 그리고 관리 번호는 M(M>N, M은 자연수)의 잉여계를 이루어, 오름차순으로 부여된다. 이 관리 번호를 저장함으로써, 최신의 로그를 저장한, 혹은 가장 오래된 로그를 저장한 뱅크를 검색할 수 있게 된다. 즉, 처음에 관리 번호 1의 로그가 뱅크 0에 저장된다고 하면, 그 로그의 관리 번호 영역(2541)은, 관리 번호 "1"을 저장한다. 그리고 라이센스의 입출력에 수반하여, 새로운 로그를 저장할 때마다, 뱅크 2부터 순서대로 사용하고, 그 로그의 관리 번호 영역(2541)에, 새로운 로그를 저장하는 뱅크의 직전의 뱅크에 저장되는 최신의 로그의 관리 번호 영역(254l)에 저장되는 관리 번호에 1씩 증가한 관리 번호를 저장한다. 따라서 각 뱅크 0~N-1, 즉 영역 2531~253N에 저장된 로그의 관리 번호 영역(2541)으로부터 관리 번호를 판독하면, 관리 번호에 기초하여 그 로그가 새로운 것인지 오래된 것인지를 판단할 수 있다. 이 판단은 다음과 같이 하여 행한다. 즉, 연속하는 2개의 뱅크 n, n+1(n은 N의 잉여계)가 유지하는 관리 번호가 불연속적인 경우, 뱅크 n에는 최신의 로그가, 뱅크 n+1에는 가장 오래된 로그가 유지 되어 있다. 또한 상세한 설명은 후술한다.
이후에서는, 특별히 한정하지 않는 한, 관리 번호에 관한 표기 및 연산은 모두 M의 잉여계에서 로그 메모리(253)의 영역(2531~253N)을 지정하는 뱅크의 번호에 관한 표기 및 연산은 모두 N의 잉여계에서의 표기 및 연산을 나타내고 있다.
라이센스 ID 영역(2542)은, 세션의 대상으로 되는 라이센스 LIC를 특정하는 라이센스 ID(LID)를 저장한다. Ks2x 영역(2543)은 세션에서 라이센스 LIC의 수신측의 데이터 기억 장치에 의해 생성된 세션키 Ks2x를 저장한다.
ST1 영역(2544)은 동작 중의 세션에서의 처리의 상태를 나타내는 스테이터스 ST1을 저장한다. ST2 영역(2545)은 라이센스 ID 영역(2542)에 저장되는 라이센스 ID에 대응한 라이센스의 기억 상태를 나타내는 스테이터스 ST2를 저장한다.
KPcmx 영역(2546)은 라이센스를 이동·복제에 의해 출력하는 경우, 송신측의 데이터 기억 장치에서 수신측의 데이터 기억 장치의 클래스 공개 키 KPcmx를 저장한다. LBA 영역(2547)은 각 세션에서 라이센스 LIC를 판독 혹은 기억하기 위해 지시된 LBA를 저장한다.
일련의 세션의 처리가 진행됨에 따라, 상기 각 영역의 데이터가 갱신 혹은 참조되어 간다. 스테이터스 ST1은 "수신 대기", "수신 종료", "송신 대기" 및 "송신 종료"의 4상태 중 어느 하나이고, 스테이터스 ST2는 "데이터 유", "데이터 무" 및 "이동 종료"의 3상태 중 어느 하나이다.
그리고 세션 중에 예기치 않은 이상이 발생하여, 세션이 중단된 경우, 그 세션에서 송수신되었던 라이센스 LIC에 대하여, 로그 메모리(253) 내의 라이센스 ID 영역(2541)에 저장되어 있는 라이센스 ID와, LBA 영역(2547)에 저장된 LBA에 의해 해당 라이센스 LIC의 기억 상태가 확인되고, 그 확인 결과에 따라 스테이터스 ST2가 갱신된다. 또한 중단된 세션에서의 라이센스의 송신측에서는, 라이센스의 수신측의 로그 메모리(253) 내에 저장되어 있는 라이센스 LIC, 세션키 Ks2x, 스테이터스 STl 및 스테이터스 ST2를 수취하여, 자신이 기록하는 로그의 내용과 수취한 라이센스 LIC, 세션키 Ks2x, 스테이터스 ST1 및 스테이터스 ST2를 확인함으로써, 다시 라이센스의 송신을 행해도 되는지 여부의 판단이 된다.
또, 세션키 Ks2x는 각 세션을 특정하기 위해 기억되고, 세션키 Ks2x를 공유하고 있는 것은 라이센스의 송수신처 및 그 처리를 공유하고 있었음을 나타내고 있다.
또한 스테이터스 ST2에는 출력 로그가 출력될 때에, 로그 메모리(253)에 저장되어 있는 라이센스 ID(LID)와 LBA에 의해 시큐어 데이터 기억부(250)에서의 대상의 라이센스의 기억 상태가 저장되고, 이것에 의해 출력 로그가 성립한다.
상세한 내용에 대해서는, 나중에 각 세션마다의 흐름도를 사용하여 설명한다.
다시 도 6을 참조하여, HD(20)의 데이터 기록부에 관해 설명한다. HD(20)는 또한 암호화 콘텐츠 데이터를 기억하는 노멀 데이터 기억부(270)를 포함한다. 노멀 데이터 기억부(270)는 데이터가 기억되는 원반 형상의 자기 기록 매체(2701)와, 자기 기록 매체(2701)를 회전시키는 모터(2702)와, 모터(2702)를 제어하는 서보 제어부(2703)와, 자기 기록 매체(2701) 상에서의 자기 헤드의 위치를 제어하는 시크 제어부(2704)와, 자기 헤드에 데이터의 기록 및 재생을 지시하는 기록 재생 처리부(2705)를 포함한다.
HD(20)는 또한 ATA 인터페이스부(212)를 통해 외부와의 사이에서 데이터 수수, 제어 정보 AC에 기초하는 라이센스의 출력에 관한 판단 및 시큐어 데이터 기억부(250)의 관리 등의 HD(20) 내의 동작을 제어하기 위한 컨트롤러(214)를 포함한다.
또, 노멀 데이터 기억부(270), ATA 인터페이스부(212) 및 단자(210)를 제외한 다른 구성은 내탬퍼 모듈 영역에 구성된다.
도 8을 참조하여, 노멀 데이터 기억부(270)의 구성은 일반적인 공지된 하드 디스크의 구성과 다른 점은 없으며, 데이터 기억부(2700)를 포함한다. 데이터 기억부(2700)는 영역(2800~280A)(A=maxLBA, maxLBA는 자연수)의 각각은, 암호화 콘텐츠 데이터 및 암호화 콘텐츠 데이터의 부속 데이터, 라이센스 테이블 등을 저장한다. 그리고 영역(2800~280A)에 대응하여 LBA:0~maxLBA가 부여되어 있고, 각 영역(2800~280A)은 LBA:0~maxLBA에 의해 지정되며, 암호화 콘텐츠 데이터 등의 데이터는 지정된 각 영역(2800~280A)에 입출력된다.
또, 라이센스 테이블은 암호화 콘텐츠 데이터와 라이센스의 관계를 나타내는 정보 테이블이고, 라이센스 데이블을 참조함으로써, 암호화 콘텐츠 데이터에 대응하는 라이센스와, 그 라이센스가 기억되어 있는 LBA를 특정할 수 있다. 따라서 라이센스 테이블은 암호화 콘텐츠 데이터의 기억, 삭제시, 혹은 라이센스의 기억, 이동, 삭제시에 그 내용이 변경된다.
따라서 HD(20)는 LBA:0~maxLBA에 의해 지정할 수 있는 노멀 데이터 기억부(270)와, 그에 후속하는 LBA:maxLBA+1~maxLBA+L에 의해 지정할 수 있는 시큐어 데이터 기억부(250), 보다 구체적으로는 라이센스 메모리(251)에 대하여 데이터 혹은 라이센스의 입출력을 행할 수 있다.
또한 노멀 데이터 기억 영역(270) 및 라이센스 영역(251)에 대한 LBA의 값에 대해서는, 본 실시의 형태에 한정하는 것이 아니다.
또, 시큐어 데이터 기억부(250)는 통상의 액세스 커맨드로는 ATA 인터페이스부(212)를 통해, 직접 외부로부터 액세스할 수 없는 등의 수단을 마련함으로써 내탬퍼성을 확보한, 내탬퍼 구조를 구비하고 있다.
또한 HD(20)의 시큐어 데이터 기억부(250)는 모두 반도체 메모리에 의해 구성되는 것으로서 설명했지만, 내탬퍼성을 확보한 후에, 시큐어 데이터 기억부(250)의 일부 혹은 그 전부를 자기 기록 매체(2701) 상에 기억하는 구성으로 하여도 좋다.
이하, 도 1에 도시하는 데이터 배신 시스템에서의 각 세션의 동작에 대하여 설명한다.
[배신]
먼저, 도 1에 도시하는 데이터 배신 시스템에서, 라이센스 제공 장치(40)로부터 단말 장치(10)에 장착된 HD(20)에 라이센스를 배신하는 동작에 대하여 설명한다.
도 9 및 도 1O은, 도 1에 도시하는 데이터 배신 시스템에서, 단말 장치(10) 의 사용자가 단말 장치(10)로부터 암호화 콘텐츠 데이터의 라이센스 배신의 요청을 행함으로써, 라이센스가 라이센스 제공 장치(40)로부터 단말 장치(10)에 장착된 HD(20)를 향해 송신되고, HD(20)에 기억될 때의 처리(배신 세션)를 설명하기 위한 제1 및 제2 흐름도이다.
도 9에서의 처리 개시 이전에, 단말 장치(10)의 사용자는 단말 장치(10)를 모뎀(106)에 의해 네트워크(30)에 접속하고, 단말 장치(10)를 네트워크(30)를 통해 라이센스 제공 장치(40)에 접속하고 있는 것을 전제로 하고 있다.
도 9를 참조하여, 단말 장치(10)의 사용자로부터 원하는 콘텐츠 데이터의 라이센스에 대한 배신 요청이 이루어지면, 단말 장치(10)의 컨트롤러(108)는 버스 (BS2) 및 HD 인터페이스부(110)를 통해 HD(20)에 클래스 증명서의 출력 요구를 출력한다(단계 S1). HD(20)의 컨트롤러(214)는 단자(210) 및 ATA 인터페이스부(212)를 통해 클래스 증명서의 출력 요구를 수리하면(단계 S2), 버스(BS3)를 통해 인증 데이터 유지부(202)로부터 클래스 증명서 Cm1=KPcm1//Icm1//E(Ka, H(K15Pcml//Icml))를 판독하고, 클래스 증명서 Cm1을 ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 출력한다(단계 S3).
단말 장치(10)의 컨트롤러(108)는 HD(20)로부터 HD 인터페이스부(110) 및 버스(BS2)를 통해 클래스 증명서 Cm1을 수리하면(단계 S4), 수리한 클래스 증명서 Cml을 모뎀(106) 및 네트워크(30)를 통해 라이센스 제공 장치(40)에 송신한다(단계 S5).
라이센스 제공 장치(40)에서는, 단말 장치(10)로부터 클래스 증명서 Cm1을 수신하면(단계 S6), 수신한 Cm1이 정당한 클래스 증명서인지의 여부를 인증한다(단계 S7). 인증 처리는 다음과 같이 행해진다.
라이센스 제공 장치(40)는 클래스 증명서 Cm1=KPcm1//Icml//E(Ka, H(KPcm1//Icml))을 수리하면, HD(20)로부터 출력된 클래스 증명서 Cml에 포함되는 서명 데이터 E(Ka, H(KPcml//Icml))을 인증부(418)에서 인증키 KPa로 복호하고, 해시값 H(KPm1//Icml)을 추출한다. 그리고 또한 인증부(418)는 클래스 증명서 Cm1에 포함되는 KPcm1//Icm1의 해시값을 연산하고, 클래스 증명서 Cm1로부터 추출한 해시값과 연산한 해시값을 비교한다. 배신 제어부(412)는 인증부(418)에서의 복호 처리 결과로부터, 상기의 복호를 할 수 있으며, 또한 2개의 해시값의 값이 일치했다고 판단하면, HD(20)로부터 수리한 클래스 증명서 Cm1은 정당한 증명서라고 판단한다.
단계 S7에서, 클래스 증명서 Cm1이 정당한 증명서라고 판단된 경우, 배신 제어부(418)는 클래스 공개 키 KPcm1을 수리한다(단계 S8). 그리고 다음의 처리(단계 S9)로 이행한다. 정당한 클래스 증명서가 아닌 경우에는, 클래스 증명서 Cm1을 수리하지 않고 에러 통지를 단말 장치(10)에 출력하고, (도 10의 단계 S44), 단말 장치(10)에서 에러 통지가 수리되면(도 10의 단계 S45), 배신 세션이 종료된다.
단계 S8에서 클래스 공개 키 KPcm1이 수리되면, 배신 제어부(412)는 라이센스 ID(LID)를 생성하고(단계 S9), 또한 제어 정보 AC를 생성한다(단계 S10). 그리고 세션키 발생부(414)는 배신을 위한 세션키 Ksla를 생성한다(단계 S11). 세션키 Ksla는 인증부(418)에 의해 얻어진 HD(20)에 대응하는 클래스 공개 키 KPcm1에 의 해, 암호 처리부(420)에 의해 암호화되고, 암호 데이터 E(KPcml, Ksla)가 생성된다(단계 S12).
그리고 배신 제어부(412)는 라이센스 ID(LID) 및 암호화된 세션키 Ksla를 1개의 데이터 열 LID//E(KPcml, Ksla)로 하여, 버스(BS1) 및 통신 장치(450)를 통해 단말 장치(10)를 향해 출력한다(단계 S13).
단말 장치(10)는 네트워크(30)를 통해 LID//E(KPcml, Ksla)을 수신하면(단계 Sl4), 수신한 LID//E(KPcml, Ksla)를 HD(20)에 출력한다(단계 S15). 그리고 HD(20)의 컨트롤러(214)는 단자(210) 및 ATA 인터페이스부(212)를 통해 LID//E(KPcm1, Ksla)를 수리한다(단계 S16). 컨트롤러(214)는 버스(BS3)를 통해 수리한 E(KPcml, Ks1a)를 복호 처리부(230)로 제공하고, 복호 처리부(230)는 Kcm 유지부(204)에 유지되는 HD(20)에 고유의 클래스 비밀 키 Kcm1에 의해 복호 처리함으로써, 세션키 Ksla를 복호하고, 세션키 Ksla를 수리한다(단계 S17).
HD(20)의 컨트롤러(214)는 라이센스 제공 장치(40)에서 생성된 세션키 Ksla의 수리를 확인하면, ATA 인터페이스부(212) 및 단자(210)를 통해 그 취지를 단말 장치(10)에 통지한다. 단말 장치(10)의 컨트롤러(108)는 HD 인터페이스부(110) 및 버스(BS2)를 통해, HD(20)에서 세션키 Ksla가 수리된 취지의 통지를 수리하면, HD(20)에 세션키의 생성의 요구 통지를 버스(BS2) 및 HD 인터페이스부(110)를 통해 HD(20)에 출력한다(단계 S18). HD(20)의 컨트롤러(214)는 단자(210) 및 ATA 컨트롤러(212)를 통해 세션키의 생성 요구 통지를 수리하면, 세션키 발생부(226)에 대하여 세션키의 생성을 지시한다. 그리고 세션키 발생부(226)는 세션키 Ks2a를 생 성한다(단계 S19).
그리고 컨트롤러(214)는 시큐어 데이터 기억부(250)의 로그 메모리(253)로부터 가장 오래된 로그가 저장되어 있는 뱅크를 검색하고, 그 검색한 뱅크 n(0≤n≤N-1)의 관리 번호 영역(2541), 라이센스 ID 영역(2542), Ks2a 영역(2543), ST1 영역(2544)에 대하여, 각각 새로운 관리 번호, 단계 S16에서 수리한 라이센스 ID, 단계 S19에서 생성된 세션키 Ks2a, 및 "수신 대기"를 저장한다(단계 S20). 따라서 뱅크 n에 저장되는 로그는 가장 새로운 로그로 된다. 이 때, 로그를 구성하는 다른 영역에 대해서는, 그 내용을 초기화, 예를 들면, 모두 "0"으로 하여도 좋고, 그대로의 상태이어도 된다.
여기서, 도 11을 참조하여, 단계 S20의 상세한 동작에 대하여 설명한다. 도 11은 단계 S2O의 상세한 동작을 도시하는 흐름도이다. 컨트롤러(214)는 단계 S19의 이후, 로그 메모리(253) 중, 최신의 로그가 기록되어 있는 로그 영역에 대응하는 뱅크 n-1을 특정하고, 그 뱅크 n-1에 의해 지정되는 로그 영역에 저장된 이력 정보에 포함되는 관리 번호 m을 취득한다(단계 S20a).
도 12를 참조하여, 단계 S20a의 상세한 동작에 대하여 설명한다. 도 12는 단계 S20의 더욱 상세한 흐름도이다. 컨트롤러(214)는 단계 S19의 이후, 변수 n에 대하여 영역(2532)을 나타내는 뱅크 1의 뱅크 번호 1을 설정하고(단계 S20c), 뱅크 0에 저장되어 있는 관리 번호를 취득하여, 변수 m에 대입한다(단계 S20d). 그리고 컨트롤러(214)는 로그 메모리(253)의 뱅크 n에 저장되어 있는 관리 번호를 취득하여, 변수 ma에 대입한다(단계 S20e), ma-m을 연산하여 연산 결과가 "1"인지의 여 부를 판정한다(단계 S20f). 연산 결과가 "1"일 때, 컨트롤러(214)는 변수 n에 1을 더한 n+1을 대입하고(단계 S20g), 변수 ma에 대입되어 있는 관리 번호를 변수 m에 대입한다(단계 S20h). 그 후, 단계 S20e~S20h가 반복해서 행해진다.
단계 S20f에서, 컨트롤러(214)는 연산 결과가 "1"이 아닐 때, 뱅크 n-1이 최신의 로그가 기록되어 있는 영역이라고 판단하고, 최신의 관리 번호 m의 취득을 종료하여, 도 11에 도시하는 단계 S20b로 이행한다. 이 때, 가장 오래된 로그는 뱅크 n에 저장되어 있다.
단계 S20f에서, 연산 결과가 "1"이라고 판정된 경우에, 단계 S20g, S20h, S20e, S20f가, 순차적으로 행해지는 것은 연산 결과가 "1"인 경우, 변수 m과 변수 ma에 대입된 관리 번호 m과 관리 번호 ma가 연속한 번호이고, 뱅크 n-1와 뱅크 n에 전후해서 로그가 저장된 것을 나타내고 있다. 즉, 로그 메모리(253)의 영역은 뱅크 번호순으로 순회적으로 사용되고, 또한 관리 번호도 M의 잉여계에서 순회적으로 사용되는 것이기 때문에 연속해서 저장된 경우, 연속하는 뱅크에 저장된 관리 번호의 차는 "1"로 되기 때문이다. 따라서 뱅크 n-1에는 최신의 로그가 저장되어 있지 않음을 알 수 있다. 또, 뱅크 n에 대해서는 불분명하다. 그리고 판단하는 영역을 1개 진행시켜, 뱅크 n에 저장되어 있는 로그에 대하여 판정한다. 즉, 뱅크 n에 저장되어 있는 로그의 관리와, 다음의 영역인 뱅크 n+1에 저장되어 있는 로그의 관리 번호에 기초하여 판정한다. 흐름도에서는 단계 S20g에서, n에는 n+1이 대입됨으로써 다음의 영역에 대한 판정으로 된다.
이와 같이, 단계 S20f, S20g, S20h, S20e의 루프를 반복해서 행함으로써 뱅 크 0부터 순서대로 뱅크 N-l까지 연속한 영역에 저장된 관리 번호가 연속되어 있는지의 여부가 판정된다. 또, 뱅크 N-1와 비교되는 것은 뱅크 O의 번호인, 상술한 바와 같이 뱅크의 번호에 대한 연산은 N의 잉여계에서 이루어진다. 즉, 뱅크 N-1의 판정에서는, n-1=N-1, n= 0이다.
단계 S20f에서, 연산 결과가 "1"이 아닌 경우에, 뱅크 n-1에 저장된 로그를 최신의 로그로 판정하는 것은, 이 경우, 뱅크 n-1 및 뱅크 n에 저장되는 2개의 로그의 관리 번호가 불연속적이기 때문이다. 즉, 상술한 바와 같이 전후해서 로그의 관리 번호는 연속된다. 반대로 연속되지 않는 관리 번호를 포함하는 로그는 연속하지 않는 것으로 된다.
또한 도 12에 따라서 뱅크 n-1를 특정하기 위해서는, HD(20)의 출하시에서의 로그 메모리(253)의 초기화에 의해 로그 메모리(253)의 모든 영역(253l~253N)에, 즉 뱅크 0~뱅크 N-1에 대하여, 소정의 관리 번호를 포함하는 로그를 저장해 둘 필요가 있다. 관리 번호로서 모든 뱅크에 대하여 동일한 값, 혹은 연속하는 뱅크에 연속하는 값(한군데 불연속으로 됨.)을 갖는 로그를 저장해 둔다. 또, 로그의 다른 영역에 대해서는, 어느 값이어도 된다.
다시, 도 11을 참조하여, 상술한 방법에 의해 최신의 이력 정보(로그)가 기록되어 있는 뱅크 n-1과, 뱅크 n-l에 저장된 관리 번호 m을 취득한 후, 컨트롤러(214)는 뱅크 n에 관리 번호 m+l, 단계 S16에서 수리한 라이센스 ID, 단계 S19에서 수리한 세션키 Ks2a를 저장하고, ST1 영역(2545)의 스테이터스 STl을 "수신 대기"로 설정한다(단계 S20b). 이것에 의해, 도 9에 도시하는 단계 S20의 동작이 종료 되고, 단계 S21로 이행한다.
다시, 도 9를 참조하여, 단계 S20의 이후, 암호 처리부(224)는 전환 스위치(260)의 접점 Pb를 통해 복호 처리부(230)로부터 제공되는 세션키 Ksla에 의해, 전환 스위치(262)의 접점 Pd와 Pf를 순서대로 전환함으로써 제공되는 세션키 Ks2a와 개별 공개 키 KPom2로 이루어지는 1개의 데이터 열을 암호화하고, E(Ksla, Ks2a//KPom2)를 생성한다(단계 S21). 그리고 암호 처리부(224)는 E(Ksla, Ks2a//KPom2)를 버스(BS3)에 출력한다. 버스(BS3)에 출력된 암호화 데이터 E(Ksla, Ks2a//KPom2)는 컨트롤러(214)에 의해 수리되고, 컨트롤러(214)는 수리한 암호화 데이터와 라이센스 ID(LID)를 1개의 데이터 열로 한 데이터 LID//E(Ksla, Ks2a//KPom2)를 ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 출력한다(단계 S22).
그리고 단말 장치(10)는 데이터 LID//E(Ksla, Ks2a//KPom2)를 HD(20)로부터 수리하면(단계 S23), 수리한 데이터를 네트워크(30)를 통해 라이센스 제공 장치(40)에 출력한다(단계 S24).
라이센스 제공 장치(40)는 데이터 LID//E(Ksla, Ks2a//KPom2)를 수신하면(단계 S25), 복호 처리부(422)에서 세션키 Ksla에 의한 복호 처리를 실행하고, HD(20)에서 생성된 세션키 Ks2a 및 HD(20)의 개별 공개 키 KPom2를 수리한다(단계 S26).
배신 제어부(412)는 라이센스 ID(LID)에 대응하는 데이터 ID(DID) 및 콘텐츠키 Kc를 콘텐츠 DB(402)로부터 취득하고(단계 S27), 라이센스 ID(LID) 및 제어 정보 AC와 합친 1개의 데이터 열로서의 라이센스 LIC= Kc//AC//DID//LID를 생성한다.
배신 제어부(412)는 생성한 라이센스 LIC를 암호 처리부(424)에 제공한다. 암호 처리부(424)는 복호 처리부(422)에 의해 얻어진 HD(20)의 개별 공개 키 KPom2에 의해 라이센스 LIC를 암호화하여 암호화 데이터 E(KPom2, LIC)를 생성한다(단계 S28). 그리고 암호 처리부(426)는 암호 처리부(424)로부터 받는 암호화 데이터 E(KPom2, LIC)를, 복호 처리부(422)로부터 받는 세션키 Ks2a에 의해 암호화하고, 암호화 데이터 E(Ks2a, E(KPom2, LIC))를 생성한다(단계 S29).
도 10을 참조하여, 배신 제어부(412)는 버스(BS1) 및 통신 장치(450)를 통해 암호화 데이터 E(Ks2a, E(KPom2, LIC))를 단말 장치(10)를 향해 출력한다(단계 S30). 단말 장치(10)는 네트워크(30)를 통해 암호화 데이터 E(Ks2a, E(KPom2, LIC))를 수리하면(단계 S31), 수리한 암호화 데이터를 HD(20)에 출력한다(단계 S32).
HD(20)의 컨트롤러(214)는 단자(210) 및 ATA 인터페이스부(212)를 통해 암호화 데이터 E(Ks2a, E(KPom2, LIC))를 수리하면(단계 S33), 버스(BS3)에 출력한다. 복호 처리부(228)는 세션키 발생부(226)로부터 공급된 세션키 Ks2a를 이용하여 버스(BS3)에 출력된 데이터 E(Ks2a, E(KPom2, LIC))를 복호하고, HD(20)에서 라이센스 LIC가 개별 공개 키 KPom2에 의해 암호화된 암호화 라이센스 E(KPom2, LIC)가 수리된다(단계 S34). 그리고 복호 처리부(228)는 암호화 라이센스 E(KPom2, LIC)를 버스(BS3)에 출력한다.
컨트롤러(214)의 지시에 의해, 암호화 라이센스 E(KPom2, LIC)는 복호 처리부(216)에서 개별 비밀 키 Kom2에 의해 복호되고, 라이센스 LIC가 수리된다(단계 S35).
HD(20)의 컨트롤러(214)는 라이센스 LIC의 수리를 확인하면, ATA 인터페이스부(212) 및 단자(210)를 통해 그 취지를 단말 장치(10)에 통지한다. 단말 장치(10)의 컨트롤러(108)는 HD 인터페이스부(110) 및 버스(BS2)를 통해, HD(20)에서 라이센스 LIC가 수리된 취지의 통지를 수리하면, HD(20)의 시큐어 데이터 기억부(250)에서, 그 수신한 라이센스 LIC를 저장하는 LBA("저장 LBA"라 함.)를 버스(BS2) 및 HD 인터페이스(110)를 통해 HD(20)에 출력한다(단계 S36). HD(20)의 컨트롤러(214)는 단자(210) 및 ATA 인터페이스부(212)를 통해 라이센스 LIC의 저장 LBA를 수리하면(단계 S37), 그 수리한 저장 LBA를 로그 메모리(253)의 뱅크 n에 저장된 로그의 LBA 영역(2547)에 기억한다(단계 S38).
그리고 컨트롤러(214)는 수리한 라이센스 LIC에 포함되는 라이센스 ID(LID)와, 단계 S16에서 수리한 라이센스 LID(LID)를 비교하고, 일치하는지의 여부를 체크한다(단계 S39). 컨트롤러(214)는 LID가 일치하고, 수리한 라이센스 LIC가 올바르다고 판단하면, 단말 장치(10)로부터 수리한 시큐어 데이터 기억부(250) 내의 LBA에 수리한 라이센스 LIC를 기억한다(단계 S40).
컨트롤러(214)는 지정된 LBA에 라이센스 LIC를 기억하면, 유효 플래그 영역(252)의 그 LBA에 대응하는 플래그를 "유효"로 한다(단계 S41). 그리고 컨트롤러(214)는 또한 로그 메모리(253)의 뱅크 n에 저장된 로그의 ST1 영역(2544)의 스테이터스 STl을 "수신 종료"로 변경하고(단계 S42), 배신 세션에서의 일련의 처리가 종료했음을 단말 장치(10)에 통지한다.
그리고 단말 장치(10)에서, HD(20)로부터 처리 종료 통지가 수리되면, 데이터 배신 시스템에서의 배신 세션이 정상 종료된다.
한편, 단계 S39에서 컨트롤러(214)는 LID가 일치하지 않고, 수리한 라이센스 LIC가 올바르지 않다고 판단하면, 에러 통지를 단말 장치(10)에 출력하고(단계 S43), 단말 장치(10)는 에러 통지를 수리하면(단계 S45), 처리를 종료한다.
도 9 및 도 10에 도시된 배신 처리에서는, 라이센스 제공 장치(40)에서의 로그의 기록에 관한 기재가 이루져 있지 않지만, 도 4에 도시한 바와 같이, 라이센스 제공 장치(40)에는 충분한 기억 용량을 갖는 로그 DB(404)가 구비되어 있고, 배신 세션에서의 각 단계에서의 로그가 로그 DB(404)에 기억된다. 또한 로그 DB(404)에는 라이센스의 송신에 수반하는 과금 정보 등도 기억된다.
도 9 및 도 10에 도시된 배신 처리에서의 일련의 처리에서, 단계 S25부터 단계 S44의 처리 중에 이상이 발생하여 처리가 중단되었을 때는, 재기입 처리의 대상으로 된다. 예를 들면, 중단의 이유로서, 상기 처리 중에 단말 장치(10)의 전원이 차단되거나, 라이센스 제공 장치(40)측의 이상, 혹은 단말 장치(10)와 라이센스 제공 장치(40)와의 통신 이상 등, 다양한 이상 케이스를 생각할 수 있다. 여기서, HD(20) 내의 로그 메모리(253)에 저장된 스테이터스 ST2를 제외한 출력 로그의 내용이 전부 저장된 단계 S22 종료 후부터 단계 S44까지의 처리 중에 처리가 중단된 경우에는 HD(20)는 재기입 처리를 행하여 라이센스의 제공을 받는 것이 가능하다. 여기서는, 단말 장치(10)의 판단에 의해 재기입 처리를 행하는 것으로 했기 때문에, 단말 장치(10)에서 처리의 진행을 확인할 수 있는 단계 S22부터 단계 S24를 제 외한, 단계 S25부터 단계 S44의 처리 중에 처리가 중단된 경우를 재기입 처리의 대상으로 하고, 다른 단계에서의 처리의 중단에서는 라이센스 제공 장치(40)로부터 라이센스의 제공이 이루어지지 않은 것으로 판단하여, 도 9 및 도 10에 도시한 흐름도에 따라서, 처음부터 처리를 행하는 것으로 했다.
마찬가지로, 라이센스 제공 장치(40)가 라이센스를 출력하기 까지의 라이센스 제공 장치(40) 내의 단계 S25부터 단계 S30까지의 처리에 대해서는, 단말기10 장치(10)에서, 이들의 어느 단계를 처리 중에 처리가 중단됐는지를 특정할 수 있는 경우에는, 재기입 처리의 대상으로부터 제외하여, 도 9 및 도 10에 도시한 흐름도에 따라서, 처음부터 처리를 행하는 것으로 해도 된다.
[배신에서의 재기입]
도 13~도 15는, 도 9 및 도 10에서 도시한 배신 처리에서의 단계 S25부터 단계 S44의 처리 중에 이상이 발생했을 때에 행해지는 재기입 처리의 제1부터 제3 흐름도이고, 도 16은 도 13의 단계 S112a의 상세한 동작을 설명하기 위한 흐름도이다.
도 13을 참조하여, 단말 장치(10)는 단계 S25부터 단계 S44의 처리 중에 이상이 발생했다고 판단하면, 라이센스 LIC의 LID//재기입 요구를 네트워크(30)를 통해 라이센스 제공 장치(40)에 출력한다(단계 S101). 배신 제어부(412)는 통신 장치(450) 및 버스(BS1)를 통해 LID//재기입 요구를 수리하면(단계 S102), 세션키 발생부(414)에 세션키를 생성하도록 지시한다. 지시를 받은 세션키 발생부(414)는 재기입 처리를 위한 세션키 Kslb를 생성한다(단계 S25103). 그리고 배신 제어부 (412)는 이 세션에서 HD(20)와 주고 받은 로그가 저장되어 있는 로그 DB(402)로부터 HD(20)에 대응하는 클래스 공개 키 KPcm1을 취득하고(단계 S104), 암호 처리부(420)에 제공한다. 클래스 공개 키 KPcm1을 받은 암호 처리부(420)는 클래스 공개 키 KPcm1에 의해 세션키 Ks1b를 암호화하고, E(KPcm1, Kslb)가 생성된다(단계 S105). 그리고 배신 제어부(412)는 LID//E(KPcml, Kslb)를 버스(BS1) 및 통신 장치(450)를 통해 단말 장치(10)를 향해 출력한다(단계 S106).
단말 장치(10)는 네트워크(30)를 통해 LID//E(KPcml, Kslb)를 수리하면(단계 S107), 수리한 LID//E(KPcml, Kslb)를 HD(20)에 출력한다(단계 S108). 그리고 HD(20)의 컨트롤러(214)는 단자(210) 및 ATA 인터페이스부(212)를 통해 LID//E(KPcm1, Kslb)를 수리한다(단계 S109). 컨트롤러(214)는 수리한 E(KPcml, Kslb)를 버스(BS3)를 통해 복호 처리부(230)로 제공하고, 복호 처리부(230)는 Kcm 유지부(204)에 유지되는 HD(20)에 고유의 클래스 비밀 키 Kcm1에 의해 복호 처리함으로써, 세션키 Kslb를 복호하고, 세션키 Kslb가 수리된다(단계 S110).
HD(20)의 컨트롤러(214)는 라이센스 제공 장치(40)에서 생성된 세션키 Kslb의 수리를 확인하면, ATA 인터페이스부(212) 및 단자(210)를 통해 그 취지를 단말 장치(10)에 통지한다. 단말 장치(10)의 컨트롤러(108)는 HD 인터페이스부(110) 및 버스(BS2)를 통해, HD(20)에서 세션키 Kslb가 수리된 취지의 통지를 수리하면, 로그의 출력 요구를 버스(BS2) 및 HD 인터페이스부(110)를 통해 HD(20)에 출력한다(단계 Sll1).
HD(20)의 컨트롤러(214)는 단자(210) 및 ATA 컨트롤러(212)를 통해 로그의 출력 요구 통지를 수리하고(단계 S112), 로그의 복제 처리를 행한다(단계 S112a).
여기서, 도 16을 참조하여, 단계 S112a의 상세한 동작에 대하여 설명한다. 컨트롤러(214)는 로그 메모리(253) 중, 최신의 로그가 저장된 뱅크 n-1의 특정과, 뱅크 n-1에 저장되어 있는 로그의 관리 번호 m을 취득한다(단계 S112b). 이 단계 S112b의 상세한 동작은, 도 11 및 도 12에 도시하는 흐름도에 따라서 행해진다.
단계 S112b후, 컨트롤러(214)는 변수 k(k는 자연수, 1≤k≤N)에 "1"을, 변수 ERR에 "거짓"을 대입하고(단계 S112c), 뱅크 n-k에 저장된 로그의 라이센스 ID(LID)가, 단계 S109에서 수리한 라이센스 ID(LID)에 일치하는지의 여부를 판정한다. 즉, 컨트롤러(214), 단계 S112b에서 검출한 최신의 로그에 저장된 라이센스 ID(LID)가, 단계 S109에서 수리한 라이센스 ID(LID)에 일치하는지의 여부를 판정한다.
2개의 라이센스 ID(LID)가 불일치한 경우, 컨트롤러(214)는 k가 N(뱅크의 총수)보다도 작은지의 여부를 판정하고(단계 S112e), k가 N이상일 때, 모든 뱅크에 대하여 확인이 종료되고, 즉 수리한 라이센스 ID(LID)에 일치하는 LID를 기록한 로그가 저장되어 있지 않음이 확인되어, 단계 S112h로 진행하고, 변수 ERR에 "참"을 대입한다(단계 S112h). 그리고 도 13의 단계 S113a로 되돌아가, 변수 ERR을 확인한다.
다시, 도 13을 참조하여, 컨트롤러(214)는, 변수 ERR을 확인한다(단계 S113a). 도 16의 단계 S112h로부터 이행한 경우, 변수 ERR는 "참"이고, 해당하는 라이센스 ID를 기록하는 로그가, 로그 메모리(253)에 저장되어 있지 않았음을 나타 내고 있기 때문에 처리를 계속할 수는 없다. 따라서 도 15에 도시하는 단계 S160으로 이행하고, 에러 통지를 단말 장치(10)에 출력한다(단계 S160). 그리고 단말 장치(10)는 에러 통지를 수리하고(단계 Sl61), 기입 거부에 의해 일련의 동작이 종료된다.
도 16을 참조하여, 단계 S112e에서 컨트롤러(214)는, k는 N보다도 작다고 판정하면, 모든 뱅크에 대한 확인이 종료되어 있지 않기 때문에, 지금 확인한 로그보다 1개 오래된 로그를 확인하기 위해, 변수 k에 k-1를 대입하고(단계 S112f), 단계 S112d로 이행한다. 그리고 컨트롤러(214)는 뱅크 n-k에 저장된 라이센스 ID(LID)가 단계 S109에서 수리한 라이센스 ID(LID)와 일치하는지의 여부를 판정한다. 이 경우, 변수 k의 값은 "2"이기 때문에, 컨트롤러(214)는 뱅크 n-2에 저장된 로그의 라이센스 ID(LID)가 단계 S109에서 수리한 라이센스 ID(LID)에 일치하는지의 여부를 판정한다. 그리고 2개의 라이센스 ID(LID)가 불일치한 경우, 단계 S112e, S112f, S112d가 행해진다.
이와 같이, 컨트롤러(214)는 최신의 로그로부터, 보다 오래된 로그가 저장되는 뱅크를 향해, 각 뱅크에 저장된 라이센스 ID(LID)가 단계 S109에서 수리한 라이센스 ID(LID)와 일치하는지의 여부를 판정한다. 그리고 이 동작(단계 S112e, Sl12f, S112d)은 단계 S109에서 수리한 라이센스 ID(LID)에 일치하는 라이센스 ID(LID)가 검출될 때까지, 혹은 모든 뱅크의 확인이 종료될 때까지 반복해서 행해진다. 또, 뱅크 번호는 N의 잉여계이기 때문에, 라이센스 ID의 확인은 뱅크 n-l(k=l), n-2(k=2), …, 1(k=n-l), 0(k=n), N-1(k=n+1), …, n(k=N)의 순으로 확인 된다.
단계 S112d에서, 2개의 라이센스 ID(LID)가 일치했을 때, 컨트롤러(214)는 뱅크 n-k에 저장된 로그를 취득하고, 그 취득한 로그의 관리 번호 m을 m+1로 변경한 후, 그 로그를 뱅크 n에 저장한다(단계 S112g). 즉, 컨트롤러(214)는 라이센스 제공 장치(40)로부터 송신된 라이센스 ID(LID)에 일치하는 라이센스 ID(LID)를 포함하는 로그가 로그 메모리(253)에 저장되어 있는 경우, 그 로그(복수 있는 경우에는, 보다 새로운 로그)를 가장 오래된 로그가 저장된 뱅크 n에 복제한다. 이 경우, 관리 번호만은 복제되지 않고, 복제한 로그가 새로운 로그로서 취급되도록 앞의 뱅크 n-1에 저장된 로그의 관리 번호에 1를 더한 값을 기록한다. 따라서 가장 오래된 로그는 삭제되고, 거기에 현재 진행 중의 재기입 처리에 대한 새로운 로그가 저장된다.
그 후, 도 13에 도시하는 단계 Sl13a로 이행한다.
다시, 도 13을 참조하여, 컨트롤러(214)는 변수 ERR을 저장한다(단계 Sl13 a). 도 16에 도시하는 단계 S112g로부터 이행한 경우, 변수 ERR은 "거짓"이고, 해당하는 라이센스 ID를 기록한 로그가 뱅크 n에 복제되기 때문에 처리의 계속이 가능하다고 판단되고, 단계 S113으로 이행하여, 로그 메모리(253)의 뱅크 n에 저장된 저장 LBA에 기억되는 라이센스 LIC의 라이센스 ID(LID)와, 로그 메모리(253)에 저장된 라이센스 ID(LID)가 일치하는지의 여부를 체크한다(단계 S113).
컨트롤러(214)는 양 라이센스 ID(LID)가 일치한다고 판단되면, 배신 처리로서는, 라이센스 제공 장치(40)로부터의 라이센스 LIC의 수리까지는 행해지고, HD(20)에서 라이센스 LIC는 수리하고 있다고 인식한다. 그러면, 컨트롤러(214)는 로그 메모리(253)의 뱅크 n에 저장된 저장 LBA에 의해 지정된 영역에 기억되는 라이센스에 대응하는 유효 플래그 영역(252)에 저장되어 있는 플래그를 체크하여 그 라이센스의 유효성을 체크한다(단계 S114).
컨트롤러(214)는 라이센스가 유효하다고 판단되면, 로그 메모리(253)의 뱅크 n에 저장된 로그의 스테이터스 ST2를 "데이터 유"로 변경하고, 다음의 처리(단계 S 118)로 이행한다. 한편, 컨트롤러(214)는 단계 S114에서 라이센스가 무효하다고 판단되면, 로그 메모리(253)의 뱅크 n에 저장된 로그의 스테이터스 ST2를 "이동 종료"로 변경하고, 다음의 처리(단계 S1188)로 이행한다.
단계 113에서, 컨트롤러(214)는 비교한 라이센스 ID(LID)가 일치하지 않다고 판단했을 때는, 로그 메모리(253)의 뱅크 n에 저장된 로그의 스테이터스 ST2를 " 데이터 무"로 변경한다(단계 S117).
스테이터스 ST2의 변경 처리가 이루어지면 , 컨트롤러(214)는 로그 메모리(253)의 뱅크 n으로부터 라이센스 ID(LID), 스테이터스 STl, ST2 및 세션키 Ks2c를 취득한다(단계 S118). 여기서, 이 처리는 도 9 및 도 10의 흐름도에 따라서 배신 세션의 중단에 대한 처리이기 때문에 로그 메모리(253)의 뱅크 n에 저장되어 있는 세션키는 Ks2a이지만, 설명의 관계상, 로그 메모리(253)의 뱅크 n으로부터 취득한 세션키를 Ks2c로 하고 있다. 그리고 컨트롤러(214)는 취득한 세션키 Ks2c를 버스(BS3)를 통해 암호 처리부(224)에 출력한다.
암호 처리부(224)는 전환 스위치(260)의 접점 Pb를 통해 복호 처리부(230)로 부터 공급되는 세션키 Kslb에 의해, 버스(BS3)로부터 취득한 세션키 Ks2c를 암호화하고, E(Kslb, Ks2c)를 생성한다(단계 S119). 그리고 암호 처리부(224)는 생성한 E(Kslb, Ks2c)를 버스(BS3)에 출력한다. 버스(BS3)에 출력된 E(Kslb, Ks2c)는 컨트롤러(214)에 의해 수리되고, 컨트롤러(214)는 단계 S118에서 취득한 데이터와 함께 1개의 데이터 열 LID//E(Kslb, Ks2c)//ST1//ST2를 생성하고, 해시 함수를 이용하여 해시값 H(LID//E(Kslb, Ks2c)//STl//ST2)를 생성한다(단계 S120). 그리고 컨트롤러(214)는 해시값 H(LID//E(Ks1b, Ks2c)//ST1//ST2)를 버스(BS3)를 통해 암호 처리부(224)에 출력한다.
암호 처리부(224)는 전환 스위치(260)의 접점 Pb를 통해 복호 처리부(230)로부터 공급되는 세션키 Kslb에 의해, 버스(BS3)로부터 취득한 해시값 H(LID//E(Kslb, Ks2c)//ST1//ST2)를 암호화하고, E(Kslb, H(LID//E(Kslb, Ks2c)//ST1//ST2))를 생성한다(단계 S]21). 그리고 암호 처리부(224)는 생성한 E(Kslb, H(LID//E(Kslb, Ks2c)//ST1//ST2))를 버스(BS3)에 출력한다. 여기서, 데이터 열 LID//E(Kslb, Ks2c)//ST1//ST2를 수신 로그라 하고, E(Kslb, H(LID//E(Kslb, Ks2c)//ST1//ST2))는 수신 로그에 대하여 세션키 Kslb를 이용하여 전자 서명을 행한 서명 데이터이다. 또한 로그 메모리(253)에 저장되어 있던 세션키 Ks2c를 세션키 Kslb를 이용하여 암호화하는 것은, 세션키 Ks2c의 누설에 의한 라이센스의 유출의 위험성을 배제하기 위해서이다.
컨트롤러(214)는 버스(BS3)로부터 서명 데이터를 수리하면, 단계 S118에서 취득한 수신 로그를 이용하여, 서명 첨부 수신 로그 LID//E(Kslb, Ks2c)//STl//ST2//E(Kslb, H(LID//E5(Ks1b, Ks2c)//ST1//ST2))를 생성하고, ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 출력한다(단계 S122).
단말 장치(10)는 서명 첨부 수신 로그 LID//E(Kslb, Ks2c)//ST1//ST2//E(Kslb, H(LID//E(Kslb, Ks2c)//STl//ST2))를 HD(20)로부터 수리하면(단계 S123), 수리한 데이터를 네트워크(30)를 통해 라이센스 제공 장치(40)에 출력한다(단계 S124). 그리고 라이센스 제공 장치(40)는 네트워크(30)를 통해 서명 첨부 수신 로그 LID//E(Kslb, Ks2c)//ST1//ST2//E(Kslb, H(LID//E(Kslb, Ks2c)//ST1//ST2))를 수신한다.(단계 S125)
도 14를 참조하여, 라이센스 제공 장치(40)는 수신한 서명 첨부 수신 로그 LID//E(Kslb, Ks2c)//ST1//ST2//E(Kslb, H(LID//E(Kslb, Ks2c)//ST1//ST2))의 검증을 행한다(단계 S126). 검증 처리는 다음과 같이 행해진다.
배신 제어부(412)는, 서명 첨부 수신 로그를 수리하면, 먼저 수리한 서명 첨부 수신 로그의 후반부인 서명 데이터 E(Ks1b, H(LID//E(Kslb, Ks2c)//ST1//ST2))를 복호 처리부(422)에 출력함과 함께, 세션키 발생부(414)에 세션키 Kslb를 발생하도록 지시한다. 그리고 복호 처리부(422)는 세션키 Kslb에 의해 서명 데이터 E(Kslb, H(LID//E(Kslb, Ks2c)//ST1//ST2))를 복호하고, HD(20)에서 연산한 해시값을 추출한다. 한편, 배신 제어부(412)는 서명 첨부 수신 로그의 전반부인 수신 로그 LID//E(Kslb, Ks2c)//ST1//ST2의 해시값을 연산하고, 복호 처리부(422)에 의해 복호된 HD(20)에서 연산된 해시값과 비교한다. 배신 제어부(412)는 2개의 해시값이 일치했다고 판단하면, HD(20)로부터 수리한 데이터 열은 정당한 데이터를 포함 하는 것으로서 라이센스 제공 장치(40)에서 승인된다.
단계 S126에서 HD(20)로부터 수리한 서명 첨부 수신 로그가 승인되면, 배신 제어부(412)는 수리한 라이센스ID(LID)에 기초하여 로그 DB(404)를 검색한다(단계 S127). 배신 제어부(412)는 수리한 라이센스 ID(LID)가 로그 DB(404) 내에 저장되어 있고, HD(20)에 대하여 확실히 제공을 행한 라이센스라고 판단하면, 수리한 스테이터스 STl, ST2의 내용을 확인한다(단계 S128).
배신 제어부(412)는 스테이터스 ST1이 "수신 대기"이고, 스테이터스 ST2가 " 데이터 무"일 때, HD(20)에 분명히 송신했을 라이센스 LIC가 어떠한 이상에 의해 HD(20)에서 수리되지 않다고 판단하고, 수신한 데이터 열에 포함되는 암호화 데이터 E(Kslb, Ks2c)를 복호 처리부(422)에 출력하여 세션키 Kslb에 의해 세션키 Ks2c를 복호한다. 그리고 복호된 세션키 Ks2c는 버스(BS1)를 통해 배신 제어부(412)에 출력되고, 배신 제어부(412)에서 세션키 Ks2c가 수리된다(단계 S129).
그리고 배신 제어부(412)는 이상 발생시의 세션키 Ks2a를 이번에 수리한 세션키 Ks2c와 비교 체크한다(단계 S130). 배신 제어부(412)는 세션키 Ks2a와 세션키 Ks2c가 일치한다고 판단하면 , 라이센스 LIC의 재기입에 대한 허가 통지를 단말 장치(10)에 출력한다(단계 S133).
한편, 단계 S126에서 HD(20)로부터 수리한 데이터 열이 승인되지 않았을 때, 단계 S127에서 HD(20)로부터 수리한 라이센스 ID(LID)가 로그 DB(404) 내에 저장되어 있지 않고, HD(20)에 대하여 제공을 행한 라이센스라고 판단할 수 없을 때, 단계 S128에서, HD(20)에서 라이센스 LIC가 수리된 것으로 판단되었을 때, 또는 단계 S130에서, 세션키 Ks2a가 세션키 Ks2c와 일치하지 않는다고 판단되었을 때는, 배신 제어부(412)는 라이센스의 재송신은 불가능하다고 판단하고, 버스(BS1) 및 통신 장치(450)를 통해 에러 통지를 단말 장치(10)를 향해 출력하고 (단계 S131), 단말 장치(10)는 네트워크(30)를 통해 에러 통지를 수리하면(단계 Sl32), 처리가 종료된다. 즉, 라이센스 제공 장치(40)에서, 라이센스의 재기입이 거부되어 처리가 종료된다.
단말 장치(10)의 컨트롤러(108)는 단계 Sl33에서 라이센스 제공 장치(40)가 출력한 허가 통지를 수리하면(단계 Sl34), HD(20)에 대한 세션키의 생성의 요구 통지를 버스(BS2) 및 HD 인터페이스부(110)를 통해 HD(20)에 출력한다(단계 S135).
HD(20)는 라이센스 제공 장치(40)로부터의 재기입 처리 허가 통지에 기초하여, 단말 장치(10)로부터 세션키의 생성 요구 통지를 수리하면, 새로 세션키 Ks2b를 생성하고(단계 S136), 로그 메모리(253)의 뱅크 n의 로그에 기록되어 있는 세션키 Ks2c(=Ks2a)를, 생성한 세션키 Ks2b에, 로그의 스테이터스 ST1을 "수신 대기"로 변경한다(단계 S137).
이하, 단계 S138로부터의 일련의 처리는, 도 9 및 도 10에서 설명한 단계 S21부터 처리 종료까지의 일련의 처리에서, 세션 Ks2a를 대신하여 새로 생성하여 세션키 Ks2b가 사용되는 이외에는, 동일한 처리가 행해진다. 따라서 단계 S138부터의 일련의 처리의 설명은 반복이 되기 때문에 생략한다.
또한 도 13~도 15의 흐름도에 도시되는 라이센스의 배신에서의 재기입 처리 중의 중단에 대해서는, 단계 S101~S131, 단계 S133 및 단계 S142~S160 중 어느 단 계에서 처리가 중단된 경우에는, 다시 도 13~도 15의 흐름도에 따라서 재기입 처리를 행할 수 있다. 한편, 단계 S134~Sl41 중 어느 단계에서 처리가 중단된 경우에는, 도 9 및 도 10의 흐름도에 도시되는 라이센스의 배신 처리를 처음부터 행함으로써, 처리를 재개할 수 있다.
이와 같이 하여, 단말 장치(10)에 장착된 HD(20)가 정규의 클래스 증명서 Cm1을 유지하는 기기임을 확인한 후에, 클래스 증명서 Cm1에 포함되어 송신된 클래스 공개 키 KPcml에 의해 라이센스 제공 장치(40) 및 HD(20)에서 각각 생성되는 암호 키(세션키)를 주고 받고, 서로가 수령한 암호 키를 이용한 암호화를 실행하여, 그 암호화 데이터를 상대방에게 송신함으로써, 각각의 암호화 데이터의 송수신에서도 사실상의 상호 인증을 행할 수 있다. 이것에 의해, 부정한 하드 디스크로의 라이센스의 배신을 금지할 수가 있고, 데이터 배신 시스템의 보안을 향상시킬 수 있다.
또한 라이센스의 배신 처리가 중단되어도, 수신측의 데이터 기억 장치인 HD(20)에서의 서명 첨부 수신 로그를 라이센스 제공 장치(40)에 송신함으로써, 라이센스의 중복 배신을 행하지 않고, 라이센스의 재송 처리를 안전하게 행할 수 있다.
[복제·이동]
도 17은 라이센스의 복제·이동이 행해지는 시스템의 구성을 개념적으로 도시한 개략도이다. 도 17을 참조하여, 단말 장치(10)에 데이터 기억 장치로서 2대의 HD(20, 21)가 장착 가능하고, 단말 장치(10)를 통해 HD(20)로부터 HD(21)로 라 이센스의 복제 또는 이동이 행해진다.
여기서, HD(21)는 HD(20)와 서로 다른 데이터 기억 장치이기 때문에, HD(20)와는 서로 다른 개별 공개 키 KPom5와 개별 비밀 키 Kom5를 보유하고 있다. 이 경우, HD(21)에서의 식별자 z는 HD(20)의 z=2와는 서로 다른 z=5로 된다. 또한 HD (21)의 클래스는 HD(20)의 클래스와 동일한 y=1로 하여 이하 설명한다. 즉, HD(20), HD(21) 모두, 클래스 증명서 Cm1= KPcm1//Icm1//E(Ka, KPcm1//Icml) 및 클래스 비밀 키 Kcm1를 보유한다. 그러나 HD(21)의 클래스가 HD(20)의 클래스와 서로 다른(y≠1) 경우에는, 클래스 증명서 및 클래스 비밀 키도, 개별 공개 키 및 개별 비밀 키와 마찬가지로, HD(20)와는 서로 다른 것으로 된다.
도 18 및 도 19는, 도 17에 도시하는 라이센스의 복제·이동이 가능한 시스템에서, 단말 장치(10)의 사용자가 단말 장치(10)로부터 암호화 콘텐츠 데이터의 라이센스의 복제 또는 이동의 요청을 행함으로써, 단말 장치(10)를 통해 단말 장치(10)에 장착된 HD(20)로부터 HD(21)로 라이센스의 복제 또는 이동이 행해질 때의 처리(복제·이동 세션)을 설명하기 위한 제1 및 제2 흐름도이다.
도 18을 참조하여, 단말 장치(10)의 사용자로부터 원하는 콘텐츠 데이터의 라이센스에 대한 복제 또는 이동의 요구가 발생하면, 단말 장치(10)의 컨트롤러(108)는 버스(BS2) 및 HD 인터페이스부(110)을 통해 HD(21)로 클래스 증명서의 출력 요구를 출력한다(단계 S201). HD(21)에서는 단자(210) 및 ATA 인터페이스부(212)를 통해 클래스 증명서의 출력 요구가 수리되면(단계 S202), 컨트롤러(214)는 인증 데이터 유지부(202)로부터 클래스 증명서 Cm1= KPcml//Icm1//E(Ka, H(KPcm1//Icml))를 판독하고, 클래스 증명서 Cm1을 ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 출력한다(단계 S203).
단말 장치(10)는 HD(21)로부터 클래스 증명서 Cml을 수리하면(단계 S204), 수리한 클래스 증명서 Cml을 HD(20)에 송신한다(단계 S205).
HD(20)에서는 단말 장치(10)로부터 HD(21)의 클래스 증명서 Cm1을 수리하면(단계 S206), 인증부(220) 및 컨트롤러(214)에 의해 수리한 HD(21)의 클래스 증명서 Cm1이 정당한 클래스 증명서인지의 여부를 인증한다(단계 S207). 인증 처리는 라이센스 제공 장치(40)에서의 인증 처리(도 9의 단계 S7)와 동일하기 때문에 상세한 설명은 생략한다.
단계 S207에서, 컨트롤러(214)는 정당한 HD(21)의 클래스 증명서가 아니라고 판정한 경우에는, HD(21)의 클래스 증명서 Cm1을 비승인으로 하여 수리하지 않고, 에러 통지를 단말 장치(10)에 출력한다(도 19의 단계 S252). 그리고 단말 장치(10)에서 에러 통지가 수리되면(도 15의 단계 S253), 배신 세션이 종료된다.
단계 S207에서 HD(21)의 클래스 증명서 Cm1이 정당한 증명서라고 판단되면, HD(20)의 컨트롤러(214)는 HD(21)의 클래스 증명서 Cm1를 승인하고, 세션키 Ksla를 생성하도록 세션키 발생부(1)226를 제어하고, 세션키 발생부(226)는 세션키 Ksla를 생성한다(단계 S209).
세션키 Ks1a는 인증부(220)에 의해 얻어진 HD(21)의 클래스 공개 키 KPcml에 의해, 암호 처리부(222)에서 암호화되고, 암호화 데이터 E(KPcml, Ksla)가 생성된다(단계 S210).
그리고 컨트롤러(214)는 암호화 데이터 E(KPcm1, Ksla)를 ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 출력한다(단계 S211).
단말 장치(10)는 암호화 데이터 E(KPcml, Ksla)를 수리하면(단계 S212), 수리한 암호화 데이터 E(KPcml, Ksla)를 HD(21)에 출력한다(단계 S213). 여기서, 라이센스 ID(LID)는 사전에 관리 파일을 참조함으로써 단말 장치(10)가 취득하고 있다. 관리 파일은 HD(20)에 기억되어 있는 암호화 콘텐츠 데이터와 라이센스와의 관계를 관리하기 위한 관리 데이터를 기록한 데이터 파일로서, 노멀 데이터 기억부(270)에 기억되고, 암호화 콘텐츠 데이터의 기록 소거나, 라이센스의 기입, 이동 및 소거에 의해 그 내용이 갱신된다.
그리고 HD(21)에서는 컨트롤러(214)가 단자(210) 및 ATA 인터페이스부(212)를 통해 LID//E(KPcml, Ksla)를 수리한다(단계 S214). 계속해서, 컨트롤러(214)는 버스(BS3)를 통해 E(KPcml, Ksla)를 복호 처리부(230)로 제공하고, 복호 처리부(230)는 Kcm 유지부(204)에 유지되는 HD(21)에 고유의 클래스 비밀 키 Kcm1에 의해서 복호 처리함으로써, 세션키 Ksla를 복호하고, 세션키 Ksla를 수리한다(단계 S215).
HD(21)의 컨트롤러(214)는 HD(20)에서 생성된 세션키 Ksla의 수리를 확인하면, ATA 인터페이스부(212) 및 단자(210)를 통해 그 취지를 단말 장치(10)에 통지한다. 단말 장치(10)는 HD(21)에서 세션키 Ksla가 수리된 취지의 통지를 수리하면, 세션키의 생성의 요구 통지를 HD(21)에 출력한다(단계 S216). HD(21)의 컨트롤러(214)는 단자(210) 및 ATA 컨트롤러(212)를 통해 세션키의 생성 요구 통지를 수리하면, 세션키 발생부(226)에 대하여 세션키의 생성을 지시한다. 그리고 세션키 발생부(226)는 세션키 Ks2a를 생성한다(단계 S217).
세션키 발생부(226)는 세션키 Ks2a를 생성하면, 버스(BS3)를 통해 컨트롤러(214)에 출력하고, 컨트롤러(214)는 세션키 Ks2a를 받는다. 그리고 컨트롤러(214)는 가장 오래된 로그를 저장한 뱅크를 검색하고, 거기에 처리 중의 세션에 대한 로그를 새로 저장한다(단계 S218). 단계 S218의 상세한 동작은, 도 11 및 도 12에 도시하는 흐름도에 따라서 행해진다. 단, HD(21)에서의 처리와, HD(20)에서의 동일한 처리 결과를 구별하기 위해 가장 오래된 로그를 저장한 뱅크는 뱅크 na라고 한다. 즉, 도 11 및 도 12에 도시하는 흐름도에서의 변수 n을 변수 na로 대체하면 된다.
따라서 로그 메모리(253)의 뱅크 na에, 뱅크 na-1에 저장되는 로그의 관리 번호에 1을 더한 새로운 관리 번호와, 단계 S214에서 수리한 라이센스 ID(LID)와 세션키 Ks2a를 저장하고, 스테이터스 ST1을 "수신 대기"로 한다.
계속해서, HD(21)에서는 계속해서 암호 처리부(224)는 전환 스위치(260)의 접점 Pb를 통해 복호 처리부(230)로부터 제공되는 세션키 Ksla에 의해, 전환 스위치(262)의 접점 Pd와 Pf를 순서대로 전환함으로써 제공되는 세션키 Ks2a와 개별 공개 키 KPom5로 이루어지는 1개의 데이터 열을 암호화하고, E(Ksla, Ks2a//KPom5)를 생성한다(단계 S219). 그리고 암호 처리부(224)는 E(Ksla, Ks2a//KPom5)를 버스(BS3)에 출력한다. 버스(BS3)에 출력된 암호화 데이터 E(Ksla, Ks2a//KPom5)는 컨트롤러(214)에 의해 수리되고, 컨트롤러(214)는 수리한 암호화 데이터와 라이센스 ID(LID)를 1개의 데이터 열로 한 데이터 LID//E(Ksla, Ks2a//KPom5)를 ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 출력한다(단계 S220).
그리고 단말 장치(10)는 데이터 LID//E(Ks1a, Ks2a//KPom5)를 HD(21)로부터 수리하면(단계 S221), 수리한 데이터를 HD(20)에 출력한다(단계 S222).
HD(20)에서는 단자(210) 및 ATA 인터페이스부(110)를 통해 데이터 LID//E(Ksla, Ks2a//KPom5)를 수리하면(단계 S223), 복호 처리부(228)에서 세션키 Ksla에 의한 복호 처리를 실행하고, HD(21)에서 생성된 세션키 Ks2a 및 HD(21)의 개별 공개 키 KPom5를 추출하여 수리한다(단계 S224). 그리고 복호 처리부(228)는 복호한 세션키 Ks2a를 버스(BS3)를 통해 컨트롤러(214)에 출력하고, 컨트롤러(214)는 세션키 Ks2a를 받는다. 그리고 컨트롤러(214)는 가장 오래된 로그를 저장한 뱅크에 처리 중의 세션에 대한 로그를 새로 저장한다(단계 S225). 단계 S225의 상세한 동작은, 도 20에 도시하는 흐름도에 따라서 행해진다. 도 20을 참조하여, 단계 S225는 로그 메모리(253)의 최신 로그가 기록된 뱅크 n-1을 특정하고, 또한 뱅크 n-1에 저장된 관리 번호 m을 취득하는 단계 S225a와, 뱅크 n에 관리 번호 m+1, 라이센스 ID(LID), 세션키 Ks2a 및 클래스 공개 키 KPcmy를 저장하고, 또한 스테이터스 영역을 "송신 대기"로 설정하는 단계 S225b로 이루어진다. 그리고 단계 S225a의 상세한 동작은, 도 12에 도시하는 흐름도에 따라서 행해진다. 따라서컨트롤러(214)는 도 20 및 도 12에 도시하는 흐름도에 따라서 단계 S223에서 수리한 라이센스 ID(LID)와 단계 S224에서 수리한 세션키 Ks2a를 뱅크 n에 저장하고, 스테이터스 ST1을 "송신 대기"로 한다.
HD(20)에서는 단계 S225의 처리를 끝내면, HD(20)의 컨트롤러(214)는 그 취지를 ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 통지한다. 단말 장치(10)의 컨트롤러(108)는 HD 인터페이스부(110) 및 버스(BS2)를 통해, HD(20)로부터의 통지를 수리하면, HD(20)의 시큐어 데이터 기억부(250)에서 HD(20)로부터 HD(21)에 송신하는 라이센스 LIC가 저장되어 있는 LBA(저장 LBA)를 버스(BS2) 및 HD 인터페이스(110)를 통해 HD(20)에 출력한다(단계 S226). HD(20)의 컨트롤러(214)는 단자(210) 및 ATA 인터페이스부(212)를 통해 송신 대상의 라이센스 LIC의 저장 LBA를 수리하면(단계 S227), 그 수리한 저장 LBA를 시큐어 데이터 기억부(250)의 로그 메모리(253)의 뱅크 n에 기억한다(단계 S228).
그리고 컨트롤러(214)는 수리한 저장 LBA에 저장되는 라이센스 LIC에 대응하는 유효 플래그 영역(252)의 플래그가 "유효"인지 "무효"인지를 확인한다(단계 S229). 컨트롤러(214)는 유효 플래그가 "유효"이면, 저장 LBA에 저장되어 있는 라이센스 LIC를 취득한다(단계 S230).
도 19를 참조하여, HD(20)에서는 컨트롤러(214)가 대상의 라이센스 LIC를 취득하면, 라이센스 LIC에 포함되는 라이센스 ID(LID)와, 단계 S223에서 수리하고, 로그 메모리(253)의 뱅크 na에 저장되어 있는 로그에 기억되어 있는 라이센스 ID(LID)를 비교하여, 일치하는지의 여부를 체크한다(단계 S231). 컨트롤러(214)는 일치한다고 판단하면, 취득한 라이센스 LIC에 포함되는 제어 정보 AC를 확인하여 이용 제한이 걸려있지 않은지를 체크한다(단계 S232).
컨트롤러(214)는 제어 정보 AC에서 라이센스 LIC의 이용이 금지되어 있지 않 음을 확인하면, 취득한 라이센스 LIC를 암호 처리부(232)에 제공한다. 암호 처리부(232)는 복호 처리부(228)에 의해 얻어진 HD(21)의 개별 공개 키 KPom5에 의해 라이센스 LIC를 암호화하여 암호화 데이터 E(KPom5, LIC)를 생성한다(단계 S233). 그리고 암호 처리부(232)는 암호화 데이터 E(KPom5, LIC)를 전환 스위치 Pc를 통해 암호 처리부(224)에 출력하고, 암호 처리부(224)는 암호 처리부(232)로부터 받은 암호화 데이터를 복호 처리부(228)로부터 받은 세션키 Ks2a에 의해 암호화하고, 암호화 데이터 E(Ks2a, E(KPom5, LIC))를 생성한다(단계 S234).
계속해서, 컨트롤러(214)는 대상의 라이센스 LIC에 포함되는 제어 정보 AC에 기초하여, HD(20)로부터 HD(21)로의 라이센스 LIC의 송신이 "이동"인지 "복제"인지를 확인한다(단계 S235). 컨트롤러(214)는 "이동"이라고 확인했을 때는 그 대상의 라이센스 LIC에 대응하는, 즉 저장 LBA에 대응하는 유효 플래그 영역(252)의 플래그를 "무효"로 변경한다(단계 S236). 한편, 컨트롤러(214)는 "복제"라고 확인했을 때는 해당 라이센스 LIC가 HD(20)에 남아 있어도 좋기 때문에, 유효 플래그 영역(252)의 플래그의 변경은 행하지 않고, 다음의 처리(단계 S237)로 이행한다.
컨트롤러(214)는 유효 플래그 영역(252)의 처리가 끝나면, 로그 메모리(253)의 뱅크 n에 저장되어 있는 로그의 스테이터스 STl을 "송신 종료"로 변경하고(단계 S237), ATA 인터페이스부(212) 및 단자(210)를 통해 암호화 데이터 E(Ks2a, E(KPom5, LIC))를 단말 장치(10)에 송신한다(단계 S238).
한편, 단계 S229에서 수리한 저장 LBA에 대응하는 유효 플래그 영역(252)의 플래그가 "무효"였을 때, 단계 S231에서 라이센스 ID(LID)가 일치하지 않을 때, 또 는 단계 S232에서 취득한 라이센스 LIC 에 포함되는 제어 정보 AC에 의해 해당 라이센스 LIC의 이용이 금지되어 있을 때는, 컨트롤러(214)는 단말 장치(10)에 대하여 에러 통지를 출력하고(단계 S252), 단말 장치(10)에서 에러 통지가 수리되면(단계 S253), 처리가 종료된다.
단말 장치(10)는 단계 S238에서 HD(20)로부터 출력된 암호화 데이터 E(Ks2a, E(KPom5, LIC))를 수리하면(단계 S239), 수리한 암호화 데이터를 HD(21)에 출력한다(단계 S240).
HD(21)에서는 컨트롤러(214)가 단자(210) 및 ATA 인터페이스부(212)를 통해 암호화 데이터 E(Ks2a, E(KPom5, LIC))를 수리하고(단계 S241), 버스(BS3)에 출력한다. 복호 처리부(228)는 세션키 발생부(226)로부터 제공된 세션키 Ks2a를 이용하여 버스(BS3)에 출력된 데이터 E(Ks2a, E(KPom5, LIC))를 복호하고, HD(21)에 서 라이센스 LIC가 개별 공개 키 KPom5에 의해 암호화된 암호화 라이센스 E(KPom5, LIC)가 수리된다(단계 S242). 그리고 복호 처리부(228)는 암호화 라이센스 E(KPom5, LIC)를 버스(BS3)에 출력한다.
컨트롤러(214)의 지시에 의해, 암호화 라이센스 E(KPom5, LIC)는 복호 처리부(216)에서 개별 비밀 키 Kom5에 의해 복호되고, HD(21)에서 라이센스 LIC가 수리된다(단계 S243).
컨트롤러(214)는 라이센스 LIC의 수리를 확인하면, ATA 인터페이스부(212) 및 단자(210)를 통해 그 취지를 단말 장치(10)에 통지한다. 단말 장치(10)의 컨트롤러(108)는 HD 인터페이스부(110) 및 버스(BS2)를 통해, HD(21)에서 라이센스 LIC 가 수리된 취지의 통지를 수리하면, HD(21)의 시큐어 데이터 기억부(250)에서 그 수신한 라이센스 LIC를 저장하는 LBA(저장 LBA)을 버스(BS2) 및 HD 인터페이스(110)를 통해 HD(21)에 출력한다(단계 S244). HD(21)의 컨트롤러(214)는 단자(210) 및 ATA 인터페이스부(212)를 통해 라이센스 LIC를 저장하는 저장 LBA를 수리하면(단계 S245), 그 수리한 저장 LBA를 로그 메모리(253)의 뱅크 n에 저장되는 로그의 LBA 영역(2544)에 기록한다(단계 S246).
그리고 컨트롤러(214)는 수리한 라이센스 LIC에 포함되는 라이센스 ID(LID)와, 단계 S214에서 수리한 라이센스 LID(LID)를 비교하고, 일치하는지의 여부를 체크한다(단계 S247). 컨트롤러(214)는 LID가 일치하고, 수리한 라이센스 LIC가 올바른 것이라고 판단하면, 단말 장치(10)로부터 수리한 시큐어 데이터 기억부(250) 내의 저장 LBA에 대응하는 영역에 수리한 라이센스 LIC를 기억한다(단계 S248).
컨트롤러(214)는 지정된 저장 LBA에 라이센스 LIC를 기억하면, 유효 플래그 영역(252)의 그 저장 LBA에 대응하는 플래그를 "유효"로 한다(단계 S249). 그리고 컨트롤러(214)는 또한 로그 메모리(253)의 뱅크 n에 저장된 로그의 스테이터스 ST1을 "수신 종료"로 하고(단계 S250), 복제·이동 세션에서의 일련의 처리가 종료했음을 ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 통지한다.
그리고 단말 장치(10)에서 HD(21)로부터의 처리 종료 통지가 수리되면, HD(20)로부터 HD(21)로의 라이센스 LIC의 복제·이동 세션이 정상 종료된다.
한편, 단계 S247에서 HD(20)의 컨트롤러(214)가, LID가 일치하지 않고, 수리한 라이센스 LlC가 올바르지 않다고 판단하면, ATA 인터페이스부(212) 및 단자 (210)를 통해 에러 통지를 단말 장치(10)에 출력하고(단계 S251), 단말 장치(10)에서 에러 통지가 수리되면(단계 S253), HD(20)로부터 HD(21)로의 라이센스 LIC의 복제·이동 세션이 이상 종료된다.
여기서, 배신 세션일 때와 마찬가지로, 도 18 및 도 19에 도시된 복제·이동 세션에서의 일련의 처리에서, 단계 S227부터 단계 S252의 처리 중에 이상이 발생하고, 처리가 중단됐을 때는, 재기입 처리의 대상으로 된다.
여기서, 도 18 및 도 19에 도시된 복제·이동 세션에서, 단계 S227부터 단계 S235까지의 처리를 재기입 처리의 대상으로 한 것은, 이 일련의 처리가 HD(20)의 내부 처리이고, 단계 S226의 종료 후에는, 단계 S238까지 단말 장치(10)에서 어느 단계를 처리 중에 처리가 중단되었는지를 특정할 수 없기 때문에, 모두 단계 S236가 실행되어 라이센스가 무효화된 것으로 하고, 반드시 재기입 처리의 대상으로 한 것이다.
그리고 단계 S236부터 단계 S247까지의 처리를 재기입 처리의 대상으로 한 것은, "이동"의 경우, 그 동안은 HD(20) 내의 라이센스가 단계 S236에서 무효화되고, 또한 HD(21) 내에 유효한 라이센스가 저장되어 있지 않은 상태로서, 그 동안에 처리가 중단되면, 대상으로 되는 라이센스가 소실되어 버리기 때문이다.
또한 단계 S248부터 단계 S250까지의 처리를 재기입 처리의 대상으로 한 것은 단계 S249, S250에 대해서는 이들의 처리는 단계 S248에서의 라이센스 기입 후의 처리이기 때문에 본래는 처리가 종료되었으나, 단말 장치(10)로부터는 단계 S248의 종료를 특정할 수 없기 때문에, 단계 S248이 종료되지 않은 것으로 간주하 여, 단계 S248부터 단계 S250을 재기입 처리의 대상으로 한 것이다. 또, 단계 S248이 종료되어 재기입 처리가 행해진 경우에는, 재기입은 거부된다.
또한 단계 S251의 처리를 재기입 처리의 대상으로 한 것은, 본래 이 처리에서 처리가 중단되는 것은 매우 특수한 경우에 한정되는 것이지만, 단말 장치(10)에서는, 단계 S251에서 처리가 중단된 것을 특정할 수 없기 때문에, 재기입 처리의 대상으로 한 것이다.
또, 단말 장치(10)에서, 상술한 바와 같이 해당 세션이 라이센스의 "복제"라고 판단할 수 있는 경우, 혹은 단계 S227부터 단계 S235 및 단계 S249부터 단계 S251 중 어느 단계에서 처리가 중단되었는지를 특정할 수 있는 경우에서는, 반드시 재기입 처리로 할 필요는 없으며, 도 18 및 도 19에 도시된 복제·이동 세션을 다시 실행하면 된다.
[이동/복제에서의 재기입]
도 21~도 23은, 도 18 및 도 19에서 도시한 복제·이동 세션의 처리 흐름에서의 단계 S227부터 단계 S252의 처리 중에 이상이 발생했을 때에 행해지는 재기입 처리의 제1부터 제3 흐름도이다.
도 21을 참조하여, 단말 장치(10)는 단계 S227부터 단계 S252의 처리 중에 이상이 발생했다고 판단되면, 라이센스 ID(LID)와 라이센스 LIC의 재송 요구를 데이터 열 LID//재송 요구로서 HD(20)에 출력한다(단계 S301). HD(20)에서는 컨트롤러(214)가 단자(210) 및 ATA 인터페이스부(212)를 통해 LID//재송 요구를 수리한다(단계 S30la). 그리고 로그의 복제 처리를 행한다(30lb). 복제 처리에서는 로그 메모리(253) 내에 단계 S30la에서 수리한 LID를 포함하는 로그가 저장되어 있지 않은지를 검색하고, 저장되어 있는 경우, 로그 메모리(253)의 가장 오래된 로그를 저장하고 있는 뱅크 n에 검색된 LLD를 포함하는 로그를 복제하고, 변수 ERR="거짓"으로 한다. 한편, 로그 메모리(253) 내에 단계 S30la에서 수리한 LID를 포함하는 로그가 저장되어 있지 않은 경우에는, 변수 ERR="참"으로 한다. 이 복제 처리의 상세한 동작은, 도 16에 도시하는 흐름도에 따라서 행해진다.
그리고 컨트롤러(214)는 단계 S30la의 처리 결과의 판정, 즉 변수 ERR이 "참", "거짓" 중 어느 것인지를 판정한다(단계 S30lb). "참"인 경우, 수리한 LID를 포함하는 로그가 뱅크 n으로 복제된 것을 나타내기 때문에, 재송 요구에 대한 처리를 개시하기 위해 다음의 단계 S302로 이행한다. "거짓"인 경우, 수리한 LID를 포함하는 로그가 로그 메모리(253)에 저장되어 있지 않은, 즉 HD(20)에서 수리한 LID에 의해 특정되는 라이센스 LIC의 입출력 처리가 이루어지지 않았음을 나타내기 때문에, 재송 요구에 대응 불가능하다고 판단하고, 도 23의 단계 S372로 이행하고, 에러 통지를 단말 장치(10)에 대하여 출력한다. 단말 장치(10)에서는 에러 통지가 수리되면(단계 S373), 처리가 종료된다.
HD(20)에서, 단계 S301b에서 변수 ERR="거짓"을 확인하면, 컨트롤러(214)는 로그 메모리(253)의 뱅크 n에 복제되고, 또한 저장되어 있는 로그의 스테이터스 ST1의 상태를 확인한다(단계 S302). 컨트롤러(214)는 스테이터스 STl이 "송신 대기" 또는 "송신 종료"가 아닐 때, 즉 복제·이동 세션에서 라이센스 LIC의 송신측이 아닐 때는, 도 23에 도시하는 단계 S371로 처리가 이행된다.
HD(20)의 컨트롤러(214)는 스테이터스 ST1이 "송신 대기" 또는 "송신 종료"일 때는, 세션키 발생부(226)에 세션키를 생성하도록 지시하고, 세션키 발생부(226)는 세션키 Ksla를 생성한다(단계 S303). 세션키 Kslb가 생성되면, 컨트롤러(214)는 중단 이전에 수리한, 라이센스 LIC의 이동/복제처의 HD(21)의 클래스 공개 키 KPcm1을, 로그 메모리(253)의 뱅크 n에 저장된 로그로부터 취득한다(단계 S304). 여기서, 이동/복제처의 HD(21)로부터 다시 클래스 증명서 Imcl을 수리하지 않고 로그에 기억되는 클래스 공개 키 KPcml을 이용하는 것은, 재기입 처리에서의 위장 공격에 의한 라이센스 LIC의 누설을 방지하기 위해서이다. 따라서 다시 클래스 증명서 Imcl을 수리하는 경우에는, HD(20)에서, 중단된 처리에서 수리한 클래스 증명서와, 재기입 처리에서 수리한 클래스 증명서가 동일한지의 여부를 확인할 필요가 있다. 예를 들면, 재기입 처리에서 수리한 클래스 증명서 Imc1에 포함되는 클래스 공개 키와 로그에 기록되는 클래스 공개 키를 비교하여 재기입 처리를 행할지의 여부를 판단한다.
그리고 HD(20)에서는 그 클래스 공개 키 KPcm1에 의해, 세션키 Kslb가 암호 처리부(222)에 의해 암호화되고, 암호화 데이터 E(KPcm1, Kslb)가 생성된다(단계 S305). 컨트롤러(214)는 생성된 암호화 데이터 E(KPcml, Kslb)와 라이센스 ID(LID)를 데이터 열 LID//E(KPcml, Kslb)로 하여 ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 출력한다(단계 S306).
단말 장치(10)는 LID//E(KPcml, Kslb)를 수리하면(단계 S307), 수리한 LID//E(KPcml, Kslb)를 HD(21)에 출력한다(단계 S308).
HD(21)에서, 컨트롤러(214)는 단자(210) 및 ATA 인터페이스부(212)를 통해 LID//E(KPcml, Kslb)를 수리하면(단계 S309), 버스(BS3)를 통해 E(KPcml, Kslb)를 복호 처리부(230)에 공급한다. 그렇게 하면, 복호 처리부(230)는 Kcm 유지부(204)에 유지되는 HD(21)에 고유의 클래스 비밀 키 Kcm1에 의해 복호 처리를 실행하여 세션키 Kslb를 복호하고, 세션키 Kslb를 수리한다(단계 S310).
HD(21)의 컨트롤러(214)는 HD(20)에서 생성된 세션키 Kslb의 수리를 확인하면, ATA 인터페이스부(212) 및 단자(210)를 통해 그 취지를 단말 장치(10)에 통지한다. 단말 장치(10)의 컨트롤러(108)는 HD 인터페이스부(110) 및 버스(BS2)를 통해 HD(21)로부터의 통지를 수리하면, HD(21)의 로그 메모리(253)에 저장되는 로그의 HD(20)로의 출력 요구를 버스(BS2) 및 HD 인터페이스부(110)를 통해 HD(21)에 출력한다(단계 S311). HD(21)의 컨트롤러(214)는 단자(210) 및 ATA 컨트롤러(212)를 통해 로그의 출력 요구 통지를 수리한다(단계 S312). 그리고 HD(20)에서의 단계 S30la와 마찬가지로 로그의 복제 처리를 행한다(단계 S312a). 복제 처리시, 로그 메모리(253) 내에 단계 S309에서 수리한 LID를 포함하는 로그가 저장되어 있지 않은지를 검색하고, 저장되어 있는 경우, 로그 메모리(253)의 가장 오래된 로그를 저장하고 있는 뱅크 na에, 검색된 LID를 포함하는 로그를 복제하고, 변수 ERRa="거짓"으로 한다. 한편, 로그 메모리(253) 내에 단계 S309에서 수리한 LID를 포함하는 로그가 저장되어 있지 않은 경우에는, ERRa="참"으로 한다. 이 단계 S312a의 상세한 동작은, 도 16에 도시하는 흐름도에 따라서 행해진다. 단, HD(21)에서의 처리와, HD(20)에서의 동일한 처리 결과를 구별하기 위해 변수 n을 변수 na로 하고, 변수 ERR를 변수 ERRa로 한다. 즉, 도 16의 단계 S112b에 상당하는 도 12에 도시하는 흐름도에서의 변수 n을 변수 na으로, 변수 ERR을 변수 ERRa로 각각 대체하면 된다.
그리고 컨트롤러(214)는 단계 S312a의 처리 결과의 판정, 즉 ERRa가 "참", "거짓" 중 어느 것인지를 판정한다(단계 S312b). "거짓"인 경우, 수리한 LID를 포함하는 로그가 뱅크 na로 복제되었음을 나타내기 때문에, 재송 요구에 대한 처리를 개시하기 위해 다음의 단계 S313으로 이행한다. "참"인 경우, 수리한 LID를 포함하는 로그가 로그 메모리(253)에 저장되어 있지 않은, 즉 HD(21)에서, 단계 S3l3에서 수리한 LID에 의해 특정되는 라이센스 LIC의 입출력 처리가 이루어지지 않았음을 나타내기 때문에, 재송 요구에 대응 불가능하다고 판단하고, 도 23의 단계 S371로 이행하고, 에러 통지를 단말 장치(10)에 대하여 출력한다. 단말 장치(10)에서는, 에러 통지가 수리되면(단계 S373), 처리가 종료된다.
HD(21)에서, 단계 S312b에서 ERRa="거짓"을 확인하면, 컨트롤러(214)는 로그 메모리(253)의 뱅크 na에 저장되어 있는 로그의 저장 LBA에 대한 영역에 기억되는 라이센스 LIC의 라이센스 ID(LID)와, 로그 메모리(253)의 뱅크 na에 저장되어 있는 로그의 라이센스 ID(LID)가 일치하는지의 여부를 확인한다(단계 S313).
컨트롤러(214)는 라이센스 ID(LID)가 일치하면, 더욱 로그 메모리(253)의 뱅크 na에 저장되어 있는 로그의 저장 LBA에 대응하는 유효 플래그 영역(252)의 플래그를 확인하고, 그 라이센스 LIC가 유효한지 무효한지를 확인한다(단계 S314). 컨트롤러(214)는 유효 플래그 영역(252)의 플래그가 "유효"일 때는, 로그 메모리 (253)의 뱅크 na에 저장되어 있는 로그의 스테이터스 ST2를 "데이터 유"로 변경하고(단계 S315), 다음의 처리(단계 S318)로 이행한다. 한편, 컨트롤러(214)는 유효 플래그 영역(252)의 플래그가 "무효"일 때는, 로그 메모리(253)의 뱅크 na에 저장되어 있는 로그의 스테이터스 ST2를 "이동 종료"로 변경하고(단계 S316), 다음의 처리(단계 S318)로 이행한다.
또한 컨트롤러(214)는 단계 S313에서 양 라이센스 ID(LID)가 일치하지 않을 때는, 로그 메모리(253)의 뱅크 na에 저장되어 있는 로그의 스테이터스 ST2를 "데이터 무"로 변경한다(단계 S317).
스테이터스 ST2의 변경 처리가 이루어지면, 컨트롤러(214)는 로그 메모리(253)의 뱅크 na로부터 라이센스 ID(LID), 스테이터스 STl, ST2, 세션키 Ks2c 및 저장 LBA를 취득한다(단계 S318). 여기서, 이 처리는 도 9 및 도 10의 흐름도에 따른 배신 세션의 중단에 대한 처리이기 때문에, HD(21)의 로그 메모리(253)에 저장되어 있는 해당 처리의 로그에 기억되어 있는 세션키는 Ks2a이지만, 설명의 관계상, 로그 메모리(253)의 뱅크 n으로부터 취득한 세션키를 Ks2c로 하고 있다. 그리고 컨트롤러(214)는 취득한 세션키 Ks2c를 버스(BS3)를 통해 암호 처리부(224)에 출력한다.
암호 처리부(224)는 전환 스위치(260)의 접점 Pb를 통해 복호 처리부(230)로부터 제공되는 세션키 Kslb에 의해 세션키 Ks2c를 암호화하고, E(Kslb, Ks2c)를 생성한다(단계 S319). 그리고 암호 처리부(224)는 생성한 E(Kslb, Ks2c)를 버스(BS3)에 출력한다. 버스(BS3)에 출력된 E(Kslb, Ks2c)는 컨트롤러(214)에 의해 수 리되고, 컨트롤러(214)는 단계 S318에서 취득한 데이터와 함께 1개의 수신 로그 LID//E(Kslb, Ks2c)//ST1//ST2를 생성하고, 그 해시값 H(LID//E(Kslb, Ks2c)//ST1//ST2)를 생성한다(단계 S320). 그리고 컨트롤러(214)는 해시값 H(LID//E(Kslb, Ks2c)//ST1//ST2)를 버스(BS3)를 통해 암호 처리부(224)에 출력한다.
암호 처리부(224)는 전환 스위치(260)의 접점 Pb를 통해 복호 처리부(230)로부터 제공되는 세션키 Kslb에 의해, 버스(BS3)로부터 취득한 해시값 H(LID//E(Kslb, Ks2c)//ST1//ST2)를 암호화하고, 서명 데이터 E(Kslb, H(LID//E(Kslb, Ks2c)//ST1//ST2))를 생성한다(단계 S321). 그리고 암호 처리부(224)는 생성한 E(Kslb, H(LID//E(Kslb, Ks2c)//ST1//ST2))를 버스(BS3)에 출력한다.
컨트롤러(214)는 버스(BS3)로부터 서명 데이터를 취득하면, 단계 S318에서 취득한 수신 로그를 이용하여, 서명 첨부 수신 로그 LID//E(Kslb, Ks2c)//ST1/,/ST2//E(Kslb, H(LID//E(Kslb, Ks2c)//ST1//ST2))를 생성하고, 서명 첨부 수신 로그 LID//E(Kslb, Ks2c)//ST1//ST2//E(Kslb, H(LID//E(Ks1b, Ks2c)//STl///ST2))와 저장 LBA를 ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 출력한다(단계 S322).
도 22를 참조하여, 단말 장치(10)는 서명 첨부 수신 로그 LID//E(Kslb, Ks2c)//ST1//ST2//E(Ks1b, H(LID//E(Kslb, Ks2c)//ST1//ST2))와 저장 LBA를 HD(21)로부터 수리하면(단계 S323), 수리한 데이터를 HD(20)에 출력한다(단계 S324).
HD(20)에서 컨트롤러(214)는 서명 첨부 수신 로그 LID//E(Kslb, Ks2c)//ST1//ST2//E(Kslb, H(LID//E(Kslb, Ks2c)//ST1//ST2))를 수리하면(단계 S325), 수리한 서명 첨부 수신 로그의 검증을 행한다(단계 S326). 검증 처리는, 이하와 같이 행해진다.
HD(20)의 컨트롤러(214)는 서명 첨부 수신 로그를 수리하면, 먼저 수리한 서명 첨부 수신 로그의 후반부인 서명 데이터 E(Kslb, H(LID//E(Kslb, Ks2c)//ST1//ST2))를 복호 처리부(228)에 출력함과 함께, 세션키 발생부(226)에 세션키 Kslb를 발생하도록 지시한다. 그리고 복호 처리부(228)는 세션키 Kslb에 의해 서명 데이터 E(Kslb, H(LID//E(Kslb, Ks2c)//ST1//ST2))를 복호하고, HD(21)에 의해 구해진 해시값을 추출한다. 한편, HD(20)의 컨트롤러(214)는 서명 첨부 수신 로그의 전반부인 수신로그 LID//E(Kslb, Ks2c)//ST1//ST2의 해시값을 연산하고, 복호 처리부(228)에 의해 추출된 해시값과 비교한다. HD(20)의 컨트롤러(214)는 2개의 해시값이 일치했다고 판단하면, HD(21)로부터 수리한 수신 로그는 정당한 데이터를 포함하는 것으로 하여 HD(20)에서 승인된다.
단계 S326에서 승인되면, HD(20)의 컨트롤러(214)는 단계 S325에서 승인한 수신 로그에 포함되는 라이센스 ID(LID)를 로그 메모리(253)의 뱅크 n에 저장되는 라이센스 ID(LID)와 비교한다(단계 S327).
컨트롤러(214)는 라이센스 ID(LID)가 일치하면, 수신 로그에 포함되는 암호 데이터 E(Kslb, Ks2c)를 복호 처리부(228)에 출력하고, 복호 처리부(228)는 세션키 발생부(226)로부터 받는 세션키 Kslb에 의해 세션키 Ks2c를 복호하고, 세션키 Ks2c 가 수리된다(단계 S328). 그리고 복호된 세션키 Ks2c는 버스(BS3)를 통해 컨트롤러(214)에 출력된다. 계속해서, 컨트롤러(214)는 에러 발생시의 세션키, 즉, 뱅크 n의 로그에 기록되어 있는 세션키 Ks2a와, 이번에 승인한 수신 로그에 포함되어 있던 세션키 Ks2c를 비교한다(단계 S329). 컨트롤러(214)는 세션키 Ks2a와 세션키 Ks2c가 일치한다고 판단하면 , 수리한 스테이터스 STl, ST2의 내용을 확인한다(단계 S330).
HD(20)의 컨트롤러(214)는 수신한 수신 로그의 스테이터스 ST1이 "수신 대기"이고, 수신 로그의 스테이터스 ST2가 "데이터 무"일 때, HD(21)에 송신했을 라이센스 LIC가 어떠한 이상에 의해 HD(21)에서 수리되지 않았다고 판단한다. 그러면, HD(20)의 컨트롤러(214)는, 더욱 로그 메모리(253)의 뱅크 n의 로그의 저장 LBA에 기억되는 라이센스 LIC의 라이센스ID(LID)와, 로그 메모리(253)의 뱅크 n의 로그의 라이센스 ID(LID)가 일치하는지의 여부를 확인한다(단계 S331). HD(20)의 컨트롤러(214)는 라이센스 ID(LID)가 일치하면, 더욱 로그 메모리(253)의 뱅크 n의 로그의 저장 LBA에 대응하는 유효 플래그 영역(252)의 플래그를 확인하고, 그 라이센스 LIC가 유효한지 무효한지를 확인한다(단계 S332). 그리고 컨트롤러(214)는 유효 플래그 영역(252)의 플래그가 "무효"일 때는, 그 유효 플래그 영역(252)의 플래그를 "유효"로 변경한다(단계 S333). 한편, 컨트롤러(214)는 유효 플래그 영역(252)의 플래그가 "유효"일 때는, 다음의 처리(단계 S334)로 이행한다. 그리고 컨트롤러(214) 로그 메모리(253)의 뱅크 n의 로그의 저장 LBA와 허가 통지를 ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 출력한다(단계 S334).
단말 장치(10)의 컨트롤러(108)는 HD(20)로부터 HD 인터페이스부(110) 및 버스(BS2)를 통해 대상의 라이센스 LIC가 저장되는 저장 LBA와 허가 통지를 수리하면 (단계 S335), HD(21)에 대하여 세션키의 생성의 요구 통지를 버스(BS2) 및 HD 인터페이스부(110)를 통해 HD(21)에 출력한다(단계 S336).
HD(21)는 단말 장치(10)로부터 세션키의 생성 요구 통지를 수리하면, 새로 세션키 Ks2b를 생성하고(단계 S337), 로그 메모리(253)의 뱅크 na의 로그에 기억되어 있는 세션키 Ks2c(Ks2a)를 생성한 세션키 Ks2b로, 로그의 스테이터스 ST1을 "수신 대기"로 변경한다(단계 S338).
이하, 단계 S339로부터의 일련의 처리는, 도 18 및 도 19에서 설명한 단계 S219부터 처리 종료까지의 일련의 처리에서, 세션키 Ks2a를 대신하여 새로 생성한 세션키 Ks2b가 사용되는 이외에는, 동일한 처리가 행해진다. 따라서 단계 S339에 이은 일련의 처리의 설명은 반복이 되기 때문에 생략한다.
또, 단계 S335에서 처리를 종료하고, HD(20)에 라이센스를 남기는 것도 가능하다. 이 경우, 도 18 및 도 19에 도시한 흐름도에 따라서, 다시 라이센스를 이동시킬 수 있다.
또, 도 21~도 23의 흐름도에 도시되는 라이센스의 이동 또는 복제에서의 재기입 처리의 중단에 대해서는, 단계 S30l~S344 및 단계 S347~S371 중 어느 단계에서 처리가 중단된 경우에는, 다시 도 21~도 23에 도시되는 흐름도에 따라서 재기입 처리를 행할 수 있다. 한편, 단계 S325~S346 중 어느 단계에서 처리가 중단된 경우에는, 도 18 및 도 19의 흐름도에 도시되는 라이센스의 이동 또는 복제의 처리를 처음부터 행함으로써, 처리를 재개할 수 있다.
이와 같이 하여, 단말 장치(10)에 장착된 복수의 하드 디스크 사이에서의 라이센스의 복제 또는 이동에 관해서도, 복제처 또는 이동처의 HD(21)로부터 수취한 클래스 증명서 Cm1이 유효하다는 것을 확인하고, 클래스 증명서 Cm1에 포함되어 송신된 클래스 공개 키 KPcm1에 의해 라이센스의 복제·이동이 행해지는 복수의 하드 디스크 사이에서 각각 생성되는 암호 키(세션키)를 주고 받고, 서로가 수령한 암호 키를 이용한 암호화를 실행하여, 그 암호화 데이터를 상대방에게 송신함으로써, 부정한 하드 디스크로의 라이센스의 복제 또는 이동을 금지할 수 있다. 또한 각각의 암호화 데이터의 송수신에서도 사실상의 상호 인증을 행할 수 있고, 출력처의 위장으로부터 라이센스를 보호하여, 시스템의 보안을 향상시킬 수 있다.
또한 라이센스의 복제·이동 세션의 중단에서도, 배신 세션과 마찬가지로, 수신측의 데이터 기억 장치인 HD(21)에서의 복제·이동 세션의 대상으로 된 라이센스 LIC에 대한 수신 로그를 송신측의 데이터 기억 장치인 HD(20)에 송신하고, HD(20)에서 자신의 로그 메모리(253)에 저장되는 로그의 내용과, 그 로그에 기억되는 저장 LBA에 의해 특정되는 시큐어 데이터 기억부(250)의 영역에 기억되는 라이센스 LIC를 비교하고, 또한 유효 플래그 영역(252)에 기억되는 플래그를 참조함으로써, 중단된 복제·이동 세션이 라이센스의 이동을 행하는 처리인 경우에서, 2개의 데이터 기억 장치 HD(20) 및 HD(21)에 이용 가능한 라이센스가 중복하여 존재하지 않는 안전한 재기입 처리가 제공된다.
이와 같이, 본 발명은 복제·이동 세션의 중단에 의한 라이센스 LIC의 소실 을 회피하고, 신속한 처리를 행할 수 있는 데이터 기억 장치 및 그 처리 수순을 제공함과 함께, 재기입 처리에 도달한 경우라도 안전하게 처리가 행해지고, 확실한 저작권 보호를 실현 할 수 있는 데이터 기억 장치 및 그 처리 수순을 제공한다.
또, 도 18~도 23에서의 HD(21)의 처리 단계 S202, S203, S214, S215, S217~S220, S24l~S243, S245~S251, S309, S310, S312~S322, S337~S340, S361~S363, S365~S371는 도 9, 도 10 및 도 13~도 15에서의 HD(20)의 처리 단계 S2, S3, S16, S17, S19~S22, S33~S35, S37~S43, S109, S110, S112~S122, S136~S139, S150~S152, S154~S160와 각각 동일하다. 즉, 라이센스의 이동 또는 복제시에서의 HD(21)의 처리와 라이센스의 배신 처리시에서의 HD(20)의 처리는 동일한 처리로서, 이들의 처리는 모두 데이터 기억 장치(HD20, HD21)에서 라이센스를 기입하기 위한 데이터 기억 장치에서의 처리이다.
[재생 허락]
다시 도 5를 참조하여, 콘텐츠 데이터를 재생하는 재생 회로(150)를 구비한 단말 장치(10)에 데이터 기억 장치로서의 HD(20)가 장착되고, 콘텐츠 데이터의 재생 허락은 HD(20)로부터 단말 장치(10) 내의 재생 회로 150에 대하여 행해진다.
도 24는 단말 장치(10)의 사용자가 단말 장치(10)로부터 암호화 콘텐츠 데이터의 재생 요청을 행함으로써, 단말 장치(10)에 장착된 HD(20)로부터 단말 장치(10) 내의 재생 회로(150)로 재생 허락이 행하여질 때의 처리(재생 허락 세션)를 설명하기 위한 흐름도이다.
도 24를 참조하여, 단말 장치(10)의 사용자로부터 원하는 콘텐츠 데이터의 재생 요청이 이루어지면, 단말 장치(10)의 컨트롤러(108)는 버스(BS2)를 통해 재생 회로(150)로 라이센스 증명서의 출력 요구를 출력한다(단계 S401). 재생 회로(150)에서 인증 데이터 유지부(1502)는 버스(BS2)로부터 클래스 증명서의 출력 요구를 받으면(단계 S402), 유지하고 있는 클래스 증명서 Cp3=KPcp3//Icp3//E(Ka, H(KPcp3//Icp3))를 버스(BS2)에 출력한다(단계 S403).
컨트롤러(108)는 버스(BS2)로부터 클래스 증명서 Cp3을 수리하면(단계 S404), 수리한 클래스 증명서 Cp3을 버스(BS2) 및 HD 인터페이스부(110)를 통해 HD(20)에 출력한다(단계 S405).
HD(20)에서는 단말 장치(10)로부터 클래스 증명서 Cp3을 수리하면(단계 S406), 수리한 클래스 증명서 Cp3이 정당한 클래스 증명서인지의 여부를 검증한다(단계 S407). 검증 처리는 복제·이동 세션에서의 단계 S207에서 설명한 것과 동일한 방법으로 행해지고, 설명은 생략한다.
단계 S407에서, 클래스 증명서 Cp3이 정당한 증명서라고 판단된 경우, 컨트롤러(214)는 클래스 증명서 Cp3을 승인하고, 클래스 증명서 Cp3에 포함되는 클래스 공개 키 KPcp3을 수리한다(단계 S408). 그리고 다음의 처리(단계 S409)로 이행한다. 컨트롤러(214)는 정당한 클래스 증명서가 아닌 경우에는, 클래스 증명서 Cp3을 비승인으로 하고, 클래스 증명서 Cp3을 수리하지 않고 에러 통지를 단말 장치(10)에 출력하고(단계 S435), 단말 장치(10)에서 에러 통지가 수리되면(단계 S436), 재생 허락 세션이 종료된다.
단계 S408에서 클래스 공개 키 KPcp3가 수리되면, HD(20)의 세션키 발생부 (226)는 세션키 Ksld를 생성한다(단계 S409). 세션키 Ks1d는 수리된 클래스 공개 키 KPcp3에 의해, 암호 처리부(222)에서 암호화되고, 암호화 데이터 E(KPcp3, Ksld)가 생성된다(단계 S410).
그리고 컨트롤러(214)는 암호 처리부(222)로부터 버스(BS3)를 통해 암호화 데이터 E(KPcp3, Ksld)를 받으면, ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 출력한다(단계 S411).
단말 장치(10)에서, HD 인터페이스부(110) 및 버스(BS2)를 통해 컨트롤러(108)가 암호 데이터 E(KPcp3, Ksld)를 수리하면(단계 S412), 컨트롤러(108)는 수리한 암호화 데이터 E(KPcp3, Ksld)를 버스(BS2)를 통해 재생 회로(150)에 출력한다(단계 S413). 재생 회로(150)의 복호 처리부(1506)는 버스(BS2)로부터 암호화 데이터 E(KPcp3, Ks1d)를 수리하면(단계 S414), Kcp 유지부(1504)에 유지되는 재생 회로(150)에 고유의 클래스 비밀 키 Kcp3에 의해 복호 처리함으로써 세션키 Ksld를 복호하고, 세션키 Ks1d가 수리된다(단계 S415).
세션키 Ksld가 수리되면, 세션키 발생부(1508)는 세션키 Ks2d를 생성하고 (단계 S416), 생성한 세션키 Ks2d를 암호 처리부(1510)에 제공한다. 암호 처리부(1510)는 복호 처리부(1506)로부터 받는 세션키 Ksld를 세션키 Ks2d에 의해 암호화하고, 암호화 데이터 E(Ksld, Ks2d)를 생성한다(단계 S417). 그리고 암호 처리부(1510)는 암호화 데이터 E(Ksld, Ks2d)를 버스(BS2)에 출력한다(단계 S418).
컨트롤러(108)는 버스(BS2)로부터 암호화 데이터 E(Ksld, Ks2-d)를 수리하고 (단계 S419), 수리한 데이터를 버스(BS2) 및 HD 인터페이스부(110)를 통해 HD(20) 에 출력한다(단계 S420).
HD(20)의 컨트롤러(214)는 단자(210) 및 ATA 인터페이스부(212)를 통해 암호화 데이터 E(Ksld, Ks2d)를 수리하면(단계 S421), 수리한 데이터를 버스(BS3)에 출력한다. 복호 처리부(228)는 세션키 발생부(226)로부터 제공된 세션키 Ksld를 이용하여 버스(BS3)에 출력된 암호화 데이터 E(Ksld, Ks2d)를 복호하고, HD(20)에서 세션키 Ks2d가 수리된다(단계 S422). 그리고 컨트롤러(214)는 세션키 Ks2d가 수리되면, 그 취지의 통지를 ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 출력한다.
단말 장치(10)의 컨트롤러(108)는 HD 인터페이스부(110) 및 버스(BS2)를 통해 HD(20)에서 세션키 Ks2d가 수리된 취지의 통지를 수리하면, 재생 요청이 있었던 콘텐츠 데이터에 대응하는 대상의 라이센스 LIC가 저장되어 있는 시큐어 데이터 기억부(250)의 LBA를 버스(BS2) 및 HD 인터페이스부(110)를 통해 HD(20)에 출력한다.
HD(20)의 컨트롤러(214)는 단자(210) 및 ATA 인터페이스부(212)를 통해 대상의 라이센스 LIC가 저장되어 있는 LBA를 수리하면(단계 S424), 그 LBA에 저장되는 라이센스 LIC에 대응하는 유효 플래그 영역(252)의 플래그가 "유효"인지 "무효"인지를 확인한다(단계 S425).
컨트롤러(214)는 유효 플래그 영역(252)의 플래그가 "유효"이면, 수리한 LBA에 기초하여, 대상의 라이센스 LIC를 시큐어 데이터 기억부(250)로부터 취득한다(단계 S426). 그리고 컨트롤러(214)는 취득한 라이센스 LIC에 포함되는 제어 정보 AC의 내용을 확인한다(단계 S427). 컨트롤러(214)는 제어 정보 AC에서 이용 횟수 가 지정되어 있을 때는, 제어 정보 AC의 이용 횟수를 1증분하고, 다음의 처리(단계 S429)로 이행한다. 한편, 컨트롤러(214)는 제어 정보 AC에 의해 재생 제한이 걸려있지 않을 때에는, 취득한 라이센스 LIC에 포함되는 콘텐츠키 Kc를 버스(BS3)에 출력한다.
암호 처리부(224)는 복호 처리부(228)로부터 받는 세션키 Ks2d에 의해 버스(BS3) 상에 출력된 콘텐츠키 Kc를 암호화하여 암호화 데이터 E(Ks2d, Kc)를 생성하고(단계 S429), 생성한 데이터를 버스(BS3)에 출력한다. 그리고 컨트롤러(214)는 버스(BS3) 상에 출력된 암호화 데이터 E(Ks2d, Kc)를 ATA 인터페이스부(212) 및 단자(210)를 통해 단말 장치(10)에 출력한다(단계 S430).
단말 장치(10)의 컨트롤러(108)는 HD 인터페이스부(110) 및 버스(BS2)를 통해 암호화 데이터 E(Ks2d, Kc)를 수리하면(단계 S431), 수리한 데이터를 버스(BS2)에 출력한다(단계 S432).
재생 회로(150)의 복호 처리부(1512)는 버스(BS2)로부터 암호화 데이터 E(Ks2d, Kc)를 수리하면(단계 S433), 세션키 발생부(1508)로부터 제공되는 세션키 Ks2d를 이용하여 암호화 데이터 E(Ks2d, Kc)를 복호한다. 이것에 의해, 재생 회로(150)에서 콘텐츠키 Kc가 수리되고(단계 S434), 일련의 재생 허락 세션의 처리가 정상 종료된다.
한편, 단계 S425에서 유효 플래그 영역(252)의 플래그가 "무효"였을 때, 또는 단계 S427에서 제어 정보 AC에 포함되는 내용이 재생 불가능이었을 때는, 컨트롤러(214)는 단말 장치(10)에 대하여 에러 통지를 출력하고(단계 S435), 단말 장치 (10)에서 에러 통지가 수리되면(단계 S436), 재생 허락 세션이 종료된다.
이와 같이 하여, 데이터 기억 장치인 HD(20)로부터 단말 장치(10)에 구비되는 재생 회로(150)로의 재생 허락에 관해서도, 재생 회로(150)가 정규의 클래스 증명서 Cp3을 유지하고 있는 것, 및 클래스 증명서 Cp3에 포함되어 송신된 클래스 공개 키 KPcp3이 유효하다는 것을 확인한 후에 콘텐츠키 Kc가 재생 회로(150)에 송신되고, 부정한 콘텐츠 데이터의 재생을 금지할 수 있다.
또, 흐름도에서 도시하지 않았지만, 재생 회로(150)는 콘텐츠의 재생 허락이 이루어지고, 콘텐츠키 Kc를 수리하면, HD(20)로부터 출력된 암호화 콘텐츠 데이터 E(Kc, Dc)를 복호 처리부(1514)에서 복호하고, 재생부(1516)에서 복호 처리부에 의해 복호된 데이터 Dc가 재생되고, DA 변환부(1518)에 의해 디지털/아날로그 변환되어 모니터나 스피커 등이 접속되는 단자(1520)로 재생 신호가 출력된다.
이와 같이, HD(20)에서는 라이센스의 누설이 없도록 안전하게 보호하고, 기억, 입출력의 관리를 행하기 위해,
(1) 다른 장치(라이센스 제공 장치 또는 다른 HD)로부터 라이센스의 제공을 받아 저장하는 기입 처리(도 9 및 도 10에서의 HD(20) 및 도 21~도 23에서의 HD(21)의 처리)
(2) 기입 처리의 중단부터, 기입 처리를 재개하는 재기입 처리(도 13~도 15에서의 HD(20) 및 도 2 l~도 23에서의 HD(21)의 처리)
(3) 다른 HD에 대하여 라이센스를 이동 또는 복제하는 제공 처리(도 16~도 18에서의 HD(20)의 처리)
(4) 제공 처리의 중단부터, 이동 복제 처리를 재개하는 재제공 처리(라이센스의 제공원으로서의 재기입 처리, 도 21~도 23에서의 HD(20)의 처리)
(5) 암호화 콘텐츠 데이터를 복호하는 것을 목적으로 하여 재생 회로에 대하여 콘텐츠키 Kc를 제공하는 재생 허락 처리(도 24에서의 HD(20)의 처리)
의 5개의 처리를 암호 기술에 의해서 실현하고 있다.
또, 상술한 모든 설명에서는, 콘텐츠 데이터에 대한 라이센스에 대하여 설명했지만, 대상은 상술한 라이센스에 한정되는 것이 아니며, 비밀로 할 필요가 있는 기밀 데이터 일반에 확대될 수 있다. 상술한 수단에 의해, 데이터의 기밀성이 보호되고, 또한 데이터 기억 장치에서의 기밀 데이터의 특정에 관한 본 발명의 목적을 달성할 수 있기 때문이다.
[실시 형태 2]
실시 형태 1에서는, HD(20)는 도 13~도 15의 흐름도에 도시되는 재기입 처리 및 도 21~도 23의 흐름도에 도시되는 재제공 처리에서, 재기입/제공 처리를 개시함에 있어서, 처리의 가부를 판단하기 위해, 재기입/제공 처리의 대상으로 되는 라이센스에 대한 직전의 로그를 검색한다. 그리고 대응한 로그가 검색된 경우, 검색한 로그를 로그 메모리(253)의 뱅크 n에 복제하여, 이후의 처리에서는 뱅크 n에 저장된 로그를 처리의 수순에 따라서 갱신해 가는 것으로서 설명했다.
그러나 재기입 처리에서는, 복제한 로그는 라이센스의 제공측에 대하여 직전의 처리에 대한 로그로서 출력한 후, 도 14의 단계 S137에서, 그 내용이 다시 쓰여지게 된다. 로그의 복제는, 오래된 로그가 저장된 뱅크부터 순서대로 새로운 로그 의 저장 뱅크를 향해 순환적으로 사용해 가는 로그 메모리(253)의 특성에 유래하는 것이며, 재기입 처리의 초기에서의 중단(도 14의 단계 S136 이전)에서도, 재기입 처리에 대응하는 로그가 보다 길게 로그 메모리(253)에 유지되는 것을 목적으로 하고 있다.
따라서 충분히 큰 로그 메모리(253)를 구비한 HD에서는, 재기입 처리에서의 검색된 로그의 복제를 행하지 않고, 검색된 로그가 저장되어 있던 뱅크로부터 직접 출력하도록 구성하는 것도 가능하다. 이 경우, 스테이터스 ST2의 변경(단계 S115, Sl16, S117)은 해당 뱅크의 로그에 대하여 행해지고, 출력하기 위한 로그의 취득(단계 S118)은 해당 뱅크로부터 행해지는 것으로 된다.
또한 로그의 복제가 이루어지지 않기 때문에, 재기입 처리에 대응하는 로그를 저장하기 위한 뱅크는, 도 14의 단계 S137에서 확보된다. 따라서 단계 S137은 "로그 메모리의 가장 오래된 로그를 저장하고 있는 뱅크 na에 새로운 로그를 저장"으로 변경된다.
또한 HD(21)도 마찬가지로 처리를 변경하는 것이 가능하다. 그 외의 모든 처리는 실시 형태 1과 동일하다. 또한 이 처리의 변경에 의해 라이센스의 안전성은 아무런 변화가 없고, 실시 형태 1과 동일한 효과를 얻을 수 있다.
[실시 형태 3]
라이센스의 재기입 처리와 마찬가지로, 라이센스의 재제공 처리에서, 검색된로그의 복제를 행하지 않고, 검색된 로그가 저장되어 있던 뱅크로부터 직접 판독하고, 재제공의 가부를 판정하는 것도 가능하다. 도 21의 단계 S30la에서 복제를 행 하지 않고, 도 21의 단계 S302 및 도 22의 단계 S329, S331, S332에서 검색된 로그가 저장되어 있던 뱅크로부터 직접 로그를 취득하도록 처리를 변경하면 된다. 그 외의 모든 처리는, 실시 형태 1과 동일하다.
이 처리의 변경에 의해 라이센스의 안전성은 아무런 변화가 없고, 실시 형태 1과 동일한 효과를 얻을 수 있다. 또한 실시 형태 2와 조합하는 것도 가능하다.
[실시 형태 4]
HD(20)의 실장에서의 처리를 경감하기 위해서는, 통상의 기입 처리 및 재기입 처리는, 보다 공통되어 있는 것이 바람직하다. 이에 따라, 실시 형태 1에서의 "세션키 요구" 이행의 HD(20)에서의 처리, 즉 통상의 기입 처리(도 9의 단계 S19~S22, 도 10의 단계 S33~S35, S38~S43)와 재기입 처리(도 14의 단계 S136~S139,도 15의 단계 S150~S152, S154~Sl60)를 공통으로 한다. 이 경우, 도 9의 단계 S20과 도 14의 단계 S137을 동일 처리로 함으로써 용이하게 실현할 수 있다.
이 경우, 단계 S137을 단계 S20과 동일 처리로 하고, "로그 메모리의 가장 오래된 로그를 저장하고 있는 뱅크 nb에 새로운 로그를 저장"으로 한다. 또한 상세한 처리는 도 11 및 도 12의 흐름도에 따라, 변수 n을 변수 nb로 대체하면 된다. 또한 변수 n을 변수 nb로 대체하는 것은, 도 13 및 도 14의 단계 S137까지의 처리에서의 변수 n과 구별하기 위해서이다. 이에 수반하여, 도 14 및 도 15의 단계 S137 이후의 단계 S154, S155, S159에서의 뱅크 n을 모두 뱅크 nb로 대체한다.
마찬가지로, 이동 복제 세션에서는, 도 21~도 23의 흐름도에 도시되는 단계 S342 이후의 처리와, 도 16~도 18의 흐름도에 도시되는 단계 S222 이후의 처리의 차이가 로그의 기록의 차이(도 23의 단계 S345와 도 18의 단계 S225와의 차이)뿐이다. 도 23의 단계 S345의 처리를 도 18의 단계 S225와 동일한 처리로 함으로써 HD(20)의 실장을 용이하게 할 수 있다. 이 경우, 단계 S345를 단계 S20와 동일 처리로 하고, "로그 메모리의 가장 오래된 로그를 저장하고 있는 뱅크 nb에 새로운 로그를 저장"으로 한다. 또한 상세한 처리는 도 20 및 도 12의 흐름도에 따라, 변수 n을 변수 nb로 대체하면 된다. 또한 변수 n을 변수 nb로 대체하는 것은, 도 21 및 도 22의 단계 S245까지의 처리에서의 변수 n과 구별하기 위해서이다. 이에 수반하여, 도 23의 단계 S345 이후의 단계 S348, S57에서의 뱅크 n을 모두 뱅크 nb로 대체한다.
그 외의 모든 처리는, 실시 형태 1과 동일하다. 또한 처리의 변경에 의해 라이센스의 안전성은 아무런 변화가 없고, 실시 형태 1과 동일한 효과를 얻을 수 있다. 또한 HD(21)도 마찬가지로 처리를 변경하는 것이 가능하다.
이와 같이, 통상 기입 처리 및 재기입 처리의 공통화에 의해, 실시 형태 1과 동일한 라이센스가 안전한 관리를 실현한 후에 실장하는 처리량의 경감을 도모할 수 있다.
[실시 형태 5]
로그의 기록 개시 타이밍을 명확하게 하기 위해, 모든 처리에서 HD 외부로부터 라이센스 ID(LID)를 수리함으로써, 로그 메모리(253)로부터 뱅크를 1개 확보하고, 해당 처리에 대한 로그를 기록하도록 변경한 실시 형태 5에 대하여 설명한다.
먼저, 실시 형태 5에서의 라이센스의 배신 동작에 대하여 설명한다.
실시 형태 5에서는, 라이센스 제공 장치(40)로부터 HD(20)로의 라이센스의 배신은 도 25 및 도 26에 도시하는 흐름도에 따라서 행해진다. 도 25 및 도 26에 도시하는 흐름도는, 도 9 및 도 10에 도시하는 흐름도의 단계 S16와 단계 S17의 사이에 단계 S16a를 삽입하고, 단계 S20을 단계 S20la로 바꾼 것으로, 그 외에는 도 9 및 도 10에 도시하는 흐름도와 동일하다.
단계 Sl6a의 상세한 동작은, 도 27에 도시하는 흐름도에 따라서 행해진다. 도 27을 참조하여, HD(20)에 컨트롤러(214)는 단계 S16의 이후, 최신의 로그가 저장되어 있는 뱅크 n-1을 특정하고, 뱅크 n에 저장되어 있는 관리 번호 m을 취득한다(단계 S16b). 그리고 이 단계 S156b의 상세한 동작은, 도 12에 도시하는 흐름도에 따라서 행해진다.
컨트롤러(214)는 단계 Sl6b의 이후, 관리 번호 m+l 및 단계 S16에서 수리한 라이센스 ID(LID)를 뱅크 n에 저장하고, 뱅크 n에 저장된 로그의 ST1 영역(2544)을 "수신 대기"로 설정한다(단계 Sl6c). 이것에 의해, 도 25에 도시하는 단계 S16a의 동작이 종료된다.
또한 컨트롤러(214)는 단계 S19의 이후, 로그 메모리(253)의 뱅크 n에 저장된 로그의 Ks2x 영역(2543)에 단계 S19에서 수리한 세션키 Ks2a를 기록한다(단계 S20la).
그 외에는, 실시 형태 l에서 설명한 바와 같다.
[배신에서의 재기입]
실시 형태 5에서의 라이센스의 배신이 도중에 중단된 경우의 라이센스의 재 기입의 동작은, 도 13~도 15에 도시하는 흐름도에 따라서 행해진다. 그 상세한 동작은 실시 형태 1에서 설명한 바와 같다.
[이동/복제]
도 28 및 도 29는, 도 17에 도시하는 라이센스의 복제·이동이 가능한 시스템에서, 단말 장치(10)의 사용자가 단말 장치(10)로부터 암호화 콘텐츠 데이터의 라이센스의 복제 또는 이동의 요청을 행함으로써, 단말 장치(10)를 통해 단말 장치(10)에 장착된 HD(20)로부터 HD(21)로 라이센스의 복제 또는 이동이 행해질 때의 처리(복제·이동 세션)를 설명하기 위한 실시 형태 5에서의 제1 및 제2 흐름도이다.
도 28 및 도 29에 도시하는 흐름도는, 도 18 및 도 19에 도시하는 흐름도의 단계 S207과 단계 S209의 사이에 단계 S208를 삽입하고, 단계 S214와 단계 S215의 사이에 단계 S214a를 삽입하고, 단계 S218을 단계 S218a로 대체하고, 단계 S225를 단계 S225a로 대체한 것이며, 그 외에는 도 18 및 도 19에 도시하는 흐름도와 동일하다.
도 28을 참조하여, HD(20)의 컨트롤러(214)는 단계 S207에서 HD(21)로부터의 증명서 Cml을 승인했을 때, 로그 메모리(253) 중 가장 오래된 로그가 저장된 뱅크 n에 새로운 로그를 저장한다(단계 S208). 이 단계 S208의 상세한 동작은, 도 30에 도시하는 흐름도에 따라서 행해진다.
도 30을 참조하여, 단계 S208은 HD(20)에서 로그 메모리(253)의 최신 로그가 기록된 뱅크 n-1를 특정하고, 또한 뱅크 n-1에 저장된 관리 번호 m을 취득하는 단 계 S208a와, 뱅크 n에 관리 번호 m+1, 라이센스 ID(LID) 및 클래스 공개 키 KPcmy를 저장하고, 또한 ST1 영역(2544)의 스테이터스 ST1을 "송신 대기"로 설정하는 단계 S208b로 이루어진다. 그리고 단계 S208a의 상세한 동작은, 도 12에 도시하는 흐름도에 따라서 행해진다. 따라서 컨트롤러(214)는 도 12 및 도 30에 도시하는 흐름도에 따라서, 단계 S206에서 수리한 라이센스 ID(LID)와 HD(21)의 클래스 공개 키 KPcm1과, "송신 대기"로 설정된 스테이터스 ST1을 기록한 새로운 로그를 뱅크 n에 저장한다.
또한 HD(21)의 컨트롤러(214)는 단계 S214의 이후, 가장 오래된 로그가 저장된 뱅크 na에 새로운 로그를 저장한다(단계 S214a). 이 단계 S214a의 상세한 동작은 상술한 도 12 및 도 27에 도시하는 흐름도에 따라서 행해진다. 단, 변수 n은 변수 na로 대체한다.
따라서 HD(21)의 컨트롤러(214)는 도 12 및 도 27에 도시하는 흐름도에 따라서 단계 S214에서 수리한 라이센스 ID(LID)와, "수신 대기"로 설정된 스테이터스 ST1을 기록한 새로운 로그를, 로그 메모리(254) 중에서 가장 오래된 로그가 저장되어 있던 뱅크 na에 저장한다(단계 S214a).
또한 HD(21)의 컨트롤러(214)는 단계 S217의 이후, 로그 메모리(253)의 뱅크 na에 단계 S217에서 생성된 세션키 Ks2a를 저장한다(단계 S218a).
또한 HD(20)의 컨트롤러(214)는 단계 S224의 이후, 로그 메모리(253)의 뱅크 n에 단계 S224에서 수리한 세션키 Ks2a를 저장한다(단계 S225a).
그 외에는 실시 형태 1에서 설명한 바와 같다.
[이동/복제에서의 재기입]
실시 형태 5에서의 HD(21)로부터 HD(20)로의 라이센스의 이동·복제 세션이 도중에 중단된 경우의 라이센스의 재기입 동작은, 도 2l~도 23에 도시하는 흐름도에 따라서 행해진다. 따라서 그 상세한 동작은 실시 형태 1에서 설명한 바와 같다.
이와 같이, 실시 형태 5에서는 실시 형태 1과 마찬가지로 안전한 라이센스의 재기입/제공 처리를 실현하고, 또한 각각의 처리에서의 로그의 발생 타이밍을 명확하게 함과 함께, 실시 형태 3과 마찬가지로, 통상 기입/재기입 처리의 공통화에 의해 실장하는 처리량의 경감을 도모할 수 있다. 또, HD(21)도 마찬가지로 처리를 변경하는 것이 가능하다.
이번에 개시된 실시 형태는 모든 점에서 예시이며, 제한적인 것이 아니라고 생각해야 할 것이다. 본 발명의 범위는 상기한 실시 형태의 설명이 아니고 특허 청구의 범위에 의해 제시되며, 특허청구의 범위와 균등한 의미 및 범위 내에서의 모든 변경이 포함되는 것이 의도된다.
본 발명은, 기밀 데이터의 입출력 처리에 관한 이력 정보를 중복하지 않고 복수 저장할 수 있는 데이터 기억 장치에 적용 가능하다.

Claims (9)

  1. 일정한 수순에 따라서 기밀 데이터의 입출력을 행하고, 상기 기밀 데이터를 기억하며, 또한 상기 일정한 수순의 진행에 따라서 이력 정보를 저장 혹은 해당 이력 정보를 수시 갱신하는 데이터 기억 장치(20)로서,
    외부와 데이터의 입출력을 행하는 인터페이스(212)와,
    복수의 상기 기밀 데이터를 저장하는 데이터 기억부(270)와,
    상기 기밀 데이터의 입출력에 관한 복수의 이력 정보를 저장하는 로그 기억부(253)와,
    상기 기밀 데이터의 입출력을 제어하는 제어부(214)를 구비하고,
    상기 로그 기억부(253)는 각각 1개의 상기 이력 정보를 저장하는 2개 이상의 영역을 순환적으로 이용하는 링 버퍼로서 마련되어 있고,
    상기 로그 기억부(253)에 기억되는 복수의 이력 정보의 각각은, 해당 이력 정보를 기억한 입출력 대상의 기밀 데이터를 식별하는 식별 정보를 포함하고,
    상기 제어부(214)는 상기 기밀 데이터의 입출력의 처리가 개시된 것에 수반하여 입출력의 대상으로 된 기밀 데이터를 식별하는 식별 정보를 상기 인터페이스(212)를 통해 수취하고, 상기 로그 기억부(253)의 복수의 영역(2531~253N)을 소정의 순서로 검색하여, 상기 로그 기억부(253)에 저장되어 있는 가장 오래된 이력 정보를 저장하는 영역을 최고 영역으로서 특정하고, 그 특정한 최고 영역에 상기 수취한 식별 정보를 포함하는 상기 기밀 데이터의 입출력 처리에 대한 이력 정보를 새로 저장하고,
    이력 정보의 출력을 수반하는 상기 기밀 데이터의 입력 처리에서,
    상기 제어부(214)는 입출력의 대상으로 되는 기밀 데이터의 식별 정보를 상기 인터페이스(212)를 통해 수취하고, 상기 로그 기억부(253)의 복수의 영역(2531~253N)을 소정의 순서로 검색하여, 상기 최고 영역과, 상기 수취한 식별 정보를 포함하는 가장 새로운 이력 정보를 저장하는 최신 영역을 특정하고, 그 특정한 최신 영역에 저장되어 있는 이력 정보의 일부 또는 전부를, 특정한 최고 영역에 복제함으로써 상기 기밀 데이터의 입력 처리에 대한 새로운 이력 정보로서 저장하고, 상기 특정된 최고 영역에 저장된 이력 정보의 일부 또는 전부를 상기 인터페이스(212)를 통해 출력하는 데이터 기억 장치.
  2. 제1항에 있어서,
    이력 정보의 출력 요구에 대하여 이력 정보의 일부 또는 전부를 출력하는 이력 정보의 출력 처리에서,
    상기 제어부(214)는 입출력의 대상으로 되는 기밀 데이터의 식별 정보를 상기 인터페이스(212)를 통해 수취하고, 상기 로그 기억부(253)의 복수의 영역(2531~253N)을 소정의 순서로 검색하여, 상기 수취한 식별 정보를 포함하는 가장 새로운 이력 정보를 저장하는 영역을 최신 영역으로서 특정하고, 상기 최신 영역에 저장되어 있는 이력 정보의 일부 또는 전부를 상기 인터페이스(212)를 통해 출력하는 데이터 기억 장치.
  3. 삭제
  4. 제1항 또는 제2항에 있어서,
    다른 장치에 의해 상기 일정한 수순의 진행에 의해 기록된 또 하나의 이력 정보의 입력을 수반하는 상기 기밀 데이터의 재출력 처리에서,
    상기 제어부(214)는 입출력의 대상이 되는 기밀 데이터의 식별 정보 및 상기 또 하나의 이력 정보를 상기 인터페이스(212)를 통해 수취하고, 상기 최고 영역 및 상기 최신 영역을 특정하고, 그 특정한 최신 영역에 저장된 이력 정보와, 상기 수취한 또 하나의 이력 정보에 기초하여, 상기 기밀 데이터를 출력할지의 여부를 판정하는 데이터 기억 장치.
  5. 제1항 또는 제2항에 있어서,
    다른 장치에 의해 상기 일정한 수순의 진행에 따라서 기록된 또 하나의 이력 정보의 입력을 수반하는 상기 기밀 데이터의 출력 처리에서,
    상기 제어부(214)는 입출력의 대상이 되는 기밀 데이터의 식별 정보 및 상기 또 하나의 이력 정보를 상기 인터페이스(212)를 통해 수취하고, 상기 최고 영역 및 상기 최신 영역을 특정하고, 그 특정한 최신 영역에 저장되어 있는 이력 정보의 일부 또는 전부를 특정한 최고 영역에 복제함으로써 상기 기밀 데이터의 출력 처리에 대한 새로운 이력 정보로서 저장하고, 상기 특정한 최고 영역에 저장된 이력 정보와, 상기 수취한 또 하나의 이력 정보에 기초하여, 상기 기밀 데이터를 출력할지의 여부를 판정하는 데이터 기억 장치.
  6. 제1항에 있어서,
    상기 최고 영역을 특정한 후,
    상기 제어부(214)는 상기 입출력 처리에서의 일정한 수순이 종료 혹은 중지될 때까지의 동안, 상기 특정된 최고 영역에 저장된 이력 정보를, 해당 수순의 진행에 따라서 수시 갱신하는 데이터 기억 장치.
  7. 제1항에 있어서,
    상기 복수의 이력 정보의 각각은, 상기 로그 기억부(253)에 기억된 순서를 식별하기 위한 관리 번호(2541)를 더 포함하고,
    상기 관리 번호(2541)는 상기 로그 기억부(253)에 연속해서 배치된 2개의 영역에 저장된 2개의 이력 정보에 포함되는 각각의 관리 번호에 기초하여, 오래된 이력 정보가 저장되는 상기 최고 영역을 검출하는 데이터 기억 장치.
  8. 제7항에 있어서,
    상기 로그 기억부(253)는 N(N은 2이상의 자연수)개의 영역(2531~253N)을 순환적으로 이용하는 링 버퍼로 이루어지고,
    상기 관리 번호(2541)는 M(M은, N<M을 만족하는 자연수)의 잉여계로 이루어 지는 데이터 기억 장치.
  9. 제8항에 있어서,
    상기 제어부(214)는 상기 로그 기억부(253)에 연속해서 배치된 2개의 영역에 저장된 2개의 이력 정보에 포함되는 각각의 관리 번호(2541)를 취득하고, 그 취득한 2개의 관리 번호(2541)의 차에 기초하여, 2개의 해당 관리 번호(254l)를 포함하는 2개의 이력 정보가 연속해서 저장되었는지의 여부를 판정하고, 2개의 이력 정보가 불연속적으로 저장된 이력 정보일 때, 상기 연속하는 2개의 영역 중, 후속 영역을 상기 최고 영역으로서 검출하는 데이터 기억 장치.
KR1020057001293A 2002-07-25 2003-07-24 기밀 데이터의 입출력 처리에 관한 이력 정보를 중복하지않고 복수 저장할 수 있는 데이터 기억 장치 KR100715407B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002216750A JP4387087B2 (ja) 2002-07-25 2002-07-25 データ記憶装置
JPJP-P-2002-00216750 2002-07-25

Publications (2)

Publication Number Publication Date
KR20050033615A KR20050033615A (ko) 2005-04-12
KR100715407B1 true KR100715407B1 (ko) 2007-05-08

Family

ID=31184584

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057001293A KR100715407B1 (ko) 2002-07-25 2003-07-24 기밀 데이터의 입출력 처리에 관한 이력 정보를 중복하지않고 복수 저장할 수 있는 데이터 기억 장치

Country Status (6)

Country Link
US (1) US7650328B2 (ko)
JP (1) JP4387087B2 (ko)
KR (1) KR100715407B1 (ko)
CN (1) CN100343831C (ko)
AU (1) AU2003252680A1 (ko)
WO (1) WO2004012085A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198014A1 (en) * 2004-02-06 2005-09-08 Barbara De Lury Systems, methods and apparatus of a whole/part search engine
JP2006048767A (ja) * 2004-07-30 2006-02-16 Elpida Memory Inc 半導体メモリ試験装置
JP4555046B2 (ja) * 2004-10-15 2010-09-29 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ データ転送システム及びデータ転送方法
JP4624235B2 (ja) * 2004-10-28 2011-02-02 三洋電機株式会社 コンテンツ利用情報提供装置およびコンテンツ利用情報送信方法
JP4735043B2 (ja) * 2005-05-20 2011-07-27 富士ゼロックス株式会社 電子チケット発行装置
CN100449543C (zh) * 2005-09-16 2009-01-07 腾讯科技(深圳)有限公司 一种日志保存方法及装置
JP4859424B2 (ja) * 2005-09-29 2012-01-25 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ 磁気ディスク装置及び情報記録システム
JP4598642B2 (ja) * 2005-10-05 2010-12-15 クラリオン株式会社 ナビゲーションシステム、ライセンス管理装置、ライセンス管理システム、ライセンス取得方法、及び、ライセンス取得プログラム
US8630934B2 (en) * 2006-06-20 2014-01-14 Omx Technology Ab System and method for monitoring trading
CN101196966B (zh) * 2006-12-08 2010-05-19 华为技术有限公司 许可证交互及其中断后恢复的方法及数字版权管理系统
JP2008166873A (ja) * 2006-12-27 2008-07-17 Mitsubishi Electric Corp データ管理装置及びデータ管理システム及びデータ管理方法及びプログラム
US20090129597A1 (en) * 2007-11-21 2009-05-21 Zimmer Vincent J Remote provisioning utilizing device identifier
US8117216B1 (en) * 2008-08-26 2012-02-14 Amazon Technologies, Inc. Automated selection of item categories for presenting item recommendations
EP2510442B1 (en) * 2009-12-08 2014-11-12 Safend Ltd System and method for secured backup of data
KR101502895B1 (ko) 2010-12-22 2015-03-17 주식회사 케이티 복수의 오류 복제본으로부터 오류를 복구하는 방법 및 상기 방법을 이용하는 스토리지 시스템
KR20120072909A (ko) * 2010-12-24 2012-07-04 주식회사 케이티 내용 기반 중복 방지 기능을 가지는 분산 저장 시스템 및 그 오브젝트 저장 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
KR101544480B1 (ko) 2010-12-24 2015-08-13 주식회사 케이티 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
KR101585146B1 (ko) 2010-12-24 2016-01-14 주식회사 케이티 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
KR101483127B1 (ko) 2011-03-31 2015-01-22 주식회사 케이티 클라우드 스토리지 시스템에서 리소스를 고려한 자료분배방법 및 장치
KR101544483B1 (ko) 2011-04-13 2015-08-17 주식회사 케이티 분산 저장 시스템의 복제 서버 장치 및 복제본 생성 방법
KR101544485B1 (ko) 2011-04-25 2015-08-17 주식회사 케이티 클라우드 스토리지 시스템에서 복수개의 복제본을 분산 저장하는 방법 및 장치
KR101326473B1 (ko) * 2012-09-28 2013-11-20 한국전력공사 부분적인 로드 프로파일 수집이 용이한 전력량계 및 이를 이용한 수집 방법
KR101442968B1 (ko) * 2013-04-01 2014-09-25 엘에스산전 주식회사 이력 데이터의 저장 및 처리를 위한 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6441356A (en) * 1987-08-06 1989-02-13 Nec Corp Data input system in telephone set with data storage function
JPH0546359A (ja) * 1991-08-13 1993-02-26 Mitsubishi Electric Corp 記憶装置
JPH06202926A (ja) * 1992-12-28 1994-07-22 Fuji Xerox Co Ltd ファイルアクセス履歴管理方式

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5046359A (ko) * 1973-08-30 1975-04-25
US4249172A (en) * 1979-09-04 1981-02-03 Honeywell Information Systems Inc. Row address linking control system for video display terminal
JP2590282B2 (ja) 1990-02-07 1997-03-12 富士通株式会社 システム実行履歴収集処理方式
JP3085899B2 (ja) 1995-06-19 2000-09-11 株式会社東芝 マルチプロセッサシステム
JPH0974549A (ja) 1995-07-05 1997-03-18 Toshiba Corp 課金システム装置
JPH103745A (ja) 1996-06-12 1998-01-06 Sony Corp 記録媒体、デジタルコピー管理方法、再生装置、及び記録装置
JPH10240629A (ja) 1997-02-27 1998-09-11 Mitsubishi Electric Corp メモリ内情報更新方法
US5956735A (en) 1997-03-28 1999-09-21 International Business Machines Corporation System of compressing the tail of a sparse log stream of a computer system
JPH1139450A (ja) 1997-07-24 1999-02-12 Mitsubishi Electric Corp Icカード
US5919257A (en) * 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
JPH11120057A (ja) 1997-10-17 1999-04-30 Hitachi Ltd ファイルバックアップ方法
US5953685A (en) * 1997-11-26 1999-09-14 Intel Corporation Method and apparatus to control core logic temperature
US6023710A (en) * 1997-12-23 2000-02-08 Microsoft Corporation System and method for long-term administration of archival storage
US6078338A (en) * 1998-03-11 2000-06-20 Compaq Computer Corporation Accelerated graphics port programmable memory access arbiter
JPH11328982A (ja) 1998-03-19 1999-11-30 Fuji Electric Co Ltd フラッシュメモリのデ―タ管理方式
US6226618B1 (en) 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
JP3763992B2 (ja) * 1999-03-30 2006-04-05 富士通株式会社 データ処理装置及び記録媒体
JP3797649B2 (ja) 1999-05-31 2006-07-19 シャープ株式会社 不揮発性半導体記憶装置
JP4436490B2 (ja) * 1999-07-22 2010-03-24 オリンパス株式会社 デジタルデータ記録再生システム
JP4009108B2 (ja) * 1999-08-10 2007-11-14 富士通株式会社 メモリカード
US7181629B1 (en) * 1999-08-27 2007-02-20 Fujitsu Limited Data distribution system as well as data supply device terminal device and recording device for the same
EP1094424A3 (en) * 1999-10-22 2004-06-16 Hitachi, Ltd. Digital signing method
JP3858538B2 (ja) 1999-11-19 2006-12-13 セイコーエプソン株式会社 フラッシュメモリのデータ管理装置
JP3873090B2 (ja) * 1999-12-02 2007-01-24 三洋電機株式会社 データ記録装置、データ供給装置およびデータ配信システム
JP3677001B2 (ja) * 1999-12-03 2005-07-27 三洋電機株式会社 データ配信システムおよびそれに用いられる記録装置
CN100471108C (zh) * 1999-12-06 2009-03-18 三洋电机株式会社 数据传送系统及该系统所使用的记录装置
CN100340079C (zh) * 1999-12-07 2007-09-26 三洋电机株式会社 数据再生设备
JP2001197292A (ja) * 2000-01-17 2001-07-19 Konica Corp 画像形成装置
JP2001230768A (ja) * 2000-02-15 2001-08-24 Sony Corp 情報取り引きシステムおよび情報取り引き方法、並びにプログラム提供媒体
US6952737B1 (en) * 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
JP2001249836A (ja) 2000-03-03 2001-09-14 Fujitsu Ltd 履歴管理装置、方法及びその装置での処理をコンピュータに行なわせるためのプログラムを格納した記憶媒体
JP2001249855A (ja) 2000-03-07 2001-09-14 Hitachi Ltd 不揮発性メモリのデータ書き替え方法及び加入者回路
TW515950B (en) 2000-03-14 2003-01-01 Hitachi Ltd Content regeneration device
CN1217509C (zh) * 2000-03-30 2005-08-31 三洋电机株式会社 内容数据存储装置
GB2361081A (en) * 2000-04-07 2001-10-10 Digitalsecu Co Ltd Apparatus and method for storing log files on a once only recordable medium
JP2001337600A (ja) 2000-05-29 2001-12-07 Toshiba Corp 電子データ保管システム、履歴検証装置、電子データ保管方法及び記録媒体
US6789203B1 (en) * 2000-06-26 2004-09-07 Sun Microsystems, Inc. Method and apparatus for preventing a denial of service (DOS) attack by selectively throttling TCP/IP requests
JP2002007263A (ja) 2000-06-27 2002-01-11 Ntt Communications Kk ディジタルコンテンツの入出力情報管理方法及び管理システム、並びに、ディジタルコンテンツの入出力情報管理用プログラムを記録した記録媒体
JP2002026890A (ja) 2000-07-04 2002-01-25 Sanyo Electric Co Ltd データ記録装置、およびデータ再生装置
JP2002094499A (ja) * 2000-09-18 2002-03-29 Sanyo Electric Co Ltd データ端末装置およびヘッドホン装置
JP3568470B2 (ja) * 2000-09-21 2004-09-22 三洋電機株式会社 シェル型データ端末装置
JP4524480B2 (ja) * 2000-11-24 2010-08-18 三洋電機株式会社 データ端末装置
AU2002224119A1 (en) * 2000-11-28 2002-06-11 Fujitsu Limited Data terminal for managing ciphered content data and license acquired by software
JP4601153B2 (ja) 2000-11-29 2010-12-22 三洋電機株式会社 データ端末装置およびデータ端末装置の制御方法
JP3903714B2 (ja) * 2000-12-20 2007-04-11 株式会社日立製作所 位置関係獲得方法および機器
JP2002271316A (ja) * 2001-03-13 2002-09-20 Sanyo Electric Co Ltd 再生装置
CN1324484C (zh) * 2001-03-15 2007-07-04 三洋电机株式会社 可复原只容许唯一存在的专用数据的数据记录装置
JP4743984B2 (ja) * 2001-03-23 2011-08-10 三洋電機株式会社 データ記録装置
JP2002288375A (ja) 2001-03-26 2002-10-04 Sanyo Electric Co Ltd コンテンツ提供装置、コンテンツ提供方法およびライセンスサーバ
US7185013B2 (en) * 2001-04-12 2007-02-27 International Business Machines Corporation Method for constructing and caching a chain of file identifiers and enabling inheritance of resource properties in file systems
JP2002353952A (ja) * 2001-05-24 2002-12-06 Sanyo Electric Co Ltd データ端末装置
JP4545994B2 (ja) * 2001-07-02 2010-09-15 三洋電機株式会社 データ再生装置それに用いるデータ再生回路、およびデータ記録装置
JP2003022219A (ja) * 2001-07-09 2003-01-24 Sanyo Electric Co Ltd コンテンツデータを容易に再取得できるデータ端末装置、その端末装置において実行されるプログラム、およびそのプログラムを記録した記録媒体
US6717283B2 (en) * 2001-12-20 2004-04-06 Halliburton Energy Services, Inc. Annulus pressure operated electric power generator
JP4323745B2 (ja) * 2002-01-15 2009-09-02 三洋電機株式会社 記憶装置
JP2003248557A (ja) * 2002-02-26 2003-09-05 Sanyo Electric Co Ltd ハードディスクユニット

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6441356A (en) * 1987-08-06 1989-02-13 Nec Corp Data input system in telephone set with data storage function
JPH0546359A (ja) * 1991-08-13 1993-02-26 Mitsubishi Electric Corp 記憶装置
JPH06202926A (ja) * 1992-12-28 1994-07-22 Fuji Xerox Co Ltd ファイルアクセス履歴管理方式

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
0141356 *
05046359 *

Also Published As

Publication number Publication date
CN100343831C (zh) 2007-10-17
KR20050033615A (ko) 2005-04-12
US20050289062A1 (en) 2005-12-29
JP4387087B2 (ja) 2009-12-16
US7650328B2 (en) 2010-01-19
AU2003252680A8 (en) 2004-02-16
WO2004012085A1 (ja) 2004-02-05
CN1672137A (zh) 2005-09-21
JP2004062317A (ja) 2004-02-26
AU2003252680A1 (en) 2004-02-16

Similar Documents

Publication Publication Date Title
KR100715407B1 (ko) 기밀 데이터의 입출력 처리에 관한 이력 정보를 중복하지않고 복수 저장할 수 있는 데이터 기억 장치
KR100697121B1 (ko) 데이터 기억 장치
JP3696206B2 (ja) 一意義的にのみ存在が許容される独自データを復元可能なデータ記録装置
JP3677001B2 (ja) データ配信システムおよびそれに用いられる記録装置
KR20030074382A (ko) 기밀 데이터의 안전한 액세스를 제공하는 데이터 기억 장치
JP3873090B2 (ja) データ記録装置、データ供給装置およびデータ配信システム
JP3759455B2 (ja) データ再生装置
US20020138442A1 (en) Content provision device and method and license server capable of facilitating circulation of encrypted content data
EP1496441A1 (en) Information processing device, method, recording medium, and program
EP1282262A1 (en) Information processing apparatus
MXPA04002721A (es) Un dispositivo de cifrado, un dispositivo de descifrado, un dispositivo de generacion de claves secretas, un sistema de proteccion de derechos de autor y un dispositivo de comunicacion cifrada.
KR20020066233A (ko) 정보 처리 방법/장치 및 프로그램
JP2008009631A (ja) 記憶装置及び記憶方法
JP2005191755A (ja) コンテンツ受信蓄積装置およびコンテンツ配信システム
KR20050100596A (ko) 컨텐츠 재생 장치, 라이센스 발행 서버 및 컨텐츠 재생시스템
JP2009027557A (ja) コンテンツデータ配信端末、及びコンテンツデータ配信システム
US20090037748A1 (en) Method and apparatus for forbidding use of digital content against copy control information
JP2003248557A (ja) ハードディスクユニット
JP4553472B2 (ja) データ端末装置
JP3788572B2 (ja) レンタルコンテンツ流通システムおよびその方法
JP2002094500A (ja) データ端末装置
JP2002288376A (ja) コンテンツ提供方法、データ再生装置、およびデータ記録装置
JP3851155B2 (ja) ライセンス移動システム、ライセンス管理サーバおよびデータ端末装置
JP2002099743A (ja) データ再生装置およびライセンス管理方法
JP2003101521A (ja) ライセンス管理装置およびそれを用いたデータ端末装置

Legal Events

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

Payment date: 20120201

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee