KR20170098732A - 2차 이상의 부채널 분석에 대한 회로의 저항력을 테스트하는 방법 - Google Patents

2차 이상의 부채널 분석에 대한 회로의 저항력을 테스트하는 방법 Download PDF

Info

Publication number
KR20170098732A
KR20170098732A KR1020170023794A KR20170023794A KR20170098732A KR 20170098732 A KR20170098732 A KR 20170098732A KR 1020170023794 A KR1020170023794 A KR 1020170023794A KR 20170023794 A KR20170023794 A KR 20170023794A KR 20170098732 A KR20170098732 A KR 20170098732A
Authority
KR
South Korea
Prior art keywords
values
value
data
recovered
cumulative
Prior art date
Application number
KR1020170023794A
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
Priority claimed from FR1651443A external-priority patent/FR3048086B1/fr
Priority claimed from FR1651444A external-priority patent/FR3048096A1/fr
Priority claimed from FR1651445A external-priority patent/FR3048097A1/fr
Application filed by 에샤르 filed Critical 에샤르
Publication of KR20170098732A publication Critical patent/KR20170098732A/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2851Testing of integrated circuits [IC]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31719Security aspects, e.g. preventing unauthorised access during test
    • 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/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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/72Protecting 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 in cryptographic circuits
    • 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
    • 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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 테스트 방법에 관한 것으로서, 테스트 방법은, 복수의 값 세트(Ci)를 획득하는 단계로서, 각 값 세트는, 동일한 기밀 데이터에 적용되는 별개의 암호 작업 세트의 작업을 실행하였을 때, 테스트할 회로의 활동과 연계된 측정치 또는 논리 신호를 포함하는, 획득하는 단계, 각 값 세트(Ci)의 값들 중 적어도 두 개의 부분세트(EC1i, EC2i)를 선택하는 단계, 각각의 값 세트에 대하여, 각각의 값 부분세트에 한 값을 함께 결합하는 결합 값(Wi)을 계산하는 단계, 각각의 값 세트에 대하여, 값 세트의 결합 값들에 적용되는 제1 전사함수에 의해 변환된 값들의 발생 횟수를 카운트하는 단계, 작업 세트의 각 작업 및 기밀 데이터의 일부 가능한 각각의 값에 대하여, 부분 작업 결과를 계산하는 단계, 기밀 데이터 중 일부의 가능한 값들 중 동일한 값에 적용될 때, 제2 전사 함수에 의한 동일한 변환 값을 갖는 부분 작업 결과를 제공하는, 작업 세트의 작업에 대응하는 발생 횟수 세트들을 더하여 구한 누적 발생 횟수 세트를 계산하는 단계, 및 기밀 데이터의 일부를 판단하기 위하여 누적 발생 횟수 세트들을 분석하는 단계를 포함한다.

Description

2차 이상의 부채널 분석에 대한 회로의 저항력을 테스트하는 방법{METHOD OF TESTING THE RESISTANCE OF A CIRCUIT TO A SIDE CHANNEL ANALYSIS OF SECOND ORDER OR MORE}
본 발명은 회로, 특히, 비밀 데이터를 다루도록 설계된 회로, 및 특히 비밀 키를 사용하는 암호화 알고리즘에 의해 메시지를 변환하는 회로를 테스트하기 위한 방법에 관한 것이다.
본 발명은 특히 암호 알고리즘들을 구현하는 디바이스들, 예를 들어, 보안 디바이스들(스마트 카드 집적 회로들, 보안 요소들, 보안 메모리 카드들), 이동 디바이스들(이동 전화들, 스마트폰들, 사물 인터넷), 도모틱스 디바이스들 및 자동차 디바이스들, 및 컴퓨터 및 다른 전자 및 IT 장치(USB 드라이브, TV 인코더, 게임 콘솔, 등), 등의 마더 보드 상에 통합된 하드웨어 암호 컴포넌트들에 관한 것이다. 본 발명은 또한 보안 또는 비-보안 환경에서 실행되도록 제공되는, 암호화 연산을 포함하는 소프트웨어에 관한 것이다.
본 발명은 특히 암호 알고리즘, 예를 들어, DES(Data Encryption Standard) 또는 Triple DES, AES(Advanced Encryption Standard), RSA(Rivest, Shamir and Adleman), DSA(Digital Signature Algorithm), 또는 ECDSA(Elliptic Curve Digital Signature Algorithm)와 같은 암호화 알고리즘을 구현하는 회로들에 관한 것이다. 본 발명은 또한 예를 들어, HMAC(keyed-Hash Message Authentication Code)와 같은 해싱 함수를 구현하는 회로들에 관한 것이다.
암호 알고리즘을 구현하는 마이크로회로들은 CPU(중앙 프로세싱 유닛)을 구비하고 있다. 일부 마이크로회로들은 암호 컴퓨팅에 전용된 회로들, 예를 들어, 암호 코프로세서를 구비하고 있다. 이러한 마이크로회로들은 실행될 연산들에 따라 상이하게 스위칭되는 수천 개의 로직 게이트들을 포함한다. 이러한 스위칭들은 측정될 수 있는, 예를 들어, 수 나노초의 짧은 전류 소비량 변화들을 생성한다. 특히, CMOS-타입 집적 회로들은 스위칭될 시에, 즉 로직 노드가 1 또는 0으로 변할 때에만 전류를 소비하는 로직 게이트들을 포함한다. 따라서, 전류 소모량은 CPU에 의해 처리되는 데이터 및 그의 다양한 주변요소들, 예를 들어, 메모리, 데이터 또는 어드레스 버스 상에서 전달되는 데이터, 암호 코프로세서, 등에 의존한다.
또한, 특히, 암호화 또는 난독화 기법들, 예를 들어, “화이트박스 암호화(Whitebox Cryptography)” 기법을 사용하여 생성된 특정 소프트웨어 프로그램들은, 리버스 엔지니어링에 의해 비밀 데이터를 결정하기 힘들도록, 비밀 데이터를 포함할 수 있다. 특정 소프트웨어 프로그램들은 또한 보안 통신 채널을 통해 외부로부터 비밀 데이터를 수신할 수 있다. 이러한 마이크로회로들은 그들의 전류 소비, 또는 그들의 자기적 또는 전자기적 방사, 또는 암호 알고리즘이 실행되는 동안에 관측될 수 있는 임의의 다른 정보를 관측하는 것에 기초한 이른바 사이드 채널 분석 공격을 받을 수 있다. 이러한 공격들은 그들이 사용하는 비밀 데이터, 특히 그들의 암호화 키들을 복구하는 것을 목적으로 한다. 빈번한 사이드 채널 공격은 통계적 분석 방법들, 예를 들어, 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 분석들 중 하나 또는 다른 것과 같은 분석법에 의해 전류 소비 변화 신호들과 같이 간주될 수 있다. 이러한 분석의 적용 실례는 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, pp. 172-186. Springer, Heidelberg (2003)), 및 "상호 정보 분석"(MIA)(다음 문헌 참조: B. Gierlichs, L. Batina, P. Tuyls, and B. Preneel, "Mutual Information Analysis", CHES 2008, volume 5154 of LNCS, pages 426-442, Springer, 2008)이 존재한다. 전술한 공격들 모두는 모든 분석된 트레이스들의 시간 정렬에 기초한다. 달리 말하면, 예를 들어, 명령의 실행이 회로에 의해 활성화되는 시간으로부터 소정의 시간에 수행되는 모든 측정치들은 해당 알고리즘에 의해 다루어진 동일한 값에 대응해야 한다.
이러한 회로들 및 이들이 이러한 사이드 채널 공격에 맞서 실행하는 암호 알고리즘들을 보호하기 위해서, 대응 조치들이 일반적으로 제공된다. 이러한 대응 조치들의 하나의 널리 사용되는 패밀리는 이러한 시간 정렬을 막는 것이다. 이를 위해서, 이러한 대응 조치들은 계산 회로들과 속도를 같이하는 클록 주파수에서의 변화들을 도입하거나 더미 클록 사이클 또는 더미 연산들을 도입한다.
특정 전문 지식 및 수많은 시도들에 의해, 특히 재정렬될 아주 많은 수의 트레이스들을 사용하여, 또는 일부 신호 프로세싱을 적용하여, 이러한 시간 정렬을 복구하는 것이 때로 가능하다. 모든 것에도 불구하고, 이러한 시간 정렬을 복구하는 것이 가능하지 않는 경우들도 존재하며, 이로써 트레이스들 내에 존재하는 비밀 데이터 누설이 존재할지라도 사이드 채널 테스트는 실패한다.
다른 대응 조치 패밀리는 거짓 키들 또는 거짓 메시지들에 의해 암호화 방법을 수회 실행하는 것을 수반한다. 이를 위해서, 예를 들어, 암호화 프로그램 또는 코프로세서를 제어하고 암호화 프로그램 또는 코프로세서가 임의의 순서로 거짓 키들을 사용하여 암호화 방법을 수회 실행될 수 있게 하며, 이로써 올바른 키(즉, 맞는 키)를 사용하는 암호화 방법의 실행이 더미 실행 세트 내에서 "은폐"되게 하는 대응 조치 프로그램이 제공된다. 이러한 다중 실행에 의한 대응 조치는 임의의 특정 대응 조치 수단을 포함하지 않는 통상적인 코프로세서로 구현될 수 있다는 이점을 제공한다.
다른 대응 조치 패밀리는 회로에 의해 다루어진 데이터가 그들의 실제 값들과 무관하게 되게 하도록 보호될 알고리즘을 구성시키는 것을 포함한다. "마스킹-타입 대응 조치들"로 지칭되는 이러한 패밀리 내의 특정 대응 조치들은 암호화 방법의 실행 동안에 예를 들어, 키 및/또는 메시지와 같은 보호될 다른 데이터와 결합된 랜덤 마스크(이진수)를 사용한다. 이러한 타입의 대응 조치는 효과적이지만 알고리즘의 수정을 요구하며 이로써 전용 코프로세서에 의한 실행의 경우에는 그의 구현을 위해서 특정하게 제공되는 코프로세서를 요구하거나, 마이크로회로의 CPU 또는 프로그램된 코프로세서에 의한 실행의 경우에는 보다 복잡한 프로그램을 요구한다. 또한, 이러한 타입의 대응 조치는 각각이 각각의 트레이스의 2 개의 부분들을 결합함으로써 획득되는 신호 트레이스들의 세트의 분석에 기초한 이른바 “2차 공격"에 취약하다. 실례로서, 이러한 신호 트레이스들 각각은 복구할 데이터 값 및 랜덤 마스크 값의 결합으로부터 생성되는 데이터와 관련된 누설을 유지하도록 되어 있는 신호 부분 및 랜덤 마스크 값의 누설을 유지하도록 되어 있는 신호 부분을 결합한다. 다음 문헌: E. Prouff, M. Rivain, R. Bevan, "Statistical Analysis of Second Order Differential Power Analysis", IEEE Transactions on Computers, Vol. 58, No. 6, June 2009은 복구할 데이터 값과 관련된 신호 트레이스를 획득하기 위해서 시간 신호 부분들을 결합하기 위한 상이한 방식들을 개시한다. 그러나, 이러한 2차 공격은 결합된 신호 부분들이 결합되기 이전에 엄격하게 시간 정렬되어야 한다는 요건으로 인해서 어려움을 직면한다. 이러한 요건이 충족되지 않으면, 결합된 신호 트레이스들은 통상적인 통계적 분석들에 의해 추출될 수 있는 유용한 정보를 포함하지 않거나, 또는 결합된 신호 트레이스들이 이러한 유용한 정보를 포함하지만, 이러한 정보는 통상적인 통계적 분석들에 의해 추출될 수 없다. 이로써, 2차 공격은 예를 들어, 회로와 보조를 맞추는 클록 사이클의 지속시간이 랜덤하게 변하게 하는 것, 또는 랜덤하게 선택된 시간들에 더미 프로세싱 사이클들 또는 연산들을 도입하는 것과 같은, 모든 종류의 시간 오정렬에 기초한 대응 조치들에 매우 민감하다.
판매될 의도가 있는 보안 집적 회로에 의해 제공된 보안 레벨을 체크하기 위해서, 자격 및/또는 인증 테스트들이 회로가 판매되기 이전에 계획되며, 이러한 테스트들은 특히, 집적 회로에 의해서 취급되는 비밀 데이터를 복구하는 것을 목적으로 하는 사이드 채널 분석 공격들에 대한 집적 회로의 내성을 테스트하는 것을 포함한다. 또한, 사이드 채널 공격에 대한 소프트웨어 프로그램의 내성이 평가되게 하는 테스트들이 존재한다.
따라서, 특히, 전류 소비 트레이스들 또는 회로의 활성도를 나타내는 임의의 다른 물리적 또는 논리적 정량에 대한 임의의 선행 시간 정렬 프로세싱을 요구하지 않으면서 비밀 데이터 누설을 검출할 수 있는, 2차 사이드 채널 공격에 대한 회로 또는 소프트웨어 프로그램의 내성을 테스트하기 위한 방법을 제공하는 것이 바람직하다. 또한, 이러한 방법이 소프트웨어 프로그램 또는 애플리케이션이 실행되는 회로와 무관하게, 소프트웨어 프로그램 또는 애플리케이션의 강성을 테스트할 수 있는 것이 바람직할 수 있다.
또한, 이러한 테스트 방법이 소정의 회로에 의해 실행되는 소프트웨어 또는 회로들의, 사이드 채널 분석들에 대한 내성 및 정보 누설의 측면에서의 그들의 기밀성을 체크하고자 하는 산업용 자격 및/또는 인증 프로세스 내로 통합되는 것이 바람직할 수 있다.
또한, 이러한 테스트 방법을 포함하는 자격 및/또는 검증 프로세스 후에, 집적 회로 또는 소프트웨어 프로그램이 제품에서 사용될 수 있는 것으로 고려되게 하는 대응 조치 수단을 제공하는 것이 바람직할 수 있다.
일부 실시형태들은 테스트 방법에 관한 것이며, 이 방법은 복수의 값 세트들을 취득하는 단계로서, 각 값 세트는 테스트 대상 회로가 복구될 동일한 데이터에 적용되는 구별된 암호 연산들의 연산 세트 중 하나의 연산을 실행하는 때에 상기 테스트 대상 회로의 활성도와 관련된, 물리적 정량 또는 로직 신호들의 값들을 포함하는, 상기 취득하는 단계; 각 값 세트의 값들의 적어도 2 개의 서브세트들을 선택하는 단계; 각 값 세트에 대해, 각 값 서브세트 내의 일 값을 함께 결합한 결합 값들을 컴퓨팅한 단계; 각 값 세트에 대해, 해당 값 세트의 상기 결합 값들에 적용된 제 1 전사 함수(surjective function)에 의해 변환된 값들의 발생 횟수를 프로세싱 유닛에 의해 카운팅하는 단계; 상기 연산 세트의 각 연산, 및 복구될 상기 데이터의 부분의 가능한 값들 각각에 대해, 상기 프로세싱 유닛에 의해, 부분적 연산 결과를 컴퓨팅하는 단계; 상기 프로세싱 유닛에 의해, 누적 발생 횟수 세트들을 컴퓨팅하는 단계로서, 상기 누적 발생 횟수 세트들은 상기 연산 세트의 연산들에 대응하는 발생 횟수 세트들을 가산함으로써 획득되며, 상기 연산 세트의 연산들은 상기 복구될 데이터의 부분의 가능한 값들 중 동일한 값 또는 균등한 값에 적용되는 때에, 제 2 전사 함수의 적용으로부터 기인되는 동일한 변환된 값을 갖는 부분적 연산 결과를 제공하는, 상기 누적 발생 횟수 세트들을 컴퓨팅하는 단계; 및 상기 복구될 데이터가 상기 값 세트들 내로 누설되었으면, 상기 복구될 데이터가 상기 복구될 데이터의 부분의 값에 대응하는 누적 발생 횟수 세트들 내에서 발견된다는 것을 알면서, 상기 복구될 데이터의 부분을 결정하도록 상기 프로세싱 유닛에 의해 상기 누적 발생 횟수 세트들을 분석하는 단계를 포함한다.
일 실시형태에 따라서, 상기 값 세트에 대한 결합 값들은, 각 서브세트의 각 값을 함께 승산하거나, 제 1 서브세트의 각 값과 제 2 서브세트의 각 값 간의 양의 차들(positive differences)을 컴퓨팅하거나, 각 서브세트의 각 값과 해당 서브세트 내의 값들의 평균 값 간의 차들(gaps)을 함께 승산함으로써, 획득된다.
일 실시형태에 따라서, 본 테스트 방법은 복수의 구별된 명령들을 상기 테스트 대상 회로에 전송하는 단계로서, 각 명령은 상기 복구될 데이터에 적용된, 상기 연산 세트의 연산들 중 하나의 연산의 상기 테스트 대상 회로에 의한 실행을 트리거하는, 상기 전송하는 단계; 및 상기 테스트 대상 회로에 의한 상기 하나의 연산의 실행 동안에, 상기 값 세트들 중 하나의 세트의 값들을 측정 디바이스에 의해 수집하는 단계를 더 포함한다.
일 실시형태에 따라서, 각 값 세트의 서브세트들은 각각의 구별된 신호들의 측정치들을 포함한다.
일 실시형태에 따라서, 상기 값 세트들은, 상기 테스트 대상 회로의 전류 소비 측정치들, 및/또는 상기 테스트 대상 회로에 의해 방출된 전자기 방사의 측정치들, 및/또는 상기 테스트 대상 회로 주변에 존재하는 자기장의 흡수 측정치들, 및/또는 상기 테스트 대상 회로에서 수집된 로직 신호들 또는 디지털 값들을 포함한다.
일 실시형태에 따라서, 상기 제 1 함수 및 제 2 전사 함수 각각은, 항등 함수, 후속하여 Hamming 가중치에 대응하는 값으로 환원되는 결과적인 값을 제공하는 함수, 함수가 적용된 값의 Hamming 가중치를 제공하는 함수, 또는 함수가 적용된 값과 이에 선행하는 값 간의 Hamming 거리를 제공하는 함수 중 하나이다.
일 실시형태에 따라서, 본 테스트 방법은 상기 분석하는 단계가 상기 복구될 데이터의 부분을 결정하면, 상기 테스트 대상 회로 또는 상기 테스트 대상 회로에 의해 실행된 프로그램을 제거하는 단계를 더 포함한다.
일 실시형태에 따라서, 상기 복구될 데이터의 부분의 가능한 값들 각각에 대한 연산 결과를 컴퓨팅하는 단계, 상기 누적 발생 횟수들을 컴퓨팅하는 단계, 및 상기 누적 발생 횟수들을 분석하는 단계는 상기 복구될 데이터의 이전에 결정된 부분 및 상기 복구될 데이터의 다른 부분에 대해 수행된다.
일 실시형태에 따라서, 각 값 세트 내의 상기 선택된 서브세트들은 해당 값 세트의 연속적인 값들, 및/또는 해당 값 세트의 비-연속적인 값들, 및/또는 해당 값 세트의 국부적 극값들, 및/또는 해당 값 세트의 모든 값들을 포함한다.
일 실시형태에 따라서, 상기 연산 세트의 연산들은 상기 복구될 데이터에 그리고 입력 데이터의 세트 중 일 입력 데이터에 단일 연산을 적용하는 것을 포함하며, 상기 단일 연산은, 대칭적 또는 비대칭적 암호화 또는 복호화 연산, 시그니처 연산, 상기 복구될 데이터만큼의 모듈러 또는 비-모듈러 승산(non-modular multiplication), 상기 복구될 데이터와의 로직 Exclusive OR 연산, 상기 복구될 데이터가 지수로서 사용되는 모듈러 지수 연산, 상기 복구될 데이터가 모듈러스로서 사용되는 모듈러 환원 연산(modular reduction operation), 상기 입력 값을 사용하여 대체 테이블 내에 선택된 값에 의한 대체 연산, 및 상기 복구될 데이터와의 로직 Exclusive OR 연산 및 상기 로직 Exclusive OR 연산의 결과를 사용하여 대체 테이블 내에 선택된 값으로 상기 로직 Exclusive OR 연산의 결과를 대체하는 대체 연산을 조합한 연산 중 적어도 하나를 포함한다.
일 실시형태에 따라서, 상기 누적 발생 횟수 세트들을 분석하는 단계는, 각 누적 발생 횟수에 대해, 해당 누적 발생 횟수에 누적된 발생 횟수들의 대응하는 개수로 해당 누적 발생 횟수를 나눔으로써 정규화된 누적 발생 횟수를 컴퓨팅하는 단계; 상기 복구될 데이터의 부분의 각 가능한 값 및 상기 변환된 부분적 결과의 각 가능한 값에 대해, 연산들의 횟수로 나누어진, 해당 누적 발생 횟수들의 평균 값과, 상기 복구될 데이터의 부분의 가능한 값 및 상기 변환된 부분적 결과의 가능한 값에 대응하는 각 정규화된 누적 발생 횟수 간의 차들의 제곱의 합을 컴퓨팅하는 단계; 상기 복구될 데이터의 부분의 각 가능한 값에 대해, 상기 변환된 부분적 결과들의 가능한 값들에 대응하는 차 합들의 누계를 컴퓨팅하는 단계; 및 상기 차 합들의 누계들을 서로 비교하고, 상기 복구될 데이터의 부분의 가능한 값에 대한 차 합들의 누계들 중 하나가 차 합들의 다른 누계들보다 큰지를 결정하는 단계를 포함한다.
일 실시형태에 따라서, 상기 누적 발생 횟수들을 분석하는 단계는, 상기 복구될 데이터의 부분의 각 가능한 값 및 상기 변환된 부분적 결과의 각 가능한 값에 대해, 누적 발생 횟수들의 누계를 컴퓨팅하는 단계; 각 누적 발생 횟수에 대해, 누적 발생 횟수들의 대응하는 누계로 발생 횟수들의 합을 나눔으로써 정규화된 누계를 컴퓨팅하고 상기 정규화된 누계의 로그와 상기 정규화된 누계의 곱(product)을 컴퓨팅하는 단계; 상기 복구될 데이터의 부분의 각 가능한 값 및 상기 변환된 부분적 결과의 각 가능한 값에 대해, 상기 복구될 데이터의 부분의 각 가능한 값 및 상기 변환된 부분적 결과의 가능한 값에 대응하는 상기 곱(product)들의 합을 컴퓨팅하는 단계; 및 상기 복구될 데이터의 부분의 각 가능한 값에 대해, 상기 변환된 부분적 결과들의 가능한 값들에 대응하는 곱 합들(product sums)의 누계를 컴퓨팅하는 단계로서, 각 곱 합은 발생 횟수들의 합들의 대응하는 개수만큼 승산되는, 상기 컴퓨팅하는 단계; 및 상기 곱 합들의 누계들을 서로 비교하고, 상기 복구될 데이터의 부분의 가능한 값에 대한 곱 합들의 누계들 중 하나가 곱 합들의 다른 누계들보다 큰지를 검출하는 단계를 포함한다.
실시형태들은 또한 회로를 테스트하기 위한 시스템에 관한 것일 수 있으며, 본 회로 테스트 시스템은 복수의 값 세트들을 취득하도록 구성된 측정 디바이스로서, 각 값 세트는 테스트 대상 회로가 복구될 동일한 데이터에 적용되는 구별된 암호 연산들의 연산 세트 중 하나의 연산을 실행하는 동안에 상기 테스트 대상 회로의 활성도와 관련된, 물리적 정량 또는 로직 신호들의 값들을 포함하는, 상기 측정 디바이스; 및 이전에 규정된 테스트 방법을 구현하도록 구성된 프로세싱 유닛을 포함한다.
일 실시형태에 따라서, 본 회로 테스트 시스템은 상기 측정 디바이스에 연결되어 상기 테스트 대상 회로의 활성도와 관련된 트레이스들을 획득하는 측정 프로브(probe)를 더 포함한다.
일 실시형태에 따라서, 본 회로 테스트 시스템은 테스트될 애플리케이션을 실행하는 에뮬레이터(emulator)를 더 포함한다.
실시형태들은 또한 컴퓨터의 내부 메모리 내에 로딩가능하며 코드 부분들을 포함하는 컴퓨터 프로그램 제품에 관한 것일 수 있으며, 상기 코드 부분들이 상기 컴퓨터에 의해 실행될 시에 상기 코드 부분들은 이전에 규정된 방법의 단계들을 실행하도록 상기 컴퓨터를 구성한다.
오직 예시적 설명을 위해서 제공되는, 본 발명의 실시예들의 일부 실례들은 첨부 도면들을 참조하여서 이하에서 기술될 것이지만, 첨부 도면들로 한정되지는 않는다.
도 1은 보안 회로의 통상적인 아키텍처를 개략적으로 도시한다.
도 2는 집적 회로 테스트 시스템의 실례를 개략적으로 도시한다.
도 3은 보안 회로에 의한 암호화 연산의 실행 동안 획득된 신호의 트레이스들을 나타낸다.
도 4는 일 실시예에 따른, 회로 테스트 방법의 단계들을 나타낸다.
도 5는 전사 함수의 실례를 그래프 형태로 나타낸다.
도 6은 통계적 프로세싱을 수행하기 위해, 일 실시예에 따라 구축된 테이블을 개략적으로 도시한다.
도 7은 다른 실시예에 따른, 회로 테스트 방법의 단계들을 나타낸다.
도 8 및 도 9는 다양한 실시예들에 따른, 테스트 방법에 의해 획득된 값 세트를 통계적으로 분석하기 위한 방법의 단계들을 나타낸다.
도 10 및 도 11은 도 8 및 도 9의 분석 방법들에 의해 제공된 결과 테이블들을 곡선들의 형태로 나타낸다.
도 1은 예를 들어, 휴대용 매체(HD), 예를 들어, 플라스틱 카드 또는 임의의 다른 매체 상에 배열되거나 또는 단말, 예를 들어, 이동 단말, 스마트폰, IoT 디바이스 등 내에 배치된 보안 집적 회로(CT)를 예시적으로 나타낸다. 보안 집적 회로는 마이크로프로세서(PRC), 입력/출력 회로(IOC), 데이터 및 어드레스 버스에 의해 마이크로프로세서에 연결된 메모리들(M1, M2, M3), 및, 선택사양적으로, 암호 계산 코프로세서(CP1) 또는 산술 가속기, 및 난수 생성기(RGN)를 포함한다. 메모리(M1)는 휘발성 애플리케이션 데이터를 포함하는 RAM-타입("랜덤 액세스 메모리") 메모리이다. 메모리(M2)는 비-휘발성 데이터 및 애플리케이션 프로그램들을 포함하는, 비-휘발성 메모리, 예를 들어, EEPROM 또는 플래시 메모리이다. 메모리(M3)는 마이크로프로세서의 운영 체제를 포함하는 판독 전용 메모리(또는 ROM 메모리)이다.
통신 인터페이스 회로(IOC)는 예를 들어, ISO/IEC 7816 표준에 따른 접촉 타입을 갖거나, 예를 들어, ISO/IEC 14443A/B 또는 ISO/IEC 13693 표준에 따른, 유도 결합을 갖는 무접촉 타입을 갖거나, 전기적 결합에 의한 무접촉 타입(UHF 인터페이스 회로)을 갖거나, 또는 접촉 및 무접촉 타입을 가질 수 있다. 통신 인터페이스 회로(IOC)는 또한 특정 인터페이스를 통해, 다른 회로, 예를 들어, NFC(Near-Field Communications) 제어기, 또는 단말, 예를 들어, 이동 단말의 메인 회로 또는 연결된 대상에 연결될 수 있다.
일부 실시형태들에서, 보안 집적 회로(CT)는 암호화 함수에 의해, 자신에게 전송된 메시지의 암호화, 암호해독 또는 서명 연산들을 실행하도록 구성될 수 있다. 이러한 암호화 함수는 회로(CT)의 프로세서(PRC)에 의해 실행되거나, 코프로세서(CP1)와 함께 프로세서(PRC)에 의해 부분적으로 또는 전체적으로 실행될 수 있다.
도 2는 일 실시예에 따른, 테스트 방법을 구현하도록 제공된 집적 회로 테스트 시스템의 실례를 나타낸다. 이 테스트 시스템은 도 1의 보안 집적 회로(CT)를 테스트하도록 구성된다는 것이 예시로서 가정될 것이다.
도 2의 테스트 시스템은 측정 디바이스(MD), 예를 들어, 디지털 오실로스코프에 연결되어, 회로의 활동도와 관련된 트레이스들, 예를 들어, 전류 소비 또는 전자기 신호 변화의 트레이스들을 획득하는 측정 프로브(PB), 및 컴퓨팅 수단, 예를 들어, 개인용 컴퓨터(PC)를 포함한다. 컴퓨터(PC)는 측정 디바이스에 연결되고 테스트 프로그램을 구현한다. 이러한 테스트 프로그램은 특히, 집적 회로와 통신하고 집적 회로에 메시지들을 전송하기 위한 통신 인터페이스 및 프로그램, 신호 프로세싱 프로그램, 및 본 발명에 따른 방법의 계산 단계들을 구현하는 프로그램을 포함한다. 집적 회로가 무접촉 회로인 경우에, 통신 인터페이스는 무접촉 카드 판독기를 포함할 수 있다.
프로브(PB)는 전류 프로브(예를 들어, 집적 회로의 공급 단자(Vcc) 상에 배치된 저항기), 또는 신호 증폭기(AMP)에 의해 측정 디바이스에 연결된 전자기 프로브일 수 있다. 이와 달리, 전류 프로브가 전자기 프로브와 결합될 수 있다. 전자기 방사의 연구는 실제로 연산 시에 보안 집적 회로에 의해 방출된 전자기장이 소비된 전류의 측정치와 같은, 집적 회로 내에서의 비트 스위칭들에 대한 정보를 제공한다고 알리고 있다. 전자기 프로브의 이점은 분석될 필요가 있는 연산을 갖는 회로의 부분 근처에(예를 들어, 마이크로프로세서(PRC)의 코어 또는 암호 계산 코프로세서(CP1)의 코어 근처에) 배치될 수 있다는 것이다.
또한, 무접촉 집적 회로의 경우에, 전류 프로브는 판독기에 의해 방출된 자기장의, 집적 회로에 의한 흡수량을 측정하는 유도성 프로브로 대체될 수 있다. 이러한 유도성 프로브, 예를 들어, 안테나 코일 자체는 분석될 회로 구역들 근처에 배치된 전자기장 프로브와 결합될 수 있다.
따라서, 본원에서, 용어를 단순화하기 위해 사용된, 구 "전류 소비량"은 그의 시간에 따른 변화들이 집적 회로 내측 또는 직접 회로의 분석된 부분 내측에서의 이진 데이터의 스위칭들을 나타내는, 임의의 측정가능한 물리적 정량을 의미하며, 이 물리적 정량은 집적 회로의 단자들에서 또는 집적 회로의 분석된 부분 근처에서 측정될 수 있다. 또한, 물리적 정량은 관심 데이터 기간당 몇몇 포인트들을 수집하도록 충분하게 높은 샘플링 빈도로 샘플링되며, 이로써 실제로 트레이스당 만개에서 수십만개의 포인트들을 포함하는 트레이스들이 획득되지만, 트레이스당 수백만개 값들 또는 그 이상의 값들까지 수집하는 것도 고려될 수 있다.
본원은 또한 소프트웨어 프로그램 또는 애플리케이션을 테스트하는 방법에 관한 것이다. 이러한 경우에, 소프트웨어 프로그램은 테스트 시스템에 의해 직접적으로 실행되거나, 테스트 시스템에 의해 실행된 에뮬레이션 프로그램에 의해 실행될 수 있다. 이로써, 분석된 트레이스들은 예를 들어, 메모리를 액세스를 할 때에 메모리에 전송된 일련의 값들, 회로의 레지스터 내에서 취급되는 데이터, 또는 회로의 통신 인터페이스에 전송된 데이터일 수 있으며, 이러한 전송들은 테스트되는 소프트웨어 프로그램에 의해 제어된다.
테스트 방법의 일부 실시예들이 테스트될 회로가 이하에서 “비밀 데이터”로 지칭되는, 복구될 데이터에 적용되는 연산을 실행하는 동안에 테스트될 회로의 연산을 나타내는, 신호들 또는 디지털 값들의 시간에 따른 변화의 트레이스들에 대한 상세한 검토에 기초한다.
도 3은 테스트 시스템에 의해 획득될 수 있는, 시간에 따른 값들의 트레이스들 C0, C1, … Cix을 나타낸다. 이러한 트레이스들 각각은 테스트될 회로 또는 소프트웨어 프로그램에 의해 연산이 실행되게 함으로써 획득되었다. 트레이스들 C0, C1, … Cix에 대응하는 연산들은 대체적으로 모두가 상이하다. 이러한 연산들은, 예를 들어, 이들이 동일한 함수를 구별된 공지된 입력 데이터, 예를 들어, 암호화되거나 암호해독되거나 또는 서명될 메시지들 또는 검사될 시그니처, 또는 컴퓨팅될 HMAC(keyed-Hash Message Authentication Code)에 적용하는 것을 포함하기 때문에 상이하다. 이와 달리, 공지된 데이터는 그의 입력 데이터이기보다는 함수의 출력 데이터, 또는 이러한 함수의 입력 및 출력 데이터의 일부일 수 있다.
함수는 동일한 비밀 데이터 SD에, 그리고 입력 데이터 M에 적용되는 임의의 함수, 예를 들어, 대칭적 또는 비대칭적 암호화 또는 암호해독 연산, 또는 시그니처 연산, 또는 단지 비밀 데이터만큼의 모듈러 또는 비모듈러 승산(M x SD), 비밀 데이터와의 로직 XOR 함수(Exclusive OR)(M XOR SD), 비밀 데이터가 지수로서 사용되는 모듈러 지수 함수(MSD mod n, n은 알려짐) 또는 비밀 데이터가 모듈러스(modulus)로서 사용되는 모듈러 환원 함수(modular reduction function)(M mod SD)일 수 있다. 함수의 다른 실례는 DES 및 AES 암호 알고리즘들의 경우에서와 같이, 대체 테이블을 사용하여 XOR 연산의 결과를 프로세싱하는 것(SBOX[M XOR SD], SBOX는 대체 테이블임)을 포함한다. 보다 일반적으로, 이러한 함수는 해당 연산으로부터 생성된 값의 일부가 비밀 데이터 및 입력 데이터의 일부에 기초하여 컴퓨팅되게 해야 한다.
도 3의 실례에서, 트레이스들 C0, C1,... Ci,... Cix은 각기 입력(또는 출력) 데이터 M[0], M[1], … M[i], … M[ix]에 대응한다. 트레이스들 Ci 각각은 동일한 테스트 대상 회로에 대해 측정된 동일한 신호로부터 획득된 샘플들로 형성되거나, 또는 테스트 대상 회로가 데이터 M[i]를 조작할 때에 포획된, 상이한 신호들로부터의 샘플들을 포함할 수 있다.
도 4는 복구될 비밀 데이터에 그리고 또한 알려진 입력 데이터 M[0]... M[ix]에 적용된, 알려졌다고 가정된 암호화 연산 OPRK의 실행 동안에 테스트 시스템에 의해 수집된 값들을 프로세싱하는 단계들(S1 내지 S20)을 나타낸다. 일 실시예에 따라서, 이러한 테스트의 목적은 비밀 데이터의 값이 예를 들어, 도 3의 트레이스들을 형성하는 수집된 값들 내로 누설되는지를 결정하는 것이다. 프로세싱 유닛(PC)이 먼저 단계들(S1 내지 S9)을 실행한다.
단계(S1)에서, 테스트 시스템의 프로세싱 유닛(PC)는 테이블 CH 및 입력 데이터 M[0]...M[ix]에 대한 루프의 인덱스 i를 0으로 설정한다. 단계(S2)에서, 프로세싱 유닛(PC)은 테스트될 회로(MCT) 또는 소프트웨어 프로그램에 의한 연산 OPRK의 실행을 활성화시키며, 이러한 연산은 데이터 M[i]를 수신하며, 비밀 데이터가 회로(MCT) 또는 소프트웨어 프로그램에 의한 연산에 제공된다. 단계(S3)에서, 프로세싱 유닛(PC)은 트레이스 Ci를 구성하는 값들을 수집한다. 단계(S4)에서, 트레이스 Ci의 값들의 부분들 EC1i, EC2i가 선택되며, 오직 이러한 부분들만이 다음의 프로세싱 단계들에서 프로세싱된다(도 3). 도 4의 실례에서, 이러한 부분들 EC1i, EC2i가 단순성을 위해서, 부분 EC1i에 대해 인덱스들 k1 및 k1x, 및 부분 EC2i에 대해 인덱스들 k2 및 k2x에 대응하는 트레이스 Ci의 값들에 의해 그 경계가 정해진다. 실제로, 인덱스들 k1 및 k1x, 및 k2 및 k2x은 트레이스들 Ci 간에 변할 수 있다. 또한, 각 트레이스에서 이로써 선택된 값들은 반드시 연속적이지는 않으며 각 부분 EC1i, EC2i 내의 값들의 개수는 각 트레이스 Ci 내에서 서로 상이할 수 있으며, 트레이스 Ci 간에서 상이할 수 있으며, 이는 종래 기술의 사이드-채널 분석들과 대조적이다. 이로써, 예를 들어, 각 트레이스 Ci에 대한 오직 최대 또는 최소 국부적 값들만을 추출하는 것이 선택될 수 있다. 추출된 부분들 EC1i, EC2i이 전체 트레이스 Ci를 포함할 수 있다는 것도 또한 주목되어야 한다. 다음의 프로세싱에서, 이로써 추출된 데이터는 탐색할 비밀 데이터에 대한 정보의 일부를 포함하는 것으로 가정된다. 각 트레이스 Ci(i = 0 .. ix)는 테스트 대상 회로가 데이터 M[i]를 조작할 때와 동일한 시간에 획득된 상이한 신호들로부터의 샘플 값들을 포함할 수 있다. 이러한 경우에, 부분 EC1i은 예를 들어, 제 1 신호로부터 추출된 샘플 값들을 포함할 수 있으며, 부분 EC2i은 예를 들어, 제 2 신호로부터 추출된 샘플 값들을 포함할 수 있다.
단계 S5에서, 추출된 부분 EC1i 내의 각 포인트가 추출된 부분 EC2i 내의 각 포인트와 결합되어 다음의 단계들(도 3)에서 프로세싱될 포인트들의 세트 Wi를 형성한다. 일부 실례들에 따라서, 각 포인트 Wi[j]는 다음의 등식들 중 하나에 따라서 컴퓨팅될 수 있다:
Wi[j] = EC1i[m1] x EC2i[m2], (1)
Wi[j] = |EC1i[m1] EC2i[m2]|, (2)
Wi[j] = |EC1i[m1] - M(EC1i)| x |EC2i[m2] - M(EC2i)|, (3)
여기서, m1 및 m2는 m1에 대해서 k1 내지 k1x의 범위의 인덱스들 및 m2에 대해서 k2 내지 k2x의 범위의 인덱스들이며, j는 0 내지 (k1x-k1+1)(k2x-k2+1)-1의 범위의 인덱스이며, |x|는 값 x의 절대치를 나타내며, M(EC)는 포인트 세트 EC의 산술 평균 값을 나타낸다. 따라서, 각 포인트 세트 Wi는 추출된 부분 EC1i의 포인트와 추출된 부분 EC2i의 포인트의 각 가능한 결합에 대한 구별된 값 Wi[j]을 포함한다.
단계(S6)에서, 프로세싱 유닛(PC)은 루프 인덱스 j 및 테이블 HT을 0으로 설정한다. 단계(S7)에서, 프로세싱 유닛(PC)은 전사 함수 F1를 포인트 세트 Wi의 인덱스 j의 포인트 값 Wi[j]에 적용하며, 함수 F1에 의해 제공된 결과와 동일한 인덱스에 의해 지정된, 테이블 HT 내의 값을 1 만큼 증분시킨다. 단계(S8)에서, 인덱스 j가 1 만큼 증분된다. 단계(S9)에서, 인덱스 j가 그의 최대 값과 비교되어 포인트 세트 Wi의 모든 값들이 이로써 프로세싱되었는지가 결정된다. 등식 (1), 등식 (2) 및 등식 (3)에 따라서, 인덱스 j의 최대 값은 포인트 세트 Wj 내의 포인트들의 개수의 함수로서 컴퓨팅될 수 있다. 포인트 세트 Wj 내의 포인트들의 개수는 포인트 세트 EC1i 내의 포인트들의 개수와 포인트 세트 EC2i 내의 포인트들의 개수를 곱함으로써 컴퓨팅될 수 있는데, 즉 (k1x-k1+1)(k2x-k2+1)이다. 포인트 세트 Wi의 모든 값들이 프로세싱되었으면, 프로세싱 유닛(PC)은 단계들(S10 내지 S15)을 실행하고, 그렇지 않으면, 단계들(S7 내지 S9)을 다시 실행한다. 이러한 방식으로, 테이블 HT 내에 로딩된 포인트 세트 Wi의 값들은 함수 F1에 의해 리턴된(returned) 각 가능한 값의 발생 횟수를 특정하는 히스토그램의 형태를 가지며, 이로써 포인트 세트 Wi의 값들과 관련된 시간 특징은 테이블 HT 내에 포함되지 않는다: 테이블 HT의 콘텐츠는 세트의 값들이 수집된 순서가 결정되게 할 수 없다. 도 5는 함수 F1를 사용하여 컴퓨팅된 값들(x 축)의 발생 횟수(y 축)의 테이블 HT의 실례를 그래프의 형태로 나타낸다. 도 5의 실례에서, 함수 F1는 8-비트 인코딩된 값들로부터 컴퓨팅된 Hamming 가중치를 리턴한다.
단계(S10)에서, 프로세싱 유닛(PC)은 인덱스 g를 0으로 설정한다. 단계(S11)에서, 프로세싱 유닛(PC)은 연산 OPR을 데이터 M[i]에 그리고 인덱스 g와 동일하게 설정된, 결정될 비밀 데이터 SD의 부분에 적용한다. 연산 OPR(M, g)은 단계(S2)에서 실행된 연산 OPRK(M)(=OPR(M, SD))의 결과의 일부를 제공하도록 된다. 연산 OPR에 의해 제공된 결과는 값 VL을 공급하는 전사 함수 F2에 의해 프로세싱된다. 단계(S12)에서, 프로세싱 유닛(PC)은 인덱스 l를 0으로 설정한다. 단계(S13)에서, 프로세싱 유닛(PC)은 인덱스들 g, VL 및 l에 의해 지정된 위치에서, 3차원 테이블 CH 내에 저장된 값을, 데이터 M[i]에 대응하는 테이블 HT 내의 인덱스 l에서의 값 HT[l] 만큼 증분한다. 도 6은 인덱스들 g 및 VL에 의해 지정된 각 위치 CH[g,VL]가 단계(S12)에서 획득된 값 VL에 따라서 몇몇 테이블들 HT을 결합함으로써 획득된 테이블을 포함하는, 테이블 CH의 실례를 나타낸다. 단계(S14)에서, 인덱스 l는 1 만큼 증분된다. 단계(S15)에서, 인덱스 l는 함수 F1에 의해 제공된 가능한 구별된 값들의 개수를 고려한 그의 최대 값 lx과 비교된다. 인덱스 l가 그의 최대 값 lx과 같거나 작으면, 단계들(S13 내지 S15)이 다시 실행되고, 그렇지 않으면(인덱스 l가 그의 최대 값 lx보다 크면), 단계들(S16 및 S17)이 실행된다.
단계(S16)에서, 프로세싱 유닛(PC)은 인덱스 g를 1 만큼 증분한다. 단계(S17)에서, 프로세싱 유닛(PC)은 인덱스 g를 비밀 데이터의 고려된 부분에 대한 가능한 구별된 값들의 개수를 고려한, 그의 최대 값 gx과 비교한다. 인덱스 g가 최대 값 gx보다 작거나 같으면, 단계(S11) 내지 단계(S17)가 새롭게 반복되고, 그렇지 않으면(인덱스 g가 그의 최대 값 gx보다 크면), 단계들(S18 및 S19)이 반복된다. 단계(S18)에서, 프로세싱 유닛(PC)은 인덱스 i를 1 만큼 증분시켜서 다른 트레이스 Ci를 프로세싱한다. 단계(S19)에서, 프로세싱 유닛(PC)은 인덱스 i를 생성된 트레이스들 Ci의 개수와 대응하는 그의 최대 값 ix와 비교한다. 인덱스 i가 최대 값 ix과 같거나 작으면, 단계들(S2 내지 S19)이 다시 실행되고, 그렇지 않으면(인덱스 i가 그의 최대 값 ix보다 크면), 단계(S20)가 실행된다. 단계(S20)에서, 테이블 CH 내의 위치[g,VL]에 포함된 누계의 각 테이블은 다음의 값들을 포함한다:
Figure pat00001
(4)
위의 합산에서 고려될 데이터 M[i]는 F2(OPR(M[i], g))= VL이 되도록 된다.
단계(S20)에서, 프로세싱 유닛(PC)은 인덱스 g의 값이 탐색될 비밀 데이터의 부분에 대응하는지를 결정하고자 테이블 CH의 통계적 분석을 수행한다. 이를 위해서, 비밀 데이터의 누설로부터 발생하는 정보가 테이블 CH의 열 g의 위치들에서 누적되는 반면, 비밀 데이터와는 무관한 정보가 테이블 CH 내에서 랜덤하게 또는 균일하게 분포한다고 고려된다. 결과적으로, 테이블 CH의 인덱스 g의 열이 이러한 테이블의 나머지 부분의 값들보다 높은 값들을 포함하면, 테이블 CH의 이러한 열에서의 인덱스 g의 값은 탐색된 비밀 데이터 SD의 부분의 값과 대응한다. 이러한 경우에, 비밀 데이터 SD가 트레이스들 Ci을 형성하는 수집된 데이터 내로 누설되었다고 간주될 수 있다.
함수 F1 및 함수 F2는 테스트될 회로 또는 소프트웨어 프로그램의 누설 패턴에 대응하도록 선택될 수 있다. 따라서, 함수 F1 및 함수 F2는 서로 동일 또는 상이할 수 있으며, 회로에 의해 조작된 비밀 데이터를 복구할 가능성을 최대화하도록 선택될 수 있다. 예를 들어, 함수 F1 및 함수 F2는 다음의 함수들 중 하나일 수 있다:
- 항등 함수(identity function),
- 예를 들어, x가 8 비트로 인코딩되는 때에 값 0 내지 값 8인, Hamming 가중치에 대응하는 값으로 환원될 수 있는 결과적인 값을 갖는, 함수(예를 들어, F(x)= a·x + b의 형태임),
- 예를 들어, 이진 코딩된 값 1에서 비트 수인, 함수의 입력에 제공된 값의 Hamming 가중치를 컴퓨팅하는 함수, 또는
- 예를 들어, 이러한 2 개의 값들 중 1에서 비트 수들 간의 차인, 다른 값과의 Hamming 거리를 컴퓨팅하는 함수.
함수 F1 및 함수 F2 중의 선택은 비밀 데이터의 고려된 부분을 결정하도록 수행될 테이블 CH의 통계적 프로세싱의 복잡도, 및 탐색된 비밀 데이터의 부분의 값을 결정하기 위한 통계적 프로세싱의 성공 양자를 영향을 준다는 것이 주목될 수 있다.
단계들(S1 내지 S20)을 실행함으로써 탐색된 비밀 데이터의 부분은 예를 들어, 8 또는 16 비트로 규정될 수 있다. 8 비트의 경우에, 인덱스 g는 0 내지 255(또는 1 내지 256=28) 간의 모든 값들에 연속적으로 할당된다. g의 값들이 테스트되는 순서는 테스트의 결과에 있어서 중요하지 않다는 것이 주목될 수 있다. 탐색된 비밀 데이터의 부분은 또한 16, 32 또는 64 비트와 같은, 보다 넓은 워드로 규정될 수도 있다.
비밀 데이터 SD의 다른 부분은 비밀 데이터의 이전에 결정된 부분들의 값들을 사용하여서 단계들(S10 내지 S20)을 실행함으로써, 그리고 비밀 데이터의 다른 부분을 인덱스 g의 상이한 가능한 값들로 되게 함으로써 결정될 수 있다. 이를 위해서, 트레이스들 Ci의 동일한 부분들 EC1i, EC2i 또는 이러한 트레이스들의 다른 부분들이 단계(S4)에서 추출될 수 있다.
트레이스들 Ci를 형성하는 값 세트들은 도 4에서 다른 단계들을 실행하기 이전에 수집될 수 있다(단계들(S2 및 S3))는 것이 주목될 수 있다. 또한, 단계들(S10 내지 S20)을 실행하기 이전에, 테이블 HT이 트레이스들 Ci 각각에 대해 구성될 수 있다.
비밀 데이터 SD 및 입력 데이터 M[i]에 적용된 연산 OPR/OPRK은 다음의 연산들 중 하나 또는 이들의 조합일 수 있다:
- 대칭적 또는 비대칭적 암호화 또는 암호해독 연산, 여기서 비밀 데이터 SD는 암호화 또는 복호화 키임,
- 비밀 데이터 SD를 사용하는 시그니처 연산(signature operation),
- 비밀 데이터만큼의 모듈로 또는 비-모듈러 승산(M[i] x SD),
- 비밀 데이터와의 XOR 로직 연산(Exclusive OR)(M[i] XOR SD),
- 모듈러 지수 연산, 여기서 비밀 데이터 SD는 지수로서 사용됨(M[i]SD mod n, n은 알려짐),
- 모듈러 환원 연산, 여기서 비밀 데이터 SD는 모듈러스로서 사용됨(M[i] mod SD),
- 입력 데이터를 사용하여 대체 테이블 내에 선택된 값에 의한 대체 연산(SBOX[M[i]], SBOX는 대체 테이블임), 및
- 비밀 데이터에 적용된 XOR 로직 연산과 XOR 연산의 결과를 사용하여 대체 테이블 내에 선택된 값으로 상기 로직 연산의 결과를 대체하는 대체 연산을 결합한 연산(SBOX[M[i] XOR SD]).
보다 일반적으로, 이러한 연산은 연산의 최종 값의 부분이 비밀 데이터 및 입력 데이터의 부분에만 기초하여 컴퓨팅되게 하여야 한다.
비밀 데이터에 대한 정보에 대응하는 누적된 값들을 강조하기 위해서, 모든 테이블들 HT의 콘텐츠들은 함수 F1에 의해 리턴된 각 가능한 값에 대한 누적 발생 횟수의 테이블을 획득하도록 서로 가산될 수 있다. 누계들의 이러한 테이블의 값들은 테이블의 위치들 CH[g,VL]에서 누적된 모든 테이블들로부터 감산된다. 따라서, 도 4의 단계들의 시퀀스는 도 7에서 표현된 시퀀스에 따라서 수정될 수 있다. 도 7에서 도시된 단계들은 상술한 단계들(S10 내지 S20), 및 추가 단계들(S21, S22 및 S23)을 포함한다. 단계(S10) 이전에 수행되는 단계(S21)에서, 인덱스 i, 1차원 테이블 MHT 및 2차원 테이블 CPT은 0으로 설정된다. 단계(S10)에서, 2차원 테이블 HT[0...ix,l]은 모든 트레이스들 Ci에 대해 단계(S7)에서 생성된 모든 테이블들을 포함할 시에 이전에 채워졌다. 단계(S22)는 인덱스 l에 의해 제어된 루프(단계(S13) 내지 단계(S15)) 내에 삽입되며, 이로써 예를 들어, 단계(S13) 이후에, 함수 F1에 의해 제공된 값들 중 하나를 선택하는 것이 가능하다. 단계(S22)에서, 프로세싱 유닛(PC)은 인덱스 l에 지정된 위치에서 누계들 MHT의 테이블 내에 각 값 HT[i,l]을 누적시킨다. 이러한 방식으로, 프로세싱의 종료 시에, 테이블 MHT은 트레이스들 Ci 각각에 대해 획득된 인덱스 i의 모든 값들 HT[i,l]의 합을 포함할 것이다. 단계(S23)는 인덱스 i에 의해 제어된 루프의 각 반복 시에 1 회 실행되며, 이로써 예를 들어, 단계(S15) 이후에 트레이스들 Ci 중 하나를 선택하는 것이 가능하다. 단계(S23)는 테이블 CH의 각 위치 CH[g,VL]에서 누적된 테이블들 HT[i,l]의 수가 카운트되게 한다. 이러한 카운트 결과는 테이블 CPT 내에 저장된다.
도 8은 탐색된 비밀 데이터 SD의 부분의 값을 결정하고자 하는 테이블 CH의 통계적 프로세싱의 실례의 단계들(S31 내지 S43)을 나타낸다. 단계들(S31 내지 S37)은 연속적으로 실행된다. 단계(S31)에서, 인덱스 VL는 0로 설정되며, 테이블 TT의 모든 위치들은 1로 설정된다. 단계(S32)에서, 인덱스 g 및 테이블 IT의 모든 위치들은 0으로 설정된다. 단계(S33)에서, 인덱스 l은 0으로 설정된다. 단계(S34)에서, 변수 T는 인덱스들 g, VL, 및 l에 의해 선택된, 테이블 CH 내에 포함된 값 CH[g,VL,l]을 수신하고, 이러한 값은 테이블 CPT 내의 위치 CPT[g,VL]에 위치한 카운트 값으로 나누어진다. 단계(S35)에서, 테이블 IT 내의 위치 g에서의 값 IT[g]은 인덱스들 g 및 VL에 의해 지정된, 테이블 MHT 내에 저장된 값 MHT[g,VL]과 변수 T의 값 간의 차를 트레이스들 Ci의 총수 ix로 나눈 결과의 제곱만큼 증분된다. 단계(S36)에서, 인덱스 l는 1 만큼 증분된다. 단계(S37)에서, 인덱스 l는 그의 최대 값 lx과 비교된다. 인덱스 l가 그의 최대 값 lx에 도달한 경우에, 단계들(S38 내지 S40)이 실행되고, 그렇지 않으면, 단계(S34)로부터의 새로운 반복이 실행된다.
단계(S38)에서, 테이블 TT 내의 인덱스 g에 의해 지정된 값 TT[g]이 lx 회 실행된, 단계들(S35 내지 S37)에서 컴퓨팅된 값 IT[g] 만큼 승산됨으로써 업데이트된다. 단계(S39)에서, 인덱스 g는 1 만큼 증분된다. 단계(S40)에서, 인덱스 g는 그의 최대 값 gx과 비교된다. 인덱스 g가 그의 최대 값 gx보다 크면, 단계들(S41 및 S42)이 실행되며, 그렇지 않으면, 단계(S33)로부터의 새로운 반복이 실행된다. 단계(S41)에서, 인덱스 VL이 1 만큼 증분된다. 단계(S42)에서, 인덱스 VL가 그의 최대 값 VLx과 비교된다. 인덱스 VL가 그의 최대 값 VLx보다 크면, 단계(S43)가 실행되고, 그렇지 않으면, 단계(S32)로부터의 새로운 반복이 실행된다. 단계(S43)에서, 테이블 TT은 통계적 분석의 결과로서 리턴된다.
따라서, 단계들(S32 내지 S42)을 포함하는 프로세싱 루프의 마지막 반복 시에, 테이블들 IT 및 TT은 다음의 값들을 포함한다:
Figure pat00002
(5)
Figure pat00003
(6),
여기서,
Figure pat00004
,
Figure pat00005
여기서, 연산자 "=="는 상등이 참이면 1과 동일하고 상등이 거짓이면 0과 동일한 상등 테스트(equality test)를 나타내며, 테이블 IT은 인덱스 VL의 각 새로운 값에 대해, 단계(S32)에서 0으로 설정되고, 단계(S35)에서 로딩된다.
따라서, CPT[g,VL]는 조건(F2(OPR(M[i], g))== VL)이 참인 횟수를 나타낸다. 비밀 데이터 SD가 연산 OPRK을 실행할 시에 누설되었으면, 테이블 TT의 위치는 이러한 테이블 내에 저장된 다른 값들보다 매우 높은 값을 포함한다. 그 결과는 탐색된 비밀 데이터 SD의 부분이 테이블 TT 내의 최고 값의 인덱스 g와 동일하다는 것이다.
테이블 IT의 값들이 등식(6)에 대응하는 단계(S38)에서 승산되기보다는 가산될 수 있다는 것이 주목될 수 있다. 승산 연산 구현은 단지 테이블 TT의 값들 간의 차들이 증가되게 하며, 이로써 탐색된 비밀 데이터의 부분에 대응하는 최고 값이 보다 양호하게 강조되게 한다. 로그 함수를 테이블 IT의 값들에 적용하고 획득된 로그 값들의, 테이블 TT 내에서의 가산 누적(additive accumulation)을 수행하는 것을 고려하는 것이 또한 가능하다. 테이블들 IT의 값들이 가산되면, 이들은 다음과 같이 가중화될 수 있다:
Figure pat00006
(7).
도 9는 탐색된 비밀 데이터 SD의 부분의 값을 결정하고자 시도하는 테이블 CH의 통계적 프로세싱의 다른 실례의 단계들(S51 내지 S67)을 나타낸다. 이러한 프로세싱은 샤론 엔트로피 함수에 기초한다. 단계들(S51 내지 S56)은 연속적으로 실행된다. 단계(S51)에서, 인덱스 g가 0으로 설정되며, 테이블 TT의 모든 위치들이 0으로 설정된다. 단계(S52)에서, 인덱스 VL가 0으로 설정된다. 단계(S53)에서, 인덱스 l 및 변수 SXY가 0으로 설정된다. 단계(S54)에서, 변수 SXY가 인덱스들 g, VL, 및 l에 의해, 테이블 CH 내에 선택된 값 CH[g,VL,l] 만큼 증분된다. 단계(S55)에서, 인덱스 l가 1 만큼 증분된다. 단계(S56)에서, 인덱스 l가 그의 최대 값 lx과 비교된다. 인덱스 l가 그의 최대 값 lx에 도달하였으면, 단계들(S57 내지 S61)이 실행되며, 그렇지 않으면, 단계(S54) 내지 단계(S56)의 새로운 반복이 실행된다. 단계(S57)에서, 인덱스 l 및 변수 PXY가 0으로 설정된다. 단계(S58)에서, 변수 VXY는 인덱스들 g, VL, 및 l에 의해 테이블 CH 내에 선택된 값 CH[g,VL,l]을 수신하며, 이러한 값은 단계들(S54 내지 S56)의 반복들에 의해 컴퓨팅된 변수 SYX로 나누어진다. 단계(S59)에서, 변수 PXY는 변수 VXY의 로그(예를 들어, 베이스 2)와 변수 VXY 간의 곱만큼 증분된다. 단계(S60)에서, 인덱스 l가 1 만큼 증분된다. 단계(S61)에서, 인덱스 l가 그의 최대 값 lx과 비교된다. 인덱스 l가 그의 최대 값 lx에 도달하였으면, 단계들(S62 내지 S64)이 실행되며, 그렇지 않으면, 단계(S58 내지 단계(S61)의 새로운 반복이 실행된다.
단계(S62)에서, 테이블 TT 내의 인덱스 g에 의해 지정된 값 TT[g]이 이 값으로부터, 변수 PXY와 트레이스들 Ci의 수 ix로 나누어진 값 CPT[g,VL] 간의 곱을 감산함으로써 업데이트되며, 상기 값 CPT[g,VL]은 단계(S22)에서 채워진 테이블 CPT 내에서 인덱스들 g 및 VL에 의해 지정된다. 단계(S63)에서, 인덱스 VL가 1 만큼 증분된다. 단계(S64)에서, 인덱스 VL가 그의 최대 값 VLx과 비교된다. 인덱스 VL가 그의 최대 값 VLx보다 크면, 단계들(S65 및 S66)이 실행되며, 그렇지 않으면, 단계(S53)로부터의 새로운 반복이 실행된다. 단계(S65)에서, 인덱스 g가 1 만큼 증분된다. 단계(S66)에서, 인덱스 g가 그의 최대 값 gx과 비교된다. 인덱스 g가 그의 최대 값 gx보다 크면, 단계(S67)가 실행되고, 그렇지 않으면, 단계(S52)로부터의 새로운 반복이 실행된다. 단계(S67)에서, 테이블 TT이 통계적 분석의 결과로서 리턴된다.
따라서, 단계(S66) 후의, 마지막 반복 시에, 테이블 TT은 다음의 값들을 포함한다:
Figure pat00007
(8)
여기서,
Figure pat00008
는 인덱스들 g 및 VL의 값들 각각에 대해서 컴퓨팅되며, 인덱스 g의 각 값은 탐색된 키의 부분의 가능한 값을 나타낸다. 비밀 데이터 SD가 연산 OPRK을 프로세싱할 때에 누설되었으면, 테이블 TT의 위치는 이러한 테이블에 저장된 다른 값들보다 매우 높은 값을 포함한다. 그 결과는 탐색된 비밀 데이터 SD의 부분이 테이블 TT 내의 최고 값의 인덱스 g와 동일하다는 것이다.
도 10 및 도 11은 인덱스 g의 함수로서의 테이블 TT의 콘텐츠의 실례를 곡선들 CC1, CC2의 형태로 나타낸다. 곡선 CC1은 도 8의 단계들을 실행함으로써 획득되었으며, 곡선 CC2는 도 9의 단계들을 실행함으로써 획득되었다. 도 10 및 도 11의 실례에서, 인덱스 g는 1 바이트의 길이를 가지며(이로써, 0 내지 255 간에서 변함), 곡선들 CC1 및 CC2은 500,000의 차수의 개수의 트레이스들 Ci로부터 획득되었다. 곡선들 CC1 및 CC2은 테이블 TT 내에 포함된 다른 값들과 비교하여 값 g = 168에서 명확한 피크를 갖는다. 곡선 CC1에서의 피크 값은 테이블 TT의 다른 값들의 약 30 배보다 크다. 곡선 CC2에서, 피크 값은 테이블 TT의 다른 값들의 3 배보다 크다. 테이블 CH의 통계적 프로세싱에 따라서, 분석된 트레이스들 Ci의 개수를 증가시킴으로써, 가장 근사 값의 0.9배보다 큰 값으로 유지되는 피크 값이 획득되면, 탐색된 비밀 데이터의 부분이 누설된다고 고려될 수 있다.
회로들 예를 들어, 집적 회로들이 알려진 자격 또는 검증 절차를 성공적으로 통과할 수 있도록, 이러한 회로들의 설계자들은 대응 조치들을 제공하는데, 이러한 대응 조치들 중 가장 통상적인 것은 시변수(time variable)를 도입하는 것을 수반한다. 테이블들 HT 내의 값들의 계산은 시간 측면이 분석된 값들로부터 제거되게 하고 분석된 값들의 상이한 트레이스들을 동기화시켜야 하는 것 또는 시간상 정렬시켜야 하는 것을 피한다. 탐색된 비밀 데이터에 대한 정보가 분석된 데이터 내에 있다면, 이전에 기술한 테스트 방법은 비밀 데이터의 전부 또는 일부가 결정되게 할 수 있다. 따라서, 이전에 기술된 테스트 방법은 회로에 의해 조작된 비밀 데이터가 회로의 외측으로부터 획득될 수 있는 신호들 내로 누설되는지의 여부를 검출할 수 있다.
이전에 기술된 테스트 방법은 각 트레이스 Ci의 2 개의 부분들 EC1i, EC2i을 결합하기 때문에, 차수 2를 갖는다. 이전에 기술된 테스트 방법은 트레이스들 Ci 각각 내에서 n 개의 부분들 EC1i 내지 ECni을 선택하고, 다음의 등식에 따라서, 각 트레이스 Ci의 각 부분 ECki(k는 1 내지 n임)의 일 값을 함께 결합한 각 가능한 상이한 결합에 본 테스트 방법을 적용함으로써 2보다 큰 n인 n 차에 적용될 수 있다:
Wi[j] =
Figure pat00009
, (9)
Wi[j] =
Figure pat00010
, (10)
여기서,
Figure pat00011
Figure pat00012
내지
Figure pat00013
의 범위를 가지며,
j는 0 내지
Figure pat00014
의 범위를 가짐.

Claims (16)

  1. 복수의 값 세트들(Ci)을 취득하는 단계로서, 각 값 세트는 테스트 대상 회로(CT)가 복구될 동일한 데이터(SD)에 적용되는 구별된 암호 연산들의 연산 세트 중 하나의 연산(OPRK)을 실행하는 때에 상기 테스트 대상 회로(CT)의 활성도(activity)와 관련된, 물리적 정량 또는 로직 신호들의 값들을 포함하는, 상기 취득하는 단계;
    각 값 세트(Ci)의 값들의 적어도 2 개의 서브세트들(EC1i, EC2i)을 선택하는 단계;
    각 값 세트에 대해, 각 값 서브세트 내의 일 값을 함께 결합한 결합 값들(Wi)을 컴퓨팅한 단계;
    각 값 세트에 대해, 상기 값 세트의 상기 결합 값들(Wi)에 적용된 제 1 전사 함수(surjective function)(F1)에 의해 변환된 값들의 발생 횟수(HT)를 프로세싱 유닛(processing unit)(PC)에 의해 카운팅하는 단계;
    상기 연산 세트의 각 연산, 및 상기 복구될 데이터의 부분의 가능한 값들(g) 각각에 대해, 상기 프로세싱 유닛에 의해, 부분적 연산 결과를 컴퓨팅하는 단계;
    상기 프로세싱 유닛에 의해, 누적 발생 횟수 세트들(CH)을 컴퓨팅하는 단계로서, 상기 누적 발생 횟수 세트들은 상기 연산 세트의 연산들에 대응하는 발생 횟수 세트들을 가산함으로써 획득되며, 상기 연산 세트의 연산들은 상기 복구될 데이터의 부분의 가능한 값들 중 동일한 값 또는 균등한 값에 적용되는 때에, 제 2 전사 함수(F2)의 적용으로부터 기인되는 동일한 변환된 값(VL)을 갖는 부분적 연산 결과를 제공하는, 상기 누적 발생 횟수 세트들을 컴퓨팅하는 단계; 및
    상기 복구될 데이터가 상기 값 세트들 내로 누설되었으면, 상기 복구될 데이터가 상기 복구될 데이터의 부분의 값에 대응하는 누적 발생 횟수 세트들 내에서 발견된다는 것을 알면서, 상기 복구될 데이터의 부분을 결정하도록 상기 프로세싱 유닛에 의해 상기 누적 발생 횟수 세트들을 분석하는 단계;를 포함하는, 테스트 방법.
  2. 제 1 항에 있어서,
    상기 값 세트(Ci)에 대한 결합 값들은,
    각 서브세트(EC1i, EC2i)의 각 값을 함께 승산하거나,
    제 1 서브세트의 각 값과 제 2 서브세트의 각 값 간의 양의 차들(positive differences)을 컴퓨팅하거나,
    각 서브세트의 각 값과 상기 서브세트 내의 값들의 평균 값 간의 차들(gaps)을 함께 승산함으로써,
    획득되는, 테스트 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    복수의 구별된 명령들(OPRK)을 상기 테스트 대상 회로에 전송하는 단계로서, 각 명령은 상기 복구될 데이터(SD)에 적용된, 상기 연산 세트의 연산들 중 하나의 연산의 상기 테스트 대상 회로에 의한 실행을 트리거하는(triggering), 상기 전송하는 단계; 및
    상기 테스트 대상 회로에 의한 상기 하나의 연산의 실행 동안에, 상기 값 세트들(Ci) 중 하나의 세트의 값들을 측정 디바이스(MD)에 의해 수집하는 단계를 포함하는, 테스트 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    각 값 세트(Ci)의 서브세트들(EC1i, EC2i)은 각각의 구별된 신호들의 측정치들을 포함하는, 테스트 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 값 세트들(Ci)은,
    상기 테스트 대상 회로(CT)의 전류 소비 측정치들, 및/또는
    상기 테스트 대상 회로(CT)에 의해 방출된 전자기 방사의 측정치들, 및/또는
    상기 테스트 대상 회로(CT) 주변에 존재하는 자기장의 흡수 측정치들, 및/또는
    상기 테스트 대상 회로(CT)에서 수집된 로직 신호들 또는 디지털 값들을 포함하는, 테스트 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 제 1 함수(F1) 및 상기 제 2 전사 함수(F2) 각각은,
    항등 함수(identity function),
    후속하여 Hamming 가중치에 대응하는 값으로 환원되는 결과 값을 제공하는 함수,
    함수가 적용된 값의 Hamming 가중치를 제공하는 함수, 또는
    함수가 적용된 값과 이에 선행하는 값 간의 Hamming 거리를 제공하는 함수,
    중 하나인, 테스트 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 분석하는 단계가 상기 복구될 데이터의 부분을 결정하면, 상기 테스트 대상 회로(CT) 또는 상기 테스트 대상 회로에 의해 실행된 프로그램을 제거하는 단계를 포함하는, 테스트 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 복구될 데이터(SD)의 부분의 가능한 값들(g) 각각에 대한 연산 결과를 컴퓨팅하는 단계, 상기 누적 발생 횟수들(CH)을 컴퓨팅하는 단계, 및 상기 누적 발생 횟수들을 분석하는 단계가 상기 복구될 데이터의 이전에 결정된 부분 및 상기 복구될 데이터의 다른 부분에 대해 수행되는, 테스트 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    각 값 세트(Ci) 내의 상기 선택된 서브세트들(EC1i, EC2i)은,
    상기 값 세트의 연속적인 값들, 및/또는
    상기 값 세트의 비-연속적인 값들, 및/또는
    상기 값 세트의 국부적 극값들, 및/또는
    상기 값 세트의 모든 값들을 포함하는, 테스트 방법.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 연산 세트의 연산들(OPRK)은 상기 복구될 데이터(SD)에 그리고 입력 데이터(M[i])의 세트 중 하나의 입력 데이터에 단일 연산(OPR)을 적용하는 것을 포함하며, 상기 단일 연산은,
    대칭적 또는 비대칭적 암호화 또는 복호화 연산,
    시그니처 연산,
    상기 복구될 데이터만큼의 모듈러 또는 비-모듈러 승산(non-modular multiplication),
    상기 복구될 데이터와의 로직 Exclusive OR 연산,
    상기 복구될 데이터가 지수로서 사용되는 모듈러 지수 연산,
    상기 복구될 데이터가 모듈러스로서 사용되는 모듈러 환원 연산(modular reduction operation),
    상기 입력 값을 사용하여 대체 테이블 내에 선택된 값에 의한 대체 연산, 및
    상기 복구될 데이터와의 로직 Exclusive OR 연산 및 상기 로직 Exclusive OR 연산의 결과를 사용하여 대체 테이블 내에 선택된 값으로 상기 로직 Exclusive OR 연산의 결과를 대체하는 대체 연산을 조합한 연산,
    중 적어도 하나를 포함하는, 테스트 방법.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 누적 발생 횟수 세트들을 분석하는 단계는,
    각 누적 발생 횟수(CH)에 대해, 상기 누적 발생 횟수에 누적된 발생 횟수들의 대응하는 개수(CPT)로 상기 누적 발생 횟수를 나눔으로써 정규화된 누적 발생 횟수(CH/CPT)를 컴퓨팅하는 단계,
    상기 복구될 데이터의 부분의 각 가능한 값(g) 및 상기 변환된 부분적 결과의 각 가능한 값(VL)에 대해, 연산들의 횟수(ix)로 나누어진, 상기 누적 발생 횟수들의 평균 값(MHT)과, 상기 복구될 데이터의 부분의 가능한 값 및 상기 변환된 부분적 결과의 가능한 값에 대응하는 각 정규화된 누적 발생 횟수 간의 차들의 제곱의 합(IT)을 컴퓨팅하는 단계,
    상기 복구될 데이터의 부분의 각 가능한 값에 대해, 상기 변환된 부분적 결과들의 가능한 값들에 대응하는 차 합들의 누계(TT)를 컴퓨팅하는 단계; 및
    상기 차 합들의 누계들을 서로 비교하고, 상기 복구될 데이터의 부분의 가능한 값에 대한 차 합들의 누계들 중 하나가 차 합들의 다른 누계들보다 큰지를 결정하는 단계를 포함하는, 테스트 방법.
  12. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 누적 발생 횟수들을 분석하는 단계는,
    상기 복구될 데이터의 부분의 각 가능한 값(g) 및 상기 변환된 부분적 결과의 각 가능한 값(VL)에 대해, 누적 발생 횟수들의 누계(SXY)를 컴퓨팅하는 단계;
    각 누적 발생 횟수들(CH)에 대해, 누적 발생 횟수들의 대응하는 누계로 발생 횟수들의 합을 나눔으로써 정규화된 누계(VXY)를 컴퓨팅하고 상기 정규화된 누계의 로그와 상기 정규화된 누계의 곱(product)을 컴퓨팅하는 단계,
    상기 복구될 데이터의 부분의 각 가능한 값 및 상기 변환된 부분적 결과의 각 가능한 값에 대해, 상기 복구될 데이터의 부분의 각 가능한 값 및 상기 변환된 부분적 결과의 가능한 값에 대응하는 상기 곱(product)들의 합(PXY)을 컴퓨팅하는 단계, 및
    상기 복구될 데이터의 부분의 각 가능한 값에 대해, 상기 변환된 부분적 결과들의 가능한 값들에 대응하는 곱 합들(product sums)의 누계(TT)를 컴퓨팅하는 단계로서, 각 곱 합은 발생 횟수들의 합들의 대응하는 개수(CPT) 만큼 승산되는, 상기 컴퓨팅하는 단계, 및
    상기 곱 합들의 누계들을 서로 비교하고, 상기 복구될 데이터의 부분의 가능한 값에 대한 곱 합들의 누계들 중 하나가 곱 합들의 다른 누계들보다 큰지를 검출하는 단계를 포함하는, 테스트 방법.
  13. 회로를 테스트하기 위한 시스템으로서,
    복수의 값 세트들(Ci)을 취득하도록 구성된 측정 디바이스(MD)로서, 각 값 세트는 테스트 대상 회로(CT)가 복구될 동일한 데이터(SD)에 적용되는 구별된 암호 연산들의 연산 세트 중 하나의 연산(OPRK)을 실행하는 동안에 상기 테스트 대상 회로(CT)의 활성도와 관련된, 물리적 정량 또는 로직 신호들의 값들을 포함하는, 상기 측정 디바이스(MD); 및
    제 1 항 내지 제 12 항 중 어느 한 항에 따른 방법을 구현하도록 구성된 프로세싱 유닛(PC)를 포함하는, 회로 테스트 시스템.
  14. 제 13 항에 있어서,
    상기 측정 디바이스(MD)에 연결되어 상기 테스트 대상 회로(CT)의 활성도와 관련된 트레이스들(Ci)을 획득하는 측정 프로브(PB)를 포함하는, 회로 테스트 시스템.
  15. 제 13 항 또는 제 14 항에 있어서,
    테스트될 애플리케이션을 실행하는 에뮬레이터를 포함하는, 회로 테스트 시스템.
  16. 컴퓨터의 내부 메모리 내에 로딩가능한 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터에 의해 실행될 때, 제 1 항 내지 제 12 항 중 어느 한 항에 따른 방법의 단계들을 실행하도록 하는 코드 부분들을 포함하는, 컴퓨터 프로그램 제품.
KR1020170023794A 2016-02-22 2017-02-22 2차 이상의 부채널 분석에 대한 회로의 저항력을 테스트하는 방법 KR20170098732A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
FR1651443A FR3048086B1 (fr) 2016-02-22 2016-02-22 Procede de test de la resistance d'un circuit a une analyse par canaux auxiliaires
FR1651443 2016-02-22
FR1651445 2016-02-22
FR1651444A FR3048096A1 (fr) 2016-02-22 2016-02-22 Procede de protection d'un circuit contre une analyse par canaux auxiliaires
FR1651445A FR3048097A1 (fr) 2016-02-22 2016-02-22 Procede de protection d'un circuit contre une analyse par canaux auxiliaires
FR1651444 2016-02-22

Publications (1)

Publication Number Publication Date
KR20170098732A true KR20170098732A (ko) 2017-08-30

Family

ID=57995161

Family Applications (6)

Application Number Title Priority Date Filing Date
KR1020170023794A KR20170098732A (ko) 2016-02-22 2017-02-22 2차 이상의 부채널 분석에 대한 회로의 저항력을 테스트하는 방법
KR1020170023803A KR20170098733A (ko) 2016-02-22 2017-02-22 2차 이상의 부채널 분석에 대한 회로의 저항력을 테스트하는 방법
KR1020170023789A KR20170098729A (ko) 2016-02-22 2017-02-22 부채널 분석에 대한 회로의 저항력을 테스트하는 방법
KR1020170023805A KR20170098734A (ko) 2016-02-22 2017-02-22 부채널 분석에 대한 회로의 저항력을 테스트하는 방법
KR1020170023792A KR20170098730A (ko) 2016-02-22 2017-02-22 부채널 분석으로부터 회로를 보호하는 방법
KR1020170023793A KR20170098731A (ko) 2016-02-22 2017-02-22 부채널 분석으로부터 회로를 보호하는 방법

Family Applications After (5)

Application Number Title Priority Date Filing Date
KR1020170023803A KR20170098733A (ko) 2016-02-22 2017-02-22 2차 이상의 부채널 분석에 대한 회로의 저항력을 테스트하는 방법
KR1020170023789A KR20170098729A (ko) 2016-02-22 2017-02-22 부채널 분석에 대한 회로의 저항력을 테스트하는 방법
KR1020170023805A KR20170098734A (ko) 2016-02-22 2017-02-22 부채널 분석에 대한 회로의 저항력을 테스트하는 방법
KR1020170023792A KR20170098730A (ko) 2016-02-22 2017-02-22 부채널 분석으로부터 회로를 보호하는 방법
KR1020170023793A KR20170098731A (ko) 2016-02-22 2017-02-22 부채널 분석으로부터 회로를 보호하는 방법

Country Status (4)

Country Link
US (6) US10419206B2 (ko)
EP (6) EP3217307B1 (ko)
KR (6) KR20170098732A (ko)
CN (6) CN107103229A (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL2015745B1 (en) * 2015-11-09 2017-05-26 Koninklijke Philips Nv A cryptographic device arranged to compute a target block cipher.
EP3217307B1 (en) * 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis of second order or more
EP3264311B1 (en) 2016-06-28 2021-01-13 Eshard A protection method and device against a side-channel analysis
CN107547194A (zh) 2016-06-28 2018-01-05 埃沙尔公司 免受侧信道分析的保护方法和设备
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
FR3072211B1 (fr) * 2017-10-11 2021-12-10 St Microelectronics Rousset Procede de detection d'une injection de fautes et d'un amincissement du substrat dans un circuit integre, et circuit integre associe
EP3502903A1 (en) 2017-12-20 2019-06-26 Eshard Method of testing resistance of a software program to a side-channel analysis
EP3729317B1 (en) * 2017-12-22 2021-10-20 Koninklijke Philips N.V. A computer-implemented method of applying a first function to each data element in a data set, and a worker node for implementing the same
FR3078463A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et dispositif de realisation d'operations en table de substitution
US11218291B2 (en) * 2018-02-26 2022-01-04 Stmicroelectronics (Rousset) Sas Method and circuit for performing a substitution operation
FR3078464A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et circuit de mise en oeuvre d'une table de substitution
EP3557813A1 (en) * 2018-04-17 2019-10-23 Gemalto Sa Method secured against side-channel attacks performing an arithmetic operation of a cryptographic algorithm mixing boolean and arithmetic operations
CN108646072B (zh) * 2018-05-16 2019-12-27 电子科技大学 一种基于汉明距的触发产生装置
DE102018130177A1 (de) 2018-11-28 2020-05-28 Infineon Technologies Ag Ausführen von kryptographischen Operationen in einer Steuereinheit eines Fahrzeugs
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
CN109921892A (zh) * 2019-01-15 2019-06-21 中国科学院信息工程研究所 一种基于测试向量的多维度侧信道泄露评估方法和系统
DE102020102796A1 (de) 2020-02-04 2021-08-05 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum verarbeiten von geheimen daten
CN111767584B (zh) * 2020-06-09 2022-01-25 北京智芯微电子科技有限公司 内置随机数发生器的安全微处理器及安全芯片
CN111984476B (zh) * 2020-06-29 2023-08-01 百度在线网络技术(北京)有限公司 测试方法和装置
FR3119252B1 (fr) * 2021-01-26 2023-01-06 Commissariat A L’Energie Atomique Et Aux Energies Alternatives Dispositif de protection et de supervision d’un système électronique comprenant au moins un composant électronique. Procédé associé de protection et de supervision de l’intégrité du système électronique et du dispositif, et de brouillage d’attaques.

Family Cites Families (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH664056A5 (de) * 1984-11-02 1988-01-29 Borer Communications Ag Verfahren und vorrichtung fuer die umwandlung einer digitalen datensequenz in die verschluesselte form.
US5003596A (en) * 1989-08-17 1991-03-26 Cryptech, Inc. Method of cryptographically transforming electronic digital data from one form to another
US6116768A (en) * 1993-11-30 2000-09-12 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator
JP4739465B2 (ja) * 1997-06-09 2011-08-03 インタートラスト テクノロジーズ コーポレイション ソフトウェアセキュリティを増強するための混乱化技術
DE69834431T3 (de) * 1998-01-02 2009-09-10 Cryptography Research Inc., San Francisco Leckresistentes kryptographisches verfahren und vorrichtung
US7587044B2 (en) * 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
WO1999067909A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Secure modular exponentiation with leak minimization for smartcards and other cryptosystems
DE69935913T2 (de) * 1998-07-02 2008-01-10 Cryptography Research Inc., San Francisco Leckresistente aktualisierung eines indexierten kryptographischen schlüssels
FR2791496B1 (fr) * 1999-03-26 2001-10-19 Gemplus Card Int Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique
FR2791497B1 (fr) * 1999-03-26 2001-05-18 Gemplus Card Int Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique
FR2793571B1 (fr) * 1999-05-11 2003-10-31 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete et dynamique
US6760440B1 (en) * 1999-12-11 2004-07-06 Honeywell International Inc. One's complement cryptographic combiner
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
FR2809893B1 (fr) * 2000-06-02 2002-11-15 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur courbe elliptique
JP2002236152A (ja) * 2001-02-08 2002-08-23 Mitsubishi Electric Corp 半導体集積回路の試験装置及び試験方法
JP2002247025A (ja) * 2001-02-22 2002-08-30 Hitachi Ltd 情報処理装置
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
US8104017B2 (en) * 2001-10-25 2012-01-24 The Mathworks, Inc. Traceability in a modeling environment
JP4086503B2 (ja) * 2002-01-15 2008-05-14 富士通株式会社 暗号演算装置及び方法並びにプログラム
DE10201449C1 (de) * 2002-01-16 2003-08-14 Infineon Technologies Ag Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
US6825785B1 (en) * 2002-02-28 2004-11-30 Silicon Laboratories, Inc. Digital expander apparatus and method for generating multiple analog control signals particularly useful for controlling a sub-varactor array of a voltage controlled oscillator
JP2005527853A (ja) * 2002-05-23 2005-09-15 アトメル・コーポレイション 高度暗号化規格(aes)のハードウェア暗号法エンジン
US20040086117A1 (en) * 2002-06-06 2004-05-06 Petersen Mette Vesterager Methods for improving unpredictability of output of pseudo-random number generators
US20050152539A1 (en) * 2004-01-12 2005-07-14 Brickell Ernie F. Method of protecting cryptographic operations from side channel attacks
DE602004023436D1 (de) * 2004-03-29 2009-11-12 St Microelectronics Sa Prozessor zum ausführen eines aes algorithmus
WO2006006198A1 (ja) * 2004-07-07 2006-01-19 Mitsubishi Denki Kabushiki Kaisha 電力算出装置、電力算出方法、耐タンパ性評価装置及び耐タンパ性評価方法
FR2873523B1 (fr) 2004-07-22 2007-08-10 Sagem Procede et dispositif d'execution d'un calcul cryptographique
JP4824319B2 (ja) * 2005-01-21 2011-11-30 ルネサスエレクトロニクス株式会社 故障検出装置及び方法、並びに信号抽出回路
JP4815141B2 (ja) * 2005-03-29 2011-11-16 富士通株式会社 回路異常動作検出システム
US7577850B2 (en) * 2005-04-15 2009-08-18 Lsi Corporation Security application using silicon fingerprint identification
US8312297B2 (en) * 2005-04-21 2012-11-13 Panasonic Corporation Program illegiblizing device and method
JP5384781B2 (ja) * 2005-08-18 2014-01-08 日本電気株式会社 秘匿通信システムおよび共有秘密情報の生成方法
FR2893796B1 (fr) 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
JP4241765B2 (ja) * 2006-03-01 2009-03-18 株式会社日立国際電気 送信機及びキャリアリーク検出方法
EP1840732A1 (en) * 2006-03-31 2007-10-03 Axalto SA Protection against side channel attacks
BRPI0714242A2 (pt) * 2006-07-12 2013-01-29 Koninkl Philips Electronics Nv sistema e mÉtodo para aumentar a resistÊncia Á adulteraÇço de uma unidade de processamento de dados digitais, e, produto de programa de computador
US8190299B2 (en) * 2006-07-19 2012-05-29 Rovnyak Steven M Integrated and optimized distributed generation and interconnect system controller
JP4961909B2 (ja) * 2006-09-01 2012-06-27 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US20080091975A1 (en) * 2006-10-17 2008-04-17 Konstantin Kladko Method and system for side-channel testing a computing device and for improving resistance of a computing device to side-channel attacks
US8752032B2 (en) * 2007-02-23 2014-06-10 Irdeto Canada Corporation System and method of interlocking to protect software-mediated program and device behaviours
US8160245B2 (en) * 2007-03-07 2012-04-17 Research In Motion Limited Methods and apparatus for performing an elliptic curve scalar multiplication operation using splitting
JP2008252299A (ja) * 2007-03-29 2008-10-16 Hitachi Ltd 暗号処理システム及び暗号処理方法
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
US20100246808A1 (en) * 2007-12-05 2010-09-30 Nec Corporation Side channel attack tolerance evaluation apparatus, method and program
JP5564434B2 (ja) * 2008-01-11 2014-07-30 オランジュ 確率的対称暗号化のための方法およびエンティティ
US8848903B2 (en) * 2008-02-06 2014-09-30 Nec Corporation Device for evaluating side-channel attack resistance, method for evaluating side-channel attack resistance, and program for evaluating side-channel attack
US8139764B2 (en) * 2008-05-06 2012-03-20 Harris Corporation Closed galois field cryptographic system
US20100084472A1 (en) * 2008-10-02 2010-04-08 Silverbrook Research Pty Ltd Method of distinguishing first coding pattern from second coding pattern
US8316338B2 (en) * 2009-02-09 2012-11-20 The United States Of America, As Represented By The Secretary Of Commerce, The National Institute Of Standards & Technology Method of optimizing combinational circuits
CN101562522A (zh) * 2009-05-06 2009-10-21 深圳先进技术研究院 抗侧信道攻击的椭圆曲线密码系统实现方法
US8331568B2 (en) * 2009-05-28 2012-12-11 Microsoft Corporation Efficient distribution of computation in key agreement
JP2010288233A (ja) * 2009-06-15 2010-12-24 Toshiba Corp 暗号処理装置
FR2947404B1 (fr) * 2009-06-30 2011-12-16 Sagem Securite Cryptographie par parametrisation sur une courbe elliptique
GB0914603D0 (en) * 2009-08-20 2009-09-30 Univ East Anglia Image reconstruction method
JP5552541B2 (ja) * 2009-12-04 2014-07-16 クリプトグラフィ リサーチ, インコーポレイテッド 検証可能な耐漏洩性暗号化および復号化
US8527766B2 (en) * 2009-12-30 2013-09-03 Microsoft Corporation Reducing leakage of information from cryptographic systems
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
US8457919B2 (en) * 2010-03-31 2013-06-04 Inside Secure Process for testing the resistance of an integrated circuit to a side channel analysis
US8572406B2 (en) * 2010-03-31 2013-10-29 Inside Contactless Integrated circuit protected against horizontal side channel analysis
US8619985B2 (en) * 2010-04-27 2013-12-31 Research In Motion Limited Table splitting for cryptographic processes
FR2966953B1 (fr) * 2010-11-02 2015-08-28 St Microelectronics Rousset Procede de contremesure cryptographique par derivation d'une donnee secrete
RU2013125468A (ru) * 2010-11-03 2014-12-10 Вирджиния Тек Интеллекчуал Пропертиз, Инк. Использование технологии слежения за мощностью для контроля целостности и повышения безопасности компьютерных систем
CN107317586B (zh) * 2011-01-14 2020-11-06 Ge视频压缩有限责任公司 熵编码设备和方法、熵解码设备和方法、及存储介质
FR2972064B1 (fr) * 2011-02-25 2013-03-15 Inside Secure Procede de cryptographie comprenant une operation d'exponentiation
US20130086328A1 (en) * 2011-06-13 2013-04-04 Paneve, Llc General Purpose Digital Data Processor, Systems and Methods
US20130067212A1 (en) * 2011-09-14 2013-03-14 Augustin J. Farrugia Securing implementation of cryptographic algorithms using additional rounds
US8891630B2 (en) * 2011-10-24 2014-11-18 Blackberry Limited Significance map encoding and decoding using partition set based context assignment
JP5848106B2 (ja) * 2011-11-28 2016-01-27 ルネサスエレクトロニクス株式会社 半導体装置及びicカード
CN104335219B (zh) * 2012-03-30 2018-06-05 爱迪德技术有限公司 使用变量相关编码来保护可访问的系统
KR20130111721A (ko) * 2012-04-02 2013-10-11 삼성전자주식회사 부분 곱 생성기의 부스코드 생성방법, 컴퓨터 시스템 및 그 매체와 디지털 신호프로세서
WO2014028005A1 (en) * 2012-08-14 2014-02-20 Empire Technology Development Llc Software-based side-channel attack prevention
EP3879487B1 (en) * 2012-10-26 2023-11-29 Brainlab AG Matching patient images and images of an anatomical atlas
US9015500B2 (en) * 2013-01-16 2015-04-21 Qualcomm Incorporated Method and apparatus for using dynamic voltage and frequency scaling with circuit-delay based integrated circuit identification
US9231978B2 (en) * 2013-02-04 2016-01-05 Mirko Randic Cryptographic construction for anonymity during interaction for collective outcome
US20140249799A1 (en) * 2013-03-04 2014-09-04 Microsoft Corporation Relational similarity measurement
US20140281208A1 (en) * 2013-03-13 2014-09-18 Silicon Graphics International Corp. Associative Look-up Instruction for a Processor Instruction Set Architecture
JP2016517597A (ja) * 2013-03-15 2016-06-16 パワー フィンガープリンティング インコーポレイテッド コンピュータベースのシステムに電力指紋付けシステムを使用して保全性評価を強化するシステム、方法、及び装置
US10025929B2 (en) * 2013-03-18 2018-07-17 The Trustees Of Columbia University In The City Of New York Detection of anomalous program execution using hardware-based micro-architectural data
US9524399B1 (en) * 2013-04-01 2016-12-20 Secturion Systems, Inc. Multi-level independent security architecture
US9237015B2 (en) * 2013-07-24 2016-01-12 Cisco Technology, Inc. Compact and efficient communication security through combining anti-replay with encryption
US9087192B2 (en) * 2013-09-10 2015-07-21 Infineon Technologies Ag Electronic circuit and method for monitoring a data processing
CN103647638A (zh) * 2013-12-03 2014-03-19 北京中电华大电子设计有限责任公司 一种抵抗侧信道攻击的des掩码方法
CN103647639A (zh) * 2013-12-03 2014-03-19 北京中电华大电子设计有限责任公司 一种对称密码算法抵抗侧信道分析的方法
US10055587B2 (en) * 2013-12-23 2018-08-21 The Trustees Of Columbia University In The City Of New York Implementations to facilitate hardware trust and security
US20150222421A1 (en) * 2014-02-03 2015-08-06 Qualcomm Incorporated Countermeasures against side-channel attacks on cryptographic algorithms
DE102014101936A1 (de) * 2014-02-17 2015-08-20 Infineon Technologies Ag Verfahren zum Permutieren von Datenelementen und Permutiervorrichtung
US9838198B2 (en) * 2014-03-19 2017-12-05 Nxp B.V. Splitting S-boxes in a white-box implementation to resist attacks
US9584310B2 (en) * 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
US9425952B2 (en) * 2014-03-27 2016-08-23 Samsung Israel Research Corporation Algebraic manipulation detection codes from algebraic curves
WO2015149827A1 (en) * 2014-03-31 2015-10-08 Irdeto B.V. Obfuscated performance of a predetermined function
DE102014207296A1 (de) * 2014-04-16 2015-10-22 Robert Bosch Gmbh Vorrichtung und Verfahren zur Verarbeitung von Daten
US9418231B2 (en) * 2014-06-03 2016-08-16 Empire Technology Development Llc Perturbation of field programmable gate array code to prevent side channel attack
US20160063516A1 (en) * 2014-08-29 2016-03-03 The Nielsen Company (Us), Llc Methods and apparatus to estimate commercial characteristics based on geospatial data
CN104202145B (zh) * 2014-09-04 2018-07-03 成都信息工程学院 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法
US10025926B2 (en) * 2014-11-19 2018-07-17 The Mitre Corporation Side-channel leakage evaluator and analysis kit
US9740863B2 (en) * 2014-11-25 2017-08-22 Intel Corporation Protecting a secure boot process against side channel attacks
US10628592B2 (en) * 2014-11-25 2020-04-21 Institut Mines-Telecom Methods for recovering secret data of a cryptographic device and for evaluating the security of such a device
US10333696B2 (en) * 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
CN104717054B (zh) * 2015-02-12 2017-11-14 中国科学院信息工程研究所 一种密码实现侧信道安全性快速检测方法
US10594471B2 (en) * 2015-03-20 2020-03-17 Cryptography Research, Inc. Multiplicative blinding for cryptographic operations
US10853625B2 (en) * 2015-03-21 2020-12-01 Mine One Gmbh Facial signature methods, systems and software
US10097342B2 (en) * 2015-07-30 2018-10-09 Nxp B.V. Encoding values by pseudo-random mask
CN105262726B (zh) * 2015-09-10 2018-10-19 中国人民解放军信息工程大学 一种基于大数据行为序列分析的apt攻击检测方法
US10204532B2 (en) * 2015-09-25 2019-02-12 Intel Corporation Multiple input cryptographic engine
US9794062B2 (en) * 2015-10-08 2017-10-17 The Boeing Company Scrambled tweak mode of blockciphers for differential power analysis resistant encryption
US9942038B2 (en) * 2015-11-04 2018-04-10 Nxp B.V. Modular exponentiation using randomized addition chains
CN105553638A (zh) * 2015-12-07 2016-05-04 成都芯安尤里卡信息科技有限公司 针对sm4一阶掩码算法的二阶频域能量分析攻击
EP3179668B1 (en) * 2015-12-11 2019-05-22 Institut Mines-Télécom Methods and devices for estimating secret values
EP3188401B1 (en) * 2015-12-29 2019-12-18 Secure-IC SAS Method and system for protecting a cryptographic operation
EP3217307B1 (en) * 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis of second order or more
EP3226460A1 (en) * 2016-04-01 2017-10-04 Institut Mines-Telecom Secret key estimation methods and devices
CN107547194A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 免受侧信道分析的保护方法和设备
US10256973B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Linear masking circuits for side-channel immunization of advanced encryption standard hardware
US10121011B2 (en) * 2016-11-16 2018-11-06 The United States Of America As Represented By The Secretary Of The Air Force Apparatus, method and article of manufacture for partially resisting hardware trojan induced data leakage in sequential logics

Also Published As

Publication number Publication date
US20170244548A1 (en) 2017-08-24
KR20170098734A (ko) 2017-08-30
KR20170098731A (ko) 2017-08-30
US10419206B2 (en) 2019-09-17
KR20170098730A (ko) 2017-08-30
US20170244551A1 (en) 2017-08-24
US10230521B2 (en) 2019-03-12
CN107104783A (zh) 2017-08-29
CN107103229A (zh) 2017-08-29
KR20170098733A (ko) 2017-08-30
CN107103246A (zh) 2017-08-29
EP3208788A1 (en) 2017-08-23
EP3220304A1 (en) 2017-09-20
US20170244547A1 (en) 2017-08-24
EP3208789B1 (en) 2020-08-05
US20170244549A1 (en) 2017-08-24
EP3217307A1 (en) 2017-09-13
US20170244552A1 (en) 2017-08-24
KR20170098729A (ko) 2017-08-30
CN107104784A (zh) 2017-08-29
CN107104785A (zh) 2017-08-29
US10243729B2 (en) 2019-03-26
EP3220306A1 (en) 2017-09-20
EP3220305B1 (en) 2018-10-31
EP3208789A1 (en) 2017-08-23
US10505711B2 (en) 2019-12-10
CN107102919A (zh) 2017-08-29
EP3220305A1 (en) 2017-09-20
EP3220306B1 (en) 2018-11-07
EP3220304B1 (en) 2018-11-07
US10320555B2 (en) 2019-06-11
EP3208788B1 (en) 2020-06-03
EP3217307B1 (en) 2018-11-07
US20170244550A1 (en) 2017-08-24

Similar Documents

Publication Publication Date Title
EP3220305B1 (en) Method of testing the resistance of a circuit to a side channel analysis of second order or more
US11036891B2 (en) Testing resistance of a circuit to a side channel analysis
KR101792650B1 (ko) 사이드 채널 분석에 대한 집적 회로의 저항을 테스트하는 방법
Tunstall Smart card security
Hogenboom et al. Principal component analysis and side-channel attacks-master thesis
KR20180002072A (ko) 부채널 분석에 대응한 보호 방법 및 장치
Li New Fault-Based Physical Attacks and Their Countermeasures
李陽 New fault-based physical attacks and their countermeasures
Barron RSA Power Analysis Obfuscation: A Dynamic FPGA Architecture