KR20130012940A - 부채널 공격에 대항한 역탐 방법 - Google Patents
부채널 공격에 대항한 역탐 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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
-
- 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/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
본 발명에 따르면, 마스크 중간 변수에 하나 이상의 비선형 함수를 구비하는 블록암호 알고리즘을 실행하는 단계를 포함하는 부채널 공격에 대항한 역탐 방법으로서, 상기 적어도 하나의 비선형 함수는 매치-인-플레이스 함수를 이용해 실행되는 것을 특징으로 하는 부채널 공격에 대항한 역탐 방법이 제공된다.
Description
본 발명은 블록암호를 위한 부채널 공격에 대항한 역탐 방법에 관한 것으로, 보다 상세하게는 매치-인-플레이스(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))일 수 있다.
비트-랜덤화 매치-인-플레이스 함수는
로서 정의되고, adr은 메모리내 어드레스이고, data는 메모리내 어드레스에 저장될 수 있는 변수이며, b는 데이터 변수가 메모리내 어드레스(adr)에 있는 실제 데이터와 같다면 반환되는 값이며, 그렇지 않으면 b의 보수가 반환되고, b는 비트 값일 수 있다.
하기의 관계:
비선형 함수 중 적어도 하나는
에 의해 정의된 comapre b 함수를 포함할 수 있고, x는 comapre b 함수의 제 1 입력 변수이고, y는 comapre b 함수의 제 2 입력 변수이며, b는 x가 y와 같을 경우 반환되는 값이고, 는 x가 y와 같지 않을 경우 반환되는 값이므로, comapre b 함수는
메모리내 어드레스(adr)에 변수(x)를 기록하고;
같이 정의된 비트-랜덤화 매치-인-플레이스 함수를 실행하며;
MIPI(y; adr,b)를 반환한다.
비선형 함수는 바이트치환(SubByte) 연산에 포함될 수 있다. 비선형 함수는 AES 알고리즘의 바이트치환 연산에 포함될 수 있다.
블록암호 알고리즘은 하나 이상의 선형함수를 더 포함할 수 있다. 상기 하나 이상의 선형함수들 중 적어도 하나는 상기 함수의 변수들을 XOR함으로써 마스크될 수 있다.
블록암호 알고리즘은 고급암화표준(AES) 알고리즘일 수 있다.
본 발명의 다른 태양에 따르면, 상술한 방법들 중 어느 하나에 따른 방법을 실행하도록 구성된 컴퓨터 프로그램을 구비한 컴퓨터 판독가능 매체가 제공된다.
본 발명의 다른 태양에 따르면,
단계 (ⅰ): b ← rand(1)
단계 (ⅱ): a = 0 에서 2n - 1에 대해
(b) cmp ← MIPI(r2; adr,b)
단계 (ⅲ): Rb 반환을 포함하고,
여기서, b는 레지스터를 색인한 랜덤 비트를 나타내는 변수이고, a는 (a)-(c)단계가 실행되는 횟수를 정의하는 색인을 나타내는 변수이며, r1,r2는 한 쌍의 입력 마스크이고, 는 =xr1 r2 ∈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)는
로 정의된 비트-랜덤화 매치-인-플레이스 함수이다.
본 발명의 다른 태양에 따르면, 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)에 필요한 메모리를 포함한 표를 도시한 것이다.
도 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된다:
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 ): 상태의 각 바이트는 하기와 같이 컬럼 단위로 변경된다:
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)의 역이다. 상태의 바이트는 하기와 같이 컬럼 단위로 변경된다:
역 암호를 위한 유사코드가 도 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)는
에 따라 3개의 쉐어(share)(p0; p1; p2)로 분배되며, 여기서, 쉐어(p1 및 p2)를 마스크라 한다.
3개의 쉐어(p0, p1 및 p2)는 이전 관계가 암호화 알고리즘의 실행 내내 보존되는 식으로 처리되어야 한다. 유사하게 라운드키의 모든 바이트(k)는
이도록 3개의 쉐어(k0; k1; k2)로 분배되어야 한다.
블록암호의 선형부는 처리하기가 쉽다. 함수(f)는 다음의 관계가 유지될 때 선형이라 한다:
이런 선형 함수에 대해 입력으로서
이도록 3개의 쉐어(p0, p1 및 p2)가 주어질 경우, f(p0), f(p1) 및 f(p2)을 별도로 계산하기에 충분하며 수학식(1)로부터 다음을 얻는다:
그러므로, 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 )를 포함한다:
여기서, x 및 y는 comapre b 함수의 입력 변수이다.
2차 마스크 입력으로부터 2차 마스크 S-box 함수의 계산은 다음과 같이 수행될 수 있다:
1. b ← rand(1)
2. a = 0 에서 2n - 1에 대해
3. Rb 반환
r1 a;r2는 comapre b 함수의 입력 변수이고, a = r1 r2 이면, 필요에 따라 Rb = (S( r1 r2)s1)s2 = S(x)s1 s2 를 제공하는 cmp = compare b (r1 a, r2) = compare b (r2; r2) = b이다.
이 특별한 실시예에서, comapre b 함수 실행시 주의해야 한다. 즉, compare b (x; y) 함수는 바람직하게는 xy를 직접 계산하게 실행되지 않아야 하는데, 이는 상기 알고리즘에서 이는 와 결합하여 2차 누출을 줄 수 있는 (r1 r2 a)를 계산하는 것과 같기 때문이다.
comapre b 함수는 다음과 같이 정의됨을 상기하라:
실행방법은 2n 비트의 RAM의 테이블(T)을 필요로 한다. 테이블(T)은 다음과 같이 전처리된다:
1. r3 ← {0; 1}n
3. T[r3] ← b
이는 전처리 단계를 마친다.
이 전처리 단계의 마지막에서, 표(T)는 다음을 만족한다:
그런 후, comapre b 함수는 다음과 같이 실행된다:
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)를 갖는다:
다시 말하면, 데이터는 메모리 위치(adr)에서 일치되고 어드레스(adr)에서의 값은 결코 메모리를 나가지 않는다.
본 발명에서, 다음과 같이 정의된 MIP 함수의 비트-랜덤화 형태인 추가 함수 MIPI가 제공된다:
바람직하기로는, 하기의 관계가 있다:
MIPI 함수를 이용하면, comapre b 함수는 다음과 같이 간단히 실행될 수 있고, adr은 메모리에서 프리 어드레스(free address)이다.
compare b (x; y):
1. 쓰기 (x; adr)
2. MIP I (y; adr ; b) 반환
MIPI 함수를 이용해, 2차 마스크 입력으로부터 2차 마스크 S-box 함수의 계산은 다음과 같이 된다:
1. b ← rand(1)
2. a = 0 에서 2n - 1에 대해
(b) cmp ← MIPI(r 2 ; adr ; b)
3. Rb 반환
랜덤 함수 MIPI(y;adr;b)이 바람직하다. 먼저 MIP(y;adr)을 계산한 후 MIP(y;adr) 를 반환함으로써 함수 MIPI(y;adr)가 대신 사용되면, 중간값 MIP(y;adr)은 xy에 무관하지 않기 때문에 실행이 안전치 못할 수 있다.
도 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 항에 있어서,
매치-인-플레이스 함수는 비트-랜덤화 매치-인-플레이스 함수(MIPI(data; adr,b))인 부채널 공격에 대항한 역탐 방법. - 제 1 항에 있어서,
비선형 함수는 바이트치환(SubByte) 연산에 포함되는 부채널 공격에 대항한 역탐 방법. - 제 1 항에 있어서,
블록암호 알고리즘은 하나 이상의 선형함수를 더 포함하고, 상기 하나 이상의 선형함수들 중 적어도 하나는 상기 함수의 변수들을 XOR함으로써 암호화되는 부채널 공격에 대항한 역탐 방법. - 제 1 항에 있어서,
블록암호 알고리즘은 고급암호표준(AES) 알고리즘인 부채널 공격에 대항한 역탐 방법. - 제 1 항에 따른 방법을 실행하도록 구성된 컴퓨터 프로그램을 구비한 컴퓨터 판독가능 매체.
- 단계 (ⅰ): b ← rand(1)
단계 (ⅱ): a = 0 에서 2n - 1에 대해
(a) 쓰기 (r1 a; adr)
(b) cmp ← MIPI(r2; adr,b)
(c) Rcmp ← (S( a) s1) s2
단계 (ⅲ): Rb 반환을 포함하고,
여기서, b는 레지스터를 색인한 랜덤 비트를 나타내는 변수이고, a는 (a)-(c)단계가 실행되는 횟수를 정의하는 색인을 나타내는 변수이며, r1,r2는 한 쌍의 입력 마스크이고, 는 =xr1 r2 ∈Fn 2인 마스크 값이며, s1,s2는 한 쌍의 출력 마스크이고, adr은 프리 메모리 어드레스이며, cmp는 레지스터를 나타내고 함수 MIPI(r2; adr,b)의 출력인 비트 변수이고, Rcmp 및 Rb는 마이크로프로세서의 레지스터의 각 레지스터 어드레스이며, MIPI(r2; adr,b)는
로 정의된 비트-랜덤화 매치-인-플레이스 함수인 제 2 차 마스크 입력으로부터 2차 마스크 S-box 함수를 계산하는 방법. - 제 10 항에 따른 방법을 실행하도록 구성된 컴퓨터 프로그램을 구비한 컴퓨터 판독가능 매체.
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)
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)
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盒及其电路实现方法 |
-
2012
- 2012-07-12 US US13/547,098 patent/US8971526B2/en active Active
- 2012-07-25 JP JP2012164539A patent/JP5892887B2/ja active Active
- 2012-07-25 RU RU2012131957/08A patent/RU2586020C2/ru active
- 2012-07-25 CN CN2012103240718A patent/CN102904716A/zh active Pending
- 2012-07-26 KR KR1020120081695A patent/KR20130012940A/ko not_active Application Discontinuation
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 |