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

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

Info

Publication number
KR100390821B1
KR100390821B1 KR10-2001-0030464A KR20010030464A KR100390821B1 KR 100390821 B1 KR100390821 B1 KR 100390821B1 KR 20010030464 A KR20010030464 A KR 20010030464A KR 100390821 B1 KR100390821 B1 KR 100390821B1
Authority
KR
South Korea
Prior art keywords
clock
data
multiplexer
bit
demultiplexer
Prior art date
Application number
KR10-2001-0030464A
Other languages
English (en)
Other versions
KR20010110162A (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 주식회사 하이닉스반도체
Publication of KR20010110162A publication Critical patent/KR20010110162A/ko
Application granted granted Critical
Publication of KR100390821B1 publication Critical patent/KR100390821B1/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
    • 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
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

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

Abstract

본 발명은 데이터 암호화 표준 알고리즘을 이용한 암호화 장치에 관한 것으로, 데이터 컨텐션(Contention)을 제거하고 면적을 최소화할 수 있는 암호화 방법 및 장치를 제공하는데 그 목적이 있다. 본 발명의 암호화 장치는 데이터 초기치환부, 제1 클럭 및 제2 클럭을 이용하는 n단 (n은 4이상의 짝수) 파이프라인 구조를 갖는 데이터 변형부 및 데이터 역초기치환부를 포함하고, 데이터 암호화 표준 알고리즘을 사용하여 평문 텍스트 블록의 암호화를 수행하기 위한 암호화 장치에 있어서, n/2 개의 48비트의 데이터 중에 하나를 선택하기 위한 멀티플렉서; 상기 멀티플렉서에서 출력된 48비트 중에서 6비트의 어드레스 8개를 각각 입력받아 4비트의 데이터 8 개를 각각 출력하는 8 개의 S-Box; 상기 4비트의 데이터를 n/2개로 분배하는 디멀티플렉서; 및 제3클럭 및 제4클럭에 따라 상기 멀티플렉서 및 디멀티플렉서를 제어하는 제어기를 포함하고, 상기 제3 클럭 및 상기 제4 클럭은 상기 제1 클럭 및 상기 제2 클럭보다 n/2배 빠른 것을 특징으로 한다.

Description

데이터 암호화 표준 알고리즘을 이용한 암호화 장치{Encryption device using data encryption standard algorithm}
본 발명은 암호화 장치에 관한 것으로, 특히 데이터 암호화 표준 알고리즘을 이용한 암호화 장치에 관한 것이다.
일반적으로 데이터 암호화 표준(DES : Data Encryption Standard, 이하 DES라 칭함) 알고리즘은 가장 널리 쓰이고 있는 암호화 방식으로 네트워킹 사용이 증가함에 따라 그 중요성을 더해 가고 있다. 특히, 보안 인터넷 응용이나 원격 접근 서버나 케이블 모뎀과 위성용 모뎀 등의 분야에서 많이 이용되고 있다.
DES는 기본적으로 64비트 블럭의 입력 및 출력을 가지는 64비트 블럭 암호이며, 64비트의 키 블럭 중 56비트가 암호화 및 복호화에 사용되고, 나머지 8비트는 패리티(parity) 검사용으로 사용된다. 또한. 64비트의 평문(Plain Text) 블럭과 56비트의 키(Key)를 입력으로 해서 64비트의 암호문(Ciper Text) 블럭을 출력하는 암호화 장치이다.
DES를 실현시키는 중요한 기법은 치환(P-Box), 대치(S-Box) 그리고 보조키(Subkey)를 발생시키는 키 스케쥴 등이 있다.
데이터 암호화부의 내부는 16라운드의 반복연산을 수행하는 형태로 되어 있고 입력부의 초기 치환(IP)와 출력부의 역초기 치환(IP-1)으로 구성되어 있다.
도1는 일반적인 DES 아키텍쳐의 사이퍼 함수와 S-Box 치환부의 상세한 구성도이다.
상기 도1을 참조하면, 사이퍼 함수 f는 32비트의 텍스트 블럭을 저장하고 있는 오른쪽레지스터로부터 32비트의 데이터(R(i-1))를 입력받아 48비트의 데이터로 확장 치환하는 확장치환부(110), 상기 확장치환부(110)로부터 48비트의 데이터를 수신하고 키 스케쥴러(Key Scheduler)로부터 보조키(Ki)를 수신하여 배타적 논리합 연산을 수행하는 배타적 논리합 연산부(120)와, 상기 배타적 논리합 연산부(120)로부터의 48비트의 데이터를 32비트의 데이터로 대치 치환하는 S-Box 치환부(130)와, 상기 S-Box 치환부(130)의 32비트의 데이터를 복사 치환하는 P-Box 치환부(140)와, 상기 P-Box 치환부의 32비트의 데이터와 왼쪽레지스터에 저장되어 있는 32비트의 데이터(L(i-1))를 입력받아 배타적 논리합하는 배타적 논리합 연산부(150)를 구비한다.
키 스케쥴러(Key Scheduler)는 56비트의 키(Key)를 수신하여 28비트의 두 블럭으로 나누어서 각각 왼쪽으로 한자리 또는 두자리씩 쉬프트하는 쉬프트부(160, 170)와 상기 쉬프트부의 두 블럭을 입력받아 하나의 보조키로 압축하여 치환하는 압축치환부(180)를 구비한다.
구체적으로, 상기 S-Box 치환부(130)는 48비트의 입력을 받아서 32비트의 출력을 생성하는 8 개의 S-Box로 구성되어 있다. 즉, 48비트의 데이터는 8 개의 6비트 데이터로 분할되어 8 개의 S-Box에 입력된다. 이 8 개의 S-Box들은 8 개의 4비트 출력을 내보냄으로써 48 비트를 32비트로 줄인다. S-Box 치환부(130)는 테이블 룩-업(Look-up) 방식으로 대치됨으로써 프로그램가능 논리 어레이(PLA: programmable logic array)나 롬(ROM; read only memory)과 같은 기억장치를 필요로 한다. 6비트의 입력에 대하여 4비트를 출력하기 때문에 각 S-Box는 64 × 4 의 기억 용량이 필요하며 전체적으로 8개의 S-Box로 구성되어 있으므로 8 × 64 × 4의 기억장치가 필요하다. 따라서 전체적으로 칩에서 차지하는 면적이 상대적으로 크다
도2은 본 발명이 적용되는 처리성능비를 증가시키는 4단의 파이프라인 구조를 갖는 DES 아키텍쳐이다.
상기 도2을 참조하면, 본 발명이 적용되는 DES 아키텍쳐는 먼저 초기 치환부를 거친 64비트의 평문(Plain Text) 블럭으로 나누어 a0와 b0를 제1클럭과 제2클럭을 사용하여 각각 제1왼쪽레지스터(A0)(260)와 제1오른쪽레지스터(B0)(200)에 저장한 후 키 스케쥴러(Key Scheduler)로부터 생성된 보조키(K(i))를 입력받아 상기 제1오른쪽레지스터로부터의 32비트의 데이터를 사이퍼 함수 fB(210)에 의해서 암호화 변형하며, 상기 사이퍼 함수 배타적 논리합 연산부에 의해 변형된 32비트의 데이터를 상기 제1왼쪽레지스터의 데이터와 배타적 논리합 연산부(220)에서 배타적 논리합 연산을 수행한다.
상기 배타적 논리합 연산부의 32비트 데이터를 제1클럭(CLK1)을 사용하여 제2왼쪽레지스터(A1)(230)에 저장하고, 보조키(K(i+1))를 입력받아 상기 제2 왼쪽레지스터에 저장되어 있는 32비트의 데이터를 사이퍼 함수 fC(240)를 통하여 변형하며, 변형된 32비트의 데이터를 상기 오른쪽레지스터(B0)(200)의 32비트와 배타적 논리합 연산부(250)에서 배타적 논리합 연산을 수행한다.
상기 배타적 논리합 연산부(250)의 32비트 데이터를 제2클럭(CLK2)을 사용하여 제2오른쪽레지스터(B1)(260)에 저장하고, 보조키(K(i+1))를 입력받아 상기 제2 오른쪽레지스터에 저장되어 있는 32비트의 데이터를 사이퍼 함수 fD(270)를 통하여 변형하며, 변형된 32비트의 데이터를 상기 왼쪽레지스터(A1)(230)의 32비트와 배타적 논리합 연산부(280)에서 배타적 논리합 연산을 수행한다.
상기 배타적 논리합 연산부의 32비트 데이터를 제1클럭(CLK1)을 사용하여 제1왼쪽레지스터(A0)(290)에 저장하고, 보조키(K(i+1))를 입력받아 상기 제1 왼쪽레지스터에 저장되어 있는 32비트의 데이터를 사이퍼 함수 fA(300)를 통하여 변형하며, 변형된 32비트의 데이터를 상기 오른쪽레지스터(B1)(260)의 32비트와 배타적 논리합 연산부(310)에서 배타적 논리합 연산을 수행한다.
이와 같은 4개의 라운드가 반복되어 마지막 라운드의 제1왼쪽레지스터(A0)(260)의 32비트가 상기 32비트의 블럭 b15가 되며 마지막 라운드의 배타적 논리합 연산부(310)에서 출력된 32비트가 상기 32비트의 블럭 b16이 된다.
상기 제2클럭(CLK2)은 상기 제1클럭(CLK1)을 반전시킨 것으로 상기 제1클럭(CLK1)의 주기의 반만큼 지연시킨 것이다. 상기 제1클럭(CLK1)이 상승할 때 상기 왼쪽레지스터 A0와 A1에 새로운 값이 저장되고 상기 제1클럭(CLK1)이 하강할 때 상기 오른쪽레지스터 B0와 B1에 새로운 값이 저장된다.
도3은 도2의 4단 파이프라인 구조의 DES 아키텍쳐의 동작 순서를 나타내는 타이밍도이다.
상기 도3을 참조하면, 32비트의 블럭 a0와 b0는 초기 치환을 거친 64비트의 평문 블럭이 32비트의 두 블럭으로 나뉘어져 생성되고, 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, K1))을 저장할 수 있다. 이와 같은 방식으로 상기 제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에서 저장된다.
도4는 도2의 4단 파이프라인 구조의 DES 아키텍쳐의 파이프라인 동작 순서를 나타내는 타이밍도이다.
상기 도4을 참조하면, 파이프라인 동작을 나타내는 타이밍도는 파이프라인 구조를 이용하여 두개의 평문 블럭들을 8.5클럭 사이클동안 동시에 처리할 수 있음을 보여준다. 또한 도3에서 비어 있는 부분에 새로운 평문 블럭 c0와 d0를 t2와 t3에서 레지스터 A0와 B0에 입력함으로써 평문 블럭 bi값들을 계산하는 동안 평문 블럭 di값들을 계산할 수 있음을 보여준다. 이 때 t0-t1, t1-t2, t2-t3.... 구간마다 새로운 평문 블럭 bi와 di값을 암호화 하기위해 사이퍼 함수 f가 두 개씩 동시에 수행된다. 따라서 사이퍼 함수를 구성하는 S-Box들을 한 개씩 추가로 구현할 필요가 있다.
마찬가지로, 2개의 평문 블럭을 8.5 클럭 사이클 동안 동시에 처리하기 위하여, 종래 기술의 8 단의 파이프라인 DES 아키텍쳐에서는 각 시간 구간마다 사이퍼 함수 f가 두 개씩 동시에 수행된다. 따라서 사이퍼 함수를 구성하는 S-Box가 두 개 필요하다.
도5는 4단의 파이프라인 구조의 DES 아키텍쳐에서 종래기술의 단일 포트 S-Box 치환부의 구현방식을 나타낸 상세한 블록도이다.
상기 도5는 참조하면, 종래기술은 S-Box 치환부를 두 개를 사용하여 파이프라인 동작을 수행하도록 되어 있고, 하나의 S-Box 치환부는 48비트의 입력 데이터를 받아들여 32비트의 출력 데이터를 내보내는 8개의 S-Box로 구성되어 있다. 각각의 S-Box는 64×4의 롬(ROM)이나 프로그램가능 논리 어레이(PLA)로 구성되어 있고 6비트의 어드레스를 입력받아 4비트의 데이터를 출력하는 제1 경로(path1)를 구비하고 있다. 두 개의 S-Box 치환부에는 서로 다른 제1경로(path1)와 제2(path2)가 물리적으로 존재한다.
종래 기술은 상기와 같이 서로 다른 경로가 물리적으로 존재하여 S-Box 치환부를 구현하는데 필요한 기억장치를 동시에 억세스(Access)해야 하는 데이터 컨텐션(Data contention) 문제를 해결한다. 또한, 동일한 S-Box 치환부를 두개를 사용하므로 인하여 면적이 증가되는 단점이 있다.
도6은 본 발명이 적용되는 처리성능비를 증가시키는 8 단의 파이프라인 구조의 DES 아키텍쳐를 나타낸 블럭도이다.
상기 도6을 참조하면, DES 알고리즘은 초기 치환부를 거친 64비트의 평문(Plain Text) 블럭을 32비트의 두 블럭으로 나뉘어 a0와 b0를 제1클럭과 제2클럭을 사용하여 제1왼쪽레지스터(A0)(660)와 제1오른쪽레지스터(B0)(600)에 저장한 후, 키 스케쥴러(Key Scheduler)로부터 생성된 보조키(K(i))를 입력받아 상기 제1오른쪽레지스터로부터의 32비트의 데이터를 사이퍼 함수 fB(610)에 의해서 암호화 변형하며, 상기 사이퍼 함수 fB에 의해 변형된 32비트의 데이터를 상기 제1 왼쪽레지스터(A0)(660)의 32비트와 배타적 논리합 연산부(620)에서 배타적 논리합 연산을 수행한다. 또한, 상기 배타적 논리합 연산부의 32비트 데이터를 제1클럭(CLK1)을 사용하여 제2왼쪽레지스터(A1)(630)에 저장하고, 보조키(K(i+1))를 입력받아 상기 제2왼쪽레지스터에 저장되어 있는 32비트의 데이터를 사이퍼 함수 fC(640)를 통하여 변형하며, 변형된 32비트의 데이터를 상기 제1오른쪽레지스터(B0)(600)의 32비트와 배타적 논리합 연산부(650)에서 배타적 논리합 연산을 수행한다. 이와 같은 2 개의 라운드가 반복되어 16 라운드가 수행되며, 마지막 라운드의 제1왼쪽레지스터(A0)(660)의 32비트가 b15가 되며 마지막 라운드의 익스쿠르시브-오아부(670)에서 출력된 32비트가 b16이 된다.
왼쪽에 있는 레지스터는 A1, A2, A3, A0으로, 오른쪽에 있는 레지스터는 B0, B1, B2, B3으로 표시하였다. 도1과 같이 레지스터 A0, A1, A2, A3는 제1클럭(CLK1)을 사용하여 데이터를 저장하고 레지스터 B0, B1, B2, B3는 제2클럭(CLK2)을 사용하여 데이터를 저장한다. 제2클럭(CLK2)는 제1클럭(CLK1)을 반전시킨 것으로 제1클럭(CLK1)의 반주기만큼 지연된 것이다.
도7은 도6의 8단 파이프라인 구조의 DES 아키텍쳐의 동작 순서를 나타내는 타이밍도이다.
상기 도7을 참조하면, 32비트의 블럭 a0와 b0는 초기 치환을 거친 64비트의 평문 블럭이 32비트의 두블럭으로 나뉘어진 것이고, 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, K1))을 저장할 수 있다. 이와 같은 방식으로 상기 제1클럭(CLK1)이 상승할 때 t0, t8, t16에서 a0, b7, b15값이 레지스터 A0에, t2, t10에서 b1, b9값이 레지스터 A1에, t4, t12에서 b3, b11값이 레지스터 A2에, t6, t14에서 b5, b13값이 레지스터 A3에 각각 저장된다. 또한 상기 제2클럭(CLK2)가 상승할 때 t1, t9, t17에서 b0, b8, b16값이 레지스터 B0에, t3, t11에서 b2, b10값이 레지스터 B1에, t5, t13에서 b4, b12값이 레지스터 B2에, t7, t15에서 b6, b14값이 레지스터 B3에 각각 저장된다. 일반적인 DES 구조에서는 16 라운드를 수행하기 때문에 16 클럭 사이클이 걸리나 상기의 8단 파이프라인 구조의 DES 구조에서는 t0에서 a0가 저장되기 시작해서 b16이 계산되어 출력하기까지 8.5 클럭 사이클이 걸린다.
일반적으로 주어진 키(Key)에 대하여 암호화 또는 해독화 해야 될 다수의 64비트 평문 블럭이 연속적으로 입력되는 경우가 많다.
도8은 도6의 8단 파이프라인 구조의 DES 아키텍쳐의 파이프라인 동작 순서를 나타내는 타이밍도이다.
상기 도8을 참조하면, 네개의 평문 블럭들을 8.5 클럭 사이클 동안에 동시에 처리할 수 있음을 보여준다. 도3에서 비어 있는 부분에 새로운 평문 블럭 c0와 d0를 t2와 t3에서, e0와 f0를 t4와 t5에서, g0와 h0를 t6과 t7에서 각각 레지스터 A0와 B0에 입력함으로써 bi값들을 계산하는 동안 di, fi, hi값들을 계산할 수 있음을 보여준다. 이 때 t0-t1,t1-t2, t2-t3,... 구간마다 새로운 bi, di, fi, hi값을 얻기 위해 사이퍼 함수 f가 네개씩 동시에 수행된다. 따라서 주어진 클럭 사이클 동안에 처리할 수 있는 평문 블럭의 수는 네 배로 증가시킬 수 있으나, S-Box 치환부를 세 개씩 추가로 구현하여야 한다는 단점이 있다.
도9는 종래 기술에서 8단의 파이프라인 구조의 DES 아키텍쳐로써, 파이프라인을 사용한 경우와 사용하지 않은 경우에 사이퍼 함수가 연산되는 순서도이다.
상기 도9를 참조하면, 한개의 64비트 평문 블럭을 암호화하는 경우 즉, 파이프라인을 사용하지 않을 경우는 도2의 8개의 사이퍼 함수 fA, fB, fC, fD, fE, fF,fG, fH는 두개의 위상을 갖는 클럭에 의해서 시분할이 되어 계산되기 때문에 1 개의 S-Box 치환부만으로도 구현가능하다. 그러나 파이프라인을 사용하여 네 개의 64비트의 평문 블럭을 동시에 암호화할 경우에 (fA, fB, fC, fD)와 (fE, fF, fG, fH)는 서로 시분할되지만 (fA, fC, fE, fG)와 (fB, fD, fF, fH)는 시분할이 되지 않고 동시에 계산되기 때문에 네 개의 S-Box가 필요하다.
도10은 8단의 파이프라인 구조의 DES 아키텍쳐에서 종래기술의 단일 포트 S-Box 치환부의 구현 방식을 나타낸 상세한 블럭도이다.
상기 도10을 참조하면, 종래기술의 S-Box 치환부는 네 개를 사용하여 파이프라인 동작을 수행하도록 되어 있고, 하나의 S-Box 치환부는 48비트의 입력 데이터를 받아들여 32비트의 출력 데이터를 내보내는 8 개의 S-Box로 구성되어 있다. 각각의 S-Box는 64 × 4 의 롬(ROM)이나 프로그램가능 논리 어레이(PLA)로 구성되고 6비트의 어드레스를 입력받아 4비트의 데이터를 출력하는 제1경로(path1)를 구비하고 있다. 네개의 S-Box 치환부에는 서로 다른 제1경로(path1)와 제2경로(path2)와 제3경로(path3)와 제4경로(path4)가 물리적으로 존재한다.
종래 기술은 상기와 같이 서로 다른 경로가 물리적으로 존재하여 S-Box 치환부를 구현하는데 필요한 기억장치를 동시에 억세스(Access)해야 하는 데이터 컨텐션(Data contention) 문제를 해결한다. 또한 동일한 S-Box 치환부를 네개를 사용함으로써 면적이 증가되는 단점이 있다.
본 발명은 상기와 같은 종래기술의 문제점을 해결하기 위하여 안출된 것으로써, 주어진 시간에 데이터를 여러번 억세스함으로써 데이터 컨텐션(Contention)을 제거하고 면적을 최소화할 수 있는 암호화 장치를 제공하는데 그 목적이 있다.
본 발명은 면적을 감소시키면서도 성능을 증대시킬 수 있는 암호화 장치를 제공하는데 다른 목적이 있다.
도1는 일반적인 DES 아키텍쳐의 사이퍼 함수와 S-Box 치환부의 상세한 구성도,
도2는 본 발명이 적용되는 처리성능비를 증가시키는 4단의 파이프라인 구조를 갖는 DES 아키텍쳐의 블럭도,
도3은 도2의 4단 파이프라인 구조를 갖는 DES 아키텍쳐의 동작 순서를 나타내는 타이밍도,
도4는 도2의 4단 파이프라인 구조를 갖는 DES 아키텍쳐의 파이프라인 동작 순서를 나타내는 타이밍도,
도5는 4단 파이프라인 구조의 DES 아키텍쳐에서 종래의 단일 포트 S-Box 치환부의 구현 방식을 나타낸 상세한 블럭도,
도6은 본 발명이 적용되는 처리성능비를 증가시키는 8단의 파이프라인 구조를 갖는 DES 아키텍쳐의 블럭도,
도7은 도6의 8단 파이프라인 구조를 갖는 DES 아키텍쳐의 동작 순서를 나타내는 타이밍도,
도8은 도6의 8단 파이프라인 구조를 갖는 DES 아키텍쳐의 파이프라인 동작 순서를 나타내는 타이밍도,
도9는 도6의 8단 파이프라인 구조의 DES 아키텍쳐에서, 파이프라인을 사용한 경우와 사용하지 않은 경우에 사이퍼 함수가 연산되는 순서를 나타내는 순서도,
도10은 8단 파이프라인 구조의 DES 아키텍쳐에서 종래의 단일 포트 S-Box 치환부의 구현 방식을 나타낸 상세한 블럭도,
도11은 본 발명의 일실시예에 따른 2-포트 S-Box 치환부의 상세 블록도,
도12는 종래의 단일 포트 S-Box 치환부와 본 발명의 2-포트 S-Box 치환부의 동작을 나타내는 타이밍도,
도13은 본 발명의 다른 실시예에 따른 4-포트 S-Box 치환부의 상세 블록도,
도14는 종래의 단일 포트 S-Box 치환부와 본 발명의 4-포트 S-Box 치환부의 동작을 나타내는 타이밍도,
도15는 본 발명의 또다른 실시예에 따른 두 개의 2-포트 S-Box 치환부를 나타내는 블럭도,
도16은 종래 방식의 단일 포트 S-Box 치환부, 4포트 S-Box 치환부 및 두 개의 2-포트 S-Box 치환부의 동작을 나타내는 타이밍도.
* 도면의 주요 부분에 대한 부호의 설명 *
1110 : 멀티플렉서 1120 : S-Box
1130 : 디멀티플렉서 1140 : 제어기
상기 목적을 달성하기 위하여 본 발명의 암호화 장치는, 데이터 초기치환부, 제1 클럭 및 제2 클럭을 이용하는 n단 (n은 4이상의 짝수) 파이프라인 구조를 갖는 데이터 변형부 및 데이터 역초기치환부를 포함하고, 데이터 암호화 표준 알고리즘을 사용하여 평문 텍스트 블록의 암호화를 수행하기 위한 암호화 장치에 있어서, n/2 개의 48비트의 데이터 중에 하나를 선택하기 위한 멀티플렉서; 상기 멀티플렉서에서 출력된 48비트 중에서 6비트의 어드레스 8개를 각각 입력받아 4비트의 데이터 8 개를 각각 출력하는 8 개의 S-Box; 상기 4비트의 데이터를 n/2개로 분배하는 디멀티플렉서; 및 제3클럭 및 제4클럭에 따라 상기 멀티플렉서 및 디멀티플렉서를 제어하는 제어기를 포함하고, 상기 제3 클럭 및 상기 제4 클럭은 상기 제1 클럭 및 상기 제2 클럭보다 n/2배 빠른 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 암호화 장치는, 데이터 초기치환부, 제1 클럭 및 제2 클럭을 이용하는 8단 파이프라인 구조를 갖는 데이터 변형부 및 데이터 역초기치환부를 포함하고, 데이터 암호화 표준 알고리즘을 사용하여 평문 텍스트 블록의 암호화를 수행하기 위한 암호화 장치에 있어서, 48비트의 제1 및 제2 데이터 중에 하나를 선택하기 위한 제1 멀티플렉서; 상기 제1 멀티플렉서에서 출력된 48비트 중에서 6비트의 어드레스 8개를 각각 입력받아 4비트의 데이터 8 개를 각각 출력하는 8 개의 S-Box를 포함하는 제1 S-Box 치환부; 상기 제1 S-Box 치환부로부터의 4비트의 데이터를 두 개로 분배하는 제1 디멀티플렉서; 제3클럭 및 제4클럭에 따라 상기 제1 멀티플렉서 및 제1 디멀티플렉서를 제어하는 제1 제어기; 48비트의 제3 및 제4 데이터 중에 하나를 선택하기 위한 제2 멀티플렉서; 상기 제2 멀티플렉서에서 출력된 48비트 중에서 6비트의 어드레스 8개를 각각 입력받아 4비트의 데이터 8 개를 각각 출력하는 8 개의 S-Box를 포함하는 제2 S-Box 치환부; 상기 제1 S-Box 치환부로부터의 4비트의 데이터를 두 개로 분배하는 제2 디멀티플렉서; 및 상기 제3클럭 및 상기 제4클럭에 따라 상기 제2 멀티플렉서 및 제2 디멀티플렉서를 제어하는 제2 제어기를 포함하고, 상기 제3 클럭 및 상기 제4 클럭은 상기 제1 클럭 및 상기 제2 클럭보다 두배 빠른 것을 특징으로 한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 설명한다.
(실시예1)
도11은 본 발명의 일실시예에 따른 4단의 파이프라인 DES 아키텍쳐에서 2-포트 S-Box 치환부의 구현방식을 나타낸 상세한 블록도이다.
상기 도11을 참조하면, 본 발명의 S-Box 블럭은 제어기의 제어를 받아 입력되는 두 개의 48비트의 데이터 중에 하나를 선택하는 멀티플렉서(1110)와, 상기 멀티플렉서(1110)에서 출력된 48비트 중에서 6비트의 어드레스 8 개를 입력받아 4비트의 데이터 8 개를 출력하는 8 개의 S-Box(1120)와, 제어기의 제어를 받아 상기 4비트의 데이터를 두 개로 분배하는 디멀티플렉서(1130)와, 제1클럭(CLK_A)과 제2클럭(CLK_B)을 수신하여 입력받아 상기 멀티플렉서와 디멀티플렉서를 제어하는 제어기(1140)를 구비한다.
도12는 종래의 단일 포트 S-Box와 본 발명의 2-포트 S-Box의 동작을 비교하여 나타내는 타이밍도이다.
상기 도14를 참조하면, 본 발명에서는 제어기에 입력되는 두 배가 빠른 제1클럭(CLK_A)과 제2클럭(CLK_B)을 이용하여 롬(ROM)을 엑세스(Access)하는데 필요한 신호들을 발생시킨다. 각 시간 구간 ti-ti+1에서 제1경로(path1)와 제2경로(path2) 중의 한 경로를 선택하는 멀티플렉서에 의해 시분할된 제1경로(path1)와 제2경로(path2)와 제3경로(path3)와 제4경로(path4)가 개념적으로 존재하여 데이터 컨텐션(Data Contention) 문제를 해결한다. 즉, 제1 클럭(CLK_A)가 논리 하이(high)일 때 제1 경로(path1)를 선택하여 bi값들이 계산되고, 제2 클럭(CLK_B)가 논리 하이(high)일 때, 제1 경로(path1)를 선택하여 di값들이 계산된다.
(실시예2)
도13은 본 발명의 다른 실시예에 따른 8단의 파이프라인 DES 아키텍쳐에서 4-포트 S-Box의 구현을 나타낸 블럭도이다.
상기 도13을 참조하면, 본 발명의 S-Box 블럭은 제어기의 제어를 받아 입력되는 네 개의 48비트의 데이터 중에 하나를 선택하는 멀티플렉서(1310)와, 상기 멀티플렉서(1310)에서 출력된 48비트 중에서 6비트의 어드레스 8 개를 입력받아 4비트의 데이터 8 개를 출력하는 8 개의 S-Box(1320)와, 제어기의 제어를 받아 상기 4비트의 데이터를 네개로 분배하는 디멀티플렉서(1330)와, 제1클럭(CLK_A)과 제2클럭(CLK_B)를 입력받아 상기 멀티플렉서와 디멀티플렉서를 제어하는 제어기(1340)를 구비한다.
도14는 종래의 단일 포트 S-Box와 본 발명의 4-포트 S-Box의 동작을 비교하여 나타내는 타이밍도이다.
상기 도14를 참조하면, 본 발명에서는 제어기에 입력되는 네 배가 빠른 제1클럭(CLK_A)과 제2클럭(CLK_B)을 이용하여 롬(ROM)을 엑세스(Access)하는데 필요한 신호들을 발생시킨다. 각 시간 구간 ti-ti+1에서 제1경로(path1)와 제2경로(path2)와 제3경로(path3)와 제4경로(path4) 중의 한 경로를 선택하는 멀티플렉서에 의해 시분할된 제1경로(path1)와 제2경로(path2)와 제3경로(path3)와 제4경로(path4)가 개념적으로 존재하여 데이터 컨텐션(Data Contention) 문제를 해결한다.
도14에 도시된 바와 같이 t7-t8구간에서 b7, d5, f3, h1을 계산하기 위해서 4번 S-Box를 시분할 하여 엑세스(Access)함을 보여준다. 각 시간 구간 ti-ti+1에서 4 개의 경로 중에서 어떤 경로를 선택하는 것은 멀티플렉서와 디멀티플렉서를 제어하는 제어기의 구현 방식에 의존한다. 제어기에 입력되는 두 배 빠른 제1클럭(CLK_A)과 제2클럭(CLK_B)는 롬(ROM)을 엑세스(Access)하는데 필요한 신호들을 발생시키기 위한 기준이 된다.
본 실시예에서 제공하는 4-포트 S-Box 치환부는 도10에서 제시한 S-Box 치환부보다 면적을 1/4로 감소시킬 있는 장점이 있으나, 성능이 1/4로 감소하는 문제점이 발생한다. 또한, 4-포트 S-Box 치환부를 구현하기 위해서는 종래의 단일 포트 S-Box 치환부 구현을 위해 사용되는 기억장치보다 4배 빠른 기억장치를 사용해야만 하는 문제점이 있다.
(실시예 3)
본 실시예에서는 S-Box 치환부에서 4 배 빠른 기억 장치를 구현하기 어려운 경우 2 배 빠른 기억 장치 두개를 사용하여 2-포트 S-Box 치환부를 구현함으로써, 면적은 상기 도10에서 제시한 S-Box 치환부보다 1/2로 축소되고, 성능은 상기 도13에 도시된 S-Box 치환부보다 두 배 증가된 S-Box 치환부를 제공한다.
도15는 본 발명의 두 개의 2-포트 S-Box 치환부를 나타내는 블럭도이다.
상기 도15를 참조하면, 본 발명의 두개의 2-포트 S-Box 치환부는 제1제어기의 제어를 받아 입력되는 48 비트의 제1입력과 제2입력 중에서 하나를 선택하는 제1멀티플렉서(1510)와, 상기 제1멀티플렉서(1510)에서 출력된 48비트 중에서 6비트의 어드레스 8 개를 입력받아 4비트의 데이터 8 개를 출력하는 8 개의 제1S-Box(1520)와, 제1제어기의 제어를 받아 상기 4비트의 데이터를 두개로 분배하는 제1디멀티플렉서(1530)와, 제1클럭(CLK_A)과 제2클럭(CLK_B)를 입력받아 상기 제1멀티플렉서와 제1디멀티플렉서를 제어하는 제1제어기(1540)와, 제2제어기의 제어를 받아 입력되는 48 비트의 제3입력과 제4입력 중에서 하나를 선택하는 제2멀티플렉서(1550)와, 상기 제2멀티플렉서(1550)에서 출력된 48비트 중에서 6비트의 어드레스 8 개를 입력받아 4비트의 데이터 8 개를 출력하는 8 개의 제2S-Box(1560)와, 제2제어기의 제어를 받아 상기 4비트의 데이터를 두개로 분배하는 제2디멀티플렉서(1570)와, 제1클럭(CLK_A)과 제2클럭(CLK_B)를 입력받아 상기 제2멀티플렉서와 제2디멀티플렉서를 제어하는 제2제어기(1580)을 구비한다.
도16은 종래 방식의 단일 포트 S-Box 치환부와 4 포트 S-Box 치환부 그리고 본 발명의 2-포트 S-Box의 동작을 나타내는 타이밍도이다.
상기 도16을 참조하면, 본 발명에서는 제어기에 입력되는 두 배가 빠른 제1클럭(CLK_A)과 제2클럭(CLK_B)을 이용하여 롬(ROM)을 엑세스(Access)하는데 필요한 신호들을 발생시킨다. 각 시간 구간 ti-ti+1에서 제1경로(path1)와 제2경로(path2), 또는 제3경로(path3)와 제4경로(path4) 중의 한 경로를 선택하는 멀티플렉서에 의해 시분할된 제1경로(path1)와 제2경로(path2) 또는 제3경로(path3)와 제4경로(path4)가 개념적으로 존재하여 데이터 컨텐션(Data Contention) 문제를 해결한다. 즉, 제1클럭(CLK_A)가 논리 하이(high)일 때 제1경로(path1)을 선택하여 bi값들이 계산되고 제2클럭(CLK_B)가 하이(high)일 때 제2경로(path2)를 선택하여 di값들이 계산된다. 또한, 제1클럭(CLK_A)가 논리 하이(high)일 때 제3경로(path1)을 선택하여 fi값들이 계산되고 제2클럭(CLK_B)가 하이(high)일 때 제4경로(path2)를 선택하여 hi값들이 계산된다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
상기한 바와 같이 본 발명의 제1 및 제2 실시예에서는 S-Box를 한 개만 사용함으로써 S-Box가 차지하는 면적을 종래기술에 비해 1/2 또는 1/4로 감소시킬 수 있는 효과가 있다.
본 발명의 제3 실시예에서는 8단 파이프라인 DES 구조에서의 S-Box 치환부를 두 개의 2-포트 S-Box 치환부로 구현함으로써, S-Box 치환부가 차지하는 면적을 종래 기술에 비해 1/2로 축소하고, 성능을 두배로 증가시킬 수 있는 효과가 있다.
또한, 여러 형태의 DES 아키텍쳐를 구현하여 성능과 면적을 최적화 할 수 있도록 선택의 범위를 증대시킨다.

Claims (7)

  1. 데이터 초기치환부, 제1 클럭 및 제2 클럭을 이용하는 n단 (n은 4이상의 짝수) 파이프라인 구조를 갖는 데이터 변형부 및 데이터 역초기치환부를 포함하고, 데이터 암호화 표준 알고리즘을 사용하여 평문 텍스트 블록의 암호화를 수행하기 위한 암호화 장치에 있어서,
    n/2 개의 48비트의 데이터 중에 하나를 선택하기 위한 멀티플렉서;
    상기 멀티플렉서에서 출력된 48비트 중에서 6비트의 어드레스 8개를 각각 입력받아 4비트의 데이터 8 개를 각각 출력하는 8 개의 S-Box;
    상기 4비트의 데이터를 n/2개로 분배하는 디멀티플렉서; 및
    제3클럭 및 제4클럭에 따라 상기 멀티플렉서 및 디멀티플렉서를 제어하는 제어기를 포함하고,
    상기 제3 클럭 및 상기 제4 클럭은 상기 제1 클럭 및 상기 제2 클럭보다 n/2배 빠른 것을 특징으로 하는 암호화 장치.

  2. 제 1 항에 있어서,
    상기 제3클럭과 상기 제4클럭은 서로 반전된 신호임을 특징으로 하는 암호화 장치.

  3. 제 2 항에 있어서,
    상기 멀티플렉서와 디멀티플렉서는 물리적으로 존재하는 n/2 개의 입력과 출력 경로를 시분할하여 데이터의 충돌을 방지하는 것을 특징으로 하는 암호화 장치.

  4. 데이터 초기치환부, 제1 클럭 및 제2 클럭을 이용하는 8단 파이프라인 구조를 갖는 데이터 변형부 및 데이터 역초기치환부를 포함하고, 데이터 암호화 표준 알고리즘을 사용하여 평문 텍스트 블록의 암호화를 수행하기 위한 암호화 장치에 있어서,
    48비트의 제1 및 제2 데이터 중에 하나를 선택하기 위한 제1 멀티플렉서;
    상기 제1 멀티플렉서에서 출력된 48비트 중에서 6비트의 어드레스 8개를 각각 입력받아 4비트의 데이터 8 개를 각각 출력하는 8 개의 S-Box를 포함하는 제1 S-Box 치환부;
    상기 제1 S-Box 치환부로부터의 4비트의 데이터를 두 개로 분배하는 제1 디멀티플렉서;
    제3클럭 및 제4클럭에 따라 상기 제1 멀티플렉서 및 제1 디멀티플렉서를 제어하는 제1 제어기;
    48비트의 제3 및 제4 데이터 중에 하나를 선택하기 위한 제2 멀티플렉서;
    상기 제2 멀티플렉서에서 출력된 48비트 중에서 6비트의 어드레스 8개를 각각 입력받아 4비트의 데이터 8 개를 각각 출력하는 8 개의 S-Box를 포함하는 제2 S-Box 치환부;
    상기 제1 S-Box 치환부로부터의 4비트의 데이터를 두 개로 분배하는 제2 디멀티플렉서; 및
    상기 제3클럭 및 상기 제4클럭에 따라 상기 제2 멀티플렉서 및 제2 디멀티플렉서를 제어하는 제2 제어기를 포함하고,
    상기 제3 클럭 및 상기 제4 클럭은 상기 제1 클럭 및 상기 제2 클럭보다 두배 빠른 것을 특징으로 하는 암호화 장치.

  5. 제 4 항에 있어서,
    상기 제3클럭과 상기 제4클럭은 서로 반전된 신호임을 특징으로 하는 암호화 장치.

  6. 제 5 항에 있어서,
    상기 제1 멀티플렉서와 제1 디멀티플렉서는 물리적으로 존재하는 두 개의 입력과 출력 경로를 시분할하여 데이터의 충돌을 방지하는 것을 특징으로 하는 암호화 장치.

  7. 제 6 항에 있어서,
    상기 제2 멀티플렉서와 제2 디멀티플렉서는 물리적으로 존재하는 두 개의 입력과 출력 경로를 시분할하여 데이터의 충돌을 방지하는 것을 특징으로 하는 암호화 장치.
KR10-2001-0030464A 2000-05-31 2001-05-31 데이터 암호화 표준 알고리즘을 이용한 암호화 장치 KR100390821B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20000029631 2000-05-31
KR1020000029631 2000-05-31
KR1020000031574 2000-06-09
KR20000031574 2000-06-09

Publications (2)

Publication Number Publication Date
KR20010110162A KR20010110162A (ko) 2001-12-12
KR100390821B1 true KR100390821B1 (ko) 2003-07-12

Family

ID=26638049

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US6931127B2 (ko)
JP (1) JP2002040932A (ko)
KR (1) KR100390821B1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030068038A1 (en) * 2001-09-28 2003-04-10 Bedros Hanounik Method and apparatus for encrypting data
TW527783B (en) * 2001-10-04 2003-04-11 Ind Tech Res Inst Encryption/deciphering device capable of supporting advanced encryption standard
US20040202318A1 (en) * 2001-10-04 2004-10-14 Chih-Chung Lu Apparatus for supporting advanced encryption standard encryption and decryption
US7103180B1 (en) * 2001-10-25 2006-09-05 Hewlett-Packard Development Company, L.P. Method of implementing the data encryption standard with reduced computation
US7076059B1 (en) * 2002-01-17 2006-07-11 Cavium Networks Method and apparatus to implement the data encryption standard algorithm
US7257229B1 (en) * 2002-06-07 2007-08-14 Winbond Electronics Corporation Apparatus and method for key scheduling
JP2004088386A (ja) * 2002-08-27 2004-03-18 Rohm Co Ltd シリアルデータの再生回路及び再生方法
KR100442354B1 (ko) * 2002-10-07 2004-07-30 엘지전자 주식회사 Rc4방식의 암호화 장치 및 방법
EP1661295B1 (en) * 2003-09-05 2013-03-27 Telecom Italia S.p.A. Secret-key-controlled reversible circuit and corresponding method of data processing
US7962766B2 (en) * 2005-07-14 2011-06-14 Atmel Corporation Method and system for encryption-based design obfuscation for an integrated circuit
US20090245510A1 (en) * 2008-03-25 2009-10-01 Mathieu Ciet Block cipher with security intrinsic aspects
JP4687775B2 (ja) * 2008-11-20 2011-05-25 ソニー株式会社 暗号処理装置
KR101508495B1 (ko) * 2013-11-11 2015-04-07 고려대학교 산학협력단 아리아 암호화 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970013912A (ko) * 1995-08-21 1997-03-29 배순훈 데스 알고리즘을 이용한 암호화장치(A scrambler using DES algorithm)
US5835599A (en) * 1996-04-15 1998-11-10 Vlsi Technology, Inc. Muti-cycle non-parallel data encryption engine
JP2000075785A (ja) * 1998-08-26 2000-03-14 Fujitsu Ltd 高速暗号処理回路および処理方法
KR20010105775A (ko) * 2000-05-18 2001-11-29 강정용 병렬 Feistel 구조를 가진 데이터 암호 표준화시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347143B1 (en) * 1998-12-15 2002-02-12 Philips Electronics No. America Corp. Cryptographic device with encryption blocks connected parallel

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970013912A (ko) * 1995-08-21 1997-03-29 배순훈 데스 알고리즘을 이용한 암호화장치(A scrambler using DES algorithm)
US5835599A (en) * 1996-04-15 1998-11-10 Vlsi Technology, Inc. Muti-cycle non-parallel data encryption engine
JP2000075785A (ja) * 1998-08-26 2000-03-14 Fujitsu Ltd 高速暗号処理回路および処理方法
KR20010105775A (ko) * 2000-05-18 2001-11-29 강정용 병렬 Feistel 구조를 가진 데이터 암호 표준화시스템

Also Published As

Publication number Publication date
US20020009196A1 (en) 2002-01-24
JP2002040932A (ja) 2002-02-08
US6931127B2 (en) 2005-08-16
KR20010110162A (ko) 2001-12-12

Similar Documents

Publication Publication Date Title
KR100377175B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR100377176B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
US6831979B2 (en) Cryptographic accelerator
US7221763B2 (en) High throughput AES architecture
US7561689B2 (en) Generating keys having one of a number of key sizes
KR100377172B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
KR100390821B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
US8300805B1 (en) AES core with independent inputs and outputs
US9172537B1 (en) Array encryption core
Fischer Realization of the round 2 AES candidates using Altera FPGA
US20050232416A1 (en) Method and device for determining a result
KR20050087271A (ko) 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
KR20020087331A (ko) 부분 라운드간 파이프라인 기법을 이용한 AES Rijndael암호 및 복호 회로
Zigiotto et al. A low-cost FPGA implementation of the Advanced Encryption Standard algorithm
KR100377173B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR100384873B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR100511684B1 (ko) 유사 난수 발생기
KR100442354B1 (ko) Rc4방식의 암호화 장치 및 방법
KR20030087893A (ko) 라운드 키의 온라인 계산 기능을 갖는 모듈화 구조의 AESRijndael 라운드 키 생성 회로
CN118157843A (zh) 就地执行认证解密优化的aes-gcm引擎
KR20010109626A (ko) 3중 데이터 암호화 표준 아키텍쳐를 구현한 암호화 장치
KR20050117268A (ko) 에이이에스 온라인 라운드 키 생성회로
KR20030037890A (ko) 디이에스 암호화 장치

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee