KR20180137534A - 암호적 거듭제곱 알고리즘에 대한 세이프-에러 오류 주입 공격에 대한 대책 - Google Patents

암호적 거듭제곱 알고리즘에 대한 세이프-에러 오류 주입 공격에 대한 대책 Download PDF

Info

Publication number
KR20180137534A
KR20180137534A KR1020187033686A KR20187033686A KR20180137534A KR 20180137534 A KR20180137534 A KR 20180137534A KR 1020187033686 A KR1020187033686 A KR 1020187033686A KR 20187033686 A KR20187033686 A KR 20187033686A KR 20180137534 A KR20180137534 A KR 20180137534A
Authority
KR
South Korea
Prior art keywords
variable
modulus
montgomery
montgomery multiplication
cryptographic
Prior art date
Application number
KR1020187033686A
Other languages
English (en)
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 제말토 에스에이
Publication of KR20180137534A publication Critical patent/KR20180137534A/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
    • 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/723Modular exponentiation
    • 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/728Methods 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 using Montgomery reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/3006Public 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/302Public 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

특히 세이프-에러 주입 공격에 대하여, RSA와 DSA와 같은 암호적 시스템을 보안하기 위해, 몽고메리 곱셈의 특성을 사용하는 대책이 개시된다. 제안된 알고리즘에서, 이진 거듭제곱 b = ad mod n은, 지수(d)의 현재 비트(di)가 0과 동일할 때, 몽고메리 곱셈을 사용하여 반복적으로 계산된다. 그 경우에, R에 의한 거듭제곱 계산의 실제 결과의 몽고메리 곱셈이 실현된다. 이러한 대책 덕분에, 계산 동안에 도입된 오류 주입 타입의 임의의 교란이 있다면, 개인 키(d)의 현재 비트(di)를 추론하기 위해 이러한 공격이 비효과적이게 하는 최종 결과에 대한 가시적 효과를 가질 것이다.

Description

암호적 거듭제곱 알고리즘에 대한 세이프-에러 오류 주입 공격에 대한 대책
본 발명은 암호적 거듭제곱 알고리즘에 대한 세이프-에러 오류 주입 공격에 대한 대책에 관한 것이다.
본 발명은 특히, 제1 메시지(a)로부터 제2 메세지(b)를 생성하기 위한 모듈러 거듭제곱 계산을 포함하는 암호적 방법에서 응용예를 찾는데, b = ad 모듈러스 n, 여기서, d는 개인 키이고, n은 공유 모듈러스이다. 이러한 응용예에서, 본 발명은 세이프-에러 오류 주입 공격(safe-error fault injection attack)과 같은 침입 공격에 대해 암호적 방법을 지키는데 사용될 수 있다. 좀 더 구체적으로, 본 발명은 몽고메리 계산(Montgomery calculation)에 기초하여 대책을 사용하는 것을 제안한다.
본 섹션에서 기술된 접근법을 추구할 수 있지만, 반드시 이전에 고려되거나 추구하였던 접근법은 아니다. 그러므로, 본원에서 다른 표시가 없는 한, 본 섹션에서 기술된 접근법은 본 출원의 청구항에 종래 기술이 아니고, 본 섹션에서의 포함된다고 하여 종래 기술로 인정되는 것도 아니다.
모듈러 거듭제곱은, 특히 RSA나 DSA와 같은 암호법에서 사용된다. RSA는 깨끗한 문자 메세지를 암호화하고, 암호화된 메시지를 해독하는데 사용되는 암호적 테크닉이고, DSA는 주어진 메세지의 시그니쳐를 생성하고, 이러한 시그니쳐의 유효성을 확인하는데 사용되는 암호적 테크닉이다. 이들 테크닉들은 공개 키의 로직을 사용한다.
RSA에 있어서, 암호적 테크닉의 효율성은, 해커가 큰 수를 인수분해하는데 있어서의 어려움에 근거한다. RSA는 발명자, 즉, Rivest, Shamir 및 Adleman의 이니셜을 따라 명명되었는데, 1977년도에 소개되었다(Rivest, R.L, Shamir, A., Adelman, L.M. : "A method for obtaining digital 시그니쳐s and public-key cyptosystems" , Technical Report MIT/LCS/TM-82, 1977 참조). 1983년도에 MIT에 의해 미국에서 특허로 되었다. US 특허는 2000년 9월 22일에 만료되었다.
DSA(디지털 시그니쳐 알고리즘)은 미국에서 NIST에 의해 표준화된 알고리즘이다. 이러한 알고리즘은 1993년에 실행되었던 DSS(디지털 시그니쳐 표준)의 일부이다.
모듈러 거듭제곱은 RSA나 DSA와 같은 공개 키 암호법에 대한 중요한 동작이다. 이러한 모듈러 거듭제곱의 결과는, b = ad mod n을 계산함에 의해, 제2 메세지(b)를 낳는데, 여기서, 지수 d는 개인 키에 대응되는 널이 아닌 정수이고, n은 큰 정수 공유 모듈러스이다. 실제로, 공격자가, 알려진 커플 (a,b)로부터 개인 지수(k)를 추론하는 것은 실현 불가능하다고 증명되었다.
암호적 알고리즘에서 모듈러 거듭제곱을 실행하기 위한 한 가지 방법은 지수의 이진 분해(binary decomposition)를 사용하는 것으로 구성된다. 이러한 소위 "이진 거듭제곱(binary exponentiation)" 방법은 "제곱-및-곱셈(square-and-multiply)" 방법으로도 알려져 있다. 그것은 1997년 Knuth에 의해 설명되었다. 이 방법의 뒤에 있는 아이디어는 지수(d)의 이진 표현(binary representation)을 사용하여 ad를 계산하는 것이다. 그러므로, 거듭제곱 연산은 일련의 제곱 연산과 곱셈 연산으로 분리된다. k가 지수(d)의 비트-길이를 표시한다고 가정하면, 상기 지수는 이진 표현에서 d = (dk-1 dk-2 ... d1d0)2
Figure pct00001
, 여기서
Figure pct00002
로 표현될 수 있다.
이진 거듭제곱 방법은 거듭제곱 계산을 빠르게 할 수 있다. 이진 거듭제곱 알고리즘은, 아래의 예시적인 의사-코드에 의해 실행될 수 있는데, 거듭제곱은 지수(d)의 최상위 비트(MSB)로부터 시작하여, 지수의 최하위 비트(LSB)를 향해 진행되면서 계산된다.
Figure pct00003
이러한 알고리즘에 대한 계산적인 복잡성은 ad mod n을 평가하기 위한 2x(k/2)+1x(k/2) = 1.5xk이다. 그러므로, 이러한 알고리즘은 자원-제한된 디바이스에 적합하다.
그러나, 이진 값 '1'과 동일한 지수의 각각의 비트에 대해 수행된 계산은 개인 키(d)를 해커에게 드러낼 수 있다. 이는, 해독 프로세스가 수행될 때, 디바이스 전력 소비의 분석에 의해 달성될 수 있다. 실제로, 현저하게 더 높은 전력이, 실행 계산이 없는 전력 소비에 비해, 계산이 컴퓨터 유닛에 의해 수행될 때, 컴퓨터 유닛에 의해 소비된다. 그러므로, 이진 거듭제곱 실행의 매 순간의 소비 부하는 프로세스되는 지수의 현재 비트의 이진 값에 의존하므로, 계산에 의해 감소하는 전류를 모니터링하는 것은 상기 지수의 각각의 비트를 용이하게 드러낼 수 있다.
이러한 문제점을 해결하기 위한 여러가지 옵션이 고려되었다. 특히, 대책의 도입은, 시그니쳐가 계산되거나 확인되는 동안 발생하는 계산 부하의 임의의 베리에이션을 해커에 의해 검출되는 것을 막기위해 제안되었다.
그러므로, "제곱-및-곱셈-항상(Square-And-Multiply-Always)"로 알려진 이러한 공격에 대한 하나의 대책은, 아무것도 않하는 대신에, 스캔된 비트가 '0'이라면, 더미 계산(dummy calculation)을 추가하는 것으로 구성된다. 이러한 더미 계산은 가령, 상수나 임의의 수에 의한 메세지의 모듈러 곱셈일 수 있다. 그 경우에, 이진 거듭제곱 알고리즘의 상기 의사-코드는 다음과 같이 된다.
Figure pct00004
그러나, 이러한 대책은 "오류 주입 공격(fault injection attack)"이라고 하는 또 다른 종류의 공격에 취약하다. 오류 주입 공격은 오류 있는 데이터를 암호적 계산으로 도입하는 개념에 근거하여, 틀리게 계산된 결과의 수학적 속성과 통계적 속성을 분석함에 의해, 개인 키를 식별한다. 실제로, 모듈러 거듭제곱의 실행 흐름을 교란시킴에 의해, 예상된 결과와 (틀린) 결과를 비교하는 것은 조작된 비밀 데이터에 대한 정보를 드러낼 수 있다.
이러한 공격은, 개인 키의 지수의 현재 비트가 0과 동일할 때, 곱셈이 더미 연산이기 때문에, 단계 (2) 동안에 오류 주입이 효과가 없다는 사실을 사용한다. 그러므로, 공격은, 잠재적으로 더미 곱셈 동안에, 천이 랜덤 계산 오류를 도입함에 의해 수행된다. 지수 비트는 출력의 정확성을 검사함에 의해 획득될 수 있다.
좀 더 구체적으로, 상기 예시적인 의사-코드에 의해 수행된 프로세스의 단계(2)에서 교란을 도입시키는 것은, 제자리(in-place) 곱셈이 사실상 더미 곱셈이었다면, 최종 결과에 영향을 주지 않는다. 동일한 방식으로, 반복 계산의 단계(2)에서 도입된 교란은, 제자리 곱셈이 실제 곱셈이라면, 최종 결과에 가시적 영향을 준다. 이것은,
- 최종 결과가 예산된 것과 상이하다면, 그것은, 실제 곱셈 동안에, 교란(perturbation)이 행해졌다는 것을 의미하고, 스캔된 비트 '1'을 드러내는 반면,
- 최종 결과가 바뀌지 않는다면, 그것은, 더미 곱셈 동안에, 교란이 행해졌다는 것을 의미하고, 스캔된 비트 '0'을 드러낸다.
지수의 각각의 비트에 이러한 공격을 반복함에 의해, 그리고 최종 결과에 대한 암시(implication)를 분석함에 의해, 해커는 전체 지수를 회복할 수 있다. 이러한 지수가 RSA 개인 키와 같은 중요한 데이터라면, 매우 해로울 수 있다.
"세이프-에러 오류 주입(safe-error fault injeciton)"라고 하는, 즉, 거듭제곱의 출력이 바뀌지 않게 유지하는 오류라는 또 다른 타입이 있다. 2차 세이프 에러 공격, 즉, 동일한 계산 동안에 공격자가 두 개의 오류를 주입하는 것을 고려해보고, 결과가 유효한지 아닌지를 관측한다. 공격자는, r은 임의의 수인 지수(ar)의 단계(i)에서 곱셈 동안에 오류를 주입하고, r*=d-r인 지수(ar*)의 단계(i)에서 곱셈 동안에 또 다른 오류를 주입한다고 생각해보자. 이들 두 개의 오류는, (ri, r*i) = (0,0)이라면, 계산에 영향이 없다. 프로세스를 반복함에 의해, 공격자는 그의 선택의 이진 랭크(i)에서 비트에 대해 (0,0)을 얻기 위한 확률의 평가를 획득한다. 이러한 확률은 비트(di)의 값과 강하게 상관된다. 이러한 관측은 공격자가 비밀 지수를 학습하도록 한다. 그것은, Joye, Tunstall, Chapter 7/8에 의한 논문 "FAULT ANALYSIS IN CRYPTOGRAPHY"에 상세히 기술되었다.
또 다른 대책은 특허 문헌 WO 98/52319 IMPROVED METHOD AND APPARATUS FOR PROTECTING PUBLIC KEY SCHEMES FROM TIMING AND FAULT ATTACKS'에 기술된 바와 같이, 지수를 랜덤화(randomizing)하는 것으로 구성된다. a d mod n을 계산하는 대신에,
Figure pct00005
을 계산할 수 있고, 여기서, k는 임의의 정수이고,
Figure pct00006
는 오일러의
Figure pct00007
함수이다. n = p.q가 RSA 모듈러스인 경우, 이는
Figure pct00008
를 낳는다. 그러므로, 지수는
Figure pct00009
가 된다. 오류 주입 공격을 효율적으로 좌절시키기 위해, 적어도 32-비트 길이 임의의 정수 k를 사용하는 것이 고려될 수 있다. 그러나, 지수는 매우 길게 되었고, 그래서 전제 거듭제곱의 계산은 현저하게 더 시간 소요된다.
"CRYPTOGRAPHIC METHOD AND DEVICE FOR PROTECTING PUBLIC-KEY SOFTWARE AGAINST FAULT ATTACKS" 라는 명칭의 프랑스 특허 FR 2884088는, 상기 계산을 두 개의 구별되는 계산 단계로 분해하여서, 궁극적으로 최종 결과를 재결합시키는 것을 개시한다. 개시된 방법에 따르면, 지수는 임의의 방법으로 d = d1 + d2로 분해되고, 한 편으로는 a d1 mod n이, 그리고 다른 한 편으로는 a d2 mod n이 계산되고, 최종적으로, 두 개의 획득된 결과들은 최종 결과를 획득하기 위해 곱해진다. 그러나, 이는 수행될 계산이 두 배를 요한다.
다른 가능한 대책은 추가적인 체인("SECURING RSA AGAINST FAULT ANALYSIS BY DOUBLE ADDITION CHAIN EXPONENTIATION", Rivain, https:veprint.iacr.orq.2009. 1 65.pdf)의 사용을 포함한다. 그것은, 각각의 비트에 대해 다른 것과 함께 업데이트되는 추가적인 시간적 변수를 필요로 한다. 계산 전반에 걸쳐, 이들 두 개의 변수는 거듭제곱 프로세스의 마지막에서 확인될 수 있는 공통 관계를 만족한다. 이러한 관계가 유지되지 않는다면, 계산은 교란될 수 있고, 추가적인 대책이 취해질 수 있다. 이러한 대책은 제2 시간적 변수를 저장하기 위한 또 다른 레지스터를 필요로 하고, 또한, 최종 확인을 요하므로, 추가적인 계산을 요한다.
"METHOD AND DEVICE FOR COUNTERING FAULT ATTACKS"라는 명칭의 특허 EP 2222012는 결과가 정확하다는 것을 확인하기 위해, 공용 지수 "e"를 사용하는 것으로 구성된 방법을 개시한다. 물론, 그것은 추가적인 거듭제곱과 최종 비교의 계산을 의미한다.
"RANDOMIZED RSA-BASED CRYPTOGRAPHIC EXPONENTIATION RESISTANT TO SIDE CHANNEL AND FAULT ATTACKS"라는 명칭으로 특허 US 8,139,763에 기술된 방법은, 지수를 랜덤화하는 것으로 구성된다. 결과로 나온 랜덤화된 지수는 더 크고, 더 많은 계산 루프를 의미한다.
마지막으로, 특허 EP 1531579 "RSA PUBLIC KEY GENERATION APPARATUS, RSA DECRYPTION APPARATUS, AND RSA SIGNATURE APPARATUS"에서 개시된 방법의 개념은 추가적인 (비싼) 계산 및 최종 확인을 추가하는 것이다.
추가적인 별도의 연산을 제안하는 상기 대책 모두는 특히 성능을 퇴화시킨다. 오류 실패 분석 공격의 존재는, 성능 퇴화 없이 암호적 응용예 보호를 실행할 때, 특별한 관리를 요한다.
상기를 참작하면, 상기 제시된 바와 같은 기존 해결책에 대하여 간단하고 효율적인 대안예를 제공함에 의해, 세이프-에러 주입 타입의 가능한 공격에 대한 개선된 대책에 대한 필요성이 있다.
이러한 요구를 해결하기 위해, 본 발명의 제1 양태는,
제1 메세지(a)를 수신하는 단계와,
모듈러 거듭제곱 b = a d mod n을 계산하는 것에 의해 제2 메세지(b)를 생성하는 단계 - d는, d = (dk-1 dk-2 ... d1d0)와 같이 이진 표현으로 표현된 정수이고, 변수
Figure pct00010
를 가진
Figure pct00011
이며, n은 양의 정수 모듈러스이고, R은 n보다 큰 g의 가장 작은 멱(power)으로 정의된 몽고메리 상수이고, g는 기계-단어 기반(machine-word base)임 - 를 포함하되,
상기 모듈러 거듭제곱 b = a d mod n을 계산하는 것은,
제1 변수를 R 모듈러스 n으로 개시하는 단계와,
di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산하는 단계 - 상기 반복 프로세스의 각각의 반복은, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입하는, 암호적 방법을 제안한다.
일 실시예에서, 상기 모듈러 거듭제곱 b = a d mod n을 계산하는 것은 몽고메리 변환을 사용하고,
제1 변수와 제2 변수를 각각 R 모듈러스 n과 a×R 모듈러스 n으로 개시하는 단계와,
di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산하는 단계 - 제1 변수를 상기 제1 변수와 자체 모듈러스 n의 몽고메리 곱셈으로 대체하는 단계를 포함하되, di가 1과 동일하면, 제1 변수를, 상기 제1 변수와 제2 변수 모듈러스 n의 몽고메리 곱셈으로 대체하고, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입함 - 와,
상기 제1 변수를, 상기 제1 변수와 1 모듈러스 n의 몽고메리 곱셈으로 대체하는 단계를 포함한다.
RSA 암호 연산이나 해독 연산의 경우, 메세지(a)는 암호화된 메세지(c)이고, 메세지(b)는 깨끗한 텍스트 메세지(m)이다.
DSA 암호적 시스템의 경우, 제1 메세지(a)는 정수(h)이고, 제2 메세지(b)는 공개 키(y)이며, 지수(d)는 비밀 키(x)이다.
다르게 말하면, 소위 "제곱-및-곱셈 항상(Square-and-Multiply Always)" 대책과 같이 더미 곱셈 dummy = dummy×c mod n을 계산하는 대신에, 본 발명은 result = MontMul(result,R,n)을 계산하는 것을 제안하는데, 여기서, MontMul은 한 세트의 연산 (result,R,n)에 적용되는 몽고메리 곱셈 연산을 표시한다. 이와 같이, 임의의 연산의 및/또는 이러한 계산의 결과에서의 약간의 교란은 이진 거듭제곱 계산의 최종 결과의 수정을 야기할 것이다.
특히, "HandBook of Applied Cryptography, by Menezes, van Oorschot, and Vanstone, Chapter 14"에 몽고메리 곱셈이 기술된다.
기술 분야의 당업자는 더미 연산 대신에 이러한 연산을 도입하는 것은, 몽고메리 곱셈의 정의 때문에 최종 결과를 수정하지 않는다는 것을 인식할 것이다.
그럼에도 불구하고, 이러한 대책을 추가하는 것은 가령, RSA 알고리즘과 같은 모듈러 거듭제곱 동안에, 거듭제곱 알고리즘의 임의의 순간에 임의의 교란이 최종 결과의 수정을 야기할 것이라는 점에 영향을 준다. 이러한 이점은, 본 대책 연산이 최종 결과에 링크된다는 사실로부터 파생된다.
다르게 말하면, 몽고메리 곱셈을 사용하는 것이 정상적인 경우에 이진 거듭제곱 계산에 영향을 주지 않는 반면, 상기 언급된 특성은, 이러한 계산 동아네 도입된 임의의 오류가 최종 결과의 가시적 영향을 가질 것이라는 결과를 제공한다.
그러므로, 본 발명은, 임의의 공개 키 암호법(RSA, DSA, 등)의 거듭제곱 연산 동안에, 모듈러 거듭제곱의 계산에서 몽고메리 곱셈을 사용함에 의해, 세이프-에러 주입 타입의 가능한 공격을 좌절시키기 위한 간단하고 효과적인 해결책을 제공한다.
이러한 방법으로 몽고메리 곱셈을 사용하는 것은, 모듈러 거듭제곱 계산을 빠르게 하는데 의도적으로 사용되었더라도, 신규하고, 용이하지 않다.
바람직하게는, 제안된 해결책의 실시예는 임의의 공개 키 암호법에서 유용한 빠르고 가벼운 해독 프로세스를 제공한다. 실제로, 본 해결책은 기존 방법보다 더 빠른데, 왜냐하면, 본 해결책은, 해커에게 아무런 오류가 알려지지 않는다는 것을 고려하면, 세이프-에러가 계산 동안에 도입되지 않는다는 것을 보장하기 위한 추가적인 확인 연산을 사용할 필요가 없기 때문이다. 또한, 알고리즘이 추가적인 데이터를 저장하기 위한 추가적인 레지스터를 필요로하지 않기 때문에, 용이하게 사용가능한 테크닉보다 더 가볍다. 그러므로, 메모리-최적화된다. 다시 말해, 제안된 "몽고메리 곱셈" 대책은, 계산 성능과 메모리 용량의 측면에서 매우 대가가 큰 세이프-에러 오류 주입 공격에 대해 회복력이 있는 다른 대책의 바람직한 대안예이다.
또한, 본 발명은 슬라이딩 윈도우 알고리즘과 같이, 계산을 빠르게 하기 위해 실행될 수 있는 추가적인 최적화와 호환될 수 있다.
본 발명의 제2 양태는, 프로세서에 액세스 가능하고, 프로세서에 의해 실행될 때, 본 발명의 제1 양태의 방법의 단계를 수행하도록 하는, 하나 이상의 저장된 시퀀스의 명령어를 포함하는 컴퓨터 프로그램 제품에 관한 것이다.
마지막으로, 본 발명의 제3 양태는,
제1 메세지(a)를 수신하기 위한 인터페이스와,
모듈러 거듭제곱 b = a d mod n을 계산하는 것에 의해 제2 메세지(b)를 생성하도록 구성된 컴퓨터 유닛 - d는, d = (dk-1 dk-2 ... d1d0)와 같이 이진 표현으로 표현된 정수이고, 변수
Figure pct00012
를 가진
Figure pct00013
이며, n은 양의 정수 모듈러스이고, R은 n보다 큰 g의 가장 작은 멱(power)으로 정의된 몽고메리 상수이고, g는 기계-단어 기반(machine-word base)임 - 를 포함하되,
상기 컴퓨터 유닛은 모듈러 거듭제곱 b = a d mod n을 계산하기 위해,
제1 변수를 R 모듈러스 n으로 개시하고,
di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산 - 상기 반복 프로세스의 각각의 반복은, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입함 - 하도록 구성된, 암호적 시스템에 관한 것이다.
일 실시예에서, 상기 컴퓨터 유닛은, 상기 모듈러 거듭제곱 b = a d mod n을 계산하기 위한 몽고메리 변환을 사용하도록 구성되고,
제1 변수와 제2 변수를 각각 R 모듈러스 n과 a×R 모듈러스 n으로 개시하고,
di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산 - 제1 변수를 상기 제1 변수와 자체 모듈러스 n의 몽고메리 곱셈으로 대체하되, di가 1과 동일하면, 제1 변수를, 상기 제1 변수와 제2 변수 모듈러스 n의 몽고메리 곱셈으로 대체하고, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입함 - 하고,
상기 제1 변수를, 상기 제1 변수와 1 모듈러스 n의 몽고메리 곱셈으로 대체하도록 한다.
이러한 암호적 시스템은 가령, RSA 또는 DSA 암호법일 수 있다.
일부 실시예에서, 기계-단어 기반(g)은 232와 동일할 수 있다.
본 발명의 실시예는 제한이 아닌 예시로 나타나며, 첨부 도면에서, 유사한 참조 번호는 유사한 요소를 말한다.
도 1은 제안된 "몽고메리 곱셈(Montgomery multiplication)" 대책 없이, 이진 거듭제곱을 계산하기 위한 "제곱-및-곱셈 항상" 타입의 알고리즘의 단계를 나타내는 순서도이다.
도 2는 몽고메리 곱셈 대책으로 이진 거듭제곱 계산을 계산하기 위한 알고리즘의 단계를 나타내는 순서도이다.
도 3은, 제2 양태에 따른 컴퓨터 프로그램 제품을 실행하는데 적용되는 본 발명의 제3 양태에 따른 암호법의 실시예의 블록도이다.
도 1의 순서도를 참조하면, 제안되는 "몽고메리 곱셈(Montgomery multiplication)" 대책 없이, 거듭제곱 b = a d mod n을 계산하기 위한 이진 알고리즘의 실시예가 우선 기술될 것이다. 다시 말하면, 도 1은 가령, "제곱-및-곱셈 항상(Square-And-Multiply Always)"와 같은 대책이 이진 거듭제곱 프로세스에 도입되는 방법의 순서도를 나타낸다.
RSA 암호 연산 또는 해독 연산의 경우, 메세지(a)는 암호화된 메세지(C)이고, b는 깨끗한 텍스트 메세지(m)이다.
DSA 암호적 시스템의 경우, 제1 메세지(a)는 정수(h)이고, 제2 메세지(b)는 공캐 키(y)이며, 지수(d)는 비밀 키(x)이다.
도시된 실시예에 따른 알고리즘은 다음 단계 11 내지 16을 포함한다.
11에서, 해독 연산에서 사용된 다양한 입력이 정의되는데, 이들 변수는 공유 모듈러스(n), 개인 키(d) 및 제1 메세지(a)를 포함한다.
일 실시예에서, 공유 모듈러스(n)는 큰 숫자이다. 하나의 예시에서, n은 소수(prime number)일 수 있다. 그러나, 본 발명의 실시예가 이러한 예시에만 제한되도록 의도되지 않는 다는 것은 기술 분야의 당업자에 의해 이해될 것이다.
개인 키(d)는 d = (dk-1 dk-2 ...d1d0)2, k는 1보다 큰 정수와 같이 이진 표현으로 표현될 수 있다.
12에서, 변수 resultdummy는 모두 1로 개시되는데, 즉, result = 1 및 dummy = 1이다.
13에서, 반복적인 루프-에 대한(for-loop) 프로세스가 시작되고, 이는 k-1에서 아래로 0까지 각각 이르는 인덱스(i)에 대해, 즉, 가령, MSB(최상위 비트)에서 시작하여, LSB(최하위 비트)로 종료되는, 연속적으로 지수(d)의 k 이진 요소(비트) dk-1, dk-2, ... d1 및 d0의 각각에 대해, 숫자 k번 실행된다.
14에서, 변수 result의 제곱이 실현된다. 좀 더 구체적으로, 변수 resultresult × result mod n으로 대체된다.
지수의 현재 비트(di)가 '1'과 동일하다면, 15에서, 변수 resultresult × a mod n으로 대체된다.
아니라면, 즉, 지수의 현재 비트(di)가 '0'과 동일하다면, 대책 dummy × a mod n이 16에서 삽입된다. 이는 변수 result를 dummy × a mod n으로 대체함에 획득된다.
본 발명의 뒤에 있는 개념은, 더미 연산을 항상 최종 결과 a d mod n에 가시적 영향을 주는 다른 연산에 의해 대체하는 것이다.
간단한 방법은 더미 연산을 1을 곱함에 의해 대체되는 것이다. 최종 결과는 교란없는 중에 영향을 받지 않을 것이고, 이러한 컴퓨테이션 동안에 교란은 최종 결과의 수정에서 높은 확률을 가진 결과일 것이다. 그러므로, 어떤 경우에 오류 주입 공격에 대응할 수 있다. 그러나, '1'의 해밍 가중화(Hamming weight)가 1이기 때문에, 이러한 고유한 비트의 수정은 널(null) 출력을 야기할 것이다. 그러므로, 이는 수행되는 연산에 대한 정보를 부여하고, 해커가 개인 키의 값을 추론하는데 도움을 줄 수 있다.
동일한 결과를 달성하기 위한 좀 더 안전한 방법은, 실시예에 따르면, 몽고메리 곱셈을 사용하는 것이다.
모듈러 거듭제곱이 내제적인 곱셈 및 나눗셈 연산 때문에, 복잡한 산술 연산으로 고려되지만, 수학자 Peter L. Montgomery는 (1995년에) n에 의해 나누는 것을 피하면서, 두 개의 정수(n-나머지) modulo n을 곱하기 위한 모듈러 감소 알고리즘을 도입하였다. 기술 문헌에서(가령, "HandBook of Applied Cryptography", Menezes, van Oorschot, Vanstone, Chapter 14 참조), 몽고메리 계산의 특성은 모듈러 곱셈과 거듭제곱에 요구되는 제곱 연산을 빠르게 하는데 사용되었다. 간단하고 긴-정수 곱셈으로 실행된 이후에 몽고메리 감소가 실행되고, 상기 몽고메리 감소는 소위 몽고메리 변환의 "역" 연산이다.
다시 말해,
n 은 큰 정수 모듈러스이고,
p는 2n 미만의 정수이며(즉, p < 2n),
R은 소위 몽고메리 상수라고 가정하면,
a의 몽고메리 형태는 p×R mod n으로 정의되고,
몽고메리 감소는 p×R-1 mod n으로 정의되는데, R-1은 R의 역수이고,
몽고메리 곱셈 MontMul은 입력(p,q,n)에 대해 값 p×q×R-1 mod n을 계산한다.
도 2의 순서도를 참조하면, 본 발명의 제1 양태의 예시적인 실시예가 이제 기술될 것이다. 이러한 양태는 본 발명의 실시예에 따라 제안된 몽고메리 곱셈 대책으로 거듭제곱 ad modulus n의 계산을 하는 알고리즘에 기초한 암호적 방법에 관한 것이다. 소위 몽고메리 상수(R)은 n보다 큰 g의 가장 작은 멱으로 정의되는데, 여기서, g는 기계-단어 기반(32-비트 시스템 상에서, 가령, g = 232)이다. 하나의 예시에서, g는 232와 동일하다. 그러나, g가 가령 216 또는 264와 동일할 수 있으므로, 이는 순전히 설명적이다.
21에서, 본 방법을 수행하기 위해 컴퓨터 수단에 의해 사용되는 다양한 입력이 정의되거나 수신되는데, 모듈러스(n), d = (dk-1 dk-2 ...d1d0)2와 같은 이진 표현으로 표현된 개인 키(d) 및 제1 메세지(a)이다.
22에서, 변수 result 및 a는 R mod n 및 a×R mod n으로 각각 개시되고, R은 n보다 큰 f의 가장 작은 멱이다.
23에서, 지수(d)의 k 이진 요소, 즉 비트의 k-1에서 0까지 루프-에 대한(for-loop) 실현을 시작한다. 좀 더 구체적으로, 이러한 예시에서, 지수(d)의 k 비트는 MSB에서 LSB까지 프로세스된다. LSB로부터 LSB를 향한 계산을 실행하는 것도 유효한 옵션이라는 것이 기술 분야의 당업자에 의해 인식될 것이다.
24에서, 제곱된 변수 result(즉, result×result)의 몽고메리 곱셈이 수행되는데, result×result×R -1 mod n이다.
25에서, 지수(d)의 비트(di)가 '1'과 동일하면, result와 a의 몽고메리 곱셈, 즉, result×a×R -1 modulus n이 계산되고, 변수 result가 업데이트, 즉, 동일한 것으로 대체된다.
resultR의 몽고메리 곱셈을 실현하는 대책은 지수의 현재 비트가 '0'과 동일할 때, 26에서 삽입된다. 좀 더 구체적으로, 변수 resultresult×R×R -1 modulus n에 의해 대체된다.
27에서, 프로세스는 몽고메리 형태에서 정상 형태로 다시 되돌아와서 종료된다. 이는, result와 1의 몽고메리 곱셈을 계산함에 의해 달성될 수 있다. 즉, result result×1×R -1 modulus n에 의해 대체된다.
기술 분야에서 잘 알려진 대책들 중 하나는 이진 거듭제곱 알고리즘에서 더미 곱셈을 추가하는 것으로 구성된다. 본 발명의 실시예에 따르면, 몽고메리 곱셈, MontMul(result,R,n)을 수행함에 의해 이러한 더미 곱셈을 변경하는 것이 제안된다.
이러한 방법을 사용하여, 이러한 계산 동엔의 임의의 연산자의 교란 및/또는 단계에 의해, 해커는 개인 키(d)의 현재 비트(di)를 식별할 수 없도록 하는데, 왜냐하면, 최종 결과의 수정을 야기할 것이기 때문이다. 따라서, 제안된 대책은 세이프-에러 오류 주입 공격에 대해 효과적이다.
몽고메리 곱셈에 의한 더미 곱셈의 수정은 정상적인 경우에, 즉, 임의의 주입 공격이 없으면, 최종 결과를 수정하지 않을 것이다, 이는, 다음 식별 특성을 제공하는 몽고메리 곱셈의 정의 때문이다.
MontMul(result,R,n) = result × R × R -1 mod n = result mod n
본 발명의 특히 바람직한 효과는, 모듈러 거듭제곱이 몽고메리 변환을 사용하여 계산되는 동안 본 방법이 사용될 때, 달성된다. 실제로, 몽고메리 곱셈의 소비 시그니쳐는 모듈러 곱셈들의 것과 상이할 수 있어서, 모듈러 거듭제곱이 몽고메리 변환을 사용하여 계산될 때, 제안된 <<몽고메리 곱셈>>을 사용하는 이점은, di가 '0'과 동일할 때 및 di가 '1'과 동일할 때, 수행되는 계산을 위한 전력 소비의 임의의 차이를 전체적으로 제거한다는 것이다.
그러나, 기술 분야의 당업자는, 몽고메리 변환을 사용하여 모듈러 거듭제곱을 계산하는 것이 필수적이지 않다는 것을 인식할 것이다. 실제로, 본 발명의 실시예에 따른 <<몽고메리 곱셈>> 대책은, di가 '0'과 동일한 경우에서 반복 프로세스를 변경함에 의해서만 실행될 수 있다. 이러한 실행에서, 다른 모든 단계는 표준 <<더미 계산>>이 사용되는 도 1의 단계와 동일하다. 특히, di가 '1'과 동일한 경우의 반복 프로세싱은 표준, 모듈러 곱셈일 수 있다.
실시예에서, 제안된 <<몽고메리 곱셈>> 대책을 포함한 거듭제곱 알고리즘은, 가령, 다음 의사코드에 의해 실행될 수 있다.
Figure pct00014
도 3의 블록도를 참조하여, 본 발명의 제3 양태에 따른 암호법의 실시예가 이제 기술될 것이다. 이러한 암호법은, 프로세서에 액세스가능한 하나 이상의 저장된 시퀀스의 명령어를 포함하는 컴퓨터 프로그램 제품을 실행하고, 프로세서에 의해 실행될 때, 프로세서로 하여금 암호적 방법을 수행하도록 하도록 구성되는 컴퓨터 유닛을 포함할 수 있다.
도시된 실시예에서, 컴퓨터 유닛(30)은 적어도 하나의 프로세서(31), 프로세서(31)에 의해 계산이 실행되는 동안 사용되는 데이터를 저장하기 위한 적어도 하나의 메모리(32), 및 가령, 본 방법을 적절하게 수행하기 위한 특정 파라미터나 실행 커맨드를 저장하는데 사용되는 적어도 하나의 재기입가능한 비-휘발성 메모리(33)를 포함한다.
메모리(32)는 가령, SRAM, DRAM 또는 SDRAM과 같은 임의의 적절한 타입의 램덤 액세스 메모리(RAM)일 수 있다. 메모리(33)는 EPROM 또는 플래시 메모리와 같은 임의의 적절한 타입의 리드 온리 메모리(ROM)일 수 있다.
암호법은, 가령, RSA의 맥락에서 해독될 메세지(c)와 같은 메세지(a)를 수신하기 위한, 그리고, 상기 맥락에서 해독되면, 깨끗한 텍스트(m)과 같은 메세지(b)를 송출하기 위한 인터페이스(34, I/F)를 더 포함한다.
본 발명은, 세이프-에러 오류가 계산 동안에 도입되지 않았다는 보장을 위해, 추가적인 확인을 사용할 필요가 없다. 그것이 알고리즘의 더 빠른 계산을 가능하게 한다. 또한, 이러한 알고리즘은, 추가적인 데이터를 저장하기 위해 추가적인 레지스터를 필요로하지 않기 때문에, 메모리-최적화된다.
간단한 멱 분석(Simple Power Analysis, SPA)에도 영향받지 않는다. SPA는, 곱셈 및 제곱이 동일한 전력 소비를 야기하지 않을 수 있다는 기본적인 생각에 기반을 둔다. 그러므로, 해커가 모듈러 거듭제곱을 실행하는 암호적 디바이스의 전력 추적을 모니터링하는 수동적인 공격이다. 전력 추적으로부터, 암호법에서 사용되는 중요한 정보를 추론하기 위해, 실제로 실행되었던 제곱 및 곱셈의 시퀀스를 복구하는 것도 기대한다.
본 발명의 실시예는 RSA 알고리즘 내의 해독 연산의 맥락에서 상기에 기술되었다. 그러나, 본 발명은 이러한 예시에 제한되지 않고, 다른 많은 공개 키 암호적 시스템(암호법) 등, 가령, DSA에서 구현될 수 있다는 것을 주목해야 한다.
또한, 본 발명은 컴퓨팅 디바이스가 임의의 변수 e, f, R, n에 대해 e×f×R -1 mod n의 계산을 컴퓨트하는 연산을 실행하는 임의의 응용예에서 사용될 수 있다. 그 경우에, 디바이스는 변수 e 및 f를 몽고메리 형태로 변환하기 위해, e' = e×R mod nf' = f×R mod n을 우선 계산하고, 그리고 나서, e 및 f 대신에 e' 및 f'를 사용하여 상기 기술된 연산을 실행한다.
마지막으로, 제안된 방법은 가령, 슬라이딩 윈도우 알고리즘과 같이, 계산을 빠르게 하기 위한 다양하고 알려진 추가적인 최적화 프로세스의 실행예와 호환가능하다는 것은, 기술 분야의 당업자에 의해 더욱 인식될 것이다.

Claims (12)

  1. 제1 메세지(a)를 수신하는 단계와,
    모듈러 거듭제곱 b = a d mod n을 계산하는 것에 의해 제2 메세지(b)를 생성하는 단계 - d는, d = (dk-1 dk-2 ... d1d0)와 같이 이진 표현으로 표현된 정수이고, 변수
    Figure pct00015
    를 가진
    Figure pct00016
    이며, n은 양의 정수 모듈러스이고, R은 n보다 큰 g의 가장 작은 멱(power)으로 정의된 몽고메리 상수이고, g는 기계-단어 기반(machine-word base)임 - 를 포함하되,
    상기 모듈러 거듭제곱 b = a d mod n을 계산하는 것은,
    제1 변수를 R 모듈러스 n으로 개시하는 단계와,
    di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산하는 단계 - 상기 반복 프로세스의 각각의 반복은, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입하는, 암호적 방법.
  2. 제 1 항에 있어서, 상기 모듈러 거듭제곱 b = a d mod n을 계산하는 것은 몽고메리 변환을 사용하고,
    제1 변수와 제2 변수를 각각 R 모듈러스 n과 c×R 모듈러스 n으로 개시하는 단계와,
    di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산하는 단계 - 제1 변수를 상기 제1 변수와 자체 모듈러스 n의 몽고메리 곱셈으로 대체하는 단계를 포함하되, di가 1과 동일하면, 제1 변수를, 상기 제1 변수와 제2 변수 모듈러스 n의 몽고메리 곱셈으로 대체하고, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입함 - 와,
    상기 제1 변수를, 상기 제1 변수와 1 모듈러스 n의 몽고메리 곱셈으로 대체하는 단계를 포함하는, 암호적 방법.
  3. 제 1 항에 있어서, RSA 암호 연산이나 해독 연산의 경우에, a는 암호화된 메세지(c)이고, b는 깨끗한 텍스트 메세지(m)인, 암호적 방법.
  4. 제 1 항에 있어서, DSA 암호적 시스템의 경우에, a는 정수(g)이고, b는 공개 키(y)이며, 지수(d)는 비밀 키(x)인, 암호적 방법.
  5. 제 1 항 또는 제 2 항에 있어서, 모듈러스 n은 공개 키 암호적 시스템의 공유 모듈러스인, 암호적 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서, 정수 d는 공개 키 암호적 시스템의 개인 키인, 암호적 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서, 정수 d는 16-비트 길이 또는 32-비트 길이의 임의의 정수인, 암호적 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서, 계산을 빠르게 하기 위한 슬라이딩 윈도우 최적화 알고리즘의 실행을 더 포함하는, 암호적 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서, 프로세서에 액세스 가능하고, 프로세서에 의해 실행될 때, 상기 제 1 항 내지 제 6 항 중 어느 한 항의 방법의 단계를 수행하도록 하는, 하나 이상의 저장된 시퀀스의 명령어를 포함하는 컴퓨터 프로그램 제품.
  10. 제1 메세지(a)를 수신하기 위한 인터페이스(34)와,
    모듈러 거듭제곱 b = a d mod n을 계산하는 것에 의해 제2 메세지(b)를 생성하도록 구성된 컴퓨터 유닛(30) - d는, d = (dk-1 dk-2 ... d1d0)와 같이 이진 표현으로 표현된 정수이고, 변수
    Figure pct00017
    를 가진
    Figure pct00018
    이며, n은 양의 정수 모듈러스이고, R은 n보다 큰 g의 가장 작은 멱(power)으로 정의된 몽고메리 상수이고, g는 기계-단어 기반(machine-word base)임 - 를 포함하되,
    상기 컴퓨터 유닛은 모듈러 거듭제곱 b = a d mod n을 계산하기 위해,
    제1 변수를 R 모듈러스 n으로 개시하고,
    di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산 - 상기 반복 프로세스의 각각의 반복은, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입함 - 하도록 구성된, 암호적 시스템.
  11. 제 8 항에 있어서, 상기 컴퓨터 유닛은, 상기 모듈러 거듭제곱 b = a d mod n을 계산하기 위한 몽고메리 변환을 사용하도록 구성되고,
    제1 변수와 제2 변수를 각각 R 모듈러스 n과 a×R 모듈러스 n으로 개시하고,
    di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산 - 제1 변수를 상기 제1 변수와 자체 모듈러스 n의 몽고메리 곱셈으로 대체하되, di가 1과 동일하면, 제1 변수를, 상기 제1 변수와 제2 변수 모듈러스 n의 몽고메리 곱셈으로 대체하고, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입함 - 하고,
    상기 제1 변수를, 상기 제1 변수와 1 모듈러스 n의 몽고메리 곱셈으로 대체하도록 하는, 암호적 시스템.
  12. 제 8 항 내지 제 9 항 중 어느 한 항에 있어서, 기계-단어 기반(g)는 232인, 암호적 시스템.
KR1020187033686A 2016-05-04 2017-05-04 암호적 거듭제곱 알고리즘에 대한 세이프-에러 오류 주입 공격에 대한 대책 KR20180137534A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP16305520.5A EP3242202A1 (en) 2016-05-04 2016-05-04 Countermeasure to safe-error fault injection attacks on cryptographic exponentiation algorithms
EP16305520.5 2016-05-04
PCT/EP2017/060717 WO2017191288A1 (en) 2016-05-04 2017-05-04 Countermeasure to safe-error fault injection attacks on cryptographic exponentiation algorithms

Publications (1)

Publication Number Publication Date
KR20180137534A true KR20180137534A (ko) 2018-12-27

Family

ID=56119433

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187033686A KR20180137534A (ko) 2016-05-04 2017-05-04 암호적 거듭제곱 알고리즘에 대한 세이프-에러 오류 주입 공격에 대한 대책

Country Status (6)

Country Link
US (1) US20190089523A1 (ko)
EP (2) EP3242202A1 (ko)
JP (1) JP2019515353A (ko)
KR (1) KR20180137534A (ko)
CN (1) CN109416626A (ko)
WO (1) WO2017191288A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111712816B (zh) * 2018-03-28 2024-05-03 密码研究公司 使用密码蒙蔽以用于高效地使用蒙哥马利乘法
CN108599951B (zh) * 2018-08-10 2021-10-01 北京奇虎科技有限公司 加密方法、加密装置、计算设备及计算机存储介质
CN112491543B (zh) * 2020-11-24 2022-06-07 杭州电子科技大学 基于改进的蒙哥马利模幂电路的ic卡解密方法
CN113253975A (zh) * 2021-04-27 2021-08-13 西安电子科技大学 大数模幂运算的算法加速方法、系统、介质、设备及应用
WO2023141935A1 (en) 2022-01-28 2023-08-03 Nvidia Corporation Techniques, devices, and instruction set architecture for balanced and secure ladder computations
CN116830076A (zh) 2022-01-28 2023-09-29 辉达公司 用于高效模除法和模求逆的技术、设备和指令集架构
WO2023141934A1 (en) * 2022-01-28 2023-08-03 Nvidia Corporation Efficient masking of secure data in ladder-type cryptographic computations
CN116647318A (zh) * 2022-02-16 2023-08-25 瑞昱半导体股份有限公司 防御密码系统时间攻击的方法及密码系统处理电路

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991415A (en) 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
US6804782B1 (en) * 1999-06-11 2004-10-12 General Instrument Corporation Countermeasure to power attack and timing attack on cryptographic operations
JP3950638B2 (ja) * 2001-03-05 2007-08-01 株式会社日立製作所 耐タンパーモジュラ演算処理方法
US20050157872A1 (en) 2003-11-12 2005-07-21 Takatoshi Ono RSA public key generation apparatus, RSA decryption apparatus, and RSA signature apparatus
FR2884088B1 (fr) 2005-03-31 2007-06-22 Gemplus Sa Procede et dispositif cryptographique permettant de proteger les logiques de cles publiques contre les attaques par faute
JP4894913B2 (ja) * 2007-03-19 2012-03-14 富士通株式会社 Fault攻撃対策機能を搭載した組み込み装置
EP2015171A1 (fr) * 2007-06-29 2009-01-14 Gemplus Procédé cryptographique comprenant une exponentiation modulaire sécurisée contre les attaques à canaux cachés sans la connaissance de l'exposant public, cryptoprocesseur pour la mise en oeuvre du procédé et carte à puce associée
US8139763B2 (en) 2007-10-10 2012-03-20 Spansion Llc Randomized RSA-based cryptographic exponentiation resistant to side channel and fault attacks
EP2222013A1 (en) 2009-02-19 2010-08-25 Thomson Licensing Method and device for countering fault attacks
US8799343B2 (en) * 2011-09-22 2014-08-05 Intel Corporation Modular exponentiation with partitioned and scattered storage of Montgomery Multiplication results
CN103164187B (zh) * 2011-12-09 2017-03-01 深圳市证通电子股份有限公司 Rsa模幂电路及rsa安全加密芯片

