KR100574965B1 - 유한체 곱셈기 - Google Patents

유한체 곱셈기 Download PDF

Info

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
Application number
KR1020040003804A
Other languages
English (en)
Other versions
KR20050076015A (ko
Inventor
백유진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040003804A priority Critical patent/KR100574965B1/ko
Priority to US11/032,544 priority patent/US20060120527A1/en
Priority to EP05250258A priority patent/EP1557740A3/en
Priority to CNA2005100716614A priority patent/CN1758591A/zh
Publication of KR20050076015A publication Critical patent/KR20050076015A/ko
Application granted granted Critical
Publication of KR100574965B1 publication Critical patent/KR100574965B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/724Finite field arithmetic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60JWINDOWS, WINDSCREENS, NON-FIXED ROOFS, DOORS, OR SIMILAR DEVICES FOR VEHICLES; REMOVABLE EXTERNAL PROTECTIVE COVERINGS SPECIALLY ADAPTED FOR VEHICLES
    • B60J3/00Antiglare equipment associated with windows or windscreens; Sun visors for vehicles
    • B60J3/002External sun shield, e.g. awning or visor
    • B60J3/005External sun shield, e.g. awning or visor for side windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/75Protecting 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/755Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/724Finite field arithmetic
    • G06F7/726Inversion; Reciprocal calculation; Division of elements of a finite field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • 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
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Signal Processing (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

블록 암호 알고리즘이 구현된 유한체 곱셈연산회로와 유한체 역원연산회로에 사용되는 유한체 곱셈기가 제공된다. 상기 곱셈기는 다음의 수학식을
Figure 112004002224851-pat00001
를 이용하여 제1출력신호와 제2출력신호를 발생하다. 여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, 점(·)은 유한체 곱셈기에 의한 곱셈연산을 나타내고,
Figure 112004002224851-pat00002
는 배타 논리합회로에 의한 연산을 나타낸다.
AES(Advanced Encryption Standards)

Description

유한체 곱셈기{Finite field multiplier}
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 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차적인 차동전력해석에 대한 강력한 대책중의 하나로 알려져 있다. 상기 마스킹 방법이란 스마트 카드내부에서 난수를 생성한 후, 평문과 상기 난수를 배타 논리합하여 상기 평문을 난수처럼 보이게 함으로써 전력해석을 불가능하게 하는 것을 말한다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 블록 암호 알고리즘이 구현된 유한체의 곱셈연산회로와 역원연산회로에 사용되는 마스킹 회로를 제공하는 것이다.
상기 기술적 과제를 달성하기 위한 곱셈기는 다음의 수학식
Figure 112004002224851-pat00003
를 이용하여 제1출력신호와 제2출력신호를 발생한다.
상기 기술적 과제를 달성하기 위한 곱셈기는 다음의 수학식
Figure 112004002224851-pat00004
를 이용하여 제1출력신호와 제2출력신호를 발생한다.
또한, 상기 기술적 과제를 달성하기 위한 곱셈기는 다음의 수학식
Figure 112004002224851-pat00005
를 이용하여 제1출력신호와 제2출력신호를 발생한다.
그리고, 상기 기술적 과제를 달성하기 위한 곱셈기는 다음의 수학식
Figure 112004002224851-pat00006
를 이용하여 제1출력신호와 제2출력신호를 발생한다.
여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, 점(·)은 유한체 곱셈연산을 나타내고,
Figure 112004002224851-pat00007
는 배타 논리합 연산을 나타낸다. 유한체 곱셈연산은 유한체 곱셈기를 통하여 수행되고, 배타 논리합 연산은 배타 논리합 회로를 통하여 수행된다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
마스킹 방법(masking method)이란 주어진 소정의 함수 f:{0,1}k→{0,1}n에 대하여 다음과 같은 함수 F:{0,1}2k →{0,1}2n을 만드는 문제(즉, 마스킹 문제)를 해결하는 것과 동일하다. 예컨대 k비트 이진 수열 x∈ {0,1}k에 대하여 x의 부울 마스킹(boolean masking)이란
Figure 112004002224851-pat00008
을 만족시키는 순서쌍 (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에 대하여
Figure 112004002224851-pat00009
를 만족시키는 경우, 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에 대하여
Figure 112004002224851-pat00010
를 만족시키는 경우에도 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를 참조하면, 배타 논리합연산(
Figure 112004002224851-pat00011
), 유한체 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를 참조하면, 배타 논리합연산(
Figure 112004002224851-pat00012
), 유한체 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)위에서의 덧셈과 곱셈은 다음과 같이 정의된다.
Figure 112004002224851-pat00013
여기서 mod는 모듈러 연산(modular operation)을 나타낸다. 상기와 같은 유 한체 GF((2n)m)를
Figure 112004002224851-pat00014
로 표시한다.
따라서 본 발명은 다음과 같은 유한체를 사용한다.
Figure 112004002224851-pat00015
여기서 φ=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)를 나타낸다. 점(·)은 유한체의 곱셈 연산을 나타낸다. 또한,
Figure 112004002224851-pat00016
는 배타 논리합 연산을 나타낸다.
1.
Figure 112004002224851-pat00017
2.
Figure 112004002224851-pat00018
3.
Figure 112004002224851-pat00019
4.
Figure 112004002224851-pat00020
5.
Figure 112004002224851-pat00021
6.
Figure 112004002224851-pat00022
7.
Figure 112004002224851-pat00023
8.
Figure 112004002224851-pat00024
9.
Figure 112004002224851-pat00025
10.
Figure 112004002224851-pat00026
11.
Figure 112004002224851-pat00027
12.
Figure 112004002224851-pat00028
13.
Figure 112004002224851-pat00029
14.
Figure 112004002224851-pat00030
15.
Figure 112004002224851-pat00031
16.
Figure 112004002224851-pat00032
17.
Figure 112004002224851-pat00033
18.
Figure 112004002224851-pat00034
19.
Figure 112004002224851-pat00035
20.
Figure 112004002224851-pat00036
21.
Figure 112004002224851-pat00037
22.
Figure 112004002224851-pat00038
23.
Figure 112004002224851-pat00039
24.
Figure 112004002224851-pat00040
25.
Figure 112004002224851-pat00041
26.
Figure 112004002224851-pat00042
27.
Figure 112004002224851-pat00043
28.
Figure 112004002224851-pat00044
29.
Figure 112004002224851-pat00045
30.
Figure 112004002224851-pat00046
즉, 도 5는 함수
Figure 112004002224851-pat00047
를 구현한 것이다. 도 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인 경우의 함수,
Figure 112004002224851-pat00048
를 구현한 것이다. 도 5 및 도 6을 참조하면, 각 유한체 곱셈기(501 내지 507)는 논리곱 게이트로 구현될 수 있다.
도 7은 본 발명의 제2실시예에 따른 곱셈기의 블락도를 나타낸다. 도 7은 함수,
Figure 112004002224851-pat00049
를 구현한 것이다. 도 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. 곱셈기에 있어서,
    제1마스크된 데이터와 제2마스크된 데이터를 수신하고, 이들을 유한체 곱셈하는 제1유한체 곱셈기;
    상기 제1마스크된 데이터와 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제2유한체 곱셈기;
    상기 제2마스크된 데이터와 제1마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제3유한체 곱셈기;
    상기 제1마스킹 데이터와 상기 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제4유한체 곱셈기;
    상기 제1유한체 곱셈기의 출력신호와 상기 제2유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제1배타 논리합 회로;
    상기 제2마스크된 데이터와 상기 제1배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하는 제2배타 논리합 회로;
    상기 제3유한체 곱셈기의 출력신호와 상기 제4유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제3배타 논리합 회로; 및
    상기 제2마스크된 데이터와 상기 제3배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하는 제4배타 논리합 회로를 구비하는 것을 특징으로 하는 곱셈기.
  2. 곱셈기에 있어서,
    제1마스크된 데이터와 제2마스크된 데이터를 수신하고, 이들을 유한체 곱셈하는 제1유한체 곱셈기;
    상기 제1마스크된 데이터와 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제2유한체 곱셈기;
    상기 제2마스크된 데이터와 제1마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제3유한체 곱셈기;
    상기 제1마스킹 데이터와 상기 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제4유한체 곱셈기;
    상기 제1유한체 곱셈기의 출력신호와 상기 제2유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제1배타 논리합 회로;
    상기 제2마스킹 데이터와 상기 제1배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하는 제2배타 논리합 회로;
    상기 제3유한체 곱셈기의 출력신호와 상기 제4유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제3배타 논리합 회로; 및
    상기 제2마스킹 데이터와 상기 제3배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하는 제4배타 논리합 회로를 구비하는 것을 특징으로 하는 곱셈기.
  3. 곱셈기에 있어서,
    제1마스크된 데이터와 제2마스크된 데이터를 수신하고, 이들을 유한체 곱셈하는 제1유한체 곱셈기;
    상기 제2마스크된 데이터와 제1마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제2유한체 곱셈기;
    상기 제1마스크된 데이터와 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제3유한체 곱셈기;
    상기 제1마스킹 데이터와 상기 제2마스킹 데이터를 수신하고, 이들을 유한체 곱셈하는 제4유한체 곱셈기;
    상기 제1유한체 곱셈기의 출력신호와 상기 제2유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제1배타 논리합 회로;
    상기 제1마스크된 데이터와 상기 제1배타 논리합 회로의 출력신호를 수신하고, 이들을 배타 논리합하는 제2배타 논리합 회로;
    상기 제3유한체 곱셈기의 출력신호와 상기 제4유한체 곱셈기의 출력신호를 수신하고, 이들을 배타 논리합하는 제3배타 논리합 회로; 및
    상기 제1마스크된 데이터와 상기 제3배타 논리합 회로의 출력신호를 수신하 고, 이들을 배타 논리합하는 제4배타 논리합 회로를 구비하는 것을 특징으로 하는 곱셈기.
  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배타 논리합 회로를 구비하는 것을 특징으로 하는 곱셈 기.
  5. 곱셈기에 있어서,
    제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출력신호로서 출력하는 것을 특징으로 하는 곱셈기.
  6. 곱셈기에 있어서,
    제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출력신호로서 출력하는 것을 특징으로 하는 곱셈기.
  7. 곱셈기에 있어서,
    제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출력신호로서 출력하는 것을 특징으로 하는 곱셈기.
  8. 곱셈기에 있어서,
    제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출력신호로서 출력하는 것을 특징으로 하는 곱셈기.
  9. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00050
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, 점(·)는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00051
    는 배타 논리합 연산을 나타낸다.
  10. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00052
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00053
    는 배타 논리합 연산을 나타낸다.
  11. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00054
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00055
    는 배타 논리합 연산을 나타낸다.
  12. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00056
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00057
    는 배타 논리합 연산을 나타낸다.
  13. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00058
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00059
    는 논리합 연산을 나타낸다.
  14. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00060
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연 산을 나타내고,
    Figure 112004002224851-pat00061
    는 배타 논리합 연산을 나타낸다.
  15. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00062
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00063
    는 배타 논리합 연산을 나타낸다.
  16. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00064
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00065
    는 배타 논리합 연산을 나타낸다.
  17. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00066
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00067
    는 배타 논리합 연산을 나타낸다.
  18. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00068
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00069
    는 배타 논리합 연산을 나타낸다.
  19. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00070
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00071
    는 배타 논리합 연산을 나타낸다.
  20. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00072
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00073
    는 배타 논리합 연산을 나타낸다.
  21. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00074
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00075
    는 배타 논리합 연산을 나타낸다.
  22. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00076
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00077
    는 배타 논리합 연산을 나타낸다.
  23. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00078
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00079
    는 배타 논리합 연산을 나타낸다.
  24. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00080
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00081
    는 배타 논리합 연산을 나타낸다.
  25. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00082
    를 이용하여 제1출력신호 와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00083
    는 배타 논리합 연산을 나타낸다.
  26. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00084
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00085
    는 배타 논리합 연산을 나타낸다.
  27. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00086
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00087
    는 배타 논리합 연산을 나타낸다.
  28. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00088
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00089
    는 배타 논리합 연산을 나타낸다.
  29. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00090
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00091
    는 배타 논리합 연산을 나타낸다.
  30. 곱셈기에 있어서,
    상기 곱셈기는 다음의 수학식;
    Figure 112004002224851-pat00092
    를 이용하여 제1출력신호와 제2출력신호를 발생하는 것을 특징으로 하는 곱셈기:
    여기서 x'는 k비트로 구성된 제1마스크된 데이터를 나타내고, y'는 k비트로 구성된 제2마스크된 데이터를 나타내고, r은 k비트로 구성된 제1마스킹 데이터를 나타내고, s는 k비트로 구성된 제2마스킹 데이터를 나타내고, ·는 유한체 곱셈연산을 나타내고,
    Figure 112004002224851-pat00093
    는 배타 논리합 연산을 나타낸다.
KR1020040003804A 2004-01-19 2004-01-19 유한체 곱셈기 KR100574965B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
US20060120527A1 (en) 2006-06-08
KR20050076015A (ko) 2005-07-26
CN1758591A (zh) 2006-04-12
EP1557740A3 (en) 2009-04-01
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
US8199909B2 (en) Method and device for carrying out a cryptographic calculation
EP1557740A2 (en) Methods, circuits and computer program products for processing masked data in an advanced encryption system
US7334133B2 (en) Method for making a computer system implementing a cryptographic algorithm secure using Boolean operations and arithmetic operations and a corresponding embedded system
US9515820B2 (en) Protection against side channels
KR100585119B1 (ko) 암호화 장치, 암호화 방법 및 그 기록매체
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
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
US7916860B2 (en) Scalar multiplication apparatus and method
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
Morawiecki Malicious Keccak
KR100991713B1 (ko) 마스킹을 이용한 aes 역원 연산 장치 및 방법과 이를 이용한 aes 암호 시스템
Jean-Jacques et al. A cryptanalytic time-memory tradeoff: First FPGA implementation
Dutta et al. Lightweight polymorphic encryption for the data associated with constrained internet of things devices
Yang et al. A new cryptosystem based on chaotic map and operations algebraic
KR100564599B1 (ko) 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체
Sosa-Gómez et al. Using Hadamard transform for cryptanalysis of pseudo-random generators in stream ciphers
Benhadjyoussef et al. Power-based side-channel analysis against aes implementations: Evaluation and comparison
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
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