KR101522691B1 - 암호 데이터를 제공하기 위한 방법, 모듈 및 시스템 - Google Patents

암호 데이터를 제공하기 위한 방법, 모듈 및 시스템 Download PDF

Info

Publication number
KR101522691B1
KR101522691B1 KR1020097017841A KR20097017841A KR101522691B1 KR 101522691 B1 KR101522691 B1 KR 101522691B1 KR 1020097017841 A KR1020097017841 A KR 1020097017841A KR 20097017841 A KR20097017841 A KR 20097017841A KR 101522691 B1 KR101522691 B1 KR 101522691B1
Authority
KR
South Korea
Prior art keywords
data
cryptographic
stream
source
data stream
Prior art date
Application number
KR1020097017841A
Other languages
English (en)
Other versions
KR20100014860A (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 KR20100014860A publication Critical patent/KR20100014860A/ko
Application granted granted Critical
Publication of KR101522691B1 publication Critical patent/KR101522691B1/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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • 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
    • H04L63/0457Network 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 wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • 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
    • H04L2209/605Copy protection

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)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

암호 데이터의 주 소스의 출력이 이용가능하지 않은 시간 기간 동안 암호 데이터를 제공하는 방법이 개시된다. 이 방법은 상기 시간 기간의 시작시에 암호 데이터의 주 소스로부터 암호 데이터의 교대 소스로 스위칭하는 단계와; 상기 시간 기간 동안 상기 교대 소스로부터의 암호 데이터를 이용하는 단계와; 그리고 상기 시간 기간의 끝에서 상기 주 소스로 다시 스위칭하는 단계를 포함한다.
엔크립션, 디크립션, 주 소스, 교대 소스, 스위칭

Description

암호 데이터를 제공하기 위한 방법, 모듈 및 시스템{METHOD, MODULE AND SYSTEM FOR PROVIDING CIPHER DATA}
본 발명은, 특히 암호 데이터의 주 소스(primary source)의 출력이 이용가능하지 않은 시간 기간 동안, 암호 데이터를 제공하기 위한 방법, 모듈 및 시스템에 관한 것이다.
현대의 디지털 응용(digital application)들은 안전한 데이터 교환에 크게 의존한다. 예를 들어, 디지털 오디오 및 비디오를 포함하는 디지털 콘텐츠는 종종 엔크립션(encryption)된 형태로 저장되어 전송되며, 이후 허가된 수신인(authorized recipient)들에 의해 디크립트(decrypt)된다. 많은 엔크립션/디크립션 기술들이 알려져있는 것은 결코 놀라운 일이 아니다.
예를 들어, HDCP(High-bandwidth Digital Content Protection) 프로토콜을 이용하여, 고대역폭 포인트-투-포인트 링크 상의 디지털 데이터 비디오 스트림들을 보호한다. HDCP는, 예를 들어 HDMI(High Definition Multimedia Interface) 및 DVI(Digital Video interface)를 통해 비디오 소스들과 상호 연결되는 디스플레이들에 이용된다.
HDCP는 암호 엔진(cipher engine)을 초기화하기 위해 최초 인증 단 계(initial authentication phase)를 이용하는데, 이러한 암호 엔진은 이후 보호되어야 하는 데이터 스트림과 XOR(배타적 논리합)되는 의사-랜덤 엔크립션 암호 스트림(pseudo-random encryption cipher stream)을 생성하는 데에 이용된다. 결과적인 데이터 스트림은, 엔크립션 암호 스트림과 동일한 디크립션 암호 스트림(decryption cipher stream)을 발생시킨 다음, 이를 보호된 데이터 스트림과 XOR시킴으로써 최초의 데이터를 복구하지 않으면, 디크립트될 수 없다. 도 1은 간단한 HDCP 전송기/수신기 시스템(100)을 도시한다.
시스템(100)은 전송기(110) 및 수신기(120)를 포함한다. 전송기(110)는 데이터 소스(114)로부터의 데이터를 엔크립트(encrypt)하기 위한 HDCP 암호 데이터를 생성하는 HDCP 엔진(112)을 포함한다. 이러한 암호 데이터는 XOR 게이트(116)를 이용하여 데이터 소스로부터의 데이터와 결합되며, 이에 의해 보호되는 데이터 스트림(140)을 생성한다.
수신기(120)는 HDCP 엔진(122)을 포함하는데, 이 HDCP 엔진(122)은 HDCP 엔진(112)과 마찬가지로, 보호되는 데이터 스트림(140)을 디크립트(decrypt)하기 위한 HDCP 암호 데이터를 생성한다. 이러한 HDCP 암호 데이터는 XOR 게이트(126)를 이용하여 상기 보호되는 데이터 스트림(140)과 결합되며, XOR 게이트(126)의 출력은 데이터 싱크(data sink)(124)에 제공된다.
HDCP 엔진들(112 및 122)은 제어 및 인증 정보(130)를 교환함으로써, 이들이 요청되는 엔크립션/디크립션을 수행하도록 허가되었는 지를 확실히 보증함과 아울러, 이들이 서로 확실하게 동기될 수 있게 한다.
전송기(110) 및 수신기(120)는 주기적으로 재초기화(re-initialize)(즉, 리키(re-key))해야 한다. 이는 전송기(110)에 의해 제공되는 비디오의 각 라인에 대해, 그리고 비디오의 각 프레임에 대해 수행된다. 리키잉(re-keying)은 전송기(110)가 수신기(120)와 동기될 수 있게 한다. 각 라인 이후, HDCP 시스템은 소프트 리키(soft re-key)를 수행하는데, 이러한 소프트 리키는 전형적으로 58개의 사이클을 갖는다. 각 프레임 이후, 하드 리키(hard re-key)가 수행되는데, 이러한 하드 리키에 대해서는 142개의 사이클이 할당된다.
유감스럽게도, 엔크립션은 리키 기간들 동안에는 가능하지 않은데, 그 이유는 암호 엔진들(112 및 122)이 이러한 기간들 동안에는 암호 데이터를 발생시키지 않기 때문이다. 전형적으로, HDCP는 래스터화(rasterize)되는 비디오를 보호하는 데에 이용되기 때문에, 수직 및 수평 블랭크 간격(blank interval)들이 이러한 주기적인 리키잉(re-keying)을 수용(accommodate)하며, 이에 의해 암호 엔진들(112 및 122)은 데이터 스트림의 엔크립션 또는 디크립션에 영향을 미치지 않으면서 간헐적인(intermittent) 엔크립션/디크립션 암호 스트림들을 발생시킬 수 있게 된다.
도 2는 HDCP 래스터화된 비디오(200)의 일 예를 나타낸다. 이러한 래스터화된 비디오는 활성 비디오 데이터(210)를 포함하는데, 이 시간 동안 HDCP는 활성이 된다. 상기 래스터화된 비디오는 또한 수직 블랭크(220) 및 수평 블랭크(230)를 포함하는데, 이들은 전형적인 수직 및 수평 블랭킹 간격들에 해당한다. 선택적으로, 보조 데이터(ancillary data)(222)가 블랭킹 간격들 내에 끼워 넣어질 수 있다. 엔크립션 및 디크립션 스트림들은 보조 데이터(222)를 포함하지 않는 수직 블랭 크(220) 및 수평 블랭크(230)의 부분들에 대해서는 중지된다. 수직 블랭크(220) 그리고/또는 수평 블랭크(230) 동안, 프레임 마다의 리키잉(per frame re-keying)(240) 및 라인 마다의 리키잉(per line re-keying)이 일어날 수 있다.
HDCP는 Digital Content Protection, LLC사에 의해 입수가능한 HDCP Specification Rev. 1.2 및 1.3에서 보다 더 특정하게 상술되어 있는 바, 이 문서의 내용은 본원의 참조로서 인용된다.
유감스럽게도, 모든 데이터 스트림들이 HDCP 리키잉을 수용하기 위한 충분한 간격들(예를 들어, 브레이크들(breaks))을 포함하는 것은 아니다. 이러한 스트림들은 전형적인 HDCP 프로토콜을 이용하여 엔크립트되지 않는다. 예를 들어, HDCP는 비 래스터화된 비디오 또는 다른 데이터 스트림들과 관련하여 이용되지 않는다.
곧 공개될(upcoming) 디스플레이포트 프로토콜(DisplayPort protocol)은, 예를 들어 HDCP 리키잉을 수용하기 위한 충분한 브레이크들을 포함하지 않는 새로운 비디오 상호 접속(video interconnect)을 정의한다. 보다 구체적으로, 디스플레이포트는 처음에는 단일-스트림 래스터화된 비디오에 대해 의도되지만, 비 래스터화된 멀티-스트림 응용들까지 확장될 수 있는 바, 이러한 응용들에서는 데이터 스트림들 내에 어떠한 예측가능한 브레이크들도 없을 것이다. 디스플레이포트는, Video Electronics Standards Association(VESA)에 의해 발표된 The DisplayPort Standard, v. 1.0 및 1.1에서 보다 특정하게 설명되어 있으며, 이 문서의 내용은 본원의 참조로서 인용된다.
이러한 스트림들에 있어서, 리키잉을 요구하지 않는 새로운 엔크립션 프로토 콜들은 선택적이다. 하지만, HDCP는 산업에서 이미 받아들여진 것이며, 그리고 HDCP 엔진들은 이미 많은 수신기들 및 전송기들의 일부를 형성한다.
따라서, 간헐적인 엔크립션 스트림들을 제공하는 HDCP 시스템들에서 이용되는 것과 같은 암호 엔진들을 이용하여 광범위한 데이터 스트림들의 엔크립션을 가능하게 하는 새로운 엔크립션 기술이 필요하다.
본 발명의 예시적인 실시예들에서, 주 암호 엔진(primary cipher engine)은 간헐적인 엔크립션 스트림을 발생시킨다. 주 암호 엔진은 제 2 암호 데이터 소스(source of cipher data)와 함께 이용될 수 있는데, 이러한 제 2 암호 데이터 소스는 주 암호 엔진이 암호 데이터를 제공하지 않는 동안 이용될 수 있다. 일 실시예에서, 주 암호 엔진은 HDCP 암호 엔진이며, 그리고 제 2 암호 엔진은 이용되지 않은 의사-랜덤 데이터(unused pseudo-random data)의 스트림을 발생시키는데, 이는 이후 HDCP 암호 엔진이 리키잉하는 동안 출력될 수 있다.
어떠한 실시예들에서, 이는 HDCP 암호 엔진을 얼마의 시간 주기 동안 데이터 스트림 보다 더 높은 속도(rate)로 동작하게 함으로써 이루어질 수 있다. 만일 이것이 데이터 소스와 데이터 싱크 모두에서 동기화된 방식으로 이루어진다면, 결과적인 동작은 어떠한 리키잉 간격도 없는 것 처럼 보이게 되는데, 이는 엔크립션 그리고/또는 디크립션이 항상 일어날 수 있고, 단지 리키잉 간격의 바깥에서만 일어나는 것은 아니기 때문이다. 이는 리키잉 간격에 의해 부과되는 제약들을 없앰으로써, HDCP가 보다 많은 상황들, 가장 두드러지게는 디스플레이포트 표준에서 이용될 수 있게 한다.
본 발명의 일 양상에 따르면, 암호 데이터의 주 소스의 출력이 이용가능하지 않은 시간 기간 동안 암호 데이터를 제공하는 방법이 제공되는 바, 이 방법은 상기 시간 기간의 시작시 암호 데이터의 주 소스로부터 암호 데이터의 교대 소스(alternate source)로 스위칭하는 단계와; 그리고 상기 시간 기간 동안 상기 교대 소스로부터의 암호 데이터를 이용하는 단계를 포함한다.
본 발명의 다른 양상에 따르면, 암호화 모듈(ciphering module)이 제공되는 바, 이는 데이터 스트림을 엔크립트 또는 디크립트하는 암호 데이터를 위한 주 소스와; 암호 데이터를 위한 교대 소스와; 그리고 상기 주 소스의 출력이 이용가능하지 않는 시간 기간 동안 상기 암호 데이터를 위한 교대 소스로 스위칭하는 스위치를 포함한다.
본 발명의 또 다른 양상에 따르면, 암호화 시스템(ciphering system)이 제공되는 바, 이는 전송 모듈 및 수신 모듈을 포함한다. 상기 전송 모듈은 엔크립션 암호 데이터(encryption cipher data)를 위한 주 소스와, 엔크립션 암호 데이터를 위한 교대 소스와, 그리고 상기 엔크립션 암호 데이터를 위한 주 소스의 출력이 이용가능하지 않은 시간 기간 동안 상기 엔크립션 암호 데이터를 위한 교대 소스로 스위칭하고, 상기 시간 기간 이후에는 상기 엔크립션 암호 데이터를 위한 주 소스로 다시 스위칭하는 스위치를 포함하고, 여기서 상기 엔크립션 암호 데이터는 엔크립트된 데이터 스트림을 생성하기 위해 데이터 스트림을 엔크립트하기 위한 것이다. 상기 수신 모듈은 디크립션 암호 데이터(decryption cipher data)를 위한 주 소스와, 디크립션 암호 데이터를 위한 교대 소스와, 그리고 상기 시간 기간 동안 상기 디크립션 암호 데이터를 위한 교대 소스로 스위칭하는 스위치를 포함하고, 여기서 상기 디크립션 암호 데이터는 디크립트된 데이터 스트림을 생성하기 위해 상기 엔크립트된 데이터 스트림을 디크립트하기 위한 것이다.
본 발명의 다른 양상들 및 특징들은 하기의 본 발명의 구체적인 실시예들의 설명을 살펴봄으로써 당업자에게 명백해질 것이다.
본 발명의 실시예들을 단지 예시적으로 설명하는 도면들에서,
도 1은 HDCP 시스템의 블록도이다.
도 2는 HDCP 래스터화된 비디오의 블록도이다.
도 3은 본 발명의 일 실시예의 예시적인 방법의 흐름도이다.
도 4는 본 발명의 일 실시예의 예시적인 암호화 모듈의 블록도이다.
도 5는 본 발명의 일 실시예의 예시적인 암호화 시스템의 블록도이다.
도 6은 본 발명의 일 실시예의 예시적인 HDCP 모듈의 블록도이다.
도 7은 본 발명의 일 실시예의 예시적인 HDCP 모듈의 블록도이다.
도 8은 본 발명의 일 실시예의 예시적인 HDCP 모듈의 타이밍도이다.
도 9는 본 발명의 일 실시예의 예시적인 HDCP 모듈의 블록도이다.
도 10은 본 발명의 일 실시예의 예시적인 HDCP 모듈의 타이밍도이다.
도 11은 본 발명의 일 실시예의 예시적인 HDCP 모듈의 타이밍도이다.
도 12는 본 발명의 일 실시예의 예시적인 HDCP 모듈의 블록도이다.
본 발명의 실시예들은 암호 데이터의 교대 소스를 이용하는데, 이러한 교대 소스는, HDCP 리키잉 동안 등과 같이, 주 소스가 이용가능하지 않을 때에 액세스될 수 있다.
본 발명의 실시예들은 암호 데이터의 주 소스의 출력이 이용가능하지 않는 시간 기간 동안 암호 데이터를 제공하기 위한 방법이 제공되는 바, 이에 대해서는 도 3과 관련하여 설명될 것이다.
예시되는 바와 같이, 본 방법은 시간 기간의 시작시 암호 데이터의 주 소스로부터 암호 데이터의 교대 소스로 스위칭하는 단계(단계 302)를 포함한다. 암호 데이터는 의사-랜덤 데이터가 될 수 있다. 예를 들어, 암호 데이터는 통상의 HDCP 암호 엔진에 의해 출력되는 암호 데이터가 될 수 있다.
다음으로, 시간 기간 동안 교대 소스로부터의 암호 데이터가 이용될 수 있다(단계 304). 이러한 시간 기간의 끝에서, 주 소스로부터의 암호 데이터가 다시 이용될 수 있다(단계 306).
상기 시간 기간은, HDCP 또는 유사한 리키잉 동안 등과 같이, 주 소스로부터의 암호 데이터가 이용가능하지 않은 기간이 될 수 있다. 리키잉 기간은, 예를 들어 데이터의 모든 프레임의 이전 그리고/또는 데이터의 모든 라인의 이전이 될 수 있다. 하지만, 이해할 수 있는 바와 같이, 본 발명은 리키잉 기간들로 한정되지 않는다. 상기 시간 기간은 주 소스가 이용가능하지 않은 어느 시간 기간이라도 될 수 있다. 예를 들어, 상기 시간 기간은 주 소스에서의 고장(failure) 동안, 또는 주 소스가 다르게 동작함에 따라 관심의 데이터 스트림에 대해 이용가능하지 않을 때가 될 수 있다.
암호 데이터의 교대 소스는 버퍼가 될 수 있다. 이러한 경우들에 있어서, 본 방법은 주 소스로부터의 암호 데이터의 일부를 이후의 이용을 위해 버퍼로 다시 향하게 하는(redirecting) 단계를 더 포함할 수 있다.
예를 들어, 암호 데이터의 주 소스가 엔크립트되어야 하는 데이터 보다 더 높은 속도로 암호 데이터를 발생시킨다면, 그 암호 데이터는 암호 엔진이 데이터를 제공하는 것을 중지할 때의 간격들에서 이용하기 위해 버퍼링될 수 있다.
매우 구체적인 예에서, HDCP 암호 엔진은 디스플레이포트 데이터를 엔크립트하는 데에 이용될 수 있다. 전형적으로, HDCP 암호 데이터는 사이클(cycle)당 3 바이트로 발생되고, 디스플레이포트 데이터의 각 레인(lane)은 사이클당 1 바이트 만을 요구한다. 하나 또는 두개의 레인에 대해 하나의 HDCP 암호 엔진이 있다면, 버퍼가 가득찰 때 까지 사이클당 하나의 바이트가 버퍼로 향하게 될(direct) 수 있다. 따라서, 본 발명의 일 실시예에서, 본 방법은 리키잉 기간 이후의 소정의 시간 기간 동안 여분의(excess) 암호 데이터를 버퍼로 향하게 하는 단계를 더 포함한다. HDCP에서의 전형적인 최악의 경우의 방식은 142 사이클을 필요로 하는 프레임 리키(frame re-key)이기 때문에, 바람직한 실시예에서의 버퍼는 엔크립트 또는 디크립트되어야 하는 데이터의 각 레인에 대해 142 바이트를 보유한다. 일부 경우들에서, 상기 여분의 암호 데이터는 엔크립트 또는 디크립트되어야 하는 데이터 스트림 보다 더 높은 속도로 암호 데이터를 발생시킴으로써 생성된다.
버퍼는 FIFO(선입선출) 버퍼가 될 수 있다.
이는, 리키잉 기간들 등과 같이, 주 HDCP 암호 엔진들이 이용가능하지 않을 때, HDCP 암호 엔진에 의한 엔크립션 그리고/또는 디크립션이 계속될 수 있게 한다. 이는 또한 데이터 스트림 내에 예측가능한 브레이크들이 없는 비 래스터화된 비디오 데이터가 엔크립트될 수 있게 한다. 편리하게는, 비 래스터화된 비디오 데이터는 결과적인 엔크립션 스트림을 이용하여 엔크립트될 수 있다. 특정의 실시예들에서, 본 방법은 디스플레이포트 데이터를 엔크립트 또는 디크립트하는 단계를 더 포함한다.
대안적인 실시예에서, 암호 데이터의 제 2 소스는 제 2 HDCP 암호 엔진이 될 수 있다.
도 4는 본 발명의 예시적인 일 실시예에 따른 암호화 모듈(400)을 도시한다. 암호화 모듈(400)은 암호 데이터를 위한 주 소스(402)와, 암호 데이터를 위한 교대 소스(404)와, 그리고 스위치(406)를 포함한다. 주 소스(402) 및 교대 소스(404)에 의해 발생되는 암호 데이터는 데이터 스트림(410)을 엔크립션 또는 디크립션하기 위한 것이다. 스위치(406)는 주 소스(402)의 출력이 이용가능하지 않은 시간 기간 동안 암호 데이터를 위한 교대 소스(404)로 스위칭할 수 있다. 스위치(406)는, 예를 들어 암호 데이터(402)가 이용가능하지 않을 때 정확하게 스위칭할 수 있다. 대안적으로, 스위치(406)는 암호 데이터를 위한 주 소스(402)와 암호 데이터를 위한 교대 소스(406) 간을 규칙적인(또는 불규칙적인) 간격들로 스위칭할 수 있으며, 이에 따라 암호 데이터가 항상 이용가능하게 된다. 대안적으로, 스위치(406)는 제어 가능한 스위치 또는 멀티플렉서가 될 수 있다. 대안적으로, 스위치(406)는 소스(402 및 404)중 어느 하나 또는 둘 모두로부터의 암호 데이터가 저장되는, 레지스터(register) 또는 메모리에 대한 다른 포인터(pointer) 또는 버퍼로서 실시될 수 있다. 포인터/레지스터는 어느 하나의 소스로부터의 암호 데이터 간에 선택을 행하도록 갱신될 수 있다. 대안적으로, 당업자에 의해 이해되는 바와 같이, 스위치(406)는 소스들(402 및 404) 간을 선택하기 위한 임의의 다른 디바이스 또는 기능 블록이 될 수 있다.
어떠한 실시예들에서, 상기 설명한 바와 같이, 교대 소스(404)는 버퍼이다. 어떠한 경우들에서, 모듈(400)은 주 소스로부터의 암호 데이터의 일부를 버퍼로 향하게 하기 위한 기능 블록을 포함한다. 이러한 기능 블록은 멀티플렉서, 스위치 등의 형태를 가질 수 있다. 어떠한 경우들에서, 버퍼로 향하게 되는 암호 데이터의 일부는 엔크립션 또는 디크립션에 요구되지 않는 여분의 암호 데이터이다. 예를 들어, 제어 신호들은 엔크립트되지 않으며, 이에 따라 제어 신호들을 포함하는 데이터 스트림(410)의 일부들은 암호 데이터를 요구하지 않는다. 전형적으로, 데이터 스트림(410) 내에 제어 신호가 나타날 때에 발생되는 암호 데이터는 이용되지 않으며, 이에 따라 이는 버퍼에 다시 향하게 하는 데에 이용가능하다.
대안적으로, 주 소스(402)는, 암호 데이터의 일부가 버퍼로 향하고 있는 동안, 가속화된 속도(accelerated rate)로 암호 데이터를 발생시킬 수 있다. 어떠한 경우들에 있어서, 주 소스(402)는 항상 이러한 가속화된 속도로 동작한다. 항상 동일한 속도로 동작하는 것은, 버퍼가 가득차 있는 지에 따라 속도를 변경하는 것 보 다 더 간단하고 더 적은 제어를 필요로 한다. 어떠한 실시예들에서, 버퍼로 향하는 암호 데이터의 일부는, 엔크립트 또는 디크립트되어야 하는 데이터 스트림(410)이 제어 데이터를 포함하고 있을 때에 발생되는 암호 데이터이다.
여기에서 또한, 암호 데이터는 HDCP 암호 데이터가 될 수 있다.
도 5를 참조하여, 본 발명의 다른 실시예를 나타내는 암호화 시스템(500)은 전송 모듈(510) 및 수신 모듈(520)을 포함한다. 전송 모듈(510)은 엔크립션 암호 데이터를 위한 주 소스(512)와, 엔크립션 암호 데이터를 위한 교대 소스(514)와, 그리고 상기 엔크립션 암호 데이터를 위한 주 소스(512)의 출력이 이용가능하지 않은 기간 동안 상기 엔크립션 암호 데이터를 위한 교대 소스(514)로 스위칭하고, 상기 시간 기간 이후에는 HDCP 암호 데이터를 위한 주 소스(542)로 다시 스위칭하는 스위치를 포함한다. 상기 엔크립션 암호 데이터는 엔크립트된 데이터 스트림(540)을 생성하기 위해 데이터 스트림을 엔크립트하는 데에 이용된다. 상기 수신 모듈(520)은 디크립션 암호 데이터를 위한 주 소스(522)와, 디크립션 암호 데이터를 위한 교대 소스(524)와, 그리고 상기 시간 기간 동안 상기 디크립션 암호 데이터를 위한 교대 소스(524)로 스위칭하고, 상기 시간 기간 이후에는 상기 디크립션 암호 데이터를 위한 주 소스(522)로 다시 스위칭하는 스위치(526)를 포함한다. 상기 디크립션 암호 데이터는 디크립트된 데이터 스트림(550)을 생성하기 위해 상기 엔크립트된 데이터 스트림(540)을 디크립트하기 위한 것이다.
어떠한 실시예들에서, 전송 모듈(510) 및 수신 모듈(520) 각각의 스위치(516, 526)는 리키잉 기간의 시작시에 각각의 교대 소스(514, 524)로 스위칭하 고, 리키잉 기간의 끝에서 각각의 주 소스(512, 522)로 다시 스위칭한다.
어떠한 실시예들에서, 전송 모듈(510)은 암호 데이터와 데이터 스트림(530)을 결합하기 위한 XOR 게이트를 더 포함한다. 마찬가지로, 수신 모듈(520)의 일부 실시예들은 디크립션 데이터와 엔크립트된 데이터 스트림(540)을 결합하기 위한 XOR 게이트를 더 포함한다.
여기에서 또한, 암호 데이터는 HDCP 암호 데이터가 될 수 있다.
시스템(500)은 디스플레이포트 프로토콜과 함께 이용하도록 된다. 이러한 경우들에 있어서, 전송 모듈(510)은 레인 스큐잉(lane skewing) 이전에 물리 계층(PHY)과 링크 계층(Link layer) 사이의 인터페이스에 위치될 수 있으며, 수신 모듈(520)은 레인 디스큐잉(lane de-skewing) 이전에 물리 계층(PHY)과 링크 계층 사이의 인터페이스에 위치될 수 있다.
이해할 수 있는 바와 같이, 본 발명의 일부 실시예들은, 암호 엔진의 출력이 이용가능하지 않은 리키잉 기간들 동안, 암호 엔진의 출력 대신 버퍼링되고 출력될 수 있는 여분의 의사-랜덤 데이터를 필요로 한다. 요구되는 버퍼링의 양, 암호 엔진이 클럭(clock)될 필요가 있는 속도(들), 상기 설명한 속도(들)로 암호 엔진이 클럭되는 시간 기간, 및 소스 또는 전송기 엔진과 싱크 또는 수신기 엔진 간의 동기화 메커니즘은 특정의 응용에 달려있으며, 설계자에 의해 선택될 수 있다.
이제, 도 6 내지 14를 참조하여, 디스플레이포트 상에 HDCP 암호 데이터를 맵핑(mapping)하기 위한 특정의 솔루션(solution)들에 대해 설명한다.
디스플레이포트는 고 대역폭 포인트-투-포인트 디지털 솔루션으로서, 이는 궁극적으로 확장가능한 링크 상에서 다수의 데이터 포맷들 및 타입들을 지원할 수 있게 될 것이며, 상기 확장가능한 링크는 현재 1, 2 또는 4 데이터 레인들을 지원하는 바, 이들 각각은 초당 162MB 또는 270MB의 데이터를 전송할 수 있다.
HDCP의 출력 암호는 3B/cycle까지의 의사-랜덤 데이터를 발생시킬 수 있는 반면, 디스플레이포트는 활성 레인들의 수에 따라 1B, 2B 또는 4B/cycle 중 어느 하나의 암호 데이터를 요구한다. 1 및 2 레인들의 경우에서는, HDCP 암호의 단일 인스턴스(instance)가 이용될 수 있고, 4 레인 경우에서는, HDCP 암호의 2개의 인스턴스들이 이용될 수 있다. 주목할 사항으로서, 리키잉이 활성이 아니었을 때 출력 스트림의 요구를 충족시키고 여분(excess)을 버퍼업(buffer up)시키도록 충분한 HDCP 의사-랜덤 데이터가 이용가능하도록 보장하기 위해 4 레인 구성을 오버클럭(overclock)하고자 한다면, 모든 경우들에서 단일 엔진이 이용될 수 있다.
하나 이상의 암호 엔진들이 전송기 논리와 동일한 속도로 클럭된다면, 1/2/4 레인 구성들에 대해 각각 요구되는 것 보다 (3/1)(3/2)(2ㆍ3/4)=3x/1.5x/1.5x 더 많은 데이터를 발생시킬 것이다. 발생되는 여분의 데이터의 일부 또는 전부는 특정되지 않은 시간 기간 동안 버퍼에 저장된 다음, 리키잉 되는 동안 암호가 이용가능하지 않은 시간 기간 동안 출력될 수 있다. 도 6은 결과적인 구현을 나타낸다.
도 6에서, HDCP 모듈(600)은 4개의 데이터 레인들(630, 640, 650 및 660)을 서비스하기 위한 2개의 HDCP 암호 엔진들(610 및 620)을 포함한다. 제 1 암호 엔진(610)은 멀티플렉서(614)에 2B/cycle의 암호 데이터를 직접 제공하고, FIFO 버퍼(612)에 1B/cycle을 제공한다. FIFO(612)의 출력 또한 멀티플렉서(614)에 제공된 다. 멀티플렉서(614)는 또한 입력으로서, 신호(REKEY_EN)(616)를 갖는데, 이 신호는 암호 엔진(610)이 리키 모드(re-key mode)에 있는 지의 여부를 나타낸다. 이 경우, 0의 값은 활성 모드를 나타내고, 1의 값은 리키 모드를 나타낸다. 따라서, 멀티플렉서(614)가 0을 수신하면, 암호 엔진(610)으로부터 XOR 게이트들(618 및 619)에 암호 데이터가 전달되어, 각각 레인들(630 및 640)로부터의 데이터와 결합함으로써, 각각의 엔크립트된 데이터 레인들(635 및 645)을 생성한다. 동일한 설정(set-up)이 제 2 암호 엔진(620)에 대해 그대로 반영(mirror)된다. 즉, 2B/cycle의 암호 데이터가 멀티플렉서(624)에 직접 제공되고, 1B/cycle이 FIFO 버퍼(622)에 제공된다. FIFO(622)로부터의 출력 또한 멀티플렉서(624)에 제공된다. 멀티플렉서(624)는 또한 입력으로서, 신호(REKEY_EN)(626)를 갖는데, 이 신호는 암호 엔진(620)이 리키 모드에 있는 지의 여부를 나타낸다. 멀티플렉서(624)가 0을 수신하면, 암호 엔진(620)으로부터 XOR 게이트들(628 및 629)에 암호 데이터가 전달되어, 각각 레인들(650 및 660)로부터의 데이터와 결합함으로써, 각각의 엔크립트된 데이터 레인들(655 및 664)을 생성한다.
리키잉 기간 동안 데이터 스트림을 엔크립트하기 위해 FIFO들(612, 622) 충분한 여분의 데이터가 저장되어 있는 한, 암호화기(cipher)들이 클럭되는 속도, 및 이들이 가속된 속도로 실행되는 시간 기간은 전적으로 설계자의 선택에 달려있다. HDCP에 있어서, 프레임 당(per-frame basis) 142 사이클의 데이터(142 cycles worth of data), 또는 라인 당(per-line basis) 58 사이클의 데이터가 이용가능해야 하며, 여기서 "프레임" 및 "라인"의 개념들은 응용에 적합하게 되는 것으로 정 의될 수 있다. "라인" 및 "프레임"의 문자 상의 정의는 래스터화된 비디오 데이터의 경우에서 적용되지만, 보다 덜 구조화된 데이터 패턴들에 대해, "라인"은 (블랭킹 시작(blanking start)("BS")에 의해 표시되는) 블랭킹 시작 제어 심볼들 간의 시간으로서 정의될 수 있으며, 그리고 "프레임"은 매 512번째 BS 제어 심볼 마다 발생하는 연속적인 스크램블러 리셋("SR") 제어 심볼들 간의 시간으로서 정의될 수 있다.
소스와 싱크 디바이스의 HDCP 엔진들 간의 동기(이는 동일한 여분 데이터를 발생시키기 위한 것임)는, 여분의 바이트들이 식별되고 저장을 위해 태그(tag)되는 간단한 선험적 정의 방식(priori-defined strategy)에 의해 유지될 수 있다. 예를 들어, 암호화기들은 데이터 스트림과 동일한 속도로 실행될 수 있다. 여분의 데이터의 첫번째 256B는 리키 기간의 끝 이후에 저장된 다음, 다음 리키 기간까지 버퍼링될 수 있다. 버퍼는 각 리키 기간의 끝에서 플러쉬(flush)되며, 이에 의해 소스 및 싱크는 각 기간 마다 동일한 FIFO 상태로 시작하게 된다.
도 7은 HDCP 모듈(600)의 다른 구성을 예시한다. 도시된 바와 같이, HDCP 모듈(700)은 모듈(600)의 1/2, 즉 HDCP 암호 엔진(610)에 의해 서비스되는 1/2 만을 나타낸다. 이러한 구성에서는, XOR 게이트(619)에 대한 출력을 갖는 부가적인 멀티플렉서(615)가 있다. 암호 엔진(610)은 멀티플렉서(614)에 1B/cycle을 제공하고, 멀티플렉서(615)에 1B/cycle를 제공하며, 그리고 FIFO(612)에 1B/cycle을 제공한다.
상기 설명한 바와 같이, 본 발명의 실시예들은 디스플레이포트의 1, 2 또는 4 레인 구성들에 적용될 수 있다. 도 8은 2 레인 구성에 대한 타이밍도를 나타낸다. 도 8의 타이밍도는 12개의 신호들에 대한 타이밍을 나타낸다. 12개의 신호들은 다음과 같다. 클럭인 LANE_CLK(810); HDCP 엔진이 리키 모드에 있는 지의 여부를 나타내는 REKEY_EN(815); HDCP 암호 엔진으로부터의 출력들인 HDCPout[7:0](820), HDCPout[15:8](825) 및 HDCPout[23:16](830); 암호 데이터를 출력하기 위해 FIFO에 신호하는 FIFO_REN(835); FIFO로부터의 출력들인 FIFOout[7:0](840) 및 FIFOout[15:8](845); FIFO가 다시 채워지고 있음(replenish)을 나타내는 FIFO_WEN(850); FIFO에 대한 입력인 FIFOin(855); 2개의 레인들을 엔크립트 또는 디크립트하는 데에 이용될 암호 데이터를 나타내는, Lane0 Mask(860) 및 Lane1 Mask(865). 제 1 시간 블럭은 정상 HDCP 동작(Normal HDCP operation)(870)인데, 이 시간 동안 HDCP 출력들(820 및 835)은 Lane0 Mask(860) 및 Lane1 Mask(865)에 대한 데이터를 제공한다. FIFO 출력들(840 및 845)은 비활성이다. 본 예를 위해, FIFO는 타이밍도의 시작시에 이미 가득차있다. 다음 시간 블록은 HDCP 킵 아웃(keep out) 또는 리키 기간(875)인데, 이 시간 동안 FIFO 출력들(840 및 845)은 Lane0 Mask(860) 및 Lane1 Mask(865)에 대한 데이터를 제공한다. HDCP 출력들(820, 825 및 830)은 이 시간 동안에는 비활성이다. REKEY_EN(815)은 이 기간 동안에는 1의 값을 갖고, 다른 모든 시간에는 0의 값을 갖는다. 다음 시간 블록은 FIFO 리로드(reload) 기간(880)인데, 이 시간 동안 FIFOin(855)는 FIFO를 리로드하기 위해 HDCPout[23:16](830)으로부터 데이터를 수신한다. FIFO_WEN(850)은 이 기간 동안에는 1의 값을 갖고, 다른 모든 기간에는 0의 값을 갖는다. 다른 모든 신호들은 HDCP 정상 동작(870) 동안처럼 동작한다.
4 레인 구성에 있어서, 타이밍도는 제 2 HDCP 엔진에 대해 반복된다. 단일 레인 구성에 대해서는, 어떠한 Lane1 Mask(865)도 없는데, 이는 FIFOout[15:8](845)이 이용되지 않음을 의미한다. 그렇지 않은 경우, 타이밍은 동일하다.
1 레인 구성에서는, 엔크립션 또는 디크립션에 단지 HDCP 암호 데이터의 1B/cycle 만이 요구되며, 이에 따라 암호 엔진은 1/2의 속도로 실행될 수 있다. 이제, 도 9를 참조하여, 2 레인 구성에 부가하여, 1/2 속도에서의 1 레인 구성을 가능하게 하는 본 발명의 일 실시예에 대해 설명한다. HDCP 모듈(900)은, 멀티플렉서들(614 및 615)과 XOR 게이트(618) 간의 부가적인 멀티플렉서(620)를 제외하고는, 도 7과 관련하여 설명된 HDCP 모듈(700)과 동일하다. 멀티플렉서(620)에 대한 입력들은 멀티플렉서들(614 및 614)의 출력들 뿐 아니라, EVEN_ODD 신호(622)이다. 멀티플렉서(615)로부터의 출력은 또한 XOR 게이트(619)에 제공된다. 단일 레인 모드에서, XOR 게이트(619)가 위치되는 레인은 비활성이고, HDCP 암호 엔진(610)은 1/2 속도로 실행되며, 그리고 EVEN_ODD 신호(622)는 0과 1 사이에서 진동(oscillate)한다. 진동 신호(622)에 의해, 멀티플렉서(620)의 출력은 멀티플렉서들(614 및 615)의 출력들의 결합이 된다. 2 레인 모드에서, HDCP 암호 엔진(610)은 최대 속도(full rate)로 실행되며, EVEN_ODD 신호는 0의 값을 갖는다. 도 10은 이러한 실 시예의 단일 레인 모드에 대한 타이밍도이고, 도 11은 2 레인 모드에 대한 타이밍도이다.
도 10의 타이밍도는 Lane1 Mask(865)를 제외하고 도 8과 동일한 신호들을 모두 포함한다. 이는 하나의 부가적인 신호인 EVEN_ODD(1010)를 포함하는데, 이 신호는 모든 시간 블록들 동안 진동한다.
도 11은, 도 10과 관련하여 설명된 EVEN_ODD 신호를 포함하는 것을 제외하고는, 도 8과 동일하다. 도 11에서, EVEN_ODD 신호는 0의 값을 유지하며, 이에 따라 HDCP 모듈은 도 8과 관련하여 설명된 2 레인 모드와 동일한 방식으로 동작한다.
대안적으로, 단일 레인 모드에서, HDCP 엔진은 1/3 속도로 실행될 수 있다. 이러한 실시예에서, 버퍼로 향하게 되는 암호 데이터는, 데이터 스트림이 제어 신호들을 포함하고 있을 때에는 이용되지 않는 암호 데이터가 되어야 한다.
다른 대안적인 실시예에서, HDCP 암호는 4B/cycle 로 출력하도록 변형될 수 있다. 이에 의해, 하나의 HDCP 암호 엔진이 디스플레이포트 데이터의 4 레인들을 서비스할 수 있게 된다. 버퍼는, 데이터 스트림이 제어 데이터를 포함하고 있을 때에 이용되지 않는 HDCP 출력으로 채워진다. 도 12는 이러한 솔루션의 일 실시예에 따른 HDCP 모듈(1200)의 개략도이다.
HDCP 모듈(1200) 내의 HDCP 암호화기(HDCP cipher)(1210)는 4B/cycle를 출력하는데, 4개의 멀티플렉서들(1230, 1232, 1234 및 1236) 각각에 1 바이트씩 가게 된다. 각 멀티플렉서는 또한 입력으로서, 각각의 FIFO(1211, 1212, 1214 및 1216)의 출력을 갖는다. 4개의 모든 FIFO들은 입력으로서, Kcode 신호(1220)를 갖는데, 이 신호는 데이터 스트림들(1250, 1260, 1270 및 1280)이 제어 신호들을 포함하고 있음을 나타낸다. 데이터 스트림들(1250, 1260, 1270 및 1280)이 제어 신호들을 포함하고 있을 때, HDCP 암호화기(1210)로부터의 출력들은 FIFO들(1211, 1212, 1214 및 1216)로 향하게 된다. 모든 멀티플렉서들(1230, 1232, 1234 및 1236)은 REKEY_EN 신호(1225)를 입력으로서 수신한다. 이 신호(1225)가, HDCP 암호 엔진이 리키 모드에 있음을 나타내면, 상기 멀티플렉서들은 자신들 각각의 FIFO로부터의 암호 데이터를 자신들의 출력으로서 이용한다. 이전의 예들에서와 같이, 이러한 멀티플렉서들로부터의 출력들은 XOR 게이트들(1240, 1242, 1244 및 1246)로 향하게 되며, 여기에서 암호 데이터는 데이터 스트림들(1250, 1260, 1270 및 1280)과 결합하여, 출력 데이터 스트림들(1245, 1255, 1265 및 1275)을 각각 생성한다.
대안적으로, 그리고 보다 일반적으로, HDCP 암호화기(1210)는 N개의 레인들에 대해 요구되는 것 보다 더 높은 속도로 클럭될 수 있다. 예를 들어, HDCP 암호화기(1210)는 각 레인의 데이터 속도를 N/(N-M)으로 한 속도로 암호 데이터를 제공하기 위한 속도로 클럭될 수 있다. 이후, 암호 데이터의 매 N 단위들의 M(M of every N units)이 이후의 이용을 위해 FIFO에 제공된다.
시도될 수 있는 대안적인 솔루션은, 다른 엔진(들)의 리키잉 간격을 숨기기 위해 하나의 HDCP 엔진의 출력을 이용함과 아울러, 요구되는 데이터 속도 이상의 속도로 작동하는 하나 이상의 HDCP 엔진을 이용하는 것이다. 하나의 엔진이 리키잉하고 있을 때, 즉 그 출력이 디스에이블(disable)될 때, 다른 암호 엔진(들)이 데이터 스트림을 엔크립트하는 데에 이용될 것이다. 이러한 부가적인 엔크립션은, 부 가적인 암호화기(additional cipher)가 이용되기를 대기하면서 아이들(idle) 모드에 있는 경우 이를 인에이블시키거나, 또는 그 암호화기가 현재 리키잉되는 스트림에 의해 요구되는 부가적인 의사-랜덤 데이터를 발생시키도록 상기 부가적인 암호화기를 오버클럭킹함으로써 이루어질 수 있다.
이러한 솔루션에 있어서, 하나의 암호 엔진은 리키잉 간격 동안 항상 이용가능해야 하며, 그리고 엔진들의 리키잉은, 모든 암호 엔진들이 동시에 리킹잉을 요구하는 시간 기간이 결코 없도록, 충분히 스태거(stagger)되어야 한다. 또한, 어떠한 소정의 시간에 요구되는 양의 의사-랜덤 데이터를 제공하기 위해 임의 수의 이용가능한 인스턴스들을 오버클럭하는 능력, 또는 암호 인스턴스들의 진짜(sheer) 수 만큼 HDCP 엔진들의 풀(pool) 내에 충분한 대역폭이 있어야 한다.
이해할 수 있는 바와 같이, 여기에서 설명된 방법들은 하드웨어, 소프트웨어, 또는 이들의 결합으로 구현될 수 있다. 예를 들어, 컴퓨터 판독가능한 명령어들이 저장되어 있는 컴퓨터 판독가능한 매체는, 컴퓨터에 의해 실행될 때, 상기 각각의 방법을 실행한다. 이들은 하드웨어, 소프트웨어, 또는 이들의 결합을 이용하여 구현될 수 있다.
상기 설명된 것은 단지 본 발명의 원리들의 응용을 예시한 것이다. 본 발명의 범위를 벗어나지 않으면서, 다른 구성들 및 방법들이 당업자에 의해 실시될 수 있다.

Claims (31)

  1. 데이터 스트림을 연속적으로 엔크립트(encrypt) 또는 디크립트(decrypt)하기 위해 상기 데이터 스트림과 결합하기 위한 암호 데이터의 스트림들을 제공하는 방법으로서,
    제1 암호 데이터 스트림 경로 상에 암호 데이터의 주 스트림(primary stream)을 제공하기 위한 암호 데이터의 주 소스와, 제2 암호 데이터 스트림 경로 상에 암호 데이터의 교대 스트림을 제공하기 위한 암호 데이터의 교대 소스와, 그리고 스위치를 포함하는 전자 디바이스에서,
    상기 데이터 스트림을 엔크립트 또는 디크립트하기 위해 상기 제1 암호 데이터 스트림 경로 상에, 상기 데이터 스트림과 결합하기 위한 상기 암호 데이터의 주 소스로부터의 상기 암호 데이터의 주 스트림을 제공하는 단계와;
    상기 스위치를 이용하여 상기 암호 데이터의 주 소스의 출력이 이용가능하지 않는 시간 기간의 시작시에 상기 암호 데이터의 주 소스로부터 상기 암호 데이터의 교대 소스로 스위칭하는 단계와; 그리고
    상기 시간 기간 동안 상기 데이터 스트림을 엔크립트 또는 디크립트하기 위해 상기 제2 암호 데이터 스트림 경로 상에, 상기 데이터 스트림과 결합하기 위한 상기 암호 데이터의 교대 소스로부터의 상기 암호 데이터의 교대 스트림을 제공하는 단계를 포함하고,
    그럼으로써 상기 데이터 스트림의 각각의 요소는 상기 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하기 위해 암호 데이터의 요소와 연속적으로 결합되는 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  2. 제 1 항에 있어서,
    상기 스위치를 이용하여 상기 시간 기간의 끝에서 상기 암호 데이터의 주 소스로 다시 스위칭하는 단계를 더 포함하는 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  3. 제 2 항에 있어서,
    상기 시간 기간은 리키잉 기간(re-keying period)인 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  4. 제 3 항에 있어서,
    상기 리키잉 기간은, 데이터의 매(every) 프레임 이후 그리고/또는 데이터의 매 라인 이후인 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  5. 제 1 항에 있어서,
    상기 암호 데이터의 주 소스는 HDCP(High-bandwidth Digital Content Protection) 암호 엔진인 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  6. 제 1 항에 있어서,
    상기 암호 데이터의 교대 소스는 버퍼인 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  7. 제 6 항에 있어서,
    상기 암호 데이터의 주 소스로부터의 상기 암호 데이터의 일부를 상기 버퍼로 향하게 하는 단계를 더 포함하는 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  8. 제 6 항에 있어서,
    상기 시간 기간은 리키잉 기간이고,
    상기 리키잉 기간 이후의 소정의 시간 기간 동안 상기 암호 데이터의 주 소스로부터의 여분의 암호 데이터를 상기 버퍼로 향하게 하는 단계를 더 포함하는 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  9. 제 8 항에 있어서,
    상기 여분의 암호 데이터는 상기 데이터 스트림 보다 높은 속도로 상기 암호 데이터를 발생시킴으로써 생성되는 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  10. 제 1 항에 있어서,
    상기 데이터 스트림은 비 래스터화된(non-rasterized) 비디오 데이터를 포함하는 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  11. 제 1 항에 있어서,
    상기 데이터 스트림은 디스플레이포트 데이터(DisplayPort data)를 포함하는 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  12. 제 6 항에 있어서,
    상기 버퍼는 FIFO(선입선출) 메모리인 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  13. 제 5 항에 있어서,
    상기 암호 데이터의 교대 소스는 제 2의 HDCP 암호 엔진에 의해 제공되는 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  14. 제 1 항에 있어서,
    상기 암호 데이터는 의사-랜덤 데이터(pseudo-random data)인 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  15. 컴퓨터에 의한 실행 시, 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하기 위해 상기 데이터 스트림과 결합하기 위한 암호 데이터의 스트림들을 제공하는 방법을 수행하게 하는 컴퓨터 판독가능 명령어들이 수록되어 있는 비-일시적인 컴퓨터 판독가능 저장 매체로서,
    상기 방법은:
    제1 암호 데이터 스트림 경로 상에 암호 데이터의 주 스트림(primary stream)을 제공하기 위한 암호 데이터의 주 소스와, 제2 암호 데이터 스트림 경로 상에 암호 데이터의 교대 스트림을 제공하기 위한 암호 데이터의 교대 소스와, 그리고 스위치를 포함하는 전자 디바이스에서,
    상기 데이터 스트림을 엔크립트 또는 디크립트하기 위해 상기 제1 암호 데이터 스트림 경로 상에, 상기 데이터 스트림과 결합하기 위한 상기 암호 데이터의 주 소스로부터의 상기 암호 데이터의 주 스트림을 제공하는 단계와;
    상기 스위치를 이용하여 상기 암호 데이터의 주 소스의 출력이 이용가능하지 않는 시간 기간의 시작시에 상기 암호 데이터의 주 소스로부터 상기 암호 데이터의 교대 소스로 스위칭하는 단계와; 그리고
    상기 시간 기간 동안 상기 데이터 스트림을 엔크립트 또는 디크립트하기 위해 상기 제2 암호 데이터 스트림 경로 상에, 상기 데이터 스트림과 결합하기 위한 상기 암호 데이터의 교대 소스로부터의 상기 암호 데이터의 교대 스트림을 제공하는 단계를 포함하고,
    그럼으로써 상기 데이터 스트림의 각각의 요소는 상기 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하기 위해 암호 데이터의 요소와 연속적으로 결합되는 것을 특징으로 하는 비-일시적인 컴퓨터 판독가능 저장 매체.
  16. 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하는 전자 디바이스로서,
    상기 데이터 스트림을 엔크립트 또는 디크립트하기 위해 제1 암호 데이터 스트림 경로 상에, 상기 데이터 스트림과 결합하기 위한 암호 데이터의 주 스트림을 제공하는 암호 데이터의 주 소스와;
    상기 데이터 스트림을 엔크립트 또는 디크립트하기 위해 제2 암호 데이터 스트림 경로 상에, 상기 데이터 스트림과 결합하기 위한 암호 데이터의 교대 스트림을 제공하는 암호 데이터의 교대 소스와; 그리고
    상기 주 소스의 출력이 이용가능하지 않는 시간 기간 동안, 상기 암호 데이터를 위한 교대 소스로 스위칭하는 스위치를 포함하고,
    상기 제1 암호 데이터 스트림 경로 상에 상기 암호 데이터의 주 스트림을 제공하는 것, 상기 암호 데이터의 교대 소스로 스위칭하는 것, 그리고 상기 제2 암호 데이터 스트림 경로 상에 상기 암호 데이터의 교대 스트림을 제공하는 것은 상기 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하기 위해 상기 데이터 스트림의 각각의 요소가 암호 데이터의 요소와 연속적으로 결합될 수 있도록 하는 것을 특징으로 하는 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하는 전자 디바이스.
  17. 제 16 항에 있어서,
    상기 암호 데이터는 HDCP(High-bandwidth Digital Content Protection) 암호 데이터인 것을 특징으로 하는 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하는 전자 디바이스.
  18. 제 16 항에 있어서,
    상기 교대 소스는 버퍼인 것을 특징으로 하는 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하는 전자 디바이스.
  19. 제 18 항에 있어서,
    상기 주 소스로부터의 상기 암호 데이터의 일부를 상기 버퍼로 향하게 하기 위한 수단을 더 포함하는 것을 특징으로 하는 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하는 전자 디바이스.
  20. 제 19 항에 있어서,
    상기 암호 데이터의 일부가 상기 버퍼로 향하는 동안, 상기 주 소스는 가속된 속도로 상기 암호 데이터를 발생시키는 것을 특징으로 하는 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하는 전자 디바이스.
  21. 제 19 항에 있어서,
    상기 버퍼로 향하는 암호 데이터의 일부는 엔크립션 또는 디크립션에 요구되지 않는 여분의 암호 데이터인 것을 특징으로 하는 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하는 전자 디바이스.
  22. 제 21 항에 있어서,
    상기 버퍼로 향하는 암호 데이터의 적어도 일부는, 엔크립트 또는 디크립트되어야 하는 상기 데이터 스트림이 제어 데이터를 포함할 때에 발생되는 암호 데이터인 것을 특징으로 하는 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하는 전자 디바이스.
  23. 암호화 시스템으로서,
    전송 디바이스 및 수신 디바이스를 포함하며,
    상기 전송 디바이스는:
    데이터 스트림을 엔크립트하기 위해 제1 엔크립션 암호 데이터 스트림 경로 상에, 상기 데이터 스트림과 결합하기 위한 엔크립션 암호 데이터(encryption cipher data)의 주 스트림을 제공하기 위한 엔크립션 암호 데이터의 주 소스와,
    상기 데이터 스트림을 엔크립트하기 위해 제2 엔크립션 암호 데이터 스트림 경로 상에, 상기 데이터 스트림과 결합하기 위한 엔크립션 암호 데이터의 교대 스트림을 제공하기 위한 엔크립션 암호 데이터의 교대 소스와, 그리고
    상기 엔크립션 암호 데이터의 주 소스의 출력이 이용가능하지 않은 시간 기간 동안 상기 엔크립션 암호 데이터의 교대 소스로 스위칭하고, 상기 시간 기간 이후에는 상기 엔크립션 암호 데이터의 주 소스로 다시 스위칭하는 제1 스위치를 포함하고, 여기서 상기 데이터 스트림의 각각의 요소는 엔크립트된 데이터 스트림을 연속적으로 생성하기 위해 엔크립션 암호 데이터의 요소와 연속적으로 결합되며; 그리고
    상기 수신 디바이스는:
    상기 엔크립트된 데이터 스트림을 디크립트하기 위해 제1 디크립션 암호 데이터 스트림 경로 상에, 상기 엔크립트된 데이터 스트림과 결합하기 위한 디크립션 암호 데이터(decryption cipher data)의 주 스트림을 제공하기 위한 디크립션 암호 데이터의 주 소스와,
    상기 엔크립트된 데이터 스트림을 디크립트하기 위해 제2 디크립션 암호 데이터 스트림 경로 상에, 상기 엔크립트된 데이터 스트림과 결합하기 위한 디크립션 암호 데이터의 교대 스트림을 제공하기 위한 디크립션 암호 데이터의 교대 소스와, 그리고
    상기 시간 기간 동안 상기 디크립션 암호 데이터의 주 소스로부터 상기 디크립션 암호 데이터의 교대 소스로 스위칭하는 제2 스위치를 포함하고, 여기서 상기 엔크립트된 데이터 스트림의 각각의 요소는 디크립트된 데이터 스트림을 연속적으로 생성하기 위해 디크립션 암호 데이터의 요소와 연속적으로 결합되는 것을 특징으로 하는 암호화 시스템.
  24. 삭제
  25. 제 23 항에 있어서,
    상기 전송 디바이스는 상기 결합을 위한 XOR(배타적 논리합) 게이트를 더 포함하는 것을 특징으로 하는 암호화 시스템.
  26. 제 23 항에 있어서,
    상기 수신 디바이스는 상기 결합을 위한 XOR(배타적 논리합) 게이트를 더 포함하는 것을 특징으로 하는 암호화 시스템.
  27. 제 23 항에 있어서,
    상기 엔크립션 암호 데이터 및 상기 디크립션 암호 데이터는 HDCP(High-bandwidth Digital Content Protection) 데이터인 것을 특징으로 하는 암호화 시스템.
  28. 제 1 항에 있어서,
    상기 암호 데이터의 주 소스는 상기 암호 데이터의 주 스트림을 생성하기 위한 암호 생성기를 포함하고, 상기 암호 데이터의 주 소스의 출력이 이용가능하지 않은 시간 기간은 상기 암호 생성기가 암호 데이터를 생성하는 것을 중지하는 시간 기간을 포함하는 것을 특징으로 하는 암호 데이터의 스트림들을 제공하는 방법.
  29. 제 16 항에 있어서,
    상기 암호 데이터의 주 소스는 상기 암호 데이터의 주 스트림을 생성하기 위한 암호 생성기를 포함하고, 상기 암호 데이터의 주 소스의 출력이 이용가능하지 않은 시간 기간은 상기 암호 생성기가 암호 데이터를 생성하는 것을 중지하는 시간 기간을 포함하는 것을 특징으로 하는 데이터 스트림을 연속적으로 엔크립트 또는 디크립트하는 전자 디바이스.
  30. 제 23 항에 있어서,
    상기 엔크립션 암호 데이터의 주 소스는 상기 엔크립션 암호 데이터의 주 스트림을 생성하기 위한 암호 생성기를 포함하고, 상기 엔크립션 암호 데이터의 주 소스의 출력이 이용가능하지 않은 시간 기간은 상기 암호 생성기가 암호 데이터를 생성하는 것을 중지하는 시간 기간을 포함하는 것을 특징으로 하는 암호화 시스템.
  31. 제 23 항에 있어서,
    상기 디크립션 암호 데이터의 주 소스는 상기 디크립션 암호 데이터의 주 스트림을 생성하기 위한 암호 생성기를 포함하고, 상기 디크립션 암호 데이터의 주 소스의 출력이 이용가능하지 않은 시간 기간은 상기 암호 생성기가 암호 데이터를 생성하는 것을 중지하는 시간 기간을 포함하는 것을 특징으로 하는 암호화 시스템.
KR1020097017841A 2007-02-26 2008-02-26 암호 데이터를 제공하기 위한 방법, 모듈 및 시스템 KR101522691B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/678,819 US8971525B2 (en) 2007-02-26 2007-02-26 Method, module and system for providing cipher data
US11/678,819 2007-02-26
PCT/CA2008/000371 WO2008104068A1 (en) 2007-02-26 2008-02-26 Method, module and system for providing cipher data

Publications (2)

Publication Number Publication Date
KR20100014860A KR20100014860A (ko) 2010-02-11
KR101522691B1 true KR101522691B1 (ko) 2015-05-22

Family

ID=39715927

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097017841A KR101522691B1 (ko) 2007-02-26 2008-02-26 암호 데이터를 제공하기 위한 방법, 모듈 및 시스템

Country Status (6)

Country Link
US (1) US8971525B2 (ko)
EP (1) EP2122897B1 (ko)
JP (1) JP5377333B2 (ko)
KR (1) KR101522691B1 (ko)
CN (1) CN101919201B (ko)
WO (1) WO2008104068A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4973442B2 (ja) * 2007-10-19 2012-07-11 株式会社デンソー 車両用画像表示システム
US9069990B2 (en) * 2007-11-28 2015-06-30 Nvidia Corporation Secure information storage system and method
US8237721B2 (en) * 2009-04-22 2012-08-07 Dell Products, Lp Information handling system and method for using main link data channels
JP6034778B2 (ja) * 2013-12-26 2016-11-30 インテル・コーポレーション 入出力(i/o)装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052466A (en) * 1997-08-28 2000-04-18 Telefonaktiebolaget L M Ericsson (Publ) Encryption of data packets using a sequence of private keys generated from a public key exchange
JP2001007801A (ja) * 1999-06-18 2001-01-12 Sony Corp 受信装置および方法、並びに媒体
JP2002281464A (ja) * 2000-12-18 2002-09-27 Matsushita Electric Ind Co Ltd 暗号伝送システム
US20040064694A1 (en) * 2002-09-27 2004-04-01 Lee David A. Method and apparatus for augmenting authentication in a cryptographic system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5992649A (ja) 1982-11-19 1984-05-28 Fujitsu Ltd ブロツク形デ−タ暗号器制御方式
JP3007225B2 (ja) 1992-05-08 2000-02-07 三菱電機株式会社 暗号化された制御信号の通信システム
US6052433A (en) * 1995-12-29 2000-04-18 Advanced Optical Technologies, Inc. Apparatus and method for dual-energy x-ray imaging
US5940508A (en) * 1997-04-07 1999-08-17 Motorola, Inc. Method and apparatus for seamless crypto rekey system
JP3195288B2 (ja) 1997-12-26 2001-08-06 株式会社高度移動通信セキュリティ技術研究所 暗号通信装置
JP3430896B2 (ja) * 1998-01-13 2003-07-28 日本電気株式会社 パスワード更新装置及び記録媒体
JP3445490B2 (ja) 1998-03-25 2003-09-08 株式会社日立製作所 移動体通信方法および移動体通信システム
US7370348B1 (en) * 1999-07-30 2008-05-06 Intel Corporation Technique and apparatus for processing cryptographic services of data in a network system
JP2001345798A (ja) 2000-05-31 2001-12-14 Nec Corp 秘匿鍵設定回路及び秘匿鍵更新方法
US7131004B1 (en) * 2001-08-31 2006-10-31 Silicon Image, Inc. Method and apparatus for encrypting data transmitted over a serial link
US7295578B1 (en) * 2001-09-12 2007-11-13 Lyle James D Method and apparatus for synchronizing auxiliary data and video data transmitted over a TMDS-like link
US7242766B1 (en) * 2001-11-21 2007-07-10 Silicon Image, Inc. Method and system for encrypting and decrypting data using an external agent
JP3897613B2 (ja) 2002-02-27 2007-03-28 株式会社日立製作所 公開鍵暗号方式における登録局サーバの運用方法、登録局サーバ、及びプログラム
JP4375995B2 (ja) * 2003-04-30 2009-12-02 ローム株式会社 デバイス鍵保護方法およびその方法を利用可能な暗号化装置と復号装置ならびに映像送信装置と映像受信装置
US8582773B2 (en) * 2003-07-29 2013-11-12 Thomson Licensing Key synchronization mechanism for wireless LAN (WLAN)
JP2005071029A (ja) 2003-08-22 2005-03-17 Matsushita Electric Ind Co Ltd 書き換え型icカード
JP2005341219A (ja) 2004-05-27 2005-12-08 Matsushita Electric Ind Co Ltd 映像提供システムおよびスクランブル方法
KR100662459B1 (ko) * 2005-08-30 2007-01-02 엘지전자 주식회사 Hdmi 수신기 및 전송기 개발 장치 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052466A (en) * 1997-08-28 2000-04-18 Telefonaktiebolaget L M Ericsson (Publ) Encryption of data packets using a sequence of private keys generated from a public key exchange
JP2001007801A (ja) * 1999-06-18 2001-01-12 Sony Corp 受信装置および方法、並びに媒体
JP2002281464A (ja) * 2000-12-18 2002-09-27 Matsushita Electric Ind Co Ltd 暗号伝送システム
US20040064694A1 (en) * 2002-09-27 2004-04-01 Lee David A. Method and apparatus for augmenting authentication in a cryptographic system

Also Published As

Publication number Publication date
WO2008104068A1 (en) 2008-09-04
CN101919201B (zh) 2013-09-18
KR20100014860A (ko) 2010-02-11
EP2122897B1 (en) 2018-05-16
US20080205634A1 (en) 2008-08-28
JP2010519821A (ja) 2010-06-03
JP5377333B2 (ja) 2013-12-25
EP2122897A4 (en) 2013-05-22
US8971525B2 (en) 2015-03-03
EP2122897A1 (en) 2009-11-25
CN101919201A (zh) 2010-12-15

Similar Documents

Publication Publication Date Title
US7242766B1 (en) Method and system for encrypting and decrypting data using an external agent
KR101370829B1 (ko) 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템
US5444781A (en) Method and apparatus for decryption using cache storage
US20110255689A1 (en) Multiple-mode cryptographic module usable with memory controllers
US5008938A (en) Encryption apparatus
JP4650267B2 (ja) 送信装置および方法、受信装置および方法、ならびに、データ伝送システムおよびデータ伝送方法
KR20090131696A (ko) 암/복호화 장치 및 이를 포함하는 보안 저장 장치
JP2007043353A (ja) 送受信システムおよび方法、送信装置および方法、受信装置および方法、並びにプログラム
KR100991222B1 (ko) 암호화 및 복호를 위한 장치, 방법 및 기록 매체
KR101522691B1 (ko) 암호 데이터를 제공하기 위한 방법, 모듈 및 시스템
US10129019B2 (en) DP HDCP version converter
WO2008018925A2 (en) Control word key store for multiple data streams
US5016275A (en) Buffered encryption/decryption
JP4015385B2 (ja) 暗号化装置及び暗号化方法及び暗号化プログラム及び復号装置及び復号方法及び復号プログラム及び暗号化復号システム
US7035290B1 (en) Method and system for temporary interruption of video data transmission
KR101375670B1 (ko) 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템
KR102029550B1 (ko) 디스플레이포트용 hdcp 설계
JPH09233065A (ja) 暗号化装置及び暗号化方法
JP2001285281A (ja) 暗号方式
CN114143022A (zh) 数据加密方法、数据传输方法和数据解密方法及相关装置
JP2001109374A (ja) データ送受信装置及び送受信方法

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
FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 5