KR102141843B1 - 암호화 방법을 실행하기 위한 장치 및 방법 - Google Patents
암호화 방법을 실행하기 위한 장치 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash 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
본 발명은, 암호화 방법의 하나 이상의 단계를 실행하기 위한 암호화 유닛을 구비한, 암호화 방법을 실행하기 위한 장치에 관한 것이다.
또한, 본 발명은 특허 청구항 제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은 본 발명에 따른 방법의 일 실시예의 간소화된 흐름도이다.
도 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)
- 암호화 방법(110)의 하나 이상의 단계를 실행하기 위한 암호화 유닛(120)을 구비한, 암호화 방법(110)을 실행하기 위한 장치(100)에 있어서,
상기 장치(100)로 공급될 수 있는 입력 데이터(i)에 따라, 그리고 하나 이상의 비밀 키(k)에 따라 결정 함수를 실행하도록 설계된 함수 유닛(130)이 제공되는 것을 특징으로 하는, 암호화 방법 실행 장치(100). - 제1항에 있어서, 암호화 유닛(120) 및 함수 유닛(130)은 각각 집적 회로로서 구현되는, 암호화 방법 실행 장치(100).
- 제1항 또는 제2항에 있어서, 암호화 유닛(120) 및 함수 유닛(130)은 전기 에너지 공급을 위한 공통 결선(VDD)을 갖는, 암호화 방법 실행 장치(100).
- 제1항 또는 제2항에 있어서, 함수 유닛(130)은, 입력 데이터(i)와 하나 이상의 비밀 키(k)의 적어도 일부분에 따라 출력 신호(130a)를 생성하도록 설계되며, 암호화 유닛(120)은 상기 함수 유닛(130)의 출력 신호(130a)에 따라 암호화 방법(110) 또는 하나 이상의 단계를 실행하도록 설계되는, 암호화 방법 실행 장치(100).
- 제4항에 있어서, 함수 유닛(130)은 해시 함수를 이용하여 출력 신호(130a)를 생성하도록 형성되는, 암호화 방법 실행 장치(100).
- 제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). - 제1항 또는 제2항에 있어서, 암호화 유닛(120)은 출력 신호(130a)에 따라 하나 이상의 기억 레지스터(R)를 사전 로딩하도록, 또는 마스킹하도록 설계되는, 암호화 방법 실행 장치(100).
- 제1항 또는 제2항에 있어서, 함수 유닛(130)은 비선형 치환 연산을 실행하기 위한 유닛(SBOX)을 갖는, 암호화 방법 실행 장치(100).
- 제1항 또는 제2항에 있어서, 암호화 유닛(120)은 입력 데이터(i)의 암호화 또는 암호 해독을 수행하도록 설계되는, 암호화 방법 실행 장치(100).
- 암호화 방법(110)의 하나 이상의 단계를 실행하기 위한 암호화 유닛(120)을 구비한, 암호화 방법(110)을 실행하는 장치(100)를 작동하기 위한 방법에 있어서,
입력 데이터(i)를 상기 장치(100)에 공급하는 단계;
상기 장치(100)의 함수 유닛(130)에 의해, 상기 장치(100)로 공급될 수 있는 입력 데이터(i)에 따라, 그리고 하나 이상의 비밀 키(k)에 따라 결정 함수를 실행하는 단계를 포함하는, 암호화 방법 실행 장치의 작동 방법. - 제10항에 있어서, 암호화 유닛(120) 및 함수 유닛(130)은 전기 에너지 공급을 위해 공통 결선(VDD)을 이용하는, 암호화 방법 실행 장치의 작동 방법.
- 제10항 또는 제11항에 있어서, 함수 유닛(130)은 입력 데이터(i)와 하나 이상의 비밀 키(k)의 적어도 일부분에 따라 출력 신호(130a)를 생성하며(200), 암호화 유닛(120)은 상기 함수 유닛(130)의 출력 신호(130a)에 따라 암호화 방법(110) 또는 하나 이상의 단계를 실행하는(210), 암호화 방법 실행 장치의 작동 방법.
- 제2항에 있어서, 암호화 유닛(120) 및 함수 유닛(130)은 동일한 집적 회로 내에 구현되는, 암호화 방법 실행 장치(100).
- 제6항에 있어서, 상기 부분 블록(w1, w2)과 상기 부분 블록(w3, w4) 상호 간의 XOR 연산은 다단계 방식으로 처리되는, 암호화 방법 실행 장치(100).
- 제9항에 있어서, 입력 데이터(i)의 암호화 또는 암호 해독은 고급 암호화 표준(AES)에 따라 수행되는, 암호화 방법 실행 장치(100).
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)
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)
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)
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 |
-
2012
- 2012-10-22 DE DE102012219205.0A patent/DE102012219205A1/de active Pending
-
2013
- 2013-09-23 CN CN201380054883.8A patent/CN104718718B/zh active Active
- 2013-09-23 WO PCT/EP2013/069657 patent/WO2014063875A1/de active Application Filing
- 2013-09-23 US US14/435,980 patent/US20150270973A1/en not_active Abandoned
- 2013-09-23 KR KR1020157010020A patent/KR102141843B1/ko active IP Right Grant
Patent Citations (2)
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 |