KR20100059961A - 콘텐트의 암호화 프로세싱 - Google Patents
콘텐트의 암호화 프로세싱 Download PDFInfo
- Publication number
- KR20100059961A KR20100059961A KR1020107007664A KR20107007664A KR20100059961A KR 20100059961 A KR20100059961 A KR 20100059961A KR 1020107007664 A KR1020107007664 A KR 1020107007664A KR 20107007664 A KR20107007664 A KR 20107007664A KR 20100059961 A KR20100059961 A KR 20100059961A
- Authority
- KR
- South Korea
- Prior art keywords
- lookup
- lookup tables
- content
- watermarking
- encryption
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 238000003672 processing method Methods 0.000 claims 1
- 241001074639 Eucalyptus albens Species 0.000 description 27
- 230000008569 process Effects 0.000 description 6
- 238000007792 addition Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 238000001228 spectrum Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/106—Enforcing content protection by specific content processing
- G06F21/1063—Personalisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/608—Watermarking
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)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
콘텐트의 암호화 프로세싱을 위한 시스템(500)은 콘텐트를 수신하는(566) 입력(502)을 포함한다. 복수의 룩업 테이블들(504)은 결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타낸다. 상기 룩업 테이블들은 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고, 소정의 룩업 방식에 따라 적용되도록 배열된다. 상기 룩업 방식은 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정한다. 상기 결합된 암호화 및 워터마킹 오퍼레이션은 암호화 오퍼레이션 및 워터마킹 오퍼레이션을 포함한다. 제어 모듈(512)은 상기 수신된 콘텐트 및 상기 룩업 방식에 따라 상기 복수의 룩업 테이블들에서 값들을 룩업함으로써, 상기 콘텐트에 상기 결합된 암호화 및 워터마킹 오퍼레이션을 적용한다.
Description
본 발명은 콘텐트(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은 실시예를 도시한 도면.
도 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)은 변환 을 수행하는 테이블(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에 대해 사용된다. 이 방식으로, 테이블들 및 은 각각의 개별적인 소프트웨어 카피에서 상이하다. y(따라서, y-1)의 임의의 선택은 공격자가 워터마크 테이블들을 제거 또는 교환하지 못하도록 한다. WM 오퍼레이션들은 바람직하게는, 해독된 값들을 단지 약간 변화시키는데, 예를 들어, 최하위 비트를 플립(flip)함으로써 값을 ±1만큼 변화시킨다. 테이블 은 해독 프로세스의 단계(예를 들어, 최종적인 단계)를 수행하는 변환(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 : 콘텐트
504 : 룩업 테이블들 512 : 제어 모듈
550 : 콘텐트를 분배하는 시스템 552 : 워터마크 발생기
554 : 복수의 상이한 워터마크 패턴들 556 : 룩업 테이블 발생기
558 : 룩업 테이블들 564 : 콘텐트
Claims (20)
- 콘텐트의 암호화 프로세싱(cryptographic processing)을 위한 시스템(500)에 있어서:
상기 콘텐트를 수신하는(566) 입력(502);
결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타내는 복수의 룩업 테이블들(504)로서, 상기 룩업 테이블들이 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고 소정의 룩업 방식에 따라 적용되도록 배열되며, 상기 룩업 방식이 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 워터마킹 오퍼레이션을 포함하는, 상기 복수의 룩업 테이블들(504); 및
상기 수신된 콘텐트 및 상기 룩업 방식에 따라 상기 복수의 룩업 테이블들에서 값들을 룩업함으로써, 상기 콘텐트에 상기 결합된 암호화 및 워터마킹 오퍼레이션을 적용하여 프로세싱된 콘텐트(516)를 획득하는 제어 모듈(512)을 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템. - 제 1 항에 있어서,
상기 복수의 룩업 테이블들은:
상기 암호화 오퍼레이션의 화이트-박스 구현을 나타내는 제 1 복수의 룩업 테이블들을 발생시키고;
상기 제 1 복수의 룩업 테이블들의 적어도 하나의 룩업 테이블을 변화시키고/시키거나, 상기 제 1 복수의 룩업 테이블들 내로 상기 워터마킹 오퍼레이션을 통합시키기 위하여 상기 제 1 복수의 룩업 테이블들에 적어도 하나의 룩업 테이블을 추가함으로써, 상기 결합된 암호화 및 워터마킹 오퍼레이션의 화이트-박스 구현을 나타내는 상기 복수의 룩업 테이블들을 발생시킴으로써 발생되는, 콘텐트의 암호화 프로세싱을 위한 시스템. - 제 1 항에 있어서,
상기 암호화 오퍼레이션은 해독 오퍼레이션을 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템. - 제 1 항에 있어서,
상기 워터마킹 오퍼레이션은 상기 콘텐트에 워터마크를 추가하는 오퍼레이션을 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템. - 제 1 항에 있어서,
상기 워터마킹 오퍼레이션은 상기 복수의 룩업 테이블들 중 적어도 하나의 테일 테이블 내에 통합되는, 콘텐트의 암호화 프로세싱을 위한 시스템. - 제 1 항에 있어서,
상기 복수의 룩업 테이블 내의 룩업 테이블들 중 적어도 하나의 복수의 버전들(518)을 추가로 포함하며,
상기 제어 모듈이 소정의 인덱스 값(522)에 따라 상기 복수의 버전들 중 적어도 하나의 버전을 선택하는 선택기(520)를 포함하고, 상기 제어 모듈이 선택된 버전에서 적어도 하나의 값을 룩업하도록 배열되고, 상기 워터마킹 오퍼레이션이 상기 버전들의 콘텐트들에 의존하는, 콘텐트의 암호화 프로세싱을 위한 시스템. - 제 6 항에 있어서,
상기 인덱스 값을 수신하는 입력을 추가로 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템. - 제 6 항에 있어서,
상기 수신된 콘텐트에 따라 상기 인덱스 값을 결정하는 인덱스 발생기를 추가로 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템. - 제 1 항에 있어서,
워터마크의 적어도 제 1 부분을 적용하는 제 1 룩업 테이블(706) 및 상기 워터마크의 적어도 제 2 부분을 적용하는 제 2 룩업 테이블(708)이 병합된 테이블(710)에서 병합되고, 상기 병합된 테이블이 상기 제 1 룩업 테이블 및 상기 제 2 룩업 테이블의 엔트리들을 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템. - 제 9 항에 있어서,
상기 제 1 룩업 테이블(706)이 제 1 워터마킹 오퍼레이션을 포함하고, 상기 제 2 룩업 테이블(708)이 제 2 워터마킹 오퍼레이션을 포함하고, 상기 제 2 워터마킹 오퍼레이션이 실질적으로 상기 제 1 워터마킹 오퍼레이션의 반대 오퍼레이션을 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템. - 제 1 항에 있어서,
상기 콘텐트의 암호화 프로세싱을 위한 시스템이 개인용 컴퓨터를 포함하는, 콘텐트의 암호화 프로세싱을 위한 시스템. - 콘텐트(564)를 분배하는 시스템(550)에 있어서:
복수의 상이한 워터마크 패턴들(554)을 제공하는 워터마크 발생기(552); 및
룩업 테이블들(558)의 복수의 네트워크들을 제공하는 룩업 테이블 발생기(556)를 포함하며, 룩업 테이블들의 상기 복수의 네트워크들 중 룩업 테이블들(504)의 네트워크가 결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타내고, 룩업 테이블들의 상기 네트워크의 룩업 테이블들이 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고, 상기 룩업 테이블들이 소정의 룩업 방식에 따라 적용되도록 배열되며, 상기 룩업 방식이 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 상기 복수의 상이한 워터마크 패턴들 중 적어도 하나에 대응하는 워터마킹 오퍼레이션을 포함하며, 룩업 테이블들의 상이한 네트워크들의 상기 워터마킹 오퍼레이션들이 상기 복수의 상이한 워터마크 패턴들 중 상이한 워터마크 패턴들에 대응하는, 콘텐트 분배 시스템. - 제 12 항에 있어서,
복수의 사용자 클라이언트들에게 룩업 테이블들의 상기 복수의 네트워크를 분배하는 제 1 출력(560)을 추가로 포함하는, 콘텐트 분배 시스템. - 제 13 항에 있어서,
상기 제 1 출력이 수신된 콘텐트 및 룩업 방식에 따라 룩업 테이블들의 네트워크에서 값들을 룩업함으로써, 수신된 콘텐트에 상기 결합된 암호화 및 워터마킹 오퍼레이션을 적용하여 프로세싱된 콘텐트를 획득하도록 하는 제어 모듈을 상기 사용자 클라이언트들에게 분배하도록 배열되는, 콘텐트 분배 시스템. - 제 13 항에 있어서,
상기 복수의 사용자 클라이언트들에 콘텐트를 분배하는 제 2 출력(562)을 추가로 포함하고, 상기 콘텐트가 상기 결합된 암호화 및 워터마킹 오퍼레이션을 자신에게 적용하도록 배열되는, 콘텐트 분배 시스템. - 제 15 항에 있어서,
동일한 콘텐트가 복수의 사용자 클라이언트들 중 다수의 사용자 클라이언트로 분배되고;
상기 동일한 콘텐트가 룩업 테이블들의 분배된 네트워크들에 따라 상기 복수의 사용자 클라이언트들 중 다수의 사용자 클라이언트에 의해 상이하게 워터마킹되는, 콘텐트 분배 시스템. - 복수의 룩업 테이블들(504)에 있어서,
상기 복수의 룩업 테이블들(504)이 결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타내고, 상기 룩업 테이블들이 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고 소정의 룩업 방식에 따라 적용되도록 배열되며, 상기 룩업 방식이 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 워터마킹 오퍼레이션을 포함하는, 복수의 룩업 테이블들. - 콘텐트의 암호화 프로세싱 방법에 있어서:
상기 콘텐트를 수신하는 단계(566);
결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타내는 단계로서, 룩업 테이블들이 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고 소정의 룩업 방식에 따라 적용되도록 배열되며, 상기 룩업 방식이 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 워터마킹 오퍼레이션을 포함하는, 상기 결합된 암호화 및 워터마킹 오퍼레이션의 화이트-박스 구현을 나타내는 단계; 및
상기 수신된 콘텐트 및 상기 룩업 방식에 따라 복수의 룩업 테이블들에서 값들을 룩업함으로써, 콘텐트에 상기 결합된 암호화 및 워터마킹 오퍼레이션을 적용하여 프로세싱된 콘텐트(516)를 획득하는 단계를 포함하는, 콘텐트의 암호화 프로세싱 방법. - 콘텐트(564)를 분배하는 방법에 있어서:
복수의 상이한 워터마크 패턴들(554)을 제공하는 단계; 및
룩업 테이블들(558)의 복수의 네트워크들을 제공하는 단계로서, 룩업 테이블들의 상기 복수의 네트워크들 중 룩업 테이블들(504)의 네트워크가 결합된 암호화 및 워터마킹 오퍼레이션(460)의 화이트-박스 구현을 나타내고, 룩업 테이블들의 상기 네트워크의 룩업 테이블들이 상기 결합된 암호화 및 워터마킹 오퍼레이션의 프로세싱 단계들을 나타내고, 상기 룩업 테이블들이 소정의 룩업 방식에 따라 적용되도록 배열되며, 상기 룩업 방식이 상기 복수의 룩업 테이블들 중 제 1 룩업 테이블의 출력이 상기 복수의 룩업 테이블들 중 제 2 룩업 테이블의 입력을 발생시키는데 사용된다는 것을 규정하며, 상기 결합된 암호화 및 워터마킹 오퍼레이션이 암호화 오퍼레이션 및 상기 복수의 상이한 워터마크 패턴들 중 적어도 하나에 대응하는 워터마킹 오퍼레이션을 포함하며, 룩업 테이블들의 상이한 네트워크들의 상기 워터마킹 오퍼레이션들이 상기 복수의 상이한 워터마크 패턴들 중 상이한 워터마크 패턴들에 대응하는, 상기 룩업 테이블들의 복수의 네트워크들을 제공하는 단계를 포함하는, 콘텐트 분배 방법. - 프로세서가 제 18 항 또는 제 19 항에 따른 방법을 수행하도록 하는 컴퓨터 실행 가능한 명령들을 포함하는, 컴퓨터 프로그램 제품.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07116285.3 | 2007-09-13 | ||
EP07116285 | 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 true KR20100059961A (ko) | 2010-06-04 |
KR101545631B1 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8712041B2 (en) | 2011-01-05 | 2014-04-29 | Electronics And Telecommunications Research Institute | Content protection apparatus and content encryption and decryption apparatus using white-box encryption table |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2304552B1 (en) * | 2008-05-23 | 2019-11-06 | Irdeto B.V. | 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 | 한국전자통신연구원 | 무결성 검증이 가능한 데이터 암호장치, 복호장치 및 방법 |
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 |
WO2013116918A1 (en) * | 2012-02-10 | 2013-08-15 | Irdeto Canada Corporation | Method and apparatus for program flow in software operation |
CN104322002B (zh) * | 2012-03-20 | 2018-03-30 | 爱迪德技术有限公司 | 更新秘钥信息 |
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 | 한국전자통신연구원 | 화이트 박스 암호화 장치 및 그 방법 |
EP3117303B1 (de) * | 2014-05-19 | 2023-10-04 | Siemens Healthcare GmbH | 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 |
CN106796624B (zh) | 2014-09-26 | 2021-05-04 | 爱迪德技术有限公司 | 挑战响应方法、相关联的计算设备和相关联的计算机可读介质 |
US9639674B2 (en) * | 2014-12-18 | 2017-05-02 | Nxp B.V. | Using single white-box implementation with multiple external encodings |
BR112017013588A2 (pt) | 2014-12-24 | 2018-03-06 | Koninklijke Philips Nv | sistema para processamento criptográfico, dois sistemas, unidade de etapa para processamento criptográfico, método de processamento criptográfico, e produto de programa de computador |
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 |
US20160350520A1 (en) * | 2015-05-29 | 2016-12-01 | Nxp, B.V. | Diversifying Control Flow of White-Box Implementation |
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 | 北京奇艺世纪科技有限公司 | 数据处理方法、处理器、电子设备及存储介质 |
Family Cites Families (12)
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 |
CA2350029A1 (en) | 2001-06-08 | 2002-12-08 | Cloakware Corporation | Sustainable digital watermarking via tamper-resistant software |
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 |
US8479016B2 (en) * | 2006-03-10 | 2013-07-02 | Irdeto B.V. | Method and system for obfuscating a cryptographic function |
EP2005385A1 (en) * | 2006-04-03 | 2008-12-24 | Koninklijke Philips Electronics N.V. | Watermark embedding using look-up tables |
BRPI0714242A2 (pt) * | 2006-07-12 | 2013-01-29 | Koninkl Philips Electronics Nv | sistema e mÉtodo para aumentar a resistÊncia Á adulteraÇço de uma unidade de processamento de dados digitais, e, produto de programa de computador |
WO2008007305A2 (en) * | 2006-07-12 | 2008-01-17 | Koninklijke Philips Electronics N.V. | Method and system for obfuscating a gryptographic function |
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 |
-
2008
- 2008-09-04 CA CA2699042A patent/CA2699042C/en not_active Expired - Fee Related
- 2008-09-04 WO PCT/IB2008/053588 patent/WO2009034504A2/en active Application Filing
- 2008-09-04 CN CN2008801133291A patent/CN101884195B/zh not_active Expired - Fee Related
- 2008-09-04 JP JP2010524609A patent/JP5346024B2/ja not_active Expired - Fee Related
- 2008-09-04 KR KR1020107007664A patent/KR101545631B1/ko not_active IP Right Cessation
- 2008-09-04 US US12/677,722 patent/US8726029B2/en active Active
- 2008-09-04 EP EP08807541.1A patent/EP2188944B1/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8712041B2 (en) | 2011-01-05 | 2014-04-29 | Electronics And Telecommunications Research Institute | Content protection apparatus and content encryption and decryption apparatus using white-box encryption table |
Also Published As
Publication number | Publication date |
---|---|
KR101545631B1 (ko) | 2015-08-26 |
CA2699042C (en) | 2017-01-03 |
US20100296649A1 (en) | 2010-11-25 |
JP5346024B2 (ja) | 2013-11-20 |
CN101884195A (zh) | 2010-11-10 |
JP2010539535A (ja) | 2010-12-16 |
WO2009034504A2 (en) | 2009-03-19 |
US8726029B2 (en) | 2014-05-13 |
EP2188944B1 (en) | 2019-06-12 |
EP2188944A2 (en) | 2010-05-26 |
CA2699042A1 (en) | 2009-03-19 |
WO2009034504A3 (en) | 2009-06-04 |
CN101884195B (zh) | 2013-03-06 |
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 | |
JP6017501B2 (ja) | 暗号システム | |
US10691830B2 (en) | Systems and methods for preserving privacy in distribution of digital content using private tokens | |
CN106796624B (zh) | 挑战响应方法、相关联的计算设备和相关联的计算机可读介质 | |
WO2008084433A2 (en) | Tracing copies of an implementation | |
WO2009031082A1 (en) | Apparatus and methods for transferring digital content | |
JP2001320360A (ja) | ストリームの連続性の強化 | |
US9025765B2 (en) | Data security | |
US9660965B2 (en) | Obtaining a control word to reveal a client device identity | |
US7577842B2 (en) | Methods of scrambling and unscrambling a video signal, a system, an encoder, a decoder, a broadcast server, and a data medium for implementing the methods | |
TW201811064A (zh) | 用於加浮水印於數位內容之使用者單元,用於傳送及用於加浮水印於內容之方法,及用於檢測至少一個浮水印之方法 | |
Prihandoko et al. | Deterring traitor using double encryption scheme | |
Jin et al. | Efficient traitor tracing for clone attack in content protection | |
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 |