KR20110037267A - 고속 차분 전력 분석 방법 및 그 기록 매체 - Google Patents

고속 차분 전력 분석 방법 및 그 기록 매체 Download PDF

Info

Publication number
KR20110037267A
KR20110037267A KR1020090094635A KR20090094635A KR20110037267A KR 20110037267 A KR20110037267 A KR 20110037267A KR 1020090094635 A KR1020090094635 A KR 1020090094635A KR 20090094635 A KR20090094635 A KR 20090094635A KR 20110037267 A KR20110037267 A KR 20110037267A
Authority
KR
South Korea
Prior art keywords
traces
secret key
difference
calculating
estimated
Prior art date
Application number
KR1020090094635A
Other languages
English (en)
Other versions
KR101047103B1 (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 고려대학교 산학협력단
Priority to KR1020090094635A priority Critical patent/KR101047103B1/ko
Publication of KR20110037267A publication Critical patent/KR20110037267A/ko
Application granted granted Critical
Publication of KR101047103B1 publication Critical patent/KR101047103B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

고속 차분 전력 분석 방법 및 그 기록 매체가 개시된다. 본 발명의 일 실시 예에 따른 고속 차분 전력 분석 방법은 수집된 트레이스들에 대해 비밀키를 추정하는 단계; S박스들에 대해 CPU와 GPU에서 병렬적으로 결과값을 계산하는 단계; 상기 트레이스들에 상응하는 평문과 상기 결과값을 기준으로 상기 트레이스들을 제1집합 및 제2집합으로 분류하는 단계; 및 상기 제1집합의 평균과 제2집합의 평균 사이의 차를 계산하여 상기 추정된 비밀키가 옳은지 여부를 판단하는 단계를 포함한다. 본 발명의 실시 예들에 따라 DES 암호 알고리즘의 DPA 분석을 수행할 경우 분석 시간을 크게 줄일 수 있다.

Description

고속 차분 전력 분석 방법 및 그 기록 매체 {Method for fast differential power analysis and Recording medium thereof}
본 발명은 DES DPA 분석의 성능을 높이기 위한 방법에 관한 것으로, 특히 기존 대비 분석 시간을 절반으로 줄일 수 있는 고속 차분 전력 분석 방법 및 그 기록 매체에 관한 것이다.
현재 수학적으로 안전하도록 설계된 암호 알고리즘일지라도 실제로 장치에 구현되는 방법에 따라서 안전하지 않을 수도 있다는 사실이 알려졌다. 즉, 암호 알고리즘이 동작할 때 발생하는 전력 소모, 전자기파, 또는 수행 시간의 정보를 통하여 장치의 내부에 저장된 키 값을 추측할 수 있다. 미국 FIPS 140-3 (CMVP 암호 모듈 보안성 평가기준)의 보안 레벨 2, 3, 4에는 부채널 분석에 대한 평가 기준이 마련되어 있다. 현재 및 향후 개발되는 장치들은 이러한 평가 기준에 부합해야하며 다양한 부채널 분석 실험을 통하여 안전성을 검증받은 후에라야 시장에 내놓을 수 있다. 따라서, 이러한 부채널 분석 실험을 효과적이고 빠르게 수행할 수 있는 소프트웨어의 개발이 시급하다.
한편, 그래픽 프로세싱 유닛(Graphics Processing Unit; GPU)는 일반적으로 컴퓨터에서 사용되는 그래픽 카드를 일컬으며 현재 개발되고 있는 GPU는 중앙 프로세싱 유닛 (Central Processing Unit; CPU)의 연산처리 속도를 뛰어넘고 있다. 즉, CPU는 연산 뿐만 아니라 제어측면에서의 연산도 고려하여 설계되었지만 GPU는 순전히 연산 중심으로 설계되었기 때문에 CPU의 연산 속도를 뛰어넘었으며 향후에는 그 격차는 더욱 가속될 전망이다. 특히 GPU는 현재 240개의 코어로 구성되었기 때문에 병렬처리에서 매우 우수한 성능을 보인다.
본 발명이 이루고자 하는 첫 번째 기술적 과제는 중앙 프로세싱 유닛을 포함하는 컴퓨터 시스템에서 DES 암호 알고리즘의 DPA 분석 시에 분석 시간을 크게 줄일 수 있는 고속 차분 분석 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 두 번째 기술적 과제는 상기 고속 차분 분석 방법을 컴퓨터 시스템에서 실행하기 위한 프로그램이 기록된 매체로서, 컴퓨터 시스템이 판독할 수 있는 기록매체를 제공하는 데 있다.
상기의 첫 번째 기술적 과제를 이루기 위하여, 본 발명의 일 실시 예에 따른 고속 차분 전력 분석 방법은 수집된 트레이스들에 대해 비밀키를 추정하는 단계; S박스들에 대해 CPU와 GPU에서 병렬적으로 결과값을 계산하는 단계; 상기 트레이스들에 상응하는 평문과 상기 결과값을 기준으로 상기 트레이스들을 제1집합 및 제2집합으로 분류하는 단계; 및 상기 제1집합의 평균과 제2집합의 평균 사이의 차를 계산하여 상기 추정된 비밀키가 옳은지 여부를 판단하는 단계를 포함한다.
본 발명의 일 실시 예에서, 상기 추정된 비밀키가 옳은지 여부를 판단하는 단계는 상기 트레이스들에 대해 미리 계산된 총합을 이용하여 상기 평균 사이의 차를 계산하는 단계를 포함할 수 있다. 구체적으로, 상기 미리 계산된 총합을 이용하여 상기 평균 사이의 차를 계산하는 단계는 Total_SUM이 상기 트레이스들에 대해 미리 계산된 총합, #SET0는 상기 결과값이 0인 집합에서 트레이스의 수, #SET1은 상기 결과값이 1인 집합에서 트레이스의 수, #(Total)은 전체 트레이스의 수인 경우, 수학식
Figure 112009061148261-PAT00001
에 따라 상기 평균 사이의 차를 계산하는 단계일 수 있다.
본 발명의 일 실시 예에서, 상기 S박스들은 상기 수집된 트레이스들에 상응하는 평문과 상기 추정된 비밀키가 XOR 연산된 값을 입력으로 할 수 있다.
본 발명의 일 실시 예에서, 상기 추정된 비밀키가 옳은지 여부를 판단하는 단계는 상기 평균 사이의 차가 0이 아닌 경우 상기 추정된 비밀키가 옳은 비밀키라고 판단하는 단계일 수 있다.
본 발명의 다른 실시 예에 따른 고속 차분 전력 분석 방법은 수집된 트레이스들에 대해 비밀키를 추정하는 단계; S박스들에 대해 CPU와 GPU에서 병렬적으로 계산된 결과값과 상기 트레이스들에 상응하는 평문을 기준으로 상기 트레이스들을 제1집합 및 제2집합으로 분류한 분류 리스트를 메모리 로드하는 단계; 및 상기 제1집합의 평균과 제2집합의 평균 사이의 차를 계산하여 상기 추정된 비밀키가 옳은지 여부를 판단하는 단계를 포함한다.
본 발명의 다른 실시 예에서, 상기 추정된 비밀키가 옳은지 여부를 판단하는 단계는 상기 평균 사이의 차가 0이 아닌 경우, 상기 추정된 비밀키가 옳은 비밀키라고 판단하는 단계일 수 있다.
본 발명의 또 다른 실시 예에 따른 고속 차분 전력 분석 방법은 상기 비밀키를 추정하기 전에, 상기 트레이스들을 수집한 후 일정 단위로 나누어 파일로 저장 하는 단계를 더 포함할 수 있다. 이 경우, 상기 결과값을 계산하는 단계는 상기 일정 단위로 나누어진 트레이스들에 대해 S박스 연산을 수행하는 단계일 수 있다.
본 발명의 실시 예들에 따라 DES 암호 알고리즘의 DPA 분석을 수행할 경우 분석 시간을 크게 줄일 수 있다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다. 그러나, 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다.
많은 양의 메모리를 사용하지 않는 대칭키 및 해쉬 알고리즘의 경우에는 GPU를 사용하여 훨씬 뛰어난 성능을 보인다. 상대적으로 많은 양의 내부 데이터를 필요로하는 RSA, ECC와 같은 공개키 암호 알고리즘들도 구현되어 뛰어난 성능을 보인다. 본 발명의 실시 예들은 DES 암호 알고리즘의 DPA (Differential Power Analysis) 분석에 걸리는 시간을 유휴 GPU를 사용하여 단축시키는 것을 목표로 한다.
DES (Data Encryption Standard)에서의 DPA 분석 방법은 도 1 및 2와 같다.
DES는 블록 암호의 일종으로, 표준 암호화 방식이다. DES는 대칭키 암호이며, 56비트의 키를 사용한다.
도 1은 DES 암호 알고리즘의 DPA 분석 시의 분류 함수를 적용하는 과정을 도시한 것이다.
P는 평문을 의미하며 K는 추측한 키를 의미한다. 분석자는 평문 P를 알고 있기 때문에 K를 올바르게 추측한 경우에 bi는 올바른 값이 계산되며 이로 인한 분류는 올바르게 수행되기 때문에 분류된 트레이스들의 집합의 평균은 피크값을 보인다.
도 1에서는 먼저, 서로 다른 선택 평문 P를 입력으로 일련의 트레이스(소비전력 파형)을 수집하고, 다음, 트레이스에 상응하는 평문과 추정한 비밀키 K값을 기준으로 수집된 트레이스를 구분한다. 보다 구체적으로, 부분 집합(Subset) "1"은 분류함수 D(P, bi, K)가 "1"인 트레이스들의 집합이고, 부분 집합 "0"는 분류함수 D(P, bi, K)가 "0"인 트레이스들의 집합이다.
DPA 분석을 위해, 트레이스의 구분 이후에는 분류함수 D(P, bi, K)가 "1"인 트레이스의 평균과 D(P, bi, K)가 "0"인 트레이스의 평균의 차이를 취한 값
Figure 112009061148261-PAT00002
를 계산한다. 만약 추정한 비밀키 K값이 옳으면 구분된 두 집합 간의 평균 소비전력의 차이는 비트 "bi"를 계산하는 순간 시간인 T에서
Figure 112009061148261-PAT00003
이 되며 DPA 피크로 불리는 값이 일반적으로 나타난다. 그러나 올바르지 못한 키에 대해서는 두 집단 간의 평균 소비전력의 차이는
Figure 112009061148261-PAT00004
이 되며 피크 값이 나타나지 않을 것이다.
도 2는 본 발명의 실시 예들이 적용되는 DES 암호 알고리즘의 DPA 분석 과정 의 일 예를 도시한 것이다.
S박스 (Substitution-box)는 대칭키 알고리즘의 기본적인 구성 요소이다. 블록 암호화에서 S박스는 키와 암호문 사이의 관계를 숨기기 위해 사용된다. 도 1의 K는 6비트이며 각각 8개가 존재한다. 즉, Sbox1~Sbox8번까지 P와 6비트의 K가 XOR되어 입력으로 들어간다. 사각형 안의 숫자는 루프의 횟수를 의미한다. Sbox1에서부터 Sbox8까지 분석해야 한다.
각각의 S박스마다 키 추정(key guessing)은 0에서부터 63까지 가능하다(S210). 이하의 과정(S230-S250)은 트레이스 0에서부터 N(N은 임의의 정수)까지에 대해 수행된다. 평문의 수는 트레이스의 수와 동일하다.
추정한 키와 평문들에 대하여 XOR 연산을 수행한 후에 분류 함수의 입력으로 넣는다(S230).
S박스 연산 과정(S240)은 분류 함수의 결과값을 구하는 과정을 포함한다. 트레이스들의 분석을 용이하게 하기 위한 고속 푸리에 변환 과정(S250)은 경우에 따라 생략이 가능하다.
다음, 분류 함수의 결과를 기준으로 트레이스를 분류하여 각 집합의 평균을 계산하여 차분을 계산한다(S260). 이 과정(S260)에서 앞서 계산된 결과들을 파일 형태 등으로 저장할 수 있다. 차분에서 피크가 보이면 키를 올바르게 추측한 것이 된다.
DES 암호 알고리즘의 DPA 분석의 주요한 부하는 연산 부하와 파일 I/O 부하로 나눌 수 있다. 연산 부하는 분류함수의 결과를 계산하고 집합을 나누는 과정과 평균을 계산하는 과정에서 발생한다. 파일 I/O로 인한 부하는 분류함수를 통하여 나누어진 집합의 평균을 계산하기 위하여 소비전력 파형을 하드디스크로부터 메모리로 로드하는 과정에서 발생한다. 따라서, 본 발명의 실시 예들에서 GPU를 보조적으로 이용하는 DES DPA 분석 소프트웨어의 성능을 최적화하기 위하여 다음의 사항을 고려한다.
즉, 연산 최적화를 위해, 미리 중간 결과값을 계산하고 평균 계산 과정의 최적화를 고려한다. 파일 I/O 최적화를 위해, 파형을 분할하여 저장하는 방법 및 서브 DPA 방법을 고려한다. 병렬 최적화를 위해, CPU와 GPU에서 분석 과정을 병렬화한다.
본 발명의 일 실시 예에서는 DES 암호 알고리즘의 DPA 분석의 성능을 최적화하기 위하여 CPU와 GPU에서 병렬적으로 DPA 분석을 수행한다. 1라운드의 8개의 S박스 결과값을 이용하여 서브키를 찾는 경우, CPU와 GPU에서 각각 4개의 S박스를 분석할 수 있다. 즉, CPU는 Sbox1~Sbox4에 대하여 DPA 분석을 수행하고, GPU에서는 Sbox5~Sbox8까지에 대하여 S박스 분석을 수행한다.
도 3은 본 발명의 일 실시 예에 따른 고속 차분 전력 분석 방법의 흐름도이다.
먼저, 차분 전력 분석을 수행하기 위해 수집된 트레이스들에 대해 비밀키를 추정한다(S310). 이 과정(S310)은 반복적으로 수행될 수 있다.
다음, S박스들에 대해 CPU와 GPU에서 병렬적으로 결과값을 계산한다(S320). S박스의 결과값들은 트레이스를 분류하는 기준으로 사용된다. 여기서, 각각의 S박 스들은 수집된 트레이스들에 상응하는 평문과 추정된 비밀키가 XOR 연산된 값을 입력으로 할 수 있다. 한편, S박스의 결과값을 계산하는 과정(S320)은 S박스들에 대해 미리 CPU와 GPU에서 병렬적으로 계산된 결과값을 메모리에 로드하는 과정으로 대체될 수도 있다.
다음, 트레이스들에 상응하는 평문과 결과값을 기준으로 트레이스들을 두 개의 집합으로 분류한다(S330).
마지막으로, 두 집합의 평균의 차를 계산하고, 이에 따라 앞서 추정된 비밀키가 옳은지 여부를 판단한다(S340). 구체적으로, 이 과정(S340)은 계산된 평균 사이의 차가 0이 아닌 경우, 추정된 비밀키가 옳은 비밀키라고 판단하는 과정을 포함한다. 한편, 두 집합의 평균의 차는 각 집합의 평균을 구하여 계산되는 것이 아니라, 미리 계산된 전체 트레이스들의 평균을 이용하여 계산될 수도 있다.
DPA 분석에서 중간 결과값들은 매번 DPA를 수행할 때마다 동일한 값으로 계산되기 때문에 연산 최적화를 위해 중간 결과값들을 사전에 계산해둘 수 있다. 즉, 모든 D(P, bi, K)에 대하여 사전에 계산하여 파일로 저장하면, 중간에 계산하지 않고 바로 트레이스를 분류할 수 있다.
한편, DPA 분석에서는 bi가 0으로 분류된 트레이스의 집합과 1로 분류된 트레이스들의 집합에 대하여 평균을 계산한다. 평균을 구하기 위해서는 두 집합의 총합을 각각 구한 후에 분류된 파형의 수로 나눌 수도 있다. 그러나 평균을 계산하는 연산은 소수점 연산이기 때문에 CPU에서 동작 시에 일반적인 정수 연산에 비하여 그 속도가 느리다.
표 1은 CPU와 GPU에서 DES DPA를 수행하여 각각의 환경에서의 연산 부하가 걸리는 부분을 확인한 것이다.
Figure 112009061148261-PAT00005
표 1은 5,000 포인트의 트레이스 600개를 이용하여 CPU와 GPU에서 DPA 분석시의 각 연산 부분에 대한 시간을 측정한 것이다. CPU와 GPU에서의 주된 연산 부하가 다른 것을 확인할 수 있다. CPU의 경우에는 소수점 연산을 하는 평균 계산 부분에서 많은 연산 시간을 소모하고 GPU의 경우에는 중간 결과값을 계산하여 분류함수를 적용하는 부분에서 많은 연산시간을 소모한다. 따라서 CPU와 GPU에서의 연산 최적화를 위하여 중간 결과값을 사전에 미리 계산하는 방법을 적용할 필요가 있다.
또한, 두 개의 집합으로 나누어진 트레이스의 소비 전력의 평균의 차이를 계산할 때 두 집합의 평균을 모두 구하는 것이 아니라 한 집합 (집합 0)의 평균만을 계산하여 평균의 차이를 계산할 수 있는 방법을 적용할 필요가 있다.
도 4는 도 3의 추정된 비밀키 검증 과정(S340) 중 평균의 차를 연산하는 과정의 상세 흐름도이다.
먼저, 미리 계산된 트레이스들의 총합을 메모리에 로드한다(S441). 미리 계산된 트레이스들의 총합은 디스크 기타 기록매체에 저장될 수 있다.
다음, 한 집합의 트레이스들의 합을 계산한다(S442). 트레이스들의 합은 소비전력 파형 크기 값들의 합을 의미한다. 트레이스들의 합과 트레이스들의 수는 구분된다. 여기서 합을 계산하는 집합은 분류 함수의 결과값이 0인 집합, 분류 함수의 결과값이 1인 집합 중 어느 하나이다.
마지막으로, 메모리에 로드된 트레이스들의 총합, 앞서 계산된 특정 집합의 합, 각 집합에서 트레이스들의 수 등을 이용하여 두 집합의 평균의 차를 계산한다(S443).
도 5는 총합(totalSum) 방식의 평균의 차분을 계산하는 식을 나타낸다.
일반적인 식은 집합 0과 1의 평균을 계산하여 빼는 방식이기 때문에, 2*#Points 만큼의 소수점 나누기 연산이 필요하다. 소수점 나누기 연산은 CPU에서 상당히 느린 연산이기 때문에 많은 연산 부하를 요구한다. 일반적인 식을 재정리하여 나눗셈 연산의 수를 절반으로 줄일 수 있다. 비록 2*#Points 만큼의 곱셈 연산이 추가적으로 필요하지만 이는 나눗셈 연산에 비하여 상대적으로 부하가 작은 연산이기 때문에 이 방법을 사용하여 연산 최적화를 꾀할 수 있다.
본 발명의 일 실시 예에서, 평균의 차분은 수학식 1과 같이 계산될 수 있다.
Figure 112009061148261-PAT00006
트레이스들의 총합(Total_SUM)을 사전에 계산해 둠으로써 두 집합의 평균(
Figure 112009061148261-PAT00007
,
Figure 112009061148261-PAT00008
)의 차분을 구할 때의 연산을 대략 절반으로 줄일 수 있다. #SET0는 분류 함수의 결과값이 0인 집합에서 트레이스의 수, #SET1은 분류 함수의 결과값이 1인 집합에서 트레이스의 수, #(Total)은 전체 트레이스의 수이다. 여기서, Total_SUM = SET0_SUM + SET1_SUM 이고, #(Total) = #SET0 + #SET1 이다.
표 2은 CPU 환경에서 totalSum 방식의 평균 차분 계산 방법을 적용한 경우의 성능 향상을 보인다.
Figure 112009061148261-PAT00009
도 6은 중간 결과값을 사전에 계산하여 분류 리스트를 구성한 예이다.
도 6은 각 서브키(subkey)의 가능한 키 값에 대한 중간 결과값을 기준으로 분류되는 집합을 나타낸 것이다. 열은 가능한 키 값을 나타내는데, 0에서부터 63까지이다. 행은 1번 트레이스에서 100번 트레이스까지 분류되는 집합을 나타낸 것이다. 만약 (행, 열) = (0, 50)의 값이 0이라면 키가 0으로 추측되었을 때 50번째 트레이스는 집합 0으로 분류되는 것이다. 이러한 리스트를 이진 데이터 형태로 저장함으로써 파일의 용량을 줄일 수 있으며 읽기 속도도 빠르게 할 수 있다.
도 7은 본 발명의 다른 실시 예에 따른 고속 차분 분석 방법의 흐름도이다.
먼저, 수집된 트레이스들에 대해 비밀키를 추정한다(S710).
다음, 분류 리스트를 메모리에 로드한다(S720). 분류 리스트는 S박스들에 대해 CPU와 GPU에서 병렬적으로 계산된 결과값과 트레이스들에 상응하는 평문을 기준으로 트레이스들을 두 개의 집합 중 어느 하나로 분류한 테이블이다.
다음, 메모리에 로드된 분류 리스트에 따라 트레이스들을 구분한다(S730).
마지막으로, 두 집합의 평균의 차를 계산하여 앞서 추정된 비밀키가 옳은지 여부를 판단한다(S740). 이 과정(S740)에서는 평균 사이의 차가 0이 아닌 경우, 추정된 비밀키가 옳은 비밀키라고 판단할 수 있다.
표 3은 GPU 환경에서 분류 리스트 방법을 적용할 경우의 성능 향상을 보인다.
Figure 112009061148261-PAT00010
표 2와 표 3에서 확인할 수 있듯이 본 발명의 일 실시 예에 따른 총합 적용 방법을 적용할 경우 많은 양의 연산 시간을 단축할 수 있다.
한편, 트레이스의 크기가 증가함에 따라 파일 I/O인한 부하가 심하게 늘어난다.
표 4는 트레이스의 크기가 증가함에 따라 파일 I/O로 인한 부하가 기하급수적으로 증가함을 보인다.
Figure 112009061148261-PAT00011
표 4에서 확인할 수 있듯이, 트레이스의 크기가 2백만 포인트에서 2천만 포인트로 늘어남에 따라 연산 부하는 약 10배 정보 증가하였으나 파일 I/O로 인한 부하는 약 170배 정도 늘어났다. 이는 운영체제 환경에서 자주 사용되는 파일은 메모리에 저장하는 페이징 알고리즘을 사용하기 때문이다. 트레이스의 크기가 커짐에 메모리에 적재할 수 있는 파일의 수가 줄어들기 때문에 DPA를 수행하기 위해서는 파일이 빈번하게 교체되어 적재되어야 한다. 트레이스의 크기가 증가함에 따라 기하급수적으로 늘어나는 파일 I/O로 인한 부하를 줄이기 위하여 서브 DPA방법을 제안한다.
본 발명의 또 다른 실시예에서는 차분 전력 분석을 수행하기 위해 트레이스들을 수집하여 저장하는데, 트레이스들을 저장할 때, 트레이스들을 주파수 축 또는 시간 축으로 잘게 나누어 저장하고, 잘게 나누어진 트레이스들에 대해 분석 과정을 수행하도록 할 수 있다.
도 8은 트레이스의 크기가 증가함에 따라 증가하는 파일 I/O의 부하를 줄일 수 있는 방법인 서브 DPA방법을 도시한 것이다.
트레이스의 크기를 적절한 크기로 나누어 저장한 후에 나누어 저장된 파형에 대하여 DPA를 수행하는 것이다. 예를 들어 2천만 포인트 파형을 20개의 2백만 포인트 파형으로 나누어 저장한 후에 20번의 서브 DPA를 수행하는 것이다.
표 5는 서브 DPA방법을 적용할 경우의 성능을 나타낸 것이다.
Figure 112009061148261-PAT00012
표 5에서 볼 수 있듯이, 서브 DPA를 적용한 경우에는 파형의 크기가 늘어남에 따라 분석 시간이 선형적으로 늘어난다.
도 9는 본 발명의 일 실시 예에 따른 차분 전력 분석 방법을 적용하여 CPU와 GPU 환경에서 DPA 분석 소프트웨어를 병렬 구동한 경우의 분석 시간 그래프를 도시한 것이다.
도 9에서, CPU 환경에서 DPA 분석을 단독수행 할 때와 비교하여 분석 시간이 절반 가량 단축된다. 트레이스의 크기와 트레이스의 수의 증가에 따른 실험 결과를 살펴보면, 본 발명의 일 실시 예에 따른 차분 전력 분석 방법은 대량의 트레이스에 대한 분석시에 유리한 이점을 갖는다는 것을 알 수 있다.
본 발명은 소프트웨어를 통해 실행될 수 있다. 바람직하게는, 본 발명의 실시 예들에 따른 고속 차분 전력 분석 방법을 컴퓨터에서 실행시키기 위한 프로그램을 컴퓨터로 읽을 수 있는 기록매체에 기록하여 제공할 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.
컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시 예의 변형이 가능하다는 점을 이해할 것이다. 그리고, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.
컴퓨터의 유휴자원인 GPU를 활용하여 부채널 분석의 시간을 단축시킬 수 있다면 더욱 빠르게 부채널 분석 기준 평가를 수행할 수 있으며, 관련 장치의 개발과 시장 진입을 촉진할 수 있어 산업, 기술 측면에서 많은 이점을 제공한다.
도 1은 DES 암호 알고리즘의 DPA 분석 시의 분류 함수를 적용하는 과정을 도시한 것이다.
도 2는 본 발명의 실시 예들이 적용되는 DES 암호 알고리즘의 DPA 분석 과정의 일 예를 도시한 것이다.
도 3은 본 발명의 일 실시 예에 따른 고속 차분 전력 분석 방법의 흐름도이다.
도 4는 도 3의 추정된 비밀키 검증 과정(S340) 중 평균의 차를 연산하는 과정의 상세 흐름도이다.
도 5는 총합(totalSum) 방식의 평균의 차분을 계산하는 식을 나타낸다.
도 6은 중간 결과값을 사전에 계산하여 분류 리스트를 구성한 예이다.
도 7은 본 발명의 다른 실시 예에 따른 고속 차분 분석 방법의 흐름도이다.
도 8은 트레이스의 크기가 증가함에 따라 증가하는 파일 I/O의 부하를 줄일 수 있는 방법인 서브 DPA방법을 도시한 것이다.
도 9는 본 발명의 일 실시 예에 따른 차분 전력 분석 방법을 적용한 경우의분석 시간 그래프를 도시한 것이다.

Claims (11)

  1. 차분 전력 분석을 수행하는 방법에 있어서,
    수집된 트레이스들에 대해 비밀키를 추정하는 단계;
    S박스들에 대해 CPU와 GPU에서 병렬적으로 결과값을 계산하는 단계;
    상기 트레이스들에 상응하는 평문과 상기 결과값을 기준으로 상기 트레이스들을 제1집합 및 제2집합으로 분류하는 단계; 및
    상기 제1집합의 평균과 제2집합의 평균 사이의 차를 계산하여 상기 추정된 비밀키가 옳은지 여부를 판단하는 단계를 포함하는, 고속 차분 전력 분석 방법.
  2. 제 1 항에 있어서,
    상기 비밀키를 추정하기 전에, 상기 트레이스들을 수집한 후 일정 단위로 나누어 파일로 저장하는 단계를 더 포함하고,
    상기 결과값을 계산하는 단계는
    상기 일정 단위로 나누어진 트레이스들에 대해 S박스 연산을 수행하는 단계인 것을 특징으로 하는, 고속 차분 전력 분석 방법.
  3. 제 1 항에 있어서,
    상기 추정된 비밀키가 옳은지 여부를 판단하는 단계는
    상기 트레이스들에 대해 미리 계산된 총합을 이용하여 상기 평균 사이의 차 를 계산하는 단계를 포함하는 것을 특징으로 하는, 고속 차분 전력 분석 방법.
  4. 제 2 항에 있어서,
    상기 미리 계산된 총합을 이용하여 상기 평균 사이의 차를 계산하는 단계는
    Total_SUM이 상기 트레이스들에 대해 미리 계산된 총합, #SET0는 상기 결과값이 0인 집합에서 트레이스의 수, #SET1은 상기 결과값이 1인 집합에서 트레이스의 수, #(Total)은 전체 트레이스의 수인 경우, 수학식
    Figure 112009061148261-PAT00013
    에 따라 상기 평균 사이의 차를 계산하는 단계인 것을 특징으로 하는, 고속 차분 전력 분석 방법.
  5. 제 1 항에 있어서,
    상기 S박스들은
    상기 수집된 트레이스들에 상응하는 평문과 상기 추정된 비밀키가 XOR 연산된 값을 입력으로 하는 것을 특징으로 하는, 고속 차분 전력 분석 방법.
  6. 제 1 항에 있어서,
    상기 추정된 비밀키가 옳은지 여부를 판단하는 단계는
    상기 평균 사이의 차가 0이 아닌 경우, 상기 추정된 비밀키가 옳은 비밀키라고 판단하는 단계인 것을 특징으로 하는, 고속 차분 전력 분석 방법.
  7. 차분 전력 분석을 수행하는 방법에 있어서,
    수집된 트레이스들에 대해 비밀키를 추정하는 단계;
    S박스들에 대해 CPU와 GPU에서 병렬적으로 계산된 결과값을 메모리에 로드하는 단계;
    상기 트레이스들에 상응하는 평문과 상기 결과값을 기준으로 상기 트레이스들을 제1집합 및 제2집합으로 분류하는 단계; 및
    상기 제1집합의 평균과 제2집합의 평균 사이의 차를 계산하여 상기 추정된 비밀키가 옳은지 여부를 판단하는 단계를 포함하는, 고속 차분 전력 분석 방법.
  8. 제 7 항에 있어서,
    상기 추정된 비밀키가 옳은지 여부를 판단하는 단계는
    상기 트레이스들에 대해 미리 계산된 총합을 이용하여 상기 평균 사이의 차를 계산하는 단계를 포함하는 것을 특징으로 하는, 고속 차분 전력 분석 방법.
  9. 차분 전력 분석을 수행하는 방법에 있어서,
    수집된 트레이스들에 대해 비밀키를 추정하는 단계;
    S박스들에 대해 CPU와 GPU에서 병렬적으로 계산된 결과값과 상기 트레이스들에 상응하는 평문을 기준으로 상기 트레이스들을 제1집합 및 제2집합으로 분류한 분류 리스트를 메모리 로드하는 단계; 및
    상기 제1집합의 평균과 제2집합의 평균 사이의 차를 계산하여 상기 추정된 비밀키가 옳은지 여부를 판단하는 단계를 포함하는, 고속 차분 전력 분석 방법.
  10. 제 9 항에 있어서,
    상기 추정된 비밀키가 옳은지 여부를 판단하는 단계는
    상기 평균 사이의 차가 0이 아닌 경우, 상기 추정된 비밀키가 옳은 비밀키라고 판단하는 단계인 것을 특징으로 하는, 고속 차분 전력 분석 방법.
  11. 제1항 내지 제10항 중 어느 한 항의 방법을 컴퓨터 시스템에서 실행하기 위한 프로그램이 기록된, 컴퓨터 시스템이 판독할 수 있는 기록매체.
KR1020090094635A 2009-10-06 2009-10-06 고속 차분 전력 분석 방법 및 그 기록 매체 KR101047103B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090094635A KR101047103B1 (ko) 2009-10-06 2009-10-06 고속 차분 전력 분석 방법 및 그 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090094635A KR101047103B1 (ko) 2009-10-06 2009-10-06 고속 차분 전력 분석 방법 및 그 기록 매체

Publications (2)

Publication Number Publication Date
KR20110037267A true KR20110037267A (ko) 2011-04-13
KR101047103B1 KR101047103B1 (ko) 2011-07-07

Family

ID=44044776

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090094635A KR101047103B1 (ko) 2009-10-06 2009-10-06 고속 차분 전력 분석 방법 및 그 기록 매체

Country Status (1)

Country Link
KR (1) KR101047103B1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10000503A1 (de) 2000-01-08 2001-07-12 Philips Corp Intellectual Pty Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb

Also Published As

Publication number Publication date
KR101047103B1 (ko) 2011-07-07

Similar Documents

Publication Publication Date Title
US10171459B2 (en) Method of processing a ciphertext, apparatus, and storage medium
KR20170098733A (ko) 2차 이상의 부채널 분석에 대한 회로의 저항력을 테스트하는 방법
US9397986B2 (en) Authenticating acceptance of a string using an automaton
US8817973B2 (en) Encrypting method having countermeasure function against power analyzing attacks
KR101305627B1 (ko) 암호 연산 장치 및 메모리 시스템
KR20100122107A (ko) 화이트―박스 구현
KR20080084500A (ko) 집합 검증 장치 및 그 방법
Bukasa et al. How TrustZone could be bypassed: Side-channel attacks on a modern system-on-chip
KR20070008012A (ko) 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
US11184163B2 (en) Value comparison server, value comparison encryption system, and value comparison method
US20180287779A1 (en) White-box cryptography method and apparatus for preventing side channel analysis
Bossi et al. What users should know about full disk encryption based on LUKS
KR20060134992A (ko) 정수를 가산하는 컴퓨터 시스템
CN112100679A (zh) 基于隐私保护的数据处理方法、装置和服务器
Abd El-Wahed et al. Efficiency and security of some image encryption algorithms
Hazarika et al. A novel partial image encryption using chaotic logistic map
JP5972181B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
CN115473722A (zh) 数据加密方法、装置、电子设备及存储介质
US9735963B2 (en) Decryption service providing device, processing device, safety evaluation device, program, and recording medium
KR20160114252A (ko) 부채널 분석 연산 방법
CN111191253B (zh) 一种数据加密组合方法
CN114419719B (zh) 一种生物特征的处理方法及装置
KR101047103B1 (ko) 고속 차분 전력 분석 방법 및 그 기록 매체
KR102308517B1 (ko) 블록암호에 대한 상관전력 분석 방법 및 장치

Legal Events

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

Payment date: 20140304

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee