KR101026439B1 - Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법 - Google Patents

Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법 Download PDF

Info

Publication number
KR101026439B1
KR101026439B1 KR1020090065769A KR20090065769A KR101026439B1 KR 101026439 B1 KR101026439 B1 KR 101026439B1 KR 1020090065769 A KR1020090065769 A KR 1020090065769A KR 20090065769 A KR20090065769 A KR 20090065769A KR 101026439 B1 KR101026439 B1 KR 101026439B1
Authority
KR
South Korea
Prior art keywords
masking
masked
box
inverse
value
Prior art date
Application number
KR1020090065769A
Other languages
English (en)
Other versions
KR20110008418A (ko
Inventor
김창균
정창호
박일환
윤이중
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020090065769A priority Critical patent/KR101026439B1/ko
Priority to US12/685,076 priority patent/US8391476B2/en
Publication of KR20110008418A publication Critical patent/KR20110008418A/ko
Application granted granted Critical
Publication of KR101026439B1 publication Critical patent/KR101026439B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • 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/043Masking or blinding of tables, e.g. lookup, substitution or mapping

Abstract

본 발명은 복수의 S-박스를 하나의 마스킹 역원 테이블로 마스킹할 수 있도록 구성하여 SEED 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 연산시 S-박스의 마스킹에 필요한 연산량과 RAM 사용량을 효과적으로 줄일 수 있는 것을 특징으로 한다.
SEED, 암호화, S-박스, 마스킹, 차분 전력 분석 공격

Description

SEED 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법{The Masking Method for Protecting Power Analysis Attacks in SEED}
본 발명은 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법에 관한 것으로, 더 자세하게는 SEED 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 연산시 연산 속도와 메모리 효율성을 향상시킬 수 있는 방법에 관한 것이다.
1996년 Paul Kocher에 의해 소개된 부채널 분석 공격은 기존의 수학적 분석 방법인 차분분석, 선형분석 등과는 달리 암호 알고리즘을 구현한 암호장치에서 발생하는 부채널 정보를 이용하는 공격방법이다. 이러한 부채널 분석 공격은 실제 암호 알고리즘이 구현된 장비에 큰 위협이 되고 있으며, 이에 따라 스마트카드 응용제품의 경우 부채널 분석 공격에 대한 안전성 시험을 수행하고 있다.
부채널 분석 공격은 알고리즘의 수행 시간, 전력소모량, 전자기누출 등의 부가적인 정보를 이용한다. 그 중 전력소모량을 이용하는 전력 분석 공격이 가장 강 력한 부채널 분석 공격으로 알려져 있다.
전력 분석 공격은 암호 알고리즘이 동작할 때 비밀키와 관련된 데이터가 처리되는 시점에서 암호 모듈에서 측정된 소비전력의 특성을 분석하여 비밀키를 찾아내는 방법이다. 전력 분석 공격은 크게 단순 전력 분석 공격(Simple Power Analysis Attack : SPA)과 차분 전력 분석 공격(Differntial Power Analysis Attack : DPA)으로 나뉜다.
도 1은 일반적인 차분 전력 분석 공격의 과정을 설명하기 위한 도면이다.
도 1을 참조하면, 공격자는 공격하고자 하는 암호 장치에 대해 통상적으로 얻을 수 있는 정보를 이용하여 추정 모델(120)을 정립한다. 추정 모델(120)을 정립한 후, 추정 모델(120)에 추측 키와 평문을 입력하여 암호 알고리즘의 중간값을 계산하고, 중간값에 따른 추정 전력소모량을 결정한다.
또한, 추정 모델(120)에 입력한 평문과 동일한 평문을 공격 대상 암호 장치(110)에 입력하고, 암호 알고리즘 수행중 암호 장치(110)에서 소비한 전력소모량을 측정하여 측정 전력소모량을 추정 전력소모량과 함께 분석한다. 이러한 분석을 통해 결국 공격자는 암호 장치(110)의 비밀정보인 키를 획득할 수 있다.
현재까지 차분 전력 분석 공격을 방어하기 위한 방법이 다양하게 연구되고 있다. 그 중 마스킹 기법은 가장 저렴한 비용으로 비교적 손쉽게 암호 알고리즘에 적용할 수 있기 때문에 일반적으로 많이 사용되는 방법이다.
마스킹 기법의 기본 개념은 암호 알고리즘의 연산중에 발생하는 중간값을 공격자가 알 수 없도록 랜덤화하는 방법으로서, 공격자가 추정 모델을 통해 추정하는 전력소모량 및 실제 암호장치에서 발생하는 전력소모량 간의 상관관계를 제거하는 방법이다. 예를 들어, 마스킹 기법 중 하나인 가산 마스킹은 암호화시에 발생하는 중간값 a를 랜덤하게 생성된 ma를 이용하여 공격자가 알 수 없는 값 am=a
Figure 112009043895978-pat00001
ma으로 대체한다. 여기서, ma를 마스크라고 하며 이 값은 독립적으로 균일하게 분포된 값이다.
하지만, 현재까지 연구된 마스킹 기법은 AES(Advanced Encryption Standard)에 대한 것들이 대부분으로, 국내에서 개발된 SEED는 AES와 그 구조가 많이 다르기 때문에, 기존에 제안된 AES의 마스킹 기법을 SEED에 그대로 적용할 수 없다는 문제점이 있다.
따라서, 스마트카드와 같은 저메모리 및 저속 연산 환경에서 사용되는 SEED 암호 알고리즘에 적합한 마스킹 기법이 요구되고 있다.
본 발명의 목적은 SEED 암호화에서 차분 전력 분석 공격을 방어할 수 있는 마스킹 방법을 제공하는 것이다.
본 발명의 다른 목적은 SEED 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 연산시 연산 속도와 메모리 효율성을 향상시킬 수 있는 마스킹 방법을 제공하는 것이다.
상기 목적을 달성하기 위하여 본 발명에 따른 SEED 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법은, (a) 역원 테이블과 제1, 2 변환 테이블을 생성하여 룩업 테이블로 저장하는 단계; (b) 마스킹에 필요한 마스크값들을 생성하는 단계; (c) 상기 역원 테이블을 마스킹하여 하나의 마스킹 역원 테이블을 생성하는 단계; 및 (d) 마스킹된 원 정보가 입력되면 상기 하나의 마스킹 역원 테이블과 상기 제1, 2 변환 테이블을 이용하여 마스킹된 S-박스를 출력하는 단계를 포함하는 것을 특징으로 한다.
상기 (a) 단계에서는, 역원 행렬을 이용하여 상기 역원 테이블을 생성한 후 룩업 테이블로 저장하고, 이진 행렬을 이용하여 상기 역원 테이블의 사용에 따른 추가적인 변환을 위한 제1, 2 변환 테이블을 생성한 후 룩업 테이블로 저장하는 것이 바람직하다.
여기에서, 상기 이진 행렬(C1, C2)은,
Figure 112009043895978-pat00002
,
Figure 112009043895978-pat00003
인 것이 바람직하다.
상기 (b) 단계에서는,
m1=rand(), m2=C2[m4]
Figure 112009043895978-pat00004
0x38, m3=m1
Figure 112009043895978-pat00005
m2,
m4=rand(), m5=C1[m4]
Figure 112009043895978-pat00006
0xa9, m6=m3
Figure 112009043895978-pat00007
m5,
ma=rand(), mb=rand()
에 의해 6개의 1바이트 마스크값(m1, m2, m3, m4, m5, m6)과 2개의 4비트 마스크값(ma, mb)을 생성하는 것이 바람직하다.
상기 (c) 단계에서 생성된 마스킹 역원 테이블은 마스킹된 원 정보에 대응하여 마스킹된 역원 정보를 출력하는 것이 바람직하다.
상기 (d) 단계에서는 마스킹된 원 정보가 입력되면, 상기 마스킹 역원 테이블을 이용하여 상기 마스킹된 원 정보에 대응하는 마스킹된 역원 정보를 출력한 다음, 상기 제1, 2 변환 테이블을 이용하여 상기 마스킹된 역원 정보에 대응하는 마스킹된 S-박스를 출력한 후, 상기 마스킹된 S-박스를 마스킹하여 특정 마스크값으로 마스킹된 S-박스를 출력하는 것이 바람직하다.
한편, 상기 (d) 단계 이후에, 상기 마스킹된 S-박스를 포함하는 마스킹 G 함수에 대한 마스킹 값을 동일하게 유지하기 위한 마스킹 덧셈 연산 단계를 더 포함하는 것이 바람직하다.
본 발명의 마스킹 방법에 따르면, 스마트카드와 같은 저메모리 및 저속 연산 환경에 적합한 SEED 암호화에서 차분 전력 분석 공격을 방어할 수 있다.
또한, 본 발명의 마스킹 방법에 따르면, SEED 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 연산시 연산 속도와 메모리 효율성을 향상시킬 수 있다.
이하, 본 발명의 실시예에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 2는 본 발명이 적용되는 SEED 암호 알고리즘을 설명하기 위한 도면으로, '
Figure 112009043895978-pat00008
'는 배타적 논리합(Exclusive-Or) 비트 연산, '||'는 둘 이상의 비트들을 연속하여 배치하는 연쇄(concatenation)를 나타낸다.
도 2를 참조하면, SEED 암호 알고리즘은 128비트의 평문 블록을 상하위 2개의 64비트 데이터들(Li, Ri)로 나누어 16개의 64비트 라운드 키(Ki)를 이용하여 16 라운드를 수행한 후 최종적으로 128비트의 암호문 블록을 출력한다.
상기 128비트의 평문 블록을 암호화하는 과정에 대하여 좀 더 자세히 설명하면 다음과 같다.
먼저 128 비트의 평문 블록을 오른쪽 64 비트(R0)와 왼쪽 64 비트(L0)로 나누어 저장한다. 그 다음, 라운드 키(K1)를 암호화 함수(F)에 적용하여 오른쪽 64 비트(R0)를 암호화하며, 그 결과값을 왼쪽 64 비트(L0)와 배타적 논리합 연산하여 새로운 라운드로 입력한다. 이러한 방식으로 16 라운드를 반복하게 되며, 16 라운드가 끝난 후 마지막에서 64 비트의 L16과 R16을 합쳐 128 비트의 암호문 블록을 출력한다.
이러한 SEED 암호 알고리즘에 마스킹 기법을 적용하는 경우, 마지막 라운드를 제외한 라운드에서는 입출력값을 특정 마스크값으로 마스킹하고 마지막 라운드에서는 출력값에서 마스킹에 사용된 마스크값을 제거한다. 그리고, 상기 암호화 함수(F)의 암호화 연산 중에 발생하는 중간값들도 공격자가 알 수 없도록 랜덤한 값으로 마스킹한다.
여기에서, 상기 암호화 함수(F)에는 비선형 연산인 S-박스 연산과 덧셈 연산이 사용되며, 이러한 비선형 연산의 마스킹에 소요되는 비용은 선형 연산의 마스킹에 소요되는 비용에 비해 상당히 큰 편이기 때문에, 비선형 연산에 대한 마스킹의 효율성에 따라 전체 마스킹 기법의 효율성이 결정된다.
따라서, 본 발명에서는 비선형 연산인 S-박스 연산과 덧셈 연산에 대한 효율 적인 마스킹 기법을 제시하며, 이에 대하여 더 자세히 설명하면 다음과 같다.
먼저, S-박스 연산에 대한 마스킹에 대하여 설명한다.
도 3은 암호화 함수(F)의 구조를 나타낸 도면이며, 도 4는 종래의 G 함수의 구조를 나타낸 도면이다.
도 3을 참조하면, 암호화 함수(F)는 32비트 단위의 2개의 블록(C, D)과 32비트 단위의 2개의 라운드 키(Ki)를 입력받아 마스킹 G 함수(MGF, Masking G Function)와 마스킹 덧셈 연산(MA, Masking Addition)에 의해 32비트 단위의 2개의 블록(C', D')을 각각 출력한다.
일반적으로 G 함수는 도 4에 도시된 바와 같이 4개의 S-박스(S1, S2), AND 연산 및 XOR 연산으로 이루어진다.
여기에서, 상기 S-박스(S1, S2)는 비선형 변환 함수로 다음의 수학식 1과 같이 정의된다.
Figure 112009043895978-pat00009
S1(x)=A1·x247a
S2(x)=A2·x251
Figure 112009043895978-pat00010
b
여기에서, 
Figure 112009043895978-pat00011
,
Figure 112009043895978-pat00012
,
Figure 112009043895978-pat00013
,
Figure 112009043895978-pat00014
이다.
상기 수학식 1에서 알 수 있는 바와 같이, S1(x)와 S2(x)는 연산 과정이 매우 복잡하기 때문에 룩업 테이블로 구현하여 ROM(Read Only Memory)에 각각 저장하여 두고, 매 암호 연산시마다 2개의 룩업 테이블을 새로운 마스크값으로 각각 마스킹한 후 RAM(Random Access Memory)에 저장하여 이용하는 것이 일반적이다.
하지만, 이러한 방식의 경우 2개의 룩업 테이블을 각각 마스킹해야 하기 때문에 매번 512번의 XOR 연산을 수행해야 할 뿐만 아니라, 마스킹된 2개의 룩업 테이블을 저장하기 위해서도 512 바이트의 RAM이 필요하다는 문제점이 있다.
이를 위해 본 발명에서는 S1(x)와 S2(x)의 마스킹 연산시 하나의 룩업 테이블만 마스킹하면 되도록 하며, 이에 대하여 보다 구체적으로 설명하면 다음과 같다.
먼저, 상기 수학식 1에서 S1(x)와 S2(x)의 입출력은 8×8 이진 행렬의 원소이므로, 다음의 수학식 2와 같은 관계가 성립한다.
(x-1)8≡x247modp(x), (x-1)4≡x251modp(x)
여기에서, p(x)=x8+x6+x5+x+1로 표현되는 기약다항식이다.
따라서, 상기 수학식 1의 S1(x)와 S2(x)는 다음의 수학식 3과 같이 나타낼 수 있다.
Figure 112009043895978-pat00015
Figure 112009043895978-pat00016
Figure 112009043895978-pat00017
Figure 112009043895978-pat00018
S1(x) = A1·x247a = A1·x-8a = A1B1·x-1a = C1·x-1a
S2(x) = A2·x251
Figure 112009043895978-pat00019
b = A2·x-4
Figure 112009043895978-pat00020
b = A2B2·x-1
Figure 112009043895978-pat00021
b = C2·x-1
Figure 112009043895978-pat00022
b
여기에서, 
Figure 112009043895978-pat00023
,
Figure 112009043895978-pat00024
,
Figure 112009043895978-pat00025
,
Figure 112009043895978-pat00026
이다.
상기 수학식 3에서 알 수 있는 바와 같이, S1(x)와 S2(x)에는 하나의 역원 행렬(x-1)이 공통으로 포함된다.
즉, 상기 역원 행렬(x-1)을 하나의 룩업 테이블로 구현해 놓으면, S1(x)와 S2(x)의 마스킹 연산시 하나의 룩업 테이블만 마스킹하면 되므로, 결과적으로 마스 킹 연산에 필요한 연산량을 절반으로 감소시킬 수 있다. 또한, 상기 마스킹된 룩업 테이블의 저장을 위한 RAM의 사용량도 절반으로 줄일 수 있다.
여기에서, 상기 이진 행렬 C1, C2(간략히 C로 나타냄)는 선형 연산이므로 다음의 수학식 4와 같은 특성을 갖는다.
Figure 112009043895978-pat00027
Figure 112009043895978-pat00028
C(x-1m) = C(x-1) C(m)
여기에서, x-1은 역원 행렬, m은 마스크값을 나타낸다.
상기 수학식 4에서 알 수 있는 바와 같이, 상기 이진 행렬(C1, C2)은 선형 연산이므로 마스크값(m)에 영향을 받지 않기 때문에, 어떠한 x(x-1
Figure 112009043895978-pat00029
m을 고려하지 않아도 됨)에 대해 C(x)의 출력을 미리 계산하여 룩업 테이블로 ROM(Read Only Memory)에 저장해 놓으면, 어떠한 x-1
Figure 112009043895978-pat00030
m에 대해서도 C(x-1)
Figure 112009043895978-pat00031
C(m)을 매번 계산할 필요가 없게 되므로 연산 속도를 더욱 향상시킬 수 있다.
따라서, 본 발명에서는 상기 역원 행렬(x-1)과 상기 이진 행렬(C1, C2)을 룩업 테이블로 구현해놓은 후, 이들 룩업 테이블을 이용하여 S-박스 S1(x)와 S2(x)의 마스킹을 수행함으로써 연산량과 RAM 사용량을 감소시키며, 이에 대하여 더 자세히 설명하면 다음과 같다.
도 5는 본 발명의 일 실시예에 따른 S-박스 연산에 대한 마스킹 방법을 설명 하기 위한 도면이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 마스킹 방법은, 역원 테이블 및 변환 테이블 생성 단계(S510), 마스크값 생성 단계(S530), 마스킹 역원 테이블 생성 단계(S550), 마스킹 S-박스 구성 단계(S570)를 포함하며, 각 단계에 대하여 더 자세히 설명하면 다음과 같다.
(1) 역원 테이블 및 변환 테이블 생성 단계(S510)
이 단계에서는 두 S-박스 S1(x)와 S2(x)를 하나의 테이블로 마스킹할 수 있도록 만들어 주는 역원 테이블(Inv)을 생성하여 ROM에 룩업 테이블로 저장한다. 여기에서, 상기 역원 테이블(Inv)은 상기 역원 행렬(x-1)을 룩업 테이블로 구현한 것이다.
그리고, 상기 역원 테이블(Inv)의 사용에 따른 추가적인 변환을 위한 제1, 2 변환 테이블(T1, T2)을 생성하여 ROM에 룩업 테이블로 저장한다. 여기에서, 상기 제1, 2 변환 테이블(T1, T2)은 상기 이진 행렬(C1, C2)을 룩업 테이블로 각각 구현한 것이다.
(2) 마스크값 생성 단계(S530)
이 단계에서는 다음의 수학식 5에 의해 마스킹에 필요한 6개의 1바이트 마스크값(m1, m2, m3, m4, m5, m6)과 2개의 4비트 마스크값(ma, mb)을 생성한다.
Figure 112009043895978-pat00032
Figure 112009043895978-pat00033
m1=rand(), m2=C2[m4]0x38, m3=m1m2,
m4=rand(), m5=C1[m4]
Figure 112009043895978-pat00034
0xa9, m6=m3
Figure 112009043895978-pat00035
m5,
ma=rand(), mb=rand()
(3) 마스킹 역원 테이블 생성 단계(S550)
이 단계에서는 ROM에 저장된 역원 테이블(Inv)을 새로운 마스크값(m4)으로 마스킹하여 마스킹 역원 테이블(MInv)을 생성한 후, 상기 생성된 마스킹 역원 테이블(MInv)을 RAM(Random Access Memory)에 저장한다.
상기 마스킹 역원 테이블(MInv)은 원 정보(x)가 m1과 XOR되어 마스킹된 값(x
Figure 112009043895978-pat00036
m1)에 대응하여 역원 정보(x-1)가 m4와 XOR되어 마스킹된 값(x-1
Figure 112009043895978-pat00037
m4)을 출력한다.
여기에서, 상기 마스킹 역원 테이블(MInv)은 다음의 수학식 6에 의해 생성된다.
for i = 0 to 255
MInv(xi
Figure 112009043895978-pat00038
m1) = Inv(xi)
Figure 112009043895978-pat00039
m4
(4) 마스킹 S-박스 구성 단계(S570)
이 단계에서는 상기 마스킹 역원 테이블(MInv)과 상기 제1, 2 변환 테이블(T1, T2)을 이용하여 마스킹된 S-박스를 출력하는 마스킹 S-박스를 구성한다.
다시 말해, 상기 마스킹 역원 테이블(MInv)과 상기 제1, 2 변환 테이블(T1, T2)을 이용하여 상기 S-박스 S1(x)와 S2(x)의 마스킹 연산이 가능하도록 마스킹 S-박스를 구성한다.
상기 마스킹 S-박스의 연산은 다음과 같은 과정으로 이루어지게 된다.
먼저, m1으로 마스킹된 원 정보(x
Figure 112009043895978-pat00040
m1)가 입력되면, 상기 마스킹 역원 테이블(MInv)을 이용하여 m4로 마스킹된 역원 정보(x-1
Figure 112009043895978-pat00041
m4)를 출력한다.
다음으로, 상기 제1 변환 테이블(T1)을 이용하여 상기 마스킹된 역원 정보(x-1
Figure 112009043895978-pat00042
m4)를 마스킹된 S-박스(S1(x)
Figure 112009043895978-pat00043
m5)로 변환하며, 상기 제2 변환 테이블(T2)을 이용하여 상기 마스킹된 역원 정보(x-1
Figure 112009043895978-pat00044
m4)를 마스킹된 S-박스(S2(x)
Figure 112009043895978-pat00045
m2)로 변환한다.
마지막으로, 상기 제1, 2 변환 테이블(T1, T2)의 출력을 m6과 m1에 의해 각각 마스킹하여 최종적으로 특정 마스크값(m3)으로 마스킹된 S-박스 S1(x)
Figure 112009043895978-pat00046
m3와 S2(x)
Figure 112009043895978-pat00047
m3를 출력한다.
일예로, (x0
Figure 112009043895978-pat00048
m1)과 (x2
Figure 112009043895978-pat00049
m1)이 입력되면, 상기 마스킹 역원 테이블(MInv)은 (x0
Figure 112009043895978-pat00050
m1)과 (x2
Figure 112009043895978-pat00051
m1)의 입력에 대응하여 (x0 -1
Figure 112009043895978-pat00052
m4)와 (x2 -1
Figure 112009043895978-pat00053
m4)를 각각 출력하며, 이에 따라 상기 제1 변환 테이블(T1)은 (x0 -1
Figure 112009043895978-pat00054
m4)와 (x2 -1
Figure 112009043895978-pat00055
m4)의 입력에 대응하여 (S1(x0)
Figure 112009043895978-pat00056
m5)와 (S1(x2)
Figure 112009043895978-pat00057
m5)를 각각 출력한다. 그리고, 상기 제1 변환 테이블(T1)의 출력 (S1(x0)
Figure 112009043895978-pat00058
m5)와 (S1(x2)
Figure 112009043895978-pat00059
m5)를 m6로 마스킹하여 최종적으로 m3에 의해 마스킹된 (S1(x0)
Figure 112009043895978-pat00060
m3)와 (S1(x2)
Figure 112009043895978-pat00061
m3)를 출력한다.
또한, 상기 마스킹 역원 테이블(MInv)은 (x1
Figure 112009043895978-pat00062
m1)과 (x3
Figure 112009043895978-pat00063
m1)의 입력에 대응하여 (x1 -1
Figure 112009043895978-pat00064
m4)와 (x3 -1
Figure 112009043895978-pat00065
m4)를 각각 출력하며, 이에 따라 상기 제2 변환 테이블(T2)은 (x1 -1
Figure 112009043895978-pat00066
m4)와 (x3 -1
Figure 112009043895978-pat00067
m4)의 입력에 대응하여 (S2(x1)
Figure 112009043895978-pat00068
m2)와 (S2(x3)
Figure 112009043895978-pat00069
m2)를 각각 출력한다. 그리고, 상기 제2 변환 테이블(T2)의 출력 (S2(x1)
Figure 112009043895978-pat00070
m2)와 (S2(x3)
Figure 112009043895978-pat00071
m2)를 m1으로 마스킹하여 최종적으로 m3에 의해 마스킹된 (S2(x1)
Figure 112009043895978-pat00072
m3)와 (S2(x3)
Figure 112009043895978-pat00073
m3)를 출력한다.
따라서, m1에 의해 마스킹된 원 정보(x
Figure 112009043895978-pat00074
m1)에 대한 마스킹 S-박스 MaskedS1(x
Figure 112009043895978-pat00075
m1)와 MaskedS2(x
Figure 112009043895978-pat00076
m1)의 연산은 다음의 수학식 7과 같이 나타낼 수 있다.
Figure 112009043895978-pat00077
Figure 112009043895978-pat00078
Figure 112009043895978-pat00079
Figure 112009043895978-pat00080
Figure 112009043895978-pat00081
Figure 112009043895978-pat00082
MaskedS1(xm1) = T1(MInv(xm1))m6 = C1·(x-1m4)m5m3
= C1·x-1
Figure 112009043895978-pat00083
C1·m4
Figure 112009043895978-pat00084
C1·m4
Figure 112009043895978-pat00085
a
Figure 112009043895978-pat00086
m3 = C1·x-1
Figure 112009043895978-pat00087
a
Figure 112009043895978-pat00088
m3
= S1(x)
Figure 112009043895978-pat00089
m3
MaskedS2(x
Figure 112009043895978-pat00090
m1) = T2(MInv(x
Figure 112009043895978-pat00091
m1))
Figure 112009043895978-pat00092
m1 = C2·(x-1
Figure 112009043895978-pat00093
m4)
Figure 112009043895978-pat00094
m2
Figure 112009043895978-pat00095
m2
Figure 112009043895978-pat00096
m1
= C2·x-1
Figure 112009043895978-pat00097
C2·m4
Figure 112009043895978-pat00098
C2·m4
Figure 112009043895978-pat00099
b
Figure 112009043895978-pat00100
m3 = C2·x-1
Figure 112009043895978-pat00101
b
Figure 112009043895978-pat00102
m3
= S2(x)
Figure 112009043895978-pat00103
m3
상기 수학식 7에서 알 수 있는 바와 같이, 상기 마스킹 S-박스 MaskedS1(x
Figure 112009043895978-pat00104
m1)와 MaskedS2(x
Figure 112009043895978-pat00105
m1)의 구성시 하나의 역원 테이블(Inv)만 마스킹하면 되므로, 마스킹 연산에 필요한 연산량과 RAM 사용량을 효과적으로 줄일 수 있으며, 이에 따라 연산 속도와 메모리 효율성을 크게 향상시킬 수 있다.
다음으로, 본 발명의 일 실시예에 따른 덧셈 연산에 대한 마스킹 방법에 대하여 설명한다.
도 3을 참조하면, 상기 암호화 함수(F)에는 마스킹 G 함수(MGF)에 대한 마스킹 값을 동일하게 유지시켜 주기 위해 비선형 연산인 덧셈 연산에 마스킹이 적용된 마스킹 덧셈 연산(MA)이 사용된다.
일반적으로, 덧셈 연산에는 불 마스킹 연산과 산술 마스킹 연산이 모두 포함되며, 이렇게 불 마스킹 연산과 산술 마스킹 연산이 혼용되어 사용되는 경우에는 마스킹 과정이 매우 복잡해진다.
이를 위해 본 발명에서는 다음의 수학식 8과 같은 과정을 통해 덧셈 연산의 형태를 변환하여 마스킹한다.
Figure 112009043895978-pat00106
Figure 112009043895978-pat00107
Figure 112009043895978-pat00108
입력 : x'=x(m3)4, y'=y(m3)4 출력 : z'=(x+y)(m1)4
1. Temp = BtoA(x')
2. z' = Temp + (ma)8
3. Temp = BtoA(y')
4. z' = z' + Temp
5. z' = z' + 2m3
6. z' = AtoB(z')
상기 수학식 8에서, BtoA(x)는 불 마스킹 값을 산술 마스킹 값으로 변환하는 함수로, 다음의 수학식 9와 같이 x'=x
Figure 112009043895978-pat00109
(m3)4을 만족하는 x'에 대해서 A=x+(m3)4 을 만족하는 A을 출력하는 함수이다.
Figure 112009043895978-pat00110
입력 : x'=x(m3)4, 출력 : A = x+(m3)4
1. Temp = x'
Figure 112009043895978-pat00111
(m6)4
2. Temp = Temp-(m6)4
3. Temp = Temp
Figure 112009043895978-pat00112
x'
4. A = x'
Figure 112009043895978-pat00113
(m5)4
5. A = A-(m5)4
6. A = A
Figure 112009043895978-pat00114
Temp
그리고, AtoB(x)는 산술 마스킹 값을 불 마스킹 값으로 변환하는 함수로, 다음의 수학식 10과 같이 A=x+(ma)8을 만족하는 A에 대해서 B=x
Figure 112009043895978-pat00115
(m1)4을 만족하는 B를 출력하는 함수이다.
Figure 112009043895978-pat00116
입력 : A = x+(ma)8 = a7a6a5a4a3a2a1a0, 출력 : B = x(m1)4 = b7b6b5b4b3b2b1b0
1. b0FT = (a0)
2. a = 0
3. For k from 1 to 7
3.1. a7…ak = a7…ak - CT(ak -1)+λ
3.2. bk = FT(ak)
4. B = B
Figure 112009043895978-pat00117
(m1)4
Figure 112009043895978-pat00118
(mb)8
5. Return B
상기 수학식 9 및 상기 수학식 10에서, FT 함수는 4비트 난수 ma, mb, λ(4비트 랜덤값)를 이용하여 입력 값 x+ma(mod16)에 대해 x
Figure 112009043895978-pat00119
mb를 출력하는 마스킹 변환 함수이고, CT 함수는 x'=x+ma이 16보다 크거나 같을 경우 캐리 값을 설정하기 위한 캐리 함수이며, FT 함수 및 CT 함수는 다음의 수학식 11과 같이 나타낼 수 있다.
입력 : ma, mb, λ 출력 : FT, CT
1. For x from 0 to 15
1.1. FT(x+ma mod16) = x
Figure 112009043895978-pat00120
mb
1.2. CT(x) = (x<ma) ? (λ+1) : λ
2. Return FT, CT
상기 수학식 11에 의해 생성된 FT 함수와 CT 함수는 ROM에 룩업 테이블로 저장되는 것이 바람직하다.
즉, 본 발명에 따른 마스킹 덧셈 연산(MA)을 요약하여 설명하면 다음과 같다.
먼저 (m3)4로 불 마스킹된 4바이트의 제1 입력값(x')을 산술 마스킹 값으로 변환한 후 ma 값으로 마스킹한다. 그리고, (m3)4로 불 마스킹된 4바이트의 제2 입력값(y')을 산술 마스킹 값으로 변환한다. 다음으로, 상기 ma 값으로 마스킹된 제1 입력값(x')과 상기 산술 마스킹 값으로 변환된 제2 입력값(y')을 더한 후, 그 값을 2m3로 마스킹한다. 마지막으로, 상기 2m3로 마스킹된 값을 불 마스킹 값으로 변환하면 (m1)4로 불 마스킹된 4바이트의 출력값(z')이 출력된다.
이와 같이 비선형 연산인 덧셈 연산의 형태를 변환하여 마스킹함으로써 마스킹 덧셈 연산(MA)을 보다 간단하게 수행할 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 설명하였다. 그러나, 본 발명의 실시예는 당업계에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되어지는 것으로, 본 발명의 범위가 상기의 실시예에 한정되는 것은 아니며, 여러 가지 다른 형태로 변형이 가능함은 물론이다.
도 1은 일반적인 차분 전력 분석 공격의 과정을 설명하기 위한 도면이다.
도 2는 본 발명이 적용되는 SEED 암호 알고리즘을 설명하기 위한 도면이다.
도 3은 암호화 함수의 구조를 나타낸 도면이다.
도 4는 종래의 G 함수의 구조를 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 S-박스 연산에 대한 마스킹 방법을 설명하기 위한 도면이다.
* 도면의 주요부분에 대한 부호의 설명 *
110 : 암호 장치
120 : 추정 모델
F : 암호화 함수
MGF(MGF, Masking G Function) : 마스킹 G 함수
MA(Masking Addition) : 마스킹 덧셈 연산
S1, S2 : S-박스

Claims (14)

  1. (a) 암호장치에서 역원 테이블과 제1, 2 변환 테이블을 생성하여 룩업 테이블로 저장하는 단계;
    (b) 상기 암호장치에서 마스킹에 필요한 마스크값들을 생성하는 단계;
    (c) 상기 암호장치에서 상기 역원 테이블을 마스킹하여 하나의 마스킹 역원 테이블을 생성하는 단계; 및
    (d) 상기 암호장치에서 마스킹된 원 정보가 입력되면 상기 하나의 마스킹 역원 테이블과 상기 제1, 2 변환 테이블을 이용하여 마스킹된 S-박스를 출력하는 단계를 포함하는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  2. 제 1항에 있어서, 상기 (a) 단계에서,
    역원 행렬을 이용하여 상기 역원 테이블을 생성한 후 룩업 테이블로 저장하는 제1 단계; 및
    이진 행렬을 이용하여 상기 역원 테이블의 사용에 따른 추가적인 변환을 위한 제1, 2 변환 테이블을 생성한 후 룩업 테이블로 저장하는 제2 단계를 더 포함하는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  3. 제 2항에 있어서, 상기 제2 단계에서,
    상기 이진 행렬(C1, C2)은,
    Figure 112009043895978-pat00121
    ,
    Figure 112009043895978-pat00122
    인 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  4. 제 3항에 있어서, 상기 (b) 단계에서,
    m1=rand(), m2=C2[m4]
    Figure 112009043895978-pat00123
    0x38, m3=m1
    Figure 112009043895978-pat00124
    m2,
    m4=rand(), m5=C1[m4]
    Figure 112009043895978-pat00125
    0xa9, m6=m3
    Figure 112009043895978-pat00126
    m5,
    ma=rand(), mb=rand()
    에 의해 6개의 1바이트 마스크값(m1, m2, m3, m4, m5, m6)과 2개의 4비트 마스크값(ma, mb)을 생성하는 단계를 더 포함하는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  5. 제 1항에 있어서,
    상기 마스킹 역원 테이블은 마스킹된 원 정보에 대응하여 마스킹된 역원 정보를 출력하는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  6. 제 1항에 있어서, 상기 (d) 단계에서,
    상기 하나의 마스킹 역원 테이블과 상기 제1, 2 변환 테이블을 이용하여 마스킹 S-박스를 구성하고, 상기 마스킹 S-박스를 이용하여 마스킹된 S-박스를 출력하는 단계를 더 포함하는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  7. 제 6항에 있어서, 상기 (d) 단계에서,
    마스킹된 원 정보가 입력되면, 상기 마스킹 역원 테이블을 이용하여 상기 마스킹된 원 정보에 대응하는 마스킹된 역원 정보를 출력하는 제1 단계;
    상기 제1, 2 변환 테이블을 이용하여 상기 마스킹된 역원 정보에 대응하는 마스킹된 S-박스를 출력하는 제2 단계; 및
    상기 마스킹된 S-박스를 마스킹하여 특정 마스크값으로 마스킹된 S-박스를 출력하는 제3 단계를 더 포함하는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  8. 제 7항에 있어서, 상기 제1 단계에서,
    상기 마스킹 역원 테이블을 이용하여 상기 마스킹된 원 정보(x
    Figure 112009043895978-pat00127
    m1)에 대응하는 마스킹된 역원 정보(x-1
    Figure 112009043895978-pat00128
    m4)를 출력하는 단계를 더 포함하는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  9. 제 8항에 있어서, 상기 제2 단계에서,
    상기 제1 변환 테이블을 이용하여 상기 마스킹된 역원 정보(x-1
    Figure 112009043895978-pat00129
    m4)에 대응하는 마스킹된 제1 S-박스(S1(x)
    Figure 112009043895978-pat00130
    m5)를 출력하는 단계와,
    상기 제2 변환 테이블을 이용하여 상기 마스킹된 역원 정보(x-1
    Figure 112009043895978-pat00131
    m4)에 대응하는 마스킹된 제2 S-박스(S2(x)
    Figure 112009043895978-pat00132
    m2)를 출력하는 단계를 더 포함하는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  10. 제 9항에 있어서, 상기 제3 단계에서,
    상기 마스킹된 제1 S-박스(S1(x)
    Figure 112009043895978-pat00133
    m5)를 마스킹하여 특정 마스크값(m3)으로 마스킹된 제1 S-박스 S1(x)
    Figure 112009043895978-pat00134
    m3를 출력하는 단계와,
    상기 마스킹된 제2 S-박스(S2(x)
    Figure 112009043895978-pat00135
    m2)를 마스킹하여 특정 마스크값(m3)으로 마스킹된 제2 S-박스 S2(x)
    Figure 112009043895978-pat00136
    m3를 출력하는 단계를 더 포함하는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  11. 제 6항에 있어서, 상기 (d) 단계에서,
    상기 마스킹 S-박스 MaskedS1(x
    Figure 112009043895978-pat00137
    m1), MaskedS2(x
    Figure 112009043895978-pat00138
    m1)는,
    MaskedS1(x
    Figure 112009043895978-pat00139
    m1) = T1(MInv(x
    Figure 112009043895978-pat00140
    m1))
    Figure 112009043895978-pat00141
    m6 = C1·(x-1
    Figure 112009043895978-pat00142
    m4)
    Figure 112009043895978-pat00143
    m5
    Figure 112009043895978-pat00144
    m3
    = C1·x-1
    Figure 112009043895978-pat00145
    C1·m4
    Figure 112009043895978-pat00146
    C1·m4
    Figure 112009043895978-pat00147
    a
    Figure 112009043895978-pat00148
    m3 = C1·x-1
    Figure 112009043895978-pat00149
    a
    Figure 112009043895978-pat00150
    m3
    = S1(x)
    Figure 112009043895978-pat00151
    m3
    MaskedS2(x
    Figure 112009043895978-pat00152
    m1) = T2(MInv(x
    Figure 112009043895978-pat00153
    m1))
    Figure 112009043895978-pat00154
    m1 = C2·(x-1
    Figure 112009043895978-pat00155
    m4)
    Figure 112009043895978-pat00156
    m2
    Figure 112009043895978-pat00157
    m2
    Figure 112009043895978-pat00158
    m1
    = C2·x-1
    Figure 112009043895978-pat00159
    C2·m4
    Figure 112009043895978-pat00160
    C2·m4
    Figure 112009043895978-pat00161
    b
    Figure 112009043895978-pat00162
    m3 = C2·x-1
    Figure 112009043895978-pat00163
    b
    Figure 112009043895978-pat00164
    m3
    = S2(x)
    Figure 112009043895978-pat00165
    m3
    (여기에서, x는 원 정보, x-1은 역원 정보, m1, m2, m3, m4, m5, m6은 서로 다른 마스크값, T1, T2는 이진 행렬 C1, C2에 의해 각각 생성된 제1, 2 변환 테이블, a는 [1,0,1,0,1,0,0,1]의 1×8 행렬, b는 [0,0,1,1,1,0,0,0]의 1×8열 행렬을 나타냄)
    에 의해 마스킹된 S-박스 S1(x)
    Figure 112009043895978-pat00166
    m3와 마스킹된 S-박스 S2(x)
    Figure 112009043895978-pat00167
    m3를 출력하는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  12. 제 1항에 있어서, 상기 (d) 단계 이후에,
    상기 마스킹된 S-박스를 포함하는 마스킹 G 함수에 대한 마스킹 값을 동일하게 유지하기 위한 마스킹 덧셈 연산 단계를 더 포함하는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  13. 제 12항에 있어서, 상기 마스킹 덧셈 연산 단계는,
    32비트의 불 마스킹된 제1 입력값을 산술 마스킹 값으로 변환한 후 마스킹하는 제1 단계;
    32비트의 불 마스킹된 제2 입력값을 산술 마스킹 값으로 변환하는 제2 단계;
    상기 제1 단계를 통해 얻어진 산술 마스킹 값과 상기 제2 단계를 통해 얻어진 산술 마스킹 값을 더한 후 마스킹하는 제3 단계; 및
    상기 제3 단계를 통해 얻어진 산술 마스킹 값을 불 마스킹 값으로 변환하는 제4 단계를 더 포함하는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
  14. 제 13항에 있어서, 상기 마스킹 덧셈 연산에서,
    마스킹 변환 함수와 캐리 함수가 사용되는 것을 특징으로 하는 SEED 암호화에서 전력 분석 공격을 방어하기 위한 마스킹 방법.
KR1020090065769A 2009-07-20 2009-07-20 Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법 KR101026439B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090065769A KR101026439B1 (ko) 2009-07-20 2009-07-20 Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법
US12/685,076 US8391476B2 (en) 2009-07-20 2010-01-11 Masking method of defending differential power analysis attack in seed encryption algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090065769A KR101026439B1 (ko) 2009-07-20 2009-07-20 Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법

Publications (2)

Publication Number Publication Date
KR20110008418A KR20110008418A (ko) 2011-01-27
KR101026439B1 true KR101026439B1 (ko) 2011-04-07

Family

ID=43465313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090065769A KR101026439B1 (ko) 2009-07-20 2009-07-20 Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법

Country Status (2)

Country Link
US (1) US8391476B2 (ko)
KR (1) KR101026439B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101833141B1 (ko) * 2016-10-14 2018-02-28 경일대학교산학협력단 경량 암호 알고리즘 기반의 저작권 보호를 위한 콘텐츠 송수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2634953A1 (en) * 2012-03-02 2013-09-04 Gemalto SA Countermeasure method against side channel analysis for cryptographic algorithms using boolean operations and arithmetic operations
KR101362675B1 (ko) 2012-11-30 2014-02-12 한국전자통신연구원 저전력 암호화 장치 및 방법
CN104956352B (zh) * 2013-01-31 2018-04-27 英派尔科技开发有限公司 屏蔽现场可编程门阵列上的协处理器的功率使用
TWI517655B (zh) * 2013-05-23 2016-01-11 晨星半導體股份有限公司 密碼裝置以及密鑰保護方法
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 한국전자통신연구원 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법
TWI712915B (zh) * 2014-06-12 2020-12-11 美商密碼研究公司 執行一密碼編譯操作之方法,以及電腦可讀非暫時性儲存媒體
KR101781392B1 (ko) * 2015-09-11 2017-09-25 (주)라닉스 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법
EP3424175B1 (en) * 2016-03-03 2024-02-21 Cryptography Research, Inc. Converting a boolean masked value to an arithmetically masked value for cryptographic operations
EP3300291A1 (en) * 2016-09-27 2018-03-28 Gemalto SA Method to counter dca attacks of order 2 and higher
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
WO2020092257A1 (en) * 2018-10-29 2020-05-07 Cryptography Research, Inc. Constant time secure arithmetic-to-boolean mask conversion
US11700111B2 (en) * 2019-06-26 2023-07-11 Cryptography Research, Inc. Platform neutral data encryption standard (DES) cryptographic operation
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
CN111010266B (zh) * 2019-12-09 2023-04-07 广州市百果园信息技术有限公司 消息的加解密、读写方法、装置、计算机设备和存储介质
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof
JP7314108B2 (ja) * 2020-08-27 2023-07-25 株式会社東芝 暗号処理装置、暗号処理方法およびプログラム
CN117579249B (zh) * 2024-01-17 2024-03-29 北京电子科技学院 能量分析攻击中明文选择方法、装置、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030051111A (ko) * 2001-12-18 2003-06-25 신경욱 AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로
KR100668664B1 (ko) 2005-11-22 2007-01-12 한국전자통신연구원 Aes 라인달 블록 알고리즘을 이용하는 암호화/복호화장치 및 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
EP1486026A1 (en) * 2002-03-07 2004-12-15 Axalto SA Method for making safe an electronic cryptography assembly with a secret key
KR100594265B1 (ko) 2004-03-16 2006-06-30 삼성전자주식회사 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.
US7496616B2 (en) * 2004-11-12 2009-02-24 International Business Machines Corporation Method, apparatus and system for resistance to side channel attacks on random number generators
KR100855958B1 (ko) * 2004-11-24 2008-09-02 삼성전자주식회사 해밍거리를 이용한 부가 채널 공격에 안전한 암호화시스템 및 방법
KR100737171B1 (ko) 2006-05-04 2007-07-10 경북대학교 산학협력단 아리아에 대한 전력분석공격에 대응하는 저메모리형 마스킹방법
US7970129B2 (en) * 2007-04-19 2011-06-28 Spansion Llc Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
JP4837058B2 (ja) * 2009-03-10 2011-12-14 株式会社東芝 演算装置及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030051111A (ko) * 2001-12-18 2003-06-25 신경욱 AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로
KR100668664B1 (ko) 2005-11-22 2007-01-12 한국전자통신연구원 Aes 라인달 블록 알고리즘을 이용하는 암호화/복호화장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101833141B1 (ko) * 2016-10-14 2018-02-28 경일대학교산학협력단 경량 암호 알고리즘 기반의 저작권 보호를 위한 콘텐츠 송수신 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체

Also Published As

Publication number Publication date
US20110013767A1 (en) 2011-01-20
KR20110008418A (ko) 2011-01-27
US8391476B2 (en) 2013-03-05

Similar Documents

Publication Publication Date Title
KR101026439B1 (ko) Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
Karroumi Protecting white-box AES with dual ciphers
JP4596686B2 (ja) Dpaに対して安全な暗号化
JP3600454B2 (ja) 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
CN106788974A (zh) 掩码s盒、分组密钥计算单元、装置及对应的构造方法
US8971526B2 (en) Method of counter-measuring against side-channel attacks
US8199909B2 (en) Method and device for carrying out a cryptographic calculation
Coron et al. A new algorithm for switching from arithmetic to boolean masking
US20070140478A1 (en) Encryption apparatus and encryption method
US9577821B2 (en) Function masking apparatus in symmetric cryptographic algorithm for preventing side channel attacks and method thereof
KR100737171B1 (ko) 아리아에 대한 전력분석공격에 대응하는 저메모리형 마스킹방법
CN106656467A (zh) 加密装置及方法
KR100834096B1 (ko) 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
KR101601684B1 (ko) 부채널 공격에 대응하는 대칭키 암호 알고리즘 구현 방법
Ara et al. Dynamic key dependent S-Box for symmetric encryption for IoT devices
Arshad et al. New extension of data encryption standard over 128-bit key for digital images
KR101362675B1 (ko) 저전력 암호화 장치 및 방법
KR100991713B1 (ko) 마스킹을 이용한 aes 역원 연산 장치 및 방법과 이를 이용한 aes 암호 시스템
Tang et al. Impossible differential cryptanalysis of 13-round CLEFIA-128
Lin et al. A new Feistel-type white-box encryption scheme
Mihalkovich et al. MPF based symmetric cipher performance comparison to AES and TDES
JP2019504343A (ja) 計算デバイス及び方法
Kareem et al. An innovative method for enhancing advanced encryption standard algorithm based on magic square of order 6

Legal Events

Date Code Title Description
A201 Request for examination
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: 20140103

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141224

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151224

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 10