KR101527867B1 - 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는방법 - Google Patents

타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는방법 Download PDF

Info

Publication number
KR101527867B1
KR101527867B1 KR1020070069831A KR20070069831A KR101527867B1 KR 101527867 B1 KR101527867 B1 KR 101527867B1 KR 1020070069831 A KR1020070069831 A KR 1020070069831A KR 20070069831 A KR20070069831 A KR 20070069831A KR 101527867 B1 KR101527867 B1 KR 101527867B1
Authority
KR
South Korea
Prior art keywords
elliptic curve
axis
attack
equation
cryptosystem
Prior art date
Application number
KR1020070069831A
Other languages
English (en)
Other versions
KR20090006465A (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 KR1020070069831A priority Critical patent/KR101527867B1/ko
Priority to US12/108,410 priority patent/US8345863B2/en
Publication of KR20090006465A publication Critical patent/KR20090006465A/ko
Application granted granted Critical
Publication of KR101527867B1 publication Critical patent/KR101527867B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • 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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • 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
    • G06F2207/7271Fault verification, e.g. comparing two values which should be the same, unless a computational fault occurred

Abstract

타원 곡선 암호 시스템에 대한 부채널 공격(Side Channel Attack)에 대응하는 방법이 개시된다. 본 발명의 실시예에 따른 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법은, 타원 곡선 암호 시스템의 타원 곡선의 정의 영역을 제 1 영역에서 확장 링(Extension Ring)으로 확장하는 단계, 상기 확장 링에서 임시 암호문을 생성하고, 상기 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 단계 및 상기 타원 곡선 암호 시스템에 대한 오류 주입 공격이 체크되지 아니하는 경우, 상기 제 1 영역에 대한 최종 암호문을 생성하는 단계를 구비한다. 상기 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 단계는 상기 타원 곡선 암호 시스템에 대한 전력 분석 공격을 방어하는 단계 및 상기 타원 곡선 암호 시스템에 대한 오류 주입 공격을 체크하는 단계를 구비할 수 있다. 본 발명에 따른 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법은 암호 시스템의 안정성을 강화하면서도 시스템의 계산적 오버헤드를 줄일 수 있는 장점이 있다.

Description

타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법{Method of countering side-channel attacks in elliptic curve cryptosystem}
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 제 1 실시예에 따른 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법을 나타내는 순서도이다.
도 2는 소수 유한체(prime finite field) 상에서 정의된 도 1의 타원 곡선 암호 시스템의 정의 영역을 확장하는 방법을 보다 자세히 나타내는 순서도이다.
도 3은 도 2의 타원 곡선 암호 시스템의 정의 영역을 확장하는 방법을 보다 자세히 나타내는 순서도이다.
도 4는 도 3의 타원 곡선 암호 시스템의 정의 영역을 확장하는 방법을 구체적으로 나타내는 순서도이다.
도 5는 이진 유한체 상에서 정의된 도 1의 타원 곡선 암호 시스템의 정의 영역을 확장하는 방법을 보다 자세히 나타내는 순서도이다.
도 6은 도 5의 타원 곡선 암호 시스템의 정의 영역을 확장하는 방법을 보다 자세히 나타내는 순서도이다.
도 7은 도 35 타원 곡선 암호 시스템의 정의 영역을 확장하는 방법을 구체적 으로 나타내는 순서도이다.
도 8은 본 발명의 제 2 실시예에 따른 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법을 나타내는 순서도이다.
도 9는 도 8의 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 제 1 대응 방법을 나타내는 순서도이다.
도 10은 도 8의 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 제 2 대응 방법을 나타내는 순서도이다.
도 11은 도 9 및 도 10의 암호문 생성 방법을 개념적으로 나타내는 도면이다.
도 12의 (a)는 도 9 내지 도 11의 덧셈 연산을, 도 12의 (b)는 도 9 내지 도 11의 2배 연산을 개념적으로 나타내는 그래프이다.
도 13은 본 발명의 실시예에 따른 소수 유한체 상의 타원 곡선 암호 시스템에 대한 단순 전력 분석 공격 대응 방법을 나타내는 순서도이다.
도 14는 본 발명의 실시예에 따른 소수 유한체 상의 타원 곡선 암호 시스템에 대한 차분 전력 분석 공격 및 오류 주입 공격에 대응하는 방법을 나타내는 순서도이다.
도 15는 본 발명의 실시예에 따른 이진 유한체 상의 타원 곡선 암호 시스템에 대한 단순 전력 분석 공격 대응 방법을 나타내는 순서도이다.
도 16은 본 발명의 실시예에 따른 이진 유한체 상의 타원 곡선 암호 시스템에 대한 차분 전력 분석 공격 및 오류 주입 공격에 대응하는 방법을 나타내는 순서 도이다.
본 발명은 암호 시스템(Cryptographic System)에 관한 것으로서, 특히 타원 곡선 암호 시스템(Elliptic curve cryptosystem)의 타원 곡선의 정의 영역을 기존의 유한체에서 확장 링(extension)으로 확장시켜 보안을 더욱 강화하고, 하나의 알고리즘으로 타원 곡선 암호 시스템에 대한 전력 분석 공격(power attack) 및 오류 주입 공격(fault injection attack)에 대응할 수 있는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법에 관한 것이다.
정보화 사회의 도래와 함께, 암호 알고리즘 및 암호 프로토콜(Protocol)을 이용한 정보의 보호는 그 중요성을 더해가고 있다. 이러한 암호 알고리즘 중에서 타원 곡선 암호 시스템 등으로 대표되는 공개키 암호 알고리즘은, 비밀 키 암호 알고리즘의 단점인 키(key) 분배 문제 및 전자 서명의 문제 등을 해결하면서, 인터넷이나 금융 망과 같은 여러 분야에 빠르게 적용되고 있다.
타원 곡선 암호 시스템(Elliptic curve cryptosystem, 이하 ECC)을 간략히 설명한다. ECC는 특히, 상대적으로 짧은 키 사이즈(key size)로도 높은 안전성을 확보할 수 있어, 스마트 카드 및 전자 서명 등에 두루 사용되고 있다. ECC는 타원 곡선이라고 불리는 수학적 객체 상에서 정의되는 특수한 가산법을 기반으로 하여, 암호화/복호화하는 암호 시스템이다.
구체적으로, ECC에서는, 임의의 타원곡선(Elliptic Curve) E와 상기 E상의 한 점 P가 시스템 파라미터로서 선택된다. 암호화 통신을 원하는 갑은 무작위(Random)로 정수 d를 생성시키고, 상기 정수 d와 상기 P를 곱하여 Q(=d*P)를 생성시킨다. 갑은 상기 Q를 공개키로 공개하고, d를 갑의 비밀키로 안전하게 저장한다.
반대로 갑에게 메시지 M을 비밀리에 전송하고자 하는 을은, 먼저 무작위로 정수 k를 생성시키고, 시스템 파라미터 중의 하나인 P와 상기 정수 k를 곱하여 A(=k*P)를 생성시킨다. 갑이 제공한 공개키 Q와 보내고자 하는 메시지 M을 사용하여 B(= M + k*Q)를 생성시킨다. 마지막으로 을은 최종 결과 암호문(A,B)을 갑에게 전송한다.
암호문(A,B)을 을로부터 전달받은 값은 자신의 비밀키 d를 사용하여 d*A를 계산한 후, 수학식 1과 같은 연산을 수행하여 메시지 M을 복원한다.
M = B - d*A
따라서, ECC에서 가장 중요한 연산은 타원 곡선상의 임의의 점 P와 어떤 정수 d의 곱인 d*P를 계산하는 상수배 곱셈 연산이다. 이때, ECC에서의 상수배 곱셈 연산은 타원 곡선 상의 덧셈 연산 및 2배 연산으로 구현될 수 있다.
다음으로, ECC 동작의 기본이 되는 타원 곡선에 대해 알아본다.
소수의 거듭 제곱 형대인 q에 대해, Fq는 원소의 개수가 q개인 유한체를 나타낸다. Fq 상의 타원 곡선 E는 무한원점(point at infinity) O를 포함하고, 다음 의 수학식 2의 비특이 바이어슈트라스 방정식(nonsingular Weierstrass equation)을 만족하는 포인트들의 집합이다.
y2 + a1*x*y + a3*y = x3 + a2*x2 + a4*x + a6, ai ∈ Fq
Fq의 임의의 확장체(extension field) K에 대해, E(K)는 다음의 수학식 3과 같이, 유리 타원 곡선 점(rational elliptic curve point)들로 이루어진 E의 부분 집합으로 정의된다. 다만, 설명의 편의를 위해, 혼돈이 발생하지 아니하는 한도에서, E(K)는 E로 나타낼 수 있다.
E(K) = {(x,y) ∈ E │ x,y ∈ K} ∪ {O}
잘 알려진 바와 같이, E(K)는 특정한 덧셈 공식에 대해, 가환군(Abelian group)을 형성한다. 예를 들어, q가 2의 거듭 제곱 형태이고 타원 곡선 E가 초특이 타원 곡선(supersingular elliptic curve)이 아니라면, 적당한 타원 곡선 동형 사사상(elliptic curve isomorphism)를 이용하여, 상기 수학식 2는 다음의 수학식 4와 같이 변환될 수 있음이 알려져 있다.
y2 + x*y = x3 + a*x2 + b, a, b ∈ Fq
무한원점 O가 항등원(identity element)으로 작용하고, 상기 수학식 4를 만족하는 두 점 P와 Q가 다음의 수학식 5를 만족한다고 하자.
P = (x1, y1) ∈ E(K) - {O}
Q = (x2, y2) ∈ E(K) - {O, -P}
상기 수학식 5의 조건하에서, 상기 수학식 4를 만족시키는 두 점 P와 Q에 대하여 점 P의 역원 -P는 -P = (x1, x1+y1)으로 정의되며, 두 점 P와 Q에 대한 덧셈(P + Q = (x3, y3))은 다음의 수학식 6 및 수학식 7로 주어진다. 이때, 수학식 6은 P와 Q가 다른 경우의 덧셈 공식을 정의한 것이고, 수학식 7은 P와 Q가 같은 경우의 덧셈 공식을 정의한 것이다.
x3 = ((y1 + y2)/(x1 + x2))2 + (y1 + y2)/(x1 + x2) + x1 + x2 + a
y3 = ((y1 + y2)/(x1 + x2))*(x1 + x3) + x3 + y1
x3 = x12 + b/x12
y3 = x12 + (x1 + y1/x1)*x3 + x3
이 밖에, 다른 타원 곡선들에 대한 유사한 덧셈 공식은 발명이 속하는 기술 분야 및 그 분야의 종래 기술의 끝단에 기재되는 References [17]에서 찾을 수 있다(이하에서는 References 번호를 간략히 []안에 번호를 기입하여 기재한다). 그런데, ECC 실행시 가장 많은 시간을 소모하는 연산 중 하나는 스칼라 곱셈 연산이다. 만약 k가 양의 정수이고 P가 타원 곡선 E 위의 한 점이라면, 스칼라 곱 k*P는 P를 k번 더하는 연산을 의미하고, (-k)*P는 (-P)를 k번 더하는 연산을 의미한다.
ECC에 대한 더욱 자세한 설명은 [13] 및 [19]에 기재되어 있다.
그런데, ECC는 상기와 같은 장점이 있는 반면, 전력 분석 공격(Power Attack) 및 오류 주입 공격(Fault Injection Attack) 등과 같은 다양한 부채널 공격(side channel attack)에 약하다는 것은 잘 알려진 사실이다. 전력 분석 공격 및 오류 주입 공격에 대하여 간략히 설명한다.
먼저, 전력 분석 공격에 대하여 설명한다. 전력 분석 공격에 대한 더욱 자세한 설명은 [14, 7]에 기재되어 있다.
전력 분석 공격은 Kocher et al. [14]에 의하여 처음으로 알려졌다. 전력 분석 공격은 전력 소비 파형들(power consumption signals)로부터 비밀 정보를 찾아낸다. 지금까지 알려진 ECC에 대한 다양한 전력 분석 공격들로는 심플 전력 분석 공격(Simple Power Attack, 이하 SPA), 차분 전력 분석 공격(Differential Power Attack, 이하 DPA), 리파인드 전력 분석 공격(refined power-analysis attack, 이하 RPA), 제로 값 포인트 공격(Zero-Value Point Attack, 이하 ZPA) 및 더블링 공격(Doubling Attack) 등이 있다.
SPA는 암호 동작의 단일 실행에 대한 전력 소비 파형들을 관찰하고, 이로부터 다양한 기본 암호 연산들(예를 들어, ECC에서의 덧셈 연산 및 2배(doubling) 연산 등)을 구별한다. 따라서, 더블 앤 애드 올웨이즈 방법(Double-and-Add Always Method) 및 몽고메리 전력 래더 알고리즘(Montgomery powering ladder algorithm)은 SPA에 대한 대응책으로 사용된다. 더블 앤 애드 올웨이즈 방법은 [7]에, 몽고메 리 전력 래더 알고리즘은 [12, 15, 20]에 더욱 자세히 설명된다.
DPA는 전력 소비 데이터(power consumption data)를 수집하고, 그 데이터들로부터 유용한 정보를 얻기 위하여 통계 툴(statistical tool)을 사용한다. 랜덤 블라인딩 기법들(random blinding techniques) 등이 DPA의 대응책으로 사용된다.
랜덤 블라인딩 기법들로는, 랜덤 지수 블라인딩 방법(random exponent blinding method), 랜덤 메세지 블라인딩 방법(random massage blinding technique), 랜덤 포인트 표현법(random point representaion) 등이 있다. 그런데, 상기와 같은 랜덤 블라인딩 기법들은 RPA 및 ZPA 등의 전력 분석 공격에 약한 단점이 있다. 상기와 같은 랜덤 블라인딩 기법들은 [7]에 더욱 자세하게 설명되어 있다.
또 다른 DPA 대응책으로, 랜덤 타원 곡선 동형 사상 방법(random elliptic curve isomorphism method), 랜덤체 동형 사상 방법(random field isomorphism method), 2P* 방법 및 승수 랜덤화 방법(multiplier randomization method) 등이 있다. 그러나, 랜덤 타원 곡선 동형 사상 방법, 랜덤체 동형 사상 방법 및 2P* 방법은 랜덤 블라인딩 기법들과 마찬가지로 RPA 및 ZPA 등의 전력 분석 공격에 약한 단점이 있고, 승수 랜덤화 방법은 메모리 효율 측면에서 단점이 있다. 랜덤 타원 곡선 동형 사상 방법 및 랜덤체 동형 사상 방법은 [11]에 자세히 소개되어 있고, 2P* 방법 및 승수 랜덤화 방법은 [6]에 자세히 소개되어 있다.
다음으로, RPA는 제로 좌표(zero coordinate)를 가지는 점들에 대한 프로세 싱과 그 외의 점들에 대한 프로세싱이 서로 다른 전력 소비 특성(power consumption profiling)을 갖는다는 특성을 이용한다. RPA는 우선, 제로("0") 좌표를 갖는 특정 포인트를 선택한 후, 특정한 스칼라에 의해 곱해진 결과가 상기 특정 포인트와 같은 포인트를 디바이스(시스템)에 입력함으로써 전력 분석 공격을 수행한다. ZPA는 RPA와 큰 틀은 같으나, 제로 좌표들을 사용하는 것이 아니라 제로 값 레지스터(zero-value register)를 사용한다.
그런데, RPA 및 ZPA 모두 만약 대응되는 스칼라 곱 알고리즘(scalar multiplication algorithms)의 중간 결과가 부분적 또는 전체적으로 추측될 수 있는 경우에 한하여 동작한다. 그러므로, 만약 적절한 메세지 및/또는 지수 랜덤화 기법들(exponent randomization technique)이 스칼라 곱 알고리즘들에 적용된다면, RPA 및 ZPA는 방지될 수 있을 것이다. RPA 및 ZPA는 각각 [9] 및 [1]에 더욱 자세히 설명되어 있다.
마지막으로, 전력 분석 공격 중 더블링 공격은 공격자(adversary)가 전력 소비 파형들로부터 두 개의 다른 연산들의 두 개의 중간 결과 값들이 동일한지 아닌지를 알아낼 수 있다는 가설에 근거하여, 암호 시스템을 공격한다. 그러므로, 만약 랜덤 메세지 블라인딩 기법 및/또는 랜덤 지수 블라인딩 기법이 적절히 사용된다면, 더블링 공격은 방지될 수 있을 것이다. 더블링 공격은 [8]에 더욱 자세히 설명되어 있다.
다음으로, 오류 주입 공격에 대하여 설명한다. 오류 주입 공격에 대한 더욱 자세한 설명은 [2,4,5]에 기재되어 있다.
오류 주입 공격은 매우 강력한 암호 시스템 공격 기법이다. 그 기본 개념은 시스템 내부로 고의적인 오류(fault)를 삽입하고 그 오류 결과를 분석하여 의미 있는 정보를 얻는 것이다. 그러므로, 오류 주입 공격에 대한 일반적인 대응책은 입력 값들 또는 출력 값들의 유효성(validity)을 체크하는 것이다. 구체적으로, ECC에서 타원 곡선 스칼라 곱 알고리즘(elliptic curve scalar multiplication)의 입력 및 출력 포인트들이 원 타원 곡선 방정식을 만족하는지를 조사함으로써, 오류 주입 여부가 조사될 수 있다.
또 다른 강력한 오류 주입 공격 대응책으로는, 샤미르(Shamir)에 의하여 제안되고 RSA 암호 시스템에 적용 가능한 다음과 같은 방법이 있다.
먼저 암호화 통신을 원하는 갑은 큰 두 소수 p와 q를 생성하고, 상기 두 소수를 이용하여 N(=p×q) 및 φ(n){=(p-1)×(q-1)}을 계산한다. 여기서 소수라 함은, 2, 3, 5, 7, 13, 17 및 101과 같이, 자신과 1로만 나누어지는 수를 말한다. 또한 상기 φ(n)과 서로 소(Relatively Prime)인 정수 e를 선택하고 다음의 수학식 8을 만족시키는 정수 d를 생성시킨다. 여기서 서로 소는, 공약수가 "1" 하나 뿐인 두 자연수 사이의 관계를 말하는 것이다. 예를 들면, 8과 9는 서로 소 관계에 있는데, 8의 약수가 1, 2, 4, 및 8이고 9의 약수가 1, 3 및 9이기 때문에 8과 9는 공약수가 "1" 하나 뿐이다.
ed=1 mod φ(n)
수학식 8은, ed를 φ(n)으로 나눈 나머지가 1(one)이 됨을 의미하는 모듈라 방정식(Modular Equation)이다.
이어서, 갑은 N과 e를 자신의 공개키로 공개하고, p, q 및 d를 자신의 비밀키로 안전하게 저장한다. 갑에게 메시지 m을 비밀리에 전송하고자 하는 을은, 갑의 공개키 (N, e)를 이용하여 다음의 수학식 9와 같이 주어지는 모듈라 지수승(Modular Exponentiation) 연산을 수행한 결과인 암호문 C를 갑에게 전송한다.
Figure 112007050643324-pat00001
C = mod N
암호문 C를 을로부터 전송받은 갑은, 자신의 비밀키 d를 이용하여 다음의 수학식 10과 같은 모듈라 지수승 연산을 수행하여 원래의 메시지(평문, plaintext) m을 복구한다.
Figure 112007050643324-pat00002
m = mod N
따라서, RSA 공개키 암호 시스템에서 가장 중요한 연산은
Figure 112007050643324-pat00003
mod N 또는
Figure 112007050643324-pat00004
mod N을 계산하는 모듈라 지수승 연산이다. 이때, 수학식 9 또는 수학식 10을 오류 주입 공격에 안전하게 계산하기 위해, 샤미르의 방법은 먼저, 충분히 작은 임의의 소수 r을 선택하고, 다음의 수학식 11과 같은 mp'와 mq'를 계산한다.
mp' = md mod (p-1)*(r-1) mod p*r
mq' = md mod (q-1)*(r-1) mod q*r
다음으로 샤미르의 방법은 mp'가 mq' mod r과 동일한지(mp'= mq'mod r)를 조사한다. 다음으로, 중국인 잉여 정리(Chinese remainder therorem :CRT)를 이용하여, 수학식 10과 같은 평문 m을 쉽게 얻을 수 있다. [18]은 RSA 암호 시스템에 대하여 자세히 설명하고 있다.
또한 최근에 새로운 종류의 오류 주입 공격으로 부호 변환 오류 주입 공격(sign change fault attack)이 제안되었다. 부호 변환 오류 주입 공격이란 ECC 암호 시스템의 스칼라 곱 연산에서의 중간 결과 값에 대하여 그 좌표의 부호만을 변경함으로써, 일반적인 오류 주입 공격의 방어책인 포인트 유효성 판단법을 회피할 수 있는 공격법이다. 따라서 상기 공격법에 대응하기 위하여 두 번의 ECC 스칼라 곱 연산을 수행하는 방법이 그 대응법으로 제안되었지만 이는 성능 저하의 원인이 된다. 부호 변환 오류 주입 공격은 [4]에 자세히 설명되어 있다.
이렇듯, 지금까지 살펴본 ECC에 대한 전력 분석 공격 및 오류 주입 공격들에 대한 일반적인 방법법들은, 안전성이나 성능에 문제가 있거나, 전력 분석 공격 및 오류 주입 공격 모두에 대응할 수 없거나, 또는 최근 문제시되고 있는 부호 변환 오류 주입 공격에 대한 대응에 따른 시스템 성능 저하를 야기하는 문제가 있다.
[References]
[1] T. Akishita and T. Takagi, Zero - Value Point Attacks on Elliptic Curve Cryptosystem, ISC 2003, LNCS vol. 2851, Springer-Verlag, 2003, pp. 218- 233.
[2] I. Biehl, B. Meyer, and V. Muller, Differential Fault Attacks on Elliptic Curve Cryptosystems, CRYPTO 2000, LNCS vol. 1880, Springer-Verlag, 2000, pp. 131-146.
[3] I.F. Blake, G. Seroussi and N.P. Smart, Elliptic Curves in Cryptography, Cambridge University Press, 1999.
[4] J. Blomer, M. Otto and J.-P. Seifert, Sign Change Fault Attacks on Elliptic Curve Cryptosystems, FDTC 2006, LNCS vol. 4236, Springer-Verlag, 2006, pp. 36-52.
[5] D. Boneh, R.A. Demillo, and R.J. Lipton, On the Importance of Checking Cryptographic Protocols for Faults, EUROCRYPT '97, LNCS vol. 1233, Springer-Verlag, 1997, pp. 37-51.
[6] M. Ciet and M. Joye, ( Virtually ) Free Randomization Techniques for Elliptic Curve Cryptography, ICICS 2003, LNCS vol. 2836, Springer-Verlag, 2003, pp. 348-359.
[7] J.-S. Coron, Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems, CHES 1999, LNCS vol. 1717, Springer-Verlag, 1999, pp. 292-302.
[8] P. Fouque and F. Valette, The Doubling Attack - Why Upwards Is Better Than Downwards, CHES 2003, LNCS vol. 2779, Springer-Verlag, 2003, pp. 269-280.
[9] L. Goubin, A Refined Power - Analysis Attack on Elliptic Curve Cryptosystems, PKC 2003, LNCS vol. 2567, Springer-Verlag, 2003, pp. 199-210.
[10] Institute of Electrical and Electronics Engineers, IEEE P1363 : IEEE Standard Specifications for Public - Key Cryptography, 2000.
[11] M. Joye and C. Tymen, Protections against Differential Analysis for Elliptic Curve Cryptography - An Algebraic Approach, CHES 2001, LNCS vol. 2162, Springer-Verlag, 2001, pp. 377-390.
[12] M. Joye and S.-M. Yen, The Montgomery Powering Ladder, CHES 2002, LNCS vol. 2523, Springer-Verlag, 2002, pp. 291-302.
[13] N. Koblitz, Elliptic Curve Cryptosystems, Mathematics Computation, 48, 1987, pp. 203-209.
[14] P. Kocher, J. Jaffe, and B. Jun, Differential Power Analysis, CRYPTO '99, LNCS vol. 1666, Springer-Verlag, 1999, pp. 388-397.
[15] J. Lopez and R. Dahab, Fast Multiplication on Elliptic Curves over GF(2 m ) without Precomputation, CHES 1999, LNCS vol. 1717, Springer-Verlag, 1999, pp. 316-327.
[16] H. Mamiya, A. Miyaji and H. Morimoto, Efficient Countermeasures Against RPA , DPA , and SPA, CHES 2004, LNCS vol. 3156, Springer-Verlag, 2004, pp. 343-356.
[17] A. Menezes, Elliptic Curve Public Key Cryptosystems, Kluwer, 1993.
[18] A.J. Menezes, P.C.van Oorschot and S.A. Vanstone, Handbook of Applied Cryptography, CRC Press, 1997.
[19] V.S. Miller, Use of Elliptic Curves in Cryptography, CRYPTO 85, LNCS vol. 218, Springer-Verlag, 1986, pp. 417-426.
[20] P.L. Montgomery, Speeding the Pollard and Elliptic Curve Methods of Factorization, Mathematics of Computation, 48, 1987, pp. 243-264.
[21] National Institute of Standards and Technology, Recommended Elliptic Curves for Federal Government Use , Appendix to FIPS 186-2, 2000.
[22] A. Shamir, How to check modular exponentiation, Presented at the rump session of EUROCRYPT '97, 1997.
본 발명이 이루고자하는 기술적 과제는 타원 곡선 암호 시스템의 안정성을 증가시킬 수 있는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법을 제공하는 것에 있다.
본 발명이 이루고자하는 기술적 과제는 타원 곡선 암호 시스템에 대한 전력 분석 공격 및 오류 주입 공격에 모두 대응할 수 있는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법을 제공하는 것에 있다.
본 발명이 이루고자하는 기술적 과제는 타원 곡선 암호 시스템에 대한 부호 변환 오류 주입 공격에 대응하면서도 시스템 성능의 저화를 방지할 수 있는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법을 제공하는 것에 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법은, 타원 곡선 암호 시스템의 타원 곡선의 정의 영역을 제 1 영역에서 확장 링(Extension Ring)으로 확장하는 단계, 상기 확장 링에서 임시 암호문을 생성하고, 상기 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 단계 및 상기 타원 곡선 암호 시스템에 대한 부채널 공격이 체크되지 아니하는 경우, 상기 제 1 영역에 대한 최종 암호문을 생성하는 단계를 구비한다.
상기 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 단계는 상기 타원 곡선 암호 시스템에 대한 전력 분석 공격을 방어하는 단계 및 상기 타원 곡선 암호 시스템에 대한 오류 주입 공격을 체크하는 단계를 구비할 수 있다.
상기 임시 암호문은 상기 타원 곡선 암호 시스템의 타원 곡선 방정식을 만족하는 점 P 및 비밀 키 d의 스칼라 곱일 수 있다. 상기 임시 암호문을 생성하는 단계는 상기 점 P를 수신하고 상기 비밀 키 d를 설정하는 단계, 상기 비밀 키 d를 비트열로 나타내는 단계 및 상기 점 P와 상기 비밀 키 d에 대한 스칼라 곱 연산을 수행하는 단계를 구비할 수 있다. 상기 비밀 키 d의 비트 개수는 2를 밑으로 하는 상기 비밀키 d의 로그 log2d의 크기와 같을 수 있다.
상기 전력 분석 공격은 차등 전력 분석 공격일 수 있다. 상기 전력 분석 공격을 방어하는 단계는 상기 타원 곡선 암호 시스템의 타원 곡선 방정식을 만족하는 점 P가 주어진 경우 상기 비밀 키 d의 각 비트에 대하여 덧셈 연산 및 2배 연산을 수행할 수 있다.
상기 오류 주입 공격을 체크하는 단계는 상기 임시 암호문이 상기 제 2 타원 곡선 방정식을 만족하는 지를 체크할 수 있다. 상기 제 2 타원 곡선 방정식은 상기 타원 곡선 암호 시스템으로의 부호 변환 오류 주입 공격(sign change fault injection attack) 여부를 체크하는 항을 구비할 수 있다.
바람직하게는, 상기 제 1 영역은 소수 유한체(Prime Finite Field)일 수 있다. 이때, 상기 타원 곡선의 정의 영역을 확장 링으로 확장하는 단계는 임의의 소수(prime) p와 임의의 정수 r을 설정하는 단계, 상기 소수 p에 대한 상기 소수 유한체 Fp 상의 제 1 타원 곡선 방정식을 정의하는 단계 및 상기 제 1 타원 곡선 방정식을, 상기 소수 p와 정수 r에 대한 확장 링 Zpr 상의 제 2 타원 곡선 방정식으로 변환하는 단계를 구비할 수 있다.
상기 제 1 타원 곡선 방정식은 상기 제 1 타원 곡선 방정식을 야코비언 좌표(Jacobian coordinate)로 표현하면 다음의 타원 곡선 방정식 E1이고, 상기 타원 곡선 방정식 E1을 아핀 좌표(Affine coordinate)로 표현하면 다음의 타원 곡선 방정식 E2일 수 있다.
E1 : Y2*Z = X3 + a*X*Z4 + b*Z6
E2 : y2 = x3 + a*x + b
이때, 상기 제 1 타원 곡선 방정식을 제 2 타원 곡선 방정식으로 변환하는 단계는 상기 b를 다음의 B로 변환하여, 다음의 제 2 타원 곡선 방정식 E'로 변환할 수 있다. 여기서, (t, s)는 타원 곡선 암호 시스템의 입력점 P의 좌표를 의미한다.
B = s2 - t3 - a*t mod p*r
E' : Y2*Z = X3 + a*X*Z4 + B*Z6
바람직하게는, 상기 제 2 타원 곡선 방정식은, 상기 타원 곡선 암호 시스템으로의 부호 변환 오류 주입 공격 여부를 체크하는 항을 구비할 수 있다. 이때, 상기 제 1 타원 곡선 방정식은 상기 제 1 타원 곡선 방정식을 야코비언 좌표(Jacobian coordinate)로 표현하면 다음의 타원 곡선 방정식 E1이고, 상기 타원 곡선 방정식 E1을 아핀 좌표(Affine coordinate)로 표현하면 다음의 타원 곡선 방정식 E2일 수 있다.
E1 : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + b*Z6
E2 : y2 + p*y = x3 + a*x + b
이때, 상기 제 1 타원 곡선 방정식을 제 2 타원 곡선 방정식으로 변환하는 단계는 상기 b를 다음의 B로 변환하여, 다음의 제 2 타원 곡선 방정식 E'로 변환할 수 있다. 여기서, (t, s)는 타원 곡선 암호 시스템의 입력점 P의 좌표를 의미한다.
B = s2 + p*s - t3 - a*t mod p*r
E' : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + B*Z6
바람직하게는, 상기 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 단계는, 상기 타원 곡선 암호 시스템에 대한 오류 주입 공격에 대하여, 상기 제 2 타원 곡선 방정식의 상기 정수 r에 대한 모드 연산의 결과인 제 3 타원 곡선 방정식을 상기 임시 암호문이 만족하는 지를 체크할 수 있다.
바람직하게는, 상기 제 2 타원 곡선 방정식을 만족하는 두 점들을 P1(P1 = (X1; Y1; Z1)) 및 P2(P2 = (X2; Y2; Z2))이라 하고, 상기 P1 및 상기 P2가 무한원점이 아니라고 할 때, 상기 P1이 상기 P2 및 P2의 역원과 같지 않다면(P1 ≠ ±P2), 두 점 P1과 P2의 합 P3(= P1 + P2 = (X3; Y3; Z3))의 각 좌표는 다음의 덧셈 연산에 의할 수 있다.
Z3 = Z1*Z2*(X2*Z12 - X1*Z22)
X3 = (Y2*Z13 - Y1*Z23)2 - (X2*Z12 - X1*Z22)2*(X2*Z12 + X1*Z22)
Y3 = (Y2*Z13 - Y1*Z23)*(X1*Z22*(X2*Z12 - X1*Z22)2 - X3) - (Y1 + p*Z13)*(Z23*(X2*Z12 - X1*Z22)3)
바람직하게는, 상기 제 2 타원 곡선 방정식을 만족하는 두 점들을 P1(P1 = (X1; Y1; Z1)) 및 P2(P2 = (X2; Y2; Z2))이라 하고, 상기 P1 및 상기 P2가 무한원 점이 아니라고 할 때, 상기 P1과 상기 P2가 같다면(P1 = P2), 두 점 P1 및 P2의 합 P3(= P1 + P2 = 2*P1 = 2*P2 = (X3; Y3; Z3))의 각 좌표는 다음의 2배 연산에 의할 수 있다.
Z3 = Z1*(2*Y1 + p*Z13)
X3 = (3*X12 + a*Z14)2 - 2*X1*(2*Y1 + p*Z13)2
Y3 = (3*X12 + a*Z14)*(X1*(2*Y1 +p*Z13)2-X3) - (Y1 + p*Z13)*(2*Y1 + p*Z13)3
바람직하게는, 상기 제 1 영역에 대한 최종 암호문을 생성하는 단계는 상기 임시 암호문의 확장 링 상의 각 좌표들의 상기 소수 p에 대한 모드 연산을 수행하여 상기 최종 암호문을 생성할 수 있다.
바람직하게는, 상기 제 1 영역은 이진 유한체(binary finite field)일 수 있다. 상기 타원 곡선의 정의 영역을 확장 링으로 확장하는 단계는, m차 이진 기약 다항식 f(z)와 임의의 이진 다항식 r(z)를 설정하는 단계, 상기 다항식 f(z)에 대한 이진 유한체 F2m(= F2[z]/f(z)) 상의 제 1 타원 곡선 방정식을 정의하는 단계 및 상기 제 1 타원 곡선 방정식을, 상기 다항식 f(z) 및 다항식 r(z)에 대한 확장 링 F2[z]/(f(z)*r(z)) 상의 제 2 타원 곡선 방정식으로 변환하는 단계를 구비할 수 있다. 바람직하게는, 상기 다항식 r(z)는 이진 기약다항식(irreducible binary polynomial)일 수 있다.
바람직하게는, 상기 제 1 타원 곡선 방정식은 다음의 타원 곡선 방정식 E이 고, 상기 제 2 타원 곡선 방정식은 다음의 타원 곡선 방정식 E'일 수 있다.
E : Y2 + X*Y*Z = X3 + a*X2*Z2 + b*Z6
E' : Y2*Z + X*Y*Z = X3 + a*X2*Z2 + B*Z6
이때, 상기 b는 다음의 상기 B로 변환될 수 있다. 여기서, (t, s)는 타원 곡선 암호 시스템의 입력점 P의 좌표를 의미한다.
B = s2 + t*s + t3 + a*t2 mod f(z)*r(z)
바람직하게는, 상기 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 단계는 상기 타원 곡선 암호 시스템에 대한 오류 주입 공격에 대하여, 상기 제 2 타원 곡선 방정식을 상기 다항식 r(z)에 대한 모드 연산의 결과인 제 3 타원 곡선 방정식을 상기 임시 암호문이 만족하는 지를 검토할 수 있다.
바람직하게는, 상기 제 2 타원 곡선 방정식을 만족하는 두 점들을 P1(P1 = (X1; Y1; Z1)) 및 P2(P2 = (X2; Y2; Z2))이라 하고, 상기 P1 및 상기 P2가 무한원점이 아니라고 할 때, 상기 P1이 상기 P2 및 P2의 역원가 같지 않다면(P1 ≠ ±P2), 두 점 P1과 P2의 합 P3(= P1 + P2 = (X3; Y3; Z3))의 각 좌표는 다음의 덧셈 연산에 의할 수 있다.
Z3 = Z1*Z2*(X1*Z22 - X2*Z12)
X3 = a*Z23 + (Y1*Z23 + Y2*Z13)*(Y1*Z23 + Y2*Z13 + Z3) + (X1*Z22 + X2*Z12)3
Y3 = ((Y1*Z23 + Y2*Z13)*X2 + Z1*Y2*(X1*Z22 + X2*Z12))*((X1*Z22 + X2*Z12)*Z1)2 + (Y1*Z23 + Y2*Z13 + Z3)*X3
바람직하게는, 상기 제 2 타원 곡선 방정식을 만족하는 두 점들을 P1(P1 = (X1; Y1; Z1)) 및 P2(P2 = (X2; Y2; Z2))이라 하고, 상기 P1 및 상기 P2가 무한원점이 아니라고 할 때, 상기 P1과 상기 P2가 같다면(P1 = P2), 두 점 P1 및 P2의 합 P3(= P1 + P2 = 2*P1 = 2*P2 = (X3; Y3; Z3))의 각 좌표는 다음의 2배 연산에 의할 수 있다.
Z3 = X1*Z12
X3 = (X1 + C*Z12)4
Y3 = X14*Z3 + (Z3 + X12 + Y1*Z1)*X3
이때, 상기 C는 상기 제 2 타원 곡선 방정식의 계수 B에 대하여, 다음과 같을 수 있다.
C = B1/4 mod f(z)*r(z)
바람직하게는, 상기 제 1 영역에 대한 최종 암호문을 생성하는 단계는 상기 임시 암호문의 확장 링 상의 각 좌표들의 상기 다항식 f(z)에 대한 모드 연산을 수행할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 실시예에 소수 유한체에서의 타원 곡선 암호 시스템에 대한 단순 전력 분석 공격에 대응하는 방법은, 소수 p에 대한 소수 유한체 Fp 상의 제 1 타원 곡선 방정식(E : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + b*Z6)을, 상기 소수 p 및 임의의 정수 r에 대한 확장 링 Zpr 상의 제 2 타원 곡선 방정식(E' : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + B*Z6)으로 변환하는 단계, 상기 타원 곡선 암호 시스템의 비밀 키 d를 비트열로 변환하는 단계 및 상기 제 2 타원 곡선 방정식을 만족하는 임의의 점 P와 상기 비밀 키 d의 각 비트에 대한 덧셈 연산 및 2배 연산을 수행하여, 상기 점 P와 상기 비밀 키 d의 스칼라 곱인 암호문 Q를 생성하는 단계를 구비한다.
상기 기술적 과제를 해결하기 위한 본 발명의 실시예에 소수 유한체에서의 타원 곡선 암호 시스템에 대한 전력 공격 및 오류 주입 공격에 대응하는 방법은, 소수 p에 대한 소수 유한체 Fp 상의 제 1 타원 곡선 방정식(E : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + b*Z6)을, 상기 소수 p 및 임의의 정수 r의 곱에 대한 확장 링 Zpr 상의 제 2 타원 곡선 방정식(E' : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + B*Z6)으로 변환하는 단계, 상기 제 2 타원 곡선 방정식을 만족하는 임시 암호문에 대한 차분 전력 분석 공격을 방어하는 단계, 상기 제 2 타원 곡선 방정식을 만족하는 임시 암호문에 대한 오류 주입 공격을 체크하는 단계 및 상기 확장 링 상의 임시 암호문을 상기 소수 유한체 상의 최종 암호문으로 변환하는 단계를 구비한다.
상기 기술적 과제를 해결하기 위한 본 발명의 실시예에 이진 유한체에서의 타원 곡선 암호 시스템에 대한 단순 전력 분석 공격에 대응하는 방법은, m차 다항식 f(z)에 대한 이진 유한체 F2m(= F2[z]/f(z)) 상의 제 1 타원 곡선 방정식(E : Y2 + X*Y*Z = X3 + a*X2*Z2 + b*Z6)을, 상기 다항식 f(z) 및 임의의 다항식 r(r)에 대한 확장 링 F2[z]/(f(z)*r(z)) 상의 제 2 타원 곡선 방정식(E' : Y2*Z + X*Y*Z = X3 + a*X2*Z2 + B*Z6)으로 변환하는 단계, 상기 타원 곡선 암호 시스템의 비밀 키 d를 비트열로 변환하는 단계 및 상기 제 2 타원 곡선 방정식을 만족하는 점 P와 상기 비밀 키 d의 각 비트에 대한 덧셈 연산 및 2배 연산을 수행하여, 상기 점 P와 상기 비밀 키 d의 스칼라 곱인 암호문 Q를 생성하는 단계를 구비한다.
상기 기술적 과제를 해결하기 위한 본 발명의 실시예에 이진 유한체에서의 타원 곡선 암호 시스템에 대한 전력 공격 및 오류 주입 공격에 대응하는 방법은 m차 이진 다항식 f(z)에 대한 이진 유한체 F2m(= F2[z]/f(z)) 상의 제 1 타원 곡선 방정식(E : Y2 + X*Y*Z = X3 + a*X2*Z2 + b*Z6)을, 상기 다항식 f(z) 및 임의의 다항식 r(r)에 대한 확장 링 F2[z]/(f(z)*r(z)) 상의 제 2 타원 곡선 방정식(E' : Y2*Z + X*Y*Z = X3 + a*X2*Z2 + B*Z6)으로 변환하는 단계, 상기 제 2 타원 곡선 방정식을 만족하는 임시 암호문에 대한 차등 전력 분석 공격을 방어하는 단계, 상기 제 2 타 원 곡선 방정식을 만족하는 임시 암호문에 대한 오류 주입 공격을 체크하는 단계 및 상기 확장 링 상의 임시 암호문을 상기 이진 유한체 상의 최종 암호문으로 변환하는 단계를 구비한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명이 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 제 1 실시예에 따른 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법(1000)은, 타원 곡선 암호 시스템의 타원 곡선의 정의 영역을 제 1 영역에서 확장 링(Extension Ring)으로 확장하는 S100 단계, 상기 확장 링에서 임시 암호문을 생성하고, 상기 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 S200 단계 및 상기 타원 곡선 암호 시스템에 대한 부채널 공격이 체크되지 아니하는 경우, 상기 제 1 영역에 대한 최종 암호문을 생성하는 S400 단계를 구비한다.
이하에서는 설명의 편의를 위해, 소수 유한체 및 이진 유한체을 나누어 설명한다. 먼저 소수 유한체에서의 타원 곡선 암호 시스템에 대한 부채널 공격에 대응 하는 방법을 설명한다. 이때, 소수 유한체에서의 확장 링에 대한 타원 곡선 방정식을 먼저 정의하고, 다음으로 확장 링에서의 전력 분석 공격 및 오류 주입 공격에 대응하는 방법을 설명한다.
도 2는 소수 유한체에서의 도 1의 타원 곡선 암호 시스템의 정의 영역을 확장하는 방법을 보다 자세히 나타내는 순서도이다. 도 3은 도 2의 타원 곡선 암호 시스템의 정의 영역을 확장하는 방법을 보다 자세히 나타내는 순서도이다.
전술한 바와 같이, 먼저 확장 링에서의 타원 곡선 방정식을 정의한다. 도 2 및 도 3을 참조하면, 타원 곡선의 정의 영역을 소수 유한체에서 확장 링으로 확장하는 S100a 단계는, 소수 p에 대한 상기 소수 유한체 Fp 상의 제 1 타원 곡선 방정식을 정의하는 S120a 단계 및 상기 제 1 타원 곡선 방정식을, 상기 소수 p와 정수 r에 대한 확장 링 Zpr 상의 제 2 타원 곡선 방정식으로 변환하는 S140a단계를 구비한다.
다시 도 2 및 도 3을 참조하면, 확장 링 상의 제 2 타원 곡선 방정식을 정의하기 위해, 먼저 소수(prime) p, 임의의 정수 r 및 타원 곡선 상의 포인트 P (P= (t,s))을 설정한다(S122a). 이때, 정수 r은 시스템의 계산적 오버헤드를 줄이기 위해 가급적 작은 값을 갖도록 설정하되, 암호 시스템의 안전성이 보장될 수 있는 정도의 값으로 설정되어야 할 것이다.
소수 p와 정수 r이 정해지면, 소수 p에 대한 제 1 타원 곡선 방정식을 야코비언 좌표(Jacobian coordinate) 및/또는 아핀 좌표(Affine coordinate)로 정의한다(S124a 및/또는 S126a). 제 1 타원 곡선 방정식을 야코비언 좌표(Jacobian coordinate)로 표현하면 다음의 수학식 12의 타원 곡선 방정식 E1이고, 제 1 타원 곡선 방정식을 아핀 좌표(Affine coordinate)로 나타내면 다음의 수학식 13의 타원 곡선 방정식 E2와 같다.
E : Y2*Z + p*YZ3 = X3 + a*X*Z4 + b*Z6
y2 + p*y = x3 + a*x + b
이때, 상기 b를 다음의 수학식 14의 B로 변환하여(S142a), 수학식 12 및/또는 수학식 13의 제 1 타원 곡선 방정식은 다음의 수학식 15의 제 2 타원 곡선 방정식 E'로 변환(S144a)될 수 있다.
B = s2 + p*s - t3 - a*t mod p*r
E' : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + B*Z6
상기와 같은 타원 곡선 방정식의 변환 과정은 도 3의 타원 곡선 암호 시스템의 정의 영역을 확장하는 방법을 구체적으로 나타내는 순서도 도 4에 도시된다. 다만, 도 3 및 도 4는 제 1 타원 곡선 방정식을 야코비언 좌표로 표현한 후 아핀 좌표로 변환(S124a 및 S126a)하는 것으로 도시되어 있으나, 이에 한정되는 것은 아니 고, 야코비언 좌표 상의 제 1 타원 곡선 방정식을 아핀 좌표로 변환하지 아니하고 바로 제 2 타원 곡선 방정식으로 변환할 수도 있다.
제 2 타원 곡선 방정식은 수학식 15와 같이, 타원 곡선 암호 시스템으로의 부호 변환 오류 주입 공격(sign change fault injection attack) 여부를 체크하는 항을 구비할 수 있다. 즉, 제 2 타원 곡선 방정식을 이용하여 부호 변환 오류 주입 공격을 체크하기 위해, 수학식 15의 제 2 타원 곡선 방정식은 Y에 대한 일차항 p*Y*Z3을 구비한다.
상기와 같은 Y에 대한 일차항을 구비하지 아니한다면, 수학식 12 내지 수학식 15는 다음의 수학식 16 내지 수학식 19와 같이 정의될 수 있다.
E1 : Y2*Z = X3 + a*X*Z4 + b*Z6
E2 : y2 = x3 + a*x + b
B = y2 - x3 - a*x mod p*r
E' : Y2*Z = X3 + a*X*Z4 + B*Z6
이때, 수학식 12 내지 수학식 15의 Y에 대한 일차항은 암호 시스템의 동작에 영향을 주지 않는다. Y에 대한 일차항의 계수가 소수 p이므로, 그 값은 제 1 영역에서 항상 "0"이기 때문이다. 따라서, 수학식 12 내지 수학식 15는 수학식 16 내지 수학식 19와 제 1 영역에 대하여 동일한 결과를 산출한다.
다만, 플트 공격은 전술한 바와 같이,시스템에 폴트를 유입하여 비밀 정보를 분석하는 공격 유형으로, 이에 대응하기 위하여 암호문(점 P)이 타원 곡선 방정식을 만족하는 지를 체크한다. 그런데, 암호문 P의 Y 좌표의 부호만을 바꾸는 경우, 바뀐 암호문 역시 수학식 19 등의 타원 곡선 방정식의 값은 동일하므로 오류 주입을 체크하기가 어렵다. 반면, 수학식 15 등의 타원 곡선 방정식의 경우, 임의의 점의 Y 좌표의 부호만 바꾼 부호 변환 오류(fault)는 방정식의 등식 결과를 바꾸므로, 그 주입 여부가 체크될 수 있다.
다시 도 1을 참조하면, 본 발명의 실시예에 따른 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법(1000)은 확장 링이 정의되면(S100), 확장 링에서 ECC에 대한 부채널 공격에 대응한다. 이때, 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 S200 단계는 본 발명의 제 2 실시예에 따른 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법을 나타내는 순서도인 도 8에 도시된 바와 같이, 상기 타원 곡선 암호 시스템에 대한 전력 분석 공격을 방어하는 S220 단계 및 상기 타원 곡선 암호 시스템에 대한 오류 주입 공격을 체크하는 S240 단계를 구비할 수 있다.
도 9는 도 8의 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 제 1 대응 방법을 나타내는 순서도이다.
도 8 및 도 9를 참조하면, 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 제 1 대응 방법(S200a)은, 전력 분석 공격에 대응하기 위해(S220), 타원 곡선 방정식을 만족하는 임의의 점 P 및 비밀 키 d를 설정하는 S222 단계, 상기 비밀 키 d를 비트열로 나타내는 S224 단계 및 상기 점 P와 상기 비밀 키 d의 각 비트에 대하여 덧셈 연산 및 2배 연산을 수행함으로써 상기 점 P와 상기 비밀 키 d에 대한 스칼라 곱인 임시 암호문을 생성하는 S226 단계를 구비할 수 있다. 이때, 상기 비밀 키 d의 비트 개수는 2을 밑으로 하는 상기 비밀 키 d의 로그 log2d의 크기와 같을 수 있다. 상기와 같은 암호문의 생성 방법은 도 11에 개념적으로 도시된다.
다만, 본 발명은 확장 링 상에서 전력 분석 공격에 대응하므로, 확장 링(수학식 15 및/또는 수학식 19의 제 2 타원 곡선 방정식)에 대한 덧셈 연산 및 2배 연산이 요구된다. 다음의 수학식 20 및 수학식 21은 각각 소수 유한체에서의 제 2 타원 곡선 방정식에 대한 덧셈 연산 및 2배 연산을 나타낸다.
이때, 상기 제 2 타원 곡선 방정식을 만족하는 두 점들을 P1(P1 = (X1; Y1; Z1)) 및 P2(P2 = (X2; Y2; Z2))이라 하고, 상기 P1 및 상기 P2가 무한원점이 아니라고 할 때, 상기 P1이 상기 P2 및 P2의 역원과 같지 않다면(P1 ≠ ±P2), 수학식 20의 덧셈 연산에 의해, 두 점 P1과 P2의 합 P3(= P1 + P2 = (X3; Y3; Z3))의 각 좌표를 구한다. 반면, 상기 P1과 상기 P2가 같다면(P1 = P2), 두 점 P1 및 P2의 합 P3(= P1 + P2 = 2*P1 = 2*P2 = (X3; Y3; Z3))의 각 좌표는 수학식 21의 2배 연산에 의한다.
Z3 = Z1*Z2*(X2*Z12 - X1*Z22)
X3 = (Y2*Z13 - Y1*Z23)2 - (X2*Z12 - X1*Z22)2*(X2*Z12 + X1*Z22)
Y3 = (Y2*Z13 - Y1*Z23)*(X1*Z22*(X2*Z12 - X1*Z22)2 - X3) - (Y1 + p*Z13)*(Z23*(X2*Z12 - X1*Z22)3)
Z3 = Z1*(2*Y1 + p*Z13)
X3 = (3*X12 + a*Z14)2 - 2*X1*(2*Y1 + p*Z13)2
Y3 = (3*X12 + a*Z14)*(X1*(2*Y1 +p*Z13)2-X3) -(Y1 + p*Z13)*(2*Y1 + p*Z13)3
도 12의 (a)는 수학식 20의 덧셈 연산을, 도 12의 (b)는 수학식 21의 2배 연산을 개념적으로 나타내는 그래프이다.
도 12의 (a)를 참조하면, 타원 곡선상의 두 점 P1 및 P2를 연결한 직선(l1)과 타원 곡선이 만나는 점(X)을 지나면서 y축에 평행한 직선(l2)이 타원 곡선과 만나는 점(P3)이 두 점 P1과 P2의 합이다. 도 12의 (b)를 참조하면, 타원 곡선상의 점 P1에 대한 접선(l1)과 타원 곡선이 만나는 점(X)을 지나면서 y축에 평행한 직선(l2)이 타원 곡선과 만나는 점(P3)이 점 P1의 2배인 P3이다.
다시 도 9를 참조하면, 상기와 같은, 점 P와 비밀 키 d의 각 비트에 대하여 덧셈 연산 및 2배 연산을 수행함으로써 상기 점 P와 상기 비밀 키 d에 대한 스칼라 곱인 임시 암호문을 생성하는 S226 단계는 다음의 알고리즘 1로 정리될 수 있다. <알고리즘 1>
Input :
E : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + B*Z6, an elliptic curve over Zpr
P ∈ E(Zpr)
d = ∑n-1 di*2i : secret scalar
Output : Q = d*P ∈ E(Zpr)
1. Q[0] ← P
2. For i = n-2 to 0 by -1, do
2.1 Q[0] ← DLB - JP(Q[0])
2.2 Q[1] ← ADD - JP(Q[0], P)
2.3 Q[0] ← Q[di]
3. Return Q[0]
상기 알고리즘 1은 단순 전력 분석 공격(SPA : Single Power Attack)에 대하 여, 각 비트마다 덧셈 연산 및 2배 연산을 수행함으로써, 연산에 따라 다른 전력 소비 파형(power signal)을 분석할 수 없게 된다. 이때, 함수 DLB - JP()는 수학식 21의 2배 연산을, 함수 ADD - JP()는 수학식 20의 덧셈 연산을 나타낸다. 알고리즘 1은 확장 링 Zpr 상에서 레지스터 Q[0] 및 Q[1]에 각 비트에 대한 덧셈 연산 및 2배 연산을 저장하고 di 값에 따라 필요한 레지스터를 선택함으로써, 전술한 바와 같은 전력 분석 공격에 대응한다.
도 13은 본 발명의 실시예에 따른 소수 유한체에서의 타원 곡선 암호 시스템에 대한 단순 전력 분석 공격 대응 방법을 나타내는 순서도이다. 특히, 도 13은 알고리즘 1을 순서도로 나타낸 것이다.
도 13을 참조하면, 본 발명의 실시예에 소수 유한체에서의 타원 곡선 암호 시스템에 대한 단순 전력 분석 공격에 대응하는 방법(3000)은, 소수 p에 대한 소수 유한체 Fp 상의 제 1 타원 곡선 방정식(E : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + b*Z6)을, 상기 소수 p 및 임의의 정수 r에 대한 확장 링 Zpr 상의 제 2 타원 곡선 방정식(E' : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + B*Z6)으로 변환하는 S3100 단계, 상기 타원 곡선 암호 시스템의 비밀 키 d를 비트열로 변환하는 S3200 단계 및 상기 제 2 타원 곡선 방정식을 만족하는 점 P(P=(t,s))와 상기 비밀 키 d의 각 비트에 대한 덧셈 연산 및 2배 연산을 수행하여, 상기 점 P와 상기 비밀 키 d의 스칼라 곱인 암호문을 생성하는 S3300 단계를 구비한다. 도 13의 각 단계에 대한 구체적인 설명은 전술되었으므로 생략한다.
다시 도 8 및 도 9를 참조하면, 오류 주입 공격을 체크하는 S240 단계는 상기 임시 암호문이 상기 제 2 타원 곡선 방정식을 만족하는 지를 체크할 수 있다(S240a). 다만, 도 8의 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 제 2 대응 방법(S200b)을 나타내는 도 10을 참조하면, 상기 제 2 타원 곡선 방정식의 상기 정수 r에 대한 모드 연산의 결과인 제 3 타원 곡선 방정식을 상기 임시 암호문이 만족하는 지를 체크함으로써, 오류 주입 공격이 체크될 수 있다(S240b). 상기 제 2 타원 곡선 방정식이 수학식 15의 E'라면, 상기 제 3 타원 곡선 방정식은 다음의 수학식 22와 같이 나타낼 수 있다.
E' : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + B*Z6 mod r
수학식 22와 같이 모드 r 연산이 수행된 타원 곡선 방정식에서의 오류 주입 체크는 수학식 15 및 수학식 19의 타원 곡선 방정식에서의 오류 주입 체크보다 간단히 수행될 수 있다. 오류 주입 공격에 대하여는 수학식 12 내지 수학식 19에서 설명되었으므로, 이상의 자세한 설명은 생략한다.
다시 도 1 및/또는 도 8을 참조하면, 제 1 영역에 대한 최종 암호문을 생성하는 S400 단계는 임시 암호문의 확장 링 상의 각 좌표들의 소수 p에 대한 모드 연산을 수행하여 최종 암호문을 생성할 수 있다. 즉, ECC에 대한 오류 주입이 검출되지 않았다면(S300) 최종 암호문을 생성하는데(S400), 임시 암호문은 확장 링 상에서 구해진 바, 임시 암호문은 원래의 소수 유한체 상의 최종 암호문으로 변환된다.
임시 암호문의 각 좌표(X; Y; Z)를 최종 암호문의 각 좌표(X'; Y'; Z')로 변환을 위해, 다음의 수학식 23과 같이, 소수 p에 대한 모드 연산이 수행된다.
X' = X mod p
Y' = Y mod p
Z' = Z mod p
이상과 같은 본 발명의 실시예에 따른 소수 유한체에서의 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법은 다음의 알고리즘 2로 정리될 수 있다.
<알고리즘 2>
Input :
p, a prime defining the field Fp
E : Y2*Z = X3 + a*X*Z4 + b*Z6, an elliptic curve over Fp
P = (t, s, 1) ∈ E(Fp)
d, a secret scalar
Output : Q = d*P ∈ E(Fp)
1. Choose a small random integer r.
2. B = s2 + p*s - t3 - a*t mod p*r.
3. Let E' : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + B*Z6.
4. Calculate d*P over E'/Zpr, using Alorithm 1.
5. Check if Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + B*Z6 (mod r) for d*P=(X, Y, Z).
If the equality dose not hold, return NULL.
6. Return (X mod p; Y mod p; Z mod p)
알고리즘 2를 살펴보면, 본 발명의 실시예에 따른 소수 유한체에서의 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법은 먼저, 타원 곡선 방정식을 3과 같이 제 2의 타원 곡선 방정식으로 변환한다. 다음으로, 4와 같이 임시 암호문을 생성하되, 알고리즘 1을 이용하여 덧셈 연산 및 2배 연산을 수행함으로써 전력 분석 공격에 대응한다. 다음으로, 5와 같이 확장 링 상에서 오류 주입 여부를 체크하되, 확장 링 상의 타원 곡선 방정식이 Y에 대한 일차항을 구비하고 있어 부호 변환 오류 주입 여부도 조사할 수 있다. 이때, 전술한 바와 같이, 타원 곡선 방정식에 대한 모드 r 연산을 수행한 후 오류 주입 여부를 체크함으로써 계산적 오버헤드를 줄일 수 있다. 마지막으로, 폴트가 체크되면 NULL 문자를 출력하고, 아니면 6과 같이 확장 링 상의 임시 암호문의 각 좌표(X; ;, Z)에 대한 모드 p 연산을 확장 링 상의 임시 암호문을 소수 유한체 상의 최종 암호문(Q = d*P ∈ E(Fp))로 변환한다.
도 14는 본 발명의 실시예에 따른 소수 유한체에서의 타원 곡선 암호 시스템 에 대한 부채널 공격에 대응하는 방법을 나타내는 순서도이다. 특히, 도 14는 알고리즘 2을 순서도로 나타낸 것이다.
도 14를 참조하면, 본 발명의 실시예에 소수 유한체에서의 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법(4000)은, 소수 p에 대한 소수 유한체 Fp 상의 제 1 타원 곡선 방정식(E : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + b*Z6)을, 상기 소수 p 및 임의의 정수 r의 곱에 대한 확장 링 Zpr 상의 제 2 타원 곡선 방정식(E' : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + B*Z6)으로 변환하는 S4100 단계, 상기 제 2 타원 곡선 방정식을 만족하는 임시 암호문에 대한 차분 전력 분석 공격을 방어하는 S4200 단계, 상기 제 2 타원 곡선 방정식을 만족하는 임시 암호문에 대한 오류 주입 공격을 체크하는 S4300 단계 및 상기 확장 링 상의 임시 암호문을 상기 소수 유한체 상의 최종 암호문으로 변환하는 S4400 단계를 구비한다. 도 14의 각 단계에 대한 구체적인 설명은 전술되었으므로 생략한다.
이상으로 소수 유한체에서의 ECC에 대한 부채널 공격을 대응하는 방법에 대하여 알아보았다. 다음으로 이진 유한체에서의 ECC에 대한 부채널 공격을 대응하는 방법에 대하여 알아본다. 소수 유한체에서 설명된 순서와 마찬가지로, 확장 링으로의 변환을 먼저 설명한 후, 전력 분석 공격 및 오류 주입 공격에 대한 방어 방법을 알아본다.
도 5는 이진 유한체에서의 도 1의 타원 곡선 암호 시스템의 정의 영역을 확장하는 방법을 더욱 자세히 나타내는 순서도이다. 도 6은 도 5의 타원 곡선 암호 시스템의 정의 영역을 확장하는 방법을 더욱 자세히 나타내는 순서도이다.
도 5 및 도 6을 참조하면, 타원 곡선의 정의 영역을 이진 유한체에서 확장 링으로 확장하기 위해(S100b), 먼저 이진 유한체 상의 제 1 타원 곡선 방정식을 정의하고(S120b), 다음으로 제 1 타원 곡선 방정식을 확장 링 상의 제 2 타원 곡선 방정식으로 변환한다(S140b).
이진 유한체 상의 제 1 타원 곡선 방정식을 정의하기 위해(S120b), m차 이진 기약 다항식 f(z)와 임의의 다항식 r(z)를 설정하는 설정한다(S122b). 임의의 지수 m에 대한 이진 유한체는 F2m(= F2[z]/f(z))으로 표현되고, 다항식 f(z) 및 다항식 r(z)에 대한 확장 링은 F2[z]/(f(z)*r(z)))로 표현된다. 이때, 다항식 r(z)는 후술되는 C의 계산을 용이하게 하기 위해, 이진 기약 다항식(irreducible binary polynomial)인 것이 바람직하다.
이진 유한체에 대하여, 제 1 타원 곡선 방정식을 제 2 타원 곡선 방정식으로 변환하는 방법은 소수 유한체에서와 같다. 다만, 이진 유한체에 대한 타원 곡선 방정식은 Y에 대한 일차항을 원래 구비하고 있으므로, 부호 변환 오류 주입 여부를 체크하기 위해 별도의 조치를 취할 필요가 없다. 따라서, 이진 유한체 및 그 확장 링에 대한 제 1 타원 곡선 방정식 E 및 제 2 타원 곡선 방정식 E'는 각각 다음의 수학식 24 및 수학식 25와 같다.
E : Y2 + X*Y*Z = X3 + a*X2*Z2 + b*Z6
E' : Y2*Z + X*Y*Z = X3 + a*X2*Z2 + B*Z6
이때, 수학식 24의 b는 수학식 25의 B로 변환된다. 수학식 25의 B는 다음의 수학식 26과 같다.
B = s2 + t*s + t3 + a*t2 mod f(z)*r(z)
상기와 같은 변환 방법은 도 7에 구체적으로 도시된다.
다시 8 및 도 9를 참조하면, 이진 유한체에 대한 본 발명도 소수 유한체에서와 마찬가지로, 확장 링 상에서 차분 전력 분석 공격에 대응하고(S220), 오류 주입을 체크한다(S240). 다만, 제 2 타원 곡선 방정식이 소수 유한체에서의 제 2 타원 곡선 방정식과 다르므로, 별도의 덧셈 연산 및 2배 연산이 요구된다. 다음의 수학식 27 및 수학식 28은 각각 이진 유한체에서의 본 발명의 실시예에 따른 덧셈 연산 및 2배 연산을 정의한다.
Z3 = Z1*Z2*(X1*Z22 - X2*Z12)
X3 = a*Z32 + (Y1*Z23 + Y2*Z13)*(Y1*Z23 + Y2*Z13 + Z3) + (X1*Z22 + X2*Z12)3
Y3 = ((Y1*Z23 + Y2*Z13)*X2 + Z1*Y2*(X1*Z22 + X2*Z12))*((X1*Z22 + X2*Z12)*Z1)2 + (Y1*Z23 + Y2*Z13 + Z3)*X3
Z3 = X1*Z12
X3 = (X1 + C*Z12)4
Y3 = X14*Z3 + (Z3 + X12 + Y1*Z1)*X3
이때, 수학식 27 및 수학식 28의 전제 사항은 수학식 20 및 수학식 21에 언급된 바와 같다. 다만, 수학식 28의 C는 수학식 25 및 수학식 26의 B와 다음의 수학식 29와 같은 관계에 있다.
C = B1/4 mod f(z)*r(z)
수학식 28의 2배 연산에서 C를 사용하는 것은, 전술한 바와 같이 계산의 편의를 위함이다. 이에 대한 더욱 자세한 설명은 [10]에 기재되어 있다.
이상과 같은, 이진 유한체에서 대한 확장 링 상에서의 암호문을 생성하는 방법은 다음의 알고리즘 3으로 정리된다.
<알고리즘 3>
Input :
E : Y2*Z + X*Y*Z = X3 + a*X2*Z2 + B*Z6,
an elliptic curve over F2[z]/(f(z)*r(z))
P ∈ E(F2[z]/(f(z)*r(z)))
C such that B = C4 (mod f(z)*r(z))
d = ∑n-1 di*2i : secret scalar
Output : Q = d*P ∈ E(F2[z]/f(z)*r(z)))
1. Q[0] ← P
2. For i = n-2 to 0 by -1, do
2.1 Q[0] ← DLB - JP(Q[0])
2.2 Q[1] ← ADD - JP(Q[0], P)
2.3 Q[0] ← Q[di]
3. Return Q[0]
알고리즘 3은 단순 전력 분석 공격의 대응으로 사용될 수 있다. 알고리즘 3은 알고리즘 1과 그 기본적 개념은 동일하다. 다만, 전술한 바와 같이 C를 입력값 으로 필요로 한다. 알고리즘 3은 도 15와 같이 순서도로 표현될 수 있다.
도 15를 참조하면, 본 발명의 실시예에 이진 유한체에서의 타원 곡선 암호 시스템에 대한 단순 전력 분석 공격에 대응하는 방법(5000)은, 다항식 f(z)에 대한 이진 유한체 F2m(= F2[z]/f(z)) 상의 제 1 타원 곡선 방정식(E : Y2 + X*Y*Z = X3 + a*X2*Z2 + b*Z6)을, 상기 지수 m 및 임의의 다항식 r(r)에 대한 확장 링 F2[z]/(f(z)*r(z)) 상의 제 2 타원 곡선 방정식(E' : Y2*Z + X*Y*Z = X3 + a*X2*Z2 + B*Z6)으로 변환하는 S5100 단계, 상기 타원 곡선 암호 시스템의 비밀 키 d를 비트열로 변환하는 S5200 단계 및 상기 제 2 타원 곡선 방정식을 만족하는 점 P와 상기 비밀 키 d의 각 비트에 대한 덧셈 연산 및 2배 연산을 수행하여, 상기 점 P와 상기 비밀 키 d의 스칼라 곱인 암호문을 생성하는 S5300 단계를 구비한다. 도 15의 각 단계는 전술되었으므로 자세한 설명은 생략된다.
다시 도 9를 참조하면, 이진 유한체에서 대한 오류 주입 공격의 체크도 소수 유한체에서와 같다. 다만, 도 10을 참조하면, 소수 유한체에서는 제 2 타원 곡선 방정식의 정수 r에 대한 모드 연산의 결과인 제 3 타원 곡선 방정식을 임시 암호문이 만족하는 지를 체크하여 오류 주입 공격에 대응하는 반면, 이진 유한체에서는 정수 r이 아닌 다항식 r(z)에 대한 모드 연산으로 제 3 타원 곡선 방정식을 정의한다(S240b). 상기 제 2 타원 곡선 방정식이 수학식 25의 E'라면, 수학식 25에 대한 상기 제 3 타원 곡선 방정식은 다음의 수학식 30과 같이 나타낼 수 있다.
E' : Y2*Z + p*Y*Z3 = X3 + a*X*Z4 + B*Z6 mod r(z)
다시 도 1 및/또는 도 8을 참조하면, 이진 유한체에 대한 확장 링에서 전력 분석 공격 및 오류 주입 공격을 방어하고 확장 링 상의 임시 암호문을 생성한 후, 소수 유한체에서와 마찬가지로, 임시 암호문을 이진 유한체 상의 최종 암호문으로 변환해야 한다(S400). 다만, 소수 유한체에서와 달리, 임시 암호문의 각 좌표에 대한 모드 f(z) 연산을 수행함으로써 최종 암호문이 생성된다.
이상과 같은 본 발명의 실시예에 따른 이진 유한체에서의 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법은 다음의 알고리즘 4로 정리될 수 있다.
<알고리즘 4>
Input :
f(z), an irreducible polynomial defining a field F2m(= F2[z]/f(z))
E : Y2 + X*Y*Z = X3 + a*X2*Z2 + b*Z6
P = (t, s, 1) ∈ E(F2m)
d, the secret exponent
Output : Q = d*P ∈ E(F2m)
1. Choose a random irreducible polynomial r(z) of small degree.
2. B = s2 + t*s + t3 + a*t2 mod f(z)*r(z).
3. Let E' : Y2*Z + X*Y*Z = X3 + a*X2*Z2 + B*Z6.
4. Calculate C ∈ E'(F2[z]/(f(z)*r(z)) such that B = C4 .mod f(z)*r(z)
5. Calculate d*P=(X, Y, Z) for P =(t, s, 1) over E'(F2[z]/(f(z)*r(z))), using Alorithm 3.
6. Check if Y2*Z + X*Y*Z =X3+ a*X2*Z2 + B*Z6 (mod r(z)) for d*P=(X,Y, Z).
If the equality dose not hold, return NULL.
7. Return (X mod f(z); Y mod f(z); Z mod f(z))
알고리즘 4은 알고리즘 2를 참조하여 설명될 수 있다. 도 16은 알고리즘 4를 순서도로 나타낸 것이다.
도 16을 참조하면, 본 발명의 실시예에 이진 유한체에서의 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법(6000)은 다항식 f(z)에 대한 이진 유한체 F2m(= F2[z]/f(z)) 상의 제 1 타원 곡선 방정식(E : Y2 + X*Y*Z = X3 + a*X2*Z2 + b*Z6)을, 상기 다항식 f(z) 및 임의의 다항식 r(r)에 대한 확장 링 F2[z]/(f(z)*r(z)) 상의 제 2 타원 곡선 방정식(E' : Y2*Z + X*Y*Z = X3 + a*X2*Z2 + B*Z6)으로 변환하는 S6100 단계, 상기 제 2 타원 곡선 방정식을 만족하는 임시 암호문에 대한 차분 전력 분석 공격을 방어하는 S6200 단계, 상기 제 2 타원 곡선 방정식을 만족하는 임시 암호문에 대한 오류 주입 공격을 체크하는 S6300 단계 및 상기 확장 링 상의 임시 암호문을 상기 이진 유한체 상의 최종 암호문으로 변환하는 S6400 단계를 구비한다. 도 16의 각 단계에 대한 설명은 전술되었으므로 생략한다.
이상에서 소수 유한체 및 이진 유한체에서의 본 발명의 실시예에 따른 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법들을 살펴보았다. 정리하면, 본 발명은 타원 곡선의 정의체(definition field)를 임의의 확장 링(extension ring)으로 확장하여 시스템의 안정성을 강화하고, 확장 링에서 전력 분석 공격 및 오류 주입 공격을 모두 수행할 뿐더러, 폴트 어택에 대한 포인트의 유효성을 확장 링의 서브링(subring)에서 수행하므로, 계산적 오버헤드(computational overhead)를 최소화한다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해 져야 할 것이다.
상술한 바와 같이 본 발명에 따른 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법은 암호 시스템의 안정성를 강화하면서도 시스템의 계산적 오버헤드를 줄일 수 있는 장점이 있다.

Claims (49)

  1. 타원 곡선 암호 시스템(Elliptic curve cryptosystem)을 실행하는 프로세서에 의해, 상기 타원 곡선 암호 시스템의 타원 곡선의 정의 영역을 제 1 영역에서 확장 링(Extension Ring)으로 확장하는 단계;
    상기 프로세서에 의해, 상기 확장 링에서 임시 암호문을 생성하고, 상기 타원 곡선 암호 시스템에 대한 공격에 대응하는 단계; 및
    상기 프로세서에 의해, 상기 타원 곡선 암호 시스템에 대한 오류 주입 공격이 체크되지 아니하는 경우, 상기 제 1 영역에 대한 최종 암호문을 생성하는 단계를 구비하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  2. 청구항 2은(는) 설정등록료 납부시 포기되었습니다.
    제 1 항에 있어서, 상기 타원 곡선 암호 시스템에 대한 공격에 대응하는 단계는,
    상기 타원 곡선 암호 시스템에 대한 전력 분석 공격(power attack)을 방어하는 단계; 및
    상기 타원 곡선 암호 시스템에 대한 오류 주입 공격(fault injection attack)을 체크하는 단계를 구비하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  3. 청구항 3은(는) 설정등록료 납부시 포기되었습니다.
    제 2 항에 있어서, 상기 임시 암호문은,
    상기 타원 곡선 암호 시스템의 타원 곡선 방정식을 만족하는 점 P 및 상기 타원 곡선 암호 시스템의 비밀 키 d의 스칼라 곱(scalar multiplication)인 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  4. 삭제
  5. 삭제
  6. 청구항 6은(는) 설정등록료 납부시 포기되었습니다.
    제 2 항에 있어서, 상기 전력 분석 공격은,
    차등 전력 분석 공격인 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  7. 삭제
  8. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.
    제 2 항에 있어서, 상기 오류 주입 공격을 체크하는 단계는,
    상기 임시 암호문이 상기 제 2 타원 곡선 방정식을 만족하는 지를 체크하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  9. 삭제
  10. 제 1 항에 있어서, 상기 제 1 영역은,
    소수 유한체(Prime Finite Field)인 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  11. 제 10 항에 있어서, 상기 타원 곡선의 정의 영역을 제1 영역에서 확장 링으로 확장하는 단계는,
    소수(prime) p와 임의의 정수 r을 설정하는 단계;
    상기 소수 p에 대한 상기 소수 유한체 Fp 상의 제 1 타원 곡선 방정식을 정의하는 단계; 및
    상기 제 1 타원 곡선 방정식을, 상기 소수 p와 정수 r에 대한 확장 링 Zpr 상의 제 2 타원 곡선 방정식으로 변환하는 단계를 구비하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  12. 청구항 12은(는) 설정등록료 납부시 포기되었습니다.
    제 11 항에 있어서, 상기 제 1 타원 곡선 방정식은,
    X, Y 및 Z가 각각, 야코비언 좌표(Jacobian coordinate)의 X축, Y축 및 Z축 변수를 나타내고, x 및 y가 각각, 아핀 좌표(Affine coordinate)의 x축 및 y축 변수를 나타내며, a 및 b가 프라임(prime) q를 포함하는 유한 영역 Fq 상의 변수를 나타내는 때에,
    상기 제 1 타원 곡선 방정식을 야코비언 좌표(Jacobian coordinate)로 표현하면 다음의 타원 곡선 방정식 E1이고,
    상기 타원 곡선 방정식 E1을 아핀 좌표(Affine coordinate)로 변환하면 다음의 타원 곡선 방정식 E2인 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
    E1 : Y2*Z = X3 + a*X*Z4 + b*Z6
    E2 : y2 = x3 + a*x + b
  13. 삭제
  14. 청구항 14은(는) 설정등록료 납부시 포기되었습니다.
    제 11 항에 있어서, 상기 제 2 타원 곡선 방정식은,
    상기 타원 곡선 암호 시스템으로의 부호 변환 오류 주입 여부를 체크하는 항을 구비하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  15. 삭제
  16. 삭제
  17. 청구항 17은(는) 설정등록료 납부시 포기되었습니다.
    제 11 항에 있어서, 상기 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 단계는,
    상기 타원 곡선 암호 시스템에 대한 오류 주입 공격에 대하여, 상기 제 2 타원 곡선 방정식의 상기 정수 r에 대한 모드 연산의 결과인 제 3 타원 곡선 방정식을 상기 임시 암호문이 만족하는 지를 체크하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  18. 제 11 항에 있어서,
    상기 제 2 타원 곡선 방정식을 만족하는 두 점들을 P1(P1 = (X1; Y1; Z1)) 및 P2(P2 = (X2; Y2; Z2))이라 하고, 상기 P1 및 상기 P2가 무한원점이 아니라고 할 때, 상기 P1이 상기 P2 및 P2의 역원과 같지 않다면(P1 ≠ ±P2),
    두 점 P1과 P2의 합 P3(= P1 + P2 = (X3; Y3; Z3))의 각 좌표는,
    X1, Y1 및 Z1는 각각 야코비언 좌표 상의 점 P1의 X축, Y축 및 Z축 변수를 나타내고, X2, Y2 및 Z2는 각각 야코비언 좌표 상의 점 P2의 X축, Y축 및 Z축 변수를 나타내며, X3, Y3 및 Z3는 각각 야코비언 좌표 상의 점 P3의 X축, Y축 및 Z축 변수를 나타내는 때에,
    다음의 덧셈 연산에 의하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
    Z3 = Z1*Z2*(X2*Z12 - X1*Z22)
    X3 = (Y2*Z13 - Y1*Z23)2 - (X2*Z12 - X1*Z22)2*(X2*Z12 + X1*Z22)
    Y3 = (Y2*Z13 - Y1*Z23)*(X1*Z22*(X2*Z12 - X1*Z22)2 - X3) - (Y1 + p*Z13)*(Z23*(X2*Z12 - X1*Z22)3)
  19. 제 11 항에 있어서,
    상기 제 2 타원 곡선 방정식을 만족하는 두 점들을 P1(P1 = (X1; Y1; Z1)) 및 P2(P2 = (X2; Y2; Z2))이라 하고, 상기 P1 및 상기 P2가 무한원점이 아니라고 할 때, 상기 P1과 상기 P2가 같다면(P1 = P2),
    두 점 P1 및 P2의 합 P3(= P1 + P2 = 2*P1 = 2*P2 = (X3; Y3; Z3))의 각 좌표는,
    X1, Y1 및 Z1는 각각 야코비언 좌표 상의 점 P1의 X축, Y축 및 Z축 변수를 나타내고, X2, Y2 및 Z2는 각각 야코비언 좌표 상의 점 P2의 X축, Y축 및 Z축 변수를 나타내며, X3, Y3 및 Z3는 각각 야코비언 좌표 상의 점 P3의 X축, Y축 및 Z축 변수를 나타내고, p는 프라임(prime)일 때에,
    다음의 2배 연산에 의하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
    Z3 = Z1*(2*Y1 + p*Z13)
    X3 = (3*X12 + a*Z14)2 - 2*X1*(2*Y1 + p*Z13)2
    Y3 = (3*X12+ a*Z14)*(X1*(2*Y1 +p*Z13)2-X3) - (Y1 + p*Z13)*(2*Y1 + p*Z13)3
  20. 삭제
  21. 제 1 항에 있어서, 상기 제 1 영역은,
    이진 유한체(binary finite field)인 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  22. 제 21 항에 있어서, 상기 타원 곡선의 정의 영역을 제1 영역에서 확장 링으로 확장하는 단계는,
    m차 이진 기약 다항식 f(z)와 임의의 다항식 r(z)를 설정하는 단계;
    상기 다항식 f(z)에 대한 이진 유한체 F2m(= F2[z]/f(z)) 상의 제 1 타원 곡선 방정식을 정의하는 단계; 및
    상기 제 1 타원 곡선 방정식을, 상기 다항식 f(z) 및 다항식 r(z)의 곱에 대한 확장 링 F2[z]/(f(z)*r(z)) 상의 제 2 타원 곡선 방정식으로 변환하는 단계를 구비하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  23. 청구항 23은(는) 설정등록료 납부시 포기되었습니다.
    제 22 항에 있어서, 상기 다항식 r(z)는,
    이진 기약다항식(irreducible binary polynomial)인 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  24. 제 22 항에 있어서,
    X, Y 및 Z가 각각, 야코비언 좌표(Jacobian coordinate)의 X축, Y축 및 Z축 변수를 나타내고, a 및 b가 프라임(prime) q를 포함하는 유한 영역 Fq 상의 변수를 나타내며, B는 b의 제1 타원 곡선 방정식에서 제2 타원 곡선 방정식으로 등가 변환되는 값을 나타내는 때에,
    상기 제 1 타원 곡선 방정식은 다음의 타원 곡선 방정식 E이고,
    상기 제 2 타원 곡선 방정식은 다음의 타원 곡선 방정식 E'인 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
    E : Y2 + X*Y*Z = X3 + a*X2*Z2 + b*Z6
    E' : Y2*Z + X*Y*Z = X3 + a*X2*Z2 + B*Z6
  25. 삭제
  26. 청구항 26은(는) 설정등록료 납부시 포기되었습니다.
    제 22 항에 있어서, 상기 타원 곡선 암호 시스템에 대한 공격에 대응하는 단계는,
    상기 타원 곡선 암호 시스템에 대한 오류 주입 공격에 대하여, 상기 제 2 타원 곡선 방정식을 상기 다항식 r(z)에 대한 모드 연산의 결과인 제 3 타원 곡선 방정식을 상기 임시 암호문이 만족하는 지를 검토하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  27. 제 22 항에 있어서,
    상기 제 2 타원 곡선 방정식을 만족하는 두 점들을 P1(P1 = (X1; Y1; Z1)) 및 P2(P2 = (X2; Y2; Z2))이라 하고, 상기 P1 및 상기 P2가 무한원점이 아니라고 할 때, 상기 P2 및 P2의 역원과 같지 않다면(P1 ≠ ±P2),
    두 점 P1과 P2의 합 P3(= P1 + P2 = (X3; Y3; Z3))의 각 좌표는,
    X1, Y1 및 Z1는 각각 야코비언 좌표 상의 점 P1의 X축, Y축 및 Z축 변수를 나타내고, X2, Y2 및 Z2는 각각 야코비언 좌표 상의 점 P2의 X축, Y축 및 Z축 변수를 나타내며, X3, Y3 및 Z3는 각각 야코비언 좌표 상의 점 P3의 X축, Y축 및 Z축 변수를 나타내고, a가 프라임(prime) q를 포함하는 유한 영역 Fq 상의 변수를 나타내는 때에,
    다음의 덧셈 연산에 의하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
    Z3 = Z1*Z2*(X1*Z22 - X2*Z12)
    X3 = a*Z33 + (Y1*Z23 + Y2*Z13)*(Y1*Z23 + Y2*Z13 + Z3) + (X1*Z22 + X2*Z12)3
    Y3 = ((Y1*Z23 + Y2*Z13)*X2 + Z1*Y2*(X1*Z22 + X2*Z12))*((X1*Z22 + X2*Z12)*Z1)2 + (Y1*Z23 + Y2*Z13 + Z3)*X3
  28. 제 22 항에 있어서,
    상기 제 2 타원 곡선 방정식을 만족하는 두 점들을 P1(P1 = (X1; Y1; Z1)) 및 P2(P2 = (X2; Y2; Z2))이라 하고, 상기 P1 및 상기 P2가 무한원점이 아니라고 할 때, 상기 P1과 상기 P2가 같다면(P1 = P2),
    두 점 P1 및 P2의 합 P3(= P1 + P2 = 2*P1 = 2*P2 = (X3; Y3; Z3))의 각 좌표는,
    X1, Y1 및 Z1는 각각 야코비언 좌표 상의 점 P1의 X축, Y축 및 Z축 변수를 나타내고, X2, Y2 및 Z2는 각각 야코비언 좌표 상의 점 P2의 X축, Y축 및 Z축 변수를 나타내며, X3, Y3 및 Z3는 각각 야코비언 좌표 상의 점 P3의 X축, Y축 및 Z축 변수를 나타내고, C가 B1/4 mod f(z)*r(z)의 값을 나타내는 때에,
    다음의 2배 연산에 의하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
    Z3 = X1*Z12
    X3 = (X1 + C*Z12)4
    Y3 = X14*Z3 + (Z3 + X12 + Y1*Z1)*X3
  29. 삭제
  30. 청구항 30은(는) 설정등록료 납부시 포기되었습니다.
    제 21 항에 있어서, 상기 제 1 영역에 대한 최종 암호문을 생성하는 단계는,
    상기 임시 암호문의 확장 링 상의 각 좌표들의 m차 이진 기약 다항식 f(z)에 대한 모드 연산을 수행하는 것을 특징으로 하는 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는 방법.
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
KR1020070069831A 2007-07-11 2007-07-11 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는방법 KR101527867B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070069831A KR101527867B1 (ko) 2007-07-11 2007-07-11 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는방법
US12/108,410 US8345863B2 (en) 2007-07-11 2008-04-23 Method of countering side-channel attacks on elliptic curve cryptosystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070069831A KR101527867B1 (ko) 2007-07-11 2007-07-11 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는방법

Publications (2)

Publication Number Publication Date
KR20090006465A KR20090006465A (ko) 2009-01-15
KR101527867B1 true KR101527867B1 (ko) 2015-06-10

Family

ID=40338142

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070069831A KR101527867B1 (ko) 2007-07-11 2007-07-11 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는방법

Country Status (2)

Country Link
US (1) US8345863B2 (ko)
KR (1) KR101527867B1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2222015A1 (en) * 2009-02-19 2010-08-25 Thomson Licensing Method and device for hashing onto points of an elliptic curve
EP2228715A1 (en) * 2009-03-13 2010-09-15 Thomson Licensing Fault-resistant calculcations on elliptic curves
US8817974B2 (en) 2011-05-11 2014-08-26 Nxp B.V. Finite field cryptographic arithmetic resistant to fault attacks
DE102011052230B4 (de) * 2011-07-28 2018-05-09 Infineon Technologies Ag Verfahren und Apparat zur Erzeugung von Zufalls-Wartezuständen
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
CN103441846B (zh) * 2013-08-12 2016-08-10 国家密码管理局商用密码检测中心 一种对p域的ecc算法选择明文侧信道能量分析方法
FR3016987B1 (fr) * 2014-01-29 2017-07-21 Morpho Echelle de montgomery desequilibree
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
US9590805B1 (en) * 2014-12-23 2017-03-07 EMC IP Holding Company LLC Ladder-based cryptographic techniques using pre-computed points
CN104836666B (zh) * 2015-04-20 2019-04-12 成都信息工程学院 一种针对sm2解密算法的能量分析攻击的方法
CN104780051B (zh) * 2015-04-24 2019-04-12 成都信息工程学院 针对sm2公钥密码加密算法的侧信道攻击的方法
WO2018148819A1 (en) * 2017-02-15 2018-08-23 Infosec Global Inc. Cryptographic scheme with fault injection attack countermeasure
DE102017117899A1 (de) * 2017-08-07 2019-02-07 Infineon Technologies Ag Durchführen einer kryptografischen Operation
US10601578B2 (en) * 2017-10-26 2020-03-24 Nxp B.V. Protecting ECC against fault attacks
US11146397B2 (en) * 2017-10-31 2021-10-12 Micro Focus Llc Encoding abelian variety-based ciphertext with metadata
EP3503459B1 (en) * 2017-12-22 2021-04-21 Secure-IC SAS Device and method for protecting execution of a cryptographic operation
CN110798305B (zh) * 2019-09-24 2023-05-30 瓦戈科技有限公司 一种故障分析防御方法、电子设备、可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08116549A (ja) * 1994-10-17 1996-05-07 Toshiba Corp 輪郭改善回路
JP2002026892A (ja) * 2000-05-02 2002-01-25 Murata Mach Ltd 鍵共有方法,秘密鍵生成方法,共通鍵生成方法,暗号通信方法,秘密鍵生成器,共通鍵生成器,暗号通信システム及び記録媒体
US20050027764A1 (en) * 2003-07-31 2005-02-03 Indian Institute Of Technology Polynomial time deterministic method for testing primality of numbers

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55115785A (en) 1979-02-27 1980-09-05 Sony Corp Frequency characteristic improving circuit for chroma signal
JPH0294889A (ja) 1988-09-30 1990-04-05 Toshiba Corp 色輪郭強調回路
JPH0495487A (ja) 1990-08-10 1992-03-27 Toshiba Corp 色エッジエンハンサ
AU2001289157A1 (en) 2000-08-29 2002-03-13 Ntru Cryptosystems, Inc. Speed enhanced cryptographic method and apparatus
US20020114452A1 (en) * 2000-12-21 2002-08-22 Hamilton Jon W. Method and system for digital image authentication
JP2004163687A (ja) 2002-11-13 2004-06-10 Fujitsu Ltd 楕円曲線暗号装置、楕円曲線暗号プログラム
FR2856537B1 (fr) * 2003-06-18 2005-11-04 Gemplus Card Int Procede de contre-mesure par masquage de l'accumulateur dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique
KR100657401B1 (ko) 2004-12-16 2006-12-14 고려대학교 산학협력단 부채널 공격을 방지할 수 있는 타원곡선 암호화 방법 및 그 시스템
US7961876B2 (en) * 2005-01-11 2011-06-14 Jintai Ding Method to produce new multivariate public key cryptosystems
KR100731575B1 (ko) 2005-06-29 2007-06-22 경북대학교 산학협력단 전력분석공격에 대응하는 암호화 방법
DE102005041102A1 (de) * 2005-08-30 2007-03-15 Siemens Ag Verfahren zur Skalarmultiplikation von Punkten auf einer elliptischen Kurve

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08116549A (ja) * 1994-10-17 1996-05-07 Toshiba Corp 輪郭改善回路
JP2002026892A (ja) * 2000-05-02 2002-01-25 Murata Mach Ltd 鍵共有方法,秘密鍵生成方法,共通鍵生成方法,暗号通信方法,秘密鍵生成器,共通鍵生成器,暗号通信システム及び記録媒体
US20050027764A1 (en) * 2003-07-31 2005-02-03 Indian Institute Of Technology Polynomial time deterministic method for testing primality of numbers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
M. Otto 외 2인, Sign Change Fault Attacks on elliptic curve cryptosystems, Fault Diagnosis and Tolerance in Cryptography Fault Diagnosis and Tolerance in Cryptography Lecture Notes in Computer Science *

Also Published As

Publication number Publication date
KR20090006465A (ko) 2009-01-15
US20090034720A1 (en) 2009-02-05
US8345863B2 (en) 2013-01-01

Similar Documents

Publication Publication Date Title
KR101527867B1 (ko) 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는방법
Mamiya et al. Efficient countermeasures against RPA, DPA, and SPA
Akishita et al. Zero-value point attacks on elliptic curve cryptosystem
Möller Securing elliptic curve point multiplication against side-channel attacks
Izu et al. A fast parallel elliptic curve multiplication resistant against side channel attacks
Izu et al. Exceptional procedure attack on elliptic curve cryptosystems
Setiadi et al. Elliptic curve cryptography: Algorithms and implementation analysis over coordinate systems
Smart An analysis of Goubin’s refined power analysis attack
KR100652377B1 (ko) 모듈라 지수승 알고리즘, 기록매체 및 시스템
Boscher et al. Blinded fault resistant exponentiation revisited
Kim et al. Side channel attacks and countermeasures on pairing based cryptosystems over binary fields
Baek et al. How to prevent DPA and fault attack in a unified way for ECC scalar multiplication–ring extension method
KR100731575B1 (ko) 전력분석공격에 대응하는 암호화 방법
Mrabet et al. An efficient and scalable modular inversion/division for public key cryptosystems
US20060282491A1 (en) Method for countermeasuring by masking the accumulators in an electronic component while using a public key cryptographic algorithm
Ghosh et al. Security of prime field pairing cryptoprocessor against differential power attack
Ebeid et al. Securing the elliptic curve montgomery ladder against fault attacks
Mamiya et al. Secure elliptic curve exponentiation against RPA, ZRA, DPA, and SPA
Nitaj A new vulnerable class of exponents in RSA
Sakai et al. Simple power analysis on fast modular reduction with generalized mersenne prime for elliptic curve cryptosystems
Akishita et al. Zero-value register attack on elliptic curve cryptosystem
Joye Smart-card implementation of elliptic curve cryptography and DPA-type attacks
Kim et al. Power analysis attacks and countermeasures on ηT pairing over binary fields
Ye et al. An efficient countermeasure against power attacks for ECC over GF (p)
Akishita et al. On the optimal parameter choice for elliptic curve cryptosystems using isogeny

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: 20190530

Year of fee payment: 5