KR101203474B1 - 암호화 프로세서를 갖는 단위 전자장치의 보안화 방법 - Google Patents
암호화 프로세서를 갖는 단위 전자장치의 보안화 방법 Download PDFInfo
- Publication number
- KR101203474B1 KR101203474B1 KR1020057017167A KR20057017167A KR101203474B1 KR 101203474 B1 KR101203474 B1 KR 101203474B1 KR 1020057017167 A KR1020057017167 A KR 1020057017167A KR 20057017167 A KR20057017167 A KR 20057017167A KR 101203474 B1 KR101203474 B1 KR 101203474B1
- Authority
- KR
- South Korea
- Prior art keywords
- key
- keys
- new
- sub
- possible values
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- 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
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
-
- 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
- H04L9/0625—Block 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
-
- 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
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 하나의 키 K를 이용하여 연산 과정(f)을 자동실행을 할 수 있는 하드웨어 구성요소를 포함하는 전자 장치를 보안화하는 방법에 관한 것이다. 상기 방법은 적어도 2개의 새로운 키 K'i를 연산하되, 상기 새로운 키들 중 적어도 하나는 키 K와 동일하고 상기 새로운 키들 중 하나는 키 K와 상이하게 되도록 연산하는 단계와, 상기 하드웨어 구성요소를 이용하여, 상기 연산된 키 K'i의 각각에 의해 순차적으로 상기 연산 과정(f)을 실행하는 단계를 포함한다.
비밀 키, 서브키, 연산, 암호화, 보안화
Description
본 발명은 암호화 프로세서와 같은 하드웨어 구성요소를 포함하고 있는 전자 장치를 보안화하는 방법에 관한 것으로서, 비밀키와 같은 비밀 숫자(secret quantity)를 이용하여 암호화 알고리즘을 자동실행하는 것을 목적으로 하는 것이다. 보다 상세하게, 본 발명의 프로세스는 차분 전력 분석(Differential Power Analysis; DPA)으로 칭해지는 일정 형태의 물리적 공격(1차 또는 고차의 전자 공격)에 대해 암호화 프로세서를 보안화하도록 고안된 것이다. 상기 물리적 공격은 연산실행 동안 전자 장치의 전력 소모를 연구함으로써 비밀 키에 관한 정보를 얻고자 하는 것이다.
발명의 배경
일정 구성요소는 하드웨어 DES 알고리즘을 포함하고 있다. DES 알고리즘은 20 마이크로초 단위의 극도로 빠른 처리와, SPA 및 DFA 공격에 견딜 수 있는 장점이 있다. 불행하게도 DES 알고리즘은 1차 DPA 공격을 방어할 수 없다. 실제로, 적절한 숫자, 즉 10,000단위의 샘플들로 키를 추출할 수 있다. 이러한 공격받기 쉬운 문제에 직면하여 보안 소프트웨어 DES를 다시 프로그래밍할 필요가 있다.
본 발명은 암호화 프로세서를 포함하는 구성요소 또는 이와 동등한 장치를 보안화하는 방법 및 시스템을 제안하고자 하는데 그 목적이 있고, 특히 DPA 형태의 공격에 대한 보안화 방법 및 시스템을 제안하는데 목적이 있다.
본 명세서에서 고려되는 암호화 알고리즘은 입력정보에 따라 출력정보를 연산하기 위해 비밀 키를 이용한다. 이는 암호화, 복호화, 서명, 서명검증, 인증 또는 비-부인(non-repudiation) 동작을 포함할 수 있다. 이 알고리즘은 입력과 출력에 대한 지식을 갖고 있는 공격자가 실제로 비밀 키 자체와 관련된 어떠한 정보도 추론할 수 없도록 구성되어 있다. 다수의 어플리케이션의 보안화는, DES 또는 보다 최근의 AES 알고리즘과 같은 비밀 키 암호화 알고리즘에 기반을 두고 있다. 상기 AES 알고리즘은 근래에 국제적인 암호화 표준으로서 받아들여지고 있다(John Daemen, Vincent Rijmen; AES proposal; Rijndael: http://csrc.nist.gov/encryption/aes/rijdael/Rijndael.pdf 참조).
본 발명자는 비밀 키 알고리즘 또는 대칭 알고리즘이라는 표현에 의해 전통적으로 지정되는 범위 보다 더 넓은 범위에 관심을 갖고 있다. 특히, 본원에서 기재된 사항들 모두는 소위 공개 키 또는 비대칭 알고리즘에도 적용된다. 비대칭 알고리즘은 실제로 2개의 키를 도입하고 있고, 이중 하나는 공개된 것이고 다른 하나는 비밀로서 공개되지 않은 것인데, 공개되지 않은 키가 후술되는 바와 같은 공격의 대상이 된다.
Paul Kocher에 의해 기술된 전력 분석 형태의 공격과 본 명세서에서 언급된 암호기법 연구("Introduction to Differential Power Analysis and Related Attacks" by Paul Kocher, Joshua Jaffe and Benjamin Jun, Cryptography Research, 870 Market St., Suite 1008, San Francisco, CA 94102, URL 주소 http://www.cryptography.com/dpa/technical/index.html에서 입수가능한 HTML 문서 참조)는, 실제 공격자가 단순한 입력과 출력 데이터 외의 정보를 예를 들어 마이크로콘트롤러의 전력소모 또는 회로에 의해 방출되는 전자기 방사와 같은 연산의 실행에 근거하여 획득할 수 있다는 관찰에 근거를 두고 있다. 키와 같은 비밀 숫자에 의존하는 이러한 정보는 카드로부터 누설된다.
DPA로 약칭되는 차분 전력 분석은, 전자 장치에 포함된 비밀 키에 관한 정보를 얻는 것을 가능케 하는 공격으로서 동일한 키로 수 많은 연산에 대한 전력소모의 기록들에 대해 통계적 분석을 함으로써 이루어진다.
본 발명에서는 본 발명을 제한하지 않는 예시로서 DES(데이터 암호화 표준) 알고리즘의 경우를 고려할 수 있고, 이에 대한 기재는 다음과 같은 문서들에서 발견될 수 있다:
FIPS PUB 46-2, Data Encryption Standard, 1994;
FIPS PUB 74, Guidelines for Implementing and Using the NBS Data Encryption Standard, 1981;
ANSI X3.92, American National Standard, Data Encryption Algorithm, 1981;
ISO/IEC 8731:1987, Banking-Approved Algorithms for Message Authentication-PartⅠ: Data Encryption Algorithm(DEA).
또는, 다음과 같은 저서인 "Bruce Schneier, Applied Cryptography, 2nd edition, John Wiley & Sons, 1996, page 270"에서 DES(데이터 암호화 표준) 알고리즘에 대한 기재를 발견할 수 있다. 상기 언급된 문서들은 참조의 목적으로 본 명세서에서 사용된다. DES 알고리즘은 라운드로서 언급되는 16개 단계로 실행된다(상기 저서의 그림 1a 참조). 16개 라운드의 각각에서, 변환 F는 32비트에서 실행된다. 이러한 변환 F는 8개의 6-비트에서 4비트로의 비선형 변환을 이용하고, 이들 변환 각각은 S 박스(S1, S2, ……, S8로 표시됨)로서 언급되는 테이블(상기 저서의 그림 1b 참조)에서 코드화되어 있다.
DES 알고리즘에 대한 DPA 공격은 다음과 같이 수행될 수 있다.
제1단계: 1,000개의 DES 연산들에 대한 제1 라운드에서 전력소모가 측정된다. 이들 1,000개 연산들에 대한 입력값들은 E[1],……,E[1000]으로서 표시된다. 이들 연산들에 대해 측정된 전력 소모에 대응하는 1,000개의 곡선들은 C[1],……, C[1,000]로서 표시된다. 또한, 평균 곡선 CM이 상기 1,000개의 곡선들에 대해 계산된다.
제2단계: 본 발명에서는 예를 들어 제1라운드에서 제1 S박스로부터 제1 출력비트를 고려한다. 이 비트 값은 b로서 표시된다. b는 단지 비밀 키의 6비트에 대해 의존하는 것을 쉽게 알 수 있다. 공격자는 관련 6비트에 관해 가정을 한다. 공격자는 이들 6비트 및 E[i]로부터 b에 대해 예측되는 이론값을 계산한다. 이는 1,000개의 입력들 E[1],……,E[1000]를 두 개의 카테고리, 즉 b=0인 것과 b=1인 것으로 분리하는 것을 가능하게 한다.
제3단계: 이후, 평균값 CM'이 제1 카테고리 입력, 즉 b=0인 경우의 입력에 대응하는 곡선에 대해 계산된다. 만약, CM 및 CM'이 주목할 만한 차이를 나타내면, 상기 키의 6비트에 대해 채택된 값들이 올바른 것으로 생각된다. 만약, CM 및 CM'이 통계적 의미에서 주목할 만한 차이를 나타내지 않는다면, 즉 차이가 측정 잡음에 대한 전형적인 편차 보다 실질적으로 크지 않다면 제2단계는 6비트에 대한 다른 선택을 위해 반복된다.
제4단계: 제2단계 및 제3단계가 제2 S박스로부터의 목표 비트 b에 의해 반복되고, 그런 다음에 제3 S박스로부터의 목표 비트 b, 그리고 차례차례로 제4, 제5, 제6, 제7, 제8 S박스로부터의 목표 비트 b에 의해 제2단계 및 제3단계가 반복된다. 이 방법에서는 비밀 키의 48개 비트가 최종적으로 얻어진다.
제5단계: 잔여 8비트가 소모성 서치에 의해 발견될 수 있다.
이러한 공격은 각 명령에 대한 개별적인 전력소모에 관한 지식과, 이들 명령 각각의 시간적 위치에 관한 지식을 요구하지 않는다. 이것은, 공격자가 알고리즘의 출력과, 대응하는 전력소모 곡선을 알고 있다고 가정하면 동일한 방식으로 적용된다. 이는 오로지 다음과 같은 기본적인 가정에 근거하고 있다.
기본적 가정: 알고리즘의 연산과정 중에 나타나는 중간 변수(intermediate variable)가 존재하는데, 약간의 키 비트, 실제적으로 32비트 미만의 비트에 대한 지식이, 2개의 출력에 대한 2개의 입력이 이러한 중간 변수에 대해 동일한 값을 주는지 여부를 결정하기에 충분할 정도로 중간 변수가 존재한다.
DES 알고리즘과 같은 S박스 원리를 이용하는 모든 알고리즘은 잠재적으로 DPA 공격에 취약하다. 왜냐하면 통상적인 구현방법은 전술한 가정 체계의 범주에 속하기 때문이다.
소위 고차의 차분 전력 분석 공격(HO-DPA로 약칭됨)은 전술한 DPA 형태의 공격의 일반화라고 할 수 있다. 이것은 전력소모와는 별개의 다수의 다른 정보원을 이용하고 전자기 방사, 온도 등의 측정을 포함할 수 있으며, 단순한 평균에 대한 고려 보다는 덜 기초적인 중간 변수(상기에서 정의된 비트 b의 일반화)에 의해 복잡한 통계적인 처리를 하는 것을 이용할 수 있다. 그럼에도 불구하고, 이것은 DPA 공격과 동일한 기본적 가정에 정확하게 근거하고 있다.
발명의 요약
본 발명은 키(K)를 이용하여 연산과정을 자동실행할 수 있는 하드웨어 구성요소를 포함하는 전자 장치를 보안화하는 방법에 관한 것으로서,
적어도 2개의 새로운 키 K'i를 연산하되, 적어도 하나에 대해서는 i=j, K'j=K(i는 양의 정수)이고, 적어도 하나에 대해서는 i=t, K't< >K 가 되도록 하는 연산하는 단계와,
상기 하드웨어 구성요소를 이용하여, 상기 연산된 키 K'i의 각각에 의해 순차적으로 상기 연산 과정을 실행하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 하나의 구체예에 따르면, 본 방법은 I=αm개의 새로운 키 K'1 내지 K'I를 연산하되, 주어진 j(0〈j〈n+1)에 대해, 서브키 K'ij(0〈i〈I+1)가 서브키 Kj의 값을 포함하는 모든 가능한 값들을 취하도록 연산하는 단계와, 무작위 방식으로 상기 I개의 새로운 키 K'1 내지 K'I에 의해 하드웨어 암호화 함수(f)를 실행하는 단계를 포함한다.
또한, 본 발명은 상기 방법을 구현하기 위한 전자 장치 및 예를 들어 스마트 카드와 프로그램에 관한 것이다.
본 발명의 다른 목적, 이점 및 특성은 본 발명에 따르는 방법의 구체예에 관한 하기의 설명으로부터 명확하게 이해되며, 이러한 구체예를 위해 채택되는 전자 장치의 실행방법이 본 발명을 제한하지 않고 예시로서 첨부된 도면을 참조하여 설명된다.
도1은 본 발명의 전자 장치를 도시하는 개략적인 도면이다.
도2는 도1의 전자장치의 하드웨어 구성요소를 도시하는 개략적인 도면이다.
도3은 본 발명의 방법을 도시하는 개략적인 도면이다.
본 발명의 방법은 전자 장치, 예를 들어 비밀 키를 이용하는 암호화 연산처리를 실행하는 스마트 카드와 같은 온-보드(on-board)시스템을 보안화하기 위해 설계된다. 상기 전자 장치는 프로세서와 같은 정보를 처리하는 수단과, 메모리와 같은 정보저장수단을 포함한다.
본 발명을 제한하지 않는 예시로서, 후술되는 전자 장치는 도1에 도시된 전 자 모듈(1)을 포함하는 온-보드 시스템에 상응한다. 이러한 형태의 모듈은 일반적으로 모노리식 집적 회로 또는 칩의 형태를 취하는데, 이들은 공지에 수단에 의해 물리적으로 보호되고 스마트 카드, 마이크로회로 카드 또는 다양한 분야에서 이용가능한 다른 것들과 같은 휴대용 물건 상에 장착가능하다.
마이크로프로세서 전자 모듈(1)은 CPU 마이크로프로세서(3)를 포함하는데, 이 CPU 마이크로프로세서는 내부버스(5)를 경유하여 양 방향으로, ROM, EEPROM, 플래시 메모리, FeRAM 또는 실행가능한 프로그램을 저장하는 다른 형태의 메모리의 비-휘발성 메모리(7)와, RAM 메모리(11)와, 외부와 통신하기 위한 I/O 장치(13)와, 암호화 프로세서 연산 유닛(15)(CRYPTO P)과 연결되어 있다. 암호화 프로세서 연산 유닛(15)(CRYPTO P)의 구성요소는 예를 들어 DES 알고리즘 연산과 같은 자동 암호화 연산을 할 수 있다. 도2에 도시된 바와 같이, 상기 모듈(1)의 암호화 프로세서(15)는 EEPROM 형태와 같은 메모리의 비밀 영역에 저장된 비밀 키 K를 이용하여 메시지(M)에 대해 연산 과정(f)을 수행한다.
본 발명에서는 일반적인 형태의 해결책을 최초로 고려한다. 도3에 도시된 바와 같이, 목적은 키 K를 이용하여 메시지(M)에 대한 암호화 함수(E)의 결과인 E(M,K)를 연산하는 것이다. 이러한 목적을 위해, 함수(f)가 고려되는데, 이 함수는 블랙박스로서의 능력면에서 함수(E)와 동일한 연산을 실행하지만 특히 DPA 공격에 방어할 수 없다. 따라서, 키 K가 n개의 작은 서브 키들 mb(mb〈10비트를 취하거나, 또는 각 서브키에 대해 m=2mb개의 가능한 값들을 취함)의 형태로 상기 알고리즘에 관해 동작하는 것을 고려한다. 상기 서브 키들은 K1, K2, …, Kn으로 표시되고, 특히 DPA 공격에 민감하다. 후술되는 구체예에서 서브키들은 동일한 크기이다. 또한, 본 발명은 서로 다른 크기의 서브키에 대해서도 적용된다.
본 발명은 암호화 프로세서(15)에 의해 수행되는 암호화 함수의 보안화를 위해, 외부 소프트웨어 모듈(17)을 암호화 프로세서와 연관시키는 단계를 포함한다.
도3에 도시된 바와 같이, 본 방법은 I=αm개의 새로운 키 K'1 내지 K'I를 연산하되, 주어진 j(0〈j〈n+1)에 대해, 각각의 서브키 K'ij(0〈i〈I+1)가 구체적인 실행인 α곱에 따라 서브키 Kj의 값을 포함하는 모든 가능한 값들을 취하도록 연산하는 단계와, 무작위 방식으로 상기 I개의 새로운 키 K'1 내지 K'I에 의해 하드웨어 암호화 함수(f)를 실행하는 단계를 포함한다.
바꾸어 말하면, 아이디어는 I=αm의 연속적인 연산을, 키 K'i(0≤i〈I)로 수행하여 K'i = K가 되도록 하는 i가 존재하도록 하는데 있다.
모든 j에 대해, {K'ij, 0≤i〈n} = {0,1, …, n-1}을 고려하고, 이때 각 서브키는 정확하게 α배로 나타난다.
이것은 각각의 가능한 서브키가 동일 배수로 나타나도록 수 많은 연속적인 연산을 서로 다른 키(진실한 키를 포함)로 수행하는 것을 의미한다. 또한, 연산은 무작위 순서로 수행된다. 결론적으로, 서브키가 다른 서브키 보다 빈번히 나타나거 나 적은 횟수로 나타나지 않기 때문에, 공격자는 DPA 공격에 의해 정확한 서브키를 확인하는 기회가 없게 된다.
이러한 대항수단(이하, CM으로 약칭)이 상이한 알고리즘에 어떻게 적용되는지 살펴본다.
DES 알고리즘에 대한 단순한 적용
주석
DES 알고리즘에 대해서는 다음과 같은 표시방법을 채택한다.
PC1은 키를 64비트에서 56비트로 줄이는, 키의 초기 순열(permutation)을 나타낸다. IPC1은 누락된 8비트가 완성되는 역PC1(56비트에서 64비트)를 나타낸다(패러티 비트가 자주 사용됨). PC2는 압축 순열(56비트에서 48비트)과 제1라운드로의 키의 이동의 조합을 나타낸다. IPC2는 결정되지 않은 8비트(8=56-48)가 임의로 선택(예를 들어 무작위 선택)되는 역PC2(48비트에서 56비트)를 나타낸다. 48비트에서 64비트로의 순열(IPC2와 IPC1의 조합)은 PP로서 표시된다.
PP는, DES 알고리즘의 제1라운드에서 사용되는 48비트를 가진 키 K48로부터 출발하여 하기의 특성을 갖는 전역적 키 K64[=PP(K48)]에 이르게 하는 것을 가능케 한다. K64를 DES 연산을 위한 키로서 사용하여 제1라운드에서 제1서브키로서 K48을 얻게 된다.
본 발명의 대항방법을 구체적인 항목으로 어떻게 적용할 수 있는지에 대해 살펴본다.
1.1 대항방법(CM)의 초기 수행
DES 알고리즘의 경우, m=64인 경우를 가정할 때 서브키들은 각각 mb=6비트인 n=8의 서브키의 형태로서 사용된다. 다음의 파생 키들로 64회의 연속적인 연산(α=1인 경우)을 실행한다:
따라서, 제1라운드에서 사용되는 8개의 서브키 각각에 대해, 64개의 가능한 값들이 동등하게 제시되고 진정한 키 K00은 리스트에 존재함을 쉽게 알 수 있다. 그리고, 단지 무작위 순서로 64개의 파생 키들로 64회의 DES 연산을 실행하고 올바른 키가 사용된 경우의 최종 결과를 선택하는 것이 필요하다.
이는 다음과 같은 방식으로 수행될 수 있다. 16개의 메모리 바이트가 상기 결과를 저장하기 위해 할당된다. 또한, 추가적인 바이트가 각각의 Ki에 대해 할당되는데(이 경우 0 또는 8에서 초기화됨), 이 추가적인 바이트는 이로부터 상기 결과가 메모리에 저장되는 바이트를 가리킨다. 따라서, 이 바이트는, K00(값 0을 취함)을 제외하고 모든 키에 대해 값 8을 취하게 된다. 이것은, 메모리 카피를 실행 하는 함수, PP(i|…|i)을 연산하는 함수 및 64개 키들을 무작위화하는 함수를 이용할 수 있는 점을 고려할 때, 다음의 유사코드 C를 닮을 수 있는 비교적 일반적인 코드의 사용을 가능하게 한다.
1.2 일반적인 보안화 고려
DPA의 관점에서, 공격자는 DES 알고리즘의 64회 실행의 각각의 대해 진정한 키가 관련되었는지 여부를 구별할 수 없어 통상적인 DPA로는 알고리즘을 공격할 수 없다. 그러나, 상기 방법의 프로그래밍은 매우 엄격한 접근법을 요구하고 있음을 상기해야 하는데, 이는 비록 드물지만 올바른 키를 구별할 수 있게 하는 분석이 대항방법(CM)을 완전히 무력화시킬 수 있기 때문이다. 따라서, 다음과 같은 중요 포인트에 대한 주의가 요망된다.
- 무작위화: 본 단계는 진정한 키를 외부자에게 알려져서는 안되는 위치 0≤i〈64로 이동시키는 것이다.
- 결과 카피(j로의 루프): 여기서 다시, 2개의 값(0 또는 8)이 관여되는데, 이 값이 폭로된다면 공격자는 어느 DES 알고리즘이 진정한 키를 사용하는지를 알 수 있게 된다.
3.4 대항방법(CM)의 확장 및 다양한 측면
함수 PP에 대해 면밀히 보면, 키를 마스크하기 위해 앞서 실행된 바와 같이 8개의 서브키에 대해 동일한 값을 사용할 필요가 없음을 알 수 있다. 서브키를 취할 때 단지 64개의 가능한 값들이 출현하는 것만이 요구된다. 주어진 서브기에 대한 64개 값들의 순서가 다른 서브키의 경우와 동일할 필요가 없다. 서브키의 값 0(이 경우 진정한 서브키가 사용됨)이 8개의 서브키에 대해 동일한 시간에 나타남으로써 64개의 연산들 중 하나가 올바른 결과를 제공하는 것만이 요구된다. 따라서, 다음과 같은 파생을 예측할 수 있다.
이는 단지 값[1,63]의 무작위 순열을 실행하는 함수만을 요구한다.
초기 위치에 항상 나타나는 마스크(000000|…|000000)는 문제를 일으키지 않는다는 사실에 주목해야 하는데, 이는 파생 키들이 사용되기 전에 무작위로 순열화되기 때문이다. 서브키 i에 대응시키기 위해, 올바른 위치에 값(val)에 대한 6비트를 대체시키는 함수 PP2(i,val)를 고려한다면 다음과 같은 유사코드 C를 얻을 수 있다.
64개의 파생 키들에 대한 무작위화는 다음의 통상적인 방법(cf. DES 알고리즘에 대한 HODPA 공격에 관한 Crypto'2002 또는 Akkar/Goubin 문헌)을 이용하여 수행될 수 있다. 이 방법은 인덱스 i로 0부터 63까지 키들을 스캐닝하는 단계와, 인덱스 i를 가진 키를, 0부터 63 사이에서 무작위로 선택된 인덱스를 가진 키로 교환하는 단계를 포함한다.
3.5 다른 DES 라운드
DPS 공격에 대해 제1 DES 라운드를 방어하는 방법에 대해 고찰하였다. DES가 사용되는 프로토콜에서의 제16 라운드 상에서 공격받기 쉬운 경우, 유사한 방법이 당연히 예견될 수 있다. 함수 PP만이 변화하고 제16 라운드에 대한 키-스케쥴링에 대응한다. 이때, 제1 라운드 및 마지막 라운드 양자를 보호하는 64개 키 마스크를 사용하는 것이 가능하다.
분명하게, 이러한 대항방법(또는 적어도 중요한 부분)은, 컴파일러에 의해 사용되는 방법과의 부조화에 기인하는 공격취약성의 유발을 회피하기 위해, 어셈블러 모드에서 수행되어야 한다.
2. AES 알고리즘으로의 적용
분명하게, 이러한 방법은 유사한 방식으로 AES 알고리즘에 적용할 수 있다. 이것은 사용된 제1 서브키(자주 타겟이 됨)가 다른 변환을 갖지 않는 키를 포함하기 때문에, 보다 간단히 설명가능하다. 다른 실제적인 차이점은 키가 8비트 ×8비트로 발생한다는 사실로부터 유래한다. 따라서, 키 및 128 비트 메시지를 갖는 AES 알고리즘의 경우, 다음과 같은 파생 키와 유사코드 C를 얻게 된다.
유일한 실제적인 차이점은 AES 알고리즘에 대한 키-스케쥴링(key-scheduling)이 DES와는 대조적으로 제1 서브키를 제외하고는 선형이 아니라는 점이다. 따라서, 본 방법에 의해 마지막 라운드를 보호하기를 원한다면, DES와 유사한 방법은 고려될 수 없다. 이때에는 키 파생 방식 대신에 주어진 키에 특정한 256개 의 키들의 세트를 저장하는 것이 필요하다.
3. 결론
64 DES(또는 256 AES) 알고리즘의 실행 및 수 많은 보조적인 연산에 의해, 비록 비보호이지만 신속한 브릭(brick) 수단으로 DPA 공격에 대해 암호화 알고리즘 (예를 들어, DES 또는 AES)을 보호하는 것이 가능하다. 64개의 DES 또는 256개의 AES는 길게 보일 수도 있지만, 실제 하드웨어 동작은 거의 무시할 만한 시간만을 소요한다.
Claims (14)
- 키(K)를 이용하여 연산 과정(f)을 자동실행할 수 있는 하드웨어 구성요소를 포함하는 전자 장치를 보안화하는 방법에 있어서,다음 기능들을 행하도록 적어도 하나의 프로세서를 구성하는 단계;적어도 2개의 새로운 키(K'i)(i는 양의 정수)를 연산하되, 상기 새로운 키들 중 적어도 하나는 키(K)와 동일하고 상기 새로운 키들 중 적어도 하나는 키(K)와 상이하게 되도록 연산하는 단계와,상기 하드웨어 구성요소를 이용하여, 상기 연산된 키 (K'i)의 각각에 의해 순차적으로 상기 연산 과정(f)을 실행하여 각 연산된 키 (K'i)에 대응하는 결과를 생성하는 단계; 및상기 키(K)와 동일한 상기 연산된 키 (K'i)에 대응하는 결과만 연산과정의 출력으로서 되돌리는 단계를 포함하는 것을 특징으로 하는 전자 장치를 보안화하는 방법.
- 제1항에 있어서,무작위 순서로 상기 키(K'i)에 의해 상기 연산 과정을 실행하는 단계를 포함하는 것을 특징으로 하는 전자 장치를 보안화하는 방법.
- 제1항 또는 제2항에 있어서,키(K)는 서브키(K1 내지 Kn)으로 분할되고,I=αm개(α는 i가 m의 곱으로 되도록 하는 양의 정수이고, m은 키(K'i)의 서브키(K'ij) 중 하나에 대해 가능한 값들의 수를 나타냄)의 새로운 키(K'1 내지 K'I)를 연산하되, 주어진 j(0〈j〈n+1)에 대해, 서브키 (K'ij)(0〈i〈I+1)가 키(K)의 서브키(Kj)에 대한 값을 포함하는 모든 가능한 값들을 취하는 방식으로 연산하는 단계를 포함하는 것을 특징으로 하는 전자 장치를 보안화하는 방법.
- 제3항에 있어서, 상기 서브키(K'ij)(0〈i〈I+1)는 모든 가능한 값들의 α곱을 취할 수 있는 것을 특징으로 하는 전자 장치를 보안화하는 방법.
- 제1항 또는 제2항에 있어서, 상기 키(K)는 서브키(K1 내지 Kn)으로 분할되고, 상기 키(K'i)가 적어도 하나의 서브키 (K'ij)에 대해 K와 다르도록 적어도 하나의 i가 존재하는 것을 특징으로 하는 전자 장치를 보안화하는 방법.
- 제5항에 있어서,키(K)는 서브키(K1 내지 Kn)으로 분할되고,I=αm개(m은 키(K'i)의 서브키(K'ij) 중 하나에 대해 가능한 값들의 수를 나타냄)의 새로운 키(K'1 내지 K'I)를 연산하되, 주어진 j(0〈j〈n+1)에 대해, 서브키 (K'ij)(0〈i〈I+1)가 키(K)의 서브키(Kj)에 대한 값을 포함하는 모든 가능한 값들을 취하는 방식으로 연산하는 단계를 포함하는 것을 특징으로 하는 전자 장치를 보안화하는 방법.
- 제6항에 있어서, 상기 서브키(K'ij)(0〈i〈I+1)는 모든 가능한 값들의 α곱을 취할 수 있는 것을 특징으로 하는 전자 장치를 보안화하는 방법.
- 연산 과정을 저장하는 수단, 상기 연산 과정을 실행하는 수단 및 키(K)를 이용하여 연산 과정을 자동실행할 수 있는 하드웨어 구성요소를 포함하는 전자 장치에 있어서,소프트웨어 모듈이 하드웨어 구성요소와 연관되어,적어도 2개의 새로운 키(K'i)(i는 양의 정수)를 연산하되, 상기 새로운 키들 중 적어도 하나는 키(K)와 동일하고 상기 새로운 키들 중 하나는 키(K)와 상이하게 되도록 하고,상기 새로운 키(K'i)의 각각으로 상기 연산 과정을 수행하기 위해 연산된 상기 새로운 키들을 연이어서 상기 하드웨어 구성요소로 전송할 수 있도록 하고;각 연산된 키 (K'i)에 대응하는 결과를 생성하고;상기 키(K)와 동일한 상기 연산된 키 (K'i)에 대응하는 결과만 연산과정의 출력으로서 되돌리도록 실행하는 것을 특징으로 하는 전자 장치.
- 제8항에 있어서,상기 소프트웨어 모듈은 무작위 순서로 연산된 상기 새로운 키들을 연이어서 전송하는 것을 특징으로 하는 전자 장치.
- 키(K)를 이용하여 연산 과정(f)의 기능들을 행하도록 전자 장치 상의 프로세서에 의한 액세스에 따라 실행되는 컴퓨터 프로그램 명령들을 저장하는 컴퓨터 저장 매체로서,적어도 2개의 새로운 키(K'i)(i는 양의 정수)를 연산하되, 상기 새로운 키들 중 적어도 하나는 키(K)와 동일하고 상기 새로운 키들 중 적어도 하나는 키(K)와 상이하게 되도록 하는 단계;하드웨어 구성요소를 이용하여, 상기 연산된 키 (K'i)의 각각에 의해 순차적으로 상기 연산 과정(f)을 실행하여 각 연산된 키 (K'i)에 대응하는 결과를 생성하는 단계;상기 키(K)와 동일한 상기 연산된 키 (K'i)에 대응하는 결과만 연산과정의 출력으로서 되돌리는 단계를 포함하는 것을 특징으로 하는 컴퓨터 저장 매체.
- 제10항에 있어서, 무작위 순서로 상기 키(K'i)에 의해 상기 연산 과정을 실행하는 것을 포함하는 것을 특징으로 하는 컴퓨터 저장 매체.
- 제10항에 있어서, 상기 키(K)는 서브키(K1 내지 Kn)으로 분할되고, 상기 키(K'i)가 적어도 하나의 서브키 (K'ij)에 대해 K와 다르도록 적어도 하나의 i가 존재하는 것을 특징으로 하는 컴퓨터 저장 매체.
- 제10항 또는 제12항에 있어서, 상기 키(K)는 서브키(K1 내지 Kn)으로 분할되고, I=αm개(α는 i가 m의 곱으로 되도록 하는 양의 정수이고, m은 키(K'i)의 서브키(K'ij) 중 하나에 대해 가능한 값들의 수를 나타냄)의 새로운 키(K'1 내지 K'I)를 연산하되, 주어진 j(0〈j〈n+1)에 대해, 서브키 (K'ij)(0〈i〈I+1)가 키(K)의 서브키(Kj)에 대한 값을 포함하는 모든 가능한 값들을 취하는 방식으로 연산하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 저장 매체.
- 제13항에 있어서, 상기 서브키(K'ij)(0〈i〈I+1)는 모든 가능한 값들의 α곱을 취할 수 있는 것을 특징으로 하는 컴퓨터 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03290655A EP1457858A1 (fr) | 2003-03-14 | 2003-03-14 | Procédé de sécurisation d'un ensemble électronique à cryptoprocesseur |
EP03290655.4 | 2003-03-14 | ||
PCT/IB2004/000738 WO2004081769A1 (en) | 2003-03-14 | 2004-03-12 | Process of security of a unit electronic unit with cryptoprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050116823A KR20050116823A (ko) | 2005-12-13 |
KR101203474B1 true KR101203474B1 (ko) | 2012-11-21 |
Family
ID=32749016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057017167A KR101203474B1 (ko) | 2003-03-14 | 2004-03-12 | 암호화 프로세서를 갖는 단위 전자장치의 보안화 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7747012B2 (ko) |
EP (2) | EP1457858A1 (ko) |
JP (1) | JP2006520565A (ko) |
KR (1) | KR101203474B1 (ko) |
AT (1) | ATE533099T1 (ko) |
WO (1) | WO2004081769A1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7213766B2 (en) | 2003-11-17 | 2007-05-08 | Dpd Patent Trust Ltd | Multi-interface compact personal token apparatus and methods of use |
US7762470B2 (en) | 2003-11-17 | 2010-07-27 | Dpd Patent Trust Ltd. | RFID token with multiple interface controller |
US7597250B2 (en) | 2003-11-17 | 2009-10-06 | Dpd Patent Trust Ltd. | RFID reader with multiple interfaces |
JP4634788B2 (ja) * | 2004-12-17 | 2011-02-16 | 株式会社東芝 | 暗号演算回路と、該暗号演算回路を有する情報処理装置及びicカード |
EP2438511B1 (en) | 2010-03-22 | 2019-07-03 | LRDC Systems, LLC | A method of identifying and protecting the integrity of a set of source data |
FR2985624B1 (fr) * | 2012-01-11 | 2014-11-21 | Inside Secure | Procede de chiffrement protege contre des attaques par canaux auxiliaires |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001031422A2 (en) * | 1999-10-25 | 2001-05-03 | Cyphermanx Consultants Limited | Method for protection against analysis of unintended side-channel signals |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000165375A (ja) * | 1998-11-30 | 2000-06-16 | Hitachi Ltd | 情報処理装置、icカード |
JP2000187618A (ja) * | 1998-12-22 | 2000-07-04 | Casio Comput Co Ltd | 情報処理装置 |
FR2802741B1 (fr) * | 1999-12-15 | 2003-10-31 | Sagem | Dispositif mettant en oeuvre un algorithme de chiffrage par bloc a repetition de rondes |
JP4596686B2 (ja) * | 2001-06-13 | 2010-12-08 | 富士通株式会社 | Dpaに対して安全な暗号化 |
JP2003018143A (ja) * | 2001-06-28 | 2003-01-17 | Mitsubishi Electric Corp | 情報処理装置 |
-
2003
- 2003-03-14 EP EP03290655A patent/EP1457858A1/fr not_active Withdrawn
-
2004
- 2004-03-12 US US10/548,916 patent/US7747012B2/en active Active
- 2004-03-12 EP EP04720103A patent/EP1606685B1/en not_active Expired - Lifetime
- 2004-03-12 AT AT04720103T patent/ATE533099T1/de active
- 2004-03-12 KR KR1020057017167A patent/KR101203474B1/ko active IP Right Grant
- 2004-03-12 WO PCT/IB2004/000738 patent/WO2004081769A1/en active Application Filing
- 2004-03-12 JP JP2006506342A patent/JP2006520565A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001031422A2 (en) * | 1999-10-25 | 2001-05-03 | Cyphermanx Consultants Limited | Method for protection against analysis of unintended side-channel signals |
Also Published As
Publication number | Publication date |
---|---|
EP1457858A1 (fr) | 2004-09-15 |
KR20050116823A (ko) | 2005-12-13 |
EP1606685A1 (en) | 2005-12-21 |
ATE533099T1 (de) | 2011-11-15 |
US7747012B2 (en) | 2010-06-29 |
US20060277239A1 (en) | 2006-12-07 |
JP2006520565A (ja) | 2006-09-07 |
EP1606685B1 (en) | 2011-11-09 |
WO2004081769A1 (en) | 2004-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107005404B (zh) | 实现密码算法的可执行的白盒掩码实施的处理器装置 | |
US8971526B2 (en) | Method of counter-measuring against side-channel attacks | |
CN101006677B (zh) | 用于实施加密运算的方法和装置 | |
US8553877B2 (en) | Substitution table masking for cryptographic processes | |
US8074076B2 (en) | Method to protect a cryptographic assembly by homographic masking | |
US9515820B2 (en) | Protection against side channels | |
CN106487497B (zh) | 对rijndael算法的dpa保护 | |
US10243728B2 (en) | Verification of the resistance of an electronic circuit to side-channel attacks | |
US10187198B2 (en) | Protection of a rijndael algorithm | |
Hutter et al. | A cryptographic processor for low-resource devices: Canning ECDSA and AES like sardines | |
JP2008516502A (ja) | 命令の暗号セットを自動的に生成する方法および装置ならびにコード生成 | |
JP5184659B2 (ja) | 秘密鍵を伴う電子暗号アセンブリを安全に守る方法 | |
KR100834096B1 (ko) | 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법 | |
KR101203474B1 (ko) | 암호화 프로세서를 갖는 단위 전자장치의 보안화 방법 | |
US7050581B1 (en) | Method for making secure one or several computer installations using a common secret key algorithm, use of the method and a computer system utilizing the method | |
KR102327771B1 (ko) | 테이블 기반 구현에서의 차수 2 이상의 dca 공격에 대응하는 방법 | |
WO2024105133A1 (en) | Security measures protecting digital security devices when performing cryptographic operations | |
GB2468419A (en) | Circuit for detecting data or address errors in a smart card | |
Ptáček | Power analysis of AES | |
TW201312982A (zh) | 旁通道攻擊的防禦方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20181112 Year of fee payment: 7 |