KR100377173B1 - 데이터 암호화 표준 알고리즘을 이용한 암호화 장치 - Google Patents

데이터 암호화 표준 알고리즘을 이용한 암호화 장치 Download PDF

Info

Publication number
KR100377173B1
KR100377173B1 KR10-2000-0028311A KR20000028311A KR100377173B1 KR 100377173 B1 KR100377173 B1 KR 100377173B1 KR 20000028311 A KR20000028311 A KR 20000028311A KR 100377173 B1 KR100377173 B1 KR 100377173B1
Authority
KR
South Korea
Prior art keywords
data
register
product
initial substitution
transformation
Prior art date
Application number
KR10-2000-0028311A
Other languages
English (en)
Other versions
KR20010107089A (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-0028311A priority Critical patent/KR100377173B1/ko
Priority to JP2001157940A priority patent/JP2002032016A/ja
Priority to TW094200474U priority patent/TWM271314U/zh
Publication of KR20010107089A publication Critical patent/KR20010107089A/ko
Application granted granted Critical
Publication of KR100377173B1 publication Critical patent/KR100377173B1/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
    • 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
    • H04L2209/122Hardware reduction or efficient architectures
    • 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
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 데이터 암호화 장치의 데이터 표준 암호화 알고리즘을 이용한 암호화 장치에 관한 것으로, 암호화 장치는 적어도 하나의 N비트(N은 짝수인 자연수)의 평문 데이터 블록의 초기 치환을 수행하여 초기치환된 데이터를 이등분하여 적어도 하나의 제1 및 제2 초기치환 데이터를 출력하기 위한 초기 치환 수단; 상기 제1 및 제2 초기치환 데이터를 수신하여 상기 제1 및 제2 초기치환 데이터의 i라운드(i는 자연수)의 곱변형을 수행하여 i라운드 곱변형된 데이터를 출력하기 위한 변형부; 및 상기 i라운드 곱변형된 데이터를 수신하여 역초기치환을 수행하기 위한 역초기 치환 수단을 포함하고, 상기 변형부는 적어도 하나의 곱변형부를 포함한다. 본 발명에 따른 암호화 장치는 중간 변수를 중복하여 저장하는 레지스터를 제거하여 집적화 시에 칩에서 차지하는 면적을 줄이고 중간변수를 레지스터에 저장시키는 클럭 사이클을 줄임으로써 전체 16라운드를 계산하는데 걸리는 클럭 사이클을 8.5 클럭 사이클로 줄여서 전력 소모를 최소화하며 파이프라인 구조로 되어 있으므로 처리능력비(Throughput)를 향상시키는 효과가 있다.

Description

데이터 암호화 표준 알고리즘을 이용한 암호화 장치{Encryption device using data encryption standard algorithm}
본 발명은 암호화 방법 및 장치에 관한 것으로, 특히 데이터 암호화 표준 알고리즘을 이용한 암호화 장치에 관한 것이다.
일반적으로 데이터 암호화 표준(DES : Data Encryption Standard, 이하 DES라 칭함) 알고리즘은 가장 널리 쓰이고 있는 암호화 방식으로 네트워킹 사용이 증가함에 따라 그 중요성을 더해 가고 있다. 특히, 보안 인터넷 응용이나 원격 접근 서버나 케이블 모뎀과 위성용 모뎀 등의 분야에서 많이 이용되고 있다.
DES는 기본적으로 64비트 블럭의 입력 및 출력을 가지는 64비트 블럭 암호(bloch cipher)이며, 64비트의 키 블럭(key block) 중 56비트가 암호화 및 복호화에 사용되고, 나머지 8비트는 패리티(parity) 검사용으로 사용된다. 즉, 64비트의 평문(Plain Text) 블럭과 56비트의 키(Key)를 입력으로 해서 64비트의 암호문(Cipher Text) 블럭을 출력하는 암호화 방식이다.
DES를 실현시키는 중요한 기법은 치환(P-Box), 대치(S-Box) 그리고 보조키(Subkey)를 발생시키는 키 스케쥴 등이 있다.
데이터 암호화부의 내부는 16라운드의 반복연산을 수행하는 형태로 되어 있고 입력부의 초기 치환(IP)과 출력부의 역초기 치환(IP-1)으로 구성되어 있다.
도1은 종래기술의 DES 알고리즘을 설명하기 위한 블럭도이다.
도1을 참조하면, 종래기술에 따른 암호화 장치의 알고리즘은 먼저 64비트의 평문(Plain Text) 블럭을 초기 치환(IP : Initial Permutation)을 수행하는 초기치환부(110)와, 다음에 치환부(110)의 64비트의 블럭을 두개의 32비트 블럭으로 나누어 왼쪽 레지스터(L0)와 오른쪽 레지스터(R0)에 저장하고 사이퍼(Cipher) 함수 f로 수행되는 16라운드의 곱 변형(Product Transformation)과 왼쪽 레지스터(Li)와 오른쪽 레지스터(Ri)를 매 라운드마다 교환하여 16라운드의 블록 변형(Block Transformation)을 수행하는 변형부(120)와, 16라운드에 걸친 변형이 끝난 후 역초기 치환(IP-1)을 거쳐서 암호화된 암호문(Cipher Text)을 출력하는 역초기치환부(130)로 구성되어 있다.
변형부(120)에서의 곱 변형은 초기치환부(110)에서 나뉘어진 32비트의 블럭 중에서 오른쪽 레지스터(Ri)에 저장된 데이터를 키 스케쥴러(Key Scheduler)에 의해서 생성된 보조키(Subkey) Ki와 함께 입력시켜서 암호화 연산을 수행하는 사이퍼 함수부(f)(121)와, 상기 사이퍼 함수 f의 결과를 왼쪽 레지스터(Li)와 함께 배타적 논리합하는 배타적 논리합 연산부(122)로 구성되어 있다.
배타적 논리합 연산부(122)의 32비트의 데이터는 다음 라운드의 연산을 위해 오른쪽 레지스터(Ri+1)에 저장되고 오른쪽 레지스터(Ri)에 저장된 32비트의 데이터는 다음 라운드의 왼쪽 레지스터(Li+1)에 교환(Swapping)되어 저장된다. 이러한 1라운드의 연산이 반복되어 16라운드가 수행되는 것이다.
초기치환부(110)를 거친 64비트의 평문(Plain Text) 블럭을 둘로 나누어 왼쪽 레지스터(L0)와 오른쪽 레지스터(R0)에 입력하면 16회의 각 라운드는 다음 수학식1과 수학식2로 표현가능하다.
Li = Ri-1 i=1,2,......16
f(Ri-1, Ki) i=1,2,......16
도2는 보조키(Subkey)를 발생하는 키 스케쥴러(Key Scheduler)을 설명하기 위한 블럭도이다.
도2를 참조하면, 키 스케쥴러는 56비트의 키(Key)를 입력받아서 치환하는 치환선택부(PC1 : Permutation Choice 1)(200)와, 치환선택부(200)에 의해서 치환된 56비트의 블럭을 28비트의 두 블럭으로 나누어서 변수 C0와 D0에 저장한 후 16라운드의 곱변형 연산 중 사이퍼 함수의 연산에 필요한 48비트의 보조키를 생성하기 위해 왼쪽 레지스터 Ci(211)과 오른쪽 레지스터 Di(212)에 저장된 데이터를 (i=0 내지 15) 왼쪽쉬프터(213, 214)에 의해서 한자리 또는 두자리씩 왼쪽으로 쉬프트하여 다음 라운드의 왼쪽변수 Ci+1과 오른쪽변수 Di+1에 저장하는 기본 연산부(210) 및 각 라운드마다 상기의 쉬프트된 왼쪽 레지스터 Ci및 오른쪽 레지스터 Di로부터 28비트의 블럭 데이터를 입력받아서 48비트의 보조키(Subkey) Ki를 출력하는 치환선택부(PC2 : Permutation Choice 2)(220)로 구성된다.
16라운드 동안 Ci와 Di는 28자리 수만큼 쉬프트가 되어 C0와 C16그리고 D0와 D16은 서로 같은 데이터가 된다.
도3은 일반적인 DES 코아 아키텍쳐의 블럭도이다.
도3을 참조하면, 사이퍼 함수 f는 오른쪽레지스터에 저장된 32비트의 입력(R(i-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비트의 블럭(L(i-1))과 배타적논리합되어 다음 라운드의 오른쪽레지스터에 R(i)로 저장된다. 한편, 오른쪽레지스터에 저장되어 있던 32비트의 블럭(R(i-1))은 다음 라운드의 왼쪽 레지스터에 L(i)로 저장된다.
도4는 도3에 도시된 S-Box 치환부(320)에 대한 상세한 블럭도이다.
도4를 참조하면, S-Box 치환부(320)는 48비트의 입력을 받아서 32비트의 출력을 생성하는 8 개의 S-Box로 구성되어 있다. 즉, 48비트의 데이터는 8 개의 6비트 데이터로 분할되어 8 개의 S-Box에 입력된다. 이 8 개의 S-Box들은 8 개의 4비트 출력을 내보냄으로써 48 비트를 32비트로 줄인다. S-Box 치환부(320)는 테이블 룩-업(Look-up) 방식으로 대치됨으로써 프로그램가증 논리 어레이(PLA)나 롬(ROM)과 같은 기억장치를 필요로 한다. 6비트의 입력에 대하여 4비트를 출력하기 때문에 각 S-Box는 64 × 4 의 기억 용량이 필요하며 전체적으로 8개의 S-Box로 구성되어 있으므로 8 × 64 × 4의 기억장치가 필요하다. 따라서 전체적으로 칩에서 차지하는 면적이 상대적으로 크다
이상에서 살펴본 종래의 암호화 장치는 상기 변형부(120)에서 곱변형을 수행할 때 오른쪽레지스터에 저장된 32비트의 데이터 블럭을 교환(Swapping)하여 왼쪽레지스터에 저장하므로써 평문을 DES 암호화할 때 항상 16 클럭 사이클이 걸리는 문제점이 발생한다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 것으로써, 집적화 시에 칩에서 차지하는 면적을 줄이고, 전력소모를 최소화하여 처리능력비(Throughput)를 향상시킨 암호화 장치를 제공하는데 그 목적이 있다.
도1은 종래기술인 DES 알고리즘을 설명하기 위한 블럭도,
도2는 보조키(Subkey)를 발생하는 키 스케쥴러(Key Scheduler)을 설명하기 위한 블럭도,
도3은 일반적인 DES 코아 아키텍쳐의 블럭도,
도4는 도3에 도시된 S-Box 치환부(320)에 대한 상세한 블럭도,
도5는 교환(Swapping)되는 데이터 경로를 제거한 DES 알고리즘의 블럭도,
도6은 DES 알고리즘의 중간 계산 결과들을 도시한 도면,
도7은 본 발명의 일실시예에 따른 암호화 장치의 블럭도,
도8은 본 발명의 DES 알고리즘의 동작 순서를 나타내는 타이밍도,
도9는 본 발명의 DES 알고리즘의 파이프라인 동작 순서를 나타내는 타이밍도,
도10은 본 발명의 다른 실시예에 따른 암호화 장치의 블럭도,
도11은 도10에 도시된 DES 알고리즘의 파이프라인 동작 순서를 나타내는 타이밍도.
* 도면의 주요 부분에 대한 부호의 설명 *
710 : 제1왼쪽레지스터 720 : 제1오른쪽레지스터
730 : 제2왼쪽레지스터 740 : 제2오른쪽레지스터
750 내지 753 : 사이퍼 함수 f 760 내지 763 : 배타적 논리합 연산부
상기 목적을 달성하기 위하여 본 발명의 암호화 장치는, 적어도 하나의 N비트(N은 짝수인 자연수)의 평문 데이터 블록의 초기 치환을 수행하여 초기치환된 데이터를 이등분하여 적어도 하나의 제1 및 제2 초기치환 데이터를 출력하기 위한 초기 치환 수단; 상기 제1 및 제2 초기치환 데이터를 수신하여 상기 제1 및 제2 초기치환 데이터의 i라운드(i는 자연수)의 곱변형을 수행하여 i라운드 곱변형된 데이터를 출력하기 위한 변형부; 및 상기 i라운드 곱변형된 데이터를 수신하여 역초기치환을 수행하기 위한 역초기 치환 수단을 포함하고, 상기 변형부는 적어도 하나의 곱변형부를 포함하되, 상기 곱변형부는, 상기 제1 초기치환 데이터를 저장하기 위한 적어도 하나의 왼쪽 레지스터; 상기 제2 초기치환 데이터를 저장하기 위한 적어도 하나의 오른쪽 레지스터; 상기 오른쪽 레지스터에 저장된 데이터의 곱변형을 수행하여 제1 클럭에 따라 상기 왼쪽 레지스터에 저장하기 위한 적어도 하나의 제1 곱변형 수단; 및 상기 왼쪽 레지스터에 저장된 데이터의 곱변형을 수행하여 상기 제1 클럭의 반전 신호인 제2 클럭에 따라 상기 오른쪽 레지스터에 저장하기 위한 적어도 하나의 제2 곱변형 수단을 포함한다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 설명하기로 한다.
도5는 교환(Swapping)되는 데이터 경로를 제거한 DES 알고리즘의 블럭도이다.
도5를 참조하면, 본 발명의 DES 알고리즘 구현 방식은 먼저 64비트의 평문 블럭을 초기 치환에 의해 치환을 수행하는 초기치환부(500)와, 다음에 초기 치환부(500)에서 출력된 64비트의 데이터 블럭을 두개의 32비트 블럭으로 나누어 왼쪽 레지스터(L0)와 오른쪽 레지스터(R0)에 저장하고 사이퍼 함수 f로 수행되는 16라운드의 곱 변형과 왼쪽 레지스터(Li)와 오른쪽 레지스터(Ri)를 다음 라운드의 왼쪽 레지스터(Li+1)와 오른쪽 레지스터(Ri+1)에 저장하기 위한 블록 변형을 수행하는 변형부(510)와, 16라운드에 걸친 변형이 끝난 후 역초기 치환(IP-1)을 거쳐서 암호화된 암호문을 출력하는 역초기치환부(520)를 포함한다.
변형부(510)에서의 곱 변형은 상기 초기치환부(500)에서 나뉘어진 32비트의 블럭 중에서 오른쪽 레지스터(Ri)에 저장된 데이터를 키 스케쥴러에 의해서 생성된 보조키 Ki와 함께 입력시켜서 암호화 연산을 수행하는 사이퍼 함수부(f)(511)와, 사이퍼 함수 f의 결과를 왼쪽 레지스터(Li)와 함께 배타적 논리합하는 배타적 논리합 연산부(512)로 구성되어 있다.
기존의 DES 알고리즘의 블럭도에서 교환되는 데이터 경로를 제거하면 도5와 같이 된다. 즉 홀수번의 라운드에서 왼쪽 레지스터(Li)와 오른쪽 레지스터(Ri)의 위치를 서로 바꾸고 이에 상응하는 데이터 경로의 방향(사이퍼 함수 f와 배타적 논리합 연산부의 방향)을 변경하면 서로 교차되는 데이터 경로가 없어진다. 도5에서 왼쪽 레지스터(Li)(i=1,2....16)의 값들을 주목하면 이전 라운드의 오른쪽 레지스터(Ri-1) 값과 동일함을 알 수 있다.
도6은 DES 알고리즘의 중간 계산 결과들을 도시한 도면이다.
도6을 참조하면, 왼쪽 및 오른쪽 레지스터의 초기 값(L0, R0)을 시작으로 해서 사이퍼함수 f(511)와 배타적 논리합 연산부(512)를 거친 계산 값들이 도시되어 있다. 도시된 바와 같이 DES가 계산하는 값들은 L1, L2.... L16과 R1, R2.... R16인데 Li= Ri-1이므로 주어진 L0와 R0로부터 DES 코아가 실질적으로 새로 계산하는 값들은 R1, R2.... R16임을 알 수 있다. 최종 결과는 L16과 R16으로써 R15와 R16을 출력하면 된다.
상기 수학식1을 수학식2에 대입하고 Ri-1= Li임을 가정하면 DES 코아의 계산과정을 다음 수학식3으로 나타낼 수 있다.
f( Ri-1, Ki ) i=1,2....16, Ri-1 = Li
도7은 본 발명의 DES 알고리즘의 4개 라운드를 구현한 블럭도이다.
상기 도7을 참조하면, 본 발명의 DES 알고리즘은 초기 치환부를 거친 64비트의 평문 블럭이 32비트의 두 블럭으로 나뉘어진 것 중의 하나인 a0블럭을 제1클럭(CLK1)을 사용하여 제1왼쪽레지스터(A0)(710)에 저장한 후 나머지 다른 bo블럭을 제2클럭(CLK2)를 사용하여 제1오른쪽레지스터(B0)(720)에 저장한 후, 키 스케쥴러로부터 생성된 보조키(K(i))를 입력받아 제1오른쪽레지스터(B0)(720)로부터의 32비트의 데이터를 사이퍼 함수 f(750)에 의해서 암호화 변형하며, 사이퍼 함수 f에 의해 변형된 32비트의 데이터를 제1왼쪽레지스터(A0)(710)의 32비트와 배타적 논리합 연산부(760)에서 배타적 논리합 연산을 수행한다. 또한, 배타적 논리합 연산부(760)의 32비트 데이터를 제1클럭(CLK1)을 사용하여 제2왼쪽레지스터(A1)(730)에 저장하고, 보조키(K(i+1))를 입력받아 상기 제2왼쪽레지스터(A1)(730)에저장되어 있는 32비트의 데이터를 사이퍼 함수 f(751)를 통하여 변형하며, 변형된 32비트의 데이터를 상기 제1오른쪽레지스터(B0)(720)의 32비트와 배타적 논리합 연산부(761)에서 배타적 논리합 연산을 수행한다. 이와 같은 2 개의 라운드가 반복되어 4개의 라운드가 구성되고 마지막 라운드의 제1왼쪽레지스터(A0)(710)의 32비트가 상기 32비트의 블럭 b15가 되며 마지막 라운드의 배타적 논리합 연산부(763)에서 출력된 32비트가 상기 32비트의 블럭 b16이 된다.
제2클럭(CLK2)은 제1클럭(CLK1)을 반전시킨 것으로 제1클럭(CLK1) 주기의 반만큼 지연시킨 것으로 볼 수 있다. 제1클럭(CLK1)이 상승할 때 왼쪽레지스터 A0와 A1에 새로운 값이 저장되고 제1클럭(CLK1)이 하강할 때 오른쪽레지스터 B0와 B1에 새로운 값이 저장된다.
도8은 본 발명에 따른 DES 알고리즘의 동작 순서를 나타내는 타이밍도이다.
도8을 참조하면, 32비트의 블럭 a0와 b0는 초기 치환을 거친 64비트의 평문 블럭이 32비트의 두블럭으로 나뉘어진 것이고, 32비트의 블럭 a0는 왼쪽 레지스터(L0)가 되며 32비트의 블럭 b0는 오른쪽 레지스터(R0)가 된다. 그리고 DES 코아가 계산하는 값을 b1, b2....b16(bi=Ri)라고 하고 키 스케쥴러가 주기적으로 보조키 Ki를 사이퍼 함수 f에 입력해 주도록 제어기를 만들면 32비트 블럭 bi의 값을 계산하는 과정은 다음과 같다.
먼저 t0와 t1에서 a0와 b0값이 레지스터 A0와 B0에 제1클럭(CLK1)과 제2클럭(CLK2)에 의해서 각각 저장된다. t1에서부터 b1값(b1= a0 f(b0,K1))을 계산하기 시작해서 t2에서 계산된 값을 레지스터 A1에 저장한다. 이 때 레지스터 A0에 입력된 값 a0는 t2까지만 유지가 되면 t1-t2구간에서 b1값을 계산하는데 사용할 수 있다. 이 것은 서로 반전된 제1클럭(CLK1)과 제2클럭(CLK2)에 의해서 레지스터 A1과 B0가 새로운 값을 저장하기 때문에 해결할 수 있다. 즉, 레지스터 A1이 새로운 데이터를 저장할 수 있는 시간은 t0, t2, t4....이고 레지스터 B0에 새로운 데이터가 입력되는 시간은 t1, t3, t5....이다. 마찬가지로 t1에서 레지스터 B0에 저장된 값 b0와 t2에서 레지스터 A1에 저장된 값 b1이 t2-t3구간에서 유지되기 때문에 t3에서 레지스터 B1에 상기 제2클럭(CLK2)을 사용하여 계산된 b2값(b2= b0 f(b1, K2)을 저장할 수 있다. 이와 같은 방식으로 상기 제1클럭(CLK1)이 상승할 때 t4, t8, t12, t16에서 계산된 b3, b7, b11, b15값이 레지스터 A0에 저장되고 t6, t10, t14에서 새로운 b5, b9, b13의 값이 레지스터 A1에 저장된다. 또한 상기 제2클럭(CLK2)이 상승할 때 레지스터 B0에는 b4, b8, b12, b16값이 t5, t9, t13, t17에서 저장되며, 레지스터 B1에는 b6, b10, b14의 값이 t7, t11, t15에서 저장된다.
일반적으로 DES 코아는 16라운드의 연산을 반복 수행하기 때문에 16클럭 사이클이 걸리나, 본 발명에서는 두개의 클럭을 사용하여 레지스터에 저장하므로 t0에서 a0가 저장되기 시작해서 b16이 계산되어 출력하기까지 8.5클럭 사이클이 걸린다.
사이퍼 함수 f는 롬(ROM)이나 프로그램가증 논리 어레이(PLA)와 같은 기억 장치로 구현된 대치(S-Box)를 필요로 한다. 도8에서와 같이 한 개의 평문을 암호화할 경우 본 발명에서 사용된 사이퍼 함수 f는 t1-t2, t2-t3, t3-t4.... 구간에서 한번씩 엑세스(Access)가 가능하면 된다. 따라서 면적을 크게 차지하는 8 개의 S-Box들을 복수 개로 구현할 필요 없이 한 개 씩만으로 구현 가능하다. 단지 확장 치환과 P-Box 치환을 구현하기 위한 결선과 각 라운드마다 생성된 보조키와 배타적 논리합하기 위한 배타적 논리합 연산 게이트 들만 추가로 필요로 한다. 또한 본 발명은 32비트의 왼쪽변수(Li)를 저장하는데 필요한 왼쪽레지스터를 사용하지 않아 면적 증가를 최소로 하였다.
일반적으로 주어진 키(Key)에 대하여 암호화 또는 해독화해야 될 입력 데이터가 한 개 이상인 경우가 많다. 예를 들어 MCNS 케이블 모뎀에서 사용되는 암호화 방식은 맥 프레임(MAC Frame) 단위로 암호화를 수행하기 때문에 최대 1,518 바이트의 평문 블럭들을 동일한 키(Key)로 암호화를 수행하여야 한다. 즉 동일한 키 스케쥴러로써 다수의 평문 블럭들에 대해서 16라운드의 DES 코아 기능을 수행해야만 한다. 이 때 본 발명이 가지고 있는 파이프라인 구조를 이용하여 처리능력비를 증가시킬 수 있다.
도9는 본 발명의 DES 알고리즘의 파이프라인 동작 순서를 나타내는 타이밍도이다.
도9를 참조하면, 본 발명의 파이프라인 동작을 나타내는 타이밍도는 파이프라인 구조를 이용하여 두개의 평문 블럭들을 8.5클럭 사이클동안 동시에 처리할 수 있음을 보여준다. 또한 도8에서 비어 있는 부분에 새로운 평문 블럭 c0와 d0를 t2와 t3에서 레지스터 A0와 B0에 입력함으로써 평문 블럭 bi값들을 계산하는 동안 평문 블럭 di값들을 계산할 수 있음을 보여준다. 이 때 t0-t1, t1-t2, t2-t3.... 구간마다 새로운 평문 블럭 bi와 di값을 암호화 하기위해 사이퍼 함수 f가 두 개씩 동시에 수행된다. 따라서 사이퍼 함수를 구성하는 S-Box들은 한 개씩 추가로 구현할 필요가 있다. 그리고 주어진 8.5클럭 사이클 동안 처리할 수 있는 평문 블럭의 수는 두배로 증가시킬 수 있다.
도10은 본 발명의 다른 실시예에 따른 암호화 장치의 블럭도이다.
도10을 참조하면, 도7에서 4개의 라운드로 구성된 4 단의 파이프라인 구조 두개를 직렬로 연결하여 파이프라인 스테이지 수를 4에서 8로 증가시켰다. 이 구조는 하나의 평문 블럭을 처리하는데 도7의 구조와 동일하게 8.5클럭 사이클이 걸리지만 동시에 처리할 수 있는 평문 블럭의 수가 두개에서 네개로 증가하여 처리능력비가 두 배로 증가되었다.
도11은 도10에 도시된 DES 알고리즘의 파이프라인 동작 순서를 나타내는 타이밍도이다.
도11을 참조하면, 평문 블럭 (a0,b0), (C0, d0), (e0, f0), (g0, h0)을 동시에 계산할 수 있음을 알 수 있다. 이 때 필요한 S-Box의 갯 수는 네 개씩이며 4 포트 S-Box 치환부로 구현하면 면적을 줄일 수 있다. 본 발명의 또 다른 실시예로써 도7에 도시된 암호화 장치를 직렬로 8 개를 연결하여 파이프라인 스테이지 수를 16까지 증가시킬 수 있으며 동시에 처리되는 평문 블럭의 수도 8 개이므로 처리능력비를 8로 증가시킬 수 있다. 역시 한 개의 평문 블럭을 처리하는데 소요되는 시간은 8.5클럭 사이클이며 8 포트 S-Box 치환부로 구현하면 면적을 줄일 수 있다. 본 발명에서 파이프라인 구조를 전혀 쓰지 않을 때에는 도7에서 A0와 B0의 두 개의 레지스터만 사용하면 된다. 이 때에도 한 개의 평문 블럭을 처리하는데 소요되는 시간은 8.5클럭 사이클이다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
상기와 같이 본 발명은 교차(Swapping)되는 데이터 경로를 제거한 본 발명은 중간 변수를 중복하여 저장하지 않음으로써 필요한 레지스터의 수를 최소화하여 면적을 줄일 수 있으며 서로 반전된 두 개의 클럭을 사용함으로써 DES 코아를 계산하는데 소요되는 시간을 16 클럭 사이클에서 8.5클럭 사이클로 줄여서 전력 소모를 최소화할 수 있다. 그리고 파이프라인 구조를 사용하여 한 번에 처리할 수 있는 평문 블럭의 수를 증가시켜 처리능력을 증가시킬 수 있는 효과가 있다.

Claims (8)

  1. 적어도 하나의 N비트(N은 짝수인 자연수)의 평문 데이터 블록의 초기 치환을 수행하여 초기치환된 데이터를 이등분하여 적어도 하나의 제1 및 제2 초기치환 데이터를 출력하기 위한 초기 치환 수단;
    상기 제1 및 제2 초기치환 데이터를 수신하여 상기 제1 및 제2 초기치환 데이터의 i라운드(i는 자연수)의 곱변형을 수행하여 i라운드 곱변형된 데이터를 출력하기 위한 변형부; 및
    상기 i라운드 곱변형된 데이터를 수신하여 역초기치환을 수행하기 위한 역초기 치환 수단
    을 포함하고,
    상기 변형부는 적어도 하나의 곱변형부를 포함하되, 상기 곱변형부는,
    상기 제1 초기치환 데이터를 저장하기 위한 적어도 하나의 왼쪽 레지스터;
    상기 제2 초기치환 데이터를 저장하기 위한 적어도 하나의 오른쪽 레지스터;
    상기 오른쪽 레지스터에 저장된 데이터의 곱변형을 수행하여 제1 클럭에 따라 상기 왼쪽 레지스터에 저장하기 위한 적어도 하나의 제1 곱변형 수단; 및
    상기 왼쪽 레지스터에 저장된 데이터의 곱변형을 수행하여 상기 제1 클럭의 반전신호인 제2 클럭에 따라 상기 오른쪽 레지스터에 저장하기 위한 적어도 하나의 제2 곱변형 수단
    을 포함하는 암호화 장치.
  2. 제1항에 있어서,
    상기 변형부는,
    상기 제1 초기치환 데이터와 상기 제1 곱변형 수단으로부터 출력된 곱변형 데이터중 하나를 상기 왼쪽 레지스터로 출력하기 위한 역다중화수단; 및
    상기 제2 초기치환 데이터와 상기 제2 곱변형 수단으로부터 출력된 곱변형 데이터중 하나를 상기 왼쪽 레지스터로 출력하기 위한 역다중화수단
    을 더 포함하는 암호화 장치.
  3. 제2항에 있어서,
    상기 제1 곱변형 수단은,
    제1 보조키를 이용하여 상기 오른쪽 레지스터에 저장된 데이터의 암호화 연산을 수행하기 위한 제1 암호화 연산부; 및
    상기 제1 암호화 연산부로부터 출력된 데이터와 상기 왼쪽 레지스터에 저장된 데이터의 배타적 논리합 연산을 수행하여 상기 왼쪽 레지스터로 출력하기 위한 제1 배타적 논리합 연산부
    를 포함하고,
    상기 제2 곱변형 수단은,
    제2 보조키를 이용하여 상기 왼쪽 레지스터에 저장된 데이터의 암호화 연산을 수행하기 위한 제2 암호화 연산부; 및
    상기 제2 암호화 연산부로부터 출력된 데이터와 상기 오른쪽 레지스터에 저장된 데이터의 배타적 논리합 연산을 수행하여 상기 오른쪽 레지스터로 출력하기 위한 제2 배타적 논리합 연산부
    를 포함하는 암호화 장치.
  4. 제3항에 있어서,
    상기 변형부는 두 개의 곱변형부를 포함하는 것을 특징으로 하는 암호화 장치.
  5. 제3항에 있어서,
    상기 변형부는 네 개의 곱변형부를 포함하는 것을 특징으로 하는 암호화 장 치.
  6. 제3항에 있어서,
    상기 변형부는 i/2 개의 곱변형부를 포함하는 것을 특징으로 하는 암호화 장치.
  7. 삭제
  8. 제6항에 있어서,
    상기 곱변형 결과는,
    Ri = Ri-2 f(Ri-1, Ki) 으로 표현되고,
    여기서, Ri는 상기 오른쪽 레지스터에 저장된 i 라운드 곱변형된 데이터, i=1,2,...,16, R-1 = L0는 배타적 논리합 연산을 의미하는 것을 특징으로 하는 암호화 장치.
KR10-2000-0028311A 2000-05-25 2000-05-25 데이터 암호화 표준 알고리즘을 이용한 암호화 장치 KR100377173B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR10-2000-0028311A KR100377173B1 (ko) 2000-05-25 2000-05-25 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
JP2001157940A JP2002032016A (ja) 2000-05-25 2001-05-25 データ暗号化標準アルゴリズムを利用した暗号化装置
TW094200474U TWM271314U (en) 2000-05-25 2001-05-29 Encoding device using data encryption standard algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0028311A KR100377173B1 (ko) 2000-05-25 2000-05-25 데이터 암호화 표준 알고리즘을 이용한 암호화 장치

Publications (2)

Publication Number Publication Date
KR20010107089A KR20010107089A (ko) 2001-12-07
KR100377173B1 true KR100377173B1 (ko) 2003-03-26

Family

ID=36675821

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0028311A KR100377173B1 (ko) 2000-05-25 2000-05-25 데이터 암호화 표준 알고리즘을 이용한 암호화 장치

Country Status (3)

Country Link
JP (1) JP2002032016A (ko)
KR (1) KR100377173B1 (ko)
TW (1) TWM271314U (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100384873B1 (ko) * 2000-05-26 2003-05-22 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
US7752676B2 (en) * 2006-04-18 2010-07-06 International Business Machines Corporation Encryption of data in storage systems

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0502712A2 (en) * 1991-03-05 1992-09-09 Canon Kabushiki Kaisha Calculating apparatus and method of encrypting/decrypting communication data by using the same
US5161193A (en) * 1990-06-29 1992-11-03 Digital Equipment Corporation Pipelined cryptography processor and method for its use in communication networks
JPH0697930A (ja) * 1992-02-20 1994-04-08 Fujitsu F I P Kk ブロック暗号処理装置
US5825886A (en) * 1995-12-08 1998-10-20 Entrust Technologies Ltd. Construction symmetric ciphers using the cast design procedure
JPH1185018A (ja) * 1997-09-12 1999-03-30 Toshiba Corp 暗号処理用半導体集積回路及び暗号アルゴリズム変更方法
KR20000021130A (ko) * 1998-09-25 2000-04-15 김용만 대칭키 블록 암호 알고리즘

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5161193A (en) * 1990-06-29 1992-11-03 Digital Equipment Corporation Pipelined cryptography processor and method for its use in communication networks
EP0502712A2 (en) * 1991-03-05 1992-09-09 Canon Kabushiki Kaisha Calculating apparatus and method of encrypting/decrypting communication data by using the same
JPH0697930A (ja) * 1992-02-20 1994-04-08 Fujitsu F I P Kk ブロック暗号処理装置
US5825886A (en) * 1995-12-08 1998-10-20 Entrust Technologies Ltd. Construction symmetric ciphers using the cast design procedure
JPH1185018A (ja) * 1997-09-12 1999-03-30 Toshiba Corp 暗号処理用半導体集積回路及び暗号アルゴリズム変更方法
KR20000021130A (ko) * 1998-09-25 2000-04-15 김용만 대칭키 블록 암호 알고리즘

Also Published As

Publication number Publication date
JP2002032016A (ja) 2002-01-31
KR20010107089A (ko) 2001-12-07
TWM271314U (en) 2005-07-21

Similar Documents

Publication Publication Date Title
KR100377176B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR100377172B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
KR100377175B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
US20050213756A1 (en) Round key generation for aes rijndael block cipher
Aggarwal et al. Performance evaluation of RC6, blowfish, DES, IDEA, CAST-128 block ciphers
KR100390821B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR20050087271A (ko) 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
JP5182295B2 (ja) 暗号化装置及び暗号処理方法
KR100377173B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR100384873B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR100190157B1 (ko) 암호화 장치 및 암호화 방법
KR20020087331A (ko) 부분 라운드간 파이프라인 기법을 이용한 AES Rijndael암호 및 복호 회로
JP2000075785A (ja) 高速暗号処理回路および処理方法
KR100316025B1 (ko) 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치
JPH09251267A (ja) 暗号化装置及び暗号化方法
KR20030087893A (ko) 라운드 키의 온라인 계산 기능을 갖는 모듈화 구조의 AESRijndael 라운드 키 생성 회로
KR20030037890A (ko) 디이에스 암호화 장치
KR100418575B1 (ko) 암호블럭연쇄 방식의 디이에스 암호화 장치
Lim Efficient 8-cycle DES implementation
KR20020082540A (ko) 디이에스 암호화 장치
KR20010005033A (ko) 데이터 암호 표준 알고리즘을 이용한 암호화 장치
JPH088897A (ja) データの暗号化・復号処理方法及び暗号装置
JPH11205301A (ja) 暗号処理装置
JPH06276187A (ja) 暗号装置
JPH01282586A (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