KR101528836B1 - 암호화 알고리즘 오공격 보호 - Google Patents

암호화 알고리즘 오공격 보호 Download PDF

Info

Publication number
KR101528836B1
KR101528836B1 KR1020117009006A KR20117009006A KR101528836B1 KR 101528836 B1 KR101528836 B1 KR 101528836B1 KR 1020117009006 A KR1020117009006 A KR 1020117009006A KR 20117009006 A KR20117009006 A KR 20117009006A KR 101528836 B1 KR101528836 B1 KR 101528836B1
Authority
KR
South Korea
Prior art keywords
relationship
key
attack
message
encryption
Prior art date
Application number
KR1020117009006A
Other languages
English (en)
Other versions
KR20110088509A (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 제말토 에스에이
Publication of KR20110088509A publication Critical patent/KR20110088509A/ko
Application granted granted Critical
Publication of KR101528836B1 publication Critical patent/KR101528836B1/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/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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 오공격에 대항한 암호화 알고리즘 A의 실행을 안전화하기 위한 방법에 관련된다. 암호화 키 K0 및 메시지 M이 주어지면, 암호화 알고리즘 A는 값 A(K0,M)을 연산하도록 설정된다. f 및 g가 두 개의 전단사이며 f가 단위 함수와 상이할 때, A(K0,M) 및 A(F(K0),g(M)) 간의 관계 R이 주어질 경우 이 방법은: a. 암호화 알고리즘의 기대 결과 A(K0,M)를 연산하는 단계, b. 암호화 알고리즘 A를 수정 키 f(K0) 및 메시지 g(M)에 적용함으로써, 수정 결과 A(F(K0),g(M))를 연산하는 단계, c. 이전 두 단계에서 연산된 값들 A(K0,M) 및 A(F(K0),g(M)) 간의 관계 R이 검증되는지 여부를 검사하는 단계, 및 d. 관계 R이 검증되지 않으면 공격을 검출하는 단계를 포함한다. 본 발명은 또한 이러한 방법을 구현하는 암호화 장치에 관련된다.

Description

암호화 알고리즘 오공격 보호{Cryptographic algorithm fault protections}
본 발명은 오공격에 대항하여 암호화 알고리즘의 실행을 보호하기 위한 방법에 관련된다.
암호화 알고리즘은 전형적으로 모든 프로그램 가능한 컴퓨터에 의하여 실행될 수 있다. 그러나, 안전하게 설계된 암호화 알고리즘이라도 안전하지 않은 컴퓨터 상에서 실행되면 안전하지 않을 수 있다는 사실이 밝혀졌다. 예를 들어, 스파이웨어가 컴퓨터 내부에 설치될 수 있고 암호화 알고리즘에 의하여 이용되는 키 재료(key material)를 검색하려고 시도함으로써 암호화 동작을 완전히 무용하게 만들 수 있다(예를 들어 해커는 검색된 키 재료를 이용하여 깨끗한 텍스트 정보를 획득할 수 있을 수 있다).
그러므로, 민감한 어플리케이션들에 대해서는, 암호화 알고리즘을 암호화 동작의 목적에 대하여 가능한 한 안전하게 설계되는 특수한 암호화 장치(안전한 암호화 장치) 내에 설치하는 것이 제안되어 왔다.
이러한 암호화 장치들은, 설치된 소프트웨어를 제어하고 방화벽, 안티바이러스, 안티스파이웨어 등과 같은 특수한 보안 소프트웨어를 설치함으로써 안전화된 일반 컴퓨터의 형태를 가질 수 있다. 이러한 컴퓨터는 랩톱 컴퓨터, 데스크톱 컴퓨터, PDA(personal digital assistant), 이동 전화기, 또는 장치를 엄격하게 제어함으로써 더 안전하게 된 모든 종류의 컴퓨터일 수 있다. 보안 정도는 Common Criteria, FIPS 140-2 등과 같은 보안 인증서(security certification)를 전달함으로써 평가될 수 있다.
암호화에 특화되며 보안화하기 더 용이한 전용 장치에 의존하는 것이 흔히 선호된다. 이러한 전용 암호화 장치들의 전형적인 예에는 스마트 카드, USB 키, 동글, TPM(Trusted Platform Module), HSM(HSM은 Hardware Security module을 나타내며, 이것은 매우 고사양의 서버를 지원하기 위하여 방대한 암호화 동작을 수행하도록 허용하는 강력한 CPU가 전형적으로 탑재되는 공지된 보안 장치이다), SSL/TSL 가속기 등이 포함된다. 이러한 전용 암호화 장치들은 전형적으로 일반적인 컴퓨터(예를 들어 워크스테이션, 서버, PC, 이동 전화기, PDA 등)와 함께 이용되어 이러한 장치에 키 재료를 훔치는 것을 더 어렵게 만듦으로써 추가적인 보안 레벨을 추가한다.
그러나, 전용 장치도 공격에 노출될 수 있다. 예를 들어, 이러한 전용 암호화 장치에 대한 침투 공격(가끔은 물리적 공격(physical attack) 또는 오공격(fault attack)이라고 불린다)은 해당 장치의 기대 동작을 방해하고 민감한 데이터를 추론하기 위하여 이러한 장치가 비정상적으로 작동하도록 야기한다. 이러한 공격들은 1990년대 후반에 도입되었다. 이러한 공격은 중요한 문제인데, 그것은 이러한 공격이 공격자로 하여금 키 재료가 일반적으로는 안전하다고 여겨지는 스마트 카드와 같은 암호화 장치 내에 저장되어 있더라도 이러한 중요 장치를 복원할 수 있도록 할 수 있기 때문이다. 그 결과 공격자가 적법 사용자를 사칭할 수 있도록 할 수 있다(예를 들어 해당 사용자의 은행 계좌로부터 재정적 인출을 수행하고, 그의 전화선을 사용하거나, 그의 이름으로 불법 행위들을 하하는 등을 할 수 있다). 과거에는 이러한 공격이 개인용 컴퓨터에 대해서는 치명적인 것으로 인식되지는 않았는데, 그 이유는 침투 공격(invasive attack)의 부담없이 순전히 소프트웨어적 수단만을 이용하여 컴퓨터를 크랙하는 더 용이한 방법이 전형적으로 많이 존재하였기 때문이다. 하지만, 위조가 증가함에 기인하여, 그리고 TPM(보안 플랫폼 모듈로서 그 사양은 보안 연산 그룹(Trusted Computing Group)에 의하여 관리됨)과 같은 구성 요소들이 등장함에 따라 상황은 변화될 수 있다. TPM은 가능한 모든 종류의 생산물(PDA, 프린터, 휴대 전화기 등)에 보안 암호 특징을 도입하도록 의도되는데, 이들은 특히 회사의 PC에서는 더욱 더 보편화되지만 모든 종류의 전자 장치에도 역시 보편화되고 있다. TPM은 그들이 용접된 마더보드의 중요부분일 수 있다(비록 TPM이 정규적으로 착탈되어야 이유는 거의 없지만, TPM을 특정 슬롯에 삽입하도록 함으로써 TPM을 착탈식으로 구현하는 것도 가능하다). 전형적으로, TPM은 연산 시스템의 암호화 자료(cryptographic material)를, 연산 시스템 프로세서 및 메모리와 같은 연산 시스템의 종래의 수단만을 이용하여 수행된 것에 비하여 더 안전하게 관리하기 위한 수단을 포함한다. 또한, 일반적 프로세서(종래의 컴퓨터 시스템에 내장된 메인 프로세서와 같은)의 보안을 개선시키기 위한 시도들이 있어 왔다. 그러므로 침투 공격은 현재 과거에 비하여 더 많은 장치에 대해 위험이 되었으며, 단지 스탠드 얼론 방식의 암호화 장치 또는 고보안 컴퓨터(예를 들어 민감성 서버)에 대해서만 위협이 되는 것이 아니다. 하드웨어 제조자들의 기술적 응답이 발전함에 따라, 정규적으로 새로운 하드웨어적인 대응 장치들이 추가되어 왔다. 그러나, 이러한 대응 장치들이 효과적인 소프트웨어 대응 장치와 함께 결합될 때에만 효과적일 수 있다고 널리 여겨진다. 내장 장치들은 특히, 공격자들이 하드웨어를 완전히 자신이 관리할 수 있는 경우에는 이러한 종류의 공격에 노출된다. 침투 공격의 전형적 예는, 하나의 오서명(faulty signature)이 있으면 공격자로 하여금 RSA 개인 키를 검색하도록 하는 오리지널 벨코어 공격(Bellcore attack)이다.
특히 염려되는 것들 중에서 키 레지스터 내에 저장된 값을 변경시키는 특수한 침투 공격들이 있다. 키 레지스터는 예를 들어 DES 키, AES 키, 또는 RSA 키와 같은 암호화 키를 저장하는 레지스터이다. 이러한 공격들은 점점 효율적으로 되어 가며, 특정 조건에서 특정 키를 포함하도록 의도되는 레지스터의 특정 비트를 목표로 조준하고(레이저 또는 다른 수단과 같은), 이 비트의 해당 값을 변경하는 것이 현재 가능하다. 또한, 동일한 공격을 반복함으로써, 예를 들어 두 개의 연속 연산의 결과를 동일한 키와 비교하는 것이 비효율적이 되도록 하는 것이 가능한데, 그 이유는 동작의 리던던시(redundancy)에도 불구하고 키의 값이 동일한 방식으로 두 번 변경되도록 함으로써 동일한(잘못된) 결과를 얻도록 할 수 있기 때문이다.
그러나, 레지스터를 구성하는 메모리의 타입에 따라서, 현존하는 공격은 전형적으로 언제나 비트를 0으로 리셋하거나 비트를 1로 언제나 설정한다. "안전-오류 공격(safe-error attack)"은 공격자가 k의 특정 비트를 1 또는 0으로 (해당 칩에 따라서) 강제로 변경시킬 수 있는 전술된 능력을 가지고 있다는 가정에 전제한다. 그러므로, 공격자는 자신의 공격이 생성한 효과를 관찰함으로써 그 비트가 0 또는 1이었다는 것을 추론할 수 있다. 올바른 결과/일반적 반응은 해당 비트가 강제로 변경되기 이전에 강요된 값을 이미 가지고 있었던 경우이다. 잘못된 결과/비정상 동작은(예를 들어 공격이 검출된 경우) 해당 비트가 강요된 값의 반대값을 가지고 있었던 경우이다.
여전히, 임의로 선택된 비트를 모든 원하는 값으로 (0 또는 1) 용이하게 설정할 수 있는 공지된 기술은 존재하지 않는다. 다중-공간성 오류 인젝션(multi-spatial fault injection)이라고 불리는 이러한 기술은 구현하기 어려운 것으로 여겨진다.
그러므로, 본 발명의 목적은 암호화 알고리즘의 구현을(물론 최종 결과를 수정하지 않으면서), 암호화 알고리즘의 실행 도중에 암호화 키를 수정하려는 시도가 검출되도록 하거나, 또는 공격자로 하여금 해당 키를 구성하는 비트의 값에 대한 결과를 유추할 수 있는 능력을 감소시키는 방식으로 수정하는 것이다. 특히, 본 발명에 의한 방법은 비트들의 값을 양방향으로 변경시키지 못하고 비트들을 0의 값으로 리셋하거나 비트들을 1로 세팅할 수만 있는 최신 공격들에 대하여 방어하는 목적을 가지고 있다.
본 발명의 일면에 따르면 오공격(fault attack)에 대항한 암호화 알고리즘 A의 실행을 안전화(securing)하기 위한 방법이 제공된다. 암호화 키(cryptographic key) K0 및 메시지 M이 주어지면, 상기 암호화 알고리즘 A는 값 A(K0,M)를 연산하도록 설정되고, f 및 g가 두 개의 전단사(bijection)이며 f가 단위 함수(identity function)와 상이할 때, A(K0,M) 및 A(F(K0),g(M)) 간의 관계 R이 주어질 경우 상기 방법은:
a. 상기 암호화 알고리즘의 기대 결과 A(K0,M)를 연산하는 단계;
b. 상기 암호화 알고리즘 A를 수정 키 f(K0) 및 메시지 g(M)에 적용함으로써, 수정 결과 A(F(K0),g(M))를 연산하는 단계;
c. 이전 두 단계에서 연산된 값들 A(K0,M) 및 A(F(K0),g(M)) 간의 관계 R이 검증되는지 여부를 검사하는 단계; 및
d. 관계 R이 검증되지 않으면 공격을 검출하는 단계를 포함한다.
본 발명에 의하여 암호화 알고리즘의 구현을(물론 최종 결과를 수정하지 않으면서), 암호화 알고리즘의 실행 도중에 암호화 키를 수정하려는 시도가 검출되도록 하거나, 또는 공격자로 하여금 해당 키를 구성하는 비트의 값에 대한 결과를 유추할 수 있는 능력을 감소시키는 방식으로 수정할 수 있다. 특히, 본 발명에 의하여 비트들의 값을 양방향으로 변경시키지 못하고 비트들을 0의 값으로 리셋하거나 비트들을 1로 세팅할 수만 있는 최신 공격들에 대하여 방어할 수 있다.
도 1은 본 발명의 바람직한 일 실시예에 따르는 방법을 구현하는 의사 코드(pseudo code)를 나타낸다.
본 발명과 본 발명의 동작상의 이점은 첨부 도면을 참조하는 후술하는 상세한 설명에 상세히 설명될 것이며, 도 1은 본 발명의 바람직한 일 실시예에 따르는 방법을 구현하는 의사 코드(pseudo code)를 나타낸다.
본 발명의 바람직한 일 실시예에 따르면, 오공격에 대항하여 암호화 알고리즘 A의 실행을 안전하게 하기 위한 방법이 제안된다. 암호화 알고리즘 A는 예를 들어 DES(또는 DES-1, 즉 DES 역암호화), 3DES(또는 3DES-1), 또는 AES(또는 AES-1)이거나, 또는 RSA, 타원 커브(elliptic curves), 디피 헬만(Diffie Hellman) 등과 같은 비대칭 알고리즘일 수 있다(각 비대칭 알고리즘들은 RSA 암호화 또는 RSA 서명 검증과 같은 공용 키 동작을 위하여 이용되거나, 또는 RSA 서명 또는 RSA 역암호화와 같은 개인 키 동작을 위하여 이용된다). 암호화 알고리즘 A는 키 K0 및 메시지 M에 관련된다. 암호화 알고리즘 A는 값 A(K0,M)를 연산하도록 설정된다. 예를 들어, 바람직한 일 실시예에서, A는 DES 알고리즘이고, M은 해당 DES 알고리즘으로 암호화될 데이터의 일부이며, K0은 해당 암호화를 위해 이용될 DES 키이고, A(K0,M)는 암호화된 메시지이다. f 및 g가 두 개의 전단사(bijection)이며 f가 단위 함수(identity function)와 상이할 때, A(K0,M) 및 A(F(K0),g(M)) 간의 관계 R이 주어질 경우 본 발명에 의한 방법은:
a. 상기 암호화 알고리즘의 기대 결과 A(K0,M)를 연산하는 단계;
b. 상기 암호화 알고리즘 A를 수정 키 f(K0) 및 메시지 g(M)에 적용함으로써, 수정 결과 A(F(K0),g(M))를 연산하는 단계;
c. 이전 두 단계에서 연산된 값들 A(K0,M) 및 A(F(K0),g(M)) 간의 관계 R이 검증되는지 여부를 검사하는 단계; 및
d. 관계 R이 검증되지 않으면 공격을 검출하는 단계를 포함한다.
단계 a 및 b가 수행되는 순서는 중요하지 않으며, 바람직하게는 무작위이다. 물론, 전단사 f 및 g 및 관계 R은 모두 상호 링크되며 암호화 알고리즘 A와 링크되고, 임의로 선택될 수 없고, 그들은 당업자에 의하여 정의되어야 한다(특정 알고리즘 A에 대해서는 편리한 관계 R이 존재하지 않으며, 이 경우에는 제안된 방법이 적용될 수 없다).
RSA 개인 키 동작을 위하여, K0은 d(RSA 개인 키 지수(exponent))로 표시되고, A(K0,M)=A(d,M)=Md mod N이다(공지된 표준 RSA). e가 공용 지수(public exponent)라고 하고, N이 RSA 키 쌍의 모듈러스라고 한다(RSA의 표준 표기법). 예를 들어, f(d)를 f(d)=d + b*(e*d - 1 )로 정의하고, g(M)을 g(M) = M*(ae) mod N으로 정의하는 것이 가능한데, 여기서 a 및 b는 1 및 N-1 사이의 두 개의 임의의 값들이다(0<a, b<N). 바람직하게는 숫자 a는 p 또는 q의 배수이면 안되며, 여기서 p 및 q는 모듈러스 N을 구성하는 소수(prime)들이다(그렇지 않으면, g가 전단사가 아니며, 관계 R을 검증하는 것이 덜 용이하게 되는데, 그 이유는 A(f(d),g(M))를 A(d,M)로부터 연산하는 것이 가능하지만 다른 방식으로는 반드시 가능하지 않기 때문이다).
f 및 g에 대한 이러한 정의를 이용하면, 우리는 A(f(d),g(M))=a*A(d,M) mod N을 얻는데, 이것은 검증할 관계 R이다.
다음 수학식 1을 참조한다.
Figure 112011029386486-pct00001
함수 f가 키 K0 내의 가능한 많은 비트를 수정하는 것이 바람직한데, 그 이유는 K0 및 f(K0)에 감행된 동일한 공격이 전형적으로는 K0 및 f(K0) 내에 상이한 비트들 중 하나를 조준한다면 K0 및 f(K0) 모두를 수정할 수 없을 것이기 때문이다(즉, 이 공격은 K0 또는 f(K0) 중 하나의 목표 비트를 변경할 것이며, K0 및 f(K0)) 모두를 변경하지는 않을 것이다). 사실상 첨단 기술의 공격법은 비트들을 1로 세팅하거나 0으로 리셋할 수 있지만, 그들의 값을 임의로 0 또는 1로 정의할 수는 없다. 심지어 이 공격이 비트들을 임의로 변경할 수 있다고 해도, 공격자는 K0 및 f(K0)를 값들 A(K0,M) 및 A(f(K0),g(M)) 간의 관계 R이 여전히 만족되는 방식으로 변경해야 하는데, 이것은 어떻게 R이 정의되느냐에 따라 달라지는 난해한 문제일 수 있다.
전술된 방법의 바람직한 양태에서, 전단사 f는 키 K0의 모든 비트를 반전시키는 것이며, 즉, K0 내의 모든 0은 f(K0)에서 1로 대체되고 그 반대의 현상이 일어난다. 전술된 바와 같은 첨단 공격 기술에 기반하면, 공격자가 주어진 비트를 K0 및 f(K0)에서 모두 변경시킬 수 없기 때문에 이것은 유용하다.
전단사 g는 메시지 M의 모든 비트를 반전하는 것이다. 가끔 메시지를 변경할 필요가 없을 수 있지만, 가끔은 암호화 알고리즘 A의 속성상 관계 R을 단순화하기 위하여 메시지도 역시 수정하는 것이 바람직하다(g는 단위 함수가 아니다).
특히, 관계 R은 기대 결과 A(K0,M)의 각 비트가 수정 결과 A(f(K0),g(M))의 상응하는 비트의 반전이라는 것일 수 있다.
예를 들어, DES 알고리즘을 이용하면, 바람직한 방법은 다음 단계들을 포함할 수 있다:
a. 기대 결과 r = DES(K0,M)을 연산하는 단계
b. 수정 결과 mr = DES(K0,M)을 연산하되, K0은 K0의 논리적 비트 보수(logical bit complement)를 나타내고, M은 M의 논리적 비트 보수인 단계
c. 제1 결과 r이 제2 결과 mr의 논리적 비트 보수인지 여부를 검사하는 단계. 예를 들어, r XOR mr의 결과가 11111...11과 동일하다는 것을 검사하는 것이 가능하다.
d. 해당 관계가 검증되지 않으면, 즉, 두 개의 결과들이 논리적 비트 보수가 아니라면 공격을 검출하는 단계.
a 단계 및 b 단계의 순서는 중요하지 않으며, 바람직하게는 무작위적일 수 있다. DES를 DES-1로 대체하거나, 3DES로 대체하거나, 또는 3DES-1로 대체함으로써도 동일한 실시예는 동작한다.
전술된 방법의 개선된 양태에 따르면, n개의 랜덤 키들 K1...Kn을 생성하고, 0 및 n 사이의 모든 i에 대하여 A(Ki,M) 및 A(f(Ki),g(M))을 연산하는 것이 가능하다. 이 순서는 해당 방법이 수행될 때마다 상이한 것이 바람직하다. 예를 들어, n=3에 대하여 순서는 A(f(K2),g(M)), A(f(K0),g(M)), A(K1, M), A(f(K3),g(M)), A(K3,M), A(K0,M), A(K2,M), 및 A(f(K1),g(M))일 수 있으며, 해당 방법이 수행되는 다음에는 순서가 이와 상이할 수 있다.
그러면, 바람직한 방법은 A(Ki,M) 및 A(f(Ki),g(M)) 값의 각 커플에 대하여 관계 R을 검사하고, 관계 R이 0 및 n 사이의 임의의 i에 대하여 검증되지 않으면 공격을 검출한다. 이러한 기술은, 어느 시점에 이 방법이 어떤 암호화 동작을 수행할지를 해커가 아는 것이 매우 어렵기 때문에 유익한데, 예를 들어 해커는 언제 본 발명에 의한 방법이 정말 유용한 암호화 동작(기대 결과 A(K0,M))를 연산하는 것)을 연산하는지를 알지 못하고, 이에 따라서 공격을 할 때 해커는 어떤 키를 자신이 방해하고 있는지를 알지 못하기 때문이다. 이 방법은 해커가 결론을 내는 것을 더 어렵게 한다. 단순 연산 A(K0,M)을 이용하면, 해커는 K0의 1개 비트를 설정하려고 시도할 수 있고, 해당 비트가 이미 설정되었다면, 이 방법은 기대 결과를 출력할 것이며, 키의 해당 비트가 설정되지 않았다면, 이 방법은 오류 메시지(만일 공격이 검출되면) 또는 오류 결과를 출력함으로써, 해커에게 키의 해당 비트가 0 또는 1 중 어느 것이었는지를 통지한다. 그러나, 본 발명에 의한 방법을 이용하면, 해커가 어떤 것을 수정하려고 시도할 때마다, 그는 그가 가정할 수 있었던 비트가 반드시 키 K0의 해당 비트가 아니고, 임의의 키 Ki 또는 f(Ki)의 비트일 수 있기 때문에(정확한 키를 타게팅할 확률은 2*(n+1) 중 하나이다), 잘못된 결론에 도달할 가능성이 매우 높다.
심지어 n=0인 경우에도 임의의 순서로 A(K0,M)을 연산하고 그 후에 A(f(K0),g(M))을 연산하거나, 우선 A(f(K0),g(M))을 연산하고 그 뒤에 A(K0,M)을 연산하는 것이 가능하다.
바로 전에 전술된 본 발명에 의한 방법의 개선된 버전에서, 검증 동작은 예를 들어 f 및 g가 입력 파라미터의 논리적 비트 보수를 취하는 것이고, 관계는 두 결과들이 논리적 비트 보수들이라는 것을 검증하는 것인 것과 같이, 단순화될 수 있으며, 이러한 검증 동작은 모든 결과를 XOR하고 n이 기수라면 최종 결과는 0이라는 것을 검증하고, n이 우수라면 결과는 1111...111라는 것을 검증하는 것이다.
예를 들어, DES의 경우에, 도 1에 따르는 의사 코드가 이용될 수 있다.
주의 : 이러한 의사 코드에서, T[k] = DES(K s (k)-n-1 , M)에서 밑줄친 부분은 논리적 비트 보수 동작을 나타낸다. R이 11111...11임을 검사하는 동작은 R+1이 0과 동일함을 검증함으로써 검사될 수 있다.
물론, 동일한 의사 코드가 DES-1에 적용될 수 있고, 또는 3DES 또는 3DES-1에 적용될 수 있다.
본 발명은 또한 전술된 방법을 구현하는 암호화 장치에 관련된다. 암호화 장치는 소프트웨어 또는 하드웨어 형태로 암호화 알고리즘을 구현하는 모든 장치일 수 있다. 그러나, 바람직한 실시예에서, 암호화 장치는 스마트 카드, TPM, 또는 HSM과 같은 보안 암호화 장치이고, 이러한 세 장치들 모두는 전형적으로는 예를 들어 범용 컴퓨터보다 훨씬 더 안전하게 만드는 보안 특징(하드웨어 및/또는 소프트웨어 기반)을 포함한다.
본 발명은 오공격에 대항하여 암호화 알고리즘의 실행을 보호하기 위한 방법에 적용가능하다.

Claims (11)

  1. 오공격(fault attack)에 대항한 암호화 알고리즘 A의 실행을 안전화(securing)하기 위한 방법으로서, 암호화 키(cryptographic key) K0 및 메시지 M이 주어지면, 상기 암호화 알고리즘 A는 값 A(K0,M)을 연산하도록 설정되고, f 및 g가 두 개의 전단사(bijection)이며 f가 단위 함수(identity function)와 상이할 때, A(K0,M) 및 A(F(K0),g(M)) 간의 관계 R이 주어질 경우 상기 방법은:
    a. 상기 암호화 알고리즘의 기대 결과 A(K0,M)를 연산하는 단계;
    b. 상기 암호화 알고리즘 A를 수정 키 f(K0) 및 메시지 g(M)에 적용함으로써, 수정 결과 A(F(K0),g(M))를 연산하는 단계;
    c. 이전 두 단계에서 연산된 값들 A(K0,M) 및 A(F(K0),g(M)) 간의 관계 R이 검증되는지 여부를 검사하는 단계; 및
    d. 관계 R이 검증되지 않으면 공격을 검출하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 전단사 f는 상기 키 K0의 모든 비트들을 반전시키는 것임을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 전단사 g는 상기 메시지 M의 모든 비트들을 반전시키는 것임을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 관계 R은,
    기대 결과 A(K0,M)의 각 비트가 수정 결과 A(F(K0),g(M))의 상응하는 비트의 반전이라는 사실인 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    n개의 랜덤 키 K1...Kn를 생성하는 단계;
    0 내지 n 사이의 모든 i에 대하여 랜덤 순서로 A(Ki,M) 및 A(F(Ki),g(M))을 연산하는 단계;
    값들 A(Ki,M) 및 A(F(Ki),g(M))의 각 커플에 대하여 관계 R을 검사하는 단계; 및
    0 내지 n 사이의 어느 i에 대하여 상기 관계 R이 검증되지 않으면 공격을 검출하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 암호화 알고리즘 A를 구현하는 암호화 장치로서, 암호화 키 K0 및 메시지 M이 주어지면, 상기 암호화 알고리즘 A는 값 A(K0,M)을 연산하도록 설정되고, f 및 g가 두 개의 전단사(bijection)이며 f가 단위 함수와 상이할 때, A(K0,M) 및 A(F(K0),g(M)) 간의 관계 R이 주어질 경우 상기 암호화 장치는:
    a. 상기 암호화 알고리즘의 기대 결과 A(K0,M)를 연산하기 위한 수단;
    b. 상기 암호화 알고리즘 A를 수정 키 f(K0) 및 메시지 g(M)에 적용함으로써, 수정 결과 A(F(K0),g(M))를 연산하기 위한 수단;
    c. 상기 두 수단들에서 연산된 값들 A(K0,M) 및 A(F(K0),g(M)) 간의 관계 R이 검증되는지 여부를 검사하기 위한 수단: 및
    d. 관계 R이 검증되지 않으면 공격을 검출하기 위한 수단을 포함하는 것을 특징으로 하는 암호화 장치.
  7. 제6항에 있어서,
    상기 전단사 f는 상기 키 K0의 모든 비트들을 반전시키는 것임을 특징으로 하는 암호화 장치.
  8. 제6항에 있어서,
    상기 전단사 g는 상기 메시지 M의 모든 비트들을 반전시키는 것임을 특징으로 하는 암호화 장치.
  9. 제6항에 있어서, 상기 관계 R은,
    기대 결과 A(K0,M)의 각 비트가 수정 결과 A(F(K0),g(M))의 상응하는 비트의 반전이라는 사실인 것을 특징으로 하는 암호화 장치.
  10. 제6항에 있어서,
    a. n개의 랜덤 키 K1...Kn를 생성하기 위한 수단;
    b. 0 내지 n 사이의 모든 i에 대하여 랜덤 순서로 A(Ki,M) 및 A(F(Ki),g(M))을 연산하기 위한 수단;
    c. 값들 A(Ki,M) 및 A(F(Ki),g(M))의 각 커플에 대하여 관계 R을 검사하기 위한 수단; 및
    d. 0 내지 n 사이의 어느 i에 대하여 상기 관계 R이 검증되지 않으면 공격을 검출하기 위한 수단을 포함하는 것을 특징으로 하는 암호화 장치.
  11. 제6항에 있어서,
    상기 암호화 장치는 스마트 카드, TPM(Trusted Platform Module), 또는 HSM(Hardware Security module)인 것을 특징으로 하는 암호화 장치.
KR1020117009006A 2008-10-24 2009-10-09 암호화 알고리즘 오공격 보호 KR101528836B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP08305727A EP2180631A1 (en) 2008-10-24 2008-10-24 Cryptographic algorithm fault protections
EP08305727.3 2008-10-24
PCT/EP2009/063205 WO2010046251A1 (en) 2008-10-24 2009-10-09 Cryptographic algorithm fault protections

Publications (2)

Publication Number Publication Date
KR20110088509A KR20110088509A (ko) 2011-08-03
KR101528836B1 true KR101528836B1 (ko) 2015-06-15

Family

ID=40495723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117009006A KR101528836B1 (ko) 2008-10-24 2009-10-09 암호화 알고리즘 오공격 보호

Country Status (5)

Country Link
US (1) US8477933B2 (ko)
EP (2) EP2180631A1 (ko)
JP (3) JP2012506658A (ko)
KR (1) KR101528836B1 (ko)
WO (1) WO2010046251A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2367316B1 (en) * 2010-03-12 2017-07-05 STMicroelectronics (Rousset) SAS Method and circuitry for detecting a fault attack
DE102010055237A1 (de) * 2010-12-20 2012-06-21 Giesecke & Devrient Gmbh Verfahren zum geschützten Ausführen einer kryptographischen Berechnung
EP2602952A1 (en) 2011-12-07 2013-06-12 Gemalto SA Cryptographic method for protecting a key hardware register against fault attacks
EP2620890A1 (en) * 2012-01-25 2013-07-31 Gemalto SA Method for detecting a fault injected in hardware registers of an electronic device
DE102012011727A1 (de) * 2012-06-13 2013-12-19 Giesecke & Devrient Gmbh Gegen Safe Error Angriffe geschützte kryptografische Berechnung
CN103530474A (zh) * 2013-10-25 2014-01-22 东南大学 面向aes算法电路的差分功耗攻击测试方法
FR3045184B1 (fr) 2015-12-15 2018-07-20 Idemia France Procede d’ecriture dans une memoire non-volatile d’une entite electronique et entite electronique associee
JP6728799B2 (ja) * 2016-03-11 2020-07-22 日本電気株式会社 暗号通信システム、暗号通信方法、セキュリティチップ、通信装置およびその制御方法と制御プログラム
EP3267354A1 (en) * 2016-07-04 2018-01-10 Gemalto Sa Secure loading of secret data to non-protected hardware registers
FR3056789B1 (fr) * 2016-09-27 2018-09-21 Safran Identity & Security Procede de chiffrement ou de dechiffrement symetrique par bloc
CN109508157A (zh) * 2017-09-14 2019-03-22 北京立思辰计算机技术有限公司 一种打印机控制器及打印机控制方法
JP7272533B2 (ja) * 2018-11-05 2023-05-12 エッジ ケース リサーチ,インコーポレイテッド 知覚システムを評価するシステム及び方法
CN113434332B (zh) * 2021-05-27 2022-02-18 国家信息技术安全研究中心 基于故障蔓延的针对des/3des中间轮攻击的密钥恢复方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070189536A1 (en) * 2004-12-27 2007-08-16 Infineon Technologies Ag Cryptographic unit and method for operating a cryptographic unit

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10154976A (ja) * 1996-11-22 1998-06-09 Toshiba Corp タンパーフリー装置
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
JP4188571B2 (ja) * 2001-03-30 2008-11-26 株式会社日立製作所 情報処理装置の演算方法および耐タンパ演算攪乱実装方式
JP3844116B2 (ja) * 2001-04-16 2006-11-08 株式会社ルネサステクノロジ 暗号化・復号化装置とicカード
DE10136335B4 (de) 2001-07-26 2007-03-22 Infineon Technologies Ag Prozessor mit mehreren Rechenwerken
FR2829331B1 (fr) * 2001-09-04 2004-09-10 St Microelectronics Sa Procede de securisation d'une quantite secrete
JP4529719B2 (ja) * 2005-02-16 2010-08-25 ソニー株式会社 信号処理回路
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
JP4871194B2 (ja) * 2006-04-18 2012-02-08 株式会社半導体エネルギー研究所 パラメータ抽出方法及び当該パラメータ抽出方法を実行させるプログラムを具備するコンピュータ読み取り可能な記憶媒体
US7836309B2 (en) * 2007-07-20 2010-11-16 Microsoft Corporation Generic extensible pre-operating system cryptographic infrastructure

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070189536A1 (en) * 2004-12-27 2007-08-16 Infineon Technologies Ag Cryptographic unit and method for operating a cryptographic unit

Also Published As

Publication number Publication date
US20110274268A1 (en) 2011-11-10
JP6347819B2 (ja) 2018-06-27
JP2014197222A (ja) 2014-10-16
JP2012506658A (ja) 2012-03-15
EP2351286B1 (en) 2020-04-22
WO2010046251A1 (en) 2010-04-29
EP2180631A1 (en) 2010-04-28
KR20110088509A (ko) 2011-08-03
JP2017034713A (ja) 2017-02-09
EP2351286A1 (en) 2011-08-03
US8477933B2 (en) 2013-07-02

Similar Documents

Publication Publication Date Title
KR101528836B1 (ko) 암호화 알고리즘 오공격 보호
Aucsmith Tamper resistant software: An implementation
Schneier et al. Surreptitiously weakening cryptographic systems
JP4664398B2 (ja) インクリメンタルなコード署名の方法及び装置
CA2792787C (en) System and method for protecting cryptographic assets from a white-box attack
US9571289B2 (en) Methods and systems for glitch-resistant cryptographic signing
KR100702499B1 (ko) 메시지 무결성 보증 시스템, 방법 및 기록 매체
US11290272B2 (en) Elliptic curve point multiplication device and method in a white-box context
CA2830846A1 (en) System and method for securely binding and node-locking program execution to a trusted signature authority
Ronen et al. Pseudo constant time implementations of TLS are only pseudo secure
JP5401477B2 (ja) 誤りに基づく攻撃から電子回路を保護する方法
EP2979214A1 (en) Detecting exploits against software applications
US10461922B2 (en) Method and system for protecting a cryptographic operation
EP3891630B1 (en) Method for end entity attestation
Sarma Security of hard disk encryption
CN114124366A (zh) 一种可信芯片的密钥生成方法及相关设备
Weimer Factoring rsa keys with tls perfect forward secrecy
Broz et al. Practical cryptographic data integrity protection with full disk encryption extended version
EP3804213B1 (en) Shared secret establishment
EP3881214B1 (en) Change-tolerant method of generating an identifier for a collection of assets in a computing environment
Algawi et al. In kernel implementation of rsa routines
EP1944942A1 (en) Method for checking the running configuration of a network equipment and network equipment
CN116401091A (zh) 嵌入式代码写入、运行方法及嵌入式系统
CN116881939A (zh) 基于数字签名算法选择的加密校验方法、装置及设备
JP2011234050A (ja) 情報処理装置及びプログラム

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

Year of fee payment: 4