KR100772550B1 - 전력분석공격에 안전한 메시지 블라인딩 방법 - Google Patents
전력분석공격에 안전한 메시지 블라인딩 방법 Download PDFInfo
- Publication number
- KR100772550B1 KR100772550B1 KR1020060042585A KR20060042585A KR100772550B1 KR 100772550 B1 KR100772550 B1 KR 100772550B1 KR 1020060042585 A KR1020060042585 A KR 1020060042585A KR 20060042585 A KR20060042585 A KR 20060042585A KR 100772550 B1 KR100772550 B1 KR 100772550B1
- Authority
- KR
- South Korea
- Prior art keywords
- power analysis
- attack
- message
- point
- power
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 전력분석공격에 안전한 메시지 블라인딩 방법을 제공하기 위한 것으로, 한 점 P와 Q=dP를 연산하기 위해 상기 d를 비밀키로 이용하는 메시지 블라인딩 방법에 있어서, d와 P를 입력받는 제 1 단계와; 상기 제 1 단계 후 비밀키 d로 t와 s를 계산하고, 랜덤 타원 포인트 R을 선택하는 제 2 단계와; 상기 제 2 단계 후 한 점 P와 선택된 R을 이용하여 T를 계산하는 제 3 단계와; 상기 제 3 단계 후 T를 이용하여 Q를 구하고, dP를 Q로 하여 출력하는 제 4 단계;를 포함하여 수행함으로서, 단지 몇 개의 추가적인 레지스터만을 이용하여 현재까지 알려져 있는 전력분석공격에 안전하면서도 기존의 BRIP 알고리즘과 비교해서 연산량의 차이가 거의 없이 기존의 전력분석공격을 모두 방어할 수 있게 되는 것이다.
전력분석공격, DPA, BRIP, 메시지 블라인딩, 스마트카드
Description
도 1은 일반적인 SPA 공격시 소비전력 파형을 보인 파형도이다.
도 2는 종래 SPA 방어를 위한 상수배 방법을 보인 알고리즘이다.
도 3은 스마트카드에 구현되어 있는 하드웨어 RSA 암호시스템을 DPA 공격을 이용하여 얻어낸 차분 파형을 보인 파형도이다.
도 4는 종래 전력분석공격에 대한 코론의 블라인딩 포인트를 보인 알고리즘이다.
도 5는 종래 전력분석공격에 대한 BRIP를 보인 알고리즘이다.
도 6은 본 발명의 일실시예에 의한 전력분석공격에 안전한 메시지 블라인딩 방법을 보인 흐름도이다.
도 7은 도 6의 알고리즘이다.
[1] P. Kocher, J. Jaffe and B.Jun, "Differential power analysis,'' CRYPTO'99, LNCS 1666, pp. 388-397, Springer-Verlag, 1999.
[2] J. Coron, "Resistance against differential power analysis for elliptic curve cryptosystems,'' CHES'99, LNCS 1717, pp.292-302, Springer-Verlag, 1999.
[3] J.C. Ha and S.J. Moon, "Randomized signed-scalar multiplication of ECC to resist power attacks,'' CHES'02, LNCS 2523, pp. 551-563, Springer-Verlag, 2002.
[4] K. Okeya and K. Sakurai, "Power analysis breaks elliptic curve cryptosystems even secure against the timing attack,'' INDOCRYPT'00, LNCS 1977, pp.178-190, Springer-Verlag, 2000.
[5] P. Liardet and N. Smart, "Preventing SPA/DPA in ECC systems using the Jacobi form,'' CHES'01, LNCS 2162, pp. 391-401, Springer-Verlag, 2001.
[6] M. Joye and J. Quisquater, "Hessian elliptic curves and side-channel attacks,'' CHES'01, LNCS 2162, pp.402-410, Springer-Verlag, 2001.
[7] P.-A. Fouque and F. Valette, "The doubling attack-- why upwards is better than downwards,'' CHES'03, LNCS 2779, pp. 269-280, Springer-Verlag, 2003.
[8] L. Goubin, "A refined power-analysis attack on elliptic curve cryptosystems,'' PKC'03, LNCS 2567, pp. 199-210, Springer-Verlag, 2003.
[9] T. Akishita and T. Takagi, "Zero-value point attacks on elliptic curve cryptosystem,"' ISC'03, LNCS 2851, pp. 218-233, Springer-Verlag, 2003.
[10] H. Mamiya, A. Miyaji, and H. Morimoto, "Efficient countermeasure against RPA, DPA, and SPA,'' CHES'04, LNCS 3156, pp. 343-356, Springer-Verlag, 2004.
[11] C. Kim, S. Yen, J. Ha, and S. Moon, "SPA-based 2-torsion point attack and its countermeasure,'' Submitted to WISA'05.
[12] C. Clavier and M. Joye, "Universal exponentiation algorithm,'' CHES'01, LNCS 2162, pp.300-308, Springer-Verlag, 2001.
[13] M. Joye and C. Tymen, "Protections against Differential Analysis for Elliptic Curve Cryptography,'' CHES'01, LNCS 2162, pp.377-390, Springer-Verlag, 2001.
[14] C. Kim, J. Ha, S. Kim, S. Kim, S. Yen, and S. Moon, "A secure and practical CRT-based RSA to resist side channel attacks,'' ICCSA'04, LNCS 3043, pp. 150-158, Springer-Verlag, 2004.
[15] B.C. Mames, M. Ciet, and M. Joye, "Low-cost solutions for preventing simple side-channel analysis: side-channel atomicity,'' IEEE Tran. on Com., vol. 53, No. 6, June 2004.
본 발명은 전력분석공격(Differential Power Analysis, DPA)에 안전한 메시지 블라인딩 방법에 관한 것으로, 특히 단지 몇 개의 추가적인 레지스터만을 이용하여 현재까지 알려져 있는 전력분석공격에 안전하면서도 기존의 BRIP(Binary expansion with Random Initial Point) 알고리즘과 비교해서 연산량의 차이가 거의 없이 기존의 전력분석공격을 모두 방어하기에 적당하도록 한 전력분석공격에 안전한 메시지 블라인딩 방법에 관한 것이다.
일반적으로 암호(cryptography)는 원래 국가의 비밀을 보안할 목적으로 군사·외교분야에서 사용되었다. 그리고 금융기관들은 전자자금이동(Electronic Funds Transfer)을 위하여 암호를 사용했다. 따라서 암호는 경제, 금융분야에서 널리 사용된 이래, 동일성의 인증(Authentication), 암호화 키에 대한 관리(Key Management), 디지털 서명(Digital Signature), 및 신원확인(Identity Verification) 등의 분야에 광범위하게 사용되고 있다.
암호해독은 해독키의 관리소홀, 비밀번호의 예측가능성, 또는 통신망에서 키보드 입력에 대한 모니터링 등으로도 가능하다. 여기서 암호해독은 암호해독행위자가 암호문만을 가지고 평문에 대한 해독을 감행하는 방법(Brute force Attack, 소위 무작정공격)이 아니라 평문의 암호화에 사용된 알고리즘의 종류, 사용된 운영체제 등 시스템에 대한 모든 정보를 알고 있는 상태에서 암호화에 사용된 키만 모르는 경우에 그 키를 찾아내어 암호문을 평문으로 해독하려는 행위를 지칭한다.
암호를 해독하는 기술로는 단순 암호문 공격(Ciphertext Only Attack), 이미 알고 있는 평문공격(Known Plaintext Attack), 선택 평문공격(Chosen Plaintext Attack), 최적 선택 평문 공격(Adaptively Chosen Plaintext Attack), 시간 공격(timing attack) 및 DPA(Differential Power Attack, 전력분석공격) 등이 있다.
암호장비에 대한 전력분석공격(power analysis attack)이 소개(종래기술의 문헌정보 [1], 이하에서는 문헌번호만 표시함)된 이후, 다양한 하드웨어와 소프트웨어 기술을 사용한 대응방법들이 제안되었다. 특히, 타원곡선 암호시스템에서는 랜덤 상수배 알고리즘([2]), 랜덤 점 블라인딩([2], [3]), 랜덤 사영좌표계([2]), 타원곡선의 특수한 형태를 이용한 접근 (Montgomery form [4], Jacobian form [5], Hessian form [6]) 등 여러 가지 형태의 대응방법들이 제안되었다. 하지만 위에서 언급된 대응방법들은 부가적인 연산량 증가 또는 기타 공격에 대한 취약성 등의 문제점을 가지고 있다.
[2]에서 제시된 코론(Coron)의 첫 번째와 두 번째 방법의 경우, 많은 연산량 증가와 함께 논문 [7]에서 소개된 더블링(doubling) 공격에 취약하다. 코론의 세 번째 방법은 매우 효과적인 대응방법으로서 많이 사용되었지만 고빈(Goubin)에 의해 제안된 RPA(refined power analysis) 공격에 취약함이 밝혀졌다([8]). 더욱이 RPA를 향상시킨 ZPA(zero-value point attack)이 [9]에서 소개되어 현재 코론의 3가지 방법 모두가 안전하지 못한 상태이다.
최근 CHES 2004에서 마미야(Mamiya)는 랜덤한 초기 점을 이용하여 메시지를 블라인딩하는 방법으로 기존 DPA(Differential Power Analysis) 방법은 물론, SPA(Simple Power Analysis), RPA, ZPA 에도 안전한 BRIP를 제안하였다([10]). 하지만 BRIP 역시도 엔(Yen) 등에 의해 특수한 선택평문을 이용한 새로운 SPA 방법에 취약함 밝혀졌다([11]).
본 발명은 지금까지 소개된 여러 가지 전력분석공격 및 그에 대한 대응방법을 간략하게 소개함과 동시에 안전하고 새로운 입력값 블라인딩 기법을 사용하는 타원곡선 상수배 알고리즘을 제안하고자 한다.
이하에서는 종래 전력분석공격과 이에 대한 대응방안 및 그 문제점을 설명한다.
1. 전력분석공격
전력분석공격(power analysis attack)은 일반적으로 단순전력분석공격(simple power analysis, SPA)과 차분전력분석공격(differential power analysis, DPA)으로 나눌 수 있다. SPA는 한번의 소비전력파형을 관찰하여 비밀키를 알아내는 공격이며, DPA는 소비되는 전력과 비밀키 따라 처리되는 데이터간의 상관관계를 통하여 공격하는 방법이다. 통상 DPA가 SPA보다 더욱 강력하다고 알려져 있다.
여기서 SPA 및 DPA를 포함하여 최근 발표된 새로운 SPA, RPA, ZPA, 더블링(doubling) 공격 등을 간략히 소개하면 다음과 같다.
그리고 타원곡선 암호시스템에서 제일 중요한 연산인 점 에 대한 비밀 키 를 상수배하는 스칼라 곱셈 연산을 가정한다. 일반적으로 연산은 스마트 카드와 같이 비밀키 가 내장된 상태에서 연산을 하므로 일반인들에게는 감추어진 정보이다. 이때 사용된 비밀 키 는 스칼라 곱셈 연산 과정에서 나오는 전력분석 정보를 가지고 공격자가 공격하고자하는 목표가 되는 정보이다.
1.1) SPA(Simple Power Analysis)
먼저, 단순 전력 분석(SPA)은 암호연산의 수행 과정에서 획득된 한 개 또는 몇 개의 전력 소모량을 분석하여 공격한다. 대부분의 스마트 카드는 이진 상수배 연산시 간단한 두배-덧셈 방법(doubling-addition)으로 구현되므로 두 배 연산과 덧셈 명령의 수행시 소비 전력의 특성을 파악함으로서 SPA가 가능하다.
도 1은 일반적인 SPA 공격시 소비전력 파형을 보인 파형도이다.
그래서 타원곡선암호시스템에 대한 SPA는, 도 1에 도시된 바와 같이, 두 배하는 과정(S로 표시)에서 소비되는 전력과 덧셈하는 과정(M으로 표시)에서 소비되는 전력이 차이가 발생한다. 알고리즘의 연산 과정에서 비밀키 d의 i번째 비트의 값이 '0'일 경우는 두 배 연산만 수행하고, 그 비트의 값이 '1'일 경우는 두 배와 덧셈이 수행되므로 소비되는 전력은 다르게 된다. 이러한 특징을 이용하여 비밀키 d의 i번째 비트의 값을 알아낼 수 있다.
단순전력분석(SPA)은 암호연산의 수행과정에서 획득된 한 개 혹은 몇 개의 전력소모량을 분석하여 공격한다. 대부분의 스마트카드는 모듈러 멱승 연산시 간단한 제곱-곱셈방법(square-multiply)으로 구현되므로 제곱과 곱셈 명령의 수행 시 소비전력의 특성을 파악함으로서 SPA가 가능하다.
도 2는 종래 SPA 방어를 위한 상수배 방법을 보인 알고리즘으로서, SPA 공격을 방어하기 위한 이진 L-R 방법을 보인 것이다.
도 2의 Step 2를 보면 항상 두 배 연산과 덧셈 연산을 수행한 뒤, 비밀키에 따라 값을 갱신하는 방식임을 알 수 있다. 하지만 이 방식도 뒤에서 설명할 차분전 력분석에 공격되는 문제점이 있었다.
1.2) DPA(Differential Power Analysis)
차분전력분석(DPA)은 SPA보다 방어하기 어려운 강력한 공격방법이다. 일반적으로 DPA의 분류함수는 수집한 소비전력신호를 분류하는데 이용되며 소비전력특성에 따라 해밍웨이트 모델(Hamming weight model)과 해밍디스턴스 모델(Hamming distance model)로 구분한다. 해밍웨이트 모델은 1이 0에 비해 많은 전력을 소비한다는데 기반을 두고 있으며, 해밍드스턴스 모델은 데이터의 상태천이(Transient)가 소비전력에 영향을 미친다는데 기초를 두고 있다. 그리고 추측된 비밀키를 검증하는 차분 방법에 있어서는 평균차 테스트(distance-of-mean)와 상관관계분석(correlation analysis)이 사용된다.
도 3은 스마트카드에 구현되어 있는 하드웨어 RSA 암호시스템을 DPA 공격을 이용하여 얻어낸 차분 파형을 보인 파형도이다.
도 3에서 보듯이, 추측한 비밀키가 올바르면 데이터와 소비전력간의 상관관계가 올바르게 분류되었으므로 차분파형에서 피크를 관측할 수 있다.
1.3) Doubling Attack [7]
이는 공격자는 스마트 카드에서 어떤 연산이 수행되었는지는 모르지만 적어도 같은 연산이 두 번 수행되면 이를 알아 낼 수 있다는 기본적인 생각에서 착안을 한 것이다. 좀 더 정확히 말하자면, 스마트카드가 와 를 계산한다면 공격자는 와 는 추측하지 못하지만, 인지 아닌지는 알 수 있다는 것 이다.
만약 잡음이 중요한 요소로 작용한다면, 와 의 전력 소비를 여러 개 모아서 평균을 비교하는 방법이나, 타원곡선상의 두 배 연산이 수천 사이클 동안 수행되는 점을 이용하여 많은 클럭 사이클 중에서의 아주 근소한 차이를 이용하는 방법이 있다.
Doubling Attack은 점 와 를 입력으로 하여 계산할 때에 나타나는 유사한 중간 값에서부터 비밀 값을 유추한다. 그러나 이 방법은 LR 이진 스칼라 곱셈방법에서만 유용하다. Doubling Attack 방법은 코론([2])이 제안한 전력분석공격 대응책 중에 첫 번째와 두 번째 대응책에 적용 가능하다.
1.4) RPA(Refined Power Analysis) [8]
RPA는 타원곡선 에서 인 특이점(즉, 체 상에서 하나의 좌표가 0이고, 이 아닌 점)을 가진다는 가정 하에 이루어지는 공격방법이다. 공격자는 비밀키를 추측하고, 추측한 비밀키가 계산될 때 점 가 나오도록 어떤 점을 입력한다. 만약 추측한 비밀키가 올바르다면 계산 도중 가 나올 것이며, 의 좌표 중 하나는 0이기 때문에 소비전력에 영향을 미칠 것이다. 따 라서 코론의 랜덤사영좌표계([2])를 이용하더라도 가 나온 후에는 좌표계 랜덤화가 일어나지 않아 공격이 가능해 지며, [13]의 랜덤 곡선 동형사상이나 필드 동형사상에도 똑같이 적용될 수 있다.
1.5) ZPA(Zero-value Point Attack) [9]
T. Akishita와 T. Takagi는 타원곡선상의 특별한 점 을 이용하는 RPA 공격을 확장하고 일반화한 ZPA를 제안하였다([9]). 이는 RPA 공격과 달리 타원곡선상의 어떤 점이 비록 0인 값을 가지지 않더라도 보조 레지스터(Auxiliary Register)의 값이 0인 값을 가질 수 있다는 점을 이용하였다. ZPA 역시 RPA와 유사하게 랜덤사영좌표계나 랜덤필드 동형사상을 이용한 대응방법에 적용 가능하다. 실제로 야코비안(Jacobian) 좌표계로 구현했을 때, 두 배 연산과 덧셈 연산 과정 중 몇 가지 조건 하에서 0인 값을 가지는 보조 레지스터가 존재한다.
1.6) 위수 2인 원소를 이용한 SPA 공격 (SPA-based 2-torsion point attack) [11]
메시지 랜덤화를 이용한 DPA 대응방법의 경우, 공격자가 위수가 2인 원소(메시지)를 입력할 때, 제곱 혹은 두 배 연산을 하면 항등원이 되는 위수 2인 원소(메시지)의 성질 때문에 비록 메시지를 랜덤화하더라도 중간 단계의 결과는 항상 두 가지 경우밖에 나타나지 않는다. 위 사실을 기인하여 SPA를 이용하면 메시지 블라인딩 기법이나 SPA 방어 알고리즘을 공격할 수 있다. 타원곡선 암호시스템에서 위 수가 2인 점 (즉, 두 배 연산을 하면 무한원점이 되는 점, , 여기서 는 무한원점)를 입력으로 하면 비밀키에 따라 두 종류의 전력 파형만 나타나게 되어 비밀키를 찾아내는 공격이다. 각각의 루프 연산이 수행될 때 특정 단계에서 가질 수 있는 값은 비밀키 값에 따라 두 가지 값만을 가지며, 이는 두 가지 전력패턴(power pattern)만을 가짐을 의미한다. 따라서 이러한 전력패턴을 관측함으로써 비밀키 를 쉽게 알아낼 수 있다.
2. 전력분석공격에 대한 대응방안 및 취약성
전력분석공격을 방어하기 위해 종래에는 여러 가지 방법들이 제시되었다. 제시된 대응방법들은 크게 두 가지로 분류할 수 있는데, 하나는 비밀키를 랜덤화하는 'exponent blinding'이며, 또 다른 하나는 메시지를 랜덤화하는 'message blinding' 기법이다.
2.1) 코론(Coron)의 대응방법 [2]
코론은 랜덤 스칼라, 블라인딩 포인트, 랜덤 사영 좌표 방법의 세 가지 서로 다른 전력 분석 공격 대응책을 제안하였다. 이 방법은 타원 곡선 암호시스템의 스칼라 곱셈에 대한 가장 잘 알려진 전력 분석 공격 대응책이다.
2.1.1) 코론의 첫 번째 대응책 : 랜덤한 스칼라(Randomized Scalar)
2.1.2) 코론의 두 번째 대응책 : 블라인딩 포인트(Blinding Point)
도 4는 종래 전력분석공격에 대한 코론의 블라인딩 포인트를 보인 알고리즘으로, 코론의 두 번째 대응책을 보인 것이다.
2.1.3) 코론의 세 번째 대응책 : 랜덤 사영 좌표(Randomized Projective coordinates)
사영 좌표는 더하기 연산과 두 배 연산을 하는 동안 역수의 계산을 피하기 위해 사용될 수 있다. 유한체상의 랜덤한 수 를 이용하여 와 같이 좌표를 랜덤화 한다. 즉, 새로운 Q=dP 수행 전에 랜덤수 를 이용하여 점 P를 랜덤화하면 전력 분석 공격을 막을 수 있다.
이 방법의 안전도에 대한 약점은 ZPA와 RPA 공격에 공격된다는 점이며 다른 사영좌표계로 변환과정이 필요하다는 점이 단점이다.
2.2) 랜덤 곡선 동형사상 (Randomized Curve Isomorphism) [13]
다음의 표 1은 표수에 따른 랜덤 곡선 동형사상을 보인 것이다.
표 1에서와 같이, 표수가 2와 3이 아닌 필드에서 정의된 타원곡선에서 각각과 다음과 같이 과 으로 주어졌을 때, 과 를 만족하는 에 속하는 가 존재하면, 두 곡선은 동형(Isomorphic)이다. 표수가 2인 경우도 과 으로 주어졌을 때, 와 을 만족하는 에 속하는 가 존재하면 두 곡선은 동형이다.
이 방법의 안전도에 대한 약점은 ZPA와 RPA 공격에 공격된다는 점이며 다른 동형 곡선으로 전환해야 한다는 점이 단점이다.
2.3 BRIP (Binary expansion with Random Initial Point) [10]
최근 마미야(Mamiya)는 RPA, ZPA, DPA, SPA에 대한 방어책으로 BRIP를 제안하였다.
도 5는 종래 전력분석공격에 대한 BRIP를 보인 알고리즘이다.
그래서 도 5는 도 2의 방법과 동일한 복잡도를 가지면서 최종 값 을 얻기 위해서는 마지막에 을 더해 주어야 한다. 재미있는 사실은 BRIP의 RSA(Rivest Shamir Adleman) 버전이 [14]에서 제안하는 부채널 공격에 강인한 CRT 기반 RSA 알고리즘의 멱승과정 개념과 동일하다는 것이다.
위의 예를 볼 때, 각각의 루프 연산이 수행될 때 도 5의 단계 3.2에서 가질 수 있는 값은 비밀키 값에 따라 두 가지 값만을 가지며, 이는 두 가지 전력패턴(power pattern)만을 가짐을 의미한다. 따라서 이러한 전력패턴(power pattern)을 관측함으로써 비밀키 를 쉽게 알아낼 수 있다.
결론적으로 이 방법의 안전도에 대한 약점은 위수 2인 원소를 이용한 SPA 공 격 공격된다는 점이며, RSA 암호시스템에 적용할 경우 역수 계산이 필요하다는 점이 단점이다.
이에 본 발명은 상기와 같은 종래의 제반 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은 단지 몇 개의 추가적인 레지스터만을 이용하여 현재까지 알려져 있는 전력분석공격에 안전하면서도 기존의 BRIP 알고리즘과 비교해서 연산량의 차이가 거의 없이 기존의 전력분석공격을 모두 방어할 수 있는 전력분석공격에 안전한 메시지 블라인딩 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 일실시예에 의한 전력분석공격에 안전한 메시지 블라인딩 방법은,
한 점 P와 Q=dP를 연산하기 위해 상기 d를 비밀키로 이용하는 메시지 블라인딩 방법에 있어서, d와 P를 입력받는 제 1 단계와; 상기 제 1 단계 후 비밀키 d로 t와 s를 계산하고, 랜덤 타원 포인트 R을 선택하는 제 2 단계와; 상기 제 2 단계 후 한 점 P와 선택된 R을 이용하여 T를 계산하는 제 3 단계와; 상기 제 3 단계 후 T를 이용하여 Q를 구하고, dP를 Q로 하여 출력하는 제 4 단계;를 포함하여 수행함을 그 기술적 구성상의 특징으로 한다.
이하, 상기와 같은 본 발명, 전력분석공격에 안전한 메시지 블라인딩 방법의 기술적 사상에 따른 일실시예를 도면을 참조하여 설명하면 다음과 같다.
도 6은 본 발명의 일실시예에 의한 전력분석공격에 안전한 메시지 블라인딩 방법을 보인 흐름도이고, 도 7은 도 6의 알고리즘이다.
이에 도시된 바와 같이, 한 점 P와 Q=dP를 연산하기 위해 상기 d를 비밀키로 이용하는 메시지 블라인딩 방법에 있어서, d와 P를 입력받는 제 1 단계(ST1)와; 상기 제 1 단계 후 비밀키 d로 t와 s를 계산하고, 랜덤 타원 포인트(random elliptic point) R을 선택하는 제 2 단계(ST2, ST3)와; 상기 제 2 단계 후 한 점 P와 선택된 R을 이용하여 T를 계산하는 제 3 단계(ST4)와; 상기 제 3 단계 후 T를 이용하여 Q를 구하고, dP를 Q로 하여 출력하는 제 4 단계(ST5, ST6);를 포함하여 수행하는 것을 특징으로 한다. 여기서, t = k#E + d - (2n - 1) , s = #E - d 이며, #E는 타원곡선의 위수이다.
상기 제 3 단계에서 T는, 입력값에 상관없이 (P+R)을 매 반복 연산마다 더하여 구하는 것을 특징으로 한다.
상기 제 4 단계에서 dP는, 위수가 2인 점을 포함하는 것을 특징으로 한다.
상기 전력분석공격에 안전한 메시지 블라인딩 방법은, 타원곡선 암호시스템에 적용하는 것을 특징으로 한다.
상기 전력분석공격에 안전한 메시지 블라인딩 방법은, RSA(Rivest Shamir Adleman) 암호시스템에 적용하는 것을 특징으로 한다.
이와 같이 구성된 본 발명에 의한 전력분석공격에 안전한 메시지 블라인딩 방법의 동작을 첨부한 도면에 의거 상세히 설명하면 다음과 같다.
먼저 본 발명은 단지 몇 개의 추가적인 레지스터만을 이용하여 현재까지 알려져 있는 전력분석공격에 안전하면서도 기존의 BRIP 알고리즘과 비교해서 연산량의 차이가 거의 없이 기존의 전력분석공격을 모두 방어하고자 한 것이다.
즉, 본 발명에서 제안하는 대응방법은 종래의 모든 전력분석공격에 대해 안전하여 타원곡선암호시스템(Elliptic Curve Cryptosystem, ECC)에 효과적으로 적용할 수 있을 뿐 아니라, 뺄셈 연산이 없어 RSA 암호시스템에도 적용해도 역원연산과 같은 부가적인 계산을 할 필요가 없는 일반적인 방법이다.
종래기술에 대해 살펴본 바와 같이 현재까지 제시된 전력 분석 공격에 완벽하게 방어되는 알고리즘은 없으며, 각 대응 방법마다 안전에 관한 취약성과 비효율 성을 가지고 있다.
본 발명에서 제안하는 대응방법의 기본 개념은 랜덤한 점 을 이용하여 메시지 를 블라인딩하는 것이다. 즉, 최종 결과 값인 를 계산하는 대신 를 계산한다. 여기서 는 타원곡선의 위수이며, 모든 점의 위수배는 항상 항등원이 된다. 의 유도과정은 다음의 수학식 2와 같다. 여기서, t = k#E + d - (2n - 1) , s = #E - d 이며, #E는 타원곡선의 위수이다.
여기서 이므로 가 되어 은 의 값에 영향을 미치지 않는다. 또한 입력값에 상관없이 은 매 반복 연산마다 더해지게 된다. 따라서 본 발명에서 제안하는 상수배 알고리즘의 중간값은 값에 의해 블 라인드 되기 때문에 기존 DPA 공격에는 안전하다. 또한 코론의 두 번째 대응방법과 비교해 볼 때, 항상 새로운 로 랜덤하게 선택하고, 를 로 업데이트 하는 경우에도 doubling 공격이 적용되는 조건을 만족시키지 않기 때문에 doubling 공격에 안전하다.
도 6에서 볼 수 있듯이 제안하는 알고리즘의 또 다른 장점은 다음과 같다. 즉, 일반적인 메시지 블라인드 방식에서 을 제거하기 위해 의 역원을 구해야 하지만, 본 발명에서 제안하는 알고리즘은 역원을 전혀 구할 필요가 없다는 점이다. 이는 RSA 암호시스템에 적용할 경우 연산량 측면뿐만 아니라 구현적인 측면에서도 매우 큰 이점으로 작용한다. 그래서 RSA와 타원곡선과 같은 멱승기반의 암호시스템에서는 매우 효과적인 대응방법이라 말할 수 있다.
또한, 쌍이 00 일 경우에도 항상 을 더해줌으로써 단계 5.1에 대한 SPA 공격의 취약성을 보완해줌과 동시에 위수가 2인 점 를 입력한 후 측정된 power pattern을 관측하여 비밀키를 알아내는 공격 방법도 효과적으로 방어할 수 있다.
이 방법의 특징을 알아보기 위해 저장되는 중간값이 변하는 과정을 수치적인 예를 통해 BRIP와 비교해 보면 다음 표 2와 같다.
구분 | 종래 BRIP(단계 3.2) (d=1010112로 가정) | 본 발명(단계 5.2) (t=1100112,s=1010102로 가정) | ||
입력 : P | 입력 : G | 입력 : P | 입력 : G | |
i=5 | P+R | G+R | 2P+3R | 3R |
i=4 | 2P+R | R | 6P+8R | 8R |
i=3 | 5P+R | G+R | 13P+18R | G+18R |
i=2 | 10P+R | R | 27P+37R | G+37R |
i=1 | 21P+R | G+R | 56P+77R | 77R |
i=0 | 43P+R | G+R | 114P+156R | 156R |
표 2에서 보는 바와 같이, 종래 BRIP의 중간값은 항상 원래값에 랜덤수 을 더한 것처럼 나타난다. 그러므로 위수 2를 가지는 점 를 입력하게 되면(), 값이나 값 둘 중의 하나 값을 갖게 됨으로써 SPA 공격에 취약하게 된다. 반면 본 발명에서 제안하는 방법은 입력에 를 넣더라도 중간 값에 들어 있는 랜덤 성질이 계속 변하므로 SPA 공격이 될 수 없다.
본 발명에서 제안 방법을 구현하게 되면, 연산량 측면에서 가 비트일 경우 BRIP는 번의 두 배 연산과 번의 덧셈 연산이 필요한데 반해, 본 발명은 번의 두 배 연산과 번의 덧셈 연산이 필요하여 별 차이가 없다. 다만 구현시 중간 점을 저장하는 레지스터가 1개와 와 를 저장할 임시 레지스터가 필요하지만, 160비트 정도의 크기이므로 추가되는 메모리는 거의 없다고 볼 수 있다. 따라서 본 발명에서 제안한 방법은 비슷한 구현 조건 하에서 강한 안전성을 제공할 수 있는 구현 방법임을 알 수 있다.
본 발명에 대해 안전성 분석을 수행하면 다음과 같다.
먼저 본 발명에서 제안하는 대응방법은 랜덤한 점 을 이용하여 점 를 블라인딩하는 기법이다. 이때 점 은 알고리즘이 실행될 때 마다 갱신되기 때문에 기존의 DPA 공격이나 doubling 공격에 안전하다. 또한, 랜덤 사영좌표계나 동형사상을 이용한 메시지(점 ) 블라인딩 기법이 아니고 중간값에 더해지는 랜덤값도 매 반복 연산마다 갱신되기 때문에 RPA 공격과 ZPA 공격에도 안전하다.
마미야(Mamiya)의 BRIP는 위수 2인 원소를 이용하는 새로운 SPA 공격에 취약성이 있음이 밝혀졌다. 비록 본 발명에서 제안하는 대응방법이 랜덤한 점 을 이용한 메시지 블라인딩 기법을 사용한다는 점에서 종래의 BRIP와 유사하지만, 의 수학식을 이용하여 중간값을 의 형태를 만들지 않고, 은 가 되는 성질을 이용하여 중간값을 의 형태를 만들기 때문에, 위수가 2인 점 를 포함하여 임의의 입력이 들어왔을 때에도 중간값이 어떤 특정한 패턴을 가지지 않게 된다.
위의 수학식 3에서와 같이, 본 발명에서 제안하는 상수배 알고리즘은 비밀키의 값과 입력값과는 매 반복연산마다 의 형태의 랜덤한 값이 포함되므로 BRIP와는 다르게 수행되는 알고리즘의 소비 전력 파형에 어떠한 특정한 전력패턴(power pattern)도 나타나지 않게 된다.
이와 같이 본 발명에서는 RPA, ZPA, doubling 공격 및 위수가 2인 점을 사용하는 SPA 공격에 안전한 타원곡선 상수배 알고리즘을 제안하였다. BRIP의 경우에는 알고리즘의 마지막에 을 이용하는 연산이 있어서 RSA 암호시스템에는 적용하기 어려웠고, 위수가 2인 점을 사용하는 SPA 공격에 취약하였다. 하지만 본 발명에서 제안하는 상수배 알고리즘은 기존의 SPA 공격을 방어하기 위한 상수배 알고리즘과 같은 연산량을 유지하면서 단지 몇 개의 추가적인 레지스터만을 사용함으로써 현재까지 알려진 거의 모든 전력분석공격에 안전한 알고리즘임을 알 수 있다. 또한 타원곡선 암호시스템 뿐만 아니라 RSA 암호시스템과 같은 경우에도 제안하는 알고리즘은 역수 계산하는 부분이 없어서 적용이 용이한 보다 일반적인 알고리즘이다.
이처럼 본 발명은 단지 몇 개의 추가적인 레지스터만을 이용하여 현재까지 알려져 있는 전력분석공격에 안전하면서도 기존의 BRIP 알고리즘과 비교해서 연산량의 차이가 거의 없이 기존의 전력분석공격을 모두 방어하게 되는 것이다.
이상에서 살펴본 바와 같이, 본 발명에 의한 전력분석공격에 안전한 메시지 블라인딩 방법은 단지 몇 개의 추가적인 레지스터만을 이용하여 현재까지 알려져 있는 전력분석공격에 안전하면서도 기존의 BRIP 알고리즘과 비교해서 연산량의 차이가 거의 없이 기존의 전력분석공격을 모두 방어할 수 있는 효과가 있게 된다.
이상에서 본 발명의 바람직한 실시예에 한정하여 설명하였으나, 본 발명은 이에 한정되지 않고 다양한 변화와 변경 및 균등물을 사용할 수 있다. 따라서 본 발명은 상기 실시예를 적절히 변형하여 응용할 수 있고, 이러한 응용도 하기 특허청구범위에 기재된 기술적 사상을 바탕으로 하는 한 본 발명의 권리범위에 속하게 됨은 당연하다 할 것이다.
Claims (9)
- 한 점 P와 Q=dP를 연산하기 위해 상기 d를 비밀키로 이용하는 메시지 블라인딩 방법에 있어서,d와 P를 입력받는 제 1 단계와;상기 제 1 단계 후 비밀키 d로 t와 s를 계산하고, 랜덤 타원 포인트 R을 선택하는 제 2 단계와;상기 제 2 단계 후 한 점 P와 선택된 R을 이용하여 T를 계산하는 제 3 단계와;상기 제 3 단계 후 T를 이용하여 Q를 구하고, dP를 Q로 하여 출력하는 제 4 단계;를 포함하여 수행하는 것을 특징으로 하는 전력분석공격에 안전한 메시지 블라인딩 방법.여기서, t = k#E + d - (2n - 1) , s = #E - d 이며, #E는 타원곡선의 위수이다.
- 청구항 1에 있어서, 상기 제 3 단계에서 T는,입력값에 상관없이 (P+R)을 매 반복 연산마다 더하여 구하는 것을 특징으로 하는 전력분석공격에 안전한 메시지 블라인딩 방법.
- 청구항 1에 있어서, 상기 제 4 단계에서 dP는,위수가 2인 점을 포함하는 것을 특징으로 하는 전력분석공격에 안전한 메시지 블라인딩 방법.
- 청구항 1 내지 청구항 7 중 어느 한 항에 있어서, 상기 전력분석공격에 안전한 메시지 블라인딩 방법은,타원곡선 암호시스템에 적용하는 것을 특징으로 하는 전력분석공격에 안전한 메시지 블라인딩 방법.
- 청구항 1 내지 청구항 7 중 어느 한 항에 있어서, 상기 전력분석공격에 안전한 메시지 블라인딩 방법은,RSA 암호시스템에 적용하는 것을 특징으로 하는 전력분석공격에 안전한 메시지 블라인딩 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060042585A KR100772550B1 (ko) | 2006-05-11 | 2006-05-11 | 전력분석공격에 안전한 메시지 블라인딩 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060042585A KR100772550B1 (ko) | 2006-05-11 | 2006-05-11 | 전력분석공격에 안전한 메시지 블라인딩 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100772550B1 true KR100772550B1 (ko) | 2007-11-02 |
Family
ID=39060559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060042585A KR100772550B1 (ko) | 2006-05-11 | 2006-05-11 | 전력분석공격에 안전한 메시지 블라인딩 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100772550B1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8422671B2 (en) | 2010-03-08 | 2013-04-16 | Samsung Electronics Co., Ltd. | Methods of encryption and decryption using operand ordering and encryption systems using the same |
KR101344402B1 (ko) * | 2010-08-12 | 2013-12-26 | 한국전자통신연구원 | Rsa 서명 방법 및 장치 |
KR101665600B1 (ko) * | 2015-07-07 | 2016-10-12 | 국민대학교산학협력단 | Ecc 암호 알고리즘의 전력 충돌 공격 대응을 위한 장치 및 방법 |
KR20220075094A (ko) * | 2020-11-27 | 2022-06-07 | 동서대학교 산학협력단 | Aes가 탑재된 avr장비의 소비패턴 분석을 통한 mlp 기반의 aes 복호화 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100402156B1 (en) | 2002-04-25 | 2003-10-17 | Jae Cheol Ha | Method for encrypting elliptic curve to prevent power analysis attack |
-
2006
- 2006-05-11 KR KR1020060042585A patent/KR100772550B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100402156B1 (en) | 2002-04-25 | 2003-10-17 | Jae Cheol Ha | Method for encrypting elliptic curve to prevent power analysis attack |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8422671B2 (en) | 2010-03-08 | 2013-04-16 | Samsung Electronics Co., Ltd. | Methods of encryption and decryption using operand ordering and encryption systems using the same |
KR101344402B1 (ko) * | 2010-08-12 | 2013-12-26 | 한국전자통신연구원 | Rsa 서명 방법 및 장치 |
KR101665600B1 (ko) * | 2015-07-07 | 2016-10-12 | 국민대학교산학협력단 | Ecc 암호 알고리즘의 전력 충돌 공격 대응을 위한 장치 및 방법 |
KR20220075094A (ko) * | 2020-11-27 | 2022-06-07 | 동서대학교 산학협력단 | Aes가 탑재된 avr장비의 소비패턴 분석을 통한 mlp 기반의 aes 복호화 방법 |
KR102505081B1 (ko) | 2020-11-27 | 2023-03-02 | 동서대학교 산학협력단 | Aes가 탑재된 avr장비의 소비패턴 분석을 통한 mlp 기반의 aes 복호화 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4632950B2 (ja) | 個人鍵を用いた耐タンパ暗号処理 | |
Yen et al. | Power analysis by exploiting chosen message and internal collisions–vulnerability of checking mechanism for RSA-decryption | |
Cheol Ha et al. | Randomized signed-scalar multiplication of ECC to resist power attacks | |
Izu et al. | Exceptional procedure attack on elliptic curve cryptosystems | |
US8391477B2 (en) | Cryptographic device having tamper resistance to power analysis attack | |
Itoh et al. | A practical countermeasure against address-bit differential power analysis | |
US20090092245A1 (en) | Protection Against Side Channel Attacks | |
US20040139136A1 (en) | Method for securing a computer installation involving a cryptographic algorithm using boolean operations and arithmetic operations and the corresponding embedded system | |
Dupaquis et al. | Redundant modular reduction algorithms | |
Kim et al. | How can we overcome both side channel analysis and fault attacks on RSA-CRT? | |
US20080201398A1 (en) | Determination of a Modular Inverse | |
US20100287384A1 (en) | Arrangement for and method of protecting a data processing device against an attack or analysis | |
Okeya et al. | A more flexible countermeasure against side channel attacks using window method | |
Hedabou et al. | Countermeasures for preventing comb method against SCA attacks | |
KR100772550B1 (ko) | 전력분석공격에 안전한 메시지 블라인딩 방법 | |
Boscher et al. | Blinded fault resistant exponentiation revisited | |
KR100731575B1 (ko) | 전력분석공격에 대응하는 암호화 방법 | |
Fouque et al. | Defeating countermeasures based on randomized BSD representations | |
Kim et al. | An improved and efficient countermeasure against power analysis attacks | |
Vadnala et al. | Algorithms for switching between boolean and arithmetic masking of second order | |
Smart et al. | Randomised representations | |
Yin et al. | A randomized binary modular exponentiation based RSA algorithm against the comparative power analysis | |
Ha et al. | Provably secure countermeasure resistant to several types of power attack for ECC | |
Park et al. | An improved side channel attack using event information of subtraction | |
Smart | Physical side‐channel attacks on cryptographic systems |
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: 20110923 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20120806 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140925 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |