KR101067613B1 - 비인증 콘텐츠 검출시스템 - Google Patents

비인증 콘텐츠 검출시스템 Download PDF

Info

Publication number
KR101067613B1
KR101067613B1 KR1020067022943A KR20067022943A KR101067613B1 KR 101067613 B1 KR101067613 B1 KR 101067613B1 KR 1020067022943 A KR1020067022943 A KR 1020067022943A KR 20067022943 A KR20067022943 A KR 20067022943A KR 101067613 B1 KR101067613 B1 KR 101067613B1
Authority
KR
South Korea
Prior art keywords
unit
information
content
signature
key
Prior art date
Application number
KR1020067022943A
Other languages
English (en)
Other versions
KR20060135934A (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 KR20060135934A publication Critical patent/KR20060135934A/ko
Application granted granted Critical
Publication of KR101067613B1 publication Critical patent/KR101067613B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1077Recurrent authorisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Storage Device Security (AREA)
  • Optical Recording Or Reproduction (AREA)
  • Moving Of The Head For Recording And Reproducing By Optical Means (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

재생을 실행하기 위한 실행장치의 처리 부하는, 실행장치가 콘텐츠 재생과 병행하여 콘텐츠 유효성의 검증을 수행하기 때문에, 콘텐츠 재생 중에 높으며, 따라서 실행장치는 고효율 프로세서를 구비해야 한다. 본 발명은, 검증을 위해 DVD에 기록된 암호화 콘텐츠를 구성하는 다수의 암호화 유닛으로부터 임의로 선택한 기설정 개수의 암호화 유닛만을 이용함으로써 검증에 포함된 처리 부하를 줄인다. 또한, 본 발명은 검증이 수행될 때마다 기설정 개수의 암호화 유닛을 임의로 선택함으로써 비인증 콘텐츠를 검출하는 정확도를 어느 정도 개선할 수 있다.
비인증, 처리부하, 콘텐츠, 저작권, 보호, 유효성, 검증, 선택정보

Description

비인증 콘텐츠 검출시스템{UNAUTHORIZED CONTENTS DETECTION SYSTEM}
본 발명은 콘텐츠의 유효성을 검증하기 위한 기술에 관한 것으로, 특히 이러한 검증에 포함된 처리 부하를 줄이기 위한 기술에 관한 것이다.
콘텐츠의 불법 복제(copying), 위조(falsification), 및 대체(replacment)를 포함하는 사기 행위를 방지하는 수단은, 콘텐츠가 위조 등이 행해진 비인증 콘텐츠를 포함하는지를 검증하기 검증정보를 콘텐츠와 함께 분배하는 것뿐만 아니라 콘텐츠가 합법적 권리 보유자에 의해 발행되었다는 것을 나타내는 서명정보를 적용하는 것을 포함한다.
이러한 수단의 일 예인 특허문헌 1은 서명정보, 검증정보, 및 콘텐츠를 네트워크를 통하여 분배함으로써 유효성을 검증하는 기술을 개시한다. 이 기술에 따르면, 송신원의 서명정보와 콘텐츠를 구성하는 각 부분콘텐츠의 일관성을 체크하기 위한 검증정보를 포함하는 인증정보가 콘텐츠의 송신에 앞서 실행장치에 송신된다. 인증정보를 수신한 경우, 실행장치는 그 안에 포함된 서명정보를 검증한다. 서명정보의 검증이 성공적이면, 실행장치는 콘텐츠를 수신하여 재생한다. 재생과 병행하여, 실행장치는 검증정보를 이용하여 각 부분콘텐츠의 일관성 검증을 반복하며, 검증이 실패할 경우 재생을 중지한다.
실행장치가 비인증 콘텐츠를 포함하는 콘텐츠를 수신하였더라도, 이 기술은 실행장치가 콘텐츠의 재생을 시작하지 않도록 하거나 중간에 재생을 중지할 수 있다.
[특허문헌 1]
미국특허공보 6,480,961
[특허문헌 2]
일본공개특허공보 2002-281013
[비특허문헌 1]
http://positron.jfet.org/dvdvideo.html(2004. 5. 17. 액세스 됨)
[비특허문헌 2]
http://www.pioneer.co.jp/crdl/tech/mpeg/1.html(2004. 5. 17. 액세스 됨)
[비특허문헌 3]
"The Art of Computer Programming Vol.2 Seminumerical Algorithms", Donald E. Knuth저, ISBN: 0-201-03822-6
[비특허문헌 4]
"Joho Security(Information Security)", Atsuko Miyaji와 Hiroaki Kikuchi 공동저, 일본 Information Processing Society 편집.
그러나, 상기한 종래기술에 따르면, 실행장치는 재생과 병행하여 검증정보를 계속하여 검증해야 하며, 따라서 실행장치의 처리 부하가 콘텐츠 재생 중에 높게 되는 문제가 있다.
또한, 안전 관점에서, 콘텐츠 대신 암호화된 콘텐츠가 분배되는 경우가 종종 있다. 이 경우, 실행장치는 해독 처리도 병행하여 수행해야 하며, 이에 따라 처리 부하는 더욱 증가한다.
따라서, 실행장치는 이들 처리를 병행할 수 있는 고효율 프로세서를 구비해야 한다.
본 발명은 이러한 문제들을 해결하며, 구비된 프로세서가 효율이 떨어지더라도 콘텐츠 재생 중 실행장치의 처리 부하를 줄임으로써 장애 없는 콘텐츠 재생을 달성하는 데이터 처리장치, 데이터 처리방법, 데이터 처리 프로그램을 기록한 기록매체를 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위해, 본 발명의 데이터 처리장치는, 디지털 저작물과, (i) 상기 디지털 저작물을 구성하는 복수의 데이터 블록으로부터 생성된 복수의 기록 요약 값과, (ii) 상기 복수의 기록 요약 값의 일부 또는 전부에 기초하여 생성된 기록서명데이터가 기록된 기록매체로부터 상기 디지털 저작물을 이용하는 데이터 처리장치로, 상기 복수의 기록 요약 값의 일부 또는 전부는 모두 상기 기록매체에 기록되며, 상기 디지털 저작물을 이용하는 이용부와; 상기 디지털 저작물을 이용할 때마다, 상기 디지털 저작물을 구성하는 상기 복수의 데이터 블록 모두로부터 기 설정된 수의 데이터 블록을 무작위(random)로 선택하는 선택부와; 상기 선택된 데이터 블록 각각에 대해 산출 요약 값을 산출하는 산출부와; 상기 복수의 기록 요약 값 중에서 적어도 선택된 상기 데이터 블록을 제외한 다른 데이터 블록에 대응하는 잔류 기록 요약 값을 판독하는 판독부와; 상기 기록 서명데이터, 상기 산출 요약 값 및 상기 잔류 기록 요약 값을 이용하여 상기 디지털 저작물의 정당성을 검증하는 서명검증부; 및 상기 서명검증부가 상기 디지털 저작물이 정당하지 않다고 판정하는 경우에, 상기 이용부가 상기 디지털 저작물을 이용하는 것을 중지하는 이용 제어부를 포함한다.
상기한 구성에 따르면, 본 발명의 데이터 처리장치의 선택부는 복수의 데이터 블록으로부터 기 설정된 수의 데이터 블록을 무작위로 선택한다. 산출부는 선택된 데이터 블록 각각에 대해 산출 요약값을 산출하고, 서명검증부는 상기 기록 서명데이터, 상기 산출 요약값, 및 상기 잔류 요약값을 이용하여 상기 디지털 저작물의 정당성을 검증한다. 이에 의하면, 산출 요약값이 기설정된 수로 새로이 산출되도록 제한함으로써 기록 서명데이터의 검증에 포함된 일련의 처리 부하를 줄일 수 있다.
또한, 선택부가 수행하는 선택은 무작위이다. 따라서, 검증이 수행될 때마다 다른 데이터 블록이 검증 대상이 될 것이며, 따라서 검증에 이용되는 데이터 블록의 수를 기설정된 수로 제한함에 따라 검증 정확도가 떨어지는 것을 어느 정도 보완할 수 있다. 또한, 제 3자가 어느 데이터 블록이 선택될지를 예측하는 것이 어려우며, 이는 검증에 이용되는 디지털 저작물의 일부만을 위조하거나 비인증 정보로 대체하는 것을 포함하는 사기 행위를 방지할 수 있다.
본 발명의 데이터 처리장치에서, 상기 복수의 기록 요약 값은 그 각각이 상기 복수의 데이터 블록 중 하나에 대해서 생성된 복수의 제 1 기록 요약 값과 둘 이상의 상기 복수의 제 1 기록 요약 값으로부터 생성된 복수의 제 2 기록 요약 값을 포함하고, 상기 기록 서명데이터는 상기 복수의 제 2 기록 요약 값에 디지털 서명을 수행함으로써 생성되며, 상기 판독부는 상기 복수의 제 1 기록 요약 값 중에서 상기 잔류 기록 요약 값을 판독하고, 상기 서명검증부는 상기 산출 요약 값과 상기 잔류 기록 요약 값에 기초하여 하나 이상의 제 2 산출 요약 값을 산출하고, 상기 기록 서명데이터, 상기 복수의 제 2 기록 요약 값 및 상기 제 2 산출 요약 값을 이용하여 디지털 서명 검증을 수행함으로써 상기 디지털 저작물의 정당성을 검증할 수 있다.
상기한 구성에 따르면, 기록 요약값은 제 1 기록 요약값과 제 2 기록 요약값을 포함한다. 서명검증부는 산출 요약값과 잔류 기록 요약값에 기초하여 하나 이상의 제 2 산출 요약값을 산출한다. 따라서, 판독부는 제 2 산출 요약값과 선택된 데이터 블록에 대응하지 않는 제 2 요약값의 산출에 필요한 제 1 기록 요약값만을 판독한다. 이에 따라, 기록매체로부터 판독되는 기록 요약값의 총 개수를 줄일 수 있다.
본 발명의 데이터 처리장치에서, 상기 디지털 저작물은 복수의 파일을 포함하고, 상기 복수의 파일 각각은 상기 복수의 제 2 기록 요약 값의 하나에 대응하며, 상기 복수의 데이터 블록 중 둘 이상으로 구성되며, 상기 복수의 제 2 기록 요약 값 각각은 상기 제 2 기록 요약 값에 대응하는 파일을 구성하는 상기 복수의 데이터 블록 중 둘 이상에 일대 일로 대응하는 제 1 기록 요약 값을 이용하여 생성되고, 상기 서명검증부는, 상기 기록매체로부터 상기 기록 서명데이터를 판독하는 제 1 판독 서브유닛과; 상기 선택된 데이터 블록의 적어도 하나를 포함하는 각 파일에 대해서, 당해 파일에 포함되는 데이터 블록 중 당해 선택된 데이터 블록을 제외한 잔류 데이터 블록에 대응하는 제 1 기록 요약 값과 당해 선택된 데이터 블록에 대응하는 상기 산출 요약 값을 이용하여 상기 제 2 산출 요약 값을 산출하는 산출 서브유닛과; 상기 선택된 데이터 블록을 포함하지 않는 각 파일에 대해서, 당해 파일에 대응하는 제 2 기록 요약 값을 판독하는 제 2 판독 서브유닛과; 상기 산출된 제 2 산출 요약 값과 상기 판독한 제 2 기록 요약 값을 이용하여 상기 디지털 서명을 수행함으로써 산출 서명데이터를 생성하는 서명 서브유닛; 및 상기 산출 서명데이터와 상기 기록 서명데이터를 비교하는 비교 서브유닛을 포함하며, 상기 서명검증부는, 상기 산출 서명데이터와 상기 기록 서명데이터가 서로 일치하는 경우에 상기 디지털 저작물이 정당한 것으로 검증하고, 상기 산출 서명데이터와 상기 기록 서명데이터가 서로 일치하지 않은 경우에 상기 디지털 저작물은 정당하지 않은 것으로 판정할 수 있다.
상기한 구성에 의하면, 판독부는, 선택된 데이터 블록 중 적어도 하나를 포함하는 각 파일에 대해서, 파일에 포함된 선택되지 않은 데이터 블록에 대응하는 제 1 기록 요약값을 판독한다. 반면, 서명검증부의 제 2 판독 서브유닛은, 선택된 데이터 블록 중 어느 것도 포함하지 않는 각 파일에 대해서, 파일에 대응하는 제 2 기록 요약값을 기록매체로부터 판독한다. 따라서, 기록매체로부터 판독되는 기록 요약값의 총 개수를 줄일 수 있다. 또한, 제 2 기록 요약값과 제 2 산출 요약값에 기초하여 산출 서명데이터를 생성하고 생성된 산출 서명데이터와 기록 서명데이터를 비교함으로써 디지털 저작물의 정당성 검증을 쉽게 수행할 수 있다.
본 발명의 처리장치에서, 상기 복수의 기록 요약 값은 각각 해시함수에 의해 생성된 해시 값이고, 상기 산출부에 의해 산출된 상기 산출 요약 값은 상기 선택된 데이터 블록 각각에 상기 해시함수를 적용하여 산출된 해시 값이며, 상기 산출 서브유닛에 의해 산출된 상기 제 2 산출 요약 값은 선택되지 않은 데이터 블록에 대응하는 상기 제 1 기록 요약 값과 상기 산출 요약 값에 상기 해시함수를 적용하여 산출된 해시 값일 수 있다.
상기한 구성에 의하면, 기록 요약값은 해시함수에 의해 생성된다. 산출부와 산출 서브유닛은 해시함수를 이용하여 산출 요약값과 제 2 산출 요약값을 산출한다.
해시함수는 일방향(one-way) 함수이기 때문에, 선택된 데이터 블록에 대응하는 제 1 기록 요약값을 산출하는데 사용된 데이터 블록이 선택된 데이터 블록과 부분적으로 다르면, 제 1 기록 요약값과 제 1 산출 요약값은 서로 일치하지 않는다. 따라서, 선택된 데이터 블록이 위조된 경우, 산출 요약값 및 제 2 산출 요약값은 기록매체에 기록된 대응 제 1 요약값 및 제 2 요약값과 일치하지 않는다. 이에 의해, 선택된 데이터 블록의 위조를 정확하게 검출할 수 있다.
본 발명의 데이터 처리장치에서, 상기 디지털 저작물은 디지털 콘텐츠일 수 있고, 상기 이용부는 상기 디지털 콘텐츠를 재생함으로써 상기 디지털 콘텐츠를 이용한다.
상기한 구성에 의하면, 이용 제어부는 위조된 디지털 콘텐츠의 재생을 중지한다. 이에 따라, 위조된 콘텐츠의 유통을 줄일 수 있다.
본 발명의 데이터 처리장치에서, 상기 디지털 저작물은 컴퓨터 프로그램일 수 있고, 상기 이용부는 상기 컴퓨터 프로그램을 구성하는 명령 코드를 해독하고 상기 해독된 코드에 따라 동작함으로써 상기 컴퓨터 프로그램을 이용한다.
상기한 구성에 의하면, 이용 제어부는 위조된 컴퓨터 프로그램의 실행을 중지한다. 이에 따라, 사용자 데이터의 파괴와 이용되지 않아야 하는 데이터의 적용과 같이, 비인증 프로그램의 실행에 의해 생기는 부정적 영향을 방지할 수 있다.
본 발명의 데이터 처리장치는, 상기 디지털 저작물이 정당하지 않은 것으로 판정된 경우에, 상기 디지털 저작물이 정당하지 않다는 취지를 표시하는 경고 표시부를 상기 이용 제어부 대신에 포함할 수 있다.
상기한 구성에 의하면, 디지털 저작물이 정당하지 않은 것으로 검증될 때, 경고 표시부는 그에 따라 표시하므로, 데이터 처리장치는 기록매체에 기록된 디지털 저작물이 인증되지 않은 것을 사용자에게 알릴 수 있다. 이에 의해, 사용자는 기록매체에 기록된 디지털 저작물이 인증되지 않은 것을 알게 되고, 그때부터 데이터 처리장치에 기록매체를 로드하지 않는 등의 보호대책을 적용한다. 따라서, 상기 디지털 저작물을 사용하여 생기는 가능한 부정적 영향을 피할 수 있다.
삭제
삭제
본 발명의 데이터 처리장치에서, 상기 기록매체는, 상기 기록매체는, (i) 외부장치에 의한 액세스가 허가되는 상기 기록매체 상의 액세스 허가영역을 나타내는 영역정보와, (ii) 상기 디지털 저작물과 상기 영역정보의 전부 또는 일부에 기초하여 생성된 서명데이터를 추가로 기록하고 있고, 상기 데이터 처리장치는, 상기 영역정보에 기초하여 상기 액세스 허가영역 이외의 다른 영역에의 액세스를 금지하는 액세스 금지부; 및 상기 디지털 저작물, 상기 영역정보 및 상기 서명데이터를 이용하여 상기 디지털 저작물과 상기 영역정보의 정당성을 검증하는 검증부를 추가로 포함하고, 상기 이용 제어부는 상기 검증부가 상기 디지털 저작물과 상기 영역정보 중 적어도 하나는 정당하지 않은 것으로 판정한 때, 상기 이용부가 상기 디지털 저작물을 이용하는 것을 중지한다.
일반적으로, 디지털 저작물을 이용하기 위한 절차를 나타내는 절차 파일이 디지털 저작물에 더하여 기록매체에 포함되는 경우가 종종 있다. 상기한 구조에 의하면, 데이터 처리장치는 영역정보가 지시하는 액세스 허가영역 이외의 다른 영역을 액세스하지 않는다.
따라서, 권한 없는 제3자가 기록매체의 빈 공간에 비인증 정보를 부가하고, 비인증 정보가 이용되도록 절차 파일을 위조하더라도, 데이터 처리장치는 비인증 정보를 판독하지 않는다.
또한, 서명데이터가 디지털 저작물과 영역정보에 기초하여 생성되기 때문에, 이용 제어부는, 권한 없는 자가 영역정보를 위조하더라도 이용부에 의한 디지털 저작물의 이용을 중지할 수 있다. 따라서, 비인증 정보의 이용을 방지할 수 있다.
여기서, 청구항의 데이터 처리장치는 다음 실시예의 실행장치이다. 청구항의 데이터 블록은 제 1, 제 5 및 제 6 실시예에서 암호화 유닛에 대응하며, 제 2 내지 제 4 실시예에서 부분콘텐츠에 대응한다.
도 1은 제 1 실시예의 비인증 콘텐츠 검출시스템의 구조를 나타내는 구조도이다.
도 2는 제 1 실시예의 분배장치(1100)의 구조를 나타내는 블록도이다.
도 3은 분배장치(1100)에 입력될 콘텐츠(1120)의 구조를 나타낸다.
도 4는 실행장치정보 저장부(1104)에 의해 저장된 장치식별 테이블의 구조를 나타낸다.
도 5는 키블록 생성부(1103)에 의해 생성된 키 블록(1150)의 상세를 나타낸다.
도 6은 선택부(1105)에 의해 수행된 분할콘텐츠의 생성 절차의 개요를 나타낸다.
도 7은 선택부(1105)에 의해 생성된 유닛 선택정보(1200)의 구조를 나타낸다.
도 8은 암호화 처리부(1106)에 의해 수행된 암호화 처리의 일부를 나타낸다.
도 9는 암호화 처리부(1106)에 의해 생성된 암호화 콘텐츠(1330)의 구조를 나타낸다.
도 10은 헤더정보 생성부(1107)에 의해 수행된 헤더정보(2160)의 생성 절차의 개요를 나타낸다.
도 11은 헤더정보 생성부(1107)에 의해 수행된 제 1 해시테이블의 생성 절차의 개요를 나타낸다.
도 12는 헤더정보 생성부(1107)에 의해 생성된 제2 해시테이블의 상세를 나타낸다.
도 13은 서명정보 생성부(1111)가 실행한 처리를 나타낸다.
도 14는 제 1 실시예의 DVD(1500)가 저장한 정보를 나타낸다.
도 15는 제 1 실시예의 실행장치(1600)의 구조를 나타내는 블록도이다.
도 16은 서명정보 검증부(1611)가 수행한 서명정보의 검증 처리의 개요를 나타낸다.
도 17은 서명정보 검증부(1611)가 수행한 처리의 일부를 나타낸다.
도 18은 서명정보 검증부(1611)가 수행한 대체된 제 1 해시테이블의 생성 절 차의 개요를 나타낸다.
도 19는 서명정보 검증부(1611)가 수행한 대체된 제 2 해시테이블의 생성 절차의 개요를 나타낸다.
도 20은 서명정보 검증부(1611)가 수행한 서명정보의 검증을 나타낸다.
도 21은 분배장치(1100)의 동작을 나타내는 플로차트이다.
도 22는 분배장치(1100)의 동작을 나타내는 플로차트이다(도 21에서 계속).
도 23은 실행장치(1600)가 수행한 서명정보의 검증 절차를 나타낸다.
도 24는 실행장치(1600)의 동작을 나타내는 플로차트이다.
도 25는 실행장치(1600)의 동작을 나타내는 플로차트이다(도 24에서 계속).
도 26은 제 1 실시예의 변형에 따른 분배장치(1100b)의 구조를 나타내는 블록도이다.
도 27은 제 2 실시예의 분배장치(2100)의 구조를 나타내는 블록도이다.
도 28은 분배장치(2100)에 입력될 콘텐츠(2120)와 식별정보의 구조를 나타낸다.
도 29는 선택부(2105)에 의해 수행된 처리의 개요를 나타낸다.
도 30은 헤더정보 생성부(2107)에 의해 생성된 선택위치정보(2160)의 구조를 나타낸다.
도 31은 헤더정보 생성부(2107)에 의해 생성된 헤더정보(2200)의 구조를 나타낸다.
도 32는 암호화 처리부(2109)가 생성한 암화 콘텐츠의 구조를 나타낸다.
도 33은 제 2 실시예의 DVD(2500)에 기록된 정보를 나타낸다.
도 34는 제 2 실시예의 실행장치(2600)의 구조를 나타내는 블록도이다.
도 35는 분배장치(2100)의 동작을 나타내는 플로차트이다.
도 36은 실행장치(2600)의 동작을 나타내는 플로차트이다.
도 37은 제 3 실시예의 분배장치(3100)의 구조를 나타내는 블록도이다.
도 38은 헤더정보 생성부(3107)가 생성한 헤더선택정보(3130)의 구조를 나타낸다.
도 39는 제 2 실시예의 DVD(3500)에 기록된 정보를 나타낸다.
도 40은 제 3 실시예의 실행장치(3600)의 구조를 나타내는 블록도이다.
도 41은 제 4 실시예의 분배장치(4100)의 구조를 나타내는 블록도이다.
도 42는 부분콘텐츠 생성부(4105)가 생성한 분할콘텐츠와 식별정보를 나타낸다.
도 43은 헤더정보 생성부(4107)가 생성한 콘텐츠 위치정보(4140)의 구조를 나타낸다.
도 44는 헤더정보 생성부(4107)가 생성한 헤더정보(4160)의 구조를 나타낸다.
도 45는 제 4 실시예의 DVD(4500)에 기록된 정보를 나타낸다.
도 46은 제 4 실시예의 실행장치(4600)의 구조를 나타내는 블록도이다.
도 47은 선택부(4611)가 수행한 선택위치정보(4620)의 생성 절차의 개요를 나타낸다.
도 48은 선택부(4611)가 수행한 선택헤더정보(4630)의 생성 절차의 개요를 나타낸다.
도 49는 부분콘텐츠 해독부(4616)가 실행한 해독 처리의 개요를 나타낸다.
도 50은 분배장치(4100)의 동작을 설명하는 플로차트이다.
도 51은 분배장치(4100)가 수행한 서명정보(4170)의 생성 절차를 나타낸다.
도 52는 실행장치(4600)의 동작을 설명하는 플로차트이다.
도 53은 실행장치(4600)의 동작을 설명하는 플로차트이다(도 52에서 계속).
도 54는 실행장치(4600)가 수행한 서명정보와 헤더정보의 검증 절차를 나타낸다.
도 55는 제 5 실시예의 분배장치(5100)의 구조를 나타내는 블록도이다.
도 56은 충진콘텐츠 생성부(5108)가 생성한 분할 충진콘텐츠(5120)의 구조를 나타낸다.
도 57은 충진콘텐츠 생성부(5108)로부터 출력된 유닛선택정보(5140)의 구조를 나타낸다.
도 58은 헤더정보 생성부(5107)가 수행한 헤더정보(5109)의 생성 절차의 개요를 나타낸다.
도 59는 헤더정보 생성부(5107)가 생성한 제 2 해시테이블(5180)의 구조를 나타낸다.
도 60은 제 5 실시예의 DVD(5500)에 기록된 정보를 나타낸다.
도 61은 제 5 실시예의 실행장치(5600)의 구조를 나타내는 블록도이다.
도 62는 분배장치(5100)의 동작을 나타내는 플로차트이다.
도 63은 분배장치(5100)의 동작을 나타내는 플로차트이다(도 62에서 계속).
도 64는 실행장치(5600)의 동작을 나타내는 플로차트이다.
도 65는 상상의 비인증 DVD(5500a)을 나타낸다.
도 66은 상상의 비인증 DVD(5500b)을 나타낸다.
도 67은 제 6 실시예의 분배장치(6100)의 구조를 나타내는 블록도이다.
도 68은 할당 생성부(6108)가 생성한 기입할당정보(6120)를 나타낸다.
도 69는 제 6 실시예의 DVD(6500)에 기록된 정보를 나타낸다.
도 70은 제 6 실시예의 실행장치(6600)의 구조를 나타내는 블록도이다.
도 71은 DVD(1500)의 구성과 취득부(1601)의 구조를 나타낸다.
1. 제 1 실시예
다음은 도면을 참조하여 본 발명의 일 실시예로 비인증 콘텐츠 검출 시스템(1)을 설명한다.
1.1 비인증 콘텐츠 검출 시스템(1)
도 1에 도시한 바와 같이, 비인증 콘텐츠 검출 시스템(1)은 분배장치(1100), 실행장치(1600), 및 모니터(1620)를 포함한다.
분배장치(1100)는, 예를 들어, 비디오 및 오디오를 포함하는 콘텐츠의 합법적 권리 보유자가 소유한 장치이다. 조작자가 실행하는 조작에 따라서, 분배장치(1100)는 콘텐츠를 취득하고, 취득한 콘텐츠를 암호화함으로써 암호화 콘텐츠를 생성한다. 또한, 분배장치(1100)는 콘텐츠를 이용하여 다양한 종류의 정보를 생성한다. 분배장치(1100)가 생성한 정보는, 예를 들어, 비인증 콘텐츠가 상기 콘텐츠에 포함되어 있는지를 검증하기 위해 실행장치(1600)에 이용되는 헤더정보이다. 또한, 분배장치(1100)는 그 자신에 특유한 서명키를 사용하여 서명정보를 생성하고, 생성된 암호화 콘텐츠, 서명정보, 헤더정보 등을 DVD(Digital Versatile Disk; 1500)에 기록한다.
DVD(1500)는 분배 매장을 통하여 사용자에게 판매되거나 분배될 것이다.
DVD(1500)가 로드될 때, 실행장치(1600)는 서명정보, 헤더정보 등을 로드된 DVD(1500)로부터 판독하고, DVD(1500)로부터 판독한 정보에 기초하여 비인증 콘텐츠가 포함되어 있는지의 검증뿐만 아니라 판독한 서명정보의 검증을 실행한다.
서명정보의 검증이 성공적인 경우에만, 실행장치(1600)는 콘텐츠의 재생을 시작한다.
비인증 콘텐츠 검출 시스템(1)과 DVD(1500)로 구성된 개인장치를 이하 상세하게 설명한다.
1.2 분배장치(1100)
도 2에 도시한 바와 같이, 분배장치(1100)는 입력부(1101), 콘텐츠키 생성부(1102), 키블록 생성부(1103), 실행장치정보 저장부(1104), 유닛 생성부(1105), 암호화 처리부(1106), 헤더정보 생성부(1107), 서명정보 생성부(1111), 서명키 저장부(1112), 및 기록부(1114)를 포함한다.
1.2.1 입력부(1101)
입력부(1101)는 조작자의 조작에 따라 외부장치 또는 외부 기록매체로부터 콘텐츠를 수신한다. 여기서, 도 3을 참조하여 입력부(1101)가 수신한 콘텐츠의 구조에 대해 설명한다.
도 3에 도시한 바와 같이, 입력부(1101)가 수신한 콘텐츠(1120)는 c개의 파일(c는 1 이상의 정수) 파일 "CNT1"(1121), "CNT2"(1122), "CNT3"(1123), ..., 및 "CNTc"(1124)로 구성된다. 여기서, 입력부(1101)가 취득한 콘텐츠(1120)는 실행장치(1600)에 대해 실행가능한 포맷으로(후에 상세하게 설명할 것이다), 그러한 실행가능 포맷의 예로는 DVD-Video 포맷과 MPEG-2(Moving Picture Experts Group 2) 포맷이 있다. 이 실시예는 콘텐츠(1120)가 DVD-Video 포맷이고 각 파일은 VOB(Video OBject) 파일인 것으로 가정하여 설명한다.
콘텐츠(1120)를 취득한 경우, 입력부(1101)는 콘텐츠키 생성부(1102)에 지시하여 콘텐츠 키를 생성하도록 하고, 취득한 콘텐츠(1120)를 유닛 생성부(1105)에 출력한다.
1.2.2 콘텐츠키 생성부(1102)
콘텐츠키 생성부(1102)는 콘텐츠 키를 생성하도록 입력부(1101)의 지시를 받는다. 지시에 응답하여, 콘텐츠키 생성부(1102)는 유사 난수(pseudorandom number)를 생성하고, 이어 생성된 유사 난수를 이용하여 128-비트 길이의 콘텐츠 키 "CK"를 생성한다. 유사 난수 대신에, 예를 들어, 신호대 잡음비를 이용하여 참(true) 난수를 생성할 수 있다. 비특허문헌 3은 난수를 생성하는 방법에 대한 상세한 것을 제공한다. 또한, 차분법이 콘텐츠 키를 생성하기 위해 사용될 수 있다.
이어, 콘텐츠키 생성부(1102)는 생성된 콘텐츠 키 "CK"를 1103 및 암호화 처리부(1106)에 출력한다.
1.2.3 콘텐츠키 생성부(1102) 및 실행장치정보 저장부(1104)
실행장치정보 저장부(1104)는, 예를 들어, ROM 또는 EEPROM으로 구성되며, 도 4에 도시된 바와 같은 장치식별 테이블(1130)을 저장한다.
장치식별 테이블(1130)은 n개의 장치 식별자와 n개의 장치 키(n은 자연수이다)로 구성된다. 장치 식별자는, 그 각각이 분배장치(1100)에 의해 기록된 DVD(1500) 상의 정보를 판독하고 판독된 정보를 재생하도록 허가된 장치에 특유한 식별정보이다. 장치 식별자에 일-대-일로 대응하는 장치 키는 대응 장치 식별자가 지시하는 개별 장치에 각각 특유한 키 정보이다. 예를 들어, 장치 식별자 "AID_1"(1131)은 장치 키 "DK_1"(1136)에 대응한다.
키블록 생성부(1103)는 콘텐츠키 생성부(1102)로부터 콘텐츠 키 "CK"를 수신하고, 키 블록(key block)을 생성한다.
도 5는 이때 생성된 키 블록(1150)의 구조의 일 예를 나타낸다. 키 블록(1150)은 n개의 장치 식별자와 n개의 암호화 콘텐츠 키로 구성된다. 장치 식별자는 장치식별 테이블에 포함된 장치 식별자와 동일하다. 장치 식별자는 암호화 콘텐츠 키와 일-대-일로 대응하고, 암호화 콘텐츠 키는 대응 장치 키를 이용하여 콘텐츠 키 "CK"에 암호화 알고리즘 E1을 적용하여 생성된다. 예를 들어, 장치 식별자 "AID_1"(1141)은 장치식별 테이블(1130)에 포함된 장치 식별자 "AID_1"(1131)과 동일하고, 암호화 콘텐츠 키 "Enc(DK_1, CK)"(1142)에 대응한다. 암호화 콘텐츠 키 "Enc(DK_1, CK)"(1142)는 장치식별 테이블(1130)에 포함된 장치 키 "DK_1"(1136)을 이용하여 콘텐츠 키 "CK"를 암호화하여 생성된다. 이후의 설명에서, 평문 텍스트 B를 키 A를 이용하여 암호화하여 생성된 암호화 텍스트를 "Enc(A, B)"라 한다.
키 블록(1150)을 생성하기 위한 절차를 다음에 설명한다.
콘텐츠 키 "CK"를 수신한 때, 키블록 생성부(1103)는 실행장치정보 저장부(1104)의 장치식별 테이블(1130)의 첫째 라인으로부터 장치 식별자 "AID_1"(1131)과 장치 키 "DK_1"(1136)을 판독한다. 키블록 생성부(1103)는 판독한 장치 키 "DK_1"(1136)를 이용하여 콘텐츠 키 "CK"에 암호화 알고리즘 E1을 적용하여 암호화 콘텐츠 키 "Enc(DK_1, CK)" 생성한다. 여기서, 암호화 알고리즘 E1에 대해, 일 예로, AES(Advanced Encryption Standard)가 사용된다. 비특허문헌 4는 AES에 대한 상세한 것을 제공한다. 여기에 사용된 암호화 시스템은 AES에 한정되지 않으며, 다른 시스템이 적용될 수 있음에 유의하라.
키블록 생성부(1103)는 판독한 장치 식별자 "AID_1"(1131)과 생성된 암호화 콘텐츠 키 "Enc(DK_1, CK)"를 서로 관련시켜 저장한다.
키블록 생성부(1103)는 n쌍의 장치 식별자와 장치 키 모두에 대해 같은 종류의 절차를 반복하여, n쌍의 장치 식별자와 암호화 콘텐츠 키를 생성하며, 이들 쌍을 모아 키 블록(1150)을 형성한다.
이어, 키블록 생성부(1103)는 생성된 키 블록(1150)을 기록부(1114)에 출력한다.
여기서, 가장 간단한 예로서, DVD(1500)에 기록된 정보를 재생하도록 동작하 는 각 장치에 특정 키가 할당되는 경우를 설명하였다. 그러나, 특허문헌 2에 개시된 기술은 암호화 콘텐츠 키의 개수를 줄이는 것과 특정 장치가 콘텐츠를 재생하지 못하게 하는 것을 개시한다.
1.2.4 유닛 생성부(1105)
유닛 생성부(1105)는 콘텐츠키 생성부(1102)로부터 콘텐츠(1120)를 수신한다. 콘텐츠(1120)를 수신한 때, 유닛 생성부(1105)는 이하에 설명한 절차에서 분할콘텐츠(split contents)와 유닛선택(unit pick-out) 정보를 생성한다.
다음에 설명하는 것은, (a) 분할콘텐츠 생성과, (b) 유닛선택정보 생성이다.
(a) 분할콘텐츠 생성
도 6에 도시한 바와 같이, 유닛 생성부(1105)는 콘텐츠(1120)로부터 분할콘텐츠(1160)를 생성한다. 분할콘텐츠(1160)를 생성하는 절차는 도 6을 참조하여 다음에 설명한다.
콘텐츠(1120)를 수신한 때, 유닛 생성부(1105)는 수신한 콘텐츠(1120)에 포함된 파일 "CNT1"(1121)에 대응하는 파일 식별자 "FID1"(1161)와 파일식별정보 "AD1"을 생성한다. 파일 식별자 "FID1"(1161)는 파일 "CNT1"(1121)을 고유하게 나타내는 식별정보이며, 예를 들어, 콘텐츠(1120) 내 파일 "CNT1"(1121)의 순서를 고유하게 나타내는 자연수 또는 파일의 이름이다. 파일식별정보 "AD1"은 파일 "CNT1"(1121)을 식별하기 위한 정보이며, 예를 들어, 콘텐츠(1120) 헤더로부터의 오프셋(offset), 섹터 번호, 또는 어드레스이다.
다음, 유닛 생성부(1105)는 각 VOBU(Video OBject Unit)에 대해 파일 "CNT1"(1121)을 분할하여 m개(m은 임의의 자연수)의 유닛 "U1_1", "U1_2", ..., 및 "U1_m"을 생성한다. 이어, 유닛 생성부(1105)는 생성된 유닛의 번호를 나타내는 유닛번호 "N1"(여기서, N1 = m)를 생성한다.
다음, 유닛 생성부(1105)는 파일 식별자 "FID1"(1161), 파일식별정보 "AD1", 및 유닛번호 "N1"로 구성된 파일정보를 생성하고, 생성된 파일정보를 저장한다.
다음, 유닛 생성부(1105)는 각 유닛에 대한 유닛 식별자를 생성한다. 유닛 식별자는 식별정보로, 각 부분은 m개의 유닛 중 하나를 고유하게 식별하며, 예를 들어, 1, 2, 3, ..., 및 m과 같이 헤드 유닛으로부터 시작하는 서수이거나, 헤드 유닛으로부터의 누적 비트 수일 수 있다. 이 실시예에서, 유닛 식별자는 헤드 유닛으로부터 시작하는 서수인 것으로 가정한다. 다음 설명에서, 대응하는 유닛 식별자와 유닛의 쌍은 유닛정보로 지칭되고, m개의 유닛정보는 총괄하여 분할파일로 지칭된다. 따라서, 파일 "CNT1"으로부터 생성된 분할파일 "splCNT1"(1171)은, 도 6에 도시한 바와 같이, m개의 유닛정보(1191, 1192, 1193, ..., 및 1194)로 구성된다. 유닛정보 각 부분은 대응 유닛 식별자와 유닛으로 구성된다. 일 예로, 하나의 유닛정보(1191)는 유닛 식별자 "UID1_1"(1181)과 유닛 "U1_1"(1186)을 포함한다.
다음, 유닛 생성부(1105)는 파일 식별자 "FID1"(1161)과 분할파일 "splCNT1"(1171)을 포함하는 분할파일정보(1176)를 생성한다.
유닛 생성부(1105)는 c개의 파일정보와 c개의 분할파일정보(1176, 1177, 1178, ..., 1179)를 생성하도록 모든 파일에 대해 같은 종류의 절차를 반복한다. 여기서, 생성된 c개의 분할파일정보는 총괄하여 분할콘텐츠(1160)로 지칭된다. 생 성된 유닛의 개수 m은 파일마다 다를 수 있다는 것에 유의하라.
다음, 유닛 생성부(1105)는 생성된 분할콘텐츠(1160)를 암호화 처리부(1106)에 출력한다.
여기서, 유닛 생성부(1105)는 파일 식별자와 파일식별정보를 생성하지만, 이들은 콘텐츠(1120)와 함께 외부에서 입력될 수 있다는 것에 유의하라.
또한, 개별 파일은 각 VOBU에 대해 분할되지만, 분할 단위는 이것에 한정되지 않는다. 예를 들어, 각 파일은 64Kbyte마다 분할되거나, 1초의 재생시간에 대응하는 부분마다 분할될 수 있다. 선택적으로, 조작자가 분할 단위를 나타내는 정보를 입력하도록 설계할 수 있다.
(b) 유닛선택정보 생성
분할콘텐츠(1160)의 출력을 종료한 후, 유닛 생성부(1105)는 c개의 파일정보로 구성된 유닛선택정보를 생성한다. 도 7은 이때 생성된 유닛선택정보(1200)의 구조를 나타낸다.
유닛선택정보(1200)는 c개의 파일정보(1201, 1202, ..., 1204)로 구성된다. 각 파일정보는 파일 식별자, 파일식별정보, 및 유닛번호로 구성된다.
일 예로, 하나의 파일정보(1201)는 파일 식별자 "FID1"(1211), 파일식별정보 "AD1"(1216), 및 유닛번호 "N1"(1221)로 구성된다.
유닛 생성부(1105)는 생성된 유닛선택정보(1200)를 서명정보 생성부(1111)과 기록부(1114)에 출력한다.
1.2.5 암호화 처리부(1106)
암호화 처리부(1106)는 유닛 생성부(1105)로부터 분할콘텐츠(1160)를 수신할 뿐 아니라 콘텐츠키 생성부(1102)로부터 콘텐츠 키 "CK"를 수신한다.
도 8은 암호화 처리부(1106)가 실행하는 처리의 일부를 나타낸다. 다음은 도 8을 참조하여 암호화 처리부(1106)가 실행하는 처리를 설명한다.
분할콘텐츠(1160)를 수신한 때, 암호화 처리부(1106)는 수신한 분할콘텐츠(1160)를 구성하는 분할파일정보(1176)에 포함된 분할파일 "splCNT1"(1171)을 선택한다. 암호화 처리부(1106)는 선택한 분할파일 "splCNT1"(1171)의 유닛정보(1191)의 헤드 부분으로부터 유닛 "U1_1"(1186)을 추출하고, 콘텐츠 키 "CK"를 이용하여 추출한 유닛 "U1_1"(1186)에 암호화 알고리즘 E1을 적용하여 암호화 유닛 "EU1_1"(1231)을 생성한다. 여기서, EU1_1 = Enc(CK, U1_1)이다.
암호화 처리부(1106)는 생성된 암호화 유닛 "EU1_1"(1231)과 유닛정보(1191)에 포함된 유닛 식별자 "UID1_1"(1181)로 구성된 암호화 유닛정보(1241)를 생성한다. 다음 설명에서, 대응 유닛 식별자와 암호화 유닛의 쌍을 암호화 유닛정보로 지칭한다.
암호화 처리부(1106)는 유닛정보의 나머지(1192, 1193, ..., 1194)에 대해 같은 종류의 처리를 반복하여 대응하는 암호화 유닛정보(1242, 1243, ..., 1244)를 생성한다. 여기서, 하나의 분할파일로부터 생성된 m개의 암호화 유닛정보는 총괄하여 암호화 분할파일이라 지칭한다.
도 8에 도시한 바와 같이, 상기한 절차에서 분할파일 "splCNT1"(1171)로부터 생성된 암호화 분할파일 "EsplCNT1"(2151)은 m개의 암호화 유닛정보(1241, 1242, 1243, ..., 1244)로 구성된다. 각 암호화 유닛정보는 분할파일(1171)을 구성하는 유닛정보에 기초하여 생성되며, 유닛 식별자와 암호화 유닛을 포함한다. 예를 들어, 암호화 유닛정보(1241)는 유닛정보(1191)에 기초하여 생성되고, 유닛 식별자 "UID1_1"(1181)과 암호화 유닛 "EU1_1"(1231)을 포함한다.
다음, 암호화 처리부(1106)는 생성된 암호화 분할파일 "EsplCNT1"(2151)을 구성하는 각 암호화 유닛정보로부터 암호화 유닛을 추출한다. 여기서, m개의 추출된 암호화 유닛은 총괄하여 암호화 파일 "ECNT1"로 지칭한다.
이어, 암호화 처리부(1106)는 분할파일정보(1176)에 포함된 분할파일 "splCNT1"(1171)을 생성된 암호화 분할파일 "EsplCNT1"(1251)로 대체하여 암호화 분할파일정보를 생성한다.
암호화 처리부(1106)는 분할파일정보(1177, 1178, ..., 1179)에 대해 같은 것을 수행하여 암호화 분할파일정보와 암호화 파일을 생성한다.
이때 생성된 c개의 암호화 분할파일정보는 총괄하여 암호화 분할콘텐츠로 지칭된다. 다음, 암호화 처리부(1106)는 생성된 암호화 분할콘텐츠를 헤더정보 생성부(1107)에 출력한다. 도 10은 여기서 출력된 암호화 분할콘텐츠(1210)의 구조를 나타낸다.
다음, 암호화 처리부(1106)는 c개의 암호화 파일을 암호화 콘텐츠로 기록부(1114)에 출력한다. 도 9는 여기서 생성된 암호화 콘텐츠(1330)의 구조를 나타낸다. 암호화 콘텐츠(1330)는 c개의 암호화 파일 "ECNT1"(1131), "ECNT2"(1132), "ECNT3"(1133), ..., "ECNT4"(1134)로 구성된다. 각 암호화 파일은 암호화 분할콘 텐츠에 포함된 암호화 분할파일에 기초하여 생성되고, 다수의 암호화 유닛을 포함한다. 일 예로, 암호화 파일 "ECNT1"(1131)은 암호화 유닛 "EU1_1", "EU1_2", ..., 등을 포함한다.
1.2.6 헤더정보 생성부(1107)
헤더정보 생성부(1107)는 암호화 처리부(1106)로부터 암호화 분할콘텐츠(1210)를 수신한다. 암호화 분할콘텐츠를 수신한 때, 헤더정보 생성부(1107)는, 도 10에 도시한 바와 같이, 수신한 암호화 분할콘텐츠를 이용하여 헤더정보(1260)를 생성한다.
도 10은 헤더정보 생성부(1107)가 수행한 헤더정보(1260)의 생성 절차의 개요를 보여준다. 헤더정보 생성부(1107)가 수신한 암호화 분할콘텐츠(1210)는 c개의 분할파일정보(1246, 1247, 1248, ..., 1249)로 구성된다. 각 분할파일정보는 파일 식별자와 암호화 분할파일을 포함한다. 예를 들어, 하나의 암호화 분할파일정보(1246)는 파일 식별자 "FID1"(1161)과 암호화 분할파일 "EsplCNT1"(1251)을 포함한다.
헤더정보 생성부(1107)는 암호화 분할파일정보(1246)에 포함된 각 분할파일에 기초하여 제 1 해시(hash) 테이블을 생성한다. 예를 들어, 헤더정보 생성부(1107)는 암호화 분할파일 "EsplCNT1"(1251)에 기초하여 제 1 해시테이블 "HA1TBL1"(1261)을 생성한다. 헤더정보 생성부(1107)는 생성된 c개의 제 1 해시테이블로부터 제 2 해시테이블 "HA2TBL"(1269)를 생성한다.
상기한 제 1 및 제 2 해시테이블의 생성 절차를 이하 상세히 설명한다.
1.2.6.1 제 1 해시테이블 생성
도 11은 헤더정보 생성부(1107)가 수행한 제 1 해시테이블 "HA1TBL1"(1261)의 생성 절차의 개요를 나타낸다.
제 1 해시테이블 "HA1TBL1"(1261)의 생성 절차를 도 11을 참조하여 이하 설명한다. 모든 제 1 해시테이블 "HA1TBL2", "HA1TBL3", ..., "HA1TBLc"에 대한 생성 절차는 제 1 해시테이블 "HA1TBL1"(1261)의 생성 절차와 동일하다.
먼저, 헤더정보 생성부(1107)는 암호화 분할파일 "EsplCNT1"(1251)을 구성하는 헤드 암호화 유닛정보(1241)로부터 암호화 유닛 "EU1_1"(1231)을 추출하고, 추출한 암호화 유닛 "EU1_1"(1231)을 해시 함수에 대입하여 유닛 해시값 "UHA1_1"(1271)을 생성한다.
여기서, SHA-1(Secure Hash Algorithm-1)이나 블록 암호를 사용하는 CBC-MAC(Cipher Block Chaining-Message Authentication Code)가 해시함수에 대해 적용된다.
여기서, 헤더정보 생성부(1107)는 암호화 유닛정보(1241)의 암호화 유닛 "EU1_1"(1231)을 생성된 유닛 해시값 "UHA1_1"(1271)으로 대체하여 유닛 해시정보(1271)를 생성한다.
헤더정보 생성부(1107)는 암호화 유닛정보의 나머지(1242, 1243, ..., 1244)에 같은 종류의 처리를 반복하여 대응하는 유닛 해시정보(1282, 1283, ..., 1284)을 생성한다. 이때 생성된 m개의 유닛 해시정보는 총괄하여 제 1 해시테이블 "HA1TBL1"(1261)로 지칭된다. 도 11은 이때 생성된 제 1 해시테이블 "HA1TBL1"(1261)의 구조를 나타낸다.
1.2.6.2 제 2 해시테이블 생성
헤더정보 생성부(1107)는 상기한 절차를 반복한다. 암호화 분할콘텐츠(1210)로부터 n개의 제 1 해시테이블 생성을 완료한 후, 헤더정보 생성부(1107)는 생성된 c개의 제 1 해시테이블로부터 도 12에 도시한 것과 같은 제 2 해시테이블(1269)을 생성한다. 제 2 해시테이블 "HA2TBL"(1269)는 c개의 파일 해시정보(1301, 1302, 1303, ..., 1304)로 구성되고, 각 파일 해시정보는 파일 식별자와 파일 해시값을 포함한다. 일 예로, 하나의 파일 해시정보(1301)는 파일 식별자 "FID1"(1161)과 파일 해시정보 "FHA1"(1291)를 포함한다.
제 2 해시테이블(1269)의 생성 절차를 이하 설명한다.
헤더정보 생성부(1107)는, 생성된 제 1 해시테이블 "HA1TBL1"(1261)을 구성하는 모든 유닛 식별자와 유닛 해시값을 조합하여 형성된 조합 결과를 해시함수에 대입함으로써 파일 해시값 "FHA1"(1291)을 생성한다.
이어, 헤더정보 생성부(1107)는 제 1 해시테이블 "HA1TBL1"(1261)에 대응하는 암호화 분할파일정보(1246)로부터 파일 식별자 "FID1"(1161)를 추출하고, 추출된 파일 식별자 "FID1"(1161)와 생성된 파일 해시값 "FHA1"(1291)으로 구성된 파일 해시정보(1301)를 생성한다.
헤더정보 생성부(1107)는 제 1 해시테이블(1262, 1263, ..., 1264)에 대해 같은 종류의 처리를 반복하여 각각 파일 해시정보(1302, 1303, ..., 1304)를 생성한다.
다음, 헤더정보 생성부(1107)는 이들 생성된 c개의 제 1 파일 해시정보를 모아서 제 2 해시테이블 "HA2TBL"(1269)을 생성한다.
이로써 제 1 해시테이블의 생성 절차(1.2.6.1)와 제 2 해시테이블의 생성 절차(1.2.6.2)의 설명을 끝마친다. 헤더정보 생성부(1107)는 상기한 절차에서 생성된 c개의 제 1 해시테이블과 단일 제 2 해시테이블 "HA2TBL"(1269)을 포함하는 헤더정보(1260)를 생성하고, 생성된 헤더정보(1260)를 기록부(1114)에 출력한다.
또한, 헤더정보 생성부(1107)는 생성된 제 2 해시테이블 "HA2TBL"(1269)을 서명정보 생성부(1111)에 출력한다.
1.2.7 서명정보 생성부(1111) 및 서명키 저장부(1112)
ROM으로 구성된 서명키 저장부(1112)는 분배장치(1100)에 특유한 서명키(1113)를 저장한다.
도 13은 서명정보 생성부(1111)의 동작의 개요를 나타낸다. 서명정보 생성부(1111)가 수행하는 서명정보 생성을 도 13을 참조하여 이하 설명한다.
서명정보 생성부(1111)는 헤더정보 생성부(1107)로부터 제 2 해시테이블 "HA2TBL"(1269)을 수신하는 동안 유닛 생성부(1105)로부터 유닛선택정보(1200)를 수신한다. 유닛선택정보(1200)와 제 2 해시테이블 "HA2TBL"(1269)을 수신한 때, 서명정보 생성부(1111)는 서명키 저장부(1112)로부터 서명키를 판독한다.
이어, 서명정보 생성부(1111)는 수신한 유닛선택정보(1200)와 제 2 해시테이블 "HA2TBL"(1269)로부터 판독한 서명키(1113)를 이용하여 서명정보(1310)를 생성한다. 더 구체적으로, 서명정보 생성부(1111)는, 판독한 서명키(1113)를 이용하여, 수신한 제 2 해시테이블 "HA2TBL"(1269)에 포함된 c개의 파일 해시값과 유닛선택정보(1200)에 포함된 c개의 파일정보를 조합하여 형성된 조합 결과에 서명생성 알고리즘 S를 적용한다.
일 예로, DSA(Digital Signature Algorithm)가 서명생성 알고리즘 S에 대해 사용된다.
다음, 서명정보 생성부(1111)는 생성된 서명정보(1310)를 기록부(1114)에 출력한다.
1.2.8 기록부(1114)
기록부(1114)에는 DVD(1500)가 로드된다.
기록부(1114)는, 키블록 생성부(1103)로부터 키 블록(1500), 유닛 생성부(1105)로부터 유닛선택정보(1200), 암호화 처리부(1106)로부터 암호화 콘텐츠(1330), 그리고 서명정보 생성부(1111)로부터 서명정보(1310)를 수신한다.
상기 정보를 수신한 때, 기록부(1114)는 수신한 키 블록(1150), 유닛선택정보(1200), 헤더정보(1260), 서명정보(1310), 및 암호화 콘텐츠(1330)를 DVD(1500)에 기록한다.
1.3 DVD(1500)
DVD(1500)는 실행장치(1600)에 로드되는 휴대가능 광디스크 매체이다.
도 14에 도시한 바와 같이, DVD(1500)는 키 블록(1510), 유닛선택정보(1530), 헤더정보(1550), 서명정보(1570), 및 암호화 콘텐츠(1580)를 저장한다. 이들은 분배장치(1100)에 의해 기록되었고, 각각 분배장치(1100)에 의해 생성된 수 신한 키 블록(1150), 유닛선택정보(1200), 헤더정보(1260), 서명정보(1310), 및 암호화 콘텐츠(1330)와 동일하다. 따라서, 이들 항목에 대해서는 단단하게 설명한다.
1.3.1 키 블록(1510)
키 블록(1510)은 n개의 장치 식별자 "AID_1", "AID_2", "AID_2", ..., "AID_n"와 n개의 장치 식별자에 각각 대응하는 n개의 암호화 콘텐츠 키 "Enc(DK_1, CK)", "Enc(DK_2, CK)", "Enc(DK_3, CK)", ..., "Enc(DK_n, CK)"로 구성된다.
1.3.2 유닛선택정보(1530)
유닛선택정보(1530)는 c개의 파일정보(1541, 1542, ..., 등)로 구성되며, 각 파일정보는 파일 식별자, 파일식별정보, 및 유닛번호를 포함한다. 파일정보의 각 부분은 암호화 콘텐츠(1580)에 포함된 암호화 파일에 대응한다. 또한, 각 파일은 헤더정보(1550)에 포함된 제 1 해시테이블에 대응한다.
1.3.3 암호화 콘텐츠(1580)
암호화 콘텐츠(1580)는 c개의 암호화 파일(1581, 1582, 1583, ..., 1587)로 구성된다. 각 암호화 파일은 다수의 암호화 유닛을 포함한다.
1.3.4 헤더정보(1550)
헤더정보(1550)는 c개의 제 1 해시테이블(1551, 1552, ..., 1557)과 제 2 해시테이블(1556)로 구성된다.
각 제 1 해시테이블은 다수의 유닛 해시정보로 구성되고, 각 유닛 해시정보는 유닛 식별자와 유닛 해시값을 포함한다.
제 2 해시테이블(1556)은 c개의 파일 해시정보(1561, 1562, 1563, ..., 1567)로 구성되며, 각 파일 해시정보는 파일 식별자와 파일 해시값을 갖는다.
1.3.5 서명정보(1570)
서명정보(1570)는 제 2 해시테이블(1556)에 포함된 c개의 파일 해시값과 유닛선택정보(1530)에 포함된 c개의 파일정보를 조합하여 형성된 조합 결과에 서명생성 알고리즘 S를 적용하여 생성된다.
1.4 실행장치(1600)
도 15에 도시한 바와 같이, 실행장치(1600)는 취득부(1601), 콘텐츠키 취득부(1602), 장치키 저장부(1604), 실행부(1606), 서명정보 검증부(1611), 및 검증키 저장부(1612)로 구성된다.
1.4.1 취득부(1601)
취득부(1601)에는 DVD(1500)가 로드된다. DVD(1500)가 로드되어 있는 것을 검출한 때, 취득부(1601)는 키 블록(1510), 유닛선택정보(1530), 및 서명정보(1570)를 DVD(1500)으로부터 판독하고, 판독한 키 블록(1510)을 콘텐츠키 취득부(1602)로 출력하고, 판독한 유닛선택정보(1530)와 서명정보(1570)를 서명정보 검증부(1611)에 출력한다.
또한, 취득부(1601)는 실행부(1606) 및 서명정보 검증부(1611)로부터의 지시에 따라 헤더정보(1550) 및 암호화 콘텐츠(1580)의 전부 또는 일부를 DVD(1500)로부터 판독한다.
1.4.2 콘텐츠키 취득부(1602) 및 장치키 저장부(1604)
ROM으로 구성된 장치키 저장부(1604)는, 도 15에 도시한 바와 같이, 장치 식 별자 "AID_p"(1608)과 장치 키 "DK_p"(1609)(p는 n 이하의 자연수)를 저장한다.
장치 식별자 "AID_p"(1608)는 실행장치(1600)를 고유하게 나타내는 식별정보이고, 장치 키 "DK_p"(1609)는 실행장치(1600)에 특유한 키 정보이다.
콘텐츠키 취득부(1602)는 취득부(1601)로부터 키 블록(1510)을 수신한다. 키 블록(1510)을 수신한 때, 콘텐츠키 취득부(1602)는 장치키 저장부(1604)로부터 장치 식별자 "AID_p"(1608)를 판독한다. 이어, 콘텐츠키 취득부(1602)는 수신한 키 블록(1510)으로부터 장치 식별자 "AID_p"(1608)에 대응하는 장치 식별자를 검출하고, 검출된 장치 식별자에 대응하는 암호화 콘텐츠 키를 추출한다.
이어, 콘텐츠키 취득부(1602)는 장치키 저장부(1604)로부터 장치 키 "DK_p"(1609)를 판독한다. 콘텐츠키 취득부(1602)는 판독한 장치 키 "DK_p"(1609)를 이용하여 추출된 암호화 콘텐츠 키에 해독 알고리즘 D1을 적용하여 콘텐츠 키 "DK"를 생성하고, 생성된 콘텐츠 키 "DK"를 실행부(1606)에 출력한다.
여기서, 해독 알고리즘 D1은 암호화 알고리즘 E1을 사용하여 생성된 암호화 텍스트를 해독하는데 사용되는 알고리즘이다.
1.4.3 서명정보 검증부(1611) 및 검증키 저장부(1612)
ROM으로 구성된 검증키 저장부(1612)는 검증 키(1613)를 저장한다. 검증 키(1613)는 분배장치(1100)에 의해 저장된 서명키(1113)에 대응하는 키 정보이다.
서명정보 검증부(1611)는 유닛선택정보(1530)와 서명정보(1570)를 취득부(1601)로부터 수신한다.
도 16은 서명정보 검증부(1611)가 수행하는 서명정보를 위한 검증동작의 개 요를 나타낸다. 유닛선택정보(1530)와 서명정보(1570)를 수신한 때, 서명정보 검증부(1611)는, 도 16에 도시한 것처럼, i개(i는 c 이하의 자연수)의 파일 식별자를 수신한 유닛선택정보(1530)로부터 선택한다. 여기서, 서명정보 검증부(1611)는 파일 식별자 "FID1"(1531), "FID3"(1533), ..., 등을 선택하였다는 가정에서 다음 설명을 한다.
서명정보 검증부(1611)는 제 1 해시테이블 "HA1TBL1"(1551)과 선택된 파일 식별자 "FID1"(1531)에 대응하는 암호화 파일 "ECNT1"(1581)에 기초하여 대체된(replaced) 제 1 해시테이블 "REPHA1TBL1"(1631)을 생성한다. 서명정보 검증부(1611)는 다른 선택된 파일 식별자 "FID3", ..., 등에 대해 같은 것을 수행하여 대체된 제 1 해시테이블(1633), ..., 등을 생성한다. 서명정보 검증부(1611)는 생성된 대체된 제 1 해시테이블(1631, 1633, ..., 등)과 DVD(1500)에 저장된 제 2 해시테이블 "HA2TBL"(1556)에 기초하여 대체된 제 2 해시테이블 "REPHA2TBL"(1639)을 생성하고, 생성된 대체된 제 2 해시테이블 "REPHA2TBL"(1639)을 사용하여 서명정보(1570)를 검증한다.
이로써 도 16에 도시한 개요를 끝마친다. 다음은 대체된 제 1 해시테이블의 생성(1.4.3.1); 대체된 제 2 해시테이블(1.4.3.2); 및 서명정보의 검증절차(1.4.3.3)를 도면을 참조하여 상세하게 설명한다.
1.4.3.1 대체된 제 1 해시테이블의 생성
대체된 제 1 해시테이블을 생성하기 위한 절차를 도 17과 18을 참조하여 설명한다.
도 17에 도시한 바와 같이, 서명정보 검증부(1611)는 수신한 유닛선택정보(1530)에 포함된 c개의 파일정보 중에서 i개(i는 c 이하의 자연수)를 선택한다. i개를 선택하는 방법은, 예를 들어, 각각 1 이상 c 이하인 i개의 유사 난수(r1, r2, ..., ri)를 생성하고, r1번째, r번째, ..., 및 ri번째 파일 식별자를 선택하는 것이다. 선택방법은 이것에 한정되지 않고, 어떤 파일 식별자가 선택될지 예측하는 것이 어려운 한, 어떠한 방법도 적용할 수 있다. 예를 들어, 온도, 습도, 전자신호에 대한 잡음비 등이 사용될 수 있다.
이 실시예에서, i = 7이고, 7개의 파일 식별자(1541, 1542, ..., 등)가 선택된다는 가정으로 다음을 설명한다.
이어, 서명정보 검증부(1611)는, 도 18에 도시한 바와 같이, 선택된 파일정보(1541)에 포함된 파일 식별자 "FID1"에 대응하는 암호화 파일 "ECNT1"(1581)의 암호화 유닛 중 어느 하나를 선택하고, DVD(1500)로부터 선택된 암호화 유닛을 판독한다. 더 구체적으로, 서명정보 검증부(1611)는 선택된 파일정보(1541)에 포함된 유닛번호 "N1"을 판독하고, "N1" 이하인 유사 난수 t(여기서, t= 3)를 생성한다. 이어, 서명정보 검증부(1611)는 선택된 파일정보(1541)에 포함된 파일식별정보 "AD1"에 기초하여 암호화 파일 "ECNT1"의 세 번째 암호화 유닛인 암호화 유닛 "EU1_3"를 취득부(1601)를 통하여 DVD(1500)로부터 판독한다.
다음, 서명정보 검증부(1611)는 판독한 암호화 유닛 "EU1_3"를 해시함수에 대입하여 대체(replacing) 유닛 해시값 "H3"을 생성한다. 여기서, 서명정보 검증부(1611)는 분배장치(1100)의 헤더정보 생성부(1107)가 사용한 것과 동일한 해시함 수를 사용한다.
다음, 서명정보 검증부(1611)는 헤더정보(1550)에 포함된 제 1 해시테이블 "HA1TBL1"(1551)을 취득부(1601)를 통하여 판독한다.
이어, 서명정보 검증부(1611)는, 판독한 제 1 해시테이블 "HA1TBL1"(1551)를 구성하는 m개의 유닛 해시정보 중에서 t = 3에 따르는 유닛 식별자 "UID1_3"에 대응하는 유닛 해시값 "UHA1_3"을 산출된 대체 유닛 해시값 "H3"으로 대체한다. 그 결과가 대체된 제 1 해시테이블 "REPHA1TBL1"(1631)이다.
서명정보 검증부(1611)는 다른 선택된 파일정보(1542, ..., 등)에 대해 같은 종류의 처리를 반복하여 대체된 제 1 해시테이블 "REPHA1TBL3"(1633) 등을 각각 생성한다.
1.4.3.2 대체된 제 2 해시테이블의 생성
다음은 도 19를 참조하여 대체된 제 2 해시테이블을 생성하기 위한 절차를 설명한다.
선택된 7개의 파일정보에 기초하여 대체된 제 1 해시테이블의 생성을 완료한 후, 서명정보 검증부(1611)는 생성된 대체된 제 1 해시테이블 "REPHA1TBL1"(1631)을 구성하는 모든 유닛 식별자, 모든 유닛 해시값, 및 대체된 해시값을 조합하고, 조합 결과를 해시함수에 대입하여 대체 파일 해시값 "fha1"을 생성한다. 비슷한 방법으로, 서명정보 검증부(1611)는 대체된 제 1 해시테이블 "REPHA1TBL3"(1633) 등에 기초하여 대체 파일 해시값 "fha3", ..., 등을 각각 생성한다.
다음, 서명정보 검증부(1611)는 DVD(1500)로부터 헤더정보(1550)에 포함된 제 2 해시테이블 "HA2TBL"(1556)을 판독한다. 제 2 해시테이블 "HA2TBL"(1556)에 포함된 c개의 파일 해시정보 중에서, 서명정보 검증부(1611)는, 선택된 7개의 파일정보에 포함된 파일 식별자 "FID1", "FID3", ..., 등을 포함하는 파일 해시정보의 파일 해시값을 생성된 대체 파일 해시값 "fha1", "fha3", ..., 등으로 각각 대체한다. 이러한 대체가 실행된 제 2 해시테이블 "HA2TBL"(1556)이 대체된 제 2 해시테이블 "REPHA2TBL"(1639)이다.
1.4.3.3 서명정보 검증
다음은 도 20을 참조하여 서명정보 검증을 설명한다.
대체된 제 2 해시테이블 "REPHA2TBL"(1639)을 생성한 후, 서명정보 검증부(1611)는 검증키 저장부(1612)로부터 검증 키(1613)를 판독한다.
이어, 서명정보 검증부(1611)는 모든 파일 해시값과 대체된 제 2 해시테이블 "REPHA2TBL"(1639)에 포함된 대체 파일 해시값 및 유닛선택정보(1530)에 포함된 c개의 파일정보를 조합하고, 검증 키(1613)를 이용하여 생성된 조합 결과에 서명검증 알고리즘 V를 적용하여 서명검증 정보를 생성한다. 이어, 서명정보 검증부(1611)는 생성된 서명검증 정보와 취득부(1601)로부터 수신한 서명정보(1570)를 비교한다. 이들 둘이 일치하지 않을 때, 서명정보 검증부(1611)는 서명검증이 성공적이 아닌 것으로 판정하고, 콘텐츠 재생의 금지를 지시하는 재생금지정보를 실행부(1606)에 출력한다. 여기서, 서명검증 알고리즘 V는 서명생성 알고리즘 S를 사용하여 생성된 서명을 검증하기 위한 알고리즘이다.
둘이 일치한 때, 서명정보 검증부(1611)는 검증 처리를 종료한다.
1.4.4 실행부(1606)
실행부(1606)는 콘텐츠키 취득부(1602)로부터 콘텐츠 키 "CK"를 수신한다.
또한, 실행부(1606)는 서명정보 검증부(1611)로부터 재생금지정보를 수신할 수 있다.
콘텐츠 키 "CK"를 수신한 때, 실행부(1606)는 암호화 콘텐츠(1580)를 구성하는 암호화 파일 "ECNT1"을 취득부(1601)를 통하여 DVD(1500)로부터 판독한다. 실행부(1606)는 수신한 콘텐츠 키 "CK"를 사용하여 판독한 암호화 파일(1581)을 구성하는 암호화 유닛 "EU1_1", "EU1_2", ..., 등에 해독 알고리즘 D1을 순차 적용하여 유닛 "U1_1", "U1_2", ..., 등으로 구성된 파일 "CNT1"을 생성한다.
이어, 실행부(1606)는 생성된 파일 "CNT1"을 압축을 풀어 비디오 및 오디오 데이터를 생성한다. 실행부(1606)는 생성된 비디오 및 오디오 데이터에 기초하여 비디오 및 오디오 신호를 생성하고, 생성된 비디오 및 오디오 신호를 모니터(1620)에 출력한다.
암호화 파일 "ECNT2", ..., 및 "ECNTc"에 대해, 실행부(1606)는 유사한 방법으로 비디오 및 오디오 데이터의 출력뿐만 아니라 독출, 해독, 및 압축 풀기를 반복한다.
반복 중 서명정보 검증부(1611)로부터 재생금지정보를 수신하면, 실행부(1606)는 반복을 중단하고, 예들 들어, 지시램프를 점등하거나 모니터(1620)가 에러를 알려주는 화면을 표시하도록 함으로써 실행장치(1600)에 로드된 DVD가 재생 실행 불가능하다는 것을 사용자에게 알려준다.
1.4.5 모니터(1620)
모니터(1620)는 케이블에 의해 실행장치(1600)에 연결되는 내장형 스피커를 갖는다.
모니터(1620)는 실행장치(1600)의 실행부(1606)로부터 비디오 및 오디오 신호를 수신하고, 수신한 영상신호로부터 화면을 생성하며, 화면을 표시한다. 또한, 모니터(1620)는 오디오 신호로부터 오디오를 생성하고, 생성된 오디오를 스피커에 출력한다.
1.5 동작
다음은 분배장치(1100)과 실행장치(1600)의 동작을 설명한다.
1.5.1 분배장치(1100)의 동작
도 21과 22에 도시한 플로차트를 참조하여 분배장치(1100)의 동작을 설명한다.
입력부(1101)는 조작자가 실행한 조작에 따라 c개의 파일로 구성된 콘텐츠(1120)를 취득하고(단계 S1011), 콘텐츠키 생성부(1102)에 지시하여 콘텐츠 키를 생성하도록 한다.
콘텐츠키 생성부(1102)는 난수를 이용하여 콘텐츠 키 "CK"를 생성하고, 생성된 콘텐츠 키 "CK"를 키블록 생성부(1103)에 출력한다(단계 S1012).
키블록 생성부(1103)는 콘텐츠 키 "CK"를 수신하고, 실행장치정보 저장부(1104)로부터 장치식별 테이블(1130)을 판독한다(단계 S1013). 키블록 생성부(1103)는 수신한 콘텐츠 키 "CK"와 판독한 장치식별 테이블(1130)을 이용하여 키 블록(1150)을 생성한다(단계 S1016).
단계 S1017 내지 S1023에서, 분배장치(1100)의 유닛 생성부(1105)는 콘텐츠(1120)를 구성하는 각 파일에 대해 단계 S1018 내지 S1022의 처리를 반복한다.
유닛 생성부(1105)는 파일에 대응하는 파일 식별자와 파일식별정보를 생성한다(단계 S1018). 이어, 유닛 생성부(1105)는 파일을 분할하여 m개의 유닛을 생성하고(단계 S1019), 생성된 유닛의 번호를 나타내는 유닛번호를 생성하며, 생성된 파일 식별자, 파일식별정보, 및 유닛번호로 구성된 파일정보를 생성한다(단계 S1020).
다음, 유닛 생성부(1105)는 생성된 유닛에 일-대-일로 대응하는 유닛 식별자를 생성한다(단계 S1021). 이어, 유닛 생성부(1105)는 각각이 대응 유닛 식별자를 포함하는 m개의 유닛정보를 생성하고, 이들 유닛정보를 모아서 분할파일을 형성한다. 다음, 유닛 생성부(1105)는 분할파일과 분할 식별자로 구성된 분할파일정보를 생성한다(단계 S1022).
모든 파일에 대한 단계 S1017 내지 S1023의 반복과 c개의 분할파일정보 및 파일정보의 생성이 완료된 후, 유닛 생성부(1105)는 c개의 파일정보로 구성된 유닛선택정보(1200)를 생성하고, 생성된 유닛선택정보(1200)를 서명정보 생성부(1111)와 기록부(1114)에 출력한다. 또한, 유닛 생성부(1105)는 c개의 분할파일정보로 구성된 분할콘텐츠(1160)를 암호화 처리부(1106)에 출력한다.
암호화 처리부(1106)는 유닛 생성부(1105)로부터 분할콘텐츠(1160)를 수신하고, 콘텐츠 키 "CK"를 이용하여 수신한 분할콘텐츠(1160)를 구성하는 개별 분할파 일의 각 유닛을 암호화하여 암호화 분할콘텐츠(1210)를 생성한다(단계 S1026).
다음, 암호화 처리부(1106)는 각 암호화 분할파일로부터 암호화 유닛을 추출하여 c개의 암호화 파일을 생성하고, 이들 암호화 파일을 모아서 암호화 콘텐츠(1330)를 형성한다(단계 S1027). 다음, 암호화 처리부(1106)는 암호화 분할콘텐츠(1210)를 헤더정보 생성부(1107)에 출력하면서 암호화 콘텐츠(1330)를 기록부(1114)에 출력한다.
헤더정보 생성부(1107)는 암호화 처리부(1106)로부터 암호화 분할콘텐츠(1210)를 수신한다. 헤더정보 생성부(1107)는 암호화 분할콘텐츠(1210)를 구성하는 각 암호화 분할파일에 포함된 암호화 유닛을 해시함수에 대입함으로써 유닛 해시값을 산출하고, c개의 제1 해시테이블을 생성한다(단계 S1028).
다음, 헤더정보 생성부(1107)는, 각 제 1 해시테이블에 대해, 제 1 해시테이블에 기초하여 파일 해시값을 산출하고, c개의 산출된 파일 해시값을 포함하는 제 2 해시테이블(1269)을 생성한다(단계 S1029).
다음, 헤더정보 생성부(1107)는 생성된 제 2 해시테이블(1269)과 c개의 제 1 해시테이블을 포함하는 헤더정보(1260)를 생성한다(단계 S1031).
서명정보 생성부(1111)는 서명키 저장부(1112)로부터 서명키(1113)를 판독하고(단계 S1032), 판독한 서명키(1113)를 이용하여 제 2 해시테이블(1269)과 유닛선택정보에 서명생성 알고리즘을 적용하여 서명정보를 생성한다(단계 S1033).
기록부(1114)는 키 블록(1150), 유닛선택정보(1200), 헤더정보(1260), 서명정보(1310), 및 암호화 콘텐츠(1330)를 DVD(1500)에 기록한다(단계 S1034).
1.5.2 실행장치(1600)의 동작
도 23은 서명정보의 검증에 포함된 정보생산 프로세스를 나타낸다. 설명의 편의를 위하여, 헤더정보(1550)에 관하여, 제 1 해시테이블에 포함된 유닛 해시값과 제 2 해시테이블에 포함된 파일 해시값만 도면에 도시한다. 도 24와 25는 실행장치(1600)의 동작을 보여주는 플로차트이다. 도 23 내지 25의 같은 단계 번호는 같은 처리를 나타낸다.
다음은 도 23 내지 25를 참조하여 실행장치(1600)의 동작을 설명한다.
DVD(1500)가 로드될 때, 취득부(1601)는 키 블록(1510), 유닛선택정보(1530), 및 서명정보(1570)를 DVD(1500)로부터 판독하고, 키 블록(1510)을 콘텐츠키 취득부(1602)에 출력하고 유닛선택정보(1530) 및 서명정보(1570)를 서명정보 검증부(1611)에 출력한다(단계 S1041).
서명정보 검증부(1611)는 유닛선택정보(1530)와 서명정보(1570)를 수신하고, 난수를 이용하여 유닛선택정보(1530)에 포함된 c개의 파일 식별자 중에서 i개를 선택한다(단계 S1046).
단계 S1047 내지 S1057에서, 서명정보 검증부(1611)는 선택된 i개의 파일 식별자 각각에 대해 단계 S1048 내지 S1056의 처리를 반복하여 i개의 대체된 제 1 해시테이블을 생성한다.
서명정보 검증부(1611)는 선택된 파일 식별자 중 하나에 대응하는 유닛번호를 유닛정보로부터 추출한다(단계 S1048). 이어, 서명정보 검증부(1611)는 1 이상이고 판독한 유닛번호 이하의 난수 t를 생성한다(단계 S1049). 서명정보 검증 부(1611)는 선택된 파일 식별자에 대응하는 파일식별정보를 유닛정보로부터 추출하고, 선택된 파일 식별자에 대응하는 암호화 파일의 t번째 암호화 유닛을 추출된 유닛식별정보에 기초하여 DVD(1500)로부터 판독한다(단계 S1051). 도 23에서, 상기 처리가 반복될 때마다, 서명정보 검증부(1611)는, 암호화 파일(1581)에 포함된 암호화 유닛(1511), 암호화 파일(1583)에 포함된 암호화 유닛(1512), ..., 암호화 파일(1587)에 포함된 암호화 유닛(1513)을 순차적으로 판독한다.
서명정보 검증부(1611)는 판독한 암호화 유닛을 해시함수에 대입함으로써 대체 유닛 해시값을 산출한다(단계 S1052).
다음, 서명정보 검증부(1611)는 선택된 파일 식별자에 대응하는 제 1 해시테이블을 DVD(1500)로부터 판독하고(단계 S1054), 산출된 대체 유닛 해시값에 대응하는 유닛 해시값을 산출된 대체 유닛 해시값으로 대체함으로써 대체된 제 1 해시테이블을 산출한다(단계 S1056). 도 23에서, 상기 처리가 반복될 때마다, 서명정보 검증부(1611)는, 암호화 유닛(1511)으로부터 대체된 제 1 해시테이블(1631); 암호화 유닛(1512)과 제 1 해시테이블(1553)로부터 대체된 제 1 해시테이블(1633); ...; 및 암호화 유닛(1513)과 제 1 해시테이블(1557)로부터 대체된 제 1 해시테이블(1637)을 생성한다.
i개의 파일 식별자 모두에 대해 단계 S1047 내지 S1057의 반복을 완료한 후, 서명정보 검증부(1611)는 대체된 제 1 해시테이블을 개별적으로 해시함수에 대입함으로써 i개의 대체 파일 해시값을 산출한다(단계 S1059).
다음, 서명정보 검증부(1611)는 DVD(1500)로부터 제 2 해시테이블(1556)을 판독하고, 선택된 i개의 파일 식별자에 대응하는 파일 해시값을 산출된 i개의 대체 파일 해시값으로 대체함으로써 대체된 제 2 해시테이블(1639)을 생성한다(단계 S1063). 도 23에서, 생성된 대체된 제 2 해시테이블(1639)은, 대체된 제 1 해시테이블(1631)로부터 산출된 대체 파일 해시값(1641); DVD(1500)로부터 판독한 파일 해시값(1572); 대체된 제 1 해시테이블(1633)로부터 산출된 대체 파일 해시값(1643); ...; 및 대체된 제 1 해시테이블(1637)로부터 산출된 대체 파일 해시값(1647)을 포함한다.
다음, 서명정보 검증부(1611)는 검증키 저장부(1612)로부터 검증키(1613)를 판독하고(단계 S1064), 유닛선택정보(1530), 생성된 대체된 제 2 해시테이블, 및 판독한 검증키(1613)를 이용하여 서명정보(1570)의 검증을 수행한다(단계 S1066).
서명정보의 검증이 성공적인 때(단계 S1067: YES), 서명정보 검증부(1611)는 서명정보(1570)의 검증을 종료한다.
서명검증이 성공적이지 않으면(단계 S1067: NO), 서명정보 검증부(1611)는 재생금지정보를 실행부(1606)에 출력한다(단계 S1073).
콘텐츠키 취득부(1602)는 키 블록(1510)을 수신하고, 장치 식별자(1608)와 장치 키(1609)를 장치키 저장부(1604)로부터 판독한다(단계 S1071). 이어, 콘텐츠키 취득부(1602)는 판독한 장치 식별자(1608), 장치 키(1609), 및 키 블록(1510)으로부터 콘텐츠 키 "CK"를 생성하고, 생성된 콘텐츠 키 "CK"를 실행부(1606)에 출력한다(단계 S1072).
실행부(1606)는 콘텐츠 키 "CK"를 수신한다. 여기서, 서명정보 검증부(1611) 로부터 재생금지정보를 수신하였으면(단계 S1074: YES), 실행부(1606)는 DVD(1500)에 저장된 콘텐츠의 재생 실행 불가능을 사용자에게 통보하고(단계 S1076), 재생을 종료한다.
재생금지정보를 수신하지 않았으면(단계 S1074: NO), 실행부(1606)는 암호화 콘텐츠(1580)를 구성하는 암호화 파일을 DVD(1500)로부터 판독한다(단계 S1077). 실행부(1606)는 먼저 판독한 암호화 파일을 콘텐츠 키 "CK"를 사용하여 해독하여 파일을 생성하고(단계 S1079), 생성된 파일을 압축을 풀어 비디오 및 오디오 데이터를 생성한다(단계 S1081). 이어, 실행부(1606)는 생성된 비디오 및 오디오 데이터로부터 각각 비디오 및 오디오 신호를 생성하고, 이들 신호를 모니터(1620)에 출력하고, 모니터(1620)가 비디오 및 오디오를 재생하도록 한다(단계 S1082). 모든 암호화 파일의 판독을 종료하고 사용자 조작에 의해 재생 종료를 지시받은 때(단계 S1084: YES), 실행부(1606)는 재생을 종료한다.
판독하지 않은 암호화 파일 아직 존재하고 실행부(1606)가 사용자로부터 재생 종료 지시를 수신하지 않았으면, 실행부(1606)는 단계 S1074로 복귀하여 단계 S1074 내지 S1084의 처리를 반복한다.
1.6 요약 및 유익한 효과
상기한 바와 같이, 이 실시예에서, DVD(1500)는, 각각 다수의 암호화 유닛을 포함하는 c개의 암호화 파일을 포함하는 암호화 콘텐츠; 제 2 해시테이블뿐만 아니라 다수의 암호화 유닛에 기초하여 생성된 c개의 제 1 해시테이블을 포함하는 헤더정보; 및 제 2 해시테이블에 기초하여 생성된 서명정보를 포함한다.
암호화 콘텐츠의 독출, 해독, 및 재생을 시작함과 동시에, 실행장치(1600)는 난수를 이용하여 i개의 암호화 유닛을 임의로 선택하고, 선택된 i개의 암호화 유닛에 기초하여 대체 유닛 해시값과 대체 파일 해시값을 산출한다.
다음, 실행장치(1600)는 DVD로부터 제 2 해시테이블을 판독하고, 판독한 제 2 해시테이블 중에서, 산출된 대체 파일 해시값에 대응하는 파일 해시값을 산출된 대체 파일 해시값으로 대체함으로써 대체된 제 2 해시테이블을 생성한다. 이어, 실행장치(1600)는 대체된 제 2 해시테이블을 이용하여 서명정보의 검증을 수행한다. 검증이 성공적이지 않으면, 실행장치(1600)는 콘텐츠의 재생을 중단한다.
이와 같이, 서명정보의 검증을 위해 새로이 산출된 유닛 해시값의 개수를 i개로 한정함으로써, 서명정보의 검증에 포함된 산출량을 줄일 수 있으며, 이는 콘텐츠 재생에서의 처리부하의 감소를 가져온다.
또한, 서명정보의 검증을 제 1 및 제 2 해시테이블로 구성된 2층 구조를 이용하여 수행함으로써, 실행장치(1600)는 DVD(1500)로부터 판독하는 정보량을 줄일 수 있다. 더 구체적으로, 본 발명의 제 1 실시예에서, 선택되지 않은 파일정보에 대응하는 제 1 해시테이블을 판독할 필요가 없다. 따라서, 정보를 판독하는데 필요한 시간을 줄일 수 있다.
또한, 선택된 파일정보에 대응하는 제 1 해시테이블이 제 1 실시예에서 판독된다. 그러나, 선택된 파일정보에 대응하는 제 1 해시테이블을 구성하는 성분 중에서, 산출된 대체 유닛 해시값에 대응하는 유닛 해시값 이외의 성분만이 판독될 수 있다. 제 2 해시테이블을 판독하는데에도 같은 것이 적용된다. 이에 의하면, DVD(1500)로부터 판독되는 정보의 양을 추가로 줄일 수 있다.
암호화 유닛으로부터 생성된 대체 해시값을 이용하여 서명정보의 검증을 수행함으로써, 비인증 콘텐츠가 포함되어 있는지의 검증과 서명정보가 생성되었는지의 검증을 합법적 권리 보유자가 소유한 서명키를 이용하여 한 번에 완료할 수 있다.
검증 처리에서, DVD(1500)의 암호화 콘텐츠의 전부 또는 일부가 비인증 콘텐츠로 대체되면, i개의 암호화 유닛만이 사용을 위해 임의로 선택되기 때문에 제 1 실시예는 비인증 콘텐츠를 검출할 가능성이 높다.
여기서, 암호화 콘텐츠의 반이 비인증 콘텐츠로 재기록되었다는 가정으로 구체적인 설명을 한다. 선택된 하나의 암호화 유닛이 분배장치(1100)가 생성한 유효 암호화 유닛일 가능성은 1/2이다. 예를 들어, 7개의 암호화 유닛을 선택하여 검증을 수행한 경우, 선택된 7개의 암호화 유닛 모두가 유효 암호화 유닛일 가능성은 (1/2)7 = 1/128이다. 즉, 이 경우, 비인증 콘텐츠를 검출할 수 없는 가능성은 1%보다 작다. 이에 의하면, 제 1 실시예는 합법적 권리 보유자가 분배한 콘텐츠의 일부를 비인증 콘텐츠로 대체하여 분배하는 것을 포함하는 사기 행위를 방지하기 위한 억지력으로 동작한다.
1.7 제 1 실시예의 변형
제 1 실시예에서, 분배장치(1100)는 취득한 콘텐츠를 구성하는 각 파일을 유닛으로 분할하고, 각 유닛에 대해 암호화를 실행한다. 그러나, 분배장치(1100)는 각 파일에 대해 암호화를 실행하여 암호화 파일을 생성하고, 생성된 암호화 파일 각각을 분할하여 암호화 유닛을 생성할 수 있다. 이 경우, 실행장치(1600)의 실행부(1606)는 DVD(1500)로부터 암호화 콘텐츠를 판독하고, 각 암호화 파일에 대해 판독한 암호화 콘텐츠를 해독하고, 해독한 콘텐츠를 재생한다.
도 26을 참조하여 이 변형예의 분배장치(1100b)를 설명한다.
분배장치(1100b)는 입력부(1101b), 콘텐츠키 생성부(1102), 키블록 생성부(1103), 실행장치정보 저장부(1104), 유닛 생성부(1105b), 암호화 처리부(1106b), 헤더정보 생성부(1107), 서명정보 생성부(1111), 서명키 저장부(1112), 및 기록부(1114)로 구성된다.
콘텐츠키 생성부(1102), 키블록 생성부(1103), 실행장치정보 저장부(1104), 헤더정보 생성부(1107), 서명정보 생성부(1111), 서명키 저장부(1112), 및 기록부(1114)가 제 1 실시예와 같기 때문에, 이들 요소에 대한 설명은 생략한다.
또한, 입력부(1101b)는 콘텐츠를 유닛 생성부 대신 암호화 처리부로 출력하는 것 이외에는 제 1 실시예의 입력부(1101)과 같기 때문에, 설명을 역시 생략한다.
1.7.1 암호화 처리부(1106b)
암호화 처리부(1106b)는 콘텐츠키 생성부(1102)로부터 콘텐츠 키 "CK"를 수신한다.
암호화 처리부(1106)는 입력부(1101b)로부터 콘텐츠를 수신한다. 여기서, 콘텐츠는, 도 3에 도시한 콘텐츠(1120)의 경우와 같이, 파일 "CNT1", "CNT2", ..., "CNTc"로 구성된다.
콘텐츠를 수신한 경우, 암호화 처리부(1106)는 콘텐츠 키 "CK"를 사용하여 수신한 콘텐츠에 포함된 파일 "CNT1"에 암호화 알고리즘 E1을 적용하여 암호화 파일 "ECNT1"을 생성한다.
암호화 처리부(1106)는 파일 "CNT2" 내지 "CNTc"에 대해서 같은 것을 적용하여 암호화 파일 "ECNT2" 내지 "ECNTc"를 생성한다.
다음, 암호화 처리부(1106)는 생성된 암호화 파일 "ECNT1", "ECNT2", "ECNT3", ..., 및 "ECNTc"로 구성된 암호화 콘텐츠를 유닛 생성부(1105b)와 기록부(1114b)에 출력한다.
1.7.2 유닛 생성부(1105b)
유닛 생성부(1105b)는 암호화 처리부(1106b)로부터 암호화 콘텐츠를 수신한다. 암호화 콘텐츠를 수신한 경우, 유닛 생성부(1105b)는 수신한 암호화 콘텐츠에 포함된 암호화 파일 "ECNT1"에 대응하는 파일 식별자 "FID1" 및 파일식별정보 "AD1"을 생성한다.
다음, 유닛 생성부(1105b)는 매 65Kbyte마다 암호화 파일 "ECNT1"을 분할하여 m개의 암호화 유닛을 생성한다. 이때, 최종 암호화 유닛이 64Kbyte보다 작으면, 이 암호화 유닛은 "000...000"과 같은 데이터로 보충된다.
다음, 유닛 생성부(1105b)는 생성된 암호화 유닛의 개수를 나타내는 번호 "N1"을 생성하고, 이어 생성된 파일 식별자 "FID1", 파일식별정보 "AD1", 및 유닛번호 "N1"로 구성된 파일정보를 생성한다.
다음, 유닛 생성부(1105b)는 생성된 m개의 암호화 유닛 "EU1_1", "EU1_2", "EU1_1", ..., 및 "EU1_m"에 대응하는 유닛 식별자 "UID1_1", "UID1_2", "UID1_3", ..., 및 "UID1_4"를 각각 생성한다. 이어, 유닛 생성부(1105b)는 대응 암호화 유닛을 유닛 식별자와 쌍을 지어 m개의 암호화 유닛정보를 형성한다.
다음, 유닛 생성부(1105b)는 m개의 암호화 유닛정보를 모아서 암호화 분할파일 "SplECNT1"을 형성한다.
유닛 생성부(1105b)는 암호화 콘텐츠에 포함된 암호화 파일의 나머지 "ECNT2", "ECNT3", ..., 및 "ECNTc"에 대해 같은 종류의 처리를 반복하여 암호화 분할파일 "SplECNT2", "SplECNT3", ..., 및 "SplECNTc"을 형성한다. 이어, 유닛 생성부(1105b)는 생성된 c개의 암호화 분할파일 "SplECNT1", "SplECNT2", "SplECNT3", ..., 및 "SplECNTc"을 헤더정보 생성부(1107b)에 암호화 분할콘텐츠로 출력한다.
또한, 유닛 생성부(1105b)는 c개의 파일정보로 구성된 유닛선택정보를 생성하고, 생성된 유닛선택정보를 기록부(1114)와 서명정보 생성부(1111b)에 출력한다.
2. 제 2 실시예
본 발명의 제 2 실시예를 도면을 참조하여 이하 설명한다.
2.1 비인증 콘텐츠 검출시스템
제 2 실시예의 비인증 콘텐츠 검출시스템은, 제 1 실시예의 비인증 콘텐츠 검출시스템과 같이, 분배장치, 실행장치, 및 모니터로 구성된다.
분배장치는 조작자의 조작에 따라 콘텐츠를 취득하고, 취득한 콘텐츠를 암호 화하여 암호화 콘텐츠를 생성한다. 또한, 분배장치는 콘텐츠의 일부를 추출하고, 추출된 콘텐츠의 일부(이하, "대표 부분콘텐츠(representative partial contents)"라 함)에 기초하여 비인증 콘텐츠가 콘텐츠에 포함되어 있는지를 검출하는데 사용되는 헤더정보, 콘텐츠가 합법적 권리 보유자에 의해 발행된 것을 입증하기 위한 서명정보와 같은 정보를 생성한다. 분배장치는 생성된 암호화 콘텐츠, 서명정보 등을 DVD에 기록한다.
DVD는 분배매장을 통하여 사용자에게 판매 또는 분배될 것이다.
DVD가 로드된 때, 실행장치는 로드된 DVD에 저장된 암호화 콘텐츠로부터 대표 부분콘텐츠를 생성하고, 생성된 부분콘텐츠에 기초하여 서명정보와 헤더정보의 검증을 수행한다. 서명이 성공적이면, 실행장치는 콘텐츠의 재생을 시작한다. 검증이 성공적이지 않은 때, 실행장치는 콘텐츠 재생을 금지한다.
이 실시예의 비인증 콘텐츠 검출시스템을 구성하는 개별 장치와 DVD를 이하 설명한다.
2.2 분배장치(2100)
도 27은 이 실시예의 비인증 콘텐츠 검출시스템을 구성하는 분배장치의 구성을 나타낸다. 도 27에 도시한 바와 같이, 분배장치(2100)는 입력부(2101), 콘텐츠키 생성부(2102), 키블록 생성부(2103), 실행장치정보 저장부(1104), 선택부(2105), 헤더정보 생성부(2107), 서명정보 생성부(2108), 서명키 저장부(1112), 암호화 처리부(2109), 및 기록부(2114)로 구성된다.
분배장치(2100)를 구성하는 각 구성요소를 이하 설명한다. 실행장치정보 저 장부(1104)와 서명키 저장부(1112)는 제 1 실시예와 같기 때문에, 이들 구성요소에 대한 설명은 생략한다.
2.2.1 입력부(2101)
입력부(2101)는 조작자의 조작에 따라 외부장치 또는 외부 기록매체로부터 콘텐츠와 다수개의 식별정보를 취득한다.
도 28은 입력부(2101)가 취득한 콘텐츠와 식별정보의 구조를 나타낸다. 콘텐츠(2120)는 c개의 부분콘텐츠 "CNT1"(2121), "CNT2"(2122), "CNT3"(2123), ..., 및 "CNTc"(2127)으로 구성된다. 여기서, 입력부(2101)가 취득한 콘텐츠(2120)는 실행장치(2600)에 대해 재생가능한 포맷이며, DVD-Video와 MPEG-2 포맷이 재생가능한 포맷의 예들이다.
각 식별정보는 콘텐츠(2120)를 구성하는 부분콘텐츠의 하나를 고유하게 나타내는 정보이며, 예를 들어, 콘텐츠 헤드로부터 대응 부분콘텐츠의 오프셋, 섹터 번호, 또는 콘텐츠의 헤드를 기준으로 특정된 부분콘텐츠의 재생 개시점이다. 예를 들어, 식별정보 "AD1"(2131)은 부분콘텐츠 "CNT1"(2121)에 대응하고, 부분콘텐츠 "CNT1"(2121)의 헤드는 콘텐츠(2120)의 헤드로부터 "AD1"에 위치한다.
입력부(2101)는 취득한 콘텐츠(2120)와 c개의 식별정보를 콘텐츠키 생성부(2102)에 출력한다.
2.2.2 콘텐츠키 생성부(2102)
콘텐츠키 생성부(2102)는 입력부(2101)로부터 콘텐츠(2120)와 c개의 식별정보를 수신한다. 콘텐츠(2120)와 c개의 식별정보를 수신한 때, 콘텐츠키 생성 부(2102)는 유사 난수를 생성하고, 생성된 유사 난수를 이용하여 128-비트 길이의 콘텐츠 "CK"를 생성한다. 유사 난수 대신에, 예를 들어, 신호대 잡음비를 이용하여 참 난수를 생성할 수 있다.
다음, 콘텐츠키 생성부(2102)는 생성된 콘텐츠 키 "CK", 수신한 콘텐츠(2120), 및 c개의 식별정보를 키블록 생성부(2103)와 암호화 처리부(2109)에 출력한다.
2.2.3 키블록 생성부(2103)
키블록 생성부(2103)는 콘텐츠 키 "CK", 콘텐츠(2120), 및 c개의 식별정보를 콘텐츠키 생성부(2102)로부터 수신한다. 콘텐츠 키 "CK"를 수신한 때, 키블록 생성부(2103)는 실행장치정보 저장부(1104)에 저장된 장치식별 테이블(1130)과 수신한 콘텐츠 키 "CK"를 사용하여 키 블록을 생성한다. 키 블록을 생성하는 절차는 제 1 실시예와 같기 때문에 설명을 생략한다. 또한, 여기서 생성된 키 블록은 도 5에 도시한 키 블록(1150)과 같은 구조를 갖는다.
다음, 키블록 생성부(2103)는 생성된 키 블록, 수신한 콘텐츠 키 "CK", 콘텐츠(2120), 및 c개의 식별정보를 선택부(2105)에 출력한다.
2.2.4 선택부(2105)
도 29는 선택부(2105)가 수행한 처리의 개요를 나타낸다. 다음은 도 29를 참조하여 선택부(2105)를 설명한다.
선택부(2105)는 키 블록, 콘텐츠 키 "CK", 및 c개의 식별정보를 키블록 생성부(2103)로부터 수신한다. 이들 정보 세트를 수신한 때, 선택부(2105)는 수신한 c 개의 식별정보 중에서 k개를 선택한다. 여기서, k = 3 이라는 가정으로 설명을 한다.
선택방법에 대해서, 예를 들어, 난수를 이용하거나 일자, 온도 등으로부터 k개를 선택할 수 있다. 콘텐츠(2120)가 MPEG 포맷이면, I(intra) 픽처를 나타내는 식별정보가 선택될 수 있다. 또한, 선택부(2105)는 선택될 k개를 식별하는 정보를 미리 저장하거나, 조작자로부터의 지시에 응답하여 선택을 수행할 수 있다.
도 29에 도시한 바와 같이, 선택부(2105)는 여기서 식별정보 "AD3"(2133), "AD7"(2134), 및 "ADc"(2137)을 선택한다.
다음, 선택부(2105)는 수신한 콘텐츠(2120)로부터 선택한 식별정보 "AD3"(2133)에 대응하는 부분콘텐츠 "CNT3"을 추출하고, 선택된 식별정보 "AD3"(2133)과 추출한 부분콘텐츠 "CNT3"로 구성된 대표 정보(2141)를 생성한다. 여기서, 부분콘텐츠의 선택된 부분은 "대표 부분콘텐츠 부분"으로 지칭된다.
선택부(2105)는 식별정보 "AD7"(2134)와 "ADc"(2137)에 대해 같은 종류의 처리를 반복하여 대표 정보(2142, 2143)를 생성한다.
다음, 선택부(2105)는 헤더정보 생성부(2107)에, 생성된 세 개의 대표 정보(2141, 2142, 2143), 및 수신한 키 블록, 콘텐츠 키 "CK", 그리고 콘텐츠(2120)를 출력한다.
2.2.5 헤더정보 생성부(2107)
헤더정보 생성부(2107)는 선택부(2105)로부터 세 개의 대표 정보(2141, 2142, 2143), 및 수신한 키 블록, 콘텐츠 키 "CK", 그리고 콘텐츠(2120)를 수신한 다.
이들을 수신한 때, 헤더정보 생성부(2107)는 수신한 대표 정보(2141)를 고유하게 식별하는 식별정보 식별자 "ADID1"를 생성한다. 식별정보 식별자를 생성하는 방법은, 예를 들어, 자연수의 순차 대입과 난수를 이용한 난수 대입을 포함한다.
다음, 헤더정보 생성부(2107)는 수신한 대표 정보(2141)로부터 식별정보 "AD3"를 추출하고, 생성된 식별정보 식별자 "ADID1"와 식별정보 "AD3"으로 구성된 대표 검출정보를 생성한다.
이어, 헤더정보 생성부(2107)는 대표 부분콘텐츠 "CNT3"을 수신한 대표 정보(2141)로부터 추출하고, 추출한 대표 부분콘텐츠 "CNT3"을 해시함수에 대입하여 부분 해시값 "HA3"을 생성한다. 헤더정보 생성부(2107)는 생성된 식별정보 식별자 "ADID1"과 부분 해시값 "HA3"으로 구성된 대표 해시정보를 생성한다.
헤더정보 생성부(2107)는 대표 정보(2142, 2143)에 대해 같은 종류의 처리를 반복하여 대표 검출정보와 대표 해시정보를 생성한다. 헤더정보 생성부(2107)는 생성된 3개의 대표 검출정보로 구성된 선택위치정보를 생성한다.
도 30은 이때 생성된 선택위치정보의 구조를 나타낸다. 선택위치정보(2160)는 대표 정보(2141, 2142, 2143)에 각각 대응하는 대표 검출정보(2161, 2162, 2163)로 구성된다. 각 대표 검출정보는 식별정보 식별자와 식별정보로 구성된다. 일 예로, 대표 검출정보(2161)는 대표 정보(2141)에 대응하며, 식별정보 식별자 "ADID1"(2171)과 식별정보 "AD3"(2176)을 포함한다.
또한, 헤더정보 생성부(2107)는 생성된 세 개의 대표 해시정보로 구성된 헤 더정보를 생성한다.
도 31은 이때 생성된 헤더정보의 구조를 나타낸다. 도 31에 도시한 바와 같이, 헤더정보(2200)는 대표 검출정보(2161, 2162, 2163)에 각각 대응하는 대표 해시정보(2201, 2202, 2203)로 구성된다.
각 대표 해시정보는 식별정보 식별자와 부분 해시값을 포함한다. 예를 들어, 대표 해시정보(2201)는 대표 정보(2141)에 기초하여 생성되고, 식별정보 식별자 "ADID1"(2211)과 부분 해시값 "HA3"을 포함한다.
다음, 헤더정보 생성부(2107)는 생성된 선택위치정보(2160), 헤더정보(2200), 및 수신한 키 블록, 콘텐츠 키 "CK", 그리고 콘텐츠(2120)를 서명정보 생성부(2108)에 출력한다.
2.2.6 서명정보 생성부(2108)
서명정보 생성부(2108)는 헤더정보 생성부(2107)로부터 선택위치정보(2160), 헤더정보(2200), 및 수신한 키 블록, 콘텐츠 키 "CK", 그리고 콘텐츠(2120)를 수신한다. 이들 정보 세트를 수신한 때, 서명정보 생성부(2108)는 수신한 헤더정보(2200)에 포함된 부분 해시값 "HA3", "HA5", 및 "HAc"를 추출한다.
다음, 서명정보 생성부(2108)는 서명키 저장부(1112)로부터 서명키(1113)를 판독한다. 서명정보 생성부(2108)는 판독한 서명키(1113)를 이용하여 추출한 부분 해시값 "HA3", "HA5", 및 "HAc"를 조합하여 형성된 조합 결과에 서명생성 알고리즘 S를 할당하여 서명정보를 생성한다.
다음, 서명정보 생성부(2108)는 생성된 서명정보, 그리고 수신한 선택위치정 보(2160), 헤더정보(2200), 키 블록, 콘텐츠 키 "CK", 및 콘텐츠(2120)를 암호화 처리부(2109)에 출력한다.
2.2.7 암호화 처리부(2109)
암호화 처리부(2109)는 서명정보 생성부(2108)로부터 생성된 서명정보, 그리고 선택위치정보(2160), 헤더정보(2200), 키 블록, 콘텐츠 키 "CK", 및 콘텐츠(2120)를 수신한다.
이들 정보 세트를 수신한 때, 암호화 처리부(2109)는 수신한 콘텐츠 키 "CK"를 이용하여 수신한 콘텐츠(2120)를 구성하는 부분콘텐츠 "CNT1", "CNT2", "CNT3", ..., 및 "CNTc"에 각각 암호화 알고리즘 E1을 적용하여 암호화 부분콘텐츠 "ECNT1", "ECNT2", "ECNT3", ..., 및 "ECNTc"을 생성한다. 생성된 암호화 부분콘텐츠 "ECNT1", "ECNT2", "ECNT3", ..., 및 "ECNTc"는 총괄적으로 암호화 콘텐츠로 지칭된다. 여기서, 암호화 콘텐츠는 ECNTb = Enc(CK, CNTb)로 정의될 수 있으며, b는 c보다 작은 자연수이다. 도 32는 이때 생성된 암호화 콘텐츠(2220)의 구조를 나타낸다.
이어, 암호화 처리부(2109)는 수신한 콘텐츠 키 "CK"를 이용하여 수신한 선택위치정보에 암호화 알고리즘 E1을 적용하여 암호화 선택위치정보를 생성한다.
다음, 암호화 처리부(2109)는 생성된 암호화 콘텐츠(2220)와 암호화 선택위치정보, 그리고 수신한 서명정보, 헤더정보(2200), 및 키 블록을 기록부(2114)에 출력한다.
2.2.8 기록부(2114)
기록부(2114)는 DVD가 로드될 수 있다.
기록부(2114)는 암호화 처리부(2109)로부터 암호화 콘텐츠(2220)와 암호화 선택위치정보, 서명정보, 헤더정보(2200), 및 키 블록을 수신하고, 수신한 암호화 콘텐츠(2220)와 암호화 선택위치정보, 서명정보, 헤더정보(2200), 및 키 블록을 DVD에 기록한다.
2.3 DVD(2500)
도 33에 도시한 바와 같이, DVD(2500)는 키 블록(2510), 암호화 선택위치정보(2530), 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 저장한다.
키 블록(2510), 암호화 선택위치정보(2530), 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)는 분배장치(2100)에 의해 기록되어 있고, 이들 구성요소의 구조는 상기한 바와 같다.
2.4 실행장치(2600)
도 34에 도시한 바와 같이, 실행장치(2600)는 취득부(2601), 콘텐츠키 취득부(2602), 장치키 저장부(1604), 위치정보 해독부(2606), 서명정보 검증부(2611), 검증키 저장부(1612), 대표 부분콘텐츠 해독부(2616), 헤더정보 검증부(2617), 및 실행부(2618)로 구성된다.
실행장치(2600)를 구성하는 각 구성요소는 이하 상세하게 설명한다. 장치키 저장부(1604)와 검증키 저장부(1612)는 제 1 실시예의 실행장치(1600)를 구성하는 것과 동일하므로 이들 구성요소에 대한 설명은 생략한다.
2.4.1 취득부(2601)
취득부(2601)는 DVD(2500)가 로드된다. DVD(2500)가 로드된 것이 검출된 때, 취득부(2601)는 키 블록(2510), 암호화 선택위치정보(2530), 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 DVD(2500)로부터 판독한다. 취득부(2601)는 판독한 키 블록(2510), 암호화 선택위치정보(2530), 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 콘텐츠키 취득부(2602)에 출력한다.
2.4.2 콘텐츠키 취득부(2602)
콘텐츠키 취득부(2602)는 취득부(2601)로부터 키 블록(2510), 암호화 선택위치정보(2530), 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 수신한다.
이들 정보 세트를 수신한 때, 콘텐츠키 취득부(2602)는 장치키 저장부(1604)에 의해 저장된 장치 식별자 "AID_p"와 장치키 "DK_p" 및 수신한 키 블록을 이용하여 콘텐츠 키 "CK"를 생성한다. 콘텐츠 키 "CK"를 생성하는 절차는 제 1 실시예의 실행장치(1600)를 구성하는 콘텐츠키 취득부(1602)가 실행하는 콘텐츠 키 "CK"의 생성 절차와 같으므로, 설명은 생략한다.
다음, 콘텐츠키 취득부(2602)는 생성된 콘텐츠 키 "CK", 그리고 수신한 암호화 선택위치정보(2530), 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 위치정보 해독부(2606)에 출력한다.
2.4.3 위치정보 해독부(2606)
위치정보 해독부(2606)는 콘텐츠키 취득부(2602)로부터 콘텐츠 키 "CK", 그리고 암호화 선택위치정보(2530), 헤더정보(2550), 서명정보(2570), 및 암호화 콘 텐츠(2580)를 수신한다.
이들 정보 세트를 수신한 때, 위치정보 해독부(2606)는 수신한 콘텐츠 키 "CK"를 이용하여 수신한 암호화 선택위치정보(2530)에 해독 알고리즘 D1을 적용하여 선택위치정보를 생성한다. 이때 생성된 선택위치정보는 도 30에 도시한 선택위치정보(2160)과 같은 구조를 갖는다.
다음, 위치정보 해독부(2606)는 생성된 선택위치정보, 그리고 콘텐츠 키 "CK", 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 서명정보 검증부(2611)에 출력한다.
2.4.4 서명정보 검증부(2611)
서명정보 검증부(2611)는 위치정보 해독부(2606)로부터 선택위치정보, 그리고 콘텐츠 키 "CK", 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 수신한다.
이들 정보 세트를 수신한 때, 서명정보 검증부(2611)는 검증키 저장부(1612)로부터 검증키를 판독한다. 다음, 서명정보 검증부(2611)는 수신한 헤더정보(2550)를 구성하는 세 개의 대표 해시정보로부터 부분 해시값 "HA3", "HA5", 및 "HAc"를 각각 추출하고, 판독한 검증키를 이용하여 추출한 부분 해시값 "HA3", "HA5", 및 "HAc"을 조합하여 형성된 조합 결과에 서명검증 알고리즘 V를 적용하여 서명검증 정보를 생성한다. 서명정보 검증부(2611)는 생성된 서명검증 정보와 수신한 서명정보를 비교한다. 이들 둘이 일치하지 않으면, 서명정보 검증부(2611)는 서명검증이 성공적이 아니라고 판정하고 이어지는 처리를 중단한다.
이들 둘이 일치하면, 서명정보 검증부(2611)는 서명검증이 성공적이라고 판정하고 수신한 선택위치정보, 콘텐츠 키 "CK", 헤더정보(2550), 및 암호화 콘텐츠(2580)를 대표 부분콘텐츠 해독부(2616)에 출력한다.
2.4.5 대표 부분콘텐츠 해독부(2616)
대표 부분콘텐츠 해독부(2616)는 서명정보 검증부(2611)로부터 수신한 선택위치정보, 콘텐츠 키 "CK", 헤더정보(2550), 및 암호화 콘텐츠(2580)를 수신한다.
이들 정보 세트를 수신한 때, 대표 부분콘텐츠 해독부(2616)는 수신한 선택위치정보를 구성하는 제 1 대표 검출정보에 포함된 식별정보 식별자 "ADID1"과 대응 식별정보 "AD3"을 추출하고, 추출한 식별정보 "AD3"에 기초하여 수신한 암호화 콘텐츠(2580)로부터 암호화 부분콘텐츠 "ECNT3"을 추가로 추출한다. 다음, 대표 부분콘텐츠 해독부(2616)는 수신한 콘텐츠 키 "CK"를 사용하여 추출한 암호화 부분콘텐츠 "ECNT3"에 해독 알고리즘 D1을 적용하여 대표 부분콘텐츠 "CNT3"을 생성한다. 여기서, 생성된 식별정보 식별자 "ADID1"은 "검증 대표 정보"로 지칭된다.
다음, 대표 부분콘텐츠 해독부(2616)는 대표 검출정보의 나머지에 대해 같은 종류의 처리를 반복하여 식별정보 식별자 "ADID3"과 대표 부분콘텐츠 "CNTc"로 구성된 검증 대표 정보뿐만 아니라 식별정보 식별자 "ADID2"와 대표 부분콘텐츠 "CNT7"로 구성된 검증 대표 정보를 생성한다.
다음, 대표 부분콘텐츠 해독부(2616)는 생성된 세 개의 검증 대표 정보와 수신한 콘텐츠 키 "CK", 헤더정보(2550), 및 암호화 콘텐츠(2580)를 헤더정보 검증부(2617)에 출력한다.
2.4.6 헤더정보 검증부(2617)
헤더정보 검증부(2617)는 대표 부분콘텐츠 해독부(2616)로부터 세 개의 검증 대표 정보와 수신한 콘텐츠 키 "CK", 헤더정보(2550), 및 암호화 콘텐츠(2580)를 수신한다.
이들 정보 세트를 수신한 때, 헤더정보 검증부(2617)는 수신한 세 개의 검증 대표 정보에 포함된 대표 부분콘텐츠 "CNT3", "CNT", 및 "CNTc"를 각각 해시함수에 대입하여 검증 해시값 "H3", "H7", 및 "Hc"를 생성한다. 여기서 사용된 해시함수는 분배장치(2100)의 헤더정보 생성부(2107)에 사용된 것과 같다.
다음, 헤더정보 검증부(2617)는, 헤더정보(2550)에서, 대응 검증 대표 정보에 포함된 식별정보 식별자 "ADID1"과 일치하는 식별정보 식별자를 검색하고, 검출된 식별정보 식별자에 대응하는 부분 해시값 "HA3"을 추출한다. 이어, 헤더정보 검증부(2617)는 추출된 부분 해시값 "HA3"과 생성된 검증 해시값 "H3"을 비교한다.
또한, 헤더정보 검증부(2617)는 대응 검증 대표 정보에 포함된 식별정보 식별자 "ADID2"에 기초하여 헤더정보(2550)로부터 부분 해시값 "HA7"을 추출하고, 추출한 부분 해시값 "HA7"과 생성된 검증 해시값 "H7"을 비교한다.
헤더정보 검증부(2617)는 대응 검증 대표 정보에 포함된 식별정보 식별자 "ADIDc"에 기초하여 헤더정보(2550)로부터 부분 해시값 "HAc"을 추출하고, 추출한 부분 해시값 "HAc"과 생성된 검증 해시값 "Hc"을 비교한다.
세 쌍 각각을 비교하고 서로 일치하지 않는 한 쌍이라도 있는 경우, 헤더정보 검증부(2617)는 이어지는 처리를 중단한다.
세 쌍에 대한 상기 비교에서 세 쌍 모두가 일치하면, 헤더정보 검증부(2617)는 헤더정보(2550)의 검증이 성공적이라고 판정하고, 수신한 콘텐츠 키 "CK"와 암호화 콘텐츠(2580)를 실행부(2618)에 출력한다.
2.4.7 실행부(2618)
실행부(2618)는 헤더정보 검증부(2617)로부터 콘텐츠 키 "CK"와 암호화 콘텐츠(2580)를 수신한다. 이들 정보 세트를 수신한 경우, 실행부(2618)는 수신한 콘텐츠 키 "CK"를 이용하여 수신한 암호화 콘텐츠(2580)를 구성하는 암호화 부분콘텐츠 "ECNT1", "ECNT2", "ECNT3", ..., 및 "ECNTc" 각각에 해독 알고리즘 D1을 적용하여 부분콘텐츠 "CNT1", "CNT2", "CNT3", ..., 및 "CNTc"로 구성된 콘텐츠를 생성한다.
다음, 실행부(2618)는 생성된 콘텐츠의 압축을 풀어 비디오 및 오디오 데이터를 생성하고, 생성된 비디오 및 오디오 데이터로부터 비디오 및 오디오 신호를 생성한다. 실행부(2618)는 생성된 비디오 및 오디오 신호를 모니터에 출력한다.
2.5 분배장치(2100) 및 실행장치(2600)의 동작
분배장치(2100) 및 실행장치(2600)의 동작을 이하 설명한다.
2.5.1 분배장치(2100)의 동작
분배장치(2100)의 동작을 도 35를 참조하여 설명한다.
입력부(2101)는 c개의 부분콘텐츠와 c개의 식별정보로 구성된 콘텐츠(2120)를 수신하고(단계 S2011), 수신한 콘텐츠(2120)와 식별정보를 콘텐츠키 생성부(2102)에 출력한다.
콘텐츠키 생성부(2102)는 콘텐츠(2120)와 c개의 식별정보를 수신하고 콘텐츠 키를 생성한다(단계 S2012).
키블록 생성부(2103)는 콘텐츠 키, 콘텐츠(2120), 및 c개의 식별정보를 콘텐츠키 생성부(2102)로부터 수신하고, 실행장치정보 저장부(1104)로부터 장치 식별자와 장치키를 판독한다(단계 S2013). 키블록 생성부(2103)는 판독한 장치 식별자와 장치키를 이용하여 키 블록을 생성하고(단계 S2014), 생성된 키 블록, 수신한 콘텐츠 키, 콘텐츠(2120), 및 c개의 식별정보를 선택부(2105)에 출력한다.
선택부(2105)는 키 블록, 콘텐츠 키, 콘텐츠(2120), 및 c개의 식별정보를 수신하고, 수신한 콘텐츠(2120)로부터 k개의 대표 부분콘텐츠를 선택하여 k개의 대표 정보를 생성한다(단계 S2016). 이어, 선택부(2105)는 생성된 k개의 대표 정보와 수신한 콘텐츠 키 및 콘텐츠(2120)를 헤더정보 생성부(2107)에 출력한다.
헤더정보 생성부(2107)는 k개의 대표 정보, 콘텐츠 키, 및 콘텐츠(2120)를 선택부(2105)로부터 수신하고, 선택위치정보(2160)와 헤더정보(2200)를 수신한 k개의 대표 정보로부터 생성한다(단계 S2018). 다음, 헤더정보 생성부(2107)는 생성된 선택위치정보(2160)와 헤더정보(2200), 및 수신한 키 블록, 콘텐츠 키, 콘텐츠(2120)를 서명정보 생성부(2108)에 출력한다.
이어, 서명정보 생성부(2108)는 헤더정보 생성부(2107)로부터 선택위치정보(2160)와 헤더정보(2200), 및 수신한 키 블록, 콘텐츠 키, 콘텐츠(2120)를 수신한다. 이들 정보 세트를 수신한 때, 서명정보 생성부(2108)는 서명키 저장부(1112)로부터 서명키(1113)를 판독하고(단계 S2019), 판독한 서명키(1113)로부터 서명정보를 생성한다(단계 S2021). 다음, 서명정보 생성부(2108)는 생성된 서명정보, 수 신한 키 블록, 선택위치정보(2160), 헤더정보(2200), 콘텐츠 키 및 콘텐츠(2120)를 암호화 처리부(2109)에 출력한다.
암호화 처리부(2109)는 서명정보 생성부(2108)로부터 서명정보, 키 블록, 선택위치정보(2160), 헤더정보(2200), 콘텐츠 키 및 콘텐츠(2120)를 수신하고, 수신한 콘텐츠 키를 이용하여 선택위치정보(2160)를 암호화하여 암호화 선택위치정보를 생성한다(단계 S2022). 이어, 암호화 처리부(2109)는 콘텐츠 키를 이용하여 콘텐츠(2120)를 암호화하여 암호화 콘텐츠를 생성하고, 생성된 암호화 선택위치정보와 암호화 콘텐츠, 그리고 수신한 키 블록, 서명정보, 및 헤더정보(2200)를 기록부(2114)에 출력한다.
기록부(2114)는 암호화 처리부(2109)로부터 수신한 키 블록, 암호화 선택위치정보, 헤더정보(2200), 서명정보, 및 암호화 콘텐츠를 DVD(2500)에 기록한다(단계 S2024).
2.5.2 실행장치(2600)의 동작
도 26의 플로차트를 참조하여 실행장치(2600)의 동작을 설명한다.
DVD(2500)가 로드된 때, 취득부(2601)는 키 블록(2510), 암호화 선택위치정보(2530), 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 DVD(2500)로부터 판독한다(단계 S2041). 이어, 취득부(2601)는 판독한 키 블록(2510), 암호화 선택위치정보(2530), 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 콘텐츠키 취득부(2602)에 출력한다.
취득부(2601)로부터 키 블록(2510), 암호화 선택위치정보(2530), 헤더정 보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 수신한 때, 콘텐츠키 취득부(2602)는 장치키 저장부(1604)로부터 장치 식별자와 장치키를 판독한다(단계 S2042). 콘텐츠키 취득부(2602)는 판독한 장치 식별자와 장치키 및 수신한 키 블록(2510)으로부터 콘텐츠 키를 생성한다(단계 S2043). 콘텐츠키 취득부(2602)는 생성된 콘텐츠 키, 그리고 수신한 암호화 선택위치정보(2530), 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 위치정보 해독부(2606)에 출력한다.
위치정보 해독부(2606)는 콘텐츠키 취득부(2602)로부터 콘텐츠 키, 암호화 선택위치정보(2530), 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 수신하고, 수신한 콘텐츠 키를 이용하여 암호화 선택위치정보(2530)를 해독하여 선택위치정보를 생성한다(단계 S2044). 다음, 위치정보 해독부(2606)는 생성된 선택위치정보, 그리고 수신한 콘텐츠 키, 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 서명정보 검증부(2611)에 출력한다.
서명정보 검증부(2611)는 위치정보 해독부(2606)로부터 선택위치정보, 콘텐츠 키, 헤더정보(2550), 서명정보(2570), 및 암호화 콘텐츠(2580)를 수신하고, 검증키 저장부(1612)로부터 검증키를 판독한다(단계 S2046). 이어, 서명정보 검증부(2611)는 판독한 검증키와 수신한 헤더정보(2550)를 이용하여 서명정보(2570)를 검증한다(단계 S2048). 서명정보(2570)의 검증이 성공적이지 않으면(단계 S2049: NO), 서명정보 검증부(2611)는 실행장치(2600)의 이어지는 처리를 중단한다.
서명정보(2570)의 검증이 성공적이면(단계 S2049: YES), 서명정보 검증부(2611)는 수신한 선택위치정보, 콘텐츠 키, 헤더정보(2550), 및 암호화 콘텐 츠(2580)를 대표 부분콘텐츠 해독부(2616)에 출력한다.
대표 부분콘텐츠 해독부(2616)는 서명정보 검증부(2611)로부터 선택위치정보, 콘텐츠 키, 헤더정보(2550), 및 암호화 콘텐츠(2580)를 수신하고, 수신한 선택위치정보, 암호화 콘텐츠(2580), 콘텐츠 키에 기초하여 k개의 대표 부분콘텐츠를 생성한다(단계 S2051). 이어, 대표 부분콘텐츠 해독부(2616)는 대응 대표 부분콘텐츠와 식별정보 식별자로 구성된 k개의 검증 대표 정보를 생성하고(단계 S2052), 생성된 k개의 검증 대표 정보, 수신한 콘텐츠 키, 헤더정보(2550), 및 암호화 콘텐츠(2580)를 헤더정보 검증부(2617)에 출력한다.
헤더정보 검증부(2617)는 대표 부분콘텐츠 해독부(2616)로부터 k개의 검증 대표 정보, 수신한 콘텐츠 키, 헤더정보(2550), 및 암호화 콘텐츠(2580)를 수신하고, 수신한 k개의 검증 대표 정보를 이용하여 헤더정보(2550)의 검증을 수행한다(단계 S2054). 검증이 성공적이지 않으면(단계 S2056: NO), 헤더정보 검증부(2617)는 이어지는 처리를 중단한다.
검증이 성공적이면(단계 S2056: YES), 헤더정보 검증부(2617)는 수신한 콘텐츠 키와 암호화 콘텐츠(2580)를 실행부(2618)에 출력한다.
헤더정보 검증부(2617)로부터 콘텐츠 키와 암호화 콘텐츠(2580)를 수신한 때, 실행부(2618)는 수신한 콘텐츠 키를 이용하여 암호화 콘텐츠(2580)를 해독하여 콘텐츠를 생성하고(단계 S2057), 생성된 콘텐츠의 압축을 풀고(단계 S2058), 모니터가 콘텐츠를 재생하도록 한다(단계 S2059).
2.6 요약 및 유익한 효과
상기한 바와 같이, 제 2 실시예에서, 분배장치(2100)는 콘텐츠를 구성하는 c개의 부분콘텐츠 중에서 k개의 대표 부분콘텐츠만을 사용하여 헤더정보를 생성하고, 헤더정보에 서명생성 알고리즘을 적용하여 서명정보를 생성한다.
실행장치(2600)는 선택위치정보에 기초하여 k개의 대표 부분콘텐츠를 생성하고 생성된 k개의 대표 부분콘텐츠를 이용하여 헤더정보의 검증을 수행함으로써 비인증 콘텐츠가 포함되어 있는지의 검증을 수행한다. 검증이 성공적이면, 비인증 콘텐츠가 포함되어 있지 않은 것으로 판정하여 실행장치(2600)는 콘텐츠의 재생을 시작한다.
따라서, 콘텐츠를 구성하는 c개의 부분콘텐츠 중에서 k개만을 이용하여 헤더정보의 검증을 수행함으로써, 검증을 위한 실행장치(2600)의 처리 부하를 줄일 수 있다.
또한, 분배장치(2100)에서 헤더정보의 생성에 포함된 처리 부하를 줄일 수도 있다.
3. 제 3 실시예
다음은 본 발명의 제 3 실시예에 따른 비인증 콘텐츠 검출시스템에 대해 설명한다.
3.1 비인증 콘텐츠 검출시스템
제 2 실시예의 비인증 콘텐츠 검출시스템은, 제 1 실시예의 비인증 콘텐츠 검출시스템과 같이, 분배장치, 실행장치, 및 모니터로 구성된다.
분배장치는 조작자의 조작에 따라 콘텐츠를 취득하고, 취득한 콘텐츠를 암호 화하여 암호화 콘텐츠를 생성한다.
또한, 분배장치는 콘텐츠의 일부를 추출하고, 추출된 콘텐츠의 일부(이하, "대표 부분콘텐츠"라 함)에 기초하여 비인증 콘텐츠가 콘텐츠에 포함되어 있는지를 검출하는데 사용되는 헤더정보, 콘텐츠가 합법적 권리 보유자에 의해 발행된 것을 입증하기 위한 서명정보와 같은 정보를 생성한다. 분배장치는 대표 부분콘텐츠의 추출, 헤더정보의 생성, 및 서명정보의 생성을 반복하여 다수의 헤더 및 서명정보를 생성하고, 생성된 암호화 콘텐츠와 다수의 헤더 및 서명정보를 DVD에 기록한다.
DVD는 분배매장을 통하여 사용자에게 판매 또는 분배될 것이다.
실행장치는 DVD에 기록된 다수의 서명정보와 다수의 헤더정보로부터 각각 하나를 선택하고, 선택된 서명 및 헤더정보의 검증을 수행한다.
이 실시예의 비인증 콘텐츠 검출시스템을 구성하는 개별 장치와 DVD를 이하 설명한다.
3.2 분배장치(3100)
도 37은 이 실시예의 비인증 콘텐츠 검출시스템을 구성하는 분배장치의 구성을 나타낸다. 도 37에 도시한 바와 같이, 분배장치(3100)는 입력부(2101), 콘텐츠키 생성부(2102), 키블록 생성부(2103), 실행장치정보 저장부(1104), 선택부(3105), 헤더정보 생성부(3107), 서명정보 생성부(3108), 서명키 저장부(1112), 암호화 처리부(3109), 및 기록부(3114)로 구성된다. 입력부(2101), 콘텐츠키 생성부(2102), 키블록 생성부(2103), 실행장치정보 저장부(1104), 및 서명키 저장부(1112)는 제 2 실시예와 같으므로, 이들 구성요소에 대한 설명은 생략한다.
3.2.1 선택부(3105)
선택부(3105)는 반복회수 "x"(x는 2 이상의 정수)를 미리 저장한다.
선택부(3105)는 키블록 생성부(2103)로부터 키 블록, 콘텐츠 키 "CK", 콘텐츠, 및 c개의 식별정보를 수신한다. 키 블록, 콘텐츠 키 "CK", 콘텐츠, 및 c개의 식별정보를 수신한 때, 선택부(3105)는 제 2 실시예의 선택부(2105)와 같은 방법으로 k개의 대표 정보를 생성한다.
선택부(3105)는 같은 종류의 처리를 x회 반복하여 k개의 대표 정보의 x 그룹을 생성한다. 여기서, 대표 정보의 제 1 그룹을 "제 1 대표 그룹"으로 지칭하고, 대표 정보의 제 2 그룹, ..., 및 x번째 그룹을 각각 "제 2 대표 그룹", 및 "제 x 대표 그룹"으로 지칭한다. 여기의 특정 예는 제 1 내지 제 x 대표 그룹 모두가 각각 k개의 대표 정보로 구성되는 것이지만, 대표 정보의 개수는 그룹마다 다를 수 있다.
다음, 선택부(3105)는 생성된 제 1 , 제 2, ..., 및 제 x 대표 그룹, 그리고 수신한 키 블록, 콘텐츠 키 "CK", 및 콘텐츠를 헤더정보 생성부(3107)에 출력한다.
3.2.2 헤더정보 생성부(3107)
헤더정보 생성부(3107)는 선택부(3105)로부터 제 1 , 제 2, ..., 및 제 x 대표 그룹, 키 블록, 콘텐츠 키 "CK", 및 콘텐츠를 수신한다.
이들 정보 세트를 수신한 때, 헤더정보 생성부(3107)는 수신한 제 1 대표 그룹에 포함된 k개의 대표 정보와 콘텐츠에 기초하여 선택위치정보 "POS1"과 헤더정보 "HEAD1"를 생성한다. 선택위치정보와 헤더정보를 생성하기 위한 구체 절차는 제 2 실시예의 헤더정보 생성부(2107)에 의해 수행되는 선택위치정보(2160)와 헤더정보(2200)의 생성 절차와 같으므로, 설명을 생략한다. 선택위치정보 "POS1"는 도 30에 도시한 선택위치정보(2160)와 같은 구조를 가지며, 헤더정보 "HEAD1"는 도 31에 도시한 헤더정보(2200)와 같은 구조를 갖는다.
다음, 헤더정보 생성부(3107)는 생성된 선택위치정보 "POS1"과 헤더정보 "HEAD1" 쌍에 특유한 헤더 식별자 "HEADID1"를 생성한다. 여기서, 생성된 헤더 식별자 "HEADID1", 선택위치정보 "POS1", 및 헤더정보 "HEAD1"을 통하여 "제 1 헤더 그룹"으로 지칭한다.
헤더정보 생성부(3107)는 제 2, 제 3 , ..., 및 제 x 대표 그룹에 대해 같은 종류의 처리를 반복하여 제 2, 제 3, ..., 제 x 헤더 그룹을 생성한다.
다음, 헤더정보 생성부(3107)는 제 1 내지 제 x 헤더 그룹으로부터 헤더 식별자를 추출하고, 추출한 x개의 헤더 식별자로 구성된 헤더선택정보를 생성한다.
도 38은 이때 생성된 헤더선택정보의 구조의 일 예를 나타낸다. 헤더선택정보(3130)는 x개의 헤더 식별자로 구성되고, 헤더 식별자는 각각 제 1 내지 제 x 헤더 그룹에 대응한다.
다음, 헤더정보 생성부(3107)는 생성된 헤더선택정보(3130)와 제 1, 제 2, 및 제 x 헤더 그룹, 그리고 수신한 키 블록, 콘텐츠 키 "CK", 및 콘텐츠를 서명정보 생성부(3108)에 출력한다.
3.2.3 서명정보 생성부(3108)
서명정보 생성부(3108)는 헤더정보 생성부(3107)로부터 헤더선택정보(3130) 와 제 1, 제 2, 및 제 x 헤더 그룹, 키 블록, 콘텐츠 키 "CK", 및 콘텐츠를 수신한다.
이들 정보 세트를 수신한 때, 서명정보 생성부(3108)는 서명키 저장부(1112)로부터 서명키(1113)를 판독한다.
다음, 서명정보 생성부(3108)는 제 1 헤더 그룹에 포함된 헤더정보 "HEAD1"과 판독한 서명키(1113)를 이용하여 서명정보 "Sign1"를 생성한다. 서명정보를 생성하기 위한 구체 절차는 서명정보 생성부(2108)가 실행하는 것과 동일하다.
여기서, "제 1 헤더 그룹"이란 용어는 생성된 서명정보 "Sign1"를 헤더 식별자 "HEADID1", 선택위치정보 "POS1", 및 헤더정보 "HEAD1"에 더하여 형성된 결과에 다시 부여된다.
서명정보 생성부(3108)는 제 2 및 제 x 헤더 그룹에 대해 같은 종류의 처리를 반복하여 서명정보를 생성하고, 생성된 서명정보를 대응 헤더 식별자, 선택위치정보, 및 헤더정보에 각각 더하여 새로이 제 2 및 제 x 헤더 그룹을 형성한다.
다음, 서명정보 생성부(3108)는 제 1, 제 2, 및 제 x 헤더 그룹, 그리고 수신한 헤더선택정보(3130), 키 블록, 콘텐츠 키 "CK", 및 콘텐츠를 암호화 처리부(3109)에 출력한다.
3.2.4 암호화 처리부(3109)
암호화 처리부(3109)는 서명정보 생성부(3108)로부터 제 1, 제 2, 및 제 x 헤더 그룹, 헤더선택정보(3130), 키 블록, 콘텐츠 키 "CK", 및 콘텐츠를 수신한다.
암호화 처리부(3109)는 수신한 콘텐츠 키 "CK"를 이용하여 수신한 콘텐츠를 구성하는 부분콘텐츠 각각에 암호화 알고리즘 E1을 적용하여 c개의 암호화 부분콘텐츠를 생성하고, 생성된 c개의 암호화 부분콘텐츠를 모아서 암호화 콘텐츠를 형성한다. 이때 생성된 암호화 콘텐츠는 도 32의 암호화 콘텐츠(2220)와 같은 구조를 갖는다.
다음, 암호화 처리부(3109)는 제 1 헤더 그룹으로부터 선택위치정보 "POS1"을 추출하고, 콘텐츠 키 "CK"를 이용하여 추출된 선택위치정보 "POS1"에 암호화 알고리즘 E1을 적용하여 암호화 선택위치정보 "EPOS1"을 생성한다. 이어, 암호화 처리부(3109)는 제 1 헤더 그룹에 포함된 선택위치정보 "POS1"을 생성된 선택위치정보 "EPOS1"로 대체한다. 여기서, EPOS1 = Enc(CK, POS1)이다.
암호화 처리부(3109)는 제 2 내지 제 x 헤더 그룹에 대해 같은 것을 하여 암호화 선택위치정보를 생성하고, 대응 선택위치정보를 암호화 선택위치정보로 대체한다.
다음, 암호화 처리부(3109)는 제 1, 제 2, ..., 및 제 x 헤더 그룹, 생성된 암호화 콘텐츠, 및 수신한 헤더선택정보(3130) 및 키 블록을 기록부(3114)에 출력한다.
3.2.5 기록부(3114)
기록부(3114)는 암호화 처리부(3109)로부터 제 1, 제 2, ..., 및 제 x 헤더 그룹, 암호화 콘텐츠, 헤더선택정보(3130) 및 키 블록을 수신하고, 수신한 제 1, 제 2, ..., 및 제 x 헤더 그룹, 암호화 콘텐츠, 헤더선택정보(3130) 및 키 블록을 DVD에 기록한다.
3.3 DVD(3500)
도 39는 이 실시예에 따른 DVD에 의해 기록된 정보를 나타낸다.
도 39에 도시한 바와 같이, DVD(3500)는 키 블록(3510), 헤더선택정보(3520), 제 1 헤더 그룹(3530), 제 2 헤더 그룹(3530), ..., 및 제 x 헤더 그룹(3560), 암호화 콘텐츠(3580)를 저장한다.
제 1 헤더 그룹(3530), 제 2 헤더 그룹(3530), ..., 및 제 x 헤더 그룹(3560) 각각은 헤더 식별자, 암호화 선택위치정보, 헤더정보, 및 서명정보로 구성된다.
예를 들어, 제 1 헤더 그룹(3530)은 헤더 식별자 "HEADID1"(3531), 암호화 선택위치정보 "EPOS1"(3532), 헤더정보 "HEAD1", 및 서명정보 "Sign1"(3534)로 구성된다.
이들 정보 세트는 분배장치(3100)에 의해 DVD(3500)에 기록된다. 각 정보 세트의 구성은 이미 언급한 바와 같고, 따라서 설명은 생략한다.
3.4 실행장치(3600)
도 40에 도시한 바와 같이, 실행장치(3600)는 취득부(3601), 콘텐츠키 취득부(2602), 장치키 저장부(1604), 위치정보 해독부(2606), 서명정보 검증부(2611), 검증키 저장부(1612), 대표 부분콘텐츠 해독부(2616), 헤더정보 검증부(2617), 및 실행부(2618)로 구성된다.
취득부(3601) 이외의 다른 구성요소는 제 2 실시예의 실행장치(2600)를 구성하는 콘텐츠키 취득부(2602), 장치키 저장부(1604), 위치정보 해독부(2606), 서명 정보 검증부(2611), 검증키 저장부(1612), 대표 부분콘텐츠 해독부(2616), 헤더정보 검증부(2617), 및 실행부(2618)와 같은 구성과 동작을 갖는다. 따라서, 여기서는 취득부(3601)만을 설명한다.
3.4.1 취득부(3601)
DVD(3500)가 로드된 때, 취득부(3601)는 DVD(3500)로부터 헤더선택정보(3520)를 판독한다. 이어, 취득부(3601)는 난수를 이용하여 헤더선택정보(3520)에 포함된 헤더 식별자 "HEADID1", "HEADID2", "HEADID3", ..., "HEADIDx" 중 하나를 선택한다. 선택방법은 이것에 한정되지 않고, 어떤 식별자가 선택될지를 제3자가 예측하기 어려운 한 어떠한 방법도 적용할 수 있다.
다음, 취득부(3601)는, DVD(3500)에 기록된 제 1, 제 2, ..., 및 제 x 헤더 그룹 중에서, 선택된 헤더 식별자를 포함하는 헤더 그룹을 찾고, 그 헤더 그룹으로부터 암호화 선택위치정보, 헤더정보, 및 서명정보를 판독한다.
이어, 취득부(3601)는 DVD(3500)로부터 키 블록(3510)과 암호화 콘텐츠(3580)를 판독하고, 판독한 키 블록(3510)과 암호화 콘텐츠, 암호화 선택위치정보, 헤더정보, 및 서명정보를 콘텐츠키 취득부(2602)에 출력한다.
3.5 요약 및 유익한 효과
상기한 바와 같이, 제 3 실시예의 분배장치(3100)는 각각 암호화 선택위치정보, 헤더정보, 및 서명정보로 구성된 x 그룹을 생성하고, 실행장치는 x 그룹 중 하나를 선택하고 선택된 그룹의 암호화 선택위치정보, 헤더정보, 및 서명정보를 이용하여 비인증 콘텐츠가 포함되어 있는지에 대한 검증을 수행한다.
따라서, 검증에 사용된 대표 부분콘텐츠의 개수를 증가함으로써, 비인증 콘텐츠를 검출하는 정확도를 향상시킬 수 있다. 또한, 제 1 내지 제 x 헤더 그룹 중에서, 어떤 헤더 그룹이 실행장치(3600)에서 선택될지를 예측하기 어려우며, 따라서 인증을 위해 사용되지 않는 부분콘텐츠만 비인증 콘텐츠로 대체하는 것을 포함하는 사기 행위를 방지할 수 있다.
4. 제 4 실시예
본 발명의 제 4 실시예에 따른 비인증 콘텐츠 검출시스템을 이하 설명한다.
4.1 비인증 콘텐츠 검출시스템
제 4 실시예의 비인증 콘텐츠 검출시스템은, 제 1 실시예의 비인증 콘텐츠 검출시스템과 같이, 분배장치, 실행장치, 및 모니터로 구성된다.
분배장치는 조작자의 조작에 따라 콘텐츠를 취득하고, 취득한 콘텐츠를 암호화하여 암호화 콘텐츠를 생성한다.
또한, 분배장치는 콘텐츠를 다수의 부분콘텐츠로 분할하고, 모든 부분콘텐츠에 기초하여 콘텐츠가 합법적 권리 보유자에 의해 발행된 것을 입증하기 위한 서명정보뿐만 아니라 비인증 콘텐츠가 콘텐츠에 포함되어 있는지를 검출하는데 사용되는 헤더정보를 생성한다. 분배장치는 생성된 암호화 콘텐츠, 서명정보 등을 DVD에 기록한다.
DVD는 분배매장을 통하여 사용자에게 판매 또는 분배될 것이다.
DVD가 로드된 때, 실행장치는 콘텐츠를 구성하는 다수의 부분콘텐츠 중에서 일부를 선택하고, 선택한 부분콘텐츠만을 이용하여 헤더정보를 검증한다.
이 실시예의 비인증 콘텐츠 검출시스템을 구성하는 개별 장치와 DVD를 이하 설명한다.
4.2 분배장치(4100)
도 41은 제 4 실시예의 비인증 콘텐츠 검출시스템을 구성하는 분배장치의 구성을 나타낸다. 도 41에 도시한 바와 같이, 분배장치(4100)는 입력부(4101), 콘텐츠키 생성부(4102), 키블록 생성부(4103), 실행장치정보 저장부(1104), 부분콘텐츠 생성부(4105), 헤더정보 생성부(4107), 서명정보 생성부(4108), 서명키 저장부(1112), 암호화 처리부(4109), 및 기록부(4114)로 구성된다.
분배장치(4100)를 구성하는 각 구성요소를 설명한다. 실행장치정보 저장부(1104)와 서명키 저장부(1112)는 제 1 실시예와 같기 때문에, 이들 구성요소에 대한 설명은 생략한다.
4.2.1 입력부(4101)
입력부(4101)는 조작자의 조작에 따라 외부장치 또는 외부 기록매체로부터 콘텐츠와 다수개의 식별정보를 취득한다. 여기서, 취득한 콘텐츠는 실행장치(4600)에 대해 재생가능한 포맷이며, DVD-Video 포맷과 MPEG-2 포맷이 이러한 재생가능한 포맷의 예들이다.
입력부(4101)는 취득한 콘텐츠(2120)를 콘텐츠키 생성부(4102)에 출력한다.
4.2.2 콘텐츠키 생성부(4102)
콘텐츠키 생성부(4102)는 입력부(4101)로부터 콘텐츠를 수신한다. 콘텐츠를 수신한 때, 콘텐츠키 생성부(4102)는 유사 난수를 생성하고, 생성된 유사 난수를 이용하여 128-비트 길이의 콘텐츠 "CK"를 생성한다. 유사 난수 대신에, 예를 들어, 신호대 잡음비를 이용하여 참 난수를 생성할 수 있다.
다음, 콘텐츠키 생성부(4102)는 생성된 콘텐츠 키 "CK", 수신한 콘텐츠를 키블록 생성부(4103)에 출력한다.
4.2.3 키블록 생성부(4103)
키블록 생성부(4103)는 콘텐츠 키 "CK"와 콘텐츠를 콘텐츠키 생성부(4102)로부터 수신한다. 콘텐츠 키 "CK"와 콘텐츠를 수신한 때, 키블록 생성부(4103)는 실행장치정보 저장부(1104)에 저장된 장치식별 테이블과 수신한 콘텐츠 키 "CK"를 사용하여 키 블록을 생성한다. 키 블록을 생성하는 구체적인 절차는 제 1 실시예의 키블록 생성부(1103)에 의해 수행되는 것과 같기 때문에 설명을 생략한다.
다음, 키블록 생성부(4103)는 생성된 키 블록, 수신한 콘텐츠 키 "CK"와 콘텐츠를 부분콘텐츠 생성부(4105)에 출력한다.
4.2.4 부분콘텐츠 생성부(4105)
부분콘텐츠 생성부(4105)는 키 블록, 콘텐츠 키 "CK", 및 콘텐츠를 키블록 생성부(4103)로부터 수신한다.
이들 정보 세트를 수신한 때, 부분콘텐츠 생성부(4105)는 수신한 콘텐츠를 c개의 부분콘텐츠 "CNT1", "CNT2", ..., 및 "CNTc"로 분할한다. 예를 들어, 콘텐츠가 DVD-Video 포맷인 때, VOB 또는 VOBU가 분할 단위로 사용될 수 있다. 반면, 콘텐츠가 MPEG-2 포맷인 때, GOP(Group Of Picture), 필드, 프레임, 또는 인트라 픽처가 분할 단위로 사용될 수 있다. 선택적으로, 콘텐츠 포맷에 관계없이, 콘텐츠는 64Kbyte마다 분할되거나 재생시간 1초에 대응하는 부분마다 분할될 수 있다. 이때 생성된 c개의 부분콘텐츠는 분할콘텐츠로 지칭한다.
다음, 부분콘텐츠 생성부(4105)는 생성된 n개의 부분콘텐츠에 각각 대응하는 식별정보 "AD1", "AD2", "AD3", ..., 및 "ADc"을 생성한다. 각 식별정보는 대응 부분콘텐츠를 고유하게 식별하는 정보이며, 예를 들어, 콘텐츠 헤드를 기준으로 특정되는 부분콘텐츠의 재생 개시점이나 콘텐츠 헤드로부터의 오프셋이다.
도 42는 이때 생성된 분할콘텐츠와 식별정보를 나타낸다. 분할콘텐츠(4120)는 c개의 부분콘텐츠 "CNT1"(4121), "CNT2"(4122), "CNT3"(4123), ..., 및 "CNTc"(4127)로 구성된다. 각 부분콘텐츠는 식별정보에 대응한다. 예를 들어, 식별정보 "AD1"(4131)은 부분콘텐츠 "CNT1"(4121)을 식별하기 위한 정보이다.
다음, 부분콘텐츠 생성부(4105)는 생성된 c개의 식별정보와 분할콘텐츠(4120), 그리고 수신한 키 블록과 콘텐츠 키 "CK"를 헤더정보 생성부(4107)에 출력한다.
4.2.5 헤더정보 생성부(4107)
헤더정보 생성부(4107)는 c개의 식별정보 "AD1", "AD2", "AD3", ..., "ADc", 분할콘텐츠(4120), 키 블록, 및 콘텐츠 키 "CK"를 부분콘텐츠 생성부(4105)로부터 수신한다.
이들 정보 세트를 수신한 때, 헤더정보 생성부(4107)는 난수를 이용하여 식별정보 "AD1"을 고유하게 식별하는 식별정보 식별자 "ADID1"을 생성한다.
여기서, 생성된 식별정보 식별자 "ADID1"과 수신한 식별정보 "AD1"의 쌍은 " 콘텐츠 검출정보"로 지칭한다.
다음, 헤더정보 생성부(4107)는 수신한 식별정보 "AD1"에 기초하여 분할콘텐츠(4120)로부터 부분콘텐츠 "CNT1"을 추출하고, 추출한 부분콘텐츠 "CNT1"(4121)을 해시함수에 대입하여 부분 해시값 "HA1"을 산출한다. 여기서, 생성된 식별정보 식별자 "ADID1"과 산출한 해시값 "HA1"의 쌍은 "부분 해시정보"로 지칭한다.
헤더정보 생성부(4107)는 식별정보 식별자 "AD2", "AD3", ..., "ADc"에 대해 같은 종류의 처리를 반복하여 콘텐츠 검출정보와 부분 해시정보를 생성한다.
다음, 헤더정보 생성부(4107)는 생성된 c개의 콘텐츠 검출정보로 구성된 콘텐츠 위치정보를 생성한다. 도 43은 이때 생성된 콘텐츠 위치정보의 구조를 나타낸다. 콘텐츠 위치정보(4140)는 콘텐츠 검출정보(4142, 4143, ..., 4146)로 구성된다. 각 콘텐츠 검출정보는 식별정보 식별자와 식별정보로 구성된다. 일 예로, 콘텐츠 검출정보(4141)는 식별정보 식별자 "ADID1"(4151)과 식별정보 "AD1"(4131)을 포함한다.
이어, 헤더정보 생성부(4107)는 생성된 c개의 부분 해시정보로 구성된 헤더정보를 생성한다. 도 44는 이때 생성된 헤더정보의 구조를 나타낸다. 헤더정보(4160)는 부분 해시정보(4161, 4162, 4163, ..., 4166)로 구성된다. 각 부분 해시정보는 식별정보 식별자와 부분 해시값을 포함하며, 콘텐츠 위치정보(4140)를 구성하는 콘텐츠 검출정보에 대응한다. 예를 들어, 부분 해시정보(4161)는 식별정보 식별자 "ADID1"(4171)과 부분 해시값 "HA1"(4172)을 포함한다.
다음, 헤더정보 생성부(4107)는 생성된 콘텐츠 위치정보(4140), 헤더정 보(4160), 수신한 분할콘텐츠(4120), 키 블록, 및 콘텐츠 키 "CK"를 서명정보 생성부(4108)에 출력한다.
4.2.6 서명정보 생성부(4108)
서명정보 생성부(4108)는 헤더정보 생성부(4107)로부터 콘텐츠 위치정보(4140), 헤더정보(4160), 분할콘텐츠(4120), 키 블록, 및 콘텐츠 키 "CK"를 수신한다.
이들 정보 세트를 수신한 때, 서명정보 생성부(4108)는 수신한 헤더정보(4160)를 구성하는 부분 해시정보 각각에 포함된 해시값을 추출한다. 서명정보 생성부(4108)는 추출한 c개의 부분 해시값 "HA1", "HA2", "HA3", ..., 및 "HAc"를 조합하여 형성된 조합 결과를 해시함수에 대입하여 조합 해시값을 생성한다.
다음, 서명정보 생성부(4108)는 서명키 저장부(1112)로부터 서명키(1113)를 판독한다. 서명정보 생성부(4108)는 판독한 서명키(1113)를 이용하여 생성한 해시값에 서명생성 알고리즘 S를 할당하여 서명정보를 생성한다.
서명정보를 생성한 때, 서명정보 생성부(4108)는 생성된 서명정보, 그리고 수신한 콘텐츠 위치정보(4140), 헤더정보(4160), 분할콘텐츠(4120), 키 블록, 및 콘텐츠 키 "CK"를 암호화 처리부(4109)에 출력한다.
4.2.7 암호화 처리부(4109)
암호화 처리부(4109)는 서명정보 생성부(4108)로부터 서명정보, 콘텐츠 위치정보(4140), 헤더정보(4160), 분할콘텐츠(4120), 키 블록, 및 콘텐츠 키 "CK"를 수신한다.
이들 정보 세트를 수신한 때, 암호화 처리부(4109)는 수신한 분할콘텐츠(4120)를 구성하는 부분콘텐츠 "CNT1"(4121)에 암호화 알고리즘을 적용하여 암호화 부분콘텐츠 "ECNT1"을 생성한다. 암호화 처리부(4109)는 부분콘텐츠 "CNT2"(4122), "CNT3"(4123), ..., 및 "CNTc"(4127)에 대해 같은 종류의 처리를 반복하여 암호화 부분콘텐츠 "ECNT2", "ECNT3", ..., 및 "ECNTc"를 생성한다.
다음, 암호화 처리부(4109)는 생성된 c개의 암호화 부분콘텐츠 "ECNT1", "ECNT2", "ECNT3", ..., 및 "ECNTc"로 구성된 암호화 콘텐츠를 생성한다. 이때 생성된 암호화 콘텐츠는 제 2 실시예의 암호화 콘텐츠(2220)(도 32)와 같은 구조를 갖는다.
다음, 암호화 처리부(4109)는 생성된 암호화 콘텐츠, 수신한 서명정보, 콘텐츠 위치정보(4140), 헤더정보(4160), 및 키 블록을 기록부(4114)에 출력한다.
4.2.8 기록부(4114)
기록부(4114)는 DVD가 로드될 수 있다.
기록부(4114)는 암호화 처리부(4109)로부터 암호화 콘텐츠, 서명정보, 콘텐츠 위치정보(4140), 헤더정보(4160), 및 키 블록을 수신한다.
이들 정보를 수신한 때, 기록부(4114)는 수신한 암호화 콘텐츠, 서명정보, 콘텐츠 위치정보(4140), 헤더정보(4160), 및 키 블록을 DVD에 기록한다.
4.3 DVD(4500)
도 45는 제 4 실시예의 DVD에 저장된 정보를 나타낸다. 도 45에 도시한 바와 같이, DVD(4500)는 키 블록(4510), 콘텐츠 위치정보(4530), 헤더정보(4550), 서명 정보(4570), 및 암호화 콘텐츠(4580)를 저장한다.
이들 정보 세트는 분배장치(4100)에 의해 기록되어 있다. 각 정보 세트의 구조는 상기한 바와 같고, 따라서, 설명은 생략한다.
4.4 실행장치(4600)
도 46은 제 4 실시예의 실행장치의 구조를 나타낸다. 도 46에 도시한 바와 같이, 실행장치(4600)는 취득부(4601), 콘텐츠키 취득부(4602), 장치키 저장부(1604), 서명정보 검증부(4606), 선택부(4611), 부분콘텐츠 해독부(4616), 헤더정보 검증부(4617), 및 실행부(4618)로 구성된다.
실행장치(4600)를 구성하는 각 구성요소는 이하 상세하게 설명한다. 장치키 저장부(1604)와 검증키 저장부(1612)는 제 1 실시예와 같고, 실행부(2618)는 제 2 실시예와 동일하므로 이들 구성요소에 대한 설명은 생략한다.
4.4.1 취득부(4601)
취득부(4601)는 DVD(4500)가 로드된다. DVD(4500)가 로드된 것이 검출된 때, 취득부(4601)는 키 블록(4510), 콘텐츠 위치정보(4530), 헤더정보(4550), 서명정보(4570), 및 암호화 콘텐츠(4580)를 판독하고, 판독한 키 블록(4510), 콘텐츠 위치정보(4530), 헤더정보(4550), 서명정보(4570), 및 암호화 콘텐츠(4580)를 콘텐츠키 취득부(4602)에 출력한다.
4.4.2 콘텐츠키 취득부(4602)
콘텐츠키 취득부(4602)는 취득부(4601)로부터 키 블록(4510), 콘텐츠 위치정보(4530), 헤더정보(4550), 서명정보(4570), 및 암호화 콘텐츠(4580)를 수신한다.
이들 정보 세트를 수신한 때, 콘텐츠키 취득부(4602)는 장치키 저장부(1604)에 의해 저장된 장치 식별자 "AID_p"와 장치키 "DK_p" 및 수신한 키 블록(4510)을 이용하여 콘텐츠 키 "CK"를 생성한다. 콘텐츠 키 "CK"를 생성하는 절차는 제 1 실시예의 실행장치(1600)를 구성하는 콘텐츠키 취득부(1602)가 실행하는 콘텐츠 키 "CK"의 생성 절차와 같으므로, 설명은 생략한다.
다음, 콘텐츠키 취득부(4602)는 생성된 콘텐츠 키 "CK", 그리고 수신한 콘텐츠 위치정보(4530), 헤더정보(4550), 서명정보(4570), 및 암호화 콘텐츠(4580)를 서명정보 검증부(4606)에 출력한다.
4.4.3 서명정보 검증부(4606)
서명정보 검증부(4606)는 콘텐츠키 취득부(4602)로부터 콘텐츠 키 "CK", 콘텐츠 위치정보(4530), 헤더정보(4550), 서명정보(4570), 및 암호화 콘텐츠(4580)를 수신한다.
이들 정보 세트를 수신한 때, 서명정보 검증부(4606)는 다음의 절차로 서명정보(4570)의 검증을 수행한다.
먼저, 서명정보 검증부(4606)는 수신한 헤더정보를 구성하는 각 부분 해시정보로부터 부분 해시값을 추출하고, 추출한 부분 해시값 "HA1", "HA2", "HA3", ..., 및 "HAc"을 조합하여 형성된 조합 결과를 해시함수에 대입하여 서명검증 조합 해시값을 산출한다.
다음, 서명정보 검증부(4606)는 검증키 저장부(1612)로부터 검증키(1613)를 판독하고, 산출한 서명검증 조합 해시값에 서명검증 알고리즘 V를 적용하여 서명검 증정보를 생성한다. 이어, 서명정보 검증부(4606)는 생성된 서명검증정보와 수신한 서명정보를 비교한다. 이들 둘이 일치하지 않으면, 서명정보 검증부(4606)는 서명정보(4570)의 검증이 성공적이지 않은 것으로 판정하고, 실행장치(4600)의 이어지는 처리를 중단한다.
이들 둘이 일치하면, 서명정보 검증부(4606)는 서명정보(4570)의 검증이 성공적인 것으로 판정하고, 수신한 콘텐츠 키 "CK", 콘텐츠 위치정보(4530), 헤더정보(4550), 및 암호화 콘텐츠(4580)를 선택부(4611)에 출력한다.
4.4.4 선택부(4611)
선택부(4611)는 서명정보 검증부(4606)로부터 콘텐츠 키 "CK", 콘텐츠 위치정보(4530), 헤더정보(4550), 및 암호화 콘텐츠(4580)를 수신한다.
이들 정보 세트를 수신한 때, 선택부(4611)는 상기한 절차에서 수신한 콘텐츠 위치정보(4530)로부터 선택위치정보를 다음과 같이 생성한다. 도 47은 선택부(4611)가 수행하는 선택위치정보의 생성 절차의 개요와 이때 생성된 선택위치정보의 구조를 나타낸다. 다음은 선택위치정보의 생성 절차를 도 47을 참조하여 설명한다.
선택부(4611)는 난수를 이용하여 수신한 콘텐츠 위치정보(4530)를 구성하는 c개의 콘텐츠 검출정보(4531, 4532, 4533, ..., 4536) 중에서 k개를 선택한다. 선택방법은 이것에 한정되지 않고, 어느 부분이 선택될지를 제3자가 예측하는 것이 어려운 한 어떠한 방법도 적용할 수 있다.
도 47은 콘텐츠 검출정보(4531, 4533, 4536)를 포함하는 k개가 선택된 경우 를 보여준다.
다음, 선택부(4611)는 k개의 콘텐츠 검출정보(4531, 4533, ..., 4536)로 구성된 선택위치정보(4620)를 생성한다.
다음, 선택부(4611)는 수신한 헤더정보(4550)에 기초하여 다음 절차로 선택 헤더정보를 생성한다. 도 48은 선택 헤더정보를 생성하는 절차의 개요와 선택 헤더정보의 구조를 나타낸다. 다음은 선택 헤더정보의 생성 절차를 도 48을 참조하여 설명한다.
먼저, 선택부(4611)는 생성된 선택위치정보(4620)를 구성하는 콘텐츠 검출정보(4531, 4532, ..., 4536) 각각으로부터 식별정보 식별자를 추출하고, 추출한 식별정보 식별자 "ADID1", "ADID3", ..., "ADIDc"와 같은 식별정보 식별자를 포함하는 부분 해시정보(4551, 4553, ..., 4556)를 추가로 추출한다.
다음, 선택부(4611)는 추출한 부분 해시정보(4551, 4553, ..., 4556)로 구성된 선택 헤더정보를 생성한다.
다음, 선택부(4611)는 생성된 선택위치정보(4620)와 선택 헤더정보(4630), 그리고 수신한 콘텐츠 키 "CK"와 암호화 콘텐츠(4580)를 부분콘텐츠 해독부(4616)에 출력한다.
4.4.5 부분콘텐츠 해독부(4616)
부분콘텐츠 해독부(4616)는 선택부(4611)로부터 선택위치정보(4620)와 선택 헤더정보(4630), 콘텐츠 키 "CK"와 암호화 콘텐츠(4580)를 수신한다.
이들 정보 세트를 수신한 때, 부분콘텐츠 해독부(4616)는 다음에 설명하는 절차로 검증 콘텐츠를 생성한다. 도 49는 검증 콘텐츠를 생성하기 위한 절차의 개요와 이때 생성된 검증 콘텐츠의 구조를 나타낸다. 검증 콘텐츠를 생성하는 절차를 도 49를 참조하여 설명한다.
먼저, 부분콘텐츠 해독부(4616)는 수신한 선택위치정보(4620)를 구성하는 콘텐츠 검출정보(4531)로부터 식별정보 "AD1"을 추출하고, 추출한 식별정보 "AD1"에 기초하여 수신한 암호화 콘텐츠(4580)로부터 암호화 부분콘텐츠 "ECNT1"을 추가로 추출한다.
부분콘텐츠 해독부(4616)는 추출한 부분콘텐츠 "ECNT1"에 해독 알고리즘 D1을 적용함으로써 부분콘텐츠 "CNT1"을 생성한다. 이어, 부분콘텐츠 해독부(4616)는 콘텐츠 검출정보(4531)에 포함된 식별정보 식별자 "ADID1"와 생성된 부분콘텐츠 "CNT1"으로 구성된 검증 부분콘텐츠정보를 생성한다.
부분콘텐츠 해독부(4616)는 콘텐츠 검출정보의 나머지(4532, ..,., 4536)에 대해서 같은 종류의 처리를 반복하여 검증 부분콘텐츠정보(4652, ..., 4656)를 생성한다. 다음, 부분콘텐츠 해독부(4616)는 k개의 검증 부분콘텐츠정보로 구성된 검증 콘텐츠(4650)를 생성한다.
검증 콘텐츠(4650)를 생성한 때, 부분콘텐츠 해독부(4616)는 생성된 검증 콘텐츠(4650), 수신한 선택 헤더정보(4630), 콘텐츠 키 "CK", 및 암호화 콘텐츠(4580)를 헤더정보 검증부(4617)에 출력한다.
4.4.6 헤더정보 검증부(4617)
헤더정보 검증부(4617)는 부분콘텐츠 해독부(4616)로부터 검증 콘텐 츠(4650), 선택 헤더정보(4630), 콘텐츠 키 "CK", 및 암호화 콘텐츠(4580)를 수신한다.
이들 정보 세트를 수신한 때, 헤더정보 검증부(4617)는 수신한 검증 콘텐츠(4650)를 구성하는 검증 부분콘텐츠정보(4651)의 첫 번째 부분에 포함된 부분콘텐츠 "CNT1"(4624)를 해시함수에 대입하여 검증 해시값을 생성한다.
다음, 헤더정보 검증부(4617)는, 부분 검증 콘텐츠정보(4651)에 포함된 식별정보 식별자 "ADID1"(4621)을 추출한다. 이어, 헤더정보 검증부(4617)는 추출한 식별정보 식별자 "ADID1"(4621)과 같은 식별정보 식별자를 포함하는 부분 해시정보(4551)를 수신한 선택 헤더정보(4630)로부터 검출하고, 검출된 부분 해시정보(4551)에 포함된 부분 해시값 "HA1"(4632)을 추출한다. 다음, 헤더정보 검증부(4617)는 추출한 부분 해시값 "HA1"(4632)과 산출한 검증 해시값 "H1"을 비교한다.
헤더정보 검증부(4617)는 검증 부분콘텐츠정보의 나머지(4652, ..., 4656)에 대해 같은 종류의 처리를 반복하고, 부분 해시값과 검증 해시값의 비교를 k번 수행한다.
k번의 비교에서 부분 해시값과 검증 해시값이 한 차례도 서로 일치하지 않을 때, 헤더정보 검증부(4617)는 실행장치(4600)에서 이어지는 처리를 중단한다.
부분 해시값과 검증 해시값의 모든 쌍이 k번의 비교에서 일치할 때, 헤더정보 검증부(4617)는 수신한 콘텐츠 키 "CK"와 암호화 콘텐츠(4580)를 실행부(4618)에 출력한다.
4.5 동작
다음은 분배장치(4100)와 실행장치(4600)의 동작을 설명한다.
4.5.1 분배장치(4100)의 동작
도 50은 분배장치(4100)의 동작을 나타내는 플로차트이고, 도 51은 분배장치(4100)의 동작에서 콘텐츠를 처리하는 흐름을 나타낸다.
분배장치(4100)의 동작을 도 50과 51을 참조하여 설명한다.
입력부(4101)는 콘텐츠를 취득하고(단계 S4012), 취득한 콘텐츠를 콘텐츠키 생성부(4102)에 출력한다.
콘텐츠키 생성부(4102)는 콘텐츠를 수신하고, 난수를 이용하여 콘텐츠 키를 생성하며(단계 S4013), 생성된 콘텐츠 키와 수신한 콘텐츠를 키블록 생성부(4103)에 출력한다.
콘텐츠 키와 콘텐츠를 수신한 때, 키블록 생성부(4103)는 키 블록을 생성하고, 생성된 키 블록, 수신한 콘텐츠 키 및 콘텐츠를 부분콘텐츠 생성부(4105)에 출력한다(단계 S4014).
부분콘텐츠 생성부(4105)는 키 블록, 콘텐츠 키, 콘텐츠를 키블록 생성부(4103)로부터 수신한다. 다음, 부분콘텐츠 생성부(4105)는, 도 51에 도시한 바와 같이, 수신한 콘텐츠(4119)를 분할하고, 생성된 c개의 부분콘텐츠를 모아서 분할콘텐츠(4120)를 형성한다. 다음, 부분콘텐츠 생성부(4105)는 생성된 c개의 부분콘텐츠에 각각 대응하는 식별정보를 생성하고(단계 S4018), 생성된 분할콘텐츠(4120)와 c개의 식별정보, 그리고 수신한 키 블록, 콘텐츠 키, 및 콘텐츠를 헤더정보 생성 부(4107)에 출력한다.
헤더정보 생성부(4107)는 분할콘텐츠, c개의 식별정보, 키 블록, 및 콘텐츠 키를 부분콘텐츠 생성부(4105)로부터 수신하고, 수신한 식별정보에 각각 대응하는 식별정보 식별자를 생성하고, 생성된 식별정보 식별자와 식별정보를 포함하는 콘텐츠 위치정보(4140)를 추가로 생성한다. 또한, 도 51에 도시한 바와 같이, 헤더정보 생성부(4107)는 수신한 분할콘텐츠(4120)를 구성하는 c개의 부분콘텐츠 개별적으로 해시함수에 대입하여 c개의 부분 해시값을 산출하고, 산출된 c개의 부분 해시값을 포함하는 헤더정보(4160)를 생성한다(단계 S4019). 다음, 헤더정보 생성부(4107)는 생성된 콘텐츠 위치정보(4140)와 헤더정보(4160), 수신한 키 블록과 콘텐츠 키를 서명정보 생성부(4108)에 출력한다.
서명정보 생성부(4108)는 헤더정보 생성부(4107)로부터 콘텐츠 위치정보(4140)와 헤더정보(4160), 수신한 키 블록과 콘텐츠 키를 수신한다. 도 51에 도시한 바와 같이, 서명정보 생성부(4108)는 수신한 헤더정보에 포함된 c개의 부분 해시값을 추출하고, 추출한 c개의 부분 해시값을 조합하며, 조합 결과를 해시함수에 대입하여 조합 해시값을 산출한다(단계 S4021).
다음, 서명정보 생성부(4108)는 서명키 저장부(1112)로부터 서명키(1113)를 판독한다(단계 S4022). 도 51에 도시한 바와 같이, 서명정보 생성부(4108)는 판독한 서명키(1113)를 이용하여 생성된 조합 해시값에 서명생성 알고리즘을 적용하여 서명정보(4170)를 생성한다(단계 S4023).
다음, 서명정보 생성부(4108)는 생성된 서명정보, 수신한 콘텐츠 위치정 보(4140), 헤더정보(4160), 분할콘텐츠(4120) 및 콘텐츠 키를 암호화 처리부(4109)에 출력한다.
암호화 처리부(4109)는 서명정보, 콘텐츠 위치정보(4140), 헤더정보(4160), 분할콘텐츠(4120) 및 콘텐츠 키를 수신하고, 수신한 콘텐츠 키를 이용하여 분할콘텐츠(4120)를 구성하는 각 부분콘텐츠를 암호화하여 암호화 콘텐츠를 생성한다(단계 S4024). 암호화 처리부(4109)는 생성된 암호화 콘텐츠, 및 수신한 서명정보, 콘텐츠 위치정보(4140), 헤더정보(4160), 및 키 블록을 기록부(4114)에 출력한다.
기록부(4114)는 암호화 콘텐츠, 서명정보, 콘텐츠 위치정보(4140), 헤더정보(4160), 및 키 블록을 수신하고, 수신한 키 블록, 콘텐츠 위치정보(4140), 헤더정보(4160), 서명정보, 및 암호화 콘텐츠를 DVD(4500)에 기록한다(단계 S4026).
4.5.2 실행장치(4600)의 동작
도 52와 53은 실행장치(4600)의 동작을 설명하는 플로차트이다. 도 54는 실행장치(4600)를 구성하는 각 구성요소가 다루는 정보를 도식적으로 나타낸다. 도 52 내지 54의 동일한 참조 단계 번호는 같은 처리를 나타낸다.
다음은 도 52 내지 54를 참조하여 실행장치(4600)의 동작을 설명한다.
DVD(4500)가 로드된 때, 취득부(4601)는 키 블록(4510), 콘텐츠 위치정보(4530), 헤더정보(4550), 서명정보(4570), 및 암호화 콘텐츠(4580)를 DVD(4500)로부터 판독하고(단계 S4041), 판독한 이들 정보 세트를 콘텐츠키 취득부(4602)에 출력한다.
콘텐츠키 취득부(4602)는 키 블록(4510), 콘텐츠 위치정보(4530), 헤더정 보(4550), 서명정보(4570), 및 암호화 콘텐츠(4580)를 수신하고, 수신한 키 블록(4510), 장치키 저장부(1604)에 의해 저장된 장치 식별자와 장치키를 이용하여 콘텐츠 키를 생성한다(단계 S4042). 다음, 콘텐츠키 취득부(4602)는 생성된 콘텐츠 키, 수신한 콘텐츠 위치정보(4530), 헤더정보(4550), 서명정보(4570), 및 암호화 콘텐츠(4580)를 서명정보 검증부(4606)에 출력한다.
서명정보 검증부(4606)는 콘텐츠 키, 콘텐츠 위치정보(4530), 헤더정보(4550), 서명정보(4570), 및 암호화 콘텐츠(4580)를 수신하고, 수신한 헤더정보(4550)에 포함된 c개의 부분 해시값을 조합하고, 조합 결과를 해시함수에 대입하여 서명검증 조합 해시값을 생성한다(단계 S4043). 다음, 서명정보 검증부(4606)는 검증키 저장부(1612)로부터 검증키(1613)를 판독하고(단계 S4044), 판독한 검증키(1613)와 생성된 서명검증 조합 해시값을 이용하여 수신한 서명정보(4570)를 검증한다(단계 S4046).
서명정보(4570)의 검증이 성공적이지 않으면(단계 S4048: NO), 서명정보 검증부(4606)는 실행장치(4600)의 이어지는 처리를 중단한다.
서명정보(4570)의 검증이 성공적이면(단계 S4048: YES), 서명정보 검증부(4606)는 수신한 콘텐츠 키, 콘텐츠 위치정보(4530), 헤더정보(4550), 및 암호화 콘텐츠(4580)를 선택부(4611)에 출력한다.
콘텐츠 키, 콘텐츠 위치정보(4530), 헤더정보(4550), 및 암호화 콘텐츠(4580)를 수신한 때, 선택부(4611)는 콘텐츠 위치정보(4530)에 포함된 c개의 콘텐츠 검출정보 중에서 k개를 선택한다(단계 S4049). 이어, 선택부(4611)는 선택된 콘텐츠 검출정보로 구성된 선택위치정보(4620)를 생성한다(단계 S4051). 이어, 선택부(4611)는 생성된 선택위치정보(4620)로 구성된 k개의 콘텐츠 검출정보에 포함된 식별정보 식별자에 기초하여 수신한 헤더정보(4550)로부터 k개의 부분 해시정보를 선택한다(단계 S4056). 다음, 선택부(4611)는 생성된 선택위치정보(4620)와 암호화 콘텐츠(4580)를 부분콘텐츠 해독부(4616)에 출력한다.
부분콘텐츠 해독부(4616)는 선택위치정보(4620), 선택 헤더정보(4630), 콘텐츠 키, 및 암호화 콘텐츠(4580)를 수신하고, 도 54에 도시한 바와 같이, 수신한 선택위치정보(4620)에 포함된 식별정보에 기초하여 암호화 콘텐츠(4580)로부터 k개의 암호화 부분콘텐츠(4581, 4582, 4583, ..., 4586)를 추출한다(단계 S4057). 다음, 부분콘텐츠 해독부(4616)는 추출한 k개의 암호화 부분콘텐츠(4581, 4582, 4583, ..., 4586)를 해독하여 부분콘텐츠를 생성한다(단계 S4059). 다음, 부분콘텐츠 해독부(4616)는 수신한 선택위치정보(4520)에 포함된 k개의 식별정보 식별자와 생성된 k개의 부분콘텐츠를 포함하는 검증 콘텐츠(4650)를 생성한다(단계 S4061). 부분콘텐츠 해독부(4616)는 생성된 검증 콘텐츠(4650), 수신한 선택 헤더정보(4630), 콘텐츠 키, 및 암호화 콘텐츠(4580)를 헤더정보 검증부(4617)에 출력한다.
헤더정보 검증부(4617)는 검증 콘텐츠(4650), 선택 헤더정보(4630), 콘텐츠 키, 및 암호화 콘텐츠(4580)를 수신한다. 이들 정보 세트를 수신한 때, 헤더정보 검증부(4617)는 수신한 검증 콘텐츠(4650)에 포함된 k개의 부분콘텐츠(4591, 4592, 4593, ..., 4596)를 개별적으로 해시함수에 대입하여 k개의 검증 해시값을 생성하고(단계 S4062), 수신한 헤더정보에 포함된 k개의 부분 해시값을 대응하는 생성된 검증 해시값과 개별적으로 비교한다(단계 S4064).
각각 검증 해시값과 대응하는 부분 해시값으로 구성된 k 쌍의 비교에서, 어느 하나의 쌍도 서로 일치하지 않은 때(단계 S4066: NO), 헤더정보 검증부(4617)는 실행장치(4600)의 이어지는 처리를 중단한다.
k 쌍의 비교에서, 모든 k 쌍이 일치를 나타낼 때(단계 S4066: YES), 헤더정보 검증부(4617)는 수신한 콘텐츠 키와 암호화 콘텐츠(4580)를 실행부(2618)에 출력한다.
실행부(2618)는 헤더정보 검증부(4617)로부터 콘텐츠 키와 암호화 콘텐츠(4580)를 수신하고, 수신한 콘텐츠 키를 이용하여 수신한 암호화 콘텐츠(4580)를 구성하는 각 암호화 부분콘텐츠를 해독하여 c개의 부분콘텐츠로 구성된 콘텐츠를 생성하고(단계 S4067), 생성된 콘텐츠의 압축을 풀고(단계 S4068), 모니터가 압축 풀린 콘텐츠를 재생하도록 한다(단계 S4071).
4.6 요약 및 유익한 효과
상기한 바와 같이, 제 4 실시예의 비인증 검출시스템은 분배장치(4100)와 실행장치(4600)로 구성되며, 분배장치(4100)는 콘텐츠를 분할하여 c개의 부분콘텐츠를 생성하며, 생성된 c개의 부분콘텐츠 모두를 이용하여 헤더정보와 검증정보를 추가로 생성한다.
실행장치(4600)는 암호화 콘텐츠를 구성하는 c개의 암호화 부분콘텐츠 중에서 k개를 선택하고, 헤더정보에 포함된 c개의 부분 해시값으로부터 선택한 k개의 부분콘텐츠에 대응하는 k개의 부분콘텐츠를 추출한다. 실행장치(4600)는 추출된 k 개의 부분 해시값을 이용하여 선택된 k개의 암호화 부분콘텐츠만을 검증한다. 검증이 성공적일 때에만, 실행장치(4600)는 암호화 콘텐츠를 해독하여 콘텐츠를 생성하고, 해독된 콘텐츠를 재생한다.
따라서, 비인증 콘텐츠가 포함되어 있는지를 판정하는데 사용된 암호화 부분콘텐츠의 개수를 k개로 제한함으로써, 검증에 포함된 처리 부하를 줄일 수 있다.
실행장치(4600)가 검증을 수행할 때마다 난수를 이용하여 다른 개수의 암호화 부분콘텐츠를 선택함으로써, 검증에 사용된 암호화 부분콘텐츠의 개수를 k개로만 제한하는 것에 의해 비인증 콘텐츠 검출의 정확도의 하락을 보상할 수 있다.
또한, 암호화 부분콘텐츠의 어느 부분이 검증에 사용될지를 예측하는 것이 어려우며, 따라서 암호화 콘텐츠를 구성하는 암호화 부분콘텐츠 중에서 검증을 위해 사용되지 않는 암호화 부분콘텐츠만 비인증 콘텐츠로 대체하는 것을 포함하는 사기 행위를 방지할 수 있다.
5. 제 5 실시예
본 발명의 제 5 실시예에 따른 비인증 콘텐츠 검출시스템을 이하 설명한다.
5.1 비인증 콘텐츠 검출시스템
제 5 실시예의 비인증 콘텐츠 검출시스템은, 제 1 실시예의 비인증 콘텐츠 검출시스템과 같이, 분배장치, 실행장치, 및 모니터로 구성된다.
분배장치는 조작자의 조작에 따라 콘텐츠를 취득하고, 취득한 콘텐츠를 암호화하여 암호화 콘텐츠를 생성한다. 또한, 분배장치는 콘텐츠의 유효성을 검증하기 위해 실행장치에서 사용되는 유닛선택정보, 헤더정보, 및 서명정보를 생성한다.
분배장치는 DVD의 기록가능한 영역의 저장용량과 생성된 다양한 정보의 데이터 사이즈를 취득한다.
분배장치는 취득한 저장용량에서 취득한 다양한 정보의 데이터 사이즈의 합을 빼서 확인된 충전용량(filling capacity)을 산출하고, 산출한 충전용량에 대응하는 데이터 사이즈를 갖는 충전콘텐츠(filling contents)를 생성하며, 생성된 충전콘텐츠를 다양한 정보와 함께 DVD에 기록한다.
5.2 분배장치(5100)
도 55는 제 5 실시예의 분배장치의 구조를 나타낸다. 도 55에 도시한 바와 같이, 분배장치(5100)는 입력부(1101), 콘텐츠키 생성부(1102), 키블록 생성부(1103), 실행장치정보 저장부(1104), 유닛 생성부(5105), 암호화 처리부(5106), 헤더정보 생성부(5107), 충전콘텐츠 생성부(5108), 서명정보 생성부(5111), 서명키 저장부(1112), 및 기록부(5114)로 구성된다.
분배장치(5100)를 구성하는 각 구성요소를 설명한다. 입력부(1101), 콘텐츠키 생성부(1102), 키블록 생성부(1103), 실행장치정보 저장부(1104), 및 서명키 저장부(1112)는 제 1 실시예와 같기 때문에, 이들 구성요소에 대한 설명은 생략한다.
5.2.1 유닛 생성부(5105)
제 1 실시예에서 설명한 유닛 생성부(1105)와 같이, 유닛 생성부(5105)는 입력부(1101)로부터 c개의 파일 "CNT1", "CNT2", "CNT3", ..., 등으로 구성된 콘텐츠를 수신하고, 수신된 콘텐츠를 이용하여 유닛선택정보와 분할콘텐츠를 생성한다. 유닛선택정보와 분할콘텐츠를 생성하는 절차는 제 1 실시예의 유닛 생성부(1105)에 의해 실행되는 것과 동일하며, 여기서 생성되는 유닛선택정보와 분할콘텐츠의 구조는 각각 도 6과 7에 도시한 바와 같으므로 설명은 생략한다.
다음, 유닛 생성부(5105)는 생성된 분할콘텐츠를 암호화 처리부(5106)에 출력하고, 동시에 생성된 유닛선택정보는 충전콘텐츠 생성부(5108)에 출력한다.
5.2.2 암호화 처리부(5106)
암호화 처리부(5106)는 유닛 생성부(5105)로부터 분할콘텐츠를 수신하고, 수신한 분할콘텐츠에 기초하여 암호화 분할콘텐츠와 암호화 콘텐츠를 생성한다. 암호화 분할콘텐츠와 암호화 콘텐츠를 생성하는 절차는 제 1 실시예의 암호화 처리부(1106)가 수행하는 것과 같고, 생성된 암호화 분할콘텐츠와 암호화 콘텐츠의 구조는 각각 도 9와 10에 도시된 바와 같으므로 설명은 생략한다.
다음, 암호화 처리부(5106)는 생성된 암호화 분할콘텐츠를 헤더정보 생성부(5107)에 출력하고, 동시에 생성된 암호화 콘텐츠는 기록부(5114) 및 충전콘텐츠 생성부(5108)에 출력한다.
5.2.3 충전콘텐츠 생성부(5108)
충전콘텐츠 생성부(5108)는 키블록 사이즈 "KBSIZE", 파일정보 사이즈 "FISIZE", 유닛 해시 사이즈 "USIZE", 파일 해시 사이즈 "FSIZE", 비율 "RT", 및 분할 개수 "j"를 미리 저장한다.
유닛 해시 사이즈 "USIZE"는 헤더정보 생성부(5107)가 생성한 제 1 해시테이블을 구성하는 유닛 해시정보의 데이터 사이즈를 나타낸다. 구체적으로, 여기서 유닛 해시정보는 제 1 실시예의 헤더정보 생성부(1107)가 생성한 유닛 해시정보와 같 다.
파일 해시 사이즈 "FSIZE"는 헤더정보 생성부(5107)가 생성한 제 1 해시테이블을 구성하는 파일 해시정보의 비트 길이를 나타낸다. 구체적으로, 여기서 파일 해시정보는 제 1 실시예의 헤더정보 생성부(1107)가 생성한 파일 해시정보와 같다.
비율 "RT"는 서명정보 생성부(5111)가 정보 A에 서명생성 알고리즘 S를 적용하여 서명 SingA를 생성하는 경우 정보 A와 서명 SignA 사이의 비트 길이 비율을 나타낸다.
분할 개수 "j"는 충전콘텐츠를 분할하는 충전콘텐츠 생성부(5108)가 생성한 유닛의 개수이다(후술한다).
또한, 충전콘텐츠 생성부(5108)는 충전콘텐츠가 재생될 수 없다는 것을 나타내는 56-비트 길이의 재생 실행불가 정보 "DAMY"를 미리 저장한다.
충전콘텐츠 생성부(5108)는 암호화 처리부(5106)로부터 암호화 콘텐츠를 수신하면서 유닛 생성부(5105)로부터 유닛선택정보를 수신한다.
유닛선택정보와 암호화 콘텐츠를 수신한 때, 충전콘텐츠 생성부(5108)는 수신한 유닛선택정보와 암호화 콘텐츠를 이용하여 다음의 절차로 충전용량을 산출하고, 산출한 충전용량에 기초하여 충전콘텐츠를 생성하며, 유닛선택정보를 갱신한다.
다음은, 상기한 (a) 충전용량의 산출, (b) 충전콘텐츠의 생성, 및 (c) 유닛선택정보의 갱신에 대한 상세한 설명이다.
(a) 충전용량 산출
충전용량은 키 블록, 유닛선택정보, 헤더정보, 서명정보 및 암호화 콘텐츠가 기록된 후 DVD의 빈 공간을 나타낸다. 다음은 충전용량을 생성하는 절차를 설명한다.
먼저, 충전콘텐츠 생성부(5108)는, 기록부(5114)를 통하여, 기록부(5114)에 로드된 DVD의 기록가능 영역의 저장용량을 측정하고, 정보를 기록할 수 있는 용량을 나타내는 최대저장용량 "MSIZE"를 생성한다. 여기서, 기록부(5114)를 통하여 기록가능 영역의 저장용량을 측정하는 대신에, 조작자로부터의 입력에 의해 최대저장용량 "MSIZE"를 취득할 수 있다.
다음, 충전콘텐츠 생성부(5108)는 수신한 암호화 콘텐츠의 데이터 사이즈를 측정하여 콘텐츠 사이즈 "CNTSIZE"를 생성한다.
다음, 충전콘텐츠 생성부(5108)는 수신한 콘텐츠 선택정보에 포함된 파일정보의 개수 "c"를 카운트하고, 다음의 식을 이용하여 갱신 후(상세한 것은 (c)의 유닛선택정보의 갱신에서 설명한다) 유닛선택정보의 데이터 사이즈 "UCSIZE"를 산출한다.
UCSIZE = FISIZE × (c + 1)
다음, 충전콘텐츠 생성부(5108)는 수신한 유닛선택정보에 포함된 c개의 유닛 번호 "N1", "N2", "N3", ..., 및 "Nc"를 추출하고, 추출한 유닛 번호 "N1", "N2", "N3", ..., 및 "Nc"와 저장된 분할 개수 "j"를 이용하여 다음의 식으로 헤더정보 생성부(5107)에 의해 생성된 (c+1)개의 제 1 해시테이블(후술함)의 데이터 사이즈의 합 "HA1SIZE"를 산출한다.
HA1SIZE = [N1 + N2 + N3 + ... + Nc + j)" × USIZE
그 다음, 충전콘텐츠 생성부(5108)는 헤더정보 생성부(5107)가 생성한 제 2 해시테이블(후술함)의 데이터 사이즈 "HA2SIZE"를 다음 식을 이용하여 생성하고,
HA2SIZE = FSIZE × (c + 1)
제 1 해시테이블의 데이터 사이즈 "HA1SIZE"와 제 2 해시테이블의 데이터 사이즈 "HA2SIZE"의 생성된 합으로부터 다음 식을 이용하여 헤더정보 생성부(5107)가 생성한 헤더정보의 데이터 사이즈 "HEADSIZE"를 산출한다.
HEADSIZE = HA1SIZE + HA2SIZE
다음, 충전콘텐츠 생성부(5108)는 서명정보 생성부(5111)가 생성한 서명정보의 데이터 사이즈를 나타내는 "SigSIZE"를 비율 "RT"를 이용하여 다음 식으로부터 산출한다.
SigSIZE = (UCSIZE + HA2SIZE) × RT
다음, 충전콘텐츠 생성부(5108)는 다음 식을 사용하여 충전용량 "FilSIZE"를 산출한다.
FilSIZE = MSIZE - [KBSIZE + UCSIZE + HEADSIZE + SigSIZE]
(b) 충전콘텐츠 생성
충전용량 "FilSIZE"를 산출한 때, 충전콘텐츠 생성부(5108)는 난수를 생성하고, 생성된 난수를 재생 실행불가 정보 "DAMY"와 조합하여 그 데이터 사이즈가 "FilSIZE"인 충전콘텐츠를 생성한다.
다음, 충전콘텐츠 생성부(5108)는 생성된 충전콘텐츠를 특유하게 나타내는 파일 식별자 "FIDf"와 생성된 충전콘텐츠를 식별하는 파일 식별정보 "ADf"를 생성한다. 다음, 충전콘텐츠 생성부(5108)는 저장된 분할 개수 "j"에 기초하여 생성된 분할콘텐츠를 j개의 유닛 "Uf_1", "Uf_2", "Uf_3", ..., 및 "Uf_j"로 분할하고, 각각 유닛의 하나에 대응하는 유닛 식별자 "UIDf_1", "UIDf_2", "UIDf_3", ..., 및 "UIDf_j"를 생성한다. 여기서, 유닛과 대응 유닛 식별자의 쌍은 이하 "유닛정보"로 참조한다. 또한, 충전콘텐츠 생성부(5108)는 j개의 유닛정보로 구성된 분할 충전콘텐츠를 생성한다. 도 56은 이때 생성된 분할 충전콘텐츠의 구조를 나타낸다. 도 56에 도시한 바와 같이, 분할 충전콘텐츠(5120)는 다수의 유닛정보(5121, 5122, 5123, ..., 5126)으로 구성되고, 각 유닛정보는 유닛 식별자와 유닛을 포함한다. 예를 들어, 유닛정보(5121)는 유닛 식별자 "UIDf_1"(5131)과 유닛 "Uf_1"(5132)을 포함한다. 충전콘텐츠로부터 분할 충전콘텐츠를 생성하는 절차는 파이로부터 분할파일을 생성하는 절차와 같으므로, 여기서는 간단히 설명한다.
여기서, 생성된 파일 식별자 "FIDf"와 분할 충전콘텐츠(5120)의 쌍은 "충전 파일정보"로 지칭한다.
(c) 유닛선택정보 갱신
충전콘텐츠와 분할 충전콘텐츠(5120)를 생성한 때, 충전콘텐츠 생성부(5108)는 생성된 파일 식별자 "FIDf", 생성된 파일 식별정보 "ADf", 및 생성된 유닛의 번호를 나타내는 유닛번호 "Nf"로 구성된 파일정보를 생성하고, 생성된 파일정보를 수신한 유닛선택정보에 부가한다. 도 57은 생성된 파일정보가 부가된 후의 유닛선택정보(5140)를 나타낸다. 유닛선택정보(5140)는 (c+1)개의 파일정보(5141, 5142, 5143, ..., 5146, 5147)로 구성되고, 각 파일정보는 파일 식별자, 파일 식별정보, 및 유닛번호를 포함한다. 각 파일정보(5141, 5142, 5143, ..., 5146)는 콘텐츠에 기초하여 유닛 생성부(5105)에 의해 생성되고, 도 7에 도시한 유닛선택정보(1200)를 구성하는 파일정보(1201, 1202, 1203, ..., 1204)와 같다. 파일정보(5147)는 충전콘텐츠에 기초하여 충전콘텐츠 생성부(5108)에 의해 생성되고, 충전콘텐츠에 대응하는 파일 식별자 "FIDf"(5151), 파일 식별정보 "ADf"(5152), 및 유닛번호 "Nf"(5153)를 포함한다.
다음, 충전콘텐츠 생성부(5108)는, 생성된 충전콘텐츠와 유닛선택정보(5140)를 기록부(5114)에 출력하고, 생성된 충전파일정보를 헤더정보 생성부(5107)에 출력하며, 유닛선택정보(5140)를 서명정보 생성부(5111)에 출력한다.
5.2.4 헤더정보 생성부(5107)
헤더정보 생성부(5107)는 암호화 처리부(5106)로부터 암호화 분할콘텐츠를 수신하고, 동시에 충전콘텐츠 생성부(5108)로부터 파일 식별자 "FIDf"와 분할 충전콘텐츠(5120)를 포함하는 충전파일정보(5156)을 수신한다.
충전파일정보(5156)와 암호화 분할콘텐츠(5160)를 수신한 때, 헤더정보 생성부(5107)는 도 58에 도시한 바와 같이 수신한 정보 세트로부터 헤더정보(5190)를 생성한다. 도 58은 헤더정보 생성부(5107)에 의해 수행되는 헤더정보(5190)의 생성 절차의 개요를 나타낸다. 다음은 도 58을 참조하여 헤더정보(5190)의 생성 절차를 설명한다.
헤더정보 생성부(5107)는 수신한 암호화 분할콘텐츠(5160)로부터 제 1 해시 테이블 "HA1TBL1"(5171), "HA1TBL2"(5172), "HA1TBL3"(5173), ..., 및 "HA1TBLc"(5176)을 생성한다. 여기서, 생성된 제 1 해시테이블 "HA1TBL1"(5171), "HA1TBL2"(5172), "HA1TBL3"(5173), ..., 및 "HA1TBLc"(5176)은 제 1 해시테이블 "HA1TBL1"(1261), "HA1TBL2"(1262), "HA1TBL3"(1263), ..., 및 "HA1TBLc"(1264)와 같다. 따라서, 이들 제 1 해시테이블에 대한 설명은 생략한다.
다음, 헤더정보 생성부(5107)는 수신한 충전파일정보(5156)에 포함된 충전콘텐츠에 기초하여 제 1 해시테이블 "HA1TBLf"(5177)을 생성한다. 생성 절차는 암호화 분할파일로부터 제 1 해시테이블을 생성하는 절차와 같으므로, 설명은 생략한다.
다음, 헤더정보 생성부(5107)는 (c+1)개의 제 1 해시테이블 각각에 기초하여 파일해시를 산출하고, 각각 산출된 (c+1)개의 파일 해시값과 파일 해시값에 대응하는 파일 식별자 중 하나를 포함하는 파일 해시정보를 생성하고, 생성된 (c+1)개의 파이정보로 구성된 제 2 해시테이블 "HA2TBL"(5180)을 추가로 생성한다. 제 2 해시테이블을 생성하는 구체적인 절차는 충전콘텐츠 생성부(5108)로부터 수신한 파일 식별자 "FIDf"(5157)와 분할 충전콘텐츠(5120)를 이용하는 것 이외에는 제 1 실시예에서 제 1 해시테이블(1269)에 대한 생성 절차와 같으므로, 설명은 생략한다.
도 59는 이때 생성된 제 2 해시테이블 "HA2TBL"(5180)의 구조를 나타낸다. 제 2 해시테이블 "HA2TBL"(5180)는 (c+1)개의 파일 해시정보(5181, 5182, 5183, ..., 5186, 5187)로 구성된다. 각 파일 해시정보는 파일 식별자와 파일 해시값을 포함한다. 파일 해시정보(5181 내지 5186)는 암호화 분할콘텐츠(5160)로부터 생성 되며, 제 1 실시예에서 설명한 제 2 해시테이블 "HA2TBL"(1269)를 구성하는 파일 해시정보(1301 내지 1304)와 같다. 파일 해시정보(5187)는 충전파일정보(5156)에 기초하여 생성된다.
헤더정보 생성부(5107)는 생성된 제 2 해시테이블(5180)을 서명정보 생성부(5111)에 출력하고, 또한 생성된 (c+1)개의 제 1 해시테이블과 제 2 해시테이블 "HA2TBL"(5180)을 포함하는 헤더정보(5190)를 기록부(5114)에 출력한다.
5.2.5 서명정보 생성부(5111)
서명정보 생성부(5111)는 충전콘텐츠 생성부(5108)로부터 유닛선택정보(5140)를 수신하고, 헤더정보 생성부(5107)로부터 제 2 해시테이블 "HA2TBL"(5180)을 수신한다.
유닛선택정보(5140)와 제 2 해시테이블 "HA2TBL"(5180)를 수신한 때, 서명정보 생성부(5111)는 서명키 저장부(1112)에 의해 기록된 서명키(1113)를 판독한다.
다음, 서명정보 생성부(5111)는 수신한 제 2 해시테이블 "HA2TBL"(5180)를 구성하는 (c+1)개의 파일 해시값과 수신한 유닛선택정보(5140)를 구성하는 (c+1)개의 파일정보를 조합하여 형성된 조합 결과에 판독한 서명키(1113)을 이용하여 서명생성 알고리즘 S를 적용함으로써 서명정보를 생성한다.
다음, 서명정보 생성부(5111)는 생성된 서명정보를 기록부(5114)에 출력한다.
5.2.6 기록부(5114)
기록부(5114)는 DVD가 로드된다.
기록부(5114)는 충전콘텐츠 생성부(5108)의 지시에 응답하여 로드된 DVD의 기록가능 영역의 저장용량을 측정한다.
기록부(5114)는, 키블록 생성부(1103)로부터 키 블록, 암호화 처리부(5106)로부터 암호화 콘텐츠, 그리고 충전콘텐츠 생성부(5108)로부터 충전콘텐츠 및 유닛선택정보(5140)를 수신한다. 또한, 기록부(5114)는 헤더정보 생성부(5107)로부터 헤더정보(5190)를 수신하고, 서명정보 생성부(5111)로부터 서명정보를 수신한다.
이들 정보 세트를 수신한 때, 기록부(5114)는 수신한 키 블록, 암호화 콘텐츠, 충전콘텐츠, 유닛선택정보(5140), 헤더정보(5190), 및 서명정보를 DVD에 기록한다.
5.3 DVD(5500)
도 60은 제 5 실시예의 DVD에 저장된 정보를 나타낸다. 도 60에 도시한 바와 같이, DVD(5500)는 키 블록(5510), 유닛선택정보(5530), 헤더정보(5550), 암호화 콘텐츠(5580), 및 충전콘텐츠(5590)를 저장한다.
이들 정보 세트는 분배장치(5100)에 의해 기록되어 있다. 각 정보 세트의 구조는 상기한 바와 같으며, 따라서 설명은 생략한다.
5.4 실행장치(5600)
도 61에 도시한 바와 같이, 실행장치(5600)는 취득부(1601), 콘텐츠키 취득부(1602), 장치키 저장부(1604), 실행부(5606), 서명정보 검증부(5611), 및 검증키 저장부(1612)로 구성된다.
다음은 실행장치(5600)를 구성하는 각 구성요소를 설명한다. 취득부(1601), 콘텐츠키 취득부(1602), 및 검증키 저장부(1612)는 제 1 실시예와 같으므로 이들 구성요소에 대한 설명은 생략한다.
5.4.1 서명정보 검증부(5611)
서명정보 검증부(5611)는 취득부(1601)로부터 유닛선택정보(5530)과 서명정보(5570)를 수신한다.
이들 정보 세트를 수신한 때, 서명정보 검증부(5611)는 DVD(5500)에 저장된 헤더정보(5550), 암호화 콘텐츠(5580), 및 충전콘텐츠(5590) 뿐만 아니라 수신한 유닛선택정보(5530)를 이용하여 수신한 서명정보(5570)를 검증한다. 검증을 위한 구체적인 절차는, 암호화 콘텐츠(5580)에 더하여 충전콘텐츠(5590)를 이용하는 것 이외에는 제 1 실시예의 실행장치(1600)를 구성하는 서명정보 검증부(1611)가 수행한 서명정보의 검증과 같기 때문에 생략한다.
5.4.2. 실행부(5606)
실행부(5606)는 56-비트 길이의 재생 실행불가 정보 "DAMY"를 미리 저장한다.
실행부(5606)는 콘텐츠키 취득부(1602)로부터 콘텐츠 키 "CK"를 수신한다. 또한, 실행부(5606)는 서명정보 검증부(5611)로부터 재생금지정보를 수신할 수 있다.
콘텐츠 키 "CK"를 수신한 때, 실행부(5606)는 암호화 콘텐츠(5580) 또는 충전콘텐츠(5590)를 구성하는 암호화 파일 "ECNT1", "ECNT2", "ECNT3", ..., "ECNTc"를 취득부(1601)를 통하여 하나씩 판독한다.
실행부(5606)는 판독한 파일의 최초 56비트 또는 판독한 충전콘텐츠의 최초 56비트를 저장된 재생 실행불가 정보 "DAMY"와 비교한다. 이들 둘이 서로 일치하지 않는 경우, 판독 정보는 암호화 파일로 재생가능하며, 따라서 실행부(5606)는 수신한 콘텐츠 키 "CK"를 이용하여 각 유닛에 대해 판독한 암호화 파일을 해독하여 파일을 생성한다. 다음, 실행부(5606)는 생성된 파일의 압축을 풀어 비디오 및 오디오 데이터를 생성하고, 생성된 비디오 및 오디오 데이터로부터 비디오 및 오디오 신호를 생성하며, 생성된 비디오 및 오디오 신호를 모니터에 출력하여 콘텐츠를 재생한다.
최초 56비트와 저장된 재생 실행불가 정보 "DAMY"가 서로 일치하는 경우, 판독 정보는 충전콘텐츠이고 재생될 수 없으며, 따라서 실행부(5606)는 상기 해독, 압축 해제 및 재생을 중단하고, 다음 암호화 파일의 처리로 이동한다.
모든 암호화 파일과 충전 콘텐츠의 판독을 완료할 때까지, 실행부(5606)는 독출, 재생 실행불가 정보 "DAMY"와의 비교, 해독, 압축 해제, 및 재생을 유사한 절차로 반복한다.
상기 반복 중 서명정보 검증부(5611)로부터 재생금지정보를 수신하면, 실행부(5606)는 반복을 중단한다.
5.5 동작
다음은 제 5 실시예의 분배장치(5100)와 실행장치(5600)의 동작을 설명한다.
5.5.1 분배장치(5100)의 동작
분배장치(5100)의 동작을 도 62와 63의 플로차트를 참조하여 설명한다.
분배장치(5100)의 입력부(5101)는 콘텐츠의 입력을 수신하고(단계 S5011), 수신한 콘텐츠를 유닛 생성부(5105)에 출력하고, 콘텐츠 키를 생성하도록 콘텐츠키 생성부(1102)에 지시한다.
콘텐츠키 생성부(1102)는 입력부(1101)의 지시에 따라 콘텐츠 키를 생성하고(단계 S5012), 생성된 콘텐츠 키를 키블록 생성부(1103)와 암호화 처리부(5106)에 출력한다.
키블록 생성부(1103)는 콘텐츠 키를 수신한다. 콘텐츠 키를 수신한 때, 키블록 생성부(1103)는 실행장치정보 저장부(1104)로부터 장치식별 테이블을 판독하고(단계 S5012), 수신한 콘텐츠 키와 판독한 장치식별 테이블에 기초하여 키 블록을 생성한다(단계 S5016). 다음, 키블록 생성부(1103) 는 생성된 키 블록을 기록부(5114)에 출력한다.
콘텐츠를 수신한 때, 유닛 생성부(5105)는 수신한 콘텐츠를 구성하는 각 파일을 유닛으로 분할하여 분할콘텐츠를 생성한다(단계 S5017). 분할콘텐츠를 생성한 때, 각각 분할 파일에 대응하는 파일정보로 구성된 유닛선택정보를 생성하고(단계 S5018), 생성된 유닛선택정보를 충전콘텐츠 생성부(5108)에 출력하고, 동시에 분할콘텐츠를 암호화 처리부(5106)에 출력한다.
콘텐츠 키와 분할콘텐츠를 수신한 때, 암호화 처리부(5106)는 수신한 분할콘텐츠에 포함된 콘텐츠의 각 유닛을 수신한 콘텐츠 키를 이용하여 암호화함으로써 암호화 분할콘텐츠를 생성한다(단계 S5019). 암호화 처리부(5106)는 생성된 분할콘텐츠에 포함된 암호화 유닛을 추출하여 암호화 콘텐츠를 생성하고(단계 S5021), 생 성된 암호화 콘텐츠를 기록부(5114)와 충전콘텐츠 생성부(5108)에 출력하고 생성된 암호화 분할콘텐츠를 헤더정보 생성부(5107)에 출력한다.
유닛선택정보와 암호화 콘텐츠를 수신한 때, 충전콘텐츠 생성부(5108)는 기록부(5114)를 통하여 DVD(5500)의 최대저장용량을 취득하고(단계 S5022), 수신한 암호화 콘텐츠의 데이터 사이즈를 측정한다(단계 S5023).
다음, 충전콘텐츠 생성부(5108)는 헤더정보의 데이터 사이즈와 서명정보의 데이터 사이즈를 수신한 유닛선택정보에 기초하여 산출하고(단계 S5026), 취득한 최대저장용량, 헤더정보의 데이터 사이즈와 서명정보 등에 기초하여 충전용량을 추가로 산출한다(단계 S5028).
충전콘텐츠 생성부(5108)는 생성된 충전콘텐츠를 저장된 분할 개수 "j"에 기초하여 i개의 유닛으로 분할하여 분할 충전콘텐츠를 생성한다(단계 S5032).
다음, 충전콘텐츠 생성부(5108)는 생성된 파일 식별자와 식별정보, 생성된 유닛의 개수를 나타내는 유닛번호를 포함하는 파일정보를 생성하고, 생성된 파일정보를 수신한 유닛선택정보에 부가한다(단계 S5033). 충전콘텐츠 생성부(5108)는, 생성된 충전콘텐츠와 유닛선택정보(5140)을 기록부(5114)에, 생성된 파일 식별자와 분할 충전콘텐츠(5120)로 구성된 충전파일정보(5156)를 헤더정보 생성부(5107)에 그리고 유닛선택정보(5140)를 서명정보 생성부(5111)에 출력한다.
암호화 분할콘텐츠와 충전파일정보(5156)를 수신한 때, 헤더정보 생성부(5107)는 수신한 암호화 분할콘텐츠에 포함된 c개의 암호화 분할파일로부터 c개의 제 1 해시테이블을 생성한다(단계 S5034). 이어, 헤더정보 생성부(5107)는 수신 한 충전파일정보(5156)에 포함된 분할 충전콘텐츠로부터 제 1 해시테이블을 생성한다(단계 S5036).
헤더정보 생성부(5107)는 생성된 (c+1)개의 제 1 해시테이블에 기초하여 제 2 해시테이블을 생성하고(단계 S5037), (c+1)개의 제 1 해시테이블과 제 2 해시테이블을 포함하는 헤더정보를 생성하며(단계 S5039), 생성된 헤더정보를 기록부(5114)에 출력하고 생성된 제 2 해시테이블을 서명정보 생성부(5111)에 출력한다.
유닛선택정보(5140)와 제 2 해시테이블을 수신한 때, 서명정보 생성부(5111)는 수신한 유닛선택정보와 제 2 해시테이블에 서명생성 알고리즘을 적용하여 서명정보를 생성하고(단계 S5041), 생성된 서명정보를 기록부(5114)에 출력한다.
키 블록, 암호화 콘텐츠, 충전콘텐츠, 유닛선택정보, 헤더정보, 및 서명정보를 수신한 때, 기록부(5114)는 수신한 키 블록, 암호화 콘텐츠, 충전콘텐츠, 유닛선택정보, 헤더정보, 및 서명정보를 DVD(5500)에 기록한다(단계 S5042).
5.5.2 실행장치(5600)의 동작
실행장치(5600)의 동작을 도 64와 65의 플로차트를 참조하여 설명한다.
DVD(5500)가 로드된 때, 취득부(1601)는 키 블록(5510), 유닛선택정보(5530), 및 서명정보(5570)를 DVD(5500)로부터 판독하고, 키 블록(5510)을 콘텐츠키 취득부(1602)에 출력하고, 유닛선택정보(5530)와 서명정보(5570)를 서명정보 검증부(1611)에 출력한다(단계 S5061).
서명정보 검증부(5611)는 유닛선택정보(5530)와 서명정보(5570)를 수신하고, 암호화 콘텐츠(5580)에 포함된 다수의 암호화 유닛 중 i개 그리고 충전콘텐츠(5590)에 포함된 j개의 유닛을 난수와 유닛선택정보(5530)를 이용하여 선택하고, 선택된 i개와 헤더정보를 이용하여 i개의 대체된 제 1 해시테이블을 생성한다(단계 S5063).
서명정보 검증부(5611)는 생성된 i개의 대체된 해시테이블로부터 대체 파일 해시값을 산출한다(단계 S5064).
다음, 서명정보 검증부(5611)는 DVD(5500)로부터 제 2 해시테이블을 판독하고(단계 S5066), 생성된 i개의 대체 파일 해시값에 대응하는 파일 해시값을 대체 해시값으로 대체함으로써 대체된 제 2 해시테이블을 생성한다(단계 S5068). 서명정보 검증부(5611)는 생성된 대체된 제 1 해시테이블, 수신한 유닛선택정보(5530), 및 검증키 저장부(1612)에 저장된 검증키(1613)를 이용하여 서명정보(5570)를 검증한다(단계 S5069). 서명정보(5570)의 검증이 성공적이지 않으면(단계 S5071: NO), 서명정보 검증부(5611)는 재생금지정보를 실행부(5606)에 출력한다(단계 S5073).
서명정보(5570)의 검증이 성공적이면(단계 S5071: YES), 서명정보 검증부(5611)는 검증을 종료한다.
콘텐츠키 취득부(1602)는 키 블록(5510)을 수신하고, 장치키 저장부(1604)로부터 장치 식졀자와 장치키를 판독한다(단계 S5074). 콘텐츠키 취득부(1602)는 판독한 장치 식별자, 장치키 및 키 블록(5510)으로부터 콘텐츠 키 "CK"를 생성하고, 생성된 콘텐츠 키 "CK"를 실행부(5606)에 출력한다(단계 S5076).
실행부(5606)는 콘텐츠키 취득부(1602)로부터 콘텐츠 키를 수신한다. 여기 서, 서명정보 검증부(5611)로부터 재생금지정보를 수신하면(단계 S5077: YES), 실행부(5606)는 DVD(5500)에 저장된 콘텐츠의 재생 실행불가능을 사용자에게 통보하고(단계 S5079), 이어지는 재생을 중단한다.
재생금지정보를 수신하지 않으면(단계 S5077: NO), 실행부(5606)는 암호화 콘텐츠와 충전콘텐츠를 구성하는 c개의 암호화 파일을 판독한다(단계 S5081). 실행부(5606)는 판독한 암호화 파일 또는 충전콘텐츠의 최초 56비트를 미리 저장된 재생 실행불가 정보와 비교한다(단계 S5082). 이들 둘이 서로 일치하면(단계 S5084: YES), 실행부(5606)는 단계 S5077로 돌아간다.
이들 둘이 일치하지 않는 경우(단계 S5084: NO), 판독한 파일은 암호화 파일이고 재생가능하다. 따라서, 실행부(5606)는 암호화 파일을 수신한 콘텐츠 키를 이용하여 해독함으로써 파일을 생성하고(단계 S5086), 생성된 파일의 압축을 풀고(단계 S5087), 모니터가 압축이 풀린 파일을 재생하도록 한다(단계 S5089). 암호화 콘텐츠와 충전콘텐츠를 구성하는 모든 암호화 파일을 판독하였거나 사용자에 의해 재생을 종료하도록 지시를 받은 경우(단계 S5091: YES), 실행부(5606)는 재생을 종료한다. 암호화 콘텐츠와 충전콘텐츠를 구성하는 모든 암호화 파일을 판독하지 못했고, 실행부(5606)가 사용자로부터 재생을 종료하라는 지시를 수신하지 않았으면(단계 S5091: NO), 실행부(5606)는 단계 S5077로 복귀하여 단계 S5077 내지 S5091의 처리를 반복한다.
5.6 요약 및 유익한 효과
상기한 바와 같이, 이 실시예에서, DVD(5500)는 암호화 콘텐츠를 포함하는 다양한 정보에 더하여 DVD(5500)에 기록가능 저장영역을 남기지않도록 적절한 데이터 사이즈를 갖는 충전콘텐츠를 저장한다. 또한, 헤더정보와 서명정보가 암호화 콘텐츠뿐 아니라 충전콘텐츠에 기초하여 생성된다.
실행장치(5600)를 구성하는 실행부(5606)는 DVD(5500)에 기록된 파일을 판독하고, 판독한 각 파일의 최초 56비트와 미리 저장된 재생 실행불가 정보를 비교한다. 이들 둘이 서로 일치하면, 실행부(5606)는 판독한 파일이 충전콘텐츠인 것으로 판정하고, 파일의 재생을 회피한다.
DVD(5500)가 이러한 충전콘텐츠를 저장하지 않았을 때, 아래에 설명하는 사기 행위를 포함하는 두 경우를 추정할 수 있다.
도 65는 비인증 콘텐츠를 포함하는 파일을 합법적 권리 보유자가 생성한 DVD(5500a)에 부가하여 생성된 DVD(5500b)의 구조를 보여준다.
DVD(5500a)는 영역(5703)에 헤더정보, 유닛선택정보, 서명정보를 저장하고, 영역(5704, 5705, ..., 5707)에 암호화 콘텐츠를 구성하는 개별 암호화 파일을 저장한다. 이들 정보 세트에 더하여, DVD(5500a)는 또한 영역(5701)과 영역(5702)에 각각 파일 테이블과 재생순서파일을 저장한다.
영역(5701)에 저장된 파일 테이블은, 각 파일의 파일 식별자, 개시 어드레스, 및 섹터번호를 연관시키는, DVD(5500)에 저장된 모든 파일에 대한 파일 식별자, 파일의 개시 오드레스, 및 각 파일이 DVD에 점유하는 섹터번호를 포함한다. 예를 들어, 파일 식별자 "FID1"을 갖는 파일은 어드레스 "0XAA1"에서 시작하여 70섹터에 저장된다.
영역(5702)에 저장된 재생순서파일은 DVD에 저장된 파일의 재생순서를 보여준다. 일 예로, 파일 식별자 "FIF1"을 갖는 파일에서 파일 식별자 "FIDc"를 갖는 파일의 순서로 파일들이 재생될 것이다.
또한, DVD(5500a)의 영역(5711)에는 아무것도 저장되지 않는다.
이 상태에서, 권한없는 제3자가 비인증 콘텐츠를 포함하는 파일을 DVD(5500a)의 영역(5711)에 기록하였고, 파일 테이블과 재생순서파일을 위조하여 DVD(5500a)를 생성하였다고 가정한다.
DVD(5500b)의 영역(5701)에, 비인증 파일에 대응하는 파일 식별자 "FIDx", 비인증 파일의 개시 어드레스 "0XAAx", 및 섹터번호 "200"이 부가되었다. 또한, 영역(5702)에 저장된 재생순서파일은, 재생이 파일 식별자 "FIDx"를 갖는 파일로 시작하도록 위조되었다.
또한, 도 66에 도시한 DVD(5500c)가 DVD(5500a)에 저장된 유효 파일에 비인증 콘텐츠를 부가하여 생성된 경우도 고려된다.
DVD(5500c)는 영역(5707)에 유효하게 기록된 파일 직후인 영역(5711)에 비인증 콘텐츠를 저장한다. 영역(5707)에 저장된 파일에 대응하는 섹터번호는, 비인증 콘텐츠가 저장된 섹터번호에 파일이 최초 저장된 섹터번호를 더하여 취득한 "320"으로 위조되어 있다. 파일 식별자 "FIDc"를 갖는 파일, 즉 부가된 비인증 콘텐츠의 51번째 섹터에서 재생이 시작하도록 재생순서파일이 변경되어 있다.
이와 같이, 헤더정보, 유닛선택정보, 서명정보, 및 암호화 콘텐츠는 전혀 위조되지 않았기 때문에, 비인증 위조가 실행된 때, 실행장치는 비인증 파일을 판독 하고 서명정보의 검증이 정상적으로 완료되면 순서파일에 지시한 순서에 따라 재생을 시작한다.
이 실시예에서, 기록가능 저장영역은 충전콘텐츠가 존재하기 때문에 DVD(5500)에 남아 있지 않다. 또한, 충전콘텐츠는 서명정보의 생성에 사용되기도 한다. 따라서, 충전콘텐츠가 비인증 파일로 대체되면, 서명정보의 검증은 실행장치(5600)에서 성공적이지 못할 것이고 따라서 재생은 중단될 것이다.
6. 제 6 실시예
본 발명의 제 6 실시예에 따른 비인증 콘텐츠 검출시스템을 이하 설명한다.
6.1 비인증 콘텐츠 검출시스템
제 6 실시예의 비인증 콘텐츠 검출시스템은, 제 1 실시예의 비인증 콘텐츠 검출시스템과 같이, 분배장치, 실행장치, 및 모니터로 구성된다.
분배장치는, 제 1 실시예에서 기술한 키 블록, 유닛선택정보, 암호화 콘텐츠, 헤더정보, 및 암호화 콘텐츠에 더하여, 분배장치가 유효하게 기록한 정보가 저장된 DVD 상의 저장영역을 나타내는 영역정보를 생성하고, 생성된 영역정보를 DVD에 기록한다.
실행장치는 DVD로부터 영역정보를 판독하고, 판독한 영역정보가 나타내는 저장영역에 저장된 정보만을 판독한다.
6.2 분배장치(6100)
도 67은 제 6 실시예의 비인증 콘텐츠 검출시스템을 구성하는 분배장치의 구조를 나타낸다. 도 67에 도시한 바와 같이, 분배장치(6100)는 입력부(1101), 콘텐 츠키 생성부(1102), 키블록 생성부(6103), 실행장치정보 저장부(1104), 유닛 생성부(6105), 암호화 처리부(6106), 헤더정보 생성부(6107), 할당 생성부(6108), 영역정보 생성부(6109), 서명정보 생성부(6111), 서명키 저장부(1112), 및 기록부(6114)로 구성된다.
분배장치(6100)를 구성하는 각 구성요소를 설명한다. 입력부(1101), 콘텐츠키 생성부(1102), 실행장치정보 저장부(1104), 및 서명키 저장부(1112)는 제 1 실시예의 분배장치(1100)와 같기 때문에, 이들 구성요소에 대한 설명은 생략한다.
여기서, 키 블록, 유닛선택정보, 암호화 콘텐츠 및 헤더정보를 출력하는 기록부 대신에, 키블록 생성부(6103), 유닛 생성부(6105), 암호화 처리부(6106), 및 헤더정보 생성부(6107)는 각각 자신이 생성한 정보를 할당 생성부(6108)에 출력한다. 이와 달리, 키블록 생성부(6103), 유닛 생성부(6105), 암호화 처리부(6106), 및 헤더정보 생성부(6107)는 제 1 실시예의 키블록 생성부(1103), 유닛 생성부(1105), 암호화 처리부(1106), 및 헤더정보 생성부(1107)와 각각 같으며, 따라서 이들 구성요소에 대한 설명은 생략한다.
6.2.1 할당 생성부(6108)
할당 생성부(6108)는 서명정보 생성부(6111)가 생성한 서명정보의 최대 데이터 사이즈를 미리 저장한다. 또한, 할당 생성부(6108)는 영역정보 생성부(6109)가 생성한 영역정보의 데이터 사이즈를 저장한다.
할당 생성부(6108)는, 키블록 생성부(6103)로부터 키 블록을, 유닛 생성부(6105)로부터 유닛선택정보를, 암호화 처리부(6106)로부터 암호화 콘텐츠를, 그 리고 헤더정보 생성부(6107)로부터 헤더정보를 수신한다.
이들 정보 세트를 수신한 때, 할당 생성부(6108)는 도 68에 도시한 바와 같이 기입(writing-in) 할당정보(6120)를 생성한다. 기입할당정보(6120)는 수신한 정보 세트를 DVD에서와 같은 구성으로 배열하고 배열된 정보 세트를 메모리에 기입함으로써 생성된다. 기입할당정보(6120)를 생성하는 절차를 도 68을 참조하여 이하 설명한다.
할당 생성부(6108)는 메모리의 영역(6121)에 키 블록을, 영역(6122)에 유닛정보를, 그리고 영역(6123)에 헤더정보를 기입한다.
다음, 할당 생성부(6108)는 저장된 영역정보와 서명정보의 최대 데이터 사이즈에 각각 대응하는 영역(6124)(6125)을 취득한다. 이어, 할당 생성부(6108)는 영역(6125)에 이어지는 영역(6126)에 암호화 콘텐츠를 기입한다.
할당 생성부(6108)는 생성된 기입할당정보(6120)를 영역정보 생성부(6109)와 기록부(6114)에 출력한다.
도 68에 나타낸 정보 세트의 할당 순서는 단순히 일 예이며, 본 발명은 이것에 한정되지 않는다.
여기서, 할당 생성부(6108)는 서명정보의 최대 데이터 사이즈를 저장한다. 그러나, 할당 생성부(6108)는, 예를 들어, 제 5 실시예의 충전콘텐츠 생성부(5108)와 같은 방법으로 서명정보의 데이터 사이즈를 산출할 수 있다.
6.2.2 영역정보 생성부(6109)
영역정보 생성부(6109)는 할당 생성부(6108)로부터 기입할당정보(6120)를 수 신한다. 기입할당정보(6120)를 수신한 때, 영역정보 생성부(6109)는 수신한 기입할당정보(6120)로부터 영역정보를 생성한다. 영역정보는 분배장치(6100)가 기입한 유효 정보가 저장되는 DVD 상의 영역을 나타내는 정보이다. 영역정보는, 예를 들어, DVD 상에 기입할당정보(6120)를 기입하기 위한 개시 위치(이하, 개시 어드레스)와 종료 위치(종료 어드레스)의 어드레스 쌍이다.
영역정보는 이 예에 한정되지 않고, 그 정보가 유효 정보가 저장된 영역을 식별하는 한, 유효 정보가 저장된 개시 어드레스 및 섹터번호의 쌍과 같이 어떠한 정보도 적용할 수 있다.
영역정보 생성부(6109)는 생성된 영역정보를 서명정보 생성부(6111)와 기록부(6114)에 출력한다.
6.2.3 서명정보 생성부(6111)
서명정보 생성부(6111)는, 유닛 생성부(6105)로부터 유닛선택정보를, 헤더정보 생성부(6107)로부터 헤더정보를, 그리고 영역정보 생성부(6109)로부터 영역정보를 수신한다.
이들 정보 세트를 수신한 때, 서명정보 생성부(6111)는 서명키 저장부(1112)로부터 서명키(1113)를 판독한다.
다음, 서명정보 생성부(6111)는, 수신한 제 2 해시테이블에 포함된 c개의 파일 해시값, 유닛선택정보를 구성하는 c개의 파일정보, 및 수신한 영역정보를 조합하여 형성된 조합 결과에 판독한 서명키(1113)를 이용하여 서명생성 알고리즘 S을 적용하여 서명정보를 생성한다.
다음, 서명정보 생성부(6111)는 생성된 서명정보를 기록부(6114)에 출력한다.
6.2.4 기록부(6114)
기록부(6114)는 DVD가 로드된다.
기록부(6114)는, 할당 생성부(6108)로부터 기입할당정보(6120)를, 영역정보 생성부(6109)로부터 영역정보를, 그리고 서명정보 생성부(6111)로부터 서명정보를 각각 수신한다.
이들 정보 세트를 수신한 때, 기록부(6114)는 기입할당정보(6120)의 영역(6124)에 수신한 영역정보를 삽입하고, 서명정보를 영역(6125)에 삽입한다.
영역정보와 서명정보를 기입할당정보(6120)에 삽입한 때, 기록부(6114)는 기입할당정보(6120)를 DVD에 기입한다.
6.3 DVD(6500)
도 69는 제 6 실시예의 DVD에 저장된 정보를 보여준다. 도 69에 도시한 바와 같이, DVD(6500)는 키 블록(6510), 유닛선택정보(6530), 헤더정보(6550), 영역정보(6560), 서명정보(6570), 및 암호화 콘텐츠(6580)를 저장한다. 이들은 분배장치(6100)에 의해 기입되었고, 따라서 설명은 생략한다.
6.4 실행장치(6600)
도 70은 제 6 실시예의 실행장치의 구조를 나타낸다. 도 70에 나타낸 바와 같이, 실행장치(6600)는 구동부(6620)와 콘텐츠 실행부(6625)로 구성된다.
구동부(6620)는 취득부(6601), 영역저장부(6603), 암호화 통신부(6604) 및 암호화키 저장부(6605)로 구성된다.
콘텐츠 실행부(6625)는 콘텐츠키 취득부(1602), 장치키 저장부(1604), 해독 통신부(6607), 해독키 저장부(6608), 서명정보 검증부(6611), 검증키 저장부(1612), 및 실행부(6606)로 구성된다.
실행장치(6600)를 구성하는 각 구성요소를 이하 설명한다. 콘텐츠키 취득부(1602), 장치키 저장부(1604), 및 검증키 저장부(1612)는 제 1 실시예의 실행장치(1600)와 같으므로, 이들 구성요소에 대한 설명은 생략한다.
6.4.1 취득부(6601)
취득부(6601)는 DVD(6500)가 로드된다. DVD(6500)가 로드된 때, 취득부(6601)는 먼저 영역정보(6560)를 판독하고, 판독한 영역정보(6560)를 영역저장부(6603)에 기입하며, 판독한 영역정보(6560)를 암호화 통신부(6604)에 출력한다.
다음, 취득부(6601)는 DVD(6500)로부터 키 블록(6510), 유닛선택정보(6530), 및 서명정보(6570)를 판독하고, 판독한 키 블록(6510)을 콘텐츠키 취득부(1602)에 출력하고, 유닛선택정보(6530)와 서명정보(6570)를 서명정보 검증부(6611)에 출력한다.
또한, 취득부(6601)는 서명정보 검증부(6611) 및 실행부(6606)로부터 다양한 정보 세트의 판독 요청을 수신한다. 판독 요청을 수신한 때, 서명정보 검증부(6611)는 영역저장부(6603)로부터 영역정보를 판독한다. 요청된 정보 세트가 영역정보가 지시하는 영역에 저장되어 있을 때, 취득부(6601)는 DVD(6500)로부터 요청 정보를 판독하고, 판독한 정보를 요청 소스, 즉 서명정보 검증부(6611)와 실행 부(6606)에 출력한다.
요청된 정보 세트가 판독한 영역정보가 지시하는 영역에 저장되어 있지 않을 때, 취득부(6601)는 요청된 정보 세트를 판독할 수 없다는 에러 통지신호를 출력한다.
6.4.2 영역저장부(6603)
영역저장부(6603)은, 예를 들어, RAM으로 구성되며, 취득부(6601)가 기록한 영역정보를 저장한다.
6.4.3 암호화 통신부(6604) 및 암호화키 저장부(6605)
암호화키 저장부(6605)는, 에를 들어, ROM으로 구성되고, 56-비트 길이의 암호화키를 저장한다.
암호화 통신부(6604)는 취득부(6601)로부터 영역정보(6560)를 수신한다. 영역정보(6560)를 수신한 때, 암호화 통신부(6604)는 암호화키 저장부(6605)로부터 암호화키를 판독하고, 판독한 암호화키에 암호화 알고리즘 E2를 적용하여 암호화 영역정보를 생성한다. 여기서, 암호화 알고리즘 E2에 대해, 예를 들어, DES(Data Encryption Standard)가 사용된다.
다음, 암호화 통신부(6604)는 생성된 암호화 영역정보를 해독 통신부(6607)에 출력한다.
6.4.4 해독 통신부(6607) 및 해독키 저장부(6608)
해독키 저장부(6608)는, 예를 들어, ROM으로 구성되고, 56-비트 길이의 해독키를 저장한다. 여기서, 해독키는 암호화키 저장부(6605)에 의해 저장된 암호화키 와 같다.
해독 통신부(6607)는 암호화 통신부(6604)로부터 암호화 영역정보를 수신한다. 암호화 영역정보를 수신한 때, 해독 통신부(6607)는 해독키 저장부(6608)로부터 해독키를 판독하고, 판독한 해독키를 이용하여 수신한 암호화 영역정보에 해독 알고리즘 D2를 적용하여 영역정보를 생성한다. 여기서, 해독 알고리즘 D2는 암호화 알고리즘 E2를 사용하여 생성된 암호화 텍스트를 해독하는데 사용된 알고리즘이다.
다음, 해독 통신부(6607)는 생성된 영역정보를 서명정보 검증부(6611)에 출력한다.
상기의 설명은, 암호화키와 해독키가 같고 해독 통신부(6607)는 대칭키 암호체계를 사용한다는 가정에서 주어진다. 그러나, 본 발명은 이것에 한정되지 않고, 공개키 암호체계가 대신 사용될 수 있다. 선택적으로, 공개키 암호체계와 대칭키 암호체계는 함께 조합되어 통신이 실행될 때마다 다른 키를 생성할 수 있으며, 암호 통신은 생성된 키를 이용하여 수행될 수 있다.
또한, 여기서 영역정보만이 암호화되어 콘텐츠 실행부(6625)에 출력되지만, 콘텐츠 실행부(6625)와 구동부(6620) 간에 송수신되는 모든 정보가 암호화될 수 있다.
6.4.5 서명정보 검증부(6611)
서명정보 검증부(6611)는, 취득부(6601)로부터 유닛선택정보(6530)와 서명정보(6570)를, 그리고 해독 통신부(6607)로부터 영역정보를 수신한다.
유닛선택정보(6530)와 서명정보(6570)를 수신한 때, 서명정보 검증부(6611) 는 수신한 유닛선택정보(6530), DVD(6500)에 저장된 암호화 콘텐츠(6580) 및 헤더정보(6550)에 기초하여 대체된 제 2 해시테이블을 생성한다. 대체된 제 2 해시테이블을 생성하는 절차는 제 1 실시예의 서명정보 검증부(1611)에 의해 수행된 대체된 제 2 해시테이블의 생성 절차와 같으므로, 설명은 생략한다.
다음, 서명정보 검증부(6611)는 검증키 저장부(1612)로부터 검증키(1613)를 판독한다. 이어, 서명정보 검증부(6611)는, 생성된 대체된 제 2 해시테이블의 포함된 모든 파일 해시값과 대체 파일 해시값, 수신한 유닛선택정보(6530)에 포함된 모든 파일정보 및 영역정보를 조합하여 형성된 조합 결과에 판독한 검증키(1613)를 이용하여 서명검증 알고리즘 V를 적용하여 서명검증 정보를 생성한다. 서명정보 검증부(6611)는 생성된 서명검증 정보와 수신한 서명정보(6570)를 비교한다.
이들 둘이 서로 일치하지 않을 때, 서명정보 검증부(6611)는 서명정보의 검증이 성공적이지 않다고 판정하고, 재생금지정보를 실행부(6606)에 출력한다.
이들 둘이 일치할 때, 서명정보 검증부(6611)는 수신한 서명정보(6570)의 검증이 성공적인 것으로 판정하여, 검증 절차를 종료한다.
상기 절차 중에서, 서명정보 검증부(6611)는 취득부(6601)에 지시하여 암호화 콘텐츠 및 헤더정보의 일부를 판독한다. 그러나, 이때, 서명정보 검증부(6611)는 독출이 불가능한 것을 나타내는 에러통지신호를 수신할 수 있다.
에러통지신호를 수신한 때, 서명정보 검증부(6611)는 서명정보의 검증 절차를 중단하고 재생금지정보를 실행부(6606)에 출력한다.
6.4.6 실행부(6606)
실행부(6606)는 콘텐츠키 취득부(1602)로부터 콘텐츠 키를 수신하고, 재 1 실시예의 실행장치(1600)를 구성하는 실행부(1606)의 경우와 같이, 암호화 파일의 판독, 해독, 및 재생을 반복한다.
반복 중, 실행부(6606)는 서명정보 검증부(6611)로부터 재생금지정보를 수신할 수 있다.
또한, 상기 반복에서, 실행부(6606)는 취득부(6601)에 암호화 콘텐츠(6580)를 구성하는 암호화 파일을 판독하도록 요청한다. 그러나, 이때 실행부(6606)는 취득부(6601)로부터 판독이 불가능한 것을 나타내는 에러통지신호를 수신할 수 있다.
재생금지정보나 에러통지신호를 수신한 때, 실행부(6606)는 재생 절차를 중단하고, 로드된 DVD의 재생 실행불가를 사용자에게 통보한다.
6.5 요약 및 유익한 효과
상기한 바와 같이, 본 발명의 비인증 콘텐츠 검출시스템을 구성하는 분배장치(6100)는 분배장치(6100)에 의해 유효하게 기입된 정보가 어디에 저장되어 있는 영역을 나타내는 영역정보를 생성하고, 생성된 영역정보를 DVD에 기입한다. 또한, 분배장치(6100)는 제 2 해시테이블로부터의 서명정보, 유닛선택정보, 및 영역정보를 생성하고, 이들을 DVD에 기입한다.
DVD(6500)가 로드된 때, 실행장치(6600)의 취득부(6601)는 먼저 DVD(6500)로부터 영역정보를 판독하고, 이어 판독한 영역정보가 지시하는 영역의 정보만을 판독하고 다른 영역에 기록된 정보는 판독하지 않는다.
이에 의하면, 제 5 실시예에서 설명한 바와 같이, DVD(6500)의 빈 공간에 비 인증 콘텐츠를 기입하는 것을 포함하는 사기 행위가 행해져도, 비인증 콘텐츠는 실행장치(6600)에서 재생될 수 없다.
또한, DVD(6500)에 저장된 서명정보는 영역정보를 이용하여 생성되고, 서명정보를 검증하기 위하여 실행장치(6600)의 서명정보 검증부(6611)는 DVD(6500)로부터 판독한 영역정보를 이용한다. 따라서, 권한없는 제 3자가 비인증 콘텐츠의 삽입과 함께 영역정보를 위조하더라도, 서명정보 검증부(6611)가 수행하는 서명정보의 검증은 성공적이지 않으며 비인증 콘텐츠는 재생되지 않을 것이다.
DVD에 빈 공간이 남아 있지 않을 때, 유효 DVD에 저장된 모든 데이터를 유효 DVD보다 더 큰 저장용량을 갖는 다른 매체에 복사하고 그 매체의 빈 공간에 비인증 콘텐츠를 부가하는 것과 같은 사기 행위가 행해질 수 있다. 이 경우에서도, 이 실시예의 비인증 콘텐츠 검출시스템의 실행장치(6600)는 영역정보가 지시하는 영역 이외의 저장영역의 정보는 판독하지 않는다. 따라서, 이 실시예는 그러한 사기 행위를 방지할 수 있다.
6.6 제 6 실시예의 변형
제 6 실시예에서, 분배장치(6100)가 생성한 영역정보는 분배장치에 의해 유효하게 기입된 정보가 저장된 영역을 나타내는 정보이다. 선택적으로, 영역정보는 분배장치(6100)가 유효하게 기입한 정보의 총 데이터 사이즈일 수 있다.
이 경우, 실행장치(6600)의 취득부(6601)는 먼저 DVD(6500)로부터 총 데이터 사이즈를 판독하고, 이어 DVD(6500)에 저장된 정보의 총 데이터 사이즈를 측정한다. 측정된 데이터 사이즈가 판독한 데이터 사이즈보다 클 때, 취득부(6601)는 DVD(6500)로부터 데이터 판독을 중단하고 에러통지신호를 실행부(6606)에 출력한다.
7. 다른 변형예
본 발명을 상기한 실시예에 기초하여 기술하였지만, 본 발명은 이러한 실시예들에 한정되지 않는 것은 당연하다. 본 발명은 또한 다음의 경우를 포함한다.
[1] 상기 제 1, 제 5 및 제 6 실시예에서, 분배장치는 암호화 유닛을 해시함수에 대입하여 유닛 해시값을 산출하고, 산출한 유닛 해시값에 기초하여 헤더정보와 서명정보를 생성하며, 또한 실행장치는 선택된 i개의 암호화 유닛을 이용하여 서명정보를 검증한다. 그러나, 분배장치는 암호화 전의 유닛을 이용하여 유닛 해시값을 산출할 수 있고, 실행장치는 선택된 i개의 암호화 유닛을 해독하여 i개의 유닛을 생성하고 생성된 i개의 유닛을 이용하여 서명정보를 검증할 수 있다.
[2] 반면, 제 2 내지 제 4 실시예에서, 분배장치는 부분콘텐츠를 해시함수에 o입하여 부분 해시값을 산출하고, 산출한 부분 해시값에 기초하여 헤더정보와 서명정보를 생성한다. 그러나, 분배장치는 개별 부분콘텐츠 암호화하여 생성된 암호화 부분콘텐츠를 해시함수에 대입하여 부분 해시값을 산출하고, 산출한 부분 해시값에 기초하여 헤더정보와 서명정보를 생성할 수 있다.
이 경우, 실행장치는 헤더정보의 검증을 위해 암호화 부분콘텐츠를 이용한다, 이것은 대표 부분콘텐츠 해독부와 부분콘텐츠 해독부를 구비할 필요성을 없애며, 이는 검출시스템 회로의 사이즈의 감소를 가져온다.
[3] 제 2 내지 제 4 실시예에서, 서명정보와 헤더정보의 검증이 성공한 후, 실행부는 암호화 콘텐츠의 해독, 압축 풀기, 및 재생을 개시한다. 그러나, 실행부는 검증과 병행하여 재생에 관련한 처리를 개시할 수 있다. 이 경우, 서명정보 검증부와 헤더정보 검증부에 의해 수행된 각 검증이 성공적이지 않을 때, 서명정보 검증부와 헤더정보 검증부는 실행부에 재생을 중단하도록 지시한다.
[4] 제 1, 제 5, 및 제 6 실시예에서, 서명정보 검증부는 시간의 결과를 측정하기 위한 타이머를 구비하고, 서명정보의 검증이 기설정된 시간 내에 완료되지 않으면 검증이 성공적이지 않은 것으로 판정할 수 있다.
서명정보의 검증이 재생과 병행하여 수행되는 경우, 콘텐츠, 서명정보, 또는 헤더정보가 위조되었다면, 검증이 완료될 때까지 비인증 콘텐츠는 재생될 것이다.
따라서, 서명정보의 검증에 대해 시간-제한을 설정하는 것은, 서명정보 검증의 완료가 지연되도록 위조하여 비인증 콘텐츠의 재생시간을 연장하는 것을 포함하는 사기 행위를 방해하도록 한다.
또한, 변형예 [3]의 서명정보 검증부와 헤더정보 검증부는 같은 방식으로 타이머를 구비할 수 있다.
[5] 상기의 제 1 내지 제 6 실시예에서, 분배장치는 서명키를 갖고 실행장치는 대응하는 검증키를 가지며, 이들 장치는 DSA와 같은 서명생성 알고리즘을 이용하여 서명정보를 생성하고 검증한다.
일반적으로, 많은 서명생성 알고리즘은, DSA와 RSA(Rivest-Shamir-Adleman)로 대표되는 공개키 암호체계에 기초한다. 그러나, 본 발명에서는, DVD에 기록된 서명정보가 합법적 권리 보유자에 의해 생성된 정보인 것으로 입증할 수 있는 한, 예를 들어, 대칭키 암호체계에 기초한 것과 같이, 어떠한 서명생성 알고리즘이 적용될 수 있다.
다른 예로서, 일방향 함수가 처리를 숨긴 채 사용될 수 있다. 이 경우, 분배장치와 실행장치는 각각 외부장치에 의해 판독될 수 없는 저장영역에 동일한 일방향 함수를 각각 저장한다. 분배장치는 일방향 함수를 이용하여 서명정보를 생성하고, 실행장치는 동일한 일방향 함수를 이용하여 서명검증 정보를 생성한다.
[6] 서명정보 생성시 서명생성 알고리즘이 적용된 정보는 상기한 실시예에서 기술한 것에 한정되지 않는다. 예를 들어, 제 1 실시예에서, 서명생성 알고리즘은 제 2 해시테이블과 유닛선택정보 양자에 적용되지만, 서명생성 알고리즘은 제 2 해시테이블에만 적용될 수 있거나, 또는 제 2 해시테이블 이외에 콘텐츠 키 "CK"와 암호화 콘텐츠의 데이터 사이즈에 적용될 수 있다. 제 2 실시예의 경우, 서명생성 알고리즘은, 대표 부분콘텐츠로부터 생성된 부분 해시값에 서명생성 알고리즘을 적용하는 대신에, 대표 부분콘텐츠 자체에 적용될 수 있다.
특히, 제 2 실시예에서, 서명정보가 대표 부분콘텐츠로부터 생성될 때, k개의 서명정보는 k개의 대표 부분콘텐츠에 서명생성 알고리즘을 각각 적용함으로써 생성될 수 있다.
이 경우, 실행장치는 선택위치정보에 기초하여 k개의 대표 부분콘텐츠를 생성하고, 생성된 k개의 대표 부분콘텐츠를 이용하여 k개의 서명정보를 검증한다.
선택적으로, 분배장치는 k개의 대표 부분콘텐츠를 조합하여 형성된 조합 결과에 서명생성 알고리즘을 적용하여 서명정보를 생성할 수 있고, 실행장치는 조합 결과를 이용하여 서명정보를 검증한다.
이 상태에서, 서명정보의 검증이 성공적이면, 다음 두 가지가 한 번에 확인된다. 즉, 서명정보는 합법적 권리 보유자에 의해 생성되었고, 대표 부분콘텐츠는 위조가 없다. 이것은 헤더정보를 생성하여 DVD에 기입할 필요성을 없애 DVD에 기입된 데이터의 사이즈 감소를 가져온다.
[7] 제 2 및 제 3 실시예에서, 실행장치는 선택위치정보를 미리 저장할 수 있고, 암호화 선택위치정보는 DVD에 기록될 수 있다. 이에 의하면, 유효 실행장치는 미리 저장된 선택위치정보를 이용하여 헤더정보의 검증을 수행할 수 있다.
[8] 제 3 실시예에서, 헤더선택정보와 x개의 헤더 그룹이 DVD에 기입된다. 그러나, 변형예 [7]의 경우, 분배장치는 제 1 헤더 내지 제 x 헤더 그룹 중 하나를 선택하고, 선택한 헤더 그룹에 포함된 헤더 식별자, 헤더정보, 및 서명정보를 추출하며, 이들을 DVD에 기입한다.
실행장치는 선택위치정보와 헤더 식별자의 x 쌍을 미리 저장하고, DVD에 기입된 헤더 식별자에 기초하여 선택위치정보를 선택하며, 선택한 선택위치정보를 이어지는 처리에서 이용한다.
[9] 상기의 제 1 내지 제 7 실시예는 실행장치가 단일장치인 것으로 가정하여 기술된다. 그러나, 실행장치의 기능을 충족하도록 다수의 장치가 적용될 수 있다.
[10] 제 3 실시예에서, 실행장치의 취득부는 x개의 헤더 식별자의 하나를 선택한다. 그러나, 본 발명은 이것에 한정되지 않고, 둘 이상의 식별자가 대신 선택 될 수 있고, 서명정보과 헤더정보의 검증은 2회 이상 반복될 수 있다. 이에 의하면, 비인증 콘텐츠를 더 신뢰성 있게 검출할 수 있다.
[11] 상기의 실시예와 변형예에서, 분배장치의 서명키 저장부와 실행장치늬 검증키 저장부는 각각 하나의 키 정보를 저장하지만, 본 발명은 이것에 한정되지 않는다.
[11-1] 예를 들어, 서명키 저장부는 서명키와 이 서명키에 대응하는 키 식별자를 저장할 수 있고, 기록부는 서명정보와 함께 키 식별자를 DVD에 기입한다.
실행장치의 검증키 저장부는 다수의 검증키와 이 검증키에 일-대-일로 대응하는 키 식별자들을 저장한다. 서명정보 검증부는 서명정보와 함께 키 식별자를 수신하고, 수신한 키 식별자와 일치하는 키 식별자를 검증키 저장부에 저장된 다수의 키 식별자 중에서 검색하고, 검색된 검증키 식별자에 대응하는 검증키를 판독하고, 판독한 검증키를 이용하여 서명정보를 검증한다.
이에 의하면, 다수의 서로 다른 분배장치가 있더라도 본 발명을 적용할 수 있다.
[11-2] 실행장치는 검증키 저장부를 구비하지 않을 수 있고, 서명키와 이 서명키에 대응하는 검증키는 분배장치의 서명키 저장부에 저장할 수 있다. 이 상태에서, 기록부는 검증키를 서명정보와 함께 DVD에 기입한다.
[11-3] 분배장치는, 서명키와 검증키에 더하여, 공정한 제3자 기관이 생성한 검증키의 인증정보를 저장할 수 있다. 여기서, 인증정보가 제3자 기관의 비밀키를 이용하여 검증키에 서명생성 알고리즘을 적용하여 생성된 키 서명이라고 가정한다.
기록부는 검증키와 키 서명을 서명정보와 함께 DVD에 기입한다.
실행장치의 검증키 저장부는, 검증키 대신에, 키 검증정보를 저장한다. 키 검증정보는 키 서명을 검증하기 위한 정보이고, 이 경우, 키 서명을 생성한 공정한 제3자 기관의 비밀키와 쌍을 이루는 공개키이다.
서명정보 검증부는 키 서명과 검증키를 수신하고, 서명정보의 검증에 앞서 수신한 키와 키 검증정보를 이용하여 키 서명의 검증을 수행한다. 검증이 성공적일 때에만, 서명정보 검증부는 상기의 실시예에서와 같이 서명정보의 검증을 개시한다.
이에 의하면, 다수의 분배장치가 있는 경우에도, 실행장치는 제3자 기관의 키 검증정보를 보유할 뿐이고, 다수의 검증키를 구비할 필요는 없다.
[12] 변형예 [11]에서, 실행장치는 무효 검증키를 나타내는 폐기 리스트(revocation list)를 저장할 수 있다. 서명정보 검증부는 수신한 키 식별자 또는 검증키가 폐기 리스트에 등록되어 있는지를 판정하고, 등록되어 있을 때에는 서명정보의 검증을 중단한다.
[13] 실행장치는, 변형예 [12]에서 기술한 바와 같이, 폐기 리스트를 외부 소스로부터 취득할 수 있다. 예를 들어, 폐기 리스트는 DVD와 같은 기록매체를 통하여 취득되거나, 인터넷이나 방송 등을 통하여 검색할 수 있다. 선택적으로, 실행장치는 주기적으로 갱신된 폐기 리스트를 취득할 수 있다.
이에 의하면, 본 발명은 무효화될 필요가 있는 검증키가 새로이 발견되는 상황을 처리할 수 있다.
[14] 분배장치는 암호화 콘텐츠와 서명정보와 같은 다양한 정보를 DVD를 통하여 실행장치에 분배한다. 그러나, 본 발명은 DVD에 한정되지 않고, CD-ROM이나 DVD-ROM과 같은 광 디스크; CD-R, DVD-R, 및 DVD-RAM과 같은 기록가능한 광 디스크; 자기 광 디스크; 및 메모리 카드를 통하여 정보가 분배될 수 있다. 선택적으로, 플래시 메모리와 하드디스크와 같은 반도체 메모리가 실행장치 내부에 내장될 수 있다.
또한, 본 발명은 이러한 기록매체에 한정되지 않고, 인터넷과 같은 통신시스템을 통하여 분배되거나, 방송에 의해 분배될 수 있다.
[15] 상기의 실시예와 변형예는 콘텐츠가 영상과 오디오로 구성된 비디오 콘텐츠이라고 가정한 것을 기술하지만, 콘텐츠는 컴퓨터 프로그램일 수 있다. 예를 들어, 실행장치가 게임 콘솔이고, 콘텐츠는 게임 콘솔에 내장된 플래시 메모리에 저장된 컴퓨터 프로그램인 것으로 가정한다. 여기서, 컴퓨터 프로그램은 게임 콘솔에 로드된 게임 소프트웨어(가령, 광 디스크 및 메모리 카드)가 유효 소프트웨어인지를 판정하기 위한 판정 프로그램이다. 이 상황에서, 권한없는 사용자가 비인증 게임 소프트웨어의 실행을 허가하도록 판정 프로그램을 위조하더라도, 본 발명은 서명정보와 헤더정보를 이용하여 비인증 콘텐츠가 포함되어 있는지의 검증을 수행함으로써 위조를 검출할 수 있고, 따라서 판정 프로그램 자체의 실행이 금지되거나 중단된다. 따라서, 실행 자체를 중지함으로써, 비인증 위조가 실행되어 있는 판정 프로그램에 의해 실현되는 비인증 동작을 방지할 수 있다, 즉 비인증 소프트웨어의 실행을 방지할 수 있다.
[16] 상기 변형예에서 기술한 바와 같이, 콘텐츠가 실행장치에 내장된 마이크로컴퓨터에 로드된 플래시 메모리에 저장된 컴퓨터 프로그램인 경우, 제 5 실시예에서 서술한 사기 행위가 일어날 수 있다. 구체적으로, 먼저 플래시 메모리에 저장된 유효 컴퓨터 프로그램의 위조를 포함하지 않고 플래시 메모리의 빈 공간에 비인증 프로그램이 부가된다. 이어, 프로그램의 개시점이 부가된 비인증 프로그램의 헤드로 점프하도록 유효 프로그램의 버그를 이용함으로써 버퍼 오버-런(buffer over-run)이 일어나며, 비인증 프로그램의 실행이 개시된다.
여기서, 상기한 사기 행위는, 제 5 실시예에서와 같이, 플래시 메모리에 빈 공간을 남기지 않도록 플래시 메모리에 충전콘텐츠를 기입함으로써 방지할 수 있으며, 이는 비인증 콘텐츠를 부가할 수 없기 때문이다.
선택적으로, 제 6 실시예에서와 같이, 분배장치가 기록한 유효 정보가 저장된 영역을 지시하는 영역정보가 미리 플래시 메모리에 기입될 수 있으며, 실행장치는 영역정보가 지시한 영역 이외의 영역의 정보는 판독하지 못하도록 설계된다. 이에 의해, 비인증 프로그램이 부가되더라도, 실행장치는 비인증 프로그램을 실행하지 않는다.
[17] 상기의 제 1 내지 제 6 실시예와 변형예는 실행부가 비디오 및 오디오로 구성된 콘텐츠를 재생하는 구성요소이라고 가정한 것을 기술한다. 그러나, 실행장치는 콘텐츠를 외부 기록매체에 출력하는 구성요소, 또는 인쇄기능을 갖고 영상데이터를 종이 등에 인쇄하는 구성요소일 수 있다.
[18] 상기 실시예에서, 콘텐츠키 생성부는 콘텐츠 세트가 분배장치에 입력될 때마다 콘텐츠 키를 생성한다. 그러나, 콘텐츠키 생성부는 미리 다수의 콘텐츠 키를 저장하고 저장된 콘텐츠 키 중 하나를 선택하여 출력할 수 있다.
[19] 상기 실시예에서, 실행장치는 DVD가 로드될 때 헤더정보, 서명정보 등의 검증을 개시하도록 설계되지만, 본 발명은 이에 한정되지 않는다.
예를 들어, 실행장치는 사용자 버튼 조작에 따라 재생을 수행하도록 지시받은 때 그러한 검증을 개시하거나, DVD가 로드된 때부터 규칙적 간격으로 검증을 수행할 수 있다.
[20] 제 2 및 제 3 실시예에서, 헤더정보가 DVD에 기입되는 것은 필수적이다.
해더정보가 DVD에 기입되지 않은 때, 실행장치는 선택위치정보에 기초하여 k개의 대표 부분콘텐츠를 추출하고, 추출한 대표 부분콘텐츠를 각각 해시함수에 대입하여 검증 해시값을 산출한다.
이어, 실행장치는 산출된 검증 해시값을 조합하여 형성된 조합 결과에 검증키를 이용하여 서명검증 알고리즘 V를 적용하여 서명검증 정보를 생성한다. 실행장치는 생성된 서명검증 정보와 비교하여 서명정보를 검증한다.
이 경우, 실행장치는 더 이상 헤더정보 검증부를 필요로 하지 않으며, 이는 검출시스템 회로의 사이즈의 감소를 가져온다. 또한, 비인증 콘텐츠가 포함되어 있는지의 검증은 서명정보를 검증함으로써 동시에 완료될 수 있다.
[21] 제 4 실시예에서, 실행장치(4600)는, 서명정보 검증부(4606)에 의해 수행된 서명정보의 검증이 성공한 후 헤더정보에 포함된 c개의 부분 해시값 중 k개만 을 검증한다. 그러나, k개의 암호화 부분콘텐츠와 헤더정보를 이용함으로써 단일 검증으로 서명정보와 헤더정보 양자가 검증될 수 있다.
더 구체적으로, 실행장치는 k개의 암호화 부분콘텐츠를 콘텐츠 위치정보에 기초하여 암호화 콘텐츠로부터 추출하고, 추출한 k개의 암호화 부분콘텐츠를 해독하여 k개의 부분콘텐츠를 생성한다. 이어, 실행장치는 생성된 k개의 부분콘텐츠를 각각 해시함수에 대입하여 대체 부분 해시값을 산출한다.
다음, 실행장치는, 헤더정보에 포함된 c개의 부분 해시값 중에서, 선택된 k개의 암호화 부분콘텐츠에 대응하는 부분 해시값을 산출한 대체 부분 해시값으로 대체한다.
실행장치는 대체 부분 해시값과 대체된 헤더정보에 포함된 부분 해시값을 조합함으로써 형성된 조합 결과와 검증키를 이용하여 서명정보를 검증한다.
이 경우, 실행장치는 더 이상 헤더정보 검증부를 필요로 하지 않으며, 이는 검출시스템 회로의 사이즈의 감소를 가져온다. 또한, 비인증 콘텐츠가 포함되어 있는지의 검증은 서명정보를 검증함으로써 동시에 완료될 수 있다.
[22] 상기의 제 1 내지 제 6 실시예에서, 단 한 세트의 암호화 콘텐츠, 이 세트의 암호화 콘텐츠에 대응하는 서명정보와 헤더정보 각 하나만 DVD에 기입된다. 그러나, 서로 다른 세트의 다수의 암호화 콘텐츠가 이들 세트에 각각 대응하는 헤더 및 서명정보들과 함께 대신 저장될 수 있다.
또한, DVD는 모든 헤더정보에 기초하여 생성된 하나의 서명정보만 포함할 수 있다. 또한, DVD는, 이들 암호화 콘텐츠 세트 이외에, 저작권 보호를 필요로 하지 않는 콘텐츠, 가령 광고, 오프닝 화면, 메뉴 화면 등을 포함할 수 있다. 이들 저작권 비보호 콘텐츠는 서명정보와 헤더정보의 검증이 수행되는 동안 재생될 수 있다.
[23] 제 1 내지 제 6 실시예와 변형예에서, 서명정보의 검증과 헤더정보의 검증 중 적어도 하나가 성공적이지 않을 때, 실행장치는 취득부에 로드된 DVD를 식별하기 위한 디스크 식별자와 재생되고 있는 지점에서 콘텐츠 세트를 식별하기 이한 콘텐츠 식별자를 저장할 수 있다.
기록된 것과 동일한 디스크 식별자를 갖는 DVD가 로드될 때, 실행장치는 콘텐츠의 재생을 중단한다. 선택적으로, 기록된 것과 동일한 식별자를 갖는 콘텐츠 세트를 재생하도록 지시받은 때, 실행장치는 콘텐츠 세트의 재생을 중단한다.
[24] 상기 실시예와 변형예에서, 서명정보의 검증과 헤더정보의 검증 중 적어도 하나가 성공적이지 않을 때, 실행장치는 콘텐츠의 재생을 중단하고, 예를 들어, 모니터에 에러통보 화면을 표시함으로써 콘텐츠가 인증되지 않은 것을 사용자에게 통보한다. 검증 실패시 실행장치가 취하는 동작은 이에 한정되지 않고, 다음의 경우도 고려할 수 있다. 또한, 다음 세 가지 변형이 조합될 수 있다.
[24-1] 분배장치와 실행장치 모두 인터넷에 접속된다. 서명정보의 검증과 헤더정보의 검증 중 적어도 하나가 성공적이지 않을 때, 실행장치는 인터넷을 통하여 분배장치에 검증 실패를 통보한다. 이때, 실행장치는 그것의 검증이 성공적이지 않은 콘텐츠를 지시하는 콘텐츠 식별자를 보내기도 한다.
분배장치는 콘텐츠 식별자와 이 콘텐츠 식별자가 지시하는 콘텐츠의 생성일을 서로 관련시켜 미리 저장한다.
분배장치는 인터넷을 통하여 실행장치로부터 검증 실패의 통보와 콘텐츠 식별자를 수신한다. 분배장치는 수신한 콘텐츠 식별자에 대응하는 생성일에 따라 콘텐츠 재생의 허가를 지시하는 재생허가정보 또는 재생의 금지를 지시하는 재생금지정보를 생성한다. 예를 들어, 콘텐츠 식별자가 생성일로부터 반년 미만의 새로운 콘텐츠를 지시하는 때, 분배장치는 재생금지정보를 생성한다. 반면에, 콘텐츠 식별자가 생성일로부터 반년 이상 유포된 오래된 콘텐츠를 지시할 때, 분배장치는 재생허가정보를 생성한다.
다음, 분배장치는 생성된 재생허가정보 또는 재생금지정보를 인터넷을 통하여 실행장치에 전송하며, 실행장치는 재생허가정보를 수신한 때에만 DVD에 저장된 암호화 콘텐츠를 해독하여 재생한다.
콘텐츠가 이미 배포 이후 설정된 기간 동안 유포되었고 콘텐츠에 대한 주문이 어느 정도 충족되었으며, 따라서 이 콘텐츠의 장래의 판매는 별로 중요하지 않을 것으로 예측되는 경우를 가정하자. 이 경우, 상기의 변형예는 사용자가 해당 콘텐트를 시청하는 것을 허가함으로써 DVD를 구매한 사용자의 이익에 우선권을 두게 한다. 반면, 콘텐츠가 최근에 배포된 경우, 그리고 콘텐츠의 장래 판매가 중요할 것으로 예측되는 경우, 이 변형예는 재생을 금지하여 저작권 보유자의 권리에 우선권을 두게 한다. 즉, 상기 변형예는 사용자의 이익과 저작권자의 이익을 조정할 수 있다.
재생허가정보 또는 재생금지정보 중 어느 것이 전송될 것인지를 결정하기 위한 수단은 이것에 한정되지 않으며, 분배장치는, 각 콘텐츠 세트에 대해서, 예를 들어, 콘텐츠 세트의 저작권 보유자와 판매 중개인의 의도를 반영하여 허가 기간을 저장할 수 있다.
[24-2] 이미 기술한 바와 같이, 콘텐츠를 기록하는 매체는 DVD에 한정되지 않고, 재기록가능한 기록매체일 수 있다. 여기서, 플래시 메모리를 구비한 메모리 카드가 일 예로 사용된다.
서명정보나 헤더정보의 검증이 성공적이지 않을 때, 실행장치는 메모리 카드에 기록된 암호화 콘텐츠의 정보의 일부 또는 전부를 삭제한다.
이에 의하면, 비인증 콘텐츠의 앞으로의 사용을 신뢰성 있게 방지할 수 있다.
[24-3] 콘텐츠가 HD(high definition) 비디오 데이터인 경우, 검증이 성공적이지 않으면, 실행장치는 비디오 데이터를 SD(standard definition) 로 변환한 후 재생한다.
콘텐츠가 고품질 사운드(5.1 채널) 오디오 데이터인 때, 검증이 성공적이지 않으면, 실행장치는 표준품질 사운드(2채널) 오디오 데이터로 변환한 후 오디오 데이터를 재생한다.
따라서, 재생 품질을 떨어뜨린 상태에서 재생을 허용함으로써, 사용자 편의성과 저작권 보유자의 이익을 어느 정도까지 조정할 수 있다.
[25] 제 2 및 제 3 실시예에서, DVD가 로드될 때, 실행장치는 키 블록, 암호화 선택위치정보, 헤더정보, 서명정보, 및 암호화 콘텐츠를 판독한다. 그러나, 실행장치는 취득부를 통하여 각 구성요소의 처리 진행에 따라 필요한 정보만을 판독 할 수 있다.
예를 들어, 실행장치는, DVD가 로드된 때 키 블록만을; 콘텐츠 키의 생성이 완료된 때 암호화 선택위치정보를; 암호화 선택위치정보의 해독이 완료된 때 서명정보와 해더정보를 판독하고, 이어 서명정보의 검증을 수행한다. 서명정보의 검증이 완료되면, 실행장치는 선택위치정보가 지시하는 k개의 암호화 블록을 판독한다.
제 4 실시예에서도, 필요한 정보만이 유사한 방법으로 필요할 때 판독될 수 있다.
[26] 제 1 실시예에서, 선택된 i개의 암호화 유닛이 판독된 때, 판독 속도는 이하에 기술한 것처럼 판독 순서를 정렬함으로써 증가할 수 있다.
설명의 편의를 위하여, 여기서 i = 4이고, 4개의 암호화 유닛이 판독되는 경우를 고려한다.
DVD와 같은 광 디스크 상에, 데이터를 기록하는 영역은 부분들로 분할되고, 트리-링(tree-ring) 패턴의 영역은 각각 트랙으로 지칭된다. 각 트랙에 다수의 섹터가 포함되고, 데이터는 섹터 단위로 판독 및 기입된다. 한 섹터의 사이즈는, 예를 들어, 512바이트이다. 이 경우, DVD 상의 판독 대상인 데이터는 트랙 식별번호, 섹터 식별번호, 또는 섹터 사이즈를 이용하여 식별할 수 있다.
도 71은 DVD(1500)의 구성과 취득부(1601)의 구조를 나타낸다. 도면의 동심 영역이 트랙이다.
도 71에 도시한 바와 같이, 취득부(1601)는 헤드부(1628)("픽업(pickup)"으로 지칭되기도 함)와 회전축(1629)을 구비한다. DVD(1500)는 회전축(1629)을 회전 시킴으로써 반시계 방향으로 회전한다. 도면의 점선 화살표는 회전방향을 나타낸다. 트랙 식별번호, 섹터 식별번호 또는 섹터 사이즈를 지정함으로써, 취득부(1601)는 헤드부(1628)를 이동하고 판독을 대상으로 하는 데이터를 취득한다.
일반적으로, 판독-대상 데이터가 저장된 트랙으로 헤드부(1628)를 이동하는데 시간이 걸린다는 것은 알려져 있다. 다시 말해, 내측 원주에서 외측 원주로 또는 외측 원주에서 내측 원주로의 DVD 상의 이동거리가 증가함에 따라, 데이터를 판독하는데 더 긴 시간이 걸린다.
여기서, 4개의 암호화 유닛 "EU1_3", "EU3_1", "EU8_7", 및 "EU9_2"가 판독 대상이고, 각각 DVD(1500) 상의 부분(1591, 1592, 1593, 1594)에 저장된다.
DVD(1500) 상에서, 헤드부(1628)는 도 71에 도시한 위치에 있다고 가정한다.
이 경우, 제 1 실시예에서 기술한 절차에 따르면, 취득부(1601)는 먼저 헤드부(1628)를 부분(1591)이 존재하는 트랙(1501)으로 이동하고, 부분(1591)에 기록된 암호화 유닛 "EU1_3"을 판독한다. 이어, 유사한 방법으로, 취득부(1601)는 헤드부(1628)를 트랙(1502)으로 이동하여 부분(1593)에 기록된 암호화 유닛 "EU8_7"을 판독하며, 그 다음 헤드부(1628)를 트랙(1503)으로 이동하여 부분(1594)에 기록된 암호화 유닛 "EU9_2"을 판독한다.
이와 같이, 제 1 실시예에서 기술한 절차를 따를 때, 헤드부(1628)의 이동거리는 길게 되고, 그 결과, 모든 암호화 유닛을 판독하는데 긴 시간이 걸린다.
여기서, 헤드부(1628)가 항상 그때 위치한 트랙에서 가장 인접한 트랙으로 이동하도록 4개의 암호화 유닛을 판독하는 순서를 변경한다. 즉, 취득부(1601)는 헤드부(1628)의 위치를 지시하는 트랙번호와 4개의 암호화 유닛이 저장된 부분(1591, 1592, 1593, 1594)의 위치를 지시하는 섹터번호 및 트랙번호를 비교한다. 이어, 취득부(1601)는 네 부분의 취득한 섹터번호와 트랙번호의 순서를 재쟁렬하여 헤드부(1628)가 판독을 위해 가장 짧은 거리를 이동하고 재정렬된 순서로 각 부분을 액세스하도록 한다.
이에 의하면, 데이터를 판독하는데 필요한 시간을 단축할 수 있다. 또한, 판독할 암호화 유닛이 동일한 트랙이나 인접한 트랙에 위치하는 경우, 판독 순서는 헤드부(1628)의 현재 위치와 각 암호화 유닛이 저장된 부분을 나타내는 섹터번호에 기초하여 변경될 수 있다.
판독순서를 최적화하는 수단은 취득부(1601)의 회전축 및 헤드부의 동작 특성에 따르며, 여기서 기술한 최적 절차는 일 예일 뿐이다. 예를 들어, 광 디스크의 회전제어방법은 일정 각속도법과 일정 선속도법을 포함하며, 이러한 방법의 특징을 고려할 수 있다. 또한, 하드디스크가 DVD와 같은 광 디스크 대신 사용되는 경우, 판독순서의 정렬은 유사한 방법으로 실현할 수 있다.
제 5 및 제 6 실시에에서도, 판독속도는 유사한 방법으로 향상될 수 있다. 이는 제 2 내지 제 4 실시예에 따른 변형예 [20]의 경우에서도 같다.
[27] 제 1, 제 5 및 제 6 실시예에서, 실행장치는 i개의 암호화 파일을 임의로 선택하고, 각 선택된 암호화 파일로부터 하나의 암호화 유닛을 추가로 선택한다. 그러나, 선택 절차는 이것에 한정되지 않고, 선택된 개수가 총 i가 되는 한, 다수의 암호화 유닛이 하나의 암호화 파일로부터 선택될 수 있다.
[28] 제 1, 제 5 및 제 6 실시예에서, 실행장치에 의해 선택된 암호화 유닛의 개수 "i"는 실행장치에 사전설정되거나 DVD에 기입될 수 있다.
선택된 암호화 유닛의 개수 "i"가 더 커지면, 비인증 콘텐츠가 포함되어 있는지의 검증의 정확성이 증가하지만, 서명정보의 검증에 포함된 처리 부하도 증가한다.
따라서, 선택될 암호화 유닛의 개수 "i"는 DVD에 기록되고, 실행장치는 DVD로부터 취득한 "i"에 따라서 서명정보의 검증을 수행한다. 이에 의하면, 검증에서 DVD 제작자의 의도를 반영할 수 있다.
또한, 이 기술은 제 4 실시예에서 k개의 암호화 부분콘텐츠를 선택하는데 적용할 수도 있다.
[29] 제 1, 제 5 및 제 6 실시예에서, 서명정보는 c개의 파일 해시값을 조합하여 형성된 조합 결과에 서명생성 알고리즘을 적용하여 생성된다. 그러나, 조합 결과를 해시함수에 대입하여 조합 해시값을 산출하고 서명생성 알고리즘을 산출된 조합 해시값에 적용함으로써 서명정보가 생성될 수 있다.
[30] 제 1, 제 5 및 제 6 실시예에서, 헤더정보는 2층 구조를 갖는 해시값으로 구성된다. 즉, 2층 구조는, 각 암호화 유닛으로부터 생성된 유닛 해시값과 같은 파일에 기초하여 생성된 m개의 유닛 해시값으로부터 생성된 파일 해시값으로 구성된다. 반면, 서명정보는 c개의 파일 해시값으로 구성된다.
대신, 헤더정보는 3층 구조를 갖는 해시값을 포함할 수 있다. 구체적으로, 헤더정보는 y개의 조합 파일 해시값을 포함한다. y개의 조합 파일 해시값은, 먼저 c개의 파일 해시값을 y개의 그룹으로 분할하고 각 그룹에 대해 파일 해시값을 조합하여 형성된 조합 결과를 각각 해시함수에 대입함으로써 생성된다. 이 경우, 서명정보는 y개의 조합 파일 해시값을 이용하여 생성된다.
따라서, 상기 구조의 층수를 증가함으로써, DVD로부터 판독될 정보를 줄일 수 있다.
[31] 제 5 실시예에서 기술한 바와 같이, 콘텐츠의 재생순서를 나타내는 재생순서파일이 DVD에 저장되는 경우가 종종 있다. 이 경우, DVD는 재생순서파일을 위한 서명정보를 포함할 수 있다.
이에 의하면, 제 5 실시예에서 기술한 바와 같이, 권한없는 제3자가 비인증 콘텐츠의 부가 또는 대체를 수행하고 재생순서파일을 위조하더라도, 그 위조는 재생순서파일의 서명정보를 검증함으로써 검출될 것이고, 그에 따라 비인증 콘텐츠는 재생되지 않을 것이다.
[32] 제 3 실시예에서, 분배장치(3100)의 선택부(3105)가 콘텐츠 한 세트로부터 선택한 대표 부분콘텐츠의 총 개수는 (k × x) 개이다.
이 경우, c개의 부분콘텐츠 모두가 적어도 한 차례 대표 부분콘텐츠로서 선택될 수 있도록 설계될 수 있다. 이에 의하면, DVD에 저장된 암호화 콘텐츠의 일부가 대체되는 경우, 비인증 콘텐츠의 검출 정확도를 증가시킬 수 있다.
[33] 제 1, 제 5 및 제 6 실시예에서, 분배장치는 유닛선택정보를 DVD에 기입한다. 그 대신, 분배장치는 콘텐츠 키를 이용하여 유닛선택정보를 암호화하여 생성된 암호화 유닛선택정보를 DVD에 기입할 수 있다.
또한, 제 4 실시예에서, 분배장치는 콘텐츠 위치정보를 DVD에 기입한다. 그 대신, 분배장치는 콘텐츠 키를 이용하여 콘텐츠 위치정보를 암호화하여 생성된 암호화 콘텐츠 위치정보를 DVD에 기입할 수 있다.
[34] 제 1 내지 제 6 실시예와 변형예에서, 유닛 해시값은 암호화 유닛을 각각 해시함수에 대입하여 산출되는 반면, 부분 해시값은 부분콘텐츠를 각각 해시함수에 대입하여 산출된다. 그러나, 각 유닛 해시값은 암호화 유닛에 대응하는 식별자, 식별정보, 및 암호화 유닛을 조합하여 형성된 조합 결과로부터 산출될 수 있다. 유사한 방법으로, 각 부분 해시값은 부분콘텐츠에 대응하는 식별자, 식별정보, 및 부분콘텐츠를 조합하여 형성된 조합 결과로부터 산출될 수 있다.
[35] 제 5 실시예에서, 생성될 충전콘텐츠의 데이터 사이즈는 충전용량과 같다. 그러나, 데이터 사이즈가 DVD에 남겨진 빈 공간을 충분히 작게 할 수 있는 한, 데이터 사이즈는 이에 한정되지 않는다.
[36] 제 1 내지 제 6 실시예에서, 실행장치는 비디오 및 오디오 신호를 외부 모니터에 출력하여 콘텐츠를 재생한다. 그러나, 실행장치는 그러한 모니터를 내장할 수 있다.
[37] 상기 각 장치를 구성하는 구성요소의 부분 또는 전부는 단일 시스템 LSI(Large Scale Integration)로 조립될 수 있다. 시스템 LSI는 다수의 구성요소를 하나의 칩에 집적함으로써 제조된 초-다기능 LSI이며, 더 구체적으로 마이크로프로세서, ROM, RAM 등으로 구성된 컴퓨터 시스템이다. 컴퓨터 프로그램은 RAM에 저장된다. 마이크로프로세서는 컴퓨터 프로그램에 따라 동작하며, 이에 의해 시스템 LSI는 그 기능을 달성한다. 선택적으로, 각 구성요소는 개별 집적회로로 구성될 수 있다.
여기서 시스템 LSI로 언급되지만, 집적도에 따라 IC, LSI, 수퍼 LSI, 및 울트라 LSI로 언급될 수도 있다. 또한, 집적회로를 조립하는 방법은 LSI에 한정되지 않고, 전용 통신회로나 범용 프로세서가 이를 달성하는데 사용될 수 있다. LSI가 제조된 후 프로그램 가능한 FPGA(Field Programmable Gate Array), 또는 LSI 내부의 회로 셀의 연결이나 설정의 재구성을 허용하는 재구성가능한 프로세서가 사용될 수 있다.
[38] 본 발명은 상기한 비인증 콘텐츠 검출시스템을 달성하기 위한 방법일 수 있다. 본 발명은 상기 방법을 컴퓨터로 달성하는 컴퓨터 프로그램이거나, 상기 컴퓨터 프로그램을 표현하는 디지털 신호일 수 있다.
본 발명은 또한 상기 컴퓨터 프로그램이나 디지털 신호가 기록된 컴퓨터 판독가능한 기록매체, 가령 플렉시블 디스크, 하드디스크, CD-ROM(Compact Disk Read Only Memory), MO(Magneto-Optical) 디스크, DVD, DVD-ROM(Disk Versatile Disk Read Only Memory), DVD-RAM(Disk Versatile Disk Random Access Memory), BD(Blu-ray Disk), 또는 반도체 메모리에 의해 달성될 수 있다.
본 발명은 또한 전기통신, 유무선 통신, 및 인터넷으로 대표되는 네트워크를 통하여 또는 데이터 방송을 통하여 송신되는 컴퓨터 프로그램이나 디지털 신호일 수 있다.
본 발명은 또한 컴퓨터 프로그램을 저장하는 메모리와 컴퓨터 프로그램에 따 라 동작하는 마이크로프로세서를 포함하는 컴퓨터 시스템일 수 있다.
컴퓨터 프로그램이나 디지털 신호는 상기한 기록매체에 기록될 수 있고 독립된 컴퓨터 시스템에 전송될 수 있으며, 또는 선택적으로, 상기 네트워크를 통하여 독립된 컴퓨터 시스템으로 전송될 수 있다. 이어, 독립된 컴퓨터 시스템은 이 컴퓨터 프로그램이나 디지털 신호를 실행할 수 있다.
[39] 본 발명은 상기한 실시예와 변형예의 둘 이상이 조합된 구조를 포함한다.
본 발명은 콘텐츠를 제작, 판매, 전송, 및 이용하는 산업과, 콘텐츠를 재생, 편집 및 처리하기 위한 다양한 전기장치를 제조, 판매 및 이용하는 산업에 경영적으로, 연속하여 반복적으로 적용할 수 있다.

Claims (15)

  1. 디지털 저작물과, (i) 상기 디지털 저작물을 구성하는 복수의 데이터 블록으로부터 생성된 복수의 기록 요약 값과, (ii) 상기 복수의 기록 요약 값의 일부 또는 전부에 기초하여 생성된 기록서명데이터가 기록된 기록매체로부터 상기 디지털 저작물을 이용하는 데이터 처리장치로,
    상기 복수의 기록 요약 값의 일부 또는 전부는 모두 상기 기록매체에 기록되며,
    상기 디지털 저작물을 이용하는 이용부와;
    상기 디지털 저작물을 이용할 때마다, 상기 디지털 저작물을 구성하는 상기 복수의 데이터 블록 모두로부터 기 설정된 수의 데이터 블록을 무작위(random)로 선택하는 선택부와;
    상기 선택된 데이터 블록 각각에 대해 산출 요약 값을 산출하는 산출부와;
    상기 복수의 기록 요약 값 중에서 적어도 선택된 상기 데이터 블록을 제외한 다른 데이터 블록에 대응하는 잔류 기록 요약 값을 판독하는 판독부와;
    상기 기록 서명데이터, 상기 산출 요약 값 및 상기 잔류 기록 요약 값을 이용하여 상기 디지털 저작물의 정당성을 검증하는 서명검증부; 및
    상기 서명검증부가 상기 디지털 저작물이 정당하지 않다고 판정하는 경우에, 상기 이용부가 상기 디지털 저작물을 이용하는 것을 중지하는 이용 제어부를 포함하는 것을 특징으로 하는 데이터 처리장치.
  2. 청구항 1에 있어서,
    상기 복수의 기록 요약 값은 그 각각이 상기 복수의 데이터 블록 중 하나에 대해서 생성된 복수의 제 1 기록 요약 값과 둘 이상의 상기 복수의 제 1 기록 요약 값으로부터 생성된 복수의 제 2 기록 요약 값을 포함하고, 상기 기록 서명데이터는 상기 복수의 제 2 기록 요약 값에 디지털 서명을 수행함으로써 생성되며,
    상기 판독부는 상기 복수의 제 1 기록 요약 값 중에서 상기 잔류 기록 요약 값을 판독하고,
    상기 서명검증부는 상기 산출 요약 값과 상기 잔류 기록 요약 값에 기초하여 하나 이상의 제 2 산출 요약 값을 산출하고, 상기 기록 서명데이터, 상기 복수의 제 2 기록 요약 값 및 상기 제 2 산출 요약 값을 이용하여 디지털 서명 검증을 수행함으로써 상기 디지털 저작물의 정당성을 검증하는 것을 특징으로 하는 데이터 처리장치.
  3. 청구항 2에 있어서,
    상기 디지털 저작물은 복수의 파일을 포함하고, 상기 복수의 파일 각각은 상기 복수의 제 2 기록 요약 값의 하나에 대응하며, 상기 복수의 데이터 블록 중 둘 이상으로 구성되며,
    상기 복수의 제 2 기록 요약 값 각각은 상기 제 2 기록 요약 값에 대응하는 파일을 구성하는 상기 복수의 데이터 블록 중 둘 이상에 일대 일로 대응하는 제 1 기록 요약 값을 이용하여 생성되고,
    상기 서명검증부는,
    상기 기록매체로부터 상기 기록 서명데이터를 판독하는 제 1 판독 서브유닛과;
    상기 선택된 데이터 블록의 적어도 하나를 포함하는 각 파일에 대해서, 당해 파일에 포함되는 데이터 블록 중 당해 선택된 데이터 블록을 제외한 잔류 데이터 블록에 대응하는 제 1 기록 요약 값과 당해 선택된 데이터 블록에 대응하는 상기 산출 요약 값을 이용하여 상기 제 2 산출 요약 값을 산출하는 산출 서브유닛과;
    상기 선택된 데이터 블록을 포함하지 않는 각 파일에 대해서, 당해 파일에 대응하는 제 2 기록 요약 값을 판독하는 제 2 판독 서브유닛과;
    상기 산출된 제 2 산출 요약 값과 상기 판독한 제 2 기록 요약 값을 이용하여 상기 디지털 서명을 수행함으로써 산출 서명데이터를 생성하는 서명 서브유닛; 및
    상기 산출 서명데이터와 상기 기록 서명데이터를 비교하는 비교 서브유닛을 포함하며,
    상기 서명검증부는, 상기 산출 서명데이터와 상기 기록 서명데이터가 서로 일치하는 경우에 상기 디지털 저작물이 정당한 것으로 검증하고, 상기 산출 서명데이터와 상기 기록 서명데이터가 서로 일치하지 않은 경우에 상기 디지털 저작물은 정당하지 않은 것으로 판정하는 것을 특징으로 하는 데이터 처리장치.
  4. 청구항 3에 있어서,
    상기 복수의 기록 요약 값은 각각 해시함수에 의해 생성된 해시 값이고,
    상기 산출부에 의해 산출된 상기 산출 요약 값은 상기 선택된 데이터 블록 각각에 상기 해시함수를 적용하여 산출된 해시 값이며,
    상기 산출 서브유닛에 의해 산출된 상기 제 2 산출 요약 값은 선택되지 않은 데이터 블록에 대응하는 상기 제 1 기록 요약 값과 상기 산출 요약 값에 상기 해시함수를 적용하여 산출된 해시 값인 것을 특징으로 하는 데이터 처리장치.
  5. 청구항 3에 있어서,
    상기 디지털 저작물은 디지털 콘텐츠이며,
    상기 이용부는 상기 디지털 콘텐츠를 재생함으로써 상기 디지털 콘텐츠를 이용하는 것을 특징으로 하는 데이터 처리장치.
  6. 청구항 3에 있어서,
    상기 디지털 저작물은 컴퓨터 프로그램이며,
    상기 이용부는 상기 컴퓨터 프로그램을 구성하는 명령 코드를 해독하고, 상기 해독된 코드에 따라서 동작함으로써 상기 컴퓨터 프로그램을 이용하는 것을 특징으로 하는 데이터 처리장치.
  7. 청구항 3에 있어서,
    상기 디지털 저작물이 정당하지 않은 것으로 판정된 경우에, 상기 디지털 저작물이 정당하지 않다는 취지를 표시하는 경고 표시부를 상기 이용 제어부 대신에 포함하는 것을 특징으로 하는 데이터 처리장치.
  8. 청구항 1에 있어서,
    상기 기록매체는, (i) 외부장치에 의한 액세스가 허가되는 상기 기록매체 상의 액세스 허가영역을 나타내는 영역정보와, (ii) 상기 디지털 저작물과 상기 영역정보의 전부 또는 일부에 기초하여 생성된 서명데이터를 추가로 기록하고 있고,
    상기 데이터 처리장치는,
    상기 영역정보에 기초하여 상기 액세스 허가영역 이외의 다른 영역에의 액세스를 금지하는 액세스 금지부; 및
    상기 디지털 저작물, 상기 영역정보 및 상기 서명데이터를 이용하여 상기 디지털 저작물과 상기 영역정보의 정당성을 검증하는 검증부를 추가로 포함하고,
    상기 이용 제어부는 상기 검증부가 상기 디지털 저작물과 상기 영역정보 중 적어도 하나는 정당하지 않은 것으로 판정한 때, 상기 이용부가 상기 디지털 저작물을 이용하는 것을 중지하는 것을 특징으로 하는 데이터 처리장치.
  9. 청구항 1에 있어서,
    상기 선택부, 상기 산출부, 상기 판독부 및 상기 서명검증부는 단일의 대규모 집적회로(LSI)에 함께 조립되는 것을 특징으로 하는 데이터 처리장치.
  10. 청구항 1에 있어서,
    상기 판독부는 상기 기록매체로부터 상기 선택된 데이터 블록에 대응하는 기록 요약 값을 더 판독하고,
    상기 데이터 처리장치는,
    상기 기록매체에 기록된 기록 요약 값과 상기 산출 요약 값이 일치하는가를 검증하는 요약 값 검증부와;
    상기 요약 값 검증부에 의한 검증 결과 상기 디지털 저작물이 정당하지 않다고 판정된 경우에 상기 이용부가 상기 디지털 저작물을 이용하는 것을 중지하는 제 2 이용 제어부를 더 포함하는 것을 특징으로 하는 데이터 처리장치.
  11. 디지털 저작물과, (i) 상기 디지털 저작물을 구성하는 복수의 데이터 블록으로부터 생성된 복수의 기록 요약 값과, (ii) 상기 복수의 기록 요약 값의 일부 또는 전부에 기초하여 생성된 기록서명데이터가 기록된 기록매체로부터 상기 디지털 저작물을 이용하는 데이터 처리방법으로,
    상기 복수의 기록 요약 값의 일부 또는 전부는 모두 상기 기록매체에 기록되며,
    (a) 상기 디지털 저작물을 이용하는 단계;
    (b) 상기 디지털 저작물을 이용할 때마다, 상기 디지털 저작물을 구성하는 상기 복수의 데이터 블록 모두로부터 기 설정된 수의 데이터 블록을 무작위로 선택하는 단계;
    (c) 선택된 상기 데이터 블록 각각에 대해 산출 요약 값을 산출하는 단계;
    (d) 상기 복수의 기록 요약 값 중에서 적어도 선택된 데이터 블록을 제외한 다른 데이터 블록에 대응하는 잔류 기록 요약 값을 판독하는 단계;
    (e) 상기 기록 서명데이터, 상기 산출 요약 값 및 상기 잔류 요약 값을 이용하여 상기 디지털 저작물의 정당성을 검증하는 단계; 및
    (f) 상기 단계 (e)에서 상기 디지털 저작물이 정당하지 않다고 판정된 경우에 상기 단계 (a)를 중지하는 단계를 포함하는 것을 특징으로 하는 데이터 처리방법.
  12. 디지털 저작물과, (i) 상기 디지털 저작물을 구성하는 복수의 데이터 블록으로부터 생성된 복수의 기록 요약 값과, (ii) 상기 복수의 기록 요약 값의 일부 또는 전부에 기초하여 생성된 기록서명데이터가 기록된 기록매체로부터 상기 디지털 저작물을 이용하는 데이터 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록매체로,
    상기 복수의 기록 요약 값의 일부 또는 전부는 모두 상기 기록매체에 기록되며,
    상기 데이터 처리 프로그램은,
    (a) 상기 디지털 저작물을 이용하는 단계;
    (b) 상기 디지털 저작물을 이용할 때마다, 상기 디지털 저작물을 구성하는 상기 복수의 데이터 블록 모두로부터 기 설정된 수의 데이터 블록을 무작위로 선택하는 단계;
    (c) 선택된 상기 데이터 블록 각각에 대해 산출 요약 값을 산출하는 단계;
    (d) 상기 복수의 기록 요약 값 중에서 적어도 선택된 데이터 블록을 제외한 다른 데이터 블록에 대응하는 잔류 기록 요약 값을 판독하는 단계;
    (e) 상기 기록 서명데이터, 상기 산출 요약 값 및 상기 잔류 요약 값을 이용하여 상기 디지털 저작물의 정당성을 검증하는 단계; 및
    (f) 상기 단계 (e)에서 상기 디지털 저작물이 정당하지 않다고 판정된 경우에 상기 단계 (a)를 중지하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
  13. 삭제
  14. 삭제
  15. 삭제
KR1020067022943A 2004-04-02 2005-03-24 비인증 콘텐츠 검출시스템 KR101067613B1 (ko)

Applications Claiming Priority (14)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00110069 2004-04-02
JP2004110069 2004-04-02
JP2004146963 2004-05-17
JPJP-P-2004-00146963 2004-05-17
JPJP-P-2004-00151621 2004-05-21
JP2004151621 2004-05-21
JP2004163734 2004-06-01
JPJP-P-2004-00163734 2004-06-01
JP2004196531 2004-07-02
JPJP-P-2004-00196531 2004-07-02
JPJP-P-2004-00201009 2004-07-07
JP2004201009 2004-07-07
JPJP-P-2004-00206335 2004-07-13
JP2004206335 2004-07-13

Publications (2)

Publication Number Publication Date
KR20060135934A KR20060135934A (ko) 2006-12-29
KR101067613B1 true KR101067613B1 (ko) 2011-09-28

Family

ID=34962509

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067022943A KR101067613B1 (ko) 2004-04-02 2005-03-24 비인증 콘텐츠 검출시스템

Country Status (13)

Country Link
US (7) US7549061B2 (ko)
EP (3) EP1730619B1 (ko)
JP (4) JP4084827B2 (ko)
KR (1) KR101067613B1 (ko)
CN (4) CN101086880B (ko)
AT (1) ATE509321T1 (ko)
AU (1) AU2005227472B2 (ko)
BR (1) BRPI0509577B1 (ko)
CA (1) CA2560395C (ko)
ES (2) ES2660165T3 (ko)
MY (2) MY147696A (ko)
TW (3) TWI366775B (ko)
WO (1) WO2005096119A1 (ko)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2141628B1 (en) * 2003-09-26 2017-05-10 Nippon Telegraph and Telephone Corporation Tag privacy protection method, update solicitor, program therefor and record medium carrying such program in storage
JP4716675B2 (ja) * 2004-05-25 2011-07-06 三洋電機株式会社 録音再生装置
JP4576936B2 (ja) * 2004-09-02 2010-11-10 ソニー株式会社 情報処理装置、情報記録媒体、コンテンツ管理システム、およびデータ処理方法、並びにコンピュータ・プログラム
CN102609640B (zh) 2004-10-25 2015-07-15 安全第一公司 安全数据分析方法和系统
US20070078773A1 (en) * 2005-08-31 2007-04-05 Arik Czerniak Posting digital media
BRPI0618725A2 (pt) 2005-11-18 2011-09-06 Rick L Orsini método analisador de dados seguro e sistema
US8713686B2 (en) * 2006-01-25 2014-04-29 Ca, Inc. System and method for reducing antivirus false positives
JP2007235323A (ja) * 2006-02-28 2007-09-13 Toshiba Corp 高度機密情報の保存/記録方法、高度機密情報を利用する再生装置および高度機密情報を格納するメモリ
JP2007233924A (ja) * 2006-03-03 2007-09-13 Sony Corp 情報処理システム、情報処理装置および方法、プログラム、並びに記録媒体
US8364965B2 (en) 2006-03-15 2013-01-29 Apple Inc. Optimized integrity verification procedures
US9313248B2 (en) * 2006-04-13 2016-04-12 Johnny Stuart Epstein Method and apparatus for delivering encoded content
US7991206B1 (en) 2007-07-02 2011-08-02 Datascout, Inc. Surrogate heuristic identification
US7840540B2 (en) 2006-04-20 2010-11-23 Datascout, Inc. Surrogate hashing
US8156132B1 (en) 2007-07-02 2012-04-10 Pinehill Technology, Llc Systems for comparing image fingerprints
US8549022B1 (en) 2007-07-02 2013-10-01 Datascout, Inc. Fingerprint generation of multimedia content based on a trigger point with the multimedia content
US8463000B1 (en) 2007-07-02 2013-06-11 Pinehill Technology, Llc Content identification based on a search of a fingerprint database
US9020964B1 (en) 2006-04-20 2015-04-28 Pinehill Technology, Llc Generation of fingerprints for multimedia content based on vectors and histograms
JP5002205B2 (ja) * 2006-07-10 2012-08-15 任天堂株式会社 データ認証方法およびデータ認証システム
JP2008022373A (ja) * 2006-07-13 2008-01-31 Canon Inc 改竄検知情報生成装置、撮像装置、改竄検知情報生成方法、プログラムおよび記憶媒体
US9281004B2 (en) 2006-12-11 2016-03-08 Mitsubishi Electric Corporation Content assessment apparatus, content assessment method, information reproducing apparatus, and information reproducing method
US8364597B2 (en) 2007-02-07 2013-01-29 Panasonic Corporations Recording device, server device, recording method, recording medium with computer program recorded therein and integrated circuit
US8429643B2 (en) * 2007-09-05 2013-04-23 Microsoft Corporation Secure upgrade of firmware update in constrained memory
KR101426270B1 (ko) * 2008-02-13 2014-08-05 삼성전자주식회사 소프트웨어의 전자 서명 생성 방법, 검증 방법, 그 장치,및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로읽을 수 있는 기록매체
JP2009200595A (ja) * 2008-02-19 2009-09-03 Fujitsu Ltd 署名管理プログラム、署名管理方法及び署名管理装置
JP4623176B2 (ja) * 2008-09-17 2011-02-02 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
US20100088745A1 (en) * 2008-10-06 2010-04-08 Fujitsu Limited Method for checking the integrity of large data items rapidly
US20100169570A1 (en) * 2008-12-31 2010-07-01 Michael Mesnier Providing differentiated I/O services within a hardware storage controller
US20120096281A1 (en) * 2008-12-31 2012-04-19 Eszenyi Mathew S Selective storage encryption
US20100228704A1 (en) * 2009-02-20 2010-09-09 All Media Guide, Llc Recognizing a disc
US20100228736A1 (en) * 2009-02-20 2010-09-09 All Media Guide, Llc Recognizing a disc
US8620967B2 (en) 2009-06-11 2013-12-31 Rovi Technologies Corporation Managing metadata for occurrences of a recording
US8887153B2 (en) 2009-11-25 2014-11-11 Kabushiki Kaisha Toshiba Digital signature server and user terminal
US9444620B1 (en) * 2010-06-24 2016-09-13 F5 Networks, Inc. Methods for binding a session identifier to machine-specific identifiers and systems thereof
US8826445B2 (en) * 2010-08-05 2014-09-02 Media Rights Technologies, Inc. Method and system of deterring unauthorized use of media content by degrading the contents waveform
FR2967002B1 (fr) * 2010-10-27 2012-12-14 Viaccess Sa Procede de reception d'un contenu multimedia embrouille a l'aide de mots de controle
WO2012056656A1 (ja) * 2010-10-28 2012-05-03 パナソニック株式会社 改ざん監視システム、保護制御モジュール及び検知モジュール
WO2012120818A1 (ja) * 2011-03-10 2012-09-13 パナソニック株式会社 コンテンツ配信システム、コンテンツ配信サブシステム及び再生装置
WO2012124270A1 (ja) * 2011-03-15 2012-09-20 パナソニック株式会社 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール
JP5947295B2 (ja) * 2011-06-13 2016-07-06 パナソニック株式会社 端末装置、サーバ装置、コンテンツ記録制御システム、記録方法及び記録許否制御方法
WO2013031124A1 (ja) 2011-08-26 2013-03-07 パナソニック株式会社 端末装置、検証装置、鍵配信装置、コンテンツ再生方法、鍵配信方法及びコンピュータプログラム
US9054874B2 (en) * 2011-12-01 2015-06-09 Htc Corporation System and method for data authentication among processors
US9256762B1 (en) * 2011-12-20 2016-02-09 Amazon Technologies, Inc. Securing a remote database
JP5315422B2 (ja) * 2012-01-10 2013-10-16 任天堂株式会社 データ認証方法およびデータ認証システム
EP2831800B1 (en) * 2012-03-26 2020-05-06 Irdeto B.V. Method for protecting data
US8914880B2 (en) * 2012-06-08 2014-12-16 VivoSecurity, Inc. Mechanism to calculate probability of a cyber security incident
US8972715B2 (en) * 2012-07-13 2015-03-03 Securerf Corporation Cryptographic hash function
US9641337B2 (en) * 2014-04-28 2017-05-02 Nxp B.V. Interface compatible approach for gluing white-box implementation to surrounding program
US9672361B2 (en) * 2014-04-30 2017-06-06 Ncr Corporation Self-service terminal (SST) secure boot
RU2667780C2 (ru) * 2014-08-01 2018-09-24 Сони Корпорейшн Способ верификации преобразования формата контента
US10372695B2 (en) 2014-12-27 2019-08-06 Intel Corporation Technologies for computing rolling hashes
CN106547759B (zh) * 2015-09-17 2020-05-22 伊姆西Ip控股有限责任公司 用于选择增量备份方式的方法和装置
US10263965B2 (en) * 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
US11269951B2 (en) * 2016-05-12 2022-03-08 Dolby International Ab Indexing variable bit stream audio formats
US10503654B2 (en) 2016-09-01 2019-12-10 Intel Corporation Selective caching of erasure coded fragments in a distributed storage system
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
EP3408762A1 (en) 2016-12-30 2018-12-05 Google LLC Hash-based dynamic restriction of content on information resources
WO2018211757A1 (ja) * 2017-05-15 2018-11-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 検証方法、検証装置およびプログラム
JP6959155B2 (ja) * 2017-05-15 2021-11-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 検証方法、検証装置およびプログラム
US10909255B2 (en) * 2017-08-24 2021-02-02 Data Republic Pty Ltd Systems and methods to control data access and usage
US10904292B1 (en) * 2018-09-25 2021-01-26 Amazon Technologies, Inc. Secure data transfer device
CN109359261B (zh) * 2018-09-30 2022-07-29 京东方科技集团股份有限公司 数字作品的生成装置、方法及计算机可读存储介质
JP7327490B2 (ja) * 2019-09-03 2023-08-16 日本電信電話株式会社 検証装置、検証システム、検証方法および検証プログラム
JP2021111810A (ja) * 2020-01-06 2021-08-02 富士通株式会社 不正利用検出システム、情報処理装置、不正利用検出プログラムおよびデータ履歴のデータ構造
CN113742657A (zh) * 2020-05-29 2021-12-03 台达电子工业股份有限公司 软件保护方法及其系统
US11750393B2 (en) * 2021-03-30 2023-09-05 Ford Global Technologies, Llc Secure broadcast delivery and verification

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0781003A2 (en) * 1995-12-22 1997-06-25 General Instrument Corporation Of Delaware Generation of cryptographic signatures using hash keys
US6480961B2 (en) * 1999-03-02 2002-11-12 Audible, Inc. Secure streaming of digital audio/visual content
US20030023856A1 (en) 2001-06-13 2003-01-30 Intertrust Technologies Corporation Software self-checking systems and methods
US20030233514A1 (en) * 2002-06-14 2003-12-18 Integrated Device Technology, Inc. Use of hashed content addressable memory (CAM) to accelerate content-aware searches

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8704883D0 (en) * 1987-03-03 1987-04-08 Hewlett Packard Co Secure information storage
JPS63255840A (ja) 1987-04-14 1988-10-24 Nec Corp 光学的記録再生装置における光量制御装置
JP2675032B2 (ja) * 1987-12-21 1997-11-12 株式会社日立製作所 伝票圧縮文の作成方法
JP2997483B2 (ja) 1989-11-08 2000-01-11 株式会社日立製作所 検証用データ生成装置
JPH0668605A (ja) * 1992-08-20 1994-03-11 Csk Corp 磁気カード
JPH10293721A (ja) 1997-02-19 1998-11-04 Canon Inc 改ざんを防止する情報記録方法、情報記録装置及び情報記録媒体
JP3861392B2 (ja) * 1997-07-30 2006-12-20 ソニー株式会社 データ記録装置および方法、データ再生装置および方法、並びに伝送媒体
US6330549B1 (en) * 1997-10-30 2001-12-11 Xerox Corporation Protected shareware
AU2583099A (en) 1998-02-04 1999-08-23 Sun Microsystems, Inc. Method and apparatus for efficient authentication and integrity checking using hierarchical hashing
JP4101975B2 (ja) * 1998-12-02 2008-06-18 オリンパス株式会社 可搬型記憶媒体を用いたデータ記録/再生装置
EP1056010A1 (en) * 1999-05-28 2000-11-29 Hewlett-Packard Company Data integrity monitoring in trusted computing entity
JP3464771B2 (ja) * 1999-08-17 2003-11-10 日本電信電話株式会社 分割部分復号による電子署名作成方法,電子署名作成装置および電子署名作成用プログラム記録媒体
CA2317139C (en) 1999-09-01 2006-08-08 Nippon Telegraph And Telephone Corporation Folder type time stamping system and distributed time stamping system
JP3635017B2 (ja) 1999-09-01 2005-03-30 日本電信電話株式会社 時刻認証システム、サーバ装置、時刻認証方法及び記録媒体
GB9922904D0 (en) * 1999-09-28 1999-12-01 Signum Technologies Limited Method of authenticating digital data works
JP2001155423A (ja) * 1999-11-26 2001-06-08 Toshiba Emi Ltd 不正コピー防止記録媒体
US6574676B1 (en) 2000-01-11 2003-06-03 International Business Machines Corporation System and method for scheduling disk drive commands by expected total access time
AU2001243147A1 (en) 2000-02-17 2001-08-27 General Instrument Corporation Method and apparatus for providing secure control of software or firmware code downloading and secure operation of a computing device receiving downloaded code
JP2001331102A (ja) * 2000-03-14 2001-11-30 Sony Corp データ送出装置、データ復号装置、データ送出方法、データ復号方法、伝送システム
KR100841411B1 (ko) 2000-03-14 2008-06-25 소니 가부시끼 가이샤 전송장치, 수신장치, 전송방법, 수신방법과 기록매체
JP2001265217A (ja) 2000-03-17 2001-09-28 Cti Co Ltd デジタルコンテンツの改ざん監視装置、改ざん監視方法及び記録媒体
JP2001282619A (ja) * 2000-03-30 2001-10-12 Hitachi Ltd コンテンツ改竄検知方法及びその実施装置並びにその処理プログラムを記録した記録媒体
BR0017218A (pt) 2000-04-20 2003-06-24 Yutaka Yasukura Método de inquirição de informação eletrônica
US6470329B1 (en) * 2000-07-11 2002-10-22 Sun Microsystems, Inc. One-way hash functions for distributed data synchronization
JP4608749B2 (ja) * 2000-07-24 2011-01-12 ソニー株式会社 データ処理装置、データ処理方法、およびライセンスシステム、並びにプログラム提供媒体
US6629198B2 (en) * 2000-12-08 2003-09-30 Sun Microsystems, Inc. Data storage system and method employing a write-ahead hash log
JP2002215029A (ja) * 2001-01-22 2002-07-31 Seiko Epson Corp 情報認証装置及びこれを使用したデジタルカメラ
US6626198B2 (en) * 2001-04-09 2003-09-30 Cheng Yuan Tseng Resilient stave support assembly for umbrella
JP4729806B2 (ja) * 2001-04-27 2011-07-20 大日本印刷株式会社 暗号化装置、復号化装置および通信システム
GB0116568D0 (en) * 2001-07-06 2001-08-29 Ncipher Corp Ltd Firmware validation
US20030014658A1 (en) 2001-07-11 2003-01-16 Walker Philip M. System and method of verifying system attributes
US20030133380A1 (en) * 2002-01-14 2003-07-17 Yaakov Safrin Data disc copy protection
JP2003318887A (ja) 2002-04-25 2003-11-07 Nec Corp コンテンツ配送システム、方法およびコンテンツ受信端末
JP2004022069A (ja) * 2002-06-17 2004-01-22 Ricoh Co Ltd 情報記録装置と情報記録方法とプログラムと記録媒体と情報記録システム
US20040068559A1 (en) * 2002-10-04 2004-04-08 Shaw Terry D. Method for detection of unauthorized computer system usage
CN1422034A (zh) * 2002-12-17 2003-06-04 胡祥义 使用对称密码实现网络数字签名
US8245032B2 (en) 2003-03-27 2012-08-14 Avaya Inc. Method to authenticate packet payloads
US7454443B2 (en) * 2003-08-26 2008-11-18 Tamir Ram Method, system, and program for personal data management using content-based replication
JP2005094146A (ja) 2003-09-12 2005-04-07 Nippon Telegr & Teleph Corp <Ntt> バルク型時刻認証要求用プログラム、及びバルク型時刻認証要求用記録媒体、並びに、検証装置、検証方法、検証用プログラム、及び検証用記録媒体
US7386754B2 (en) * 2003-10-16 2008-06-10 Seagate Technology Llc Method and apparatus to improve magnetic disc drive reliability using excess un-utilized capacity
JP2006033729A (ja) 2004-07-21 2006-02-02 Ricoh Co Ltd 文書電子化方法、文書電子化装置及び文書電子化プログラム
US20060233514A1 (en) * 2005-04-14 2006-10-19 Shih-Hsiung Weng System and method of video editing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0781003A2 (en) * 1995-12-22 1997-06-25 General Instrument Corporation Of Delaware Generation of cryptographic signatures using hash keys
US6480961B2 (en) * 1999-03-02 2002-11-12 Audible, Inc. Secure streaming of digital audio/visual content
US20030023856A1 (en) 2001-06-13 2003-01-30 Intertrust Technologies Corporation Software self-checking systems and methods
US20030233514A1 (en) * 2002-06-14 2003-12-18 Integrated Device Technology, Inc. Use of hashed content addressable memory (CAM) to accelerate content-aware searches

Also Published As

Publication number Publication date
WO2005096119A1 (en) 2005-10-13
JP2007535189A (ja) 2007-11-29
CN101086880A (zh) 2007-12-12
TW200539706A (en) 2005-12-01
US20080034442A1 (en) 2008-02-07
US20120290846A1 (en) 2012-11-15
EP1850258A3 (en) 2008-01-16
BRPI0509577A (pt) 2007-09-25
US7743261B2 (en) 2010-06-22
EP1840782A3 (en) 2008-02-13
US20140129842A1 (en) 2014-05-08
TWI364685B (en) 2012-05-21
CN101329714A (zh) 2008-12-24
TW200816021A (en) 2008-04-01
JP4084827B2 (ja) 2008-04-30
KR20060135934A (ko) 2006-12-29
US20070198838A1 (en) 2007-08-23
US7900062B2 (en) 2011-03-01
CN101086759B (zh) 2012-06-20
JP4654219B2 (ja) 2011-03-16
JP4607144B2 (ja) 2011-01-05
ES2660165T3 (es) 2018-03-21
AU2005227472A1 (en) 2005-10-13
JP2008176814A (ja) 2008-07-31
TW200821892A (en) 2008-05-16
TWI364683B (en) 2012-05-21
US8972737B2 (en) 2015-03-03
MY150302A (en) 2013-12-31
ATE509321T1 (de) 2011-05-15
US9270470B2 (en) 2016-02-23
CA2560395A1 (en) 2005-10-13
CA2560395C (en) 2014-06-17
CN101329714B (zh) 2015-06-17
EP1730619B1 (en) 2011-05-11
EP1840782B1 (en) 2017-11-22
EP1730619A1 (en) 2006-12-13
CN100419625C (zh) 2008-09-17
AU2005227472B2 (en) 2010-12-09
JP2007274717A (ja) 2007-10-18
EP1840782A2 (en) 2007-10-03
US20080034443A1 (en) 2008-02-07
ES2363517T3 (es) 2011-08-08
JP4654258B2 (ja) 2011-03-16
US7549061B2 (en) 2009-06-16
CN1961274A (zh) 2007-05-09
US8667291B2 (en) 2014-03-04
BRPI0509577B1 (pt) 2017-12-12
CN101086759A (zh) 2007-12-12
US20150127948A1 (en) 2015-05-07
TWI366775B (en) 2012-06-21
CN101086880B (zh) 2010-06-02
US8261084B2 (en) 2012-09-04
EP1850258A2 (en) 2007-10-31
US20110119493A1 (en) 2011-05-19
JP2007274716A (ja) 2007-10-18
MY147696A (en) 2013-01-15

Similar Documents

Publication Publication Date Title
KR101067613B1 (ko) 비인증 콘텐츠 검출시스템
MXPA06011197A (en) Unauthorized contents detection system

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: 20140902

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150730

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160818

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170823

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190820

Year of fee payment: 9