KR20060097309A - 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치 - Google Patents

여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치 Download PDF

Info

Publication number
KR20060097309A
KR20060097309A KR1020050018429A KR20050018429A KR20060097309A KR 20060097309 A KR20060097309 A KR 20060097309A KR 1020050018429 A KR1020050018429 A KR 1020050018429A KR 20050018429 A KR20050018429 A KR 20050018429A KR 20060097309 A KR20060097309 A KR 20060097309A
Authority
KR
South Korea
Prior art keywords
point
check
input
equation
parameters
Prior art date
Application number
KR1020050018429A
Other languages
English (en)
Other versions
KR100817048B1 (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 KR1020050018429A priority Critical patent/KR100817048B1/ko
Priority to DE102006011208A priority patent/DE102006011208A1/de
Priority to US11/367,303 priority patent/US20060274894A1/en
Publication of KR20060097309A publication Critical patent/KR20060097309A/ko
Application granted granted Critical
Publication of KR100817048B1 publication Critical patent/KR100817048B1/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/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

Abstract

여러 가지 포인트 표현을 기반으로 한 ECC에서 DFA 대책을 위한 암호화 방법 및 장치가 개시된다. 상기 암호화 방법 및 장치는, "Weierstrass"와 "Hessian"의 형태로 구현될 수 있고, 포인트 표현에 있어서, "Affine", "Ordinary Projective", "Jacobian Projective" 및 "Lopez-Dahab Projective"가 사용되었다. 상기 암호화 방법 및 장치는, 최종 암호화 결과를 출력하기 전에, DFA 공격에 의한 기초 포인트에서의 오류, 정의(definition) 필드들에서의 오류, 및 EC 파라메터에서의 오류를 체크하여 기밀 정보의 유출을 방지할 수 있다.

Description

여러 가지 포인트 표현을 기반으로 한 ECC에서 DFA 대책을 위한 암호화 방법 및 장치{Method and apparatus of Different Faults Analysis(DFA) countermeasure based on different point representation for Elliptic Curve Cryptography(ECC)}
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 일반적인 암호화 장치를 나타내는 블록도이다.
도 2는 스칼라 곱의 연산 구성을 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 암호화 방법을 나타내는 흐름도이다.
도 4는 도 3을 실현하는 암호화 장치의 일실시예이다.
도 5는 도 3을 실현하는 암호화 장치의 다른 실시예이다.
도 6은 도메인 체크부를 설명하기 위한 도면이다.
도 7은 포인트 체크를 위한 장치의 다른 실시예이다.
도 8은 GF(p)에서 Weierstrass Affine(WA) 좌표계에 대한 포인트 체크부의 구체적인 블록도이다.
도 9는 GF(p)에서 Weierstrass Ordinary Projective(WP) 좌표계에 대한 포인트 체크부의 구체적인 블록도이다.
도 10은 GF(p)에서 Weierstrass Jacobian Projective(WJ) 좌표계에 대한 포인트 체크부의 구체적인 블록도이다.
도 11은 GF(p)에서 Weierstrass Lopez-Dahab Projective(WL) 좌표계에 대한 포인트 체크부의 구체적인 블록도이다.
도 12는 GF(2n)에서 Weierstrass Affine(WA) 좌표계에 대한 포인트 체크부의 구체적인 블록도이다.
도 13은 GF(2n)에서 Weierstrass Ordinary Projective(WP) 좌표계에 대한 포인트 체크부의 구체적인 블록도이다.
도 14는 GF(2n)에서 Weierstrass Jacobian Projective(WJ) 좌표계에 대한 포인트 체크부의 구체적인 블록도이다.
도 15는 GF(2n)에서 Weierstrass Lopez-Dahab Projective(WL) 좌표계에 대한 포인트 체크부의 구체적인 블록도이다.
도 16은 Hessian Affine(HA) 좌표계에 대한 포인트 체크부의 구체적인 블록도이다.
도 17은 Hessian Ordinary Projective(HP) 좌표계에 대한 포인트 체크부의 구체적인 블록도이다.
도 18은 본 발명의 다른 실시예에 따른 암호화 방법을 나타내는 흐름도이다.
본 발명은 하드웨어 암호화 장치(cryptographic apparatus)에 관한 것으로, 특히 ECC(Elliptic Curve Cryptography:타원 곡선 암호화)에서 DFA(Different Faults Analysis:오류 기반 해독) 대책을 위한 암호화 방법 및 장치에 관한 것이다.
현대의 기밀(confidential) 데이터 통신의 문제를 해결하기 위하여, 잘 알려져 있는 암호화 알고리즘에 기반한 하드웨어 암호화 시스템들이 널리 사용되고 있고, 계속적인 성능 향상 요구를 만족시키도록 하고 있다. 암호화 알고리즘으로서, RSA, ECC등과 같은 공개키 알고리즘 뿐만 아니라 DES(Data Encryption Standard), AES(Advanced Encryption Standard)와 같은 대칭키 알고리즘이 잘 알려져 있다.
그러나, 하드웨어-중심적인 암호화 시스템의 개발과 함께, SCA(Side-Channel Analysis)와 같은 새로운 암호-해독 방법들도 나타났다. 이러한 공격(attack) 방법들에는 많은 다양한 기술들이 나타나고 있으나, 가장 일반적인 것으로는, 타이밍 해독(Timing Analysis), 파워 해독(Power Analysis), 전자기 해독(Electro-Magnetic Analysis) 및 오류 해독(Different Fault Analysis:DFA) 등이 있다. 이와 같은 방법들은 암호화 시스템에 성공적으로 공격하여 적은 시간과 노력으로 비밀 키(secrete key)를 획득할 수 있는 것으로 알려져 있다.
따라서, 위와 같은 SCA에 대책을 위한 개발들이 향후 중요한 과제이다. SCA 기술들 중에서 가장 강력하고 위험한 것은 DFA이다. 그러나, ECC는 상대적으로 새 로운 방법의 암호화 기술로서, 데이터 보호 시스템에 가장 위험한 DFA에 대책을 마련한 논문이나 특허가 아직 미흡한 실정이다.
도 1은 일반적인 암호화 장치(100)를 나타내는 블록도이다. 도 1을 참조하면, 상기 암호화 장치(100)는 스칼라 곱 유니트(scalar multiplication unit)(110)와 비교 및 출력부(comparing and outputting unit)(120)를 포함한다. 상기 스칼라 곱 유니트(110)는 병렬 ECC 연산부들(112,113)을 구비한다. 상기 ECC 연산부들(112,113)은 각각 비밀 키를 이용하여 ECC 알고리즘에 따라 입력 포인트 P와의 스칼라 곱 연산을 수행하여 암호화된 출력 포인트들을 생성한다. 이때, 상기 비교 및 출력부(120)는 상기 ECC 연산부들(112,113)에서 생성되는 출력 포인트들이 동일한지를 체크하고, 만일 동일하다면 상기 출력 포인트들 중 어느 하나 Q를 후속 프로세서로 전달하고, 그렇지 않다면 상기 암호화된 출력 포인트들이 출력되지 않도록한다. 즉, 암호화를 위한 스칼라 곱 연산의 수행 중에 오류(fault)가 발생하면 2개의 ECC 연산부들(112,113) 각각에서 생성되는 암호화된 출력 포인트는 서로 다르게 되고, 이때에는 기밀 정보의 유출을 방지하기 위해 해당 암호화된 출력 포인트가 후속 프로세서로 전송되지 않는다. 이와 유사한 암호화 장치에 대하여 유럽 특허, "DE10,258,178"에 잘 나타나 있다.
그러나, 상기 일반적인 암호화 장치(100)를 가지는 스마트 카드와 같은 암호화 시스템에 대하여, 암호 해독자(cryptanalyst)가 스칼라 곱 계산 과정 중에, 파워 글리치(power glitches), 전자기 또는 광학적 영향과 같은 오류를 무단히 발생시켜 병렬 ECC 연산부들에서 생성되는 암호화된 출력 포인트들을 동일하게 만들고, 이때 출력될 수 있는 오류가 있는 출력 포인트를 해독하여 시스템에 사용된 비밀 키를 획득할 수 있을지 모른다. 암호 해독자는 일반적으로 일시적이거나 영구적인(transient or permanent) 오류를 일으킬 수 있다. 예를 들어, 일시적인 오류들은 파라메터(parameter) 전달 중에 발생할 수 있고, 영구적인 오류들은 시스템 파라메터의 어느 위치에라도 발생할 수 있다. 다양한 EC(Elliptic Curve) 포인트 표현에 대하여, 계산 과정 중에 공격될 수 있는 오류에는 3 가지, 즉, 기초 포인트(base point) P에서의 오류, 입력 포인트 P의 정의(definition) 필드들에서의 오류, 및 EC 파라메터(parameter)에서의 오류 등이 고려되어 왔다. 이와 같은 DFA 공격에 대비하기 위한 도 1과 같은 일반적인 암호화 장치는, 반복적인 계산에 의하여 비용 뿐만아니라 상당한 성능 저하가 문제이며, 이로 인하여 실제 수많은 응용에서 사용되기에 부적합하다는 문제점이 있다.
따라서, 본 발명이 이루고자하는 기술적 과제는, 여러 가지 포인트 표현을 기반으로 한 ECC에 있어서, 기초 포인트에서의 오류, 정의(definition) 필드들에서의 오류, 및 EC 파라메터에서의 오류 등에 의한 DFA 공격에 대책을 위한 새로운 암호화 방법을 제공하는 데 있다.
본 발명이 이루고자하는 다른 기술적 과제는, 상기 암호화 방법을 하드웨어로 구현하기 위한 암호화 장치를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한 본 발명의 일면에 따른 암호화 방법은, EC(Elliptic Curve) 도메인 파라메터들, 이진 체크 코드, 입력 포인트, 및 비밀 키를 수신하는 단계; 상기 EC 도메인 파라메터들에 의하여 계산되는 값과 이진 체크 코드가 같은지 아닌지를 체크하는 단계; 상기 입력 포인트가 EC 상에 존재하는지 아닌지를 체크하는 단계; 상기 입력 포인트와 상기 비밀 키로부터, 상기 EC 도메인 파라메터들을 이용하여 스칼라 곱의 수행으로 암호화된 출력 포인트를 생성하는 단계; 상기 암호화된 출력 포인트가 EC 상에 존재하는지 아닌지를 체크하는 단계; 및 상기 EC 도메인 파라메터들에 의하여 계산되는 값과 상기 이진 체크 코드가 같고 상기 입력 포인트 및 상기 암호화된 출력 포인트가 EC 상에 존재하는 경우에 상기 암호화된 출력 포인트를 출력하고, 그렇지 않으면 출력하지 않는 단계를 구비하는 것을 특징으로 한다.
상기의 기술적 과제를 달성하기 위한 본 발명의 다른 일면에 따른 암호화 방법은, EC 도메인 파라메터들, 이진 체크 코드, 제1 입력 포인트 및 비밀 키를 수신하는 단계; 상기 EC 도메인 파라메터들과 이진 체크 코드를 이용하여 제2 입력 포인트를 생성하는 단계; 상기 제2 입력 포인트와 상기 비밀 키로부터, 상기 EC 도메인 파라메터들을 이용하여 스칼라 곱의 수행으로 암호화된 출력 포인트를 생성하는 단계; 상기 제1 입력 포인트와 상기 EC 도메인 파라메터들 및 상기 이진 체크 코드로부터 재추정되는 제2 입력 포인트가 같은지 아닌지를 나타내는 제1 정보 신호를 생성하는 단계; 상기 암호화된 출력 포인트가 EC 상에 존재하는지 아닌지를 나타내는 제2 정보 신호를 생성하는 단계; 및 상기 제1 정보 신호, 상기 제2 정보 신호 및 상기 암호화된 출력 포인트를 XOR 연산하여 출력하는 단계를 구비하는 것을 특 징으로 한다.
상기의 다른 기술적 과제를 달성하기 위한 본 발명의 일면에 따른 암호화 장치는, 스칼라 곱 유니트, 도메인 체크부, 및 포인트 체크부를 구비하는 것을 특징으로 한다.
상기 스칼라 곱 유니트는 입력 포인트와 비밀 키를 수신하여, EC(Elliptic Curve) 도메인 파라메터들을 이용한 스칼라 곱의 수행으로 암호화된 출력 포인트를 생성한다. 상기 도메인 체크부는 상기 EC 도메인 파라메터들에 의하여 계산되는 값과 이진 체크 코드가 같은지 아닌지를 체크한다. 상기 포인트 체크부는 상기 입력 포인트 및 상기 암호화된 출력 포인트가 EC 상에 존재하는지 아닌지를 체크한다. 이때, 상기 EC 도메인 파라메터들에 의하여 계산되는 값과 이진 체크 코드가 같고 상기 입력 포인트 및 상기 암호화된 출력 포인트가 EC 상에 존재하는 경우에 상기 암호화된 출력 포인트를 출력하고, 그렇지 않으면 출력하지 않는 것을 특징으로 한다.
상기의 다른 기술적 과제를 달성하기 위한 본 발명의 다른 일면에 따른 암호화 장치는, 스칼라 곱 계산 회로, 입력 포인트 계산 회로, 도메인 체크 회로 및 출력 회로를 구비하는 것을 특징으로 한다.
상기 입력 포인트 계산 회로는 EC 도메인 파라메터들 및 제1 입력 포인트의 함수인 이진 체크 코드를 이용하여 제2 입력 포인트를 생성한다. 상기 스칼라 곱 계산 회로는 상기 제2 입력 포인트와 비밀 키를 수신하여, 상기 EC 도메인 파라메터들을 이용한 스칼라 곱의 수행으로 암호화된 출력 포인트를 생성한다. 상기 도메 인 체크 회로는 상기 제1 입력 포인트와 상기 EC 도메인 파라메터들 및 상기 이진 체크 코드로부터 추정되는 제2 입력 포인트가 같은지 아닌지를 나타내는 제1 정보 신호를 생성한다. 상기 출력 회로는 상기 암호화된 출력 포인트가 EC 상에 존재하는지 아닌지를 나타내는 제2 정보 신호를 생성하고, 상기 제1 정보 신호, 상기 제2 정보 신호 및 상기 암호화된 출력 포인트를 XOR 연산하여 출력한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
타원 곡선(EC) E는 "Weierstrass Affine" 형태에서의 타원 곡선 방정식 [수학식 1]을 만족하는 점들 (x,y)의 집합(set)이다.
[수학식 1]
Figure 112005011814419-PAT00001
암호화 응용에서, 타원 곡선은 소수 유한 필드(prime finite field) GF(p) 또는 이진 유한 필드(binary finite field) GF(2n) 상에서 이용될 수 있다. GF()는 갈로아 필드(Galois Field)를 나타내고, 소수 유한 필드는 소수개의 원소를 가지는 필드이며, 이진 유한 필드는 2n개의 원소를 가지는 필드이다.
만일, p가 홀수이며 소수일 때, p 개의 원소를 가지는 유일한(unique) 필드 GF(p)가 존재한다. 소수 유한 필드에 대하여, 상기 [수학식 1]은 [수학식 2]와 같이 변경될 수 있다.
[수학식 2]
Figure 112005011814419-PAT00002
또한, n≥1일 때, 2n개의 원소를 가지는 유일한 필드 GF(2n)가 존재한다. 이진 유한 필드에 대하여, 상기 [수학식 1]은 [수학식 3]과 같이 변경될 수 있다.
[수학식 3]
Figure 112005011814419-PAT00003
EC 상에서 포인트 덧셈 연산(point addition operation)과, 그 중 특정한 경우인 포인트 이배 연산(point doubling operation)이 다음과 같이 이루어진다. 예를 들어, 두 개의 포인트 P(x1,y1) 및 Q(x2, y2)에서, R = P + Q = (x3, y3)을 얻기 위하여, GP(p) 상에서 [수학식 4]와 같은 유한 필드 연산들이 요구된다.
[수학식 4]
Figure 112005011814419-PAT00004
포인트 이배 연산인 경우(P=Q)에는, GP(p) 상에서 [수학식 5]와 같은 유한 필드 연산들이 요구된다.
[수학식 5]
Figure 112005011814419-PAT00005
[수학식 4] 및 [수학식 5]는 이진 유한 필드 GF(2n) 상에서, [수학식 6] 및 [수학식 7]과 같다.
[수학식 6]
Figure 112005011814419-PAT00006
[수학식 7]
Figure 112005011814419-PAT00007
한편, ECC에서의 메인(main) 연산은 Q = kㆍP = P + P + ... + P(k times)을 계산하는 스칼라 포인트 곱(scalar point multiplication)이다. k는 비밀 키이다. 도 2의 구성(hierarchy)과 같이, 스칼라 포인트 곱은 위의 수학식들과 같이 유한 필드 연산들을 기반으로 한 포인트 연산들, ff_mul(multiplication in finite field), ff_add(addition in finite field), ff_sqr(square in finite field)로 이루어진다. 이와 관련된 이산 대수(discrete logarithm) 연산에서는, P와 Q=kㆍP로부터 k를 계산한다.
한편, 위와 같은 "Affine" 표현 이외에도, 타원 곡선 상의 포인트(점)를 나타내는 여러 가지 표현들이 있다. 예를 들어, "Ordinary Projective", "Jacobian Projective" 및 "Lopez-Dahab Projective" 등이다. 이들 각각은 일정 공격에 더 강하거나 더 좋은 성능을 발휘할 수 있고, 시스템에 따라서 구현 상의 용이성에 차이가 있다.
먼저, GF(p) 상의 "Ordinary Projective" 좌표계(coordinates)에서, [수학식 1]은 [수학식 8]과 같이 변형(transform)될 수 있다. [수학식 1]과 [수학식 8] 사이의 관계는 [수학식 9]와 같이 나타낼 수 있다.
[수학식 8]
Y2Z = X3 + aXZ2 + bZ3
[수학식 9]
Figure 112005011814419-PAT00008
GF(p) 상의 "Jacobian Projective" 좌표계에서, [수학식 1]은 [수학식 10]과 같이 변형될 수 있다. [수학식 1]과 [수학식 10] 사이의 관계는 [수학식 11]와 같이 나타낼 수 있다.
[수학식 10]
Y2 = X3 + aXZ4 + bZ6
[수학식 11]
Figure 112005011814419-PAT00009
GF(p) 상의 "Lopez-Dahab Projective" 좌표계에서, [수학식 1]은 [수학식 12]과 같이 변형될 수 있다. [수학식 1]과 [수학식 12] 사이의 관계는 [수학식 13] 와 같이 나타낼 수 있다.
[수학식 12]
Y2 = X3Z + aXZ3 + bZ4
[수학식 13]
Figure 112005011814419-PAT00010
GF(2n) 상의 "Ordinary Projective" 좌표계에서, [수학식 1]은 [수학식 14]와 같이 변형될 수 있다. [수학식 1]과 [수학식 14] 사이의 관계는 [수학식 15]와 같이 나타낼 수 있다.
[수학식 14]
Y2Z + XYZ = X3 + aX2Z + bZ3
[수학식 15]
Figure 112005011814419-PAT00011
GF(2n) 상의 "Jacobian Projective" 좌표계에서, [수학식 1]은 [수학식 16] 과 같이 변형될 수 있다. [수학식 1]과 [수학식 16] 사이의 관계는 [수학식 17]과 같이 나타낼 수 있다.
[수학식 16]
Y2 + XYZ = X3 + aX2Z2 + bZ6
[수학식 17]
Figure 112005011814419-PAT00012
GF(2n) 상의 "Lopez-Dahab Projective" 좌표계에서, [수학식 1]은 [수학식 18]과 같이 변형될 수 있다. [수학식 1]과 [수학식 18] 사이의 관계는 [수학식 19]와 같이 나타낼 수 있다.
[수학식 18]
Y2 + XYZ = X3Z + aX2Z2 + bZ4
[수학식 19]
Figure 112005011814419-PAT00013
위와 같은 타원 곡선 표현의 "Weierestrass" 형태는 암호화 응용에서 가장 널리 사용되고 있지만, 최근에는 "Hessian" 형태가 사용되기도 한다. 이는 병렬화가 가능한 특징을 가지며, SCA에 대비한 구현에 일정 잇점을 가질 수 있다. "Hessian Affine" 좌표계에서, [수학식 1]은 [수학식 20]과 같이 변형될 수 있다. "Hessian" 형태와 "Weierestrass" 형태 사이의 관계는 [수학식 21]와 같이 나타낼 수 있다. [수학식 1]과 [수학식 21] 사이의 어느 하나의 형태에서 다른 형태로 변형을 위해서는 [수학식 22]와 같은 규칙이 적용된다.
[수학식 20]
E : u3 + v3 + 1 = Duv, D∈K, D3≠1
[수학식 21]
Figure 112005011814419-PAT00014
[수학식 22]
Figure 112005011814419-PAT00015
"Hessian Ordinary Projective" 좌표계에서, [수학식 1]은 [수학식 23]과 같 이 변형될 수 있다. "Hessian" 형태에서 "Affine" 좌표계와 "Ordinary Projective" 좌표계 사이의 관계는 [수학식 24]와 같이 "Weierestrass" 형태에서와 유사하다.
[수학식 23]
U3 + V3 + W3 = DUVW, D∈K, D3≠1
[수학식 24]
Figure 112005011814419-PAT00016
암호 해독자(cryptanalyst)는 스칼라 곱 계산 과정 중에, 파워 글리치(power glitches), 전자기 또는 광학적 영향과 같은 오류를 무단히 발생시켜 오류가 있는 출력 데이터를 해독하여 시스템에 사용된 비밀 키를 획득할 수 있을지 모른다. 다양한 EC 포인트 표현에 대하여, 계산 과정 중에 공격될 수 있는 오류에는 3 가지, 즉, 기초 포인트(base point)에서의 오류, 여러가지 정의된(definition) 필드들에서의 오류, 및 EC 파라메터에서의 오류 등이 고려되어 왔다.
본 발명에서는, 이와 같은 DFA 공격 오류로서 존재할 수 있는 일시적이거나 영구적인(transient or permanent) 오류들에 의하여, 기밀 정보가 유출되지 않도록 방지할 수 있는 대책을 제안한다.
위와 같은 3가지 DFA 공격 또는 이들의 조합에 의한 공격에 대비하기(counter) 위하여, 본 발명에서는 4가지 기본 체크 동작을 수행한다. 즉, 입력시( 스칼라 곱 연산 이전)의 EC 도메인(domain) 파라메터들의 체크와 입력 포인트 P의 체크, 및 출력시(스칼라 곱 연산 이후)의 EC 도메인 파라메터들의 체크와 암호화된 출력 포인트 Q= kㆍP의 체크가 그것이다. 도 3을 참조하여, 좀더 자세히 설명한다.
본 발명의 일실시예에 따라 입력 포인트 P를 암호화하기 위하여 스칼라 곱을 연산하는 계산 흐름도가 도 3에 도시되어 있다. 도 3을 참조하면, 먼저, 스칼라 곱 유니트(도 4의 420)는 EC 도메인 파라메터들, 및 이진 체크 코드(binary check code:BCC)를 보호된(protected) 비휘발성 메모리(도 4의 440)로부터 수신한다(S11). 여기서, 도메인 파라메터들은 GF(p)의 경우에 a,b,p이고, GF(2n)의 경우에 a,b,n이다. S12 단계에서는, 도메인 체크부(도 4의 430)에서 상기 EC 도메인 파라메터들에 의하여 계산되는 값 a
Figure 112005011814419-PAT00017
b
Figure 112005011814419-PAT00018
p/n과 이진 체크 코드(BCC)가 같은지 아닌지가 체크된다. 여기서, 같다면 다음 단계가 계속되지만, 그렇지 않으면, 경고 신호(alarm signal)가 전송되고(S27), 모든 중요한(crytical) 정보들, 즉, 스칼라 곱 수행 과정 상의 데이터들이 일정 메모리(public memory)에서 모두 클리어(clear)된다(S28).
S12 단계에서, 도메인 파라메터들의 체크는 도 6과 같이 XOR(Exclusive OR) 연산기가 이용된다. 여기서, 이진 체크 코드(BCC)는 [수학식 25]와 같이 정의되고, 비휘발성 메모리(도 4의 440)에 저장되어 있다.
[수학식 25]
Figure 112005011814419-PAT00019
이진 체크 코드(BCC)가 상기 EC 도메인 파라메터들에 의하여 계산되는 값 a
Figure 112005011814419-PAT00020
b
Figure 112005011814419-PAT00021
p/n과 같다면, [수학식 26]과 같이 간단한 XOR 연산에 의하여 체크되는 값이 0일 것이다.
[수학식 26]
Figure 112005011814419-PAT00022
보호된 비휘발성 메모리(도 4의 440)에 저장된 도메인 파라메터들에 대하여, 암호 해독자는 랜덤한 오류들을 유도(induce)시킬 수 있을 뿐이므로, 이진 체크 코드(BCC) 값 뿐만아니라 동시에 다른 도메인 파라메터들(a,b,p/n) 모두에 대하여 해독에 필요한 오류들을 유도시킬 가능성은 거의 없다.
한편, 스칼라 곱 유니트(도 4의 420)는 외부에서 입력 포인트 P를 수신한다(S13). 필요한 경우에 입력 포인트 P는 [수학식 8] 내지 [수학식 24]에 따라 다른 포인트 표현으로 변환될 수 있다(S14, S15). 즉, "Weierstrass Affine"(WA), "Weierstrass Ordinary Projective"(WP), "Weierstrass Jacobian Projective"(WJ), "Weierstrass Lopez-Dahab Projective"(WL), "Hessian Affine"(HA), "Hessian Ordinary Projective"(HP) 등으로 변환될 수 있다. 이는 포인트 표현 변환부(도 4의 410)에서 이루어진다.
다음에, 포인트 체크부(도 4의 460)는 상기 입력 포인트 P가 상기 도메인 파라메터들에 의하여 정의된 EC 상에 존재하는지 아닌지를 체크한다(S16). 여기서, 상기 입력 포인트 P가 EC 상에 존재하면 다음 단계가 계속되지만, 그렇지 않으면, 경고 신호(alarm signal)가 전송되고(S27), 모든 중요한 정보들이 모두 클리어된다(S28).
다음에, 스칼라 곱 유니트(도 4의 420)는 비밀 키(key) k를 수신하고(S17), 상기 입력 포인트 P와 상기 비밀 키 k로부터, 상기 EC 도메인 파라메터들을 이용하여 스칼라 곱의 수행으로 암호화된 출력 포인트 Q=kㆍP를 생성한다(S18). S15 단계에서, 상기 입력 포인트 P가 다른 포인트 표현으로 변환되었다면, 상기 포인트 변환된 입력 포인트로부터 해당 암호화된 출력 포인트 Q=kㆍP가 생성된다.
이후에, 출력시(스칼라 곱 연산 이후)의 EC 도메인 파라메터들의 체크와 암호화된 출력 포인트 Q= kㆍP의 체크가 위와 같은 방식으로 이루어진다.
도메인 체크부(도 4의 430)는 상기 EC 도메인 파라메터들을 수신하고(S19), S12 단계와 마찬가지로 상기 EC 도메인 파라메터들에 의하여 계산되는 값 a
Figure 112005011814419-PAT00023
b
Figure 112005011814419-PAT00024
p/n과 이진 체크 코드(BCC)가 같은지 아닌지를 체크한다(S20). 여기서, 같다면 다음 단계가 계속되지만, 그렇지 않으면, 경고 신호(alarm signal)가 전송되고(S27), 모든 중요한 정보들, 즉, 스칼라 곱 수행 과정 상의 데이터들이 일정 메모리(public memory)에서 모두 클리어(clear)된다(S28). 여기서, S15 단계와 마찬가지로, 필요한 경우에 상기 암호화된 출력 포인트 Q= kㆍP는 포인트 표현 변환부(도 4의 410)를 통하여 [수학식 8] 내지 [수학식 24]에 따라 다른 포인트 표현으로 변환될 수 있다(S21, S22).
다음에, 포인트 체크부(도 4의 460)는 상기 암호화된 출력 포인트 Q= kㆍP가 상기 도메인 파라메터들에 의하여 정의된 EC 상에 존재하는지 아닌지를 체크한다 (S23). 여기서, 상기 암호화된 출력 포인트 Q= kㆍP가 EC 상에 존재하면 다음 단계가 계속되지만, 그렇지 않으면, 경고 신호(alarm signal)가 전송되고(S27), 모든 중요한 정보들이 모두 클리어된다(S28). 여기서, 필요한 경우에 다시 상기 암호화된 출력 포인트 Q= kㆍP는 포인트 표현 변환부(도 4의 410)를 통하여 [수학식 8] 내지 [수학식 24]에 따라 다른 포인트 표현으로 변환될 수 있다(S24, S25).
이와 같이, 상기 S11 내지 S25 단계에 따라, 상기 EC 도메인 파라메터들에 의하여 계산되는 값 a
Figure 112005011814419-PAT00025
b
Figure 112005011814419-PAT00026
p/n과 상기 이진 체크 코드(BCC)가 같고 상기 입력 포인트 P 및 상기 암호화된 출력 포인트 Q= kㆍP가 EC 상에 존재하는 경우에, 상기 암호화된 출력 포인트 Q= kㆍP가 상위 계층(upper layer)의 후속 프로세서(processor)로 출력된다(S26).
도 3의 암호화 방법을 실현하는 암호화 장치(400)의 일실시예가 도 4에 도시되어 있다. 도 4를 참조하면, 상기 암호화 장치(400)는 포인트 표현 변환부(410), 스칼라 곱 유니트(420), 도메인 체크부(430), 보호된 비휘발성 메모리(440), 기본 필드 연산 하드웨어(basic field operation hardware)(450), 포인트 체크부(460) 및 콘트롤부(470)를 구비한다.
상기 콘트롤부(470)는 도 3의 암호화 방법을 실현하기 위하여 시스템 전반의 콘트롤을 수행한다. 상기 보호된 비휘발성 메모리(440)는 상기 콘트롤부(470)의 제어를 받아, 상기 EC 도메인 파라메터들, 상기 이진 체크 코드(BCC), 및 상기 비밀 키 k를 저장하고 제공한다(도 3의 S11, S17, S19).
상기 스칼라 곱 유니트(420)는 입력 포인트 P와 비밀 키 k를 수신하여, EC 도메인 파라메터들(a,b,p/n)을 이용한 스칼라 곱의 수행으로 암호화된 출력 포인트 Q= kㆍP를 생성한다(도 3의 S18). 상기 기본 필드 연산 하드웨어(450)는 XOR 연산기, 승산기(ff_M), 합산기(ff_A), 및 감산기(ff_S)를 포함하고, 이들은 상기 스칼라 곱 유니트(420)에서의 스칼라 곱의 수행에 이용된다.
상기 도메인 체크부(430)는 상기 EC 도메인 파라메터들에 의하여 계산되는 값 a
Figure 112005011814419-PAT00027
b
Figure 112005011814419-PAT00028
p/n과 이진 체크 코드(BCC)가 같은지 아닌지를 체크한다(도 3의 S12 및 S20). 상기 도메인 체크부(430)는 상기 암호화된 출력 포인트 Q= kㆍP의 생성 이전 및 이후에 각각 체크하고, 도 6과 같이 XOR 연산기를 이용하여 [수학식 26]과 같이 결과가 0인지 아닌지를 판단한다.
상기 포인트 체크부(460)는 상기 입력 포인트 P 및 상기 암호화된 출력 포인트 Q= kㆍP가 EC 상에 존재하는지 아닌지를 체크한다(도 3의 S16 및 S23).
상기 포인트 표현 변환부(410)는 입력되는 포인트를 다른 포인트 표현(WA, WP, WJ, WL, HA, HP)으로 변환한다(도 3의 S15, S22, S25). 이때, 상기 스칼라 곱 유니트(420)는 입력 포인트 P가 다른 포인트 표현으로 변환된 경우에, 상기 포인트 변환된 입력 포인트로부터 상기 암호화된 출력 포인트 Q= kㆍP를 생성한다(도 3의 S18).
이와 같이 도 4의 암호화 장치(400)는, 도 3의 상기 S11 내지 S25 단계에 따라, 상기 EC 도메인 파라메터들에 의하여 계산되는 값 a
Figure 112005011814419-PAT00029
b
Figure 112005011814419-PAT00030
p/n과 상기 이진 체크 코드(BCC)가 같고 상기 입력 포인트 P 및 상기 암호화된 출력 포인트 Q= kㆍP가 EC 상에 존재하는 경우에, 상기 암호화된 출력 포인트 Q= kㆍP를 상위 계층(upper layer)의 후속 프로세서(processor)로 출력한다(도 3의 S26).
도 3의 암호화 방법을 실현하는 암호화 장치(500)의 다른 실시예가 도 5에 도시되어 있다. 도 5를 참조하면, 상기 암호화 장치(500)는 도 4와 유사한 구성을 가진다. 상기 암호화 장치(500)는 도 4의 스칼라 곱 유니트(420), 도메인 체크부(430), 보호된 비휘발성 메모리(440), 기본 필드 연산 하드웨어(450), 및 콘트롤부(470)와 같은 구성을 가지고 같은 동작을 수행하며, 다만, 최대 동작 성능이 발휘될 수 있도록 하기 위하여, 도 4의 포인트 표현 변환부(410) 대신에 제1 포인트 표현 변환부(411), 제2 포인트 표현 변환부(412) 및 제3 포인트 표현 변환부(413)을 가지고, 도 4의 포인트 체크부(460) 대신에 제1 포인트 체크부(461) 및 제2 포인트 체크부(462)를 가진다.
즉, 도 4의 상기 포인트 표현 변환부(410)는 도 3의 S15, S22, S25 단계에서 입력되는 포인트를 다른 포인트 표현(WA, WP, WJ, WL, HA, HP)으로 변환하기 위하여 공유되도록 하였지만, 도 5의 상기 제1 포인트 표현 변환부(411), 상기 제2 포인트 표현 변환부(412) 및 상기 제3 포인트 표현 변환부(413)는 도 3의 S15, S22, S25 각각 단계에서 입력되는 포인트를 다른 포인트 표현(WA, WP, WJ, WL, HA, HP)으로 변환한다.
즉, 도 4의 포인트 표현 변환부(410)는 도 3의 S15 단계에서 상기 입력 포인트 P를 다른 포인트 표현으로 변환한다. 또한, 도 4의 상기 포인트 표현 변환부(410)는 도 3의 S22 단계에서 스칼라 곱 유니트(420)에서 생성되는 상기 암호화된 출력 포인트 Q= kㆍP를 다른 포인트 표현으로 변환한다. 그리고, 도 4의 상기 포인 트 표현 변환부(410)는 상기 암호화된 출력 포인트 Q= kㆍP가 EC 상에 존재하는 지 여부가 체크된 후에 다시 도 3의 S25 단계에서 상기 암호화된 출력 포인트 Q= kㆍP를 다른 포인트 표현으로 변환한다.
반면, 도 5의 상기 제1 포인트 표현 변환부(411)는 도 3의 S15 단계에서 상기 입력 포인트 P를 다른 포인트 표현으로 변환한다. 상기 제2 포인트 표현 변환부(412)는 도 3의 S22 단계에서 상기 스칼라 곱 유니트(420)에서 생성되는 상기 암호화된 출력 포인트Q= kㆍP를 다른 포인트 표현으로 변환한다. 상기 제3 포인트 표현 변환부(413)는 상기 암호화된 출력 포인트 Q= kㆍP가 EC 상에 존재하는 지 여부가 체크된 후에 도 3의 S25 단계에서 상기 암호화된 출력 포인트 Q= kㆍP를 다른 포인트 표현으로 변환한다.
또한, 도 4의 포인트 체크부(460)는 도 3의 S16 및 S23 단계에서, 상기 입력 포인트 P 및 상기 암호화된 출력 포인트 Q= kㆍP가 EC 상에 존재하는지 아닌지를 체크하지만, 별도로 상기 제1 포인트 체크부(461)는 도 3의 S16 단계에서 상기 입력 포인트 P가 EC 상에 존재하는지 아닌지를 체크하고, 상기 제2 포인트 체크부(462)는 도 3의 S23 단계에서 상기 암호화된 출력 포인트 Q= kㆍP가 EC 상에 존재하는지 아닌지를 체크한다.
암호 해독하려는 공격자(attacker)는 아직도 [수학식 27] 만큼의 DFA 공격 가능성 PA을 가지고 있다. 여기서, PSM은 스칼라 곱 연산에서 공격자에 의하여 요구된 오류를 일으킬 확률, PC는 상기 포인트 체크부(들)에서 요구된 오류를 일으킬 확 률을 나타낸다.
[수학식 27]
PA = PSMㆍPC
[수학식 27]의 PC를 줄이기 위하여, 도 3의 S16 및 S23 단계에서 포인트 체크를 위한 장치(700)의 다른 실시예가 도 7에 도시되어 있다. 도 7을 참조하면, 상기 포인트 체크를 위한 장치(700)는 다수 홀수개의 단위 포인트 체크 수단들(720) 및 XOR 연산기(730)을 포함하고, 옵션(optional)으로서 포인트 표현 변환 수단들(710)을 더 포함할 수 있다.
상기 포인트 체크 수단들(720) 각각의 체크부는 도 4의 460, 또는 도 5의 461, 462 및 463과 같이, 입력되는 포인트가 EC 상에 존재하는지 아닌지를 체크한다. 상기 XOR 연산기(730)는 상기 단위 포인트 체크 수단들(720)의 출력들을 XOR한 결과를 출력한다. XOR 연산의 특성상 상기 포인트 체크 수단들(720)을 이루는 단위 체크부는 홀수개인 것이 바람직하다. 필요에 따라 적용될 수 있는 상기 포인트 표현 변환 수단들(710)을 이루는 각각의 변환부는 상기 단위 포인트 체크 수단들(720) 각각에 대응되어 있고, 입력을 다른 포인트 표현으로 변환하여 해당 단위 체크부로 출력한다.
이에 따라, 공격자에 의한 총 DFA 공격 가능성 PA는 [수학식 28] 만큼으로 줄어든다. 여기서, PC는 상기 단위 포인트 체크 수단들(720) 각각에서 오류를 일으킬 확률을 나타내고, t는 상기 단위 포인트 체크 수단들(720)의 개수이다.
[수학식 28]
Figure 112005011814419-PAT00031
이하, 도 4의 460 또는 도 5의 461,462,463을 위한 포인트 체크부의 구체적인 회로를 설명한다.
도 8은 GF(p)에서 Weierstrass Affine(WA) 좌표계에 대한 포인트 체크부(800)의 구체적인 블록도이다. 상기 포인트 체크부(800)는 입력되는 포인트가 EC 상에 존재하는지 아닌지를 체크하기 위하여, [수학식 2]를 체크한다. 즉, 상기 포인트 체크부(800)는 3번의 승산과 2번의 합산을 수행하여, [수학식 2]를 이루는 "x3 + ax + b"와 "y2" 각각을 계산하고, 계산된 값들에 대하여 XOR 연산을 수행함으로써, 그 결과(0/!0)를 출력한다. 여기서, (x,y)는 입력되는 포인트, a 및 b는 해당 EC 파라메터이다.
도 9는 GF(p)에서 Weierstrass Ordinary Projective(WP) 좌표계에 대한 포인트 체크부(900)의 구체적인 블록도이다. 상기 포인트 체크부(900)는 입력되는 포인트가 EC 상에 존재하는지 아닌지를 체크하기 위하여, [수학식 8]을 체크한다. 즉, 상기 포인트 체크부(900)는 8번의 승산과 2번의 합산을 수행하여, [수학식 8]를 이루는 "X3 + aXZ2 +bZ3"와 "Y2Z" 각각을 계산하고, 계산된 값들에 대하여 XOR 연산을 수행함으로써, 그 결과(0/!0)를 출력한다. 여기서, (X,Y,Z)는 입력되는 포인트, a 및 b는 해당 EC 파라메터이다.
도 10은 GF(p)에서 Weierstrass Jacobian Projective(WJ) 좌표계에 대한 포인트 체크부(1000)의 구체적인 블록도이다. 상기 포인트 체크부(1000)는 입력되는 포인트가 EC 상에 존재하는지 아닌지를 체크하기 위하여, [수학식 10]을 체크한다. 즉, 상기 포인트 체크부(1000)는 8번의 승산과 2번의 합산을 수행하여, [수학식 10]를 이루는 "X3 + aXZ4 +bZ6"와 "Y2" 각각을 계산하고, 계산된 값들에 대하여 XOR 연산을 수행함으로써, 그 결과(0/!0)를 출력한다. 여기서, (X,Y,Z)는 입력되는 포인트, a 및 b는 해당 EC 파라메터이다.
도 11은 GF(p)에서 Weierstrass Lopez-Dahab Projective(WL) 좌표계에 대한 포인트 체크부(1100)의 구체적인 블록도이다. 상기 포인트 체크부(1100)는 입력되는 포인트가 EC 상에 존재하는지 아닌지를 체크하기 위하여, [수학식 12]를 체크한다. 즉, 상기 포인트 체크부(1100)는 8번의 승산과 2번의 합산을 수행하여, [수학식 12]를 이루는 "X3Z + aXZ3 +bZ4"와 "Y2" 각각을 계산하고, 계산된 값들에 대하여 XOR 연산을 수행함으로써, 그 결과(0/!0)를 출력한다. 여기서, (X,Y,Z)는 입력되는 포인트, a 및 b는 해당 EC 파라메터이다.
도 12는 GF(2n)에서 Weierstrass Affine(WA) 좌표계에 대한 포인트 체크부(1200)의 구체적인 블록도이다. 상기 포인트 체크부(1200)는 입력되는 포인트가 EC 상에 존재하는지 아닌지를 체크하기 위하여, [수학식 3]를 체크한다. 즉, 상기 포인트 체크부(1200)는 3번의 승산과 3번의 합산을 수행하여, [수학식 3]를 이루는 "x3 + ax2 + b"와 "y2+ xy" 각각을 계산하고, 계산된 값들에 대하여 XOR 연산을 수행함으로써, 그 결과(0/!0)를 출력한다. 여기서, (x,y)는 입력되는 포인트, a 및 b는 해당 EC 파라메터이다.
도 13은 GF(2n)에서 Weierstrass Ordinary Projective(WP) 좌표계에 대한 포인트 체크부(1300)의 구체적인 블록도이다. 상기 포인트 체크부(1300)는 입력되는 포인트가 EC 상에 존재하는지 아닌지를 체크하기 위하여, [수학식 14]를 체크한다. 즉, 상기 포인트 체크부(1300)는 8번의 승산과 3번의 합산을 수행하여, [수학식 14]를 이루는 "X3 + aX2Z + bZ3"와 "Y2Z + XYZ" 각각을 계산하고, 계산된 값들에 대하여 XOR 연산을 수행함으로써, 그 결과(0/!0)를 출력한다. 여기서, (X,Y,Z)는 입력되는 포인트, a 및 b는 해당 EC 파라메터이다.
도 14는 GF(2n)에서 Weierstrass Jacobian Projective(WJ) 좌표계에 대한 포인트 체크부(1400)의 구체적인 블록도이다. 상기 포인트 체크부(1400)는 입력되는 포인트가 EC 상에 존재하는지 아닌지를 체크하기 위하여, [수학식 16]을 체크한다. 즉, 상기 포인트 체크부(1400)는 9번의 승산과 3번의 합산을 수행하여, [수학식 16]를 이루는 "X3 + aX2Z2 + bZ6"와 "Y2 + XYZ" 각각을 계산하고, 계산된 값들에 대하여 XOR 연산을 수행함으로써, 그 결과(0/!0)를 출력한다. 여기서, (X,Y,Z)는 입력되는 포인트, a 및 b는 해당 EC 파라메터이다.
도 15는 GF(2n)에서 Weierstrass Lopez-Dahab Projective(WL) 좌표계에 대한 포인트 체크부(1500)의 구체적인 블록도이다. 상기 포인트 체크부(1500)는 입력되는 포인트가 EC 상에 존재하는지 아닌지를 체크하기 위하여, [수학식 18]을 체크한다. 즉, 상기 포인트 체크부(1500)는 9번의 승산과 3번의 합산을 수행하여, [수학식 18]를 이루는 "X3Z + aX2Z2 + bZ4"와 "Y2 + XYZ" 각각을 계산하고, 계산된 값들에 대하여 XOR 연산을 수행함으로써, 그 결과(0/!0)를 출력한다. 여기서, (X,Y,Z)는 입력되는 포인트, a 및 b는 해당 EC 파라메터이다.
도 16은 Hessian Affine(HA) 좌표계에 대한 포인트 체크부(1600)의 구체적인 블록도이다. 상기 포인트 체크부(1600)는 입력되는 포인트가 EC 상에 존재하는지 아닌지를 체크하기 위하여, [수학식 20]을 체크한다. 즉, 상기 포인트 체크부(1600)는 6번의 승산과 2번의 합산을 수행하여, [수학식 20]를 이루는 "u3 + v3 + 1"와 "Duv" 각각을 계산하고, 계산된 값들에 대하여 XOR 연산을 수행함으로써, 그 결과(0/!0)를 출력한다. 여기서, u 및 v는 입력되는 포인트 (x,y) 및 D의 함수, D는 EC 파라메터이다.
도 17은 Hessian Ordinary Projective(HP) 좌표계에 대한 포인트 체크부(1700)의 구체적인 블록도이다. 상기 포인트 체크부(1700)는 입력되는 포인트가 EC 상에 존재하는지 아닌지를 체크하기 위하여, [수학식 23]을 체크한다. 즉, 상기 포인트 체크부(1700)는 9번의 승산과 2번의 합산을 수행하여, [수학식 23]를 이루는 "U3 + V3 + W3"와 "DUVW" 각각을 계산하고, 계산된 값들에 대하여 XOR 연산을 수행함으로써, 그 결과(0/!0)를 출력한다. 여기서, U,V 및 W는 입력되는 포인트 (x,y) 및 D의 함수, D는 EC 파라메터이다.
도 3에서, 판단 단계들 S12, S16, S20, S23 각각을 수행하는 도메인 체크부(430) 및 포인트 체크부(460)에서의 판단 결과가 0 또는 0이 아닌 !0에 따라 시스템이 동작하도록 할 때 발생될 수 있는 브랜치 에러(branch error)를 해결할 수 있는 도 18과 같은 다른 암호화 방법이 제안된다.
도 18을 참조하면, 먼저, 스칼라 곱 계산 회로는 EC 도메인 파라메터들, 및 이진 체크 코드(BCC)를 보호된 비휘발성 메모리로부터 수신한다(S51). 여기서, 도메인 파라메터들은 GF(p)의 경우에 a,b,p이고, GF(2n)의 경우에 a,b,n이다. S52 단계에서는, 입력 포인트 계산 회로가 EC 도메인 파라메터들을 체크하기 위하여, 상기 EC 도메인 파라메터들과 이진 체크 코드(BCC)를 이용하여 입력 포인트를 추정한다.
여기서, 이진 체크 코드(BCC)는 [수학식 29]와 같이 입력 포인트 P의 함수로서 정의되고, 상기 보호된 비휘발성 메모리에 저장되어 있다. 여기서, BCC는 이진 체크 코드, P는 입력 포인트, a, b 및 p/n은 EC 파라메터로서 GF(p)에서는 a, b 및 p가 적용되고, GF(2n)에서는 a, b 및 n이 적용된다.
[수학식 29]
Figure 112005011814419-PAT00032
이에 따라, 상기 입력 포인트 계산 회로는 [수학식 30]을 계산하여 입력 포인트를 추정하고, 상기 이진 체크 코드(BCC) 및 상기 EC 도메인 파라메터들에 오류가 없다면, [수학식 30]에 의하여 계산되는 추정된 입력 포인트 P'는 상기 휘발성 메모리에서 수신되는 입력 포인트 P와 같을 것이다.
[수학식 30]
Figure 112005011814419-PAT00033
한편, 필요한 경우에 상기 S52 단계에서 추정된 입력 포인트 P'는 [수학식 8] 내지 [수학식 24]에 따라 다른 포인트 표현으로 변환될 수 있다(S53, S54). 즉, "Weierstrass Affine"(WA), "Weierstrass Ordinary Projective"(WP), "Weierstrass Jacobian Projective"(WJ), "Weierstrass Lopez-Dahab Projective"(WL), "Hessian Affine"(HA), "Hessian Ordinary Projective"(HP) 등으로 변환될 수 있다. 이는 포인트 표현 변환 회로에서 이루어진다.
다음에, 스칼라 곱 계산 회로는 상기 비휘발성 메모리로부터 비밀 키(key) k를 수신하고(S55), 상기 추정된 입력 포인트 P'와 상기 비밀 키 k로부터, 상기 EC 도메인 파라메터들을 이용하여 스칼라 곱의 수행으로 암호화된 출력 포인트 Q=kㆍP'를 생성한다(S56). S54 단계에서, 상기 추정된 입력 포인트 P'가 다른 포인트 표현으로 변환되었다면, 상기 포인트 변환된 입력 포인트로부터 해당 암호화된 출력 포인트 Q=kㆍP가 생성된다.
이후에, 출력시(스칼라 곱 연산 이후)의 EC 도메인 파라메터들의 체크와 암호화된 출력 포인트 Q= kㆍP의 체크가 위와 같은 방식으로 이루어진다.
다음에, 도메인 체크 회로는 암호화시키려는 입력 포인트 P, 상기 EC 도메인 파라메터들, 및 이진 체크 코드(BCC)를 상기 보호된 비휘발성 메모리로부터 수신하고(S57), 상기 수신된 입력 포인트 P와, 상기 EC 도메인 파라메터들 및 상기 이진 체크 코드로(BCC)부터 재추정되는 입력 포인트 P'가 같은지 아닌지를 나타내는 제1 정보 신호(T)를 생성한다(S58). 상기 제1 정보 신호(T)는 [수학식 31]과 같이 정의되고, XOR 연산에 의하여 간단히 생성될 수 있다.
[수학식 31]
Figure 112005011814419-PAT00034
여기서, S54 단계와 마찬가지로, 필요한 경우에 상기 암호화된 출력 포인트 Q= kㆍP'는 포인트 표현 변환 회로를 통하여 [수학식 8] 내지 [수학식 24]에 따라 다른 포인트 표현으로 변환될 수 있다(S59, S60).
다음에, 출력 회로는 상기 암호화된 출력 포인트 Q= kㆍP'가 상기 도메인 파라메터들에 의하여 정의된 EC 상에 존재하는지 아닌지를 체크하고 출력한다(S61, S62). 상기 출력 회로는 위의 수학식들을 각 포인트 표현을 기반으로한 [표 1]과 같은 각 함수 정의에 따라, 상기 암호화된 출력 포인트 Q= kㆍP'가 EC 상에 존재하는지 아닌지를 나타내는 제2 정보 신호(f)를 생성한다.
[표 1]
Figure 112005011814419-PAT00035
[수학식 32]
Figure 112005011814419-PAT00036
[수학식 33]
Figure 112005011814419-PAT00037
이에 따라 상기 출력 회로는 상기 제1 정보 신호(T), 상기 제2 정보 신호(f) 및 상기 암호화된 출력 포인트 Q(x,y)의 함수로서 [수학식 32] 및 [수학식 33]과 같이 정의된 XOR 연산을 수행하여 그 결과를 출력한다. 이와 같이, 상기 S51 내지 S64 단계에 따라, 아무런 오류가 없고 암호화된 출력 포인트 Q(x,y)이 EC 상에 존재한다면, [수학식 32] 및 [수학식 33]의 결과는 출력 포인트 Q(x,y)와 같다. 그렇지 않다면, [수학식 32] 및 [수학식 33]의 결과는 공격자에 의하여 해독하기 어려운 매우 복잡한 오류를 가지는 값으로 변경되어 출력될 것이다(S65).
여기서, [수학식 32] 및 [수학식 33]의 연산 후에 필요한 경우 다시 그 결과가 포인트 표현 변환 회로를 통하여 [수학식 8] 내지 [수학식 24]에 따라 다른 포인트 표현으로 변환될 수 있다(S63, S64).
상기 오류가 없는 암호화된 출력 포인트 Q= kㆍP는 상위 계층(upper layer)의 후속 프로세서(processor)로 출력되어 처리될 수 있다(S65).
위에서 기술한 바와 같이, 본 발명의 일실시예에 따라 "Weierstrass"와 "Hessian"의 형태로 구현될 수 있는 암호화 방법 및 장치는, 여러 가지 포인트 표현을 기반으로 한 ECC에 대하여 DFA 대응책으로 제시될 수 있다. 포인트 표현에 있어서, "Affine", "Ordinary Projective", "Jacobian Projective" 및 "Lopez-Dahab Projective"가 사용되었다.
본 명세서에서 개시된 방법 및 장치에서 사용되는 기능은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정 한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 암호화 방법 및 장치는, 최종 암호화 결과를 출력하기 전에, DFA 공격에 의한 기초 포인트에서의 오류, 정의(definition) 필드들에서의 오류, 및 EC 파라메터에서의 오류를 체크하여 기밀 정보의 유출을 방지할 수 있다. 따라서, DFA 공격에 강하고 빠른 동작 스피드를 요하는 암호화 시스템에 적용하기 유리한 효과가 있다.

Claims (41)

  1. EC(Elliptic Curve) 도메인 파라메터들, 이진 체크 코드, 입력 포인트 및 비밀 키를 수신하는 단계;
    상기 EC 도메인 파라메터들에 의하여 계산되는 값과 이진 체크 코드가 같은지 아닌지를 체크하는 단계;
    상기 입력 포인트가 EC 상에 존재하는지 아닌지를 체크하는 단계;
    상기 입력 포인트와 상기 비밀 키로부터, 상기 EC 도메인 파라메터들을 이용하여 스칼라 곱의 수행으로 암호화된 출력 포인트를 생성하는 단계;
    상기 암호화된 출력 포인트가 EC 상에 존재하는지 아닌지를 체크하는 단계; 및
    상기 EC 도메인 파라메터들에 의하여 계산되는 값과 상기 이진 체크 코드가 같고 상기 입력 포인트 및 상기 암호화된 출력 포인트가 EC 상에 존재하는 경우에 상기 암호화된 출력 포인트를 출력하고, 그렇지 않으면 출력하지 않는 단계를 구비하는 것을 특징으로 하는 암호화 방법.
  2. 제 1항에 있어서, 상기 EC 도메인 파라메터들에 의하여 계산되는 값과 이진 체크 코드가 같은지는 상기 암호화된 출력 포인트의 생성 이전 및 이후에 각각 체크되는 것을 특징으로 하는 암호화 방법.
  3. 제 2항에 있어서, 상기 EC 도메인 파라메터들에 의하여 계산되는 값과 이진 체크 코드가 같은지의 체크는,
    XOR 연산을 이용하여, 수학식
    Figure 112005011814419-PAT00038
    (여기서, BCC는 이진 체크 코드, a, b 및 p/n은 EC 파라메터로서 GF(p)에서는 a, b 및 p가 적용되고, GF(2n)에서는 a, b 및 n이 적용된다.)이 체크되는 것을 특징으로 하는 암호화 방법.
  4. 제 1항에 있어서, 상기 EC 도메인 파라메터들, 상기 이진 체크 코드, 및 상기 비밀 키는 비휘발성 메모리에 저장되어 제공되는 것을 특징으로 하는 암호화 방법.
  5. 제 1항에 있어서, 상기 암호화 방법은,
    상기 입력 포인트를 다른 포인트 표현으로 변환하는 단계를 더 포함하고,
    상기 포인트 변환된 입력 포인트로부터 상기 암호화된 출력 포인트가 생성되는 것을 특징으로 하는 암호화 방법.
  6. 제 5항에 있어서, 상기 암호화 방법은,
    상기 암호화된 출력 포인트를 다른 포인트 표현으로 변환하는 단계를 더 포 함하는 것을 특징으로 하는 암호화 방법.
  7. 제 1항에 있어서, 상기 포인트 체크는,
    GF(p)에서 Weierstrass Affine(WA) 좌표계에 대한 수학식
    y2 = x3 + ax + b
    (여기서, (x,y)는 입력 포인트, a 및 b는 EC 파라메터)
    을 만족하는지를 체크하기 위하여 "x3 + ax + b"와 "y2" 각각을 계산하고 XOR 연산을 수행하는 것을 특징으로 하는 암호화 방법.
  8. 제 1항에 있어서, 상기 포인트 체크는,
    GF(p)에서 Weierstrass Ordinary Projective(WP) 좌표계에 대한 수학식
    Y2Z = X3 + aXZ2 +bZ3
    (여기서, (X,Y,Z)는 입력 포인트, a 및 b는 EC 파라메터)
    을 만족하는지를 체크하기 위하여 "X3 + aXZ2 +bZ3"와 "Y2Z" 각각을 계산하고 XOR 연산을 수행하는 것을 특징으로 하는 암호화 방법.
  9. 제 1항에 있어서, 상기 포인트 체크는,
    GF(p)에서 Weierstrass Jacobian Projective(WJ) 좌표계에 대한 수학식
    Y2 = X3 + aXZ4 +bZ6
    (여기서, (X,Y,Z)는 입력 포인트, a 및 b는 EC 파라메터)
    을 만족하는지를 체크하기 위하여 "X3 + aXZ4 +bZ6"와 "Y2" 각각을 계산하고 XOR 연산을 수행하는 것을 특징으로 하는 암호화 방법.
  10. 제 1항에 있어서, 상기 포인트 체크는,
    GF(p)에서 Weierstrass Lopez-Dahab Projective(WL) 좌표계에 대한 수학식
    Y2 = X3Z + aXZ3 +bZ4
    (여기서, (X,Y,Z)는 입력 포인트, a 및 b는 EC 파라메터)
    을 만족하는지를 체크하기 위하여 "X3Z + aXZ3 +bZ4"와 "Y2" 각각을 계산하고 XOR 연산을 수행하는 것을 특징으로 하는 암호화 방법.
  11. 제 1항에 있어서, 상기 포인트 체크는,
    GF(2n)에서 Weierstrass Affine(WA) 좌표계에 대한 수학식
    y2 + xy = x3 + ax2 + b
    (여기서, (x,y)는 입력 포인트, a 및 b는 EC 파라메터)
    을 만족하는지를 체크하기 위하여 "x3 + ax2 + b"와 "y2" 각각을 계산하고 XOR 연산을 수행하는 것을 특징으로 하는 암호화 방법.
  12. 제 1항에 있어서, 상기 포인트 체크는,
    GF(2n)에서 Weierstrass Ordinary Projective(WP) 좌표계에 대한 수학식
    Y2Z + XYZ = X3 + aX2Z + bZ3
    (여기서, (X,Y,Z)는 입력 포인트, a 및 b는 EC 파라메터)
    을 만족하는지를 체크하기 위하여 "X3 + aX2Z + bZ3"와 "Y2Z + XYZ" 각각을 계산하고 XOR 연산을 수행하는 것을 특징으로 하는 암호화 방법.
  13. 제 1항에 있어서, 상기 포인트 체크는,
    GF(2n)에서 Weierstrass Jacobian Projective(WJ) 좌표계에 대한 수학식
    Y2 + XYZ = X3 + aX2Z2 + bZ6
    (여기서, (X,Y,Z)는 입력 포인트, a 및 b는 EC 파라메터)
    을 만족하는지를 체크하기 위하여 "X3 + aX2Z2 + bZ6"와 "Y2 + XYZ" 각각을 계산하고 XOR 연산을 수행하는 것을 특징으로 하는 암호화 방법.
  14. 제 1항에 있어서, 상기 포인트 체크는,
    GF(2n)에서 Weierstrass Lopez-Dahab Projective(WL) 좌표계에 대한 수학식
    Y2 + XYZ = X3Z + aX2Z2 + bZ4
    (여기서, (X,Y,Z)는 입력 포인트, a 및 b는 EC 파라메터)
    을 만족하는지를 체크하기 위하여 "Y2 + XYZ = X3Z + aX2Z2 + bZ4"와 "Y2 + XYZ" 각각을 계산하고 XOR 연산을 수행하는 것을 특징으로 하는 암호화 방법.
  15. 제 1항에 있어서, 상기 포인트 체크는,
    Hessian Affine(HA) 좌표계에 대한 수학식
    u3 + v3 + 1 = Duv
    (여기서, u 및 v는 입력 포인트 (x,y) 및 D의 함수, D는 EC 파라메터)
    을 만족하는지를 체크하기 위하여 "u3 + v3 + 1"와 "Duv" 각각을 계산하고 XOR 연산을 수행하는 것을 특징으로 하는 암호화 방법.
  16. 제 1항에 있어서, 상기 포인트 체크는,
    Hessian Ordinary Projective(HP) 좌표계에 대한 수학식
    U3 + V3 + W3 = DUVW
    (여기서, U,V 및 W는 입력 포인트 (x,y) 및 D의 함수, D는 EC 파라메터)
    을 만족하는지를 체크하기 위하여 "U3 + V3 + W3"와 "DUVW" 각각을 계산하고 XOR 연산을 수행하는 것을 특징으로 하는 암호화 방법.
  17. EC 도메인 파라메터들, 이진 체크 코드, 제1 입력 포인트 및 비밀 키를 수신하는 단계;
    상기 EC 도메인 파라메터들과 이진 체크 코드를 이용하여 제2 입력 포인트를 생성하는 단계;
    상기 제2 입력 포인트와 상기 비밀 키로부터, 상기 EC 도메인 파라메터들을 이용하여 스칼라 곱의 수행으로 암호화된 출력 포인트를 생성하는 단계;
    상기 제1 입력 포인트와 상기 EC 도메인 파라메터들 및 상기 이진 체크 코드로부터 재추정되는 제2 입력 포인트가 같은지 아닌지를 나타내는 제1 정보 신호를 생성하는 단계;
    상기 암호화된 출력 포인트가 EC 상에 존재하는지 아닌지를 나타내는 제2 정보 신호를 생성하는 단계; 및
    상기 제1 정보 신호, 상기 제2 정보 신호 및 상기 암호화된 출력 포인트를 XOR 연산하여 출력하는 단계를 구비하는 것을 특징으로 하는 암호화 방법.
  18. 제 17항에 있어서, 상기 이진 체크 코드는,
    수학식
    Figure 112005011814419-PAT00039
    (여기서, BCC는 이진 체크 코드, P는 제1 입력 포인트, a, b 및 p/n은 EC 파라메터로서 GF(p)에서는 a, b 및 p가 적용되고, GF(2n)에서는 a, b 및 n이 적용된다.)로 정의 되는 것을 특징으로 하는 암호화 방법.
  19. 제 17항에 있어서, 상기 제1 입력 포인트, 상기 EC 도메인 파라메터들, 상기 이진 체크 코드, 및 상기 비밀 키는 비휘발성 메모리에 저장되어 제공되는 것을 특징으로 하는 암호화 방법.
  20. 제 17항에 있어서, 상기 암호화 방법은,
    상기 제2 입력 포인트를 다른 포인트 표현으로 변환하는 단계를 더 포함하고,
    상기 포인트 변환된 제2 입력 포인트로부터 스칼라 곱 계산에 의하여 상기 암호화된 출력 포인트가 생성되는 것을 특징으로 하는 암호화 방법.
  21. 제 17항에 있어서, 상기 암호화 방법은,
    상기 제1 입력 포인트를 다른 포인트 표현으로 변환하는 단계를 더 포함하는 것을 특징으로 하는 암호화 방법.
  22. 제 17항에 있어서, 상기 암호화 방법은,
    상기 XOR 연산 결과를 다른 포인트 표현으로 변환하는 단계를 더 포함하는 것을 특징으로 하는 암호화 방법.
  23. 입력 포인트와 비밀 키를 수신하여, EC(Elliptic Curve) 도메인 파라메터들을 이용한 스칼라 곱의 수행으로 암호화된 출력 포인트를 생성하는 스칼라 곱 유니트;
    상기 EC 도메인 파라메터들에 의하여 계산되는 값과 이진 체크 코드가 같은지 아닌지를 체크하는 도메인 체크부; 및
    상기 입력 포인트 및 상기 암호화된 출력 포인트가 EC 상에 존재하는지 아닌지를 체크하는 포인트 체크부를 구비하고,
    상기 EC 도메인 파라메터들에 의하여 계산되는 값과 이진 체크 코드가 같고 상기 입력 포인트 및 상기 암호화된 출력 포인트가 EC 상에 존재하는 경우에 상기 암호화된 출력 포인트를 출력하고, 그렇지 않으면 출력하지 않는 것을 특징으로 하는 암호화 장치.
  24. 제 23항에 있어서, 상기 도메인 체크부는,
    상기 암호화된 출력 포인트의 생성 이전 및 이후에 각각 체크하는 것을 특징으로 하는 암호화 장치.
  25. 제 23항에 있어서, 상기 포인트 체크부는,
    상기 입력 포인트를 체크하는 제1 체크부; 및
    상기 암호화된 출력 포인트를 체크하는 제2 체크부를 포함하는 것을 특징으로 하는 암호화 장치.
  26. 제 23항에 있어서, 상기 암호화 장치는,
    상기 EC 도메인 파라메터들, 상기 이진 체크 코드, 및 상기 비밀 키를 저장하고 제공하는 비휘발성 메모리를 더 구비하는 것을 특징으로 하는 암호화 장치.
  27. 제 23항에 있어서, 상기 암호화 장치는,
    상기 입력 포인트를 다른 포인트 표현으로 변환하는 제1 포인트 표현 변환부를 더 구비하고,
    상기 스칼라 곱 유니트는 상기 포인트 변환된 입력 포인트로부터 상기 암호화된 출력 포인트를 생성하는 것을 특징으로 하는 암호화 장치.
  28. 제 27항에 있어서, 상기 제1 포인트 표현 변환부는,
    상기 스칼라 곱 유니트에서 생성되는 상기 암호화된 출력 포인트를 다른 포인트 표현으로 변환하는 것을 특징으로 하는 암호화 장치.
  29. 제 27항에 있어서, 상기 암호화 장치는,
    상기 스칼라 곱 유니트에서 생성되는 상기 암호화된 출력 포인트를 다른 포인트 표현으로 변환하는 제2 포인트 표현 변환부를 더 구비하는 것을 특징으로 하는 암호화 장치.
  30. 제 28항에 있어서, 상기 포인트 체크부는,
    상기 포인트 변환된 입력 포인트를 체크하는 제1 체크부; 및
    상기 포인트 변환된 상기 암호화된 출력 포인트를 체크하는 제2 체크부를 포함하는 것을 특징으로 하는 암호화 장치.
  31. 제 30항에 있어서, 상기 제1 포인트 표현 변환부는,
    상기 제2 체크부의 체크 후에 상기 암호화된 출력 포인트를 다른 포인트 표현으로 변환하는 것을 특징으로 하는 암호화 장치.
  32. 제 25항에 있어서, 상기 암호화 장치는,
    상기 제2 체크부의 체크 후에 상기 암호화된 출력 포인트를 다른 포인트 표현으로 변환하는 제3 포인트 표현 변환부를 더 구비하는 것을 특징으로 하는 암호화 장치.
  33. 제 23항에 있어서, 상기 도메인 체크부는,
    XOR 연산을 이용하여, 수학식
    Figure 112005011814419-PAT00040
    (여기서, BCC는 이진 체크 코드, a, b 및 p/n은 EC 파라메터로서 GF(p)에서는 a, b 및 p가 적용되고, GF(2n)에서는 a, b 및 n이 적용된다.)을 체크하는 것을 특징으로 하는 암호화 장치.
  34. 제 33항에 있어서, 상기 포인트 체크부는,
    다수 홀수개의 단위 포인트 체크 수단들을 포함하고, 상기 단위 포인트 체크 수단들의 출력들을 XOR한 결과를 출력하는 것을 특징으로 하는 암호화 장치.
  35. 제 34항에 있어서, 상기 암호화 장치는,
    상기 단위 포인트 체크 수단들 각각에 대응되어 있고, 입력을 다른 포인트 표현으로 변환하여 상기 단위 포인트 체크 수단들로 출력하는 포인트 표현 변환 수단들을 더 포함하는 것을 특징으로 하는 암호화 장치.
  36. EC 도메인 파라메터들 및 제1 입력 포인트의 함수인 이진 체크 코드를 이용하여 제2 입력 포인트를 생성하는 입력 포인트 계산 회로;
    상기 제2 입력 포인트와 비밀 키를 수신하여, 상기 EC 도메인 파라메터들을 이용한 스칼라 곱의 수행으로 암호화된 출력 포인트를 생성하는 스칼라 곱 계산 회 로;
    상기 제1 입력 포인트와 상기 EC 도메인 파라메터들 및 상기 이진 체크 코드로부터 추정되는 제2 입력 포인트가 같은지 아닌지를 나타내는 제1 정보 신호를 생성하는 도메인 체크 회로; 및
    상기 암호화된 출력 포인트가 EC 상에 존재하는지 아닌지를 나타내는 제2 정보 신호를 생성하고, 상기 제1 정보 신호, 상기 제2 정보 신호 및 상기 암호화된 출력 포인트를 XOR 연산하여 출력하는 출력 회로를 구비하는 것을 특징으로 하는 암호화 장치.
  37. 제 36항에 있어서, 상기 이진 체크 코드는,
    수학식
    Figure 112005011814419-PAT00041
    (여기서, BCC는 이진 체크 코드, P는 제1 입력 포인트, a, b 및 p/n은 EC 파라메터로서 GF(p)에서는 a, b 및 p가 적용되고, GF(2n)에서는 a, b 및 n이 적용된다.)로 정의 되는 것을 특징으로 하는 암호화 장치.
  38. 제 36항에 있어서, 상기 암호화 장치는,
    상기 제1 입력 포인트, 상기 EC 도메인 파라메터들, 상기 이진 체크 코드, 및 상기 비밀 키를 저장하고 제공하는 비휘발성 메모리를 더 구비하는 것을 특징으 로 하는 암호화 장치.
  39. 제 36항에 있어서, 상기 암호화 장치는,
    상기 제2 입력 포인트를 다른 포인트 표현으로 변환하는 포인트 표현 변환 회로를 더 구비하고,
    상기 스칼라 곱 계산 회로는 상기 포인트 변환된 제2 입력 포인트로부터 상기 암호화된 출력 포인트를 생성하는 것을 특징으로 하는 암호화 장치.
  40. 제 39항에 있어서, 상기 포인트 표현 변환 회로는,
    상기 제1 입력 포인트를 다른 포인트 표현으로 변환하는 것을 특징으로 하는 암호화 장치.
  41. 제 39항에 있어서, 상기 포인트 표현 변환 회로는,
    상기 XOR 연산 결과를 다른 포인트 표현으로 변환하는 것을 특징으로 하는 암호화 장치.
KR1020050018429A 2005-03-05 2005-03-05 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치 KR100817048B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020050018429A KR100817048B1 (ko) 2005-03-05 2005-03-05 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
DE102006011208A DE102006011208A1 (de) 2005-03-05 2006-03-02 Verfahren und Vorrichtung für die Kryptographie
US11/367,303 US20060274894A1 (en) 2005-03-05 2006-03-06 Method and apparatus for cryptography

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050018429A KR100817048B1 (ko) 2005-03-05 2005-03-05 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20060097309A true KR20060097309A (ko) 2006-09-14
KR100817048B1 KR100817048B1 (ko) 2008-03-26

Family

ID=37111613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050018429A KR100817048B1 (ko) 2005-03-05 2005-03-05 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치

Country Status (3)

Country Link
US (1) US20060274894A1 (ko)
KR (1) KR100817048B1 (ko)
DE (1) DE102006011208A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2828779B1 (fr) * 2001-08-17 2004-01-16 Gemplus Card Int Procede de calcul universel applique a des points d'une courbe elliptique
JP5300374B2 (ja) * 2008-08-25 2013-09-25 株式会社東芝 表現変換装置、演算装置、表現変換方法及びプログラム
US20100150340A1 (en) * 2008-12-02 2010-06-17 Electronics And Telecommunications Research Institute Device and method for elliptic curve cryptosystem
JP5323196B2 (ja) * 2009-09-18 2013-10-23 株式会社東芝 演算装置、方法およびプログラム
FR3005186B1 (fr) * 2013-04-30 2017-03-10 Oberthur Technologies Projet de validation d'un parametre cryptographique, et dispositif correspondant

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69113245D1 (de) * 1991-03-14 1995-10-26 Omnisec Ag Regensdorf Verschlüsselungssystem mit öffentlichem Schlüssel unter Verwendung elliptischer Kurven über Ringe.
AU3073595A (en) * 1994-07-29 1996-03-04 Certicom Corp. Elliptic curve encryption systems
GB9713138D0 (en) 1997-06-20 1997-08-27 Certicom Corp Accelerated finite field operations on an elliptic curve
US6108419A (en) * 1998-01-27 2000-08-22 Motorola, Inc. Differential fault analysis hardening apparatus and evaluation method
JP3796993B2 (ja) 1998-12-22 2006-07-12 株式会社日立製作所 楕円曲線暗号実行方法及び装置並びに記録媒体
US6611597B1 (en) * 1999-01-25 2003-08-26 Matsushita Electric Industrial Co., Ltd. Method and device for constructing elliptic curves
KR20010035704A (ko) * 1999-10-01 2001-05-07 구자홍 타원곡선 포인트의 고속 스칼라 승법을 위한 프로세스 및 방법
KR20030078350A (ko) * 2002-03-29 2003-10-08 박근수 타원 곡선 암호에서 단위원의 n-제곱근 함수를 이용한프로베니우스 전개 방법
FR2838262B1 (fr) 2002-04-08 2004-07-30 Oberthur Card Syst Sa Procede de securisation d'une electronique a acces crypte
CA2439736C (en) * 2002-09-03 2013-05-21 Certicom Corp. Method and apparatus for performing validation of elliptic curve public keys
US7388957B2 (en) * 2003-01-28 2008-06-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus

Also Published As

Publication number Publication date
US20060274894A1 (en) 2006-12-07
KR100817048B1 (ko) 2008-03-26
DE102006011208A1 (de) 2006-11-09

Similar Documents

Publication Publication Date Title
JP4671571B2 (ja) 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ
KR100891323B1 (ko) 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치
US6751318B2 (en) Method and apparatus for digital signature authentication
EP2553866B1 (en) System and method for protecting cryptographic assets from a white-box attack
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
US7894608B2 (en) Secure approach to send data from one system to another
KR101233682B1 (ko) 타원곡선암호를 위한 연산 장치 및 방법
KR100699836B1 (ko) 스칼라 곱에서 dfa 대책을 위한 장치 및 방법
KR100817048B1 (ko) 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
JP2014137474A (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
JP4626148B2 (ja) 復号または署名作成におけるべき乗剰余算の計算方法
KR100431047B1 (ko) Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치
EP3166013B1 (en) Modular exponentiation using randomized addition chains
Asaduzzaman et al. A promising parallel algorithm to manage the RSA decryption complexity
US11288985B2 (en) Encryption device, decryption device, encryption method, decryption method, encryption program product, and decryption program product
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
KR100953715B1 (ko) Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체
KR100953716B1 (ko) Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체
CN109617876A (zh) 基于Http协议的数据加密、解密方法及系统
WO2004070681A2 (ja) 楕円曲線スカラー倍計算方法および装置
Jain et al. Analysis of Different Cryptographic Algorithms in Cloud-Based Multi-robot Systems
Kulkarni et al. A Descriptive Study on Emerging Methods for Data Security in Cloud Computing
CN116894025A (zh) 基于格密码算法的数据库迁移方法、装置、设备和介质
Sreelekshmi et al. Review on HEROIC Framework: Homomorphically EncRypted One Instruction Computer
JPH06195025A (ja) 暗号装置及び暗号システム

Legal Events

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

Payment date: 20130228

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee