KR20070061329A - 다중 암호엔진을 사용하는 고성능 암호화 장치 - Google Patents

다중 암호엔진을 사용하는 고성능 암호화 장치 Download PDF

Info

Publication number
KR20070061329A
KR20070061329A KR1020060099263A KR20060099263A KR20070061329A KR 20070061329 A KR20070061329 A KR 20070061329A KR 1020060099263 A KR1020060099263 A KR 1020060099263A KR 20060099263 A KR20060099263 A KR 20060099263A KR 20070061329 A KR20070061329 A KR 20070061329A
Authority
KR
South Korea
Prior art keywords
encryption
session
command
core
memory
Prior art date
Application number
KR1020060099263A
Other languages
English (en)
Other versions
KR100799305B1 (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 KR20070061329A publication Critical patent/KR20070061329A/ko
Application granted granted Critical
Publication of KR100799305B1 publication Critical patent/KR100799305B1/ko

Links

Images

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/041Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 using an encryption or decryption engine integrated in transmitted data

Landscapes

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

Abstract

본 발명은 정보보호 시스템에서 제공하는 블록암호, 해쉬, 메시지 인증 코드(MAC), 공개키 연산 및 난수 발생과 같은 암호 알고리즘을 다중 암호엔진으로 구성하여 고속 처리할 수 있는 고성능 암호화 장치에 관한 것이다.
본 발명에 따른 다중 암호엔진을 사용하는 고성능 암호화 장치는 호스트와 PCI-Express 정합부간 고속 전송을 위해 DMA 레지스터, Bypass FIFO, Tag 레지스터 및 FIFO 상태 레지스터를 이용해서 TLP 패킷에 대한 분석과 생성 기능을 제공한다. 또한, 암호자원의 가용 상태와 세션 ID정보를 이용한 고정적인 암호코어 할당 방식인 정적 스케쥴링 방식과 명령어 종류 및 처리시간을 고려하여 응용 환경에 적합한 알고리즘을 선택한 후 시스템 초기화 시 프로그램 가능한 구조를 갖는 동적 스케쥴링 방법을 지원하는 구조를 가지고 있어 보안서비스 응용 환경 변화에 따라 최적화된 스케쥴링 방식이 선택 가능하다. 또한, 세션메모리에 저장된 세션 데이터를 암호코어 상호간 공유할 수 있도록 암호코어와 세션메모리에 중재기를 구성하여 암호코어가 세션에 무관하게 운영될 수 있는 구조를 가지므로, 보조 프로세서, 암호 프로세서 및 네트워크 암호 프로세서 형태의 암호칩과 암호모듈에 적용하여 유, 무선 인터넷(WiBro), 전자 상거래, 가상 사설망 및 고속 링크 장비에 고속의 보안 서비스를 제공할 수 있는 효과가 있다.
암호칩, 암호코어, 다중 암호엔진, 세션메모리, CPU, 공개키 연산, 작업 스케쥴러, 명령블럭, 응답블럭, TLP 패킷 분석 및 생성

Description

다중 암호엔진을 사용하는 고성능 암호화 장치{High-Performance Cryptographic Device using Multiple Ciphercores and its Operation Method}
도 1은 본 발명의 일실시예에 따른 다중 암호엔진을 사용하는 고성능 암호화 장치의 구조도.
도 2는 본 발명의 도 1에 따른 TLP 패킷 분석 및 생성 장치 구성도.
도 3은 본 발명의 도 1에 따른 다중 암호엔진 관리부의 작업 스케쥴러 내부 구성도.
도 4는 본 발명의 도 1에 따른 다중 암호엔진부의 암호코어 구성도.
도 5는 본 발명의 도 1에 따른 세션메모리부의 세션메모리 공유 중재기의 연결도.
도 6은 본 발명의 도 1에 따른 세션메모리의 내부 구성을 상세하게 나타낸 구성도.
<도면의 주요 부분에 대한 부호의 간단한 설명>
100 : PCI-EXPRESS 호스트 정합부 101 : PCI-EXPRESS 종단 장치
102 : TLP(Transaction Layer Packet) 패킷 분석 및 생성 장치
110 : 다중 암호엔진 관리부 111 : 명령블럭 대기큐
112 : 응답블럭 대기큐 113 : 작업 스케쥴러
114 : FIFO 인터페이스 블록 120 : 다중 암호엔진부
121 : 암호코어 122 : 세션메모리 정합부(SMIB)
130 : 시스템 제어부 131 : CPU
132 : 키저장 메모리 133 : 메모리
134 : 공개키 연산 및 난수 발생부 140 : 세션메모리부
141 : 세션메모리 공유 중재기 142 : 세션메모리
본 발명은 정보보호 시스템에서 제공하는 블록암호, 해쉬, 메시지 인증 코드, 공개키 연산 및 난수 발생과 같은 암호 알고리즘을 다중 암호엔진으로 구성하여 고속의 보안서비스를 제공할 수 있는 고성능 암호화 장치에 관한 것이다.
본 발명에서 제시하는 고성능 암호화 장치는 암호칩, 암호프로세서 및 네트워크형 암호프로세서의 하드웨어 가속기에 적용될 수 있다. 본 발명이 적용된 하드웨어 가속기를 이용하여IKE(Internet Key Exchange), IPSEC(IP Security Protocol) 및 TLS(Transport Layer Security)와 같은 암호 프로토콜에 고속의 보안 서비스를 제공할 수 있다.
초고속 정보통신망의 보편화로 인한 인터넷 트래픽(traffic) 증가로 인해 공공기관 및 기업체의 서버가 감당해야 할 데이터의 양과 처리 속도 역시 급격하게 증가하고 있다. 정보통신 체계의 발전은 정보보호 시스템에 높은 대역폭과 대용량의 데이터 처리를 요구하고 있어 이러한 요구 사항을 수용하기 위해서는 고속의 보안 서비스를 제공하기 위한 전용 암호칩을 개발하여 서비스를 지원하고 있는 추세이다. 암호칩은 보조 프로세서(Coprocessor), 암호 프로세서(Crypto-processor) 및 네트워크(Network) 암호 프로세서 형태를 가지고 있으며, 정보보호 시스템에 내장되거나 독립적으로 운영되어 각종 보안 서비스에 필요한 암호 알고리즘들을 고속으로 처리해 주고 있다.
보안 서비스에서 필요로 하는 대부분의 알고리즘들은 대용량의 연산을 필요로 하기 때문에 소프트웨어로 처리하는 종래의 암호화 장치의 경우 고속 통신 시스템에서 요구하는 속도를 만족시킬 수가 없다. 이러한 이유로 고성능을 요구하는 정보보호 시스템에서는 알고리즘 처리를 위한 전용 암호칩을 내장하고 있다. 최근에는 기가비트(Gigabit)급 네트워크 정보보호 시스템을 대상으로 암호처리를 수행할 수 있는 하드웨어 가속기 및 시스템에 대한 연구가 진행되어 왔다.
보조 프로세서 형태의 암호칩은 하드웨어 시스템이 수행해야 할 암호 알고리즘을 고속으로 처리해 주는 기능을 수행한다. 초창기에 개발되는 대부분의 암호칩은 이러한 보조 프로세서의 형태를 취하고 있었으며 최근 개발되는 제품 중 고속의 처리성능을 보이는 제품들은 이 형태를 보이고 있다.
암호 프로세서는 하나의 칩에 암호 처리용 블록 뿐만 아니라 CPU 코어, 메모 리, 고속 표준 정합 블록 및 각종 I/O를 내장하여 과거 하드웨어 보드 상에서 가능했던 시스템 기능을 하나의 칩에서 지원할 수 있도록 제작된 형태의 칩을 말한다. 최근의 전자산업이 SLI(System Level Integration) 형태로 급속하게 변화함에 따라 개발되는 암호 프로세서들도 SoC(System on Chip) 제품이 주류를 이루고 있다.
기존의 암호화 장치는 단일 암호칩(및 암호코어)의 처리 성능을 초과하는 속도를 요구하는 응용의 경우, 시스템에 암호칩을 복수로 장착하고 호스트로부터 요청된 다중 세션 환경의 보안 서비스를 분산시켜 병렬로 처리하는 방법을 사용하고 있다. 암호화 장치는 다중세션에서 보안 서비스를 처리하기 위해 자체 또는 별도로 전용 메모리를 가지고 세션 데이터를 관리하고 있다. 일반적으로, 시스템이 구성될 때 특정 세션에 대한 암호 처리는 기 지정된 암호칩에서 수행하도록 구성하게 된다. 그러나, 다중 세션 환경에서 특정 세션에서의 보안 서비스 요청이 단일 암호칩의 처리 성능을 초과하는 속도로 입력되는 경우 복수의 암호칩 자원을 사용하는 경우에도 단일 암호칩이 수행할 수 있는 능력 이상의 처리 성능(Throughput) 을 얻을 수 없다는 문제점이 있다.
또한, 세션메모리에 저장된 세션 데이터를 암호칩 상호 간에 공유할 수 있도록 구성하고 암호칩은 세션에 무관하게 운영하여 해결할 수 있다. 예를 들어, 한가지 해결책으로 세션 데이터를 시스템 제어부의 CPU를 중간 경유하여 다른 암호칩에 전달하는 소프트웨어적인 처리를 통해 메모리를 공유할 수 있다. 이러한 경우 암호칩 간의 세션 데이터 전송으로 인해 암호 처리 성능이 저하되는 문제를 가져오게 된다.
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 저속의 암호코어를 복수로 연결하여 시스템의 처리 성능을 높이고자 하는 시도에서 발생하는 문제점으로 암호칩 간의 세션 데이터 전송으로 인해 처리속도가 감소되는 것을, 암호코어와 세션 메모리에 하드웨어 중재기를 구성하여 암호코어가 세션에 무관하게 고속으로 병렬로 운영될 수 있도록 하는 다중 암호엔진을 사용하는 고성능 암호화 방법을 제공하는 데에 있는 것이다.
상기와 같은 목적을 달성하기 위한 본 발명의 다중 암호엔진을 사용하는 고성능 암호화 장치는, 호스트로부터 호스트 버스를 통해 수신된 TLP 패킷을 분석하여 메모리 읽기 요청(Memory Request), 응답(Completion) 및 쓰기 요청(Write Request) 처리를 수행하기 위한 PCI-Express 종단장치와 TLP 패킷 분석 및 생성 장치를 포함하는 PCI-Express 호스트 정합부와, 상기 TLP 패킷에 포함된 명령블럭을 분석하여 작업 스케쥴러에 설정된 스케쥴링 알고리즘과 암호코어의 가용 자원에 대한 상태 레지스터를 참조하여 처리 순서를 결정하고 명령블럭을 분석하여 공개키 및 키관리에 관련된 명령어를 생성하고, 보안 서비스 결과를 호스트로 전송하는 다중 암호엔진 관리부와, 다중 암호엔진부의 암호코어로 명령블럭을 수신하여 상기 명령블럭을 분석하여 세션메모리 정합부로 세션ID와 명령어를 전달하고 블록암호 처리부나 해쉬 및 MAC 처리부로 데이터를 전달하여 암호코어를 동작시키는 다중 암 호엔진부와, 시스템 초기화 기능과 상기 다중 암호엔진 관리부에서 수신한 공개키 및 키 관리에 관련된 명령블럭을 처리하는 기능을 수행하는 시스템 제어부와, 상기 다중 암호엔진부와 연동되어 암호 알고리즘 처리 동작에 필요한 세션 데이터를 저장하는 세션 메모리부를 포함하여 이루어진 것을 특징으로 한다.
이하, 본 발명의 다중 암호엔진을 사용하는 고성능 암호화 명령블럭에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명에 따른 다중 암호엔진을 사용하는 고성능 암호 장치의 구조도이다.
도 1을 참조하여 보면, 다중 암호엔진을 사용하는 고성능 암호 장치는 PCI-Express 호스트 정합부(100), 다중 암호엔진 관리부(110), 다중 암호엔진부(120), 시스템 제어부(130) 및 세션 메모리부(140)로 구성된다.
PCI-Express 호스트 정합부(100)는 PCI-Express 종단장치(101)와 TLP 패킷 분석 및 생성 장치(102)로 구성되어 있다. PCI-Express 종단장치(101)는 호스트와 접속(connection)을 설정, 유지, 해제하며, 부호 변환과 신호 변환을 위해 필요한 기능을 제공하고, 1레인(lane)당 2.54Gb/s 이상의 전송 속도를 가지고 x4, x8, x16 및 x32레인의 호스트 버스를 사용할 수 있다. 또한, 직렬 전송을 위한 물리계층, 데이터 링크 계층 및 전송계층 기능을 각각 수행한다.
한편, PCI-Express 호스트 정합부(100)는 호스트 버스(90)를 통해 PCI-Express종단장치(101)로 전달된 패킷을 분석하여 메모리 읽기 요청(Memory Request), 응답(Completion) 및 쓰기 요청(Write Request) 처리를 수행한다. 수신 패킷인 RX TLP(Transport Layer Packet) 패킷의 명령블럭은 다중 암호엔진 관리부(110)의 명령블럭 대기큐(111)로 전송된다. PCI-Express 호스트 정합부(100)의 TLP 패킷 분석 및 생성 장치(102)는 도 2에서 자세히 설명하기로 한다.
다중 암호엔진 관리부(110)에서 처리 이후 단계에서 처리되는 명령블럭은 명령어와 데이터의 조합으로 구성되어 있어 명령블럭 대기큐(111)에서 명령과 데이터는 분리하여 관리될 수 있으며 RAM 또는 FIFO로 구성할 수 있다.
다중 암호엔진 관리부는(110)는 명령블럭 대기큐(111)에 저장된 명령블럭을 분석하여 작업 스케쥴러(113)에 설정된 스케쥴링 알고리즘과 암호코어의 가용 자원에 대한 상태 레지스터(113c)를 참조한 스케쥴링 방식으로 처리 순서 및 암호코어를 결정하여 다중 암호엔진부(120) 내의 해당 암호코어(121)로 명령블럭을 전달한다. 또한, 다중 암호엔진 관리부(110)에서는 명령블럭을 분석하여 다중 암호엔진부(120)에서 처리하지 않는 공개키 및 시스템 관리에 관련된 명령어를 시스템 제어부(130)로 전달한다.
다중 암호 엔진부(120)의 암호코어(121)는 호스트로부터 수신된 명령블럭을 분석하여 세션메모리 정합부(122)로 세션ID(SID)와 명령어를 전달하고 암호처리부(121b) 내부의 블록암호 처리부나 해쉬 및 MAC 처리부로 데이터를 전달하여 암호코어(121)를 동작시킨다. 또한 해당 명령에 대한 응답을 처리할 수 있도록 응답처리기로 명령 헤더를 전달한다.
명령정합 처리부(121a)는 블록암호, 해쉬 및 MAC 명령을 처리하며 IPSEC및 SSL과 같은 프로토콜에서 요구하는 동일 데이터에 대한 암호/해쉬와 암호/MAC 같은 동시처리 명령을 인식하고 암호처리부(121b)에서 해당 명령을 처리한다. 암호코어(121)는 암호서비스를 수행하기 전에 세션 메모리부(140)로부터 암호처리를 위한 세션 데이터를 획득하여 암호처리부(121b)를 구동한다.
세션 정보는 명령블럭의 입력순서(Seq), 암호 메커니즘(EncrypMech, DecryptMech, DigestMech, MACMech), 키(EncKey, DecKey, MACKey), 초기 값(EncIV, DecIV, InitialDigest, MACIV)으로 구성되어 있다.
시스템 제어부(130)는 CPU(131), 키저장 메모리(132), 메모리(133) 및 공개키 연산 및 난수발생부(134)로 구성되어 있다. 시스템 제어부(130)에서는 다중 암호 엔진을 사용하는 고성능 암호화 장치에서 시스템을 초기화하는 기능과 다중 암호엔진 관리부(110)에서 수신한 명령블럭을 처리하는 기능을 수행한다.
한편, 다중 암호엔진 관리부(110)에서 수신한 명령을 분류하면 다음과 같다. 첫째, 암호연산을 위한 명령으로 RSA 공개키 연산과 난수발생부의 난수 생성을 위한 초기값 설정 및 수행 명령이 있다. 둘째, 다중 암호엔진을 사용하는 고성능 암호화 장치의 키 관리를 수행하기 위한 명령어로 키 생성, 삭제, 공개키 방식의 키 일치(key agreement) 및 키 탐색에 관련된 명령이 있다. 셋째, 정당한 인증절차를 거친 호스트의 세션에서 생성된 키와 초기값 및 알고리즘 데이터를 세션 메모리부(140)에 초기화시켜 암호코어(121)의 암복호, 해쉬 및 MAC 서비스를 가능하게 해주는 초기화 명령어가 있다.
키저장 메모리(132)는 키 생성, 삭제, 키 일치 및 키 탐색과 같은 키 관리 기능이 수행되는 메모리 영역이다.
메모리(133)는 CPU(131)가 시스템 제어부에 요구되는 기능을 수행하기 위한 프로그램과 데이터를 저장하는 영역이다.
세션 메모리부(140)는 다중 암호엔진부(120)의 세션메모리 정합부(122)와 연동되어 암호 알고리즘 처리 동작에 필요한 세션 초기화 동작을 CPU(131)에 의존하지 않고 하드웨어에 의해 고속으로 수행될 수 있도록 하기 위한 처리부로서 암호코어(121)와 연동된 세션메모리 정합부(122)로부터 세션 ID와 명령어를 입력 받은 후, 암호코어(121)를 구동시키기 위해 필요한 세션 데이터를 세션메모리(142)로부터 읽어 암호코어(121)를 초기화하고, 암호코어(121)가 연산을 종료한 후 변경된 암호코어(1211)의 세션 데이터는 해당 영역의 세션메모리로 다시 쓰여진다. 세션 데이터를 읽고 쓰기 위한 세션메모리(142)로의 액세스 권한은 세션메모리 공유 중재기(141)를 통해 중재(arbitration)된다.
도 2는 본 발명의 도 1에 따른 TLP 패킷 분석 및 생성 장치 구성도이다.
도 2를 참조하여 보면, TLP 패킷 분석 및 생성 장치(102)는 수신 패킷 제어 블록(102a), 송신 패킷 제어 블록(102b), Bypass FIFO(102c), DMA 레지스터(102d), Tag 레지스터(102e) 및 FIFO 상태 레지스터(102f)로 구성된다.
TLP 패킷 분석 및 생성 장치(102)는 PCI-Express 호스트 정합부(100)에 위치하며 호스트 버스(90)를 통해 PCI-Express종단장치(101)로 전달된 전송 계층 패킷 프로토콜을 분석하여 이를 처리하는 장치이다.
수신 패킷 제어 블록(102a)은 수신된 RX TLP패킷을 분석하여 메모리 읽기 요청(Memory Request), 응답(Completion) 및 쓰기 요청(Write Request) 처리를 수행 한다. 수신된 RX TLP 패킷 중 명령블럭으로 판단되는 경우 패킷 중 명령블럭을 추출하여 다중 암호엔진 관리부(110)의 명령블럭 대기큐(111)로 전송한다.
송신 패킷 제어 블록(102b)은 수신된 RX TLP패킷에 대한 응답을 수행해야 하는 경우 호스트의 응답요청에 대한 결과에 해당하는 TX TLP패킷을 생성하여 호스트로 전송하는 기능을 수행한다.
Bypass FIFO(102c)는 호스트의 요청 패킷(Request Packet)에 대한 응답 패킷(Completion Packet)을 생성할 때 사용하기 위한 요청 패킷의 임시 저장 메모리이다.
DMA(Direct Memory Access) 레지스터(102d)는 호스트 응용프로그램과 디바이스 드라이버와 연결되어 고속 데이터 전송을 가능하게 한다. 호스트는 DMA레지스터 영역을 메모리로 인식하며 메모리 읽기 및 쓰기에 대한 명령을 DMA 레지스터에 전송하면 송신 패킷 제어 블록(102b)을 통해 호스트로 DMA 요청 패킷이 전송된다.
Tag 레지스터(102e)는 보안 서비스 결과를 호스트로 전송하기 위한 패킷을 생성할 때 사용하기 위한 라우팅 정보인 Tag을 저장하기 위한 레지스터이다.
FIFO 상태 레지스터(102f)는 송신/수신 패킷 제어 블록(102a, 102b)에서 명령블럭 대기큐(111)와 응답블럭 대기큐(112)의 상태를 저장하는 레지스터이다.
도 3은 본 발명의 도 1에 따른 다중 암호엔진 관리부의 작업 스케쥴러 내부 구성도이다.
도 3을 참조하여 보면, 작업 스케쥴러(113)는 명령 작업 스케쥴러(113a), 알고리즘 레지스터(113b), 상태 레지스터(113c) 및 응답작업 스케쥴러(113d)로 구성 된다.
도 3을 참조하여 보면, 다중 암호엔진을 사용하는 고성능 암호화 장치에서 작업 스케쥴러는 시스템에서 주어진 보안 서비스 요청을 암호코어(121)에 균일하게 할당하여 시스템의 성능이득을 이루려하는 장치로 암호자원, 암호칩 응용환경 특성 및 세션 ID(SID: Session Identification)에 대한 정보를 이용한다.
본 발명에서는 세션 ID와 가용자원 정보를 사용하여 고정적인 암호코어 할당 방식을 사용하는 정적 스케쥴링 방식과 작업환경의 변화 상태를 반영하여 실행시간에 스케쥴링 방식을 변경할 수 있는 동적 스케쥴링 방법이 사용된다. 동적 스케쥴링 방식에는 FIFO 큐 스케쥴링, 짧은 일 우선(Shortest-Job-First) 스케쥴링, 우선순위 스케쥴링, 라운드 로빈(Round robin) 스케쥴링 및 페어 큐(Fair Queue)와 같은 알고리즘이 사용될 수 있다.
한편, 시스템 제어부(130)는 응용환경에 적합한 스케쥴링 알고리즘을 선택한 후 알고리즘 레지스터(113b)에 저장한다. 명령작업 스케쥴러(113a)와 응답작업 스케쥴러(113d)는 알고리즘 레지스터(113b)에 설정된 스케쥴링 알고리즘과 복수의 암호코어를 효율적으로 사용할 수 있도록 암호코어 자원의 현재 상태를 보여주는 상태 레지스터(113c)를 참조하여 명령블럭에 대한 처리 순서와 처리할 암호코어(121)를 선택한다.
명령블럭은 보안 서비스 명령어와 데이터로 구성되어 있으며, 명령블럭 대기큐에서 명령과 데이터를 분리하여 관리되며 RAM 또는 FIFO로 구성할 수 있다.
도 4는 본 발명의 도 1에 따른 다중 암호엔진부의 암호코어 구성도이다.
도 4를 참조하여 보면, 다중 암호 엔진부의 암호코어(120)는 호스트에서 암호코어로 송신된 명령블럭을 저장하는 입력FIFO(121e), 암호처리부(121b)의 처리 결과를 저장하는 출력FIFO(121d), 명령정합 처리부(121a), 암호처리부(121b) 및 세션메모리 정합부(122)로 구성된다.
명령정합 처리부(121a)는 호스트에서 수신한 명령블럭을 분석하여 세션메모리 정합부(122)로 세션ID를 전달하고 암호처리부의(121b)의 블록암호 처리부나 해쉬 및 MAC 처리부로 데이터를 전달하는 역할을 담당한다. 또한 명령정합 처리부(121a)는 해당 명령에 대한 응답을 처리할 수 있도록 응답처리기로 명령 헤더를 전달한다. 명령정합 처리부(121a)는 블록암호, 해쉬 및 MAC 명령을 처리하며 IPSEC및 SSL과 같은 프로토콜에서 요구하는 동일 데이터에 대한 암호/해쉬와 암호/MAC 같은 동시처리 명령을 인식하고 암호처리부(121b)에서 해당 명령을 수행한다.
세션메모리 정합부(122)는 명령정합 처리부(121a)로부터 전달받은 세션ID와 명령어를 기준으로 오프셋(Offset) 주소를 설정하고 세션 메모리부(140)로부터 세션 데이터를 획득하여 암호처리부(121b)의 해당 레지스터를 초기화한다. 세션 데이터는 명령블럭의 입력순서, 암호 메커니즘, 키, 초기값으로 구성되어 있다.
도 5는 본 발명의 도 1에 따른 세션 메모리부의 세션메모리 공유 중재기의 연결도.
도 5를 참조하여 보면, 세션메모리 공유 중재기(141)는 다중 암호코어(121) 간에 세션메모리(142)에 대한 접근 권한을 중재하는 역할을 담당한다. 고속의 암호처리를 구현하기 위해 다중 암호코어를 사용하는 시스템에서 암호코어들은 세션메 모리를 공유하여 사용해야 하기 때문에 세션메모리(142)에 대한 접근 권한을 중재할 수 있는 세션메모리 공유 중재기(141)를 필요로 하며, 암호 코어 내부에 위치한 세션메모리 정합부(122)와 통신을 통해 메모리에 대한 접근을 중재한다.
도 6은 본 발명의 도 1에 따른 세션메모리의 내부 구성을 상세하게 나타낸 구성도이다.
도 6을 참조하여 보면, 세션 메모리부(142)는 외부의32비트 CPU가 접근하는 포트의 메모리 영역으로 표시 되었다. 메모리의 물리적 주소는 세션메모리 정합부(122)와 CPU 경로를 갖는 듀얼 포트(Dual Port) SRAM에 적용되는 주소를 의미한다. 도 6처럼 CPU는 세션 ID를 이용하여 세션메모리에 간접 어드레싱(addressing)하는 방식으로 접근한다. CPU가 세션 ID 정보를 세션메모리 내부의 SID 레지스터에 쓴 후에 상대(offset) 번지만큼 주소를 변경하면서 32비트 단위로 읽기/쓰기를 수행한다. 세션메모리에 대한 접근 주체는 암호코어에 위치한 세션메모리 정합부(122)와 시스템 제어부(130)에 위치한 CPU(131)이다. 세션메모리 정합부(122)는 해당 세션에 대한 세션 정보를 읽거나 쓰기 위해 세션 ID를 기준으로 한 물리적 주소(Physical Address) 영역으로 액세스하게 된다. 암호처리부(121b)에서 수행되는 알고리즘을 선택하기 위해 세션메모리(142)에 정의된 알고리즘 선택 변수는 암호 알고리즘(EncryptMech), 복호 알고리즘(DecryptMech), 해쉬 알고리즘 (DigestMech) 및 메시지인증코드 알고리즘(MACMech)이 있다. 선택된 알고리즘에서 사용되는 초기값은 암호초기 벡터(EncIV), 복호초기벡터(DecIV), 해쉬벡터(Initial Digest) 및 메시지인증코드 초기벡터(MACIV) 영역에 저장된다. 선택된 알고리즘에서 사용되는 키 값은 암호키(EncKey), 복호키 (DecKey) 및 메시지인증코드 키(MACKey) 영역에 저장된다. 세션메모리에 저장된 알고리즘 선택변수, 초기값 및 키 데이터는 세션메모리 정합부(122)에서 세션 ID와 명령어 코드를 참조하여 암호처리부(121b)의 내부 레지스터에 설정되어 운영된다.
본 발명에 의한 다중 암호엔진을 사용하는 고성능 암호화 장치는 다음과 같은 효과를 가진다.
첫째, 본 발명에 의한 다중 암호엔진을 사용하는 고성능 암호화 장치는 정보보호 시스템에서 제공하는 블록암호화, 해쉬, 메시지 인증 코드, 공개키 연산 및 난수 발생과 같은 암호 알고리즘을 다중 암호엔진으로 구성한 병렬처리를 통해 고속으로 보안서비스를 제공할 수 있는 효과가 있다.
둘째, 본 발명에 의한 다중 암호엔진을 사용하는 고성능 암호화 장치의 공개키, 비밀키, 해쉬 및 MAC 서비스를 IKE, IPSEC 및TLS와 같은 암호 프로토콜에 적용하여 유, 무선 인터넷, 전자 상거래, 가상 사설망 및 고속 링크 장비에 고속의 보안 서비스를 제공할 수 있는 효과가 있다.
셋째, 본 발명에 따른 다중 암호엔진을 사용하는 고성능 암호 장치는, 세션메모리에 저장된 세션 데이터를 암호코어 상호간 공유할 수 있도록 암호코어와 세션메모리에 중재기를 구성하여 암호코어가 세션에 무관하게 운영될 수 있도록하여, 다중 세션 환경에서 고속의 보안 서비스 요청을 저속의 암호코어를 복수로 접속하 여 파이프라인 처리하여 시스템의 처리 성능과 비용 절감 효과를 자져 올 수 있는 효과가 있다.
네째, 본 발명에 따른 다중 암호엔진을 사용하는 고성능 암호 장치는, 다중 암호엔진부의 암호자원의 가용 상태와 세션 ID정보를 이용한 고정적인 암호코어 할당 방식인 정적 스케쥴링 방식과 명령블럭의 명령어 종류 및 처리시간을 고려해서 응용 환경에 적합한 알고리즘을 선택한 후 시스템 제어부에서 프로그램하여 가변 시킬 수 있는 동적 스케쥴링 방법을 지원하는 구조를 가지고 있어 응용 환경의 변화에 따라 최적화된 스케쥴링 방식을 사용할 수 있는 효과가 있다.

Claims (9)

  1. 호스트로부터 호스트 버스를 통해 RX TLP 패킷을 분석하여 메모리 읽기 요청(Memory Request), 응답(Completion) 및 쓰기 요청(Write Request) 처리를 수행하도록 PCI-Express 종단장치와 TLP 패킷 분석 및 생성 장치를 포함하는 PCI-Express 호스트 정합부와;
    상기 TLP 패킷에 포함된 명령블럭을 분석하여 작업 스케쥴러에 설정된 스케쥴링 알고리즘과 암호코어의 가용 자원에 대한 상태 레지스터를 참조하여 처리 순서를 결정하고 명령블럭을 분석하여 공개키 및 키관리에 관련된 명령어를 생성하고, 보안 서비스 결과를 호스트로 전송하는 다중 암호엔진 관리부와;
    내부의 암호코어로 명령블럭을 수신하여 상기 명령블럭을 분석하여 내부의 세션메모리 정합부로 세션ID와 명령어를 전달하여 상기 암호코어를 동작시키는 다중 암호엔진부와;
    시스템 초기화 기능과 상기 다중 암호엔진 관리부에서 수신한 공개키 및 키 관리에 관련된 명령블럭을 처리하는 시스템 제어부와;
    상기 다중 암호엔진부와 연동되어 암호 알고리즘 처리 동작에 필요한 세션 데이터를 저장하는 세션 메모리부로 구성되는 것을 특징으로 하는 다중 암호엔진을 사용하는 고성능 암호화 장치.
  2. 제1항에 있어서,
    상기 다중 암호엔진부는,
    PCI-Express 버스를 통해 PCI-Express 종단장치에 전달된 상기 TLP 패킷을 분석하여 명령블럭을 추출하고 이를 내부에 구성된 암호처리부에 전달하는 암호코어와;
    상기 세션 메모리부가 상기 암호코어와 연동되어 세션 ID와 명령어를 입력받아 상기 암호코어를 구동시키는 데에 위해 필요한 세션 데이터를 읽어 암호코어를 초기화하도로 정합하는 세션메모리 정합부(122)로 구성되는 것을 특징으로 하는 다중 암호엔진을 사용하는 고성능 암호화 장치.
  3. 제1항에 있어서,
    상기 RX TLP패킷을 분석하여 메모리 읽기 요청(Memory Request), 응답(Completion) 및 쓰기 요청(Write Request) 처리를 수행하고, 상기 RX TLP 패킷 중 명령블럭으로 판단되는 경우 패킷 중 명령블럭을 추출하여 상기 다중 암호엔진 관리부로 전송하는 수신 패킷 제어 블록과;
    수신된 상기 TLP 패킷에 대한 응답을 수행해야 하는 경우 호스트의 응답요청에 대한 결과인 송신 TLP 패킷을 생성하여 호스트로 전송하는 기능을 수행하는 송신 패킷 제어 블록과;
    상기 호스트의 요청 패킷에 대한 응답 패킷을 생성할 때 사용하기 위한 요청 패킷의 임시 저장 메모리인 Bypass FIFO와;
    호스트가 메모리로 인식하며 메모리 읽기 및 쓰기에 대한 명령을 전송하면 송신 패킷 제어 블록(102b)을 통해 호스트로 DMA 요청 패킷이 전송되는 DMA(Direct Memory Access) 레지스터와;
    보안 서비스 결과를 호스트로 전송하기 위한 패킷을 생성할 때 사용하기 위한 라우팅 정보인 Tag을 저장하기 위한 레지스터이며, 상기 FIFO 상태 레지스터(102f)는 송신/수신 패킷 제어 블록(102a, 102b)에서 명령블럭 대기큐(111)와 응답블럭 대기큐(112)의 상태를 저장하는 레지스터인 Tag 레지스터(102e)를
    송신/수신 패킷 제어 블록(102a, 102b)에서 명령블럭 대기큐(111)와 응답블럭 대기큐(112)의 상태를 저장하는 FIFO 상태 레지스터(102f)를 포함하여 구성된 것을 특징으로 하는 다중 암호엔진을 사용하는 고성능 암호화 장치.
  4. 제 1항에 있어서,
    상기 시스템 제어부는 다중 암호엔진부의 암호자원의 가용 상태와 세션 ID에 대한 정보를 이용하여 고정적인 암호코어 할당 방식을 지원하는 정적 스케쥴링 방법과 암호코어 응용 환경에 적합하도록 스케쥴링을 가변시킬 수 있는 동적 스케쥴링 알고리즘을 선택적으로 사용하는 것을 특징으로 하는 다중 암호엔진을 사용하는 고성능 암호화 장치.
  5. 제4항에 있어서,
    상기 동적 스케쥴링은 FIFO큐 스케쥴링, 짧은 일 우선(Shortest-Job-First) 스케쥴링, 우선순위 스케쥴링, 라운드 로빈(Round robin) 스케쥴링 및 페어 큐(Fair Queue) 스케쥴링 중 선택된 어느 하나의 스케쥴링을 사용하는 것을 특징으로 하는 다중 암호엔진을 사용하는 고성능 암호화 장치.
  6. 제4항에 있어서,
    상기 작업 스케쥴러는,
    상기 시스템 제어부로부터 응용환경에 적합한 스케쥴링 알고리즘을 수신받아 이를 저장하고 있는 알고리즘 레지스터와;
    상기 암호코어 자원의 현재 상태를 보여주는 상태 레지스터와;
    상기 알고리즘 레지스터에 설정된 스케쥴링 알고리즘과 복수의 상기 암호코어를 효율적으로 사용할 수 있도록 참조하여 명령블럭에 대한 처리 순서와 처리할 상기 암호코어를 선택하는 명령작업 스케쥴러와;
    상기 알고리즘 레지스터에 설정된 스케쥴링ㄹ 알고리즘과 복수의 암호코어를 효율적으로 사용할 수 있도록 참조하여 응답블럭에 대한 처리 순서와 처리할 상기 암호코어를 선택하는 응답작업 스케쥴러(113d)로 구성된 것을 특징으로 하는 다중 암호엔진을 사용하는 고성능 암호화 장치.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 암호코어는,
    상기 암호코어를 복수로 구성하고 상기 암호코어가 동작된 이후에 해당 명령에 대한 응답을 처리하기 위해 응답처리기로 명령 헤더를 전달하는 구조를 갖는 것을 특징으로 하는 다수의 다중 암호엔진을 사용하는 고성능 암호화 장치.
  8. 제2항에 있어서,
    상기 세션 메모리부는,
    암호 알고리즘 처리 동작에 필요한 세션 데이터를 저장하는 세션메모리와;
    상기 각각의 암호코어 간에 상기 세션메모리에 대한 접근 권한을 중재하여 고속의 암호처리를 구현하는 세션메모리 공유 중재기(141)로 구성된 것을 특징으로 하는 다중 암호엔진을 사용하는 고성능 암호화 장치.
  9. 제 1항에 있어서,
    상기 세션메모리에 저장된 알고리즘 선택변수, 초기값 및 키 데이터를 세션메모리 공유 중재기를 통해 세션 ID와 명령어 코드를 참조한 후 상기 암호코어의 내부 초기화 레지스터로 데이터를 전달할 수 있으며, 상기 시스템 제어부와도 제어 및 데이터 경로를 가지고 있는 듀얼 포드(Dual Port) 구조의 세션메모리를 가지는 다중 암호엔진을 사용하는 고성능 암호화 장치.
KR1020060099263A 2005-12-08 2006-10-12 다중 암호엔진을 사용하는 고성능 암호화 장치 KR100799305B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050119894 2005-12-08
KR20050119894 2005-12-08

Publications (2)

Publication Number Publication Date
KR20070061329A true KR20070061329A (ko) 2007-06-13
KR100799305B1 KR100799305B1 (ko) 2008-01-29

Family

ID=38357259

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060099263A KR100799305B1 (ko) 2005-12-08 2006-10-12 다중 암호엔진을 사용하는 고성능 암호화 장치

Country Status (1)

Country Link
KR (1) KR100799305B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009025525A1 (en) * 2007-08-22 2009-02-26 Lg Electronics Inc. Method of allocating radio resources in a wireless communication system
US8010802B2 (en) 2007-12-07 2011-08-30 Electronics And Telecommunications Research Institute Cryptographic device having session memory bus
USRE44203E1 (en) 2007-08-22 2013-05-07 Lg Electronics Inc. Method of allocating radio resources in a wireless communication system
CN113132264A (zh) * 2019-12-31 2021-07-16 中兴通讯股份有限公司 一种安全计算控制方法、数据包处理方法、装置及其***
CN116226940A (zh) * 2022-12-08 2023-06-06 广州万协通信息技术有限公司 一种基于pcie的数据安全处理方法以及数据安全处理***
CN116684074A (zh) * 2023-07-25 2023-09-01 杭州海康威视数字技术股份有限公司 硬件密码模组多核调度算法驱动方法、装置及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101687115B1 (ko) 2015-09-09 2016-12-15 한국과학기술원 통신 시스템의 암호화 패킷 전송 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014627A1 (en) 1999-07-08 2003-01-16 Broadcom Corporation Distributed processing in a cryptography acceleration chip
KR100406139B1 (ko) * 2001-11-28 2003-11-14 한국전자통신연구원 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법
JP2004029347A (ja) 2002-06-25 2004-01-29 Matsushita Electric Ind Co Ltd データ暗復号回路
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US20040230813A1 (en) 2003-05-12 2004-11-18 International Business Machines Corporation Cryptographic coprocessor on a general purpose microprocessor

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE45138E1 (en) 2007-08-22 2014-09-16 Lg Electronics Inc. Method of allocating radio resources in a wireless communication system
US7996029B2 (en) 2007-08-22 2011-08-09 Lg Electronics Inc. Method of allocating radio resources in a wireless communication system
US8315658B2 (en) 2007-08-22 2012-11-20 Lg Electronics Inc. Method of allocating radio resources in a wireless communication system
USRE44203E1 (en) 2007-08-22 2013-05-07 Lg Electronics Inc. Method of allocating radio resources in a wireless communication system
USRE44767E1 (en) 2007-08-22 2014-02-18 Lg Electronics Inc. Method of allocating radio resources in a wireless communication system
WO2009025525A1 (en) * 2007-08-22 2009-02-26 Lg Electronics Inc. Method of allocating radio resources in a wireless communication system
US8010802B2 (en) 2007-12-07 2011-08-30 Electronics And Telecommunications Research Institute Cryptographic device having session memory bus
CN113132264A (zh) * 2019-12-31 2021-07-16 中兴通讯股份有限公司 一种安全计算控制方法、数据包处理方法、装置及其***
CN113132264B (zh) * 2019-12-31 2024-02-02 中兴通讯股份有限公司 一种安全计算控制方法、数据包处理方法、装置及其***
CN116226940A (zh) * 2022-12-08 2023-06-06 广州万协通信息技术有限公司 一种基于pcie的数据安全处理方法以及数据安全处理***
CN116226940B (zh) * 2022-12-08 2024-04-26 广州万协通信息技术有限公司 一种基于pcie的数据安全处理方法以及数据安全处理***
CN116684074A (zh) * 2023-07-25 2023-09-01 杭州海康威视数字技术股份有限公司 硬件密码模组多核调度算法驱动方法、装置及电子设备
CN116684074B (zh) * 2023-07-25 2023-10-20 杭州海康威视数字技术股份有限公司 硬件密码模组多核调度算法驱动方法、装置及电子设备

Also Published As

Publication number Publication date
KR100799305B1 (ko) 2008-01-29

Similar Documents

Publication Publication Date Title
US8413153B2 (en) Methods and systems for sharing common job information
US7634650B1 (en) Virtualized shared security engine and creation of a protected zone
US8156503B2 (en) System, method and computer program product for accessing a memory space allocated to a virtual machine
KR100799305B1 (ko) 다중 암호엔진을 사용하는 고성능 암호화 장치
EP1370971B1 (en) Processing modules for computer architecture for broadband networks
US7814310B2 (en) IPsec performance optimization
US8135867B2 (en) Secure operation of processors
US6101255A (en) Programmable cryptographic processing system and method
US9286118B2 (en) System and method for improved job processing to reduce contention for shared resources
US7320071B1 (en) Secure universal serial bus
US20080222317A1 (en) Data Flow Control Within and Between DMA Channels
US7240203B2 (en) Method and apparatus for establishing secure sessions
CN113614722A (zh) 网络功能虚拟化基础设施中的进程到进程安全数据移动
CN114662136B (zh) 一种基于pcie通道的多算法ip核的高速加解密***及方法
CN110958215B (zh) 安全的在线接收的网络分组处理
EP3563534B1 (en) Transferring packets between virtual machines via a direct memory access device
CN114095251A (zh) 一种基于dpdk与vpp的sslvpn实现方法
JP2003512649A (ja) 暗号アクセラレータ
US7761529B2 (en) Method, system, and program for managing memory requests by devices
CN112052483B (zh) 一种密码卡的数据通信***及方法
US20130339968A1 (en) System and Method for Improved Job Processing
US20230153153A1 (en) Task processing method and apparatus
CN114943087A (zh) 一种多算法核高性能sr-iov加解密***及方法
Guo et al. Gaviss: Boosting the performance of gpu-accelerated NFV systems via data sharing
KR20090059602A (ko) 세션 메모리 버스를 구비한 암호화 장치

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: 20130111

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141224

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151224

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20200106

Year of fee payment: 13