KR100946697B1 - 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPsec암호화 장치 및 방법 - Google Patents

소형 패킷 데이터를 고속으로 암호화할 수 있는 IPsec암호화 장치 및 방법 Download PDF

Info

Publication number
KR100946697B1
KR100946697B1 KR1020070081303A KR20070081303A KR100946697B1 KR 100946697 B1 KR100946697 B1 KR 100946697B1 KR 1020070081303 A KR1020070081303 A KR 1020070081303A KR 20070081303 A KR20070081303 A KR 20070081303A KR 100946697 B1 KR100946697 B1 KR 100946697B1
Authority
KR
South Korea
Prior art keywords
command
data
encryption
session
mac
Prior art date
Application number
KR1020070081303A
Other languages
English (en)
Other versions
KR20080043215A (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 KR20080043215A publication Critical patent/KR20080043215A/ko
Application granted granted Critical
Publication of KR100946697B1 publication Critical patent/KR100946697B1/ko

Links

Images

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
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치 및 그 구동 방법에 관한 것이다. 본 발명에 의한 암호화 장치는 외부 호스트 장비와 표준 정합 기능을 담당하는 호스트 정합부, 호스트 정합부를 통해 전송되는 데이터를 그 용도에 따라 CPU 혹은 알고리즘 처리엔진으로 전송해 주는 내부 버스 중재부, 호스트 장비의 데이터를 명령과 암호처리용 데이터로 분리하고 명령 해석결과와 암호 처리 결과 데이터를 조합하여 호스트 장비로 전송될 응답 데이터를 구성하는 명령분리 및 응답 생성기, 블록암호 알고리즘 처리동작과 메시지 인증(MAC: Message Authentication Code) 알고리즘 처리동작을 수행하는 암호 알고리즘 처리엔진, 초기벡터, 초기 MAC 값, 키 및 운용모드 등과 같은 암호 처리동작에 필요한 세션 정보를 저장하는 세션 메모리, 암호화 장치 하드웨어 전반을 제어하고 호스트의 다양한 명령을 처리해주는 CPU, CPU 프로그램이 실행되는 CPU 메모리, 그리고 CPU, 암호 알고리즘 처리엔진 및 세션 메모리간의 정합 기능을 수행하고 CPU 혹은 명령분리 및 응답 생성기로부터 전송된 호스트 명령을 해석하고 실행하는 명령 실행 및 세션 메모리 정합부로 구성됨을 특징으로 한다.
Figure R1020070081303
패킷 데이터, IPSec, 암호화 장치, 블록암호 처리엔진, MAC 처리엔진, 세션 메모리.

Description

소형 패킷 데이터를 고속으로 암호화할 수 있는 IPsec 암호화 장치 및 방법{The internet protocol security encrypting device and Method for high speed encryption of small size packet data}
본 발명은 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치 및 방법에 관한 것으로서, 더욱 상세하게는 암호 알고리즘 처리 동작과 세션 변경 동작, 명령 해석 및 실행 동작 등을 장치 내의 하드웨어가 고속으로 수행할 뿐만 아니라 암호화 장치에서 제공하는 호스트 정합 기능의 데이터 전송 효율을 높임으로서 소형 패킷 데이터에 대한 IPSec 암호 처리 동작을 고속으로 수행하는 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치 및 방법에 관한 것이다.
IPSec은 인터넷을 통해 유통되는 데이터를 IP(Internet Protocol) 계층에서 보호하기 위한 프로토콜로서 크게 데이터 무결성을 제공하는 AH(Authentication Header) 처리기능과 데이터 무결성과 기밀성을 함께 제공하는 ESP(Encapsulation Security Payload) 처리 기능으로 구성되어 있으며 이들은 데이터 암호화와 데이터 인증과 같은 암호 알고리즘 처리동작을 수반한다.
도 1a 및 도 1b는 각각 일반적인 IPSec의 AH 및 ESP의 데이터 포맷을 나타낸 데이터 포맷도이다.
도 1a 및 도 1b를 참조하여 보면, IPSec에서는 데이터에 대한 암호처리 동작을 패킷 단위로 수행하도록 규정하고 있는데 이러한 패킷 단위의 데이터는 그 크기가 수 킬로 바이트 이하로 매우 작다. 고성능의 암호 처리기능을 제공해 주는 대부분의 암호화 장치들은 각종 암호 알고리즘을 처리하는 전용 암호칩을 내장하고 있다. 그러나 고성능의 암호칩을 내장한 암호화 장치라 할지라도 암호 처리해야 할 대상이 크기가 작은 패킷 단위의 데이터일 경우엔 장치에서 제공하는 호스트 정합 기능의 데이터 전송 효율이 감소할 뿐만 아니라 암호화 장치의 전체 암호처리 시간 중 CPU의 명령해석, 명령 실행, 세션 변경 동작 수행에 필요한 처리 시간의 비중이 커지기 때문에 암호처리 동작의 처리 효율도 낮아지게 된다.
이러한 처리 효율의 감소는 소형 패킷 데이터에 대한 암호처리 성능 감소의 주요 원인이 되는 문제점이 있다.
즉, 기존의 일반적인 암호화 장치에서는 암호 처리 명령의 수행에 필요한 호스트 장비의 명령을 해석하는 동작이나 암호 알고리즘 처리 엔진을 지정된 세션 정보로 초기화하는 세션 변경 동작 등을 CPU가 소프트웨어적으로 수행하였으며 CPU에 의한 처리 동작들로 인하여 기존의 암호화 장치는 소형 패킷 데이터에 대한 암호처리 효율을 크게 떨어지는 문제가 있었다.
본 발명은 전술한 문제점을 해결하기 위하여 제안된 것으로서 그 목적은 장치 내 호스트 정합 기능의 데이터 전송 효율과 암호 처리동작의 처리 효율을 높여 기존 암호화 장치에서 문제가 되었던 작은 크기 데이터에 대한 암호처리 성능 저하 현상을 극복함으로써 패킷 단위의 작은 크기의 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치 및 방법을 제공하는 데에 있는 것이다.
전술한 목적을 달성하기 위한 본 발명의 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치는, 호스트 버스를 통해 외부 호스트 장비와 내부 버스 간 정합 기능을 수행하며, 입출력 장치의 정합 기능을 수행하는 호스트 정합부와, 암호화 장치 내의 하드웨어를 제어하고 호스트 장비의 명령을 전송받아 해석하여 실행하고 명령 실행에 따른 응답 데이터를 호스트 정합부를 통해 호스트 장비로 출력하는 CPU와, CPU의 프로그램 및 데이터들이 저장되는 메모리인 CPU 메모리와, 블록암호 알고리즘 처리동작과 MAC 알고리즘 처리동작을 수행하는 암호 알고리즘 처리엔진과, 호스트 장비의 데이터를 명령어와 암호처리용 데이터로 구분하고 명령 해석 결과와 암호 처리결과 데이터를 조합하여 호스트 장비로 전송될 데이터를 구성하며 암호 알고리즘 처리엔진으로 전송되는 암호처리용 데이터의 입출력 동작을 제어하는 명령분리 및 응답 생성기와, 명령분리 및 응답 생성기로 전송될 호스트 장비 데이터를 임시 저장하는 버퍼인 DIB_FIFO와, 호스트 정합부를 통해 호스 트 장비(100)로 전송될 명령분리 및 응답 생성기의 출력 데이터를 임시 저장하는 버퍼인 DOB_FIFO와, CPU로 전송될 호스트 장비 데이터를 임시 저장하는 버퍼인 CIB_FIFO와, 호스트 장비로 전송될 CPU의 응답 데이터를 임시 저장하는 버퍼인 COB_FIFO를 포함하는 어드레스 값을 달리하는 최소 4개의 버퍼를 갖는 내부 버스 중재부와, 암호 알고리즘 처리엔진의 암호 처리동작에 필요한 세션 정보를 저장하는 세션 메모리와, 명령분리 및 응답 생성기로부터 명령을 수신하고 명령을 해석하여 명령 해석 결과에 따라 세션 메모리의 세션 정보로 암호 알고리즘 처리엔진을 초기화한 후 암호 처리동작의 시작을 명령하며 암호 알고리즘 처리엔진의 암호 처리결과로 세션 메모리를 갱신하는 명령 실행 및 세션 메모리 정합부로 구성되는 것을 특징으로 한다.
본 발명의 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 방법은, 호스트 장비로부터 호스트 장비 명령 데이터를 호스트 정합부를 통해 내부 버스 중재부로 전송하는 제1 전송단계와, 입력된 명령 데이터를 명령분리 및 응답 생성기로 전송하는 제2 전송단계와, 명령 데이터에서 명령어 코드, 데이터 길이, 세션 ID, PE 플래그, 명령 인자 등을 구분하여 명령어 버퍼에 저장하고 이중 명령어 코드, 데이터 길이 및 세션 ID 정보를 명령 실행 및 세션 메모리 정합부로 전송하는 제3 전송단계와, 전송된 데이터를 내부의 명령 레지스터에 저장하는 저장단계와, 세션 메모리 정합부는 명령 레지스터의 명령어 코드와 세션 ID를 참조하여 세션 메모리로부터 세션 정보를 읽어오는 판독단계와, 명령 해석/실행 회로는 세션 정보에서 암호 세션 초기화 플래그를 확인하여 지정된 세션의 암호함수가 정상적으 로 초기화되었는지 여부를 확인하는 확인단계와, 세션 정보와 함께 암호 처리해야 할 데이터 길이 정보를 암호 알고리즘 처리엔진으로 전송하는 제4 전송단계와, 명령 해석/실행 회로는 Init OK 정보를 명령분리 및 응답 생성기로 전송하고, 알고리즘 처리엔진의 암호 처리동작의 시작을 명령하는 명령단계와, 암호 알고리즘 처리엔진은 데이터 길이만큼의 입력 데이터에 대해 암호처리 동작을 수행하는 수행단계와, 암호 알고리즘 처리엔진에서 처리된 처리 결과 데이터를 명령분리 및 응답 생성기로 전송하는 제5 전송단계와, 명령분리 및 응답 생성기는 명령어 버퍼에 저장되어 있는 명령 데이터와 명령 실행 및 세션 메모리 정합부로부터 전송된 데이터 그리고 암호 알고리즘 처리엔진으로부터 출력된 처리 결과 데이터를 조합하여 응답 데이터를 구성하는 구성단계와, 응답 데이터를 외부 호스트 장비로 출력하는 출력단계로 구성되는 것을 특징으로 한다.
상술한 바와 같이 본 발명에 의한 암호화 장치는 장치에서 제공하는 호스트 정합 기능의 데이터 전송효율을 높이고 IPSec의 ESP 처리동작을 한번의 명령수행으로 완료하도록 하고 암호 처리 명령 수행에 필요한 일련의 처리동작을 장치 내 하드웨어가 고속으로 수행하도록 하여 기존의 암호 장치에서 문제가 되었던 소형 패킷 데이터에 대한 암호처리 성능 저하 현상을 극복함으로써 패킷 단위의 작은 크기의 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치로 활용될 수 있는 효과가 있다.
이하, 첨부된 도면을 참조하여 장치 구성과 동작을 설명함으로써 본 발명을 상세히 설명하기로 한다.
그리고 본 발명에서는 도면에 표현된 구성요소들의 구현 형태에 대한 제한을 두지 않는다. 즉, 본 발명에 의한 암호화 장치는 SoC(System on a Chip) 형태의 칩과 같이 모든 구성 요소들을 하나의 칩에 내장할 수도 있으며, 몇 개의 칩으로 분리하여 하나의 보드 내에서 구현할 수도 있다. 그리고, 도면상에 동일 부호는 동일 요소를 지칭하도록 기재하였다.
도 2a 및 도 2b는 본 발명에 따른 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치의 구성도이다.
도 2a 및 도 2b에 도시된 암호화 장치는 호스트 정합부(200), 내부 버스 중재부(201), CPU(208), CPU 메모리(207) 등의 구성 요소를 갖추어 기존의 CPU를 포함하는 범용성 있는 암호화 장치의 구조를 기본으로 하고 있다. 그리고 암호화 장치는 명령분리 및 응답 생성기(209), 암호 알고리즘 처리엔진(213), 명령 실행 및 세션 메모리 정합부(216), 세션 메모리(217) 등의 구성요소를 두어 명령 해석, 세션 변경, 명령 실행 및 암호 알고리즘 처리 등의 동작들을 하드웨어적으로 고속으로 수행할 수 있다.
암호 알고리즘 처리엔진(213)은 내부에 블록암호 처리엔진(214)과 MAC 처리엔진(215)을 두어 IPSec의 AH 및 ESP 처리동작을 CPU(208)의 개입 없이 고속으로 수행할 수 있는 구조를 갖는다.
도 2a 및 도 2b를 참조하여 본 발명의 동작에 대하여 보다 상세하게 설명하기로 한다.
먼저, 호스트 정합부(200)는 호스트 버스를 통해 외부 호스트 장비(100)와 내부 버스간의 정합 기능을 담당하는 블록으로 USB(Universal Serial Bus), PCI(Peripheral component Interconnect), PCMCIA(Personal Computer Memory Card International Association) 등과 같은 표준 정합 기능을 수행한다.
CPU(208)는 암호화 장치 내 하드웨어 전반을 제어하고, 내부 버스 중재부(201)를 통해 호스트 장비(100)의 다양한 명령 전송받아 이를 해석하여 실행하고 명령 실행에 따른 응답 데이터를 내부 버스 중재부(201) 및 호스트 정합부(200)를 통해 해당 호스트 장비(100)로 출력한다.
CPU 메모리(207)는 CPU(208)의 프로그램 및 데이터들이 저장되는 메모리이다.
내부 버스 중재부(201)는 버스 중재회로(202)와 4개의 FIFO(203, 204, 205, 206)로 구성되고, 각각의 4개의 FIFO(203, 204, 205, 206)는 DIB_FIFO(203), DOB_FIFO(204), CIB_FIFO(205) 및 COB_FIFO(206)로 구성된다.
내부 버스 중재부(201)의 버스 중재회로(202)는 호스트 정합부(200)를 통해 전송되는 호스트 장비(100)의 입력 데이터를 CPU(208) 혹은 명령분리 및 응답 생성기(209)로 전송될 데이터로 분리해 주고 CPU(208)의 응답 데이터 혹은 명령분리 및 응답 생성기(209)의 응답 데이터를 호스트 정합부(200)로 전송한다.
내부 버스 중재부(201)에 의해 수행되는 경로의 분리는 내부버스 중재 부(201)가 입출력되는 데이터의 종류에 따라 호스트 정합부(200)로 출력되는 어드레스 값을 달리함으로써 이루어지며 이를 위해 호스트 정합부(200)는 최소 4개의 버퍼 공간을 제공하여야 한다.
경로 분리를 위해 내부 버스 중재부(201)는 4개의 FIFO(First In First Out) 메모리 버퍼를 두고 있는데 이중 DIB_FIFO(203)는 명령분리 및 응답 생성기(209) 내의 명령/데이터 구분회로(210)로 전송될 호스트 장비(100) 데이터를 임시 저장하는 버퍼이다.
DOB_FIFO(204)는 호스트 정합부(200)를 통해 호스트 장비(100)로 전송될 명령 분리 및 응답 생성기(209)의 출력 데이터를 임시 저장하는 버퍼이다.
CIB_FIFO(205)는 CPU(208)로 전송될 호스트 장비 데이터를 임시 저장하는 버퍼이다.
COB_FIFO(206)는 호스트 장비(100)로 전송될 CPU(208)의 응답 데이터를 임시 저장하는 버퍼이다.
이와 같이 내부 버스 중재부(201)는 외부 호스트 장비(100)와 내부 CPU(208) 간의 데이터 입출력 경로를 제공할 뿐만 아니라 외부 호스트 장비(100)와 명령 분리 및 응답 생성기(209) 간의 데이터 경로를 제공한다. 따라서, 본 발명에 의한 암호화 장치는 암호 처리명령을 CPU(208)가 수행하는 기존의 범용성 있는 암호화 장치의 구조를 취하면서도 소형 패킷 데이터를 고속으로 암호화할 수 있는 구조를 갖는다.
명령분리 및 응답 생성기(209)는 호스트 장비(100)의 데이터를 명령어와 암 호처리용 데이터로 구분하고 명령 해석 결과와 암호 처리결과 데이터를 조합하여 호스트 장비(100)로 전송될 데이터를 구성한다. 명령분리 및 응답 생성기(209)는 명령/데이터 구분회로(210), 명령어 버퍼(211), 응답 데이터 생성회로(212) 그리고 경로 제어용 MUX 등으로 구성된다.
명령/데이터 구분회로(210)는 DIB_FIFO(203)을 통해 전송되는 호스트 장비(100)의 데이터를 명령어와 암호처리용 데이터로 구분하고 명령어는 내부 명령어 버퍼(211)로 전송하고 암호처리용 데이터는 암호 알고리즘 처리엔진(213)으로 전송한다. 명령어 버퍼(211)에 저장되는 명령어에는 명령어 코드, 세션 ID, 데이터 길이, ESP 오프셋 길이, 메시지 인증코드(MAC) 등의 데이터가 저장되며 이중 명령어 코드, 세션 ID, 데이터 길이, 그리고 ESP 오프셋 길이 등의 정보들은 명령 실행 및 세션 메모리 정합부(216)로 전송되어 명령을 해석하고 실행하는 동작을 위해 참조된다.
응답 데이터 생성회로(212)는 명령어 버퍼(211)에 저장된 명령 데이터와 명령 실행 및 세션 메모리 정합부(216)로부터 전송된 명령 해석 결과 그리고 암호 알고리즘 처리엔진(213)으로부터 전송된 암호처리 결과 데이터를 조합하여 호스트 장비(100)로 전송될 응답 데이터를 구성한다.
그리고, 명령분리 및 응답 생성기(209)는 암호 알고리즘 처리엔진(213) 내부 블록 암호 처리엔진(214) 및 MAC 알고리즘 처리엔진(215)으로 전송되는 암호처리용 데이터의 입출력 동작을 제어하여 IPSec의 AH 및 ESP 처리 동작을 한 번의 명령 수행에 의해 수행될 수 있도록 한다.
한편, 블록 암호 처리엔진(214)은 명령분리 및 응답 생성기(209)로부터 전송된 암호 처리용 데이터에 대해 블록 암호화 처리를 수행한다.
그리고, MAC 알고리즘 처리엔진(215)은 명령분리 및 응답 생성기(209)로부터 전달된 암호 처리용 데이터에 대해 MAC(Message Authentication Code) 처리를 수행한다.
또한, 명령분리 및 응답 생성기(209)는 호스트 장비(100)의 명령어에서 'PE' 플래그를 확인하여 마지막 패킷 데이터에 대해서는 내부 버스 중재부(201)로 하여금 호스트 정합부(200)에게 'packet_end' 신호를 출력하도록 한다.
명령 실행 및 세션 메모리 정합부(216)는 CPU(208)의 세션 메모리(217) 액세스 동작을 위한 CPU(208)와 세션 메모리(217)간의 정합 기능을 제공하고 CPU(208) 혹은 명령분리 및 응답 생성기(209)로부터 전송된 호스트 장비(100)의 명령을 해석하여 명령 해석 결과에 따라 세션 메모리(217)의 세션 정보로 암호 알고리즘 처리엔진(213)을 초기화한 후 암호 처리동작의 시작을 명령하며 암호 알고리즘 처리엔진(213)의 암호 처리결과로 세션 메모리(217)를 갱신하는 동작을 수행한다.
도 3은 본 발명의 도 2b에 따른 명령실행 및 세션 메모리 정합부 및 그 주변블록을 상세하게 나타낸 블록 구성도이다.
도 3을 참조하여 보면, 명령 실행 및 세션 메모리 정합부(216)는 명령 레지스터(300), 명령 해석/실행 회로(301) 및 세션 메모리 정합 회로(302)로 구성된다.
명령 레지스터(300)는 CPU(208) 혹은 명령분리 및 응답 생성기(209)로부터 전송된 명령어 코드, 데이터 길이, 세션 ID 및 ESP 오프셋 길이 등의 정보를 포함 하는 명령 데이터를 저장하는 레지스터이다. 명령 레지스터(300)에 저장된 명령 데이터는 명령 해석/실행 회로(301)와 세션 메모리 정합 회로(302)로 전송된다.
세션 메모리 정합 회로(302)는 CPU 버스 정합 기능을 제공하여 외부 호스트 장비(100)가 장치 내의 CPU(208)에게 암호 함수 초기화 동작을 명령할 때 CPU(208)의 세션 메모리(217)로의 액세스를 가능하게 한다.
세션 메모리 정합회로(302)는 명령 레지스터(300)의 명령어 코드와 세션 ID를 참조하여 지정된 세션의 암호함수에 대한 초기화 여부(Enc(Dec) Init OK, MSign(MVer) Init OK)를 나타내는 세션 초기화 정보를 세션 메모리(217)로부터 읽어와 명령분리 및 응답 생성기(209)로 전송하여 응답 데이터를 출력할 수 있게 하고 읽어온 세션 초기화 정보로부터 정상으로 초기화되었음을 인지하면 세션 메모리(217)로부터 암호 처리 동작 준비를 위한 세션 정보(키, 초기 벡터(Initial Vector ; IV), 초기 MAC, 운용모드 등)를 읽어와 암호 알고리즘 처리엔진으로 전송 함으로서 알고리즘 처리 동작을 준비시킨다. 여기서, Enc Init OK는 암호 함수 초기화 플래그이며, Dec Init OK는 복호함수 초기화 플래그이다. MSign Init OK는 MAC 생성 함수 초기화 플래그이며, MVer Init OK는 MAC 검증함수 초기화 플래그이다.
또한, 세션 메모리 정합회로(302)는 암호 알고리즘 처리엔진(213)의 암호 처리동작이 완료되면 명령어의 세션 번호와 명령어 코드에 의해 지정된 세션 메모리 영역을 암호처리 결과 초기 벡터(IV) 데이터 혹은 MAC 결과 데이터로 갱신한다.
명령 해석/실행 회로(301)는 세션 메모리 정합회로(302)의 세션 초기화 정 보(Enc(Dec) Init OK, MSign(MVer) Init OK)가 정상적으로 초기화되었음을 나타내면 명령 레지스터(300)의 명령어 코드를 해석하여 그 결과에 따라 블록암호 처리엔진(214) 및 MAC 처리엔진(215)의 동작 시작을 명령한다.
세션 메모리(217)는 초기 벡터, 초기 MAC, 키, 운용 모드, 세션 초기화 정보(Enc(Dec) Init OK, MSign(MVer) Init OK) 등과 같은 암호 알고리즘 처리를 위해 필요한 세션 정보를 저장한다. 세션 메모리 정보는 CPU(208), 명령분리 및 응답 생성기(209) 혹은 암호 알고리즘 처리엔진(213) 등이 세션 메모리 정합회로(302)를 통해 액세스하며 세션 정보의 저장 어드레스는 세션 ID와 명령어 코드를 참조하여 세션 메모리 정합회로(302)가 생성한다.
도 4는 본 발명의 일실시예에 따른 한 세션에서 암호 함수 별로 세션 메모리에 저장되는 정보의 포맷을 나타낸 포맷도이다.
도 4를 참조하여 보면, 본 발명에 의한 암호화 장치는 하나의 세션 정보에서 암호 함수용 세션 정보, 복호 함수용 세션 정보, MAC 생성 함수용 세션 정보, MAC 검증 함수용 세션 정보 등과 같이 4개의 암호 함수가 초기화될 수 있으며 각 함수 별로 함수 초기화 플래그, 운용모드, 키, 초기 벡터(혹은 초기 MAC)의 세션 정보를 갖는다.
상기 언급된 함수 초기화 플래그, 운용모드, 키, 초기 벡터(혹은 초기 MAC)에 대한 데이터 크기를 제한하지는 않는다. 이는 제공되는 세션의 개수와 알고리즘의 블록 크기 등에 따라 다양한 형태로 구현될 수 있음을 나타내며 본 발명에서는 세션 별로 제공되어야 할 세션 정보의 종류만 규정한다.
암호 알고리즘 처리엔진(213)은 명령 해석 및 실행 회로(301)가 암호 처리용 입력 데이터의 길이 값과 함께 동작 시작을 명령하면 지정된 길이만큼의 입력 데이터에 대해 암호 처리 동작을 수행하며 처리 결과 데이터를 명령분리 및 응답 생성기(209)를 통해 CPU(208) 개입 없이 고속으로 호스트 장비(100)로 전송한다. 이때, 명령 실행 및 세션 메모리 정합부(216)는 호스트 장비(100)로부터 전송된 명령에 따라 블록 암호 처리엔진(214)과 MAC 처리 엔진(215) 중 하나만 동작시킬 수도 있고 둘 모두를 동작시킬 수도 있다. 즉, 명령 해석 및 실행 회로(301)가 블록 암호 처리엔진(214)으로 블록 암호 처리동작에 필요한 변수(데이터 길이, 운용모드 등)의 제공 및 동작 시작 등을 명령하며, MAC 처리 엔진(215)으로 MAC 처리동작에 필요한 변수(데이터 길이, 운용모드 등)의 제공 및 동작 시작 등을 명령한다.
본 발명에 따른 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치의 기본적인 동작 순서는 호스트 장비(100)가 암호 처리동작을 명령하면 암호화 장치가 명령을 수행하고 그 결과를 호스트 장비(100)로 출력하는 순서이다.
도 5는 본 발명의 일실시예에 따른 암호화 장치가 지원할 수 있는 명령을 나타낸 표이다.
도 5를 참조하여 보면, 도면에 나타낸 바와 같이 본 발명에 의한 암호화 장치가 지원하는 명령들은 크게 암호 초기화, 복호 초기화, MAC 생성 초기화, MAC 검증 초기화 등과 같은 암호 세션 초기화 명령과 암호화, 복호화, MAC 생성, MAC 검증, 암호화 및 MAC 생성, MAC 검증 및 복호화 등과 같은 암호 알고리즘 처리 명령으로 구분된다.
암호 초기화 명령은 호스트 장비(100)가 암호화 장치로 하여금 명령에서 지정한 세션과 암호 함수를 입력된 세션 정보로 초기화하도록 하는 명령이다. 호스트 장비(100)의 암호 초기화 명령은 내부 버스 중재부(201)의 CIB_FIFO(205)를 통해 CPU(208)로 전송되며 CPU(208)는 암호 초기화 명령에서 지정된 세션 ID 및 암호함수에 해당하는 세션 메모리(217) 영역을 입력된 세션정보로 초기화하는 동작을 수행하고 CPU(208)는 명령 수행 결과를 COB_FIFO(206)를 통해 호스트 장비(100)로 출력한다. 이때 암호 초기화 명령에 의해 세션 메모리(217)에 저장되는 세션 정보는 도4의 구성을 가져야 한다.
암호 알고리즘 처리명령은 입력 데이터에 대한 암호 알고리즘 처리동작을 수행하는 명령으로 이들 명령의 명령 데이터는 DIB_FIFO(203)를 통해 전송되며 명령분리 및 응답 생성기(209), 명령 실행 및 세션 메모리 정합부(216), 암호 알고리즘 처리엔진(213) 등에 의해 CPU(208)의 개입 없이 고속으로 수행된다. 처리 결과는 DOB_FIFO(204)를 통해 호스트 장비(100)로 전송된다.
본 발명에 의한 암호화 장치가 암호 알고리즘 처리동작을 수행하기 위해선 사전에 해당 암호함수에 대한 세션 초기화 동작을 통해 장치 내 세션 메모리(217)가 암호 알고리즘 처리동작에 필요한 세션 정보를 보관하고 있어야 한다. 따라서 외부 호스트 장비(100)는 본 발명에 의한 암호화 장치에게 암호 세션 초기화 동작을 명령하고 그 처리동작이 완료되면 암호 알고리즘 처리동작을 수행하여야 한다.
본 발명에서는 암호 세션 초기화 명령의 세부 규격이나 장치 내 동작 절차에 대해선 제한을 두지 않는다. 다만 본 발명에 의한 암호화 장치는 도 5에서 언급한 암호 초기화, 복호 초기화, MAC 생성 초기화, MAC 검증 초기화 명령 등을 지원하여야 한다.
한편, 도 5에 나타낸 바와 같이 본 발명에 의한 암호화 장치는 암호화, 복호화, MAC 생성, MAC 검증, 암호화 및 MAC 생성, MAC 검증 및 복호화 등의 총 6개의 암호 알고리즘 처리명령을 제공하며 이중 MAC 생성 명령과 MAC 검증 명령은 IPSec의 AH 처리동작을 지원하기 위한 명령이며 암호화 및 MAC 생성 명령과 MAC 검증 및 복호화 명령은 IPSec의 ESP 처리 동작을 지원하기 위한 명령이다.
도 6a 및 도 6b는 본 발명의 일실시예에 따른 각각 암호화 장치가 제공하는 암호 알고리즘 처리 명령의 명령 데이터 구성과 그에 따른 응답 데이터의 구성을 나타낸 표이다.
도 6a 및 도 6b를 참조하여 보면, 도 6a에서 나타낸 바와 같이 입력되는 명령 데이터는 명령어 구분을 위한 명령어 코드(CMD), 마지막 패킷 데이터임을 알리는 PE 플래그(PE), 암호 세션 구분을 위한 세션 ID(SID), 데이터 길이(DL), 명령 인자(CARG) 및 암호 처리용 입력 데이터(DI)로 구성된다. 그리고 도 6b의 응답 데이터는 명령 데이터의 구성과 거의 비슷하나 응답 인자가 명령 데이터의 명령 인자에 대응되며 결과 데이터는 암호 혹은 복호 처리 결과 데이터로서 MAC 검증 명령의 경우엔 따로 결과 데이터 항목이 없다.
일반적으로 호스트 정합부(200)에서 제공되는 표준 정합 기능은 호스트 장비(100)와 통신을 위한 최소의 통신시간을 규정하고 있다. 예를 들어USB2.0(Universal Serial Bus spec 2.0) 규격의 고속 전송 모드(high speed mode) 의 경우엔 이러한 최소 통신 시간 단위을 마이크로 프레임(micro-frame)이라 하며 한 마이크로 프레임을 125㎲로 규정하고 있다. 즉 USB2.0 규격에서는 전송되는 데이터의 크기가 아무리 작더라도 한번의 통신을 위해 최소 125㎲의 시간을 소비해야만 한다. 이러한 이유로 USB2.0 규격이 대용량의 데이터에 대해선 최대 480 Mbps의 성능을 보장하지만 작은 크기의 데이터에 대한 전송성능은 급격하게 떨어진다. 이와 같은 전송 성능의 감소를 극복하기 위해 본 발명에 의한 암호화 장치는 호스트 장비(100)가 여러 패킷 데이터에 대한 암호처리 명령들을 적절한 크기가 되도록 모아서 한번에 암호화 장치로 전송하도록 함으로서 소형 패킷 데이터에 대한 전송효율을 높였다.
도 7은 본 발명의 일실시예에 따른 암호화 장치와 외부 호스트 장비간의 데이터 전송효율을 높이기 위한 데이터 입출력 과정을 나타낸 블록 구성도이다.
도 7을 참조하여 보면, 도면에서 나타낸 바와 같이 외부 호스트 장비(100)는 입력되는 패킷 데이터를 명령 데이터로 구성한 후 여러 개의 명령 데이터를 모아 한꺼번에 암호화 장치로 전송한다. 이때 호스트 장비(100)는 마지막 패킷 데이터에 대한 명령어에서 PE 플래그를 '1'로 하여 마지막 패킷 데이터에 대한 암호 처리 명령임을 암호화 장치에게 알린다.
암호화 장치측에서는 입력된 암호처리 명령에 대해 명령 해석, 세션 변경, 암호 알고리즘 처리, 응답 데이터 생성 및 출력 등과 같은 일련의 암호 처리동작을 CPU(208)의 개입 없이 고속으로 수행한다. 이때, 장치내의 명령분리 및 응답 생성기(209)는 호스트 장비(100)로부터 전송되는 명령 데이터 중 PE 플래그를 확인하여 PE가 '1'이면 내부버스 중재부(201)로 하여금 마지막 패킷 데이터에 대한 암호처리 결과가 출력될 때 호스트 정합부(200)로 packet end 신호를 출력하여 호 마지막 패킷 데이터가 전송되고 있음을 암호화 장치측에 알린다.
호스트 정합부(200)는 packet end 신호가 출력되기 전까진 암호처리 결과 데이터를 내부 버퍼에 모아두었다가 내부버스 중재부(201)가 packet end 신호를 출력하면 그때까지 모았던 처리 결과 데이터를 한꺼번에 호스트 장비(100)로 출력한다. 이 과정에서 한번에 호스트 장비(100)로 출력되는 데이터의 크기는 암호화 장치측에서 제공하는 표준 정합기능에 따라 다양할 수 있으며 본 발명에서는 암호화 장치측에서 제공하는 표준 정합기능이나 호스트 장비(100)가 한번에 전송하는 데이터의 크기는 제한하지 않는다.
그리고, 본 발명에 의한 암호화 장치는 소형 패킷 데이터에 대해서도 높은 암호처리 성능을 내기 위하여 명령 해석, 세션 변경, 암호 알고리즘 처리, 응답 데이터 생성 및 출력 등과 같은 일련의 암호 처리동작을 CPU(208)의 개입 없이 하드웨어가 수행하도록 하고 있다.
본 발명에 의한 암호화 장치는 IPSec의 ESP 처리 기능을 한 번의 명령 수행에 의해 고속으로 처리할 수 있다. 도 1b에서 보는 바와 같이 IPSec의 ESP 처리 동작은 암호 처리 동작과 메시지 인증 처리 동작을 수반하며 암호화되는 데이터 영역과 메시지 인증 처리를 위한 데이터 영역이 서로 다름을 알 수 있다.
이러한 이유로 기존의 암호화 장치는 암호 처리 명령과 메시지 인증 처리 명령을 따로 수행하여 ESP 처리동작을 지원하였다. 즉, 도 6a에 나타낸 것처럼 ESP 처리를 위한 암호 및 MAC 생성 명령과 MAC 검증 및 복호 명령의 명령 인자(CARG)에는 ESP 오프셋 길이 정보를 규정하고 있다. 암호화 장치 내의 명령분리 및 응답 생성기(209)는 명령어 버퍼(211)의 ESP 오프셋 길이 정보를 활용하여 블록암호 처리엔진(214)과 MAC 처리엔진(215)으로 전송되는 데이터를 적절히 제어함으로써 ESP 처리를 위한 암호화 동작과 MAC 생성 동작을 동시에 수행할 수 있다.
도 8은 본 발명의 일실시예에 따른 암호화 장치가 한 번의 명령으로 AH 및 ESP 처리 동작을 수행하는 과정을 설명하기 위한 블록 구성도이다.
도 8을 참조하여 보면, 도면에서 보는 바와 같이 명령분리 및 응답 생성기(209)는 내부에 ESP 오프셋 길이값을 초기값으로 한 다운 카운터(800)와 데이터 입/출력 제어회로(801)를 구성하여 명령어 버퍼(211)와 암호 알고리즘 처리엔진(213) 사이에서 IPSec의 ESP 처리 기능을 제어한다.
이를 보다 상세하게 설명하면 다음과 같다. 먼저, 다운 카운터(800)가 ESP 오프셋 길이만큼의 데이터가 입력되었는지의 여부를 확인한다.
또한, 데이터 입/출력 제어회로(801)는 다운 카운터(800) 값이 '0'이 되기 전까진 dordy_mac 신호만 '1'이 되도록 하여 입력 데이터가 MAC 처리엔진(215)으로만 전송되도록 하고 '0'이 된 후에는 신호 출력 타이밍 신호인 dordy_mac 신호와 dordy_bc 신호를 모두 '1'이 되도록 하여 입력 데이터가 블록암호 처리엔진(214)과 MAC 처리엔진 모두(215)에게 전송되도록 한다. 이렇게 함으로써 명령분리 및 응답 데이터 생성기(209)는 ESP 오프셋 길이만큼의 데이터가 입력되는 시간구간(tmac_only)에서는 MAC 처리동작만 수행되도록 하고 그 이후엔 블록 암호 처리동 작과 MAC 처리동작을 동시에 수행할 수 있도록 제어할 수 있으며 이로써 본 발명에 의한 암호화 장치는 IPSec의 ESP 처리 기능을 한 번의 명령으로 고속으로 수행할 수 있다.
도 9는 본 발명의 일실시예에 따른 암호화 장치에서 암호화하는 과정을 나타낸 순서도이다.
호스트 장비(100)는 도 6a의 구성을 갖는 명령 데이터를 호스트 정합부(200)를 통해 내부 버스 중재부(203)의 DIB_FIFO(203)로 전송한다(S902).
입력된 명령 데이터는 DIB_FIFO(203)에 의해 명령분리 및 응답 생성기(209)로 전송된다(S904).
명령분리 및 응답 생성기(209)의 명령/데이터 구분회로(210)는 전송된 명령 데이터에서 명령어 코드, 데이터 길이, 세션 ID, PE 플래그, 명령 인자 등을 구분하여 명령어 버퍼(211)에 저장하고 이중 명령어 코드, 데이터 길이 및 세션 ID 정보를 명령 실행 및 세션 메모리 정합부(216)로 전송한다(S906).
명령 실행 및 세션 메모리 정합부(216)는 S906에서 세션 메모리 정합부(216)로 전송된 데이터를 내부의 명령 레지스터(300)에 저장한다(S908).
세션 메모리 정합회로(302)는 명령 레지스터(300)의 명령어 코드와 세션 ID를 참조하여 세션 메모리(217)로부터 세션 정보를 읽어온다(S910).
명령 해석/실행 회로(301)는 S910에서 읽어온 세션 정보에서 암호 세션 초기화 플래그(Enc(Dec) Init OK, MSign(MVer) Init OK)를 확인하여 지정된 세션의 암호함수가 정상적으로 초기화되어 있는지 여부를 판단한다(S912).
S912에서 판단하여 암호함수가 정상적으로 초기화되지 않은 경우면 후술하는 S922로 진행하고, S912에서 판단하여 암호함수가 정상적으로 초기화된 경우면, 명령 해석/실행 회로(301)는 세션 메모리 정합회로(302)로부터 지정된 세션의 암호함수가 정상적으로 초기화되어 세션 초기화 정보(Enc(Dec) Init OK, MSign(MVer) ㄹ를 수신하고, 읽어온 세션 정보와 함께 암호 처리해야 할 데이터 길이 정보를 암호 알고리즘 처리엔진(213)으로 전송한다(S914).
명령 해석/실행 회로(301)는 세션 초기화 정보(Enc(Dec) Init OK, MSign(MVer) Init OK)를 명령분리 및 응답 생성기(209)로 전송하고, 알고리즘 처리엔진(213)의 암호 처리동작을 준비시키고 암호 처리동작의 시작을 명령한다(S916).
암호 알고리즘 처리엔진(213)은 명령 해석/실행 회로(301)가 암호 처리동작을 시작을 명령하면 지정된 길이만큼의 입력 데이터에 대해 암호처리 동작을 수행한다(S918).
S918에서 암호 알고리즘 처리엔진(213)에 의해 처리된 처리 결과 데이터를 명령분리 및 응답 생성기(209)로 전송한다(S920).
명령분리 및 응답 생성기(209)는 명령어 버퍼(211)에 저장되어 있는 명령 데이터와 명령 실행 및 세션 메모리 정합부(216)로부터 전송된 데이터(Init OK, MAC 결과) 그리고 암호 알고리즘 처리엔진(213)로부터 출력된 처리 결과 데이터를 조합하여 응답 데이터를 구성한다(S922).
이렇게 구성된 응답 데이터는 DOB_FIFO(204)와 호스트 정합부(200)를 통하여 외부 호스트 장비(100)로 출력된다(S924).
이와 같이 본 발명에 의한 암호화 장치에서는 암호 처리 명령에 대한 일련의 암호 처리 과정을 CPU(208) 개입 없이 하드웨어가 고속으로 수행하도록 함으로써 소형 패킷 데이터에 대한 암호 처리 효율을 높이도록 하였다.
또한 본 발명에 의한 암호화 장치는 IPSec의 ESP 처리 기능을 한번의 명령 수행에 의해 고속으로 처리할 수 있다. 도 1b에서 보는 바와 같이 IPSec의 ESP 처리 동작은 암호 처리 동작과 메시지 인증 처리 동작을 수반하며 암호화되는 데이터 영역과 메시지 인증 처리를 위한 데이터 영역이 서로 다름을 알 수 있다.
이러한 이유로 기존의 암호화 장치는 암호 처리 명령과 메시지 인증 처리 명령을 따로 수행하여 ESP 처리동작을 지원하였다. 그러나 본 발명에 의한 암호화 장치에선 ESP 처리동작을 한번의 명령으로 수행할 수 있는 구조를 취하고 있다. 도 6a에 나타낸 것처럼 ESP 처리를 위한 암호 및 MAC 생성 명령과 MAC 검증 및 복호 명령에는 ESP 오프셋 길이 정보를 규정하고 있다. 암호화 장치 내의 명령분리 및 응답 생성기(209)는 명령어 버퍼(211)의 ESP 오프셋 길이 정보를 활용하여 블록암호 처리엔진(214)과 MAC 처리엔진(215)으로 전송되는 데이터를 적절히 제어함으로써 ESP 처리를 위한 암호화 동작과 MAC 생성 동작을 동시에 수행할 수 있도록 한다.
도 1a 및 도 1b는 각각 일반적인 IPSec의 AH 및 ESP의 데이터 포맷을 나타낸 데이터 포맷도.
도 2a 및 도 2b는 본 발명에 따른 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치의 구성도.
도 3은 본 발명의 도 2b에 따른 명령실행 및 세션 메모리 정합부 및 그 주변블록을 상세하게 나타낸 블록 구성도.
도 4는 본 발명의 일실시예에 따른 한 세션에서 암호 함수 별로 세션 메모리(217)에 저장되는 정보의 포맷을 나타낸 포맷도.
도 5는 본 발명의 일실시예에 따른 암호화 장치가 지원할 수 있는 명령을 나타낸 표.
도 6a 및 도 6b는 본 발명의 일실시예에 따른 각각 암호화 장치가 제공하는 암호 알고리즘 처리 명령의 명령 데이터 구성과 그에 따른 응답 데이터의 구성을 나타낸 표.
도 7은 본 발명의 일실시예에 따른 암호화 장치와 외부 호스트 장비간의 데이터 전송효율을 높이기 위한 데이터 입출력 과정을 나타낸 블록 구성도.
도 8은 본 발명의 일실시예에 따른 암호화 장치가 한 번의 명령으로 AH 및 ESP 처리 동작을 수행하는 과정을 설명하기 위한 블록 구성도.
도 9는 본 발명의 일실시예에 따른 암호화 장치에서 암호화하는 과정을 나타낸 순서도.
<도면의 주요부분에 대한 부호의 간단한 설명>
100 : 호스트 장비 200 : 호스트 정합부
201 : 내부 버스 중재부 202 : 버스 중재회로
203 : DIB_FIFO 204 : DOB_FIFO
205 : CIB_FIFO 206 : COB_FIFO
207 : CPU 메모리 208 : CPU
209 : 명령분리 및 응답 생성기 210 : 명령/데이터 구분회로
211 : 명령어 버퍼 212 : 응답 데이터 생성회로
213 : 암호 알고리즘 처리엔진 214 : 블록암호 처리엔진
215 : MAC 처리엔진
216 : 명령 실행 및 세션 메모리 정합부 217 : 세션 메모리
300 : 명령 레지스터 301 : 명령 해석/실행 회로
302 : 세션 메모리 정합 회로 800 : 다운 카운터
801 : 데이터 입/출력 제어회로

Claims (8)

  1. 호스트 버스를 통해 외부 호스트 장비와 내부 버스간 정합 기능을 수행하며, 입출력 장치의 정합 기능을 수행하는 호스트 정합부와;
    암호화 장치 내의 하드웨어를 제어하고 상기 호스트 장비의 명령을 전송받아 상기 명령 실행에 따른 응답 데이터를 상기 호스트 정합부를 통해 상기 호스트 장비로 출력하는 CPU와;
    상기 CPU의 프로그램 및 데이터들이 저장되는 메모리인 CPU 메모리와;
    블록암호 알고리즘 처리동작과 MAC 알고리즘 처리동작을 수행하는 암호 알고리즘 처리엔진과;
    상기 호스트 장비의 데이터를 명령어와 암호처리용 데이터로 구분하고 명령 해석 결과와 암호 처리결과 데이터를 조합하여 상기 호스트 장비로 전송될 데이터를 구성하며 상기 암호 알고리즘 처리엔진으로 전송되는 암호처리용 데이터의 입출력 동작을 제어하는 명령분리 및 응답 생성기와;
    상기 명령분리 및 응답 생성기로 전송될 호스트 장비 데이터를 임시 저장하는 버퍼인 DIB_FIFO와, 상기 호스트 정합부를 통해 상기 호스트 장비로 전송될 상기 명령분리 및 응답 생성기의 출력 데이터를 임시 저장하는 버퍼인 DOB_FIFO와, 상기 CPU로 전송될 상기 호스트 장비 데이터를 임시 저장하는 버퍼인 CIB_FIFO와, 호스트 장비로 전송될 CPU의 응답 데이터를 임시 저장하는 버퍼인 COB_FIFO를 포함하는 어드레스 값을 달리하는 최소 4개의 버퍼를 갖는 내부 버스 중재부와;
    암호 알고리즘 처리엔진의 암호 처리동작에 필요한 세션 정보를 저장하는 세션 메모리와;
    상기 명령분리 및 응답 생성기로부터 상기 명령을 수신하고 상기 명령을 해석하여 명령 해석 결과에 따라 상기 세션 메모리의 세션 정보로 상기 암호 알고리즘 처리엔진을 초기화한 후 암호 처리동작의 시작을 명령하며 상기 암호 알고리즘 처리엔진의 암호 처리결과로 상기 세션 메모리를 갱신하는 명령 실행 및 세션 메모리 정합부를 포함하여 이루어지는 것을 특징으로 하는 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치.
  2. 제1항에 있어서,
    상기 명령분리 및 응답 생성기는,
    DIB_FIFO를 통해 전송되는 상기 호스트 장비의 데이터를 명령어와 암호처리용 데이터로 구분하고 상기 암호처리용 데이터는 상기 암호 알고리즘 처리엔진으로 전송하는 명령/데이터 구분회로와;
    상기 명령/데이터 구분회로로부터 명령어 코드, 세션 ID, 데이터 길이, ESP 오프셋 길이, 메시지 인증코드의 명령어를 수신하여 저장하며, 상기 명령어 코드, 상기 세션 ID 및 상기 데이터 길이, 상기 ESP 오프셋 길이는 명령 실행 및 세션 메모리 정합부로 전송되도록 하는 명령어 버퍼와;
    명령어 버퍼에 저장된 명령 데이터와 상기 명령 실행 및 세션 메모리 정합부로부터 전송된 명령 해석 결과 및 상기 암호 알고리즘 처리엔진으로부터 전송된 암 호처리 결과 데이터를 조합하여 상기 호스트 장비로 전송될 상기 응답 데이터를 구성하는 응답 데이터 생성회로로 이루어지는 것을 특징으로 하는 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 명령분리 및 응답 생성기는 상기 호스트 장비로부터의 명령에서 ‘PE’ 플래그를 확인하면, 마지막 패킷 데이터에 대해서는 상기 내부 버스 중재부로 하여금 상기 호스트 정합부에게 packet_end 신호를 출력하도록 하여 상기 호스트 정합부가 상기 packet_end 신호가 출력될 시점까지 모아두었던 암호 처리 결과 데이터를 상기 호스트 장비로 전송하도록 하는 것을 특징으로 하는 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치.
  4. 제1항에 있어서,
    상기 명령 실행 및 세션 메모리 정합부는,
    상기 CPU 또는 명령분리 및 응답 생성기로부터 전송된 명령 데이터를 저장하는 명령 레지스터와;
    상기 명령 레지스터에 저장된 상기 데이터를 수신하여 CPU 버스 정합 기능을 제공하며 상기 호스트 장비가 상기 CPU에게 암호 함수 초기화 동작을 명령하면 상기 CPU가 상기 세션 메모리로의 액세스를 가능하도록 하는 세션 메모리 정합 회로와;
    상기 명령 레지스터에 저장된 상기 명령 데이터를 수신하여 상기 세션 메모리 정합회로의 세션 초기화 정보가 정상적으로 초기화되었음을 나타내면 상기 명령 레지스터의 명령어 코드를 해석하여 그 결과에 따라 암호 알고리즘 처리엔진으로 동작 시작을 명령하는 명령 해석/실행 회로로 구성되는 것을 특징으로 하는 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치.
  5. 제4항에 있어서,
    상기 세션 메모리 정합회로는,
    명령 레지스터의 명령어 코드와 세션 ID를 참조하여 상기 세션 메모리로부터 암호 함수 초기화 플래그를 나타내는 Enc Init OK와, 복호함수 초기화 플래그를 나타내는 Dec Init OK와, 생성 함수 초기화 플래그를 나타내는 Sign Init OK와 및 검증함수 초기화 플래그를 나타내는 Ver Init OK로 구성된 세션 초기화 정보를 읽어와 상기 명령분리 및 응답 생성기에게 전송하여 응답 데이터를 출력할 수 있게 하고 암호화가 정상으로 초기화되면, 상기 세션 메모리에 저장된 암호 함수용 세션 정보, 복호 함수용 세션 정보, MAC 생성 함수용 세션 정보, MAC 검증 함수용 세션정보로 구성된 세션 정보를 읽어와 암호 알고리즘 처리엔진으로 전송하는 것을 특징으로 하는 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치.
  6. 제4항에 있어서,
    상기 명령은,
    암호 세션 초기화 명령인 암호 초기화 명령, 복호 초기화 명령, MAC 생성 초기화 명령, MAC 검증 초기화 명령과, 암호 알고리즘 처리 명령인 암호화 명령, 복호화 명령, MAC 생성 명령, MAC 검증 명령, 암호화 및 MAC 생성 명령, MAC 검증 및 복호화 명령으로 구분되며,
    상기 암호 알고리즘 처리 명령 중 MAC 생성 명령과 MAC 검증 명령은 IPSec AH 처리동작을 지원하기 위한 명령이며 암호화 및 MAC 생성 명령과 MAC 검증 및 복호화 명령은 IPSec의 ESP 처리 동작을 지원하되,
    상기 각각의 명령은 명령어 구분을 위한 명령어 코드, 마지막 패킷 데이터임을 알리는 PE 플래그, 암호 세션 구분을 위한 세션 ID, 데이터 길이, 명령 인자 및 암호 처리용 입력 데이터로 이루어지며, 상기 명령에 대응하는 응답 데이터는 명령어 구분을 위한 명령어 코드, 마지막 패킷 데이터임을 알리는 PE 플래그, 암호 세션 구분을 위한 세션 ID, 데이터 길이, 결과 데이터 및 응답 인자로 이루어지는 것을 특징으로 하는 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치.
  7. 제4항에 있어서,
    상기 명령분리 및 응답 생성기는,
    내부에 ESP 오프셋 길이 값을 초기값으로 설정하며, 상기 ESP 오프셋 길이만큼의 데이터가 입력되었는지를 확인하는 다운 카운터와;
    상기 다운 카운터 값이 ‘0’이 되기 전까진 MAC을 제어하는 신호 출력 타이밍 신호인 dordy_mac 신호만 ‘1’이 되도록 하여 입력 데이터가 MAC 처리엔진(215)으로만 전송되도록 하고 ‘0’이 된 후에는 dordy_mac 신호와 블록 암호를 제어하는 신호 출력 타이밍 신호인 dordy_bc 신호를 모두 ‘1’이 되도록 하여 입력 데이터가 블록암호 처리엔진과 MAC 처리엔진 모두에게 전송되도록 하는 데이터 입/출력 제어회로를 더 포함하는 것을 특징으로 하는 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 장치.
  8. 호스트 장비로부터 호스트 장비 명령 데이터를 호스트 정합부를 통해 내부 버스 중재부로 전송하는 제1 전송단계와;
    입력된 명령 데이터를 명령분리 및 응답 생성기로 전송하는 제2 전송단계와;
    상기 명령 데이터에서 명령어 코드, 데이터 길이, 세션 ID, PE 플래그, 명령 인자 등을 구분하여 명령어 버퍼에 저장하고 이중 명령어 코드, 데이터 길이 및 세션 ID 정보를 명령 실행 및 세션 메모리 정합부로 전송하는 제3 전송단계와;
    전송된 데이터를 내부의 명령 레지스터에 저장하는 저장단계와;
    상기 세션 메모리 정합부는 명령 레지스터의 명령어 코드와 세션 ID를 참조하여 세션 메모리로부터 세션 정보를 읽어오는 판독단계와;
    명령 해석/실행 회로는 상기 세션 정보에서 암호 세션 초기화 플래그를 확인하여 지정된 세션의 암호함수가 정상적으로 초기화되었는지 여부를 확인하는 확인단계와;
    상기 세션 정보와 함께 암호 처리해야 할 데이터 길이 정보를 암호 알고리즘 처리엔진으로 전송하는 제4 전송단계와;
    명령 해석/실행 회로는 Init OK 정보를 명령분리 및 응답 생성기로 전송하고, 알고리즘 처리엔진의 암호 처리동작의 시작을 명령하는 명령단계와;
    암호 알고리즘 처리엔진은 상기 데이터 길이만큼의 입력 데이터에 대해 암호처리 동작을 수행하는 수행단계와;
    암호 알고리즘 처리엔진에서 처리된 처리 결과 데이터를 명령분리 및 응답 생성기로 전송하는 제5 전송단계와;
    명령분리 및 응답 생성기는 명령어 버퍼에 저장되어 있는 명령 데이터와 명령 실행 및 세션 메모리 정합부로부터 전송된 데이터 그리고 암호 알고리즘 처리엔진으로부터 출력된 처리 결과 데이터를 조합하여 응답 데이터를 구성하는 구성단계와;
    상기 응답 데이터를 상기 호스트 장비로 출력하는 출력단계로 구성되는 것을 특징으로 하는 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPSec 암호화 방법.
KR1020070081303A 2006-11-13 2007-08-13 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPsec암호화 장치 및 방법 KR100946697B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20060111859 2006-11-13
KR1020060111859 2006-11-13

Publications (2)

Publication Number Publication Date
KR20080043215A KR20080043215A (ko) 2008-05-16
KR100946697B1 true KR100946697B1 (ko) 2010-03-12

Family

ID=39661716

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070081303A KR100946697B1 (ko) 2006-11-13 2007-08-13 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPsec암호화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100946697B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3300403A1 (en) 2013-10-31 2018-03-28 NEC Corporation Apparatus, system and method for mobile communication

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020188839A1 (en) 2001-06-12 2002-12-12 Noehring Lee P. Method and system for high-speed processing IPSec security protocol packets
WO2005086461A1 (en) 2004-03-02 2005-09-15 Advanced Micro Devices, Inc. Two parallel engines for high speed transmit ipsec processing
KR20060064973A (ko) * 2004-12-09 2006-06-14 한국전자통신연구원 VPN IPsec 가속 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020188839A1 (en) 2001-06-12 2002-12-12 Noehring Lee P. Method and system for high-speed processing IPSec security protocol packets
WO2005086461A1 (en) 2004-03-02 2005-09-15 Advanced Micro Devices, Inc. Two parallel engines for high speed transmit ipsec processing
KR20060064973A (ko) * 2004-12-09 2006-06-14 한국전자통신연구원 VPN IPsec 가속 장치

Also Published As

Publication number Publication date
KR20080043215A (ko) 2008-05-16

Similar Documents

Publication Publication Date Title
TW201917623A (zh) 演算法的卸載方法、裝置和系統
US8886956B2 (en) Data storage apparatus having cryption and method thereof
US7925024B2 (en) Method and system for data encryption/decryption key generation and distribution
US9003202B2 (en) Memory control device, semiconductor memory device, memory system, and memory control method
EP3211824B1 (en) Analysis system, analysis method, and analysis program
EP3751781A1 (en) Overhead reduction for link protection
CN209803788U (zh) 一种pcie可信密码卡
US20080028210A1 (en) Packet cipher processor and method
US11722467B2 (en) Secured communication from within non-volatile memory device
CN104156677A (zh) 一种基于fpga的硬盘加密、解密系统
CN112740217A (zh) 密码系统
CN117640256B (zh) 一种无线网卡的数据加密方法、推荐装置和存储介质
EP3200390B1 (en) Analysis system, analysis device, analysis method, and storage medium having analysis program recorded therein
KR100946697B1 (ko) 소형 패킷 데이터를 고속으로 암호화할 수 있는 IPsec암호화 장치 및 방법
US8316431B2 (en) Concurrent IPsec processing system and method
US10057054B2 (en) Method and system for remotely keyed encrypting/decrypting data with prior checking a token
CN107277591A (zh) 一种通过otg方式对融合型机顶盒进行加密的方法
US8412956B2 (en) Electronic unit provided in a microcircuit card and including cryptographic means for high-speed data processing
EP1457859B1 (en) Data encryption/decryption device
US20110026707A1 (en) Communication apparatus
CN113158203A (zh) 一种soc芯片、电路和soc芯片的外部数据读写方法
EP1460796A2 (en) Encryption-decryption key generation and distribution
EP3200389A1 (en) Analysis system, analysis device, analysis method, and recording medium having analysis program recorded therein
US11991159B2 (en) Bi-directional encryption/decryption device for underlay and overlay operations
US20240236059A1 (en) Bi-directional encryption/decryption device for underlay and overlay operations

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
FPAY Annual fee payment

Payment date: 20130304

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141224

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151224

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 11