KR20130012940A - 부채널 공격에 대항한 역탐 방법 - Google Patents

부채널 공격에 대항한 역탐 방법 Download PDF

Info

Publication number
KR20130012940A
KR20130012940A KR1020120081695A KR20120081695A KR20130012940A KR 20130012940 A KR20130012940 A KR 20130012940A KR 1020120081695 A KR1020120081695 A KR 1020120081695A KR 20120081695 A KR20120081695 A KR 20120081695A KR 20130012940 A KR20130012940 A KR 20130012940A
Authority
KR
South Korea
Prior art keywords
function
adr
mip
match
comapre
Prior art date
Application number
KR1020120081695A
Other languages
English (en)
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 KR20130012940A publication Critical patent/KR20130012940A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에 따르면, 마스크 중간 변수에 하나 이상의 비선형 함수를 구비하는 블록암호 알고리즘을 실행하는 단계를 포함하는 부채널 공격에 대항한 역탐 방법으로서, 상기 적어도 하나의 비선형 함수는 매치-인-플레이스 함수를 이용해 실행되는 것을 특징으로 하는 부채널 공격에 대항한 역탐 방법이 제공된다.

Description

부채널 공격에 대항한 역탐 방법{A METHOD OF COUNTER-MEASURING AGAINST SIDE-CHANNEL ATTACKS}
본 발명은 블록암호를 위한 부채널 공격에 대항한 역탐 방법에 관한 것으로, 보다 상세하게는 매치-인-플레이스(match-in-place) 기능을 이용한 역탐 방법에 관한 것이나 이에 국한되지 않는다.
가장 널리 사용되는 암호화 알고리즘인 고급암호표준(Advanced Encryption Standard, AES)과 같이 오늘날 사용중인 많은 기존의 암호화 알고리즘들은 차분전력분석(Differential Power Analysis, DPA)에 취약하다. DPA는 먼저 암호화 알고리즘 실행시 마이크로프로세서의 전력소비를 측정한 후 암호화를 위해 암호화 알고리즘에 사용된 비밀키를 복구하도록 통계적 분석을 수행하는 부채널 공격이다. 비밀키가 결정되고 나면, 암호화 정보를 해독할 수 있다.
암호화를 위한 암호화 알고리즘에 사용된 비밀키를 결정하기 위해 마이크로프로세서의 전자기 방사가 또한 측정되고 이용될 수 있다.
DPA에 맞서 비밀키 알고리즘을 보호하기 위한 공통적인 기술은 랜덤 마스크로 모든 중간 변수를 마스킹하는 것으로 구성된다. 그런 후 마스킹된 데이터와 랜덤 마스크는 분리 처리되고 결국 알고리즘의 끝에서 재결합된다. 단일지점에서 마이크로프로세서의 전력소비를 분석하려고 시도하는 공격자는 랜덤값(랜덤 데이터값 및 랜덤 마스크 값)을 얻게 될 것이며, 따라서, 이런 마스킹은 1차 DPA에 대하여 안전해질 것이다.
마스킹 역탐은 소정의 민감한 변수를 보호하기 위해 사용된 랜덤 마스크의 개수들로 특징된다; d개의 랜덤 마스크를 가진 마스킹을 d차 마스킹이라 한다. d차 마스킹은 단지 (d+1)차 부채널 분석, 즉, 동시에 d+1 변수의 처리를 필요로 하는 공격에 의해서만 해독될 수 있다. 역탐을 푸는데 필요한 실행 회수는 d차수에 따라 지수함수적으로 커진다. 그러므로, d 차수는 양호한 보안 기준이다. 그러나, 실제로 가장 효율적인 역탐은 단지 d=1차이다.
마스크된 데이터를 해독하기 위한 2차 DPA 공격이 가능한 것이 밝혀졌다. 그러므로, 완전히 안전한 데이터 암호를 얻기 위해 더 나은 역탐이 요구된다.
역탐에서 한층 더한 발전이 이루어졌다: 부채널 공격에 대항한 가장 최근 역탐들 중 하나는 d=2 차수의 역탐이다.
임의의 마스킹 역탐을 위한 주요 어려움은 알고리즘의 비선형부를 보호하는 것이다: 고급암호표준(AES)에 대해, 알고리즘의 비선형부는 기본적으로 SBOX 함수이다. 사용된 기술들은 서브루틴으로서 실행되는 비교 알고리즘을 이용해 전체 SBOX 함수에 걸쳐 매 SBOX 루프마다 반복하는 것으로 구성된다. 모든 SBOX 입력에 대해 호출되는 비교 알고리즘은 역탐이 임의의 2차 부채널 공격에 저항할 수 있음을 보여줄 수 있다.
그러나, 이런 마스킹 역탐은 실행중 많은 연산을 필요로 하고 또한 실행중 대부분의 마이크로프로세서 메모리를 이용하기 때문에 대체로 비효율적이다.
본 발명의 목적은 상술한 단점들 중 적어도 일부를 제거하거나 완화시키는 것이다.
본 발명에 따르면, 이들 목적은 중간 변수를 마스크하기 위해 하나 이상의 비선형 함수를 포함하는 블록암호 알고리즘을 실행하는 단계를 포함하는 부채널 공격에 대항한 역탐 방법으로서, 상기 적어도 하나의 비선형 함수는 매치-인-플레이스 함수를 이용해 실행되는 것을 특징으로 하는 부채널 공격에 대항한 역탐 방법에 의해 달성된다.
본 발명의 방법은 방법의 효율을 향상시키기 위해 매치-인-플레이스 함수를 이용한다. 매치-인-플레이스 함수를 이용함으로써 부채널 공격에 대항한 효과적인 역탐을 제공하는데 필요한 연산 회수가 줄어든다. 더욱이, 공지의 방법들에 비해 본 발명의 방법을 실행하는데 적은 메모리가 요구된다.
매치-인-플레이스 함수는 비트-랜덤화 매치-인-플레이스 함수(MIPI(data; adr,b))일 수 있다.
비트-랜덤화 매치-인-플레이스 함수는
Figure pat00001
로서 정의되고, adr은 메모리내 어드레스이고, data는 메모리내 어드레스에 저장될 수 있는 변수이며, b는 데이터 변수가 메모리내 어드레스(adr)에 있는 실제 데이터와 같다면 반환되는 값이며, 그렇지 않으면 b의 보수가 반환되고, b는 비트 값일 수 있다.
하기의 관계:
MIPI(data; adr,b)=MIP ( data ; adr )
Figure pat00002
Figure pat00003
가 있을 수 있고,
Figure pat00004
는 b의 보수이다.
비선형 함수 중 적어도 하나는
Figure pat00005
에 의해 정의된 comapre b 함수를 포함할 수 있고, x는 comapre b 함수의 제 1 입력 변수이고, y는 comapre b 함수의 제 2 입력 변수이며, b는 x가 y와 같을 경우 반환되는 값이고,
Figure pat00006
는 x가 y와 같지 않을 경우 반환되는 값이므로, comapre b 함수는
메모리내 어드레스(adr)에 변수(x)를 기록하고;
Figure pat00007
같이 정의된 비트-랜덤화 매치-인-플레이스 함수를 실행하며;
MIPI(y; adr,b)를 반환한다.
비선형 함수는 바이트치환(SubByte) 연산에 포함될 수 있다. 비선형 함수는 AES 알고리즘의 바이트치환 연산에 포함될 수 있다.
블록암호 알고리즘은 하나 이상의 선형함수를 더 포함할 수 있다. 상기 하나 이상의 선형함수들 중 적어도 하나는 상기 함수의 변수들을 XOR함으로써 마스크될 수 있다.
블록암호 알고리즘은 고급암화표준(AES) 알고리즘일 수 있다.
본 발명의 다른 태양에 따르면, 상술한 방법들 중 어느 하나에 따른 방법을 실행하도록 구성된 컴퓨터 프로그램을 구비한 컴퓨터 판독가능 매체가 제공된다.
본 발명의 다른 태양에 따르면,
단계 (ⅰ): b ← rand(1)
단계 (ⅱ): a = 0 에서 2n - 1에 대해
(a) 쓰기 (r1
Figure pat00008
a; adr)
(b) cmp ← MIPI(r2; adr,b)
(c) Rcmp ← (S(
Figure pat00009
Figure pat00010
a)
Figure pat00011
s1)
Figure pat00012
s2
단계 (ⅲ): Rb 반환을 포함하고,
여기서, b는 레지스터를 색인한 랜덤 비트를 나타내는 변수이고, a는 (a)-(c)단계가 실행되는 횟수를 정의하는 색인을 나타내는 변수이며, r1,r2는 한 쌍의 입력 마스크이고,
Figure pat00013
Figure pat00014
=x
Figure pat00015
r1
Figure pat00016
r2
Figure pat00017
∈Fn2인 마스크 값이며, s1,s2는 한 쌍의 출력 마스크이고, adr은 프리 메모리 어드레스이며, cmp는 레지스터를 나타내고 함수 MIPI(r2; adr,b)의 출력인 비트 변수이고, Rcmp는 마이크로프로세서의 레지스터의 각 레지스터 어드레스이다. 일반적으로, 마이크로프로세서에서 적어도 2개의 레지스터(R0 및 R1)가 사용된다(즉, cmp는 0 또는 1일 수 있다; cmp=0인 경우 제 1 레지스터(R0)가 색인/어드레스되고, cmp=1인 경우 제 2 레지스터(R1)가 색인/어드레스된다). Rb는 마이크로프로세서의 레지스터의 레지스터 어드레스이다. 일반적으로 마이크로프로세서에서 적어도 2개의 레지스터(R0 및 R1)가 사용된다(즉, b는 0 또는 1일 수 있다; b=0인 경우 레지스터(R0)가 색인/어드레스되고, b=1인 경우 레지스터(R1)가 색인/어드레스된다). MIPI(r2; adr,b)는
Figure pat00018
로 정의된 비트-랜덤화 매치-인-플레이스 함수이다.
본 발명의 다른 태양에 따르면, 2차 마스크 S-box 함수를 계산하는 상술한 방법을 실행하도록 구성된 컴퓨터 프로그램을 구비한 컴퓨터 판독가능 매체가 제공된다.
본 발명의 내용에 포함됨.
본 발명은 예로써 주어지고 도면에 예시된 실시예에 대한 설명의 도움으로 더 잘 이해된다:
도 1은 AES 암호화용 유사코드이다.
도 2는 AES 암호화용 유사코드이다.
도 3은 메모리 전송 개수(전처리 단계), XOR 개수 및 메모리 전송(주요 단계), 및 compareb 기능의 본래 실행과 본 발명에 따른 compareb 기능의 실행을 위해 필요한 메모리를 포함한 표를 도시한 것이다.
도 4는 XOR 개수, 메모리 전송 개수 및 본 발명의 방법을 이용하여 compareb 기능을 실행하는 총 2차 Rivain-Dottax-Prouff(a full second Rivain-Dottax-Prouff, RDP2)에 필요한 메모리를 포함한 표를 도시한 것이다.
AES 암호화 알고리즘에서 본 발명의 방법의 이용을 상세히 설명한다. 그러나, 본 발명의 방법은 AES 암호화 알고리즘과 사용하는 것에 국한되지 않는 것을 알아야 한다: 본 발명의 방법은 임의의 블록암호 알고리즘에 이용될 수 있다.
AES 암호화 알고리즘은 '상태'라고 하는 si ,j 바이트의 4×4 어레이로 연산한다. 암호화를 위해, (마지막 서브파트를 제외하고) AES 암호화 알고리즘의 각 서브파트는 하기의 4단계를 포함한다:
1. 라운드키추가 ( AddRoundKey ): 상태의 각 바이트는 키 스케쥴로부터 도출된 라운드키 ki ,j와 XOR된다:
si ,j ← si ,j
Figure pat00019
ki ,j
2. 바이트치환( SubBytes ): 상태의 각 바이트는 8비트 S-box 함수를 이용해 업데이트된다:
si ,j ← S(si ,j)
S-box 함수는 아래와 같이 정의된다:
S(x) = Aff(Inv(x)).
여기서, Aff는 GF(28)에 대한 아핀함수(affine function)이고
Inv(x) = x254
는 (0→0으로) GF(28)에 대한 역함수이다.
3. 행이동 ( ShiftRows ): 상태의 각 바이트는 각 행에서 소정의 오프셋트만큼 싸이클적으로 이동된다; 제 1 행은 불변으로 남아 있다.
4. 열혼합 ( MixColumms ): 상태의 각 바이트는 하기와 같이 컬럼 단위로 변경된다:
sI 0 ,c ← (02 ·s0 ,c)
Figure pat00020
(03 ·s1 ,c)
Figure pat00021
s2 ,c
Figure pat00022
s3 ,c
sI 1 ,c ← s0 ,c
Figure pat00023
(02 ·s1 ,c)
Figure pat00024
(03 ·s2 ,c)
Figure pat00025
s3 ,c
sI 2 ,c ← s0 ,c
Figure pat00026
s1 ,c
Figure pat00027
(02 ·s2 ,c)
Figure pat00028
(03 ·s3 ,c)
sI 3 ,c ← (03 ·s0 ,c )
Figure pat00029
s1 ,c
Figure pat00030
s2 ,c
Figure pat00031
(02 ·s3 ,c)
128 비트 키로 AES 암호화를 위한 유사코드가 도 1에 주어져 있다. 워드 어레이 'w'는 키-스케쥴 알고리즘에 의해 발생된 라운드키(ki ,j)를 포함한다.
해독을 위해, (마지막을 제외한) 모든 라운드는 하기의 연산을 포함한다:
1. 역행이동( InvShiftRows ):은 행이동(ShiftRows)(암호화 단계 3)의 역이다. 상태의 바이트(상술한 바와 같이 AES 암호화에 사용된 중간 변수의 세트)는 소정 오프세트만큼 각 행에서 싸이클적으로 이동된다: 바이트의 제 1 행은 불변으로 남아 있다.
2. 역바이트치환 ( InvSubBytes ):은 바이트치환(SubBytes)(암호화 단계 2)의 역이다. 역 S-box(S-1)는
S-1 (x) = Inv(Aff-1(x))
로 상태의 각 바이트에 적용된다:
3. AddRoundKey : 연산은 그 자신의 역과 같다.
4. InvMixColumns:는 열혼합(MixColumms)(암호화 단계 4)의 역이다. 상태의 바이트는 하기와 같이 컬럼 단위로 변경된다:
sI 0 ,c ← (0e ·s0 ,c)
Figure pat00032
(0b ·s1 ,c)
Figure pat00033
(0d ·s2 ,c)
Figure pat00034
(09 ·s3 ,c)
sI 1 ,c ← (09 ·s0 ,c)
Figure pat00035
(0e ·s1 ,c)
Figure pat00036
(0b ·s2 ,c)
Figure pat00037
(0d ·s3 ,c)
sI 2 ,c ← (0d ·s0 ,c) (09 ·s1 ,c)
Figure pat00039
(0e ·s2 ,c)
Figure pat00040
(0b ·s3 ,c)
sI 3 ,c ← (0b ·s0 ,c)
Figure pat00041
(0d ·s1 ,c)
Figure pat00042
(09 ·s2 ,c)
Figure pat00043
(0e ·s3 ,c)
역 암호를 위한 유사코드가 도 2에 주어져 있다.
마지막으로, 라운드 키-스케쥴(ki,j)은 다음의 연산을 기초로 한다:
1. 서브워드( SubWord )는 4바이트 입력워드를 취하고 S-box(S(x))를 각각의 4 바이트에 적용한다.
2. 로트워드(RotWord)는 입력으로서 워드 [a0; a1; a2; a3]를 취하고, 순환순열을 수행해 [a1; a2; a3; a0]로 돌아온다.
3. Rcon Xor(Xor with Rcon)은 32비트 워드를 입력으로서 취하고 이를 라운드 상수 워드 어레이:
Rcon[i] = [(02)i-1; 00; 00; 00], (라운드 1 ≤i ≤10에 대해)
와 xor한다. 키-스케줄의 전체 설명에 대해 참조문헌 [5]를 참조한다.
도입부에 언급한 바와 같이, 마스킹 역탐의 원리는 하나 이상의 랜덤 마스크로 모든 중간 변수를 마스크하는 것이다. d=2차수로 역탐을 마스킹하는 경우, 2개 마스크들이 사용되며, 이는 총 3개의 몫을 제공한다. 보다 정확하게, (AES에서 바이트로 표현된) 임의의 상태 변수(p)는
p = p0
Figure pat00044
p1
Figure pat00045
p2
에 따라 3개의 쉐어(share)(p0; p1; p2)로 분배되며, 여기서, 쉐어(p1 및 p2)를 마스크라 한다.
3개의 쉐어(p0, p1 및 p2)는 이전 관계가 암호화 알고리즘의 실행 내내 보존되는 식으로 처리되어야 한다. 유사하게 라운드키의 모든 바이트(k)는
k = k0
Figure pat00046
k1
Figure pat00047
k2
이도록 3개의 쉐어(k0; k1; k2)로 분배되어야 한다.
블록암호의 선형부는 처리하기가 쉽다. 함수(f)는 다음의 관계가 유지될 때 선형이라 한다:
Figure pat00048
이런 선형 함수에 대해 입력으로서
p = p0
Figure pat00049
p1
Figure pat00050
p2
이도록 3개의 쉐어(p0, p1 및 p2)가 주어질 경우, f(p0), f(p1) 및 f(p2)을 별도로 계산하기에 충분하며 수학식(1)로부터 다음을 얻는다:
f(p) = f(p0)
Figure pat00051
f(p1)
Figure pat00052
f(p2).
그러므로, 3개의 쉐어(f(p0), f(p1) 및 f(p2))는 출력 f(p)의 유효 쉐어링이다. AES 암호화를 위해, AddRoundKey , ShiftRows MixColumns 연산은 선형함수이며 따라서 이런 식으로 처리될 수 있다. 그러나, (AES의 경우 S-box 함수와 같이) SubBytes 연산은 비선형이며 다르게 처리되어야 한다.
AES의 경우에서 S-box 함수와 같은 비선형 연산을 처리하기 위해, 알고리즘은 다음과 같이 정의될 수 있다:
S : {0; 1}n → {0; 1}m
AES에 대해 n=m=8임에 유의하라. 알고리즘은 바람직하게는 하기와 같이 정의된 마스크 함수(comapre b )를 포함한다:
Figure pat00053
여기서, x 및 y는 comapre b 함수의 입력 변수이다.
2차 마스크 입력으로부터 2차 마스크 S-box 함수의 계산은 다음과 같이 수행될 수 있다:
입력: 마스크 값
Figure pat00054
, 여기서 r1;r2는 입력 마스크 쌍이고 s1;s2∈Fm 2는 출력 마스크 쌍이다.
출력: 마스크 S-box 함수는 S(x)
Figure pat00055
s1
Figure pat00056
s2를 출력한다.
1. b ← rand(1)
2. a = 0 에서 2n - 1에 대해
(a) cmp ← compare b (r1
Figure pat00057
a; r2)
(b) Rcmp ← (S(
Figure pat00058
Figure pat00059
a)
Figure pat00060
s1)
Figure pat00061
s2
3. Rb 반환
r1
Figure pat00062
a;r2comapre b 함수의 입력 변수이고, a = r1
Figure pat00063
r2 이면, 필요에 따라 Rb = (S(
Figure pat00064
Figure pat00065
r1
Figure pat00066
r2)
Figure pat00067
s1)
Figure pat00068
s2 = S(x)
Figure pat00069
s1
Figure pat00070
s2 를 제공하는 cmp = compare b (r1
Figure pat00071
a, r2) = compare b (r2; r2) = b이다.
이 특별한 실시예에서, comapre b 함수 실행시 주의해야 한다. 즉, compare b (x; y) 함수는 바람직하게는 x
Figure pat00072
y를 직접 계산하게 실행되지 않아야 하는데, 이는 상기 알고리즘에서 이는
Figure pat00073
와 결합하여 2차 누출을 줄 수 있는 (r1
Figure pat00074
r2
Figure pat00075
a)를 계산하는 것과 같기 때문이다.
x
Figure pat00076
y에 대한 임의의 1차 부채널 누설을 방지하기 위해 comapre b 함수의 실행방법을 설명한다:
comapre b 함수는 다음과 같이 정의됨을 상기하라:
Figure pat00077
실행방법은 2n 비트의 RAM의 테이블(T)을 필요로 한다. 테이블(T)은 다음과 같이 전처리된다:
1. r3 ← {0; 1}n
2. i = 0에서 2n - 1 대해, T[i] ←
Figure pat00078
3. T[r3] ← b
이는 전처리 단계를 마친다.
이 전처리 단계의 마지막에서, 표(T)는 다음을 만족한다:
Figure pat00079
그런 후, comapre b 함수는 다음과 같이 실행된다:
T 반환 [(x
Figure pat00080
r3)
Figure pat00081
y]
이 경우, 계산시 모든 중간 변수들은 x
Figure pat00082
y에 무관한다; 이는 x
Figure pat00083
y에 대한 임의의 1차 부채널 누설을 방지한다.
comapre b 의 상술한 실행은 해당기술분야에 공지되어 있다. 단점으로, 상술한 comapre b 의 실행은 비효율적이다; comapre b 알고리즘은 2n 바이트의 RAM을 필요로 한다; 그러나, 실제로 이는 2n 바이트의 RAM을 이용하는 것이 더 편리할 수 있는데, 이는 그렇지 않으면 보안적으로 실행하기에 부담스러울 수 있는 비트접속기술이 이용되어야 하기 때문이다. 전처리는 2n+1 메모리 전송을 필요로 한다; 이런 전처리는 RDP2 알고리즘에 모든 호출 전에 행해져야 한다. 그런 후 comapre b 로 모든 호출은 2개의 XOR 연산과 하나의 메모리 전송을 필요로 한다. 따라서, n=8인 AES에 대해, comapre b 함수는 전처리 동안 256 바이트의 RAM과 257개 메모리 전송을 필요로 한다. 그 후, 총, RDP2 알고리즘은 6·2n XOR 연산, 3·2n+1 메모리 전송 및 n+1 랜덤 바이트의 발생을 필요로 한다.
본 발명에 따른 방법은 다른 comapre b 함수의 실행, 특히 매치-인-플레이스 함수를 이용한 실행을 기초로 한다.
어떤 프로세서는 메모리내 몇몇 어드레스(dar)에 몇몇 데이터를 읽고 쓰는 유용한 명령어 데이터 읽기(adr) 및 쓰기(data;adr)를 갖는다. 매치-인-플레이스 기술에서 프로세서는 다음과 같이 작동하는 추가 함수 MIP(data;adr)를 갖는다:
Figure pat00084
다시 말하면, 데이터는 메모리 위치(adr)에서 일치되고 어드레스(adr)에서의 값은 결코 메모리를 나가지 않는다.
본 발명에서, 다음과 같이 정의된 MIP 함수의 비트-랜덤화 형태인 추가 함수 MIPI가 제공된다:
Figure pat00085
바람직하기로는, 하기의 관계가 있다:
MIP I ( data ; adr ; b) = MIP ( data ; adr )
Figure pat00086
Figure pat00087
MIPI 함수를 이용하면, comapre b 함수는 다음과 같이 간단히 실행될 수 있고, adr은 메모리에서 프리 어드레스(free address)이다.
compare b (x; y):
1. 쓰기 (x; adr)
2. MIP I (y; adr ; b) 반환
x가 메모리내 어드레스(adr)에 작성된 후, MIP I (y; adr ; b) 함수는 comapre b 함수에 의해 x = y 이면 b를, 그렇지 않으면
Figure pat00088
를 반환한다.
MIPI 함수를 이용해, 2차 마스크 입력으로부터 2차 마스크 S-box 함수의 계산은 다음과 같이 된다:
입력: 마스크 값
Figure pat00089
=x
Figure pat00090
r1
Figure pat00091
r2
Figure pat00092
∈Fn2, 출력 마스크쌍 s1;s2∈Fn2, 프리 메모리 어드레스(adr)
출력: 마스크 S-box 함수 출력 S(x)
Figure pat00093
s1
Figure pat00094
s 2
1. b ← rand(1)
2. a = 0 에서 2n - 1에 대해
(a) 쓰기 (r 1
Figure pat00095
a; adr)
(b) cmp ← MIPI(r 2 ; adr ; b)
(c) Rcmp ← (S(
Figure pat00096
Figure pat00097
a)
Figure pat00098
s 1 )
Figure pat00099
s 2
3. Rb 반환
MIPI 함수를 기초로 한 comapre b 함수의 실행은 본래 comapre b 함수 실행과 동일한 속성을 만족한다; 즉, 모든 중간 값들은 x
Figure pat00100
y에 무관하다.
랜덤 함수 MIPI(y;adr;b)이 바람직하다. 먼저 MIP(y;adr)을 계산한 후 MIP(y;adr)
Figure pat00101
Figure pat00102
를 반환함으로써 함수 MIPI(y;adr)가 대신 사용되면, 중간값 MIP(y;adr)은 x
Figure pat00103
y에 무관하지 않기 때문에 실행이 안전치 못할 수 있다.
도 3은 comapre b 함수의 본래 실행과 본 발명에 따른 (즉, MIPI 함수를 이용한) comapre b 함수의 실행의 효율을 비교한 표를 도시한 것이다. 본 발명에 따른 comapre b 함수를 실행하는데 더 적은 연산과 적은 RAM이 필요한 것이 명백해 진다.
도 4는 본래 실행된 마스킹 알고리즘과 본 발명에 따라 (즉, MIPI 함수를 이용한) 실행된 마스킹 알고리즘의 효율을 비교한 표를 도시한 것이다. n=8의 AES에 대해, 본 발명은 (2n 대신) 1 바이트의 RAM, (1536 대신) 1024 XOR, 및 (769 대신) 512 메모리 전송을 필요로 한다. XOR 및 메모리 전송이 동일한 코스트(cost)를 가지면, 본 발명은 본래 실행보다 33% 더 빠르다. 따라서, 동일한 보안 수준을 위해, 본 발명은 RAM을 덜 필요로 하는 더 빠른 역탐을 제공한다.
본 발명의 상술한 실시예들에 대한 다양한 변형 및 변경들은 특허청구범위에 정의된 바와 같이 본 발명의 기술사상으로부터 벗어남이 없이 당업자에 명백해진다. 본 발명은 특정 바람직한 실시예와 연계해 기술되었으나, 청구된 바와 같이 본 발명은 부당하게 이런 특정 실시예에 국한되지 않아야 한다는 것을 알아야 한다.

Claims (11)

  1. 중간 변수를 마스크하기 위해 하나 이상의 비선형 함수를 포함하는 블록암호 알고리즘을 실행하는 단계를 포함하는 부채널 공격에 대항한 역탐 방법으로서,
    상기 적어도 하나의 비선형 함수는 매치-인-플레이스 함수를 이용해 실행되는 것을 특징으로 하는 부채널 공격에 대항한 역탐 방법.
  2. 제 1 항에 있어서,
    매치-인-플레이스 함수는 비트-랜덤화 매치-인-플레이스 함수(MIPI(data; adr,b))인 부채널 공격에 대항한 역탐 방법.
  3. 제 2 항에 있어서,
    비트-랜덤화 매치-인-플레이스 함수는
    Figure pat00104

    로서 정의되고,
    adr은 메모리내 어드레스이고, data는 메모리내 어드레스에 저장될 수 있는 변수이며, b는 데이터 변수가 메모리내 어드레스(adr)에 있는 실제 데이터와 같다면 반환되는 값이며, 그렇지 않으면 b의 보수가 반환되는 부채널 공격에 대항한 역탐 방법.
  4. 제 3 항에 있어서,
    MIPI(data; adr,b)=MIP ( data ; adr )
    Figure pat00105
    Figure pat00106
    이고,
    Figure pat00107
    는 b의 보수인 부채널 공격에 대항한 역탐 방법.
  5. 제 2 항에 있어서,
    비선형 함수 중 적어도 하나는
    Figure pat00108

    에 의해 정의된 comapre b 함수를 포함하고,
    x는 comapre b 함수의 제 1 입력 변수이고, y는 comapre b 함수의 제 2 입력 변수이며, b는 x가 y와 같을 경우 반환되는 값이고,
    Figure pat00109
    는 x가 y와 같지 않을 경우 반환되는 값이므로, comapre b 함수는
    메모리내 어드레스(adr)에 변수(x)를 기록하고;
    Figure pat00110

    같이 정의된 비트-랜덤화 매치-인-플레이스 함수를 실행하며;
    MIPI(y; adr,b)를 반환함으로써 실행될 수 있는 부채널 공격에 대항한 역탐 방법.
  6. 제 1 항에 있어서,
    비선형 함수는 바이트치환(SubByte) 연산에 포함되는 부채널 공격에 대항한 역탐 방법.
  7. 제 1 항에 있어서,
    블록암호 알고리즘은 하나 이상의 선형함수를 더 포함하고, 상기 하나 이상의 선형함수들 중 적어도 하나는 상기 함수의 변수들을 XOR함으로써 암호화되는 부채널 공격에 대항한 역탐 방법.
  8. 제 1 항에 있어서,
    블록암호 알고리즘은 고급암호표준(AES) 알고리즘인 부채널 공격에 대항한 역탐 방법.
  9. 제 1 항에 따른 방법을 실행하도록 구성된 컴퓨터 프로그램을 구비한 컴퓨터 판독가능 매체.
  10. 단계 (ⅰ): b ← rand(1)
    단계 (ⅱ): a = 0 에서 2n - 1에 대해
    (a) 쓰기 (r1
    Figure pat00111
    a; adr)
    (b) cmp ← MIPI(r2; adr,b)
    (c) Rcmp ← (S(
    Figure pat00112
    Figure pat00113
    a)
    Figure pat00114
    s1)
    Figure pat00115
    s2
    단계 (ⅲ): Rb 반환을 포함하고,
    여기서, b는 레지스터를 색인한 랜덤 비트를 나타내는 변수이고, a는 (a)-(c)단계가 실행되는 횟수를 정의하는 색인을 나타내는 변수이며, r1,r2는 한 쌍의 입력 마스크이고,
    Figure pat00116
    Figure pat00117
    =x
    Figure pat00118
    r1
    Figure pat00119
    r2
    Figure pat00120
    ∈Fn 2인 마스크 값이며, s1,s2는 한 쌍의 출력 마스크이고, adr은 프리 메모리 어드레스이며, cmp는 레지스터를 나타내고 함수 MIPI(r2; adr,b)의 출력인 비트 변수이고, Rcmp 및 Rb는 마이크로프로세서의 레지스터의 각 레지스터 어드레스이며, MIPI(r2; adr,b)는
    Figure pat00121

    로 정의된 비트-랜덤화 매치-인-플레이스 함수인 제 2 차 마스크 입력으로부터 2차 마스크 S-box 함수를 계산하는 방법.
  11. 제 10 항에 따른 방법을 실행하도록 구성된 컴퓨터 프로그램을 구비한 컴퓨터 판독가능 매체.
KR1020120081695A 2011-07-26 2012-07-26 부채널 공격에 대항한 역탐 방법 KR20130012940A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP11290337 2011-07-26
EP11290337.2 2011-07-26

Publications (1)

Publication Number Publication Date
KR20130012940A true KR20130012940A (ko) 2013-02-05

Family

ID=47576770

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120081695A KR20130012940A (ko) 2011-07-26 2012-07-26 부채널 공격에 대항한 역탐 방법

Country Status (5)

Country Link
US (1) US8971526B2 (ko)
JP (1) JP5892887B2 (ko)
KR (1) KR20130012940A (ko)
CN (1) CN102904716A (ko)
RU (1) RU2586020C2 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3012234B1 (fr) * 2013-10-23 2017-02-24 Proton World Int Nv Protection de l'execution d'un algorithme contre des attaques par canaux caches
EP2884387B1 (en) * 2013-12-13 2016-09-14 Thomson Licensing Efficient modular addition resistant to side-channel attacks
KR20150123476A (ko) * 2014-04-25 2015-11-04 한국전자통신연구원 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법
RU2715021C2 (ru) * 2014-12-22 2020-02-21 Конинклейке Филипс Н.В. Скрытие исполнения программы
CN106161005B (zh) * 2015-03-31 2019-05-07 北京南瑞智芯微电子科技有限公司 一种分组加密算法防攻击的掩码方法和装置
FR3040514B1 (fr) * 2015-09-02 2017-09-15 Stmicroelectronics Rousset Protection dpa d'un algorithme de rijndael
FR3040515B1 (fr) 2015-09-02 2018-07-27 St Microelectronics Rousset Verification de la resistance d'un circuit electronique a des attaques par canaux caches
NL2015745B1 (en) * 2015-11-09 2017-05-26 Koninklijke Philips Nv A cryptographic device arranged to compute a target block cipher.
US10103873B2 (en) 2016-04-01 2018-10-16 Intel Corporation Power side-channel attack resistant advanced encryption standard accelerator processor
WO2017223509A1 (en) 2016-06-23 2017-12-28 Cryptography Research, Inc. Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
US10256973B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Linear masking circuits for side-channel immunization of advanced encryption standard hardware
CN108234107B (zh) * 2016-12-21 2022-11-22 国民技术股份有限公司 一种带仿射掩码的s盒变换方法及装置
EP3367606B1 (en) * 2017-02-24 2019-09-18 Secure-IC SAS Automatic insertion of masking into an algorithm
EP3422176A1 (en) * 2017-06-28 2019-01-02 Gemalto Sa Method for securing a cryptographic process with sbox against high-order side-channel attacks
CN108809622B (zh) * 2018-06-15 2021-10-26 上海科技大学 一种抗功耗侧信道攻击对策验证方法
RU2738321C1 (ru) * 2018-09-20 2020-12-11 Общество с ограниченной ответственностью "Цифра" Способ криптографического преобразования и устройство для его осуществления
CN111339577B (zh) * 2020-02-12 2022-06-07 南京师范大学 一种具有优良dpa抗性s盒的构造方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7848514B2 (en) * 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
JP2007006184A (ja) * 2005-06-24 2007-01-11 Nippon Telegr & Teleph Corp <Ntt> 暗号処理装置及び認証アプリケーションプログラム
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
WO2008084433A2 (en) * 2007-01-11 2008-07-17 Koninklijke Philips Electronics N.V. Tracing copies of an implementation
JP2008233683A (ja) * 2007-03-22 2008-10-02 Toshiba Corp 暗号処理装置及びプログラム
JP4962165B2 (ja) * 2007-06-22 2012-06-27 大日本印刷株式会社 暗号処理装置,暗号処理プログラム及び暗号処理方法
US8615078B2 (en) * 2009-08-21 2013-12-24 Electronics And Telecommunications Research Institute Method and apparatus for processing F-function in seed encryption system
FR2950721B1 (fr) * 2009-09-29 2011-09-30 Thales Sa Procede d'execution d'un algorithme de protection d'un dispositif electronique par masquage affine et dispositif associe
CN101938349A (zh) * 2010-10-01 2011-01-05 北京航空航天大学 一种适用于硬件实现的s盒及其电路实现方法

Also Published As

Publication number Publication date
RU2586020C2 (ru) 2016-06-10
JP5892887B2 (ja) 2016-03-23
US20130028412A1 (en) 2013-01-31
JP2013029835A (ja) 2013-02-07
US8971526B2 (en) 2015-03-03
CN102904716A (zh) 2013-01-30
RU2012131957A (ru) 2014-01-27

Similar Documents

Publication Publication Date Title
KR20130012940A (ko) 부채널 공격에 대항한 역탐 방법
US8199909B2 (en) Method and device for carrying out a cryptographic calculation
US8325928B2 (en) Security countermeasure for power analysis attacks
US8553877B2 (en) Substitution table masking for cryptographic processes
US9628265B2 (en) Encryption processing device and method capable of defending differential power analysis attack
US9515820B2 (en) Protection against side channels
US8504845B2 (en) Protecting states of a cryptographic process using group automorphisms
US8605894B2 (en) Cryptographic process execution protecting an input value against attacks
US8675866B2 (en) Multiplicative splits to protect cipher keys
KR20130041353A (ko) 안전하지 않은 환경에서의 블록 암호 프로세스를 위한 장치 및 방법
US20170063524A1 (en) Protection of a rijndael algorithm
US20200076594A1 (en) Key update for masked keys
Biryukov et al. Side-channel attacks meet secure network protocols
US20190140821A1 (en) A system and method for efficient and secure implementation of ls-designs
CN112883395A (zh) 一种增强抗攻击能力的高性能gfn掩码方法
KR102327771B1 (ko) 테이블 기반 구현에서의 차수 2 이상의 dca 공격에 대응하는 방법
Gupta et al. Correlation power analysis of KASUMI and power resilience analysis of some equivalence classes of KASUMI S-boxes
EP3832945B1 (en) System and method for protecting memory encryption against template attacks
US10911218B2 (en) Lightweight block cipher
Liu et al. Research and Implementation of Embedded Database Encryption System based on Lightweight Cryptographic Algorithms
Shiba et al. Cubicle: A family of space‐hard ciphers for IoT
Tange et al. Dynamic AES–Extending the Lifetime?
Carter et al. Advanced Encryption Standard
TW201312982A (zh) 旁通道攻擊的防禦方法
Moharir et al. Analysis of Advanced Encryption Standards

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid