KR100725169B1 - 전력 분석 공격에 안전한 논리 연산 장치 및 방법 - Google Patents
전력 분석 공격에 안전한 논리 연산 장치 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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]
-
- 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
-
- 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/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic 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
-
- 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/08—Randomization, e.g. dummy operations or using noise
-
- 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
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
도 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이라 하면, 랜덤 마스크 데이터는 PR이 된다. 차분 전력분석 공격에 안전하면서도 입력 데이터에 대한 원하는 연산을 수행하기 위해서는, 암호 알고리즘 연산 과정에서 발생되는 데이터가 랜덤 마스크 형식을 유지해야 한다. 여기서, 랜덤 마스크 형식의 데이터라 함은 입력 데이터 또는 입력 데이터들에 대한 연산 결과에 랜덤 데이터가 결합된 형태의 데이터를 말한다.
예를 들어, 임의의 평문(P)과 키(K)를 XOR 논리 연산하는 암호 알고리즘의 경우, 차분 전력분석 공격을 막기 위해 평문(P)을 그대로 사용하지 않고, 평문(P)을 랜덤 마스킹한 데이터(즉, PR)를 논리 연산에 사용한다. 이 경우, 랜덤 마스크 데이터(PR)와 키(K)에 대한 XOR 논리 연산 결과는, (PR)K가 된다. XOR 논리 연산은 결합법칙이 성립하므로, (PR)K = (PK)R 이 된다. 그 결과, 평문(P)에 대한 정보가 노출되지 않으면서도 원하는 XOR 논리 연산 결과(PK)를 얻을 수 있게 된다. 또한, 상기 XOR 논리 연산 과정이 알고리즘의 최종 단계가 아니라면, XOR 논리 연산 계산 결과인 (PK)이 노출되지 않아 하는데, 출력 값이 랜덤 마스크 형식(즉, (PK)R)을 가지므로, 이러한 조건도 만족하고 있다.
그러나, 이와 같은 블록 암호화 기법은 XOR 연산에는 적용 가능하지만, 예를 들어 평문(P)과 키(K)를 AND 논리 연산하는 암호 알고리즘에는 그대로 적용할 수 없는 문제가 있다. 즉, 위에서 설명한 블록 암호화 기법을 AND 연산에 적용하여 랜덤 마스크 데이터(PR)와 키(K)를 AND 논리 연산하면, (PR)·K가 된다. 그러나, AND 논리 연산에서는 결합법칙이 적용되지 않기 때문에 (PR)·K = (P·K)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 연산 결과 (,)는 모두 랜덤 마스킹 데이터 형식을 가진다. 추후에 상기 두 개의 논리 AND 결과(,)에 대해 XOR 연산을 수행하게 되면, 원래 구하고자 하는 연산 결과(즉, )를 얻을 수 있게 된다.
이에 관한 논리 식은 다음과 같다.
이상과 같은 본 발명에 따른 논리 AND 연산 장치에 의하면, 4 개의 1 비트 입력 값들(, , 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 연산 결과(즉, )를 각각 얻을 수 있다.
그리고, 도 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 연산의 특성에 기인한다.
[수학식 2]와 [표 1] 및 [표 2]를 참조하면, 도 3a에 도시된 논리 AND 연산장치(107)의 논리 XOR 결과인 와 )는 와로 각각 변형될 수 있다. 이와 같은 논리 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 연산 결과(,)는 모두 랜덤 마스킹 데이터 형식을 가진다. 추후에 상기 두 개의 논리 OR 연산 결과 (,)에 대해 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 비트 입력 값들(, , 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 비트 입력 값들(, , 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 비트 입력 값들(, , 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 연산()을 수행한다. 그리고, 제 2 논리 연산 회로(705)는, 제 1 랜덤 데이터(R)와 제 2 랜덤 데이터(S)에 대해 논리 XOR 연산()을 수행한다. 제 1 및 제 2 논리 연산 회로(701, 705)에서 수행된 논리 XOR 연산 결과(, )는 논리 XOR 연산 장치(70)의 논리 XOR 연산 결과로서 출력된다.
계속해서 도 10 참조하면, 본 발명에 따른 논리 XNOR 연산 장치(80)는 제 1 논리 연산 회로(801)와 제 2 논리 연산 회로(805)를 포함한다. 제 1 논리 연산 회로(801)는, 제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 XOR 연산()을 수행한다. 그리고, 제 2 논리 연산 회로(805)는, 제 1 랜덤 데이터(R)와 제 2 랜덤 데이터(S)에 대해 논리 XNOR 연산()을 수행한다. 제 1 및 제 2 논리 연산 회로(801, 805)에서 수행된 논리 XNOR 연산 결과(, )는 논리 XNOR 연산 장치(80)의 논리 XNOR 연산 결과로서 출력된다.
도 9 및 도 10에 도시된 논리 XOR 연산 장치(70) 및 논리 XNOR 연산 장치(80)에 의하면, 4 개의 1 비트 입력 값들(, , R, S)이 주어졌을 때, 입력 데이터(X, Y)는 물론, 논리 연산 과정에 사용되는 데이터와, 논리 연산 결과 데이터가 모두 랜덤 마스킹 데이터 형식을 가지게 된다. 따라서, 논리 연산 도중에 비밀 정보가 노출되지 않으며, 전력 분석 공격에 안전한 특징을 가지게 된다. 이 경우, 중간 계산 값들의 확률 분포는 입력 데이터(X, Y)와 독립적이기 때문에, 논리 XOR 연산 장치(70) 및 논리 XNOR 연산 장치(80) 각각으로부터 발생된 각각의 논리 연산 결과들을 서로 논리 XOR 연산해 보면 원래 의도한 논리 연산 결과를 얻을 수 있게 된다.
도 11은 본 발명의 바람직한 실시예에 따른 논리 NOT 연산 장치(90)의 회로도이다.
도 11을 참조하면, 본 발명에 따른 논리 NOT 연산 장치(90)는, 제 1 랜덤 데이터(R)에 대해 논리 NOT 연산()을 수행하는 논리 연산 회로(901)를 포함한다. 논리 연산 회로(901)의 논리 연산 결과 및 제 1 랜덤 마스크 데이터(X')는 논리 NOT 연산 장치(90)의 논리 NOT 연산 결과로서 출력된다.
도 11에 도시된 논리 NOT 연산 장치(90)에 의하면, 2 개의 1 비트 입력 값들(, 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 논리 연산부에서 수행된 상기 논리 연산 결과들을 조합하는 제 2 논리 연산부를 포함하되,상기 제 2 논리 연산부는 상기 조합된 논리 연산 결과를 랜덤 마스크 데이터 형태로 출력하는 것을 특징으로 하는 논리 연산 장치.
- 제 1 항에 있어서,상기 각각의 랜덤 데이터는 매 클럭마다 랜덤하게 발생되는 것을 특징으로 하는 논리 연산 장치.
- 제 1 항에 있어서,상기 랜덤 마스크 데이터들은, 상기 랜덤 데이터들과 복수 개의 입력 데이터들에 대한 논리 XOR 연산 결과인 것을 특징으로 하는 논리 연산 장치.
- 제 1 항에 있어서,상기 논리 연산 장치는, 결합법칙이 성립되는 논리 연산 및 상기 결합법칙이 성립되지 않는 논리 연산들을 모두 수행할 수 있는 것을 특징으로 하는 논리 연산 장치.
- 제 1 항에 있어서,상기 논리 연산 장치의 논리 연산은, 적어도 둘 이상의 논리 연산들이 논리적으로 조합되고, 상기 논리적으로 조합된 복합 논리 연산에 적용되며,상기 복합 논리 연산에 사용되는 데이터 및 상기 복합 논리 연산의 출력 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 하는 논리 연산 장치.
- 제 1 항에 있어서,상기 논리 연산 장치 장치의 논리 연산은, 적어도 둘 이상의 논리 연산들에 대한 불 연산과 산술 연산이 복합적으로 조합되고, 상기 복합적으로 조합된 논리 연산에 적용되며,상기 복합적으로 조합된 논리 연산에 사용되는 데이터 및 상기 복합 논리 연산의 출력 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 하는 논리 연산 장치.
- 제 1 항에 있어서,상기 논리 연산 장치는, 가산, 감산, 곱셈, 및 나눗셈 기능들 중 적어도 어느 하나를 수행하는 산술연산장치에 적용되며,상기 산술연산장치에 사용되는 데이터 및 상기 산술 연산 장치의 결과 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 하는 논리 연산 장치.
- 삭제
- 제 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 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 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 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 1 항에 있어서,상기 제 1 논리 연산부는,
- 제 1 항에 있어서,상기 제 1 논리 연산부는,
- 제 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 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 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 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 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 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 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 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 11 항에 있어서,상기 제 2 논리 연산부는,상기 제 9 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 제 10 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 및 상기 제 2 랜덤 마스크 데이터(Y')에 대한 논리 XOR 연산을 수행하는 제 9 논리 조합부; 그리고
- 제 11 항에 있어서,상기 제 2 논리 연산부는,상기 제 9 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 제 10 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 및 제 2 랜덤 데이터(S)에 대한 논리 XOR 연산을 수행하는 제 11 논리 조합부; 그리고
- 제 12 항에 있어서,상기 제 2 논리 연산부는,제 13 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 제 14 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 및 상기 제 1 랜덤 마스크 데이터(X')에 대한 논리 XOR 연산을 수행하는 제 13 논리 조합부; 그리고
- 제 12 항에 있어서,상기 제 2 논리 연산부는,제 13 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 제 14 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 및 상기 제 1 랜덤 데이터(R)에 대한 논리 XOR 연산을 수행하는 제 15 논리 조합부; 그리고
- 삭제
- 제 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 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 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 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 1 항에 있어서,상기 제 1 논리 연산부는,
- 제 1 항에 있어서,상기 제 1 논리 연산부는,
- 제 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 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 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 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 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 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 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 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 24 항에 있어서,상기 제 2 논리 연산부는,상기 제 9 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 제 10 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 및 상기 제 2 랜덤 마스크 데이터(Y')에 대한 논리 XNOR 연산을 수행하는 제 9 논리 조합부; 그리고
- 제 24 항에 있어서,상기 제 2 논리 연산부는,상기 제 9 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 제 10 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 및 제 2 랜덤 데이터(S)에 대한 논리 XNOR 연산을 수행하는 제 11 논리 조합부; 그리고
- 제 25 항에 있어서,상기 제 2 논리 연산부는,제 13 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 제 14 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 및 상기 제 1 랜덤 마스크 데이터(X')에 대한 논리 XNOR 연산을 수행하는 제 13 논리 조합부; 그리고
- 제 25 항에 있어서,상기 제 2 논리 연산부는,제 13 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 제 14 논리 연산 회로에서 수행된 상기 NAND 연산 결과(), 및 상기 제 1 랜덤 데이터(R)에 대한 논리 XNOR 연산을 수행하는 제 15 논리 조합부; 그리고
- 삭제
- 제 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 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 1 항에 있어서,상기 제 1 논리 연산부는,
- 제 35 항에 있어서,상기 제 2 논리 연산부는,상기 제 1 논리 연산 회로에서 수행된 상기 OR 연산 결과(X'+Y')와 상기 제 2 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·S)에 대한 논리 XOR 연산을 수행하는 제 1 논리 조합부; 그리고상기 제 3 논리 연산 회로에서 수행된 상기 OR 연산 결과(R+S)와 상기 제 4 논리 연산 회로에서 수행된 상기 논리 AND 연산 결과(R·Y')에 대한 논리 XOR 연산을 수행하는 제 2 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 삭제
- 제 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 논리 연산 회로를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 제 1 항에 있어서,상기 제 1 논리 연산부는,제 1 랜덤 마스크 데이터(X')와 제 2 랜덤 마스크 데이터(Y')에 대해 논리 NOR 연산(~(X'+Y'))을 수행하는 제 5 논리 연산 회로;
- 제 40 항에 있어서,상기 제 2 논리 연산부는,상기 제 1 논리 연산 회로에서 수행된 상기 OR 연산 결과(X'+Y')와 상기 제 2 논리 연산 회로에서 수행된 상기 AND 연산 결과(X'·S)에 대한 논리 XOR 연산을 수행하는 제 1 논리 조합부; 그리고상기 제 3 논리 연산 회로에서 수행된 상기 AND 연산 결과(R·Y')와 상기 제 4 논리 연산 회로에서 수행된 상기 OR 연산 결과(R+S)에 대한 논리 XNOR 연산을 수행하는 제 2 논리 조합부를 포함하는 것을 특징으로 하는 논리 연산 장치.
- 삭제
- 제 45 항에 있어서,상기 제 1 및 제 2 논리 XOR 연산 결과들이 상기 논리 연산 장치의 상기 논리 XOR 연산 결과로서 출력되는 것을 특징으로 하는 논리 연산 장치.
- 삭제
- 제 48 항에 있어서,상기 논리 XOR 연산 결과 및 상기 논리 XNOR 연산 결과가 상기 논리 연산 장치의 상기 논리 XNOR 연산 결과로서 출력되는 것을 특징으로 하는 논리 연산 장치.
- 삭제
- 제 51 항에 있어서,상기 논리 NOT 연산 결과 및 제 1 랜덤 마스크 데이터(X')가 상기 논리 연산 장치의 상기 논리 NOT 연산 결과로서 출력되는 것을 특징으로 하는 논리 연산 장치.
- 전력분석공격에 안전한 논리 연산 장치의 논리 연산 방법에 있어서:복수 개의 랜덤 데이터들을 이용하여 복수 개의 입력 데이터들을 복수 개의 랜덤 마스크 데이터들로 변환하는 단계;상기 복수 개의 랜덤 마스크 데이터들과 상기 랜덤 데이터들을 논리적으로 조합하여 복수 개의 데이터 쌍들을 구성하는 단계;상기 데이터 쌍들 각각에 대해 하나 또는 그 이상의 종류의 논리 연산들을 수행하는 단계;상기 논리 연산 장치의 논리 연산과 상기 논리 연산 장치에서 수행하고자 하는 논리 연산이 일치되도록 상기 논리 연산 결과들을 조합하는 단계; 그리고상기 조합된 논리 연산 결과를 랜덤 마스크 데이터 형태로 출력하는 단계를 포함하는 것을 특징으로 하는 논리 연산 방법.
- 제 53 항에 있어서,상기 각각의 랜덤 데이터는 매 클럭마다 랜덤하게 발생되는 것을 특징으로 하는 논리 연산 방법.
- 제 53 항에 있어서,상기 입력 데이터들을 상기 랜덤 마스크 데이터들로 변환하는 단계에서는, 상기 각각의 입력 데이터와 대응되는 랜덤 데이터에 대한 논리 XOR 연산이 수행되는 것을 특징으로 하는 논리 연산 방법.
- 제 53 항에 있어서,상기 논리 연산 장치는, 결합법칙이 성립되는 논리 연산 및 상기 결합법칙이 성립되지 않는 논리 연산들을 모두 수행할 수 있는 것을 특징으로 하는 논리 연산 방법.
- 제 53 항에 있어서,상기 논리 연산 장치는, 적어도 둘 이상의 논리 연산들이 논리적으로 조합되고, 상기 논리적으로 조합된 복합 논리 연산에 적용되며,상기 복합 논리 연산에 사용되는 데이터 및 상기 복합 논리 연산의 출력 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 하는 논리 연산 방법.
- 제 53 항에 있어서,상기 논리 연산 장치는, 적어도 둘 이상의 논리 연산들에 대한 불 연산과 산술 연산이 복합적으로 조합되고, 상기 복합적으로 조합된 논리 연산에 적용되며,상기 복합적으로 조합된 논리 연산에 사용되는 데이터 및 상기 복합 논리 연산의 출력 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 하는 논리 연산 방법.
- 제 53 항에 있어서,상기 논리 연산 장치는, 가산, 감산, 곱셈, 및 나눗셈 기능들 중 적어도 어느 하나를 수행하는 산술연산장치에 적용되며,상기 산술연산장치에 사용되는 데이터 및 상기 산술 연산 장치의 결과 데이터는 모두 랜덤 마스크 데이터 형태를 갖는 것을 특징으로 하는 논리 연산 방법.
- 제 53 항에 있어서,상기 논리 연산 장치는 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 논리 NOR 연산, 논리 XOR 연산, 논리 XNOR 연산, 및 논리 NOT 연산 중 어느 하나를 수행하는 것을 특징으로 하는 논리 연산 방법.
- 제 53 항에 있어서,상기 논리 연산을 수행하는 단계에서는, 상기 데이터 쌍들 각각에 대해 논리 AND 연산, 논리 OR 연산, 논리 NAND 연산, 논리 NOR 연산, 논리 XOR 연산, 논리 XNOR 연산, 및 논리 NOT 연산 중 적어도 어느 하나가 수행되는 것을 특징으로 하는 논리 연산 방법.
- 제 53 항에 있어서,상기 논리 연산 결과를 조합하는 단계에서는,상기 논리 연산 장치의 논리 연산과 상기 논리 연산 장치에서 수행하고자 하는 논리 연산이 일치되도록 상기 논리 연산 결과들에 대해 논리 XOR 연산 및 논리 XNOR 연산 중 어느 하나가 수행되는 것을 특징으로 하는 논리 연산 방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101922955B1 (ko) * | 2018-02-14 | 2018-11-28 | (주)케이사인 | 데이터 블록 기반의 근 실시간 데이터 암호화 시스템 및 방법 |
Families Citing this family (24)
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)
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)
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 |
-
2005
- 2005-01-27 KR KR1020050007705A patent/KR100725169B1/ko not_active IP Right Cessation
-
2006
- 2006-01-13 GB GB0600690A patent/GB2422693B/en not_active Expired - Fee Related
- 2006-01-19 US US11/334,430 patent/US20070188355A1/en not_active Abandoned
- 2006-01-26 DE DE102006004557A patent/DE102006004557A1/de not_active Ceased
Patent Citations (3)
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)
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 |