KR20180002072A - 부채널 분석에 대응한 보호 방법 및 장치 - Google Patents

부채널 분석에 대응한 보호 방법 및 장치 Download PDF

Info

Publication number
KR20180002072A
KR20180002072A KR1020170082037A KR20170082037A KR20180002072A KR 20180002072 A KR20180002072 A KR 20180002072A KR 1020170082037 A KR1020170082037 A KR 1020170082037A KR 20170082037 A KR20170082037 A KR 20170082037A KR 20180002072 A KR20180002072 A KR 20180002072A
Authority
KR
South Korea
Prior art keywords
circuit
signal
input data
moment
power consumption
Prior art date
Application number
KR1020170082037A
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 KR20180002072A publication Critical patent/KR20180002072A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • 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
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Power Sources (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

본 발명은 회로로 연산을 실행하는 방법에 관한 것으로, 이 방법은, 입력 데이터를 처리하기 위한 제1 연산을 실행하는 단계로서, 상기 제1 연산을 실행하는 동안 상기 회로가 제1 신호를 생성하는, 상기 실행 단계; 및 회로에서 제1 연산을 실행하는 동안 입력 데이터를 수신하고, 제1 순간과 제2 순간 사이의 제1 신호에 연속적인 제2 신호를 더하도록 구성된 제2 연산을 실행하는 단계;를 포함하고, 제1 및 제2 신호의 결합은 제2 신호가 회로 외부의 제1 신호와 분간할 수 없게 측정될 수 있는 합성 신호를 형성하고, 제2 신호 및 합성 신호는 입력 데이터의 함수에 따라 가변한다.

Description

부채널 분석에 대응한 보호 방법 및 장치{A PROTECTION METHOD AND DEVICE AGAINST A SIDE-CHANNEL ANALYSIS}
본 발명은 회로 또는 프로그램에 의해 프로세싱되는 비밀 데이터의 값, 특히 메시지를 변환하기 위해서 암호화 또는 복호화 알고리즘에 의해 사용되는 비밀 키를 발견하는 것을 목적으로 하는 사이드 채널 분석으로부터 상기 회로 또는 프로그램을 보호하는 방법 및 장치에 관한 것이다.
본 발명은 특히, AES(Advanced Encryption Standard)와 같은 암호화 알고리즘을 구현하는, 컴퓨터의 마더 보드 및 다른 전자장치 및 IT 장비(USB 드라이브, TV 디코더, 게임 콘솔, 등)에 통합된 스마트 카드 집적 회로 또는 하드웨어 암호화 구성 요소에 관한 것이다. 또한, 본 발명은 보안 또는 비보안 환경에서 실행되도록 구성된, 이러한 알고리즘을 구현하는 프로그램에 관한 것이다.
암호화 알고리즘을 구현하는 것과 같은 회로는 예를 들어, 암호화 코프로세서와 같은, 암호화 연산에 전용되는, 중앙 프로세싱 유닛(CPU), 및 가능하게는 회로를 포함할 수 있다. 이들 회로는 실행된 연산들에 따라 상이하게 스위칭하는 수천 개의 논리 게이트를 포함할 수 있다. 이러한 스위칭 연산은 예를 들어, 수 나노초의 짧은 소비 전류량 편차를 생성하며 이러한 편차는 측정될 수 있다. 특히, CMOS-타입 집적 회로들이 스위칭할 때에만, 즉 논리 노드가 자신의 상태를 1 또는 0으로 변경할 때에만, 전류를 소비하는 논리 게이트를 포함한다. 이로써, 전류 소비량은 중앙 프로세싱 유닛에 의해 프로세싱되는 데이터 및 그의 다양한 주변 장치: 메모리, 데이터 또는 어드레스 버스들, 암호화 코프로세서, 등에 의존한다.
또한, 화이트-박스 암호화 기법(White-box Cryptography technique)과 같은, 암호화 또는 난독화 기법을 사용하는 일부 소프트웨어 프로그램은, 리버스 엔지니어링을 사용하여 비밀 데이터를 결정하는 것이 매우 어렵게 되도록, 비밀 데이터를 포함시킬 수 있다. 특정 소프트웨어 프로그램은 또한 보안 통신 채널을 통해 외부로부터 비밀 데이터를 수신할 수 있다.
이러한 회로들은 이들의 전류 소비량, 또는 이들의 자기 또는 전자기 방사량을 관찰하는 것에 기초하는, 소위 사이드 채널 분석 공격을 받을 수 있다. 이러한 공격은 비밀 데이터, 특히 암호화 키를 발견하는 것을 목표로 한다. 현재의 사이드 채널 공격은 SPA(Single Power Analysis), DPA(Differential Power Analysis), CPA(Correlation Power Analysis) 또는 EMA(ElectroMagnetic Analysis)와 같은 통계적 분석 방법을 구현한다. SPA 분석(다음 문헌 참조: P. C. Kocher, "Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems" In Neal Koblitz, editor, Advances in Cryptology - CRYPTO '96, volume 1109 of Lecture Notes in Computer Science, pages 104-113. Springer, 1996)은 정상적으로 단일 전류 소비 트레이스(trace) 취득만을 요구한다. SPA 분석은 전류 트레이스가 실행된 연산들 및 프로세싱된 데이터에 이로써 변하기 때문에, 암호화 연산에 대응하는 전류 소비 트레이스의 부분을 관측함으로써 집적 회로의 활성도에 대한 정보를 획득하는 것을 목적으로 한다.
소프트웨어는 또한 회로에 의한 그들의 실행 동안에 이러한 사이드 채널 공격을 겪을 수 있다.
DPA 분석(다음 문헌 참조: P. C. Kocher, J. Jaffe, and B. Jun, "Differential Power Analysis" In M. J. Wiener, editor, Advances in Cryptology - CRYPTO '99, volume 1666 of Lecture Notes in Computer Science, pages 388-397. Springer, 1999) 및 CPA 분석은, 수많은 회로 전류소비 트레이스들을 획득하고 탐색할 정보를 찾기 위해서 이러한 트레이스들을 통계적으로 분석함으로써 암호화 알고리즘의 키가 구해질 수 있게 한다. 이러한 분석법들은 비트가 레지스터 내에서 또는 버스 상에서 0에서 1로 변할 때에는 CMOS-타입 집적 회로의 전류 소비량이 변하지만, 비트가 0과 동일하게 유지되거나, 1과 동일하게 유지되거나, 1에서 0으로 변할 때에는(MOS 트랜지스터의 부유 용량의 방전 시에는), CMOS-타입 집적 회로의 전류 소비량이 변하지 않는다는 전제에 기초한다. 이와 달리, 비트가 0에서 1로 변하거나 1에서 0으로 변하는 때에는 CMOS-타입 집적 회로의 전류 소비량이 변하지만, 비트가 0과 동일하게 유지되거나 1과 동일하게 유지되는 때에 CMOS-타입 집적 회로의 전류 소비량은 변하지 않는다는 것도 고려될 수 있다. 이러한 두 번째 가정은 통상적인 "Hamming 거리" 또는 "Hamming 가중치" 함수들이 사용되게 하여서, 적용 가능하게 되도록 집적 회로의 구조를 아는 것을 요구하지 않는 전류 소비 모델이 개발되게할 수 있다. DPA 분석은 수많은 전류소비 트레이스들에 대한 통계적 프로세싱으로 인한 이러한 전류 소비량 차를 증폭시키는 것을 수반하며, 이러한 증폭은 작성된 가설에 이로써 구별된, 전류소비 트레이스들의 2 개의 패밀리들 간의 측정치 차를 강조하는 것을 목적으로 한다.
CPA 분석(다음 문헌 참조: E. Brier, C. Clavier, and F. Olivier, "Correlation Power Analysis with a Leakage Model" In M. Joye and J-J. Quisquater, editors, Cryptographic Hardware and Embedded Systems - CHES 2004, volume 3156 of Lecture Notes in Computer Science, pages 16-29. Springer, 2004)은 선형 전류 소비 모델에 기초하며 먼저, 포획된 전류소비 트레이스들을 형성하는 측정된 전류소비 포인트들과, 다음으로, 선형 전류소비 모델 및 마이크로회로에 의해 프로세싱될 복구될 변수 및 암호화 키의 값에 대한 가설로부터 컴퓨팅된, 추정된 전류소비 값 간의 상관 계수를 컴퓨팅하는 것을 수반한다.
전자기 분석(EMA)은 집적 회로가 근거리 또는 원거리 전자기 방사의 형태로 정보를 전송할 수 있다는 원리에 기초한다. 트랜지스터와 이들을 연결하는 와이어가 그들의 상태가 변할 때에 전자기 신호를 방출한다고 가정하면, 이러한 신호는 SPA, DPA 및 CPA 분석 중 하나 또는 다른 것과 같은 분석에 의해, 저뉼 소비량 변화 신호처럼 간주될 수 있다. 이러한 분석의 적용 사례는 2001년에 Jean-Jacques Quisquater에 의해 이루어졌다(다음 문헌 참조: J.-J. Quisquater, "ElectroMagnetic Analysis(EMA): Measures and Counter-measures for Smart Cards", Smart Card Programming and Security, Springer Berlin/Heidelberg, vol. 2140, 2001, p. 200-210).
"템플릿 분석"(다음 문헌 참조: S. Chari, J. R. Rao, and P. Rohatgi, "Template Attacks", Kaliski Jr., B.S., Koc, C.K., Paar, C.(eds.) CHES 2002. LNCS, vol. 2523, p. 172-186. Springer, Heidelberg(2003)) 및 "상호 정보 분석"(MIA)(다음 문헌 참조: B. Gierlichs, L. Batina, P. Tuyls, and B. Preneel, "Mutual Information Analysis", CHES 2008, volume 5154 of LNCS, p. 426-442, Springer, 2008)과 같은 다른 사이드 채널 분석이 존재한다. 달리 말하면, 소정의 시간에, 예를 들어, 명령의 실행이 해당 회로에 의해 활성화되는 시간으로부터, 수행되는 모든 측정들은 이러한 알고리즘에 의해 프로세싱되는 동일한 데이터에 대응해야 한다.
본 출원인에 의해 2016년 2월 22일에 출원된 특허 출원 번호 FR16 51443은 회로가 상이한 입력 데이터에 대해 연속적으로 연산을 수행할 때 회로의 활동도를 나타내는 트레이스를 분석하는 방법을 개시한다. 이러한 방법은 각각의 트레이스의 일부를 추출하고, 트레이스의 추출된 부분 각각으로부터 히스토그램을 생성하고, 이러한 트레이스의 추출된 부분들 각각에서 나타나는 각 가능한 값의 발생 횟수를 카운팅하는 것을 포함한다. 이어서, 해당 연산의 부분적 결과들이, 각 입력 데이터 및 해당 연산에 수반된 비밀 키의 일부의 각 가능한 값에 해당 연산을 적용함으로써, 계산된다. 그런 다음, 이 방법은 비밀 키의 각 가능한 부분 값에 대해, 동일한 부분적 결과를 제공하는 모든 입력 데이터를 식별한다. 이어서, 이러한 비밀 키의 각 가능한 부분 값에 대해, 식별된 입력 데이터 및 이러한 비밀 키의 부분 값에 대응하는, 히스토그램들 내에서의 발생 횟수가 추가된다. 비밀 키의 일부는 상기 추가된 발생 횟수를 통계 분석에 적용함으로써 결정될 수 있다. 이러한 통계 분석에서는, 상기 비밀 키와 관련된 값이 상기 트레이스들의 추출된 부분들에 누출되었다면, 이러한 사실이 상기 추가된 발생 횟수에 의해서 강조될 수 있다는 것이 가정된다.
이들 사이드 채널 분석 중 하나 이상으로부터 집적 회로를 보호하는 것을 제안하는 것이 바람직할 수 있다. 특히, 전력 소비량 트레이스 또는 전자기 트레이스를 악용하는 분석으로부터 이러한 집적 회로를 보호하는 것을 제안하는 것이 바람직할 수 있다.
회로에 의해 연산을 실행하기 위한 방법이 개시된다. 이 방법은 입력 데이터를 프로세싱하는 제 1 연산을 실행하는 단계로서, 상기 회로는 상기 제 1 연산의 실행 중에 제 1 신호를 생성하는, 상기 제 1 연산을 실행하는 단계; 및 상기 입력 데이터를 수신하여, 상기 제 1 연산의 실행 동안의 제 1 순간과 제 2 순간 간에, 상기 제 1 신호에 연속형 제 2 신호를 부가하도록 구성된 제 2 연산을 실행하는 단계로서, 상기 제 1 신호 및 상기 제 2 신호가 결합되어 결과 신호가 형성되며, 상기 제 2 신호는 상기 회로의 외부로부터 상기 제 1 신호를 사용하여 정확하게 측정될 수 없으며(indistinctly measurable), 상기 제 2 신호 및 상기 결과 신호는 상기 입력 데이터의 함수로서 변화하는, 상기 제 2 연산을 실행하는 단계를 포함한다.
일 실시형태에 따라서, 상기 제 2 신호는 상기 제 1 순간과 상기 제 2 순간 간의 상기 입력 데이터의 값에 의존하는 상수 값을 갖는다.
일 실시형태에 따라서, 상기 제 2 신호는 상기 입력 데이터의 값에 의존하는 프로파일에 따라 상기 제 1 순간과 제 2 순간 간에서 변한다.
일 실시형태에 따라서, 상기 제 1 신호 및 제 2 신호는 상기 회로의 전력 소비량 신호 또는 상기 회로의 전자기 방사량 신호이다.
일 실시형태에 따라서, 상기 제 2 연산은 상기 회로의 추가 전력 소비량의 형태로 상기 제 2 신호를 생성하도록, 상기 제 1 순간과 상기 제 2 순간 간의 상기 입력 데이터를 사용하여, 가변 저항기를 제어하는 단계를 포함하며, 상기 제 1 신호는 상기 회로의 전력 소비량 신호이다.
일 실시형태에 따라서, 상기 제 2 연산은, 상기 입력 데이터를 시드(seed)로서 사용하여 난수들의 시퀀스를 생성하는 단계; 및 상기 제 1 순간과 제 2 순간 간에, 상기 난수들의 시퀀스 중의 난수들을 사용하여 상기 가변 저항을 클록 레이트로 해서 제어하는 단계를 포함한다.
일 실시형태에 따라서, 상기 제 2 연산은, 상기 입력 데이터를 워드들로 분할하는 단계; 및 상기 회로에서의 추가 전력 소비량의 형태로 상기 제 2 신호를 생성하도록 상기 제 1 순간과 제 2 순간 간에서, 복수의 가변 저항기를 제어하는 단계로서, 상기 워드들 각각은 상기 복수의 가변 저항기 각각을 제어하는데 사용되며, 상기 제 1 신호는 상기 회로의 전력 소비량 신호인, 상기 복수의 가변 저항기를 제어하는 단계를 포함한다.
일 실시형태에 따라서, 상기 제 2 연산은, 상기 입력 데이터의 각각의 워드에 대해, 해당 워드에만 의존하는 난수들의 일 시퀀스를 생성하는 단계; 및 상기 제 1 순간과 제 2 순간 간에서 클록 레이트로 해서 상기 난수들의 시퀀스들 각각 중의 난수들을 사용하여 상기 복수의 가변 저항들 각각을 제어하는 단계를 포함한다.
일 실시형태에 따라서, 상기 제 2 연산은, 상기 제 1 순간과 제 2 순간 간에 상기 입력 데이터를 프로세싱하는 프로세싱 루프를 포함하거나; 또는 상기 입력 데이터를 변환하는 제 3 연산, 및 상기 제 1 연산과 동일하거나 유사하고 상기 제 1 순간과 제 2 순간 간에 상기 제 3 연산으로부터 수신된 변환된 데이터를 프로세싱하는 제 4 연산을 포함한다,
일 실시형태에 따라서, 상기 제 2 연산은 상기 회로의 추가 전자기 방사량의 형태로 상기 제 2 신호를 생성하도록, 상기 제 1 순간과 상기 제 2 순간 간의 상기 입력 데이터를 사용하여, 가변 저항기를 제어하는 단계를 포함하며, 상기 제 1 신호는 상기 회로의 전자기 방사량 신호이다.
또한, 실시형태들은 제 1 연산을 구현하는 제 1 회로 부분 및 제 2 연산을 구현하는 제 2 회로 부분을 포함하는 회로로서, 위에서 규정된 방법을 구현하도록 구성된, 회로에 관한 것일 수 있다.
일 실시형태에 따라서, 상기 제 1 회로 부분 및 상기 제 2 회로 부분은 서로 인터리빙되거나(interleaved) 중첩된다(nested).
일 실시형태에 따라서, 상기 회로는 상기 제 1 회로 부분 및 제 2 회로 부분을 포함하는 상기 코프로세서; 또는 상기 제 1 회로 부분 및 제 2 회로 부분을 포함하는 프로세서를 포함한다.
또한, 실시형태들은 위에서 규정된 회로를 포함하고, 매체 상에 배치된, 장치에 관한 것일 수 있다.
또한, 실시형태들은 컴퓨터의 내부 메모리에 로딩 가능한 컴퓨터 프로그램 제품으로서, 상기 컴퓨터에 의해 실행될 때 위에서 규정된 방법의 단계들을 수행하도록 상기 컴퓨터를 구성시키는 코드 부분들을 포함하는, 컴퓨터 프로그램 제품에 관한 것일 수 있다.
방법 및/또는 장치는 다음의 도면 및 설명을 참조하면 보다 양호하게 이해될 수 있다. 비제한적 및 비한정적 설명은 다음 도면과 함께 설명된다. 도면들에서, 달리 언급되지 않는 한, 동일한 참조 부호는 상이한 도면 전체에서 동일한 부분을 나타낼 수 있다.
도 1은 보안 회로의 종래 아키텍처를 개략적으로 도시한다.
도 2는 일 실시예에 따라 보호되는 회로를 나타낸다.
도 3은 일 실시예에 따라 수정된 전력 소비 트레이스를 나타낸다.
도 4 내지 도 7은 다양한 실시예들에 따른 보호 회로를 나타낸다.
도 8은 다른 실시예에 따라 수정된 전력 소비 트레이스를 나타낸다.
도 9 및 도 10은 다른 실시예에 따라 보호된 회로를 나타낸다.
도 1은, 예를 들어, 플라스틱 카드 또는 임의의 다른 매체와 같은 휴대용 매체(HD) 상에 또는 이동 단말기와 같은 단말기 내에 배치된 보안 집적 회로(CT)의 예를 나타낸다. 이 보안 집적 회로는 마이크로프로세서(PRC), 입출력 회로(IOC), 데이터 및 어드레스 버스에 의해 마이크로프로세서에 연결된 메모리(M1, M2, M3), 및 선택적으로, 암호 연산 코프로세서(CP1) 또는 산술 가속기, 및 난수 생성기(RGN)를 포함한다. 메모리는 휘발성 메모리(M1), 예를 들어, 휘발성 데이터 및 애플리케이션 프로그램을 포함하는 RAM 타입("Random Access Memory"), 비휘발성 데이터 및 애플리케이션 프로그램을 포함하는, EEPROM 또는 플래시 메모리와 같은 비휘발성 메모리(M2), 및 가능하게는, 마이크로프로세서의 운영 체제 및 상수 데이터를 포함하는 판독 전용 메모리(M3)(또는 ROM 메모리)를 포함할 수 있다. 운영 체제는 또한 비휘발성 메모리에 저장될 수 있다.
통신 인터페이스 회로(IOC)는 예를 들어, ISO/IEC 7816 표준에 따른 접촉식, 예를 들어, ISO/IEC 14443A/B 또는 ISO/IEC 13693 표준에 따른, 유도 결합에 의한 비접촉식, 또는 전기적 결합(UHF 인터페이스 회로)에 의한 비접촉식 또는 접촉식 및 비접촉식의 조합일 수 있다. 인터페이스 회로(IOC)는 또한 특정 인터페이스를 통해 NFC 제어기와 같은 다른 회로 또는 이동 단말기와 같은 단말기 또는 접속된 대상의 메인 회로 에 연결될 수 있다.
일부 실시예에서, 보안 집적 회로(CT)는 암호화 기능에 의해, 이러한 보안 집적 회로에 송신된 메시지를 암호화, 복호화 또는 서명하는 연산을 실행하도록 구성될 수 있다. 이러한 암호화 기능은 보안 집적 회로(CT)의 프로세서(PRC)에 의해 실행될 수 있거나, 또는 프로세서(PRC)에 의해, 부분적으로 또는 전체적으로 코프로세서(CP1)에 위임될 수 있다.
본 발명에서는 회로(CT)와 같은 회로에 의해 방출된 주 신호, 이러한 회로의 전력 소비, 또는 이러한 신호에 의해 방출되는 전자기 방사를 측정하는 것에 기초한 사이드 채널 분석으로부터, 이러한 회로로 구현되는 암호화 알고리즘에서의 연산과 같은 연산을 보호하는 것이 제공된다. 이러한 목적은 보호될 연산의 실행 중에 이러한 보호될 연산의 입력 데이터의 함수로서 변화하는 추가 신호(추가 전력 소비 또는 전자기 방사 신호)를 생성함으로써 달성된다. 이러한 추가 신호는 입력 데이터의 값과 독립적 일 수 있거나 그렇지 않을 수 있다. 동일한 입력 데이터가 해당 회로에 입력될 때마다, 이러한 입력 데이터와 연관된 추가 신호가 생성된다. 이로써, 이러한 추가 신호가 없는 경우, 해당 회로 외부로부터 측정 가능한 신호는 주 신호에 대응하고, 추가 신호가 존재할 때, 해당 회로 외부로부터 측정 가능한 신호는 주 신호와 추가 신호의 결합에 의해 형성된 결과 신호에 대응한다. 또한, 추가 신호는 해당 회로 외부로부터 측정 가능한 신호 내의 주 신호를 사용하여서는 정확하지 않게 측정되도록 생성된다. 또한, 상기 결과 신호도 또한 입력 데이터의 함수로 변한다.
공지된 보호 방법에 따라 추가된 랜덤 잡음 신호와 달리, 본 보호 방법에 따라 생성되어 추가되는 추가 신호는 결정론적이다. 이로써, 해당 회로가 동일하거나 상이한 입력 데이터에 여러 번 적용되는 동일한 연산을 실행할 때에, 이러한 회로에 의해서 방출하는 신호에 대한 통계적 분석을 통해서 상기 추가 신호는 제거될 수 없다. 동일한 이유로, 추출된 트레이스 부분들로부터 생성된 히스토그램을 계산하고 분석함으로써 해당 회로로부터 측정된 트레이스를 분석하는 상술된 방법에 의해서, 이러한 추가 신호는 잡음으로서 제거될 수 없다. 실제로, 입력 데이터에 의존하는 추가 신호는 입력 데이터에 따라서 상기 획득된 히스토그램을 시프트시키고, 이로써 일부 통계 함수를 사용하여 올바른 값을 식별하는 기능을 무색케한다.
도 2는 보호될 연산 OPR을 구현하는 회로 부분(CTP)을 포함하는 회로(CT)와 같은 회로(CT1)를 나타내며, 상기 연산 OPR은 입력 데이터 IND를 수신한다. 일 실시예에 따르면, 회로(CT1)는 입력 데이터 IND가 인가되는 회로 부분(PTC1)을 포함하고, 이러한 회로 부분(PTC1)은 본 회로(CT1)가 연산 OPR을 실행할 때 본 회로(CT1)에 의해 생성된 측정 가능한 신호에 추가되는 것으로 보이는 일정한 추가 신호를 생성한다. 이러한 추가 신호는 입력 데이터 IND의 값과 상관되지만, 이러한 입력 데이터의 값과는 물리적으로 독립적이며, 이로써 입력 데이터의 값은 이러한 추가 신호로부터 도출될 수 없다. 추가 신호는 해당 회로에서 방출되고 해당 회로 외부에서 측정된 주 신호의 최대 진폭의 1 % 내지 33 %의 값으로 설정될 수 있다. 일 실시예에 따르면, 이러한 추가 신호는 해당 회로에 의해 방출되고 이 회로의 외부로부터 측정된 주 신호의 최대 진폭의 1 % 내지 10 %의 값으로 설정된다.
도 2의 예에서, 회로 부분(PTC1)은 입력 데이터 IND로부터 생성된 제어 신호에 의해 제어되는 저항 값을 갖는 제어형 저항기(VR)를 포함한다. 이 저항기(VR)는 회로(CT1)의 전압원과 접지 사이에 접속될 수 있다. 이로써, 회로 부분(PTC1)은 입력 데이터 IND의 값에 의존하여 일정한 추가 전력을 생성하고, 이러한 추가 전력 소비량은 본 회로(CT1)의 전력 소비량에 가산된다.
도 3은 회로 부분(PTC1) 없이 또는 상기 회로 부분이 비활성 상태에 있을 때에, 해당 연산 OPR이 제 1 및 제 2의 개별 입력 데이터들을 각각 프로세싱할 때에, 순간 t1과 순간 t2 간에 획득된 전력 소비 트레이스들 PT1, PT2의 예들을 나타낸다. 전력 소비 트레이스 PT1는 회로(CT1)가 입력 데이터 IND1를 프로세싱할 때에 획득되며, 전력 소비 트레이스 PT2는 회로(CT1)가 입력 데이터 IND2를 프로세싱할 때에 획득된다. 순간 t1 및 순간 t2는 입력 데이터 IND1 또는 IND2를 프로세싱하기 위해서 연산 OPR을 활성화시키는 것으로부터 결정된다. 연산 OPR이 입력 데이터 IND1를 프로세싱할 때, 회로 부분(PTC1)은 회로(CT1)의 전력 소비량에 일정한 추가 전력 소비량 DP1을 도입한다. 이로써, 회로(CT1)는 추가 전력 소비량 DP1에 대응하는 오프셋 값만큼 전력 소비 트레이스 PT1로부터 시프트된, 전력 소비 트레이스 PT1에 대응하는 전력 소비 트레이스 PM1를 생성한다. 연산 OPR이 입력 데이터 IND2를 프로세싱할 때, 회로 부분(PTC1)은 회로(CT1)의 전력 소비량에, 상기 일정한 추가 전력 소비량 DP1과는 상이한, 일정한 추가 전력 소비량 DP2을 도입한다. 이로써, 회로(CT1)는 이러한 추가 전력 소비량 DP2에 대응하는 오프셋 값만큼 전력 소비 트레이스 PT2로부터 시프트된, 전력 소비 트레이스 PT2에 대응하는 전력 소비 트레이스 PM2를 생성한다.
저항기(VR)에 인가된 제어 신호는 바로 입력 데이터 IND이거나, 또한 입력 데이터 IND의 값을 변환시킴으로써 생성된 값일 수 있다. 일례에 따르면, 입력 데이터 IND가 1 바이트로 인코딩되는 경우, 저항기(VR)에 인가된 명령은 IND/0xFF(= IND/255)일 수 있다. 입력 데이터 IND가 2 바이트로 인코딩되는 경우, 저항기(VR)에 인가된 제어 신호는 IND/0xFFFF일 수 있다. 저항기(VR)에 의해 도입된 추가 전력 소비량은 1 %와, 본 회로의 전력 소비량의 10 %와 33 % 간에서 설정될 수 있는 최대값 간의 값으로 설정될 수 있다.
저항기(VR)에 의해 인가된 전력 오프셋과 입력 데이터 간의 상관성으로 인해서, 그리고 해당 회로의 전력 소비량과 관련하여, 저항기(VR)과 연산 OPR의 실행의 각각의 기여도는 식별 불가능하거나 개별적으로 측정 불가하다는 사실로 인해서, 상이한 입력 데이터들로 획득된 소비 전력 트레이스들에 통계적 분석은 그러한 전력 오프셋들을 제거할 수 없다. 이러한 보호 방법은 상술한 사이드 채널 분석들 대부분에 대해 효과적이라고 입증될 수 있다. 연산 OPR은 예를 들어, 코프로세서(CP1)와 같은 특정 회로와 같은 하드웨어에 의해 구현될 수 있으며, 회로 부분(PTC1)은 이러한 특정 회로의 일부이다. 해당 연산 OPR은 또한 프로세서(PRC) 또는 코프로세서(CP1)에 의해 실행되는 소프트웨어에 의해 구현될 수 있다. 이 경우에, 회로 부분(PTC1)은 프로세서(PRC) 또는 코프로세서의 일부일 수 있다. 제어 신호의 값에 의존하는 전력 소비량을 갖는 임의의 다른 제어형 구성 요소가 가변 저항기(VR)의 대안으로서 사용될 수 있다는 것을 주목해야 한다.
도 4는 보호될 연산 OPR을 구현하는 회로 부분(CTP) 및 보호 회로 부분(PTC2)을 포함하는 회로(CT2)를 나타낸다. 일 실시예에 따르면, 회로 부분(PTC2)은 서로 동일하거나 상이하며 도 4에서와 같이 병렬로 연결되거나 또는 직렬로 연결된 수 개의 가변 저항기들(VR)을 포함한다. 회로 부분(PTC2)의 각 가변 저항기(VR)는 해당 연산 OPR에 적용된 입력 데이터 IND의 일부를 사용하여 제어된다. 예를 들어, 입력 데이터 IND는 수 바이트로 인코딩되고, 입력 데이터 IND의 각 바이트는 각각의 가변 저항기(VR)를 제어하는데 사용된다. 이러한 방식으로, 특히 더 넓은 범위의 전력 오프셋 값을 얻을 수 있도록, 회로(CT2)의 전력 소비 트레이스에 인가될 수 있는 오프셋 값들(DP1, DP2)을 구성시킬 수 있다.
해당 연산 OPR을 수행하는 회로 부분 (CTP)을 포함하는 회로(CT3)의 또 다른 예가 도 5에 도시된다. 회로(CT3)는 입력 데이터 IND의 값에 따라 전자기 방사선을 방출하도록 구성된 회로 부분(PTC3)을 포함한다. 회로 부분(PTC3)은 입력 데이터 IND에 의해 제어되는 가변 저항기(VR)와, 가변 저항기(VR) 및 능동 차폐부(active shield)(AS)와 함께 RL 회로를 형성하는 코일과 같은 인덕터(CL)와 같은 구성 요소를 포함한다. RL 회로(VR-CL-AS)는 본 회로의 전원과 접지 사이에 접속될 수 있다. 능동 차폐부(AS)는 회로 부분(CTP)을 포함하는 회로(CT3)의 적어도 일부를 피복한다. 접지는 회로(CT3)의 적어도 일부를 피복하는 접지면이 될 수 있다. 회로 부분(PTC3)은 회로 부분(CTP)이 입력 데이터 IND를 프로세싱하는 한 전자기 방사선을 발생시키도록 제어된다. 가변 저항기(VR)는 회로(CT3) 내에서, 입력 데이터 IND의 값에 기초하여 일정한 추가 전력 소비량을 생성한다.
도 6은 보호될 연산 OPR을 구현하는 회로 부분(CTP) 및 보호 회로 부분(PTC4)을 포함하는 회로(CT4)를 나타낸다. 일 실시예에 따르면, 회로 부분(PTC4)은 입력 데이터 IND에 의해 제어되는 가변 저항기(VR)를 포함하며, 이 가변 저항기(VR)는 회로(CT4)의 소스 전압과, 링 발진기를 형성하도록 상호 접속된 홀수 개의 인버터들(I1, I2, I3)을 포함하는 회로 간에 접속된다. 회로 부분(PTC4)은 인버터들(I2, I3) 간의 접합 노드와 회로(CT4)의 접지부 간에 연결된 커패시터(C1)를 더 포함한다. 회로(PTC4)의 링 발진기는 제어형 캐패시터(VC)의 값에 의존하는 크기를 갖는 전자기 백색 잡음을 방사하는, Dirac 스펙트럼을 갖는 신호를 생성한다.
도 7은 보호될 연산 OPR을 구현하는 회로 부분(CTP) 및 보호 회로 부분(PTC5)을 포함하는 회로(CT5)를 나타낸다. 일 실시예에 따르면, 회로 부분(PTC5)은 연산 OPR의 입력 데이터 IND를 시드(seed)로서 수신하는 의사 난수 생성 회로(PRNG)의 출력에 의해 제어되는 가변 저항기(VR)를 포함한다. 상기 의사 난수 생성 회로(PRNG)는 그 입력에 인가된 데이터의 값에만 의존하는 난수를 생성하도록 구성된다. 상기 의사 난수 생성 회로(PRNG)는 클록 신호 CK에 의해 클록킹되고 그의 출력은 이전 클록 사이클에서 생성된 난수를 시드로 사용하여 새로운 난수를 각 클록 사이클마다 생성하도록 그 입력부로 피드백된다. 이로써, 상기 의사 난수 생성 회로(PRNG)는 소정의 입력 데이터 IND에 대해 항상 동일한 난수들의 시퀀스를 클록 신호 CK의 레이트로 생성한다. 이러한 방식으로, 가변 저항기(VR)는 회로(CT5)의 소비 전력 소비 트레이스에 대해서, 클록 신호 CK의 각 사이클마다 변하는 전력 오프셋을 생성하지만, 이렇게 생성된 전력 오프셋의 프로파일은 입력 데이터의 값 IND에만 의존한다. 여기서도 다시, 의사 난수 발생 회로(PRNG)에 의해 생성된 시퀀스를 갖는 난수들은 가변 저항기(VR)의 명령 입력부에 인가되기 전에, 변환(예를 들어, RND/0xFF, 여기서 RND는 상기 시퀀스를 갖는 난수임)을 받을 수 있다.
도 8은 입력 데이터들 IND1 및 IND2이 각각 연산 OPR에 의해 프로세싱될 때 순간 t1 및 순간 t2 간에 획득된 전력 소비 트레이스들 PT1, PT2을 나타낸다. 도 8은 또한 각각 입력 데이터 IND1 및 IND2를 수신하는 의사 난수 발생 회로(PRNG)의 제어 하에서 가변 저항기(VR)에 의해 생성된 2 개의 전력 오프셋 프로파일들 PP1, PP2의 예를 나타낸다. 이러한 전력 오프셋 프로파일들 PP1, PP2은, 저항기(VR)가 클록 신호 CK의 클록 주기 TCK 동안 일정하게 유지되고 각 클록 사이클에서 변할 수 있는 전력 소비량을 생성함을 보여준다. 이러한 전력 오프셋 프로파일들 PP1, PP2 각각의 형상은 연산 OPR 및 의사 난수 발생 회로(PRNG)의 입력부에 동시에 인가되는 입력 데이터들 IND1, IND2에만 의존한다. 다른 입력 데이터가 연산 OPR에 적용될 때, 이러한 입력 데이터는 동시에 상기 의사 난수 발생 회로(PRNG)의 입력부에 인가되며, 의사 난수 발생 회로(PRNG)는 상기 입력 데이터에 대해 특정된 난수들의 시퀀스를 생성하며, 이러한 시퀀스를 갖는 난수들 각각은 가변 저항기(VR)를 제어하는데 사용된다.
연산 OPR에 의한 입력 데이터 IND의 프로세싱 동안의 전력 오프셋의 변화로 인하여, 그리고 상기 전력 오프셋이 상기 연산에 의해 현재 프로세싱 중인 입력 데이터 IND에만 의존하는 프로파일을 갖기 때문에, 이러한 보호 방법이 상술한 사이드 채널 분석들 모두를 막기에 효과적이라고 입증될 수 있다. 클록 신호CK는 연산 OPR에 의해 수행되는 프로세싱을 클록킹하는 클록 신호와 반드시 동일하거나 동기화되지는 않는다.
도 4 및 도 7의 실시예들은 조합될 수 있으며, 회로(CT5)는 입력 데이터 IND 내의 워드마다 하나의 회로 부분(PTC5)을 포함한다. 이로써, 입력 데이터 IND 내의 각 워드는 각각의 가변 저항기를 제어하는 난수 시퀀스를 생성하는 의사 난수 생성 회로에 도입되는 시드로서 사용된다.
도 9는 보호될 연산 OPR을 구현하는 회로 부분(CTP)을 포함하는 회로(CT6)를 나타낸다. 다른 실시예에 따르면, 회로(CT6)는 연산(OPR)과 동시에 동일한 입력 데이터 IND를 수신하는 또 다른 연산 FCT1을 수행하는 다른 회로 부분(PTC6)을 포함한다. 이 다른 회로 부분(PTC6)은 입력 데이터 IND에만 의존하는 프로파일에 따라 순간들 t1 및 t2 동안 변화하는, 추가 전력 소비량 및/또는 추가 전자기 방사량과 같은 추가 신호를 연속적으로 생성하도록 구성되며, 이러한 추가 신호는 연산 OPR을 수행하는 회로(CT6)의 신호(즉, 전력 소비량 및/또는 전자기 방사량 신호)에 추가된다. 일 실시예에 따르면, 회로 부분(PTC6)은 입력 데이터 IND에 먼저 인가되고 이후에 상기 연산(FCT1)에 의해 제공된 출력 데이터에 다시 인가되는 연산(FCT1)을 수행하는 프로세싱 루프(processing loop)를 포함하고, 이러한 프로세싱 루프는 순간들 t1 및 t2 동안 활성화된다.
도 10은 연산 OPR을 구현하는 회로 부분(CTP)을 포함하는 회로(CT7)의 또 다른 예를 도시한다. 회로(CT7)는 입력 데이터 IND를 변환하는 제 1 연산 TCF 및 상기 제 1 연산 TCF에 의해 제공된 변환된 데이터 IND'에 적용되는 연산 OPR1을 구현하는 회로 부분(PTC7)을 포함한다. 연산 OPR1은 회로 부분(CTP)에 의해 구현된 연산 OPR과 동일하거나 유사할 수 있으며, 이로써, 회로 부분(PTC7)에서 구현되는 연산 OPR1은 회로(CT7)가 동일한 입력 신호 IND'에 대해서 해당 연산 OPR을 실행할 때에 이러한 회로(CT7)와 동일한 신호(전력 소비량 및/또는 전자기 방사량 신호)를 생성할 수 있다. 이러한 방식으로, 회로 부분(PTC7)은 회로(CTP)가 연산 OPR을 수행할 때에 회로(CTP)와 동일한 크기의 진폭을 갖는, 추가 전력 소비량 및 추가 전자기 방사량을, 입력 데이터 IND의 함수로서 생성한다.
연산들 OPR 및 OPR1은 회로(CT)의 프로세서(PRC) 및 코프로세서(CP1)에 의해, 또는 코프로세서(CP1)의 두 부분들에 의해, 또는 두 개의 코어들에 의해 각각 구현될 수 있으며, 상기 프로세서(PRC)는, 일 실시예에서, 멀티코어 프로세서이다. 이로써, 회로 부분들(CTP, PTC7)에서 구현되는 2 개의 연산들 OPR, OPR1은 엄밀하게는 동시에 실행될 수 있다. 회로 부분들(PTC7과 CTP)은 서로 물리적으로 복잡하게 결합되거나 서로 중첩되어 있을 수 있으며, 이로써 이들의 전자기 방사량들을 개별적으로 측정할 수는 없다.
본 명세서에서 개시된 방법들은 또한 컴퓨터 시스템에 의해 실행 가능한 소프트웨어 프로그램에 의해 구현될 수 있다. 또한, 구현예들은 분산형 및/또는 병렬형 프로세싱을 포함할 수 있으며, 이는 특히 전력 소비량 변화 신호 또는 전자기 방사량 변화 신호와 같은, 명확하게 측정 불가한 신호들을 생성하기 위해서 동일한 입력 데이터를 수신하는 2 개의 연산들을 병렬로 프로세싱하기 위한 것이다.
본 명세서에서 설명된 예시들은 다양한 실시예의 구조에 대한 일반적인 이해를 제공하기 위한 것이다. 이러한 예시들은 본 명세서에서 설명된 구조 또는 방법을 이용하는 장치, 프로세서 및 시스템의 요소들 및 특징부들 모두를 완벽하게 설명하지는 않는다. 다수의 다른 실시예들 또는 이들의 조합이, 본 발명을 검토할 시에, 개시된 실시예들을 조합함으로써, 본 기술 분야의 당업자에게 명백할 수 있다. 본 발명의 범위를 벗어나지 않고 구조적 및 논리적 대체 및 변경이 이루어질 수 있도록, 다른 실시예들이 본 개시로부터 사용되고 파생될 수 있다.
또한, 본 개시 및 설명은 제한적이라기보다는 예시적인 것으로 간주되어야 하며, 첨부된 청구 범위는 본 발명의 진정한 사상 및 범위 내에 있는, 그러한 모든 수정사항, 개선사항 및 다른 실시예들을 포함하도록 의도된다. 이로써, 이하의 특허 청구 범위는 이하의 청구 범위 및 그 균등 범위를 가장 광범위한 허용 가능한 범위로서 해석함으로써 결정되어야 하며, 상술한 설명들에 의해 제한되거나 한정되지 않아야 한다.

Claims (15)

  1. 회로에 의해 연산을 실행하기 위한 방법으로서,
    입력 데이터를 프로세싱하는 제 1 연산을 실행하는 단계로서, 상기 회로는 상기 제 1 연산의 실행 중에 제 1 신호를 생성하는, 상기 제 1 연산을 실행하는 단계; 및
    상기 입력 데이터를 수신하여, 상기 제 1 연산의 실행 동안의 제 1 순간과 제 2 순간 간에, 상기 제 1 신호에 연속형 제 2 신호를 부가하도록 구성된 제 2 연산을 실행하는 단계로서, 상기 제 1 신호 및 상기 제 2 신호가 결합되어 결과 신호가 형성되며, 상기 제 2 신호는 상기 회로의 외부로부터 상기 제 1 신호를 사용하여 정확하게 측정될 수 없으며(indistinctly measurable), 상기 제 2 신호 및 상기 결과 신호는 상기 입력 데이터의 함수로서 변화하는, 상기 제 2 연산을 실행하는 단계;를 포함하는, 연산 실행 방법.
  2. 제 1 항에 있어서,
    상기 제 2 신호는 상기 제 1 순간과 상기 제 2 순간 간의 상기 입력 데이터의 값에 의존하는 상수 값을 갖는, 연산 실행 방법.
  3. 제 1 항에 있어서,
    상기 제 2 신호는 상기 입력 데이터의 값에 의존하는 프로파일에 따라 상기 제 1 순간과 제 2 순간 간에서 변하는, 연산 실행 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 제 1 신호 및 제 2 신호는 상기 회로의 전력 소비량 신호 또는 상기 회로의 전자기 방사량 신호인, 연산 실행 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 제 2 연산은, 상기 회로의 추가 전력 소비량의 형태로 상기 제 2 신호를 생성하도록, 상기 제 1 순간과 상기 제 2 순간 간의 상기 입력 데이터를 사용하여, 가변 저항기를 제어하는 것을 포함하며, 상기 제 1 신호는 상기 회로의 전력 소비량 신호인, 연산 실행 방법.
  6. 제 5 항에 있어서,
    상기 제 2 연산은,
    상기 입력 데이터를 시드(seed)로서 사용하여 난수들의 시퀀스를 생성하는 단계; 및
    상기 제 1 순간과 제 2 순간 간에, 상기 난수들의 시퀀스 중의 난수들을 사용하여 상기 가변 저항을 클록 레이트로 해서 제어하는 단계;를 포함하는, 연산 실행 방법.
  7. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 제 2 연산은,
    상기 입력 데이터를 워드들로 분할하는 단계; 및
    상기 회로에서의 추가 전력 소비량의 형태로 상기 제 2 신호를 생성하도록 상기 제 1 순간과 제 2 순간 간에서, 복수의 가변 저항기를 제어하는 단계로서, 상기 워드들 각각은 상기 복수의 가변 저항기 각각을 제어하는데 사용되며, 상기 제 1 신호는 상기 회로의 전력 소비량 신호인, 상기 복수의 가변 저항기를 제어하는 단계;를 포함하는, 연산 실행 방법.
  8. 제 7 항에 있어서,
    상기 제 2 연산은,
    상기 입력 데이터의 각각의 워드에 대해, 해당 워드에만 의존하는 난수들의 일 시퀀스를 생성하는 단계; 및
    상기 제 1 순간과 제 2 순간 간에서 클록 레이트로 해서 상기 난수들의 시퀀스들 각각 중의 난수들을 사용하여 상기 복수의 가변 저항들 각각을 제어하는 단계;를 포함하는, 연산 실행 방법.
  9. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 제 2 연산은,
    상기 제 1 순간과 제 2 순간 간에 상기 입력 데이터를 프로세싱하는 프로세싱 루프를 포함하거나, 또는
    상기 입력 데이터를 변환하는 제 3 연산, 및 상기 제 1 연산과 동일하거나 유사하고 상기 제 1 순간과 제 2 순간 간에 상기 제 3 연산으로부터 수신된 변환된 데이터를 프로세싱하는 제 4 연산을 포함하는, 연산 실행 방법.
  10. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 제 2 연산은, 상기 회로의 추가 전자기 방사량의 형태로 상기 제 2 신호를 생성하도록, 상기 제 1 순간과 상기 제 2 순간 간의 상기 입력 데이터를 사용하여, 가변 저항기를 제어하는 것을 포함하며, 상기 제 1 신호는 상기 회로의 전자기 방사량 신호인, 연산 실행 방법.
  11. 제 1 연산을 구현하는 제 1 회로 부분 및 제 2 연산을 구현하는 제 2 회로 부분을 포함하는 회로로서,
    제 1 항 내지 제 10 항 중 어느 한 항에 따른 방법을 구현하도록 구성된, 회로.
  12. 제 11 항에 있어서,
    상기 제 1 회로 부분 및 상기 제 2 회로 부분은 서로 인터리빙되거나(interleaved) 중첩된(nested), 회로.
  13. 제 11 항 또는 제 12 항에 있어서,
    상기 제 1 회로 부분 및 제 2 회로 부분을 포함하는 코프로세서; 또는
    상기 제 1 회로 부분 및 제 2 회로 부분을 포함하는 프로세서;를 포함하는, 회로.
  14. 제 11 항 내지 제 13 항 중 어느 한 항에 따른 회로를 포함하고, 매체 상에 배치된, 장치.
  15. 컴퓨터의 내부 메모리에 로딩 가능한 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터에 의해 실행될 때 제 1 항 내지 제 10 항 중 어느 한 항에 따른 방법의 단계들을 수행하도록 상기 컴퓨터를 구성시키는 코드 부분들을 포함하는, 컴퓨터 프로그램 제품.


KR1020170082037A 2016-06-28 2017-06-28 부채널 분석에 대응한 보호 방법 및 장치 KR20180002072A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP16176714.0 2016-06-28
EP16176714.0A EP3264311B1 (en) 2016-06-28 2016-06-28 A protection method and device against a side-channel analysis

Publications (1)

Publication Number Publication Date
KR20180002072A true KR20180002072A (ko) 2018-01-05

Family

ID=56289380

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170082037A KR20180002072A (ko) 2016-06-28 2017-06-28 부채널 분석에 대응한 보호 방법 및 장치

Country Status (4)

Country Link
US (1) US11070359B2 (ko)
EP (1) EP3264311B1 (ko)
KR (1) KR20180002072A (ko)
CN (1) CN107547191A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3026206B1 (fr) * 2014-09-23 2017-12-01 Inside Secure Procede de contremesure contre une attaque par analyse de consommation electrique pour dispositif cryptographique
US11188682B2 (en) * 2016-06-17 2021-11-30 Arm Limited Apparatus and method for masking power consumption of a processor

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5103459B1 (en) * 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
US5212435A (en) * 1992-05-22 1993-05-18 Morrill Motors Inc. Variable speed asynchronous induction motor
EP1090480B1 (en) 1998-06-03 2019-01-09 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
US6295606B1 (en) 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
JP4596686B2 (ja) 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
KR20060127921A (ko) 2004-01-27 2006-12-13 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 전력 분석 공격에 대한 방어 방법
US7848514B2 (en) 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
EP1601132B1 (en) 2004-05-24 2006-11-15 Research In Motion Limited Table Masking for Resistance to Power Analysis Attacks
FR2873523B1 (fr) 2004-07-22 2007-08-10 Sagem Procede et dispositif d'execution d'un calcul cryptographique
FR2875318A1 (fr) 2004-09-15 2006-03-17 St Microelectronics Sa Protection d'un algorithme des
DE102004052248A1 (de) * 2004-10-27 2006-05-18 Siemens Ag Hybride Ansteuerschaltung
GB2443355B (en) 2005-01-27 2008-08-06 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
US7716502B2 (en) * 2005-08-24 2010-05-11 Radu Muresan Current flattening and current sensing methods and devices
FR2893796B1 (fr) 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
US7504897B2 (en) * 2006-10-30 2009-03-17 Agere Systems Inc. Switched-current oscillator for clock-frequency spreading
DE102007007699A1 (de) 2007-02-09 2008-08-14 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks
WO2008102246A2 (en) * 2007-02-22 2008-08-28 Agency For Science, Technology And Research An apparatus for generating a plurality of signals
JP2008252299A (ja) 2007-03-29 2008-10-16 Hitachi Ltd 暗号処理システム及び暗号処理方法
CN101729241B (zh) * 2008-10-23 2012-01-25 国民技术股份有限公司 抵御差分能量攻击的aes加密方法
FR2941342B1 (fr) 2009-01-20 2011-05-20 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve.
US8847638B2 (en) * 2009-07-02 2014-09-30 Qualcomm Incorporated High speed divide-by-two circuit
EP2365659B1 (fr) * 2010-03-01 2017-04-12 Inside Secure Procédé de test de la résistance d'un circuit intégré à une analyse par canal auxiliaire
GB2479871A (en) * 2010-04-26 2011-11-02 David Coyne System for preventing side channel attacks on a synchronous logic device.
TWI452810B (zh) * 2011-11-08 2014-09-11 Richtek Technology Corp 電源轉換器的混合式補償電路及方法
FR2985624B1 (fr) 2012-01-11 2014-11-21 Inside Secure Procede de chiffrement protege contre des attaques par canaux auxiliaires
US9569616B2 (en) 2013-12-12 2017-02-14 Cryptography Research, Inc. Gate-level masking
CN104283673A (zh) * 2014-10-09 2015-01-14 东南大学 密码电路系统的随机动态电压调节抗攻击方法及电路系统
US9735953B2 (en) * 2015-03-06 2017-08-15 Qualcomm Incorporated Side channel analysis resistant architecture
US20160269175A1 (en) 2015-03-09 2016-09-15 Qualcomm Incorporated Cryptographic cipher with finite subfield lookup tables for use in masked operations
JP6587188B2 (ja) * 2015-06-18 2019-10-09 パナソニックIpマネジメント株式会社 乱数処理装置、集積回路カード、および乱数処理方法
JP2017054455A (ja) * 2015-09-11 2017-03-16 株式会社東芝 クロック生成回路及び無線受信機
US9794062B2 (en) 2015-10-08 2017-10-17 The Boeing Company Scrambled tweak mode of blockciphers for differential power analysis resistant encryption
EP3220306B1 (en) 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis
CN107547193A (zh) 2016-06-28 2018-01-05 埃沙尔公司 使替换运算免受侧信道分析的方法

Also Published As

Publication number Publication date
EP3264311B1 (en) 2021-01-13
EP3264311A1 (en) 2018-01-03
US11070359B2 (en) 2021-07-20
CN107547191A (zh) 2018-01-05
US20170373837A1 (en) 2017-12-28

Similar Documents

Publication Publication Date Title
EP3220304B1 (en) Method of testing the resistance of a circuit to a side channel analysis
US10644873B2 (en) Method for protecting substitution operation against side-channel analysis
US11036891B2 (en) Testing resistance of a circuit to a side channel analysis
KR20110099185A (ko) 수평 사이드 채널 분석에 대항하여 보호된 집적 회로
EP3264311B1 (en) A protection method and device against a side-channel analysis
EP3264396A1 (en) A method for protecting a substitution operation using a substitution table against a side-channel analysis
EP3264667B1 (en) A method for protecting a substitution operation against a side-channel analysis