KR100834096B1 - 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법 - Google Patents

고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법 Download PDF

Info

Publication number
KR100834096B1
KR100834096B1 KR1020070045917A KR20070045917A KR100834096B1 KR 100834096 B1 KR100834096 B1 KR 100834096B1 KR 1020070045917 A KR1020070045917 A KR 1020070045917A KR 20070045917 A KR20070045917 A KR 20070045917A KR 100834096 B1 KR100834096 B1 KR 100834096B1
Authority
KR
South Korea
Prior art keywords
mask
aria
input
algorithm
power analysis
Prior art date
Application number
KR1020070045917A
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 한국전자통신연구원
Priority to KR1020070045917A priority Critical patent/KR100834096B1/ko
Application granted granted Critical
Publication of KR100834096B1 publication Critical patent/KR100834096B1/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
    • 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
    • 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
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

본 발명은 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법에 관한 것으로서, 고차 전력분석공격을 방어하기 위해 d개의 랜덤 마스크(random mask)를 입력 평문(input plaintext)과 라운드 키(round key)에 적용하며, ARIA의 치환계층(substitution layer)에 대한 안전한 마스킹 방법을 명시적으로 제시하고, 랜덤 마스크(random mask) 방법을 적용할 때 가장 많은 추가 연산 및 메모리가 필요한 마스킹된 Sbox(masked sbox) 생성부분에서 추가 연산을 효율적으로 줄이는 마스킹된 Sbox 생성 방법을 제안한다. 이에 따라, 고도의 안전성이 요구되는 응용분야에서는 1차 DPA 뿐만 아니라, 2차 이상의 고차 전력분석공격을 고려하여 알고리즘을 구현해야 환경에 효과적으로 적용될 수 있다.
ARIA, 전력분석공격(DPA), 고차 전력분석공격(HO-DPA), 랜덤 마스크

Description

고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법{ARIA ENCRYPTION METHOD FOR COUNTERMEASURING HIGHER ORDER DPA}
도 1은 기존 ARIA의 암호화 및 라운드 키 생성과정을 나타낸 도면,
도 2는 본 발명의 일 실시예에 따른 고차 전력분석공격에 안전한 ARIA 암호 알고리즘의 암호화 과정을 나타낸 도면,
도 3은 본 발명의 일 실시예에 따른 고차 전력분석공격에 안전한 ARIA 암호 알고리즘의 암호화 흐름도 중에서 Sbox 연산 과정을 나타낸 도면이다.
본 발명은 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법에 관한 것으로, 더욱 상세하게는 1차 뿐만 아니라, 2차 이상의 고차 전력분석공격을 고려하여 알고리즘을 구현한 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법에 관한 것이다.
ARIA 알고리즘
“ARIA”는 Academy Research Institute Agency의 이니셜(Initial)로서, ARIA 암호 알고리즘은 2004년 국가표준(KS) 블록 암호 알고리즘으로 선정되었다. 기존의 블록 암호 알고리즘으로 SEED가 있었으나 64비트 키를 사용하여 분석용 컴퓨팅 파워가 증가함에 따라 안전성이 취약해졌으며, 이에 보다 상위의 안전성을 제공하며 128비트, 192비트, 256비트의 세 가지 키 길이를 제공하는 ARIA가 개발되었다.
암호화, 복호화 과정의 중간 값을 상태라고 한다. ARIA 암호 알고리즘에서 사용되는 연산은 다음과 같다.
* AddRoundKey() : 라운드 키를 상태와 XOR 하는 암호화, 복호화 과정의 변환
* SubstLayer() : Sbox와 이의 역변환으로 이루어진 계층
* DiffLayer() : 상태의 바이트들을 섞는 암호화, 복호화 과정의 변환 계층
* XOR,
Figure 112007034985639-pat00001
: 배타적 논리합 연산
* A≪k : A의 각 비트를 왼쪽으로 k비트씩 순환이동
* A≫k : A의 각 비트를 오른쪽으로 k비트씩 순환이동
ARIA 알고리즘의 구조는 다음과 같다.
* 기본구조 : ISPN(Involutional SPN) 구조
* 입출력 크기 : 128비트
* 키 크기 : 128비트
* 라운드 키 크기 : 128비트
* 라운드 키 : 각 크기에 따라 12, 14, 16 라운드
이 사양을 블록단위(8비트)로 정리하면 다음 [표 1]과 같다. 이때, 입출력 블록크기를 Nb, 입력 키 블록 크기를 Nk, 그리고 라운드 수를 Nr로 나타내었다.
[표 1]
구분 Nb Nk Nr
ARIA-128 16 16 12
ARIA-192 16 24 14
ARIA-256 16 32 16
ARIA의 라운드 함수는 다음과 같은 세 부분(라운드 키 덧셈, 치환 계층, 확산 계층)으로 구성되어 있으며 전체 구조는 도 1과 같다.
도 1은 기존 ARIA의 암호화 및 라운드 키 생성과정을 나타낸 도면이다. 도 1을 참조하면, 암호화 과정과 키 확장 과정을 엮어 평문에 대한 암호문을 출력하는 과정을 나타내고 있다.
* 라운드 키 덧셈(AddRoundKey) : 128비트 라운드 키를 라운드 입력 128비트와 비트별 xor 한다.
* 치환 계층(SubstLayer) : 두 유형의 치환계층이 있으며 각각은 2종의 8비트 입출력 Sbox와 그들의 역변환으로 구성된다.
유한체의 원소 x ∈GF(28) 에 대하여 2종의 Sbox S1, S2는 다음의 형태를 갖는다.
S1(x) = Bx-1
Figure 112007034985639-pat00002
b, S2(x) = Cx247
Figure 112007034985639-pat00003
c
여기서 B, C는 8*8 정칙행렬(non-singular matrix)이며, b, c는 8*1 행렬이다. ARIA에는 위에서 생성한 S1, S2와 그 역치환 S1-1, S2-1가 사용되며 입출력을 16진법 표기로 표로 표현하면 [표 2], [표 3], [표 4], [표 5]와 같다. 유형 1의 치환계층은 홀수 라운드에, 유형 2의 치환계층은 짝수 라운드에 각각 적용된다.
[표 2] Sbox S1
Figure 112007034985639-pat00004
[표 3] Sbox S1-1
Figure 112007034985639-pat00005
[표 4] Sbox S2
Figure 112007034985639-pat00006
[표 5] Sbox S2-1
Figure 112007034985639-pat00007
* 확산 계층(DiffLayer) : 간단한 16*16 involution 이진 행렬을 사용한 바이트 간의 확산함수로 구성되어 있다.
ARIA의 확산 함수 A : GF(28)16 → GF(28)16 는 입력을 (x0, …, x15)으로 하고 출력을 (x0, …, x15)라 하면 다음과 같은 행렬의 곱으로 표현된다.
Figure 112007034985639-pat00008
부채널 공격
1996년 Paul Kocher 가 부채널 공격에 대한 개념을 소개함으로써 이론적으로 안전한 암호시스템에 대해서도 물리적 공격인 부채널 공격에 의해 비밀정보가 누출될 수 있음을 보였다.
물리적 공격은 알고리즘의 수행 시간, 전력 소모량 등의 부가적인 정보를 이용한다. 전력분석공격도 비밀키와 관련된 데이터를 처리할 때 IC 칩이 사용하는 전력량과 그렇지 않을 경우의 전력량을 비교 분석하는 것으로 SPA(Simple Power Attack), DPA(Differential Power Attack) 등으로 나뉜다. 전력분석공격은 Paul Kocher 가 개발한 것으로 가장 위협적인 공격방법 중 하나로 알려져 있고, 그 중에서도 DPA 는 강력한 분석방법으로 여러 가지 형태로 발전하고 있고 적용분야가 많다. 이러한 부가적인 정보들은 스마트 카드와 PDA 같은 모바일 장치에 심각한 위협이 되고 있다. Kocher 는 CHES 2002 에서 IC 칩이 전력분석공격에 어느 정도 취약 한 지를 검사할 수 있는 장비를 개발해 소개했다.
스마트카드는 자체적으로 전력을 발생시키지 않고 외부의 전력 원천을 이용하며, 따라서 오실로스코프를 이용하여 전력소모량을 쉽게 모니터링할 수 있다. 스마트카드의 전력소모량은 현재 처리되는 데이터의 헤밍웨이트(Hamming weight)에 의존한다는 사실에 기인하여 전력분석공격이 이루어진다. 구체적으로 시점 j 에서 전력소모량 P[j] 는 아래와 같이 모델링될 수 있다.
P[j] = eㆍd[j] + L + n
* d[j] : 시점 j 에서 처리되는 데이터의 헤밍웨이트
* e : 헤밍웨이트 1 에 대한 전력소모량의 증분
* L : 전체 전력소모량의 가산 상수 부분
* n : 노이즈
노이즈의 평균은 0이라고 가정하며 따라서 충분히 많은 데이터를 평균하면 노이즈 부분은 상쇄될 수 있다.
SPA(Simple Power Analysis, 단순전력분석)는 한 번의 암호 연산에 대한 전력소모량을 측정하여 암호시스템을 분석하는 기술을 말한다. SPA에 의한 분석을 통해 장치 내의 연산 뿐만 아니라 비밀키가 직접적으로 누출될 수 있다. 예를 들어 RSA 암호연산인 모듈로 멱승(modular exponentiation)을 square-and-multiply 방법으로 연산할 때, 제곱 연산은 키 비트에 무관하게 매번 실행되지만 곱셈 연산은 키 비트가 1 인 경우에만 발생한다. 이와 같이 암호연산 중 키 비트에 의존하는 조건 분기문은 SPA의 취약점이 된다.
DPA(Differential Power Analysis, 차분전력분석)은 1999년 Kocher에 의해서 처음 소개되었다. DPA는 스마트카드 상에서 실행되는 암호 알고리즘의 정보를 획득하기 위하여 많은 전력파형을 수집하여 평균과 같은 통계량으로 에러를 정정한 후 키와 연산의 상관관계를 분석하는 방법을 말한다. 일반적인 DPA 공격단계는 아래와 같다.
* 단계 1 : 같은 키를 사용하여 많은 수의 전력 파형 Si 을 생성한다. 이때 입력되는 평문의 고정성 또는 랜덤성은 공격의 유형에 따라 결정된다.
* 단계 2 : 키의 한 비트 또는 일부분을 추측한다.
* 단계 3 : 추측한 키와 단계 1의 평문들을 입력하여 오프라인 시뮬레이션한다. 이때 생성된 중간 결과값의 헤밍웨이트를 바탕으로 다음과 같은 분류함수 D 에 의해 단계 1의 파형들을 분류한다.
T0 = {Si
Figure 112007034985639-pat00009
D(key,data) : low hamming weight}
T1 = {Si
Figure 112007034985639-pat00010
D(key,data) : high hamming weight}
* 단계 4 : 위의 분류한 데이터에 대해 전력소모량들을 평균하여 차분신호(differential signal)를 구한다.
ΔD = 1/
Figure 112007034985639-pat00011
T0
Figure 112007034985639-pat00012
* ΣSi - 1/
Figure 112007034985639-pat00013
T1
Figure 112007034985639-pat00014
* ΣSi
* 단계 5 : 평문과 소비전력신호의 수가 많을 경우 추측한 키가 옳다면 차분신호 ΔD 에서 키가 반응하는 지점에서 첨점이 발생하고, 추측한 키가 틀리다면 차분신호 ΔD 의 신호가 거의 피크 없이 균등해 진다.
옳은 추측인 경우 lim ΔD 이 피크(peak) 파형을 이루며, 잘못된 파형일 경우 lim ΔD 평탄(flat) 파형을 형성한다.
* 단계 6 : 추측이 옳지 않다면 다시 단계 1로 돌아간다. 추측이 옳다면 그 다음 비트에 대해 단계 1 ~ 6 을 수행한다.
일반적으로 DPA 공격은 알고리즘의 수행 중에 계산되는 하나의 시점에서 중간계산결과에 해당되는 전력소모량을 분석한다. 그러나 고차 전력분석공격(Higher-Order DPA, HO-DPA) 공격은 알고리즘이 수행될 때 나타나는 여러 시점의 중간계산결과를 이용한다. 그러므로 DPA 공격보다 더 강력한 공격이 될 수 있다. DPA 공격에 취약하면서 HO-DPA 공격에 강한 대응방법이 알려지지 않았기 때문에, 구현자 및 개발자에게 HO-DPA를 장기적인 관점에서 고려해야 한다.
평문, 키, 마스크를 각각 Pi, K, Mi라 하고 얻어진 소비전력신호의 집합을 정의하자. 그리고 Pi와 키 K의 일부분에 의해 계산되어지는 중간 값을 Fv(Pi)라 두고 2차 DPA에 사용될 두개의 중간값 F1(Pi)과 F2(Pi) 라고 하자. 단 피크를 얻어내기 위한 분석법은 상관관계방법을 이용한다.
* 단계 1 : 모든 전력신호 T에 대해 길이 l을 가지는 구간 I를 정한다. 여기서 구간 I는 F1(Pi)
Figure 112007034985639-pat00015
Mi와 F2(Pi)
Figure 112007034985639-pat00016
Mi가 처리되는 시점을 말한다. 이렇게 구한 모든 Ia, Ib 에 대해
Figure 112007034985639-pat00017
Ia - Ib
Figure 112007034985639-pat00018
를 계산한다.
* 단계 2 : 전처리를 통해 구해진 전력신호
Figure 112007034985639-pat00019
Ia - Ib
Figure 112007034985639-pat00020
에 대해 DPA 공격을 실행한다.
먼저 하나의 전력신호에서 a와 b가 계산되는 시점(키와 마스크값이 연관된)을 선택하여 차분한 뒤 절대값을 취한다. 이러한 사전처리 과정을 모든 전력신호에 적용한 후 1차 DPA 공격과 동일하게 추측한 키와 a, b의 상관관계를 유추하여 키를 얻어낸다.
지금까지 ARIA의 전력분석공격에 대한 대응방법은 1차 DPA 공격에 국한되어 왔다. 적용된 방법은 입력 평문에 하나의 랜덤 마스크를 적용한 후 가장 계산이 복잡한 Sbox의 경우 메모리 사용을 줄이기 위해 4개의 Sbox S1, S2, S1-1, S2-1 테이블을 매번 재계산하지 않고 하나의 역원 테이블을 재계산하는 방식을 취하고 있으며, 대신 전체 실행속도가 저하된다.
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 1차 뿐만 아니라 2차 이상의 고차 전력분석공격을 대응하기 위해 d개의 랜덤 마스크(random mask)를 입력 평문(input plaintext)과 라운드 키(round key)에 적용하는 알고리즘을 구현함으로써 고도의 안전성이 요구되는 응용분야에 적용할 수 있는 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법은, (a) d개의 마스크 값들을 입력 평문 및 라운드 키에 각각 연산시키는 단계; (b) 치환 계층에서 Sbox 업데이트를 통해 마스크 값을 연산하는 단계; 및 (c) 라운드 함수를 구성하는 확산 계층에서 마스킹 값을 계산하는 단계를 포함하여 이루어진 것을 특징으로 한다.
구체적으로 본 발명은 고차 전력분석공격(higher order differential power attack)에 안전한 블록 암호 알고리즘 ARIA 의 대응방안(countermeasure)에 대한 것으로서, 기존 ARIA 대응방안들은 1차 전력분석공격(first-order DPA)에 국한되는 단점을 보완하여 고차 전력분석공격에도 안전한 ARIA 대응방안을 제시한다.
이에 본 발명을 수행하기 위한 해결방안으로서, d차 전력분석공격(d-th order DPA)을 방어하기 위해서 d개의 랜덤 마스크(random mask)를 입력 평문(input plaintext)과 라운드 키(round key)에 적용하며, ARIA의 치환계층(substitution layer)에 대한 안전한 마스킹 방법을 명시적으로 제시하고, 랜덤 마스크(random mask) 방법을 적용할 때 가장 많은 추가 연산 및 메모리가 필요한 마스킹된 Sbox(masked sbox) 생성부분에서 추가 연산을 효율적으로 줄이는 마스킹된 Sbox 생성 방법을 제안한다.
이하, 본 발명의 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 고차 전력분석공격에 안전한 ARIA 암호 알고리즘의 암호화 과정을 나타낸 도면이고, 도 3은 본 발명의 일 실시예에 따른 고차 전력분석공격에 안전한 ARIA 암호 알고리즘의 암호화 흐름도 중에서 Sbox 연산 과정을 나타낸 도면이다.
도 2 및 도 3을 참조하면, 본 발명에서는 d차 DPA 공격을 방어하기 위해서 d개의 마스킹 값을 입력 평문, 라운드 키에 각각 적용하고, ARIA 알고리즘의 각 연산마다 마스킹 값을 안전하고 효과적으로 계산하는 방법을 다음과 같이 제안한다.
d차 DPA를 방어하기 위해서는 d개 이상의 마스크 값들을 모든 연산에 적용해야 한다. d개의 마스크값을 R1, …, Rd라고 할 때, R=R1
Figure 112007034985639-pat00021
Figure 112007034985639-pat00022
Rd 값은 명시적으로 계산되어서는… 안 된다.
상기의 d개의 마스크 적용 방법에 대해 <알고리즘 1>을 통해 설명한다.
<알고리즘 1>
1. Generate 128-bit random masks R1, R2, …, Rd
(Ri = Ri,1
Figure 112007034985639-pat00023
Ri,2
Figure 112007034985639-pat00024
Figure 112007034985639-pat00025
Ri,16 , Ri,j : 8-bit)
2. RX = X
3. For (i=1; i<=d; i=i+1)
3-1 RX = RX
Figure 112007034985639-pat00026
Ri
End of i
상기 <알고리즘1>에 의하면 단계 1에서 d개의 128비트 랜덤 마스크 R1, R2, …, Rd 들을 생성한다. Rd = Ri,1
Figure 112007034985639-pat00027
Ri,2
Figure 112007034985639-pat00028
Figure 112007034985639-pat00029
Ri,16로써 각 Ri,j 는 8비트 단위가 된다. RX는 d개의 랜덤 마스크가 적용된 출력 값으로써, 단계 2에서 RX=X와 같이 초기화한다. 단계 3-1에서 R
Figure 112007034985639-pat00030
Figure 112007034985639-pat00031
Rd 값이 명시적으로 드러나서는 안되기 때문에 RX
Figure 112007034985639-pat00032
(R1
Figure 112007034985639-pat00033
Figure 112007034985639-pat00034
Rd)와 같이 계산하지 않고 ((((RX)
Figure 112007034985639-pat00035
R1)
Figure 112007034985639-pat00036
…)
Figure 112007034985639-pat00037
Rd)와 같은 방법으로 알고리즘이 시행된다.
상기 <알고리즘 1>을 이용하여 ARIA 의 입력 평문과 라운드 키를 마스킹을 한다. 입력 평문을 P, 라운드 키를 K, d개의 평문 마스킹 값들을 RP1, …,RPd라고 d개의 라운드키 마스킹 값들을 RK1, …, RKd 라 하자. 먼저 상기 평문 마스킹 시에는 <알고리즘 1>에서 단계 1의 랜덤 마스크를 RP1, …, RPd 와 같이 생성하고 각 RPi는 RPi = RPi,1
Figure 112007034985639-pat00038
RPi,2
Figure 112007034985639-pat00039
Figure 112007034985639-pat00040
RPi,16 와 같이 구성된다. 단계 2의 RX=P라고 입력하면 최종적인 출력값이 원하는 평문 마스킹 P
Figure 112007034985639-pat00041
RP1
Figure 112007034985639-pat00042
Figure 112007034985639-pat00043
RPd 이 된다. 마차가지로 라운드 키 또한 랜덤 마스킹 값을 RK1, …, RKd 와 같이 생성하고 RKi = RKi,1
Figure 112007034985639-pat00044
RKi,2
Figure 112007034985639-pat00045
Figure 112007034985639-pat00046
RKi,16 와 같이 구성하며 RX=K 로 입력하여 K
Figure 112007034985639-pat00047
RK1
Figure 112007034985639-pat00048
Figure 112007034985639-pat00049
RKd 를 얻는다.
[표 6]
M1 = RP1,1
Figure 112007034985639-pat00050
RK1,1
RP1,2
Figure 112007034985639-pat00051
RK1,2
Figure 112007034985639-pat00052
RP1,16
Figure 112007034985639-pat00053
RK1,16
M2 = RP2,1
Figure 112007034985639-pat00054
RK2,1
RP2,2
Figure 112007034985639-pat00055
RK2,2
Figure 112007034985639-pat00056
RP2,16
Figure 112007034985639-pat00057
RK2,16
Figure 112007034985639-pat00058
Figure 112007034985639-pat00059
Figure 112007034985639-pat00060
Figure 112007034985639-pat00061
Figure 112007034985639-pat00062
M3 = RPd,1
Figure 112007034985639-pat00063
RKd,1
RPd,2
Figure 112007034985639-pat00064
RKd,2
Figure 112007034985639-pat00065
RPd,16
Figure 112007034985639-pat00066
RKd,16
Figure 112007034985639-pat00067
M1 M2 M16
한편, 본 발명을 ARIA 알고리즘의 AddRoundKey 연산에 적용함에 있어 마스크 값을 새롭게 갱신해야 하는데, AddRoundKey 연산 후 d개의 마스크 값은 [표 6]과 같다.
상기 [표 6]의 표기법으로서, Mi는 Mi=RPi,1
Figure 112007034985639-pat00068
RKi,1
Figure 112007034985639-pat00069
RPi,2
Figure 112007034985639-pat00070
RKi,2
Figure 112007034985639-pat00071
Figure 112007034985639-pat00072
RPi,16
Figure 112007034985639-pat00073
RKi,16 인 16바이트이며, Mi,j는Mi,j=RPi,j
Figure 112007034985639-pat00074
RKi,j인 1바이트이며, Mj=(RP1,j
Figure 112007034985639-pat00075
RK1,j)
Figure 112007034985639-pat00076
Figure 112007034985639-pat00077
(RPd,j
Figure 112007034985639-pat00078
RKd,j)인 1바이트를 나타낸다.
<알고리즘 2>
1. For (i=0; i<=255; i=i+1)
1-1. A = S(i)
1-2 S’(i
Figure 112007034985639-pat00079
M) = A
Figure 112007034985639-pat00080
N
End of i
한편, 본 발명에서 AddRoundKey 이후에 테이블에 의한 Sbox출력이 이루어지는데, 상기 <알고리즘 2>는 랜덤 입력 마스크 M에 의해서 새로운 Sbox S'을 생성하는 종래의 단순한 테이블 치환이다. 상기 <알고리즘 2> 방법은 256번의 읽기 명령과 256번의 쓰기 명령을 수행하며, 기존의 Sbox와 새로운 Sbox를 위한 512 바이트의 RAM 공간이 요구된다.
<알고리즘 3 : RS(S,M,N)>
1. For (i=0; i<=255; i=i+2j+1)
1-1. For (k=0; k<2j; k=k+1)
1-1-1. A = S(i
Figure 112007034985639-pat00081
k)
1-1-2. B = S(i
Figure 112007034985639-pat00082
k
Figure 112007034985639-pat00083
M)
1-1-3. S(i
Figure 112007034985639-pat00084
k) = A
Figure 112007034985639-pat00085
N
1-1-4. S(i
Figure 112007034985639-pat00086
k
Figure 112007034985639-pat00087
M) = B
Figure 112007034985639-pat00088
N
End of k
End of i
바람직하게는, 종래의 <알고리즘 2>를 개선하기 위해 상기 <알고리즘 3>은 논문 “Higher Order Masking of the AES”, K. Schramm, C. Parr, CT-RSA 2006, LNCS 3860에서 발표되었다.
상기 <알고리즘 3>은 256번의 읽기 명령과 256번의 쓰기 명령을 수행한다. <알고리즘 3>은 새로운 Sbox S’를 명시적으로 생성하지 않고 기존의 Sbox를 업데이트하는 방식으로 운용되기 때문에 Sbox 하나에 256바이트의 RAM영역을 사용하게 된다. 또한 모든 i와 k에 대해서, i
Figure 112007034985639-pat00089
k와 i
Figure 112007034985639-pat00090
k
Figure 112007034985639-pat00091
M은 0부터 255까지 중복됨 없이 모든 값에 하나씩 대응한다.
상기 <알고리즘 3>은 3종의 입력변수가 있는데, 기존의 Sbox S와 1바이트 입력 랜덤 마스크 값 M와 1바이트 출력 랜덤 마스크 값 N이 그것이다. 따라서 <알고리즘 3>을 논의의 편의상 RS(S, M, N)과 같이 표기한다.
한편, 치환 계층(Substitution layer)에는 2종의 Sbox 테이블 S1, S2와 그들의 역변환 테이블인 S1-1, S2-1 가 사용되는데, 논의의 편의상 역변환 테이블을 S3=S1-1, S4=S2-1라고 표기한다.
<알고리즘 4>
1. For (n=1; n<=4; n=n+1)
1-1. For (i=1; i<=d; i=i+1)
1-1-1 RS(Sn, Mi,n, Ni,n)
End of i
1-2 RS(Sn, Mn
Figure 112007034985639-pat00092
Mn+4, Nn
Figure 112007034985639-pat00093
Nn+4)
1-3 RS(Sn, Mn+4
Figure 112007034985639-pat00094
Mn+8, Nn+4
Figure 112007034985639-pat00095
Nn+8)
1-4 RS(Sn, Mn+8
Figure 112007034985639-pat00096
Mn+12, Nn+8
Figure 112007034985639-pat00097
Nn+12)
End of n
상기 <알고리즘 4>는 고차 DPA 공격에 안전함과 동시에 Sbox 재계산 횟수를 줄이는 효율적인 방법으로서 도 2의 RS Type I에 해당하며, 이를 다시 자세하게 도 3에서 동작 순서 및 흐름을 설명해 놓았다. 도 3은 홀수 라운드의 변형된 치환계층을 나타내며 짝수 라운드의 경우 Sbox 계산 순서가 S3→S4→S1→S2 이 된다.
상기 <알고리즘 4>는 처음 4개의 Sbox인 S1, S2, S3, S4에 대해서만 d회 RS(S, M, N)을 계산한다. 이는 Mj=(RP1,j
Figure 112007034985639-pat00098
RK1,j)
Figure 112007034985639-pat00099
Figure 112007034985639-pat00100
(RPd,j
Figure 112007034985639-pat00101
RKd,j) 값이 명시적으로 드러나지 않도록 하기 위함이다. 이후 12개의 RS(S, M, N) 계산 시에는 입력 마스크로서 Mn
Figure 112007034985639-pat00102
Mn+4 = (M1,n
Figure 112007034985639-pat00103
M1,n+4)
Figure 112007034985639-pat00104
(M2,n
Figure 112007034985639-pat00105
M2,n+4)
Figure 112007034985639-pat00106
Figure 112007034985639-pat00107
(Md,n
Figure 112007034985639-pat00108
Md,n+4)을 사용하고, 출력 마스크로서 Nn
Figure 112007034985639-pat00109
Nn+$ = (N1,n
Figure 112007034985639-pat00110
N1,n+4)
Figure 112007034985639-pat00111
(N2,n
Figure 112007034985639-pat00112
N2,n+4)
Figure 112007034985639-pat00113
Figure 112007034985639-pat00114
(Nd,n
Figure 112007034985639-pat00115
Nd,n+4)을 사용한다. 따라서 d회의 Sbox 재계산이 아닌 1회의 Sbox 재계산만으로 안전한 마스킹 방법을 구현할 수 있다. 특히 입력 마스크 Mn
Figure 112007034985639-pat00116
Mn+4는 이전의 입력 마스크 Mn 을 제거하고 새로운 입력 마스크 Mn+4을 생성하며, 출력 마스크 Nn
Figure 112007034985639-pat00117
Nn+4는 이전의 출력 마스크 Nn 을 제거하고 새로운 출력 마스크 Nn+4을 새롭게 마스킹하는 효과를 가져온다.
위 과정을 거치면 라운드 함수를 구성하는 확산 계층(Diffusion Layer)에 대해서만 마스킹 값을 계산하면 충분하다. 상기 <알고리즘 4>의 출력을 X
Figure 112007034985639-pat00118
N1
Figure 112007034985639-pat00119
N2
Figure 112007034985639-pat00120
Figure 112007034985639-pat00121
Nd라고 간단히 표기하자. 이때, 확산 계층 계산은 다음과 같은 식으로 이루어진다.
DiffLayer(X
Figure 112007034985639-pat00122
N1
Figure 112007034985639-pat00123
N2
Figure 112007034985639-pat00124
Figure 112007034985639-pat00125
Nd)
= DiffLayer(X)
Figure 112007034985639-pat00126
DiffLayer (N1)
Figure 112007034985639-pat00127
DiffLayer (N2)
Figure 112007034985639-pat00128
Figure 112007034985639-pat00129
DiffLayer (Nd)
= DiffLayer(X)
Figure 112007034985639-pat00130
N’1
Figure 112007034985639-pat00131
N’2
Figure 112007034985639-pat00132
Figure 112007034985639-pat00133
N’d
한편, 최종 라운드에서 AddRoundKey 연산 후 올바른 암호문 C를 생성하기 위해서는 마스킹 값을 제거해야 한다. 도 2의 하단부에서 AddRoundKey 연산 후 결과 값을 C
Figure 112007034985639-pat00134
M1
Figure 112007034985639-pat00135
Figure 112007034985639-pat00136
Md 라고 하면 암호문 C를 안전하게 얻기 위해서 상기 <알고리즘 1>을 적용해야 한다.
바람직하게는, 고차 DPA 공격을 더욱 정밀하게 방어하기 위해서 Sbox 계산 시 계산 순서를 임의로 재정렬 하는 기법을 동원할 수도 있다. 기존의 계산 순서는 홀수 라운드의 경우 S1→S2→S3→S4이며 짝수 라운드의 경우 S3→S4→S1→S2 인데, 이 순서를 임의로 설정하고 Sbox 출력 값 16바이트를 정렬할 때 기존과 동일한 위치로 배치하면 충분하다.
한편, 도 2와 같이 각 라운드키 Ki에 대해서 KiRK1RKd 와 같이 d개의 랜덤 마스크를 적용하게 되는데, 이때 각 라운드마다 매번 새로운 랜덤 마스크를 생성해야 한다.
한편, 본 발명의 라운드 함수 계산 방법은 더욱 효과적으로 구현할 수 있다. 통상 ARIA에 대한 전력분석공격은 첫 번째 라운드와 마지막 라운드에서만 적용이 가능하다. 따라서 전체 라운드에 대해서 본 발명의 기술을 적용하지 않고 첫 번째 라운드와 마지막 라운드에 대해서만 본 발명의 기법을 적용하여 속도를 개선할 수 있다.
이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.
상술한 바와 같이, 본 발명에 의한 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법은, ARIA 블록 암호 알고리즘에서 고차 전력분석공격에 견디는 방법을 개발함과 동시에 대응기법을 적용함에 있어 발생하는 속도 저하의 문제를 개선하였다. 또한 d≥2인 임의의 차수의 전력분석공격에 대한 일반적인 방법기법을 제시하였다.

Claims (10)

  1. (a) d개의 마스크 값들을 입력 평문 및 라운드 키에 각각 연산시키는 단계;
    (b) 치환 계층에서 Sbox 업데이트를 통해 마스크 값을 연산하는 단계; 및
    (c) 라운드 함수를 구성하는 확산 계층에서 마스킹 값을 연산하는 단계
    를 포함하는 것을 특징으로 하는 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법.
  2. 제1항에 있어서, 상기 (a) 단계는,
    랜덤 마스크 R1, R2, …, Rd 를 생성하는 단계;
    d개의 랜덤 마스크가 적용된 출력 값인 RX 를 초기화시키는 단계;
    상기 입력 평문과 라운드 키를 마스킹 연산하는 단계
    로 이루어진 것을 특징으로 하는 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법.
  3. 제2항에 있어서, 상기 RX 는 ((((RX)
    Figure 112007034985639-pat00137
    R1)
    Figure 112007034985639-pat00138
    …)
    Figure 112007034985639-pat00139
    Rd) 연산을 수행하는 것을 특징으로 하는 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법.
    (여기서,
    Figure 112007034985639-pat00140
    는 배타적 논리합 연산)
  4. 제2항에 있어서, 상기 마스킹 연산 결과로서 1바이트인 Mi,j=RPi,j
    Figure 112007034985639-pat00141
    RKi,j(i=1, 2, …, 16, j=1, 2, …, d)와 1바이트인 Mj=(RP1,j
    Figure 112007034985639-pat00142
    RK1,j)
    Figure 112007034985639-pat00143
    Figure 112007034985639-pat00144
    (RPd,j
    Figure 112007034985639-pat00145
    RKd,j)(j=1, 2, …., 16)를 생성하는 것을 특징으로 하는 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법.
    (여기서, P는 입력 평문, K는 라운드 키, M은 마스크,
    Figure 112007034985639-pat00146
    는 배타적 논리합 연산)
  5. 제1항에 있어서, 상기 (b) 단계는 Sbox 테이블과 이의 역변환 테이블에 대하여 RS(S, M, N)를 아래 알고리즘에 의해 결정하는 단계를 포함하는 것을 특징으로 하는 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법.
    1. For (n=1; n<=4; n=n+1)
    1-1. For (i=1; i<=d; i=i+1)
    1-1-1 RS(Sn, Mi,n, Ni,n)
    End of i
    1-2 RS(Sn, Mn
    Figure 112007034985639-pat00147
    Mn+4, Nn
    Figure 112007034985639-pat00148
    Nn+4)
    1-3 RS(Sn, Mn+4
    Figure 112007034985639-pat00149
    Mn+8, Nn+4
    Figure 112007034985639-pat00150
    Nn+8)
    1-4 RS(Sn, Mn+8
    Figure 112007034985639-pat00151
    Mn+12, Nn+8
    Figure 112007034985639-pat00152
    Nn+12)
    End of n
    (여기서, S는 Sbox, M은 1바이트 입력 랜덤 마스크 값, N은 1바이트 출력 랜덤 마스크 값)
  6. 제5항에 있어서, 상기 RS(Sn, Mi,n, Ni,n)는 d회 수행되는 것을 특징으로 하는 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법.
    (여기서, n=1, 2, 3, 4)
  7. 제5항에 있어서, 상기 Sbox 테이블과 이의 역변환 테이블로 이루어진 최초 4개의 Sbox를 d회씩 계산한 후, 나머지 Sbox를 재계산할 때에는 1바이트 입력 마스크 Mn
    Figure 112007034985639-pat00153
    Mn+4 = (M1,n
    Figure 112007034985639-pat00154
    M1,n+4)
    Figure 112007034985639-pat00155
    (M2,n
    Figure 112007034985639-pat00156
    M2,n+$)
    Figure 112007034985639-pat00157
    Figure 112007034985639-pat00158
    (Md,n
    Figure 112007034985639-pat00159
    Md,n+4)와 1바이트 출력 마스크 Nn
    Figure 112007034985639-pat00160
    Nn+4 = (N1,n
    Figure 112007034985639-pat00161
    N1,n+4)
    Figure 112007034985639-pat00162
    (N2,n
    Figure 112007034985639-pat00163
    N2,n+4)
    Figure 112007034985639-pat00164
    Figure 112007034985639-pat00165
    (Nd,n
    Figure 112007034985639-pat00166
    Nd,n+4)을 사용하여 RS(S, M, N) 계산을 1회만 수행하는 것을 특징으로 하는 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법.
  8. 제5항에 있어서, 상기 RS(S, M, N)에 대해 RS(Sn, Mn
    Figure 112007034985639-pat00167
    Mn+4, Nn
    Figure 112007034985639-pat00168
    Nn+4)의 입출력 마스크를 사용하여, 입력 마스크 Mn
    Figure 112007034985639-pat00169
    Mn+4는 이전의 입력 마스크 Mn 을 제거하고 새로운 입력 마스크 Mn+4을 생성하며, 출력 마스크 Nn
    Figure 112007034985639-pat00170
    Nn+4는 이전의 출력 마스크 Nn 을 제거하고 새로운 출력 마스크 Nn+4을 생성하여 새롭게 마스킹하는 것을 특징으로 하는 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법.
  9. 제1항에 있어서, 상기 단계 (c)는,
    DiffLayer(X
    Figure 112007034985639-pat00171
    1
    Figure 112007034985639-pat00172
    2
    Figure 112007034985639-pat00173
    Figure 112007034985639-pat00174
    d)
    = DiffLayer(X)
    Figure 112007034985639-pat00175
    DiffLayer(N1)
    Figure 112007034985639-pat00176
    Figure 112007034985639-pat00177
    DiffLayer(Nd)
    확산 계층에서 마스킹 값을 계산하는 것을 특징으로 하는 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법.
    (여기서, X는 d개의 랜덤 마스크가 적용된 출력 값)
  10. 제1항 내지 제8항 중의 어느 한 항에 있어서, 상기 방법은 첫 번째 라운드와 마지막 라운드에 대해서만 적용하는 것을 특징으로 하는 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법.
KR1020070045917A 2007-05-11 2007-05-11 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법 KR100834096B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070045917A KR100834096B1 (ko) 2007-05-11 2007-05-11 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070045917A KR100834096B1 (ko) 2007-05-11 2007-05-11 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법

Publications (1)

Publication Number Publication Date
KR100834096B1 true KR100834096B1 (ko) 2008-06-02

Family

ID=39769712

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070045917A KR100834096B1 (ko) 2007-05-11 2007-05-11 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법

Country Status (1)

Country Link
KR (1) KR100834096B1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100978001B1 (ko) 2010-03-15 2010-08-26 주식회사 유비즈코아 Aria 알고리즘이 적용된 정보보호 및 설비관리 시스템 및 그 방법
KR101011264B1 (ko) * 2008-01-18 2011-01-27 고려대학교 산학협력단 아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및방법
KR101276683B1 (ko) 2009-08-21 2013-06-19 한국전자통신연구원 Seed 암호화 시스템의 f-함수 처리 장치 및 방법
KR101334040B1 (ko) * 2010-01-20 2013-11-28 한국전자통신연구원 대칭키 암호화 시스템의 마스킹 연산 방법 및 장치
US8615078B2 (en) 2009-08-21 2013-12-24 Electronics And Telecommunications Research Institute Method and apparatus for processing F-function in seed encryption system
KR101362675B1 (ko) 2012-11-30 2014-02-12 한국전자통신연구원 저전력 암호화 장치 및 방법
KR101506499B1 (ko) 2008-12-30 2015-03-31 고려대학교 산학협력단 마스킹이 적용된 seed를 이용한 암호화 방법
KR101646657B1 (ko) 2015-05-06 2016-08-08 서강대학교산학협력단 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040071288A1 (en) 2001-02-08 2004-04-15 Fabrice Romain Secure encryption method and component using same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040071288A1 (en) 2001-02-08 2004-04-15 Fabrice Romain Secure encryption method and component using same

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101011264B1 (ko) * 2008-01-18 2011-01-27 고려대학교 산학협력단 아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및방법
KR101506499B1 (ko) 2008-12-30 2015-03-31 고려대학교 산학협력단 마스킹이 적용된 seed를 이용한 암호화 방법
KR101276683B1 (ko) 2009-08-21 2013-06-19 한국전자통신연구원 Seed 암호화 시스템의 f-함수 처리 장치 및 방법
US8615078B2 (en) 2009-08-21 2013-12-24 Electronics And Telecommunications Research Institute Method and apparatus for processing F-function in seed encryption system
KR101334040B1 (ko) * 2010-01-20 2013-11-28 한국전자통신연구원 대칭키 암호화 시스템의 마스킹 연산 방법 및 장치
KR100978001B1 (ko) 2010-03-15 2010-08-26 주식회사 유비즈코아 Aria 알고리즘이 적용된 정보보호 및 설비관리 시스템 및 그 방법
KR101362675B1 (ko) 2012-11-30 2014-02-12 한국전자통신연구원 저전력 암호화 장치 및 방법
US9049004B2 (en) 2012-11-30 2015-06-02 Electronics And Telecommunications Research Institute Low-power encryption apparatus and method
KR101646657B1 (ko) 2015-05-06 2016-08-08 서강대학교산학협력단 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법

Similar Documents

Publication Publication Date Title
Coron Higher order masking of look-up tables
Trichina et al. Simplified adaptive multiplicative masking for AES
KR100834096B1 (ko) 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법
Medwed et al. Fresh re-keying: Security against side-channel and fault attacks for low-cost devices
JP4596686B2 (ja) Dpaに対して安全な暗号化
US8971526B2 (en) Method of counter-measuring against side-channel attacks
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
US8553877B2 (en) Substitution table masking for cryptographic processes
CN102648600B (zh) 由定制的掩蔽保护的低复杂度电子电路
KR20180002066A (ko) 부채널 분석에 대응하여 대입 연산을 보호하는 방법
Grosso et al. Efficient masked S-boxes processing–a step forward–
CN106487498B (zh) 电子电路对边信道攻击的抵抗的检验
CN106487499B (zh) Rijndael算法的保护
Dassance et al. Combined fault and side-channel attacks on the AES key schedule
KR100737171B1 (ko) 아리아에 대한 전력분석공격에 대응하는 저메모리형 마스킹방법
Coron et al. High order masking of look-up tables with common shares
CN104301095A (zh) Des轮运算方法和电路
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
KR20050076015A (ko) 유한체 곱셈기
CN106936822B (zh) 针对sms4抗高阶旁路分析的掩码实现方法及系统
Boscher et al. Masking does not protect against differential fault attacks
Arora et al. A double-width algorithmic balancing to prevent power analysis side channel attacks in aes
Ha et al. Differential power analysis on block cipher ARIA
KR101203474B1 (ko) 암호화 프로세서를 갖는 단위 전자장치의 보안화 방법
JP2019504343A (ja) 計算デバイス及び方法

Legal Events

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

Payment date: 20130410

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140326

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160525

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee