KR100420555B1 - 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법 - Google Patents

고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법 Download PDF

Info

Publication number
KR100420555B1
KR100420555B1 KR10-2002-0021504A KR20020021504A KR100420555B1 KR 100420555 B1 KR100420555 B1 KR 100420555B1 KR 20020021504 A KR20020021504 A KR 20020021504A KR 100420555 B1 KR100420555 B1 KR 100420555B1
Authority
KR
South Korea
Prior art keywords
data
command
session
encryption
decryption processing
Prior art date
Application number
KR10-2002-0021504A
Other languages
English (en)
Other versions
KR20030083100A (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-2002-0021504A priority Critical patent/KR100420555B1/ko
Publication of KR20030083100A publication Critical patent/KR20030083100A/ko
Application granted granted Critical
Publication of KR100420555B1 publication Critical patent/KR100420555B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures

Abstract

본 발명은 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법에 관한 것으로, 블록 암호 알고리즘을 처리하는 암호칩과 CPU를 내장하는 범용성 있는 암호화 장치를 기본으로 세션 키, 초기화 벡터, 운용 모드, 세션 정상 여부 등의 세션 초기화 데이터를 저장하는 전용 메모리를 두고 호스트의 명령중에서 암복호 처리 명령을 판단하고, 암호칩에게 암복호 처리 명령에 필요한 변수를 전달하며, 동작의 시작을 명령하도록 하는 명령 해석기를 설치하고, 암호칩 내에 세션 ID, 데이터 길이, 세션 키, 초기화 벡터 및 운용 모드 등의 초기화 데이터를 저장하는 레지스터를 2개씩 설치하여 세션 변경을 위한 일련의 동작들을 CPU의 개입 없이 장치 내의 하드웨어에 의해 고속으로 수행하도록 하고 연속되는 암복호 처리 명령에 대한 칩 초기화 동작을 이전 명령이 수행되고 있는 중에도 미리 수행할 수 있도록 하여 세션 변경으로 인한 지연 시간을 최소화할 수 있는 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법이 제시된다.

Description

고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법{Block encrypting device for fast session switching and method of operating the same}
본 발명은 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법에 관한 것으로, 세션 변경을 위한 일련의 동작들을 CPU의 개입 없이 장치 내의 하드웨어에 의해 고속으로 수행하도록 하고 연속되는 암복호 처리 명령에 대한 칩 초기화 동작을 이전 명령이 수행되고 있는 중에도 미리 수행할 수 있도록 하여 세션 변경으로 인한 지연 시간을 최소화할 수 있어 고속 다중 채널형 통신 시스템을 위한 암호 장비에 유용하게 적용될 수 있는 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법에 관한 것이다.
블록 암호 기능을 정상적으로 운용하기 위해서는 세션 변경이 발생하면 이전 세션에 대한 초기화 벡터(Initial Vector) 값을 안전한 메모리 영역에 대피시켜야 하고 새로운 세션에 대한 세션 키(Session Key), 초기화 벡터 및 운용 모드 등으로 암호 함수를 재설정하는 동작들을 수행해야 한다. 본 명세서에서는 새로운 세션에 대한 암호 함수의 재설정을 위한 일련의 동작들을 세션 변경 혹은 세션 변경 동작이라 하겠다. 블록 암호 기능을 전용 칩으로 구현한 대부분의 범용성 있는 암호화 장치들은 이러한 세션 변경 동작을 암호화 장치 내의 CPU가 담당하고 있다. 일반적으로 CPU의 데이터 버스 크기는 블록 암호 알고리즘의 블록 크기 및 키 크기보다 작아서 세션 변경을 위해서는 CPU가 여러 번에 걸쳐 메모리 혹은 입출력 억세스 동작을 수행해야 한다.
도 1은 블록 암호 기능을 칩으로 구현한 범용성 있는 암호화 장치의 일반적인 구조를 설명하기 위한 블록도로서, CPU 버스와 호스트 버스가 모두 32비트인 경우를 가정하였으며, 암호칩(100)은 블록 크기 및 키 크기가 모두 128비트인 블록 암호 기능을 수행함을 가정하였다. 데이터 버퍼(102)는 외부 호스트 장비(103)로부터 호스트 정합부(105)를 통해 전달되는 암복호 처리용 데이터를 암호칩(100)으로 전달하고 암호칩(100)의 처리 결과 데이터를 호스트 장비(103)로 전달하기 위한 임시 저장소이다. 호스트 장비(103)가 명령을 하게 되면 CPU(101)는 명령을 해석하고, 명령에 따른 응답 데이터를 생성하여 호스트 장비(103)에 응답하고 명령을 실행하기 위해 암호칩(100)을 포함한 하드웨어 전반을 제어한다.
CPU(101)는 세션 변경 과정에서 암호화/복호화, ECB/CBC/CFB/OFB 등과 같은 블록 암호 알고리즘의 운용 모드를 설정하고, 초기화 벡터 및 세션 키 데이터 등을 암호칩(100)에 전달하여 암호칩(100)이 동작하기 위한 준비 작업을 수행한다. 이러한 초기화 벡터 및 세션 키 값들은 호스트 장비(103)로부터 명령 데이터의 일부분으로 전달될 수도 있고, 장치내의 메모리(104)로부터 읽어 올 수도 있다. 호스트 장비(103)가 새로운 세션(혹은 채널)에 대한 암호화 동작을 명령하면 CPU(101)는 새로운 세션에 대응하는 값으로 암호칩(100)을 재초기화해야 할 뿐 아니라 이전 세션에서 초기화 벡터가 갱신되었으면 이를 읽어와 메모리(104)로 대피시켜야 한다.
도 1과 같이 CPU 데이터 버스가 32비트이고 블록 암호 알고리즘의 블록 크기 및 키 크기가 128비트인 경우를 가정한다면, CPU(101)는 세션 변경이 일어날 때 마다 암호칩(100)의 재설정을 위해 4회의 입출력 읽기 동작을 통하여 이전 세션의 초기화 벡터 값을 암호칩(100)으로부터 읽어와야 하며 이렇게 읽은 데이터를 안전한 메모리(104)에 저장하기 위해 4회의 메모리 쓰기 동작을 수행해야 한다. 그리고 새로운 세션의 암호칩(100) 동작 모드 설정을 위해 1회의 입출력 쓰기 동작이 필요하다. 또한 새로운 세션에 대한 초기화 벡터 및 세션 키 값을 읽어오기 위해 8회의 메모리 읽기 동작을 수행해야 하며, 이 값들을 암호칩(100)으로 전달하기 위해 8회의 입출력 쓰기 동작을 수행해야 한다. 이와 같은 동작들은 CPU(101)가 호스트 장비(103)의 명령을 해석한 후 단순히 암호칩(100)의 설정을 위해 필요한 기본적인 동작들이다. 이러한 일련의 동작 수행으로 인해 소모되는 시간은 다음과 같이 표현될 수 있다.
td_ChangeSession = td(IO_read)×4 + td(MEM_write)×4 + td(IO_write) + td(MEM_read)×8 + td(IO_write)×8
여기서, td_ChangeSession은 세션 변경시 소모되는 시간, td(IO_read)는 CPU의 입출력 읽기 동작의 지연 시간, td(IO_write)는 CPU의 입출력 쓰기 동작의 지연 시간, td(MEM_read)는 CPU의 메모리 읽기 동작의 지연 시간, td(MEM_write)는 CPU의 메모리 쓰기 동작의 지연 시간을 각각 나타낸다.
전술한 바와 같이 위의 예는 CPU 버스의 크기가 32비트이고, 블록 암호 알고리즘의 블록 크기 및 세션 키 크기가 모두 128비트인 경우이다. 그러나, 이러한CPU 버스의 크기, 블록 크기 및 세션 키의 크기는 암호 장비에서 사용하는 CPU의 종류와 블록 암호 알고리즘에 따라 다양한 값들을 가질 수 있다. 위의 식을 좀더 일반적으로 나타내면 다음과 같이 표현할 수 있다.
td_ChangeSession = td(IO_read)×BlockSize/CPU_BusSize) + td(MEM_write)×BlockSize/CPU_BusSize) + td(IO_write) + td(MEM_read)×BlockSize/CPU_Bus Size) + td(MEM_read)×SessionKeySize/CPU_BusSize) + td(IO_write)×BlockSize /CPU_BusSize) + td(IO_write)×SessionKeySize/CPU_BusSize)
여기서, BlockSize는 블록 암호 알고리즘의 블록 크기, CPU_BusSize는 CPU 버스의 크기, SessionKeySize는 블록 암호 알고리즘의 세션 키의 크기를 각각 나타낸다.
위의 식에서 표현된 지연 시간은 단순히 CPU가 암호칩을 설정하기 위해 소모되는 시간이며 세션 변경 동작을 완료하기 위해서는 이 시간 이외에도 CPU가 호스트의 명령을 읽어오는데 소모되는 시간, 명령을 해석하는데 소모되는 시간, 응답 데이터를 생성하는데 소모되는 시간, 응답 데이터를 호스트로 전달하는데 소모되는 시간 등이 더 소모된다.
이와 같이 기존의 암호 장비들은 세션 변경을 위해 많은 시간을 소모하고 있다. 이러한 지연 시간은 한 세션내의 암복호 처리용 데이터 크기가 크고 세션 변경이 자주 발생하지 않는 전산용 암호 장비 및 회선용 암호 장비 등에서는 크게 문제가 되지 않는다. 그러나 ATM 및 기가비트 이더넷(Giga bit Ethernet)과 같이 장비에 연결되는 채널 수가 많고, 채널간의 세션 변경이 고속으로 일어나며, 한 세션의암복호 처리용 데이터의 크기가 크지 않는 고속의 다중 채널형 통신 시스템에서는 전체 시스템의 성능을 저하시키는 주요 요인이 된다.
본 발명의 목적은 기존의 범용성 있는 블록 암호화 장치에서 문제가 되었던 세션 변경으로 인한 지연 시간을 최소화하여 ATM 및 기가비트 이더넷(Giga bit Ethernet)과 같은 고속 다중 채널형 통신 시스템에도 적용할 수 있는 블록 암호화 장치를 제공하는데 있다.
본 발명의 다른 목적은 기존의 범용성 있는 블록 암호화 장치에서 문제가 되었던 세션 변경으로 인한 지연 시간을 최소화하여 ATM 및 기가비트 이더넷(Giga bit Ethernet)과 같은 고속 다중 채널형 통신 시스템에도 적용할 수 있는 블록 암호화 장치의 구동 방법을 제공하는데 목적이 있다.
도 1은 종래의 암호화 장치의 내부 구조도이다.
도 2(a) 및 도 2(b)는 본 발명에 따른 고속 세션 변경이 가능한 블록 암호화 장치의 구조도이다.
도 3은 본 발명에 따른 고속 세션 변경이 가능한 블록 암호화 장치내 암호 칩의 주변 구조도이다.
도 4는 호스트 장비의 입력 데이터 구조도이다.
도 5는 암호화 장치의 출력 데이터 구조도이다.
도 6(a) 및 도 6(b)는 본 발명에 따른 고속 세션 변경이 가능한 블록 암호화 장치의 구동 방법을 설명하기 위한 흐름도이다.
<도면의 주요 부분에 대한 부호 설명>
200 : 호스트 정합부 201 : 로컬 버스 중재부
202 : 버스 스위치 203 : 응답 출력 버퍼
204 : 명령 입력 버퍼 205 : 데이터 출력 버퍼
206 : 데이터 입력 버퍼 207 : 명령 해석기
209 : 입력 버퍼 메모리 210 : 출력 버퍼 메모리
211 : 암호칩 212 : 세션 데이터 메모리
213 : CPU
본 발명에 따른 고속 세션 변경이 가능한 블록 암호화 장치는 호스트 장비와의 표준 정합 기능을 수행하는 호스트 정합부와, 상기 호스트 장비로부터 입력되는 명령 데이터 및 암복호 처리용 데이터를 전달하고, 이에 따른 암복호 처리 결과 데이터 및 응답 데이터를 상기 호스트 장비로 전달하는 로컬 버스 중재부와, 상기 호스트 장비로부터의 상기 명령 데이터를 해석하여 암복호 처리용 명령이면 응답 데이터를 생성하여 상기 정합부에 전달하고, 암복호 처리용 명령이 아니면 상기 명령 데이터 및 암복호에 필요한 변수들을 전달하여 암복호 처리 동작의 시작을 명령하는 명령 해석기와, 상기 호스트 장비로부터 상기 명령 해석기를 통해 전달되는 암복호 처리 명령 이외의 명령에 따른 동작을 수행할 수 있도록 제어하고 명령 수행 결과에 해당되는 응답 데이터를 생성하는 CPU와, 상기 명령 해석기로부터 상기 암복호에 필요한 변수들을 전달받아 블록 암호 알고리즘을 구현하여 블록 암호화 혹은 복호화 동작을 수행하는 암호칩과, 각 세션에 따른 세션 키, 초기화 벡터, 운용 모드 및 세션의 정상 여부를 나타내는 데이터 등을 저장하는 세션 데이터 메모리와, 상기 호스트 장비로부터의 상기 암복호 처리용 데이터와 상기 암호칩의 암복호 처리 결과 데이터를 임시 저장하는 입출력 버퍼 메모리와, 상기 CPU의 프로그램 및 데이터들을 저장하는 CPU 메모리를 포함하여 이루어진 것을 특징으로 한다.
또한, 본 발명에 따른 본 발명에 따른 고속 세션 변경이 가능한 블록 암호화 장치의 구동 방법은 명령 입력 버퍼에 저장된 호스트 장비의 명령 데이터가 암복호 처리 명령인지를 명령 해석기가 판단하는 단계와, 상기 명령 해석기의 판단 결과 암복호 처리 명령이 아닐 경우 상기 명령 입력 버퍼에 저장된 상기 명령 데이터를 CPU가 읽어와 해석하고 상기 호스트 장비에 응답한 후 명령 해석 결과에 따라 명령을 수행하는 단계와, 상기 명령 해석기의 판단 결과암복호 처리 명령일 경우 상기 명령 입력 버퍼에 저장된 상기 명령 데이터로부터 세션 ID 및 데이터 길이 값을 분리하고 암호칩에게 전달하는 단계와, 상기 세션 ID 및 데이터 길이 값을 전달받은 상기 암호칩은 이를 해당 저장용 레지스터에 저장하고, 저장된 데이터를 해당 처리용 레지스터에 전달하는 단계와, 상기 세션 ID 정보로부터 세션 데이터 메모리를 억세스하여 현재 세션 정보를 읽어와 해당 저장용 레지스터에 저장하고, 저장된 데이터를 해당 처리용 레지스터에 전달한 후 세션의 정상 여부를 상기 명령 해석기로전달하는 단계와, 상기 명령 해석기는 세션이 정상인지를 판단하여 정상이면 상기 암호칩에게 암복호 동작 시작을 명령하는 동시에 응답 데이터를 생성하여 상기 호스트 장비에게 전달하고, 비정상이면 상기 호스트 장비에게 현재 세션이 정상적으로 초기화되지 못한 세션임을 알리는 단계와, 상기 명령 해석기로부터 암복호 동작을 명령받은 상기 암호칩은 설정된 데이터 길이만큼 암복호 처리 동작을 수행하는 단계와, 상기 암복호 처리 동작이 완료된 후 초기 벡터값이 갱신되었는지를 판단하여 상기 초기 벡터값이 갱신되었으면 갱신된 초기 벡터 값을 해당 저장용 레지스터에 저장하는 단계와, 상기 암복호 처리 동작이 완료된 후 상기 암호칩에 다음 명령이 입력되었으면 다음 명령에 대한 정상 여부를 명령 해석기에게 알려준 후 상기 세션이 정상인지를 판단하는 단계로 천이하는 단계와, 상기 암호칩에 다음 명령이 입력되지 않고, 상기 명령 입력 버퍼에 다음 명령이 입력되었으면 상기 명령 데이터를 해석하는 단계로 천이하고, 상기 명령 입력 버퍼에 다음 명령이 입력되지 않았으면 동작을 종료하는 단계를 포함하여 이루어진 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써 본 발명을 상세히 설명한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며, 이 기술 분야에서 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 또한, 도면상에서 동일 부호는 동일 요소를 지칭한다.
도 2(a) 및 도 2(b)는 본 발명에 따른 고속 세션 변경이 가능한 블록 암호화장치의 구성도이다. 본 발명에 따른 암호화 장치의 전반적인 구조는 호스트 정합부(200), CPU(213), 메모리(214), 버퍼 메모리(208) 등의 구성 요소들을 갖는 범용성 있는 암호화 장치의 일반적인 구조를 기본으로 하고, 장치내에 세션 변경에 필요한 데이터를 저장하는 세션 데이터 메모리(212) 및 하드웨어 명령 해석기(207)를 구비하며, 암호칩(211)이 고속 세션 변경에 용이한 구조를 갖는다.
본 발명에 따른 암호화 장치를 구성하는 각 블록의 기능을 설명하면 다음과 같다.
호스트 정합부(200)는 외부 호스트 장비와 버스 스위치 간의 정합 기능을 담당하는 블록으로 PCI(Peripheral Component Interconnect), PCMCIA(Personal Computer Memory Card International Association), CardBus 등과 같은 표준 정합 기능을 수행한다.
로컬 버스 중재부(201)는 호스트 장비로부터 입력되는 명령 및 암복호 처리용 데이터를 암호화 장치의 CPU(213)와 버퍼 메모리(208)로 전달하고 암호화 장치의 버퍼 메모리(208)로부터 전달되는 암복호 처리 결과 데이터와 CPU(213)의 응답 데이터를 호스트 장비로 전달해 주는 기능을 하는데, 그 내부 구성 블럭의 기능은 다음과 같다. 버스 스위치(202)는 호스트 정합부(200)를 통하여 전달되는 호스트의 입력 데이터를 명령 데이터와 처리용 데이터로 구분하여 각각 명령 입력 버퍼(204)와 데이터 입력 버퍼(206)로 전달하고, 응답 출력 버퍼(203)로부터 전달되는 응답 데이터와 데이터 출력 버퍼(205)를 통해 전달되는 암복호 처리 결과 데이터를 호스트 정합부(200)로 전달하는 기능을 수행한다. 명령 입력 버퍼(204)는 명령 데이터를 임시 저장하는 버퍼로서, 이 버퍼의 데이터는 명령 해석기(207)와 CPU(213)로 전달된다. 데이터 입력 버퍼(206)는 암복호 처리용 입력 데이터를 임시 저장하는 버퍼로서, 이 버퍼의 데이터는 입력 버퍼 메모리(209)로 전달된다. 데이터 출력 버퍼(205)는 출력 버퍼 메모리(210)로부터 전달되는 암복호 처리 결과 데이터를 임시 저장하는 버퍼로서, 이 버퍼의 데이터는 버스 스위치(202)를 통하여 호스트 정합부(200)로 전달된다. 응답 출력 버퍼(203)는 CPU(213) 또는 명령 해석기(207)를 통하여 전달되는 응답 데이터를 임시 저장하는 버퍼로서, 이 버퍼의 데이터는 버스 스위치(202)를 통하여 호스트 정합부(200)로 전달된다.
명령 해석기(207)는 명령 입력 버퍼(204)에 저장된 호스트의 명령 데이터를 해석하여 그 명령이 암복호 처리 명령인지 여부를 판단한다. 암복호 처리용 명령이면 CPU(213) 대신 응답 데이터를 생성하여 응답 출력 버퍼(203)로 전달하고, 세션 ID, 암복호 처리용 입력 데이터 길이 등과 같은 암복호 동작을 수행하는데 필요한 변수들을 암호칩(211)에 전달하여 암복호 처리 동작의 시작을 명령한다. 이는 암복호 처리 동작에 대한 명령 해석, 명령에 대한 응답 과정들을 CPU(213)의 중개 없이 하드웨어에 의해 처리하도록 함으로서 세션 변경 동작을 고속으로 수행하기 위함이다. 호스트의 명령이 암복호 처리용 명령이 아니면 CPU(213)가 처리해야 할 명령이므로 명령 데이터를 CPU(213)로 전달한다.
CPU(213)는 호스트 장비로부터 전달되는 명령을 해석하여 이를 수행할 수 있도록 암호화 장치 전반을 제어하고 명령 수행 결과에 해당되는 응답 데이터를 생성하여 호스트 장비로 전달한다. 단, 암복호 처리 명령의 경우 CPU(213)는 응답 데이터를 생성하지 않고 로컬 버스 중재부(201)의 명령 해석기(207)가 응답 데이터를 생성한다.
세션 데이터 메모리(212)는 세션 관련 데이터가 저장되는 메모리로 각 세션에 따른 세션 키, 초기화 벡터, 운용 모드 및 세션의 정상 여부를 나타내는 데이터 등이 저장된다. 각 세션에 따른 세션 관련 데이터의 저장 어드레스 값은 해당 세션의 ID 값에 의해 결정되며 초기화 벡터와 세션 키 데이터를 하나의 메모리에 저장할 수도 있으나 세션 변경 속도를 고속화하기 위해서는 각각의 메모리를 따로 둠이 바람직하다. 암호화 장치가 세션 변경을 위한 동작을 수행할 경우에는 암호칩(211)이 세션 데이터 메모리를 직접 억세스한다. CPU(213)가 세션 초기화 동작을 수행할 경우에는 세션 데이터 메모리(212)로 DPRAM(Dual Port RAM)을 사용하였으면 CPU(213)가 직접 억세스 할 수 있으며, 일반 DRAM(Dynamic RAM)이나 SRAM(Static RAM)을 사용하였으면 CPU(213)가 암호칩(211)을 통하여 억세스 할 수 있다.
버퍼 메모리(208)는 호스트의 암복호 처리용 입력 데이터와 암호칩(211)의 암복호 처리 결과 데이터를 임시 저장하는 메모리 공간으로 암호칩(211)이 데이터 입출력 동작을 동시에 수행할 수 있도록 하기 위해 입력 데이터용 버퍼 메모리(209)와 출력 데이터용 버퍼 메모리(210)를 따로 두고 있다.
CPU 메모리(프로그램/데이터 메모리)(214)는 CPU(213)의 프로그램 및 데이터들이 저장되는 메모리 영역이다.
암호칩(211)은 블록 암호 알고리즘이 구현되는 칩으로 블록 암호화 혹은 복호화 동작을 수행하는데, 도 3에 암호칩의 내부 구조와 그 주변 회로를 나타내었다.
도면 부호 301, 303, 304, 307 및 309는 암호칩의 동작 초기화 레지스터들을 나타낸 것으로 암호칩의 동작에 필요한 초기화 데이터(세션 ID, 데이터 길이, 세션 키, 초기 벡터, 운용모드 등)들을 저장한다. 도시된 바와 같이 동작 초기화 레지스터들은 2개씩 쌍으로 존재한다. 그중 하나는 암호칩 외부 소자들로부터 데이터를 읽어와 저장하는 용도(이하 저장용 레지스터, 301, 307)이며 다른 하나는 저장된 데이터를 암호칩의 처리 동작에 사용하기 위한 용도(이하 처리용 레지스터, 303, 304, 309)이다. 동작 초기화 데이터가 저장용 레지스터에 모두 저장되면 바로 처리용 레지스터로 전달되는데, 이렇게 함으로서 저장용 레지스터는 처리용 레지스터로 데이터를 전달한 후 외부 소자들로부터 다음 암복호 처리 동작을 위한 초기화 데이터를 미리 읽어올 수 있다. 이러한 구조는 현재 세션에 대한 암복호 처리 동작이 완료되지 않았더라도 다음 세션에 대한 초기화 데이터들을 미리 읽어올 수 있게 하여 암호칩 초기화에 소모되는 시간을 줄일 수 있게 한다.
암호칩(211)의 내부 구성 블록의 주요 기능을 설명하면 다음과 같다.
명령 해석기 정합부(300)는 명령 해석기(207)와 정합되는 부분으로 암복호 처리 동작에 필요한 변수(세션 ID, 데이터 길이 값 등)들과 동작 시작 명령을 입력받아 처리하는 부분이다. 암복호 처리 동작을 명령하는 과정에서 CPU의 중개를 받지 않도록 함으로서 세션 변경으로 인한 지연 시간을 줄일 수 있게 한다. 세션 데이터 메모리 정합부(306)는 명령 해석기 정합부(300)로 입력된 세션 ID 값을 바탕으로 외부 세션 데이터 메모리(212)를 직접 억세스하여 세션 초기화에 필요한 데이터(세션 키, 초기화 벡터, 운용모드 데이터 등)를 읽어온다. CPU가 세션 초기화 과정에서 세션 데이터 메모리를 직접 억세스하지 않고 암호칩(211)을 통하여 억세스 할 경우(세션 데이터 메모리가 DPRAM이 아닐 경우)에는 CPU로부터 전달되는 데이터를 세션 데이터 메모리로 전달할 수 있어야 하며, CPU가 세션 데이터 메모리를 읽고자 할 경우에도 세션 데이터 메모리의 데이터를 CPU로 전달 할 수 있어야 한다. 이 정합 기능 역시 암호칩의 세션 초기화 동작을 CPU의 중개 없이 수행할 수 있도록 함으로서 세션 변경으로 인한 지연 시간을 줄일 수 있게 한다. 입력 버퍼 메모리 정합부(302) 및 출력 버퍼 메모리 정합부(305)는 암복호 처리 동작의 데이터 입/출력을 위한 정합 기능으로 데이터의 입출력 동작을 CPU의 중개 없이 버퍼 메모리(208)와 직접 수행하도록 하여 데이터의 입출력 동작을 고속화하도록 한다. 또한 데이터 입력 동작과 출력 동작이 동시에 이루어 질 수 있도록 입력 버퍼 메모리 정합부(302)와 출력 버퍼 메모리 정합부(305)를 별도로 구성한다. 블록 암복호 처리부(308)는 블록 암호 알고리즘이 구현되는 블록으로 내부에 운용 모드, 세션 키, 초기화 벡터 등의 데이터를 위한 처리용 레지스터(309)를 두고 있다.
본 발명에 따른 고속 세션 변경이 가능한 블록 암호화 장치의 기본적인 동작 순서는 호스트 장비의 명령 데이터를 입력 받아 해석하고 명령에 따른 응답 데이터를 생성하여 호스트 장비에 응답하며 명령에 따른 처리 동작을 수행하는 순서이다.
호스트 장비로부터 암호화 장치로 전달되는 입력 데이터는 도 4에 도시된 바와 같이 크게 명령 데이터 영역과 처리용 데이터 영역으로 구분된다. 이중 처리용 데이터 영역은 암복호 처리용 입력 데이터가 전달되는 영역으로 CPU의 중개 없이버퍼 메모리(208)를 통해 암호칩(211)으로 바로 전달된다. 명령 데이터 영역은 명령 구분을 위한 명령 ID 정보와 현재 명령의 세션 ID 정보 및 명령 수행에 필요한 각종 변수 데이터를 포함한다. 명령 데이터는 암호화 장치의 명령 입력 버퍼(204) 및 명령 해석기(207)를 통하여 CPU로 전달된다.
암호화 장치가 호스트 장비에게 전달하는 출력 데이터는 도 5에 도시된 바와 같이 크게 응답 데이터 영역과 처리 결과 데이터 영역으로 구분된다. 처리 결과 데이터 영역에는 암호칩(211)에 의해 암복호를 수행한 결과 데이터가 포함되고, 응답 데이터 영역에는 현재 암호화 장치가 수행하고 있는 명령의 ID 정보와 세션 ID 정보, 그리고 명령에 대한 리턴 값 등이 포함된다. 이중 리턴 값에는 암호화 장치가 명령을 정상적으로 수신했는지 여부와 암호화 장치가 현재 수신한 명령을 수행할 수 있는지 여부를 나타내는 정보가 포함된다.
이러한 기본적인 동작 순서에서 제안한 암호화 장치가 세션 변경 지연 시간을 최소화하도록 동작하기 위해서는 몇가지 운용 절차를 따라야 한다. 도 6(a) 및 도 6(b)는 이러한 운용 절차를 설명하기 위한 암호화 장치의 동작 흐름도이다.
먼저 외부 호스트 장비는 암호화 장치에게 암호화 및 복호화 동작을 명령하기 전에 암호화 장치에게 앞으로 사용하게 될 여러 세션들에 대한 초기화 동작을 명령해야 한다. 이러한 여러 세션들에 대한 초기화 과정이 완료된 후에야 호스트 장비는 초기화된 세션에 대한 암복호 동작을 수행하도록 명령할 수 있다. 이러한 세션 초기화 동작은 시스템의 초기화 과정 또는 암호화 장치를 사용하지 않는 적절한 유휴 시간에 수행됨이 바람직하며, 호스트 장비가 암호화 장치에게 세션 초기화동작을 명령하고 암호화 장치가 이를 실행함으로서 이루어진다. 이러한 세션 초기화 과정을 도 6(a)의 흐름도를 참조하여 설명하면 다음과 같다.
외부 호스트 장비는 암호화 장치에게 세션 초기화 동작을 명령한다(단계 601). 이때 외부 호스트 장비는 세션 ID와 ID별로 세션 초기화에 필요한 정보들을 암호화 장치에게 전달해 주어야 하며, 세션 ID별로 초기화된 상태를 구분하기 위한 최소의 정보를 보관해야 한다. 호스트 장비의 명령 데이터는 암호화 장치의 호스트 정합부(200) 및 버스 스위치(202)를 통하여 명령 입력 버퍼(204)에 저장된다(단계 602). 저장된 명령 데이터가 명령 해석기(207)를 통하여 CPU(213) 또는 암호칩(211)으로 전달되면, 명령 입력 버퍼(204)는 다음의 명령 데이터를 입력 받을 수 있게 된다. 명령 해석기(207)는 명령 입력 버퍼(204)에 저장된 호스트의 명령을 해석하여(단계 603) 현재 명령이 암복호 처리용 명령인지 여부를 판단한다(단계 604). 암복호 처리용 명령이 아니면 CPU(213)에게 명령 입력 버퍼(204)에 유효한 명령이 저장되어 있음을 알려(단계 605) CPU(213)가 명령 데이터를 읽어 갈 수 있도록 한다. CPU(213)는 단계 605에 의해 명령 입력 버퍼(204)에 유효한 명령 데이터가 저장되어 있음을 알고 호스트의 명령 데이터를 읽어 온다(단계 606). 그리고 읽어온 명령 데이터를 해석하고 응답 데이터를 생성하며, 생성된 응답 데이터를 응답 출력 버퍼(203)와 버스 스위치(202) 및 호스트 정합부(200)를 통하여 호스트 장비에게 전달함으로서 호스트 장비에게 응답한다(단계 607). CPU(213)는 명령 해석 및 호스트에게 응답한 후 명령 해석 결과에 맞게 암호칩(211)을 포함한 암호화 장치 내의 여러 하드웨어를 제어하여 호스트 장비의 명령을 수행한다(단계 609).CPU(213)는 수행하고자 하는 명령이 세션 초기화 명령이면 운용 모드, 세션 키 및 초기 벡터 등의 세션 초기화에 필요한 데이터를 세션 데이터 메모리(212)에 저장한다. 이때 CPU(213)는 초기화하고 있는 세션 데이터들의 유효 여부를 나타내는 상태 값을 같이 저장해야 하며, 유효한 세션의 리스트 정보를 보관하고 있어야 한다. 이것은 CPU(213)가 추후 사용되지 않는 세션 데이터들을 무효화시킬 수 있도록 하고 새로운 세션에 대한 초기화 데이터를 추가할 경우 무효화된 세션 영역을 사용할 수 있도록 함으로서 메모리를 효율적으로 사용하기 위함이다. 동시에 세션 유효 여부를 암호칩(211)이 알게 하여 칩이 불필요한 동작을 수행하지 않도록 하고 동시에 이를 암호칩(211)을 통하여 명령 해석기(207)에 전달함으로서 명령 해석기(207)가 적절한 응답 데이터를 생성할 수 있도록 하기 위함이다. 세션 데이터 메모리에 저장되는 세션 초기화 데이터들의 어드레스 값은 해당 세션의 ID 값에 의해 결정되며 이러한 세션 초기화에 필요한 데이터들은 호스트 장비로부터 전달되는 정보들을 바탕으로 암호화 장치 내에서 생성할 수도 있고 외부 호스트 장비로부터 직접 전달받을 수도 있다.
상술한 바와 같이 암호화 장치의 세션 초기화 과정이 완료되면 호스트 장비는 암호화 장치에게 암복호 동작을 명령할 수 있게 된다. 이러한 호스트 장비의 암호화 또는 복호화 명령의 수행 과정을 도 6(b)의 흐름도를 참조하여 설명하면 다음과 같다.
외부 호스트 장비가 암호화 장치에게 암복호 동작을 명령하고 이러한 명령 데이터를 명령 해석기(207)가 해석하여 암복호 명령인지 여부를 판단하는 과정은위의 세션 초기화 과정에서 언급한 바와 동일하다(단계 601 내지 단계 604). 외부 호스트 장비가 암복호 동작을 명령할 때 전달하는 명령 데이터의 구조 역시 도 4와 동일하며, 이때 명령 데이터의 명령 변수 영역에는 기본적으로 암복호 처리 동작의 입력 데이터 길이 값이 포함되어 있어야 한다.
명령 해석기(207)는 현재 명령이 암복호 처리 명령이면 명령 입력 버퍼(204)에 저장된 명령 데이터로부터 세션 ID 및 데이터 길이 값을 분리하고 암호칩(211)에게 유효한 데이터가 있음을 알려 암호칩(211)이 데이터를 읽어 갈 수 있도록 한다(단계 610). 이때 필요한 경우에는 CPU(213)에게 명령 입력 버퍼(204)에 유효한 명령이 있음을 알려 CPU(213)가 명령 데이터를 읽어 가도록 함으로서 CPU(213)가 암호화 장치의 현재 동작 상태를 알 수 있도록 할 수도 있다. 암호칩(211)의 명령 해석기 정합부(300)는 명령 해석기(207)로부터 전달받은 세션 ID 및 데이터 길이 값을 내부 해당 저장용 레지스터(301)에 저장하고 저장된 데이터를 다시 해당 처리용 레지스터(303, 304)로 전달한다(단계 611). 이렇게 세션 ID 및 데이터 길이 값이 해당 처리용 레지스터(303, 304)에 저장되면 암호칩의 명령 해석기 정합부(300)는 명령 해석기(207)로부터 다음 명령에 대한 세션 ID 및 데이터 길이 값을 읽어와 해당 저장용 레지스터(303, 304)에 저장할 수 있게 된다. 암호칩(211)의 세션 데이터 메모리 정합부(306)는 읽어온 세션 ID 정보로부터 세션 데이터 메모리(212)를 억세스 하여 현재 세션의 세션 키, 초기 벡터 및 세션의 정상 여부를 나타내는 데이터 등을 읽어와 해당 저장용 레지스터(307)에 저장하고, 저장된 데이터를 다시 해당 처리용 레지스터(309)로 전달한다(단계 612). 이때 세션 ID에 따른 메모리의어드레스 값은 초기화 과정에서 CPU(213)가 억세스 할 때의 그것과 동일해야 한다. 암호칩(211)의 세션 데이터 메모리 정합부(306)는 읽어온 데이터들 중 세션의 정상 여부를 나타내는 정보를 명령 해석기(207)로 전달해 준다(단계 613). 명령 해석기(207)는 세션이 정상인지를 판단하고(단계 614) 정상이면 암호칩(211)에게 동작 시작을 명령하고 동시에 응답 데이터를 생성하여 응답 출력 버퍼(203)를 통해 호스트 장비에게 전달한다(단계 615). 만약 현재 세션이 비정상이면 명령 해석기(207)는 호스트 장비에게 세션 오류로 응답하여(단계 622), 호스트 장비에게 현재 세션이 정상적으로 초기화 되지 못한 세션임을 알린다. 명령 해석기(207)는 현재 세션의 정상 여부를 확인하였으면 암호칩(211)이 다음 암복호 처리 명령을 입력 받을 수 있는 상태임을 알고 명령 입력 버퍼(204)에 호스트로부터 전달된 다음 암복호 처리 명령이 있으면 다음 명령에 대한 세션 ID와 데이터 길이 정보를 암호칩(211)으로 전달한다. 암호칩(211)은 명령 해석기(207)로부터 동작 시작을 명령받았으면 설정된 데이터 길이만큼 암복호 처리 동작을 수행한다(단계 616). 즉, 설정된 데이터 길이만큼 입력 버퍼 메모리(209)로부터 데이터를 입력 받아 암복호 처리 동작을 수행하여 그 결과 데이터를 출력 버퍼 메모리(210)로 전달한다. 상술한 바와 같이 암호칩(211)은 현재 명령에 대한 암복호 처리 동작을 수행하고 있는 중에도 다음 암복호 명령이 있으면 다음 명령에 대한 세션 초기화 데이터들을 미리 읽어와 해당 저장용 레지스터(307)에 미리 저장할 수 있다. 암호칩(211)의 블록 암복호 처리부(308)는 암복호 처리 동작이 완료되어(단계 617) 초기 벡터 값이 갱신되었는지 여부를 판단하고(단계 618), 갱신되었으면 갱신된 초기 벡터 값을 세션 데이터 메모리 정합부(306)의 해당 저장용 레지스터(307의 초기 벡터(출력))에 저장한다(단계 619). 이렇게 저장된 초기 벡터 데이터는 적절한 유휴 시간 동안에 세션 데이터 메모리(212)로 전달되는데 이를 위하여 세션 데이터 메모리 정합부(306)는 갱신된 초기 벡터에 대한 세션 ID 데이터를 보관하고 있어야 한다. 현재 명령에 대한 처리 동작이 완료된 후 다음 명령이 입력되어 다음 명령에 대한 세션 초기화 데이터들이 해당 저장용 레지스터에 저장되었는지를 확인하고, 다음 명령이 입력되었으면 다음 명령에 대한 정상 여부를 명령 해석기(207)에게 알려준다(단계 613). 이후 단계 613 이후의 절차에 의해 다음 명령에 대한 암복호 처리 동작을 수행하게 된다. 암호칩(211)에 다음 명령이 입력되지 않았으면 명령 입력 버퍼(204)에 다음 명령이 입력되었는지를 확인하고(621) 다음 명령이 입력되었으면 단계 603 이후의 동작을 수행하며, 명령 입력 버퍼(204)에도 다음 명령 데이터가 없으면 동작을 종료하고 호스트 장비의 다음 명령을 기다린다.
상기와 같이 본 발명에 따른 암호화 장치는 세션 변경으로 인한 지연 시간을 최소화할 수 있는 구조로 설계되어 있다. 즉, 본 발명에 따른 암호화 장치는 기존의 장치와는 달리 세션 변경을 위한 일련의 동작들을 CPU의 개입 없이 장치 내의 하드웨어에 의해 고속으로 수행하도록 하고 연속되는 암복호 처리 명령에 대한 칩 초기화 동작을 이전 명령이 수행되고 있는 중에도 미리 수행할 수 있도록 하여 세션 변경으로 인한 지연 시간을 최소화 할 수 있다.
상술한 바와 같은 본 발명에 따른 암호화 장치가 호스트 장비에 의한 세션초기화 동작을 완료한 후 연속되는 암복호 처리 명령을 수행하게 될 경우, 암호칩의 세션 변경에 소모되는 시간은 암호칩의 동작 클럭을 기준으로 한두 클럭 내외이다. 이는 암호칩이 세션 초기화 데이터를 CPU의 개입 없이 고속으로 읽어올 수 있고 현재 명령에 대한 처리 동작이 수행되고 있는 중에도 다음 명령에 필요한 초기화 데이터를 미리 읽어올 수 있기 때문에 가능한 것이다.
일반적인 범용 암호화 장치의 경우 CPU가 세션 초기화 데이터를 관리해야 하므로 세션의 개수에 따라 CPU 메모리의 크기도 증가하게 되며 CPU의 메모리 관리에 대한 부담도 증가하게 된다. 이러한 일반적인 범용 암호화 장치와는 달리 본 발명에 따른 암호화 장치는 세션 초기화 데이터를 저장하는 전용 메모리를 따로 두고 있어 장치내 CPU의 메모리 크기와 메모리 관리를 위한 부담을 줄일 수 있다.
이와 같이 본 발명에 따른 암호화 장치는 세션 변경으로 인한 지연 시간을 최소화 할 수 있는 구조를 취하고 있어 고속 다중 채널형 통신 시스템을 위한 암호 장비에 유용하게 적용될 수 있다.

Claims (4)

  1. 호스트 장비와의 표준 정합 기능을 수행하는 호스트 정합부;
    상기 호스트 장비로부터 입력되는 명령 데이터 및 암복호 처리용 데이터를 전달하고, 이에 따른 암복호 처리 결과 데이터 및 응답 데이터를 상기 호스트 장비로 전달하는 로컬 버스 중재부;
    상기 호스트 장비로부터의 상기 명령 데이터를 해석하여 암복호 처리용 명령이면 응답 데이터를 생성하여 상기 정합부에 전달하고, 암복호 처리용 명령이 아니면 상기 명령 데이터 및 암복호에 필요한 변수들을 전달하여 암복호 처리 동작의 시작을 명령하는 명령 해석기;
    상기 호스트 장비로부터 상기 명령 해석기를 통해 전달되는 암복호 처리 명령 이외의 명령에 따른 동작을 수행할 수 있도록 제어하고 명령 수행 결과에 해당되는 응답 데이터를 생성하는 CPU;
    상기 명령 해석기로부터 상기 암복호에 필요한 변수들을 전달받아 블록 암호 알고리즘을 구현하여 블록 암호화 혹은 복호화 동작을 수행하는 암호칩;
    각 세션에 따른 세션 키, 초기화 벡터, 운용 모드 및 세션의 정상 여부를 나타내는 데이터 등을 저장하는 세션 데이터 메모리;
    상기 호스트 장비로부터의 상기 암복호 처리용 데이터와 상기 암호칩의 암복호 처리 결과 데이터를 임시 저장하는 입출력 버퍼 메모리; 및
    상기 CPU의 프로그램 및 데이터들을 저장하는 CPU 메모리를 포함하여 이루어진 것을 특징으로 하는 고속 세션 변경이 가능한 블록 암호화 장치.
  2. 제 1 항에 있어서, 상기 로컬 버스 중재부는 상기 호스트 정합부를 통해 입력되는 입력 데이터를 명령 데이터와 처리용 데이터로 구분하여 전달하고, 상기 응답 데이터와 암복호 처리 결과 데이터를 상기 호스트 정합부로 전달하는 버스 스위치;
    상기 명령 데이터를 저장하는 명령 입력 버퍼;
    상기 암복호 처리용 데이터를 저장하는 데이터 입력 버퍼;
    상기 암복호 처리 결과 데이터를 저장하는 데이터 출력 버퍼; 및
    상기 응답 데이터를 저장하는 응답 출력 버퍼를 포함하여 이루어진 것을 특징으로 하는 고속 세션 변경이 가능한 블록 암호화 장치.
  3. 제 1 항에 있어서, 상기 암호칩은 상기 명령 해석기로부터 암복호 처리에 필요한 세션 ID, 데이터 길이 값등의 변수들과 동작 시작 명령을 입력받아 처리하는 명령 해석기 정합부;
    상기 명령 해석기 정합부로부터 입력된 세션 ID 값을 바탕으로 상기 세션 데이터 메모리를 직접 억세스하여 세션 초기화에 필요한 세션 키, 초기 벡터, 운용 모드 데이터 등을 읽어오는 세션 데이터 메모리 정합부;
    상기 입력 버퍼 메모리로부터 암복호 처리용 데이터를 입력하는 입력 버퍼 메모리 정합부;
    상기 출력 버퍼 메모리로 암복호 처리 결과 데이터를 출력하는 출력 버퍼 메모리 정합부;
    상기 입력 버퍼 메모리 정합부를 통해 입력된 암복호 처리용 데이터에 따라 블록 암호 알고리즘을 구현하고, 암복호 처리 결과 데이터를 상기 출력 버퍼 메모리 정합부로 출력하는 블록 암복호 처리부; 및
    상기 세션 ID, 운용 모드, 세션 키, 초기 벡터 등의 데이터를 저장하며, 한쌍으로 구성된 다수의 레지스터를 포함하여 이루어진 것을 특징으로 하는 고속 세션 변경이 가능한 블록 암호화 장치.
  4. (a) 명령 입력 버퍼에 저장된 호스트 장비의 명령 데이터가 암복호 처리 명령인지를 명령 해석기가 판단하는 단계;
    (b) 상기 (a) 단계의 판단 결과 암복호 처리 명령이 아닐 경우 상기 명령 입력 버퍼에 저장된 상기 명령 데이터를 CPU가 읽어와 해석하고 상기 호스트 장비에 응답한 후 명령 해석 결과에 따라 명령을 수행하는 단계;
    (c) 상기 (a) 단계의 판단 결과 암복호 처리 명령일 경우 상기 명령 입력 버퍼에 저장된 상기 명령 데이터로부터 세션 ID 및 데이터 길이 값을 분리하고 암호칩에게 전달하는 단계;
    (d) 상기 세션 ID 및 데이터 길이 값을 전달받은 상기 암호칩은 이를 해당 저장용 레지스터에 저장하고, 저장된 데이터를 해당 처리용 레지스터에 전달하는 단계;
    (e) 상기 세션 ID 정보로부터 세션 데이터 메모리를 억세스하여 현재 세션 정보를 읽어와 해당 저장용 레지스터에 저장하고, 저장된 데이터를 해당 처리용 레지스터에 전달한 후 세션의 정상 여부를 상기 명령 해석기로 전달하는 단계;
    (f) 상기 명령 해석기는 세션이 정상인지를 판단하여 정상이면 상기 암호칩에게 암복호 동작 시작을 명령하는 동시에 응답 데이터를 생성하여 상기 호스트 장비에게 전달하고, 비정상이면 상기 호스트 장비에게 현재 세션이 정상적으로 초기화되지 못한 세션임을 알리는 단계;
    (g) 상기 명령 해석기로부터 암복호 동작을 명령받은 상기 암호칩은 설정된 데이터 길이만큼 암복호 처리 동작을 수행하는 단계;
    (h) 상기 암복호 처리 동작이 완료된 후 초기 벡터값이 갱신되었는지를 판단하여 상기 초기 벡터값이 갱신되었으면 갱신된 초기 벡터 값을 해당 저장용 레지스터에 저장하는 단계;
    (i) 상기 암복호 처리 동작이 완료된 후 상기 암호칩에 다음 명령이 입력되었으면 다음 명령에 대한 정상 여부를 명령 해석기에게 알려준 후 상기 (f) 단계로 천이하는 단계;
    (j) 상기 암호칩에 다음 명령이 입력되지 않고, 상기 명령 입력 버퍼에 다음 명령이 입력되었으면 상기 (a) 단계로 천이하고, 상기 명령 입력 버퍼에 다음 명령이 입력되지 않았으면 동작을 종료하는 단계를 포함하여 이루어진 것을 특징으로 하는 고속 세션 변경이 가능한 고속 암호화 장치의 구동 방법.
KR10-2002-0021504A 2002-04-19 2002-04-19 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법 KR100420555B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0021504A KR100420555B1 (ko) 2002-04-19 2002-04-19 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0021504A KR100420555B1 (ko) 2002-04-19 2002-04-19 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법

Publications (2)

Publication Number Publication Date
KR20030083100A KR20030083100A (ko) 2003-10-30
KR100420555B1 true KR100420555B1 (ko) 2004-03-02

Family

ID=32379670

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0021504A KR100420555B1 (ko) 2002-04-19 2002-04-19 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법

Country Status (1)

Country Link
KR (1) KR100420555B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100930591B1 (ko) * 2007-12-10 2009-12-09 한국전자통신연구원 고속 세션 변경이 가능한 암호화 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100528890B1 (ko) * 2002-06-26 2005-11-22 한국전자통신연구원 다양한 인터페이스를 갖는 고속 블럭 암호 장치 및 그구동 방법
KR20090059602A (ko) 2007-12-07 2009-06-11 한국전자통신연구원 세션 메모리 버스를 구비한 암호화 장치
KR101496975B1 (ko) 2008-05-28 2015-03-02 삼성전자주식회사 고체 상태 디스크 및 이에 대한 입출력방법
CN108446137A (zh) * 2018-02-26 2018-08-24 国民技术股份有限公司 通道寄存器初始化方法、装置及dma设备、终端

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0575599A (ja) * 1991-09-18 1993-03-26 Matsushita Electric Ind Co Ltd 暗証番号照合装置
WO1998019420A1 (en) * 1996-10-25 1998-05-07 Intel Corporation A circuit and method for ensuring interconnect security within a multi-chip integrated circuit package
JPH10271107A (ja) * 1997-03-21 1998-10-09 Nippon Telegr & Teleph Corp <Ntt> データ暗号化方法及び装置
KR20010048160A (ko) * 1999-11-25 2001-06-15 한승조 Pc 기반의 유.에스.비. 보안 모듈과 암호칩을 사용한정보 보호 장치
KR20030043447A (ko) * 2001-11-28 2003-06-02 한국전자통신연구원 고속 하드웨어 암호 처리 시스템 및 그 방법
KR20030043451A (ko) * 2001-11-28 2003-06-02 한국전자통신연구원 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0575599A (ja) * 1991-09-18 1993-03-26 Matsushita Electric Ind Co Ltd 暗証番号照合装置
WO1998019420A1 (en) * 1996-10-25 1998-05-07 Intel Corporation A circuit and method for ensuring interconnect security within a multi-chip integrated circuit package
JPH10271107A (ja) * 1997-03-21 1998-10-09 Nippon Telegr & Teleph Corp <Ntt> データ暗号化方法及び装置
KR20010048160A (ko) * 1999-11-25 2001-06-15 한승조 Pc 기반의 유.에스.비. 보안 모듈과 암호칩을 사용한정보 보호 장치
KR20030043447A (ko) * 2001-11-28 2003-06-02 한국전자통신연구원 고속 하드웨어 암호 처리 시스템 및 그 방법
KR20030043451A (ko) * 2001-11-28 2003-06-02 한국전자통신연구원 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100930591B1 (ko) * 2007-12-10 2009-12-09 한국전자통신연구원 고속 세션 변경이 가능한 암호화 장치

Also Published As

Publication number Publication date
KR20030083100A (ko) 2003-10-30

Similar Documents

Publication Publication Date Title
EP0876026B1 (en) Programmable crypto processing system and method
US5961626A (en) Method and processing interface for transferring data between host systems and a packetized processing system
JP3789454B2 (ja) 暗号コプロセッサを有するストリームプロセッサ
EP1370971B1 (en) Processing modules for computer architecture for broadband networks
KR20150143708A (ko) 스토리지 디바이스 보조 인라인 암호화 및 암호해독
US11888827B2 (en) Secure data transfer apparatus, system, and method
CN112329038B (zh) 一种基于usb接口的数据加密控制系统及芯片
JP2006338538A (ja) ストリームプロセッサ
US11238166B2 (en) Data processing device and operating method therefor
KR100420555B1 (ko) 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법
CN117033275B (zh) 加速卡间的dma方法、装置、加速卡、加速平台及介质
KR101126596B1 (ko) 단일 및 다중 aes 동작을 지원하기 위한 듀얼 모드 aes 장치 및 방법
CN110929298A (zh) 多接口lrm加密板卡
CN105468983A (zh) 基于sata接口的数据传输方法与装置
CN113127896B (zh) 基于独立加密芯片的数据处理方法及设备
EP4134845A1 (en) Memory access method, system-on-chip, and electronic device
JP2001051871A (ja) リモートデバッグ装置
JP2023542936A (ja) チャネル暗号化区別のためのメタデータ調整(metadata tweak)
CN112257092A (zh) 数据传输控制方法、密钥管理方法、配置方法及相关装置
Yao et al. A dynamic reconfigurable design of multiple cryptographic algorithms based on FPGA
CN107562686B (zh) 信息处理方法和装置
KR102220774B1 (ko) 단말의 암호화 처리 시스템 및 그 방법
JP2002297030A (ja) 暗号処理装置及び暗号処理方法並びにプログラム
US7444642B2 (en) Method for indicating completion status of asynchronous events
CN113127901B (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: 20130111

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20141224

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20151224

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 17