KR100574965B1 - 유한체 곱셈기 - Google Patents
유한체 곱셈기 Download PDFInfo
- Publication number
- KR100574965B1 KR100574965B1 KR1020040003804A KR20040003804A KR100574965B1 KR 100574965 B1 KR100574965 B1 KR 100574965B1 KR 1020040003804 A KR1020040003804 A KR 1020040003804A KR 20040003804 A KR20040003804 A KR 20040003804A KR 100574965 B1 KR100574965 B1 KR 100574965B1
- Authority
- KR
- South Korea
- Prior art keywords
- multiplier
- finite
- output signal
- bits
- exclusive
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60J—WINDOWS, WINDSCREENS, NON-FIXED ROOFS, DOORS, OR SIMILAR DEVICES FOR VEHICLES; REMOVABLE EXTERNAL PROTECTIVE COVERINGS SPECIALLY ADAPTED FOR VEHICLES
- B60J3/00—Antiglare equipment associated with windows or windscreens; Sun visors for vehicles
- B60J3/002—External sun shield, e.g. awning or visor
- B60J3/005—External sun shield, e.g. awning or visor for side windows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/726—Inversion; Reciprocal calculation; Division of elements of a finite field
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
-
- 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/046—Masking or blinding of operations, operands or results of the operations
-
- 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/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computer Security & Cryptography (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Mechanical Engineering (AREA)
- Error Detection And Correction (AREA)
- Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Storage Device Security (AREA)
Abstract
블록 암호 알고리즘이 구현된 유한체 곱셈연산회로와 유한체 역원연산회로에 사용되는 유한체 곱셈기가 제공된다. 상기 곱셈기는 다음의 수학식을 를 이용하여 제1출력신호와 제2출력신호를 발생하다. 여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, 점(·)은 유한체 곱셈기에 의한 곱셈연산을 나타내고, 는 배타 논리합회로에 의한 연산을 나타낸다.
AES(Advanced Encryption Standards)
Description
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 유한체 GF(((22)2)2)에서의 역원연산을 이용하여 유한체 GF(2
8)에서의 역원연산을 수행하는 방법과 이를 이용하여 AES알고리즘에 사용되는 S-박스를 구현한 블락도를 나타낸다.
도 2는 유한체 GF((22)2)의 연산을 이용하여 유한체 GF(((22)2
)2)에서의 역원연산을 수행하는 방법을 구현한 블락도를 나타낸다.
도 3은 유한체 GF(22)의 연산을 이용하여 유한체 GF((22)2)에서의 곱셈연산을 수행하는 방법을 구현한 블락도를 나타낸다.
도 4는 유한체 GF(22)의 연산을 이용하여 유한체 GF((22)2)에서의 역원연산을 수행하는 방법을 구현한 블락도를 나타낸다.
도 5는 본 발명의 제1실시예에 따른 곱셈기의 블락도를 나타낸다.
도 6은 도 5의 곱셈기의 구현 예를 나타낸다.
도 7은 본 발명의 제2실시예에 따른 곱셈기의 블락도를 나타낸다.
본 발명은 유한체 곱셈기에 관한 것으로, 보다 상세하게는 블록 암호 알고리즘이 구현된 유한체 곱셈연산회로와 유한체 역원연산회로에 사용되는 마스킹 회로,즉 유한체 곱셈기에 관한 것이다.
정보화 사회의 도래와 함께 암호 알고리즘을 이용한 정보의 보호는 그 중요성이 점점 더해가고 있다. 상기 암호 알고리즘들 중에서 블록 암호 알고리즘(Block Cipher algorithm)은 빠른 암호화/복호화 속도 그리고 짧은 키 길이 때문에 각광을 받고 있다. 따라서 상기 블록 암호 알고리즘은 그 수학적인 구조에서의 안전성뿐만 아니라 구현되는 환경에서의 안전성도 중요시된다.
차동 전력해석(Differential Power Analysis)과 단순 전력해석(Simple Power Analysis)은 블록 암호 알고리즘이 스마트 카드와 같은 저소비전력기기에 구현됐을 때 계산(또는 연산)도중에 상기 스마트 카드로부터 발생되는 전력신호를 분석함으로서 상기 스마트 카드내부에 저장된 비밀정보를 알아내는 방법이다.
차동 전력해석과 단순 전력해석이 가능한 이유는 공격자가 평문(plaintext)을 알고 있고 상기 공격자가 비밀키의 일부 정보를 추측할 수 있으면 상기 공격자는 상기 평문에 해당하는 1라운드 후의 암호문(cipertext)의 특정비트를 예측할 수 있다는 사실에 있다. 이러한 차동 전력해석과 단순 전력해석을 방지하는 방법 중의 하나는 스마트 카드내부에서 이루어지는 계산과정 중에서 공격자가 상기 평문에 대 해서 알 수 없게 만드는 것이다.
따라서 블록 암호 알고리즘의 안전한 구현을 위해 차동전력해석과 단순전력해석과 같은 전력해석에 대한 여러 가지 대책들(countermeasures)이 고안되었다. 상기 대책들을 고안해내는 방법으로 하드웨어적인 방법과 소프트웨어적인 방법이 제시되었다.
상기 하드웨어적인 방법은 잡음전력(noise power)을 생성하는 방법, 연산순서를 랜덤(random)하게 하는 방법, 그리고 전력 신호를 여과하는 방법 등이 있다. 그러나 이러한 방법들은 아직까지 불완전한 방법으로 알려져 있다.
그리고 소프트웨어적인 방법으로, 마스킹 방법은 1차적인 차동전력해석에 대한 강력한 대책중의 하나로 알려져 있다. 상기 마스킹 방법이란 스마트 카드내부에서 난수를 생성한 후, 평문과 상기 난수를 배타 논리합하여 상기 평문을 난수처럼 보이게 함으로써 전력해석을 불가능하게 하는 것을 말한다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 블록 암호 알고리즘이 구현된 유한체의 곱셈연산회로와 역원연산회로에 사용되는 마스킹 회로를 제공하는 것이다.
여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, 점(·)은 유한체 곱셈연산을 나타내고, 는 배타 논리합 연산을 나타낸다. 유한체 곱셈연산은 유한체 곱셈기를 통하여 수행되고, 배타 논리합 연산은 배타 논리합 회로를 통하여 수행된다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
마스킹 방법(masking method)이란 주어진 소정의 함수 f:{0,1}k→{0,1}n에 대하여 다음과 같은 함수 F:{0,1}2k →{0,1}2n을 만드는 문제(즉, 마스킹 문제)를 해결하는 것과 동일하다. 예컨대 k비트 이진 수열 x∈ {0,1}k에 대하여 x의 부울 마스킹(boolean masking)이란 을 만족시키는 순서쌍 (x',r)∈ {0,1}k×{0,1}k를 의미한다. 여기서 n과 k는 각각 자연수이다.
소정의 x∈ {0,1}k의 마스킹(x',r)에 대하여, 함수 F(x',r)은 함수 f(x)의 마스킹을 만든다. 단, 함수 F(x',r)을 계산하는 도중에, x가 명시적으로 드러내져서는 안 된다. 예컨대, f(x)가 선형 함수인 경우, 즉 소정의 a, b∈ {0,1}k에 대하여 를 만족시키는 경우, F(x'r)=(f(x'), f(r))로 정의하면, 주어진 조건(함수 F(x',r)을 계산하는 도중에, x가 명시적으로 드러내져서는 안 된다는 조건)이 만족되므로 선형함수에 대한 마스킹 문제는 아주 쉽게 해결된다.
그리고 만약 함수 f(x)가 affine함수인 경우, 즉 어떤 n×k 행렬 A와 b∈ {0,1}n이 존재하여 모든 x ∈{0, 1}k에 대하여 를 만족시키는 경우에도 F(x',r)=(f(x'), A·r)로 정의하면 주어진 조건이 만족되므로 affine함수에 대한 마스킹 문제도 아주 쉽게 해결된다.
당업계에 잘 알려진 바와 같이, 미국은 표준 상용 블록 알고리즘인 AES(Advanced Encryption Standards)를 사용한다. 상기 AES 알고리즘은 잘 알려진 바와 같이 여러 가지 연산들(즉, Subkey Xoring, ShiftRow, SubByte 및 MixColumn)을 사용한다. 상기 Subkey Xoring연산, 상기 ShiftRow연산, 및 상기 MixColumn연산은 선형연산 또는 affine 연산이기 때문에 마스킹 방법이 쉽게 적용된다.
그러나, SubByte연산은 비선형 연산이기 때문에 상기 마스킹 방법이 쉽게 적용되지 않는다. 특히, SubByte연산은 유한체 GF(28)위에서의 역원연산과 affine 연산을 병렬적으로 사용하기 때문에, 유한체 GF(28)위의 역원연산에 대하여 상기 마스킹 방법을 효율적으로 구현할 수 있다면, AES알고리즘에 대한 마스킹 방법은 효율적으로 구현될 수 있다.
따라서 본 발명은 AES알고리즘에 대한 새로운 마스킹 방법을 구현한 마스킹 회로(예컨대, 유한체 곱셈기)를 제공한다.
도 1은 유한체 GF(((22)2)2)에서의 역원연산을 이용하여 유한체 GF(2
8)에서의 역원연산을 수행하는 방법과 이를 이용하여 AES알고리즘에 사용되는 S-박스를 구현한 블락도를 나타낸다.
도 1은 AES알고리즘의 SubByte연산의 주 연산인 GF(28)에서의 역원연산을 GF(((22)2)2)에서의 역원연산을 이용하여 구현한 블락도이다. 도 1에서 σ는 GF(28) 에서 GF(((22)2)2)로 가는 동형사상(isomorphism)을 나타낸다.
도 2는 유한체 GF((22)2)의 연산을 이용하여 유한체 GF(((22)2
)2)에서의 역원연산을 수행하는 방법을 구현한 블락도를 나타낸다. 도 1 및 도 2를 참조하면, 배타 논리합연산(), 유한체 GF((22)2)에서의 제곱연산(x2), 및 상수 곱셈연산(×λ)은 선형연산이기 때문에 상기 마스킹 방법이 용이하게 구현될 수 있다. 따라서 GF((22)2)에서의 곱셈연산과 역원연산에 대하여 마스킹 방법을 구현할 수 있다면, GF(((22)2)2)에서의 곱셈연산과 역원연산에 대한 마스킹 방법도 구현될 수 있다. 여기서 xH는 MSB(Most significant bit)를 포함하는 4비트로 구성된 데이터를 나타내고, xL은 LSB(Least significant bit)를 포함하는 4비트로 구성된 데이터를 나타낸다.
도 3은 유한체 GF(22)의 연산을 이용하여 유한체 GF((22)2)에서의 곱셈연산을 수행하는 방법을 구현한 블락도를 나타낸다. 도 4는 유한체 GF(22)의 연산을 이용하여 유한체 GF((22)2)에서의 역원연산을 수행하는 방법을 구현한 블락도를 나타낸다. 3은 도 2에 도시된 상수곱셈기의 상세 회로도이고, 도 4는 도 2에 도시된 역원회로 (300)의 상세 회로도이다.
도 3 및 도 4를 참조하면, 배타 논리합연산(), 유한체 GF(22)에서의 제곱 연산(x2), 및 상수곱셈연산(×Φ)은 선형연산이기 때문에 상기 마스킹 방법이 용이하게 구현될 수 있다. 따라서 GF(22)에서의 곱셈연산에 대하여 마스킹 방법을 구현할 수 있다면, GF((22)2)에서의 곱셈연산과 역원연산에 대한 마스킹 방법도 구현될 수 있다.
본 발명은 유한체의 역원연산과 곱셈연산에 대한 새로운 마스킹 방법을 구현한 마스킹 회로(예컨대, 유한체 곱셈기)에 관한 것이다. 일반적으로 유한체 GF((2n)m)는 유한체 GF(2n)의 어떤 m(m은 자연수)차 기약다항식(irreducible polynomial) f(x)가 주어진 경우 다음과 같은 원소들과 연산들로 구성된다.
유한체 GF((2n)m)의 임의의 원소 g는 유한체 GF(2n)에서 소정의 계수를 구비하는 (m-1)차 이하의 다항식으로 유일하게 표현된다. 즉, a0,...am-1 ∈ GF(2
n)이 유일하게 존재하여 g=a0 + a1x +...+am-1x(m-1)로 표현된다.
g1 = a0 + a1x+...+am-1x(m-1), g2
= b0 + b1x +... +bm-1x(m-1)에 대하여 GF((2n
)m)위에서의 덧셈과 곱셈은 다음과 같이 정의된다.
따라서 본 발명은 다음과 같은 유한체를 사용한다.
여기서 φ=102∈ GF(22), λ=11002∈ GF((22)2)이다.
도 5는 본 발명의 제1실시예에 따른 곱셈기의 블락도를 나타낸다. 도 5는 GF(22)에서의 곱셈연산에 대한 마스킹 방법을 구현한 곱셈기(도 3과 도 4의 400)의 블락도를 나타낸다.
GF((22)2)의 곱셈연산회로와 GF((22)2)의 역원연산회로에 사용되는 본 발명에 따른 곱셈기를 이용하면, GF(((22)2)2)에서의 역원연산에 대한 마스킹 방법이 구현될 수 있다. 따라서 AES알고리즘의 SubByte 연산에 대한 마스킹 방법이 구현 될 수 있으므로, AES알고리즘에 대한 마스킹 방법도 구현된다.
도 5는 유한체 GF(2k)위의 곱셈연산에 대한 마스킹 방법을 구현한 것이다. 여기서, 유한체 GF(2k)위의 곱셈연산에 대한 마스킹 방법이란 x, y ∈ GF(2k)의 마스킹(x',r),(y',s)가 주어졌을 때 xy의 마스킹을 구하는 것이다. 도 5는 유한체 GF(2k)위의 곱셈연산에 대한 마스킹 방법을 구현한 곱셈기(400)의 일 예에 불과하 다.
따라서 유한체 GF(2k)위의 곱셈연산에 대한 마스킹 방법을 구현하는 함수들(F((x',r),(y',s)))은 다음과 같다. 여기서 x'와 y'는 k(k는 자연수)비트로 구성된 마스크된 데이터(masked data)를 나타내고, r과 s는 k비트로 구성된 마스킹을 위한 마스킹 데이터(masking data)를 나타낸다. 점(·)은 유한체의 곱셈 연산을 나타낸다. 또한, 는 배타 논리합 연산을 나타낸다.
즉, 도 5는 함수 를 구현한 것이다. 도 5를 참조하면, 유한체 곱셈기(501)는 x'와 y'를 수신하여 곱셈 연산을 수행하고, 유한체 곱셈기(503)는 x'와 s를 수신하여 곱셈 연산을 수행하고, 유한체 곱셈기(505)는 y'와 r을 수신하여 곱셈연산을 수행하고, 유한체 곱셈기(507)는 r과 s를 수신하여 곱셈연산을 수행한다.
배타 논리합 게이트(509)는 유한체 곱셈기(501)의 출력신호와 유한체 곱셈기(503)의 출력신호를 비트단위로 배타 논리합하고, 배타 논리합 게이트(511)는 유한체 곱셈기(505)의 출력신호와 유한체 곱셈기(507)의 출력신호를 비트단위로 배타 논리합한다. 배타 논리합 게이트(513)는 y'와 배타 논리합 게이트(509)의 출력신호를 비트단위로 배타 논리합하고, 배타 논리합 게이트(515)는 y'와 배타 논리합 게이트(511)의 출력신호를 비트단위로 배타 논리합한다.
도 6은 도 5의 곱셈기의 구현 예를 나타낸다. 도 6은 k=1인 경우의 함수, 를 구현한 것이다. 도 5 및 도 6을 참조하면, 각 유한체 곱셈기(501 내지 507)는 논리곱 게이트로 구현될 수 있다.
도 7은 본 발명의 제2실시예에 따른 곱셈기의 블락도를 나타낸다. 도 7은 함수, 를 구현한 것이다. 도 7을 참조하면, 유한체 곱셈기(701)는 x'와 y'를 수신하여 곱셈연산을 수행하고, 유한체 곱셈기(703)는 y'와 r을 수신하여 곱셈연산을 수행하고, 유한체 곱셈기(705)는 r과 s를 수신하여 곱셈연산을 수행하고, 유한체 곱셈기(707)는 x'과 s를 수신하여 곱셈연산을 수행한다.
배타 논리합 게이트(709)는 유한체 곱셈기(701)의 출력신호와 유한체 곱셈기(707)의 출력신호를 비트단위로 배타 논리합하고, 배타 논리합 게이트(711)는 유한체 곱셈기(703)의 출력신호와 유한체 곱셈기(705)의 출력신호를 비트단위로 배타 논리합한다. 배타 논리합 게이트(713)는 s와 배타 논리합 게이트(709)의 출력신호를 비트단위로 배타 논리합하고, 배타 논리합 게이트(715)는 s와 배타 논리합 게이트(711)의 출력신호를 비트단위로 배타 논리합한다.
당업자는 각 함수(F2((x',r),(y',s)) 내지 F30((x',r),(y',s)))의 구현 예를 용이하게 이해할 수 있을 것이다. 따라서 이들에 대한 설명은 생략한다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 마스킹 방법을 구현한 유한체 곱셈연산회로와 유한체 역원연산회로에 사용되는 곱셈기는 AES와 같이 유한체 연산을 내부 연산으로 사용하는 알고리즘에 대하여 단순 전력 해석에 대한 강력한 대책을 제공하 는 효과가 있다.
또한, 본 발명에 따른 곱셈기는 블록 암호 알고리즘에 대하여 차동전략 해석에 대한 강력한 대책을 제공하는 효과가 있다. 따라서 상기 블록 암호 알고리즘은 스마트 카드와 같은 저소비전력기기에 안전하게 구현될 수 있는 효과가 있다.
Claims (30)
- 곱셈기에 있어서,제1마스크된 데이터와 제2마스크된 데이터를 수신하고, 이들을 유한체 곱셈하는 제1유한체 곱셈기;상기 제1마스크된 데이터와 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제2유한체 곱셈기;상기 제2마스크된 데이터와 제1마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제3유한체 곱셈기;상기 제1마스킹 데이터와 상기 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제4유한체 곱셈기;상기 제1유한체 곱셈기의 출력신호와 상기 제2유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제1배타 논리합 회로;상기 제2마스크된 데이터와 상기 제1배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하는 제2배타 논리합 회로;상기 제3유한체 곱셈기의 출력신호와 상기 제4유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제3배타 논리합 회로; 및상기 제2마스크된 데이터와 상기 제3배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하는 제4배타 논리합 회로를 구비하는 것을 특징으로 하는 곱셈기.
- 곱셈기에 있어서,제1마스크된 데이터와 제2마스크된 데이터를 수신하고, 이들을 유한체 곱셈하는 제1유한체 곱셈기;상기 제1마스크된 데이터와 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제2유한체 곱셈기;상기 제2마스크된 데이터와 제1마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제3유한체 곱셈기;상기 제1마스킹 데이터와 상기 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제4유한체 곱셈기;상기 제1유한체 곱셈기의 출력신호와 상기 제2유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제1배타 논리합 회로;상기 제2마스킹 데이터와 상기 제1배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하는 제2배타 논리합 회로;상기 제3유한체 곱셈기의 출력신호와 상기 제4유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제3배타 논리합 회로; 및상기 제2마스킹 데이터와 상기 제3배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하는 제4배타 논리합 회로를 구비하는 것을 특징으로 하는 곱셈기.
- 곱셈기에 있어서,제1마스크된 데이터와 제2마스크된 데이터를 수신하고, 이들을 유한체 곱셈하는 제1유한체 곱셈기;상기 제2마스크된 데이터와 제1마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제2유한체 곱셈기;상기 제1마스크된 데이터와 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제3유한체 곱셈기;상기 제1마스킹 데이터와 상기 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제4유한체 곱셈기;상기 제1유한체 곱셈기의 출력신호와 상기 제2유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제1배타 논리합 회로;상기 제1마스크된 데이터와 상기 제1배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하는 제2배타 논리합 회로;상기 제3유한체 곱셈기의 출력신호와 상기 제4유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제3배타 논리합 회로; 및상기 제1마스크된 데이터와 상기 제3배타 논리합 회로의 출력신호를 수신하 고, 이들을 배타 논리합하는 제4배타 논리합 회로를 구비하는 것을 특징으로 하는 곱셈기.
- 곱셈기에 있어서,제1마스크된 데이터와 제2마스크된 데이터를 수신하고, 이들을 유한체 곱셈하는 제1유한체 곱셈기;상기 제2마스크된 데이터와 제1마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제2유한체 곱셈기;상기 제1마스크된 데이터와 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제3유한체 곱셈기;상기 제1마스킹 데이터와 상기 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제4유한체 곱셈기;상기 제1유한체 곱셈기의 출력신호와 상기 제2유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제1배타 논리합 회로;상기 제1마스킹 데이터와 상기 제1배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하는 제2배타 논리합 회로;상기 제3유한체 곱셈기의 출력신호와 상기 제4유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제3배타 논리합 회로; 및상기 제1마스킹 데이터와 상기 제3배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하는 제4배타 논리합 회로를 구비하는 것을 특징으로 하는 곱셈 기.
- 곱셈기에 있어서,제1마스크된 데이터와 제2마스크된 데이터를 수신하고, 이들을 유한체 곱셈하는 제1유한체 곱셈기;상기 제2마스크된 데이터와 제1마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제2유한체 곱셈기;상기 제1마스크된 데이터와 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제3유한체 곱셈기;상기 제1마스킹 데이터와 상기 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제4유한체 곱셈기;상기 제1유한체 곱셈기의 출력신호와 상기 제2유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제1배타 논리합 회로;상기 제1배타 논리합 회로의 출력신호와 상기 제3유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제2배타 논리합 회로;상기 제2배타 논리합 회로의 출력신호와 상기 제4유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제3배타 논리합 회로; 및상기 제1마스크된 데이터와 상기 제3배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하고, 그 결과를 상기 곱셈기의 제1출력신호로서 출력하는 제4배타 논리합 회로를 구비하고,상기 곱셈기는 상기 제1마스크된 데이터를 제2출력신호로서 출력하는 것을 특징으로 하는 곱셈기.
- 곱셈기에 있어서,제1마스크된 데이터와 제2마스크된 데이터를 수신하고, 이들을 유한체 곱셈하는 제1유한체 곱셈기;상기 제2마스크된 데이터와 제1마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제2유한체 곱셈기;상기 제1마스크된 데이터와 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제3유한체 곱셈기;상기 제1마스킹 데이터와 상기 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제4유한체 곱셈기;상기 제1유한체 곱셈기의 출력신호와 상기 제2유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제1배타 논리합 회로;상기 제1배타 논리합 회로의 출력신호와 상기 제3유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제2배타 논리합 회로;상기 제2배타 논리합 회로의 출력신호와 상기 제4유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제3배타 논리합 회로; 및상기 제2마스크된 데이터와 상기 제3배타 논리합 회로의 출력신호를 수신하고 이들을 배타 논리합하고, 그 결과를 상기 곱셈기의 제1출력신호로서 출력하는 제4배타 논리합 회로를 구비하고,상기 곱셈기는 상기 제2마스크된 데이터를 제2출력신호로서 출력하는 것을 특징으로 하는 곱셈기.
- 곱셈기에 있어서,제1마스크된 데이터와 제2마스크된 데이터를 수신하고, 이들을 유한체 곱셈하는 제1유한체 곱셈기;상기 제2마스크된 데이터와 제1마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제2유한체 곱셈기;상기 제1마스크된 데이터와 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제3유한체 곱셈기;상기 제1마스킹 데이터와 상기 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제4유한체 곱셈기;상기 제1유한체 곱셈기의 출력신호와 상기 제2유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제1배타 논리합 회로;상기 제1배타 논리합 회로의 출력신호와 상기 제3유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제2배타 논리합 회로;상기 제2배타 논리합 회로의 출력신호와 상기 제4유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제3배타 논리합 회로; 및상기 제1마스킹 데이터와 상기 제3배타 논리합 회로의 출력신호를 수신하고 이들을 배타 논리합하고, 그 결과를 상기 곱셈기의 제1출력신호로서 출력하는 제4배타 논리합 회로를 구비하고,상기 곱셈기는 상기 제1마스킹 데이터를 제2출력신호로서 출력하는 것을 특징으로 하는 곱셈기.
- 곱셈기에 있어서,제1마스크된 데이터와 제2마스크된 데이터를 수신하고, 이들을 유한체 곱셈하는 제1유한체 곱셈기;상기 제2마스크된 데이터와 제1마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제2유한체 곱셈기;상기 제1마스크된 데이터와 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제3유한체 곱셈기;상기 제1마스킹 데이터와 상기 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제4유한체 곱셈기;상기 제1유한체 곱셈기의 출력신호와 상기 제2유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제1배타 논리합 회로;상기 제1배타 논리합 회로의 출력신호와 상기 제3유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제2배타 논리합 회로;상기 제2배타 논리합 회로의 출력신호와 상기 제4유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제3배타 논리합 회로; 및상기 제2마스킹 데이터와 상기 제3배타 논리합 회로의 출력신호를 수신하고 이들을 배타 논리합하고, 그 결과를 상기 곱셈기의 제1출력신호로서 출력하는 제4배타 논리합 회로를 구비하고,상기 곱셈기는 상기 제2마스킹 데이터를 제2출력신호로서 출력하는 것을 특징으로 하는 곱셈기.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040003804A KR100574965B1 (ko) | 2004-01-19 | 2004-01-19 | 유한체 곱셈기 |
US11/032,544 US20060120527A1 (en) | 2004-01-19 | 2005-01-10 | Methods, circuits, and computer program products for processing masked data in an advanced encryption system |
EP05250258A EP1557740A3 (en) | 2004-01-19 | 2005-01-19 | Methods, circuits and computer program products for processing masked data in an advanced encryption system |
CNA2005100716614A CN1758591A (zh) | 2004-01-19 | 2005-01-19 | 在加密系统中处理已屏蔽数据的方法、电路和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040003804A KR100574965B1 (ko) | 2004-01-19 | 2004-01-19 | 유한체 곱셈기 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050076015A KR20050076015A (ko) | 2005-07-26 |
KR100574965B1 true KR100574965B1 (ko) | 2006-05-02 |
Family
ID=36574224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040003804A KR100574965B1 (ko) | 2004-01-19 | 2004-01-19 | 유한체 곱셈기 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20060120527A1 (ko) |
EP (1) | EP1557740A3 (ko) |
KR (1) | KR100574965B1 (ko) |
CN (1) | CN1758591A (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100594265B1 (ko) * | 2004-03-16 | 2006-06-30 | 삼성전자주식회사 | 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법. |
US7769166B2 (en) * | 2006-08-24 | 2010-08-03 | Lsi Corporation | Dual mode AES implementation to support single and multiple AES operations |
US7949130B2 (en) | 2006-12-28 | 2011-05-24 | Intel Corporation | Architecture and instruction set for implementing advanced encryption standard (AES) |
CN101114903B (zh) * | 2007-03-05 | 2011-10-26 | 中兴通讯股份有限公司 | 一种吉比特无源光网络系统中高级加密标准加密装置及其实现方法 |
US8091139B2 (en) * | 2007-11-01 | 2012-01-03 | Discretix Technologies Ltd. | System and method for masking arbitrary Boolean functions |
US8055668B2 (en) * | 2008-02-13 | 2011-11-08 | Camouflage Software, Inc. | Method and system for masking data in a consistent manner across multiple data sources |
JP2010245881A (ja) * | 2009-04-07 | 2010-10-28 | Toshiba Corp | 暗号処理装置 |
FR2960728B1 (fr) * | 2010-05-26 | 2016-04-15 | Oberthur Technologies | Procede de determination d'une representation d'un produit et procede d'evaluation d'une fonction |
FR2960727B1 (fr) | 2010-05-26 | 2016-04-15 | Oberthur Technologies | Procede d'evaluation d'une fonction |
CN104301088A (zh) * | 2014-09-20 | 2015-01-21 | 北京电子科技学院 | 密码芯片功耗分析装置、方法及功耗分析防护装置、方法 |
CN110276208B (zh) * | 2016-09-29 | 2022-06-17 | 北京忆芯科技有限公司 | 加密电路、解密电路及其方法 |
CN107888374A (zh) * | 2016-09-29 | 2018-04-06 | 北京忆芯科技有限公司 | Xts‑aes加密/解密流水线 |
US20210050991A1 (en) * | 2019-08-16 | 2021-02-18 | PUFsecurity Corporation | Computation system for generating different types of cipher |
US11507699B2 (en) * | 2019-09-27 | 2022-11-22 | Intel Corporation | Processor with private pipeline |
CN113922943B (zh) * | 2021-09-29 | 2023-09-19 | 哲库科技(北京)有限公司 | Sbox电路、运算方法及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9707861D0 (en) * | 1997-04-18 | 1997-06-04 | Certicom Corp | Arithmetic processor |
US5982895A (en) * | 1997-12-24 | 1999-11-09 | Motorola, Inc. | Finite field inverse circuit for use in an elliptic curve processor |
-
2004
- 2004-01-19 KR KR1020040003804A patent/KR100574965B1/ko not_active IP Right Cessation
-
2005
- 2005-01-10 US US11/032,544 patent/US20060120527A1/en not_active Abandoned
- 2005-01-19 CN CNA2005100716614A patent/CN1758591A/zh active Pending
- 2005-01-19 EP EP05250258A patent/EP1557740A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP1557740A3 (en) | 2009-04-01 |
CN1758591A (zh) | 2006-04-12 |
US20060120527A1 (en) | 2006-06-08 |
KR20050076015A (ko) | 2005-07-26 |
EP1557740A2 (en) | 2005-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wyseur et al. | Cryptanalysis of white-box DES implementations with arbitrary external encodings | |
Trichina et al. | Simplified adaptive multiplicative masking for AES | |
US7334133B2 (en) | Method for making a computer system implementing a cryptographic algorithm secure using Boolean operations and arithmetic operations and a corresponding embedded system | |
KR100574965B1 (ko) | 유한체 곱셈기 | |
KR100585119B1 (ko) | 암호화 장치, 암호화 방법 및 그 기록매체 | |
US20150222423A1 (en) | Protection against side channels | |
US8199909B2 (en) | Method and device for carrying out a cryptographic calculation | |
US8331558B2 (en) | Method of cipher block chaining using elliptic curve cryptography | |
US20200119918A1 (en) | Elliptic curve point multiplication device and method in a white-box context | |
US7916860B2 (en) | Scalar multiplication apparatus and method | |
US9722773B2 (en) | Method of determining a representation of a product of a first element and a second element of a finite set, method of evaluating a function applied to an element of a finite set and associated devices | |
KR101506499B1 (ko) | 마스킹이 적용된 seed를 이용한 암호화 방법 | |
Dutta et al. | Lightweight polymorphic encryption for the data associated with constrained internet of things devices | |
KR100991713B1 (ko) | 마스킹을 이용한 aes 역원 연산 장치 및 방법과 이를 이용한 aes 암호 시스템 | |
Jean-Jacques et al. | A cryptanalytic time-memory tradeoff: First FPGA implementation | |
Yang et al. | A new cryptosystem based on chaotic map and operations algebraic | |
KR100564599B1 (ko) | 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체 | |
Benhadjyoussef et al. | Power-based side-channel analysis against aes implementations: Evaluation and comparison | |
Sosa-Gómez et al. | Using Hadamard transform for cryptanalysis of pseudo-random generators in stream ciphers | |
De Santis et al. | Hiding higher-order univariate leakages by shuffling polynomial masking schemes: a more efficient, shuffled, and higher-order masked AES S-box | |
Canright et al. | A very compact" perfectly masked" S-Box for AES (corrected) | |
US20230344616A1 (en) | Protection against side-channel attacks using a square masking | |
Kim et al. | Protecting secret keys in networked devices with table encoding against power analysis attacks | |
Vizev | Side channel attacks on NTRUEncrypt | |
Choi et al. | Secure cryptographic module implementation and mathematics |
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: 20090415 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |