KR20120007012A - 콘텐츠의 적응적 보호를 위한 메모리 장치 및 방법 - Google Patents

콘텐츠의 적응적 보호를 위한 메모리 장치 및 방법 Download PDF

Info

Publication number
KR20120007012A
KR20120007012A KR20117025446A KR20117025446A KR20120007012A KR 20120007012 A KR20120007012 A KR 20120007012A KR 20117025446 A KR20117025446 A KR 20117025446A KR 20117025446 A KR20117025446 A KR 20117025446A KR 20120007012 A KR20120007012 A KR 20120007012A
Authority
KR
South Korea
Prior art keywords
content
virtual machine
machine code
host
memory device
Prior art date
Application number
KR20117025446A
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 KR20120007012A publication Critical patent/KR20120007012A/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 콘텐츠의 적응적 보호를 위한 메모리 장치 및 방법을 제공한다. 일 실시에에서, 메모리 장치는 콘텐츠를 저장하기 위한 동작하는 메모리 및 메모리와 통신하는 제어기를 포함하여 제공된다. 제어기는 제어기에 의해 앞서 생성된 적어도 하나의 콘텐츠 보호 알고리즘과 다른 콘텐츠 보호 알고리즘을 생성하고, 콘텐츠 보호 알고리즘에 따라 콘텐츠를 보호하며, 어떻게 보호된 콘텐츠를 보호 해제할 것인지에 대한 지시를 포함하는 가상 머신 코드를 생성하고, 보호된 콘텐츠 및 가상 머신 코드를 메모리 장치와 통신하는 호스트에 제공한다. 콘텐츠의 적응적 보호를 위한 방법은 앞서 생성된 적어도 하나의 콘텐츠 보호 알고리즘과 다른 콘텐츠 보호 알고리즘을 생성하는 단계와, 콘텐츠 보호 알고리즘에 따라 상기 콘텐츠를 보호하는 단계와, 어떻게 보호된 콘텐츠를 보호 해제할 것인지에 대한 지시를 포함하는 가상 머신 코드를 생성하는 단계와, 보호된 콘텐츠 및 가상 머신 코드를 메모리 장치와 통신하는 호스트에 제공하는 단계를 포함하여 제공된다.

Description

콘텐츠의 적응적 보호를 위한 메모리 장치 및 방법{Memory Device and Method for Adaptive Protection of Content}
본 발명은 메모리 장치 및 방법에 관한 것으로, 보다 상세하게는 콘텐츠의 적응적 보호를 위한 메모리 장치 및 방법에 관한 것이다.
BD+ 표준이 적용된 블루레이 디스크와 같은, 광학 디스크들에 저장되는 콘텐츠를 보호하기 위해 사용되는 일부 콘텐츠 보호 아키텍처들은 광학 디스크에서 저장된 콘텐츠를 보호해제(unprotect)하는 방법인 지시(instruction)를 포함하는 가상 머신 코드와 함께 보호된 콘텐츠를 저장한다. 재생하는 동안, 재생기는 광학 디스크로부터 가장 머신 코드 및 보호된 콘텐츠를 판독하고, 재생기의 가상 머신은 가상 머신 코드를 실행하여 보호된 콘텐츠를 보호 해제한다. 보호된 콘텐츠가 보호해제되면, 재생기는 콘첸츠를 재생할 수 있다. 이러한 스킴(scheme)이 약간의 보호 레벨을 제공하는 동안, 시간이 지나면, 해커는 콘텐츠 보호를 위해 사용된 콘텐츠 보호 알고리즘을 해킹할 수 있을 것이다. 일단, 콘텐츠 보호 알고리즘이 해킹되면, 콘텐츠의 승인되지 않은 사용 및 복제를 방지하는 어떠한 메커니즘도 존재할 수 없다.
본 발명의 목적은 콘텐츠를 동적으로 그리고 적응적으로 보호하기 위한 메모리 장치 및 방법를 제공함에 있다.
본 발명의 실시예는 특허청구범위에 의하여 정의되며, 이 섹션에서 취해지는 어떤 것도 이러한 특허청구범위를 한정할 수 없다.
서론으로, 하기에서 설명될 본 발명의 실시예에는 일반적으로, 콘텐츠의 적응적 보호를 위한 메모리 장치 및 방법에 관한 것이다. 일 실시에에서, 메모리 장치는 콘텐츠를 저장하기 위한 동작하는 메모리 및 메모리와 통신하는 제어기를 포함하여 제공된다. 제어기는 제어기에 의해 앞서 생성된 적어도 하나의 콘텐츠 보호 알고리즘과 다른 콘텐츠 보호 알고리즘을 생성하고, 콘텐츠 보호 알고리즘에 따라 콘텐츠를 보호하며, 어떻게 보호된 콘텐츠를 보호 해제할 것인지에 대한 지시를 포함하는 가상 머신 코드를 생성하고, 보호된 콘텐츠 및 가상 머신 코드를 메모리 장치와 통신하는 호스트에 제공한다.
다른 실시예에서, 콘텐츠의 적응적 보호를 위한 방법은 앞서 생성된 적어도 하나의 콘텐츠 보호 알고리즘과 다른 콘텐츠 보호 알고리즘을 생성하는 단계와, 콘텐츠 보호 알고리즘에 따라 상기 콘텐츠를 보호하는 단계와, 어떻게 보호된 콘텐츠를 보호 해제할 것인지에 대한 지시를 포함하는 가상 머신 코드를 생성하는 단계와, 보호된 콘텐츠 및 가상 머신 코드를 메모리 장치와 통신하는 호스트에 제공하는 단계를 포함하여 제공된다.
다른 실시예에들이 제공되며, 각 실시예들은 단독으로 또는 그 조합으로 함께 사용될 수 있다. 다양한 실시예들은 이제 첨부된 도면을 참조하여 설명될 것이다.
상술한 바와 같은 본 발명에 따르면, 콘텐츠를 동적으로 그리고 적응적으로 보호할 수 있어, 보안의 레벨 및 신뢰도를 높일 수 있다.
도 1은 본 발명의 실시예에 따른 메모리 장치와 호스트의 블록도이다.
도 2는 콘텐츠의 적응적 보호를 위한 본 발명의 실시예에 따른 방법의 흐름도이다.
도 3은 본 발명의 다른 실시예에 따른 호스트 및 메모리 장치의 블록도이다.
도 4a 및 도 4b는 도 3에 도시된 메모리 장치를 이용하여 콘텐츠의 적응적 보호를 위한 본 발명의 방법의 흐름도이다.
서론으로, 다음의 실시예들은 정적인 형식의 보호를 사용하는 시스템 보다 더욱 강력한(robust) 콘텐츠 보호 레벨을 제공하기 위해 사용될 수 있는 콘텐츠의 적응적 보호를 위한 메모리 장치 및 방법을 제공한다. 특히, 가상 머신 코드 및 보호된 콘텐츠는 어떤 아키텍처들에서는 정적임으로, 시간이 지나면, 해커는 콘텐츠 보호 알고리즘을 해킹할 수도 있다. 이러한 문제를 다룸에 있어, 메모리 장치는 시시때때로 변경될 수 있는 콘텐츠 보호 알고리즘으로 콘텐츠를 적응적으로 보호할 수 있으며, 다양한 시간에 새로운 가상 머신 코드를 생성할 수 있다. 따라서 해커가 콘텐츠의 재생의 어느 하나의 실현(instance)에서 한번 사용된 콘텐츠 보호 알고리즘을 해킹했다고 할지라도, 메모리 장치는 콘텐츠의 재생의 다른 실현에서 다른 콘텐츠 보호 알고리즘으로 콘텐츠를 보호할 수 있음으로 콘텐츠는 여전히 보호된다. 이는 정적인 보호 보다는 적응적이며 동적인 콘텐츠의 보호를 제공한다.
이제 도면을 살펴보면, 도 1은 본 발명의 실시예에 따른 메모리 장치(100)와 호스트(50)의 블록도이다. 도 1에 도시된 바와 같이, 메모리 장치(100)는 콘텐츠(130)를 저장하기 위한 동작하는 메모리(120) 및 제어기(110)를 포함한다. "콘텐츠"는 디지털 비디오(오디오와 수반되거나, 수반되지 않은, 예, 영화, TV 쇼의 에피소드, 뉴스 프로그램, 등), 오디오(예, 노래, 팟캐스트(podcast), 하나 또는 시리즈의 사운드들, 오디오 책, 등), 정지 영상 또는 동영상(예, 사진, 검퓨터로 생성된 화면, 등), 텍스트(그래픽을 동반하거나, 동반하지 않은, 예, 문서, 텍스트 파일, 등), 비디오 게임 및 2 이상의 이러한 형식들의 하이브리드 멀티미디어 프레젠테이션과 같은, 어떤 적합한 형태도, 하지만, 이 형태들에 제한됨이 없이, 취할 수 있다.
제어기(110)는 어떠한 적합한 방식으로도 구현될 수 있다. 예컨대, 제어기(110)는 마이크로프로세서 또는 프로세서, 및, (예컨대, 마이크로프로세서, 로직게이트, 스위치, ASCI(application specific integrated circuit), PLC(programmable logic controller) 및 마이크로컨트롤러 등에 의하여 실행되는) 컴퓨터 판독 가능한 프로그램 코드(예, 소프트웨어 또는 펌웨어)를 저장한 컴퓨터 판독 가능한 매체의 형식을 취할 수 있다. 제어기의 예들은 이에 제한되지는 않지만, ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, 및 Silicon Labs C8051F320 등의 마이크로컨트롤러들을 포함한다. 제어기로 사용될 수 있는 다양한 컴포넌트의 예들은 아래에서 논의될 실시예에서 설명되고, 첨부된 도면에 도시된다. 또한, 제어기(110)는 메모리(120) 제어 로직의 일부로 구현될 수 있다.
메모리(120)는 어떠한 적합한 형태도 취할 수 있다. 일 실시예에서, 메모리(120)는 솔리드스테이트(예, 플래시) 메모리의 형식을 취할 수 있다. 그리고 메모리(120)는 한번 프로그래밍 가능하거나, 몇 번 프로그래밍 가능하거나, 여러번 프로그래밍 가능할 수 있다. 하지만, 광학 메모리 및 자석 메모리와 같이, 메모리의 다른 형식을 사용될 수도 있다. 도 1의 단일 컴포넌트로써 도시되었지만, 제어기(110) 및/또는 메모리(120)는 몇 개의 컴포넌트들로 구현될 수도 있다. 게다가, 메모리 장치(100)는 다른 컴포넌트들을 포함할 수 있다. 이는 도면을 간략화하기 위하여 도시하지 않았다. 일 실시예에서, 메모리 장치(100)는 탈착 가능한 메모리 카드, 휴대용의 형식을 취할 수 있다. 하지만, 메모리 장치(100)는 이에 한정되지 않지만, 솔리드스테이트 드라이브 및 USB(universal serial bus) 디바이스와 같은, 다른 형식을 가질 수 있다.
도 1에 도시된 바와 같이, 메모리 장치(100)는 호스트 장치(50)와 통신 상태에 있다. 여기에 사용되는 것처럼, 구절 "와 통신하는"은 여기에 설명되거나 또는 도시되지 않은 하나 이상의 컴포넌트들과 직접 또는 간접적으로 통신함을 의미한다. 호스트(50)는 이에 제한되지는 않지만, 전용 콘텐츠 재생기, 이동 단말, 퍼스널 컴퓨터, 게임 장치, PDA(personal digital assistant) 및 TV 시스템과 같은, 어떤 적합한 형태가 될 수 있다. 바람직하게, 메모리 장치(100)는 호스트(50)와 탈착 가능하게 연결된다. 그래서 사용자는 메모리 장치(100)를 다양한 호스트들에 사용할 수 있다.
도 1에 도시된 바와 같이, 호스트(50) 내의 제어기(60)는 가상 머신(70)을 실행시킨다. 이 분야에서 잘 알려진 바와 같이, 가상 머신은 하드웨어 장치의 퍼포먼스를 흉대내기 위한 소트프웨어 컴포넌트이며, 물리적 컴퓨터와 같이 자신의 운영 체제 및 어플리케이션을 운영할 수 있다. 일반적으로, 가상 머신은 호환성의 이득을 제공한다. 따라서 가상 머신에서 실행을 위한 파티 판독 가상 머신 코드(party writing virtual machine code)는 호스트의 하드웨어 환경 및 소프트웨어 플랫폼의 세부사항을 알아야 할 필요가 없다. 또한, 가상 머신은 이의 근본적인 물리적 하드웨어로부터 독립적이기 때문에, 가상 머신은, 근복적인 하드웨어 장치에 존재하는 물리 컴포넌트와 완전히 다른 가상 CPU 및 가상 네트워크 카드와 같은, 가상(예, 소프트웨어로 제작된) 컴포넌트들로 구성될 수 있다. 일 실시예에서, 호스트(50), 제어기(60) 및 가상 머신(70)은 정적 보호 아키텍처를 사용하는 것들과 같아질 수 있다. 호스트(50)는 다른 컴포넌트(예컨대, 표시 장치, 스피커, 헤드폰 잭, 등)를 포함할 수 있다. 이는 도면의 간략화를 위하여 도시되지 않았다.
도 2는 도 1의 메모리 장치(100)를 사용하는 콘텐츠의 적응적 보호를 위한 본 발명의 실시예에 따른 방법의 흐름도이다. 흐름도(200)에 도시된 바와 같이, 제어기(110)는 호스트(50)로부터 콘텐츠(130)을 재생하기 위한 요청을 수신할 때, 제어기(110)는 제어기에 의해 앞서 생성된 적어도 하나의 콘텐츠 보호 알고리즘과 다른 콘텐츠 보호 알고리즘을 생성한다(210 단계). 여기에 사용된 것과 같이, "콘텐츠 보호 알고리즘"(또는 "보안 알고리즘")은 승인되지 않은 사용으로부터 콘텐츠를 보호하는 데에 사용할 수 있는 어떤 알고리즘이라도 될 수 있다. 어떤 적합한 콘텐츠 보호 알고리즘이 사용될 수 있으며, 몇몇 다른 형식들의 콘텐츠 보호 알고리즘들의 예들이 아래에 설명될 실시예에서 제공된다. 제어기(110)는 어떤 적하한 방식에 따라 콘텐츠 보호 알고리즘을 생성할 수 있다. 예컨대, 제어기(110)는 다음에 나열된 것 중 하나 이상에 기초하여 콘텐츠 보호 알고리즘을 생성할 수 있다. 이는 메모리 장치(100)에 대한 호스트(50)를 증명하기 위해 사용되는 호스트 자격증들, 호스트(50)에 대한 메모리 장치(100)를 증명하기 위해 사용되는 메모리 장치 자격증, 호스트 환경(예, 호스트(50)의 메모리 용량 및 프로세싱 파워), 메모리 장치 환경(예, 메모리 장치(100)의 메모리 용량 및 프로세싱 파워), 콘텐츠의 형식, 및 제어기(110)에 의해 앞서 생성된 가상 머신 코드에 관련된 정보를 포함한다. 더욱이, 제어기(100)는 "스크래치로부터(from scratch)" 콘텐츠 보호 알고리즘을 생성할 수 있다. 또는, 제어기(100)는 메모리 장치(100)에 저장된 콘텐츠 보호 알고리즘들의 미리 결정된 선택, 슈도-랜덤(pseudo-random) 선택, 또는 랜덤 선택을 이용하여 콘텐츠 보호 알고리즘을 생성할 수 있다. 추가적으로, 콘텐츠 제공자 또는 다른 당사자(party)는 메모리 장치(100)에 어떻게 콘텐츠 보호 알고리즘을 생성하는지 (예, 가상 머신 코드의 형식으로) 지시를 제공할 수 있다. 이것이 어떻게 생성되었는지 여부에 무관하게, 생성된 콘텐츠 보호 알고리즘은 제어기(110)에 의해 앞서 생성된 적어도 하나의 콘텐츠 보호 알고리즘과 다르다. 이러한 방법에서, 제어기(110)는 적응적/동적인 콘텐츠 보호를 제공한다. 이는 상기한 배경기술 부분에서 설명한 정적 보호와 대비된다.
도 2로 돌아와서, 제어기(110)는 생성된 콘텐츠 보호 알고리즘에 따라 콘텐츠(130)를 보호한다(220 단계). 그리고 제어기(110)는 보호된 콘텐츠를 보호 해제하는 방법인 지시를 포함하는 가상 머신 코드를 생성한다(230 단계). 이러한 방법에서, 가상 머신 코드는 콘텐츠에서 막 수행되는 보호 동작에 매칭 된다. 제어기(110)는 보호된 콘텐츠 및 가상 머신 코드를 호스트(50)에 제공한다(240 단계). 보호된 콘텐츠 및 가상 머신 코드를 수신한 후, 호스트(50) 내의 가상 머신(70)은 상 머신 코드를 실행하고, 가상 머신 코드에 포함된 지시를 이용하여 보호된 콘텐츠를 보호 해제한다. 즉, 가상 머신 코드의 이 지시는 가상 머신(70)에 메모리 장치(100)의 제어기(110)에 의하여 적용된 콘텐츠 보호를 "un-do"하는 방법을 지시한다. 그래서 호스트(50)는 재생을 위한 콘텐츠를 render 할 수 있다. 이러한 방법에서, 호스트(50)는 정적 보호 아키텍처에 의해 보호되는 콘텐츠를 재생하는 호스트와 같이 동작할 수 있다. 콘텐츠의 재생은 또한, 콘텐츠를 보호 해제하는 방법인 지시를 포함하는 가상 머신 코드를 수신하고 실행하는 것을 수반한다. 하지만, 이러한 실시예는 다음에서 설명될 바와 같이, 정적 보호 아키텍처에 의해 제공될 수 없는 추가적인 레벨의 보호를 제공한다.
배경기술 부분에서 설명한 아키텍처에서 가상 머신 코드 및 보호된 콘텐츠는 정적임으로, 시간이 지나면, 해커는 콘텐츠 보호 알고리즘을 해킹할 수도 있다. 일단, 콘텐츠 보호 알고리즘이 해킹되면, 콘텐츠의 승인되지 않은 사용 및 복제를 방지하는 어떠한 메커니즘도 없다. 반면, 메모리 장치(100)는 제어기(110)를 포함함으로, 메모리 장치(100)는 제어기(110)에 의해 앞서 생성된 적어도 하나의 콘텐츠 보호 알고리즘과 다른 콘텐츠 보호 알고리즘으로 콘텐츠(130)를 보호할 수 있으며, 단순한 정적 콘텐츠 및 정적 가상 머신 코드가 아닌 다양한 시간(예컨대, 콘텐츠의 각 재생 세션 마다, N 수의 재생 세션들 후에, 단일 재생 세션 내에서, 등)에 새로운 가상 머신 코드를 생성할 수 있다. 콘텐츠의 이러한 동적 보호는 해커가 콘텐츠의 재생의 어느 하나의 실현(instance)에서 한번 사용된 콘텐츠 보호 알고리즘을 해킹했다고 할지라도, 메모리 장치(100)는 콘텐츠의 재생의 다른 실현에서 다른 콘텐츠 보호 알고리즘으로 콘텐츠를 보호할 수 있음으로 콘텐츠는 여전히 보호될 수 있음을 의미한다. 즉, 단지 단일의, 정적인 콘텐츠 보호 알고리즘만을 해킹하는 것이 요구되는 대신, 해커는 콘텐츠에 대한 무제한 접속 위해서, 특정 콘텐츠 타이틀의 콘텐츠 보호 알고리즘의 모든 가능한 조합을 해킹하여야만 한다. 이는 정적 보호 아키텍처에 의해 제공되는 것 보다 상당히 높은 레벨의 콘텐츠 보호를 제공한다.
앞서 언급한 바와 같이, 제어기(110)에 의해 생성되는 콘텐츠 보호 알고리즘은 제어기(110)에 의해 앞서 생성된 적어도 하나의 콘텐츠 보호 알고리즘과 다르다. 이는 생성된 콘텐츠 보호 알고리즘 각각이 (만약 생성된 콘텐츠 보호 알고리즘이 앞서 제어기(110)에 의해 생성된 모든 콘텐츠 보호 알고리즘과 다르다면,) 유일하거나, 또는, (만약 생성된 콘텐츠 보호 알고리즘이 앞서 제어기(110)에 의해 생성된 모든 것과는 아니지만 몇몇 콘텐츠 보호 알고리즘과 다르다면,) 앞서 생성된 콘텐츠 보호 알고리즘의 반복이 될 수도 있다는 것을 의미한다. 반복되는 경우에 있어, 콘텐츠 보호 알고리즘은 생성된 최근의 콘텐츠 보호 알고리즘과는 다른 것이 바람직하다. 아래에 더 상세하게 설명할 것과 같이, 이는 최근에 생성된 콘텐츠 보호 알고리즘에 관련된 저장된 가상 머신 코드를 분석함에 의하여 성취될 수 있다.
앞서 언급한 바와 같이, 본 발명의 실시예에 따른 메모리 장치(100)는 어떤 적합한 방식으로 구현될 수 있다. 다음은 본 발명의 일 실시예를 설명하기 위한 단락 및 참조된 도면이다. 이는 이러한 실시예들은 단지 그 예들이며, 여기에 보여지고 설명되는 상세한 설명은 명확하게 설명되고 있지 않다면 청구범위에 의하여 해석되어야 하는 것으로 이해되어야만 한다.
도면으로 돌아와서, 도 3은 본 발명의 다른 실시예에 따른 호스트(350) 및 메모리 장치(300)의 블록도이다. 도 3에 도시된 바와 같이, 메모리 장치(300)는 제어기(310) 및 메모리(320)를 포함한다. 제어기(310)는 메모리(320)와 인터페이스를 위한 메모리 인터페이스(311) 및 호스트(350)과 인터페이스를 위한 호스트 인터페이스(312)를 포함한다. 제어기(310)는 또한 CPU(central processing unit, 313), 암호화 및/또는 복호화를 제공하기 위해 동작하는 크립토-엔진(crypto-engine, 314), RAM(read access memory, 315), 메모리 장치(300)의 기본 동작을 위한 펌웨어를 저장하는 ROM(read only memory, 316), 및 암호화/복호화 동작을 위한 장치-특화된 키를 저장하는 비휘발성 메모리(NVM, 317)를 포함한다. 이 실시예에서, CPU(313)는 메모리(320)에 저장된 펌웨어 코드(344)를 구동하여 가상 머신(VM, 318)으로 구현될 수 있다. 하지만, 다른 실시예에서, 자신의 CPU와 함께 제어기(310)에서 분할된 서브시스템은 가상 머신으로 구현될 수도 있다. 가상 머신(318)의 사용은 아래에서 설명될 것이다.
이 실시예에서, 메모리(320)는 호스트(350) 상의 파일 시스템에 의해 관리되는 공개 파티션(325) 및 제어기(310)에 의하여 내부적으로 관리되는 숨겨진 보호 시스템 영역(335)을 포함한다. 숨겨진 보호 시스템 영역(335)은 콘텐츠 암호화 키들(CEKs, content encryption keys, 340), 메모리 장치 가상 머신(VM) 코드, 펌웨어(FW) 코드(342) 및 호스트 가상 머신(VM) 코드(346)를 저장한다. 공개 파티션(325) 및 숨겨진 보호 시스템 영역(335)은 동일한 메모리 유닛의 각 부분 또는 다른 메모리 유닛이 될 수 있다. 숨겨진 보호 시스템 영역(335)은 내부적으로 (호스트 제어기(360)가 아닌) 제어기(310)에 의하여 관리됨으로, "숨겨져져있다(hidden)." 또한, 숨겨진 보호 시스템 영역(335)은 영역(335)에 저장된 객체들은 제어기(310)의 비휘발성 메모리(317)에 저장된 유일한 키로 암호화됨으로, "보호된다(protected)." 따라서 영역(335)에 저장된 객체에 접근하기 위해서는 제어기(310)는 크립토-엔진(314)을 사용하여야 하며, 암호화된 객체들을 복호화하기 위해서는 비휘발성 메모리(317)에 저장된 키를 사용하여야 한다. 바람직하게, 메모리 장치(300)는 샌디스크사에 의한 TrustedFlash™ 메모리 장치의 형식을 취하여야 한다.
메모리의 공개 파티션(325)은 보호된 콘텐츠 파일(330A, 330B)을 저장한다. 이 실시예에서, 동일한 콘텐츠 타이틀의 다른 버전들(예, 레졸루션(resolution))이 될 수 있는 콘텐츠 파일들(330A, 330B)은 콘텐츠 공급자에 의해 제공되며, 콘텐츠 복제 및 섭취 시설에 공급된다. 이는 공개 파티션(325)에 콘텐츠 파일들(330A, 330B)로 로드된다. (메모리 장치(320)에 미리 로드된 콘텐츠(330A, 330B) 대신 콘텐츠 파일들(330A, 330B)은 메모리 장치(320)에 다운로드되거나, 측면-적재(side-loaded)될 수 있다.) 메모리(320)의 공개 파티션(325)은 호스트(350) 상의 파일 시스템에 의하여 관리되는 반면, (콘텐츠 파일들(330A, 330B)과 같은) 공개 파티션(325)에 저장된 객체는 메모리 장치(100)에 의해 보호될 수 있다. 이 실시예에서, 저장된 콘텐츠 파일들(330A, 330B) 모두는 숨겨진 보호 시스템 영역(335)에 저장된 각 콘텐츠 암호화 키들(340)에 의해 보호된다. 이러한 키들(340)은 제어기(310)의 비휘발성 메모리(317)에 저장된 메모리 장치 유일 키 자체로 보호된다. 따라서 보호된 콘텐츠 파일들 중 하나(즉, 콘텐츠 파일 330A)를 보호 해제하기 위해, 크립토-엔진(314)은 제어기(310)의 비휘발성 메모리(317)에 저장된 메모리 장치 유일 키를 사용하여 적합한 콘텐츠 암호화 키(340)를 복호화할 수 있다. 그런 다음, 복호화된 콘텐츠 암호화 키(340)를 사용하여 보호된 콘텐츠(330A)를 복호화할 수 있다.
이제, 호스트(350)를 살펴보면, 호스트(350)는 메모리 장치(300)와 인터페이스를 위한 메모리 장치 인터페이스(361)를 가지는 제어기(360)를 포함한다. 제어기(360)는 또한, CPU(central processing unit, 363), 암호화 및/또는 복호화를 제공하기 위해 동작하는 크립토-엔진(364), RAM(read access memory, 365) 및 ROM(read only memory, 366)을 포함한다. 박스(360) 안의 컴포넌트는 전체 호스트 시스템 내에서 분리된 칩들로서 구현될 수 있음에 유의하라. 이 실시예에서, CPU(363)는 ROM(366)에 저장된 소프트웨어를 실행하여 가상 머신(VM, 370)을 구동시킨다. 하지만, 다른 실시예에서, 제어기(360)는 자신의 CPU와 함께 개별 가상 머신 모듈을 포함할 수 있다.
메모리 장치(300) 및 호스트(350)는 메모리 장치 인터페이스(361) 및 호스트 인터페이스(312)를 통해 상호 통신한다. 데이터의 보안 전송을 수반하는 동작에 대해, 메모리 장치(300)의 크립토-엔진들(314, 364) 및 호스트(350)는 상호간에 증명(인증)을 위해 사용되며, 키 교환을 제공함이 바람직하다. 상호 증명 절차는 호스트(350) 및 메모리 장치(300)에 유일한 증명 ID의 교환을 요구한다. 이는, 아래에서 설명할, 콘텐츠 보호 알고리즘 생성 절차의 일부로써 사용되어진다. 상호 증명이 완료된 후, 이는 메모리 장치(350) 및 호스트(300) 사이의 통신을 위한 보안 채널의 설립을 위해 세션 키를 사용함이 바람직하다.
앞서 설명한 바와 같이, 본 발명의 실시예에 따른 메모리 장치(300)는 콘텐츠의 적응적 보호를 위한 방법을 구현하기 위해 사용될 수 있다. 도 4a 및 도 4b는 콘텐츠의 적응적 보호를 위한 방법의 단계들을 도시한 흐름도(400A, 400B)이다. 도 4a는 메모리 장치 제어기(300)에 의해 수행되는 단계를 도시하며, 도 4b는 호스트 제어기(350)에 의해 수행되는 단계를 도시한다. 도 4a에 도시된 바와 같이, 콘텐츠(330A)를 판독하기 위하여 호스트(350)가 메모리 장치(300)에 명령을 전송하면, 메모리 장치 제어기(310)는 메모리(320)로부터 보호된(암호화된) 콘텐츠(330A) 및 메모리 장치 가상 머신 코드(344)를 판독한다(405 단계). 가상 머신(318)은 크립토 제어 명령을 크립토-엔진(314)에 전송한다(410 단계). 이에 응답하여, 크립토-엔진(314)은 비휘발성 메모리(317)의 메모리 장치 유일 키를 메모리 장치 가상 머신 코드(344) 및 콘텐츠 암호화 키(340)를 복호화 하기 위하여 사용한다. 크립토-엔진(314)은 이를 보호된 콘텐츠(330A)를 복호화하기 위하여 사용한다. 그런 다음, 복호화된 "플레인(plain)" 콘텐츠 파일(330A) 및 메모리 장치 가상 머신 코드(344)는 제어기의 RAM(315)로 전송된다(415 단계).
그러면, 가상 머신(318)은 RAM으로부터 가상 머신 코드(344)를 판독하며(430 단계), 이는 가상 머신(328)에 지금 보호 해제된 콘텐츠(330A)를 보호하기 위한 콘텐츠 보호 알고리즘을 생성하는 방법인 지시를 제공한다. 예를 들면, 가상 머신 코드(344)는 다음의 방법 중 하나 이상을 이용하여 콘텐츠(330A)가 보호되는 것을 특정할 수 있다. (1) 다른 미리 결정된 키들과 함께 세그먼트들의 데이터를 AES(Advanced Encryption Standard) 암호화, (2) 호스트 가상 머신 코드(346)에서 명확하지 않은 키로 SHA-1(Secure Hash Algorithm-1) 암호화, (3) 데이터 비트를 호스트 가상 머신 코드(364)에서 명확하지 않은 고정 값과 데이터 비트들을 XOR 연산, (4) 청크들의 모든 다른 바이트(byte)와 다른 값들을 XOR 연산, (5) 데이터 비트를 XOR 연산하며, 그런 다음, 랜덤 키로 3DES 암호화, (6) 호스트 유일 증명 ID로 AES 암호화, (7) 메모리 장치 유일 증명 ID로 AES 암호화 및 (8) 호스트 및 메모리 장치 증명 ID의 NXOR로 AES 암호화가 그것이다. 이러한 방법들을 이용하는 대신, 또는 추가함에 있어, 메모리 장치(300)의 펌웨어 코드(341)는 콘텐츠 보호 알고리즘의 선택 또는 생성을 위하여 사용되는 추가적인 알고리즘 도는 정책을 특정할 수 있다. 이러한 정책은, 이에 제한되지는 않지만, 호스트 증명서들, 메모리 장치 증명서들, 호스트 환경, 메모리 장치 환경, 콘텐츠의 형식 및 제어기(110)에 의하여 앞서 생성된 가상 머신 코드에 관련된 정보(예, 호스트 가상 머신 코드(346))를 포함하며, 게다가, 알고리즘을 선택하는 것이 미리결정되거나, 슈도-랜덤(pseudo-random)이거나, 또는 랜덤인지 여부를 나타내는 지시를 더 포함한다.
생성 스킴이 사용되는 것에 무관하게, 가상 머신(318)은 생성된 콘텐츠 보호 알고리즘을 RAM(315)에 전송한다(425 단계). 그런 다음, 제어기(310)는 생성된 콘텐츠 보호 알고리즘을 콘텐츠(330A)를 보호하기 위하여 사용하고(예, 콘텐츠(330A)를 암호화 또는 변질시키기 위하여 크립토 엔진(314)을 이용함에 의하여), 호스트 가상 머신 코드(346)를 생성한다. 이는 생성된 콘텐츠 보호 알고리즘에 의하여 보호된 콘텐츠를 보호 해제하기 위한 방법인 지시들을 포함한다. (만약, 요구된다면, 보호 및 생성 단계의 순서는 예약될 수 있다.) 보호된 콘텐츠(310A) 및 호스트 가상 머신 코드(346)는 RAM(315)에 저장되며, 그런 다음, 가상 머신(318)로부터의 크립토 제어 명령에 응답하여, 크립토-엔진(314)에 의하여 판독된다. 그런 다음 크립토 엔진(314)은 메모리 장치(300) 및 호스트(35)가 상호 증명하여 생성된 세션 키를 이용하여 보호된 콘텐츠(310A) 및 호스트 가상 머신 코드(346)를 암호화한다. 예컨대, 크립토-엔진(314)은 AES128 암호화 절차를 수행할 수 있다. 그 다음, 신속한 호스트 및 메모리 장치 유일 ID들과 함께 실제 데이터를 XOR 연산에 의한 데이터는 호스트(350)에 대한 출력이 된다. 그 다음, 암호화되고 보호된 콘텐츠(330A) 및 암호화된 호스트 가상 머신 코드(346)는 호스트 인터페이스(312)에 호스트(35)에 전송되기 위하여 제공된다(440 단계).
도면으로 돌아와서, 도 4b는 호스트 제어기(350)에 의해 수행되는 단계를 도시한 흐름도(400B)를 보인다. 도 4b에 도시된 바와 같이, 호스트(350)의 메모리 장치 인터페이스(361)가 메모리 장치(300)으로부터 암호화되고 보호된 콘텐츠(330A) 및 암호화된 호스트 가상 머신 코드(346)를 수신하면, 암호화되고 보호된 콘텐츠(330A) 및 암호화된 호스트 가상 머신 코드(346)가 호스트의 크립토-엔진(364)에 제공된다(450 단계). 크립토 명령이 크립토 엔진(364)에 전송되는 것(455 단계)에 응답하여, 크립토 엔진(364)는 보안 채널 세션 유일 키를 이용하여 암호화되고 보호된 콘텐츠(330A) 및 암호화된 호스트 가상 머신 코드(346)를 복호화하고, 이러한 복호화된 아이템들을 호스트의 RAM(365)에 저장한다(460 단계). 그 다음, 호스트의 가상 머신(370)은 호스트 가상 머신 코드(346)를 판독하고(465 단계), 이에 포함된 지시드을 이용하여, 보호된 콘텐츠(330A)를 보호 해제한다(예, 이것을 복호화 및/또는 정정함에 의하여). 그리고 호스트의 가상 머신(370)은 보호해제된 콘텐츠(330A)를 RAM(365)에 저장한다(470 단계). 다음으로, 호스트 제어기(360)는 RAM(365)로부터 보호 해제된 콘텐츠(330A)를 판독하고, 이를 표시 장치 및/또는 스피커와 같은, 출력 장치로 전송한다(475 단계).
앞서 언급한 바와 같이, 도 3에 도시된 컴포넌트는 어떤 적합한 방식으로 구현될 수 있다. 하지만, 컴포넌트들이 도 4A 및 도 4B에 도시된 흐름도들(440A, 400B)에서 보인바와 같은 단계를 수행하는 것이 바람직하다. 예컨대, 메모리 장치 제어기(310)는 RAM(315)에서 호스트 가상 머신 코드(346)을 생성 및/또는 변형하고, 호스트(350)에 대한 출력으로써 생성된 콘텐츠 보호 알고리즘에 따라 콘텐츠(330A)를 조작하기 위하여, 메모리 장치 가상 머신 코드(344)를 실행하기 위한 충분한 CPU(313) 프로세싱 파워를 가지는 것이 바람직하다. 또한, 메모리 장치 제어기(310)는 신속한 크립토 연산의 다중 반복을 수행하기 위한 효율적인 데이터 흐름을 허용하는 아키텍처를 가지는 것이 바람직하다. 또한, 메모리 장치 제어기(310)는 상술한 동작들을 위해 충분히 큰 용량의 RAM(315)를 포함하는 것이 바람직하다. 더욱이, 호스트 제어기(360)는 실시간 방식에서 호스트 가상 머신 코드(346)를 실행할 수 있는 능력(capability)을 가지는 것이 바람직하다. 바람직하게, 호스트(350) 및 메모리 장치(300)는 모두 이것의 컴포넌트들 각각이 변경되거나, 샅샅이 관찰되어질 수 없는 보안 실행 환경에서 동작한다.
이러한 실시예가 사용될 수 있는 많은 대안이 존재한다. 일 실시예에서, 호스트 가상 머신 코드(346)를 호스트(350)로 단순히 전송하는 대신, 제어기(310)는 도 3의 화살표에 의해 나타내어지는 것처럼, 호스트 가상 머신 코드(346)을 메모리(320)에 선택적으로 저장할 수 있다. 저장된 호스트 가상 머신 코드(346)는 나중에 콘텐츠 보호 알고리즘이 생성되었을 때, 제어기(310)에 의한 입력으로 나중에 사용되어질 수 있다. 예컨대, 제어기(310)는 다른 콘텐츠 보호 알고리즘을 생성하는 것을 확실히 하기 위해 저장된 앞서 생성된 호스트 가상 머신 코드(346)를 분석할 수 있다. 그래서 동일한 알고리즘이 하나의 열에 두 번 사용할 수 없도록 한다.
다른 대안적 실시예는 호스트 가상 머신 코드(346)의 첫 번째 실현(instance)의 생성과 관련된다. 앞서 설명한 바와 같이, 메모리 장치(300)의 제어기(310)는 컨텐츠가 생생된 콘텐츠 보호 알고리즘으로 보호된 후에(또는 전에) 호스트 가상 머신 코드(346)를 생성한다. 어떤 실시예에서, 콘텐츠(330A)는 처음 메모리 장치(300)에 저장되고, 콘텐츠가 메모리-장치-생성 콘텐츠 보호 알고리즘에 의하여 보호된 후(또는 전)에, 호스트 가상 머신 코드(346)는 메모리 장치(300)가 코드를 생성할 때까지 존재하지 않는다. 다른 실시예에서, 콘텐츠 제공자는 콘텐츠가 메모리 장치(300)에 저장되기 전에 콘텐츠를 이 자신의 콘텐츠 보호 알고리즘으로 보호한다. 그리고 콘텐츠 제공자는, 메모리 장치(300)에, 보호된 콘텐츠(330A) 및 보호된 콘텐츠(330A)를 보호 해제하기 위해 필요한 호스트 가상 머신 코드(346)를 저장한다. 이는 정적 보호 아키텍처와 유사하다. 예컨대, 콘텐츠 제공자는 콘텐츠(330A)를 호스트 가상 머신 코드(346)에 숨겨진 AES 128 키를 이용하여 보호할 수 있다. 따라서 이러한 실시예에서, 메모리 장치(300)에 콘텐츠(330A)를 동적으로 보호하는 것이 요청되기 전에, 호스트 가상 머신 코드(346)는 메모리 장치(300)에 저장된다. 이 실시예에서, 여전히 콘텐츠의 동작 보호를 위해 앞서 설명된 절차에 따른다. 하지만 메모리 장치(300)에 의하여 제공되는 동적 보호는 콘텐츠 제공자에 의해 제공되는 정적 보호의 위에 있다. 따라서 메모리 장치(300)는 동적 보호를 해제하기 위해 생성된 가상 머신 코드뿐만 아니라, 콘텐츠 제공자에 의해 정적 보호를 해제하기 위해 제공된 가상 머신 코드를 호스트(350)에 제공한다. 대안적으로, 메모리 장치(300)는 이의 동적 보호를 적용하기 전에 콘텐츠 제공자에 의해 제공된 가상 머신 코드를 이용하여 정적-보호-콘텐츠를 보호 해제할 수 있다.
또 다른 대안은 메모리 장치(300)에 의해 새성된 콘텐츠 보호 알고리즘을 얼마나 자주 변경할 것인지에 관련된 것이다. 일 실시예에서, 메모리 장치(300)는 호스트(350)로 전송되어지는 데이터로써, 실시간 콘텐츠(330A)의 데이터의 모든 비트들에 대해 단일 콘텐츠 보호 알고리즘이 적용한다. 이 실시예에서, 메모리 장치(300)는 동적으로 각 재생 이벤트에 대해 콘텐츠 보호 알고리즘을 조작한다. 대안적 실시예에서, 메모리 장치(300)는 동적으로 하나의 재생 이벤트 내에서 콘텐츠 보호 알고리즘을 조작한다. 예컨대, 어떤 재생 기간(예, 10 분, 100MB, 또는 비디오 챕터(chapter)) 후, 메모리 장치(300)는 호스트(350)와 시도 응답(challenge-response) 세션을 개시(initiate)할 수 있다.
전술한 상세한 설명은 발명의 정의가 아닌 발명이 취할 수 있는 선택된 형식의 설명으로 이해되어야 할 것이다. 청구된 발명의 범위를 정의하기 위해서는 다음의 청구범위와 이와 동등한 것에 따라야 할 것이다. 마지막으로, 본 발명에서 설명된 바람직한 실시예의 어떤 측면은 하나 또는 그 것들의 조합으로 사용될 수 있음을 유의하여야 한다.
100: 메모리 장치 110: 제어기
120: 메모리 311: 메모리 인터페이스
300: 메모리 장치 310: 제어기
312: 호스트 인터페이스 313: CPU(central processing unit)
314: 크립토-엔진(crypto-engine) 315: RAM(read access memory)
316: ROM(read only memory) 317: 비휘발성 메모리(NVM)
318: 가상 머신(VM) 320: 메모리
350: 호스트 360: 호스트 제어기
361: 메모리 장치 인터페이스 363: CPU
364: 크립토-엔진 365: RAM(read access memory)
366: ROM 370: 가상 머신(VM)

Claims (22)

  1. 콘텐츠를 저장하기 위해 동작하는 메모리; 및 상기 메모리와 통신하는 제어기;를 포함하는 메모리 장치로서,
    상기 제어기는
    (a) 상기 제어기에 의해 앞서 생성된 적어도 하나의 콘텐츠 보호 알고리즘과 다른 콘텐츠 보호 알고리즘을 생성하고;
    (b) 상기 콘텐츠 보호 알고리즘에 따라 상기 콘텐츠를 보호하고;
    (c) 어떻게 보호된 콘텐츠를 보호 해제할 것인지에 대한 지시를 포함하는 가상 머신 코드를 생성하며; 및
    (d) 상기 보호된 콘텐츠 및 상기 가상 머신 코드를 메모리 장치와 통신하는 호스트에 제공하는 것을 특징으로 하는 메모리 장치.
  2. 제1항에 있어서,
    상기 메모리는 콘텐츠 제공자로부터의 어떻게 콘텐츠 보호 알고리즘을 생성하는지에 대한 지시를 저장하며,
    상기 제어기는 상기 콘텐츠 제공자로부터의 지시에 따라 콘텐츠 보호 알고리즘을 생성하는 것을 특징으로 하는 메모리 장치.
  3. 제2항에 있어서,
    상기 콘텐츠 제공자로부터의 상기 지시는 가상 머신 코드의 형식을 취하며,
    상기 제어기는 상기 콘텐츠 제공자로부터의 가상 머신 코드를 실행시키도록 가상 머신을 실행시키는 것을 특징으로 하는 메모리 장치.
  4. 제1항에 있어서, 상기 제어기는
    호스트 증명서, 메모리 장치 증명서, 호스트 환경, 메모리 장치 환경, 콘텐츠의 형식, 앞서 생성된 가상 머신 코드에 관련된 정보, 콘텐츠 보호 알고리즘의 미리 결정된 선택, 콘텐츠 보호 알고리즘의 슈도-랜덤(pseudo-random) 선택 및 콘텐츠 보호 알고리즘의 랜덤 선택 중 적어도 하나에 기초하여
    콘텐츠 보호 알고리즘을 생성하는 것을 특징으로 하는 메모리 장치.
  5. 제1항에 있어서, 상기 제어기는
    다른 콘텐츠 보호 알고리즘을 이용하여
    상기 콘텐츠의 각 재생 세션에서 상기 (a) 내지 (d)를 수행하는 것을 특징으로 하는 메모리 장치.
  6. 제1항에 있어서, 상기 제어기는
    다른 콘텐츠 보호 알고리즘을 이용하여 상기 콘텐츠의 단일 재생 세션 내에서 여러 번 상기 (a) 내지 (d)를 수행하는 것을 특징으로 하는 메모리 장치.
  7. 제1항에 있어서, 상기 제어기는
    상기 콘텐츠의 재생 동안 실시간으로 상기 (a) 내지 (d)를 수행하는 것을 특징으로 하는 메모리 장치.
  8. 제1항에 있어서, 상기 제어기는
    상기 보호된 콘텐츠 및 상기 가상 머신 코드를 상기 호스트에 제공하기 전에, 상기 호스트와 상호간에 증명을 수행하는 것을 특징으로 하는 메모리 장치.
  9. 제1항에 있어서, 상기 제어기는
    상기 보호된 콘텐츠 및 상기 가상 머신 코드를 호스트에 제공하기에 앞서, 상기 보호된 콘텐츠 및 상기 가상 머신 코드를 암호화하는 것을 특징으로 하는 메모리 장치.
  10. 제1항에 있어서, 상기 제어기는
    상기 가상 머신 코드를 상기 메모리에 저장하는 것을 특징으로 하는 메모리 장치.
  11. 제1항에 있어서,
    상기 메모리 장치에 저장된 상기 콘텐츠는 제2 콘텐츠 보호 알고리즘에 따라 보호되고,
    상기 메모리는 어떻게 상기 제2 콘텐츠 보호 알고리즘에 따라 보호된 콘텐츠를 보호 해제할 것인지에 대한 지시를 포함하는 제2 가상 머신 코드를 저장하며,
    상기 제어기는 제2 가상 머신 코드를 호스트에 제공하는 것을 특징으로 하는 메모리 장치.
  12. 메모리 장치는 콘텐츠를 저장하기 위해 동작하는 메모리를 포함하며, 상기 메모리 장치의 제어기에서 수행되는, 상기 메모리 장치에 저장된 콘텐츠의 적응적 보호를 위한 방법으로서,
    (a) 상기 제어기에 의해 앞서 생성된 적어도 하나의 콘텐츠 보호 알고리즘과 다른 콘텐츠 보호 알고리즘을 생성하는 단계;
    (b) 상기 콘텐츠 보호 알고리즘에 따라 상기 콘텐츠를 보호하는 단계;
    (c) 어떻게 보호된 콘텐츠를 보호 해제할 것인지에 대한 지시를 포함하는 가상 머신 코드를 생성하는 단계; 및
    (d) 상기 보호된 콘텐츠 및 상기 가상 머신 코드를 상기 메모리 장치와 통신하는 호스트에 제공하는 단계를 포함하는 것을 특징으로 하는 콘텐츠의 적응적 보호를 위한 방법.
  13. 제12항에 있어서,
    상기 메모리는 콘텐츠 제공자로부터의 어떻게 콘텐츠 보호 알고리즘을 생성하는지에 대한 지시를 저장하며,
    상기 콘텐츠 보호 알고리즘은 콘텐츠 제공자로부터의 상기 지시에 따라 생성되는 것을 특징으로 하는 콘텐츠의 적응적 보호를 위한 방법.
  14. 제13항에 있어서,
    상기 콘텐츠 제공자로부터의 상기 지시는 가상 머신 코드의 형식을 취하며,
    상기 방법은
    상기 콘텐츠 제공자로부터의 상기 가상 머신 코드를 실행하는 단계;를 더 포함하는 것을 특징으로 하는 콘텐츠의 적응적 보호를 위한 방법.
  15. 제12항에 있어서, 상기 콘텐츠 보호 알고리즘은
    호스트 증명서, 메모리 장치 증명서, 호스트 환경, 메모리 장치 환경, 콘텐츠의 형식, 앞서 생성된 가상 머신 코드에 관련된 정보, 콘텐츠 보호 알고리즘의 미리 결정된 선택, 콘텐츠 보호 알고리즘의 슈도-랜덤(pseudo-random) 선택 및 콘텐츠 보호 알고리즘의 랜덤 선택 중 적어도 하나에 기초하여
    생성되는 것을 특징으로 하는 콘텐츠의 적응적 보호를 위한 방법.
  16. 제12항에 있어서, 상기 (a) 내지 (d)는
    다른 콘텐츠 보호 알고리즘을 이용하여 상기 콘텐츠의 각 재생 세션에서 수행되는 것을 특징으로 하는 콘텐츠의 적응적 보호를 위한 방법.
  17. 제12항에 있어서, 상기 (a) 내지 (d)는
    다른 콘텐츠 보호 알고리즘을 이용하여 상기 콘텐츠의 단일 재생 세션 내에서 여러 번 수행되는 것을 특징으로 하는 콘텐츠의 적응적 보호를 위한 방법.
  18. 제12항에 있어서, 상기 (a) 내지 (d)는
    상기 콘텐츠의 재생 동안 실시간으로 수행되는 것을 특징으로 하는 콘텐츠의 적응적 보호를 위한 방법.
  19. 제12항에 있어서,
    상기 보호된 콘텐츠 및 상기 가상 머신 코드를 상기 호스트에 제공하기 전에, 상기 호스트와 상호간에 증명을 수행하는 단계;를 더 포함하는 것을 특징으로 하는 콘텐츠의 적응적 보호를 위한 방법.
  20. 제12항에 있어서,
    상기 보호된 콘텐츠 및 상기 가상 머신 코드를 호스트에 제공하기에 앞서, 상기 보호된 콘텐츠 및 상기 가상 머신 코드를 암호화하는 단계;를 더 포함하는 것을 특징으로 하는 콘텐츠의 적응적 보호를 위한 방법.
  21. 제12항에 있어서,
    상기 가상 머신 코드를 상기 메모리에 저장하는 단계;를 더 포함하는 것을 특징으로 하는 콘텐츠의 적응적 보호를 위한 방법.
  22. 제12항에 있어서,
    상기 메모리 장치에 저장된 상기 콘텐츠는 제2 콘텐츠 보호 알고리즘에 따라 보호되고,
    상기 메모리는 어떻게 상기 제2 콘텐츠 보호 알고리즘에 따라 보호된 콘텐츠를 보호 해제할 것인지에 대한 지시를 포함하는 제2 가상 머신 코드를 저장하며,
    상기 방법은 제2 가상 머신 코드를 호스트에 제공하는 단계를 더 포함하는 것을 특징으로 하는 콘텐츠의 적응적 보호를 위한 방법.
KR20117025446A 2009-04-28 2010-04-08 콘텐츠의 적응적 보호를 위한 메모리 장치 및 방법 KR20120007012A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/431,353 2009-04-28
US12/431,353 US9075999B2 (en) 2009-04-28 2009-04-28 Memory device and method for adaptive protection of content

Publications (1)

Publication Number Publication Date
KR20120007012A true KR20120007012A (ko) 2012-01-19

Family

ID=42244540

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20117025446A KR20120007012A (ko) 2009-04-28 2010-04-08 콘텐츠의 적응적 보호를 위한 메모리 장치 및 방법

Country Status (5)

Country Link
US (1) US9075999B2 (ko)
EP (1) EP2425369B1 (ko)
KR (1) KR20120007012A (ko)
CN (1) CN102460456B (ko)
WO (1) WO2010126695A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140089561A1 (en) 2012-09-26 2014-03-27 Kiran Pangal Techniques Associated with Protecting System Critical Data Written to Non-Volatile Memory
US8918868B2 (en) * 2013-01-15 2014-12-23 Netronome Systems, Incorporated Compartmentalization of the user network interface to a device
KR102144509B1 (ko) * 2014-03-06 2020-08-14 삼성전자주식회사 근접 통신 방법 및 장치
US10169124B2 (en) * 2014-12-16 2019-01-01 Samsung Electronics Co., Ltd. Unified object interface for memory and storage system
US10102151B2 (en) * 2015-11-06 2018-10-16 International Business Machines Corporation Protecting a memory from unauthorized access
CN108418893A (zh) * 2018-03-20 2018-08-17 深圳市闪联信息技术有限公司 一种智能设备固件安全升级的方法
CN111404692B (zh) * 2020-03-05 2023-04-07 湖南城市学院 一种基于大数据的区块链身份信息确认系统及确认方法
CN113094210B (zh) * 2021-04-21 2023-09-22 北京鼎普科技股份有限公司 一种windows平台进程及文件守护方法及系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20020108054A1 (en) * 2001-02-02 2002-08-08 Moore Christopher S. Solid-state memory device storing program code and methods for use therewith
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
US7400729B2 (en) * 2001-12-28 2008-07-15 Intel Corporation Secure delivery of encrypted digital content
CN1416237A (zh) 2002-10-01 2003-05-07 齐宇庆 一种加密方法及装置
EP1642206B1 (en) * 2003-07-07 2017-12-20 Irdeto B.V. Reprogrammable security for controlling piracy and enabling interactive content
EP2110769B1 (en) 2004-02-03 2012-12-05 SanDisk Secure Content Solutions, Inc. Protection of digital data content
WO2005088893A1 (en) * 2004-02-13 2005-09-22 Psycrypt, Inc. Method and apparatus for cryptographically processing data
KR100608605B1 (ko) * 2004-09-15 2006-08-03 삼성전자주식회사 디지털 저작권 관리 방법 및 장치
US20060126836A1 (en) * 2004-12-10 2006-06-15 Hector Rivas System and method for dynamic generation of encryption keys
US7493656B2 (en) * 2005-06-02 2009-02-17 Seagate Technology Llc Drive security session manager
WO2006133059A2 (en) 2005-06-03 2006-12-14 Mo-Dv, Inc. Content protection system and method for memory cards in electronic devices
KR100703811B1 (ko) 2006-02-28 2007-04-09 삼성전자주식회사 휴대용 저장장치 및 휴대용 저장장치의 데이터 관리 방법
US8091084B1 (en) * 2006-04-28 2012-01-03 Parallels Holdings, Ltd. Portable virtual machine
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
US7725614B2 (en) * 2006-08-08 2010-05-25 Sandisk Corporation Portable mass storage device with virtual machine activation
US20090132813A1 (en) 2007-11-08 2009-05-21 Suridx, Inc. Apparatus and Methods for Providing Scalable, Dynamic, Individualized Credential Services Using Mobile Telephones
US8539551B2 (en) * 2007-12-20 2013-09-17 Fujitsu Limited Trusted virtual machine as a client
US20100027786A1 (en) * 2008-02-14 2010-02-04 Patrick Faith Dynamic encryption authentication

Also Published As

Publication number Publication date
EP2425369A1 (en) 2012-03-07
US9075999B2 (en) 2015-07-07
WO2010126695A1 (en) 2010-11-04
EP2425369B1 (en) 2014-12-10
US20100275038A1 (en) 2010-10-28
CN102460456A (zh) 2012-05-16
CN102460456B (zh) 2015-07-15

Similar Documents

Publication Publication Date Title
US9135417B2 (en) Apparatus for generating secure key using device and user authentication information
TWI715619B (zh) 用於硬體強制單向密碼學的處理器、方法及系統
US8972723B2 (en) Storage device and method for providing a partially-encrypted content file to a host device
KR101397637B1 (ko) 다중 사용자 감응 코드 및 데이터를 보호하는 아키텍처를 포함하는 방법 및 장치
JP6289029B2 (ja) 保安コンテンツを処理するシステムオンチップ及びそれを含むモバイル装置
JP4799067B2 (ja) プログラムコードの安全な実行のためのシステムおよび方法
US9436812B2 (en) Platform-hardened digital rights management key provisioning
KR20120007012A (ko) 콘텐츠의 적응적 보호를 위한 메모리 장치 및 방법
US9342666B2 (en) Providing security support for digital rights management in different formats
US9047445B2 (en) Memory device and method for updating a security module
JP2013530454A (ja) ホストデバイスのキャッシュをバイパスすることで、ストレージデバイスの仮想ファイルにアクセスするホストデバイスおよび方法
KR20130140948A (ko) 저장 장치의 식별자에 기반한 컨텐츠의 암복호화 장치 및 방법
TW200830830A (en) Hard disc streaming cryptographic operations with embedded authentication
CN107590395B (zh) 适用于云环境的多层数据加密方法、装置、设备及系统
US9652624B2 (en) Method, host, storage, and machine-readable storage medium for protecting content
TW201340692A (zh) 用以保護並安全地傳遞媒體內容之方法,裝置,及系統
CN104217175A (zh) 一种数据读写方法和装置
JP2012059258A (ja) 電子キー保護システム及びその方法
WO2021044578A1 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
EP2098975A1 (en) Copy-protected software cartridge
Ciesla et al. You, Your Organization, and Cryptographic Security

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