KR20060123298A - 각각의 암호화 라운드의 코어 암호화 함수를 숨기기 위해순열을 사용하는 블록 암호화 시스템 - Google Patents

각각의 암호화 라운드의 코어 암호화 함수를 숨기기 위해순열을 사용하는 블록 암호화 시스템 Download PDF

Info

Publication number
KR20060123298A
KR20060123298A KR1020067011425A KR20067011425A KR20060123298A KR 20060123298 A KR20060123298 A KR 20060123298A KR 1020067011425 A KR1020067011425 A KR 1020067011425A KR 20067011425 A KR20067011425 A KR 20067011425A KR 20060123298 A KR20060123298 A KR 20060123298A
Authority
KR
South Korea
Prior art keywords
function
execution device
functions
digital signal
signal processing
Prior art date
Application number
KR1020067011425A
Other languages
English (en)
Other versions
KR101079565B1 (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 KR20060123298A publication Critical patent/KR20060123298A/ko
Application granted granted Critical
Publication of KR101079565B1 publication Critical patent/KR101079565B1/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/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
    • 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
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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

Abstract

시스템(600)에서, 서버(610)는 혼돈 형식(obfuscated form)으로 디지털 신호 처리 함수 fto를 실행 장치(620)에 제공한다. 함수 f는 공식 (I)에 대한 신호처리 함수 fi(1≤i≤N)의 함수 캐스케이드를 포함한다. 서버는 2N 가역 순열 pi(1≤i≤2N)의 세트를 선택하며, 공식(II)과 함수적으로 등가인 N 함수들 g의 세트(1≤i≤N)를 계산하며, 공식(III)에 함수적으로 등가인 N-1 함수들 h의 세트(2≤i≤N)를 계산하는 프로세서(612)를 포함한다. 서버는 공식(IV)을 포함하는 실행 장치 함수 캐스케이드를 실행 장치에 제공하는 수단(614) 및 함수들 g1,...,gN를 실행 장치에 제공하는 수단(616)을 포함하며, y1,...,yN는 공식(V)에 대한 함수 파라미터들이다. 실행 장치는 함수 g1,...,gN를 획득하는 수단(626), 및 실행 장치 캐스케이드를 로딩하고 로딩된 실행 장치 함수 캐스케이드를 함수들 g1,...,gN(예컨대,
Figure 112006040668565-PCT00208
)에 적용하는 프로세서(622)를 포함한다.
암호화 라운드, 블록 암호화

Description

각각의 암호화 라운드의 코어 암호화 함수를 숨기기 위해 순열을 사용하는 블록 암호화 시스템{Block ciphering system, using permutations to hide the core ciphering function of each encryption round}
본 발명은 보안 및/또는 개인화 방식으로 실행 장치에 캐스케이드 신호 처리 함수를 제공하기 위한 방법에 관한 것이다. 또한, 본 발명은 보안 및/또는 개인화 방식으로 실행 장치에 캐스케이드 신호 처리 함수를 제공하기 위한 시스템에 관한 것이다. 게다가, 본 발명은 보안 및/또는 개인화 방식으로 제공된 캐스케이드 신호 처리 함수를 실행하기 위한 실행 장치에 관한 것이다.
인터넷은 디지털 콘텐츠에 대한 편리한 유비쿼터스 액세스를 사용자에게 제공한다. 강력한 분배 채널로서의 인터넷의 잠재력 때문에, 많은 CE 제품들은 PC 플랫폼, 즉 인터넷에 대한 우세한 포털을 공동으로 사용하도록 노력한다. 저작권 콘텐츠에 대한 분배 매체로서 인터넷의 사용은 콘텐츠 제공업자를 보호해야 하는 강력한 도전을 유발하였다. 특히, 인터넷은 콘텐츠 제공업자들의 저작권 및 비지니스 모델들을 보증하도록 요구된다. 재생 소프트웨어의 제어는 콘텐츠가 사용될 수 있는 기간 및 조건들을 포함하는 콘텐츠 소유자를 권익을 보호하는 일 방식이다. 특히, PC 플랫폼에 대해, 사용자는 임의의 콘텐츠 보호 메커니즘들을 공격하 고 바이패스하기 위해 콘텐츠 및 제한된 크기의 시간 및 자원들을 액세스하는 하드웨어 및 소프트웨어를 완전하게 제어하는 것이 가정되어야 한다. 결과로서, 콘텐츠 제공업자들은 모든 사용자들이 신뢰될 수 없는 커뮤니티에 대한 적대적 네트워크를 통해 적법한 사용자들에게 콘텐츠를 전송해야 한다. PC들에 분배되는 보호 콘텐츠의 디지털 권리들을 관리하기 위한 일반적인 방법은 디지털 콘텐츠를 암호화하고(예컨대, DES를 사용하여) PC의 하드웨어 디스크상의 소위 라이센스 데이터베이스에 암호해독 키(또는, "라이센스(license)")를 저장하는 것이다. PC상의 디지털 콘텐츠는 전형적으로 마이크로소프트 미디어 플레이어, 리얼의 리얼원 플레이어, 애플의 퀵타임 플레이어와 같은 미디어 플레이어들을 사용하여 렌더링된다. 이러한 플레이어들은 포맷 특정 디코딩을 수행하는 각각의 플러그-인을 각각의 특정 포맷을 위해 로딩할 수 있다. 이들 콘텐츠 포맷들은 AVI, DV, 모션 JPEG, MPEG-1, MPEG-2, MPEG-4, WMV, 오디오 CD, MP3, WMA, WAV, AIFF/AIFC, AU 등을 포함할 수 있다. 플레이어 및 플러그-인 구조는 도 1에 기술되며, 도 1에서 미디어 플레이어(100)는 코어 플레이어(100) 및 여러 포맷-특정 플러그-인(플러그-인들(120, 122, 124)로서 도시됨)을 포함한다. 코어 플레이어(100)는 예컨대 플레이어를 제어하는 사용자 인터페이스를 제공한다. 각각의 플러그-인은 각각의 디코더를 포함한다. 또한, 디코더는 사운드-카드와 같은 렌더링 HW/SW에 디코딩된 콘텐츠를 직접 전송할 수 있거나 또는 이를 추가 처리를 위해 코어 플레이어(10)에 전송할 수 있다. 보안 렌더링을 위해, 특정 포맷으로 콘텐츠를 디코딩할 뿐만아니라 콘텐츠를 해독하는 보안 플러그-인이 사용된다. 이는 도 2에 도시되어 있으며, 도 2에 서 암호화된 콘텐츠는 우선 암호해독기(230)를 통해 공급되며, 그 다음에 암호해독된 콘텐츠는 포맷-특정 디코더(220)를 통해 공급된다. 암호 해독기(230)는 라이센스 데이터베이스(210)로부터 암호해독 키/라이센스를 수신할 수 있다.
암호화에 의존하여 디지털 권리를 관리하는데 있어서 가장 취약성은 키 분배 및 핸들링이다. 재생동안, 소프트웨어 플레이어는 라이센스 데이터베이스로부터 암호해독 키를 검색하고, 암호화된 콘텐츠의 암호해독을 위해 메모리내의 임의의 위치에 암호해독 키를 저장해야 한다. 이는 소프트웨어 플레이어에서 핸들링하는 키를 공격하는 공격자에서 두가지 옵션들을 남기며, 즉 첫째 라이센스 데이터베이스 액세스 함수의 역 엔지니어링은 모든 라이센스 데이터베이스들로부터 자산 키들을 검색할 수 있는 블랙박스 소프트웨어를 야기할 수 있다(즉, 공격자는 소프트웨어 함수의 내부 동작들을 이해하지 못해야 한다). 둘째, 콘텐츠 암호해독동안 사용되는 메모리에 대한 액세스들을 관찰함으로써 자산 키를 검색하는 것이 가능하다.
전형적으로, 디지털 권리 관리 시스템들은 라운드들로서 언급되는 암호화/암호해독 단계들의 시퀀스를 사용하여 블록들로 데이터 스트림을 처리하는 블록 암호들에 기초하여 암호화 기술을 사용한다. i차 라운드의 출력은 i차 라운드의 입력이다. 따라서, N개의 라운드들을 가진 시스템에 있어서, 알고리즘은 함수 캐스케이드
Figure 112006040668565-PCT00001
로서 기술될 수 있으며, 여기서 fi는 라운드 i의 기능을 나타낸다. 대부분의 블록 알고리즘은 파이스텔 네트워크들(Feistel networks)이다. 이 러한 네트워크들에서, 짝수 길이 n의 입력 데이터 블록 x는 보통 L 및 R로서 언급된 두개의 절반 길이, 즉
Figure 112006040668565-PCT00002
로 분할된다. 따라서, 제 1 라운드에 공급된 입력 x는
Figure 112006040668565-PCT00003
로서 주어진다. i차 라운드(i>0)는 함수 fi를 수행하며, fi는 다음과 같이 정의된다.
Figure 112006040668565-PCT00004
여기서 Ki는 i차 라운드에서 사용되는 서브키이며, F는 임의의 라운드 함수이다.
본 발명의 목적은 파이스텔 네트워크들과 같은 캐스케이드 신호 처리 함수들을 양호하게 보호하는데 있다.
본 발명의 목적을 달성하기 위해, 디지털 신호 입력 x를 처리하여 디지털 신호 출력(예컨대,
Figure 112006040668565-PCT00005
)를 산출하기 위해, 다수의 신호 처리 함수들 fi(1≤i≤N)를 포함하는 함수 캐스케이드를 포함하는 디지털 신호 처리 함수 f를 혼돈 형식(obfuscated form)으로 실행 장치에 제공하는 방법에 있어서,
2N 가역 순열들 pi(1≤i≤2N)의 세트를 선택하는 단계;
N 함수들 gi의 세트를 계산하는 단계로서, 상기 gi
Figure 112006040668565-PCT00006
(1≤i≤N)와 함수적으로 등가인, 상기 계산 단계;
N-1 함수들 hi의 세트를 계산하는 단계로서, 상기 hi
Figure 112006040668565-PCT00007
(2≤i≤N)와 함수적으로 등가인, 상기 계산 단계;
Figure 112006040668565-PCT00008
를 포함하는 실행 장치 함수 캐스케이드를 상기 실행 장치에 제공하는 단계로서, 상기
Figure 112006040668565-PCT00009
는 함수 파라미터들(예컨대,
Figure 112006040668565-PCT00010
)인, 상기 제공 단계;
상기 실행 장치에 상기 함수들
Figure 112006040668565-PCT00011
를 제공하는 단계; 및
상기 실행 장치에서, 상기 함수들
Figure 112006040668565-PCT00012
(예컨대,
Figure 112006040668565-PCT00013
)에 상기 실행 장치 함수 캐스케이드에 적용하는 단계를 포함하는, 디지털 신호 처리 함수 f를 제공하는 방법이 제공된다.
본 발명에 따르면, 구성요소 함수들 fi는 gi로서 캡슐화된 형식으로 제공되며, gi
Figure 112006040668565-PCT00014
(1≤i≤N)와 함수적으로 등가된다. 캡슐화를 위해 사용된 함수 pi
Figure 112006040668565-PCT00015
(2≤i≤N)의 곱해진 버전인 hi의 형태로 숨겨진다. 인터리빙된 방식(예컨대, 도 4에 기술된 바와 같이)으로 실행 장치에서 함수들 gi 및 hi을 실행함으로써 함수 캐스케이드의 기능은 fi가 직접 인식되지 않고 달성된다. 특히, 만일 fi가 파이스텔 암호의 라운드 함수를 나타내면, 라운드 함수에 삽입된 라운드 키는 직접 인식가능하지 않다. fi의 혼돈 전달은 보안을 증가시킨다. 실행함수 장치 캐스케이드는 미디어 플레이어의 코어 함수를 형성할 수 있으며, 세트 g1,...,gN는 플레이어가 fN을 포함하여 fN까지 fi를 포함하는 함수 캐스케이드를 실행하도록 한다.
종속항 제 2 항 및 제 3 항은 함수 캐스케이드의 (기본적인) 시작을 보호하는 두개의 각각의 대안 실시예를 기술한다. 청구항 제 2 항의 실시예에서, 실행 장치 함수 캐스케이드는 예컨대
Figure 112006040668565-PCT00016
에서 시작하며, 예컨대
Figure 112006040668565-PCT00017
이다. g1,...,gN을 적용하면, 실행 장치가 fi를 실행하는 방식으로
Figure 112006040668565-PCT00018
을 장치에서 실행되는 함수 시퀀스의 기본 시작으로서 제공한다. 청구항 제 3 항의 실시예에서, 보안은
Figure 112006040668565-PCT00019
을 숨길때 도움이 되는 시작 함수 f0를 함수 캐스케이드를 확장함으로써 증가된다. 함수 캐스케이드는 예컨대
Figure 112006040668565-PCT00020
일 수 있다. 실행 장치 함수 캐스케이드는 함수 S1, 예컨대
Figure 112006040668565-PCT00021
를 포함하며, 상기 S1
Figure 112006040668565-PCT00022
와 함수적으로 등가이다. S1가 f0와의 곱 형식으로
Figure 112006040668565-PCT00023
을 나타내기 때문에,
Figure 112006040668565-PCT00024
는 임의의 메모리 위치를 판독하는 것과 같은 직접 방식으로 실행 장치로부터 검색될 수 없다. 바람직하게, f0는 전역 보안(global secretes)이다.
종속항 제 4 항 및 제 5 항은 종속항 제 2 항 및 제 3 항과 유사한 방식으로 함수 캐스케이드의 (기본적인) 종점을 보호하는 두개의 각각의 대안 실시예이다.
종속항 제 6 항에 따르면, 순열 pi의 선택된 시퀀스는 장치에 고유하다. 이러한 방식에서, 함수 캐스케이드는 혼돈 형식 및 개인화 형식으로 실행 장치에 공급된다. 예컨대, 만일 함수 캐스케이드가 내장된 암호해독 키를 가진 파이스텔 암호를 나타내며, g1,..., gN의 블랙박스 기능을 획득할때 암호 또는 억지 공격이 유발될 수 있다. 이러한 파손된 기능은 임의의 다른 실행 장치가 아니라 단지 대응하는 실행 장치 함수 캐스케이드와 결합하여 작용한다. 이는 성공적인 공격의 충격을 현저하게 제한한다.
종속항 제 7 항에 따르면, 실행 장치 함수 캐스케이드는 프로그램에, 예컨대 미디어 플레이어 또는 미디어 플레이어에 대한 플러그-인의 형태로 삽입된다. 실행 장치는 보안 개인화 소프트웨어를 가진다.
청구항 제 8 항에 따르면, 함수들 g1,...,gN은 프로그램에 대한 플러그-인을 형성한다. 만일 프로그램 그 자체가 플러그-인이면, 함수들 g1,...,gN은 플러그-인에 대한 플러그-인에서 유효하다. 대안으로서, 종속항 제 9 항에 따르면, 함수들 g1,...,gN은 실행 장치 함수 캐스케이드와 동일한 프로그램으로 삽입될 수 있다.
본 발명의 목적을 달성하기 위해, 디지털 신호 입력 x를 처리하여 디지털 신호 출력(예컨대,
Figure 112006040668565-PCT00025
)을 산출하기 위해, 다수의 신호 처리 함수들 fi(1≤i≤N)를 포함하는 함수 캐스케이드를 포함하는 디지털 신호 처리 함수 f를 실행 장치의 프로세서가 실행하도록 동작하는 컴퓨터 프로그램 제품에 있어서,
상기 디지털 신호 처리 함수 f의 실행은,
Figure 112006040668565-PCT00026
를 포함하는 실행 장치 함수 캐스케이드를 로딩하는 단계로서, y1,...,yN가 함수 파라미터들인, 상기 로딩 단계;
함수들 g1,...,gN의 세트를 로딩하는 단계; 및
상기 함수들 g1,...,gN의 세트에 상기 실행 장치 함수 캐스케이드를 적용하는 단계에 의해 이루어지며;
상기 gi
Figure 112006040668565-PCT00027
(1≤i≤N)과 함수적으로 등가이며;
상기 hi
Figure 112006040668565-PCT00028
(2≤i≤N)과 함수적으로 등가이며;
상기 pi는 가역 순열(1≤i≤2N)인, 컴퓨터 프로그램 제품이 제공된다.
본 발명의 목적을 달성하기 위해, 디지털 신호 입력 x를 처리하여 디지털 신호 출력(예컨대,
Figure 112006040668565-PCT00029
)을 산출하기 위해, 다수의 신호 처리 함수들 fi(1≤i≤N)를 포함하는 함수 캐스케이드를 포함하는 디지털 신호 처리 함수 f를 혼돈된 익명 형식으로 고유 인덱스 j에 의해 각각 식별되는 다수의 실행 장치들에 제공하는 방법에 있어서,
2N 가역 순열들 pi(1≤i≤2N)의 세트를 선택하는 단계;
N 함수들 gi의 세트를 계산하는 단계로서, 상기 gi
Figure 112006040668565-PCT00030
(1≤i≤N)와 함수적으로 등가인, 상기 계산 단계;
상기 장치 및/또는 상기 장치의 사용자에 고유한 2N 가역 순열들 pj ,i의 대응 세트 및/또는 시퀀스를 각각의 장치 j에 대해 선택하는 단계;
N-1 함수들 hj ,i의 대응 세트를 각각의 실행 장치 j에 대해 계산하는 단계로서, 상기 hj ,i
Figure 112006040668565-PCT00031
(2≤i≤N)와 함수적으로 등가인, 상기 계산 단계;
Figure 112006040668565-PCT00032
를 포함하는 각각의 실행 장치 함수 캐스케이드
Figure 112006040668565-PCT00033
를 각각의 실행 장치에 제공하는 단계;
각각의 로더 함수
Figure 112006040668565-PCT00034
를 각각의 실행 장치 j에 제공하는 단계로서, 상기 lj ,i
Figure 112006040668565-PCT00035
와 함수적으로 등가이고, 상기 rj ,i
Figure 112006040668565-PCT00036
와 함수적으로 등가인, 상기 제공 단계;
상기 실행 장치에 상기 함수들
Figure 112006040668565-PCT00037
를 제공하는 단계; 및
상기 실행 장치에서,
Figure 112006040668565-PCT00038
를 실행하는 단계를 포함하는, 디지털 신호 처리 함수 f를 제공하는 방법이 제공된다.
함수 fi는 청구항 제 1 항에 기술된 것과 동일한 방식으로 함수
Figure 112006040668565-PCT00039
의 형태로 혼돈된다. 함수들
Figure 112006040668565-PCT00040
는 각각의 장치에 대해 동일하며, 하나의 디폴트/익명 장치에 대응하는 것으로 보일 수 있다. 실행 장치는 장치 특정("개인화(personalized)") 실행 장치 캐스케이드를 가진다. 장치 특정 로더 함수는 실행 장치 캐스케이드에 공급될 수 있는 대응하는 장치 특정 함수들에 각각의 익명 함수들 gi를 변환시키기 위해 사용된다. 로더 함수는 수신되지 않은 순열들 pj ,i의 세트 및 시퀀스에 기초하는 변환 함수 lj ,i 및 rj ,i를 사용한다.
종속항 제 12항에 따르면, 함수 gi는 예컨대 CD-ROM 또는 DVD와 같은 저장 매체 또는 방송을 사용하여 동일한 방식으로 모든 장치들에 공급될 수 있다.
본 발명의 이들 및 다른 양상들은 이하의 기술된 실시예들을 참조하여 더욱 명백해질 것이다.
도 1은 종래의 플러그-인 기반 디코딩의 블록도.
도 2는 종래의 암호해독의 블록도.
도 3은 종래의 통합형 암호해독/디코딩 시스템의 블록도.
도 4는 본 발명에 따른 혼돈화(obfuscating)를 도시한 도면.
도 5는 혼돈의 단순한 예를 기술한 도면.
도 6은 본 발명에 따른 시스템의 블록도.
도 7은 본 발명에 따른 시스템의 실시예를 도시한 도면.
도 8은 본 발명에 따른 익명의 혼돈을 기술한 도면.
도 9는 익명의 혼돈에 대한 다른 실시예를 기술한 도면.
도 3은 본 발명이 사용될 수 있는 종래의 시스템의 블록도를 도시한다. 도 3의 예에서, 콘텐츠(전형으로 오디오 및/또는 비디오 콘텐츠)는 매체(310)상에 분배된다. 매체는 각각의 플레이어에 대해 동일할 수 있다. 매체는 임의의 적절한 타입, 예컨대 오디오 CD, DVD, 고체상태 등일 수 있다. 매체상의 콘텐츠는 바람직하게 파이스텔 암호와 같은 암호화 알고리즘을 사용하여 암호화함으로써 복사방지된다. 저장 매체는 암호해독 키에 관한 정보를 포함할 수 있다. 선택적으로, 저장 매체는 플레이어가 예컨대 인터넷의 서버로부터 정보를 다운로딩하여 정보를 검색할 수 있도록 하는 정보(312)(예컨대, 식별자)를 포함할 수 있다. 암호해독 키는 암호해독 키(326)를 계산하기 위해(324) 키-특정 키(322) 및 정보(312)를 사용하여 보안 모듈(320)에서 생성된다. 암호해독 키는 제 2 모듈(330)에서 수신된다(332). 제 2 모듈(330)은 매체(310)의 콘텐츠(314)를 암호해독하고(334), 디코딩하며(336) 렌더링한다(314).
도 4는 본 발명에 다른 방법을 기술한다. 디지털 신호 처리 함수 f는 혼돈 방식으로 실행 장치에 제공된다. 함수 f는 다수의 신호 처리 함수 fi( 1≤i≤N)를 포함하는 함수 캐스케이드를 포함한다. 예컨대, 함수 캐스케이드의 코어는
Figure 112006040668565-PCT00041
에 의해 형성될 수 있다. 종래의 수학적 표기법, 즉
Figure 112006040668565-PCT00042
이 사용된다는 것을 유의해야 한다. 원리적으로, 함수 캐스케이드는 임의의 디지털 신호 처리 함수일 수 있다. 바람직한 실시예에서, 함수 캐스케이드는 암호를 포함한다. 예컨대, 함수 fi는 파이스텔 암호의 i차 라운드(i>0)를 나타낼 수 있다. 이러한 경우에, fi는 다음과 같이 정의된다.
Figure 112006040668565-PCT00043
여기서, Ki는 i차 라운드에서 사용된 서브키이며, F는 임의의 라운드 함수이다.
본 발명에 따르면, 2N 가역 순열 pi(1≤i≤2N)의 세트가 선택된다. 다음에, N 함수들의 세트 gi가 계산되며, 여기서 gi는 함수적으로
Figure 112006040668565-PCT00044
(1≤i≤N)와 등가이다. 이와 관련하여, 함수적 등가는 만일 gi가 동일한 입력(예컨대, x)에 적용되는 경우에 각각의 허용된 입력값에 대해
Figure 112006040668565-PCT00045
가 입력에 공급될때 동일한 결과가 달성된다는 것을 의미한다. 합성함수
Figure 112006040668565-PCT00046
Figure 112006040668565-PCT00047
가 개별적으로 인식될 수 있다. gi는 블랙박스 함수 을 제공한다. 도 5는 매우 단순한 1차원 함수들에 대한 접근방식을 기술한다. 이러한 예에서,
Figure 112006040668565-PCT00049
. 따라서,
Figure 112006040668565-PCT00050
이다. 이는
Figure 112006040668565-PCT00051
의 블랙박스 함수가 소위 부분 평가를 사용하여 어떻게 달성되는지를 구축한 컴퓨터 컴파일러 분야에 알려져 있다. N.D.Jones, C.K. Gomard 및 P.Sestoft에 의한 제 1장 "부분 평가 및 자동 프로그램 생성(Partial Evaluation and Automatic Program Generation)"은 소위 부분 평가를 사용하여 달성될 수 있다. 이는 여기에서 더 상세히 기술되지 않을 것이다. 디지털 신호 입력 x가 유효 순열을 수행할 수 있도록 예컨대 64 또는 128 비트 블록/벡터의 다차원 파라미터이라는 것이 인식될 것이다. 본 발명에 따르면, N-1 함수들 hi의 세트가 계산되며, 여기서 hi는 2≤i≤N에 대해
Figure 112006040668565-PCT00052
와 함수적으로 등가이다. 도 5의 단순한 예를 사용하면,
Figure 112006040668565-PCT00053
이다. 이들 정의를 사용하면, f2를 숨기는 실행 장치 캐스케이드의 부분은 다음과 같다.
Figure 112006040668565-PCT00054
이러한 수식이 사실상
Figure 112006040668565-PCT00055
와 함수적으로 등가이라는 것이 관찰될 수 있다. 따라서, 이러한 캐스케이드를 실행한 실행 장치는 f2의 명백을 지식을 가지지 않고 f2를 실행한다.
다른 예에서, N=2, f1 및 f2는 각각 다음과 같이 주어진 각각의 매핑 테이블에서 평가된다.
Figure 112006040668565-PCT00056
이러한 예에서, f1는 0 내지 8의 수를 0 내지 8의 수로 변환하는 가역함수이며, 예컨대 값 0은 값 3으로 변환되며 값 1은 값 1로 변환되며 값 2는 값 6으로 변환된다. 다음과 같은 4개의 각각의 순열이 본 예에서 사용된다.
Figure 112006040668565-PCT00057
Figure 112006040668565-PCT00058
이러한 예에 대해 다음과 같은 3개의 역 순열들이 사용된다.
Figure 112006040668565-PCT00059
이들 함수가 주어질때,
Figure 112006040668565-PCT00060
는 다음과 같이 주어진다.
Figure 112006040668565-PCT00061
예컨대, p2는 0을 8로 매핑하며,
Figure 112006040668565-PCT00062
는 8을 7로 매핑한다. 따라서,
Figure 112006040668565-PCT00063
이다. 유사하게,
Figure 112006040668565-PCT00064
는 다음과 같이 주어지며,
Figure 112006040668565-PCT00065
Figure 112006040668565-PCT00066
는 다음과 같이 주어진다.
Figure 112006040668565-PCT00067
실행 장치는
Figure 112006040668565-PCT00068
를 포함하는 실행 장치 함수 캐스케이드를 가지며, 여기서 y1,...,yN은 함수 파라미터들이다. 이는 함수의 시퀀스
Figure 112006040668565-PCT00069
로서 도 4에 도시된다. 전형적인 실행 장치 함수 캐스케이드는
Figure 112006040668565-PCT00070
이다. 게다가, 함수들 g1,...,gN은 실행 장치에 제공된다. 이는 함수들 시퀀스 gN,gN -1, ...,gi(420)로서 도 4에 도시된다. 실행 장치에서, 실행 장치 함수 캐스케이드는 함수들 g1,...,gN 에 적용된다. 이는 예컨대 실행 장치에서 전체 신호처리 함수
Figure 112006040668565-PCT00071
를 제공한다. 그 다음에, 이러한 함수는 디지털 신호 입력 x에 적용될 수 있다.
Figure 112006040668565-PCT00072
와 같은 체인의 중간 부분을 고려하면,
Figure 112006040668565-PCT00073
가 주어진다. 이러한 표현에서 제 1 및 가장 작은 항은 각각의 g 항들에 의해 제거될 것이다. 전체 결과는 실행 장치가 함수들 fi중 일부에 액세스하지 않고 함수 캐스케이드
Figure 112006040668565-PCT00074
를 포함하는 함수를 실행한다. 따라서, 이들 함수들은 혼돈함수이다.
바람직한 실시예에서는, 체인의 시작 및 끝을 처리하는 옵션들이 주어진다. 임의의 추가 측정없이, 실행 장치에서 결과적인 전체 신호 처리 함수는
Figure 112006040668565-PCT00075
일 수 있다. 예컨대, 항 p1
Figure 112006040668565-PCT00076
를 포함하는 실행 장치 함수 캐스케이드를 사용하여 제거될 수 있다. 예컨대,
Figure 112006040668565-PCT00077
이다. 바람직하게, 항
Figure 112006040668565-PCT00078
는 실행 장치에서 보안이 유지된다. 이를 수행하는 바람직한 방식은 추가 신호 처리 함수 f0를 가진 캐스케이드 함수(예컨대,
Figure 112006040668565-PCT00079
)를 확장하는 것이다. 그 다음에, 실행 장치 함수 캐 스케이드는
Figure 112006040668565-PCT00080
, 예컨대
Figure 112006040668565-PCT00081
를 포함하며, S1
Figure 112006040668565-PCT00082
와 함수적으로 등가이다. 이러한 방식에서, 개별 항들
Figure 112006040668565-PCT00083
및 f0은 수신될 필요가 없으나, 단지 곱항
Figure 112006040668565-PCT00084
이 존재한다. 바람직하게, f0가 공개될 필요가 있으나 더이상 공개되지 않는 당사자들로서 알려진 전역 보안이다. 전역 보안 그 자체는 알려져 있으며, 보안 방식에서 글로벌 보안들을 통신하는 방식들이 또한 알려져 있으며 여기에서 추가로 기술되지 않을 것이다.
대응 방식으로 항
Figure 112006040668565-PCT00085
을 처리하기 위한 측정방법이 취해질 수 있다. 예컨대, 실행 장치 함수 캐스케이드는
Figure 112006040668565-PCT00086
를 포함할 수 있다. p2N을 양호하게 보호하기 위해, 추가신호 처리 함수 fN +1을 가진 함수 캐스케이드(예컨대,
Figure 112006040668565-PCT00087
)가 종료될 수 있다. 실행 장치 함수 캐스케이드는
Figure 112006040668565-PCT00088
Figure 112006040668565-PCT00089
를 포함하며, S2
Figure 112006040668565-PCT00090
와 함수적으로 등가이다.
도 6은 본 발명이 사용될 수 있는 시스템을 기술한다. 시스템(600)은 서버(610) 및 적어도 하나의 실행 장치(620)를 포함한다. 서버는 종래의 컴퓨터 플랫폼, 예컨대 웹 서버 또는 파일 서버와 같은 서버로서 사용되는 플랫폼상에서 구현될 수 있다. 서버는 프로세서(612)를 포함한다. 프로세서(612)는 프로그램의 제어하에 동작된다. 프로그램은 내장형 ROM과 같은 내장형 저장장치내의 프로세서에 영구적으로 내장될 수 있으나, 하드 디스크(도시안됨)와 같은 배경 저장장치로부터 로드될 수 있다. 프로그램의 제어하에, 프로세서(612)는 다음과 같은 동작을 수행한다.
ㆍ 2N 가역 순열들, pi (1≤i≤2N)의 세트를 선택한다.
ㆍN 함수들 gi의 세트를 계산하며, 여기서 gi
Figure 112006040668565-PCT00091
(1≤i≤N)와 함수적으로 등가이다.
ㆍ N-1 함수 hi의 세트를 계산하며, 여기서 hi
Figure 112006040668565-PCT00092
(2≤i≤N)와 함수적으로 등가이다.
순열들은 (바람직하게 보안) 저장장치(도시안됨)에 저장될 수 있는 다수의 순열 세트들로부터 선택될 수 있다(예컨대, 임의적으로 또는 의사 임의적으로). 서버는 순열들을 생성하기 위해 적절한 프로그램을 사용할 수 있다. 가열 순열들을 생성하는 방법은 알려져 있으며, 이에 따라 여기에서는 추가로 기술되지 않을 것이다.
부가적으로, 서버는
Figure 112006040668565-PCT00093
을 포함하는 실행 장치 함수 캐스케이드를 실행 장치에 제공하는 수단(614)을 포함하며, 여기서 y1,...,yN는 함수 파라미터들이다. 서버는 임의의 적절한 형식을 이를 수행할 수 있다. 예컨대, 항 hi는 실행 장치(620)의 제조동안 실행 장치의 저장 모듈에 저장될 수 있다. 도 6은 항들이 인터넷(630)을 통해 실행 장치(620)에 직접 다운로드된다는 것을 기술한다. 서버(610)는 실행 장치(620)에 함수들 g1,...,gN을 제공하는 수단(616)을 포함한다. 함수 gi는 각각의 함수 fi을 통합한다. 함수 fi는 디지털 신호 입력 x와 관련하여 선택될 수 있다. 예컨대, 각각의 비디오 제목은 대응 암호화 함수(예컨대, 동일한 암호 및 콘텐츠 특정 키)를 사용하여 선택될 수 있다. 이를 위해, 서버(610)는 콘텐츠(640)를 암호화하고 예컨대 인터넷과 같은 통신 매체를 통해 또는 저장 매체를 통해 분배하는 분배 매체에 암호화된 콘텐츠(642)를 공급하기 위해 프로세서(612)를 제어하는 소프트웨어를 포함할 수 있다.
실행 장치(620)는 서버(610)로부터 함수들 g1,...,gN을 획득하기 위한 수단(626)을 포함한다. 이들 수단은 서버의 수단(616)과 함께 동작하며 여기에서 추가로 기술되지 않을 것이다. 실행 장치(620)는 프로세서(622)를 포함한다. 프로세서는 퍼스널 컴퓨터들로부터 알려진 프로세서 또는 내장형 마이크로프로세서와 같은 임의의 적절한 타입을 가질 수 있다. 프로세서(622)는 프로그램의 제어하에 동작된다. 프로그램은 내장형 ROM과 같은 내장형 저장장치를 사용하여 프로세서 (622)에 영구적으로 내장될 수 있으나, 하드 디스크(도시안됨)와 같은 배경 저장장치로부터 로드될 수 있다. 프로그램의 제어하에, 프로세서(622)는 예컨대
Figure 112006040668565-PCT00094
를 실행함으로써 로드된 실행 장치 함수 캐스케이드를 함수들 g1,...,gN에 공급한다. 그 다음에, 결과적인 신호 처리 함수는 신호 입력 x(예컨대, 매체로부터 수신된 콘텐츠)에 공급될 수 있다. 프로세서(622)는 임의의 적절한 형식으로 실행 장치 함수 캐스케이드를 로드할 수 있다. 예컨대, 캐스케이드는 저장장치를 제조하는 동안 사전에 저장될 수 있으며, 이 결과 직접 메모리 판독 액세스에의 로딩을 감소시킨다. 도 6의 예에서, 실행 장치(620)는 예컨대 인터넷(630)을 통해 또는 매체(650)로부터 캐스케이드(또는 캐스케이드에 의해)를 검색하는 수단(624)을 포함한다. 유사하게, 실행 장치(620)는 매체(650)로부터 암호화된 콘텐츠(652)를 검색할 수 있으며 프로세서(622)를 사용하여 이를 암호해독한다. 프로세서는 암호해독된 콘텐츠를 디코딩할 수 있다.
도 7은 실행 장치 함수 캐스케이드가 프로세서(622)에 의해 실행하기 위해 소프트웨어 프로그램(710)에 내장된 실행 장치(620)에 제공되는 바람직한 실시예를 기술한다. 도 6의 도면부호와 동일한 도 7의 도면부호는 도 6에 사용된 구성요소와 동일한 구성요소를 나타낸다. 소프트웨어 프로그램(710)은 미디어 플레이어와 같이 프로그램을 위해 플러그-인될 수 있다. 따라서, 도 7의 수단(614)은 인터넷(예컨대, 도 7의 구성요소(630))을 통해 이를 플러그-인(710)에 공급할 수 있거나 또는 제조동안 실행 장치(620)에 직접 삽입할 수 있다.
일 실시예에서, 함수들 g1,...,gN는 프로그램(710)을 위한 플러그-인의 형태로 실행 장치(620)에 공급된다. 프로그램(710)이 이미 플러그-인된 경우에, 함수 g1,...,gN는 유효하게 플러그-인된다. 선택적으로, 함수들 g1,...,gN는 함수들 g1,...,gN는 실행 장치 함수 캐스케이드를 적용함으로써 소프트웨어 프로그램(710)에서 g1,...,gN를 구현하여 실행 장치(620)에 제공된다. 이러한 방식에서, 프로그램(710)은 함수 hi 및 gi를 구현한다.
일 실시예에서, 각각의 실행 장치 및/또는 실행 장치의 사용자는 고유하며 고유 식별자(예컨대, 고유번호 j)에 식별된다. 본 발명에 따른 시스템 및 방법에서, 시퀀스 gi 및 hi가 관련된 당사자에 대해 고유하도록 된다. 이는 획득된 식별자에 대해 고유한 2N 가역 순열 pi의 각 세트를 실행 장치의 사용자 및/또는 실행 장치의 고유 식별자 j로부터 획득함으로써 수행될 수 있다. 유사하게, 순열의 동일한 세트를 사용하여, 순열들의 고유 시퀀스가 선택될 수 있다. 기술들(순열들의 다른 세트 또는 순열들의 다른 시퀀스를 선택하는)은 결합될 수 있다. 바람직하게, 서버는 각각의 고유 식별자에 대한 고유 세트/시퀀스를 저장한다(보안 방식으로). 이러한 방식에서, 퍼스널 컴퓨터의 각각의 소프트웨어 미디어 플레이어는 미디어 제목을 암호해독 및/또는 디코딩하기 위해 고유 플러그-인를 가질 수 있다. 매체 그 자체는 고유할 필요가 없다. 암호화된 콘텐츠는 순열들의 고유 세트/시퀀스가 아니라 단지 암호화 함수들에 따른다. 소프트웨어가 식별자에 대응하는지의 여부를 규칙적으로(예컨대, 미디어 플레이어의 시동시에) 검사하고 매칭이 형성되는 경우에 소프트웨어를 실행함으로써, 플레이어 소프트웨어는 그가 속하지 않는 PC상에서 실행될 수 있다. 만일 실수로 해커가 장치-특정 수열들을 획득하면, 이 순열들은 다른 플랫폼이 아니라 다른 암호화(다른 함수 fi를 발생시킴)로 보호되는 콘텐츠에 대해 관련 PC상에서 사용될 수 있다.
신호 처리 함수 캐스케이드가 혼돈 방식으로 실행 장치들에 공급되는 상기 장치 및 방법이 기술된다. 각각의 장치에 대해, 순열들의 동일한 세트/시퀀스가 사용될 수 있거나 또는 장치-특정 세트/순열들이 사용될 수 있다. 이하에서는 각각의 장치에 대해 동일한 혼돈 방식으로 신호 함수 캐스케이드("키(key)")를 분배하고 공통 키를 장치-특정 키로 변환하는 변환 루틴("로더(loader)")을 사용함으로써 장치-특정 세트/시퀀스를 수행하기 위한 바람직한 실시예가 기술된다. "공통 키(common key)"는 이전에 기술된 것과 동일한 방식으로 생성된다. 공통 키는 원리적으로 기준 플레이어 또는 본 실시예에서 임의의 실제 실행 장치에 의해 실행되지 않은 익명의 플레이어를 '언로크(unlock)"할 수 있다. 전술한 바와 같이, 본 방법은 2N 가역 순열들 pi(i≤i≤2N)를 선택하는 단계, 및 N 함수들 gi의 세트를 계산하는 단계를 포함하며, 여기서 gi
Figure 112006040668565-PCT00095
(1≤i≤N)와 함수적으로 등가이다. 부가적으로, 본 방법은 고유 인덱스 j로 각각 식별되는 각각의 실행 장치에 대해 장치 및/또는 장치의 사용자에게 고유한 2N 가역 순열들 pj ,i의 대응 세 트 및/또는 시퀀스를 선택하는 단계를 포함한다. 이러한 세트는 고우 '플레이어(player)'를 각각의 장치게 공급하기 위해 사용된다. 고유 플레이어는 hj ,i
Figure 112006040668565-PCT00096
(2≤i≤N)에 함수적으로 등가인 N-1 함수 hj ,i의 대응 세트를 각각의 실행 장치 j에 대해 계산하고,
Figure 112006040668565-PCT00097
를 포함하는 각각의 실행 장치 함수 캐스케이드
Figure 112006040668565-PCT00098
,를 사용하는 각각의 실행 장치 j를 제공함으로써 형성된다. 그러나, 장치-특정 세트 hj ,i는 세트 hi를 사용하는 기준 플레이어를 '언로크'할 수 있는 혼돈 함수 캐스케이드와 매칭되지 않는다. 이러한 세트/플레이어 세트는 임의의 실행 장치에서 이용가능하게 만들어지지 않는다. 대신에, 실행 장치 j는 특정 로더 함수
Figure 112006040668565-PCT00099
를 가지며, 여기서 lj,i
Figure 112006040668565-PCT00100
와 함수적으로 등가이며, rj ,i
Figure 112006040668565-PCT00101
와 함수적으로 등가이다. 전술한 바와 같이, 각각의 실행 장치는 동일한 함수들 g1,...,gN를 가진다. 그 다음에, 실행 장치는
Figure 112006040668565-PCT00102
를 실행한다. 이러한 공식
Figure 112006040668565-PCT00103
는 익명 키 g1,...,gN를 실행 장치 함수 캐스케이드
Figure 112006040668565-PCT00104
와 최적으로 매칭되는 장치-특정 키로 효과적으로 변환한다.
Figure 112006040668565-PCT00105
인 정의를 사용하면,
Figure 112006040668565-PCT00106
의 i차 성분은
Figure 112006040668565-PCT00107
이다. 앞의 주어진 정의를 사용하면, 이는
Figure 112006040668565-PCT00108
를 제공하며, 이 수식은 또한
Figure 112006040668565-PCT00109
으로 다시 수정될 수 있다. 이는 순열들의 장치-특정 세트/시퀀스를 사용하는 것과 동일하며, 여기서 장치-특정 세트 hj,i는 순열들을 제거한다.
익명의 혼돈 키 및 장치-특정 로더를 사용하는 개념은 도 8에 기술된다. 익명 플레이어 P1-R(810)는 함수 hi를 통합한다. 익명 플레이어 P1-R은 세트 gi의 형식으로 혼돈 신호 처리 함수 fi를 포함하는 대응 키 K-R(812)에 의해 언로크될 수 있다. 익명 플레이어 P1-R은 임의의 당사자에 개시되지 않는다. 대신에, 각각의 당사자에게는 플레이어들 PI-1(830) 및 PI-2(840)으로 도시된 고유한 장치-특정 플레이어가 제공된다. 공통 키 K-R은 모든 당사자들에게 제공된다. 그러나, 이러한 공통 키는 특정 플레이어들과 매칭되지 않는다. 따라서, 각각의 당사자에게는 도면부호 820 및 825로 도시된 장치-특정 키 로더 K-L이 제공된다. 로더(820, 825)는 익명 키 K-R(812)를 장치-특정 키 K-j로 변환하기 위해 사용된다. 이를 위해, 로더 K-Li는 함수 lj ,i 및 rj ,i를 포함한다. 도 8에 기술된 바와 같이, 원리적으로 장치-특정 로더가 사용된다. 도 9에 더 기술된 바와 같이, 사실상, 로더는 동일할 수 있으나 장치-특정 함수들 lj ,i 및 rj ,i로 제공될 수 있다. 도 9의 예에서, 장치-특정 함수들 l1 ,i 및 r1 ,i는 익명 키 K-R(812)를 장치 1에 대한 장치-특정 키(832)로 변환하며, 장치-특정 함수들 l2 ,i 및 r2 ,i는 익명 키(812)를 장치(2)에 대한 키(842)로 변환한다. 그 다음에, 장치-특정 플레이어들(830, 840)은 각각 장치-특정 키 세트들 hl , i(832, 842)를 사용하여 각각 언로크된다. 이들 예에서 용어 '키(key)' 및 '플레이어"는 함수들의 두개의 체인들이 내부 로크되기 때문에 상호 호환가능하다는 것이 인식되어야 한다. 도 4의 예는 체인들을 키들로서 기술한다. 유사한 방식으로, 이는 두개의 인터로킹 플레이어들로서 기술될 수 있다.
익명 플레이어(810)는 단순히 플레이어가 각각의 장치에 대해 동일하기 때문에 각각의 실행 장치에 대해 동일한 콘텐츠를 가진 저장 매체를 통한 분배 및/또는 방송을 통해 각각의 실행 장치에 유리하게 제공될 수 있다는 것을 유의해야 한다. 유사하게, 각각의 실행 장치에 의해 처리될 디지털 신호 입력 x는 각각의 실행 장치에 대해 동일한 콘텐츠를 가진 저장 매체상의 분배 및/또는 방송을 통해 분배될 수 있다. 로더-특정 양상들은 대응 함수들, 즉 hj ,i, lj ,i, 또는 rj ,i의 적어도 하나의 세트들을 가진 장치-특정 콘텐츠를 저장 매체 및/또는 일 대 일 통신 채널을 통해 실행 장치 j에 바람직하게 제공된다. '일 대 일 통신 채널(one-to-one communication channel)'은 임의의 적절한 방식으로 달성될 수 있다. 바람직하게, 서버는 인터넷을 사용하여 보안 링크(예컨대, SSL)를 통해 장치-특정 정보를 다운 로드한다.
앞서 기술된 바와 같이, 함수 f는 파이스텔 암호 네트워크에 기초한 암호해독 함수일 수 있으며, 신호처리 함수들 fi의 각각은 각각의 파이스텔 암호해독 라운드 함수이다. 이러한 경우에, 순열들 pi의 각각은 바람직하게 가역 함수들
Figure 112006040668565-PCT00110
Figure 112006040668565-PCT00111
Figure 112006040668565-PCT00112
가 존재하는 경우에 시퀀스 쌍<x,y>에서 동작하는 함수
Figure 112006040668565-PCT00113
가 파이스텔 변환기인 파이스텔 변환기이며, 여기서
Figure 112006040668565-PCT00114
이고,
Figure 112006040668565-PCT00115
이다. 이들 조건이 충족되면, 함수 fi는 최적으로 숨겨질 수 있다. 실제로, 순열들의 장치-특정 선택들에 대한 넓은 방이 제공될때 많은 파이스텔 변환기들이 존재한다는 것을 알 수 있다. 파이스텔 변환기의 정의는 앞서 주어진 정의들을 사용하여 파이스텔 라운드
Figure 112006040668565-PCT00116
Figure 112006040668565-PCT00117
로서 보여질 수 있다는 개념에 기초하며, 여기서 정의들
Figure 112006040668565-PCT00118
이며,
Figure 112006040668565-PCT00119
이다. 그 다음에,
Figure 112006040668565-PCT00120
이고
Figure 112006040668565-PCT00121
인 것이 유지된다.
본 발명이 컴퓨터 프로그램들, 특히 본 발명을 실시하기에 적합한 캐리어상에 또는 이 캐리어내의 컴퓨터 프로그램들로 확장된다는 것이 인식될 것이다. 프 로그램은 소스 코드, 목적 코드, 코드 중간 소스 및 부분적으로 컴파일된 형식과 같은 목적 코드의 행태, 또는 본 발명에 따른 방법을 구현하는데 적합한 다른 형식을 가질 수 있다. 캐리어는 프로그램을 운반할 수 있는 임의의 엔티티 또는 장치이다. 예컨대, 캐리어는 ROM, 예컨대 CD ROM 또는 반도체 ROM, 또는 자기 기록매체, 예컨대 플로피 디스크 또는 하드 디스크와 같은 저장 매체를 포함할 수 있다. 게다가, 캐리어는 전기 또는 광 케이블 또는 무선 또는 다른 수단에 의해 운반될 수 있는 전기 또는 광 신호와 같은 전송가능 캐리어일 수 있다. 프로그램이 이러한 신호에 삽입될때, 캐리어는 상기 케이블 또는 다른 장치 또는 수단에 의해 구성될 수 있다. 선택적으로, 캐리어는 프로그램이 내장된 집적회로일 수 있으며, 집적회로는 관련 방법을 수행하는데 적합하거나 또는 관련 방법을 수행하기 위해 사용된다.
앞서 언급된 실시예들은 본 발명을 제한하는 것보다 오히려 예시적인 것이며 당업자는 첨부된 청구범위로부터 벗어나지 않고 많은 대안 실시예들을 설계할 수 있다는 것을 유의해야 한다. 청구항들에서, 괄호내에 삽입된 도면부호들은 청구항을 제한하는 것으로 구성되지 않을 것이다. 용어 "포함한다(comprise)"의 사용은 청구항에서 언급된 구성요소들 또는 단계들의 존재를 배제하지 않는다. 단수 엘리먼트는 복수 엘리먼트를 배제하지 않는다. 본 발명은 여러 개별 엘리먼트를 포함하는 하드웨어에 의해 그리고 적절하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 장치 청구항에서, 열거한 여러 수단, 및 이 수단들의 일부는 하드웨어의 하나 및 동일한 구성요소에 의해 구현될 수 있다. 임의의 측정치들이 서로 다른 종속항 들에서 인용되는 단순한 사실은 이들 측정치들의 결합이 유리하게 사용될 수 있다는 것을 지시한다.

Claims (21)

  1. 디지털 신호 입력 x를 처리하여 디지털 신호 출력(예컨대,
    Figure 112006040668565-PCT00122
    )을 산출하기 위해, 다수의 신호 처리 함수들 fi(1≤i≤N)를 포함하는 함수 캐스케이드를 포함하는 디지털 신호 처리 함수 f를 혼돈 형식(obfuscated form)으로 실행 장치에 제공하는 방법에 있어서,
    2N 가역 순열들 pi(1≤i≤2N)의 세트를 선택하는 단계;
    N 함수들 gi의 세트를 계산하는 단계로서, 상기 gi
    Figure 112006040668565-PCT00123
    (1≤i≤N)와 함수적으로 등가인, 상기 계산 단계;
    N-1 함수들 hi의 세트를 계산하는 단계로서, 상기 hi
    Figure 112006040668565-PCT00124
    (2≤i≤N)와 함수적으로 등가인, 상기 계산 단계;
    Figure 112006040668565-PCT00125
    를 포함하는 실행 장치 함수 캐스케이드를 상기 실행 장치에 제공하는 단계로서, 상기
    Figure 112006040668565-PCT00126
    는 함수 파라미터들(예컨대,
    Figure 112006040668565-PCT00127
    )인, 상기 제공 단계;
    상기 실행 장치에 상기 함수들
    Figure 112006040668565-PCT00128
    를 제공하는 단계; 및
    상기 실행 장치에서, 상기 함수들
    Figure 112006040668565-PCT00129
    (예컨대,
    Figure 112006040668565-PCT00130
    )에 상기 실행 장치 함수 캐스케이드를 적용하는 단계를 포함하는, 디지털 신호 처리 함수 f 제공 방법.
  2. 제 1 항에 있어서, 상기 실행 장치 함수 캐스케이드는,
    Figure 112006040668565-PCT00131
    (예컨대,
    Figure 112006040668565-PCT00132
    )를 포함하는, 디지털 신호 처리 함수 f 제공 방법.
  3. 제 1 항에 있어서, 상기 함수 캐스케이드는 다른 신호 처리 함수 f0(예컨대,
    Figure 112006040668565-PCT00133
    )로부터 시작하며, 상기 실행 장치 함수 캐스케이드는
    Figure 112006040668565-PCT00134
    (예컨대,
    Figure 112006040668565-PCT00135
    )를 포함하며, 상기 S1
    Figure 112006040668565-PCT00136
    와 함수적으로 등가인, 디지털 신호 처리 함수 f 제공 방법.
  4. 제 1 항에 있어서, 상기 실행 장치 함수 캐스케이드는
    Figure 112006040668565-PCT00137
    (예컨대,
    Figure 112006040668565-PCT00138
    )을 포함하는, 디지털 신호 처리 함수 f 제공 방법.
  5. 제 1 항에 있어서, 상기 함수 캐스케이드는 다른 신호 처리 함수 fN +1(예컨대,
    Figure 112006040668565-PCT00139
    )에서 종료하며, 상기 실행 장치 함수 캐스케이드는
    Figure 112006040668565-PCT00140
    (예컨대,
    Figure 112006040668565-PCT00141
    )를 포함하며, 상기 S2
    Figure 112006040668565-PCT00142
    와 함수적으로 등가인, 디지털 신호 처리 함수 f 제공 방법.
  6. 제 1 항에 있어서, 상기 실행 장치의 고유 식별자 및/또는 상기 실행 장치의 사용자를 획득하는 단계를 포함하며, 상기 2N 가역 순열들 pi의 세트 및/또는 시퀀스는 상기 획득된 식별자에 대해 고유한, 디지털 신호 처리 함수 f 제공 방법.
  7. 제 1 항에 있어서, 상기 실행 장치 함수 캐스케이드를 상기 실행 장치에 제공하는 상기 단계는, 상기 실행 장치의 프로세서에 의해 실행하는 소프트웨어 프로그램에 삽입된 상기 실행 장치 함수 캐스케이드를 제공하는 단계를 포함하는, 디지털 신호 처리 함수 f 제공 방법.
  8. 제 7 항에 있어서, 상기 실행 장치에 상기 함수들 g1,...,gN을 제공하는 상기 단계는, 상기 프로그램에 대한 플러그-인의 형식으로 상기 함수들 g1,...,gN을 제공하는 단계를 포함하는, 디지털 신호 처리 함수 f 제공 방법.
  9. 제 7 항에 있어서, 상기 실행 장치에 상기 함수 g1,...,gN을 제공하는 상기 단계는, 상기 함수 파라미터들 g1,...,gN에 상기 실행 장치 함수 캐스케이드를 제공함으로써 상기 소프트웨어 프로그램에 상기 함수들 g1,...,gN을 삽입하는 단계를 포함하는, 디지털 신호 처리 함수 f 제공 방법.
  10. 디지털 신호 입력 x를 처리하여 디지털 신호 출력(예컨대,
    Figure 112006040668565-PCT00143
    )을 산출하기 위해, 다수의 신호 처리 함수들 fi(1≤i≤N)를 포함하는 함수 캐스케이드를 포함하는 디지털 신호 처리 함수 f를 실행 장치의 프로세서가 실행하도록 동작하는 컴퓨터 프로그램 제품에 있어서,
    상기 디지털 신호 처리 함수 f의 실행은:
    y1,...,yN가 함수 파라미터들인,
    Figure 112006040668565-PCT00144
    를 포함하는 실행 장치 함수 캐스케이드를 로딩하고,
    함수들 g1,...,gN의 세트를 로딩하며,
    상기 함수들 g1,...,gN의 세트에 상기 실행 장치 함수 캐스케이드를 적용함으로써 이루어지며,
    상기 gi
    Figure 112006040668565-PCT00145
    (1≤i≤N)과 함수적으로 등가이고,
    상기 hi
    Figure 112006040668565-PCT00146
    (2≤i≤N)과 함수적으로 등가이며,
    상기 pi는 가역 순열(1≤i≤2N)인, 컴퓨터 프로그램 제품.
  11. 디지털 신호 입력 x를 처리하여 디지털 신호 출력(예컨대,
    Figure 112006040668565-PCT00147
    )을 산출하기 위해, 다수의 신호 처리 함수들 fi(1≤i≤N)를 포함하는 함수 캐스케이드를 포함하는 디지털 신호 처리 함수 f를 혼돈 형식으로 실행 장치에 제공하며, 서버(610) 및 실행 장치(620)를 포함하는 시스템에 있어서,
    상기 서버는:
    프로그램의 제어하에,
    2N 가역 순열들 pi(1≤i≤2N)의 세트를 선택하고,
    gi
    Figure 112006040668565-PCT00148
    (1≤i≤N)와 함수적으로 등가인, N 함수들 gi의 세트를 계산하며,
    hi
    Figure 112006040668565-PCT00149
    (2≤i≤N)와 함수적으로 등가인, N-1 함수들 hi의 세트를 계산하는 프로세서(612);
    Figure 112006040668565-PCT00150
    를 포함하는 실행 장치 함수 캐스케이드를 상기 실행 장치에 제공하는 수단(614)으로서, 상기
    Figure 112006040668565-PCT00151
    는 함수 파라미터들(예컨대,
    Figure 112006040668565-PCT00152
    )인, 상기 제공 수단(614); 및
    상기 실행 장치에 상기 함수들
    Figure 112006040668565-PCT00153
    를 제공하는 수단(616)을 포함하며,
    상기 실행 장치(620)는:
    상기 서버로부터 상기 함수들
    Figure 112006040668565-PCT00154
    를 획득하는 수단(626); 및
    프로그램의 제어하에, 상기 실행 장치 함수 캐스케이드를 로딩하고 상기 로딩된 실행 장치 함수 캐스케이드를 상기 함수들
    Figure 112006040668565-PCT00155
    (예컨대,
    Figure 112006040668565-PCT00156
    )에 적용하는 프로세서(622)를 포함하는, 디지털 신호 처리 함수 f 제공 시스템.
  12. 제 11 항에 따른 시스템에서 사용하기 위한 실행 장치(620)에 있어서,
    상기 서버로부터 상기 함수들
    Figure 112006040668565-PCT00157
    를 획득하는 수단(626); 및
    프로그램의 제어하에, 상기 함수들
    Figure 112006040668565-PCT00158
    (예컨대,
    Figure 112006040668565-PCT00159
    )에 상기 실행 장치 함수 캐스케이드를 적용하고, 상기 디지털 신호 입력 x에 상기 적용된 장치 함수 캐스케이드를 적용하는 프로세서(622)를 포함하는, 실행 장치.
  13. 디지털 신호 입력 x를 처리하여 디지털 신호 출력(예컨대,
    Figure 112006040668565-PCT00160
    )을 산출하기 위해, 다수의 신호 처리 함수들 fi(1≤i≤N)를 포함하는 함수 캐스케이드를 포함하는 디지털 신호 처리 함수 f를 혼돈된 익명 형식으로 고유 인덱스 j에 의해 각각 식별되는 다수의 실행 장치들에 제공하는 방법에 있어서,
    2N 가역 순열들 pi(1≤i≤2N)의 세트를 선택하는 단계;
    N 함수들 gi의 세트를 계산하는 단계로서, 상기 gi
    Figure 112006040668565-PCT00161
    (1≤i≤N)와 함수적으로 등가인, 상기 계산 단계;
    상기 장치 및/또는 상기 장치의 사용자에 고유한 2N 가역 순열들 pj ,i의 대응 세트 및/또는 시퀀스를 각각의 장치 j에 대해 선택하는 단계;
    N-1 함수들 hj ,i의 대응 세트를 각각의 실행 장치 j에 대해 계산하는 단계로서, 상기 hj ,i
    Figure 112006040668565-PCT00162
    (2≤i≤N)와 함수적으로 등가인, 상기 계산 단계;
    Figure 112006040668565-PCT00163
    를 포함하는 각각의 실행 장치 함수 캐스케이드
    Figure 112006040668565-PCT00164
    를 각각의 실행 장치 j에 제공하는 단계;
    각각의 로더 함수
    Figure 112006040668565-PCT00165
    를 각각의 실행 장치 j에 제공하는 단계로서, 상기 lj ,i
    Figure 112006040668565-PCT00166
    와 함수적으로 등가이고, 상기 rj ,i
    Figure 112006040668565-PCT00167
    와 함수적으로서 등가인, 상기 제공 단계;
    상기 실행 장치에 상기 함수들
    Figure 112006040668565-PCT00168
    를 제공하는 단계; 및
    상기 실행 장치에서,
    Figure 112006040668565-PCT00169
    를 실행하는 단계를 포함하는, 디지털 신호 처리 함수 f 제공 방법.
  14. 제 13 항에 있어서, 상기 각각의 실행 장치에 대해 동일한 콘텐츠를 가진 저장 매체에 대한 분배 및/또는 방송을 통해 상기 g1,...,gN을 상기 각각의 실행 장치에 제공하는 단계를 포함하는, 디지털 신호 처리 함수 f 제공 방법.
  15. 제 14 항에 있어서, 상기 각각의 실행 장치에 대해 동일한 콘텐츠를 가진 저장 매체에 대한 분배 및/또는 방송을 통해 상기 상기 디지털 신호 입력 x를 상기 각각의 실행 장치에 또한 제공하는 단계를 포함하는, 디지털 신호 처리 함수 f 제공 방법.
  16. 제 13 항에 있어서, 일 대 일 통신 채널 및/또는 장치-특정 콘텐츠를 가진 저장 매체를 통해 대응 함수들의 세트, 즉 hj ,i, lj ,i 또는 rj ,i중 적어도 하나를 상기 실행 장치 j에 제공하는 단계를 더 포함하는, 디지털 신호 처리 함수 f 제공 방법.
  17. 제 1 항 또는 제 13 항에 있어서, 상기 함수 f는 파이스텔 암호 네트워크(Feistel network)에 기초한 암호해독 함수이며, 상기 신호 처리 함수들 fi의 각각은 각각의 파이스텔 암호해독 라운드 함수인, 디지털 신호 처리 함수 f 제공 방법.
  18. 제 17 항에 있어서, 상기 순열들 pi의 각각은 가역 함수들
    Figure 112006040668565-PCT00170
    Figure 112006040668565-PCT00171
    Figure 112006040668565-PCT00172
    가 존재하는 경우에 시퀀스 쌍<x,y>에 대해 동작하는 함수
    Figure 112006040668565-PCT00173
    는 파이스텔 변환기인 파이스텔 변환기이며,
    Figure 112006040668565-PCT00174
    이고,
    Figure 112006040668565-PCT00175
    인, 디지털 신호 처리 함수 f 제공 방법.
  19. 디지털 신호 입력 x를 처리하여 디지털 신호 출력(예컨대,
    Figure 112006040668565-PCT00176
    )을 산출하기 위해, 다수의 신호 처리 함수들 fi(1≤i≤N)를 포함하는 함수 캐스케이드를 포함하는 디지털 신호 처리 함수 f를 실행 장치 j내의 프로세서가 실행하도록 동작하는 컴퓨터 프로그램 제품에 있어서,
    상기 디지털 신호 처리 함수 f의 실행은:
    y1,...,yN가 함수 파라미터들인, 상기 실행 장치에 고유하며,
    Figure 112006040668565-PCT00177
    을 포함하는 실행 장치 함수 캐스케이드를 로딩하고,
    로더 함수
    Figure 112006040668565-PCT00178
    를 로딩하고,
    함수들 g1,...,gN의 세트를 로딩하며,
    함수들
    Figure 112006040668565-PCT00179
    의 세트를 산출하는 함수들
    Figure 112006040668565-PCT00180
    의 세트에 상기 로더 함수를 적용하고, 상기 함수들
    Figure 112006040668565-PCT00181
    의 세트에 상기 실행 장치 함수 캐스케이드를 적용함으로써 이루어지며,
    상기 gi
    Figure 112006040668565-PCT00182
    (1≤i≤N)과 함수적으로 등가이고,
    상기 pi는 가역 순열(1≤i≤N)이고,
    상기 hj ,i
    Figure 112006040668565-PCT00183
    (2≤i≤N)과 함수적으로 등가이고,
    상기 lj ,i
    Figure 112006040668565-PCT00184
    와 함수적으로 등가이고,
    상기 rj ,i
    Figure 112006040668565-PCT00185
    와 함수적으로 등가이며,
    상기 pj ,i는 상기 장치 및/또는 상기 장치의 사용자에 대해 고유한 가역 순열들(1≤i≤2N)인, 컴퓨터 프로그램 제품.
  20. 디지털 신호 입력 x를 처리하여 디지털 신호 출력(예컨대, )을 산출하기 위해, 다수의 신호 처리 함수들 fi(1≤i≤N)를 포함하는 함수 캐스케이드를 포함하는 디지털 신호 처리 함수 f를 혼돈된 익명 형식으로 다수의 실행 장치들에 제공하며, 서버 및 다수의 실행 장치들을 포함하는 시스템에 있어서,
    상기 서버는:
    프로그램의 제어하에,
    2N 가역 순열들 pi(1≤i≤2N)의 세트를 선택하고,
    gi
    Figure 112006040668565-PCT00187
    (1≤i≤N)와 함수적으로 등가인, N 함수들 gi의 세트를 계산하고,
    상기 장치 및/또는 상기 장치의 사용자에 고유한 2N 가역 순열들 pj ,i의 대응 세트 및/또는 시퀀스를 각각의 장치 j에 대해 선택하고,
    hj ,i
    Figure 112006040668565-PCT00188
    (2≤i≤N)와 함수적으로 등가인, N-1 함수들 hj,i의 대응 세트를 상기 각각의 실행 장치 j에 대해 계산하고,
    Figure 112006040668565-PCT00189
    를 포함하는 각각의 실행 장치 함 수 캐스케이드
    Figure 112006040668565-PCT00190
    를 각각의 실행 장치 j에 제공하고,
    lj ,i
    Figure 112006040668565-PCT00191
    와 함수적으로 등가이고, rj ,i
    Figure 112006040668565-PCT00192
    와 함수적으로 등가인, 각각의 로더 함수
    Figure 112006040668565-PCT00193
    를 각각의 실행 장치 j에 제공하며,
    상기 함수들 g1,...,gN을 상기 실행 장치에 제공하는, 프로세서를 포함하며,
    상기 각각의 실행 장치 j는:
    상기 서버로부터 상기 함수들 g1,...,gN을 획득하는 수단; 및
    프로그램의 제어하에,
    상기 실행 장치에 대해 고유하며, y1,...,yN가 함수 파라미터들인
    Figure 112006040668565-PCT00194
    를 포함하는 실행 장치 함수 캐스케이드를 로딩하고,
    로더 함수
    Figure 112006040668565-PCT00195
    를 로딩하고,
    함수들
    Figure 112006040668565-PCT00196
    의 세트를 산출하는 함수들
    Figure 112006040668565-PCT00197
    의 세트에 상기 로드 함수를 적용하고,
    함수들
    Figure 112006040668565-PCT00198
    의 세트에 상기 실행 장치 함수 캐스케이드를 적용하는 프로세서를 포함하는, 디지털 신호 처리 함수 f 제공 시스템.
  21. 제 20 항에 따른 시스템에서 사용하기 위한 실행 장치에 있어서,
    상기 실행 장치는 고유 인덱스 j에 의해 식별되며,
    상기 실행 장치는:
    상기 서버로부터 상기 함수들 g1,...,gN을 획득하는 수단; 및
    프로그램의 제어하에,
    상기 실행 장치에 대해 고유하며, y1,...,yN가 함수 파라미터들인
    Figure 112006040668565-PCT00199
    를 포함하는 실행 장치 함수 캐스케이드를 로딩하고,
    로더 함수
    Figure 112006040668565-PCT00200
    를 로딩하고,
    함수들
    Figure 112006040668565-PCT00201
    의 세트를 산출하는 함수들
    Figure 112006040668565-PCT00202
    의 세트에 상기 로드 함수를 적용하며,
    함수들
    Figure 112006040668565-PCT00203
    의 세트에 상기 실행 장치 함수 캐스케이드를 적용하는 프로세서를 포함하며,
    상기 gi
    Figure 112006040668565-PCT00204
    (1≤i≤N)과 함수적으로 등가이고,
    상기 pi는 가역 순열(1≤i≤N)이고,
    상기 hj ,i
    Figure 112006040668565-PCT00205
    (2≤i≤N)과 함수적으로 등가이고,
    상기 lj ,i
    Figure 112006040668565-PCT00206
    와 함수적으로 등가이고,
    상기 rj ,i
    Figure 112006040668565-PCT00207
    와 함수적으로 등가이며,
    상기 pj ,i는 상기 장치 및/또는 상기 장치의 사용자에 대해 고유한 가역 순열들(1≤i≤2N)인, 실행 장치.
KR1020067011425A 2003-12-11 2006-06-09 각각의 암호화 라운드의 코어 암호화 함수를 숨기기 위해 치환들을 사용하는 블록 암호화 시스템 KR101079565B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP03104643.6 2003-12-03
EP03104643 2003-12-11
PCT/IB2004/052607 WO2005060147A1 (en) 2003-12-11 2004-11-30 Block ciphering system, using permutations to hide the core ciphering function of each encryption round

Publications (2)

Publication Number Publication Date
KR20060123298A true KR20060123298A (ko) 2006-12-01
KR101079565B1 KR101079565B1 (ko) 2011-11-04

Family

ID=34684571

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067011425A KR101079565B1 (ko) 2003-12-11 2006-06-09 각각의 암호화 라운드의 코어 암호화 함수를 숨기기 위해 치환들을 사용하는 블록 암호화 시스템

Country Status (10)

Country Link
US (1) US8023651B2 (ko)
EP (1) EP1712032B1 (ko)
JP (2) JP4884976B2 (ko)
KR (1) KR101079565B1 (ko)
CN (1) CN1890914B (ko)
AT (1) ATE509442T1 (ko)
BR (1) BRPI0417450A (ko)
MX (1) MXPA06006464A (ko)
RU (1) RU2370897C2 (ko)
WO (1) WO2005060147A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8023651B2 (en) 2003-12-11 2011-09-20 Irdeto B.V. Block ciphering system, using permutations to hide the core ciphering function of each encryption round
KR20060107282A (ko) * 2005-04-07 2006-10-13 엘지전자 주식회사 데이터 재생방법, 데이터 기록재생 플레이어 및 데이터전송방법
WO2007105126A2 (en) 2006-03-10 2007-09-20 Koninklijke Philips Electronics N.V. Method and system for obfuscating a cryptographic function
JP2007298847A (ja) * 2006-05-02 2007-11-15 Kddi Corp プログラム内データの保護装置、保護方法およびプログラム
EP2044723A2 (en) * 2006-07-12 2009-04-08 Koninklijke Philips Electronics N.V. Verifying authenticity of an execution environment
JP5496880B2 (ja) * 2007-05-22 2014-05-21 イルデト・コーポレート・ビー・ヴイ データセキュリティ
EP2173056A1 (fr) * 2008-09-04 2010-04-07 Gemplus Procédé de contre-mesure dans un composant électronique mettant en ouvre un algorithme de cryptographie à clef secrète
EP2393292A1 (en) * 2010-06-01 2011-12-07 Nagravision S.A. A method and apparatus for decrypting encrypted content
EP2405650A1 (en) * 2010-07-09 2012-01-11 Nagravision S.A. A method for secure transfer of messages
US9111072B1 (en) 2011-08-23 2015-08-18 Tectonic Labs, LLC Anti-reverse engineering unified process
MX343892B (es) * 2012-12-21 2016-11-28 Koninklijke Philips Nv Dispositivo de computo configurado con una red de tablas.
CN103595539B (zh) * 2013-11-26 2016-08-24 南开大学 保留格式的数值型个人识别信息的加密方法
CN106031079B (zh) * 2013-12-20 2019-10-11 皇家飞利浦有限公司 加密算法中的运算符提升
US9405919B2 (en) * 2014-03-11 2016-08-02 Qualcomm Incorporated Dynamic encryption keys for use with XTS encryption systems employing reduced-round ciphers
US10184974B2 (en) * 2015-09-22 2019-01-22 Raytheon Company Systems and methods for determining whether a circuit is operating properly
RU2708439C1 (ru) * 2015-12-15 2019-12-06 Конинклейке Филипс Н.В. Вычислительное устройство и способ
CN107517206A (zh) * 2017-08-18 2017-12-26 北京北信源软件股份有限公司 一种安全通信的方法、装置、可读介质和存储控制器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2582174B1 (fr) * 1985-05-15 1990-03-09 Thomson Csf Dispositif de chiffrement par substitutions-permutations
JP3463963B2 (ja) 1994-04-28 2003-11-05 日本電信電話株式会社 ソフトウェア解析保護方法
US5699512A (en) 1994-04-28 1997-12-16 Nippon Telegraph And Telephone Corp. Software analysis protection method for changing the software pattern on the memory of a user terminal
US5838794A (en) * 1996-01-11 1998-11-17 Teledyne Electronic Technologies Method and apparatus for inter-round mixing in iterated block substitution systems
US5949884A (en) * 1996-11-07 1999-09-07 Entrust Technologies, Ltd. Design principles of the shade cipher
CN1260055A (zh) 1997-06-09 2000-07-12 联信公司 用于提高软件安全性的模糊技术
JP3466204B2 (ja) * 1997-07-29 2003-11-10 ルーセント テクノロジーズ インコーポレーテッド 強化変換を使用する強化cmea用の方法および装置
EP1062755A2 (en) * 1997-08-08 2000-12-27 Jonathan Stiebel New operation for key insertion with folding
JP2001067270A (ja) 1999-08-27 2001-03-16 Nippon Telegr & Teleph Corp <Ntt> コンテンツ共有管理システムおよびコンテンツ保護方法およびこの方法を記録した記録媒体
CA2327911A1 (en) 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
US8023651B2 (en) 2003-12-11 2011-09-20 Irdeto B.V. Block ciphering system, using permutations to hide the core ciphering function of each encryption round

Also Published As

Publication number Publication date
MXPA06006464A (es) 2006-08-23
RU2006120479A (ru) 2007-12-27
JP5453367B2 (ja) 2014-03-26
KR101079565B1 (ko) 2011-11-04
BRPI0417450A (pt) 2007-04-10
WO2005060147A1 (en) 2005-06-30
CN1890914B (zh) 2011-07-27
CN1890914A (zh) 2007-01-03
RU2370897C2 (ru) 2009-10-20
EP1712032B1 (en) 2011-05-11
JP2012037904A (ja) 2012-02-23
US8023651B2 (en) 2011-09-20
JP2007514193A (ja) 2007-05-31
EP1712032A1 (en) 2006-10-18
JP4884976B2 (ja) 2012-02-29
US20080285744A1 (en) 2008-11-20
ATE509442T1 (de) 2011-05-15

Similar Documents

Publication Publication Date Title
KR101079565B1 (ko) 각각의 암호화 라운드의 코어 암호화 함수를 숨기기 위해 치환들을 사용하는 블록 암호화 시스템
KR101226167B1 (ko) 암호 함수 모호화 방법 및 시스템
JP5688528B2 (ja) 入力に依存する符号化を用いたホワイトボックス暗号システム
JP5249053B2 (ja) データ処理システムの完全性
JP5599728B2 (ja) ホワイトボックス実装
JP5355554B2 (ja) 暗号用鍵データの更新
JP6017501B2 (ja) 暗号システム
JP2010515945A (ja) 実装のコピーの追跡
CN101536398A (zh) 用于白盒实现的加密方法
JP2014207717A (ja) 指数難読化
JP5496880B2 (ja) データセキュリティ
KR20000055719A (ko) 디지탈 데이터 파일 암호화 방법

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141008

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151006

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee