KR20100076078A - 패킷 암호 알고리즘에 기반하는 엔크립션 처리 디바이스 - Google Patents

패킷 암호 알고리즘에 기반하는 엔크립션 처리 디바이스 Download PDF

Info

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
Application number
KR1020107013607A
Other languages
English (en)
Other versions
KR101126776B1 (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 KR20100076078A publication Critical patent/KR20100076078A/ko
Application granted granted Critical
Publication of KR101126776B1 publication Critical patent/KR101126776B1/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key 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

패킷 암호 알고리즘에 기반하는 엔크립션 처리 디바이스{PACKET CIPHER ALGORITHM BASED ENCRYPTION PROCESSING DEVICE}
관련 출원에 대한 참조
본 출원은, 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)를 나타낸다.
이제, 첨부 도면을 참조하여 본 발명에 따른 디바이스에 대해 상세히 설명한다.
제 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: 서브-키 등록 컴포넌트

Claims (7)

  1. 블록 암호 알고리즘에 기초하는 엔크립션(encryption) 처리 디바이스로서,
    키 확장 유닛 및 엔크립션 유닛을 포함하며,
    상기 키 확장 유닛은 키 확장 유닛의 데이터 등록 컴포넌트 및 키 확장 유닛의 적어도 하나의 데이터 변환 컴포넌트를 포함하고, 상기 엔크립션 유닛은 엔크립션 유닛의 데이터 등록 컴포넌트 및 엔크립션 유닛의 적어도 하나의 데이터 변환 컴포넌트를 포함하고, 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 수는 상기 키 확장 유닛의 데이터 변환 컴포넌트들의 수와 같고, 상기 엔크립션 유닛의 데이터 변환 컴포넌트들은 상기 키 확장 유닛의 데이터 변환 컴포넌트들과 일대일(one-to-one)로 연결되며;
    상기 키 확장 유닛의 데이터 등록 컴포넌트의 출력은 상기 키 확장 유닛의 데이터 변환 컴포넌트들중 첫 번째 데이터 변환 컴포넌트의 입력과 연결되고, 상기 키 확장 유닛의 데이터 변환 컴포넌트들의 모든(every) 2개의 인접하는 데이터 변환 컴포넌트는 순차적으로 연결되며, 그리고 상기 키 확장 유닛의 데이터 변환 컴포넌트들중 마지막 데이터 변환 컴포넌트의 출력은 상기 키 확장 유닛의 데이터 등록 컴포넌트의 입력과 연결되며;
    상기 엔크립션 유닛의 데이터 등록 컴포넌트의 출력은 상기 엔크립션 유닛의 데이터 변환 컴포넌트들중 첫 번째 데이터 변환 컴포넌트의 입력과 연결되고, 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 모든 2개의 인접하는 데이터 변환 컴포넌트는 순차적으로 연결되며, 그리고 상기 엔크립션 유닛의 데이터 변환 컴포넌트들중 마지막 데이터 변환 컴포넌트의 출력은 상기 엔크립션 유닛의 데이터 등록 컴포넌트의 입력과 연결되며;
    상기 키 확장 유닛의 데이터 변환 컴포넌트들 각각의 서브-키 출력은 상기 엔크립션 유닛의 데이터 변환 컴포넌트들중 해당하는 데이터 변환 컴포넌트의 서브-키 입력과 연결되며;
    상기 키 확장 유닛의 데이터 등록 컴포넌트는 입력 외부 키 및 상기 키 확장 유닛의 데이터 변환 컴포넌트들중 마지막 데이터 변환 컴포넌트로부터 비롯되는 데이터를 등록하며;
    상기 키 확장 유닛의 데이터 변환 컴포넌트는 상기 키 확장 유닛의 데이터 등록 컴포넌트 내의 등록된 데이터를 수신하여 키를 서브-키들로 확장시키며, 얻어지는 상기 서브-키들은 상기 엔크립션 유닛의 해당하는 데이터 변환 컴포넌트에 입력되며;
    상기 엔크립션 유닛의 데이터 등록 컴포넌트는 입력 외부 데이터 및 상기 엔크립션 유닛의 데이터 변환 컴포넌트들중 마지막 데이터 변환 컴포넌트로부터 비롯되는 데이터를 등록하며; 그리고
    상기 엔크립션 유닛의 데이터 변환 컴포넌트는 상기 엔크립션 유닛의 데이터 등록 컴포넌트 내의 등록된 데이터를 수신하고, 수신된 데이터를 상기 키 확장 유닛의 해당하는 데이터 변환 컴포넌트로부터 비롯되는 서브-키들을 이용하여 엔크립트 및 변환하는 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스.
  2. 제 1 항에 있어서,
    상기 키 확장 유닛의 데이터 변환 컴포넌트들의 수는 1개 내지 32개이며, 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 수 역시 그에 대응하게 1개 내지 32개인 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스.
  3. 제 2 항에 있어서,
    상기 키 확장 유닛의 데이터 변환 컴포넌트들의 수는 1개, 2개 또는 4개이며, 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 수 역시 그에 대응하게 1개, 2개 또는 4개인 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스.
  4. 제 1 항에 있어서,
    상기 엔크립션 처리 디바이스는 적어도 하나의 서브-키 등록 컴포넌트를 포함하는 서브-키 등록 유닛을 더 포함하고, 상기 서브-키 등록 컴포넌트의 수는 상기 키 확장 유닛의 데이터 변환 컴포넌트들의 수와 동일하며, 그리고 상기 서브-키 등록 컴포넌트들은 상기 키 확장 유닛의 데이터 변환 컴포넌트들과 일대일로 연결되며;
    상기 키 확장 유닛의 데이터 변환 컴포넌트들 각각의 출력은 상기 서브-키 등록 컴포넌트들중 해당하는 서브-키 등록 컴포넌트의 입력과 연결되고, 상기 서브-키 등록 컴포넌트들 각각의 출력은 상기 엔크립션 유닛의 데이터 변환 컴포넌트들중 해당하는 데이터 변환 컴포넌트의 입력과 연결되며;
    상기 키 확장 유닛의 데이터 변환 컴포넌트는 상기 키 확장 유닛의 데이터 등록 컴포넌트 내의 등록된 데이터를 수신하여 키를 서브-키들로 확장시키며, 얻어지는 상기 서브-키들은 상기 서브-키 등록 컴포넌트의 입력에 입력되며;
    상기 서브-키 등록 컴포넌트는 상기 키 확장 유닛의 데이터 변환 컴포넌트로부터 비롯되는 상기 서브-키들을 등록하며; 그리고
    상기 엔크립션 유닛의 데이터 변환 컴포넌트는 상기 서브-키 등록 컴포넌트 내의 등록된 서브-키들을 수신하고, 상기 서브-키들을 이용하여, 상기 수신된 데이터에 대해 엔크립션 및 변환을 수행하는 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스.
  5. 제 4 항에 있어서,
    상기 키 확장 유닛의 데이터 변환 컴포넌트들의 수는 1개 내지 32개이고, 상기 서브-키 등록 컴포넌트들의 수 역시 그에 대응하게 1개 내지 32개이며, 그리고 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 수 역시 그에 대응하게 1개 내지 32개인 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스.
  6. 제 5 항에 있어서,
    상기 키 확장 유닛의 데이터 변환 컴포넌트들의 수는 1개, 2개 또는 4개이고, 상기 서브-키 등록 컴포넌트들의 수 역시 그에 대응하게 1개, 2개 또는 4개이며, 그리고 상기 엔크립션 유닛의 데이터 변환 컴포넌트들의 수 역시 그에 대응하게 1개, 2개 또는 4개인 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스.
  7. 제 4 항 내지 제 6 항 중의 어느 한 항에 있어서,
    상기 서브-키 등록 컴포넌트는 범용 플립 플롭(general flip flop) 또는 레지스터(register)인 것을 특징으로 하는 블록 암호 알고리즘에 기초하는 엔크립션 처리 디바이스.
KR1020107013607A 2007-11-19 2008-11-13 패킷 암호 알고리즘에 기반하는 엔크립션 처리 디바이스 KR101126776B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 西安西电捷通无线网络通信有限公司 一种基于分组密码算法的加密处理设备

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