Also Published As

Publication number Publication date
US20190089523A1 (en) 2019-03-21
EP3452897A1 (en) 2019-03-13
CN109416626A (zh) 2019-03-01
WO2017191288A1 (en) 2017-11-09
EP3242202A1 (en) 2017-11-08
JP2019515353A (ja) 2019-06-06
EP3452897B1 (en) 2020-02-19

Similar Documents

Publication Publication Date Title
KR20180137534A (ko) 암호적 거듭제곱 알고리즘에 대한 세이프-에러 오류 주입 공격에 대한 대책
Genkin et al. May the fourth be with you: A microarchitectural side channel attack on several real-world applications of curve25519
Strenzke et al. Side channels in the McEliece PKC
Fan et al. To infinity and beyond: Combined attack on ECC using points of low order
US8065531B2 (en) Decryption method
Strenzke A timing attack against the secret permutation in the McEliece PKC
CN101911009B (zh) 用于以签名方案进行非对称加密的对策方法和设备
JP2010217880A (ja) 故障耐性のある楕円曲線上の計算
EP3503459B1 (en) Device and method for protecting execution of a cryptographic operation
KR20100113130A (ko) 비대칭 암호화를 위한 대응조치 방법 및 디바이스
JP2011530093A (ja) 累乗法による暗号化を保護する解決策
US10461922B2 (en) Method and system for protecting a cryptographic operation
JP5573964B2 (ja) 暗号処理装置および方法
US20090238360A1 (en) Exponentiation ladder for cryptography
Boscher et al. Blinded fault resistant exponentiation revisited
Fouque et al. Defeating countermeasures based on randomized BSD representations
Kaminaga et al. Double Counting in $2^{t} $-ary RSA Precomputation Reveals the Secret Exponent
Schmidt et al. Fault attacks on the montgomery powering ladder
KR20080012634A (ko) 고속 몽고메리 전력 래더 알고리즘에서 사용되는 폴트 검출동작을 구현하기 위한 이진 유한 영역에서의 포인트 덧셈방법 및 덧셈 연산 장치
Guerrini et al. Randomized mixed-radix scalar multiplication
Muller et al. High-order attacks against the exponent splitting protection
KR100954844B1 (ko) 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체
Kim et al. Bit-flip faults on elliptic curve base fields, revisited
Hamoudi et al. Side-channel analysis of CRYSTALS-Kyber and a novel low-cost countermeasure
Barbu et al. Combined attack on CRT-RSA: why public verification must not be public?

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