KR100861841B1 - 전자 소자 및 데이터 처리 방법 - Google Patents

전자 소자 및 데이터 처리 방법 Download PDF

Info

Publication number
KR100861841B1
KR100861841B1 KR1020067025939A KR20067025939A KR100861841B1 KR 100861841 B1 KR100861841 B1 KR 100861841B1 KR 1020067025939 A KR1020067025939 A KR 1020067025939A KR 20067025939 A KR20067025939 A KR 20067025939A KR 100861841 B1 KR100861841 B1 KR 100861841B1
Authority
KR
South Korea
Prior art keywords
random number
data
input
output
signal
Prior art date
Application number
KR1020067025939A
Other languages
English (en)
Other versions
KR20070022726A (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 KR1020067025939A priority Critical patent/KR100861841B1/ko
Publication of KR20070022726A publication Critical patent/KR20070022726A/ko
Application granted granted Critical
Publication of KR100861841B1 publication Critical patent/KR100861841B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks

Abstract

소지 전력의 바이어스를 상쇄하는 상보적인 동작을 행하는 회로를 마련하는 일 없이, 소비 전력으로부터 비밀 정보를 특정하고자 하는 공격에 대항하는 전자 소자를 제공한다. 전자 소자 A(100)는 복수의 트랜지스터(101)~트랜지스터(112)로 구성되어 있다. 기본 소자 A(100)는 입력 신호로서 x1, x2, 난수 r, 제어 신호 en을 입력받아, z를 출력한다. 출력 z는, (x1^r)&(x2^r)로, 난수 r이 배타적 논리합되어 출력된다. 또한, x1, x2, 난수 r의 각 입력 신호의 상태 천이가 확정된 후, 제어 신호 en에 의해 z를 출력한다. 이 때문에, 출력 z의 신호 천이율은 균등하게 되어, 소비 전력으로부터 비밀 정보를 특정하고자 하는 공격에 대항할 수 있다.

Description

전자 소자 및 데이터 처리 방법{ELECTRONIC ELEMENT AND DATA PROCESSING METHOD}
본 발명은 암호 알고리즘을 실현하는 반도체 디바이스를 구성하는 전자 소자에 관한 것이다. 예컨대, 디바이스 내에서 처리되는 비밀 정보를 디바이스의 소비 전력으로부터 특정하는 공격에 대항하는 전자 소자, 데이터 처리 방법에 관한 것이다.
종래의 반도체 디바이스에 관한 비밀 정보 보호를 위한 대항 조치는 CPU(Central Processing Unit)로 대표되는, 어떤 특정한 반도체 디바이스를 이용한 소프트웨어에 의한 대항 조치와, 반도체 디바이스 그 자체로의 하드웨어에 의한 대항 조치의 2개로 대별된다.
전자(前者)의 소프트웨어에 의한 대항 조치는 IC 카드로 대표되는 CPU와 메모리를 더불어 가지는 디바이스 구성으로 실현된다. 예컨대, 일본 특허 공개 제 2000-066585 호 공보에서는, 광범위하게 이용되고 있는 공통 키 블럭 암호 DES(Data Encryption Standard)에 대하여, 그 알고리즘에서 사용되는 S-box라고 불 리는 치환 테이블을, 미리 결정된 규칙 X에 따라서 난수 파라미터 R을 이용해서, 알고리즘에서 규정되어 있는 S-box와 다른 치환 테이블의 복수개만큼을 사전에 계산하여, 메모리 상에 그 결과를 저장한다. 알고리즘의 처리시는, 평문 데이터 M(혹은 암호문 데이터 C)과 키 데이터 K에 부가하여 난수 파라미터 R을 이용하여 암호문 데이터 C(평문 데이터 M)를 처리한다. 이에 따라, 통상의 M(C)과 K에만 의한 처리와 비교하여, R이 취할 수 있는 경우의 수의 분만큼 처리 흐름이 변화되기 때문에, 그것에 따른 소비 전력도 다양화된다. 또한, 난수 파라미터 R을 이용함으로써 처리의 중간값은 예측 불능하게 되기 때문에, 소비 전력으로부터 비밀 정보를 해독하는 것은 불가능하다고 설명되어 있다. 이 외에, 일본 특허 공표 제 2002-540654 호 공보도 유사한 대항 조치이지만, 상기한 규칙 X 및 난수 파라미터 R이 취하는 방법이 다를 뿐, 본질적으로는 동등한 대항 조치이다.
후자(後者)의 하드웨어에 의한 대항 조치는 알고리즘을 반도체 디바이스로 실장할 때의, 그 설계 수법에 의해 실현된다. 예컨대, 일본 특허 공표 제 2003-526134호 공보에서는, 디지털 회로의 기본 소자인 AND 게이트에 대하여, 그 스위칭 특성이 상보적인(상쇠하는) INV-AND 게이트를 쌍으로 실장하는 것을 대항 조치로 하고 있다(이하 이것을 게이트 페어라고 약기함). 이에 따라 알고리즘의 중간값에 디바이스의 소비 전력이 의존하지 않기 때문에, 소비 전력으로부터 비밀 정보를 해독하는 것은 불가능하다고 설명되어 있다. 또한, 유사한 대항 조치로서, 일본 특허 공개 제 2002-311826 호 공보가 있다. 이것은 게이트 단위로 쌍을 구성하지 않고 임의의 회로 단위(이 예의 경우 S-box를 실현하는 회로)로 쌍을 구성하고 있다. 그러나, 이것은 외견상의 차이일 뿐, 본질적으로는 일본 특허 공표 제 2003-526134 호 공보와 완전히 동일한 대항 조치이다.
상기 종래의 게이트 쌍에 의한 대항 조치는 원리적으로 소비 전력으로부터 비밀 정보가 해독될 가능성이 있다. 이하에 그 이유를 설명한다.
게이트 쌍의 안전성의 근거는 AND 게이트와 INV-AND 게이트가 완전히 상보적인 동작을 하는 것에 근거하고 있다. 이 조건을 만족시키기 위해서는, 쌍으로 되는 AND 게이트와 INV-AND 게이트가 동일한 타이밍으로 동작하고, 또한 그 게이트의 목적지에 접속되는 부하가 동등해야 한다. 왜냐하면, 동작하는 타이밍이 조금이라도 어긋난 경우, 관측되는 소비 전력에도 시간차가 발생하여, 각각의 게이트에 기인하는 전력은 위상이 어긋나 관측되기 때문이다. 또, 임의의 게이트 쌍에 있어서의 AND 게이트와 INV-AND 게이트의 부하가 다른 경우는, 그 2개 게이트가 동작한 직후의 소비 전력이 다르다. 이 때문에, 어느 쪽의 게이트가 동작했는지가 용이하게 판별 가능해져, 상보적인 동작으로는 되지 않는다. 상보적인 동작을 행하기 위해서 추가한 게이트(이하 이것을 더미 게이트라 함)는 논리 실현을 위해서는 불필요한 게이트이며, 그 게이트의 출력은 사용되지 않는다. 따라서, 필요한 게이트와 비교하여, 더미 게이트는 그 대상의 부하가 작아지는 경향이 있다. 동일한 부하를 실현하기 위해서, 게이트의 쌍이 아니라, 회로 전체에 대하여 쌍을 형성한 경우, 예로서 일본 특허 공개 제 2002-311826 호 공보와 같은 대항 조치의 경우, 대응하는 게이트 쌍이 동일한 타이밍으로 동작하는 것을 보증하는 것은 매우 곤란하다. 이들의 문제는, 게이트 쌍 또는 회로 쌍이 상보적인 동작을 실현하기 위해서, 그 출력 노드가 2개 존재하는 것에 기인한다.
특허 문헌 1 : 일본 특허 공개 제 2000-066585 호 공보
특허 문헌 2 : 일본 특허 공표 제 2002-540654 호 공보
특허 문헌 3 : 일본 특허 공표 제 2003-526134 호 공보
특허 문헌 4 : 일본 특허 공개 제 2002-311826 호 공보
발명의 개시
발명이 해결하고자 하는 과제
본 발명은 하나의 출력 노드로 원리적으로 상보적인 동작을 하는 반도체 소자를 구성함으로써, 상기한 시간차의 문제 및 부하의 문제를 해결하는 것을 목적으로 한다.
과제를 해결하기 위한 수단
본 발명의 전자 소자는, 소정의 데이터와 제 1 난수의 배타적 논리합의 결과를 입력 신호로서 입력받아, 입력한 입력 신호에 기인하여 소정의 논리 연산을 실행하고, 실행한 논리 연산의 결과와 제 2 난수의 배타적 논리합을 출력 신호로서 출력하는 것을 특징으로 한다.
본 발명의 전자 소자는, n(n≥1) 비트의 데이터에 n 비트의 제 1 난수가 배타적 논리합된 데이터를 나타내는 XOR 데이터와, n 비트의 제 1 난수와 1 비트의 제 2 난수를 입력 신호로서 입력받아, XOR 데이터와 제 1 난수의 배타적 논리합에 의해 n 비트의 데이터를 산출하고, 산출한 n 비트의 데이터의 각 비트를 이용하여 소정의 논리 연산을 실행하여, 실행한 논리 연산의 결과와 제 2 난수의 배타적 논리합을 출력 신호로서 출력하는 것을 특징으로 한다.
상기 제 1 난수는 n 비트의 각 비트가 동일한 값이고, 상기 제 2 난수는 상기 제 1 난수의 각 비트의 값과 동일한 값인 것을 특징으로 한다.
상기 전자 소자는, 입력 신호의 상태 변화에 의존하지 않고, 과도적인 처리를 행하지 않고서 출력 신호를 출력하는 것을 특징으로 한다.
또한, 상기 전자 소자는, 출력 신호의 출력을 지령하는 지령 신호를 입력받고, 또한, 지령 신호가 입력된 경우에, 출력 신호를 출력하는 것을 특징으로 한다.
상기 소정의 논리 연산은 논리곱(AND), 부정 논리곱(NAND), 논리합(OR), 부정 논리합(NOR), 배타적 논리합(XOR) 중 어느 하나인 것을 특징으로 한다.
본 발명의 전자 소자는, 복수의 트랜지스터로 구성되고, 제 1 난수, 제 2 난수, n 비트(n≥1)의 데이터를 입력받아 소정의 신호를 출력 신호로서 출력하는 전자 소자로서, 제 1 난수, 제 2 난수, n 비트의 데이터를 입력받은 경우에, 제 1 난수와 n 비트의 데이터의 배타적 논리합을 실행하여 배타적 논리합의 실행 결과를 나타내는 각 비트를 이용해서 소정의 논리 연산을 행하여 소정의 논리 연산의 결과와 제 2 난수의 배타적 논리합을 실행함으로써 얻어지는 결과와 등가인 결과를 나타내는 출력 신호를 복수의 트랜지스터의 스위칭에 의해 출력하는 것을 특징으로 한다.
상기 제 1 난수는 각 비트가 동일한 값인 n 비트의 난수이고, 상기 제 2 난수는 상기 제 1 난수의 각 비트의 값과 동일한 값인 1 비트의 난수인 것을 특징으로 한다.
상기 전자 소자는 상기 복수의 트랜지스터의 스위칭을 동시에 실행하는 것을 특징으로 한다.
상기 전자 소자는, 출력 신호의 출력을 지령하는 지령 신호를 입력받고, 또한, 지령 신호가 입력된 경우에, 출력 신호를 출력하는 것을 특징으로 한다.
본 발명의 전자 소자는, 제 1 난수, 제 2 난수, n 비트(n≥1)의 데이터를 입력받아 소정의 신호를 출력 신호로서 출력하는 전자 소자로서, 제 1 난수, 제 2 난수, n 비트의 데이터를 입력받는 입력부와, 0과 1에 의해 구성되는 논리 데이터를 저장하는 저장부와, 상기 입력부가 제 1 난수, 제 2 난수, n 비트의 데이터를 입력받은 경우에, 제 1 난수와 n 비트의 데이터의 배타적 논리합을 실행하여 배타적 논리합의 실행 결과를 나타내는 각 비트를 이용해서 소정의 논리 연산을 행하여 소정의 논리 연산의 결과와 제 2 난수의 배타적 논리합을 실행함으로써 얻어지는 결과와 등가인 결과를, 스위칭에 의해 상기 저장부가 저장하는 논리 데이터로부터 취득하여 출력 신호로서 출력하는 복수의 트랜지스터를 구비한 것을 특징으로 한다.
상기 제 1 난수는 각 비트가 동일한 값인 n 비트의 난수이고, 상기 제 2 난수는 상기 제 1 난수의 각 비트의 값과 동일한 값인 1 비트의 난수인 것을 특징으로 한다.
상기 복수의 트랜지스터는 스위칭을 동시에 행하는 것을 특징으로 한다.
상기 입력부는 출력 신호의 출력을 지령하는 지령 신호를 더 입력받고, 상기 전자 소자는, 지령 신호가 입력된 경우에, 출력 신호를 출력하는 것을 특징으로 한다.
본 발명의 데이터 처리 방법은, 소정의 데이터와 제 1 난수의 배타적 논리합의 결과를 입력 신호로서 입력받아, 입력받은 입력 신호에 근거해 소정의 논리 연산을 실행하고, 실행한 논리 연산의 결과와 제 2 난수의 배타적 논리합을 출력 신호로서 출력하는 것을 특징으로 한다.
본 발명의 데이터 처리 방법은, n 비트의 데이터에 n 비트의 제 1 난수가 배타적 논리합된 데이터를 나타내는 XOR 데이터와, n 비트의 제 1 난수와 1 비트의 제 2 난수를 입력 신호로서 입력받아, XOR 데이터와 제 1 난수의 배타적 논리합에 의해 n 비트의 데이터를 산출하고, 산출한 n 비트 데이터의 각 비트를 이용하여 소정의 논리 연산을 실행해서, 실행한 논리 연산의 결과와 제 2 난수의 배타적 논리합을 출력 신호로서 출력하는 것을 특징으로 한다.
(발명의 효과)
본 발명에 의해, 상보적인 동작을 행하는 회로를 마련하지 않고, 소비 전력으로부터 비밀 정보를 특정하고자 하는 공격에 대항할 수 있다.
발명을 실시하기 위한 최선의 형태
(실시예 1)
도 1~도 11을 이용하여 실시예 1을 설명한다. 실시예 1은 비선형 변환의 처리를 행하는 기본 소자 A, 선형 변환의 처리를 행하는 기본 소자 B, 및 기본 소자 A와 기본 소자 B를 이용하여 암호 알고리즘을 처리하는 회로에 관한 것이다. 또, 이하에서, n 비트의 데이터 A와, n 비트의 데이터 B와의 비트끼리의 배타적 논리합을 A<XOR>B라고도 표기한다.
임의의 암호 알고리즘 F는, 그 안전성을 견지하기 위해서, 반드시 비선형 변환 Si(0≤i≤p)와 선형 변환 Lj(0≤j≤q)의 조합으로 이루어진다. 이것은, 디지털 회로로 실장한 경우에, AND(논리곱) 게이트와 XOR(배타적 논리합) 게이트의 조합으로 등가 변환할 수 있는 것을 의미한다. 당연히, OR(논리합), NOR(부정 논리합), NAND(부정 논리곱) 등의 기본 게이트를 조합시키더라도 실장 가능하다. 그러나, 그들의 처리도, 모두 AND 게이트와 XOR 게이트의 조합으로 등가 변환할 수 있다. 이 때문에, AND와 XOR를 중심으로 설명한다. 청구의 범위는 AND, XOR, OR, NOR, NAND 등의 모든 기본 게이트에 대한 것이다.
먼저, 비선형 변환 Si를 구성하는 기본 소자 A에 대하여 설명한다. 이하, 비선형 변환을 구성하는 소자를 기본 소자 A라고 부르는 것으로 한다. 또한, 비선형 변환 Si는 기본 소자 A에 의해 구성되어 있는 것으로 한다.
도 1은, 기본 소자 A가 2bit의 입력 데이터 (x1, x2)를 입력하는 경우를 상정하여, 기본 소자 A의 처리를 설명하기 위한 편의적인 소자(20)를 도시하는 도면이다. 도 1의 소자(20)는, 기본 소자 A의 처리를 설명하기 위한 편의적인 구성이며, 기본 소자 A의 실시예를 나타내는 것은 아니다. 기본 소자 A의 구체적인 실시예는 도 6의 기본 소자 A(100)로서 후술한다.
소자(20)는 XOR(22), AND 게이트(23), XOR(27), AND 게이트(24)를 구비한다. 소자(20)는 (xi, xj)에 난수 r이 배타적 논리합된 x1(x1=xi^r), x2(x2=xj^r)를 입력받는다. 또한, 난수 r 및 제어 신호 en(26)을 입력받는다.
소자(20)의 동작을 설명한다.
(1) 소자(20)는 데이터(xi, xj)(소정 데이터의 일례)와 난수 r(제 1 난수의 일례)의 배타적 논리합인 x1(x1=xi^r), x2(x2=xj^r)를 입력받는다.
(2) XOR(22)은, (x1, x2)(XOR 데이터의 일례) 및 난수 r을 입력받아, 배타적 논리합을 실행한다. 즉, 「xi^r^r」 및 「xj^r^r」을 실행한다. XOR(22)의 출력은 xi와 xj로 된다.
(3) AND 게이트(23)는 xi, xj를 입력받아, 「xi&xj」를 출력한다(출력점(25)).
(4) XOR(27)은 난수 r(제 2 난수의 일례)과 「xi&xj」를 입력받아, 「xi&xj^r」을 출력한다.
(5) AND 게이트(24)는, 「xi&xj^r」과 제어 신호 en(26)을 입력받아, 제어 신호 en(26)이「1」일 때, 「z=xi&xj^r」을 출력한다. 단, 이것은 일례이며, 기본 소자 A의 동작은, 제어 신호 en의 유의(有意)를「0」이라고 하면, AND 게이트(24)를 OR 게이트로 치환한 동작으로 실현하여도 좋다.
또한, 제어 신호 en이 「상승」 또는 「하강」으로 유의를 결정하는 신호라고 하면, 기본 소자 A의 동작은, AND 게이트(24)를 플립플롭으로 치환하고, 제어 신호 en이 「상승」 또는 「하강」으로 XOR(27)의 출력을 취입하는 방식의 동작으로 실현하여도 좋다. 이하, 기본 소자 A의 동작은, 설명의 이해를 간단히 하기 위해서 제어 신호 en의 유의를 「1」로 하고, 전술한 AND 게이트(24)에 의한 동작으로 설명한다. 청구의 범위는, 신호의 유의가 「0」, 「1」, 「상승」, 「하강」의 모든 방식에 대한 것이다. 또한, 이것은 기본 소자 B에 대해서도 마찬가지이다.
다음에, n-bit 입력의 경우를, 도 1에 나타낸 2bit 입력의 소자(20)와 대비시켜 설명한다. 비선형 변환 Si의 각 비선형 처리에 있어서, 예컨대, n 입력 AND를 하기와 같은 (1a) 내지 (4a)의 처리를 행하는 기본 소자 A로 실현한다. 기본 소자 A는, 입력으로서, n-bit의 데이터인 X(x1, x2, …, xn)와, n-bit의 난수인 Ra(r1, r2, …, rn)(제 1 난수의 일례)와, 1 bit의 난수인 rb(제 2 난수의 일례)와 제어 신호 en(지령 신호의 일례)을 입력받는다. 그리고, 출력으로서,
z=((x1^r1)&(x2^r2)&…(xn^rn)^rb)&en
을 출력한다.
(1a) n-bit의 입력 X(x1, x2, …, xn)(XOR 데이터의 일례)를, n 비트의 난수 Ra(r1, r2, …, rn)와 배타적 논리합한다(또, x1, x2 등은 입력 전에 난수 Ra와 배타적 논리합되어 있는 것으로 한다). 이것을 X'라고 한다. 소자(20)의 경우에서는, x1=xi^r, x2=xj^r이다. 또한, 난수 Ra=(r1, r2)=(r, r)이다. 따라서, X'=(xi, xj)이다.
(2a) X'의 모든 비트에 대하여 논리곱(AND)을 취한다. 이것을 x"로 한다. 소자(20)의 경우는, x"=xi&xj로 된다.
(3a) x"와, 1 bit의 난수인 rb를 배타적 논리합한다. 이것을 y로 한다. 소자(20)의 경우는, rb=r이고, y=xi&xj^r로 된다.
(4a) y와 제어용 신호 en의 AND를 취해 출력한다. 이것을 z로 한다. 소자(20)의 경우는, 상술한 바와 같이, z=xi&xj^r로 된다. 또, z를 출력하는 경우는, 모든 입력 신호가 확정된 후, 제어 신호 en을 「1」로 하는 것에 의해 단숨에 출력한다.
상기한 (1a) 내지 (4a)의 처리를 모두 단일의 연산 소자에서 실행하고, 이것을 기본 소자 A로서 비선형 변환 Si를 구성한다. z를 출력하는 경우는, 전술한 바와 같이, 모든 입력 신호가 확정된 후, 제어 신호 en에 의해 출력 z를 단숨에 출력한다.
기본 소자 A의 특징은 이하의 점에 있다. 즉, 종래의 암호 처리 알고리즘의 처리의 대상으로 되는 데이터 (xi, xj 등)와 난수를 배타적 논리합한 데이터를 입력받는다. 그리고, 종래의 처리의 대상으로 되는 데이터에 대한 소정의 논리 연산의 결과에 난수를 배타적 논리합한 상태로 출력한다. 또한, 출력 시에는, 전부 입력 신호가 확정된 후에 출력한다. 이 특징에 의해, 디바이스 내에서 처리되는 비밀 정보를 디바이스의 소비 전력으로부터 특정하고자 하는 공격에 대하여 대항할 수 있다. 대항할 수 있는 것은 다음 이유에 의한다. 출력 z에는 난수 r이 배타적 논리합되어 출력된다. 이 난수 r은 「0」과 「1」이 1/2의 확률로 출현하기 때문에, 출력 z의 신호 천이율α은 1/2로 된다. 또한, z를 출력하는 경우는, 전부 입력 신호의 상태 천이가 완료된 경우에, 처리를 실행하여 출력 신호 z를 출력한다. 여기서 「처리」란, n-bit의 데이터인 X(XOR 데이터)와 난수 Ra(제 1 난수)의 배타적 논리합에 의해 n 비트의 데이터를 산출하고, 산출한 n 비트 데이터의 각 비트를 이용해서 AND 연산(소정의 논리 연산의 일례)을 실행하여, 실행한 AND 연산(논리 연산)의 결과와 난수 rb(제 2 난수)의 배타적 논리합을 실행하는 일련의 과정을 말한다. 이 때문에, 공격자로부터는 출력 z의 전력의 변동을 검출할 수 없기 때문이다. 후술하는 기본 소자 B에 관해서도 마찬가지이다. 또, 이 특징점에 대해서는 도 8~도 11의 설명으로 한다.
기본 소자 A의 구성을 보다 간단히 하기 위해서, 난수를 1 bit만 이용하는 것도 가능하다. 즉
(1b) n-bit의 입력 X(x1, x2, …, xn)를, 1 bit의 난수 r에 의한 n-bit 연결 과 배타적 논리합한다. 이것을 X'으로 한다. 즉,
X'=(x1^r, x2^r, …, xn^r)
(2b) X'의 모든 bit에 대하여 AND를 취한다. 이것을 x"로 한다. 즉,
x"=(x1^r)&(x2^r)&…&(xn^r)
(3b) x"와 r을 배타적 논리합한다. 이것을 y로 한다. 즉,
y=(x1^r)&(x2^r)&…&(xn^r)^r
(4b) y와 제어용 신호 en의 AND를 취해서 출력으로 한다. 이것을 z로 한다.
(1b) 내지 (4b)의 처리를 모두 단일의 연산 소자에서 실행하고, 이것을 기본 소자 A로서 Si를 구성한다. 즉
기본 소자 A(X):
z=((x1^r)&(x2^r)&…(xn^r)^r)&en
로 된다.
다음에, 선형 변환 Lj를 구성하는 기본 소자 B의 개략을 설명한다.
이하, 선형 변환을 구성하는 소자를 기본 소자 B라고 부른다. 선형 변환 Lj는 기본 소자 B에 의해 구성되어 있는 것으로 한다. 선형 변환 Lj의 각 선형 처리에 있어서, 예컨대, n 입력 XOR를 하기와 같은 처리를 행하는 소자로 실현한다.
(1c) n-bit의 입력 X(x1, x2, …, xn)의 모든 비트에 대해 XOR를 취한다. 이 것을 x'으로 한다. 즉,
x'=x1^x2^…^xn
(2c) x'과 1 bit의 난수 r을 배타적 논리합한다. 이것을 y로 한다. 즉,
y=(x1^x2^…^xn)^r
(3c) y와 제어용 신호 en의 AND를 취해서 출력으로 한다. 이것을 z로 한다.
(1c) 내지 (3c)의 처리를 모두 단일의 연산 소자에서 실행하고, 이것을 기본 소자 B로서 Lj를 구성한다. 즉,
기본 소자 B(X):
z=(x1^x2^…^xn^r)&en
으로 된다. 여기서, 입력 X가 이미 난수 성분을 배타적 논리합하고 있었는 경우, 예컨대, A(X)의 출력인 경우, X가 기수(寄數) 비트열이면 (2c)의 처리는 실행해지지 않는다.
기본 소자 A, 기본 소자 B의 입력으로서 이용하는 제어용 신호 en은 각 기본 소자의 그 외의 입력 신호로부터 충분히 늦게 변화시킨다. 즉, 상기한 기본 소자 A, 기본 소자 B의 경우, 제어용 신호 en이 논리 「1」일 때만,
「(암호 알고리즘의 중간값 또는 처리 결과)^ 난수값」
의 형태로 각 기본 소자는 결과를 출력하고, 그 이외의 경우는 항상 0을 출력한다. 이들 기본 소자 A, 기본 소자 B를 이용하여, 암호 알고리즘 F를 구성한다. 후술하는 도 2의 「최후의 변환층」의 경우와 같이, 기본 소자 A 또는 기본 소자 B의 처리 결과에 대하여, 직전의 처리에서 사용한 난수를 배타적 논리합함으로써 암호문 또는 평문을 얻을 수 있다.
다음에, 도 2에 의해, 기본 소자 A, 기본 소자 B를 이용하여 암호 알고리즘을 처리하는 회로에 대하여 설명한다. 도 2는 기본 소자 A, 기본 소자 B를 이용하여 암호 알고리즘 F의 처리를 행하는 회로(30)의 개략적인 구성을 나타내는 블럭도이다. 기본 소자 A, 기본 소자 B는, 암호 알고리즘의 최소 단위의 기본 연산에 대한 대항 조치이기 때문에, 적용 알고리즘은 한정되지 않는다.
회로(30)는 선택기(2), 난수 발생기(3), 배타적 논리합(4), 배타적 논리합(5), 비선형 변환 S1(6) 등, 선형 변환 L2(7) 등, 제어 회로(8), 타이밍 생성 회로 TG(9), 타이밍 제어 회로 TC(10), AND 게이트(11), 배타적 논리합(12), 레지스터(13), 레지스터(14)를 구비한다. 비선형 변환 S1(6), 선형 변환 L2(7) 등은 층을 형성하고 있다. 비선형 변환 Si는 기본 소자 A로 구성된다. 또한, 선형 변환 Lj는 기본 소자 B로 구성된다.
도 3은 도 2에 도시한 회로(30)의 동작을 나타내는 흐름도이다. 도 3을 참조하여, 회로(30)의 동작을 설명한다.
입력 데이터 X1(평문, 암호문, 키 등)은, 배타적 논리합(4)에서 난수 R1과 처리되어, X<XOR>R1로 되고, 비선형 변환 S1(6)에 입력된다(S101). 또, 도 2에서는, 비선형 변환 S1(6), 선형 변환 L2 등의 순서대로 층을 형성하고 있다. 이것은 일례이다. 비선형 변환층, 선형 변환층의 순서 및 층수는 알고리즘 F와 실장 방법에 의존한다. 배타적 논리합(5)의 위로부터의 입력은 0으로 하고, 난수 발생기(3)의 가장 위의 출력은 난수 R1이다. 또한, 비선형 변환 S1(6)로의 오른쪽으로부터의 입력은 난수 R1 및 난수 R2이다. 비선형 변환 S1(6)로의 왼쪽으로부터는 상기한 제어용 신호 en1을 입력받는다(S102). 제어용 신호 en1은 입력 신호인 X<XOR>R1, R1, 및 R2의 신호 변화보다 늦어 "1"로 변화된다. 이 제어는 제어 회로(8), 타이밍 생성 회로 TG(9), 타이밍 제어 회로 TC(10)에서 행한다. 비선형 변환 S1(6)은 X1<XOR>R2를 출력한다(S103). 마찬가지로, 선형 변환 L2(7)는 입력으로서 X1<XOR>R2, R2 및 이들의 신호 변화보다 늦은 제어용 신호 en2를 받는다. 이에 따라, 선형 변환 L2(7)는 X2<XOR>R2를 출력한다. 이 후, 마찬가지로, 비선형 변환, 선형 변환의 처리를 반복하여 행한다(S104).
또, 비선형 변환, 선형 변환의 회로를 동일한 회로에서 처리하는 경우는, 최후의 변환층 Sn(또는 Ln)에서 출력한 결과 Xi<XOR>Rj를 선택기(2)에서 선택하고, 다시 배타적 논리합(4)의 입력으로 한다. 이 때, 배타적 논리합(5)의 위로부터의 입력은 Rj이고, 난수 발생기(3)의 가장 위의 출력은 Rj +1이다. 이로부터, 배타적 논리합(4)의 오른쪽으로부터의 입력은 Rj<XOR>Rj+1로 되고, 배타적 논리합(4)의 출력은 Xi<XOR>Rj+1로 된다(S105).
암호 알고리즘 F의 처리에 필요한 비선형 변환, 선형 변환의 처리가 종료한 단계에서, 제어 회로(8)는 AND 게이트(11)에 대하여 "1"을 입력한다. 이에 따라, 최후의 변환층 Sn(또는 Ln)에서 출력한 결과 Xn<XOR>Rm은 Rm과 배타적 논리합(12)에서 처리되어, 데이터 Xn이 출력된다(S106).
도 4는, 도 2에 도시한 회로(30)에 대하여, 난수를 1 bit로 간략화한 회로(31)의 구성을 나타내는 도면이다. 예컨대, 회로(31)의 비선형 변환 S1은, 전술한, 난수를 1 bit만 이용하는 기본 소자 A에 의해 구성되어 있다. 회로(31)는, 회로(30)와 비교하여, 회로 상에서 이용하는 난수의 수를 삭감하고 있기 때문에, 회로(30)보다도 적은 회로 면적으로 실장할 수 있다.
도 5는 도 2의 회로(30), 도 4의 회로(31)에 있어서의 각 층에서 이용하는 제어 신호의 타이밍을 나타낸 도면이다. 암호 알고리즘의 처리를 개시하는 start 신호가 유효로 되고 나서, 입력 데이터 X1에 대하여, 선택기(2), 배타적 논리합(4)의 처리가 종료하고, 또한 비선형 변환 S1을 구성하는 기본 소자 A에 그 처리 결과가 충분히 전파되고 나서, 최초의 층 S1의 제어 신호 en(S1)이 논리 1로 변화된다. 그 후 S1은 연산 결과를 출력하여, L2를 구성하는 기본 소자 B에 데이터가 전파한다. 모든 데이터가 전파된 단계에서, L의 제어 신호(L2)가 논리 1로 변화된다. 동일한 동작을 그 후의 층에 대하여 실행하여, 최종적으로 최후의 층인 S2i-1의 제어 신호 en(S2i-1)이 논리 1로 변화된다.
상기 제어 신호에 대해서는, 다음 연산을 행하기 위해서, 각 제어 신호를 논리 0으로 하는 초기화 처리가 필요하게 된다. 초기화 방식은 모든 연산이 종료한 단계에서 행하는 방법이 있다. 또한, 다른 방법으로서, 도 5와 같이, 상위층으로부터 순차적으로 초기화하는 방법도 있다. 상위층으로부터 순차적으로 초기화하는 방법은, 다음 연산 개시까지의 대기 시간을 단축 가능하기 때문에, 고속 처리를 실현할 수 있다. 그러나, 초기화의 대상으로 되는 층과 다음 층과의 층 사이에, 초기화의 대상으로 되는 층의 출력을 저장하는 레지스터가 필요하게 된다. 이 때문에, 회로 비용은 증가한다.
도 6은 전술한 기본 소자 A의 실시예로서, 트랜지스터로 구체적으로 구성한 기본 소자 A(100)를 도시하는 도면이다. 도 6의 기본 소자 A(100)는 x1(x1=xi^r), x2(x2=xj^r), 및 난수 r, 제어 신호 en(지령 신호의 일례)을 입력받는다. 그리고,
z=((x1^r)&(x2^r)^r)&en
을 출력한다. z의 식에 있어서 x1 및 x2와 배타적 논리합되어 있는 난수 r은 제 1 난수이다. 3번째 난수 r은 제 2 난수이다.
도 6을 이용하여, 기본 소자 A(100)의 구성을 설명한다.
(1) 기본 소자 A(100)는 상부(115)와 하부(116)의 직렬 접속에 의해 구성된 다. 상부(115)와 하부(116) 사이로부터 출력 신호 z가 출력된다.
(2) 도 6에 있어서, 기호 「!」는 신호의 반전을 의미한다. 또한, 상부(115)를 구성하는 각 트랜지스터에 부여되어 있는 오른쪽 방향의 화살표 「→」는 신호가 「0」일 때에 트랜지스터가 도통하는 것을 나타낸다. 또한, 하부(116)를 구성하는 각 트랜지스터에 부여되어 있는 왼쪽 방향의 화살표 「←」는 신호가 「1」일 때에 트랜지스터가 도통하는 것을 나타낸다. 따라서, 상부(115)는 신호가 「0」일 때 도통하는 트랜지스터의 집합이다. 또한, 하부(116)는 신호가 「1」일 때 도통하는 트랜지스터의 집합이다. 인가부(113)에는 논리 「1」에 상당하는 전압이 인가된다.
(3) 인가부(113)에 논리 「1」에 상당하는 전압이 인가된 경우, 각 트랜지스터의 스위칭에 의해
z=((x1^r)&(x2^r)^r)&en
이 출력된다.
(4) 기본 소자 A(100)의 트랜지스터의 구성을 설명한다. 상부(115)는 트랜지스터(101)와, 트랜지스터(102)와 트랜지스터(103)의 병렬 회로와, 트랜지스터(104)와 트랜지스터(105)의 직렬 접속과 트랜지스터(106)가 병렬 접속된 병렬 회로가 직렬 접속되어 구성된다.
(5) 하부(116)는 트랜지스터(107)와, 트랜지스터(108)와 트랜지스터(109)의 직렬 접속과, 트랜지스터(110)와 트랜지스터(111)의 병렬 회로와 트랜지스터(112) 의 직렬 접속이 병렬 접속되어 구성된다. 그리고, 트랜지스터(107), 트랜지스터(109), 및 트랜지스터(112)의 일단(一端)은 접지(114)에 접속되어 있다.
(6) 다음에 입력 신호에 대하여 설명한다. 입력 신호는 모두 반전하여 트랜지스터에 입력된다.
입력 신호 x1은 반전되어, 트랜지스터(102), 트랜지스터(104), 트랜지스터(108) 및 트랜지스터(110)에 입력된다.
(7) 입력 신호 x2는 반전되어, 트랜지스터(103), 트랜지스터(105), 트랜지스터(109), 및 트랜지스터(111)에 입력된다.
(8) 입력 신호 r은 반전되어, 트랜지스터(106) 및 트랜지스터(112)에 입력된다.
(9) 입력 신호 en은 반전되어, 트랜지스터(101) 및 트랜지스터(107)에 입력된다.
전술한 바와 같이, 기본 소자 A(100)는 xi, xj의 각각에 난수 r을 배타적 논리합한 데이터인 x1, x2를 입력받아, xi, xj에 대한 소정의 논리 연산의 결과에 난수 r을 배타적 논리합한 상태로 출력한다. 그리고, 출력하는 경우는, 모든 입력 신호가 확정된 후에 단숨에 출력한다. 즉, 출력 신호는 입력 신호의 과도 천이의 영향을 받지 않는다. 또한, 입력으로부터 출력에 이르는 도중의 데이터를 생성하는 일 없이 단숨에 출력한다. 이에 따라, 소비 전력으로부터 비밀 정보를 특정하고자 하는 공격에 대항할 수 있다.
도 6의 기본 소자 A(100)는 2 입력 AND형이며, 전술한 바와 같이, 다음 z를 출력한다.
A(x1, x2):z=((x1^r)&(x2^r)^r)&en
여기서, x1=xi^r, x2=xj^r이다.
도 4의 비선형 변환 S1을 기본 소자 A(100)로 구성한 경우는, 다음과 같이 된다. 비선형 변환 S1의 입력인, X<XOR>{r, r, r, …, r}, r, 및 제어 신호 en에 대해, 기본 소자 A(100)는 임의의 2 bit에 대해서 A(xi^r, xj^r)의 처리를 행하여, z를 출력한다.
즉,
z=(((xi^r)^r)&((xj^r)^r))&en
으로 된다. 그리고, en=1일 경우,
z=xi&xj^r
을 출력한다.
도 7은 기본 소자 A(100)의 진리값표를 나타내고 있다.
x1=0의 경우에 있어서, 출력 z의 신호가 「0으로부터 1」 혹은 「1로부터 0」으로 천이하는 신호 천이율 α(xi=0)은,
α(x1=0)=P0×P1(x1=0)+P1×P0(x=0)=1/2
로 된다.
여기서, P0은 z가 「0」이 될 확률이다. P1은 z가「1」이 될 확률이다. 진리값표로부터,
P0=4/8,
P1=4/8
이다.
또한, P1(x1=0)은 x1=0의 조건 하에서, z가 「1」이 될 확률이다. P0(x1=0)은 x1=0의 조건 하에서, z가 「0」이 될 확률이다. 진리값표로부터,
P0(x1=0)=3/4,
P1(x1=0)=1/4
이다. 따라서,
α(x1=0)=P0×P1(x1=0)+P1×PO(x1=0)=4/8×1/4+4/8×3/4=1/2
로 된다.
x1=1의 경우도 마찬가지로 계산하면, 진리값표로부터,
P0(x1=1)=1/4,
P1(x1=1)=3/4
이다. 따라서,
α(x1=1)=P0×P1(x1=1)+P1×PO(x1=1)=4/8×3/4+4/8×1/4=1/2
로 된다. 따라서, 신호 천이율 α는 입력 x1(또는 x2)이 0과 1인 경우에 동일하게 된다. 또한, 출력 z에 대해서는, 제어 신호 en에 의해, 입력 신호가 확정된 후에 단숨에 출력한다. 즉, 출력 신호는 입력 신호의 과도 천이의 영향을 받지 않는다. 또한, 입력으로부터 출력에 이르는 도중의 데이터를 생성하는 일 없이 단숨에 출력한다. 이 때문에, 기본 소자 A에서는 소비 전력으로부터 비밀 정보를 예측하는 것은 불가능하다.
도 8a~도 8c는 기본 소자 A(100)에 있어서의 난수 r과 제어 신호 en의 역할을 설명하는 도면이다. 전술한 기본 소자 A(100)에 있어서의 xi&xj의 처리를, 난수 r과 제어 신호 en을 사용하지 않은 상태로 처리한 경우는, 도 8a에 나타내는 2 입력 AND 게이트와 마찬가지로 된다. 그 경우의 진리값표는 도 8b로 된다. 이 경우, 출력에 있어서의 신호 천이율 α는 도 8b의 진리값표로부터,
xi=0일 때, α(xi=0)=1/4,
xi=1일 때, α(xi=1)=1/2
로 된다. 즉, 신호 천이율 α이 다르다.
도 8c을 이용하여, 상세히 설명한다. 먼저, xi=0인 경우에 있어서, 출력 z의 신호가 「0으로부터 1」 또는 「1로부터 0」으로 천이하는 신호 천이율 α(xi=0)은,
α(xi=0)=P0×P1(xi=0)+P1×P0(xi=0)=1/4
이다.
여기서, P0은 z가 「0」이 될 확률이다. P1은 z가 「1」이 될 확률이다. 도 8b의 진리표로부터, P0=3/4, P1=1/4이다. 또한, P1(xi=0)은 xi=0의 조건 하에서, z가 「1」이 될 확률이다. P0(xi=0)은 xi=0의 조건 하에서 z가 「0」이 될 확률이다. 진리값표로부터,
P0(xi=0)=1,
P1(xi=0)=0
이다. 따라서,
α(xi=0)=P0×P1(xi=0)+P1×P0(xi=0)=3/4×0+1/4×1=1/4
로 된다.
xi=1의 경우도 마찬가지로 계산하면, 진리값표로부터,
P0(xi=1)=1/2,
P1(xi=1)=1/2
이다. 따라서,
α(xi=1)=P0×P1(xi=1)+P1×P0(xi=1)=3/4×1/2+1/4×1/2=1/2
로 된다.
따라서, 상기한 바와 같이,
xi=0일 때, α(xi=0)=1/4,
xi=1일 때, α(xi=1)=1/2
로 된다. 이와 같이 신호 천이율 α에 바이어싱이 발생한다.
따라서, 도 8a에 나타내는 2 입력 AND는 한 쪽의 입력 xi(또는 xj)이 0과 1인 경우에 전력차가 발생하게 된다. 이 때문에, 소비 전력으로부터 AND 게이트의 입력을 예측하는 것이 가능해진다. 이에 따라, 처리에 이용되고 있는 비밀 정보를 특정하는 것이 가능하게 된다.
다음에, 도 9a~도 9c를 이용하여, 제어 신호 en에 대하여 설명한다. 도 9a에 나타내는 제어 신호 en을 이용하지 않는 기본 소자 A'는, 입력 신호의 변화에 시간차가 있는 경우, 과도 천이에서 난수에 의존하지 않는 신호 변화가 발생하여, 신호 천이율 α에 바이어싱이 발생한다. 이 때문에, 비밀 정보의 특정이 가능해진다. 도 9b는, 도 9a의 기본 소자 A'의 진리값표를 나타낸다. 또한, 도 9c는 기본 소자 A'의 신호 천이율 α을 나타낸다. 도 9b의 진리값표로부터는, 출력 z에 관한 신호 천이율 α(xi=0), 신호 천이율 α(xi=1)의 모두 1/2로 된다. 그러나, 입력 신호의 변화에 시간차가 있는 경우, 다음과 같이 된다. 예컨대, 기본 소자 A'에 있어서, 도 9c에 나타내는 바와 같이 xi, xj, r의 순으로 신호가 변화되는 경우, xj가 변화되는 시간에 있어서, 신호 천이율 α에 도 8c과 마찬가지의 바이어싱이 발생한다. 따라서, 소비 전력으로부터 AND 게이트의 입력을 예측하는 것이 가능해진다. xi, xj, r가 변화되는 순서가 다르더라도 바이어싱이 발생하는 시간이 어긋날 뿐이다. 또, 입력 신호의 변화에 시간차가 없는 경우는, 문제는 없다.
도 10a~도 10c은 기본 소자 A(100)의 처리를 도시하는 도면이다.
도 10a는 기본 소자 A(100)의 입출력을 도시하는 도면이다.
도 10b는 기본 소자 A(100)의 진리값표를 도시하는 도면이다.
도 10c는 입력 신호의 변화와 출력 신호 z와의 관계를 도시하는 도면이다.
도 10c에서는, 도 10b의 진리값표로부터, 신호 천이율 α는 xi, xj의 0, 1에 의존하지 않고서 1/2로 된다. 또한, 도 10c에 도시하는 바와 같이, 제어 신호 en이 0 동안에는 기본 소자 A(100)의 출력 z가 항상 0이다. 따라서, xi, xj, r의 신호 변화보다 지연하여 제어 신호 en을 1로 하는 것에 의해, 출력 z에 과도 천이는 발생하지 않고, 신호 천이율 α이 균등한 천이밖에 발생하지 않는다. 따라서, 소비 전력으로부터 비밀 정보를 특정하는 것은 불가능하다.
이와 같이, 입출력값에 대하여, 종래의 처리의 대상이었던 값인 xi, xj 등에 대하여 난수를 배타적 논리합하고, 또한, 그 출력은 제어 신호 en에 의해 연산한 결과를 출력하는 경우와 임의의 값을 출력하는 처리 방식을, 3 입력 이상의 AND 처리나, 그 외의 OR, NOR, NAND, XOR 등에도 적용하여, 비선형 변환층, 선형 변환층을 구성한다.
상기한 수법으로 기본 소자를 구성할 때에, 단지, 종래의 기본 게이트를 조합시켜, 상기와 동일한 연산을 행하더라도 대항 조치로서 기능하지 않는다. 예컨 대, 도 11은 도 6의 등가 회로이다. 도 11의 AND 게이트(40)는 xi&xj의 처리를 행하기 때문에, 도 8a와 동일한 동작을 하는 것을 의미한다. 따라서, 신호 천이율 α에 바이어싱이 발생하기 때문에, AND 게이트(40)의 입력을 예측하는 것이 가능해진다. 도 11의 「등가 회로」는 도 1의 소자(20)와 동일하다. 소자(20)의 출력점(25)에 있어서, AND 게이트(40)와 마찬가지로 신호 천이율 α에 바이어싱이 발생한다. 이 때문에, 소자(20)는 기본 소자 A를 설명하기 위한 편의적인 구성이다. 전력 소비로부터의 비밀 정보 누설을 방지하기 위해서, 입출력값에 대하여 종래의 값에 대해 난수값을 배타적 논리합하고, 또한, 그 출력은 제어 신호 en에 의해서 단숨에 출력하는 처리를 행하기 위해서는, 도 6의 기본 소자 A(100)와 같이, 단숨에 출력 z를 출력하는 단일의 연산 소자로 처리를 실현해야 한다.
일본 특허 공표 제 2003-526134 호 공보나 일본 특허 공개 제 2002-311826 호 공보의 게이트 쌍이나 회로 쌍 등의, 상보적인 회로를 실장함으로써 신호 천이율 α을 균등화하는 방식은, 상보적인 동작을 행하는 회로가 동일한 타이밍으로 동작하지 않은 한, 대항 조치로서 기능하지 않는다. 한편, 본 실시예 1의 기본 소자 A(100)에서는, 단체의 연산 소자로 신호 천이율 α이 균등하게 되고, 또한, 출력 z에 과도 천이가 발생하지 않는다. 이 때문에, 「상보적인 동작을 행하는 회로가 동일한 타이밍으로 동작하는 것이 필요하다」라는 상기한 바와 같은 조건을 필요로 하지 않는다. 따라서, 효율적으로 대항 조치를 실현할 수 있다. 또한, 도 6의 기본 소자 A(100)는 출력선이 1개밖에 존재하지 않는다. 따라서, 게이트 쌍이나 회 로 쌍과 같이 「출력선의 부하의 균등화」에 대해 고려할 필요가 없다.
실시예 1의 기본 소자 A는, n-bit의 데이터와 난수 Ra의 배타적 논리합의 데이터 X를 입력받아 소정의 논리 연산을 실행하고, 논리 연산의 결과와 난수 rb의 배타적 논리합을 출력 신호로서 출력하기 때문에, 출력 신호의 신호 천이율을 균등하게 할 수 있다. 이 때문에, 소비 전력의 바이어스를 없애는 것에 의해, 소비 전력으로부터 비밀 정보를 특정하고자 하는 공격에 대항할 수 있다.
실시예 1의 기본 소자 A는, 1종류의 난수 r을 이용하여 처리를 행하는 것에 의해 난수의 종류를 삭감하기 때문에, 다종류의 난수를 이용하는 경우에 비해서, 실장 면적을 작게 할 수 있다.
실시예 1의 기본 소자 A는, 입력 신호의 상태 천이가 완료된 경우에, 처리를 실행하여 출력 신호를 출력하기 때문에, 출력의 신호 천이를 균등하게 할 수 있다.
실시예 1의 기본 소자 A는, 출력을 지령하는 제어 신호 en(지령 신호)에 의해 출력 z를 출력하기 때문에, 신호 천이율을 균등하게 할 수 있다.
실시예 1의 기본 소자 A(100)에 의해 소비 전력으로부터 비밀 정보를 특정하고자 하는 공격에 대항할 수 있다. 또한, 기본 소자 A(100)는, 트랜지스터의 회로구성에 의한 하드웨어의 대항이기 때문에, 소프트웨어의 대항책에 비해서 고속 처리가 가능하다.
실시예 1의 기본 소자 A(100)는, 1종류의 난수 r을 이용하여 처리를 행하는 것에 의해 난수의 종류를 삭감하기 때문에, 다종류의 난수를 이용하는 경우에 비해 서, 실장 면적을 작게 할 수 있다.
실시예 1의 기본 소자 A(100)는, 출력을 지령하는 제어 신호 en(지령 신호)에 의해 출력 z를 출력하기 때문에, 신호 천이율을 균등하게 할 수 있다.
(실시예 2)
다음에, 도 12a~도 16을 이용하여 실시예 2를 설명한다. 실시예 2는 메모리 소자를 이용하는 것에 의해, 도 6에 나타낸 실시예 1의 기본 소자 A(100)와 등가인 기능을 실현하는 LUT(200)(후술하는 도 15)를 설명한다.
우선, 비선형층의 예로서, DES의 S-box의 구성 방법에 대하여 설명한다. 그 후, S-box에 LUT(200)를 적용하는 경우를 설명한다.
「S-box」란, 임의의 입력에 대하여 결정된 출력을 행하는 변환 테이블이다. DES에서는, 6 bit 입력, 4 bit 출력의 테이블이 8종류 정의되어 있다. 이러한 변환 테이블은 모두 AND-XOR 회로로 실장할 수 있다.
도 12a는 DES 알고리즘으로 정의되는 S1 테이블의 입출력을 나타내는 도면이다. 도 12a에 도시하는 바와 같이, S1 테이블은 6bit의 데이터 {X5, X4, X3, X2, X1, X0}를 입력받아, 4 bit의 데이터 {y3, y2, y1, y0}으로 변환하여 출력한다.
도 12b는 S1 테이블의 내용을 나타내는 도면이다. 도 12b의 S1 테이블에 있어서, 입력 데이터 {X5, X4, X3, X2, X1, X0}의 {X5, X0}으로부터 행이 결정된다. 또한, {X4, X3, X2, X1}로부터 열이 결정된다.
도 12c는 입력값과 출력값의 일례를 도시하는 도면이다.
{X5, X4, X3, X2, X1, X0}={O11011}
로부터,
{X5, X0}={O1}=1
이다. 따라서, S1 테이블의 2행째로 결정된다. 다음에,
{X4, X3, X2, X1}={1101}=13
이다. 따라서, S1 테이블의 14열째로 결정된다. 따라서, {011011}은 2행 14열의 「5」(0101)로 변환된다.
도 12b에 나타내는 S1 테이블 1째줄의 「14, 4, 13, … 0, 7」은 도 13에 나타내는 y0'으로부터 y3'의 식으로 등가 변형할 수 있다. 마찬가지로, 2행째 이후도 변환 가능하다. 도 13의 식은, 도 4의 회로(31)의 경우와 마찬가지로, 도 14에 나타내는 바와 같은, 각각 1층의 비선형층과 1층의 선형층으로 구성할 수 있다. 도 14에서는, 도 4의 경우와 마찬가지로, 입력 데이터는 미리 난수 r에 의해 배타적 논리합되어 비선형층에 입력된다. 다음에, 제 1 층의 비선형층에서 AND 처리가 행하여지고, 2층째의 선형층에서 XOR의 처리가 행하여진다.
지금까지 설명한 대항 조치는, 도 6의 기본 소자 A(100)와 같이, MOSFET(Metal Oxide Semiconductor Field Effect Transistor)로 구성하는 것을 상정하고 있었다. 그러나, 암호 알고리즘의 회로를 MOSFET 레벨의 설계로 행하지 못하는 경우도 생각할 수 있다. 예컨대, FPGA(Field Programmable Gate Array)로 대표되는 개서 가능한 반도체 디바이스로서 설계하는 경우도 생각할 수 있다. 이 경우는, 미리 칩 상에 실장되어 있는 SRAM(Static Random Access Memory)를 기본으로 구성된 메모리 소자(이하 이것을 LUT라고 약기함)나, 플립플롭으로 대표되는 기억 소자의 내부 상태와, 그 배선만을 설계자가 자유롭게 변경할 수 있는 사양으로 되어 있다. 이러한 디바이스에 있어서의 실시예를 도 15에 나타낸다.
도 15는 도 6의 기본 소자 A(100)와 등가인 기능을 4 입력 1 출력의 LUT(200)를 이용하여 실현한 구성을 도시하는 도면이다.
LUT(200)는, 기본 소자 A(100)와 등가이며, 입력으로서 x1, x2, r, en을 입력받는다. 출력 z는,
z=((x1^r)&(x2^r)^r)&en
이다.
LUT(200)는 입력부(250), 복수의 SRAM(260) 등(저장부), 및 복수의 패스 트랜지스터(280) 등을 구비한다. SRAM은 논리 함수를 실현하는 값을 저장하는 기능을 가진다. 데이터 열(270)(논리 데이터)은 각 SRAM이 저장하는 데이터로 구성된다. 패스 트랜지스터는 좌우의 결선(結線)에 대한 스위칭 기능을 가진다.
도 15의 LUT(200)의 구성을 설명한다. 각 패스 트랜지스터는 트리 구조의 각 브랜치에 배치된다. 후술하는 바와 같이, 각 패스 트랜지스터는 브랜치(201)~브랜치(230)의 30 브랜치의 각각에 배치된다. 입력 신호선은 각 브랜치에 배치된 패스 트랜지스터를 ON/OFF의 스위칭을 행한다. 스위치 기능으로서의 패스 트랜지 스터는 「0」이 입력되면 개방된다.
(1) 다음에, LUT(200)의 구성을 설명한다. LUT(200)는 출력 Z로부터 브랜치(201), 브랜치(202) 2개로 분기된다. 브랜치(202)는 브랜치(205), 브랜치(206) 2개로 분기된다. 브랜치(205)는 브랜치(211), 브랜치(212) 2개로 분기된다. 브랜치(206)는 브랜치(213), 브랜치(214) 2개로 분기된다. 브랜치(211)는 브랜치(223), 브랜치(224) 2개로 분기된다. 브랜치(212)는 브랜치(225), 브랜치(226) 2개로 분기된다. 브랜치(213)는 브랜치(227), 브랜치(228) 2개로 분기된다. 브랜치(214)는 브랜치(229), 브랜치(230) 2개로 분기된다. 「브랜치(223), 브랜치(224), … 브랜치(230)」의 각각은 SRAM이 접속하고 있다.
(2) 브랜치(201)는 브랜치(202)와 마찬가지로 분기해 간다. 브랜치(201)는 브랜치(203), 브랜치(204) 2개로 분기된다. 브랜치(203)는 브랜치(207), 브랜치(208) 2개로 분기된다. 브랜치(204)는 브랜치(209), 브랜치(210) 2개로 분기된다. 브랜치(207)는 브랜치(215), 브랜치(216) 2개로 분기된다. 브랜치(208)는 브랜치(217), 브랜치(218) 2개로 분기된다. 브랜치(209)는 브랜치(219), 브랜치(220) 2개로 분기된다. 브랜치(210)는 브랜치(221), 브랜치(222) 2개로 분기된다. 「브랜치(215), 브랜치(216), … 브랜치(222)」의 각각은 SRAM이 접속하고 있다. 도 15에서는, 브랜치(216), 브랜치(218), 브랜치(220)에 접속하고 있는 SRAM에는 「1」이 저장되어 있다. 그 외의 SRAM에는 「0」이 저장되어 있다.
(3) 입력 신호에 대하여 설명한다. 입력 신호 x2의 반전 신호는 브랜 치(201)에 배치된 패스 트랜지스터에 입력된다. 입력 신호 x2는 브랜치(202)에 배치된 패스 트랜지스터에 입력된다. 입력 신호 x1의 반전 신호는 브랜치(203), 브랜치(205)에 배치된 패스 트랜지스터에 입력된다. 입력 신호 x1은 브랜치(204), 브랜치(206)에 배치된 패스 트랜지스터에 입력된다. 입력 신호 r의 반전 신호는 브랜치(207), 브랜치(209), 브랜치(211), 브랜치(213)에 배치된 패스 트랜지스터에 입력된다. 입력 신호 r은 브랜치(208), 브랜치(210), 브랜치(212), 브랜치(214)에 배치된 패스 트랜지스터에 입력된다. 입력 신호 en의 반전 신호는 브랜치(215), 브랜치(217), 브랜치(219), 브랜치(221), 브랜치(223), 브랜치(225), 브랜치(227), 브랜치(229)에 배치된 패스 트랜지스터에 입력된다. 입력 신호 en은 브랜치(216), 브랜치(218), 브랜치(220), 브랜치(222), 브랜치(224), 브랜치(226), 브랜치(228), 브랜치(230)에 배치된 패스 트랜지스터에 입력된다.
제어 신호 en의 유의를 「0」이라고 하면, 전술한 z=((x1^r)&(x2^r)^r)&en에 있어서의 「&en」의 처리는 「|en」(제어 신호 en과의 OR)로 변경하여, 동일한 사고 방식으로 LUT에 의해 기본 소자 A의 등가인 기능을 실현할 수 있다.
또, 입력 신호 x1, x2, r이 동시에 입력하는 것이면 제어 신호 en은 불필요하다. 이 경우, 각각의 해당하는 트랜지스터는 동시에 스위칭된다.
그 외, 2 입력 OR, NOR, NAND, XOR 등에도 마찬가지의 처리 방식을 적용함으로써, 비밀 정보를 소비 전력으로부터 특정하는 공격에 대해 대항할 수 있다.
3 입력 이상의 기본 소자에서는, 일반적으로, LUT의 크기는 고정되어 있는 경우가 많다. 이 때문에, 도 16에 도시하는 바와 같이, 2 입력의 기본 소자를 조합시켜서 구성하는 것이 현실적이다. 이 경우, 2개의 다른 제어 신호를 이용할 필요가 있다. 이것은, 도 16에 도시하는 바와 같이, LUT(292)의 입력으로 되는 LUT(291)의 출력과, LUT(292)에 있어서의 LUT(291)로부터의 입력 이외의 입력에 대하여, 신호 변화의 시간차가 있으므로, 제어 신호를 공유한 경우는, 전술한 이유(입력 신호의 과도 천이)로부터, 난수성이 기능하지 않게 되기 때문이다.
실시예 2의 LUT(200)에 의해, 소비 전력으로부터 비밀 정보를 특정하고자 하는 공격에 대항할 수 있다.
실시예 2의 LUT(200)는, 1종류의 난수 r을 이용하여 처리를 행하는 것에 의해 난수의 종류를 삭감하기 때문에, 다종류의 난수를 이용하는 경우에 비해서, 실장 면적을 작게 할 수 있다.
실시예 2의 LUT(200)는, 복수의 트랜지스터가 스위칭을 동시에 행하기 때문에, 입력으로부터 출력에 이르는 도중 경과는 출현하지 않아, 신호 천이율을 균등하게 할 수 있다.
실시예 2의 LUT(200)는, 출력을 지령하는 제어 신호 en(지령 신호)에 의해 출력 z를 출력하기 때문에, 신호 천이율을 균등하게 할 수 있다.
(실시예 3)
다음에, 도 17~도 22를 이용하여 도 6의 기본 소자 A(100), 도 15의 LUT(200)와는 다른 기본 소자에 대하여 설명한다. 도 17~도 22에 나타내는 일련의 기본 소자는, 기본 소자 A(100), LUT(200) 등과 마찬가지로, 소비 전력으로부터 비밀 정보를 특정하는 공격에 대항할 수 있다.
도 17은 실시예 3에 따른 기본 소자 A(300)를 도시하는 도면이다. 기본 소자 A(300)는, 도 6의 기본 소자 A(100)에 대하여, 제어 신호 en을 입력하는 트랜지스터(101)와 트랜지스터(107)를 삭제한 구성이다. 즉, 기본 소자 A(300)의 입력 신호는 x1, x2, r이다. 또한, 출력 z는,
z=((x1^r)&(x2^r)^r)
로 된다. 제어 신호 en은 존재하지 않는다. 기본 소자 A(300)는 입력 신호 x1, x2, r이 각 트랜지스터에 동일한 타이밍으로 입력되는 경우를 상정한 소자이다.
즉, 입력 신호는 동시에 입력되기 때문에, 해당하는 복수의 트랜지스터의 스위칭은 동시에 행하여진다. 이 경우, 제어 신호 en은 불필요하기 때문이다.
실시예 3의 기본 소자 A(300)는 제어 신호 en의 입력을 필요로 하지 않기 때문에, 간이한 구성으로 실장할 수 있다.
도 18은 실시예 3에 따른 기본 소자 A(400)를 도시하는 도면이다. 도 6의 기본 소자 A(100)가 2 입력 AND형인데 반하여, 기본 소자 A(400)는 2 입력 OR형이다. 입력 신호는 x1, x2, r, en이다. 또한, 출력 z는,
z=((x1^r)|(x2^r)^r)&en
으로 된다. 기본 소자 A(100)의 경우와 마찬가지로, 입력 x1, x2는,
x1=xi^r, x2=xj^r
이다. 따라서, 입출력에 난수가 배타적 논리합되어 있다. 제어 신호 en에 근거하는 각 트랜지스터의 스위칭에 의해 단숨에 z가 출력된다. 이들에 의해, 기본 소자 A(100)와 마찬가지로, 소비 전력으로부터 비밀 정보를 특정하는 공격에 대항할 수 있다.
(1) 기본 소자 A(400)의 구성을 설명한다. 기본 소자 A(400)는 상부(415)와 하부(416)의 직렬 접속에 의해 구성되어 있다. 상부(415)와 하부(416) 사이로부터 출력 신호 z가 출력된다.
(2) 도 18에 있어서, 기호 「!」, 오른쪽 방향의 화살표 「→」, 왼쪽 방향의 화살표 「←」는 도 6의 경우와 마찬가지이다. 또, 이들의 의미는 후술하는 도 19~도 22에 관해서도 마찬가지이다. 인가부(413)에는 논리 「1」에 상당하는 전압이 인가된다.
(3) 인가부(413)에 논리 「1」에 상당하는 전압이 인가된 경우, 각 트랜지스터의 스위칭에 의해
z=((x1^r)|(x2^r)^r)&en
이 출력된다.
(4) 상부(415)는 트랜지스터(401)와 부분 회로(417)의 직렬 접속으로 구성된다. 트랜지스터(401)의 한쪽 단부는 인가부(413)와 접속되고, 다른쪽 단부는 부분 회로(417)에 접속된다. 부분 회로(417)는 트랜지스터(402)와 트랜지스터(403)의 직렬 접속과, 트랜지스터(404)와 트랜지스터(405)의 병렬 회로와 트랜지스터(406)와의 직렬 접속이 병렬 접속되어 있다.
(5) 하부(416)의 트랜지스터의 구성은 도 6의 기본 소자 A(100)의 하부(116)와 동일한 구성이다. 즉, 트랜지스터(407)~트랜지스터(412)의 배치는 트랜지스터(107)~트랜지스터(112)의 배치와 동일하다. 다만, 하부(116)의 트랜지스터(112)에는 입력 신호 r의 반전 신호가 입력되는데 반하여, 하부(416)의 트랜지스터(412)에는 입력 신호 r이 반전되지 않고, 그대로 입력된다.
(6) 다음에, 입력 신호에 대하여 설명한다. 입력 신호 x1의 반전 신호가 트랜지스터(402), 트랜지스터(404), 트랜지스터(408) 및 트랜지스터(410)에 입력된다.
(7) 입력 신호 x2의 반전 신호가 트랜지스터(403), 트랜지스터(405), 트랜지스터(409) 및 트랜지스터(411)에 입력된다.
(8) 입력 신호 r이 트랜지스터(406) 및 트랜지스터(412)에 입력된다.
(9) 입력 신호 en의 반전 신호가 트랜지스터(401) 및 트랜지스터(407)에 입력된다.
도 19는 실시예 3에 따른 기본 소자 A(500)를 도시하는 도면이다. 도 6의 기본 소자 A(100)가 2 입력 AND형인데 반하여, 기본 소자 A(500)는 2 입력 NAND형이다. 입력 신호는 x1, x2, r, en이다. 또한, 출력 z는,
z=(~((x1^r)&(x2^r))^r)&en
으로 된다. 기본 소자 A(100)의 경우와 마찬가지로, 입력 x1, x2는,
x1=xi^r, x2=xj^r
이다. 따라서, 입출력에 난수가 배타적 논리합되어 있다. 제어 신호 en에 근거하는 각 트랜지스터의 스위칭에 의해 단숨에 z가 출력된다. 이에 따라 기본 소자 A(100)와 마찬가지로, 소비 전력으로부터 비밀 정보를 특정하는 공격에 대항할 수 있다.
(1) 기본 소자 A(500)의 트랜지스터의 구성은, 도 19에 도시하는 바와 같이, 도 18의 기본 소자 A(400)와 동일하다. 다만, 각 트랜지스터에 입력하는 신호의 반전이 다르다.
(2) 입력 신호에 대하여 설명한다. 입력 신호 x1은 트랜지스터(502), 트랜지스터(504), 트랜지스터(508) 및 트랜지스터(510)에 입력된다.
(3) 입력 신호 x2는 트랜지스터(503), 트랜지스터(505), 트랜지스터(509) 및 트랜지스터(511)에 입력된다.
(4) 입력 신호 r은 트랜지스터(506) 및 트랜지스터(512)에 입력된다.
(5) 입력 신호 en의 반전 신호가 트랜지스터(501) 및 트랜지스터(507)에 입력된다.
도 20은 실시예 3에 따른 기본 소자 A(600)를 도시하는 도면이다. 도 6의 기본 소자 A(100)가 2 입력 AND형인데 반하여, 기본 소자 A(600)는 2 입력 NOR형이 다. 입력 신호는, x1, x2, r, en이다. 또한, 출력 z는,
「z=(~((x1^r)|(x2^r))^r)&en」으로 된다. 기본 소자 A(100)의 경우와 마찬가지로, 입력 x1, x2
x1=xi^r, x2=xj^r
이다. 따라서, 입출력에 난수가 배타적 논리합되어 있다. 제어 신호 en에 근거하는 각 트랜지스터의 스위칭에 의해 단숨에 z가 출력된다. 이에 따라 기본 소자 A(100)와 마찬가지로, 소비 전력으로부터 비밀 정보를 특정하는 공격에 대항할 수 있다.
(1) 기본 소자 A(600)의 트랜지스터의 구성은, 도 20에 도시하는 바와 같이, 도 18의 기본 소자 A(400)와 동일하다. 다만, 각 트랜지스터에 입력하는 신호의 반전의 유무가 상이하다.
(2) 입력 신호에 대하여 설명한다. 입력 신호 x1은 트랜지스터(602), 트랜지스터(604), 트랜지스터(608) 및 트랜지스터(610)에 입력된다.
(3) 입력 신호 x2는 트랜지스터(603), 트랜지스터(605), 트랜지스터(609)에 입력된다. 또한, 입력 신호 x2의 반전 신호가 트랜지스터(611)에 입력된다.
(4) 입력 신호 r의 반전 신호가 트랜지스터(606) 및 트랜지스터(612)에 입력된다.
(5) 입력 신호 en의 반전 신호가 트랜지스터(601) 및 트랜지스터(607)에 입 력된다.
도 21은 실시예 3에 따른 기본 소자 B(700)를 도시하는 도면이다. 도 6의 기본 소자 A(100)가 2 입력 AND형인데 반하여, 기본 소자 B(700)는 2 입력 XOR형이다. 입력 신호는 x1, x2, r, en이다. 또한, 출력 z는,
z=((x1^r)^(x2^r)^r)&en
으로 된다. 기본 소자 A(100)의 경우와 마찬가지로, 입력 x1, x2
x1=xi^r, x2=xj^r
이다. 따라서, 입출력에 난수가 배타적 논리합되어 있다. 제어 신호 en에 근거하는 각 트랜지스터의 스위칭에 의해 단숨에 z가 출력된다. 이에 따라, 기본 소자 A(100)와 마찬가지로, 소비 전력으로부터 비밀 정보를 특정하는 공격에 대항할 수 있다.
(1) 기본 소자 B(700)는 상부(721)와 하부(722)의 직렬 접속으로 구성된다. 상부(721)와 하부(722) 사이로부터 출력 신호 z가 출력된다.
(2) 인가부(719)에는 논리 「1」에 상당하는 전압이 인가된다.
(3) 인가부(719)에 논리 「1」에 상당하는 전압이 인가된 경우, 각 트랜지스터의 스위칭에 의해
z=((x1^r)^(x2^r)^r)&en
이 출력된다.
(4) 상부(721)는 트랜지스터(701)와 부분 회로(727)의 직렬 접속으로 구성된다. 트랜지스터(701)는, 한쪽 단부가 인가부(719)에 접속되고, 다른쪽 단부가 부분 회로(727)와 접속된다.
(5) 부분 회로(727)의 구성을 설명한다. 부분 회로(727)는, 트랜지스터(702)와 병렬 회로(723)의 직렬 접속과, 병렬 회로(724)와 트랜지스터(709)의 직렬 접속이 병렬로 접속되어 있다.
그리고, 병렬 회로(723)는, 트랜지스터(703)와 트랜지스터(704)의 직렬 접속과, 트랜지스터(705)와 트랜지스터(706)의 직렬 접속이 병렬로 접속되어, 병렬 회로를 구성하고 있다.
또한, 병렬 회로(724)는 트랜지스터(707)와 트랜지스터(708)가 병렬 회로를 구성하고 있다.
(6) 다음에, 하부(722)의 구성을 설명한다.
하부(722)는, 트랜지스터(710)와, 병렬 회로(725)와 트랜지스터(715)의 직렬 접속과, 병렬 회로(726)와 트랜지스터(718)의 직렬 접속이 병렬로 접속되어 있다. 그리고, 병렬 회로(725)는, 병렬 회로(723)와 마찬가지로, 트랜지스터(711)와 트랜지스터(712)의 직렬 접속과, 트랜지스터(713)와 트랜지스터(714)의 직렬 접속이 병렬로 접속되어 병렬 회로를 구성하고 있다. 병렬 회로(726)는, 병렬 회로(724)와 마찬가지로, 트랜지스터(716)와 트랜지스터(717)가 병렬 회로를 구성하고 있다.
(7) 다음에, 각 트랜지스터로의 입력 신호에 대하여 설명한다. 입력 신호 x1은 트랜지스터(703), 트랜지스터(707), 트랜지스터(711), 트랜지스터(716)에 입력된다. 또한, 입력 신호 x1의 반전 신호는 트랜지스터(705), 트랜지스터(713)에 입력된다. 입력 신호 x2는 트랜지스터(704), 트랜지스터(708), 트랜지스터(712), 트랜지스터(717)에 입력된다. 또한, 입력 신호 x2의 반전 신호는 트랜지스터(706), 트랜지스터(714)에 입력된다. 입력 신호 r은 트랜지스터(709), 트랜지스터(718)에 입력된다. 입력 신호 r의 반전 신호는 트랜지스터(702), 트랜지스터(715)에 입력된다. 입력 신호 en의 반전 신호는 트랜지스터(701), 트랜지스터(710)에 입력된다.
도 22는 실시예 3에 따른 기본 소자 A(800)를 도시하는 도면이다. 도 6의 기본 소자 A(100)가 2 입력 AND형인데 반하여, 기본 소자 A(800)는 3 입력 AND형이다. 입력 신호는 x1, x2, x3, r, en이다. 또한, 출력 z는
z=((x1^r)&(x2^r)&(x3^r)^r)&en
으로 된다. 기본 소자 A(100)의 경우와 마찬가지로, 입력 x1, x2, x3
x1=xi^r, x2=xj^r, x3=xk^r
이다. 따라서, 입출력에 난수가 배타적 논리합되어 있다. 제어 신호 en에 근거하는 각 트랜지스터의 스위칭에 의해 단숨에 z가 출력된다. 이에 따라, 기본 소자 A(100)와 마찬가지로, 소비 전력으로부터 비밀 정보를 특정하는 공격에 대항할 수 있다.
(1) 기본 소자 A(800)는 상부(819)와 하부(820)의 직렬 접속에 의해 구성되어 있다. 상부(819)와 하부(820) 사이로부터 출력 신호 z가 출력된다.
(2) 인가부(817)에는 논리 「1」에 상당하는 전압이 인가된다.
(3) 인가부(817)에 논리 「1」에 상당하는 전압이 인가된 경우, 각 트랜지스터의 스위칭에 의해
「z=((x1^r)&(x2^r)&(x3^r)^r)&en」
이 출력된다.
(4) 상부(819)는, 트랜지스터(801)와, 트랜지스터(802)와 트랜지스터(803)와 트랜지스터(804)에 의한 병렬 회로와, 트랜지스터(805)와 트랜지스터(806)와 트랜지스터(807)와의 직렬 접속과 트랜지스터(808)에 의한 병렬 회로와의 직렬 접속으로 구성된다.
(5) 하부(820)는, 트랜지스터(809)와, 트랜지스터(810)와 트랜지스터(811)와 트랜지스터(812)에 의한 직렬 접속과, 트랜지스터(813)와 트랜지스터(814)와 트랜지스터(815)와의 병렬 회로와 트랜지스터(816)에 의한 직렬 접속가 병렬로 접속되어, 병렬 회로를 구성하고 있다.
(6) 다음에, 각 트랜지스터로의 입력 신호에 대하여 설명한다. 기본 소자 A(800)에서는, 입력 신호인 x1, x2, x3, r, en이 모두 반전되어, 각 트랜지스터에 입력된다. 입력 신호 x1의 반전 신호는 트랜지스터(802), 트랜지스터(805), 트랜지스터(810), 트랜지스터(813)에 입력된다. 입력 신호 x2의 반전 신호는 트랜지스 터(803), 트랜지스터(806), 트랜지스터(811), 트랜지스터(814)에 입력된다. 입력 신호 x3의 반전 신호는 트랜지스터(804), 트랜지스터(807), 트랜지스터(812), 트랜지스터(815)에 입력된다. 입력 신호 r의 반전 신호는 트랜지스터(808), 트랜지스터(816)에 입력된다. 입력 신호 en의 반전 신호는 트랜지스터(801), 트랜지스터(809)에 입력된다.
도 23은, 소비 전력으로부터 비밀 정보를 특정하는 공격을 행한 경우의, 소비 전력의 시간 변화를 나타내는 그래프이다. 도 23은 기본 소자 A, 기본 소자 B을 이용하고 있지 않는, AND 회로, XOR 회로로 구성되는 회로에 대하여, 대책 전의 상태를 나타내고 있다. 도면에 도시하는 바와 같이, AND 연산 및 XOR 연산이 실행될 때에, 소비 전량의 피크가 출현하고 있다. 이 피크의 출현에 의해, 비밀 정보의 특정이 가능해진다.
도 24는 도 23에 대하여, 기본 소자 A, 기본 소자 B를 이용하여 대책을 행한 경우를 나타내고 있다. 도 23의 경우에 출현하고 있었던 피크가 소멸되어 있다. 이 피크의 소멸에 의해, 비밀 정보의 특정을 행하는 것은 불가능하게 된다.
도 1은 실시예 1에 있어서의 기본 소자 A의 처리를 설명하기 위한 편의적인 소자(20)를 도시하는 도면,
도 2는 실시예 1에 있어서의 회로(30)의 구성의 개략을 나타내는 블럭도,
도 3은 실시예 1에 있어서의 회로(30)의 동작을 나타내는 흐름도,
도 4는 실시예 1에 있어서의 회로(31)의 구성을 도시하는 도면,
도 5는 실시예 1에 있어서의 회로(30) 및 회로(31)의 각 층에서 이용하는 제어 신호의 타이밍을 나타낸 도면,
도 6은 실시예 1에 있어서의 기본 소자 A(100)를 도시하는 도면,
도 7은 실시예 1에 있어서의 기본 소자 A(100)의 진리값표를 나타내는 도면,
도 8a는 2 입력 AND 게이트를 도시하는 도면,
도 8b는 2 입력 AND 게이트의 진리값표,
도 8c는 2 입력 AND 게이트의 신호 천이율을 설명하는 도면,
도 9a는 2 입력 AND 게이트를 도시하는 도면,
도 9b는 2 입력 AND 게이트의 진리값표,
도 9c는 2 입력 AND 게이트의 과도 천이와 신호 천이율과의 관계를 설명하는 도면,
도 10a는 실시예 1에 있어서의 기본 소자 A(100)의 입출력을 나타내는 도면,
도 10b는 실시예 1에 있어서의 기본 소자 A(100)의 진리값표를 나타내는 도면,
도 10c는 실시예 1에 있어서의 기본 소자 A(100)의 입력 신호의 변화와 출력 신호 z와의 관계를 나타내는 도면,
도 11은 기본 소자 A(100)와 논리적으로 등가인 회로를 도시하는 도면,
도 12a는 DES 알고리즘으로 정의되는 S1 테이블의 입출력을 나타내는 도면,
도 12b는 S1 테이블의 내용을 나타내는 도면,
도 12c는 입력값과 출력값의 일례를 나타내는 도면,
도 13은 S1 테이블의 1째줄을 등가 변형한 식을 나타내는 도면,
도 14는 도 13에 나타내는 식을 실시하는 회로 구성을 도시하는 도면,
도 15는 실시예 2에 있어서의 LUT(200)를 도시하는 도면,
도 16은 실시예 2에 있어서의 2 입력의 기본 소자를 조합시켜 구성하는 회로를 도시하는 도면,
도 17은 실시예 3에 있어서의 기본 소자 A(300)를 도시하는 도면,
도 18은 실시예 3에 있어서의 기본 소자 A(400)를 도시하는 도면,
도 19는 실시예 3에 있어서의 기본 소자 A(500)를 도시하는 도면,
도 20은 실시예 3에 있어서의 기본 소자 A(600)를 도시하는 도면,
도 21은 실시예 3에 있어서의 기본 소자 B(700)를 도시하는 도면,
도 22는 실시예 3에 있어서의 기본 소자 A(800)를 도시하는 도면,
도 23은 대책 전에 있어서 소비 전력으로부터 비밀 정보를 특정하는 공격을 행한 경우의, 소비 전력의 시간 변화를 나타내는 그래프,
도 24는 대책 후에 있어서 소비 전력으로부터 비밀 정보를 특정하는 공격을 행한 경우의, 소비 전력의 시간 변화를 나타내는 그래프이다.
부호의 설명
1 : 입력 데이터 X 2 : 선택기
3 : 난수 발생기 4, 5 : 배타적 논리합
6 : 비선형 변환 S1 7 : 선형 변환 L2
8 : 제어 회로 9 : 타이밍 생성 회로 TG
10 : 타이밍 제어 회로 TC 11 : AND 게이트
12 : 배타적 논리합 13, 14 : 레지스터
20 : 소자 21, 22 : XOR
23, 24 : AND 게이트 25 : 출력점
26 : 제어 신호 en 27 : XOR
30 : 회로 31 : 회로
40 : AND 게이트 100 : 기본 소자 A
101~112 : 트랜지스터 113 : 인가부
114 : 접지 115 : 상부
116 : 하부 200 : LUT
201~230 : 브랜치 250 : 입력부
260 : SRAM 270 : 데이터 열
280 : 패스 트랜지스터 291, 292 : LUT
300 : 기본 소자 A 400 : 기본 소자 A
401~412 : 트랜지스터 413 : 인가부
414 : 접지 415 : 상부
416 : 하부 417 : 부분 회로
500 : 기본 소자 A 501~512 : 트랜지스터
600 : 기본 소자 A 601~612 : 트랜지스터
700 : 기본 소자 B 701~718 : 트랜지스터
719 : 인가부 720 : 접지
721 : 상부 722 : 하부
723 : 병렬 회로 724, 725, 726 : 병렬 회로
727 : 부분 회로 800 : 기본 소자 A
801~816 : 트랜지스터 817 : 인가부
818 : 접지 819 : 상부
820 : 하부

Claims (16)

  1. 삭제
  2. n(n≥1) 비트의 데이터에 n 비트의 제 1 난수가 배타적 논리합된 데이터를 나타내는 XOR 데이터와, n 비트의 제 1 난수와, 1 비트의 제 2 난수를 입력 신호로서 입력받아, XOR 데이터와 제 1 난수의 배타적 논리합에 의해 n 비트의 데이터를 산출하고, 산출한 n 비트의 데이터의 각 비트를 이용해서 소정의 논리 연산을 실행하여, 실행한 논리 연산의 결과와 제 2 난수의 배타적 논리합을 출력 신호로서 출력하는 것을 특징으로 하는 전자 소자.
  3. 제 2 항에 있어서,
    상기 제 1 난수는 n 비트의 각 비트가 동일한 값이고,
    상기 제 2 난수는 상기 제 1 난수의 각 비트의 값과 동일한 값인 것
    을 특징으로 하는 전자 소자.
  4. 제 2 항에 있어서,
    상기 전자 소자는, 입력 신호의 상태 천이가 완료된 경우에, 처리를 실행하여 출력 신호를 출력하는 것을 특징으로 하는 전자 소자.
  5. 제 2 항에 있어서,
    상기 전자 소자는, 출력 신호의 출력을 지령하는 지령 신호를 더 입력받고, 또한, 지령 신호를 더 입력받은 경우에, 출력 신호를 출력하는 것을 특징으로 하는 전자 소자.
  6. 제 2 항에 있어서,
    상기 소정의 논리 연산은 논리곱(AND), 부정 논리곱(NAND), 논리합(OR), 부정 논리합(NOR), 배타적 논리합(XOR) 중 어느 하나인 것을 특징으로 하는 전자 소자.
  7. 복수의 트랜지스터로 구성되고, 제 1 난수, 제 2 난수 및 n 비트(n≥1)의 데이터를 입력받아 소정의 신호를 출력 신호로서 출력하는 전자 소자에 있어서,
    제 1 난수, 제 2 난수 및 n 비트의 데이터를 입력받은 경우에,
    제 1 난수와 n 비트의 데이터의 배타적 논리합을 실행하여 배타적 논리합의 실행 결과를 나타내는 각 비트를 이용해서 소정의 논리 연산을 행하여 소정의 논리 연산의 결과와 제 2 난수의 배타적 논리합을 실행함으로써 얻어지는 결과와 등가인 결과를 나타내는 출력 신호를 복수의 트랜지스터의 스위칭에 의해 출력하는 것
    을 특징으로 하는 전자 소자.
  8. 제 7 항에 있어서,
    상기 제 1 난수는 각 비트가 동일한 값인 n 비트의 난수이고,
    상기 제 2 난수는 상기 제 1 난수의 각 비트의 값과 동일한 값인 1 비트의 난수인 것
    을 특징으로 하는 전자 소자.
  9. 제 7 항에 있어서,
    상기 전자 소자는 상기 복수의 트랜지스터의 스위칭을 동시에 행하는 것을 특징으로 하는 전자 소자.
  10. 제 7 항에 있어서,
    상기 전자 소자는, 출력 신호의 출력을 지령하는 지령 신호를 입력받고, 또한, 지령 신호를 입력받은 경우에, 출력 신호를 출력하는 것을 특징으로 하는 전자 소자.
  11. 제 1 난수, 제 2 난수 및 n 비트(n≥1)의 데이터를 입력받아 소정의 신호를 출력 신호로서 출력하는 전자 소자에 있어서,
    제 1 난수, 제 2 난수 및 n 비트의 데이터를 입력받는 입력부와,
    0과 1에 의해 구성되는 논리 데이터를 저장하는 저장부와,
    상기 입력부가 제 1 난수, 제 2 난수 및 n 비트의 데이터를 입력받은 경우에, 제 1 난수와 n 비트의 데이터의 배타적 논리합을 실행하여 배타적 논리합의 실행 결과를 나타내는 각 비트를 이용해서 소정의 논리 연산을 행하여 소정의 논리 연산의 결과와 제 2 난수의 배타적 논리합을 실행함으로써 얻어지는 결과와 등가인 결과를 스위칭에 의해 상기 저장부가 저장한 논리 데이터로부터 취득하여 출력 신호로서 출력하는 복수의 트랜지스터
    를 구비한 것을 특징으로 하는 전자 소자.
  12. 제 11 항에 있어서,
    상기 제 1 난수는 각 비트가 동일한 값인 n 비트의 난수이고,
    상기 제 2 난수는 상기 제 1 난수의 각 비트의 값과 동일한 값인 1 비트의 난수인 것
    을 특징으로 하는 전자 소자.
  13. 제 11 항에 있어서,
    상기 복수의 트랜지스터는 스위칭을 동시에 행하는 것을 특징으로 하는 전자 소자.
  14. 제 11 항에 있어서,
    상기 입력부는 출력 신호의 출력을 지령하는 지령 신호를 더 입력받고,
    상기 전자 소자는, 지령 신호를 입력받은 경우에, 출력 신호를 출력하는 것
    특징으로 하는 전자 소자.
  15. 삭제
  16. n 비트의 데이터에 n 비트의 제 1 난수가 배타적 논리합된 데이터를 나타내는 XOR 데이터와, n 비트의 제 1 난수와, 1 비트의 제 2 난수를 입력 신호로서 입력받아, XOR 데이터와 제 1 난수의 배타적 논리합에 의해 n 비트의 데이터를 산출하고, 산출한 n 비트의 데이터의 각 비트를 이용해서 소정의 논리 연산을 실행하여, 실행한 논리 연산의 결과와 제 2 난수의 배타적 논리합을 출력 신호로서 출력하는 것을 특징으로 하는 데이터 처리 방법.
KR1020067025939A 2006-12-08 2006-07-07 전자 소자 및 데이터 처리 방법 KR100861841B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020067025939A KR100861841B1 (ko) 2006-12-08 2006-07-07 전자 소자 및 데이터 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020067025939A KR100861841B1 (ko) 2006-12-08 2006-07-07 전자 소자 및 데이터 처리 방법

Publications (2)

Publication Number Publication Date
KR20070022726A KR20070022726A (ko) 2007-02-27
KR100861841B1 true KR100861841B1 (ko) 2008-10-07

Family

ID=41649600

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067025939A KR100861841B1 (ko) 2006-12-08 2006-07-07 전자 소자 및 데이터 처리 방법

Country Status (1)

Country Link
KR (1) KR100861841B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101135056B1 (ko) * 2009-12-04 2012-04-13 고려대학교 산학협력단 전력 분석 공격을 대비한 스위칭 로직
KR101637819B1 (ko) 2015-03-20 2016-07-07 현대자동차주식회사 자동차용 afs 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6820814B1 (en) 1999-03-08 2004-11-23 Gegemplus Countermeasure method in an electric component using a secret key cryptographic algorithm

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6820814B1 (en) 1999-03-08 2004-11-23 Gegemplus Countermeasure method in an electric component using a secret key cryptographic algorithm

Also Published As

Publication number Publication date
KR20070022726A (ko) 2007-02-27

Similar Documents

Publication Publication Date Title
JP4687775B2 (ja) 暗号処理装置
US7898283B1 (en) Lightweight secure physically unclonable functions
JP4453697B2 (ja) 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
Shahbazi et al. Area-efficient nano-AES implementation for Internet-of-Things devices
US9325494B2 (en) Method for generating a bit vector
KR20120098679A (ko) 다양한 회로 토폴러지를 가지는 고활용도 범용 로직 배열 및 상수 전력 서명을 가지는 다양한 로직 게이트를 실현하기 위한 물류 지도 회로
KR100585119B1 (ko) 암호화 장치, 암호화 방법 및 그 기록매체
US9166795B2 (en) Device and method for forming a signature
JP4589327B2 (ja) 電子素子及びデータ処理方法
US20090204656A1 (en) Pseudo random number generator and method for generating a pseudo random number bit sequence
Dofe et al. Dsd: a dynamic state-deflection method for gate-level netlist obfuscation
KR100861841B1 (ko) 전자 소자 및 데이터 처리 방법
KR100735953B1 (ko) 일련 번호 생성 장치, 그 방법 및 컴퓨터 판독가능 저장매체
Masoumi et al. Design and evaluation of basic standard encryption algorithm modules using nanosized complementary metal–oxide–semiconductor–molecular circuits
US8750497B2 (en) Cryptographic device for implementing S-box
Harshitha et al. High Performance Advanced Encryption Standard system using Secure Double Rate Registers
Punia et al. Speed Optimization of the AES Algorithm Using Pipeline Hardware Architecture
Amiri et al. QCA implementation of A5/1 stream cipher
Amiri et al. A5/1 implementation in quantum cellular automata
JP4849140B2 (ja) データ変換装置、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
Huang et al. A delay-based PUF design using multiplexer chains
Lima et al. Enhancing Side Channel Attack-Resistance of the STTL Combining Multi-Vt Transistors with Capacitance and Current Paths Counterbalancing
Likhithashree et al. Design of Power-Efficient Ring Oscillator based Physically Unclonable Functions for FPGA
Puczko et al. Stream cipher keys generation with low power consumption based on LFSR
Tena-Sánchez et al. Secure cryptographic hardware implementation issues for high-performance applications

Legal Events

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

Payment date: 20120907

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130903

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160831

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170830

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180920

Year of fee payment: 11