KR20170094354A - 오디오 리턴 데이터 링크를 통한 디지털 컨텐트 보호 - Google Patents

오디오 리턴 데이터 링크를 통한 디지털 컨텐트 보호 Download PDF

Info

Publication number
KR20170094354A
KR20170094354A KR1020177019067A KR20177019067A KR20170094354A KR 20170094354 A KR20170094354 A KR 20170094354A KR 1020177019067 A KR1020177019067 A KR 1020177019067A KR 20177019067 A KR20177019067 A KR 20177019067A KR 20170094354 A KR20170094354 A KR 20170094354A
Authority
KR
South Korea
Prior art keywords
data
sub
audio
source device
preamble
Prior art date
Application number
KR1020177019067A
Other languages
English (en)
Other versions
KR102095911B1 (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 KR20170094354A publication Critical patent/KR20170094354A/ko
Application granted granted Critical
Publication of KR102095911B1 publication Critical patent/KR102095911B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • 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
    • 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/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

실시예들은 소스 디바이스에서의 키 갱신이 수행될 것임을 나타내기 위하여 그리고 서브-프레임 및 후속 서브-프레임의 데이터가 암호화된다는 것을 나타내기 위하여 암호화된 데이터의 서브-프레임의 프리앰블로서 프리앰블 코드를 삽입하는 것에 관한 것이다. 싱크 디바이스는 인증 및 암호화 프로토콜을 사용하여 소스 디바이스를 인증한다. 싱크 디바이스는 오디오 데이터를 포함하는 데이터 스트림을 수신한다. 수신된 오디오 데이터의 적어도 일 부분이 암호화되며, 암호화된 오디오 데이터가 서브-프레임들로 패킷화된다. 싱크 디바이스는 인증 및 암호화 프로토콜에 따라 소스 디바이스에서 키 갱신이 수행될 것을 나타내기 위하여, 그리고 서브-프레임의 페이로드 및 후속 서브-프레임들의 페이로드들 내의 오디오 데이터가 암호화된다는 것을 나타내기 위하여, 서브-프레임의 프리앰블로서 제 1 프리앰블 코드를 삽입한다. 싱크 디바이스는 제 1 데이터 링크를 통해 패킷을 소스 디바이스로 송신한다.

Description

오디오 리턴 데이터 링크를 통한 디지털 컨텐트 보호{DIGITAL CONTENT PROTECTION OVER AUDIO RETURN DATA LINK}
관련 출원들에 대한 상호 참조
본 출원은 2014년 12월 09일자로 출원된 미국 가특허 출원 번호 제62/089,767호에 대한 이익을 주장하며, 이는 그 전체가 참조로서 포함된다.
기술분야
본 개시는 전반적으로 데이터 통신에 관한 것으로서, 더 구체적으로는, 리턴 데이터 링크를 통해 싱크 디바이스로부터 소스 디바이스로 키 갱신(rekeying) 정보를 송신하는 것에 관한 것이다.
고-대역폭 디지털 컨텐트 보호(High-bandwidth Digital Content Protection; "HDCP")는 다양한 인터페이스들에 걸쳐 디지털 컨텐트를 보호하도록 설계된 명세이다. 전형적인 HDCP 구성은, HDCP 데이터 소스 디바이스(즉, DVD 플레이어, HD DVD 플레이어, 블루-레이 플레이어, 컴퓨터 비디오 카드들, 등), HDCP 싱크(sink) 디바이스(즉, 수신기, 텔레비전, 모니터, 등), 및 오디오 디바이스(예를 들어, 서라운드 사운드 시스템)를 포함한다. HDCP 소스 디바이스는 HDCP 프로토콜로서 지칭되는 HDCP 인증 및 암호화 프로토콜을 사용하여 HDCP 싱크 디바이스와 인증한다. HDCP 소스 디바이스는 비디오 데이터를 포함하는 데이터 스트림을 HDCP 프로토콜을 사용하여 암호화하며, 암호화된 데이터 스트림을 HDCP 싱크 디바이스로 송신한다. 즉, HDCP 소스 디바이스로부터 HDCP 싱크 디바이스로 송신되는 데이터가 암호화된다.
흔히 사용되는 구성에 있어서, HDCP 소스 디바이스는 비디오 데이터를 HDCP 싱크 디바이스로 송신하면서 동시에 HDCP 싱크 디바이스와는 별개인 오디오 디바이스 및 HDCP 싱크 디바이스로 대응하는 오디오 데이터를 전송한다. HDCP 싱크 디바이스 또는 HDCP 싱크 디바이스에 연결된 디스플레이 디바이스가 비디오 데이터에 기초하여 이미지들을 생성하는 동안 오디오 디바이스는 오디오 데이터에 기초하여 사운드를 생성한다.
상이한 구성에 있어서, HDCP 싱크 디바이스는 (예를 들어, 무선(over-the-air) 안테나를 통해) 외부 소스로부터 비디오 데이터 및 오디오 데이터를 포함하는 데이터 스트림을 수신하며, 수신된 오디오 데이터를 HDCP 소스 디바이스를 통해 오디오 디바이스로 송신한다. HDCP 싱크 디바이스와 HDCP 소스 디바이스 사이의 링크는 오디오 리턴 채널(Audio Return Channel; "ARC")로서 지칭된다. ARC를 사용할 때, HDCP 소스 디바이스를 통해 오디오 데이터를 오디오 디바이스로 송신하기 이전에 HDCP 싱크 디바이스가 HDCP 소스 디바이스를 인증하지 않을 뿐만 아니라 HDCP 싱크 디바이스가 오디오 데이터를 암호화하지도 않는다. 따라서, ARC를 통해서 송신되는 고품질 오디오 데이터가 보호되지 않으며, 불법 복제에 취약하다.
실시예들은 소스 디바이스에서의 키 갱신의 수행을 나타내기 위하여 그리고 서브-프레임 및 후속 서브-프레임의 데이터가 암호화된다는 것을 나타내기 위하여 암호화된 데이터의 서브-프레임의 프리앰블(preamble)로서 프리앰블 코드를 삽입하는 것에 관한 것이다. 싱크 디바이스는 인증 및 암호화 프로토콜을 사용하여 소스 디바이스를 인증한다. 싱크 디바이스는 오디오 데이터를 포함하는 데이터 스트림을 수신한다. 수신된 오디오 데이터의 적어도 일 부분이 암호화되며, 적어도 그 부분을 포함하는 암호화된 오디오 데이터가 서브-프레임들로 패킷화된다. 싱크 디바이스는, 인증 및 암호화 프로토콜에 따른 소스 디바이스에서의 키 갱신의 수행을 나타내기 위하여, 그리고 서브-프레임의 페이로드(payload) 및 복수의 후속 서브-프레임들의 페이로드들 내의 오디오 데이터의 적어도 일 부분이 암호화된다는 것을 나타내기 위하여, 서브-프레임의 프리앰블로서 제 1 프리앰블 코드를 삽입함으로써 서브-프레임들을 수정한다. 싱크 디바이스는 제 1 데이터 링크를 통해 수정된 서브-프레임들을 소스 디바이스로 송신한다.
일 실시예에 있어서, 오디오 데이터는 오디오 블록들의 유닛들을 포함하며, 각각의 오디오 블록은 192개의 프레임들을 포함하고, 각각의 프레임은 2개의 서브-프레임들을 포함하며, 각각의 서브-프레임은 적어도 하나의 프리앰블 및 오디오 샘플 워드(audio sample word)를 포함한다. 프리앰블은 다음 중 하나를 포함한다: 제 1 프리앰블 코드, 오디오 블록의 시작 및 제 1 채널에 대응하는 오디오 샘플 워드가 뒤따른다는 것을 나타내는 제 2 프리앰블 코드, 제 1 채널에 대응하는 오디오 샘플 워드가 뒤따른다는 것을 나타내는 제 3 프리앰블 코드, 및 제 2 채널에 대응하는 오디오 샘플 워드가 뒤따른다는 것을 나타내는 제 4 프리앰블 코드. 제 1 프리앰블 코드는 오디오 블록의 시작 및 제 1 채널에 대응하는 오디오 샘플 워드가 뒤따른다는 것을 추가로 나타낸다.
일 실시예에 있어서, 제 1 프리앰블 코드를 서브-프레임의 프리앰블로서 삽입하는 단계는 서브-프레임의 프리앰블의 제 2 프리앰블 코드를 제 1 프리앰블 코드로 대체하는 단계를 포함한다.
일 실시예에 있어서, 싱크 디바이스는 오디오 데이터의 부분이 암호화될지 여부를 결정한다.
일 실시예에 있어서, 제 1 데이터 링크는 오디오 리턴 채널("ARC")이다. 이러한 실시예에 있어서, 싱크 디바이스에 의해 소스 디바이스를 인증하는 단계는 제 1 데이터 링크를 통해 수행된다.
일 실시예에 있어서, 싱크 디바이스에 의해 소스 디바이스를 인증하는 단계는 제 1 데이터 링크 및 제 1 데이터 링크와는 별개인 제 2 데이터 링크를 통해 수행된다. 제 2 데이터 링크는 디스플레이 데이터 채널(Display Data Channel; "DDC")일 수 있다.
일 실시예에 있어서, 인증 및 암호화 프로토콜은 고-대역폭 디지털 컨텐트 보호(High-bandwidth Digital Content Protection; "HDCP") 프로토콜이다.
실시예들은 또한 수신기, 암호화 회로, 및 송신기를 포함하는 싱크 디바이스에 관한 것이다. 수신기는 오디오 데이터를 포함하는 데이터 스트림을 수신한다. 암호화 회로는 수신기에 결합된다. 암호화 회로는, 인증 및 암호화 프로토콜을 사용하여 소스 디바이스를 인증하고, 수신된 오디오 데이터를 암호화하며, 암호화된 오디오 데이터를 서브-프레임들로 패킷화하고, 서브-프레임의 프리앰블로서 제 1 프리앰블 코드에 의해 서브-프레임들을 수정하기 위한 프로세서 및 메모리를 포함한다. 제 1 프리앰블 코드는, 인증 및 암호화 프로토콜에 따라서 키 갱신이 소스 디바이스에서 수행될 것임을 나타낸다. 제 1 프리앰블 코드는, 서브-프레임의 페이로드 및 복수의 후속 서브-프레임들의 페이로드들 내의 오디오 데이터가 암호화된다는 것을 추가로 나타낸다. 송신기는 암호화 회로에 결합되며, 제 1 데이터 링크를 통해 수정된 서브-프레임들을 소스 디바이스로 송신한다.
본원에 개시된 실시예들의 교시들은 첨부된 도면들과 함께 다음의 상세한 설명을 고려함으로써 용이하게 이해될 수 있다.
도 1은 일 실시예에 따른 소스 디바이스, 싱크 디바이스, 오디오 디바이스 및 외부 소스를 포함하는 시스템을 예시하는 블록도이다.
도 2는 일 실시예에 따른 소스 디바이스를 예시하는 블록도이다.
도 3은 일 실시예에 따른 싱크 디바이스를 예시하는 블록도이다.
도 4는 일 실시예에 따른 오디오 데이터의 데이터 구조를 예시하는 도면이다.
도 5a 내지 도 5c는 일 실시예에 따른, 오디오 데이터의 부분들이 암호화되는지 여부를 나타내기 위한 프리앰블 코드들이 내장된 오디오 데이터를 예시하는 도면들이다.
도 6은 일 실시예에 따른, 서브-프레임 및 그것의 후속 서브-프레임들이 암호화된다는 것을 나타내기 위하여 싱크 디바이스로부터의 데이터 스트림을 수정하기 위한 방법을 예시하는 순서도이다.
도 7은 다른 실시예에 따른, 소스 디바이스, 싱크 디바이스, 오디오 디바이스 및 외부 소스를 포함하는 시스템을 예시하는 블록도이다.
도 8은 일 실시예에 따른, 소스 디바이스 및 싱크 디바이스와 연관된 동작들을 수행하기 위한 컴퓨팅 디바이스의 블록도이다.
도면들 및 다음의 설명은 오로지 예시적으로 다양한 실시예들과 관련된다. 어디에서든지 동일하거나 또는 유사한 실용적인 참조 번호들이 도면들에서 사용될 수 있으며, 동일하거나 또는 유사한 기능성을 표시할 수 있다는 것을 주의해야 한다. 본원에 개시되는 구조들 및 방법들의 대안적인 실시예들이 본원에서 논의되는 원리들로부터 벗어나지 않고 이용될 수 있는 실행 가능한 대안들로서 용이하게 인식될 것이다. 이제 몇몇 실시예들에 대해 상세한 참조가 이루어질 것이며, 이들의 예들은 첨부된 도면들에 예시된다.
실시예들은, 오디오 데이터의 특정 부분들이 암호화되는지 여부를 나타내기 위하여 싱크 디바이스로부터 리턴 데이터 링크(예를 들어, 오디오 리턴 채널("ARC"))를 통해 소스 디바이스로 송신되는 디지털 오디오 데이터에 대하여 프리앰블들을 삽입하는 것에 관한 것이다. 싱크 디바이스는, 인증 및 암호화 프로토콜에 따라 소스 디바이스에서 키 갱신이 수행될 것임을 나타내기 위하여, 그리고 리턴 데이터 링크를 통해 싱크 디바이스로부터 소스 디바이스로 전송되는 오디오 데이터의 일 부분이 암호화된다는 것을 나타내기 위하여 특정 위치들에서 오디오 데이터의 서브-프레임의 프리앰블로서 제 1 프리앰블 코드를 삽입한다. 싱크 디바이스는, 리턴 데이터 링크를 통해 송신되는 오디오 데이터의 부분이 암호화되지 않는 경우 특정 위치들에서 서브-프레임의 프리앰블로서 제 2 프리앰블 코드를 삽입한다.
시스템 개괄
다음의 실시예들은 주로, 일 예로서 고-화질 멀티미디어 인터페이스(High-Definition Multimedia Interface; "HDMI")의 맥락에서 고-대역폭 디지털 컨텐트 보호("HDCP")를 사용하여 설명된다. 그러나, HDCP와는 다른 인증 및 암호화 프로토콜들/기법들 및 HDMI와는 다른 매체 송신 프로토콜들/기법들이 또한 본원에서 설명되는 본 개시의 원리들을 사용할 수 있다.
HDCP 프로토콜은, 수신기가 암호화된 컨텐트를 수신하도록 인증되었다는 것을 송신기에 확인하는 송신기와 수신기 사이의 교환(exchange)이다. 송신기는 HDCP 프로토콜을 사용하여 수신기를 인증한다. 인증 이후에, 송신기는 HDCP 프로토콜을 사용하여 데이터를 암호화하고, 암호화된 데이터를 수신기로 송신한다. 수신기는 HDCP 프로토콜을 사용하여 수신된 암호화된 데이터를 복호화할 수 있다. 송신기들은 키 갱신을 수행할 것을 주기적으로 수신기에 명령할 수 있다. 키 갱신은 송신기와 수신기 사이의 진행 중인 통신의 암호화 키를 변경하는 프로세스를 지칭한다. 키 갱신을 수행하는 것은, 수신기가 계속해서 송신기로부터 수신되는 암호화된 데이터를 복호화하는 것을 가능하게 한다.
도 1은 일 실시예에 따른 소스 디바이스(102), 싱크 디바이스(104), 오디오 디바이스(106, 및 외부 소스(108)를 포함하는 시스템(100)의 블록도이다. 소스 디바이스(102) 및 싱크 디바이스(104)는 양방향 포워드(forward) 데이터 링크(112) 및 양방향 리턴 데이터 링크(114)를 통해 통신 가능하게 결합된다. 소스(102)는 오디오 데이터 링크(116)를 통해 오디오 디바이스(106)와 추가적으로 통신 가능하게 결합된다. 싱크 디바이스(104)는 오디오/비주얼(audio/visual; AV) 데이터 링크(118)를 통해 외부 소스(108)와 추가적으로 통신 가능하게 결합된다.
소스 디바이스(102)는 주로 디지털 컨텐트의 소스로서 기능하는 디바이스이며, 반면 싱크 디바이스(104)는 주로 디지털 컨텐트를 재생하기 위한 소비 디바이스로서 기능하는 디바이스이다. 그러나, 본원에서 설명되는 바와 같이, 싱크 디바이스(104)는, 소스 디바이스(120)를 통해 전송될 수 있는 오디오 데이터와 같은 디지털 컨텐트의 제한된 버전의 소스로서 기능할 수 있다. 소스 디바이스(102)의 예들은, AV 수신기, 홈 시어터 시스템, DVD 플레이어들, HD DVD 플레이어들, 블루-레이 플레이어들, 및 컴퓨터 비디오 카드들을 포함한다. 오디오 디바이스(106)의 예들은 서라운드 사운드 시스템들을 포함한다.
소스 디바이스(102) 및 싱크 디바이스(104)는 2개의 상이한 모드들: 제 1 모드 및 제 2 모드로 동작할 수 있다. 소스 디바이스(102) 및 싱크 디바이스(104)가 주로 2개의 모드들 중 하나로 동작하지만, 일부 경우들에 있어서, 소스 디바이스(102) 및 싱크 디바이스(104)는, 소스 디바이스(102)가 싱크 디바이스(104)로부터 오디오 데이터를 수신하는 동안 소스 디바이스(102)가 싱크 디바이스(104)로 오디오 데이터/비디오 데이터를 송신하는 하이브리드(hybrid) 모드로 동작한다. 제 1 모드에서, 소스 디바이스(102)는 포워드 데이터 링크(112)를 통해 싱크 디바이스(104)로 비디오 데이터를 송신하며 오디오 데이터 링크(116)를 통해 오디오 데이터를 오디오 디바이스(106)로 송신하고, 반면 제 2 모드에서, 소스 디바이스(102)는 싱크 디바이스(104)로부터의 오디오 데이터를 리턴 데이터 링크(114)를 통해 오디오 디바이스(106)로 라우팅(route)한다. 제 2 모드에서, 싱크 디바이스(104)는 오디오 디바이스(106)로 포워딩하기 위하여 오디오 데이터를 소스 디바이스(102)로 송신한다. 제 2 모드에서 송신되는 오디오 데이터는 암호화될 수 있다. 제 2 모드의 오디오 데이터가 암호화될 때, 소스 디바이스(102)는 오디오 데이터를 오디오 데이터 링크(116)를 통해 오디오 디바이스(106)로 송신하기 이전에 암호화된 오디오 데이터를 복호화한다.
일 실시예에 있어서, 싱크 디바이스(104)는 제 1 모드에서 소스 디바이스(102)로부터 수신된 비디오 데이터를 디스플레이로 라우팅한다. 일부 실시예들에 있어서, 디스플레이는 싱크 디바이스(104) 외부에 존재하며, 다른 실시예들에 있어서, 싱크 디바이스(104)가 디스플레이를 포함한다. 제 2 모드에서, 싱크 디바이스(104)는 외부 소스(108)로부터의 오디오 데이터를 소스 디바이스(102)로 라우팅한다. 싱크 디바이스(104)의 예들은, 수신기들, 텔레비전들, 및 모니터들을 포함한다. 외부 소스(108)의 예들은 무선 안테나들, 셋-탑 박스들, 및 저장 디바이스들을 포함한다.
일 실시예에 있어서, 포워드 데이터 링크(112) 및 리턴 데이터 링크(114)는 HDMI 케이블을 통해 구현된다. 이러한 실시예에 있어서, 포워드 데이터 링크(112)는 단방향 고속 메인 링크(예를 들어, 변화-최소화 차분 신호(Transition-Minimized Differential Signal; "TMDS") 링크) 및 양방향 저속 측파대 링크(예를 들어, 디스플레이 데이터 채널("DDC") 링크)를 포함하며, 리턴 데이터 채널(114)은 오디오 리턴 채널("ARC")이다. 단방향 메인 링크는 소스 디바이스(102)로부터 싱크 디바이스(104)로 데이터를 송신한다. 리턴 데이터 링크(114)를 통해 송신되는 데이터는 디지털 데이터이다.
제 1 모드에서, 소스 디바이스(102)는 포워드 데이터 링크(112)의 측파대 링크를 통해 HDCP 프로토콜을 사용하여 싱크 디바이스(104)를 인증한다. 소스 디바이스(102)는 HDCP 프로토콜에 따라 비디오 데이터를 암호화한다. 비디오 데이터를 암호화하는 것은, 비디오 데이터가 소스 디바이스(102)로부터 싱크 디바이스(104)로 송신되는 동안 복제되거나 또는 변경되는 것을 방지한다. 소스 디바이스(102)는 포워드 데이터 링크(112)의 메인 링크를 통해 암호화된 비디오 데이터를 싱크 디바이스(104)로 송신한다. 싱크 디바이스(104)는 암호화된 비디오 데이터를 수신하고, HDCP 프로토콜에 따라 암호화된 비디오 데이터를 복호화하며, 복호화된 비디오 데이터를 디스플레이한다. 소스 디바이스(102)는 오디오 데이터 링크(116)를 통해 비디오 데이터에 대응하는 오디오 데이터를 오디오 디바이스(106)로 송신한다.
제 2 모드에서, 싱크 디바이스(104)는 HDCP 프로토콜을 사용하여 리턴 데이터 링크(114)를 통해 소스 디바이스(102)를 인증한다. 싱크 디바이스(104)는 외부 소스(108)로부터 AV 데이터 링크(118)를 통해 오디오 데이터를 포함하는 오디오/비디오(audio/video; "AV") 데이터 스트림을 수신한다. 싱크 디바이스(104)는 HDCP 프로토콜에 따라 오디오 데이터를 암호화하고, 암호화된 오디오 데이터를 서브-프레임들로 패킷화한다.
싱크 디바이스(104)로부터 소스 디바이스(102)로 송신되는 오디오 데이터는 고-품질 디지털 데이터일 수 있다. 오디오 데이터를 암호화하는 것은, 오디오 데이터가 리턴 데이터 링크(114)를 통해 싱크 디바이스(104)로부터 소스 디바이스(102)로 송신되는 동안 복제되거나 또는 변경되는 것을 방지한다. 특히, 싱크 디바이스(104)는, 도 5a 내지 도 5c를 참조하여 이하에서 설명되는 바와 같이, 서브-프레임의 페이로드 및 복수의 후속 서브-프레임들 내의 오디오 데이터가 암호화된다는 것을 나타내기 위해서뿐만 아니라 HDCP 프로토콜에 따라서 키 갱신이 소스 디바이스(102)에서 수행될 것임을 나타내기 위하여 제 1 프리앰블 코드를 패킷화되고 암호화된 오디오 데이터의 서브-프레임의 프리앰블 내에 삽입한다.
리턴 데이터 링크(114)는, 싱크 디바이스(104)가 소스 디바이스(102)로 데이터를 송신하는 것을 가능하게 한다. 특히, 리턴 데이터 링크(114)는 싱크 디바이스(104)에 의한 소스 디바이스(102)의 인증과 연관된 인증 데이터를 송신하기 위하여 사용된다. 리턴 데이터 링크(114)는 추가로, 싱크 디바이스(104)로부터 소스 디바이스(102)로 (즉, "업스트림(upstream)"으로) 패킷화되고 암호화된 오디오 데이터를 송신하기 위하여 사용된다. 이상에서 설명된 바와 같이, 리턴 데이터 링크(114)는 ARC일 수 있다. ARC를 통해 송신되는 데이터는 디지털 데이터이다. 리턴 데이터 링크(114)는 소스 디바이스(102)로부터 싱크 디바이스(104)로(즉, "다운스트림(downstream)"으로) 오디오 데이터를 송신하지 않는다.
제 2 모드에서 HDCP 프로토콜을 사용하여 싱크 디바이스(104)로부터 소스 디바이스(102)로 송신되는 오디오 데이터를 암호화하는 것은, (1) 싱크 디바이스(104)에 의해 소스 디바이스(102)를 인증하는 동작 및 (2) 소스 디바이스(102)에서 수행될 키를 갱신하는 동작을 수반한다. 소스 디바이스(102)가 규칙적으로 키 갱신을 수행하지 않는 경우, 동일한 랜덤 값들이 언젠가는 반복될 것이다. 싱크 디바이스(104)는 소스 디바이스(102)에 키 갱신을 수행할 것을 시그널링(signal)하기 위하여 규칙적으로 서브-프레임의 프리앰블 내에 제 1 프리앰블 코드를 삽입할 수 있다. 이와 대조적으로, 오디오 데이터가 암호화되지 않으며 소스 디바이스(102)에서의 키 갱신이 요청되지 않을 때, 제 2 프리앰블 코드가 서브-프레임의 프리앰블 내에 삽입되거나 또는 남아 있는다.
예시적인 소스 디바이스
도 2는 일 실시예에 따른, 싱크 디바이스(104)로부터 오디오 디바이스(106)로 데이터 스트림을 라우팅하기 위한 소스 디바이스(102)를 예시하는 블록도이다. 소스 디바이스(102)는, 다른 컴포넌트들 중에서도 특히, 입력/출력(input/output; I/O) 포트들(202 및 204), 컨텐트 저장소(212), HDCP 암호화 엔진(214), HDMI 송신기(216), 리턴 채널(return channel; RC) 수신기(218), HDCP 복호화 엔진(220), RC 송신기(222), 및 오디오 인터페이스 디바이스(224)를 포함할 수 있다. 소스 디바이스(102)는, 각기 I/O 포트들(202 및 204)을 통해 싱크 디바이스(104) 및 오디오 디바이스(106)와 인터페이스한다. 소스 디바이스(102)는 2개의 모드들로 동작할 수 있다.
제 1 모드에서, 소스 디바이스(102)는 HDCP 프로토콜을 사용하여 비디오 데이터를 암호화하고, 암호화된 비디오 데이터를 포워드 데이터 링크(112)의 메인 링크를 통해 싱크 디바이스(104)로 송신하며, 암호화된 비디오 데이터에 대응하는 오디오 데이터를 오디오 데이터 링크(116)를 통해 오디오 디바이스(106)로 송신한다.
제 1 모드에서, I/O 포트(202)는 포워드 데이터 링크(112)의 측파대 링크를 통해 제 1 인증 데이터를 싱크 디바이스(104)로 송신하고, 또한 포워드 데이터 링크(112)의 측파대 링크를 통해 싱크 디바이스(104)로부터 제 2 인증 데이터를 수신한다. 제 1 및 제 2 인증 데이터는 소스 디바이스(102)에 의한 싱크 디바이스(104)의 인증과 연관된다. 또한, I/O 포트(202)는 포워드 데이터 링크(112)의 메인 링크를 통해 제 1 데이터 스트림을 싱크 디바이스(104)로 송신한다.
제 2 모드에서, 소스 디바이스(102)는 리턴 데이터 링크(114)를 통해 싱크 디바이스(104)로부터 오디오 데이터를 수신하고, (암호화된 경우) 암호화된 오디오 데이터를 복호화하며, 복호화된 오디오 데이터를 오디오 데이터 링크(116)를 통해 오디오 디바이스(106)로 송신한다.
제 2 모드에서, I/O 포트(202)는 리턴 데이터 링크(114)를 통해 싱크 디바이스(104)로부터 제 3 인증 데이터를 수신하고, 또한 리턴 데이터 링크(114)를 통해 싱크 디바이스(104)로 제 4 인증 데이터를 송신한다. 제 3 및 제 4 인증 데이터는 싱크 디바이스(104)에 의한 소스 디바이스(102)의 인증과 연관된다. 또한, I/O 포트(202)는 리턴 데이터 링크(114)를 통해 싱크 디바이스(104)로부터 제 2 데이터 스트림을 수신한다. 제 1 및 제 2 모드들 둘 모두에서, I/O 포트(204)는 오디오 데이터 링크(116)를 통해 제 3 데이터 스트림을 오디오 디바이스(106)로 송신한다.
컨텐트 저장소(212)는 오디오 데이터 및 비디오 데이터를 포함하는 컨텐트를 저장한다. 일부 실시예들에 있어서, 컨텐트 저장소(212)는 광 디스크 리더 또는 하드 디스크로서 구현된다. 다른 실시예들에 있어서, 컨텐트 저장소(212)는 소스 디바이스(102) 외부의 컨텐트 소스와 통신 가능하게 결합된다.
HDCP 암호화 엔진(214)은, 컨텐트 저장소(212)로부터 수신된 컨텐트를 암호화하고 패킷화하는 논리적 블록이다. HDCP 암호화 엔진(214)은 하드웨어 컴포넌트들, 컴퓨터 프로그램들, 또는 이들의 조합을 사용하여 구현될 수 있다. HDCP 암호화 엔진(214)은 프로세서(232A) 및 메모리(234A)를 포함한다. 메모리(232A)는 명령어들을 저장하는 비-일시적인 컴퓨터 판독가능 저장 매체이다. 프로세서(232A)는 메모리(234A) 상에 저장된 명령어들을 실행한다.
제 1 모드에서, HDCP 암호화 엔진(214)은 소스 디바이스(102)와 싱크 디바이스(104) 사이에 제 1 보안 링크를 수립하기 위하여 I/O 포트(202)를 통하여 포워드 데이터 링크(112)의 측파대 링크를 통해 그리고 HDCP 프로토콜을 사용하여 싱크 디바이스(104)를 인증한다. 싱크 디바이스(104)의 인증 시에, HDCP 암호화 엔진(214)은 포워드 데이터 링크(112)의 측파대 링크를 통해 제 1 인증 데이터를 싱크 디바이스(104)로 송신하고, 또한 포워드 데이터 링크(112)의 측파대 링크를 통해 싱크 디바이스(104)로부터 제 2 인증 데이터를 수신한다. HDCP 암호화 엔진(214)은 제 1 및 제 2 인증 데이터를 사용하여 싱크 디바이스(104)를 인증한다.
제 1 모드에서, HDCP 암호화 엔진(214)은 HDCP 프로토콜을 사용하여 컨텐트 저장소(212)로부터의 비디오 데이터를 암호화하고, 암호화된 비디오 데이터를 패킷화하며, 패킷화되고 암호화된 비디오 데이터를 HDMI 송신기(216)로 송신한다.
제 1 모드에서, HDMI 송신기(216)는 I/O 포트(202)를 통하여 포워드 데이터 링크(112)의 측파대 링크를 통해 HDCP 암호화 엔진(214)으로부터의 제 1 인증 데이터를 싱크 디바이스(104)로 송신한다. HDMI 송신기는 I/O 포트(202)를 통하여 포워드 데이터 링크(112)의 측파대 링크를 통해 싱크 디바이스(104)로부터 제 2 인증 데이터를 수신하고, 제 2 인증 데이터를 HDCP 암호화 엔진(214)으로 송신한다. HDMI 송신기(216)는 추가로 I/O 포트(202)를 통하여 포워드 데이터 링크(112)의 메인 링크를 통해 HDCP 암호화 엔진(214)으로부터의 패킷화되고 암호화된 비디오 데이터를 포함하는 제 1 데이터 스트림을 싱크 디바이스(104)로 송신한다.
제 2 모드에서, RC 수신기(218)는 I/O 포트(202)를 통하여 리턴 데이터 링크(114)를 통해 싱크 디바이스(104)로부터 제 3 인증 데이터를 수신한다. 제 3 인증 데이터는 싱크 디바이스(104)에 의한 소스 디바이스(102)의 인증과 연관된다. RC 수신기(218)는 제 3 인증 데이터를 HDCP 복호화 엔진(220)으로 송신한다. RC 수신기(218)는 추가로 I/O 포트(202)를 통하여 리턴 데이터 링크(114)를 통해 싱크 디바이스(104)로부터 패킷화되고 암호화된 오디오 데이터 스트림을 포함하는 제 2 데이터 스트림을 수신한다. RC 수신기(218)는 제 2 데이터 스트림을 HDCP 복호화 엔진(220)으로 송신한다. RC 수신기(218)는 제 2 데이터 스트림으로부터 디지털 데이터(예를 들어, 패킷화되고 암호화된 오디오 데이터 스트림)를 추출하기 위한 클럭 데이터 복원 회로를 포함할 수 있다.
HDCP 복호화 엔진(220)은 데이터 스트림(예를 들어, 제 2 데이터 스트림)을 복호화하는 논리 블록이다. HDCP 복호화 엔진(220)은 하드웨어 컴포넌트들, 컴퓨터 프로그램들, 또는 이들의 조합을 사용하여 구현될 수 있다. HDCP 복호화 엔진(220)은 프로세서(232B) 및 메모리(234B)를 포함한다. 프로세서(232B) 및 메모리(234B)의 동작 및 기능은 HDCP 암호화 엔진(214)의 프로세서(232A) 및 메모리(234A)의 동작 및 기능과 동일하며, 따라서, 본원에서 이의 상세한 설명은 간명함을 위하여 생략된다.
제 2 모드에서, HDCP 복호화 엔진(220)은 싱크 디바이스(104)와 소스 디바이스(102) 사이에 제 2 보안 링크를 수립하기 위하여 HDCP 프로토콜을 사용하여 그리고 I/O 포트(202)를 통하여 리턴 데이터 링크(114)를 통해 싱크 디바이스(104)와 인증한다. 싱크 디바이스(104)와의 인증 시에, HDCP 복호화 엔진(220)은 싱크 디바이스(104)로부터 제 3 인증 데이터를 수신하고, 제 4 인증 데이터를 싱크 디바이스(104)로 송신한다. HDCP 복호화 엔진(220)은 제 3 및 제 4 인증 데이터를 사용하여 싱크 디바이스(104)와 인증한다. HDCP 복호화 엔진(220)은 추가로 패킷화되고 암호화된 오디오 데이터 스트림을 포함하는 제 2 데이터 스트림을 수신한다.
제 2 모드에서, HDCP 복호화 엔진(220)은, 패킷화되고 암호화된 오디오 데이터 스트림의 서브-프레임의 프리앰블이 제 1 프리앰블 코드를 포함하는 경우 HDCP 프로토콜에 따라서 키 갱신을 수행한다. 제 2 모드에서, HDCP 복호화 엔진(220)은 패킷화되고 암호화된 오디오 데이터 스트림의 서브 프레임의 페이로드 및 후속 서브-프레임들의 페이로드들의 오디오 데이터를 복호화한다. HDCP 복호화 엔진(220)은 복호화된 오디오 데이터 스트림을 오디오 디바이스(106)로 송신한다.
제 2 모드에서, RC 송신기(222)는 HDCP 복호화 엔진(220)으로부터 제 4 인증 데이터를 수신한다. 제 4 인증 데이터는 싱크 디바이스(104)에 의한 소스 디바이스(102)의 인증과 연관된다. RC 송신기(222)는 I/O 포트(202)를 통하여 리턴 데이터 링크(114)를 통해 싱크 디바이스(104)로 제 4 인증 데이터를 송신한다. RC 송신기(222)는 직렬화기와 같은 아날로그 회로부를 포함할 수 있다.
오디오 인터페이스 디바이스(224)는 HDCP 복호화 엔진(220)으로부터 복호화된 오디오 데이터 스트림을 수신하고, 수신된 오디오 데이터 스트림을 프로세싱하며, 프로세싱된 오디오 데이터 스트림을 포함하는 제 3 데이터 스트림을 I/O 포트(204)를 통해 오디오 디바이스(106)로 송신한다. 오디오 데이터 스트림을 프로세싱하는 단계는 복호화된 오디오 데이터 스트림을 오디오 디바이스(106)에 의해 재생될 수 있는 포맷으로 수정하는 단계를 포함할 수 있다.
HDCP 암호화 엔진(214) 및 HDMI 송신기(216)는 단일 컴포넌트로 결합될 수 있다. 일 실시예에 있어서, RC 수신기(218) 및 RC 송신기(222)가 단일 컴포넌트로 결합될 수 있다. 일 실시예에 있어서, 소스 디바이스(102)가 오디오 디바이스(106)를 포함할 수 있다.
예시적인 싱크 디바이스
도 3은 일 실시예에 따른, 싱크 디바이스(104)로부터 오디오 디바이스(106)로 제 2 데이터 스트림을 라우팅하기 위한 싱크 디바이스(104)를 예시하는 블록도이다. 싱크 디바이스(104)는, 다른 컴포넌트들 중에서도 특히, 입력/출력(I/O) 포트(302), 수신기(306), HDCP 암호화 엔진(314), RC 송신기(322), RC 수신기(318), HDMI 수신기(310), 및 HDCP 복호화 엔진(320)을 포함할 수 있다.
싱크 디바이스(104)는 2개의 모드들로 동작할 수 있다. 제 1 모드에서, 싱크 디바이스(104)는 포워드 데이터 링크(112)의 메인 링크를 통해 소스 디바이스(102)로부터 암호화된 비디오 데이터를 수신하고, 암호화된 비디오 데이터를 복호화하며, 복호화된 비디오 데이터를 디스플레이(352)로 송신한다. 제 2 모드에서, 싱크 디바이스(104)는 오로지 오디오 데이터만 또는 오디오 데이터 및 비디오 데이터를 포함하는 데이터 스트림을 수신하고, 오디오 데이터 스트림을 리턴 데이터 링크(114)를 통해 소스 디바이스(102)로 송신한다. 리턴 데이터 링크(114)를 통한 오디오 데이터 스트림이 암호화되는 경우, 싱크 디바이스(104)는 암호화와 연관된 동작들을 수행하고, 암호화된 오디오 데이터 스트림을 소스 디바이스(102)로 송신한다.
싱크 디바이스(104)는 I/O 포트(302)를 통해 소스 디바이스(102)와 인터페이스한다. 제 1 모드에서, I/O 포트(302)는 포워드 데이터 링크(112)의 측파대 링크를 통해 제 1 인증 데이터를 소스 디바이스(102)로부터 수신하고, 또한 포워드 데이터 링크(112)의 측파대 링크를 통해 소스 디바이스(102)로 제 2 인증 데이터를 송신한다. 제 1 및 제 2 인증 데이터는 소스 디바이스(102)에 의한 싱크 디바이스(104)의 인증과 연관된다. 또한, I/O 포트(302)는 포워드 데이터 링크(112)의 메인 링크를 통해 제 1 데이터 스트림을 소스 디바이스(102)로부터 수신한다. 제 2 모드에서, I/O 포트(302)는 리턴 데이터 링크(114)를 통해 소스 디바이스(102)로 제 3 인증 데이터를 송신하고, 또한 리턴 데이터 링크(114)를 통해 소스 디바이스(102)로부터 제 4 인증 데이터를 수신한다. 제 3 및 제 4 인증 데이터는 싱크 디바이스(104)에 의한 소스 디바이스(102)의 인증과 연관된다. 또한, I/O 포트(302)는 리턴 데이터 링크(114)를 통해 소스 디바이스(102)로 제 2 데이터 스트림을 송신한다.
제 2 모드에서, 수신기(306)는 AV 데이터 링크(118)를 통해 외부 소스(108)로부터 AV 데이터 스트림을 수신한다. AV 데이터 스트림은 오디오 데이터 및 비디오 데이터를 포함한다. 수신기(306)는 디스플레이(352)로 비디오 데이터를 포함하는 비디오 데이터 스트림을 송신하고, HDCP 암호화 엔진(314)으로 오디오 데이터를 포함하는 오디오 데이터 스트림을 송신한다.
HDCP 암호화 엔진(314)은, 수신기(306)로부터 수신된 오디오 데이터 스트림을 암호화하고 패킷화하는 논리적 블록이다. HDCP 암호화 엔진(314)은 하드웨어 컴포넌트들, 컴퓨터 프로그램들, 또는 이들의 조합을 사용하여 구현될 수 있다. HDCP 암호화 엔진(314)은 프로세서(332B) 및 메모리(334B)를 포함한다. 프로세서(332B) 및 메모리(334B)의 동작 및 기능은 소스 디바이스(102)의 HDCP 암호화 엔진(214)의 프로세서(232A) 및 메모리(234A)의 동작 및 기능과 동일하며, 따라서, 본원에서 이의 상세한 설명은 간명함을 위하여 생략된다.
제 2 모드에서, HDCP 암호화 엔진(314)은 싱크 디바이스(104)와 소스 디바이스(102) 사이에 제 2 보안 링크를 수립하기 위하여 HDCP 프로토콜을 사용하여 그리고 I/O 포트(302)를 통하여 리턴 데이터 링크(114)를 통해 소스 디바이스(102)를 인증한다. 소스 디바이스(102)의 인증 시에, HDCP 암호화 엔진(314)은 제 3 인증 데이터를 소스 디바이스(102)로 송신하고, 소스 디바이스(102)로부터 제 4 인증 데이터를 수신한다. HDCP 암호화 엔진(314)은 제 3 및 제 4 인증 데이터를 사용하여 소스 디바이스(102)를 인증한다.
제 2 모드에서, HDCP 암호화 엔진(314)은 HDCP 프로토콜에 따라 오디오 데이터 스트림을 암호화할 수 있으며, 암호화된 오디오 데이터 스트림을 서브-프레임들로 패킷화할 수 있다. HDCP 암호화 엔진(314)은, HDCP 프로토콜에 따라서 소스 디바이스(102)에서 키 갱신이 수행될 것임을 나타내기 위하여, 그리고 서브-프레임의 페이로드 및 미리 결정된 수의 후속 서브-프레임들의 페이로드들 내의 오디오 데이터가 암호화된다는 것을 나타내기 위하여, 패킷화되고 암호화된 데이터의 서브-프레임의 프리앰블로서 제 1 프리앰블 코드를 삽입함으로써 서브-프레임들을 수정한다. 일 실시예에 있어서, 이하에서 도 5a 내지 도 5c를 참조하여 상세하게 설명되는 바와 같이, 후속 서브 프레임들의 미리 결정된 수는 63이다. HDCP 암호화 엔진(314)은 패킷화되고 암호화된 오디오 데이터 스트림을 RC 송신기(322)로 송신한다.
일 실시예에 있어서, HDCP 암호화 엔진(314)은 오디오 데이터 스트림의 일 부분이 외부 소스(108)로부터의 지시에 기초하여 암호화될지 여부를 결정한다. 오디오 데이터 스트림의 부분이 암호화될 경우, HDCP 암호화 엔진(314)은 HDCP 프로토콜에 따라서 오디오 데이터 스트림의 부분을 암호화하며, 오디오 데이터 스트림의 암호화된 부분을 서브-프레임들로 패킷화한다.
제 2 모드에서, RC 송신기(322)는 HDCP 암호화 엔진(314)으로부터 제 3 인증 데이터를 수신한다. 제 3 인증 데이터는 싱크 디바이스(104)에 의한 소스 디바이스(102)의 인증과 연관된다. RC 송신기(322)는 I/O 포트(302)를 통하여 리턴 데이터 링크(114)를 통해 소스 디바이스(102)로 제 3 인증 데이터를 송신한다. RC 송신기(322)는 추가로 I/O 포트(302)를 통해 패킷화되고 암호화된 오디오 데이터 스트림을 포함하는 제 2 데이터 스트림을 소스 디바이스(102)로 송신한다. RC 송신기(322)는 직렬화기와 같은 아날로그 회로부를 포함할 수 있다.
제 2 모드에서, RC 수신기(318)는 I/O 포트(302)를 통하여 리턴 데이터 링크(114)를 통해 소스 디바이스(102)로부터 제 4 인증 데이터를 수신한다. 제 4 인증 데이터는 싱크 디바이스(104)에 의한 소스 디바이스(102)의 인증과 연관된다. RC 수신기(318)는 제 4 인증 데이터를 HDCP 암호화 엔진(314)으로 송신한다. RC 수신기(318)는 인증과 연관된 데이터로부터 디지털 데이터(예를 들어, 인증과 연관된 데이터)를 추출하기 위한 클럭 데이터 복원 회로를 포함할 수 있다.
제 1 모드에서, HDMI 수신기(310)는 소스 디바이스(102)로부터 제 1 인증 데이터를 수신하고, 제 1 인증 데이터를 HDCP 복호화 엔진(320)으로 송신한다. HDMI 수신기(310)는 I/O 포트(302)를 통하여 포워드 데이터 링크(112)의 측파대 링크를 통해 HDCP 복호화 엔진(320)으로부터의 제 2 인증 데이터를 소스 디바이스(102)로 송신한다. HDMI 수신기(310)는 추가로 I/O 포트(302)를 통하여 포워드 데이터 링크(112)의 메인 링크를 통해 소스 디바이스(102)로부터 패킷화되고 암호화된 비디오 데이터를 포함하는 제 1 데이터 스트림을 수신하고, 제 1 데이터 스트림을 HDCP 복호화 엔진(320)으로 송신한다.
HDCP 복호화 엔진(320)은 데이터 스트림(예를 들어, 제 1 데이터 스트림)을 복호화하는 논리 블록이다. HDCP 복호화 엔진(320)은 하드웨어 컴포넌트들, 컴퓨터 프로그램들, 또는 이들의 조합을 사용하여 구현될 수 있다. HDCP 복호화 엔진(320)은 프로세서(332A) 및 메모리(334A)를 포함한다. 프로세서(332A) 및 메모리(334A)의 동작 및 기능은 HDCP 암호화 엔진(214)의 프로세서(232A) 및 메모리(234A)의 동작 및 기능과 동일하며, 따라서, 본원에서 이의 상세한 설명은 간명함을 위하여 생략된다.
제 1 모드에서, HDCP 복호화 엔진(320)은 소스 디바이스(102)와 싱크 디바이스(104) 사이에 제 1 보안 링크를 수립하기 위하여 I/O 포트(302)를 통하여 포워드 데이터 링크(112)의 측파대 링크를 통해 그리고 HDCP 프로토콜을 사용하여 소스 디바이스(102)와 인증한다. 소스 디바이스(102)와의 인증 시에, HDCP 복호화 엔진(320)은 소스 디바이스(102)로부터 제 1 인증 데이터를 수신하고, 소스 디바이스(102)로 제 2 인증 데이터를 송신한다. HDCP 복호화 엔진(320)은 제 1 및 제 2 인증 데이터를 사용하여 소스 디바이스(102)와 인증한다.
HDCP 복호화 엔진(320)은 추가로 소스 디바이스(102)로부터 패킷화되고 암호화된 비디오 데이터 스트림을 포함하는 제 1 데이터 스트림을 수신한다. HDCP 복호화 엔진(320)은 HDCP 프로토콜을 사용하여 패킷화되고 암호화된 비디오 데이터를 복호화하고, 복호화된 비디오 데이터를 디스플레이를 위하여 디스플레이(352)로 송신한다.
일 실시예에 있어서, HDCP 복호화 엔진(320) 및 HDMI 수신기(310)는 단일 컴포넌트로 결합될 수 있다. 일 실시예에 있어서, RC 송신기(322) 및 RC 수신기(318)가 단일 컴포넌트로 결합될 수 있다. 일부 실시예들에 있어서 싱크 디바이스(104)가 디스플레이(352)를 포함하며, 다른 실시예들에 있어서 디스플레이(352)는 싱크 디바이스(104) 외부에 존재한다.
예시적인 오디오 블록 포맷
도 4는, 본원에 그 전체가 참조로서 통합되는 국제 전기기술 위원회(International Electrotechnical Commission; "IEC")의 60958 표준, 제 2 판(2004)과 호환되는 오디오 데이터의 블록(402)을 예시하는 도면이다. 블록(402)은 연속적인 프레임들 0 내지 191의 그룹을 포함한다. 다시 말해서, 블록(402)은 192개의 프레임들을 포함한다. 프레임들 0 내지 191의 각각의 프레임은 2개의 연속적이고 연관된 서브-프레임들 0-1의 시퀀스이다. 각각의 서브-프레임(즉, 서브-프레임 0, 서브-프레임 1)은 동기화 프리앰블(404), 보조 데이터(AUX)(406), 오디오 샘플 워드(408), 유효성 플래그(validity flag)(410), 사용자 데이터(412), 채널 상태(414), 및 패러티(parity) 비트(416)를 포함한다. 각각의 서브-프레임은 비트들 0 내지 31(32 비트)을 포함한다.
비트들 0 내지 3은 동기화 프리앰블(404)을 포함하고, 비트들 4 내지 7은 AUX(406)를 포함하며, 비트들 8 내지 27은 오디오 샘플 워드(408)를 포함하고, 비트 28은 유효성 플래그(410)를 포함하며, 비트 29는 사용자 데이터(412)를 포함하고, 비트 30은 채널 상태(414)를 포함하며, 비트 31은 패러티 비트(416)를 포함한다. 따라서, 각각의 프레임은 64 비트를 포함하며, 각각의 블록(402)은 12,288 비트를 포함한다. 데이터가 초당 50 메가비트(Mbps)로 송신되는 경우, 블록(402)은 0.24576 밀리초(ms) 내에 송신된다.
IEC 60958 표준에 명시된 바와 같이, 2-채널 동작 모드에서, 2개의 채널들 즉, 채널들 0 및 1로부터 취해지는 샘플들이 연속적인 서브-프레임들 0 및 1 내에 포함된다. 서브-프레임 0은 채널 0으로부터의 샘플들을 포함하며, 서브-프레임 1은 채널 1로부터의 샘플들을 포함한다.
서브-프레임들 0 및 1의 서브-프레임의 동기화 프리앰블(404)은 서브-프레임 및 블록(402)에 관한 동기화 및 식별 정보를 제공한다. 샘플링 기간 내에 동기화를 달성하기 위하여 그리고 신뢰성을 보장하기 위하여, 동기화 프리앰블(404)은 동기화 프리앰블(404)을 서브-프레임의 나머지 데이터(예를 들어, AUX(406), 오디오 샘플 워드(408), 유효성 플래그(410), 사용자 데이터(412), 채널 상태(414), 및 패러티 비트(416))와 구별하기 위하여 바이페이즈 마크 코딩(biphase mark coding; BMC) 규칙들을 의도적으로 위반한다.
블록(예를 들어, 블록(402))의 프레임 0의 서브-프레임 0의 동기화 프리앰블(404)은 제 1 프리앰블 코드 "Bsync" 또는 제 2 프리앰블 코드 "B" 중 하나를 포함한다. 제 1 프리앰블 코드 "Bsync"는, 소스 디바이스(102)에서 HDCP 프로토콜에 따라 키 갱신이 이루어질 것이라는 것과 프레임 0의 서브-프레임 0의 페이로드 및 후속 서브-프레임들(예를 들어, 블록(402)의 프레임들 0 내지 191에 대한 서브-프레임들 0 및 1)의 페이로드들 내의 오디오 데이터가 암호화된다는 것을 나타낸다. 제 1 프리앰블 코드 "Bsync"는, 블록(402)의 시작 및 채널 0에 대응하는 오디오 샘플 워드(408)가 뒤따른다는 것을 추가로 나타낸다. 블록(402)의 프레임 0의 서브-프레임 0의 동기화 프리앰블(404)은 매 64개의 블록들 마다 제 1 프리앰블 코드 "Bsync"를 포함할 수 있다. 이상의 예를 계속하면, 블록(402)이 0.24576 ms 내에 송신되는 경우, 블록들(402) 중 64개는 약 15.7 ms 내에 송신된다. 제 2 프리앰블 코드 "B"는 블록(402)의 시작 및 채널 0에 대응하는 오디오 샘플 워드(408)가 뒤따른다는 것을 나타낸다.
블록(402)의 다음 프레임들(즉, 프레임들 1 내지 191)의 서브-프레임 0의 동기화 프리앰블(404)은 제 3 프리앰블 코드 "M"을 포함한다. 제 3 프리앰블 코드 "M"은, 채널 0의 오디오 샘플 워드(408)가 뒤따른다는 것을 나타낸다. 블록(402)의 프레임들 0 내지 191전부의 서브-프레임 1의 동기화 프리앰블(404)은 제 4 프리앰블 코드 "W"를 포함한다. 제 4 프리앰블 코드 "W"는, 채널 1의 오디오 샘플 워드(408)가 뒤따른다는 것을 나타낸다.
AUX(406)는 오디오 데이터 및 상태 정보와 같은 보조 데이터를 포함한다. 오디오 샘플 워드(408)는 디지털 오디오 샘플의 값이다. 오디오 샘플 워드(408)는 선형적인 2개의 상보적인 2진수 형태를 사용하여 표현될 수 있다.
유효성 비트(410)는, 오디오 샘플 워드(408)의 데이터 비트들이 신뢰할 수 있는지 또는 그렇지 않은지 여부를 나타낸다. 예를 들어, 유효성 비트(410)는, 오디오 샘플 워드(408)의 데이터 비트들이 신뢰할 수 있는 경우 논리적으로 '0'이며, 그렇지 않은 경우 논리적으로 '1'이다. 일부 실시예들에 있어서, 유효성 비트(410)는 추가로 AUX(406)의 데이터 비트들이 신뢰할 수 있는지 또는 그렇지 않은지 여부를 나타낸다. 사용자 데이터(412)는 사용자 정보를 나타낸다. 채널 상태(414)는, 소스 디바이스(102)에 의해 디코딩이 가능한 각각의 메인 데이터 필드 채널과 연관된 정보를 나타낸다. 패러티 비트(416)는 인터페이스의 오작동들에 기인하는 홀수의 오류들의 검출을 제공한다.
실시예들이 본원에서 주로 IEC 60958 표준의 데이터 구조를 참조하여 설명되지만, 실시예들이 다른 표준들에 따른 데이터 구조에 적용될 수 있다.
도 5a는 일 실시예에 따른 싱크 디바이스(104)로부터 소스 디바이스(102)로 송신되는 오디오 데이터 스트림의 데이터 블록들의 예시적인 구조를 예시한다. 도 5a에 예시된 바와 같이, 암호화되지 않은 오디오 데이터 스트림의 블록(502)이 송신되고 그 다음에 암호화된 오디오 데이터 스트림의 블록들(504)이 이어지며 그 다음에 암호화된 오디오 데이터 스트림의 블록들(506)이 이어진다.
HDCP 암호화 엔진(314)은 오디오 데이터 스트림의 일 부분이 암호화되지 않을 것임을 결정한다. 예를 들어, 도 5a 및 도 5b에 예시된 바와 같이, 그 부분은 블록들(502)일 수 있다. HDCP 암호화 엔진(314)은 오디오 데이터 스트림의 그 부분을 암호화하지 않고, 오디오 데이터 스트림을 블록들(502)로 패킷화한다. HDCP 암호화 엔진(314)은 오디오 데이터 스트림의 일 부분이 암호화될 것임을 결정한다. 예를 들어, 도 5a 및 도 5b에 예시된 바와 같이, 그 부분은 블록들(504)일 수 있다. 블록들(504)은 오디오 스트림 중 64개의 블록들(즉, 오디오 데이터 스트림의 15.7 ms)을 포함할 수 있다. 그 부분은 64개의 블록들의 유닛들 내에 오디오 데이터 스트림의 더 많거나 또는 더 적은 블록들을 포함할 수 있다. HDCP 암호화 엔진(314)은 오디오 데이터 스트림의 그 부분을 암호화하고, 암호화된 오디오 데이터 스트림을 블록들(504)로 패킷화한다. HDCP 암호화 엔진(314)은 블록들(504)의 블록 0의 프레임 0의 서브-프레임 0의 프리앰블로서 (도 5a에서 "BS"로서 도시된) 제 1 프리앰블 코드 "Bsync"를 삽입한다. 제 1 프리앰블 코드 "Bsync"는, 소스 디바이스(102)에서 HDCP 프로토콜에 따라 키 갱신이 이루어질 것이라는 것과 다음의 64개의 블록들(즉, 블록(504))이 암호화된 데이터를 포함한다는 것을 나타낸다. 일 실시예에 있어서, 블록 0의 프레임 0의 서브-프레임 0은 제 2 프리앰블 코드 "B"를 포함한다. 이러한 실시예에 있어서, HDCP 암호화 엔진(314)은 블록 0의 프레임 0의 서브-프레임 0의 제 2 프리앰블 코드 "B"를 제 1 프리앰블 코드 "Bsync"로 대체한다. 그 부분의 블록들 1 내지 63의 프레임 0의 서브-프레임 0은 제 2 프리앰블 코드 "B"를 포함한다. 63개의 블록들 이후에, HDCP 암호화 엔진(314)은 오디오 데이터 스트림의 다음 부분이 암호화될지 여부를 결정한다.
일 실시예에 있어서, HDCP 암호화 엔진(314)은 오디오 데이터 스트림의 다음 부분이 암호화될 것임을 결정한다. 예를 들어, 도 5a에 예시된 바와 같이, 다음 부분은 블록들(506)일 수 있다. HDCP 암호화 엔진(314)은 오디오 데이터 스트림의 다음 부분을 암호화하고, 오디오 데이터 스트림의 암호화된 다음 부분을 블록들(506)로 패킷화하며, 블록(506)의 블록 0의 프레임 0의 서브-프레임 0의 프리앰블로서 제 1 프리앰블 코드 "Bsync"를 삽입한다.
다른 실시예에 있어서, HDCP 암호화 엔진(314)은 오디오 데이터 스트림의 다음 부분이 암호화되지 않을 것임을 결정한다. 예를 들어, 도 5b에 예시된 바와 같이, 다음 부분은 블록들(508)일 수 있다. 이러한 실시예에 있어서, HDCP 암호화 엔진(314)은 오디오 데이터 스트림의 다음 부분을 암호화하지 않고, 다음 부분을 블록들(508)로 패킷화한다.
도 5c에 예시된 바와 같이, HDCP 암호화 엔진(314)은, 오디오 데이터 스트림의 제 1 부분이 암호화될 것임을 결정하고, 오디오 데이터 스트림의 제 2 부분은 암호화되지 않을 것임을 결정하며, 오디오 데이터 스트림의 제 3 부분은 암호화될 것임을 결정하고, 오디오 데이터 스트림의 제 4 부분은 암호화되지 않을 것임을 결정한다. 제 1 부분은 블록들(512)일 수 있으며, 제 2 부분은 블록들(514)일 수 있고, 제 3 부분은 블록들(516)일 수 있으며, 제 4 부분은 블록들(518)일 수 있다. 일 실시예에 있어서, 블록들(512 및 516)은 도 5a 및 도 5b의 블록들(504)과 동일하며, 블록들(514 및 518)은 도 5b의 블록들(508)과 동일하다. 도 5c에 예시된 바와 같이, 블록들(514)은 2개의 블록들을 포함한다. 블록들(514)은 오디오 데이터 스트림의 더 많거나 또는 더 적은 블록들을 포함할 수 있다. 블록들(518)이 또한 오디오 데이터 스트림의 더 많거나 또는 더 적은 블록들을 포함할 수 있다. 따라서, HDCP 암호화 엔진(314)은 블록들(514 및 518)을 포함하는 제 2 및 제 4 부분들이 각기 암호화되지 않는다고 결정할 수 있으며, 여기에서 블록들(514 및 518)은 임의의 수의 블록들을 포함할 수 있다.
데이터 스트림을 수정하는 프로세스
도 6은 일 실시예에 따른 싱크 디바이스(104)로부터 소스 디바이스(102)로의 데이터 스트림을 수정하는 방법을 예시하는 순서도이다. 싱크 디바이스(104)는 소스 디바이스(102)를 인증한다(602). 구체적으로, HDCP 암호화 엔진(314)은 HDCP 프로토콜을 사용하여 리턴 데이터 링크(114)를 통해 소스 디바이스(102)를 인증한다(602).
수신기(306)는 AV 데이터 링크(118)를 통해 외부 소스(108)로부터 AV 데이터 스트림을 수신한다(604). AV 데이터 스트림은 오디오 데이터 및 비디오 데이터를 포함한다. 수신기(306)는 HDCP 암호화 엔진(314)으로 오디오 데이터를 포함하는 오디오 데이터 스트림을 송신한다.
HDCP 암호화 엔진(314)은 HDCP 프로토콜을 사용하여 오디오 데이터 스트림의 적어도 일 부분을 암호화한다(606). HDCP 암호화 엔진(314)은 암호화된 오디오 데이터 스트림을 서브-프레임들을 포함하는 블록들로 패킷화한다(608). 예를 들어, HDCP 암호화 엔진(314)은, 패킷화된 오디오 데이터 스트림이 오디오 블록들의 유닛들을 포함하되, 각각의 오디오 블록은 192개의 프레임들을 포함하고, 각각의 프레임은 2개의 서브-프레임들을 포함하며, 각각의 서브-프레임은 적어도 하나의 프리앰블 및 오디오 샘플 워드를 포함하도록 오디오 데이터 스트림을 패킷화한다(608).
HDCP 암호화 엔진(314)은, HDCP 프로토콜에 따라서 소스 디바이스(102)에서 키 갱신이 수행될 것임을 나타내기 위하여, 그리고 서브-프레임의 페이로드 및 후속 서브-프레임들의 페이로드들 내의 오디오 데이터의 적어도 일 부분이 암호화된다는 것을 나타내기 위하여, 서브-프레임의 프리앰블로서 제 1 프리앰블 코드를 삽입함으로써 서브-프레임들을 수정한다(610). 일 실시예에 있어서, 제 1 프리앰블 코드를 서브-프레임의 프리앰블로서 삽입함으로써 서브-프레임들을 수정하는 단계(610)는 서브-프레임의 프리앰블의 제 2 프리앰블 코드를 제 1 프리앰블 코드로 대체하는 단계를 포함한다.
HDCP 암호화 엔진(314)은 수정되고 패킷화되며 암호화된 오디오 데이터 스트림을 RC 송신기(322)로 송신하며(612), 그러면 이는 수정되고 패킷화되며 암호화된 오디오 데이터를 포함하는 제 2 데이터 스트림을 리턴 데이터 링크(114)를 통해 소스 디바이스(102)로 송신한다(612).
도 6을 참조하여 이상에서 설명된 바와 같은 단계들의 시퀀스는 오로지 예시적일 뿐이다. 예를 들어, 오디오 데이터를 포함하는 AV 스트림을 수신하는 단계(604)가 싱크 디바이스(104)에 의해 소스 디바이스(102)를 인증하는 단계(602) 이후에 일어나는 것으로서 이상에서 설명되었지만, AV 데이터 스트림은 싱크 디바이스(104)에 의해 소스 디바이스(102)를 인증하는 단계(602) 이전에 수신될 수 있다. 유사하게, 오디오 데이터를 서브-프레임들로 패킷화하는 단계(608)가 오디오 데이터를 암호화하는 단계(606) 이후에 일어나는 것으로서 이상에서 설명되었지만, 오디오 데이터는 패킷화된 오디오 데이터를 암호화하는 단계(606) 이전에 서브-프레임들로 패킷화될 수 있다(608).
실시예들은 설명된 바와 같은 명시된 기능들, 입력들, 및/또는 출력들을 수행하는 회로부로 구현될 수 있다. 이러한 회로부는, 비-일시적인 컴퓨터 판독가능 매체와 같은 매체로부터의 명령어들의 시퀀스에 의해, 고정-기능(fixed-function) 로직에 의해, 필드 프로그램가능 게이트 어레이 로직과 같은 재구성가능 로직에 의해, 그리고 이들의 조합에 의해 프로그래밍되는 프로그램가능 프로세서를 사용하여 구현될 수 있다. 예를 들어, 본 개시에 따른 암호화 회로는, 예를 들어, 암호화 알고리즘의 특정 부분들을 수행하는 프로그램가능 프로세서 및 고정-기능 로직 중 하나 이상에 의해 구현될 수 있다.
대안적이고 추가적인 실시예들
도 7은 다른 실시예에 따른 소스 디바이스(102), 싱크 디바이스(104), 오디오 디바이스(106), 및 외부 소스(108)를 포함하는 시스템(700)을 예시하는 블록도이다. 소스 디바이스(102) 및 싱크 디바이스(104)는 양방향 포워드 데이터 링크(112) 및 리턴 데이터 링크(714)를 통해 통신 가능하게 결합된다. 도 1의 양방향 리턴 데이터 링크(114)와는 달리, 도 7의 리턴 데이터 링크(714)는 단방향 링크이다. 리턴 데이터 링크(714)는 싱크 디바이스(104)로부터의 데이터를 소스 디바이스(102)로 송신한다. 이러한 실시예에 있어서, 싱크 디바이스(102)의 HDCP 암호화 엔진(314)은 I/O 포트(302)를 통하여 포워드 데이터 링크(112)의 측파대 링크 및 리턴 데이터 링크(714)를 통해 소스 디바이스(102)를 인증한다. 소스 디바이스(102)의 인증 시에, HDCP 암호화 엔진(314)은 제 3 인증 데이터를 리턴 데이터 링크(714)를 통해 소스 디바이스(102)로 송신하고, 소스 디바이스(102)로부터 포워드 데이터 링크(112)의 측파대 링크를 통해 제 4 인증 데이터를 수신한다.
도 8은 일 실시예에 따른, HDCP 암호화 엔진들(214, 314) 및 HDCP 복호화 엔진들(220, 320)과 연관된 설계 동작들을 수행하기 위한 컴퓨팅 디바이스(800)의 블록도이다. 컴퓨터 디바이스(800)는, 다른 컴포넌트들 중에서도 특히, 프로세서(812), 입력 모듈(816), 출력 모듈(820), 메모리(826) 및 이러한 컴포넌트들을 연결하기 위한 버스(827)를 포함한다. 프로세서(812)는 메모리(826)에 저장된 명령어들을 실행한다. 입력 모듈(816)은, 사용자 입력을 수신하기 위한 키보드들 및 포인팅 디바이스들(예를 들어, 마우스 및 터치 스크린)을 포함하는 다양한 디바이스들을 포함할 수 있다. 출력 모듈(820)은 디스플레이 디바이스 또는 디스플레이 디바이스와 통신하기 위한 인터페이스 디바이스를 포함한다.
메모리(826)는, 다른 것들 중에서도 특히, 라이브러리(830), 전자 설계 자동화(electronic design automation; EDA) 애플리케이션들(834) 및 집적 회로(IC) 설계들(836)을 저장하는 비-일시적인 컴퓨터 판독가능 저장 매체이다. 라이브러리(830)는, 본원에서 개시된 HDCP 암호화 엔진들(214, 314) 및 HDCP 복호화 엔진들(220, 320)의 인스턴스(instance)들을 포함하는 다양한 회로 컴포넌트들에 대한 데이터를 포함할 수 있다. EDA 애플리케이션들(834)은, 배치 및 라우팅 툴들, 합성 툴들, 및 검증 툴들을 포함하는, IC들을 설계하기 위한 다양한 소프트웨어 프로그램들을 포함할 수 있다. EDA 애플리케이션들(834)에 의해 프로세싱된 설계는 IC 설계들(836) 내에 저장될 수 있다. IC 설계들(836)은 완전한 동작 회로 또는 더 큰 IC 회로의 일 부분일 수 있다. IC 설계들(836)은 소스 디바이스(102)의 RC 수신기(218), HDCP 복호화 엔진(220) 및 RC 송신기(222) 및 싱크 디바이스(104)의 HDCP 암호화 엔진(314), RC 수신기(318) 및 RC 송신기(322) 중 하나 이상의 디지털 표현을 포함한다.
본원에서 설명된 원리들은 MHL 및/또는 HDCP가 아닌 프로토콜들과 함께 사용될 수 있다. 예를 들어, 유사한 실시예들이 또한 HDMI 2.0의 HDCP 내에서 사용될 수 있다.
본 개시의 특정 실시예들 및 애플리케이션들이 예시되고 설명되었지만, 실시예들이 본원에 개시된 정확한 구성 및 컴포넌트들에 한정되지 않는다는 것 및 다양한 수정예들이 이해될 것이다.

Claims (21)

  1. 싱크 디바이스로서,
    오디오 데이터를 포함하는 데이터 스트림을 수신하도록 구성된 수신기;
    상기 수신기에 결합된 암호화 회로로서, 상기 암호화 회로는,
    인증 및 암호화 프로토콜을 사용하여 소스 디바이스를 인증하고,
    상기 수신된 오디오 데이터의 적어도 일 부분을 암호화하며,
    적어도 상기 부분을 포함하는 상기 암호화된 오디오 데이터를 서브-프레임들로 패킷화하고, 및
    상기 인증 및 암호화 프로토콜에 따라 상기 소스 디바이스에서 키 갱신이 수행될 것을 나타내기 위하여 서브-프레임의 프리앰블(preamble)로서 제 1 프리앰블 코드를 삽입함으로써 상기 서브-프레임들을 수정하도록 구성되며, 상기 제 1 프리앰블 코드는 상기 서브-프레임의 페이로드(payload) 및 복수의 후속 서브-프레임들의 페이로드들 내의 상기 오디오 데이터의 적어도 상기 부분이 암호화된다는 것을 추가로 나타내는, 상기 암호화 회로; 및
    상기 암호화 회로에 결합된 송신기로서, 상기 송신기는 제 1 데이터 링크를 통해 상기 수정된 서브-프레임들을 상기 소스 디바이스로 송신하도록 구성되는, 상기 송신기를 포함하는, 싱크 디바이스.
  2. 청구항 1에 있어서,
    상기 오디오 데이터는 오디오 블록들의 복수의 유닛들을 포함하며, 각각의 오디오 블록은 192개의 프레임들을 포함하고, 각각의 프레임은 2개의 서브-프레임들을 포함하며, 각각의 서브-프레임은 적어도 하나의 프리앰블 및 오디오 샘플 워드(audio sample word)를 포함하는, 싱크 디바이스.
  3. 청구항 2에 있어서,
    상기 프리앰블은: 상기 제 1 프리앰블 코드, 오디오 블록의 시작 및 제 1 채널에 대응하는 오디오 샘플 워드가 뒤따른다는 것을 나타내는 제 2 프리앰블 코드, 상기 제 1 채널에 대응하는 오디오 샘플 워드가 뒤따른다는 것을 나타내는 제 3 프리앰블 코드, 및 제 2 채널에 대응하는 오디오 샘플 워드가 뒤따른다는 것을 나타내는 제 4 프리앰블 코드 중 하나를 포함하는, 싱크 디바이스.
  4. 청구항 3에 있어서,
    상기 제 1 프리앰블 코드는 오디오 블록의 시작 및 상기 제 1 채널에 대응하는 오디오 샘플 워드가 뒤따른다는 것을 더 나타내는, 싱크 디바이스.
  5. 청구항 3에 있어서,
    상기 암호화 회로는 적어도 상기 서브-프레임의 상기 프리앰블의 제 2 프리앰블 코드를 상기 제 1 프리앰블 코드로 대체함으로써 상기 서브-프레임의 상기 프리앰블로서 상기 제 1 프리앰블 코드를 삽입하는, 싱크 디바이스.
  6. 청구항 1에 있어서,
    상기 암호화 회로는 상기 오디오 데이터의 상기 부분이 암호화될 것이라고 결정하도록 더 구성되는, 싱크 디바이스.
  7. 청구항 1에 있어서,
    상기 제 1 데이터 링크는 오디오 리턴 채널(Audio Return Channel; ARC)인, 싱크 디바이스.
  8. 청구항 7에 있어서,
    상기 소스 디바이스는 상기 제 1 데이터 링크를 통해 상기 싱크 디바이스에 의해 인증되는, 싱크 디바이스.
  9. 청구항 1에 있어서,
    상기 소스 디바이스는 상기 제 1 데이터 링크 및 상기 제 1 데이터 링크와는 별개인 제 2 데이터 링크를 사용하여 인증되는, 싱크 디바이스.
  10. 청구항 9에 있어서,
    상기 제 2 데이터 링크는 디스플레이 데이터 채널(Display Data Channel; DDC)이며, 상기 인증 및 암호화 프로토콜은 고-대역폭 디지털 컨텐트 보호(High-bandwidth Digital Content Protection; HDCP) 프로토콜인, 싱크 디바이스.
  11. 방법으로서,
    인증 및 암호화 프로토콜을 사용하여 싱크 디바이스에 의해 소스 디바이스를 인증하는 단계;
    상기 싱크 디바이스에서, 오디오 데이터를 포함하는 데이터 스트림을 수신하는 단계;
    상기 수신된 오디오 데이터의 적어도 일 부분을 암호화하는 단계;
    적어도 상기 부분을 포함하는 상기 암호화된 오디오 데이터를 서브-프레임들로 패킷화하는 단계;
    상기 인증 및 암호화 프로토콜에 따라 상기 소스 디바이스에서 키 갱신이 수행될 것을 나타내기 위하여, 그리고 서브-프레임의 페이로드 및 복수의 후속 서브-프레임들의 페이로드들 내의 상기 오디오 데이터의 적어도 상기 부분이 암호화된다는 것을 나타내기 위하여, 상기 서브-프레임의 프리앰블로서 제 1 프리앰블 코드를 삽입함으로써 상기 서브-프레임들을 수정하는 단계; 및
    제 1 데이터 링크를 통해 상기 수정된 서브-프레임들을 상기 싱크 디바이스로부터 상기 소스 디바이스로 송신하는 단계를 포함하는, 방법.
  12. 청구항 11에 있어서,
    상기 오디오 데이터는 오디오 블록들의 복수의 유닛들을 포함하며, 각각의 오디오 블록은 192개의 프레임들을 포함하고, 각각의 프레임은 2개의 서브-프레임들을 포함하며, 각각의 서브-프레임은 적어도 하나의 프리앰블 및 오디오 샘플 워드를 포함하는, 방법.
  13. 청구항 12에 있어서,
    상기 프리앰블은: 상기 제 1 프리앰블 코드, 오디오 블록의 시작 및 제 1 채널에 대응하는 오디오 샘플 워드가 뒤따른다는 것을 나타내는 제 2 프리앰블 코드, 상기 제 1 채널에 대응하는 오디오 샘플 워드가 뒤따른다는 것을 나타내는 제 3 프리앰블 코드, 및 제 2 채널에 대응하는 오디오 샘플 워드가 뒤따른다는 것을 나타내는 제 4 프리앰블 코드 중 하나를 포함하는, 방법.
  14. 청구항 13에 있어서,
    상기 제 1 프리앰블 코드는 오디오 블록의 시작 및 상기 제 1 채널에 대응하는 오디오 샘플 워드가 뒤따른다는 것을 더 나타내는, 방법.
  15. 청구항 13에 있어서,
    상기 서브-프레임의 상기 프리앰블로서 상기 제 1 프리앰블 코드를 삽입하는 단계는,
    상기 서브-프레임의 상기 프리앰블의 제 2 프리앰블 코드를 상기 제 1 프리앰블 코드로 대체하는 단계를 포함하는, 방법.
  16. 청구항 11에 있어서,
    상기 방법은, 상기 오디오 데이터의 상기 부분이 암호화될지 여부를 결정하는 단계를 더 포함하는, 방법.
  17. 청구항 11에 있어서,
    상기 제 1 데이터 링크는 오디오 리턴 채널(Audio Return Channel; ARC)인, 방법.
  18. 청구항 17에 있어서,
    상기 싱크 디바이스에 의해 상기 소스 디바이스를 인증하는 단계는 상기 제 1 데이터 링크를 통해 수행되는, 방법.
  19. 청구항 11에 있어서,
    상기 싱크 디바이스에 의해 상기 소스 디바이스를 인증하는 단계는 상기 제 1 데이터 링크 및 상기 제 1 데이터 링크와는 별개인 제 2 데이터 링크를 통해 수행되는, 방법.
  20. 청구항 19에 있어서,
    상기 제 2 데이터 링크는 디스플레이 데이터 채널(Display Data Channel; DDC)이며, 상기 인증 및 암호화 프로토콜은 고-대역폭 디지털 컨텐트 보호(High-bandwidth Digital Content Protection; HDCP) 프로토콜인, 방법.
  21. 싱크 디바이스 내에서 실행가능한 컴퓨터 명령어들을 저장하는 비-일시적인 컴퓨터-판독가능 저장 매체로서, 상기 명령어들은 프로세서에 의해 실행될 때 상기 프로세서가 하기의 동작들을 수행하게끔 하며, 상기 동작들은:
    인증 및 암호화 프로토콜을 사용하여 싱크 디바이스에 의해 소스 디바이스를 인증하는 동작;
    오디오 데이터를 포함하는 데이터 스트림을 수신하는 동작;
    상기 수신된 오디오 데이터의 적어도 일 부분을 암호화하는 동작;
    적어도 상기 부분을 포함하는 상기 암호화된 오디오 데이터를 서브-프레임들로 패킷화하는 동작;
    상기 인증 및 암호화 프로토콜에 따라 상기 소스 디바이스에서 키 갱신이 수행될 것을 나타내기 위하여, 그리고 서브-프레임의 페이로드 및 복수의 후속 서브-프레임들의 페이로드들 내의 상기 오디오 데이터의 적어도 상기 부분이 암호화된다는 것을 나타내기 위하여, 상기 서브-프레임의 프리앰블로서 제 1 프리앰블 코드를 삽입함으로써 상기 서브-프레임들을 수정하는 동작; 및
    상기 수정된 서브-프레임들을 제 1 데이터 링크를 통해 상기 소스 디바이스로 송신하는 동작을 포함하는, 비-일시적인 컴퓨터-판독가능 저장 매체.
KR1020177019067A 2014-12-09 2015-12-07 오디오 리턴 데이터 링크를 통한 디지털 컨텐트 보호 KR102095911B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462089767P 2014-12-09 2014-12-09
US62/089,767 2014-12-09
PCT/US2015/064322 WO2016094319A1 (en) 2014-12-09 2015-12-07 Digital content protection over audio return data link

Publications (2)

Publication Number Publication Date
KR20170094354A true KR20170094354A (ko) 2017-08-17
KR102095911B1 KR102095911B1 (ko) 2020-04-02

Family

ID=56108022

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177019067A KR102095911B1 (ko) 2014-12-09 2015-12-07 오디오 리턴 데이터 링크를 통한 디지털 컨텐트 보호

Country Status (6)

Country Link
US (1) US10505735B2 (ko)
KR (1) KR102095911B1 (ko)
CN (1) CN107211009B (ko)
DE (1) DE112015005519B4 (ko)
TW (1) TWI672036B (ko)
WO (1) WO2016094319A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10522155B2 (en) * 2017-02-21 2019-12-31 Cirrus Logic, Inc. Pulse code modulation (PCM) data-marking
WO2021015749A1 (en) * 2019-07-23 2021-01-28 Google Llc Radio frequency condition aware audio buffering
CN112492240B (zh) * 2019-09-11 2022-06-28 李冰 一种用于hdmi音频回传信号时钟频率鉴别的方法
CN111556268B (zh) * 2020-04-28 2022-04-15 广州视源电子科技股份有限公司 基于hdcp的hdmi装置、数据处理方法和电子设备
TWI818344B (zh) * 2021-11-01 2023-10-11 神達數位股份有限公司 影像資料管理方法及系統

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030167397A1 (en) * 2002-03-01 2003-09-04 Intel Corporation Transparently embedding non-compliant data in a data stream
US20120023331A1 (en) * 2010-07-23 2012-01-26 William Conrad Altmann Mechanism for internal processing of content through partial authentication on secondary channel
US9575917B1 (en) * 2013-08-30 2017-02-21 Analogix Semiconductor, Inc. Protocol for digital audio-video interface

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100746771B1 (ko) 2001-04-24 2007-08-06 엘지전자 주식회사 휴대용 오디오 기기에서의 오디오 파일 재생방법
US7088398B1 (en) 2001-12-24 2006-08-08 Silicon Image, Inc. Method and apparatus for regenerating a clock for auxiliary data transmitted over a serial link with video data
US7412053B1 (en) 2002-10-10 2008-08-12 Silicon Image, Inc. Cryptographic device with stored key data and method for using stored key data to perform an authentication exchange or self test
US7634090B2 (en) * 2003-09-26 2009-12-15 Genesis Microchip Inc. Packet based high definition high-bandwidth digital content protection
US7599439B2 (en) 2005-06-24 2009-10-06 Silicon Image, Inc. Method and system for transmitting N-bit video data over a serial link
JP4645717B2 (ja) 2008-09-26 2011-03-09 ソニー株式会社 インタフェース回路および映像装置
CN101465724B (zh) * 2009-01-06 2011-01-05 中国科学院软件研究所 一种加密的Huffman编码方法,及其解码方法
US9654810B2 (en) * 2010-07-23 2017-05-16 Lattice Semiconductor Corporation Mechanism for partial encryption of data streams
US8964979B2 (en) * 2011-10-07 2015-02-24 Silicon Image, Inc. Identification and handling of data streams using coded preambles
US9088805B2 (en) * 2012-02-08 2015-07-21 Vixs Systems, Inc. Encrypted memory device and methods for use therewith
US9436815B2 (en) 2012-07-12 2016-09-06 Xsette Technology, Inc. Block management unification system and method
CN102917250B (zh) 2012-11-08 2015-07-01 四川虹微技术有限公司 用于数字媒体接口的音视频传输方法
CN103812646A (zh) * 2014-02-18 2014-05-21 立德高科(北京)数码科技有限责任公司 对音频数据进行加密输出的方法以其装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030167397A1 (en) * 2002-03-01 2003-09-04 Intel Corporation Transparently embedding non-compliant data in a data stream
US20120023331A1 (en) * 2010-07-23 2012-01-26 William Conrad Altmann Mechanism for internal processing of content through partial authentication on secondary channel
US9575917B1 (en) * 2013-08-30 2017-02-21 Analogix Semiconductor, Inc. Protocol for digital audio-video interface

Also Published As

Publication number Publication date
CN107211009A (zh) 2017-09-26
DE112015005519B4 (de) 2021-07-22
US10505735B2 (en) 2019-12-10
US20170317829A1 (en) 2017-11-02
KR102095911B1 (ko) 2020-04-02
TWI672036B (zh) 2019-09-11
TW201622373A (zh) 2016-06-16
WO2016094319A1 (en) 2016-06-16
DE112015005519T5 (de) 2017-08-24
CN107211009B (zh) 2020-11-20

Similar Documents

Publication Publication Date Title
KR102095911B1 (ko) 오디오 리턴 데이터 링크를 통한 디지털 컨텐트 보호
KR101735682B1 (ko) 데이터 스트림의 부분 암호화를 위한 메커니즘
CN102761779B (zh) 条件接收模块及其系统及向其发送加密数据的装置和方法
EP2443826B1 (en) Detection of encryption utilizing error detection for received data
KR20100128307A (ko) 미디어 콘텐츠 스트림의 복호화 방법과 장치와 시스템
CN103875230A (zh) 使用编码的前同步码对数据流的标识和处理
US10380358B2 (en) MPEG transport frame synchronization
US10129019B2 (en) DP HDCP version converter
KR20060083419A (ko) 송신 장치 및 수신 장치, 및, 데이터 전송 시스템
JP2001086481A (ja) パケット分離装置、ディジタル信号転送システム、暗号化装置、媒体、および情報集合体
KR102032234B1 (ko) 프레임 수들을 발송함으로써 디바이스들에 걸친 암호화 프로세스의 동기화 유지
RU2686005C1 (ru) Способ обеспечения передачи зашифрованных данных в цифровой системе передачи данных (варианты)
JP6667285B2 (ja) 送信装置、受信装置、プログラム、およびチップ
KR100566546B1 (ko) 정보 암호화/복호화 방법 및 장치
KR20080013218A (ko) 주문형 비디오 서비스를 위한 고화질 멀티미디어인터페이스 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant