KR102141843B1 - 암호화 방법을 실행하기 위한 장치 및 방법 - Google Patents

암호화 방법을 실행하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR102141843B1
KR102141843B1 KR1020157010020A KR20157010020A KR102141843B1 KR 102141843 B1 KR102141843 B1 KR 102141843B1 KR 1020157010020 A KR1020157010020 A KR 1020157010020A KR 20157010020 A KR20157010020 A KR 20157010020A KR 102141843 B1 KR102141843 B1 KR 102141843B1
Authority
KR
South Korea
Prior art keywords
encryption
unit
function unit
encryption method
output signal
Prior art date
Application number
KR1020157010020A
Other languages
English (en)
Other versions
KR20150076166A (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 KR20150076166A publication Critical patent/KR20150076166A/ko
Application granted granted Critical
Publication of KR102141843B1 publication Critical patent/KR102141843B1/ko

Links

Images

Classifications

    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은, 암호화 방법(110)의 하나 이상의 단계를 실행하기 위한 암호화 유닛(120)을 구비한, 암호화 방법(110)을 실행하기 위한 장치(100)에 관한 것이며, 상기 장치(100)로 공급될 수 있는 입력 데이터(i)에 따라, 그리고 하나 이상의 비밀 키(k)에 따라 결정 함수를 실행하도록 설계된 함수 유닛(130)이 제공되는 것을 특징으로 한다.

Description

암호화 방법을 실행하기 위한 장치 및 방법{DEVICE AND METHOD FOR CARRYING OUT A CRYPTOGRAPHIC METHOD}
본 발명은, 암호화 방법의 하나 이상의 단계를 실행하기 위한 암호화 유닛을 구비한, 암호화 방법을 실행하기 위한 장치에 관한 것이다.
또한, 본 발명은 특허 청구항 제10항의 전제부에 따른 방법에 관한 것이다.
상기 유형의 장치들 및 방법들은 이미 공지되었으며, 예컨대 US 7,599,488 B2호를 참조한다.
공지된 장치는 마이크로프로세서 코어를 가지며, 이 마이크로프로세서 코어에는, 마이크로프로세서 코어 상에서 암호화 명령들의 실행을 무작위로 조작하기 위해 난수 발생기가 할당된다. 그 결과, 암호화 방법을 실행하는 마이크로프로세서 코어에 대한 암호 공격이 어려워질 수 있다. 특히, 규칙적인 클록 신호와, 마이크로프로세서 코어를 통한 암호화 방법의 개별 단계들의 실제 실행 간의 시간적 관련성(temporal connection)이 난수들의 이용하에 은폐되기 때문에, 이른바 차분 전력 분석(DPA) 공격이 어려워진다.
공지된 시스템의 단점은, 기술적으로 실현하기가 복잡한 난수 발생기가 요구되는 것뿐만 아니라, 난수들에 따라 마이크로프로세서를 위한 클록 신호에 영향을 미치는 마이크로프로세서 코어의 주변 장치의 복잡한 구조도 요구된다는 데 있다.
따라서 본 발명의 과제는, 종래 기술의 단점들이 방지되는 동시에, 암호화 방법의 실행 중 특히 이른바 부채널 공격(side channel attack) 또는 DPA 공격에 대항하여 보안이 강화되도록, 도입부에 언급한 유형의 장치 및 방법을 개량하는 것이다.
상기 과제는, 도입부에 언급한 유형의 장치의 경우, 본 발명에 따라, 상기 장치로 공급될 수 있는 입력 데이터에 기초해서, 그리고 하나 이상의 비밀 키(secret key)에 기초해서 결정 함수(deterministic function)를 실행하도록 설계된 함수 유닛이 제공됨으로써 해결된다. 이는, 암호화 유닛에서 실행되는 실질적으로 관여하는 암호화 함수 외에 추가로 결정 함수도 함수 유닛에서 실행됨에 따라, 본원 장치의 전자기 방사, 에너지 시그니쳐(energy signature), 그리고 DPA 공격의 범주에서 분석될 수 있는 여타의 특징들은 항시 상기 두 유닛(암호화 유닛, 함수 유닛)의 컴포넌트들로 구성되거나 상기 두 유닛에서 기인하기 때문에, 본원 장치에 대한 DPA 공격이 어려워지는 장점을 제공한다. 그 결과, 암호화 유닛의 정밀 분석이 어려워진다.
예컨대 상이한 2가지 입력 데이터 집합, 예컨대 각각 128비트의 길이를 갖는 비트열들의 경우, 본 발명에 따른 장치의 전력 소모량은 상기 입력 데이터 집합들 및 비밀 키에 좌우된다. 이런 방식으로, 예컨대 마찬가지로 128비트 이상의 적합한 길이를 갖는 비밀 키의 경우, DPA 공격은 현재 가용한 계산 능력으로는 성공적으로 실행될 수 없는 형태로 어려워질 수 있다.
본 발명의 또 다른 한 장점은, 본 발명에 따른 함수 유닛이 결정 함수와 이를 위한 하나 이상의 비밀 키를 이용하기 때문에, 복잡한 난수 발생기 등이 생략될 수 있다는 점이다.
한 바람직한 실시예에서, 암호화 유닛 및 함수 유닛은 각각 집적 회로로서 구현되고, 바람직하게는 동일한 집적 회로(IC) 내에 구현되며, 그럼으로써 암호화 유닛의 전자기 방사, 에너지 시그니쳐 등의 바람직한 은폐가 매우 높은 정도로 달성된다. 이와 관련하여, 회로 레이아웃의 적합한 선택을 통해, 예컨대 함수 유닛의 개별 함수 컴포넌트들이 공간상 암호화 유닛의 컴포넌트 영역들에 통합되고, 그 역의 경우도 적용됨으로써, 추가적인 개량이 달성된다.
또 다른 한 바람직한 실시예에서, 암호화 유닛 및 함수 유닛은 전기 에너지 공급을 위한 공통 결선을 가지며, 다시 말해 동일한 에너지원으로부터 에너지를 공급받을 수 있다. 그 결과, 두 유닛의 에너지 (소모량) 시그니쳐들이 서로 중첩되고, 이는 DPA 공격을 더욱 어렵게 한다.
앞서 언급한 장점들의 실현을 위해, 계산 결과들 또는 그 밖에 함수 유닛에 의해 처리되는 기타 변수들이 함수적 관점에서 암호화 유닛에서 이용될 필요가 없다. 오히려, 예컨대 두 유닛(암호화 유닛, 함수 유닛)이 서로 독립적으로도 -그리고 적어도 일시적으로 시간상 상호 중첩되어- 동작하는 "병행 동작"만으로도 이미 DPA 공격에 의해 분석될 수 있는 암호화 유닛의 특징들을 은폐하기에 충분하다.
또 다른 한 바람직한 실시예에서, 함수 유닛은, 입력 데이터와 하나 이상의 비밀 키의 적어도 일부분에 기초하여 출력 신호를 생성하도록 설계되며, 암호화 유닛은 상기 함수 유닛의 출력 신호에 따라 암호화 방법 또는 하나 이상의 단계를 실행하도록 설계된다. 따라서, 전술한 실시예들과 달리 본 발명의 변형예의 경우, 암호화 유닛의 동작 동안 함수 유닛이 공급하는 데이터, 즉 함수 유닛의 출력 신호가 이용된다. 그 결과, DPA 공격에 대항하는 더욱 강화된 보안이 달성된다.
그와 동시에, 바람직하게는, 심지어, 본원 장치를 위한 입력 데이터뿐만 아니라, 상기 장치에 의해 암호화된 (예컨대 AES 암호화된) 출력 데이터를 알고 있는 공격자라도 성공적인 DPA 공격을 실행할 수 없는 점이 보장되는데, 그 이유는 암호화 유닛의 물리적 거동, 예컨대 암호화 유닛의 전기 에너지 소모량 등이 비밀 키에 의해 공격자가 알지 못하는 방식으로 수정되기 때문이다. 즉, 본 발명에 따른 함수 유닛이 이용하는 비밀 키가 공격자에게 알려지지 않는 한, 본 발명에 따른 장치를 통해 암호화 유닛에 대한 DPA 공격이 어려워지거나, 심지어 현재 가용한 컴퓨터들의 계산 능력으로는 불가능해진다. 바람직하게는 비밀 키가 내부적으로 예컨대 판독 전용 메모리(ROM) 등의 형태인 함수 유닛 내에 저장된다.
매우 바람직하게는 본 발명에 따른 함수 유닛 및 그 출력 신호의 이용에 의해, 입력 데이터(평문) 및 출력 데이터(암호문)에서, 즉 예컨대 본 발명에 따른 장치의 암호화 유닛을 통해 암호화된 입력 데이터에서 어떠한 사항도 변경되지 않는다. 그러므로 본 발명에 따른 각각의 장치 또는 이 장치 내에 통합된 함수 유닛은 또 다른 비밀 키를 가질 수 있으며, 이로써 보안이 더욱 강화된다. 따라서 본 발명에 따른 함수 유닛의 이용은 바람직하게 본원 장치의 물리적 거동, 즉 예컨대 에너지 시그니쳐, 전자기 방사 등을 변경시키긴 하지만, 암호화 유닛을 통한 암호화 방법의 실행과 관련된 기능적 거동은 변경시키지 않는다.
또 다른 한 바람직한 실시예에서 함수 유닛은, 해시 함수를 이용하여 출력 신호를 생성하도록 형성된다.
또 다른 한 바람직한 실시예에서 함수 유닛은,
1. 제1 논리합 연산 데이터를 획득하기 위해, 입력 데이터 및 키를 XOR 연산으로 처리하고,
2. 논리합 연산 데이터를 복수의 부분 블록으로 분할하고,
3. 제2 논리합 연산 데이터를 획득하기 위해, 복수의 부분 블록을 서로 XOR 연산으로, 특히 다단계 방식으로 처리하고,
4. 출력 신호를 획득하기 위해, 제1 및/또는 제2 논리합 연산 데이터를 비선형 치환 연산으로 처리하며, 경우에 따라서는
5. 상기 출력 신호를 상호 반대되는 2개의 시프트 레지스터에 기록하도록 형성된다.
또 다른 한 바람직한 실시예에서, 암호화 유닛은, 출력 신호에 따라 하나 이상의 기억 레지스터를 사전 로딩(pre-loading)하고, 그리고/또는 마스킹하도록 형성된다.
또 다른 한 바람직한 실시예에서, 함수 유닛은 비선형 치환 연산을 실행하기 위한 유닛을 포함한다. 비선형 치환 연산은 예컨대 고급 암호화 표준(AES)의 SBOX 기법, 또는 그에 필적하는 기법일 수 있다.
또 다른 한 바람직한 실시예에서, 암호화 유닛은, 특히 고급 암호화 표준(AES)에 따라 입력 데이터의 암호화 및/또는 암호 해독을 수행하도록 형성된다. 또한, 암호화 유닛은 암호화 방법의 단 하나의 부분 단계만을 실행하거나, 복수의 부분 단계를 실행할 수 있다.
본 발명의 과제의 또 다른 한 해결책으로서 특허 청구항 제10항에 따른 방법이 제시된다. 그 밖의 바람직한 실시예들은 종속 청구항들의 대상이다.
하기에서는 본 발명의 예시에 따른 실시예들이 도면을 참조하여 설명된다.
도 1은 본 발명에 따른 장치의 일 실시예의 개략적 블록선도이다.
도 2는 본 발명에 따른 장치의 또 다른 한 실시예의 개략도이다.
도 3은 본 발명에 따른 장치의 또 다른 한 실시예의 개략도이다.
도 4는 본 발명에 따른 함수 유닛의 개략적인 블록선도이다.
도 5는 도 4에 도시된 본 발명에 따른 함수 유닛과 함께 이용하기 위한 기억 레지스터를 개략적인 블록선도이다.
도 6은 본 발명에 따른 함수 유닛의 구현의 일 양태를 도시한 개략도이다.
도 7은 본 발명에 따른 방법의 일 실시예의 간소화된 흐름도이다.
도 1에는, 본 발명에 따른 장치(100)의 제1 실시예의 블록선도가 개략적으로 도시되어 있다. 장치(100)는 암호화 방법(110), 또는 암호화 방법(110)의 하나 이상의 단계를 실행하도록 형성된 암호화 유닛(120)을 포함한다. 암호화 방법의 예로서 AES(고급 암호화 표준) 원리에 따른 암호화를 들 수 있다.
장치(100)에는, 예컨대 암호화 유닛(120)을 통해 암호화되어야 하는 비트열일 수 있는 입력 데이터(i)가 공급된다. 그에 따라, 암호화된 출력 데이터(o)는 암호화 유닛(120)의 출력단에서 획득된다.
본 발명에 따라 장치(100)는 암호화 유닛(120) 외에, 입력 데이터와 하나 이상의 비밀 키(k)에 기초하여 결정 함수를 실행하도록 설계된 함수 유닛(130)도 포함한다.
암호화 유닛(120)의 동작에 대해, 적어도 일시적으로, 병행하여 이루어지는 함수 유닛(130)의 동작을 통해, 장치(100)에 대한 차분 전력 분석(DPA) 공격이 어려워지는데, 그 이유는 암호화 유닛(120)에서 실행되는 실질적으로 관여하는 암호화 함수(110) 외에 추가로 결정 함수도 함수 유닛(130)에서 실행됨으로써 장치(100)의 전자기 방사, 에너지 시그니쳐(전력 소모량 또는 에너지 소모량), 그리고 DPA 공격의 범주에서 분석될 수 있는 여타의 특징들은 항시 두 유닛(120, 130)의 컴포넌트들로 구성되거나, 상기 두 유닛 모두로부터 발생하기 때문이다. 그 결과, 암호화 유닛(120)의 정밀 분석이 어려워진다. 암호화 유닛(120) 및 함수 유닛(130)은 바람직하게 각각 집적 회로로서 구현될 수 있으며, 더 바람직하게는 동일한 집적 회로 내에 배치될 수 있다.
또 다른 한 바람직한 실시예에서, 암호화 유닛(120) 및 함수 유닛(130)은, 전기 에너지 공급을 위한 공통 결선을 포함하며, 다시 말하면 동일한 에너지원(미도시)으로부터 에너지를 공급받을 수 있다. 상기 결선은 도 1에서 라인(VDD)으로 표시되어 있다.
두 컴포넌트(120, 130)의 공동 전기 에너지 공급을 통해, 특히 바람직하게는 (도시되지 않은) 전기 에너지원으로의 연결점(VDD)과 관련하여 두 컴포넌트의 에너지 시그니쳐의 중첩이 구현됨으로써, 이러한 점에서도 DPA 공격이 어려워진다.
도 1에 도시된, 두 컴포넌트(120, 130)의 공동 전기 에너지 공급을 구현하는 구성의 대안으로, 두 컴포넌트(120, 130)의 분리된 에너지 공급도 가능하다.
비밀 키(k)는 바람직하게는 직접 장치(100) 내에 저장되거나, 예컨대 ROM 레지스터의 형태인 함수 유닛(130) 내에 저장된다.
본 발명의 도 1에 도시된 실시예의 경우, 암호화 유닛(120)은, 암호화 유닛(120)의 내부에서 암호화 방법(110)의 실행을 위해 함수 유닛(130)의 동작 변수들 내지 출력 변수들이 이용되지 않는 점에서, 바람직하게 함수 유닛(130)과 독립적으로 동작한다. 오히려, 장치(100) 또는 암호화 유닛(120)에 대한 DPA 공격이 어려워지도록 두 컴포넌트(120, 130)의 에너지 시그니쳐 및 전자기 방사 등을 중첩시키기 위해, 이미 두 컴포넌트(120, 130)가 공간상 상호 인접하여 배치되거나, 공통 결선(VDD)을 통한 선택적인 공동 전기 에너지 공급이 이루어지는 것만으로도 충분하다.
또 다른 한 바람직한 실시예에서, 함수 유닛(130)은 입력 데이터(i) 및 비밀 키(k)에 기초하여 출력 신호(130a)(도 2)를 생성하고, 함수 유닛(130)은 암호화 유닛(120)으로 출력 신호(130a)를 출력하며, 암호화 유닛(120)은 함수 유닛(130)의 출력 신호(130a)에 따라 암호화 방법(110) 또는 이 암호화 방법의 하나 이상의 단계를 실행하도록 설계되며, 그럼으로써 DPA 공격에 대해 더욱 강화된 보안이 제공된다.
공동 전기 에너지 공급은 도 2에서 단지 파선으로만 도시되어 있으며, (앞서 이미 언급한 것처럼) 생략될 수도 있다.
매우 바람직하게는 본 발명에 따른 함수 유닛(130) 및 그 출력 신호(130a)(도 2)의 앞서 기술한 이용은, 암호화 방법(110)의 실행의 범주에서, 입력 데이터(i) 및 출력 데이터(o)를 전혀 변경하지 않는다. 그러므로 각각의 본 발명에 따른 장치(100a) 내지 이 장치 내에 통합된 함수 유닛(130)은 또 다른 비밀 키(k)를 가질 수 있고, 이로써 시스템의 보안이 더욱 강화된다. 그러므로 본 발명에 따른 함수 유닛(130)과 경우에 따른 그 출력 신호(130a)의 이용은 바람직하게는 장치(100, 100a)의 물리적 거동, 다시 말하면 그 에너지 시그니쳐, 전자기 방사 등을 변경시키기는 하지만, 암호화 유닛(120)을 통한 암호화 방법(110)의 실행과 관련된 상기 장치의 기능적 거동은 변경하지 않는다.
추가 실시예에서, 함수 유닛(130)은 해시 함수를 이용하여 출력 신호(130a)를 생성한다.
도 3에는, 본 발명의 또 다른 한 실시예의 블록선도가 개략적으로 도시되어 있다. 제1 장치(100a1)는 도 1에 따른 장치(100)와 유사한 구조를 갖는다. 장치(100a1)는 자신의 입력단에서 입력 데이터(i1)를 수신하며, 장치(100a1)의 암호화 유닛(120a)은, 그에 상응하게 암호화된 출력 데이터(o1)를 출력하기 위해, 입력 데이터(i1)를 AES 암호화로 처리하도록 형성된다. 도 1에 따른 장치(100)와 유사하게, 도 3에 따른 장치(100a1)도, 여기서는 입력 데이터(i1) 및 제1 비밀 키(k0)에 따라, 더 구체적으로는 결정 함수(f)를 이용하여 자신의 출력 신호(130a)를 생성하는 함수 유닛(130)을 포함한다. 제2 장치(100a2)는, 암호 해독된 출력 데이터(o2)를 획득하기 위해, AES 원리를 이용하여 암호화된 출력 데이터(o1)의 암호 해독을 수행하도록 설계된 암호화 유닛(120b)을 포함한다. 장치(100a2)의 함수 유닛(130)은, 자신의 출력 신호(130b)의 생성을 위해, 장치(100a2)로 공급된 입력 신호(o1)뿐만 아니라, 바람직하게는 제1 장치(100a1)의 함수 유닛(130)의 제1 비밀 키(k0)와 상이한 제2 비밀 키(k1)도 이용한다. 그 결과, 장치(100a1, 100a2)의 동작의 보안이 더욱 강화된다.
도 4에는, 본 발명에 따른 함수 유닛(130)의 간소화된 블록선도가 개략적으로 도시되어 있다. 함수 유닛(130)은, 입력 데이터(i)(도 1도 참조) 및 비밀 키(k)가 공급되는 제1 XOR(배타적 논리합) 부재(a1)를 포함한다. 입력 데이터(i) 및 비밀 키(k)는 여기서 예를 들어 각각 128비트의 길이를 갖는다. 두 데이터(i, k)는 XOR 부재(a1)에 의해 배타적 논리합 연산의 의미에서 서로 연산됨으로써, 다시 128비트의 비트 폭을 가진 제1 논리합 연산 데이터(xik1)가 획득된다.
본 실시예에서, 128비트 길이의 비트열로 표현되는 제1 논리합 연산 데이터(xik1)는 4개의 부분 블록(w1, w2, w3, w4)으로 분할되며, 이들 부분 블록은 각각 32비트의 길이를 갖는다. 그 다음, 부분 블록들(w1, w2)은 추가 XOR 게이트(a2)에 의해 XOR 연산으로 처리된다. 부재(a3)에 의해 XOR 연산되는 추가 부분 블록들(w3, w4)에도 이와 동일한 사항이 적용된다. XOR 부재들(a2, a3)의 출력 데이터는 XOR 게이트(a4)를 통해 서로 XOR 연산됨으로써, 32비트의 길이를 갖는 제2 논리합 연산 데이터(xik2)가 획득된다.
상기 제2 논리합 연산 데이터(xik2)는 도 4에 따라, 여기서는 비선형 치환 연산을 실행하기 위한, 도면부호 SBOX로 표시된 유닛을 통해 실행되는 비선형 치환 연산으로 처리된다.
비선형 치환 연산(SBOX)의 출력 데이터로서 출력 신호(130a)가 획득되고, 이 출력 신호는 바람직하게 출력 레지스터(R1)에 저장된다.
출력 신호(130a)는, 앞에서 이미 수회 기술한 방식으로, 암호화 유닛(120)의 물리적 기능에 영향을 미치기 위해 암호화 유닛(120)에 제공될 수 있으며, 그럼으로써 DPA 공격은 어려워진다.
도 5에는, 입력 측에서 입력 데이터(i2)뿐만 아니라, 도 4에 따른 함수 유닛(130)의 출력 신호(130a)도 공급받는 이른바 DPA 둔감형 기억 레지스터(R2)(DPA-hardened storage register)의 간소화된 블록선도가 도시되어 있다. 그 기능이 하기에서 더 상세하게 기술되는 기억 레지스터(R2)는 바람직하게 도 4에서의 레지스터(R1) 대신 이용될 수 있다. 다시 말하면, 도 4에 따른 함수 유닛(130)은 자신의 출력 신호(130a)를 도 5에 따른 기억 레지스터(R2)로 입력 신호(130a)의 형태로 제공할 수 있다. 기억 레지스터(R2)는 예컨대 암호화 유닛(120) 내에도 포함될 수 있다.
기억 레지스터(R2)를 위한 추가 입력 데이터(i2)는 예컨대 장치(100)(도 1)로 입력 측에 공급된 암호화될 입력 신호(i) 또는 이 입력 신호의 부분들이다.
도 5에서 알 수 있는 것처럼, 기억 레지스터(R2)는, 출력 신호(130a) 및 입력 데이터(i2)가 각각 공급되는 2개의 멀티플렉서(M1, M2)를 포함한다. 여기서는 이진 신호("1" 또는 "0"의 값만)인 제어 신호(s)에 따라, 제2 멀티플렉서(M2)가 신호(130a) 또는 신호(i2)를 출력 측으로 후방에 배치된 레지스터(t1)로 전송한다. 다시 말해, 레지스터(t1) 내에서는, 제2 멀티플렉서(M2)에 대한 제어 신호(s)에 따라 신호(130a) 또는 신호(i2)가 저장되거나, 상응하는 비트 위치 또는 상기 비트 위치의 상응하는 데이터 워드가 저장된다.
제1 멀티플렉서(M1)에는, 제어 신호(s)에 반대되는 제어 신호(¬s)가 공급되기 때문에, 그에 따라 제1 멀티플렉서(M1)는 출력 측으로 자신의 후방에 배치된 레지스터(t0)로 신호(130a) 또는 신호(i2)를 전송하기도 하지만, 제2 멀티플렉서(M2)에 반대되는 방식으로 전송한다. 달리 말하면, 제2 멀티플렉서(M2)가 자신의 출력 레지스터(t1)로 신호(130a)의 비트를 전송한다면, 제1 멀티플렉서(M1)는 자신의 출력 레지스터(t0)로 신호(i2)의 비트를 전송하며, 그 역의 경우도 적용된다. 개별 비트들 대신, 비트들을 포함하는 복수의 데이터 워드 등도 동시에 컴포넌트들(M1, M2, t0, t1)을 통해 처리될 수 있다.
도 5에서 알 수 있는 것처럼, 레지스터들(t0, t1)의 출력들도 제3 멀티플렉서(M3)로 안내되며, 이 제3 멀티플렉서는 반대의 제어 신호(¬s)에 따라 레지스터(t0) 또는 레지스터(t1)의 출력 신호를 레지스터(R2)의 출력 신호(o2)로서 출력한다.
도 5에 따른 장치의 출력 데이터(o2)는 바람직하게 암호화 방법(110)의 범주에서, 예컨대 AES 암호화의 범주에서 처리되며, 그럼으로써 장치(100)의 출력 데이터(o)가 획득된다(도 1 참조).
도 5의 기억 레지스터(R2)는 [경우에 따라 함수 유닛(130)을 위해 도 4에 따른 함수(f)(도 1)의 구현을 동시에 이용할 때] 종래의 암호화 유닛이 단독으로 이용되는 경우보다 훨씬 더 복잡한 에너지 시그니쳐 및 방사 시그니쳐를 야기한다. 그러므로 본 발명에 따른 장치의 일 실시예는 도 4 내지 도 5에 따른 컴포넌트들(130, R2) 중 하나 또는 둘 다와 함께 DPA 공격에 대해 더욱 강화된 보안을 갖게 된다.
그러나 함수 유닛(130)의 함수(f)(도 1)에 대해, 예컨대 함수 유닛(130)의 출력 신호(130a)가 도 4에 도시된 것과 다르게 [바람직하게는 다시 입력 데이터(i) 및 비밀 키(k)에 따라] 생성된 다음 암호화 유닛(120)의 물리적 거동을 수정하지만, 그러나 그 기능적 거동(암호화 방법의 실행)은 수정하지 않도록 하는 데 이용되는 또 다른 실시예들도 생각해볼 수 있다.
도 4에 따른 비선형 치환 연산을 실행하기 위한 [영어로 "S-BOX"(치환 박스)라고도 지칭되는] 유닛(SBOX)은 예컨대 도 6의 행렬 방정식으로 표현되는 방식으로 구현될 수 있다. 도 6을 통해, 여기서는 총 8개의 원소(예컨대 각각 하나의 비트)(b0, ..., b7)를 갖는 열 벡터(i1)가 확인되며, 이 열 벡터는 예를 들어 비선형 치환 연산을 위한 입력 데이터이다. 열 벡터(i1)는 행렬(M)과 곱해지고, 이어서 그 결과로 나온 행렬 곱(M x i1)이 추가 열 벡터(sv)와 가산되어, 비선형 치환 연산의 출력 데이터를 나타내는 열 벡터(i1')가 도출된다.
바람직하게는, 도 6에 의해 도식화된 비선형 치환 연산의 경우, 예컨대 단 하나의 비트 위치(b5)의 입력 데이터(i1)의 극미한 변화가 이미 일반적으로 복수 개의, 바람직하게는 4개를 초과하는 비트 위치가 관련되는 출력 데이터(i1')의 훨씬 더 큰 변화를 초래한다.
도 6에 도시된 행렬 방정식은 S-BOX의 원리를 도식화하기 위한 예시일 뿐, 원소들(M, SV)의 값들뿐만 아니라 행렬(M) 또는 관여하는 벡터들(i1, SV)의 차원과도 관련하여 변경될 수 있다. 예컨대 도 4에 따른 SBOX는 32비트를 가진 벡터들(i1, sv)로 동작할 수 있고, 그에 따라 32비트를 갖는 출력 벡터(i1')도 제공할 수 있다.
특히 바람직하게는, 본 발명에 따른 함수 유닛(130)에 도 6에 도시된 비선형 치환 연산의 기능이 구비될 수 있으며, 이 경우 컴포넌트들(M, sv) 중 하나 이상의 컴포넌트 또는 이 컴포넌트의 원소들을 비밀 키(k)(도 1)에 따라 선택하는 점도 생각해볼 수 있다.
도 7에는, 본 발명에 따른 방법의 일 실시예의 간소화된 흐름도가 도시되어 있다. 제1 단계(200)에서 함수 유닛(130)(도 1)은 입력 데이터(i)와 하나 이상의 비밀 키(k)의 적어도 일부분에 따라 자신의 출력 신호(130a)를 생성한다. 후속 단계(210)(도 7)에서는 암호화 유닛(120)(도 1)을 통해 암호화 방법(110), 예컨대 AES 알고리즘 등이 실행된다.
본 발명은 바람직하게는 장치(100)에 대한 DPA 공격을 방해하는데, 그 이유는 암호화 유닛(120)에서 실행되는 실질적으로 관여하는 암호화 함수(110) 외에 추가로 결정 함수(f)도 함수 유닛(130)에서 실행됨으로써, 장치(100)의 전자기 방사, 에너지 시그니쳐, 그리고 DPA 공격의 범주에서 분석될 수 있는 여타의 특징들은 항시 두 유닛(120, 130)의 컴포넌트들로 구성되기 때문이다. 그 결과, 암호화 유닛(120) 또는 그 함수(110)의 정밀 분석이 어려워진다.
예컨대, 상이한 2가지 입력 데이터 집합, 예컨대 각각 128비트의 길이를 갖는 비트열들에 대해, 본 발명에 따른 장치(100, 100a)의 전력 소모량은 입력 데이터 집합들(i) 및 비밀 키(k)에 좌우된다. 이런 방식으로, 예컨대 실제로 128비트 이상의 적절한 길이의 비밀 키의 경우, 현재 가용한 계산 능력으로는 성공적으로 실행될 수 없는 방식으로 DPA 공격이 어려워질 수 있다.
함수 유닛(130)의 결정 함수(f)는, 한 바람직한 실시예에서, 예컨대 도 4에 따라 형성될 수 있다. 이런 경우에, 암호화 유닛(120)은 예컨대 도 5에 기술한 유형의 기억 레지스터(R2)도 포함할 수 있다.

Claims (15)

  1. 암호화 방법(110)의 하나 이상의 단계를 실행하기 위한 암호화 유닛(120)을 구비한, 암호화 방법(110)을 실행하기 위한 장치(100)에 있어서,
    상기 장치(100)로 공급될 수 있는 입력 데이터(i)에 따라, 그리고 하나 이상의 비밀 키(k)에 따라 결정 함수를 실행하도록 설계된 함수 유닛(130)이 제공되는 것을 특징으로 하는, 암호화 방법 실행 장치(100).
  2. 제1항에 있어서, 암호화 유닛(120) 및 함수 유닛(130)은 각각 집적 회로로서 구현되는, 암호화 방법 실행 장치(100).
  3. 제1항 또는 제2항에 있어서, 암호화 유닛(120) 및 함수 유닛(130)은 전기 에너지 공급을 위한 공통 결선(VDD)을 갖는, 암호화 방법 실행 장치(100).
  4. 제1항 또는 제2항에 있어서, 함수 유닛(130)은, 입력 데이터(i)와 하나 이상의 비밀 키(k)의 적어도 일부분에 따라 출력 신호(130a)를 생성하도록 설계되며, 암호화 유닛(120)은 상기 함수 유닛(130)의 출력 신호(130a)에 따라 암호화 방법(110) 또는 하나 이상의 단계를 실행하도록 설계되는, 암호화 방법 실행 장치(100).
  5. 제4항에 있어서, 함수 유닛(130)은 해시 함수를 이용하여 출력 신호(130a)를 생성하도록 형성되는, 암호화 방법 실행 장치(100).
  6. 제4항에 있어서, 함수 유닛(130)은,
    a. 제1 논리합 연산 데이터(xik1)를 획득하기 위해, 입력 데이터(i) 및 키(k)를 XOR 연산으로 처리하고,
    b. 논리합 연산 데이터(xik)를 복수의 부분 블록(w1, w2, w3, w4)으로 분할하고,
    c. 제2 논리합 연산 데이터(xik2)를 획득하기 위해, 복수의 부분 블록(w1, w2, w3, w4) 중 부분 블록(w1, w2)과 부분 블록(w3, w4) 각각을 서로 XOR 연산으로 처리하고,
    d. 출력 신호(130a)를 획득하기 위해, 상기 제1 논리합 연산 데이터 또는 제2 논리합 연산 데이터(xik2)를 비선형 치환 연산(SBOX)으로 처리하며, 경우에 따라서는
    e. 상기 출력 신호(130a)를 상호 반대되는 2개의 시프트 레지스터(R1)에 기록하도록 설계되는, 암호화 방법 실행 장치(100).
  7. 제1항 또는 제2항에 있어서, 암호화 유닛(120)은 출력 신호(130a)에 따라 하나 이상의 기억 레지스터(R)를 사전 로딩하도록, 또는 마스킹하도록 설계되는, 암호화 방법 실행 장치(100).
  8. 제1항 또는 제2항에 있어서, 함수 유닛(130)은 비선형 치환 연산을 실행하기 위한 유닛(SBOX)을 갖는, 암호화 방법 실행 장치(100).
  9. 제1항 또는 제2항에 있어서, 암호화 유닛(120)은 입력 데이터(i)의 암호화 또는 암호 해독을 수행하도록 설계되는, 암호화 방법 실행 장치(100).
  10. 암호화 방법(110)의 하나 이상의 단계를 실행하기 위한 암호화 유닛(120)을 구비한, 암호화 방법(110)을 실행하는 장치(100)를 작동하기 위한 방법에 있어서,
    입력 데이터(i)를 상기 장치(100)에 공급하는 단계;
    상기 장치(100)의 함수 유닛(130)에 의해, 상기 장치(100)로 공급될 수 있는 입력 데이터(i)에 따라, 그리고 하나 이상의 비밀 키(k)에 따라 결정 함수를 실행하는 단계를 포함하는, 암호화 방법 실행 장치의 작동 방법.
  11. 제10항에 있어서, 암호화 유닛(120) 및 함수 유닛(130)은 전기 에너지 공급을 위해 공통 결선(VDD)을 이용하는, 암호화 방법 실행 장치의 작동 방법.
  12. 제10항 또는 제11항에 있어서, 함수 유닛(130)은 입력 데이터(i)와 하나 이상의 비밀 키(k)의 적어도 일부분에 따라 출력 신호(130a)를 생성하며(200), 암호화 유닛(120)은 상기 함수 유닛(130)의 출력 신호(130a)에 따라 암호화 방법(110) 또는 하나 이상의 단계를 실행하는(210), 암호화 방법 실행 장치의 작동 방법.
  13. 제2항에 있어서, 암호화 유닛(120) 및 함수 유닛(130)은 동일한 집적 회로 내에 구현되는, 암호화 방법 실행 장치(100).
  14. 제6항에 있어서, 상기 부분 블록(w1, w2)과 상기 부분 블록(w3, w4) 상호 간의 XOR 연산은 다단계 방식으로 처리되는, 암호화 방법 실행 장치(100).
  15. 제9항에 있어서, 입력 데이터(i)의 암호화 또는 암호 해독은 고급 암호화 표준(AES)에 따라 수행되는, 암호화 방법 실행 장치(100).
KR1020157010020A 2012-10-22 2013-09-23 암호화 방법을 실행하기 위한 장치 및 방법 KR102141843B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102012219205.0 2012-10-22
DE102012219205.0A DE102012219205A1 (de) 2012-10-22 2012-10-22 Vorrichtung und Verfahren zur Ausführung eines kryptographischen Verfahrens
PCT/EP2013/069657 WO2014063875A1 (de) 2012-10-22 2013-09-23 Vorrichtung und verfahren zur ausführung eines kryptographischen verfahrens

Publications (2)

Publication Number Publication Date
KR20150076166A KR20150076166A (ko) 2015-07-06
KR102141843B1 true KR102141843B1 (ko) 2020-08-07

Family

ID=49301448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157010020A KR102141843B1 (ko) 2012-10-22 2013-09-23 암호화 방법을 실행하기 위한 장치 및 방법

Country Status (5)

Country Link
US (1) US20150270973A1 (ko)
KR (1) KR102141843B1 (ko)
CN (1) CN104718718B (ko)
DE (1) DE102012219205A1 (ko)
WO (1) WO2014063875A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015211108A1 (de) * 2015-06-17 2016-12-22 Robert Bosch Gmbh Vorrichtung und Verfahren zur Ausführung eines Rechenverfahrens
US11496285B2 (en) * 2016-09-08 2022-11-08 International Business Machines Corporation Cryptographic side channel resistance using permutation networks
US11599679B2 (en) * 2020-06-23 2023-03-07 Arm Limited Electromagnetic and power noise injection for hardware operation concealment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7500112B1 (en) 2000-01-08 2009-03-03 Nxp B.V. Cryptographic device and methods for defeating physical analysis
US20110091034A1 (en) * 2009-10-20 2011-04-21 Stmicroelectronics (Rousset) Sas Secure Method for Cryptographic Computation and Corresponding Electronic Component

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US7587044B2 (en) 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
JP4072503B2 (ja) * 2004-02-04 2008-04-09 シャープ株式会社 補助演算用コプロセッサ内蔵型icカード及びその制御方法
JP4937921B2 (ja) * 2004-11-11 2012-05-23 サーティコム コーポレーション 汎用鍵導出関数サポートのための安全インタフェース
US9667257B2 (en) * 2008-09-30 2017-05-30 Infineon Technologies Ag Secure manufacturing of programmable devices
DE102010028375A1 (de) * 2010-04-29 2011-11-03 Robert Bosch Gmbh Schutz vor kryptoanalytischen Seitenkanalattacken
US8583944B1 (en) * 2010-08-04 2013-11-12 Xilinx, Inc. Method and integrated circuit for secure encryption and decryption

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7500112B1 (en) 2000-01-08 2009-03-03 Nxp B.V. Cryptographic device and methods for defeating physical analysis
US20110091034A1 (en) * 2009-10-20 2011-04-21 Stmicroelectronics (Rousset) Sas Secure Method for Cryptographic Computation and Corresponding Electronic Component

Also Published As

Publication number Publication date
US20150270973A1 (en) 2015-09-24
DE102012219205A1 (de) 2014-05-08
CN104718718A (zh) 2015-06-17
KR20150076166A (ko) 2015-07-06
WO2014063875A1 (de) 2014-05-01
CN104718718B (zh) 2019-06-04

Similar Documents

Publication Publication Date Title
US10567162B2 (en) Mask S-box, block ciphers algorithm device and corresponding construction process
US20200195417A1 (en) Cryptography circuit particularly protected against information-leak observation attacks by the ciphering thereof
Swierczynski et al. FPGA Trojans through detecting and weakening of cryptographic primitives
KR100594265B1 (ko) 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.
US9515818B2 (en) Multi-block cryptographic operation
JP5822970B2 (ja) 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化デバイス
JP5268609B2 (ja) 暗号処理装置及び演算方法
US8724804B2 (en) Encryption processing apparatus
EP3123656B1 (en) Encryption processing device, encryption processing method, and program
US9288040B2 (en) Encryption device
US20150381351A1 (en) Cryptographic processor, method for implementing a cryptographic processor and key generation circuit
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
KR20090041408A (ko) 암호 장치, 기록 매체, 및 방법
JP5136416B2 (ja) 擬似乱数生成装置、ストリーム暗号処理装置及びプログラム
CN105359450A (zh) 防篡改密码算法实现
KR102141843B1 (ko) 암호화 방법을 실행하기 위한 장치 및 방법
KR101136973B1 (ko) 통합 보안 장치 및 통합 보안 방법
Arribas et al. Guards in action: First-order SCA secure implementations of KETJE without additional randomness
EP3475825B1 (en) Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
JP4859370B2 (ja) 電子素子
Chaves et al. SCA-Resistance for AES: How Cheap Can We Go?
JP4271077B2 (ja) マスク論理回路及び暗号装置
JPWO2008117804A1 (ja) ストリーム暗号向け擬似乱数生成装置とプログラムと方法
Wu et al. Not so Difficult in the End: Breaking the Lookup Table-Based Affine Masking Scheme
JP2020134730A (ja) ブロック暗号装置、ブロック暗号方法およびプログラム

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