KR20120030419A - 호스트-식별 정보를 콘텐트에 내장시키기 위한 메모리 디바이스 및 방법 - Google Patents

호스트-식별 정보를 콘텐트에 내장시키기 위한 메모리 디바이스 및 방법 Download PDF

Info

Publication number
KR20120030419A
KR20120030419A KR1020117029909A KR20117029909A KR20120030419A KR 20120030419 A KR20120030419 A KR 20120030419A KR 1020117029909 A KR1020117029909 A KR 1020117029909A KR 20117029909 A KR20117029909 A KR 20117029909A KR 20120030419 A KR20120030419 A KR 20120030419A
Authority
KR
South Korea
Prior art keywords
host
content
memory device
identification information
embedded
Prior art date
Application number
KR1020117029909A
Other languages
English (en)
Inventor
제이슨 티. 린
알렉산더 카나리스
조셉 이. 할펀
Original Assignee
샌디스크 테크놀로지스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샌디스크 테크놀로지스, 인코포레이티드 filed Critical 샌디스크 테크놀로지스, 인코포레이티드
Publication of KR20120030419A publication Critical patent/KR20120030419A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4367Establishing a secure communication between the client and a peripheral device or smart card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards

Abstract

호스트-식별 정보를 콘텐트에 내장시키기 위한 메모리 디바이스 및 방법이 개시된다. 일실시예에서, 콘텐트를 저장하게 동작하는 메모리, 및 메모리와 통신하는 제어기를 포함하는 메모리 디바이스가 제공된다. 제어기는 메모리 디바이스와 통신하는 호스트로부터 호스트-식별 정보를 포함하는 크레덴셜을 수신하고, 크레덴셜을 사용하여 호스트를 인증하고, 메모리에 저장된 콘텐트를 재현하라는 요청을 호스트로부터 수신하고, 호스트-식별 정보를 콘텐트에 내장하고, 내장된 호스트-식별 정보와 함께 콘텐트를 호스트에 보내게 동작한다.

Description

호스트-식별 정보를 콘텐트에 내장시키기 위한 메모리 디바이스 및 방법{MEMORY DEVICE AND METHOD FOR EMBEDDING HOST-IDENTIFICATION INFORMATION INTO CONTENT}
일부 콘텐트 보호 시스템들에서, 미디어 디바이스(예를 들면, 블루레이 디스크)는 해독 및 재생을 위해 암호화된 디지털 콘텐트(예를 들면, 고상세 영화)를 호스트 플레이어(예를 들면, 블루레이 디스크 플레이어)에 제공한다. 콘텐트는, 거의 서로 간에 동일하지만 얼마간에 약간씩 다를 수 있는 다수 세트들의 사본 비디오 프레임들을 내포한다. 이들 사본 프레임들을 통하는 많은 택일적 내비게이션 경로들이 있으며, 호스트 플레이어는 호스트 플레이어의 미디어 키 블록의 키 트리 구조 내에 속하는 그룹의 디바이스 키에 기초하여 한 특정한 내비게이션 경로를 선택한다. 따라서, 호스트 플레이어에 의해 렌더링되는 사본 프레임들 중 특정한 프레임들은 호스트 플레이어를 식별하는 고유 시그내처(또는 "워터마크")를 제공한다. 따라서, 콘텐트 타이틀이 불법복제되었다면, 불법복제된 카피는 사용되었던 내비게이션 경로를 판정하고 이에 따라, 불법복제된 카피를 생성하였던 특정 호스트 플레이어의 신원을 판정하게 분석될 수 있다. 일단 오염된(compromised) 호스트 플레이어가 확인되면, 호스트 플레이어의 증명서 및 키가 철회될 수 있고, 따라서 호스트 플레이어는 더 이상 추가의 콘텐트를 해독(및 아마도 불법복제)를 할 수 없게 될 것이며, 그럼으로써 호스트 플레이어의 보안 침해 침해에 기인하여 콘텐트 제공자의 잠재적 수익 손실을 억제할 것이다. 예를 들면, 새로운 증명서 철회 리스트들이 콘텐트의 추후 발매와 함께 유포될 수 있고, 따라서 오염된 호스트 플레이어는 새로운 콘텐트 타이틀을 재현하려고 시도할 때 디저블될 것이다. 그러나, 해결책의 효과성은 에코시스템에서 오염된 호스트 플레이어를 정확하게 검출하기 위해 취한 복구된 콘텐트의 수에 의해 측정된다. 이것은 오염된 호스트 플레이어를 검출하는데 있어 지연을 초래하며 절대 범법 디바이스의 개연적 검출을 또한 억제한다.
이들 콘텐트 보호 시스템들은 워터마크를 콘텐트에 주입하도록 한 실체가 오염된 호스트 플레이어 자신이라는 점에서 "고양이에게 생선을 맡기는(fox guarding hen house)" 문제에 직면할 수 있다. 따라서, 일단 호스트 플레이어가 오염되어 콘텐트가 불법복제될 수 있게 하게 되면, 워터마크 주입 기능을 제거하게 더욱 오염될 수 있을 우려가 있다.
본 발명의 실시예들은 청구항들에 의해 정의되며, 이 단락에 어떤 것도 이들 청구항들에 대한 한정으로서 취해지지 않을 것이다.
예로서, 이하 기술되는 실시예들은 일반적으로 콘텐트에 호스트-식별 정보를 내장하기 위한 메모리 디바이스 및 방법에 대한 것이다. 일실시예에서, 콘텐트를 저장하게 동작하는 메모리; 및 메모리와 통신하는 제어기를 포함하는 메모리 디바이스가 제공된다. 제어기는 메모리 디바이스와 통신하는 호스트로부터 호스트-식별 정보를 포함하는 크레덴셜을 수신하고, 크레덴셜을 사용하여 호스트를 인증하고, 메모리에 저장된 콘텐트를 재현하라는 요청을 호스트로부터 수신하고, 호스트-식별 정보를 콘텐트에 내장하고, 내장된 호스트-식별 정보와 함께 콘텐트를 호스트에 보내게 구성된다.
다른 실시예들이 제공되며, 실시예들 각각은 단독으로 혹은 조합하게 함께 사용될 수 있다. 여러 실시예들이 첨부한 도면들을 참조하여 이제 기술될 것이다.
도 1은 실시예의 호스트 및 메모리 디바이스의 블록도이다.
도 2는 호스트- 식별 정보를 콘텐트에 내장시키기 위한 실시예의 방법의 흐름도이다.
도 3a 내지 도 3e는 이들 실시예들에 사용될 수 있는 내장 기술들을 도시한 것이다.
도 4는 실시예의 호스트 및 메모리 디바이스의 블록도이다.
도 5는 파일 시스템 어웨어인 메모리 디바이스를 사용하여 호스트- 식별 정보를 콘텐트에 내장시키는 실시예의 방법의 흐름도이다.
도 6은 파일 시스템 애그노스틱인 메모리 디바이스를 사용하여 호스트- 식별 정보를 콘텐트에 내장시키는 실시예의 방법의 흐름도이다.
도 7은 룩업 테이블을 업데이트하기 위해 콘텐트 로딩 시스템을 사용하기 위한 실시예의 방법의 흐름도이다.
서론
서론으로서, 다음 실시예들은 일반적으로 메모리 디바이스로부터 재현되는 콘텐트에 호스트-식별 정보를 내장하기 위한 메모리 디바이스 및 방법에 대한 것이다. 이들 실시예들에서, 호스트-식별 정보는 호스트를 메모리 디바이스에 인증시키기 위해 사용되는 크레덴셜의 부분으로부터 호스트에 의해 메모리 디바이스에 제공된다. 인증 프로세스 동안 사용되는 호스트-식별은 오염된 호스트를 정확하고 즉각적으로 검출할 수 있기 위해 메모리 디바이스에 의해 콘텐트에 보안적으로 직접 주입될 수 있다. 즉, 내장된(embedded) 호스트-식별 정보는 콘텐트 소유자가 자신의 콘텐트의 불법복제된 카피를 생성한 호스트를 확인하고 호스트가 더 이상 추가의 콘텐트를 해독(및 아마도 불법복제)할 수 없게 되도록 이 호스트의 증명서 및 키를 철회할 수 있게 한다. 또한, 호스트-식별 정보를 콘텐트에 내장시키도록 된 것은 메모리 디바이스이고 호스트가 아니기 때문에, 이들 실시예들은 자신을 감시하기 위해 오염된 호스트에 의존하는 콘텐트 보호 시스템들에서 발생되는 "고양이에게 생선을 맡기는" 문제를 극복한다. 이 수법은 호스트-구동 수법에 개입하지 않으므로, 이들 둘 다는 동시에 존재할 수 있다.
호스트-식별 정보를 내장하는 것에 대한 개요
이제 도면들로 가면, 도 1은 실시예의 호스트(50) 및 메모리 디바이스(100)의 블록도이다. 도 1에 도시된 바와 같이, 메모리 디바이스(100)는 제어기(110) 및 콘텐트(130)를 저장하게 동작하는 메모리(120)를 포함한다. "콘텐트"는 디지털 비디오(오디오를 동반하거나 하지 않은)(예를 들면, 영화, TV 쇼의 에피소드, 뉴스 프로그램, 등), 오디오(예를 들면, 곡, 포드캐스트, 하나 또는 일련의 사운드들, 오디오 북, 등), 정지 혹은 동화상들(예를 들면, 사진, 컴퓨터로 생성된 디스플레이, 등), 텍스트(그래픽스가 있거나 없는)(예를 들면, 기사, 텍스트 파일, 등), 비디오 게임 또는 그외 소프트웨어, 및 이들 형태들 중 2 이상의 하이브리드 멀티-미디어 표현과 같은 임의의 적합한 형태를 취할 수 있는데, 그러나 이들로 제한되는 것은 아니다.
제어기(110)는 임의의 적합한 방식으로 구현될 수 있다. 예를 들면, 제어기(110)는 마이크로프로세서 혹은 프로세서, 및 예를 들면 (마이크로)프로세서, 로직 게이트들, 스위치들, 응용특정의 집적회로(ASIC), 프로그래머블 로직 제어기, 및 내장형 마이크로제어기에 의해 실행될 수 있는 컴퓨터-판독가능 프로그램 코드(예를 들면, 소프트웨어 또는 펌웨어)를 저장하는 컴퓨터-판독가능 매체의 형태를 취할 수 있다. 제어기들의 예들은 마이크로제어기들로서 ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, 및 Silicon Labs C8051F320를 포함하나, 그러나 이들로 제한되는 것은 아니다. 제어기에서 사용될 수 있는 다양한 성분들의 예들은 이하 논의되는 실시예들서 기술되며 연관된 도면들에 도시된다. 제어기(110)는 메모리(120) 제어 로직의 부분으로부터 구현될 수도 있다.
메모리(120)는 임의의 적합한 형태를 취할 수 있다. 일실시예에서, 메모리(120)는 고체상태(예를 들면, 플래시) 메모리 형태를 취하며, 1회 프로그램가능, 소수 회 프로그램가능, 혹은 다수회 프로그램가능일 수 있다. 그러나, 광학 메모리 및 자기 메모리와 같은 다른 형태들의 메모리가 사용될 수 있다. 도 1에 단일 성분들로서 도시되었을지라도, 제어기(110) 및/또는 메모리(120)는 몇개의 성분들로 구현될 수 있다. 또한, 메모리 디바이스(100)는 도면들을 간단하게 하기 위해 도 1에 도시되지 않은 다른 성분들을 내장할 수 있다. 일실시예에서, 메모리 디바이스(100)는 휴대형 착탈가능 메모리 카드(예를 들면, 플래시 저장 카드) 형태를 취하는데, 그러나 메모리 디바이스(100)는 고체상태 드라이브 및 USB(universal serial bus) 디바이스와 같은 다른 형태를 취할 수 있는데, 그러나 이들로 제한되는 것은 아니다.
도 1에 도시된 바와 같이, 메모리 디바이스(100)는 호스트 디바이스(50)와 통신한다. 여기에서 사용되는 바와 같이, "와 통신"이라는 어구는 여기에서 도시되거나 기술되어 있을 수도 있고 되어 있지 않을 수도 있는 하나 이상의 성분들을 통해 직접 혹은 간접적으로 통신함을 의미한다. 호스트(50)는 전용 콘텐트 플레이어, 모바일 전화, 개인용 컴퓨터(PC), 게임 디바이스, PDA(personal digital assistant), 키오스크, 및 TV 시스템과 같은 임의의 적합한 형태를 취할 수 있는데, 그러나 이들로 제한되는 것은 아니다. 바람직하게, 메모리 디바이스(100)는 호스트(50)에 착탈가능하게 연결되며, 따라서 사용자는 다양한 호스트들에 메모리 디바이스(100)를 사용할 수 있다.
도 2는 메모리 디바이스(100)를 사용하여 콘텐트에 호스트-식별 정보를 내장시키는 실시예의 방법의 흐름도(200)이다. 흐름도(200)에 나타낸 바와 같이, 메모리 디바이스(100) 내 제어기(110)는 호스트(50)로부터 크레덴셜을 수신하며(단계(210)) 크레덴셜을 사용하여 호스트(50)를 인증한다(단계(220)). (바람직하게, 상호 인증 및 키 교환이 수행되는데, 이 경우 메모리 디바이스(100)는 인증을 위해 자신의 크레덴셜을 호스트(50)에 제공할 것이다). 호스트(50)가 메모리 디바이스(100)에 제공하는 크레덴셜은 일련번호, 난수, 호스트(50)가 어디에서, 언제, 및/또는 어떻게 제조되었는가에 관한 고유한 정보 등과 같은, 호스트(50)를 식별하는 정보("호스트-식별 정보")를 내포한다. 크레덴셜은, 공개키를 호스트-식별 정보와 결합하며 공개키가 호스트(50)에 속함을 검증하는 인증 프로세스 동안 사용되는 공개키 기반구조("PKI") 증명서의 부분일 수 있다. 다음에, 메모리 디바이스(100)는 이의 메모리(120)에 저장된 콘텐트(130)를 재현하라는 호스트(50)로부터의 요청을 수신한다(단계(230)). (여기에서 논의되는 단계들은 임의의 적합한 순서로 수행될 수 있는 것에 유의한다. 예를 들면, 메모리 디바이스(100)는 호스트(50)로부터 크레덴셜을 수신하기 전에 혹은 후에 콘텐트(130)를 재현하라는 요청을 수신할 수 있고 혹은 크레덴셜과 함께 요청을 수신할 수 있다). 이어서, 메모리 디바이스(100)는 호스트 인증 동안 호스트(50)로부터 수신된 호스트-식별 정보를 콘텐트에 내장(즉, "주입")한다(단계(240)). 이어서, 메모리 디바이스(100)는 내장된 호스트-식별 정보를 가진 콘텐트를 호스트(50)에 보낸다(단계(250)). 일실시예에서, 메모리 디바이스(100)는 콘텐트의 재생 동안 실시간으로 "작동중에"(즉, 콘텐트가 호스트(50)에 출력되고 있을 때) 콘텐트에 호스트-식별 정보를 내장한다. 따라서, 단계들(240, 250)은 동시에 수행된다. 대안적 실시예에서, 메모리 디바이스(100)는 호스트-식별 정보를 콘텐트 내 모든 요망되는 위치들에 내장하는 것을 완료한 후에만 콘텐트를 호스트(50)에 보낸다(즉, 단계들(240, 250)은 순차적으로 수행된다).
이 실시예에 연관된 한 이점은 호스트(50)가 재현된 콘텐트를 불법복제하였다면, 호스트-식별 정보는 콘텐트 소유자가 콘텐트를 불법복제된 플레이어로서 호스트(50)를 식별할 수 있게 하고 호스트(50)의 증명서 및 키를 철회할 수 있고, 따라서 호스트(50)는 추가의 콘텐트를 더 이상 해독(및 아마도 불법복제)할 수 없게 될 것이며, 그럼으로써 호스트(50)의 보안 침해에 기인한 콘텐트 제공자의 잠재적 수익 손실을 억제한다는 것이다. 즉, 일단 오염된 콘텐트가 대량 유포되는데 사용될 수 있게 되었으면, 콘텐트 소유자는 오염된 콘텐트를 원래의 "골드(gold)" 카피와 비교함으로써 혹은 전용 소프트웨어 툴을 사용함으로써, 오염된 호스트의 식별 정보를 추출할 수 있다. 이어서, 오염된 호스트의 식별은 이 특정한 호스트를 철회 또는 블랙리스트에 올리기 위해 인증국(Certification Authority)에 보내질 수 있다. 또 다른 이점은, 이들 실시예들에서 호스트-식별 정보를 콘텐트에 내장하도록 한 것은 메모리 디바이스(100)이고 호스트(50)가 아니기 때문에, 이 콘텐트 보호 시스템은 자신을 감시하기 위해 오염된 호스트를 의존하는 콘텐트 보호 시스템들에서 발생되는 "고양이에게 생선을 맡기는" 문제를 피하게 한다는 것이다.
예시적 내장 기술들
위에서 논의된 바와 같이, 이들 실시예들에서, 메모리 디바이스(100)은 재생을 위해 호스트(50)에 제공되는 콘텐트에 호스트-식별 정보를 내장한다. 도 3a 내지 도 3e는 5가지 내장 기술들로서, (1) 일련의 GOP에서 화상 그룹("GOP")의 마지막 프레임에 호스트-식별 정보를 내장하는 기술, (2) 미참조 프레임들에 호스트-식별 정보를 내장하는 기술, (3) 접근불가 GOP들에 호스트-식별 정보를 내장하는 기술, (4) "사용자 데이터" 패킷들에 호스트-식별 정보를 내장하는 기술, 및 (5) 시스템 층에서 미참조 스트림들에 호스트-식별 정보를 내장하는 기술을 예시한다. 이들 내장 기술들을 다음 문단들에서 기술할 것이다. 이들 기술들은 단지 예들이며 다른 기술들이 사용될 수 있음에 유의한다. 따라서, 특정한 유형의 내장 기술은 여기에서 분명하게 인용되지 않는 한 청구항들인 것으로 읽혀져서는 안 된다. 또한, 이하 상세히 기술되는 바와 같이, 재생 세션 동안에 혹은 동적 콘텐트 보호 시스템을 제공하는 재생 세션들에 걸쳐, 하나보다 하나 이상의 내장기술이 사용될 수 있다. 또한, 주어진 시간에 단일 내장 기술을 사용하는 대신, 내장 기술들의 조합이 사용될 수 있다.
이들 내장 기술들로 가기 전에, 메모리 디바이스(100)는 임의의 적합한 기술을 사용하여 호스트-식별 정보를 내장할 콘텐트 내 위치(들)를 결정할 수 있는 것에 유의한다. 예를 들면, 메모리 디바이스(100)는 메모리 디바이스(100)에 저장된 비디오 파일 분석기 코드(또는 하드웨어 로직)를 사용하여 메모리 디바이스(100) 상에 파일 시스템을 인식/파싱(parsing)함으로써 내장되는 위치(들)을 결정할 수 있다. 이렇게 하여, 메모리 디바이스(100)는 호스트-식별 정보를 내장할 콘텐트 내 위치를 결정하기 위해 콘텐트를 분석할 것이다. 이러한 메모리 디바이스(100)를 여기에서는 "파일 시스템 어웨어(aware)"이라 지칭할 것이다. 대안적으로, 메모리 디바이스(100)는 이 특정한 콘텐트를 위해 생성되고 특정한 비디오 파일 객체들에 어드레스들을 상관시키는 룩업 테이블을 사용하여 어드레스를 확인함으로써 내장 위치(들)을 결정할 수 있다. 이러한 메모리 디바이스(100)를 여기에서는 "파일 시스템 애그노스틱(agnostic)"이라 지칭할 것이다. 룩업 테이블은 콘텐트 소유자에 의해 생성되어 새로이 제조된 메모리 디바이스 상에(혹은 새로이 포맷된 기사용된 메모리 디바이스 상에) 콘텐트와 함께 저장될 수 있다. 대안적으로, 이하 상세히 논의되는 바와 같이, 콘텐트 로딩 시스템은 메모리 디바이스의 파일 시스템을 분석함으로써(예를 들면, 콘텐트 소유자에 의해 제공되는 룩업 테이블을 업데이트하기 위해 현존 단편화 및 FAT 클러스터 할당들을 분석함으로써) "이미 사용된" 메모리 디바이스를 위한 룩업 테이블을 생성할 수 있다. 어째든, 룩업 테이블이 사용되는 상황들에서, 콘텐트는 조각모음기와 같은 애플리케이션들이 데이터를 콘텐트 내 주변에 이동시키는 것 -이것은 룩업 테이블을 무효화킬 것이다- 을 방지하기 위해 기입-방지되게 메모리 디바이스(100)에 저장되는 것이 바람직하다. 또한, 다음 논의는 1회 기입 메모리 디바이스들 및 재기입가능 메모리 디바이스들이 데이터를 취급하는 방법에 있어 약간 다를 수 있을지라도 1회 기입 메모리 디바이스들 및 재기입가능 메모리 디바이스는 메모리 디바이스의 펌웨어에 의해 기능적으로 동등한 것으로서 취급될 수 있는 것으로 가정한다.
도면들로 돌아가서, 도 3a는 메모리 디바이스(100)가 일련의 GOP들에서 화상 그룹("GOP")(300)의 마지막 프레임에 데이터를 내장하는 내장 기술을 도시한 것이다. GOP는 MPEG-엔코딩 디지털 비디오 스트림에서 디지털 비디오의 일련의 프레임들이며, 프레임을 렌더링함으로써 화상이 디스플레이되는 것으로 각 프레임은 비디오 렌더링 디바이스(예를 들면, 텔레비전)가 동시에 혹은 거의 동시에 디스플레이하는 일련의 휘도값들이다. GOP는 한 프레임 내 모든 휘도값을 기술하는데 충분한 데이터 세트를 내포하는 프레임간(혹은 "I-프레임")으로 시작한다. 또한, GOP는 N개의 이전의 프레임들의 데이터 세트들과 결합되었을 때 프레임 내 모든 휘도값을 기술하기에 충분한 데이터 세트를 생성하는 데이터 세트를 내포하는 프로그레시브 프레임(또는 "P-프레임")을 내포한다. GOP는 N개의 이전의 프레임들 및 N개의 후속되는 프레임들의 데이터 세트들과 결합되었을 때 프레임 내 모든 휘도값을 기술하기에 충분한 데이터 세트를 생성하는 데이터 세트를 내포하는 양방향 프레임(또는 "B-프레임")을 또한 내포한다.
메모리 디바이스(100)는 임의의 적합한 방식으로 GOP(300)의 마지막 프레임을 식별할 수 있다. 예를 들면, 메모리 디바이스(100)가 파일 시스템 어웨어라면, 메모리 디바이스(100) 내 내장된 펌웨어는 메모리 디바이스(100)에 저장된 비디오 파일 분석기 코드를 사용하여 메모리 디바이스(100) 상에 파일 시스템을 인식/파싱 함으로써 GOP(300) 내 마지막 프레임의 위치를 확인할 수 있다. 이 상황에서, 메모리 디바이스(100)는 파일 시스템으로부터 정보를 파일에 속하는 논리 블록어드레스들(LBA)을 식별하게 파싱함으로써 콘텐트 파일의 시작부분과 파일 내 제 1 GOP를 식별할 수 있다. 메모리 디바이스(100)는 파일을 이의 대응하는 LBA들에 연결하는 파일 시스템 포인터들을 따라감으로써 파일이 비-연속적 LBA들로 분할될 때라도 파일 내 일련의 GOP들뿐만 아니라 각 GOP를 식별할 수 있다. 한편, 메모리 디바이스(100)가 파일 시스템 애그노스틱이라면, 메모리 디바이스(100)는 룩업 테이블을 사용함으로써 GOP의 마지막 프레임을 판정할 수 있다. 이 상황에서, 메모리 디바이스(100)는 GOP의 시작부분 및 GOP의 각각의 구성원들을 식별하는 추가의 능력을 갖추어 섹터들로부터의 원(raw) 데이터를 파싱하게 설계될 수 있다. GOP 경계들은 메모리 디바이스(100) 상에 단조로 증가하는 섹터들 내 내포된 데이터를 이들의 LBA에 기초하여 스캐닝함으로써 확인될 수 있다. 원(raw) 메모리 디바이스 데이터 내 한 범위의 단조 증가하는 LBA들 내에서 전체가 확인될 수 없는 어떠한 GOP이든 마킹을 위해 부적합한 것으로서 우회될 수 있다.
메모리 디바이스(100)에 의해 내장된 호스트-식별 정보는 한 GOP(300) 내에 전체적으로 내포될 수 있고 혹은 GOP당 한 데이터 비트만큼 낮을 수 있는 데이터 레이트로 몇몇의 GOP들에 걸쳐 분산될 수 있음에 유의한다. 내장된 데이터의 최대 불명료화는 이러한 데이터를 지수-골롬 부호 신택스 요소들(exponential-Golomb coded syntax elements)로 엔코딩함으로써 달성될 수 있다. 또한, 확장 용장성에 의해 탬퍼링 방지를 증가시키기 위해서 호스트-식별 정보를 엔코딩함에 있어, 복수층들의 확장 바이너리 골레이 코드 또는 동등한 것과 같은 오류정정 코드(ECC)가 채용될 수 있다.
도면들로 돌아가면, 도 3b는 화상 그룹(310)에서 미참조 프레임들에 호스트-식별 정보를 내장하는 것을 도시한 것이다. 미참조 프레임은 내비게이션 경로(즉, 비디오 렌더링 프로세스의 시퀀싱을 제어하는 데이터 세트 또는 데이터 스트림에 의해 명시된 경로)가 특정하게 렌더링으로부터 제외되는 비디오 스트림의 일체로 된 부분인 프레임 데이터 세트이다. 대안적으로, 미참조 프레임은 모든 가용한 내비게이션 경로들을 통해 접근불가인 프레임 데이터 세트일 수 있다. 참조 프레임은 렌더링되는 활성 프레임인 반면, 미참조 프레임은 내비게이션 제약들에 기인한 비활성 프레임이며, 이에 따라 호스트-식별 정보를 저장하기 위해 사용되는데 이용될 수 있다. 일실시예에서, 미참조 프레임들은 콘텐트를 메모리 디바이스(100)에 로딩하기 전에 비디오 엔코더에 의해 호스트-식별 정보에 대한 플레이스홀더(placeholder)로서 특정하게 생성된다. 메모리 디바이스(100)의 동작들(메모리 디바이스(100)가 파일 시스템 애그노스틱이든 아니면 파일 시스템 어웨어이든 간에)은 위에 기술된 것들과 유사하다. 또한, ECC는 앞에서 기술된 기술들에 관련하여 위에 기술된 바와 같이 채용될 수 있다.
도 3c는 일련의 GOP들(320)에서 미참조(또는 "접근불가") 화상 그룹(GOP들)에 호스트-식별 정보를 내장하는 것을 도시한 것이다. 미참조 GOP는 둘 다 내비게이션에 따라 부과되는 제약들에 기인하여 재현될 수 없다는 점에서 미참조 프레임과 유사하다. 즉, 미참조 GOP는 내비게이션 스트림이 특정하게 렌더링으로부터 제외되는 비디오 스트림의 일체로 된 부분인 단일 GOP에 속하는 한 세트의 프레임들이다. 대안적으로, 미참조 GOP는 모든 가용한 내비게이션 경로들을 통해 접근불가는 GOP일 수 있다. 따라서, 이 내장 기술은 호스트-식별 정보가 미참조 프레임에 내장되는 기술과 유사하다. 그러나, 이 기술은 미참조 프레임에 비해, GOP의 시작부분을 확인하는 것이 비교적 간단하기 때문에, 구현하기 위해 몇개의 CPU 사이클들을 요구할 수 있으므로 미참조-프레임 기술보다 더 빠를 수 있다. 또한, ECC는 앞에서 기술된 기술에 관련하여 위에 기술된 바와 같이 채용될 수 있다.
도 3d는 호스트-식별 정보가 비디오 스트림(330)에서 사용자 데이터 필드들(패킷들)에 내장되는 내장 기술을 도시한 것이다. "사용자 데이터"라는 용어는 레퍼런스 디코더가 특정하게 처리에서 제외하여 결국 어찌되었든 디스플레하는 것에서 제외되는 비디오 스트림(330)의 일체로된 부분인 데이터 세트를 기술하는 것이다. 전형적으로, 사용자 데이터 필드들은 디코더의 레퍼런스 구현에서 추후에 향상들을 위한 플레이스홀더들로서 정의된다. 따라서, 사용자 데이터 필드들은 콘텐트를 메모리 디바이스(100)에 로딩하기 전에 비디오 엔코더에 의해 호스트-식별 정보에 대한 플레이스홀더로서 특정하게 생성될 수 있다. 메모리 디바이스(100)의 동작들(메모리 디바이스(100)가 파일 시스템 애그노스틱이든 파일 시스템 어웨어이든 간에)은 위에 기술된 것들과 유사하다. 또한, ECC는 앞에서 기술된 기술들에 관련하여 위에 기술된 바와 같이 채용될 수 있다.
도 3e은 시스템 층(340)에서 미참조 스트림들에 호스트-식별 정보가 내장되는 내장 기술을 도시한 것이다. 시스템 층(340)은 데이터 스트림의 시간 또는 공간 멀티플렉스 및/또는 디지털 비디오 스트림 내에 서로 다른 GOP 시퀀스들의 패킷들로 구성되는 데이터 세트를 기술한다. 데이터 스트림은 어떤 유형(예를 들면, 오디오 데이터, 비디오 데이터, 내비게이션 데이터, 또는 보조 데이터)의 일군의 동질 데이터 객체들을 내포하는 데이터 세트를 기술한다. 이러한 스트림들은 서로 관계될 수도 있고 그렇지 않을 수도 있다. 패킷은 비디오 엔코더에 의해 생성되는 데이터 단편으로 구성되는 부분적 데이터 세트(부분적 데이터 세트는 자족적인(self-contained) 데이터 객체일 수도 있고 아닐 수도 있다)에 프리픽스(prefix) 및/또는 서픽스(suffix)로서 삽입되는 명시적 데이터 패턴들(비트-패턴들)에 의해 식별가능해질 수 있는 데이터 세트를 기술한다. 위에 기술된 기술들에서와 같이, 미참조 스트림은 콘텐트를 메모리 디바이스(100)에 로딩하기 전에 비디오 엔코더에 의해 호스트-식별 정보에 대한 플레이스홀더로서 특정하게 발생될 수 있다. 또한, 메모리 디바이스(100)의 동작들(메모리 디바이스(100)가 파일 시스템 애그노스틱이든 파일 시스템 어웨어이든 간에)은 위에 기술된 것들과 유사하며, ECC는 앞에서 기술된 기술들에 관련하여 위에 기술된 바와 같이 채용될 수 있다.
위에 기술된 내장 기술들은 단지 예이며 다른 내장 기술들이 사용될 수 있음에 다시 유의한다. 또한, 메모리 디바이스(100)가 단일 내장 기술을 수행하게 구성될 수 있는 반면, 메모리 디바이스(100)는 복수의 내장 기술들을 수행하게 구성될 수 있다. 구체적으로, 현재, 콘텐트가 재생 세션 동안 재현되고 있을 때 혹은 콘텐트의 각 재생 세션마다 서로 다른 내장 기술들을 구현함으로써 호스트-식별 정보를 콘텐트에 동적으로 내장하게 메모리 디바이스(100)가 구성되는 것이 바람직하다. 내장 기술들을 변경하는 것은, 내장된 호스트-식별 정보 위치를 찾아내기 위해(이어서 오염시키거나 제거한다) 오염된 콘텐트를 복수의 호스트들로부터 비교하는 공격자들에 대한 효과적인 대책일 수 있다. 즉, 콘텐트에 대한 무단 액세스을 얻으려고 시도하는 공격자가 확실하게 "워터마크들"(즉, 내장된 호스트-식별 정보)를 식별할 수 있었다면, 공격자는 이들을 오염시키거나 또는 제거할 수 있었을 것이다. 예를 들면, 공격자가 하나 이상의 플랫폼을 오염되게 하였다면, 공격자는 비트-스트림들이 동일하지 않다는 것을 즉시 알아낼 수 있었을 것이며, 이것은 어떤 유형의 공격자-추적 정보가 비트 스트림 내에 있을 수도 있었을 것이라는 사실을 공격자에게 환기시킬 것이다. 그러면 공격자는 다른 어떠한 데이터이든 이를 수정하거나 소거할 수 있고, 그럼으로써 불법복제된 콘텐트로부터 호스트-식별 정보를 제거할 수 있다. 공격자는 불명료화의 량이 불충분하거나 없다면 잠재적으로 호스트-식별 정보를 단일 비디오 스트림으로부터 소거할 수도 있었을 것이다. 그러나, 재생 세션을 통해 및/또는 재생 세션들에 걸쳐 사용되는 내장 기술을 적응형으로 변경함으로써, 호스트-식별 정보가 단순 비교로부터 쉽게 확인될 수 없는 충분한 다양성이 불법복제된 콘텐트에 도입된다.
호스트-식별 정보를 내장하기 위해 사용되는 방법 또는 방법들의 조합을 가별시키기 위해 임의의 적합한 적응형 알고리즘이 사용될 수 있다. 내장 방법 및 위치들을 결정하기 위해 사용될 수 있는 요인들의 예들은, 고유 증명 호스트 ID(즉, 호스트-식별 정보 자체), 메모리 디바이스 증명서, 및 메모리 디바이스(100)에 이력 로그에 저장된 이전의 재생 및 주입 세션 정보를 포함하는데, 그러나 이들로 제한되는 것은 아니다. 또한, 임의의 적합한 이벤트는 내장 방법 또는 방법들의 조합의 변경을 개시할 수 있다. 예를 들면, 메모리 디바이스(100)는 어떤 재생 기간(예를 들면, 10분 후, 100 MB 재현된 후, 혹은 비디오 챕터에 도달한 후) 후에 내장 알고리즘을 수정하기 위해 호스트(50)와의 세션을 개시할 수 있다.
메모리 디바이스
이들 실시예들의 메모리 디바이스는 임의의 적합한 방식으로 구현될 수 있다. 다음 문단들 및 참조된 도면들은 한 예시적 구현을 기술한다. 이 구현은 단지 예이며 여기에 도시되고 기술된 상세는 이에 명확하게 인용되지 않는 한 청구항들인 것으로서 읽혀져서는 안 됨을 알 것이다.
도면들로 돌아가서, 도 4는 실시예의 메모리 디바이스(400) 및 호스트(450)의 블록도이다. 도 4에 도시된 바와 같이, 메모리 디바이스(400)는 제어기(410) 및 메모리(420)를 포함한다. 제어기(410)는 메모리(420)와 인터페이스하기 위한 메모리 인터페이스(411) 및 호스트(450)와 인터페이스하기 위한 호스트 인터페이스(412)를 포함한다. 또한, 제어기(410)는 중앙처리유닛(CPU)(413), 암호화 및/또는 해독 동작들을 제공하게 동작하는 암호화-엔진(414), 판독 액세스 메모리(RAM)(415), 메모리 디바이스(400)의 기본 동작들을 위한 펌웨어(로직)을 저장하는 판독전용 메모리(ROM)(416), 및 암호화/해독 동작들을 위해 사용되는 디바이스-특정의 키를 저장하는 비휘발성 메모리(NVM)(417)를 포함한다. 메모리 디바이스-특정의 키가 메모리 디바이스 내 다른 메모리 영역들에 저장될 수 있음에 유의한다. 도 4에 도시된 성분들은 임의의 적합한 방식으로 구현될 수 있다. 그러나, 현재는 비디오 파일 포맷을 파싱하는 인텔리전스를 구비한 파일 시스템 어웨어이거나, 이하 기술되는 바와 같이, 워터마크들을 주입하기 위해 어드레스 룩업 테이블을 사용할 수 있는 알고리즘을 실행하기에 충분한 CPU(413) 처리능력을 메모리 디바이스 제어기(410)가 갖추는 것이 바람직하다.
이 실시예에서, 메모리(420)는 호스트(450) 상에 파일 시스템에 의해 관리되는 공개 파티션(425) 및 제어기(410)에 의해 내부적으로 관리되는 히든 보호된 시스템 영역(435)을 포함한다. 히든 보호된 시스템 영역(435)은 콘텐트 암호화 키들(CEKs)(440) 및 펌웨어(FW) 코드(442)(예를 들면, 크레덴셜 주입 코드(444) 및 비디오 파일 분석기 또는 룩업 테이블 코드(446))를 저장한다. 공개 파티션(425) 및 히든 보호된 시스템 영역(435)은 동일 메모리 유닛의 부분일 수 있거나, 서로 다른 메모리 유닛들일 수 있다. 히든 보호된 시스템 영역(435)은, 이것이 제어기(410)에 의해 관리되기 때문에(호스트 제어기(460)에 의해서가 아니라) "히든"이며, 이 영역(435)에 저장된 객체들이 제어기(410)의 비휘발성 메모리(417)에 저장된 고유 키로 암호화되기 때문에 "보호" 된다(메모리 디바이스 하드웨어 고유 키는 제어기(410)의 비휘발성 메모리(417) 혹은 메모리 디바이스(400) 내에 다른 영역들에 저장될 수 있다). 따라서, 이 영역(435)에 저장된 객체들에 액세스하기 위해서, 제어기(410)는 암호화된 객체들을 해독하기 위해 비휘발성 메모리(417)에 저장된 암호화-엔진(414) 및 키를 사용할 것이다. 바람직하게, 메모리 디바이스(300)는 샌디스크 사에 의해 TrustedFlash(등록상표) 플랫폼 상에 구축된 제품군으로부터 보안 제품의 형태를 취한다.
메모리의 공개 파티션(425)은 보호된 콘텐트 파일들(430A, 430B)을 저장한다. 이 실시예에서, 동일 콘텐트 타이틀의 서로 다른 버전들(예를 들면, 해상도)일 수 있는 콘텐트 파일들(430A, 430B)은 콘텐트 제공자에 의해 제공되며, 콘텐트 파일들(430A, 430B)을 공개 파티션(425)에 로드하는 콘텐트 복제 및 처리 시설에 배급된다. (콘텐트(430A, 430B)가 메모리 디바이스(420)에 사전에 로딩되는 대신에, 콘텐트 파일들(430A, 430B)는 키오스크 또는 인터넷에 연결된 PC와 같은 콘텐트 로딩 시스템을 사용하여 메모리 디바이스(420)에 사이드-로드 또는 다운로드될 수 있다). 메모리(420)의 공개 파티션(425)이 호스트(450) 상에 파일 시스템에 의해 관리되나, 공개 파티션(425)(이를테면 콘텐트 파일들(430A, 430B))에 저장된 객체들도 메모리 디바이스(400)에 의해 보호될 수 있다. 이 실시예에서, 두 저장된 콘텐트 파일들(430A, 430B)은 히든 보호된 시스템 영역(435)에 저장된 각각의 콘텐트 암호화 키들(440)에 의해 보호되며, 이들 키들(440)은 이들이 제어기(410)의 비휘발성 메모리(417)에 저장된 메모리-디바이스 고유 키에 의해 보호된다. 따라서, 보호된 콘텐트 파일들(예를 들면, 콘텐트 파일(430A)) 중 하나를 보호를 제거하기 위해서, 암호화-엔진(414)은 적합한 콘텐트 암호화 키(440)를 해독하기 위해 제어기(410)의 비휘발성 메모리(417)에 저장된 메모리-디바이스 고유 키를 사용하고 이어서 해독된 콘텐트 암호화 키(440)를 사용하여 보호된 콘텐트(430A)를 해독할 것이다.
이제 호스트(450)로 가면, 호스트(450)는 메모리 디바이스(400)와 인터페이스하기 위한 메모리 디바이스 인터페이스(461)를 구비하는 제어기(460)를 포함한다. 또한, 제어기(460)는 중앙처리유닛(CPU)(463), 암호화 및/또는 해독 동작들을 제공하게 동작하는 암호화-엔진(464), 판독 액세스 메모리(RAM)(465), 판독 전용 메모리(ROM)(466), 및 디스플레이 출력 회로(471)를 포함한다. 박스(460) 내 각각의 성분은 전체 호스트 시스템 내 개별적 칩들로서 구현될 수 있음에 유의한다. 또한, 호스트(450)는 보호된 대량 저장장치(472)를 포함한다.
메모리 디바이스(400) 및 호스트(450)는 메모리 디바이스 인터페이스(461) 및 호스트 인터페이스(412)를 통해 서로 통신한다. 데이터의 보안 전송을 수반하는 동작들을 위해서, 메모리 디바이스(400) 및 호스트(450) 내 암호화-엔진들(414, 464)은 서로를 상호 인증하여 키 교환을 제공하기 위해 사용되는 것이 바람직하다. 상호 인증 프로세스는 고유 증명 ID들(여기에서 설명되는 바와 같이, 호스트의 고유 증명 ID는 콘텐트 내 내장되는 호스트-식별 정보이다)을 교환할 것을 호스트(450) 및 메모리 디바이스(400)에 요청한다. 상호 인증이 완료된 후에, 메모리 디바이스(450)와 호스트(400) 간에 통신을 위한 보안 채널을 설정하기 위해 세션 키가 사용되는 것이 바람직하다. 대안적으로, 메모리 디바이스(400) 및 호스트(450)는 메모리 디바이스(400)가 콘텐트를 주입하기 위한 크레덴셜을 호스트(450)가 제공하게 하기 위해서 브로트캐스트-암호화-유형 보안을 지원할 수 있다.
위에 언급된 바와 같이, 이 실시예에서 메모리 디바이스(400)는 호스트-식별 정보를 콘텐트에 내장하기 위해 사용될 수 있다. 도 5 및 도 6은 메모리 디바이스(400)가 파일 시스템 어웨어(도 5) 및 파일 시스템 애그노스틱(도 6)일 때 이 방법의 단계들을 도시한 흐름도들(500, 600)이다. 먼저 도 5로 가면, 호스트(450)가 명령을 메모리 디바이스(400)에 보낼 때, 보호된(암호화된) 콘텐트(430A)가 암호화 엔진(414)(단계(505))에 보내진다. 주입 코드(444)는 암호화 제어 명령들을 암호화-엔진(414)에 보내며(단계 510), 이에 응하여 암호화-엔진(414)은 암호화-엔진(414)이 보호된 콘텐트(430A)를 해독하기 위해 사용하는 콘텐트 암호화 키(440)를 해독하기 위해 비휘발성 메모리(417) 내 메모리-디바이스 고유 키를 사용한다. 이어서, 해독된 "플레인(plain)" 콘텐트 파일(430A)은 제어기의 RAM(415)(단계 515)에 보내진다. 주입 코드(444)는 콘텐트 포맷 및 구조를 분석하고, 호스트 크레덴셜 주입 알고리즘(즉, 호스트-식별 정보 내장 기술)을 적용한다(단계 525). 구체적으로, 메모리 디바이스(400)는 파일 시스템 어웨어이기 때문에, 메모리 디바이스(400) 내 비디오 파일 분석기(446)는 알고리즘에 따라 호스트-식별 정보를 내장하기 위한 위치(들)을 결정하기 위해서 콘텐트 내에 데이터의 인스턴스들을 분석하고 식별한다. 이어서, 내장된 호스트 크레덴셜을 가진 콘텐트은 암호화-엔진(414)에 보내진다(단계 530). 주입 코드(444)는 내장된 호스트 크레덴를 가진 콘텐트를 암호화하기 위해 암호화 제어 명령을 암호화-엔진(414)에 보낸다(단계 535). 내장된 호스트 크레덴셜을 가진 암호화된 콘텐트는 이어서 호스트(450)에 전송을 위해 호스트 인터페이스(412)에 보내진다(단계 540). 호스트(450)는 워터마크 어웨어 없이 비디오 콘텐트를 수신하고, 처리하고, 디코딩한다.
도 5에서, 메모리 디바이스(100)는 파일 시스템 어웨어 였으며 적합한 호스트 크레덴셜 주입 알고리즘을 적용하기 위해 콘텐트 포맷 및 구조를 분석할 수 있었다. 그러나, 인텔리전트 파일 시스템 및 비디오 파일 포맷 파서(parser)가 주입 위치를 결정할 수 있게 하는 펌웨어 모듈(또는 하드웨어 로직)을 모든 메모리 디바이스들이 구비한 것은 아니다. 이들 상황들에서, 주입의 위치를 결정하기 위해 특정한 콘텐트에 특정한 인덱스 테이블이 사용될 수 있다. 도 6은 이러한 "파일 시스템 애그노스틱" 메모리 디바이스의 사용의 흐름도(600)이다.
도 6에 도시된 바와 같이, 호스트(450)가 명령을 메모리 디바이스(400)에 보낼 때, 보호된(암호화된) 콘텐트(430A) 및 어드레스 룩업 테이블(446)이 암호화-엔진(414)에 제공된다(단계 605). 주입 코드(444)는 암호화 엔진 명령들을 암호화-엔진(414)에 보내는데(단계 610), 이에 응하여 암호화-엔진(414)은 암호화-엔진(414)이 보호된 콘텐트(430A)를 해독하기 위해 사용하는 콘텐트 암호화 키(440)를 해독하기 위해 비휘발성 메모리(417) 내 메모리-디바이스 고유 키를 사용한다. 이어서, 해독된 "플레인" 콘텐트 파일(430A) 및 룩업 테이블이 제어기의 RAM(415)에 보내진다(단계 615). 이어서, 주입 코드(444)는 룩업 테이블 어드레스 인덱스들(446)를 읽고(단계 620) 룩업 테이블을 통해 호스트 크레덴셜 주입 알고리즘을 적용한다(단계 625). 즉, 주입 코드(444)는 알고리즘에 따라 호스트-식별 정보를 내장하기 위해 콘텐트 내에 데이터의 인스턴스들을 식별하기 위해 어드레스 인덱스들을 가진 룩업 테이블(446)을 사용한다. 이어서, 내장된 호스트 크레덴셜을 가진 콘텐트는 암호화-엔진(414)에 보내지며(단계 630), 주입 코드(414)로부터의 암호화 제어 명령에 응하여, 내장된 호스트 크레덴셜을 가진 콘텐트를 암호화하고 이를 호스트(450)에 전송을 위해 호스트 인터페이스(412)에 제공한다(단계 640).
콘텐트 로딩 실시예들
콘텐트는 하나 이상의 호스트-식별 정보 내장 기술들(위에 논의된 내장 기술들과 같은 기술들, 그러나 이들로 제한되는 것은 아님)을 지원하게 저작될 수 있다. 예를 들면, 콘텐트 저작 툴은 콘텐트 파일 생성 동안 콘텐트 파일 전체에 걸쳐 미참조 프레임들, 접근불가 GOP들, 사용자 데이터 패킷들, 및 미참조 시스템 스트림들을 무작위로 주입할 수 있다. 파일 시스템 어웨어(예를 들면, 파일 시스템 및 파일 헤더 파싱 능력들이 있는) 인 메모리 디바이스에 있어서는 어떠한 추가의 정보도 저작 툴로부터 요구되지 않는다. 그러나, 파일 시스템 어웨어를 할 수 없는 메모리 디바이스에 대해서, 저작 툴은 콘텐트와 함께 워터마크 주입을 위해 각각의 합성 데이터 유형의 논리 어드레스 인덱스 테이블을 제공할 수 있다. 위에서 논의된 바와 같이, 인덱스 테이블은 LBA 및 바이트 어드레스들에 기초하여 호스트-식별 정보를 내장 하기 위해 메모리 디바이스의 펌웨어에 의해 사용될 수 있다. 또한 위에 논의된 바와 같이, 룩업 테이블의 온전성을 유지하기 위해서, 콘텐트는 조각모음기와 같은 애플리케이션들이 룩업 테이블을 무효화시키 되는 콘텐트 내 주변에 데이터를 이동시키는 것을 방지하기 위해 기입-방지될 수 있다.
콘텐트 및 룩업 테이블이 새로이 제조되거나 새로이 포맷된 메모리 디바이스에 사전에 로딩된다면, 메모리 디바이스는 단편화 및 파일 할당 테이블 클러스터 배당들에 무관하므로, 콘텐트 제공자에 의해 생성되는 룩업 테이블은 정확하다. 그러나, 룩업 테이블은 새로운 메모리 디바이스에 대해 생성되기 때문에, 메모리 디바이스가 새것이 아니라 콘텐트를 저장(또는 삭제)하기 위해 이미 사용된 것이었다면 문제가 발생할 수 있다. 이 상황에서, 메모리 디바이스 내 현존한 파일 시스템 구조들은 룩업 테이블 내 LBA 엔트리들을 지난 엔트리들이 되게 할 것이다. 이것은 예를 들면, 사용자가 콘텐트가 사전에 로딩되어 있는 메모리 디바이스를 구입하고 이어서 메모리 디바이스 내 남아 있는 빈 공간에 추가의 콘텐트를 기입하고 소거할 때 일어날 수 있다. 사용자가 나중에 콘텐트 로딩 시스템(예를 들면, 키오스크 또는 인터넷에 연결된 PC)으로부터 새로운 콘텐트 및 룩업 테이블을 사이드-로드 또는 다운로드한다면, 룩업 테이블은 메모리 디바이스 내 현존의 파일 시스템 구조들과 일관성이 없게 될 것이다. 이 상황에서, 콘텐트 로딩 시스템은 단편화 및 파일 할당 테이블 클러스터 배당을 위해 현존의 파일 시스템 구조들에 대해 메모리 디바이스를 분석하고 이어서 이에 따라 룩업 테이블을 업데이트하는 것이 바람직하다. 즉, 콘텐트 로딩 시스템은 콘텐트를 로딩하고, 인덱스 파일(있다면)을 로딩하고, 아마도 메모리 디바이스의 현존의 파일 시스템 및 클러스터 할당을 매칭하기 위해 인덱스 파일을 조작하게 할 것이다.
도 7은 이러한 방법의 흐름도(700)를 제공한다. 도 7에서, "호스트"는 도 4에서 호스트(450)를 지칭한다. 메모리 디바이스(400)로부터 콘텐트를 재현되게 하는데 사용되는 대신에 호스트(450)는 여기에서는 키오스크, 인터넷에 연결된 PC, 공중을 통해 다운로드하는 모바일 핸드셋, 혹은 인터넷 또는 브로트캐스트 네트워크로부터 콘텐트를 얻는 셋박스/TV/게임 콘솔과 같은, 콘텐트 로딩 시스템/기계로서 사용된다. 도 7에 도시된 바와 같이, 메모리 디바이스 룩업 테이블 및 파일 시스템을 읽으라는 호스트(450)로부터의 요청에 응하여(단계 702), 메모리 디바이스(400)는 호스트의 RAM(465)에 FAT 테이블들 및 단편화 정보와 같은 파일 시스템 정보를 제공한다(단계 703). 이어서, 메모리 디바이스 제어기(410)는 어드레스 인덱스들을 가진 암호화된 룩업 테이블을 호스트 암호화 엔진(464)에 제공하며(단계 705), 이 엔진은 호스트(450)로부터 암호화 제어에 기초하여 룩업 테이블을 해독하고(단계 710) 이를 호스트의 RAM(465)에 제공한다(단계 715). 이어서, 호스트(450)는 룩업 테이블 어드레스 인덱스들 및 파일 시스템 정보를 읽고(단계 720) 새로운 룩업 테이블을 가진 새로운 콘텐트를 호스트의 RAM(465)에 제공한다(단계 725). 이어서, 호스트(450)는 업데이트된 룩업 테이블과 함께 새로운 콘텐트를 이의 암호화-엔진(464) 에 보내며(단계 730), 이것은 이들 아이템들을 암호화 제어 명령에 기초하여 암호화한다(단계 735). 이어서, 호스트(450)는 업데이트된 룩업 테이블을 가진 암호화된 콘텐트를 메모리 디바이스(400)에 로딩하기 위해 메모리 디바이스 인터페이스(461)에 제공한다(단계 740).
결론
전술한 상세한 설명은 발명의 정의로서가 아니라 발명이 취할 수 있는 선택된 형태들의 예시로서 이해되게 한 것이다. 청구된 발명의 범위를 정의하고자는 것은 모든 등가물들을 포함해서 다음의 청구항들뿐이다. 마지막으로, 여기에 기술된 바람직한 실시예들의 어느 실시예의 임의의 면은 단독으로 혹은 서로 조합하여 사용될 수 있는 것에 유의한다.

Claims (30)

  1. 메모리 디바이스에 있어서,
    콘텐트를 저장하게 동작하는 메모리; 및
    상기 메모리와 통신하는 제어기를 포함하며,
    상기 제어기는 상기 메모리 디바이스와 통신하는 호스트로부터 호스트-식별 정보를 포함하는 크레덴셜을 수신하고,
    상기 크레덴셜을 사용하여 상기 호스트를 인증하고,
    상기 메모리에 저장된 콘텐트를 재현하라는 요청을 상기 호스트로부터 수신하고,
    상기 호스트-식별 정보를 상기 콘텐트에 내장하고
    상기 내장된 호스트-식별 정보와 함께 상기 콘텐트를 상기 호스트에 보내게 구성되는, 메모리 디바이스.
  2. 제1항에 있어서, 상기 제어기는 화상 그룹(GOP)의 마지막 프레임에 상기 호스트-식별 정보를 내장하게 구성된, 메모리 디바이스.
  3. 제1항에 있어서, 상기 제어기는 상기 호스트-식별 정보를 미참조 프레임에 내장하게 구성된, 메모리 디바이스.
  4. 제1항에 있어서, 상기 제어기는 상기 호스트-식별 정보를 접근불가 화상 그룹(GOP)에 내장하게 구성된, 메모리 디바이스.
  5. 제1항에 있어서, 상기 제어기는 상기 호스트-식별 정보를 사용자 데이터 필드에 내장하게 구성된, 메모리 디바이스.
  6. 제1항에 있어서, 상기 제어기는 상기 호스트-식별 정보를 시스템 층 내 미참조 스트림에 내장하게 구성된, 메모리 디바이스.
  7. 제1항에 있어서, 상기 제어기는 상기 콘텐트의 재생 동안 실시간으로 상기 호스트-식별 정보를 상기 콘텐트에 내장하게 구성된, 메모리 디바이스.
  8. 제7항에 있어서, 상기 제어기는 상기 콘텐트가 재현되고 있을 때 상기 호스트-식별 정보가 상기 콘텐트에 내장되는 방법을 변경하게 구성된, 메모리 디바이스.
  9. 제1항에 있어서, 상기 제어기는 상기 콘텐트의 각각의 재생 세션마다 상기 호스트-식별 정보가 상기 콘텐트에 내장되는 방법을 변경하게 구성된, 메모리 디바이스.
  10. 제1항에 있어서, 상기 제어기는 룩업 테이블을 사용함으로써 상기 호스트-식별 정보를 내장시킬 상기 콘텐트 내 위치를 결정하게 동작하는, 메모리 디바이스.
  11. 제10항에 있어서, 상기 콘텐트는 상기 메모리 디바이스에 사전에 로딩되고 상기 룩업 테이블은 콘텐트 소유자에 의해 제공되는, 메모리 디바이스.
  12. 제10항에 있어서, 상기 콘텐트 및 룩업 테이블은 콘텐트 로딩 시스템에 의해 상기 메모리 디바이스에 로딩되고, 상기 콘텐트 로딩 시스템은 상기 메모리 디바이스 내 현재 파일 시스템 구조들을 고려하기 위해 상기 룩업 테이블을 업데이트하는, 메모리 디바이스.
  13. 제10항에 있어서, 상기 콘텐트는 상기 룩업 테이블의 온전성을 보호하기 위해서 기입-방지되는 것인, 메모리 디바이스.
  14. 제1항에 있어서, 상기 제어기는 상기 호스트-식별 정보를 내장할 상기 콘텐트 내 위치를 결정하기 위해 상기 콘텐트를 분석하게 동작하는, 메모리 디바이스.
  15. 제1항에 있어서, 비디오 엔코딩 및 파일 콘테이너 구조들을 분석하게 동작하는 펌웨어 또는 하드웨어 로직 모듈을 더 포함하는, 메모리 디바이스.
  16. 콘텐트에 호스트-식별 정보를 내장시키는 방법에 있어서,
    콘텐트를 저장하게 동작하는 메모리를 포함하는 메모리 디바이스의 제어기에서,
    상기 메모리 디바이스와 통신하는 호스트로부터 호스트-식별 정보를 포함하는 크레덴셜을 수신하는 단계;
    상기 크레덴셜을 사용하여 상기 호스트를 인증하는 단계;
    상기 메모리에 저장된 콘텐트를 재현하라는 요청을 상기 호스트로부터 수신하는 단계;
    상기 호스트-식별 정보를 상기 콘텐트에 내장하는 단계; 및
    상기 내장된 호스트-식별 정보와 함께 상기 콘텐트를 상기 호스트에 보내는 단계를 수행하는 것을 포함하는, 방법.
  17. 제16항에 있어서, 상기 호스트-식별 정보는 화상 그룹(GOP)의 마지막 프레임에 내장되는, 방법.
  18. 제16항에 있어서, 상기 호스트-식별 정보는 미참조 프레임에 내장되는, 방법.
  19. 제16항에 있어서, 상기 호스트-식별 정보는 접근불가 화상 그룹(GOP)에 내장되는, 방법.
  20. 제16항에 있어서, 상기 호스트-식별 정보는 사용자 데이터 필드에 내장되는, 방법.
  21. 제16항에 있어서, 상기 호스트-식별 정보는 시스템 층 내 미참조 스트림에 내장되는, 방법.
  22. 제16항에 있어서, 상기 콘텐트의 재생 동안 실시간으로 상기 호스트-식별 정보가 상기 콘텐트에 내장되는, 방법.
  23. 제22항에 있어서, 상기 콘텐트가 재현되고 있을 때 상기 호스트-식별 정보가 상기 콘텐트에 내장되는 방법을 가변하는 단계를 더 포함하는, 방법.
  24. 제16항에 있어서, 상기 콘텐트의 각각의 재생 세션마다 상기 호스트-식별 정보가 상기 콘텐트에 내장되는 방법을 가변하는 단계를 더 포함하는, 방법.
  25. 제16항에 있어서, 룩업 테이블을 사용함으로써 상기 호스트-식별 정보를 내장시킬 상기 콘텐트 내 위치를 결정하는 단계를 더 포함하는, 방법.
  26. 제25항에 있어서, 상기 콘텐트는 상기 메모리 디바이스에 사전에 로딩되고 상기 룩업 테이블은 콘텐트 소유자에 의해 제공되는, 방법.
  27. 제25항에 있어서, 상기 콘텐트 및 룩업 테이블은 콘텐트 로딩 시스템에 의해 상기 메모리 디바이스에 로딩되고, 상기 콘텐트 로딩 시스템은 상기 메모리 디바이스 내 현재 파일 시스템 구조들을 고려하기 위해 상기 룩업 테이블을 업데이트하는, 방법.
  28. 제25항에 있어서, 상기 콘텐트는 상기 룩업 테이블의 온전성을 보호하기 위해서 기입-방지되는 것인, 방법.
  29. 제16항에 있어서, 상기 호스트-식별 정보를 내장할 상기 콘텐트 내 위치를 결정하기 위해 상기 콘텐트를 분석하는 단계를 더 포함하는, 방법.
  30. 제10항에 있어서, 상기 메모리 디바이스는 비디오 엔코딩 및 파일 콘테이너 구조들을 분석하게 동작하는 펌웨어 또는 하드웨어 로직 모듈을 포함하는, 방법.
KR1020117029909A 2009-06-26 2010-06-14 호스트-식별 정보를 콘텐트에 내장시키기 위한 메모리 디바이스 및 방법 KR20120030419A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/492,751 2009-06-26
US12/492,751 US8429365B2 (en) 2009-06-26 2009-06-26 Memory device and method for embedding host-identification information into content

Publications (1)

Publication Number Publication Date
KR20120030419A true KR20120030419A (ko) 2012-03-28

Family

ID=42589846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117029909A KR20120030419A (ko) 2009-06-26 2010-06-14 호스트-식별 정보를 콘텐트에 내장시키기 위한 메모리 디바이스 및 방법

Country Status (5)

Country Link
US (1) US8429365B2 (ko)
EP (1) EP2446387A1 (ko)
KR (1) KR20120030419A (ko)
CN (1) CN102460455B (ko)
WO (1) WO2010151444A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644282B2 (en) 1998-05-28 2010-01-05 Verance Corporation Pre-processed information embedding system
US6737957B1 (en) 2000-02-16 2004-05-18 Verance Corporation Remote control signaling using audio watermarks
US20060239501A1 (en) 2005-04-26 2006-10-26 Verance Corporation Security enhancements of digital watermarks for multi-media content
US8020004B2 (en) 2005-07-01 2011-09-13 Verance Corporation Forensic marking using a common customization function
WO2011022437A1 (en) 2009-08-17 2011-02-24 Cram, Inc. Digital content management and delivery
JP2011087033A (ja) * 2009-10-14 2011-04-28 Sanyo Electric Co Ltd コンテンツ再生装置
US20120134529A1 (en) * 2010-11-28 2012-05-31 Pedro Javier Vazquez Method and apparatus for applying of a watermark to a video during download
US20120210447A1 (en) * 2010-11-28 2012-08-16 Pedro Javier Vazquez Secure video download method
US9633391B2 (en) * 2011-03-30 2017-04-25 Cram Worldwide, Llc Secure pre-loaded drive management at kiosk
US20120023587A1 (en) * 2011-03-30 2012-01-26 Klum R Daren Secure kiosk based digital content delivery
US8826459B2 (en) * 2011-11-29 2014-09-02 Jason Swist Systems and methods of automatic multimedia transfer and playback
US9323902B2 (en) 2011-12-13 2016-04-26 Verance Corporation Conditional access using embedded watermarks
US9106964B2 (en) 2012-09-13 2015-08-11 Verance Corporation Enhanced content distribution using advertisements
CN103874157B (zh) * 2012-12-12 2017-07-07 华为技术有限公司 路由转发、建立路由表、和获取内容的方法及其装置
WO2014153199A1 (en) 2013-03-14 2014-09-25 Verance Corporation Transactional video marking system
US20140325673A1 (en) * 2013-04-25 2014-10-30 Verance Corporation Live broadcast content protection based on watermarking
US9116774B2 (en) * 2013-05-14 2015-08-25 Sandisk Technologies Inc. Firmware updates for multiple product configurations
US9251549B2 (en) 2013-07-23 2016-02-02 Verance Corporation Watermark extractor enhancements based on payload ranking
US9208334B2 (en) 2013-10-25 2015-12-08 Verance Corporation Content management using multiple abstraction layers
WO2015138798A1 (en) 2014-03-13 2015-09-17 Verance Corporation Interactive content acquisition using embedded codes
KR20150129459A (ko) * 2014-05-12 2015-11-20 한국전자통신연구원 화이트 박스 암호화 장치 및 그 방법
CN105657453A (zh) * 2015-12-29 2016-06-08 华为技术有限公司 一种利用数字指纹技术保护视频的方法及装置
KR102466412B1 (ko) * 2016-01-14 2022-11-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102337677B1 (ko) * 2020-07-16 2021-12-09 (주)휴먼스케이프 디지털 검증 지문 삽입 시스템 및 그 방법

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329618A (en) * 1992-04-02 1994-07-12 Fibronics Ltd. Look-up table for a bridge in a data communications system
US5646997A (en) * 1994-12-14 1997-07-08 Barton; James M. Method and apparatus for embedding authentication information within digital data
US7006661B2 (en) * 1995-07-27 2006-02-28 Digimarc Corp Digital watermarking systems and methods
US6009176A (en) * 1997-02-13 1999-12-28 International Business Machines Corporation How to sign digital streams
JP3137022B2 (ja) * 1997-02-24 2001-02-19 日本電気株式会社 動画像エンコード装置
JP3103061B2 (ja) 1997-09-12 2000-10-23 インターナショナル・ビジネス・マシーンズ・コーポレ−ション トークン作成装置および該トークンを用いたデータ制御システム
US6553127B1 (en) * 1998-05-20 2003-04-22 Macrovision Corporation Method and apparatus for selective block processing
US7644282B2 (en) * 1998-05-28 2010-01-05 Verance Corporation Pre-processed information embedding system
WO1999062022A1 (en) 1998-05-28 1999-12-02 Solana Technology Development Corporation Pre-processed information embedding system
US6912315B1 (en) * 1998-05-28 2005-06-28 Verance Corporation Pre-processed information embedding system
US20030159043A1 (en) * 1999-05-27 2003-08-21 Michael A. Epstein Method and apparatus for use of a watermark and a receiver dependent reference for the purpose of copy pretection
EP1014618A1 (en) 1998-07-30 2000-06-28 Sony Corporation Content processing system
US6983371B1 (en) * 1998-10-22 2006-01-03 International Business Machines Corporation Super-distribution of protected digital content
US6898706B1 (en) * 1999-05-20 2005-05-24 Microsoft Corporation License-based cryptographic technique, particularly suited for use in a digital rights management system, for controlling access and use of bore resistant software objects in a client computer
US7120251B1 (en) * 1999-08-20 2006-10-10 Matsushita Electric Industrial Co., Ltd. Data player, digital contents player, playback system, data embedding apparatus, and embedded data detection apparatus
US20020056118A1 (en) * 1999-08-27 2002-05-09 Hunter Charles Eric Video and music distribution system
JP2001175606A (ja) * 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
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
EP2955652A1 (en) * 2000-06-16 2015-12-16 MIH Technology Holdings BV Methods and systems to distribute content via a network utilizing distributed conditional access agents and secure agents, and to perform digital rights management (drm)
US7215771B1 (en) * 2000-06-30 2007-05-08 Western Digital Ventures, Inc. Secure disk drive comprising a secure drive key and a drive ID for implementing secure communication over a public network
US20040064416A1 (en) * 2000-10-03 2004-04-01 Ariel Peled Secure distribution of digital content
JP4219680B2 (ja) * 2000-12-07 2009-02-04 サンディスク コーポレイション 不揮発性メモリカード、コンパクトディスクまたはその他のメディアから記録済みのオーディオ、ビデオまたはその他のコンテンツを再生するためのシステム、方法およびデバイス
US20020141582A1 (en) * 2001-03-28 2002-10-03 Kocher Paul C. Content security layer providing long-term renewable security
US7987510B2 (en) * 2001-03-28 2011-07-26 Rovi Solutions Corporation Self-protecting digital content
US7036020B2 (en) * 2001-07-25 2006-04-25 Antique Books, Inc Methods and systems for promoting security in a computer system employing attached storage devices
US7398395B2 (en) * 2001-09-20 2008-07-08 Koninklijke Philips Electronics N.V. Using multiple watermarks to protect content material
US7308430B2 (en) * 2002-04-02 2007-12-11 Warner Bros. Entertainment Inc. Methods and apparatus for uniquely identifying a large number of film prints
JP3976183B2 (ja) * 2002-08-14 2007-09-12 インターナショナル・ビジネス・マシーンズ・コーポレーション コンテンツ受信装置、ネットワークシステム及びプログラム
JP3749884B2 (ja) * 2002-08-28 2006-03-01 株式会社東芝 電子透かし埋め込み装置、電子透かし解析装置、電子透かし埋め込み方法、電子透かし解析方法及びプログラム
US7082509B2 (en) * 2003-02-06 2006-07-25 Intel Corporation Method and system for allocating memory during system boot to reduce operating system memory resource consumption at run-time
CN101241735B (zh) * 2003-07-07 2012-07-18 罗威所罗生股份有限公司 重放加密的视听内容的方法
CA2537303A1 (en) * 2003-07-23 2005-02-03 Ping Kang Hsiung Digital media cartridge system and method
US20050193205A1 (en) * 2004-01-09 2005-09-01 Widevine Technologies, Inc. Method and system for session based watermarking of encrypted content
GB2419249B (en) * 2004-10-15 2007-09-26 Zootech Ltd Watermarking in an audiovisual product
US7570782B2 (en) * 2004-12-10 2009-08-04 Hewlett-Packard Development Company, L.P. Method and system for watermarking
US7493656B2 (en) * 2005-06-02 2009-02-17 Seagate Technology Llc Drive security session manager
US7570641B2 (en) * 2005-08-23 2009-08-04 Macrovision Corporation Techniques for watermarking and distributing content
US7630497B2 (en) * 2005-09-19 2009-12-08 International Business Machines Corporation System and method for assigning sequence keys to a media player to enable hybrid traitor tracing
US20070220266A1 (en) * 2006-03-03 2007-09-20 Verimatrix, Inc. Security monitoring system and method for network distribution of digital content
JP5097114B2 (ja) * 2006-06-19 2012-12-12 パナソニック株式会社 情報埋込装置、及び検出装置
WO2008013656A2 (en) 2006-07-07 2008-01-31 Sandisk Corporation Content control system and method using certificate chains
US7779058B2 (en) * 2007-02-22 2010-08-17 Ronald Raymond Shea Method and apparatus for managing a digital inventory of multimedia files stored across a dynamic distributed network
US7975313B2 (en) * 2007-08-14 2011-07-05 International Business Machines Corporation System and method for tracing Tardos fingerprint codes
US20090132813A1 (en) 2007-11-08 2009-05-21 Suridx, Inc. Apparatus and Methods for Providing Scalable, Dynamic, Individualized Credential Services Using Mobile Telephones

Also Published As

Publication number Publication date
US20100332723A1 (en) 2010-12-30
CN102460455A (zh) 2012-05-16
WO2010151444A1 (en) 2010-12-29
US8429365B2 (en) 2013-04-23
EP2446387A1 (en) 2012-05-02
WO2010151444A8 (en) 2011-03-03
CN102460455B (zh) 2015-04-01

Similar Documents

Publication Publication Date Title
KR20120030419A (ko) 호스트-식별 정보를 콘텐트에 내장시키기 위한 메모리 디바이스 및 방법
CA2683661C (en) Method and apparatus for delivering encoded content
US7356143B2 (en) System, method, and apparatus for securely providing content viewable on a secure device
JP4740157B2 (ja) デジタルデータコンテンツの保護
US8838978B2 (en) Content access management using extracted watermark information
US8627081B2 (en) Multimedia data protection
KR101689351B1 (ko) 디지털 저작권 관리용 디바이스 및 방법
US9047445B2 (en) Memory device and method for updating a security module
JP5324429B2 (ja) 符号化されたオーディオ信号を暗号化する方法及び装置
US8532290B2 (en) Content playback APIS using encrypted streams
KR20130115982A (ko) 호스트 장치 내 캐시를 우회함으로써 저장장치 내 가상 파일에 액세스하기 위한 호스트 장치 및 방법
CN110073357B (zh) 解密和变体处理
JP2002330126A (ja) コンテンツの配信および保護を行なう方法および装置
US8571209B2 (en) Recording keys in a broadcast-encryption-based system
KR20120007012A (ko) 콘텐츠의 적응적 보호를 위한 메모리 장치 및 방법
CN102203793B (zh) 动态内容跟踪的存储器件和方法
KR101775971B1 (ko) 저장 장치, 저장 장치의 인증 방법 및 인증 장치
US9076484B2 (en) Methods for estimating playback time and handling a cumulative playback time permission
US9992173B2 (en) Apparatus for and method of playing back content
JP2014175757A (ja) 分割要素の結合による電子透かしを生成する電子透かし処理システム、サーバ、プログラム及び方法
US9026794B2 (en) Information processing device and information processing method, and program
US20130042102A1 (en) Information processing device and information processing method, and program
Peinado Digital Rights Management and Windows Media Player

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid