KR101997005B1 - 전력 분석을 통한 도청에 대항하여 전자 회로를 보호하는 방법 및 이를 이용한 전자 회로 - Google Patents

전력 분석을 통한 도청에 대항하여 전자 회로를 보호하는 방법 및 이를 이용한 전자 회로 Download PDF

Info

Publication number
KR101997005B1
KR101997005B1 KR1020160145843A KR20160145843A KR101997005B1 KR 101997005 B1 KR101997005 B1 KR 101997005B1 KR 1020160145843 A KR1020160145843 A KR 1020160145843A KR 20160145843 A KR20160145843 A KR 20160145843A KR 101997005 B1 KR101997005 B1 KR 101997005B1
Authority
KR
South Korea
Prior art keywords
bits
bit
stored
random
cycle
Prior art date
Application number
KR1020160145843A
Other languages
English (en)
Other versions
KR20170089395A (ko
Inventor
발레리 테퍼
니르 타쉐르
Original Assignee
윈본드 일렉트로닉스 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윈본드 일렉트로닉스 코포레이션 filed Critical 윈본드 일렉트로닉스 코포레이션
Publication of KR20170089395A publication Critical patent/KR20170089395A/ko
Application granted granted Critical
Publication of KR101997005B1 publication Critical patent/KR101997005B1/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
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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

Abstract

전력 분석을 통한 도청(eavesdropping)에 대항하는 보호 기능을 가진 전자 회로가 제공된다. 전자 회로는 비트 세트를 저장하는 저장 요소, 저장된 비트 세트를 처리하고 둘 또는 그 이상의 사이클들 이후에 다음 상태의 비트 세트를 제공하는 로직 유닛으로서 첫 번째 사이클에서는 저장된 비트 세트의 일부가 로직 유닛에 정확하게 제공되고 일부는 랜덤 값들에 의해 대체되며 마지막 사이클에서는 저장된 비트 세트의 모든 비트들이 로직 유닛에 정확하게 제공되는 로직 유닛, 그리고 각 사이클에서 저장된 비트 세트 중 어떤 비트들이 정확하게 제공될 것이고 어떤 비트들이 대체될 것인지 결정하도록 저장된 비트 세트의 각 비트에 대해 랜덤 비트를 생성하는 랜덤 비트 생성기를 포함한다.

Description

전력 분석을 통한 도청에 대항하여 전자 회로를 보호하는 방법 및 이를 이용한 전자 회로{METHOD OF PROTECTING ELECTRONIC CIRCUIT AGAINST EAVESDROPPING BY POWER ANALYSIS AND ELECTRONIC CIRCUIT USING THE SAME}
본 발명은 암호화 장치(cryptography device)의 전력 분석을 통해 암호화 키들을 식별하는 것을 방지하기 위한 대책들에 관한 것이다.
본 출원은 2016년 1월 26일에 출원된 이스라엘 출원 일련 번호 제243,789호에 대해 우선권의 이익을 주장한다. 상기 언급된 특허 출원의 전체는 본 명세서에 참조로써 병합되고, 본 상세한 설명의 일부를 구성한다.
20세기 말 경에, 암호화 장치(예를 들어, 스마트카드 리더)로부터 이러한 장치의 전력 소비를 분석함으로써 비침습적(non-intrusively)으로 정보가 누설될 수 있음이 발견되었다. 전력 분석 방법들의 예시들로서 SPA(Simple Power Analysis) 및 DPA(Differential Power Analysis)가 알려져 있다. SPA는 장치에 의해 사용되는 전류의 그래프들을 시간의 함수로 시각화하는 검사 방법을 수반한다. 예를 들어, 상보적 금속 산화물 반도체(CMOS) 로직 회로는 로직 0 상태에서 로직 1 상태로 변화할 때에 상당한 양의 전기 전류가 전원으로부터 흘러가며, 반면에 반대의 경우에는 무시할만한 양의 전류만 흘러간다. 이와 유사하게, 마이크로프로세서는 서로 다른 커맨드들에 대해 서로 다른 전력 소비 프로파일들을 가질 것이다. 따라서, 데이터 암호화 표준(data encryption standard, DES) 암호화 동작을 수행하는 스마트카드로부터 얻은 전력량 추적 시에, 서로 다른 라운드들(rounds)이 분명하게 보일 수 있다. 또한, RSA 구현(implementation)의 제곱 연산 및 곱셈 연산도 구분될 수 있으며, 따라서 도청자가 비밀 키를 계산해 낼 수 있게 된다.
DPA는 암호화 장치의 전력 소비를 통계적으로 분석한다. DPA는 여러 라운드들에 걸쳐 전력 소비를 기록하고 SPA에 기반한 분석을 방해하는 노이즈를 제거할 수 있다.
전력 분석에 대항하는 한 가지 보호 방법은 계산을 숨기는 기법에 기반한다. 이 방법은 수행되는 연산들에 무관하게 균일하거나 또는 무작위적인 전력 소비를 가지도록, 예를 들어, 균일한 전력 소비를 달성하도록 계산 신호를 보완하거나(complementing) 누설 신호에 무작위성을 부가함으로써, 암호화 장치를 설계하는 기법을 포함한다.
암호화 장치를 보호하는 대안적인 방법은 계산을 마스킹(masking)하는 것이다. 이 방법에서는 암호화 장치는 계산에 무작위성을 부가(예를 들어, 상기 계산과 함께 불필요한 추가 계산들이 수행되도록 함)하여 똑같은 데이터가 분석될 때에도 전력 소비가 매 라운드마다 서로 달라지도록 설계된다.
기타 방법들은 무작위적인 노이즈를 추가하거나 및/또는 신호 클럭을 무작위화(randomize)하여 계산이 DPA를 통해서는 식별되기 어렵게 만들 수 있다.
통상적으로, 암호화 장치를 보호하는 각각의 방법은 일정 수준의 복잡도가 수반될 뿐이어서, 만약 충분한 노력이 투자된다면 극복될 수 있을 것이다. 따라서, 보호 방법이 파훼되는(cracked) 것을 방지하기 위해서는 좀더 복잡한 방법들을 찾는 것이 이익이 된다.
본 개시의 일 측면의 일 실시예는 전자 회로의 전력 소비를 분석함으로써 일련의 비트들에 대해 수행되는 로직 계산이 해독되는 것을 방지하는 방법 및 전자 회로에 관한 것이다.
본 개시의 일 측면의 일 실시예는 전자 회로의 전력 소비를 분석함으로써 일련의 비트들에 대해 수행되는 로직 계산이 해독되는 것을 방지하는 방법 및 전자 회로에 관한 것이다. 이러한 방법은 상기 계산을 둘 또는 그 이상의 스테이지들로 분할하여 상기 계산이 하나 대신 둘 또는 그 이상의 클럭 사이클들에 수행되도록 하는 기법을 포함한다. 첫 번째 사이클에서, 비트들의 일부가 상기 회로의 로직 유닛에 제공되고 비트들의 다른 일부는 랜덤 값들로 대체된다. 상기 로직 유닛은 부분 데이터로부터 첫 번째 결과를 계산한다. 이어서, 다음 사이클 또는 사이클에서는, 대체된 비트들의 정확한 데이터가 상기 로직 유닛에 제공된다. 상기 로직 유닛은 정확한 데이터를 가지고 추가적인 결과들을 계산한다. 추가적인 결과들은 저장 요소에 제공되어 상기 회로의 다음 상태를 위한 비트 세트로서 기능하게 한다.
본 개시의 예시적인 실시예에서, 상기 회로는 첫 번째 사이클 또는 사이클 개수의 역수(the reciprocal of the number of cycles) 동안에 비트들의 절반을 랜덤하게 선택한다. 다른 실시예에서는, 상기 회로는 첫 번째 사이클 및 추가적인 사이클들 동안에 임의의(random) 개수의 비트들을 선택한다. 본 개시의 일부 실시예들에서는, 다음 사이클 또는 사이클들에서, 비트들은 중간 저장 유닛으로부터 제공되는데, 그럼으로써 상기 저장 요소는 첫 번째 사이클에서 상기 로직 유닛의 계산에 의해 변경될 수 있다.
따라서, 본 개시의 예시적인 실시예에 따라, 전력 분석에 의한 도청에 대항하는 보호 기능을 갖춘 전자 회로가 제공된다. 상기 전자 회로는 정확한 값들에 상응하는 비트 세트를 저장하는 저장 요소, 상기 저장된 비트 세트들을 처리하고 둘 또는 그 이상의 사이클들 후에 다음 상태의 비트 세트를 제공하는 로직 유닛, 및 랜덤 비트 생성기를 포함한다. 추가적으로, 첫 번째 사이클에서, 상기 저장된 비트 세트의 일부는 상기 로직 유닛에 정확하게 제공되고 일부는 랜덤 값들로 대체되며, 마지막 사이클에서, 상기 저장된 비트 세트의 모든 비트들이 상기 로직 유닛에 정확하게 제공된다. 상기 랜덤 비트 생성기는 각 사이클에서 상기 저장된 비트 세트 중 어떤 비트들이 정확하게 제공될 것이고 어떤 비트들이 대체될 것인지 결정하도록, 상기 저장된 비트 세트의 각 비트에 대해 랜덤 비트를 생성한다.
본 개시의 예시적인 실시예에서, 상기 전자 회로는 두 클럭 신호들에 의해 구동되는데, 상기 클럭 신호들 중 하나의 주파수는 다른 하나의 주파수의 절반이다. 경우에 따라, 상기 회로는, 상기 저장된 비트 세트의 상기 정확한 값들을 마지막 사이클에서 사용하기 위해 저장하는, 상기 저장 요소에 연관된 중간 저장 유닛을 포함한다. 본 개시의 예시적인 실시예에서, 상기 회로는 상기 저장된 비트 세트의 각 비트에 대해, 상기 저장 요소 및 상기 랜덤 비트 생성기와 연관된 선택기를 포함한다. 또한, 상기 선택기는 상기 정확한 값과 상기 랜덤 값 중에 선택하도록 상기 랜덤 비트들에 의해 제어된다. 경우에 따라, 상기 저장된 비트 세트는 암호화된 형태로 상기 저장 요소에 저장된다. 본 개시의 예시적인 실시예에서, 상기 저장된 비트 세트는 상기 로직 유닛에 제공될 때에는 복호화된다. 경우에 따라, 두 번째 사이클에서, 상기 랜덤 값들에 상응하여 대체된 비트들은 상기 정확한 값들 중 상응하는 비트들에 의해 추가적으로 대체되어 상기 로직 유닛에 제공된다. 본 개시의 예시적인 실시예에서, 첫 번째 사이클에서 비트들의 절반이 랜덤 값들에 의해 대체된다. 경우에 따라, 첫 번째 사이클에서 임의의 개수의 비트들이 랜덤 값들에 의해 대체된다. 본 개시의 예시적 실시예에서, 대체되기 위해 랜덤하게 선택된 비트들은 상기 정확한 값들 중 상응하는 값들에 반대되는 값들이 되도록 설정된다.
본 개시의 예시적 실시예에 따라, 전력 분석을 통한 도청에 대항하여 전자 회로를 보호하는 방법이 추가로 제공된다. 상기 방법은 정확한 값들(correct values)에 상응하는 초기의 비트 세트(initial set of bits)를 저장 요소에 저장하는 단계, 상기 저장된 비트 세트의 각 비트에 대해 랜덤 비트를 생성하는 단계, 첫 번째 사이클에서, 상기 저장 요소로부터 비트들 중 일부를 정확하게 로직 유닛에 제공하고 비트들의 나머지를 랜덤 값들로 대체하는 단계, 마지막 사이클에서, 상기 저장된 비트 세트의 모든 비트들을 정확하게 상기 로직 유닛에 제공하는 단계, 및 마지막 사이클에서 다음 상태의 비트 세트를 제공하도록 상기 저장된 비트 세트들의 모든 비트들을 처리하는 단계를 포함한다.
본 개시의 예시적인 실시예에서, 상기 회로는 두 클럭 신호들에 의해 구동되는데, 상기 클럭 신호들 중 하나의 주파수는 다른 하나의 주파수의 절반이다. 경우에 따라, 상기 방법은, 상기 저장된 비트 세트의 상기 정확한 값들을 마지막 사이클에서 사용하기 위해 상기 저장 요소와 연관된 중간 저장 유닛에 저장하는 단계를 더 포함한다. 본 개시의 예시적인 실시예에서, 상기 방법은, 상기 저장된 비트 세트의 각 비트에 대해 선택기를 이용하여, 상기 랜덤 비트에 따라 상기 정확한 값과 상기 랜덤 값 중에 선택하는 단계를 더 포함한다. 경우에 따라, 상기 초기의 비트 세트를 저장하는 단계는 상기 저장된 비트 세트를 암호화하는 단계를 더 포함하고, 상기 마지막 사이클에서 상기 저장된 비트 세트의 모든 비트들을 상기 로직 유닛에 제공하는 단계는 상기 저장된 비트 세트를 복호화하는 단계를 더 포함한다. 경우에 따라, 상기 마지막 사이클에서 상기 저장된 비트 세트의 모든 비트들을 상기 로직 유닛에 제공하는 단계는 첫 번째 사이클에서 상기 저장 요소로부터 상기 비트들 중 일부를 획득하는 단계와 첫 번째 사이클에서 상기 랜덤 값들에 의해 대체되었던 상기 비트들의 나머지를 상기 정확한 값들 중 상응하는 값들로 대체하는 단계를 더 포함한다. 본 개시의 예시적 실시예에서, 첫 번째 사이클에서 상기 비트들 중 절반은 상기 랜덤 값들에 의해 대체된다. 경우에 따라, 첫 번째 사이클에서 상기 비트들 중 임의의 개수의 비트들이 상기 랜덤 값들에 의해 대체된다. 본 개시의 예시적 실시예에서, 대체되기 위해 랜덤하게 선택된 비트들은 상기 정확한 값들 중 상응하는 값들에 반대되는 값들이 되도록 설정된다.
첨부된 도면들은 본 발명의 상세한 이해를 돕기 위해 포함된 것들로서, 본 명세서에 일체화되고 그 일부를 구성한다. 도면들은 본 발명의 실시예들을 예시하며 상세한 설명과 함께 본 발명의 원리들을 설명하는 역할을 한다.
도 1은 본 개시의 예시적 실시예에 따라 암호화 장치에 대한 전력 공격을 수행하기 위한 시스템의 개략적인 예시이다.
도 2는 본 개시의 예시적 실시예에 따른 암호화 장치의 로직 회로의 개략적인 예시이다.
도 3은 본 개시의 예시적인 실시예에 따른 암호화 장치의 2 비트 로직 회로의 개략적인 예시이다.
도 4는 본 개시의 예시적인 실시예에 따른 암호화 장치의 향상된 로직 회로의 개략적인 예시이다.
도 5는 본 개시의 예시적인 실시예에 따라 로직 신호들 및 전력 소비량을 시간의 함수로 나타낸 개략적인 예시이다.
도 6은 본 개시의 예시적인 실시예에 따라 두 사이클에 걸쳐 로직 계산을 수행하는 방법에 관한 순서도이다.
도 7은 본 개시의 예시적인 실시예에 따라 다음 상태도 마스킹(mask)하는 암호화 장치의 향상된 로직 회로에 관한 개략적인 예시이다.
도 8은 본 개시의 예시적인 실시예에 따라 다음 상태도 마스킹하는 암호화 장치의 또 다른 향상된 로직 회로에 관한 개략적인 예시이다.
본 발명의 바람직한 실시예들에 대해 상세하게 설명이 이루어질 것이며, 이러한 설명의 예들은 첨부된 도면들에서 예시된다. 도면들 및 상세한 설명에서는 가능하면 항상 동일하거나 유사한 부분들을 참조하기 위해 동일한 참조 번호들이 사용된다.
도 1은 본 개시의 예시적 실시예에 따라 암호화 장치(110)에 대한 전력 공격을 수행하기 위한 시스템(100)의 개략적인 예시이다. 본 개시의 예시적인 실시예에서, 오실로스코프(140) 또는 그 밖의 전력 측정 장치는 암호화 장치(110)의 전력 입력(150)을 모니터링하는 데에 이용될 수 있다. 경우에 따라, 암호화 장치(110)는 (예를 들어, 스마트카드(120)를 읽기 위한) 카드 리더이거나, 회로 내의 칩 또는 그 밖의 구현 형태일 수 있다.
본 개시의 예시적인 실시예에서, 범용 컴퓨터(130)는 암호화 장치(110)와 통신할 수 있도록 프로그램되어, 예를 들어, 암호화 장치(110)에 명령어들을 제공하고 암호화되지 않은(unencrypted) 트랜잭션 정보를 수신할 수 있다. 경우에 따라, 암호화 장치(110)는, 동작 중에, 트랜잭션을 수행하기 위해, 예를 들어, 스마트카드(120)로부터 암호화된 정보를 읽고 컴퓨터(130)에 암호화되지 않은 정보를 제공한다. 본 개시의 예시적인 실시예에서, 오실로스코프(140)는 암호화 장치(110)의 전력 소비를 모니터링하고, 기록된 신호(160)를 분석하기 위해 컴퓨터(130)로 제공한다. 경우에 따라, 암호화 장치(110) 및/또는 오실로스코프(140)로부터 제공된 정보에 기초하여, 컴퓨터(130)는 해당 정보의 암호화 시에 사용된 암호화 키들 또는 다른 기밀 정보를 결정할 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 암호화 장치(110)의 로직 회로(200)의 개략적인 예시이다. 본 개시의 예시적 실시예에서, 로직 회로(200)는 현재 값/상태를 저장하기 위한 저장 요소들(220)(플립 플롭들(S0, ..., Sn))과 저장 요소들(220)로부터 데이터를 받아들이고 다음 값/상태를 계산하는 조합 로직 유닛(combinatorial logic unit)(210)을 포함하며, 다음 값/상태는 저장 요소들로 되돌아가 저장된다. 본 개시의 예시적 실시예에서, 로직 회로(200)는 초기에, 예를 들어, 스마트카드로부터 읽힌 값들과 같은, 외부 입력 값(230)을 제공받는다. 경우에 따라, 로직 회로(200)는 외부 입력 값(230)으로부터 몇 개의(a few generations) 다음 값들을 산출함으로써 하나 또는 복수 사이클의 처리 절차를 수행하며, 그 다음, 처리된/복호화된 값을 예를 들어, 컴퓨터(130)로 출력한다.
도 3은 본 개시의 예시적인 실시예에 따른 암호화 장치(110)의 2 비트 로직 회로(300)의 개략적인 예시이다. 본 개시의 예시적 실시예에서, 로직 회로(300)는 현재 상태를 저장하기 위한 두 개의 플립 플롭들(S0 및 S1)을 가지는 저장 요소(320)와 조합 로직 유닛(310)을 포함하며, 조합 로직 유닛(310)은 이 실시예에서 저장 값을 1만큼 증가시키고 증가된 값들을 다음 상태로서 저장 요소(320)에 되돌려 보내 저장한다. 타임 라인(360)은 로직 회로(300)를 구동하는 클럭 신호(CLK)의 클럭 값들을 예시하고, 타임 라인들(370 및 380)은 각각 다음 상태와 현재 상태에 관하여 저장 요소(320)에 저장되는 값들을 예시한다. 이 예시에서는, 0에서 3까지 계수하는 단순한 카운터가 로직 회로(300)에 의해 구현되었다.
본 개시의 예시적 실시예에서, 전력 공격에 관련하여 취약한, 그리고 로직 회로(예를 들어, 200 및 300)의 컨텐트에 관하여 잠재적인 유출점으로 기능할 수 있는 두 개의 지점이 있다. 첫 번째 지점은 다음 값/상태의 계산 중의 로직 유닛(예를 들어, 210, 310)이고, 두 번째 지점은 저장을 갱신할 때, 예를 들어, 다음 값/상태를 저장 요소(예를 들어, 220, 320)에 다시 저장할 때이다. 본 개시의 예시적 실시예에서, 도청자가 전력 분석을 통해 로직 회로의 현재 컨텐츠를 판단하는 것을 방지하기 위해, 계산은 둘 또는 그 이상의 사이클들로 분할된다.
도 4는 본 개시의 예시적인 실시예에 따른 암호화 장치(110)의 향상된 로직 회로(400)의 개략적인 예시이다. 본 개시의 예시적 실시예에서, 향상된 로직 회로(400)는 둘 또는 그 이상의 플립 플롭들(S0, S1, ..., Si, ..., Sm, 간결함을 위해 S0와 S1만 도시됨)을 가지는 저장 요소(420)를 포함한다. 로직 회로(400)는 또한 자신의 입력에 응답하여 다음 상태 비트들(N0, N1, ..., Ni, ..., Nm)을 제공(간결함을 위해 N0 및 N1만 도시됨)하는 조합 로직 유닛(410)을 포함한다.
본 개시의 예시적 실시예에서, 로직 회로(400)는 랜덤 비트 생성기(440)를 포함하며, 이는 저장 요소(420)와 마찬가지로, m 개의 랜덤 비트들(R0, R1, ..., Ri, ..., Rm)을 제공한다. 경우에 따라, 0의 값을 가지는 랜덤 비트(Ri)는 플립 플롭(Si)에 저장된 비트가 첫 번째 사이클에 로직 유닛(410)에 전달되어야 함을 의미하고, 반면에 1의 값을 가지는 랜덤 비트(Ri)는 플립 플롭(Si)에 저장된 비트가 두 번째 사이클에서만 로직 유닛(410)에 전달되어야 함을 의미한다. 랜덤 비트들(Ri)은 플립 플롭들(S0 내지 Sm) 내에 저장된 비트들 중에서 첫 번째 사이클에 조합 로직 유닛(410)에 의해 처리될 하나 또는 복수의 비트들을 무작위적으로 선택하며, 두 번째 사이클에서만 조합 로직 유닛(410)에 의해 처리될 나머지 비트들을 선택한다. 경우에 따라, 랜덤 비트 생성기(440)는, 비트들의 절반이 첫 번째 사이클에서 처리되고 이어서 두 번째 사이클에서는 모든 비트들이 처리되도록, 비트들의 절반이 0인 랜덤 비트 시퀀스를 제공할 수 있다. 이는 조합 로직 유닛(410)에 의해 처리되는 계산을 두 사이클들로 분할하고 이러한 계산이 전력 분석에 의해 해독되는 것을 방지한다. 본 개시의 여러 실시예들에서, 이러한 계산은 둘 이상의 사이클들로 분할될 수 있다.
본 개시의 예시적 실시예에서, 선택기(Li)(L0 및 L1이 도 4에 도시됨)는 플립 플롭(Si)에 저장된 각 비트마다 제공된다. 경우에 따라, 랜덤 비트(Ri)가 0일 때에는, 선택기는 플립 플롭(Si)에 저장된 비트의 정확한 값(correct value)을 조합 로직 유닛(410)에 전송한다. 그러나, Ri이 1이면, 첫 번째 사이클에서, 랜덤 값(Ri, 예를 들어, 도 4에 도시된 R0 및 R1)이 XOR 게이트(480)에 의해 랜덤 스트림(460)으로부터 조합 로직 유닛(410)에 제공되고, 두 번째 사이클에서는, 플립 플롭(Si)에 저장된 비트가 조합 로직 유닛(410)에 전송된다. 경우에 따라, 랜덤 값들은 랜덤 비트 생성기(440)에 의해 제공되는 것과 동일(Ri)할 수 있고, 또는 별도의 랜덤 비트 생성기로부터 올 수도 있다. 마찬가지로, 대체되기 위해 랜덤하게 선택되는 비트들은 정확한 값의 반대 값으로 설정(예를 들어, 0 대신에 1, 그리고 1 대신에 0)될 수 있다. 본 개시의 예시적 실시예에서, 향상된 로직 유닛(400)은 첫 번째 사이클에 1의 값을 제공하고 두 번째 사이클에 0의 값을 제공하는 식별기(indicator)(450)를 포함한다. 경우에 따라, 첫 번째 사이클에서, 1의 값은 랜덤 값이 선택기(Li)에 제공되도록 하고, 만약 Ri가 1의 값을 가지면, 조합 로직 유닛(410)에도 제공되도록 할 수 있다. 본 개시의 예시적 실시예에서, Ri가 1인 경우에 두 번째 사이클 동안에 플립 플롭(Si) 내에 저장된 비트의 값을 보존하기 위해 중간 저장 유닛들(470)이 제공된다.
도 5는 향상된 로직 회로(400)의 로직 신호들 및 전력 소비량을 시간의 함수로 나타낸 개략적인 예시(500)이고, 도 6은 본 개시의 예시적인 실시예에 따라 두 사이클들에 걸쳐 로직 계산들을 수행하는 방법(600)에 관한 순서도이다. 본 개시의 예시적 실시예에서, 향상된 로직 회로(400)는 2 개의 클럭 신호들을 사용하며, 하나는 클럭 주파수 clk를 가진 클럭 신호(510)이고 다른 하나는 절반의 주파수 clk/2를 가진 클럭 신호(520)이다. 경우에 따라, 회로 내 요소들의 일부는 주파수 clk (510)에서 기능하고 다른 일부는 절반의 주파수 clk/2 (520)에서 (두 사이클들에 걸쳐) 기능한다. 본 개시의 일 실시예에서, 로직 회로(400)는 플립 플롭들(Si)에 저장된 초기의 비트 세트의 값들을 저장 요소(420)에서 수신한다(단계 610). 신호(550)는 향상된 로직 회로(400) 내의 플립 플롭들(Si) 내에 저장된 예시적인 비트 세트를 도시한다. 경우에 따라, 랜덤 비트 생성기(440)가 신호(530)에 의해 도시되는 바와 같은 랜덤한 비트들(Ri)의 세트를 생성하여 플립 플롭들(Si)에 저장된 비트들 중 어떤 비트들이 첫 번째 사이클에서 사용될 것이고 어떤 비트들이 두 번째 사이클에서만 사용될 것인지 결정한다(단계 620).
첫 번째 사이클에서, 플립 플롭들(Si)에 저장된 비트들의 일부는 저장 요소(420)에서 조합 로직 유닛(410)에 전달되고 일부 비트들은 랜덤 값들에 의해 대체된다(단계 630). 랜덤 비트들(Ri)은 첫 번째 사이클에서 어떤 비트들이 전달되고 어떤 비트들이 대체될 것인지 결정한다. 두 번째 사이클에서는, 모든 비트들이 저장 요소(420)로부터 조합 로직 유닛(410)으로 전달된다(랜덤 비트들은 실제 비트들로 대체된다)(단계 640). 경우에 따라, 두 번째 사이클에서, 조합 로직 유닛(410)에서 많은 전력을 소비하는 0에서 1로 변하는 비트들이 더 적은데, 이는 약 절반은 이미 이전의 사이클에서 변화되었기 때문이다. 조합 로직 유닛(410)에 의한 처리의 결과는 다음 상태 비트들 Ni(540)로서 기능하여 저장 요소(420)에 다시 저장된다(단계 650).
본 개시의 예시적인 실시예에서, 타임 라인(560)은 로직 회로에 의한 표준적인 전력 사용량을 도시한 것으로, 이에 대조적으로 타임 라인(570)은 두 사이클들에 걸쳐 두 부분들로 랜덤하게 분할되는 전력 소비를 보여준다. 비트들 중 일부는 첫 번째 사이클에서 정확한 값으로 설정되고, 일부는 두 번째 사이클에서만 정확하게 교정, 즉, 정정된다.
도 7은 본 개시의 예시적인 실시예에 따라 다음 상태 비트들 Ni (540)도 함께 마스킹하는 암호화 장치(110)의 향상된 로직 회로(700)에 관한 개략적인 예시이다. 향상된 로직 회로(700)는, 상술된 바와 같이, 향상된 로직 회로(400)는 오직 조합 로직 유닛(410)의 전력 분석만 방지할 뿐이고 저장 요소(420)의 전력 분석은 방지하지 못한다는 점을 제외하면 향상된 로직 회로(400)와 유사하다. 향상된 로직 회로(700)에서, 한 쌍의 상호연결된(interconnected) XOR 게이트들(710, 720)은 저장 요소(420)에 저장된 데이터 비트들을 암호화하고 복호화하는 데에 이용된다. 경우에 따라, XOR 게이트(710)는 다음 상태 비트들(Ni)에 랜덤 마스킹(random mask)을 적용하고, 그럼으로써 다음 상태 비트들(Ni)이 저장 요소(420)에 저장될 때에 무작위적으로 암호화되어, 전력 분석을 이용한 도청을 방지할 수 있다. 이와 유사하게, XOR 게이트(720)는 플립 플롭들(Si) 내에 저장된 비트들을 복호화하기 위해, 이 비트들이 조합 로직 유닛(410)에 도달할 때에 랜덤 마스킹을 적용하며, 그럼으로써 정확한 데이터가 처리된다. 
도 8은 본 개시의 예시적인 실시예에 따라 다음 상태도 마스킹하는 암호화 장치의 또 다른 향상된 로직 회로(800)에 관한 개략적인 예시이다. 향상된 로직 회로(800)는 향상된 로직 회로(700)와 유사하고, 다만 중간 저장 유닛들(470)을 갖지 않은 채로 구현된다는 점이 다르다.
본 개시의 예시적인 실시예에서, 향상된 로직 회로(400)는 상술된 바와 유사한 방식으로 셋 또는 그 이상의 사이클들을 지원하도록, 예를 들어, 첫 번째 사이클에는 비트들 중 일부를 정확한 값들로 변경하고 두 번째 사이클에서 일부 비트들을 변경하며, 세 번째 사이클에서 일부 비트들을 변경하는 식으로 설계될 수 있다. 경우에 따라서, 각 사이클은 정확한 비트들에 관하여 동일한 개수를 도입할 수 있다.
나아가, 상술된 방법들 및 장치들이, 단계들을 누락 또는 추가하거나, 단계들의 순서 및 사용된 장치들의 종류를 변경하는 등의 다양한 기법들에 의해 달라질 수 있음이 인식되어야 한다. 서로 다른 특징들이 서로 다른 방식들로 결합될 수 있는 점은 인식되어야 한다. 특히, 특정한 실시예의 형태로 위에서 예시된 특징들 전부가 본 개시의 매 실시예마다 필요한 것은 아니다. 상술한 특징들의 추가적인 조합들도 마찬가지로 본 개시의 일부 실시예들의 범위 내에 포함되는 것으로 간주된다. 또한, 본 기술 분야에 숙련된 자들에게, 본 개시는 위에서 구체적으로 도시되고 묘사된 내용들에 한정되지 않음이 인식되어야 한다.
본 기술 분야에 숙련된 자들에게 본 발명의 범위 또는 사상으로부터 벗어나지 않으면서 다양한 개량들과 변경들이 본 발명의 구조에 대해 이루어질 수 있음은 명백할 것이다. 상술된 내용의 견지에서, 본 발명은 본 발명의 개량들과 변경들이 다음의 청구항들 및 이들의 균등 구성의 범위 내에 있는 한 본 발명의 개량들과 변경들을 포괄하고자 의도된 것이다.
110: 암호화 장치, 120: 스마트 카드, 130: 범용 컴퓨터
200, 300: 로직 회로, 210, 310, 410: 조합 로직 유닛
220, 320, 420: 저장 요소, 400, 700, 800: 향상된 로직 회로
440: 랜덤 비트 생성기, 470: 중간 저장 유닛
710, 720: XOR 게이트

Claims (15)

  1. 전력 분석을 통한 도청(eavesdropping)에 대항하는 보호 기능을 가진 전자 회로로서,
    비트 세트(set of bits)를 저장하는 저장 요소;
    상기 저장된 비트 세트에 상응하는 랜덤 비트들을 각각 생성하도록 구성되는 랜덤 비트 생성기;
    상기 저장 요소 및 상기 랜덤 비트 생성기와 연결되고, 상기 저장된 비트 세트 중 적어도 하나의 비트를 랜덤 값으로 또는 상기 랜덤 비트들에 따라 반대 값으로 대체함으로써 적어도 하나의 대체된 비트를 출력하도록 구성되는 선택기; 및
    상기 선택기에 연결되고, 적어도 두 개의 사이클들에서 로직 계산들을 수행하도록 구성되고, 그리고 상기 적어도 두 개의 사이클들 이후에 다음 상태의 비트 세트를 상기 저장 요소에 제공하도록 구성되는 조합 로직 유닛을 포함하며,
    상기 조합 로직 유닛은 첫 번째 사이클에서 제1 전력 소비 분포 하에서 상기 적어도 하나의 대체된 비트를 포함하는 상기 선택기의 출력에 대하여 제1 로직 계산을 수행하도록 구성되며, 그리고 마지막 사이클에서 제2 전력 소비 분포 하에서 상기 저장된 비트 세트 모두에 대해 마지막 로직 계산을 수행하도록 구성되는 전자 회로.
  2. 제1항에 있어서,
    상기 전자 회로는 두 개의 클럭 신호들에 의해 구동되고, 상기 클럭 신호들 중 하나의 주파수는 다른 하나의 주파수의 절반이며, 그리고 상기 제1 전력 소비 분포는 상기 제2 전력 소비 분포와 상이한 것을 특징으로 하는 전자 회로.
  3. 제1항에 있어서,
    상기 저장된 비트 세트를 상기 마지막 사이클에서 사용하기 위해 저장하는, 상기 저장 요소와 연관된 중간 저장 유닛을 더 포함하는 것을 특징으로 하는 전자 회로.
  4. 제1항에 있어서,
    상기 선택기는 상기 랜덤 비트 생성기에 의해 제공되는 상기 랜덤 값과 상기 저장된 비트 세트의 상응하는 하나의 비트 중에서 선택하도록 상기 랜덤 비트들에 의해 제어되는 것을 특징으로 하는 전자 회로.
  5. 제1항에 있어서,
    상기 저장된 비트 세트는 암호화된 형태로 상기 저장 요소에 저장되며, 상기 저장된 비트 세트는 상기 조합 로직 유닛에 제공될 때에는 복호화되는 것을 특징으로 하는 전자 회로.
  6. 제1항에 있어서,
    상기 적어도 하나의 대체된 비트는, 두 번째 사이클에서, 상기 저장된 비트 세트 중 상기 적어도 하나의 비트로부터 나오는 정확한 값으로 추가적으로 대체되어 상기 조합 로직 유닛에 제공되는 것을 특징으로 하는 전자 회로.
  7. 전력 분석을 통한 도청에 대항하여 전자 회로를 보호하는 방법으로서,
    초기의 비트 세트를 저장 요소에 저장하는 단계;
    상기 저장된 초기의 비트 세트에 상응하는 랜덤 비트들을 각각 생성하는 단계;
    상기 저장된 초기의 비트 세트 중 적어도 하나의 비트를 랜덤 값으로 또는 상기 랜덤 비트들에 따라 반대 값으로 대체하는 단계;
    적어도 두 개의 사이클들에서 로직 계산들을 수행하는 단계로서, 상기 적어도 두 개의 사이클들 중 첫 번째 사이클에서, 제1 전력 소비 분포 하에서 상기 저장된 초기 비트 세트 중 일부 및 상기 적어도 하나의 대체된 비트를 포함하는 중간 비트 세트에 대해 제1 로직 계산을 수행하는 단계, 그리고 상기 적어도 두 개의 사이클들 중 마지막 사이클에서, 다음 상태의 비트 세트를 제공하기 위해 제2 전력 소비 분포 하에서 상기 저장된 초기 비트 세트 모두에 대해 마지막 로직 계산을 수행하는 단계를 포함하는, 적어도 두 개의 사이클들에서 로직 계산들을 수행하는 단계; 및
    상기 다음 상태의 비트 세트를 상기 저장 요소에 저장하는 단계를 포함하는 전자 회로 보호 방법.
  8. 제7항에 있어서,
    상기 전자 회로는 두 개의 클럭 신호들에 의해 구동되고, 상기 클럭 신호들 중 하나의 주파수는 다른 하나의 주파수의 절반인 것을 특징으로 하는 전자 회로 보호 방법.
  9. 제7항에 있어서,
    상기 저장된 초기 비트 세트를 상기 마지막 사이클에서 사용하기 위해, 상기 저장 요소와 연관된 중간 저장 유닛에 저장하는 단계를 더 포함하는 것을 특징으로 하는 전자 회로 보호 방법.
  10. 제7항에 있어서,
    상기 제1 전력 소비 분포는 상기 제2 전력 소비 분포와 상이한 것을 특징으로 하는 전자 회로 보호 방법.
  11. 제7항에 있어서,
    상기 초기의 비트 세트를 저장하는 단계는, 상기 저장된 초기 비트 세트를 암호화하는 단계를 더 포함하고,
    상기 적어도 두 개의 사이클들 중 마지막 사이클에서, 상기 저장된 초기 비트 세트 모두에 대해 마지막 로직 계산을 수행하는 단계는 상기 마지막 로직 계산을 수행하기 전에 상기 저장된 비트 세트를 복호화하는 단계를 더 포함하는 것을 특징으로 하는 전자 회로 보호 방법.
  12. 제7항에 있어서,
    상기 첫 번째 사이클에서 상기 저장 요소로부터 상기 저장된 초기 비트 세트 중 일부를 획득하는 단계; 및
    상기 첫 번째 사이클 후 그리고 상기 마지막 사이클 전에, 상기 첫 번째 사이클에서 상기 랜덤 값들에 의해 대체되었던 상기 비트들의 나머지를 상기 저장된 초기 비트 세트의 상응하는 비트들로 대체하는 단계를 더 포함하는 것을 특징을 하는 전자 회로 보호 방법.
  13. 제7항에 있어서,
    상기 첫 번째 사이클에서 상기 저장된 초기 비트 세트 중 절반은 상기 랜덤 값들에 의해 대체되는 것을 특징으로 하는 전자 회로 보호 방법.
  14. 제7항에 있어서,
    상기 첫 번째 사이클에서 상기 저장된 초기 비트 세트 중 임의의(random) 개수의 비트들이 상기 랜덤 값들에 의해 대체되는 것을 특징으로 하는 전자 회로 보호 방법.
  15. 삭제
KR1020160145843A 2016-01-26 2016-11-03 전력 분석을 통한 도청에 대항하여 전자 회로를 보호하는 방법 및 이를 이용한 전자 회로 KR101997005B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IL243789 2016-01-26
IL243789A IL243789A0 (en) 2016-01-26 2016-01-26 Split calculation of the next state to prevent analysis by energy consumption

Publications (2)

Publication Number Publication Date
KR20170089395A KR20170089395A (ko) 2017-08-03
KR101997005B1 true KR101997005B1 (ko) 2019-10-01

Family

ID=57300865

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160145843A KR101997005B1 (ko) 2016-01-26 2016-11-03 전력 분석을 통한 도청에 대항하여 전자 회로를 보호하는 방법 및 이를 이용한 전자 회로

Country Status (7)

Country Link
US (1) US10374791B2 (ko)
EP (1) EP3200173B1 (ko)
KR (1) KR101997005B1 (ko)
CN (1) CN107016292B (ko)
ES (1) ES2807214T3 (ko)
IL (1) IL243789A0 (ko)
TW (1) TWI637618B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10878133B2 (en) * 2018-11-18 2020-12-29 Nuvoton Technology Corporation Mitigation of side-channel attacks using small-overhead random pre-charging
US11184149B2 (en) * 2019-02-19 2021-11-23 International Business Machines Corporation Computing range queries over encrypted data
US11663039B2 (en) 2020-04-07 2023-05-30 International Business Machines Corporation Workload management using reinforcement learning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110252244A1 (en) * 2010-04-07 2011-10-13 Xilinx, Inc. Method and integrated circuit for secure encryption and decryption
US20130322462A1 (en) * 2012-06-01 2013-12-05 Research In Motion Limited Universal synchronization engine based on probabilistic methods for guarantee of lock in multiformat audio systems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005532756A (ja) * 2002-07-10 2005-10-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ プログラマブル・ロジック・セルのアレイを有する電子回路
JP2008085986A (ja) 2006-08-30 2008-04-10 Ricoh Co Ltd データ変換装置と電子装置とデータ変換方法
US7554865B2 (en) * 2006-09-21 2009-06-30 Atmel Corporation Randomizing current consumption in memory devices
FR2949633B1 (fr) 2009-08-27 2011-10-21 St Microelectronics Rousset Procede et dispositif de contremesure pour proteger des donnees circulant dans un composant electronique
GB2487901B (en) * 2011-02-03 2019-12-04 Advanced Risc Mach Ltd Power signature obfuscation
US9183399B2 (en) * 2013-02-14 2015-11-10 International Business Machines Corporation Instruction set architecture with secure clear instructions for protecting processing unit architected state information
WO2015145487A1 (ja) 2014-03-28 2015-10-01 三菱電機株式会社 クロック位相制御回路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110252244A1 (en) * 2010-04-07 2011-10-13 Xilinx, Inc. Method and integrated circuit for secure encryption and decryption
US20130322462A1 (en) * 2012-06-01 2013-12-05 Research In Motion Limited Universal synchronization engine based on probabilistic methods for guarantee of lock in multiformat audio systems

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Benini L 외 5명, "Energy-aware design techniques for differential power analysis protection", Design Automation Conference (IEEE Cat. No.03CH37451) (2003.)*
Bucci M 외 2명, "A Countermeasure against Differential Power Analysis based on Random Delay Insertion", Conference Proceedings/IEEE International Symposium on Circuits and Systems (ISCAS) (2005.)*

Also Published As

Publication number Publication date
US20170214520A1 (en) 2017-07-27
ES2807214T3 (es) 2021-02-22
TW201728120A (zh) 2017-08-01
US10374791B2 (en) 2019-08-06
IL243789A0 (en) 2016-07-31
TWI637618B (zh) 2018-10-01
EP3200173B1 (en) 2020-06-03
KR20170089395A (ko) 2017-08-03
CN107016292A (zh) 2017-08-04
EP3200173A1 (en) 2017-08-02
CN107016292B (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
EP3208789B1 (en) Method of protecting a circuit against a side-channel analysis
US20210050313A1 (en) Cryptographic device arranged to compute a target block cipher
US9871651B2 (en) Differential power analysis countermeasures
US7454017B2 (en) Information processing unit
KR102383829B1 (ko) 안전하게 메시지를 교환하기 위한 방법, 이 방법을 구현하기위한 장치 및 시스템
KR20120127607A (ko) 암호화 키를 획득하기 위한 디바이스 및 방법
CN107005415A (zh) 用于加密/解密消息的块加密方法以及实现该方法的密码设备
KR101997005B1 (ko) 전력 분석을 통한 도청에 대항하여 전자 회로를 보호하는 방법 및 이를 이용한 전자 회로
JP5136416B2 (ja) 擬似乱数生成装置、ストリーム暗号処理装置及びプログラム
EP3891925B1 (en) A computation device using shared shares
JP4386766B2 (ja) データ処理装置における誤り検出
Steffen et al. In-depth analysis of side-channel countermeasures for crystals-kyber message encoding on arm cortex-m4
JP2005045760A (ja) 暗号処理方法及び装置
JP2005340892A (ja) 暗号回路
Karri et al. Parity-based concurrent error detection in symmetric block ciphers
JP4435593B2 (ja) 耐タンパー情報処理装置
US20240020383A1 (en) Method and circuit for protecting an electronic device from a side-channel attack
Selmane Global and local Fault attacks on AES cryptoprocessor: Implementation and Countermeasures.
Hanley Profiling side-channel attacks on cryptographic algorithms
Vialar et al. Side Channel Analysis of NIST Lightweight Cryptography Candidates

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant