KR101506499B1 - Method for encrypting with SEED applying mask - Google Patents

Method for encrypting with SEED applying mask Download PDF

Info

Publication number
KR101506499B1
KR101506499B1 KR1020080137471A KR20080137471A KR101506499B1 KR 101506499 B1 KR101506499 B1 KR 101506499B1 KR 1020080137471 A KR1020080137471 A KR 1020080137471A KR 20080137471 A KR20080137471 A KR 20080137471A KR 101506499 B1 KR101506499 B1 KR 101506499B1
Authority
KR
South Korea
Prior art keywords
masking
round
input
value
function
Prior art date
Application number
KR1020080137471A
Other languages
Korean (ko)
Other versions
KR20100079060A (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 KR1020080137471A priority Critical patent/KR101506499B1/en
Publication of KR20100079060A publication Critical patent/KR20100079060A/en
Application granted granted Critical
Publication of KR101506499B1 publication Critical patent/KR101506499B1/en

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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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
    • 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

Landscapes

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

Abstract

마스킹이 적용된 SEED를 이용한 암호화 방법이 개시된다. 본 발명의 일 실시 예에 따른 마스킹이 적용된 SEED를 이용한 암호화 방법은 매 라운드마다 해당 라운드의 라운드 키로 암호화된 오른쪽 입력을 해당 라운드의 왼쪽 입력과 배타적 논리합 (XOR) 연산하는, 페이스텔 구조의 SEED 알고리즘을 이용하는 암호화 방법에 있어서, 입력 평문을 제1 난수로 마스킹하는 단계; 및 상기 마스킹된 입력 평문을 최초 입력으로 하여, 매 라운드마다 해당 라운드의 라운드키를 제2 난수로 마스킹한 후, 각 라운드의 입력값 중 오른쪽 입력을 상기 마스킹된 라운드 키로 암호화하는 단계를 포함한다. 본 발명의 실시 예들에 의하면, 기존의 암호화 기법인 SEED 알고리즘에 마스킹을 도입하여 암호시스템의 안전성을 향상시킬 수 있고, 연산에 필요한 추가 비용의 증가를 최소한으로 억제할 수 있다.An encryption method using SEED to which masking is applied is disclosed. The SEED encryption method using masking according to an embodiment of the present invention is a SEED algorithm of a pastel structure that performs rightward XOR operation of the right input encrypted with the round key of each round every round with the left input of the corresponding round, The method comprising: masking an input plaintext with a first random number; And masking the right input of each round with the masked round key after masking the round key of the round with a second random number every round by using the masked input plain text as an initial input. According to embodiments of the present invention, the security of the encryption system can be improved by introducing masking into the SEED algorithm, which is an existing encryption technique, and the increase in the additional cost required for the operation can be minimized.

SEED, Round Key, Side Channel Attack, masking method SEED, Round Key, Side Channel Attack, masking method

Description

마스킹이 적용된 SEED를 이용한 암호화 방법 {Method for encrypting with SEED applying mask}Method for Encrypting with SEED applying mask using masking [

본 발명은 암호하 기법에 관한 것으로, 특히, 암호시스템의 안전성을 보장하기 위해 기존의 암호화 기법인 SEED 알고리즘에 마스킹을 도입하는 마스킹이 적용된 SEED를 이용한 암호화 방법에 관한 것이다. The present invention relates to a cryptographic technique, and more particularly, to an encryption method using SEED to which masking for introducing masking is applied to an existing cryptographic technique, SEED algorithm, in order to secure the security of the cryptographic system.

스마트카드는 소형 컴퓨터의 능력을 가진 신용카드 크기의 보안장치이므로 휴대가 간편하다. 사이버세계에서 스마트카드는 가치이전의 수단뿐만 아니라 전화카드, 이동통신 보안수단, 신분증, 교통카드, 금융 IC 카드 등 그 활용분야가 아주 다양하기 때문에 정보통신망 환경에서 스마트카드가 중요한 보안장치로 수요나 활용 면에서 급격한 증가율을 보이고 있다. 생활의 많은 부분이 인터넷 환경으로 전이되는 시점에서 스마트카드는 중요한 역할을 수행할 수 있는 도구이다. 이러한 보안장치에 대한 안전성 평가는 증명 가능한 안전성이나 계산적 안전성과 같은 이론에 기반을 두고 있다. 그러나 1996년 폴 코처 (Paul Kocher)가 부채널 공격 (Side Channel Attack)에 대한 개념을 소개함으로써 이론적으로 안전한 암호시스템에 대해서도 물리적 공격인 부채널 공격에 의해 비밀정보가 누출될 수 있음을 보였다. 물리적 공격은 알고리즘의 수행 시간, 전력 소모량 등의 부가적인 정보를 이용한다. 알고리즘의 수행 시간을 이용한 타이밍 공격은 IC칩의 암호알고리즘이 비밀키와 관련된 정보를 처리하는데 걸리는 시간과 그렇지 않은 데이터를 처리하는데 걸리는 시간 사이의 차를 분석해 비밀키를 알아내는 방법이다. 전력분석 공격도 비밀키와 관련된 데이터를 처리할 때 IC 칩이 사용하는 전력량과 그렇지 않을 경우의 전력량을 비교분석하는 것으로 단순 전력 공격 (Simple Power Attack; SPA), 차분 전력 공격 (Diffrencial Power Attack; DPA) 등으로 나뉜다. 전력분석 공격은 폴 코처가 개발한 것으로 가장 위협적인 공격방법 중 하나로 알려져 있고 그중에서도 DPA는 강력한 분석방법으로 여러 가지 형태로 발전하고 있고 적용분야가 많다. The smart card is a credit card-sized security device with the capability of a small computer, so it is easy to carry. In the cyber world, smart cards are used not only as a means of transferring value but also because they have various applications such as telephone cards, mobile communication security measures, ID cards, transportation cards, and financial IC cards. It shows a rapid increase in utilization. At a time when much of life is shifting to the Internet environment, smart cards are a tool that can play an important role. The safety assessment of these security devices is based on theories such as provable safety and computational safety. However, in 1996, Paul Kocher introduced the concept of Side Channel Attack, which showed that secret information could be leaked by subchannel attack, which is a physical attack, on the theoretically secure cryptosystem. Physical attacks use additional information such as algorithm execution time and power consumption. Timing attack using algorithm execution time is a method of finding the secret key by analyzing the difference between the time it takes the IC chip's encryption algorithm to process the information related to the secret key and the time it takes to process the non-secret data. The power analysis attack also compares and analyzes the amount of power that the IC chip uses when processing data related to the secret key, which includes Simple Power Attack (SPA), Diffrencial Power Attack (DPA ), And so on. Power analysis attacks are known to be one of the most threatening attacks developed by Pol Coacher, among which DPA is developing in many forms as a powerful analysis method and has many applications.

이러한 부채널 공격이 소개되면서 많은 암호시스템 설계자들은 효율적인 대응법들을 연구하기 시작했고, 차분 전력 분석(Differential Power Analysis, DPA)에 대한 대응법으로는 마스킹 대응법(masking method)이 활발히 연구되고 있다. 마스킹 기법은 알고리즘의 변형을 통해 일차 차분 전력 분석을 방어하는 방법으로 잡음 삽입, 임의의 지연, 랜덤 클록과 같은 하드웨어적인 대응법에 비해 그 비용이 저렴하다. 따라서 단가가 저렴한 스마트카드와 같은 장비에서는 마스킹 기법이 일반적으로 가장 선호된다.With the introduction of this subchannel attack, many cryptographic system designers have begun to study efficient countermeasures, and a masking method is being actively researched as a countermeasure against differential power analysis (DPA). The masking technique is a method to defend the first-order differential power analysis through modification of the algorithm, and it is cheaper than the hardware countermeasures such as noise insertion, arbitrary delay, and random clock. Thus, masking techniques are generally preferred in equipment such as smart cards with low cost.

마스킹 기법이란 암호화/복호화 도중 중간 값의 정보를 숨기는 방법으로 암호화 장비가 랜덤한 전력 소비를 하도록 구성해 일차 차분 전력 분석에 안전하도록 대응하는 방법이다. 구체적으로 평문 x에 대하여 암호문 y를 얻기 위해 마스킹 난 수 m을 이용하여

Figure 112008090748819-pat00001
의 암호문
Figure 112008090748819-pat00002
을 구한 후, 최종적으로 y를 얻기 위해
Figure 112008090748819-pat00003
의 연산을 수행한다. 물론, 경우에 따라 마스킹 기법은 다르게 구성될 수도 있다. 따라서 암호화 과정에서 중간 값을 알 수 없기 때문에 일반적인 전력 분석 공격은 성공할 수 없다.The masking technique is a method of hiding the intermediate value information during encryption / decryption, so that the encryption device is configured to have a random power consumption so as to be safe in primary differential power analysis. Specifically, in order to obtain the cipher text y for the plain text x,
Figure 112008090748819-pat00001
Ciphertext
Figure 112008090748819-pat00002
And finally, to obtain y
Figure 112008090748819-pat00003
. Of course, the masking scheme may be configured differently in some cases. Therefore, since a median value is not known during the encryption process, a general power analysis attack can not succeed.

이러한 마스킹 기법을 사용한 경우,

Figure 112008090748819-pat00004
의 암호문
Figure 112008090748819-pat00005
에서 m'을 알아야 실제 원하는 암호문 y를 얻을 수 있다. 하지만 블록암호 알고리즘은 비선형 연산을 수행하므로 수정되지 않은 블록 암호 시스템에서 m'값은 x에 따라 다르며 이 값을 중간 값의 누출 없이 아는 것도 상당한 연산을 필요로 한다. 따라서 마스킹 대응법은 이 비선형 연산에 대한 고려가 불가피하다. When such a masking technique is used,
Figure 112008090748819-pat00004
Ciphertext
Figure 112008090748819-pat00005
We need to know m 'in order to get the actual desired ciphertext y. However, since the block cipher algorithm performs nonlinear computation, the m 'value differs from x in the unmodified block cipher system. Knowing this value without leakage of the intermediate value also requires considerable computation. Therefore, it is inevitable to consider this nonlinear operation.

이하에서,

Figure 112008090748819-pat00006
는 'a'와 'b'의 배타적 논리합 (Exclusive-Or) 비트 연산이고,
Figure 112008090748819-pat00007
Figure 112008090748819-pat00008
이다.
Figure 112008090748819-pat00009
는 'a'와 'b'의 논리곱 (AND) 비트 연산이다. 또한,
Figure 112008090748819-pat00010
는 X를 s비트 만큼 왼쪽으로 순환 이동하는 연산이고,
Figure 112008090748819-pat00011
는 X를 s비트 만큼 오른쪽으로 순환 이동하는 연산이다. Li는 i라운드에서 출력된 왼쪽 메시지 블록(상위 64 비트)이고, Ri는 i라운드에서 출력된 오른쪽 메시지 블록(하위 64 비트)이다. 특히, L0는 입력비트의 상위 64비트를 나타내고, R0는 입력비트의 하위 64비트를 나타낸다.Hereinafter,
Figure 112008090748819-pat00006
Is an Exclusive-Or bit operation between 'a' and 'b'
Figure 112008090748819-pat00007
The
Figure 112008090748819-pat00008
to be.
Figure 112008090748819-pat00009
Is an AND bit operation between 'a' and 'b'. Also,
Figure 112008090748819-pat00010
Is an operation of cyclically moving X to the left by s bits,
Figure 112008090748819-pat00011
Is an operation of cyclically shifting X by s bits to the right. L i is the left message block (upper 64 bits) output in the i round, and R i is the right message block (lower 64 bits) output in the i round. In particular, L 0 represents the upper 64 bits of the input bit, and R 0 represents the lower 64 bits of the input bit.

한편, Ki=(Ki,0, Ki,1)는 i라운드의 라운드 키(64 비트)이다. 여기서, Ki,0는 i 라운드 F함수의 오른쪽 입력키(32 비트)이고, Ki,1은 i라운드 F함수의 왼쪽 입력키(32 비트)이다. KCi는 라운드 키 생성과정에서 사용되는 i+1라운드 상수이다.On the other hand, K i = (K i, 0 , K i, 1 ) is the i round round key (64 bits). Where K i, 0 is the right input key (32 bits) of the i round F function , and K i, 1 is the left input key (32 bits) of the i round F function. KC i is the i + 1 round constant used in the round key generation process.

도 1은 종래의 SEED 알고리즘의 흐름을 나타낸 것이다.Figure 1 shows the flow of a conventional SEED algorithm.

SEED는 1999년 한국정보보호진흥원에 의해 개발된 블록암호로써 128 비트의 비밀키를 사용하는 페이스텔 (Feistel) 구조로 이루어져 있다. 페이스텔 구조란 각각 n/2비트인 L0, R0 으로 이루어진 n비트 평문 블록

Figure 112008090748819-pat00012
가 r라운드
Figure 112008090748819-pat00013
를 거쳐 암호문
Figure 112008090748819-pat00014
으로 변환되는 반복 구조이다. SEED is a block cipher developed by the Korea Information Security Agency in 1999 and consists of a Feistel structure using a 128-bit secret key. Tel face structure is n-bit plaintext block composed of L 0, R 0 of each of n / 2 bits
Figure 112008090748819-pat00012
R round
Figure 112008090748819-pat00013
Cipher text
Figure 112008090748819-pat00014
. ≪ / RTI >

SEED 알고리즘의 전체적인 구조는 페이스텔 구조로 이루어져 있으며, 128비트의 평문 블록과 128비트 키를 입력으로 사용하여 총 16라운드를 거쳐 128비트 암호문을 출력한다. The overall structure of the SEED algorithm is composed of a pastel structure, which uses a 128-bit plaintext block and a 128-bit key as inputs to output 128-bit ciphertext over a total of 16 rounds.

SEED 알고리즘은 크게 페이스텔 구조로 되어 있는 F함수와 라운드 키 생성함수로 나누어진다. F함수에는 SEED에서 유일하게 비선형성을 가지고 있는 S박스를 포함하는 G함수가 포함된다. 키 생성함수는 128비트의 키를 받아서 64비트의 16라운드의 키를 생성한다. The SEED algorithm is divided into an F-function and a round-key generation function, which are largely in a face-tier structure. The F function includes a G function that contains an S box that has only nonlinearity in SEED. The key generation function receives a 128-bit key and generates a 16-round key of 64 bits.

도 2는 F함수의 구조를 도시한 것이다. Fig. 2 shows the structure of the F function.

페이스텔 구조를 갖는 블록 암호 알고리즘은 F함수의 특성에 따라 구분될 수 있다. SEED의 F함수는 수정된 64비트 페이스텔 형태로 구성된다. 도 2에서, 'F'로 표시된 부분이 F함수를 나타내고, '+'로 표시된 부분은 캐리가 없는 덧셈 연산을 의미한다. F함수는 각 32비트 블록 2개

Figure 112008090748819-pat00015
를 입력으로 받아 32비트 블록 2개
Figure 112008090748819-pat00016
를 출력한다. 여기서, F함수의 입력 중 상위 32비트를 C로 나타내고, 하위 32비트를 D로 나타낸다. 암호화 과정에서 64비트 블록
Figure 112008090748819-pat00017
와 64비트 라운드 키
Figure 112008090748819-pat00018
를 F함수의 입력으로 처리하여 64비트 블록
Figure 112008090748819-pat00019
을 출력한다. The block cipher algorithm with the pastel structure can be classified according to the characteristics of the F function. The F function of SEED consists of a modified 64 bit faceplate format. In FIG. 2, a portion denoted by 'F' denotes an F function, and a portion denoted by '+' denotes an add operation without a carry. The F function consists of two 32-bit blocks
Figure 112008090748819-pat00015
2 blocks of 32 bits
Figure 112008090748819-pat00016
. Here, the upper 32 bits of the input of the F function are denoted by C, and the lower 32 bits are denoted by D. In the encryption process,
Figure 112008090748819-pat00017
And 64-bit round keys
Figure 112008090748819-pat00018
As an input of the F function,
Figure 112008090748819-pat00019
.

다음은 G함수에 대해 설명한다. 상술한 바와 같이, SEED의 F함수는 페이스텔 구조를 이루고 있으며 F함수 내에는 S박스를 포함하고 있는 G함수가 위치하고 있다.The following describes G functions. As described above, the F function of the SEED forms a pastel structure, and the G function including the S box is located in the F function.

G함수는 다음의 수학식 1과 같은 연산을 통해 이루어진다.The G function is calculated by the following equation (1).

Figure 112008090748819-pat00020
Figure 112008090748819-pat00020

Figure 112008090748819-pat00021
Figure 112008090748819-pat00021

Figure 112008090748819-pat00022
Figure 112008090748819-pat00022

여기서, X는 G함수의 입력 값(32 비트)으로서

Figure 112008090748819-pat00023
이고, Y는 G함수에서 S박스 (S-box)
Figure 112008090748819-pat00024
의 출력 값(32 비트)으로서
Figure 112008090748819-pat00025
이며, Z는 G함수의 출력 값(32 비트)으로서
Figure 112008090748819-pat00026
이다. mi는 상수이다. 또한, '||' 는 둘 이상의 비트들을 연속하여 배치하는 연쇄(concatenation)를 나타낸다.Here, X is an input value (32 bits) of the G function
Figure 112008090748819-pat00023
Y is the S-box in the G function,
Figure 112008090748819-pat00024
As the output value (32 bits)
Figure 112008090748819-pat00025
, And Z is the output value (32 bits) of the G function
Figure 112008090748819-pat00026
to be. m i is a constant. Also, '||' Represents a concatenation in which two or more bits are arranged in succession.

다음은 S박스에 대해 설명한다. G함수의 내부에 사용되는 비선형 S박스

Figure 112008090748819-pat00027
는 수학식 2를 이용하여 생성된다.The following describes the S box. Nonlinear S-boxes used inside G functions
Figure 112008090748819-pat00027
Is generated using Equation (2).

Figure 112008090748819-pat00028
Figure 112008090748819-pat00029
Figure 112008090748819-pat00028
Figure 112008090748819-pat00029

여기서, 행렬 A(i)는 수학식 3과 같이 표현될 수 있다.Here, the matrix A (i) can be expressed by Equation (3).

Figure 112008090748819-pat00030
Figure 112008090748819-pat00031
,
Figure 112008090748819-pat00030
Figure 112008090748819-pat00031
,

한편, SEED의 라운드 키 생성과정은 128비트 암호화 키를 64비트씩 좌우로 나누어 이들을 교대로 8비트씩 좌/우로 회전이동한 후, 회전 이동된 결과의 4워드들에 대한 간단한 산술연산 및 G함수를 적용하는 과정이다. 라운드 키 생성과정은 암호화나 복호화 시 암호키로부터 필요한 라운드 키를 간단히 계산할 수 있도록 설계된다. 이는 기본적으로 모든 라운드 키를 저장할 수 없는 등으로 제한된 자원을 갖는 스마트카드 등의 응용에서 효율성을 향상시키기 위한 것이다.The SEED round key generation process divides the 128-bit encryption key by 64 bits in left and right directions, shifts them by 8 bits in a left / right direction alternately, and then performs a simple arithmetic operation and a G function . The round key generation process is designed to easily calculate the required round key from the encryption key in encryption or decryption. This is basically to improve efficiency in applications such as smart cards having limited resources such as not being able to store all round keys.

각 라운드 i에 사용되는 라운드 키

Figure 112008090748819-pat00032
는 표 1과 같이 생성한다.Round key used for each round i
Figure 112008090748819-pat00032
Are generated as shown in Table 1.

Figure 112008090748819-pat00033
Figure 112008090748819-pat00033

위 알고리즘에서 사용되는 라운드 상수는 표 2와 같다.Table 2 shows the rounding constants used in the above algorithm.

라운드 상수Round constant

Figure 112008090748819-pat00034
Figure 112008090748819-pat00034
Figure 112008090748819-pat00035
Figure 112008090748819-pat00035
Figure 112008090748819-pat00036
Figure 112008090748819-pat00036
Figure 112008090748819-pat00037
Figure 112008090748819-pat00037
Figure 112008090748819-pat00038
Figure 112008090748819-pat00038
Figure 112008090748819-pat00039
Figure 112008090748819-pat00039
Figure 112008090748819-pat00040
Figure 112008090748819-pat00040
Figure 112008090748819-pat00041
Figure 112008090748819-pat00041
Figure 112008090748819-pat00042
Figure 112008090748819-pat00042
Figure 112008090748819-pat00043
Figure 112008090748819-pat00043
Figure 112008090748819-pat00044
Figure 112008090748819-pat00044
Figure 112008090748819-pat00045
Figure 112008090748819-pat00045
Figure 112008090748819-pat00046
Figure 112008090748819-pat00046
Figure 112008090748819-pat00047
Figure 112008090748819-pat00047
Figure 112008090748819-pat00048
Figure 112008090748819-pat00048
Figure 112008090748819-pat00049
Figure 112008090748819-pat00049

DPA는 암호 알고리즘에서 사용되는 키와 전력 소비파형에서의 연관관계에 기반한 공격이다. 즉, 암호 알고리즘 내부에서 연산되는 데이터가 전력 소비파형에 영향을 미친다는 특성을 이용한 것이다. DPA 공격 방법에 대응하기 위한 방법은 소프트웨어적인 방법과 하드웨어적인 방법으로 나뉜다. 소프트웨어적인 방법의 장점은 다양한 구현 환경에서 유연하게 적용 가능하다는 것이다. 하드웨어적인 방법은 특정 하드웨어에 구현되어 알고리즘이 변경되면 하드웨어 자체도 바꾸어야 한다는 점과 추가적인 실리콘이 필요하다는 단점이 있으나 소프트웨어적인 방법보다 효율성이 높다. DPA is an attack based on the association between key and power consumption waveforms used in cryptographic algorithms. That is, the data used in the encryption algorithm affects the power consumption waveform. The method to cope with the DPA attack method is divided into a software method and a hardware method. The advantage of the software method is that it can be flexibly applied in various implementation environments. The hardware method is implemented in a specific hardware, and when the algorithm is changed, the hardware itself must be changed, and there is a disadvantage that additional silicon is needed, but it is more efficient than the software method.

소프트웨어적인 방법에는 대표적으로 마스킹 기법과 하이딩 (hiding) 기법이 있다. 마스킹 기법의 목적은 암호 연산 과정에서 계산되는 중간 결과들이 전력소비 파형에 어떤 확률적인 연관 관계를 갖지 못하도록 하기 위하여 입력과 중간 결과들을 랜덤한 값으로 마스킹을 씌운다. 하이딩 기법은 중간 결과값에 랜덤 마스킹을 씌워 중간 결과값을 예측하지 못하게 만드는 마스킹 기법과는 달리, 소비전력의 데이터 종속성을 없애기 위하여 알고리즘의 순서를 랜덤하게 조정하는 방법이다. 즉, 알고리즘의 연산 시퀀스를 랜덤하게 조정하여 중간 결과값들이 시간에 대하여 랜덤하게 분포하도록 한다. Typical software methods include masking and hiding techniques. The purpose of the masking technique is to mask input and intermediate results at random values to ensure that the intermediate results computed during the cryptographic computation process do not have any probabilistic association with the power consumption waveform. Hiding technique is a method to randomly adjust the order of algorithms to eliminate the data dependency of power consumption, unlike the masking technique which makes it impossible to predict the intermediate result value by applying random masking to the intermediate result value. That is, the algorithm's operation sequence is randomly adjusted so that intermediate results are randomly distributed over time.

알고리즘 내에서 계산되는 중간 결과값들을 조정하여 소비전력에 독립적으로 만드는 소프트웨어적인 방법과는 달리, 하드웨어적인 방법에서는 중간 결과값들을 조정하지 않는다. 즉, 하드웨어적인 방법에서는 알고리즘 내에서 계산되는 중간 결과값들은 DPA 대응 방법에 영향을 받지 않는다. 예를 들어, 하드웨어 내부 버스(bus)를 랜덤하게 프리차징 (precharging)하거나 버스를 마스킹하는 등의 방법을 사용한다. 또는 더미 주기 (dummy cycle)를 랜덤하게 삽입하거나 클록 펄스 (clock pulse)를 건너뛰는 방법을 통하여 하드웨어적으로 더 많은 노이즈가 발생하게 한다. 셀 (Cell) 레벨에서 곱셈기나 회로 자체에 마스킹을 적용한 대응 방법도 존재한다. Unlike software methods that adjust the intermediate result values computed within the algorithm to be independent of power consumption, the hardware method does not adjust the intermediate result values. That is, in the hardware method, the intermediate result values calculated in the algorithm are not influenced by the DPA correspondence method. For example, a method of randomly precharging a hardware internal bus, masking a bus, or the like is used. Or randomly inserts a dummy cycle or skips a clock pulse, causing more noise in hardware. There is also a countermeasure in which masking is applied to the multiplier or the circuit itself at the cell level.

종래에는 DPA에 안전하도록 하기 위한 많은 대응 방법들이 존재한다. 이들 각각이 장단점을 가지고 있기 때문에, 암호 알고리즘이 구현되는 환경을 고려하여 적절한 대응 방법을 선택하여 적용할 필요가 있다. Conventionally, there are many countermeasures for securing the DPA. Since each of these has advantages and disadvantages, it is necessary to select and apply an appropriate response method in consideration of the environment in which the encryption algorithm is implemented.

상술한 SEED는 비선형 연산으로 S박스 연산과 덧셈 연산을 모두 사용하며, 한 라운드 당 두 연산을 각각 세 번씩 사용하는 구조로 다른 블록 암호에 비해 마스킹 적용이 용이하지 않다. 예를 들어 AES의 경우 하나의 S박스가 유일한 비선형 연산으로 마스킹 방법의 설계 시 이 S박스에 대한 마스킹 방법의 적용이 이루어진다면 전체 구조에서도 쉽게 설계될 수 있다. 반면 SEED의 경우, 두 개의 S박스 이외에도 32비트 덧셈 연산에 대한 마스킹 방법도 고려하여야 하며, 두 비선형 연산에 대한 마스킹 방법이 조화를 이룰 수 있는 전체 구조에 대한 설계도 동시에 이루어져야 한다. The above-mentioned SEED employs both S box operation and addition operation by nonlinear operation, and uses two operations per round three times, so it is not easy to apply masking compared to other block ciphers. For example, in the case of AES, only one S box is the only nonlinear operation. If the masking method is applied to the S box in the design of the masking method, the whole structure can be easily designed. On the other hand, in the case of SEED, the masking method for 32-bit addition operations should be considered in addition to the two S-boxes, and the entire structure for harmonizing the two nonlinear operations must be designed at the same time.

비록 SEED에 대한 마스킹 기법의 적용이 이와 같이 용이하지 않더라도 실제 상용 스마트카드에 구현되는 블록 암호에 대한 마스킹 방법의 적용이 이루어지지 않는다면, 전력 분석 공격자에게 스마트카드의 비밀 정보를 공개하는 것과 같다. 장기적인 관점에서 보다 안전한 암호 시스템의 하드웨어와 소프트웨어 설계 및 구현을 위해, 그리고 급격히 늘어나는 스마트카드 시장을 고려해 볼 때 이러한 암호시스템의 안전성 보장을 위한 기술의 개발은 시급하게 이루어져야 한다. 따라서 스마트카드에 대한 전력 분석 공격의 위협이 날로 증가하는 시점에서 SEED에 적합한 마스킹 기법의 개발이 필요하다.Even if the application of the masking technique to the SEED is not so easy, it is like disclosing secret information of the smart card to the power analysis attacker unless the masking method for the block cipher implemented in the commercial smart card is applied. From a long-term point of view, the development of technologies for securing the security of such cryptographic systems should be urgently considered, considering the hardware and software design and implementation of safer cryptographic systems and the rapidly growing market of smart cards. Therefore, it is necessary to develop a masking technique suitable for SEED when the threat of power analysis attack to smart card is increasing day by day.

본 발명이 이루고자 하는 기술적 과제는 암호시스템의 안전성을 보장하기 위해 기존의 암호화 기법인 SEED 알고리즘에 마스킹을 도입하는 마스킹이 적용된 SEED를 이용한 암호화 방법을 제공하는 데 있다.An object of the present invention is to provide an encryption method using SEED with masking for introducing masking into an existing encryption algorithm SEED in order to secure the security of the encryption system.

상기의 기술적 과제를 이루기 위하여, 본 발명의 일 실시 예에 따른 마스킹이 적용된 SEED를 이용한 암호화 방법은 매 라운드마다 해당 라운드의 라운드 키로 암호화된 오른쪽 입력을 해당 라운드의 왼쪽 입력과 배타적 논리합 (XOR) 연산하는, 페이스텔 구조의 SEED 알고리즘을 이용하는 암호화 방법에 있어서, 입력 평문을 제1 난수로 마스킹하는 단계; 및 상기 마스킹된 입력 평문을 최초 입력으로 하여, 매 라운드마다 해당 라운드의 라운드키를 제2 난수로 마스킹한 후, 각 라운드의 입력값 중 오른쪽 입력을 상기 마스킹된 라운드 키로 암호화하는 단계를 포함한다.According to another aspect of the present invention, there is provided an encryption method using SEED using masking according to an embodiment of the present invention. In this encryption method, a right input encrypted with a round key of each round is subjected to an exclusive OR (XOR) The method comprising: masking an input plaintext with a first random number; And masking the right input of each round with the masked round key after masking the round key of the round with a second random number every round by using the masked input plain text as an initial input.

바람직하게는, 본 발명의 일 실시 예에 따른 마스킹이 적용된 SEED를 이용한 암호화 방법은 매 라운드마다 상기 암호화된 오른쪽 입력과 상기 왼쪽 입력을 XOR 연산한 후 제3 난수로 마스킹하고 상기 오른쪽 입력을 제4 난수로 마스킹하여, 각 라운드의 마스킹 값을 동일하게 유지하는 단계를 더 포함할 수 있다.Preferably, the encrypting method using SEED to which masking is applied according to an embodiment of the present invention includes a step of XORing the encrypted right input and the left input every round and then masking it with a third random number, Masking with a random number, and keeping the masking value of each round the same.

바람직하게는, 본 발명의 일 실시 예에 따른 마스킹이 적용된 SEED를 이용한 암호화 방법은 마지막 라운드에서 오른쪽 입력과 왼쪽 입력의 마스킹을 제거하는 단계를 더 포함할 수 있다.Preferably, the encrypting method using the SEED with masking according to an embodiment of the present invention may further include removing masking of the right input and the left input in the last round.

바람직하게는, 상기 암호화하는 과정에서, 매 라운드마다 각 라운드의 입력값 중 오른쪽 입력을 상기 마스킹된 라운드 키로 암호화하는 수정된 F함수를 적용할 수 있다. 이 경우, 상기 수정된 F함수를 적용하는 과정에서, 상기 오른쪽 입력의 마스킹을 유지시키는 마스킹 S박스를 포함하는 수정된 G함수와 마스킹을 유지시키는 마스킹 덧셈 연산을 적용할 수 있다. 이 경우, 상기 수정된 F함수를 적용하는 과정은, 상기 오른쪽 입력을 구성하는 제1입력과 제2입력을 마스킹하는 단계; 상기 마스킹된 제1입력과 제2입력을 XOR 연산한 후 마스킹을 유지시키는 마스킹 S박스를 포함하는 수정된 G함수를 적용하여 제1값을 출력하는 단계; 상기 제1값을 상기 마스킹된 제1입력과 마스킹 덧셈하고, 상기 마스킹 덧셈의 결과에 수정된 G함수를 적용하여 제2값을 출력하는 단계; 상기 제2값과 상기 제1값을 마스킹 덧셈하고, 상기 마스킹 덧셈의 결과에 수정된 G함수를 적용하여 제3값을 출력하는 단계; 및 상기 제2값과 상기 제3값을 마스킹 덧셈하는 단계를 포함할 수 있다.Preferably, in the encrypting process, a modified F function for encrypting the right input of each round input value with the masked round key is applied every round. In this case, in the process of applying the modified F function, a modified G function including a masking S box for maintaining masking of the right input and a masking addition operation for maintaining masking can be applied. In this case, the step of applying the modified F function may include: masking a first input and a second input constituting the right input; Outputting a first value by applying a modified G function including a masking S box that XORs the masked first and second inputs and then maintains masking; Masking the first value with the masked first input and applying a modified G function to the result of the masking addition to output a second value; Masking the second value and the first value, and applying a modified G function to the result of the masking addition to output a third value; And masking addition of the second value and the third value.

바람직하게는, 상기 마스킹 덧셈 연산에는 불대수 마스킹을 산술 마스킹으로 변환하는 함수 및 산술 마스킹을 불대수 마스킹으로 변환하는 함수가 적용될 수 있다.Preferably, the masking addition operation may include a function for converting the non-algebraic masking to arithmetic masking and a function for converting the arithmetic masking to the algebraic masking.

상기의 기술적 과제를 이루기 위하여, 본 발명의 다른 실시 예에 따른 마스킹이 적용된 SEED를 이용한 암호화 방법은 매 라운드마다 해당 라운드의 라운드 키로 암호화된 오른쪽 입력을 해당 라운드의 왼쪽 입력과 배타적 논리합 (XOR) 연산하는, 페이스텔 구조의 SEED 알고리즘을 이용하는 암호화 방법에 있어서, 128비트 의 입력 평문을 마스킹하는 단계; 상기 마스킹된 입력 평문을 최초 입력으로 하여, 매 라운드마다 해당 라운드의 라운드키를 마스킹한 후, 각 라운드의 입력값 중 최상위 64비트의 오른쪽 입력을 상기 마스킹된 라운드 키로 암호화하는 단계; 및 마지막 라운드에서 최상위 64 비트의 오른쪽 입력과 최하위 64비트의 왼쪽 입력의 마스킹을 제거하는 단계를 포함한다.According to another aspect of the present invention, there is provided an encryption method using SEED using masking according to another embodiment of the present invention. In this encryption method, a right input encrypted with a round key of each round is subjected to an exclusive OR (XOR) A method of encrypting using a SEED algorithm of a pastel structure, the method comprising: masking a 128-bit input plaintext; Masking the round key of the round for each round with the masked input plaintext as an initial input and encrypting the rightmost 64 bits of the input value of each round with the masked round key; And removing masking of the rightmost input of the most significant 64 bits and the left input of the least significant 64 bits in the last round.

바람직하게는, 상기 암호화하는 단계에서, 상기 오른쪽 입력의 마스킹을 유지시키는 마스킹 S박스를 포함하는 수정된 G함수와 마스킹을 유지시키는 마스킹 덧셈 연산을 적용할 수 있다. 이때, 상기 마스킹 덧셈 연산은 4비트에 대한 산술 대 불대수 마스킹 변환 테이블 (FT)와 캐리 테이블 (CT)를 사용하는 마스킹 변환 함수를 적용할 수 있다.Advantageously, in the encrypting step, a modified G function including a masking S box for maintaining masking of the right input and a masking addition operation for maintaining masking can be applied. In this case, the masking addition operation may use a masking conversion function using an arithmetic to non-algebraic masking conversion table FT and a carry table CT for 4 bits.

본 발명의 실시 예들에 의하면, 기존의 암호화 기법인 SEED 알고리즘에 마스킹을 도입하여 암호시스템의 안전성을 향상시킬 수 있고, 연산에 필요한 추가 비용의 증가를 최소한으로 억제할 수 있다.According to embodiments of the present invention, the security of the encryption system can be improved by introducing masking into the SEED algorithm, which is an existing encryption technique, and the increase in the additional cost required for the operation can be minimized.

이하에서는 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다. 그러나, 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다.Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings. However, the following embodiments of the present invention may be modified into various other forms, and the scope of the present invention is not limited to the embodiments described below.

마스킹 기법은 일차 차분 전력 분석에 안전한 소프트웨어적인 대응법으로 그 비용이 랜덤 지연, 랜덤 클럭, 잡음 삽입과 같은 하드웨어적인 대응법에 비해 비교 적 적은 편이며 따라서 스마트카드와 같은 저가의 장비에 암호 설계를 위해 가장 선호되는 대응법이다. 마스킹 기법이란 암호화 장비에서 알고리즘이 수행되는 모든 중간 연산 값 a를 난수 m에 의해서

Figure 112008090748819-pat00050
,
Figure 112008090748819-pat00051
등의 형태로 숨기는 방법이며 이는 마스킹 기법을 사용 했을 경우 중간의 전력을 얻게 되어도 본 연산의 중간 값 a에 대한 전력이 아닌 난수 값 m에 의해 변형된 값에 대한 전력을 얻게 되어 일차 차분 전력 분석 공격에 대한 방어를 가능하게 한다.The masking technique is a safe software countermeasure method for first order differential power analysis. Its cost is relatively low compared to hardware countermeasures such as random delay, random clock, and noise insertion. Therefore, This is the preferred response. The masking technique is a method in which all intermediate values a in which an algorithm is executed in an encryption device are a
Figure 112008090748819-pat00050
,
Figure 112008090748819-pat00051
If the masking technique is used, power is obtained for the value modulated by the random number m instead of the power for the intermediate value a of the present operation even if the intermediate power is obtained. Thus, the primary difference power analysis attack To be able to defend against.

알고리즘의 특성에 따라 다양하게 적용 가능하지만 블록암호의 경우에는 일반적으로 산술 (Arithmetic) 또는 불대수 (Boolean)의 방법으로 마스킹이 적용된다. 이 두 마스킹 방법은 난수 r에 대해 중간 연산 값 x를 다음과 같이 마스킹 한다.It can be applied variously according to the characteristics of the algorithm. In the case of the block cipher, however, masking is generally applied by an arithmetic or Boolean method. These two masking methods mask the intermediate value x for the random number r as follows.

산술 마스킹의 예는 수학식 4와 같다. 여기서, A는 마스킹 출력값이고, K는 임의의 정수이다.An example of arithmetic masking is shown in Equation (4). Here, A is a masking output value, and K is an arbitrary integer.

Figure 112008090748819-pat00052
Figure 112008090748819-pat00053
또는
Figure 112008090748819-pat00052
Figure 112008090748819-pat00053
or

불대수 마스킹의 예는 수학식 5와 같다. 여기서, x'은 마스킹 출력값이다.An example of non-algebraic masking is shown in Equation (5). Here, x 'is the masking output value.

Figure 112008090748819-pat00054
Figure 112008090748819-pat00054

블록 암호에 대한 마스킹 기법은 중간 연산 결과 값을 랜덤하게 만들어 일차 차분 전력 분석에 안전하게 한다. 연산의 효율성을 위해 블록 암호의 전체 라운드 가 아닌 첫 라운드와 마지막 라운드만을 마스킹 하는 방법이 제안되기도 하였다. 하지만 이 방법은 IPA (Inferential Power Analysis) 방법을 통해서 안전하지 않다는 것이 밝혀졌다. The masking technique for the block cipher makes the result of the intermediate operation random, making it safe for the first-order differential power analysis. For efficiency of the operation, a method of masking only the first round and the last round, not the whole round of the block cipher has been proposed. However, it has been found that this method is not as secure as the IPA (Inferential Power Analysis) method.

그에 반해 풀라운드 마스킹 방법 (Full Round Masking Method)은 알고리즘의 모든 라운드의 모든 수행과정에 대한 중간 연산 값이 마스킹에 의해 랜덤화 되도록 연산을 수행하는 방법이다. 이와 같이 풀라운드 마스킹에서 모든 중간 값에 대해 마스킹을 적용하기 위해서는 알고리즘의 수행 후에 제거할 마스킹의 값을 알 수 있어야 한다. 일반적으로 선형 연산에 대한 마스킹 값은 이전의 마스킹 값으로 쉽게 유추될 수 있지만 비선형 연산에 대한 마스킹 값의 변환은 유추하기가 힘들며 마스킹 기법의 설계 시 이 부분에 대한 고려가 불가피하다.On the other hand, the full round masking method is a method of performing an operation such that intermediate values of all the execution processes of all rounds of the algorithm are randomized by masking. In order to apply masking to all intermediate values in full round masking, it is necessary to know the value of masking to be removed after the execution of the algorithm. In general, masking values for linear operations can be easily deduced from previous masking values, but it is difficult to deduce the conversion of masking values for nonlinear operations, and it is inevitable to consider this part in the design of masking techniques.

이하에서는 다음의 각 연산들에 따라 연산 수행 후 결과 값에 대한 마스킹 값을 살펴본다.Hereinafter, the masking value of the resultant value is examined according to each of the following operations.

테이블 룩업 (Table Lookup), 비트의 불대수 (Bitwise Boolean), 시프트/로테이션 (Shift/Rotation), 곱셈 (Multiplication)

Figure 112008090748819-pat00055
, 덧셈 (Addition)
Figure 112008090748819-pat00056
,
Figure 112008090748819-pat00057
에 대한 다항식 곱셈 (Polynomial Multiplication over
Figure 112008090748819-pat00058
), 비트의 퍼뮤테이션 (Bitwise Permutation), 선형변환 (Linear Transformation) 등의 연산들에 대해 입력 값 및 중간 계산 값을 숨기기 위해서 상술한 불대수 마스킹과 산술 마스킹을 사용한다. 두 가지의 마스킹 기법을 사용하여 위의 연산들에 대한 부채널 공격의 대응방법을 구성한다. Table Lookup, Bitwise Boolean, Shift / Rotation, Multiplication,
Figure 112008090748819-pat00055
Addition,
Figure 112008090748819-pat00056
,
Figure 112008090748819-pat00057
Polynomial Multiplication over
Figure 112008090748819-pat00058
), Bitwise permutation, linear transformation, and the like are used to hide the input values and the intermediate calculation values. The above-described algebraic masking and arithmetic masking are used. We use two masking techniques to construct a countermeasure against subchannel attacks on the above operations.

첫 번째로, 룩업 테이블 연산을 수행할 때는 입력 값 x에 대해서 연산을 수행하기 전에

Figure 112008090748819-pat00059
을 통해서 한 번의 랜덤화를 수행하고, 테이블 룩업 연산 수행 이후에
Figure 112008090748819-pat00060
을 이용해서 두 번째 랜덤화를 수행한다. 랜덤화를 수행하는 계산식은 수학식 6과 같다. First, when performing a lookup table operation, it is necessary to perform an operation on the input value x
Figure 112008090748819-pat00059
A randomization is performed once, and after the table look-up operation is performed
Figure 112008090748819-pat00060
The second randomization is performed. The equation for performing the randomization is shown in Equation (6).

Figure 112008090748819-pat00061
Figure 112008090748819-pat00061

Figure 112008090748819-pat00062
는 x에 대한 테이블 룩업 연산을 의미한다. 마스킹을 수행하도록 설계된
Figure 112008090748819-pat00063
은 마스킹된 값을 입력 값으로 받아서 마스킹된 결과 값을 출력한다. 즉
Figure 112008090748819-pat00064
Figure 112008090748819-pat00065
으로 마스킹된 입력 값에 대해
Figure 112008090748819-pat00066
으로 마스킹된 결과 값을 출력한다.
Figure 112008090748819-pat00062
Means a table lookup operation on x. Designed to perform masking
Figure 112008090748819-pat00063
Receives the masked value as an input value, and outputs the masked result value. In other words
Figure 112008090748819-pat00064
silver
Figure 112008090748819-pat00065
For input values masked by
Figure 112008090748819-pat00066
And outputs the masked result value.

두 번째로, 불대수 연산이다. 불대수 연산 중 암호 수행 시에 자주 사용은 XOR와 AND이다. 입력 값에 대한 마스킹 연산을 수행하면서 정확한 마스킹 값을 계산해서 유지 하는 것이 가장 중요하다. 마스킹된 두 값에 대해 XOR 연산이 수행될 경우 다음과 같이 마스킹 값이 적용될 수 있다. 두 입력 값

Figure 112008090748819-pat00067
에 대한 마스킹 값을 각각
Figure 112008090748819-pat00068
라고 할 때 마스킹이 씌워진 값을
Figure 112008090748819-pat00069
Figure 112008090748819-pat00070
라고 가정하면, 마스킹이 씌워진 결과 값
Figure 112008090748819-pat00071
이고, 마스킹 값
Figure 112008090748819-pat00072
이다. 또한 AND 연산에 대해서는 다음과 같이 마스킹이 적용될 수 있다. 이 경우에도 XOR에서 정의한 것과 마찬가지로 두 입력 값
Figure 112008090748819-pat00073
에 대해서 마스킹이 적용될 값을 각각
Figure 112008090748819-pat00074
, 마스킹이 씌 워진 값을
Figure 112008090748819-pat00075
Figure 112008090748819-pat00076
라고 가정하면, 마스킹이 씌워진 결과 값
Figure 112008090748819-pat00077
이고, 마스킹 값
Figure 112008090748819-pat00078
이다. AND 연산에서 마스킹 연산을 수행하는 도중, x나 y의 값이 마스킹 되지 않고 드러나지 않을 수도 있다. 이부분에 대해서 세심한 구현이 요구된다.Second, it is a Boolean operation. The frequent use of encryption during the Boolean algebra operation is XOR and AND. It is most important to calculate and maintain accurate masking values while performing masking operations on input values. When an XOR operation is performed on two values masked, a masking value can be applied as follows. Two input values
Figure 112008090748819-pat00067
Lt; RTI ID = 0.0 >
Figure 112008090748819-pat00068
The masked value
Figure 112008090748819-pat00069
Wow
Figure 112008090748819-pat00070
, The resultant masked value
Figure 112008090748819-pat00071
And the masking value
Figure 112008090748819-pat00072
to be. Masking can also be applied to the AND operation as follows. In this case as well, as defined by the XOR,
Figure 112008090748819-pat00073
Lt; RTI ID = 0.0 > Masking < / RTI &
Figure 112008090748819-pat00074
, The masked value
Figure 112008090748819-pat00075
Wow
Figure 112008090748819-pat00076
, The resultant masked value
Figure 112008090748819-pat00077
And the masking value
Figure 112008090748819-pat00078
to be. During the masking operation in the AND operation, the values of x and y may not be masked or exposed. A careful implementation is required for this part.

세 번째로, 시프트나 로테이션이 수행되는 경우에는 다음과 같이 마스킹이 변형된다. 입력 값 x에 대해서 n비트의 시프트나 로테이션 연산이 수행되는 경우,

Figure 112008090748819-pat00079
는 x에 대해서
Figure 112008090748819-pat00080
의 마스킹 값을 사용하여 마스킹된 값이라 하면
Figure 112008090748819-pat00081
에 대해서 n비트의 시프트나 로테이션이 수행되었을 때 그 값에 해당하는 마스킹 값은 다음과 같이 계산된다. 즉, 시프트나 로테이션이 수행된 입력 값
Figure 112008090748819-pat00082
일때,
Figure 112008090748819-pat00083
에 해당되는 마스크 값은
Figure 112008090748819-pat00084
이다. 데이터에 의존해서 시프트나 로테이션이 수행되는 경우에는 다음과 같은 방법으로 시프트나 로테이션의 횟수도 랜덤하게 생성할 수 있다. 즉, 시프트나 로테이션이 수행된 입력 값이
Figure 112008090748819-pat00085
일때,
Figure 112008090748819-pat00086
에 해당되는 마스크 값은
Figure 112008090748819-pat00087
이다.Thirdly, when shifting or rotation is performed, the masking is deformed as follows. When an n-bit shift or rotation operation is performed on the input value x,
Figure 112008090748819-pat00079
About x
Figure 112008090748819-pat00080
If the value is masked using the masking value of
Figure 112008090748819-pat00081
The masking value corresponding to the value when the shift or rotation of n bits is performed is calculated as follows. That is, the input value
Figure 112008090748819-pat00082
when,
Figure 112008090748819-pat00083
The mask value for
Figure 112008090748819-pat00084
to be. When a shift or rotation is performed depending on data, the number of shifts or rotations can also be randomly generated in the following manner. That is, when the input value on which the shift or rotation is performed is
Figure 112008090748819-pat00085
when,
Figure 112008090748819-pat00086
The mask value for
Figure 112008090748819-pat00087
to be.

네 번째로, 덧셈 또는 곱셈이 수행되는 경우에 대해 설명한다.

Figure 112008090748819-pat00088
에서의 산술연산의 경우에는 산술 마스킹 방법을 사용한다. 두 데이터
Figure 112008090748819-pat00089
에 대한 마스킹 값을 각각
Figure 112008090748819-pat00090
,
Figure 112008090748819-pat00091
의 마스킹된 값을
Figure 112008090748819-pat00092
라고 가정하면, 두 값의 산술연산 + 및 ×에 대한 연산 결과의 변환된 마스킹 값들은 다음과 같이 정리 된다. 즉, + 에 대 한 연산 결과는
Figure 112008090748819-pat00093
이고, + 에 대한 연산 마스킹 값은
Figure 112008090748819-pat00094
이다. 또한, ×에 대한 연산 결과는
Figure 112008090748819-pat00095
이고, ×에 대한 연산 마스킹 값
Figure 112008090748819-pat00096
이다.Fourth, the case where addition or multiplication is performed will be described.
Figure 112008090748819-pat00088
The arithmetic masking method is used. Two data
Figure 112008090748819-pat00089
Lt; RTI ID = 0.0 >
Figure 112008090748819-pat00090
,
Figure 112008090748819-pat00091
The masked value of
Figure 112008090748819-pat00092
, The converted masking values of the arithmetic operation of the two values and the operation result of X are summarized as follows. That is, the result of the operation on +
Figure 112008090748819-pat00093
, And the operation masking value for +
Figure 112008090748819-pat00094
to be. Also, the calculation result for X is
Figure 112008090748819-pat00095
, And an operation masking value for X
Figure 112008090748819-pat00096
to be.

다섯 번째로, 다항식 곱셈에 대해 설명한다. 불대수 마스킹 방법이 적용되어 있는 값에 대해서 다항식 곱셈을 수행할 때 마스킹 값을 변환하는 여러 가지 방식이 있다. 연산의 결과를 테이블에 저장해서 사용하는 경우에는 마스킹 테이블 룩업 방식을 적용하면 된다. 또한

Figure 112008090748819-pat00097
에서는 데이터에
Figure 112008090748819-pat00098
를 XOR 연산으로 마스킹 하는 것이 산술 마스킹 방법에서
Figure 112008090748819-pat00099
를 더해주는 것과 같은 결과를 낳기 때문에 산술 마스킹 방법을 적용할 수 있다.Fifth, the polynomial multiplication will be described. There are several ways to convert masking values when polynomial multiplication is performed on values to which the algebraic masking method is applied. If the result of the operation is stored in a table, the masking table lookup method may be applied. Also
Figure 112008090748819-pat00097
In the data
Figure 112008090748819-pat00098
Is masked by an XOR operation in an arithmetic masking method
Figure 112008090748819-pat00099
The arithmetic masking method can be applied.

여섯 번째로, 비트 퍼뮤테이션에 대해 설명한다. 데이터 x에 대한 마스킹 값을

Figure 112008090748819-pat00100
라고 할 때 x의 마스킹된 값을
Figure 112008090748819-pat00101
이라 하자. 이 경우, 퍼뮤테이션 연산이
Figure 112008090748819-pat00102
로 수행되었을 때 마스킹 값 또한
Figure 112008090748819-pat00103
로 계산된다.Sixth, the bit permutation will be described. The masking value for data x
Figure 112008090748819-pat00100
The masked value of x is
Figure 112008090748819-pat00101
. In this case, the permutation operation
Figure 112008090748819-pat00102
The masking value is also < RTI ID = 0.0 >
Figure 112008090748819-pat00103
.

일곱 번째로, 선형변환의 경우에는 퍼뮤테이션에서 사용했던 것과 같은 방법으로 랜덤 마스킹 값을 변환할 수 있다. 데이터 x에 대한 마스킹 값은

Figure 112008090748819-pat00104
, x의 마스킹된 값을
Figure 112008090748819-pat00105
라고 하자. 선형변환을
Figure 112008090748819-pat00106
라고 할 때,
Figure 112008090748819-pat00107
에 대한 마스킹 값은
Figure 112008090748819-pat00108
로 계산된다.Seventh, in the case of linear transforms, random masking values can be transformed in the same way as in permutation. The masking value for data x is
Figure 112008090748819-pat00104
, the masked value of x
Figure 112008090748819-pat00105
Let's say. Linear transformation
Figure 112008090748819-pat00106
When you say,
Figure 112008090748819-pat00107
The masking value for
Figure 112008090748819-pat00108
.

이러한 방법으로 알고리즘을 구현하면, 연산을 수행하는 과정과 랜덤한 마스 킹 값을 유지하는 과정이 필요하므로, 일반 알고리즘에 비해 추가적인 연산비용이 소모된다. 또한 테이블 룩업을 수행하는 경우 테이블을 생성하는 부분, 불대수 마스킹과 산술 마스킹의 변환이 이루어지는 부분 등에서도 추가적인 비용이 발생한다. 이러한 추가적인 비용은 테이블의 크기와 마스킹의 변환이 이루어지는 빈도에 따라 좌우된다.Implementing the algorithm in this way requires additional computation cost as compared with the general algorithm, because it requires a process of performing the operation and a process of maintaining a random masking value. In addition, additional cost is incurred when the table lookup is performed, such as a portion for generating a table, a portion for converting algebraic masking and arithmetic masking. This additional cost depends on the size of the table and how often the conversion of the masking occurs.

DPA 공격에 대한 마스킹 형태의 기존 대응 방법들은 중간 계산에서의 마스킹 값에 대한 상태를 계속적으로 살펴보아야 하는 문제가 있다. 이러한 문제를 해결하기 위해 고정된 단계에서만 마스킹 값을 알고, 알고리즘이 끝난 다음에 마스킹 값을 벗겨내서 원래 값을 복원하는 방법이 제안되었다. Conventional countermeasures of masking type against DPA attack have a problem of continuously checking the state of masking value in intermediate calculation. In order to solve this problem, a method of knowing the masking value only at a fixed stage and then stripping out the masking value after the end of the algorithm, and restoring the original value has been proposed.

기존 마스킹 방법의 가장 큰 단점인 랜덤한 S박스를 만들기 위해 수행되는 연산비용을 극복할 수 있는 방법이 제안되기도 하였다. 이 방법은 랜덤한 S박스를 다수 계산해서 ROM에 저장하는 방법 즉, 고정된 (Fixed) 마스킹 방법인데, S박스를 사용하는 모든 암호의 구현 시에 사용할 수 있는 방법이다. A method has been proposed to overcome the computation cost to create a random S box, which is the biggest disadvantage of the existing masking method. This method is a method of storing a large number of random S boxes in ROM, that is, a fixed masking method, which can be used to implement all ciphers using S box.

유니크 (Unique) 마스킹 방법은 블록암호를 DPA에 안전하도록 설계한 방법이다. 유니크 마스킹 방법은 블록암호에 들어가는 F함수와 같은 기능을 수행 하면서 마스킹 값의 존재 여부에 상관없이 수행할 수 있도록 F의 변형된 형태를 사용한다. 이 방법을 사용한 DES (Data Encryption Standard) 의 예는 다음과 같다. Unique masking method is designed to secure block cipher to DPA. The unique masking method uses the modified form of F so that it can perform the same function as the F function entering the block cipher without regard to the presence or absence of the masking value. An example of the DES (Data Encryption Standard) using this method is as follows.

DES에서는 F함수를 수학식 7의 두 S박스를 사용해서 구성한다. In DES, the F function is constructed by using two S boxes of Equation (7).

Figure 112008090748819-pat00109
Figure 112008090748819-pat00109

Figure 112008090748819-pat00110
Figure 112008090748819-pat00110

여기서, E는 확장 퍼뮤테이션 (expansion permutation)이고,

Figure 112008090748819-pat00111
는 S박스에서의 역 퍼뮤테이션 (inverse permutation)이다.Where E is the expansion permutation,
Figure 112008090748819-pat00111
Is the inverse permutation in the S box.

Figure 112008090748819-pat00112
는 DES에서
Figure 112008090748819-pat00113
라는 키를 사용해서 수행되는 f함수라고 하고,
Figure 112008090748819-pat00114
Figure 112008090748819-pat00115
Figure 112008090748819-pat00116
라는 키와
Figure 112008090748819-pat00117
Figure 112008090748819-pat00118
를 S박스로 사용해서 구현되는 f함수라고 하자. 3개의 f중에서
Figure 112008090748819-pat00119
는 마스킹 값이 있는 데이터를 마스킹 값이 없는 데이터로 변환하고,
Figure 112008090748819-pat00120
는 마스킹 값이 없는 데이터를 마스킹 값이 있는 데이터로 변환한다.
Figure 112008090748819-pat00112
From DES
Figure 112008090748819-pat00113
This is called the f function,
Figure 112008090748819-pat00114
Wow
Figure 112008090748819-pat00115
The
Figure 112008090748819-pat00116
The key
Figure 112008090748819-pat00117
Wow
Figure 112008090748819-pat00118
Let's say that f is a function implemented using S box. Of the three f
Figure 112008090748819-pat00119
Converts the data having the masking value into data having no masking value,
Figure 112008090748819-pat00120
Converts data having no masking value into data having a masking value.

도 3은 이와 같이 구성된 3 개의 f함수에 대해서 5 가지 형태로 DES의 라운드를 수행하는 예를 도시한 것이다.FIG. 3 shows an example in which rounds of DES are performed in five types with respect to the three f functions thus configured.

도 3에서 실선이 나타내는 것은 마스킹 값이 없는 데이터에 대한 연산의 흐름을 나타내는 것이고, 점선이 나타내는 것은 마스킹 값이 씌워진 데이터에 대한 흐름을 나타낸다. 도 3과 같이 구성된 5가지의 라운드 수행의 조합을 통해서 기존의 DES 수행과 같은 결과 값을 출력하기 위해서는 도 4에서 표기되어 있는 연산 순서를 따르는 조합으로 라운드 연산을 수행해야한다. 의미 있는 연산 수행의 예로는 BCDCDCEBCDCDCDCE를 들 수 있다.In FIG. 3, the solid line indicates the flow of the operation for the data having no masking value, and the dotted line indicates the flow of the data overlaid with the masking value. In order to output the same result as that of the conventional DES through a combination of the five round operations configured as shown in FIG. 3, round operations must be performed by a combination following the operation sequence shown in FIG. An example of performing meaningful operations is BCDCDCEBCDCDCDCE.

유니크 마스킹 방법은 DPA에 안전한 것으로 분석되고 있다. 그리고 첫 번째 라운드와 마지막 라운드가 같은 마스크

Figure 112008090748819-pat00121
로 마스킹 되어있는 것에 의해서 발생할 수 있는 문제를 막기 위해서 수학식 8의 조합으로 수행하는 것을 제안하고 있다.Unique masking methods have been analyzed as being safe for DPA. And the first round and the last round are the same mask
Figure 112008090748819-pat00121
It is proposed to perform the combination of Equation (8) in order to prevent a problem that may be caused by being masked with < RTI ID = 0.0 >

Figure 112008090748819-pat00122
Figure 112008090748819-pat00122

유니크 마스킹 방법은 DES의 연산구조를 그대로 사용할 수 있다는 장점이 있다. The unique masking method has an advantage that the operation structure of DES can be used as it is.

마스킹 방법은 블록 알고리즘에 따라 설계 방법이 달라질 수 있으며 그 설계 방법에 따라 마스킹 보정작업, 추가적인 테이블 크기가 결정된다. 또한 다른 블록 암호와 달리 SEED는 S박스와 법

Figure 112008090748819-pat00123
(mod 232)에 대한 덧셈 연산을 비선형 연산으로 모두 사용하기 때문에 그 설계 방법에 따라 효율성이 크게 저하될 수 있다.The masking method can be changed according to the block algorithm, and the masking correction operation and the additional table size are determined according to the designing method. Unlike other block ciphers,
Figure 112008090748819-pat00123
(mod 2 32 ) is used as a nonlinear operation, the efficiency may be greatly reduced according to the design method.

본 발명의 일 실시 예에서는 일차 차분 전력 분석에 안전하면서 효율적인 SEED의 마스킹 방법을 제공한다. An embodiment of the present invention provides a safe and efficient masking method of SEED for primary differential power analysis.

이하에서, (x)y

Figure 112008090748819-pat00124
로서, x를 y번 연쇄(concatenation)시킨 것을 나타낸다. 또한, a<<b는 a에 대한 b비트 왼쪽 시프트 (left-shift) 연산을 나타내고, a>>b는 a에 대한 b비트 오른쪽 시프트 (right-shift) 연산을 나타낸다. 그리고, +n은 법
Figure 112008090748819-pat00125
에 대한 덧셈 연산을 나타내고, -n은 법
Figure 112008090748819-pat00126
에 대한 뺄셈 연산을 나타낸다.Hereinafter, (x) y is
Figure 112008090748819-pat00124
, Indicating that x is concatenated y times. Also, a << b represents a b-bit left-shift operation on a, and a >> b represents a b-bit right-shift operation on a. And, + n is the law
Figure 112008090748819-pat00125
, - n represents the addition
Figure 112008090748819-pat00126
&Lt; / RTI &gt;

본 발명의 일 실시 예에 따른 마스킹 방법의 전체 흐름은 다음과 같다.The overall flow of the masking method according to one embodiment of the present invention is as follows.

먼저, 두 개의 8 비트 마스킹 난수

Figure 112008090748819-pat00127
을 생성 후,
Figure 112008090748819-pat00128
을 계산한다. First, two 8-bit masking random numbers
Figure 112008090748819-pat00127
And then,
Figure 112008090748819-pat00128
.

다음, S박스

Figure 112008090748819-pat00129
,
Figure 112008090748819-pat00130
에 대하여 두 개의 마스킹 S박스
Figure 112008090748819-pat00131
,
Figure 112008090748819-pat00132
를 표 5의 알고리즘에 따라 생성한다. 다음, 4 비트 난수
Figure 112008090748819-pat00133
,
Figure 112008090748819-pat00134
,
Figure 112008090748819-pat00135
를 생성하고
Figure 112008090748819-pat00136
,
Figure 112008090748819-pat00137
를 표 6의 알고리즘에 따라 생성한다. 또한 32비트 난수
Figure 112008090748819-pat00138
를 생성한다.Next, S box
Figure 112008090748819-pat00129
,
Figure 112008090748819-pat00130
Two masking S boxes
Figure 112008090748819-pat00131
,
Figure 112008090748819-pat00132
Are generated according to the algorithm of Table 5. Next, a 4-bit random number
Figure 112008090748819-pat00133
,
Figure 112008090748819-pat00134
,
Figure 112008090748819-pat00135
And
Figure 112008090748819-pat00136
,
Figure 112008090748819-pat00137
Are generated according to the algorithm of Table 6. In addition,
Figure 112008090748819-pat00138
.

한편, 키 스케쥴링 과정에서 라운드 키

Figure 112008090748819-pat00139
Figure 112008090748819-pat00140
로,
Figure 112008090748819-pat00141
Figure 112008090748819-pat00142
로 마스킹 되도록 조정한다.Meanwhile, in the key scheduling process,
Figure 112008090748819-pat00139
of
Figure 112008090748819-pat00140
in,
Figure 112008090748819-pat00141
of
Figure 112008090748819-pat00142
As shown in FIG.

다음, 입력 평문 16 바이트를

Figure 112008090748819-pat00143
으로 마스킹한다. 그리고, 두 번째 라운드부터 각 라운드 연산 전에
Figure 112008090748819-pat00144
Figure 112008090748819-pat00145
과 XOR 연산하고,
Figure 112008090748819-pat00146
Figure 112008090748819-pat00147
과 XOR 연산한다. 각 라운드 연산은 도 8의 본 발명의 일 실시 예에 따라 수정된 G함수와 표 6의 수정된 덧셈연산을 이용한다.Next, input 16 bytes of plain text
Figure 112008090748819-pat00143
Lt; / RTI &gt; From the second round, before each round operation
Figure 112008090748819-pat00144
To
Figure 112008090748819-pat00145
Lt; / RTI &gt;
Figure 112008090748819-pat00146
To
Figure 112008090748819-pat00147
Lt; / RTI &gt; Each round operation utilizes a modified G function according to one embodiment of the invention of FIG. 8 and a modified addition operation of Table 6. [

마지막으로, 출력 평문의 16 바이트 마스킹 값

Figure 112008090748819-pat00148
을 벗겨낸다.Finally, the 16-byte masking value of the output plaintext
Figure 112008090748819-pat00148
.

위의 순서에 따른 본 발명의 일 실시 예에 따른 SEED 마스킹 구조의 라운드 함수의 예를 도시하면 도 5 및 도 6과 같다.An example of the round function of the SEED masking structure according to an embodiment of the present invention is shown in FIGS. 5 and 6. FIG.

도 5는 마지막 라운드를 제외한 본 발명의 일 실시 예에 따른 라운드 함수를 도시한 것이다. 도 6은 본 발명의 일 실시 예에 따른 마지막 라운드 함수를 도시한 것이다.FIG. 5 illustrates a round function according to an embodiment of the present invention except for the last round. FIG. 6 illustrates a final round function according to an embodiment of the present invention.

상술한 과정에서 최초 128비트의 평문이

Figure 112008090748819-pat00149
로 마스킹된 후, 도 5 및 6 에서 보는 바와 같이, 각 라운드의 128 비트 입력 값은
Figure 112008090748819-pat00150
로 마스킹이 유지된다. 입력 값 128비트 중
Figure 112008090748819-pat00151
으로 마스킹 된 하위 64 비트는 본 발명의 일 실시 예에 따라 수정된 F함수의 입력 값으로 들어가며,
Figure 112008090748819-pat00152
으로 마스킹 되어 출력된다.In the above process, the first 128-bit plaintext
Figure 112008090748819-pat00149
As shown in Figures 5 and 6, the 128 bit input value of each round is &lt; RTI ID = 0.0 &gt;
Figure 112008090748819-pat00150
Masking is maintained. Input value is 128 bits
Figure 112008090748819-pat00151
The lower 64 bits masked into the input of the modified F function according to an embodiment of the present invention,
Figure 112008090748819-pat00152
And is output.

64비트의 F함수 출력 값은 라운드 입력의 상위 64비트 입력 값과 XOR연산을 수행한 후, 다음 라운드의 하위 64비트 입력 값이 된다. 두 값을 XOR 하였을 경우, 중간 값에 대한 마스킹 값은

Figure 112008090748819-pat00153
로 변형된다.The 64-bit F-function output value is XORed with the upper 64-bit input value of the round input, and then becomes the lower 64-bit input value of the next round. When two values are XORed, the masking value for the intermediate value is
Figure 112008090748819-pat00153
.

그리고, 도 5에서와 같이

Figure 112008090748819-pat00154
과 XOR되면 다음 라운드의 하위 64비트 입력 값은
Figure 112008090748819-pat00155
로 마스킹 값이 변형된다. 또한 다음 라운드의 상위 64비트 입력 값은 이전 라운드의 하위 64비트의 값에
Figure 112008090748819-pat00156
을 XOR한 값으로
Figure 112008090748819-pat00157
으로 마스킹 값이 변형된다. 즉, 다음 라운드 함수의 입력 값 128비트 또한
Figure 112008090748819-pat00158
으로 선택되며, 이 마스킹 값은 본 발명의 일 실시 예에서 동일하게 유지된다. 5,
Figure 112008090748819-pat00154
, The lower 64-bit input value of the next round is
Figure 112008090748819-pat00155
The masking value is modified. Also, the upper 64-bit input value of the next round is the value of the lower 64 bits of the previous round
Figure 112008090748819-pat00156
To the value obtained by XOR
Figure 112008090748819-pat00157
The masking value is modified. That is, the input value 128 bits of the next round function also
Figure 112008090748819-pat00158
And this masking value remains the same in one embodiment of the present invention.

도 6은 마지막 라운드에 대한 마스킹 기법으로 마스킹을 제거하는 과정을 포함한다.FIG. 6 includes a process of removing masking by a masking technique for the last round.

SEED의 비선형 연산은 S박스와 법 232에 대한 덧셈 연산이다. 이러한 비선형 연산에 대한 마스킹 방법은 그 비용이 선형 연산에 비해 상당히 큰 편이며 전체 마스킹 기법의 효율성을 결정한다. The nonlinear operation of SEED is the addition operation for S box and law 2 32 . The masking method for this nonlinear operation is considerably larger than the linear operation and determines the efficiency of the entire masking technique.

이하에서는 S박스에 대한 마스킹에 대해 설명한다. 마스킹 방법의 종류에는 여러 가지가 있지만 대체적으로 마스킹을 사용하는 알고리즘에서의 주의해야 할 점은 다음과 같다. 즉, 암호의 모든 연산과정에서 마스킹을 사용하여 알고리즘에서 사용되는 전력 값이 누출 되어도 그 전력 값은 랜덤이어야 한다. 그리고, 마스킹을 사용 했을 때 마스킹의 값에 의해서 본래 연산 되어야 되는 값에 영향을 미치더라도 본래 알고리즘의 결과 값과 상이한 값이 나와서는 안 된다. Hereinafter, the masking for the S box will be described. There are various kinds of masking methods, but in general, an algorithm that uses masking should be noted as follows. That is, even if the power value used in the algorithm is leaked by using masking in all operations of the cipher, its power value must be random. And, if masking is used, it should not be different from the original algorithm's result even if it affects the original value to be calculated by masking value.

일반적으로 마스킹 방법을 사용할 경우 입력 값에 마스킹을 하여 전체적으로 마스킹 씌어 진 값들을 연산하고 출력 값의 마스킹을 벗겨내는 방법을 사용한다. 이러한 마스킹 방법에서, 선형적인 연산이 일어나는 부분에서는 마스킹 값이 그 다음 연산에서 쉽게 유추될 수 있지만 비선형 연산이 일어나는 부분에서는 그 다음의 연산에 대해 영향을 주게 되어 원래의 연산되어야 할 값과는 다른 값이 연산되는 점을 고려해야 한다. Generally, when using the masking method, the input value is masked to calculate the masked values as a whole, and the masking of the output value is peeled off. In this masking method, the masking value can easily be deduced from the next calculation in a linear arithmetic operation, but it affects the next arithmetic operation in a nonlinear arithmetic operation, so that a value different from the original arithmetic operation value It is necessary to consider the point at which it is calculated.

많은 블록암호에서 S박스를 사용하여 비선형 연산을 하며 이에 마스킹 방법을 적용할 경우 비선형 연산이 일어나는 S박스를 반드시 고려해야 한다. In many block ciphers, nonlinear operation is performed using S box, and when masking method is applied, S box which nonlinear operation occurs must be considered.

DES 알고리즘을 예로 들어보자.Let's take the DES algorithm as an example.

표 3은 DES의 연산 과정 중 라운드 키의 6비트 와 평문의 6비트 값이 XOR 된 이후의 6비트 값이 S박스의 입력 값으로 들어가서 4비트의 값이 출력되는 형태를 나타낸 것이다.Table 3 shows a form in which a 6-bit value after 6 rounds of the round key and a 6-bit value of the plain text are XORed in the DES computation process, and the 4-bit value is output by entering the S-box input value.

입력input

Figure 112008090748819-pat00159
Figure 112008090748819-pat00159
S박스
연산


S box
calculate


출력
Print

DES 알고리즘의 입력 값을 평문에 마스킹 방법을 사용한

Figure 112008090748819-pat00160
라 가정 하면 알고리즘을 수행 했을 때 출력 값이
Figure 112008090748819-pat00161
의 형태로 되어 마스킹을
Figure 112008090748819-pat00162
연산으로 벗겨내어 올바른 형태의
Figure 112008090748819-pat00163
가 되어야 한다.The input value of the DES algorithm is masked using the plaintext
Figure 112008090748819-pat00160
Assuming that the output value is
Figure 112008090748819-pat00161
Masking in the form of
Figure 112008090748819-pat00162
To strip out the correct form
Figure 112008090748819-pat00163
.

하지만 DES 알고리즘에서는 S박스를 사용하는 비선형적인 연산이 포함 되어 있기 때문에 실질적으로

Figure 112008090748819-pat00164
의 형태로 출력되지 않는다. However, since the DES algorithm includes non-linear operations using S-boxes,
Figure 112008090748819-pat00164
. &Lt; / RTI &gt;

DES 알고리즘에서 입력 값을

Figure 112008090748819-pat00165
로 수행했을 경우 S박스에서 일어나는 연산을 살펴보면
Figure 112008090748819-pat00166
의 형태로 표 3과 같은 연산이 수행이 되며, 표 4와 같은 연산과정으로 나타낼 수 있다.In the DES algorithm,
Figure 112008090748819-pat00165
If you look at the operations that occur in S box
Figure 112008090748819-pat00166
The operation is performed as shown in Table 3, and it can be represented by the calculation process as shown in Table 4. [

입력input

Figure 112008090748819-pat00167
Figure 112008090748819-pat00167
S박스
연산



S box
calculate



출력
Print

따라서 마스킹 방법이 사용된 이후의 S박스의 출력 값은 표 3에서와 같은

Figure 112008090748819-pat00168
가 선택 되어서 출력되는 것이 아니라 [표2]에서의
Figure 112008090748819-pat00169
,
Figure 112008090748819-pat00170
와 같이 마스킹이 씌워진 값이 선택 되어 출력된다. Therefore, the output values of the S box after the masking method is used are shown in Table 3
Figure 112008090748819-pat00168
Is not selected and output, but the output of [Table 2]
Figure 112008090748819-pat00169
,
Figure 112008090748819-pat00170
The masked value is selected and output.

즉,

Figure 112008090748819-pat00171
이 아니라
Figure 112008090748819-pat00172
의 형태로 나오게 되어 원래의 값과 전혀 다른 값이 출력 되게 된다. In other words,
Figure 112008090748819-pat00171
Not
Figure 112008090748819-pat00172
And the output value is completely different from the original value.

따라서 수학식 9를 만족할 수 있는 S'박스를 알고리즘 수행 전에 반드시 생성해야만 한다. Therefore, an S 'box that can satisfy Equation (9) must be generated before the algorithm is executed.

Figure 112008090748819-pat00173
Figure 112008090748819-pat00173

SEED의 S박스에 대한 마스킹 S박스 생성 알고리즘의 예는 표 5와 같다. Table 5 shows an example of masking S box generation algorithm for S box of SEED.

Figure 112008090748819-pat00174
Figure 112008090748819-pat00174

표 5의 알고리즘은 두 S박스

Figure 112008090748819-pat00175
에 대하여
Figure 112008090748819-pat00176
으로 마스킹 된 x값이 입력되었을 때,
Figure 112008090748819-pat00177
으로 마스킹 된
Figure 112008090748819-pat00178
의 값을 출력하는 테이블을 생성한다. 이 마스킹 S박스
Figure 112008090748819-pat00179
,
Figure 112008090748819-pat00180
는 F함수의 G함수에서
Figure 112008090748819-pat00181
대신에 사용되며, 이 두 마스킹 S박스의 사용을 위해서
Figure 112008090748819-pat00182
,
Figure 112008090748819-pat00183
의 입력 값은 반드시
Figure 112008090748819-pat00184
으로 마스킹 되도록 전체 구조를 설계해야만 한다.The algorithm in Table 5 is based on two S boxes
Figure 112008090748819-pat00175
about
Figure 112008090748819-pat00176
When the masked x value is input,
Figure 112008090748819-pat00177
Masked with
Figure 112008090748819-pat00178
To generate a table to output the value of This masking S box
Figure 112008090748819-pat00179
,
Figure 112008090748819-pat00180
In the G function of the F function
Figure 112008090748819-pat00181
It is used instead, and for the use of these two masking S boxes
Figure 112008090748819-pat00182
,
Figure 112008090748819-pat00183
The input value of
Figure 112008090748819-pat00184
The entire structure must be designed to be masked.

SEED의 비선형 연산인 덧셈 연산은 법 232에 대한 덧셈 연산을 사용한다. 따라서 본 발명의 일 실시 예에 따른 마스킹 기법은 법 232의 덧셈 연산의 마스킹 방법을 고려한다. 법 232의 덧셈 연산의 마스킹 변환 테이블을 사용할 경우 테이블의 크기가 너무 커서 실제로 사용할 수 없다. 이러한 문제는 작은 비트에 대한 마스킹 변환 테이블과 캐리 테이블을 이용하여 해결해야만 한다. 본 발명의 일 실시 예에 따른 마스킹 기법에서는 마스킹 변환 테이블과 캐리 테이블의 크기를 4비트 16개의 원소를 지니는 것으로 선택하여 사용한다. 이 값은 실험적으로 가장 효율적인 사이즈를 선택한 것이지만, 본 발명의 내용이 여기에 한정되지 않는다. 다음 알고리즘은 4비트에 대한 산술에서 불대수 마스킹으로 변환하는 테이블

Figure 112008090748819-pat00185
와 캐리 테이블
Figure 112008090748819-pat00186
의 생성 알고리즘이다.The addition operation, which is a nonlinear operation of SEED, uses an addition operation for the method 2 32 . Therefore, the masking method according to an embodiment of the present invention considers the masking method of the addition operation of the method 2 32 . Method 2 If the masking conversion table of 32 addition operations is used, the size of the table is too large to be actually used. This problem must be solved by using masking conversion tables and carry tables for small bits. In the masking technique according to the embodiment of the present invention, the size of the masking conversion table and the carry table is selected by using 16 bits of 4 bits. Although this value is the experimentally selected most efficient size, the contents of the present invention are not limited thereto. The following algorithm is a table that converts from arithmetic on 4 bits to algebraic masking
Figure 112008090748819-pat00185
And carry table
Figure 112008090748819-pat00186
.

Figure 112008090748819-pat00187
Figure 112008090748819-pat00187

Figure 112008090748819-pat00188
테이블은 4비트 난수
Figure 112008090748819-pat00189
,
Figure 112008090748819-pat00190
를 이용, 입력 값
Figure 112008090748819-pat00191
에 대해
Figure 112008090748819-pat00192
를 출력한다. 또한
Figure 112008090748819-pat00193
테이블은
Figure 112008090748819-pat00194
이 16보다 크거나 같을 경우, 즉,
Figure 112008090748819-pat00195
Figure 112008090748819-pat00196
보다 작은 경우, 캐리 값을 설정하기 위한 것이다. 이 테이블은 캐리 값이 설정된 경우 1, 설정되지 않는 경우 0값을 얻기 위함이지만, 작은 값에 대해 캐리 값이 1, 큰 값에 대해 캐리 값이 0이 될 확률이 높은 취약점을 방지하기 위해 새로운 4비트 난수
Figure 112008090748819-pat00197
를 이용하며, 실제 본 연산에서는 4비트의 난수
Figure 112008090748819-pat00198
를 다시 빼주는 방법을 사용할 수도 있다.
Figure 112008090748819-pat00188
The table is a 4-bit random number
Figure 112008090748819-pat00189
,
Figure 112008090748819-pat00190
, The input value
Figure 112008090748819-pat00191
About
Figure 112008090748819-pat00192
. Also
Figure 112008090748819-pat00193
The table
Figure 112008090748819-pat00194
Is greater than or equal to 16, i.e.,
Figure 112008090748819-pat00195
this
Figure 112008090748819-pat00196
, It is for setting a carry value. This table is intended to obtain a value of 1 if the carry value is set and a value of 0 if it is not set. However, to prevent a vulnerability with a high carry value of 1 for a small value and a carry value of 0 for a large value, Bit random number
Figure 112008090748819-pat00197
In actual operation, a 4-bit random number
Figure 112008090748819-pat00198
You can also use a method to re-subtract.

본 발명의 일 실시 예에 따라 수정된 F함수에서 입력 값은

Figure 112008090748819-pat00199
으로 마스킹 된 값이며, 출력 값은
Figure 112008090748819-pat00200
으로 마스킹 되어 출력된다. In an F function modified according to an embodiment of the present invention,
Figure 112008090748819-pat00199
And the output value is &lt; RTI ID = 0.0 &gt;
Figure 112008090748819-pat00200
And is output.

도 7은 본 발명의 일 실시 예에 따라 수정된 F함수를 도시한 것이다. Figure 7 illustrates a modified F-function in accordance with an embodiment of the present invention.

본 발명의 일 실시 예에 따라 수정된 F함수이 올바르게 동작하기 위해서는 다음의 두 조건을 만족하면 된다. 즉, 본 발명의 일 실시 예에 따라 수정된 G함수(Modified G-Function)은

Figure 112008090748819-pat00201
으로 마스킹된 입력 값에 대해
Figure 112008090748819-pat00202
으로 마스킹 된 값을 출력한다. 그리고, 본 발명의 일 실시 예에 따른 마스킹 덧셈(MA, Masking Addition)은 두 입력 값
Figure 112008090748819-pat00203
,
Figure 112008090748819-pat00204
에 대해
Figure 112008090748819-pat00205
을 출력한다. In order for the modified F function to operate correctly according to an embodiment of the present invention, the following two conditions must be satisfied. That is, according to one embodiment of the present invention, a modified G function (Modified G function)
Figure 112008090748819-pat00201
For input values masked by
Figure 112008090748819-pat00202
And outputs the masked value. In addition, the masking addition (MA) according to an embodiment of the present invention can be realized by two input values
Figure 112008090748819-pat00203
,
Figure 112008090748819-pat00204
About
Figure 112008090748819-pat00205
.

도 8은 본 발명의 일 실시 예에 따라 수정된 G함수를 도시한 것이다. Figure 8 illustrates a modified G function according to an embodiment of the present invention.

도 8의 32비트 입력 값은

Figure 112008090748819-pat00206
으로 마스킹되어 있으며, 마스킹 S박스 (MS1, MS2)를 거친 후,
Figure 112008090748819-pat00207
으로 마스킹 된다. 마스킹 S박스 각각의 출력 값은 수학식 10의 연산을 통해 32비트 출력 값을 결정한다.The 32-bit input value of Figure 8
Figure 112008090748819-pat00206
And after passing through the masking S boxes MS 1 and MS 2 ,
Figure 112008090748819-pat00207
Lt; / RTI &gt; The output value of each masking S box determines the 32-bit output value through the operation of Equation (10).

Figure 112008090748819-pat00208
Figure 112008090748819-pat00208

Figure 112008090748819-pat00209
Figure 112008090748819-pat00209

Figure 112008090748819-pat00210
Figure 112008090748819-pat00210

Figure 112008090748819-pat00211
Figure 112008090748819-pat00211

4바이트의 출력 값에서 각 바이트의 마스킹 값은

Figure 112008090748819-pat00212
이 되며 이 값을 정리하면
Figure 112008090748819-pat00213
이 된다.
Figure 112008090748819-pat00214
은 G함수의 고정된 상수 값으로 0xff 값이다. 따라서, 본 발명의 일 실시 예에 따라 수정된 G함수의 출력 바이트에 대한 마스킹 값은
Figure 112008090748819-pat00215
이 된다.The masking value for each byte in the 4-byte output value is
Figure 112008090748819-pat00212
And summing up these values
Figure 112008090748819-pat00213
.
Figure 112008090748819-pat00214
Is a fixed constant value of the G function with a value of 0xff. Thus, according to one embodiment of the present invention, the masking value for the output byte of the modified G function is
Figure 112008090748819-pat00215
.

본 발명의 일 실시 예에 따른 마스킹 방법은 F함수에서 사용되는 모든 마스킹 덧셈 연산의 32 비트 입력 값이

Figure 112008090748819-pat00216
으로 마스킹하며, 덧셈 연산 후에 마스킹 값이
Figure 112008090748819-pat00217
이 되게 한다. 즉, 마스킹 덧셈 연산의 32 비트의 두 입력값
Figure 112008090748819-pat00218
에 대하여
Figure 112008090748819-pat00219
을 출력하는 마스킹 덧셈 연산을 수행해야만 한다. 이때, 입출력 마스킹 값은 마스킹 방법의 효율성을 결정하는 마스킹 보정작업을 최소화하기 위해 선택된다.A masking method according to an embodiment of the present invention is a method in which a 32-bit input value of all masking addition operations used in an F function
Figure 112008090748819-pat00216
, And after the addition operation, the masking value is
Figure 112008090748819-pat00217
. That is, two input values of 32 bits of the masking addition operation
Figure 112008090748819-pat00218
about
Figure 112008090748819-pat00219
It is necessary to perform a masking addition operation to output the masking addition operation. At this time, the input / output masking value is selected to minimize the masking correction operation that determines the efficiency of the masking method.

표 7은 이렇게 선택된 마스킹 값을 사용하여, 32 비트의 두 입력값

Figure 112008090748819-pat00220
에 대하여
Figure 112008090748819-pat00221
을 출력하는 마스킹 덧셈 연산 알고리즘이다. Using the masking values thus selected, Table 7 shows that two input values of 32 bits
Figure 112008090748819-pat00220
about
Figure 112008090748819-pat00221
And a masking addition operation algorithm for outputting the masking addition operation algorithm.

Figure 112008090748819-pat00222
Figure 112008090748819-pat00222

표 7에서, temp1은 임시 변수를 나타낸다. 단계 1과 단계 3의

Figure 112008090748819-pat00223
함수는 불대수 마스킹을 산술 마스킹으로 변환시키는 함수로 표 8과 같은 과정에 따라 동작한다.
Figure 112008090748819-pat00224
함수를 통해
Figure 112008090748819-pat00225
Figure 112008090748819-pat00226
로 변형되며, 4비트 난수
Figure 112008090748819-pat00227
을 이용하여 단계 4의 Z값은
Figure 112008090748819-pat00228
Figure 112008090748819-pat00229
이 된다. 단계 5의
Figure 112008090748819-pat00230
함수는 산술 마스킹이 적용된
Figure 112008090748819-pat00231
값을
Figure 112008090748819-pat00232
의 불대수 마스킹으로 변형시켜주는 함수로서 표 9와 같은 과정에 따라 동작한다.In Table 7, temp 1 represents a temporary variable. Steps 1 and 3
Figure 112008090748819-pat00223
Function is a function that converts algebraic masking into arithmetic masking.
Figure 112008090748819-pat00224
Through the function
Figure 112008090748819-pat00225
The
Figure 112008090748819-pat00226
And a 4-bit random number
Figure 112008090748819-pat00227
, The Z value in step 4 is
Figure 112008090748819-pat00228
Figure 112008090748819-pat00229
. Step 5
Figure 112008090748819-pat00230
The function can be used with arithmetic masking
Figure 112008090748819-pat00231
Value
Figure 112008090748819-pat00232
Which is a function that transforms the non-algebraic masking of FIG.

이와 같이, 다양한 연산이 수행되는 과정에서 불대수 마스킹과 산술 마스킹은 혼용 되어야 하는 경우에는 표 8 및 9와 같이 마스킹의 형태를 변환하는 방법이 수행되어야 한다. 또한, SEED에 마스킹 값을 그대로 유지 시켜 주기 위해서는 S박스 뒤에서, 그리고 덧셈 연산 뒤에서 각각 마스킹의 변환이 필요하다. In the case where the algebraic masking and the arithmetic masking are to be used in the process of performing various operations as described above, a method of converting the type of masking as shown in Tables 8 and 9 should be performed. In order to maintain the masking value in the SEED, it is necessary to change the masking after the S box and after the addition operation, respectively.

Figure 112008090748819-pat00233
Figure 112008090748819-pat00233

표 8에서, temp1은 임시 변수를 나타낸다. In Table 8, temp 1 represents a temporary variable.

산술에서 불대수로 마스킹을 변환하는 방법에서는 추가 연산비용이 많이 요구된다. 이러한 문제를 해결하기 위해 미리 계산된 테이블 (Pre-computation Table)을 사용할 수도 있다. The method of converting masking from arithmetic to non-algebraic requires a lot of additional computation cost. To solve this problem, a pre-computation table may be used.

Figure 112008090748819-pat00234
Figure 112008090748819-pat00234

표 9에서는, 표 6에서 생성된 변환 테이블 FT와 캐리 테이블 CT가 사용된다. 표 9에서,

Figure 112008090748819-pat00235
,
Figure 112008090748819-pat00236
는 마스킹에 의해 가려진 값을 나타낸다.In Table 9, the conversion table FT and the carry table CT generated in Table 6 are used. In Table 9,
Figure 112008090748819-pat00235
,
Figure 112008090748819-pat00236
Represents the value masked by masking.

이하에서는, 본 발명의 일 실시 예에 따른 마스킹 기법의 안전성을 증명하기 위해 메사지 (Messarges)가 제안한 전력 소비 모델 (

Figure 112008090748819-pat00237
Figure 112008090748819-pat00238
Figure 112008090748819-pat00239
)에 따라 일차 차분 전력 분석에 대한 결과를 시뮬레이션한 결과를 설명한다.Hereinafter, in order to verify the safety of the masking technique according to an embodiment of the present invention, a power consumption model proposed by Messarges
Figure 112008090748819-pat00237
Figure 112008090748819-pat00238
Figure 112008090748819-pat00239
) To simulate the results of the first-order differential power analysis.

오프셋이 10mA,

Figure 112008090748819-pat00240
이 3.72mA, 노이즈가 가우시안 (Gaussian) 정규분포를 따르며 그 분산 값이 6.7236 mA를 따른다고 가정했을 때, 마스킹 방법이 적용되지 않은 SEED는 상관계수가 0.613에 수렴하는 반면, 본 발명의 일 실시 예에 따른 마스킹 방법이 적용된 SEED는 상관계수가 0에 수렴함을 확인할 수 있다. 즉, 옳은 키에 대해 예측한 데이터의 중간 값과 전력사이의 상관성이 존재하지 않으며, 이는 본 발명의 일 실시 예에 따른 마스킹 방법이 일차 차분 전력 분석에 안전함을 의미한다.The offset is 10mA,
Figure 112008090748819-pat00240
Assuming that the noise has a Gaussian normal distribution and the variance thereof follows 6.7236 mA, the SEED in which the masking method is not applied converges to 0.613, whereas in the embodiment of the present invention The SEED with the masking method according to the present invention converges to zero. That is, there is no correlation between the median value of the data predicted for the right key and the power, which means that the masking method according to an embodiment of the present invention is safe for primary differential power analysis.

좀더 실질적인 안전성 확인을 위해, 1라운드 라운드 키인

Figure 112008090748819-pat00241
의 상위 한 바이트와
Figure 112008090748819-pat00242
의 상위 한 바이트를 추측하고 1라운드에서 처음 사용되는 G함수의 첫 S박스에 대한 일차 차분 전력 분석을 시행한 경우, 마스킹 기법이 적용되지 않은 SEED의 옳은 키에 대한 분석결과는 도 9와 같았고, 본 발명의 일 실시 예에 따른 마스킹 기법이 적용된 SEED의 옳은 키에 대한 분석결과는 도 10과 같았다.For a more practical safety check, the first round round key
Figure 112008090748819-pat00241
The upper byte of
Figure 112008090748819-pat00242
And the first difference box power analysis of the first S box of the G function used in the first round is performed. The analysis result of the correct key of the SEED in which the masking technique is not applied is shown in FIG. 9, FIG. 10 shows the result of analyzing the correct key of the SEED to which the masking technique according to an embodiment of the present invention is applied.

도 9에서 보는 바와 같이 마스킹되지 않은 SEED에 대한 일차 차분 전력 분석은 옳은 키에 대해 상관도(correlation)가 피크를 보였으며 이는 성공적으로 키를 찾을 수 있음을 의미한다. As shown in FIG. 9, the first difference power analysis for unmasked SEED shows that the correlation has a peak for the right key, which means that the key can be successfully found.

반면, 도 10과 같이 마스킹된 SEED의 경우, 중간 연산 값이 모두 랜덤한 값을 지닌 상태로 연산되므로 옳은 키에 대해서도 어떠한 연관성이 발견되지 않았다. 이는 본 발명의 일 실시 예에 따른 마스킹 기법이 일차 차분 전력 분석에 안전함을 의미한다.On the other hand, in the case of the masked SEED as shown in FIG. 10, since the intermediate calculation values are all calculated with a random value, no correlation is found with respect to the correct key. This means that the masking technique according to an embodiment of the present invention is safe for primary differential power analysis.

본 발명은 소프트웨어를 통해 실행될 수 있다. 바람직하게는, 본 발명의 일 실시 예에 따른 마스킹이 적용된 SEED를 이용한 암호화 방법을 컴퓨터에서 실행시키기 위한 프로그램을 컴퓨터로 읽을 수 있는 기록매체에 기록하여 제공할 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.The present invention can be implemented through software. Preferably, a program for causing a computer to execute an encryption method using SEED to which masking is applied according to an embodiment of the present invention may be recorded in a computer-readable recording medium and provided. When executed in software, the constituent means of the present invention are code segments that perform the necessary tasks. The program or code segments may be stored in a processor readable medium or transmitted by a computer data signal coupled with a carrier wave in a transmission medium or a communication network.

컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer readable recording medium include ROM, RAM, CD-ROM, DVD 占 ROM, DVD-RAM, magnetic tape, floppy disk, hard disk, optical data storage, and the like. In addition, the computer-readable recording medium may be distributed to network-connected computer devices so that computer-readable codes can be stored and executed in a distributed manner.

본 발명은 도면에 도시된 일 실시 예를 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시 예의 변형이 가능하다는 점을 이해할 것이다. 그리고, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made therein without departing from the scope of the present invention. It should be understood that such modifications are within the technical scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

본 발명은 암호시스템의 안전성을 보장하기 위해 기존의 암호화 기법인 SEED 알고리즘에 마스킹을 도입하는 마스킹이 적용된 SEED를 이용한 암호화 방법에 관한 것으로, 전화카드, 이동통신 보안수단, 신분증, 교통카드, 금융 IC 카드, PDA 등 스마트 카드가 적용되는 시스템, 그 밖의 보안이 필요한 정보 시스템에 적용될 수 있다.The present invention relates to an encrypting method using SEED to which masking is introduced to introduce a masking into an SEED algorithm, which is a conventional encryption scheme, to secure the security of the encryption system. The encryption method includes a telephone card, a mobile communication security means, Card, PDA, etc., and other information systems that require security.

도 1은 종래의 SEED 알고리즘의 흐름을 나타낸 것이다.Figure 1 shows the flow of a conventional SEED algorithm.

도 2는 F함수의 구조를 도시한 것이다.Fig. 2 shows the structure of the F function.

도 3은 변형된 형태의 f함수에 대해서 5 가지 형태로 DES의 라운드를 수행하는 예를 도시한 것이다.FIG. 3 shows an example of performing rounds of DES in five forms with respect to the modified f function.

도 4는 도 3과 같이 구성된 5가지의 라운드 수행의 조합을 통해서 기존의 DES 수행과 같은 결과 값을 출력하기 위한 연산 순서의 조합을 나타낸다.FIG. 4 shows a combination of operation sequences for outputting the same result as that of the conventional DES through a combination of five round operations configured as shown in FIG.

도 5는 마지막 라운드를 제외한 본 발명의 일 실시 예에 따른 라운드 함수를 도시한 것이다. FIG. 5 illustrates a round function according to an embodiment of the present invention except for the last round.

도 6은 본 발명의 일 실시 예에 따른 마지막 라운드 함수를 도시한 것이다.FIG. 6 illustrates a final round function according to an embodiment of the present invention.

도 7은 본 발명의 일 실시 예에 따라 수정된 F함수의 예를 도시한 것이다.Figure 7 illustrates an example of a modified F-function according to an embodiment of the present invention.

도 8은 본 발명의 일 실시 예에 따라 수정된 G함수의 예를 도시한 것이다.FIG. 8 shows an example of a modified G function according to an embodiment of the present invention.

도 9는 마스킹 기법이 적용되지 않은 SEED의 옳은 키에 대한 상관도 분석결과를 도시한 것이다.FIG. 9 shows a correlation analysis result of the correct key of the SEED to which the masking technique is not applied.

도 10은 본 발명의 일 실시 예에 따른 마스킹 기법이 적용된 SEED의 옳은 키에 대한 상관도 분석결과를 도시한 것이다.FIG. 10 shows a correlation analysis result of the correct key of the SEED to which the masking technique is applied according to an embodiment of the present invention.

Claims (11)

매 라운드마다 해당 라운드의 라운드 키로 암호화된 오른쪽 입력을 해당 라운드의 왼쪽 입력과 배타적 논리합 (XOR) 연산하는, 페이스텔 구조의 SEED 알고리즘을 이용하는 암호화 방법에 있어서,The encryption method using an SEED algorithm of a pastel structure for performing an XOR operation on a right input encrypted with a round key of the round for each round with the left input of the round, 입력 평문을 제1 난수로 마스킹하는 단계; 및Masking the input plaintext with a first random number; And 상기 마스킹된 입력 평문을 최초 입력으로 하여, 매 라운드마다 해당 라운드의 라운드키를 제2 난수로 마스킹한 후, 각 라운드의 입력값 중 오른쪽 입력을 상기 마스킹된 라운드 키로 암호화하는 단계Masking the round key of the round with a second random number for each round with the masked input plaintext as an initial input and then encrypting the right input of each round with the masked round key 를 포함하는, 마스킹이 적용된 SEED를 이용한 암호화 방법.And encrypting the encrypted data using the masked SEED. 제 1 항에 있어서,The method according to claim 1, 매 라운드마다 상기 암호화된 오른쪽 입력과 상기 왼쪽 입력을 XOR 연산한 후 제3 난수로 마스킹하고 상기 오른쪽 입력을 제4 난수로 마스킹하여, 각 라운드의 마스킹 값을 동일하게 유지하는 단계를 더 포함하는 것을 특징으로 하는, 마스킹이 적용된 SEED를 이용한 암호화 방법.Further comprising the step of: XORing the encrypted right input and the left input every round and then masking the right input with a third random number, and masking the right input with a fourth random number to keep the masking values of the rounds the same Encryption method using SEED with masking. 제 1 항에 있어서,The method according to claim 1, 마지막 라운드에서 오른쪽 입력과 왼쪽 입력의 마스킹을 제거하는 단계를 더 포함하는 것을 특징으로 하는, 마스킹이 적용된 SEED를 이용한 암호화 방법.Further comprising the step of removing masking of the right input and the left input in the last round. 제 1 항에 있어서,The method according to claim 1, 상기 암호화하는 단계는,Wherein the encrypting comprises: 매 라운드마다 각 라운드의 입력값 중 오른쪽 입력을 상기 마스킹된 라운드 키로 암호화하는 수정된 F함수를 적용하는 단계를 포함하는, 마스킹이 적용된 SEED를 이용한 암호화 방법.Applying a modified F function that encrypts the right input of each round's input with the masked round key every round. 제 4 항에 있어서,5. The method of claim 4, 상기 수정된 F함수를 적용하는 단계는,Wherein applying the modified F function comprises: 상기 오른쪽 입력의 마스킹을 유지시키는 마스킹 S박스를 포함하는 수정된 G함수와 마스킹을 유지시키는 마스킹 덧셈 연산을 적용하는 단계를 포함하는 것을 특징으로 하는, 마스킹이 적용된 SEED를 이용한 암호화 방법.Applying a masking addition operation to maintain a masking with a modified G function comprising a masking S box maintaining the masking of the right input. 제 4 항에 있어서,5. The method of claim 4, 상기 수정된 F함수를 적용하는 단계는,Wherein applying the modified F function comprises: 상기 오른쪽 입력을 구성하는 제1입력과 제2입력을 마스킹하는 단계;Masking a first input and a second input constituting the right input; 상기 마스킹된 제1입력과 제2입력을 XOR 연산한 후 마스킹을 유지시키는 마스킹 S박스를 포함하는 수정된 G함수를 적용하여 제1값을 출력하는 단계;Outputting a first value by applying a modified G function including a masking S box that XORs the masked first and second inputs and then maintains masking; 상기 제1값을 상기 마스킹된 제1입력과 마스킹 덧셈하고, 상기 마스킹 덧셈의 결과에 수정된 G함수를 적용하여 제2값을 출력하는 단계;Masking the first value with the masked first input and applying a modified G function to the result of the masking addition to output a second value; 상기 제2값과 상기 제1값을 마스킹 덧셈하고, 상기 마스킹 덧셈의 결과에 수정된 G함수를 적용하여 제3값을 출력하는 단계;Masking the second value and the first value, and applying a modified G function to the result of the masking addition to output a third value; 상기 제2값과 상기 제3값을 마스킹 덧셈하는 단계Masking &lt; / RTI &gt; the second value with the third value 를 포함하는, 마스킹이 적용된 SEED를 이용한 암호화 방법.And encrypting the encrypted data using the masked SEED. 제 5 항 또는 제 6 항 중 어느 한 항에 있어서,7. The method according to any one of claims 5 to 6, 상기 마스킹 덧셈 연산은,Wherein the masking addition operation comprises: 불대수 마스킹을 산술 마스킹으로 변환하는 함수 및 산술 마스킹을 불대수 마스킹으로 변환하는 함수가 적용되는 것을 특징으로 하는, 마스킹이 적용된 SEED를 이용한 암호화 방법.A function for converting the algebraic masking into arithmetic masking, and a function for converting the arithmetic masking into the algebraic masking. 매 라운드마다 해당 라운드의 라운드 키로 암호화된 오른쪽 입력을 해당 라운드의 왼쪽 입력과 배타적 논리합 (XOR) 연산하는, 페이스텔 구조의 SEED 알고리즘을 이용하는 암호화 방법에 있어서,The encryption method using an SEED algorithm of a pastel structure for performing an XOR operation on a right input encrypted with a round key of the round for each round with the left input of the round, 128비트의 입력 평문을 마스킹하는 단계;Masking an input plaintext of 128 bits; 상기 마스킹된 입력 평문을 최초 입력으로 하여, 매 라운드마다 해당 라운드의 라운드키를 마스킹한 후, 각 라운드의 입력값 중 최상위 64비트의 오른쪽 입력을 상기 마스킹된 라운드 키로 암호화하는 단계; 및Masking the round key of the round for each round with the masked input plaintext as an initial input and encrypting the rightmost 64 bits of the input value of each round with the masked round key; And 마지막 라운드에서 최상위 64 비트의 오른쪽 입력과 최하위 64비트의 왼쪽 입력의 마스킹을 제거하는 단계Steps to remove the masking of the rightmost 64 bits of the left input and the least significant 64 bits of the left input in the last round 를 포함하는, 마스킹이 적용된 SEED를 이용한 암호화 방법.And encrypting the encrypted data using the masked SEED. 제 8 항에 있어서,9. The method of claim 8, 상기 암호화하는 단계The encrypting step 상기 오른쪽 입력의 마스킹을 유지시키는 마스킹 S박스를 포함하는 수정된 G함수와 마스킹을 유지시키는 마스킹 덧셈 연산을 적용하는 단계를 포함하는, 마스킹이 적용된 SEED를 이용한 암호화 방법.Applying a masking addition operation to maintain a masking with a modified G function including a masking S box that maintains masking of the right input. 제 9 항에 있어서,10. The method of claim 9, 상기 마스킹 덧셈 연산은,Wherein the masking addition operation comprises: 4비트에 대한 산술 대 불대수 마스킹 변환 테이블 (FT)와 캐리 테이블 (CT)를 사용하는 마스킹 변환 함수를 적용하는 것을 특징으로 하는, 마스킹이 적용된 SEED를 이용한 암호화 방법.Wherein a masking conversion function using an arithmetic-to-non-algebraic masking conversion table (FT) and a carry table (CT) for 4 bits is applied. 제1항 내지 제6항, 제8항 내지 제10항 중 어느 한 항에 따른 암호화 방법을 컴퓨터 시스템에서 실행하기 위한 프로그램이 기록된 기록매체로서, 상기 컴퓨터 시스템이 판독할 수 있는 상기 기록매체.A recording medium on which a program for executing an encryption method according to any one of claims 1 to 6 and 8 to 10 in a computer system is recorded, the recording medium being readable by the computer system.
KR1020080137471A 2008-12-30 2008-12-30 Method for encrypting with SEED applying mask KR101506499B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080137471A KR101506499B1 (en) 2008-12-30 2008-12-30 Method for encrypting with SEED applying mask

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080137471A KR101506499B1 (en) 2008-12-30 2008-12-30 Method for encrypting with SEED applying mask

Publications (2)

Publication Number Publication Date
KR20100079060A KR20100079060A (en) 2010-07-08
KR101506499B1 true KR101506499B1 (en) 2015-03-31

Family

ID=42640211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080137471A KR101506499B1 (en) 2008-12-30 2008-12-30 Method for encrypting with SEED applying mask

Country Status (1)

Country Link
KR (1) KR101506499B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230103271A (en) 2021-12-31 2023-07-07 호서대학교 산학협력단 Masking method on block cipher PIPO to resist side channel attacks

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101586811B1 (en) * 2015-03-31 2016-01-19 국민대학교산학협력단 Apparatus and method for protecting side channel attacks on hight
KR102109895B1 (en) * 2018-10-12 2020-05-12 유비벨록스(주) Block Encryption Method
KR102109902B1 (en) * 2018-10-12 2020-05-12 유비벨록스(주) Block Encryption Method
KR102192055B1 (en) * 2018-12-04 2020-12-16 고려대학교 산학협력단 Method of switching arithmetic to boolean masking, computer readable medium for performing the method
KR102169369B1 (en) * 2019-10-31 2020-10-23 국민대학교산학협력단 Countermeasure method of first-order side-channel attack on lightweight block cipher and apparatus using the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007073012A (en) 2005-09-09 2007-03-22 Iwate Univ Random number generation system
JP2007189659A (en) 2005-12-15 2007-07-26 Toshiba Corp Encryption device, encryption method, and encryption program
KR100834096B1 (en) 2007-05-11 2008-06-02 한국전자통신연구원 Aria encryption method for countermeasuring higher order dpa

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007073012A (en) 2005-09-09 2007-03-22 Iwate Univ Random number generation system
JP2007189659A (en) 2005-12-15 2007-07-26 Toshiba Corp Encryption device, encryption method, and encryption program
KR100834096B1 (en) 2007-05-11 2008-06-02 한국전자통신연구원 Aria encryption method for countermeasuring higher order dpa

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230103271A (en) 2021-12-31 2023-07-07 호서대학교 산학협력단 Masking method on block cipher PIPO to resist side channel attacks

Also Published As

Publication number Publication date
KR20100079060A (en) 2010-07-08

Similar Documents

Publication Publication Date Title
CN100511331C (en) Encryption device, encryption method, and computer program thereof
JP5229315B2 (en) Encryption device and built-in device equipped with a common key encryption function
US8971526B2 (en) Method of counter-measuring against side-channel attacks
US7899190B2 (en) Security countermeasures for power analysis attacks
RU2502201C2 (en) Encryption/decryption device, encryption/decryption method, information processing device and computer programme
RU2357365C2 (en) Method and device for carrying out cryptographic computation
JP5711681B2 (en) Cryptographic processing device
US20120170739A1 (en) Method of diversification of a round function of an encryption algorithm
US20110013767A1 (en) Masking method of defending differential power analysis attack in seed encryption algorithm
Lee et al. A masked white-box cryptographic implementation for protecting against differential computation analysis
Jaffe A first-order DPA attack against AES in counter mode with unknown initial counter
JP2005215688A (en) Hardware encryption/decryption apparatus using s-box operation, and method for the same
EP3477889B1 (en) Using white-box in a leakage-resilient primitive
KR101506499B1 (en) Method for encrypting with SEED applying mask
CN111066077B (en) Encryption device, encryption method, decryption device, and decryption method
KR100834096B1 (en) Aria encryption method for countermeasuring higher order dpa
KR100991713B1 (en) Apparatus and method for operating inversion of AES with masking method, and AES cipher system and method using thereof
RU2141729C1 (en) Method for encrypting of binary data units
RU2188513C2 (en) Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks
JP5500277B2 (en) Encryption device and built-in device equipped with a common key encryption function
Silva-Garcia et al. The triple-DES-96 cryptographic system
EP2293488B1 (en) Method for cryptographic processing of data units
Lin et al. A DCA-resistant Implementation of SM4 for the White-box Context
KR20240046850A (en) Encryption processing apparatus, encryption processing method for encryption processing apparatus, and storage medium
JP6371197B2 (en) Cryptographic processing device

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
FPAY Annual fee payment

Payment date: 20180108

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190423

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200128

Year of fee payment: 6