KR101061906B1 - 전력분석공격에 안전한 기본 연산 장치 및 방법 - Google Patents
전력분석공격에 안전한 기본 연산 장치 및 방법 Download PDFInfo
- 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
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]
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B18/00—Surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body
- A61B18/18—Surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body by applying electromagnetic radiation, e.g. microwaves
- A61B18/20—Surgical 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/22—Surgical 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
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B90/00—Instruments, 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/36—Image-producing devices or illumination devices not otherwise provided for
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B18/00—Surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body
- A61B18/18—Surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body by applying electromagnetic radiation, e.g. microwaves
- A61B18/20—Surgical 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/22—Surgical 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/225—Features of hand-pieces
- A61B2018/2253—Features of hand-pieces characterised by additional functions, e.g. surface cooling or detecting pathological tissue
-
- 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
Abstract
본 발명은 전력분석공격에 안전한 기본 연산 장치 및 방법 에 관한 것이다. 본 발명에 따른 기본 연산 장치는 랜덤 마스크 장치, 랜덤 데이터 발생장치, 그리고 논리 연산 장치를 기본 구성 요소로 한다. 본 발명은 논리 연산 도중에 입력 데이터의 노출을 방지하기 위해 랜덤 데이터 또는 랜덤 마스크 데이터 또는 랜덤 마스크 형식의 데이터 만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터에 대한 기본 연산 결과를 랜덤 마스크 형식으로 출력한다. 본 발명에 의하면, 동일한 데이터가 입력되어도 소모되는 전력이 달라지므로 전력분석공격에 안전하다.
Description
도 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
r 이 된다.
DPA에 안전하면서 동시에 입력 데이터에 대한 원하는 연산을 수행하기 위해서는 암호 알고리즘 연산 과정에서 발생되는 데이터가 랜덤 마스크 형식을 유지해야 한다. 여기서, 랜덤 마스크 형식의 데이터라 함은 입력 데이터 또는 입력 데이터들에 대한 연산 결과에 랜덤 데이터가 결합된 형태의 데이터를 말한다.
예를 들어, 평문 a 와 키 k를 XOR 논리 연산하는 암호 알고리즘이 있다고 가정한다. DPA를 막기 위해 평문 a를 그대로 사용하지 않고 랜덤 데이터 r을 생성하여 랜덤 마스킹한 /a = a
r 을 사용한다. 랜덤 마스크 데이터(/a)와 키(k)를 XOR 논리 연산하면, /a
k = (a
r)
k 가 된다. XOR 논리 연산은 결합법칙이 성립하므로 /a
k = (a
k)
r 이 된다. 이것은 평문 a 에 대한 정보가 노출되지 않으면서도 원하는 XOR 논리 연산 결과(a
k)을 얻을 수 있다. 또한, 상기 XOR 논리 연산 과정이 알고리즘의 최종 단계가 아니라면, XOR 논리 연산 계산 결과인 (a
k)가 노출되지 않아 하는데, 출력값이 랜덤 마스크 형식 (a
k)
r 을 가지므로 이러한 조건도 만족하고 있다.
그러나 평문 a 와 키 k를 AND 논리 연산하는 암호 알고리즘에서는 XOR 논리 연산과 같은 결과가 얻어지지 않는다. 즉, 위의 예에서 /a ∧ k = (a
r) ∧k 가 성립한다. 그러나 AND 논리 연산에서는 결합법칙이 적용되지 않기 때문에 /a ∧ k = (a ∧ k)
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
r1, /a2 = a2
r2, … , /am = am
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
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
r2)를 발생한다. 상기 제 2 XOR 논리 게이트(313)는 상기 제 1 및 제 2 중간 데이터를 받아들여서 XOR 논리 연산을 수행하고 출력 데이터(~/a1
(r1
r2))를 발생한다.
여기서, 수학식 1은 다음 진리표(표 1)에 의해 증명된다.
상기 NOT 연산 장치(310)는 논리 연산 도중에 입력 데이터(a1) 만으로 계산되거나 표현되지 않아야 한다. 상기 NOT 연산 장치(310)의 연산 순서는 전력분석공격을 막는데 중요하다. 만약, 도 2에서 (~/a1
r1)
r2 과 같이 (~/a1
r1)을 먼저 계산할 경우에는 (~/a1
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 논리 연산을 수행한 출력 데이터는 다음과 같다.
도 3은 도 1에 도시된 논리 연산 장치의 실시예로서 논리곱(AND) 연산 장치를 보여주는 블록도이다. 상기 논리곱(AND) 연산 장치(320)는 2개의 랜덤 마스크 데이터(/a1, /a2)와 3개의 랜덤 데이터(r1, r2, r3)를 받아들인다. 그리고 입력 데이터(a1, a2)의 AND 논리 연산 결과(a1∧a2)를 랜덤 마스크 형식((a1∧a2)
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)
(/a2∧r1))를 발생한다. 상기 제 2 XOR 논리 게이트(326)는 제 4 중간 데이터(r1∧r2) 및 제 5 중간 데이터((/a1∧r2)
(/a2∧r1))를 받아들여서 XOR 논리 연산을 수행하고 제 6 중간 데이터((/a1∧r2)
(/a2∧r1)
(r1∧r2))를 발생한다. 상기 제 3 XOR 논리 게이트(327)는 제 6 중간 데이터((/a1∧r2)
(/a2∧r1)
(r1∧r2)) 및 제 3 랜덤 데이터(r3)를 받아들여서 XOR 논리 연산을 수행하고 제 7 중간 데이터((/a1∧r2)
(/a2∧r1)
(r1∧r2)
r3))를 발생한다. 상기 제 4 XOR 논리 게이트(328)는 제 1 중간 데이터(/a1∧/a2) 및 제 7 중간 데이터((/a1∧r2)
(/a2∧r1)
(r1∧r2)
r3))를 받아들여서 XOR 논리 연산을 수행하고 출력 데이터 (/a1∧/a2)
{(/a1∧r2)
(/a2∧r1)
(r1∧r2)
r3}를 발생한다.
여기서, 수학식 2는 다음 식에 의해 증명된다.
상기 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)
r3)으로 출력한다.
도 4를 참조하면, 상기 논리합(OR) 연산 장치(330)는 2개의 OR 논리 게이트(331, 334), 2개의 AND 논리 게이트(332, 333), 그리고 4개의 XOR 논리 게이트(335~338)로 구성된다. 상기 논리합(OR) 연산 장치(330)의 동작 원리는 상기 논리곱(AND) 연산 장치(320)와 동일하므로 생략한다.
상기 OR 연산 장치(330)는 논리 연산 도중에 입력 데이터(a1, a2) 만으로 계산되거나 표현되지 않는다. 상기 OR 연산 장치(330)는 랜덤 마스크 데이터(/a1, /a2) 및 랜덤 데이터(r1, r2, r3) 만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터(a1, a2)에 대한 OR 논리 연산 결과(a1∨a2)를 랜덤 마스크 형식((a1∨a2)
r3)으로 출력한다.
한편, 상기 랜덤 마스크 데이터 및 랜덤 데이터가 각각 n-비트(n은 자연수)의 데이터일 경우에는 각각 동일한 비트 자리수 사이에서 OR 논리 연산을 수행한다.
도 5는 도 1에 도시된 논리 연산 장치의 실시예로서 부정논리곱(NAND) 연산 장치를 보여주는 블록도이다. 상기 부정논리곱(NAND) 연산 장치(340)는 2개의 랜덤 마스크 데이터(/a1, /a2)와 4개의 랜덤 데이터(r1, r2, r3, r4)를 받아들인다. 그리고 입력 데이터(a1, a2)의 NAND 논리 연산 결과 ~(a1∧a2)를 랜덤 마스크 형식(~(a1∧a2)
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)
r3)를 발생한다.
상기 NOT 연산 장치(342)는 도 2에 도시된 NOT 연산 장치(310)와 동일하다. 상기 제 1 중간 데이터((a1∧a2)
r3)에서 (a1∧a2) = a3으로 치환하면, 상기 제 1 중간 데이터는 a3
r3 이 된다. 상기 제 1 중간 데이터는 랜덤 마스크 데이터 /a3 = a3
r3 이 된다. 상기 NOT 연산 장치(342)는 랜덤 마스크 데이터(/a3)와 2개의 랜덤 데이터(r3, r4)를 받아들여서 출력 데이터(~a3
r4)를 발생한다.
상기 NAND 연산 장치(340)는 논리 연산 도중에 입력 데이터(a1, a2) 만으로 계산되거나 표현되지 않는다. 상기 NAND 연산 장치(340)는 랜덤 마스크 데이터(/a1, /a2) 및 랜덤 데이터(r1, r2, r3, r4) 만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터(a1, a2)에 대한 NAND 논리 연산 결과(~(a1∧a2))를 랜덤 마스크 형식(~(a1∧a2)
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)
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 항에 있어서,상기 논리 연산 장치는, 논리부정(NOT) 연산 장치인 것을 특징으로 하는 기본 연산 장치.
- 제 2 항에 있어서,상기 논리부정(NOT) 연산 장치는,상기 랜덤 마스크 데이터를 받아들여서 NOT 논리 연산을 수행하는 제 1 논리 게이트와;제 1 및 제 2 랜덤 데이터를 받아들여 XOR 논리 연산을 수행하는 제 2 논리 게이트와; 그리고상기 제 1 및 제 2 논리 게이트의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 제 3 논리 게이트를 포함하는 것을 특징으로 하는 기본 연산 장치.
- 청구항 4은(는) 설정등록료 납부시 포기되었습니다.제 3 항에 있어서,상기 랜덤 마스크 데이터는, 상기 입력 데이터와 상기 제 1 랜덤 데이터를 XOR 논리 연산한 데이터인 것을 특징으로 하는 기본 연산 장치.
- 청구항 5은(는) 설정등록료 납부시 포기되었습니다.제 4 항에 있어서,상기 랜덤 마스크 데이터와 상기 제 1 및 제 2 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 NOT 논리 연산을 수행하는 것을 특징으로 하는 기본 연산 장치.
- 제 1 항에 있어서,상기 논리 연산 장치는, 논리곱(AND) 연산 장치인 것을 특징으로 하는 기본 연산 장치.
- 청구항 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은(는) 설정등록료 납부시 포기되었습니다.제 7 항에 있어서,상기 제 1 랜덤 마스크 데이터는, 제 1 입력 데이터와 상기 제 1 랜덤 데이터를 XOR 논리 연산한 데이터이고,상기 제 2 랜덤 마스크 데이터는, 제 2 입력 데이터와 상기 제 2 랜덤 데이터를 XOR 논리 연산한 데이터인 것을 특징으로 하는 기본 연산 장치.
- 청구항 9은(는) 설정등록료 납부시 포기되었습니다.제 8 항에 있어서,상기 제 1 및 제 2 랜덤 마스크 데이터와 상기 제 1 내지 제 3 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 AND 논리 연산을 수행하는 것을 특징으로 하는 기본 연산 장치.
- 제 1 항에 있어서,상기 논리 연산 장치는, 논리합(OR) 연산 장치인 것을 특징으로 하는 기본 연산 장치.
- 청구항 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은(는) 설정등록료 납부시 포기되었습니다.제 11 항에 있어서,상기 제 1 랜덤 마스크 데이터는, 제 1 입력 데이터와 상기 제 1 랜덤 데이터를 XOR 논리 연산한 데이터이고,상기 제 2 랜덤 마스크 데이터는, 제 2 입력 데이터와 상기 제 2 랜덤 데이터를 XOR 논리 연산한 데이터인 것을 특징으로 하는 기본 연산 장치.
- 청구항 13은(는) 설정등록료 납부시 포기되었습니다.제 12 항에 있어서,상기 제 1 및 제 2 랜덤 마스크 데이터와 상기 제 1 내지 제 3 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 OR 논리 연산을 수행하는 것을 특징으로 하는 기본 연산 장치.
- 제 1 항에 있어서,상기 논리 연산 장치는, 부정논리곱(NAND) 연산 장치인 것을 특징으로 하는 기본 연산 장치.
- 제 14 항에 있어서,상기 부정논리곱(NAND) 연산 장치는, 논리곱(AND) 연산 장치와 논리부정(NOT) 연산 장치로 구성되는 것을 특징으로 하는 기본 연산 장치.
- 제 1 항에 있어서,상기 논리 연산 장치는, 부정논리합(NOR) 연산 장치인 것을 특징으로 하는 기본 연산 장치.
- 제 16 항에 있어서,상기 부정논리합(NOR) 연산 장치는, 논리합(OR) 연산 장치와 논리부정(NOT) 연산 장치로 구성되는 것을 특징으로 하는 기본 연산 장치.
- 전력분석공격에 안전한 기본 연산 장치의 논리 연산 방법에 있어서:a) 랜덤 데이터를 생성하는 단계와;b) 입력 데이터 및 상기 랜덤 데이터를 받아들여서 랜덤 마스크 데이터를 생성하는 단계와; 그리고c) 논리 연산 도중에 상기 입력 데이터만으로 계산되거나 표현되지 않도록 상기 랜덤 마스크 데이터 또는 랜덤 데이터 또는 랜덤 마스크 형식의 데이터만을 변수로 하여 논리 연산을 수행하고 그 결과로서 상기 입력 데이터에 대한 기본 연산 결과를 상기 랜덤 데이터가 결합된 랜덤 마스크 형식으로 출력하는 단계를 포함하는 것을 특징으로 하는 기본 논리 연산 방법.
- 청구항 19은(는) 설정등록료 납부시 포기되었습니다.제 18 항에 있어서,상기 c) 단계는, 논리부정(NOT) 연산 단계인 것을 특징으로 하는 기본 논리 연산 방법.
- 청구항 20은(는) 설정등록료 납부시 포기되었습니다.제 19 항에 있어서,상기 논리부정(NOT) 연산 단계는,d1) 상기 랜덤 마스크 데이터를 받아들여서 NOT 논리 연산을 수행하는 단계와;e1) 제 1 및 제 2 랜덤 데이터를 받아들여 XOR 논리 연산을 수행하는 단계와; 그리고f1) 상기 제 d1) 및 제 e1) 단계의 결과를 받아들여서 XOR 논리 연산을 수행하고 그 결과로서 출력 데이터를 발생하는 단계를 포함하는 것을 특징으로 하는 기본 논리 연산 방법.
- 청구항 21은(는) 설정등록료 납부시 포기되었습니다.제 20 항에 있어서,상기 랜덤 마스크 데이터와 상기 제 1 및 제 2 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 NOT 논리 연산을 수행하는 것을 특징으로 하는 기본 논리 연산 방법.
- 청구항 22은(는) 설정등록료 납부시 포기되었습니다.제 18 항에 있어서,상기 c) 단계는, 논리곱(AND) 연산 단계인 것을 특징으로 하는 기본 논리 연산 방법.
- 청구항 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은(는) 설정등록료 납부시 포기되었습니다.제 23 항에 있어서,상기 제 1 및 제 2 랜덤 마스크 데이터와 상기 제 1 내지 제 3 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 AND 논리 연산을 수행하는 것을 특징으로 하는 기본 논리 연산 방법.
- 청구항 25은(는) 설정등록료 납부시 포기되었습니다.제 18 항에 있어서,상기 c) 단계는, 논리합(OR) 연산 단계인 것을 특징으로 하는 기본 논리 연산 방법.
- 청구항 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은(는) 설정등록료 납부시 포기되었습니다.제 26 항에 있어서,상기 제 1 및 제 2 랜덤 마스크 데이터와 상기 제 1 내지 제 3 랜덤 데이터는, 각각 n-비트(n은 자연수)의 자리수로 구성되며, 각각 상응하는 비트 자리 사이에서 OR 논리 연산을 수행하는 것을 특징으로 하는 기본 논리 연산 방법.
- 청구항 28은(는) 설정등록료 납부시 포기되었습니다.제 18 항에 있어서,상기 c) 단계는, 부정논리곱(NAND) 연산 단계인 것을 특징으로 하는 기본 논리 연산 방법.
- 청구항 29은(는) 설정등록료 납부시 포기되었습니다.제 28 항에 있어서,상기 부정논리곱(NAND) 연산 단계는,논리곱(AND) 연산 단계와 논리부정(NOT) 연산 단계로 구성되는 것을 특징으로 하는 기본 논리 연산 방법.
- 청구항 30은(는) 설정등록료 납부시 포기되었습니다.제 18 항에 있어서,상기 c) 단계는, 부정논리합(NOR) 연산 단계인 것을 특징으로 하는 기본 논리 연산 방법.
- 청구항 31은(는) 설정등록료 납부시 포기되었습니다.제 30 항에 있어서,상기 부정논리합(NOR) 연산 단계는,논리합(OR) 연산 단계와 논리부정(NOT) 연산 단계로 구성되는 것을 특징으로 하는 기본 논리 연산 방법.
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)
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)
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)
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 |
-
2004
- 2004-02-19 KR KR1020040010975A patent/KR101061906B1/ko active IP Right Grant
-
2005
- 2005-01-14 US US11/035,077 patent/US7292060B2/en active Active
- 2005-01-26 JP JP2005018876A patent/JP4885458B2/ja active Active
- 2005-02-16 DE DE102005009170A patent/DE102005009170B4/de active Active
Patent Citations (4)
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 |