KR100389902B1 - 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법 - Google Patents
차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법 Download PDFInfo
- Publication number
- KR100389902B1 KR100389902B1 KR1019970026558A KR19970026558A KR100389902B1 KR 100389902 B1 KR100389902 B1 KR 100389902B1 KR 1019970026558 A KR1019970026558 A KR 1019970026558A KR 19970026558 A KR19970026558 A KR 19970026558A KR 100389902 B1 KR100389902 B1 KR 100389902B1
- Authority
- KR
- South Korea
- Prior art keywords
- bit
- block
- key
- box
- sum operation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- 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
- H04L9/0625—Block 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
-
- 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
-
- 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/08—Randomization, e.g. dummy operations or using noise
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
차분해독법과 선형해독법에 대하여 안전성을 보장하는 고속 블럭 암호화방법이 개시된다. 이 블록 암호화방법은 (a) 암호화하고자 하는 데이터 스트림을 64비트 블록으로 나누고, 32비트씩 좌측 및 우측 블록으로 나누는 단계, (b) 상기 (a)단계에서 나뉘어진 좌측 블록과, 32비트 회전키를 8비트 부블록 단위로 논리합 연산하는 단계; (c) 상기 (b) 단계에서 논리합 연산한 결과 얻어지는 상기 8비트 부블록들 중 첫 번째 블록은 첫번째 S-박스로 입력하고, 나머지 8비트 부블록 각각은 바로 이전의 S-박스로부터의 출력값과 논리합 연산을 수행한 후 순서대로 S-박스로 입력하는 단계; (d) 상기 S-박스들로부터의 출력값을 우측으로 8비트 이동 회전하는 단계; (e) 상기 (d) 단계에서 이동 회전된 값들과 상기 (a) 단계에서 나뉘어진 우측 블록을 논리합 연산한 후 다음 라운드의 좌측 블록으로 설정하는 단계; (f) 상기 (a) 단계에서 나뉘어진 좌측 블록을 다음 라운드의 우측 블록으로 설정하는 단계; 및 (g) 상기 (e) 및 (f) 단계에서 새로이 설정된 좌측 블록과 우측 블록으로 하여 (b) 내지 (e) 단계를 마지막 라운드까지 반복수행하고, 반복 결과 설정된 좌측 블록과 우측 블록을 암호화된 좌측 블록과 우측 블록으로 설정하여 출력하는 단계를 포함한다.
Description
본 발명은 정보의 암호화방식에 관한 것으로서, 고차 차분해독법(high-order Differential Cryptanalysis)과 선형해독법(Linear Cryptanalysis) 및 인터폴레이션 공격에 대하여 안전성을 보장할 수 있고, 구현이 간단할 뿐 아니라 고속처리가가능한 고속 블럭 암호화방법에 관한 것이다.
종래의 블록 암호화 알고리즘은 실제적인 암호화에 있어서 알고리즘의 설계자의 감각 및 오랜 제작 경험만을 바탕으로 설계되었다. 그렇기 때문에 여러 가지 많은 암호 해독방식에 의해 손쉽게 해독되었다. 가장 널리 알려진 블록 암호화 알고리즘으로는 1977년 현재의 미국 표준 기술 연구소의 전신인 미국 표준국에 의해 미연방 정보처리표준 46(FIPS PUB46)으로 채택된 DES(Data Encryption Standard)에 기초를 두고 있다. DES에서는 데이터를 56 비트 키를 이용하여 64 비트 출력으로 변환한다. 복호화에는 동일한 키를 사용하여 동일한 단계를 역으로 실행하여 얻어진다.
DES 블록 암호화 알고리즘에 있어서 평문처리는 다음 세단계로 이루어진다. 첫 번째 단계에서는 먼저 64비트 평문이 치환된 입력을 생성하기 위해서 비트열의 순서를 재조정하는 초기순열(Initial Permutation, IP) 과정을 수행한다.
두 번째 단계에서는, 동일함수의 16회 반복(iteration) 단계를 수행하게 되는데, 각 반복단계의 64비트 출력의 좌우 절반은 예비출력을 생성하기 위하여 32비트씩 나누어져 좌우로 교환되어 다음 단계의 입력으로 들어간다. 입력의 우측 32비트는 확장 순열을 거친 후 48비트로 변환되고, 48비트의 키와 논리합 연산을 수행하게 된다. 48비트의 키의 생성은 56비트로 구성되는 입력키를 좌우의 28비트씩 나누어 입력된 후 좌측 이동연산을 거친 후 순열 수축에 의해서 48비트의 키를 출력하게 된다. 상기의 과정을 거친 48비트의 데이터는 치환선택을 위해서 6비트의 입력을 받아서 4비트의 출력을 내는 8개의 S-박스를 거치면서 32비트로 순열 수축된후 이전 반복단계의 좌측 32비트 예비출력과 논리합 연산을 하고 이것이 다음 반복단계의 우측입력으로 들어간다. S-박스에 입력되는 6비트의 데이터는 S-박스의 테이블에서 특정한 행과 열을 가리키기 위해서 첫 번째 비트와 마지막 비트는 테이블의 행을 나타내는 2진수로 사용하고, 중앙의 4비트는 테이블의 특정열을 가리킨다. 예를 들어, 특정한 S-박스의 입력 비트열이 011011인 경우 첫 번째 비트와 마지막 비트의 조합인 (01)2은 첫 번째 행을 가리키고, 중앙의 4비트의 조합인 (1101)2은 테이블의 13열을 의미한다. 따라서, 입력되는 011011은 특정 S-박스의 1행 13열에 해당하는 4비트의 순열로 축소되어 출력된다. 그리고, 8개의 S-박스의 32비트의 출력은 다음 반복단계에서 각 S-박스의 출력이 가능한 다수의 다른 S-박스에 곧바로 영향을 줄 수 있도록 구성된다.
마지막으로 상기와 같은 16번의 반복단계를 거친 예비출력은 64비트 암호문을 생성하기 위하여 초기순열의 역인 역 초기순열(IP-1)을 통과한다.
그러나, 상기와 같은 DES를 기반으로 하는 블록 암호화 알고리즘은 80년대 이후 가장 대표적이고 강력한 해독방식인 고차 차분해독법과 선형해독법에 대해서 안전성을 보장할 수 없었다. 물론, 이러한 해독방식들에 대응하기 위하여 많은 암호 설계기준들이 제안되었고, 먼저 이 기준들을 통과하는 것이 급선무였다. 그러나, 이러한 기준들을 통과한다고 할지라도 고차 차분해독법과 선형해독법에 대해서 안전성이 있다고 할 수는 없었다.
이러한 문제점을 이론적으로 해결하고자 하는 첫 번째 시도가 일본의 MISTY알고리즘이다, 이 알고리즘에 따르면 7비트 또는 9비트로 구성되는 S-박스들이 단순한 대수형(algebraic form)으로 구성되어 있다. 그러나, 이 알고리즘은 망 구성이 회귀구조(recursive structure)를 갖기 때문에 그 구현이 복잡하다는 단점이 있다. 여기서, 망 구성이라 함은 주어진 입력데이터가 임의의 구조를 통과하여 암호화된 블록 텍스트를 구성하게 되는데, 이때 임의의 구조를 의미한다.
따라서 본 발명이 이루고자 하는 기술적 과제는 페이스텔 구조의 암호화시스템에 있어서 회전함수를 4개의 S-박스로 구성하여 구현이 간단하며 고속처리가 가능한 블록 암호화방법을 제공하는데 있다.
상기 기술적 과제를 달성하기 위하여 본 발명에 따른 고속 블럭 암호화방법은 (a) 암호화하고자 하는 데이터 스트림을 64비트 블록으로 나누고, 32비트씩 좌측 및 우측 블록으로 나누는 단계; (b) 상기 (a) 단계에서 나뉘어진 좌측 블록과, 32비트 회전키를 8비트 부블록 단위로 논리합 연산하는 단계; (c) 상기 (b) 단계에서 논리합 연산한 결과 얻어지는 상기 8비트 부블록들 중 첫 번째 블록은 첫번째 S-박스로 입력하고, 나머지 8비트 부블록 각각은 바로 이전의 S-박스로부터의 출력값과 논리합 연산을 수행한 후 순서대로 S-박스로 입력하는 단계; (d) 상기 S-박스들로부터의 출력값을 우측으로 8비트 이동 회전하는 단계; (e) 상기 (d) 단계에서 이동 회전된 값들과 상기 (a) 단계에서 나뉘어진 우측 블록을 논리합 연산한 후 다음 라운드의 좌측 블록으로 설정하는 단계; (f) 상기 (a) 단계에서 나뉘어진 좌측 블록을 다음 라운드의 우측 블록으로 설정하는 단계; 및 (g) 상기 (e) 및 (f) 단계에서 새로이 설정된 좌측 블록과 우측 블록으로 하여 (b) 내지 (e) 단계를 마지막 라운드까지 반복수행하고, 반복 결과 설정된 좌측 블록과 우측 블록을 암호화된 좌측 블록과 우측 블록으로 설정하여 출력하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 블록 암호화방법에 있어서 32비트 회전키는 (h) 4개의 32비트 회전키 중 첫 번째 회전키는 4개의 32비트 골든넘버 중 첫 번째 골든넘버와 배타적논리합 연산, 두 번째 회전키는 두 번째 골든넘버와 모듈로합 연산, 세 번째 회전키는 세 번째 골든넘버와 배타적논리합 연산, 네 번째 회전키는 상기 첫 번째 회전키 및 네 번째 골든넘버와 모듈로합 연산을 각각 수행하는 단계; (i) 상기 (h) 단계에서의 연산결과를 좌측으로 32비트 이동 회전하여 4개의 중간키를 생성하는 단계; 및 (j) 상기 (i) 단계에서 생성된 4개의 중간키 중 첫 번째 중간키는 상기 첫 번째 골든넘버와 배타적논리합 연산, 두 번째 중간키는 상기 두 번째 골든넘버와 모듈로합 연산, 세 번째 중간키는 상기 세 번째 골든넘버와 배타적논리합 연산, 네번째 중간키는 상기 첫 번째 중간키 및 상기 네 번째 골든넘버와 모듈로합 연산을 각각 수행하여 4개의 32 비트 회전키를 생성하는 단계를 포함하며, 상기 (h) 내지 (j) 단계를 4회 반복 수행하여 16개의 32 비트 회전키를 생성하는 것이 바람직하다.
본 발명에 따르면, MISTY 알고리즘과 같은 회귀구조를 가지지 않으면서, 단순히 S-박스를 통과한 데이터들이 8비트 쉬프트되는 동시에 바로 다음의 S-박스의 입력데이터로 궤환되는 구조로 이루어지는 회전함수를 이용함으로써, 종래에 비하여 안전성을 보장할 수 있을 뿐 아니라 고속으로 암호화가 가능한 이점이 있다.
도 1은 본 발명이 적용되는 일반적인 페이스텔 형태의 암호화 알고리즘을 설명하는 도면,
도 2는 본 발명에 의한 회전키 생성 스케쥴링을 설명하는 도면, 및
도 2는 본 발명에 의한 회전함수블럭의 구조를 나타낸 도면,이다.
<도면의 주요부분에 대한 부호의 설명>
14, 16, 32a∼32d, 34b∼34d : 배타적논리합 연산기
13 : 회전함수블럭 15 : 회전키
22, 24, 26, 28 : 256 모듈로합 연산기
35a∼35d : S-박스
이어서, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 상세히 설명하기로 한다.
본 발명에 따른 고속 블록 암호화방법을 "SNAKE"라 일컬으며, 여기서는 데이터를 64비트 블록 단위로 암호화한다. 즉, 64비트 블록의 평문이 입력되어 64 비트 블록의 암호문이 출력된다. 블록 암호화방법은 사용되는 회전함수의 설계구조에 따라서 안전성 보장 여부가 결정된다.
도 1은 본 발명이 적용되는 일반적인 페이스텔 형태의 암호화 알고리즘을 설명하는 도면으로서, 암호화고자 하는 평균을 소정 비트, 여기서는 64비트의 데이터 블럭으로 나누어 좌우 대칭되게 32비트씩 입력시키면 64비트의 암호문이 출력된다. 64비트의 암호문을 출력하기 위해서는 총 16라운드의 과정을 거쳐야 하는데, 여기 서는 제1 라운드에 대해서만 설명하기로 한다.
제1 라운드에서는, 입력된 64비트의 평문(plaintext) 데이터블럭이 32비트씩 나뉘어져 32비트 좌측블록(XL(0),11)과 32비트 우측블럭(XR(0),12)으로 입력된다. 제1 배타적논리합 연산기(14)에서는 32비트 우측블럭(12)과 32비트 회전키(key_1,15)에 대하여 배타적논리합 연산을 수행하고, 그 연산결과를 회전함수블럭(13)으로 제공한다. 이때, 상기 32비트 입력은 32비트 데이터를 처리하는 기기의 경우에는 32비트 단위로, 스마트 카드와 같이 8비트 데이터를 처리하는 장치의 경우에는 8비트 블록씩 나뉘어 배타적논리합이 수행된다. 회전함수블럭(13)에서는 제1 배타적논리합 연산기(14)로부터 제공되는 32비트 데이터에 대하여 소정의 신호처리를 수행한 후 제2 배타적논리합 연산기(16)에서 32비트 좌측블록(XL(0),11)과 배타적논리합이 수행된다. 제2 배타적논리합 연산기(14)의 배타적논리합 연산결과는, 제2 라운드의 32비트 우측블록(XR(1))으로 설정되는 한편, 상기 32비트 우측블럭(XR(0),12)은 제2 라운드의 32비트 좌측블록(XL(1))으로 설정되어 상술한 바와같은 과정을 반복수행하여 암호화된 32비트 좌측블럭(XL(16), 17)과 32비트 우측블럭(XR(16), 18)을 생성하게 된다.
도 2는 도 1에 도시된 페이스텔 형태의 암호화 알고리즘에 있어서 본 발명에 따른 회전키 생성을 설명하는 도면으로서, 128비트 씨드키와 128비트 골든넘버를 32비트 단위로 배타적논리합과 모듈로합연산을 교대로 수행하는 구성이다. 즉, 128비트 씨드키를 32비트 단위로 나누어 4개의 32비트 씨드키(K(i,1)∼K(i,4))로 설정하고, 128비트 골든넘버를 32비트 단위로 나누어 4개의 32비트 골든넘버(G1~G4)로 설정하여 도 2에 도시된 바와 같은 처리를 수행한다. 이를 좀 더 세부적으로 살펴보면 다음과 같다.
4개의 씨드키(K(i,1)∼K(i,4)) 중 첫 번째 씨드키(K(i,1))는 배타적논리합 연산기(21)에서 골든넘버(G1)와 배타적논리합 연산하여 첫 번째 중간키를 생성하고, 이를 좌측 회전하여 모듈로합 연산기(28)에서 모듈로합 연산기(22)의 출력 및 골든넘버(G4)와 모듈로합 연산이 수행된 다음 회전키(K(i+1,4))를 생성한다, 4개의 씨드키(K(i,1)∼K(i,4)) 중 두 번째 씨드키(K(i,2))는 모듈로합 연산기(22)에서 골든넘버(G2)와 모듈로합 연산하여 두 번째 중간키를 생성하고, 이를 좌측 회전하여 배타적논리합 연산기(25)에서 골든넘버(G1)와 배타적논리합 연산이 수행된 다음 회전키(K(i+1,1))를 생성한다. 4개의 씨드키(K(i,1)∼K(i,4)) 중 세 번째씨드키(K(i,3))는 배타적논리합 연산기(23)에서 골든넘버(G3)와 배타적논리합 연산하여 세 번째 중간키를 생성하고, 이를 좌측 회전하여 모듈로합 연산기(26)에서 골든넘버(G2)와 모듈로합 연산이 수행된 다음 회전키(K(i+1,2))를 생성한다. 4개의 씨드키(K(i,1)∼K(i,4)) 중 네 번째 씨드키(K(i,4))는 모듈로합 연산기(24)에서 첫 번째 씨드키(K(i,1)) 및 골든넘버(G4)와 모듈로합 연산하여 네 번째 중간키를 생성하고, 이를 좌측 회전하여 배타적논리합 연산기(27)에서 골든넘버(G3)와 배타적논리합 연산이 수행된 다음 회전키(K(i+1,3))를 생성한다. 상기한 과정을 수행하면 4개의 32비트 씨드키(K(i,1)∼K(i,4))로부터 4개의 32비트 회전키(K(i+1,1)∼k(i+1,4))를 생성할 수 있고, 이러한 과정을 4회 반복하여 총 16개의 4개의 32비트 회전키를 생성할 수 있다.
도 3은 도 1에 도시된 페이스텔 형태의 암호화 알고리즘에 있어서 본 발명에 따른 회전함수블럭의 구조를 나타낸 것으로서, 32비트의 데이터를 처리하는 32비트 프로세서의 경우에 대해서 설명하기로 한다. 본 발명에 따른 회전함수블럭은 4개의 S-박스(35a∼35d)로 이루어진다.
도 3을 참조하면, 배타적논리합 연산기(32a∼32d)에서는 각각 8비트 부블럭 X1-X4로 이루어지는 32비트 우측블럭(31)과 각각 8비트 부블럭 K1∼K4로 이루어지는 32비트 회전키에 대하여 8비트 부블록 단위로 배타적논리합 연산을 수행하여 그 연산결과를 본 발명에 따른 회전함수블럭으로 제공한다. 여기서, 배타적논리합 연산 결과 생성되는 8비트 부블럭을 B1, B2, B3, B4라고 한다.
회전함수블럭에 있어서, 소프트웨어 또는 하드웨어적으로 구성되어 4개의 S-박스((35a∼35d)에 각각 저장되는 암호화테이블을 T1, T2, T3, T4라 한다. 여기서, 소프트웨어적으로 테이블을 구성할 경우 256×8 룩업테이블 또는 256×8 ROM을 이용할 수 있고, 게이트레벨에서 구현할 수도 있다. 구체적으로 T1과 T3 테이블은 x-1over GF(28) 에 의해 생성되고, T2와 74 테이블은 45x모듈로 28을 두 번 조합시킨 함수에 의해 생성된다.
배타적논리합 연산결과 생성되는 8비트 부블럭(B1∼B4) 중 첫 번째 부블럭(B1)의 각 비트들은 S-박스1(35a)에 저장된 T1 테이블을 룩업하여 그 값을 선택하고 그 값은 우측으로 8비트 이동 회전하여 회전함수블럭(13)에서 출력되는 32비트 출력(36) 중 두 번째 8비트 부블럭(Y2)을 나타내게 된다. 이와 동시에 S-박스 1(35a)로부터 제공되는 두 번째 8비트 부블럭(Y2)은 배타적논리합 연산기(34b)에서 8비트 부블럭(B1∼B4) 중 두 번째 부블럭(B2)과 배타적논리합 연산된다. 배타적논리합 연산기(34b)의 연산결과 생성되는 8비트 부블럭은 S-박스2(35b)에 저장된 T2 테이블을 룩업하여 그 값을 선택하고 그 값은 우측으로 8비트 이동 회전하여 회전함수블럭(13)에서 출력되는 32비트 출력(36) 중 세 번째 8비트 부블럭(Y3)을 나타내게 된다. 다음, S-박스2(35b)로부터 제공되는 세 번째 8비트 부블럭(Y3)은 배타적논리합 연산기(34c)에서 8비트 부블럭(B1∼B4) 중 세 번째 부블럭(B3)과 배타적논리합 연산된다. 배타적논리합 연산기(34c)의 연산결과 생성되는 8비트 부블럭은 S-박스3(35c)에 저장된 T3 테이블을 룩업하여 그 값을 선택하고 그 값은 우측으로 8비트 이동 회전하여 회전함수블럭(13)에서 출력되는 32비트 출력(36) 중 마지막 8비트 부블럭(Y4)을 나타내게 된다. 다음, S-박스3(35c)로부터 제공되는 마지막 8비트 부블럭(Y4)은 배타적논리합 연산기(34d)에서 8비트 부블럭(B1∼B4) 중 네 번째 부블럭(B4)과 배타적논리합 연산된다. 배타적논리합 연산기(34d)의 연산결과 생성되는 8비트 부블럭은 S-박스4(35d)에 저장된 T4 테이블을 룩업하여 그 값을 선택하고 그 값은 우측으로 8비트 이동 회전하여 회전함수블럭(13)에서 출력되는 32비트 출력(36) 중 첫 번째 8비트 부블럭(Y1)을 나타내게 된다.
상기한 바와 같은 회전함수블럭(13)으로부터 제공되는 4개의 8비트 부블럭(Y1∼Y4)은 도 1의 제2 배타적논리합 연산기(16)로 제공되어 32비트 좌측블럭(11)과 배타적논리합 연산된다.
이와 같은 회전함수블럭 구조를 이용하면 8비트 단위로 분할된 부블럭들이 256×8 S-박스를 통과함으로써 낮은 선형성과 낮은 차분 균일성을 얻게 되고, 그 결과 블록 암호화 알고리즘의 해독방식인 차분해독법과 선형해독법에 대하여 상당히 안전성을 보장할 수 있을 뿐 아니라 고속처리를 가능케한다. 일반적으로 각 회전함수에 입력되는 각 비트들의 변화에 그 출력값의 각 비트가 변활 확률이 1/2에 가까울수록 안전성이 높다. 따라서, 본 발명에서와 같이 S-박스를 통과한 각 비트의 출력이 다음 S-박스의 입력데이터 블록에 영향을 주도록 설계되고, 또한 이 블록들은 한 블록씩 우측으로 회전하여 다음 라운드에 영향을 주어 전체적인 암호화데이터의 출력에 영향을 주게 된다.
본 발명에서는 각 회전함수에 대하여 입력차분과 출력차분들을 변수로 설정하고, 각 변수들로서 고정된 전체의 입력과 출력 사이의 관계를 천이차분행렬로서정의하고, 이 행렬의 링크에 대한 조건을 줌으로써 선형해독법과 차분해독법에 대한 안전성을 유도하였다. 또한, 상기에 의한 결과를 이용하여 본 발명에 의한 블록 암호화방법의 구조가 안전함을 증명하였다. 이에 대한 증명은 Chang Hyi Lee 및 Young Tae Cha에 의한 "Simple Block Cipher with Provable Resistance against OC & LC Attacks," CRYPTO '97 Conference에 수록되어 있다.
상술한 바와 같이 본 발명에 따른 고속 블록 암호화방법은 일본의 MISTY 알고리즘에서 사용된 회귀구조를 갖지 않고, 단순히 각 S-박스를 통과한 8비트 데이터들이 쉬프트되는 동시에 바로 다음의 S-박스에 입력으로 궤환되는 구조를 가지기 때문에 8비트 단위로 분할된 부블럭들이 S-박스를 거치면서 선형성과 차분균일성이 낮아져서 출력될 뿐 아니라 이들이 이웃하는 S-박스의 입력에 대해서 영향을 미치도록 하여 암호화된 전체 출력값들에 대해 영향을 끼치게 된다.
그 결과, 본 발명에 따른 고속 블록 암호화방법은 가장 대표적인 암호화 해독방식인 차분해독법과 선형해독법에 대한 안전성을 가지게 되고, 암호화망 구조의 안전성을 이용하여 S-박스의 함수를 한정하지 않고, 가능한 좋은 S-박스 함수를 선택적으로 사용할 수 있는 이점이 있다. 또한, 하드웨어적이나 소프트웨어적으로 그 구현이 용이하고, 특히 소프트웨어적으로 구성시 DES 블록 암호화 알고리즘에 비해서 2배 정도의 빠른 암호화속도를 얻을 수 있는 이점이 있다. 구체적으로, 펜티엄 120 MHz 상에서 C++ 프로그래밍을 이용하여 모의실험한 결과 DES 알고리즘이 약 1.3 Mbyte/sec인 반면, 본 발명은 약 2.0 Mbyte/sec의 결과를 얻어 종래의 DES 알고리즘에 비하여 그 성능이 우수함을 입증할 수 있었다.
Claims (2)
- (a) 암호화하고자 하는 데이터 스트림을 64비트 블록으로 나누고, 32비트씩 좌측 및 우측 블록으로 나누는 단계;(b) 상기 (a) 단계에서 나뉘어진 좌측 블록과, 32비트 회전키를 8비트 부블록 단위로 논리합 연산하는 단계;(c) 상기 (b) 단계에서 논리합 연산한 결과 얻어지는 상기 8비트 부블록들 중 첫 번째 블록은 첫번째 S-박스로 입력하고, 나머지 8비트 부블록 각각은 바로 이전의 S-박스로부터의 출력값과 논리합 연산을 수행한 후 순서대로 S-박스로 입력하는 단계;(d) 상기 S-박스들로부터의 출력값을 우측으로 8비트 이동 회전하는 단계;(e) 상기 (d) 단계에서 이동 회전된 값들과 상기 (a) 단계에서 나뉘어진 우측 블록을 논리합 연산한 후 다음 라운드의 좌측 블록으로 설정하는 단계;(f) 상기 (a) 단계에서 나뉘어진 좌측 블록을 다음 라운드의 우측 블록으로 설정하는 단계, 및(g) 상기 (e) 및 (f) 단계에서 새로이 설정된 좌측 블록과 우측 블록으로 하여 (b) 내지 (e) 단계를 마지막 라운드까지 반복수행하고, 반복 결과 설정된 좌측 블록과 우측 블록을 암호화된 좌측 블록과 우측 블록으로 설정하여 출력하는 단계를 포함하는 것을 특징으로 하는 고속 블럭 암호화방법.
- 제1 항에 있어서, 상기 32 비트 회전키는(h) 4개의 32비트 회전키 중 첫 번째 회전키는 4개의 32비트 골든넘버 중 첫번째 골든넘버와 배타적논리합 연산, 두 번째 회전키는 두 번째 골든넘버와 모듈로합 연산, 세 번째 회전키는 세 번째 골든넘버와 배타적논리합 연산, 네 번째 회전키는 상기 첫 번째 회전키 및 네 번째 골든넘버와 모듈로합 연산을 각각 수행하는 단계;(i) 상기 (h) 단계에서의 연산결과를 좌측으로 32비트 이동 회전하여 4개의 중간키를 생성하는 단계; 및(j) 상기 (i) 단계에서 생성된 4개의 중간키 중 첫 번째 중간키는 상기 첫번째 골든넘버와 배타적논리합 연산, 두 번째 중간키는 상기 두 번째 골든넘버와 모듈로합 연산, 세 번째 중간키는 상기 세 번째 골든넘버와 배타적논리합 연산, 네번째 중간키는 상기 첫 번째 중간키 및 네 번째 골든넘버와 모듈로합 연산을 각각 수행하여 4개의 32 비트 회전키를 생성하는 단계를 포함하는 것을 특징으로 하는 고속 블럭 암호화방법.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970026558A KR100389902B1 (ko) | 1997-06-23 | 1997-06-23 | 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법 |
GB9811900A GB2327581B (en) | 1997-06-23 | 1998-06-04 | Block cipher algorithm having a robust security against differential cryptanalysis linear cryptanalysis and higher order differential cryptanalysis |
US09/095,845 US6314186B1 (en) | 1997-06-23 | 1998-06-11 | Block cipher algorithm having a robust security against differential cryptanalysis, linear cryptanalysis and higher-order differential cryptanalysis |
FR9807753A FR2765056B1 (fr) | 1997-06-23 | 1998-06-19 | Algorithme de chiffrage par blocs ayant une securite robuste contre une analyse cryptographique differentielle, une analyse cryptographique lineaire et une analyse cryptographique differentielle d'ordre plus eleve |
DE19827904A DE19827904C2 (de) | 1997-06-23 | 1998-06-23 | Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung |
JP17584498A JP3148181B2 (ja) | 1997-06-23 | 1998-06-23 | ブロック暗号化方法,及び,ブロック暗号化装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970026558A KR100389902B1 (ko) | 1997-06-23 | 1997-06-23 | 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990002840A KR19990002840A (ko) | 1999-01-15 |
KR100389902B1 true KR100389902B1 (ko) | 2003-09-22 |
Family
ID=19510735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970026558A KR100389902B1 (ko) | 1997-06-23 | 1997-06-23 | 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6314186B1 (ko) |
JP (1) | JP3148181B2 (ko) |
KR (1) | KR100389902B1 (ko) |
DE (1) | DE19827904C2 (ko) |
FR (1) | FR2765056B1 (ko) |
GB (1) | GB2327581B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210111009A (ko) | 2020-03-02 | 2021-09-10 | 국방과학연구소 | Dlbn이 3 이상인 조건을 만족하는 확장 에스박스 및 이를 이용한 비트 연산 방법 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100434558B1 (ko) * | 1997-12-09 | 2004-09-30 | 삼성전자주식회사 | 고속블록암호화방법및이를위한키스케쥴링방법 |
EP1001569A4 (en) * | 1998-06-02 | 2002-03-13 | Nippon Telegraph & Telephone | DEVICE AND METHOD FOR EVALUATING THE RANDOM OF A FUNCTION, DEVICE AND METHOD FOR PRODUCING A RANDOM FUNCTION AND RECORDED MEDIUM ON WHICH IMPLEMENTATION PROGRAMS THEREOF ARE RECORDED |
GB2345229B (en) * | 1998-12-23 | 2003-12-03 | Motorola Ltd | Method for encrypting data |
KR100316025B1 (ko) * | 1999-06-30 | 2001-12-12 | 박종섭 | 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치 |
US7093137B1 (en) * | 1999-09-30 | 2006-08-15 | Casio Computer Co., Ltd. | Database management apparatus and encrypting/decrypting system |
KR100362170B1 (ko) * | 2000-05-04 | 2002-11-23 | 한국전자통신연구원 | 라운드 키 생성 및 암호처리용 암호화장치 |
KR100377175B1 (ko) * | 2000-06-08 | 2003-03-26 | 주식회사 하이닉스반도체 | 데이터 암호화 표준 알고리즘을 이용한 암호화 장치 |
AU2001269086A1 (en) * | 2000-07-04 | 2002-01-14 | Koninklijke Philips Electronics N.V. | Substitution-box for symmetric-key ciphers |
KR100425956B1 (ko) * | 2000-07-15 | 2004-04-03 | (주)시큐어피아 | 동작 진행 중 라운드 키 계산 방식을 이용한 seed 암호 및 복호 회로 |
JP3770584B2 (ja) * | 2000-10-31 | 2006-04-26 | シャープ株式会社 | 暗号鍵生成回路 |
EP1374588B1 (fr) * | 2001-02-26 | 2005-08-31 | Nagravision SA | Encryption d'un flux video compresse |
US7212631B2 (en) * | 2001-05-31 | 2007-05-01 | Qualcomm Incorporated | Apparatus and method for performing KASUMI ciphering |
JP3851115B2 (ja) * | 2001-06-28 | 2006-11-29 | 富士通株式会社 | 暗号回路 |
JP2003023421A (ja) * | 2001-07-09 | 2003-01-24 | C4 Technology Inc | 暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置 |
DE10149191C2 (de) * | 2001-10-05 | 2003-12-18 | Infineon Technologies Ag | Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation |
US7099469B2 (en) * | 2001-10-17 | 2006-08-29 | Motorola, Inc. | Method of scrambling and descrambling data in a communication system |
US7103180B1 (en) * | 2001-10-25 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Method of implementing the data encryption standard with reduced computation |
JP2003223098A (ja) * | 2002-01-29 | 2003-08-08 | Sony Corp | ブーリアン・マトリクスに基づく暗号化処理方法、および復号処理方法、並びにデータ通信システム |
KR100418575B1 (ko) * | 2002-04-03 | 2004-02-14 | 주식회사 하이닉스반도체 | 암호블럭연쇄 방식의 디이에스 암호화 장치 |
US7343011B2 (en) * | 2002-07-15 | 2008-03-11 | Conexant, Inc. | Secure telecommunications system for wireless local area networks |
FR2853424B1 (fr) * | 2003-04-04 | 2005-10-21 | Atmel Corp | Architecture de multiplicateurs polynomial et naturel combines |
US7310421B2 (en) * | 2003-10-06 | 2007-12-18 | National Institute Of Information And Communications Technology | Particular plaintext detector |
US7545928B1 (en) | 2003-12-08 | 2009-06-09 | Advanced Micro Devices, Inc. | Triple DES critical timing path improvement |
US7580519B1 (en) | 2003-12-08 | 2009-08-25 | Advanced Micro Devices, Inc. | Triple DES gigabit/s performance using single DES engine |
JP4574344B2 (ja) * | 2004-01-20 | 2010-11-04 | キヤノン株式会社 | 情報処理装置及び方法 |
KR20050087271A (ko) * | 2004-02-26 | 2005-08-31 | 삼성전자주식회사 | 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치 |
US7885405B1 (en) * | 2004-06-04 | 2011-02-08 | GlobalFoundries, Inc. | Multi-gigabit per second concurrent encryption in block cipher modes |
US8817979B2 (en) * | 2004-06-04 | 2014-08-26 | Broadcom Corporation | Standalone hardware accelerator for advanced encryption standard (AES) encryption and decryption |
US7526085B1 (en) | 2004-07-13 | 2009-04-28 | Advanced Micro Devices, Inc. | Throughput and latency of inbound and outbound IPsec processing |
US7760874B2 (en) * | 2004-07-14 | 2010-07-20 | Broadcom Corporation | Method and system for implementing FI function in KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets |
US7783037B1 (en) | 2004-09-20 | 2010-08-24 | Globalfoundries Inc. | Multi-gigabit per second computing of the rijndael inverse cipher |
US7546461B2 (en) * | 2005-06-28 | 2009-06-09 | Microsoft Corporation | Strengthening secure hash functions |
CN104683096B (zh) * | 2013-11-29 | 2017-12-22 | 中国航天科工集团第三研究院第八三五七研究所 | 动态s盒变换方法及系统 |
US9584310B2 (en) | 2014-03-19 | 2017-02-28 | Nxp B.V. | Protecting a white-box implementation against attacks |
US9578469B2 (en) | 2014-10-02 | 2017-02-21 | Motorola Solutions, Inc. | Method and system for direct mode communication within a talkgroup |
US20160105276A1 (en) * | 2014-10-10 | 2016-04-14 | Qualcomm Incorporated | Rotation-based cipher |
WO2016059870A1 (ja) * | 2014-10-14 | 2016-04-21 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
US9960909B2 (en) | 2014-12-08 | 2018-05-01 | Open-Silicon Inc. | High speed and low power hashing system and method |
US10015009B2 (en) * | 2015-11-25 | 2018-07-03 | Nxp B.V. | Protecting white-box feistel network implementation against fault attack |
US10742405B2 (en) * | 2016-12-16 | 2020-08-11 | The Boeing Company | Method and system for generation of cipher round keys by bit-mixers |
JP7443833B2 (ja) | 2020-03-05 | 2024-03-06 | Tdk株式会社 | 圧力センサ |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4195200A (en) * | 1976-06-30 | 1980-03-25 | International Business Machines Corporation | Key controlled block-cipher cryptographic system employing a multidirectional shift matrix |
US5003597A (en) * | 1989-12-21 | 1991-03-26 | Xerox Corporation | Method and apparatus for data encryption |
JPH05249891A (ja) * | 1992-03-06 | 1993-09-28 | Hitachi Ltd | 暗号処理装置およびこれを用いる暗号処理方法 |
JP3029381B2 (ja) * | 1994-01-10 | 2000-04-04 | 富士通株式会社 | データ変換装置 |
US5778074A (en) * | 1995-06-29 | 1998-07-07 | Teledyne Industries, Inc. | Methods for generating variable S-boxes from arbitrary keys of arbitrary length including methods which allow rapid key changes |
CA2164768C (en) * | 1995-12-08 | 2001-01-23 | Carlisle Michael Adams | Constructing symmetric ciphers using the cast design procedure |
US5838794A (en) | 1996-01-11 | 1998-11-17 | Teledyne Electronic Technologies | Method and apparatus for inter-round mixing in iterated block substitution systems |
-
1997
- 1997-06-23 KR KR1019970026558A patent/KR100389902B1/ko not_active IP Right Cessation
-
1998
- 1998-06-04 GB GB9811900A patent/GB2327581B/en not_active Expired - Fee Related
- 1998-06-11 US US09/095,845 patent/US6314186B1/en not_active Expired - Lifetime
- 1998-06-19 FR FR9807753A patent/FR2765056B1/fr not_active Expired - Fee Related
- 1998-06-23 DE DE19827904A patent/DE19827904C2/de not_active Expired - Fee Related
- 1998-06-23 JP JP17584498A patent/JP3148181B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210111009A (ko) | 2020-03-02 | 2021-09-10 | 국방과학연구소 | Dlbn이 3 이상인 조건을 만족하는 확장 에스박스 및 이를 이용한 비트 연산 방법 |
Also Published As
Publication number | Publication date |
---|---|
GB2327581A (en) | 1999-01-27 |
JPH1173101A (ja) | 1999-03-16 |
GB9811900D0 (en) | 1998-07-29 |
KR19990002840A (ko) | 1999-01-15 |
US6314186B1 (en) | 2001-11-06 |
DE19827904C2 (de) | 2000-05-11 |
JP3148181B2 (ja) | 2001-03-19 |
DE19827904A1 (de) | 1999-01-14 |
FR2765056B1 (fr) | 2000-09-01 |
GB2327581B (en) | 1999-08-04 |
FR2765056A1 (fr) | 1998-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100389902B1 (ko) | 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법 | |
US5222139A (en) | Cryptographic method and apparatus | |
AU635466B2 (en) | Method of cryptographically transforming electronic digital data from one form to another | |
US7092525B2 (en) | Cryptographic system with enhanced encryption function and cipher key for data encryption standard | |
US5623548A (en) | Transformation pattern generating device and encryption function device | |
EP0839418B1 (en) | Cryptographic method and apparatus for non-linearly merging a data block and a key | |
CN107147487B (zh) | 对称密钥随机分组密码 | |
US20030002663A1 (en) | Method and apparatus for data encryption | |
Masoodi et al. | Symmetric Algorithms I | |
EP1059760A1 (en) | Method for the block-encryption of discrete data | |
Kareem et al. | A new multi-level key block cypher based on the Blowfish algorithm | |
KR100259836B1 (ko) | N-라운드 라운드 출력문 귀환 블록 암호화/복호화 방법 | |
Soe et al. | Performance analysis of data encryption standard (DES) | |
KR20010102684A (ko) | 라운드 키 생성 및 암호처리용 암호화장치 | |
Hallappanavar et al. | Efficient implementation of AES by modifying S-Box | |
JPH09269727A (ja) | 暗号化方法および暗号化装置 | |
JPH10153954A (ja) | 暗号装置 | |
JP2001142395A (ja) | 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体 | |
Kumari et al. | An RTL Implementation of the Data Encryption Standard (DES) | |
Jagetiya et al. | Evolution of Information Security Algorithms | |
Fadhil et al. | The study on usage of table functions instead of basic operators inside encryption algorithm | |
Mittal et al. | A Cryptographic Technique Involving Finite Fields and Logical Operators | |
CN116743352A (zh) | 一种加解密一致的新型动态分组密码hfsp的加解密实现方法 | |
JPH08307411A (ja) | 逐次暗号方式 | |
Bahaa-Eldin | Intelligent systems for information security |
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: 20080312 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |