KR20030043451A - 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법 - Google Patents

대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법 Download PDF

Info

Publication number
KR20030043451A
KR20030043451A KR1020010074634A KR20010074634A KR20030043451A KR 20030043451 A KR20030043451 A KR 20030043451A KR 1020010074634 A KR1020010074634 A KR 1020010074634A KR 20010074634 A KR20010074634 A KR 20010074634A KR 20030043451 A KR20030043451 A KR 20030043451A
Authority
KR
South Korea
Prior art keywords
cryptographic
command
unit
symmetric
data
Prior art date
Application number
KR1020010074634A
Other languages
English (en)
Other versions
KR100406139B1 (ko
Inventor
김호원
김무섭
최용제
박영수
정교일
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2001-0074634A priority Critical patent/KR100406139B1/ko
Publication of KR20030043451A publication Critical patent/KR20030043451A/ko
Application granted granted Critical
Publication of KR100406139B1 publication Critical patent/KR100406139B1/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • 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
    • 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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

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

Abstract

본 발명에 따른 대칭 및 비대칭키 암호 연산 처리 방법은 암호 연산 처리 방법에 있어서, 외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 암호 연산을 수행하기 위한 명령어를 추출하는 단계와, 그 추출된 명령어 및 그 명령어의 수행에 의해 암호 연산 처리될 데이터가 저장된 주소정보를 데이터와 별도로 저장하는 단계와, 추출된 명령어를 해석하여, 어떤 암호 처리에 해당하는지와 어떤 연산을 실행해야 하는지를 결정하고, 명령어에 대한 실행 순서를 스케줄링하는 단계와, 신호처리를 위해 필요한 키값을 입력받아 스케줄링된 암호연산 수행 순서에 따라 해당 주소에 저장된 데이터에 대하여 해당 명령어의 실행을 통해 대칭 및 비대칭키 암호 연산을 처리하는 단계를 수행하여 대칭키 암호 알고리즘과 비대칭키 암호 알고리즘을 고속으로 처리하며, 대칭키 암호 알고리즘과 비대칭키 암호 알고리즘의 기본 연산 요소들과 제어기 및 메모리를 효율적인 다대다 상호 연결망으로 연결하여, 다양한 암호 알고리즘에 대해서 높은 성능을 발휘한다.

Description

대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법{system and method for Symmetric and Asymmetric Key Crypto Processing}
본 발명은 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법에 관한 것으로, 상세하게는 SEED나 Triple-DES, Rijndael과 같은 대칭키 암호 알고리즘과 RSA, 다항식 기저 기반 ECC, 정규 기저 기반 ECC 비대칭키 암호 알고리즘을 고속으로 처리하는 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법에 관한 것이다.
본 발명에서 제안하는 대칭 및 비대칭키 암호 연산 처리 시스템은 이들 암호 알고리즘의 기본 연산 요소들을 효율적인 상호 연결망으로 구성하여, 다양한 암호 알고리즘을 고속으로 처리해 준다.
종래의 암호 처리기는 펜티엄 프로세서나 PowerPC, SPARC와 같은 범용 프로세서를 사용하여, 소프트웨어로 처리하는 경우와 한 가지 혹은 두 가지의 암호 알고리즘 처리를 위한 주문형 반도체 하드웨어를 사용하는 경우가 대부분이었다. 이러한 방법을 사용하여 암호 알고리즘을 처리하는 경우, 전자는 호스트 컴퓨터에 과도한 부하를 유발하여 낮은 암호 프로토콜 처리 능력을 가지거나, 후자는 특정 암호 알고리즘만 수행할 수 있어서, 제한된 응용 분야에만 적용할 수 있다는 단점을 가진다.
범용 프로세서나 디지털 신호 처리 프로세서는 정수 연산, 부동 소수점 연산, 메모리 억세스 등과 같은 일반 명령어 연산에 대해서는 고성능을 발휘하지만, 암호 알고리즘 연산에 대해서는 높은 성능을 발휘하지 못한다. 즉, 암호 알고리즘의 연산 특성을 고려하여 설계된 프로세서가 아니기 때문에 높은 성능을 발휘하지 못한다. 예를 들어, 일반 알고리즘과 비교해 볼 때, 대칭키 암호 알고리즘에는 치환(substitution)과 회전(rotation), 순환(permutation) 등의 연산이 많으며, 비대칭키 암호 알고리즘인 경우에는 다항식에서의 모듈러 곱셈(modular multiplication) 및 축약(reduction) 과 같은 연산 요소가 많다.
특정 암호 알고리즘을 하드웨어로 수행할 수 있는 주문형 반도체 암호 프로세서의 경우를 보면, 이 방법은 현재 많이 사용되는 암호 프로토콜이 다수의 암호 알고리즘을 수행해야 한다는 현실에 비춰 볼 때, 활용도가 떨어지게 된다. 예로서, 전자 상거래나 가상 사설망, 유무선 인터넷에서 많이 사용되는 SSL 프로토콜에서는 데이터의 암호화 및 인증에 다양한 대칭키 암호 알고리즘과 비대칭키 암호 알고리즘, 서명 및 해쉬 함수를 필요로 하는 문제점이 있다.
본 발명은 이러한 종래의 문제점을 해결하고자 안출된 것으로, 다양한 암호 알고리즘에 대해서 적은 양의 하드웨어 회로를 사용하면서도 높은 성능을 가지는 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법을 제공하는데 그 목적이 있다.
도 1은 본 발명의 실시예에 따른 대칭키 및 비대칭키 암호 알고리즘을 고속으로 처리하는 암호 연산 처리 시스템의 전체 구성도.
도 2는 도 1에 도시된 명령어 메모리에서의 명령어 필드 구조도.
도 3은 도 1에 도시된 암호 연산 처리부의 내부 구성 블록도.
도 4a 및 도 4b는 도 3의 암호 연산 처리부에서 고성능 암호 연산을 위한 상호 연결망 의 구조도.
도 5는 본 발명에 따른 단일 트랜지스터를 사용한 상호 연결망 노드 스위치의 구조도.
* 도면의 주요 부분에 대한 부호의 설명
110 : 입출력부111 : 사용자 응용 프로그램 인터페이스부
112 : 디바이스 드라이버부113 : PCI 인터페이스부
114 : 입출력제어부120 : 스케줄러 및 디코더부
130 : 명령어 추출부140 : 메모리
141 : 명령어 메모리142 : 입력 메모리(데이터)
143 : 출력 메모리150 : 제어부
160 : 암호 연산 처리부160a : 상호 연결망
161 : 치환연산부162 : 순열 연산부
163 : 모듈러 연산부164 : 다항식/연산부
165 : 논리 연산부166 : 산술 연산부
167 : 프로그램 가능한 로직부168 : 키관리부
169 : 레지스터 파일부170 : 스마트 카드부
이러한 목적을 달성하기 위한 본 발명에 따른 대칭 및 비대칭키 암호 연산 처리 시스템의 일측면에 의하면, 외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 암호 연산을 수행하기 위한 명령어를 추출하는 명령어 추출부와, 명령어 추출부에 의해 추출된 명령 및 데이터에 대하여 입력된 명령어를 해석하여, 어떤 암호 처리에 해당하는지와 어떤 연산을 실행해야 하는지를 결정하고, 명령어에 대한 실행 순서를 스케줄링하는 스케줄러 및 디코더부와, 명령어 추출부에 의해 추출된 명령어 및 네트워크를 통해 입력된 데이터를 별도로 저장하는 저장부와, 스케줄러 및 디코더에 의해 스케줄링된 암호연산 수행 순서에 따라 저장부에 저장된 명령어를 수행하여 해당 데이터에 대한 대칭 및 비대칭 암호 연산을 처리하는 암호 연산 처리부와, 스케줄러 및 디코더부에 의해 스케줄링 된 수행순서에 따라 저장부에 저장된 데이터에 대하여 암호 연산을 위한 명령어의 실행을 수행하도록 암호 연산처리부를 제어하는 제어부를 포함하여 구성된다.
또한 본 발명에 따른 대칭 및 비대칭키 암호 연산 처리 방법의 일측면에 따르면, 암호 연산 처리 방법에 있어서, 외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 암호 연산을 수행하기 위한 명령어를 추출하는 단계와, 그 추출된 명령어 및 그 명령어의 수행에 의해 암호 연산 처리될 데이터가 저장된 주소정보를 데이터와 별도로 저장하는 단계와, 추출된 명령어를 해석하여, 어떤 암호 처리에 해당하는지와 어떤 연산을 실행해야 하는지를 결정하고, 명령어에 대한 실행 순서를 스케줄링하는 단계와, 신호처리를 위해 필요한 키값을 입력받아 스케줄링된 암호연산 수행 순서에 따라 해당 주소에 저장된 데이터에 대하여 해당 명령어의 실행을 통해 대칭 및 비대칭키 암호 연산을 처리하는 단계를 수행한다.
또한 본 발명에 따른 대칭 및 비대칭키 암호 연산 처리 방법을 수행하기 위한 기록매체의 일측면에 따르면, 대칭 및 비대칭키 암호 연산 처리 방법을 수행하기 위하여, 디지탈 처리장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지탈 처리장치에 의해 판독될 수 있는 기록매체에 있어서, 외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 암호 연산을 수행하기 위한 명령어를 추출하는 단계와, 그 추출된 명령어 및 그 명령어의 수행에 의해 암호 연산 처리될 데이터가 저장된 주소정보를 데이터와 별도로 저장하는 단계와, 추출된 명령어를 해석하여, 어떤 암호 처리에 해당하는지와 어떤 연산을 실행해야 하는지를 결정하고, 명령어에 대한 실행 순서를 스케줄링하는 단계와, 암호처리를 위해 필요한 키값을 입력받아 스케줄링된 암호연산 수행 순서에 따라 해당 주소에 저장된 데이터에 대하여 해당 명령어의 실행을 통해 대칭및 비대칭키 암호 연산을 처리하는 단계를 포함한다.
본 발명에 따른 대칭키 및 비대칭키 암호 프로세서는 SEED나 Triple-DES, Rijndael과 같은 대칭키 암호 알고리즘과 RSA, 다항식 기저 기반 ECC, 정규 기저 기반 ECC 비대칭키 암호 알고리즘을 고속으로 수행한다. 발명에서 제시하는 암호 프로세서는 이들 암호 알고리즘의 근간이 되는 치환과 회전, 순환, 산술, 논리 연산과 같은 기본 연산 요소들과 다항식에서의 모듈러 곱셈(modular multiplication) 및 축약(reduction), 부울 연산, 역수 계산 등과 같은 연산 요소들을 특별히 고안된 연산 블록 및 상호 연결망, 제어기, 레지스터 파일로 구현하여, 다양한 암호 알고리즘을 고속으로 처리한다.
본 발명에서 제시하는 하드웨어 암호 처리기는 특정 프로세서의 코프로세서로 활용할 수 있을 뿐만 아니라, PCI 인터페이스를 가지기 때문에, 독립적인 시스템으로도 활용할 수 있기 때문에, 암호 알고리즘 처리가 필요한 모든 컴퓨터 환경 및 네트워크 환경에서 사용할 수 있다. 컴퓨터 환경으로는 휴대용 전화기 및 PDA와 같은 내장형 암호 프로세서로 활용할 수 있으며, 데스크 탑 컴퓨터, 전자 상거래 서버와 같은 서버급 컴퓨터에서 사용할 수 있다. 또한, 네트워크 환경에서는 라우터나 게이트웨이, 스위치 등에서 사용할 수 있다.
본 발명에서 제시하는 다기능 대칭키 및 비대칭키 암호 프로세서는 특별히 고안된 상호 연결망 및 암호 연산 블록, 레지스터 파일, 제어기로 인하여 다수의 암호 알고리즘들이 병렬로 수행될 수 있으며, 한 사이클 주기 동안 다수의 연산을 수행할 수 있다. 특히, 상호 연결망에서 경로를 새로 설정함으로서, 한 사이클 동안 수행할 수 있는 연산 블록의 수를 새롭게 조정할 수 있다. 이는 암호 프로세서의 동작 주파수 및 연산 요소의 지연 시간을 고려하여 정해진다. 또한, 레지스터 파일을 논리적 영역으로 분할 함으로서, 파이프라인 기법을 구현하여, 성능을 높일 수 있다.
연산 블록에 대한 제어 및 상호 연결망에서의 경로 설정, 레지스터 파일에 대한 데이터 입출력 제어는 제어기에 의해 관리되며, 외부에서 입력되는 암호 프로세서 구동 명령어는 명령 추출 및 디코더에서 인식한다. 입출력 데이터는 명령어와 분리되어 입력 메모리 및 출력 메모리에 저장되기 때문에, 효율적인 명령어 및 데이터 처리가 용이하다.
이하, 첨부된 도면을 참조하면서 다기능 대칭키 및 비대칭키 암호 프로세서 시스템의 구조 및 동작 방법에 대하여 보다 자세하게 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 대칭키 및 비대칭키 암호 알고리즘을 고속으로 처리하는 다기능 암호 프로세서 시스템의 전체 구성 블록도이다. 도 1을 참조하면, 본 발명에 따른 암호 처리 시스템은, 사용자 응용 프로그램 인터페이스부(111)와 디바이스 드라이버부(112), PCI 인터페이스부(113), 입출력 제어부(114)로 이루어지는 입출력부(110)와, 스케쥴러 및 디코더부(120)와, 명령어 추출부(130)와, 명령어 메모리(141), 입력 메모리(142), 출력 메모리(143)로 이루어지는 저장부(140)와, 제어부(150)와, 암호 연산 처리부(160)와, 스마트카드부(170)로 구성된다.
사용자 응용 프로그램 인터페이스부(111)는 다기능 대칭키 및 비대칭키 암호프로세서를 응용 환경에서 사용할 수 있도록 하는 부분이다. 이는 암호 프로세서가 지원하는 다양한 암호 알고리즘과 키 관리 기술을 사용할 수 있도록 한다.
디바이스 드라이버부(112)는 본 발명에서 제안하는 다기능 암호 프로세서를 응용 시스템의 운영 체제에서 인식할 수 있도록 해주는 것으로 실시 예에서는 다기능 암호 프로세서가 PCI 버스 인터페이스를 가지기 때문에, PCI 디바이스 드라이버가 필요하다.
하지만, 일반적으로 다기능 암호 프로세서는 다양한 버스에 적용할 수 있기 때문에, 디바이스 드라이버부(112)는 다기능 암호 프로세서의 인터페이스 특성에 맞도록 개발되어져야 한다. 디바이스 드라이버부(112)를 통하여, 사용자 응용 환경에서 원하는 명령어 및 데이터를 암호 프로세서에 송수신할 수 있다.
PCI 인터페이스부(113)는 암호 프로세서와 이의 응용 시스템 입출력 버스를 연결시켜 주는 부분으로서, PCI 설정 레지스터(PCI Configuration Register)를 통하여, 암호 프로세서의 상태를 시스템에 알려준다. 또한, 입출력 제어부(114)와 함께 사용되어, 대량 데이터 입출력을 위한 DMA도 가능하게 된다.
스케줄러 및 디코더부(120)는 입력된 명령을 해석하여, 어떤 암호 처리에 해당하는지와 어떤 연산 블록을 사용해야 하는지를 결정한다. 또한, 명령에 대한 실행 순서 조정을 통하여, 암호 프로세서의 성능 향상에 기여한다.
명령어 추출부(130)는 PCI 인터페이스부(113)를 통과하여 수신되는 암호 프로세서에 대한 명령어 및 데이터 중에서 명령어를 추출하는 부분이다. 명령어를 추출하는 방법은 PCI 버스의 메모리 매핑 기능을 사용하거나, 패킷 헤더를 관찰하여명령어를 추출할 수 있다. 명령어와 데이터를 분리함으로서, 암호 프로세서의 성능을 높일 수 있다. 추출된 명령어는 명령어 메모리부(141)에 저장된다. 이때, 해당 데이터의 위치 정보도 같이 저장된다.
입력 메모리부(142)는 다기능 암호 프로세서 처리에 필요한 데이터가 저장되는 곳으로, 명령은 명령어 메모리부(141)에 저장되고, 이 곳에는 해당 데이터만 저장된다.
출력 메모리부(143)는 다기능 암호 프로세서의 연산 블록에서 수행된 결과 혹은 중간 결과값을 저장하는 곳이다. 제어부(150)에 의해서, 수행 종료를 응용 시스템에 알렸을 경우, 최종 연산 결과는 응용 시스템으로 전송된다. 만일 중간 결과값을 저장한 경우라면, 이 데이터는 향후에 다시 암호 연산 처리부(160)에서 사용된다.
제어부(150)는 다기능 암호 프로세서의 명령에 따라, 암호 연산 처리부(160)를 제어한다. 제어부(150)는 암호 연산 처리부내의 치환, 순열, 모듈러 연산, 논리 연산, 산술 연산, 다항식 연산, 랜덤 로직 연산을 제어하며, 키 관리부와 레지스터 파일을 제어한다. 또한, 상호 연결망의 경로를 제어하여, 이들 연산 블록간의 데이터 이동을 제어한다.
암호 연산 처리부(160)는 다기능 암호 프로세서의 기본 암호 연산 블록들로 이루어져 있는데, 대칭키 암호 알고리즘을 수행하기 위해서 치환 연산, 순열 연산, 모듈러 연산, 논리 연산, 산술 연산부를 구비하며, 비대칭키 암호 알고리즘을 수행하기 위해서, 다항식 연산, 축약 연산, 랜덤 로직 연산부를 구비하고 있다. 이에대한 자세한 설명은 도 3에서 기술한다.
스마트카드부(170)는 암호 연산 처리부(160)내의 키 관리 장치와 함께 사용되어, 다기능 암호 프로세서의 보안성을 강화한다. 다기능 암호 프로세서의 사용 권한을 얻기 위해서는 스마트카드내의 키 값으로 인증 절차를 거쳐야 하며, 키 관리 장치 내에 접근하기 위해서도 이와 같은 인증 절차가 필요하다.
도 2는 본 발명에 따른 다기능 대칭키 및 비대칭키 암호 프로세서의 명령어 필드 구조를 보여주고 있다. 각 명령어 필드의 크기는 32비트 길이를 가진다. 제어 명령과 데이터 명령은 매핑 된 주소값으로 확인한다. 제어 명령어의 구조를 보면 비트 31에서 비트 30까지 태그 필드(141a)로 정의되며, 이는 대칭키 알고리즘을 제어하는지 아니면, 비대칭키 알고리즘을 제어하는지를 알려준다. 이 필드의 값이01이면 대칭키 알고리즘에 해당하고, 10이면 비대칭키 알고리즘에 해당한다. 또한, 11이면, 대칭키와 비대칭키의 병렬 수행을 의미한다. 00은 현재 사용하지 않는다. 연산 블록 ID 필드(141b)는 비트 29에서 비트 25까지, 5비트 길이를 갖는다. 이는 암호 연산 처리부(160)내의 기본 연산 블록 ID를 표시해 주는 것으로 이에 대한 자세한 설명은 도 3에서 하도록 한다. 명령어는 각 연산 블록에 대한 제어와 상호 연결망의 경로 설정 명령이다. 데이터 명령어(141e)는 32비트 길이를 가지며, 연속적으로 입력 받을 수 있다.
도 3은 도 1에 도시된 암호 연산 처리부의 내부 구성 블록도이다. 도 3을 참조하면, 암호 연산 처리부(160)는 치환 연산부(161), 순열 연산부(162), 모듈러 연산(163), 다항식 연산(164), 논리 연산부(165), 산술 연산부(166), 프로그램 가능한 랜덤 로직부(167), 키 관리부(168), 레지스터 파일부(169), 상호 연결망(160a)으로 구성된다.
치환 연산부(161)는 대칭키 암호 알고리즘에서 S-박스 형태로 존재하며, SEED용 S-박스와 DES용 S-박스가 기본적으로 구현이 되어 있다. 만일 새로운 형태의 S-박스를 필요로 한다면, 프로그램 가능한 랜덤 로직부(167)을 이용하여, 구현할 수 있다. 순열 연산부(162)는 대칭키 암호 알고리즘에서 치환 연산과 함께 사용되어 알고리즘의 랜덤성을 강화한다. 순열 연산 블록도 치환 연산 블록과 마찬가지로 SEED용과 DES용이 기본적으로 구현된다.
각 연산부는 각각 고유 ID값을 가지는데, 제어부(150)에서는 이 값을 사용하여, 해당 블록을 확인한다. 예를 들어, 치환 연산부(161)는 0번, 순열 연산부(162)는 1번이다. 이때, SEED이냐, DES이냐는 도 2에 도시된 명령어 필드에서 확인한다. 모듈러 연산부(163)는 2값을 가지며, 다항식 연산부(164)에서의 다항식 곱셈 연산은 3, 다항식 곱 및 축약 연산은 4, 논리 연산부(165)에서 NAND 연산은 5, NOT 연산은 6, XOR 연산은 7, AND 연산은 8, NOR 연산은 9, OR 연산은 10값을 갖는다. 또한, 산술 연산부(166)에서, 더하기 값은 11, 빼기는 12이다. 또한 프로그램 가능한 랜덤 로직부(167)는 13값을 가지고, 키 관리부(168)는 14, 레지스터 파일부(169)는 15, 상호 연결망(160a)은 16 값을 갖는다. 각 연산부는 내부 블록을 가질 수 있는데, 이에 대한 구별은 도 2의 명령어 필드에서 확인한다.
프로그램 가능한 랜덤 로직부(167)는 추가적으로 필요한 새로운 로직을 구현하고자 하는 경우(예를 들어, 새로운 대칭키 알고리즘의 치환 연산, 순열 연산, 비대칭키 알고리즘의 부울 연산 등)에 사용할 수 있다. 상호 연결망(160a)은 버스 구조 혹은 메쉬 구조, 토러스 구조, 다단 스위치 구조(Multistage Interconnection Network)로 이뤄지는데, 버스 구조를 제외한 나머지 구조는 모두 각 노드가 특별한 스위치로 구성된다. 이에 대해서는 도 4와 5에서 설명하도록 한다.
도 4a 및 도 4b는 고성능 암호 연산을 위한 상호 연결망 구조를 보여주고 있다. 도 4a에서처럼, 각 연산 블록들은 상호 연결망(160a)으로 연결된다. 이때, 연결망 구조는 버스 구조, 메쉬 구조, 토러스 구조, 그 외에, MIN 구조(Benes, Omega, Butterfly 네트워크 등)를 가질 수 있다.
이때, 버스 구조는 하드웨어적으로 단순하지만, 네트워크 통신 능력이 제한된다는 단점이 있다. 그 외의 구조는 다대다 연결망을 형성하므로, 동시에 여러 연산 블록들이 서로 통신할 수 있고, 특정 연산을 수행할 수 있게 된다. 즉, 어떤 사이클 주기 동안 각 블록은 자기 나름대로의 특정 연산을 수행할 수 있어서, 다기능 암호 프로세서의 병렬성이 증가한다. 또한, 상호 연결망(160a)은 각 연산부의 입출력을 연결할 수 있어, 한 사이클 동안에 여러 동작을 수행할 수 있도록 만들 수 있다. 예를 들어, 도 4a에서는 레지스터 파일로부터 읽은 데이터에 대한 치환 연산부(161)에 의한 치환연산과, 그 결과에 대하여 산술 연산부(166)에 의한 산술 연산을 수행하는 모습을 보여주고 있으며, 그 결과는 다시 레지스터 파일(169)에 저장된다.
도 4b에는 2차원 메쉬 구조의 상호 연결망에서 이를 구현한 예를 보여주고 있다. 메쉬 구조 상호 연결망에서 각 노드는 단일 트랜지스터 스위치에 의해 ON 혹은 OFF되기 때문에, 상호 연결망이 그다지 많은 하드웨어 칩 면적을 소요하지 않는다. 도 5에 이 스위치의 구조를 보여주고 있다. 각 스위치에 대한 ON/OFF 정보는 제어기에 의해 제어되며, 외부 명령어 필드(도 2의 167c)에 의해 정해진다.
도 4a에서 레지스터 파일(169)은 각 연산부가 공유 메모리로 사용하며, 2개의 입력 포트와 2개의 출력 포트를 각각 독립적으로 가진다. 또한, 각 메모리 영역은 재설정 가능하기 때문에, 연산부를 병렬 처리 형태로 사용할 수 있게 된다. 또한, 상호 연결망을 사용하는 경우, 버스를 사용하는 것보다, 한꺼번에 많은 독립적인 경로를 설정할 수 있기 때문에, 병렬 처리 특성을 높일 수 있다.
도 4b에서 보는 바와 같이 치환 연산된 결과를 산술 연산의 입력으로, 그리고, 그 연산 결과를 레지스터 파일에 입력하는 과정을 한 사이클 동안에 수행할 수 있다.
도 5에서 00 좌표의 스위치, 즉 SW00(167a)을 ON하고, SW10(167c), SW20(167e)을 OFF한다면, ROW 0와 Column 0이 연결된다는 것을 의미한다. 도 1의 제어부(150)는 상호 연결망에서 두 개 이상의 스위치 제어 신호가 활성화되지 않도록 제어해야 한다.
본 발명에 따른 다기능 암호 프로세서 시스템은 다음과 같은 효과를 제공할 수 있다.
첫째, 본 발명에 따른 다기능 암호 프로세서 시스템은 SEED, Triple-DES,Rijndael 대칭키 암호 알고리즘과 RSA, 다항식 기저 기반 ECC, 정규 기저 기반 ECC 비대칭키 암호 알고리즘을 고속으로 처리한다. 즉, 대칭키를 사용한 데이터 암호화와 비대칭키를 사용한 인증 기능을 효율적으로 수행하기 때문에, 다양한 전자 상거래 응용, 가상 사설망, 유무선 인터넷 정보보호 응용에 사용할 수 있다. 또한, 새로운 대칭키 암호 알고리즘과 비대칭키 암호 알고리즘을 수용할 수 있다.
둘째, 본 발명에 따른 다기능 암호 프로세서 시스템은 공통 연산 블록을 사용하여, 다양한 대칭키 암호 알고리즘과 비대칭키 암호 알고리즘을 수행할 수 있는 구조로 되어 있기 때문에, 높은 효율성을 제공한다. 또한, 각 기본 암호 연산 블록은 상호 연결망으로 구성되기 때문에, 한 사이클 주기 동안에 여러 연산 블록을 수행할 수 있어서, 높은 성능을 제공할 수 있다.
셋째, 본 발명에 따른 다기능 암호 프로세서 시스템은 독립적인 다중 입출력 단자를 갖는 레지스터 파일 구조와 다대다 통신이 가능한 상호 연결망을 가지기 때문에, 암호 알고리즘 수행시 높은 병렬성을 제공할 수 있다.

Claims (19)

  1. 외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 암호 연산을 수행하기 위한 명령어를 추출하는 명령어 추출부와,
    상기 명령어 추출부에 의해 추출된 명령 및 데이터에 대하여 입력된 명령어를 해석하여, 어떤 암호 처리에 해당하는지와 어떤 연산을 실행해야 하는지를 결정하고, 명령어에 대한 실행 순서를 스케줄링하는 스케줄러 및 디코더부와,
    상기 명령어 추출부에 의해 추출된 명령어 및 상기 네트워크를 통해 입력된 데이터를 별도로 저장하는 저장부와,
    상기 스케줄러 및 디코더에 의해 스케줄링된 암호연산 수행 순서에 따라 상기 저장부에 저장된 명령어를 수행하여 해당 데이터에 대한 대칭 및 비대칭 암호 연산을 처리하는 암호 연산 처리부와,
    상기 스케줄러 및 디코더부에 의해 스케줄링 된 수행순서에 따라 상기 저장부에 저장된 데이터에 대하여 암호 연산을 위한 명령어의 실행을 수행하도록 상기 암호 연산처리부를 제어하는 제어부를 포함하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  2. 제 1항에 있어서, 상기 명령어 추출부는,
    PCI 버스의 메모리 매핑 또는 패킷 헤더를 관찰하여 명령어를 추출하는 대칭및 비대칭키 암호 연산 처리 시스템.
  3. 제 1항에 있어서, 상기 저장부는,
    상기 명령어 추출부에 의해 추출된 명령어를 저장하는 명령어 메모리와,
    상기 명령어 메모리와 별도로 암호 연산 처리를 위한 데이터를 저장하는 입력 메모리와,
    상기 암호 연산 처리부에서의 연산 수행결과 또는 중간 결과를 저장하는 출력 메모리를 포함하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  4. 제 3항에 있어서, 상기 명령어 메모리는,
    상기 명령어를 수행하기 위한 해당 데이터의 메모리 주소 정보를 저장하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  5. 제 3항에 있어서, 상기 명령어 메모리는, 해당 명령어를 저장할때,
    대칭키 또는 비대칭키 암호 알고리즘의 실행여부를 나타내는 필드와,
    상기 암호 연산 처리부에서 수행되어야할 연산의 종류를 나타내는 필드로 구분하여 저장하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  6. 제 1항에 있어서, 암호 연산 처리부는,
    상기 입력된 명령어 중 대칭키 알고리즘의 명령어에 대한 암호처리를 수행하는 대칭키 암호 연산 처리부와,
    상기 대칭키 암호 처리부와 별도의 버스를 사용하도록 병렬 구성되어 상기 입력된 명령어 중 비대칭키 알고리즘의 명령어에 대한 암호처리를 수행하는 비대칭키 암호 연산 처리부를 포함하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  7. 제 6항에 있어서, 상기 대칭키 암호 처리부에서,
    대칭키 알고리즘은 KASUMI, Rijndael, Triple-DES, SEED의 알고리즘중 적어도 하나를 포함하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  8. 제 6항에 있어서, 상기 비대칭키 암호 처리부에서,
    상기 비대칭키 알고리즘은 해쉬/서명함수, 난수값을 발생시키는 RNG, ECC, RSA의 알고리즘 중 적어도 하나를 포함하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  9. 제 6항에 있어서, 대칭키 암호 연산 처리부는,
    치환 연산을 수행하는 치환 연산부와,
    순열 연산을 수행하는 순열 연산부와,
    모듈러 연산을 수행하는 모듈러 연산부와,
    논리 연산을 수행하는 논리 연산부와,
    산술 연산을 수행하기 위한 산술 연산부를 포함하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  10. 제 6항에 있어서, 비대칭키 암호 연산 처리부는,
    다항식 연산을 수행하는 다항식 연산부와,
    각 연산부의 연결 경로를 설정하기 위해 부울연산을 프로그램할 수 있는 프로그램 가능한 랜덤 로직부를 포함하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  11. 제 6항에 있어서,
    각 연산부의 연산 결과를 저장하는 레지스터 파일부와,
    상기 각 연산부간의 상호 연결을 수행하기 위한 다대다 상호 연결망
    암호 연산시 보안을 위한 키 인증을 수행하는 키관리부를 더 포함하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  12. 제 11항에 있어서, 상기 레지스터 파일부는,
    레지스터 파일을 논리적 영역으로 분할하여 파이프 라인 레지스터로 사용되는 대칭 및 비대칭키 암호 연산 처리 시스템.
  13. 제 11항에 있어서,
    상기 상호 연결망은 버스 구조, 메쉬 구조, 토러스 구조, 다단 스위치 구조 중 어느 하나를 포함하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  14. 제 1항에 있어서,
    외부의 시스템 환경에 연동하여 데이터 및 데이터에 대한 암호화를 수행하기 위한 사용자의 명령어를 입력받고, 상기 암호처리부에 의해 암호처리된 데이터를 상기 외부의 시스템에 전송하는 입출력부를 더 포함하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  15. 제 14항에 있어서, 상기 입출력부는,
    사용자 응용 환경에서 하드웨어 암호 처리를 수행하기 위한 인터페이싱을 수행하는 사용자 응용 프로그램 인터페이스부와,
    상기 사용자 응용 프로그램 인터페이스부와 연동하여 상기 시스템에 대하여 하드웨어적으로 인식되기 위한 시스템 드라이버를 제공하는 디바이스 드라이버부와,
    시스템의 입출력 버스에 연결되어 상기 사용자 응용 프로그램 인터페이스부 및 디바이스 드라이버부에 연동하여 PCI 인터페이싱을 수행하는 PCI 인터페이스부와,
    상기 PCI 인터페이스부를 통한 데이터 입출력을 관리하여 시스템과의 데이터 입출력을 제어하는 입출력 제어부를 포함하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  16. 제 1항에 있어서,
    상기 암호 연산 처리부에서의 암호 연산을 수행하기 위한 키인증을 위해 스마트카드를 통하여 사용자 인증을 수행하기 위한 스마트 카드부를 더 포함하는 대칭 및 비대칭키 암호 연산 처리 시스템.
  17. 암호 연산 처리 방법에 있어서,
    외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 암호 연산을 수행하기 위한 명령어를 추출하는 단계와,
    상기 추출된 명령어 및 그 명령어의 수행에 의해 암호 연산 처리될 데이터가 저장된 주소정보를 상기 데이터와 별도로 저장하는 단계와,
    상기 추출된 명령어를 해석하여, 어떤 암호 처리에 해당하는지와 어떤 연산을 실행해야 하는지를 결정하고, 명령어에 대한 실행 순서를 스케줄링하는 단계와,
    암호처리를 위해 필요한 키값을 입력받아 상기 스케줄링된 암호연산 수행 순서에 따라 해당 주소에 저장된 데이터에 대하여 해당 명령어의 실행을 통해 대칭 및 비대칭키 암호 연산을 처리하는 단계를 포함하는 대칭 및 비대칭키 암호 연산 처리 방법.
  18. 제 17항에 있어서, 상기 대칭 및 비대칭키 암호 연산을 수행하는 단계에서,
    상기 대칭키 암호 연산은 치환 연산, 순열 연산, 모듈러 연산, 논리 연산, 산술 연산중 적어도 하나를 포함하는 대칭 및 비대칭키 암호 연산 처리 방법.
  19. 대칭 및 비대칭키 암호 연산 처리 방법을 수행하기 위하여, 디지탈 처리장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지탈 처리장치에 의해 판독될 수 있는 기록매체에 있어서,
    외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 암호 연산을 수행하기 위한 명령어를 추출하는 단계와,
    상기 추출된 명령어 및 그 명령어의 수행에 의해 암호 연산 처리될 데이터가 저장된 주소정보를 상기 데이터와 별도로 저장하는 단계와,
    상기 추출된 명령어를 해석하여, 어떤 암호 처리에 해당하는지와 어떤 연산을 실행해야 하는지를 결정하고, 명령어에 대한 실행 순서를 스케줄링하는 단계와,
    암호처리를 위해 필요한 키값을 입력받아 상기 스케줄링된 암호연산 수행 순서에 따라 해당 주소에 저장된 데이터에 대하여 해당 명령어의 실행을 통해 대칭 및 비대칭키 암호 연산을 처리하는 단계를 포함하는 기록매체.
KR10-2001-0074634A 2001-11-28 2001-11-28 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법 KR100406139B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0074634A KR100406139B1 (ko) 2001-11-28 2001-11-28 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0074634A KR100406139B1 (ko) 2001-11-28 2001-11-28 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법

Publications (2)

Publication Number Publication Date
KR20030043451A true KR20030043451A (ko) 2003-06-02
KR100406139B1 KR100406139B1 (ko) 2003-11-14

Family

ID=29571850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0074634A KR100406139B1 (ko) 2001-11-28 2001-11-28 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법

Country Status (1)

Country Link
KR (1) KR100406139B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100420555B1 (ko) * 2002-04-19 2004-03-02 한국전자통신연구원 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법
KR100799305B1 (ko) * 2005-12-08 2008-01-29 한국전자통신연구원 다중 암호엔진을 사용하는 고성능 암호화 장치
WO2008085579A2 (en) * 2006-10-25 2008-07-17 Spyrus, Inc. Method and system for deploying advanced cryptographic algorithms

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020101325A1 (ko) * 2018-11-13 2020-05-22 (주)블루팝콘 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10145354A (ja) * 1996-11-14 1998-05-29 Nippon Telegr & Teleph Corp <Ntt> 機能遠隔変更方法
JPH10271107A (ja) * 1997-03-21 1998-10-09 Nippon Telegr & Teleph Corp <Ntt> データ暗号化方法及び装置
US6081895A (en) * 1997-10-10 2000-06-27 Motorola, Inc. Method and system for managing data unit processing
US6289454B1 (en) * 1998-06-29 2001-09-11 Vlsi Technology, Inc. Memory configuration which support multiple cryptographical algorithms
KR100342526B1 (ko) * 1999-09-21 2002-06-28 윤종용 암호화 및 복호화 장치

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100420555B1 (ko) * 2002-04-19 2004-03-02 한국전자통신연구원 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법
KR100799305B1 (ko) * 2005-12-08 2008-01-29 한국전자통신연구원 다중 암호엔진을 사용하는 고성능 암호화 장치
WO2008085579A2 (en) * 2006-10-25 2008-07-17 Spyrus, Inc. Method and system for deploying advanced cryptographic algorithms
WO2008085579A3 (en) * 2006-10-25 2008-12-04 Spyrus Inc Method and system for deploying advanced cryptographic algorithms
US8009829B2 (en) 2006-10-25 2011-08-30 Spyrus, Inc. Method and system for deploying advanced cryptographic algorithms

Also Published As

Publication number Publication date
KR100406139B1 (ko) 2003-11-14

Similar Documents

Publication Publication Date Title
JP3789454B2 (ja) 暗号コプロセッサを有するストリームプロセッサ
US20220138349A1 (en) Cryptographic architecture for cryptographic permutation
Güneysu et al. Cryptanalysis with COPACOBANA
RU2279123C2 (ru) Вычислительный модуль и способ выполнения арифметической операции с зашифрованными операндами
WO2008031109A2 (en) System and method for encrypting data
CN1592190B (zh) 硬件加密引擎和加密方法
CN109190413B (zh) 一种基于fpga和md5加密的串行通信系统
WO2017052811A2 (en) Secure modular exponentiation processors, methods, systems, and instructions
Kumar et al. How to Break DES for BC 8,980
CN113839770A (zh) 用于tls分组加密和解密的高吞吐量后量子aes-gcm引擎
Nabil et al. Design and implementation of pipelined and parallel AES encryption systems using FPGA
Chen et al. Low-cost shuffling countermeasures against side-channel attacks for NTT-based post-quantum cryptography
KR100406139B1 (ko) 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법
Will et al. Secure FPGA as a service—towards secure data processing by physicalizing the cloud
KR100406137B1 (ko) 고속 하드웨어 암호 처리 시스템 및 그 방법
US20230114198A1 (en) Device in network
US20040091105A1 (en) Apparatus for hyperelliptic-curve cryptography processing
WO2007129197A1 (en) Cryptographic apparatus and process
Sundararajan et al. A comprehensive survey on lightweight asymmetric key cryptographic algorithm for resource constrained devices
Panato et al. An IP of an Advanced Encryption Standard for Altera/spl trade/devices
Rasslan et al. New Generic Design to Expedite Asymmetric Cryptosystems Using Three-levels of Parallelism.
JP2006025366A (ja) 暗号化装置及び半導体集積回路
Lee et al. Lightweight and Low-Latency AES Accelerator Using Shared SRAM
Chang et al. Hardware-assisted security mechanism: The acceleration of cryptographic operations with low hardware cost
Schimmler et al. COPACOBANA: a massively parallel FPGA-based computer architecture

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081104

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee