KR20100076078A - 패킷 암호 알고리즘에 기반하는 엔크립션 처리 디바이스 - Google Patents
패킷 암호 알고리즘에 기반하는 엔크립션 처리 디바이스 Download PDFInfo
- Publication number
- KR20100076078A KR20100076078A KR1020107013607A KR20107013607A KR20100076078A KR 20100076078 A KR20100076078 A KR 20100076078A KR 1020107013607 A KR1020107013607 A KR 1020107013607A KR 20107013607 A KR20107013607 A KR 20107013607A KR 20100076078 A KR20100076078 A KR 20100076078A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- key
- component
- data conversion
- encryption
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
패킷 암호 알고리즘에 기초하는 엔크립션 처리 디바이스는 키 확장 유닛 및 엔크립션 유닛을 포함한다. 상기 키 확장 유닛은 키 확장 유닛의 데이터 등록 컴포넌트 및 키 확장 유닛의 적어도 하나의 데이터 변환 컴포넌트를 포함한다. 상기 엔크립션 유닛은 엔크립션 유닛의 데이터 등록 컴포넌트 및 엔크립션 유닛의 적어도 하나의 데이터 변환 컴포넌트를 포함하고, 상기 엔크립션 유닛의 데이터 변환 컴포넌트의 수는 상기 키 확장 유닛의 데이터 변환 컴포넌트의 수와 같으며, 상기 엔크립션 유닛의 데이터 변환 컴포넌트는 상기 키 확장 유닛의 데이터 변환 컴포넌트와 일대일(one-to-one)로 연결된다. 종래의 패킷 암호 알고리즘에 기초하는 엔크립션 처리 디바이스의 엔크립션 효율이 낮고 비용이 높은 기술적인 문제들을 해결하기 위해, 키 확장 유닛의 데이터 변환 컴포넌트 각각의 서브-키 출력이 엔크립션 유닛의 데이터 변환 컴포넌트들중 해당하는 데이터 변환 컴포넌트의 서브-키 입력에 연결된다. 본 발명의 장점은 종래 기술의 높은 효율성을 유지한다는 전제하에서 자원 소모를 줄이고 디바이스의 달성 비용을 줄인다는 것이다.
Description
관련 출원에 대한 참조
본 출원은, 2007년 11월 19일 출원되었으며 그 명칭이 "BLOCK CIPHER ALGORITHM BASED ENCRYPTION PROCESSING DEVICE"인 중국 특허 출원 번호 200710019110.2의 이득을 주장하며, 이는 그 전체가 본원의 참조로서 인용된다.
본 발명은 정보 보안 분야에 관한 것으로서, 특히 블록 암호 알고리즘(block cipher algorithm)에 기초하는 엔크립션(encryption) 처리 방법에 관한 것이다.
일반적으로, 블록 암호 알고리즘은 데이터 엔크립션 표준(Data Encryption Standard, DES) 알고리즘, 트리플(Triple) DES (3DES) 알고리즘, 어드밴스드 엔크립션 표준(Advanced Encryption Standard, AES) 알고리즘, 인터내셔널 데이터 엔크립션 알고리즘(International Data Encryption Algorithmic, IDEA) 및 중국 암호 관리국(State Secret Code Regulatory Commission Office)에 의해 발표된 SMS4 알고리즘을 포함한다. 블록 암호 알고리즘을 구현하기 위한 기본적인 구성요소들은 키 확장 유닛(key expansion unit), 엔크립션 유닛(encryption unit) 및 서브-키 어레이 저장 유닛(sub-key arrary storage unit)을 포함한다. 특히, 키 확장 유닛 및 엔크립션 유닛의 내부 구조들은, 이들이 주로 데이터 등록 컴포넌트(data register component) 및 데이터 변환 컴포넌트(data conversion component)로 구성된다는 점에서 유사하다.
일반적으로, 데이터 등록 컴포넌트는 데이터를 등록하기 위해 범용의 플립 플롭(general flip flop)으로 구현된다. 클럭 주기 동안, 이러한 컴포넌트 내에 등록된 데이터는 변하지 않는다. 범용 플립 플롭은 데이터 등록 디바이스인데, 여기에서는 클럭 주기의 상승 에지 또는 하강 에지에서 데이터 입력의 데이터가 플립 플롭의 출력에 전송되고, 다른 순간들에서, 플립 플롭의 출력에서의 데이터는 변경되지 않는다.
상기 데이터 변환 컴포넌트는 블록 암호 알고리즘에서 요구되는 대로 데이터를 처리하는 컴포넌트로서, 예를 들어 국유(national)의 SMS4 암호 알고리즘에서 요구되는 대로 데이터를 처리하는 컴포넌트이다. 이러한 데이터 변환 컴포넌트에 의해 수행되는 동작은 암호 알고리즘에서 특정되는 단지 하나의 통합(integration) 및 교체(permutation) 만을 포함한다.
상기 서브-키 어레이 저장 유닛은 서브-키들의 어레이를 저장하도록 되어 있다. 전형적으로, 기존의 기술에 있어서, 이러한 서브-키들의 어레이는 엔크립션 및 디크립션(decryption) 처리 이전에 미리 준비(prepare)되고 키 확장 유닛에 의해 발생되는 데이터의 어레이이다. SMS4 암호 알고리즘에서, 서브-키 어레이 저장 유닛의 데이터는 어드레스들의 오름순/내림순으로 배열되며, rk0, rk1 ... rk31로서 명명될 수 있다.
SMS4 암호 알고리즘에 따라 데이터 엔크립션 및 디크립션 처리를 하는 기존의 프로세스는 2개의 독립적인 단계(phase)들, 즉 키 확장 단계 및 데이터 엔크립션 단계를 포함한다. 도 1에 나타낸 바와 같이, 먼저 키 확장 유닛은 키를 서브-키 어레이로 확장하고, 이를 서브-키 어레이 저장 유닛 내에 순차적으로 저장한다. 그런 다음, 엔크립션 유닛은 키가 확장된 서브-키들의 어레이를 이용하여 데이터를 엔크립트한다.
A) 키 확장 단계
1) 키 확장 유닛의 데이터 등록 컴포넌트에 외부 키(external key)가 입력된다.
예비 처리를 받은 외부 키는 등록을 위해 키 확장 유닛의 데이터 등록 컴포넌트(100)에 입력된다.
2) 데이터 변환
키 확장 유닛의 데이터 등록 컴포넌트(100) 내의 등록된 데이터는 변환을 위해 키 확장 유닛의 데이터 변환 컴포넌트(101)에 입력되며, 결과적으로 서브-키들이 얻어진다.
3) 데이터의 반복(iteration) 처리
이전의 변환 처리로부터 비롯되는 데이터가 키 확장 유닛의 데이터 변환 컴포넌트(100)에 저장됨과 동시에, 결과적인 서브-키들이 서브-키 어레이 저장 유닛(2)의 첫 번째 라인에 저장되며, 그런 다음, 키 확장 유닛의 데이터 등록 컴포넌트(100) 내의 등록된 데이터가 데이터 변환을 위해 키 확장 유닛의 데이터 변환 컴포넌트(101)에 다시 입력되고, 결과적인 서브-키들은 서브-키 어레이 저장 유닛(2)의 다음 라인에 저장된다. 이러한 데이터 변환 과정은 32번 반복되며, 이에 따라 32×32비트=1024비트의 서브-키 어레이가 얻어진다.
B) 데이터 엔크립션 단계
1) 엔크립션 유닛의 데이터 등록 컴포넌트에 외부 데이터가 입력된다.
외부 데이터는 등록을 위해 엔크립션 유닛의 데이터 등록 컴포넌트(300)에 입력된다.
2) 데이터 변환
엔크립션 유닛의 데이터 등록 컴포넌트(300) 내의 등록된 데이터는 엔크립션 유닛의 데이터 변환 컴포넌트(301)에 입력되고, 서브-키 어레이 저장 유닛(20) 내에 저장된 서브-키들의 어레이의 첫 번째 라인에 해당하는 데이터는 변환을 위해 엔크립션 유닛의 데이터 변환 컴포넌트(301)에 입력된다.
3) 데이터의 반복 처리
이전의 데이터 변환 처리로부터 비롯되는 데이터가 엔크립션 유닛의 데이터 등록 컴포넌트(300)에 저장된 다음, 엔크립션 유닛의 데이터 등록 컴포넌트(300) 내의 등록된 데이터는 변환을 위해 엔크립션 유닛의 데이터 변환 컴포넌트(301)에 다시 입력되며, 또한 서브-키 어레이 저장 유닛(2)의 서브-키들의 다음 라인이 데이터의 변환을 위해 엔크립션 유닛의 데이터 변환 컴포넌트(301)에 입력된다. 이러한 과정은 32번 반복되며, 결과적으로 데이터가 얻어진다.
상기의 엔크립션 알고리즘에서는, 한 세트의 데이터를 처리하는 데에 32번의 클럭 주기가 요구되고, 효율이 낮다. 이러한 문제를 해결하기 위해, 데이터 변환 컴포넌트들의 수를 증가시킴으로써 처리 효율을 개선할 수 있다. 예를 들어, 도 2에 나타낸 바와 같이, 128 비트의 데이터의 세트가 16번의 클럭 주기로 처리될 수 있다.
기존의 기술에 있어서, 서브-키 어레이 저장 컴포넌트는 필수 구성요소이다. 만일 집적 회로에서 레지스터(register)를 이용하여 1024 비트의 서브-키 어레이 저장 컴포넌트가 구현된다면, 약 10,000개의 게이트들의 논리 자원(logical resource)들이 소모되는데(도 1의 해결책에서는, 약 25,000개의 게이트들의 총 자원이 소모된다), 이는 총 자원들의 약 40%를 차지하며, 이에 따라 구현 비용이 매우 높아지게 된다.
본 발명의 목적은 종래 기술의 블록 암호 알고리즘에 기초하는 엔크립션 처리 방법의 고 비용의 기술적 문제를 해결하기 위해, 블록 암호 알고리즘에 기초하는 저비용의 효율적인 엔크립션 처리 방법을 제공하는 것이다.
본 발명의 기술적인 해결책은 다음과 같다:
블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스는 키 확장 유닛 및 엔크립션 유닛을 포함하며,
여기서, 키 확장 유닛은 키 확장 유닛의 데이터 등록 컴포넌트 및 키 확장 유닛의 적어도 하나의 데이터 변환 컴포넌트를 포함하고, 엔크립션 유닛은 엔크립션 유닛의 데이터 등록 컴포넌트 및 엔크립션 유닛의 적어도 하나의 데이터 변환 컴포넌트를 포함하고, 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 수는 키 확장 유닛의 데이터 변환 컴포넌트들의 수와 같으며, 그리고 엔크립션 유닛의 데이터 변환 컴포넌트들은 키 확장 유닛의 데이터 변환 컴포넌트들과 일대일(one-to-one)로 연결되며;
키 확장 유닛의 데이터 등록 컴포넌트의 출력은 키 확장 유닛의 데이터 변환 컴포넌트들중 첫 번째 데이터 변환 컴포넌트의 입력과 연결되고, 키 확장 유닛의 데이터 변환 컴포넌트들의 모든(every) 2개의 인접하는 데이터 변환 컴포넌트는 순차적으로 연결되고, 키 확장 유닛의 데이터 변환 컴포넌트들중 마지막 데이터 변환 컴포넌트의 출력은 키 확장 유닛의 데이터 등록 컴포넌트의 입력과 연결되며;
엔크립션 유닛의 데이터 등록 컴포넌트의 출력은 엔크립션 유닛의 데이터 변환 컴포넌트들중 첫 번째 데이터 변환 컴포넌트의 입력에 연결되고, 엔크립션 유닛의 데이터 변환 컴포넌트들의 모든 2개의 인접하는 데이터 변환 컴포넌트는 순차적으로 연결되며, 그리고 엔크립션 유닛의 데이터 변환 컴포넌트들중 마지막 데이터 변환 컴포넌트의 출력은 엔크립션 유닛의 데이터 등록 컴포넌트의 입력과 연결되며;
키 확장 유닛의 데이터 변환 컴포넌트들 각각의 서브-키 출력은 엔크립션 유닛의 데이터 변환 컴포넌트들중 해당하는 데이터 변환 컴포넌트의 서브-키 입력과 연결되며;
키 확장 유닛의 데이터 등록 컴포넌트는 입력 외부 키 및 키 확장 유닛의 데이터 변환 컴포넌트들중 마지막 데이터 변환 컴포넌트로부터 비롯되는 데이터를 등록하며;
키 확장 유닛의 데이터 변환 컴포넌트는 키 확장 유닛의 데이터 등록 컴포넌트 내에 등록된 데이터를 수신하여 키를 확장시키며, 얻어지는 서브-키들은 상기 엔크립션 유닛의 해당하는 데이터 변환 컴포넌트에 입력되며;
엔크립션 유닛의 데이터 등록 컴포넌트는 입력 외부 데이터 및 엔크립션 유닛의 데이터 변환 컴포넌트들중 마지막 데이터 변환 컴포넌트로부터 비롯되는 데이터를 등록하며; 그리고
엔크립션 유닛의 데이터 변환 컴포넌트는 엔크립션 유닛의 데이터 등록 컴포넌트 내의 등록된 데이터를 수신하고, 수신된 데이터를 키 확장 유닛의 해당하는 데이터 변환 컴포넌트로부터 비롯되는 서브-키들을 이용하여 엔크립트 및 변환한다.
본 발명은 다음의 장점들을 갖는다.
1. 서브-키 어레이 저장 유닛이 생략되기 때문에, 본 발명에 따른 엔크립션 처리 디바이스는 기존 기술의 효율성을 유지하면서 자원 소모를 효율적으로 낮출 수 있으며, 이에 따라 디바이스 비용을 낮출 수 있다.
2. 본 발명에 따른 엔크립션 처리 디바이스에 의하면, 변환 컴포넌트의 수가 1개일 때, 자원 소모는 종래 방법의 단지 60%이며, 그리고 변환 컴포넌트의 수가 2개일 때, 자원 소모는 종래 방법의 단지 70%이다.
3. 서브-키 등록 유닛(sub-key register unit)이 부가되기 때문에, 집적 회로 내에서의 임계 경로(critical path)가 짧아지게 되어, 클럭의 프라이머리(primary) 주파수를 증가시키며, 이에 따라 디바이스의 처리 성능을 증가시킨다.
도 1은 종래 기술에 따른 엔크립션 및 디크립션 처리 디바이스의 제 1 구조를 도시하는 개략도이다.
도 2는 종래 기술에 따른 엔크립션 및 디크립션 처리 디바이스의 제 2 구조를 도시하는 개략도이다.
도 3은 본 발명에 따른 엔크립션 및 디크립션 처리 디바이스의 제 1 구조를 도시하는 개략도이다.
도 4는 본 발명에 따른 엔크립션 및 디크립션 처리 디바이스의 제 2 구조를 도시하는 개략도이다.
도 5는 본 발명에 따른 엔크립션 및 디크립션 처리 디바이스의 제 3 구조를 도시하는 개략도이다.
도 6은 본 발명에 따른 엔크립션 및 디크립션 처리 디바이스의 제 4 구조를 도시하는 개략도이다.
여기서, 1은 키 확장 유닛을 나타내고, 100은 키 확장 유닛의 데이터 등록 컴포넌트를 나타내고, 101(101a, 101b)은 키 확장 유닛의 데이터 변환 컴포넌트를 나타내고, 2는 서브-키 어레이 저장 유닛을 나타내고, 3은 엔크립션 유닛을 나타내고, 300은 엔크립션 유닛의 데이터 등록 컴포넌트를 나타내고, 301(301a, 301b)은 엔크립션 유닛의 데이터 변환 컴포넌트를 나타내고, 4는 서브-키 등록 유닛을 나타내며, 그리고 401(401a, 401b)은 서브-키 등록 컴포넌트(sub-key register component)를 나타낸다.
도 2는 종래 기술에 따른 엔크립션 및 디크립션 처리 디바이스의 제 2 구조를 도시하는 개략도이다.
도 3은 본 발명에 따른 엔크립션 및 디크립션 처리 디바이스의 제 1 구조를 도시하는 개략도이다.
도 4는 본 발명에 따른 엔크립션 및 디크립션 처리 디바이스의 제 2 구조를 도시하는 개략도이다.
도 5는 본 발명에 따른 엔크립션 및 디크립션 처리 디바이스의 제 3 구조를 도시하는 개략도이다.
도 6은 본 발명에 따른 엔크립션 및 디크립션 처리 디바이스의 제 4 구조를 도시하는 개략도이다.
여기서, 1은 키 확장 유닛을 나타내고, 100은 키 확장 유닛의 데이터 등록 컴포넌트를 나타내고, 101(101a, 101b)은 키 확장 유닛의 데이터 변환 컴포넌트를 나타내고, 2는 서브-키 어레이 저장 유닛을 나타내고, 3은 엔크립션 유닛을 나타내고, 300은 엔크립션 유닛의 데이터 등록 컴포넌트를 나타내고, 301(301a, 301b)은 엔크립션 유닛의 데이터 변환 컴포넌트를 나타내고, 4는 서브-키 등록 유닛을 나타내며, 그리고 401(401a, 401b)은 서브-키 등록 컴포넌트(sub-key register component)를 나타낸다.
이제, 첨부 도면을 참조하여 본 발명에 따른 디바이스에 대해 상세히 설명한다.
제 1 실시예
도 3에 나타낸 바와 같이, 블록 암호 알고리즘에 기초하는 제 1 엔크립션 처리 디바이스는 키 확장 유닛(1) 및 엔크립션 유닛(3)을 포함한다.
키 확장 유닛(1)은 키 확장 유닛의 데이터 등록 컴포넌트(100) 및 키 확장 유닛의 데이터 변환 컴포넌트(101)를 포함하고, 키 확장 유닛의 데이터 등록 컴포넌트(100)의 출력은 키 확장 유닛의 데이터 변환 컴포넌트(101)의 입력과 연결되며, 그리고 키 확장 유닛의 데이터 변환 컴포넌트(101)의 출력은 키 확장 유닛의 데이터 등록 컴포넌트(100)의 입력과 연결된다.
엔크립션 유닛(3)은 엔크립션 유닛의 데이터 등록 컴포넌트(300) 및 엔크립션 유닛의 데이터 변환 컴포넌트(301)를 포함하고, 엔크립션 유닛의 데이터 등록 컴포넌트(300)의 출력은 엔크립션 유닛의 데이터 변환 컴포넌트(301)의 입력과 연결되며, 그리고 엔크립션 유닛의 데이터 변환 컴포넌트(301)의 출력은 엔크립션 유닛의 데이터 등록 컴포넌트(300)의 입력과 연결된다.
특히, 키 확장 유닛의 데이터 변환 컴포넌트(101)의 서브-키 출력은 엔크립션 유닛의 데이터 변환 컴포넌트(301)의 서브-키 입력과 연결된다.
도 3을 참조하면, 블록 암호 알고리즘에 기초하는 제 1 엔크립션 처리 디바이스는 본 발명의 일 실시예에 따른 방법의 하기의 단계들을 수행한다.
1] 외부 키가 등록된다: 클럭 주기의 클럭 에지에 도달하면(즉, 이르면), 처리된 외부 키가 등록을 위해 키 확장 유닛의 데이터 등록 컴포넌트(100)에 입력된다.
2] 외부 데이터가 등록된다: 클럭 주기의 클럭 에지에 도달하면, 외부 데이터의 세트가 등록을 위해 엔크립션 유닛의 데이터 등록 컴포넌트(300)에 입력된다.
3] 키가 확장된다: 클럭 주기 동안, 키 확장 유닛의 데이터 등록 컴포넌트(100) 내의 등록된 데이터는 키 확장을 위해 키 확장 유닛의 데이터 변환 컴포넌트(101)에 입력되고, 얻어지는 서브-키들은 엔크립션 유닛의 데이터 변환 컴포넌트(301)에 입력된다.
4] 데이터가 엔크립트 및 변환된다: 클럭 주기 동안, 엔크립션 유닛의 데이터 등록 컴포넌트(300) 내의 등록된 데이터는 엔크립션 유닛의 데이터 변환 컴포넌트(301)에 입력되고, 엔크립션 유닛의 데이터 변환 컴포넌트(301)는 데이터의 엔크립션 및 변환을 수행한다.
5] 내부 데이터가 등록된다: 다음 클럭 주기의 클럭 에지에 도달하면, 키 확장 유닛의 데이터 변환 컴포넌트(101)로부터 비롯되는 데이터가 등록을 위해 키 확장 유닛의 데이터 등록 컴포넌트(100)에 입력되고, 엔크립션 유닛의 데이터 변환 컴포넌트(301)로부터 비롯되는 데이터는 등록을 위해 엔크립션 유닛의 데이터 등록 컴포넌트(300)에 입력된다.
6] 데이터는 반복적으로 처리된다: 블록 암호 알고리즘 내에 특정되어 있는 횟수 만큼 데이터가 변환된 다음, 데이터의 세트에 대한 엔크립션이 완료될 때 까지, 키 확장 단계, 데이터 엔크립션 및 변환 단계, 및 내부 데이터 등록 단계가 반복된다.
제 2 실시예
도 4에 나타낸 바와 같이, 블록 암호 알고리즘에 기초하는 제 2 엔크립션 처리 디바이스는 키 확장 유닛(1) 및 엔크립션 유닛(3)을 포함한다.
키 확장 유닛(1)은 키 확장 유닛의 데이터 등록 컴포넌트(100) 및 키 확장 유닛의 2개의 데이터 변환 컴포넌트들(101a 및 101b)을 포함하고, 키 확장 유닛의 데이터 등록 컴포넌트(100)의 출력은 키 확장 유닛의 제 1 데이터 변환 컴포넌트(101a)의 입력에 연결되고, 키 확장 유닛의 2개의 데이터 변환 컴포넌트들(101a 및 101b)은 순차적으로 연결되며, 그리고 키 확장 유닛의 제 2 데이터 변환 컴포넌트(101b)의 출력은 키 확장 유닛의 데이터 등록 컴포넌트(100)의 입력에 연결된다.
엔크립션 유닛(3)은 엔크립션 유닛의 데이터 등록 컴포넌트(300) 및 엔크립션 유닛의 2개의 데이터 변환 컴포넌트들(301a 및 301b)을 포함하고, 엔크립션 유닛의 데이터 등록 컴포넌트(300)의 출력은 엔크립션 유닛의 제 1 데이터 변환 컴포넌트(301a)의 입력에 연결되고, 엔크립션 유닛의 2개의 데이터 변환 컴포넌트들(301a 및 301b)은 순차적으로 연결되며, 그리고 엔크립션 유닛의 제 2 데이터 변환 컴포넌트(301b)의 출력은 엔크립션 유닛의 데이터 등록 컴포넌트(300)의 입력에 연결된다.
특히, 키 확장 유닛의 제 1 데이터 변환 컴포넌트(101a)의 서브-키 출력은 엔크립션 유닛의 제 1 데이터 변환 컴포넌트(301a)의 서브-키 입력에 연결되고, 키 확장 유닛의 제 2 데이터 변환 컴포넌트(101b)의 서브-키 출력은 엔크립션 유닛의 제 2 데이터 변환 컴포넌트(301b)의 서브-키 입력에 연결된다.
특히, 키 확장 유닛의 데이터 변환 컴포넌트들의 수는 엔크립션 유닛의 데이터 변환 컴포넌트들의 수와 같으며, 3개, 4개 내지 32개 또는 48개, 바람직하게는 1개, 2개 또는 4개가 될 수 있다.
도 4를 참조하면, 블록 암호 알고리즘에 기초하는 제 2 엔크립션 처리 디바이스는 본 발명의 일 실시예에 따른 방법의 하기의 단계들을 수행한다.
1] 외부 키가 등록된다: 클럭 주기의 클럭 에지에 도달하면, 처리된 외부 키가 등록을 위해 키 확장 유닛의 데이터 등록 컴포넌트(100)에 입력된다.
2] 외부 데이터가 등록된다: 클럭 주기의 클럭 에지에 도달하면, 외부 데이터의 세트가 등록을 위해 엔크립션 유닛의 데이터 등록 컴포넌트(300)에 입력된다.
3] 키가 확장된다: 클럭 주기 동안, 키 확장 유닛의 데이터 등록 컴포넌트(100) 내의 등록된 데이터는 키 확장을 위해 키 확장 유닛의 데이터 변환 컴포넌트(101a)에 입력되고, 얻어지는 서브-키들은 엔크립션 유닛의 데이터 변환 컴포넌트(301a)에 입력되며, 그리고 키 확장 유닛의 데이터 변환 컴포넌트(101a)로부터 출력되는 데이터는 키 확장 유닛의 다음 데이터 변환 컴포넌트(101b)에 입력되며, 이에 따라 키 확장 유닛의 데이터 변환 컴포넌트들은 키를 순차적으로 확장시킨다.
4] 데이터가 엔크립트 및 변환된다: 클럭 주기 동안, 엔크립션 유닛의 데이터 등록 컴포넌트(300) 내의 등록된 데이터는 엔크립션 유닛의 데이터 변환 컴포넌트(301a)에 입력되고, 엔크립션 유닛의 데이터 변환 컴포넌트(301a)는 데이터 엔크립션 및 변환을 수행하며, 엔크립션 유닛의 데이터 변환 컴포넌트(301a)로부터 출력되는 데이터는 엔크립션 유닛의 다음 데이터 변환 컴포넌트(301b)에 입력되며, 이에 따라 엔크립션 유닛의 데이터 변환 컴포넌트들은 데이터를 순차적으로 엔크립트한다.
5] 내부 데이터가 등록된다: 다음 클럭 주기의 클럭 에지에 도달하면, 키 확장 유닛의 마지막 데이터 변환 컴포넌트(본 실시예에서는 101b)로부터 출력되는 데이터는 등록을 위해 키 확장 유닛의 데이터 등록 컴포넌트(100)에 입력되고, 엔크립션 유닛의 마지막 데이터 변환 컴포넌트(본 실시예에서는 301b)로부터 출력되는 데이터는 등록을 위해 엔크립션 유닛의 데이터 등록 컴포넌트(300)에 입력된다.
6] 데이터가 반복적으로 처리된다: 블록 암호 알고리즘 내에 특정되어 있는 횟수 만큼 데이터가 변환되고, 데이터의 세트에 대한 엔크립션이 완료될 때 까지, 키 확장 단계, 데이터 엔크립션 및 변환 단계, 및 내부 데이터 등록 단계가 반복된다.
제 3 실시예
도 5에 나타낸 바와 같이, 블록 암호 알고리즘에 기초하는 제 3 엔크립션 처리 디바이스는 키 확장 유닛(1), 서브-키 등록 유닛(4) 및 엔크립션 유닛(3)을 포함한다.
키 확장 유닛(1)은 키 확장 유닛의 데이터 등록 컴포넌트(100) 및 키 확장 유닛의 데이터 변환 컴포넌트(101)를 포함하고, 키 확장 유닛의 데이터 등록 컴포넌트(100)의 출력은 키 확장 유닛의 데이터 변환 컴포넌트(101)의 입력에 연결되며, 그리고 키 확장 유닛의 데이터 변환 컴포넌트(101)의 출력은 키 확장 유닛의 데이터 등록 컴포넌트(100)의 입력에 연결된다.
서브-키 등록 유닛(4)은 서브-키 등록 컴포넌트(401)를 포함하는데, 이는 범용 플립 플롭 또는 레지스터가 될 수 있다.
엔크립션 유닛(3)은 엔크립션 유닛의 데이터 등록 컴포넌트(300) 및 엔크립션 유닛의 데이터 변환 컴포넌트(301)를 포함하고, 엔크립션 유닛의 데이터 등록 컴포넌트(300)의 출력은 엔크립션 유닛의 데이터 변환 컴포넌트(301)의 입력과 연결되며, 그리고 엔크립션 유닛의 데이터 변환 컴포넌트(301)의 출력은 엔크립션 유닛의 데이터 등록 컴포넌트(300)의 입력과 연결된다.
특히, 키 확장 유닛의 데이터 변환 컴포넌트(101)의 서브-키 출력은 서브-키 등록 컴포넌트(401)의 입력과 연결되고, 서브-키 등록 컴포넌트(401)의 출력은 엔크립션 유닛의 데이터 변환 컴포넌트(301)의 서브-키 입력과 연결된다.
도 5를 참조하면, 블록 암호 알고리즘에 기초하는 제 3 엔크립션 처리 디바이스는 본 발명의 일 실시예에 따른 방법의 하기의 단계들을 수행한다.
1] 외부 키가 등록된다: 클럭 주기의 클럭 에지에 도달하면, 처리된 외부 키가 등록을 위해 키 확장 유닛의 데이터 등록 컴포넌트(100)에 입력된다.
2] 키가 사전 확장(pre-expand)된다: 외부 키가 등록되는 클럭 주기에서, 키 확장 유닛의 데이터 등록 컴포넌트(100) 내의 등록된 데이터는 키 확장을 위해 키 확장 유닛의 데이터 변환 컴포넌트(101)에 입력되고, 얻어지는 서브-키들은 키 확장 유닛의 데이터 변환 컴포넌트(101)와 연결된 서브-키 등록 컴포넌트(401)의 입력에 입력되며, 그리고 키 확장 유닛의 데이터 변환 컴포넌트(101)로부터 비롯되는 데이터는 키 확장 유닛의 데이터 등록 컴포넌트(100)의 입력에 입력된다.
3] 키가 버퍼(buffer) 및 등록된다: 외부 키 등록 단계 이후의 다음 클럭 주기의 클럭 에지에 도달하면, 키 확장 유닛의 데이터 변환 컴포넌트(101)로부터 비롯되는 데이터는 등록을 위해 키 확장 유닛의 데이터 등록 컴포넌트(100)에 입력되고, 키 확장 유닛의 데이터 변환 컴포넌트(101)의 서브-키들은 등록을 위해 서브-키 등록 컴포넌트(401)에 입력된다.
4] 외부 데이터(external data)가 등록된다: 외부 키 등록 단계 이후의 다음 클럭 주기의 클럭 에지에 도달하면, 외부 데이터의 세트가 등록을 위해 엔크립션 유닛의 데이터 등록 컴포넌트(300)에 입력된다.
5] 키가 확장된다: 클럭 주기 동안, 키 확장 유닛의 데이터 등록 컴포넌트(100) 내의 등록된 데이터는 키 확장을 위해 키 확장 유닛의 데이터 변환 컴포넌트(101)에 입력되고, 얻어지는 서브-키들은 키 확장 유닛의 데이터 변환 컴포넌트(101)와 연결된 서브-키 등록 컴포넌트(401)의 입력에 입력되고, 키 확장 유닛의 데이터 변환 컴포넌트(101)로부터 출력되는 데이터는 키 확장 유닛의 데이터 등록 컴포넌트(100)의 입력에 입력되며, 그리고 서브-키 등록 컴포넌트(401)로부터 출력되는 서브-키들은 엔크립션 유닛의 데이터 변환 컴포넌트(301)에 입력된다.
6] 데이터가 엔크립션 및 변환된다: 클럭 주기 동안, 엔크립션 유닛의 데이터 등록 컴포넌트(300) 내의 등록된 데이터는 엔크립션 유닛의 데이터 변환 컴포넌트(301)에 입력되고, 엔크립션 유닛의 데이터 변환 컴포넌트(301)는 데이터를 엔크립션 및 변환하며, 그리고 엔크립션 유닛의 데이터 변환 컴포넌트(301)로부터 출력되는 데이터는 엔크립션 유닛의 데이터 등록 컴포넌트(300)의 입력에 입력된다.
7] 내부 데이터가 등록된다: 다음 클럭 주기의 클럭 에지에 도달하면, 키 확장 유닛의 데이터 변환 컴포넌트(101)로부터 비롯되는 데이터는 등록을 위해 키 확장 유닛의 데이터 등록 컴포넌트(100)에 입력되고, 키 확장 유닛의 데이터 변환 컴포넌트(101)의 서브-키들은 등록을 위해 서브-키 등록 컴포넌트(401)에 입력되며, 그리고 엔크립션 유닛의 데이터 변환 컴포넌트(301)로부터 비롯되는 데이터는 등록을 위해 엔크립션 유닛의 데이터 등록 컴포넌트(300)에 입력된다.
8] 데이터가 반복적으로 처리된다: 블록 암호 알고리즘 내에 특정되어 있는 횟수 만큼 데이터가 변환된 다음, 데이터의 세트에 대한 엔크립션이 완료될 때 까지, 키 확장 단계, 데이터 엔크립션 및 변환 단계, 및 내부 데이터 등록 단계가 반복된다.
제 4 실시예
도 6에 나타낸 바와 같이, 블록 암호 알고리즘에 기초하는 제 4 엔크립션 처리 디바이스는 키 확장 유닛(1), 서브-키 등록 유닛(4) 및 엔크립션 유닛(3)을 포함한다.
키 확장 유닛(1)은 키 확장 유닛의 데이터 등록 컴포넌트(100) 및 키 확장 유닛의 2개의 데이터 변환 컴포넌트들(101a 및 101b)을 포함하고, 키 확장 유닛의 데이터 등록 컴포넌트(100)의 출력은 키 확장 유닛의 제 1 데이터 변환 컴포넌트(101a)의 입력과 연결되고, 키 확장 유닛의 2개의 데이터 변환 컴포넌트들(101a 및 101b)은 순차적으로 연결되며, 그리고 키 확장 유닛의 제 2 데이터 변환 컴포넌트(101b)의 출력은 키 확장 유닛의 데이터 등록 컴포넌트(100)의 입력과 연결된다.
서브-키 등록 유닛(4)은 2개의 서브-키 등록 컴포넌트들(401a 및 401b)을 포함하는데, 이들은 범용 플립 플롭 또는 레지스터가 될 수 있다.
엔크립션 유닛(3)은 엔크립션 유닛의 데이터 등록 컴포넌트(300) 및 엔크립션 유닛의 2개의 데이터 변환 컴포넌트들(301a 및 301b)을 포함하고, 엔크립션 유닛의 데이터 등록 컴포넌트(300)의 출력은 엔크립션 유닛의 제 1 데이터 변환 컴포넌트(301a)의 입력과 연결되고, 엔크립션 유닛의 2개의 데이터 변환 컴포넌트들(301a 및 301b)은 순차적으로 연결되며, 그리고 엔크립션 유닛의 제 2 데이터 변환 컴포넌트(301b)의 출력은 엔크립션 유닛의 데이터 등록 컴포넌트(300)의 입력과 연결된다.
특히, 키 확장 유닛의 제 1 데이터 변환 컴포넌트(101a)의 서브-키 출력은 제 1 서브-키 등록 컴포넌트(401a)의 입력과 연결되고, 제 1 서브-키 등록 컴포넌트(401a)의 출력은 엔크립션 유닛의 제 1 데이터 변환 컴포넌트(301a)의 서브-키 입력과 연결되고, 키 확장 유닛의 제 2 데이터 변환 컴포넌트(101b)의 서브-키 출력은 제 2 서브-키 등록 컴포넌트(401b)의 입력과 연결되며, 그리고 제 2 서브-키 등록 컴포넌트(401b)의 출력은 엔크립션 유닛의 제 2 데이터 변환 컴포넌트(301b)의 서브-키 입력과 연결된다.
특히, 키 확장 유닛의 데이터 변환 컴포넌트들의 수, 서브-키 등록 컴포넌트들의 수 및 엔크립션 유닛의 데이터 변환 컴포넌트들의 수는 같으며, 3개, 4개 내지 32개 또는 48개, 바람직하게는 1개, 2개 또는 4개가 될 수 있다.
도 6을 참조하면, 블록 암호 알고리즘에 기초하는 제 4 엔크립션 처리 디바이스는 본 발명의 일 실시예에 따른 방법의 하기의 단계들을 수행한다.
1] 외부 키가 등록된다: 클럭 주기의 클럭 에지에 도달하면, 처리된 외부 키가 등록을 위해 키 확장 유닛의 데이터 등록 컴포넌트(100)에 입력된다.
2] 키가 사전 확장된다: 외부 키가 등록되는 클록 주기에서, 키 확장 유닛의 데이터 등록 컴포넌트(100) 내의 등록된 데이터는 키 확장을 위해 키 확장 유닛의 제 1 데이터 변환 컴포넌트(101a)에 입력되고, 얻어지는 서브-키들은 키 확장 유닛의 제 1 데이터 변환 컴포넌트(101a)와 연결된 제 1 서브-키 등록 컴포넌트(401a)의 입력에 입력되고, 키 확장 유닛의 제 1 데이터 변환 컴포넌트(101a)로부터 출력되는 데이터는 두 번째의 키 확장을 위해 키 확장 유닛의 다음 데이터 변환 컴포넌트(101b)에 입력되며, 이에 따라 키 확장 유닛의 데이터 변환 컴포넌트들은 키를 순차적으로 서브-키들로 확장시키고, 발생되는 서브-키들은 키 확장 유닛의 데이터 변환 컴포넌트들에 연결된 각각의 서브-키 등록 컴포넌트의 입력들에 입력되며, 그리고 키 확장 유닛의 마지막 데이터 변환 컴포넌트(본 실시예에서는 101b)로부터 출력되는 데이터는 키 확장 유닛의 데이터 등록 컴포넌트(100)의 입력에 입력된다.
3] 키가 버퍼링 및 등록된다: 외부 키 등록 단계 이후의 다음 클럭 주기의 클럭 에지에 도달하면, 키 확장 유닛의 마지막 데이터 변환 컴포넌트(본 실시예에서는 101b)로부터 비롯되는 데이터는 등록을 위해 키 확장 유닛의 데이터 등록 컴포넌트(100)에 입력되고, 키 확장 유닛의 데이터 변환 컴포넌트들의 서브-키들은 등록을 위해 해당하는 서브-키 등록 컴포넌트에 입력된다.
4] 외부 데이터가 등록된다: 외부 키 등록 단계 이후의 다음 클럭 주기의 클럭 에지에 도달하면, 외부 데이터의 세트가 등록을 위해 엔크립션 유닛의 데이터 등록 컴포넌트(300)에 입력된다.
5] 키가 확장된다: 클럭 주기 동안, 키 확장 유닛의 데이터 등록 컴포넌트(100) 내의 등록된 데이터는 키 확장을 위해 키 확장 유닛의 제 1 데이터 변환 컴포넌트(101a)에 입력되고, 얻어지는 서브-키들은 키 확장 유닛의 제 1 데이터 변환 컴포넌트(101a)와 연결된 제 1 서브-키 등록 컴포넌트(401a)의 입력에 입력되고, 키 확장 유닛의 제 1 데이터 변환 컴포넌트(101a)로부터 출력되는 데이터는 두 번째의 키 확장을 위해 키 확장 유닛의 다음 데이터 변환 컴포넌트(100b)의 입력에 입력되며, 이에 따라 키 확장 유닛의 데이터 변환 컴포넌트들은 키를 서브-키들로 순차적으로 확장시키고, 발생되는 서브-키들은 이러한 키 확장 유닛의 데이터 변환 컴포넌트들과 연결된 각각의 서브-키 등록 컴포넌트들의 입력들에 입력되며, 그리고 키 확장 유닛의 마지막 데이터 변환 컴포넌트(본 실시예에서는 101b)로부터 출력되는 데이터는 키 확장 유닛의 데이터 등록 컴포넌트(100)의 데이터 입력에 입력된다.
6] 데이터가 엔크립션 및 변환된다: 클럭 주기 동안, 엔크립션 유닛의 데이터 등록 컴포넌트(300) 내의 등록된 데이터는 엔크립션 유닛의 제 1 데이터 변환 컴포넌트(301a)에 입력되고, 제 1 서브-키 등록 컴포넌트(401a)의 서브-키들이 엔크립션 유닛의 제 1 데이터 변환 컴포넌트(301a)에 입력되고, 엔크립션 유닛의 제 1 데이터 변환 컴포넌트(301a)는 데이터 엔크립션 및 변환을 수행하고, 엔크립션 유닛의 제 1 데이터 변환 컴포넌트(301a)로부터의 엔크립트되고 변환된 데이터는 엔크립션 유닛의 제 2 데이터 변환 컴포넌트(301b)에 입력되고, 제 2 서브-키 등록 컴포넌트(401b)의 서브-키들은 엔크립션 유닛의 제 2 데이터 변환 컴포넌트(301b)에 입력되고, 엔크립션 유닛의 제 2 데이터 변환 컴포넌트(301b)는 데이터 엔크립션 및 변환을 수행하며, 이에 따라 키 확장 유닛의 데이터 변환 컴포넌트들에 대응하는 엔크립션 유닛의 데이터 변환 컴포넌트들은 데이터의 엔크립션 및 변환을 순차적으로 수행하며, 엔크립션 유닛의 마지막 데이터 변환 컴포넌트(본 실시예에서는 301b)로부터 출력되는 데이터는 엔크립션 유닛의 데이터 등록 컴포넌트(300)의 데이터 입력에 입력된다.
7] 내부 데이터가 등록된다: 다음 클럭 주기의 클럭 에지에 도달하면, 키 확장 유닛의 마지막 데이터 변환 컴포넌트(본 실시예에서는 101b)로부터 비롯되는 데이터는 등록을 위해 키 확장 유닛의 데이터 등록 컴포넌트(100)에 입력되고, 키 확장 유닛의 데이터 변환 컴포넌트들의 서브-키들은 등록을 위해 해당하는 서브-키 등록 컴포넌트들에 입력되며, 그리고 엔크립션 유닛의 마지막 데이터 변환 컴포넌트(본 실시예에서는 301b)로부터 비롯되는 데이터는 등록을 위해 엔크립션 유닛의 데이터 등록 컴포넌트(300)에 입력된다.
8] 데이터가 반복적으로 처리된다: 블록 암호 알고리즘 내에 특정되어 있는 횟수 만큼 데이터가 변환된 다음, 데이터의 세트에 대한 엔크립션이 완료될 때 까지, 키 확장 단계, 데이터 엔크립션 및 변환 단계, 및 내부 데이터 등록 단계가 반복된다.
만일 엔크립션 처리 디바이스가 키 확장 유닛의 다수의 데이터 변환 컴포넌트, 다수의 서브-키 등록 컴포넌트 및 엔크립션 유닛의 다수의 데이터 변환 컴포넌트를 구비한다면, 이들은 자신들이 연결된 순서로 순차적으로 키 확장 및 데이터 엔크립션을 수행한다.
블록 암호 알고리즘으로서 SMS4 알고리즘이 특정하게 채택되는 경우, 상기 4개의 실시예들에서의 엔크립션 방법은 특히 32번 동안 데이터를 반복적으로 변환한다.
1: 키 확장 유닛
100: 키 확장 유닛의 데이터 등록 컴포넌트
101, 101a, 101b: 키 확장 유닛의 데이터 변환 컴포넌트
2: 서브-키 어레이 저장 유닛
3: 엔크립션 유닛
300: 엔크립션 유닛의 데이터 등록 컴포넌트
301, 301a, 301b: 엔크립션 유닛의 데이터 변환 컴포넌트
4: 서브-키 등록 유닛
401, 401a, 401b: 서브-키 등록 컴포넌트
100: 키 확장 유닛의 데이터 등록 컴포넌트
101, 101a, 101b: 키 확장 유닛의 데이터 변환 컴포넌트
2: 서브-키 어레이 저장 유닛
3: 엔크립션 유닛
300: 엔크립션 유닛의 데이터 등록 컴포넌트
301, 301a, 301b: 엔크립션 유닛의 데이터 변환 컴포넌트
4: 서브-키 등록 유닛
401, 401a, 401b: 서브-키 등록 컴포넌트
Claims (7)
- 블록 암호 알고리즘에 기초하는 엔크립션(encryption) 처리 디바이스로서,
키 확장 유닛 및 엔크립션 유닛을 포함하며,
상기 키 확장 유닛은 키 확장 유닛의 데이터 등록 컴포넌트 및 키 확장 유닛의 적어도 하나의 데이터 변환 컴포넌트를 포함하고, 상기 엔크립션 유닛은 엔크립션 유닛의 데이터 등록 컴포넌트 및 엔크립션 유닛의 적어도 하나의 데이터 변환 컴포넌트를 포함하고, 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 수는 상기 키 확장 유닛의 데이터 변환 컴포넌트들의 수와 같고, 상기 엔크립션 유닛의 데이터 변환 컴포넌트들은 상기 키 확장 유닛의 데이터 변환 컴포넌트들과 일대일(one-to-one)로 연결되며;
상기 키 확장 유닛의 데이터 등록 컴포넌트의 출력은 상기 키 확장 유닛의 데이터 변환 컴포넌트들중 첫 번째 데이터 변환 컴포넌트의 입력과 연결되고, 상기 키 확장 유닛의 데이터 변환 컴포넌트들의 모든(every) 2개의 인접하는 데이터 변환 컴포넌트는 순차적으로 연결되며, 그리고 상기 키 확장 유닛의 데이터 변환 컴포넌트들중 마지막 데이터 변환 컴포넌트의 출력은 상기 키 확장 유닛의 데이터 등록 컴포넌트의 입력과 연결되며;
상기 엔크립션 유닛의 데이터 등록 컴포넌트의 출력은 상기 엔크립션 유닛의 데이터 변환 컴포넌트들중 첫 번째 데이터 변환 컴포넌트의 입력과 연결되고, 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 모든 2개의 인접하는 데이터 변환 컴포넌트는 순차적으로 연결되며, 그리고 상기 엔크립션 유닛의 데이터 변환 컴포넌트들중 마지막 데이터 변환 컴포넌트의 출력은 상기 엔크립션 유닛의 데이터 등록 컴포넌트의 입력과 연결되며;
상기 키 확장 유닛의 데이터 변환 컴포넌트들 각각의 서브-키 출력은 상기 엔크립션 유닛의 데이터 변환 컴포넌트들중 해당하는 데이터 변환 컴포넌트의 서브-키 입력과 연결되며;
상기 키 확장 유닛의 데이터 등록 컴포넌트는 입력 외부 키 및 상기 키 확장 유닛의 데이터 변환 컴포넌트들중 마지막 데이터 변환 컴포넌트로부터 비롯되는 데이터를 등록하며;
상기 키 확장 유닛의 데이터 변환 컴포넌트는 상기 키 확장 유닛의 데이터 등록 컴포넌트 내의 등록된 데이터를 수신하여 키를 서브-키들로 확장시키며, 얻어지는 상기 서브-키들은 상기 엔크립션 유닛의 해당하는 데이터 변환 컴포넌트에 입력되며;
상기 엔크립션 유닛의 데이터 등록 컴포넌트는 입력 외부 데이터 및 상기 엔크립션 유닛의 데이터 변환 컴포넌트들중 마지막 데이터 변환 컴포넌트로부터 비롯되는 데이터를 등록하며; 그리고
상기 엔크립션 유닛의 데이터 변환 컴포넌트는 상기 엔크립션 유닛의 데이터 등록 컴포넌트 내의 등록된 데이터를 수신하고, 수신된 데이터를 상기 키 확장 유닛의 해당하는 데이터 변환 컴포넌트로부터 비롯되는 서브-키들을 이용하여 엔크립트 및 변환하는 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스. - 제 1 항에 있어서,
상기 키 확장 유닛의 데이터 변환 컴포넌트들의 수는 1개 내지 32개이며, 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 수 역시 그에 대응하게 1개 내지 32개인 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스. - 제 2 항에 있어서,
상기 키 확장 유닛의 데이터 변환 컴포넌트들의 수는 1개, 2개 또는 4개이며, 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 수 역시 그에 대응하게 1개, 2개 또는 4개인 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스. - 제 1 항에 있어서,
상기 엔크립션 처리 디바이스는 적어도 하나의 서브-키 등록 컴포넌트를 포함하는 서브-키 등록 유닛을 더 포함하고, 상기 서브-키 등록 컴포넌트의 수는 상기 키 확장 유닛의 데이터 변환 컴포넌트들의 수와 동일하며, 그리고 상기 서브-키 등록 컴포넌트들은 상기 키 확장 유닛의 데이터 변환 컴포넌트들과 일대일로 연결되며;
상기 키 확장 유닛의 데이터 변환 컴포넌트들 각각의 출력은 상기 서브-키 등록 컴포넌트들중 해당하는 서브-키 등록 컴포넌트의 입력과 연결되고, 상기 서브-키 등록 컴포넌트들 각각의 출력은 상기 엔크립션 유닛의 데이터 변환 컴포넌트들중 해당하는 데이터 변환 컴포넌트의 입력과 연결되며;
상기 키 확장 유닛의 데이터 변환 컴포넌트는 상기 키 확장 유닛의 데이터 등록 컴포넌트 내의 등록된 데이터를 수신하여 키를 서브-키들로 확장시키며, 얻어지는 상기 서브-키들은 상기 서브-키 등록 컴포넌트의 입력에 입력되며;
상기 서브-키 등록 컴포넌트는 상기 키 확장 유닛의 데이터 변환 컴포넌트로부터 비롯되는 상기 서브-키들을 등록하며; 그리고
상기 엔크립션 유닛의 데이터 변환 컴포넌트는 상기 서브-키 등록 컴포넌트 내의 등록된 서브-키들을 수신하고, 상기 서브-키들을 이용하여, 상기 수신된 데이터에 대해 엔크립션 및 변환을 수행하는 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스. - 제 4 항에 있어서,
상기 키 확장 유닛의 데이터 변환 컴포넌트들의 수는 1개 내지 32개이고, 상기 서브-키 등록 컴포넌트들의 수 역시 그에 대응하게 1개 내지 32개이며, 그리고 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 수 역시 그에 대응하게 1개 내지 32개인 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스. - 제 5 항에 있어서,
상기 키 확장 유닛의 데이터 변환 컴포넌트들의 수는 1개, 2개 또는 4개이고, 상기 서브-키 등록 컴포넌트들의 수 역시 그에 대응하게 1개, 2개 또는 4개이며, 그리고 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 수 역시 그에 대응하게 1개, 2개 또는 4개인 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스. - 제 4 항 내지 제 6 항 중의 어느 한 항에 있어서,
상기 서브-키 등록 컴포넌트는 범용 플립 플롭(general flip flop) 또는 레지스터(register)인 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710019110.2A CN100581101C (zh) | 2007-11-19 | 2007-11-19 | 一种基于分组密码算法的加密处理设备 |
CN200710019110.2 | 2007-11-19 | ||
PCT/CN2008/073041 WO2009067929A1 (en) | 2007-11-19 | 2008-11-13 | Packet cipher algorithm based encryption processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100076078A true KR20100076078A (ko) | 2010-07-05 |
KR101126776B1 KR101126776B1 (ko) | 2012-03-29 |
Family
ID=39307480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107013607A KR101126776B1 (ko) | 2007-11-19 | 2008-11-13 | 패킷 암호 알고리즘에 기반하는 엔크립션 처리 디바이스 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8311216B2 (ko) |
EP (1) | EP2216934A4 (ko) |
JP (1) | JP2011503666A (ko) |
KR (1) | KR101126776B1 (ko) |
CN (1) | CN100581101C (ko) |
RU (1) | RU2452112C2 (ko) |
WO (1) | WO2009067929A1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100581101C (zh) | 2007-11-19 | 2010-01-13 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理设备 |
CN100495961C (zh) * | 2007-11-19 | 2009-06-03 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理方法 |
CN103336920B (zh) * | 2013-05-29 | 2019-01-08 | 东南大学 | 用于无线传感网络soc芯片的安全系统 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5381480A (en) * | 1993-09-20 | 1995-01-10 | International Business Machines Corporation | System for translating encrypted data |
US5835599A (en) * | 1996-04-15 | 1998-11-10 | Vlsi Technology, Inc. | Muti-cycle non-parallel data encryption engine |
EP1016240A1 (en) | 1997-09-17 | 2000-07-05 | Frank C. Luyster | Improved block cipher method |
US6243470B1 (en) | 1998-02-04 | 2001-06-05 | International Business Machines Corporation | Method and apparatus for advanced symmetric key block cipher with variable length key and block |
JP2000056679A (ja) * | 1998-08-11 | 2000-02-25 | Fujitsu Ltd | Desの鍵スケジュール装置 |
CA2373432C (en) | 2000-03-09 | 2005-02-08 | Mitsubishi Denki Kabushiki Kaisha | Block cipher apparatus using auxiliary transformation |
RU2206182C2 (ru) | 2000-04-10 | 2003-06-10 | Клепов Анатолий Викторович | Способ криптографической защиты информации в информационных технологиях и устройство для его осуществления |
KR100377172B1 (ko) * | 2000-06-13 | 2003-03-26 | 주식회사 하이닉스반도체 | 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러 |
JP3770584B2 (ja) | 2000-10-31 | 2006-04-26 | シャープ株式会社 | 暗号鍵生成回路 |
KR100525389B1 (ko) * | 2001-01-17 | 2005-11-02 | 엘지전자 주식회사 | 실시간 입력 스트림의 암호화/복호화 장치 |
RU2206961C2 (ru) | 2001-03-22 | 2003-06-20 | Государственное унитарное предприятие Специализированный центр программных систем "Спектр" | Способ итеративного блочного шифрования двоичных данных |
US7212631B2 (en) * | 2001-05-31 | 2007-05-01 | Qualcomm Incorporated | Apparatus and method for performing KASUMI ciphering |
US7519182B2 (en) | 2002-05-10 | 2009-04-14 | Sony Corporation | Encryption device and decryption device |
JP2005004048A (ja) * | 2003-06-13 | 2005-01-06 | Oki Electric Ind Co Ltd | 鍵拡張装置、鍵拡張方法および鍵拡張プログラム |
WO2007075154A2 (en) | 2004-12-06 | 2007-07-05 | The Trustees Of The Stevens Institute Of Technology | Method and apparatus for maintaining data integrity for block-encryption algorithms |
JP4742614B2 (ja) | 2005-02-25 | 2011-08-10 | ソニー株式会社 | データ変換装置および方法、データ逆変換装置および方法、情報処理システム、記録媒体、並びにプログラム |
US7949807B2 (en) | 2005-03-16 | 2011-05-24 | Mitsubishi Electric Corporation | Data conversion apparatus and data conversion method |
CN100369074C (zh) | 2006-03-02 | 2008-02-13 | 西安西电捷通无线网络通信有限公司 | 一种实现sms4密码算法中加解密处理的方法 |
IL174784A0 (en) * | 2006-04-04 | 2006-12-31 | Nds Ltd | Robust cipher design |
CN101013938B (zh) | 2007-01-12 | 2010-04-07 | 广州市诚毅科技软件开发有限公司 | 一种分组密码加密方法 |
CN100495961C (zh) | 2007-11-19 | 2009-06-03 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理方法 |
CN100581101C (zh) | 2007-11-19 | 2010-01-13 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理设备 |
-
2007
- 2007-11-19 CN CN200710019110.2A patent/CN100581101C/zh active Active
-
2008
- 2008-11-13 JP JP2010534350A patent/JP2011503666A/ja active Pending
- 2008-11-13 US US12/743,491 patent/US8311216B2/en active Active
- 2008-11-13 RU RU2010124849/08A patent/RU2452112C2/ru active
- 2008-11-13 KR KR1020107013607A patent/KR101126776B1/ko active IP Right Grant
- 2008-11-13 EP EP08855567A patent/EP2216934A4/en not_active Withdrawn
- 2008-11-13 WO PCT/CN2008/073041 patent/WO2009067929A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN100581101C (zh) | 2010-01-13 |
WO2009067929A1 (en) | 2009-06-04 |
KR101126776B1 (ko) | 2012-03-29 |
EP2216934A1 (en) | 2010-08-11 |
US20100284534A1 (en) | 2010-11-11 |
RU2452112C2 (ru) | 2012-05-27 |
US8311216B2 (en) | 2012-11-13 |
CN101159544A (zh) | 2008-04-09 |
JP2011503666A (ja) | 2011-01-27 |
RU2010124849A (ru) | 2011-12-27 |
EP2216934A4 (en) | 2012-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5835599A (en) | Muti-cycle non-parallel data encryption engine | |
KR101139011B1 (ko) | 패킷 암호 알고리즘에 기초하는 엔크립션 처리 방법 | |
US7688974B2 (en) | Rijndael block cipher apparatus and encryption/decryption method thereof | |
US5671284A (en) | Data encryptor having a scalable clock | |
US7561689B2 (en) | Generating keys having one of a number of key sizes | |
US20020041685A1 (en) | Data encryption apparatus | |
US20030059054A1 (en) | Apparatus for generating encryption or decryption keys | |
US20100246828A1 (en) | Method and system of parallelized data decryption and key generation | |
Shreedhar et al. | Low gate-count ultra-small area nano advanced encryption standard (AES) design | |
Mohurle et al. | Review on realization of AES encryption and decryption with power and area optimization | |
US6873707B1 (en) | Hardware-based encryption/decryption employing cycle stealing | |
KR101126776B1 (ko) | 패킷 암호 알고리즘에 기반하는 엔크립션 처리 디바이스 | |
Rais et al. | Efficient hardware realization of advanced encryption standard algorithm using Virtex-5 FPGA | |
CN108134665B (zh) | 一种面向IoT应用的8比特AES电路 | |
Anusha et al. | Analysis and comparison of symmetric key cryptographic algorithms on FPGA | |
Lam et al. | Implementation of Lightweight Cryptography Core PRESENT and DM-PRESENT on FPGA | |
CN109039608B (zh) | 一种基于双S核的8-bitAES电路 | |
Illy et al. | An improvement of the AES protocol to optimize energy consumption in IoT | |
Bu et al. | ’A Compact Implementation of SM4 Encryption and Decryption Circuit’ | |
KR20180021473A (ko) | 암호화 장치 | |
Wang et al. | Hardware Design of Lightweight Stream Cipher PUFFIN Algorithm for Anti-cooperation | |
SOWJANYA et al. | LATENCY AND POWER OPTIMIZED AES CRYPTOGRAPHY SYSTEM USING SCAN CHAIN REORDERING | |
Aatheeswaran et al. | FPGA can be implemented by using Advanced Encryption Standard Algorithm | |
Manojkumar et al. | AES Algorithm for the Next Generation of 5G Network Encryption Standards | |
Sak et al. | Hardware Design of Combinational 128-bit Camellia Symmetric Cipher using 0.18 µm Technology |
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: 20150227 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160302 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170224 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180223 Year of fee payment: 7 |