KR100377173B1 - Encryption device using data encryption standard algorithm - Google Patents
Encryption device using data encryption standard algorithm Download PDFInfo
- 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
Links
Classifications
-
- 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
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- 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/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization 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
본 발명은 암호화 방법 및 장치에 관한 것으로, 특히 데이터 암호화 표준 알고리즘을 이용한 암호화 장치에 관한 것이다.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.
도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.
도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)
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)
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)
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 |
-
2000
- 2000-05-25 KR KR10-2000-0028311A patent/KR100377173B1/en not_active IP Right Cessation
-
2001
- 2001-05-25 JP JP2001157940A patent/JP2002032016A/en active Pending
- 2001-05-29 TW TW094200474U patent/TWM271314U/en not_active IP Right Cessation
Patent Citations (6)
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 |