KR20040082381A - 데이터 처리 - Google Patents
데이터 처리 Download PDFInfo
- Publication number
- KR20040082381A KR20040082381A KR10-2004-7009066A KR20047009066A KR20040082381A KR 20040082381 A KR20040082381 A KR 20040082381A KR 20047009066 A KR20047009066 A KR 20047009066A KR 20040082381 A KR20040082381 A KR 20040082381A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- key
- payload
- decoder
- receiver
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 claims description 80
- 238000003860 storage Methods 0.000 claims description 51
- 238000004891 communication Methods 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 22
- 238000007726 management method Methods 0.000 description 42
- 238000004590 computer program Methods 0.000 description 38
- 230000006870 function Effects 0.000 description 35
- 230000008569 process Effects 0.000 description 21
- 230000002452 interceptive effect Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 14
- 230000015572 biosynthetic process Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 6
- 239000000284 extract Substances 0.000 description 6
- 238000003672 processing method Methods 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010899 nucleation Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 208000034188 Stiff person spectrum disease Diseases 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4437—Implementing a Virtual Machine [VM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/26606—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing entitlement messages, e.g. Entitlement Control Message [ECM] or Entitlement Management Message [EMM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/418—External card to be used in combination with the client device, e.g. for conditional access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4623—Processing of entitlement messages, e.g. ECM [Entitlement Control Message] or EMM [Entitlement Management Message]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/167—Systems rendering the television signal unintelligible and subsequently intelligible
- H04N7/1675—Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
본 발명에 따른 가상 스마트카드, 가상 관리자, 및 가상 스마트카드 및/또는 가상 관리자를 포함하는 데이터 처리장치가 개시되어 있다.
Description
디지털 텔레비전 시스템은 텔레비전 채널을 아날로그 보다는 디지털 형태로 시청자에게 전송한다. 디지털 채널은 전송기 종단에서 디지털 데이터 스트림으로 인코딩되고, 디지털 수신기/디코더를 이용하여 수신기 종단에서 디코딩된다. 상호작용성(interactivity)을 허용하기 위해서, 텔레비전 채널을 전달하는 동일한 매체를 통해, 또는 그렇지 않으면 전화 링크와 같은 다른 매체를 통해 업링크가 제공될 수 있다. 디지털 오디오, 소프트웨어 및 대화식(interactive) 데이터와 같은 추가적인 유형의 데이터가 존재할 수 있거나 또한 방송된다. 본 명세서에서 사용되는 바와 같이, 용어 "디지털 텔레비전 시스템"은 예를 들어 임의의 위성, 지상, 케이블 및 다른 시스템을 포함한다.
본 명세서에서 사용되는 용어 "수신기/디코더"는 여러 다른 수단에 의해 방송 또는 전송될 수 있는, 바람직하게 MPEG 포맷을 갖는 인코딩된 또는 인코딩되지 않은 신호, 예를 들어 텔레비전 및/또는 라디오 신호를 수신하기 위한 수신기를 내포할 수 있다. 상기 용어는 또한 수신된 신호를 디코딩하기 위한 디코더를 내포할 수 있다. 이러한 수신기/디코더의 실시예는, 물리적으로 분리된 수신기와 협력하여 기능하는 디코더, 또는 웹 브라우저, 비디오 레코더 또는 텔레비전과 같은, 추가 기능을 포함하는 디코더와 같은, 예를 들어 "셋탑 박스"내에서 수신된 신호를 디코딩하기 위해 수신기와 통합된 디코더를 포함할 수 있다.
용어 MPEG는 국제표준기구 워킹그룹인 "동화상 전문가그룹(Motion Pictures Expert Group)", 및 특히 그러나 배타적이지 않게, 디지털 텔레비전 애플리케이션을 위해 개발되고 문서 ISO 13818-1, ISO 13818-2, ISO 13818-3, 및 ISO 13818-4에서 설명된 MPEG-2 표준, 및 MPEG-4 및 다른 예상되는 MPEG 표준에 의해 개발된 데이터 전송 표준을 언급한다. 본 특허출원의 배경에서, 상기 용어는 디지털 데이터 전송 분야에 적용가능한 MPEG 포맷의 모든 변경, 수정 또는 개발을 포함한다.
알려진 수신기/디코더에서, 착탈가능하게 연결가능한 스마트카드는 {조건부 액세스 데이터를 디코딩하는데 필요한 마스터 및 다른 이용(exploitation) 키와 같은} 암호 '비밀'의 보안 저장을 제공하고, 또한 암호 '비밀'에 대하여 중요한 암호화 동작을 수행한다. 일반적으로, 전용 스마트카드 판독기가 또한 사용되어, 스마트카드의 이용을 필요로 하는 수신기/디코더의 다른 소프트웨어 및 하드웨어 구성요소에 대한 표준 (변경할 수 없다면) 인터페이스를 제공한다.
다른 개발에서, 수신기/디코더에 부착되거나 또는 수신기/디코더내에 포함된대용량 저장 디바이스상에서의 수신된 오디오/비디오 컨텐트의 저장(및 이후 재생)을 허용하기 위한 수신기/디코더용 시스템이 제안되어 왔다. 많은 그러한 시스템들은 보안적인 이유로 오디오/비디오 컨텐트를 스크램블링된 형태로 저장하고, 주로 보안적인 이유로, (스마트카드가 라이브 컨텐트 시청 동안 사용되는 방식과 유사한 방식으로) 재생하는 동안 컨텐트를 디스크램블링하기 위해 전술한 바와 같은 스마트카드를 이용한다.
본 발명은 전술한 종래 기술에서 확인된 문제점들을 제기하고자 한다.
본 발명은 가상 스마트카드, 가상 스마트카드 관리자, 데이터 처리장치, 조건부 액세스 시스템, 수신기/디코더, 방송시스템, 데이터 처리방법, 암호키 생성방법, 암호키 값 저장방법, 컴퓨터 프로그램 제품, 컴퓨터 판독가능 매체, 및 신호에 관한 것이다. 본 발명은 수신기/디코더용 조건부 액세스 시스템과 관련된 특정 애플리케이션을 발견한다.
도 1은 위성 디지털 텔레비전 시스템의 개략도.
도 2는 케이블 디지털 텔레비전 시스템의 개략도.
도 3은 더 상세하게 도시된 헤드-엔드를 갖는 전체 시스템 도면.
도 4는 수신기/디코더의 구성요소 아키텍처의 개략도.
도 5는 수신기/디코더의 소프트웨어 아키텍처의 도면.
도 6은 도 5의 상반부를 더 상세하게 나타내는 도면.
도 7은 도 5의 하반부를 더 상세하게 나타내는 도면.
도 8은 도 5의 하반부의 대안적인 실시예를 나타내는 도면.
도 9는 컨텐트 관리 보호 시스템의 개략도.
도 10은 컨텐트 관리 보호 시스템을 이용하는 분산시스템의 개략도.
도 11은 데이터를 레코딩하도록 배치된, 수신기/디코더내의 컨텐트 관리 보호 시스템의 구현의 개략도.
도 12는 데이터를 재생하도록 배치된, 수신기/디코더내의 컨텐트 관리 보호 시스템의 구현의 개략도.
도 13은 컨텐트 관리 보호 시스템을 이용한 데이터 레코딩을 나타내는 도면.
도 14는 컨텐트 관리 보호 시스템을 이용한 데이터 재생을 나타내는 도면.
도 15는 컨텐트 관리 보호 시스템과 하드디스크 비디오 레코더 사이의 관계를 나타내는 도면.
도 16은 컨텐트 관리 보호 시스템을 더 상세하게 나타내는 개략도.
도 17은 컨텐트 관리 보호 시스템의 서로 다른 구성요소들 사이에서의 명령의 흐름을 나타내는 도면.
도 18은 컨텐트 관리 보호 시스템의 서로 다른 구성요소들 사이에서의 명령의 흐름을 추가로 예시하는 도면.
도 19는 난수 생성기를 이용하여 암호키를 생성하는 시스템의 개략도.
도 20은 키 분산기를 이용하여 암호키를 생성하는 시스템의 개략도.
도 21은 암호키를 저장 및 검색하는 시스템의 개략도.
도 22는 상기 시스템에 따라 암호키를 저장하는 프로세스를 나타내는 도면.
도 23은 암호키를 저장하는 프로세스를 추가로 나타내는 도면.
도 24는 ECM을 CMM내에 캡슐화하는 것을 나타내는 도면.
따라서, 본 발명의 제 1 양상에서, 가상 스마트카드가 제공된다.
본 명세서에서 사용되는 용어 "스마트카드"는 바람직하게 특히 암호화 동작을 수행하기 위해 예를 들어 마이크로프로세서 및/또는 메모리 기억장치를 내재하는 임의의 종래 칩 기반 휴대용 카드 유형의 디바이스를 내포한다. 이것은 PCMCIA 카드, SIM 카드 등을 포함할 수 있다. 특히, 용어 "스마트카드"는 특정한 형태 또는 크기를 수반하도록 예정되기보다는 더 많은 휴대가능성 및/또는 암호 처리 능력을 수반하도록 예정되고, 따라서 대안적인 물리적 형태를 갖는 칩 디바이스, 예를 들어 종종 TV 디코더 시스템에서 사용되는 것과 같은 키 형상의 디바이스가 또한 상기 용어에 포함된다.
바람직하게, 상기 스마트카드는 적어도 부분적으로 소프트웨어로 제공되고, 임의의 적절한 조합에서, 적어도 부분적으로 하드웨어로 제공될 수도 있다. 예를 들어, 암호화 구조에서 보편적으로 사용되는 난수 생성기는 하드웨어로 구현될 수있고, 더 많은 관리자 기능이 소프트웨어로 구현된다.
가상 스마트카드를 제공함으로써, 그렇지 않으면 실제의 물리적인 스마트카드의 존재를 필요로 하는 시스템에 융통성도(a degree of flexibility)가 제공될 수 있다.
이러한 중요한 특징은 또한 가상 스마트카드를 포함하는 데이터 처리장치의 형태로 제공된다. 본 명세서에서 사용되는 용어 "데이터"는 바람직하게 일반적으로 저장 형태 및 신호 형태(전기 또는 그 외)의 양쪽 형태를 갖는 정보를 내포한다. 바람직하게, 상기 데이터는 가상 스마트카드에 의해 처리된다.
이러한 특징은 추가로 가상 스마트카드를 제공하기 위해서 스마트카드를 에뮬레이팅하기 위한 (프로세서 및 관련 메모리와 같은) 수단을 포함하는 데이터 처리장치의 형태로 제공된다.
스마트카드를 에뮬레이팅하기 위한 수단은 바람직하게 암호화 동작을 수행하기 위한 (동일하거나 또는 추가적인 프로세서와 같은) 수단, 및 암호 데이터를 저장하기 위한 (동일하거나 추가적인 메모리와 같은) 수단을 포함한다. 암호화 동작을 수행하기 위한 상기 수단은 바람직하게 가상 스마트카드와 동등한 실제 스마트카드내의 대응하는 수단보다 더 빠르도록 선택되어서, 실제 스마트카드에 비해 개선된 성능을 초래할 수 있다. 유사하게, 암호 데이터를 저장하기 위한 상기 수단은 바람직하게 실제 스마트카드내의 대응하는 수단보다 더 빠르고/빠르거나 더 많은 용량을 가져서, 더 개선된 성능을 초래할 수 있다. 암호화 동작을 수행하기 위한 상기 수단은 예를 들어 수신기/디코더 호스트 프로세서일 수 있고, 암호 데이터를저장하기 위한 상기 수단은 예를 들어 상기 호스트 프로세서와 관련된 RAM일 수 있다.
이것은 광범위한 암호화 업무가 가상 스마트카드내에서 에뮬레이팅되도록 허용할 수 있다. 추가로, 이것은 (종래의 스마트카드가 제어워드를 해독하는데 걸리는 시간 길이 및 일반적인 권한 관리와 같은 다른 시간 소모 동작에 드는 추가적인 시간양이 주어지면, 상기 스마트카드가 실현에 실패할 수 있는) 고속 재생 모드동안 컨텐트의 성공적인 실시간 디스크램블링을 허용하는 것과 같은, 종래의 스마트카드의 기능을 뛰어넘는 가상 스마트카드의 기능을 허용할 수 있다.
본 발명의 관련된 양상에서, 가상 스마트카드의 더 효율적인 동작을 허용할 수 있는 가상 스마트카드 관리자가 제공된다. 특히, 가상 스마트카드 관리자는 가상 스마트카드 기능의 구현에 추상화 계층(abstraction layer)을 제공할 수 있다. 본 명세서에서 사용되는 용어 "관리자"는 바람직하게 제어, 인터페이스 및 데이터 루팅 및/또는 처리 기능 중 적어도 하나를 갖는 엔티티를 내포한다.
이러한 중요한 특징은 또한 가상 스마트카드 관리자를 포함하는 데이터 처리장치의 형태에서 독립적으로 제공된다.
상기 장치는 바람직하게 가상 스마트카드와 인터페이스하기 위한 수단을 더 포함하여, 가상 스마트카드의 관리를 간소화한다.
이러한 중요한 특징은 또한 독립적으로 제공된다. 따라서, 본 발명의 관련된 양상에서, 가상 스마트카드와 인터페이스하기 위한 수단을 포함하는 데이터 처리장치가 제공된다. 다시, 상기 데이터는 바람직하게 가상 스마트카드에 의해 처리된다.
상기 장치는 바람직하게 암호 데이터를 가상 스마트카드와 교환하기 위한 수단을 더 포함한다. 암호 데이터를 교환하기 위한 상기 수단은 암호 데이터를 가상 스마트카드로 전송하기 위한 수단, 또는 가상 스마트카드로부터 암호 데이터를 수신하기 위한 수단, 또는 양쪽 모두를 포함할 수 있다. 암호 데이터를 전송 및 수신하기 위한 상기 수단은 예를 들어 후술되는 가상 스마트카드 관리자와 가상 스마트카드 사이에서의 이벤트 및 기능 호출과 같은 이벤트 및 기능 호출일 수 있다.
따라서, 가상 스마트카드의 관리가 더 용이해질 수 있다.
만일 상기 장치가 가상 스마트카드와 동등한 실제 스마트카드의 존재를 결정하기 위한 수단을 더 포함한다면, 상기 장치는 바람직하게 암호 데이터를 가상 스마트카드와 동등한 실제 스마트카드와 교환하기 위한 수단을 더 포함한다. 가상 스마트카드는 가상 스마트카드와 동등한 실제 스마트카드에 의해 제공되는 특징의 서브세트만을 구현할 수 있고, 그 반대의 경우도 마찬가지이다. 가상 스마트카드와 동등한 실제 스마트카드의 존재를 결정하고 선택적으로 암호 데이터를 실제 스마트카드와 교환함으로써, 데이터 처리를 위해 추가적인 선택권이 제공될 수 있다.
상기 장치는 스마트카드를 선택하기 위한 수단을 포함할 수 있다. 적절한 스마트카드의 선택은 상기 시스템에 융통성도를 추가할 수 있다.
특히, 상기 장치는 선택된 스마트카드를 이용하여 데이터를 디코딩하기 위한 수단을 더 포함할 수 있고, 스마트카드를 선택하기 위한 상기 수단은 데이터의 특징에 따라서 스마트카드를 선택하도록 적응된다. 상기 특징은 예를 들어 데이터의상업적 중요성, (바람직하게 측정단위 시간으로서) 데이터의 지속시간, 데이터의 크기, 또는 데이터가 분산된 범위일 수 있다. 따라서 더 많은 융통성이 제공될 수 있다.
상기 데이터는 전자북, 소프트웨어, 게임 등과 같은 오디오/비디오 또는 다른 컨텐트를 포함할 수 있다. 본 명세서에서 사용되는 용어 "오디오/비디오"는 바람직하게 오디오 또는 비디오 소재, 또는 그 2가지의 결합을 내포한다. 수신기/디코더에 의해 수신되는 방송 신호의 환경에서, 상기 용어는 서브타이틀, 텔레텍스트 동기화 및 텔레비전 프로그램을 구성하는 오디오 및 비디오 구성요소와 밀접하게 관련하여 전송되는 다른 데이터를 포함할 수 있다.
상기 장치는 페이로드 및 페이로드를 포함하는 암호화된 데이터 중 하나를 선택하기 위한 수단, 선택된 페이로드 또는 암호화된 데이터를 저장하기 위한 수단, 및 저장된 암호화된 데이터를 페이로드로 교체하기 위한 수단을 더 포함할 수 있다. 이것은 예를 들어 먼저, 이용가능한 경우에, 컨텐트 관리 메시지(CMM: Content Management Message)내에 암호 키{일반적으로 해당 암호사용기간(cryptoperiod)동안의 제어워드}를 저장하거나, 또는 그렇지 않으면, 암호 키{일반적으로 관련 인타이틀먼트 제어 메시지(ECM: Entitlement Control Message)}를 포함하는 암호화된 데이터를 저장한 다음, 이어서 대응하는 키가 사용가능한 경우에 암호화된 데이터를 상기 키로 교체하는 프로세스에 대응할 수 있다(후술되는 바와 같음).
상기 수단을 제공함으로써, 저장 시간에 (만일 예를 들어 결국 페이로드를포함할 특정 데이터 유닛이 그 시간에 구성되고 있다면) 페이로드를 해독해야 할 필요성이 회피될 수 있다.
이러한 중요한 특징은 또한 독립적으로 제공된다.
따라서, 본 발명의 관련된 양상에서, 페이로드 및 페이로드를 포함하는 암호화된 데이터 중 하나를 선택하기 위한 수단, 선택된 페이로드 또는 암호화된 데이터를 저장하기 위한 수단, 및 저장된 암호화된 데이터를 페이로드로 교체하기 위한 수단을 포함하는 데이터 처리장치가 제공된다.
전술한 바와 같이, 암호화된 데이터는 주어진 컨텐트 섹션을 디스크램블링하는데 필요한 제어워드(들)의 페이로드를 갖는 인타이틀먼트 제어 메시지(ECM)일 수 있다. 따라서, 상기 선택 수단은 바람직하게 적어도 하나의 제어워드 및 ECM 중의 하나를 선택하도록 적응된다.
더 상세하게, 상기 장치는 바람직하게 암호화된 데이터를 스마트카드로 전송하기 위한 수단, 및 암호화된 데이터에 포함된 페이로드 또는 페이로드가 해독될 수 없다는 것을 나타내는 응답 중 하나를 스마트카드로부터 수신하기 위한 수단을 더 포함한다. 바람직하게, 페이로드 및 암호화된 데이터 중 하나를 선택하기 위한 수단은 만일 이용가능하다면 페이로드를, 그렇지 않으면 페이로드를 포함하는 암호화된 데이터를 선택하도록 적응된다. 이것은 추가적인 융통성을 제공할 수 있다.
또한, 상기 장치는 바람직하게 데이터의 저장 및 재생 중의 적어도 하나를 수행하기 위한 수단을 더 포함하고, 상기 페이로드는 상기 데이터와 관련된다. 예를 들어, 상기 데이터는 오디오/비디오 컨텐트일 수 있고, 상기 페이로드는 상기컨텐트의 특정 부분을 위한 제어워드를 포함하는 ECM일 수 있다. 이것은 유용하게 컨텐트의 저장 또는 재생을 컨텐트의 디스크램블링(또는 스마트카드의 이용을 필요로 하는 다른 동작)과 통합할 수 있다.
바람직하게, 상기 장치는 암호화된 데이터 객체를 추가로 암호화된 데이터 객체내에 캡슐화하기 위한(encapsulating) 수단을 더 포함한다. 이것은 암호화된 데이터 객체의 보안성을 더 증가시킬 수 있고, 단일 인터페이스 및/또는 적절한 추상화가 제공되도록 허용함으로써 클라이언트 프로세스와의 교환을 더 간소화할 수 있다. 또한, 상기 장치는 바람직하게 전술한 이점을 갖는, ECM을 CMM내에 캡슐화하기 위한 수단을 더 포함한다.
바람직하게, 상기 장치는 암호키를 이용하여 저장된 페이로드 또는 암호화된 데이터를 암호화하기 위한 수단을 더 포함한다. 또한, 상기 장치는 바람직하게 인증키를 이용하여 저장된 페이로드 또는 암호화된 데이터를 인증하기 위한 수단을 더 포함한다. 양쪽 경우에서, 이것은 더 우수한 보안성을 제공할 수 있다.
추가로, 상기 장치는 바람직하게 통신 암호키를 이용하여 상기 장치와 스마트카드 사이의 통신을 암호화하기 위한 수단을 더 포함하고, 바람직하게 통신 인증키를 이용하여 상기 장치와 스마트카드 사이의 통신을 인증하기 위한 수단을 더 포함한다. 이것은 더 추가적인 보안성을 제공할 수 있다.
전술한 암호키 및 인증키는 예를 들어 공용키 암호법과 함께 이용하기 위해 공용키와 개인키 쌍으로 구성될 수 있다. 추가로, 편의상 통신 암호키는 상기 암호키와 동일하거나 또는 상기 암호키로부터 유도될 수 있고, 유사하게 통신 인증키는상기 인증키와 동일하거나 또는 상기 인증키로부터 유도될 수 있다.
상기 장치는 적어도 하나의 세션을 설정하기 위한 수단, 및 각각의 세션 식별자를 해당 또는 각각의 세션과 관련시키기 위한 수단을 더 포함할 수 있다. 이것은 스마트카드 또는 카드의 관리를 추가로 지원할 수 있다.
상기 장치는 암호키/인증키, 바람직하게 전술한 바와 같은 키를 생성하기 위해 마스터 세션 키를 이용하는 수단을 더 포함할 수 있다. 상기 이용 수단은 바람직하게 원래 마스터 세션 키 및 다양화 값(diversifying value)(바람직하게 정수)을 입력으로서 수용하고, 추가적인 암호키를 출력으로서 생성하는 다양화 기능(diversifying function)을 포함한다. 추가로, 다양화 기능은 바람직하게, 입력 다양화 범위에서의 그 출력이 바람직하게 대체로 모두 암호적으로 강력한 키가 되도록 선택된다. 공용/개인 암호 시스템에서, 상기 다양화 기능은 바람직하게 상기 출력의 암호 강도를 보장하기 위해서 다양한 소수(prime number) 특성을 이용한다.
이것은 특히 복수의 키가 생성될 경우에 이러한 암호키/인증키의 생성을 간소화할 수 있다.
이러한 중요한 특징은 또한 독립적으로 제공된다. 따라서, 본 발명의 관련된 양상에서, 암호키를 저장하기 위한 수단, 및 저장된 암호키를 각각 암호화 및 인증하기 위해 암호키 및 인증키 중 하나를 생성하기 위해서 마스터 세션 키를 이용하는 수단을 포함하는 데이터 처리장치가 제공된다.
추가로, 암호키/인증키는 주어진 세션과 관련될 수 있고, 이 경우에 상기 이용 수단은 대응하는 세션 식별자를 이용하여 마스터 세션 키를 다양화하도록 적응될 수 있다. 이것은 임의의 수의 키를 생성하기 위한 조직적이고 간단한 방법을 제공할 수 있다.
상기 장치는 추가 세션을 암호화/인증하기 위해 암호키/인증키를 이용하는 수단을 더 포함할 수 있다. 예를 들어, HDVR과 CMPS, 그리고 CMPS와 가상 스마트카드 사이의 세션을 암호화 및/또는 인증하기 위해 동일한 키 또는 키들이 사용될 수 있다(모두 후술됨). 이것은 생성될 필요가 있는 키의 수를 감소시킴으로써 계산 부담을 감소시킬 수 있다.
상기 장치는 바람직하게 수신기/디코더내의 비-암호 데이터에 따라서 암호키/인증키를 생성하기 위한 수단을 더 포함한다. 비-암호 데이터는 바람직하게 수신기/디코더에 고유하거나, 또는 그렇지 않으면 다른 곳의 대응하는 비-암호 데이터와 다르다. 바람직하게, 또한 비-암호 데이터는 암호키를 생성하는 것보다 추가적인 사용을 갖고, 바람직하게 사실상 확률적이다(즉, 일부 범위까지 예측불가능함).
이것은 이러한 암호키/인증키의 고속 생성을 허용할 수 있다.
이러한 중요한 특징은 또한 독립적으로 제공된다. 따라서, 관련된 양상에서, 수신기/디코더내의 비-암호 데이터에 따라서 암호키를 생성하기 위한 수단을 포함하는 데이터 처리장치가 제공된다.
바람직하게, 상기 장치는 난수 생성기, 비-암호 데이터를 난수 생성기에 시딩(seeding)하기 위한 수단, 및 난수 생성기의 출력에 따라서 키를 생성하기 위한수단을 더 포함한다. 이것은 알려진 난수 생성기를 이용하여 키를 생성하는 유용한 방법을 제공할 수 있다.
상기 장치는 바람직하게, 무작위적, 예측불가능, 시변화 및 지리적 변화 특성 중 적어도 하나의 특성을 측정하기 위한 수단, 및 해당 또는 각각의 특성에 따라서 키를 생성하기 위한 수단을 더 포함한다. 바람직하게 수신기/디코더의, 바람직하게 적어도 3, 5, 10, 20 또는 50개 특성이 측정된다. 이것은 결과적인 키의 무작위성(randomness)을 지원할 수 있다.
특히, 상기 키 생성 수단은 수신기/디코더에 의해 수신되는 비트 스트림의 특성, 수신기/디코더내의 하드웨어 환경의 특성, 수신기/디코더내의 소프트웨어 환경의 특성, 및 수신기/디코더 외부 환경의 측정가능한 특성 중 적어도 하나에 따라서 키를 생성하도록 적응될 수 있다. 이러한 특성은 예를 들어, 튜너의 비트 에러율(BER: bit error rate), 신호 레벨, 수신기/디코더 소프트웨어의 특정 부분에 대한 액세스 횟수, 디튜닝된(detuned) 라디오 주파수(RF) 수신기의 출력 등을 포함할 수 있다.
상기 키 생성 수단은 키가 요구되기 전에, 그리고 바람직하게 (예를 들어, 재부팅 이후와 같이) 수신기/디코더의 초기화 또는 재초기화에 응답하여 키를 생성하도록 적응될 수 있다. 대안적으로 또는 추가적으로, 상기 장치는 키의 공급을 필요로 하는 동작을 수행하기 위한 명령의 호출(invocation)에 응답하여 키를 생성하기 위한 수단을 더 포함할 수 있다. 이러한 특징들은 결합하여 또는 독립적으로 키의 생성에 있어서의 더 많은 융통성을 제공할 수 있다.
본 명세서에서 사용되는 용어 "명령"은, 바람직하게 메모리내에서의 전기 임펄스의 형태, 또는 예를 들어 적절한 데이터 캐리어상에서의 루틴의 레코딩과 같은 더 영구적인 형태를 갖는, 지정된 기능을 수행하도록 프로그래밍된 소프트웨어 루틴의 물리적 표명(manifestation)을 바람직하게 내포한다. 바람직하게, 상기 루틴의 표명은 프로세서에 의해 즉시 실행가능하여, 예를 들어 객체 코드로서 저장된다. 상기 용어는 또한 상기 루틴을 실행하기 위해 물리적으로 내장된 지령의 형태로, 또는 상기 루틴이 실행되게 하도록 디자인된, 원격 프로시저 콜(RPC: remote procedure call)과 같은 실제 신호로서, 이러한 루틴의 실제 호출을 포함하도록 확대될 수 있다.
상기 장치는 암호키/인증키, 바람직하게 전술한 바와 같은 키를 저장하기 위한 수단을 더 포함할 수 있다. 이것은 이러한 키를 재형성할 필요성을 회피함으로써 시스템의 효율성을 개선할 수 있다. 추가로, 상기 장치는 예를 들어 상기 키가 이용가능한 보안 레벨에서 매우 유용한 것으로 생각되는 경우에, 상기 키를 저장할지 여부를 결정하기 위한 수단을 더 포함할 수 있다. 이것은 시스템의 보안성을 개선할 수 있다.
상기 장치는 바람직하게 상기 키를 구성할 수 있는 데이터를 각각의 복수의 위치에 저장하기 위한 수단을 더 포함한다. 암호키는 단지 암호키 값을 포함할 수 있을 뿐만 아니라, 예를 들어 어떠한 마스터 키, 키 생성 알고리즘, 및 (예를 들어, 세션 ID와 같은) 키 분산기(diversifier)를 포함할 수 있다. 또한, 복수의 위치는 바람직하게 (적어도 부분적으로) 떨어져 있고 인접하지 않으며, 방송 센터,가입자 데이터 센터, 스마트카드, 수신기/디코더 등과 같은 임의의 수의 디바이스내에 존재할 수 있다. 추가로, 복수의 위치는 수신기/디코더내에 어떠한 EEPROM, RAM, 플래시 RAM, 하드디스크 및 스마트카드를 포함할 수 있다. 상기 데이터는 유리하게 또한 상기 장치 자체내에 적어도 부분적으로 저장될 수 있어서, 데이터의 노출을 축소시킬 수 있다. 추가로, 예를 들어 단일 위치보다는 복수의 위치에서 상기 키를 구성할 수 있는 데이터에 의해 시스템의 보안성이 개선될 수 있다.
이러한 중요한 특징은 또한 독립적으로 제공된다. 따라서, 본 발명의 관련 양상에서, 상기 키를 구성할 수 있는 데이터를 각각의 복수의 위치에 저장하기 위한 수단을 포함하는 데이터 처리장치가 제공된다.
상기 장치는 상기 키를 복수의 부분으로 분할하기 위한 수단, 및 상기 복수의 부분들을 각각의 복수의 위치에 저장하기 위한 수단을 포함할 수 있다. 상기 분할 수단은 암호키를 나타내는 데이터 비트 시퀀스를, 더 작은 수의 데이터 비트로 각각 구성되는 복수의 부분으로 분할하도록 적응될 수 있고, 상기 복수 부분의 저장 수단은 상기 부분들을 특정 저장 매체내의 서로 다른 어드레스에 저장하도록 적응될 수 있다. 바람직하게, 상기 부분들은 1, 2, 4, 8, 16, 32 또는 더 많은 비트의 배수로 구성된다. 바람직하게, 상기 부분들 중 적어도 2개, 그리고 바람직하게 상기 부분들 모두는 동일한 크기를 갖는다.
비교적 큰 크기의 키에 비해 더 작은 (따라서 인지하기 더 어려운) 부분들을 형성함으로써, 상기 키 데이터는 더 용이하게 뷰에서 감춰질 수 있다.
따라서, 상기 저장 수단은 수신기/디코더내에 적어도 부분적으로 저장하도록적응될 수 있다. 이것은 저장을 간소화하고 외부 저장 소스에 대한 의존성을 감소시킬 수 있다.
바람직하게, 상기 장치는 복수의 위치가 수신기/디코더 내내 의사난수적으로 분산되도록 복수의 위치를 선택하기 위한 수단을 포함한다. 이것은 다시 관련 키를 숨기는 것을 도울 수 있다. 바람직하게, 또한 상기 저장수단은 복수의 물리적 디바이스내에 저장하도록 적응되어서, 전술한 바와 같은 동일한 이점을 갖는다.
상기 장치는 또한 복수의 위치 중 적어도 하나가 배치되는, 대체로 난수의 영역을 형성하기 위한 수단을 포함할 수 있다. 암호키가 때로 그 명확한 무작위성에 의해 식별될 수 있기 때문에, 대체로 무작위 값 영역내에 키 구성요소를 저장하는 것은 키를 더 효율적으로 숨길 수 있다.
상기 장치는 바람직하게 각각의 복수의 위치로부터 복수의 키 부분을 판독하기 위한 수단, 및 암호키를 형성하기 위해 상기 키 부분들을 결합하기 위한 수단을 더 포함한다. 바람직하게, 상기 키 부분 결합 수단은 (선형 대수 변환의 경우에 매트릭스 반전과 같은) 복수의 키 부분들에 대해 가역 변환을 수행하도록 적응된다. 이것은 저장된 암호키의 재생을 용이하게 할 수 있다.
관련된 양상에서, 프로세서 및 관련 메모리를 포함하는 데이터 처리장치가 제공되고, 상기 프로세서는 가상 스마트카드를 제공하기 위해 스마트카드를 에뮬레이팅하도록 적응된다.
바람직하게, 상기 장치는 가상 스마트카드를 더 포함한다. 상기 프로세서는 또한 암호화 동작을 수행하도록 적응될 수 있고, 상기 메모리는 암호 데이터를 저장하도록 적응될 수 있다.
추가적인 관련 양상에서, 프로세서 및 관련 메모리를 포함하는 데이터 처리장치가 제공되고, 상기 프로세서는 가상 스마트카드와 인터페이스하도록 적응된다.
상기 프로세서는 암호 데이터를 가상 스마트카드와 교환하도록 적응될 수 있고, 또한 또는 대안적으로 가상 스마트카드와 동등한 실제 스마트카드의 존재를 결정하도록 적응될 수 있다. 바람직하게, 상기 프로세서는 암호 데이터를 가상 스마트카드와 동등한 실제 스마트카드와 교환하도록 추가로 적응된다.
상기 프로세서는 스마트카드를 선택하도록 추가로 적응될 수 있고, 바람직하게 선택된 스마트카드를 이용하여 데이터를 디코딩하고 데이터의 특징에 따라서 스마트카드를 선택하도록 적응된다. 바람직하게, 상기 프로세서는 페이로드 및 상기 페이로드를 포함하는 암호화된 데이터 중 하나를 선택하고, 선택된 페이로드 또는 암호화된 데이터를 저장하며, 저장된 암호 데이터를 페이로드로 교체하도록 추가로 적응된다.
본 발명의 관련된 양상에서, 또한 프로세서 및 관련 메모리를 포함하는 데이터 처리장치가 제공되고, 상기 프로세서는 페이로드 및 페이로드를 포함하는 암호화된 데이터 중 하나를 선택하고, 선택된 페이로드 또는 암호화된 데이터를 저장하며, 저장된 암호화된 데이터를 페이로드로 교체하도록 적응된다.
상기 프로세서는 적어도 하나의 제어워드 및 ECM 중 하나를 선택하도록 적응될 수 있다. 추가로, 상기 프로세서는 암호화된 데이터를 스마트카드로 전송하고, 암호화된 데이터내에 포함되는 페이로드 또는 페이로드가 해독될 수 없다는 것을나타내는 응답 중의 하나를 스마트카드로부터 수신하도록 적응될 수 있다. 바람직하게, 상기 프로세서는 이용가능하다면 페이로드를, 그렇지 않으면 페이로드를 포함하는 암호화된 데이터를 선택하도록 적응된다.
상기 프로세서는 데이터를 저장 또는 재생하도록 적응될 수 있고, 상기 페이로드는 상기 데이터와 관련된다. 상기 프로세서는 암호화된 데이터 객체를 추가로 암호화된 데이터 객체내에 캡슐화하도록 적응될 수 있고, 추가로 ECM을 CMM내에 캡슐화하도록 적응될 수 있다.
바람직하게, 상기 프로세서는 암호키를 이용하여 저장된 페이로드 또는 암호화된 데이터를 암호화하도록 적응되고, 인증키를 이용하여 저장된 페이로드 또는 암호화된 데이터를 인증하도록 적응될 수 있다. 또한, 바람직하게 상기 프로세서는 통신 암호키를 이용하여 상기 장치와 스마트카드 사이의 통신을 암호화하도록 적응되고, 통신 인증키를 이용하여 상기 장치와 스마트카드 사이의 통신을 인증하도록 적응될 수 있다.
상기 프로세서는 적어도 하나의 세션을 설정하고, 각각의 세션 식별자를 해당 또는 각각의 세션과 관련시키도록 적응될 수 있다. 상기 프로세서는 바람직하게 암호키/인증키를 생성하기 위해 마스터 세션 키를 이용하도록 적응된다.
관련된 양상에서, 프로세서 및 관련 메모리를 포함하는 데이터 처리장치가 제공되고, 상기 프로세서는 (바람직하게 관련 메모리내에) 암호키를 저장하고, 저장된 암호키를 각각 암호화 및 인증하기 위해 암호키 및 인증키 중 하나를 생성하기 위해서 마스터 세션 키를 이용하도록 적응된다.
바람직하게, 상기 프로세서는 마스터 세션 키로부터 암호키 및 인증키 모두를 생성하도록 적응된다. 더 바람직하게, 상기 프로세서는 마스터 세션 키를 대응하는 세션 식별자를 이용하여 다양화하도록 적응되고, 추가 세션을 암호화/인증하기 위해 암호키/인증키를 이용하도록 적응될 수 있다.
상기 프로세서는 바람직하게 수신기/디코더내의 비-암호 데이터에 따라서 암호키/인증키를 생성하도록 적응된다.
본 발명의 추가 양상에서, 프로세서 및 관련 메모리를 포함하는 데이터 처리장치가 제공되고, 상기 프로세서는 수신기/디코더내의 비-암호 데이터에 따라서 암호키를 생성하도록 적응된다.
상기 장치는 바람직하게 난수 생성기를 더 포함하고, 상기 프로세서는 비-암호 데이터를 난수 생성기에 시딩(seeding)하고, 난수 생성기의 출력에 따라서 키를 생성하도록 적응된다.
바람직하게, 상기 장치는 무작위적, 예측불가능, 시변화 및 지리적 변화 특성 중 적어도 하나의 특성을 측정하기 위한 검출기를 더 포함하고, 상기 프로세서는 해당 또는 각각의 특성에 따라서 키를 생성하도록 적응된다. 추가로, 상기 프로세서는 수신기/디코더에 의해 수신되는 비트 스트림의 특성, 수신기/디코더내의 하드웨어 환경의 특성, 수신기/디코더내의 소프트웨어 환경의 특성, 및 수신기/디코더 외부 환경의 측정가능한 특성 중 적어도 하나에 따라서 키를 생성하도록 적응될 수 있다.
상기 프로세서는 키가 요구되기전에 키를 생성하도록 적응될 수 있다. 대안적 또는 추가적으로, 상기 프로세서는 키의 공급을 필요로 하는 동작을 수행하기 위한 명령의 호출에 응답하여 키를 생성하도록 적응될 수 있다.
상기 프로세서는 암호키/인증키를 저장하도록 적응될 수 있고, 바람직하게 상기 키를 저장할지 여부를 결정하도록 적응된다. 상기 프로세서는 상기 키를 구성할 수 있는 데이터를 각각의 복수의 위치에 저장하도록 추가로 적응될 수 있다.
본 발명의 다른 양상에서, 프로세서 및 관련 메모리를 포함하는 데이터 처리장치가 제공되고, 상기 프로세서는 암호키 값을 구성할 수 있는 데이터를 각각의 복수의 위치에 저장하도록 적응된다.
상기 프로세서는 바람직하게 상기 키를 복수의 부분으로 분할하고, 상기 복수의 부분을 각각의 복수의 위치에 저장하도록 적응된다. 상기 프로세서는 바람직하게 수신기/디코더내에 적어도 부분적으로 저장하도록 적응된다. 추가로, 상기 프로세서는 복수의 위치가 수신기/디코더 내내 의사난수적으로 분산되도록 하기 위해 복수의 위치를 선택하도록 적응될 수 있다.
상기 프로세서는 바람직하게 복수의 물리적 디바이스내에 저장하도록 적응되고, 복수의 위치 중 적어도 하나가 배치되는, 대체로 난수의 영역을 형성하도록 적응될 수 있다. 상기 프로세서는 각각의 복수의 위치로부터 데이터를 판독하고, 암호키를 형성하기 위해 상기 데이터를 결합하도록 추가로 적응될 수 있다.
본 발명의 더 추가적인 양상에서, 전술한 바와 같은 장치를 포함하는 수신기/디코더가 제공된다.
본 발명의 추가적인 양상에서, 전술한 바와 같은 장치를 포함하는 조건부 액세스 시스템이 제공된다.
본 발명의 다른 양상에서, 전술한 바와 같은 방송 센터 및 수신기/디코더를 포함하는 방송 시스템이 제공된다.
본 발명의 더 추가적인 양상에서, 전술한 바와 같은 장치를 포함하는 방송 시스템이 제공된다.
본 발명의 다른 양상에서, 가상 스마트카드를 제공하도록 스마트카드를 에뮬레이팅하는 단계를 포함하는 데이터 처리방법이 제공된다.
바람직하게, 상기 방법은 가상 스마트카드를 제공하는 단계를 더 포함한다. 상기 스마트카드 에뮬레이팅 단계는 바람직하게 암호화 동작을 수행하는 단계, 및 암호 데이터를 저장하는 단계를 포함한다.
본 발명의 추가적인 양상에서, 가상 스마트카드와 인터페이스하는 단계를 포함하는 데이터 처리방법이 제공된다.
상기 방법은 바람직하게 암호 데이터를 가상 스마트카드와 교환하는 단계를 포함하고, 또한 또는 대안적으로 가상 스마트카드와 동등한 실제 스마트카드의 존재를 결정하는 단계를 포함할 수 있다. 바람직하게, 상기 방법은 암호 데이터를 가상 스마트카드와 동등한 실제 스마트카드와 교환하는 단계를 더 포함한다.
상기 방법은 스마트카드를 선택하는 단계를 더 포함할 수 있고, 바람직하게 선택된 스마트카드를 이용하여 데이터를 디코딩하는 단계, 및 상기 데이터의 특징에 따라서 스마트카드를 선택하는 단계를 포함한다. 바람직하게, 상기 방법은 페이로드 및 상기 페이로드를 포함하는 암호화된 데이터 중 하나를 선택하는 단계, 선택된 페이로드 또는 암호화된 데이터를 저장하는 단계, 및 저장된 암호화된 데이터를 페이로드로 교체하는 단계를 더 포함한다.
본 발명의 추가적인 양상에서, 페이로드 및 상기 페이로드를 포함하는 암호화된 데이터 중 하나를 선택하는 단계, 선택된 페이로드 또는 암호화된 데이터를 저장하는 단계, 및 저장된 암호화된 데이터를 페이로드로 교체하는 단계를 포함하는 데이터 처리방법이 제공된다.
상기 선택 단계는 적어도 하나의 제어워드 및 ECM 중의 하나를 선택하는 단계를 포함할 수 있다. 추가로, 상기 방법은 암호화된 데이터를 스마트카드로 전송하는 단계, 및 암호화된 데이터에 포함된 페이로드 또는 페이로드가 해독될 수 없다는 것을 나타내는 응답 중 하나를 스마트카드로부터 수신하는 단계를 더 포함할 수 있다. 바람직하게, 상기 방법은 만일 이용가능하다면 페이로드를, 그렇지 않으면 페이로드를 포함하는 암호화된 데이터를 선택하는 단계를 포함한다.
상기 방법은 데이터를 저장하거나 또는 재생하는 단계를 포함할 수 있고, 상기 페이로드는 상기 데이터와 관련된다. 상기 방법은 암호화된 데이터 객체를 추가로 암호화된 데이터 객체내에 캡슐화하는 단계를 더 포함할 수 있고, 상기 단계는 ECM을 CMM내에 캡슐화하는 단계를 더 포함할 수 있다.
바람직하게, 상기 방법은 암호키를 이용하여 저장된 페이로드 또는 암호화된 데이터를 암호화하는 단계를 더 포함하고, 인증키를 이용하여 저장된 페이로드 또는 암호화된 데이터를 인증하는 단계를 포함할 수 있다. 또한 바람직하게, 상기 방법은 통신 암호키를 이용하여 상기 장치와 스마트카드 사이의 통신을 암호화하는단계를 포함하고, 통신 인증키를 이용하여 상기 장치와 스마트카드 사이의 통신을 인증하는 단계를 포함할 수 있다.
상기 방법은 적어도 하나의 세션을 설정하는 단계, 및 각각의 세션 식별자를 해당 또는 각각의 세션과 관련시키는 단계를 포함할 수 있다. 상기 방법은 바람직하게 암호키/인증키를 생성하기 위해 마스터 세션 키를 이용하는 단계를 포함한다.
관련된 양상에서, 암호키를 저장하는 단계, 및 저장된 암호키를 각각 암호화 및 인증하기 위해 암호키 및 인증키 중 하나를 생성하기 위해서 마스터 세션 키를 이용하는 단계를 포함하는 데이터 처리방법이 제공된다.
바람직하게, 상기 방법은 마스터 세션 키로부터 암호키 및 인증키 모두를 생성하는 단계를 포함한다. 더 바람직하게, 상기 방법은 대응하는 세션 식별자를 이용하여 마스터 세션 키를 다양화하는 단계를 포함할 수 있고, 추가 세션을 암호화/인증하기 위해 암호키/인증키를 이용하는 단계를 포함할 수 있다.
상기 방법은 바람직하게 수신기/디코더내의 비-암호 데이터에 따라서 암호키/인증키를 생성하는 단계를 포함한다.
본 발명의 더 추가적인 양상에서, 수신기/디코더내의 비-암호 데이터에 따라서 암호 키를 생성하는 단계를 포함하는 암호키 생성방법이 제공된다.
상기 방법은 바람직하게 비-암호 데이터를 난수 생성기에 시딩하는 단계, 난수 생성기로부터 출력을 획득하는 단계, 및 난수 생성기의 출력에 따라서 키를 생성하는 단계를 더 포함한다.
바람직하게, 상기 방법은 무작위적, 예측불가능, 시변화 및 지리적 변화 특성 중 적어도 하나의 특성을 측정하는 단계를 더 포함하고, 상기 방법은 해당 또는 각각의 특성에 따라서 키를 생성하는 단계를 더 포함한다. 추가로, 상기 방법은 수신기/디코더에 의해 수신되는 비트 스트림의 특성, 수신기/디코더내의 하드웨어 환경의 특성, 수신기/디코더내의 소프트웨어 환경의 특성, 및 수신기/디코더 외부 환경의 측정가능한 특성 중 적어도 하나에 따라서 키를 생성하는 단계를 포함할 수 있다.
상기 방법은 키가 요구되기 전에 키를 생성하는 단계를 포함할 수 있다. 대안적 또는 추가적으로, 상기 방법은 키의 공급을 필요로 하는 동작을 수행하기 위한 명령의 호출에 응답하여 키를 생성하는 단계를 포함할 수 있다.
상기 방법은 암호키/인증키를 저장하는 단계를 포함할 수 있고, 바람직하게 상기 키를 저장할지 여부를 결정하는 단계를 더 포함한다. 상기 방법은 상기 키를 구성할 수 있는 데이터를 각각의 복수의 위치에 저장하는 단계를 더 포함할 수 있다.
본 발명의 관련 양상에서, 암호키 값을 구성할 수 있는 데이터를 각각의 복수의 위치에 저장하는 단계를 포함하는 암호키 값 저장방법이 제공된다.
상기 방법은 바람직하게 상기 키를 복수의 부분으로 분할하는 단계, 및 상기 복수의 부분을 각각의 복수의 위치에 저장하는 단계를 더 포함한다. 상기 방법은 바람직하게 수신기/디코더내에 적어도 부분적으로 저장하는 단계를 더 포함한다. 추가로, 상기 방법은 복수의 위치가 수신기/디코더 내내 의사난수적으로 분산되도록 복수의 위치를 선택하는 단계를 포함할 수 있다.
상기 방법은 바람직하게 복수의 물리적 디바이스내에 저장하는 단계를 더 포함하고, 복수의 위치 중 적어도 하나가 배치되는, 대체로 난수의 영역을 형성하는 단계를 포함할 수 있다. 상기 방법은 각각의 복수의 위치로부터 데이터를 판독하는 단계, 및 암호키를 형성하기 위해 상기 데이터를 결합하는 단계를 포함할 수 있다.
본 발명의 추가적인 양상에서, 전술한 바와 같은 방법을 수행하도록 적응되는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 더 추가적인 양상에서, 가상 스마트카드를 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 추가적인 양상에서, 가상 스마트카드를 제공하도록 스마트카드를 에뮬레이팅하기 위한 수단을 포함하는 컴퓨터 프로그램 제품이 제공된다.
상기 스마트카드 에뮬레이팅 수단은 바람직하게 암호화 동작을 수행하는 수단, 및 암호 데이터를 저장하는 수단을 포함한다.
본 발명의 다른 양상에서, 가상 스마트카드 관리자를 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 추가적인 양상에서, 가상 스마트카드와 인터페이스하기 위한 수단을 포함하는 컴퓨터 프로그램 제품이 제공된다.
상기 컴퓨터 프로그램 제품은 바람직하게 암호 데이터를 가상 스마트카드와 교환하는 수단을 더 포함하고, 가상 스마트카드와 동등한 실제 스마트카드의 존재를 결정하는 수단을 더 포함할 수 있다. 상기 컴퓨터 프로그램 제품은 암호 데이터를 가상 스마트카드와 동등한 실제 스마트카드와 교환하는 수단을 더 포함할 수 있다.
상기 컴퓨터 프로그램 제품은 바람직하게 스마트카드를 선택하는 수단을 더 포함한다. 상기 컴퓨터 프로그램 제품은 선택된 스마트카드를 이용하여 데이터를 디코딩하는 수단을 더 포함할 수 있고, 상기 스마트카드 선택 수단은 데이터의 특징에 따라서 스마트카드를 선택하도록 적응된다.
바람직하게, 상기 컴퓨터 프로그램 제품은 페이로드 및 상기 페이로드를 포함하는 암호화된 데이터 중 하나를 선택하는 수단, 선택된 페이로드 또는 암호화된 데이터를 저장하는 수단, 및 저장된 암호화된 데이터를 페이로드로 교체하는 수단을 더 포함한다.
본 발명의 더 추가적인 양상에서, 페이로드 및 상기 페이로드를 포함하는 암호화된 데이터 중 하나를 선택하는 수단, 선택된 페이로드 또는 암호화된 데이터를 저장하는 수단, 및 저장된 암호화된 데이터를 페이로드로 교체하는 수단을 포함하는 컴퓨터 프로그램 제품이 제공된다.
상기 선택 수단은 적어도 하나의 제어워드 및 ECM 중의 하나를 선택하도록 적응될 수 있다. 상기 컴퓨터 프로그램 제품은 바람직하게 암호화된 데이터를 스마트카드로 전송하는 수단, 및 암호화된 데이터에 포함된 페이로드 또는 페이로드가 해독될 수 없다는 것을 나타내는 응답 중 하나를 스마트카드로부터 수신하는 수단을 더 포함한다.
바람직하게, 페이로드 및 암호화된 데이터 중 하나를 선택하는 상기 수단은 만일 이용가능하다면 페이로드를, 그렇지 않으면 페이로드를 포함하는 암호화된 데이터를 선택하도록 적응된다. 상기 컴퓨터 프로그램 제품은 데이터의 저장 및 재생 중 적어도 하나를 수행하기 위한 수단을 더 포함할 수 있고, 상기 페이로드는 상기 데이터와 관련된다.
상기 컴퓨터 프로그램 제품은 바람직하게 암호화된 데이터 객체를 추가로 암호화된 데이터 객체내에 캡슐화하는 수단을 더 포함하고, 바람직하게 ECM을 CMM내에 캡슐화하는 수단을 더 포함한다.
상기 컴퓨터 프로그램 제품은 바람직하게 암호키를 이용하여 저장된 페이로드 또는 암호화된 데이터를 암호화하는 수단을 더 포함하고, 인증키를 이용하여 저장된 페이로드 또는 암호화된 데이터를 인증하는 수단을 포함할 수 있다.
상기 컴퓨터 프로그램 제품은 바람직하게 또한 통신 암호키를 이용하여 상기 장치와 스마트카드 사이의 통신을 암호화하는 수단을 더 포함하고, 통신 인증키를 이용하여 상기 장치와 스마트카드 사이의 통신을 인증하는 수단을 포함할 수 있다.
바람직하게, 상기 컴퓨터 프로그램 제품은 적어도 하나의 세션을 설정하는 수단, 및 각각의 세션 식별자를 해당 또는 각각의 세션과 관련시키는 수단을 더 포함한다. 추가로, 상기 컴퓨터 프로그램 제품은 암호키/인증키를 생성하기 위해 마스터 세션 키를 이용하는 수단을 더 포함할 수 있다.
본 발명의 추가적인 양상에서, 암호키를 저장하는 수단, 및 저장된 암호키를 각각 암호화 및 인증하기 위해 암호키 및 인증키 중 하나를 생성하기 위해서 마스터 세션 키를 다양화하는 수단을 포함하는 컴퓨터 프로그램 제품이 제공된다.
상기 마스터 세션 키를 이용하는 수단은 마스터 세션 키로부터 암호키 및 인증키 모두를 생성하도록 적응될 수 있다. 상기 이용 수단은 바람직하게 대응하는 세션 식별자를 이용하여 마스터 세션 키를 다양화하도록 적응된다. 상기 컴퓨터 프로그램 제품은 바람직하게 추가 세션을 암호화/인증하기 위해 암호키/인증키를 이용하는 수단을 더 포함하고, 수신기/디코더내의 비-암호 데이터에 따라서 암호키/인증키를 생성하는 수단을 더 포함할 수 있다.
본 발명의 다른 양상에서, 수신기/디코더내의 비-암호 데이터에 따라서 암호 키를 생성하는 수단을 포함하는 컴퓨터 프로그램 제품이 제공된다.
상기 컴퓨터 프로그램 제품은 난수 생성기, 비-암호 데이터를 난수 생성기에 시딩하는 수단, 및 난수 생성기의 출력에 따라서 키를 생성하는 수단을 더 포함할 수 있다.
추가로, 상기 컴퓨터 프로그램 제품은 무작위적, 예측불가능, 시변화 및 지리적 변화 특성 중 적어도 하나의 특성을 측정하는 수단, 및 해당 또는 각각의 특성에 따라서 키를 생성하는 수단을 더 포함할 수 있다. 또한, 상기 키 생성 수단은 수신기/디코더에 의해 수신되는 비트 스트림의 특성, 수신기/디코더내의 하드웨어 환경의 특성, 수신기/디코더내의 소프트웨어 환경의 특성, 및 수신기/디코더 외부 환경의 측정가능한 특성 중 적어도 하나에 따라서 키를 생성하도록 적응될 수 있다.
상기 키 생성 수단은 바람직하게 키가 요구되기 전에 키를 생성하도록 적응되지만, 대안적 또는 추가적으로 상기 컴퓨터 프로그램 제품은 키의 공급을 필요로 하는 동작을 수행하기 위한 명령의 호출에 응답하여 키를 생성하는 수단을 더 포함할 수 있다.
상기 컴퓨터 프로그램 제품은 바람직하게 암호키/인증키를 저장하는 수단을 더 포함하고, 상기 키를 저장할지 여부를 결정하는 수단을 포함할 수 있다. 추가로, 상기 컴퓨터 프로그램 제품은 상기 키를 구성할 수 있는 데이터를 각각의 복수의 위치에 저장하는 수단을 더 포함할 수 있다.
본 발명의 더 추가적인 양상에서, 암호키 값을 구성할 수 있는 데이터를 각각의 복수의 위치에 저장하는 수단을 포함하는 컴퓨터 프로그램 제품이 제공된다.
상기 컴퓨터 프로그램 제품은 바람직하게 상기 키를 복수의 부분으로 분할하는 수단, 및 상기 복수의 부분을 각각의 복수의 위치에 저장하는 수단을 더 포함한다. 상기 저장 수단은 수신기/디코더내에 적어도 부분적으로 저장하도록 적응될 수 있다. 바람직하게, 상기 컴퓨터 프로그램 제품은 복수의 위치가 수신기/디코더 내내 의사난수적으로 분산되도록 복수의 위치를 선택하는 수단을 더 포함한다.
상기 저장 수단은 바람직하게 복수의 물리적 디바이스내에 저장하도록 적응된다. 상기 컴퓨터 프로그램 제품은 바람직하게 복수의 위치 중 적어도 하나가 배치되는, 대체로 난수의 영역을 형성하는 수단을 더 포함하고, 각각의 복수의 위치로부터 데이터를 판독하는 수단, 및 암호키를 형성하기 위해 상기 데이터를 결합하는 수단을 포함할 수 있다.
본 발명의 추가적인 양상에서, 전술한 바와 같은 컴퓨터 프로그램 제품을 포함하는 컴퓨터 판독가능한 매체가 제공된다.
본 발명의 더 추가적인 양상에서, 전술한 바와 같은 컴퓨터 프로그램 제품을실제로 내장하는 신호가 제공된다.
본 발명의 다른 양상에서, 대용량 저장 디바이스를 포함하거나 대용량 저장 디바이스에 부착되는 수신기/디코더가 제공되고, 상기 수신기/디코더는 액세스 권한 기능으로서 조건부 액세스 데이터 페이로드 및 상기 조건부 액세스 데이터 페이로드를 포함하는 암호화된 조건부 액세스 데이터 중 하나를 선택하는 수단, 및 스크램블링된 컨텐트 및 선택된 조건부 액세스 데이터 페이로드 또는 암호화된 조건부 액세스 데이터를 대용량 저장 디바이스상에 저장하는 수단을 포함한다.
바람직하게, 상기 조건부 액세스 데이터 페이로드는 적어도 하나의 제어워드이고, 상기 암호화된 조건부 액세스 데이터는 적어도 하나의 ECC이다. 추가로 바람직하게, 상기 수신기/디코더는 상기 적어도 하나의 제어워드가 ECC로부터 스마트카드에 의해 생성되는 것을 특징으로 한다.
용어 "스크램블링된"과 "암호화된" 및 "제어워드"와 "키"는 본 명세서에서 언어의 명료성을 위해 다수의 방식으로 사용되었다. 그러나, "스크램블링된 데이터"와 "암호화된 데이터" 또는 "제어워드"와 "키"를 기본적으로 구별하지 않는다는 점이 이해될 것이다.
본 발명은 또한 본 명세서에서 설명된 어떠한 방법을 수행 및/또는 본 명세서에서 설명된 어떠한 장치의 특징을 구현하기 위한 컴퓨터 프로그램 및 컴퓨터 프로그램 제품, 및 본 명세서에서 설명된 어떠한 방법을 수행 및/또는 본 명세서에서 설명된 어떠한 장치의 특징을 구현하기 위한 프로그램을 저장하는 컴퓨터 판독가능한 매체를 제공한다.
본 발명은 또한 본 명세서에서 설명된 어떠한 방법을 수행 및/또는 본 명세서에서 설명된 어떠한 장치의 특징을 구현하기 위한 컴퓨터 프로그램을 구현하는 신호, 상기 신호를 전송하는 방법, 및 본 명세서에서 설명된 어떠한 방법을 수행 및/또는 본 명세서에서 설명된 어떠한 장치의 특징을 구현하기 위한 컴퓨터 프로그램을 지원하는 운영 시스템을 구비하는 컴퓨터 제품을 제공한다.
본 발명은 첨부 도면을 참조하여 본 명세서에서 설명된 바와 대체로 같은 방법 및/또는 장치까지 확장된다.
본 발명의 한 양상에서의 어떠한 특징은 임의의 적절한 조합으로 본 발명의 다른 양상에 적용될 수 있다. 특히, 방법의 양상은 장치의 양상에 적용될 수 있고, 그 반대의 경우도 마찬가지이다.
추가로, 하드웨어로 구현된 특징은 일반적으로 소프트웨어로 구현될 수 있고, 그 반대의 경우도 마찬가지이다. 본 명세서에서 소프트웨어 및 하드웨어 특징에 대한 임의의 참조는 따라서 추측되어야 한다.
첨부 도면을 참조하여 단지 예의 방식으로 본 발명의 바람직한 특징이 이제 설명될 것이다.
시스템 개요
디지털 텔레비전 시스템(500)의 개요가 도 1에 도시되어 있다. 후술되는 바와 같이, 상기 시스템(500)은 방송센터(1000), 수신기/디코더(2000), 상기 수신기/디코더의 소프트웨어/하드웨어 아키텍처(3000), 대화식 시스템(4000), 및 조건부 액세스 시스템(5000)을 포함하고, 모두 후술될 것이다.
상기 시스템(500)은 압축된 디지털 신호를 전송하기 위해 알려진 MPEG-2 압축 시스템을 이용하는 대개 종래의 디지털 텔레비전 시스템(502)을 포함한다. 더 상세하게, 방송센터(1000)내의 MPEG-2 압축기(1010)는 디지털 신호 스트림(일반적으로 비디오 신호 스트림)을 수신한다. 상기 압축기(1010)는 연결부(1020)에 의해 멀티플렉서 및 스크램블러(1030)에 연결된다.
멀티플렉서(1030)는 복수의 추가 입력 신호를 수신하고, 전송 스트림을 어셈블링하며, 전기통신 링크를 포함한 다양한 형태를 물론 취할 수 있는 연결부(1022)를 통해 방송센터의 전송기(510)로 압축된 디지털 신호를 전송한다. 전송기(510)는 전자기 신호를 업링크(514)를 통해 위성 트랜스폰더(520)로 전송하고, 여기서 상기신호들은 전자식으로 처리되어, 개념적인 다운링크(516)를 통해, 통상적으로 최종 사용자가 소유하거나 대여한 접시의 형태를 갖는 지상 수신기(512)로 방송된다. 지상 방송, 케이블 전송, 결합된 위성/케이블 링크, 전화 네트워크 등과 같은, 데이터의 전송을 위한 다른 전송 채널이 물론 가능하다.
수신기(512)에 의해 수신된 신호는 최종 사용자가 소유하거나 대여하고 최종 사용자의 텔레비전 세트(10000)에 연결된 통합 수신기/디코더(2000)로 전송된다. 수신기/디코더(2000)는 압축된 MPEG-2 신호를 텔레비전 세트(10000)를 위한 텔레비전 신호로 디코딩한다. 분리된 수신기/디코더가 도 1에 도시되어 있지만, 수신기/디코더는 또한 통합 디지털 텔레비전의 일부일 수 있다. 본 명세서에서 사용되는 바와 같이, 용어 "수신기/디코더"는 셋탑 박스와 같은 분리된 수신기/디코더, 및 함께 통합된 수신기/디코더를 구비하는 텔레비전을 포함한다.
수신기/디코더(2000)내에, 오디오/비디오 및 다른 데이터가 저장될 수 있는 하드디스크(2100)가 제공된다. 이것은 수신기/디코더에 의해 수신되는 프로그램을 위한 개선된 레코딩 및 재생 설비를 허용하고, 또한 전자 프로그램 안내 데이터와 같은, 많은 양의 다른 유형의 데이터가 수신기/디코더내에 저장되도록 허용한다.
수신기/디코더내의 컨텐트 관리 보호 시스템(CMPS: content management and protection system)(2300)(미도시)은 하드디스크(2100)(또는 다른 저장 디바이스)상에서의 데이터의 레코딩 및 재생을 보안적이고 융통성있게 제어할 능력을 제공한다.
다중채널 시스템에서, 멀티플렉서(1030)는 다수의 병렬 소스로부터 수신되는오디오 및 비디오 정보를 처리하고, 대응하는 수의 채널을 따라 정보를 방송하기 위해 전송기(510)와 상호작용한다. 오디오/비디오 정보에 추가로, 메시지 또는 애플리케이션 또는 임의의 다른 종류의 디지털 데이터는 전송된 디지털 오디오 및 비디오 정보로 인터레이스된(interlaced) 이러한 채널의 일부 또는 전부에 안내될 수 있다.
대화식 시스템(4000)은 멀티플렉서(1030) 및 수신기/디코더(2000)에 연결되고, 부분적으로는 방송센터내에, 그리고 부분적으로는 수신기/디코더내에 배치된다. 그것은 최종 사용자가 백채널(570)을 통해 다양한 애플리케이션과 상호작용하게 할 수 있다. 백채널은 예를 들어 공중 교환 전화 네트워크(PSTN: Public Switched Telephone Network) 채널(예를 들어, 모뎀 연결된 백채널) 또는 아웃 오브 밴드(OOB: Out of Band) 채널일 수 있다.
또한 멀티플렉서(1030) 및 수신기/디코더(2000)에 연결되고, 다시 부분적으로는 방송센터내에 부분적으로는 수신기/디코더내에 배치되는 조건부 액세스 시스템(5000)은 최종 사용자가 하나 이상의 방송 공급자로부터의 디지털 텔레비전 방송을 액세스하게 할 수 있게 한다. 상업적 제공물(즉, 방송 공급자에 의해 판매되는 하나 또는 여러 텔레비전 프로그램)과 관련되는 메시지를 해독할 수 있는 스마트카드가 수신기/디코더(2000)로 삽입될 수 있다. 수신기/디코더(2000) 및 스마트카드를 이용하여, 최종 사용자는 가입 모드 또는 페이퍼뷰(pay-per-view) 모드로 상업적 제공물을 구매할 수 있다. 일반적으로, 이것은 대화식 시스템(4000)에 의해 사용되는 백채널(570)을 이용하여 실현된다.
전술한 바와 같이, 상기 시스템에 의해 전송되는 프로그램은 멀티플렉서(1030)에서 스크램블링되고, 주어진 전송물에 적용되는 조건 및 암호키는 액세스 제어 시스템(5000)에 의해 결정된다. 이러한 방식의 스크램블링된 데이터의 전송은 유료 TV 시스템 분야에서 잘 알려져 있다. 일반적으로, 스크램블링된 데이터는 데이터의 디스크램블링을 위해 제어워드와 함께 전송되고, 상기 제어워드 자체는 소위 이용 키에 의해 암호화되고 암호화된 형태로 전송된다.
스크램블링된 데이터 및 암호화된 제어워드는 이후 암호화된 제어워드를 해독한 다음 전송된 데이터를 디스크램블링하기 위해 수신기/디코더내에 삽입된 스마트카드에 저장된 이용 키의 대응물에 액세스할 수 있는 수신기/디코더(2000)에 의해 수신된다. 지불완료한 가입자는 전송물의 시청을 허용하기 위해 암호화된 제어워드를 해독하는데 필요한 이용 키를 예를 들어 월간 방송 EMM내에서 수신할 것이다.
도 2는 압축된 디지털 신호를 위한 방송 매체로서 케이블 네트워크를 이용하는, 디지털 텔레비전 시스템(504)의 대안적인 실시예를 예시한다. 상기 도면에서, 동일한 부분은 동일한 번호로 표시된다.
위성 트랜스폰더 및 전송 및 수신 지국은 케이블 네트워크(550)로 교체된다. 추가로, 이러한 특정 실시예에서, 수신기/디코더(2000)와 대화식 시스템(4000) 및 조건부 액세스 시스템(5000) 사이의 모뎀 백채널은 제거되고, 케이블 네트워크(550)와 조건부 액세스 시스템(5000) 및 대화식 시스템(4000) 사이의 연결부(554,556)로 각각 교체된다. 수신기/디코더(2000)는 따라서 방송센터로부터 데이터를 수신하는 링크와 동일한 링크를 통해 데이터를 전송 및 수신하도록 허용하기 위해 케이블 모뎀 또는 다른 수단을 이용하여, 케이블 네트워크(550)를 통해 다른 시스템과 통신한다.
케이블 네트워크(550)는 전용 연결부, 인터넷, 로컬 케이블 분산 네트워크, 무선 연결부 또는 임의의 그 조합과 같은 임의의 형태의 WAN일 수 있다. 본 실시예에서, 광동축 혼합(HFC: hybrid fiber coax) 네트워크가 사용된다. 수신기/디코더(2000)와 텔레비전 시스템의 다른 구성요소 사이에서 다양한 통신 수단이 교환가능하다는 점이 인식된다.
조건부 액세스 시스템
도 3을 참조하면, 개략적으로 조건부 액세스 시스템(5000)은 가입자 인증 시스템(SAS: Subscriber Authorization System)(5200)을 포함한다. SAS(5200)는 TCP-IP 링크 또는 다른 유형의 링크일 수 있는 링크(1044)에 의해, 각각의 방송 제공자에 하나의 가입자 관리 시스템(SMS: Subscriber Management System)(1100)씩, 하나 이상의 SMS에 연결된다. 대안적으로, 하나의 SMS가 2명의 상업적 오퍼레이터 사이에서 공유될 수 있거나, 또는 1명의 오퍼레이터가 2개의 SMS를 이용할 수 있는 그러한 식이다.
"부모" 스마트카드(5110)를 이용하는 암호화 유닛(5100)의 형태를 갖는 제 1 암호화 유닛은 연결부(1042)에 의해 SAS에 연결된다. 다시 부모 스마트카드(5112)를 이용하는 암호화 유닛(5102)의 형태를 갖는 제 2 암호화 유닛은 연결부(1040)에 의해 멀티플렉서(1030)에 연결된다. 수신기/디코더(2000)는 "자식"스마트카드(5500)를 수신한다. 수신기/디코더는 통신 서버(1200) 및 모뎀 백채널(570)을 통해 SAS(5200)에 직접 연결된다. SAS는 요청시에 우선적으로 가입 권한을 자식 스마트카드로 전송한다.
적절한 실시예의 변형에서, 인터넷 또는 케이블 연결은 PSTN(570) 및 통신 서버(1200)를 보완하거나 대신한다.
스마트카드는 하나 이상의 상업적 오퍼레이터로부터의 기밀 정보를 포함한다. 그럴 권한을 가지고 있다면, "부모" 스마트카드는 서로 다른 종류의 메시지를 암호화하고, "자식" 스마트카드는 상기 메시지를 해독한다.
도 3을 참조하면, 방송센터에서, 디지털 비디오 신호는 먼저 MPEG-2 압축기(1010)를 이용하여 압축된다(또는 비트전송율이 축소된다). 이러한 압축 신호는 이후 다른 압축된 데이터와 같은 다른 데이터와 멀티플렉싱되도록 멀티플렉서 및 스크램블러(1030)로 전송된다.
상기 스크램블러는 스크램블링 프로세스에서 사용되고 멀티플렉서(1030)내의 MPEG-2 스트림에 포함되는 제어워드를 생성한다. 상기 제어워드는 내부적으로 생성되고, 최종 사용자의 통합된 수신기/디코더(2000)가 프로그램을 디스크램블링하게 할 수 있다.
프로그램이 상품화되는 방법을 나타내는 액세스 기준이 또한 MPEG-2 스트림에 추가된다. 상기 프로그램은 복수의 "가입" 모드 중 하나 및/또는 복수의 "페이퍼뷰"(PPV) 모드 또는 이벤트 중 하나로 상품화될 수 있다. 가입 모드에서, 최종 사용자는 하나 이상의 상업적 제공물 또는 "부케(bouquet)"에 가입하여, 상기 부케내의 모든 채널을 시청할 권한을 얻는다. 페이퍼뷰 모드에서, 최종 사용자는 자신이 원하는 이벤트를 구매할 능력을 구비한다.
제어워드와 액세스 기준 모두는 ECM을 설계하는데 사용된다. 이것은 하나의 스크램블링된 프로그램과 관련하여 전송된 메시지이다. 상기 메시지는 (프로그램의 디스크램블링을 허용하는) 제어워드 및 방송 프로그램의 액세스 기준을 포함한다. 상기 액세스 기준 및 제어워드는 연결부(1040)를 통해 제 2 암호화 유닛(5102)으로 전송된다. 상기 유닛에서, ECM이 생성되고 암호화되며 멀티플렉서 및 스크램블러(1030)로 전송된다.
데이터 스트림으로 방송 공급자에 의해 방송되는 각각의 서비스는 복수의 개별 구성요소를 포함한다. 예를 들어 텔레비전 프로그램은 비디오 구성요소, 오디오 구성요소, 서브타이틀 구성요소 등을 포함한다. 각각의 이러한 서비스 구성요소는 후속 방송을 위해 개별적으로 스크램블링되고 암호화된다. 상기 서비스의 각각의 스크램블링된 구성요소에 대해서, 개별 ECM이 요구된다.
멀티플렉서(1030)는 SAS(5200)로부터의 암호화된 EMM, 제 2 암호화 유닛(5102)으로부터의 암호화된 ECM, 및 압축기(1010)로부터의 압축된 프로그램을 포함하는 전기 신호를 수신한다. 멀티플렉서(1030)는 상기 프로그램을 스크램블링하고, 스크램블링된 프로그램, 암호화된 EMM, 및 암호화된 ECM을 전기 신호로서 방송 시스템(600)으로 전송하며, 상기 방송 시스템은 예를 들어 도 1에 도시된 바와 같은 위성 시스템 또는 다른 방송 시스템일 수 있다. 수신기/디코더(2000)는 암호화된 EMM 및 암호화된 ECM을 갖는 스크램블링된 프로그램을 얻기 위해 상기 신호를디멀티플렉싱한다.
수신기/디코더는 방송 신호를 수신하고 MPEG-2 데이터 스트림을 추출한다. 만일 프로그램이 스크램블링되면, 수신기/디코더(2000)는 MPEG-2 스트림으로부터 대응하는 ECM을 추출하고, 상기 ECM을 최종 사용자의 "자식" 스마트카드(5500)로 전달한다. 이것은 수신기/디코더(2000)내의 하우징에 삽입된다. 자식 스마트카드(5500)는 최종 사용자가 ECM을 해독하고 프로그램을 액세스할 권한을 갖는지를 제어한다. 그렇지 않다면, 프로그램이 디스크램블링될 수 없다는 것을 나타내기 위해 부정적인 상태가 수신기/디코더(2000)로 전달된다. 만일 최종 사용자가 상기 권한을 갖는다면, ECM은 해독되고 제어워드는 추출된다. 상기 디코더(2000)는 이때 상기 제어워드를 이용하여 상기 프로그램을 디스크램블링할 수 있다. MPEG-2 스트림은 압축해제되고, 텔레비전 세트(10000)로의 전진 전송을 위한 비디오 신호로 번역된다.
만일 상기 프로그램이 스크램블링되지 않는다면, MPEG-2 스트림과 함께 ECM이 전혀 전송되지 않을 것이고, 수신기/디코더(2000)는 상기 데이터를 압축해제하며, 상기 신호를 텔레비전 세트(10000)로의 전송을 위한 비디오 신호로 변환한다.
SMS(1100)는 우선적으로 모든 최종 사용자 파일, (요금표 및 판촉상품과 같은) 상업적 제공물, 가입, PPV 세부사항, 및 최종 사용자 소비 및 인증에 관한 데이터를 관리하는 데이터베이스(1150)를 포함한다. SMS는 SAS로부터 물리적으로 원격일 수 있다.
SMS(1100)는 최종 사용자에게 전송될 EMM의 수정 또는 형성을 수반하는 메시지를 SAS(5200)로 전송한다. SMS(1100)는 또한 EMM의 수정 또는 형성을 수반하지 않지만 (제품을 주문하는 경우에 최종 사용자에게 부여된 인증, 또는 최종 사용자에게 부과될 요금액과 관련된) 최종 사용자의 상태의 변경만을 수반하는 메시지를 SAS(5200)로 전송한다. SAS(5200)는 또한 (일반적으로 콜백 정보 또는 청구서 정보와 같은 정보를 요청하는) 메시지를 SMS(1100)로 전송하여, SAS와SMS 사이의 통신이 양방향이라는 것이 명확해질 것이다.
수신기/디코더
도 4를 참조하여, 수신기/디코더(2000)의 다양한 요소가 이제 기능 블록의 측면에서 설명될 것이다.
예를 들어 디지털 셋탑 박스(DSTB)일 수 있는 수신기/디코더(2000)는 중앙 호스트 프로세서(2002) 및 디지털 TV 코프로세서(2004)를 포함하고, 양쪽 모두 메모리 요소(미도시)와 관련되고 코프로세서 버스(2006)에 의해 연결된다. 코프로세서(2004)는 USB 인터페이스(2070), 직렬 인터페이스(2072), 병렬 인터페이스(미도시), {도 1의 모뎀 백채널(570)에 연결된} 모뎀(2074), 및 디코더의 프론트 패널(2054)상의 스위치 접촉부로부터 입력 데이터를 수신하도록 적응된다.
수신기/디코더는 추가로 적외선 원격 제어부(2080){및 선택적으로 블루투스-인에이블(Bluetooth-enabled) 디바이스와 같은 다른 무선 주변기기(2082)}로부터의 입력을 수신하도록 적응되고, 또한 각각 뱅크 및 가입 스마트카드(2060,2062)를 판독하도록 적응되는 2개의 스마트카드 판독기(2050,2052)를 소유한다. 가입 스마트카드 판독기(2052)는 삽입된 가입 카드(2062), 및 암호화된 방송 신호가 디스크램블링되게 할 수 있도록 필요한 제어워드를 디멀티플렉서/디스크램블러/리멀티플렉서 유닛(2010)에 공급하기 위한 조건부 액세스 유닛(미도시)과 관련된다. 상기 디코더는 또한 복조기/디스크램블러 유닛(2010)에 의해 필터링되고 디멀티플렉싱되기전에 위성 전송물을 수신 및 복조하기 위해 종래의 튜너(2016) 및 복조기(2012)를 포함한다. 제 2 튜너(2018) 및 제 2 복조기(2014)는 또한 우선적으로 제 2 채널이 제 1 채널과 동시에 수신되고 디코딩되도록 허용하기 위해 제공된다.
하드디스크(2100)가 또한 제공되어, 수신기/디코더에 의해 수신 및 생성된 애플리케이션 데이터 및 프로그램의 저장을 허용한다. 2개 튜너(2016,2018), 2개 복조기(2012,2014), 디스크램블러/디멀티플렉서/리멀티플렉서(2010), 및 데이터 디코더(2024)와 오디오 디코더(2026)와 관련하여, 개선된 레코딩 및 재생 특징이 제공되어, 추가 프로그램이 시청되는 동안 하나 이상의 프로그램의 동시적인 레코딩을 허용하고, 하드디스크로부터/로의 디스플레이 디바이스 및/또는 입력과 출력으로/으로부터의 더 일반적인 전송을 허용하며, 모두 동시에 발생한다.
수신기/디코더내의 오디오 출력(2038) 및 비디오 출력(2040)은 각각 PCM 믹서(2030)와 오디오 DAC(2034), 및 MPEG 비디오 디코더(2028), 그래픽 엔진(2032), 및 PAL/SECAM 인코더(2036)에 의해 공급된다. 대안적 또는 보완적 출력이 물론 제공될 수 있다.
본 설명에서 사용되는 바와 같이, 바람직하게 애플리케이션은 바람직하게 수신기/디코더(2000)의 하이레벨 기능을 제어하기 위한 컴퓨터 코드 일부분이다. 예를 들어, 최종 사용자가 원격 제어기(2080)의 초점을 텔레비전 세트(미도시)의 스크린상에서 보이는 버튼 객체상에 위치시키고 확인키를 누르는 경우, 상기 버튼과 관련된 지령 시퀀스가 실행된다. 애플리케이션 및 관련된 미들웨어는 호스트 프로세서(2002)에 의해 실행되고, 원격 프로시저 콜(RPC)은 요구에 따라서 그리고 요구되는 경우에 코프로세서 버스(2006)상에서 디지털 TV 코프로세서(2004)에 대해 이루어진다.
대화식 애플리케이션은 메뉴를 제안하고, 최종 사용자의 요청시에 명령을 실행하며, 상기 애플리케이션의 목적과 관련된 데이터를 제공한다. 애플리케이션은 상주 애플리케이션, 즉 수신기/디코더(2000)의 ROM(또는 FLASH 또는 다른 비휘발성 메모리)에 저장된 애플리케이션, 또는 방송되고 수신기/디코더(2000)의 RAM, FLASH 메모리, 또는 하드디스크로 다운로드된 애플리케이션일 수 있다.
애플리케이션은 수신기/디코더(2000)내의 메모리 위치에 저장되고, 자원 파일로서 표시된다. 자원 파일은 그래픽 객체 설명 유닛 파일, 변수 블록 유닛 파일, 지령 시퀀스 파일, 애플리케이션 파일 및 데이터 파일을 포함한다.
수신기/디코더는 적어도 하나의 RAM 볼륨, FLASH 볼륨 및 적어도 하나의 ROM 볼륨으로 분할된 메모리(미도시)를 포함하지만, 이러한 물리적 조직은 논리적 조직과 구별된다. 상기 메모리는 다양한 인터페이스와 관련된 메모리 볼륨으로 더 분할될 수 있다. 한 시점에서, 상기 메모리는 하드웨어의 일부로서 간주될 수 있다. 다른 시점에서, 상기 메모리는 하드웨어로부터 떨어져서 도시된 전체 시스템을 지원하거나 또는 포함하는 것으로 간주될 수 있다.
수신기/디코더의 아키텍처
도 5를 참조하면, 수신기/디코더의 소프트웨어/하드웨어 아키텍처(3000)는 소프트웨어가 임의의 수신기/디코더내에 임의의 운영 시스템과 함께 구현될 수 있도록 조직되는 5개 소프트웨어층을 포함한다. 다양한 소프트웨어층은 애플리케이션층(3100), 애플리케이션 프로그래밍 인터페이스(API)층(3300), 가상 기기층(3500), 디바이스 인터페이스층(3700)(종종 단지 '디바이스층'으로 단축됨), 및 시스템 소프트웨어/하드웨어층(3900)이다.
애플리케이션층(3100)은 수신기/디코더내에 존재하거나 또는 다운로드된 애플리케이션(3120)을 포함한다. 그들은 예를 들어 자바, HTML, MHEG-5 또는 다른 언어로 기록된, 고객에 의해 사용되는 대화식 애플리케이션일 수 있거나, 또는 다른 목적으로, 예를 들어 이러한 대화식 애플리케이션을 실행시키기 위해서 수신기/디코더에 의해 사용되는 애플리케이션일 수 있다. 이 층은 가상 기기층에 의해 제공된 사용중인 API의 세트에 기초한다. 상기 시스템은 애플리케이션이 실시간(on the fly) 또는 주문에 따라 수신기/디코더내의 하드디스크, 플래시 메모리 또는 RAM 메모리로 다운로드되도록 허용한다. 상기 애플리케이션 코드는 데이터 저장 매체 명령 및 제어(DSMCC: Data Storage Media Command and Control), 네트워크 파일 서버(NFS: Network File Server) 또는 다른 프로토콜과 같은 프로토콜을 이용하여 압축 또는 압축해제된 포맷으로 전송될 수 있다.
API층(3300)은 대화식 애플리케이션 개발을 위한 하이레벨 이용을 제공한다. 상기 층은 이러한 하이레벨 API를 만드는 여러 패키지를 포함한다. 상기 패키지는 대화식 애플리케이션을 실행하는데 필요한 모든 기능을 제공한다. 상기 패키지는상기 애플리케이션에 의해 액세스가능하다.
바람직한 실시예에서, API는 자바, 팬토크(PanTalk) 또는 이러한 유사 프로그래밍 언어로 기록된 애플리케이션을 위해 적응된다. 추가로, API는 HTML 및 MHEG-5와 같은 다른 포맷의 번역을 용이하게 할 수 있다. 이러한 특징에 추가로, 또한 필요성이 지시됨에 따라서 분리가능하고 확장가능한 서비스 모듈 및 다른 패키지를 포함한다.
가상 기기층(3500)은 언어 인터프리터(interpreter) 및 다양한 모듈과 시스템으로 구성된다. 커널(3650)(미도시)에 의해 관리되는 상기 층은 수신기/디코더내에서 대화식 애플리케이션을 수신 및 실행하는데 필요한 모든 것으로 구성된다.
디바이스 인터페이스층(3700)은 디바이스 관리자 및 (일반적으로 본 명세서에서 단지 '디바이스'라고 언급되는) 소프트웨어 디바이스를 포함한다. 디바이스들은 외부 이벤트 및 물리적 인터페이스의 관리에 필요한 논리적 자원으로 구성되는 소프트웨어 모듈이다. 디바이스 관리자의 제어하에 있는 디바이스 인터페이스층은 드라이버와 애플리케이션 사이의 통신 채널을 관리하고, 개선된 에러 제외 점검(error exception checking)을 제공한다. 관리되는 (하드웨어) 디바이스의 일부 예시로는, 카드 판독기(3722)(미도시), 모뎀(3730)(미도시), 네트워크(3732)(미도시), PCMCIA(Personal Computer Memory Card International Association), LED 디스플레이 등이 있다. 프로그래머는 상기 층을 직접 처리할 필요가 없는데, 이는 API층이 상기 디바이스들을 제어하기 때문이다.
시스템 소프트웨어/하드웨어층(3900)은 수신기/디코더의 제조자에 의해 제공된다. 시스템의 모듈방식(modularity) 때문에, 그리고 (이벤트 스케줄링 및 메모리 관리와 같은) 더 하이레벨의 운영시스템에 의해 제공되는 서비스가 가상 기기 및 커널의 일부이기 때문에, 더 높은 층들은 특정 실시간 운영시스템(RTOS: real time operating system) 또는 특정 프로세서와 연결되지 않는다.
일반적으로, 때로 디바이스 인터페이스층(3700) 및/또는 API(3300)와 공동으로, 가상 기기층(3500)은 수신기/디코더의 '미들웨어'로서 언급된다.
도 6을 참조하여, {애플리케이션층(3100), API층(3300) 및 가상 기기층(3500)을 포함하는} 도 5의 상반부에 대응하는 수신기/디코더(3000)의 소프트웨어 아키텍처가 이제 더 상세하게 설명될 것이다.
대화식 애플리케이션은, 사용자가 예를 들어 전자 프로그램 가이드, 텔레뱅킹 애플리케이션, 및 게임과 같은 서비스 및 제품을 얻기 위해 상호작용하는 애플리케이션이다.
애플리케이션 관리자(3110)에 추가로, 애플리케이션층(3100)내에 2가지 유형의 애플리케이션이 있다. API(3300)에 따르는 한 언제라도 추가될 수 있는 웹 브라우저(3130)와 같은 대화식 애플리케이션이 있고, 대화식 애플리케이션을 관리 및 지원하는 상주 애플리케이션이 있다. 상기 상주 애플리케이션은 대체로 영구적이고, 다음을 포함한다.
- 부팅. 부팅 애플리케이션(3142)은 수신기/디코더가 켜질 때 시작되는 첫 번째 애플리케이션이다. 부팅 애플리케이션은 먼저 애플리케이션 관리자(3110)를 시작한 다음, 메모리 관리자(3544) 및 이벤트 관리자(3546)와 같은, 가상기기(3500)내의 "관리자" 소프트웨어 모듈을 시작한다.
- 애플리케이션 관리자. 애플리케이션 관리자(3110)는 수신기/디코더내에서 실행되는 대화식 애플리케이션을 관리한다. 즉, 이벤트를 시작, 정지, 일시중지, 재개, 처리하고 애플리케이션 사이의 통신을 처리한다. 상기 애플리케이션은 다수의 애플리케이션이 한번에 실행되도록 허용하고, 따라서 그들 사이에서의 자원의 할당에 관련된다. 상기 애플리케이션은 사용자에게 완전히 투명하다.
- 셋업. 셋업 애플리케이션(3144)의 목적은 주로 상기 애플리케이션이 사용되는 제일 처음에 수신기/디코더를 구성하는 것이다. 상기 애플리케이션은 TV 채널 스캐닝, 날짜 및 시간 세팅, 사용자 즐겨찾기 설정 등과 같은 행위를 수행한다. 그러나, 셋업 애플리케이션은 언제라도 사용자에 의해 수신기/디코더 구성을 변경하는데 사용될 수 있다.
- 재핑(zapping). 재핑 애플리케이션(3146)은 프로그램-업, 프로그램-다운 및 숫자키를 이용하여 채널을 변경하는데 사용된다. 예를 들어, 배너(파일럿) 애플리케이션을 통해 다른 형태의 재핑이 사용되는 경우에, 재핑 애플리케이션은 중단된다.
- 콜백. 콜백 애플리케이션(3148)은 수신기/디코더 메모리내에 저장된 다양한 파라미터 값을 추출하고, 모뎀 백채널(1070)(미도시)을 통해, 또는 다른 수단에 의해 상기 값들을 상업적 오퍼레이터에게 반환하는데 사용된다.
애플리케이션층(3100)내의 다른 애플리케이션은 프로그램 가이드 애플리케이션(3132), 페이퍼뷰 애플리케이션(3134), 배너(파일럿) 애플리케이션(3136), 홈뱅킹 애플리케이션(3138), 소프트웨어 다운로드 애플리케이션(3140), 및 PVR(personal video recorder) 애플리케이션(3154)을 포함한다(아래 참조).
전술한 바와 같이, API층(3300)은 여러 패키지를 포함한다. 이들은 예를 들어 가상 기기의 기본 특징을 액세스하는데 사용되는 기본 시스템 패키지(3310), DAVIC 패키지(3320), 및 주요 소프트웨어 제조자에 고유한 소프트웨어 아키텍처의 특징을 액세스하는데 사용되는 독점 패키지(3330)를 포함한다.
더 상세하게 고려하면, 가상 기기(3500)는 다음을 포함한다.
- 언어 인터프리터(3510). 판독될 애플리케이션의 유형에 부합하도록 서로 다른 인터프리터가 설치될 수 있다. 이들은 자바 인터프리터(3512), 팬토크 인터프리터(3514), HTML 인터프리터(3516), MHEG-5 인터프리터(3518) 및 다른 인터프리터를 포함한다.
- 서비스 정보(SI: Service Information) 엔진. SI 엔진(3540)은 공용 디지털 비디오 방송(DVB: Digital Video Broadcasting) 또는 프로그램 시스템 정보 프로토콜(PSIP: Program System Information Protocol) 테이블을 로딩 및 모니터링하고 그들을 캐시에 놓는다. 상기 엔진은 상기 테이블내에 포함된 데이터를 필요로 하는 애플리케이션에 의한 상기 테이블에 대한 액세스를 허용한다.
- 스케줄러(3542). 이 모듈은 그 자체 이벤트 큐를 구비하는 각각의 스레드를 이용한 선취(pre-emptive), 멀티스레드된 스케줄링을 허용한다.
- 메모리 관리자(3544). 이 모듈은 메모리에 대한 액세스를 관리한다. 상기 모듈은 또한 필요한 경우에 메모리내의 데이터를 자동으로 압축하고, 자동 쓰레기수집을 수행한다.
- 이벤트 관리자(3546). 이 모듈은 이벤트가 우선순위에 따라서 트리거링되도록 허용한다. 상기 모듈은 타이머 및 이벤트 그래빙(grabbing)을 관리하고, 애플리케이션이 서로 이벤트를 전송하도록 허용한다.
- 동적 링커(3548). 이 모듈은 고유 자바 기능으로부터 발생하는 어드레스 분해를 허용하고, RAM으로부터 다운로드된 자바 클래스로부터의 고유 방법을 로딩하며, 다운로드된 고유 코드로부터 ROM을 향한 호출을 분해한다.
- 그래픽 시스템(3550). 상기 시스템은 객체 지향적이고 최적화된다. 상기 시스템은 그래픽 윈도우 및 객체 관리 뿐만 아니라 다중언어 지원을 갖는 벡터 폰트 엔진을 포함한다.
- 클래스 관리자(3552). 이 모듈은 클래스를 로딩하고 임의의 클래스 참조 문제를 해결한다.
- 파일 시스템(3554). 이 모듈은 소형이고 다중 ROM, 플래시, RAM 및 DSMCC 볼륨을 갖는 계층 파일 시스템을 관리하도록 최적화된다. 임의의 사고에 대비하여 플래시 무결성이 보장된다.
- 보안 관리자(3556). 이 모듈은 애플리케이션을 인증하고, 감응 메모리 및 셋탑 박스의 다른 구역에 대한 애플리케이션의 액세스를 제어한다.
- 다운로더(3558). 이 모듈은 원격 DSMCC 캐러셀(carousel)로부터, 또는 NFS 프로토콜을 통한 자동 데이터 로딩을 이용하고, 다운로드된 파일은 상주 파일과 동일한 방식으로 액세스된다. 메모리 제거(clear-up), 압축 및 인증이 또한 제공된다.
추가로, DAVIC 자원 통지 모델은 클라이언트 자원이 효율적으로 관리되도록 지원된다.
커널(3650)은 가상 기기(3500) 및 디바이스 인터페이스층(3700)(미도시)내에서 실행되는 다양한 서로 다른 프로세스를 관리한다. 효율성 및 신뢰성의 이유로, 상기 커널은 운영시스템용 POSIX 표준의 관련 부분을 구현한다.
커널의 제어하에서, (자바 및 팬토크 애플리케이션을 실행하는) 가상기기는 대용량 저장 서버(3850)(미도시)와 같은, 운영시스템의 다른 '서버' 요소와 분리된 그 자체 스레드내에서 실행한다. 스레드 ID가 시스템 호출에서 파라미터로서 전달되기를 요구하는 것과 같은 대응하는 준비가 또한 애플리케이션(3120)이 멀티스레드된 환경으로부터 이익을 얻도록 허용하기 위해 API층(3300)내에서 이루어진다.
다중 스레드를 제공함으로써, 더 많은 안정성이 실현될 수 있다. 예를 들어, 만일 가상 기기(3500)가 크래시(crash)를 겪거나 또는 디바이스에 액세스하고자 시도하는 애플리케이션에 의해 장시간동안 블로킹됨으로써 여러 이유로 동작이 중단된다면, 하드디스크 서버와 같은 시스템의 다른 시간-중대 부분들은 계속 동작할 수 있다.
가상 기기(3500) 및 커널(3650) 뿐만 아니라, 하드디스크 비디오 레코더(HDVR) 모듈(3850)은 하드디스크(2210) 또는 다른 부착된 대용량 저장 구성요소의 레코딩 및 재생 기능을 처리하기 위해 제공된다. 상기 서버는 레코딩을 처리하는 2개의 분리된 스레드(3854,3856), 재생을 처리하는 하나의 스레드(3858),및 대용량 저장 구성요소와 인터페이스하는 파일 시스템 라이브러리(3852)를 포함한다.
하드디스크 비디오 레코더(HDVR)(3850)내의 스레드(3854,3856,3858) 중 적절한 하나는, 예를 들어 사용자가 '레코드' 버튼을 누른 것에 응답하여, PVR 애플리케이션(3154)과 같은 클라이언트로부터의 (특정 프로그램의 레코딩 시작 명령과 같은) 명령을 수신한다.
차례로, 해당 스레드는 이후 레코딩 또는 재생될 비트스트림을 처리하는 수신기/디코더의 부분을 셋업 및 동기화하기 위해 (도 7에 도시된) 서비스 디바이스(3736)와 상호작용한다. 동시에, 상기 스레드는 또한 하드디스크(2210)(미도시)상의 적절한 위치에서 레코딩 또는 재생 동작을 조정하기 위해 파일 시스템 라이브러리(3852)와 상호작용한다.
파일 시스템 라이브러리(3852)는 이후 대용량 저장 디바이스(3728)에게 어떤 하위전송 스트림(STS: sub-transport stream)이 (FIFO 버퍼를 통해) 전송될지, 그리고 상기 스트림이 어떤 하드디스크 타겟상에 저장되어야 하는지를 말하는 명령을 (또한 도 7에 도시된) 대용량 저장 디바이스(3728)로 전송한다. 하드디스크상에서의 클러스터의 할당 및 일반적인 파일 관리는 파일 시스템 라이브러리(3852)에 의해 수행되고, 대용량 저장 디바이스 자체는 하위레벨 동작과 관련된다.
전술한 서비스 디바이스(3736)는 수신기/디코더의 물리적 구성요소와 관련되지 않는다는 점에서 상기 디바이스들 중에서 유일하다. 상기 디바이스는 대신 수신기/디코더내의 튜너, 디멀티플렉서, 리멀티플렉서 및 하드디스크 디바이스의 다양한 세트를 단일 '인스턴스'내에 함께 그룹화하는 하이레벨 인터페이스를 제공하여, 더 높은 레벨의 프로세스가 다양한 서브-디바이스를 조정하는 어려움으로부터 벗어나게 한다.
도 7을 참조하여, {디바이스 인터페이스층(3700) 및 시스템 소프트웨어 및 하드웨어층(3900)을 포함하는} 도 5의 하반부에 대응하는 수신기/디코더(3000)의 소프트웨어 아키텍처가 이제 더 상세하게 설명될 것이다.
디바이스층에 제공된 추가적인 디바이스는 조건부 액세스 디바이스(3720), 도 4의 2개(또는 잠재적으로 더 많은) 튜너(2016,2018)에 대응하는 튜너 디바이스(3724), 비디오 디바이스(3734), I/O 포트 디바이스(3726), 및 전술한 바와 같은 서비스 디바이스(3736) 및 대용량 저장 디바이스(3728)를 포함한다.
폭넓은 관점에서, 디바이스는 논리적 인터페이스를 정의하는 것으로 간주될 수 있어서, 2개의 서로 다른 디바이스가 공통의 물리적 포트에 연결될 수 있다. 특정 디바이스가 그들 사이에서 통신할 수 있고, 모든 디바이스는 또한 커널(3650)의 제어하에서 동작한다.
임의의 디바이스의 서비스를 이용하기전에, (애플리케이션 지령 시퀀스와 같은) 프로그램은 "클라이언트", 즉 디바이스 또는 디바이스 관리자(3710)에 대한 논리적 액세스 방식으로 선언되어야 한다. 상기 관리자는 상기 디바이스에 대한 모든 액세스에서 언급되는 클라이언트 번호를 클라이언트에게 제공한다. 디바이스는 여러 클라이언트를 가질 수 있고, 각각의 디바이스에서의 클라이언트의 수는 디바이스 유형에 따라서 지정된다. 클라이언트는 프로시저 "디바이스: 채널 개시"에 의해상기 디바이스에 소개된다. 상기 프로시저는 클라이언트에게 클라이언트 번호를 할당한다. 클라이언트는 프로시저 "디바이스: 채널 종료"에 의해 디바이스 관리자(3710)의 클라이언트 리스트 밖으로 꺼내질 수 있다.
디바이스 관리자(3710)에 의해 제공되는 디바이스에 대한 액세스는 동기이거나 또는 비동기일 수 있다. 동기 액세스에서, 프로시저 "디바이스: 호출"이 사용된다. 이것은 즉시 이용가능한 데이터 또는 원하는 응답을 기다리는 것과 관련되지 않는 기능을 액세스하는 수단이다. 비동기 액세스에서, 프로시저 "디바이스: I/O"가 사용된다. 이것은 예를 들어 멀티플렉스를 찾기 위해 튜너 주파수를 스캐닝하거나 또는 MPEG 스트림으로부터 테이블을 되찾는, 응답을 기다리는 것과 관련되는 데이터를 액세스하는 수단이다. 요청된 결과가 이용가능한 경우, 그 도달을 시그낼링하기 위해 이벤트가 상기 엔진의 큐내에 놓인다. 추가적인 프로시저 "디바이스: 이벤트"는 예측되지 않은 이벤트를 관리하는 수단을 제공한다.
수신기/디코더의 제 2 실시예에서, 수신기/디코더의 아키텍처의 하반부는 도 8에 도시된 층으로 교체된다.
상기 실시예에서, 확장된 디바이스 층 인터페이스(EDLI: extended device layer interface)(3600)는 가상 기기(3500)(미도시)와 디바이스 인터페이스층(3700) 사이에 제공되고, 추상화 디바이스 인터페이스(3800)는 디바이스 인터페이스층(3700)과 시스템 소프트웨어/하드웨어층(3900) 사이에 제공된다. 그렇지 않으면, 동일한 부분은 동일한 참조번호로 표시된다.
EDLI(3600)는 가상 기기(3500)와 디바이스 인터페이스층(3700) 사이에 전용인터페이스를 제공하고, 일반적으로 디바이스 인터페이스층에 대한 멀티스레드 지원을 제공한다. EDLI의 기능은 (디바이스 인터페이스층이 스스로 멀티스레드를 지원할 필요가 없기 때문에) 비동기 이벤트를 미들웨어내의 적절한 스레드로 루팅하는 기능과 스레드 사이에서 메시지를 루팅하는 기능을 포함한다.
추상화 디바이스 인터페이스(3800)는 디바이스 인터페이스층(3700)과 시스템 소프트웨어/하드웨어층(3900)내의 디바이스 드라이버(3910) 사이에 추가 인터페이스를 제공한다. 이러한 인터페이스를 제공함으로써, 크고 복잡한 디바이스층(3700)은 더 많은 정도까지 하드웨어 독립적이 될 수 있다.
컨텐트 관리 보호 시스템(CMPS)
도 9를 참조하면, 전술한 컨텐트 관리 보호 시스템(CMPS)(2300)은 방송센터(1000)와 수신기/디코더(2000) 사이에 분산된다. CMPS의 수신기/디코더 구성요소는 (관련 스마트카드 판독기를 갖는) 물리적 스마트카드 및 가상 스마트카드의 형태로 제공되고, 양쪽 모두 (더 상세하게 후술되는 바와 같이) 가상 스마트카드 관리자의 제어하에 있지만, 적절한 실시예의 변형에서, CMPS의 수신기/디코더의 구성요소는 소프트웨어 또는 하드웨어, 또는 양쪽의 치환으로 단독 구현된다. CMPS는 인증된 사용자만이 미리 정의된 사용 규칙에 따라 컨텐트를 레코딩 및 재생할 수 있다는 것을 보장할 수 있다. 추가로, 복제 제어 및 시간 이동 제한과 같은, 컨텐트 소유자 및/또는 분배자에 의해 정의된 다른 규칙이 고수된다는 것을 보장할 수 있다.
컨텐트 관리 보호 시스템의 중요 부분은 (프로그램 또는 전송물과 같은) 주어진 컨텐트와 관련된 컨텐트 관리 정보를 포함하고 이러한 프로그램 또는 전송물 이전에 전송되는 특수 이용 규칙 메시지(URM: Usage Rules Message)이다. 필수적으로, 이용 규칙 메시지는 컨텐트의 재생 및 재생성(reproduction)에 대해 이용 제한을 부과하고, 프로그램내의 별개의 '챕터(chapter)'와 같은 컨텐트의 특정 부분 또는 컨텐트 전체로만 보내질 수 있다. 일반적인 이용 규칙은 시간 이동, 고속 재생, 레코딩물이 재생될 수 있는 횟수, 및 이용가능한 재생 모드에 대한 제한을 포함한다. 더 상세하게 후술될 다른 중요 특징은, 주어진 프로그램과 관련된 URM이 (다른 위치 및 다른 시간으로부터) 대응하는 컨텐트 또는 조건부 액세스 정보로부터 독립적으로 전송될 수 있다는 것이다.
제 2 메시지 클래스인 CMPS EMM(또는 CMP_EMM)은 CMPS에 대한 액세스 권한을 전송하기 위해 제공된다. CMPS EMM은 다른 곳에서 언급되는 조건부 액세스 인타이틀먼트 관리 메시지(EMM 또는 CAS_EMM)와 동등하지만, 전송된 액세스 권한은 '종래의' EMM에서와 같이, 방송 프로그램 데이터보다는 프로그램 데이터의 로컬 기억장치와 관련된다.
도 9에 도시된 적절한 실시예에서, 멀티플렉서 및 스크램블러(1030)는 CMPS EMM(5614) 및 URM(5612)를 수신하고, 스크램블링되지 않은 컨텐트(프로그램 데이터)(810)를 포함하는 비트스트림으로 상기 메시지들을 멀티플렉싱하며, 결과적인 스크램블링된 컨텐트(800)를 방송 시스템(600)을 통해 방송한다. 수신기/디코더는 이후 스크램블링된 컨텐트(800)를 수신하고, 필요하다면 CMPS EMM 및 URM을 제거하여 CMPS(2300) 및 조건부 액세스 시스템(5000)으로 전달한다. 그러나, 적절한 실시예에서, CMPS EMM 및 URM은 CMPS에 의해 내부적으로 처리된다.
URM은, 적절한 실시예의 변형에서 ECM 이용 키와 동일한 URM 이용 키를 이용하여 암호화된다. URM 이용 키의 대응 키는 URM이 해독되도록 허용하기 위해 수신기/디코더의 CMPS 스마트카드(미도시)내에 유지된다. 추가적인 변형에서, URM은 암호화되지 않지만, 데이터 무결성을 보장하기 위해 암호식으로 서명된다. 더 다른 변형에서, URM내에 포함된 값은 잠재적으로 다른 정보와 협력하여 암호키를 유도하기 위해 시딩 값으로서 사용된다. CMP_EMM과 같은 특정한 암호화된 유닛은 이러한 키(또는 그 파생 키)에 의해 암호화될 수 있고, 이는 예를 들어 URM을 이용한 어떠한 부정도 CMP_EMM의 해독을 방지할 것이라는 것을 의미한다.
전술한 바와 같이, 사용자가 수신기/디코더를 이용하여 레코딩 및/또는 재생하도록 허용하는 이용 권한은 CMPS 인타이틀먼트 관리 메시지(CMPS EMM 또는 CMP_EMM)의 형태로 제공된다. CMPS EMM은 종래의 EMM과 동일한 구조를 가질 수 있지만, 일반적으로 좀더 키 지향적이다 - CMP_EMM은 일반적으로 컨텐트 또는 서비스와 관련된 키를 내장한다. 레코딩된 컨텐트의 재생 권한은 일반적으로 URM내에로 인코딩된 상업적 규칙에 따라 달라지고, 또한 이미 획득된 이용 권한에 따라 달라진다. 이러한 권한은 예를 들어 일시지불(충동 구매) 또는 가입에 대한 회답으로 부여될 수 있다. 다양한 레벨의 액세스 권한은 또한 임의의 컨텐트와 관련하여 부여될 수 있어서, 사용자는 예를 들어 컨텐트를 1회 리플레이할 권한과 교환하여 1회 요금을 지불하거나 또는 무제한 리플레이에 대한 회답으로 제 2의 더 높은 요금을 지불할 수 있다. CMP_EMM은 일반적으로 수신기/디코더의 CMPS 스마트카드내에저장되지만, 예를 들어 하드디스크상의 보안적으로 암호화된 영역과 같은 다른 곳에 저장될 수 있다.
적절한 실시예에서, 레코딩물 리플레이 권한은 레코딩이 이루어진 후에 ('페이퍼뷰' 모델), 또는 레코딩에 앞서 ('가입' 모델) 얻어질 수 있다. 전자의 경우에, 컨텐트 레코딩 이후에, 사용자는 조건부 액세스 시스템에게 컨텐트를 재생할 권한을 얻고 싶다고 지시한다. 만일 상기 지령이 가입 관리 시스템에 의해 인증되면, 적절한 CMPS 인타이틀먼트 관리 메시지("CMP_EMM")가 이때 양방향 링크를 통해 수신기/디코더로 전송된다.
CMPS 시스템에 의해 제공되는 많은 이점 중의 하나는, 프로그램의 레코딩 및 재생에 대한 액세스 권한이 종래의 시스템에서와 같이 단순하게 프로그램을 시청할 액세스 권한과 완전히 상관없다는 점이다. 따라서, 한 명이 프로그램을 시청할 수 있지만 그것을 레코딩하고 재생할 수 없고, 반대로 한 명은 프로그램을 시청할 수 없지만 그것을 레코딩하고 필요한 권한을 얻은 다음 재생할 수 있는 상황을 가질 수 있다.
도 10에 도시된, 인터넷 분산 모델의 특히 일반적인 적절한 실시예의 변형에서, 스크램블링된 컨텐트("CONTENT*"), CMPS EMM("CMP_EMM"), 및 URM("URM")은 모두 제 1 자(700), 제 2 자(702), 및 제 3 자(704)로부터 수신기/디코더(2000)로 독립적으로 전달된다. 제 1, 제 2 및 제 3 자는 예를 들어 다중 액세스 포털(MAP: multi access portal)일 수 있고, 스크램블링된 컨텐트(800), CMPS EMM(5614), 및 URM(5612)은 각각 예를 들어, 방송 스트림, 다른 광대역 연결 또는 전화선 연결을통해 전달될 수 있다. 일반적으로, 프로그램 제공자{제 2 자(1202)}는 프로그램 컨텐트("CONTENT")를 멀티플렉서/스크램블러로 전송하고, 여기서 스크램블링된 컨텐트(1300)(CONTENT*)가 생성된 다음, 일반적인 방식으로 수신기/디코더(2000)로 전송된다. 바람직한 실시예에서 전술한 정보 전달의 독립성은, 컨텐트 분산, 상업적 제공물 프레젠테이션, 및 이용 권한 전달의 다양한 역할이 종종 다른 행위자에 의해 플레이된다는 사실을 반영한다.
도 11 및 도 12를 참조하여, CMPS(2300)를 이용하여 각각 컨텐트를 레코딩 및 재생하는 수신기/디코더(2000)에서의 구현이 이제 설명될 것이다.
CMPS의 구성을 레코딩 모드로 나타내는 도 11에서, CMPS 링크된 클라이언트 라이브러리(3562), 가상 스마트카드 관리자(VSC 관리자)(2350), MLOAD 디바이스(3738), LCARD 디바이스(3740), 및 HDVR 모듈(3850)에 추가로, 익스포트된(exported) 클라이언트 라이브러리(API), 메시지 수퍼바이저, 및 자원 관리자를 포함하는 CMPS 서버 모듈(코어)(2200)가 도시되어 있다. 디바이스층 인터페이스(3700)가 또한 도시되어 있다.
CMPS 코어(2200)는 수신기/디코더 미들웨어내에 제공되고, 링크된 클라이언트 라이브러리(3562)를 통해 HDVR 모듈(3850)과 인터페이스한다. CMPS 코어(2200)는 또한 MLOAD 디바이스(3738), LCARD 디바이스(3740)(조건부 액세스 스마트카드 내장), 및 RCARD 디바이스(3442)(미도시, 선택적 CMPS 스마트카드 내장)와 인터페이스한다.
더 상세하게 후술되는 CMPS 시스템의 레코드 모드 동작시에, 프로그램 데이터 스트림내에 수신된 ECM(5602)은 MLOAD 디바이스에 의해 분리된 다음, CMPS 자원 관리자에 의해 조건부 액세스 스마트카드로 루팅된다. ECM으로부터 유도된 제어워드(5600)는 이후에 적절한 경우에 (바람직하게 또한 프로그램 데이터 스트림내에 수신되지만 다른 루트를 통해서 수신될 수도 있는) 대응하는 URM 및 CMPS EMM에 추가로, 가상 스마트카드 관리자(2350)로 루팅된다.
가상 스마트카드 관리자(2350)는 이후 적절한 실제 또는 가상 CMPS 스마트카드(2400)(미도시)를 이용하여 제어워드 및 다른 데이터의 CMM(5610)으로의 변환을 관리하고, 추가 처리를 위해 CMM을 다시 CMPS 코어로 전송한다. 적절한 실시예에서, 보안 인증 채널(SAC: secure authenticated channel)은 제어워드 및 다른 감응 데이터(sensitive data)를 전송하기 위해 다양한 소프트웨어와 하드웨어 구성요소 사이에서 사용된다. 가상 스마트카드 관리자(2350) 및 가상 스마트카드(2400)는 더 상세하게 후술된다.
CMM은 대응하는 컨텐트 데이터와 함께 디스크상에 저장될 수 있도록 이후에 HDVR 제어기(3350)로 전달된다. (일반적으로 사용자가 적절한 권한을 갖지 않기 때문에) ECM이 해독될 수 없는 상황에서, 액세스 권한이 이용가능하게 되는 이후 날짜에서 ECM의 제어워드로의 미래의 변환을 허용하기 위해서 ECM 자체가 제어워드 대신 CMM 구조내에 저장된다. 상기 CMM내의 ECM의 캡슐화가 또한 더 상세하게 후술된다.
적절한 실시예의 변형에서, 컨텐트는 레코딩 스테이지에서 디스크램블링되고 재스크램블링될 수 있고, 이러한 경우에 (로컬 제어워드와 동등한) 새로운 컨텐트키가 생성되어 CMM내에 저장된다. 추가 변형에서, 상기 컨텐트는 수퍼스크램블링되고(즉, 일반적으로 더 강력한 암호화 방법에 의해 추가로 스크램블링되고), 이는 추가 스크램블링/암호키를 포함하는 제 2 레벨의 CMM을 필요로 한다. 이러한 경우에, 적절하게 더 강력한 암호화 방법으로서 트리플 DES가 168비트 키 길이로 이용될 수 있다.
재생 모드의 CMPS 구성을 나타내는 도 12에서, CMPS 링크된 클라이언트 라이브러리(3562), 가상 스마트카드 관리자(VSC 관리자)(2350), 및 HDVR 모듈(3850)에 추가로, 익스포트된 클라이언트 라이브러리, 메시지 수퍼바이저, 및 자원 관리자를 포함하는 CMPS 코어(2200)가 도시되어 있다.
더 상세하게 후술되는, 재생 모드의 CMPS 시스템의 동작에서, HDVR 모듈(3850)에 의해 전송되는 CMM이 원하는 제어워드를 생성하기 위해 가상 스마트카드 관리자(2350)의 제어하에 디코딩된 다음, HDVR 모듈(3850)로 다시 전송된다. 만일 전술한 바와 같이 CMM이 디코딩된 제어워드보다는 캡슐화된 ECM을 포함한다면, CMPS는 다시 ECM을 해독하고자 시도하여, 성공적이라면 적절한 제어워드로 CMM을 채울 것이다.
디스크로의 컨텐트의 레코딩 프로세스가 이제 도 13에 예시된 바와 같이 더 기능적인 관점에서 설명될 것이다. 도 13에서, 각각의 ECM(5602)은 조건부 액세스 스마트카드내의 해독 스테이지(5550)로 전달되고, 여기서 글로벌 이용 키(KG)(5606)를 이용하여 해독된다. 해독된 제어워드(5600)는 이후 CMPS 스마트카드내의 암호화 스테이지(2202)로 전달되고, 여기서 대응하는 URM(5612) 및 CMPS EMM(5614)과 함께컨텐트 관리 메시지(CMM)로 결합된 다음, 로컬 이용 키(KL)(5608)를 이용하여 전체적으로 재암호화된다. 변경되지 않은, 스크램블링된 컨텐트 및 결과적인 복수의 CMM은 이후 각각 하드디스크(2100)의 단일 파일내의 컨텐트부(2110) 및 관리 데이터부(2112)에 저장된다. 적절한 실시예의 변형에서, 각각의 부분을 저장하기 위해 별개의 파일이 사용된다.
도 14에 다시 도시된, 디스크로부터 컨텐트를 재생하는 역 프로세스에서, 스크램블링된 컨텐트(1300)는 하드디스크(2100)상의 파일내의 컨텐트부(2110)로부터 판독되어 디스크램블러(2010)로 공급된다. 동시에, CMM은 분리된 관리 데이터부(2112)로부터 판독되어 CMPS 스마트카드내의 해독 스테이지(2204)로 공급된다. CMM은 로컬 이용 키(5608)를 이용하여 해독된 다음, URM(5612), CMPS EMM(5614) 및 제어워드(5600)로 분할된다. 만일 CMPS 모듈이, 사용자가 (URM 및 CMPS EMM에 기초하여) 프로그램을 시청할 자격을 부여받는다고 결정하면, 제어워드(5600)는 이때 상기 컨텐트가 디스크램블리되도록 허용하기 위해 적절한 시간에 디스크램블러(2010)로 전송된다.
추가로, 상기 시스템은 모든 세션에 필요한 모든 마스터 및 종속 암호키 및/또는 인증키를 생성 및 저장하는 수단을 제공하는 동시에, 가능한 한 많은 보안성 및 속도를 유지한다. 이러한 키들의 생성 및 저장 모두와 관련된 프로세스가 더 상세하게 후술될 것이다.
HDVR을 이용한 레코딩
HDVR(3850)을 이용한 레코딩 프로세스가 이제 더 상세하게 설명될 것이다.
프로그램의 레코딩시에, HDVR은 그 구조가 주로 2개 부분, 즉 관리 데이터(예를 들어, hdvr_file.management_data) 및 컨텐트 자체(예를 들어, hdvr_file.content_data)인 파일을 생성한다.
상기 파일의 제 1 부분은 (우선적으로) 컨텐트의 이용 규칙 뿐만 아니라 관련된 비스크램블링 키(다시 말해서 제어워드)를 포함하는, CMPS에 의해 생성 및 처리되는 로컬 메시지(CMM)에 대응한다. 제 1 부분은 또한 비스스트림내의 타임 오프셋을 파일내의 데이터 오프셋으로 매핑하는 인덱스를 포함하는 인덱스 테이블을 포함한다.
제 2 부분은 주어진 프로그램의 다양한 구성요소(비디오, 오디오, 서브타이틀 등)에 대응하는 부분적 전송 스트림(pTS)으로 이루어지고, 방송으로서 공통 스크램블링 포맷(DVB_CS)으로 스크램블링된 채로 유지된다. 적절한 실시예의 변형에서, 관리 데이터 및 컨텐트는 적어도 2개의 분리된 파일내에 저장된다. 추가 변형에서, 상기 컨텐트는 (바람직하게 주어진 수신기/디코더에 고유한 로컬 키를 이용하여) 디스크램블링 및 재스크램블링되거나 또는 (적절하게 긴 키 길이를 갖는 트리플 DES와 같은) 더 보안적인 추가 암호화 레벨을 이용하여 수퍼스크램블링된다.
CMPS는 각각의 암호화 주기에서 CMM을 형성하기 위해 그 자체 관리 및 제어 메시지와의 동기화를 담당한다. 이러한 CMM은 이후 hdvr_file.management_data부로의 삽입을 위해 HDVR로 전송된다. CMPS는 또한 시간 이동 모드에서의 레코딩의 인증된 최대 범위 또는 챕터의 시작 포인트와 같은, 컨텐트의 관리와 관련된 특정 양의 정보(hdvr_data)를 전달한다.
이것은 도 15에 개략적으로 예시되어 있다. URM, CMP_EMM 및 CW는 CMPS로 입력된다. hdvr_data는 CMPS(300)에서 HDVR(350)로 전달된다.
전술한 바와 같이, 상기 파일의 hdvr_file.management_data부는 또한 비트스트림내의 타임 오프셋을 파일내의 데이터 오프셋으로 매핑하는 인덱스를 포함하는 인덱스 테이블을 포함한다. 2가지 유형의 인덱스, 즉 HDVR에 의해 자동으로 삽입되는 HDVR 인덱스, 및 사용자의 명령에 따라 삽입되는 사용자 인덱스가 인덱스 테이블에 포함된다.
HDVR 인덱스는 비트스트림내의 주기적인 타임 오프셋에 대응하는 간격으로 HDVR에 의해 배치되고, 레코딩된 파일에서 플레이 엔트리 포인트로서 사용된다. 바람직한 실시예에서, HDVR 인덱스는 프로그램의 레코딩 동안 HDVR에 의해 자동으로 생성된다.
사용자 인덱스는 또한 플레이 엔트리 포인트이고, 프로그램의 레코딩 시간에, 또는 레코딩된 프로그램의 재생 동안 사용자에 의해 세팅된다.
인덱스 테이블은 또한 각각의 HDVR 및 사용자 인덱스를 적절한 CMM으로 매핑하는 포인터를 포함하여, HDVR 및 사용자 인덱스에 의해 인덱싱되는 포인트에서의 저장된 비트스트림의 해독을 가능하게 한다.
레코딩된 컨텐트 처리, 예를 들어 파일 또는 대응하는 비트스트림내의 포인트의 탐색, 및 고속 재생, 되감기, 및 건너뛰기와 같은 "트릭 모드" 동작은 인덱스 테이블에 저장된 HDVR 및 사용자 인덱스를 이용한다.
HDVR을 이용한 재생
HDVR(3850)을 이용하여 레코딩된 컨텐트를 재생하는 프로세스가 이제 더 상세하게 설명될 것이다.
레코딩된 컨텐트를 이용할 때, CMPS는 레코딩된 CMM내에 존재하는 이용 규칙을, 가입자에 의해 획득되고 CMPS 스마트카드 또는 (가상 스마트카드의 제어하에) 수신기/디코더 내부의 보안 위치내에 저장되는 권한과 비교함으로써 관련된 권한의 유효성을 보장한다. 이러한 메커니즘은 바람직하게 요청에 응답하는 무효 행위를 설명하는 가능한 에러 메시지(상태)와는 별개로, HDVR 애플리케이션을 위해 명확하게 유지된다. 특정 메시지, 그중에서도 특히 원격 제어기상에서의 무효 행위는 바람직하게 또한 사람-기기-인터페이스 애플리케이션을 이용하여 사용자에게 중계방송된다(예를 들어, "트릭" 모드 fast_forward가 순차적으로 인증되지 않은 경우에, 스크린상에 경고가 디스플레이된다).
상기 컨텐트내에서의 내비게이션을 용이하게 하기 위해, CMPS 스마트카드에 고유한 처리 시간에 의해 제한되지 않고서 새로운 CW를 이용하여 디스크램블러를 리로드할 수 있다. 이러한 목적으로, HDVR 애플리케이션은 서버에게 그들이 포함하는 CW의 유효한 사용 이전에 특정 수의 CMM을 전처리하도록 요청할 수 있다. 이를 수행하기 위해서, HDVR은 챕터, 인덱스 및 현재 위치의 어느 한쪽의 암호화 주기와 관련된 CMM의 다른 버퍼를 생성한다. CMPS의 요청시에, HDVR은 추가로 비디오 파일의 hdvr_file.management_data부에 재삽입될 업데이트된 CMM을 검색한다.
HDVR에 의해 요구되는 주요 데이터는 컨턴트 사용(챕터 시간의 라벨, 내비게이션 구속, 최대 레코딩 범위 등)과 비교되는 내비게이션 및 이용 구속정보(CMM.navigation 및 CMM.hdvr_rules) 뿐만 아니라 CMPS 서버에서의 처리를 위해 제시된 CMM 버퍼의 상태로 이루어진다. 특정 관리 정보(hdvr_data)는 정보가 URM내에서 명확하게 전달되는 경우에 컨텐트 레코딩 시간에서의 URM(일반적으로 챕터의 시작 라벨)으로부터 얻어질 수 있다. 비디오 파일의 hdvr_file_management_data부의 오버로딩을 회피하기 위해서, 이용 제한에 관한 정보(내비게이션, 챕터의 모럴 코드 등)와 같은 다른 데이터는 CMM을 통한 컨텐트의 재생 시간에 CMPS에 의해 전달될 수 있다.
메시지 교환을 위한 프로토콜, 및 특히 관련 데이터 구조가 이제 설명될 것이다.
HDVR과 CMPS 사이의 교환 프로토콜내에서 발생하는 특정 양의 데이터가 명시된다. 이들은 주로 CMM을 전송하는 CMM_message 메시지 뿐만 아니라 내비게이션 정보 및 컨텐트 이용에 대한 구속과 관련된다. 그 구조는 다음과 같다.
데이터 구조 설명
struct CMM_message{
struct CMM, 저장될 모든 CMM
struct CMM.navigation, 네비게이션에 관련된데이터
struct CMM.hdvr_rules, 제한에 관련된 데이터
}
CMM은 그 차례에서 아래에서 상세화되는 다른 구조를 포함한다.
CMM_message는 특히 컨텐트내의 네비게이션과 관련된 정보로 구성된다. 네비게이션 및 구속 데이터가 암호화될 수 있는 CMM과 반대로, 이들은 HDVR에 의해 직접 번역되도록 CMM_message로 명확하게 표시된다. (그 인코딩 및 서명과 상관없이) CMM의 일반적인 구조가 아래에 제공된다.
데이터 구조 설명
struct CMM{
struct CMM.navigation, 네비게이션에 관련된 데이터
struct CMM.hdvr_rules, 제한에 관련된 데이터
struct CMM.content_key, 컨텐트 키(인코딩됨)
struct CMM.private_data, 개인 데이터(이용 법칙)
}
컨텐트내의 내비게이션 데이터는 헤딩(heading)을 언급하고, 아래에 제공된다.
데이터 구조 설명
struct CMM.navigation{
total_chapter_number, 컨텐트의 챕터의 총 수
chapter_index, 챕터 수
}
무효 행위의 관점에서의 컨텐트 이용 제한 및 시간 이동 제한과 관련된 데이터가 아래에 제공된다.
데이터 구조 설명
struct CMM.hdvr_rules{
trick_mode_bitmap, 무효 비디오 리코더 행위
time_shifting_duration, 최대 리코딩 길이
content_rating, 모럴 레벨(현재 챕터의)
}
CMPS의 내부 구조
CMPS가 이제 도 16을 참조하여 더 상세하게 설명될 것이다. 또한 도 11 및 도 12에 도시된 바와 같이, CMPS는 CMPS 코어(2200) 및 링크된 클라이언트 라이브러리(3562)를 포함한다. CMPS 코어(2200)는 스스로 CMPS 메시지 관리자 스레드(2310) 및 CMPS 디바이스 관리자 스레드(2320)를 포함한다.
개요적으로, CMPS 메시지 관리자 스레드는 수신기/디코더상에서 실행되는 애플리케이션{예를 들어, HDVR(3850)}을 위한 CMPS의 기능에 대한 인터페이스를 제공하고, CMPS 디바이스 관리자 스레드(2320)는 (MLOAD 디바이스, CW 디바이스, CA 디바이스, LCARD 디바이스 등과 같은) 다양한 관련 디바이스와 인터페이스한다.
링크된 클라이언트 라이브러리(3562)는 CMPS를 초기화하는데 필요한 기능을 포함한다. 특히, 링크된 클라이언트 라이브러리는 CMPS 메시지 관지라(2310) 및 CMPS 디바이스 관리자(2320) 스레드의 형성을 위한 기능을 포함한다.
CMPS 메시지 관리자 스레드(2310)는 익스포트된 클라이언트 라이브러리(2340) 및 메시지 수퍼바이저 모듈(2330)을 포함한다.
익스포트된 클라이언트 라이브러리(2340)는 CMPS에 의해 지원되는 애플리케이션 메시지를 지정하고, 메시지 수퍼바이저 모듈(2330)은 이러한 메시지를 수신하고 그들이 유효하다는 것을 확인한다(그렇지 않다면 에러를 반환). 메시지 관리자 스레드(2310)는 동기 및 비동기 메시징 모두를 지원한다.
디바이스 관리자 스레드의 기능이 이제 더 상세하게 후술될 것이다.
전술한 바와 같이, CMPS 디바이스 관리자 스레드(2320)는 메시지 라우터 모듈(2360), 자원 관리자(2370), 가상 스마트카드(VSC)(2400), 및 가상 스마트카드 관리자(VSC 관리자)(2350)를 포함한다. 가상 스마트카드 및 가상 스마트카드 관리자는 더 상세하게 후술된다.
메시지 라우터 모듈(2360)은 디바이스 관리자 스레드(2320)내의 메시지의 (적절하다면) 큐잉(queuing) 및 루팅을 처리한다. 메시지 관리자 스레드(2310)의 메시지 수퍼바이저(2330)가 유효 애플리케이션 메시지를 수신하는 경우, 대응하는 비동기 애플리케이션 메시지를 메시지 라우터(2360)로 전송한다. 메시지 라우터(2360)는 이때 수신된 애플리케이션 메시지가 유효하다는 것을 확인(그리고 그렇지 않다면 에러를 발생)한 다음, 추가 처리를 위해 자원 관리자(2370)에게 상기 메시지를 전달한다. 일단 이러한 애플리케이션 메시지가 자원 관리자(2370)에 의해 처리되면, 응답 메시지는 메시지 라우터(2360) 및 메시지 관리자 스레드(2310)를 통해 적절한 클라이언트에게 다시 전달된다.
메시지 관리자(2310)와 디바이스 관리자(2320) 스레드 사이의 통신 및 자원 관리자(2370)와 디바이스 사이의 통신은 전술한 DELI(3600)을 통해 달성된다.
전술한 바와 같이, 자원 관리자(2370)는 다음을 포함한 다양한 디바이스와통신한다.
- MLOAD 디바이스(3738)는 디코딩된 MPEG 스트림으로부터 (ECM, EMM 등과 같은) 관련 조건부 액세스 데이터를 추출하는데 사용된다.
- CA 디바이스(3720)는 (가입 모델하에서의 레코딩의 경우에) ECM 관리자를 구성하고, 필요하다면, (그 관련 ECM의 PID와 프로그램을 구성하는 다양한 구성요소들 사이의 대응성을 제공하는 연관 테이블과 같은) 연관 테이블내의 PID를 변경하는데 사용된다.
- CW 디바이스(3760)는 제어워드를 디스크램블러로 삽입하는데 사용된다.
- LCARD 디바이스(3740)는 조건부 액세스 스마트카드와 통신하는데 사용된다.
세션 관리
CMPS 디바이스 관리자 스레드(2320)와 (HDVR과 같은) CMPS의 클라이언트 사이의 통신은 세션을 이용하여 실현된다. CMPS 디바이스 관리자와 클라이언트 사이에 2가지 유형의 세션, 즉 레코더 및 플레이어가 제공된다. 더 상세하게 후술되는 바와 같이, 새로운 세션은 적절한 메시지 교환에 응답하여 CMPS 디바이스 관리자 스레드(2320)에 의해 형성된다.
컨텐트의 레코딩은 레코더 세션내에 캡슐화되고, 저장된 컨텐트의 재생은 플레이어 세션내에 캡슐화된다. 전술한 바와 같이, 도 11은 레코딩 세션을 위한 일반적인 데이터 흐름을 개략적으로 예시하고, 도 12는 플레이어 세션을 위한 일반적인 데이터 흐름을 개략적으로 예시한다. 임의의 한 때에, CMPS는 하나의 플레이어 세션 및 2개의 레코더 세션을 처리할 수 있지만, 적절한 실시예의 변형에서, 양쪽 유형의 추가 세션이 관련 하드웨어 고려사항에 따라 제공된다.
도 17은 새로운 레코딩 세션의 형성 및 관리를 예시한다. 상기 도면에서, 단계(7002) 내지 단계(7026)는 다음의 설명에서 나타내는 바와 같이, CMPS 시스템의 요소와 다른 곳의 요소 사이에서 교환된 메시지에 대응한다.
단계(7002)에서, 클라이언트는 레코딩 세션을 시작하기 위한 요청을 전송하고, 상기 세션은 이후 디바이스 관리자 스레드에 의해 적절하게 시작된다. 고유 세션 식별자('SessionID')를 포함하는 적절한 응답이 단계(7004)에서 CMPS 메시지 관리자에 의해 반환된다. 이러한 세션과 관련되는 모든 후속 통신은 이러한 세션 식별자를 포함한다.
단계(7006)에서, 클라이언트는 레코딩 세션내의 레코딩 시퀀스를 시작하기 위한 요청을 CMPS 메시지 관리자에게 전송한다. 단계(7008)에서, CMPS 메시지 관리자는 CMPS 디바이스 관리자로부터 파일 식별자('fileID')를 요청한다. CMPS 디바이스 관리자는 이후 단계(7010)에 의해 예시되는 바와 같이, VSC 관리자에서 레코딩 세션을 시작한다. 단계(7012)에서, CMPS 디바이스 관리자는 fileID를 얻기 위한 요청에 대해 CMPS 메시지 관리자에게 응답한다. 이어서, 단계(7014)에서, 레코딩 시퀀스가 시작되었다는 응답이 CMPS 메시지 관리자로부터 클라이언트에게 전송된다.
단계(7016)에서, 클라이언트는 CMPS 메시지 관리자가 ECM과 관련되는, 저장되는 프로그램의 PMT 테이블의 일부를 가상 기기로부터 얻도록 한다. 단계(7018)에서, 이것이 성공적으로 수행되었다는 것을 클라이언트에게 확인시킨다.
실제 컨텐트 레코딩에 착수하기 위한 요청이 단계(7020)에서 클라이언트에 의해 전송된다. CMPS 메시지 관리자는 이때 대응하는 요청을 CMPS 디바이스 관리자에게 전송한다{단계(7022)}. 단계(7024)에서 CMPS 디바이스 관리자는 이러한 요청에 대해 CMPS 메시지 관리자에게 응답하고, 단계(7026)에서 CMPS 메시지 관리자는 클라이언트에 의해 이루어진 요청에 응답한다.
적절한 레코딩이 이후 시작되고, 추가적인 메시지는 적절한 레코딩이 종료될 때까지 수신기/디코더내의 CMPS, HDVR과 다른 시스템 사이에서 반복적으로 전송된다. 이러한 레코딩 '루프'는 도 18을 참조하여 후술된다. 여전히 도 17을 참조하여, 이러한 루프의 종료에 이은 추가 단계가 먼저 설명될 것이다.
레코딩 동안에 언제라도, 클라이언트는 적절한 레코딩을 종료하기 위한 요청을 CMPS 메시지 관리자에게 전송할 수 있다{단계(7028)}. 단계(7030)에서, CMPS 메시지 관리자는 CMPS 디바이스 관리자에게 레코딩이 종료되어야 한다고 통지하고, 단계(7032)에서, CMPS 디바이스 관리자는 VSC 관리자에게 레코딩 세션이 종료되어야 한다고 통지한다. 단계(7034)에서, CMPS 디바이스 관리자는 CMPS 메시지 관리자에게 레코딩 종료 요청이 성공적으로 수행되었음을 확인한다. 단계(7036)에서, 이것은 CMPS 메시지 관리자에 의해 클라이언트에게 보고된다.
단계(7038)에서, 클라이언트는 레코딩 시퀀스를 종료하도록 CMPS 메시지 관리자에게 요청하고, 단계(7040)에서, CMPS 메시지 관리자는 이것이 수행되었다는 것을 클라이언트에게 확인한다.
마지막으로, 단계(7042)에서, 클라이언트는 CMPS 메시지 관리자에게 레코딩세션을 종료하도록 요청하고, 단계(7044)에서 CMPS 메시지 관리자는 클라이언트에게 이것이 수행되었다는 것을 확인한다.
적절한 레코딩이 이제 도 18을 참조하여 설명될 것이다. 특히, 단계(7102,7104,7106)는 레코딩 '루프'의 핵심을 나타낸다. 단계(7102)에서, MLOAD 디바이스에 의해 추출된 다음 ECM은 EDLI에 의해 디바이스 관리자 스레드(2320)내의 자원 관리자에게 전달된다. 자원 관리자는 이후 ECM을 (조건부 액세스 스마트카드에 대한 액세스를 제공하는) LCARD 디바이스로 전송하고, 회신으로 (다시 중개자로서 EDLI를 이용하는) LCARD 디바이스로부터 디코딩된 제어워드를 다시 수신한다. 단계(7104)에서, 이렇게 얻어진 제어워드는, 적절하다면 (후술되는 바와 같은 CMM의 형성 뿐만 아니라) 대응하는 컨텐트의 라이브 디스크램블링을 허용하기 위해 (다시 EDLI를 통해) 미들웨어로 전송된다. 단계(7106)에서, 제어워드는 CMM이 적절한 다른 레코딩 세션을 위해 형성되도록 허용하기 위해 VSC 관리자에게 전송된다.
단계(7108)에서, 클라이언트는 현재 레코딩 세션을 위한 레코딩을 시작하기 위한 요청을 CMPS 메시지 관리자에게 전송한다. 대응하는 요청은 단계(7110)에서 CMPS 메시지 관리자로부터 CMPS 디바이스 관리자에게 전송된다. 단계(7112)에서, CMPS 디바이스 관리자는 CMPS 메시지 관리자에게 상기 요청에 대해 응답하고, 상기 CMPS 메시지 관리자는 단계(7114)에서 클라이언트에 의해 이루어진 레코딩 시작 요청을 응답하며 이것이 시작되었다는 것을 확인한다. 단계(7116,7118)는 전과 같이 다음 ECM의 MLOAD 디바이스로부터의 수신{단계(7116)}, 조건부 액세스 스마트카드에 의한 ECM의 디코딩(미도시), 및 다른 흥미있는 당사자(party)에게로의 제어워드의 반환{단계(7118)}과 관련된다. 단계(7120)에서, CMPS 디바이스 관리자는 CMPS 메시지 관리자에게 새로운 ECM 섹션이 EDLI로부터 수신되었다는 것을 통지한다. 단계(7122)에서, 이것은 CMPS 메시지 관리자에 의해 클라이언트에게 보고된다.
단계(7124)에서, 클라이언트는 새로운 CMM에 대한 요청을 CMPS 메시지 관리자에게 전송한다. 단계(7126)에서, CMPS 메시지 관리자는 이러한 요청을 CMPS 디바이스 관리자에게 전송한다. 이어서, 단계(7128)에서, {제어워드 및 명령과 함께 디바이스 관리자 스레드(2320)내의 자원 관리자에 의해 공급되는 다른 관련 정보를 갖는} CMM을 형성하기 위한 명령이 VSC 관리자에게 전송되고, CMM은 VSC 관리자(미도시)에 의해 디바이스 관리자에게 반환된다. 단계(7130)에서, CMPS 디바이스 관리자는 CMM이 얻어졌다는 것을 CMPS 메시지 관리자에게 응답하고, 이것은 단계(7132)에서 클라이언트에게 확인된다.
플레이어 세션을 위한 메시지의 교환은 광범위하게 플레이어 세션을 시작하기 위한 일련의 초기 메시지, CMM의 CMPS로의 전송을 처리하기 위한 메시지의 주 '루프'(제어워드는 이때 다른 곳에서 설명되는 바와 같이 가상 스마트카드에 의해 직접 세팅된다), 및 세션을 종료하기 위한 최종 메시지의 교환을 갖는, 전술한 메시지와 동일한 구조를 따른다. 따라서, 플레이어 세션을 위한 메시지는 여기서 추가로 설명되지 않을 것이다.
가상 스마트카드
전술한 가상 스마트카드(VSC)(2400)는 RCARD 디바이스(3442)로 삽입될 수 있는 CMPS 스마트카드 기능의 소프트웨어 에뮬레이팅이다.
VSC는 다음의 기능을 제공한다.
- ECM으로부터 CMM 형성
- CMM으로부터 컨텐트 추출
- CMM으로부터 추출된 제어워드 반환
- 세션 키 생성
- 세션 키를 이용한 메시지의 암호화 및 해독
- 제어워드 생성(로컬 재스크램블링이 수행되는 경우)
VSC는 수신기/디코더의 미들웨어내에 배치된 암호 라이브러리를 이용하여 CMPS 스마트카드의 이러한 기본 기능을 소프트웨어적으로 에뮬레이팅한다. 이러한 암호 라이브러리는 가상 기기내에 분리된 모듈로서 제공되지만, 적절한 실시예의 변형에서, VSC 관리자 자체, 또는 수신기/디코더의 다른 부분 또는 부착된 암호 스마트카드(들)내에 제공된다. 호스트 프로세서 및 관련된 메모리는 실제 스마트카드의 메모리 및 내장 프로세서를 에뮬레이팅하는데 사용된다. 적절한 실시예에서, CMPS 디바이스 관리자 스레드(2320)의 자원 관리자 모듈(2370)은 VSC 관리자와 통신하고, VSC 관리자는 차례로 VSC와 통신한다. 자원 관리자(2370)는 이후 시스템의 다른 부분으로 결과를 반환하기 위해 적절한 메시지 관리자와 통신한다.
VSC는 암호화, 서명 확인, 및 세션 생성을 위한 3개의 고유 키를 각각 포함한다. 적절한 실시예에서, 이들 키는 첫 번째 세션 시작 요청에 응답하여, 필요에 따라 그리고 필요한 경우에 생성된다. 적절한 실시예의 변형에서, 이들 키는 (예를 들어, 재부팅 이후의 수신기/디코더의 초기화시에) VSC의 형성 시간에 먼저 형성된다.
CMPS 스마트카드가 존재하는 경우, 상기 키는 CMPS 시스템에 의해 CMPS 스마트카드로부터 얻어진다. 대안적으로, 후술되는 바와 같이, 상기 키는 수신기/디코더의 효율적으로 무작위적인 특성을 이용하여 생성된다.
VSC(2400)가 위에서 나열한 CMM-관련 기능을 수행하는 방식이 이제 간단하게 설명될 것이다.
VSC는 VSC 관리자(2350)를 통해 CMPS 자원 관리자 스레드(2320)로부터 수신하는 2개 데이터 구성요소로부터 CMM을 형성한다. 첫 번째 구성요소는 공용 정보를 포함한다. 두 번째 구성요소는 ECM으로부터 추출되는 제어워드 또는 ECM 자체를 포함한다(도 24와 관련한 후술 설명 참조). 적절한 실시예의 변형에서, 두 번째 구성요소는 또한 URM으로부터 추출된 데이터를 포함한다.
VSC는 2개 구성요소를 연결한 다음, 연결된 구성요소를 참조하여 암호 서명을 계산한다. 이러한 서명은 페이로드(즉, 제어워드 및/또는 ECM, 서명 및 패딩)가 암호화되기전에 (메시지를 균일한 길이로 만들기 위해 필요하다면 복수의 바이트의 패딩과 함께) 메시지에 첨부된다. 적절한 실시예에서, CBC-MAC 암호화 기법은 메시지상의 서명을 계산하고 확인하는데 사용되고, 상기 서명은 메시지 자체 및 공유된 대칭 키에 따라서 형성된다.
재생하는 동안, VSC(2400)는 페이로드를 해독함으로써 CMPS 스레드를 통해 클라이언트에 의해 VSC로 전달된 CMM으로부터 제어워드(또는 ECM)를 추출하여, 패딩을 제거하고, 부착된 서명을 이용하여 해독된 메시지(및 공용 정보)를 확인한다.추출된 제어워드는 이후 제어워드 디바이스(3760)를 이용하여 VSC에 의해 직접 디스크램블러로 로딩된다. 적절한 실시예의 변형에서, 키 핸들(key ID)은 모호한 상황에서의 참조 목적으로 클라이언트에게 반환된다.
적절한 실시예의 변형에서, VSC는 전술한 바와 같이 CMM 자체내에 URM으로부터의 정보를 저장하는 대신, URM의 형태로 전송된 정보를 포함하는 테이블을 형성하고 저장한다. 이러한 정보는 파일 식별자, 및 (URM으로부터 추출되는) 그와 관련된 권한 및 제한을 포함한다. 사용자가 저장된 프로그램을 재생하기를 원하는 경우, 해당 프로그램과 관련된 권한 및 제한은 저장 디바이스로부터 컨텐트 데이터 자체를 판독하지 않고서 액세스될 수 있다.
가상 스마트카드 관리자
VSC 관리자(2350)는 (RCARD 디바이스에 의해 표시된 바와 같이) 실제 스마트카드 또는 가상 스마트카드(VSC)의 형태를 갖는 CMPS 스마트카드의 기능을 캡슐화한다. VSC 관리자는 따라서 (우선적으로) 루팅 기능을 수행하지만, 또한 특정한 관리 기능을 수행한다. VSC 관리자는 또한 유효하게 VSC로 전송될 수 있는 메시지를 정의한다.
전술한 그 루팅 역할에 따라서, VSC 관리자는 (가상 CMPS 스마트카드 및 실제 CMPS 스마트카드가 제공되는 적절한 구성에서) 특정 업무를 위해 실제 스마트카드 또는 VSC를 이용할지 여부를 결정하기 위한 기능을 제공한다. 이러한 결정은 (그 로드를 포함한) 수신기/디코더 및/또는 처리되는 컨텐트 데이터의 특징(들)에 따라서 이뤄질 수 있다. 예를 들어, 상기 컨텐트는, 실제 스마트카드에 의해 제공되는 더 우수한 보안성으로부터 이익을 얻는 것이 바람직하도록, 또는 VSC에 의해 제공되는 더 신속한 처리가 필요하도록, 비교적 상업적으로 유용하게 될 수 있다.
VSC 관리자에 의해 제공되는 하이레벨 기능은 VSC 인스턴스의 형성을 위한 형성기 기능, (VSC에 할당된 자원을 해제하는) VSC를 파괴하는 파괴자, 및 VSC 모듈이 현재 존재하는지 여부를 결정하기 위한 질의 기능을 포함한다. 적절한 실시예에서, 단 하나의 가상 스마트카드가 언제라도 존재할 수 있지만, 적절한 실시예의 변형에서 다수의 인스턴스가 가능하다.
(VSC 및/또는 CMPS 스마트카드에 의해 반영되는) VSC 관리자에 의해 제공되는 하위레벨 기능은 데이터 객체를 형성, 복제, 파괴, 저장, 로딩 및 삭제하기 위한 기능, 암호화 및 해독 기능, 서명의 생성 및 이용을 포함한, 전술한 바와 같은 CMM 구성, 및 패킹 추가 및 제거를 위한 기능, 및 난수 생성 및 키 생성 및/또는 유도를 위한 기능을 포함하고, 모두 더 상세하게 후술될 것이다.
VSC 관리자는 또한 디바이스 관리자 스레드(2320)와 VSC 사이에서의 세션의 형성 및 파괴를 위한 기능을 제공한다. 각각의 새로운 세션은 형성 시간에 고유 식별자('SessionID')가 할당되고, VSC 관리자에게 전달된 메시지는 이어서 그들이 관련되는 세션의 SessionID를 지정한다. 이러한 세션은 전술한, CMPS와 클라이언트 사이의 통신에서 사용되는 세션과 구별된다(그러나 유사하다). 이러한 CMPS-클라이언트 세션과 대조적으로, 레코더, 플레이어, 및 관리 세션의 모두 3개 세션 유형이 제공된다. 물론, 레코더 및 플레이어 세션은 일반적으로 CMPS와 클라이언트 사이의 대응하는 레코더 및 플레이어 세션 동안만 형성된다.
더 상세하게, 레코더 세션은 프로그램 데이터와 함께 저장하기 위한 로컬 제어를 위한 메시지(즉, CMM)의 형성을 위해 사용된다. 플레이어 세션은 레코딩된 컨텐트의 재생동안 사용된다. 이러한 세션동안 사용되는 기능은 클라이언트(예를 들어, HDVR)에 의해 VSC로 전송된 CMM으로부터의 제어워드의 추출, 및 CW 디바이스를 통한 디스크램블러로의 그 삽입과 관련된 기능을 포함한다. 적절한 실시예의 변형에서, 제어워드는, 보안 인증된 채널을 이용하여, 제어워드의 로딩을 담당하는 HDVR 또는 디스크램블링 능력을 갖는 디지털 텔레비전과 같은 다른 엔티티로 전송된다.
관리 세션에서, VSC의 기본 기능, 즉 의사난수 시퀀스의 형성 등과 같은 기능이 이용가능하다. CMM의 처리와 관련된 기능은 관리 세션에서 이용가능하지 않다.
VSC 관리자와 VSC 또는 실제 CMPS 스마트카드 사이의 통신은 보안될 필요가 있다. 마스터 세션 키는 이러한 목적으로 사용된다. 키의 생성과 관련된 섹션에서 후술되는 바와 같이, 마스터 세션 키는 하나보다 많은 키가 요구되는 경우에 다른 세션 키를 유도하기 위해서 SessionID를 이용하여 다양화될 수 있다. 이러한 마스터 세션 키는 또한 예를 들어, 제어워드가 제어워드를 CW 디바이스(3760)로 전달할 책임이 있는 HDVR로 전달되는 실시예에서, HDVR과의 보안 통신을 설정하는데 사용될 수 있다.
VSC 및 VSC 관리자는 CMPS 디바이스 관리자 스레드의 일부를 형성하는 것으로 설명되고 (도 16에) 도시되었지만, 적절한 CMPS 시스템내의 다른 곳에 제공될수 있다는 점에 또한 유의해야 한다.
키 생성
도 19 및 도 20을 참조하여, 다양한 키 생성 수단이 이제 설명될 것이다.
전술한 바와 같이, 적절한 실시예에서, 난수 생성기의 조작에 의해, 또는 알려진 키를 다양화함으로써 다양한 키가 생성된다.
도 19는 새로운 마스터 세션 키(8100)가 형성되는 전자(former) 프로세스를 도시한다. 수신기/디코더의 다양한 요소(8110)(이러한 경우에, 튜너, 시스템 클록 및 운영시스템), 및 (튜너의 평균 비트 에러율, 주어진 신호의 신호 레벨, 현재 시스템 시간, 및 마지막 리셋 이후로 디바이스층 인터페이스에 대해 이루어진 액세스 횟수와 같은) 이들 요소의 다양한 측정가능 특성(8120)이, 정규화 필터의 뱅크(8130), 비트 스크램블러의 뱅크(8140), 배타적-OR 오퍼레이터(XOR)(8150), 및 난수 생성기(8160)에 추가로, 도시된다.
상기 요소(8110)의 특성(8120)은 가능한 경우마다 그 용량내에서 바람직하게 시간에 따라 변화하는, 효율적으로 무작위 값 및/또는 예측불가능한 값으로서 선택된다. 적절한 경우에, 어떠한 특성도 우위를 차지할 수 없도록 각각의 특성(8120)은 이후 무작위 시드와 동일한 비트폭으로 정규화된다(다시 말해서, 적절한 실시예에서 그러한 것처럼, 32비트 무작위 시드를 위해 32비트 번호를 형성하도록 정규화된다).
이어서, 각각의 특성의 정규화 값은 이후 비트 스크램블러에 의해 스크램블링되고, 상기 스크램블러는 특성이 서로 달라지는 방식으로 각각의 특성을 위한 다른 비트의 값으로 효율적으로 스와핑(swapping)한다. 만일 측정된 특성의 예측불가능성이 단지 소수의 하위차순 비트로 제한된다면, 예를 들어 비트 스크램블링은 32비트 공간내내 이러한 예측불가능성을 효율적으로 분산시킬 것이다.
마지막으로, 배타적-OR 오퍼레이터는 제 1 비트-스크램블링된 값을 제 2 비트-스크램블링된 값과 결합한 다음, 그 결과를 제 3 비트-스크램블링된 값과 결합하는 그런 식이다.
이렇게 형성된 무작위 시드는 이후 난수 생성기로 공급되고, 상기 난수 생성기는 그 다음 (필요하다면 임의의 개수의 고정 길이의 난수를 첨부함으로써) 원하는 비트 길이를 갖는 원하는 암호키를 생성한다.
적절한 실시예의 변형에서, 상기 정규화, 비트 스크램블링, 및 배타적-OR 스테이지의 일부 또는 전부가 부재하고, 일부 경우에서 예를 들어 상기 특성들을 단순히 합하는 것과 같은, 상기 특성을 결합하는 완전히 다른 방법으로 교체된다.
도 20에서, 키 분산기(8200) 뿐만 아니라 일반적인 마스터 세션 키(8210)의 그 입력, 세션 ID(8220), 및 유도된 세션 키(8230)의 그 출력이 도시되어 있다.
필수적으로, 키 분산기는 해당 세션에 고유한 세션 키(8230)를 형성하기 위해 세션 ID(8220)에 따라서 마스터 세션 키(8210)를 조작하기 위해 강력한 암호키의 특성을 이용하는(즉, 일반적으로 다양한 소수 특성을 이용하는) 공식을 이용한다. 키 분산기에 대한 구속으로서 대체로 모든 서로 다른 세션 ID 입력이 고유 세션 키(8230)를 생성할 것이고, 세션 키(8230)는 그 암호화가 마스터 세션 키(8210)를 용이하게 산출하지 않을 정도로 강력하다.
도 19 및 도 20에 도시된 요소가 예시적이고, 반드시 실제 물리적 디바이스에 대응할 필요는 없다는 점 또한 유의할 가치가 있다. 사실상, 적절한 실시예에서, 정규화 및 비트 스크램블링 기능, 배타적-OR 동작 및 난수 생성은 전술한 호스트 프로세서(2002)에 의해 모두 수행된다. 적절한 실시예의 변형에서, 적어도 하나의 추가 프로세서가 호스트 프로세서에 대한 로드를 감소시키기 위해 특정한 이들 기능을 수행한다.
키 저장
도 21을 참조하여, 암호키를 보안적으로 저장 및 재생하는 수단이 이제 설명될 것이다.
도 21에서, 키 스플리터(8310), 기억장치 액세스 디바이스(8320), 및 키 재결합기(8330) 뿐만 아니라, 기억장치 액세스 디바이스(8320)를, 하드디스크 유닛(2100), EEPROM 요소(8360), 및 FLASH RAM 요소(8370), 종래 RAM 요소(8350)와 연결하는 데이터 버스(8340)가 도시되어 있다.
암호키를 저장하기 위해서, 예를 들어 상기 키는 상기 키를 각각 특정 수의 비트를 갖는 적절한 개수의 부분으로 분할하는 키 스플리터(8310)로 공급된다. 적절한 실시예에서, 상기 부분들은 모두 편의상 8비트(1바이트)의 동일한 크기를 갖지만, 적절한 실시예의 변형에서, 상기 부분들은 더 작고/작거나 더 큰 크기를 갖고, 또한 서로에 대해 다른 크기를 가질 수 있다. 8비트보다 작은 크기는 일반적으로 조작하기에 덜 편리하지만, 개선된 보안성을 제공할 수 있다.
상기 키 부분들은 이후 기억장치 액세스 디바이스(8320)에 의해 저장된다.실제로, 이러한 디바이스는 대용량 저장 디바이스(3728)(하드디스크용) 등과 같은 다양한 저장 디바이스(8350, 2100,8360,8370)와의 통신에 책임이 있는 다양한 소프트웨어 디바이스를 포함한다.
적절한 실시예에서, 상기 부분들을 저장할 (저장 디바이스 및 저장 디바이스내의 어드레스를 포함하는) 위치의 정확한 선택은 호출 프로세스에 의해 공급되는 (예를 들어 8비트로 제한되는) 키 식별자에 따라서 기억장치 액세스 디바이스에 의해 생성된다. 각각의 위치 및 착신 디바이스는 다른 키 부분들의 중복기록을 회피하기 위해 특정 키 식별자에 고유할 필요가 있다. 적절한 실시예에서, 키 식별자 및 부분 번호에 따라서 각각의 실시간 저장 위치를 계산하기 위해 적당하게 복잡한 공식이 사용된다. 적절한 실시예의 변형에서, (VSC가 초기화되거나 재초기화되는 경우에 생성되는) 다양한 테이블은 저장 위치를 추적하기 위해 사용되고, 저장된 키의 각각의 따로 저장된 부분은 또한 저장될 때 키 식별자 및/또는 부분 번호로부터 유도되는 키를 이용하여 암호화될 수 있다.
키 판독의 대응하는 프로세스는 키 식별자를 지정하는 호출 프로세스로부터의 명령에 의해 개시되고, 이는 기억장치 액세스 디바이스가 먼저 (전술한 바와 같이) 저장 위치를 계산한 다음, 모든 키 부분들을 로딩하게 한다.
키 부분들은 이후 키 재결합기(8330)로 전송되고, 상기 재결합기는 키를 재어셈블링하고 그것을 호출 프로세스로 출력한다.
상기 키 저장 방법에 대한 추가 개선은 키 부분들이 저장될 메모리의 무작위화(및 바람직하게 그들이 저장되지 않을 추가 메모리의 무작위화)이다. 암호키가종종 그 명확한 무작위성 때문에 검출될 수 있기 때문에, 이것은 예를 들어 키가 침해자(pirate)에 의해 재어셈블링될 가능성을 감소시킬 수 있다.
도 22 및 도 23은 키 저장 메커니즘의 동작을 더 상세하게 예시한다.
도 22는 48비트 암호키(8400)(여기서 16진수 포맷으로 도시됨), 키 부분(8410,8412,8414,8416,8418), 및 무작위 메모리 영역(8420)을 나타내고, 키(8400)의 (이러한 경우에 동일하지 않은 크기를 갖는) 구성 부분으로의 분할, 및 표시된 위치내의 무작위 메모리 영역(8420)에서의 이러한 부분들의 저장을 예시한다.
도 23은 (단 하나의 메모리 영역을 이용하는 도 22에 도시된 예시와 대조적으로) 하나보다 많은 디바이스를 이용한 동일 키의 저장을 예시한다.
도 23에서, 48비트 암호키(8500), 그 구성 부분(8510,8512,8514,8516,8518)과 EEPROM 요소(8520), 하드 디스크 유닛(2100), 및 플래시 RAM 요소(8530)가 도시되어 있다. 여기서, 다른 디바이스(8520,2100,8530)로의 다른 부분들(8510,8512,8514,8516,8518)의 할당이 예시된다.
CMM내의 ECM의 캡슐화
도 24를 참조하여, CMM내의 ECM의 캡슐화가 이제 더 상세하게 설명될 것이다.
도 24는 제 1 및 제 2 경우(각각 점선의 좌측 및 우측)에서, CMM 형성 단계(8600) 및 컨텐트 재생 단계(8610)를 나타낸다. 다양한 시나리오에서, 조건부 액세스 시스템(5000), CMM(5610), 및 CMM내의 키 필드(8620)가 도시된다.
제 1 단계(8600)에서, 사용자는 적어도 하나의 CMM이 요구되는 (텔레비전 프로그램과 같은) 컨텐트를 레코딩하고 있다. 양쪽 경우에서, 주어진 CMM(5610)에 대한 관련 ECM이 여느 때처럼 요청된다.
제 1 경우는 사용자가 CMM이 요구되는 컨텐트를 시청하기 위한 액세스 권한을 부여받은 상황을 예시한다. 이러한 경우에, 조건부 액세스 시스템(5000)은 ECM내에 포함된 제어워드를 CMPS 시스템으로 반환하고, CMM의 관련 필드(8620)가 제어워드로 채워진다.
그러나, 제 2 경우에, 사용자는 레코딩되고 있는 컨텐트에 대한 액세스 권한을 갖지 않는다. 조건부 액세스 시스템(5000)으로부터의 DENY 신호에 응답하여, 관련 ECM은 대개 해독된 제어워드를 위해 보유되는 필드(8620)내에 저장된다. 이 시점에서, 사용자는 컨텐트를 시청할 수 없을 것이고, 액세스 권한이 계속 거부되는 한, CMM은 의도된대로 기능하지 않을 것이다. ECM을 CMM내에 캡슐화하기 위해서, 자원 관리자(2370)는 도 11을 참조하여 전술한 프로시저동안 CMM의 형성 요청에 대한 파라미터로서, VSC 관리자(2350)를 통해 제어워드보다는 ECM을 VSC(2400)로 전달한다.
제 2 단계(8610)에서, 사용자는 단계(8600)동안 먼저 레코딩된 컨텐트를 재생하고자 시도한다. 지금까지, 컨텐트에 대한 액세스 권한이 미리 상실된 경우에 그들은 현재 적절하게 얻어진 것으로 가정된다. CMPS 시스템의 정규 기능에 따라서, 클라이언트(일반적으로 HDVR 시스템)는 처리를 위해 CMM을 CMPS 시스템으로 전송한다.
제 1 경우에서, CMPS 시스템은 대개와 같이 CMM(5610)내의 관련 필드(8620)로부터 제어워드를 추출하고, 자발적으로 컨텐트가 시청되도록 허용하기 위해 제어워드를 디스크램블러(미도시)로 공급한다.
제 2 경우에서, CMPS 시스템은 CMM(5610)으로부터 ECM을 추출하여, 다시 조건부 액세스 시스템(5000)으로 전송한다. 추가적인 해독 실패의 상황에서, CMPS 시스템은 실패를 보고하고, 컨텐트 재생을 위한 미래의 시도 동안 동일하게 시도한다. 그러나 이때 해독이 성공한다. 제어워드는 디스크램블러가 컨텐트를 디스크램블링하게 할 수 있도록 디스크램블러(2010)로 전달되고, 새로운 CMM(5610)을 생성하기 위해 상기 컨텐트를 이용하는 VSC로 전달되며, 새로운 CMM은 전술한 바와 같이 저장을 위해 클라이언트에게 전송된다.
전술한 시스템이 ECM 및 제어워드 이외의 다른 형태의 데이터에 적용될 수 있다는 점에 유의해야 한다. 추가로, 제 2 단계(8610)가 CMM의 확인이 실시간으로 수행되는 이점을 갖는, 해당 컨텐트의 재생 동안의 동작하는 것으로 설명되었지만, 또한 예를 들어 아침의 이른 시간동안 임의의 다른 시간에, 또는 적절한 권한을 부여하는 EMM의 수신에 응답하여 '백그라운드에서' 동작할 수 있다.
CMM내의 ECM의 캡슐화는 또한 HDVR과 조건부 액세스 시스템 사이의 독립성도를 제공할 수 있다. 이것은 특히 하나보다 많은 조건부 액세스 시스템이 예를 들어 수신기/디코더내에 제공되는 경우에 유용하다. 이러한 경우에, 이전과 같이, CMPS는 다양한 조건부 액세스 시스템 중의 하나가 적절한 권한을 수신할 때까지 다양한 조건부 액세스 시스템으로부터의 ECM을 내장할 수 있어서, ECM이 분해되도록 허용한다.
전술한 다양한 기능의 구현 및 하드웨어와 소프트웨어 사이에서의 그 분산의 정확한 세부사항은 구현기의 선택 문제이고, 더 상세하게 설명되지 않을 것이다. 그러나, 수신기/디코더에서 요구되는 동작을 수행할 수 있는 전용 집적회로가 상업적으로 이용가능하거나 또는 용이하게 디자인될 수 있으며, 이들은 다양한 필요 동작을 구현하기 위해 하드웨어 가속기를 위한 기반으로서 사용될 수 있거나 또는 더 바람직하게 전용 하드웨어 가속기를 생성하기 위해 수정될 수 있어서, 소프트웨어 실행에 필요한 처리력을 감소시킨다는 점에 유의한다. 그러나, 필요한 동작은 충분한 처리력이 이용가능한 경우에 소프트웨어로 구현될 수 있다.
선택적 및 바람직한 특징과 함께, 각각의 구성요소에 의해 제공된 특징 및 기능의 측면에서 모듈 및 다른 구성요소가 설명되었다. 주어진 정보 및 제공된 사양에서, 이들 특징 및 정밀한 세부사항의 실제 구현이 구현기에게 남겨진다. 일예로서, 특정 모듈은 바람직하게 C 프로그래밍 언어로 기록되고 바람직하게 상기 애플리케이션을 실행하는데 사용되는 프로세서상에서 실행되도록 컴파일링되는 소프트웨어로 구현될 수 있다. 그러나, 일부 구성요소는 분리된 프로세서상에서 실행될 수 있고, 일부 또는 모든 구성요소는 전용 하드웨어에 의해 구현될 수 있다.
상기 모듈 및 구성요소는 단지 예시적인 것이고, 본 발명은 다양한 방식으로 구현될 수 있으며, 특히 일부 구성요소는 유사한 기능을 수행하는 다른 구성요소와 결합될 수 있거나, 또는 일부 구성요소는 간략화된 구현에서 생략될 수 있다. 각각의 상기 기능들의 하드웨어 및 소프트웨어 구현은 구성요소들 사이에서, 그리고 단일 구성요소내에서 모두 자유롭게 혼합될 수 있다.
하드웨어, 컴퓨터 소프트웨어 등에 의해 수행되는 기능은 전기 및 유사 신호상에서 또는 상기 신호를 이용하여 수행된다. 소프트웨어 구현은 ROM내에 저장될 수 있거나, 또는 FLASH내에 패치될 수 있다는 점이 용이하게 이해될 것이다.
본 발명이 단지 예의 방식으로 전술되었고, 세부사항의 수정이 본 발명의 범주내에서 이루어질 수 있다는 점이 이해될 것이다.
상세한 설명, (적절한 경우에) 청구의 범위 및 도면에 개시된 각각의 특징은 독립적으로 또는 임의의 적절한 결합으로 제공될 수 있다.
전술한 바와 같이, 본 발명은 가상 스마트카드, 가상 스마트카드 관리자, 데이터 처리장치, 조건부 액세스 시스템, 수신기/디코더, 방송시스템, 데이터 처리방법, 암호키 생성방법, 암호키 값 저장방법, 컴퓨터 프로그램 제품, 컴퓨터 판독가능 매체, 및 신호에서 이용가능하다.
Claims (26)
- 데이터 처리장치로서,페이로드 및 상기 페이로드를 포함하는 암호화된 데이터 중 하나를 선택하는 수단, 상기 선택된 페이로드 또는 암호화된 데이터를 저장하는 수단, 및 상기 저장된 암호화된 데이터를 상기 페이로드로 교체하는 수단을 포함하는, 데이터 처리장치.
- 제 1항에 있어서, 상기 암호화된 데이터를 스마트카드로 전송하는 수단, 및 상기 암호화된 데이터내에 포함된 상기 페이로드 또는 상기 페이로드가 해독될 수 없다는 것을 나타내는 응답을 상기 스마트카드로부터 수신하는 수단을 더 포함하는, 데이터 처리장치.
- 제 1항 또는 제 2항에 있어서, 상기 페이로드 및 상기 암호화된 데이터 중 하나를 선택하는 상기 수단은 상기 페이로드가 이용가능하다면 상기 페이로드를, 그렇지 않으면 상기 페이로드를 포함하는 상기 암호화된 데이터를 선택하도록 적응되는, 데이터 처리장치.
- 제 1항 내지 제 3항 중 어느 한 항에 있어서, 데이터의 저장 및 재생 중 적어도 하나를 수행하는 수단을 더 포함하고, 상기 페이로드는 상기 데이터와 관련되는, 데이터 처리장치.
- 제 1항 내지 제 4항 중 어느 한 항에 있어서, 암호화된 데이터 객체를 추가로 암호화된 데이터 객체내에 캡슐화하는(encapsulating) 수단을 더 포함하는, 데이터 처리장치.
- 제 1항 내지 제 5항 중 어느 한 항에 있어서, 암호키를 이용하여 상기 저장된 페이로드 또는 암호화된 데이터를 암호화하는 수단을 더 포함하는, 데이터 처리장치.
- 제 1항 내지 제 6항 중 어느 한 항에 있어서, 인증키를 이용하여 상기 저장된 페이로드 또는 암호화된 데이터를 인증하는 수단을 더 포함하는, 데이터 처리장치.
- 제 1항 내지 제 7항 중 어느 한 항에 있어서, 통신 암호키를 이용하여 상기 장치와 스마트카드 사이의 통신을 암호화하는 수단을 더 포함하는, 데이터 처리장치.
- 제 1항 내지 제 8항 중 어느 한 항에 있어서, 통신 인증키를 이용하여 상기 장치와 스마트카드 사이의 통신을 인증하는 수단을 더 포함하는, 데이터 처리장치.
- 제 1항 내지 제 9항 중 어느 한 항에 있어서, 적어도 하나의 세션을 설정하는 수단, 및 각각의 세션 식별자를 해당 또는 각각의 세션과 관련시키는 수단을 더 포함하는, 데이터 처리장치.
- 제 1항 내지 제 10항 중 어느 한 항에 있어서,암호키/인증키를 생성하기 위해 마스터 세션 키를 이용하는 수단을 더 포함하는, 데이터 처리장치.
- 데이터 처리장치로서,암호키를 저장하는 수단, 및 상기 저장된 암호키를 각각 암호화 및 인증하기 위해 암호키 및 인증키 중 하나를 생성하기 위해서 마스터 세션 키를 이용하는 수단을 포함하는, 데이터 처리장치.
- 제 11항 또는 제 12항에 있어서, 상기 마스터 세션 키 이용 수단은 상기 마스터 세션 키로부터 암호키 및 인증키 모두를 생성하도록 적응되는, 데이터 처리장치.
- 제 6항 내지 제 13항 중 어느 한 항에 있어서, 상기 암호키/인증키는 주어진 세션과 관련되고, 상기 이용수단은 대응하는 세션 식별자를 이용하여 상기 마스터세션키를 다양화(diversify)하도록 적응되는, 데이터 처리장치.
- 제 14항에 있어서, 추가 세션을 암호화/인증하기 위해 상기 암호키/인증키를 이용하는 수단을 더 포함하는, 데이터 처리장치.
- 제 6항 내지 제 15항 중 어느 한 항에 있어서, 상기 장치내의 비-암호 데이터에 따라서 상기 암호키/인증키를 생성하는 수단을 더 포함하는, 데이터 처리장치.
- 데이터 처리장치로서,암호키 값을 구성할 수 있는 데이터를 각각의 복수의 위치에 저장하는 수단을 포함하는, 데이터 처리장치.
- 제 6항 내지 제 17항 중 어느 한 항에 있어서, 상기 키를 복수의 부분으로 분할하는 수단, 및 상기 복수의 부분을 각각의 복수의 위치에 저장하는 수단을 더 포함하는, 데이터 처리장치.
- 제 17항 또는 제 18항에 있어서, 상기 저장 수단은 수신기/디코더내에 적어도 부분적으로 저장하도록 적응되는, 데이터 처리장치.
- 제 19항에 있어서, 상기 복수의 위치가 상기 수신기/디코더내내 의사난수적으로 분산되도록 상기 복수의 위치를 선택하는 수단을 더 포함하는, 데이터 처리장치.
- 제 17항 내지 제 20항 중 어느 한 항에 있어서, 상기 저장 수단은 복수의 물리적 디바이스내에 저장하도록 적응되는, 데이터 처리장치.
- 제 17항 내지 제 21항 중 어느 한 항에 있어서, 상기 복수의 위치 중 적어도 하나가 배치되는, 대체로 난수의 영역을 형성하는 수단을 더 포함하는, 데이터 처리장치.
- 제 1항 내지 제 22항 중 어느 한 항에 있어서, 각각의 상기 복수의 위치로부터 데이터를 판독하는 수단, 및 암호키를 형성하기 위해 상기 데이터를 결합하는 수단을 더 포함하는, 데이터 처리장치.
- 대용량 저장 디바이스를 포함하거나 상기 디바이스에 부착된 수신기/디코더로서,액세스 권한의 기능으로서 조건부 액세스 데이터 페이로드 및 상기 조건부 액세스 데이터 페이로드를 포함하는 암호화된 조건부 액세스 데이터 중 하나를 선택하는 수단, 및 스크램블링된 컨텐트 및 상기 선택된 조건부 액세스 데이터 페이로드 또는 암호화된 조건부 액세스 데이터를 상기 대용량 저장 디바이스상에 저장하는 수단을 포함하는, 수신기/디코더.
- 제 24항에 있어서, 상기 조건부 액세스 데이터 페이로드는 적어도 하나의 제어워드이고, 상기 암호화된 조건부 액세스 데이터는 적어도 하나의 인타이틀먼트 제어 메시지(ECC)인, 수신기/디코더.
- 제 25항에 있어서, 상기 적어도 하나의 제어워드는 스마트카드에 의해 상기 인타이틀먼트 제어 메시지로부터 생성되는 것을 특징으로 하는, 수신기/디코더.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP01403228A EP1320006A1 (en) | 2001-12-12 | 2001-12-12 | Processing data |
EP01403228.8 | 2001-12-12 | ||
PCT/IB2002/005774 WO2003050661A2 (en) | 2001-12-12 | 2002-12-12 | Processing data |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040082381A true KR20040082381A (ko) | 2004-09-24 |
KR100917487B1 KR100917487B1 (ko) | 2009-09-16 |
Family
ID=8183020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020047009066A KR100917487B1 (ko) | 2001-12-12 | 2002-12-12 | 암호화된 데이터를 처리하기 위한 장치 및 방법 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7590860B2 (ko) |
EP (2) | EP1320006A1 (ko) |
JP (1) | JP2005531165A (ko) |
KR (1) | KR100917487B1 (ko) |
CN (1) | CN100476683C (ko) |
AU (1) | AU2002366694A1 (ko) |
IL (1) | IL162346A0 (ko) |
MX (1) | MXPA04005607A (ko) |
WO (1) | WO2003050661A2 (ko) |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806549B1 (en) | 1999-10-13 | 2014-08-12 | Starz Entertainment, Llc | Pre-storing a portion of a program to allow user control of playback |
US20050091376A1 (en) * | 2001-10-12 | 2005-04-28 | Helfman Nadav B. | Apparatus and method for optimized and secured reflection of network services to remote locations |
US20040268410A1 (en) * | 2003-06-11 | 2004-12-30 | Starz Encore Group Llc | Subscription video on demand delivery |
JP4655452B2 (ja) * | 2003-03-24 | 2011-03-23 | 富士ゼロックス株式会社 | 情報処理装置 |
GB2399972A (en) * | 2003-03-26 | 2004-09-29 | Sony Uk Ltd | Common interface controller and method of descrambling transport stream channels |
TW200509637A (en) * | 2003-07-14 | 2005-03-01 | Nagravision Sa | Method to create and manage a local network |
US7900041B2 (en) * | 2003-07-22 | 2011-03-01 | Irdeto Canada Corporation | Software conditional access system |
KR100547810B1 (ko) * | 2003-08-27 | 2006-01-31 | 삼성전자주식회사 | 디지털 멀티미디어 데이터의 재생이 가능한 디지털멀티미디어 방송 수신 장치 및 방법 |
RU2006111442A (ru) * | 2003-09-10 | 2006-09-10 | Эй.Ди.Ай. ВИДЕО ТЕКНОЛОДЖИЗ ЛТД. (IL) | Устройство, система и способ многоканальной обработки |
WO2005051022A1 (en) | 2003-11-14 | 2005-06-02 | Cingular Wireless Ii, Llc | Personal base station system with wireless video capability |
EP1542472A1 (fr) * | 2003-12-10 | 2005-06-15 | Canal + Technologies | Procédé et dispositif de récupération d'information dans des systèmes de TV numérique interactive |
JP3947978B2 (ja) * | 2003-12-24 | 2007-07-25 | ソニー株式会社 | 再生システム、再生装置及び再生方法 |
FR2866772B1 (fr) * | 2004-02-20 | 2006-04-28 | Viaccess Sa | Procede d'appariement d'un terminal recepteur avec une pluralite de cartes de controle d'acces |
JP2006186521A (ja) * | 2004-12-27 | 2006-07-13 | Leader Electronics Corp | チューナのビットエラーレート(ber)測定の方法および装置 |
GB2436487B (en) * | 2004-12-30 | 2010-01-27 | Topaz Systems Inc | Electronic signature security system |
JP4727237B2 (ja) * | 2005-01-24 | 2011-07-20 | 株式会社エヌ・ティ・ティ・データ | 演算装置およびコンピュータプログラム |
FR2882208B1 (fr) * | 2005-02-14 | 2007-05-11 | Viaccess Sa | Procede et systeme de reception d'un signal multimedia, entite cryptographique pour ce procede de reception et systeme, procede et boite noire pour la fabrication de l'entite cryptographique |
US9652637B2 (en) | 2005-05-23 | 2017-05-16 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for allowing no code download in a code download scheme |
US8144868B2 (en) * | 2005-05-25 | 2012-03-27 | Zenith Electronics Llc | Encryption/decryption of program data but not PSI data |
US8189786B2 (en) * | 2005-05-25 | 2012-05-29 | Zenith Electronics Llc | Encryption system |
CN100392597C (zh) * | 2005-09-15 | 2008-06-04 | 首都信息发展股份有限公司 | 一种虚拟硬件加速方法及系统 |
US20070140488A1 (en) * | 2005-12-21 | 2007-06-21 | Roundbox, Inc. | Restriction of broadcast session key use by secure module decryption policy |
GB2434661A (en) * | 2006-01-13 | 2007-08-01 | Deepnet Technologies Ltd | Portable communication device with smart card functionality |
KR100698164B1 (ko) * | 2006-01-26 | 2007-03-22 | 엘지전자 주식회사 | 디지털 방송 수신기 초기화를 위한 방법 및 장치 |
US9177176B2 (en) | 2006-02-27 | 2015-11-03 | Broadcom Corporation | Method and system for secure system-on-a-chip architecture for multimedia data processing |
US9904809B2 (en) * | 2006-02-27 | 2018-02-27 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for multi-level security initialization and configuration |
JP2007304792A (ja) * | 2006-05-10 | 2007-11-22 | Hitachi Omron Terminal Solutions Corp | 認証システムを構成する処理装置及び認証システム及びその動作方法 |
US20070286420A1 (en) * | 2006-06-08 | 2007-12-13 | Widevine Technologies, Inc. | Encryption of video content to vod services and networked personal video recorders using unique key placements |
CA2550698A1 (en) * | 2006-06-19 | 2007-12-19 | Daniel Mccann | Method and apparatus for encryption and pass-through handling of confidential information in software applications |
US9489318B2 (en) | 2006-06-19 | 2016-11-08 | Broadcom Corporation | Method and system for accessing protected memory |
US20080104704A1 (en) * | 2006-10-27 | 2008-05-01 | Ravikumar Mohandas | Security for physically unsecured software elements |
WO2008068078A1 (en) * | 2006-12-07 | 2008-06-12 | International Business Machines Corporation | Remote controller having an rfid tag |
RU2339077C1 (ru) * | 2007-03-13 | 2008-11-20 | Олег Вениаминович Сахаров | Способ функционирования системы условного доступа для применения в компьютерных сетях и система для его осуществления |
US8181039B2 (en) * | 2007-04-13 | 2012-05-15 | Microsoft Corporation | Disc drive counterfeiting countermeasure |
KR20090019579A (ko) * | 2007-08-21 | 2009-02-25 | 삼성전자주식회사 | 스크램블된 영상 제공방법, 이를 적용한 디스크램블 카드및 영상기기 |
US8627079B2 (en) | 2007-11-01 | 2014-01-07 | Infineon Technologies Ag | Method and system for controlling a device |
US8908870B2 (en) * | 2007-11-01 | 2014-12-09 | Infineon Technologies Ag | Method and system for transferring information to a device |
JP5209281B2 (ja) * | 2007-11-22 | 2013-06-12 | 株式会社エヌ・ティ・ティ・ドコモ | 通信端末装置、アクセス制御方法、icカード |
AU2009200139B2 (en) | 2008-01-15 | 2012-02-16 | Aristocrat Technologies Australia Pty Limited | A method of processing a user data card, an interface module and a gaming system |
WO2009100230A1 (en) * | 2008-02-07 | 2009-08-13 | Inflexis Corporation | Mobile electronic security apparatus and method |
US8347112B2 (en) * | 2008-05-08 | 2013-01-01 | Texas Instruments Incorporated | Encryption/decryption engine with secure modes for key decryption and key derivation |
US8300825B2 (en) * | 2008-06-30 | 2012-10-30 | Intel Corporation | Data encryption and/or decryption by integrated circuit |
EP2160030B1 (en) * | 2008-08-27 | 2016-12-21 | Irdeto B.V. | Multi-vendor conditional access system |
EP2192773A1 (en) * | 2008-12-01 | 2010-06-02 | Irdeto Access B.V. | Content decryption device and encryption system using an additional key layer |
US8238217B2 (en) * | 2008-12-16 | 2012-08-07 | General Electric Company | Method and system for detection enhancement for optical data storage |
CA2748950A1 (en) * | 2009-01-06 | 2010-07-15 | Cytexone Corporation | Method and system for secure distributed computing |
US10057641B2 (en) * | 2009-03-25 | 2018-08-21 | Sony Corporation | Method to upgrade content encryption |
US9106628B2 (en) * | 2009-07-07 | 2015-08-11 | Alcatel Lucent | Efficient key management system and method |
EP2977941B1 (en) * | 2009-07-10 | 2022-11-16 | BlackBerry Limited | System and method for managing electronic assets |
KR101295879B1 (ko) * | 2009-08-19 | 2013-08-16 | 한국전자통신연구원 | 패스워드 해독 장치 및 그것의 패스워드 해독 방법 |
CN101720011B (zh) * | 2009-11-23 | 2012-05-23 | 中兴通讯股份有限公司 | 一种在移动多媒体播放时实现智能卡热插拔的方法和终端 |
US9043827B1 (en) * | 2009-12-16 | 2015-05-26 | Prime Research Alliance E, Inc. | Method and system for providing conditional access to encrypted content |
US8250380B2 (en) * | 2009-12-17 | 2012-08-21 | Hitachi Global Storage Technologies Netherlands B.V. | Implementing secure erase for solid state drives |
US9191200B1 (en) * | 2010-10-07 | 2015-11-17 | L-3 Communications Corp. | System and method for changing the security level of a communications terminal during operation |
US8565422B2 (en) * | 2010-12-03 | 2013-10-22 | Salesforce.Com, Inc. | Method and system for enryption key versioning and key rotation in a multi-tenant environment |
FR2970134B1 (fr) * | 2010-12-29 | 2013-01-11 | Viaccess Sa | Procede de transmission et de reception d'un contenu multimedia |
US20120237024A1 (en) * | 2011-03-18 | 2012-09-20 | Wei-Ti Liu | Security System Using Physical Key for Cryptographic Processes |
US9392318B2 (en) * | 2011-06-14 | 2016-07-12 | Sony Corporation | Receiver device with multiple decryption modes |
US9137340B2 (en) | 2011-08-02 | 2015-09-15 | Cavium, Inc. | Incremental update |
CN102629215A (zh) * | 2012-02-28 | 2012-08-08 | 东信和平智能卡股份有限公司 | 一种虚拟智能卡的通信方法及装置 |
US8782768B2 (en) * | 2012-06-15 | 2014-07-15 | Vmware, Inc. | Systems and methods for accessing a virtual desktop |
EP2827601A1 (fr) * | 2013-07-19 | 2015-01-21 | Nagravision S.A. | Méthode et dispositif pour la protection des clés de déchiffrement d'un décodeur |
US9420325B2 (en) * | 2013-12-20 | 2016-08-16 | Echostar Technologies L.L.C. | Virtualized content sourcing |
US9544402B2 (en) * | 2013-12-31 | 2017-01-10 | Cavium, Inc. | Multi-rule approach to encoding a group of rules |
US9405925B2 (en) * | 2014-02-09 | 2016-08-02 | Microsoft Technology Licensing, Llc | Content item encryption on mobile devices |
WO2015168878A1 (zh) * | 2014-05-07 | 2015-11-12 | 华为技术有限公司 | 支付方法和装置以及支付要素处理方法和装置 |
CN103986950B (zh) * | 2014-05-12 | 2017-08-04 | 青岛海信电器股份有限公司 | 一种解扰模式的控制方法、装置及设备 |
US10055567B2 (en) | 2014-05-30 | 2018-08-21 | Apple Inc. | Proximity unlock and lock operations for electronic devices |
US9451438B2 (en) * | 2014-05-30 | 2016-09-20 | Apple Inc. | Predefined wireless pairing |
US9549375B2 (en) * | 2014-05-30 | 2017-01-17 | Apple Inc. | Operating-mode transitions based on advertising information |
US10067955B1 (en) * | 2014-12-08 | 2018-09-04 | Conviva Inc. | Custom video metrics management platform |
US20170149749A1 (en) * | 2015-11-20 | 2017-05-25 | Qualcomm Incorporated | Exchanging encrypted media over a local wireless connection in accordance with a local wireless rendered media distribution scheme |
CN105554540B (zh) * | 2015-12-31 | 2019-04-09 | 深圳国微技术有限公司 | 一种网络接口在条件接收卡中的实现方法和装置 |
WO2017140381A1 (en) * | 2016-02-19 | 2017-08-24 | Nec Europe Ltd. | Method for storing data on a storage entity |
US10756892B2 (en) * | 2017-02-09 | 2020-08-25 | Sap Se | Protecting data in a multi-tenant cloud-based system |
US11671250B2 (en) * | 2017-06-04 | 2023-06-06 | Apple Inc. | Migration for wearable to new companion device |
US11113422B2 (en) | 2018-08-03 | 2021-09-07 | Micron Technology, Inc. | Data protection in computer processors |
US11074198B2 (en) * | 2018-09-18 | 2021-07-27 | Micron Technology, Inc. | Key management in computer processors |
US11113095B2 (en) * | 2019-04-30 | 2021-09-07 | Automation Anywhere, Inc. | Robotic process automation system with separate platform, bot and command class loaders |
US12111646B2 (en) | 2020-08-03 | 2024-10-08 | Automation Anywhere, Inc. | Robotic process automation with resilient playback of recordings |
US12097622B2 (en) | 2021-07-29 | 2024-09-24 | Automation Anywhere, Inc. | Repeating pattern detection within usage recordings of robotic process automation to facilitate representation thereof |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL107967A (en) * | 1993-12-09 | 1996-12-05 | News Datacom Research Ltd | Apparatus and method for securing communication systems |
US5619501A (en) * | 1994-04-22 | 1997-04-08 | Thomson Consumer Electronics, Inc. | Conditional access filter as for a packet video signal inverse transport system |
DE69532434T2 (de) * | 1994-10-27 | 2004-11-11 | Mitsubishi Corp. | Gerät für Dateiurheberrechte-Verwaltungssystem |
FR2732537B1 (fr) | 1995-03-31 | 1997-06-13 | Canal Plus Sa | Procede et installation d'enregistrement d'informations numeriques cryptees |
US6157719A (en) * | 1995-04-03 | 2000-12-05 | Scientific-Atlanta, Inc. | Conditional access system |
US6035037A (en) * | 1995-08-04 | 2000-03-07 | Thomson Electronic Consumers, Inc. | System for processing a video signal via series-connected high speed signal processing smart cards |
US6178242B1 (en) * | 1997-02-07 | 2001-01-23 | Nds Limited | Digital recording protection system |
US6101255A (en) * | 1997-04-30 | 2000-08-08 | Motorola, Inc. | Programmable cryptographic processing system and method |
BR9815610A (pt) * | 1997-08-01 | 2004-06-22 | Scientific Atlanta | Verificação da fonte de informações de programa em sistema de acesso condicional |
EP0903886B1 (en) * | 1997-09-18 | 2006-03-15 | Matsushita Electric Industrial Co., Ltd. | Information transmission method and apparatus for combining multiplexing and encryption |
US6987854B2 (en) * | 1997-09-25 | 2006-01-17 | Thomson Licensing S.A. | Method and apparatus for recording of encrypted digital data |
FR2769779B1 (fr) * | 1997-10-14 | 1999-11-12 | Thomson Multimedia Sa | Procede de controle d'acces a un reseau domestique et dispositif mettant en oeuvre le procede |
JP3389843B2 (ja) * | 1997-10-17 | 2003-03-24 | 日本電気株式会社 | 情報処理装置におけるデジタル放送受信システム |
EP0917356A1 (en) * | 1997-11-17 | 1999-05-19 | CANAL+ Société Anonyme | Packet filtering |
DE19838628A1 (de) * | 1998-08-26 | 2000-03-02 | Ibm | Erweiterte Chipkarten-Kommunikationsarchitektur und Verfahren zur Kommunikation zwischen Chipkartenanwendung und Datenträger |
EP0936774A1 (en) * | 1998-02-13 | 1999-08-18 | CANAL+ Société Anonyme | Recording of scrambled digital data |
EP0936530A1 (en) * | 1998-02-16 | 1999-08-18 | Siemens Nixdorf Informationssysteme AG | Virtual smart card |
JP3428420B2 (ja) * | 1998-02-25 | 2003-07-22 | 松下電器産業株式会社 | デジタル放送受信再生装置 |
CA2241705C (en) | 1998-06-26 | 2006-06-20 | Certicom Corp. | A method for preventing key-share attacks |
US6422460B1 (en) * | 1999-01-29 | 2002-07-23 | Verisign, Inc. | Authorization system using an authorizing device |
EP1026898A1 (en) * | 1999-02-04 | 2000-08-09 | CANAL+ Société Anonyme | Method and apparatus for encrypted transmission |
DE19906432C1 (de) * | 1999-02-16 | 2000-06-21 | Fraunhofer Ges Forschung | Verfahren und Vorrichtung zum Erzeugen eines Datenstroms und Verfahren und Vorrichtung zum Abspielen eines Datenstroms |
US6697489B1 (en) * | 1999-03-30 | 2004-02-24 | Sony Corporation | Method and apparatus for securing control words |
US6289455B1 (en) * | 1999-09-02 | 2001-09-11 | Crypotography Research, Inc. | Method and apparatus for preventing piracy of digital content |
US7085931B1 (en) * | 1999-09-03 | 2006-08-01 | Secure Computing Corporation | Virtual smart card system and method |
KR100605825B1 (ko) * | 1999-09-14 | 2006-07-31 | 삼성전자주식회사 | 하드 디스크 드라이브를 구비하는 방송 수신 시스템의 복사 방지장치 및 방법 |
US6912513B1 (en) * | 1999-10-29 | 2005-06-28 | Sony Corporation | Copy-protecting management using a user scrambling key |
US7010685B1 (en) * | 1999-11-09 | 2006-03-07 | Sony Corporation | Method and apparatus for storing scrambled digital programs by filtering product identifier |
US7110542B1 (en) * | 1999-12-30 | 2006-09-19 | Intel Corporation | Protecting audio/video content during storage and playback on a processor-based system |
EP1134977A1 (en) * | 2000-03-06 | 2001-09-19 | Irdeto Access B.V. | Method and system for providing copies of scrambled content with unique watermarks, and system for descrambling scrambled content |
WO2001093212A2 (en) * | 2000-05-30 | 2001-12-06 | Pointsec Mobile Technologies, Inc. | Apparatus and methods for using a virtual smart card |
JP3742282B2 (ja) * | 2000-06-30 | 2006-02-01 | 株式会社東芝 | 放送受信方法および放送受信装置および情報配信方法および情報配信装置 |
US6853728B1 (en) * | 2000-07-21 | 2005-02-08 | The Directv Group, Inc. | Video on demand pay per view services with unmodified conditional access functionality |
EP1182874A1 (en) * | 2000-08-24 | 2002-02-27 | Canal+ Technologies Société Anonyme | Digital content protection system |
US7269744B1 (en) * | 2000-09-29 | 2007-09-11 | Intel Corporation | System and method for safeguarding data between a device driver and a device |
JP3435398B2 (ja) * | 2000-11-24 | 2003-08-11 | 株式会社東芝 | コンテンツ配信方法及びコンテンツデータ記録再生方法及び装置 |
US7383561B2 (en) * | 2001-06-29 | 2008-06-03 | Nokia Corporation | Conditional access system |
-
2001
- 2001-12-12 EP EP01403228A patent/EP1320006A1/en not_active Withdrawn
-
2002
- 2002-11-14 US US10/295,021 patent/US7590860B2/en not_active Expired - Fee Related
- 2002-12-12 MX MXPA04005607A patent/MXPA04005607A/es not_active Application Discontinuation
- 2002-12-12 AU AU2002366694A patent/AU2002366694A1/en not_active Abandoned
- 2002-12-12 IL IL16234602A patent/IL162346A0/xx unknown
- 2002-12-12 EP EP02790676A patent/EP1463983A2/en not_active Ceased
- 2002-12-12 KR KR1020047009066A patent/KR100917487B1/ko not_active IP Right Cessation
- 2002-12-12 CN CNB02825029XA patent/CN100476683C/zh not_active Expired - Fee Related
- 2002-12-12 JP JP2003551653A patent/JP2005531165A/ja active Pending
- 2002-12-12 WO PCT/IB2002/005774 patent/WO2003050661A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN1605052A (zh) | 2005-04-06 |
WO2003050661A2 (en) | 2003-06-19 |
JP2005531165A (ja) | 2005-10-13 |
KR100917487B1 (ko) | 2009-09-16 |
AU2002366694A1 (en) | 2003-06-23 |
AU2002366694A8 (en) | 2003-06-23 |
IL162346A0 (en) | 2005-11-20 |
US20030110382A1 (en) | 2003-06-12 |
CN100476683C (zh) | 2009-04-08 |
US7590860B2 (en) | 2009-09-15 |
WO2003050661A3 (en) | 2004-07-22 |
EP1320006A1 (en) | 2003-06-18 |
EP1463983A2 (en) | 2004-10-06 |
MXPA04005607A (es) | 2005-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100917487B1 (ko) | 암호화된 데이터를 처리하기 위한 장치 및 방법 | |
AU2002334278B2 (en) | Method and apparatus for a receiver/decoder | |
JP4199925B2 (ja) | ディジタル伝送システムにおけるデータ認証方法 | |
JP4358463B2 (ja) | ハードペア受信機および記憶装置でのメディアプログラムのスーパー暗号化記憶および取得 | |
CA2284023C (en) | Broadcast and reception system, and conditional access system therefor | |
US7043020B2 (en) | Smartcard for use with a receiver of encrypted broadcast signals, and receiver | |
KR100686967B1 (ko) | 다중서비스 디지털 전송 시스템을 위한 애플리케이션데이터 테이블 | |
AU2002334278A1 (en) | Method and apparatus for a receiver/decoder | |
KR20020061645A (ko) | 리시버/디코더 동작 | |
AU2314900A (en) | Method and apparatus for encrypted transmission | |
KR20040019014A (ko) | Mpeg 테이블 구조 | |
JP2002111656A (ja) | スマートカード発生鍵によるメディアプログラムのスーパー暗号化記憶および取得 | |
KR20060054419A (ko) | 디지털 방송 시스템에서의 복제-방지 애플리케이션들 | |
JP2002503063A (ja) | 構成方法および装置 | |
Prasertsatid et al. | Implementation conditional access system for pay TV based on Java card | |
MXPA00007588A (en) | Configuring method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
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: 20120821 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20130820 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20140826 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20150819 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |