KR100377173B1 - Encryption device using data encryption standard algorithm - Google Patents

Encryption device using data encryption standard algorithm 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
Korean (ko)
Other versions
KR20010107089A (en
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/en
Priority to JP2001157940A priority patent/JP2002032016A/en
Priority to TW094200474U priority patent/TWM271314U/en
Publication of KR20010107089A publication Critical patent/KR20010107089A/en
Application granted granted Critical
Publication of KR100377173B1 publication Critical patent/KR100377173B1/en

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)를 향상시키는 효과가 있다.The present invention relates to an encryption apparatus using a data standard encryption algorithm of a data encryption apparatus, wherein the encryption apparatus performs initial substitution of at least one N-bit (N is an even natural number) plaintext data block and bisects the data initially substituted. Initial substitution means for outputting at least one first and second initial substitution data; A transform unit for receiving the first and second initial substitution data and performing product transformation of i rounds (i is a natural number) of the first and second initial substitution data to output i round product transformed data; And an inverse initial replacement means for receiving the i-round multiply transformed data to perform inverse initial replacement, wherein the deformation unit includes at least one product deformation unit. The encryption apparatus according to the present invention eliminates the registers storing redundant intermediate variables, reducing the area occupied by the chip during integration and reducing the clock cycles of storing intermediate variables in registers, thereby reducing the clock cycles required to calculate the entire 16 rounds by 8.5. It reduces the clock cycles to minimize power consumption and has a pipelined structure, thereby improving throughput.

Description

데이터 암호화 표준 알고리즘을 이용한 암호화 장치{Encryption device using data encryption standard algorithm}Encryption device using data encryption standard algorithm

본 발명은 암호화 방법 및 장치에 관한 것으로, 특히 데이터 암호화 표준 알고리즘을 이용한 암호화 장치에 관한 것이다.The present invention relates to an encryption method and apparatus, and more particularly, to an encryption apparatus using a data encryption standard algorithm.

일반적으로 데이터 암호화 표준(DES : Data Encryption Standard, 이하 DES라 칭함) 알고리즘은 가장 널리 쓰이고 있는 암호화 방식으로 네트워킹 사용이 증가함에 따라 그 중요성을 더해 가고 있다. 특히, 보안 인터넷 응용이나 원격 접근 서버나 케이블 모뎀과 위성용 모뎀 등의 분야에서 많이 이용되고 있다.In general, the Data Encryption Standard (DES) algorithm is the most widely used encryption method and its importance is increasing as the use of networking increases. In particular, it is widely used in secure Internet applications, remote access servers, cable modems and satellite modems.

DES는 기본적으로 64비트 블럭의 입력 및 출력을 가지는 64비트 블럭 암호(bloch cipher)이며, 64비트의 키 블럭(key block) 중 56비트가 암호화 및 복호화에 사용되고, 나머지 8비트는 패리티(parity) 검사용으로 사용된다. 즉, 64비트의 평문(Plain Text) 블럭과 56비트의 키(Key)를 입력으로 해서 64비트의 암호문(Cipher Text) 블럭을 출력하는 암호화 방식이다.DES is basically a 64-bit block cipher with inputs and outputs of 64-bit blocks. 56 bits of the 64-bit key block are used for encryption and decryption, and the remaining 8 bits are parity. Used for inspection. That is, it is an encryption method that outputs a 64-bit cipher text block by inputting a 64-bit plain text block and a 56-bit key.

DES를 실현시키는 중요한 기법은 치환(P-Box), 대치(S-Box) 그리고 보조키(Subkey)를 발생시키는 키 스케쥴 등이 있다.Important techniques for realizing DES include substitution (P-Box), substitution (S-Box), and key schedules for generating subkeys.

데이터 암호화부의 내부는 16라운드의 반복연산을 수행하는 형태로 되어 있고 입력부의 초기 치환(IP)과 출력부의 역초기 치환(IP-1)으로 구성되어 있다.The inner part of the data encryption unit is configured to perform 16 rounds of repetitive operations and is composed of an initial substitution (IP) of an input unit and an inverse initial substitution (IP -1 ) of an output unit.

도1은 종래기술의 DES 알고리즘을 설명하기 위한 블럭도이다.1 is a block diagram illustrating a prior art DES algorithm.

도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)로 구성되어 있다.Referring to FIG. 1, the algorithm of the encryption apparatus according to the related art first includes an initial substitution unit 110 which performs initial permutation (IP) of a 64-bit plain text block, and then a substitution unit 110. 16-bit Product Transformation and Left, divided into two 32-bit blocks, stored in the left register (L 0 ) and the right register (R 0 ), and performed by the cipher function f. A transform unit 120 that performs 16 rounds of block transformation by exchanging the register L i and the right register R i every round, and an inverse initial substitution (IP) after 16 rounds of transformation is completed. The reverse initial exchanger 130 outputs an encrypted cipher text (Cipher Text) through -1 ).

변형부(120)에서의 곱 변형은 초기치환부(110)에서 나뉘어진 32비트의 블럭 중에서 오른쪽 레지스터(Ri)에 저장된 데이터를 키 스케쥴러(Key Scheduler)에 의해서 생성된 보조키(Subkey) Ki와 함께 입력시켜서 암호화 연산을 수행하는 사이퍼 함수부(f)(121)와, 상기 사이퍼 함수 f의 결과를 왼쪽 레지스터(Li)와 함께 배타적 논리합하는 배타적 논리합 연산부(122)로 구성되어 있다.The product transformation in the transformation unit 120 uses the subkey K i generated by the key scheduler to store data stored in the right register R i among the 32-bit blocks divided by the initial replacement unit 110. by input with consists of the cipher function unit (f) (121) for performing cryptographic operations, the results of the cipher function f as the exclusive-OR operation unit 122 to the exclusive-OR with the left register (L i).

배타적 논리합 연산부(122)의 32비트의 데이터는 다음 라운드의 연산을 위해 오른쪽 레지스터(Ri+1)에 저장되고 오른쪽 레지스터(Ri)에 저장된 32비트의 데이터는 다음 라운드의 왼쪽 레지스터(Li+1)에 교환(Swapping)되어 저장된다. 이러한 1라운드의 연산이 반복되어 16라운드가 수행되는 것이다.32-bit data of the exclusive OR operation 122 is stored in the right register (R i + 1 ) for the next round of operations, and 32-bit data stored in the right register (R i ) is stored in the left register (L i ) of the next round. +1 ) is swapped and stored. This round of operation is repeated to perform 16 rounds.

초기치환부(110)를 거친 64비트의 평문(Plain Text) 블럭을 둘로 나누어 왼쪽 레지스터(L0)와 오른쪽 레지스터(R0)에 입력하면 16회의 각 라운드는 다음 수학식1과 수학식2로 표현가능하다.When the 64-bit plain text block passed through the initial substitution unit 110 is divided into two and input into the left register (L 0 ) and the right register (R 0 ), each round of 16 times is represented by the following equation (1) and (2). It is possible.

Li = Ri-1 i=1,2,......16Li = Ri-1 i = 1,2, ...... 16

f(Ri-1, Ki) i=1,2,......16 f (Ri-1, Ki) i = 1,2, ...... 16

도2는 보조키(Subkey)를 발생하는 키 스케쥴러(Key Scheduler)을 설명하기 위한 블럭도이다.2 is a block diagram illustrating a key scheduler that generates a subkey.

도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)로 구성된다.Referring to FIG. 2, the key scheduler includes a permutation selection unit (PC1) 200 that receives and substitutes a 56-bit key, and a 56-bit block substituted by the permutation selection unit 200. Is divided into two 28-bit blocks and stored in variables C 0 and D 0 , and then the left register C i (211) and the right register are used to generate a 48-bit auxiliary key for the operation of the cipher function during the 16-round multiply operation. The data stored in D i (212) is shifted left or right by one or two digits by the left shifter (213, 214) to the left variable C i + 1 and the right variable D i + 1 of the next round. substituted for storing outputs the basic operation unit 210, and each of every round receives from the left register C i, and the right register D i shift of the input block data of 28 bits of the 48-bit secondary key (Subkey) K i for selecting section ( PC2: Permutation Choice 2) (220).

16라운드 동안 Ci와 Di는 28자리 수만큼 쉬프트가 되어 C0와 C16그리고 D0와 D16은 서로 같은 데이터가 된다.During 16 rounds, C i and D i are shifted by 28 digits so that C 0 and C 16 and D 0 and D 16 are the same data.

도3은 일반적인 DES 코아 아키텍쳐의 블럭도이다.3 is a block diagram of a typical DES core architecture.

도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)로 저장된다.Referring to FIG. 3, the cipher function f includes an expansion permutation 300 which copies some of the 32-bit inputs R (i-1) stored in the right register and replaces them with 48 bits. The exclusive logical OR operation unit 310 for exclusively ORing the substitution result of 300 with the 48-bit auxiliary key generated by the key scheduler in each round, and the 48-bit block computed by the exclusive OR operation unit 310 in 32-bit order. The S-Box replacement unit 320 replacing the block and the P-Box replacement unit 330 generating a 32-bit block by substituting the substituted 32-bit block of the S-Box replacement unit 320 again. The 32-bit block, which has passed through the P-Box replacement unit 330, is exclusively logically combined with the 32-bit block (L (i-1)) stored in the left register, and R ( i). On the other hand, the 32-bit block R (i-1) stored in the right register is stored as L (i) in the left register of the next round.

도4는 도3에 도시된 S-Box 치환부(320)에 대한 상세한 블럭도이다.4 is a detailed block diagram of the S-Box replacement unit 320 shown in FIG.

도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의 기억장치가 필요하다. 따라서 전체적으로 칩에서 차지하는 면적이 상대적으로 크다Referring to FIG. 4, the S-Box replacement unit 320 is composed of eight S-Boxes that receive an input of 48 bits and generate an output of 32 bits. That is, 48-bit data is divided into eight 6-bit data and input to eight S-Boxes. These eight S-Boxes reduce 48 bits to 32 bits by sending eight 4-bit outputs. The S-Box replacement unit 320 is replaced by a table look-up method and requires a storage device such as a program augmented logic array (PLA) or a ROM. Since 4 bits are output for 6-bit input, each S-Box needs 64 × 4 storage capacity and 8 × 64 × 4 storage devices because it consists of 8 S-Boxes as a whole. Therefore, the area occupied by the chip is relatively large.

이상에서 살펴본 종래의 암호화 장치는 상기 변형부(120)에서 곱변형을 수행할 때 오른쪽레지스터에 저장된 32비트의 데이터 블럭을 교환(Swapping)하여 왼쪽레지스터에 저장하므로써 평문을 DES 암호화할 때 항상 16 클럭 사이클이 걸리는 문제점이 발생한다.In the conventional encryption apparatus described above, 16 bits are always clocked when DES encryption of plain text by swapping 32-bit data blocks stored in the right register and storing them in the left register when performing the product transformation in the transform unit 120. The cycle takes a problem.

본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 것으로써, 집적화 시에 칩에서 차지하는 면적을 줄이고, 전력소모를 최소화하여 처리능력비(Throughput)를 향상시킨 암호화 장치를 제공하는데 그 목적이 있다.The present invention has been made to solve the above problems of the prior art, to provide an encryption device that improves the throughput by reducing the area occupied by the chip at the time of integration, minimizing power consumption. There is this.

도1은 종래기술인 DES 알고리즘을 설명하기 위한 블럭도,1 is a block diagram illustrating a prior art DES algorithm;

도2는 보조키(Subkey)를 발생하는 키 스케쥴러(Key Scheduler)을 설명하기 위한 블럭도,2 is a block diagram for explaining a key scheduler for generating a subkey;

도3은 일반적인 DES 코아 아키텍쳐의 블럭도,3 is a block diagram of a typical DES core architecture,

도4는 도3에 도시된 S-Box 치환부(320)에 대한 상세한 블럭도,4 is a detailed block diagram of the S-Box replacement unit 320 shown in FIG.

도5는 교환(Swapping)되는 데이터 경로를 제거한 DES 알고리즘의 블럭도,5 is a block diagram of an DES algorithm removing a swapping data path;

도6은 DES 알고리즘의 중간 계산 결과들을 도시한 도면,6 illustrates intermediate calculation results of the DES algorithm;

도7은 본 발명의 일실시예에 따른 암호화 장치의 블럭도,7 is a block diagram of an encryption apparatus according to an embodiment of the present invention;

도8은 본 발명의 DES 알고리즘의 동작 순서를 나타내는 타이밍도,8 is a timing diagram showing an operation procedure of the DES algorithm of the present invention;

도9는 본 발명의 DES 알고리즘의 파이프라인 동작 순서를 나타내는 타이밍도,9 is a timing diagram showing a pipeline operation procedure of the DES algorithm of the present invention;

도10은 본 발명의 다른 실시예에 따른 암호화 장치의 블럭도,10 is a block diagram of an encryption apparatus according to another embodiment of the present invention;

도11은 도10에 도시된 DES 알고리즘의 파이프라인 동작 순서를 나타내는 타이밍도.FIG. 11 is a timing diagram showing a pipeline operation sequence of the DES algorithm shown in FIG. 10; FIG.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

710 : 제1왼쪽레지스터 720 : 제1오른쪽레지스터710: first left register 720: first right register

730 : 제2왼쪽레지스터 740 : 제2오른쪽레지스터730: second left register 740: second right register

750 내지 753 : 사이퍼 함수 f 760 내지 763 : 배타적 논리합 연산부750 to 753: Cypher function f 760 to 763: Exclusive AND operation unit

상기 목적을 달성하기 위하여 본 발명의 암호화 장치는, 적어도 하나의 N비트(N은 짝수인 자연수)의 평문 데이터 블록의 초기 치환을 수행하여 초기치환된 데이터를 이등분하여 적어도 하나의 제1 및 제2 초기치환 데이터를 출력하기 위한 초기 치환 수단; 상기 제1 및 제2 초기치환 데이터를 수신하여 상기 제1 및 제2 초기치환 데이터의 i라운드(i는 자연수)의 곱변형을 수행하여 i라운드 곱변형된 데이터를 출력하기 위한 변형부; 및 상기 i라운드 곱변형된 데이터를 수신하여 역초기치환을 수행하기 위한 역초기 치환 수단을 포함하고, 상기 변형부는 적어도 하나의 곱변형부를 포함하되, 상기 곱변형부는, 상기 제1 초기치환 데이터를 저장하기 위한 적어도 하나의 왼쪽 레지스터; 상기 제2 초기치환 데이터를 저장하기 위한 적어도 하나의 오른쪽 레지스터; 상기 오른쪽 레지스터에 저장된 데이터의 곱변형을 수행하여 제1 클럭에 따라 상기 왼쪽 레지스터에 저장하기 위한 적어도 하나의 제1 곱변형 수단; 및 상기 왼쪽 레지스터에 저장된 데이터의 곱변형을 수행하여 상기 제1 클럭의 반전 신호인 제2 클럭에 따라 상기 오른쪽 레지스터에 저장하기 위한 적어도 하나의 제2 곱변형 수단을 포함한다.In order to achieve the above object, the encryption apparatus of the present invention performs initial substitution of at least one N-bit (N is an even natural number) plaintext data block, thereby dividing the initially substituted data into at least one first and second ones. Initial substitution means for outputting initial substitution data; A transform unit for receiving the first and second initial substitution data and performing product transformation of i rounds (i is a natural number) of the first and second initial substitution data to output i round product transformed data; And an inverse initial replacement means for receiving the i-round multimodified data to perform inverse initial substitution, wherein the transformation unit includes at least one product transformation unit, wherein the product transformation unit includes the first initial substitution data. At least one left register for storing; At least one right register for storing the second initial substitution data; At least one first product transformation means for performing product transformation of the data stored in the right register and storing the result in the left register according to a first clock; And at least one second product transformation means for performing product transformation of the data stored in the left register and storing the data in the right register according to a second clock which is an inversion signal of the first clock.

이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 설명하기로 한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the technical idea of the present invention. do.

도5는 교환(Swapping)되는 데이터 경로를 제거한 DES 알고리즘의 블럭도이다.5 is a block diagram of an DES algorithm with a swapped data path removed.

도5를 참조하면, 본 발명의 DES 알고리즘 구현 방식은 먼저 64비트의 평문 블럭을 초기 치환에 의해 치환을 수행하는 초기치환부(500)와, 다음에 초기 치환부(500)에서 출력된 64비트의 데이터 블럭을 두개의 32비트 블럭으로 나누어 왼쪽 레지스터(L0)와 오른쪽 레지스터(R0)에 저장하고 사이퍼 함수 f로 수행되는 16라운드의 곱 변형과 왼쪽 레지스터(Li)와 오른쪽 레지스터(Ri)를 다음 라운드의 왼쪽 레지스터(Li+1)와 오른쪽 레지스터(Ri+1)에 저장하기 위한 블록 변형을 수행하는 변형부(510)와, 16라운드에 걸친 변형이 끝난 후 역초기 치환(IP-1)을 거쳐서 암호화된 암호문을 출력하는 역초기치환부(520)를 포함한다.Referring to FIG. 5, the DES algorithm implementing method of the present invention includes an initial substitution unit 500 which first performs replacement of a 64-bit plaintext block by initial substitution, and then a 64-bit output from the initial substitution unit 500. The data block is divided into two 32-bit blocks and stored in the left register (L 0 ) and the right register (R 0 ), and the 16th round product transformation performed by the cipher function f and the left register (L i ) and the right register (R i ) Is a transform unit 510 which performs block transformation for storing the next round in the left register (L i + 1 ) and the right register (R i + 1 ); IP -1 ) includes a reverse initial replacement unit 520 for outputting an encrypted cipher text.

변형부(510)에서의 곱 변형은 상기 초기치환부(500)에서 나뉘어진 32비트의 블럭 중에서 오른쪽 레지스터(Ri)에 저장된 데이터를 키 스케쥴러에 의해서 생성된 보조키 Ki와 함께 입력시켜서 암호화 연산을 수행하는 사이퍼 함수부(f)(511)와, 사이퍼 함수 f의 결과를 왼쪽 레지스터(Li)와 함께 배타적 논리합하는 배타적 논리합 연산부(512)로 구성되어 있다.The product transformation in the transformation unit 510 is performed by encrypting the data stored in the right register R i among the 32-bit blocks divided by the initial replacement unit 500 together with the auxiliary key K i generated by the key scheduler. the cipher function part (f) (511) for performing, consists results of cipher function f as the exclusive-OR operation unit 512 to the exclusive-OR with the left register (L i).

기존의 DES 알고리즘의 블럭도에서 교환되는 데이터 경로를 제거하면 도5와 같이 된다. 즉 홀수번의 라운드에서 왼쪽 레지스터(Li)와 오른쪽 레지스터(Ri)의 위치를 서로 바꾸고 이에 상응하는 데이터 경로의 방향(사이퍼 함수 f와 배타적 논리합 연산부의 방향)을 변경하면 서로 교차되는 데이터 경로가 없어진다. 도5에서 왼쪽 레지스터(Li)(i=1,2....16)의 값들을 주목하면 이전 라운드의 오른쪽 레지스터(Ri-1) 값과 동일함을 알 수 있다.Removing the data path exchanged in the block diagram of the existing DES algorithm is shown in FIG. In other words, if you change the position of the left register (L i ) and the right register (R i ) in odd-numbered rounds and change the direction of the corresponding data path (the direction of the cipher function f and the exclusive OR operation), the data paths that cross each other Disappear. Referring to the values of the left register (L i ) (i = 1, 2... 16) in FIG. 5, it can be seen that the value is the same as the value of the right register (R i-1 ) of the previous round.

도6은 DES 알고리즘의 중간 계산 결과들을 도시한 도면이다.6 is a diagram illustrating intermediate calculation results of the DES algorithm.

도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을 출력하면 된다.Referring to FIG. 6, the calculated values starting from the initial values L 0 and R 0 of the left and right registers are passed through the cipher function f 511 and the exclusive OR operation unit 512. DES value is calculated as shown are L 1, L 2 .... L 16 and R 1, R 2 .... R 16 inde L i = R i-1 Since the DES from a given L 0 and R 0 The core values newly calculated by Core are R 1 , R 2 .... R 16 . The final result is output of R 15 and R 16 as L 16 and R 16 .

상기 수학식1을 수학식2에 대입하고 Ri-1= Li임을 가정하면 DES 코아의 계산과정을 다음 수학식3으로 나타낼 수 있다.Substituting Equation 1 into Equation 2 and assuming that R i-1 = L i , the calculation process of the DES core can be represented by Equation 3 below.

f( Ri-1, Ki ) i=1,2....16, Ri-1 = Li f (Ri-1, Ki) i = 1,2 .... 16, Ri-1 = Li

도7은 본 발명의 DES 알고리즘의 4개 라운드를 구현한 블럭도이다.Figure 7 is a block diagram implementing four rounds of the DES algorithm of the present invention.

상기 도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이 된다.Referring to FIG. 7, the DES algorithm of the present invention uses a first block (CLK1) for a 0 block, which is one of 64-bit plaintext blocks that have undergone initial substitution, divided into two 32-bit blocks. After storing in the left register (A0) 710 and storing the other b o blocks in the first right register (B0) 720 using the second clock (CLK2), the auxiliary key generated from the key scheduler ( K (i) ) is input to encrypt the 32-bit data from the first right register B0 720 by the cipher function f 750, and remove the 32-bit data modified by the cipher function f. An exclusive OR operation is performed by the 32 bits of the left register A0 710 and the exclusive OR operation unit 760. In addition, the 32-bit data of the exclusive OR operation unit 760 is stored in the second left register A1 730 using the first clock CLK1, and the auxiliary key K (i + 1) is received. The 32-bit data stored in the second left register (A1) 730 is transformed through the cipher function f (751), and the modified 32-bit data is converted into 32 of the first right register (B0) 720. An exclusive OR operation is performed by the bit and exclusive OR operation unit 761. These two rounds are repeated to form four rounds, and 32 bits of the first left register (A0) 710 of the last round become the block b 15 of the 32 bits and the exclusive OR operation unit 763 of the last round. the output is a 32-bit block 16 b of the 32 bits.

제2클럭(CLK2)은 제1클럭(CLK1)을 반전시킨 것으로 제1클럭(CLK1) 주기의 반만큼 지연시킨 것으로 볼 수 있다. 제1클럭(CLK1)이 상승할 때 왼쪽레지스터 A0와 A1에 새로운 값이 저장되고 제1클럭(CLK1)이 하강할 때 오른쪽레지스터 B0와 B1에 새로운 값이 저장된다.The second clock CLK2 is an inversion of the first clock CLK1 and may be regarded as being delayed by half of the period of the first clock CLK1. When the first clock CLK1 rises, new values are stored in the left registers A0 and A1, and when the first clock CLK1 descends, new values are stored in the right registers B0 and B1.

도8은 본 발명에 따른 DES 알고리즘의 동작 순서를 나타내는 타이밍도이다.8 is a timing diagram showing the operation procedure of the DES algorithm according to the present invention.

도8을 참조하면, 32비트의 블럭 a0와 b0는 초기 치환을 거친 64비트의 평문 블럭이 32비트의 두블럭으로 나뉘어진 것이고, 32비트의 블럭 a0는 왼쪽 레지스터(L0)가 되며 32비트의 블럭 b0는 오른쪽 레지스터(R0)가 된다. 그리고 DES 코아가 계산하는 값을 b1, b2....b16(bi=Ri)라고 하고 키 스케쥴러가 주기적으로 보조키 Ki를 사이퍼 함수 f에 입력해 주도록 제어기를 만들면 32비트 블럭 bi의 값을 계산하는 과정은 다음과 같다.Referring to FIG. 8, the 32-bit blocks a 0 and b 0 are divided into two 32-bit blocks of 64-bit plaintext blocks that have undergone initial substitution, and the 32-bit blocks a 0 have a left register (L 0 ). 32-bit block b 0 becomes the right register (R 0 ). The value that the DES core calculates is b 1 , b 2 .... b 16 (b i = R i ) and the controller schedules the key scheduler to input the modifier key K i periodically into the cipher function f. The process of calculating the value of the block b i is as follows.

먼저 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에서 저장된다.First, the values a 0 and b 0 at t 0 and t 1 are stored in the registers A0 and B0 by the first clock CLK1 and the second clock CLK2, respectively. From t 1 1 b value (b 1 = a 0 Start computing f (b 0 , K 1 )) and store the value calculated at t 2 in register A1. At this time, if the value a 0 input to register A0 is maintained only to t 2 , it can be used to calculate the value of b 1 in the interval t 1 -t 2 . This can be solved because the registers A1 and B0 store the new value by the first clock CLK1 and the second clock CLK2 which are inverted from each other. That is, the time for register A1 to store new data is t 0 , t 2 , t 4 .... and the time for new data to be input to register B0 is t 1 , t 3 , t 5 .... Similarly calculated using the second clock (CLK2) to the register B1 from t 3 because the values b 0 and t 2 is stored in register B0 at t 1 is maintained at a value b 1 yi t 2 -t 3 period stored in the register A1 B 2 values (b 2 = b 0 f (b 1 , K 2 ) can be stored. In this manner, when the first clock CLK1 rises, the values b 3 , b 7 , b 11 , and b 15 calculated at t 4 , t 8 , t 12 , and t 16 are stored in the register A0 and t 6 , At t 10 and t 14 , the new values of b 5 , b 9 and b 13 are stored in register A1. In addition, when the second clock CLK2 rises, values of b 4 , b 8 , b 12 , and b 16 are stored in t 5 , t 9 , t 13 , and t 17 in register B0, and b 6 and b in register B1. The values 10 and b 14 are stored at t 7 , t 11 and t 15 .

일반적으로 DES 코아는 16라운드의 연산을 반복 수행하기 때문에 16클럭 사이클이 걸리나, 본 발명에서는 두개의 클럭을 사용하여 레지스터에 저장하므로 t0에서 a0가 저장되기 시작해서 b16이 계산되어 출력하기까지 8.5클럭 사이클이 걸린다.In general, the DES core takes 16 clock cycles because it repeats 16 rounds of operations. However, in the present invention, since two clocks are used to store the registers, a 0 is stored at t 0 and b 16 is calculated and output. It will take 8.5 clock cycles.

사이퍼 함수 f는 롬(ROM)이나 프로그램가증 논리 어레이(PLA)와 같은 기억 장치로 구현된 대치(S-Box)를 필요로 한다. 도8에서와 같이 한 개의 평문을 암호화할 경우 본 발명에서 사용된 사이퍼 함수 f는 t1-t2, t2-t3, t3-t4.... 구간에서 한번씩 엑세스(Access)가 가능하면 된다. 따라서 면적을 크게 차지하는 8 개의 S-Box들을 복수 개로 구현할 필요 없이 한 개 씩만으로 구현 가능하다. 단지 확장 치환과 P-Box 치환을 구현하기 위한 결선과 각 라운드마다 생성된 보조키와 배타적 논리합하기 위한 배타적 논리합 연산 게이트 들만 추가로 필요로 한다. 또한 본 발명은 32비트의 왼쪽변수(Li)를 저장하는데 필요한 왼쪽레지스터를 사용하지 않아 면적 증가를 최소로 하였다.The cipher function f requires substitution (S-Box) implemented with a storage device such as a ROM or a program augmented logic array (PLA). As shown in FIG. 8, the cipher function f used in the present invention, when encrypting one plaintext, has an access (T) once in the interval t 1 -t 2 , t 2 -t 3 , t 3 -t 4 . If possible. Therefore, it is possible to implement only one by one without having to implement a plurality of eight S-Boxes that occupy a large area. Only the wiring for implementing extended substitution and P-Box substitution, and the exclusive OR operation gates for exclusive OR with each additional key generated for each round are needed. In addition, the present invention minimizes the area increase by not using the left register required to store the 32-bit left variable L i .

일반적으로 주어진 키(Key)에 대하여 암호화 또는 해독화해야 될 입력 데이터가 한 개 이상인 경우가 많다. 예를 들어 MCNS 케이블 모뎀에서 사용되는 암호화 방식은 맥 프레임(MAC Frame) 단위로 암호화를 수행하기 때문에 최대 1,518 바이트의 평문 블럭들을 동일한 키(Key)로 암호화를 수행하여야 한다. 즉 동일한 키 스케쥴러로써 다수의 평문 블럭들에 대해서 16라운드의 DES 코아 기능을 수행해야만 한다. 이 때 본 발명이 가지고 있는 파이프라인 구조를 이용하여 처리능력비를 증가시킬 수 있다.In general, there is more than one input data to be encrypted or decrypted for a given key. For example, the encryption method used in the MCNS cable modem performs encryption in units of MAC frames, so up to 1,518 bytes of plaintext blocks must be encrypted with the same key. That is, the same key scheduler must perform 16 rounds of DES core functions for multiple plaintext blocks. In this case, the processing capacity ratio can be increased by using the pipeline structure of the present invention.

도9는 본 발명의 DES 알고리즘의 파이프라인 동작 순서를 나타내는 타이밍도이다.9 is a timing diagram showing a pipeline operation sequence of the DES algorithm of the present invention.

도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클럭 사이클 동안 처리할 수 있는 평문 블럭의 수는 두배로 증가시킬 수 있다.Referring to FIG. 9, a timing diagram illustrating the pipeline operation of the present invention shows that two plaintext blocks can be processed simultaneously for 8.5 clock cycles using the pipeline structure. 8 shows that the plaintext block d i values can be calculated while calculating the plaintext block b i values by inputting the new plaintext blocks c 0 and d 0 into the registers A0 and B0 at t 2 and t 3 in the empty part. . At this time, t 0 -t 1 , t 1 -t 2 , t 2 -t 3 .... Two cipher functions f are executed simultaneously to encrypt the new plaintext blocks b i and d i for each interval. Therefore, the S-Box constituting the cipher function needs to be implemented one by one. And the number of plaintext blocks that can be processed in a given 8.5 clock cycle can be doubled.

도10은 본 발명의 다른 실시예에 따른 암호화 장치의 블럭도이다.10 is a block diagram of an encryption apparatus according to another embodiment of the present invention.

도10을 참조하면, 도7에서 4개의 라운드로 구성된 4 단의 파이프라인 구조 두개를 직렬로 연결하여 파이프라인 스테이지 수를 4에서 8로 증가시켰다. 이 구조는 하나의 평문 블럭을 처리하는데 도7의 구조와 동일하게 8.5클럭 사이클이 걸리지만 동시에 처리할 수 있는 평문 블럭의 수가 두개에서 네개로 증가하여 처리능력비가 두 배로 증가되었다.Referring to FIG. 10, the number of pipeline stages was increased from 4 to 8 by connecting two four-stage pipeline structures consisting of four rounds in series. This structure takes 8.5 clock cycles to process one plaintext block, but the number of plaintext blocks that can be processed simultaneously increases from two to four, thereby doubling the processing capacity ratio.

도11은 도10에 도시된 DES 알고리즘의 파이프라인 동작 순서를 나타내는 타이밍도이다.FIG. 11 is a timing diagram illustrating a pipeline operation sequence of the DES algorithm illustrated in FIG. 10.

도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클럭 사이클이다.Referring to FIG. 11, it can be seen that the plaintext blocks (a 0, b 0 ), (C 0 , d 0 ), (e 0 , f 0 ), and (g 0 , h 0 ) can be simultaneously calculated. In this case, the number of S-Boxes required is four, and the area can be reduced by implementing four-port S-Box replacement parts. As another embodiment of the present invention, the number of pipeline stages can be increased by 16 by connecting 8 encryption apparatuses shown in FIG. 7 in series. Can be increased. Again, the processing time for one plaintext block is 8.5 clock cycles and can be reduced by implementing 8-port S-Box replacement. When the pipeline structure is not used in the present invention, only two registers A0 and B0 in FIG. 7 need to be used. In this case, it takes 8.5 clock cycles to process one plaintext block.

본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.Although the technical spirit of the present invention has been described in detail according to the above-described preferred embodiment, it should be noted that the above-described embodiment is for the purpose of description and not of limitation. In addition, those skilled in the art will understand that various embodiments are possible within the scope of the technical idea of the present invention.

상기와 같이 본 발명은 교차(Swapping)되는 데이터 경로를 제거한 본 발명은 중간 변수를 중복하여 저장하지 않음으로써 필요한 레지스터의 수를 최소화하여 면적을 줄일 수 있으며 서로 반전된 두 개의 클럭을 사용함으로써 DES 코아를 계산하는데 소요되는 시간을 16 클럭 사이클에서 8.5클럭 사이클로 줄여서 전력 소모를 최소화할 수 있다. 그리고 파이프라인 구조를 사용하여 한 번에 처리할 수 있는 평문 블럭의 수를 증가시켜 처리능력을 증가시킬 수 있는 효과가 있다.As described above, the present invention eliminates a data path that is intersected with the present invention. By not storing intermediate variables in duplicate, the present invention can reduce the area by minimizing the number of registers required and by using two inverted clocks, the DES core The power consumption can be minimized by reducing the time it takes to calculate from 16 clock cycles to 8.5 clock cycles. In addition, it is possible to increase processing capacity by increasing the number of plaintext blocks that can be processed at one time using a pipeline structure.

Claims (8)

적어도 하나의 N비트(N은 짝수인 자연수)의 평문 데이터 블록의 초기 치환을 수행하여 초기치환된 데이터를 이등분하여 적어도 하나의 제1 및 제2 초기치환 데이터를 출력하기 위한 초기 치환 수단;Initial substitution means for performing initial substitution of at least one N-bit (N is an even natural number) plaintext data block to bisect the initially substituted data to output at least one first and second initial substitution data; 상기 제1 및 제2 초기치환 데이터를 수신하여 상기 제1 및 제2 초기치환 데이터의 i라운드(i는 자연수)의 곱변형을 수행하여 i라운드 곱변형된 데이터를 출력하기 위한 변형부; 및A transform unit for receiving the first and second initial substitution data and performing product transformation of i rounds (i is a natural number) of the first and second initial substitution data to output i round product transformed data; And 상기 i라운드 곱변형된 데이터를 수신하여 역초기치환을 수행하기 위한 역초기 치환 수단Reverse initial substitution means for performing reverse initial substitution by receiving the i-round multiplying data. 을 포함하고,Including, 상기 변형부는 적어도 하나의 곱변형부를 포함하되, 상기 곱변형부는,The deformation part includes at least one product deformation part, wherein the product deformation part, 상기 제1 초기치환 데이터를 저장하기 위한 적어도 하나의 왼쪽 레지스터;At least one left register for storing the first initial substitution data; 상기 제2 초기치환 데이터를 저장하기 위한 적어도 하나의 오른쪽 레지스터;At least one right register for storing the second initial substitution data; 상기 오른쪽 레지스터에 저장된 데이터의 곱변형을 수행하여 제1 클럭에 따라 상기 왼쪽 레지스터에 저장하기 위한 적어도 하나의 제1 곱변형 수단; 및At least one first product transformation means for performing product transformation of the data stored in the right register and storing the result in the left register according to a first clock; And 상기 왼쪽 레지스터에 저장된 데이터의 곱변형을 수행하여 상기 제1 클럭의 반전신호인 제2 클럭에 따라 상기 오른쪽 레지스터에 저장하기 위한 적어도 하나의 제2 곱변형 수단At least one second product transformation means for performing product transformation of data stored in the left register and storing the result in the right register according to a second clock which is an inversion signal of the first clock 을 포함하는 암호화 장치.Encryption device comprising a. 제1항에 있어서,The method of claim 1, 상기 변형부는,The deformation portion, 상기 제1 초기치환 데이터와 상기 제1 곱변형 수단으로부터 출력된 곱변형 데이터중 하나를 상기 왼쪽 레지스터로 출력하기 위한 역다중화수단; 및Demultiplexing means for outputting one of the first initial substitution data and the product transformation data output from the first product transformation means to the left register; And 상기 제2 초기치환 데이터와 상기 제2 곱변형 수단으로부터 출력된 곱변형 데이터중 하나를 상기 왼쪽 레지스터로 출력하기 위한 역다중화수단Demultiplexing means for outputting one of the second initial substitution data and the product transformation data output from the second product transformation means to the left register 을 더 포함하는 암호화 장치.Encryption device further comprising. 제2항에 있어서,The method of claim 2, 상기 제1 곱변형 수단은,The first product transformation means, 제1 보조키를 이용하여 상기 오른쪽 레지스터에 저장된 데이터의 암호화 연산을 수행하기 위한 제1 암호화 연산부; 및A first encryption operation unit configured to perform an encryption operation on data stored in the right register using a first auxiliary key; And 상기 제1 암호화 연산부로부터 출력된 데이터와 상기 왼쪽 레지스터에 저장된 데이터의 배타적 논리합 연산을 수행하여 상기 왼쪽 레지스터로 출력하기 위한 제1 배타적 논리합 연산부A first exclusive OR operation unit configured to perform an exclusive OR operation on data output from the first encryption operation unit and data stored in the left register and output the result to the left register; 를 포함하고,Including, 상기 제2 곱변형 수단은,The second product transformation means, 제2 보조키를 이용하여 상기 왼쪽 레지스터에 저장된 데이터의 암호화 연산을 수행하기 위한 제2 암호화 연산부; 및A second encryption operation unit for performing an encryption operation on data stored in the left register using a second auxiliary key; And 상기 제2 암호화 연산부로부터 출력된 데이터와 상기 오른쪽 레지스터에 저장된 데이터의 배타적 논리합 연산을 수행하여 상기 오른쪽 레지스터로 출력하기 위한 제2 배타적 논리합 연산부A second exclusive OR operation unit configured to perform an exclusive OR operation on the data output from the second encryption operation unit and the data stored in the right register and output the result to the right register; 를 포함하는 암호화 장치.Encryption device comprising a. 제3항에 있어서,The method of claim 3, 상기 변형부는 두 개의 곱변형부를 포함하는 것을 특징으로 하는 암호화 장치.And the transformation part comprises two product transformation parts. 제3항에 있어서,The method of claim 3, 상기 변형부는 네 개의 곱변형부를 포함하는 것을 특징으로 하는 암호화 장 치.And the transformation unit comprises four product transformation units. 제3항에 있어서,The method of claim 3, 상기 변형부는 i/2 개의 곱변형부를 포함하는 것을 특징으로 하는 암호화 장치.And the transformation part comprises i / 2 product transformation parts. 삭제delete 제6항에 있어서,The method of claim 6, 상기 곱변형 결과는,The product transformation result is, Ri = Ri-2 f(Ri-1, Ki) 으로 표현되고,Ri = Ri-2 f (Ri-1, Ki), 여기서, Ri는 상기 오른쪽 레지스터에 저장된 i 라운드 곱변형된 데이터, i=1,2,...,16, R-1 = L0는 배타적 논리합 연산을 의미하는 것을 특징으로 하는 암호화 장치.Wherein Ri is i round multiply transformed data stored in the right register, i = 1,2, ..., 16, R-1 = L0 means an exclusive OR operation.
KR10-2000-0028311A 2000-05-25 2000-05-25 Encryption device using data encryption standard algorithm KR100377173B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR10-2000-0028311A KR100377173B1 (en) 2000-05-25 2000-05-25 Encryption device using data encryption standard algorithm
JP2001157940A JP2002032016A (en) 2000-05-25 2001-05-25 Ciphering device using standard algorithm for ciphering data
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 (en) 2000-05-25 2000-05-25 Encryption device using data encryption standard algorithm

Publications (2)

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

Family

ID=36675821

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0028311A KR100377173B1 (en) 2000-05-25 2000-05-25 Encryption device using data encryption standard algorithm

Country Status (3)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100384873B1 (en) * 2000-05-26 2003-05-22 주식회사 하이닉스반도체 Encryption device using data encryption standard algorithm
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 (en) * 1992-02-20 1994-04-08 Fujitsu F I P Kk Block cipher processor
US5825886A (en) * 1995-12-08 1998-10-20 Entrust Technologies Ltd. Construction symmetric ciphers using the cast design procedure
JPH1185018A (en) * 1997-09-12 1999-03-30 Toshiba Corp Semiconductor integrated circuit for cipher processing and cipher algorithm conversion system
KR20000021130A (en) * 1998-09-25 2000-04-15 김용만 Symmetrical key block encryption algorithm

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 (en) * 1992-02-20 1994-04-08 Fujitsu F I P Kk Block cipher processor
US5825886A (en) * 1995-12-08 1998-10-20 Entrust Technologies Ltd. Construction symmetric ciphers using the cast design procedure
JPH1185018A (en) * 1997-09-12 1999-03-30 Toshiba Corp Semiconductor integrated circuit for cipher processing and cipher algorithm conversion system
KR20000021130A (en) * 1998-09-25 2000-04-15 김용만 Symmetrical key block encryption algorithm

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100377176B1 (en) Encryption device using data encryption standard algorithm
KR100377172B1 (en) Key Scheduller of encryption device using data encryption standard algorithm
KR100377175B1 (en) Encryption device using data encryption standard algorithm
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 (en) Encryption device using data encryption standard algorithm
KR20050087271A (en) Key schedule apparatus for generating an encryption round key and a decryption round key selectively corresponding to initial round key having variable key length
JP5182295B2 (en) Encryption apparatus and encryption processing method
KR100377173B1 (en) Encryption device using data encryption standard algorithm
KR100384873B1 (en) Encryption device using data encryption standard algorithm
KR100190157B1 (en) Encryption apparatus and encryption method
KR20020087331A (en) AES Rijndael Encryption and Decryption Circuit with Subround-Level Pipeline Scheme
JP2000075785A (en) High-speed cipher processing circuit and processing method
JPH09251267A (en) Encryption device and encryption method
KR100316025B1 (en) Encryption and decryption device using data encryption standard algorithm
KR20030087893A (en) Modular AES Rijndael Round Key Scheduler with On-the-Fly Computation Scheme of Round Key
KR20030037890A (en) Apparatus for encryption of Data Encryption Standard
KR100418575B1 (en) Apparatus for encryption of Data Encryption Standard of Cipher Block Chaining mode
Lim Efficient 8-cycle DES implementation
KR20020082540A (en) Apparatus for encryption of Data Encryption Standard
KR20010005033A (en) Encryption device using data encryption standard algorithm
JPH088897A (en) Enciphering/deciphering processing method for data and criptographic device
JPH11205301A (en) Encryption processing unit
JPH06276187A (en) Cipher device
JPH01282586A (en) Cipher circuit

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