KR101506499B1 - Method for encrypting with SEED applying mask - Google Patents
Method for encrypting with SEED applying mask Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/043—Masking or blinding of tables, e.g. lookup, substitution or mapping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key 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 알고리즘에 마스킹을 도입하는 마스킹이 적용된 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을 이용하여 의 암호문 을 구한 후, 최종적으로 y를 얻기 위해 의 연산을 수행한다. 물론, 경우에 따라 마스킹 기법은 다르게 구성될 수도 있다. 따라서 암호화 과정에서 중간 값을 알 수 없기 때문에 일반적인 전력 분석 공격은 성공할 수 없다.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, Ciphertext And finally, to obtain y . 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.
이러한 마스킹 기법을 사용한 경우, 의 암호문 에서 m'을 알아야 실제 원하는 암호문 y를 얻을 수 있다. 하지만 블록암호 알고리즘은 비선형 연산을 수행하므로 수정되지 않은 블록 암호 시스템에서 m'값은 x에 따라 다르며 이 값을 중간 값의 누출 없이 아는 것도 상당한 연산을 필요로 한다. 따라서 마스킹 대응법은 이 비선형 연산에 대한 고려가 불가피하다. When such a masking technique is used, Ciphertext 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.
이하에서, 는 'a'와 'b'의 배타적 논리합 (Exclusive-Or) 비트 연산이고, 는 이다. 는 'a'와 'b'의 논리곱 (AND) 비트 연산이다. 또한, 는 X를 s비트 만큼 왼쪽으로 순환 이동하는 연산이고, 는 X를 s비트 만큼 오른쪽으로 순환 이동하는 연산이다. Li는 i라운드에서 출력된 왼쪽 메시지 블록(상위 64 비트)이고, Ri는 i라운드에서 출력된 오른쪽 메시지 블록(하위 64 비트)이다. 특히, L0는 입력비트의 상위 64비트를 나타내고, R0는 입력비트의 하위 64비트를 나타낸다.Hereinafter, Is an Exclusive-Or bit operation between 'a' and 'b' The to be. Is an AND bit operation between 'a' and 'b'. Also, Is an operation of cyclically moving X to the left by s bits, 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비트 평문 블록 가 r라운드를 거쳐 암호문 으로 변환되는 반복 구조이다. 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 R round Cipher text . ≪ / 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개 를 입력으로 받아 32비트 블록 2개 를 출력한다. 여기서, F함수의 입력 중 상위 32비트를 C로 나타내고, 하위 32비트를 D로 나타낸다. 암호화 과정에서 64비트 블록 와 64비트 라운드 키 를 F함수의 입력으로 처리하여 64비트 블록 을 출력한다. 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 2 blocks of 32 bits . 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, And 64-bit round keys As an input of the F function, .
다음은 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).
여기서, X는 G함수의 입력 값(32 비트)으로서 이고, Y는 G함수에서 S박스 (S-box) 의 출력 값(32 비트)으로서 이며, Z는 G함수의 출력 값(32 비트)으로서 이다. mi는 상수이다. 또한, '||' 는 둘 이상의 비트들을 연속하여 배치하는 연쇄(concatenation)를 나타낸다.Here, X is an input value (32 bits) of the G function Y is the S-box in the G function, As the output value (32 bits) , And Z is the output value (32 bits) of the G function to be. m i is a constant. Also, '||' Represents a concatenation in which two or more bits are arranged in succession.
다음은 S박스에 대해 설명한다. G함수의 내부에 사용되는 비선형 S박스 는 수학식 2를 이용하여 생성된다.The following describes the S box. Nonlinear S-boxes used inside G functions Is generated using Equation (2).
여기서, 행렬 A(i)는 수학식 3과 같이 표현될 수 있다.Here, the matrix A (i) can be expressed by Equation (3).
한편, 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에 사용되는 라운드 키 는 표 1과 같이 생성한다.Round key used for each round i Are generated as shown in Table 1.
위 알고리즘에서 사용되는 라운드 상수는 표 2와 같다.Table 2 shows the rounding constants used in the above algorithm.
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에 의해서 , 등의 형태로 숨기는 방법이며 이는 마스킹 기법을 사용 했을 경우 중간의 전력을 얻게 되어도 본 연산의 중간 값 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 , 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.
불대수 마스킹의 예는 수학식 5와 같다. 여기서, x'은 마스킹 출력값이다.An example of non-algebraic masking is shown in Equation (5). Here, x 'is the masking output value.
블록 암호에 대한 마스킹 기법은 중간 연산 결과 값을 랜덤하게 만들어 일차 차분 전력 분석에 안전하게 한다. 연산의 효율성을 위해 블록 암호의 전체 라운드 가 아닌 첫 라운드와 마지막 라운드만을 마스킹 하는 방법이 제안되기도 하였다. 하지만 이 방법은 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) , 덧셈 (Addition) , 에 대한 다항식 곱셈 (Polynomial Multiplication over ), 비트의 퍼뮤테이션 (Bitwise Permutation), 선형변환 (Linear Transformation) 등의 연산들에 대해 입력 값 및 중간 계산 값을 숨기기 위해서 상술한 불대수 마스킹과 산술 마스킹을 사용한다. 두 가지의 마스킹 기법을 사용하여 위의 연산들에 대한 부채널 공격의 대응방법을 구성한다. Table Lookup, Bitwise Boolean, Shift / Rotation, Multiplication, Addition, , Polynomial Multiplication over ), 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에 대해서 연산을 수행하기 전에 을 통해서 한 번의 랜덤화를 수행하고, 테이블 룩업 연산 수행 이후에 을 이용해서 두 번째 랜덤화를 수행한다. 랜덤화를 수행하는 계산식은 수학식 6과 같다. First, when performing a lookup table operation, it is necessary to perform an operation on the input value x A randomization is performed once, and after the table look-up operation is performed The second randomization is performed. The equation for performing the randomization is shown in Equation (6).
는 x에 대한 테이블 룩업 연산을 의미한다. 마스킹을 수행하도록 설계된 은 마스킹된 값을 입력 값으로 받아서 마스킹된 결과 값을 출력한다. 즉 은 으로 마스킹된 입력 값에 대해 으로 마스킹된 결과 값을 출력한다. Means a table lookup operation on x. Designed to perform masking Receives the masked value as an input value, and outputs the masked result value. In other words silver For input values masked by And outputs the masked result value.
두 번째로, 불대수 연산이다. 불대수 연산 중 암호 수행 시에 자주 사용은 XOR와 AND이다. 입력 값에 대한 마스킹 연산을 수행하면서 정확한 마스킹 값을 계산해서 유지 하는 것이 가장 중요하다. 마스킹된 두 값에 대해 XOR 연산이 수행될 경우 다음과 같이 마스킹 값이 적용될 수 있다. 두 입력 값 에 대한 마스킹 값을 각각 라고 할 때 마스킹이 씌워진 값을 와 라고 가정하면, 마스킹이 씌워진 결과 값 이고, 마스킹 값 이다. 또한 AND 연산에 대해서는 다음과 같이 마스킹이 적용될 수 있다. 이 경우에도 XOR에서 정의한 것과 마찬가지로 두 입력 값 에 대해서 마스킹이 적용될 값을 각각 , 마스킹이 씌 워진 값을 와 라고 가정하면, 마스킹이 씌워진 결과 값 이고, 마스킹 값 이다. 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 Lt; RTI ID = 0.0 > The masked value Wow , The resultant masked value And the masking value to be. Masking can also be applied to the AND operation as follows. In this case as well, as defined by the XOR, Lt; RTI ID = 0.0 > Masking < / RTI & , The masked value Wow , The resultant masked value And the masking value 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비트의 시프트나 로테이션 연산이 수행되는 경우, 는 x에 대해서 의 마스킹 값을 사용하여 마스킹된 값이라 하면 에 대해서 n비트의 시프트나 로테이션이 수행되었을 때 그 값에 해당하는 마스킹 값은 다음과 같이 계산된다. 즉, 시프트나 로테이션이 수행된 입력 값 일때, 에 해당되는 마스크 값은 이다. 데이터에 의존해서 시프트나 로테이션이 수행되는 경우에는 다음과 같은 방법으로 시프트나 로테이션의 횟수도 랜덤하게 생성할 수 있다. 즉, 시프트나 로테이션이 수행된 입력 값이 일때, 에 해당되는 마스크 값은 이다.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, About x If the value is masked using the masking value of 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 when, The mask value for 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 when, The mask value for to be.
네 번째로, 덧셈 또는 곱셈이 수행되는 경우에 대해 설명한다. 에서의 산술연산의 경우에는 산술 마스킹 방법을 사용한다. 두 데이터 에 대한 마스킹 값을 각각 , 의 마스킹된 값을 라고 가정하면, 두 값의 산술연산 + 및 ×에 대한 연산 결과의 변환된 마스킹 값들은 다음과 같이 정리 된다. 즉, + 에 대 한 연산 결과는 이고, + 에 대한 연산 마스킹 값은 이다. 또한, ×에 대한 연산 결과는 이고, ×에 대한 연산 마스킹 값 이다.Fourth, the case where addition or multiplication is performed will be described. The arithmetic masking method is used. Two data Lt; RTI ID = 0.0 > , The masked value of , 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 + , And the operation masking value for + to be. Also, the calculation result for X is , And an operation masking value for X to be.
다섯 번째로, 다항식 곱셈에 대해 설명한다. 불대수 마스킹 방법이 적용되어 있는 값에 대해서 다항식 곱셈을 수행할 때 마스킹 값을 변환하는 여러 가지 방식이 있다. 연산의 결과를 테이블에 저장해서 사용하는 경우에는 마스킹 테이블 룩업 방식을 적용하면 된다. 또한 에서는 데이터에 를 XOR 연산으로 마스킹 하는 것이 산술 마스킹 방법에서 를 더해주는 것과 같은 결과를 낳기 때문에 산술 마스킹 방법을 적용할 수 있다.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 In the data Is masked by an XOR operation in an arithmetic masking method The arithmetic masking method can be applied.
여섯 번째로, 비트 퍼뮤테이션에 대해 설명한다. 데이터 x에 대한 마스킹 값을 라고 할 때 x의 마스킹된 값을 이라 하자. 이 경우, 퍼뮤테이션 연산이 로 수행되었을 때 마스킹 값 또한 로 계산된다.Sixth, the bit permutation will be described. The masking value for data x The masked value of x is . In this case, the permutation operation The masking value is also < RTI ID = 0.0 > .
일곱 번째로, 선형변환의 경우에는 퍼뮤테이션에서 사용했던 것과 같은 방법으로 랜덤 마스킹 값을 변환할 수 있다. 데이터 x에 대한 마스킹 값은 , x의 마스킹된 값을 라고 하자. 선형변환을 라고 할 때, 에 대한 마스킹 값은 로 계산된다.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 , the masked value of x Let's say. Linear transformation When you say, The masking value for .
이러한 방법으로 알고리즘을 구현하면, 연산을 수행하는 과정과 랜덤한 마스 킹 값을 유지하는 과정이 필요하므로, 일반 알고리즘에 비해 추가적인 연산비용이 소모된다. 또한 테이블 룩업을 수행하는 경우 테이블을 생성하는 부분, 불대수 마스킹과 산술 마스킹의 변환이 이루어지는 부분 등에서도 추가적인 비용이 발생한다. 이러한 추가적인 비용은 테이블의 크기와 마스킹의 변환이 이루어지는 빈도에 따라 좌우된다.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).
여기서, E는 확장 퍼뮤테이션 (expansion permutation)이고, 는 S박스에서의 역 퍼뮤테이션 (inverse permutation)이다.Where E is the expansion permutation, Is the inverse permutation in the S box.
는 DES에서 라는 키를 사용해서 수행되는 f함수라고 하고, 와 는 라는 키와 와 를 S박스로 사용해서 구현되는 f함수라고 하자. 3개의 f중에서 는 마스킹 값이 있는 데이터를 마스킹 값이 없는 데이터로 변환하고, 는 마스킹 값이 없는 데이터를 마스킹 값이 있는 데이터로 변환한다. From DES This is called the f function, Wow The The key Wow Let's say that f is a function implemented using S box. Of the three f Converts the data having the masking value into data having no masking value, 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에 안전한 것으로 분석되고 있다. 그리고 첫 번째 라운드와 마지막 라운드가 같은 마스크 로 마스킹 되어있는 것에 의해서 발생할 수 있는 문제를 막기 위해서 수학식 8의 조합으로 수행하는 것을 제안하고 있다.Unique masking methods have been analyzed as being safe for DPA. And the first round and the last round are the same mask 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 >
유니크 마스킹 방법은 DES의 연산구조를 그대로 사용할 수 있다는 장점이 있다. The unique masking method has an advantage that the operation structure of DES can be used as it is.
마스킹 방법은 블록 알고리즘에 따라 설계 방법이 달라질 수 있으며 그 설계 방법에 따라 마스킹 보정작업, 추가적인 테이블 크기가 결정된다. 또한 다른 블록 암호와 달리 SEED는 S박스와 법 (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, (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는 로서, x를 y번 연쇄(concatenation)시킨 것을 나타낸다. 또한, a<<b는 a에 대한 b비트 왼쪽 시프트 (left-shift) 연산을 나타내고, a>>b는 a에 대한 b비트 오른쪽 시프트 (right-shift) 연산을 나타낸다. 그리고, +n은 법 에 대한 덧셈 연산을 나타내고, -n은 법 에 대한 뺄셈 연산을 나타낸다.Hereinafter, (x) y is , 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 , - n represents the addition ≪ / RTI >
본 발명의 일 실시 예에 따른 마스킹 방법의 전체 흐름은 다음과 같다.The overall flow of the masking method according to one embodiment of the present invention is as follows.
먼저, 두 개의 8 비트 마스킹 난수 을 생성 후, 을 계산한다. First, two 8-bit masking random numbers And then, .
다음, S박스 , 에 대하여 두 개의 마스킹 S박스 , 를 표 5의 알고리즘에 따라 생성한다. 다음, 4 비트 난수 , , 를 생성하고 , 를 표 6의 알고리즘에 따라 생성한다. 또한 32비트 난수 를 생성한다.Next, S box , Two masking S boxes , Are generated according to the algorithm of Table 5. Next, a 4-bit random number , , And , Are generated according to the algorithm of Table 6. In addition, .
한편, 키 스케쥴링 과정에서 라운드 키 을 로, 을 로 마스킹 되도록 조정한다.Meanwhile, in the key scheduling process, of in, of As shown in FIG.
다음, 입력 평문 16 바이트를 으로 마스킹한다. 그리고, 두 번째 라운드부터 각 라운드 연산 전에 를 과 XOR 연산하고, 를 과 XOR 연산한다. 각 라운드 연산은 도 8의 본 발명의 일 실시 예에 따라 수정된 G함수와 표 6의 수정된 덧셈연산을 이용한다.Next, input 16 bytes of plain text Lt; / RTI > From the second round, before each round operation To Lt; / RTI > To Lt; / RTI > 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 바이트 마스킹 값 을 벗겨낸다.Finally, the 16-byte masking value of the output plaintext .
위의 순서에 따른 본 발명의 일 실시 예에 따른 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비트의 평문이 로 마스킹된 후, 도 5 및 6 에서 보는 바와 같이, 각 라운드의 128 비트 입력 값은 로 마스킹이 유지된다. 입력 값 128비트 중 으로 마스킹 된 하위 64 비트는 본 발명의 일 실시 예에 따라 수정된 F함수의 입력 값으로 들어가며, 으로 마스킹 되어 출력된다.In the above process, the first 128-bit plaintext As shown in Figures 5 and 6, the 128 bit input value of each round is < RTI ID = 0.0 > Masking is maintained. Input value is 128 bits The lower 64 bits masked into the input of the modified F function according to an embodiment of the present invention, And is output.
64비트의 F함수 출력 값은 라운드 입력의 상위 64비트 입력 값과 XOR연산을 수행한 후, 다음 라운드의 하위 64비트 입력 값이 된다. 두 값을 XOR 하였을 경우, 중간 값에 대한 마스킹 값은 로 변형된다.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 .
그리고, 도 5에서와 같이 과 XOR되면 다음 라운드의 하위 64비트 입력 값은 로 마스킹 값이 변형된다. 또한 다음 라운드의 상위 64비트 입력 값은 이전 라운드의 하위 64비트의 값에 을 XOR한 값으로 으로 마스킹 값이 변형된다. 즉, 다음 라운드 함수의 입력 값 128비트 또한 으로 선택되며, 이 마스킹 값은 본 발명의 일 실시 예에서 동일하게 유지된다. 5, , The lower 64-bit input value of the next round is 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 To the value obtained by XOR The masking value is modified. That is, the input value 128 bits of the next round function also 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.
연산
S box
calculate
Print
DES 알고리즘의 입력 값을 평문에 마스킹 방법을 사용한 라 가정 하면 알고리즘을 수행 했을 때 출력 값이 의 형태로 되어 마스킹을 연산으로 벗겨내어 올바른 형태의 가 되어야 한다.The input value of the DES algorithm is masked using the plaintext Assuming that the output value is Masking in the form of To strip out the correct form .
하지만 DES 알고리즘에서는 S박스를 사용하는 비선형적인 연산이 포함 되어 있기 때문에 실질적으로 의 형태로 출력되지 않는다. However, since the DES algorithm includes non-linear operations using S-boxes, . ≪ / RTI >
DES 알고리즘에서 입력 값을 로 수행했을 경우 S박스에서 일어나는 연산을 살펴보면 의 형태로 표 3과 같은 연산이 수행이 되며, 표 4와 같은 연산과정으로 나타낼 수 있다.In the DES algorithm, If you look at the operations that occur in S box The operation is performed as shown in Table 3, and it can be represented by the calculation process as shown in Table 4. [
연산
S box
calculate
Print
따라서 마스킹 방법이 사용된 이후의 S박스의 출력 값은 표 3에서와 같은 가 선택 되어서 출력되는 것이 아니라 [표2]에서의 ,와 같이 마스킹이 씌워진 값이 선택 되어 출력된다. Therefore, the output values of the S box after the masking method is used are shown in Table 3 Is not selected and output, but the output of [Table 2] , The masked value is selected and output.
즉, 이 아니라 의 형태로 나오게 되어 원래의 값과 전혀 다른 값이 출력 되게 된다. In other words, Not 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.
SEED의 S박스에 대한 마스킹 S박스 생성 알고리즘의 예는 표 5와 같다. Table 5 shows an example of masking S box generation algorithm for S box of SEED.
표 5의 알고리즘은 두 S박스 에 대하여 으로 마스킹 된 x값이 입력되었을 때, 으로 마스킹 된 의 값을 출력하는 테이블을 생성한다. 이 마스킹 S박스 , 는 F함수의 G함수에서 대신에 사용되며, 이 두 마스킹 S박스의 사용을 위해서 , 의 입력 값은 반드시 으로 마스킹 되도록 전체 구조를 설계해야만 한다.The algorithm in Table 5 is based on two S boxes about When the masked x value is input, Masked with To generate a table to output the value of This masking S box , In the G function of the F function It is used instead, and for the use of these two masking S boxes , The input value of The entire structure must be designed to be masked.
SEED의 비선형 연산인 덧셈 연산은 법 232에 대한 덧셈 연산을 사용한다. 따라서 본 발명의 일 실시 예에 따른 마스킹 기법은 법 232의 덧셈 연산의 마스킹 방법을 고려한다. 법 232의 덧셈 연산의 마스킹 변환 테이블을 사용할 경우 테이블의 크기가 너무 커서 실제로 사용할 수 없다. 이러한 문제는 작은 비트에 대한 마스킹 변환 테이블과 캐리 테이블을 이용하여 해결해야만 한다. 본 발명의 일 실시 예에 따른 마스킹 기법에서는 마스킹 변환 테이블과 캐리 테이블의 크기를 4비트 16개의 원소를 지니는 것으로 선택하여 사용한다. 이 값은 실험적으로 가장 효율적인 사이즈를 선택한 것이지만, 본 발명의 내용이 여기에 한정되지 않는다. 다음 알고리즘은 4비트에 대한 산술에서 불대수 마스킹으로 변환하는 테이블 와 캐리 테이블 의 생성 알고리즘이다.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 And carry table .
테이블은 4비트 난수 , 를 이용, 입력 값 에 대해 를 출력한다. 또한 테이블은 이 16보다 크거나 같을 경우, 즉, 이 보다 작은 경우, 캐리 값을 설정하기 위한 것이다. 이 테이블은 캐리 값이 설정된 경우 1, 설정되지 않는 경우 0값을 얻기 위함이지만, 작은 값에 대해 캐리 값이 1, 큰 값에 대해 캐리 값이 0이 될 확률이 높은 취약점을 방지하기 위해 새로운 4비트 난수 를 이용하며, 실제 본 연산에서는 4비트의 난수 를 다시 빼주는 방법을 사용할 수도 있다. The table is a 4-bit random number , , The input value About . Also The table Is greater than or equal to 16, i.e., this , 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 In actual operation, a 4-bit random number You can also use a method to re-subtract.
본 발명의 일 실시 예에 따라 수정된 F함수에서 입력 값은 으로 마스킹 된 값이며, 출력 값은 으로 마스킹 되어 출력된다. In an F function modified according to an embodiment of the present invention, And the output value is < RTI ID = 0.0 > 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)은 으로 마스킹된 입력 값에 대해 으로 마스킹 된 값을 출력한다. 그리고, 본 발명의 일 실시 예에 따른 마스킹 덧셈(MA, Masking Addition)은 두 입력 값 , 에 대해 을 출력한다. 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) For input values masked by 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 , About .
도 8은 본 발명의 일 실시 예에 따라 수정된 G함수를 도시한 것이다. Figure 8 illustrates a modified G function according to an embodiment of the present invention.
도 8의 32비트 입력 값은 으로 마스킹되어 있으며, 마스킹 S박스 (MS1, MS2)를 거친 후, 으로 마스킹 된다. 마스킹 S박스 각각의 출력 값은 수학식 10의 연산을 통해 32비트 출력 값을 결정한다.The 32-bit input value of Figure 8 And after passing through the masking S boxes MS 1 and MS 2 , Lt; / RTI > The output value of each masking S box determines the 32-bit output value through the operation of Equation (10).
4바이트의 출력 값에서 각 바이트의 마스킹 값은 이 되며 이 값을 정리하면 이 된다. 은 G함수의 고정된 상수 값으로 0xff 값이다. 따라서, 본 발명의 일 실시 예에 따라 수정된 G함수의 출력 바이트에 대한 마스킹 값은 이 된다.The masking value for each byte in the 4-byte output value is And summing up these values . 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 .
본 발명의 일 실시 예에 따른 마스킹 방법은 F함수에서 사용되는 모든 마스킹 덧셈 연산의 32 비트 입력 값이 으로 마스킹하며, 덧셈 연산 후에 마스킹 값이 이 되게 한다. 즉, 마스킹 덧셈 연산의 32 비트의 두 입력값 에 대하여 을 출력하는 마스킹 덧셈 연산을 수행해야만 한다. 이때, 입출력 마스킹 값은 마스킹 방법의 효율성을 결정하는 마스킹 보정작업을 최소화하기 위해 선택된다.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 , And after the addition operation, the masking value is . That is, two input values of 32 bits of the masking addition operation about 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 비트의 두 입력값 에 대하여 을 출력하는 마스킹 덧셈 연산 알고리즘이다. Using the masking values thus selected, Table 7 shows that two input values of 32 bits about And a masking addition operation algorithm for outputting the masking addition operation algorithm.
표 7에서, temp1은 임시 변수를 나타낸다. 단계 1과 단계 3의 함수는 불대수 마스킹을 산술 마스킹으로 변환시키는 함수로 표 8과 같은 과정에 따라 동작한다. 함수를 통해 는 로 변형되며, 4비트 난수 을 이용하여 단계 4의 Z값은 이 된다. 단계 5의 함수는 산술 마스킹이 적용된 값을 의 불대수 마스킹으로 변형시켜주는 함수로서 표 9와 같은 과정에 따라 동작한다.In Table 7, temp 1 represents a temporary variable. Steps 1 and 3 Function is a function that converts algebraic masking into arithmetic masking. Through the function The And a 4-bit random number , The Z value in
이와 같이, 다양한 연산이 수행되는 과정에서 불대수 마스킹과 산술 마스킹은 혼용 되어야 하는 경우에는 표 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.
표 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.
표 9에서는, 표 6에서 생성된 변환 테이블 FT와 캐리 테이블 CT가 사용된다. 표 9에서, , 는 마스킹에 의해 가려진 값을 나타낸다.In Table 9, the conversion table FT and the carry table CT generated in Table 6 are used. In Table 9, , Represents the value masked by masking.
이하에서는, 본 발명의 일 실시 예에 따른 마스킹 기법의 안전성을 증명하기 위해 메사지 (Messarges)가 제안한 전력 소비 모델 ( )에 따라 일차 차분 전력 분석에 대한 결과를 시뮬레이션한 결과를 설명한다.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 ) To simulate the results of the first-order differential power analysis.
오프셋이 10mA, 이 3.72mA, 노이즈가 가우시안 (Gaussian) 정규분포를 따르며 그 분산 값이 6.7236 mA를 따른다고 가정했을 때, 마스킹 방법이 적용되지 않은 SEED는 상관계수가 0.613에 수렴하는 반면, 본 발명의 일 실시 예에 따른 마스킹 방법이 적용된 SEED는 상관계수가 0에 수렴함을 확인할 수 있다. 즉, 옳은 키에 대해 예측한 데이터의 중간 값과 전력사이의 상관성이 존재하지 않으며, 이는 본 발명의 일 실시 예에 따른 마스킹 방법이 일차 차분 전력 분석에 안전함을 의미한다.The offset is 10mA, 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라운드 라운드 키인 의 상위 한 바이트와 의 상위 한 바이트를 추측하고 1라운드에서 처음 사용되는 G함수의 첫 S박스에 대한 일차 차분 전력 분석을 시행한 경우, 마스킹 기법이 적용되지 않은 SEED의 옳은 키에 대한 분석결과는 도 9와 같았고, 본 발명의 일 실시 예에 따른 마스킹 기법이 적용된 SEED의 옳은 키에 대한 분석결과는 도 10과 같았다.For a more practical safety check, the first round round key The upper byte of 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)
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)
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)
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)
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 |
-
2008
- 2008-12-30 KR KR1020080137471A patent/KR101506499B1/en active IP Right Grant
Patent Citations (3)
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)
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 |