KR100876717B1 - 탬퍼링 방지성 평가 장치 및 탬퍼링 방지성 평가 방법 - Google Patents
탬퍼링 방지성 평가 장치 및 탬퍼링 방지성 평가 방법 Download PDFInfo
- Publication number
- KR100876717B1 KR100876717B1 KR1020067026889A KR20067026889A KR100876717B1 KR 100876717 B1 KR100876717 B1 KR 100876717B1 KR 1020067026889 A KR1020067026889 A KR 1020067026889A KR 20067026889 A KR20067026889 A KR 20067026889A KR 100876717 B1 KR100876717 B1 KR 100876717B1
- Authority
- KR
- South Korea
- Prior art keywords
- logic circuit
- signal
- power consumption
- logic
- information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
- Measurement Of Resistance Or Impedance (AREA)
Abstract
회로 설계의 상류 공정에 있어서, 실제 회로의 탬퍼링 방지성(Tamper Proofness)을 고정밀도 및 고속으로 평가하는 것을 목적으로 한다. 탬퍼링 방지성 평가 장치는, 논리 회로의 신호가 변화된 횟수를 계수하는 신호 변화 횟수 계수부(10)와, 신호 변화 횟수 계수부가 계수한 신호가 변화된 횟수에 근거하여 논리 회로의 소비 전력을 산출하는 소비 전력 산출부(20)와, 소비 전력 산출부가 산출한 논리 회로의 소비 전력에 근거하여 논리 회로로부터 누설되는 정보를 해석하는 누설 정보 해석부(80)와, 시뮬레이터(30)가 이용하는 파일을 기억하고 있는 파일 데이터베이스(40)와, 논리 시뮬레이터(30)를 제어하는 제어 정보를 생성하는 시뮬레이션 제어 정보 생성부(50)와, 소비 전력 산출부(20)가 산출한 소비 전력을 시계열으로 나열한 시계열 전력 정보를 생성하는 시계열 전력 정보 생성부(60)와, 시계열 전력 정보를 표시하는 결과 표시부(70)를 구비한다.
Description
논리 회로에서 소비하는 전력을 회로의 논리 시뮬레이션에 의해 산출하는 전력 산출 장치와 전력 산출 방법에 관한 것이다. 또, 산출한 논리 회로의 소비 전력에 근거하여 논리 회로로부터의 정보 누설을 검출하여, 논리 회로의 탬퍼링 방지성(Tamper Proofness)을 평가하는 탬퍼링 방지성 평가 장치와 탬퍼링 방지성 평가 방법에 관한 것이다.
암호 등의 보안 기능을 실현하는 반도체 장치는, 회로의 소비 전력으로부터 암호 키 등의 비밀 정보가 누설되고 있지 않는가를 평가하는 탬퍼링 방지성 평가를 행한다.
이 탬퍼링 방지성 평가의 방법으로는, 종래, 실제 기기를 이용하여 소비 전력을 측정함으로써 비밀 정보가 누설되고 있지 않는가를 평가하는 방법과, 반도체 장치의 설계 단계에서, 논리 회로의 시뮬레이션을 행하는 것에 의해 소비 전력을 산출하여, 비밀 정보가 누설되고 있지 않는가를 평가하는 방법이 있다.
이 중 시뮬레이션에 의한 방법에는, 소프트웨어에 의한 시뮬레이션에 의해, 암호 처리의 과정에서 나타나는(나타나리라고 예상되는) 중간 변수의 특정한 비트 또는 해밍 가중치에 근거하여 소비 전력을 산출하고, 그것에 의해 정보 누설을 검출하는 방법과, 회로 시뮬레이터에 의해 회로의 상세한 시뮬레이션을 행하여 소비 전력을 산출하고, 그것에 의해 정보 누설을 검출하는 방법이 있다(양쪽 모두, 예컨대, 비특허문헌 1을 참조).
논리 시뮬레이션에서의 소비 전력의 산출은 다음과 같이 하여 행한다.
현재, 주로 사용되고 있는 반도체 장치는 CM0S이지만, 그 소비 전력의 대부분은 부하를 충·방전하기 위한 스위칭 전력 P이다. 그 때문에, 회로의 소비 전력은 수학식 1에 나타내는 바와 같이, 신호마다의 단위 시간당 변화 수 f, 부하 용량 C, 전압 V의 2승의 곱을 전부 더한 값으로 나타낼 수 있다.
여기서, f는 논리 시뮬레이션에 의해 구한 값이며, V는 고정값이다. 또한, C는 회로 접속을 기술한 넷 리스트(net list)나 라이브러리(library)에 근거하여 산출된다. 논리 시뮬레이션에 의한 소비 전력의 산출에서는, 이 부하 용량 C의 산출에 많은 시간을 요한다.
(비특허문헌 1) “TECHNICAL REPORT OF IEICE'', IT2003-60, ISEC2003-100, WBS2003-178(2004년 3월)
(발명이 해결하고자 하는 과제)
그러나, 종래의 시뮬레이션을 이용한 탬퍼링 방지성 평가 방법에는, 다음과 같은 문제가 있었다. 우선, 소프트웨어에 의한 시뮬레이션의 경우, 시뮬레이터는 실제 회로의 소비 전력을 높은 정밀도로 근사할 수 없다고 하는 결점이 있고, 바른 평가가 행해지는가 여부가 불명료하다고 하는 문제가 있었다. 또한, 회로의 어느 부분으로부터 어떻게 정보가 누설되는가라고 하는 메커니즘의 해명에는, 거의 도움이 되지 않는다고 하는 문제도 있었다.
한편, 회로 시뮬레이터를 이용하여 상세한 시뮬레이션을 행하는 방법의 경우, 처리에 많은 시간이 걸릴 뿐만 아니라, 회로의 상세 정보가 필요하게 되기 때문에, 회로 설계의 상류 공정에서 손쉽게 탬퍼링 방지성을 평가한다고 하는 용도에는 적용할 수 없고, 결과적으로 설계와 평가를 효율적으로 행할 수 없다고 하는 문제가 있었다.
본 발명은 이들 문제를 해결하기 위해서 이루어진 것으로, 회로 설계에 있어서의 논리 설계를 포함하는, 그보다 상류의 공정(이하, 이것을 상류 공정이라고 부름)에서, 실제의 회로의 탬퍼링 방지성을 고정밀도 및 고속으로 평가하는 것을 목적으로 한다.
(과제를 해결하기 위한 수단)
상기한 과제를 해결하기 위해서, 전력 산출 장치는, 논리 회로의 신호가 변화된 횟수의 가산값에 근거하여 소비 전력을 산출하는 것으로 했다.
또한, 논리 회로로부터의 정보 누설을 검출하여 논리 회로의 탬퍼링 방지성을 평가하는 탬퍼링 방지성 평가 장치는, 논리 회로의 신호가 변화된 횟수를 계수하여 신호 변화 횟수 기억부에 기억하는 신호 변화 횟수 계수부와, 신호 변화 횟수 계수부가 신호 변화 횟수 기억부에 기억한 논리 회로의 신호가 변화된 횟수에 근거하여 논리 회로의 소비 전력을 산출하는 소비 전력 산출부와, 소비 전력 산출부가 산출한 논리 회로의 소비 전력에 근거하여 논리 회로로부터 누설되는 정보를 해석하는 누설 정보 해석부를 구비하는 것으로 했다.
(발명의 효과)
본 발명에 따르면, 전력 산출 장치는, 회로의 논리 시뮬레이터가 출력한 논리 회로의 신호가 변화된 횟수의 가산값에 근거하여 논리 회로의 소비 전력을 산출할 수 있다.
또한, 탬퍼링 방지성 평가 장치는, 신호 변화 횟수 계수부가, 논리 회로의 신호가 변화된 횟수를 계수하여 신호 변화 횟수 기억부에 기억하고, 소비 전력 산출부가, 신호 변화 횟수 기억부에 기억한 논리 회로의 신호가 변화된 횟수에 근거하여 논리 회로의 소비 전력을 산출하며, 누설 정보 해석부가, 산출한 논리 회로의 소비 전력에 근거하여 논리 회로로부터 누설되는 정보를 해석함으로써, 논리 회로로부터의 정보 누설을 검출하여, 논리 회로의 탬퍼링 방지성을 평가할 수 있다.
도 1은 실시예 1에 있어서의 전력 산출 장치의 구성을 나타내는 도면,
도 2는 실시예 1에 있어서의 논리 시뮬레이션을 위한 테스트 벤치(test bench)의 예의 일부,
도 3은 실시예 1에 있어서의 테스트 벤치가 참조하는 파일의 예,
도 4는 실시예 1에 있어서의 테스트 벤치가 참조하는 파일의 예,
도 5는 실시예 1에 있어서의 전력 산출 장치의 처리를 나타내는 흐름도,
도 6은 실시예 1에 있어서의 신호 변화 횟수로부터 그 총 합을 구하여 소비 전력을 산출하는 프로그램의 예,
도 7은 실시예 2에 있어서의 탬퍼링 방지성 평가 장치의 구성을 나타내는 도면,
도 8은 실시예 2에 있어서의 탬퍼링 방지성 평가 장치의 처리를 나타내는 흐름도,
도 9는 실시예 3에 있어서의 1클록 사이클 동안에 신호가 기수회 변화된 경우에는 신호가 1회 변화되었다고 계산하고, 신호가 우수회 변화된 경우에는 0회 변화되었다고 계산하는 처리의 프로그램의 예,
도 10은 실시예 4에 있어서의 큰 회로 부분 중에서 회로 부분을 바꿔, 각 회로 부분에서 신호가 변화된 횟수를 계수하여, 그 회로 부분의 소비 전력을 산출하 는 처리의 프로그램의 예,
도 11은 실시예 4에 있어서의 탬퍼링 방지성 평가 장치의 처리를 나타내는 흐름도,
도 12는 실시예에서 나타낸 DES 암호 회로의 탬퍼링 방지성을 전력 차분 해석에 의해 평가한 결과의 예,
도 13은 실시예에서 나타낸 DES 암호 회로의 탬퍼링 방지성을 전력 차분 해석에 의해 평가한 결과의 예,
도 14는 실시예에서 나타낸 DES 암호 회로의 탬퍼링 방지성을 전력 차분 해석에 의해 평가한 결과의 예,
도 15(a)는 논리 회로의 전력 차분이 비교적 큰 동작 모드의 경우에 있어서의, 실제 기기에 탑재되어 있는 논리 회로의 탬퍼링 방지성 평가를 행한 결과를 나타내는 도면,
도 15(b)는 논리 회로의 전력 차분이 비교적 큰 동작 모드의 경우에 있어서의, 실시예를 이용하여 같은 논리 회로의 탬퍼링 방지성 평가를 행한 결과를 나타내는 도면,
도 16(a)는 논리 회로의 전력 차분이 비교적 작은 동작 모드의 경우에 있어서의, 실제 기기에 탑재되어 있는 논리 회로의 탬퍼링 방지성 평가를 행한 결과를 나타내는 도면,
도 16(b)는 논리 회로의 전력 차분이 비교적 작은 동작 모드의 경우에 있어서의, 실시예를 이용하여 같은 논리 회로의 탬퍼링 방지성 평가를 행한 결과를 나 타내는 도면이다.
도면의 주요 부분에 대한 부호의 설명
10 : 신호 변화 횟수 계수부 11 : 신호 변화 횟수 기억부
20 : 소비 전력 산출부 21 : 소비 전력 기억부
30 : 논리 시뮬레이터 31 : 신호 변화 정보 기억부
40 : 파일 데이터베이스 50 : 시뮬레이션 제어 정보 생성부
51 : 시뮬레이션 제어 정보 기억부 60 : 시계열 전력 정보 생성부
61 : 시계열 전력 정보 기억부 70 : 결과 표시부
80 : 누설 정보 해석부 81 : 해석 결과 기억부
(실시예 1)
실시예 1에서는, 탬퍼링 방지성 평가 장치의 논리 시뮬레이터가 출력한 논리 회로의 신호가 변화된 횟수에 근거하여, 탬퍼링 방지성 평가 장치 중의 전력 산출 장치가 논리 회로의 소비 전력을 산출하는 실시예에 대하여 설명한다.
탬퍼링 방지성 평가 장치 중의 전력 산출 장치는, 논리 회로의 신호가 변화된 횟수의 가산값에 근거하여 소비 전력을 산출한다.
도 1은, 실시예 1에 있어서의 탬퍼링 방지성 평가 장치의 구성을 나타내는 도면이다. 도 1에 나타내는 바와 같이, 전력 산출 장치는 탬퍼링 방지성 평가 장 치의 일부를 구성한다.
이 중 전력 산출 장치는, 논리 회로의 신호가 변화된 횟수를 계수하여 신호 변화 횟수 기억부에 기억하는 신호 변화 횟수 계수부(10)와, 신호 변화 횟수 계수부(10)가 신호 변화 횟수 기억부에 기억한 논리 회로의 신호가 변화된 횟수의 가산값에 근거하여 논리 회로의 소비 전력을 산출하는 소비 전력 산출부(20)를 구비하고 있다.
또한, 탬퍼링 방지성 평가 장치는 전력 산출 장치 외에, 논리 회로 동작의 시뮬레이션을 행하는 논리 시뮬레이터(30)와, 논리 시뮬레이터(30)가 출력한 신호의 변화를 기억하는 신호 변화 정보 기억부(31)와, 논리 시뮬레이터(30)가 이용하는 파일을 기억하고 있는 파일 데이터베이스(40)와, 논리 시뮬레이터(30)를 제어하는 시뮬레이션 제어 정보를 생성하는 시뮬레이션 제어 정보 생성부(50)와, 시뮬레이션 제어 정보 생성부(50)가 생성한 시뮬레이션 제어 정보를 기억하는 시뮬레이션 제어 정보 기억부(51)를 구비하고 있다.
또한, 탬퍼링 방지성 평가 장치는, 소비 전력 산출부(20)가 산출한 소비 전력을 기억하는 소비 전력 기억부(21)와, 소비 전력 기억부(21)로부터 소비 전력을 판독하여 시계열으로 나열한 시계열 전력 정보를 생성하는 시계열 전력 정보 생성부(60)와, 시계열 전력 정보 생성부(60)가 생성한 시계열 전력 정보를 기억하는 시계열 전력 정보 기억부(61)와, 시계열 전력 정보 기억부(61)로부터 시계열 전력 정보를 판독하여 표시하는 결과 표시부를 구비하고 있다.
신호 변화 횟수 계수부(10)는 논리 회로의 신호가 변화된 횟수를 계수하여 신호 변화 횟수 기억부에 기억한다. 소비 전력 산출부(20)는, 신호 변화 횟수 계수부(10)가 신호 변화 횟수 기억부에 기억한 논리 회로의 신호가 변화된 횟수의 가산값에 근거하여 논리 회로의 소비 전력을 산출한다.
여기서, 실시예 1에서 이용하는 소비 전력의 산출 방법에 대하여 설명한다.
상기한 수학식 1을 이용한 소비 전력의 산출 방법에서는, 부하 용량 C의 산출에 많은 시간을 필요로 한다. 그러나, 회로 설계의 상류 공정에 있어서 논리 회로의 탬퍼링 방지성을 고정밀도 및 고속으로 평가하는 경우에는, 산출하는 소비 전력에 그만큼 높은 정밀도는 필요하지 않다. 그래서, 신호의 부하 용량 C는 모두 거의 같다고 보고, 신호마다의 단위 시간당 변화 수 f로 근사함으로써, 소비 전력을 수학식 2를 이용하여 산출한다. 이것에 의해 처리 시간을 대폭으로 단축할 수 있다.
각부의 기능 설명으로 되돌아간다.
논리 시뮬레이터(30)는 디지털 회로의 논리 설계에 이용되는 통상의 논리 시뮬레이터이며, 대상으로 되는 논리 회로에서 어떠한 신호의 변화가 발생한 것인가를 나타내는 모든 신호를 생성한다. 파일 데이터베이스(40)는, 논리 시뮬레이터(30)가 이용하는 논리 회로, 넷 리스트, 라이브러리, 입력 데이터 파일 및 테스트 벤치를 기억하고 있다. 이들은 논리 시뮬레이션의 전 기간을 통해 참조된다.
시뮬레이션 제어 정보 생성부(50)는, 논리 시뮬레이터(30)가 시뮬레이션의 전 기간을 모아서 1회에 행하는 것이 아니라, 시간을 쉬프트한 복수회의 시뮬레이션(각각을 「단위 시뮬레이션」이라고 부름)으로 분할하여 실행하는 경우에, 단위 시뮬레이션마다의 제어 정보를 생성한다. 생성된 파일은, 테스트 벤치가 시뮬레이션의 개시와 종료를 제어할 때에 참조된다.
시계열 전력 정보 생성부(60)는, 소비 전력 산출부(20)가 산출한 논리 회로의 소정 기간에 대한 소비 전력을, 시계열에 따라 나열하여 하나의 시계열 전력 정보를 생성한다. 또한, 시계열 전력 정보 생성부(60)는 시계열 전력 정보를 표시에 적합한 포맷으로 변환한다. 결과 표시부(70)는, 시계열 전력 정보 생성부(60)가 생성한 시계열 전력 정보를 표시한다.
테스트 벤치는 논리 시뮬레이터(30)의 동작 전체를 기술한 파일이다. 예컨대, 논리 시뮬레이터(30)에 의한 파일의 입력이나 출력, 논리 시뮬레이션의 개시와 종료의 타이밍을 지정하는 시간 정보가 기술되어 있다.
도 2는 테스트 벤치의 예의 일부이며, 단위 시뮬레이션마다의 신호 변화 정보를 추출하기 위한 기술이다. 대상으로 되는 논리 회로가 처리를 행할 때, 클록 사이클마다의 신호 변화 정보를 다른 파일로 출력시키고 있다.
구체적으로는, 단위 시뮬레이션의 개시함에 있어서, 입력 데이터 파일로부터 입력 데이터를 하나 판독하고, 대상으로 되는 논리 회로의 논리 시뮬레이션을 행한 후, 논리 시뮬레이터가 출력한 신호가 변화된 횟수를 계수하여, 그 결과를 파일로 출력하고 있다.
도 2의 2부분에서 파일을 참조(include)하고 있는데, 참조되는 파일의 예를 도 3과 도 4에 나타낸다. 도 3은 단위 시뮬레이션에서 사용하는 입력 데이터의 선두 번호를 유지하는 파일이다. 도 3의 예에서는, 입력 데이터의 선두 번호는 “159200”으로 되어 있다. 도 4는 단위 시뮬레이션에서 생성되는 신호 변화 정보를 기입하는 파일명을 지정하는 파일이다. 도 4의 예에서는, 입력 데이터가 “159200”(선두 번호)인 경우, 신호 변화 정보는 “saif/sim_net_159200.saif”에 기입되고, 입력 데이터가 “159201”인 경우, “saif/sim_net_159201.saif”에 기입된다. 이들은 모두 시뮬레이션 제어 정보이며, 논리 시뮬레이터(30)를 기동하기 전에 시뮬레이션 제어 정보 생성부(50)에 의해 생성된다.
다음에, 실시예 1에 있어서의 전력 산출 장치를 포함하는 탬퍼링 방지성 평가 장치의 동작을 설명한다. 도 5는 전력 산출 장치를 포함하는 탬퍼링 방지성 평가 장치에서의 전력 산출의 처리를 나타내는 흐름도이다.
탬퍼링 방지성 평가 장치 중의 전력 산출 장치는, 논리 회로의 신호가 변화된 횟수를 계수하여 신호 변화 횟수 기억부에 기억하는 신호 변화 횟수 계수 공정과, 신호 변화 횟수 계수 공정이 신호 변화 횟수 기억부에 기억한 논리 회로의 신호가 변화된 횟수의 가산값에 근거하여 논리 회로의 소비 전력을 산출하는 소비 전력 산출 공정을 실행한다.
소비 전력을 산출하는 대상으로 되는 논리 회로와 그 넷 리스트, 논리 시뮬레이션에서 이용하는 라이브러리와, 논리 회로로 최초에 입력하는 입력 데이터와, 논리 시뮬레이션에서 이용하는 테스트 벤치는 파일 데이터베이스(40)에 기억되어 있다. 입력 데이터는 복수로 준비되어 있고, 단위 시뮬레이션을 반복할 때마다 판 독되어 이용된다.
이 중 대상으로 되는 논리 회로는 논리 시뮬레이터(30)에 의해 파일 데이터베이스(40)로부터 판독되어, 설정되어 있는 것으로 한다.
또한, 시뮬레이션 제어 정보 생성부(50)는 미리 시뮬레이션 제어 정보를 생성해 두고, 논리 시뮬레이터(30)는 논리 시뮬레이션의 개시/종료를 제어하는 테스트 벤치로부터 이것을 참조한다.
우선, 단위 시뮬레이션의 동작을 설명한다.
논리 시뮬레이터(30)는 파일 데이터베이스(40)에 기억되어 있는 입력 데이터 파일로부터 입력 데이터를 하나 읽어들인다(단계 S100). 또한, 논리 시뮬레이터(30)는 테스트 벤치의 기술에 따라, 시뮬레이션 제어 정보 생성부(50)의 시뮬레이션 제어 정보를 참조한다(단계 S101).
논리 시뮬레이터(30)는 읽어들인 입력 데이터를 바탕으로 하여, 대상으로 되는 논리 회로의 논리적인 동작의 시뮬레이션을 행하고, 논리 회로의 클록 사이클마다의 신호를 생성하여, 신호 변화 정보로서 신호 변화 정보 기억부(31)에 기억한다(단계 S102).
신호 변화 횟수 계수부(10)는 신호 변화 정보 기억부(31)로부터 신호 변화 횟수를 판독하여 논리 회로에서 신호가 변화된 횟수(이후, 「신호 변화 횟수」라고 약칭함)를 계수하여, 신호 변화 횟수 기억부(11)에 기억한다(단계 S103). 이것이, 상기한 신호 변화 횟수 계수 공정이다. 여기서, 신호 변화 횟수란, 1회의 단위 시뮬레이션에서 평가 대상 회로가 동작하고 있는 기간의 클록 사이클마다 신호가 변 화된 횟수이다.
소비 전력 산출부(20)는 신호 변화 횟수 기억부(11)의 신호 변화 횟수를 판독하고, 수학식 2를 이용해 소비 전력을 산출하여, 소비 전력 기억부(21)에 기억한다(단계 S104). 이것이, 상기한 소비 전력 산출 공정이다.
즉, 단계 S103과 단계 S104가 탬퍼링 방지성 평가 장치 중의 전력 산출 장치의 처리에 상당한다.
소비 전력 산출부(20)에서, 신호 변화 횟수의 총 합을 구하여, 소비 전력을 산출하는 프로그램의 예를 도 6에 나타낸다. 이 프로그램에서는, 신호 변화 횟수 계수부(10)가 계수한 신호 변화 횟수를 기입한 파일 fpr로부터, 소비 전력 산출부(20)가 모든 신호의 신호 변화 횟수 TC를 추출하고, 추출한 TC의 합계 sum을 구하고 있다. sum은 도 4에 나타내는 테스트 벤치에 의해 지정된 출력 파일로 출력된다.
파일 fpr에서의 신호 변화 횟수의 기입예(신호 변화 횟수 기억부(11)의 파일 포맷의 예)를 표 1에 나타낸다. 또한, 추출한 TC의 합계 sum의 파일에서의 기입예(소비 전력 기억부(21)의 파일 포맷의 예)를 표 2에 나타낸다.
표 1에서 나타낸 바와 같은 신호 변화 횟수를 기입한 파일 fpr과, 표 2에서 나타낸 바와 같은 합계 sum을 기입한 파일이 단위 시뮬레이션마다 작성된다.
여기까지가 1회의 단위 시뮬레이션이다. 즉, 단위 시뮬레이션에서는, 읽어들인 입력 데이터를 바탕으로 하여, 시뮬레이션 제어 정보로 표시되는 시간 내의 논리 회로의 소비 전력을 산출했다.
다음에, 논리 시뮬레이터(30)는 파일 데이터베이스(40)내의 입력 데이터 파일에 기술되어 있는 입력 데이터 모두에 대하여, 논리 시뮬레이션을 실행했는지 여부를 판정한다(단계 S105). 모든 입력 데이터에 대한 논리 시뮬레이션을 완료한 경우(단계 S105의 예의 경우), 단계 S106으로 진행한다. 완료하지 않은 경우(단계 S105의 아니오의 경우), 단계 S100으로 되돌아간다.
시계열 전력 정보 생성부(60)는 모든 입력 데이터에 대하여 단위 시뮬레이션이 종료되면, 소비 전력 기억부(21)로부터 단위 시뮬레이션을 반복한 수만큼 생성된 논리 회로의 소비 전력을 판독하고, 단위 시뮬레이션을 행할 때에, 시뮬레이션 제어 정보로부터 참조한 시간 정보에 따라 나열하고, 하나 또는 복수의 시계열 전력 정보를 생성하여, 시계열 전력 정보 기억부(61)에 기억한다(단계 S106). 결과 표시부(70)는 시계열 전력 정보 기억부(61)로부터 시계열 전력 정보를 판독하여, 예컨대, 오실로스코프 등에서의 표시 형식으로 함으로써 실제 기기의 해석과 동일 환경에서 표시한다(단계 S107).
이상에 의해, 대상으로 하는 논리 회로가 임의의 시간 내에 소비하는 소비 전력을 논리 시뮬레이션에 의해 산출할 수 있다.
본 실시예에 의해, 탬퍼링 방지성 평가 장치 중의 전력 산출 장치는 논리 시뮬레이션이 출력한 논리 회로의 신호가 변화된 횟수의 가산값에 근거하여 소비 전력을 산출할 수 있다. 이에 따라 부하 용량을 산출할 필요가 없어지기 때문에, 종래보다 짧은 처리 시간에 논리 회로의 소비 전력을 산출하는 것이 가능하게 된다.
본 실시예에 의해 신호 변화 횟수 계수부와 소비 전력 산출부로 전력 산출 장치를 구성할 수 있다. 그 결과, 전력 산출 장치는, 신호 변화 횟수 계수부가 논리 회로의 신호가 변화된 횟수를 계수하여, 소비 전력 산출부가 신호가 변화된 횟수의 가산값에 근거해 논리 회로의 소비 전력을 산출하는 것이 가능하게 된다.
또, 탬퍼링 방지성 평가 장치 중의 전력 산출 장치의 P=∑f의 계산은, 논리 회로의 신호가 변화된 횟수에만 근거해 소비 전력을 산출하는 것을 의미하고 있다.
이 경우, 탬퍼링 방지성 평가 장치 중의 전력 산출 장치는, 논리 회로의 신호가 변화된 횟수를 계수하여 신호 변화 횟수 기억부에 기억하는 신호 변화 횟수 계수부(10)와, 신호 변화 횟수 계수부(10)가 신호 변화 횟수 기억부에 기억한 논리 회로의 신호가 변화된 횟수에만 근거하여 논리 회로의 소비 전력을 산출하는 소비 전력 산출부(20)를 구비하는 것으로 된다.
또한, 전력 산출 장치는, 논리 회로의 신호가 변화된 횟수를 계수하여 신호 변화 횟수 기억부에 기억하는 신호 변화 횟수 계수 공정과, 신호 변화 횟수 계수 공정이 신호 변화 횟수 기억부에 기억한 논리 회로의 신호가 변화된 횟수에만 근거하여 논리 회로의 소비 전력을 산출하는 소비 전력 산출 공정을 실행한다.
이 경우, 전력 산출 장치는, 논리 시뮬레이션이 출력한 논리 회로의 신호가 변화된 횟수에만 근거하여 소비 전력을 산출할 수 있다. 이에 따라 부하 용량을 산출할 필요가 없어지기 때문에, 종래보다 짧은 처리 시간에 논리 회로의 소비 전력을 산출하는 것이 가능하게 된다.
또한, 신호 변화 횟수 계수부와 소비 전력 산출부로 전력 산출 장치를 구성할 수 있다. 그 결과, 전력 산출 장치는, 신호 변화 횟수 계수부가 논리 회로의 신호가 변화된 횟수를 계수하고, 소비 전력 산출부가 신호가 변화된 횟수에만 근거하여 논리 회로의 소비 전력을 산출하는 것이 가능하게 된다.
(실시예 2)
실시예 2에서는, 탬퍼링 방지성 평가 장치가, 논리 시뮬레이터가 출력한 논리 회로의 신호가 변화된 횟수에 근거하여 전력 산출 장치가 산출한 논리 회로의 소비 전력으로부터, 논리 회로로부터의 정보 누설을 검출하여, 논리 회로의 탬퍼링 방지성을 평가하는 실시예에 대하여 설명한다. 또한, 그 중에서 실행하는 회로의 소비 전력을 이용한 누설되는 정보의 해석이, 전력 차분 해석과, 단순 전력 해석 및 타이밍 해석인 실시예에 대하여 설명한다.
도 7은 실시예 2에 있어서의 탬퍼링 방지성 평가 장치의 구성을 나타내는 도면이다.
논리 회로로부터의 정보 누설을 검출하여 논리 회로의 탬퍼링 방지성을 평가하는 탬퍼링 방지성 평가 장치는, 논리 회로의 신호가 변화된 횟수를 계수하여 신호 변화 횟수 기억부(11)에 기억하는 신호 변화 횟수 계수부(10)와, 신호 변화 횟수 계수부가 신호 변화 횟수 기억부(11)에 기억한 논리 회로의 신호가 변화된 횟수에 근거하여 논리 회로의 소비 전력을 산출하는 소비 전력 산출부(20)와, 소비 전력 산출부가 산출한 논리 회로의 소비 전력에 근거하여 논리 회로로부터 누설되는 정보를 해석하는 누설 정보 해석부(80)를 구비한다. 이 중, 신호 변화 횟수 계수부(10)와 소비 전력 산출부(20)로는, 상기한 전력 산출 장치를 이용할 수 있다.
또한, 탬퍼링 방지성 평가 장치는, 논리 회로의 동작 시뮬레이션을 행하는 논리 시뮬레이터(30)와, 논리 시뮬레이터(30)가 출력한 신호의 변화를 기억하는 신호 변화 정보 기억부(31)와, 논리 시뮬레이터(30)가 이용하는 파일을 기억하고 있는 파일 데이터베이스(40)와, 논리 시뮬레이터(30)를 제어하는 시뮬레이션 제어 정보를 생성하는 시뮬레이션 제어 정보 생성부(50)와, 시뮬레이션 제어 정보 생성부(50)가 생성한 시뮬레이션 제어 정보를 기억하는 시뮬레이션 제어 정보 기억부(51)를 구비하고 있다.
또한, 탬퍼링 방지성 평가 장치는, 소비 전력 산출부(20)가 산출한 소비 전력을 기억하는 소비 전력 기억부(21)와, 소비 전력 기억부(21)로부터 소비 전력을 판독하여 시계열으로 나열한 시계열 전력 정보를 생성하는 시계열 전력 정보 생성부(60)와, 시계열 전력 정보 생성부(60)가 생성한 시계열 전력 정보를 기억하는 시계열 전력 정보 기억부(61)와, 누설 정보 해석부(80)가 해석한 해석 결과를 기억하는 해석 결과 기억부(81)와, 해석 결과 기억부(81)로부터 해석 결과를 판독하여 표시하는 결과 표시부를 구비하고 있다.
또, 탬퍼링 방지성 평가 장치의 누설 정보 해석부(80)는, 시계열 전력 정보 기억부(61)로부터 시계열 전력 정보를 판독하여, 해석을 행하고 해석 결과를 해석 결과 기억부(81)에 기억한다.
실시예 2에 있어서의 탬퍼링 방지성 평가 장치의 각부의 기능은 누설 정보 해석부(80)를 제외하고는 실시예 1에 있어서의 전력 산출 장치의 각부의 기능과 동일하다.
누설 정보 해석부(80)는, 소비 전력 산출부(20)가 산출한 논리 회로의 소비 전력을 이용하여 전력 해석을 행하고, 논리 회로로부터 누설되는 정보를 해석하여, 해석 결과를 출력한다.
탬퍼링 방지성 평가 장치의 소비 전력 산출부는, 논리 회로의 신호가 변화된 횟수의 가산값에 근거하여 소비 전력을 산출한다.
또는, 탬퍼링 방지성 평가 장치의 소비 전력 산출부는, 논리 회로의 신호가 변화된 횟수에만 근거하여 소비 전력을 산출한다.
이것으로부터, 소비 전력의 산출 방법은 실시예 1에서 이용한 방법과 동일하다. 또한, 테스트 벤치도 실시예 1과 동일하다.
다음으로, 누설 정보 해석부(80)에서 실행하는 누설 정보를 해석하기 위한 전력 해석에 대하여 설명한다.
탬퍼링 방지성 평가 장치의 누설 정보 해석부(80)에 의한 회로의 소비 전력을 이용한, 누설되는 정보의 해석에는, 전력 차분 해석을 이용한다.
또는, 탬퍼링 방지성 평가 장치의 누설 정보 해석부(80)에 의한 회로의 소비 전력을 이용한 누설되는 정보의 해석에는, 단순 전력 해석을 이용한다.
또는, 탬퍼링 방지성 평가 장치의 누설 정보 해석부(80)에 의한 회로의 소비 전력을 이용한 누설되는 정보의 해석에는, 타이밍 해석을 이용한다.
상기한 각 해석의 방법에 대하여 구체적으로 설명한다. 여기서는 해석의 대상인 반도체 장치가 실현하는 보안 기능을 암호에 한정하여 설명을 행한다. 전력 해석은, 암호를 실행하는 반도체 장치(이후, 「암호 장치」라고 약칭함)의 논리 회로의 소비 전력을 해석함으로써, 암호 장치가 유지하는 비밀 정보, 특히 암호 키를 추정하는 기술이다.
전력 차분 해석은 전력 해석의 한 방법이며, 랜덤한 값의 데이터를 암호 장치에 입력하여 암호화의 처리를 실행하고, 처리 중인 회로의 소비 전력을 측정 또는 산출하여, 얻은 데이터를 통계 처리함으로써 암호 키를 추정하는 것이다.
전력 차분 해석의 구체적인 방법은 이하와 같이 된다.
(1) 대상으로 되는 회로에 입력 데이터를 입력하여, 암호화 처리 중인 전력 파형을 측정한다. 통상, 수천에서 수만 데이터분의 전력 파형을 얻을 필요가 있다.
(2) 공개되어 있는 암호의 알고리즘에 근거하여, 공격 가능한 N비트 암호 키의 일부(부분 키) K와 공격 포인트 PT를 선택한다. PT는 입력 데이터와 K에만 의해 값이 일의로 결정되는 가상적인 중간 변수의 1비트이며, 또한, K의 모든 비트가 관여하는 것이다. 예컨대, DES(Data Encryption Standard)의 S박스가 그것에 상당한다.
(3) 2N 방식의 부분 키 K의 후보 전부에 대하여, (1)에서 사용한 입력 데이터를 부여한 때에, PT의 값이 1로 될지 0으로 될지를 계산한다.
(4) PT의 값에 따라 측정 데이터를 2개의 그룹으로 분류하고, 각각의 그룹의 평균 전력의 차분을 계산한다. 평균 전력의 차분이 최대로 되는 후보가, 구하는 부분 키 K이다.
(5) 충분한 양의 암호 키 정보를 얻을 수 있을 때까지, (2)∼(4)를 반복한다.
단순 전력 해석은 전력 해석의 또 하나의 방법이며, 암호화를 실행하고 있는 회로의 전력 파형으로부터, 암호 키에 연관된 정보를 추정하는 것이다.
예컨대, 단순한 멱승 잉여 연산은, 멱지수를 상위의 자리수로부터 순서대로 판독하고, 그 값이 “1”일 때, 승산을 행하면서 제곱 연산을 반복한다. 승산과 평방 연산이 각각 다른 전력을 소비하는 경우, 전력 파형으로부터 멱지수에 관한 정보를 얻을 수 있다.
타이밍 해석은 전력 해석과는 다른 해석 방법이다. 그 방법은, 암호화의 처리 시간이 암호 키에 따라 다를 때, 그 시간의 차를 통계 처리함으로써, 암호 키를 추정하는 방법이다.
다음에, 실시예 2에 있어서의 탬퍼링 방지성 평가 장치의 동작을, 도 8에 나타내는 탬퍼링 방지성 평가 장치의 처리의 흐름도에 따라 설명한다.
탬퍼링 방지성 평가 장치에서의 회로로부터의 정보 누설을 평가하는 정보 누설 평가 방법은, 논리 회로의 신호가 변화된 횟수를 계수하여 신호 변화 횟수 기억부에 기억하는 신호 변화 횟수 계수 공정과, 신호 변화 횟수 계수 공정이 신호 변화 횟수 기억부에 기억한 논리 회로의 신호가 변화된 횟수에 근거하여 회로의 소비 전력을 산출하는 소비 전력 산출 공정과, 소비 전력 산출 공정이 산출한 회로의 소비 전력에 근거하여 회로로부터 누설되는 정보를 해석하는 누설 정보 해석 공정을 실행한다.
파일 데이터베이스(40)로의 대상으로 되는 논리 회로 등의 입력과, 시뮬레이션 제어 정보 생성부(50)에 의한 시뮬레이션 제어 정보의 생성을 행할 준비는 실시예 1과 동일하다.
또한, 입력 데이터 파일로부터 입력 데이터를 하나 읽어들이는 단계 S200으로부터, 시계열 전력 정보 생성부(60)가 시계열 전력 정보를 생성하는 단계 S206까지의 처리는, 실시예 1에 있어서의 단계 S100으로부터 단계 S106까지의 처리와 동일하다. 단, 단계 S206에 있어서, 시계열 전력 정보 생성부(60)가 생성한 시계열 전력 정보는 시계열 전력 정보 기억부(61)에 기억된다.
누설 정보 해석부(80)는 시계열 전력 정보 기억부(61)로부터 판독한 시계열 전력 정보를 이용하여 전력 해석을 행하고, 해석 결과를 해석 결과 기억부(81)에 기억한다(단계 S207). 전력 해석에는, 상기한 전력 차분 해석이나, 단순 전력 해석, 타이밍 해석을 이용할 수 있다.
결과 표시부(70)는 해석 결과 기억부(81)로부터 해석 결과를 판독하여, 예컨대, 오실로스코프 등에서의 표시 형식으로 함으로써 실제 기기의 해석과 같은 환경에서 표시한다(단계 S208).
이상에 의해, 대상으로 하는 논리 회로가 임의의 시간 내에 소비하는 소비 전력을 논리 시뮬레이션에 의해 산출하고, 산출한 소비 전력을 이용하여 전력 해석을 행하는 것에 의해, 논리 회로로부터의 정보 누설을 검출할 수 있다.
본 실시예에 따르면, 탬퍼링 방지성 평가 장치는, 논리 회로의 신호가 변화된 횟수를 계수하고, 계수한 신호의 변화에 근거하여 논리 회로의 소비 전력을 산출하고, 산출한 소비 전력에 근거하여 논리 회로로부터 누설되는 정보를 해석할 수 있다. 그 결과, 탬퍼링 방지성 평가 장치는, 대상으로 되는 논리 회로의 탬퍼링 방지성을 평가하는 것이 가능하게 된다.
본 실시예에 따르면, 탬퍼링 방지성 평가 장치에 의해 전력 차분 해석을 이용한 회로의 탬퍼링 방지성의 평가가 가능하게 된다.
본 실시예에 따르면, 탬퍼링 방지성 평가 장치에 의해 단순 전력 해석을 이용한 회로의 탬퍼링 방지성의 평가가 가능하게 된다.
본 실시예에 따르면, 탬퍼링 방지성 평가 장치에 의해 타이밍 해석을 이용한 회로의 탬퍼링 방지성의 평가가 가능하게 된다.
본 실시예에 따르면, 탬퍼링 방지성 평가 장치는, 논리 회로의 신호가 변화된 횟수의 가산값에 근거하여 소비 전력을 산출할 수 있다. 이에 따라 탬퍼링 방지성 평가 장치는 부하 용량을 산출할 필요가 없어지기 때문에, 종래보다 짧은 처리 시간에 논리 회로의 소비 전력을 산출하는 것이 가능하게 된다.
본 실시예에 따르면, 탬퍼링 방지성 평가 장치는, 논리 회로의 신호가 변화된 횟수에만 근거하여 소비 전력을 산출할 수 있다. 이에 따라 탬퍼링 방지성 평가 장치는 부하 용량을 산출할 필요가 없어지기 때문에, 종래보다 짧은 처리 시간에 논리 회로의 소비 전력을 산출하는 것이 가능하게 된다.
본 실시예에 따르면, 논리 시뮬레이션으로 얻어진 신호 변화 정보에 근거하여 탬퍼링 방지성을 평가하도록 했기 때문에, 소프트웨어에 의한 시뮬레이션보다 더 정확한 평가가 가능하게 되었다. 또한, 회로 시뮬레이터를 이용하는 경우보다 고속의 평가를 설계의 상류 공정에서 행하는 것이 가능하게 되었다.
본 실시예에 따르면, 종래보다 소비 전력을 고속으로 산출할 수 있다. 그 결과, 회로 설계의 상류 공정에 있어서, 논리 시뮬레이션에 의해, 짧은 시간에 손쉽게 대상으로 되는 회로의 탬퍼링 방지성을 평가하는 것이 가능하게 된다.
(실시예 3)
실시예 3에서는, 대상으로 되는 논리 회로에서의 신호 지연에 의한 과도 천이의 영향을 배제하고, 반도체 장치나 배치 배선에 의존하지 않는 이상적인 상태에서의 논리 회로의 탬퍼링 방지성을 평가하는 실시예에 대하여 설명한다.
실시예 3에 있어서의 탬퍼링 방지성 평가 장치의 구성과 각부의 기능 및 소비 전력의 산출 방법은 실시예 2와 동일하다.
단, 신호 변화 횟수 계수부(10)는, 소정의 시간에서의 신호 변화 횟수가 기수회인 경우, 1회의 신호 변화라고 간주하고, 소정의 시간에서의 신호 변화 횟수가 우수회인 경우, 0회의 신호 변화라고 간주하여, 회로에서 신호가 변화된 횟수를 계수한다.
여기서, 논리 시뮬레이션에 있어서의 신호 변화 횟수에 대하여 설명한다.
실시예 3에서의 탬퍼링 방지성 평가 장치의 신호 변화 횟수 계수부(10)는 논리 회로에서 발생하는 모든 신호 변화를 계수하고, 그것을 신호 변화 횟수로 하고 있다. 이 신호 변화 횟수는 신호의 과도 천이에 의해 논리 회로에서 발생하는 신호의 변화도 포함하고 있다. 즉, 본래는, 1클록 사이클 경과한 후에 신호가 변화하고 있는지의 여부만이 신호 변화의 결과일 것이다. 그러나, 실제로는 1클록 사이클 경과하는 과도 천이 동안에도, 신호의 변화는 발생하고 있다. 그 결과, 신호 변화 횟수 계수부(10)가 계수한 신호 변화 횟수는 이 1클록 사이클 경과하고 있는 동안에 발생하는 신호 변화의 횟수도 포함한 값으로 되어 버리고 있다.
논리 회로로부터의 정보 누설을 정확하게 검출하기 위해서는, 논리 회로의 소비 전력을 정확하게 산출할 필요가 있고, 그것을 위해서는, 과도 천이로 신호가 변화되는 횟수를 배제한 신호 변화 횟수를 계수할 필요가 있다. 이 원인인 과도 천이에서의 신호 변화는 반도체 장치의 특성이나 배치 배선에 의해 발생하는 신호의 지연을 원인으로 하여 발생하는 것이다. 그래서, 정보의 누설을 정확하게 검출하기 위해서는, 지연이 없는 이상적인 회로로 신호 변화 횟수의 계수를 행하여, 정확한 회로의 소비 전력을 산출할 필요가 있다.
실제의 지연은 배치 배선이나 트랜지스터의 특성 외의 요인에 의해 변동되고, 논리 시뮬레이션시에는 각 순간의 지연을 실제 기기와 완전히 동등하게 예측하는 것은 불가능하다. 그러나, 논리 시뮬레이션으로 얻어지는 신호 변화 횟수는 작은 지연차에 의존하여 크게 변하는 경우가 있다. 또한, 이 지연은 장치에 의존하는 부분도 크다. 즉, 설계의 상류 공정에 있어서 논리적으로 탬퍼링 방지성을 평가한다고 하는 목적에 대하여, 배치 배선 등의 불확정 요소나 장치 의존성이 뒤섞이게 된다.
이 문제를 해결하여, 가능한 한 장치 의존성이나 배치 배선 의존성을 배제하고, 순수하게 논리적으로 탬퍼링 방지성을 평가하기 위해서는, 신호의 전파 지연이 없는 이상적인 장치를 상정했을 때의 신호 변화 횟수를 계수하면 좋다.
이것을 실현하기 위한 수단으로서, 예컨대, 논리 시뮬레이션에서의 지연량을 0 지연으로 하는 것이 생각된다. 단, 이 방법에서는, 어느 정도의 지연도 고려한 평가를 행하고 싶은 경우에는, 지연량을 바꿔 논리 시뮬레이션을 다시 할 필요가 있다.
그래서 본 실시예에 있어서는, 지연을 고려하는 경우와 지연을 고려하지 않는 경우의 평가를 보다 효율적으로 실현하기 위해서, 논리 시뮬레이션은 지연을 고려하여 1회만 행하고, 지연을 고려하는 경우는, 논리 시뮬레이션으로부터 얻어지는 신호 변화 횟수를 그대로 이용하고, 지연을 고려하지 않는 경우는, 1클록 사이클 동안에 신호가 기수회 변화된 경우에는, 신호가 1회 변화되었다고 계산하고, 신호가 우수회 변화된 신호에는, 0회 변화되었다고 계산하는 것으로 했다. 물론, 양쪽을 합하여 행해도 좋다.
이에 따라, 1회의 논리 시뮬레이션으로 지연을 고려한 평가와, 지연을 고려하지 않는 경우, 즉, 지연이 없는 이상적인 장치를 상정한 경우의 평가를 둘 다 행하는 것이 가능하게 된다.
이에 따라 신호 변화 횟수를 계수한 경우의 소비 전력을 산출하는 프로그램의 예를 도 9에 나타낸다. 이 프로그램에서는, 신호 변화 횟수 계수부(10)가 계수한 신호 변화 횟수를 기입한 파일 fpr로부터, 소비 전력 산출부(20)가 모든 신호의 변화 횟수 TC를 추출하여, 추출한 TC의 합계 tc를 구한 후, “tc%=2”에 따라 tc를 2로 나눈 나머지를 구하는 것에 의해, 신호가 변화된 횟수가 우수회인 경우에는 0회를, 기수회인 경우에는 1회를 신호 변화 횟수의 합계 sum으로 하고 있다. 또, 신호 변화 횟수를 기입한 파일 fpr은 실시예 1의 표 1와 동일하며, 합계 sum을 기입한 파일은 표 2와 동일하다.
실시예 3에 있어서의 탬퍼링 방지성 평가 장치의 동작은 실시예 2에 있어서의 동작과 동일하다. 단, 상기한 바와 같이, 신호 변화 횟수 계수부(10)에서의 신호 변화 횟수의 계수 방법만이 다르다.
본 실시예에 따르면, 과도 천이에서의 신호 변화를 배제하여 신호 변화 횟수를 계수할 수 있고, 그것에 의해 논리 회로의 소비 전력을 정확하게 산출할 수 있다. 그 결과, 반도체 장치나 배치 배선에 의존하지 않는 이상적인 상태에서 논리 회로의 탬퍼링 방지성을 평가하는 것이 가능하게 된다.
본 실시예에 따르면, 1회의 논리 시뮬레이션에 의해, 지연을 없애고 과도 천이의 영향을 배제한 이상적인 논리 회로의 탬퍼링 방지성의 평가와, 과도 천이의 영향이 반영된 지연을 포함하는 논리 회로에서의 탬퍼링 방지성의 평가를 행하는 것이 가능하게 된다.
(실시예 4)
실시예 4에서는, 논리 회로의 소망하는 영역에 대해서만 탬퍼링 방지성의 평가를 행하는 실시예에 대하여 설명한다.
실시예 4에 있어서의 탬퍼링 방지성 평가 장치의 구성과 각부의 기능 및 소비 전력의 산출 방법은 실시예 2와 동일하다.
단, 탬퍼링 방지성 평가 장치는, 신호 변화 횟수 계수부(10)가 신호 변화의 횟수를 계수하는 논리 회로로서, 소망하는 영역의 논리 회로를 설정한다.
실시예 1∼실시예 3에서는 명기하지 않았지만, 소비 전력의 산출은, 대상으로 되는 논리 회로 전체에 대하여 행하는 것을 상정하고 있었다. 그러나, 비밀 정보가 논리 회로의 어느 부분으로부터 어떻게 하여 누설되는가 하는 메커니즘을 해명하기 위해서는, 대상으로 되는 논리 회로 내의 특정한 회로 부분만의 소비 전력을 산출할 수 있으면 더욱 좋다.
이것을 실현하는 방법으로서, 신호의 변화를 추출하는 회로 부분을 논리 시뮬레이터(30)에 대하여 지정하는 방법이 있다. 그러나, 이 방법에서는, 별도의 회로 부분의 소비 전력을 산출하는 경우에는, 회로 부분의 지정을 바꿔, 재차, 논리 시뮬레이션을 행할 필요가 있다.
그래서, 어떤 회로 부분의 신호 변화 횟수를 계수할지의 지정에 근거하여, 논리 시뮬레이터(30)는 지정한 회로 부분을 포함하는 보다 큰 회로 부분의 신호 변화 정보를 출력한다. 게다가, 신호 변화 횟수 계수부(10)는 그 큰 회로 부분 중에서, 회로 부분을 바꿔, 각 회로 부분에서 신호가 변화된 횟수를 계수하고, 소비 전력 산출부(20)가 그 회로 부분의 소비 전력을 산출한다.
이와 같이 하면, 1회의 논리 시뮬레이션으로, 복수의 회로 부분의 소비 전력을 산출할 수 있다.
이에 따라 신호 변화 횟수를 계수하고, 그것을 이용하여 소비 전력을 산출하는 프로그램의 예를 도 10에 나타낸다. 이 프로그램에서는, 지정된 큰 논리 회로의 영역에 포함되는 회로 부분을 인스턴스(instance)로 판독하고, 판독한 회로 부분에 대해서 논리 시뮬레이션을 행하고, 신호 변화 횟수 계수부(10)가 계수한 신호 변화 횟수를 기입한 파일 fpr로부터, 소비 전력 산출부(20)가 모든 신호의 신호 변화 횟수 TC를 추출하고, 추출한 TC의 합계 sum을 구하고 있다.
다음에, 실시예 4에 있어서의 탬퍼링 방지성 평가 장치의 동작을, 도 11에 나타내는 탬퍼링 방지성 평가 장치의 처리의 흐름도를 이용하여 설명한다.
우선, 실시예 1과 같이, 파일 데이터베이스(40)로의 대상으로 되는 논리 회로 등의 입력과, 시뮬레이션 제어 정보 생성부(50)에 의한 시뮬레이션 제어 정보의 생성의 준비를 행한다.
다음에, 탬퍼링 방지성 평가 장치는 탬퍼링 방지성의 평가의 대상으로 되는 논리 회로 내의 특정한 회로 부분을 입력한다(단계 S300). 이후, 단계 S301로부터 단계 S309는 실시예 3에 있어서의 탬퍼링 방지성 평가 장치의 단계 S200으로부터 단계 S208과 동작이 동일하지만, 단계 S303에 있어서, 논리 시뮬레이터는 단계 S300에서 입력한 논리 회로 내의 특정한 회로 부분보다 넓은 범위의 회로 부분의 논리 시뮬레이션을 행하도록 한다.
본 실시예에 따르면, 탬퍼링 방지성 평가 장치는, 논리 시뮬레이터가 논리 시뮬레이션을 1회 행하는 것만으로, 회로 부분을 바꿔 소비 전력을 산출할 수 있다. 그 결과, 1회의 논리 시뮬레이션으로, 복수의 회로 부분의 탬퍼링 방지성을 평가할 수 있게 되어, 평가를 효율좋게 실행하는 것이 가능하게 된다.
이상, 보안 장치의 하드웨어 설계의 상류 공정에 있어서, 논리 시뮬레이터에 의해 당해 하드웨어의 일정 시간 간격마다의 신호 변화수를 계수하고, 그것에 근거하여 당해 일정 시간 간격마다의 소비 전력을 추정하는 것으로 얻어지는 소비 전력 정보를 사용하여 전력 차분 해석을 행하는 것을 특징으로 하는 탬퍼링 방지성 평가 장치의 실시예에 대하여 설명했다.
동일한 방법으로 얻어지는 소비 전력 정보를 사용하여 단순 전력 해석을 행하는 것을 특징으로 하는 탬퍼링 방지성 평가 장치의 실시예에 대하여 설명했다.
동일한 방법으로 얻어지는 소비 전력 정보를 사용하여 타이밍 해석을 행하는 것을 특징으로 하는 탬퍼링 방지성 평가 장치의 실시예에 대하여 설명했다.
모든 신호의 부하 용량은 거의 같은 것으로 간주하여, 「소비 전력≒신호 변화의 총 수」라고 근사하는 것으로 전력 추정 시간을 현저히 단축하는 것을 특징으로 하는 탬퍼링 방지성 평가 장치의 실시예에 대하여 설명했다.
1클록 사이클 동안에 기수회 변화된 신호는 1회 변화되었다고 계산하고, 우수회 변화된 신호는 0회 변화되었다고 계산함으로써, 지연이 없는 이상적인 장치를 상정한 경우의 전력을 구함으로써, 지연에 의한 과도 천이의 영향을 배제하고, 장치나 배치 배선에 의존하지 않는 회로의 본질적인 특징을 평가하는 것을 특징으로 하는 탬퍼링 방지성 평가 장치의 실시예에 대하여 설명했다.
보안 장치 전체에서가 아니라, 암호 코어나 그 내부 모듈마다, 또는 특정한 신호군만의 전력을 추정하고, 각각에 대하여 해석을 행함으로써, 회로 부분마다의 공격에 대한 내성을 평가하는 것을 특징으로 하는 탬퍼링 방지성 평가 장치의 실시예에 대하여 설명했다.
상기한 각 실시예에 있어서, 전력 산출 장치, 탬퍼링 방지성 평가 장치는 컴퓨터에 의해 실현할 수 있는 것이다.
도시하고 있지 않지만, 전력 산출 장치, 탬퍼링 방지성 평가 장치는 프로그램을 실행하는 CPU(Central Processing Unit)를 구비하고 있다. CPU는, 예컨대, 버스를 거쳐, ROM(Read Only Memory), RAM(Random Access Memory), 통신 보드, 표시 장치, 키보드, 마우스, FDD(Flexible Disk Drive), CDD(Compact Disk Drive), 자기 디스크 장치, 광 디스크 장치, 프린터 장치, 스캐너 장치 등과 접속되어 있다.
RAM은 휘발성 메모리의 일례이다. ROM, FDD, CDD, 자기 디스크 장치, 광 디스크 장치는 비휘발성 메모리의 일례이다. 이들은 기억 장치 또는 기억부의 일례이다.
상기한 각 실시예의 전력 산출 장치, 탬퍼링 방지성 평가 장치가 취급하는 정보는 기억 장치 또는 기억부에 의해 기록되고, 판독되는 것이다.
통신 보드는, 예컨대, LAN(Local Area Network), 인터넷, 또는 ISDN(Integrated Services Digital Network) 등에 접속되어 있다.
자기 디스크 장치에는, 오퍼레이팅 시스템(OS), 윈도우 시스템, 프로그램군, 파일군이 기억되어 있다. 프로그램군은 CPU, OS, 윈도우 시스템에 의해 실행된다.
전력 산출 장치, 탬퍼링 방지성 평가 장치는 일부 또는 전부를 컴퓨터에서 동작 가능한 프로그램에 의해 구성하더라도 상관없다. 또는, ROM에 기억된 펌웨어로 실현되어 있더라도 상관없다. 또는, 소프트웨어와 하드웨어, 또는, 소프트웨어와 하드웨어와 펌웨어의 조합으로 실시되더라도 상관없다.
프로그램군에는, 각 실시예의 설명에 있어서 「∼부」로서 설명한 처리를 CPU에 실행시키는 프로그램이 포함된다. 이들 프로그램은, 예컨대, C언어나 HTML(Hyper Text Markup Language)이나 SGML(Standard Generalized Markup Language)이나 XML(eXtensible Markup Language) 등의 컴퓨터 언어에 의해 작성된다.
상기한 프로그램은 자기 디스크 장치, FD(FlexibIe Disk), 광 디스크, CD(Compact Disk), MD(Mini Disk), DVD(Digital Versatile Disk) 등 그 외의 기록 매체에 기억되어, CPU에 의해 판독되고 실행된다.
본 실시예에서는, DES 암호 회로의 탬퍼링 방지성을 전력 차분 해석을 이용하여 평가한 예를 도 12, 도 13, 도 14에 나타낸다. 이들 도면은 몇 개의 중간 변수에 대하여, 그것을 1비트마다 분해하고, 그 1비트가 0으로 될지 1로 될지에 따라 전력 차분을 구한 결과를 일람 그래프 형식으로 정리한 것이다. 1비트마다 가로축이 시간, 세로축이 전력 차분을 나타내고 있다. 그래프에 나타나는 특징적인 스파이크가 비밀 정보에 연결된다.
또한, 실제 기기를 이용하여 논리 회로의 탬퍼링 방지성 평가를 행한 결과와, 상기한 실시예를 이용하여 실제 기기에 탑재하고 있는 회로와 같은 논리 회로의 탬퍼링 방지성 평가를 행한 결과를 도 15와 도 16에 나타낸다. 도 15는 평가의 대상으로 되는 논리 회로의 전력 차분이 비교적 큰 동작 모드의 경우이며, 도 16은 평가의 대상으로 되는 논리 회로의 전력 차분이 비교적 작은 동작 모드의 경우이다. 각각 (a)는 실제 기기를 이용하여 탬퍼링 방지성 평가를 행한 결과, (b)는 실시예에서 설명한 논리 시뮬레이션에 의한 탬퍼링 방지성 평가를 행한 결과를 나타내고 있다. 해석 방법은 모두 전력 차분 해석이다. 도면의 세로축(전력 차분) 및 가로축(시간)의 눈금은 상대적인 것이며, 큰 의미는 없다. 또한, 상기한 동작 모드는 외부로부터 논리 회로에 신호를 입력함으로써, 선택하는 것이 가능하다.
정보 누설의 유무라는 관점에서는, 본 실시예에서 나타낸 탬퍼링 방지성 평가를 행한 결과는 실제 기기를 이용하여 탬퍼링 방지성 평가를 행한 결과와 높은 정밀도로 일치하고 있다. 동작 모드에 따른 전력 차분의 차이도 논리 시뮬레이션으로 예측할 수 있음을 알 수 있다.
Claims (18)
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 논리 회로로부터의 정보 누설을 검출하여 논리 회로의 탬퍼링 방지성을 평가하는 탬퍼링 방지성 평가 장치에 있어서,논리 시뮬레이션에 의해 논리 회로의 신호를 시뮬레이션하는 논리 시뮬레이터와,상기 논리 시뮬레이터가 시뮬레이션한 논리 회로의 신호에 근거하여, 논리 회로의 신호가 변화된 횟수(f)를 계수하여 신호 변화 횟수 기억부에 기억시키는 신호 변화 횟수 계수부와,상기 신호 변화 횟수 계수부가 신호 변화 횟수 기억부에 기억시킨 논리 회로의 신호가 변화된 횟수(f)에 근거하여 논리 회로의 신호가 변환된 횟수(f)의 가산값(Σf)을 산출하고, 산출한 가산값(Σf)을 논리 회로의 소비 전력으로 간주함으로써, 논리 회로의 소비 전력을 산출하는 소비 전력 산출부와,상기 소비 전력 산출부가 산출한 논리 회로의 소비 전력에 근거하여 논리 회로로부터 누설되는 정보를 해석하는 누설 정보 해석부를 구비하는 것을 특징으로 하는 탬퍼링 방지성 평가 장치.
- 제 9 항에 있어서,상기 누설 정보 해석부에 의한 논리 회로의 소비 전력에 근거하는 누설되는 정보의 해석은 전력 차분 해석인 것을 특징으로 하는 탬퍼링 방지성 평가 장치.
- 제 9 항에 있어서,상기 누설 정보 해석부에 의한 논리 회로의 소비 전력에 근거하는 누설되는 정보의 해석이 단순 전력 해석인 것을 특징으로 하는 탬퍼링 방지성 평가 장치.
- 제 9 항에 있어서,상기 누설 정보 해석부에 의한 논리 회로의 소비 전력에 근거하는 누설되는 정보의 해석이 타이밍 해석인 것을 특징으로 하는 탬퍼링 방지성 평가 장치.
- 제 9 항에 있어서,상기 논리 회로는 CMOS 반도체 디바이스에 의해 구성되는 것을 특징으로 하는 탬퍼링 방지성 평가 장치.
- 삭제
- 제 9 항에 있어서,상기 신호 변화 횟수 계수부는,사전 결정된 시간에서의 신호 변화 횟수가 홀수회인 경우, 1회의 신호 변화라고 간주하고,상기 사전 결정된 시간에서의 신호 변화 횟수가 짝수회인 경우, 0회의 신호 변화라고 간주하여,상기 논리 회로에서 신호가 변화된 횟수(f)를 계수하는것을 특징으로 하는 탬퍼링 방지성 평가 장치.
- 제 9 항에 있어서,상기 신호 변화 횟수 계수부가 신호 변화의 횟수를 계수하는 논리 회로로서, 논리 회로 내의 특정의 회로 부분을 설정하는 것을 특징으로 하는 탬퍼링 방지성 평가 장치.
- 논리 회로로부터의 정보 누설을 평가하는 정보 누설 평가 방법에 있어서,논리 시뮬레이션에 의해 논리 회로의 신호를 시뮬레이션하는 논리 시뮬레이션 공정과,상기 논리 시뮬레이션 공정이 시뮬레이션한 논리 회로의 신호에 근거하여, 논리 회로의 신호가 변화된 횟수(f)를 계수하여 신호 변화 횟수 기억부에 기억시키는 신호 변화 횟수 계수 공정과,상기 신호 변화 횟수 계수 공정이 신호 변화 횟수 기억부에 기억시킨 논리 회로의 신호가 변화된 횟수(f)에 근거하여 논리 회로의 신호가 변화된 횟수의 가산값(Σf)을 산출하고, 산출한 가산값(Σf)을 논리 회로의 소비 전력으로 간주함으로써, 논리 회로의 소비 전력을 산출하는 소비 전력 산출 공정과,상기 소비 전력 산출 공정이 산출한 논리 회로의 소비 전력에 근거하여 논리 회로로부터 누설되는 정보를 해석하는 누설 정보 해석 공정을 실행하는 것을 특징으로 하는 탬퍼링 방지성 평가 방법.
- 제 17 항에 있어서,상기 논리 회로는 CMOS 반도체 디바이스에 의해 구성되는 것을 특징으로 하는 탬퍼링 방지성 평가 방법.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2004/009632 WO2006006198A1 (ja) | 2004-07-07 | 2004-07-07 | 電力算出装置、電力算出方法、耐タンパ性評価装置及び耐タンパ性評価方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070031947A KR20070031947A (ko) | 2007-03-20 |
KR100876717B1 true KR100876717B1 (ko) | 2008-12-31 |
Family
ID=35783564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067026889A KR100876717B1 (ko) | 2004-07-07 | 2004-07-07 | 탬퍼링 방지성 평가 장치 및 탬퍼링 방지성 평가 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7460965B2 (ko) |
EP (1) | EP1768040A4 (ko) |
JP (1) | JP4651620B2 (ko) |
KR (1) | KR100876717B1 (ko) |
CN (1) | CN1969277A (ko) |
WO (1) | WO2006006198A1 (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8825464B2 (en) * | 2008-09-02 | 2014-09-02 | Oracle America, Inc. | Method and apparatus for parallelization of sequential power simulation |
JP5262996B2 (ja) * | 2009-05-26 | 2013-08-14 | 富士通セミコンダクター株式会社 | 論理シミュレーション装置、方法、及びプログラム |
GB2487901B (en) * | 2011-02-03 | 2019-12-04 | Advanced Risc Mach Ltd | Power signature obfuscation |
WO2013112249A1 (en) * | 2012-01-24 | 2013-08-01 | University Of Southern California | Digital circuit power measurements using numerical analysis |
WO2014205369A1 (en) | 2013-06-21 | 2014-12-24 | Cryptography Research, Inc. | Signal transition analysis of a circuit |
US10386395B1 (en) | 2015-06-03 | 2019-08-20 | University Of Southern California | Subcircuit physical level power monitoring technology for real-time hardware systems and simulators |
JP6547577B2 (ja) * | 2015-10-15 | 2019-07-24 | 富士通株式会社 | 検査装置、検査プログラムおよび検査方法 |
EP3208788B1 (en) * | 2016-02-22 | 2020-06-03 | Eshard | Method of protecting a circuit against a side-channel analysis |
KR20160061931A (ko) | 2016-05-13 | 2016-06-01 | 이우성 | 이중구조 블록탱크 집진기를 구비한 해양원자력수력발전소의 핵폐기물처리용 원자로설비의 분배투입장치 |
KR20160079738A (ko) * | 2016-06-17 | 2016-07-06 | 이우성 | 매립 체 용 공유지 및 공유수면 매립처리 건설기계의 분배투입장치 |
KR20160093580A (ko) * | 2016-07-19 | 2016-08-08 | 이우성 | 해양의 어도 터널 교통장치를 구비한 공유수면매립지의 수산개발장치 |
KR20160101884A (ko) * | 2016-08-08 | 2016-08-26 | 이우성 | 수산물 재배용 수산물 및 공유수면 매립처리 건설기계의 어패류 가공 장 치 |
KR20160132349A (ko) | 2016-10-31 | 2016-11-18 | 이우성 | 인명구조침몰방지 선박 및 퍼 블 젯 트 에 대응하는 선박의 제조 |
CN112134685B (zh) * | 2020-10-27 | 2024-02-13 | 深圳安捷丽新技术有限公司 | 一种防dpa攻击的待测电路安全仿真分析方法和装置 |
CN112104447B (zh) * | 2020-10-27 | 2024-02-06 | 深圳安捷丽新技术有限公司 | 一种防spa攻击的待测电路安全仿真分析方法和装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0573634A (ja) | 1990-10-05 | 1993-03-26 | Nec Corp | 消費電力計算手法 |
AU2816495A (en) * | 1994-06-03 | 1996-01-04 | Synopsys, Inc. | Method and apparatus for estimating the power dissipated by a digital circuit |
JPH0926456A (ja) | 1995-07-13 | 1997-01-28 | Hitachi Ltd | 消費電力計算システム |
US5994892A (en) * | 1996-07-31 | 1999-11-30 | Sacramento Municipal Utility District | Integrated circuit design automatic utility meter: apparatus & method |
US6236197B1 (en) * | 1998-05-15 | 2001-05-22 | Abb Power T&D Company Inc. | Apparatus and method for detecting tampering in a multiphase meter |
JP2000242676A (ja) | 1999-02-18 | 2000-09-08 | Nec Corp | 論理回路の消費電力計算方法及び計算装置 |
JP2003085233A (ja) | 2001-09-10 | 2003-03-20 | Sanyo Electric Co Ltd | 集積回路装置の電力解析システム |
US7194633B2 (en) * | 2001-11-14 | 2007-03-20 | International Business Machines Corporation | Device and method with reduced information leakage |
JP2004126841A (ja) * | 2002-10-01 | 2004-04-22 | Renesas Technology Corp | プログラム実装方法 |
US7644290B2 (en) * | 2003-03-31 | 2010-01-05 | Power Measurement Ltd. | System and method for seal tamper detection for intelligent electronic devices |
-
2004
- 2004-07-07 EP EP04747101A patent/EP1768040A4/en not_active Ceased
- 2004-07-07 KR KR1020067026889A patent/KR100876717B1/ko not_active IP Right Cessation
- 2004-07-07 CN CNA2004800432527A patent/CN1969277A/zh active Pending
- 2004-07-07 WO PCT/JP2004/009632 patent/WO2006006198A1/ja not_active Application Discontinuation
- 2004-07-07 JP JP2006527640A patent/JP4651620B2/ja not_active Expired - Fee Related
- 2004-07-07 US US11/579,953 patent/US7460965B2/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
논문. シミュレ―ションによるDES實裝のDPA耐性評價(2004.03.15.)* |
Also Published As
Publication number | Publication date |
---|---|
WO2006006198A1 (ja) | 2006-01-19 |
CN1969277A (zh) | 2007-05-23 |
JPWO2006006198A1 (ja) | 2008-04-24 |
JP4651620B2 (ja) | 2011-03-16 |
KR20070031947A (ko) | 2007-03-20 |
US7460965B2 (en) | 2008-12-02 |
EP1768040A4 (en) | 2008-05-21 |
EP1768040A1 (en) | 2007-03-28 |
US20070219735A1 (en) | 2007-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8108194B2 (en) | Peak power detection in digital designs using emulation systems | |
KR100876717B1 (ko) | 탬퍼링 방지성 평가 장치 및 탬퍼링 방지성 평가 방법 | |
US9141736B2 (en) | Method for power estimation for virtual prototyping models for semiconductors | |
JP2008065496A (ja) | Lsiの消費電力ピーク見積プログラム及びその装置 | |
Yu et al. | An improved automatic hardware trojan generation platform | |
CN101395484A (zh) | 转换数目的高效计算及连续扫描测试中的功率耗散的估计 | |
Qin et al. | A formal model for proving hardware timing properties and identifying timing channels | |
Reinsalu et al. | Fast RTL fault simulation using decision diagrams and bitwise set operations | |
US20120095737A1 (en) | Power estimator and power estimation method | |
Kiaei et al. | Leverage the average: Averaged sampling in pre-silicon side-channel leakage assessment | |
US7574344B2 (en) | Static timing based IR drop analysis | |
TWI396109B (zh) | 信號選擇裝置與系統與電路模仿器及方法與程式產品 | |
US11748534B1 (en) | System and method for glitch power estimation | |
US20100286974A1 (en) | Technique using power macromodeling for register transfer level power estimation | |
Dehbashi et al. | Debug automation for logic circuits under timing variations | |
Ubar et al. | Fast identification of true critical paths in sequential circuits | |
US10055532B2 (en) | Collapsing terms in statistical static timing analysis | |
Pagliarini et al. | Snap: A novel hybrid method for circuit reliability assessment under multiple faults | |
Micheli | Fast power estimation for deterministic input streams | |
Dehbashi et al. | SAT-based speedpath debugging using waveforms | |
Hartl et al. | Architectural vulnerability factor estimation with backwards analysis | |
US7552410B1 (en) | Estimating LUT power usage | |
JP2009271653A (ja) | 消費電力見積方法、回路設計支援装置及びプログラム | |
Bachmann et al. | Efficient algorithms for multilevel power estimation of VLSI circuits | |
Verma et al. | Signal Rate Activity as a Formal Method for Fault Discovery and Monitoring in Trusted and Secure Electronics Development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121130 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20131210 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20141205 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20151118 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20161123 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |