KR100725169B1 - 전력 분석 공격에 안전한 논리 연산 장치 및 방법 - Google Patents

전력 분석 공격에 안전한 논리 연산 장치 및 방법 Download PDF

Info

Publication number
KR100725169B1
KR100725169B1 KR1020050007705A KR20050007705A KR100725169B1 KR 100725169 B1 KR100725169 B1 KR 100725169B1 KR 1020050007705 A KR1020050007705 A KR 1020050007705A KR 20050007705 A KR20050007705 A KR 20050007705A KR 100725169 B1 KR100725169 B1 KR 100725169B1
Authority
KR
South Korea
Prior art keywords
logical
logic
data
random
circuit
Prior art date
Application number
KR1020050007705A
Other languages
English (en)
Other versions
KR20060086743A (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
Priority to KR1020050007705A priority Critical patent/KR100725169B1/ko
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to GB0801054A priority patent/GB2443356B/en
Priority to GB0801057A priority patent/GB2443358A/en
Priority to GB0600690A priority patent/GB2422693B/en
Priority to GB0801053A priority patent/GB2443355B/en
Priority to GB0801055A priority patent/GB2443357B/en
Priority to GB0801058A priority patent/GB2443359B/en
Priority to US11/334,430 priority patent/US20070188355A1/en
Priority to DE102006004557A priority patent/DE102006004557A1/de
Publication of KR20060086743A publication Critical patent/KR20060086743A/ko
Application granted granted Critical
Publication of KR100725169B1 publication Critical patent/KR100725169B1/ko

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/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]
    • 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
    • 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/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Logic Circuits (AREA)

Abstract

여기에 개시된 논리 연산 장치 및 방법은, 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 논리 NOR 연산, 논리 XOR 연산, 논리 XNOR 연산, 및 논리 NOT 연산에 대해 랜덤 마스크 기법을 적용한다. 랜덤 마스크 기법이 적용된 상기 논리 연산 장치는, 입력 데이터를 랜덤 마스크 데이터로 변환하고, 복수 개의 랜덤 데이터들과 상기 랜덤 마스크 데이터들을 조합하여 복수 개의 데이터 쌍들을 구성한다. 그리고, 복수 개의 데이터 쌍들에 대해 하나 또는 그 이상의 종류의 논리 연산들(예를 들면, 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 및 논리 NOR 연산 중 적어도 어느 하나)을 수행한 후, 상기 논리 연산 장치에서 수행하고자 하는 논리 연산 결과와 일치되도록 상기 논리 연산 결과들을 조합한다. 조합된 논리 연산 결과는 랜덤 마스크 데이터 형태로 출력된다. 이와 같은 구성을 가지는 연산 장치는 적어도 둘 이상의 논리 연산들이 복합된 복합 논리 연산(예를 들면, 불 연산과 산술 연산이 복합된 논리 연산)에 적용될 수 있고, 가산, 감산, 곱셈, 및 나눗셈 기능들 중 적어도 어느 하나를 수행하는 산술연산장치에 적용될 수 있다. 따라서, 전력분석공격에 안전하도록 복잡한 암호화 알고리즘을 하드웨어로 구성할 수 있다.

Description

전력 분석 공격에 안전한 논리 연산 장치 및 방법{APPARATUS AND METHOD FOR PERFORMING LOGICAL OPERATION BEING SECURE AGAINST DIFFERENTIAL POWER ANALYSIS}
도 1은 암호 시스템의 개략적인 구성을 보여주는 도면;
도 2는 본 발명의 바람직한 실시예에 따른 논리 연산 방법을 보여주는 흐름도;
도 3a 내지 도 3d, 그리고 도 4a 내지 도 4d는 본 발명의 바람직한 실시예에 따른 논리 AND 연산 장치의 회로도;
도 5a 및 5b는 본 발명의 바람직한 실시예에 따른 논리 OR 연산 장치의 회로도;
도 6a 내지 도 6d, 그리고 도 7a 내지 도 7d는 본 발명의 바람직한 실시예에 따른 논리 NAND 연산 장치의 회로도;
도 8a 및 8b는 본 발명의 바람직한 실시예에 따른 논리 NOR 연산 장치의 회로도;
도 9는 본 발명의 바람직한 실시예에 따른 논리 XOR 연산 장치의 회로도;
도 10은 본 발명의 바람직한 실시예에 따른 논리 XNOR 연산 장치의 회로도;
도 11은 본 발명의 바람직한 실시예에 따른 논리 NOT 연산 장치의 회로도; 그리고
도 12 내지 도 16은 본 발명에 따른 논리 연산 장치가 적용된 산술연산장치의 구성 예를 보여주는 도면이다.
*도면의 주요 부분에 대한 부호의 설명*
10-16, 20-26 : 논리 AND 연산 장치 30-32 :논리 OR 연산 장치
40-46, 50-56 : 논리 NAND 연산 장치 60-62 :논리 NOR 연산 장치
70 : 논리 XOR 연산 장치 80 : 논리 XNOR 연산 장치
90 : 논리 NOT 연산 장치 100-400 : 가산기
본 발명은 암호화 회로에 관한 것으로, 좀 더 구체적으로는 전력분석공격에 안전한 논리 연산 장치 및 방법에 관한 것이다.
암호 알고리즘의 연산 과정에서 발생되는 소비 전력을 측정하거나 연산 수행 시간을 측정하여 비밀 키와 같은 비밀 정보를 알아내는 암호 분석 방법이 개발되어 왔다. 암호 알고리즘에 대한 비밀 정보의 누출을 부채널(Side Channel)이라 하고, 부채널을 이용한 공격방법을 부채널공격(Side Channel Attack)이라 한다. 부채널공격은, 크게 시간공격(Timing Attack), 결함주입공격(Fault Insertion Attack), 그리고 전력분석공격(Power Analysis Attack) 등으로 구분된다.
도 1은 암호 시스템의 개략적인 구성을 보여주는 도면으로서, 전력 분석 공 격의 예를 보여주고 있다.
도 1을 참조하면, 스마트 카드와 같은 저소비 전력 기기에 내장된 암호 알고리즘과 암호용 비밀키가 작동되는 순간, 공격자(attacker)는 스마트 카드로부터 발생되는 IC 칩의 순간적인 전압(또는 전력) 변화를 관측하여, 각종 정보의 이진 코드를 읽어낸다. 전력분석 공격은, 크게 단순 전력분석(Simple Power Analysis ; SPA) 공격과, 차분전력분석(Differential Power Analysis ; DPA) 공격으로 구분된다. 단순전력분석(SPA) 공격은, 스마트 카드에서 연산되는 암호 프로세서의 전력 소비를 관찰하여, 카드 내부에 있는 비밀 키를 직접 공격한다. 이와 달리, 차분전력분석 공격(DPA)은, 수집된 전력 소비 데이터로부터 비밀키와 정확한 상관관계(correlation)를 가지는 정보를 추출하기 위해 통계적인 분석(stochastic analysis)과 에러 정정(error correction) 기술을 사용한다. 특히, 차분 전력분석 공격 기술은, 전압 변화를 관측할 수 있는 몇 가지 장치(예를 들면, 오실레이터 등)만 있으면 비밀 키의 추정이 가능하다. 그리고, 차분 전력분석 공격 기술은 통계적인 방법을 이용하여 중요 정보 분석은 물론 위·변조까지도 수행하기 때문에, 이에 대한 방어책을 마련하는 것은 매우 중요하다. 차분 전력분석 공격(DPA)에 대한 방어책으로, 랜덤 마스킹(Random Masking) 방법이 가장 대표적으로 사용되고 있다.
랜덤 마스킹 방법은, 입력 데이터와 랜덤 데이터를 논리연산한 후 암호 알고리즘에 입력하는 방법이다. 랜덤 마스킹 방법에 따르면, 평문(plaintext)인 입력 데이터가 랜덤화 되기 때문에, 동일한 값이 입력되더라도 알고리즘 연산 과정에서 소모되는 전력이 달라지게 된다. 따라서, 비밀 정보의 누출을 막을 수 있게 된다. 입력 데이터를 랜덤 마스킹하는 방법에는 여러 가지가 있으나, 입력 데이터와 랜덤 데이터를 XOR 논리 연산하는 방법이 일반적으로 사용된다. 입력 데이터를 P라 하고 랜덤 데이터를 R이라 하면, 랜덤 마스크 데이터는 P
Figure 112005005060820-pat00001
R이 된다. 차분 전력분석 공격에 안전하면서도 입력 데이터에 대한 원하는 연산을 수행하기 위해서는, 암호 알고리즘 연산 과정에서 발생되는 데이터가 랜덤 마스크 형식을 유지해야 한다. 여기서, 랜덤 마스크 형식의 데이터라 함은 입력 데이터 또는 입력 데이터들에 대한 연산 결과에 랜덤 데이터가 결합된 형태의 데이터를 말한다.
예를 들어, 임의의 평문(P)과 키(K)를 XOR 논리 연산하는 암호 알고리즘의 경우, 차분 전력분석 공격을 막기 위해 평문(P)을 그대로 사용하지 않고, 평문(P)을 랜덤 마스킹한 데이터(즉, P
Figure 112005005060820-pat00002
R)를 논리 연산에 사용한다. 이 경우, 랜덤 마스크 데이터(P
Figure 112005005060820-pat00003
R)와 키(K)에 대한 XOR 논리 연산 결과는, (P
Figure 112005005060820-pat00004
R)
Figure 112005005060820-pat00005
K가 된다. XOR 논리 연산은 결합법칙이 성립하므로, (P
Figure 112005005060820-pat00006
R)
Figure 112005005060820-pat00007
K = (P
Figure 112005005060820-pat00008
K)
Figure 112005005060820-pat00009
R 이 된다. 그 결과, 평문(P)에 대한 정보가 노출되지 않으면서도 원하는 XOR 논리 연산 결과(P
Figure 112005005060820-pat00010
K)를 얻을 수 있게 된다. 또한, 상기 XOR 논리 연산 과정이 알고리즘의 최종 단계가 아니라면, XOR 논리 연산 계산 결과인 (P
Figure 112005005060820-pat00011
K)이 노출되지 않아 하는데, 출력 값이 랜덤 마스크 형식(즉, (P
Figure 112005005060820-pat00012
K)
Figure 112005005060820-pat00013
R)을 가지므로, 이러한 조건도 만족하고 있다.
그러나, 이와 같은 블록 암호화 기법은 XOR 연산에는 적용 가능하지만, 예를 들어 평문(P)과 키(K)를 AND 논리 연산하는 암호 알고리즘에는 그대로 적용할 수 없는 문제가 있다. 즉, 위에서 설명한 블록 암호화 기법을 AND 연산에 적용하여 랜덤 마스크 데이터(P
Figure 112005005060820-pat00014
R)와 키(K)를 AND 논리 연산하면, (P
Figure 112005005060820-pat00015
R)·K가 된다. 그러나, AND 논리 연산에서는 결합법칙이 적용되지 않기 때문에 (P
Figure 112005005060820-pat00016
R)·K = (P·K)
Figure 112005005060820-pat00017
R 이 성립하지 않게 된다.
따라서, 결합 법칙이 성립하지 않는 논리연산들(예를 들면, AND, OR 등)이 적어도 하나 이상 포함되어 있는 암호 알고리즘(예를 들면, 불 연산과 산술 연산이 복합된 논리 연산을 수행하는 암호 알고리즘)에서는 랜덤 마스킹 알고리즘이 사용될 수 없는 문제점이 있다.
본 발명의 목적은 상술한 제반 문제점을 해결하기 위해 제안된 것으로, 전력 분석 공격에 안전한 논리 연산 장치 및 방법을 제공하는데 있다.
본 발명의 목적은, 결합법칙이 성립하는 논리 연산은 물론, 결합 법칙이 성립하지 않는 논리 연산들(예를 들면, AND, OR 등)에 대해서도 랜덤 마스킹 알고리즘을 적용할 수 있는 논리 연산 장치 및 방법을 제공하는데 있다.
본 발명의 다른 목적은, 적어도 둘 이상의 논리 연산들이 복합된 복합논리연산(예를 들면, 불 연산과 산술 연산이 복합된 논리 연산)을 수행하는 암호 알고리즘을 전력분석공격에 안전하도록 구성할 수 있는 논리 연산 장치 및 방법 제공하는데 있다.
상기의 과제를 이루기 위하여 본 발명에 의한 논리 연산 장치는, 복수 개의 랜덤 데이터들과 복수 개의 랜덤 마스크 데이터들이 조합된 복수 개의 데이터 쌍들에 대해, 하나 또는 그 이상의 종류의 논리 연산들을 수행하는 제 1 논리 연산부; 그리고 상기 논리 연산 장치에서 수행하고자 하는 논리 연산 결과와 일치되도록 상기 제 1 논리 연산부에서 수행된 상기 논리 연산 결과들을 조합하는 제 2 논리 연산부를 포함하며, 상기 제 2 논리 연산부는 상기 조합된 논리 연산 결과를 랜덤 마스크 데이터 형태로 출력하는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 각각의 랜덤 데이터는 매 클럭마다 랜덤하게 발생되는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 랜덤 마스크 데이터들은, 상기 랜덤 데이터들과 복수 개의 입력 데이터들에 대한 논리 XOR 연산 결과인 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 논리 연산 장치는, 결합법칙이 성립되는 논리 연산 및 상기 결합법칙이 성립되지 않는 논리 연산들을 모두 수행할 수 있는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 논리 연산 장치는, 적어도 둘 이상의 논리 연산들이 복합된 복합 논리 연산에 적용되며, 상기 복합 논리 연산에 사용되는 데이터 및 상기 복합 논리 연산의 출력 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 논리 연산 장치는, 적어도 둘 이상의 논리 연산들에 대한 불 연산과 산술 연산이 복합된 논리 연산에 적용되며, 상기 복합 논리 연산에 사용되는 데이터 및 상기 복합 논리 연산의 출력 데이터는 모두 랜덤 마 스크 데이터 형태를 갖는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 논리 연산 장치는, 가산, 감산, 곱셈, 및 나눗셈 기능들 중 적어도 어느 하나를 수행하는 산술연산장치에 적용되며, 상기 산술연산장치에 사용되는 데이터 및 상기 산술 연산 장치의 결과 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 논리 연산 방법은, 복수 개의 랜덤 데이터들을 이용하여 복수 개의 입력 데이터들을 복수 개의 랜덤 마스크 데이터들로 변환하는 단계; 상기 복수 개의 랜덤 마스크 데이터들과 상기 랜덤 데이터들을 조합하여 복수 개의 데이터 쌍들을 구성하는 단계; 상기 데이터 쌍들 각각에 대해 하나 또는 그 이상의 종류의 논리 연산들을 수행하는 단계; 상기 논리 연산 장치에서 수행하고자 하는 논리 연산 결과와 일치되도록 상기 논리 연산 결과들을 조합하는 단계; 그리고 상기 조합된 논리 연산 결과를 랜덤 마스크 데이터 형태로 출력하는 단계를 포함하는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 각각의 랜덤 데이터는 매 클럭마다 랜덤하게 발생되는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 입력 데이터들을 상기 랜덤 마스크 데이터들로 변환하는 단계에서는, 상기 각각의 입력 데이터와 대응되는 랜덤 데이터에 대한 논리 XOR 연산이 수행되는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 논리 연산 장치는, 결합법칙이 성립되는 논리 연산 및 상기 결합법칙이 성립되지 않는 논리 연산들을 모두 수행할 수 있는 것 을 특징으로 한다.
바람직한 실시예에 있어서, 상기 논리 연산 장치는, 적어도 둘 이상의 논리 연산들이 복합된 복합 논리 연산에 적용되며, 상기 복합 논리 연산에 사용되는 데이터 및 상기 복합 논리 연산의 출력 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 논리 연산 장치는, 적어도 둘 이상의 논리 연산들에 대한 불 연산과 산술 연산이 복합된 논리 연산에 적용되며, 상기 복합 논리 연산에 사용되는 데이터 및 상기 복합 논리 연산의 출력 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 논리 연산 장치는, 가산, 감산, 곱셈, 및 나눗셈 기능들 중 적어도 어느 하나를 수행하는 산술연산장치에 적용되며, 상기 산술연산장치에 사용되는 데이터 및 상기 산술 연산 장치의 결과 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 논리 연산 장치는 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 논리 NOR 연산, 논리 XOR 연산, 논리 XNOR 연산, 및 논리 NOT 연산 중 어느 하나를 수행하는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 논리 연산을 수행하는 단계에서는, 상기 데이터 쌍들 각각에 대해 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 및 논리 NOR 연산 중 적어도 어느 하나가 수행되는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 논리 연산 결과를 조합하는 단계에서는, 상 기 논리 연산 장치에서 수행하고자 하는 논리 연산 결과와 일치되도록 상기 논리 연산 결과들에 대해 논리 XOR 연산 및 논리 XNOR 연산 중 어느 하나가 수행되는 것을 특징으로 한다.
(실시예)
이하 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세히 설명한다.
본 발명의 신규한 논리 연산 장치 및 방법은 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 논리 NOR 연산, 논리 XOR 연산, 논리 XNOR 연산, 및 논리 NOT 연산에 대해 랜덤 마스크 기법을 적용한다. 랜덤 마스크 기법이 적용된 상기 논리 연산 장치는, 입력 데이터를 랜덤 마스크 데이터로 변환하고, 복수 개의 랜덤 데이터들과 상기 랜덤 마스크 데이터들을 조합하여 복수 개의 데이터 쌍들을 구성한다. 그리고, 복수 개의 데이터 쌍들에 대해 하나 또는 그 이상의 종류의 논리 연산들(예를 들면, 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 및 논리 NOR 연산 중 적어도 어느 하나)을 수행한 후, 상기 논리 연산 장치에서 수행하고자 하는 논리 연산 결과와 일치되도록 상기 논리 연산 결과들을 조합한다. 조합된 논리 연산 결과는 랜덤 마스크 데이터 형태로 출력된다. 이와 같은 구성을 가지는 연산 장치는 적어도 둘 이상의 논리 연산들이 복합된 복합 논리 연산(예를 들면, 불 연산과 산술 연산이 복합된 논리 연산)에 적용되어, 암호 알고리즘 또는 산술연산장치를 전력분석공격으로부터 보호해 준다.
도 2는 본 발명의 바람직한 실시예에 따른 논리 연산 방법을 보여주는 흐름도이다. 도 2에는 전력분석공격에 안전하도록 랜덤 마스킹 방법이 적용된 논리 연 산 장치의 논리 연산 방법이 도시되어 있다. 상기 논리 연산 방법은, 결합 법칙이 적용되는 논리 연산 장치 및 결합 법칙이 성립되지 않는 논리 연산장치들에도 모두 적용 가능하다. 상기 논리 연산 장치는, 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 논리 NOR 연산, 논리 XOR 연산, 논리 XNOR 연산, 및 논리 NOT 연산 중 어느 하나를 수행하도록 구성된다.
도 2를 참조하면, 본 발명에 따른 논리 연산 장치의 논리 연산 방법은, 먼저 복수 개의 랜덤 데이터들(예를 들면, R, S)을 발생한다(1000 단계). 각각의 랜덤 데이터는 매 클럭마다 랜덤하게 발생된다. 1000 단계에서 발생된 랜덤 데이터들(R, S)은 복수 개의 입력 데이터들(예를 들면, X, Y)과 함께 논리 XOR 연산 된다. 논리 XOR 연산 결과, 복수 개의 랜덤 마스크 데이터들(예를 들면, X', Y')이 발생된다(1100 단계). 여기서, 제 1 랜덤 마스크 데이터(X')는 제 1 입력 데이터(X)와 제 1 랜덤 데이터(R)와의 논리 XOR 연산 결과이고, 제 2 랜덤 마스크 데이터(Y')는 제 2 입력 데이터(Y)와 제 2 랜덤 데이터(S)와의 논리 XOR 연산 결과이다.
이어서, 복수 개의 랜덤 마스크 데이터들(X', Y')과 복수 개의 랜덤 데이터들(R, S)이 서로 조합되어, 복수 개의 데이터 쌍들이 구성된다(예를 들면, (X', Y'), (X', S), (R, Y'), (R, S), 등)(1200 단계). 구성된 복수 개의 데이터 쌍들((X', Y'), (X', S), (R, Y'), (R, S), 등) 각각에 대해서는 하나 또는 그 이상의 종류의 논리 연산들이 수행된다(1300 단계). 1300 단계에서 수행 가능한 논리 연산으로는, 예를 들면, 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 및 논리 NOR 연산 등이 있다. 1300 단계에서는, 복수 개의 데이터 쌍들에 대해 상기 논리 연산 들 중에서 하나 또는 그 이상의 종류의 논리 연산들이 수행된다. 복수 개의 데이터 쌍들에 대한 논리 연산들이 수행되고 나면, 논리 연산 장치에서 수행하고자 하는 논리 연산 결과와 일치되도록 상기 논리 연산 결과들이 조합된다(1400 단계). 1400 단계에서는, 조합된 논리 연산 결과들에 대해 논리 XOR 연산 및 논리 XNOR 연산 중 어느 하나를 수행한다. 조합된 논리 연산 결과들에 대한 논리 연산 결과(논리 XOR 연산 또는 논리 XNOR 연산)는 랜덤 마스크 데이터 형태를 가지게 된다. 랜덤 마스크 데이터 형태의 출력 데이터는, 논리 연산 장치의 논리 연산 결과로서 출력된다(1500 단계).
이와 같은 논리 연산을 수행하는 논리 연산 장치는, 적어도 둘 이상의 논리 연산들이 복합된 복합 논리 연산(예를 들면, 적어도 둘 이상의 논리 연산들에 대한 불 연산과 산술 연산이 복합된 논리 연산)에 적용될 수 있다. 이 경우, 논리 연산에 사용되는 데이터 및 논리 연산의 출력 데이터는 모두 랜덤 마스크 데이터 형태를 갖는다. 그리고, 상기 논리 연산 장치는, 가산, 감산, 곱셈, 및 나눗셈 기능들 중 적어도 어느 하나를 수행하는 산술연산장치에도 적용될 수 있다. 이 경우, 산술연산에 사용되는 데이터 및 산술 연산 결과 역시 모두 랜덤 마스크 데이터 형태를 갖는다. 이와 같이, 본 발명에 따른 논리 연산 장치는 논리 연산에 사용되는 데이터 및 논리 연산 결과가 모두 랜덤 마스크 형태를 가지므로, 전력분석공격에 의해 원래의 데이터가 노출되지 않게 된다. 그리고, 상기 논리 연산 장치는 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 논리 NOR 연산, 논리 XOR 연산, 논리 XNOR 연산, 및 논리 NOT 연산 각각을 수행하는 각각의 하드웨어 장치로 구성될 수 있다. 그러므로, 다양한 종류의 논리 연산 장치들을 조합하여 복잡한 알고리즘을 수행하는 암호 시스템을 전력분석공격에 안전하도록 다양하게 구성할 수 있다.
아래에서는 도 2에 도시된 논리 연산 방법이 적용되는 다양한 종류의 논리 연산 장치들의 구성 예가 설명된다. 아래에서 설명될 논리 연산 장치들은, 전력분석공격에 안전하도록 랜덤 마스킹 기법이 적용된 논리 연산 장치들로서, 결합 법칙이 적용되는 논리 연산(예를 들면, AND, OR 등)은 물론, 결합 법칙이 성립되지 않는 논리 연산들에도 모두 적용된다. 상기 논리 연산 장치는, 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 논리 NOR 연산, 논리 XOR 연산, 논리 XNOR 연산, 및 논리 NOT 연산 중 어느 하나를 수행하도록 구성된다.
도 3a 내지 도 3d, 그리고 도 4a 내지 도 4d는 본 발명의 바람직한 실시예에 따른 논리 AND 연산 장치(10-16, 20-26)의 회로도로서, 제 1 및 제 2 입력 데이터(X, Y) 에 대한 논리 AND 연산을 수행한다.
먼저 도 3a를 참조하면, 본 발명에 따른 논리 AND 연산 장치(10)는 제 1 논리 연산부(101)와 제 2 논리 연산부(107)로 구성된다. 제 1 논리 연산부(101)는, 각각이 AND 논리 게이트로 구성된 제 1 내지 제 4 논리 연산 회로들(102-105)을 포함한다. 제 1 논리 연산 회로(102)는, 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(X'·Y')을 수행한다. 제 2 논리 연산 회로(103)는, 상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(X'·S)을 수행한다. 제 3 논리 연산 회로(104)는, 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(R·Y')을 수행한다. 그리 고. 제 4 논리 연산 회로(105)는 상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(R·S)을 수행한다. 제 1 내지 제 4 논리 연산 회로들(102-105)로 입력된 랜덤 데이터들(R, S)과 랜덤 마스크 데이터들(X', Y')은, 매 클럭마다 랜덤하게 발생된다. 여기서, 제 1 랜덤 마스크 데이터(X')는 제 1 입력 데이터(X)와 제 1 랜덤 데이터(R)와의 논리 XOR 연산 결과이고, 제 2 랜덤 마스크 데이터(Y')는 제 2 입력 데이터(Y)와 제 2 랜덤 데이터(S)와의 논리 XOR 연산 결과이다.
제 1 내지 제 4 논리 연산 회로들(102-105)에서 수행된 논리 연산 결과는 제 2 논리 연산부(107)를 통해 조합되고, 조합된 결과는 블록 마스킹 데이터 형식으로 출력된다. 이를 위해 제 2 논리 연산부(107)는, 각각이 XOR 논리 게이트로 구성된 제 1 논리 조합부(108)와 제 2 논리 조합부(109)를 포함한다. 제 1 논리 조합부(108)는, 제 1 논리 연산 회로(102)에서 수행된 논리 AND 연산 결과(X'·Y'), 제 2 논리 연산 회로(103)에서 수행된 AND 연산 결과(X'·S), 및 제 2 랜덤 마스크 데이터(Y')에 대한 논리 XOR 연산을 수행한다. 그리고 제 2 논리 조합부(109)는, 제 3 논리 연산 회로(104)에서 수행된 AND 연산 결과(R·Y'), 제 4 논리 연산 회로(105)에서 수행된 AND 연산 결과(R·S), 및 상기 제 2 랜덤 마스크 데이터(Y')에 대한 논리 XOR 연산을 수행한다.
제 1 및 제 2 논리 조합부(108, 109)에서 수행된 논리 XOR 결과는, 각각 논리 AND 연산 장치(10)의 논리 AND 연산 결과로서 출력된다. 이 때, 논리 AND 연산 장치(10)로부터 발생되는 논리 AND 연산 결과 (
Figure 112005005060820-pat00018
,
Figure 112005005060820-pat00019
)는 모두 랜덤 마스킹 데이터 형식을 가진다. 추후에 상기 두 개의 논리 AND 결과(
Figure 112005005060820-pat00020
,
Figure 112005005060820-pat00021
)에 대해 XOR 연산을 수행하게 되면, 원래 구하고자 하는 연산 결과(즉,
Figure 112005005060820-pat00022
)를 얻을 수 있게 된다.
이에 관한 논리 식은 다음과 같다.
Figure 112005005060820-pat00023
이상과 같은 본 발명에 따른 논리 AND 연산 장치에 의하면, 4 개의 1 비트 입력 값들(
Figure 112005005060820-pat00024
,
Figure 112005005060820-pat00025
, R, S)이 주어졌을 때, 입력 데이터(X, Y)는 물론, 논리 연산 과정에 사용되는 데이터와, 논리 연산 결과 데이터가 모두 랜덤 마스킹 데이터 형식을 가지게 된다. 따라서, 논리 연산 도중에 비밀 정보가 노출되지 않으며, 전력 분석 공격에 안전한 특징을 가지게 된다. 이 경우, 중간 계산 값들의 확률 분포는 입력 데이터(X, Y)와 독립적이기 때문에, 논리 AND 연산 장치로부터 발생된 각각의 논리 연산 결과들을 서로 논리 XOR 연산해 보면 원래 의도한 논리 연 산 결과를 얻을 수 있게 된다.
도 3b 내지 도 3d는 도 3a에 도시된 논리 AND 연산 장치(10)의 변형 예이다. 도 3b 내지 도 3d에 도시된 논리 AND 연산 장치(12-16)는, 도 3a에 도시된 논리 AND 연산 장치(10)와 비교할 때, 연산에 사용되는 데이터들의 조합에만 차이가 있을 뿐, 논리 연산 장치의 하드웨어적인 구성은 실질적으로 동일하다. 따라서, 중복되는 설명을 피하기 위해, 동일한 회로 구성에 대해서는 동일한 참조 부호를 부가하였고, 이에 대한 상세한 설명은 생략하기로 한다. 도 3b 내지 도 3d에 도시된 논리 AND 연산 장치(12-16)는, 랜덤 마스킹 데이터로 변형된 입력 데이터들(X', Y')과, 랜덤 데이터들(R, S)의 다양한 조합에 의해, 다양한 형태로 변형 가능하다. 각각의 논리 AND 연산 장치(12-16)로부터 발생된 논린 연산 결과들을 서로 논리 XOR 연산해 보면, 도 3a에 도시된 논리 AND 연산 장치(10)와 마찬가지로 두 개의 입력 신호들(X, Y)에 대한 논리 AND 연산 결과(즉,
Figure 112005005060820-pat00026
)를 각각 얻을 수 있다.
그리고, 도 4a 내지 도 4d에 도시된 논리 AND 연산 장치(20-26)는, 도 3a 내지 도 3d에 도시된 논리 AND 연산 장치(10-16)에 각각 대응되는 변형 예이다. 상기 논리 AND 연산 장치들(20-26)은, 도 3a 내지 도 3d의 논리 AND 연산 장치(10-16)에 사용된 AND 게이트 회로들을 NAND 논리 게이트 회로로 대체한다. 그러므로, 도 4a 내지 도 4d에 도시된 논리 AND 연산 장치(20-26)는 제 1 논리 연산부(201)의 회로 구성만 다를 뿐, 나머지 회로 구성은 도 3a 내지 도 3d에 도시된 논리 AND 연산 장치(10-16)와 동일하다. 따라서, 중복되는 설명을 피하기 위해, 동일한 회로 구성에 대해서는 동일한 참조 부호를 부가하였고, 이에 대한 상세한 설명은 생략하기로 한 다.
이 분야의 통상의 지식을 가진 이들에게 잘 알려져 있는 바와 같이, 논리 NAND 게이트는 논리 AND 게이트가 보다 적은 칩 사이즈를 필요로 한다. 따라서, 논리 AND 게이트의 구성이 논리 NAND 게이트 회로로 대체됨에 따라, 하드웨어적인 구성이 더욱 간단해지고, 칩 전체의 사이즈도 작아지게 된다. 이와 같은 하드웨어적인 구성의 최적화는, [수학식 2]와 같은 논리 XOR 연산의 특성에 기인한다.
Figure 112005005060820-pat00027
[수학식 2]에 표시된
Figure 112005005060820-pat00028
Figure 112005005060820-pat00029
의 진리표는 각각 다음과 같다.
X Y
Figure 112005005060820-pat00030
0 0 0
0 1 1
1 0 1
1 1 0
Figure 112005005060820-pat00031
Figure 112005005060820-pat00032
Figure 112005005060820-pat00033
1 1 0
1 0 1
0 1 1
0 0 0
[수학식 2]와 [표 1] 및 [표 2]를 참조하면, 도 3a에 도시된 논리 AND 연산장치(107)의 논리 XOR 결과인
Figure 112005005060820-pat00034
Figure 112005005060820-pat00035
)는
Figure 112005005060820-pat00036
Figure 112005005060820-pat00037
로 각각 변형될 수 있다. 이와 같은 논리 XOR 연산의 특성에 따라, 논리 AND 연산 장치(10)에 포함된 복수 개의 논리 AND 게 이트들(102-105)은 도 4a에 도시된 바와 같이 복수 개의 논리 NAND 게이트들(202-205)로 대체된다.
도 4b에 도시된 논리 AND 연산 장치(22)는, 논리 NAND 게이트 회로를 이용하여 도 3b에 도시된 논리 AND 연산 장치(12)를 최적화한 것이고, 도 4c에 도시된 논리 AND 연산 장치(24)는, 논리 NAND 게이트 회로를 이용하여 도 3c에 도시된 논리 AND 연산 장치(14)를 최적화한 것이다. 그리고, 도 4d에 도시된 논리 AND 연산 장치(26)는, 논리 NAND 게이트 회로를 이용하여 도 3d에 도시된 논리 AND 연산 장치(16)를 최적화한 것이다. 따라서, 설명의 간략화를 위해, 이들에 대한 상세 설명은 생략하기로 한다.
도 5a 및 5b는 본 발명의 바람직한 실시예에 따른 논리 OR 연산 장치(30, 32)의 회로도로서, 제 1 및 제 2 입력 데이터(X, Y) 에 대한 논리 OR 연산을 수행한다.
먼저 도 5a를 참조하면, 본 발명에 따른 논리 OR 연산 장치(30)는 제 1 논리 연산부(301)와 제 2 논리 연산부(307)로 구성된다. 제 1 논리 연산부(301)는, 각각이 AND 또는 OR 논리 게이트로 구성된 제 1 내지 제 4 논리 연산 회로들(302-305)을 포함한다. 제 1 논리 연산 회로(302)는, 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 OR 연산(X'+Y')을 수행한다. 제 2 논리 연산 회로(303)는, 상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(X'·S)을 수행한다. 제 3 논리 연산 회로(304)는, 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(R·Y')을 수행한 다. 그리고. 제 4 논리 연산 회로(305)는 상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 OR 연산(R+S)을 수행한다. 제 1 내지 제 4 논리 연산 회로들(302-305)로 입력된 랜덤 데이터들(R, S)과 랜덤 마스크 데이터들(X', Y')은, 매 클럭마다 랜덤하게 발생된다. 여기서, 제 1 랜덤 마스크 데이터(X')는 제 1 입력 데이터(X)와 제 1 랜덤 데이터(R)와의 논리 XOR 연산 결과이고, 제 2 랜덤 마스크 데이터(Y')는 제 2 입력 데이터(Y)와 제 2 랜덤 데이터(S)와의 논리 XOR 연산 결과이다.
제 1 내지 제 4 논리 연산 회로들(302-305)에서 수행된 논리 연산 결과는 제 2 논리 연산부(307)를 통해 조합되고, 조합된 결과는 블록 마스킹 데이터 형식으로 출력된다. 이를 위해 제 2 논리 연산부(307)는, 각각이 XOR 논리 게이트로 구성된 제 1 논리 조합부(308)와 제 2 논리 조합부(309)를 포함한다. 제 1 논리 조합부(308)는, 제 1 논리 연산 회로(302)에서 수행된 논리 OR 연산 결과(X'+Y')와 제 2 논리 연산 회로(303)에서 수행된 AND 연산 결과(X'·S)에 대한 논리 XOR 연산을 수행한다. 그리고 제 2 논리 조합부(309)는, 제 3 논리 연산 회로(304)에서 수행된 AND 연산 결과(R·Y')와 제 4 논리 연산 회로(305)에서 수행된 OR 연산 결과(R+S)에 대한 논리 XOR 연산을 수행한다.
제 1 및 제 2 논리 조합부(308, 309)에서 수행된 논리 XOR 결과는, 각각 논리 OR 연산 장치(30)의 논리 OR 연산 결과로서 출력된다. 이 때, 논리 OR 연산 장치(30)로부터 발생된 논리 OR 연산 결과(
Figure 112005005060820-pat00038
,
Figure 112005005060820-pat00039
)는 모두 랜덤 마스킹 데이터 형식을 가진다. 추후에 상기 두 개의 논리 OR 연산 결과 (
Figure 112005005060820-pat00040
,
Figure 112005005060820-pat00041
)에 대해 XOR 연산을 수행하게 되면, 원래 구하고자 하는 연산 결과(즉, X+Y)를 얻을 수 있게 된다.
이어서 도 5b를 참조하면, 도 5b에 도시된 논리 OR 연산 장치(32)는 도 5a에 도시된 논리 OR 연산 장치(30)에 사용된 AND 게이트 회로들을 NAND 논리 게이트 회로로 변형하여, 하드웨어적인 구성을 최적화시킨 회로이다. 따라서, 도 5b에 도시된 논리 OR 연산 장치(32)는 제 1 논리 연산부(321)의 회로 구성에만 차이가 있을 뿐, 나머지 회로 구성은 도 5a에 도시된 논리 OR 연산 장치(30)와 동일하다. 따라서, 중복되는 설명을 피하기 위해, 동일한 회로 구성에 대해서는 동일한 참조 부호를 부가하였고, 이에 대한 상세한 설명은 생략하기로 한다. 도 5b와 같은 논리 OR 연산 장치(32)의 하드웨어적인 구성의 최적화는, [수학식 2]와 같은 논리 XOR 연산의 특성에 기인한다.
도 5a 및 도 5b에 도시된 논리 OR 연산 장치(30, 32)는, 4 개의 1 비트 입력 값들(
Figure 112005005060820-pat00042
,
Figure 112005005060820-pat00043
, R, S)이 주어졌을 때, 입력 데이터(X, Y)는 물론, 논리 연산 과정에 사용되는 데이터와, 논리 연산 결과 데이터가 모두 랜덤 마스킹 데이터 형식을 가지게 된다. 따라서, 논리 연산 도중에 비밀 정보가 노출되지 않으며, 전력 분석 공격에 안전한 특징을 가지게 된다. 이 경우, 중간 계산 값들의 확률 분포는 입력 데이터(X, Y)와 독립적이기 때문에, 논리 OR 연산 장치(30, 32)로부터 발생된 각각의 논리 연산 결과들을 서로 논리 XOR 연산해 보면 원래 의도한 논리 연산 결과를 얻을 수 있게 된다.
도 6a 내지 도 6d, 그리고 도 7a 내지 도 7d는 본 발명의 바람직한 실시예에 따른 논리 NAND 연산 장치(40-46, 50-56)의 회로도로서, 제 1 및 제 2 입력 데이터(X, Y) 에 대한 논리 NAND 연산을 수행한다. 도 6a 내지 도 7d에 도시된 논리 NAND 연산 장치(40-46, 50-56)는, 도 3a 내지 4d에 도시된 논리 AND 연산 장치(10-16, 20-26)와 비교할 때, 제 2 논리 연산부(407)의 구성에만 차이가 있을 뿐, 나머지 회로 구성은 동일하다. 따라서, 설명의 편의를 위해 동일한 회로 구성에 대해서는 동일한 참조 번호를 부여하고, 이에 대한 상세 설명은 생략하기로 한다.
이상과 같은 본 발명에 따른 논리 NAND 연산 장치(40-46, 50-56)에 의하면, 4 개의 1 비트 입력 값들(
Figure 112005005060820-pat00044
,
Figure 112005005060820-pat00045
, R, S)이 주어졌을 때, 입력 데이터(X, Y)는 물론, 논리 연산 과정에 사용되는 데이터와, 논리 연산 결과 데이터가 모두 랜덤 마스킹 데이터 형식을 가지게 된다. 따라서, 논리 연산 도중에 비밀 정보가 노출되지 않으며, 전력 분석 공격에 안전한 특징을 가지게 된다. 이 경우, 중간 계산 값들의 확률 분포는 입력 데이터(X, Y)와 독립적이기 때문에, 논리 NAND 연산 장치(40-46, 50-56)로부터 발생된 각각의 논리 연산 결과들을 서로 논리 XOR 연산해 보면 원래 의도한 논리 연산 결과를 얻을 수 있게 된다.
도 8a 및 8b는 본 발명의 바람직한 실시예에 따른 논리 NOR 연산 장치(60, 62)의 회로도로서, 제 1 및 제 2 입력 데이터(X, Y) 에 대한 논리 NOR 연산을 수행한다. 도 8a 및 8b에 도시된 논리 NOR 연산 장치(60, 62)는, 도 5a 및 5b에 도시된 논리 OR 연산 장치(30, 32)의 제 1 연산부(101)에서 수행된 논리 연산들의 조합을 달리하여, 논리 NOR 연산 결과를 출력한다. 이 경우, 도 8a 및 8b에 도시된 논리 NOR 연산 장치(60, 62)는, 제 2 논리 연산부(607)의 구성에만 차이가 있을 뿐, 나머지 회로 구성은 도 5a 및 5b에 도시된 논리 OR 연산 장치(30, 32)의 회로 구성과 동일하다. 따라서, 설명의 편의를 위해 동일한 회로 구성에 대해서는 동일한 참조 번호를 부여하고, 이에 대한 상세 설명은 생략하기로 한다.
이상과 같은 본 발명에 따른 논리 NOR 연산 장치(60, 62)에 의하면, 4 개의 1 비트 입력 값들(
Figure 112005005060820-pat00046
,
Figure 112005005060820-pat00047
, R, S)이 주어졌을 때, 입력 데이터(X, Y)는 물론, 논리 연산 과정에 사용되는 데이터와, 논리 연산 결과 데이터가 모두 랜덤 마스킹 데이터 형식을 가지게 된다. 따라서, 논리 연산 도중에 비밀 정보가 노출되지 않으며, 전력 분석 공격에 안전한 특징을 가지게 된다. 이 경우, 중간 계산 값들의 확률 분포는 입력 데이터(X, Y)와 독립적이기 때문에, 논리 NOR 연산 장치(60, 62)로부터 발생된 각각의 논리 연산 결과들을 서로 논리 XOR 연산해 보면 원래 의도한 논리 연산 결과를 얻을 수 있게 된다.
도 9는 본 발명의 바람직한 실시예에 따른 논리 XOR 연산 장치(70)의 회로도이고, 도 10은 본 발명의 바람직한 실시예에 따른 논리 XNOR 연산 장치(80)의 회로도이다.
먼저 도 9를 참조하면, 본 발명에 따른 논리 XOR 연산 장치(70)는 제 1 논리 연산 회로(701)와 제 2 논리 연산 회로(705)를 포함한다. 제 1 논리 연산 회로(701)는, 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 XOR 연산(
Figure 112005005060820-pat00048
)을 수행한다. 그리고, 제 2 논리 연산 회로(705)는, 제 1 랜덤 데이터(R)와 제 2 랜덤 데이터(S)에 대해 논리 XOR 연산(
Figure 112005005060820-pat00049
)을 수행한다. 제 1 및 제 2 논리 연산 회로(701, 705)에서 수행된 논리 XOR 연산 결과(
Figure 112005005060820-pat00050
,
Figure 112005005060820-pat00051
)는 논리 XOR 연산 장치(70)의 논리 XOR 연산 결과로서 출력된다.
계속해서 도 10 참조하면, 본 발명에 따른 논리 XNOR 연산 장치(80)는 제 1 논리 연산 회로(801)와 제 2 논리 연산 회로(805)를 포함한다. 제 1 논리 연산 회로(801)는, 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 XOR 연산(
Figure 112005005060820-pat00052
)을 수행한다. 그리고, 제 2 논리 연산 회로(805)는, 제 1 랜덤 데이터(R)와 제 2 랜덤 데이터(S)에 대해 논리 XNOR 연산(
Figure 112005005060820-pat00053
)을 수행한다. 제 1 및 제 2 논리 연산 회로(801, 805)에서 수행된 논리 XNOR 연산 결과(
Figure 112005005060820-pat00054
,
Figure 112005005060820-pat00055
)는 논리 XNOR 연산 장치(80)의 논리 XNOR 연산 결과로서 출력된다.
도 9 및 도 10에 도시된 논리 XOR 연산 장치(70) 및 논리 XNOR 연산 장치(80)에 의하면, 4 개의 1 비트 입력 값들(
Figure 112005005060820-pat00056
,
Figure 112005005060820-pat00057
, R, S)이 주어졌을 때, 입력 데이터(X, Y)는 물론, 논리 연산 과정에 사용되는 데이터와, 논리 연산 결과 데이터가 모두 랜덤 마스킹 데이터 형식을 가지게 된다. 따라서, 논리 연산 도중에 비밀 정보가 노출되지 않으며, 전력 분석 공격에 안전한 특징을 가지게 된다. 이 경우, 중간 계산 값들의 확률 분포는 입력 데이터(X, Y)와 독립적이기 때문에, 논리 XOR 연산 장치(70) 및 논리 XNOR 연산 장치(80) 각각으로부터 발생된 각각의 논리 연산 결과들을 서로 논리 XOR 연산해 보면 원래 의도한 논리 연산 결과를 얻을 수 있게 된다.
도 11은 본 발명의 바람직한 실시예에 따른 논리 NOT 연산 장치(90)의 회로도이다.
도 11을 참조하면, 본 발명에 따른 논리 NOT 연산 장치(90)는, 제 1 랜덤 데이터(R)에 대해 논리 NOT 연산(
Figure 112005005060820-pat00058
)을 수행하는 논리 연산 회로(901)를 포함한다. 논리 연산 회로(901)의 논리 연산 결과 및 제 1 랜덤 마스크 데이터(X')는 논리 NOT 연산 장치(90)의 논리 NOT 연산 결과로서 출력된다.
도 11에 도시된 논리 NOT 연산 장치(90)에 의하면, 2 개의 1 비트 입력 값들(
Figure 112005005060820-pat00059
, R)이 주어졌을 때, 입력 데이터(X)는 물론, 논리 연산 과정에 사용되는 데이터와, 논리 연산 결과 데이터가 모두 랜덤 마스킹 데이터 형식을 가지게 된다. 따라서, 논리 연산 도중에 비밀 정보가 노출되지 않으며, 전력 분석 공격에 안전한 특징을 가지게 된다. 이 경우, 중간 계산 값들의 확률 분포는 입력 데이터(X)와 독립적이기 때문에, 논리 NOT 연산 장치(90)로부터 발생된 각각의 논리 연산 결과들을 서로 논리 XOR 연산해 보면 원래 의도한 논리 연산 결과를 얻을 수 있게 된다.
도 12 내지 도 16은 본 발명에 따른 논리 연산 장치가 적용된 산술연산장치의 구성 예를 보여주는 도면이다. 도 12에는 3 개의 논리 AND 연산 장치들(20a-20c)과 2개의 논리 XOR 연산 장치들(70a, 70b)로 구성된 전가산기(full adder ; 100)의 구성이 도시되어 있다. 도 13에는 2 개의 논리 AND 연산 장치들(20a-20b)과, 2개의 논리 XOR 연산 장치들(70a, 70b), 그리고 하나의 논리 OR 연산 장치(32)로 구성된 전가산기(200)의 구성이 도시되어 있다. 그리고, 도 14에는 3 개의 논리 NAND 연산 장치(50a-50c)와, 2개의 논리 XOR 연산 장치들(70a, 70b)로 구성된 전가산기(300)의 구성이 도시되어 있다.
도 12 내지 도 14에 도시된 전가산기들(100-300)은 모두 동일한 기능을 수행하는 회로이지만, 설계 방식에 따라 서로 다른 회로 구성을 갖는다. 그리고, 각각의 전가산기(100-300)에 포함된 논리 연산 장치들 역시 다양한 형태로 변경 가능하다. 예를 들면, 도 12에 도시된 전가산기(100)에 사용된 논리 AND 연산 장치들(20a-20c)은 도 4a에 도시된 논리 AND 연산 장치 뿐만 아니라, 도 3a 내지 도 4d에 도시된 논리 AND 연산 장치들(10-16, 20-26) 중 어느 것으로도 대체 가능하다. 이와 같은 특성은, 논리 AND 연산 장치 뿐만 아니라 어느 논리 연산 장치(예를 들면, 논리 OR 연산 장치, 논리 NAND 연산 장치, 논리 NOR 연산 장치 등)에도 마찬가지로 적용된다. 따라서, 도 12 내지 도 14에 도시된 전가산기들(100-300)의 회로 구성은, 어떠한 논리 연산 장치를 사용하는가에 따라 얼마든지 변경 가능하다.
도 15는 도 12에 도시된 전가산기(100)를 기호화한 것이다. 그리고, 도 16은 도 13에 도시된 전가산기들을 복수 개 이용하여 구성된 리플 캐리 가산기(ripple adder ; 400)의 구성을 보여주는 도면이다. 앞에서 설명한 바와 같이, 본 발명에 따른 논리 연산장치들은 모두 랜덤 마스킹 기법이 적용된다. 따라서, 상기 논리 연산 장치들로 구성된 전가산기(100)에도 역시 랜덤 마스킹 기법이 적용되고, 본 발명에 따른 전가산기들(110-140)이 복수 개 연결된 리플 가산기(400)에도 역시 랜덤 마스킹 기법이 적용된다. 따라서, 본 발명에 따른 논리 연산 장치들은 물론, 상기 논리 연산 장치로 구성된 산술연산장치 역시 전력 분석 공격에 안전한 특성을 가진다. 따라서, 보다 복잡한 암호화 알고리즘(또는 복잡한 암호 시스템)에 블록 암호화 알고리즘을 효과적으로 적용할 수 있게 된다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
이상과 같은 본 발명에 따른 논리 연산 장치 및 방법에 따르면, 결합법칩이 성립하는 논리 연산 뿐만 아니라 결합법칙이 성립하지 않는 논리 연산들(예를 들면, AND, OR 등)에도 랜덤 마스킹 알고리즘을 적용할 수 있다. 따라서, 원하는 연산을 수행하면서도 랜덤 마스크 형식의 데이터를 그대로 유지할 수 있고, 논리 연산 도중에 비밀 정보가 노출되지 않게 되어, 전력 분석 공격에 안전할 수 있게 된다.
또한, 랜덤 마스킹 알고리즘이 적용되도록 구성된 상기 논리 연산 장치들은, 적어도 둘 이상의 논리 연산들이 복합된 복합 논리 연산(예를 들면, 불 연산과 산술 연산이 복합된 논리 연산) 또는 다양한 복합 논리 연산 장치를 구성하는데 적용되어, 전력 공격에 안전한 암호 알고리즘 또는 암호 시스템을 구성할 수 있다.

Claims (62)

  1. 전력분석공격에 안전한 논리 연산 장치에 있어서:
    복수 개의 랜덤 데이터들과 복수 개의 랜덤 마스크 데이터들이 논리적으로 조합된 복수 개의 데이터 쌍들에 대해, 하나 또는 그 이상의 종류의 논리 연산들을 수행하는 제 1 논리 연산부; 그리고
    상기 논리 연산 장치의 논리 연산과 상기 논리 연산 장치에서 수행하고자 하는 논리 연산이 일치되도록 상기 제 1 논리 연산부에서 수행된 상기 논리 연산 결과들을 조합하는 제 2 논리 연산부를 포함하되,
    상기 제 2 논리 연산부는 상기 조합된 논리 연산 결과를 랜덤 마스크 데이터 형태로 출력하는 것을 특징으로 하는 논리 연산 장치.
  2. 제 1 항에 있어서,
    상기 각각의 랜덤 데이터는 매 클럭마다 랜덤하게 발생되는 것을 특징으로 하는 논리 연산 장치.
  3. 제 1 항에 있어서,
    상기 랜덤 마스크 데이터들은, 상기 랜덤 데이터들과 복수 개의 입력 데이터들에 대한 논리 XOR 연산 결과인 것을 특징으로 하는 논리 연산 장치.
  4. 제 1 항에 있어서,
    상기 논리 연산 장치는, 결합법칙이 성립되는 논리 연산 및 상기 결합법칙이 성립되지 않는 논리 연산들을 모두 수행할 수 있는 것을 특징으로 하는 논리 연산 장치.
  5. 제 1 항에 있어서,
    상기 논리 연산 장치의 논리 연산은, 적어도 둘 이상의 논리 연산들이 논리적으로 조합되고, 상기 논리적으로 조합된 복합 논리 연산에 적용되며,
    상기 복합 논리 연산에 사용되는 데이터 및 상기 복합 논리 연산의 출력 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 하는 논리 연산 장치.
  6. 제 1 항에 있어서,
    상기 논리 연산 장치 장치의 논리 연산은, 적어도 둘 이상의 논리 연산들에 대한 불 연산과 산술 연산이 복합적으로 조합되고, 상기 복합적으로 조합된 논리 연산에 적용되며,
    상기 복합적으로 조합된 논리 연산에 사용되는 데이터 및 상기 복합 논리 연산의 출력 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 하는 논리 연산 장치.
  7. 제 1 항에 있어서,
    상기 논리 연산 장치는, 가산, 감산, 곱셈, 및 나눗셈 기능들 중 적어도 어느 하나를 수행하는 산술연산장치에 적용되며,
    상기 산술연산장치에 사용되는 데이터 및 상기 산술 연산 장치의 결과 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 하는 논리 연산 장치.
  8. 삭제
  9. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(X'·Y')을 수행하는 제 1 논리 연산 회로;
    상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(X'·S)을 수행하는 제 2 논리 연산 회로;
    제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(R·Y')을 수행하는 제 3 논리 연산 회로; 그리고
    상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(R·S)을 수행하는 제 4 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  10. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(X'·Y')을 수행하는 제 5 논리 연산 회로;
    제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(R·Y')을 수행하는 제 6 논리 연산 회로;
    상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(X'·S)을 수행하는 제 7 논리 연산 회로; 그리고
    상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(R·S)을 수행하는 제 8 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  11. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00060
    )을 수행하는 제 9 논리 연산 회로;
    상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00061
    )을 수행하는 제 10 논리 연산 회로;
    제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00062
    )을 수행하는 제 11 논리 연산 회로; 그리고
    상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00063
    )을 수행하는 제 12 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  12. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00064
    )을 수행하는 제 13 논리 연산 회로;
    제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00065
    )을 수행하는 제 14 논리 연산 회로;
    상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00066
    )을 수행하는 제 15 논리 연산 회로; 그리고
    상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00067
    )을 수행하는 제 16 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  13. 제 9 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 1 논리 연산 회로에서 수행된 상기 논리 AND 연산 결과(X'·Y'), 상 기 제 2 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·S), 및 상기 제 2 랜덤 마스크 데이터(Y')에 대한 논리 XOR 연산을 수행하는 제 1 논리 조합부; 그리고
    상기 제 3 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·Y'), 상기 제 4 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·S), 및 상기 제 2 랜덤 마스크 데이터(Y')에 대한 논리 XOR 연산을 수행하는 제 2 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  14. 제 9 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 1 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·Y'), 상기 제 2 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·S), 및 상기 제 2 랜덤 데이터(S)에 대한 논리 XOR 연산을 수행하는 제 3 논리 조합부; 그리고
    상기 제 3 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·Y'), 상기 제 4 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·S), 및 상기 제 2 랜덤 데이터(S)에 대한 논리 XOR 연산을 수행하는 제 4 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  15. 제 10 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 5 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·Y'), 상기 제 6 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·Y'), 및 상기 제 1 랜덤 마스크 데이터(X')에 대한 논리 XOR 연산을 수행하는 제 5 논리 조합부; 그리고
    상기 제 7 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·S), 상기 제 8 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·S), 및 상기 제 1 랜덤 마스크 데이터(X')에 대한 논리 XOR 연산을 수행하는 제 6 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  16. 제 10 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 5 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·Y'), 상기 제 6 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·Y'), 및 상기 제 1 랜덤 데이터(R)에 대한 논리 XOR 연산을 수행하는 제 7 논리 조합부; 그리고
    상기 제 7 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·S), 상기 제 8 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·S), 및 상기 제 1 랜덤 데이터(R)에 대한 논리 XOR 연산을 수행하는 제 8 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  17. 제 11 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 9 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00068
    ), 제 10 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00069
    ), 및 상기 제 2 랜덤 마스크 데이터(Y')에 대한 논리 XOR 연산을 수행하는 제 9 논리 조합부; 그리고
    제 11 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00070
    ), 제 12 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00071
    ), 및 상기 제 2 랜덤 마스크 데이터(Y')에 대한 논리 XOR 연산을 수행하는 제 10 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  18. 제 11 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 9 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00072
    ), 제 10 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00073
    ), 및 제 2 랜덤 데이터(S)에 대한 논리 XOR 연산을 수행하는 제 11 논리 조합부; 그리고
    제 11 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00074
    ), 제 12 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00075
    ), 및 상기 제 2 랜덤 데이터(S)에 대한 논리 XOR 연산을 수행하는 제 12 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  19. 제 12 항에 있어서,
    상기 제 2 논리 연산부는,
    제 13 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00076
    ), 제 14 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00077
    ), 및 상기 제 1 랜덤 마스크 데이터(X')에 대한 논리 XOR 연산을 수행하는 제 13 논리 조합부; 그리고
    제 15 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00078
    ), 제 16 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00079
    ), 및 상기 제 1 랜덤 마스크 데이터(X')에 대한 논리 XOR 연산을 수행하는 제 14 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  20. 제 12 항에 있어서,
    상기 제 2 논리 연산부는,
    제 13 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00080
    ), 제 14 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00081
    ), 및 상기 제 1 랜덤 데이터(R)에 대한 논리 XOR 연산을 수행하는 제 15 논리 조합부; 그리고
    제 15 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00082
    ), 제 16 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00083
    ), 및 상기 제 1 랜덤 데이터(R)에 대한 논리 XOR 연산을 수행하는 제 16 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  21. 삭제
  22. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(X'·Y')을 수행하는 제 1 논리 연산 회로;
    상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(X'·S)을 수행하는 제 2 논리 연산 회로;
    제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(R·Y')을 수행하는 제 3 논리 연산 회로; 그리고
    상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(R·S)을 수행하는 제 4 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  23. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(X'·Y')을 수행하는 제 5 논리 연산 회로;
    제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(R·Y')을 수행하는 제 6 논리 연산 회로;
    상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(X'·S)을 수행하는 제 7 논리 연산 회로; 그리고
    상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(R·S)을 수행하는 제 8 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  24. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00084
    )을 수행하는 제 9 논리 연산 회로;
    상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00085
    )을 수행하는 제 10 논리 연산 회로;
    제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00086
    )을 수행하는 제 11 논리 연산 회로; 그리고
    상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00087
    )을 수행하는 제 12 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  25. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00088
    )을 수행하는 제 13 논리 연산 회로;
    제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00089
    )을 수행하는 제 14 논리 연산 회로;
    상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00090
    )을 수행하는 제 15 논리 연산 회로; 그리고
    상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00091
    )을 수행하는 제 16 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  26. 제 22 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 1 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·Y'), 상기 제 2 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·S), 및 상기 제 2 랜덤 마스크 데이터(Y')에 대한 논리 XNOR 연산을 수행하는 제 1 논리 조합부; 그리고
    상기 제 3 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·Y'), 상기 제 4 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·S), 및 상기 제 2 랜덤 마스 크 데이터(Y')에 대한 논리 XOR 연산을 수행하는 제 2 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  27. 제 22 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 1 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·Y'), 상기 제 2 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·S), 및 상기 제 2 랜덤 데이터(S)에 대한 논리 XNOR 연산을 수행하는 제 3 논리 조합부; 그리고
    상기 제 3 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·Y'), 상기 제 4 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·S), 및 상기 제 2 랜덤 데이터(S)에 대한 논리 XOR 연산을 수행하는 제 4 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  28. 제 23 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 5 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·Y'), 상기 제 6 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·Y'), 및 상기 제 1 랜덤 마스크 데이터(X')에 대한 논리 XNOR 연산을 수행하는 제 5 논리 조합부; 그리고
    상기 제 7 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·S), 상기 제 8 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·S), 및 상기 제 1 랜덤 마스 크 데이터(X')에 대한 논리 XOR 연산을 수행하는 제 6 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  29. 제 23 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 5 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·Y'), 상기 제 6 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·Y'), 및 상기 제 1 랜덤 데이터(R)에 대한 논리 XNOR 연산을 수행하는 제 7 논리 조합부; 그리고
    상기 제 7 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·S), 상기 제 8 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·S), 및 상기 제 1 랜덤 데이터(R)에 대한 논리 XOR 연산을 수행하는 제 8 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  30. 제 24 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 9 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00092
    ), 제 10 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00093
    ), 및 상기 제 2 랜덤 마스크 데이터(Y')에 대한 논리 XNOR 연산을 수행하는 제 9 논리 조합부; 그리고
    제 11 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00094
    ), 제 12 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00095
    ), 및 상기 제 2 랜덤 마스크 데이터(Y')에 대한 논리 XOR 연산을 수행하는 제 10 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  31. 제 24 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 9 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00096
    ), 제 10 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00097
    ), 및 제 2 랜덤 데이터(S)에 대한 논리 XNOR 연산을 수행하는 제 11 논리 조합부; 그리고
    제 11 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00098
    ), 제 12 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00099
    ), 및 상기 제 2 랜덤 데이터(S)에 대한 논리 XOR 연산을 수행하는 제 12 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  32. 제 25 항에 있어서,
    상기 제 2 논리 연산부는,
    제 13 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00100
    ), 제 14 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00101
    ), 및 상기 제 1 랜덤 마스크 데이터(X')에 대한 논리 XNOR 연산을 수행하는 제 13 논리 조합부; 그리고
    제 15 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00102
    ), 제 16 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00103
    ), 및 상기 제 1 랜덤 마스크 데이터(X')에 대한 논리 XOR 연산을 수행하는 제 14 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  33. 제 25 항에 있어서,
    상기 제 2 논리 연산부는,
    제 13 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00104
    ), 제 14 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00105
    ), 및 상기 제 1 랜덤 데이터(R)에 대한 논리 XNOR 연산을 수행하는 제 15 논리 조합부; 그리고
    제 15 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00106
    ), 제 16 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112005005060820-pat00107
    ), 및 상기 제 1 랜덤 데이터(R)에 대한 논리 XOR 연산을 수행하는 제 16 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  34. 삭제
  35. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 OR 연산(X'+Y')을 수행하는 제 1 논리 연산 회로;
    상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(X'·S)을 수행하는 제 2 논리 연산 회로;
    상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 OR 연산(R+S)을 수행하는 제 3 논리 연산 회로; 그리고
    제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(R·Y')을 수행하는 제 4 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  36. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NOR 연산(
    Figure 112007007659783-pat00108
    )을 수행하는 제 5 논리 연산 회로;
    상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00109
    )을 수행하는 제 6 논리 연산 회로;
    상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 NOR 연산(
    Figure 112007007659783-pat00110
    )을 수행하는 제 7 논리 연산 회로; 그리고
    제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00111
    )을 수행하는 제 8 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  37. 제 35 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 1 논리 연산 회로에서 수행된 상기 OR 연산 결과(X'+Y')와 상기 제 2 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·S)에 대한 논리 XOR 연산을 수행하는 제 1 논리 조합부; 그리고
    상기 제 3 논리 연산 회로에서 수행된 상기 OR 연산 결과(R+S)와 상기 제 4 논리 연산 회로에서 수행된 상기 논리 AND 연산 결과(R·Y')에 대한 논리 XOR 연산을 수행하는 제 2 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  38. 제 36 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 5 논리 연산 회로에서 수행된 상기 NOR 연산 결과(
    Figure 112007007659783-pat00112
    )와 상기 제 6 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112007007659783-pat00113
    )에 대한 논리 XOR 연산을 수행하는 제 3 논리 조합부; 그리고
    상기 제 7 논리 연산 회로에서 수행된 상기 NOR 연산 결과(
    Figure 112007007659783-pat00114
    )와 상기 제 8 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112007007659783-pat00115
    )에 대한 논리 XOR 연산을 수행하는 제 4 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  39. 삭제
  40. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 OR 연산(X'+Y')을 수행하는 제 1 논리 연산 회로;
    상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 AND 연산(X'·S)을 수행하는 제 2 논리 연산 회로;
    제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 AND 연산(R·Y')을 수행하는 제 3 논리 연산 회로; 그리고
    상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 OR 연산(R+S)을 수행하는 제 4 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  41. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NOR 연산(~(X'+Y'))을 수행하는 제 5 논리 연산 회로;
    상기 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 데이터(S)에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00117
    )을 수행하는 제 6 논리 연산 회로;
    제 1 랜덤 데이터(R)와 상기 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NAND 연산(
    Figure 112007007659783-pat00118
    )을 수행하는 제 7 논리 연산 회로; 그리고
    상기 제 1 랜덤 데이터(R)와 상기 제 2 랜덤 데이터(S)에 대해 논리 NOR 연산(
    Figure 112007007659783-pat00119
    )을 수행하는 제 8 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  42. 제 40 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 1 논리 연산 회로에서 수행된 상기 OR 연산 결과(X'+Y')와 상기 제 2 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·S)에 대한 논리 XOR 연산을 수행하는 제 1 논리 조합부; 그리고
    상기 제 3 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·Y')와 상기 제 4 논리 연산 회로에서 수행된 상기 OR 연산 결과(R+S)에 대한 논리 XNOR 연산을 수행하는 제 2 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  43. 제 41 항에 있어서,
    상기 제 2 논리 연산부는,
    상기 제 5 논리 연산 회로에서 수행된 상기 NOR 연산 결과(~(X'+Y'))와 상기 제 6 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112007007659783-pat00121
    )에 대한 논리 XOR 연산을 수행하는 제 3 논리 조합부; 그리고
    상기 제 7 논리 연산 회로에서 수행된 상기 NAND 연산 결과(
    Figure 112007007659783-pat00122
    )와 상기 제 8 논리 연산 회로에서 수행된 상기 NOR 연산 결과(
    Figure 112007007659783-pat00123
    )에 대한 논리 XNOR 연산을 수행하는 제 4 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
  44. 삭제
  45. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 XOR 연산(
    Figure 112007007659783-pat00124
    )을 수행하는 제 1 논리 연산 회로; 그리고
    제 1 랜덤 데이터(R)와 제 2 랜덤 데이터(S)에 대해 논리 XOR 연산(
    Figure 112007007659783-pat00125
    )을 수행하는 제 2 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  46. 제 45 항에 있어서,
    상기 제 1 및 제 2 논리 XOR 연산 결과들이 상기 논리 연산 장치의 상기 논리 XOR 연산 결과로서 출력되는 것을 특징으로 하는 논리 연산 장치.
  47. 삭제
  48. 제 1 항에 있어서,
    상기 제 1 논리 연산부는,
    제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 XOR 연산(
    Figure 112007007659783-pat00126
    )을 수행하는 제 1 논리 연산 회로; 그리고
    제 1 랜덤 데이터(R)와 제 2 랜덤 데이터(S)에 대해 논리 XNOR 연산(
    Figure 112007007659783-pat00127
    )을 수행하는 제 2 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  49. 제 48 항에 있어서,
    상기 논리 XOR 연산 결과 및 상기 논리 XNOR 연산 결과가 상기 논리 연산 장치의 상기 논리 XNOR 연산 결과로서 출력되는 것을 특징으로 하는 논리 연산 장치.
  50. 삭제
  51. 제 1 항에 있어서,
    상기 제 1 논리 연산부는, 제 1 랜덤 데이터(R)에 대해 논리 NOT 연산(
    Figure 112007007659783-pat00128
    )을 수행하는 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
  52. 제 51 항에 있어서,
    상기 논리 NOT 연산 결과 및 제 1 랜덤 마스크 데이터(X')가 상기 논리 연산 장치의 상기 논리 NOT 연산 결과로서 출력되는 것을 특징으로 하는 논리 연산 장치.
  53. 전력분석공격에 안전한 논리 연산 장치의 논리 연산 방법에 있어서:
    복수 개의 랜덤 데이터들을 이용하여 복수 개의 입력 데이터들을 복수 개의 랜덤 마스크 데이터들로 변환하는 단계;
    상기 복수 개의 랜덤 마스크 데이터들과 상기 랜덤 데이터들을 논리적으로 조합하여 복수 개의 데이터 쌍들을 구성하는 단계;
    상기 데이터 쌍들 각각에 대해 하나 또는 그 이상의 종류의 논리 연산들을 수행하는 단계;
    상기 논리 연산 장치의 논리 연산과 상기 논리 연산 장치에서 수행하고자 하는 논리 연산이 일치되도록 상기 논리 연산 결과들을 조합하는 단계; 그리고
    상기 조합된 논리 연산 결과를 랜덤 마스크 데이터 형태로 출력하는 단계를 포함하는 것을 특징으로 하는 논리 연산 방법.
  54. 제 53 항에 있어서,
    상기 각각의 랜덤 데이터는 매 클럭마다 랜덤하게 발생되는 것을 특징으로 하는 논리 연산 방법.
  55. 제 53 항에 있어서,
    상기 입력 데이터들을 상기 랜덤 마스크 데이터들로 변환하는 단계에서는, 상기 각각의 입력 데이터와 대응되는 랜덤 데이터에 대한 논리 XOR 연산이 수행되는 것을 특징으로 하는 논리 연산 방법.
  56. 제 53 항에 있어서,
    상기 논리 연산 장치는, 결합법칙이 성립되는 논리 연산 및 상기 결합법칙이 성립되지 않는 논리 연산들을 모두 수행할 수 있는 것을 특징으로 하는 논리 연산 방법.
  57. 제 53 항에 있어서,
    상기 논리 연산 장치는, 적어도 둘 이상의 논리 연산들이 논리적으로 조합되고, 상기 논리적으로 조합된 복합 논리 연산에 적용되며,
    상기 복합 논리 연산에 사용되는 데이터 및 상기 복합 논리 연산의 출력 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 하는 논리 연산 방법.
  58. 제 53 항에 있어서,
    상기 논리 연산 장치는, 적어도 둘 이상의 논리 연산들에 대한 불 연산과 산술 연산이 복합적으로 조합되고, 상기 복합적으로 조합된 논리 연산에 적용되며,
    상기 복합적으로 조합된 논리 연산에 사용되는 데이터 및 상기 복합 논리 연산의 출력 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 하는 논리 연산 방법.
  59. 제 53 항에 있어서,
    상기 논리 연산 장치는, 가산, 감산, 곱셈, 및 나눗셈 기능들 중 적어도 어느 하나를 수행하는 산술연산장치에 적용되며,
    상기 산술연산장치에 사용되는 데이터 및 상기 산술 연산 장치의 결과 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 하는 논리 연산 방법.
  60. 제 53 항에 있어서,
    상기 논리 연산 장치는 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 논리 NOR 연산, 논리 XOR 연산, 논리 XNOR 연산, 및 논리 NOT 연산 중 어느 하나를 수행하는 것을 특징으로 하는 논리 연산 방법.
  61. 제 53 항에 있어서,
    상기 논리 연산을 수행하는 단계에서는, 상기 데이터 쌍들 각각에 대해 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 논리 NOR 연산, 논리 XOR 연산, 논리 XNOR 연산, 및 논리 NOT 연산 중 적어도 어느 하나가 수행되는 것을 특징으로 하는 논리 연산 방법.
  62. 제 53 항에 있어서,
    상기 논리 연산 결과를 조합하는 단계에서는,
    상기 논리 연산 장치의 논리 연산과 상기 논리 연산 장치에서 수행하고자 하는 논리 연산이 일치되도록 상기 논리 연산 결과들에 대해 논리 XOR 연산 및 논리 XNOR 연산 중 어느 하나가 수행되는 것을 특징으로 하는 논리 연산 방법.
KR1020050007705A 2005-01-27 2005-01-27 전력 분석 공격에 안전한 논리 연산 장치 및 방법 KR100725169B1 (ko)

Priority Applications (9)

Application Number Priority Date Filing Date Title
KR1020050007705A KR100725169B1 (ko) 2005-01-27 2005-01-27 전력 분석 공격에 안전한 논리 연산 장치 및 방법
GB0801057A GB2443358A (en) 2005-01-27 2006-01-13 Cryptographic logic circuits and method of performing logic operations
GB0600690A GB2422693B (en) 2005-01-27 2006-01-13 Cryptographic logic circuits and method of performing logic operations
GB0801053A GB2443355B (en) 2005-01-27 2006-01-13 Cryptographic logic circuits and method of performing logic operations
GB0801054A GB2443356B (en) 2005-01-27 2006-01-13 Cryptographic logic circuits and method of performing logic operations
GB0801055A GB2443357B (en) 2005-01-27 2006-01-13 Cryptographic logic circuits and method of performing logic operations
GB0801058A GB2443359B (en) 2005-01-27 2006-01-13 Cryptographic logic circuits and method of performing logic operations
US11/334,430 US20070188355A1 (en) 2005-01-27 2006-01-19 Cryptographic logic circuits and method of performing logic operations
DE102006004557A DE102006004557A1 (de) 2005-01-27 2006-01-26 Kryptografische Logikschaltung und Kryptografieverfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050007705A KR100725169B1 (ko) 2005-01-27 2005-01-27 전력 분석 공격에 안전한 논리 연산 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20060086743A KR20060086743A (ko) 2006-08-01
KR100725169B1 true KR100725169B1 (ko) 2007-06-04

Family

ID=35998004

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050007705A KR100725169B1 (ko) 2005-01-27 2005-01-27 전력 분석 공격에 안전한 논리 연산 장치 및 방법

Country Status (4)

Country Link
US (1) US20070188355A1 (ko)
KR (1) KR100725169B1 (ko)
DE (1) DE102006004557A1 (ko)
GB (1) GB2422693B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101922955B1 (ko) * 2018-02-14 2018-11-28 (주)케이사인 데이터 블록 기반의 근 실시간 데이터 암호화 시스템 및 방법

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100699836B1 (ko) 2005-03-19 2007-03-27 삼성전자주식회사 스칼라 곱에서 dfa 대책을 위한 장치 및 방법
GB2434234B (en) * 2005-03-19 2008-01-02 Samsung Electronics Co Ltd Scalar multiplication apparatus and method
DE102007053295B4 (de) * 2007-11-08 2010-10-28 Infineon Technologies Ag Schaltungsanordnung und Verfahren zur Funktionsüberprüfung einer Logikschaltung in einer Schaltungsanordnung
KR100926749B1 (ko) * 2007-12-17 2009-11-16 한국전자통신연구원 2차 차분 전력분석 공격 방법 및 2차 차분 전자기분석 공격방법
FR2928060B1 (fr) * 2008-02-25 2010-07-30 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Procede de test de circuits de cryptographie, circuit de cryptographie securise apte a etre teste, et procede de cablage d'un tel circuit.
US8707037B2 (en) * 2008-04-17 2014-04-22 Atmel Corporation Cryptographic authentication apparatus, systems and methods
US8615078B2 (en) 2009-08-21 2013-12-24 Electronics And Telecommunications Research Institute Method and apparatus for processing F-function in seed encryption system
KR101276683B1 (ko) * 2009-08-21 2013-06-19 한국전자통신연구원 Seed 암호화 시스템의 f-함수 처리 장치 및 방법
FR2952735B1 (fr) * 2009-11-18 2011-12-09 St Microelectronics Rousset Procede et dispositif de detection d'attaques par injection de fautes
KR20120070873A (ko) * 2010-12-22 2012-07-02 한국전자통신연구원 부채널 방지 마스킹 덧셈 연산 장치
FR2984553B1 (fr) 2011-12-15 2015-11-06 Proton World Int Nv Procede et dispositif de detection de fautes
JP5951260B2 (ja) * 2012-01-10 2016-07-13 Kddi株式会社 論理演算装置、論理演算方法、およびプログラム
KR101977772B1 (ko) * 2012-07-12 2019-05-13 삼성전자주식회사 데이터 처리 장치 및 이를 포함하는 보안 메모리 장치
CN104598828B (zh) * 2013-10-31 2017-09-15 上海复旦微电子集团股份有限公司 数据的防攻击方法和装置
US9569616B2 (en) * 2013-12-12 2017-02-14 Cryptography Research, Inc. Gate-level masking
US9531384B1 (en) * 2014-12-01 2016-12-27 University Of South Florida Adiabatic dynamic differential logic for differential power analysis resistant secure integrated circuits
DE102015116049B3 (de) * 2015-09-23 2017-02-16 Infineon Technologies Ag Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis
CN107547189A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 免受侧信道分析的保护方法和设备
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP3503460A1 (en) * 2017-12-22 2019-06-26 Secure-IC SAS System and method for boolean masked arithmetic addition
DE102018107114A1 (de) * 2018-03-26 2019-09-26 Infineon Technologies Ag Seitenkanalgehärtete Operation
US11227065B2 (en) * 2018-11-06 2022-01-18 Microsoft Technology Licensing, Llc Static data masking
CN110717201B (zh) * 2019-09-12 2021-06-11 华中科技大学 一种抗简单功耗分析攻击的高斯采样电路
CN116364163B (zh) * 2023-04-17 2023-11-10 武汉喻芯半导体有限公司 一种基于nand闪存控制器的纠错方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268548A (ja) 2001-03-13 2002-09-20 Toshiba Corp 素数判定装置、方法及びプログラム
JP2002268547A (ja) 2001-03-08 2002-09-20 Toshiba Corp 演算装置、方法及びプログラム
KR20030081348A (ko) * 2000-12-13 2003-10-17 인피네온 테크놀로지스 아게 암호화 프로세서

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2325123A (en) * 1997-05-08 1998-11-11 Ibm Data encryption/decryption using random numbers
WO1999067766A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
GB2365153A (en) * 2000-01-28 2002-02-13 Simon William Moore Microprocessor resistant to power analysis with an alarm state
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
KR100585119B1 (ko) * 2004-01-07 2006-06-01 삼성전자주식회사 암호화 장치, 암호화 방법 및 그 기록매체
WO2005081085A2 (en) * 2004-02-13 2005-09-01 The Regents Of The University Of California Logic system for dpa and/or side channel attack resistance
KR101061906B1 (ko) * 2004-02-19 2011-09-02 삼성전자주식회사 전력분석공격에 안전한 기본 연산 장치 및 방법
KR100594265B1 (ko) * 2004-03-16 2006-06-30 삼성전자주식회사 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.
EP1836554B1 (en) * 2004-12-01 2008-04-16 Telecom Italia S.p.A. Method and related device for hardware-oriented conversion between arithmetic and boolean random masking

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030081348A (ko) * 2000-12-13 2003-10-17 인피네온 테크놀로지스 아게 암호화 프로세서
JP2002268547A (ja) 2001-03-08 2002-09-20 Toshiba Corp 演算装置、方法及びプログラム
JP2002268548A (ja) 2001-03-13 2002-09-20 Toshiba Corp 素数判定装置、方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101922955B1 (ko) * 2018-02-14 2018-11-28 (주)케이사인 데이터 블록 기반의 근 실시간 데이터 암호화 시스템 및 방법

Also Published As

Publication number Publication date
GB0600690D0 (en) 2006-02-22
GB2422693B (en) 2008-04-02
US20070188355A1 (en) 2007-08-16
GB2422693A (en) 2006-08-02
KR20060086743A (ko) 2006-08-01
DE102006004557A1 (de) 2006-08-10

Similar Documents

Publication Publication Date Title
KR100725169B1 (ko) 전력 분석 공격에 안전한 논리 연산 장치 및 방법
US7292060B2 (en) Logic circuit and method thereof
US10439796B2 (en) Methods and devices against side-channel analysis
US7567668B2 (en) Calculating unit and method for performing an arithmetic operation with encrypted operands
EP1836554B1 (en) Method and related device for hardware-oriented conversion between arithmetic and boolean random masking
US8443205B2 (en) Secure function evaluation techniques for circuits containing XOR gates with applications to universal circuits
US20150339102A1 (en) Cryptography Method Comprising an Operation of Multiplication by a Scalar or an Exponentiation
De Meyer et al. Multiplicative masking for AES in hardware
Jati et al. Threshold Implementations of $\mathtt {GIFT} $: A Trade-Off Analysis
Carlet et al. Achieving side-channel high-order correlation immunity with leakage squeezing
Wang et al. A performance and area efficient ASIP for higher-order DPA-resistant AES
US20200097256A1 (en) A calculation device for encoded addition
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
Cilio et al. Side-channel attack mitigation using dual-spacer Dual-rail Delay-insensitive Logic (D 3 L)
EP3664359A1 (en) A computation device using shared shares
CN106936822B (zh) 针对sms4抗高阶旁路分析的掩码实现方法及系统
Pirotte et al. Design of a fully balanced ASIC coprocessor implementing complete addition formulas on Weierstrass elliptic curves
Alioto et al. Differential power analysis attacks to precharged buses: a general analysis for symmetric-key cryptographic algorithms
Gafsi et al. Hardware implementation of a strong pseudorandom number generator based block‐cipher system for color image encryption and decryption
GB2443358A (en) Cryptographic logic circuits and method of performing logic operations
Chaves et al. SCA-Resistance for AES: How Cheap Can We Go?
GB2443355A (en) Cryptographic logic circuits and method of performing logic operations
Simões et al. Low-latency masking with arbitrary protection order based on click elements
Tang et al. PFD—A flexible higher-order masking scheme
Maghrebi et al. Register leakage masking using gray code

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
LAPS Lapse due to unpaid annual fee