KR20010105775A - 병렬 Feistel 구조를 가진 데이터 암호 표준화시스템 - Google Patents

병렬 Feistel 구조를 가진 데이터 암호 표준화시스템 Download PDF

Info

Publication number
KR20010105775A
KR20010105775A KR1020000026684A KR20000026684A KR20010105775A KR 20010105775 A KR20010105775 A KR 20010105775A KR 1020000026684 A KR1020000026684 A KR 1020000026684A KR 20000026684 A KR20000026684 A KR 20000026684A KR 20010105775 A KR20010105775 A KR 20010105775A
Authority
KR
South Korea
Prior art keywords
encryption
bit group
bits
output
encryption function
Prior art date
Application number
KR1020000026684A
Other languages
English (en)
Other versions
KR100380638B1 (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 KR10-2000-0026684A priority Critical patent/KR100380638B1/ko
Publication of KR20010105775A publication Critical patent/KR20010105775A/ko
Application granted granted Critical
Publication of KR100380638B1 publication Critical patent/KR100380638B1/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
    • 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

Landscapes

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

Abstract

본 발명은 암호화 시스템에 관한 것으로, 보다 상세하게는 데이터 암호 표준화 시스템의 기본 구조인 Feistel 구조를 병렬 처리가 가능하도록 구성하여 데이터의 고속 처리를 가능하게 하는 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템에 관한 것이다. 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템은 제1 소정 단위로 순차적으로 인가되는 비트 열을 제2 소정 단위로 분할하여 각각 저장하는 분할 및 저장수단, 상기 분할 및 저장수단에 각각 저장된 비트열과 외부로부터 인가되는 제1 및 제2 암호화키에 의해 암호화 함수를 생성하여 각각 저장된 비트열을 암호화 화는 암호화 수단, 상기 암호화된 비트 열을 상기 제2 소정 단위로 재배열하는 재배열 수단을 포함한다. 본 발명에 따르면, DES 시스템의 기본 구조인 Feistel 구조를 병렬 처리가 가능하도록 구성하여 비도를 유지하면서, 처리 시간을 감소시킬 수 있고, 기존 하드웨어 시스템의 라이브러리로써 가능하여 하드웨어 구현이 용이한 효과가 있다. 또한 Feistel 구조를 적용한 SEED에 제안한 방식을 적용할 경우 지금 보다 더욱 우월한 보안 기능 및 고속의 처리 능력을 발휘하는 효과가 있다.

Description

병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템{A data encryption standard system equipped parallel feistel structure}
본 발명은 암호화 시스템에 관한 것으로, 보다 상세하게는 데이터 암호 표준화(Data Encryption Standard 이하, DES라 표기함) 시스템의 기본 구조인 Feistel 구조를 병렬 처리가 가능하도록 구성하여 데이터의 고속 처리를 가능하게 하는 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템에 관한 것이다.
현대 사회는 정보 통신 네트워크 사회이다. 이러한 정보 통신 네트워크 사회에서의 편리성이란 이루 헤아릴 수 없을 정도로 많다. 전자 상거래, 전자 쇼핑,전자 화폐, 전자 투표 등의 단어들은 더 이상 낯설지 않다.
현존하는 암호 시스템들은 통계적 취약성을 모두 내포하고 있다. 그러므로 암호화 시스템 자체가 해독되어지는 것은 시간과 노력의 차이만 있을 뿐, 완전하게 막아낼 수는 없다. 비도와 처리시간과는 Trade-off 관계가 존재하게 된다. 소프트웨어적으로 구현된 암호 시스템의 경우, 암호 시스템의 구현 및 운용이 용이하다는 장점이 있으나 데이터 량이 급증하거나 동시다발적인 다중화 포화 상태일 경우 컴퓨터가 다운되거나 처리시간이 오래 걸린다는 단점을 가지게 된다. 이러한 단점을 없애기 위하여 하드웨어적으로 구현된 암호 시스템이 등장하였으나 아직까지는 크게 현실적이며, 효율적이지 못하다. 이러한 하드웨어 또는 소프트웨어 암호 시스템들이 현재 정보통신 네트워크 상에서 효율적이지 못한 이유는 암호 시스템을 하드웨어 또는 소프트웨어로 구현할 때 구현의 기본이 되는 암호 알고리즘에 문제점이 내포되어 있기 때문이다. 즉, 효율적인 키 분배와 키 생성, 암호문과 평문사이에서의 변환과정 등이 수학적인 배경을 가지고 있기 때문에 고속 및 고비도의 암호 시스템을 구현하는데 장애로써 존재하기 때문이다.
현대 암호화의 기술은 암호 알고리즘의 공개와 키의 보호라는 특징을 가지고 있다. 암호 시스템은 알려진 알고리즘에 입력되는 평문과 키를 섞어 암호문을 만들어 낸다. 즉, 키를 모르면 도저히 원래의 정보를 회복할 수 없으나 키를 알면 손쉽게 원래의 정보를 복원한다는 것이다.
DES는 64 비트의 평문을 64 비트의 암호문으로 만드는 블록 암호 시스템으로 도 1에 도시된 바와 같이 64 비트의 키를 사용한다. 이 64 비트의 키(외부 키) 중56 비트는 실제 키(내부 키)가 되고 나머지 8 비트는 검사용 비트가 된다.
도 2에 종래의 암호 표준화 시스템의 구조가 도시되어 있다. DES의 구조는 16 라운드의 반복을 수행하며 각 라운드마다 전치와 치환을 거친 평문과 56 비트의 내부 키에서 나온 48 비트의 키가 섞여 암호문을 형성하고, 복호화는 암호화 과정과 동일하나 사용되는 키만 역순으로 작용한다. DES의 기본 요소는 평문을 64 비트로 블록킹 하는 과정이 있으며, 전치, 치환을 DES에서는 미리 정해진 표에 의해 수행하게 된다. 또한 확장, 압축과 배타적 논리합이 기본 연산이 된다. DES의 키는 0과 127 사이의 8개의 십진수로 구성되어 있는데 키는 여기에서 규칙성이 나타나 있지 않도록 난수 발생기가 무작위로 골라낸 숫자들로 만들어진다.
64 비트의 입력은 미리 정해진 표에 의해 초기 치환(200)을 수행한다. 치환된 64 비트 중 왼쪽 32 비트를 L0레지스터(201)에, 오른쪽 32 비트를 R0레지스터(202)에 저장한다. R0레지스터(202)에 저장된 키는 f(203)라고 표시되는 알고리즘에 의해 섞이고, 그 결과는 L0레지스터(201)의 키 값과 배타적 논리합(204) 연산을 거쳐 새로운 라운드의 출발 선상에 서게 된다. 이러한 과정으로 각 블록은 16 라운드의 처리 과정을 반복하게 되며 키 역시 각 라운드를 지날 때마다 새로운 형태로 바뀌어진다. 매 라운드의 각각의 키는 그 선행된 키에 의해 그 형태가 규정되어 이 것이 다시 배타적 논리합으로 암호화되고 있는 평문의 내용과 결합된다.
16 라운드가 끝난 후 마지막에서 다시 합쳐져서 정해진 표와 같은 역 초기치환(205)을 거쳐 64 비트의 출력을 산출한다. i번째 라운드가 시작되기 전의 왼쪽 32 비트를 L_{i-1}라 하고, 오른쪽 32 비트가 R_{i-1}일 경우, i번째 라운드의 왼쪽 32 비트 L_i는 바로 이전 라운드의 오른쪽 32 비트 R_{i-1}을 그대로 쓴다. f(203)에는 S-box(203-4)가 있으며, 압축, 확장 등의 방법이 쓰인다.
f(203)의 상세도가 도 3에 도시되어 있다. 도 3은 R_{i-1}레지스터(203-1)의 오른쪽 32 비트를 확장부(203-2)에서 48비트로 확장시키고 외부 키 K_i(48비트)와 배타적 논리합(203-3) 연산 후에 f(R_{i-1}, K_i)를 출력하며 이 출력 결과와 L_{i-1}의 배타적 논리합(204)에 의해 R_i를 생성하게 된다. 확장의 결과값인 48 비트는 S-box(203-4)로 입력되고, 6 비트씩 나누어져 처음 6 비트는 S-box(203-4)의 S_1, 다음 6 비트는 S_2···순으로 입력되고 각 S_1,S_2,···S_8들은 각각 4 비트를 출력하게 되며 이 8×4=32 비트들은 치환부(203-5)에서 치환표에 의해 치환된 후 32 비트의 출력 f(R_{i-1}, K_i)로 된다. 이러한 S-box(203-4)의 역할은 미리 정해진 표에 의해 각각 6비트를 받아들여서 4 비트의 비선형 특성을 가진 데이터를 출력하게 된다.
이와 같이 종래의 DES 시스템에서는 16 라운드를 순차적으로 거쳐야 하기 때문에 처리 시간이 오래 걸리는 문제점이 있으며, 처리 시간이 오래 걸리기 때문에 실시간 처리가 어려운 문제점이 있었다. 또한 Feistel 구조는 자체의 구조적 문제 때문에 Pipeline 방식을 사용할 수 없어 데이터 처리 속도와 데이터 보안 사이에서trade-off 관계를 가질 수밖에 없는 문제점이 있었다.
본 발명이 이루고자 하는 기술적인 과제는 DES 시스템의 기본 구조인 Feistel 구조를 병렬 처리가 가능하도록 구성하여 키의 길이에 처리 속도가 비례관계를 갖지 않도록 하며, 데이터의 고속 처리가 가능하도록 하는 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템을 제공하는데 있다.
도 1은 일반적인 데이터 암호 표준화 키의 구조를 보이는 도면이다.
도 2는 종래의 데이터 암호 표준화 시스템의 구성을 보이는 블록도 이다.
도 3은 도 2의 시스템 중 f의 상세도 이다.
도 4는 본 발명에 따른 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템의 구성을 보이는 블록도 이다.
도 5는 도 4에 도시된 시스템의 회로도이다.
본 발명이 이루고자 하는 기술적인 과제를 해결하기 위한 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템은 제1 소정 단위로 순차적으로 인가되는 비트 열을 제2 소정 단위로 분할하여 각각 저장하는 분할 및 저장수단; 상기 분할 및 저장수단에 각각 저장된 비트열과 외부로부터 인가되는 제1 및 제2 암호화키에 의해 암호화 함수를 생성하여 각각 저장된 비트열을 암호화 화는 암호화 수단; 및 상기 암호화된 비트 열을 상기 제2 소정 단위로 재배열하는 재배열 수단을 포함하는 것이 바람직하다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
도 4는 본 발명에 따른 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템의 구성을 보이는 블록도 이다.
도 4에 도시된 시스템은 입력되는 평문 128 비트를 치환 표에 의해 치환하는 치환부(400), 치환된 128 비트 중 하위 좌측 32 비트를 저장하는 제1 하위 좌측 레지스터(L0)(401), 치환된 128 비트 중 하위 우측 32 비트를 저장하는 제1 하위 우측레지스터(R0)(402), 치환된 128 비트 중 상위 좌측 32 비트를 저장하는 제1 상위 좌측 레지스터(L1)(403), 치환된 128 비트 중 상위 우측 32 비트를 저장하는 제1 상위 우측 레지스터(R1)(404), 외부에서 입력되는 암호화 키 K0과 K1(각각 48 비트)를 Exclusive-nor 연산하는 제1 배타적 논리 부정합 연산부(405), 제1 상위 우측 레지스터(R1)(404)의 비트열과 외부에서 입력되는 암호화 키 K1를 조합하여 제1 암호화 함수를 생성하는 제1 암호화 함수부(406), 제1 암호화 함수부(406)의 출력과 제1 상위 좌측 레지스터(L1)(403)의 비트열을 Exclusive-or 연산하는 제1 배타적 논리합 연산부(407), 제1 배타적 논리 부정합 연산부(405)의 출력과 제1 배타적 논리합 연산부(407)의 출력을 조합하여 제2 암호화 함수를 생성하는 제2 암호화 함수부(408), 제1 하위 우측 레지스터(R0)(402)의 비트열과 제2 암호화 함수부(408)의 출력을 Exclusive-or 연산하는 제2 배타적 논리합 연산부(409), 제2 배타적 논리합 연산부(409)의 출력과 외부에서 입력되는 암호화 키 K0를 조합하여 제3 암호화 함수를 생성하는 제3 암호화 함수부(410), 제1 하위 좌측 레지스터(L0)(401)의 비트열과 제3 암호화 함수부(410)의 출력을 Exclusive-or 연산하는 제3 배타적 논리합 연산부(411), 제1 상위 우측 레지스터(R1)(404)의 비트열과 제2 배타적 논리합 연산부(409)의 출력을 Exclusive-nor 연산하는 제2 배타적 논리 부정합 연산부(412), 제1 배타적 논리합 연산부(407)의 출력과 제3 배타적 논리합 연산부(411)의 출력을 Exclusive-nor 연산하는 제3 배타적 논리 부정합 연산부(413), 제2 배타적 논리합연산부(409)의 출력을 저장하는 제2 하위 좌측 레지스터(L2)(414), 제3 배타적 논리 부정합 연산부(413)의 출력을 저장하는 제2 하위 우측 레지스터(R2)(415), 제2 배타적 논리 부정합 연산부(412)의 출력을 저장하는 제2 상위 좌측 레지스터(L3)(416), 제1 배타적 논리합 연산부(407)의 출력을 저장하는 제2 상위 우측 레지스터(R3)(417), 제8 라운드까지의 암호화 처리에 의한 최종 하위 좌측 32 비트를 저장하는 제8 하위 좌측 레지스터(L14)(418), 제8 라운드까지의 암호화 처리에 의한 최종 하위 우측 32 비트를 저장하는 제8 하위 우측 레지스터(R14)(419), 제8 라운드까지의 암호화 처리에 의한 최종 상위 좌측 32 비트를 저장하는 제8 상위 좌측 레지스터(L15)(420), 제8 라운드까지의 암호화 처리에 의한 최종 상위 우측 32 비트를 저장하는 제8 상위 우측 레지스터(R15)(421), 제8 하위 우측 및 좌측 레지스터(418,419)와 제8 상위 우측 및 좌측 레지스터(420,421)을 순차적으로 배열하여 치환표에 의해 역치환하는 역치환부(422)로 구성된다.
도 5는 도 4에 도시된 시스템의 회로도이다.
이어서 도 4 및 도 5를 참조하여 본 발명을 상세히 설명한다.
Feistel 암호화 시스템은 r-라운드의 과정을 거치는 동안에 평문 2m 비트(L0,R0)에 대하여 암호문 m 비트 (Lr,Rr)를 생성하는 구조로 되어 있다.
여기에서 r≥1, For 1≤i≤r,
Li= Ri, Ri= Li-1EX-OR F(Ri-1, Ki)
본 발명은 입력에 대하여 초기 치환을 수행하고 128 비트들에 대하여 32 비트 4개의 데이터를 일반 DES와 같이 처리하도록 하였다. 그러므로 본 발명에서 제안한 방식은 기본 32 비트 처리를 이용하기 때문에 별도의 데이터 포맷이 필요 없고 초기 및 역 치환 수행 시에도 비도의 차이가 없어지게 된다. 또한 라운드 처리 시에도 16 라운드를 수행할 필요가 없이 단지 8회의 라운드로도 보안 기능을 수행할 수 있다.
치환부(400)는 입력되는 평문 128 비트를 미리 정해진 치환 표에 의해 치환한다. 치환이 완료된 128비트는 동시에 32 비트씩 4 등분된다. 제1 하위 좌측 레지스터(L0)(401)는 치환된 128 비트 중 하위 좌측 32 비트를 저장하고, 제1 하위 우측 레지스터(R0)(402)는 치환된 128 비트 중 하위 우측 32 비트를 저장한다. 제1 상위 좌측 레지스터(L1)(403)는 치환된 128 비트 중 상위 좌측 32 비트를 저장하고, 제1 상위 우측 레지스터(R1)(404)는 치환된 128 비트 중 상위 우측 32 비트를 저장한다. 제1 상위 우측 레지스터(R1)(404)에 저장된 비트열은 제2 배타적 논리 부정합 연산부(412)로 출력된다.
제1 하위 우측 및 좌측 레지스터(401,402)와 제1 상위 우측 및 좌측 레지스터(403,404)에 저장된 비트열은 외부에서 입력되는 암호화 키(각각 48 비트) K0과 K1와 연산하여 암호화 과정을 수행한다. 제1 배타적 논리 부정합 연산부(405)는 외부에서 입력되는 48 비트 암호화 키 K0과 K1를 Exclusive-nor 연산하여 제2 암호화 함수부(408)로 출력된다.
제1 암호화 함수부(406)는 제1 상위 우측 레지스터(R1)(404)의 비트열과 외부에서 입력되는 암호화 키 K1를 조합하여 제1 암호화 함수를 생성한다. 제1 상위 우측 레지스터(R1)(404)의 비트열은 도 3에 도시된 바와 같이 48비트로 확장되고 외부 키 48 비트 K1와 배타적 논리합 연산을 수행한다. 배타적 논리합 연산의 결과는 S-box로 입력되고, 6 비트씩 나누어져 처음 6 비트는 S-box의 S_1, 다음 6 비트는 S_2···순으로 입력되고 각 S_1,S_2,···S_8들은 각각 4 비트를 출력하게 되며 이 8×4=32 비트들은 치환부에서 치환표에 의해 치환한 후 32 비트를 출력한다.
제1 배타적 논리합 연산부(407)는 제1 암호화 함수부(406)의 출력과 제1 상위 좌측 레지스터(L1)(403)의 비트열을 Exclusive-or 연산한다. 제1 배타적 논리합 연산부(407)의 연산 결과는 제3 배타적 논리 부정합 연산부(413)와 제2 상위 우측 레지스터(R3)(417)로 출력된다.
제2 암호화 함수부(408)는 제1 배타적 논리 부정합 연산부(405)의 출력과 제1 배타적 논리합 연산부(407)의 출력을 조합하여 제2 암호화 함수를 생성한다. 제1 배타적 논리합 연산부(407)의 출력은 도 3에 도시된 바와 같이 48비트로 확장되고 제1 배타적 논리 부정합 연산부(405)의 출력인 외부 키 48 비트와 배타적 논리합 연산을 수행한다. 배타적 논리합 연산의 결과는 S-box로 입력되고, 6 비트씩 나누어져 처음 6 비트는 S-box의 S_1, 다음 6 비트는 S_2···순으로 입력되고 각 S_1,S_2,···S_8들은 각각 4 비트를 출력하게 되며 이 8×4=32 비트들은 치환부에서 치환표에 의해 치환한 후 32 비트를 출력한다.
제2 배타적 논리합 연산부(409)는 제1 하위 우측 레지스터(R0)(402)의 비트열과 제2 암호화 함수부(408)의 출력을 Exclusive-or 연산한다. 제2 배타적 논리합 연산부(409)의 연산 결과는 제2 배타적 논리 부정합 연산부(412)와 제2 하위 좌측 레지스터(L2)(414)로 출력된다.
제3 암호화 함수부(410)는 제2 배타적 논리합 연산부(409)의 출력과 외부에서 입력되는 암호화 키 K0를 조합하여 제3 암호화 함수를 생성한다. 제2 배타적 논리합 연산부(409)의 출력은 도 3에 도시된 바와 같이 48비트로 확장되고 제1 배타적 논리 부정합 연산부(405)의 출력인 외부 키 48 비트와 배타적 논리합 연산을 수행한다. 배타적 논리합 연산의 결과는 S-box로 입력되고, 6 비트씩 나누어져 처음 6 비트는 S-box의 S_1, 다음 6 비트는 S_2···순으로 입력되고 각 S_1,S_2,···S_8들은 각각 4 비트를 출력하게 되며 이 8×4=32 비트들은 치환부에서 치환표에 의해 치환한 후 32 비트를 출력한다.
제3 배타적 논리합 연산부(411)는 제1 하위 좌측 레지스터(L0)(401)의 비트열과 제3 암호화 함수부(410)의 출력을 Exclusive-or 연산한다. 제3 배타적 논리합 연산부(411)의 연산 결과는 제3 배타적 논리 부정합 연산부(413)로 출력된다.
제2 배타적 논리 부정합 연산부(412)는 제1 상위 우측 레지스터(R1)(404)의 비트열과 제2 배타적 논리합 연산부(409)의 출력을 Exclusive-nor 연산하여 제2 상위 좌측 레지스터(L3)(415)로 출력한다.
제3 배타적 논리 부정합 연산부(413)는 제1 배타적 논리합 연산부(407)의 출력과 제3 배타적 논리합 연산부(411)의 출력을 Exclusive-nor 연산하여 제2 하위 우측 레지스터(R2)로 출력한다.
제2 하위 좌측 레지스터(L2)(414)는 제2 배타적 논리합 연산부(409)의 출력을 저장하고, 제2 상위 우측 레지스터(R3)(417)는 제1 배타적 논리합 연산부(407)의 출력을 저장한다.
즉, 제2 하위 좌측 레지스터(L2)(414)는 제2 배타적 논리합 연산부(409)의 출력이, 제2 하위 우측 레지스터(R2)는 제3 배타적 논리 부정합 연산부(413)의 출력이, 제2 상위 좌측 레지스터(L3)(415)는 제2 배타적 논리 부정합 연산부(412)의 출력이, 제2 상위 우측 레지스터(R3)(417)는 제1 배타적 논리합 연산부(407)의 출력이 저장된다.
상기와 같은 진행과정을 8번 수행하게 되면, 제8 하위 좌측 레지스터(L14)(418)에는 제20 배타적 논리합 연산부(미도시)의 출력이 저장되고, 제8 하위 우측 레지스터(R14)(419)에는 제21 배타적 논리 부정합 연산부(미도시)의출력이 저장된다. 제8 상위 좌측 레지스터(L15)(420)에는 제20 배타적 논리 부정합 연산부(미도시)의 출력이 저장되고, 제8 상위 우측 레지스터(R15)(421)에는 제19 배타적 논리합 연산부(미도시)의 출력이 저장된다.
역치환부(422)는 제8 하위 좌측 레지스터(L14)(418), 제8 하위 우측 레지스터(R14)(419), 제8 상위 좌측 레지스터(L15)(420), 제8 상위 우측 레지스터(R15)(421)의 출력을 순차적으로 배열하여 치환 표에 의해 역치환한다. 역치환의 결과로 최종 출력은 암호화된 128 비트가 출력된다.
도 5에는 도 4를 구현한 회로도가 도시되어 있다. 치환(500)된 128 비트의 평문은 순차적으로 32 비트씩 4 개로 분리하여 각각 제1 하위 Feistel 수단(501), 제1 상위 Feistel 수단(502)에서 암호화 처리하고, 마지막으로 제8 하위 Feistel 수단(515), 제8 상위 Feistel 수단(516)에서 암호화 처리한 128 비트를 역 치환(517)하여 출력한다. 입력 값에 대한 초기 치환을 수행한 후 바로 32 비트씩 분할하여 동시에 f함수와의 계산을 수행하게 되고 1 라운드만을 수행하고 나서 바로 출력이 나타나게 된다. 그러므로 시스템 처리 시간 및 하드웨어 구현상의 문제를 용이하게 해결할 수 있게 된다.
본 발명은 상술한 실시 예에 한정되지 않으며 본 발명의 사상 내에서 당업자에 의한 변형이 가능함은 물론이다.
상술한 바와 같이 본 발명에 따르면, DES 시스템의 기본 구조인 Feistel 구조를 병렬 처리가 가능하도록 구성하여 비도를 유지하면서, 처리 시간을 감소시킬 수 있고, 기존 하드웨어 시스템의 라이브러리로써 가능하여 하드웨어 구현이 용이한 효과가 있다. 또한 Feistel 구조를 가지는 SEED와 같은 대칭형 암호화 시스템에 제안한 방식을 적용할 경우 지금 보다 더욱 우월한 보안 기능 및 고속의 처리 능력을 발휘하는 효과가 있다.

Claims (7)

  1. 제1 소정 단위로 순차적으로 인가되는 비트 열을 제2 소정 단위로 분할하여 각각 저장하는 분할 및 저장수단;
    상기 분할 및 저장수단에 각각 저장된 비트열과 외부로부터 인가되는 제1 및 제2 암호화키에 의해 암호화 함수를 생성하여 각각 저장된 비트열을 암호화 화는 암호화 수단; 및
    상기 암호화된 비트 열을 상기 제2 소정 단위로 재배열하는 재배열 수단을 포함하는 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템.
  2. 제 1항에 있어서, 상기 암호화 수단의 암호화 처리 및 재배열 수단의 재배열 처리는 소정 횟수 동안 순차적으로 수행되는 것을 특징으로 하는 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템.
  3. 제 1항에 있어서, 상기 분할 및 저장수단은
    소정 단위로 순차적으로 인가되는 비트열을 동일한 비트수로 4등분하여 하위 좌측 비트 군, 하위 우측 비트 군, 상위 좌측 비트 군, 상위 우측 비트군으로 각각 분류하여 저장하는 것을 특징으로 하는 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템.
  4. 제 1항에 있어서, 상기 암호화 수단은
    외부에서 인가되는 제1 암호화키와 상기 상위 우측 비트 군으로 저장되어 있는 비트들을 조합하여 제1 암호화 함수를 생성하는 제1 암호화 함수 생성수단;
    상기 제1 암호화 함수의 출력과 상기 상위 좌측 비트 군으로 저장되어 있는 비트들을 혼합한 결과와 상기 제1 암호화 키 및 외부에서 인가되는 제2 암호화키를 조합하여 생성된 제3 암호화키를 조합하여 제2 암호화 함수를 생성하는 제2 암호화 함수 생성수단; 및
    상기 제2 암호화 함수의 출력과 상기 하위 우측 비트군으로 저장되어 있는 비트들을 혼합한 결과와 상기 제2 암호화키를 조합하여 제3 암호화 함수를 생성하는 제3 암호화 생성수단을 포함하는 것을 특징으로 하는 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템.
  5. 제 3항에 있어서, 상기 제1 내지 제3 암호화 함수 생성 수단은
    상기 분할 및 저장 수단에 저장된 비트들을 소정 단위로 확장하는 확장 수단;
    상기 확장된 비트들과 상기 외부에서 인가되는 암호화키를 혼합한 결과를 순차적이고 동일한 비트 군으로 분류하여 소정의 비트 군으로 압축하여 출력하는 압축수단;
    상기 압축된 소정의 비트 군을 소정의 치환표에 의해 치환하여 출력하는 치환수단을 포함하는 것을 특징으로 하는 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템.
  6. 제 1항에 있어서, 상기 재배열 수단은
    상기 제2 암호화 함수의 출력과 상기 하위 우측 비트 군과 혼합한 결과를 다음 하위 좌측 비트 군으로 저장하는 제1 저장수단;
    상기 제3 암호화 함수의 출력과 상기 하위 좌측 비트 군으로 저장되어 있는 비트들을 혼합한 결과와 상기 제1 암호화 함수 및 상기 좌측 비트 군으로 저장되어 있는 비트들을 혼합한 결과를 조합하여 생성된 비트들을 다음 하위 우측 비트 군으로 저장하는 제2 저장수단;
    상기 제2 암호화 함수의 출력과 상기 하위 우측 비트 군으로 저장되어 있는 비트들을 혼합한 결과와 상기 상위 우측 비트 군으로 저장되어 있는 비트들을 조합하여 생성된 비트들을 다음 상위 좌측 비트 군으로 저장하는 제3 저장수단; 및
    상기 제1 암호화 함수의 출력과 상기 상위 좌측 비트 군으로 저장되어 있는 비트를 혼합한 결과를 다음 상위 우측 비트 군으로 저장하는 제4 저장수단을 포함하는 것을 특징으로 하는 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템.
  7. 제 6항에 있어서, 상기 재배열 수단은
    이후의 소정 횟수의 처리를 거치는 동안 상기 분류 및 저장수단으로 동작하는 것을 특징으로 하는 병렬 Feistel 구조를 가진 데이터 암호 표준화 시스템.
KR10-2000-0026684A 2000-05-18 2000-05-18 병렬 Feistel 구조를 가진 데이터 암호 표준화시스템 KR100380638B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0026684A KR100380638B1 (ko) 2000-05-18 2000-05-18 병렬 Feistel 구조를 가진 데이터 암호 표준화시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0026684A KR100380638B1 (ko) 2000-05-18 2000-05-18 병렬 Feistel 구조를 가진 데이터 암호 표준화시스템

Publications (2)

Publication Number Publication Date
KR20010105775A true KR20010105775A (ko) 2001-11-29
KR100380638B1 KR100380638B1 (ko) 2003-04-16

Family

ID=19669072

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0026684A KR100380638B1 (ko) 2000-05-18 2000-05-18 병렬 Feistel 구조를 가진 데이터 암호 표준화시스템

Country Status (1)

Country Link
KR (1) KR100380638B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100390821B1 (ko) * 2000-05-31 2003-07-12 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL9200296A (nl) * 1992-02-18 1993-09-16 Tulip Computers International Inrichting voor het door middel van het des algoritme vercijferen en ontcijferen van data naar en van een harde geheugenschijf.
US5317638A (en) * 1992-07-17 1994-05-31 International Business Machines Corporation Performance enhancement for ANSI X3.92 data encryption algorithm standard
KR100186442B1 (ko) * 1996-10-16 1999-05-15 구자홍 확장된 페이스텔 네트워크의 암호화 방법
KR100309565B1 (ko) * 1998-09-25 2001-12-17 김용만 파이스텔네트워크를이용한데이터암호화방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100390821B1 (ko) * 2000-05-31 2003-07-12 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치

Also Published As

Publication number Publication date
KR100380638B1 (ko) 2003-04-16

Similar Documents

Publication Publication Date Title
KR100296958B1 (ko) 블록 데이터 암호화 장치
Biham New types of cryptanalytic attacks using related keys
US5623548A (en) Transformation pattern generating device and encryption function device
US3958081A (en) Block cipher system for data security
US3962539A (en) Product block cipher system for data security
EP0725511B1 (en) Method for data encryption/decryption using cipher block chaining (CBC) and message authentication codes (MAC)
US5745577A (en) Symmetric cryptographic system for data encryption
US5351299A (en) Apparatus and method for data encryption with block selection keys and data encryption keys
US6578150B2 (en) Block cipher method
KR100435052B1 (ko) 암호화장치
US7672455B2 (en) Method and apparatus for data encryption
US20070255941A1 (en) Method and system for securing data utilizing reconfigurable logic
AU773982B2 (en) Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals
GB2367462A (en) Key scheduler for Data Encryption Standard (DES)
Masoodi et al. Symmetric algorithms I
US6108421A (en) Method and apparatus for data encryption
Miroshnik et al. Uses of programmable logic integrated circuits for implementations of data encryption standard and its experimental linear cryptanalysis
Blaze et al. The MacGuffin block cipher algorithm
EP1016240A1 (en) Improved block cipher method
JPH0697930A (ja) ブロック暗号処理装置
KR20190037980A (ko) 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템
KR100380638B1 (ko) 병렬 Feistel 구조를 가진 데이터 암호 표준화시스템
Golić DeKaRT: A new paradigm for key-dependent reversible circuits
CN110247754B (zh) 一种分组密码fbc的实现方法及装置
JPH1185018A (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
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee