KR101712080B1 - 신뢰 유닛들 사이의 키 리프레시 - Google Patents

신뢰 유닛들 사이의 키 리프레시 Download PDF

Info

Publication number
KR101712080B1
KR101712080B1 KR1020157022260A KR20157022260A KR101712080B1 KR 101712080 B1 KR101712080 B1 KR 101712080B1 KR 1020157022260 A KR1020157022260 A KR 1020157022260A KR 20157022260 A KR20157022260 A KR 20157022260A KR 101712080 B1 KR101712080 B1 KR 101712080B1
Authority
KR
South Korea
Prior art keywords
key
session key
session
encrypted
transcoder
Prior art date
Application number
KR1020157022260A
Other languages
English (en)
Other versions
KR20150107858A (ko
Inventor
에드워드 씨 에프
자오후이 얀
다니엘 피 존슨
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20150107858A publication Critical patent/KR20150107858A/ko
Application granted granted Critical
Publication of KR101712080B1 publication Critical patent/KR101712080B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)

Abstract

암호화 로직은 특정 세션 키를 식별하고, 특정 세션 키는 제 1 디바이스로부터 송신될 콘텐츠를 암호화하는데 사용하기 위한 복수의 세션 키 중 하나이다. 암호화 로직은 암호화된 특정 콘텐츠를 획득하기 위해 특정 콘텐츠를 특정 세션 키로 암호화하는 것이다. I/O 로직은 특정 콘텐츠가 키 리프레시 구조와 함께 송신되게 할 수 있도록 제공되고, 키 리프레시 구조는 특정 세션 키가 특정 콘텐츠를 암호화하는데 사용되는 것을 식별하는 것이다.

Description

신뢰 유닛들 사이의 키 리프레시{KEY REFRESH BETWEEN TRUSTED UNITS}
본 개시는 컴퓨팅 시스템에 관한 것으로, 특히 컴퓨팅 시스템의 컴포넌트들 사이의 암호화에 관한 것이다.
전자 장치는 사용자의 일상 생활에서 보다 복잡하고 유비쿼터스화함(ubiquitous)에 따라 더욱 더 다양한 요구조건이 전자 장치에 대해 요구된다. 많은 이러한 요구조건을 충족시키기 위해, 많은 전자 장치는 CPU, 통신 디바이스, 그래픽 가속장치 등과 같은 많은 상이한 디바이스를 포함한다. 여러 상황에서, 이들 디바이스 사이에 많은 통신량이 존재할 수 있다. 또한, 많은 사용자는 장치 성능에 관해 높은 기대치를 갖는다. 멀티미디어 콘텐츠의 표현 및 소비에서 사용될 장치의 기능이 또한 증가한다. 일부 멀티미디어 콘텐츠는 저작권 및 다른 지적재산권 법 및 계약에 의해 보호된다. 장치는 이러한 보호되는 콘텐츠의 보호를 보조하는 하드웨어 및 소프트웨어 기반 특징으로 구성되었다.
도 1은 멀티코어 프로세서를 포함하는 예시의 컴퓨팅 시스템을 나타내는 블록도를 도시한다.
도 2는 적어도 일례의 실시예에 따른 게이트웨이 디바이스를 포함하는 예시의 시스템을 도시하는 개략화된 블록도이다.
도 3은 적어도 하나의 일례의 실시예에 따른 예시의 게이트웨이 디바이스와 연관된 컴포넌트를 도시하는 개략화된 블록도이다.
도 4는 적어도 일례의 실시예에 따른 예시의 게이트웨이 디바이스를 통해 제공되는 미디어 콘텐츠의 암호화와 연관된 인터랙션을 도시하는 개략화된 블록도이다.
도 5는 적어도 일례의 실시예에 따른 예시의 게이트웨이 디바이스와 연관된 예시의 컴포넌트 사이의 인터랙션을 도시하는 개략화된 블록도이다.
도 6은 적어도 일례의 실시예에 따른 예시의 게이트웨이 디바이스의 예시의 원자를 도시하는 개략화된 블록도이다.
도 7은 적어도 일례의 실시예에 따른 예시의 게이트웨이 디바이스를 통해 제공되는 미디어 콘텐츠의 암호화와 연관된 동작을 도시하는 흐름도이다.
도 8a 내지 도 8b는 적어도 일례의 실시예에 따른 예시의 게이트웨이 디바이스를 통해 제공되는 미디어 콘텐츠의 암호화와 연관된 동작을 도시하는 흐름도이다.
도 9는 프로세서를 포함하는 컴퓨팅 시스템에 대한 다른 개략화된 블록도를 도시한다.
다음의 설명에서, 본 발명의 완전한 이해를 제공하기 위해, 특정 타입의 프로세서 및 시스템 구성, 특정 하드웨어 구조, 특정 구조적 및 미세 구조 상태, 특정 레지스터 구성, 특정 명령어 타입, 특정 시스템 컴포넌트, 특정 측정치/높이, 특정 프로세서 파이프라인 단계 및 동작 등과 같은, 다양한 특정 상세가 제시된다. 그러나, 이들 특정 상세가 본 발명을 실시하는데 이용될 필요가 없다는 것이 당업자에게 명백해질 것이다. 다른 경우에, 특정한 그리고 대안적인 프로세서 아키텍쳐, 설명된 알고리즘에 대한 특정 로직 회로/코드, 특정 펌웨어 코드, 특정 상호접속 동작, 특정 로직 구성, 코드에서 특정 알고리즘 표현, 특정한 전원 차단 및 게이팅 기술/로직과 같은, 잘 알려진 컴포넌트 또는 방법 및 컴퓨터 시스템의 다른 특정 동작 상세는 본 발명을 불필요하게 불분명하게 하는 것을 방지하도록 자세하게 설명되지 않았다.
다음의 실시예는 컴퓨팅 플랫폼 또는 마이크로프로세서와 같은, 특정 집적 회로에서의 에너지 보존 및 에너지 효율과 관련하여 설명될 수 있지만, 다른 실시예는 다른 타입의 집적 회로 및 로직 디바이스에 대해 적용가능하다. 본원에 설명된 실시예의 유사한 기술 및 개시는 더 양호한 에너지 효율성 및 에너지 보존으로부터 이익을 얻을 수 있는 다른 타입의 회로 또는 반도체 디바이스에 적용될 수 있다. 예를 들어, 개시된 실시예는 데스크탑 컴퓨터 시스템 또는 울트라북™에 제한되지 않는다. 그리고 핸드헬드 디바이스, 태블릿, 다른 얇은 노트북, 시스템 온 칩(SOC) 디바이스 및 내장된 애플리케이션과 같은, 다른 디바이스에서 또한 사용될 수 있다. 핸드헬드 디바이스의 일부 예시는 셀룰러 폰, 인터넷 프로토콜 디바이스, 디지털 카메라, 개인용 디지털 보조장치(PDA), 및 핸드헬드 PC를 포함한다. 내장된 애플리케이션은 통상적으로, 마이크로컨트롤러, 디지털 신호 프로세서(DSP), 시스템 온 칩, 네트워크 컴퓨터(NetPC), 셋톱 박스, 네트워크 허브, 광역 네트워크(WAN) 스위치, 또는 이하에서 개시되는 기능 및 동작을 수행할 수 있는 임의의 다른 시스템을 포함한다. 또한, 본원에 설명된 장치, 방법 및 시스템은 물리적인 컴퓨팅 디바이스에 제한되지 않지만, 또한 에너지 보존 및 효율성에 대한 소프트웨어 최적화에 관련될 수 있다. 이하의 설명에서 쉽게 명백해지는 바와 같이, 본원에서 설명된 방법, 장치, 및 시스템의 실시예는(하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합과 관련되어있는지와 상관 없이) 성능 고려사항과 균형을 이루는 '녹색 기술'에 중요한 것이다.
컴퓨팅 시스템이 진보함에 따라, 내부의 컴포넌트는 더 복잡해지고 있다. 그 결과로서, 컴포넌트 사이를 연결 및 통신하는 상호접속 아키텍쳐는 또한 대역폭 요구조건이 최적 컴포넌트 동작을 충족시키는 것을 보장하도록 복잡도가 또한 증가하고 있다. 또한, 상이한 시장 세그먼트는 시장 수요에 맞는 상이한 양상의 상호접속 아키텍쳐를 요구한다. 예를 들어, 서버는 더 높은 성능을 요구하고, 반면 모바일 생태계는 종종 절전에 대한 전체 성능을 희생하는 것이 가능하다. 그러나, 최대 절전으로 최고 가능한 성능을 제공하는 것이 대부분의 패브릭의 단일 목적이다. 이하에서, 다수의 상호접속부가 논의되고, 이는 본원에 설명된 본 발명의 양상으로부터 잠재적으로 이익을 얻는 것이다.
도 1을 참조하면, 멀티코어 프로세서를 포함하는 컴퓨팅 시스템을 위한 블록도의 실시예가 도시된다. 프로세서(100)는 마이크로프로세서, 내장된 프로세서, 디지털 신호 프로세서(DSP), 네트워크 프로세서, 핸드헬드 프로세서, 애플리케이션 프로세서, 코프로세서, 시스템 온 칩(SOC), 또는 코드를 실행하는 다른 디바이스와 같은, 임의의 프로세서 또는 프로세싱 디바이스를 포함한다. 프로세서(100)는, 일 실시예에서, 비대칭 코어 또는 대칭 코어(도시된 실시예)를 포함할 수 있는 적어도 두 개의 코어-코어 (101 및 102)-를 포함한다. 그러나, 프로세서(100)는 대칭 또는 비대칭이 될 수 있는 임의의 수의 프로세싱 요소를 포함할 수 있다.
일 실시예에서, 프로세서 요소는 소프트웨어 쓰레드를 지원하는 하드웨어 또는 로직을 지칭한다. 하드웨어 프로세싱 요소의 예시들은, 쓰레드 유닛, 쓰레드 슬롯, 쓰레드, 프로세싱 유닛, 콘텍스트, 콘텍스트 유닛, 로직 프로세서, 하드웨어 프로세서, 코어, 및/또는 실행 상태 또는 구조적 상태와 같은, 프로세서에 대한 상태를 유지하는 것이 가능한, 임의의 다른 요소를 포함한다. 즉, 일 실시예에서, 프로세서 요소는 소프트웨어 쓰레드, 운영 시스템, 애플리케이션, 또는 다른 코드와 같은, 코드와 독립적으로 연관되는 것이 가능한 임의의 하드웨어를 지칭한다. 물리적 프로세서(또는 프로세서 소켓)는 통상적으로 코어 또는 하드웨어 쓰레드와 같은, 임의의 수의 다른 프로세싱 요소를 잠재적으로 포함하는 집적 회로를 지칭한다.
코어는 종종 독립적인 아키텍쳐 상태를 유지하는 것이 가능한 집적 회로 상에 위치된 로직을 지칭하고, 각각 독립적으로 유지되는 아키텍쳐 상태는 적어도 일부 전용된 실행 리소스와 연관된다. 코어와 대조적으로, 하드웨어 쓰레드는 통상적으로 독립적인 아키텍쳐 상태를 유지하는 것이 가능한 집적 회로 상에 위치되는 임의의 로직을 지칭하고, 독립적으로 유지되는 아키텍쳐 상태는 실행 리소스로의 액세스를 공유한다. 알 수 있는 바와 같이, 특정 리소스가 공유되고 다른 리소스들이 아키텍쳐 상태에 전용될 때 하드웨어 쓰레드와 코어의 명명법 간의 경계가 중첩하게 된다. 그러나 종종, 코어 및 하드웨어 쓰레드는 운영 시스템에 의해 개별 로직 프로세서로서 간주되고, 여기서 운영 시스템은 각각의 로직 프로세서에 대한 동작을 개별적으로 스케쥴링하는 것이 가능하다.
도 1에 도시된 것과 같은, 물리적 프로세서(100)는 두 개의 코어-코어(101 및 102)-를 포함한다. 여기서, 코어(101 및 102)는 대칭 코어, 즉 동일한 구성, 기능적 유닛, 및/또는 로직을 갖는 코어로서 고려된다. 다른 실시예에서, 코어(101)는 비순차적(out-of-order) 프로세서 코어를 포함하고, 반면 코어(102)는 순차적(in-order) 프로세서 코어를 포함한다. 그러나, 코어(101 및 102)는 네이티브 코어, 소프트웨어 관리 코어, 네이티브 명령어 세트 아키텍쳐(ISA)를 실행하도록 구성된 코어, 해석된 명령어 세트 아키텍쳐(ISA)를 실행하도록 구성된 코어, 통합 설계(co-designed) 코어, 또는 다른 알려진 코어와 같은 임의의 타입의 코어로부터 개별적으로 선택될 수 있다. 이종 코어 환경(즉, 비대칭 코어)에서, 이진 해석과 같은, 일부 형태의 해석은, 하나의 코어 또는 양쪽 코어 상에서 코드를 스케쥴링 또는 실행하도록 활용될 수 있다. 또한 추가 논의로, 코어(101)에 도시된 기능적 유닛은 이하에서 더 자세하게 설명되고, 코어(102)의 유닛이 도시된 실시예와 유사한 방식으로 동작한다.
도시된 바와 같이, 코어(101)는 하드웨어 쓰레드 슬롯(101a 및 101b)로서 또한 지칭될 수 있는, 두 개의 하드웨어 쓰레드(101a 및 101b)를 포함한다. 따라서, 일 실시예에서, 운영 시스템과 같은 소프트웨어 엔티티는 프로세서(100)를 잠재적으로 네 개의 개별 프로세서, 즉, 네 개의 소프트웨어 쓰레드를 동시에 실행하는 것이 가능한 네 개의 로직 프로세서 또는 프로세싱 요소로서 간주한다. 앞서 언급한 바와 같이, 제 1 쓰레드는 아키텍쳐 상태 레지스터(101a)와 연관되고, 제 2 쓰레드는 아키텍쳐 상태 레지스터(101b)와 연관되고, 제 3 쓰레드는 아키텍쳐 상태 레지스터(102a)와 연관되고, 제 4 쓰레드는 아키텍쳐 상태 레지스터(102b)와 연관될 수 있다. 따라서, 아키텍쳐 상태 레지스터(101a, 101b, 102a, 및 102b)는 위에서 설명된 바와 같은, 프로세싱 요소, 쓰레드 슬롯 또는 쓰레드 유닛으로서 지칭될 수 있다. 도시된 바와 같이, 아키텍쳐 상태 레지스터(101a)는 아키텍쳐 상태 레지스터(101b)에서 복제되어서, 개별적인 아키텍쳐 상태/콘텍스트는 로직 프로세서(101a) 및 로직 프로세서(101b)에 대해 저장되는 것이 가능하다. 코어(101)에서, 할당기의 명령어 포인터 및 재명명(renaming) 로직과 같은, 다른 더 작은 리소스 및 재명명기(renamer) 블록(130)이 또한 쓰레드(101a 및 101b)에 대해 복제될 수 있다. 재순차/철회(retirement) 유닛(135)의 재순차 버퍼, ILTB(120), 로딩/저장 버퍼, 및 큐(queues)와 같은 일부 리소스는 파티셔닝을 통해 공유될 수 있다. 범용 내부 레지스터, 페이지-테이블 기반 레지스터, 로우 레벨 데이터 캐시 및 데이터-TLB(115), 실행 유닛(140), 및 비순차 유닛(135)의 부분과 같은, 다른 리소스는 잠재적으로 완전하게 공유된다.
프로세서(100)는 종종 완전하게 공유되고, 파티셔닝을 통해 공유되거나 프로세싱 요소에 의한/대해 전용될 수 있는 다른 리소스를 포함한다. 도 1에서, 프로세서의 도시적인 로직 유닛/리소스를 갖는 전적으로 예시적인 프로세서의 실시예가 도시된다. 프로세서는, 임의의 이들 기능적 유닛을 포함하거나 제거할 수 있을 뿐만 아니라 도시되지 않을 임의의 다른 알려진 기능적 유닛, 로직 또는 펌웨어를 포함할 수 있다는 것에 유의해야 한다. 도시된 바와 같이, 코어(101)는 간략화된, 대표적인 비순차적(OOO) 프로세서 코어를 포함한다. 그러나, 순차적 프로세서는 상이한 실시예에서 활용될 수 있다. OOO 코어는 브랜치가 실행되고/취해지는 것을 예측하는 브랜치 타겟 버퍼(120) 및 명령어를 위한 해석 엔트리를 저장하는 명령어 해석 버퍼(instruction-translation butter;I-TLB)(120)를 포함한다.
코어(101)는 페치된 요소를 디코딩하는 페치 유닛(120)에 연결되는 디코드 모듈(125)을 더 포함한다. 일 실시예에서, 페치 로직은 쓰레드 슬롯(101a, 101b) 각각과 연관된 개별적인 시퀀서(sequencer)를 포함한다. 일반적으로 코어(101)는 프로세서(100) 상에서 실행가능한 명령어를 정의/특정하는 제 1 ISA와 연관된다. 종종 제 1 ISA의 부분인 머신 코드 명령어는 수행될 명령어 또는 동작을 참조/특정하는, 명령어의 일부(옵코드로서 지칭됨)를 포함한다. 디코드 로직(125)은 이들의 옵코드로부터 이들의 명령어를 인식하고 제 1 ISA에 의해 정의되는 것으로서 프로세싱을 위한 파이프라인에서 디코딩된 명령어를 전달하는 회로를 포함한다. 예를 들어, 이하에서 더 자세하게 논의되는 바와 같이, 일 실시예에서, 디코더(125)는 거래 명령어와 같은 특정 명령어를 인식하도록 설계 또는 구성된 로직을 포함한다. 디코더(125)에 의한 인식의 결과로서, 아키텍쳐 또는 코어(101)는 적합한 명령어와 연관된 태스크를 수행하는 사전정의된 동작을 취한다. 본원에서 설명된 임의의 태스크, 블록, 동작, 및 방법은 단일 또는 다수의 명령어에 응답하여 수행될 수 있음에 유의하는 것이 중요하고, 이들 중 일부는 새로운 또는 오래된 명령어가 될 수 있다. 일 실시예에서, 디코더(126)는 동일한 ISA(또는 이들의 서브세트)를 인식한다. 대안적으로, 이종 코어 환경에서, 디코더(126)는 제 2 ISA(제 1 ISA 또는 구분된 ISA의 서브세트 중 하나)를 인식한다.
일례에서, 할당기 및 재명명기 블록(130)은 명령어 프로세싱 결과를 저장하는 레지스터 파일과 같은 리소스를 보존하는 할당기를 포함한다. 그러나, 쓰레드(101a 및 101b)는 잠재적으로 비순차적 실행을 가능하게 하고, 여기서 할당기 및 재명명기 블록(130)은 또한 명령어 결과를 추적하는 재순차 버퍼와 같은, 다른 리소스를 보존한다. 유닛(130)은 또한 프로세서(100) 내부의 다른 레지스터로 프로그램/명령어 참조 레지스터를 재명명하는 레지스터 재명명기를 포함할 수 있다. 재순차/철회 유닛(135)은 비순차적 실행 및 비순차적으로 실행된 명령어의 나중 순차적 철회를 지원하는, 위에서 언급된 재순차 버퍼, 로드 버퍼, 및 저장 버퍼와 같은 컴포넌트를 포함한다.
일 실시예에서, 스케쥴러 및 실행 유닛 블록(140)은 실행 유닛 상에서 명령어/동작을 스케쥴링하는 스케쥴러 유닛을 포함한다. 예를 들어, 플로팅 포인트 명령어는 사용가능한 플로팅 포인트 실행 유닛을 갖는 실행 유닛의 일부에 대해 스케쥴링된다. 실행 유닛과 연관된 레지스터 파일은 또한 정보 명령어 프로세싱 결과를 저장하도록 포함된다. 예시적인 실행 유닛은 플로팅 포인트 실행 유닛, 정수 실행 유닛, 점프 실행 유닛, 로드 실행 유닛, 저장 실행 유닛 및 다른 알려진 실행 유닛을 포함한다.
더 하위 레벨 데이터 캐시 및 데이터 해석 버퍼(D-TLB)(150)는 실행 유닛(140)에 연결된다. 최근 저장될 데이터 캐시는 메모리 일관성(coherency) 상태로 잠재적으로 유지되는, 데이터 오퍼랜드와 같은, 요소에 대해 사용되고/동작되는 것이다. 최근 저장될 D-TLB는 물리적 어드레스 해석에 대해 가상적/선형적인 것이다. 특정 예시로서, 프로세서는 물리적 메모리를 복수의 가상 페이지로 나누는 페이지 테이블 구조를 포함할 수 있다.
여기서, 코어(101 및 102)는 온 칩 인터페이스(110)와 연관되는 제 2 레벨 캐시와 같은, 더 상위 레벨 또는 극외(further-out) 캐시로의 액세스를 공유한다. 더 상위 레벨 또는 극외는 증가하는 또는 실행 유닛으로부터 더 멀어지는 캐시 레벨을 지칭한다. 일 실시예에서, 더 상위 레벨 캐시는 최종 레벨 데이터 캐시-제 2 또는 제 3 레벨 데이터 캐시와 같은 프로세서(100) 상에서의 메모리 계층에서 최종 캐시이다. 그러나, 더 상위 레벨 캐시는 명령어 캐시와 연관되거나 포함될 수 있지만, 이에 제한되지 않는다. 대신에 트레이스 캐시-명령어 캐시의 타입-는 디코딩된 트레이스를 최근에 저장하도록 디코더(125) 뒤에 연결될 수 있다. 여기서, 명령어는 다수의 마이크로 명령어(마이크로 동작)로 디코딩할 수 있는, 매크로 명령어(즉, 디코더에 의해 인식되는 일반적인 명령어)를 잠재적으로 지칭한다.
도시된 구성에서, 프로세서(100)는 또한 온 칩 인터페이스 모듈(110)을 포함한다. 이제까지, 이하에서 더 자세하게 설명되는 메모리 제어기는 프로세서(100)의 외부의 컴퓨팅 시스템에 포함되었다. 이 시나리오에서, 온 칩 인터페이스(110)는 시스템 메모리(175), 칩셋(종종 메모리(175)에 연결하는 메모리 제어기 허브 및 주변 디바이스를 연결하는 I/O 제어기 허브를 포함함), 메모리 제어기 허브, 노스브릿지, 또는 다른 집적 회로와 같은 프로세서(100)의 외부의 디바이스와 통신하는 것이다. 이 시나리오에서, 버스(105)는 멀티 드롭 버스, 포인트 투 포인트 상호접속부, 직렬 상호접속부, 병렬 버스, 코히런트(예를 들어, 캐시 코히런트) 버스, 계층화된 프로토콜 아키텍쳐, 차동 버스, 및 GTL 버스와 같은 임의의 알려진 상호접속부를 포함할 수 있다.
메모리(175)는 프로세서(100)에 전용되거나 시스템에서 다른 디바이스와 공유될 수 있다. 메모리(175) 타입의 일반적인 예시는 DRAM, SRAM, 비휘발성 메모리(NV 메모리) 및 다른 알려진 저장 디바이스를 포함한다. 디바이스(180)는 그래픽 가속장치, 메모리 제어기 허브에 연결된 프로세서 또는 카드, I/O 제어기 허브에 연결되는 데이터 저장부, 무선 송수신기, 플래시 디바이스, 오디오 제어기, 네트워크 제어기, 또는 미디어 게이트웨이 컴퓨팅 시스템에서의 트랜스코더와 같은, 다른 알려진 디바이스를 포함할 수 있다는 것에 유의해야 한다.
그러나 최근에, 더 많은 로직 및 디바이스가 SOC와 같은 단일 다이 상에 집적됨에 따라, 이들 디바이스의 각각은 프로세서(100) 상에서 통합될 수 있다. 예를 들어, 일 실시예에서, 메모리 제어기 허브는 동일한 패키지 및/또는 프로세서(100)를 갖는 다이 상에 있다. 여기서, 코어(온 코어(on-core) 부분)(100)의 일부는 메모리(175) 또는 다른 디바이스(180)와 같은 다른 디바이스와 인터페이싱하기 위한 하나 이상의 제어기를 포함한다. 이러한 디바이스와 인터페이싱하기 위한 상호접속부 및 제어기를 포함하는 구성은 종종 온 코어(또는 언 코어(un-core) 구성)로서 지칭된다. 예시로서, 온 칩 인터페이스(110)는 오프 칩 통신을 위한 온 칩 통신 및 고속 직렬 포인트 투 포인트 링크(105)를 위한 링 상호접속부를 포함한다. 그러나, 시스템 온 칩(SOC) 환경에서, 네트워크 인터페이스, 코프로세서, 메모리(175), 그래픽 프로세서, 및 임의의 다른 알려진 컴퓨터 디바이스/인터페이스와 같은 더 많은 디바이스는 작은 폼 팩터에 고기능성 및 저전력 소비를 제공하는 단일 다이 또는 집적 회로 상에 집적될 수 있다.
일 실시예에서, 프로세서(100)는 본원에 설명된 장치 및 방법을 지원하거나 이들과 인터페이싱하는 애플리케이션 코드(176)를 컴파일, 해석, 및/또는 최적화하도록 컴파일러, 최적화기, 및/또는 해석기 코드(177)를 실행하는 것이 가능하다. 컴파일러는 종종 소스 텍스트/코드를 타겟 텍스트/코드로 해석하는 프로그램 또는 프로그램의 세트를 포함한다. 일반적으로, 컴파일러에 의한 프로그램/애플리케이션 코드의 컴파일은 다수의 단계로 수행되고 하이레벨 프로그래밍 언어 코드를 로우 레벨 머신 또는 어셈블리 언어 코드로 변환하도록 패스한다. 그러나, 단일 패스 컴파일러는 여전히 단순한 컴파일에 대해 활용될 수 있다. 컴파일러는 임의의 알려진 컴파일 기술을 활용하고 어휘분석, 사전프로세싱, 파싱, 시맨틱 분석, 코드 생성, 코드 변환, 및 코드 최적화와 같은, 임의의 알려진 컴파일러 동작을 수행할 수 있다.
더 큰 컴파일러는 종종 다수의 단계를 포함하지만, 가장 대부분 이들 단계를 두 일반적인 단계 내에 포함된다. (1) 프론트 엔드, 즉, 일반적으로 구문론 프로세싱, 시맨틱 프로세싱, 및 일부 변환/최적화가 발생할 수 있는 곳, 및 (2) 백 엔드, 즉, 일반적으로 분석, 변환, 최적화 및 코드 생성이 발생하는 곳. 일부 컴파일러는 컴파일러의 프론트 엔드와 백 엔드 사이의 경계의 블러링(blurring)을 도시하는 중단을 지칭한다. 그 결과로서, 컴파일러의 삽입, 연관, 생성, 또는 다른 동작에 대한 참조가 임의의 전술된 단계 또는 패스 뿐만 아니라 컴파일러의 임의의 다른 알려진 단계 또는 패스에서 발생할 수 있다. 도시의 예시로서, 컴파일러는 컴파일의 프론트 엔트 단계에서 호출/동작의 삽입 및 또한 변환 단계 동안 하위 레벨 코드로의 호출/동작의 변환과 같이, 컴파일의 하나 이상의 단계에서, 동작, 호출, 함수 등을 잠재적으로 삽입한다. 동적 컴파일 동안, 컴파일러 코드 또는 동적 최적화 코드는 이러한 동작, 호출을 삽입할 뿐만 아니라 런타임 동안의 실행을 위한 코드를 최적화할 수 있음에 유의한다. 특정한 도시의 예시로서, 이진 코드(이미 컴파일된 코드)는 런타임 동안 동적으로 최적화될 수 있다. 여기서, 프로그램 코드는 동적 최적화 코드, 이진 코드 또는 이들의 조합을 포함할 수 있다.
컴파일러와 유사하게, 이진 해석기와 같은 해석기는 코드를 최적화 및/또는 해석하기 위해 정적으로 또는 동적으로 코드를 해석한다. 따라서, 코드, 애플리케이션 코드, 프로그램 코드, 또는 다른 소프트웨어 환경의 실행에 대한 참조는, (1) 프로그램 코드를 컴파일하고, 소프트웨어 구조를 유지하고, 다른 동작을 수행하고, 코드를 최적화하거나, 코드를 해석하도록, 동적으로 또는 정적으로 컴파일러 프로그램, 최적화 코드 최적화기, 또는 해석기를 실행, (2) 최적화/컴파일되어진 애플리케이션 코드와 같은, 동작/호출을 포함하는 주 프로그램 코드를 실행, (3) 다른 소프트웨어 관련 동작을 수행하거나 코드를 최적화하도록 소프트웨어 구조를 유지하는 주 프로그램 코드와 연관된 라이브러리와 같은 다른 프로그램 코드를 실행, 또는 (4) 이들의 조합을 지칭할 수 있다.
도 2를 참조하면, 예시의 미디어 서빙 환경(200)의 개략화된 블록도가 도시된다. 미디어 게이트웨이(205)는 하나 이상의 미디어 네트워크(예를 들어, 210)에 의해 호스팅 또는 그렇지 않으면 제공되는 미디어 콘텐츠를 제공하도록 포함될 수 있다. 미디어 게이트웨이(205)는 하나 이상의 소스 또는 소스 네트워크(예를 들어, 210)으로부터 디지털 미디어 스트림을 수신하고 다양한 엔드포인트 디바이스 상에서의 소비를 위해 미디어 스트림을 해석 또는 그렇지 않으면 인에이블링 할 수 있다. 예를 들어, 디지털 케이블 스트림은 홈 네트워크(215)와 같은, 게이트웨이(205)를 사용하는 개인용 네트워크에 포함되는 하나 이상의 엔드포인트 디바이스(예를 들어, 220, 225, 230, 240, 245, 250 등)에 텔레비젼, 브로드밴드 인터넷, 라디오, 보안, 및 다른 서비스를 제공하는 게이트웨이를 사용하여 해석될 수 있다. 미디어 게이트웨이(205)는 미디어 네트워크 또는 다른 서비스 제공자로부터의 디지털 콘텐츠의 제공과 함께 다른 서비스 또는 기능을 제공하기 위한 기능을 더 포함할 수 있다. 예를 들어, 미디어 게이트웨이(205)는 저장 능력, 디지털 비디오 녹화 기능, 및 다른 서비스를 포함할 수 있다. 다른 게이트웨이 디바이스는 또한 미디어 네트워크(210)를 통해 제공되는 미디어 콘텐츠를 소비하는 것이 가능한 엔드포인트 디바이스를 갖는 다른 네트워크(예를 들어, 260, 270) 상에 제공될 수 있다. 또한, 다른 예시들 중 다양한 타입의 콘텐츠, 데이터 서비스, 대역폭, 프리미엄 콘텐츠를 제공하는 예시의 구독 레벨과 함께 다양한 서비스 구독 레벨이 지원될 수 있다.
일부 구현예에서, 미디어 게이트웨이(205)는 미디어 네트워크(210)로부터 케이블 또는 다른 미디어 스트림을 캡쳐하고 미디어를 사용자에게 제시하는 것이 가능한 다수의 대응하는 타입의 엔드포인트 디바이스와 호환가능한 다수의 상이한 포맷으로 신호를 트랜스코딩할 수 있다. 이러한 엔드포인트 디바이스(220, 225, 230, 235, 240, 245, 250)는, 예시로서, 텔레비젼, 셋톱박스, 개인용 컴퓨터, 랩탑 컴퓨터, VOIP(voice-over-IP) 전화기, 텔레프레젠스 및 비디오 회의 시스템, 태블릿 컴퓨터, 스마트폰, 개인용 디지털 보조장치, 피쳐폰, 비디오 게임 콘솔, 핸드헬드 비디오 게임 시스템, 데스크탑 컴퓨터, 인터넷 가능 또는 다른 "스마트" 가전제품, 스테레오 시스템, 휴대용 오디오 플레이어, 및 사람 사용자와 인터페이스하고 미디어 네트워크(210)를 통해 제공되는 미디어(예를 들어, 홈 게이트웨이(205)에 의해 트랜스코딩되는 것)를 수신하고 활용하는 것이 가능하도록 설계된 다른 디바이스 및 시스템을 포함할 수 있다.
엔드포인트 디바이스 및 컴퓨팅 디바이스의 속성은 일반적으로 각각의 디바이스에 로딩되고, 설치되고, 동작되거나 그렇지 않으면 액세스가능한 개별적인 운영 시스템 및 소프트웨어 프로그램의 집합을 포함하여, 디바이스 마다 광범위하게 변할 수 있다. 예를 들어, 엔드포인트 디바이스는, 개별적인 디바이스에 의해 구동, 실행 또는 그렇지 않으면 사용되는 것이 가능한 운영 시스템, 애플리케이션, 플러그인, 애플릿, 가상 머신, 머신 이미지, 드라이버, 실행가능한 파일 및 다른 소프트웨어 기반 프로그램의 다양한 조합을 포함하는, 다양한 세트의 프로그램을 구동, 실행, 설치된 또는 그렇지 않으면 포함할 수 있다. 또한, 엔드포인트 디바이스는 키보드, 터치스크린, 원격제어, 마우스, NUI(natural user interface) 등과 같은 다양한 사용자 인터페이스 디바이스를 포함할 수 있거나 동작가능하다. 엔드포인트 디바이스에 제시되고, 소비되거나 렌더링될 미디어의 타입에 따라, 엔트포인트 디바이스는 스피커, 디스플레이 디바이스(터치스크린 또는 다른 인터랙티브 디스플레이를 포함함), 카메라, 프로젝터, 및 다른 피쳐와 같은 컴포넌트를 더 포함할 수 있다.
일반적으로, 일례의 환경(200)의 네트워크(210, 215, 260, 270)에서의 서버, 클라이언트 시스템, 및 다른 컴퓨팅 디바이스를 포함하는 "서버", "네트워크 디바이스", "시스템", "클라이언트", "엔드포인트 디바이스", "게이트웨이" 및 "컴퓨팅 디바이스"는 환경(200)과 연관된 데이터 및 정보를 수신, 전송, 프로세싱, 저장, 렌더링, 또는 그렇지 않으면 사용하도록 동작가능한 전자 컴퓨팅 디바이스를 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, 용어 "컴퓨터", "컴퓨팅 디바이스", "프로세서", 또는 "프로세싱 디바이스"는 임의의 적합한 프로세싱 디바이스를 포함하도록 의도된다. 예를 들어, 시스템(100)은 서버 풀을 포함하여, 서버 이외에 컴퓨터를 사용하여 구현될 수 있다. 또한, 컴퓨팅 디바이스 중 어떤 것, 전부 또는 일부는, 리눅스, 유닉스, 마이크로소프트 윈도우, 애플 OS, 애플 iOS, 구글 안드로이드, 윈도우 서버 등 뿐만 아니라 커스터마이징된 사유 운영 시스템을 포함하는, 특정 운영 시스템의 실행을 가상화하도록 구성된 가상 머신을 포함하는 임의의 운영 시스템을 실행하도록 구성될 수 있다.
또한, 게이트웨이, 엔드포인트 디바이스, 네트워크 디바이스, 및 컴퓨팅 디바이스는 각각 다른 피쳐 및 하드웨어 중 하나 이상의 프로세서, 컴퓨터 판독가능 메모리, 및 하나 이상의 인터페이스를 포함할 수 있다. 서버는 다른 예시들 중 데이터 관리 시스템(105)에 의해 관리되는 데이터를 사용하는 배포용, 기업용 또는 클라우드 기반 소프트웨어 애플리케이션, 데이터 및 서비스를 포함하는, 소프트웨어 애플리케이션 및 서비스를 호스팅 및/또는 서빙하는 것이 가능한 임의의 적합한 소프트웨어 컴포넌트 또는 모듈, 또는 컴퓨팅 디바이스를 포함할 수 있다. 또한, 일부 구현예에서, 서버는 다른 서비스 및 디바이스에 의해 인터페이싱, 조정, 또는 의존 또는 사용되는 모델, 데이터 구조, 데이터 세트, 소프트웨어 서비스 및 애플리케이션을 호스팅, 서빙, 또는 그렇지 않으면 관리하도록 구성될 수 있다. 일부 예시에서, 서버, 시스템, 서브시스템 또는 컴퓨팅 디바이스는 공통 컴퓨팅 시스템, 서버, 서버 풀, 또는 클라우드 컴퓨팅 환경 상에서 호스팅될 수 있는 디바이스의 일부 조합으로서 구현될 수 있고 공유된 메모리, 프로세서 및 인터페이스를 포함하는 컴퓨팅 리소스를 공유할 수 있다.
도 3을 참조하면, 미디어 네트워크(210)로부터의 미디어 콘텐츠 스트림을 소비하는 것이 가능한 다양한 상이한 엔드포인트 디바이스(예를 들어, 225, 230, 250)를 포함하는 홈 네트워크에서 사용을 위한 미디어 게이트웨이와 같은, 예시의 미디어 게이트웨이(205)의 개략화된 블록도가 도시된다. 일례의 구현예에서, 미디어 게이트웨이(205)는 하나 이상의 프로세서 디바이스(예를 들어, 305), 메모리 요소(예를 들어, 310), 및 미디어 게이트웨이(205)의 다양한 기능을 제공하는데 사용하기 위한 다양한 하드웨어, 소프트웨어, 및 펌웨어 컴포넌트를 포함할 수 있다. 일례에서, 미디어 게이트웨이(205)는 다른 잠재적 컴포넌트 중 튜너 디모듈레이터(tuner demodulator)(315), M-카드 또는 케이블카드 모듈(예를 들어, 320), 보호 메모리 관리자(325), 보호 메모리(330), 보안 암호화 제어기(SEC)(340), 미디어 레코더 시스템(디지털 비디오 레코더(DVR)(345)와 같음), 트랜스코더(350), 디지털 권리 관리 엔진(355), 하나 이상의 네트워크 인터페이스(예를 들어, 360)와 같은 이러한 컴포넌트를 포함할 수 있다.
일부 경우에, 미디어 게이트웨이의 다양한 컴포넌트는 단일 칩셋, 서브시스템, 또는 다른 디바이스 상에 제공될 수 있고 반면 다른 컴포넌트는 다른 디바이스, 칩, 또는 미디어 게이트웨이(205)의 서브시스템 상에 제공된다. 일부 경우에, 다양한 벤더, OEM, 또는 다른 제공자는 미디어 게이트웨이(205)의 다양한 컴포넌트를 제조 및 제공할 수 있다. 컴포넌트는 버스, 상호접속부, 링크, 및 다른 전송 매체를 통해 다른 컴포넌트와 통신할 수 있다. 그러나, 미디어 네트워크(210)에 의해 제공되는 미디어 스트림이 승인된 가입자에게 미디어 네트워크(210)를 통해 제공되는 미디어 콘텐츠 및 서비스로의 액세스를 제한하는 라이센스 및 비지니스 모델의 대상이 될 수 있기 때문에 디지털 권리 관리는 중요한 관심사가 될 수 있다.
미디어 게이트웨이(205)의 다양한 컴포넌트 사이에서의 미디어 네트워크(210)로부터의 데이터 스트림의 부분의 통신은 보호되는 또는 제한되는 콘텐츠로의 미승인된 액세스를 획득하기 위해 (예를 들어, 상호접속부, 버스 등의 핀에서) 이용되는 것이 가능한 스누퍼(snoopers) 및 다른 메커니즘에 대해 라이센싱된 콘텐츠를 잠재적으로 노출시킬 수 있다. 따라서, 일부 구현예에서, 미디어 게이트웨이는, 분명한 콘텐츠가 컴포넌트 사이에서 통신되지 않고 미디어 게이트웨이(205)의 보호 메모리 영역 내에서만 나타난다는 것을 보장하는 신뢰 데이터 경로를 제공하기 위한 컴포넌트 및 프로토콜이 제공될 수 있다. 이는 컴포넌트, 호스트 액세스가능 메모리(또는 랜덤 액세스 메모리(RAM)), 및 미디어 게이트웨이(205)의 다른 잠재적으로 취약한 영역들 사이를 통과함에 따라 콘텐츠를 암호화하기 위해 신뢰 데이터 경로를 통해 사용될 다양한 암호화 키 및 스킴의 정의를 포함할 수 있다.
도 4를 참조하면, 미디어 게이트웨이(205)의 예시의 구현예 내에서 정의된 신뢰 데이터 경로의 일례의 개략화된 블록도가 도시된다. 일부 구현예에서, 미디어 게이트웨이의 일부 컴포넌트가 시스템 온 칩(SOC) 아키텍쳐(405) 상에 구현될 수 있다. SOC 컴포넌트와 SOC 외부에 구현되는 다른 컴포넌트(예를 들어, 미디어 게이트웨이 내부의 다른 칩 또는 하드웨어 상에서) 사이에서 보호되는 데이터 스트림의 전송은 암호화되도록 요구될 수 있다. 예를 들어, 일례에서, M-카드 모듈(320)은 특정 가입자 계정과 연관된 M-카드를 수용할 수 있도록 제공될 수 있다. M-카드 모듈(320)은 미디어 네트워크로부터 스크램블링된 디지털 케이블 신호를 해제(unlocking)하기 위한 가입자 정보 및 코드(예를 들어, 복호화 키)를 저장하는 물리적, 컴퓨터 판독가능 카드(예를 들어, M-카드)를 호스팅하는 디바이스를 포함할 수 있다. 일례에서, 콘텐츠 보호(CP) 키(예를 들어, 디피 헬먼(Diffie Hellman, DH) 키)는 전송 스트림(transport stream, TS) 프로세싱 블록(420)과 M-카드 모듈(320) 사이에서 협상될 수 있어서 TS 프로세싱 블록(420)으로 암호화되고 보호되어 송신될 M-카드 모듈을 사용하여 콘텐츠가 디스크램블링(descrambled)되는 것을 가능하게 한다. TS 프로세싱 블록(420)은 하나 이상의 엔드포인트 디바이스로의 전달을 위해 미디어 스트림을 더 준비하기 위한 기능을 포함하는 하나 이상의 컴포넌트를 포함할 수 있다. 예를 들어, TS 프로세싱 블록(420)은 다른 예시들 중에서 암호화에서 사용되는 키를 관리할 뿐만 아니라 SOC와 외부 컴포넌트 사이의 콘텐츠 암호화를 보장하기 위한 능력을 포함하는 보안성을 포함할 수 있다. 대신에, 본원에서 설명된 여러 예시들은 트랜스코더와 SOC 사이의 링크 보호를 논의하지만, 이들 원리는 암호화 키가 일정한 간격으로 리프레시되는 경우에서와 같이, 두 디바이스 사이의 임의의 링크의 보호에서 잠재적으로 이용될 수 있다.
도 4의 예시를 계속하면, 일부 구현예에서, 트랜스코더(350)는 복수의 잠재적인, 상이한 엔드포인트 디바이스에 의한 사용을 위해 데이터 스트림을 복수의 상이한 포맷으로 해석하는 것이 되도록 제공될 수 있다. 예시로서, 트랜스코더(350)는 다양한 상이한 콘텐츠 포맷을 수신할 수 있다. 예를 들어, 트랜스코더(350)는 다른 예시들 중에서, AC3 오디오를 갖는 MPEG2 비디오를 포함하는 콘텐츠를 AAC-LC 오디오를 갖는 H.264 비디오로 해석할 수 있다. 트랜스코더(350)는 예를 들어, 1080p 60fps부터 720p 30fps로, 또는 타겟팅된 렌더링 디바이스(예를 들어, 스마트폰, 태블릿, 텔레비젼 등)에 대해 바람직한 일부 다른 값으로 변화하는, 콘텐츠의 프레임 레이트, 그림 크기, 해상도 및 다른 속성을 추가로 변경시킬 수 있다. 데이터 스트림을 트랜스코딩할 시에, 유선 및 무선 통신 채널을 포함하여, 하나 이상의 통신 채널을 통해 하나 이상의 상이한 엔드포인트 디바이스로 트랜스코딩된 콘텐츠 및 서비스를 전달하도록 하나 이상의 네트워크 인터페이스로 구성되는 미디어 서버 블록(410)으로 트랜스코딩된 데이터가 제공될 수 있다.
일부 구현예에서, 트랜스코더는 하나 이상의 링크를 통한 하나의 컴포넌트(예를 들어, TS 프로세싱 블록(420))로부터 트랜스코더(350) 또는 트랜스코더(350)로부터 다른 컴포넌트(예를 들어, 미디어 서버(410))로의 데이터의 전송을 포함할 수 있다. 따라서, 이러한 트랜스코더(350)로의 스트림 및 이로부터의 스트림은 미승인된 차단 및 사용으로부터 데이터를 보호하도록 링크 상에서 암호화될 수 있다. 예를 들어, AES(Advance Encryption Standard) 키 교환이 활용될 수 있고 AES 키는 TS 프로세싱 블록(420)으로부터 트랜스코더(350)로 그리고 트랜스코더(350)로부터 미디어 서버(410)로 데이터를 암호화 및 복호화는데 사용된다(예를 들어, 다른 AES 키를 사용함).
도 5를 참조하면, 미디어 게이트웨이의 다양한 컴포넌트를 통한, QAM(quadrature amplitude modulation) 신호를 포함하는 스트림(505)과 같이, 미디어 네트워크로부터의 데이터 스트림(505)의 더 자세한 흐름의 개략화된 블록도가 도시된다. 도 5의 특정 예시에서, 시스템 온 칩(SOC)(405)은 데이터 스트림(505)의 신호를 수신 및 복조하는 튜너 디모듈레이터(315)를 포함할 수 있다. 복조된 신호는 M-카드 또는 케이블카드 모듈(320)에 제공되기 이전에 데이터 오버 케이블 서비스 인터페이스(data over cable service interface)(510)를 통해 하나 이상의 비디오 사전필터(520), 케이블 멀티플렉서(525) 및 다른 사전프로세싱 컴포넌트로 제공될 수 있다. 이 예시에서, M-카드 모듈(320)이 SOC의 외부에 있기 때문에, 프로세싱된 스트림의 전송은 SOC와 M-카드 모듈(320) 사이의 채널의 암호화를 통해 안전해질 수 있고 유사하게 M-카드 모듈(320)을 탈출하는 스트림 데이터는 암호화될 수 있어서 데이터는 링크 상에서 또는 SOC(405)의 핀에서 또는 M-카드 모듈(320) 아키텍쳐에서 분명하게 제시되지 않을 수 있다.
도 5의 예시를 계속하면, 스트림 데이터는 트랜스코더(350)로 패스되고 이로부터 패스됨에 따라 신호의 암호화 및 복호화를 관리하기 위해 보호 메모리(330)(SOC의 내부 또는 외부)에 저장될 수 있고 암호화 제어기(340)로 추가로 진행할 수 있다. 이 예시에서, 트랜스코더(350)는 SOC(405)로부터 분리되어 제공될 수 있다. 보안 암호화 제어기(340)는 미디어 게이트웨이의 주변장치로서 제공되는 DVR 디바이스를 포함하는, DVR(345)에 저장하기 위한 미디어의 암호화 및 복호화를 추가로 관리할 수 있다. 복호화 모듈(530)은 보호 메모리(330)에 저장하고 복호화된 스트림을 보안 암호화 제어기(340)로 제공하기 위해 데이터(M-카드 모듈(320)로의 전송 및 이로부터의 전송과 관련되어 암호화됨)를 복호화할 수 있다. 보안 암호화 제어기(340)는 트랜스코더(350)로의 전송을 위해 (예를 들어, 암호화 모듈(540)을 사용하여) 스트림을 암호화하도록 상이한 키 및 암호화 스킴을 적용할 수 있다. 보안 암호화 제어기(340)는 또한 트랜스코더(350)와 함께 암호화 스킴에서 사용될 키를 통신 및 동기화할 수 있다. 일례에서, AES 암호화 키는 다른 예시들 중에서 SOC(405)와 트랜스코더(350) 사이에서 (일부 경우에 SOC의 트랜스코더 프록시(550)를 통해) 전송되는 데이터를 암호화 및 복호화하도록 활용될 수 있다. 보안 암호화 제어기(340)는 트랜스코더(350)로부터 수신된 트랜스코딩된 스트림을 (예를 들어, 복호화 모듈(555)을 사용하여) 복호화할 수 있고 게이트웨이에 의해 서비스되는 다양한 엔드포인트 디바이스에서의 복호화 및 사용을 위해 미디어 서버 인터페이스(565)를 통해 제공될 스트림(535)을 암호화하는데 사용되는 또 다른 암호화 키 또는 스킴을 활용하여 (예를 들어, 암호화 모듈(560)을 사용하여) 스트림을 재암호화할 수 있다. 다른 구현예에서, 다른 예시의 아키텍쳐, 컴포넌트, 경로, 및 암호화 스킴 등이 다른 예시들 중에서 사용될 수 있다.
예시의 보안 암호화 제어기(340)와 트랜스코더(350) 사이의 암호화의 경우에, 암호화에서 활용되는 키는 세션 키가 될 수 있다. 또한, 세션 키는 SOC와 트랜스코더 사이의 채널의 보안성을 절충하기 위해 차단 및 활용되는 키들 중 어느 하나를 방해하도록 세션 동안 빈번하게(예를 들어, 매 10초마다 적어도 한번) 갱신 또는 리프레시될 수 있다. 일례의 구현예에서, 동일한 미디어 게이트 내부에서 디바이스가 SOC 및 트랜스코더 사이의 경로의 암호화에서 사용될 세션 키를 안전하게 조정하는 것을 가능하게 하는 공통 비밀(secret)을 공유하도록 SOC 및 트랜스코더가 제조될 수 있다. 일 구현예에서, 공통 비밀은 SOC 및 트랜스코더 각각의 하드웨어에 내장된 고유 메시지 암호화 키(MEK)가 될 수 있다. MEK는 미디어 네트워크에 의해 수신되는 것으로서 콘텐츠를 복호화하는데 사용되는 증명서 승인 키와 같은, 미디어 게이트웨이에 의해 활용되는 임의의 다른 키와는 독립적일 수 있다. 또한, SOC는 예를 들어, 보안 암호화 제어기(340)를 사용하여, SOC와 트랜스코더 사이에서 통신되는 미디어 데이터 스트림을 암호화하는 세션 키를 생성할 수 있다. 일부 구현예에서, 세션 키는 랜덤 사이퍼 스크램블링 키(random cipher scrambling key, CSK)가 될 수 있다. 또한, 세션 키는 MEK를 사용하여 암호화되고 TCP 측파대 채널과 같은, 신뢰할만한 측파대 채널을 통해 트랜스코더로 전송될 수 있다. MEK는 안전한 제조 환경에서 프로비져닝될 수 있고 MEK의 사용은 SOC와 트랜스코더 사이에서의 사용을 위한 세션 키를 암호화하는 것에만 제한될 수 있다. 일부 경우에, MEK가 제조에서 프로비져닝되는 것이고 안전하다는 것을 확인하기 위해 MEK가 세션에서 사용하기 이전에 인증될 수 있다.
제 1 채널은 콘텐츠의 전송을 위해 SOC와 트랜스코더 사이에서 제공될 수 있다. 이 채널은 비정기적인 패킷 손실 및 비순차(OOO) 수신에 내성이 있을 수 있다. 일부 구현예에서, 제 1 채널에 대해 활용되는 전송 프로토콜은 낮은 오버헤드를 갖고 동시에 지원되는 넷 이상의 스트림을 허용할 수 있다. 스트림의 각각은 대응하는 세션 키(또는 세션 키 쌍)를 가질 수 있다. 일례에서, 대역 내 채널은 UDP 채널이 될 수 있다.
세션 키는 일부 구현예에서 쌍으로 제공될 수 있다. 쌍에서 하나의 키는 SOC와 트랜스코더 사이의 경로 상에서 송신할 콘텐츠를 암호화하도록 지정될 수 있고, 다른 키는 다른 잠재적인 예시들 중에서 암호화된 콘텐츠를 복호화하는데 사용될 수 있다. 실제로, 세션 키 쌍은 두 규칙을 제공하는 것으로 간주될 수 있다: 제 1 키는 보호 메모리 영역으로부터 호스트 액세스가능한 메모리로 콘텐츠를 암호화는 것이고, 반면 다른 키는 호스트 액세스가능한 메모리로부터 보호 메모리로 콘텐츠를 복호화하는 것이다. 세션 키 쌍은 보안 암호화 제어기에 의해 생성될 수 있고, 측대역 채널을 통해 SOC로부터 트랜스코더로 암호화되어(예를 들어, MEK를 사용하여) 단일하게 송신될 수 있다.
일부 구현예에서, 보안 암호화 제어기 및 트랜스코더는 특정 세션 내에서 세션 키의 리프레싱과 함께 비순차 패킷의 암호화를 지원하도록 구성될 수 있다. 일부 구현예에서, 보안 암호화 제어기(및 SOC) 및 트랜스코더는 트랜스코더와 SOC 사이에서 콘텐츠의 전송으로 보안 암호화 제어기 및 트랜스코더에 의해 사용되는 세션 키의 리프레싱을 동기화할 수 있다. 예를 들어, 콘텐츠의 암호화 및 송신은 동기화될 수 있거나, 또한 그렇지 않으면 리프레시 이후에 사용될 다음 세션 키를 통신하는 암호화된 설정 구조의 송신과 동시에 일어나도록 타이밍(예를 들어, 지연됨)될 수 있다. 다른 경우에, 키 리프레시 구조는 트랜스코딩 세션에서 사용되는 잠재적으로 다수인 세션 키 중 어느 것이 스트림의 암호화에서 사용되는지를 나타내도록 암호화된 스트림에 내장될 수 있도록 제공될 수 있다. 또한, 키 리프레시 구조는 수신하는 암호화된 콘텐츠 데이터를 복호화는데 사용하기 위해 어떤 대응하는 세션 키를 식별하는데 사용될 수 있다.
미디어 게이트웨이의 일부 구현에서, 큰 버퍼 사이즈는 높은 대역폭 미디어 콘텐츠의 더 양호한 성능 및 전달을 장려하도록 지원될 수 있다. 각 버퍼는 흐름을 단순화시키고 전체 성능을 향상시키기 위해 단일 키로 암호화될 수 있다. 추가적으로, 작은 버퍼 헤더 풋프린트 및 오버헤드는 여러 예시의 장점을 추가로 향상시키도록 구현될 수 있다.
일부 구현예에서, 위에서 소개된 바와 같이, 전체 트랜스코딩 세션 커맨드 및 제어 하에서, SOC 호스트 프로세서로부터 트랜스코더 프로세서로 세션 기반 암호화/복호화 키를 전달하는, 프로토콜이 정의될 수 있다. 일부 구현예에서, 기본 소켓 레벨 통신은 트랜스코더 벤더 추상 계층에 의해 가능하게 될 수 있다. 프로세싱을 위해 트랜스코더로 그리고 이로부터 전달될 콘텐츠 데이터를 인바운딩 및 아웃바운딩하기 위해 보안 암호화 제어기 프로세서에서 세션 키가 생성될 수 있다. 이러한 세션 키는 상호 키(예를 들어, MEK)에 의해 암호화되고 TCP 기반 대역 외 소켓을 통해 통신되는 안전한 설정 데이터 구조를 통해 트랜스코더로 통신될 수 있다. 또한, 키 리프레시 구조는 트랜스코딩 세션에서 활성인 잠재적으로 다수인 세션 키의 관리를 보조하도록(예를 들어, 비순차 패킷 및 세션 키 리프레시의 비동기 관리를 처리하도록) 생성될 수 있다. 키 리프레시 구조는 클리어 텍스트로서 제시되고 각각의 암호화된 데이터의 시작에 붙여지는(prepended) 데이터를 포함할 수 있다. 키 리프레시 구조는 보안 암호화 제어기에 알려진 하나 이상의 키 식별자를 나타내고 이전에 통신된 세션 키 중 하나를 식별하는 암호화된 데이터 버퍼에 적용하는 세션 키를 식별할 수 있다. 따라서, 안전한 설정 구조 및 대역 내 데이터 흐름의 통신은 키 식별자로서 동기화되지않도록 허용될 수 있거나 키 리프레시 구조의 시퀀스 번호는 권리 키가 사용되는 것을 보장하기 위해 동기화를 효과적으로 제공한다.
일부 구현예에서, 보안 설정 구조는 트랜스코딩 세션을 위한 세션 셋업의 부분으로서 송신될 수 있다. 일부 구현예에서, 각각의 트랜스코딩 세션에 대해, 암호화/복호화 키의 적어도 바로 이전(그리고, 일부 경우에서, 더 이전 버전) 및 현재 버전 모두는 대역 내(예를 들어, UDP) 소켓을 통해 데이터 버퍼의 비순차 전달을 수용하도록 보안 암호화 제어기 및 트랜스코더 모두에 의해 유지될 수 있다. 이러한 경우에 트랜스코더에 대해, 키 리프레시 시그널링(예를 들어, 키 리프레시 구조를 통해)은 인바운드 데이터 흐름 뿐만 아니라 아웃바운드 데이터 흐름 모두에 동시에 적용할 수 있다. 보안 암호화 제어기는 세션 키 생성 뿐만 아니라 콘텐츠 데이터 흐름으로의 키 리프레시 구조 삽입을 개시 및 관리해야하는 책임이 있다. 이는 다른 예시들 중에서 소켓에 기록되는 최종 데이터 버퍼 이전에 수행될 수 있다.
도 6을 참조하면, 예시의 보안 암호화 제어기(340)와 트랜스코더(350) 사이에서 교환되는 암호화된 콘텐츠를 통신 및 동기화하는데 사용하기 위한 프로세서 원자(processor atom)(605)의 특정 구현예를 도시하는 개략화된 블록도가 도시된다. 원자(605)는 (도 6과 관련하여 명시적으로 도시되거나 설명되지 않은 잠재적으로 다른 컴포넌트 중에서) 애플리케이션 및 미들웨어 스택(610), 보안 암호화 제어기(SEC) 라이브러리(615), 키 리프레시 라이브러리(630), 트랜스코더 라이브러리(620), 및 SEC 커널 드라이버(625)를 포함할 수 있다.
보안 암호화 제어기(340)(예를 들어, SOC의)와 트랜스코더(350) 사이의 링크의 보호는, SEC 라이브러리(615), 키 리프레시 라이브러리(630), 및 트랜스코더 라이브러리(620)에 의해 특정되는 인터페이스에 의해, 적어도 부분적으로 구현될 수 있다. 애플리케이션 및 미들웨어 스택(610)의 소프트웨어는 이 링크 보호와 관련하여 라이브러리(615, 620, 630)를 사용할 수 있다. 일반적으로, 원자(605)는 보안 암호화 제어기(340)와 트랜스코더(350) 사이의 암호화된 콘텐츠 스트림 및 안전한 설정 구조 모두의 통신을 가능하게 할 뿐만 아니라(그리고 세션 키에 포함됨) 보안 암호화 제어기(340)와 트랜스코더(350) 사이의 통신을 포함하는 트랜스코딩 세션과 관련하여 사용되는 키 리프레시 구조 및 값의 사용을 관리하기 위해 라이브러리를 활용할 수 있다.
일 구현예에서, 키 리프레시 라이브러리(630)는 (애플리케이션 및 미들웨어 스택(610)에서 구현되는 소프트웨어 의한 호출에 응답하여 보안 암호화 제어기(340)에 의해) CSK 세션 키가 생성되게 하도록 하나 이상의 함수를 제공할 수 있다. 세션 키 쌍은 두 키-하나는 SOC로부터 트랜스코더로 송신되는 콘텐츠를 암호화/복호화하고, 두번째는 트랜스코더로부터 SOC로 송신될 콘텐츠를 암호화/복호화함-를 포함하여 생성될 수 있다. 비순차 콘텐츠 패킷 등을 지원하는 보안 암호화 제어기(340) 및 트랜스코더(350)의 각각에서 얼마나 많은 이전 세션 키 쌍이 유지되는지를 판정하도록 정책이 정의될 수 있다. 일례에서, SEC 라이브러리(615)는 보안 암호화 제어기(340)에서 세션 키를 갖는 콘텐츠의 암호화 및 복호화를 개시하는 함수를 제공할 수 있다. 트랜스코더 라이브러리(620)는 암호화된 세션 키를 트랜스코더로 전달하는 함수를 제공할 수 있다. 또한, 이는 다른 예시들 및 구현예들 중에서, SOC와 트랜스코더 사이에서 암호화된 콘텐츠를 교환하는 함수를 제공할 수 있다.
트랜스코딩 세션(및 세션의 암호화)은 소프트웨어에 의해 적어도 부분적으로 제어될 수 있고 라이브러리는 소프트웨어 및 보안 암호화 제어기(340)와 트랜스코더(350) 사이에 API를 제공할 수 있다. 예를 들어, 키 리프레시 API 호출은 신규 세션 키가 생성되게 하는 보안 암호화 제어기에 대해 수행될 수 있다. 세션 키들(즉, 하나는 보안 암호화 제어기(340)로부터 트랜스코더(305)로 데이터를 암호화/복호화하기 위한 것이고, 다른 하나는 트랜스코더(340)로부터 보안 암호화 제어기(340)로 데이터를 암호화/복호화하기 위한 것임)은 보안 암호화 제어기(340)에 의해 생성되고 MEK에 의해 암호화될 수 있다. 보안 암호화 제어기(340)는 신규의 암호화된 세션 키를 원자(605)로 리턴할 수 있고, 원자는, 키 리프레시 라이브러리(630) 및 애플리케이션 미들웨어 스택(610)을 사용하여, 키의 쌍에 대한 단일 식별자, 또한 대안적으로, 개별적인 키들의 각각에 대한 개별적인 식별자를 할당할 수 있다. 일부 경우에, 키 식별자를 하나씩 증분하게 하는 각 키 리프레시에 의해, 키 식별자는 증분된 값이 될 수 있다. 다른 경우에, 키 식별자를 생성하기 위한 알고리즘은 보안 암호화 제어기(340) 및 트랜스코더(350)에게 알려져 있는 더 복잡한 스킴, 알고리즘에 후속할 수 있다. 덜 예측가능한 식별자를 생성하는 알고리즘의 경우에(적어도 컴포넌트의 외부), 후속 키 식별자의 생성 및 할당은, 보안 암호화 제어기(340) 및 트랜스코더의 각각이, 다른 잠재적 예시들 및 구현예들 중에서, 세션 내에서, 또는 대안적으로, 보안 암호화 제어기(340) 및 트랜스코더(350)의 수명 기간 동안, 생성되는 각각의 신규 세션 키에 대한 특정 키 식별자를 도출 또는 예상하는 것이 가능하다는 점에서 결정론적이다.
보안 암호화 제어기(340) 및 트랜스코더(350)의 각각은 대응하는 세션 키에 대한 세션 키 식별자의 맵핑을 유지 또는 액세스할 수 있다. 콘텐츠가 세션 키들 중 하나를 사용하여 암호화될 때, 버퍼링된 콘텐츠 데이터가 콘텐츠를 암호화하는데 사용되는 세션 키를 식별하는 키 리프레쉬 구조에 붙여질 수 있다. 암호화 이전에, 보안 암호화 제어기(340) 또는 트랜스코더(350)는, 현재 활성이고, 대응하는 키 리프레시 구조에 암호화된 데이터를 붙이는, 능동 세션 키를 사용하여 아웃바운드 데이터를 암호화하는 세션키를 식별할 수 있다. 세션 키 리프레시가 이전 세션 키를 사용하여 암호화되는 데이터의 수신 이전에 발생되는 경우에, 그럼에도 불구하고 수신자(예를 들어, 보안 암호화 제어기(340) 또는 트랜스코더(350) 중 하나)는 수신된 데이터가 이전 세션 키를 사용하여 암호화되는 것을 식별하고 수신된 데이터를 복호화하도록 이전 세션 키에 액세스할 수 있다.
도 7을 참조하면, 일부 구현예에서, 보안 암호화 제어기(340) 또는 트랜스코더(350)는 송신될 콘텐츠 스트림 데이터를 버퍼링할 수 있고 보호 메모리 버퍼가 풀(full)일 때(또는 다른 트리거 시에), 보안 암호화 제어기(340) 또는 트랜스코더(350)는 버퍼에 대한 세션 키 식별자를 할당(또는 이의 할당을 수신)하는 세션 ID 함수를 호출할 수 있다. 디바이스(예를 들어, 340, 350)는 대응하는 세션 키로 클리어 텍스트 데이터를 암호화하고 세션 키 식별자로 송신하는 버퍼 헤더(예를 들어, 리프레시 키 구조를 구현하는 다른 필드)를 인코딩할 수 있다. 암호화된 버퍼 및 키 리프레시 구조는 또한 다른 디바이스로 송신될 수 있다. 수신하는 디바이스는 키 리프레시 구조로부터 세션 키를 식별하고 버퍼를 복호화하는데 사용하기 위해 대응하는(이전에 프로비져닝된) 세션 키를 식별할 수 있다.
도 7에 도시된 바와 같이, 트랜스코더 스트림(TS) 패킷은 트랜스코더(350)와 보안 암호화 제어기(340) 사이에서 포함된 키 리프레시 구조(예를 들어, 705, 710)에 의해 UDP 소켓을 통해 송신될 수 있다. 세션 키(예를 들어, CSK)는 초기화될 수 있고, 트랜스코딩 세션의 과정 중에 리프레시할 수 있다. 보안 암호화 제어기(340)는 세션에서 사용되는 이전 세션 키를 대체하도록 주기적으로 신규 세션 키를 생성할 수 있고, 안전한 설정 구조(예를 들어, 715에서) 또는, MEK와 같은, 공통 비밀 또는 키에 의해 암호화된 세션 키를 포함하는 다른 메시지 또는 구조에서 신규 세션 키를 송신할 수 있다.
일 구현예에서, 세션 키 리프레시는 버퍼 경계 상에서 발생할 수 있다. 클리어 콘텐츠 스트림 패킷은 보안 암호화 제어기(340)의 버퍼 또는 송신 디바이스의 보호 메모리에서 트랜스코더(350)(예를 들어, 송신 디바이스)에서 수집될 수 있다. 큰 버퍼(예를 들어, 64KB 또는 더 큰 버퍼)가 이용될 수 있고 각각의 이러한 버퍼는 암호화될 수 있고, 여기서 상이한 세션 키가 가능하다. 제 1 세션 키는 버퍼를 대량 암호화하는데 사용될 수 있고 클리어 키 리프레시 헤더(예를 들어, 705)는 제 1 세션 키를 식별하도록 암호화된 버퍼에 붙여질 수 있다. 다음의 이러한 버퍼의 송신을 제출 또는 그렇지 않으면 트리거링하기 이전에, 보안 암호화 제어기(340)에 의한 다음 세션 키의 생성을 개시하도록(예를 들어, 소프트웨어 기반 제어기 또는 미디어 게이트웨이의 원자의 라이브러리에 대해) 호출이 수행될 수 있다. 다음 세션 키 식별자는 다음 세션 키에 할당될 수 있고 다음 세션 키는 수신 디바이스(예를 들어, 경우에 따라, 보안 암호화 제어기(340) 또는 트랜스코더(350))로 송신될 다음 버퍼를 암호화하는데 사용될 수 있다. 다음 버퍼는, 암호화될 때, 트랜스코딩 세션이 완료될 때까지 다음 세션 키를 식별하는 대응하는 키 리프레시 구조로 송신할 수 있다. 일부 경우에, 신규 세션 키 및 세션 키 식별자의 개시는 보안 암호화 제어기(340)에 의해 구동될 수 있다. 다른 경우에, 원자의 소프트웨어 기반 제어기는 예를 들어, 다른 예시들 중에서도, 신규 세션 ID가 보안 암호화 제어기(340)와 트랜스코더(350) 사이에서 암호화된 버퍼를 전달할 때마다 생성되는 것임을 식별하는 기능을 제공할 수 있다.
일부 구현예에서, 보안 암호화 제어기(340)에 의해 생성되는 세션 키는 16 바이트 AES 키가 될 수 있다. 일부 구현예에서, 세션 키 식별자는 키를 암호화된 콘텐츠와 동기화하는데 사용되는 4 바이트 무부호 정수 키 시퀀스 번호로서 구현될 수 있다. 예를 들어, 일례에서, 세션 키 식별자는 시스템 부트 시간에서 0의 값으로 시작하는 키 시퀀스 숫자를 포함할 수 있다. 키 시퀀스 값은 키 리프레시 함수에 대한 각각의 호출 이전에 1씩 증분될 수 있다. 즉, 부트 이후에 트랜스코더로 패스되는 제 1 키 시퀀스 숫자는 1이고, 시퀀스 숫자는 0xFFFFFFFF 내지 0x00000000로 랩핑(wrapping)한다.
또한, 보안 암호화 제어기 내부 키 저장 내부의 플래그(또는 트랜스코더, 트랜스코더의 내부 키 저장의 경우에)는 키가 아웃바운드 또는 인바운드 키인지를 특정할 수 있다. 또한, 일례의 구현예에서, 4개의 키가 각 콘텐츠 채널에 대해 유지될 수 있고, 다른 것들 중에서도, 두 개는 암호화를 위한 것이고 두 개는 복호화를 위한 것이다(예를 들어, 현재 키 및 바로 이전 키, 또는 대안적으로, 현재 키 및 바로 후속하는 키(예를 들어, 버퍼 경계와 동시에 일어나는 리프레시의 경우에)).
일례에서, 소프트웨어 기반 원자 제어기는 세션 키 식별자를 생성할 수 있다. 세션 키 식별자는 보안 암호화 제어기 API 호출에 포함될 수 있고 원자는 버퍼가 암호화 또는 복호화된 버퍼가 되게 하고, 예를 들어, 키 리프레쉬 구조를 통해, 송신하는 버퍼에 세션 키 식별자를 붙일 수 있다. 원자 기반 제어기는, 어떤 세션 키가 사용되어야하는지를 결정하고 송신하는 버퍼 상에 키 리프레시 구조를 붙이고, 일부 경우에, 수신하는 버퍼로부터, 키 리프레시 구조를 제거하는 것을 포함하여, 송신되고 수신되는 버퍼의 처리를 추가로 제어할 수 있다. 트랜스코더(350)는 현재 활성인 "세션 키 ID"를 사용하여 리턴 버퍼 상에 키 리프레시 구조(예를 들어, 710)를 생성하여, 이는 원제 제어기로부터 수신된다. 원자 제어기는 어떤 세션 키가 각각의 버퍼를 암호화하는데 사용되는지를 식별할 수 있어서, 매번 이를 수행할 때 어떤 키가 사용되는지를 지정하고 SEC API를 호출함으로써 암호화를 실시해야할 책임이 있다. 실제로, 트랜스코더(350)로부터 수신된 버퍼를 복호화하는데 사용하는 세션 키는 트랜스코더로부터 리턴되는 키 리프레시 구조(예를 들어, 710))에 의해 식별되고, 원자 제어기는, 다른 잠재적인 예시들 및 아키텍쳐들 중에서도, 보안 암호화 제어기에 의해 수행될 원자 제어기에 의해 요청된 버퍼 복호화에서 (대응하는 보안 암호화 제어기 API를 통해) 보안 암호화 제어기에 의해 사용될 대응하는 세션 키를 식별하기 위해 이를 사용할 수 있다.
도 8a 내지 8b를 참조하면, 시스템 온 칩(SOC)과 트랜스코더를 연결하는 미디어 게이트웨이 링크의 검출과 관련한 예시의 기술을 도시하는 흐름도(800a, 800b)가 도시된다. 예를 들어, 로직은 디바이스 상에 제공될 수 있고, 예를 들어, 보안 암호화 제어기는, 하나의 디바이스(예를 들어, SOC)로부터 다른 디바이스(예를 들어, 트랜스코더)로 송신될, 미디어 콘텐츠 패킷의 번들과 같은, 데이터의 암호화에서 사용될 특정 세션 키를 식별(805)하는 것이다. 특정 세션 키는 제 2 디바이스와의 세션에서 제 1 디바이스에 의해 유지되는 복수의 세션 키들 중 하나가될 수 있다. 복수의 세션 키들 중 적어도 일부는 키 리프레시가 발생된 이후에 오래된 키로 암호화되는 하나 이상의 비순차 패킷에 잠재적으로 여전히 적용할 수 있는 "오래된" 키가 될 수 있다. 따라서, 다른 시나리오들 중에서도, 오래된 세션 키의 복사본은 이러한 비순차 패킷을 처리하도록 일부 기간 동안 유지될 수 있다. 복수의 패킷과 같은, 특정 콘텐츠는 특정 세션 키를 사용하여 암호화(810)될 수 있고, (예를 들어, 하나 이상의 인터페이스를 통해 또는 하나 이상의 라이브러리를 사용하여) 제 2 디바이스로 송신되게 야기(815)될 수 있다. 콘텐츠를 복호하기 위해 어떤 세션 키를 사용하는지를 식별하는데 제 2 디바이스를 보조하도록 제 2 디바이스에 대한 특정 세션 키를 식별하는 클리어텍스트 키 리프레시 구조를 암호화된 콘텐츠가 포함할 수 있다. 세션 키는 예를 들어, 암호화된 전송의 각 전송 이후에, 빈번하게 리프레시할 수 있다. 세션 키는 식별(820) 및 처리될 수 있어서, 제 1 디바이스 및 제 2 디바이스는 리프레시에서 생성되는 신규 세션 키의 일반적으로 알려진 식별자를 도출하거나 그렇지 않으면 식별하는 것이 가능하다. 세션 키 리프레시의 식별은 다른 예시들 중에서도, (예를 들어, 원자 제어기로부터의) 신규 세션 키의 수신, 신규 세션 키를 생성하는 호출을 포함할 수 있다. 신규 세션 키로 암호화된 콘텐츠는 신규 세션 키에 할당되고 세션의 디바이스에게 알려진 대응하는 식별자를 식별하는 키 리프레시 구조를 포함할 수 있다.
도 8b를 참조하면, 암호화된 데이터는 다른 디바이스로부터 수신(830)되고 암호화된 데이터는 클리어텍스트 키 리프레시 구조를 포함할 수 있다. 일부 구현예에서, 키 리프레시 구조는 암호화된 데이터에 붙여지는 데이터를 포함할 수 있다. 키 리프레시 구조는 데이터를 암호화하는데 사용되는 키(또는 키 쌍)를 식별할 수 있고(또는 데이터를 복호화하는데 사용되는 것) 수신 디바이스는 키 리프레시 구조로부터 데이터를 복호화하는데 사용하는 키를 식별(835)할 수 있다. 키는 키 리프레시에 후속하는 비순차 패킷을 암호화하는데 사용되는 "오래된" 키를 포함하여, 제 1 디바이스와 제 2 디바이스 사이에서 전송되는 데이터에 잠재적으로 적용할 수 있는 복수의 활성 키 중 하나가 될 수 있다. 데이터는 식별된 키를 사용하여 암호화(840)될 수 있다. 후속 키 리프레시는 또한 예를 들어, 다른 예시들 중에서도, 세션에서 사용되고 측대역 채널을 통해 수신되는 신규 세션 키 또는 키 쌍의 수신에 응답하여, 식별(845) 및 관리 될 수 있다.
도 9를 참조하면, 본 발명의 실시예에 따른 예시적인 컴퓨팅 시스템(900)의 블록도가 도시된다. 도 9에서 도시된 바와 같이, 멀티프로세서 시스템(900)은 포인트 투 포인트 상호접속 시스템이고, 포인트 투 포인트 상호접속부(950)를 통해 연결되는 제 1 프로세서(970) 및 제 2 프로세서(980)를 포함한다. 프로세서(970 및 980)의 각각은 일부 버전의 프로세서가 될 수 있다. 일 실시예에서, (952 및 954)는 인텔의 QPI(Quick Path Interconnect) 아키텍쳐와 같은 직렬, 포인트 투 포인트 코히런트 상호접속 패브릭의 부분이다. 그 결과로서, 본 발명은 QPI 아키텍쳐 내에서 구현될 수 있다.
오직 두 프로세서(970,980)로 도시되었지만, 본 발명의 범위는 이에 제한되지 않는다는 것이 이해될 것이다. 다른 실시예에서, 하나 이상의 추가적인 프로세서가 주어진 프로세서에서 제시될 수 있다.
프로세서(970 및 980)는 집적 메모리 제어기 유닛(972 및 982) 각각을 포함하여 도시된다. 프로세서(970)는 또한 이의 버스 제어기 유닛 포인트 투 포인트(P-P) 인터페이스(976 및 978)의 부분으로서 포함하고, 유사하게, 제 2 프로세서(980)는 P-P 인터페이스(986 및 988)를 포함한다. 프로세서(970, 980)는 P-P 인터페이스 회로(978, 988)를 사용하여 포인트 투 포인트(P-P) 인터페이스(950)를 통해 정보를 교환할 수 있다. 도 9에서 도시된 바와 같이, IMC(972 및 982)는 프로세서를, 개별적인 프로세서에 로컬적으로 부착되는 주 메모리의 부분이 될 수 있는 개별적인 메모리, 즉 메모리(932 및 934)에 연결시킬 수 있다.
프로세서(970, 980) 각각은 포인트 투 포인트 인터페이스 회로(976, 994, 986, 998)를 사용하여 개별적인 P-P 인터페이스(952, 954)를 통해 칩셋(990)과 정보를 교환한다. 칩셋(990)은 또한 고성능 또는 다른 상호접속부(939)를 따라 인터페이스 회로(992)를 통해, 칩셋으로부터 원격인 디바이스와 같은, 다른 디바이스(예를 들어, 938)와 정보를 교환한다.
공유된 캐시(도시되지 않음)는 프로세서 중 하나 또는 양 프로세서의 외부에 포함될 수 있고, 그러나 P-P 상호접속부를 통해 프로세서에 연결되어서 프로세서 중 하나 또는 양 프로세서의 로컬 캐시 정보는 프로세서가 저전력 모드에 놓여진다면 공유된 캐시에 저장될 수 있다.
칩셋(990)은 인터페이스(996)를 통해 제 1 버스(916)에 연결될 수 있다. 일 실시예에서, 제 1 버스(916)는 PCI(Peripheral Component Interconnect) 버스, 또는 PCI 익스프레스 버스와 같은 버스 또는 다른 제 3 세대 I/O 상호접속부 버스가될 수 있지만, 본 발명의 범위가 이에 제한되지 않는다.
도 9에서 도시된 바와 같이, 다양한 I/O 디바이스(914)는 제 1 버스(916)를 제 2 버스(920)에 연결하는 버스 브릿지(918)를 따라, 제 1 버스(916)에 연결된다. 일 실시예에서, 제 2 버스(920)는 LPC(low pin count) 버스를 포함한다. 다양한 디바이스는, 예를 들어, 일 실시예에서, 종종 명령어/코드 및 데이터(930)를 포함하는 디스크 드라이브 또는 다른 대량 저장 장치와 같은 통신 디바이스(927) 및 저장 유닛(928)을 포함하여, 제 2 버스(920)에 연결되는 것이다. 포함된 컴포넌트 및 상호접속 아키텍쳐가 달라지는 다른 아키텍쳐가 가능하다는 것에 유의해야한다. 예를 들어, 도 9의 포인트 투 포인트 아키텍쳐 대신에, 시스템은 멀티 드롭 버스 또는 다른 이러한 아키텍쳐를 구현할 수 있다. 추가적으로, 도 9의 컴퓨터 시스템은 예시의 방식으로만 제공되는 것에 유의해야하고, 임의의 다양한 다른 컴퓨터 시스템 및 컴퓨터 시스템 아키텍쳐 및 플랫폼은 대신에 미디어 게이트웨이에서 또는 위에서 설명된 임의의 원리를 구현하기 위해 활용될 수 있다는 것이 이해될 것이다.
본 발명은 제한된 수의 실시예와 관련하여 설명되었지만, 당업자는 다양한 수정 및 이들로부터의 변형을 이해할 것이다. 첨부된 청구항은 본 발명의 참 사상 및 범위 내에 속하는 모든 이러한 수정 및 변형을 커버하도록 의도된다.
설계는 창작에서부터 제조를 위한 시뮬레이션까지 다양한 단계를 통해 진행할 수 있다. 설계를 나타내는 데이터는 다수의 방식으로 설계를 나타낼 수 있다. 먼저, 시뮬레이션에서 유용한 것으로서, 하드웨어는 하드웨어 설명 언어 또는 다른 기능적인 설명 언어를 사용하여 표현될 수 있다. 추가적으로, 로직 및/또는 트랜지스터 게이트를 갖는 회로 레벨 모델은 설계 프로세스의 일부 단계에서 생산될 수 있다. 또한, 일부 단계에서, 대부분의 설계는 하드웨어 모델의 다양한 디바이스의 물리적 배치를 나타내는 데이터의 레벨에 도달한다. 통상적인 반도체 제조 기술이 사용되는 경우에, 하드웨어 모델을 나타내는 데이터는 집적 회로를 생산하는데 사용되는 마스크를 위한 상이한 마스크 레이어 상에 다양한 특징의 존재 또는 부재를 특정하는 데이터가 될 수 있다. 설계의 임의의 표현에서, 데이터는 임의의 형태의 머신 판독가능 매체에 저장될 수 있다. 디스크와 같은 메모리 또는 자기 또는 광학 저장부는 이러한 정보를 전송하도록 변조 또는 그렇지 않으면 생성되는 광학파 또는 전자파를 통해 전송되는 정보를 저장하는 머신 판독가능 매체가 될 수 있다. 코드 또는 설계를 지시하거나 반송하는 전자 반송파가 전송될 때, 전기 신호의 복사, 버퍼링 또는 재전송이 수행되어, 새로운 복사본이 만들어진다. 따라서, 통신 제공자 또는 네트워크 제공자는 유형의, 머신 판독가능 매체, 적어도 임시적으로는 제품에, 본 발명의 실시예의 기술을 구현하는 반송파로 인코딩되는 정보를 저장할 수 있다.
본원에서 사용되는 것과 같은 모듈은 하드웨어, 소프트웨어, 및/또는 펌웨어의 임의의 조합을 지칭한다. 예시로서, 모듈은 마이크로컨트롤러에 의해 실행되도록 구성되는 코드를 저장하는 비일시적 매체와 연관된, 마이크로컨트롤러와 같은, 하드웨어를 포함한다. 따라서, 일 실시예에서, 모듈에 대한 참조는, 특히 비일시적 매체 상에 보유될 코드를 인식 및/또는 실행하도록 구성되는 하드웨어를 지칭한다. 또한, 일 실시예에서, 모듈의 사용은, 특히 사전결정된 동작을 수행하는 마이크로컨트롤러에 의해 실행되도록 구성되는, 코드를 포함하는 비일시적 매체를 지칭한다. 또 다른 실시예에서, 추정될 수 있는 바와 같이, 용어 모듈은 (이 예시에서) 마이크로컨트롤러 및 비일시적 매체의 조합을 지칭할 수 있다. 종종 분리된 것으로서 도시되는 모듈 경계는 일반적으로 변화하고 잠재적으로 중복된다. 예를 들어, 제 1 모듈 및 제 2 모듈은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 공유할 수 있는 반면, 일부 독립적인 하드웨어, 소프트웨어, 또는 펌웨어를 잠재적으로 포함한다. 일 실시예에서, 용어 로직의 사용은 프로그램가능한 로직 디바이스와 같은, 트랜지스터, 레지스터, 또는 다른 하드웨어와 같은 하드웨어를 포함한다.
일 실시예에서, 용어 "~로(to)", "~로 구성된(configured to)"의 사용은, 지정된 또는 결정된 태스크를 수행하는 장치, 하드웨어, 로직 또는 요소를 배치, 조립, 제조, 판매 제공, 수입 및/또는 설계하는 것을 지칭한다. 이 예시에서, 동작하지 않는 장치 또는 이들의 요소는 지정된 태스크를 수행하도록 설계, 연결, 및/또는 상호접속된다면 지정된 태스크를 수행하도록 여전히 '구성되는' 것이다. 전적으로 도시적인 예시에서, 로직 게이트는 동작 중에 0 또는 1을 제공할 수 있다. 그러나 클럭에 대한 인에이블 신호(enable signal)를 제공하도록 '구성되는' 로직 게이트는 1 또는 0을 제공할 수 있는 모든 잠재적인 로직 게이트를 포함하지 않는다. 대신에, 로직 게이트는 동작 중에 1 또는 0 출력이 클럭을 인에이블링하는 일부 방식으로 연결되는 것이다. 다시 한번 용어 '구성되는'은 동작을 필요로 하지는 않지만, 대신에, 장치, 하드웨어, 및/또는 요소의 잠재적 상태(latent state)에 중점을 두고, 여기서 장치, 하드웨어, 및/또는 요소가 동작할 때 장치, 하드웨어, 및/또는 요소가 특정 태스크를 수행하도록 설계된다.
또한, 구절 '가능한(capable of/to)' 및/또는 '동작가능한(operable to)'의 사용은, 일 실시예에서, 특정 방식으로 장치, 로직, 하드웨어, 및/또는 요소의 사용을 가능하게 하는 방식으로 설계되는 일부 장치, 로직, 하드웨어, 및/또는 요소를 지칭한다. 위에서 일 실시예에서, 가능한, 동작가능한의 사용은, 장치, 로직, 하드웨어, 및/또는 요소의 잠재적 상태를 지칭하고, 여기서 장치, 로직 하드웨어, 및/또는 요소가 동작하지 않지만 특정 방식으로 장치의 사용을 가능하게 하는 방식으로 설계된다는 것에 유의해야한다.
본원에서 사용된 바와 같이, 값은 임의의 알려진 표현의 숫자, 상태, 로직 상태, 또는 이진 로직 상태를 포함한다. 종종, 로직 레벨, 로직 값, 또는 로직적인 값의 사용은 또한 단순하게 이진 로직 상태를 표현하는 1 및 0으로 지칭된다. 예를 들어, 1은 하이 로직 레벨을 지칭하고 0은 로우 로직 레벨을 지칭한다. 일 실시예에서, 트랜지스터 또는 플래시 셀과 같은, 저장 셀은 단일 로직 값 또는 다수의 로직 값을 보유하는 것이 가능할 수 있다. 그러나, 컴퓨터 시스템에서 다른 표현의 값이 사용되었다. 예를 들어, 십진수 10은 또한 1010의 이진 값 및 16진법 문자 A로서 표현될 수 있다. 따라서, 값은 컴퓨터 시스템에서 보유되는 것이 가능한 임의의 표현의 정보를 포함한다.
또한, 상태는 값 또는 값의 부분으로서 표현될 수 있다. 예시로서, 로직 1과 같은 제 1 값은 디폴트 또는 초기 상태를 표현할 수 있는 반면, 로직 0과 같은 제 2 값은 비 디폴트 상태를 표현할 수 있다. 또한, 일 실시예에서, 용어 리셋 및 셋은 디폴트 및 업데이트된 값 또는 상태를 각각 지칭한다. 예를 들어, 디폴트 값은 잠재적으로, 하이 로직 값, 즉, 리셋을 포함하는 반면, 업데이트된 값은 잠재적으로 로우 로직 값, 즉, 셋을 포함한다. 값의 임의의 조합은 임의의 수의 상태를 표현하는데 활용될 수 있다.
제시된 방법, 하드웨어, 소프트웨어, 펌웨어 또는 코드 세트의 실시예는 프로세싱 요소에 의해 실행가능한 머신 액세스가능, 머신 판독가능, 컴퓨터 액세스가능, 또는 컴퓨터 판독가능 매체 상에 저장되는 명령어 또는 코드를 통해 구현될 수 있다. 비일시적 머신 액세스가능/판독가능 매체는 컴퓨터 또는 전자 시스템과 같은, 머신에 의해 판독가능한 형태로 정보를 제공(즉, 저장 및/또는 전송)하는 임의의 메커니즘을 포함한다. 예를 들어, 비일시적 머신 액세스가능 매체는 정적 RAM(SRAM) 또는 동적 RAM(DRAM)과 같은 랜덤 액세스 메모리(RAM), ROM, 자기 또는 광학 저장 매체, 플래시 메모리 디바이스, 전자 저장장치, 광학 저장장치, 음향 저장장치, 일시적(전파) 신호(예를 들어, 반송파, 적외선 신호, 디지털 신호)로부터 수신되는 정보를 보유하기 위한 다른 형태의 저장 장치 등을 포함하고, 이는 이들로부터 정보를 수신할 수 있는 비일시적 매체와 구별되는 것이다.
본 발명의 실시예를 수행하도록 로직을 프로그래밍하는데 사용되는 명령어는 DRAM, 캐시, 플래시 메모리, 또는 다른 저장장치와 같은 시스템에서 메모리 내부에 저장될 수 있다. 또한, 명령어는 네트워크를 통해 또는 다른 컴퓨터 판독가능 매체에 의해 배포될 수 있다. 따라서, 머신 판독가능 매체는, 머신(예를 들어, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장 또는 전송하기 위한 임의의 메커니즘을 포함하지만, 전기적, 광학적, 음향적 또는 다른 형태의 전파 신호(예를 들어, 반송파, 적외선 신호, 디지털 신호 등)를 통해 인터넷을 통한 정보의 전송에서 사용되는 플로피 디스켓, 광 디스크, 컴팩트 디스크, 판독 전용 메모리(CD-ROM), 및 자기광학 디스크, 판독전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 삭제가능한 프로그램가능한 판독전용 메모리(EPROM), 전기적으로 삭제가능한 프로그램가능한 판독전용 메모리(EEPROM), 자기 또는 광학 카드, 플래시 메모리, 또는 유형의 머신 판독가능 저장장치에 제한되지 않는다. 따라서, 컴퓨터 판독가능 매체는 머신(예를 들어, 컴퓨터)에 의해 판독가능한 형태의 전자 명령어 또는 정보를 저장 또는 전송하기에 적합한 임의의 타입의 유형 머신 판독가능 매체를 포함한다.
다음의 예시들은 본 명세서에 따라 본 실시예에 속한다. 하나 이상의 실시예들은 특정 세션 키를 식별하도록 암호화 로직을 제공하는 장치, 시스템, 머신 판독가능 저장장치, 머신 판독가능 매체 및 방법을 제공할 수 있고, 여기서 특정 세션 키는 제 1 디바이스로부터 송신될 콘텐츠를 암호화하는데 사용하기 위한 복수의 세션 키 중 하나이고 암호화된 특정 콘텐츠를 획득하기 위해 특정 세션 키로 특정 콘텐츠를 암호화한다. I/O 로직은 또한 특정 콘텐츠가 키 리프레시 구조와 함께 송신되게 하고, 여기서 키 리프레시 구조는 특정 세션 키가 특정 콘텐츠를 암호화하는데 사용되는 것을 식별하는 것이다.
하나 이상의 예시들은 특정 세션 키의 리프레시를 추가로 식별하도록 암호화 로직을 추가로 제공할 수 있고―리프레시는 제 1 디바이스와 제 2 디바이스 사이의 세션에 대한 신규 세션 키의 식별을 포함함―, 신규 세션키를 제 2 디바이스로 송신될 후속 콘텐츠를 암호화하기 위해 사용한다.
적어도 일례에서, 신규 세션 키는 제 1 디바이스 및 제 2 디바이스 모두에 액세스가능한 신규 식별자와 연관된다.
하나 이상의 예시들은 특정 세션 키를 생성하는 암호화 로직을 또한 제공할 수 있고, 특정 세션 키는 제 1 디바이스 및 제 2 디바이스의 각각에 대해 식별가능한 특정 키 식별자와 연관되고 키 리프레시 구조에 포함된다.
하나 이상의 예시들은 제 1 디바이스 및 제 2 디바이스에 의해 공유되는 암호화 키를 사용하여 특정 세션 키를 암호화하는 암호화 로직과, 암호화된 특정 세션 키가 제 2 디바이스로 송신되게 하는 I/O 로직을 또한 제공할 수 있다.
적어도 일례에서, 암호화 키는 제조 단계에서 제 1 디바이스 및 제 2 디바이스의 각각에 대해 프로비져닝된다.
적어도 일례에서, 암호화된 특정 세션 키는 측대역 채널을 통해 제 2 디바이스로 송신된다.
적어도 일례에서, 제 2 디바이스는 미디어 게이트웨이 디바이스의 트랜스코더를 포함한다.
적어도 일례에서, 키 리프레시 구조는 특정 콘텐츠에 붙여진다.
하나 이상의 실시예는 암호화된 패킷의 세트 및 암호화된 패킷의 세트와 연관되는 키 리프레시 구조를 수신하고, 키 리프레시 구조로부터, 제 1 디바이스와 제 2 디바이스 사이에서 송신되는 콘텐츠를 암호화하는데 사용하기 위해 지정된 복수의 세션 키 중 특정한 하나를 식별하고, 암호화된 패킷의 세트를 특정 세션 키로 복호화하는 복호화 로직을 제공하는 장치, 시스템, 머신 판독가능 저장장치, 머신 판독가능 매체 및 방법을 제공할 수 있다.
하나 이상의 예시들은 트랜스코더 로직을 또한 제공할 수 있고, 콘텐츠는 미디어 콘텐츠를 포함하고, 트랜스코더 로직은 복호화된 미디어 콘텐츠를 트랜스코딩한다.
하나 이상의 예시들은 복수의 세션 키 중 하나를 사용하여 트랜스코딩된 미디어 콘텐츠를 암호화하는 암호화 로직을 또한 제공할 수 있고, 암호화된 트랜스코딩된 미디어 콘텐츠는 트랜스코딩된 미디어 콘텐츠를 암호화하는데 사용되는 세션 키를 식별하는 대응하는 키 리프레시 구조와 함께 제 1 디바이스로 송신된다.
적어도 일례에서, 트랜스코딩된 미디어 콘텐츠를 암호화하는데 사용되는 세션 키는 특정 세션 키와 상이하다.
적어도 일례에서, 상이한 세션 키 및 특정 세션 키는 연관된 세션 키 쌍에 포함된다.
적어도 일례에서, 상이한 세션 키는 제 2 세션 키 쌍에 포함되고 특정 세션 키는 상이한 제 1 세션 키 쌍에 포함된다.
하나 이상의 예시들은 제 1 세션 키 쌍에 포함되는 제 1 세션 키의 리프레시를 식별하는 복호화 로직을 또한 제공할 수 있고, 리프레시는 제 2 세션 키 쌍의 수신을 포함한다.
적어도 일례에서, 제 1 세션 키 쌍 및 제 2 세션 키 쌍 모두는 적어도 제 2 세션 키 쌍에서 세션 키의 후속 리프레시까지 유지된다.
적어도 일례에서, 제 2 세션 키 쌍은 제 1 디바이스로부터 수신되고 제 1 디바이스 및 트랜스코더에 의해 공유되는 암호화 키를 사용하여 암호화되어 송신된다.
하나 이상의 실시예는 세션에서 제 1 디바이스와 제 2 디바이스 사이에서 콘텐츠를 암호화하는데 사용하기 위한 적어도 하나의 신규 세션 키의 생성을 요청하고, 신규 세션 키에 키 식별자를 할당하고, 신규 세션 키는 세션에서 제 1 디바이스 및 제 2 디바이스에 의해 사용될 복수의 세션 키 중 하나이고 복수의 세션 키의 각각은 개별적인 키 식별자와 연관되는 I/O 로직을 제공하는 장치, 시스템, 머신 판독가능 저장장치, 머신 판독가능 매체 및 방법에 제공할 수 있다. I/O 로직은 패킷의 세트가 신규 세션 키를 사용하여 암호화되게 하고, 암호화된 패킷의 세트를 제 1 디바이스로부터 제 2 디바이스로 송신하고, 패킷의 세트를 송신하는 것은 암호화된 패킷의 세트와 함께 포함될 키 리프레시 구조를 생성하는 것을 포함하고, 신규 세션 키가 패킷의 세트를 암호화하도록 제 1 디바이스에 의해 사용되는 것을 식별한다.
청구항 제19항의 장치에서, 키 식별자를 할당하는 것은 이전 세션 키의 특정 키 식별자를 식별하는 것과 식별 스킴에 따라 다음 키 식별자를 결정하는 것을 포함하고, 다음 키 식별자는 세션 키의 키 식별자이다.
청구항 제20항의 장치에서, 다음 키 식별자는 특정 키 식별자를 증분시키는 것에 의해 결정된다.
청구항 제19항의 장치에서, I/O 로직은 또한 신규 세션 키에 대한 키 식별자의 할당을 식별하는 제 2 디바이스로 데이터를 제공한다.
하나 이상의 실시예는 콘텐츠 패킷을 서빙하는 시스템 온 칩과, 콘텐츠 패킷을 트랜스코딩하는 트랜스코더와, 보안 암호화 제어기를 포함하는 미디어 게이트웨이를 제공하는 장치, 시스템, 머신 판독가능 저장장치, 머신 판독가능 매체 및 방법에 제공할 수 있다. 보안 암호화 제어기는 트랜스코더와 시스템 온 칩 사이의 세션 동안 복수의 세션 키를 생성할 수 있고, 복수의 콘텐츠 패킷의 세트는 트랜스코더와 시스템 온 칩 사이에서 송신되고, 콘텐츠 패킷의 세트의 각각은 복수의 세션 키의 각각에 의해 암호화되고, 각각의 암호화된 콘텐츠 패킷의 세트는 콘텐츠 패킷의 세트를 암호화하는데 사용되는 각각의 세션 키를 식별하는 키 리프레시 구조를 포함하도록 송신된다.
하나 이상의 예시들은 시스템 온 칩 상에 포함되고, 또한 복수의 세션 키를 사용하여 시스템 온 칩으로부터 트랜스코더로 송신되는 콘텐츠 패킷의 세트를 암호화하고, 복수의 세션 키를 사용하여 트랜스코더로부터 시스템 온 칩으로 송신되는 암호화된 콘텐츠 패킷의 세트를 복호화하는 보안 암호화 제어기를 또한 제공할 수 있다.
적어도 일례에서, 미디어 게이트웨이는 세션 동안 사용되는 세션 키의 리프레시를 관리하는 키 관리 로직을 더 포함하고, 리프레시는 세션에서 트랜스코더 및 시스템 온 칩에 의해 사용되는 이전 세션 키의 세트를 신규 세션 키의 세트로 교체하고, 이전 세션 키 세트 및 신규 세션 키 세트에서 각각의 키는 연관된 키 식별자를 갖고, 트랜스코더 및 시스템 온 칩은 적어도 신규 세션 키의 세트의 리프레시까지 이전 세션 키 세트 및 신규 세션 키 세트를 유지한다.
적어도 일례에서, 키 관리 로직은 세션 키와 대응하는 키 식별자 사이의 트랜스코더 연관을 식별한다.
적어도 일례에서, 세션 키의 각각은, 트랜스코더로 송신될 콘텐츠 패킷을 암호화하기 위해 시스템 온 칩에 의한 사용 및 시스템 온 칩으로부터 수신된 암호화된 패킷을 복호화하기 위해 트랜스코더에 의한 사용을 위한 개별적인 시스템 온 칩 세션 키와, 시스템 온 칩으로 송신될 트랜스코딩된 콘텐츠 패킷을 암호화하기 위해 트랜스코더에 의한 사용 및 트랜스코더로부터 수신된 암호화된 패킷을 복호화하기 위해 시스템 온 칩에 의한 사용을 위한 개별적인 트랜스코더 세션 키를 포함한다.
본 명세서 전반에서 "일 실시예(one embodiment)", "실시예(an embodiment)", "일례(one example)", "일 경우에(one instance)" 등에 대한 참조는 실시예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시에에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반에서 다양한 위치에 구절 "일 실시예에서" 또는 "실시예에서" 등의 등장은 반드시 모든 동일한 실시예를 지칭하는 것은 아니다. 또한, 특정 특징, 구조, 또는 특성은 하나 이상의 실시예에서 임의의 적합한 방식으로 통합될 수 있다.
앞의 명세서에서, 상세한 설명이 특정 예시적인 실시예와 관련하여 주어졌다. 그러나, 다양한 수정 및 변경이 첨부된 청구항에서 제시된 것과 같은 본 발명의 더 넓은 사상 및 범위로부터 벗어남이 없이 이루어질 수 있다는 것이 명백해질 것이다. 따라서, 명세서 및 도면은 제한하는 의미 보다는 예시적인 의미로 간주되는 것이다. 또한, 앞의 실시예 및 다른 예시적인 언어의 사용은 반드시 동일한 실시예 또는 동일한 예시를 지칭하지는 않지만, 상이하고 구분되는 실시예 뿐만 아니라 잠재적으로 동일한 실시예를 지칭할 수 있다.

Claims (27)

  1. 암호화 로직과 I/O 로직을 포함하는 장치로서,
    상기 암호화 로직은,
    특정 세션 키를 식별하고 ― 상기 특정 세션 키는 세션에서 제 1 디바이스로부터 송신될 콘텐츠를 암호화하는데 사용하기 위한 복수의 세션 키 중 하나임 ―,
    상기 특정 세션 키로 특정 콘텐츠의 제 1 부분을 암호화하여, 제 1 암호화된 콘텐츠를 획득하며,
    상기 세션 동안 상기 특정 세션 키의 리프레시(refresh)를 식별하며 ― 상기 리프레시는 상기 세션에서 상기 특정 세션 키의 사용으로부터 상기 복수의 세션 키 중 다른 세션 키의 사용으로의 변화(transition)에 대응하고, 상기 다른 세션 키를 포함하는 제 2 세션 키 쌍(pair)을 측대역(sideband) 채널을 통해 제 2 디바이스로 송신하는 것을 포함함 ―,
    상기 다른 세션 키로 상기 특정 콘텐츠의 제 2 부분을 암호화하여, 제 2 암호화된 특정 콘텐츠를 획득하며,
    상기 I/O 로직은,
    상기 제 1 암호화된 콘텐츠로 하여금 제 1 키 리프레시 구조와 함께 트랜스코딩을 위한 상기 제 2 디바이스로 송신되게 하며 ― 상기 제 1 키 리프레시 구조는 상기 특정 세션 키가 상기 세션 내에서 상기 제 1 암호화된 콘텐츠를 암호화하는데 사용되었다는 것을 나타내고, 대응하는 제 1 세션 키 쌍이 상기 제 1 암호화된 콘텐츠를 복호화하는데 사용된다는 것을 상기 제 2 디바이스에게 나타냄 ―,
    상기 제 2 암호화된 콘텐츠로 하여금 제 2 키 리프레시 구조와 함께 송신되게 하는 ― 상기 제 2 키 리프레시 구조는 상기 다른 세션 키가 상기 세션 내에서 상기 제 2 암호화된 콘텐츠를 암호화하는데 사용되었다는 것을 나타내고, 대응하는 제 2 세션 키 쌍이 상기 제 2 암호화된 콘텐츠를 복호화하는데 사용된다는 것을 상기 제 2 디바이스에게 나타냄 ―
    장치.
  2. 제 1 항에 있어서,
    상기 제 1 키 리프레시 구조는 상기 특정 세션 키에 맵핑되는 제 1 키 식별자를 포함하고, 상기 제 2 키 리프레시 구조는 상기 다른 세션 키에 맵핑되는 제 2 키 식별자를 포함하는
    장치.
  3. 제 2 항에 있어서,
    상기 복수의 세션 키에서 각각의 세션 키에 대한 키 식별자의 맵핑은 상기 제 1 디바이스 및 상기 제 2 디바이스 모두에 액세스가능한
    장치.
  4. 제 1 항에 있어서,
    상기 암호화 로직은 또한 상기 특정 세션 키를 생성하고, 상기 특정 세션 키는, 상기 제 1 디바이스 및 제 2 디바이스의 각각에 대해 식별가능한 특정 키 식별자와 연관되고 상기 키 리프레시 구조에 포함되는
    장치.
  5. 제 4 항에 있어서,
    상기 암호화 로직은 또한 상기 제 1 디바이스 및 상기 제 2 디바이스에 의해 공유되는 암호화 키를 사용하여 상기 특정 세션 키 및 상기 다른 세션 키 각각을 암호화하고,
    상기 I/O 로직은 또한 상기 암호화된 특정 세션 키 및 상기 암호화된 다른 세션 키로 하여금 상기 제 2 디바이스로 각각 송신되게 하는
    장치.
  6. 제 5 항에 있어서,
    상기 암호화 키는 제조 단계에서 상기 제 1 디바이스 및 상기 제 2 디바이스의 각각에 대해 프로비져닝(provisioned)되는
    장치.
  7. 제 5 항에 있어서,
    상기 암호화된 특정 세션 키 및 상기 암호화된 다른 세션 키는 측대역 채널을 통해 상기 제 2 디바이스로 각각 송신되는
    장치.
  8. 제 1 항에 있어서,
    상기 제 2 디바이스는 미디어 게이트웨이 디바이스의 트랜스코더를 포함하는
    장치.
  9. 제 1 항에 있어서,
    상기 제 1 키 리프레시 구조는 상기 제 1 암호화된 콘텐츠에 덧붙여져 송신되고(sent prepended),
    상기 제 2 키 리프레시 구조는 상기 제 2 암호화된 콘텐츠에 덧붙여져 송신되는
    장치.
  10. 복호화 로직, 트랜스코더 로직 및 암호화 로직을 포함하는 장치로서,
    상기 복호화 로직은,
    세션에서 암호화된 데이터 및 상기 암호화된 데이터와 연관되는 키 리프레시 구조를 수신하고 ― 상기 암호화된 데이터 및 상기 키 리프레시 구조는 제 1 디바이스로부터 수신됨 ―,
    상기 키 리프레시 구조로부터, 상기 암호화된 패킷의 세트를 복호화하는데 사용될 제 2 디바이스에 저장되는 복수의 세션 키 중 하나의 특정 세션 키를 식별하며 ― 상기 특정 세션 키는 제 1 세션 키 쌍에 포함되고, 상기 복수의 세션 키 중 각각의 세션 키는 상기 제 1 디바이스와 상기 제 2 디바이스 사이에서 송신되는 데이터의 암호화 또는 복호화 중 적어도 하나에서 사용하기 위해 지정됨 ―,
    상기 제 1 세션 키 쌍에서 다른 특정 세션 키로 상기 암호화된 데이터를 복호화하며,
    제 2 세션 키 쌍을 수신하는 것을 포함하는 세션 키의 리프레시를 식별하며,
    상기 트랜스코더 로직은 상기 복호화된 데이터를 트랜스코딩하며,
    상기 암호화 로직은 상기 복수의 세션 키 중 제 2 세션 키를 사용하여 상기 트랜스코딩된 데이터를 암호화하는 ― 상기 제 2 세션 키는 상기 제 2 세션 키 쌍에 포함되고, 상기 제 2 세션 키가 상기 트랜스코딩된 데이터를 암호화하는데 사용되었다는 것을 나타내는 대응하는 키 리프레시 구조와 함께 상기 암호화된 트랜스코딩된 데이터가 송신됨 ―
    장치.
  11. 제 10 항에 있어서,
    트랜스코더 로직을 더 포함하되, 상기 데이터는 미디어 콘텐츠를 포함하는
    장치.
  12. 제 10 항에 있어서,
    상기 제 2 디바이스는 트랜스코더 디바이스를 포함하고, 상기 제 1 디바이스는 시스템 온 칩(a system on chip; SOC)을 포함하는
    장치.
  13. 제 10 항에 있어서,
    상기 트랜스코딩된 데이터를 암호화하는데 사용되는 상기 제 2 세션 키는 상기 특정 세션 키와 상이한
    장치.
  14. 제 10 항에 있어서,
    상기 제 1 세션 키 쌍 및 상기 제 2 세션 키 쌍 모두는 적어도 상기 제 2 세션 키 쌍에서 세션 키의 후속 리프레시까지 유지되는
    장치.
  15. 제 10 항에 있어서,
    상기 제 2 세션 키 쌍은 상기 제 1 디바이스로부터 수신되고, 상기 제 1 디바이스 및 상기 제 2 디바이스에 의해 공유되는 암호화 키를 사용하여 암호화되어 송신되는
    장치.
  16. I/O 로직을 포함하는 장치로서,
    상기 I/O 로직은,
    세션에서 제 1 디바이스와 제 2 디바이스 사이에서 콘텐츠를 암호화하고 복호화하는데 사용하기 위한 적어도 하나의 신규 세션 키 쌍의 생성을 요청하고 ― 상기 신규 세션 키는 상기 세션에서 상기 제 1 디바이스와 상기 제 2 디바이스 사이에서 콘텐츠를 암호화하고 복호화하는데 사용하기 위한 이전 세션 키 쌍을 대체함 ―,
    상기 신규 세션 키 쌍에 적어도 하나의 키 식별자를 할당하며 ― 상기 신규 세션 키 쌍은 상기 세션에서 상기 제 1 디바이스 및 상기 제 2 디바이스에 의해 사용될 복수의 세션 키 쌍 중 하나이고 상기 복수의 세션 키 쌍의 각각은 적어도 하나의 개별적인 키 식별자와 연관됨 ―,
    패킷의 세트로 하여금 상기 신규 세션 키 쌍의 특정 세션 키를 사용하여 암호화되게 하며,
    상기 암호화된 패킷의 세트를 키 리프레시 구조와 함께 상기 제 1 디바이스로부터 상기 제 2 디바이스로 송신하되, 상기 패킷의 세트를 송신하는 것은 상기 키 리프레시 구조를 생성하는 것을 포함하고, 상기 키 리프레시 구조는 상기 신규 세션 키 쌍의 상기 키 식별자를 포함하고 상기 특정 세션 키가 상기 패킷의 세트를 암호화하기 위해 상기 제 1 디바이스에 의해 사용되었다는 것을 나타내며 상기 신규 세션 키 쌍에서 다른 세션 키가 상기 암호화된 패킷의 세트를 복호화하기 위해 사용된다는 것을 나타내며, 상기 복수의 세션 키에서 상기 키 식별자의 대응하는 세션 키에 대한 상기 키 식별자의 맵핑은 상기 제 1 디바이스 및 제 2 디바이스에게 비밀(secret)인
    장치.
  17. 제 16 항에 있어서,
    상기 키 식별자를 할당하는 것은 이전 세션 키 쌍의 특정 키 식별자를 식별하는 것과 식별 스킴에 따라 다음 키 식별자를 결정하는 것을 포함하고, 상기 다음 키 식별자는 상기 신규 세션 키 쌍의 키 식별자인
    장치.
  18. 제 17 항에 있어서,
    상기 다음 키 식별자는 상기 특정 키 식별자를 증분시키는 것에 의해 결정되는
    장치.
  19. 제 16 항에 있어서,
    상기 I/O 로직은 또한 상기 신규 세션 키 쌍에 대한 상기 키 식별자의 할당을 나타내는 데이터를 상기 제 2 디바이스에 제공하는
    장치.
  20. 미디어 게이트웨이를 포함하는 시스템으로서,
    상기 미디어 게이트웨이는,
    시스템 온 칩과,
    트랜스코더와,
    상기 트랜스코더와 상기 시스템 온 칩 사이에서 세션 동안 복수의 세션 키를 생성하기 위한 보안 암호화 제어기를 포함하되,
    상기 시스템 온 칩은
    콘텐츠 데이터를 서빙(serve)하고,
    상기 콘텐츠 데이터를 암호화하며,
    키 리프레시 구조와 함께 상기 암호화된 콘텐츠 데이터를 상기 트랜스코더로 송신하며,
    상기 트랜스코더는
    상기 암호화된 콘텐츠 데이터 및 상기 키 리프레시 구조를 수신하고,
    상기 시스템 온 칩으로부터 수신되는 콘텐츠 데이터를 복호화하는데 사용될 상기 트랜스코더에 저장되는 복수의 세션 키 중 하나의 특정 세션 키를, 상기 키 리프레시 구조로부터 식별하며,
    제 1 세션 키 쌍에 포함되는 상기 특정 세션 키로 상기 암호화된 콘텐츠를 복호화하며,
    상기 복호화된 콘텐츠 데이터를 트랜스코딩하며,
    상기 복수의 세션 키 중 제 2 세션 키를 사용하여 상기 트랜스코딩된 복호화된 콘텐츠 데이터를 암호화하되, 상기 제 2 세션 키는 상이한 제 2 세션 키 쌍에 포함되고, 상기 암호화된 트랜스코딩된 데이터는 상기 제 2 세션 키가 상기 트랜스코딩된 데이터를 암호화하는데 사용되었다는 것을 나타내는 대응하는 키 리프레시 구조와 함께 상기 시스템 온 칩에 리턴되는
    시스템.
  21. 제 20 항에 있어서,
    상기 보안 암호화 제어기는 상기 시스템 온 칩 상에 포함되고, 또한 상기 시스템 온 칩에 대해 콘텐츠 데이터의 암호화 및 복호화를 수행하는
    시스템.
  22. 제 20 항에 있어서,
    상기 미디어 게이트웨이는 키 관리 로직을 더 포함하고, 상기 키 관리 로직은,
    상기 세션 동안 사용되는 세션 키의 리프레시를 관리하고, 각각의 리프레시는 상기 세션에서 상기 트랜스코더 및 상기 시스템 온 칩에 의해 사용되는 이전 세션 키 세트를 신규 세션 키 세트로 대체하고, 상기 이전 세션 키 세트 및 상기 신규 세션 키 세트에서 각각의 키는 연관된 키 식별자를 갖고, 상기 트랜스코더 및 상기 시스템 온 칩은 적어도 상기 신규 세션 키 세트의 리프레시까지 상기 이전 세션 키 세트 및 상기 신규 세션 키 세트를 유지하는
    시스템.
  23. 제 22 항에 있어서,
    상기 키 관리 로직은 세션 키와 대응하는 키 식별자 사이의 트랜스코더 연관(association)을 식별하는
    시스템.
  24. 제 22 항에 있어서,
    상기 세션 키의 각각의 세트는,
    상기 트랜스코더로 송신될 콘텐츠 데이터를 암호화하도록 상기 시스템 온 칩에 의해 사용하기 위한, 그리고 상기 시스템 온 칩으로부터 수신되는 암호화된 데이터를 복호화하도록 상기 트랜스코더에 의해 사용하기 위한 개별적인 시스템 온 칩 세션 키와,
    상기 시스템 온 칩으로 송신될 트랜스코딩된 콘텐츠 데이터를 암호화하도록 상기 트랜스코더에 의해 사용하기 위한, 그리고 상기 트랜스코더로부터 수신되는 암호화된 데이터를 복호화하도록 상기 시스템 온 칩에 의해 사용하기 위한 개별적인 트랜스코더 세션 키를 포함하는
    시스템.
  25. 삭제
  26. 삭제
  27. 삭제
KR1020157022260A 2013-03-18 2014-03-18 신뢰 유닛들 사이의 키 리프레시 KR101712080B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/846,176 2013-03-18
US13/846,176 US9467425B2 (en) 2013-03-18 2013-03-18 Key refresh between trusted units
PCT/US2014/031006 WO2014153332A1 (en) 2013-03-18 2014-03-18 Key refresh between trusted units

Publications (2)

Publication Number Publication Date
KR20150107858A KR20150107858A (ko) 2015-09-23
KR101712080B1 true KR101712080B1 (ko) 2017-03-03

Family

ID=51534055

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157022260A KR101712080B1 (ko) 2013-03-18 2014-03-18 신뢰 유닛들 사이의 키 리프레시

Country Status (5)

Country Link
US (1) US9467425B2 (ko)
EP (1) EP2976733B1 (ko)
KR (1) KR101712080B1 (ko)
CN (1) CN104995634B (ko)
WO (1) WO2014153332A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9445112B2 (en) * 2012-12-06 2016-09-13 Microsoft Technology Licensing, Llc Secure transcoding of video data
US10521794B2 (en) 2012-12-10 2019-12-31 Visa International Service Association Authenticating remote transactions using a mobile device
US9578664B1 (en) 2013-02-07 2017-02-21 Sprint Communications Company L.P. Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system
US9467425B2 (en) 2013-03-18 2016-10-11 Intel Corporation Key refresh between trusted units
KR20140124157A (ko) * 2013-04-16 2014-10-24 삼성전자주식회사 무선 네트워크에서 키 하이어라키 생성 장치 및 방법
US9870469B2 (en) * 2014-09-26 2018-01-16 Mcafee, Inc. Mitigation of stack corruption exploits
US11563566B2 (en) * 2014-10-27 2023-01-24 Micro Focus Llc Key splitting
EP3032453B1 (en) * 2014-12-08 2019-11-13 eperi GmbH Storing data in a server computer with deployable encryption/decryption infrastructure
CN106302316A (zh) * 2015-05-15 2017-01-04 中兴通讯股份有限公司 密码管理方法及装置、系统
US9954681B2 (en) * 2015-06-10 2018-04-24 Nxp Usa, Inc. Systems and methods for data encryption
US9838367B2 (en) * 2015-06-26 2017-12-05 Intel Corporation Binding a trusted input session to a trusted output session
US9686240B1 (en) 2015-07-07 2017-06-20 Sprint Communications Company L.P. IPv6 to IPv4 data packet migration in a trusted security zone
US9749294B1 (en) 2015-09-08 2017-08-29 Sprint Communications Company L.P. System and method of establishing trusted operability between networks in a network functions virtualization environment
US10542115B1 (en) 2015-10-01 2020-01-21 Sprint Communications Company L.P. Securing communications in a network function virtualization (NFV) core network
US9811686B1 (en) 2015-10-09 2017-11-07 Sprint Communications Company L.P. Support systems interactions with virtual network functions in a trusted security zone
US9781016B1 (en) 2015-11-02 2017-10-03 Sprint Communications Company L.P. Dynamic addition of network function services
CN105704526B (zh) * 2015-12-30 2019-02-12 北方联合广播电视网络股份有限公司 数字电视的drm实现方法和系统、电视网关和终端
KR20170097546A (ko) * 2016-02-18 2017-08-28 에스케이텔레콤 주식회사 이종 네트워크상에서의 컨텐츠 전송 방법 및 이를 위한 장치
US10225075B1 (en) 2016-08-15 2019-03-05 Bluerisc, Inc. Transmitting content to promote privacy
US10230702B1 (en) * 2016-08-15 2019-03-12 Bluerisc, Inc. Encrypting content and facilitating legal access to the encrypted content
US10250498B1 (en) 2016-10-03 2019-04-02 Sprint Communications Company L.P. Session aggregator brokering of data stream communication
FR3058813A1 (fr) * 2016-11-16 2018-05-18 Stmicroelectronics (Rousset) Sas Stockage dans une memoire non volatile
US10223292B2 (en) * 2016-11-28 2019-03-05 Microsoft Technology Licensing, Llc Securing stream buffers
US10348488B1 (en) 2017-08-25 2019-07-09 Sprint Communications Company L.P. Tiered distributed ledger technology (DLT) in a network function virtualization (NFV) core network
EP3570575A1 (en) * 2018-05-16 2019-11-20 INESC TEC - Instituto de Engenharia de Sistemas e Computadores, Tecnologia e Ciência Internet of things security with multi-party computation (mpc)
CN110580420B (zh) 2018-06-11 2023-03-28 阿里巴巴集团控股有限公司 基于集成芯片的数据处理方法、计算机设备、存储介质
US11847205B1 (en) 2020-10-26 2023-12-19 T-Mobile Innovations Llc Trusted 5G network function virtualization of virtual network function elements embedded on a system-on-chip

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030079143A1 (en) 2001-10-22 2003-04-24 Dean Mikel One pass security
US20040176161A1 (en) 2001-09-28 2004-09-09 Shelby Michael B. Method and apparatus for authenticating and verifying communication on a network of gaming devices
US20100014671A1 (en) 2008-06-19 2010-01-21 General Instrument Corporation Secure interchip transport interface

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371794A (en) * 1993-11-02 1994-12-06 Sun Microsystems, Inc. Method and apparatus for privacy and authentication in wireless networks
US7181629B1 (en) 1999-08-27 2007-02-20 Fujitsu Limited Data distribution system as well as data supply device terminal device and recording device for the same
US20030061493A1 (en) * 2001-09-24 2003-03-27 Angelo Michael F. Portable voice encrypter
US7243366B2 (en) 2001-11-15 2007-07-10 General Instrument Corporation Key management protocol and authentication system for secure internet protocol rights management architecture
US7493429B2 (en) * 2003-07-08 2009-02-17 Microsoft Corporation Communication of information via a side-band channel, and use of same to verify positional relationship
US7535905B2 (en) * 2004-03-31 2009-05-19 Microsoft Corporation Signing and validating session initiation protocol routing headers
US7356846B2 (en) 2004-04-14 2008-04-08 Microsoft Corporation Unilateral session key shifting
US8194859B2 (en) * 2005-09-01 2012-06-05 Qualcomm Incorporated Efficient key hierarchy for delivery of multimedia content
CA2648780C (en) * 2006-04-25 2013-07-16 Stephen Laurence Boren Dynamic distributed key system and method for identity management, authentication servers, data security and preventing man-in-the-middle attacks
KR100750377B1 (ko) 2006-05-09 2007-08-17 한정보통신 주식회사 SoC기반의 네트워크 보안 시스템 및 그 방법
JP4358239B2 (ja) * 2007-01-10 2009-11-04 株式会社東芝 コンテンツ提供システム、追跡システム、コンテンツ提供方法及び不正ユーザ特定方法
US20080267411A1 (en) * 2007-04-27 2008-10-30 General Instrument Corporation Method and Apparatus for Enhancing Security of a Device
US8473757B2 (en) * 2009-02-18 2013-06-25 Cisco Technology, Inc. Protecting digital data such as images on a device with image acquisition capabilities
US9160974B2 (en) 2009-08-26 2015-10-13 Sling Media, Inc. Systems and methods for transcoding and place shifting media content
US9100693B2 (en) * 2010-06-08 2015-08-04 Intel Corporation Methods and apparatuses for securing playback content
KR101201622B1 (ko) * 2010-08-19 2012-11-14 삼성에스디에스 주식회사 보안 기능을 가진 시스템 온 칩 및 이를 이용한 디바이스 및 스캔 방법
US9467425B2 (en) 2013-03-18 2016-10-11 Intel Corporation Key refresh between trusted units

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040176161A1 (en) 2001-09-28 2004-09-09 Shelby Michael B. Method and apparatus for authenticating and verifying communication on a network of gaming devices
US20030079143A1 (en) 2001-10-22 2003-04-24 Dean Mikel One pass security
US20100014671A1 (en) 2008-06-19 2010-01-21 General Instrument Corporation Secure interchip transport interface

Also Published As

Publication number Publication date
CN104995634B (zh) 2018-06-26
EP2976733A4 (en) 2016-10-05
US9467425B2 (en) 2016-10-11
EP2976733A1 (en) 2016-01-27
CN104995634A (zh) 2015-10-21
KR20150107858A (ko) 2015-09-23
US20140281529A1 (en) 2014-09-18
WO2014153332A1 (en) 2014-09-25
EP2976733B1 (en) 2019-11-20

Similar Documents

Publication Publication Date Title
KR101712080B1 (ko) 신뢰 유닛들 사이의 키 리프레시
US9361163B2 (en) Managing containerized applications on a mobile device while bypassing operating system implemented inter process communication
US20240126930A1 (en) Secure Collaboration Between Processors And Processing Accelerators In Enclaves
EP3191994B1 (en) Media decoding control with hardware-protected digital rights management
US20190303204A1 (en) Methods and apparatus for single entity buffer pool management
US10762204B2 (en) Managing containerized applications
JP5924829B2 (ja) データトラフィックへの未認証アクセスの軽減
US11829303B2 (en) Methods and apparatus for device driver operation in non-kernel space
US9904557B2 (en) Provisioning of operating systems to user terminals
US9767317B1 (en) System to provide cryptographic functions to a markup language application
US20210314144A1 (en) Modifiable client-side encrypted data in the cloud
US20180097809A1 (en) Securing access to cloud components
US20210099427A1 (en) Methods and apparatus for emerging use case support in user space networking
US11606302B2 (en) Methods and apparatus for flow-based batching and processing
KR20150143708A (ko) 스토리지 디바이스 보조 인라인 암호화 및 암호해독
US20140053001A1 (en) Security central processing unit management of a transcoder pipeline
US9823869B2 (en) System and method of protecting data in dynamically-allocated regions of memory
EP3758326B1 (en) Secure updating of computing system firmware
WO2020187008A1 (zh) 服务调用控制方法、服务调用方法、装置及终端
KR101701625B1 (ko) 암호화된 컨텐츠의 복호화 키를 안전하게 획득하여 컨텐츠를 재생하기 위한 방법 및 시스템
Mohanty et al. Media data protection during execution on mobile platforms–A review
KR20160140047A (ko) 클라우드 스트리밍 서비스 제공을 위한 어플리케이션 캐싱 방법 및 이를 위한 장치
TW202244761A (zh) 保護端對端的即時音訊/視訊通信

Legal Events

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