KR101542280B1 - 프로그래머블 암호화 회로를 보호하는 방법, 및 그 방법에 의해 보호된 회로 - Google Patents

프로그래머블 암호화 회로를 보호하는 방법, 및 그 방법에 의해 보호된 회로 Download PDF

Info

Publication number
KR101542280B1
KR101542280B1 KR1020107023728A KR20107023728A KR101542280B1 KR 101542280 B1 KR101542280 B1 KR 101542280B1 KR 1020107023728 A KR1020107023728 A KR 1020107023728A KR 20107023728 A KR20107023728 A KR 20107023728A KR 101542280 B1 KR101542280 B1 KR 101542280B1
Authority
KR
South Korea
Prior art keywords
cells
phase
cell
synchronization
signal
Prior art date
Application number
KR1020107023728A
Other languages
English (en)
Other versions
KR20110028253A (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 KR20110028253A publication Critical patent/KR20110028253A/ko
Application granted granted Critical
Publication of KR101542280B1 publication Critical patent/KR101542280B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7266Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Power Sources (AREA)

Abstract

본 발명은, 각 셀의 로직 함수를 정의하고 이진 변수들의 쌍에 대해 산출할 수 있는 차분 네트워크를 통합하고, 쌍들의 제 1 성분에 대한 로직 함수를 구현하는 셀의 제 1 네트워크 및 쌍들의 제 2 성분에 대한 상보형 로직에서 동작하는 듀얼 셀의 제 2 네트워크를 포함하는 메모리를 포함하는 셀을 구비하는 회로에 관한 것이다. 산출 단계는, 셀의 입력시에 변수가 기지의 상태에 놓이는 적어도 하나의 프리차지 페이즈 (41), 이에 후속하여 셀에 의해 산출이 이루어지는 평가 페이즈 (43) 를 포함한다. 입력 변수들을 전달하는 복수의 신호를 수신할 수 있는 각각의 셀에서 평가 페이즈 또는 프리차지 페이즈 이전에 가변 동기화 페이즈 (42, 44) 가 수행되고, 동기화는 가장 지연된 신호에 대해 수행된다. 본 발명은 차분 전력 분석 공격에 대항하여 이러한 유형의 회로를 보호하는데 이용될 수 있다.

Description

프로그래머블 암호화 회로를 보호하는 방법, 및 그 방법에 의해 보호된 회로{METHOD FOR PROTECTING A PROGRAMMABLE CRYPTOGRAPHY CIRCUIT, AND CIRCUIT PROTECTED BY SAID METHOD}
본 발명은 프로그래머블 암호화 회로를 보호하는 방법에 관한 것이다. 또한, 본 발명은 이러한 방법에 의해 보호되는 회로에 관한 것이다. 이 방법은, 특히, 차분 전력 분석 공격 (differential power analysis attack) 에 대항하여 이러한 유형의 회로를 보호하는데 적용한다.
암호화의 목적은 특히:
- 암호화 (encryption) 및 그 듀얼 동작, 즉, 복호화에 의한 정보의 비밀; 또는
- 서명 및 서명 검증 동작에 의한 그 무결성 (integrity)
둘 중 임의의 하나를 보호하기 위한 것이다.
일반 상식의 현재 상태에서, 모든 가능한 키들을 테스팅하는 것에 해당하는 철저한 공격보다 더욱 빠른 공격 방법은 없다는 사실에서, 암호화 (cryptography) 는 신뢰할만한 수학적인 방법이다.
일반적으로, 암호화 방법은 시스템 보안을 위해 필요한 복잡한 산출들을 수반한다. 이러한 복잡성은 컴퓨터에 대해 특정의 문제를 제기하지 않지만, 높은 컴퓨팅 전력을 갖지 않는 일반 대중에 의해 이용되는 디바이스, 일반적으로 저비용 마이크로프로세서에 의해 제어되는 디바이스의 경우, 결함을 야기한다. 따라서, 그 결과는 수개의 절차 (order) 일 수도 있는데, 예를 들어, 은행 카드는 거래를 서명하는데 수분이 걸리거나 또는 디지털 지불 텔레비전 디코더는 수반되는 데이터 속도를 따라가지 못할 수도 있다.
시스템의 비용을 증가시키지 않고 이러한 유형의 문제를 경감시키기 위해서는, 일반적으로 암호화-전용 프로세서 형태의, 디바이스를 제어하는 중앙 프로세싱 유닛에 도움을 주는 것이 보통이다.
그러나, 중앙 프로세싱 유닛 또는 특화된 공통 프로세서 둘 중 어느 쪽에 의해 구현되든지, 암호화 알고리즘은 물리적 전자 디바이스에 의해 구현되는 모든 경우에 있다. 그러나, 전자 디바이스는 전기 법칙의 고유의 특성으로 인해 필연적인 결함을 갖는다.
따라서, 수학적인 관점에서 신뢰할만한 암호화 시스템은 이하와 같은 알고리즘을 구현하는 물리적 시스템의 결함을 실행함으로써 공격당할 수도 있다.
- 산출의 지속기간은, 데이터의 값, 특히 시간-최적화된 소프트웨어 시스템에 의존할 수도 있고, 특정한 경우에 간단한 실행 시간 측정 (measurement) 에 기초하여 발견되는 모든 비밀 키들을 인에이블하는 시간 공격을 일으킬 수도 있다;
- 순간적인 전력 소모가 데이터에 또한 의존할 수도 있고, 예를 들면,
- 그 전력 소모의 측정에 기초한 중앙 프로세싱 유닛에 의해 실행되고 암호화 동작 도중에 측정된 동작을 차별화하기 위해 시도하는 SPA (단순 전 력 분석; simple power analysis);
- 키의 제한된 부분에 형성된 가설을 유효화하거나 또는 무효화하기 위해 일정한 키를 통해서 랜덤 메세지에서의 암호화 동작 도중에 수행되고, 수많은 전력 소모 측정에 대한 통계적인 동작을 이용하는 DPA (차분 전력 분 석; differential power analysis);
- 제 1 페이즈에서, 키의 제한된 부분의 값으로 색인된 전력 모델을 구성하기 위해 공격당한 디바이스와 동일한 디바이스 (동일한 디바이스가 비 밀을 포함하지 않는다는 점을 제외하고는) 를 이용하고 그리고, 제 2 페이즈 에서, 측정된 전력 레벨이 제일 가까운 모델을 판정하여 이에 따라 서브-키 의 값을 결정하기 위해 공격당한 디바이스에 의해 소모된 전력의 몇몇 측정 을 이용하는 제 2 단계의 템플리트 공격
의 일련의 공격을 일으킬 수도 있다.
- 컨덕터에 흐르는 임의의 전류가 전자기장을 생성하고, 그 측정은 특히 DPA 에 의한 전력 소모에 기초한 공격과 그 원리가 동일한 공격을 일으킬 수도 있다; 그리고
- 마지막으로, 시스템의 비밀을 발견하기 위해 거짓 결과를 활용하도록 시스템의 동작을 방해하도록 시도한다.
암호화 알고리즘을 구현하고 그 디바이스의 메모리 내에 저장된 비밀과 관련된 정보를 누설할 수 있는 물리적 디바이스의 임의의 결함은 "캐시 채널 (cached channel)" 로서 지칭된다.
암호화를 요구하는 어플리케이션에서 FPGA (Field Programmable Gate Array) 유형의 재설정가능한 회로가 매우 광범위하게 이용된다. 그 이유는 적어도 2 가지가 있다. 먼저, 암호화 표준이 급격하게 변화하고, 취약성을 갖는 특정 알고리즘이 결함을 바로잡는 다른 알고리즘으로 교체된다. 또한, 키 사이즈와 같은 암호화 파라미터도 가변한다. 따라서, 성능과 타협하지 않는 플렉시빌리티가 필요하다. 사실상, 그 산출이 복잡하기 때문에 암호화 알고리즘은 보호된다. FPGA 는 플렉시빌리티와 전력에 대한 요구조건을 완벽하게 충족한다. 두 번째로, 특정 암호화 어플리케이션은 작은 체적 내에서 브로드캐스팅된다. 예를 들어, 위성에 탑재된 시스템의 경우가 주목할만하다. 따라서, FPGA 솔루션은, 예를 들어, ASIC 유형의 전용 구현보다 더욱 효과적이다. 그러나, 모든 암호화 회로와 같이, 암호화 기능이 장착된 FPGA 는 특히 캐시 채널에 의한 공격에 대해 취약하다.
특히, 전력 소모 측정에 의한 공격을 저지하기 위한 알려진 대책 솔루션은 차분 로직, 더욱 상세하게는 로직 네트워크의 복제물을 이용한다. 따라서, 언제나 듀얼 포트가 소모하는 방식으로 상보성 로직에서 동작하는 듀얼 물리 게이트와 같이, 각각의 로직 게이트가 복제되고, 데이터와 별개로 전력 소모를 가능하게 하여, 이에 따라, 특히 DPA 에 대해서는 이용불가하게 한다. 각각의 산출에서 일정한 수의 전이를 확보하고, 이에 따라, 일정한 전력 소모를 확보하기 위해, 차분 로직은:
- 변수를 기지의 상태로 두기 위한 프리차지 페이즈; 및
- 산출이 일정한 수의 전이에 의해 수행되는 평가 페이즈의
2 개의 작동 페이즈를 요구한다.
따라서, 암호화 회로의 복잡성은 그 구현을 위해 필요한 차분 로직 및 듀얼-레일 커넥션의 이용으로 인해 2 배 이상이 된다.
특정 FPGA 는 카운터-침해 보호 수단을 그 구성에 통합하지만, 어느 것도 그 구현시의 공격에 저항하도록 설계되지 않았다. 따라서, 보호 수단은, 2004년 2월 Proceedings of DATE'04 의 페이지 246-251 에서 "A logic Level Design Methodology for a Secure DPA Resistant ASIC or FPGA Implementation" 로 K.Tiri 및 I.Verbauwhede 에 의한 문헌에 제안된 WDDL 로직 또는 2005년 9월에 Proceedings of CHES'05, volume 3659 of LNCS, 페이지 172-186 에 발행된 LNCS 의 "Masked Dual Rail Pre-Charge Logic: DPA Resistance without routing constraints" 로 T.Popp 및 S.Mangard 에 의한 문헌에 제안된 MDPL 로직과 같은, RTL (Register Transfer Level) 에서의 솔루션을 수반한다. 이러한 솔루션은, 이 솔루션이 공격자에 의해 실행될 수 있는 로직 및 기술적 바이어스를 나타내기 때문에 불충분하다.
제안된 모든 유형의 차분 로직에서, 명백한 전력 소모 밸런스에도 불구하고, 2-차 현상은 불균형을 나타내고 이에 따라 정보는 누설된다. 가장 중요한 현상은 특히 차분 네트워크에서의 예측된 평가 및 기술적 차이이다.
Daisuku Suzuki 등에 의한 "Security Evaluation of DPA Countermeasures Using Dual-Rail Pre-charge Logic Style" 의 문헌, 암호화 하드웨어 및 임베디드 시스템 - 컴퓨터 사이언스의 CHES 2006 년 강의 노트: LNCS, Springer, Berlin, Vol. 4249, 2006년 1월 1일, 255-269 페이지는 WDDL 및 MDPL 듀얼-레일 로직 모드를 설명한다.
Marco Bucci 등에 의한 "Three-Phase Dual-Rail Pre-charge Logic" 의 문헌, 암호화 하드웨어 및 임베디드 시스템 - 컴퓨터 사이언스의 CHES 2006 년 강의 노트: LNCS, Springer, Berlin, Vol. 4249, 2006년 1월 1일, 232 - 241 페이지는 3-페이즈 로직을 다룬다.
본 발명의 일 목적은 이러한 현상들이 회피되는 것을 가능하게 하고, 특히 FPGA 기술에서 암호화 회로의 전력 소모 측정에 의한 공격을 훨씬 더 어렵게 하는데 있다.
이러한 목적을 위해, 본 발명의 주제는 프로그래머블 암호화 회로를 보호하는 방법이고, 상기 방법은 각 셀의 로직 함수를 정의하는 메모리-기반 셀로 구성된 게이트를 이용하고, 상기 프로그래머블 암호화 회로는 신호의 쌍들로 구성된 이진 변수에 대해 산출을 행할 수 있는 차분 네트워크를 통합하도록 구성되어 있으며, 상기 차분 네트워크는 상기 쌍들의 제 1 성분에 대한 로직 함수를 구현하는 셀들의 제 1 네트워크 및 상기 쌍들의 제 2 성분에 대한 상보형 로직에서 동작하는 듀얼 셀의 제 2 네트워크를 포함한다. 산출은, 모든 변수들 중 2 개의 신호가 기지의 동일한 상태 (예를 들어, 0) 으로 놓여지는 프리차지 페이즈, 각 변수를 나타내는 2 개의 신호들 중 단일의 신호가 활성인 경우에 실제 산출이 셀에 의해 이루어지는 평가 페이즈, 및 각각의 프리차지 페이즈 및 평가 페이즈 이전의 동기화 페이즈의 2 개의 페이즈를 포함한다.
예를 들어, 가변 동기화 페이즈가 변수들의 그룹에서 수행되고 입력 변수들을 전달하는 수개의 신호들을 수신할 수 있는 각각의 셀에서의 평가 페이즈 이전에 삽입되고, 동기화는 가장 지연된 신호에서 수행된다.
가변 동기화 페이즈는 변수들의 그룹에서 수행될 수도 있고 입력 변수들을 전달하는 수개의 신호들을 수신할 수 있는 각각의 산출 셀에서의 평가 페이즈 이전에 삽입될 수도 있고, 동기화는 가장 지연된 신호에서 수행된다.
동기화 페이즈는, 예를 들어, 차분 네트워크의 각각의 셀에 대해 일치 셀 (unanimity cell) 을 이용하는 랑데뷰 메커니즘 (rendezvous mechanism) 에 의해 수행되고, 그 입력은 차분 네트워크의 상기 셀의 입력들에 대해 공통이고, 그 출력은 상기 셀의 동작을 제어하며, 일치 셀의 입력에 대한 값들이 일치할 때 랑데뷰가 발생하고, 게이트의 출력은 동기화 이후에 랑데뷰에 도달했을 때만 변화한다.
이 방법을 더욱 이해하기 쉽게 하기 위해, (상보되지 않은 변수들 및 상보된 변수들에 대응하는) 신호들의 모든 쌍들이 프리차지 페이즈 도중에 (0,0) 상태에 있는 것으로 고려될 것이다. 이러한 추론은 또한 (1,1) 상태에 적용된다.
일치 셀은 2 가지 유형이 있는데: 이들 유형은 평가 페이즈 및 프리차지 페이즈를 각각 가능하게 하고 공통 입력을 갖는, 1 로의 일치 U1 셀 및 0 으로의 일치 U0 셀을 갖는다:
- 1 로의 일치 U1 셀은, 입력 변수가 프리차지 상태를 벗어나자마자, 평가를 가능하게 하는 신호를 발생시킨다. 이러한 조건은, 모든 쌍의 입력 신호가 프리차지 상태 (0,0) 에서 (0,1) 상태 또는 (1,0) 상태 둘 중 하나로 스위칭되는 것을 명시하게 한다; 그리고
- 0 으로의 일치 U0 셀은, 모든 입력 변수가 평가 상태를 벗어나자마자, 프리차지를 가능하게 하는 신호를 발생시킨다. 이러한 조건은, 모든 쌍의 입력 신호가 (0,1) 또는 (1,0) 평가 상태에서 프리차지 상태 (0,0) 로 스위칭되는 것을 명시하게 한다.
산출 셀은, 1 로의 일치 또는 0 으로의 일치가 불활성인 한, "정지 (frozen)" (또는 메모리 내에 저장) 되어 있다. 이는 랑데뷰 메모리 함수에 의해 제공된다.
일 특정 실시형태에서, 프리차지 페이즈 이전에 게이트는 입력 변수를 제로로 재설정하기 위한 글로벌 신호 PRE 를 수신한다. 이 신호는 모든 게이트에 대해 공통이고, 다른 신호들에 앞선다. PRE 에 의해 제공된 프리차지는 랑데뷰에서 일치 U0 셀 및 필수적인 기억 (memorization) 모두를 제거하는 것을 가능하게 한다.
동기화 페이즈는, 예를 들어:
- 모든 입력 변수가 프리차지 상태를 벗어나자마자 평가를 가능하게 하는 신호를 발생시키는 U1 일치 셀; 및
- 0 으로 재설정된 신호 PRE 와 U1 셀의 출력을 조합하는 게이트로서, 조합된 동기화 신호
Figure 112010068543461-pct00001
는 그 이진값에 따라, 프리차지 페이즈
Figure 112010068543461-pct00002
또는 평가 페이즈
Figure 112010068543461-pct00003
를 가능하게 하는, 상기 조합하는 게이트를 이용한다.
본 발명의 주제는 또한 전술한 방법에 따라서 보호된 회로이다. 프로그래머블 회로, 예를 들어, 프로그래머블 암호화 회로는 각각의 셀의 로직 함수를 정의하는 메모리-기반 셀로 구성된 게이트를 포함하고, 상기 회로는 신호의 쌍들로 구성된 이진 변수들에 대해 산출할 수 있는 차분 네트워크를 통합하고, 상기 차분 네트워크는 쌍들의 제 1 성분에 대한 로직 함수를 구현하는 셀의 제 1 네트워크 및 쌍들의 제 2 성분에 대한 상보형 로직에서 동작하는 듀얼 셀들의 제 2 네트워크를 포함한다. 산출 단계는, 셀의 입력시에 변수가 기지의 상태로 놓이는 프리차지 페이즈, 산출이 셀에 의해 행해지는 평가 페이즈, 및 각각의 프리차지 페이즈 및 평가 페이즈 이전의 동기화 페이즈를 포함한다.
일 특정 실시형태에서, 차분 네트워크의 셀이 멀티플렉서의 트리와 관련된 로직 함수를 정의하는 메모리를 포함하고, 그 트리의 제 1 컬럼의 멀티플렉서의 입력은 메모리의 값을 수신하고, 마지막 멀티플렉서의 출력은 셀의 출력을 형성하고, 조합된 동기화 신호
Figure 112010068543461-pct00004
는 제 1 컬럼의 멀티플렉서를 제어하고, 다른 컬럼의 멀티플렉서는 셀의 입력 신호에 의해 제어된다.
예를 들어, 입력 변수의 신호들의 쌍들은 그 개별적인 셀 내에서의 멀티플렉서의 동일한 컬럼과 관련된다.
이 회로는, 예를 들어, 적어도 하나의 보호 게이트를 포함하고, 2n 개 입력의 4 개의 셀들이 이용되어 2n-1 개의 입력의 보호 게이트를 생성하고, 2 개의 셀이 이용되어 일치 U1 를 생성하며 2 개의 셀은 차분 네트워크에 대해 이용된다.
이 회로는 적어도 하나의 보호 게이트를 포함하고, 2n 개 입력의 8 개의 셀들이 이용되어 2n 개 입력의 보호 게이트를 생성하고, 4 개의 셀들이 이용되어 일치 U1 및 U0 를 생성하며, 2 개의 셀은 차분 네트워크에 대해 이용되고, 2 개의 셀은 게이트의 출력을 "정지" 하기 위한 랑데뷰를 위해 이용되고, 로직 함수는 증가 특성에 대해 이용되어야만 한다.
일 실시형태에서, 회로는 적어도 하나의 보호 셀을 포함할 수도 있고, 2n 개 입력의 2 개의 셀이 이용되어 n 개 입력의 보호 게이트를 생성하고, 2 개의 셀이 이용되어 일치를 통합하는 차분 네트워크를 생성하고, 로직 함수는 증가 특성에 대해 이용되어야만 한다.
본 발명의 다른 특징 및 이점은 첨부된 도면과 함께 이하의 설명으로부터 명백해질 것이다.
- 도 1 은 차분 로직에서의 AND 게이트이다.
- 도 2 는 프로그래머블 회로내의 차분 로직, 예를 들어, FPGA 유형에서 산출 단계의 페이즈의 표현이다.
- 도 3 은 차분 로직에서의 예상 평가의 예시이다.
- 도 4 는 본 발명에 따라서 BCLD (밸런싱된 셀-기반 차분 로직) 회로 내에서 산출 단계 시에 프리차지 페이즈와 평가 페이즈 사이에 삽입된 동기화 페이즈의 예시이다.
- 도 5 는 산출 셀에 도달하기 위한 차분 네트워크 내에서 경로 차이의 예시를 나타내는 도면이다.
- 도 6 은 차분 네트워크 내에서의 산출이 후속하는 입력에서의 변수들을 동기화하기 위해 BCDL 게이트의 동작 원리를 나타내는 도면이다.
- 도 7 은 본 발명에 따라서 BCDL 게이트에서 간략화된 산출 페이즈의 예시를 나타내는 도면이다.
- 도 8 은 글로벌 신호를 이용하여 전술한 간략화된 산출 페이즈를 구현하기 위한 BCDL 게이트의 동작 원리를 나타내는 도면이다.
- 도 9 는 전술한 산출 페이즈에 수반되는 신호에 대한 타이밍 도면의 표현을 나타내는 도면이다.
- 도 10 은, 프로그래머블 네트워크, 예를 들어, FPGA 유형의 산출 셀의 아키텍쳐의 표현을 나타내는 도면이다.
- 도 11 의 (a), (b), (c) 및 (d) 는 본 발명에 따른 회로 내에서 전력 밸런스의 예시를 나타내는 도면이다.
- 도 12 는 BCDL 게이트의 구조의 표현을 나타내는 도면이다.
- 도 13 은 FPGA 셀 내에서 일치 함수의 예시적인 실시형태이다.
- 도 14 는 글로벌 프리차지 입력을 갖지 않는 BCDL 게이트의 예시적인 실시형태이고, 이는 수많은 입력을 수용하는 것을 가능하게 하여 랑데뷰 셀들을 요구한다.
- 도 15 는, 몇몇 입력을 갖고, 일치 및 산출 함수들이 동일한 셀로 통합되어 있는, BCDL 게이트의 예시적인 실시형태이다.
도 1 은 차분 로직의 원리를 나타내는 예시로서, WDDL 로직에서의 AND 게이트 (1,2) 를 나타낸다. 이 게이트는 상보형 로직 모드에서 동작하는 2 개의 듀얼 로직 네트워크 (1,2) 로 이루어진다. 데이터는 듀얼-레일 형태로 나타나고, 각각의 로직 변수 a 는 이하의 방식으로 인코딩된 한 쌍의 신호 (at,af) 로부터 형성된다.
- 휴식 상태용 (0,0): a 값은 정의되지 않음 - 이하, Ω 로 표시됨;
- (1,0) 은 a=1 인 활성 상태;
- (0,1) 은 a=0 인 활성 상태.
2 개의 입력 (a 및 b) 및 출력 s 를 갖는 로직 게이트 H 는 로직 함수 T(at, bt) 및 F(af,bf) 를 각각 갖는 2 개의 게이트 (1,2) 에 의해 물리적으로 표현된다.
- st = T(at,bt)
- sf = F(af,bf).
"참" 로직 네트워크는 신호 st 를 전달하는 함수 T 에 대응한다. "거짓" 듀얼 로직 네트워크는 듀얼 신호 sf 를 전달하는 함수 F 에 대응한다. 도 1 은, 함수 T 를 수행하는 "참" 네트워크 (1) 가 2 개의 비상보형 입력 (at 및 bt) 를 수신하는, "AND" 게이트를 나타낸다. "OR" 듀얼 함수는 함수 F 를 수행한다. 신호 x 에 대해, 이하의 식이 충족된다.
-
Figure 112010068543461-pct00005
-
Figure 112010068543461-pct00006
.
도 2 는, 예를 들어, WDDL (Wave Dynamic Differential Logic) 유형의 차분 로직에서 산출 단계의 페이즈를 나타낸다. 이 단계는 연속적인 페이즈, 즉, 프리차지 페이즈 (21) 및 평가 페이즈 (22) 를 포함한다. 입력 변수 at, bt, af, bf 및 대응 출력 변수 st, sf 의 상태의 예시는 프리차지 페이즈 및 평가 페이즈 하에서 나타난다. 도 2 의 타이밍 다이어그램은, 변수가 프리차지 페이즈에서 평가 페이즈로 그리고 그 반대로 스위칭되는 경우인, 전이의 수가 동일하다는 것 (이 경우, 3 개) 을 나타낸다. CMOS 전자 기술에서 특히 전이의 수와 전력 소모가 직접적으로 연관되기 때문에, 이에 따라 소모되는 전력은 밸런싱된다.
그러나, 명백한 전력 밸런스에도 불구하고, 2-차 효과는 데이터 누설을 일으킬 수도 있다. 예를 들어, at 가 af 보다 앞서 있거나 af 에 뒤처져 있는 경우, 타임 시프트가 변수 a 의 값으로부터 추론하는 공격자에 의해 인식될 수도 있다. 이러한 현상은, 밸런싱된 듀얼-레일 상호접속, 즉, 전기적 관점, 특히 길이 및 전기용량 (capacitance) 의 관점에서 완벽하게 밸런싱된 2 개의 라인을 이용함으로써 방해될 수도 있다. 이 듀얼-레일 라인이 밸런싱된다고 가정하면, 현재 제안된 로직 모드에서 공격의 가능성을 허용하는 수많은 다른 현상들이 있다. 전술한 바와 같이, 가장 중요한 것은 특히 차분 네트워크에서의 예상 평가 및 기술적 차이이다.
도 3 은 예상 평가를 갖는 WDDL 로직내의 타이밍 다이어그램을 나타낸다. 신호 a 가 신호 b 보다 앞서 있거나 신호 b 에 뒤처져 있는 경우, 예상 평가는 도 3 에 도시된 바와 같이 발생할 수도 있다. 신호 a 의 성분와 신호 b 의 성분 사이의 지연은 AND 함수와 OR 함수 사이의 로직 차이에 의해 게이트 (1,2) 의 출력에 반영된다. 시간 인터벌
Figure 112010068543461-pct00007
t1
Figure 112010068543461-pct00008
t2 로부터, 신호 a 가 0 과 동일한지 또는 1 과 동일한지의 여부를 알 수 있다. 도 3 에서 더욱 정확하게, b 는 a 보다 항상 빠르다. b 가 타이밍 다이어그램의 처음 1/2 에서와 같이 0 과 동일한지 또는 두 번째 1/2 에서와 같이 1 과 동일한지의 여부에 따라서, 출력은
Figure 112010068543461-pct00009
t1 에서 보다 천천히 평가하고,
Figure 112010068543461-pct00010
t2 에서 보다 빠르게 평가하여 b 의 값을 드러낸다. 예상 평가 (22) 가 있는 것과 동일한 방식으로, 몇몇 신호가 다른 신호들보다 0 으로 더욱 빠르게 스위칭한다는 것을 의미하는 예상 프리차지 (21) 가 있다.
특히, a 보다 b 를 더 빠르게 하는데는 2 가지 이유가 있다.
- 데이터 신호 bt 및 bf 는 게이트에 직접적으로 연결된 반면에, at 및 af 는 수많은 상호접속을 통과하고 이에 따라 수많은 스위칭 엘리먼트들을 통과한다.
- 데이터 신호 at 및 af 는 중간 게이트를 통과하는 반면에, bt 및 bf 는 직접 도착한다.
기술에 따라 전력 소모에 의해 공격에 대한 취약성으로 이어지는 다른 현상은 로직 네트워크와 그 보충물 사이에서 확대된 에너지의 차이이다. 예를 들어, a 가 1 과 동일한 AND 게이트에 대한 WDDL 로직에서, b 가 1 과 동일한 경우의 AND 게이트는 스위칭되고 그렇지 않으면 이는 OR 게이트이다. 따라서, 이러한 사실로부터, AND 및 OR 게이트 전이가 동일한 전력 소모를 갖지 않는 경우, b 의 값을 추론하는 것이 가능하다.
MDPL 로직은 이러한 문제를 극복하지만 추가적인 비용이 든다. 먼저, 클록 사이클당 하나의 마스크 비트를 발생시키는 참 난수 생성기 (true random number generator) 를 가질 필요가 있다. 또한, 각각의 게이트의 하나의 입력은 마스크에 전용되어야만 한다.
이러한 차별적인 특성으로 인해, WDDL 로직은 보통의 로직에 비해 불가피하게 2 배 더 복잡하다. 또한, 증가 함수인 함수 T 및 F 의 선택에 대한 추가적인 중요한 제한이 있다. 이러한 조건은 산출 페이즈 동안 기생 스위칭을 방지하고 로직 콘 (logic cone) 에 따른 프리차지 값의 전파를 보증하는 것을 가능하게 한다. 이러한 증가 함수 제한은 FPGA 의 셀 유형을 한정한다. MDPL 로직은 FPGA 에서 생산하기에 훨씬 더 복잡하다.
본 발명은 예상 평가 및 기술적 차이의 결함을 제거하는 로직의 신규 유형을 생성하는데, 이는 밸런싱된 셀-기반 차분 로직을 나타내는 BCDL 로직으로 이하 지칭될 것이다. BCDL 로직에서 동작하는 회로에서:
- 데이터 동기화 단계는 프리차지 페이즈 또는 평가 페이즈로의 실제 스위칭 이전에 각각의 게이트에 추가된다;
- 동기화는 데이터 그룹에서 수행된다; 그리고
- 동기화 산출은 회로에 의해 수행되는 산출과 동시에 수행된다.
본 발명은:
- 글로벌 레벨, 즉, 산출 셀 T 와 F 사이에; 그리고
- 로컬 레벨, 즉, 산출 셀 내부에,
이러한 동작을 적용한다.
도 4 는 동기화 단계를 나타낸다. 이 동기화 단계는 평가 페이즈 이전에 각각의 게이트에서 듀얼 네트워크 T,F 를 통해서 수행된다. 특히, 이는 예상 평가 및 프리차지 문제들을 회피하는 것을 가능하게 한다.
동기화는 가장 지연된 신호를 대기하는데 있다. 따라서, 2 개의 신호들 사이에서 산출 시간의 차이로부터 초래되는 예상 평가의 원인은 가장 지연된 신호에 대해 대기함으로써 제거된다.
도 4 는 프리차지 및 평가 사이클을 이루는 연속적인 동기화 및 산출 페이즈 (41, 42, 43, 44) 를 나타낸다. 제 1 페이즈 (41) 는 프리차지 산출을 실행하고, 제 2 페이즈 (42) 는 예를 들어 상태 1 의 마지막 신호를 대기함으로써 제 1 동기화를 수행한다. 이 페이즈에는 평가 페이즈 (43) 가 후속하고, 이 평가 페이즈에는 다음 사이클의 프리차지 페이즈 (41) 이전에 동기화 페이즈 (44) 가 후속된다. 이러한 동기화 단계 (44) 는 예를 들어 상태 0 의 마지막 신호에 대한 대기를 강요한다.
도 5 는 2 개의 시프트 레지스터 (51, 52) 및 듀얼 T,F 게이트 (53, 54, 55) 를 포함하는 듀얼 로직 네트워크의 일부를 나타낸다. 제 1 경로 (501) 는 제 1 시프트 레지스터 (51) 로부터 인입하는 신호 a 를 운반하고, 제 2 경로 (502) 는 제 2 시프트 레지스터 (52) 로부터 인입하는 신호 b 를 운반한다. 2 개의 경로는 T,F 게이트 (55) 의 입력에서 합류하고 그후 출력 신호 s 를 전달한다. 신호 a 는 게이트 (53, 54) 의 연속성에 의해 제 1 경로에서 지연된다. 또한, 이러한 게이트는 다른 경로 (503, 504) 로부터 인입하는 입력 신호로서 수신한다. 각 게이트의 입력에서, 블록 (56, 57, 58) 은 동기화를 수행한다. 도 5 에 도시된 예시에서, 신호 s 를 전달하는 최종 게이트 (55) 는 이 예시에서 가장 지연된 신호, 여기서는 신호 a 의 도착에 해당하는 시간 t2 에서만 그 산출을 수행한다.
비동기 로직에서의 동기화는 랑데뷰 셀 RV (rendezvous cell) 을 갖는 2 개의 신호 사이에서 발생한다. 셀 RV 은 2 개의 입력이 동일한 로직 값 L 을 갖는 경우에만 로직 값 L 로 스위칭되고, 그 이외에는 상태를 변경하지 않는다. 따라서, 셀 RV 은 일치가 있는 경우에만 입력 신호의 상태를 0 으로 또는 1 로 변경하는 메모리이다. BCDL 로직에서, FPGA 회로의 하나의 동일한 셀에서의 데이터 그룹에서 랑데뷰가 발생한다. 예를 들어, 특정 U0 및 U1 이 이용된다.
U1 셀은 평가를 인에이블하는 신호를 생성하고, 이 신호는, 모든 데이터가 사전에 정의된 상태 Ω 를 벗어나자마자 1 로 스위칭된다. 더욱 구체적으로, U1(x,y,...) 로 나타난 신호는 이하의 식으로 정의된다.
x≠(0,0) 이고, y≠(0,0) 인 경우에는 U1(x,y,...)=1..., 그 밖에는 U1(x,y,...)=0 임 (1)
U0 셀은 출력을 인에이블하는 신호를 발생시켜 상태 Ω 로 복귀한다. 이 신호는, 각각의 입력이 이하의 식에 따라서 상태 Ω 에 있게 되자마자, 1 로 스위칭된다.
x=y=(0,0) 인 경우에는 U0(x,y,...)=1..., 그 밖에는 U0(x,y,...)=0 임 (2)
따라서, 이 산출은 일치가 있을 때만, 즉 U0 또는 U1 가 활성일 때만 시작되고, 이 산출은 일치가 없는 한, 즉 U0 또는 U1 가 불활성일때는 정지된다.
도 6 은 데이터 그룹 동기화의 원리를 나타낸다. 프리차지 또는 평가 산출을 수행하는 T,F 듀얼 포트 (60) 로의 데이터 (a, b, c) 의 병렬 입력이 있고, U1 셀 (61) 및 U0 셀 (62) 로의 병렬 입력이 있다. U1 셀은 평가 인에이블 신호 (63) 를 게이트 (60) 로 전송하고, U0 셀은 프리차지 인에이블 신호 (64) 를 게이트로 전송한다.
프리차지 산출은, 모든 신호가 0 상태로 스위칭되어야만 하는 반면에 평가가 정보를 수반하는 신호에 대한 실제 산출에 해당하기 때문에 평가 산출에 비해 간단하다. 다른 신호들보다 빠른, 예를 들어 전체 리셋-투-제로 신호를 이용하는 프리차지 이전에 동기화 페이즈 (44) 를 제거하면서, 이러한 특성이 BCDL 로직에서 활용된다.
도 7 은 프리차지 페이즈 (41) 바로 직전에 모든 신호를 0 으로 설정하는 신호 PRE 를 나타낸다. 이 경우에 프리차지 및 평가 사이클은 평가 페이즈 (43) 이전의 단일의 동기화 페이즈 (42) 만을 포함하는 단지 3 개의 페이즈를 포함한다. 이는, 게이트의 구조를 간략화하는데, 특히 이하의 이유를 갖는다.
- 신호 PRE 로 교체되기 때문에, 0 으로의 일치 단계를 수행할 필요가 없다; 그리고
- 신호 PRE 가 앞에 있기 때문에, 일치를 0 이나 또는 1 (랑데뷰) 만으로 변경하게 하기 위해, 게이트의 출력을 저장할 필요가 없다. 출력은 신호 PRE 의 도착 직후에 0 으로 변경되고 1 로 일치된 경우에만 1 로 스위칭될 수 있다.
도 8 은, 도 7 로 도시된 바와 같이 평가시에 0 으로의 필수적인 일치가 전체적인 프리차지 신호 PRE 를 통해서 프리차지 스위칭 커맨드를 수신하는 AND 게이트 (71) 에 의해 교체되기 때문에, BCDL 로직에서 간략화된 게이트 구조를 나타낸다. 따라서, AND 게이트로부터의 출력 (72) 으로서의 신호
Figure 112010068543461-pct00011
는 이하의 산출을 동기화시키는 것을 가능하게 한다.
-
Figure 112010068543461-pct00012
가 신호 PRE 직후에 0 으로 스위칭되는 경우, 입력에 대해 독립적으로 프리차지가 강제된다.
-
Figure 112010068543461-pct00013
가 1 로 스위칭되는 경우, 신호 PRE 의 일부분이 1 에 있고, 입력값의 랑데뷰가 영향을 받으며, 평가 페이즈가 시작한다는 것을 나타낸다.
도 9 는 프리차지 페이즈 (21) 및 평가 페이즈 (22) 동안 신호 a, b, s 및
Figure 112010068543461-pct00014
에 대한 타이밍 다이어그램을 나타낸다. 이 타이밍 다이어그램은, 신호
Figure 112010068543461-pct00015
의 전이 (91) 동안 입력에 대해 독립적으로 프리차지 페이즈 (21) 가 강제된다는 것을 나타낸다.
전술되고 전체적인 레벨에 적용된 해결책에서, 회로를 통해서 예상 평가와 관련된 문제에 대항하는데 BCDL 로직이 이용된다. 공격에 대한 강건함은, 특히 기술적 차이 및 국부적 예상 평가를 회피하기 위해 단일의 BCDL 게이트의 레벨에서 국부적으로 검증되어야만 한다. 또한, 동기화의 추가는 복잡성의 큰 증가에 대한 원인이 되지 않아야 한다.
도 10 은 3 개의 입력 (a, b, c) 을 갖는 FPGA 회로의 셀의 구조를 나타낸다. FPGA 회로에서, 로직은 셀의 로직 함수를 정의하는 LUT (룩-업 테이블) (101) 을 포함하는 메모리-기반 셀에서 수행된다. 도 10 은, 셀의 구조가 3 개의 컬럼 (103, 104, 105) 을 형성하는 멀티플렉서 (102) 의 트리와 관련된 룩-업 테이블 (LUT) (101) 에 기초한다는 것을 나타낸다. 룩-업 테이블 (101) 은, 3 중항 (x,y,z) (여기서, x, y 및 z 는 값 0 또는 값 1 을 취함) 각각에 대한 함수 s 의 이진값을 저장한다.
제 1 컬럼, 또는 입력 컬럼은 트리의 제 1 스테이지의 멀티플렉서 (102) 로부터 형성되고, 제 3 컬럼 (105) 은 마지막 스테이지의 멀티플렉서, 즉, 출력 멀티플렉서로부터 형성된다. 입력 (a, b, c) 은 멀티플렉서들을 제어한다. 따라서, 컬럼의 갯수는 입력의 갯수에 해당한다. 함수의 값 s(x,y,z) 각각은 입력 컬럼 (103) 의 멀티플렉서의 입력에 존재한다. 멀티플렉서 스테이지를 제어하는 이진값 (a,b,c) 의 다양한 조합은 입력 컬럼 (103) 의 입력이 선택되도록 한다.
본 발명에 따르면, 국부적인 강건함은 이하의 2 개의 핀아웃 모드에 기초하여 개선된다.
- 신호
Figure 112010068543461-pct00016
는 멀티플렉서의 트리의 제 1 컬럼에 인입한다;
- "참" 입력 et 및 "거짓" 입력 ef 의 쌍들은 게이트 T 및 게이트 F 에서의 동일한 각각의 핀과 관련된다.
이러한 핀아웃 모드는 로컬 보안에 관한 중요한 결과를 달성하게 하고, 수행하는데 매우 저렴하다.
먼저, 기생 스위칭이 없다. 신호
Figure 112010068543461-pct00017
는 프리차지 페이즈 도중에 먼저 스위칭하기 때문에, 데이터 입력이 스위칭될 때 기생 스위칭의 어떠한 리스크도 없이 모든 내부의 등전위가 0 으로 강제된다. 이와 다르게, 신호는 평가 페이즈 이전에 스위칭되어 유지된다. 따라서, 데이터에 의해 제어된 멀티플렉서는 0 을 선택한다. 그후, 신호
Figure 112010068543461-pct00018
는 함수의 값을 사전배치된 멀티플렉서 (102) 를 통해서 통과하게 한다.
두 번째로, 복잡성이 감소된다. 이는, 동일한 이유로, 멀티플렉서는 입력에 정확하게 배치되어 있기 때문에, 기생 스위칭을 회피하기 위해 증가 함수를 가질 필요는 없다. 이는, 특히, n-입력 LUT 에 대한 수 2n 까지의 모든 가능한 함수의 이용을 가능하게 하여, 증가 함수의 서브어셈블리를 통해서 보다는 훨씬 더 넓은 최적화 가능성을 제안한다. 예를 들어, 4-입력 LUT 에 대해, 65536 개의 가능한 함수들 중에서 단지 166 개의 증가 함수만이 있다.
셋째로, 기술적인 바이어스들이 크게 감소된다. 전체 T 및 F 등전위 스위칭의 수는 입력의 조합의 함수로서 변경되지 않는다. 이 수는, n 이 LUT 의 입력의 수인 경우에 2n-1 와 동일하게 일정하다. 따라서, 전력 소모 프로파일은 T 와 F 쌍에 대해 동일하기 때문에, T 활동을 F 활동과 구별하는 것을 어렵게 만든다. 또한, 시간 경과에 따른 멀티플렉서에 의한 스위칭의 연속은 데이터와는 별개이다.
마지막으로, LUT 테이블 내에서 예상 평가 및 예상 프리차지는 없다. 이는, 항상 신호 다음으로 도착하는 평가를 지연시키는 그리고 데이터에 대해 대기하지 않고 프리차지를 강제하는 신호
Figure 112010068543461-pct00019
이기 때문이다. 다시 말해서, 평가는 항상 지연되고, 프리차지는 항상 데이터와 별개로 예상된다.
도 11 의 (a), (b), (c) 및 (d) 는 3 개의 입력 LUT 테이블의 예시에서 BCDL 로직에서 스위칭할 때 밸런싱하는 전력 소모를 나타낸다. 더욱 구체적으로, 이 4 개의 도면은 신호
Figure 112010068543461-pct00020
가 스위칭할 때 2 개의 입력-XOR 게이트 내의 모든 조합을 나타낸다. 이러한 모든 도면에서, 상부 셀은 "참" 게이트 T 이고, 저부 셀은 "거짓" 게이트 F 이다. 회로 T 및 F 의 스위칭에 대응하는 시간-의존형 전체 전력 피크는 커브 (111), 컬럼에 대면하는 피크로 나타내고, 그들의 대응 컬럼들이 스위칭할 때 소모되는 전력에 해당한다. 일 예를 제공하면, 도 11 의 (a) 는, 제 2 컬럼 (104) 및 제 3 컬럼 (105) 에 연결된 입력 신호가 (0,0) 과 동일한 경우에 해당한다. 굵게 표시된 멀티플렉서 (112, 113, 114, 115, 116, 117 및 118) 는 그들의 출력 스위치를 나타낸다. 커브 (111) 는 이러한 제 1 조합 (0,0) 에 해당하는 전력 피크를 나타낸다. 이하의 도면에서 조합과 관련된 전력 커브 (111) 는 동일하다. 따라서, 스위칭 타임 또는 전력 소모 둘 중 어느 쪽과 관련한 T,F 쌍에서의 전체적인 밸런싱이 있다. 다시 말해서, 도 11 의 (a), (b), (c) 및 (d) 에서 나타내는 바와 같이, 각각의 조합 (0,0), (0,1), (1,0) 및 (1,1) 에 대한 동시의 스위칭 동작의 수가 있다.
임의의 FPGA 시스템 내의 어플리케이션을 구현하기 위한 프로그램을 이용하여, BCDL 로직으로 스위칭하는 것이 자동적으로 발생할 수도 있다. 표준 FPGA 툴로부터 획득된 분석 툴은 이 로직으로 하여금 전술한 로직으로 변형하도록 허용한다. 이러한 분석은 BCDL 게이트의 일종으로 로직 엘리먼트들을 대체하는데 제한된다. 한 쌍의 상호접속 와이어의 루팅은 밸런싱된 방식으로 수행되어야만 한다.
도 12 는 4 개의 셀 (121, 122, 123 및 124), 즉, 2 개의 1-일치 셀 (121 및 122), 함수 T 에 대한 하나의 셀 (123) 및 그 듀얼 함수 F 에 대한 하나의 셀 (124) 을 포함하는 BCDL 게이트의 구조를 나타낸다. 전술한 U1 셀의 캐스케이딩이 가능하다. 예를 들어, BCDL 게이트는:
- 상보형 로직으로 동작하는 2 개의 듀얼 셀 (123, 124) (각각의 셀은 n 개의 입력, T 셀의 경우에는 Eit 및 F 셀의 경우에는 Eif 를 수신하고, i 는 1 에서 n 까지 변화하고, T 및 F 셀은 출력 신호 각각의 성분들 st 및 sf 를 전달함)
- 1 로 일치시키기 위한 그리고 신호
Figure 112010068543461-pct00021
를 발생시키기 위한 2 개의 U1 셀 (각각의 셀은 한 쌍 (Eit, Eif) 의 하나의 1/2 에 대응하는 n 개의 입력을 수신함) 로 이루어진다.
도 13 은 일치를 이루기 위해 U1 셀에 캐스캐이드 접속된 U'1 셀 (122) 의 일 실시형태를 나타낸다. 입력 (Eit, Eif)...((Ejt, Ejf) 은 OR 게이트 (121) 에 연결되고, 이들 OR 게이트의 출력은 AND 게이트 (122) 의 입력에서 조합되며, 인버스 신호
Figure 112010068543461-pct00022
는 이 게이트 (122) 의 입력에서 OR 게이트들의 출력과 조합된다. AND 게이트 (122) 의 출력은 신호
Figure 112010068543461-pct00023
를 전달한다.
전체 프리차지 없이 그리고 수많은 입력을 가지는 BCDL 게이트의 일 구현에서, 전체 프리차지 신호 PRE 는 이용될 수도 있거나 또는 이용되지 않을 수도 있다. 그후, 산출이 전술한 바와 같이 4 개의 페이즈에서 수행된다. 특히, T 및 F 게이트에 대한 LUT 테이블에서 하나의 입력을 획득하여 이에 따라 입력의 수를 증가시키는 것을 가능하게 한다. 한편, 전체 프리차지는 0 으로의 일치 산출에 의해 대체되어야만 한다. 또한, 일치가 없을 때는 랑데뷰의 필요성 (즉, 산출을 정지시킬 필요성) 이 있다. 특정 랑데뷰 셀이 이 목적으로 이용된다.
따라서, 도 14 에 도시된 바와 같이, 전체적인 프리차지를 갖지 않는 BCDL 게이트는:
- T 및 F 함수에 대한 상보형 로직에서 동작하는 2 개의 셀 (123, 124) (각각의 셀은 n 개의 입력을 수신함);
- 출력 신호의 성분 st 및 sf 를 전달하는 적어도 2 개의 랑데뷰 셀 RV (143, 144) (RV 셀은 T 및 F 함수 각각을 갖는 셀과 연관되고, 정확한 수는 LUT 의 입력의 수에 의존함);
- 0 으로 일치하게 하기 위한 2 개의 U0 (141, 142) (그 출력은 랑데뷰 셀의 입력에 연결되어 있음);
- 1 로 일치하게 하기 위한 2 개의 U1 (121, 122) (그 출력은 랑데뷰 셀의 입력에 연결되어 있음)
로 이루어진다.
도 14 에 도시된 게이트는 특히 DES 암호화 알고리즘 치환 박스를 실행하도록 채택된다. 전체적인 프리차지를 갖지 않는 BCDL 게이트는, 예를 들어, WDDL 로직과 같은 증가 함수를 갖는 조건을 충족해야만 한다.
몇몇 입력을 갖는 어떠한 전체 프리차지를 갖지 않는 BCDL 게이트의 구현의 경우, 1-로의 일치 함수는 도 15 에 도시된 예시에서 도시된 바와 같이 T 및 F 셀로 통합될 수도 있다. 1 로의 일치 함수가 가장 빠른 신호의 도착과 함께 0 으로 T 및 F 함수를 리셋하기 때문에, 신호 PRE 를 더 이상 이용할 필요가 없다. 그러나, U1 셀이 분리될 때는 이 원리가 적용가능하지 않고, 신호 경로가 있기 때문에, U1 셀이 더 느린 경우에 예상되는 것보다 T 및 F 셀이 프리차지 페이즈로 더 빠르게 스위칭될 수 있다. 이 경우, 신호 PRE 가 존재하지 않기 때문에, 프리차지의 0 값의 전파가 있고, 기생 스위칭을 방지하기 위해 증가 함수를 이용하고 로직 콘에 따라서 프리차지를 전파시킬 필요가 있다. 도 15 에 도시된 예시에서, 입력 신호의 듀얼 성분 (Eit, Eif) 는 T 셀 (151) 및 F 셀 (152) 로 통합된 OR 게이트 (153) 로 전송되며, 입력들은 또한 셀 (151, 152) 의 실제 T 및 F 게이트의 입력에 접속된다. 이러한 셀들의 출력 및 OR 게이트 (153) 의 출력은 AND 게이트 (154) 의 입력과 조합되고, 그 출력은 출력 신호의 성분 st 및 sf 를 전달한다. 도 15 는 적은 수의 입력을 갖는 함수의 특정한 경우에 있는 게이트를 도시한다. 1 로의 일치 로직은 T 및 F 셀에 통합되어, 가장 빠른 신호를 갖는 프리차지 페이즈로 스위칭할 수 있다.

Claims (21)

  1. 프로그래머블 암호화 회로를 보호하는 방법으로서,
    상기 방법은 각 셀의 로직 함수를 정의하는 메모리-기반 셀 (101) 들로 구성된 게이트들을 이용하고,
    상기 프로그래머블 암호화 회로는 신호들의 쌍들로 구성된 이진 변수들에 대해 산출할 수 있는 차분 네트워크를 통합하도록 구성되며,
    상기 차분 네트워크는 상기 신호들의 쌍들의 제 1 성분에 대해 로직 함수들 (T) 을 구현하는 셀들의 제 1 네트워크 (1) 및 상기 신호들의 쌍들의 제 2 성분에 대해 상보형 로직 (F) 에서 동작하는 듀얼 셀들의 제 2 네트워크 (2) 를 포함하고,
    산출 단계는, 상기 셀들의 입력시에 상기 변수들이 기지의 상태에 놓이는 프리차지 페이즈 (41), 상기 셀들에 의해 산출이 이루어지는 평가 페이즈 (43) 를 포함하고,
    각각의 상기 프리차지 페이즈와 상기 평가 페이즈 이전에 동기화 페이즈 (42, 44) 가 수행되는 것을 특징으로 하는 프로그래머블 암호화 회로 보호 방법.
  2. 제 1 항에 있어서,
    가변 동기화 페이즈 (42) 는, 변수들의 그룹에서 수행되고, 입력 변수들을 전달하는 수개의 신호들을 수신할 수 있는 각 셀에서의 상기 평가 페이즈 이전에 삽입되고, 상기 동기화는 가장 지연된 신호에 대해 수행되는 것을 특징으로 하는 프로그래머블 암호화 회로 보호 방법.
  3. 제 1 항에 있어서,
    가변 동기화 페이즈 (44) 는, 변수들의 그룹에서 수행되고, 입력 변수들을 전달하는 수개의 신호들을 수신할 수 있는 각 산출 셀에서의 상기 프리차지 페이즈 이전에 삽입되고, 상기 동기화는 가장 지연된 신호에 대해 수행되는 것을 특징으로 하는 프로그래머블 암호화 회로 보호 방법.
  4. 제 2 항에 있어서,
    상기 동기화 페이즈 (42, 44) 는 일치 셀들을 이용하여 랑데뷰 메커니즘 (56, 57, 58) 에 의해 상기 차분 네트워크 (53, 54, 55) 의 각 셀에 대해 수행되고, 그 입력들은 상기 차분 네트워크의 상기 셀의 입력들에 대해 공통이고, 그 출력들은 상기 셀의 동작을 제어하며, 상기 일치 셀들의 입력들에 대한 값이 일치하는 경우에 랑데뷰가 발생하고, 상기 동기화 이후에 상기 랑데뷰에 도달하는 경우에만 상기 게이트의 출력들이 변화하는 것을 특징으로 하는 프로그래머블 암호화 회로 보호 방법.
  5. 제 4 항에 있어서,
    상기 동기화 페이즈는, 차분 산출 네트워크에 대해 공통의 입력들을 갖고 상기 평가 페이즈 및 상기 프리차지 페이즈를 각각 허가하는 2 개의 일치 셀들, 즉 U1 일치 셀 (61) 및 U0 일치 셀 (62) 을 이용하고,
    - 상기 U1 일치 셀은, 각 변수와 연관된 신호들의 쌍들인 모든 입력이 프리차지 상태를 벗어나자마자 평가를 허가하는 신호 (63) 를 생성하고;
    - 상기 U0 일치 셀은, 각 변수와 연관된 신호들의 쌍들인 모든 입력이 상기 프리차지 상태로 스위칭되자마자 프리차지를 허가하는 신호 (64) 를 생성하는 것을 특징으로 하는 프로그래머블 암호화 회로 보호 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 동기화 페이즈에 대해, U0 셀 대신에 일반 (general) 신호 (PRE) 를 이용하여 상기 프리차지 페이즈 이전에 상기 입력 변수들을 0 으로 재설정하고,
    상기 일반 신호 (PRE) 는 다른 신호들에 앞서 있는 것을 특징으로 하는 프로그래머블 암호화 회로 보호 방법.
  7. 제 6 항에 있어서,
    상기 동기화 페이즈는:
    - 차분 산출 네트워크에 대해 공통인 입력들을 갖고, 그 모든 입력이 프리차지 상태를 벗어나자마자 평가를 허가하는 신호를 생성하는 셀 U1 (61); 및
    - 상기 셀 U1 의 출력과 재설정 신호 (PRE) 를 조합하는 게이트 (71) 를 이용하고;
    조합된 동기화 신호 (
    Figure 112014025261151-pct00024
    ) 는 그 이진값에 기초하여 상기 프리차지 페이즈 또는 상기 평가 페이즈를 허가하는 것을 특징으로 하는 프로그래머블 암호화 회로 보호 방법.
  8. 프로그래머블 회로로서,
    상기 프로그래머블 회로는 각 셀의 로직 함수를 정의하는 메모리-기반 셀 (101) 들로 구성된 게이트들을 포함하고,
    상기 프로그래머블 회로는 신호들의 쌍들로 구성된 이진 변수들에 대해 산출할 수 있는 차분 네트워크를 통합하고,
    상기 차분 네트워크는 상기 신호들의 쌍들의 제 1 성분에 대해 로직 함수들 (T) 을 구현하는 셀들의 제 1 네트워크 (1) 및 상기 신호들의 쌍들의 제 2 성분에 대해 상보형 로직 (F) 에서 동작하는 듀얼 셀들의 제 2 네트워크 (2) 를 포함하고,
    산출 단계는 상기 셀들의 입력시에 상기 변수들이 기지의 상태에 놓이는 프리차지 페이즈 (41), 및 상기 셀들에 의해 산출이 이루어지는 평가 페이즈 (43) 를 포함하고,
    각각의 상기 프리차지 페이즈와 상기 평가 페이즈 각각 이전에 동기화 페이즈 (42, 44) 가 수행되는 것을 특징으로 하는 프로그래머블 회로.
  9. 제 8 항에 있어서,
    가변 동기화 페이즈 (42) 는, 변수들의 그룹에서 수행되고, 입력 변수들을 전달하는 수개의 신호들을 수신할 수 있는 각 셀에서의 상기 평가 페이즈 이전에 삽입되고, 상기 동기화는 가장 지연된 신호에 대해 수행되는 것을 특징으로 하는 프로그래머블 회로.
  10. 제 8 항에 있어서,
    가변 동기화 페이즈 (44) 는, 변수들의 그룹에서 수행되고, 입력 변수들을 전달하는 수개의 신호들을 수신할 수 있는 각 산출 셀에서의 상기 프리차지 페이즈 이전에 삽입되고, 상기 동기화는 가장 지연된 신호에 대해 수행되는 것을 특징으로 하는 프로그래머블 회로.
  11. 제 9 항에 있어서,
    상기 동기화 페이즈 (42, 44) 는 일치 셀들을 이용하여 랑데뷰 메커니즘 (56, 57, 58) 에 의해 상기 차분 네트워크 (53, 54, 55) 의 각 셀에 대해 수행되고, 그 입력들은 상기 차분 네트워크의 상기 셀의 입력들에 대해 공통이고, 그 출력들은 상기 셀의 동작을 제어하며, 상기 일치 셀들의 입력들에 대한 값이 일치하는 경우에 랑데뷰가 발생하고, 상기 동기화 이후에 상기 랑데뷰에 도달하는 경우에만 상기 게이트의 출력들이 변화하는 것을 특징으로 하는 프로그래머블 회로.
  12. 제 11 항에 있어서,
    상기 동기화 페이즈는, 차분 산출 네트워크에 대해 공통인 입력들을 갖고 상기 평가 페이즈 및 상기 프리차지 페이즈를 각각 허가하는 2 개의 일치 셀들, 즉 U1 일치 셀 (61) 및 U0 일치 셀 (62) 을 이용하고,
    - 상기 일치 셀 U1 은, 각 변수와 연관된 신호들의 쌍들인 모든 입력이 프리차지 상태를 벗어나자마자 평가를 허가하는 신호 (63) 를 생성하고;
    - 상기 일치 셀 U0 은, 각 변수와 연관된 신호들의 쌍들인 모든 입력이 상기 프리차지 상태로 스위칭되자마자 프리차지를 허가하는 신호 (64) 를 생성하는 것을 특징으로 하는 프로그래머블 회로.
  13. 제 9 항에 있어서,
    상기 동기화 페이즈에 대해, U0 셀 대신에 일반 신호 (PRE) 를 이용하여 상기 프리차지 페이즈 이전에 상기 입력 변수들을 0 으로 재설정하고,
    상기 일반 신호 (PRE) 는 다른 신호들에 비해 앞서 있는 것을 특징으로 하는 프로그래머블 회로.
  14. 제 13 항에 있어서,
    상기 동기화 페이즈는:
    - 차분 산출 네트워크에 대해 공통인 입력들을 갖고, 그 모든 입력이 프리차지 상태를 벗어나자마자 평가를 허가하는 신호를 생성하는 셀 U1 (61); 및
    - 상기 셀 U1 의 출력과 재설정 신호 (PRE) 를 조합하는 게이트 (71) 를 이용하고;
    조합된 동기화 신호 (
    Figure 112014025261151-pct00025
    ) 는 그 이진값에 기초하여 상기 프리차지 페이즈 또는 상기 평가 페이즈를 허가하는 것을 특징으로 하는 프로그래머블 회로.
  15. 제 14 항에 있어서,
    상기 차분 네트워크의 셀이 멀티플렉서 (103, 104, 105) 들의 트리와 연관된 그 로직 함수를 정의하는 메모리 (101) 를 포함하기 때문에, 상기 트리의 제 1 컬럼 (103) 의 상기 멀티플렉서의 입력들은 상기 메모리의 값들을 수신하고, 마지막 멀티플렉서 (102) 의 출력들은 상기 셀의 출력을 형성하며, 상기 조합된 동기화 신호 (
    Figure 112010068543461-pct00026
    ) 는 상기 제 1 컬럼 (103) 의 멀티플렉서를 제어하고, 다른 컬럼들의 멀티플렉서들은 상기 셀의 입력 신호들에 의해 제어되는 것을 특징으로 하는 프로그래머블 회로.
  16. 제 15 항에 있어서,
    상기 입력 변수들의 신호들의 쌍들은 그들 각각의 셀 내의 멀티플렉서들의 동일한 컬럼과 연관되는 것을 특징으로 하는 프로그래머블 회로.
  17. 제 8 항 내지 제 16 항 중 어느 한 항에 있어서,
    적어도 하나의 보호 게이트를 포함하고, 2n 개 입력들의 4 개의 셀들은 2n-1 개 입력들의 보호 게이트 (12) 를 생성하도록 이용되고, 2 개의 셀들은 일치 U1 를 생성하도록 이용되며, 2 개의 셀들은 상기 차분 네트워크에 대해 이용되는 특징으로 하는 프로그래머블 회로.
  18. 제 8 항 내지 제 16 항 중 어느 한 항에 있어서,
    적어도 하나의 보호 게이트를 포함하고, 2n 개 입력들의 8 개의 셀들은 2n 개 입력들의 보호 게이트 (14) 를 생성하도록 이용되고, 4 개 셀들은 일치 U1 및 U0 를 생성하도록 이용되고, 2 개 셀들은 상기 차분 네트워크에 대해 이용되며, 2 개의 셀들은 상기 게이트의 상기 출력들을 "정지 (freezing)" 시키기 위한 랑데뷰를 위해 이용되며, 이용되는 상기 로직 함수는 증가 특성과 관련되는 것을 특징으로 하는 프로그래머블 회로.
  19. 제 8 항 내지 제 16 항 중 어느 한 항에 있어서,
    적어도 하나의 보호 셀을 포함하고, 2n 개 입력들의 2 개의 셀들은 n 개 입력들의 보호 게이트 (15) 를 생성하도록 이용되고, 2 개의 셀들은 일치를 통합하는 상기 차분 네트워크를 생성하도록 이용되며, 이용되는 상기 로직 함수는 증가 특성과 관련되는 것을 특징으로 하는 프로그래머블 회로.
  20. 제 8 항 내지 제 16 항 중 어느 한 항에 있어서,
    암호화 함수를 수행하는 것을 특징으로 하는 프로그래머블 회로.
  21. 제 8 항 내지 제 16 항 중 어느 한 항에 있어서,
    상기 프로그래머블 회로는 FPGA 유형인 것을 특징으로 하는 프로그래머블 회로.
KR1020107023728A 2008-03-25 2009-03-18 프로그래머블 암호화 회로를 보호하는 방법, 및 그 방법에 의해 보호된 회로 KR101542280B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0851904A FR2929470B1 (fr) 2008-03-25 2008-03-25 Procede de protection de circuit de cryptographie programmable, et circuit protege par un tel procede
FR0851904 2008-03-25

Publications (2)

Publication Number Publication Date
KR20110028253A KR20110028253A (ko) 2011-03-17
KR101542280B1 true KR101542280B1 (ko) 2015-08-06

Family

ID=39832362

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107023728A KR101542280B1 (ko) 2008-03-25 2009-03-18 프로그래머블 암호화 회로를 보호하는 방법, 및 그 방법에 의해 보호된 회로

Country Status (10)

Country Link
US (1) US8904192B2 (ko)
EP (1) EP2257904B1 (ko)
JP (1) JP5509485B2 (ko)
KR (1) KR101542280B1 (ko)
CN (1) CN102027481B (ko)
CA (1) CA2719541C (ko)
ES (1) ES2724117T3 (ko)
FR (1) FR2929470B1 (ko)
SG (1) SG189698A1 (ko)
WO (1) WO2009118264A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213835B2 (en) * 2010-04-07 2015-12-15 Xilinx, Inc. Method and integrated circuit for secure encryption and decryption
US8522052B1 (en) 2010-04-07 2013-08-27 Xilinx, Inc. Method and integrated circuit for secure encryption and decryption
WO2017096059A1 (en) 2015-12-02 2017-06-08 Cryptography Research, Inc. Freeze logic
US10891396B2 (en) 2016-05-27 2021-01-12 Samsung Electronics Co., Ltd. Electronic circuit performing encryption/decryption operation to prevent side- channel analysis attack, and electronic device including the same
CN109474415B (zh) * 2018-10-19 2022-06-21 天津大学 三相位单轨预充电逻辑装置
CN109614826B (zh) * 2018-11-23 2021-05-07 宁波大学科学技术学院 一种基于tdpl逻辑的译码器
CN109714043B (zh) * 2018-12-29 2023-02-24 西安智多晶微电子有限公司 一种宽异或电路优化方法
EP3977325A4 (en) * 2019-05-24 2023-06-21 University of Cincinnati SYSTEMS AND METHODS FOR ASYNCHRONOUS PROGRAMMABLE GATE ARRAY DEVICES

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004515180A (ja) 2000-11-28 2004-05-20 ザイリンクス インコーポレイテッド リードバックを防止する方法を備えたプログラマブルロジックデバイス
JP2008005020A (ja) 2006-06-20 2008-01-10 Matsushita Electric Ind Co Ltd プログラマブル論理回路

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999067766A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
DE10213267A1 (de) * 2002-03-25 2003-10-23 Infineon Technologies Ag Registerzelle und Verfahren zum Schreiben auf die Registerzelle
JP3819872B2 (ja) * 2003-05-23 2006-09-13 株式会社東芝 論理演算装置
DE10324049B4 (de) * 2003-05-27 2006-10-26 Infineon Technologies Ag Integrierte Schaltung und Verfahren zum Betreiben der integrierten Schaltung
WO2005081085A2 (en) * 2004-02-13 2005-09-01 The Regents Of The University Of California Logic system for dpa and/or side channel attack resistance
JP4594665B2 (ja) * 2004-07-09 2010-12-08 三菱電機株式会社 耐タンパ対策回路の評価装置、耐タンパ対策回路の評価方法、信号生成回路、信号生成方法、耐タンパ性評価装置及び耐タンパ性評価方法
JP4935229B2 (ja) * 2006-08-02 2012-05-23 ソニー株式会社 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
DE102007009526B4 (de) * 2007-02-27 2017-08-24 Infineon Technologies Ag Vorrichtung zum Speichern eines binären Zustandes
FR2935059B1 (fr) * 2008-08-12 2012-05-11 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst Procede de detection d'anomalies dans un circuit de cryptographie protege par logique differentielle et circuit mettant en oeuvre un tel procede

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004515180A (ja) 2000-11-28 2004-05-20 ザイリンクス インコーポレイテッド リードバックを防止する方法を備えたプログラマブルロジックデバイス
JP2008005020A (ja) 2006-06-20 2008-01-10 Matsushita Electric Ind Co Ltd プログラマブル論理回路

Also Published As

Publication number Publication date
KR20110028253A (ko) 2011-03-17
ES2724117T3 (es) 2019-09-06
CN102027481A (zh) 2011-04-20
EP2257904B1 (fr) 2019-02-13
EP2257904A1 (fr) 2010-12-08
FR2929470A1 (fr) 2009-10-02
CA2719541C (en) 2017-05-30
SG189698A1 (en) 2013-05-31
JP2011518473A (ja) 2011-06-23
FR2929470B1 (fr) 2010-04-30
CA2719541A1 (en) 2009-10-01
US8904192B2 (en) 2014-12-02
JP5509485B2 (ja) 2014-06-04
CN102027481B (zh) 2014-01-29
WO2009118264A1 (fr) 2009-10-01
US20110167279A1 (en) 2011-07-07

Similar Documents

Publication Publication Date Title
KR101542280B1 (ko) 프로그래머블 암호화 회로를 보호하는 방법, 및 그 방법에 의해 보호된 회로
Nassar et al. BCDL: A high speed balanced DPL for FPGA with global precharge and no early evaluation
KR100750425B1 (ko) 결과 오퍼랜드의 표시를 계산하기 위한 장치 및 방법과 컴퓨터 판독 가능한 매체
Nikova et al. Secure hardware implementation of non-linear functions in the presence of glitches
Mangard et al. Side-channel leakage of masked CMOS gates
Suzuki et al. Random switching logic: A new countermeasure against DPA and second-order DPA at the logic level
Fischer et al. Masking at gate level in the presence of glitches
Shan et al. A secure reconfigurable crypto IC with countermeasures against SPA, DPA, and EMA
Bhasin et al. Countering early evaluation: an approach towards robust dual-rail precharge logic
Ramakrishnan et al. SDMLp: On the use of complementary pass transistor logic for design of DPA resistant circuits
He et al. A precharge-absorbed DPL logic for reducing early propagation effects on FPGA implementations
Levi et al. Low-cost pseudoasynchronous circuit design style with reduced exploitable side information
Bhasin et al. Exploiting FPGA block memories for protected cryptographic implementations
Rashidi Low‐cost and two‐cycle hardware structures of PRINCE lightweight block cipher
Mentens Hiding side-channel leakage through hardware randomization: A comprehensive overview
Wu et al. FPGA-based measurement and evaluation of power analysis attack resistant asynchronous S-Box
Popp et al. Implementation aspects of the DPA-resistant logic style MDPL
Bhasin et al. Efficient dual-rail implementations in FPGA using block RAMs
Surya et al. Local clock glitching fault injection with application to the ASCON cipher
Hassoune et al. Low-swing current mode logic (LSCML): A new logic style for secure and robust smart cards against power analysis attacks
Arribas et al. Glitch-resistant masking schemes as countermeasure against fault sensitivity Analysis
Velegalati et al. DPA resistance for light-weight implementations of cryptographic algorithms on FPGAs
Baddam et al. Path switching: a technique to tolerate dual rail routing imbalances
Beyrouthy et al. A novel asynchronous e-FPGA architecture for security applications
Akishita et al. A practical DPA countermeasure with BDD architecture

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 4