KR100991713B1 - Apparatus and method for operating inversion of AES with masking method, and AES cipher system and method using thereof - Google Patents

Apparatus and method for operating inversion of AES with masking method, and AES cipher system and method using thereof Download PDF

Info

Publication number
KR100991713B1
KR100991713B1 KR1020080118386A KR20080118386A KR100991713B1 KR 100991713 B1 KR100991713 B1 KR 100991713B1 KR 1020080118386 A KR1020080118386 A KR 1020080118386A KR 20080118386 A KR20080118386 A KR 20080118386A KR 100991713 B1 KR100991713 B1 KR 100991713B1
Authority
KR
South Korea
Prior art keywords
masking
inverse
masked
value
aes
Prior art date
Application number
KR1020080118386A
Other languages
Korean (ko)
Other versions
KR20100059571A (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 KR1020080118386A priority Critical patent/KR100991713B1/en
Publication of KR20100059571A publication Critical patent/KR20100059571A/en
Application granted granted Critical
Publication of KR100991713B1 publication Critical patent/KR100991713B1/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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Abstract

본 발명은 AES 암호 시스템의 마스킹 기술에 관한 것이며, 본 발명에 따른 마스킹을 이용한 AES 역원 연산 장치는 복합체 GF(((22)2)2) 상의 원소(A)에 대해 제1 마스킹 데이터를 이용하여 부분체 GF((22)2) 상의 덧셈 마스킹된 출력값을 생성하는 마스킹 필드변환부; 상기 마스킹 필드변환부의 상기 덧셈 마스킹된 출력값에 대해 제2 마스킹 데이터를 이용하여 부분체 GF((22)2) 상의 덧셈 마스킹된 인버젼(inversion) 연산값을 생성하는 마스킹 인버젼 연산부; 및 상기 마스킹 인버젼 연산부의 상기 덧셈 마스킹된 인버젼 연산값에 대해 부분체 GF((22)2) 상의 곱셈 및 배타적논리합 연산과 필드 변환(field conversion)을 이용하여 상기 원소(A)에 대응하는 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과를 생성하는 마스킹 필드역변환부를 포함하여, 차분전력분석에 강인하면서도 하드웨어 효율 및 연산 속도를 개선한다는 이점을 제공한다.The present invention relates to a masking technique of an AES cryptographic system, wherein an AES inverse computing device using masking according to the present invention uses first masking data for element (A) on complex GF (((2 2 ) 2 ) 2 ). A masking field transform unit for generating an additive masked output value on the partial GF ((2 2 ) 2 ); A masking inversion calculation unit configured to generate an addition masked inversion operation value on the partial GF ((2 2 ) 2 ) using second masking data with respect to the addition masked output value of the masking field converter; And a multiplication and an exclusive logical sum operation on subfield GF ((2 2 ) 2 ) and field conversion with respect to the addition masked inversion operation value of the masking inversion operation unit, corresponding to the element (A). Including a masking field inverse transform unit for generating an additive masked inverse calculation result on the complex GF (((2 2 ) 2 ) 2 ), it provides an advantage of improving hardware efficiency and computational speed while being robust to differential power analysis.

Description

마스킹을 이용한 AES 역원 연산 장치 및 방법과 이를 이용한 AES 암호 시스템{Apparatus and method for operating inversion of AES with masking method, and AES cipher system and method using thereof}Apparatus and method for operating inversion of AES with masking method, and AES cipher system and method using about

본 발명은 AES 암호 시스템의 마스킹 기술에 관한 것이며, 더욱 상세하게는 차분전력분석 공격(DPA)에 강인하면서도 하드웨어 효율 및 연산 속도를 개선한 마스킹을 이용한 AES 역원 연산 장치 및 방법과 이를 이용한 AES 암호 시스템 및 방법에 관한 것이다.The present invention relates to a masking technology of an AES encryption system, and more particularly, to an AES reverse source computing device and method using masking that is robust to differential power analysis attack (DPA) and improves hardware efficiency and operation speed, and an AES encryption system using the same. And to a method.

디지털 정보사회가 고도화되고 전자상거래가 활성화됨에 따라 암호기술은 인터넷을 기반으로 한 사회·경제적 활동의 안전성과 신뢰성, 그리고 사용자 프라이버시 보호 등을 위한 핵심 기술로서 인식되고 있다. 이러한 상황에서, 블록 암호 알고리즘(block cipher algorithm)은 암호화/복호화 처리속도가 빠르고 키 길이가 작다는 장점으로 인해 그 적용분야가 확대되고 있다.As the digital information society is advanced and electronic commerce is activated, cryptographic technology is recognized as a core technology for the safety and reliability of social and economic activities based on the Internet, and the protection of user privacy. In such a situation, the block cipher algorithm is expanding its application field due to the advantages of fast encryption / decryption processing speed and small key length.

종래에는 데이터 암호 표준으로서 DES(Data Encryption Standard)가 사용되었으나, 최근 DES를 대체할 차세대 국제 표준 암호로서 미국국립표준기술원(National Institute of Standards and Technology; NIST)은 AES(Advanced Encryption Standard)를 채택하였다. AES는 순서 공개형의 대칭 키 암호 방식으로서, 블록 길이가 128비트이고 키 길이를 128/192/256 비트 중에서 선택할 수 있는 암호 방식이다. 이에 따라 종래의 많은 응용제품에 사용되었던 DES 알고리즘은 AES 알고리즘으로 대체될 전망이다.Conventionally, DES (Data Encryption Standard) has been used as a data encryption standard, but the National Institute of Standards and Technology (NIST) has adopted AES (Advanced Encryption Standard) as a next generation international standard encryption to replace DES. . AES is an open order symmetric key cryptography method, which has a 128-bit block length and a 128/192/256 bit key length. Accordingly, the DES algorithm used in many conventional applications is expected to be replaced by the AES algorithm.

한편, 블록 암호 알고리즘의 안전성은 그 수학적인 구조에서의 안전성은 물론 구현되는 환경에서의 안전성도 고려되어야 한다. 수학적으로 안전한 것으로 알려진 알고리즘조차도 구현 단계에서 예기치 못한 부가적인 정보 누출이 존재하며, 이와 같이 누출된 정보를 이용하여 비밀키의 값을 알아낼 수 있는 부채널 공격(Side Channel Attack)이 가능하기 때문이다.(P. Kocher, J. Jaffe, and B. Jun, “Timing Attacks on Implementations of Diffie- Hellman, RSA, DSS, and Others Systems.” CRYPTO'96, LNCS 1109, pp. 104-113, Springer- Verlag, 1996.참조.)On the other hand, the security of the block cipher algorithm must consider not only the security in its mathematical structure but also the security in the implemented environment. Even algorithms that are known to be mathematically safe have unexpected additional information leaks at the implementation stage, and side leak attacks can be used to find the value of a secret key using such leaked information. (P. Kocher, J. Jaffe, and B. Jun, “Timing Attacks on Implementations of Diffie- Hellman, RSA, DSS, and Others Systems.” CRYPTO'96, LNCS 1109, pp. 104-113, Springer- Verlag, 1996.)

이러한 부채널 공격이 소개되면서 많은 암호시스템 설계자들은 효율적인 대응법(countermeasure)들을 연구하기 시작하였고, 특히 상기 부채널 공격의 일종인 차분전력분석(Differential Power Analysis; DPA) 공격에 대한 몇몇 대응법들이 제안되어 왔다.With the introduction of these subchannel attacks, many cryptosystem designers began to study effective countermeasures, and some countermeasures against differential power analysis (DPA) attacks, which are one of the subchannel attacks, have been proposed. .

상기 차분전력분석 공격이란, 블록 암호 알고리즘이 스마트 카드 등과 같은 저소비전력기기에 구현된 경우 연산 도중 발생하는 전력신호를 분석함으로써 상기 스마트 카드 내부에 저장된 비밀정보를 알아내는 공격 방법이다. 상기 차분전력분석 공격이 가능한 이유는, 공격자가 평문(plaintext)을 알고 있고 비밀키의 일부 정보를 추측할 수 있으면 상기 평문에 해당하는 1라운드 후의 암호문(ciper text) 의 특정 비트를 상기 공격자가 예측하는 것이 가능하기 때문이다.The differential power analysis attack is an attack method for finding secret information stored in the smart card by analyzing a power signal generated during a calculation when the block encryption algorithm is implemented in a low power device such as a smart card. The reason for the differential power analysis attack is that if the attacker knows plaintext and can guess some information of the secret key, the attacker predicts a specific bit of cipher text after the first round corresponding to the plaintext. Because it is possible.

상기 차분전력분석 공격에 안전한 블록 암호 알고리즘을 구현하기 위해 하드웨어적 대응법과 소프트웨어적 대응법이 제안되어 왔다. 상기 하드웨어적 대응법으로는 잡음전력(noise power)을 생성하는 방법, 연산순서를 랜덤(random)하게 하는 방법, 전력 신호를 여과하는 방법 등이 있다. 그러나 상기 하드웨어적 대응법들은 아직까지 불완전한 것으로 알려져 있다. 상기 소프트웨어적인 대응법으로는 특히, 일차 차분전력분석 공격에 대한 강력한 대응법으로서 마스킹 기법(masking method)이 알려져 있다. 마스킹 기법은 전력 측정에 의해 암·복호화, 또는 키 스케줄링 연산 중 중간값이 드러나지 않도록 하는 방법이다. 예컨대, 스마트 카드 내부에서 난수를 생성한 후, 상기 난수 및 평문의 배타적 논리합을 통해 상기 평문을 난수처럼 보이게 함으로써 전력 분석을 불가능하게 하는 방법이다.Hardware countermeasures and software countermeasures have been proposed to implement a block cipher algorithm that is safe against the differential power analysis attack. The hardware countermeasure includes a method of generating a noise power, a method of randomizing an operation sequence, a method of filtering a power signal, and the like. However, the hardware countermeasures are still known to be incomplete. In particular, a masking method is known as a strong countermeasure against the first differential power analysis attack. The masking technique is a method in which the intermediate value is not revealed during encryption / decryption or key scheduling operation by power measurement. For example, after generating a random number inside a smart card, power analysis is disabled by making the plain text look like a random number through an exclusive OR of the random number and the plain text.

한편, AES의 경우 수행되는 연산 중 비선형 연산은 S-box 연산이다. 상기 S-box는 그 연산값이 S(x

Figure 112008081691074-pat00001
m)=S(x)
Figure 112008081691074-pat00002
mx의 형태이며 mx의 값이 x의 값마다 다르다. 따라서, 일반적인 소프트웨어 마스킹 기법에서는 상기 mx의 값이 모든 x에 대해 동일한 값이 되도록 암호 알고리즘의 최초 수행시 새로운 마스킹 S-box(MS)를 만든다. 즉, 모든 x에 대해 MS(x
Figure 112008081691074-pat00003
m)=S(x)
Figure 112008081691074-pat00004
m'를 만족하는 MS를 생성한다. 그러나, 공간적 제약이 많이 따르는 하드웨어 마스킹 기법에서는 마스킹 테이블을 생성, 저장하는 비용을 고려하여 MS를 생성하는 방식 대신 직접 연산하는 방식을 사용하는 것이 일반적이다. 요컨대, AES의 S-box는 GF(28) 위에서의 역원(inversion) 연산과 그에 대 한 아핀(affine) 변환으로 구성되며 실제 하드웨어 마스킹 기법의 대부분의 비용은 상기 역원 연산을 수행하는데 소비된다.In the case of AES, the non-linear operation is an S-box operation. The S-box has an operation value of S (x
Figure 112008081691074-pat00001
m) = S (x)
Figure 112008081691074-pat00002
in the form of m x varies from a value of the value of m x x. Therefore, in a general software masking technique, a new masking S-box (MS) is created at the first execution of the encryption algorithm such that the value of m x is the same for all x. That is, MS (x for all x
Figure 112008081691074-pat00003
m) = S (x)
Figure 112008081691074-pat00004
Generate an MS that satisfies m '. However, in hardware masking techniques that have a lot of space constraints, it is common to use direct computation instead of creating MS in consideration of the cost of creating and storing a masking table. In short, AES's S-box consists of an inversion operation on GF (2 8 ) and an affine transformation for it and most of the cost of the actual hardware masking technique is spent performing the inverse operation.

그러나, 기존의 마스킹 역원 연산 방법들은 AES의 S-box 연산을 위해 지나치게 많은 수의 게이트를 필요로 한다는 문제점이 있다. 또한, 실험적으로 증명된 바와 같이 (xm)-1=x-1m-1 형태의 곱셈 마스킹(multiplicative masking)을 사용하는 기존 방법들은 x=0 일 때 식 xm=x을 만족하게 되어 일차 차분전력분석 공격에 취약하다는 치명적인 문제점이 있다.(Jovan D. Golic, Christophe Tymen. “Multiplicative Masking and Power Analysis of AES", CHES 2002, LNCS 2523, pp. 198212, Springer, 2003. 참조.)However, the conventional masking inverse calculation methods have a problem that an excessive number of gates are required for S-box calculation of AES. In addition, as experimentally proven, existing methods using multiplicative masking in the form of (xm) -1 = x -1 m -1 satisfy the equation xm = x when x = 0, so that the first differential power There is a fatal problem of being vulnerable to analytical attacks (see Jovan D. Golic, Christophe Tymen. “Multiplicative Masking and Power Analysis of AES”, CHES 2002, LNCS 2523, pp. 198212, Springer, 2003.).

따라서, 본 발명이 이루고자 하는 첫 번째 기술적 과제는, 차분전력분석에 강인하면서도 하드웨어 효율 및 연산 속도를 최대화할 수 있는 마스킹을 이용한 AES 역원 연산 장치를 제공하는 것이다.Accordingly, the first technical problem to be achieved by the present invention is to provide an AES inverse computing device using masking that is robust to differential power analysis and can maximize hardware efficiency and operation speed.

본 발명이 이루고자 하는 두 번째 기술적 과제는, 차분전력분석에 강인하면서도 하드웨어 효율 및 연산 속도를 최대화할 수 있는 마스킹을 이용한 AES 역원 연산 방법 제공하는 것이다.The second technical problem to be achieved by the present invention is to provide an AES inverse calculation method using masking that is robust to differential power analysis and can maximize hardware efficiency and operation speed.

본 발명이 이루고자 하는 세 번째 기술적 과제는, 상기 마스킹을 이용한 AES 역원 연산 장치 또는 방법을 사용하는 AES 암호 시스템을 제공하는 것이다.The third technical problem to be achieved by the present invention is to provide an AES cryptographic system using the AES inverse computing device or method using the masking.

본 발명이 이루고자 하는 네 번째 기술적 과제는, 상기 마스킹을 이용한 AES 역원 연산 장치 또는 방법을 사용하는 AES 암호 방법 제공하는 것이다.A fourth technical problem to be achieved by the present invention is to provide an AES encryption method using an AES reverse source computing device or method using the masking.

상기와 같은 첫 번째 기술적 과제를 해결하기 위하여 본 발명은, 복합체 GF(((22)2)2) 상의 원소(A)에 대해 제1 마스킹 데이터를 이용하여 부분체 GF((22)2) 상의 덧셈 마스킹된 출력값을 생성하는 마스킹 필드변환부; 상기 마스킹 필드변환부의 상기 덧셈 마스킹된 출력값에 대해 제2 마스킹 데이터를 이용하여 부분체 GF((22)2) 상의 덧셈 마스킹된 인버젼(inversion) 연산값을 생성하는 마스킹 인버젼 연산부; 및 상기 마스킹 인버젼 연산부의 상기 덧셈 마스킹된 인버젼 연산값에 대 해 부분체 GF((22)2) 상의 곱셈 및 배타적논리합 연산과 필드 변환(field conversion)을 이용하여 상기 원소(A)에 대응하는 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과를 생성하는 마스킹 필드역변환부를 포함하는 마스킹을 이용한 AES 역원 연산 장치를 제공한다.In order to solve the first technical problem as described above, the present invention, using the first masking data for the element (A) on the composite GF (((2 2 ) 2 ) 2 ), the partial GF ((2 2 ) 2 A masking field converter configured to generate an additive masked output value of the mask; A masking inversion calculation unit configured to generate an addition masked inversion operation value on the partial GF ((2 2 ) 2 ) using second masking data with respect to the addition masked output value of the masking field converter; And a multiplication and an exclusive logical sum operation on subfield GF ((2 2 ) 2 ) and field conversion on the addition masked inversion operation value of the masking inversion operation unit to the element (A). An AES inverse computing device using masking comprising a masking field inverse transform unit for generating an additive masked inverse computing result on a corresponding complex GF (((2 2 ) 2 ) 2 ).

일 실시예에 있어서, 상기 마스킹을 이용한 AES 역원 연산 장치는 원소 표현에 있어서 다항식 기저(polynomial basis)를 기반으로 한다.In one embodiment, the AES inverse computing device using masking is based on a polynomial basis in element representation.

일 실시예에 있어서, 상기 마스킹 필드변환부의 상기 복합체 GF(((22)2)2) 상의 원소(A)는, 유한체 GF(28) 상의 원소에 대한 아이소모피즘(isomorphism) 변형을 통해 생성된다.In one embodiment, the element (A) on the complex GF (((2 2 ) 2 ) 2 ) of the masking field transform unit isomorphism (isomorphism) deformation of the element on the finite field GF (2 8 ) Is generated.

일 실시예에 있어서, 상기 마스킹 인버젼 연산부는 상기 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과의 출력 마스킹 값 중 상위 4비트 값 또는 하위 4비트 값을 상기 제2 마스킹 데이터로 이용한다.The masking inversion calculator may be configured to obtain an upper 4 bit value or a lower 4 bit value among the output masking values of the result of the addition masking inverse operation on the complex GF (((2 2 ) 2 ) 2 ). Used as masking data.

일 실시예에 있어서, 상기 마스킹을 이용한 AES 역원 연산 장치는 4비트의 제3 마스킹 데이터를 이용하여 상기 마스킹을 이용한 AES 연원 연산 장치의 중간 연산값을 구성하는 각각의 비트값이 상기 중간 연산값에서 다른 비트값과 동일한 확률로 나타나도록 덧셈 마스킹을 수행하는 프레시 마스킹부를 더 포함한다.In an embodiment, the AES inverse calculating device using the masking may use each of the bit values constituting the intermediate calculating value of the AES source calculating device using the masking using third bit masking data of 4 bits. The apparatus may further include a fresh masking unit that performs addition masking so that the same probability as other bit values appears.

일 실시예에 있어서, 상기 프레시 마스킹부는 상기 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과의 출력 마스킹 값 중 상위 4비트 값 또는 하위 4비트 값을 상기 제3 마스킹 데이터로 이용한다.The fresh masking unit may include the upper 4 bit value or the lower 4 bit value of the output masking value of the result of the addition masking inverse operation on the complex GF (((2 2 ) 2 ) 2 ), wherein the third masking data Use as.

일 실시예에 있어서, 상기 프레시 마스킹부는 상기 제2 마스킹 데이터가 상기 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과의 출력 마스킹 값 중 상위 4비트 값 또는 하위 4비트 값에 해당하는 경우, 상기 출력 마스킹 값 중 각각 하위 4비트 값 또는 상위 4비트 값을 상기 제3 마스킹 데이터로 이용한다.In one embodiment, the fresh masking unit, the second masking data is the upper 4-bit value or the lower 4-bit value of the output masking value of the result of the addition masked inverse operation on the complex GF (((2 2 ) 2 ) 2 ) In this case, a lower 4 bit value or a higher 4 bit value of the output masking value is used as the third masking data, respectively.

일 실시예에 있어서, 상기 마스킹 인버젼 연산부는, 부분체 GF(22) 상의 연산을 이용하여 상기 부분체 GF((22)2) 상의 인버젼 연산을 수행한다.In one embodiment, the mask inversion operation unit, and performs a partial body GF (22) GF said body portion by an operation on the ((2 2) 2) on the inversion calculation.

일 실시예에 있어서, 상기 마스킹 인버젼 연산부는, 상기 마스킹 필드변환부의 상기 덧셈 마스킹된 출력값 및 상기 제2 마스킹 데이터를 이용하여 부분체 GF(22) 상의 덧셈 마스킹된 출력값을 생성하는 서브 마스킹 필드변환부; 상기 서브 마스킹 필드변환부의 상기 부분체 GF(22) 상의 덧셈 마스킹된 출력값에 대해 2비트의 제4 마스킹 데이터를 이용하여 부분체 GF(22) 상의 덧셈 마스킹된 인버젼 연산값을 생성하는 서브 마스킹 인버젼 연산부; 및 상기 서브 마스킹 인버젼 연산부의 상기 덧셈 마스킹된 인버젼 연산값에 대해 부분체 GF(22) 상의 곱셈 및 배타적논리합 연산과 필드 변환을 이용하여 상기 마스킹 필드변환부의 상기 덧셈 마스킹된 출력값에 대응하는 부분체 GF((22)2) 상의 덧셈 마스킹된 역원 연산 결과를 생성하는 서 브 마스킹 필드역변환부를 포함한다.In an embodiment, the masking inversion calculation unit may include a sub masking field configured to generate an additive masked output value on the partial GF (2 2 ) by using the masked output value of the masking field converter and the second masking data. A conversion unit; A sub mask that generates an additive masked inversion operation value on the sub-part GF (2 2 ) by using 4 bits of masking data with respect to the added masked output value on the sub-part GF (2 2 ) by the sub masking field converter A masking inversion calculator; And a multiplication and an exclusive logical sum operation on subfield GF (2 2 ) and a field transform for the addition masked inversion operation value of the sub masking inversion operation unit, corresponding to the addition masked output value of the masking field conversion unit. And a sub masking field inverse transform unit for generating an additive masked inverse computation result on subpart GF ((2 2 ) 2 ).

상기와 같은 두 번째 기술적 과제를 해결하기 위하여 본 발명은, 복합체 GF(((22)2)2) 상의 원소(A)에 대해 제1 마스킹 데이터를 이용하여 부분체 GF((22)2) 상의 덧셈 마스킹된 출력값을 생성하는 마스킹 필드변환 단계; 상기 마스킹 필드변환 단계의 상기 덧셈 마스킹된 출력값에 대해 제2 마스킹 데이터를 이용하여 부분체 GF((22)2) 상의 덧셈 마스킹된 인버젼(inversion) 연산값을 생성하는 마스킹 인버젼 연산 단계; 및 상기 마스킹 인버젼 연산 단계의 상기 덧셈 마스킹된 인버젼 연산값에 대해 부분체 GF((22)2) 상의 곱셈 및 배타적논리합 연산과 필드 변환을 이용하여 상기 원소(A)에 대응하는 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과를 생성하는 마스킹 필드역변환 단계를 포함하는 마스킹을 이용한 AES 역원 연산 방법을 제공한다.In order to solve the second technical problem as described above, the present invention, using the first masking data for the element (A) on the composite GF (((2 2 ) 2 ) 2 ), the partial GF ((2 2 ) 2 A masking field transform step of generating an additive masked output value on the? A masking inversion calculation step of generating an addition masked inversion operation value on the partial GF ((2 2 ) 2 ) using second masking data with respect to the addition masked output value of the masking field conversion step; And a complex GF corresponding to the element (A) using a multiplication and an exclusive logical sum operation on the subpart GF ((2 2 ) 2 ) and a field transform on the addition masked inversion operation value of the masking inversion operation step. A masking field inverse transform step of generating an additive masked inverse calculation result on (((2 2 ) 2 ) 2 ) provides an AES inverse calculation method using masking.

상기와 같은 세 번째 기술적 과제를 해결하기 위하여 본 발명은, 상기 마스킹을 이용한 AES 역원 연산 장치를 사용하는 AES 암호 시스템을 제공한다.In order to solve the third technical problem as described above, the present invention provides an AES encryption system using the AES inverse computing device using the masking.

상기와 같은 네 번째 기술적 과제를 해결하기 위하여 본 발명은, 상기 마스킹을 이용한 AES 역원 연산 방법을 사용하는 AES 암호 방법을 제공한다.In order to solve the fourth technical problem as described above, the present invention provides an AES encryption method using the AES inverse calculation method using the masking.

본 발명은, 복합체 상에서의 마스킹 역원 연산 방식을 사용하고 중복되는 곱셈 연산량을 감소시킬 수 있도록 함으로써 차분전력분석에 강인하면서도 하드웨어 효율 및 연산 속도를 개선한다는 이점을 제공한다.The present invention provides the advantage of improving hardware efficiency and computational speed while being robust to differential power analysis by using a masking inverse algorithm on a complex and allowing to reduce redundant multiplications.

본 발명에 관한 구체적인 내용의 설명에 앞서 이해의 편의를 위해 본 발명이 적용되는 AES 암호 시스템을 개괄적으로 설명한다.Prior to the description of the specific contents of the present invention, an AES encryption system to which the present invention is applied will be described for convenience of understanding.

AES의 한 라운드는 AddRoundKey, Subbytes, ShiftRows 및 MixColumn의 네 단계로 구성되어 있다.One round of AES consists of four steps: AddRoundKey, Subbytes, ShiftRows, and MixColumn.

상기 네 단계 중 AddRoundKey 연산, ShiftRows 연산 및 MixColumn 연산은 선형연산 또는 아핀(affine) 연산이기 때문에 마스킹 기법이 쉽게 적용된다. 그러나, 상기 Subbytes 연산은 비선형 연산이기 때문에 마스킹 기법 적용이 용이하지 않다.Since the AddRoundKey operation, ShiftRows operation, and MixColumn operation among the four steps are linear operations or affine operations, a masking technique is easily applied. However, it is not easy to apply a masking technique because the subbyte operations are nonlinear operations.

상기 Subbytes 연산, 즉 S-Box 연산 부분은 유한체 GF(28) 상에서의 역원 연산과 아핀 연산을 병렬적으로 사용하기 때문에, AES 암호 알고리즘에 대한 마스킹 기법 적용에 있어서 유한체 GF(28) 상의 역원 연산에 대한 마스킹 기법을 효율적으로 구현하는 것이 관건이다.Since the subbyte operations, i.e., the S-Box operations, use inverse and affine operations on the finite field GF (2 8 ) in parallel, the finite field GF (2 8 ) in applying the masking technique to the AES encryption algorithm. The key is to efficiently implement masking techniques for phase inverse operations.

AESAES S- S- BoxBox

AES의 S-Box는 x-1의 아핀 변환(affine transform) 형태로 수학식 1과 같이 연산을 수행한다.S-Box of AES performs an operation as shown in Equation 1 in the form of affine transform of x- 1 .

SS :  : GFGF (2(2 88 )→) → GFGF (2(2 88 ))

S (x)= B x -1

Figure 112008081691074-pat00005
b S (x) = B x -1
Figure 112008081691074-pat00005
b

상기 수학식 1에서, x-1의 연산은 유한체 GF(28)(기약다항식: x8+x4+x3+x+1) 상에서 이루어지며 상기 수학식 1의 연산을 위한 행렬 B 와 벡터 b 의 값은 수학식 2와 같다.In Equation 1, the operation of x -1 is performed on the finite field GF (2 8 ) (the polynomial: x 8 + x 4 + x 3 + x + 1) and the matrix B for the operation of Equation 1 and The value of the vector b is equal to Equation 2.

Figure 112008081691074-pat00006
Figure 112008081691074-pat00007
, .
Figure 112008081691074-pat00006
Figure 112008081691074-pat00007
,.

복합체(Composite ( CompositeComposite FieldField ) 위에서의 역원 연산Inverse Arithmetic on

위에서 언급한 바와 같이, AES의 하드웨어 설계에 있어서 S-Box를 저장하고 호출하는 방식은 공간적인 제약이 많이 따르므로 S-Box를 직접 연산하는 방식이 주로 사용된다. 그러나, x-1의 연산과 아핀 변환으로 이루어지는 S-Box 연산은 상기 x-1의 연산, 즉 GF(28)에서의 역원 연산에 상당한 비용이 요구되며, 실제 상기 역원 연산에 소비되는 비용이 전체 AES 라운드 연산에 소비되는 비용의 대부분을 차지한다. 그러므로, 상기 역원 연산의 효율성은 전체 암호 알고리즘 성능에 큰 영향을 미치는 요소이다.As mentioned above, in the hardware design of the AES, the method of storing and calling the S-Box has a lot of space constraints, so the method of directly calculating the S-Box is mainly used. However, operation with S-Box operation consisting of affine transformation of the x -1 is a significant cost to the inverse operation of the operation, i.e., GF (2 8) of the x -1 requirements, the cost spent on the actual inverse operation It accounts for most of the cost of the entire AES round operation. Therefore, the efficiency of the inverse operation is a factor that greatly affects the performance of the overall cryptographic algorithm.

따라서, 본 발명에서는 상기 역원 연산의 비용을 절감하고 효율성을 높이기 위해 GF(28) 위에서의 일반적 역원 연산 방식 대신 비교적 연산비용이 적게 드는 복합체로의 변환을 수행한 후 역원 연산을 수행하고, 수행된 연산 결과값을 다시 GF(28) 위의 원소로 역변환하는 방식을 이용한다.Therefore, in the present invention, in order to reduce the cost of the inverse operation and increase the efficiency, instead of the general inversion operation method on the GF (2 8 ), the inversion operation is performed after performing the conversion to a complex which is relatively inexpensive. Invert the result of the calculation back to the element above GF (2 8 ).

복합체에서의 역원 연산은 부분체(subfield)에서의 연산을 통해 이루어진다. S-box 연산에 사용되는 GF(8) 위에서의 연산은 복합체인 GF(((22)2)2) 위에서의 연산으로 변형될 수 있으며, 각 부분체에서 사용되는 기약다항식(irreducible polynomial)의 형태는 수학식 3과 같다.Inverse operations on complexes are made through operations on subfields. Operations on GF (8) used for S-box operations can be transformed into operations on GF (((2 2 ) 2 ) 2 ), which is a complex, of the irreducible polynomial used in each subpart. The form is shown in Equation 3.

GF(22) over GF(2): P 0(x)=x2+x+1. GF (2 2 ) over GF (2): P 0 (x) = x 2 + x + 1.

GF((22)2) over GF(22): P 1(x)=x2+x+φ. GF ((2 2 ) 2 ) over GF (2 2 ): P 1 (x) = x 2 + x + φ.

GF(((22)2)2) over GF((22)2): P 2(x)=x2+x+λ. GF (((2 2 ) 2 ) 2 ) over GF ((2 2 ) 2 ): P 2 (x) = x 2 + x + λ.

상기 수학식 3에서, P 0(x)의 근을 α(α∈GF(22)), P 1(x)의 근을 β(β∈GF((22)2), 그리고 P 2(x)의 근을 r(r∈GF(((22)2)2)) 라고 한다면, GF(22)의 모든 원소는 a1α+a0, GF((22)2)의 모든 원소는 (a3α+a2)β+(a1α+a0), 그리고 GF(((22)2)2))의 모든 원소는 {(a7α+a6)β+(a5α+a4)}r+{(a3α+a2)β+(a1α+a0)}의 형태로 표현된다. 연산의 효율성을 위해 P 1(x) 및 P 2(x)가 기약인 성질을 만족하는 원소 중에 GF(22)의 원소 φ는 α((10)2)로, GF((22)2))의 원소 λ는 (α+1)β((1100)2)로 선택하였다.In Equation 3, the root of P 0 (x) is α (α∈ GF (2 2 )), the root of P 1 (x) is β (β∈ GF ((2 2 ) 2 ), and P 2 ( If the root of x) is r (r∈ GF (((2 2 ) 2 ) 2 )), then all elements of GF (2 2 ) are a 1 α + a 0 , all of GF ((2 2 ) 2 ) Elements are (a 3 α + a 2 ) β + (a 1 α + a 0 ), and all elements of GF (((2 2 ) 2 ) 2 ) are {(a 7 α + a 6 ) β + ( a 5 α + a 4 )} r + {(a 3 α + a 2 ) β + (a 1 α + a 0 )}. For the efficiency of computation, the element φ of GF (2 2 ) is α ((10) 2 ) among the elements satisfying the property that P 1 (x) and P 2 (x) are weak, GF ((2 2 ) 2 The element λ of)) was chosen as (α + 1) β ((1100) 2 ).

복합체 위에서의 역원 연산은, 예컨대 A(A∈GF(((22)2)2))의 역원 A-1의 연산을 위해 C-1A16(C=A17GF((22)2))을 연산한다. 또한, 상기 C의 역원 C-1의 연산을 위해 D-1C4(D=C5GF(22))을 연산한다. 즉, GF(((22)2)2) 위에서의 역원 연산이 GF(22) 위에서의 역원 연산을 통해 이루어지게 된다. 물론, 역원 연산을 위해 A16, A17 등과 같은 추가적인 연산이 필요하지만 복합체 연산의 특성상 A16(A=ahr+al)의 연산 결과는 ahr+(ah+al)의 4비트 xor 연산, A17(A=ahr+al)의 연산 결과는 λah 2+al(ah+al)로 GF((22)2) 위에서의 한 번의 제곱 연산 및 곱셈 연산만을 요구할 뿐이다.The inverse operation on the complex is, for example, C- 1 A 16 (C = A 17GF ((2 2 )) for the calculation of inverse A- 1 of A (A∈ GF (((2 2 ) 2 ) 2 )). 2 )). In addition, D −1 C 4 (D = C 5GF (2 2 )) is calculated for the inverse C −1 of C. In other words, the inverse operation on GF (((2 2 ) 2 ) 2 ) is performed through the inverse operation on GF (2 2 ). Of course, for the inverse operation it requires additional operations, such as A 16, A 17, but the operation result of the nature of A 16 of a complex operation (A = a h r + a l) is a h r + (a h + a l) Four-bit xor operation, the result of operation A 17 (A = a h r + a l ) is λa h 2 + a l (a h + a l ) with one square operation on GF ((2 2 ) 2 ) and It only requires a multiplication operation.

A=ahr+al 의 역원 A-1=ah'r+al'를 계산하는 수식은 수학식 4와 같이 나타낼 수 있다.Equation for calculating the inverse A -1 = a h 'r + a l ' of A = a h r + a l can be expressed by Equation 4.

d=λah 2+al(ah+al) 이고 d'=d-1 일 때,when d = λa h 2 + a l (a h + a l ) and d '= d -1 ,

ah'=d'ah,a h '= d'a h ,

al'=d'(ah+al).a l '= d' (a h + a l ).

도 1에는 Subbytes 연산의 주 연산인 GF(28) 상의 역원 연산을 GF(((22)2)2) 상의 역원 연산을 이용하여 구현한 S-Box의 블록도가 도시되어 있다.FIG. 1 is a block diagram of an S-Box in which an inverse operation on GF (2 8 ), which is a main operation of a subbyte operation, is implemented using an inverse operation on GF (((2 2 ) 2 ) 2 ).

도 1을 참조하면, S-Box는, 인버스 아핀(inverse affine) 변환부, 제1 멀티플렉서, 아이소모피즘(isomorphism) 변형부, GF(((22)2)2) 역원 연산부(100), 인버스 아이소모피즘(inverse isomorphism) 변형부, 어핀 변환부 및 제2 멀티플렉서를 구비한다.Referring to FIG. 1, the S-Box includes an inverse affine transform unit, a first multiplexer, an isomorphism deformation unit, a GF (((2 2 ) 2 ) 2 ) inverse calculation unit 100, An inverse isomorphism deformation unit, an affine transformation unit, and a second multiplexer are provided.

상기 인버스 아핀 변환부는, 복호화 연산 수행시 입력 데이터(DATA_IN)에 대하여 인버스 아핀 변환 연산을 수행한다.The inverse affine transform unit performs an inverse affine transform operation on the input data DATA_IN when performing a decoding operation.

제1 멀티플렉서는 제어신호(CLK)에 의해 복호화 연산 수행시에는 상기 인버스 아핀 변환부의 출력데이터를 출력하고, 암호화 연산시에는 상기 입력 데이터(DATA_IN)를 출력한다.The first multiplexer outputs the output data of the inverse affine converting unit when performing the decryption operation by the control signal CLK, and outputs the input data DATA_IN during the encryption operation.

상기 아이소모피즘 변형부는, 상기 제1 멀티플렉서의 출력데이터에 대하여 아이소모피즘 변형 연산을 수행한다.The isomorphism transformation unit performs an isomorphism transformation operation on the output data of the first multiplexer.

상기 GF(((22)2)2) 역원 연산부(100)는, 아이소모피즘 변형부의 출력데이터에 대하여 인버젼(inversion) 연산을 수행한다.The GF (((2 2 ) 2 ) 2 ) inverse operator 100 performs an inversion operation on the output data of the isomorphism deformation unit.

상기 인버스 아이소모피즘 변형부는, 상기 GF(((22)2)2) 역원 연산부(100)의 출력데이터에 대하여 인버스 아이소모피즘 변형 연산을 수행한다.The inverse isomorphism transformation unit performs an inverse isomorphism transformation operation on the output data of the GF (((2 2 ) 2 ) 2 ) inverse calculating unit 100.

상기 아핀 변환부는, 암호화 연산 수행시 상기 인버스 아이소모피즘 변형부의 출력데이터에 대하여 아핀 변환 연산을 수행한다.The affine transformation unit performs an affine transformation operation on the output data of the inverse isomorphism transformation unit when performing an encryption operation.

상기 제2 멀티플렉서는, 제어신호에 따라 암호시에는 상기 아핀 변환부의 출력 데이터를 출력하고, 복호화시에는 상기 인버스 아이소모피즘 변형부의 출력 데이터를 출력한다.The second multiplexer outputs the output data of the affine transform unit at the time of encryption according to a control signal, and outputs the output data of the inverse isomorphism transform unit at the time of decryption.

상술한 연산 블록들 중에서, 인버스 아핀 변환부, 아핀 변환부, 아이소모피즘 변형부 및 인버스 아이소모피즘 변형부에서는 모두 선형함수에 대한 연산을 수행한다. 마스킹 기법을 적용하여 선형함수의 연산을 실제 하드웨어로 구현하는 경우, 마스킹 기법을 적용하지 않을 때 사용하는 하드웨어 모듈을 그대로 이용할 수 있다. 이 경우, 마스킹 기법이 적용되지 않는 경우에 비해 하드웨어의 사용 면적은 증가하지만, 복잡도는 증가하지 않는다.Among the above-described calculation blocks, the inverse affine transform unit, the affine transform unit, the isomorphism transform unit, and the inverse isomorphism transform unit all perform operations on linear functions. When applying the masking technique to implement the linear function calculation in real hardware, the hardware module used when the masking technique is not applied can be used as it is. In this case, the area of use of the hardware increases, but the complexity does not increase, compared to the case where the masking technique is not applied.

그러나, GF(((22)2)2) 역원 연산부(100)에서 수행하는 연산은 비 선형함수에 대한 것이기 때문에, 마스킹 기법을 적용하여 상기 GF(((22)2)2) 역원 연산부(100)를 하드웨어로 구현하는 경우에는 마스킹 기법을 적용하지 않을 때 사용하는 하드웨어 모듈을 그대로 이용할 수 없다. 왜냐하면, 비 선형함수의 경우 마스킹 기법을 적용하여 연산된 데이터로부터 원본 데이터를 쉽게 복원할 수 없기 때문이다. 따라 서 상기 문제를 해결하기 위해, 원본 데이터 및 마스킹 데이터를 함께 연산하되 중간의 연산 과정에서의 원본 데이터 누출없이 최종 단에서 상기 원본 데이터를 추출해낼 수 있는 효율적인 방법이 필요하다.However, since the operation performed by the GF (((2 2 ) 2 ) 2 ) inverse operator 100 is for a nonlinear function, the inverse operator GF (((2 2 ) 2 ) 2 ) is applied by applying a masking technique. In the case of implementing the hardware 100, the hardware module used when the masking technique is not applied cannot be used as it is. This is because, in the case of nonlinear functions, the original data cannot be easily recovered from the data calculated by applying the masking technique. Therefore, in order to solve the above problem, there is a need for an efficient method of extracting the original data from the final stage without calculating the original data and masking data while the original data in the intermediate calculation process.

도 2에는 상기 GF(((22)2)2) 역원 연산부(100)의 블록도가 도시되어 있다.2 is a block diagram of the GF (((2 2 ) 2 ) 2 ) inverse calculating unit 100.

도 2를 참조하면, 상기 GF(((22)2)2) 역원 연산부(100)는 3개의 4비트 곱셈연산 모듈(200), 4비트 제곱연산 모듈(210), 4비트 상수곱셈연산 모듈(220), 4비트 인버젼 모듈(GF((22)2) 인버젼 모듈; 230) 및 2개의 XOR연산 모듈을 구비한다.Referring to FIG. 2, the GF (((2 2 ) 2 ) 2 ) inverse operator 100 includes three four-bit multiplication modules 200, a four-bit square operation module 210, and a four-bit constant multiplication operation module. 220, a 4-bit inversion module ( GF ((2 2 ) 2 ) inversion module; 230) and two XOR operation modules.

상기 GF(((22)2)2) 역원 연산부(100)는, 부분체 GF((22)2)의 연산을 이용하여 복합체 GF(((22)2)2)에서의 역원 연산을 수행할 수 있다. 도 2에서 aH는 MSB(Most Significant Bit)를 포함하는 입력 데이터의 상위 4비트로 구성된 데이터를 나타내고, aL은 LSB(Least Significant Bit)를 포함하는 상기 입력 데이터의 하위 4비트로 구성된 데이터를 나타낸다.The GF (((2 2 ) 2 ) 2 ) inverse calculating unit 100 uses the calculation of the partial GF ((2 2 ) 2 ) to calculate the inverse in the complex GF (((2 2 ) 2 ) 2 ) Can be performed. In FIG. 2, a H represents data consisting of the upper four bits of input data including a Most Significant Bit (MSB), and a L represents data consisting of the lower four bits of the input data including a Least Significant Bit (LSB).

도 3에는 상기 4비트 곱셈연산 모듈(200)의 블록도가 도시되어 있다.3 shows a block diagram of the 4-bit multiplication module 200.

도 3을 참조하면, 상기 4비트 곱셈연산 모듈(200)들은 3개의 2비트 곱셈연산 모듈(300), 1개의 2비트 상수곱셈연산 모듈(310) 및 4개의 XOR연산 모듈을 구비한다. 즉, 부분체 GF(22) 상에서의 연산을 이용하여 부분체 GF((22)2) 상에서의 곱셈연산을 수행한다.Referring to FIG. 3, the four-bit multiplication module 200 includes three two-bit multiplication modules 300, one two-bit integer multiplication module 310, and four XOR calculation modules. That is, the multiplication operation on the part GF ((2 2 ) 2 ) is performed using the operation on the part G F (2 2 ).

도 4에는 상기 4비트의 제곱연산 모듈(210)의 블록도가 도시되어 있다.4 shows a block diagram of the 4-bit square operation module 210.

도 2 및 도 4에 도시된 바와 같이, 상기 4비트 제곱연산 모듈(210)은 4비트의 aH에 대해 제곱연산을 수행한다.As shown in Figures 2 and 4, the 4-bit square operation module 210 performs a square operation on the 4-bit a H.

상기 4비트 상수곱셈연산 모듈(220)은, 상기 4비트 제곱연산블록(520)의 출력 데이터에 대해 상수곱셈연산을 수행한다.The 4-bit constant multiplication module 220 performs a constant multiplication operation on the output data of the 4-bit square operation block 520.

도 5에는 상기 GF((22)2) 인버젼 모듈(230)의 블록도가 도시되어 있다.5 is a block diagram of the GF ((2 2 ) 2 ) inversion module 230.

도 5를 참조하면, 상기 GF((22)2) 인버젼 모듈(230)은 3개의 2비트 곱셈연산 모듈(500), 2 비트 제곱연산 모듈, 2비트 상수곱셈연산 모듈, 2비트의 인버젼 블록(GF(22) 인버젼 모듈) 및 2개의 XOR 블록을 구비한다. 즉, 상기 GF((22)2) 인버젼 모듈(230)은 부분체 GF(22) 상에서의 연산을 이용하여 부분체 GF((22)2) 상에서의 역원 연산을 수행한다.Referring to FIG. 5, the GF ((2 2 ) 2 ) inversion module 230 includes three 2-bit multiplication modules 500, a 2-bit square operation module, a 2-bit constant multiplication module, and a 2-bit in A version block ( GF (2 2 ) inversion module) and two XOR blocks. That is, the GF ((2 2 ) 2 ) inversion module 230 performs inverse arithmetic on subpart GF ((2 2 ) 2 ) using operations on part G F (2 2 ).

도 6에는 상기 2비트 곱셈연산 모듈(300, 500)의 논리회로가 도시되어 있다.6 shows a logic circuit of the 2-bit multiplication module 300,500.

도 2 및 도 5를 비교하면, 도 2에 도시한 상기 8비트 인버젼 모듈(GF(((22)2)2) 역원 연산부; 100)과 도 5에 도시한 4비트 인버젼 모듈(GF((22)2) 인버젼 모듈; 230)은 각각의 연산 모듈에서 연산되는 데이터가 4비트에서 2비트로 줄어들었을 뿐, 그 구성 모듈들은 서로 동일함을 알 수 있다. 또한, 상기 2비트 인버젼 모듈(GF(22) 인버젼 모듈)에서의 연산은 2비트 제곱연산과 같으므로 이를 하드 웨어로 구현하는 것은 문제가 되지 않는다.2 and 5, the 8-bit inversion module GF (((2 2 ) 2 ) 2 ) inverse calculating unit 100 shown in FIG. 2 and the 4-bit inversion module GF shown in FIG. 5 are shown. The ((2 2 ) 2 ) inversion module 230 may recognize that only the data calculated in each operation module is reduced from 4 bits to 2 bits, and the constituent modules are identical to each other. In addition, since the operation in the 2-bit inversion module ( GF (2 2 ) inversion module) is the same as the 2-bit square operation, it is not a problem to implement it in hardware.

따라서, 8비트 인버젼 모듈의 구성으로부터 4비트 인버젼 모듈의 구성을 동일하게 설명할 수 있으며, 그 반대의 경우도 가능하다. 이러한 점은, 본 발명에 따른 마스킹을 이용한 AES 역원 연산 장치 및 방법에서도 동일하다.Therefore, the configuration of the 4-bit inversion module can be described in the same way from the configuration of the 8-bit inversion module, and vice versa. This is the same also in the AES inverse computing device and method using masking according to the present invention.

이하, 본 발명의 기술적 과제의 해결 방안을 명확화하기 위해 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다. 다만, 본 발명을 설명함에 있어서 관련된 공지기술 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불명료하게 할 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자 등의 의도 또는 관례 등에 따라 달라질 수 있을 것이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings in order to clarify the solutions of the technical problems of the present invention. However, in describing the present invention, when it is determined that the detailed description of the related known technology or configuration may make the gist of the present invention unclear, the detailed description thereof will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to intention or custom of a user, an operator, or the like. Therefore, the definition should be made based on the contents throughout the specification.

도 7a 및 도 7b에는 마스킹 기법의 기본 원리가 도시되어 있다.7A and 7B illustrate the basic principles of the masking technique.

도 7a에 도시된 바와 같이, 마스킹 기법을 사용하지 않고 암호 연산을 수행하는 경우, 입력되는 원본 데이터인 평문(plain text) x는 암호연산 모듈에서 함수 f에 의해 암호문 y(y=f(x))로 출력된다. 상술한 바와 같이, 마스킹 기법을 사용하지 않는 암호시스템의 경우, 상기 암호연산 모듈의 전력 곡선(power curve)을 분석하여 상기 평문 x를 추측하는 것이 가능하다.As shown in FIG. 7A, when performing a cryptographic operation without using a masking technique, plain text x, which is input source data, is a ciphertext y (y = f (x) by a function f in a cryptographic module. Will be displayed. As described above, in the case of an encryption system that does not use a masking technique, it is possible to infer the plain text x by analyzing a power curve of the encryption operation module.

그러나, 도 7b에 도시된 바와 같이, 마스킹 기법을 사용하는 경우 평문 x에 대하여 암호문 y(y=f(x))를 얻기 위해 마스킹 데이터 m을 이용하여 x'(x'=x

Figure 112008081691074-pat00008
m,
Figure 112008081691074-pat00009
는 xor 연산)의 암호문 y'(y'=f(x')=f(x)
Figure 112008081691074-pat00010
f(m))를 구한 후, 최종적으로 y를 얻기 위해 y'
Figure 112008081691074-pat00011
m'(m'=f(m)) 연산을 수행한다. 그 결과, 공격자가 암호화 연산 중의 중간값을 알 수 없게 되어 전력분석공격은 성공할 수 없게 된다. 상기 마스킹 기법은 블록 암호의 구성에 따라 적용 방법이 달라질 수 있으며, 각각의 블록 암호에 적합한 마스킹 기법에 대한 연구가 진행되고 있다.However, as shown in FIG. 7B, when the masking technique is used, the masking data m is used to obtain the ciphertext y (y = f (x)) for the plaintext x.
Figure 112008081691074-pat00008
m,
Figure 112008081691074-pat00009
Is the ciphertext y '(y' = f (x ') = f (x)
Figure 112008081691074-pat00010
f (m)) and finally y 'to get y
Figure 112008081691074-pat00011
m '(m' = f (m)) As a result, the attacker may not know the median value during the encryption operation and the power analysis attack may not be successful. Application of the masking technique may vary according to the configuration of the block cipher, and research on a masking technique suitable for each block cipher has been conducted.

한편, 상기 마스킹 기법을 사용하는 경우, 상기 x

Figure 112008081691074-pat00012
m의 암호문 y'(y'=y
Figure 112008081691074-pat00013
m')에서 m'을 알아야 실제 원하는 암호문 y를 얻을 수 있다. 하지만, 블록 암호 알고리즘은 비선형 연산을 수행하므로, 수정되지 않은 블록 암호 시스템에 있어서 상기 m'값은 x에 따라 달라지고 상기 m'값을 중간값의 노출 없이 아는 것도 상당한 연산량을 필요로 한다. 따라서, 상기 마스킹 기법을 블록 암호 시스템에 적용하는 경우 가장 큰 비용을 차지하는 것이 바로 비선형 연산에 관한 비용이다.On the other hand, when using the masking technique, the x
Figure 112008081691074-pat00012
ciphertext y '(y' = y in m
Figure 112008081691074-pat00013
You need to know m 'in m') to get the actual ciphertext y. However, since the block cipher algorithm performs a nonlinear operation, in an unmodified block cipher system, the m 'value depends on x, and knowing the m' value without exposing the median requires a significant amount of computation. Therefore, the largest cost in applying the masking scheme to the block cipher system is the cost of the nonlinear operation.

도 8에는 본 발명에 따른 마스킹을 이용한 AES 암호 시스템의 일례가 블록도로 도시되어 있다.8 is an example block diagram of an AES encryption system using masking in accordance with the present invention.

도 8을 참조하면, 상기 마스킹을 이용한 AES 암호 시스템은 입력 레지스터(810), 마스킹 암호 연산부(820), 마스킹 데이터 생성부(830), 키 스케쥴러(840), 키 레지스터(850) 및 제어부(860)를 포함한다.Referring to FIG. 8, the AES encryption system using masking includes an input register 810, a masking cryptographic calculator 820, a masking data generator 830, a key scheduler 840, a key register 850, and a controller 860. ).

본 발명에 따른 마스킹을 이용한 AES 암호 시스템은 원소 표현에 있어서 다항식 기저(polynomial basis)를 기반으로 할 때 더욱 효율적일 수 있다.AES cryptographic systems using masking according to the present invention may be more efficient when based on polynomial basis in element representation.

우선, 입력 레지스터(810)는, 입력 데이터(INPUT)를 저장하고 상기 마스킹 암호 연산부(820)로 출력한다.First, the input register 810 stores the input data INPUT and outputs the input data INPUT to the masking cryptographic calculator 820.

상기 마스킹 암호 연산부(820)는, 상기 입력 레지스터(810)를 통해 입력되는 데이터에 대하여 상기 마스킹 데이터 생성부(830)가 생성한 마스킹 데이터 및 상기 키 스케쥴러(840)가 생성한 라운드 키(round key)를 이용하여 마스킹 기법이 적용된 AES 암·복호화를 수행한다.The masking cryptographic calculator 820 may be configured to generate masking data generated by the masking data generator 830 and round keys generated by the key scheduler 840 with respect to data input through the input register 810. ) To perform AES encryption / decryption using masking technique.

상기 키 스케쥴러(840)는, 상기 키 레지스터(850)를 통해 입력되는 키 데이터를 이용하여 라운드 키를 생성하고, 상기 마스킹 암호 연산부(820)에 제공한다.The key scheduler 840 generates a round key using the key data input through the key register 850 and provides the mask to the masking cryptographic calculator 820.

상기 제어부(860)는, 상기 AES 암호 시스템의 각 구성부를 제어하여 마스킹을 이용한 AES 암·복호화가 수행되도록 한다.The controller 860 controls each component of the AES encryption system to perform AES encryption / decryption using masking.

이하, 상기 마스킹 암호 연산부(820)의 동작을 더욱 상세하게 설명한다.Hereinafter, the operation of the masking cryptographic calculator 820 will be described in more detail.

상기 마스킹 암호 연산부(820)는 마스킹 데이터를 이용하여 AES 각 라운드의 AddRoundKey, Subbytes, ShiftRows 및 MixColumn 단계를 수행한다. 위에서 설명한 바와 같이, 상기 네 단계 중 AddRoundKey 연산, ShiftRows 연산 및 MixColumn 연산은 선형연산 또는 아핀(affine) 연산이기 때문에 기본적인 마스킹 기법을 적용하여 용이하게 구현할 수 있다. 그러나, 상기 Subbytes 연산은 비선형 연산이기 때문에 마스킹 기법을 적용하는 것이 어렵고, 나아가 하드웨어 자원 소비가 증가하게 된다.The masking cryptographic calculator 820 performs AddRoundKey, Subbytes, ShiftRows and MixColumn steps for each round of AES using masking data. As described above, since the AddRoundKey operation, the ShiftRows operation, and the MixColumn operation among the four steps are linear operations or affine operations, they can be easily implemented by applying basic masking techniques. However, since the Subbytes operation is a nonlinear operation, it is difficult to apply a masking technique, and the hardware resource consumption is increased.

상기 마스킹 암호 연산부(820)에서 상기 Subbytes 단계를 수행하는 S-Box 블록들은 상술한 AES 암호 시스템에 대응하여 인버스 아핀(inverse affine) 변환부, 제1 멀티플렉서, 아이소모피즘(isomorphism) 변형부, 인버스 아이소모피즘(inverse isomorphism) 변형부, 어핀 변환부 및 제2 멀티플렉서를 포함할 수 있으며, 또한 상기 GF(((22)2)2) 역원 연산부(100)에 대응하는 본 발명에 따른 마스킹을 이용한 AES 역원 연산 장치를 포함한다. 상기 마스킹을 이용한 AES 역원 연산 장치에서 수행되는 마스킹 역원 연산을 제외하고 상기 마스킹 암호 연산부(820)의 인버스 아핀 변환부, 아핀 변환부, 아이소모피즘 변형부 및 인버스 아이소모피즘 변형부에서 수행하는 연산들은 모두 선형함수에 대한 것이므로, 마스킹 기법을 적용하지 않을 때 사용하는 하드웨어 모듈을 그대로 이용할 수 있다. 유의할 점은, 상기 마스킹 암호 연산부(820)의 상기 각각의 연산 모듈의 입·출력 데이터는 상기 마스킹 데이터 생성부(830)에서 생성된 마스킹 데이터를 이용하여 덧셈 마스킹된 데이터라는 것이다. 물론, 상기 마스킹을 이용한 AES 역원 연산 장치를 제외하고 상기 마스킹 암호 연산부(820)의 상기 각각의 연산 모듈들은 기존 마스킹 기법을 적용하여 구현될 수 있다.The S-Box blocks that perform the Subbytes step in the masking cryptographic calculator 820 are inverse affine transform units, first multiplexers, isomorphism transformation units, and inverses corresponding to the AES encryption system described above. Masking according to the present invention may include an inverse isomorphism deformation unit, affine transformation unit, and a second multiplexer, and also correspond to the GF (((2 2 ) 2 ) 2 ) inverse operator 100. AES inverse computing device used. Calculations performed by the inverse affine transformation unit, the affine transformation unit, the isomorphism transformation unit, and the inverse isomorphism transformation unit of the masking cryptographic operation unit 820 except for the masking inverse computation performed by the AES inverse calculation unit using the masking. All of these are for linear functions, so you can use the hardware modules that are used when the masking technique is not applied. Note that the input / output data of each operation module of the masking cryptographic calculator 820 is additive masked data using the masking data generated by the masking data generator 830. Of course, except for the AES inverse arithmetic apparatus using the masking, each of the calculation modules of the masking cryptographic calculator 820 may be implemented by applying an existing masking technique.

마스킹 기법을 적용한 역원 연산의 경우 곱셈기 구현에 대부분의 비용이 소요된다. 따라서, 본 발명에 따른 마스킹을 이용한 AES 역원 연산 장치는 마스킹 역원 연산에 사용되는 곱셈기의 개수를 최소화하는 방법을 고려하였다.Inverse operations using masking techniques are most expensive to implement multipliers. Therefore, the AES inverse computing device using masking according to the present invention considered a method of minimizing the number of multipliers used for the masking inverse calculation.

도 9에는 본 발명에 따른 마스킹을 이용한 AES 역원 연산 장치의 일례가 블록도로 도시되어 있다.9 is an example block diagram of an AES inverse computing device using masking in accordance with the present invention.

도 10에는 본 발명에 따른 마스킹을 이용한 AES 역원 연산 방법의 일례가 흐름도로 도시되어 있다.10 is a flowchart illustrating an example of an AES inverse calculation method using masking according to the present invention.

도 9 및 도 10을 참조하면, 본 발명에 따른 마스킹을 이용한 AES 역원 연산 장치는 마스킹 필드변환부(910), 마스킹 인버젼 연산부(920) 및 마스킹 필드역변환부(930)를 포함하며, 프레시 마스킹부(940)를 더 포함할 수 있다.9 and 10, the AES inverse computing device using masking according to the present invention includes a masking field converter 910, a masking inversion calculator 920, and a masking field inverse converter 930, and is fresh masked. A portion 940 may be further included.

본 발명에 따른 마스킹을 이용한 AES 역원 연산 장치는, 원소 표현에 있어서 다항식 기저(polynomial basis)를 기반으로 할 때 더욱 효율적일 수 있다.The AES inverse computing device using masking according to the present invention can be more efficient when based on a polynomial basis in elemental representation.

우선, 상기 마스킹을 이용한 AES 역원 연산 장치의 입력 마스킹 값을 m=(mh∥ml), 출력 마스킹 값을 m'=(mh'∥ml')이라 정의하면, 상기 마스킹을 이용한 AES 역원 연산 장치에서 수행되는 역원 연산을 다음과 같이 수식적으로 나타낼 수 있다.First, when an input masking value of the AES inverse arithmetic unit using the masking is defined as m = (m h ∥ m l ) and the output masking value is m ′ = (m h '∥m l '), the AES using the masking is defined. The inverse calculation performed by the inverse computing device may be expressed as follows.

제1 단계. A+m=(ah+mh)r+(al+ml)로부터 d+md의 연산. First step. Calculation of d + m d from A + m = (a h + m h ) r + (a l + m l ).

제2 단계. d+md로부터 d'+md'의 연산. Second step. calculated from d m d + d '+ d m'.

제3 단계. d'+md'과 ah+mh로부터 d'ah+mh'의 연산. Third step. Calculation of d'a h + m h 'from d' + m d 'and a h + m h .

제4 단계. d'+md', ah+mh, al+ml로부터 d'(ah+al)+ml'의 연산. 4th step. calculation of d '+ d m', a + h m h, a l l + d from the m '(a + h a l) m + l'.

상기 마스킹을 이용한 AES 역원 연산 장치는 상기 제3 단계 및 상기 제4 단계의 연산 결과를 통해 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과의 출력한다.The AES inverse computing device using the masking outputs the result of the addition masking inverse calculation on the complex GF (((2 2 ) 2 ) 2 ) through the calculation results of the third and fourth steps.

상기 마스킹을 이용한 AES 역원 연산 장치의 연산 수행 중 나타날 수 있는 모든 중간 연산값은 상기 원소(A)의 8비트 값과 특정 상수로부터 생성될 수 있는 모든 중간값에 독립적이어야만 한다. 후술하겠지만, 상기 md 및 md'은 각각 상기 마스킹 인버젼 연산부(920)가 수행하는 GF((22)2) 상에서의 마스킹 역원 연산에 대한 입력 및 출력 마스킹 데이터 값이다.All intermediate calculation values that may appear during the calculation of the AES inverse arithmetic unit using the masking should be independent of the 8-bit value of the element A and all intermediate values that can be generated from a specific constant. As will be described later, m d and m d ′ are input and output masking data values for masking inverse operations on GF ((2 2 ) 2 ) respectively performed by the masking inversion calculator 920.

본 명세서에서는 설명의 편의를 위해 수학식 5와 같이 기호를 정의한다.In the present specification, for convenience of description, a symbol is defined as shown in Equation 5.

Figure 112008081691074-pat00014
.
Figure 112008081691074-pat00014
.

Figure 112008081691074-pat00015
. (단, d'=d-1)
Figure 112008081691074-pat00015
. (Where d '= d -1 )

Figure 112008081691074-pat00016
Figure 112008081691074-pat00016

상기 마스킹을 이용한 AES 역원 연산 장치의 상기 마스킹 필드변환부(910)는, 복합체 GF(((22)2)2) 상의 원소(A)에 대해 입력 마스킹 데이터(m)를 이용하여 부분체 GF((22)2) 상의 덧셈 마스킹된 출력값(d+md)을 생성한다(S10). 즉, 상기 제1 단계의 연산을 수행한다. 이 경우, 상기 원소(A) 또는 복합체 GF(((22)2)2) 상의 마스킹된 원소(A+m)는 상기 아이소모피즘 변형부에서 유한체 GF(28) 상의 원소에 대한 아이소모피즘(isomorphism) 변형을 통해 생성된다. The masking field transforming unit 910 of the AES inverse computing device using the masking, the partial GF using the input masking data (m) for the element (A) on the complex GF (((2 2 ) 2 ) 2 ) The addition masked output value d + m d on ((2 2 ) 2 ) is generated (S10). That is, the operation of the first step is performed. In this case, the masked element (A + m) on the element (A) or the composite GF (((2 2 ) 2 ) 2 ) is isotropic to the element on the finite body GF (2 8 ) at the isomorphism modification. It is produced through the deformation of isomorphism.

상기 마스킹 필드변환부(910)가 수행하는 연산을 수식적으로 나타내면 수학식 6과 같다.Equation (6) is a mathematical expression of the operation performed by the masking field converter 910.

Figure 112008081691074-pat00017
Figure 112008081691074-pat00017

상기 수학식 6에서, λ는 GF(((22)2)2)의 기약다항식 P 2(x)=x2+x+λ의 상수,

Figure 112008081691074-pat00018
,
Figure 112008081691074-pat00019
, ah 및 mh는 각각 상기 원소(A) 및 상기 입력 마스킹 데이터(m)의 MSB(Most Significant Bit)를 포함하는 상위 4비트 값, 그리고 al 및 ml은 LSB(Least Significant Bit)를 포함하는 하위 4비트 값을 나타낸다.In Equation 6, λ is a constant polynomial P 2 (x) = x 2 + x + λ of GF (((2 2 ) 2 ) 2 ),
Figure 112008081691074-pat00018
,
Figure 112008081691074-pat00019
, a h And m h are upper 4 bit values including the most significant bit of the element A and the input masking data m, respectively, and a l and m l are lower including a Least Significant Bit (LSB). Represents a 4-bit value.

상기 수학식 6에서, 각 곱셈, 제곱, 상수곱에 대한 결과값들을 덧셈 연산(XOR 연산)할 때에는 의미있는 중간값과 연관성이 없도록 연산 순서까지 고려하여야 한다. 예를 들어, 상기 수학식 6의 연산 과정에서 a+S1의 연산이 먼저 수행된다면 이는 λah 2 값으로 전력 분석 공격에 취약점이 드러나게 된다. 이러한 단순한 예뿐만 아니라, 마스킹 값의 각 비트값이 0.5가 아닌 다른 확률로 '0' 또는 '1'에 편중된다면 이 부분도 역시 전력 분석 공격에 취약점이 될 수 있다. 이러한 편중 현상을 방지하기 위해 프레시 마스크(fresh mask; fm)를 사용하여 의미있는 중간 연산값과의 연관성을 제거해야 한다. 프레시 마스크란 최종 결과의 마스킹 값에는 영향을 주지않는 값으로 중간 연산값 데이터의 편중을 방지하기 위해 사용되는 일종의 마스킹 데이터이다.In Equation 6, when adding results (XOR operation) for each multiplication, square, and constant product, the order of calculation should be considered so as not to be associated with a meaningful intermediate value. For example, if the a + S1 operation is performed first in the operation of Equation 6, the λa h 2 value indicates a vulnerability to the power analysis attack. In addition to this simple example, if each bit of the masking value is biased towards '0' or '1' with a probability other than 0.5, this may also be vulnerable to power analysis attacks. To prevent this bias, a fresh mask (fm) should be used to remove the association with meaningful intermediate operations. The fresh mask is a kind of masking data that is used to prevent the bias of the intermediate arithmetic value data without affecting the masking value of the final result.

따라서, 본 발명에 따른 마스킹을 이용한 AES 역원 연산 장치는, 4비트의 프 레시 마스킹 데이터(fm)를 이용하여 중간 연산값을 구성하는 각각의 비트값이 상기 중간 연산값에서 다른 비트값과 동일한 확률로 나타나도록 덧셈 마스킹을 수행하는 상기 프레시 마스킹부(940)를 더 포함할 수 있다.Accordingly, in the AES inverse arithmetic unit using masking according to the present invention, the probability that each bit value constituting the intermediate operation value using 4 bits of fresh masking data fm is equal to another bit value in the intermediate operation value. It may further include the fresh masking unit 940 to perform the addition masking to appear.

상기 프레시 마스킹 데이터(fm)를 사용하고, 안전성을 높이기 위해 연산 순서를 고려하는 경우 상기 수학식 6은 수학식 7과 같이 변형될 수 있다..  When using the fresh masking data fm and considering the calculation order to increase safety, Equation 6 may be modified as in Equation 7.

Figure 112008081691074-pat00020
Figure 112008081691074-pat00020

도 11에는 프레시 마스킹 데이터를 사용하는 상기 마스킹 필드변환부(910)의 구체적인 일례가 블록도로 도시되어 있다.11 illustrates a specific example of the masking field converter 910 using fresh masking data.

도 11을 참조하면, 상기 마스킹 필드변환부(910)는 상기 수학식 7의 연산을 수행하도록 구현되어 있으며, 프레시 마스킹과 관련된 배타적논리합 연산 소자들이 빗금으로 나타나 있다.Referring to FIG. 11, the masking field converter 910 is implemented to perform the operation of Equation 7, and exclusive logical sum arithmetic elements related to fresh masking are indicated by hatching.

상기 프레시 마스킹 데이터는 별도로 생성한 4비트 난수일 수 있지만, 본 발명의 일 실시예에 있어서 상기 프레시 마스킹부(940)는 상기 마스킹을 이용한 AES 역원 연산 장치의 상기 출력 마스킹 값(m') 중 상위 4비트 값(mh') 또는 하위 4비트 값(ml')을 상기 프레시 마스킹 데이터로 이용하여 난수 생성 비용을 더욱 감소시킬 수 있다. 그 이유는, 상기 mh'값 또는 ml'값은 상기 수학식 7을 연산할 때 다른 값들과는 연관성이 없는 난수로 안전성에는 영향을 미치지 않기 때문이다.The fresh masking data may be a 4-bit random number generated separately, but in one embodiment of the present invention, the fresh masking unit 940 is higher among the output masking values m 'of the AES inverse calculating device using the masking. A 4 bit value (m h ') or a lower 4 bit value (m l ') can be used as the fresh masking data to further reduce the random number generation cost. This is because the m h 'value or the m l ' value is a random number that is not related to other values when calculating Equation 7 and does not affect safety.

그 다음, 상기 마스킹 인버젼 연산부(920)는 상기 마스킹 필드변환부(910)의 상기 덧셈 마스킹된 출력값(d+md)에 대해 상기 마스킹 데이터(md)를 이용하여 부분체 GF((22)2) 상의 덧셈 마스킹된 인버젼(inversion) 연산값(d'+md')을 생성한다(S12). 즉, 상기 제2 단계의 연산을 수행한다.Subsequently, the masking inversion calculation unit 920 uses the masking data m d for the addition masked output value d + m d of the masking field converter 910 to generate the partial GF ((2). 2) 2) to produce the inversion (inversion) operation value (d '+ m d') addition of masking on (S12). That is, the operation of the second step is performed.

일 실시예에 있어서, 상기 마스킹 인버젼 연산부(920)가 상기 마스킹을 이용한 AES 역원 연산 장치의 출력 마스킹 값(m') 중 상위 4비트 값(mh') 또는 하위 4비트 값(ml')을 상기 마스킹 데이터(md)로 이용하도록 구현함으로써 난수 생성 비용을 감소시키고 연산 효율성을 높일 수 있다. 그 이유는, 상기 mh'값 또는 ml'값은 상기 수학식 7을 연산할 때 다른 값들과는 연관성이 없는 난수로 안전성에는 영향을 미치지 않기 때문이다. 유의할 점은, 상기 마스킹 데이터(md)가 상기 마스킹을 이용한 AES 역원 연산 장치의 출력 마스킹 값(m') 중 상위 4비트 값(mh') 또는 하위 4비트 값(ml')에 해당하는 경우, 상기 프레시 마스킹부(940)는 각각 상기 하위 4비트 값(ml') 또는 상기 상위 4비트 값(mh')을 상기 프레시 마스킹 데이터로 이용하는 것이 바람직하다는 것이다. 그 이유는, fm=md=(mh' 또는 ml')의 경우 상기 수학식 7에 있어서, ((fm+a)+M1)+((md+b)+M2) 연산은 (a+M1+b+M2) 형태의 연산으로 수행될 수 있으며, 따라서 fm≠md의 값을 사용하는 것이 안전성을 더욱 보장할 수 있기 때문이다.In one embodiment, the masking inversion calculation unit 920 is the upper four-bit value (m h ') or the lower four-bit value (m l ') of the output masking value (m ') of the AES inverse arithmetic unit using the masking. ) Can be used as the masking data (m d ) to reduce the random number generation cost and increase the computational efficiency. This is because the m h 'value or the m l ' value is a random number that is not related to other values when calculating Equation 7 and does not affect safety. It should be noted that the masking data m d corresponds to an upper 4 bit value m h 'or a lower 4 bit value m l ' of an output masking value m 'of the AES inverse arithmetic unit using the masking. In this case, the fresh masking unit 940 preferably uses the lower 4-bit value m l 'or the upper 4-bit value m h ' as the fresh masking data, respectively. The reason for this is that in the case of fm = m d = (m h 'or m l '), in (7), the ((fm + a) + M1) + ((m d + b) + M2) operation is ( This can be performed by a + M1 + b + M2) type of operation, so using a value of fm ≠ m d can further ensure safety.

아래에서 다시 설명하겠지만, 상기 마스킹 인버젼 연산부(920)는 부분체 GF(22) 상의 연산을 이용하여 부분체 GF((22)2) 상의 인버젼 연산을 수행하는 것으로서, 그 입력 데이터가 4비트 값인 점을 제외하면, 부분체 GF((22)2) 상의 연산을 이용하여 부분체 GF(((22)2)2) 상의 인버젼 연산을 수행하는 상기 마스킹을 이용한 AES 역원 연산 장치와 동일한 원리로 구현될 수 있다.As will be described again below, the masking inversion calculation unit 920 performs an inversion operation on the sub-part GF ((2 2 ) 2 ) by using an operation on the sub-part GF (2 2 ). AES inverse computation using the masking to perform inversion operations on subpart GF (((2 2 ) 2 ) 2 ) using operations on subpart GF ((2 2 ) 2 ) except that it is a 4-bit value. It can be implemented on the same principle as the device.

그 다음, 상기 마스킹 필드역변환부(930)는 상기 마스킹 인버젼 연산부(920)의 상기 덧셈 마스킹된 인버젼 연산값(d'+md') 대해 부분체 GF((22)2) 상의 곱셈 및 배타적논리합(XOR) 연산과 필드 변환(field conversion)을 이용하여 상기 원소(A)에 대응하는 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과(A-1+m')를 생성한다(S14). 즉, 상기 제3 단계 및 상기 제4 단계 연산을 수행하여 상기 마스킹을 이용한 AES 역원 연산 장치의 출력값(A-1+m')을 생성한다.Next, the masking field inverse transform unit 930 multiplies the partial mask GF ((2 2 ) 2 ) with respect to the addition masked inversion operation value d '+ m d ' of the masking inversion calculator 920. And an additive masked inverse calculation result (A -1 + m) on the complex GF (((2 2 ) 2 ) 2 ) corresponding to the element (A) using an exclusive logic sum (XOR) operation and a field conversion. ') Is generated (S14). That is, the third step and the fourth step are performed to generate an output value A −1 + m ′ of the AES inverse calculating device using the masking.

상기 마스킹 필드역변환부(930)가 수행하는 상기 제3 단계의 연산을 수식적으로 나타내면 수학식 8과 같다.The masking field inverse transform unit 930 may be represented by Equation (8).

Figure 112008081691074-pat00021
Figure 112008081691074-pat00021

상기 수학식 8에서,

Figure 112008081691074-pat00022
이다. 상기 수학식 8은 프레시 마스킹 데 이터(fm)로서 ml'을 사용하고 상기 마스킹 인버젼 연산부(920)의 입력 마스킹 값이 되는 상기 마스킹 데이터(md)로서 mh'를 사용한 경우이다. 이 경우, md'=mh 이다. 상기 수학식 8에서 ml'을 이용한 두 번의 덧셈을 통하여 각각의 덧셈 연산의 결과가 중간 연산값과 완벽하게 연관성이 없는 데이터가 되도록 한다.In Equation 8,
Figure 112008081691074-pat00022
to be. Equation (8) is the case where m l 'is used as the fresh masking data fm and m h ' is used as the masking data m d which becomes the input masking value of the masking inversion calculator 920. In this case, m d '= m h . In the above Equation 8, through two additions using m l ', the result of each addition operation is data that is not completely related to the intermediate operation value.

안전성을 높이기 위해 우선 연산 순서를 고려하는 경우, 상기 수학식 8은 수학식 9와 같이 변형될 수 있다.In order to first consider the calculation order in order to increase safety, Equation 8 may be modified as in Equation 9.

Figure 112008081691074-pat00023
Figure 112008081691074-pat00023

상기 마스킹 필드역변환부(930)가 수행하는 상기 제4 단계의 연산을 수식적으로 나타내면 수학식 10과 같다.If the masking field inverse transform unit 930 performs the fourth step operation mathematically, it is expressed by Equation 10.

Figure 112008081691074-pat00024
Figure 112008081691074-pat00024

상기 수학식 10은 프레시 마스킹 데이터(fm)로서 ml'을 사용하고 상기 마스킹 인버젼 연산부(920)의 입력 마스킹 값이 되는 상기 마스킹 데이터(md)로서 mh'를 사용한 경우이다.Equation 10 is used when m l 'is used as the fresh masking data fm and m h ' is used as the masking data m d , which is an input masking value of the masking inversion calculation unit 920.

상기 수학식 7 및 상기 수학식 9와 마찬가지로 안전성을 높이기 위해 연산 순서를 고려하는 경우 상기 수학식 10은 수학식 11과 같이 변형될 수 있다.Like Equation 7 and Equation 9, when Equation 10 is considered in order to increase safety, Equation 10 may be modified as in Equation 11.

Figure 112008081691074-pat00025
Figure 112008081691074-pat00025

상기 마스킹 필드역변환부(930)는, 상기 제3 단계 및 제4 단계의 연산 결과값인 d'ah+mh' 및 d'(ah+al)+ml' 값에 대한 필드 변환을 통해 상기 원소(A)에 대응하는 상기 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과(A-1+m')를 생성한다.The masking field inverse transform unit 930 converts fields of d'a h + m h 'and d' (a h + a l ) + m l ', which are the calculation result values of the third and fourth steps. The addition masked inverse calculation result (A -1 + m ') on the complex GF (((2 2 ) 2 ) 2 ) corresponding to the element (A) is generated.

도 12에는 프레시 마스킹 데이터를 사용하는 상기 마스킹 필드역변환부(930)의 구체적인 일례가 블록도로 도시되어 있다.12 illustrates a specific example of the masking field inverse transform unit 930 using fresh masking data.

도 12를 참조하면, 상기 마스킹 필드역변환부(930)는 상기 수학식 9 및 상기 수학식 11의 연산을 수행하도록 구현되어 있으며, 프레시 마스킹과 관련된 배타적논리합 연산 소자들이 빗금으로 나타나 있다.Referring to FIG. 12, the masking field inverse transform unit 930 is implemented to perform the operations of Equations 9 and 11, and exclusive logical sum computation elements related to fresh masking are indicated by hatching.

위에서 언급한 바와 같이, 상기 마스킹 인버젼 연산부(920)는 결국 부분체 GF((22)2) 상의 연산을 이용하여 부분체 GF(((22)2)2) 상의 인버젼 연산을 수행하는 상기 마스킹을 이용한 AES 역원 연산 장치와 동일한 원리로 구현될 수 있다. 즉, 곱셈, 제곱, 상수곱, 및 배타적논리합 연산을 수행하는 각각의 연산 소자의 연산 데이터가 4비트에서 2비트로 줄어들었을 뿐, 그 구성 모듈들은 서로 동일하게 구성될 수 있다.As mentioned above, the mask inversion operation unit 920 in the end portion of body GF ((2 2) 2) operation part body GF (((2 2) 2 ) 2) using an on performing the inversion operation on the It can be implemented on the same principle as the AES inverse arithmetic unit using the masking. That is, the calculation data of each computing element that performs multiplication, square, constant product, and exclusive logical sum operations is reduced from 4 bits to 2 bits, and the constituent modules can be configured identically to each other.

따라서, 상기 마스킹 인버젼 연산부(920)부는, 상기 마스킹 필드변환부의 상 기 덧셈 마스킹된 출력값(d+md) 및 상기 마스킹 데이터(md)를 이용하여 부분체 GF(22) 상의 덧셈 마스킹된 출력값을 생성하는 서브 마스킹 필드변환부, 상기 서브 마스킹 필드변환부의 상기 부분체 GF(22) 상의 덧셈 마스킹된 출력값에 대해 2비트의 마스킹 데이터를 이용하여 부분체 GF(22) 상의 덧셈 마스킹된 인버젼 연산값을 생성하는 서브 마스킹 인버젼 연산부, 및 상기 서브 마스킹 인버젼 연산부의 상기 덧셈 마스킹된 인버젼 연산값에 대해 부분체 GF(22) 상의 곱셈 및 배타적논리합 연산과 필드 변환을 이용하여 상기 마스킹 필드변환부의 상기 덧셈 마스킹된 출력값에 대응하는 부분체 GF((22)2) 상의 덧셈 마스킹된 역원 연산 결과를 생성하는 서브 마스킹 필드역변환부를 포함할 수 있다.Accordingly, the masking inversion calculator 920 may add masking on the partial GF 2 2 using the masked output value d + m d and the masking data m d . sub masking field conversion unit, the sub-mask field conversion unit plus the masking on the part body GF (2 2) addition using a masking data of two bits for masking the output part body GF (2 2) on to produce a output value A multimask and exclusive logical sum operation on subfield GF (2 2 ) and a field transform on a submasking inversion operation unit that generates a calculated inversion operation value, and the addition masked inversion operation value of the submasking inversion operation unit. A submasking field inverse transform unit for generating an additive masked inverse calculation result on the subfield GF ((2 2 ) 2 ) corresponding to the additive masked output value of the masking field transform unit It may include.

일 실시예에 있어서, 본 발명에 따른 마스킹을 이용한 AES 역원 연산 장치 또는 이를 이용한 AES 암호 시스템은 마이크로프로세서상에 시스템 온 칩(system on chip) 형태로 구현할 수 있다. 본 발명을 마이크로프로세서로 구현하면 각종 시스템의 크기를 줄일 수 있고, 조립 과정을 단순화시킬 수 있으며, 제조 비용을 절감할 수 있는 등의 이점이 있다.In one embodiment, the AES inverse arithmetic apparatus using masking or the AES cryptographic system using the same may be implemented in the form of a system on chip on a microprocessor. If the present invention is implemented in a microprocessor, the size of various systems can be reduced, the assembly process can be simplified, and manufacturing costs can be reduced.

이하, 본 발명의 안전성 및 효율성을 검증한다.Hereinafter, the safety and efficiency of the present invention will be verified.

안전성safety

본 발명은 다음의 Lemma 에 의해 그 안전성을 검증받을 수 있다. 다음 Lemma 의 증명은 Oswald의 논문(E.Oswald, S.Mangard, N.Pramstaller, and V.Rijmen., "A Side-Channel Analysis Resistant Description of the AES S-box," FSE 2005, LNCS 3557, pp.3-423, Springer, 2005.)을 참고한다.The present invention is the following Lemma The safety can be verified by. The following Lemma 's proof is described in Oswald's paper (E. Oswald, S. Mangard, N. Prastaller, and V. Rijmen., "A Side-Channel Analysis Resistant Description of the AES S-box," FSE 2005, LNCS 3557, pp. .3-423, Springer, 2005.)

Lemma 1) 원소 a가 GF(2n)의 원소이고, ma가 a와 무관한 GF(2n) 위에서 균등한 분포에 의해 선택되어진 값일 때, a+ma는 a에 독립이다. Lemma 1) When element a is an element of GF (2 n ) and m a is a value chosen by an even distribution over GF (2 n ) independent of a , a + m a is independent of a.

Lemma 2) 원소 a,b가 GF(2n)의 원소이고, ma,mb가 a,b와 무관한 GF(2n) 위에서 균등한 분포에 의해 선택되어진 값일 때, (a+ma)(b+mb)는 a,b에 독립이다. Lemma 2) When elements a, b are elements of GF (2 n ), and m a , m b are values chosen by an even distribution over GF (2 n ) independent of a, b, then (a + m a (b + m b ) is independent of a and b.

Lemma 3) 원소 a가 GF(2n)의 원소이고, ma,mb가 a와 무관한 GF(2n) 위에서 균등한 분포에 의해 선택되어진 값일 때, (a+ma)mb는 a에 독립이다. Lemma 3) When element a is an element of GF (2 n ) and m a , m b is a value chosen by an even distribution over GF (2 n ) independent of a, (a + m a ) m b is is independent of a.

Lemma 4) 원소 a가 GF(2n)의 원소이고 원소 λ가 GF(2n)에서의 고정된 상수 값일 때, ma가 a, λ와 무관한 GF(2n) 위에서 균등한 분포에 의해 선택되어진 값이면 (a+ma)2λ는 a에 독립이다. Lemma 4) When element a is an element of GF (2 n ) and element λ is a fixed constant value at GF (2 n ), m a is equally distributed over GF (2 n ) independent of a, λ. (A + m a ) 2 λ is independent of a if it is a selected value.

효율성efficiency

표 1은 본 발명과 기존의 역원 연산 방식들을 비교한 것이다.Table 1 compares the present invention and conventional inverse algorithms.

Figure 112008081691074-pat00026
Figure 112008081691074-pat00026

상기 표 1에서, 기존 방식과의 비교는 상위 연산(GF((22)2) 곱셈연산, GF((22)2) 제곱연산, GF((22)2) 상수곱연산)을 중심으로 이루어졌다. 하위 연산인 GF((22)2) 덧셈연산은 다섯 가지 방법에서 큰 차이가 없으며, 그 비용이 상위 연산에 비해 상당히 작기 때문에 고려하지 않았다. 또한, GF((22)2) 에서의 역원 연산도 상위 연산이 유사하게 적용되므로 전체 역원 연산에 대한 비용이 상위 연산의 비용에 비례한다. GF((22)2)의 곱셈 연산과 제곱 연산은 비용 차이가 크다. 실제 GF((22)2)의 곱셈 연산 비용은 제곱 연산 비용보다 약 5.5배의 게이트 수가 요구되며, 상수곱 연산보다 약 7.5배가 요구된다. 따라서, AES S-Box 역원 연산에서 곱셈 연산량을 감소시키는 것이 비용 절감의 관건이다.In Table 1, the comparison with the conventional method centers on a higher order operation ( GF ((2 2 ) 2 ) multiplication operation, GF ((2 2 ) 2 ) square operation, GF ((2 2 ) 2 ) constant product operation). Was done. The sub operation, GF ((2 2 ) 2 ), is not very different in the five methods and is not taken into account because its cost is significantly smaller than that of the upper operation. In addition, since inverse operations in GF ((2 2 ) 2 ) are similarly applied to higher-order operations, the cost for all inverse operations is proportional to the cost of higher-order operations. Multiply and square operations of GF ((2 2 ) 2 ) have a large cost difference. The actual multiplication cost of GF ((2 2 ) 2 ) requires about 5.5 times the number of gates than the square cost and about 7.5 times the constant product. Therefore, reducing the amount of multiplication in the AES S-Box inverse operation is the key to cost reduction.

상기 표 1의 기존 방식들 중, Akkar 방식은 곱셈 마스킹 방식이고, Blomer 방식은 곱셈에 대한 덧셈 마스킹 방식이며, Oswald 방식 및 Zakeri 방식은 역원 연산의 전체 구조에 대한 마스킹을 적용하는 방식이다.Among the existing methods of Table 1, the Akkar method is a multiplication masking method, the Blomer method is an addition masking method for multiplication, and the Oswald method and the Zakeri method apply a masking scheme for the entire structure of the inverse operation.

상기 표 1에 나타난 바와 같이, 본 발명은 기존 역원 마스킹 방식들 중 비용면에서 가장 효율적인 것으로 알려진 상기 정규 기저(Normal bases) 기반의 Zakeri 방식에 비해 약 10.5%의 게이트 절감 효과가 있으며 그에 따라 하드웨어 효율 및 연산 속도를 개선한다.As shown in Table 1, the present invention has a gate reduction effect of about 10.5% compared to the normal bases based Zakeri method, which is known to be the most efficient in terms of conventional inverse masking methods, and thus hardware efficiency. And improve computation speed.

지금까지 본 발명에 대해 실시예들을 참고하여 설명하였다. 그러나 당업자라면 본 발명의 본질적인 기술적 사상으로부터 벗어나지 않는 범위에서 본 발명이 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 즉, 본 발명의 진정한 기술적 범위는 첨부된 특허청구범위에 나타나 있으며, 그와 균등범위 내에 있는 모든 차이점은 본 발명에 포함되는 것으로 해석되어야 할 것이다.So far, the present invention has been described with reference to the embodiments. However, one of ordinary skill in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential technical spirit of the present invention. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. That is, the true technical scope of the present invention is shown in the appended claims, and all differences within the equivalent scope will be construed as being included in the present invention.

도 1은 GF(28) 상의 역원 연산을 GF(((22)2)2) 상의 역원 연산을 이용하여 구현한 S-Box를 나타낸 블록도.1 is a block diagram illustrating an S-Box implementing inverse operations on GF (2 8 ) using inverse operations on GF (((2 2 ) 2 ) 2 ).

도 2는 GF(((22)2)2) 역원 연산부를 나타낸 블록도.2 is a block diagram showing a GF (((2 2 ) 2 ) 2 ) inverse calculating unit;

도 3은 4비트 곱셈연산 모듈을 나타낸 블록도.3 is a block diagram illustrating a 4-bit multiplication module.

도 4는 4비트의 제곱연산 모듈을 나타낸 블록도.4 is a block diagram illustrating a 4-bit squared operation module.

도 5는 GF((22)2) 인버젼 모듈을 나타낸 블록도.5 is a block diagram illustrating a GF ((2 2 ) 2 ) inversion module.

도 6은 2비트 곱셈연산 모듈의 논리회로를 나타낸 도면.6 illustrates a logic circuit of a 2-bit multiplication module.

도 7a 및 도 7b는 마스킹 기법의 기본 원리를 나타낸 도면.7A and 7B illustrate the basic principle of a masking technique.

도 8은 본 발명에 따른 마스킹을 이용한 AES 암호 시스템의 일례를 나타낸 블록도.8 is a block diagram showing an example of an AES encryption system using masking according to the present invention.

도 9는 본 발명에 따른 마스킹을 이용한 AES 역원 연산 장치의 일례를 나타낸 블록도.9 is a block diagram showing an example of an AES inverse computing device using masking according to the present invention;

도 10은 본 발명에 따른 마스킹을 이용한 AES 역원 연산 방법의 일례를 나타낸 흐름도.10 is a flowchart showing an example of an AES inverse calculation method using masking according to the present invention;

도 11은 프레시 마스킹 데이터를 사용하는 마스킹 필드변환부의 구체적인 일례를 나타낸 블록도.Fig. 11 is a block diagram showing a specific example of a masking field converter using fresh masking data.

도 12는 프레시 마스킹 데이터를 사용하는 마스킹 필드역변환부의 구체적인 일례를 나타낸 블록도.Fig. 12 is a block diagram showing a concrete example of a masking field inverse transform unit using fresh masking data.

Claims (20)

복합체 GF(((22)2)2) 상의 원소(A)에 대해 제1 마스킹 데이터를 이용하여 부분체 GF((22)2) 상의 덧셈 마스킹된 출력값을 생성하는 마스킹 필드변환부;A masking field transform unit for generating an additive masked output value on the subpart GF ((2 2 ) 2 ) using first masking data on the element A on the complex GF (((2 2 ) 2 ) 2 ); 상기 마스킹 필드변환부의 상기 덧셈 마스킹된 출력값에 대해 제2 마스킹 데이터를 이용하여 부분체 GF((22)2) 상의 덧셈 마스킹된 인버젼(inversion) 연산값을 생성하는 마스킹 인버젼 연산부; 및A masking inversion calculation unit configured to generate an addition masked inversion operation value on the partial GF ((2 2 ) 2 ) using second masking data with respect to the addition masked output value of the masking field converter; And 상기 마스킹 인버젼 연산부의 상기 덧셈 마스킹된 인버젼 연산값에 대해 부분체 GF((22)2) 상의 곱셈 및 배타적논리합 연산과 필드 변환(field conversion)을 이용하여 상기 원소(A)에 대응하는 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과를 생성하는 마스킹 필드역변환부를 포함하는 마스킹을 이용한 AES 역원 연산 장치.The masking inversion calculation unit corresponds to the element (A) using a multiplication and an exclusive logical sum operation on the subfield GF ((2 2 ) 2 ) and a field conversion with respect to the addition masked inversion operation value. An AES inverse computing device using masking comprising a masking field inverse transform unit for generating an additive masked inverse computing result on a composite GF (((2 2 ) 2 ) 2 ). 제1항에 있어서,The method of claim 1, 상기 마스킹을 이용한 AES 역원 연산 장치는, 원소 표현에 있어서 다항식 기저(polynomial basis)를 기반으로 하는 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 장치.The apparatus for calculating the AES inverse using the masking is based on a polynomial basis in the element representation. 제1항에 있어서,The method of claim 1, 상기 마스킹 필드변환부의 상기 복합체 GF(((22)2)2) 상의 원소(A)는, 유한체 GF(28) 상의 원소에 대한 아이소모피즘(isomorphism) 변형을 통해 생성되는 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 장치.The element (A) on the complex GF (((2 2 ) 2 ) 2 ) of the masking field transform unit is generated by isomorphism modification of an element on the finite body GF (2 8 ). AES inverse arithmetic unit using masking. 제1항에 있어서,The method of claim 1, 상기 마스킹 인버젼 연산부는, 상기 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과의 출력 마스킹 값 중 상위 4비트 값 또는 하위 4비트 값을 상기 제2 마스킹 데이터로 이용하는 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 장치.The masking inversion calculation unit may be configured to use an upper 4 bit value or a lower 4 bit value among the output masking values of the result of the addition masking inverse operation on the complex GF (((2 2 ) 2 ) 2 ) as the second masking data. AES inverse arithmetic unit using masking. 제1항에 있어서,The method of claim 1, 상기 마스킹을 이용한 AES 역원 연산 장치가 포함하는 각 구성요소는, 4비트의 제3 마스킹 데이터를 이용하여 상기 각 구성요소가 생성하는 중간 연산값을 구성하는 각각의 비트값이 상기 중간 연산값에서 다른 비트값과 동일한 확률로 나타나도록 덧셈 마스킹을 수행하는 프레시 마스킹부를 더 포함하는 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 장치.Each component included in the AES inverse arithmetic unit using the masking may have different bit values constituting an intermediate operation value generated by each of the components using four bits of third masking data. An AES inverse computing device using masking, further comprising: a fresh masking unit that performs addition masking so that a probability equal to a bit value appears. 제5항에 있어서,The method of claim 5, 상기 프레시 마스킹부는, 상기 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과의 출력 마스킹 값 중 상위 4비트 값 또는 하위 4비트 값을 상기 제3 마스킹 데이터로 이용하는 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 장치.The fresh masking unit may use, as the third masking data, an upper 4 bit value or a lower 4 bit value among the output masking values of the addition masked inverse calculation result on the complex GF (((2 2 ) 2 ) 2 ). AES inverse arithmetic unit using masking. 제5항에 있어서,The method of claim 5, 상기 프레시 마스킹부는, 상기 제2 마스킹 데이터가 상기 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과의 출력 마스킹 값 중 상위 4비트 값 또는 하위 4비트 값에 해당하는 경우, 상기 출력 마스킹 값 중 각각 하위 4비트 값 또는 상위 4비트 값을 상기 제3 마스킹 데이터로 이용하는 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 장치.The fresh masking unit, when the second masking data corresponds to an upper 4 bit value or a lower 4 bit value among the output masking values of the result of the addition masking inverse operation on the complex GF (((2 2 ) 2 ) 2 ), And a lower 4 bit value or a higher 4 bit value among the output masking values, respectively, as the third masking data. 제1항에 있어서,The method of claim 1, 상기 마스킹 인버젼 연산부는, 부분체 GF(22) 상의 연산을 이용하여 상기 부분체 GF((22)2) 상의 인버젼 연산을 수행하는 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 장치.AES inverse operation unit using a mask, characterized in that to carry out the masked version of the calculation unit, the partial body GF (22) GF said body portion by an operation on the ((2 2) 2) on the inversion calculation. 제1항에 있어서,The method of claim 1, 상기 마스킹 인버젼 연산부는,The masking inversion calculation unit, 상기 마스킹 필드변환부의 상기 덧셈 마스킹된 출력값 및 상기 제2 마스킹 데이터를 이용하여 부분체 GF(22) 상의 덧셈 마스킹된 출력값을 생성하는 서브 마스킹 필드변환부;A sub masking field converter configured to generate an additive masked output value on a part GF (2 2 ) by using the masked output value of the masking field converter and the second masking data; 상기 서브 마스킹 필드변환부의 상기 부분체 GF(22) 상의 덧셈 마스킹된 출력값에 대해 2비트의 제4 마스킹 데이터를 이용하여 부분체 GF(22) 상의 덧셈 마스킹된 인버젼 연산값을 생성하는 서브 마스킹 인버젼 연산부; 및A sub mask that generates an additive masked inversion operation value on the sub-part GF (2 2 ) by using 4 bits of masking data with respect to the added masked output value on the sub-part GF (2 2 ) by the sub masking field converter A masking inversion calculator; And 상기 서브 마스킹 인버젼 연산부의 상기 덧셈 마스킹된 인버젼 연산값에 대해 부분체 GF(22) 상의 곱셈 및 배타적논리합 연산과 필드 변환을 이용하여 상기 마스킹 필드변환부의 상기 덧셈 마스킹된 출력값에 대응하는 부분체 GF((22)2) 상의 덧셈 마스킹된 역원 연산 결과를 생성하는 서브 마스킹 필드역변환부를 포함하는 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 장치.A portion corresponding to the additive masked output value of the masking field transform unit by using a multiplication and an exclusive logical sum operation on the subfield GF (2 2 ) and a field transform on the addition masked inversion operation value of the sub masking inversion operator. And an inverse masking field inverse transform unit for generating an additive masked inverse calculation result on sieve GF ((2 2 ) 2 ). 제1항 내지 제9항 중 어느 한 항에 따른 마스킹을 이용한 AES 역원 연산 장치를 이용하여 S박스(S-box) 연산을 수행하는 AES 암호 시스템.An AES encryption system for performing S-box operations using an AES inverse computing device using masking according to any one of claims 1 to 9. 복합체 GF(((22)2)2) 상의 원소(A)에 대해 제1 마스킹 데이터를 이용하여 부분체 GF((22)2) 상의 덧셈 마스킹된 출력값을 생성하는 마스킹 필드변환 단계;A masking field transform step of generating an additive masked output value on subpart GF ((2 2 ) 2 ) using first masking data for element A on complex GF (((2 2 ) 2 ) 2 ); 상기 마스킹 필드변환 단계의 상기 덧셈 마스킹된 출력값에 대해 제2 마스킹 데이터를 이용하여 부분체 GF((22)2) 상의 덧셈 마스킹된 인버젼(inversion) 연산값을 생성하는 마스킹 인버젼 연산 단계; 및A masking inversion calculation step of generating an addition masked inversion operation value on the partial GF ((2 2 ) 2 ) using second masking data with respect to the addition masked output value of the masking field conversion step; And 상기 마스킹 인버젼 연산 단계의 상기 덧셈 마스킹된 인버젼 연산값에 대해 부분체 GF((22)2) 상의 곱셈 및 배타적논리합 연산과 필드 변환을 이용하여 상기 원소(A)에 대응하는 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과를 생성하는 마스킹 필드역변환 단계를 포함하는 마스킹을 이용한 AES 역원 연산 방법.The complex GF corresponding to the element (A) using a multiplication and an exclusive logical sum operation on the partial GF ((2 2 ) 2 ) and a field transform on the addition masked inversion operation value of the masking inversion operation step. A masking field inverse transform step of generating an additive masked inverse computation result of ((2 2 ) 2 ) 2 ). 제11항에 있어서,The method of claim 11, 상기 마스킹을 이용한 AES 역원 연산 방법은, 원소 표현에 있어서 다항식 기저(polynomial basis)를 기반으로 하는 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 방법.The method of calculating the AES inverse using the masking, the method of calculating the AES inverse using the masking, characterized in that based on the polynomial basis (polynomial basis) in the element representation. 제11항에 있어서,The method of claim 11, 상기 마스킹 필드변환 단계의 상기 복합체 GF(((22)2)2) 상의 원소(A)는, 유한체 GF(28) 상의 원소에 대한 아이소모피즘(isomorphism) 변형을 통해 생성되는 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 방법.The element (A) on the complex GF (((2 2 ) 2 ) 2 ) in the masking field transformation step is generated through isomorphism modification of the element on the finite body GF (2 8 ). AES inverse calculation method using masking. 제11항에 있어서,The method of claim 11, 상기 마스킹 인버젼 연산 단계는, 상기 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과의 출력 마스킹 값 중 상위 4비트 값 또는 하위 4비트 값을 상기 제2 마스킹 데이터로 이용하는 단계인 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 방법.The masking inversion operation may include using an upper 4 bit value or a lower 4 bit value among the output masking values of the result of the addition masked inverse operation on the complex GF (((2 2 ) 2 ) 2 ) as the second masking data. AES inverse calculation method using masking, characterized in that the step. 제11항에 있어서,The method of claim 11, 상기 마스킹을 이용한 AES 역원 연산 방법의 각 단계는, 4비트의 제3 마스킹 데이터를 이용하여 상기 각 단계의 중간 연산값을 구성하는 각각의 비트값이 상기 중간 연산값에서 다른 비트값과 동일한 확률로 나타나도록 덧셈 마스킹을 수행하는 프레시 마스킹 단계를 포함하는 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 방법.In each step of the AES inverse calculation method using the masking, each bit value constituting the intermediate operation value of each step using 4 bits of third masking data has the same probability as other bit values in the intermediate operation value. And a fresh masking step of performing addition masking so as to appear. 제15항에 있어서,The method of claim 15, 상기 프레시 마스킹 단계는, 상기 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과의 출력 마스킹 값 중 상위 4비트 값 또는 하위 4비트 값을 상기 제3 마스킹 데이터로 이용하는 단계인 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 방법.The fresh masking step may include using an upper 4 bit value or a lower 4 bit value among the output masking values of the result of the addition masking inverse operation on the complex GF (((2 2 ) 2 ) 2 ) as the third masking data. AES inverse calculation method using masking, characterized in that. 제15항에 있어서,The method of claim 15, 상기 프레시 마스킹 단계는, 상기 제2 마스킹 데이터가 상기 복합체 GF(((22)2)2) 상의 덧셈 마스킹된 역원 연산 결과의 출력 마스킹 값 중 상위 4비트 값 또는 하위 4비트 값에 해당하는 경우, 상기 출력 마스킹 값 중 각각 하위 4비트 값 또는 상위 4비트 값을 상기 제3 마스킹 데이터로 이용하는 단계인 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 방법.The fresh masking step may include: when the second masking data corresponds to an upper 4 bit value or a lower 4 bit value of an output masking value of an addition masked inverse operation result on the complex GF (((2 2 ) 2 ) 2 ) And using a lower 4-bit value or an upper 4-bit value among the output masking values as the third masking data, respectively. 제11항에 있어서,The method of claim 11, 상기 마스킹 인버젼 연산 단계는, 부분체 GF(22) 상의 연산을 이용하여 상기 부분체 GF((22)2) 상의 인버젼 연산을 수행하는 단계인 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 방법.The mask inversion operation step, the partial body GF (2 2) computing the portion of body GF ((2 2) 2) using an on AES inverse calculation using the masking characterized in that the step of performing inversion operation on the Way. 제11항에 있어서,The method of claim 11, 상기 마스킹 인버젼 연산 단계는,The masking inversion calculation step, 상기 마스킹 필드변환 단계의 상기 덧셈 마스킹된 출력값 및 상기 제2 마스킹 데이터를 이용하여 부분체 GF(22) 상의 덧셈 마스킹된 출력값을 생성하는 서브 마스킹 필드변환 단계;A sub masking field transformation step of generating an additive masked output value on the part GF (2 2 ) by using the addition masked output value and the second masking data of the masking field transformation step; 상기 서브 마스킹 필드변환 단계의 상기 부분체 GF(22) 상의 덧셈 마스킹된 출력값에 대해 2비트의 제4 마스킹 데이터를 이용하여 부분체 GF(22) 상의 덧셈 마스킹된 인버젼 연산값을 생성하는 서브 마스킹 인버젼 연산 단계; 및Using the sub-mask field plus a fourth masking data of two bits for the masked output values on the partial body GF (2 2) for conversion to produce the addition masked inversion operation values on the partial body GF (2 2) A sub masking inversion calculation step; And 상기 서브 마스킹 인버젼 연산 단계의 상기 덧셈 마스킹된 인버젼 연산값에 대해 부분체 GF(22) 상의 곱셈 및 배타적논리합 연산과 필드 변환을 이용하여 상기 마스킹 필드변환 단계의 상기 덧셈 마스킹된 출력값에 대응하는 부분체 GF((22)2) 상의 덧셈 마스킹된 역원 연산 결과를 생성하는 서브 마스킹 필드역변환 단계를 포함하는 것을 특징으로 하는 마스킹을 이용한 AES 역원 연산 방법.Corresponding to the addition masked output value of the masking field transform step by using a multiplication and an exclusive logical sum operation on subfield GF (2 2 ) and a field transform on the addition masked inversion operation value of the sub masking inversion operation step. A sub-masking field inverse transform step of generating an additive masked inverse arithmetic result on sub-element GF ((2 2 ) 2 ). 제11항 내지 제19항 중 어느 한 항에 따른 마스킹을 이용한 AES 역원 연산 방법 이용하여 S박스(S-box) 연산을 수행하는 AES 암호 방법.20. An AES encryption method for performing an S-box operation using the AES inverse calculation method using masking according to any one of claims 11 to 19.
KR1020080118386A 2008-11-26 2008-11-26 Apparatus and method for operating inversion of AES with masking method, and AES cipher system and method using thereof KR100991713B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080118386A KR100991713B1 (en) 2008-11-26 2008-11-26 Apparatus and method for operating inversion of AES with masking method, and AES cipher system and method using thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080118386A KR100991713B1 (en) 2008-11-26 2008-11-26 Apparatus and method for operating inversion of AES with masking method, and AES cipher system and method using thereof

Publications (2)

Publication Number Publication Date
KR20100059571A KR20100059571A (en) 2010-06-04
KR100991713B1 true KR100991713B1 (en) 2010-11-04

Family

ID=42360861

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080118386A KR100991713B1 (en) 2008-11-26 2008-11-26 Apparatus and method for operating inversion of AES with masking method, and AES cipher system and method using thereof

Country Status (1)

Country Link
KR (1) KR100991713B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150123476A (en) 2014-04-25 2015-11-04 한국전자통신연구원 Function masking apparatus in symmetric cryptographic algorithm for preventing side channel attacks and method thereof
KR101631680B1 (en) * 2014-09-30 2016-06-20 고려대학교 산학협력단 Physically unclonable function circuit using S-box of AES algorithm
US10158485B2 (en) * 2015-09-24 2018-12-18 Intel Corporation Double affine mapped S-box hardware accelerator
US9910792B2 (en) 2016-04-11 2018-03-06 Intel Corporation Composite field scaled affine transforms-based hardware accelerator

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070189536A1 (en) 2004-12-27 2007-08-16 Infineon Technologies Ag Cryptographic unit and method for operating a cryptographic unit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070189536A1 (en) 2004-12-27 2007-08-16 Infineon Technologies Ag Cryptographic unit and method for operating a cryptographic unit

Also Published As

Publication number Publication date
KR20100059571A (en) 2010-06-04

Similar Documents

Publication Publication Date Title
JP5229315B2 (en) Encryption device and built-in device equipped with a common key encryption function
Canright et al. A very compact “perfectly masked” S-box for AES
Courtois Higher order correlation attacks, XL algorithm and cryptanalysis of Toyocrypt
KR101026439B1 (en) The Masking Method for Protecting Power Analysis Attacks in SEED
US7334133B2 (en) Method for making a computer system implementing a cryptographic algorithm secure using Boolean operations and arithmetic operations and a corresponding embedded system
CN100583739C (en) Cryptographic apparatus, cryptographic method, and storage medium thereof
US8971526B2 (en) Method of counter-measuring against side-channel attacks
Coron et al. A new algorithm for switching from arithmetic to boolean masking
US20090092245A1 (en) Protection Against Side Channel Attacks
KR20050092576A (en) A cipher processing unit, an advanced encryption standard cipher system and an advanced encryption standard cipher method with masking method
Coron et al. High order masking of look-up tables with common shares
Karroumi et al. Addition with blinded operands
WO2009122461A1 (en) Encrypting method having countermeasure function against power analyzing attacks
KR100834096B1 (en) Aria encryption method for countermeasuring higher order dpa
KR100574965B1 (en) Finite field multiplier
Jeong et al. Differential fault analysis on block cipher SEED
JP2011510579A (en) Countermeasure method and device for asymmetric cryptosystem using signature diagram
KR101506499B1 (en) Method for encrypting with SEED applying mask
KR100991713B1 (en) Apparatus and method for operating inversion of AES with masking method, and AES cipher system and method using thereof
KR20040055550A (en) Serial-Parallel Multiplier to Multiply Two Elements in the Finite Field
Vadnala et al. Algorithms for switching between boolean and arithmetic masking of second order
Smart et al. Randomised representations
KR100564599B1 (en) Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code
Nykolaychuk et al. Residue Number System Asymmetric Cryptoalgorithms
JP5500277B2 (en) Encryption device and built-in device equipped with a common key encryption function

Legal Events

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

Payment date: 20130717

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151026

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160928

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee