[go: up one dir, main page]

KR101946509B1 - 클락 지연들을 변동시킴으로써 부채널 공격들로부터 보호하는 시스템 및 방법 - Google Patents

클락 지연들을 변동시킴으로써 부채널 공격들로부터 보호하는 시스템 및 방법 Download PDF

Info

Publication number
KR101946509B1
KR101946509B1 KR1020160170381A KR20160170381A KR101946509B1 KR 101946509 B1 KR101946509 B1 KR 101946509B1 KR 1020160170381 A KR1020160170381 A KR 1020160170381A KR 20160170381 A KR20160170381 A KR 20160170381A KR 101946509 B1 KR101946509 B1 KR 101946509B1
Authority
KR
South Korea
Prior art keywords
delay
delays
logic circuit
inputs
instances
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020160170381A
Other languages
English (en)
Other versions
KR20170106623A (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 KR20170106623A publication Critical patent/KR20170106623A/ko
Application granted granted Critical
Publication of KR101946509B1 publication Critical patent/KR101946509B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Power Sources (AREA)
  • Logic Circuits (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

클락 지연들을 변동시킴으로써 부채널(side-channel) 공격들로부터 보호하기 위한 논리 회로(22) 및 지연 회로군(26)을 포함하는 시스템이 서술된다. 논리 회로(22)는 복수의 입력들(I0, I1, I2, I3)에 기초하는 특정 계산의 복수의 인스턴스들을 수행하도록 구성된다. 지연 회로군(26)은, 인스턴스들 상에서 변동하는 각각의 지연들을 입력들(I0, I1, I2, I3)에 인가함으로써, 복수의 인스턴스들 상에서 논리 회로(22)의 전력-소비 프로파일을 변동시키도록 구성되고, 지연들 중 적어도 일부는 서로 독립적으로 변동한다. 본 발명은 시스템(20)의 전력-소비 프로파일을 변동시킴으로써 그러한 부채널 공격들로부터 보호한다.

Description

클락 지연들을 변동시킴으로써 부채널 공격들로부터 보호하는 시스템 및 방법{SYSTEM AND METHOD FOR PROTECTION FROM SIDE-CHANNEL ATTACKS BY VARYING CLOCK DELAYS}
본 발명의 실시예들은 대체로 데이터 보안 분야에 관한 것이고, 보다 자세하게는 부채널 공격(side-channel attack)들로부터의 보호에 관한 것이다.
부채널 공격(side-channel attack)들에서, 계산들의 타이밍 및/또는 전력 소비와 관련된 정보가 보안 데이터 시스템의 보안을 위태롭게 하는데 사용될 수 있다.
본 명세서에서 참조되어 포함되는 미국 특허 출원 공보 제2012/0204056호는, 데이터 처리 명령에 응답하여 적어도 하나의 데이터 값에 대한 데이터 처리 동작을 수행하도록 구성된 데이터 처리 장치를 설명한다. 데이터 처리 장치는 데이터 처리 장치 내에서 경로상에 배치된 지연부를 포함하고, 이 때 지연부는 경로 상에서 신호의 전파(propagation)에 대한 지연을 인가하도록 구성되고 신호의 전파는 데이터 처리 동작의 일부를 형성한다. 데이터 처리 장치는 미리 정해진 시점에서 데이터 처리 동작의 결과를 결정하도록 구성되고, 이 때 미리 정해진 시점은 데이터 처리 동작의 개시를 미리 정해진 시간 간격을 지나서 뒤따른다. 지연부는 수행될 데이터 처리 동작을 위한 시간 및 지연의 합이 미리 정해진 시간 간격보다 작도록 구성된다.
본 명세서에서 참조되어 포함되는 미국 특허 출원 공보 제2011/0285421호는, 연속된 스테이지들 동안 아이 다이어그램(eye diagram)을 개목(open)되게 유지하면서, 전체(overall) 클락 아이 다이어그램을 폐목(close)함으로써 시스템에서의 전류들과 시스템에서의 데이터 사이 관계를 모니터링할 수 있는 능력을 감소시키기 위한 기법 및 방법들을 설명한다. 연속된 파이프라인 스테이지들 동안 폐목의 정도는 시스템으로 하여금, 넓은 클락 지터를 사용하는 시스템과 비교하여 최대 동작 속도에 가깝게 동작하게 하는 반면, 전체(overall) 폐목은 부분적 개목된 아이(eye)를 갖는 시스템들에서는 결여된 보안을 제공한다.
본 명세서에서 참조로서 포함되는 미국 특허 제8,427,194호는, 랜덤화된 클락의 사용을 통해서 시스템에서의 전류들과 시스템에서의 데이터 사이 관계를 모니터링하는 침입자의 능력을 감소시키기 위한 기법 및 방법들을 설명하고, 이 때 클락 아이 다이어그램은, 부가적인 지터(jitter)의 종래 수단들을 사용할 때 발생하는 최대 동작 주파수에서의 감소와 비교하여 최대 동작 주파수에서 현저한 감소 없이 폐목된다.
본 발명의 실시예들은 대체로 데이터 보안 분야에 관한 것이고, 보다 자세하게는 부채널 공격(side-channel attack)들로부터의 보호에 관한 것이다.
본 발명의 일부 실시예들에 따라, 클락 지연들을 변동시킴으로써 부채널 공격들로부터 보호하는 시스템이 제공되고, 시스템은 복수의 입력들에 기초한 특정 계산의 복수의 인스턴스들을 수행하도록 구성된 논리 회로를 포함한다. 시스템은, 인스턴스들 상에서 변동하는 각각의 지연들을 입력들에 인가함으로써 복수의 인스턴스들 상에서 논리 회로의 전력-소비 프로파일을 변동하도록 구성된 지연 회로군(circuitry)을 더 포함하고, 지연들 중 적어도 일부는 서로 독립적으로 변동한다.
일부 실시예들에서, 지연 회로군은 인스턴스들 상에서, 논리 회로에 의해 계산되는 중간(intermediate) 출력값들에서 변동을 유발함으로써 복수의 인스턴스들 상에서 논리 회로의 전력-소비 프로파일을 변동시키도록 구성된다.
일부 실시예들에서, 지연 회로군은 인스턴스들 상에서, 논리 회로에 의해서 수행되는 계산들의 각 타이밍들에서 변동을 유발함으로써 복수의 인스턴스들 상에서 논리 회로의 전력-소비 프로파일을 변동시키도록 구성된다.
일부 실시예들에서, 클락 지연들을 변동함으로써 부채널 공격들로부터 보호하는 시스템은 복수의 플립-플롭들을 포함하고, 입력들 각각은 플립-플롭들 각각으로부터 나온다.
일부 실시예들에서, 지연 회로군은 복수의 지연 회로들을 포함하고, 지연 회로들 각각은, 지연된 클락 신호를 생성하는 것과 같이, 지연들 각각에 의해서 클락 신호를 지연시키고 플립-플롭들 각각에 지연된 클락 신호를 입력함으로써, 입력들 각각에 지연들 각각을 인가하도록 구성된다.
일부 실시예들에서, 시스템은 각각의 전파 지연들을 가지고 논리 회로와 직렬 연결된 하나이상의 논리 회로들을 포함하고, 지연 회로군은 논리 회로의 총 전파 지연이, 인스턴스들 중 어떠한 것에서도, 다른 논리 회로들의 각각의 전파 지연들 중 최대값을 초과하지 아니하도록, 입력들에 각각의 지연들을 인가하도록 구성된다.
본 발명의 일부 실시예들에 따라, 클락 지연들을 변동시킴으로써 부채널 공격들로부터 보호하는 방법이 더 제공된다. 본 방법은 논리 회로를 사용하여, 복수의 입력들에 기초한 특정 계산의 복수의 인스턴스들을 수행하는 단계를 포함한다. 본 방법은 인스턴스들 상에서 변동하는 각각의 지연들을 입력들에 인가함으로써 복수의 인스턴스들 상에서 논리 회로의 전력-소비 프로파일을 변동시키는 단계를 더 포함하고, 지연들 중 적어도 일부는 서로 독립적으로 변동한다.
본 발명은, 도면들과 함께 본 발명의 실시예들에 대한 이하의 상세한 설명으로부터 보다 충분하게 이해될 것이다.
첨부된 도면들은, 본 발명에 대한 보다 나은 이해를 제공하기 위하여 포함되고 본 명세서의 일부에 포함되고 본 명서의 일부를 구성한다. 도면들은 본 발명의 예시적인 실시예들을 예시하고, 설명과 함께 본 발명의 원리들을 설명하는 기능을 한다.
도 1은 본 발명의 일 실시예에 따라, 부채널 공격들로부터 보호하는 시스템의 개략적인 하이-레벨 예시이다.
도 2는 본 발명의 일 실시예에 따라, 도 1의 시스템의 예시적인 실시예의 개략적인 예시이다.
도 3a 및 3b는 본 발명의 일부 실시예들에 따라, 도 1의 시스템의 동작을 위해 각각의 타임라인들에 대한 개략적인 예시들이다.
개관(OVERVIEW)
일부 부채널 공격들은, 시스템 내부로부터의 정보에 대한 승인되지 아니한 접근을 얻기 위하여, 시스템의 전력-소비 프로파일에서의 일관성(consistency)을 이용한다. 예를 들면, 부채널 공격은 암호시스템(cryptosystem)의 암호화(encryption)를 해체하는데 사용될 수 있고, 이에 따라 암호시스템 내부로부터의 정보에 대한 접근을 획득한다.
본 발명의 실시예들은, 시스템의 전력-소비 프로파일을 "랜덤화(randomizing)"함으로써 그러한 부채널 공격들로부터 보호한다. 이러한 랜덤화를 달성하기 위하여, 랜덤 지연들(즉, 그 기간(duration)들이 랜덤하게 변동하는 지연들)이 시스템에 속하는 적어도 하나의 논리 회로의 입력들에 인가된다. 이러한 지연들에 기인하여, 논리 회로는 임의의 특정 계산을 수행하는 방식이 계산의 인스턴스들 사이에서 변동될 것이다. 예를 들면, 랜덤 지연들은 논리 회로로 하여금 최종 출력값을 계산하기 이전에, 랜덤 지연들의 함수로서 값 ?/또는 타이밍이 변경되는 중간 출력들을 계산하는 것을 유발할 수 있다. 따라서, 논리 회로의 전력-소비 프로파일은, (ⅰ) 논리 회로에 의해 계산된 중간 출력값들의 변동 또는 (ⅱ) 논리 회로에 의해 수행되는 계산들의 타이밍 변동에 기인하여, 임의의 특정 계산의 인스턴스들 사이에서 변동할 것이다.
대안적으로 또는 추가적으로는, 랜덤 지연들은 시스템 내에서 적어도 하나의 (예컨대, 플립-플롭들의 레지스터를 포함하는) 메모리 소자(memory element)에 인가될 수 있고, 이에 따라 메모리 소자가 갱신되는 시간들이 변동함에 의해서 메모리 소자의 전력-소비 프로파일이 임의의 특정 계산의 인스턴스들 사이에서 변동하는 것을 유발한다. 일부 경우들에서, 논리 회로에 대한 입력들은 메모리 소자로부터 수신되고, 그 결과 메모리 소자에 인가된 지연들은 메모리 소자 및 논리 회로 모두의 전력 소비에 영향을 준다.
본 출원 및 청구항들의 문맥에서, "논리 회로(logic circuit)"는 입력값들에 논리 연산을 수행함으로써 출력을 계산하는 임의의 전자 회로이다. (그러한 논리 연산은, 통상적으로 기본적인 NOT, AND, OR, NAND, NOR 및 XOR 연산들의 조합이다) 논리 회로의 출력은 회로에 대한 현재 입력의 순수 함수(pure function)일 수 있고, 이 경우 논리 회로는 "조합-논리 회로(combinational-logic circuit 또는 combinatorial-logic circuit)"로서 지칭된다. 다르게는, 출력은 회로에 대한 입력의 이력 및/또는 현재 출력에 의존할 수 있고, 이 경우 논리 회로는 "순차-노리 회로(sequential-logic circuit)"로서 지칭된다. 본 명세서에서 설명되는 실시예들은 조합-논리 회로들 및 순차-논리 회로들 모두에 적용될 수 있다.
본 출원 및 청구항들의 문맥에서, 시스템이나 회로의 "전력-소비 프로파일(power-consumption profile)"은 시간의 함수로서 시스템이나 회로에 의해 소비된 전력의 양을 지칭한다. 게다가, "전력-소비 프로파일을 변동시키는 것"에 대한 언급들은, 통계적인 변동의 평균 양을 초과하여, 시간에서의 적어도 한 순간에서 시스템이나 회로에 의해 소비된 전력의 양을 변동시키는 것을 지칭한다. 다시 말하면, 온도, 전압 및/또는 다른 인자들에서의 변동이 전력-소비 프로파일으로 하여금 통계적 변동의 평균 양을 보이도록 유발함에도 불구하고, 그러한 변동은 부채널 공걱에서 "상쇄(cancel out)"된다. 본 명세서에서 설명된 실시예들은, 다른 한편으로는, 이러한 평균 양을 초과하여 전력-소비 프로파일을 변동시키고, 이에 따라 임의의 잠재적인 부채널 공격을 저지한다.
시스템 설명(SYSTEM DESCRIPTION)
본 발명의 일 실시예에 따라, 부채널 공격으로부터 보호하는 시스템(20)의 개략적인 하이-레벨 예시인 도 1이 우선 참조된다. 시스템(20)은, 스마트 카드(25)를 읽어 들이는데 사용되는 카드 리더(23)의 부품으로서 도시된다. 그러나, 본 특정의 실시예에도 불구하고, 시스템(20)이 다른 임의의 적합한 유형의 장치에 구현될 수도 있는 점이 유의된다. 예를 들면, 시스템(20)은 스마트 카드(25)에 구현될 수 있고, 또는, 보다 일반적으로는, 임의의 고정형(stationary)이나 휴대용(mobile) 컴퓨터에서 CPU(central processing unit)와 같은 디지털 로직을 구현하는 임의의 소자(device)에 구현될 수 있다.
도 1은, 시스템(20)으로, 시스템(20) 내에서 그리고 시스템(20)으로부터의 데이터 흐름을, 높은 개략적인 수준에서 도시한다. 우선, 스마트 카드(25)로부터의 암호화된 데이터 "ED"가 시스템(20)에 의해서 수신된다. 예를 들면, 그러한 데이터는 제1 레지스터(21a) "R"에 의해서 수신될 수 있다. 후속하여, 데이터는, 데이터로부터 출력을 계산할 수 있는 제1 논리 회로(22a) "C"로 흘러갈 수 있다. 출력은 그 다음에, 제1 레지스터(21a) 및/또는 제2 레지스터(21b)로 피드백될 수 있고, 데이터는 제2 레지스터(21b)로부터 제2 논리 회로(22b)로 후속해서 흘러갈 수 있다. 데이터는 임의의 개수의 레지스터들 및 논리 회로들을 통과하는 것을 계속할 수 있고, 논리 회로들 각각은 임의의 관련된 추가적인 입력들에 응답하여, 데이터에 대한 임의의 관련된 연산들을 수행할 수 있다. 마지막으로, 시스템(20)은, 예컨대 금융 거래(financial transaction)를 수행하는데 사용될 수 있는 복호화된 데이터 "UD"를 출력한다.
도 1은 또한, 카드 리더에 전력 입력(27)을 모니터링함으로써 카드 리더(23)에 대한 부채널 공격을 수행하는 상태에 있는 오실로스코프(29)를 도시한다. 후술되는 바와 같이, 시스템(20)은 하나의 카드 판독(readout) 동작으로부터 다른 동작까지 카드 리더의 전력-소비 프로파일을 변동시킴으로써, 그러한 공격을 저지하도록 구성된다. (일부 예시들에서, 공격자는, 스마트 카드(25)의 전력 소비를 모니터링함으로써 데이터를 위법하게 추출하는 것을 대안적으로 혹은 추가적으로 시도할 수 있다. 스마트 카드에 대한 본 실시예의 시스템(20)의 구현은, 전술된 바와 같이 그러한 공격을 저지하는데 도움을 줄 수 있다.)
본 발명의 일 실시예에 따라, 시스템(20)의 예시적 실시예의 개략적인 예시인 도 2가 지금부터 참조된다. 예시의 목적으로, 도 2는 도 1에 도시된 레지스터들 및 논리 회로들의 직렬구조(cascade)가 단일 레지스터(21) 및 단일 논리 회로(22)로 대체된 단순한 예시를 도시하고, 단일 논리 회로(22)는 후술되는 바와 같이 레지스터(21)로부터의 데이터에 대한 가산을 수행한다. 그러나, 도 2를 참조하여 설명되는 원리들 및 기법들은 훨씬 더 높은 수준들의 복잡도를 가지는 다른 시스템들에 유사하게 적용될 수 있는 점이 유의된다.
레지스터(21)는 참조부호들(F3, F2, F1, F0)에 의해서 도 2에 표시된, 복수의 플립-플롭(flip-flop)들을 포함한다. 임의의 정해진 시간에, 플립-플롭들 각각은 단일의 이진(binary) 값을 저장한다. 본 명세서 전체에서 플립-플롭(F3)이 최상위 비트를 저장하고, 플립-플롭(F2)이 그 다음 상위 비트를 저장하는 식으로 가정된다. 예를 들면, (i) F3 및 F1이 0을 저장하고, (ii) F2 및 F0이 1을 저장할 때, 레지스터(21)는 값 0101(=5)을 저장할 것이다. 후술되는 바와 같이, 도 2의 예시적 실시예가 카운터를 구현하는 점을 고려하면, 레지스터에 저장된 값은 변수 "COUNT"의 값으로서 지칭될 수 있다.
도 2는, 클락 신호(C3)를 수신하는 F3, 클락 신호(C2)를 수신하는 F2, 클락 신호(C1)를 수신하는 F1 및 클락 신호(C0)를 수신하는 F0를 도시한다. 각각의 클락 신호의 상승 에지(또는 다르게는 하강 에지)에서, 대응하는 플립-플롭은 각각의 데이터 입력(D)의 값을 캡쳐(capture)(래치(latch))한다. 짧은 지연 후에, 캡쳐된 값은 플립-플롭의 출력(Q)이 되고, 이러한 출력은 그 후에 논리 회로(22)의 입력이 된다. 따라서, 도 2는, 플립-플롭(F3)으로부터의 출력이 입력(I3)로서 논리 회로에 입력되고, 플립-플롭(F2)으로부터의 출력이 입력(I2)로서 논리 회로에 입력되고, 플립-플롭(F1)으로부터의 출력이 입력(I1)으로서 논리 회로에 입력되며, 플립-플롭(F0)으로부터의 출력이 입력(I0)로서 논리 회로에 입력되는 것을 도시한다.
논리 회로(22)는 입력들에 대한 논리 연산을 수행한다. 구체적으로, 도 2에서, 논리 회로(22)는 "+1" 연산을 수행하는 카운터이고, 1은 논리 회로에 대한 입력에 더해진다. 본 연산은, 4개의 출력 비트들(NC3, NC2, NC1, NC0)을 포함하는 출력 NEXT COUNT(또는 "NC")을 산출한다. 본 명세서에서, NC3는 "NEXT COUNT"의 최상위 비트인 것으로 가정되고, NC2는 그 다음 상위 비트인 식으로 가정된다. 각각의 출력 비트는 출력 비트의 자릿수에 대응하는 플립-플롭에 입력되고, 그 결과, 다음 클락 사이클 동안, COUNT는 NEXT COUNT의 값을 획득한다.
따라서, 예컨대 0001인 초기 COUNT가 논리 회로(22)에 입력될 수 있다. (이는 I0=1이고 I1=I2=I3=0를 의미한다.) "+1" 연산을 수행함으로써, 논리 회로(22)는 0010인 출력 NEXT COUNT을 계산한다. (이는 NC1=1이고, NC0=NC2=NC3=0을 의미한다.) 본 출력은 그 다음에, 플립-플롭들(F0, F1, F2, F3)로 피드백되고, 그 결과, 다음 클록 사이클 동안, 플립-플롭(F1)은 값 1을 캡쳐하고, 나머지 플립-플롭들은 값 0을 캡쳐하고, 즉 COUNT는 0010으로 증가한다. COUNT의 이러한 새로운 값은 논리 회로(22)에 그 다음 입력된다.
전술된 바와 같이, 도 2에 도시된 많은 세부사항들은 예시의 방식으로 제공될 뿐이다. 실제로, 본 발명의 실시예들은, 각각이 임의의 적합한 연산을 수행할 수 있는, 임의의 적합한 개수의 논리 회로들에 적용될 수 있다. 각각의 논리 회로는, 예컨대 시스템 내에서 메모리 소자(memory element)들이 아닌 소스들로부터 수신된 입력들을 포함하는, 임의의 개수의 입력들을 수신할 수 있다. 그러한 출력들은 도시된 바와 같이 메모리 소자들에 입력될 수 있고, 그리고/또는 임의의 다른 방식으로 사용될 수 있다. 게다가, 시스템(20)은 임의의 적합한 개수의, 임의의 적합한 유형의 메모리 소자들을 포함할 수 있다.
부채널 공격들로부터 보호하기 위하여, 본 발명의 실시예들은 플립-플롭들에 대한 클락 신호들을, 임의의 특정 계산의 인스턴스들 사이에서 변동하는 각각의 기간들로 지연시킨다. 클락 신호들에 대한 지연들은 플립-플롭들이 자신들의 새로운 각각의 값들을 캡쳐하는 시간들에서 변동을 유발하고, 이에 따라 플립-플롭들의 전력-소비 프로파일을 변동시킨다. 게다가, 논리 회로에 대한 입력들은 플립-플롭들로부터 수신되기 때문에, 클락-신호 지연들은 논리 회로의 전력-소비 프로파일을 변동시키는 효과를 추가적으로 가진다. 따라서, 시스템의 전력-소비 프로파일은, 플립-플롭들의 전력-소비 프로파일 및 논리 회로의 전력-소비 프로파일 모두에 기인하여, 전체로서 변동된다. (전술된 바에도 불구하고, 본 발명의 범위는, 임의의 메모리 소자들의 전력-소비 프로파일을 변동시키지 아니하고서, 본 명세서에서 설명된 바와 같이, 하나 이상의 논리 회로들의 전력-소비 프로파일을 변동시키는 것을 포함한다.)
도 2에 도시되고 후술되는 바와 같이, 지연들 중 적어도 일부는 서로 독립적으로 변동하고, 지연들 각각은 다른 지연들 각각으로부터 독립적으로 변동한다. 일부 실시예들에서, 도 2를 참조하여 바로 후술되는 바와 같이, 시스템(20)은 2개 지연 기간들 중 하나에 의해서 각각의 클락 신호를 랜덤하게 지연시킬 수 있다. 이 경우, 도시된 바와 같은 4개의 플립-플롭들을 가정할 때, 논리 회로가 수행할 수 있는 각각의 가능한 계산들에 대하여 24=16개의 상이한 전력-소비 프로파일들이 존재한다. 더 많은 수의 플립-플롭들 및/또는 회로들을 가지는 보다 복잡한 시스템들에서, 수백만 혹은 수십억의 전력-소비 프로파일들이 존재하고, 그 결과 부채널 공격을 성공적으로 수행하는 것은 실제적으로 불가능하게 된다. 예를 들면, 32개 플립-플롭들을 가지고서 단 2개의 지연 기간들을 가정하면, 상이한 전력-소비 프로파일들의 개수는 40억개를 초과한다.
일부 실시예들에서, 지연 회로들이 플립-플롭들에 의해서 수신된 클락 신호들을 지연시키는데 사용된다. 예를 들면, 도 2에 도시된 바와 같이, 공통 클락 신호(CK)는 복수의 지연 회로들(26) 각각에 입력될 수 있다. 각각의 지연 회로는 클락 신호(CK)를 수신하고, 클락 신호(CK)를 지연시키고, 그 다음 지연된 신호를 플립-플롭들 각각으로 입력될 수 있다.
일부 실시예들에서, 각각의 지연 회로는, 다른 지연 회로들에 입력되는 랜덤 지연으로부터 독립적으로 생성된 랜덤 지연 비트 "RDB"에 응답하여 클락 신호(CK)를 지연시킨다. (도 2에서, 랜덤 지연 비트들은, 플립-플롭들(F3, F2, F1, F0)에 각각 대응하는 참조 부호들(RDB3, RDB2, RDB1, RDB0)로 표시된다.) 랜덤 지연 비트에 응답하여, 멀티플렉서(28)는 2개의 지연 소자(delay element)들 "지연 1" 및 "지연 2" 중 하나를 활성화할 수 있고, 그 결과 클락 신호(CK)는 2개의 지연 기간들 중 하나에 의해서 지연된다. 예를 들면, 멀티플렉서(28)는 RDB=1에 응답하여 "지연 1"을, RDB=1에 응답하여 "지연 2"를 선택할 수 있다. 이러한 방식으로, 각각의 플립-플롭에 대한 지연이 랜덤한 방식으로 변동할 수 있다.
전술된 특정 실시예에도 불구하고, 본 발명의 범위는 논리 회로에 대한 입력들을 지연시키고, 그리고/또는 시스템 내에서 메모리 소자들이 갱신되는 시간들을 지연시키는데 임의의 적합한 회로군의 사용을 포함한다.
클락 신호들에 인가되는 랜덤 지연들의 효과가, 본 발명의 일부 실시예들에 따라 시스템(20)의 동작을 위한 각각의 타임라인들의 개략적인 예시들인 도 3a 내지 도 3b에 명백히 나타난다. 도 3a 내지 도 3b는 도 2에 도시된 시스템(20)의 실시예에 기초한다.
제1 시나리오가 도 3a에 도시된다. 본 제1 시나리오에서, 레지스터에 저장된 COUNT의 초기값은 0001이고, NEXT COUNT는 초기에 ("+1" 연산마다, COUNT보다 1이 큰) 값 0010을 가진다. 시간 T0에서, 클락 신호(CK)는 로우(low)에서 하이(high)로 된다. 그러나, 지연 회로들에 기인하여, 레지스터는 값 0010을 즉시 캡쳐하지 못하고, 중간값 0011을 먼저 캡쳐한다. 구체적으로, (i) 플립-플롭들(F3, F1)을 위한 지연 회로들은 영(zero)인 기간으로 클락 신호(CK)를 각각 지연시키고, 그 결과 클락 신호들(C3, C1)은 시간 T0에서 로우에서 하이로 되지만, (ii) 플립-플롭들(F2, F0)를 위한 지연 회로들은 더 큰 기간으로 클락 신호(CK)를 지연시키고, 그 결과 클락 신호들(C2, C0)는 더 늦은 시간 T1에서야 로우에서 하이로 된다. (예를 들면, 이러한 후자의 지연 회로들은 T1-T0인 "지연 2"를 인가한다.) 따라서, T0에서, 플립-플롭들(F3, F1)은 NEXT COUNT로부터 비트들(NC3, NC1)을 각각 캡쳐하지만, 플립-플롭들(F2, F0)은 그것들의 이전 값들을 유지하고, 그 결과 COUNT=0011이다.
T0로부터 어떤 시점에, 논리 회로는 새로운 입력 0011을 수신한다. 논리 회로는 그 다음, 0011에 대한 연산을 시작한다. 먼저, 시간 T2에서, 논리 회로는 0110인 중간 결과를 출력한다. 이러한 출력은, 논리 회로는 NC3는 1로 설정하였으나 NC1을 아직 0으로 설정하지 못한 상황에서, 0010인 초기 출력값 및 (입력 0011보다 1만큼 더 큰) 0100인 "목표" 출력값 "사이"에 있다.
전술된 바와 같이, T2에 앞서 시간 T1에서, 플립-플롭들(F2 및 F0)은 NC2 및 N0의 값들을 각각 캡쳐하고, 그 결과 레지스터에 저장된 값은 0010으로 변경된다. 후속하여, T1으로부터 어떤 시점에, 논리 회로는 레지스터로부터 입력 0010을 수신하고, 입력을 처리하기 시작한다. 먼저, 시간 T3에서, 논리 회로가 NC0는 1로 설정하였으나 NC3는 아직 0으로 설정하지 못한 상황에서, 논리 회로는 이전 출력 0100 및 "목표" 출력 0011 "사이"인 중간값 0111을 출력한다. 후속하여, 시간 T4에서, 논리 회로는 최종 출력 0011을 출력한다.
통상적으로, 시스템(20)은, 클락-신호 지연들 각각이 논리 회로가 그것의 제1 계산을 종료하도록 요구되는 시간보다 짧도록 구성된다. 따라서, 예컨대 도 3a에서, T2에서 NEXT COUNT에 대한 첫 번째 변화 이전에, T1에서 COUNT에 대한 최종 갱신이 발생한다. (클락 신호들 중 임의의 하나라도 T2를 넘어서 지연된다면, 레지스터는 0010 대신 부정확한 값 0110을 캡쳐할 것이다.)
제2 시나리오가 도 3b에 도시된다. 본 제2 시나리오에서, COUNT 및 NEXT COUNT의 초기 상태들은 도 3a와 동일하고, 논리 회로는 동일한 "+1" 계산을 수행한다. 그러나, 플립-플롭들에 대한 클락 신호 입력들에 인가되는 상이한 지연들에 기인하여, 계산이 진행되는 방식은 현저하게 다르다.
먼저, T0에서, 플립-플롭들(F2, F0)은 새로운 각각의 값들을 캡쳐하고, 그 결과 레지스터는 중간값 0000을 저장한다. 논리 회로는 그 다음, 이러한 중간 입력을 처리하기 시작한다. 그 다음에, T1에서, 플립-플롭들(F3, F1)은 그것들의 새로운 각각의 값들을 캡쳐하고, 그 결과 COUNT는 0010으로 변경된다. 그러나, 논리 회로는 중간 입력값 0000에 대한 동작을 계속한다. 따라서, T2에서 논리 회로는 중간값 0011을 출력한다. (이 값은, 전술된 의미에서, 0010 및 "목표 출력 0001 "사이"이고, 우연하게도, 이 값은 최종 출력과 일치하게 된다.) 그 다음에, 시간 T3에서, 논리 회로는, 중간 입력 0000에 "+1" 연산을 적용한 최종 결과인 값 0001을 출력한다. 마지막으로, 시간 T4에서, 논리 회로는, 최종 입력 0010에 "+1" 연산을 적용한 최종 결과인 0011을 출력한다.
이에 따라, 논리 회로에 전달되는 상이한 중간 입력값(0000 대 0011)에 기인하여, 도 3b가 적어도 2가지 면에서 도 3a와 상이한 점이 드러난다. 첫째, 전술된 바와 같이, 논리 회로는 상이한 중간 출력값들(0011과 0001 대 0110과 0111). 둘째, 논리 회로에 의해 수행된 계산들의 타이밍이 상이하다. 따라서, 예를 들면, 도 3b는 NEXT COUNT 값에서, T3 천이(transition)가 도 3a보다 먼저 발생하고 최종 T4 천이가 도 3a보다 나중에 발생하는 것을 도시한다. 이러한 차이들에 기인하여, 논리 회로의 전력-소비 프로파일은, 도면들에 도시된 상이한 (온전히 예시적인) 전력-소비 도포들에 의해서 표시된 바와 같이, 도 3a와 도 3b에서 상이하다.
일부 경우들에서, 중간 입력값들을 변경하는 것은 중간 결과 값들의 개수가 변화하는 것을 더 유발할 수 있다. 중간 출력값들의 개수에서의 변화는 전력-소비 프로파일에 영향을 줄수 있는 또 다른 인자이다.
도면들에서 도시된 중간 결과값들은 단지 예시의 목적으로 "값들 사이에" 있도록 선택되었을 뿐인 점이 유의된다. 청구항들을 포함하는 본 출원의 문맥에서, "중간 출력값"은 계산의 최종 결과를 출력하기 전에 논리 회로에 의해서 출력되는 임의의 값일 수 있다.
통상적으로, 전술된 바와 같이, 시스템(20)은 서로 직렬 연결된 복수의 논리 회로들을 포함한다. 그러한 다중-회로(multi-circuit) 시스템들에서, 통상적으로 (그러나 필수적이지 아니하게), 시스템의 전체 속도가 지연들이 없을 때보다 낮아지지 아니하는 것을 보장하기 위하여, 클락 지연들은 이러한 회로들 중 더 빠른 것들의 입력들에만 인가된다.
예를 들면, CPU에서 가장 느린 논리 회로가 9.9 ns의 전파 지연을 가지는 경우, CPU의 클락 사이클의 기간은 10 ns로 설정될 수 있다. (이는 약 100 MHz의 클락 속도에 대응한다. 1억(100 M)은 가장 느린 논리 회로가 수행할 수 있는 초당 계산들의 수보다 약간 작다.) 그러므로, 10 ns에서 클락 사이클의 기간을 유지하기 위하여, 지연들은 (클락 지연들을 포함하는), 안전성에 대한 충분한 마진으로서, 총 전파 지연들이 10 ns보다 작은 그러한 회로들의 입력들에만 인가될 수 있다. 예를 들면, 시스템에서 총 전파 지연이 9.9 ns의 "기준(baseline)" 전파 지연을 초과하지 아니하도록, 클락 지연들이 설정될 수 있다. 따라서, 예시의 방식으로, 8 ns의 초기 전파 지연을 가지는 회로는 1.9 ns를 초과하지 아니하는 임의의 적합한 기간으로 지연된 하나 이상의 입력들을 가질 수 있다. 대안적으로 또는 추가적으로, 7 ns의 초기 전파 지연을 가지는 다른 회로는 2.9 ns를 초과하지 아니하는 임의의 적합한 구간으로 지연된 하나 이상의 입력들을 가질 수 있다.
청구항들을 포함하는 본 출원의 문맥에서, 논리 회로의 "전파 지연(propagation delay)"은, 입력의 수신 시간으로부터 측정된, 회로가 계산 결과를 출력하는데 필요한 시간이다.

Claims (13)

  1. 클락 지연을 변동시킴으로써 부채널(side-channel) 공격으로부터 보호하는 시스템(20)으로서,
    복수의 입력들(I0, I1, I2, I3)에 기초한 특정 계산의 복수의 인스턴스들을 수행하도록 구성된 논리 회로(22);
    상기 인스턴스들 상에서 변동하는 각각의 지연들을 상기 입력들(I0, I1, I2, I3)에 인가함으로써, 상기 복수의 인스턴스들 상에서 상기 논리 회로(22)의 전력-소비 프로파일을 변동시키도록 구성된 지연 회로군(circuitry)(26)으로서, 상기 지연들 중 적어도 일부는 서로 독립적으로 변동하는, 지연 회로군(26); 및
    복수의 플립-플롭들을 더 포함하고,
    상기 입력들 각각은 상기 플립-플롭 각각으로부터 나오며,
    상기 복수의 플립-플롭들은 :
    상기 논리 회로 및 상기 지연 회로군에 연결되고 제1 비트 및 상기 지연 회로군으로부터 인가된 대응 지연에 따라 상기 다수의 입력들 중 제1 입력을 출력하는 제1 플립-플롭; 및
    상기 논리 회로 및 상기 지연 회로군에 연결되고 제2 비트 및 상기 지연 회로군으로부터 인가된 대응 지연에 따라 상기 다수의 입력들 중 제2 입력을 출력하는 제2 플립-플롭을 포함하며,
    상기 제2 비트는 상기 논리 회로에 의한 상기 제1 입력에 기초한 상기 특정 계산의 복수의 인스턴스들을 수행하는 것으로부터 출력되는 것을 특징으로 하는 시스템.
  2. 청구항 1에 있어서,
    상기 지연 회로군(26)은, 상기 인스턴스들 상에서, 상기 논리 회로(22)에 의해서 계산되는 중간 출력값들에서 변동을 유발함으로써 상기 복수의 인스턴스들 상에서 상기 논리 회로(22)의 상기 전력-소비 프로파일을 변동시키도록 구성되는 것을 특징으로 하는 시스템.
  3. 청구항 1에 있어서,
    상기 지연 회로군(26)은, 상기 인스턴스들 상에서, 상기 논리 회로(22)에 의해 수행되는 계산들의 각각의 타이밍들에서 변동을 유발함으로써 상기 복수의 인스턴스들 상에서 상기 논리 회로(22)의 전력-소비 프로파일을 변동시키도록 구성되는 것을 특징으로 하는 시스템.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    상기 지연 회로군(26)은 복수의 지연 회로들(26)을 포함하고,
    상기 지연 회로들(26) 각각은, 지연된 클락 신호를 생성하는 것과 같이, 상기 지연들 각각에 의해서 클락 신호(CK)를 지연시키고, 상기 플립-플롭들(F0, F1, F2, F3) 각각에 상기 지연된 클락 신호를 입력함으로써, 상기 입력들(I0, I1, I2, I3) 각각에 상기 지연들 각각을 인가하도록 구성되는 것을 특징으로 하는 시스템.
  5. 청구항 1에 있어서,
    각각의 전파 지연들을 가지고 상기 논리 회로(22)와 직렬 연결된 하나 이상의 다른 논리 회로들을 더 포함하고,
    상기 지연 회로군(26)은, 상기 논리 회로(22)의 총 전파 지연이, 상기 인스턴스들 중 어떠한 것에서도, 상기 다른 논리 회로들의 상기 각각의 전파 지연들 중 최대값을 초과하지 아니하도록, 상기 입력들(I0, I1, I2, I3)에 상기 각각의 지연들을 인가하도록 구성되는 것을 특징으로 하는 시스템(20).
  6. 클락 지연을 변동시킴으로써 부채널(side-channel) 공격으로부터 보호하는 방법으로서,
    논리 회로(22)를 사용하여, 복수의 입력들(I0, I1, I2, I3)에 기초한 특정 계산의 복수의 인스턴스들을 수행하는 단계; 및
    지연 회로군에 의해, 상기 인스턴스들 상에서 변동하는 각각의 지연들을 상기 입력들(I0, I1, I2, I3)에 인가함으로써, 상기 복수의 인스턴스들 상에 상기 논리 회로(22)의 전력-소비 프로파일을 변동시키는 단계를 포함하고,
    상기 지연들 중 적어도 일부는 서로 독립적으로 변동하며,
    상기 입력들(I0, I1, I2, I3)은 각각의 플립-플롭들(F0, F1, F2, F3)로부터의 입력이며,
    상기 각각의 지연들을 상기 입력들(I0, I1, I2, I3)에 인가하는 것은 :
    상기 각각의 지연들을 상기 입력들(I0, I1, I2, I3)에 인가하는 단계로서, 상기 다수의 입력들 중 제1 입력은 제1 비트 및 상기 지연 회로군으로부터 인가된 대응 지연에 따라 제1 플립-플롭에 의해 출력되며, 상기 다수의 입력들 중 제2 입력은 제2 비트 및 상기 지연 회로군으로부터 인가된 대응 지연에 따라 제2 플립-플롭에 의해 출력되며, 상기 특정 계산의 복수의 인스턴스들은 상기 제2 비트를 출력하도록 상기 제1 입력에 기초하여 수행되는, 단계를 포함하는 것을 특징으로 하는 방법.
  7. 청구항 6에 있어서,
    상기 지연들 각각은 상기 지연들 중 다른 것들로부터 독립적으로 변동하는 것을 특징으로 하는 방법.
  8. 청구항 6에 있어서,
    상기 입력들(I0, I1, I2, I3)에 대한 상기 각각의 지연들의 인가는, 상기 인스턴스들 상에서, 상기 논리 회로(22)에 의해서 계산되는 중간 출력값들에서 변동을 유발함으로써 상기 복수의 인스턴스들 상에서 상기 논리 회로(22)의 상기 전력-소비 프로파일을 변동시키는 것을 특징으로 하는 방법.
  9. 청구항 6에 있어서,
    상기 입력들(I0, I1, I2, I3)에 대한 상기 각각의 지연들의 인가는, 상기 인스턴스들 상에서, 상기 논리 회로(22)에 의해 수행되는 계산들의 각각의 타이밍들에서 변동을 유발함으로써 상기 복수의 인스턴스들 상에서 상기 논리 회로(22)의 상기 전력-소비 프로파일을 변동시키는 것을 특징으로 하는 방법.
  10. 청구항 6에 있어서,
    상기 입력들(I0, I1, I2, I3)에 상기 각각의 지연들을 인가하는 것은,
    복수의 지연 회로들(26)에 클락 신호(CK)를 입력하는 단계,
    복수의 지연된 클락 신호들을 생성하는 것과 같이, 상기 지연 회로들(26)을 사용하여 상기 클락 신호(CK)를 지연시키는 단계, 및
    상기 지연된 클락 신호들 각각을 상기 플립-플롭들(F0, F1, F2, F3) 각각에 입력하는 단계에 의해서, 상기 입력들(I0, I1, I2, I3)에 상기 각각의 지연들을 인가하는 것을 포함하는 것을 특징으로 하는 방법.
  11. 청구항 10에 있어서,
    상기 지연 회로들(26)의 각각의 지연 회로에 대하여, 상기 클락 신호(CK)를 지연시키는 단계는,
    랜덤 지연 비트(RDB0, RDB1, RDB2, RDB3)를 생성하는 단계, 및
    상기 지연 회로(26)를 사용하여, 상기 랜덤 지연 비트(RDB0, RDB1, RDB2, RDB3)의 함수인 기간으로 상기 클락 신호(CK)를 지연시키는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 청구항 6에 있어서,
    상기 논리 회로(22)는, 각각의 전파 지연들을 가지는 하나 이상의 다른 논리 회로들과 직렬 연결되고,
    상기 입력들(I0, I1, I2, I3)에 상기 지연들을 인가하는 것은, 상기 논리 회로(22)의 총 전파 지연이, 상기 인스턴스들 중 어떠한 것에서도, 상기 다른 논리 회로들의 상기 각각의 지연들 중 최대값을 초과하지 아니하도록, 상기 입력들에 상기 지연들을 인가하는 것을 포함하는 것을 특징으로 하는 방법.
  13. 삭제
KR1020160170381A 2016-03-13 2016-12-14 클락 지연들을 변동시킴으로써 부채널 공격들로부터 보호하는 시스템 및 방법 Active KR101946509B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/068,587 2016-03-13
US15/068,587 US10019571B2 (en) 2016-03-13 2016-03-13 Protection from side-channel attacks by varying clock delays

Publications (2)

Publication Number Publication Date
KR20170106623A KR20170106623A (ko) 2017-09-21
KR101946509B1 true KR101946509B1 (ko) 2019-02-11

Family

ID=57482191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160170381A Active KR101946509B1 (ko) 2016-03-13 2016-12-14 클락 지연들을 변동시킴으로써 부채널 공격들로부터 보호하는 시스템 및 방법

Country Status (5)

Country Link
US (1) US10019571B2 (ko)
EP (1) EP3220376A1 (ko)
KR (1) KR101946509B1 (ko)
CN (1) CN107181585B (ko)
TW (1) TWI621963B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017037725A1 (en) * 2015-09-06 2017-03-09 Bar-Ilan University Randomized logic against side channel attacks
US10263767B1 (en) 2018-07-03 2019-04-16 Rajant Corporation System and method for power analysis resistant clock
US10878133B2 (en) * 2018-11-18 2020-12-29 Nuvoton Technology Corporation Mitigation of side-channel attacks using small-overhead random pre-charging
US11269999B2 (en) * 2019-07-01 2022-03-08 At&T Intellectual Property I, L.P. Protecting computing devices from malicious tampering
EP3843317A1 (en) * 2019-12-23 2021-06-30 Nagravision SA Method for detecting perturbations in a logic circuit and logic circuit for implementing this method
US11449642B2 (en) * 2020-09-04 2022-09-20 Arm Limited Attack protection by power signature blurring
US11762993B2 (en) * 2021-04-12 2023-09-19 Nxp B.V. Securing cryptographic operations from side channel attacks using a chaotic oscillator
GB202107381D0 (en) * 2021-05-24 2021-07-07 Nordic Semiconductor Asa Security in integrated circuits

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404402A (en) 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors
US20120204056A1 (en) * 2011-02-03 2012-08-09 Cedric Denis Robert Airaud Power Signature Obfuscation
US8427194B2 (en) 2010-05-24 2013-04-23 Alexander Roger Deas Logic system with resistance to side-channel attack by exhibiting a closed clock-data eye diagram

Family Cites Families (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4521853A (en) 1982-06-30 1985-06-04 Texas Instruments Incorporated Secure microprocessor/microcomputer with secured memory
JPH08505275A (ja) 1992-12-30 1996-06-04 テルストラ・コーポレイション・リミテッド 暗号ストリームを発生させるための装置及び方法
US5671283A (en) 1995-06-08 1997-09-23 Wave Systems Corp. Secure communication system with cross linked cryptographic codes
US6272637B1 (en) 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
WO2000057290A1 (fr) 1999-03-19 2000-09-28 Hitachi, Ltd. Processeur d'informations
ATE403992T1 (de) 1999-06-22 2008-08-15 Hitachi Ltd Kryptografisches gerät und verfahren
FR2801751B1 (fr) 1999-11-30 2002-01-18 St Microelectronics Sa Composant electronique de securite
KR100653802B1 (ko) 2000-01-21 2006-12-05 소니 가부시끼 가이샤 데이터 처리 장치, 데이터 처리 방법, 및 콘텐츠 데이터 생성 방법
US7242772B1 (en) 2000-09-07 2007-07-10 Eastman Kodak Company Encryption apparatus and method for synchronizing multiple encryption keys with a data stream
US6934389B2 (en) 2001-03-02 2005-08-23 Ati International Srl Method and apparatus for providing bus-encrypted copy protection key to an unsecured bus
KR100385228B1 (ko) 2001-04-18 2003-05-27 삼성전자주식회사 불휘발성 메모리를 프로그램하는 방법 및 장치
US6976136B2 (en) 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US6760918B2 (en) 2001-06-29 2004-07-06 Scientific-Atlanta, Inc. Method and apparatus for recordable media content distribution
EP1293856A1 (fr) 2001-09-18 2003-03-19 EM Microelectronic-Marin SA Circuit Intégré sécurisé comprenant des parties à caractère confidentiel, et procédé pour sa mise en action
US7490250B2 (en) 2001-10-26 2009-02-10 Lenovo (Singapore) Pte Ltd. Method and system for detecting a tamper event in a trusted computing environment
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7137004B2 (en) 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
EP1456994B1 (en) 2001-12-18 2018-02-07 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US6768943B2 (en) 2002-04-18 2004-07-27 Aviation Communication & Surveillance Systems, Llc System and method using environment memory having signatures
US7248696B2 (en) 2002-09-12 2007-07-24 International Business Machines Corporation Dynamic system bus encryption using improved differential transitional encoding
US8140824B2 (en) 2002-11-21 2012-03-20 International Business Machines Corporation Secure code authentication
US7194626B2 (en) 2002-11-21 2007-03-20 International Business Machines Corporation Hardware-based secure code authentication
US7269747B2 (en) 2003-04-10 2007-09-11 Lenovo (Singapore) Pte. Ltd. Physical presence determination in a trusted platform
US6965521B2 (en) 2003-07-31 2005-11-15 Bae Systems, Information And Electronics Systems Integration, Inc. Read/write circuit for accessing chalcogenide non-volatile memory cells
US7533262B2 (en) 2003-08-01 2009-05-12 Microsoft Corporation Media data protection
US7421076B2 (en) 2003-09-17 2008-09-02 Analog Devices, Inc. Advanced encryption standard (AES) engine with real time S-box generation
DE10345385B4 (de) 2003-09-30 2005-10-06 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
US20050114687A1 (en) 2003-11-21 2005-05-26 Zimmer Vincent J. Methods and apparatus to provide protection for firmware resources
KR100891222B1 (ko) 2003-12-05 2009-04-01 모션 픽쳐 어쏘시에이션 오브 아메리카 디스플레이 어댑터를 위한 보안 비디오 시스템
EP1615370B1 (en) 2004-07-05 2011-08-31 ABB Research Ltd. Authentication of short messages
WO2006014554A2 (en) 2004-07-07 2006-02-09 University Of Maryland Method and system for monitoring system memory integrity
US20060026418A1 (en) 2004-07-29 2006-02-02 International Business Machines Corporation Method, apparatus, and product for providing a multi-tiered trust architecture
US7484099B2 (en) 2004-07-29 2009-01-27 International Business Machines Corporation Method, apparatus, and product for asserting physical presence with a trusted platform module in a hypervisor environment
US7822993B2 (en) 2004-08-27 2010-10-26 Microsoft Corporation System and method for using address bits to affect encryption
US20060107054A1 (en) 2004-11-16 2006-05-18 Young David W Method, apparatus and system to authenticate chipset patches with cryptographic signatures
JP4537908B2 (ja) 2005-03-29 2010-09-08 株式会社東芝 プロセッサ、メモリ、コンピュータシステムおよびシステムlsi
FR2885709A1 (fr) 2005-05-10 2006-11-17 St Microelectronics Sa Controle d'integrite d'une memoire externe a un processeur
US20070101424A1 (en) 2005-07-25 2007-05-03 Nec Laboratories America, Inc. Apparatus and Method for Improving Security of a Bus Based System Through Communication Architecture Enhancements
US8041032B2 (en) 2005-08-19 2011-10-18 Cardiac Pacemakers, Inc. Symmetric key encryption system with synchronously updating expanded key
US20070133437A1 (en) 2005-12-13 2007-06-14 Wengrovitz Michael S System and methods for enabling applications of who-is-speaking (WIS) signals
US8452981B1 (en) 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US8997255B2 (en) 2006-07-31 2015-03-31 Inside Secure Verifying data integrity in a data storage device
US7554865B2 (en) * 2006-09-21 2009-06-30 Atmel Corporation Randomizing current consumption in memory devices
US20080155273A1 (en) 2006-12-21 2008-06-26 Texas Instruments, Inc. Automatic Bus Encryption And Decryption
US7882365B2 (en) 2006-12-22 2011-02-01 Spansion Llc Systems and methods for distinguishing between actual data and erased/blank memory with regard to encrypted data
US7836269B2 (en) 2006-12-29 2010-11-16 Spansion Llc Systems and methods for access violation management of secured memory
DE102007007699A1 (de) 2007-02-09 2008-08-14 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks
US8781111B2 (en) 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
US7739565B1 (en) 2007-07-19 2010-06-15 Xilinx, Inc. Detecting corruption of configuration data of a programmable logic device
KR101321472B1 (ko) 2007-07-23 2013-10-25 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 프로그램 방법
US8670557B2 (en) 2007-09-10 2014-03-11 Spansion Llc Cryptographic system with modular randomization of exponentiation
US8578179B2 (en) 2007-10-19 2013-11-05 Samsung Electronics Co., Ltd Safe command execution and error recovery for storage devices
IL188089A (en) 2007-12-12 2013-02-28 Nds Ltd Bit generator
US8180055B2 (en) 2008-02-05 2012-05-15 Harris Corporation Cryptographic system incorporating a digitally generated chaotic numerical sequence
US8549246B2 (en) 2008-04-30 2013-10-01 Micron Technology, Inc. SPI NAND protected mode entry methodology
US7826271B2 (en) 2008-06-12 2010-11-02 Sandisk Corporation Nonvolatile memory with index programming and reduced verify
JP4620146B2 (ja) 2008-07-18 2011-01-26 株式会社東芝 情報処理装置及び認証方法
EP2166696B1 (fr) 2008-08-27 2016-10-05 STMicroelectronics (Rousset) SAS Protection de l'intégrité de données chiffrées en utilisant un état intermédiare de chiffrement pour générer une signature
US20100098247A1 (en) 2008-10-20 2010-04-22 Nokia Corporation Method, Apparatus And Computer Program Product For Generating An Encryption Key And An Authentication Code Key Utilizing A Generic Key Counter
US9117094B2 (en) 2008-10-29 2015-08-25 Microsoft Technology Licensing, Llc Data location obfuscation
US7881094B2 (en) 2008-11-12 2011-02-01 Seagate Technology Llc Voltage reference generation for resistive sense memory cells
TWI393143B (zh) 2008-12-05 2013-04-11 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與防資料竄改方法
US8649509B2 (en) 2008-12-18 2014-02-11 At&T Intellectual Property I, L.P. Systems and computer program products for generating and verifying randomized hash values
US8429513B2 (en) 2009-07-02 2013-04-23 Stmicroelectronics (Research & Development) Limited Loading secure code into a memory
US8756439B1 (en) 2009-08-28 2014-06-17 Physical Optics Corporation Encryption key management for secured access
US8225182B2 (en) 2009-10-04 2012-07-17 Mellanox Technologies Ltd. Processing of block and transaction signatures
US8693683B2 (en) 2009-11-25 2014-04-08 Aclara Technologies Llc Cryptographically secure authentication device, system and method
TWI436372B (zh) 2010-01-28 2014-05-01 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與防資料竄改方法
KR101610917B1 (ko) 2010-03-08 2016-04-11 삼성전자주식회사 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템
EP2388730A1 (en) 2010-05-17 2011-11-23 Nagravision S.A. Method for generating software code
US20110285421A1 (en) 2010-05-24 2011-11-24 Alexander Roger Deas Synchronous logic system secured against side-channel attack
US9304867B2 (en) * 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
KR101792868B1 (ko) 2010-11-25 2017-11-02 삼성전자주식회사 플래시 메모리 장치 및 그것의 읽기 방법
US10268843B2 (en) * 2011-12-06 2019-04-23 AEMEA Inc. Non-deterministic secure active element machine
US8745408B2 (en) 2011-04-08 2014-06-03 Infineon Technologies Ag Instruction encryption/decryption arrangement and method with iterative encryption/decryption key update
CN102970131A (zh) * 2011-08-31 2013-03-13 北京中电华大电子设计有限责任公司 一种防止对分组算法进行功耗攻击的电路结构
US8699712B2 (en) 2011-09-02 2014-04-15 Blackberry Limited Randomization of plain text for GSM SACCH
GB2494731B (en) 2011-09-06 2013-11-20 Nds Ltd Preventing data extraction by sidechannel attack
US8832455B1 (en) 2011-09-21 2014-09-09 Google Inc. Verified boot path retry
US9128876B2 (en) 2011-12-06 2015-09-08 Honeywell International Inc. Memory location specific data encryption key
US9304944B2 (en) 2012-03-29 2016-04-05 Broadcom Corporation Secure memory access controller
EP2858006A4 (en) 2012-05-25 2015-12-23 Toshiba Kk MEMORY DEVICE AND MEMORY SYSTEM
US8650398B2 (en) 2012-06-14 2014-02-11 Kabushiki Kaisha Toshiba Device authentication using restricted memory
US8751814B2 (en) 2012-06-14 2014-06-10 Kabushiki Kaisha Toshiba Device
US9703945B2 (en) 2012-09-19 2017-07-11 Winbond Electronics Corporation Secured computing system with asynchronous authentication
US9503255B2 (en) 2012-10-17 2016-11-22 Synopsys, Inc. Cryptographic sequencing system and method
US20140281564A1 (en) 2013-03-13 2014-09-18 Kabushiki Kaisha Toshiba Method of authenticating access to memory device
CN103324467B (zh) * 2013-05-28 2015-09-16 戴葵 一种基于随机指令延迟的抗旁路攻击处理器架构
TWI620094B (zh) 2013-05-31 2018-04-01 凱爾拉吉克斯股份有限公司 電荷分布控制系統、加密系統和藉由操作其防止以旁通道攻擊之方法
US9455962B2 (en) 2013-09-22 2016-09-27 Winbond Electronics Corporation Protecting memory interface
US9343162B2 (en) 2013-10-11 2016-05-17 Winbond Electronics Corporation Protection against side-channel attacks on non-volatile memory
KR20150085981A (ko) * 2014-01-17 2015-07-27 한국전자통신연구원 부채널 분석을 위한 신호 수집 장치
CN104836571B (zh) * 2014-02-07 2017-11-28 扬智科技股份有限公司 时脉调整装置与时脉调整方法
US9318221B2 (en) 2014-04-03 2016-04-19 Winbound Electronics Corporation Memory device with secure test mode
IL234956A (en) 2014-10-02 2017-10-31 Kaluzhny Uri Data bus protection with enhanced key entropy

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404402A (en) 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors
US8427194B2 (en) 2010-05-24 2013-04-23 Alexander Roger Deas Logic system with resistance to side-channel attack by exhibiting a closed clock-data eye diagram
US20120204056A1 (en) * 2011-02-03 2012-08-09 Cedric Denis Robert Airaud Power Signature Obfuscation

Also Published As

Publication number Publication date
US10019571B2 (en) 2018-07-10
EP3220376A1 (en) 2017-09-20
TWI621963B (zh) 2018-04-21
CN107181585A (zh) 2017-09-19
CN107181585B (zh) 2021-04-20
KR20170106623A (ko) 2017-09-21
TW201732670A (zh) 2017-09-16
US20170262630A1 (en) 2017-09-14

Similar Documents

Publication Publication Date Title
KR101946509B1 (ko) 클락 지연들을 변동시킴으로써 부채널 공격들로부터 보호하는 시스템 및 방법
US11750361B2 (en) Clock period randomization for defense against cryptographic attacks
Moore et al. Improving smart card security using self-timed circuits
Martin et al. Fault attacks on STRNGs: Impact of glitches, temperature, and underpowering on randomness
US7768318B2 (en) Detection of a disturbance in the state of an electronic circuit flip-flop
US10223532B2 (en) Protection of data stored in a volatile memory
US8990578B2 (en) Password authentication circuit and method
US10659020B2 (en) Pulse counting circuit
EP3393078B1 (en) Secure execution environment clock frequency hopping
CN102271038A (zh) 用于生成比特向量的方法
JP7122142B2 (ja) 電力変動攻撃対策を有するコンピューティングシステム
Igarashi et al. Concurrent faulty clock detection for crypto circuits against clock glitch based DFA
CN107346400B (zh) 多路复用器结构
EP3502869B1 (en) Interference detecting ring oscillators
US10474431B2 (en) Device and method for multiplication for impeding side-channel attacks
Ren et al. Transient-steady effect attack on block ciphers
Gross et al. CPU to FPGA power covert channel in FPGA-SoCs
Luo et al. Faulty clock detection for crypto circuits against differential fault analysis attack
Hasnain et al. Power profiling-based side-channel attacks on FPGA and Countermeasures: A survey
Amsaad et al. An innovative delay based algorithm to boost PUF security against machine learning attacks
Zussa et al. Evidence of an information leakage between logically independent blocks
CN119336125B (zh) 随机时钟发生装置及时钟信号输出方法
Moradi et al. Investigating the DPA-resistance property of charge recovery logics
Shoufan A fault attack on a hardware-based implementation of the secure hash algorithm SHA-512
US20250106034A1 (en) Side channel analysis protected hmac architecture

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20161214

PA0201 Request for examination
PG1501 Laying open of application
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20180601

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20181210

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20190131

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20190201

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20220120

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20240129

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20250121

Start annual number: 7

End annual number: 7