KR101226167B1 - 암호 함수 모호화 방법 및 시스템 - Google Patents

암호 함수 모호화 방법 및 시스템 Download PDF

Info

Publication number
KR101226167B1
KR101226167B1 KR1020077012027A KR20077012027A KR101226167B1 KR 101226167 B1 KR101226167 B1 KR 101226167B1 KR 1020077012027 A KR1020077012027 A KR 1020077012027A KR 20077012027 A KR20077012027 A KR 20077012027A KR 101226167 B1 KR101226167 B1 KR 101226167B1
Authority
KR
South Korea
Prior art keywords
tables
function
configuration
execution device
group operator
Prior art date
Application number
KR1020077012027A
Other languages
English (en)
Other versions
KR20070070252A (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 KR20070070252A publication Critical patent/KR20070070252A/ko
Application granted granted Critical
Publication of KR101226167B1 publication Critical patent/KR101226167B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Storage Device Security (AREA)
  • Facsimile Transmission Control (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

시스템(300)에서, 서버(310)는 모호화된 형태로 실행 장치에 암호 함수(F)를 제공한다. 함수(F)는 아벨군 연산자(
Figure 112007038897859-pct00315
)를 사용하여 다수의 매핑 테이블들(
Figure 112007038897859-pct00316
)의 출력을 구성한다. 프로세서(312)는
Figure 112007038897859-pct00317
Figure 112007038897859-pct00318
이고 테이블들(
Figure 112007038897859-pct00319
)을 형성하도록 테이블들(O 및 C)을 선택하고, 여기서
Figure 112007038897859-pct00320
에 대해, 각각의 테이블(
Figure 112007038897859-pct00321
)은 각각의 대응 테이블(T,j)을 나타내고 적어도 하나의 테이블(
Figure 112007038897859-pct00322
)은 T01 및 O의 아벨 지수를 통하여 형성되고, 적어도 하나의 테이블(
Figure 112007038897859-pct00323
)은 C를 포함하는 아벨 지수를 통하여 형성된다. 수단(314)은 테이블들(
Figure 112007038897859-pct00324
)을 실행 장치에 제공하기 위하여 사용된다. 실행 장치(320)는 테이블들을 수신하기 위한 수단(324) 및 테이블들(
Figure 112007038897859-pct00325
)의 아벨 지수에 의해 암호 함수(F)에 등가인 함수인 함수(F')를 형성하기 위한 프로세서(322)를 포함한다.
아벨군, 암호 함수, 모호화

Description

암호 함수 모호화 방법 및 시스템{METHOD AND SYSTEM FOR OBFUSCATING A CRYPTOGRAPHIC FUNCTION}
본 발명은 직렬 암호 함수를 모호화(obfuscating)하는 방법에 관한 것이다. 본 발명은 또한 모호화된 방식으로 직렬 암호 함수를 실행 장치에 공급하기 위한 시스템에 관한 것이다. 본 발명은 모호화된 방식으로 제공된 직렬 암호 함수를 실행하기 위한 실행 장치에 관한 것이다.
인터넷은 사용자들에게 디지털 콘텐트에 대한 편리한 유비쿼터스 액세스를 제공한다. 강력한 분배 채널로서 인터넷의 잠재력으로 인해, 많은 CE 제품들은 인터넷에 직접 액세스하거나 PC 플랫폼 - 인터넷에 대한 주 포탈 -과 상호작용하도록 하기 위하여 노력한다. CE 제품들은 디지털 셋톱 박스들, 디지털 TV들, 게임 콘솔들, PC들, 및 더욱 더 PDA들, 이동 전화들, 이동 저장장치와 같은 휴대용 장치들, 및 애플사의 iPod와 같은 렌더링 장치들을 포함한다. 저작권 콘텐트에 대한 분배 매체로서 인터넷의 사용은 콘텐트 제공자의 이익들을 보호하기 위한 강제적인 도전을 생성한다. 특히, 이것은 콘텐트 제공자들의 저작권들 및 비즈니스 모델을 보장하기 위하여 요구된다. 점점, CE 플랫폼들은 적당한 소프트웨어로 로딩된 프로세서를 사용하여 동작된다. 상기 소프트웨어는 오디오 및/또는 비디오와 같은 디지털 콘텐트의 렌더링(재생)에 대한 기능의 주요 부분을 포함할 수 있다. 재생 소프트웨어의 제어는 콘텐트가 사용될 수 있는 기간들 및 조건들을 포함하는 콘텐트 소유자의 이익들을 강화하기 위한 한가지 방법이다. 종래 많은 CE 플랫폼들(PC 및 PDA 제외)이 비공개적으로 사용되고, 오늘날 점점 더 많은 플랫폼들이 적어도 부분적으로 공개된다. 특히 PC 플랫폼에 대해, 몇몇 사용자들은 임의의 콘텐트 보호 메커니즘들을 공격 및 바이패스하기 위하여 콘텐트 및 다량의 시간 및 리소스들에 액세스를 제공하는 하드웨어 및 소프트웨어를 통하여 완전한 제어를 갖는다고 가정할 수 있다. 결과적으로, 콘텐트 제공자들은 모든 사용자들을 신뢰할 수 없는 공동체에 대한 적대적 네트워크를 통해 합법적인 사용자들에게 콘텐트를 전달하여야 한다. CE 플랫폼들에 분배된 보호 콘텐트에 대한 디지털 저작권 관리에서의 일반적인 접근법은 디지털 콘텐트를 암호화(encrypt)(예를 들어 DES 또는 AES를 사용)하고 소위 라이센스 데이터베이스(PC에 대해, 라이센스 데이터베이스는 통상적으로 PC의 하드 디스크 상에 저장됨)에 복호화(decryption) 키(또는 "라이센스")를 저장하는 것이다. 암호화에 의존하는 디지털 저작권 관리의 가장 큰 취약성은 키 분배 및 처리이다. 재생을 위하여, 소프트웨어 플레이어는 라이센스 데이터베이스로부터 디스크립션 키를 검색해야 하고, 그 다음 암호화된 콘텐트의 복호화를 위하여 메모리내 임의의 장소에 이 복호화 키를 저장하여야 한다. 이것은 소프트웨어 플레이어의 키 처리 공격을 위해 공격자에게 두 개의 옵션을 제공한다; 첫째, 라이센스 데이터베이스 액세스 기능의 역 엔지니어링은 모든 라이센스 데이터베이스로부터 애셋(asset) 키들을 검색할 수 있는 블랙박스 소프트웨어(즉, 공격자는 소프트웨어 기능의 내부 작업을 이해할 필요가 없음)를 유발시킨다. 둘째, 콘텐트 복호화 동안 사용된 메모리에 대한 액세스들의 관찰에 의해, 애셋 키를 검색하는 것이 가능하다.
통상적으로, 디지털 저작권 관리 시스템들은 라운드(round)라 불리는 일련의 암호화/복호화 단계들을 사용하여 데이터 스트림을 블록들로 처리하는 블록 암호들을 바탕으로 하는 암호화 기술을 사용한다. 각각의 라운드 동안, 라운드 지정 기능은 수행된다. 라운드 지정 기능은 라운드 지정 서브 키의 제어하에서 실행되는 동일한 라운드 기능을 바탕으로 할 수 있다. 많은 암호화 시스템들에서, 라운드 기능은 기능 영역의 상이한 부분들에 대한 매핑 테이블들을 사용하여 지정된다. 비록 명확한 테이블들이 사용되지 않지만, 그럼에도 불구하고 종종 테이블들은 암호화/복호화 기능들의 소프트웨어의 효율적인 실행을 위한 기능 영역의 상이한 부분들을 위하여 사용된다. 컴퓨터 코드는 기능의 범위 값으로 테이블 값들을 액세스하거나 결합한다. 사용자 지정일 수 있는 분배 키들 대신, 그것은 암호화 또는 복호화 알고리즘들을 위한 키들 대신 사용자 지정 알고리즘들을 분배하는 것이 보다 흥미롭다. 이들 알고리즘들, 종종 기능들(매핑들)은 키와 같은 엘리먼트들을 재설계하거나 이에 대한 재계산을 방지하기 위하여 모호화된다(숨겨진다). 컴퓨터들에서, 몇몇 컴퓨터 코드와 수반되는 테이블들은 종종 이들 기능들을 나타낸다.
본 발명의 목적은 파이스텔 네트워크(Feistel network)와 같은 직렬 암호 기능의 보다 우수한 보호를 나타내는 형태의 방법, 시스템 및 실행 장치를 제공하는 것이다.
본 발명의 목적에 부합하기 위하여, 키형 정보를 각각 가지며 도메인(D)의 각 부분(Di)에서 동작하는 다수의 비선형 매핑 테이블들 Ti(0≤i≤n;n≥1)을 사용하여 미리 결정된 도메인(D)으로부터의 입력(x)을 미리 결정된 도메인(D)에서 출력(y)으로 암호적으로 변환시키는 암호 함수(F)를 모호화하는 방법은, 즉 아벨군 그룹(Abelian group) 연산자(
Figure 112010068281910-pct00001
)를 사용하여 매핑 테이블들의 출력을 구성(예를 들어,
Figure 112010068281910-pct00002
)하는 상기 함수(F)를 모호화하는 방법은,
Figure 112007038897859-pct00003
이도록 테이블 O 및 테이블 C를 선택하는 단계;
다수의 테이블들(
Figure 112007038897859-pct00004
,
Figure 112007038897859-pct00005
)을 생성하는 단계로서, 여기서 0≤i≤n에 대해, 각각의 테이블(
Figure 112007038897859-pct00006
)은 각각의 대응 테이블(Ti) 및 이후 모호화 테이블이라 불리고, 아벨군 연산자를 이용하여 대응 테이블(
Figure 112007038897859-pct00007
) 및 테이블 (O)의 구성을 통하여 형성(예를 들어,
Figure 112007038897859-pct00008
)되는, 적어도 하나의 테이블들(
Figure 112007038897859-pct00009
), 및 이후 보상 테이블로서 불리고, 상기 아벨군 연산자를 이용하여 상기 테이블(C)을 포함하는 구성(예를 들어,
Figure 112007038897859-pct00010
)을 통하여 형성되는 적어도 하나의 다른 테이블들(
Figure 112007038897859-pct00011
,
Figure 112007038897859-pct00012
)을 나타내는, 상기 다수의 테이블들 생성 단계; 및
테이블들(O 및 C)이 상기 구성을 통하여 보상되도록, 아벨군 연산자를 사용하여 상기 다수의 테이블들(
Figure 112007038897859-pct00013
)을 구성함으로써 암호 함수(F)에 동일한 기능인 모호화 함수(F')를 형성하는 단계를 포함한다.
본 발명에 따르면, 본래 테이블 중 적어도 하나는 선택된 테이블(O)을 가진 아벨 구성을 통하여 모호화된다. 이런 방식에서, 본래 테이블의 콘텐트를 얻는 것은 매우 어렵다. 암호 함수(F)가 테이블들의 아벨 구성으로서 실행될 수 있다는 사실은 테이블(O)에 의해 유발되는 혼란을 보상하기 위하여 사용된다. 이를 위하여, 아벨 연산자 하에서 테이블(O)의 역인 테이블(C)은 테이블들의 새로운 구성에 포함되고, O의 효과는 제거된다. 바람직하게 본래의 테이블들 모두는 모호화된다. 보상 테이블(들)은 하나 또는 그 이상의 테이블들(
Figure 112007038897859-pct00014
) 또는 부가적인 테이블(
Figure 112007038897859-pct00015
)에 포함될 수 있다.
제 2 항의 방법에 따르면, 테이블들(O 및 C)은 동일한 논 트리비얼(non-trivial) 상수(bl)를 나타내고; 모호화 테이블(
Figure 112007038897859-pct00016
)을 형성하는 단계는 대응 테이블(
Figure 112007038897859-pct00017
)의 각각의 엘리먼트와 상수(bl)를 결합하기 위한 아벨군 연산자를 사용하는 것을 포함하고; 보상 테이블(
Figure 112007038897859-pct00018
)을 생성하는 단계는 대응 테이블(
Figure 112007038897859-pct00019
)의 각각의 엘리먼트와 상수(bi)를 결합하기 위한 아벨군 연산자를 사용하는 것을 포함한다. 상수를 사용하는 것은 테이블(
Figure 112007038897859-pct00020
)을 숨기는 간단한 방법이다. 상수는 테이블 값들과 결합되고 따라서 동일한 범위(예를 들어, 0...264-1의 통상적인 범위는 64 비트로 표현되고, 64 비트 상수를 제공함)를 가진다. 상수는 테이블을 모호화하기 위한 키로서 이해할 수 있다. 테이블들의 일부를 모호화함으로써, 바람직하게는 각각의 상수를 사용하여, 심지어 보다 안정한 시스템이 형성될 수 있다.
종속항 제 3 항의 방법에 따르면, m=n. 이 방법에서 모호화 암호 함수(F')에 사용되는 테이블들의 수는 F에 사용된 것과 동일하다. 부가적인 보상 테이블(들)은 요구되지 않는다.
종속항 제 4 항의 방법에 따라, 다른 테이블(O2)은 선택되고
Figure 112007038897859-pct00021
,
Figure 112007038897859-pct00022
이도록 부가 테이블(C2)(O2는 O와 구별되고) 및 적어도 하나의 부가 모호화 테이블(
Figure 112007038897859-pct00023
,
Figure 112007038897859-pct00024
)은 대응 테이블(
Figure 112007038897859-pct00025
) 및 테이블(O2)의 아벨군 연산자를 사용하는 구성을 통하여 형성(예를 들어,
Figure 112007038897859-pct00026
)되고 및 대응 테이블(
Figure 112007038897859-pct00027
)은 테이블(C2)을 또한 포함하는 구성을 통하여 형성(예를 들어,
Figure 112007038897859-pct00028
)된다. 상수들을 사용하는 것은 단지 하나의 보상 테이블에서 다수의 별개의 모호화들을 보상하는 것을 간단하게 한다. 보상 테이블에 하나 이상의 보상을 포함함으로써, 각각의 보상들은 보다 잘 숨겨지고, 보안은 개선된다.
종속항 제 5 항의 방법에 따르면, 보상 m=n+1 및 c1 = m은 보상 테이블이 부가적인 테이블인 것을 내포한다. 이런 부가적인 테이블은 하나 또는 그 이상의 모호화 테이블들을 나타낼 수 있다. 부가적인 테이블을 사용하는 것은 부가적인 자유도를 제공하여, 현재 보상될 수 있는 모호화에 대한 추가 가능성을 발생시킨다.
종속항 제 6 항의 방법에 따르면, 모호화 테이블(
Figure 112007038897859-pct00029
)에 도메인 부분(
Figure 112007038897859-pct00030
)이 이용되고; O는
Figure 112007038897859-pct00031
,
Figure 112007038897859-pct00032
에 제공된 매핑 테이블이다. 상기 방법은 도메인(D)을 D'=(
Figure 112007038897859-pct00033
,
Figure 112007038897859-pct00034
)으로 확장하는 것을 포함하며, 여기서 i<=n 및 Dn+1에 대한
Figure 112007038897859-pct00035
는 보상 테이블 (
Figure 112007038897859-pct00036
)을 형성하는 구성이
Figure 112007038897859-pct00037
을 포함하도록
Figure 112007038897859-pct00038
의 표현을 포함한다. 도메인을 확장하고 도메인 범위가 모호화 부분을 포함하는 것을 보장함으로써, 분배되지 않은 도메인 부분이 여전히 이용 가능하고 보상을 위한 입력으로서 사용될 수 있다는 사실로 인해 현재 보상될 수 있는 테이블들의 범위를 모호화하는 것이 또한 가능하다. 본래, 각각의 분배되지 않은 도메인 부분은 별개의 확장된 도메인 부분으로서 포함될 수 있다.
종속항 제 7 항의 방법에 따르면, 바람직하게 O는 준동형(homomorphism)이고 상기 방법은 아벨군 연산자를 사용하여 대응 테이블(Ti) 및 테이블(O)의 구성을 통해 다수의 모호화 테이블들(
Figure 112007038897859-pct00039
)을 형성(예를 들어,
Figure 112007038897859-pct00040
)하고 포함된 테이블들(Ti)의 대응 서브도메인들의 아벨군 연산자를 사용하는 구성을 통하여 도메인 확장부(
Figure 112007038897859-pct00041
)를 형성(예를 들어,
Figure 112007038897859-pct00042
)하는 것을 포함한다. O가 준동형이라는 사실은 단지 하나의 도메인 확장부(
Figure 112007038897859-pct00043
)에 나타내어진 결합 입력이 각각의 모호화 테이블들 상에 보상 효과를 가지게 한다. 따라서 비록 몇몇의 본래 테이블들이 준동형을 사용하여 모호화될 지라도, 그럼에도 불구하고, 몇몇이 아닌 단지 하나의 확장된 도메인 부분만이 요구된다. 이것은 보안성을 증가시키고 포함된 데이터의 양을 감소시킨다.
본 발명의 이들 및 다른 양상들은 이후 기술된 실시예들을 참조하여 명백해지고 그로부터 분명하다.
도 1은 본 발명이 사용될 수 있는 시스템의 블록도를 도시한다.
도 2는 종래 기술의 실행 장치의 전형적인 구조를 도시한다.
도 3은 본 발명에 따른 시스템의 블록도를 도시한다.
도 4는 본 발명에 따른 시스템의 다른 실시예를 도시한다.
PC상의 디지털 콘텐트는 마이크로소프트의 미디어 플레이어, Real's RealOne Player, Apple's QuickTime 또는 iTunes player와 같은 미디오 플레이어들을 사용하여 통상적으로 렌더링된다. 상기 플레이어들은 포맷 지정 디코딩을 수행하기 위하여 각각의 플러그 인을 지정 콘텐트 포맷을 위하여 로딩할 수 있다. 이들 콘텐트 포맷들은 AVI, DV, Motion JPEG, MPEG-1, MPEG-2, MPEG-4(AAC), WMV, Audio CD, MP3, WMA, WAV, AIFF/AIFC, AU 등을 포함할 수 있다. 플레이어 및 플러그 인 구조는 도 1에 도시되며, 여기서 미디어 플레이어(100)는 코어 플레이어(100) 및 몇몇의 포맷 지정 플러그 인들(플러그 인들 120,122 및 124가 도시됨)을 포함한다. 코어 플레이어(100)는 예를 들어 플레이어를 제어하기 위하여 사용자 인터페이스를 제공한다. 각각의 플러그 인은 각각의 디코더를 포함한다. 이것은 사운드 카드와 같은 HW/SW를 렌더링하는데 디코딩된 콘텐트를 직접 전송하거나, 추가 처리를 위하여 코어 플레이어(100)에 상기 콘텐트를 전달한다. 보안 렌더링을 위하여, 보안 플러그 인은 사용되어 지정 포맷의 콘텐트를 디코딩할 뿐만 아니라 콘텐트를 복호화한다. 이것은 도 2에 도시되고, 여기서 암호화된 콘텐트는 복호화기(230)를 통하여 우선 공급되고 이어서 복호화된 콘텐트는 포맷 지정 디코더(220)를 통하여 공급된다. 복호화기(230)는 라이센스 데이터베이스(210)로부터 복호화 키/라이센스를 수신할 수 있다.
암호화에 따른 디지털 저작권 관리의 가장 큰 취약성은 키 분배 및 처리이다. 재생을 위하여, 소프트웨어 플레이어는 라이센스 데이터베이스로부터 복호화 키를 수신하여야 하고, 그 다음 암호화된 콘텐트의 복호화를 위하여 메모리의 어딘가에 이 복호화 키를 저장하여야 한다. 통상적으로, 디지털 권리 관리 시스템들은 라운드들이라 불리는 일련의 암호화/복호화 단계들을 사용하여 데이터 스트림을 블록들로 처리하는 블록 암호들을 바탕으로 하는 암호화 기술을 사용한다. i-1번째 라운드의 출력은 i번째 라운드의 입력이다. 따라서, N 라운드들을 가진 시스템에 대해 알고리즘은 직렬 함수(
Figure 112010068281910-pct00044
)로서 기술될 수 있고, 여기서 함수(fi)는 라운드(i)의 기능을 나타낸다. 대부분의 블록 알고리즘들은 파이스텔 네트워크들이다. 상기 네트워크들에서, 심지어 길이 n의 입력 데이터 블록(x)은 일반적으로 L 및 R이라 불리는 길이(
Figure 112010068281910-pct00045
)의 절반으로 나누어진다. 따라서, 제 1 라운드에 공급된 입력(x)은
Figure 112010068281910-pct00046
로서 제공된다. i 번째 라운드(i>0)는 함수(fi)를 수행하고, 여기서 fi
Figure 112007038897859-pct00047
로서 정의되며, Ki는 i번째 라운드에 사용된 서브키이고 F는 임의의 라운드 함수이다.
암호화/복호화 알고리즘에 대한 입력 및 출력은 일반적으로 미리 결정된 수의 N 비트들(0 또는 1의 값들을 가진 디지트들)의 시퀀스로 구성된다. 이들 시퀀스들은 블록들이라 불리고 상기 블록들이 포함하는 비트들의 수는 길이라 불릴 것이다. 상기 시퀀스들 내의 비트들은 영에서 시작하여 시퀀스 길이(블록 길이 또는 키 길이)보다 1 작은 곳에서 종료하는 수일 수 있다. 예를 들어, AES/Rijndael 시스템은 128 비트 블록들(N=128)을 사용한다. 비트에 첨부된 수(i)는 인덱스로서 알려지고 N 비트 블록에 대해 0 ≤i< N의 범위일 것이다.
통상적으로, 암호화/복호화 알고리즘에서 처리하기 위한 기본 유니트는 블록 길이보다 작다. 일반적으로 사용된 유니트 길이들은 4 비트(4 비트 유니트는 일반적으로 니블(nibble)이라 함) 또는 8 비트(일반적으로 바이트라 함)이다. 상기 유니트 길이들은 통상적인 프로세서들에서 보다 쉽게 처리될 수 있다. 만약 바람직하다면 또한 다른 유니트 길이들은 사용될 수 있다. 유니트(다수의 n 비트들의 연속 시퀀스)는 단일 엔티티로서 처리된다. 알고리즘에 대한 입력은 유니트들의 어레이들을 형성하기 위하여 n개의 연속 비트들의 k 그룹들로 이들 시퀀스들을 분할하여 형성되는 상기 유니트들의 어레이로서 처리되며, 여기서, k*n=N.
x로 표시된 입력에 대해, 최종 어레이의 유니트들은 xi로서 참조되고, 여기서 i는 0 ≤i< k 범위 내에 있을 것이다. i 번째 니블은 다음과 같이 기술될 수 있다:
Figure 112007038897859-pct00048
.
유사하게, i 번째 바이트는 다음과 같이 기술될 수 있다.
Figure 112007038897859-pct00049
모든 유니트 값들은 순서
Figure 112007038897859-pct00050
로 중괄호 사이의 개별 비트 값들(0 또는 1)의 접합으로서 제공될 것이다. 대부분의 암호들에 대해, 이들 유니트들은 다각형 표현(
Figure 112007038897859-pct00051
)을 사용하여 유한 필드 엘리먼트들로서 해석된다. 이 표기법에서, 인자(x)는 단지 그러한 다각형 표현의 통상적인 표기에 따르도록 사용되고 입력을 나타내지 않는다. 주로, 암호화/복호화 알고리즘들은 유한 필드들로서 갈루아 필드(Galois Field)들을 사용한다. 다각형 표현에서, 8 비트 유니트{01100011}는 특정 유한 필드 유니트(
Figure 112007038897859-pct00052
)를 식별한다. 일반적으로, 유니트 값은 16진법 표기로 나타내어지고, 예를 들어 엘리먼트{01100011]는 {63}으로서 표현될 수 있다. 암호화/복호화 알고리즘 자체는 본 발명의 주제가 아니기 때문에, 이것은 이하에서 보다 상세히 기술되지 않을 것이다.
AES(Rijndael) 및 파이스텔 암호들과 같은 많은 종래 암호화 및 복호화 알고리즘들에서, 라운드 함수(F)는 일반적으로 입력(즉, 함수 도메인의 다른 부분들)의 상이한 유니트들에 대해 테이블들(Ti[x])을 사용하여 해석된다. 상기 테이블의 역할은 비선형 치환(substitution)을 수행할 수 있도록 하는 것이며, 상기 테이블들은 S-박스들이라 한다. S-박스 역할 외에, 테이블은 S-박스에 또한 관련하여 전처리 및/또는 후처리를 나타낼 수 있다. 일반적으로, 테이블은 n 입력 비트들을 m 출력 비트에 매핑한다. 상기 테이블은 n*m 테이블이라 한다. DES는 8개의 상이한 6*4 S-박스들을 사용한다. 몇몇 시스템들(예를 들어, Khufu 및 Khafre)은 단일 8*32 비트 S-박스를 사용하고, IDEA는 효과적으로 16*16 S-박스를 가지며 AES/Rijndael은 8*8 S-박스를 사용한다.
이들 종종 작은 테이블들의 출력의 구성은 이들 함수들의 범위들에서 아벨군 연산자(
Figure 112007038897859-pct00053
)로 행해진다. 임의의 아벨군 연산자가 선택될 수 있다. 종종 사용된 연산자는 비트 와이즈(bit-wise) XOR 연산자이다. 본 발명에 따른 시스템은 이러한 아벨 구성을 사용하여 F의 함수 작용을 변화시키지 않고 테이블들의 실제 값들을 감춘다. 본 발명에 따라, 테이블들 중 적어도 하나는 모호화된다. 이 테이블은 모호화 테이블이라 불릴 것이다. 다른 테이블들은 또한 모호화되거나 변형되지 않고 유지될 수 있다. 따라서, 다수의 테이블들(
Figure 112007038897859-pct00054
,
Figure 112007038897859-pct00055
)이 생성되며, 여기서 각각의 테이블(
Figure 112007038897859-pct00056
)에 대해 변형되거나 변형되지 않은 형태로 각각의 대응 테이블(Ti)을 나타낸다. 기술된 바와 같이, 생성된 테이블들의 적어도 하나는 대응하는 본래 테이블의 모호화된 버전이다. 첫째 단지 하나의 테이블이 직접적으로 모호화되는 경우의 설명이 제공된다. 이 테이블은 (
Figure 112007038897859-pct00057
Figure 112007038897859-pct00058
)이라 불린다. 본 발명 에 따라 이런 모호화 테이블은 아벨군 연산자를 사용하여 대응 테이블(
Figure 112007038897859-pct00059
) 및 테이블(O)의 구성을 통하여 형성된다. 간단한 구성은
Figure 112007038897859-pct00060
이다. 보다 복잡한 구성들(예를 들어, 아벨군 연산자를 사용하여 또한 구성되는 부가적인 테이블들을 사용)이 또한 가능하다. 표기(
Figure 112007038897859-pct00061
)는 간략화를 위한 간단한 표기라는 것이 주의된다. 수학적으로 보다 정확한 표기는 그것이 이용되는 관련 도메인에서 x에 대해
Figure 112007038897859-pct00062
이다. 짧은 표기는 상세한 설명에서의 여러 곳에 사용되고 당업자는 상기 설명으로 그 의미를 이해할 것이다. 테이블(O)은 임의의 적당한 방식으로 선택될 수 있다. 몇몇 바람직한 선택들은 하기에 기술될 것이다. 본 발명에 따른 시스템 및 방법은 하나 또는 그 이상의 테이블들의 모호화가 테이블 생성 테이블들(
Figure 112007038897859-pct00063
)의 아벨 구성을 위하여 보상되는 방식으로 아벨 구성을 사용한다. 따라서 테이블들(
Figure 112007038897859-pct00064
) 중 적어도 하나는 테이블(O)에 의해 유발된 모호화를 보상(아벨 구성에서)한다. 이런 방식에서 테이블들(
Figure 112007038897859-pct00065
)의 아벨 구성은 비록 몇몇 또는 모든 테이블들이 본래 테이블들(Ti)과 상이할지라도 함수(F)를 여전히 수행한다. O를 보상하는 테이블은 (
Figure 112007038897859-pct00066
,
Figure 112007038897859-pct00067
)로서 표시되고 보상 테이블이라 한다. 이 테이블은 테이블(C)을 포함하는, 아벨군 연산자를 사용하여 하나의 구성을 통해 형성된다. 간단한 구성은
Figure 112007038897859-pct00068
이다. 테이블(C)은
Figure 112007038897859-pct00069
(따라서 C는 아벨 연산자 하에서 O의 역(inverse)이고, 또한
Figure 112007038897859-pct00070
으로 표시됨)이도록 선택된다. 혼 란(O)에 대한 선택에 따라, 보상 테이블은 상기된 테이블들(
Figure 112007038897859-pct00071
)중 하나이거나, 부가적인 테이블이 사용될 수 있다. 따라서, n 또는 n+1 테이블들이 생성된다:
Figure 112007038897859-pct00072
,
Figure 112007038897859-pct00073
. 바람직하게 모든 본래 테이블들이 변화되는 것이 인식될 것이다. 본 발명에 따른 시스템 및 방법에서, 모호화 함수(F')가 형성되고 아벨군 연산자를 사용하여 다수의 테이블들(
Figure 112007038897859-pct00074
,
Figure 112007038897859-pct00075
)을 구성함으로써 암호 함수(F)와 기능적으로 동일하며, 여기서 구성은 테이블들(O 및 C)이 구성을 통하여 서로 보상하도록 한다. 모호화를 유발하는 테이블로서 테이블(O) 및 보상을 유발하는 테이블(C)과 관련하는 대신, 이들 역할들은 똑같이 역으로서 이해될 것이다.
본 발명은 함수(
Figure 112007038897859-pct00076
)에 대해 설명될 것이다. 함수(F)는 파이스텔 암호와 같은 블록 암호의 라운드 함수일 수 있다. 예에서, 함수(F)는 각각 입력으로서 각각의 니블을 가진 16개의 테이블 실행 함수의 아벨 구성으로서 표현될 수 있다:
Figure 112007038897859-pct00077
이것은 또한 하기와 같이 다시 쓰여질 수 있다.
Figure 112007038897859-pct00078
Figure 112007038897859-pct00079
범위(
Figure 112007038897859-pct00080
) 및 유니트 길이(이 예에서 4 비트 니블)가 예를 위한 단순한 선택인 것을 이해할 것이다. 다른 선택들이 또한 이루어질 수 있다.
본 발명에 따른 테이블들의 모호화를 위한 두 개의 바람직한 방법들은 하기에 보다 상세히 기술된다. 제 1 방법에서 모호화 테이블들이 작동하는 도메인은 본래 테이블들에 사용된 것과 동일하다. 바람직한 실시예에서, 상수들은 모호화에 사용된다. 제 2 방법에서 도메인은 확장된다. 바람직한 방법에서, 입력(x)에 따른 준동형은 모호화 및 보상을 위하여 사용된다.
상수들을 사용한 도메인 확장 없음
이 방법에서, 테이블들(O 및 C)은 동일한 논 트리비얼 상수(b0)를 나타낸다. 모호화 테이블(
Figure 112007038897859-pct00081
,
Figure 112007038897859-pct00082
)은 대응 테이블(
Figure 112007038897859-pct00083
)의 각각의 엘리먼트와 상수(b1)를 결합하기 위하여 아벨군 연산자를 사용하여 생성된다. 유사하게 보상 테이블(
Figure 112007038897859-pct00084
,
Figure 112007038897859-pct00085
)은 대응 테이블(
Figure 112007038897859-pct00086
)의 각각의 엘리먼트와 상수(b0)를 결합하기 위하여 아벨군 연산자를 사용하여 생성된다. 이런 시나리오에서, 두 개의 동일한 테이블들이 사용되는 것이 관찰될 수 있다. 하기된 예로부터 명확할 바와 같이, 이것은 짝수의 본래 테이블들(Ti)이 아벨 구성을 사용하여 동일한 상수와 결합되는 상황으로 일반화될 수 있다. 상수는 테이블 값들과 결합하고 따라서 동일한 범위(이 실시예에서,
Figure 112007038897859-pct00087
)를 가지며 동일한 수의 비트들(실시예에서, 64 비트)로 표현된다. 동일한 상수와 짝수의 테이블들을 결합함으로써, 아벨 구성은 모호화 테이블들이 결합될 때 혼란의 자동 제거를 유발한다. 이것은 제 1 테이블(o1=0) 및 제 2 테이블(c1=1)만이 동일한 상수(b0)와 결합을 통하여 변형되고 다른 테이블 들이 변형되지 않은 간단한 실시예가 도시되고, 하기와 같이 제공된다.
Figure 112007038897859-pct00088
그중 몇몇이 변형(모호화)되는 생성된 테이블들(
Figure 112007038897859-pct00089
)은 새로운 함수(F')(모호화된 F)에 사용될 수 있다:
Figure 112007038897859-pct00090
테이블들(O 및 C)이 사실상 선택되어 C=O이고 아벨 구성에 대해
Figure 112007038897859-pct00091
인 것을 바탕으로
Figure 112007038897859-pct00092
이도록 선택되는 것이 관찰될 수 있다. 결과적으로, 또한 함수(F' 및 F)는 기능적으로 동일하다.
증명:
Figure 112007038897859-pct00093
[Ti의 정의에 의해]
Figure 112007038897859-pct00094
Figure 112007038897859-pct00095
Figure 112007038897859-pct00096
Figure 112007038897859-pct00097
Figure 112007038897859-pct00098
동일한 상수가 아벨군 연산자를 사용하여 짝수의 테이블들과 결합되는 임의의 모호화를 위하여 이것이 정말로 유지되는 것이 명확할 것이다. 따라서, 상수는 2,4,6의 테이블들의 수와 결합될 수 있다. 상기 실시예에서, 총 16개의 테이블들은 사용된다. 따라서 단지 하나의 상수를 사용하여 모든 테이블을 모호화하는 것이 가능하다. 실시예의 상수는 64 비트이다; 이 상수는 64 비트 키로서 보여질 수 있다.
이 실시예는 설명을 위하여 전체 도메인에서 각각의 테이블이 동작하는 대신 도메인 부분들이 사용되지 않는 범위까지 간략화되는 두 개의 실시예들이 추가로 도시된다. 단지 두 개의 본래 테이블들이 사용된다.
Figure 112007038897859-pct00099
테이블들의 이들 정의들에서
Figure 112007038897859-pct00100
은 입력값(0)이 출력값(1)에 매핑되는 것을 의미하며,
Figure 112007038897859-pct00101
는 1이 2에 매핑되는 것을 의미한다. 상기 실시예들에서, 테이블들(O 및 C)은 입력(x)에 따른다. 다음 모호화 및 보상 테이블들은 하기와 같이 선택된다.
Figure 112007038897859-pct00102
생성된 테이블들은 그 후
Figure 112007038897859-pct00103
이다.
실시예 1:
Figure 112007038897859-pct00104
(이 실시예에서, 아벨 연산자
Figure 112007038897859-pct00105
는 곱셈(ㆍ)이다)
Figure 112007038897859-pct00106
실시예 2
Figure 112007038897859-pct00107
(아벨 연산자는 XOR 연산자이다)
Figure 112007038897859-pct00108
다른 실시예에서, 보안은 적어도 하나 이상의 키(즉, 보다 많은 상수들이 사용될 수 있음)를 사용하여 추가로 개선된다. 가장 간단한 형태에서, 두 개의 개별 테이블들은 상기 도시된 상수(b0)와 결합되고 두 개의 상이한 테이블들은 상수(b1)와 결합된다. 이런 방식으로, 추가의 테이블(O2) 및 추가의 테이블(C2)은
Figure 112007038897859-pct00109
이도록 선택되고, 여기서 O2는 O와 구별되고 테이블들(O2 및 C2) 모두는 동일한 논 트리비얼 상수(b1)를 나타낸다. 보다 많은 테이블들이 상수(b1)를 사용하여 보호될 수 있다는 것이 인식될 것이다. 예를 들어, 그것은 그 후 b0 를 가진 테이블들의 절반과 테이블들(b1)의 절반을 결합하는 것이 또한 가능하다. 이런 방식에서, 모든 테이블들은 모호화되고 각각의 상수는 짝수번 사용되어, 상수가 구성에서 제거된다. 만약 원한다면, 몇몇 테이블들은 일반적인 형태(즉, 아벨군 연산 자를 통하여 모호화되지 않음)에 사용될 수 있다.
다른 실시예에서, 동일한 테이블들(O2 및 C2)이 사용될 수 있다. 테이블(O2)은 대응 테이블(
Figure 112007038897859-pct00110
) 및 테이블(O2)(예를 들어,
Figure 112007038897859-pct00111
)의 아벨군 연산자를 사용하는 구성을 통하여 적어도 하나의 추가 모호화 테이블(
Figure 112007038897859-pct00112
)을 형성하는 적어도 하나의 추가 테이블(
Figure 112007038897859-pct00113
,
Figure 112007038897859-pct00114
)을 모호화하기 위하여 상기된 바와 같이 사용될 수 있다. 종래 보상 테이블(
Figure 112007038897859-pct00115
) 대신, 추가 보상 테이블을 형성하기 위하여 C2를 사용하는 것은 O2에 대해 보상하기 위하여 또한 사용된다. 이것은
Figure 112007038897859-pct00116
에 대한 구성에 추가 보상 테이블(C2)(예를 들어,
Figure 112007038897859-pct00117
)을 포함함으로써 달성된다. 이런 추후 실시예는
Figure 112007038897859-pct00118
에 두 개 이상의 보상들을 포함함으로써 확장될 수 있다. 바람직한 실시예에서, 모든 그러나 본래 테이블들(Ti) 중 하나는 각각의 상수로 모호화되고 하나의 나머지 테이블은 모든 상수들의 아벨 구성으로 모호화된다. 이 실시예에서, 모든 상수들은 두 번(즉, 짝수)로 사용되고 모든 테이블들은 모호화된다. 다음 실시예에서, 제 1 15개의 테이블들(i=0...14)은 각각의 상수(bi)와 결합되고 최종 테이블은 모든 상수들과 결합되어, 하기를 제공한다.
Figure 112007038897859-pct00119
Figure 112007038897859-pct00120
모호화 테이블들(
Figure 112007038897859-pct00121
)은 새로운 함수(F')(모호화된 F)에 사용된다:
Figure 112007038897859-pct00122
이전과 같이, 함수들(F' 및 F)은 기능적으로 동일하다.
증명:
Figure 112007038897859-pct00123
[T15의 정의에 의해]
Figure 112007038897859-pct00124
Figure 112007038897859-pct00125
Figure 112007038897859-pct00126
Figure 112007038897859-pct00127
Figure 112007038897859-pct00128
Figure 112007038897859-pct00129
Figure 112007038897859-pct00130
[F의 정의에 의해]
Figure 112007038897859-pct00131
상기 실시예로부터 당업자는 달성될 모호화의 레벨에 자유를 가진다는 것이 명백할 것이다. 시스템에서 F가 n 테이블들의 아벨 구성인 경우, 1 내지 n 상수들이 사용될 수 있다. 각각의 상수는 짝수의 테이블들과 결합된다. 원칙적으로 임의의 수의 상수들이 사용될 수 있다는 것이 이해될 것이다. 그러나, 자신의 상수와 모든 테이블을 연관시킴으로써, n 이상의 상수들을 사용하는 것은 보안성을 더 이상 추가로 증가시키지 않을 것이다. 바람직하게, 상수들은 적당한 랜덤 또는 의사 랜덤 생성기를 사용하여 "임의적으로" 선택된다.
상기 주어진 실시예들에서, 보상(C)은 하나 또는 그 이상의 본래 테이블들과 결합된다. 따라서 정상적으로 생성된 테이블들(T')의 수(m)는 본래 테이블들(T)의 수(n)와 동일할 것이다. 대안은 보상을 위하여 하나의 부가적인 테이블을 사용하는 것이고, 따라서 m=n+1. 이 실시예에서, 다시 모든 상수들은 두 번(즉, 짝수) 사용되고, 아벨 구성을 통하여 자동 보상을 제공한다. 다음 실시예에서, 모두 16개의 본래 테이블들(i=0...15)은 각각의 상수(bi)와 결합되고 모든 상수들의 결합인, 하나의 부가적인 테이블이 생성되며, 하기를 제공한다.
Figure 112007038897859-pct00132
Figure 112007038897859-pct00133
도메인 확장
상기 방법에서, 상수(b)와 본래 테이블(T)을 결합하는 것은 테이블(T)에서의 모든 엔트리가 아벨군 연산자(
Figure 112007038897859-pct00134
)를 사용하여 동일한 값(b)과 결합되는 것을 의미한다.
제 2 방법에서, 모호화는 테이블에 대한 입력에 적어도 부분적으로 의존한다. 이것을 보상할 수 있도록 하기 위해, 보상 테이블은 입력에 대한 액세스를 요구한다. 이를 위하여, 도메인은 확장된다. 상기된 바와 같이, 본래 테이블들(
Figure 112007038897859-pct00135
) 각각은 도메인(D)의 각각의 부분(Di)에서 동작한다. 적어도 하나의 생성된(
Figure 112007038897859-pct00136
), 즉 모호화 테이블은 아벨군 연산자를 사용하여, 대응 테이블(Ti) 및 테이블(O)(예를 들어,
Figure 112007038897859-pct00137
)의 구성을 통하여 형성된다. 결과적으로, 모호화 테이블(
Figure 112007038897859-pct00138
)은 도메인 부분(
Figure 112007038897859-pct00139
)에 제공되고 O는
Figure 112007038897859-pct00140
에 제공된 매핑 테이블이다. 상기된 바와 같이, 적어도 하나의 다른 테이블들(
Figure 112007038897859-pct00141
), 즉 보상 테이블은 아벨군 연산자를 사용하여 테이블(C)(예를 들어,
Figure 112007038897859-pct00142
)을 포함하는 구성을 통하여 형성된다. 이를 작동시키기 위하여,
Figure 112007038897859-pct00143
인 것이 요구된다. 이를 위하여, 도메인(D)은
Figure 112007038897859-pct00144
로 확장되고, 여기서 i<=n에 대해
Figure 112007038897859-pct00145
이고 Dn +1은 보상 테이블(
Figure 112007038897859-pct00146
)을 형성하는 구성이
Figure 112007038897859-pct00147
을 포함하도록
Figure 112007038897859-pct00148
의 표현을 포함한다.
본 발명에 따르면, 적어도 하나의 테이블은 동일한 입력에 적어도 부분적으로 종속하는 테이블(O)과 결합을 통하여 모호화된다; 결합은 아벨군 연산자에 의해 수행된다. 예를 들어, 제 1 테이블(T0)은 모호화된다:
Figure 112007038897859-pct00149
변형되지 않은 모든 테이블들을 유지하는 것
Figure 112007038897859-pct00150
은 O(x0)를 위하여 보상을 제공하지 않는다. 본 발명에 따르면, 보상은 아벨군 그룹 연산자와 관련하여 보상될 필요가 있는 항들을 커버하는 적어도 하나의 부가적인 테이블을 사용하여 달성된다. 상기된 실시예에서, 부가적인 테이블은 간단히
Figure 112007038897859-pct00151
일 수 있다.
새로운 함수(F")(모호화된 F)는 다음과 같이 정의된다:
Figure 112007038897859-pct00152
.
F"의 도메인이 부가적인 테이블에 대한 입력을 공급하기 위하여 F의 도메인과 비교되는 것이 관찰될 수 있다. 예에서, F"의 도메인은
Figure 112007038897859-pct00153
이다. 이 실시예에서, E(x)로서 표시된, 확장된 도메인은 다음과 같이 정의된다.
Figure 112007038897859-pct00154
이들 정의들을 사용하여, F"은 기능적으로 F와 같다.
Figure 112007038897859-pct00155
Figure 112007038897859-pct00156
이런 간단한 예에서, 단지 테이블(T0)이 모호화되는 경우, 그 테이블(O(x0)) 이 일반적인 텍스트 형태로 이용 가능하기 때문에, 상기는 모호화를 깨기 위한 공격자에게 비교적 간단하다. 이를 극복하기 위한 한가지 방법은 제 1 방법을 사용하여 상수와 O(x0)를 결합하고 또한 홀수의 다른 테이블들을 모호화하기 위해 상수를 사용하는 것이다. O(x0)를 숨기는 바람직한 방법은 각각의 테이블(Oi(xi))에 의해 본래 테이블들(Ti)의 몇몇을 숨기고 서로를 숨기기 위하여 다수의 O 테이블들을 사용하는 것이다. Oi에 사용된 각각의 매핑이 필요하지만 동일할 필요가 없다는 것이 주의된다.
이 방법은 다음 예를 사용하여 도시된다. 이 실시예에서, 제 1 테이블(T0)는 다음과 같이 모호화된다.
Figure 112007038897859-pct00157
제 2 테이블은 다음에 의해 모호화된다.
Figure 112007038897859-pct00158
변형되지 않은 모든 다른 테이블들을 유지하는 것은
Figure 112007038897859-pct00159
이다.
새로운 테이블은 다음과 같이 정의된다.
Figure 112007038897859-pct00160
이런 17개의 테이블은 숨김에 사용된 테이블들 중 하나를 더 이상 드러내지 않는다. 이런 최종 테이블은 입력으로서 두 개의 도메인 부분들을 요구하여, 도메 인의 두 배의 확대를 제공하는 것이 관찰될 것이다. 이것은 데이터 레이트를 증가시키고 시스템의 동작 부분을 나타내는 것이 이해될 것이다.
바람직한 실시예에서, O는 논 트리비얼 준동형이고 상기 방법은 아벨군 연산자를 사용하여 대응 테이블(Ti) 및 테이블(O), 예를 들어
Figure 112007038897859-pct00161
의 구성을 통하여 다수의 모호화 테이블들(
Figure 112007038897859-pct00162
)을 형성하고 아벨 연산자를 사용하여 포함된 테이블들(Ti)의 대응 서브도메인들의 구성을 통하여 도메인 확장(
Figure 112007038897859-pct00163
)을 형성(예를 들어,
Figure 112007038897859-pct00164
)하는 것을 포함한다. 하기 실시예에서, 논 트리비얼 준동형은 H(x)라 할 것이다. 임의의 상기 준동형은 선택될 수 있다. 그룹 준동형의 수학적 정의는 다음과 같다. G1 및 G2가 각각 연산들(O1 및 O2)을 가진 그룹들이라 하자. G1으로부터 G2로의 매핑(M)은 G1에서 모든 x,y에 대해
Figure 112007038897859-pct00165
이면 준동형이다. 하기에 주어진 예에서, H(x)는 GF(24) 내지 GF(264)상에서의 선형 매핑이다. 이 방법을 상기 주어진 바와 같이 동일한 실시예에 적용하면, 다음이 얻어진다.
Figure 112007038897859-pct00166
제 2 테이블은 다음에 의해 모호화된다.
Figure 112007038897859-pct00167
변형되지 않은 모든 다른 테이블들은 다음을 유지한다.
Figure 112007038897859-pct00168
새로운 테이블은 다음과 같이 정의된다.
Figure 112007038897859-pct00169
준동형을 사용하여, 확장된 도메인은
Figure 112007038897859-pct00170
일 수 있다. 단지 하나의 부가적인 도메인 부분이 사용되고, 이것은 다수의 부분들을 나타낸다. 이전 방법과 비교하여 이것은 데이터 레이트를 감소시키고 보안성을 증가시킨다.
상기 방법에서 각각의 테이블들 T[xi]이 각각 H(xi)에 의해 모호화될 수 있다는 것이 이해될 것이다. 얼마나 많은 테이블들이 모호화되는가는 보안 요구사항들에 따라 당업자에 의해 선택될 수 있다.
바람직하게 모든 테이블들은 숨겨진다. 전형적인 실시예에서, 이것은 하기를 제공한다.
Figure 112007038897859-pct00171
Figure 112007038897859-pct00172
Figure 112007038897859-pct00173
이라고 하자.
확장된 도메인 E(x)는 하기에 의해 제공된다.
Figure 112007038897859-pct00174
, 여기서
i=0...15에 대해 xi" = xi이고,
Figure 112007038897859-pct00175
함수들(
Figure 112007038897859-pct00176
) 및 F는 기능적으로 동일하다.
증명:
Figure 112007038897859-pct00177
[T" 정의에 의해]
Figure 112007038897859-pct00178
Figure 112007038897859-pct00179
Figure 112007038897859-pct00180
[E 정의에 의해]
Figure 112007038897859-pct00181
[F 정의에 의해]
Figure 112007038897859-pct00182
[준동형]
Figure 112007038897859-pct00183
Figure 112007038897859-pct00184
Figure 112007038897859-pct00185
Figure 112007038897859-pct00186
Figure 112007038897859-pct00187
[]
비록 확장이 확장된 도메인의 최종 부분인 설명을 위하여 모든 실시예들이 도시되지만, 확장이 어디라도 있을 수 있다는 사실, 즉 테이블들 및 각각의 도메인 부분들이 혼합될 수 있다는 사실이 인식될 것이다.
자체적으로, 도메인의 확장은 관찰되고 모호화 테이블들을 공격하기 위하여 사용된다. 임의의 적당한 기술은 확장의 상세 사항들을 숨기기 위하여 사용될 수 있다. Rijndael/AES 또는 파이스텔 암호들과 같은 많은 암호들은 일련의 라운드 함수들(일반적으로 라운드 지정 키를 사용하여 특정된 동일한 라운드 함수)을 사용하고 직렬 함수로서 모델화될 수 있다:
Figure 112007038897859-pct00188
, 여기서 Fi는 라운드(i)의 라운드 함수이다.
상기 시스템에서, 도메인 확장(즉, 확장된 부분)은 다음 방식으로 숨겨질 수 있다:
Figure 112007038897859-pct00189
의 직렬 함수는 다음과 같이 고려한다.
Figure 112007038897859-pct00190
Ei°
Figure 112010068281910-pct00191
은 중요하게 계산되고, 매핑
Figure 112010068281910-pct00192
(구성에 의해 도메인 확장 함수를 숨김)에서 Fj의 모든 Tj,i[x]를 회전시킨다.
바람직한 실시예에서, 방법 1 및 2가 결합된다. 따라서, 몇몇 및 바람직하게 모든 테이블들(T")은 각각의 상수와 결합된다. 이런 방식에서, 도메인 확장(실시예 T16)을 가진 테이블은 또한 숨겨질 수 있다. 숨김 상수와 T16을 결합하는 것의 이점은
Figure 112007038897859-pct00193
를 가진 모든 준동형을 유지하는 특성 H(0)=0이 손실되기 때문에, H(x)가 준동형이라는 사실이 숨겨진다는 것이다.
도 3은 본 발명이 사용되는 시스템을 도시한다. 시스템(300)은 서버(310) 및 적어도 하나의 실행 장치(320)를 포함한다. 서버(310)는 모호화된 형태로 실행 장치(320)에 암호 함수(F)를 제공한다. 함수(F)는 키형 정보를 각각 가진 다수의 비선형 매핑 테이블들(
Figure 112007038897859-pct00194
)을 사용하여, 미리 결정된 도메인(D)으로부터 도메인(D)의 각각의 부분(Di)에서 동작하는 출력(y)으로 상기 도메인(D)의 입력(x)을 암호적으로 변환한다. 함수(F)는 아벨군 그룹 연산자(
Figure 112007038897859-pct00195
)를 사용하여 매핑 테이블들의 출력을 구성(예를 들어,
Figure 112007038897859-pct00196
) 한다. 서버는 통상적인 컴퓨터 플랫폼, 예를 들어 웹 서버, 또는 파일 서버와 같은 서버로서 사용된 플랫폼상에서 실행될 수 있다. 서버는 프로세서(312)를 포함한다. 프로세서(312)는 프로그램의 제어하에서 동작된다. 프로그램은 내장된 ROM과 같은 내장된 저장 장치의 프로세서에 영구적으로 내장되지만, 하드 디스크(도시되지 않음)와 같은 백그라운드 저장장치로부터 또한 로딩될 수 있다. 프로그램의 제어하에서, 프로세서(312)는:
Figure 112007038897859-pct00197
이도록 테이블(O) 및 테이블(C)을 선택하고;
다수의 테이블들(
Figure 112007038897859-pct00198
,
Figure 112007038897859-pct00199
)을 생성하며, 여기서
Figure 112007038897859-pct00200
에 대해, 각각의 테이블(
Figure 112007038897859-pct00201
)은 각각의 대응 테이블(Ti) 및 아벨군 연산자를 이용하여 대응 테이블(Ti) 및 테이블(O)의 구성(예를 들면,
Figure 112007038897859-pct00202
)을 통해 형성되는 적어도 하나의 테이블들(
Figure 112007038897859-pct00203
,
Figure 112007038897859-pct00204
), 즉 모호화 테이블, 및 적어도 하나의 다른 테이블들(
Figure 112007038897859-pct00205
,
Figure 112007038897859-pct00206
), 즉 아벨군 연산자를 이용하여, 테이블(C)을 포함하는 구성(예를 들면,
Figure 112007038897859-pct00207
)을 통해 형성되는 보상 테이블을 나타낸다.
부가적으로, 서버는 실행 장치에 다수의 테이블들(
Figure 112007038897859-pct00208
,
Figure 112007038897859-pct00209
)을 제공하기 위한 수단(314)을 포함한다. 서버는 임의의 적당한 형태로 이를 수행할 수 있다. 예를 들어 팩토리에서 테이블들은 실행 장치(320)의 제조 동안 실행 장치의 저장 모듈에 저장될 수 있다. 도 3은 테이블들이 인터넷(330)을 통하여 실행 장치(320)에 직접 다운로드되는 것을 도시한다.
실행 장치(320)는 서버(310)로부터 다수의 테이블들(
Figure 112007038897859-pct00210
,
Figure 112007038897859-pct00211
)을 수신하기 위한 수단(324)을 포함한다. 이들 수단(326)은 서버의 수단(314)과 협력하며 추후 기술되지 않을 것이다. 실행 장치(320)는 프로세서(322)를 더 포함한다. 프로세서는 퍼스널 컴퓨터들 또는 내장된 마이크로제어기로부터 알려진 프로세서와 같은 임의의 적당한 타입일 수 있다. 프로세서(322)는 프로그램의 제어하에서 동작된다. 프로그램은 내장된 ROM과 같은 내장된 저장장치를 사용하여 프로세서(322)에 영구적으로 내장되지만, 하드 디스크(도시되지 않음)와 같은 백그라운드 저장장치로부터 또한 로딩될 수 있다. 프로그램의 제어하에서, 프로세서(322)는 테이블들(O 및 C)이 구성을 통하여 보상되도록, 아벨군 연산자를 사용하여 다수의 테이블들(
Figure 112007038897859-pct00212
,
Figure 112007038897859-pct00213
)을 구성함으로써 암호 함수(F)에 기능적으로 등가인 함수(F')를 형성한다. 도 3의 실시예에서, 실행 장치(320)는 예를 들어 인터넷(330)을 통하여 또는 저장 매체(350)로부터 테이블들을 검색하기 위한 수단(324)을 포함한다. 유사하게, 실행 장치(320)는 매체(350)로부터 암호화된 콘텐트(352)를 검색할 수 있고, 프로세서(322)를 사용하여 이를 복호화한다. 프로세서는 복호화된 콘텐트를 디코딩한다. 서버(310)는 테이블들(344)과 함께 매체(350)에 암호화된 콘텐트(342)를 저장할 수 있다.
도 4는 테이블들(T')이 프로세서(322)에 의해 실행하기 위하여 소프트웨어 프로그램(410)에 내장된 실행 장치(320)에 제공되는 바람직한 실시예를 도시한다. 도 4의 동일한 참조 번호들은 도 3에 사용된 것과 동일한 아이템들을 가리킨다. 소프트웨어 프로그램(410)은 미디어 플레이어와 같은 프로그램에 대한 플러그 인일 수 있다. 따라서, 도 4의 수단(314)은 인터넷(예를 들어, 도 4의 아이템 330)을 통하여 이러한 플러그 인(410)을 공급하거나 제조 동안 실행 장치(320)에 직접 내장된다.
본 발명이 컴퓨터 프로그램들, 특히 본 발명을 실행하기 위하여 적응된 캐리어상 또는 캐리어 내 컴퓨터 프로그램들로 확장할 수 있다는 것이 또한 인식될 것이다. 프로그램은 부분적으로 컴파일된 형태와 같은 소스 코드, 오브젝트 코드, 코드 중간 소스 및 오브젝트 코드의 형태, 또는 본 발명에 따른 방법을 실행하는데 사용하기에 적당한 임의의 다른 형태일 수 있다. 캐리어는 임의의 엔티티 또는 프로그램을 전달할 수 있는 장치일 수 있다. 예를 들어, 캐리어는 예로써 CD ROM 또는 반도체 ROM과 같은 ROM, 또는 플로피 디스크 또는 하드 디스크와 같은 자기 기록 매체와 같은 저장 매체를 포함할 수 있다. 또한 캐리어는 전기 또는 광학 케이블 또는 무선 또는 다른 수단을 통하여 전달될 수 있는 전기 또는 광학 신호와 같은 전송 가능한 캐리어일 수 있다. 프로그램이 상기 하나의 신호에 통합될 때, 캐리어는 케이블 또는 다른 장치 또는 수단에 의해 구성될 수 있다. 선택적으로, 캐리어는 프로그램이 내장된 집적 회로일 수 있고, 집적 회로는 관련 방법을 수행, 또는 성능의 사용을 위하여 제공된다.
상기 실시예들이 본 발명을 제한하기보다 도시한다는 것이 주의되어야 하고, 당업자는 첨부된 청구항들의 범위에서 벗어나지 않고 많은 대안적인 실시예들을 설계할 수 있다. 청구항들에서, 괄호들 사이에 배치된 임의의 참조 부호들은 청구항을 제한하는 것으로 해석되지 않는다. 동사 "포함하다" 및 그 어미 활용의 사용은 청구항에 기술된 것과 다른 엘리먼트들 또는 단계들의 존재를 배제하지 않는다. 엘리먼트에 선행하는 부정관사("a" 또는 "an")는 다수의 엘리먼트들의 존재를 배제하지 않는다. 본 발명은 몇몇 별개의 엘리먼트들을 포함하는 하드웨어, 및 적당히 프로그램된 컴퓨터에 의해 실행될 수 있다. 몇몇 수단을 열거하는 장치 청구항에서, 몇몇의 이들 수단은 하드웨어 및 동일한 아이템에 의해 구현될 수 있다. 특정 방법들이 상호 다른 독립항들에 기술된다는 단순한 사실은 이들 방법들의 결합이 바람직하게 사용될 수 없다는 것을 가리키지 않는다.

Claims (20)

  1. 모호화된 형태(obfuscated form)로 실행 장치에 암호 함수(F)를 제공하는 방법으로서, 상기 함수(F)는 미리 결정된 도메인(D)으로부터의 입력(x)을, 각각 키형(key-like) 정보를 가지고 상기 도메인(D)의 각각의 부분(Di)에서 동작하는 다수의 비선형 매핑 테이블들(
    Figure 112012059818165-pct00330
    )을 이용하여, 출력(y)으로 암호적으로 변환하고, 상기 함수(F)는 아벨군(Abelian group) 연산자(
    Figure 112012059818165-pct00331
    )를 사용하여 상기 매핑 테이블들의 출력을 구성하는, 상기 방법에 있어서:
    Figure 112012059818165-pct00333
    이도록 테이블(O) 및 테이블(C)을 선택하는 단계;
    다수의 테이블들(
    Figure 112012059818165-pct00334
    )을 생성하는 단계로서, 여기서
    Figure 112012059818165-pct00335
    에 대해, 각각의 테이블(
    Figure 112012059818165-pct00336
    )은 각각의 대응 테이블(Ti) 및 이후 모호화 테이블이라 불리며, 상기 아벨군 연산자를 이용하여, 대응 테이블(
    Figure 112012059818165-pct00337
    ) 및 상기 테이블(O)의 구성을 통하여 형성되는 적어도 하나의 테이블들(
    Figure 112012059818165-pct00339
    ), 및 이후 보상 테이블이라 불리며, 상기 아벨군 연산자를 이용하여, 상기 테이블(C)을 포함하는 구성을 통하여 형성되는 적어도 하나의 다른 테이블들(
    Figure 112012059818165-pct00341
    )을 나타내는, 상기 생성 단계;
    상기 실행 장치에 상기 다수의 테이블들(
    Figure 112012059818165-pct00342
    )을 제공하는 단계; 및
    상기 실행 장치에서, 상기 테이블들(O 및 C)이 상기 구성을 통하여 보상되도록, 상기 아벨군 연산자를 이용하여 상기 다수의 테이블들(
    Figure 112012059818165-pct00343
    )을 구성함으로써 상기 암호 함수(F)와 기능적으로 동일한 함수(F')를 형성하는 단계를 포함하는, 암호 함수 제공 방법.
  2. 제 1 항에 있어서,
    상기 테이블들(O 및 C)은 동일한 논-트리비얼(non-trivial) 상수(b1)를 나타내고,
    상기 모호화 테이블(
    Figure 112007040398049-pct00344
    )을 생성하는 단계는, 대응 테이블(
    Figure 112007040398049-pct00345
    )의 각각의 엘리먼트와 상기 상수(b1)를 결합하기 위하여 상기 아벨군 연산자를 사용하는 단계를 포함하며,
    상기 보상 테이블(
    Figure 112007040398049-pct00346
    )을 생성하는 단계는 상기 대응 테이블(
    Figure 112007040398049-pct00347
    )의 각각의 엘리먼트와 상기 상수(b1)를 결합하기 위하여 상기 아벨군 연산자를 사용하는 단계를 포함하는, 암호 함수 제공 방법.
  3. 제 2 항에 있어서,
    m=n인, 암호 함수 제공 방법.
  4. 제 2 항에 있어서,
    Figure 112012059818165-pct00348
    이도록 추가 테이블(O2) 및 추가 테이블(C2)을 선택하는 단계로서, O2는 O와 구별되고, 상기 테이블들(O2 및 C2)은 동일한 논-트리비얼 상수(b2)를 나타내는, 상기 추가 테이블 선택 단계; 및
    상기 아벨군 연산자를 이용하여 상기 대응 테이블(
    Figure 112012059818165-pct00349
    ) 및 상기 테이블(O2)의 구성을 통하여 적어도 하나의 추가 모호화 테이블(
    Figure 112012059818165-pct00351
    )을 형성하고, 상기 테이블(C2)을 또한 포함하는 구성을 통하여 상기 보상 테이블(
    Figure 112012059818165-pct00353
    )을 형성하는 단계를 포함하는, 암호 함수 제공 방법.
  5. 제 1 항에 있어서,
    m=n+1 및 c1=m인, 암호 함수 제공 방법.
  6. 제 5 항에 있어서,
    상기 모호화 테이블(
    Figure 112007040398049-pct00354
    )은 상기 도메인 부분(
    Figure 112007040398049-pct00355
    )에 이용되고, O는
    Figure 112007040398049-pct00356
    ,
    Figure 112007040398049-pct00357
    에 적용된 매핑 테이블이며, 상기 방법은 상기 도메인(D)을 D'=(D0',...,Dn', Dn+1')으로 확장하는 단계를 포함하고, 여기서 상기 보상 테이블(
    Figure 112007040398049-pct00358
    )을 형성하는 구성이
    Figure 112007040398049-pct00359
    을 포함하도록 i<=n 및
    Figure 112007040398049-pct00360
    의 표현을 포함하는 Dn+1에 대해 Di=Di'인, 암호 함수 제공 방법.
  7. 제 6 항에 있어서,
    O는 준동형(homomorphism)이고, 상기 방법은 아벨군 연산자를 사용하여 대응 테이블(Ti) 및 테이블의 구성을 통하여 다수의 모호화 테이블들(
    Figure 112012059818165-pct00361
    )을 형성하는 단계, 및 아벨군 연산자를 사용하여 상기 포함된 테이블들(
    Figure 112012059818165-pct00363
    )의 대응 서브도메인들의 구성을 통하여 상기 도메인 확장(
    Figure 112012059818165-pct00364
    )을 형성하는 단계를 포함하는, 암호 함수 제공 방법.
  8. 모호화된 형태로 실행 장치(320)에 암호 함수(F)를 제공하는 시스템(300)에 있어서,
    상기 시스템은 서버(310) 및 실행 장치(320)를 포함하고, 상기 함수(F)는 미리 결정된 도메인(D)으로부터의 입력(x)을, 각각 키형 정보를 가지고 상기 도메인(D)의 각각의 부분(Di)에서 동작하는 다수의 비선형 매핑 테이블들(
    Figure 112012059818165-pct00366
    )을 이용하여, 출력(y)으로 암호적으로 변환하고, 상기 함수(F)는 아벨군 연산자(
    Figure 112012059818165-pct00367
    )를 이용하여 상기 매핑 테이블들의 출력을 구성하며,
    상기 서버는, 프로그램의 제어하에,
    Figure 112012059818165-pct00369
    이도록 테이블(O) 및 테이블(C)을 선택하고,
    다수의 테이블들(
    Figure 112012059818165-pct00370
    )을 생성하고, 여기서
    Figure 112012059818165-pct00371
    에 대해, 각각의 테이블(
    Figure 112012059818165-pct00372
    )은 각각의 대응 테이블(Ti) 및 이후 모호화 테이블이라 불리며, 상기 아벨군 연산자를 사용하여 대응 테이블(
    Figure 112012059818165-pct00373
    ) 및 상기 테이블(O)의 구성을 통하여 형성되는 적어도 하나의 테이블들(
    Figure 112012059818165-pct00375
    ), 및 이후 보상 테이블이라 불리며 상기 아벨군 연산자를 사용하여 상기 테이블(C)을 포함하는 구성을 통하여 형성되는 적어도 하나의 다른 테이블들(
    Figure 112012059818165-pct00377
    )을 나타내는, 프로세서(312)와,
    상기 실행 장치에 상기 다수의 테이블들(
    Figure 112012059818165-pct00378
    )을 제공하기 위한 수단(314)을 포함하고,
    상기 실행 장치(320)는,
    상기 서버로부터 상기 다수의 테이블들(
    Figure 112012059818165-pct00379
    )을 수신하기 위한 수단(324)과,
    프로그램의 제어하에서, 상기 테이블들(O 및 C)이 구성을 통하여 보상되도록, 상기 아벨군 연산자를 사용하여 상기 다수의 테이블들(
    Figure 112012059818165-pct00380
    )을 구성함으로써 상기 암호 함수(F)에 기능적으로 동일한 함수(F')를 형성하기 위한, 프로세서(322)를 포함하는, 암호 함수 제공 시스템.
  9. 제 8 항에 있어서,
    상기 서버(310)의 프로그램은 상기 프로세서(312)가 상기 실행 장치(320)에 대한 프로그램을 형성하도록 동작하며, 상기 실행 장치에 대한 프로그램은 다수의 테이블들(
    Figure 112007040398049-pct00381
    )을 포함하고, 상기 실행 장치의 프로세서가 모호화된 함수(F')를 형성하게 하는 명령들을 포함하는, 암호 함수 제공 시스템.
  10. 제 8 항에 청구된 시스템(300)에 사용하기 위한 서버(320)로서,
    암호 함수(F)는 모호화된 형태로 실행 장치에 제공되고, 상기 함수(F)는 미리 결정된 도메인(D)으로부터의 입력(x)을, 각각 키형 정보를 가지고 상기 도메인(D)의 각각의 부분(Di)에서 동작하는 다수의 비선형 매핑 테이블(
    Figure 112012059818165-pct00382
    )을 이용하여, 출력(y)으로 암호적으로 변환하고, 상기 함수(F)는 아벨군 연산자(
    Figure 112012059818165-pct00383
    )를 이용하여 상기 매핑 테이블들의 출력을 구성하는, 상기 서버에 있어서:
    프로그램의 제어 하에,
    Figure 112012059818165-pct00385
    이도록 테이블(O) 및 테이블(C)을 선택하고,
    다수의 테이블들(
    Figure 112012059818165-pct00386
    )을 생성하고, 여기서
    Figure 112012059818165-pct00387
    에 대해, 각각의 테이블(
    Figure 112012059818165-pct00388
    )은 각각의 대응 테이블(Ti) 및 이후 모호화 테이블이라 불리고, 상기 아벨군 연산자를 사용하여 대응 테이블(
    Figure 112012059818165-pct00389
    ) 및 상기 테이블(O)의 구성을 통하여 형성되는 적어도 하나의 테이블들(
    Figure 112012059818165-pct00391
    ), 및 이후 보상 테이블이라 불리고 상기 아벨군 연산자를 사용하여 상기 테이블(C)을 포함하는 구성을 통하여 형성되는 적어도 하나의 다른 테이블들(
    Figure 112012059818165-pct00393
    )을 나타내는, 프로세서(312); 및
    상기 실행 장치에 다수의 테이블들(
    Figure 112012059818165-pct00394
    )을 제공하기 위한 수단(314)을 포함하는, 서버.
  11. 제 10 항에 청구된 서버(310)에서 프로세서(312)를 제어하기 위한 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 기록 매체에 있어서:
    암호 함수(F)는 모호화된 형태로 실행 장치(320)에 제공되고,
    상기 함수(F)는 미리 결정된 도메인(D)으로부터의 입력(x)을, 각각 키형 정보를 가지고 상기 도메인(D)의 각각의 부분(Di) 상에서 동작하는 다수의 비선형 맵핑 테이블들(
    Figure 112012059818165-pct00395
    )을 이용하여, 출력(y)으로 암호적으로 변환하고, 상기 함수(F)는 아벨군 연산자(
    Figure 112012059818165-pct00396
    )를 사용하여 매핑 테이블들의 출력을 구성하고,
    상기 컴퓨터 프로그램은 프로세서가,
    Figure 112012059818165-pct00398
    이도록 테이블(O 및 C)을 선택하게 하고, 다수의 테이블들(
    Figure 112012059818165-pct00399
    )을 생성하게 하며, 여기서 0≤i≤n에 대해, 각각의 테이블(
    Figure 112012059818165-pct00400
    )은 각각의 대응 테이블(Ti) 및 이후 모호화 테이블이라 불리고, 상기 아벨군 연산자를 사용하여 대응 테이블(
    Figure 112012059818165-pct00401
    ) 및 상기 테이블(O)의 구성을 통하여 형성되는 적어도 하나의 테이블들(
    Figure 112012059818165-pct00403
    ), 및 이후 보상 테이블이라 불리고, 상기 아벨군 연산자를 사용하여 상기 테이블(C)을 포함하는 구성을 통하여 형성되는 적어도 하나의 다른 테이블들(
    Figure 112012059818165-pct00405
    )을 나타내는, 컴퓨터 판독 가능한 기록 매체.
  12. 제 8 항에 청구된 시스템(300)에 사용하기 위한 실행 장치(320)로서,
    암호 함수(F)는 모호화된 형태로 실행 장치에 제공되고, 상기 함수(F)는 미리 결정된 도메인(D)으로부터의 입력(x)을, 각각 키형 정보를 가지고 상기 도메인(D)의 각각의 부분(Di)에서 동작하는 다수의 비선형 맵핑 테이블들(
    Figure 112012059818165-pct00406
    )을 이용하여, 출력(y)으로 암호적으로 변환하고, 상기 함수(F)는 아벨군 연산자(
    Figure 112012059818165-pct00407
    )를 사용하여, 맵핑 테이블들의 출력을 구성하는, 상기 실행 장치(320)에 있어서,
    다수의 테이블들(
    Figure 112012059818165-pct00409
    )을 수신하기 위한 수단(324)으로서, 여기서
    Figure 112012059818165-pct00410
    에 대해, 각각의 테이블(
    Figure 112012059818165-pct00411
    )은 각각의 대응 테이블(Ti) 및 이후 모호화 테이블이라 불리고, 상기 아벨군 연산자를 이용하여 대응 테이블(
    Figure 112012059818165-pct00412
    ) 및 테이블(O)의 구성을 통하여 형성되는 적어도 하나의 테이블들(
    Figure 112012059818165-pct00414
    ), 및 이후 보상 테이블이라 불리고, 상기 아벨군 연산자를 이용하여, 테이블(C)을 포함하는 구성을 통하여 형성되는 적어도 하나의 다른 테이블들(
    Figure 112012059818165-pct00416
    )을 나타내며, 여기서
    Figure 112012059818165-pct00417
    인, 상기 수신 수단; 및
    프로그램의 제어하에서, 상기 테이블들(O 및 C)이 구성을 통하여 보상되도록, 아벨군 연산자를 사용하여 다수의 테이블들(
    Figure 112012059818165-pct00418
    )을 구성함으로써 상기 암호 함수(F)와 기능적으로 동일한 함수(F')를 형성하는 프로세서(322)를 포함하는, 실행 장치.
  13. 실행 장치(320)에서 프로세서(322)를 제어하기 위한 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 기록 매체에 있어서,
    암호 함수(F)는 모호화된 형태로 실행 장치에 제공되고, 상기 함수(F)는 미리 결정된 도메인(D)으로부터의 입력(x)을, 각각 키형 정보를 가지고 상기 도메인(D)의 각각의 부분(Di)에서 동작하는 다수의 비선형 매핑 테이블들(
    Figure 112012059818165-pct00419
    )을 이용하여, 출력(y)으로 암호적으로 변환하고, 상기 함수(F)는 아벨군 연산자(
    Figure 112012059818165-pct00420
    )를 사용하여 맵핑 테이블들의 출력을 구성하고,
    상기 암호 함수(F)는 다수의 테이블들(
    Figure 112012059818165-pct00422
    )을 포함하는 모호화된 형태로 수신되고, 여기서
    Figure 112012059818165-pct00423
    에 대해, 각각의 테이블(
    Figure 112012059818165-pct00424
    )은 각각의 대응 테이블(Ti) 및 이후 모호화 테이블이라 불리고 상기 아벨군 연산자를 이용하여 대응 테이블(
    Figure 112012059818165-pct00425
    ) 및 테이블(O)의 구성을 통하여 형성되는 적어도 하나의 테이블들(
    Figure 112012059818165-pct00427
    ), 및 이후 보상 테이블이라 불리고, 상기 아벨군 연산자를 이용하여, 테이블(C)을 포함하는 구성을 통하여 형성되는 적어도 하나의 다른 테이블들(
    Figure 112012059818165-pct00429
    )을 나타내며, 여기서
    Figure 112012059818165-pct00430
    이고,
    상기 컴퓨터 프로그램은 프로세서가, 상기 테이블들(O 및 C)이 구성을 통하여 보상되도록, 아벨군 연산자를 사용하여 다수의 테이블들(
    Figure 112012059818165-pct00431
    )을 구성함으로써 상기 암호 함수(F)와 기능적으로 동일한 함수(F')를 형성하게 하는 프로그램 명령들을 포함하는, 컴퓨터 판독 가능한 기록 매체.
  14. 제 1 항에 있어서,
    상기 함수 F 는
    Figure 112012059818165-pct00432
    의 관계를 만족하고,
    Figure 112012059818165-pct00433
    이며,
    Figure 112012059818165-pct00434
    인 것을 특징으로 하는, 암호 함수 제공 방법.
  15. 제 4 항에 있어서,
    Figure 112012059818165-pct00435
    이고,
    Figure 112012059818165-pct00436
    인 것을 특징으로 하는, 암호 함수 제공 방법.
  16. 제 7 항에 있어서,
    Figure 112012059818165-pct00437
    이고,
    Figure 112012059818165-pct00438
    인 것을 특징으로 하는, 암호 함수 제공 방법.
  17. 제 8 항에 있어서,
    상기 함수 F 는
    Figure 112012059818165-pct00439
    의 관계를 만족하고,
    Figure 112012059818165-pct00440
    이며,
    Figure 112012059818165-pct00441
    인 것을 특징으로 하는, 암호 함수 제공 시스템.
  18. 제 10 항에 있어서,
    상기 함수 F 는
    Figure 112012059818165-pct00442
    의 관계를 만족하고,
    Figure 112012059818165-pct00443
    이며,
    Figure 112012059818165-pct00444
    인 것을 특징으로 하는, 서버.
  19. 제 11 항 또는 제 13 항에 있어서,
    상기 함수 F 는
    Figure 112012059818165-pct00445
    의 관계를 만족하고,
    Figure 112012059818165-pct00446
    이며,
    Figure 112012059818165-pct00447
    인 것을 특징으로 하는, 컴퓨터 판독 가능한 기록 매체.
  20. 제 12 항에 있어서,
    상기 함수 F 는
    Figure 112012059818165-pct00448
    의 관계를 만족하고,
    Figure 112012059818165-pct00449
    이며,
    Figure 112012059818165-pct00450
    인 것을 특징으로 하는, 실행 장치.
KR1020077012027A 2004-10-28 2005-10-24 암호 함수 모호화 방법 및 시스템 KR101226167B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP04105373 2004-10-28
EP04105373.7 2004-10-28
PCT/IB2005/053468 WO2006046187A1 (en) 2004-10-28 2005-10-24 Method and system for obfuscating a cryptographic function

Publications (2)

Publication Number Publication Date
KR20070070252A KR20070070252A (ko) 2007-07-03
KR101226167B1 true KR101226167B1 (ko) 2013-01-24

Family

ID=35517605

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077012027A KR101226167B1 (ko) 2004-10-28 2005-10-24 암호 함수 모호화 방법 및 시스템

Country Status (6)

Country Link
US (1) US7881466B2 (ko)
EP (1) EP1807965B1 (ko)
JP (1) JP5026275B2 (ko)
KR (1) KR101226167B1 (ko)
CN (1) CN101048969B (ko)
WO (1) WO2006046187A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8577026B2 (en) 2010-12-29 2013-11-05 Ternarylogic Llc Methods and apparatus in alternate finite field based coders and decoders
US7772999B2 (en) * 2007-12-10 2010-08-10 Peter Lablans N-state ripple adder scheme coding with corresponding n-state ripple adder scheme decoding
US20110064214A1 (en) * 2003-09-09 2011-03-17 Ternarylogic Llc Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US8479016B2 (en) 2006-03-10 2013-07-02 Irdeto B.V. Method and system for obfuscating a cryptographic function
US8700915B2 (en) 2006-07-12 2014-04-15 Irdeto Corporate B.V. Method and system for verifying authenticity of at least part of an execution environment for executing a computer module
JP5496663B2 (ja) 2006-07-12 2014-05-21 イルデト・コーポレート・ビー・ヴイ デジタルデータ処理装置の耐改竄性
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP5023624B2 (ja) * 2006-09-01 2012-09-12 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN101321059B (zh) * 2007-06-07 2011-02-16 管海明 一种用于编码和译码数字消息的方法和系统
CN101321060B (zh) * 2007-06-07 2011-06-08 管海明 一种用于编码和译码数字消息的方法和系统
FR2924879B1 (fr) * 2007-12-07 2009-12-18 Sagem Securite Procede de codage d'un secret forme par une valeur numerique
US8584256B2 (en) * 2010-04-21 2013-11-12 Fox Entertainment Group, Inc. Digital delivery system and user interface for enabling the digital delivery of media content
US10339570B2 (en) 2010-04-21 2019-07-02 Fox Entertainment Group, Inc. Customized billboard website advertisements
JP5682527B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
EP3085004A1 (en) * 2013-12-20 2016-10-26 Koninklijke Philips N.V. Operator lifting in cryptographic algorithm
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
CN110995433A (zh) * 2019-10-28 2020-04-10 北京三快在线科技有限公司 数据加密方法、装置、电子设备及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658569B1 (en) 1999-02-04 2003-12-02 Bull Cp8 Secret key cryptographic process for protecting a computer system against attacks by physical analysis

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7957998A (en) * 1997-06-09 1999-01-25 Intertrust, Incorporated Obfuscation techniques for enhancing software security
EP1090480B1 (en) * 1998-06-03 2019-01-09 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
CA2388971A1 (en) * 1999-10-25 2001-05-03 Cypherix (Pty) Limited Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals
CA2327911A1 (en) * 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
FR2820576B1 (fr) * 2001-02-08 2003-06-20 St Microelectronics Sa Procede de cryptage protege contre les analyses de consommation energetique, et composant utilisant un tel procede de cryptage
GB0211812D0 (en) * 2002-05-23 2002-07-03 Koninkl Philips Electronics Nv S-box encryption in block cipher implementations

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658569B1 (en) 1999-02-04 2003-12-02 Bull Cp8 Secret key cryptographic process for protecting a computer system against attacks by physical analysis

Also Published As

Publication number Publication date
EP1807965B1 (en) 2019-01-30
US7881466B2 (en) 2011-02-01
JP5026275B2 (ja) 2012-09-12
CN101048969A (zh) 2007-10-03
KR20070070252A (ko) 2007-07-03
US20090122978A1 (en) 2009-05-14
JP2008518262A (ja) 2008-05-29
EP1807965A1 (en) 2007-07-18
WO2006046187A1 (en) 2006-05-04
CN101048969B (zh) 2012-04-04

Similar Documents

Publication Publication Date Title
KR101226167B1 (ko) 암호 함수 모호화 방법 및 시스템
JP5249053B2 (ja) データ処理システムの完全性
KR101079565B1 (ko) 각각의 암호화 라운드의 코어 암호화 함수를 숨기기 위해 치환들을 사용하는 블록 암호화 시스템
JP5688528B2 (ja) 入力に依存する符号化を用いたホワイトボックス暗号システム
JP5355554B2 (ja) 暗号用鍵データの更新
CA2717622C (en) White-box implementation
US9602273B2 (en) Implementing key scheduling for white-box DES implementation
CN106888081B (zh) 白盒实施方案内中间值的宽编码
EP2922235B1 (en) Security module for secure function execution on untrusted platform
JP2014207717A (ja) 指数難読化
JP5496880B2 (ja) データセキュリティ
US9639674B2 (en) Using single white-box implementation with multiple external encodings
Jeong et al. An efficient protection scheme of digital contents under mobile devices

Legal Events

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

Payment date: 20160108

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170105

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee