KR101545631B1 - 콘텐트의 암호화 프로세싱 - Google Patents

콘텐트의 암호화 프로세싱 Download PDF

Info

Publication number
KR101545631B1
KR101545631B1 KR1020107007664A KR20107007664A KR101545631B1 KR 101545631 B1 KR101545631 B1 KR 101545631B1 KR 1020107007664 A KR1020107007664 A KR 1020107007664A KR 20107007664 A KR20107007664 A KR 20107007664A KR 101545631 B1 KR101545631 B1 KR 101545631B1
Authority
KR
South Korea
Prior art keywords
tables
watermarking
lookup
content
look
Prior art date
Application number
KR1020107007664A
Other languages
English (en)
Other versions
KR20100059961A (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 KR20100059961A publication Critical patent/KR20100059961A/ko
Application granted granted Critical
Publication of KR101545631B1 publication Critical patent/KR101545631B1/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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1063Personalisation
    • 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/16Obfuscation or hiding, e.g. involving white box
    • 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/608Watermarking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

콘텐트의 암호화 프로세싱을 위한 시스템(500)은 콘텐트를 수신하는(566) 입력(502)을 포함한다. 복수의 룩업 테이블들(504)은 결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타낸다. 상기 룩업 테이블들은 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고, 소정의 룩업 방식에 따라 적용되도록 배열된다. 상기 룩업 방식은 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정한다. 상기 결합된 암호화 및 워터마킹 오퍼레이션은 암호화 오퍼레이션 및 워터마킹 오퍼레이션을 포함한다. 제어 모듈(512)은 상기 수신된 콘텐트 및 상기 룩업 방식에 따라 상기 복수의 룩업 테이블들에서 값들을 룩업함으로써, 상기 콘텐트에 상기 결합된 암호화 및 워터마킹 오퍼레이션을 적용한다.

Description

콘텐트의 암호화 프로세싱{CRYPTOGRAPHIC PROCESSING OF CONTENT}
본 발명은 콘텐트(content)의 암호화 프로세싱(crytographic processing)에 관한 것이다. 본 발명은 또한 콘텐트를 분배하는 것에 관한 것이다.
CD들 또는 DVD들과 같은 종래의 콘텐트 분배 채널(content distribution channel)들로부터 전자 콘텐트 분배(Electronic Content Distribution: ECD) 쪽으로의 명백한 전환이 지난 몇 년 동안 경험되었다. 전자 분배가 콘텐트 제공자들에게 새로운 사업 가능성들을 제공할지라도, 권한부여되지 않은 대량 재-분배의 위험이 디지털 분배 채널들의 광범위한 채택을 매우 제한한다. 디지털 저작권 관리(Digital Rights Management: DRM) 시스템들은 클라이언트 디바이스(client device)들로 콘텐트를 안전하게 분배하고 적절한 사용을 강요하기 위하여 암호화 기술들을 사용함으로써 저작권 침해들의 위험을 최소화하도록 노력한다. 그러나, 암호화는 권한부여되지 않은 분배의 문제에 대한 부분적인 해결책만을 제공할 수 있다. 궁극적으로, 콘텐트는 카피가 용이하게 행해지고 재분배될 수 있는 (아날로그) 클리어-텍스트 형태(clear-text form)로 해독되어 사용자에게 제공되어야 한다. 종래의 DRM/암호화 방법들 대신에, 또는 종래의 DRM/암호화 방법들과 함께 사용될 수 있는 포렌식 추적 워터마크(forensic tracking watermark)들은 디지털 도메인(digital domain)을 넘어서 사용 저작권을 집행하게 한다. 포렌식 추적 시스템에서, 분배된 콘텐트의 각각의 카피는 상기 카피를 특정 사용자 또는 특정 디바이스 중 하나에 링크(link)하는 특정 트랜잭션 태그(transaction tag)로 워터마킹(watermarking)된다. 권한부여되지 않은 카피가 발견될 때, (트랜잭션 태그를 지니는) 임베딩(embedding)된 워터마크가 카피의 소스(source)를 특정하게 식별하고, 콘텐트를 재분배한 사용자를 추적하도록 한다. 포렌식 추적이 자체적으로 권한부여되지 않은 재분배를 방지하지 못할지라도, 붙잡힐 위험이 강한 방해물(deterrent)의 역할을 한다.
종래의 포렌식 추적 시스템들에서, 포렌식 워터마크들은 콘텐트가 분배 네트워크로 릴리스(release)되기 전에 신뢰받는 분배 서버(distribution server)에 의해 직접적으로 콘텐트 내로 임베딩된다. 그러나, 이 모델은 미래의 콘텐트 분배 모델들에서의 포렌식 워터마크들의 이용 가능성을 매우 제한한다.
안전한 워터마크 임베딩은 워터마크 키(watermark key), 워터마크, 또는 원본의 안전성을 손상시킴이 없이 신뢰받지 않는 사용자 디바이스에서 한 피스(piece)의 콘텐트 내로 워터마크를 안전하게 임베딩하도록 한다. 안전한 인베딩은 주로 미디어 콘텐트(media content)의 고속 암호화를 용이하게 하기 위하여 개발되었던 부분적인 암호화 기술들과 함께 종래의 워터마킹 방식들을 사용함으로써 성취될 수 있다.
"Lemma 등에 의한" 이하에서 언급되는, 2006년의 Proceedings of International Workshop on Digital Watermarking(IWDW 2006), Springer LNCS, 4283, 433-445에서의 A. N. Lemma, S. Katzenbeisser, M. U. Celik, M. V. Veen에 의한 "Secure Watermark Embedding Throught Partial Encryption"에서, 이 개념을 기반으로 하는 2개의 안전한 임베딩 메커니즘들이 개발되었다. 하나는 기저대역 오디오(baseband audio) 상에서 오퍼레이팅(operating)하는 MASK 워터마킹 방식에 대한 것이고, 하나는 MPEG-2 인코딩된 비디오 스트림들(vedio streams) 상에서 오퍼레이팅하는 확산 프렉트럼 워터마빙 방식(spread spectrum watermarking scheme)에 대한 것이다.
종래의 포렌식 추적 시스템들에서, 포렌식 워터마크들은 콘텐트가 분배 네트워크로 릴리스(release)되기 전에 신뢰받는 분배 서버(distribution server)에 의해 직접적으로 콘텐트 내로 임베딩된다. 그러나, 이 모델은 미래의 콘텐트 분배 모델들에서의 포렌식 워터마크들의 이용 가능성을 매우 제한한다.
이 문제를 더 양호하게 처리하기 위하여, 본 발명의 제 1 양태에서,
- 콘텐트를 수신하는 입력;
- 결합된 암호화 및 워터마킹 오퍼레이션(operation)의 화이트-박스 구현(white-box implementation)을 나타내는 복수의 룩업 테이블(look-up table)들로서, 상기 룩업 테이블들이 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고 미리 결정된 룩업 방식에 따라 적용되도록 배열되며, 상기 룩업 방식이 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 워터마킹 오퍼레이션을 포함하는, 상기 복수의 룩업 테이블들; 및
- 상기 수신된 콘텐트 및 상기 룩업 방식에 따라 상기 복수의 룩업 테이블들에서 값들을 룩업함으로써, 상기 콘텐트에 상기 결합된 암호화 및 워터마킹 오퍼레이션을 적용하여 프로세싱된 콘텐트를 획득하는 제어 모듈을 포함하는 시스템이 제공된다.
워터마킹 오퍼레이션 및 암호화 오퍼레이션이 결합된 암호화 및 워터마킹 오퍼레이션에서 수행되기 때문에, 워터마킹 오퍼레이션 및 암호화 오퍼레이션 중 어느 하나의 결과가 시스템에서의 중간 결과로서 이용 가능하게 되지 않는다. 이것은 워터마킹 오퍼레이션이 아니라, 암호화 오퍼레이션을 겪었던 콘텐트의 불법적인 분배를 방지하는 것을 돕는다. 또한, 결합된 암호화 및 워터마킹 오퍼레이션 및 중간 결과들의 난독화(obfuscation)가 워터마크에 관한 정보를 누출하는 것을 방지하는 것을 돕는다.
결합된 암호화 및 워터마킹 오퍼레이션은 콘텐트에 워터마크를 추가하는 것 및/또는 콘텐트로부터 워터마크를 제거하는 것 및/또는 콘텐트를 암호화하는 것 및/또는 콘텐트를 해독하는 것을 포함할 수 있다. 예를 들어, 암호화된 콘텐트는 해독될 수 있고, 워터마크를 자신에 추가하도록 할 수 있다. 피어-투-피어 네트워크(peer-to-peer network)들에서 저작권이 있는 콘텐트의 합법적인 분배에 유용한 또 다른 예에서, 워터마킹되고 암호화되지 않은 콘텐트는 워터마크를 자신으로부터 제거하도록 할 수 있고, 암호화될 수 있다. 또 다른 예에서, 암호화된 콘텐트는 해독될 수 있고, 워터마크를 자신에 추가(또는 자신으로부터 제거)하도록 할 수 있고, 결합된 암호화 및 워터마킹 오퍼레이션의 부분으로서 다시 암호화될 수 있다. 룩업 테이블들을 사용한 화이트-박스 구현들은 2002년의 Proc. of the 9th Annual Workshop on Selected Areas in Cryptography에서의 S. Chow, P. Eisen, H. Johnson, P. C. van Oorschot의 "White-Box Cryptography and an AES Implementation"으로부터 공지되어 있다.
실시예에서, 상기 복수의 룩업 테이블들은:
- 상기 암호화 오퍼레이션의 화이트-박스 구현을 나타내는 제 1 복수의 룩업 테이블들을 발생시키고;
- 상기 제 1 복수의 룩업 테이블들의 적어도 하나의 룩업 테이블을 변화시키고/시키거나, 상기 제 1 복수의 룩업 테이블들 내로 워터마킹 오퍼레이션을 통합시키기 위하여 상기 제 1 복수의 룩업 테이블들에 적어도 하나의 룩업 테이블을 추가함으로써, 상기 결합된 암호화 및 워터마킹 오퍼레이션의 화이트-박스 구현을 나타내는 상기 복수의 룩업 테이블들을 발생시킴으로써 발생된다.
이것은 암호화 오퍼레이션의 구현에서 시작되고 상기 암호화 오퍼레이션에 워터마킹 오퍼레이션을 추가하는 것에 의해 룩업 테이블들을 발생시키는 용이한 방식이다. 실시예에서, 암호화 오퍼레이션은 해독 오퍼레이션을 포함한다. 또 다른 실시예에서, 워터마킹 오퍼레이션은 콘텐트에 워터마크를 추가하는 오퍼레이션을 포함한다. 상기 시스템은 해독 오퍼레이션 동안 워터마크를 추가하는데 특히 적합하다.
실시예에서, 워터마킹 오퍼레이션은 상기 복수의 룩업 테이블들 중 적어도 하나의 테일 테이블(tail table) 내에 통합된다. 테일 테이블은 암호화 오퍼레이션과 관련된 최종적인 테이블들 중 하나이다. 이 실시예는 룩업 테이블에서 암호화 오퍼레이션 및 워터마킹 오퍼레이션의 단계를 결합한다. 워터마킹 오퍼레이션은 상기 복수의 룩업 테이블들의 테일 테이블들 중 적어도 하나에서 값들을 적절하게 조정함으로써 상기 복수의 룩업 테이블들에 가장 용이하게 통합될 수 있다.
실시예는:
- 상기 복수의 룩업 테이블들 내의 룩업 테이블들 중 적어도 하나의 복수의 버전(version)들을 포함하며,
- 상기 제어 모듈이 미리 결정된 인덱스 값(index value)에 따라 상기 복수의 버전들 중 적어도 하나의 버전을 선택하는 선택기를 포함하고, 상기 제어 모듈이 선택된 버전에서 적어도 하나의 값을 룩업하도록 배열되고, 상기 워터마킹 오퍼레이션이 상기 버전들의 콘텐트들에 의존한다.
상기 인덱스 값 및 상기 복수의 룩업 테이블들은 더 복잡한 워터마크 패턴(watermark pattern)들, 예를 들어, 시간의 함수로서 변화하는 워터마크 패턴들을 허용한다. 상기 인덱스 값은 시스템 내의 의사-랜덤 발생기(pseudo-random generator)(또는 임의의 다른 인덱스 값 발생기)에 의해 제어될 수 있고, 수신된 콘텐트에서 캡슐화(encapgulating)된 정보에 따라 결정될 수 있고/있거나, 외부 소스로부터 수신될 수 있다. 예를 들어, 콘텐트는 간단한 파일 서버(file server)로부터 수신될 수 있는 반면, 인덱스 값들은 디지털 저작권 관리 서버 애플리케이션으로부터 획득된다.
실시예는 상기 인덱스 값을 수신하는 입력을 포함한다. 또 다른 실시예는 수신된 콘텐트에 따라 상기 인덱스 값을 결정하는 인덱스 발생기를 포함한다.
실시예에서, 워터마크의 적어도 제 1 부분을 적용하는 제 1 룩업 테이블 및 워터마크의 적어도 제 2 부분을 적용하는 제 2 룩업 테이블이 병합된 테이블에서 병합되고, 상기 병합된 테이블이 상기 제 1 룩업 테이블 및 상기 제 2 룩업 테이블의 엔트리(entry)들을 포함한다. 일부 종류들의 워터마크들, 예를 들어, 하나 이상의 값들을 분실할 수 있고 복제된 다른 어떤 다른 값들을 가질 수 있는 클리핑을 이용하는 추가적인 워터마크는 룩업 테이블들을 통해 정보를 누출할 수 있다. 복수의 테이블들을 병합된 테이블, 예를 들어, 양의 값을 가산하는 하나의 테이블 및 음의 값을 가산하는 하나의 테이블 내로 병합함으로써, 정보를 누출하는 이 소스가 제거된다.
실시예에서, 상기 제 1 룩업 테이블이 제 1 워터마킹 오퍼레이션을 포함하고, 상기 제 2 룩업 테이블이 제 2 워터마킹 오퍼레이션을 포함하고, 상기 제 2 워터마킹 오퍼레이션이 실질적으로 상기 제 1 워터마킹 오퍼레이션의 반대 오퍼레이션을 포함한다. 이 방식으로, 룩업 테이블을 통한 워터마킹 오퍼레이션에 관한 정보 누출이 피해진다.
실시예에서, 상기 시스템은 개인용 컴퓨터를 포함한다. 상기 시스템이 악의 있는 사용자가 실행 환경을 완전히 제어 및 검사할 기회를 가지는 경우에도 상대적으로 안전하기 때문에, 상기 시스템은 예를 들어, 개인용 컴퓨터(PC), 이동 전화 또는 개인 휴대 정보 단말기(PDA)와 같은 개방형 소프트웨어 플랫폼(open software platform) 상의 소프트웨어 애플리케이션들에서 특히 유용하다.
실시예는:
- 복수의 상이한 워터마크 패턴들을 제공하는 워터마크 발생기; 및
- 룩업 테이블들의 복수의 네트워크들을 제공하는 룩업 테이블 발생기를 포함하며, 룩업 테이블들의 상기 복수의 네트워크들 중 룩업 테이블들의 네트워크가 결합된 암호화 및 워터마킹 오퍼레이션의 화이트-박스 구현을 나타내고, 룩업 테이블들의 상기 네트워크의 룩업 테이블들이 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고, 상기 룩업 테이블들이 미리 결정된 룩업 방식에 따라 적용되도록 배열되며, 상기 룩업 방식이 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 상기 복수의 상이한 워터마크 패턴들 중 적어도 하나에 대응하는 워터마킹 오퍼레이션을 포함하며, 룩업 테이블들의 상이한 네트워크들의 상기 워터마킹 오퍼레이션들이 상기 복수의 상이한 워터마크 패턴들 중 상이한 워터마크 패턴들에 대응한다.
이 시스템은 클라이언트들에게 화이트-박스 구현들을 분배하는 서버로서 사용될 수 있다. 결과적으로, 상이한 클라이언트들이 상이한 워터마크들을 획득하므로, 상이한 클라이언트들에 의해 프로세싱된 콘텐트가 상이하게 워터마킹되는데, 이는 임의의 불법적으로 분배된 콘텐트 아이템의 소스의 포렌식 추적을 허용한다. 예를 들어, 상기 시스템은 인터넷과 같은 네트워크 접속을 통하여 디지털 라이센스(digital license)들을 제공하는 디지털 저작권 관리 서버 시스템에서 구현된다.
실시예는 복수의 사용자 클라이언트들에게 룩업 테이블들의 상기 복수의 네트워크를 분배하는 제 1 출력을 포함한다. 예를 들어, 단일 서버 시스템 상에서 구현된 동일한 시스템에 의해 룩업 테이블들 및 제어 모듈을 분배하는 것이 사용자가 단일 장소로부터 둘 모두를 획득할 수 있기 때문에 사용자에게 효율적이고 편리하다.
실시예에서, 제 1 출력이 수신된 콘텐트 및 룩업 방식에 따라 룩업 테이블들의 네트워크에서 값들을 룩업함으로써, 수신된 콘텐트에 상기 결합된 암호화 및 워터마킹 오퍼레이션을 적용하여 프로세싱된 콘텐트를 획득하도록 하는 제어 모듈을 상기 사용자 클라이언트들에게 분배하도록 배열된다. 이것은 시스템이 룩업 테이블들의 네트워크에서 상기 값들이 룩업되고 있는 방식을 제어할 수 있도록 한다.
실시예에서, 동일한 콘텐트가 복수의 사용자 클라이언트들 중 다수의 사용자 클라이언트로 분배되고; 동일한 콘텐트가 룩업 테이블들의 분배된 네트워크들에 따라 상기 복수의 사용자 클라이언트들 중 다수의 사용자 클라이언트에 의해 상이하게 워터마킹된다. 단일 버전의 콘텐트만을 분배하는 것이 예를 들어, 브로드캐스팅(broadcasting)의 애플리케이션에서 다수의 수신자들에게 콘텐트를 분배하는 효율적인 방식이다. 워터마킹 오퍼레이션은 각각의 클라이언트가 콘텐트들에 상이하게 워터마킹하는 것을 보장한다.
실시예는 복수의 룩업 테이블들을 포함하고, 상기 복수의 룩업 테이블들이 결합된 암호화 및 워터마킹 오퍼레이션의 화이트-박스 구현을 나타내고, 상기 룩업 테이블들이 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고 소정의 룩업 방식에 따라 적용되도록 배열되며, 상기 룩업 방식이 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 워터마킹 오퍼레이션을 포함한다.
실시예는:
- 콘텐트를 수신하는 단계;
- 결합된 암호화 및 워터마킹 오퍼레이션의 화이트-박스 구현을 나타내는 단계로서, 룩업 테이블들이 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고 소정의 룩업 방식에 따라 적용되도록 배열되며, 상기 룩업 방식이 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 워터마킹 오퍼레이션을 포함하는, 상기 결합된 암호화 및 워터마킹 오퍼레이션의 화이트-박스 구현을 나타내는 단계; 및
- 상기 수신된 콘텐트 및 상기 룩업 방식에 따라 복수의 룩업 테이블들에서 값들을 룩업함으로써, 콘텐트에 상기 결합된 암호화 및 워터마킹 오퍼레이션을 적용하여 프로세싱된 콘텐트를 획득하는 단계를 포함하는, 콘텐트의 암호화 프로세싱 방법을 포함한다.
실시예는:
- 복수의 상이한 워터마크 패턴들을 제공하는 단계; 및
- 룩업 테이블들의 복수의 네트워크들을 제공하는 단계로서, 룩업 테이블들의 상기 복수의 네트워크들 중 룩업 테이블들의 네트워크가 결합된 암호화 및 워터마킹 오퍼레이션의 화이트-박스 구현을 나타내고, 룩업 테이블들의 상기 네트워크의 룩업 테이블들이 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고, 상기 룩업 테이블들이 소정의 룩업 방식에 따라 적용되도록 배열되며, 상기 룩업 방식이 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 상기 복수의 상이한 워터마크 패턴들 중 적어도 하나에 대응하는 워터마킹 오퍼레이션을 포함하며, 룩업 테이블들의 상이한 네트워크들의 상기 워터마킹 오퍼레이션들이 상기 복수의 상이한 워터마크 패턴들 중 상이한 워터마크 패턴들에 대응하는, 상기 룩업 테이블들의 복수의 네트워크들을 제공하는 단계를 포함하는, 콘텐트를 분배하는 방법을 포함한다.
실시예는 프로세서가 설명된 상기 방법들 중 어느 하나를 수행하도록 하는 컴퓨터 실행 가능한 명령들을 포함하는 컴퓨터 프로그램 제품을 포함한다.
본 발명에 의하면, 콘텐트의 암호화 프로세싱을 위한 개선된 시스템이 제공된다.
도 1은 룩업 테이블들의 2 개의 네트워크들을 도시한 도면.
도 2는 룩업 테이블들의 네트워크를 도시한 도면.
도 3은 화이트-박스 구현을 도시한 도면.
도 4는 실시예를 도시한 도면.
도 5는 실시예를 도시한 도면.
도 6은 룩업 테이블을 병합하는 것을 도시한 도면.
도 7은 실시예를 도시한 도면.
본 발명의 이러한 양태들 및 다른 양태들이 도면을 참조하여 더 설명 및 기술될 것이다.
도면들에서, 동일한 대상들에는 동일한 참조 번호들이 병기되어 있다.
종래의 화이트박스 사이퍼 기술(whitebox cipher technique)들은 일련의 테이블 룩업들을 사용하여 고정된 해독 키를 갖는 사이퍼를 구현한다. 테이블들의 선택에서의 자유가 동일한 해독 키(decryption key)에 대한 다수의 특정 화이트박스 구현들을 도출하는 것을 가능하게 한다. 따라서, 화이트박스 구현은 재분배 공격들에 대해 개별적인 해독 소프트웨어 카피들의 추적을 허용한다. DRAM 시스템들에서 적용될 때 이러한 시스템들의 결점들 중 일부는 다음과 같다: (i) 공격자가 화이트박스 구현을 더 난독화하여, 테이블들이 관측될 수 없도록 할 수 있다. 결과적으로, 공격자는 추적할 수 없지만, 충분하게 기능을 하는 해독 소프트웨어를 획득할 수 있다. (ii) 해독 소프트웨어의 각각의 카피가 동일한 출력을 제공한다. 공격자가 해독 소프트웨어 대신에, 해독된 콘텐트를 공개하는 경우에, 공격자는 추적될 수 없다.
본 문서에서, 워터마킹 및 화이트박스 대칭 사이퍼 구현들을 결합하는 기술들이 개시되어 있다. 이러한 기술들은 특히 DRM 시스템들의 영역에서, 현재 화이트박스 구현들과 관련된 문제들 중 일부를 극복하도록 한다. 더구나, 제안된 기술들은 포렌식 추적 워터마크들이 보호되지 않은 환경에서 클라이언트-측에 임베딩될 때 발생하는 안전성 문제들 중 일부를 해결할 수 있다.
화이트-박스 암호화는 소프트웨어로 암호화 사이퍼를 거의 구현하고 있어서, 키가 '화이트-박스 공격 모델'에서 추출될 수 없도록 한다. 상기 화이트-박스 공격 모델은 공격자가 소프트웨어에 완전히 액세스하고 실행 환경에 대해 완전히 제어하는 상상할 수 있는 가장 강한 공격 모델이다. 화이트-박스 구현들에서, 키는 룩업 테이블들에 숨겨진다. 즉, 룩업 테이블들이 암호화 키의 역할을 인수하는데, 이는 공격자가 원본 암호화 키를 추출하는 것을 불가능하게 한다. 화이트박스 대칭 사이퍼 구현의 예가 2002년의 Proc. of 9the Annual Workshop on Selected Areas in Cryptography에서의 S. Chow, P. Eisen, H. Johnson, P. C. van Oorschot의 "White-Box Cryptography and an AES Implementation"에 설명되어 있다.
도 1은 화이트박스 구현 원리의 일부 양태들을 도시한다. 해독에서의 모든 오퍼레이션들이 일련의 테이블 룩업들(106)(도 1의 상부)로서 구현된다. 화살표들은 룩업 테이블들(106) 사이의 정보의 흐름을 표시한다. 수신된 콘텐트는 제 1 룩업 테이블의 입력(102)을 정의하고, 최종적인 룩업 테이블의 출력(104)은 해독된 콘텐트를 정의한다. 도 1의 하부 중간에 도시된 바와 같이, 변형(B)을 정의하는 각각의 테이블(110)은 변환
Figure 112010022448218-pct00001
을 수행하는 테이블(110)을 획득하기 위하여 랜덤 전단사(random bijection)들, 예를 들어, a-1 및 b로 사전 및 사후 변환될 수 있다. 각각의 사후 변환(예를 들어, b)이 다음 사전 변환(예를 들어, b-1)에 의해 동작 취소(undoing)되는 한, 임의의 소정 세트의 변형들(A, B 등)의 효과는 변환(a, b 등)의 적절한 선택으로 성취될 수 있고, 중간 결과들이 변환들(a, b 등)에 따라 모두 상이하게 인코딩된다.
블록 사이퍼들은 소정의 크기의 블록들 상에서 오퍼레이팅된다. 블록들은 통상적으로 하나씩 해독된다. 예를 들어, AES는 128 비트의 블록들 상에서 오퍼레이팅된다. 룩업 테이블의 크기가 너무 커질 것이기 때문에(AES의 예에서, 이와 같은 테이블은 2128개의 엔트리들을 가질 것이다), AES의 예에서, 128 비트의 완전한 블록 상에서 오퍼레이팅하는 룩업 테이블들을 갖는 것이 통상적으로 실용적이지 않다. 화이트박스 구현들은 이러한 블록들을 니블들(nibbles)(4 비트)의 서브-블록들, 바이트(8 비트) 또는 워드(16 비트)로 분할한다. 각각의 서브-블록 상의 오퍼레이션들(예를 들어, XOR)이 테이블 룩업들로서 구현된다. 니블 테이블에 대해 16개의 엔트리들이 존재하고, 바이트 테이블에 대해 256개의 엔트리들이 존재하고, 워드 테이블에서 65536개의 엔트리들이 존재한다. 테이블들의 출력들은 다음 룩업 테이블들에 대한 입력이 되는 부분들로 분할될 수 있다(예를 들어, 16-비트 출력은 4개의 니블들로 분할되고, 각각의 니블은 상이한 룩업 테이블로의 입력으로서 제공된다). 더구나, 테이블들로의 입력은 복수의 다른 테이블들의 출력들인 비트들로 이루어질 수 있다. 따라서, 도 1의 하부 중간의 도면은 간소화된 룩업 테이블 구성만을 도시한다. 실제 구현에서, 룩업 테이블들은 종종 복잡한 네트워크 토폴로지(network topology)를 갖는 룩업 테이블들의 네트워크를 형성한다.
포렌식 추적 DRM 아키텍처에서, 서비스 제공자(또는 콘텐트 소유자) 및 고객 사이에서 교환되는 콘텐트의 각각의 피스는 고객의 아이덴티티(identity)로 워터마킹된다. 워터마킹 프로세스의 복잡성으로 인하여, 대역폭 사용 및 서버 복잡성을 제한하기 위하여 클라이언트-측에서 포렌식 추적 워터마크들을 임베딩하는 것이 바람직할 수 있다. 그러나, 이러한 신뢰받지 않는 클라이언트들에서의 임베딩은 마킹되지 않은 콘텐트들 또는 워터마킹 시크릿(watermarking secret)들을 누출시키지 않는 안전한 임베딩 방법들을 필요로 한다. 이 문제를 해결하기 위하여, 암호화 및 워터마크 삽입을 하나의 단계 내에 결합하여, 신뢰받지 않는 클라이언트에게 원본도 노출되지 않고 워터마크(시크릿들)도 노출되지 않도록 하는 "안전한 워터마크 임베딩 방식들"이 제안되었다. 이와 같은 안전한 임베딩 방식들이 예를 들어, Lemma 등에 의한 상술된 논문에서 논의되어 있다.
현재 화이트박스 구현들은 소프트웨어로부터 대칭 키들의 추출을 방지하는 것을 돕고, 이들이 축어적으로 공개될 때 개별적인 해독 소프트웨어 카피들의 추적을 돕는다. 예를 들어, 추적은 각각의 사용자에 대해 상이한 인코딩 변형들(a, b 등)을 선택함으로써 실현될 수 있다. 그 후, 소프트웨어의 자신의 버전의 카피를 불법적으로 분배하는 사용자가 룩업 테이블들에서 값들을 조사함으로써 추적될 수 있다. 그러나, 이러한 방법들은 다음의 결점들을 가질 수 있다.
첫째로, 화이트박스 구현은 악의 있는 사용자에 의해 더 난독화될 수 있다. 그렇게 변화된 버전은 동일한 해독 기능을 가질 수 있지만, 변화된 버전을 분배한 악의 있는 사용자의 소스를 추적하는 것이 불가능할 수 있다. 악의 있는 사용자에 대한 하나의 가능성은 추가적인 출력 인코딩/입력 디코딩 쌍들(α 및 α-1)에 따라 룩업 테이블을 변화시키는 것일 수 있다.
둘째로, DRM 시스템들에서, 각각의 개별적인 카피가 동일한 콘텐트를 출력한다. 공격자가 해독 소프트웨어 대신에 해독된 콘텐트를 공개하는 경우에, 상기 공격자는 추적될 수 없다.
현재의 안전한 워터마크 임베딩 방법들은 해독 키의 크기가 콘텐트 크기에 비례한다는 결점을 가질 수 있다. 현재의 안전한 워터마크 임베딩 방법들은 종종 양호한 안전성을 위하여 (콘텐트 크기 정도의) 매우 큰 해독 키들을 필요로 한다.
대부분의 다른 종류들의 데이터와 달리, 오디오비주얼 콘텐트(audiovisual content)는 임의의 인지 가능한 아티팩트(artifact)들을 도입함이 없이 약간 변경될 수 있다. 그러므로, 각각의 화이트박스 구현은 동일한 해독 키에 대하여, 약간 변경된 콘텐트 카피를 출력하도록 배열될 수 있다. 워터마크들 또는 핑거프린트(fingerprint)들로서 또한 공지되어 있는 이러한 약간의 변경들이 해독된 콘텐트 또는 상기 해독된 콘텐트를 생성한 화이트박스 구현을 추적하는데 사용될 수 있다.
도 2는 워터마크 변형(202)이 해독 프로세스의 최종적인 룩업 테이블에 포함되는 실시예를 도시한다. 이 변형은 워터마크를 임베딩하기 위하여 데이터 블록의 데이터 서브-블록, 예를 들어, 바이트를 변경한다. 변형(202)이 해독 프로세스의 최종적인(테일) 테이블과 병합되기 때문에, 해독 및 워터마킹 기능들은 용이하게 분리될 수 없다. 이 시스템(도 2 참조)에서, 각각의 개별적인 소프트웨어 카피에 대하여, 상이한 변환들이 y 및 WM에 대해 사용된다. 이 방식으로, 테이블들
Figure 112010022448218-pct00002
Figure 112010022448218-pct00003
은 각각의 개별적인 소프트웨어 카피에서 상이하다. y(따라서, y-1)의 임의의 선택은 공격자가 워터마크 테이블들을 제거 또는 교환하지 못하도록 한다. WM 오퍼레이션들은 바람직하게는, 해독된 값들을 단지 약간 변화시키는데, 예를 들어, 최하위 비트를 플립(flip)함으로써 값을 ±1만큼 변화시킨다. 테이블
Figure 112010022448218-pct00004
은 해독 프로세스의 단계(예를 들어, 최종적인 단계)를 수행하는 변환(Z)을 포함할 수 있다. 이 방식으로, 해독 및 워터마킹 오퍼레이션들이 서로 타이트(tight)하게 결합된다.
화이트박스 구현이 재분배되고 발견될 때, 이 구현에서 사용된 워터마크 테이블(WM)이 상기 구현에 질의함으로써 검출될 수 있다. 특히, 상이한 암호문들(c(Σ))이 상기 구현에 의해 프로세싱되고, 출력(Ω)이 분석된다. Σ 및 Ω 사이의 차이들이 워터마크 테이블 WM을 재구성하여, 카피의 소스를 식별하는데 사용된다. 이하에서, 이 시나리오는 "선택된 콘텐트에 의한 검출"이라고 칭해진다.
128-비트 블록 사이퍼를 기반으로 한 화이트-박스 구현의 예에서, 모든 테일 테이블들 내의 각각의 엔트리가 워터마크를 형성하기 위하여 1 비트만큼 변경될 수 있다고 가정하면, 화이트박스 구현들의 최종 단계에서 바이트를 갖는 룩업 테이블들이 사용되는지 또는 워드를 갖는 룩업 테이블들이 사용되는지에 따라서, 각각, 각각의 워터마크에서 상이하게 선택될 수 있는 16 테이블들 × 256 엔트리들 = 4096 또는 8 테이블들 × 65536 엔트리들 = 500000 비트가 존재할 수 있다. 어느 경우든지 수백만 명의 사용자들을 특정하게 식별하는데 충분한 공간이 존재한다.
상기 기술은 공격자가 화이트-박스 구현을 더 난독화할 때에도, 화이트-박스 구현의 불법적으로 분배된 카피들을 추적하도록 한다. 워터마크를 결정하기 위하여 룩업 테이블들을 직접적으로 조사하는 대신에, 해독 소프트웨어의 입력-출력 동작이 분석된다. 이 동작은 각각의 특정한 세트의 워터마크 변환들(WM)에 대해 특정하다. 그러므로, (예를 들어, 인코딩들(a, b, c 등)의 변화에 의한) 임의의 부가적인 난독화가 식별에 영향을 주지 않는다.
도 3은 콘텐트가 추적되는 시나리오를 도시한다. 워터마킹된 콘텐트(Ω) 및 선택적으로 원본 암호문(c(Σ))이 제공되면, 직무는 Ω에 존재하는 특정 워터마크를 생성하는 화이트박스 구현(302)을 발견하는 것이다. Σ≠Ω이고 Ω이 상이한 화이트박스 구현에 대해 상이하다는 특성이 사용될 수 있다. 예를 들어, 해독된 콘텐트(Ω)가 공개되고, 바람직하게는, 대응하는 원본(Σ)이 공지되는 경우에, 워터마킹된 콘텐트를 추적하는 것이 가능하다. 이 경우에, Σ이 임의로 선택될 수 있는 것이 아니라, 이미 공개된 콘텐트(Ω)에 의존하기 때문에, 검출이 더 어려울 수 있다. 그럼에도 불구하고, 충분한 변화를 갖는 충분한 자료가 관측되는 경우에, 워터마크 테이블들(WM)(의 적어도 일부)을 재구성하는 것이 가능하다. 이하에서, 이 시나리오는 "공지된 콘텐트에 의한 검출"이라고 칭해진다.
상술된 시나리오들에서, 소프트웨어 및 해독된 콘텐트의 입력-출력 동작 둘 모두가 악의 있는 사용자에 의해 변경되지 않는다고 가정되었다. 더 완화된 가정 하에서, 공격자는 예를 들어, 최하위 비트를 변경함으로써 우리의 방식과 유사한 방식으로 테일 테이블들 또는 콘텐트 값들을 변경할 수 있다. 이것은 추적을 더 어렵게 할 수 있고, 일부 시나리오에서, 추적이 신뢰 가능하게 수행될 수 없다.
다음 단락들에서, 공격자가 화이트-박스 구현에 대한 기능적인 변경들을 행하는 경우가 다루어진다. 이와 같은 변경들은 화이트-박스 구현의 글로벌 입력-출력 동작에 영향을 주므로, 워터마크를 숨길 수 있다.
공격자에 의한 랜덤 변경들에 대한 로버스트니스(robustness)를 가능하게 하는 통상적인 방법은 확산-스펙트럼 방법들로서 또한 공지되어 있는, 페이로드 정보(payload information)를 다수의 위치들로 확산시키는 것이다. 전형적인 확산-스펙트럼 워터마크에서, 각각의 특정 카피는 {-1, +1} 엔트리들을 갖는 상대적으로 긴(예를 들어, 1000-10000 엔트리들) 시퀀스를 할당받는다. -1 및 +1 대신에, 다른 값들이 또한 사용될 수 있다. 이 시퀀스는 콘텐트의 연속적인 샘플들에 이 시퀀스 내의 연속적인 엔트리들을 추가함으로써 콘텐트 내로 임베딩된다. 예를 들어, 제 1 픽셀은 1만큼 증가되고, 제 2 픽셀은 1만큼 감소되는 등이다. 본질적으로, 임베딩된 워터마크 심볼(symbol)들은 위치 종속적이다. 이 시퀀스를 콘텐트와 상관시킴으로써 검출이 수행된다. 상기 시퀀스가 충분히 긴 경우에, 명백한 높은 상관 값이 존재할 것이다. 임베딩된 시퀀스를 인지하지 못하는 공격자에 의해 도입된 임의의 랜덤 변경들 또는 콘텐트가 상관되지 않을 때, 상관 값에 대한 이들의 영향이 제한될 것이다. 요컨대, 이 방법은 우리가 잡음의 존재 시에도 검출될 수 있는 로버스트 워터마크들을 임베딩하도록 한다.
전형적인 AES 화이트박스 구현은 각각 바이트 또는 워드의 8 또는 16개의 상이한 서브블록들을 갖는다. 각각의 서브-블록은 관련된 워터마크 변환을 갖는다. 각각의 룩업 테이블은 {-1, +1} 워터마크 심볼을 추가하도록 변경될 수 있다. 예를 들어, 0이 1로 맵핑되고, 1이 2로 맵핑되고,...,254가 255로 맵핑되고, 255가 255로 맵핑된다. 클립핑(clipping)의 어떤 가능한 안전성 결과가 이하에서 논의될 것이다. 불행하게도, 8-16개의 상이한 테이블들은 상술된 바와 같은 긴 워터마크 시퀀스들을 수용하는데 충분하지 않을 수 있다.
도 4는 화이트박스 구현 내의 하나 이상의 테일 테이블이 복제되고 상이한 워터마크 변환들이 (각각의 복제본들이 상이하도록) 각각의 복제본에 적용되는 2개의 실시예들을 (각각 도면의 상부 절반 및 하부 절반에서) 도시한다. 이러한 상이한 테일/워터마크 테이블들 중 어느 것을 사용할지를 동적으로 선택하기 위하여, 인덱스 값이 사용된다. 도 4에서, 인덱스를 포함하기 위한 2개의 옵션들이 도시되어 있다. 도 4의 상부 절반에 도시된 제 1 옵션에서, 데이터 필드(data field)(402) 및 인덱스 필드(404)를 포함하는 평문 블록(plaintext block)이 도시되어 있다. 평문 블록(402, 404)은 암호화기(406)에 의해 암호화된다. 결과적인 암호문이 워터마킹된 평문(410)을 발생시키는 화이트박스 해독 유닛(408)에 제공된다. 평문 블록(402, 404) 내의 일부 비트들(404)은 인덱스 값(들)에 대해 반대로 된다. 이러한 비트들(404)은 특정 테일/워터마크 테이블 쪽으로 데이터(402)를 스티어링(steering)하기 위하여 화이트박스 구현에서 사용된다. 이 옵션의 장점은 공격자가 인덱스 정보에 액세스하지 못한다는 사실이다. 한편, 여분의 비트들(404)은 데이터 블록(402)과 함께 송신될 필요가 있다. 송신 및 저장 오버헤드(overhead)가 존재한다. 도 4의 하부 절반에 도시된 제 2 옵션에서, 데이터 블록(452) 및 인덱스 값(들)(454)이 암호화기(456)로의 별도의 입력들로서 도시되어 있다. 인덱스 값(들)(454)은 선택적이다. 결과적인 암호문이 화이트박스 해독 유닛(460)에 제공될 뿐만 아니라, 별도의 입력에서의 인덱스 값들(k)(458)의 시퀀스가 화이트박스 해독 유닛에 제공된다. 워터마킹된 평문(462)은 암호문 및 인덱스 값들(k)에 의존한다. 인덱스는 암호 및 화이트박스 해독 소프트웨어로의 추가적인 입력(454, 458)이다. 이 인덱스는 복제 테일/워터마크 테이블들 중 어느 것을 사용할지를 소프트웨어에 명시적으로 나타낸다. 공격자가 인덱스를 변경하는 경우에, 해독은 실패할 수 있다. 정확한 인덱스의 사용은 또한 이 인덱스에 따른 암호화를 행함으로써 어느 정도 보장된다. 송신 오버헤드가 제거된다. 그러나, 공격자가 워터마크 심볼들이 어디에 삽입되는지를 찾아낼 수 있다. N개의 샘플들 이후에 반복되는 워터마크에 대한 N개의 복제본들이 존재하는 경우에 인덱스가 모드 N(mod N)의 간단한 카운터일 수 있다는 점을 주의하라. 이와 같은 경우에, 시퀀스의 시작만이 한번 시그널링될 필요가 있다.
상이한 해독 소프트웨어 카피들에 대하여, 워터마크 시퀀스(따라서, 상이한 테일 테이블들에 할당된 심볼들)가 상이하다는 점을 주의하라. 각각의 시퀀스는 특정하고, 특정 소프트웨어 카피를 식별한다. 그러므로, 동일한 인덱스 값 시퀀스가 모든 카피들 상에서 사용될지라도, 콘텐트는 상이하게 워터마킹된다.
위치 종속적 워터마크들이 검출될 수 있다. 인덱스 정보의 도움으로 임베딩된 확산-스펙트럼 워터마크는 상당히 로버스트할 수 있다. 공격자가 자신의 변화들을 추가하기 위하여 테일 테이블들을 변경할지라도, 이러한 변화들이 공격자에게 인지되지 않는 워터마크 시퀀스와 상관되지 않을 것이다. 더구나, 원본 콘텐트가 인지되지 않을지라도, 또는 해독된 콘텐트가 잡음을 추가하거나 손실과 함께 압축됨으로써(예를 들어, MPEG/JPEG 압축) 더 변경될지라도, 콘텐트를 해독하는데 사용되는 해독 소프트웨어가 해독된 콘텐트로부터 식별될 수 있다. 검출이 다양한 방식들로, 예를 들어, 상관 검출기를 사용하여 수행될 수 있다.
+1 테이블들 및 -1 테이블들이 더 양호한 안전성을 위해 병합될 수 있다. 위에서, {-1, +1}의 워터마크 심볼이 워터마크 룩업 변환을 테일 테이블에 추가함으로써 임베딩될 수 있다고 가정되었다. 전단사 변환들(예를 들어, 모듈러 가산)이 이 방식으로 안전하게 구현될 수 있지만, 클립핑을 갖는 규칙적인 가산들(예를 들어, 254 및 255가 255로 맵핑되는 것)은 히스토그램 분석 공격(histogram analysis attack)들에 취약하다. 특히, 공격자는 테일 테이블 내의 엔트리들의 분포를 관찰할 수 있다. 공격자가 0 엔트리가 없고 2개의 255 엔트리들이 존재하는 것을 보는 경우에, 상기 공격자는 대응하는 워터마킹 심볼이 +1이라고 결론지을 수 있다. 이것은 도 6의 테이블들(702 및 706)에 도시되어 있다. 2개의 0 엔트리들이 존재하고 255 엔트리가 존재하지 않는 -1에 대해서 유사한 분석이 이루어진다. 이것은 테이블들(704 및 708)에 도시되어 있다. 이것을 극복하기 위하여, 2개의 테일 테이블들, 즉 +1 워터마크 심볼을 갖는 하나의 테일 테이블 및 -1 워터마크 심볼을 갖는 하나의 테일 테이블이 병합된 테이블의 분포를 균일하게 하도록 하나의 긴 테이블(710) 내로 병합된다. 제 1 테이블이 2개의 255개의 엔트리들을 가지고 제 2 테이블이 2개의 0 엔트리들을 가지기 때문에, 모든 엔트리들은 이제 이와 같은 병합된 테이블에서 2회 나타난다. 도 6에서, 2개의 테이블들(706 및 708)은 간단하게 연결되어, 병합된 테이블(710)을 형성하지만; 이 설명이 제공되면, 예를 들어, 병합된 테이블(710)에서 테이블(706 및 708)의 엔트리들을 인터레이싱(interlacing)하는 것을 포함하는 2개의 테이블들을 병합하는 더 복잡한 방식들이 당업자의 범위 내에 존재한다.
부분적인 암호화 및 해독을 적용하는 것이 가능하다. DRM 애플리케이션들에서, 오디오비주얼 콘텐트의 중요한 부분들, 예를 들어, 저주파수 DCT 계수들만을 암호화/워터마킹하는 것이 종종 충분하다. 이 개념은 Lemma 등에 의한 상술된 논문에서 안전한 워터마크 임베딩의 콘텍스트(context)에서 탐구되었다. 해독 프로세스의 속도를 증가시키기 위하여 콘텐트의 중요한 부분들 상에서만 화이트박스 해독 기능을 사용함으로써 화이트박스 해독 구현들에서의 클라이언트-측 워터마킹의 콘텍스트에서 유사한 방법이 취해질 수 있다. 신호를 중요한 부분 및 중요하지 않은 부분으로 분할하는 것은 또한 중요하지 않은 부분들 상에서 압축을 사용하도록 한다. 이와 같은 경우에, 화이트박스 구현에 의해 프로세싱된 부분들은 기저대역일 수 있는 반면, 나머지 부분은 압축될 수 있고, 표준 사이퍼로 암호화/해독될 수 있다.
실시예는 (i) 테이블 룩업들을 기반으로 하고 (ii) 테이블들이 최종 단계에서만 상이한 프로덕트(product)의 2개의 인스턴트화(instantiation)들을 포함한다.
도 5는 실시예를 도시한다. 이 도면에서, 실선 박스들은 시스템 구성요소들을 표시하고, 점선 박스들은 시스템에 저장된 데이터를 표시한다. 상기 도면은 콘텐트의 암호화 프로세싱을 위한 시스템(500) 및 콘텐트를 분배하는 시스템(550)을 도시한다. 시스템(500)은 클라이언트 시스템, 예를 들어, 개인용 컴퓨터, 셋-톱 박스(set-top box), 텔레비전 또는 미디어 플레이어(media player)(예를 들어, DVD 플레이어 또는 mp3 플레이어) 내에 구현될 수 있다. 시스템(550)은 서버 시스템, 예를 들어, 인터넷 서버, 음악 저장소와 같은 온라인 콘텐트 저장소, 디지털 저작권 관리 서버, 디지털 비디오 브로드캐스트(Digital Video Broadcast: DVB) 시스템으로서 구현될 수 있다.
시스템(550)은 콘텐트(564)를 분배할 수 있다. 콘텐트(564)는 예를 들어, 점선 화살표(566)로 표시된 CD 또는 DVD 마스터링 애플리케이션(mastering application) 또는 인터넷 접속 또는 DVB(예를 들어, DVB-T, DVB-S, DVB-H) 브로드캐스팅 접속을 포함할 수 있는 출력(562)을 통하여 분배된다. 시스템(550)은 복수의 상이한 워터마크 패턴들(554)을 제공하는 워터마크 발생기(552)를 포함한다. 워터마크 패턴은 콘텐트에 행해진 변화들의 패턴을 포함할 수 있다. 전형적으로, 오디오/비주얼 콘텐트는 상술된 바와 같이, 예를 들어, 이들이 원본 콘텐트에서 나타날 때의 값들로부터 매우 작은 값을 가산 또는 감산함으로써 약간 변화된다.
시스템(550)은 또한 룩업 테이블들(558)의 복수의 네트워크들을 제공하는 룩업 테이블 발생기(556)를 포함한다. 룩업 테이블들의 네트워크들 각각은 네트워크로 클라이언트들(500) 중 하나에 분배될 수 있다. 클라이언트 시스템(500)에 분배되는 룩업 테이블들의 분배된 네트워크는 콘텐트 데이터의 프로세싱에 사용되도록 클라이언트 시스템에 저장된다. 룩업 테이블 발생기에 의해 발생되는 룩업 테이블들의 네트워크는 결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타내고, 복수의 룩업 테이블들 중 제 1 룩업 테이블의 입력은 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 출력에 의존하며, 상기 제 2 룩업 테이블은 상기 출력을 인코딩함으로써 상기 출력을 난독화하도록 배열되며, 상기 제 1 룩업 테이블은 상기 출력을 디코딩하도록 배열되며, 룩업 테이블들의 복수의 네트워크들 중 상이한 네트워크들에 의해 표현되는 워터마킹 오퍼레이션들은 복수의 워터마크 패턴들 중 상이한 워터마크 패턴들에 대응한다. 실시예에서, 해독 오퍼레이션의 단계 및 워터마킹 오퍼레이션의 단계는 룩업 테이블들 중 적어도 하나에서 결합된다. 예를 들어, 해독 오퍼레이션의 최종적인 단계가 룩업 테이블들 중 하나에서 워터마킹 오퍼레이션의 단계와 결합될 수 있다.
시스템(550)은 룩업 테이블들의 상기 복수의 네트워크들을 복수의 사용자 클라이언트들(500)에 분배하는 제 1 출력(560)을 포함한다. 제 1 출력(560)은 또한 수신된 콘텐트 및 소정의 룩업 방식에 따라 복수의 룩업 테이블들에서 값들을 룩업하여, 콘텐트에 결합된 암호화 및 워터마킹 오퍼레이션을 적용해서 프로세싱된 콘텐트를 획득하는 제어 모듈(512)을 사용자 클라이언트(500)로 분배하는데 사용될 수 있다. 소정의 룩업 방식의 간소화된 예가 룩업 테이블들(504)의 네트워크에서 점선 화살표들에 의해 도시되어 있다. 점선 화살표들은 룩업 테이블의 출력의 적어도 일부가 네트워크 내의 다른 룩업 테이블들 중 적어도 하나의 입력의 적어도 일부를 형성한다는 것을 표시한다. 예를 들어, 제 1 룩업 테이블의 출력 비트들의 제 1 서브셋은 제 2 룩업 테이블로의 입력의 적어도 일부일 수 있고, 제 1 룩업 테이블의 출력 비트들의 제 2 서브셋은 제 3 룩업 테이블로의 입력의 적어도 일부일 수 있다. 제 2 및 제 3 룩업 테이블은 또한 어떤 다른 룩업 테이블(들)로부터 어떤 입력 비트들을 수신할 수 있다. 이 룩업 방식은 제어 모듈(512)에 의해 적용된다.
콘텐트(564), 예를 들어, 라이브 텔레비전 쇼(live television show) 또는 온라인 영화 데이터베이스에 저장된 영화가 출력(562)을 통하여 클라이언트 시스템들(500)로 분배된다. 동일한 콘텐트가 복수의 사용자 클라이언트들 중 다수에 분배되고, 동일한 콘텐트가 룩업 테이블들의 분배된 네트워크들에 따라 복수의 사용자 클라이언트들 중 다수에 의해 상이하게 워터마킹된다.
시스템(500)은 콘텐트의 암호화 프로세싱에 사용된다. 상기 시스템(500)은 콘텐트(556)를 수신하는 입력(502)을 포함한다. 결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타내는 복수의 룩업 테이블들(504)이 시스템(500)에 저장된다. 상기 복수의 룩업 테이블 중 제 1 룩업 테이블(508)의 입력은 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블(510)의 출력에 의존하고, 상기 제 2 룩업 테이블은 상기 출력을 인코딩함으로써 상기 출력을 난독화하도록 배열되며, 상기 제 1 룩업 테이블은 상기 출력을 디코딩하도록 배열된다. 복수의 룩업 테이블들은 룩업 테이블들의 네트워크로 조직될 수 있다. 시스템(500)은 수신된 콘텐트 및 소정의 룩업 방식에 따라 복수의 룩업 테이블들에서 값들을 룩업하여, 콘텐트에 결합된 암호화 및 워터마킹 오퍼레이션들을 적용해서 프로세싱된 콘텐트(516)를 획득하는 제어 모듈(512)을 포함한다. 도시된 실시예에서, 결합된 암호화 및 워터마킹 오퍼레이션은 해독 오퍼레이션, 및 콘텐트에 워터마크를 추가하는 오퍼레이션을 포함한다. 대안적으로 또는 추가적으로, 결합된 암호화 및 워터마킹 오퍼레이션은 암호화 오퍼레이션 및/또는 콘텐트로부터 워터마크를 제거하는 오퍼레이션을 포함할 수 있다. 암호화 오퍼레이션 또는 해독 오퍼레이션 중 적어도 하나 및 워터마크 추가 오퍼레이션 또는 워터마크 제거 오퍼레이션 중 적어도 하나가 결합된 암호화 및 워터마킹 오퍼레이션에서 존재한다.
바람직하게는, 워터마킹 오퍼레이션은 복수의 룩업 테이블들 중 적어도 하나의 테일 테이블에 통합된다. 이것은 테일 테이블에 대한 변화의 최종 결과에 대한 영향이 결정하기가 상대적으로 간단하기 때문에, 실현하기가 가장 용이하다.
복수의 룩업 테이블들은 룩업 테이블들의 네트워크에서 테이블들 중 적어도 하나의 복수의 버전들(518)을 포함할 수 있다. 이 경우에, 제어 모듈은 소정의 인덱스 값(522)에 따라 복수의 버전들 중 적어도 하나의 버전을 선택하는 선택기(520)를 포함하고, 상기 제어 모듈은 상기 복수의 버전들(518) 중 선택된 버전에서 적어도 하나의 값을 룩업하도록 배열된다. 인덱스(522)는 인덱스 발생기에 의해 발생될 수 있다. 인덱스(522)는 또한 시스템(550)에 의해 발생되고 시스템(550)으로부터 수신될 수 있다.
복수의 룩업 테이블들(504), 특히, 워터마킹 오퍼레이션을 구현하는 룩업 테이블들 중에, 워터마크의 적어도 일부를 적용하는 제 1 룩업 테이블(706) 및 워터마크의 적어도 일부를 적용하는 제 2 룩업 테이블(708)이 병합된 테이블(710)에서 병합된다. 병합된 테이블은 적어도 2개의 테이블들의 엔트리들을 포함한다. 적어도 2개의 테이블들 중 적어도 하나(706)는 실질적으로 양의 수의 가산을 포함하는 워터마킹 오퍼레이션을 포함하고, 적어도 2개의 테이블들 중 적어도 하나(708)는 실질적으로 음의 수의 가산을 포함하는 워터마킹 오퍼레이션을 포함한다. 대안적으로, 각각 양 또는 음의 수의 가산 대신에, 각각 1보다 더 작거나 1보다 더 큰 수와의 승산을 적용하는 것이 가능하다. 바람직하게는, 2개의 오퍼레이션들은 서로 반대의 오퍼레이션들이다.
시스템(500)은 개인용 컴퓨터 소프트웨어 애플리케이션, 이동 전화, 스마트폰, PDA, 셋-톱 박스, 디지털 비디오 레코더 또는 재생 디바이스, 또는 임의의 다른 디바이스에서 구현된다.
실시예는 콘텐트를 수신하는 단계; 복수의 룩업 테이블들에 의해 결합된 암호화 및 워터마킹 오퍼레이션을 나타내는 단계; 및 수신된 콘텐트 및 소정의 룩업 방식에 따라 상기 복수의 룩업 테이블들에서 값들을 룩업하여 워터마킹되고 암호로 프로세싱된 콘텐트를 획득하는 단계를 포함하는, 콘텐트의 암호화 프로세싱 방법을 포함한다.
도 7은 시스템(500) 또는 시스템(550) 중 하나 또는 둘 모두를 구현하는데 적합한 하드웨어 구성요소들을 도시한다. 상기 도면은 네트워크 접속, 예를 들어, 인터넷으로의 접속과 같은 통신 포트(communication port)(895), 제거 가능한 저장 매체 판독기/기록기(896)(예를 들어, CD 또는 DVD 플레이어 및 선택적으로 레코더, 또는 플래시 메모리), 콘텐트를 렌더링(rendering)하고/하거나 제어 정보를 사용자에게 제공하는 디스플레이(893), 컴퓨터 소프트웨어를 저장하고 잡다한 데이터를 저장하는 메모리(891), 사용자로부터 입력 명령들을 수신하는 입력(894), 및 여러 하드웨어 구성요소들을 제어하고 콘텐트를 프로세싱하는 프로세서(892)를 도시한다. 메모리(891)는 예를 들어, RAM 메모리, 펌웨어 메모리(firmware memory), 및/또는 하드 디스크 저장 매체를 포함할 수 있다. 메모리(891)는 시스템이 본원에 설명된 임의의 방법을 수행하도록 하는 컴퓨터 명령들을 포함할 수 있다. 통신 포트(895)는 예를 들어, 룩업 테이블 엔트리들, 제어 모듈들, 암호화된 콘텐트, 및/또는 인덱스 값들을 통신하는데 사용될 수 있다. 이와 같은 데이터의 일부들 또는 모두는 대안적으로 제거 가능한 저장 매체(896)를 통해 통신될 수 있다. 해독된 워터마킹된 콘텐트는 디스플레이(893)를 사용하여 렌더링될 수 있다. 예를 들어, 데이터 송신, 암호화, 해독, 및/또는 재생은 입력(894)을 통해 사용자에 의하여 제어될 수 있다. 이와 같은 입력은 원격 제어 디바이스, 키보드(keyboard), 및/또는 포인팅 디바이스(pointing device)를 포함할 수 있다.
본 발명은 또한 본 발명을 실행하도록 적응되는 컴퓨터 프로그램들, 특히 캐리어 상 또는 내의 컴퓨터 프로그램들로 확장된다는 점이 인식될 것이다. 상기 프로그램은 소스 코드(source code), 오브젝트 코드(object code), 부분적으로 컴파일링(compiling)된 형태와 같은 소스 및 오브젝트 코드 중간의 코드의 형태, 또는 본 발명에 따른 방법의 구현에서 사용하는데 적합한 임의의 다른 형태일 수 있다. 이와 같은 프로그램이 많은 상이한 아키텍처 설계들을 가질 수 있다는 점이 또한 인식될 것이다. 예를 들어, 본 발명에 따른 방법 및 시스템의 기능을 구현하는 프로그램 코드가 하나 이상의 서브루틴(subroutine)들로 세분될 수 있다. 이러한 서브루틴들 사이에서 기능들을 분배하는 많은 상이한 방식들이 당업자에게 명백할 것이다. 상기 서브루틴들은 자급형 프로그램을 형성하기 위하여 하나 실행 가능한 파일 내에 함께 저장될 수 있다. 이와 같은 실행 가능한 파일은 컴퓨터 실행 가능한 명령들, 예를 들어, 프로세서 명령들 및/또는 해석기 명령들(예를 들어, 자바 해석기 명령들)을 포함할 수 있다. 대안적으로, 상기 서브루틴들 중 하나 이상 또는 모두가 적어도 하나의 외부 라이브러리 파일(library file)에 저장되고, 정적으로 또는 동적으로, 예를 들어, 실시간으로 메인 프로그램(main program)과 링크될 수 있다. 메인 프로그램은 서브루틴들 중 적어도 하나로의 적어도 하나의 호출을 포함한다. 또한, 서브루틴들은 서로로의 기능 호출들을 포함할 수 있다. 컴퓨터 프로그램 제품과 관련된 실시예는 설명된 방법들 중 적어도 하나의 프로세싱 단계들 각각에 대응하는 컴퓨터 실행 가능한 명령들을 포함한다. 이러한 명령들은 서브루틴들로 세분될 수 있고/있거나, 정적으로 또는 동적으로 링크될 수 있는 하나 이상의 파일들에 저장될 수 있다. 컴퓨터 프로그램 제품과 관련된 또 다른 실시예는 설명된 제품들 및/또는 시스템들 중 적어도 하나의 수단들 각각에 대응하는 컴퓨터 실행 가능한 명령들을 포함한다. 이러한 명령들은 서브루틴들로 세분될 수 있고/있거나, 정적으로 또는 동적으로 링크될 수 있는 하나 이상의 파일들에 저장될 수 있다.
컴퓨터 프로그램의 캐리어는 프로그램을 지닐 수 있는 임의의 엔티티 또는 디바이스일 수 있다. 예를 들어, 캐리어는 ROM, 예를 들어, CD ROM 또는 반도체 ROM과 같은 저장 매체, 또는 자기 기록 매체, 예를 들어, 플로피 디스크 또는 하드 디스크를 포함할 수 있다. 또한, 캐리어는 무선 또는 다른 수단에 의해 전기 또는 광 케이블을 통하여 전달될 수 있는 전기 또는 광 신호와 같은 송신 가능한 캐리어일 수 있다. 프로그램이 이와 같은 신호에 임베딩될 때, 캐리어는 이와 같은 케이블 또는 다른 디바이스 또는 수단으로 구성될 수 있다. 대안적으로, 캐리어는 프로그램이 임베딩되는 집적 회로일 수 있고, 상기 집적 회로는 관련 방법을 수행하거나 관련 방법의 수행에서 사용하도록 적응된다.
상술된 실시예들이 본 발명을 제한하기보다는 오히려 설명하고, 당업자들이 첨부된 청구항들의 범위로부터 벗어남이 없이 대안적인 실시예들을 설계할 수 있을 것이라는 점이 주의되어야 한다. 청구항들에서, 괄호들 사이에 배치된 임의의 참조 기호들은 청구항을 제한하는 것으로 해석되어서는 안될 것이다. 동사 "포함한다" 및 이의 활용형들의 사용은 청구항에서 진술된 요소들 또는 단계들 이외의 요소들 또는 단계들의 존재를 배제하지 않는다. 요소 앞의 관사 "a" 및 "an"은 복수의 이와 같은 요소들의 존재를 배제하지 않는다. 본 발명은 여러 상이한 요소들을 포함하는 하드웨어, 및 적절하게 프로그래밍된 컴퓨터에 의하여 구현될 수 있다. 여러 수단들을 열거한 디바이스 청구항에서, 이러한 수단들 중 여러 개는 하드웨어의 하나이고 동일한 아이템에 의해 구현될 수 있다. 어떤 수단들이 서로 상이한 종속 청구항들에서 재인용된다는 단순한 사실이 이러한 수단들의 조합이 이용될 수 없다는 것을 나타내지는 않는다.
500 : 콘텐트의 암호화 프로세싱을 위한 시스템
504 : 룩업 테이블들 512 : 제어 모듈
550 : 콘텐트를 분배하는 시스템 552 : 워터마크 발생기
554 : 복수의 상이한 워터마크 패턴들 556 : 룩업 테이블 발생기
558 : 룩업 테이블들 564 : 콘텐트

Claims (20)

  1. 콘텐트의 암호화 프로세싱(cryptographic processing)을 위한 시스템(500)에 있어서:
    상기 콘텐트를 수신하는(566) 입력(502);
    결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타내는 복수의 룩업 테이블들(504)로서, 상기 룩업 테이블들이 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고 소정의 룩업 방식에 따라 적용되도록 구성되며, 상기 룩업 방식이 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 워터마킹 오퍼레이션을 포함하는, 상기 복수의 룩업 테이블들(504); 및
    상기 수신된 콘텐트 및 상기 룩업 방식에 따라 상기 복수의 룩업 테이블들에서 값들을 룩업함으로써, 상기 콘텐트에 상기 결합된 암호화 및 워터마킹 오퍼레이션을 적용하여 프로세싱된 콘텐트(516)를 획득하는 제어 모듈(512)을 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템.
  2. 제 1 항에 있어서,
    상기 복수의 룩업 테이블들은:
    상기 암호화 오퍼레이션의 화이트-박스 구현을 나타내는 제 1 복수의 룩업 테이블들을 발생시키고;
    a) 상기 제 1 복수의 룩업 테이블들 내로 상기 워터마킹 오퍼레이션을 통합시키기 위하여 상기 제 1 복수의 룩업 테이블들의 적어도 하나의 룩업 테이블을 변화시켜 상기 결합된 암호화 및 워터마킹 오퍼레이션의 화이트-박스 구현을 나타내는 상기 복수의 룩업 테이블들을 발생시키는 것과,
    b) 상기 제 1 복수의 룩업 테이블들 내로 상기 워터마킹 오퍼레이션을 통합시키기 위하여 상기 제 1 복수의 룩업 테이블들에 적어도 하나의 룩업 테이블을 추가하여 상기 결합된 암호화 및 워터마킹 오퍼레이션의 화이트-박스 구현을 나타내는 상기 복수의 룩업 테이블들을 발생시키는 것 중 어느 하나 또는 둘 모두를 수행하여 발생되는, 콘텐트의 암호화 프로세싱을 위한 시스템.
  3. 제 1 항에 있어서,
    상기 암호화 오퍼레이션은 해독 오퍼레이션을 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템.
  4. 제 1 항에 있어서,
    상기 워터마킹 오퍼레이션은 상기 콘텐트에 워터마크를 추가하는 오퍼레이션을 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템.
  5. 제 1 항에 있어서,
    상기 워터마킹 오퍼레이션은 상기 복수의 룩업 테이블들 중 적어도 하나의 테일 테이블 내에 통합되는, 콘텐트의 암호화 프로세싱을 위한 시스템.
  6. 제 1 항에 있어서,
    상기 복수의 룩업 테이블 내의 룩업 테이블들 중 적어도 하나의 복수의 버전들(518)을 추가로 포함하고,
    상기 제어 모듈은 소정의 인덱스 값(522)에 따라 상기 복수의 버전들 중 적어도 하나의 버전을 선택하는 선택기(520)를 포함하고, 상기 제어 모듈은 선택된 버전에서 적어도 하나의 값을 룩업하도록 구성되고, 상기 워터마킹 오퍼레이션은 상기 버전들의 콘텐트들에 의존하는, 콘텐트의 암호화 프로세싱을 위한 시스템.
  7. 제 6 항에 있어서,
    상기 인덱스 값을 수신하는 인덱스 값 수신 수단을 추가로 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템.
  8. 제 6 항에 있어서,
    상기 수신된 콘텐트에 따라 상기 인덱스 값을 결정하는 인덱스 발생기를 추가로 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템.
  9. 제 1 항에 있어서,
    워터마크의 적어도 제 1 부분을 적용하는 제 1 룩업 테이블(706) 및 상기 워터마크의 적어도 제 2 부분을 적용하는 제 2 룩업 테이블(708)이 병합된 테이블(710)에서 병합되고, 상기 병합된 테이블이 상기 제 1 룩업 테이블 및 상기 제 2 룩업 테이블의 엔트리들을 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템.
  10. 제 9 항에 있어서,
    상기 제 1 룩업 테이블(706)이 제 1 워터마킹 오퍼레이션을 포함하고, 상기 제 2 룩업 테이블(708)이 제 2 워터마킹 오퍼레이션을 포함하고, 상기 제 2 워터마킹 오퍼레이션이 실질적으로 상기 제 1 워터마킹 오퍼레이션의 반대 오퍼레이션을 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템.
  11. 제 1 항에 있어서,
    상기 콘텐트의 암호화 프로세싱을 위한 시스템이 개인용 컴퓨터를 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템.
  12. 콘텐트(564)를 분배하는 시스템(550)에 있어서:
    복수의 상이한 워터마크 패턴들(554)을 제공하는 워터마크 발생기(552); 및
    룩업 테이블들(558)의 복수의 네트워크들을 제공하는 룩업 테이블 발생기(556)를 포함하고, 룩업 테이블들의 상기 복수의 네트워크들 중 룩업 테이블들(504)의 네트워크는 결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타내고, 룩업 테이블들의 상기 네트워크의 룩업 테이블들이 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고, 상기 룩업 테이블들이 소정의 룩업 방식에 따라 적용되도록 구성되며, 상기 룩업 방식이 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 상기 복수의 상이한 워터마크 패턴들 중 적어도 하나에 대응하는 워터마킹 오퍼레이션을 포함하며, 상기 복수의 룩업 테이블들의 네트워크들 중 룩업 테이블들의 각각의 네트워크에 대해, 상기 룩업 테이블들의 네트워크의 상기 워터마킹 오퍼레이션은 룩업 테이블들의 다른 하나의 네트워크들 각각의 상기 워터마킹 오퍼레이션에 대응하는 상기 워터마킹 패턴과는 상이한 워터마킹 패턴에 대응하는, 콘텐트 분배 시스템.
  13. 제 12 항에 있어서,
    복수의 사용자 클라이언트들에게 룩업 테이블들의 상기 복수의 네트워크들을 분배하는 제 1 출력(560)을 추가로 포함하는, 콘텐트 분배 시스템.
  14. 제 13 항에 있어서,
    상기 제 1 출력은 수신된 콘텐트 및 룩업 방식에 따라 룩업 테이블들의 네트워크에서 값들을 룩업함으로써, 수신된 콘텐트에 상기 결합된 암호화 및 워터마킹 오퍼레이션을 적용하여 프로세싱된 콘텐트를 획득하도록 하는 제어 모듈을 상기 사용자 클라이언트들에게 분배하도록 구성되는, 콘텐트 분배 시스템.
  15. 제 13 항에 있어서,
    상기 복수의 사용자 클라이언트들에 콘텐트를 분배하는 제 2 출력(562)을 추가로 포함하고, 상기 콘텐트가 상기 결합된 암호화 및 워터마킹 오퍼레이션을 자신에게 적용하도록 구성되는, 콘텐트 분배 시스템.
  16. 제 15 항에 있어서,
    동일한 콘텐트가 상기 복수의 사용자 클라이언트들 중 다수에게 분배되고;
    상기 동일한 콘텐트가 상기 룩업 테이블들의 분배된 네트워크들에 따라 상기 복수의 사용자 클라이언트들 중 상기 다수에 의해 상이하게 워터마킹되는, 콘텐트 분배 시스템.
  17. 복수의 룩업 테이블들(504)을 포함하는 데이터가 기록된 컴퓨터 판독가능 기록 매체에 있어서:
    상기 복수의 룩업 테이블들(504)은 결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타내고, 상기 룩업 테이블들이 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고 소정의 룩업 방식에 따라 적용되도록 구성되며, 상기 룩업 방식이 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 워터마킹 오퍼레이션을 포함하는, 복수의 룩업 테이블들(504)을 포함하는 데이터가 기록된 컴퓨터 판독가능 기록 매체.
  18. 콘텐트의 암호화 프로세싱 방법에 있어서:
    상기 콘텐트를 수신하는 단계(566);
    결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타내는 단계로서, 룩업 테이블들이 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고 소정의 룩업 방식에 따라 적용되도록 구성되며, 상기 룩업 방식이 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 워터마킹 오퍼레이션을 포함하는, 상기 결합된 암호화 및 워터마킹 오퍼레이션의 화이트-박스 구현을 나타내는 단계; 및
    상기 수신된 콘텐트 및 상기 룩업 방식에 따라 복수의 룩업 테이블들에서 값들을 룩업함으로써, 콘텐트에 상기 결합된 암호화 및 워터마킹 오퍼레이션을 적용하여 프로세싱된 콘텐트(516)를 획득하는 단계를 포함하는, 콘텐트의 암호화 프로세싱 방법.
  19. 콘텐트(564)를 분배하는 방법에 있어서:
    복수의 상이한 워터마크 패턴들(554)을 제공하는 단계; 및
    룩업 테이블들(558)의 복수의 네트워크들을 제공하는 단계로서, 룩업 테이블들의 상기 복수의 네트워크들 중 룩업 테이블들(504)의 네트워크가 결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타내고, 룩업 테이블들의 상기 네트워크의 룩업 테이블들이 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고, 상기 룩업 테이블들이 소정의 룩업 방식에 따라 적용되도록 구성되며, 상기 룩업 방식이 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 상기 복수의 상이한 워터마크 패턴들 중 적어도 하나에 대응하는 워터마킹 오퍼레이션을 포함하며, 상기 복수의 룩업 테이블들의 네트워크들 중 룩업 테이블들의 각각의 네트워크에 대해, 상기 룩업 테이블들의 네트워크의 상기 워터마킹 오퍼레이션은 룩업 테이블들의 다른 하나의 네트워크들 각각의 상기 워터마킹 오퍼레이션에 대응하는 상기 워터마킹 패턴과는 상이한 워터마킹 패턴에 대응하는, 상기 룩업 테이블들(558)의 복수의 네트워크들을 제공하는 단계를 포함하는, 콘텐트 분배 방법.
  20. 프로세서가 제 18 항 또는 제 19 항에 따른 방법을 수행하도록 하는 컴퓨터 실행 가능한 명령들을 포함하는 컴퓨터 프로그램을 기록한 컴퓨터 판독가능 기록 매체.
KR1020107007664A 2007-09-13 2008-09-04 콘텐트의 암호화 프로세싱 KR101545631B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP07116285 2007-09-13
EP07116285.3 2007-09-13
PCT/IB2008/053588 WO2009034504A2 (en) 2007-09-13 2008-09-04 Cryptographic processing of content

Publications (2)

Publication Number Publication Date
KR20100059961A KR20100059961A (ko) 2010-06-04
KR101545631B1 true KR101545631B1 (ko) 2015-08-26

Family

ID=40451028

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107007664A KR101545631B1 (ko) 2007-09-13 2008-09-04 콘텐트의 암호화 프로세싱

Country Status (7)

Country Link
US (1) US8726029B2 (ko)
EP (1) EP2188944B1 (ko)
JP (1) JP5346024B2 (ko)
KR (1) KR101545631B1 (ko)
CN (1) CN101884195B (ko)
CA (1) CA2699042C (ko)
WO (1) WO2009034504A2 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510726B2 (en) 2008-05-23 2013-08-13 Irdeto Canada Corporation System and method for generating white-box implementations of software applications
US8332536B2 (en) * 2009-06-11 2012-12-11 International Business Machines Corporation Content protection continuity through authorized chains of components
EP2388730A1 (en) 2010-05-17 2011-11-23 Nagravision S.A. Method for generating software code
EP2416520A1 (en) * 2010-08-03 2012-02-08 Thomson Licensing Method and system for protecting by watermarking against non-authorised use original audio or video data which are to be presented
US20120088216A1 (en) 2010-10-06 2012-04-12 Yale University Systems and Methods for Monitoring, Evaluation, and Treatment
KR20120042469A (ko) 2010-10-25 2012-05-03 한국전자통신연구원 부가 정보와 암호키 결합을 이용한 콘텐츠 보호 장치 및 그 방법
KR20120072011A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 무결성 검증이 가능한 데이터 암호장치, 복호장치 및 방법
KR101744748B1 (ko) 2011-01-05 2017-06-09 한국전자통신연구원 화이트박스 암호 테이블을 이용한 콘텐츠 보호 장치, 콘텐츠 암호화 및 복호화 장치
US9275199B2 (en) * 2011-06-28 2016-03-01 Link-Busters IP B.V. Method and system for detecting violation of intellectual property rights of a digital file
CN104350504B (zh) * 2012-02-10 2018-06-12 爱迪德技术有限公司 用于软件操作中的程序流的方法和装置
US10333702B2 (en) 2012-03-20 2019-06-25 Irdeto B.V. Updating key information
US9167314B2 (en) * 2012-05-21 2015-10-20 Video Expressions LLC Embedding information in an image
GB2507551A (en) 2012-11-04 2014-05-07 Julian Andrew John Fells Copyright protection by comparing identifiers of first and second electronic content
US9465954B1 (en) * 2013-03-15 2016-10-11 Dataguise Inc. Method and system for tracking masking of data
US20150172050A1 (en) * 2013-12-12 2015-06-18 Nxp B.V. Random data from gnss signals and secure random value provisioning for secure software component implementations
US9576116B2 (en) * 2013-12-26 2017-02-21 Nxp B.V. Secure software components anti-reverse-engineering by table interleaving
US9455833B2 (en) * 2014-04-28 2016-09-27 Nxp B.V. Behavioral fingerprint in a white-box implementation
US9641337B2 (en) * 2014-04-28 2017-05-02 Nxp B.V. Interface compatible approach for gluing white-box implementation to surrounding program
KR20150129459A (ko) * 2014-05-12 2015-11-20 한국전자통신연구원 화이트 박스 암호화 장치 및 그 방법
WO2015176741A1 (de) * 2014-05-19 2015-11-26 Siemens Aktiengesellschaft Container mit einheitlichem look and feel mehrerer applikationen
SG10201405852QA (en) * 2014-09-18 2016-04-28 Huawei Internat Pte Ltd Encryption function and decryption function generating method, encryption and decryption method and related apparatuses
US10461944B2 (en) 2014-09-26 2019-10-29 Irdeto B.V. Challenge-response method and associated computing device
US9639674B2 (en) * 2014-12-18 2017-05-02 Nxp B.V. Using single white-box implementation with multiple external encodings
CN107278357B (zh) 2014-12-24 2020-04-07 皇家飞利浦有限公司 密码系统和方法
JP2016127405A (ja) * 2014-12-26 2016-07-11 株式会社Dnpハイパーテック 暗号化装置
US9516359B2 (en) 2015-04-07 2016-12-06 Divx, Llc Session based watermarking of media content using encrypted content streams
US10505709B2 (en) * 2015-06-01 2019-12-10 Nxp B.V. White-box cryptography interleaved lookup tables
KR101790948B1 (ko) * 2015-10-26 2017-10-27 삼성에스디에스 주식회사 Drm 서비스 제공 장치 및 방법, drm 서비스를 이용한 콘텐츠 재생 장치 및 방법
US10171234B2 (en) * 2015-12-16 2019-01-01 Nxp B.V. Wide encoding of intermediate values within a white-box implementation
GB201522315D0 (en) 2015-12-17 2016-02-03 Irdeto Bv Securing webpages, webapps and applications
US10223511B2 (en) * 2016-03-30 2019-03-05 Nxp B.V. Watermarking input and output of a white-box implementation
US11303975B2 (en) * 2017-06-05 2022-04-12 Comcast Cable Communications, Llc Content segment variant obfuscation
US10140612B1 (en) 2017-12-15 2018-11-27 Clover Network, Inc. POS system with white box encryption key sharing
CN111737689B (zh) * 2020-06-10 2023-07-14 北京奇艺世纪科技有限公司 数据处理方法、处理器、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002101519A2 (en) 2001-06-08 2002-12-19 Cloakware Corporation Method and system for generating sustainable digital watermarks
WO2007105126A2 (en) 2006-03-10 2007-09-20 Koninklijke Philips Electronics N.V. Method and system for obfuscating a cryptographic function

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7770016B2 (en) * 1999-07-29 2010-08-03 Intertrust Technologies Corporation Systems and methods for watermarking software and other media
CA2354470A1 (en) * 2001-07-30 2003-01-30 Cloakware Corporation Active content for secure digital media
US20070121939A1 (en) * 2004-01-13 2007-05-31 Interdigital Technology Corporation Watermarks for wireless communications
US7693297B2 (en) * 2004-08-05 2010-04-06 Xiao-Ping Zhang Watermark embedding and detecting methods, systems, devices and components
US20070220585A1 (en) * 2006-03-01 2007-09-20 Farrugia Augustin J Digital rights management system with diversified content protection process
CN101416215A (zh) * 2006-04-03 2009-04-22 皇家飞利浦电子股份有限公司 使用查找表的水印嵌入
JP5496663B2 (ja) * 2006-07-12 2014-05-21 イルデト・コーポレート・ビー・ヴイ デジタルデータ処理装置の耐改竄性
JP5113169B2 (ja) * 2006-07-12 2013-01-09 イルデト・コーポレート・ビー・ヴイ 暗号関数を難読化する方法およびシステム
WO2008059420A2 (en) * 2006-11-17 2008-05-22 Koninklijke Philips Electronics N.V. Cryptographic method for a white-box implementation
US7970129B2 (en) * 2007-04-19 2011-06-28 Spansion Llc Selection of a lookup table with data masked with a combination of an additive and multiplicative mask

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002101519A2 (en) 2001-06-08 2002-12-19 Cloakware Corporation Method and system for generating sustainable digital watermarks
WO2007105126A2 (en) 2006-03-10 2007-09-20 Koninklijke Philips Electronics N.V. Method and system for obfuscating a cryptographic function

Also Published As

Publication number Publication date
CA2699042A1 (en) 2009-03-19
WO2009034504A3 (en) 2009-06-04
KR20100059961A (ko) 2010-06-04
CN101884195B (zh) 2013-03-06
WO2009034504A2 (en) 2009-03-19
CA2699042C (en) 2017-01-03
JP2010539535A (ja) 2010-12-16
CN101884195A (zh) 2010-11-10
US20100296649A1 (en) 2010-11-25
JP5346024B2 (ja) 2013-11-20
EP2188944B1 (en) 2019-06-12
US8726029B2 (en) 2014-05-13
EP2188944A2 (en) 2010-05-26

Similar Documents

Publication Publication Date Title
KR101545631B1 (ko) 콘텐트의 암호화 프로세싱
US10461930B2 (en) Utilizing data reduction in steganographic and cryptographic systems
US7123718B1 (en) Utilizing data reduction in stegnographic and cryptographic systems
US5687236A (en) Steganographic method and device
WO2009031082A1 (en) Apparatus and methods for transferring digital content
EP2104987A2 (en) Tracing copies of an implementation
JP2001320360A (ja) ストリームの連続性の強化
WO2017117574A1 (en) Systems and methods for presering privacy in distribution of digital of content using private tokens
CN103250372B (zh) 获得控制字以揭示客户端设备标识
TW201811064A (zh) 用於加浮水印於數位內容之使用者單元,用於傳送及用於加浮水印於內容之方法,及用於檢測至少一個浮水印之方法
Prihandoko et al. Deterring traitor using double encryption scheme
KR100434252B1 (ko) 워터마크 생성 및 삽입, 디지털 컨텐츠 및 워터마크추출을 위한 장치
van der Veen et al. Forensic Watermarking in Digital Rights Management
Durand et al. Laundering and Repackaging of Multimedia Content in Content Distribution Systems

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
N231 Notification of change of applicant
LAPS Lapse due to unpaid annual fee