KR20030043447A - 고속 하드웨어 암호 처리 시스템 및 그 방법 - Google Patents

고속 하드웨어 암호 처리 시스템 및 그 방법 Download PDF

Info

Publication number
KR20030043447A
KR20030043447A KR1020010074630A KR20010074630A KR20030043447A KR 20030043447 A KR20030043447 A KR 20030043447A KR 1020010074630 A KR1020010074630 A KR 1020010074630A KR 20010074630 A KR20010074630 A KR 20010074630A KR 20030043447 A KR20030043447 A KR 20030043447A
Authority
KR
South Korea
Prior art keywords
data
information
input
encryption
unit
Prior art date
Application number
KR1020010074630A
Other languages
English (en)
Other versions
KR100406137B1 (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-0074630A priority Critical patent/KR100406137B1/ko
Publication of KR20030043447A publication Critical patent/KR20030043447A/ko
Application granted granted Critical
Publication of KR100406137B1 publication Critical patent/KR100406137B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에 따른 하드웨어 암호 처리 시스템은 대칭키와 비대칭키 암호 알고리즘을 병렬로 수행함으로서, 하드웨어 암호 처리의 성능을 높인다. 또한, 명령 큐에 대한 효율적인 스케쥴링 기법을 사용하여, 입출력 메모리를 관리하며, 명령어 실행 순서를 프로그램할 수 있는 스케쥴링 기법을 가진다. 또한, 암호 알고리즘의 특성에 따른 수행 우선 순위 부여 및 수정 기능과 입출력 메모리내에서 복사를 불필요하게 하며, DMA를 사용하여 고속 대용량 데이터 전송이 가능하다. 또한, 하드웨어 암호 처리 시스템은 스마트카드를 사용한 안전한 키 관리 기법을 제공한다.
본 발명에 의하면, 많은 암호 알고리즘을 고속으로 처리해 주므로, 전자 상거래용 웹 서버나 웹 스위치, 보안 게이트웨이나 방화벽과 같은 네트워크 보안 솔루션, 인증 시스템 등과 같은 다양한 환경에서 사용 가능하다.

Description

고속 하드웨어 암호 처리 시스템 및 그 방법{High Performance Crypto Processing system and the method thereof}
본 발명은 전자 상거래나 가상 사설망, 무선 인터넷 분야 등과 같이 암호화 및 인증이 필수적인 분야에서 이를 실시간으로 수행하는 고속 하드웨어 암호 처리 시스템 및 그 처리 방법에 관한 것이다.
본 발명에서 제시하는 하드웨어 암호 처리 시스템은 많은 양의 암호 연산이 필요한 IPSec(IP Security Protocol)과 IKE(Internet Key Exchange), SSL(Secure Sockets Layer), WTLS(Wireless Transport Layer Security) 프로토콜을 실시간으로 처리 해 준다.
종래의 암호 처리 시스템은 범용 프로세서를 사용하여, 소프트웨어로 처리하는 경우와 한가지 혹은 두가지의 암호 알고리즘 처리를 위한 전용 하드웨어를 사용하는 경우가 대부분이었다. 이러한 방법을 사용하여 암호 프로토콜을 처리하는 경우, 호스트 컴퓨터에 과도한 부하를 유발하여 낮은 암호 프로토콜 처리 능력을 가지거나, 특정 암호 알고리즘만 수행할 수 있어서, 제한된 응용 분야에만 적용할 수 있다는 단점을 가진다.
펜티엄 프로세서나 SPARC 프로세서, ARM 프로세서 등과 같은 범용 프로세서 혹은, TI사의 TMS 프로세서와 같은 DSP 프로세서는 정수 연산, 부동 소수점 연산, 메모리 억세스 등과 같은 일반 프로세서 명령어에 대해서는 고성능을 발휘하지만, 암호 알고리즘 연산에 대해서는 높은 성능을 발휘하지 못한다. 즉, 암호 알고리즘의 연산 특성을 고려하여 설계된 프로세서가 아니기 때문에 높은 성능을 발휘하지 못한다. 예를 들어, 대칭키 암호 알고리즘에는 일반 알고리즘과 비교해 볼 때, 치환(substitution)과 회전(rotation), 순환(permutation) 등의 연산이 많으며, 비대칭키 암호 알고리즘인 경우에는 모듈라 덧셈(modular addition) 혹은 모듈라 곱셈(modular multiplication)과 같은 연산 요소가 많다.
범용 프로세서를 사용하지 않고, 한 두가지의 특정 암호 알고리즘을 하드웨어로 수행할 수 있는 암호 모듈에 관한 연구도 진행되어 왔다. 이 방법은 현재 많이 사용되는 암호화 프로토콜이 다수의 암호 알고리즘을 수행해야 한다는 현실에 비춰 볼 때, 효율성이 떨어지게 된다. 예로서, SSL 프로토콜과 같은 전자 상거래에서 많이 사용되는 프로토콜은 데이터 암호화에 대칭키 암호 알고리즘을 사용하고, 사용자 인증 및 서명을 만들기 위해서 비대칭키 암호 알고리즘 및 해쉬 함수를 사용한다. 이 때문에, 특정 암호 알고리즘에 대해서만 하드웨어 암호 모듈을 사용하여 고속으로 처리하고, 하드웨어에서 지원하지 않는 암호 알고리즘에 대해서는 소프트웨어로 처리한다면, 소프트웨어로 처리하는 암호 알고리즘들의 낮은 성능에 의해 전체 암호 시스템의 성능은 저하되는 문제점이 있다.
본 발명은 이러한 종래의 문제점을 해결하기 위하여 안출된 것으로, 현재 암호 시스템에서 많이 사용되고 있으며, 향후 사용될 가능성이 많은 대칭키, 비대칭키, 해쉬, 서명 함수를 선정하여, 이들에 대한 효율적인 고속 하드웨어 암호처리 시스템 및 그 처리방법을 제공하는데 그 목적이 있다.
도 1은 본 발명의 실시 예에 따른 암호 프로토콜을 고속으로 처리해 주는 하드웨어 암호 처리 시스템의 전체적인 구성 블록도.
도 2는 도 1에 도시된 하드웨어 암호 처리 시스템의 입출력 메모리 구성 블록도.
도 3은 도 1에 사용되는 하드웨어 암호 처리 시스템의 대칭키 및 비대칭키 연산 블록 구성도.
도 4는 도 1에 도시된 키관리부의 내부 구성 블록도.
도 5는 본 발명에 따른 하드웨어 암호 처리 시스템의 동작 과정을 도시한 흐름도.
* 도면의 주요 부분에 대한 부호의 설명*
110 : 입출력부111 : 사용자 응용 프로그램 인터페이스부
112 : 디바이스 드라이버부113 : PCI 인터페이스부
114 : 입출력제어부120 : 스케줄러
130 : 메모리131 : 입력 메모리
131a : 배분기131b-d: 입력 큐
132 : 명령어큐133 : 출력 메모리
140 : 제어부150 : 암호 처리부
151 : 대칭 연산부152 : 비대칭 연산부
160 : 키관리부
이러한 목적을 달성하기 위한 고속 하드웨어 암호 처리 시스템의 일측면에 따르면, 고속 하드웨어 암호 처리 시스템에 있어서, 암호 알고리즘을 수행하기 위해 필요한 명령어를 그 실행 우선순위에 따라, 암호 알고리즘의 수행절차에 대한 스케줄링 정보를 생성하는 스케줄러와, 스케줄링 정보에 상응하여 암호 처리시 실행될 우선순위에 따라 재배열된 명령어 재배열 정보 및 그 명령어의 수행에 의해 암호처리될 데이터가 저장된 주소에 대한 정보를, 기저장된 데이터 및 명령어 정보와 별도로 저장하는 저장부와, 그 저장부에 저장된 명령어 재배열 정보 및 주소에 대한 정보를 참조하여 상기 명령어의 우선순위에 따라 저장부의 해당 주소에 저장된 데이터를 읽어 암호 처리를 수행하는 암호 처리부와, 외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 스케줄러에 의해 스케줄링 정보를 생성하게 하여, 그 스케줄링 정보에 따라 명령어를 재배열하고, 그 명령어의수행에 의해 암호처리될 데이터가 저장된 주소에 대한 정보를 소팅하여 저장부에 기저장된 데이터 및 명령어 정보의 저장번지와 별도의 번지에 지정하며, 암호 처리부에 의해 해당 주소에 저장된 데이터에 대하여 해당 명령어의 실행을 통해 암호처리를 수행하게 하는 제어부를 포함하여 구성된다.
또한 본 발명에 따른 고속 하드웨어 암호 처리방법의 일측면에 따르면, 하드웨어 암호처리 방법에 있어서, 외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 스케줄러에 의해 스케줄링 정보를 생성하는 단계와, 그 스케줄링 정보에 따라 명령어를 재배열하고, 그 명령어의 수행에 의해 암호처리될 데이터가 저장된 주소에 대한 정보를 소팅하여 기저장된 데이터 및 명령어 정보의 저장번지와 별도의 번지에 지정하는 단계와, 암호처리를 위해 필요한 키값을 입력받아 해당 주소에 저장된 데이터에 대하여 해당 명령어의 실행을 통해 암호처리를 수행하는 단계를 포함한다.
또한, 본 발명에 따른 고속 하드웨어 암호처리 방법을 수행하기 위한 기록매체의 일측면에 따르면, 하드웨어 암호처리 방법을 수행하기 위하여, 디지탈 처리장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지탈 처리장치에 의해 판독될 수 있는 기록매체에 있어서, 외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 스케줄러에 의해 스케줄링 정보를 생성하는 단계와, 그 스케줄링 정보에 따라 명령어를 재배열하고, 그 명령어의 수행에 의해 암호처리될 데이터가 저장된 주소에 대한 정보를 소팅하여 기저장된 데이터 및 명령어 정보의 저장번지와 별도의 번지에 지정하는 단계와, 암호처리를 위해 필요한 키값을 입력받아 해당 주소에 저장된 데이터에 대하여 해당 명령어의 실행을 통해 암호처리를 수행하는 단계를 포함한다.
본 발명에서 제시하는 하드웨어 암호 처리 시스템은 Rijndael, Triple-DES, SEED와 같은 대칭키 암호 알고리즘과 MD5, SHA-1, DSA와 같은 해쉬/서명 함수, RSA, ECC(Elliptic Curve Cryptography) 와 같은 비대칭키 암호 알고리즘을 고속으로 수행할 수 있으며, NTRU와 KASUMI 암호 알고리즘, RNG(Random Number Generator)도 고속으로 처리하기 때문에, 범용 프로세서를 사용함으로서 유발되는 성능 저하 문제와, 특정 암호만 처리하는 하드웨어를 사용함으로서 생기는 응용의 제한성 문제를 해결해 준다.
본 발명에서 제시하는 하드웨어 암호 처리 시스템은 코프로세서로 활용할 수 있을 뿐만 아니라, PCI 인터페이스를 가지도록 설계하기 때문에, 라우터나 게이트웨이, 서버급 컴퓨터 등에서 독립적으로 사용할 수 있게 된다. 또한, 대칭키와 비대칭키 암호 알고리즘을 병렬로 수행함으로서, 하드웨어 암호 처리의 성능을 높인다. 또한, 명령 큐에 대한 효율적인 스케쥴링 기법을 사용하여, 입출력 메모리를 관리하며, 명령어 실행 순서를 프로그램할 수 있는 스케쥴링 기법을 가진다.
암호 알고리즘의 특성에 따른 수행 우선 순위 부여 및 수정 기능과 입출력 메모리내에서 복사를 불필요하게 하며, DMA를 사용하여 고속 대용량 데이터 전송이 가능하다. 또한, 하드웨어 암호 처리 시스템은 스마트카드를 사용한 안전한 키 관리 기법을 제공한다.
이하, 첨부된 도면을 참조하면서 IPSec, IKE, SSL, WTLS 프로토콜에서 높은성능과 안전성을 제공해 주는 하드웨어 암호 처리 시스템의 구조 및 동작 방법에 대해 보다 자세하게 설명하기로 한다.
도 1은 본 발명의 하드웨어 암호 처리 시스템의 전체 구성도이다.
하드웨어 암호 처리 시스템은, 사용자 응용 프로그램 인터페이스부(111)와 디바이스 드라이버부(112), PCI 인터페이스부(113), 입출력 제어부(114)로 이루어지는 입출력부(110)와, 스케쥴러부(120)와, 입력 메모리(131), 명령어 큐(132), 출력 메모리(133)로 이루어지는 저장부(130)와, 제어부(140)와, 암호 처리부(150)와, 키 관리부(160)로 구성된다.
사용자 응용 프로그램 인터페이스부(111)는 하드웨어 암호 처리 시스템을 사용자 응용 환경에서 사용할 수 있도록 하는 함수다. 이는 하드웨어 암호 처리를 위해 대칭키 암호 알고리즘과 비대칭키 암호 알고리즘, 해쉬/서명 함수, 랜덤 수 발생기 등을 사용할 수 있도록 한다. 사용자 응용 프로그램 인터페이스부(111)에는 이들에 대한 호출 방법, 입출력 파라미터 정의, 키 관리 방법에 대하여 정의되어 있다. 이렇게 정의된 API(111)는 PCI 버스 및 디바이스 드라이버를 통하여, 사용자 주소 공간에 메모리 매핑을 할 수 있어, 사용자가 간편하게 사용할 수 있는 구조를 가진다.
디바이스 드라이버부(112)는 본 하드웨어 암호 처리 시스템이 사용되는 시스템에서 하드웨어를 인식하기 위해 필요한 시스템 드라이버를 제공하여 사용자 응용 프로그램 인터페이스부(111)와 PCI 인터페이스부(113)를 연결하여, 원하는 데이터의 전송을 가능하게 하며, 입출력 제어부(114)와 연결되어 고속 데이터 전송(DMA)을 가능하게 한다. 또한, 사용자 메모리 매핑 기능을 제공하여 직접 사용자의 명령어 혹은 데이터가 입력 메모리(131) 혹은 출력 메모리(133)에 쓰기 혹은 읽기를 수행할 수 있게 한다.
PCI 인터페이스부(113)는 하드웨어 암호 처리 시스템과 호스트 시스템의 입출력 버스를 연결하는 부분으로서, 그 내부의 PCI 설정 레지스터(PCI Configuration Register)를 이용하여, 하드웨어 암호 처리 시스템의 상태를 시스템에 인식할 수 있도록 한다. PCI 설정 레지스터는 디바이스 ID, 상태 레지스터, 명령 레지스터, 전송 패킷의 헤더 정보, 타이머, 주소 등에 관한 정보를 제공한다.
입출력 제어부(114)는 호스트 시스템과 하드웨어 암호 처리 시스템사이의 데이터 입출력을 제어하는 곳으로서, PCI 인터페이스를 통한 데이터 입출력을 관리한다. 특히, 스트림 암호 알고리즘과 대칭키 암호 알고리즘에 대해서는 대량의 데이터를 전송하기 위해, DMA와 같은 고속 데이터 입출력을 제공한다.
스케쥴러(120)는 입력된 명령과 데이터의 수행 순서를 조절하여, 최대 성능을 발휘할 수 있도록 한다. 이에 대한 상세한 설명은 도 2에 하기로 하자.
입력 메모리(131)는 하드웨어 암호 처리 시스템에 입력된 명령 및 데이터가 저장되는 곳으로, PCI 버스를 통과한 패킷 데이터에서 명령에 해당하는 부분과 데이터에 해당하는 부분을 분리하여 저장한다. 명령 부분은 스케쥴러에 의해, 최적인 실행 순서로 조정되며, 데이터 부분은 위치 조정을 필요로 하지 않는다.
출력 메모리부(133)는 대칭키 및 암호 처리부(150)에서 수행된 결과 혹은 중간 결과값이 저장되는 곳으로, 최종 결과는 PCI 인터페이스를 통하여 시스템으로전송되며, 중간 결과는 제어부(140)에 의해, 다시 암호 처리부(150)로 입력된다.
명령어 큐(132)는 입력 메모리(131)에 입력된 명령에 대하여, 최적인 성능을 가지도록 스케쥴러(120)에 의해 재구성된다. 즉, 명령어 큐(132)는 재구성된 명령어 및 입력 메모리에 있는 해당 데이터 주소 정보가 저장되는 곳이다.
제어기(140)는 입출력부(110), 스케쥴러(120), 입력 메모리(131)와 명령어 큐(132)와 출력 메모리(133), 암호처리부(150), 키 관리부(160)를 제어하여 하드웨어 암호 처리 시스템의 데이터 경로 제어를 총괄하며, 대칭키 암호 알고리즘, 비대칭키 암호 알고리즘의 동작도 제어한다.
암호 처리부(150)는 Rijndael과 Triple-DES, SEED와 같은 대칭키 암호 알고리즘과 MD5, SHA-1, DSA와 같은 해쉬/서명 함수, RSA, ECC(Elliptic Curve Cryptography) 와 같은 비대칭키 암호 알고리즘을 수행할 수 있으며, NTRU와 KASUMI 암호 알고리즘, RNG(Random Number Generator)도 수행 가능하다. 암호 처리부(150)에서는 하드웨어 암호 처리 시스템의 성능을 높이기 위해서 대칭키와 비대칭키 암호 알고리즘을 병렬로 수행할 수 있는 구조를 가지며, 이에 대한 수행 우선 순위 부여도 가능하다. 이에 대한 자세한 설명이 도 3에서 하기로 하자.
키 관리부(160)는 다량의 대칭키를 안전하게 저장하는 부분과 스마트 카드 인터페이스 부분으로 구성된다. 본 발명에 따른 하드웨어 암호 처리 시스템은 다수의 대칭키 암호 알고리즘을 지원하므로, 많은 키 값을 안전하게 관리할 필요가 있다. 이를 위해서 별도의 보안성이 있는 키 저장부가 필요하며, 스마트카드내의 비대칭키 암호 알고리즘 기술을 사용하여, 키 저장부에 저장된 키 값을 암호화하여저장할 수 있도록 한다. 이에 대한 설명이 도 4에서 하기로 하자.
도 2는 스케쥴러와 입력 메모리, 출력 메모리, 명령어 큐 블록도이다.
PCI 인터페이스부(114)를 통하여 입력된 명령 및 데이터는 배분기(131a)에 의해, 입력 큐(131b, 131c, 131d, 131e)에 저장된다. 도 2에서는 입력 큐를 편의상 4개로 나누었다. 입력 큐(131b)가 가장 우선 순위를 가지며, 입력 큐(131e)는 가장 낮은 우선 순위를 가지도록 구성할 수 있다. 즉, 스트림 암호 알고리즘이나 대칭키 암호 알고리즘과 같이 DMA 전송이 필요하며, 실시간 처리가 필요한 경우, 가장 우선 순위가 높은 131b 입력 큐에 할당하고 그렇지 않은 경우는 아래쪽 입력 큐에 할당한다.
비대칭키 암호 알고리즘과 같이 수행시 많은 연산을 수행해야 하는 알고리즘도 우선 순위가 낮은 입력 큐에 할당되어, 전체 시스템의 성능을 향상시킨다. 스케쥴러(120)는 기본적으로 스트림 암호 알고리즘, 대칭키 암호 알고리즘, 해쉬/서명 함수, 비대칭키 암호 알고리즘, 순서로 우선 순위를 가지며, 이러한 우선 순위는 외부로부터 프로그램으로 재구성할 수 있다. 우선 순위에 따라, 명령어 큐(132)에 저장되는 순서가 정해진다. 명령어 큐(132)에 저장되는 명령어는 프로그램 가능한 스케쥴러의 작용으로 어떤 명령을 수행해야 할지가 결정된다. 명령어 큐(132)에 저장된 각 명령어에 필요한 데이터의 주소 정보도 같이 저장된다.
입력 메모리(131)에 저장된 명령은 우선 순위에 따라 그 위치가 재조정 되지만, 데이터는 재조정되지 않는다. 이는 입력 메모리에서 복사 동작을 필요하지 않게 하며, 성능을 높일 수 있게 된다. 연산된 결과 혹은 중간 연산 결과는 출력 메모리(133)에 저장되어, 향후 적절한 목적에 사용된다.
도 3은 대칭키 암호 블록과 비대칭키 암호 블록, 난수 발생기, 해쉬 및 서명 함수 블록으로 구성된 암호 처리부의 구성 블록도이다.
암호처리부(150)가 수행하는 암호 처리는 KASUMI(151a), Rijndael(151b), Triple-DES나 SEED(151c)와 같은 대칭키 암호처리연산부(151)와, SHA-1, MD5와 같은 해쉬/서명 함수(152a), ECC(152c)와 RSA(152d)와 같은 비대칭키 암호 처리 연산부(152)이 있다. 또한, 난수 값을 발생시키는 RNG 연산부(152b)도 비대칭키 암호 처리 연산부(152)에 속한다. 암호 처리부(150)는 성능을 높이기 위해서, 스트림 암호 알고리즘과 대칭키 암호 알고리즘으로 하여금, 버스를 공유하게 하였으며, 해쉬/서명 함수나 RNG, 비대칭키 암호 알고리즘으로 하여금, 같은 버스를 사용하도록 했다.
위와 같은 구조는 대칭키 암호 처리부(151)와 비대칭키 암호 처리부(152)를 동시에 수행할 수 있도록 하여, 높은 성능을 얻고자 하는 것이다. 또한, 비대칭키 암호 알고리즘은 계산 시간이 대칭키 암호 알고리즘보다 오랜기간 소요되기 때문에, 비대칭키 암호 알고리즘이 사용하는 버스는 대칭키 암호 알고리즘과 별도로 구성하였다.
도 3에서 대칭키 암호 처리부(151)의 입력 단자는 입력 메모리(131) 혹은 임시 계산값을 저장한 출력 메모리(133)와 연결되며, 출력단자는 출력 메모리(133)와 연결된다. 이 암호 처리부(150)에 대한 제어는 제어부(140)에 의해 수행된다.
도 4는 도 1의 키관리부의 상세한 구성 블록이다. 도 4를 참조하면키관리부(160)는 저장된 키 값에 대한 불법적인 접근을 방지하기 위한 보안 모듈(161)과, 대량의 키 값을 안전하게 저장할 수 있는 키 저장부(162)와 스마트 카드 인터페이스부(163)로 구성된다.
키 저장부(162)는 일반적으로 많은 키 값을 필요로 하는 대칭키 암호 알고리즘을 위한 안전한 키 저장 장소로서, DPA와 같은 해킹 공격을 감지하는 보안 모듈(161)과 함께 사용되어, 불법적인 접근을 막는다. 또한, 이 부분에 대한 접근 인터페이스를 제공하는 사용자 프로그램 인터페이스는 매우 제한적이기 때문에 외부로부터의 불법적인 접근을 막을 수 있다.
키 저장 장치에 접근하기 위해서는 스마트 카드 인터페이스(163)를 사용하여 사용자 인증 과정을 거쳐야 한다. 또한, 키저장부(162)에 저장된 키 값 자체도 스마트 카드부(163)가 가지고 있는 키 값으로 암호화 되어 저장 될 수 있다. 도 4에 도시된 바와 같이 특별한 구조의 키 저장부(161)에 암호화에 사용되는 키 값을 저장하면, 일반적으로 보안 시스템의 메인 메모리 혹은 로컬 하드 디스크에 저장하는 것보다 더욱 높은 보안성을 제공해 준다.
도 5는 이와 같이 구성된 하드웨어 암호 처리 시스템의 동작 흐름도이다.
호스트 시스템으로부터 API(111)를 통해 하드웨어 암호 처리를 위한 암호화/복호화 명령어 및 데이터를 입력받는다(S1). API(111)를 통해 입력되는 명령어 및 데이터는 디바이스 드라이버(113) 및 PCI 인터페이스(114)를 통하여 입력 메모리(131)에 저장한다(S2).
입력된 명령어에 대하여 스케줄러(130)에 의해 최적 성능을 내기 위해서 스케쥴링한다(S3). 이때 사용하는 스케쥴링 알고리즘은 대칭키 암호 알고리즘에 우선권이 부여 되는 기본 스케쥴링 방법을 사용하거나, 특정 목적을 위해 재구성할 수 있다. 스케쥴링된 명령어는 명령어 큐(160)에 저장된다. 이에 따라,
암호화/복호화 과정을 수행하기 위해서, 해당 키 값을 사용해야 함에 따라 키관리부(160)로부터 암호화/복호화 키값을 입력 받는다(S4). 여기에 저장되는 대칭키 암호 알고리즘용 키를 접근하기 위해서는 스마트카드부(163)를 통해 인증 과정을 거쳐야 한다.
해당 데이터와 키 값, 암호 알고리즘이 결정되면, 적절한 암호화 혹은 복호화가 수행한다(S5). 암호 알고리즘 연산 결과는 출력 메모리에 저장하여, API(111)를 통해 호스트 컴퓨터로 전송하거나 다시 암호 알고리즘의 입력으로 사용할 수 도 있다(S6).
상기와 같은 구조로 개발된 하드웨어 암호 처리 시스템은 다음과 같은 효과를 가진다.
첫째, 본 발명에서 개발한 하드웨어 암호 처리 시스템은 IPSec, IKE, SSL, WTLS 프로토콜에서 필요로 하는 대칭키 및 비대칭키 암호 알고리즘, 서명 및 해쉬 함수, 난수 발생기를 고속 하드웨어로 처리하기 때문에, 전자 상거래용 웹 서버나 가상 사설망, 무선 인터넷 시스템, 보안 게이트웨이, 방화벽과 같은 시스템에서 높은 암호 처리 성능과 보안성을 제공한다.
둘째, 본 발명에서 개발한 하드웨어 암호 처리 시스템은 대칭키 암호 알고리즘과 비대칭키 암호 알고리즘을 동시에 수행할 수 있는 구조로 되어 있기 때문에, 높은 성능과 효율성을 가진다. 또한, 암호 알고리즘 수행시 우선 순위를 부여 할 수 있도록 되어 있으며, 입력 데이터에 대해서는 복사할 필요가 없는 스케쥴링 기법을 사용했기 때문에, 효율적인 암호 알고리즘 수행이 가능하다.
셋째, 발명된 하드웨어 암호 처리 시스템은 높은 안전성을 가지는 키 저장 장치 및 스마트카드를 사용하여 키 관리를 하기 때문에, 하드웨어 암호 처리 시스템에서 필요로 하는 많은 양의 비밀키 관리를 효율적이면서 안전하게 수행할 수 있다.

Claims (16)

  1. 고속 하드웨어 암호 처리 시스템에 있어서,
    암호 알고리즘을 수행하기 위해 필요한 명령어를 그 실행 우선순위에 따라, 암호 알고리즘의 수행절차에 대한 스케줄링 정보를 생성하는 스케줄러와,
    상기 스케줄링 정보에 상응하여 암호 처리시 실행될 우선순위에 따라 재배열된 명령어 재배열 정보 및 그 명령어의 수행에 의해 암호처리될 데이터가 저장된 주소에 대한 정보를, 기저장된 데이터 및 명령어 정보와 별도로 저장하는 저장부와,
    상기 저장부에 저장된 명령어 재배열 정보 및 주소에 대한 정보를 참조하여 상기 명령어의 우선순위에 따라 상기 저장부의 해당 주소에 저장된 데이터를 읽어 암호 처리를 수행하는 암호 처리부와,
    외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 상기 스케줄러에 의해 스케줄링 정보를 생성하게 하여, 그 스케줄링 정보에 따라 명령어를 재배열하고, 그 명령어의 수행에 의해 암호처리될 데이터가 저장된 주소에 대한 정보를 소팅하여 상기 저장부에 기저장된 데이터 및 명령어 정보의 저장번지와 별도의 번지에 지정하며, 상기 암호 처리부에 의해 해당 주소에 저장된 데이터에 대하여 해당 명령어의 실행을 통해 암호처리를 수행하게 하는 제어부를 포함하는 고속 하드웨어 암호 처리 시스템.
  2. 제 1항에 있어서, 상기 스케줄러는,
    암호 처리에 있어서 수행시간이 적은 태스크에 실행 우선 순위를 부여하여 스케줄링하는 고속 하드웨어 암호 처리 시스템.
  3. 제 1항에 있어서, 상기 스케줄러는,
    비대칭키 암호 알고리즘에 비하여 대칭키 암호 알고리즘에 우선순위를 두어 스케줄링하는 고속 하드웨어 암호 처리 시스템.
  4. 제 1항에 있어서, 상기 스케줄러에서,
    상기 스케줄링 정보는 프로그램 가능하여 암호 수행 우선 순위를 동적으로 변경할 수 있는 고속 하드웨어 암호 처리 시스템.
  5. 제 1항에 있어서, 상기 저장부는,
    입력된 패킷 데이터 중에서 암호 처리를 수행하기 위한 명령어에 해당하는 정보와, 데이터에 해당하는 정보를 분리하여 처리 우선 순위에 따라 저장하는 입력 메모리와,
    상기 입력 메모리에 입력된 명령어에 대하여 상기 스케줄러에 의한 스케줄링 정보에 의해 재구성된 명령어 정보 및 상기 입력 메모리에 저장된 데이터의 주소에 대한 정보를 저장하는 명령어 큐와,
    상기 암호 처리부에서 수행된 결과값 또는 중간값을 저장하는 출력 메모리를 포함하는 고속 하드웨어 암호 처리 시스템.
  6. 제 5항에 있어서, 상기 입력 메모리는,
    입력된 명령어 및 데이터를 우선순위에 따라 배분하는 배분기와,
    상기 배분기에 배분된 명령어 및 데이터를 우선순위별로 저장하는 하나 이상의 입력큐를 포함하는 고속 하드웨어 암호 처리 시스템.
  7. 제 1항에 있어서, 상기 암호처리부는,
    상기 입력된 명령어 중 대칭키 알고리즘의 명령어에 대한 암호처리를 수행하는 대칭키 암호 처리부와,
    상기 대칭키 암호 처리부와 별도의 버스를 사용하도록 병렬 구성되어 상기 입력된 명령어 중 비대칭키 알고리즘의 명령어에 대한 암호처리를 수행하는 비대칭키 암호 처리부를 포함하는 고속 하드웨어 암호 처리 시스템.
  8. 제 7항에 있어서, 상기 대칭키 암호 처리부에서,
    대칭키 알고리즘은 KASUMI, Rijndael, Triple-DES, SEED의 알고리즘중 적어도 하나를 포함하는 고속 하드웨어 암호 처리 시스템.
  9. 제 7항에 있어서, 상기 비대칭키 암호 처리부에서,
    상기 비대칭키 알고리즘은 해쉬/서명함수, 난수값을 발생시키는 RNG, ECC, RSA의 알고리즘 중 적어도 하나를 포함하는 고속 하드웨어 암호 처리 시스템.
  10. 제 1항에 있어서,
    외부의 시스템 환경에 연동하여 데이터 및 데이터에 대한 암호화를 수행하기 위한 사용자의 명령어를 입력받고, 상기 암호처리부에 의해 암호처리된 데이터를 상기 외부의 시스템에 전송하는 입출력부를 더 포함하는 고속 하드웨어 암호 처리 시스템.
  11. 제 10항에 있어서, 상기 입출력부는,
    사용자 응용 환경에서 하드웨어 암호 처리를 수행하기 위한 인터페이싱을 수행하는 사용자 응용 프로그램 인터페이스부와,
    상기 사용자 응용 프로그램 인터페이스부와 연동하여 상기 시스템에 대하여 하드웨어적으로 인식되기 위한 시스템 드라이버를 제공하는 디바이스 드라이버부와,
    시스템의 입출력 버스에 연결되어 상기 사용자 응용 프로그램 인터페이스부 및 디바이스 드라이버부에 연동하여 PCI 인터페이싱을 수행하는 PCI 인터페이스부와,
    상기 PCI 인터페이스부를 통한 데이터 입출력을 관리하여 시스템과의 데이터 입출력을 제어하는 입출력 제어부를 포함하는 고속 하드웨어 암호 처리 시스템.
  12. 제 11항에 있어서, 상기 사용자 응용 프로그램 인터페이스부는,
    상기 각 알고리즘에 대한 호출 방법, 입출력 파라미터 정의, 키관리 방법에 대한 정보를 포함하는 고속 하드웨어 암호 처리 시스템.
  13. 제 1항에 있어서, 상기 암호 처리부에서 사용할 키를 관리하여 사용자의 접근을 인증하기 위한 키관리부를 더 포함하는 고속 하드웨어 암호 처리 시스템.
  14. 제 13항에 있어서, 상기 키관리부는,
    스마트카드를 통하여 사용자 인증을 수행하기 위한 스마트 카드부와,
    다수의 키 값을 저장하는 키저장부와,
    사용자에 대한 인증을 수행하여 상기 키저장부에 저장된 키값에 대한 불법적인 접근을 차단하는 보안 모듈를 포함하는 고속 하드웨어 암호 처리 시스템.
  15. 고속 하드웨어 암호처리 방법에 있어서,
    외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 상기 스케줄러에 의해 스케줄링 정보를 생성하는 단계와,
    그 스케줄링 정보에 따라 명령어를 재배열하고, 그 명령어의 수행에 의해 암호처리될 데이터가 저장된 주소에 대한 정보를 소팅하여 기저장된 데이터 및 명령어 정보의 저장번지와 별도의 번지에 지정하는 단계와,
    암호처리를 위해 필요한 키값을 입력받아 해당 주소에 저장된 데이터에 대하여 해당 명령어의 실행을 통해 암호처리를 수행하는 단계를 포함하는 고속 하드웨어 암호 처리방법.
  16. 고속 하드웨어 암호처리 방법을 수행하기 위하여, 디지탈 처리장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지탈 처리장치에 의해 판독될 수 있는 기록매체에 있어서,
    외부 네트워크로부터 암호 알고리즘을 위한 명령어 및 데이터가 입력되는 경우, 상기 스케줄러에 의해 스케줄링 정보를 생성하는 단계와,
    그 스케줄링 정보에 따라 명령어를 재배열하고, 그 명령어의 수행에 의해 암호처리될 데이터가 저장된 주소에 대한 정보를 소팅하여 기저장된 데이터 및 명령어 정보의 저장번지와 별도의 번지에 지정하는 단계와,
    암호처리를 위해 필요한 키값을 입력받아 해당 주소에 저장된 데이터에 대하여 해당 명령어의 실행을 통해 암호처리를 수행하는 단계를 포함하는 기록매체.
KR10-2001-0074630A 2001-11-28 2001-11-28 고속 하드웨어 암호 처리 시스템 및 그 방법 KR100406137B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0074630A KR100406137B1 (ko) 2001-11-28 2001-11-28 고속 하드웨어 암호 처리 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0074630A KR100406137B1 (ko) 2001-11-28 2001-11-28 고속 하드웨어 암호 처리 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20030043447A true KR20030043447A (ko) 2003-06-02
KR100406137B1 KR100406137B1 (ko) 2003-11-14

Family

ID=29571846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0074630A KR100406137B1 (ko) 2001-11-28 2001-11-28 고속 하드웨어 암호 처리 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR100406137B1 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030051111A (ko) * 2001-12-18 2003-06-25 신경욱 AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로
KR100420555B1 (ko) * 2002-04-19 2004-03-02 한국전자통신연구원 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법
KR100668690B1 (ko) * 2004-08-04 2007-01-15 에스케이 텔레콤주식회사 무선 인터넷 플랫폼에서 애플리케이션 프로그램인터페이스 사용을 제한하는 방법 및 시스템
KR100692927B1 (ko) * 2006-01-18 2007-03-12 프롬투정보통신(주) 전화망신호 보안시스템 및 방법
WO2008082843A1 (en) * 2006-12-28 2008-07-10 Intel Corporation Method for processing multiple operations
US7742598B2 (en) 2004-12-17 2010-06-22 Electronics And Telecommunications Research Institute Shrinking key generator for parallel process
WO2012121482A2 (ko) * 2011-03-09 2012-09-13 에스케이텔레콤 주식회사 클라우드 스토리지 시스템의 데이터 암호화 처리 장치 및 방법
US10860507B2 (en) 2017-04-17 2020-12-08 SK Hynix Inc. Electronic systems having serial system bus interfaces and direct memory access controllers and methods of operating the same
CN116166402A (zh) * 2023-02-20 2023-05-26 广州万协通信息技术有限公司 一种数据安全处理方法、系统、安全芯片以及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923763A (en) * 1996-03-21 1999-07-13 Walker Asset Management Limited Partnership Method and apparatus for secure document timestamping
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> データ暗号化方法及び装置
KR100266611B1 (ko) * 1998-03-26 2000-09-15 구자홍 데이터 스크램블링 회로
US6289454B1 (en) * 1998-06-29 2001-09-11 Vlsi Technology, Inc. Memory configuration which support multiple cryptographical algorithms

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030051111A (ko) * 2001-12-18 2003-06-25 신경욱 AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로
KR100420555B1 (ko) * 2002-04-19 2004-03-02 한국전자통신연구원 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법
KR100668690B1 (ko) * 2004-08-04 2007-01-15 에스케이 텔레콤주식회사 무선 인터넷 플랫폼에서 애플리케이션 프로그램인터페이스 사용을 제한하는 방법 및 시스템
US7742598B2 (en) 2004-12-17 2010-06-22 Electronics And Telecommunications Research Institute Shrinking key generator for parallel process
KR100692927B1 (ko) * 2006-01-18 2007-03-12 프롬투정보통신(주) 전화망신호 보안시스템 및 방법
US7953221B2 (en) 2006-12-28 2011-05-31 Intel Corporation Method for processing multiple operations
WO2008082843A1 (en) * 2006-12-28 2008-07-10 Intel Corporation Method for processing multiple operations
WO2012121482A2 (ko) * 2011-03-09 2012-09-13 에스케이텔레콤 주식회사 클라우드 스토리지 시스템의 데이터 암호화 처리 장치 및 방법
WO2012121482A3 (ko) * 2011-03-09 2012-11-15 에스케이텔레콤 주식회사 클라우드 스토리지 시스템의 데이터 암호화 처리 장치 및 방법
US9231922B2 (en) 2011-03-09 2016-01-05 Sk Telecom Co., Ltd. Cloud storage system, data encryption processing device and data encryption method in cloud storage system
US10860507B2 (en) 2017-04-17 2020-12-08 SK Hynix Inc. Electronic systems having serial system bus interfaces and direct memory access controllers and methods of operating the same
CN116166402A (zh) * 2023-02-20 2023-05-26 广州万协通信息技术有限公司 一种数据安全处理方法、系统、安全芯片以及电子设备
CN116166402B (zh) * 2023-02-20 2023-11-24 广州万协通信息技术有限公司 一种数据安全处理方法、系统、安全芯片以及电子设备

Also Published As

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

Similar Documents

Publication Publication Date Title
US7685436B2 (en) System and method for a secure I/O interface
CA2998994C (en) Computer-implemented cryptographic method for improving a computer network, and terminal, system and computer-readable medium for the same
Abroshan A hybrid encryption solution to improve cloud computing security using symmetric and asymmetric cryptography algorithms
US7773754B2 (en) Key management system and method
CN113302871B (zh) 通信方法、通信系统、网络接口控制器
US20040210754A1 (en) Shared security transform device, system and methods
US20040019619A1 (en) System and method for generating initial vectors
US20220067221A1 (en) Method and system for implementing security operations in an input/output device
JP2002287620A (ja) セキュリティ通信パケット処理装置及びその方法
US7266705B2 (en) Secure transmission of data within a distributed computer system
Castellanos et al. Legacy-compliant data authentication for industrial control system traffic
Lu et al. Ipsec implementation on xilinx virtex-ii pro fpga and its application
US20020116644A1 (en) Adapter card for wirespeed security treatment of communications traffic
JP2019532559A (ja) ハードウェアアクアクセラレーテッド暗号法のためのキーのスレッド所有権
KR100406137B1 (ko) 고속 하드웨어 암호 처리 시스템 및 그 방법
Yuan et al. Assuring string pattern matching in outsourced middleboxes
Klimushin et al. Potential application of hardware protected symmetric authentication microcircuits to ensure the security of internet of things
EP3836478A1 (en) Method and system of data encryption using cryptographic keys
US10615961B2 (en) Method and encryption node for encrypting message
CN113206815A (zh) 用于加解密的方法、可编程交换机和计算机程序产品
CN116132017A (zh) 隐私保护机器学习推理加速的方法与系统
Nahum et al. Parallelized network security protocols
Maffina et al. An improved and efficient message passing interface for secure communication on distributed clusters
Kashif et al. Employing an ECC-Based Hybrid Data Encryption Method to Improve Multitenancy Security in Cloud Computing
CN110289954B (zh) 一种密钥处理方法及装置

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