KR20050015857A - 겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법 - Google Patents

겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법

Info

Publication number
KR20050015857A
KR20050015857A KR1020030055031A KR20030055031A KR20050015857A KR 20050015857 A KR20050015857 A KR 20050015857A KR 1020030055031 A KR1020030055031 A KR 1020030055031A KR 20030055031 A KR20030055031 A KR 20030055031A KR 20050015857 A KR20050015857 A KR 20050015857A
Authority
KR
South Korea
Prior art keywords
cipher text
nth
round
cipher
register
Prior art date
Application number
KR1020030055031A
Other languages
English (en)
Other versions
KR100574945B1 (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 KR1020030055031A priority Critical patent/KR100574945B1/ko
Priority to US10/875,719 priority patent/US20050031121A1/en
Priority to FR0408630A priority patent/FR2858731B1/fr
Priority to DE102004038594A priority patent/DE102004038594B4/de
Publication of KR20050015857A publication Critical patent/KR20050015857A/ko
Application granted granted Critical
Publication of KR100574945B1 publication Critical patent/KR100574945B1/ko

Links

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/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
    • 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
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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

Landscapes

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

Abstract

겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법이 개시된다. 본 발명의 겹침 연산 방식의 암호화 방법은 제1 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 제1 내지 제N 오류원들을 순차적으로 제공하여 제1 암호문을 출력하는 단계와, 제2 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 제2 내지 제N+1 오류원들을 순차적으로 제공하여 제2 암호문을 출력하는 단계와, 그리고 제1 암호문과 제2 암호문을 비교하여, 제1 암호문과 제2 암호문이 일치하는 경우 일치된 암호문을 출력하는 단계를 포함한다. 제1 및 제2 하드웨어 엔진들은 DES(Data Encryption Standard) 알고리즘으로 동작된다. 제1 내지 제N+1 오류원들은 온도 쇼크, 기압 쇼크, RF 에너지, 강한 이온 충격, 자외선, 그리고 레이저 에너지와 같은 환경 변화에 따른 공격으로 인해 제1 및 제N 라운드마다 오류를 발생시킬 확률을 높인다. 이러한 상황에서, 본 발명의 암호화 방법은 제1 암호문과 제2 암호문이 동일할 경우에 그 암호문을 출력하도록 하여, 높은 안전성을 갖는 암호화 알고리즘을 제공한다.

Description

겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법{Method for implementing cryptographic engine of overlapping operation and variable clock operation}
본 발명은 암호화 방법 및 암호화 장치에 관한 것으로, 특히 겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법에 관한 것이다.
일반적으로, 데이터 암호화 표준(DES: Data Encryption Standard, 이하 "DES"라고 칭한다) 알고리즘은 가잔 널리 쓰이고 있는 암호화 방식으로 네트워킹 사용이 증가함에 따라 그 중요성이 더해가고 있다. 특히, 보안 인터넷 응용이나 원격 접근 서버나 케이블 모뎀과 위성용 모뎀 등의 분야에서 많이 이용되고 있다.
DES는 기본적으로 64 비트 블럭의 입력 및 출력을 가진느 64 비트 블럭 암호이며, 64 비트의 키 블럭 중 56 비트가 암호화 및 복호화에 사용되고 나머지 8 비트는 패러티 검사용으로 사용된다. 64 비트의 평문(Plain Text) 블럭과 56 비트의 키(Key)를 입력으로 해서 64 비트의 암호문(Cipher Text) 블럭을 출력하는 암호화 장치이다.
DES를 실현하는 중요한 기법은 치환(P-Box), 대치(S-Box) 그리고 보조키(Subkey)를 발생하는 키 스케쥴 등이 있다. 데이터 암호화부의 내부는 16 라운드의 반복 연산을 수행하는 형태로 되어 있고 입력부의 초기 치환(IP)과 출력부의 역 초기 치환(IP-¹)으로 구성된다.
도 1은 일반적인 DES 알고리즘을 설명하기 위한 암호화 장치의 일반적인 블럭도이다. 이를 참조하면, 암호화 장치의 알고리즘은 먼저 64 비트의 평문 블럭을 초기 치환(IP: Initial Permutation)에 의해 치환을 수행하는 초기 치환부(110)와 , 초기 치환부(110)의 64 비트 블럭을 두개의 32 비트 블럭으로 나누어 왼쪽 변수(L0)와 오른쪽 변수(R0)에 저장하고 사이퍼(Cipher) 함수 f로 수행되는 16 라운드의 곱 변형(Product Transformation)과 왼쪽 변수(Li, i=1 내지 16)와 오른쪽 변수(Ri, i=1 내지 16)를 매 라운드마다 교환하여 16 라운드의 블럭 변형(Block Transfomation)을 수행하는 변형부(120)와 16 라운드에 걸친 변형이 끝난 후 역 초기 치환(IP-¹)을 거쳐서 암호화된 암호문을 출력하는 역 초기 치환부(130)로 구성된다.
변형부(120)에서의 곱 변형은 초기 치환부(110)에서 나누어진 32 비트의 블럭 중에서 오른쪽 변수(Ri)에 저장된 데이터를 키 스케쥴(Key Schedule)에 의해서 생성된 보조키(Subkey) Ki와 함께 입력시켜서 암호화 연산을 수행하는 사이퍼 함수 f(121)와 사이퍼 함수 f의 결과를 전단의 왼쪽 변수(Li)의 출력과 함께 배타적 논리합하여 후단의 오른쪽 변수로 출력하는 익스쿠르시브-오아부(122)에 의해 구현된다. 익스쿠르시브-오아부(122)의 32 비트의 데이터는 오른쪽 변수(Ri+1)에 저장되고 오른쪽 변수(Ri)에 저장된 32 비트의 데이터는 다음 라운드의 왼쪽 변수(Li+1)에 교환되어 저장된다. 이러한 1 라운드의 연산이 반복되어 16 라운드가 수행되는 것이다.
초기 치환부(110)를 거친 64 비트의 평문 블럭을 둘로 나누어 왼쪽 레지스터(L0)와 오른쪽 레지스터(R0)에 입력하면 16회의 각 라운드는 다음 수학식1과 수학식2로 표현된다.
도 2는 보조키 Ki(i=1 내지 16)를 발생하는 키 스케쥴(Key Schedule)을 설명하는 도면이다. 이를 참조하면, 키 스케쥴은 56 비트의 키(Key)를 입력 받아서 치환하는 제1 치환 선택부(PC1:Permutation Choice 1)(200)와, 제1 치환 선택부(200)에 의해서 치환된 56 비트의 블럭을 28 비트의 두 블럭으로 나누어서 변수 C0와 D0에 저장한 후, 16 라운드의 곱 변형 연산 중 사이퍼 함수의 연산에 필요한 48 비트의 보조키를 생성하기 위해 왼쪽 변수 Ci(211)와 오른쪽 변수 Di(212)를 왼쪽 쉬프터(213, 214)에 의해서 한자리 또는 두자리씩 왼쪽으로 쉬프터시켜 다음 라운드의 왼쪽 변수 Ci+1과 오른쪽 변수 Di+1에 저장하는 기본 연산부(210) 및 각 라운드 마다 쉬프트된 왼쪽 변수 Ci 및 오른쪽 변수 Di의 28 비트의 블럭을 입력 받아서 48 비트의 보조키 Ki를 출력하는 제2 치환 선택부(PC2)(220)로 구성된다. 16 라운드 동안 Ci와 Di는 28 자리 수 만큼 쉬프트되어 C0와 C16, 그리고 D0와 D16은 서로 같은 데이터가 된다.
도 3은 일반적인 DES 코아 아키텍쳐의 블럭을 설명하는 도면이다. 이를 참조하면, 사이퍼 함수 f는 오른쪽 레지스터에 저장된 32 비트의 입력(Ri-1) 중 몇개를 복사하여 48 비트로 치환되는 확장 치환부(Expansion Permutation)(300)와, 확장 치환부(300)의 치환 결과를 각 라운드에서 키 스케쥴에 의해서 생성된 48 비트의 보조키와 배타적 논리합하는 익스쿠르시브-오아부(310), 익스쿠르시부 오아부(310)에서 연산된 48 비트의 블럭을 32 비트의 블럭으로 대치(Substitution)하는 S-Box 치환부(320), 그리고 S-Box 치환부(320)의 치환된 32 비트의 블럭을 다시 치환하여 32 비트의 블럭을 생성하는 P-Box 치환부(330)로 구성된다. P-Box 치환부(330)를 거친 32 비트의 블럭은 왼쪽 레지스터에 저장되어 있는 32 비트의 블럭(Li-1)과 배타적 논리합되어 다음 라운드의 오른쪽 레지스터에 Ri로 저장된다. 오른쪽 레지스터에 저장되어 있던 32 비트의 블럭(Ri-1)은 다음 라운드의 왼쪽 레지스터 Li로 저장된다.
DES를 공격하는 알고리즘으로 차분 해독법(Differential Cryptanalysis)과 선형 해독법(linear Cryptanalysis)등이 널리 알려져 있다. 그러나 이러한 공격방법은 DES의 알고리즘의 취약성을 이용한 것으로 실제 공격에는 적합한 것은 아니었다. 최근 Fault Attack이 RSA와 같은 공개키 방식의 알고리즘에 효과적인 공격 방법으로 등장하고 차분 해독법을 고안한 Eli Biham이 Fault Attack을 DES와 같은 블록 암호법에 적용한 DFA(Differential Fault Attack)을 새롭게 제안하였다. 기존의 공격방법에 비해 매우 적은 수백개의 평문쌍을 가지고 키를 찾아낼 수 있는 방법으로 이론적인 공격방법보다 치명적인 공격방법이다. 따라서 이러한 DFA에 대한 안전성을 보장할 수 있는 암호화 장치 및 방법이 요구된다.
본 발명의 목적은 인위적, 자연적 오류로 인한 키값의 유출을 방지하기 위해 겹침 연산 방식을 구현하는 암호화 방법을 제공하는 데 있다.
본 발명의 다른 목적은 변동 클럭 방식을 구현하는 암호화 방법을 제공하는 데 있다.
본 발명의 또다른 목적은 겹침 연산 방식과 변동 클럭 방식을 구현하는 이중 암호화 방법을 제공하는 데 있다.
상기 목적을 달성하기 위하여, 본 발명의 겹침 연산 방식의 암호화 방법은 제1 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 제1 내지 제N 오류원들을 순차적으로 제공하여 제1 암호문을 출력하는 단계; 제2 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 제2 내지 제N+1 오류원들을 순차적으로 제공하여 제2 암호문을 출력하는 단계; 및 제1 암호문과 제2 암호문을 비교하여, 제1 암호문과 제2 암호문이 일치하는 경우 일치된 암호문을 출력하는 단계를 구비하고, 제1 및 제2 하드웨어 엔진의 제1 라운드 각각은 평문 블럭을 두 블럭으로 나누어 왼쪽 레지스터와 오른쪽 레지스터에 입력하는 단계; 오른쪽 레지스터에 저장된 데이터는 보조키와 함께 사이퍼 함수 f를 통해 암호화 연산하는 단계; 및 사이퍼 함수 f의 결과는 전단의 왼쪽 레지스터의 출력과 함께 배타적 논리합하여 다음 라운드의 오른쪽 레지스터에 저장하고, 오른쪽 레지스터에 저장된 데이터는 다음 라운드의 왼쪽 레지스터에 교환되어 저장하는 단계로 구성되고, 제1 라운드의 연산이 N번 반복되어 제1 및 제2 하드웨어 엔진의 제1 내지 제N 라운드의 암호화 연산을 수행한다.
바람직하기로, 제1 및 제2 하드웨어 엔진들은 DES(Data Encryption Standard)와 같이 라운드를 구분할 수 있는 모든 블록 암호화 알고리즘에 적용될 수 있다. 제1 내지 제N+1 오류원들은 온도 쇼크(temperature shock), 기압 쇼크(barometric shock), RF 에너지, 강한 이온 충격(heavy ion bombardment), 자외선, 그리고 레이저 에너지(laser energy)와 같은 환경 변화에 따른 공격(attack)으로 인해 제1 하드웨어 엔진과 제 2 하드웨어 엔진의 다른 라운드에서 오류를 발생하도록 하여 제 1하드웨어 엔진과 제2 하드웨어 엔진의 결과값이 다르도록 하여 오류가 발생한 암호문을 사용하지 않도록 한다.
그리고, 겹침 연산 방식의 암호화 방법은 제1 암호문과 제2 암호문이 일치하지 않으면 암호문을 출력하지 않는 단계를 더 구비하고, 64 비트로 구성되는 평문을 32 비트씩 두 블럭으로 나누어 암호화 처리한다.
상기 다른 목적을 달성하기 위하여, 본 발명의 변동 클럭 방식의 암호화 방법은 제1 클럭 신호에 응답하여 제1 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 제1 내지 제N 오류원들을 순차적으로 제공하여 제1 암호문을 출력하는 단계; 제2 클럭 신호에 응답하여 제2 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 제1 내지 제N 오류원들을 순차적으로 제공하여 제2 암호문을 출력하는 단계; 및 제1 암호문과 제2 암호문을 비교하여, 제1 암호문과 제2 암호문이 일치하는 경우 일치된 암호문을 출력하는 단계를 구비하고, 제1 및 제2 하드웨어 엔진의 제1 라운드 각각은 평문 블럭을 두 블럭으로 나누어 왼쪽 레지스터와 오른쪽 레지스터에 입력하는 단계; 오른쪽 레지스터에 저장된 데이터는 보조키와 함께 사이퍼 함수 f를 통해 암호화 연산하는 단계; 및 사이퍼 함수 f의 결과는 전단의 왼쪽 레지스터의 출력과 함께 배타적 논리합하여 다음 라우드의 오른쪽 레지스터에 저장하고, 오른쪽 레지스터에 저장된 데이터는 다음 라운드의 왼쪽 레지스터에 교환되어 저장하는 단계로 구성되고, 제1 라운드의 연산이 N번 반복되어 제1 및 제2 하드웨어 엔진의 제1 내지 제N 라운드의 암호화 연산을 수행한다.
더욱 바람직하기로, 변동 클럭 방식의 암호화 방법은 겹침 연산 방식에서와 동일하게 암호 연산의 시작점을 다르게 하고 제1 하드웨어 엔진의 동작 클럭과 제2 하드웨어 엔진의 동작 클럭을 다르게 하여 공격자가 오류를 주입할 경우 다른 연산 시점에 오류가 발생하도록 하여 최종 단계에서 제 1하드웨어 연산의 결과와 제2 하드웨어 연산 결과가 서로 다르도록 하는 방법이다.
그리고, 변동 클럭 방식의 암호화 방법은 제1 암호문과 제2 암호문이 일치하지 않으면 암호문을 출력하지 않는 단계를 더 구비하고, 64 비트로 구성되는 평문을 32 비트씩 두 블럭으로 나누어 암호화 처리한다
상기 또다른 목적을 달성하기 위하여, 본 발명의 이중 암호화 방법은 제1 클럭 신호에 응답하여 제1 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 제1 내지 제N 오류원들을 순차적으로 제공하여 제1 암호문을 출력하는 단계; 제2 클럭 신호에 응답하여 제2 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 제2 내지 제N+1 오류원들을 순차적으로 제공하여 제2 암호문을 출력하는 단계; 및 제1 암호문과 상기 제2 암호문을 비교하여, 제1 암호문과 제2 암호문이 일치하는 경우 일치된 암호문을 출력하는 단계를 구비하고, 제1 및 제2 하드웨어 엔진의 제1 라운드 각각은 평문 블럭을 두 블럭으로 나누어 왼쪽 레지스터와 오른쪽 레지스터에 입력하는 단계; 오른쪽 레지스터에 저장된 데이터는 보조키와 함께 사이퍼 함수 f를 통해 암호화 연산하는 단계; 및 사이퍼 함수 f의 결과는 전단의 왼쪽 레지스터의 출력과 함께 배타적 논리합하여 다음 라우드의 오른쪽 레지스터에 저장하고, 오른쪽 레지스터에 저장된 데이터는 다음 라운드의 왼쪽 레지스터에 교환되어 저장하는 단계로 구성되고, 제1 라운드의 연산이 N번 반복되어 제1 및 제2 하드웨어 엔진의 제1 내지 제N 라운드의 암호화 연산을 수행한다.
그리고, 이중 암호화 방법은 제1 암호문과 제2 암호문이 일치하지 않으면 암호문을 출력하지 않는 단계를 더 구비하고, 64 비트로 구성되는 평문을 32 비트씩 두 블럭으로 나누어 암호화 처리한다
따라서, 본 발명의 암호화 방법에 의하면, 제1 및 제2 하드웨어 엔진의 각 라운드 마다의 연산 과정에서 오류가 발생되도록 서로 다른 오류원을 제공하고 서로 다른 클럭 주파수로 동작시켜, 그 결과로 제1 및 제2 암호문이 서로 다를 확률을 높인다. 이러한 상황에서, 제1 암호문과 제2 암호문이 동일할 경우에 그 암호문을 출력하도록 하여, 높은 안전성을 갖는 암호화 알고리즘을 제공한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 예시적인 실시예를 설명하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 4는 본 발명의 제1 실시예에 따른 암호화 엔진을 설명하는 도면이다. 이를 참조하면, N번의 겹침 연산 방식(N overlapping operation mode)을 사용하는 2개의 하드웨어 엔진들(440, 450)이 보여진다. 제1 하드웨어 엔진(440)의 각 라운드들로는 오류원들(falut sources, F1, F2, F3 …, Fn-1, Fn)이 제공된다. 제2 하드웨어 엔진(450)의 각 라운드들로도 오류원들(F2, F3, …, Fn, Fn+1)이 제공된다.
오류원들(F1, F2, F3, …, Fn-1, Fn, Fn+1)은 온도 쇼크(temperature shock), 기압 쇼크(barometric shock), RF 에너지, 강한 이온 충격(heavy ion bombardment), 자외선, 그리고 레이저 에너지(laser energy) 등과 같은 환경 변화에 따른 공격(attack)으로 인해 각 라운드마다 오류(fault)를 발생시키는 요인을 의미한다.
64 비트의 평문 블럭(410)이 제1 하드웨어 엔진(430)과 제2 하드웨어 엔진(440)으로 각각 입력된다. 제1 및 제2 하드웨어 엔진(430, 440) 각각은 앞서 도 1의 변형부(120)와 거의 동일한 구성을 갖는다.
제1 및 제2 하드웨어 엔진(430, 440) 각각은 64 비트의 평문 블럭(410)을 32 비트의 두 블럭으로 나누어 왼쪽 레지스터(Li, 도 1)와 오른쪽 레지스터(Ri, 도 1)에 입력되고, 오른쪽 레지스터(Ri)에 저장된 데이터는 보조키 Ki와 함께 사이퍼 함수 f를 통해 암호화 연산하고, 사이퍼 함수 f의 결과는 전단의 왼쪽 레지스터(Li)의 출력과 함께 배타적 논리합하여 다음 라우드의 오른쪽 레지스터(Ri+1)에 저장되고, 오른쪽 레지스터(Ri)에 저장된 데이터는 다음 라운드의 왼쪽 레지스터(Li+1)에 교환되어 저장된다. 이러한 1 라운드의 연산이 반복되어 n 라운드의 연산이 수행된다.
제1 하드웨어 엔진(430)의 제1 라운드로 제1 오류원(F1)이 제공된다. 제2 내지 제n 오류원들(F2, F3, …, Fn-1, Fn)은 제1 하드웨어 엔진(430)의 제2 내지 제n 라운드로 각각 제공된다. 제1 하드웨어 엔진(430)의 제2 라운드로 제공된 제2 오류원(F2)은 제2 하드웨어 엔진(440)의 제1 라운드로 제공되고, 제1 하드웨어 엔진(430)의 제3 라운드로 제공된 제3 오류원(F3)은 제2 하드웨어 엔진(440)의 제2 라운드로 제공되고, 제1 하드웨어 엔진(430)의 제n 라운드로 제공된 제n 오류원은 제2 하드웨어 엔진(440)의 제(n-1) 라운드로 제공된다. 그리고 제2 하드웨어 엔진(440)의 제n 라운드로 제(n+1) 오류원이 제공된다.
평문 블럭(410)은 제1 하드웨어 엔진(430)을 통해 암호화 처리되어 제1 암호문으로 출력되고, 제2 하드웨어 엔진(440)을 통해 암호화 처리되어 제2 암호문으로 출력된다.
본 실시예의 제1 하드웨어 엔진(430)은 제1 라운드에서 평문 블럭(410)을 입력하고 제1 오류원(F1)에 의해 발생된 제1 라운드 오류(fault)를 포함하는 연산 결과를 출력하고, 제2 라운드에서는 제1 라운드에서 발생된 제1 라운드 오류를 포함하는 연산 결과를 입력하고 제2 오류원(F2)에 의해 발생되는 제2 라운드 오류를 포함하는 연산 결과를 출력한다. 이러한 방식으로, 제n 라운드에서는 제(n-1) 라운드에서 발생된 제(n-1) 라운드 오류를 포함하는 연산 결과를 입력하고 제n 오류원(Fn)에 의해 발생되는 제n 오류를 포함하는 연산 결과를 제1 암호문으로 출력한다(435).
본 실시예의 제2 하드웨어 엔진(440)은 제1 라운드에서 평문 블럭(410)을 입력하고 제2 오류원(F2)에 의해 발생된 제2 라운드 오류(fault)를 포함하는 연산 결과를 출력하고, 제2 라운드에서는 제1 라운드에서 발생된 제2 라운드 오류를 포함하는 연산 결과를 입력하고 제3 오류원(F3)에 의해 발생되는 제3 라운드 오류를 포함하는 연산 결과를 출력한다. 이러한 방식으로, 제(n-1) 라운드에서는 제(n-2) 라운드에서 발생된 제(n-2) 라운드 오류를 포함하는 연산 결과를 입력하고 제n 오류원(Fn)에 의해 발생되는 제n 오류를 포함하는 연산 결과를 출력하고, 제n 라운드에서는 제(n-1) 라운드에서 발생된 제n 라운드 오류를 포함하는 연산 결과를 입력하고 제(n+1) 오류원(Fn+1)에 의해 발생되는 제n+1 오류를 포함하는 연산 결과를 제2 암호문으로 출력한다(445).
이 후, 제1 암호문과 제2 암호문은 비교되는 데(450), 제1 암호문과 제2 암호문이 일치하면 그 일치된 암호문을 출력하고(460), 제1 암호문과 제2 암호문이 일치하지 않으면 암호문을 출력하지 않는다(470).
본 실시예의 암호화 엔진(400)은 이상적으로 제1 하드웨어 엔진(430)과 제2 하드웨어 엔진(440)이 동일한 연산 결과로 제1 암호문과 제2 암호문을 출력할 것을 기대한다.
그런데, 제1 및 제2 하드웨어 엔진(430, 440)의 각 라운드 마다 서로 다른 오류원(F1, F2, …, Fn-1, Fn, Fn+1)을 제공하여 이에 영향을 받아, 제1 및 제2 하드웨어 엔진(430, 440)의 동일한 라운드 마다 다른 오류를 포함하여 그 연산 결과가 서로 다르게 될 가능성을 높인다. 그리하여, 최종적으로 출력되는 제1 및 제2 하드웨어 엔진(430, 440)의 제1 암호문과 제2 암호문이 서로 다를 확률이 매우 높다.
그럼에도 불구하고, 제1 하드웨어 엔진(430)에서 출력되는 제1 암호문과 제2 하드웨어 엔진(440)에서 출력되는 제2 암호문이 일치한다는 것은 평문(410)의 암호화 처리가 오류원들(F1, F2, …, Fn-1, Fn, Fn+1)에 대하여 면역성을 가지면서 안전하게 수행되었다는 것을 의미한다. 그러므로, 제1 암호문과 제2 암호문이 일치하면 그 일치된 암호문을 출력하여 암호화 동작을 마친다.
본 실시예에서는 제1 및 제2 하드웨어 엔진(430, 440)의 각 라운드 마다 서로 다른 오류원(F1, F2, …, Fn-1, Fn, Fn+1)이 제공되는 예에 대하여 기술하고 있다. 이를 구현하는 방안으로, 제1 하드웨어 엔진(430)과 제2 하드웨어 엔진(440)의 동작 시점을 1 라운드 차이가 나도록 설정한다.
도 5는 본 발명의 제2 실시예에 따른 암호화 엔진을 설명하는 도면이다. 이를 참조하면, 암호화 엔진(500)은 도 4의 암호화 엔진(400)과 비교하여 제1 및 제2 하드웨어 엔진(530, 540)의 각 라운드 마다 제공되는 오류원들(F1, F2, …, Fn)이 동일하다는 점에서 차이가 있다. 그리고, 제1 클럭 신호(CLK1)의 주파수와 제2 클럭 신호(CLK2)의 주파수를 서로 다르게 설정하고, 제1 하드웨어 엔진(530)의 동작은 제1 클럭 신호(CLK1)에 응답하여 수행되고, 제2 하드웨어 엔진(540)의 동작은 제2 클럭 신호(CLK2)에 응답하여 수행된다는 점에서 차이가 있다.
64 비트의 평문 블럭(510)이 제1 하드웨어 엔진(530)과 제2 하드웨어 엔진(540)으로 각각 입력된다. 제1 및 제2 하드웨어 엔진(530, 540) 각각은 64 비트의 평문 블럭(410)을 32 비트의 두 블럭으로 나누어, 도 3에 도시된 하나의 라운드 연산을 반복하여 n 라운드의 연산을 수행한다.
제1 하드웨어 엔진(530)의 제1 라운드로 제1 오류원(F1)이 제공된다. 제2 내지 제n 오류원들(F2, F3, …, Fn-1, Fn)은 제1 하드웨어 엔진(530)의 제2 내지 제n 라운드로 각각 제공된다. 그리고, 제1 하드웨어 엔진(530)의 제1 라운드로 제공된 제1 오류원(F1)은 제2 하드웨어 엔진(540)의 제1 라운드로 제공되고, 제1 하드웨어 엔진(530)의 제2 라운드로 제공된 제2 오류원(F2)은 제2 하드웨어 엔진(540)의 제2 라운드로 제공되고, 제1 하드웨어 엔진(530)의 제n 라운드로 제공된 제n 오류원은 제2 하드웨어 엔진(540)의 제n 라운드로 제공된다.
본 실시예의 제1 하드웨어 엔진(530)은 제1 클럭 신호(CLK1)에 응답하여 제1 라운드에서 평문 블럭(510)을 입력하고 제1 오류원(F1)에 의해 발생된 제1 라운드 오류(fault)를 포함하는 연산 결과를 출력하고, 제2 라운드에서는 제1 라운드에서 발생된 제1 라운드 오류를 포함하는 연산 결과를 입력하고 제2 오류원(F2)에 의해 발생되는 제2 라운드 오류를 포함하는 연산 결과를 출력한다. 이러한 방식으로, 제n 라운드에서는 제(n-1) 라운드에서 발생된 제(n-1) 라운드 오류를 포함하는 연산 결과를 입력하고 제n 오류원(Fn)에 의해 발생되는 제n 오류를 포함하는 연산 결과를 제1 암호문으로 출력한다(535).
본 실시예의 제2 하드웨어 엔진(540)은 제2 클럭 신호(CLK2)에 응답하여 제1 라운드에서 평문 블럭(510)을 입력하고 제1 오류원(F1)에 의해 발생된 제1 라운드 오류(fault)를 포함하는 연산 결과를 출력하고, 제2 라운드에서는 제1 라운드에서 발생된 제1 라운드 오류를 포함하는 연산 결과를 입력하고 제2 오류원(F2)에 의해 발생되는 제2 라운드 오류를 포함하는 연산 결과를 출력한다. 이러한 방식으로, 제n 라운드에서는 제(n-1) 라운드에서 발생된 제(n-1) 라운드 오류를 포함하는 연산 결과를 입력하고 제n 오류원(Fn)에 의해 발생되는 제n 오류를 포함하는 연산 결과를 제2 암호문으로 출력한다(545).
이 후, 제1 암호문과 제2 암호문은 비교되는 데(550), 제1 암호문과 제2 암호문이 일치하면 그 일치된 암호문을 출력하고(560), 제1 암호문과 제2 암호문이 일치하지 않으면 암호문을 출력하지 않는다(570).
본 실시예의 암호 엔진(500)도 이상적으로 제1 하드웨어 엔진(530)과 제2 하드웨어 엔진(540)이 동일한 연산 결과로 제1 암호문과 제2 암호문을 출력할 것을 기대한다.
그런데, 제1 및 제2 하드웨어 엔진(530, 540)의 연산 시작 시점이 다르고 동작 시점이 클럭 주파수가 서로 다른 제1 클럭 신호(CLK1)와 제2 클럭 신호(CLK2)에 의해 각각 결정되기 때문에, 제1 및 제2 하드웨어 엔진(530, 540)이 동일한 라운드를 수행하지 않으므로 같은 시점에 오류를 주입할지라도 제1 하드웨어 엔진과 제2 하드웨어 엔진의 다른 연산 단계에 영향을 미치게 되어 제1 하드웨어 엔진과 제2 하드웨어 엔진의 결과 값은 다르게 된다.
이러한 상황에도 불구하고, 제1 하드웨어 엔진(530)에서 출력되는 제1 암호문과 제2 하드웨어 엔진(540)에서 출력되는 제2 암호문이 일치한다는 것은 평문(510)의 암호화 처리가 오류원들(F1, F2, …, Fn-1, Fn, Fn+1)에 대하여 면역성을 가지면서 안전하게 수행되었다는 것을 의미한다. 그러므로, 본 실시예의 암호엔진(500)은 제1 암호문과 제2 암호문이 일치하면 그 일치된 암호문을 출력하여 암호화 동작을 마친다.
본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하다. 예컨대, 본 발명의 제1 실시예에서는 제1 및 제2 하드웨어 엔진의 각 라운드의 연산 동작이 겹쳐서 수행되는 예에 대하여 기술하고, 제2 실시에에서는 제1 및 제2 하드웨어 엔진의 각 라운드의 연산 동작이 서로 다른 속도로 이루어지는 예에 대하여 기술하였다. 이로부터, 제1 실시예의 동작과 제2 실시예의 동작을 결합하여, 제1 및 제2 하드웨어 엔진의 각 라운드 마다 서로 다른 오류원을 제공하여 제1 및 제2 하드웨어 엔진의 동일한 라운드 마다 다른 오류를 포함하도록 하고 제1 및 제2 하드웨어 엔진의 각 라운드의 연산 동작이 서로 다른 속도로 수행되도록 설계할 수 있음은 물론이다.
본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 본 발명의 암호화 엔진에 의하면, 제1 및 제2 하드웨어 엔진의 각 라운드 마다의 연산 과정에서 오류가 발생되도록 서로 다른 오류원을 제공하고 서로 다른 클럭 주파수로 동작시켜, 그 결과로 제1 및 제2 암호문이 서로 다를 확률을 높인다. 이러한 상황에서, 제1 암호문과 제2 암호문이 동일할 경우에 그 암호문을 출력하도록 하여, 높은 안전성을 갖는 암호화 알고리즘을 제공한다.
도 1은 일반적인 DES 알고리즘을 설명하기 위한 암호화 장치의 일반적인 블럭도이다.
도 2는 도 1의 보조키 Ki를 발생하는 키 스케쥴(Key Schedule)을 설명하는 도면이다.
도 3은 일반적인 DES 코아 아키텍쳐의 블럭을 설명하는 도면이다.
도 4는 본 발명의 제1 실시예에 따른 겹침 연산 방식을 구현하는 암호화 엔진을 설명하는 도면이다.
도 5는 본 발명의 제2 실시예에 따른 변동 클럭 방식을 구현하는 암호화 엔진을 설명하는 도면이다.

Claims (17)

  1. 제1 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 제1 내지 제N 오류원들을 순차적으로 제공하여 제1 암호문을 출력하는 단계;
    제2 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 상기 제2 내지 제N+1 오류원들을 순차적으로 제공하여 제2 암호문을 출력하는 단계; 및
    상기 제1 암호문과 상기 제2 암호문을 비교하여, 상기 제1 암호문과 상기 제2 암호문이 일치하는 경우 일치된 암호문을 출력하는 단계를 구비하고,
    상기 제1 및 제2 하드웨어 엔진의 제1 라운드 각각은
    평문 블럭을 두 블럭으로 나누어 왼쪽 레지스터와 오른쪽 레지스터에 입력하는 단계;
    상기 오른쪽 레지스터에 저장된 데이터는 보조키와 함께 사이퍼 함수 f를 통해 암호화 연산하는 단계; 및
    상기 사이퍼 함수 f의 결과는 전단의 왼쪽 레지스터의 출력과 함께 배타적 논리합하여 다음 라우드의 오른쪽 레지스터에 저장하고, 상기 오른쪽 레지스터에 저장된 데이터는 다음 라운드의 왼쪽 레지스터에 교환되어 저장하는 단계로 구성되고,
    상기 제1 라운드의 연산이 N번 반복되어 상기 제1 및 제2 하드웨어 엔진의 제1 내지 제N 라운드의 암호화 연산을 수행하는 겹침 연산 방식의 암호화 방법.
  2. 제1항에 있어서, 상기 제1 및 제2 하드웨어 엔진들은
    DES(Data Encryption Standard) 알고리즘으로 동작되는 것을 특징으로 하는 겹침 연산 방식의 암호화 방법.
  3. 제1항에 있어서, 상기 제1 내지 제N+1 오류원들은
    온도 쇼크(temperature shock), 기압 쇼크(barometric shock), RF 에너지, 강한 이온 충격(heavy ion bombardment), 자외선, 그리고 레이저 에너지(laser energy)와 같은 환경 변화에 따른 공격(attack)으로 인해 상기 제1 및 제N 라운드마다 오류(fault)를 발생시킬 확률을 높이는 것을 특징으로 하는 겹침 연산 방식의 암호화 방법.
  4. 제1항에 있어서, 상기 겹침 연산 방식의 암호화 방법은
    상기 제1 암호문과 상기 제2 암호문이 일치하지 않으면 암호문을 출력하지 않는 단계를 더 구비하는 것을 특징으로 하는 겹침 연산 방식의 암호화 방법.
  5. 제1항 내지 제4항에 있어서, 상기 겹침 연산 방식의 암호화 방법은
    64 비트로 구성되는 상기 평문을 32 비트씩 상기 두 블럭으로 나누는 것을 특징으로 하는 겹침 연산 방식의 암호화 방법.
  6. 제1 클럭 신호에 응답하여 제1 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 제1 내지 제N 오류원들을 순차적으로 제공하여 제1 암호문을 출력하는 단계;
    제2 클럭 신호에 응답하여 제2 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 상기 제1 내지 제N 오류원들을 순차적으로 제공하여 제2 암호문을 출력하는 단계; 및
    상기 제1 암호문과 상기 제2 암호문을 비교하여, 상기 제1 암호문과 상기 제2 암호문이 일치하는 경우 일치된 암호문을 출력하는 단계를 구비하고,
    상기 제1 및 제2 하드웨어 엔진의 제1 라운드 각각은
    평문 블럭을 두 블럭으로 나누어 왼쪽 레지스터와 오른쪽 레지스터에 입력하는 단계;
    상기 오른쪽 레지스터에 저장된 데이터는 보조키와 함께 사이퍼 함수 f를 통해 암호화 연산하는 단계; 및
    상기 사이퍼 함수 f의 결과는 전단의 왼쪽 레지스터의 출력과 함께 배타적 논리합하여 다음 라우드의 오른쪽 레지스터에 저장하고, 상기 오른쪽 레지스터에 저장된 데이터는 다음 라운드의 왼쪽 레지스터에 교환되어 저장하는 단계로 구성되고,
    상기 제1 라운드의 연산이 N번 반복되어 상기 제1 및 제2 하드웨어 엔진의 제1 내지 제N 라운드의 암호화 연산을 수행하는 변동 클럭 방식의 암호화 방법.
  7. 제6항에 있어서, 상기 변동 클럭 방식의 암호화 방법은
    상기 제1 클럭 신호의 활성화 시점과 상기 제2 클럭 신호의 활성화 시점이 서로 다른 것을 특징으로 하는 변동 클럭 방식의 암호화 방법.
  8. 제6항에 있어서, 상기 변동 클럭 방식의 암호화 방법은
    상기 제1 클럭 신호의 주파수와 상기 제2 클럭 신호의 주파수가 서로 다른 것을 특징으로 하는 변동 클럭 방식의 암호화 방법.
  9. 제6항에 있어서, 상기 변동 클럭 방식의 암호화 방법은
    상기 제1 암호문과 상기 제2 암호문이 일치하지 않으면 암호문을 출력하지 않는 단계를 더 구비하는 것을 특징으로 하는 변동 클럭 방식의 암호화 방법.
  10. 제6항에 있어서, 상기 제1 내지 제N+1 오류원들은
    온도 쇼크(temperature shock), 기압 쇼크(barometric shock), RF 에너지, 강한 이온 충격(heavy ion bombardment), 자외선, 그리고 레이저 에너지(laser energy)와 같은 환경 변화에 따른 공격(attack)으로 인해 상기 제1 및 제N 라운드마다 오류(fault)를 발생시킬 확률을 높이는 것을 특징으로 하는 겹침 연산 방식의 암호화 방법.
  11. 제6항 내지 제11항에 있어서, 상기 변동 클럭 방식의 암호화 방법은
    64 비트로 구성되는 상기 평문을 32 비트씩 상기 두 블럭으로 나누는 것을 특징으로 하는 변동 클럭 방식의 암호화 방법.
  12. 제1 클럭 신호에 응답하여 제1 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 제1 내지 제N 오류원들을 순차적으로 제공하여 제1 암호문을 출력하는 단계;
    제2 클럭 신호에 응답하여 제2 하드웨어 엔진의 제1 라운드 내지 제N 라운드들 각각으로 상기 제2 내지 제N+1 오류원들을 순차적으로 제공하여 제2 암호문을 출력하는 단계; 및
    상기 제1 암호문과 상기 제2 암호문을 비교하여, 상기 제1 암호문과 상기 제2 암호문이 일치하는 경우 일치된 암호문을 출력하는 단계를 구비하고,
    상기 제1 및 제2 하드웨어 엔진의 제1 라운드 각각은
    평문 블럭을 두 블럭으로 나누어 왼쪽 레지스터와 오른쪽 레지스터에 입력하는 단계;
    상기 오른쪽 레지스터에 저장된 데이터는 보조키와 함께 사이퍼 함수 f를 통해 암호화 연산하는 단계; 및
    상기 사이퍼 함수 f의 결과는 전단의 왼쪽 레지스터의 출력과 함께 배타적 논리합하여 다음 라우드의 오른쪽 레지스터에 저장하고, 상기 오른쪽 레지스터에 저장된 데이터는 다음 라운드의 왼쪽 레지스터에 교환되어 저장하는 단계로 구성되고,
    상기 제1 라운드의 연산이 N번 반복되어 상기 제1 및 제2 하드웨어 엔진의 제1 내지 제N 라운드의 암호화 연산을 수행하는 이중 암호화 방법.
  13. 제12항에 있어서, 상기 이중 암호화 방법은
    상기 제1 클럭 신호의 활성화 시점과 상기 제2 클럭 신호의 활성화 시점이 서로 다른 것을 특징으로 하는 이중 암호화 방법.
  14. 제12항에 있어서, 상기 이중 암호화 방법은
    상기 제1 클럭 신호의 주파수와 상기 제2 클럭 신호의 주파수가 서로 다른 것을 특징으로 하는 이중 암호화 방법.
  15. 제12항에 있어서, 상기 이중 암호화 방법은
    상기 제1 암호문과 상기 제2 암호문이 일치하지 않으면 암호문을 출력하지 않는 단계를 더 구비하는 것을 특징으로 하는 이중 암호화 방법.
  16. 제12항에 있어서, 상기 제1 내지 제N+1 오류원들은
    온도 쇼크(temperature shock), 기압 쇼크(barometric shock), RF 에너지, 강한 이온 충격(heavy ion bombardment), 자외선, 그리고 레이저 에너지(laser energy)와 같은 환경 변화에 따른 공격(attack)으로 인해 상기 제1 및 제N 라운드마다 오류(fault)를 발생시킬 확률을 높이는 것을 특징으로 하는 이중 암호화 방법.
  17. 제12항 내지 제16항에 있어서, 상기 이중 암호화 방법은
    64 비트로 구성되는 상기 평문을 32 비트씩 상기 두 블럭으로 나누는 것을 특징으로 하는 이중 암호화 방법.
KR1020030055031A 2003-08-08 2003-08-08 겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법 KR100574945B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020030055031A KR100574945B1 (ko) 2003-08-08 2003-08-08 겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법
US10/875,719 US20050031121A1 (en) 2003-08-08 2004-06-25 Encryption method and apparatus
FR0408630A FR2858731B1 (fr) 2003-08-08 2004-08-04 Procede et appareil de cryptage
DE102004038594A DE102004038594B4 (de) 2003-08-08 2004-08-06 Verschlüsselungsverfahren und -vorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030055031A KR100574945B1 (ko) 2003-08-08 2003-08-08 겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법

Publications (2)

Publication Number Publication Date
KR20050015857A true KR20050015857A (ko) 2005-02-21
KR100574945B1 KR100574945B1 (ko) 2006-04-28

Family

ID=34075011

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030055031A KR100574945B1 (ko) 2003-08-08 2003-08-08 겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법

Country Status (4)

Country Link
US (1) US20050031121A1 (ko)
KR (1) KR100574945B1 (ko)
DE (1) DE102004038594B4 (ko)
FR (1) FR2858731B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779272B2 (en) 2003-08-29 2010-08-17 Samsung Electronics Co., Ltd. Hardware cryptographic engine and encryption method
KR101150289B1 (ko) * 2010-06-24 2012-05-24 충북대학교 산학협력단 복합 암호 시스템과 이를 이용한 복합 암호 알고리즘 구성 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100699836B1 (ko) * 2005-03-19 2007-03-27 삼성전자주식회사 스칼라 곱에서 dfa 대책을 위한 장치 및 방법
GB2434234B (en) * 2005-03-19 2008-01-02 Samsung Electronics Co Ltd Scalar multiplication apparatus and method
US20080052530A1 (en) * 2006-02-16 2008-02-28 International Business Machines Corporation System and method to provide CPU smoothing of cryptographic function timings
EP2290575A1 (en) * 2009-08-31 2011-03-02 Incard SA IC Card comprising an improved processor
DE102013205166A1 (de) * 2013-03-22 2014-09-25 Robert Bosch Gmbh Verfahren zum Erzeugen einer Einwegfunktion
JP6262085B2 (ja) * 2014-06-25 2018-01-17 ルネサスエレクトロニクス株式会社 データ処理装置及び復号処理方法
CN110341974B (zh) * 2019-07-25 2020-12-04 武汉大势智慧科技有限公司 无人机云台故障监测方法、装置、设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317638A (en) * 1992-07-17 1994-05-31 International Business Machines Corporation Performance enhancement for ANSI X3.92 data encryption algorithm standard
US6219791B1 (en) * 1998-06-22 2001-04-17 Motorola, Inc. Method and apparatus for generating and verifying encrypted data packets
US6870929B1 (en) * 1999-12-22 2005-03-22 Juniper Networks, Inc. High throughput system for encryption and other data operations
DE10000503A1 (de) * 2000-01-08 2001-07-12 Philips Corp Intellectual Pty Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb
US7685423B1 (en) * 2000-02-15 2010-03-23 Silverbrook Research Pty Ltd Validation protocol and system
DE10136335B4 (de) * 2001-07-26 2007-03-22 Infineon Technologies Ag Prozessor mit mehreren Rechenwerken
DE10211933C1 (de) * 2002-03-18 2003-07-17 Infineon Technologies Ag Verfahren und Anordnung zur Erkennung von möglichen Angriffen auf die Schlüsselgenerierung digitaler Schlüssel

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779272B2 (en) 2003-08-29 2010-08-17 Samsung Electronics Co., Ltd. Hardware cryptographic engine and encryption method
KR101150289B1 (ko) * 2010-06-24 2012-05-24 충북대학교 산학협력단 복합 암호 시스템과 이를 이용한 복합 암호 알고리즘 구성 방법

Also Published As

Publication number Publication date
DE102004038594B4 (de) 2009-01-22
DE102004038594A1 (de) 2005-09-08
FR2858731B1 (fr) 2006-06-09
US20050031121A1 (en) 2005-02-10
FR2858731A1 (fr) 2005-02-11
KR100574945B1 (ko) 2006-04-28

Similar Documents

Publication Publication Date Title
KR100296958B1 (ko) 블록 데이터 암호화 장치
US6985582B1 (en) Encryption/decryption unit and storage medium
US11546135B2 (en) Key sequence generation for cryptographic operations
Brown et al. Improving resistance to differential cryptanalysis and the redesign of LOKI
US8705731B2 (en) Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
EP0618701B1 (en) Hardware arrangement for enciphering bit blocks while renewing a key at each iteration
US20050232430A1 (en) Security countermeasures for power analysis attacks
US20060177052A1 (en) S-box encryption in block cipher implementations
CA2504338C (en) Security countermeasures for power analysis attacks
WO2008115476A1 (en) A simple and efficient one-pass authenticated encryyption scheme
WO2017173136A9 (en) Key update for masked keys
KR100574945B1 (ko) 겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법
Bogdanov Cryptanalysis of the KeeLoq block cipher
Miroshnik et al. Uses of programmable logic integrated circuits for implementations of data encryption standard and its experimental linear cryptanalysis
EP1001398B1 (en) Ciphering apparatus
Reddy et al. A new symmetric probabilistic encryption scheme based on random numbers
WO2022096141A1 (en) Method for processing encrypted data
Biham et al. Cryptanalysis of the ANSI X9. 52 CBCM mode
WO2009104827A1 (en) Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box
Lu et al. The higher-order meet-in-the-middle attack and its application to the Camellia block cipher
US20240113871A1 (en) Encryption processing apparatus, encryption processing method for encryption processing apparatus, and storage medium
Hasan Key-joined block ciphers with input-output pseudorandom shuffling applied to remotely keyed authenticated encryption
Tay Applying Differential Cryptanalysis to DES Reduced to 5 Rounds
Aslan An Application of Linear Cryptanalysis Method to Des Block Cipher
KR20030001888A (ko) 키를 사용하지 않고 블록 정보만을 이용하는 암호알고리즘 설계 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20090415

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee