KR101061906B1 - 전력분석공격에 안전한 기본 연산 장치 및 방법 - Google Patents

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

Info

Publication number
KR101061906B1
KR101061906B1 KR1020040010975A KR20040010975A KR101061906B1 KR 101061906 B1 KR101061906 B1 KR 101061906B1 KR 1020040010975 A KR1020040010975 A KR 1020040010975A KR 20040010975 A KR20040010975 A KR 20040010975A KR 101061906 B1 KR101061906 B1 KR 101061906B1
Authority
KR
South Korea
Prior art keywords
data
logic
random
logical
xor
Prior art date
Application number
KR1020040010975A
Other languages
English (en)
Other versions
KR20050082513A (ko
Inventor
엘레나트리치나
윤중철
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040010975A priority Critical patent/KR101061906B1/ko
Priority to US11/035,077 priority patent/US7292060B2/en
Priority to JP2005018876A priority patent/JP4885458B2/ja
Priority to DE102005009170A priority patent/DE102005009170B4/de
Publication of KR20050082513A publication Critical patent/KR20050082513A/ko
Application granted granted Critical
Publication of KR101061906B1 publication Critical patent/KR101061906B1/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]
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B18/00Surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body
    • A61B18/18Surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body by applying electromagnetic radiation, e.g. microwaves
    • A61B18/20Surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body by applying electromagnetic radiation, e.g. microwaves using laser
    • A61B18/22Surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body by applying electromagnetic radiation, e.g. microwaves using laser the beam being directed along or through a flexible conduit, e.g. an optical fibre; Couplings or hand-pieces therefor
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B90/00Instruments, implements or accessories specially adapted for surgery or diagnosis and not covered by any of the groups A61B1/00 - A61B50/00, e.g. for luxation treatment or for protecting wound edges
    • A61B90/36Image-producing devices or illumination devices not otherwise provided for
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B18/00Surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body
    • A61B18/18Surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body by applying electromagnetic radiation, e.g. microwaves
    • A61B18/20Surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body by applying electromagnetic radiation, e.g. microwaves using laser
    • A61B18/22Surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body by applying electromagnetic radiation, e.g. microwaves using laser the beam being directed along or through a flexible conduit, e.g. an optical fibre; Couplings or hand-pieces therefor
    • A61B2018/225Features of hand-pieces
    • A61B2018/2253Features of hand-pieces characterised by additional functions, e.g. surface cooling or detecting pathological tissue
    • 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

Abstract

본 발명은 전력분석공격에 안전한 기본 연산 장치 및 방법 에 관한 것이다. 본 발명에 따른 기본 연산 장치는 랜덤 마스크 장치, 랜덤 데이터 발생장치, 그리고 논리 연산 장치를 기본 구성 요소로 한다. 본 발명은 논리 연산 도중에 입력 데이터의 노출을 방지하기 위해 랜덤 데이터 또는 랜덤 마스크 데이터 또는 랜덤 마스크 형식의 데이터 만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터에 대한 기본 연산 결과를 랜덤 마스크 형식으로 출력한다. 본 발명에 의하면, 동일한 데이터가 입력되어도 소모되는 전력이 달라지므로 전력분석공격에 안전하다.

Description

전력분석공격에 안전한 기본 연산 장치 및 방법 {BASIC ARITHMETIC AND LOGIC APPARATUS AND METHOD BEING SECURE AGAINST DIFFERENTIAL POWER ANALYSIS}
도 1은 본 발명에 따른 기본 연산 장치를 보여주는 블록도이다.
도 2는 도 1에 도시된 논리 연산 장치의 실시예로서 NOT 연산 장치를 보여주는 블록도이다.
도 3은 도 1에 도시된 논리 연산 장치의 실시예로서 AND 연산 장치를 보여주는 블록도이다.
도 4는 도 1에 도시된 논리 연산 장치의 실시예로서 OR 연산 장치를 보여주는 블록도이다.
도 5는 도 1에 도시된 논리 연산 장치의 실시예로서 NAND 연산 장치를 보여주는 블록도이다.
도 6은 도 1에 도시된 논리 연산 장치의 실시예로서 NOR 연산 장치를 보여주는 블록도이다.
*도면의 주요부분에 대한 부호의 설명*
100 : 랜덤 마스크 장치 200 : 랜덤 데이터 발생장치
300 : 논리 연산 장치 310 : NOT 연산 장치
320 : AND 연산 장치 330 : OR 연산 장치
340 : NAND 연산 장치 350 : NOR 연산 장치
본 발명은 암호화 회로에 관한 것으로, 더욱 상세하게는 전력분석공격에 안전한 기본 연산 장치 및 방법에 관한 것이다.
최근 암호 알고리즘의 연산 과정에서 발생되는 소비 전력을 측정하거나 연산 수행 시간을 측정하여 비밀키와 같은 비밀 정보를 알아내는 방법이 알려졌다.
암호 알고리즘에 대한 비밀 정보의 누출을 부가채널(Side Channel)이라 하고, 부가 채널을 이용한 공격방법을 부가채널공격(Side Channel Attack)이라 한다. 부가채널공격은 크게 시간공격(Timing Attack), 결함주입공격(Fault Insertion Attack), 그리고 전력분석공격(Power Analysis Attack) 등으로 나눌 수 있다. 특히, 암호 전용 연산기(co-processor)가 장착된 스마트 카드 시스템에서 부가채널공격에 대한 연구가 활발히 진행되고 있다. 스마트 카드는 비밀 데이터에 대한 연산이 많이 이루어지므로 부가채널 가능성이 높다.
전력분석공격은 암호 알고림즘의 연산 과정에서 소비전력을 측정하고 이를 분석하여 비밀정보를 알아내는 공격법이다. 이 방법은 Paul Kocher에 의해 제안된 방법으로서, 크게‘Simple Power Analysis(SPA)’와 ‘Differential Power Analysis(DPA)’로 나눌 수 있다. 이 중에서 DPA가 SPA보다 간단하고 강력하기 때문에 DPA에 대한 방어책을 연구하는 것이 중요하다.
DPA에 대한 방어책으로서 대표적인 방법은 입력 데이터와 랜덤 데이터를 논리연산한 후에 암호 알고리즘에 입력하는 방법이다. 이를 랜덤 마스킹(Random masking)이라 한다. 입력 데이터를 랜덤 마스킹 하면, 동일한 값이 입력되더라도 알고리즘 연산 과정에서 소모되는 전력이 달라지므로 비밀정보의 노출을 막을 수 있다. 랜덤 마스킹 방법에는 여러 가지가 있으나, 입력 데이터와 랜덤 데이터를 XOR 논리 연산하는 방법이 일반적으로 사용된다. 입력 데이터를 a라 하고 랜덤 데이터를 r이라 하면, 랜덤 마스크 데이터는 /a = a
Figure 112004006856812-pat00001
r 이 된다.
DPA에 안전하면서 동시에 입력 데이터에 대한 원하는 연산을 수행하기 위해서는 암호 알고리즘 연산 과정에서 발생되는 데이터가 랜덤 마스크 형식을 유지해야 한다. 여기서, 랜덤 마스크 형식의 데이터라 함은 입력 데이터 또는 입력 데이터들에 대한 연산 결과에 랜덤 데이터가 결합된 형태의 데이터를 말한다.
예를 들어, 평문 a 와 키 k를 XOR 논리 연산하는 암호 알고리즘이 있다고 가정한다. DPA를 막기 위해 평문 a를 그대로 사용하지 않고 랜덤 데이터 r을 생성하여 랜덤 마스킹한 /a = a
Figure 112004006856812-pat00002
r 을 사용한다. 랜덤 마스크 데이터(/a)와 키(k)를 XOR 논리 연산하면, /a
Figure 112004006856812-pat00003
k = (a
Figure 112004006856812-pat00004
r)
Figure 112004006856812-pat00005
k 가 된다. XOR 논리 연산은 결합법칙이 성립하므로 /a
Figure 112004006856812-pat00006
k = (a
Figure 112004006856812-pat00007
k)
Figure 112004006856812-pat00008
r 이 된다. 이것은 평문 a 에 대한 정보가 노출되지 않으면서도 원하는 XOR 논리 연산 결과(a
Figure 112004006856812-pat00009
k)을 얻을 수 있다. 또한, 상기 XOR 논리 연산 과정이 알고리즘의 최종 단계가 아니라면, XOR 논리 연산 계산 결과인 (a
Figure 112004006856812-pat00010
k)가 노출되지 않아 하는데, 출력값이 랜덤 마스크 형식 (a
Figure 112004006856812-pat00011
k)
Figure 112004006856812-pat00012
r 을 가지므로 이러한 조건도 만족하고 있다.
그러나 평문 a 와 키 k를 AND 논리 연산하는 암호 알고리즘에서는 XOR 논리 연산과 같은 결과가 얻어지지 않는다. 즉, 위의 예에서 /a ∧ k = (a
Figure 112004006856812-pat00013
r) ∧k 가 성립한다. 그러나 AND 논리 연산에서는 결합법칙이 적용되지 않기 때문에 /a ∧ k = (a ∧ k)
Figure 112004006856812-pat00014
r 이 성립하지 않는다.
따라서 결합법칙이 성립하지 않는 논리 연산들(예를 들면, AND, OR 등)이 포함되어 있는 알고리즘에서는 랜덤 마스킹 방법을 사용할 수 없게 되는 문제점이 있다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 전력분석공격에 안전한 기본 연산 장치 및 방법을 제공하는데 있다.
본 발명의 다른 목적은 결합법칙이 성립되지 않는 논리 연산에도 랜덤 마스킹 방법을 사용할 수 있는 기본 연산 장치 및 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 상기 기본 연산 장치를 사용하여 상기 기본 연산 장치를 기반으로 하여 만들 수 있는 보다 복잡한 연산 장치를 만드는 방법을 제공하는데 있다.
상술한 기술적 과제를 달성하기 위한 본 발명에 따른 전력분석공격에 안전한 기본 연산 장치는, 랜덤 데이터를 생성하는 랜덤 데이터 발생장치와; 입력 데이터 및 상기 랜덤 데이터를 받아들여서 랜덤 마스크 데이터를 생성하는 랜덤 마스크 장치와; 그리고 상기 랜덤 마스크 데이터 또는 랜덤 데이터 또는 랜덤 마스크 형식의 데이터 만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터에 대한 기본 연산 결과를 랜덤 마스크 형식으로 출력하는 논리 연산 장치를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 논리 연산 장치는 논리부정(NOT) 연산 장치인 것을 특징으로 한다. 상기 논리부정(NOT) 연산 장치는, 상기 랜덤 마스크 데이터를 받아들여서 NOT 논리 연산을 수행하는 제 1 논리 게이트와; 제 1 및 제 2 랜덤 데이터를 받아들여 XOR 논리 연산을 수행하는 제 2 논리 게이트와; 그리고 상기 제 1 및 제 2 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 제 3 논리 게이트를 포함하는 것을 특징으로 한다.
여기서, 상기 랜덤 마스크 데이터는 상기 입력 데이터와 상기 제 1 랜덤 데이터를 XOR 논리 연산한 데이터인 것을 특징으로 한다.
한편, 상기 랜덤 마스크 데이터와 상기 제 1 및 제 2 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 NOT 논리 연산을 수행하는 것이 가능하다.
이 실시예에 있어서, 상기 논리 연산 장치는 논리곱(AND) 연산 장치인 것을 특징으로 한다. 상기 논리곱(AND) 연산 장치는, 제 1 및 제 2 랜덤 마스크 데이터를 받아들여서 AND 논리 연산을 수행하는 제 1 논리 게이트와; 상기 제 1 랜덤 마스크 데이터 및 제 2 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 제 2 논리 게이트와; 상기 제 2 랜덤 마스크 데이터 및 제 1 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 제 3 논리 게이트와; 상기 제 1 및 제 2 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 제 4 논리 게이트와; 상기 제 2 및 제 3 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 제 5 논리 게이트와; 상기 제 4 및 제 5 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 제 6 논리 게이트와; 상기 제 6 논리 게이트의 결과 및 제 3 랜덤 데이터 받아들여서 XOR 논리 연산을 수행하는 제 7 논리 게이트와; 그리고 상기 제 1 및 제 7 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 제 8 논리 게이트를 포함하는 것을 특징으로 한다.
여기서, 상기 제 1 랜덤 마스크 데이터는 제 1 입력 데이터와 상기 제 1 랜덤 데이터를 XOR 논리 연산한 데이터이고, 상기 제 2 랜덤 마스크 데이터는 제 2 입력 데이터와 상기 제 2 랜덤 데이터를 XOR 논리 연산한 데이터인 것을 특징으로 한다.
한편, 상기 제 1 및 제 2 랜덤 마스크 데이터와 상기 제 1 내지 제 3 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 AND 논리 연산을 수행하는 것이 가능하다.
이 실시예에 있어서, 상기 논리 연산 장치는, 논리합(OR) 연산 장치인 것을 특징으로 한다. 상기 논리합(OR) 연산 장치는, 제 1 및 제 2 랜덤 마스크 데이터를 받아들여서 OR 논리 연산을 수행하는 제 1 논리 게이트와; 상기 제 1 랜덤 마스크 데이터 및 제 2 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 제 2 논리 게이트와; 상기 제 2 랜덤 마스크 데이터 및 제 1 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 제 3 논리 게이트와; 상기 제 1 및 제 2 랜덤 데이터를 받아들여서 OR 논리 연산을 수행하는 제 4 논리 게이트와; 상기 제 2 및 제 3 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 제 5 논리 게이트와; 상기 제 4 및 제 5 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 제 6 논리 게이트와; 상기 제 6 논리 게이트의 결과 및 제 3 랜덤 데이터 받아들여서 XOR 논리 연산을 수행하는 제 7 논리 게이트와; 그리고 상기 제 1 및 제 7 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 제 8 논리 게이트를 포함하는 것을 특징으로 한다.
여기서, 상기 제 1 랜덤 마스크 데이터는 제 1 입력 데이터와 상기 제 1 랜덤 데이터를 XOR 논리 연산한 데이터이고, 상기 제 2 랜덤 마스크 데이터는 제 2 입력 데이터와 상기 제 2 랜덤 데이터를 XOR 논리 연산한 데이터인 것을 특징으로 한다.
한편, 상기 제 1 및 제 2 랜덤 마스크 데이터와 상기 제 1 내지 제 3 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 OR 논리 연산을 수행하는 것이 가능하다.
이 실시예에 있어서, 상기 논리 연산 장치는, 부정논리곱(NAND) 연산 장치인 것을 특징으로 한다. 상기 부정논리곱(NAND) 연산 장치는, 논리곱(AND) 연산 장치와 논리부정(NOT) 연산 장치로 구성되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 논리 연산 장치는, 부정논리합(NOR) 연산 장치인 것을 특징으로 한다. 상기 부정논리합(NOR) 연산 장치는, 논리합(OR) 연산 장치와 논리부정(NOT) 연산 장치로 구성되는 것을 특징으로 한다.
본 발명에 따른 전력분석공격에 안전한 기본 연산 장치의 논리 연산 방법은, a) 랜덤 데이터를 생성하는 단계와; b) 입력 데이터 및 상기 랜덤 데이터를 받아들여서 랜덤 마스크 데이터를 생성하는 단계와; 그리고 c) 상기 랜덤 마스크 데이터 또는 랜덤 데이터 또는 랜덤 마스크 형식의 데이터 만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터에 대한 기본 연산 결과를 랜덤 마스크 형식으로 출력하는 단계를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 c) 단계는 논리부정(NOT) 연산 단계인 것을 특징으로 한다. 상기 논리부정(NOT) 연산 단계는, d1) 상기 랜덤 마스크 데이터를 받아들여서 NOT 논리 연산을 수행하는 단계와; e1) 제 1 및 제 2 랜덤 데이터를 받아들여 XOR 논리 연산을 수행하는 단계와; 그리고 f1) 상기 제 d1) 및 제 e1) 단계의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 단계를 포함하는 것을 특징으로 한다. 한편, 상기 랜덤 마스크 데이터와 상기 제 1 및 제 2 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 NOT 논리 연산을 수행하는 것이 가능하다.
이 실시예에 있어서, 상기 c) 단계는 논리곱(AND) 연산 단계인 것을 특징으로 한다. 상기 논리곱(AND) 연산 단계는, d2) 제 1 및 제 2 랜덤 마스크 데이터를 받아들여서 AND 논리 연산을 수행하는 단계와; e2) 상기 제 1 랜덤 마스크 데이터 및 제 2 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 단계와; f2) 상기 제 2 랜덤 마스크 데이터 및 제 1 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 단계와; g2) 상기 제 1 및 제 2 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 단계와; h2) 상기 제 2 및 제 3 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 단계와; i2) 상기 제 4 및 제 5 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 단계와; j2) 상기 제 6 논리 게이트의 결과 및 제 3 랜덤 데이터 받아들여서 XOR 논리 연산을 수행하는 단계와; 그리고 k2) 상기 제 1 및 제 7 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 단계를 포함하는 것을 특징으로 한다. 한편, 상기 제 1 및 제 2 랜덤 마스크 데이터와 상기 제 1 내지 제 3 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 AND 논리 연산을 수행하는 것이 가능하다.
이 실시예에 있어서, 상기 c) 단계는 논리합(OR) 연산 단계인 것을 특징으로 한다. 상기 논리합(OR) 연산 단계는, d3) 제 1 및 제 2 랜덤 마스크 데이터를 받아들여서 OR 논리 연산을 수행하는 단계와; e3) 상기 제 1 랜덤 마스크 데이터 및 제 2 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 단계와; f3) 상기 제 2 랜덤 마스크 데이터 및 제 1 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 단계와; g3) 상기 제 1 및 제 2 랜덤 데이터를 받아들여서 OR 논리 연산을 수행하는 단계와; h3) 상기 제 2 및 제 3 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 단계와; i3) 상기 제 4 및 제 5 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 단계와; j3) 상기 제 6 논리 게이트의 결과 및 제 3 랜덤 데이터 받아들여서 XOR 논리 연산을 수행하는 단계와; 그리고 k3) 상기 제 1 및 제 7 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 단계를 포함하는 것을 특징으로 한다. 한편, 상기 제 1 및 제 2 랜덤 마스크 데이터와 상기 제 1 내지 제 3 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 OR 논리 연산을 수행하는 것이 가능하다.
이 실시예에 있어서, 상기 c) 단계는 부정논리곱(NAND) 연산 단계인 것을 특징으로 한다. 상기 부정논리곱(NAND) 연산 단계는, 논리곱(AND) 연산 단계와 논리부정(NOT) 연산 단계로 구성되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 c) 단계는 부정논리합(NOR) 연산 단계인 것을 특징으로 한다. 상기 부정논리합(NOR) 연산 단계는, 논리합(OR) 연산 단계와 논리부정(NOT) 연산 단계로 구성되는 것을 특징으로 한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명에 따른 기본 연산 장치를 보여주는 블록도이다. 도 1을 참조하면, 상기 기본 연산 장치는 랜덤 마스크 장치(100), 랜덤 데이터 발생장치(200), 그리고 논리 연산 장치(300)를 포함한다. 상기 기본 연산 장치는 논리 연산 도중에 입력 데이터에 대한 정보가 노출되지 않도록 하면서 입력 데이터에 대한 기본 연산을 수행하고 그 결과를 랜덤 마스크 형식으로 출력한다.
상기 랜덤 마스크 장치(100)는 입력 데이터(ai) 및 랜덤 데이터(ri)를 받아들여서 랜덤 마스크 데이터(/a1, /a2, … , /am)를 생성한다. 여기서, 상기 i=1~m 이고, m은 자연수이다. 랜덤 마스크 데이터를 만드는 방법은 여러 가지가 있으나, 입력 데이터와 랜덤 데이터를 XOR 논리 연산하는 방법이 대표적이다. 즉, /a1 = a1
Figure 112004006856812-pat00015
r1, /a2 = a2
Figure 112004006856812-pat00016
r2, … , /am = am
Figure 112004006856812-pat00017
rm 이다.
상기 랜덤 데이터 발생장치(200)는 랜덤 데이터(r1, r2, … , rn)를 발생한다.
상기 논리 연산 장치(300)는 상기 랜덤 마스크 데이터 및 랜덤 데이터를 받아들여서 논리 연산을 수행한다. 상기 논리 연산 장치(300)는 논리 연산을 수행하는 논리 게이트들(예를 들면, NOT, AND, OR 논리 게이트 등)로 구성된다. 상기 논리 연산 장치(300)는 논리 연산 도중에 비밀 정보의 누출을 방지하기 위해 입력 데이터(ai)만으로 계산되거나 표현되지 않아야 한다. 상기 논리 연산 장치(300)는 상기 랜덤 마스크 데이터 또는 랜덤 데이터 또는 랜덤 마스크 형식의 데이터 만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터에 대한 기본 연산 결과를 랜덤 마스크 형식으로 출력한다. 여기서, 랜덤 마스크 형식의 데이터라 함은 입력 데이터 또는 입력 데이터들에 대한 연산 결과에 랜덤 데이터가 결합된 형태의 데이터를 말한다.
도 2는 도 1에 도시된 논리 연산 장치의 실시예로서 논리부정(NOT) 연산 장치를 보여주는 블록도이다. 상기 논리부정(NOT) 연산 장치(310)는 1개의 랜덤 마스크 데이터(/a1)와 2개의 랜덤 데이터(r1, r2)를 받아들인다. 그리고 입력 데이터(a1)의 NOT 논리 연산 데이터(~a1)를 랜덤 마스크 형식(~a1
Figure 112004006856812-pat00018
r2)으로 출력한다.
도 2를 참조하면, 상기 논리부정(NOT) 연산 장치(310)는 1개의 NOT 논리 게이트(311)와 2개의 XOR 논리 게이트(312, 313)로 구성된다.
상기 NOT 논리 게이트(311)는 랜덤 마스크 데이터(/a1)를 받아들여서 NOT 논리 연산을 수행하고 제 1 중간 데이터(~/a1)을 발생한다. 상기 제 1 XOR 논리 게이트(312)는 제 1 및 제 2 랜덤 데이터(r1, r2)를 받아들여서 XOR 논리 연산을 수행하고 제 2 중간 데이터(r1
Figure 112004006856812-pat00019
r2)를 발생한다. 상기 제 2 XOR 논리 게이트(313)는 상기 제 1 및 제 2 중간 데이터를 받아들여서 XOR 논리 연산을 수행하고 출력 데이터(~/a1
Figure 112004006856812-pat00020
(r1
Figure 112004006856812-pat00021
r2))를 발생한다.
Figure 112004006856812-pat00022
여기서, 수학식 1은 다음 진리표(표 1)에 의해 증명된다.
a1 r1 /a1 ~/a1 ~/a1
Figure 112004006856812-pat00023
r1
~a1
0 0 0 1 1 1
0 1 1 0 1 1
1 0 1 0 0 0
1 1 0 1 0 0
표 1을 참조하면, (~/a1
Figure 112004006856812-pat00024
r1) = ~a1 이 되어서, 상기 NOT 연산 장치(310)의 출력 데이터는 도 2에서 보는 바와 같이 (~a1
Figure 112004006856812-pat00025
r2)가 된다.
상기 NOT 연산 장치(310)는 논리 연산 도중에 입력 데이터(a1) 만으로 계산되거나 표현되지 않아야 한다. 상기 NOT 연산 장치(310)의 연산 순서는 전력분석공격을 막는데 중요하다. 만약, 도 2에서 (~/a1
Figure 112004006856812-pat00026
r1)
Figure 112004006856812-pat00027
r2 과 같이 (~/a1
Figure 112004006856812-pat00028
r1)을 먼저 계산할 경우에는 (~/a1
Figure 112004006856812-pat00029
r1) = ~a1 이 되어 a1에 대한 정보가 노출될 수 있기 때문이다.
상기 NOT 연산 장치(310)는 랜덤 마스크 데이터(/a1) 및 랜덤 데이터(r1, r2) 만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터(a1)에 대한 NOT 논리 연산 결과를 랜덤 마스크 형식으로 출력한다.
한편, 상기 랜덤 마스크 데이터와 상기 제 1 및 제 2 랜덤 데이터가 각각 n-비트(n은 자연수)의 데이터일 경우에는 각각 동일한 비트 자리수 사이에서 NOT 논리 연산을 수행한다. 예를 들어, 4-비트의 랜덤 마스크 데이터 /A=(/a3, /a2, /a1, /a0), 4-비트의 랜덤 데이터 R1=(r3, r2, r1, r0), R2=(s3, s2, s1, s0) 일 때 NOT 논리 연산을 수행한 출력 데이터는 다음과 같다.
~A1
Figure 112004006856812-pat00030
R2 = {(~a3
Figure 112004006856812-pat00031
s3), (~a2
Figure 112004006856812-pat00032
s2), (~a1
Figure 112004006856812-pat00033
s1), (~a0
Figure 112004006856812-pat00034
s0)}
도 3은 도 1에 도시된 논리 연산 장치의 실시예로서 논리곱(AND) 연산 장치를 보여주는 블록도이다. 상기 논리곱(AND) 연산 장치(320)는 2개의 랜덤 마스크 데이터(/a1, /a2)와 3개의 랜덤 데이터(r1, r2, r3)를 받아들인다. 그리고 입력 데이터(a1, a2)의 AND 논리 연산 결과(a1∧a2)를 랜덤 마스크 형식((a1∧a2)
Figure 112004006856812-pat00035
r3)으로 출력한다.
도 3를 참조하면, 상기 논리곱(AND) 연산 장치(320)는 4개의 AND 논리 게이트(321~324)와 4개의 XOR 논리 게이트(325~328)로 구성된다.
상기 제 1 AND 논리 게이트(321)는 랜덤 마스크 데이터(/a1, /a2)를 받아들여서 AND 논리 연산을 수행하고 제 1 중간 데이터(/a1∧/a2)를 발생한다. 상기 제 2 AND 논리 게이트(322)는 제 1 랜덤 마스크 데이터(/a1) 및 제 2 랜덤 데이터(r2)를 받아들여서 AND 논리 연산을 수행하고 제 2 중간 데이터(/a1∧r2)를 발생한다. 상기 제 3 AND 논리 게이트(323)는 제 2 랜덤 마스크 데이터(/a2) 및 제 1 랜덤 데이터(r1)를 받아들여서 AND 논리 연산을 수행하고 제 3 중간 데이터(/a2∧r1)를 발생한다. 상기 제 4 AND 논리 게이트(324)는 제 1 및 제 2 랜덤 데이터(r1, r2)를 받아들여서 AND 논리 연산을 수행하고 제 4 중간 데이터(r1∧r2)를 발생한다.
상기 제 1 XOR 논리 게이트(325)는 제 2 중간 데이터(/a1∧r2) 및 제 3 중간 데이터(/a2∧r1)를 받아들여서 XOR 논리 연산을 수행하고 제 5 중간 데이터((/a1∧r2)
Figure 112004006856812-pat00036
(/a2∧r1))를 발생한다. 상기 제 2 XOR 논리 게이트(326)는 제 4 중간 데이터(r1∧r2) 및 제 5 중간 데이터((/a1∧r2)
Figure 112004006856812-pat00037
(/a2∧r1))를 받아들여서 XOR 논리 연산을 수행하고 제 6 중간 데이터((/a1∧r2)
Figure 112004006856812-pat00038
(/a2∧r1)
Figure 112004006856812-pat00039
(r1∧r2))를 발생한다. 상기 제 3 XOR 논리 게이트(327)는 제 6 중간 데이터((/a1∧r2)
Figure 112004006856812-pat00040
(/a2∧r1)
Figure 112004006856812-pat00041
(r1∧r2)) 및 제 3 랜덤 데이터(r3)를 받아들여서 XOR 논리 연산을 수행하고 제 7 중간 데이터((/a1∧r2)
Figure 112004006856812-pat00042
(/a2∧r1)
Figure 112004006856812-pat00043
(r1∧r2)
Figure 112004006856812-pat00044
r3))를 발생한다. 상기 제 4 XOR 논리 게이트(328)는 제 1 중간 데이터(/a1∧/a2) 및 제 7 중간 데이터((/a1∧r2)
Figure 112004006856812-pat00045
(/a2∧r1)
Figure 112004006856812-pat00046
(r1∧r2)
Figure 112004006856812-pat00047
r3))를 받아들여서 XOR 논리 연산을 수행하고 출력 데이터 (/a1∧/a2)
Figure 112004006856812-pat00048
{(/a1∧r2)
Figure 112004006856812-pat00049
(/a2∧r1)
Figure 112004006856812-pat00050
(r1∧r2)
Figure 112004006856812-pat00051
r3}를 발생한다.
Figure 112004006856812-pat00052
여기서, 수학식 2는 다음 식에 의해 증명된다.
ⅰ) (/a1∧/a2) = (a1
Figure 112004006856812-pat00053
r1) ∧(a2
Figure 112004006856812-pat00054
r2)
= (a1∧a2)
Figure 112004006856812-pat00055
(a1∧r2)
Figure 112004006856812-pat00056
(r1∧a2)
Figure 112004006856812-pat00057
(r1∧r2)
ⅱ) (/a1∧r2) = (a1
Figure 112004006856812-pat00058
r1) ∧ r2 = (a1∧r2)
Figure 112004006856812-pat00059
(r1∧r2)
ⅲ) (/a2∧r1) = (a2
Figure 112004006856812-pat00060
r2) ∧ r1 = (a2∧r1)
Figure 112004006856812-pat00061
(r1∧r2)
동일한 값을 XOR 논리 연산하면 소거되므로, 식 ⅰ), ⅱ), ⅲ) 을 수학식 2에 대입하면, 출력 데이터는 ((a1∧a2)
Figure 112004006856812-pat00062
r3) 이 된다.
상기 AND 연산 장치(320)는 논리 연산 도중에 입력 데이터(a1, a2) 만으로 계산되거나 표현되지 않는다. 상기 AND 연산 장치(320)는 랜덤 마스크 데이터(/a1, /a2) 및 랜덤 데이터(r1, r2, r3) 만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터(a1, a2)에 대한 AND 논리 연산 결과를 랜덤 마스크 형식으로 출력한다.
한편, 상기 랜덤 마스크 데이터 및 랜덤 데이터가 각각 n-비트(n은 자연수)의 데이터일 경우에는 각각 동일한 비트 자리수 사이에서 AND 논리 연산을 수행한다.
도 4는 도 1에 도시된 논리 연산 장치의 실시예로서 논리합(OR) 연산 장치를 보여주는 블록도이다. 상기 논리합(OR) 연산 장치(330)는 2개의 랜덤 마스크 데이터(/a1, /a2)와 3개의 랜덤 데이터(r1, r2, r3)를 받아들인다. 그리고 입력 데이터(a1, a2)의 OR 논리 연산 결과(a1∨a2)를 랜덤 마스크 형식((a1∨a2)
Figure 112004006856812-pat00063
r3)으로 출력한다.
도 4를 참조하면, 상기 논리합(OR) 연산 장치(330)는 2개의 OR 논리 게이트(331, 334), 2개의 AND 논리 게이트(332, 333), 그리고 4개의 XOR 논리 게이트(335~338)로 구성된다. 상기 논리합(OR) 연산 장치(330)의 동작 원리는 상기 논리곱(AND) 연산 장치(320)와 동일하므로 생략한다.
상기 논리합(OR) 연산 장치(330)는 출력 데이터(/a1∨/a2)
Figure 112004006856812-pat00064
{(/a1∧r2)
Figure 112004006856812-pat00065
(/a2∧r1)
Figure 112004006856812-pat00066
(r1∨r2)
Figure 112004006856812-pat00067
r3}를 발생한다.
Figure 112004006856812-pat00068
상기 OR 연산 장치(330)는 논리 연산 도중에 입력 데이터(a1, a2) 만으로 계산되거나 표현되지 않는다. 상기 OR 연산 장치(330)는 랜덤 마스크 데이터(/a1, /a2) 및 랜덤 데이터(r1, r2, r3) 만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터(a1, a2)에 대한 OR 논리 연산 결과(a1∨a2)를 랜덤 마스크 형식((a1∨a2)
Figure 112004006856812-pat00069
r3)으로 출력한다.
한편, 상기 랜덤 마스크 데이터 및 랜덤 데이터가 각각 n-비트(n은 자연수)의 데이터일 경우에는 각각 동일한 비트 자리수 사이에서 OR 논리 연산을 수행한다.
도 5는 도 1에 도시된 논리 연산 장치의 실시예로서 부정논리곱(NAND) 연산 장치를 보여주는 블록도이다. 상기 부정논리곱(NAND) 연산 장치(340)는 2개의 랜덤 마스크 데이터(/a1, /a2)와 4개의 랜덤 데이터(r1, r2, r3, r4)를 받아들인다. 그리고 입력 데이터(a1, a2)의 NAND 논리 연산 결과 ~(a1∧a2)를 랜덤 마스크 형식(~(a1∧a2)
Figure 112004006856812-pat00070
r4)으로 출력한다.
도 5를 참조하면, 상기 NAND 연산 장치(340)는 AND 연산 장치(341)와 NOT 연산 장치(342)로 구성된다.
상기 AND 연산 장치(341)는 도 3에 도시된 AND 연산 장치(320)와 동일하다. 상기 AND 연산 장치(341)는 2개의 랜덤 마스크 데이터(/a1, /a2)와 3개의 랜덤 데이터(r1, r2, r3)를 받아들여서 제 1 중간 데이터((a1∧a2)
Figure 112004006856812-pat00071
r3)를 발생한다.
상기 NOT 연산 장치(342)는 도 2에 도시된 NOT 연산 장치(310)와 동일하다. 상기 제 1 중간 데이터((a1∧a2)
Figure 112004006856812-pat00072
r3)에서 (a1∧a2) = a3으로 치환하면, 상기 제 1 중간 데이터는 a3
Figure 112004006856812-pat00073
r3 이 된다. 상기 제 1 중간 데이터는 랜덤 마스크 데이터 /a3 = a3
Figure 112004006856812-pat00074
r3 이 된다. 상기 NOT 연산 장치(342)는 랜덤 마스크 데이터(/a3)와 2개의 랜덤 데이터(r3, r4)를 받아들여서 출력 데이터(~a3
Figure 112004006856812-pat00075
r4)를 발생한다.
여기서, a3 = a1∧a2 이므로, 상기 NAND 연산 장치(342)의 출력 데이터는 ~(a1∧a2)
Figure 112010077252491-pat00076
r4 이다.
상기 NAND 연산 장치(340)는 논리 연산 도중에 입력 데이터(a1, a2) 만으로 계산되거나 표현되지 않는다. 상기 NAND 연산 장치(340)는 랜덤 마스크 데이터(/a1, /a2) 및 랜덤 데이터(r1, r2, r3, r4) 만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터(a1, a2)에 대한 NAND 논리 연산 결과(~(a1∧a2))를 랜덤 마스크 형식(~(a1∧a2)
Figure 112004006856812-pat00077
r4)으로 출력한다.
한편, 상기 랜덤 마스크 데이터 및 랜덤 데이터가 각각 n-비트(n은 자연수)의 데이터일 경우에는 각각 동일한 비트 자리수 사이에서 NAND 논리 연산을 수행한다
도 6은 도 1에 도시된 논리 연산 장치의 실시예로서 부정논리합(NOR) 연산 장치를 보여주는 블록도이다. 상기 NOR 연산 장치(350)는 2개의 랜덤 마스크 데이터(/a1, /a2)와 4개의 랜덤 데이터(r1, r2, r3, r4)를 받아들인다.
도 6을 참조하면, 상기 NOR 연산 장치(350)는 OR 연산 장치(351)와 NOT 연산 장치(352)로 구성된다. 상기 NOR 연산 장치(350)의 동작 원리는 도 5에서 설명한 NAND 연산 장치(340)와 동일하므로 생략한다.
상기 NOR 연산 장치(350)는 논리 연산 도중에 입력 데이터(a1, a2) 만으로 계산되거나 표현되지 않는다. 상기 NOR 연산 장치(350)는 랜덤 마스크 데이터(/a1, /a2) 및 랜덤 데이터(r1, r2, r3, r4) 만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터(a1, a2)에 대한 NOR 논리 연산 결과(~(a1∨a2))를 랜덤 마스크 형식(~(a1∨a2)
Figure 112004006856812-pat00078
r4)으로 출력한다.
상기 랜덤 마스크 데이터 및 랜덤 데이터가 각각n-비트(n은 자연수)의 데이터일 경우에는 각각 동일한 비트 자리수 사이에서 NOR 논리 연산을 수행한다
본 발명에서는 실시예로서 NOT, AND, OR, NAND, NOR 기본 연산 장치에 대해서만 설명하였다. 그러나 본 발명의 기술적 사상은 상기 기본 연산 장치를 기반으로 만들 수 있는 장치(예를 들면, 전가산기(Full Adder), 반가산기(Half Adder), Ripple Carry Adder, Comparator, 일반적인 ALU(Arithmetic Logic Unit) 등)에도 적용될 수 있음은 본 발명의 기술분야에서 통상의 지식을 가진 자에게 자명한 사실이다.
또한, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명에 따른 기본 연산 장치 및 방법은 논리 연산 도중에 비밀정보가 노출되지 않아서 전력분석공격에 안전하다. 또한 본 발명에 따른 기본 연산 장치 및 방법은 결합법칙이 성립되지 않는 AND, OR 등의 논리 연산에 사용될 때 원하는 연산을 하면서 동시에 랜덤 마스크 형식을 유지하는 출력 데이터를 얻을 수 있다. 따라서 기본 연산(NOT, AND, OR 등)을 기반으로 하는 보다 복잡한 알고리즘에 응용할 수 있다.

Claims (31)

  1. 전력분석공격에 안전한 기본 연산 장치에 있어서:
    랜덤 데이터를 생성하는 랜덤 데이터 발생장치와;
    입력 데이터 및 상기 랜덤 데이터를 받아들여서 랜덤 마스크 데이터를 생성하는 랜덤 마스크 장치와; 그리고
    논리 연산 도중에 상기 입력 데이터만으로 계산되거나 표현되지 않도록 상기 랜덤 마스크 데이터 또는 랜덤 데이터 또는 랜덤 마스크 형식의 데이터만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터에 대한 기본 연산 결과를 상기 랜덤 데이터가 결합된 랜덤 마스크 형식으로 출력하는 논리 연산 장치를 포함하는 것을 특징으로 하는 기본 연산 장치.
  2. 제 1 항에 있어서,
    상기 논리 연산 장치는, 논리부정(NOT) 연산 장치인 것을 특징으로 하는 기본 연산 장치.
  3. 제 2 항에 있어서,
    상기 논리부정(NOT) 연산 장치는,
    상기 랜덤 마스크 데이터를 받아들여서 NOT 논리 연산을 수행하는 제 1 논리 게이트와;
    제 1 및 제 2 랜덤 데이터를 받아들여 XOR 논리 연산을 수행하는 제 2 논리 게이트와; 그리고
    상기 제 1 및 제 2 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 제 3 논리 게이트를 포함하는 것을 특징으로 하는 기본 연산 장치.
  4. 청구항 4은(는) 설정등록료 납부시 포기되었습니다.
    제 3 항에 있어서,
    상기 랜덤 마스크 데이터는, 상기 입력 데이터와 상기 제 1 랜덤 데이터를 XOR 논리 연산한 데이터인 것을 특징으로 하는 기본 연산 장치.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
    제 4 항에 있어서,
    상기 랜덤 마스크 데이터와 상기 제 1 및 제 2 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 NOT 논리 연산을 수행하는 것을 특징으로 하는 기본 연산 장치.
  6. 제 1 항에 있어서,
    상기 논리 연산 장치는, 논리곱(AND) 연산 장치인 것을 특징으로 하는 기본 연산 장치.
  7. 청구항 7은(는) 설정등록료 납부시 포기되었습니다.
    제 6 항에 있어서,
    상기 논리곱(AND) 연산 장치는,
    제 1 및 제 2 랜덤 마스크 데이터를 받아들여서 AND 논리 연산을 수행하는 제 1 논리 게이트와;
    상기 제 1 랜덤 마스크 데이터 및 제 2 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 제 2 논리 게이트와;
    상기 제 2 랜덤 마스크 데이터 및 제 1 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 제 3 논리 게이트와;
    상기 제 1 및 제 2 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 제 4 논리 게이트와;
    상기 제 2 및 제 3 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 제 5 논리 게이트와;
    상기 제 4 및 제 5 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 제 6 논리 게이트와;
    상기 제 6 논리 게이트의 결과 및 제 3 랜덤 데이터 받아들여서 XOR 논리 연산을 수행하는 제 7 논리 게이트와; 그리고
    상기 제 1 및 제 7 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 제 8 논리 게이트를 포함하는 것을 특징으로 하는 기본 연산 장치.
  8. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.
    제 7 항에 있어서,
    상기 제 1 랜덤 마스크 데이터는, 제 1 입력 데이터와 상기 제 1 랜덤 데이터를 XOR 논리 연산한 데이터이고,
    상기 제 2 랜덤 마스크 데이터는, 제 2 입력 데이터와 상기 제 2 랜덤 데이터를 XOR 논리 연산한 데이터인 것을 특징으로 하는 기본 연산 장치.
  9. 청구항 9은(는) 설정등록료 납부시 포기되었습니다.
    제 8 항에 있어서,
    상기 제 1 및 제 2 랜덤 마스크 데이터와 상기 제 1 내지 제 3 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 AND 논리 연산을 수행하는 것을 특징으로 하는 기본 연산 장치.
  10. 제 1 항에 있어서,
    상기 논리 연산 장치는, 논리합(OR) 연산 장치인 것을 특징으로 하는 기본 연산 장치.
  11. 청구항 11은(는) 설정등록료 납부시 포기되었습니다.
    제 10 항에 있어서,
    상기 논리합(OR) 연산 장치는,
    제 1 및 제 2 랜덤 마스크 데이터를 받아들여서 OR 논리 연산을 수행하는 제 1 논리 게이트와;
    상기 제 1 랜덤 마스크 데이터 및 제 2 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 제 2 논리 게이트와;
    상기 제 2 랜덤 마스크 데이터 및 제 1 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 제 3 논리 게이트와;
    상기 제 1 및 제 2 랜덤 데이터를 받아들여서 OR 논리 연산을 수행하는 제 4 논리 게이트와;
    상기 제 2 및 제 3 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 제 5 논리 게이트와;
    상기 제 4 및 제 5 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 제 6 논리 게이트와;
    상기 제 6 논리 게이트의 결과 및 제 3 랜덤 데이터 받아들여서 XOR 논리 연산을 수행하는 제 7 논리 게이트와; 그리고
    상기 제 1 및 제 7 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 제 8 논리 게이트를 포함하는 것을 특징으로 하는 기본 연산 장치.
  12. 청구항 12은(는) 설정등록료 납부시 포기되었습니다.
    제 11 항에 있어서,
    상기 제 1 랜덤 마스크 데이터는, 제 1 입력 데이터와 상기 제 1 랜덤 데이터를 XOR 논리 연산한 데이터이고,
    상기 제 2 랜덤 마스크 데이터는, 제 2 입력 데이터와 상기 제 2 랜덤 데이터를 XOR 논리 연산한 데이터인 것을 특징으로 하는 기본 연산 장치.
  13. 청구항 13은(는) 설정등록료 납부시 포기되었습니다.
    제 12 항에 있어서,
    상기 제 1 및 제 2 랜덤 마스크 데이터와 상기 제 1 내지 제 3 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 OR 논리 연산을 수행하는 것을 특징으로 하는 기본 연산 장치.
  14. 제 1 항에 있어서,
    상기 논리 연산 장치는, 부정논리곱(NAND) 연산 장치인 것을 특징으로 하는 기본 연산 장치.
  15. 제 14 항에 있어서,
    상기 부정논리곱(NAND) 연산 장치는, 논리곱(AND) 연산 장치와 논리부정(NOT) 연산 장치로 구성되는 것을 특징으로 하는 기본 연산 장치.
  16. 제 1 항에 있어서,
    상기 논리 연산 장치는, 부정논리합(NOR) 연산 장치인 것을 특징으로 하는 기본 연산 장치.
  17. 제 16 항에 있어서,
    상기 부정논리합(NOR) 연산 장치는, 논리합(OR) 연산 장치와 논리부정(NOT) 연산 장치로 구성되는 것을 특징으로 하는 기본 연산 장치.
  18. 전력분석공격에 안전한 기본 연산 장치의 논리 연산 방법에 있어서:
    a) 랜덤 데이터를 생성하는 단계와;
    b) 입력 데이터 및 상기 랜덤 데이터를 받아들여서 랜덤 마스크 데이터를 생성하는 단계와; 그리고
    c) 논리 연산 도중에 상기 입력 데이터만으로 계산되거나 표현되지 않도록 상기 랜덤 마스크 데이터 또는 랜덤 데이터 또는 랜덤 마스크 형식의 데이터만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터에 대한 기본 연산 결과를 상기 랜덤 데이터가 결합된 랜덤 마스크 형식으로 출력하는 단계를 포함하는 것을 특징으로 하는 기본 논리 연산 방법.
  19. 청구항 19은(는) 설정등록료 납부시 포기되었습니다.
    제 18 항에 있어서,
    상기 c) 단계는, 논리부정(NOT) 연산 단계인 것을 특징으로 하는 기본 논리 연산 방법.
  20. 청구항 20은(는) 설정등록료 납부시 포기되었습니다.
    제 19 항에 있어서,
    상기 논리부정(NOT) 연산 단계는,
    d1) 상기 랜덤 마스크 데이터를 받아들여서 NOT 논리 연산을 수행하는 단계와;
    e1) 제 1 및 제 2 랜덤 데이터를 받아들여 XOR 논리 연산을 수행하는 단계와; 그리고
    f1) 상기 제 d1) 및 제 e1) 단계의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 단계를 포함하는 것을 특징으로 하는 기본 논리 연산 방법.
  21. 청구항 21은(는) 설정등록료 납부시 포기되었습니다.
    제 20 항에 있어서,
    상기 랜덤 마스크 데이터와 상기 제 1 및 제 2 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 NOT 논리 연산을 수행하는 것을 특징으로 하는 기본 논리 연산 방법.
  22. 청구항 22은(는) 설정등록료 납부시 포기되었습니다.
    제 18 항에 있어서,
    상기 c) 단계는, 논리곱(AND) 연산 단계인 것을 특징으로 하는 기본 논리 연산 방법.
  23. 청구항 23은(는) 설정등록료 납부시 포기되었습니다.
    제 22 항에 있어서,
    상기 논리곱(AND) 연산 단계는,
    d2) 제 1 및 제 2 랜덤 마스크 데이터를 받아들여서 AND 논리 연산을 수행하는 단계와;
    e2) 상기 제 1 랜덤 마스크 데이터 및 제 2 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 단계와;
    f2) 상기 제 2 랜덤 마스크 데이터 및 제 1 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 단계와;
    g2) 상기 제 1 및 제 2 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 단계와;
    h2) 제 2 및 제 3 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 단계와;
    i2) 제 4 및 제 5 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 단계와;
    j2) 제 6 논리 게이트의 결과 및 제 3 랜덤 데이터 받아들여서 XOR 논리 연산을 수행하는 단계와; 그리고
    k2) 제 1 및 제 7 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 단계를 포함하는 것을 특징으로 하는 기본 논리 연산 방법.
  24. 청구항 24은(는) 설정등록료 납부시 포기되었습니다.
    제 23 항에 있어서,
    상기 제 1 및 제 2 랜덤 마스크 데이터와 상기 제 1 내지 제 3 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 AND 논리 연산을 수행하는 것을 특징으로 하는 기본 논리 연산 방법.
  25. 청구항 25은(는) 설정등록료 납부시 포기되었습니다.
    제 18 항에 있어서,
    상기 c) 단계는, 논리합(OR) 연산 단계인 것을 특징으로 하는 기본 논리 연산 방법.
  26. 청구항 26은(는) 설정등록료 납부시 포기되었습니다.
    제 25 항에 있어서,
    상기 논리합(OR) 연산 단계는,
    d3) 제 1 및 제 2 랜덤 마스크 데이터를 받아들여서 OR 논리 연산을 수행하는 단계와;
    e3) 상기 제 1 랜덤 마스크 데이터 및 제 2 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 단계와;
    f3) 상기 제 2 랜덤 마스크 데이터 및 제 1 랜덤 데이터를 받아들여서 AND 논리 연산을 수행하는 단계와;
    g3) 상기 제 1 및 제 2 랜덤 데이터를 받아들여서 OR 논리 연산을 수행하는 단계와;
    h3) 제 2 및 제 3 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 단계와;
    i3) 제 4 및 제 5 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하는 단계와;
    j3) 제 6 논리 게이트의 결과 및 제 3 랜덤 데이터 받아들여서 XOR 논리 연산을 수행하는 단계와; 그리고
    k3) 제 1 및 제 7 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 단계를 포함하는 것을 특징으로 하는 기본 논리 연산 방법.
  27. 청구항 27은(는) 설정등록료 납부시 포기되었습니다.
    제 26 항에 있어서,
    상기 제 1 및 제 2 랜덤 마스크 데이터와 상기 제 1 내지 제 3 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 OR 논리 연산을 수행하는 것을 특징으로 하는 기본 논리 연산 방법.
  28. 청구항 28은(는) 설정등록료 납부시 포기되었습니다.
    제 18 항에 있어서,
    상기 c) 단계는, 부정논리곱(NAND) 연산 단계인 것을 특징으로 하는 기본 논리 연산 방법.
  29. 청구항 29은(는) 설정등록료 납부시 포기되었습니다.
    제 28 항에 있어서,
    상기 부정논리곱(NAND) 연산 단계는,
    논리곱(AND) 연산 단계와 논리부정(NOT) 연산 단계로 구성되는 것을 특징으로 하는 기본 논리 연산 방법.
  30. 청구항 30은(는) 설정등록료 납부시 포기되었습니다.
    제 18 항에 있어서,
    상기 c) 단계는, 부정논리합(NOR) 연산 단계인 것을 특징으로 하는 기본 논리 연산 방법.
  31. 청구항 31은(는) 설정등록료 납부시 포기되었습니다.
    제 30 항에 있어서,
    상기 부정논리합(NOR) 연산 단계는,
    논리합(OR) 연산 단계와 논리부정(NOT) 연산 단계로 구성되는 것을 특징으로 하는 기본 논리 연산 방법.
KR1020040010975A 2004-02-19 2004-02-19 전력분석공격에 안전한 기본 연산 장치 및 방법 KR101061906B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020040010975A KR101061906B1 (ko) 2004-02-19 2004-02-19 전력분석공격에 안전한 기본 연산 장치 및 방법
US11/035,077 US7292060B2 (en) 2004-02-19 2005-01-14 Logic circuit and method thereof
JP2005018876A JP4885458B2 (ja) 2004-02-19 2005-01-26 電力分析攻撃に安全な基本演算装置および方法
DE102005009170A DE102005009170B4 (de) 2004-02-19 2005-02-16 Logikschaltung und zugehöriges Verfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040010975A KR101061906B1 (ko) 2004-02-19 2004-02-19 전력분석공격에 안전한 기본 연산 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050082513A KR20050082513A (ko) 2005-08-24
KR101061906B1 true KR101061906B1 (ko) 2011-09-02

Family

ID=34858743

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040010975A KR101061906B1 (ko) 2004-02-19 2004-02-19 전력분석공격에 안전한 기본 연산 장치 및 방법

Country Status (4)

Country Link
US (1) US7292060B2 (ko)
JP (1) JP4885458B2 (ko)
KR (1) KR101061906B1 (ko)
DE (1) DE102005009170B4 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100564599B1 (ko) * 2003-12-24 2006-03-29 삼성전자주식회사 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체
US8577942B2 (en) * 2004-07-07 2013-11-05 Mitsubishi Electric Corporation Electronic device and data processing device for implementing cryptographic algorithms
GB2443356B (en) * 2005-01-27 2008-08-06 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
GB2443359B (en) * 2005-01-27 2008-10-01 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
GB2443358A (en) * 2005-01-27 2008-04-30 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
GB2443355B (en) * 2005-01-27 2008-08-06 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
GB2443357B (en) * 2005-01-27 2008-10-08 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
KR100725169B1 (ko) * 2005-01-27 2007-06-04 삼성전자주식회사 전력 분석 공격에 안전한 논리 연산 장치 및 방법
JP4986206B2 (ja) * 2006-02-22 2012-07-25 株式会社日立製作所 暗号処理方法及び暗号処理装置
JP4962165B2 (ja) * 2007-06-22 2012-06-27 大日本印刷株式会社 暗号処理装置,暗号処理プログラム及び暗号処理方法
US8091139B2 (en) * 2007-11-01 2012-01-03 Discretix Technologies Ltd. System and method for masking arbitrary Boolean functions
JP4837058B2 (ja) * 2009-03-10 2011-12-14 株式会社東芝 演算装置及びプログラム
JP5951260B2 (ja) * 2012-01-10 2016-07-13 Kddi株式会社 論理演算装置、論理演算方法、およびプログラム
GB201611698D0 (en) 2016-07-05 2016-08-17 Eitc Holdings Ltd Blockchain-implemented control method and system
CN112422360A (zh) * 2020-10-14 2021-02-26 锐捷网络股份有限公司 一种报文采样方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
US20010053220A1 (en) 1998-06-03 2001-12-20 Cryptography Research, Inc. Cryptographic computation using masking to prevent differential power analysis and other attacks
US20020029346A1 (en) 1999-01-11 2002-03-07 Farhad Pezeshki Method and apparatus for minimizing differential power attacks on processors
US6419159B1 (en) 1999-06-14 2002-07-16 Microsoft Corporation Integrated circuit device with power analysis protection circuitry

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5018093A (en) * 1990-01-02 1991-05-21 Ibm Corporation High performance self-checking adder having small circuit area
JPH06242928A (ja) * 1993-02-22 1994-09-02 Nec Corp 加算器およびこれを用いた乗算回路
JP2762941B2 (ja) * 1994-12-06 1998-06-11 日本電気株式会社 背景雑音発生装置
GB2325123A (en) * 1997-05-08 1998-11-11 Ibm Data encryption/decryption using random numbers
JP3600454B2 (ja) 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
US6851052B1 (en) * 1998-12-10 2005-02-01 Telcordia Technologies, Inc. Method and device for generating approximate message authentication codes
US6298135B1 (en) * 1999-04-29 2001-10-02 Motorola, Inc. Method of preventing power analysis attacks on microelectronic assemblies
EP1226681A2 (en) * 1999-10-25 2002-07-31 Cyphermanx Consultants Limited Method for protection against analysis of unintended side-channel signals
GB2365153A (en) * 2000-01-28 2002-02-13 Simon William Moore Microprocessor resistant to power analysis with an alarm state
JP2002141897A (ja) * 2000-10-31 2002-05-17 Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd 耐タンパー機能を有する暗号回路
JP4596686B2 (ja) 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
DE10201449C1 (de) * 2002-01-16 2003-08-14 Infineon Technologies Ag Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
US7401208B2 (en) * 2003-04-25 2008-07-15 International Business Machines Corporation Method and apparatus for randomizing instruction thread interleaving in a multi-thread processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010053220A1 (en) 1998-06-03 2001-12-20 Cryptography Research, Inc. Cryptographic computation using masking to prevent differential power analysis and other attacks
US20020029346A1 (en) 1999-01-11 2002-03-07 Farhad Pezeshki Method and apparatus for minimizing differential power attacks on processors
US6419159B1 (en) 1999-06-14 2002-07-16 Microsoft Corporation Integrated circuit device with power analysis protection circuitry
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly

Also Published As

Publication number Publication date
US7292060B2 (en) 2007-11-06
US20050184760A1 (en) 2005-08-25
KR20050082513A (ko) 2005-08-24
DE102005009170B4 (de) 2011-01-20
DE102005009170A1 (de) 2005-09-15
JP2005236977A (ja) 2005-09-02
JP4885458B2 (ja) 2012-02-29

Similar Documents

Publication Publication Date Title
JP4885458B2 (ja) 電力分析攻撃に安全な基本演算装置および方法
KR100725169B1 (ko) 전력 분석 공격에 안전한 논리 연산 장치 및 방법
Coron et al. On boolean and arithmetic masking against differential power analysis
US7334133B2 (en) Method for making a computer system implementing a cryptographic algorithm secure using Boolean operations and arithmetic operations and a corresponding embedded system
Coron et al. Conversion from arithmetic to boolean masking with logarithmic complexity
US8443205B2 (en) Secure function evaluation techniques for circuits containing XOR gates with applications to universal circuits
Gross et al. Ascon hardware implementations and side-channel evaluation
US11700111B2 (en) Platform neutral data encryption standard (DES) cryptographic operation
US11411713B2 (en) Masking method and system for cryptography
CN104301095A (zh) Des轮运算方法和电路
JP3733027B2 (ja) 秘密鍵式暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
DE112009000152T5 (de) Modulare Reduktion unter Verwendung einer speziellen Form des Modulo
US20070058800A1 (en) Transition between masked representations of a value during cryptographic calculations
US20060133603A1 (en) Integer division method which is secure against covert channel attacks
US7742595B2 (en) Cryptographic method protected against covert channel type attacks
US7639796B2 (en) Method for secure integer division or modular reduction against hidden channel attacks
JarJar Two Feistel rounds in image cryptography acting at the nucleotide level exploiting dna and rna property
US20110091034A1 (en) Secure Method for Cryptographic Computation and Corresponding Electronic Component
JP2005202757A (ja) 擬似乱数生成装置及びプログラム
US7174016B2 (en) Modular exponentiation algorithm in an electronic component using a public key encryption algorithm
US20040064274A1 (en) Residue calculating unit immune to power analysis
Oku et al. A robust scan-based side-channel attack method against HMAC-SHA-256 circuits
GB2443358A (en) Cryptographic logic circuits and method of performing logic operations
Bock SCA resistent implementation of the Montgomery kP-algorithm
Sun et al. An efficient modular exponentiation algorithm against simple power analysis attacks

Legal Events

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

Payment date: 20140731

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160801

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180731

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 9