KR20020071328A - 파이프라인 구조를 이용한 시드의 하드웨어 구조 - Google Patents
파이프라인 구조를 이용한 시드의 하드웨어 구조 Download PDFInfo
- Publication number
- KR20020071328A KR20020071328A KR1020010011437A KR20010011437A KR20020071328A KR 20020071328 A KR20020071328 A KR 20020071328A KR 1020010011437 A KR1020010011437 A KR 1020010011437A KR 20010011437 A KR20010011437 A KR 20010011437A KR 20020071328 A KR20020071328 A KR 20020071328A
- Authority
- KR
- South Korea
- Prior art keywords
- encryption
- mode
- block
- stage
- round
- Prior art date
Links
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
- 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/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Multi Processors (AREA)
- Storage Device Security (AREA)
Abstract
본 특허는 국내표준 128 비트 블록 암호 알고리즘인 SEED의 하드웨어 구조에 관한 것으로, 데이터를 고속으로 암호 처리할 수 있도록 ECB 모드의 암복호화와 CBC 모드의 복호화 시 파이프라인 구조를 사용하는 것이다.
본 특허의 SEED 하드웨어 구조는 [도 2]와 같이 key mixing 블록과 J3 함수 블록, J1 함수 블록, J2 함수 블록으로 1 라운드를 3 단계로 나누어, 파이프라인 구조를 사용하지 못하는 CBC 모드의 암호화를 제외한 ECB 모드의 암복호화와 CBC 모드의 복호화 시에는 이를 파이프라인 시킨다. 이 경우 파이프라인 구조를 사용하지 않았을 때 보다 약 3 배정도 성능이 향상된다.
Description
본 발명은 SEED 암호 알고리즘을 지원하는 암호처리 하드웨어의 설계 및 구현에 관한 기술로, 종래 방식의 SEED 암호 알고리즘의 하드웨어 구현 방식은 1 라운드만을 구현하여 반복하도록 설계 시 1 라운드를 1 클럭으로 처리하며, 파이프라인 구조를 사용하지 않고, 모드에 따라 파이프라인 구조를 선택할 수 있게 하지 않아 암호 처리속도가 떨어지는 단점이 있다.
SEED 암호 알고리즘을 침입 탐지시스템, 전자상거래에서의 보안성 강화 등에 적용하기 위해서는 고속 암호처리가 가능해야 한다. 본 발명에서는 SEED 암호 알고리즘의 1 라운드를 3개의 서브 믈록으로 나누어 3 클럭으로 처리하여 ECB 모드의 암복호화와 CBC 모드의 복호화 시에는 라운드 처리 블록을 파이프라인 구조로 사용하고, CBC 모드의 암호화시에는 파이프라인 구조를 사용하지 않도록 모드에 따라 파이프라인 구조를 선택적으로 사용할 수 있게 하여 고속 암호처리가 가능한 SEED 암호 알고리즘의 하드웨어 구조를 제시한다.
도 1은 파이프라인 구조를 사용하기 위해 3 단계(stage 1 + stage 4, stage 2 , stage 3 or stage 1 + stage 2, stage 3 , stage 4)로 나눈 SEED의 1 라운드 구조.
도 2는 본 특허에 제안한 SEED engine의 전체 구조.
도 3은 파이프라인 구조를 사용한 경우(ECB 모드의 암복호화와 CBC 모드의 복호화)의 타이밍도.
도 4는 파이프라인 구조를 사용하지 않은 경우(CBC 모드의 암호화)의 타이밍도.
본 특허에서 고속으로 데이터를 암호 처리할 수 있도록 제안한 SEED의 하드웨어 구조는 [도 2]과 같다. 이 구조는 크게 암호화 처리 블록과 컨트롤 블록의 두 부분으로 나뉘어 진다. 암호화 처리 블록은 1 라운드를 key mixing 블록, J1 함수 블록, J2 함수 블록, J3 함수 블록의 네 부분으로 나누어 구현하였고, 이를 라운드 수만큼 반복 수행함으로써 데이터를 암호화한다. key mixing 블록은 [도 1]의 stage 1 부분으로 64 비트 라운드 키와 평문의 xor 연산으로 이루어져 있다. J1, J2, J3 함수 블록은 각각 [도 1]의 stage 2, stage 3, stage 4 부분으로 SS-box를 이용하여 구현한 G 함수 블록과 32 비트 모듈로 덧셈기로 이루어져 있고, J3 함수 블록은 여기에 xor연산이 추가된다. 컨트롤 블록은 암호화 처리 블록의 동작을 제어하기 위한 카운터와 간단한 state machine으로 이루어져 있다.
본 특허에서 제안한 SEED engine은 블록 암호의 운영 모드중 ECB 모드와 CBC 모드를 지원하도록 설계하였다. 모드에 따라 파이프라인 구조를 사용하는 경우와 파이프라인 구조를 사용하지 않는 경우의 두 가지로 나뉘어진다. ECB 모드로 암복호화 시에는 고속의 데이터 처리를 위해 암호화 블록을 J1 함수 블록, J2 함수 블록, key mixing 블록을 포함한 J3 함수 블록의 3 개의 단계로 나누고, 이를 파이프라인을 시켜 동시에 평문 3 개씩 암호 처리할 수 있도록 하였고, 3 클럭에 1 라운드가 수행되도록 하였다. 라운드를 3 단계로 나눌 때 위와 다르게 key mixing 블록을 포함한 J1 함수 블록, J2 함수 블록, J3 함수 블록의 3 개의 단계로 나눌 수도 있다. 1 라운드에 SS-box를 사용하는 G 함수가 3 번 수행되는데, 파이프라인 구조를 사용하면 G 함수 블록 1 개로 공유하여 사용할 수 없으므로 메모리의 사용이 3 배로 늘어나게 된다. CBC 모드로 암호화 시에는 평문에 이전의 암호문을 xor 연산을 한 데이터를 암호화 블록의 입력으로 사용하므로, ECB 모드처럼 파이프라인 구조를 사용할 수 없다. 이로 인해 성능이 1/3 정도로 감소한다. 그러나 CBC 모드로 복호화 시에는 암호문을 복호화한 결과와 이전의 암호문을 xor 연산을 하여 평문을 생성하므로, ECB 모드처럼 파이프라인 구조를 사용할 수 있다.
먼저 파이프라인 구조를 사용하는 ECB 모드로 암호화 시 전체 타이밍도는 [도 3]과 같다. 먼저 start 신호가 1 이 되면 로드된 레지스터0의 첫 번째 128 비트 평문은 멀티플랙서를 통과하고 key mixing 블록을 수행한 후 레지스터1에 저장된다. 다음 클럭에서 첫 번째 평문은 J1 함수 블록을 수행한 후 레지스터2에 저장되고, 두 번째 평문은 전 클럭에서의 첫 번째 평문처럼 멀티플랙서를 통과하고 key mixing블록을 수행한 후 레지스터1에 저장된다. 그리고 다음 클럭에서는 첫 번째 평문은 J2 함수 블록을 수행한 후 레지스터3에 저장되고, 두 번째 평문은 J1 함수 블록을 수행한 후 레지스터2에 저장되고, 마지막 세 번째 평문은 다른 평문들과 마찬가지로 멀티플랙서를 통과하고 key mixing 블록을 수행한 후 레지스터1에 저장된다. 다음 클럭부터 멀티플랙서는 로드되어 입력되는 레지스터0의 평문이 아닌 J3 함수 블록을 수행하고 귀환되어 오는 데이터를 통과시키며, 3 개의 평문은 각각 다음 함수 블록들을 수행한다. 이렇게 3 개의 평문이 1 라운드만을 구현한 암호화 처리 블록을 각각 16 번씩 반복 수행하여 암호문을 생성한다. 16 라운드를 수행하고 나면 ready 신호를 1 로 하여 암호화 과정을 마쳤음을 알려주고, 이때 생성된 암호문을 레지스터4에 저장한다.. 그러므로 파이프라인 구조를 사용하면 3 개의 평문이 동시에 암호화 과정을 수행하게 된다. 그리고 3 개의 평문이 암호화 과정을 거쳐 암호문이 생성된 후 다음 3 개의 평문이 위의 과정처럼 암호화 과정을 수행하게 된다.
파이프라인 구조를 사용하지 않는 CBC 모드의 암호화 시에는 [도 4]와 같이 하나의 평문을 로드해서 이를 16 번 반복 수행하여 암호문을 생성한 후, 다음 평문을 암호화하게 된다.
본 특허는 ECB 모드의 암복호화와 CBC 모드의 복호화시 1 라운드를 3 단계로 나누어 파이프라인 시킴으로써 파이프라인 구조를 이용하지 않았을 때 보다 약 3 배정도 성능이 향상되므로, 고속으로 데이터를 암호 처리해야 할 경우에 유리하다.
Claims (3)
- G 함수의 SS-box(또는 S-box)를 동기식 메모리(ROM)로 사용할 수 있도록 1 라운드를 [도 1]의 stage 1 + stage 4, stage 2, stage 3의 3 개의 서브 블록으로 나누어 3 클럭으로 처리한 라운드 처리 블록의 구조. SEED에 대한 특허인 [1]에서는 본 특허와 달리 1 라운드를 [도 1]의 stage 1 + stage 2, stage 3, stage 4의 3 개의 부분 라운드로 나누어 구현하였다.
- ECB 모드의 암복호화와 CBC 모드의 복호화 시 3 개의 서브 블록으로 나눈 라운드 처리 블록을 파이프라인 시킨 구조. [1]에서는 라운드 키 생성 시 파이프라인 구조를 사용하였지만 키는 매 블록마다 바뀌는 것이 아니므로 데이터의 암호 처리 속도를 높이는데 큰 영향을 끼치지 못한다. 그러나 본 특허는 라운드 처리 블록에서 파이프라인 구조를 사용하므로 파이프라인 구조를 사용하지 않았을 때 보다 데이터의 암호 처리 속도가 약 3 배정도 향상된다.
- ECB 모드의 암복호화와 CBC 모드의 복호화 시에는 파이프라인 구조로 사용할 수 있고, CBC 모드의 암호화 시에는 파이프라인 구조를 사용할 수 없으므로 모드와 암복호화에 따라 파이프라인 구조를 선택하여 사용할 수 있도록 한 구조.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010011437A KR20020071328A (ko) | 2001-03-06 | 2001-03-06 | 파이프라인 구조를 이용한 시드의 하드웨어 구조 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010011437A KR20020071328A (ko) | 2001-03-06 | 2001-03-06 | 파이프라인 구조를 이용한 시드의 하드웨어 구조 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20020071328A true KR20020071328A (ko) | 2002-09-12 |
Family
ID=27696496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020010011437A KR20020071328A (ko) | 2001-03-06 | 2001-03-06 | 파이프라인 구조를 이용한 시드의 하드웨어 구조 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20020071328A (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020087331A (ko) * | 2001-05-14 | 2002-11-22 | 최병윤 | 부분 라운드간 파이프라인 기법을 이용한 AES Rijndael암호 및 복호 회로 |
KR100425956B1 (ko) * | 2000-07-15 | 2004-04-03 | (주)시큐어피아 | 동작 진행 중 라운드 키 계산 방식을 이용한 seed 암호 및 복호 회로 |
KR100528890B1 (ko) * | 2002-06-26 | 2005-11-22 | 한국전자통신연구원 | 다양한 인터페이스를 갖는 고속 블럭 암호 장치 및 그구동 방법 |
KR100960113B1 (ko) * | 2008-09-19 | 2010-05-27 | 한국전자통신연구원 | 고속처리 가능한 아리아 암복호화 장치 |
US8229111B2 (en) | 2005-02-22 | 2012-07-24 | Samsung Electronics Co., Ltd. | Security circuit using at least two finite state machine units and methods using the same |
WO2016142330A1 (en) | 2015-03-06 | 2016-09-15 | Danmarks Tekniske Universitet | A method for accelerating pipelined cryptographic implementations |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5377134A (en) * | 1992-12-29 | 1994-12-27 | International Business Machines Corporation | Leading constant eliminator for extended precision in pipelined division |
JPH1063183A (ja) * | 1996-05-14 | 1998-03-06 | Korea Electron Telecommun | ディジタル放送のための加入者制限受信用デ−タ暗号化方法 |
EP1001582A2 (en) * | 1998-11-13 | 2000-05-17 | Tektronix, Inc. | System for network transcoding of multimedia data flow |
US6185679B1 (en) * | 1998-02-23 | 2001-02-06 | International Business Machines Corporation | Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks |
KR20020007113A (ko) * | 2000-07-15 | 2002-01-26 | 최병윤 | 라운드 키의 온라인 사전 계산 방식을 사용한 seed암호 및 복호 회로 |
-
2001
- 2001-03-06 KR KR1020010011437A patent/KR20020071328A/ko not_active Application Discontinuation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5377134A (en) * | 1992-12-29 | 1994-12-27 | International Business Machines Corporation | Leading constant eliminator for extended precision in pipelined division |
JPH1063183A (ja) * | 1996-05-14 | 1998-03-06 | Korea Electron Telecommun | ディジタル放送のための加入者制限受信用デ−タ暗号化方法 |
US6185679B1 (en) * | 1998-02-23 | 2001-02-06 | International Business Machines Corporation | Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks |
EP1001582A2 (en) * | 1998-11-13 | 2000-05-17 | Tektronix, Inc. | System for network transcoding of multimedia data flow |
KR20020007113A (ko) * | 2000-07-15 | 2002-01-26 | 최병윤 | 라운드 키의 온라인 사전 계산 방식을 사용한 seed암호 및 복호 회로 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100425956B1 (ko) * | 2000-07-15 | 2004-04-03 | (주)시큐어피아 | 동작 진행 중 라운드 키 계산 방식을 이용한 seed 암호 및 복호 회로 |
KR20020087331A (ko) * | 2001-05-14 | 2002-11-22 | 최병윤 | 부분 라운드간 파이프라인 기법을 이용한 AES Rijndael암호 및 복호 회로 |
KR100528890B1 (ko) * | 2002-06-26 | 2005-11-22 | 한국전자통신연구원 | 다양한 인터페이스를 갖는 고속 블럭 암호 장치 및 그구동 방법 |
US8229111B2 (en) | 2005-02-22 | 2012-07-24 | Samsung Electronics Co., Ltd. | Security circuit using at least two finite state machine units and methods using the same |
KR100960113B1 (ko) * | 2008-09-19 | 2010-05-27 | 한국전자통신연구원 | 고속처리 가능한 아리아 암복호화 장치 |
US8509428B2 (en) | 2008-09-19 | 2013-08-13 | Electronics And Telecommunications Research Institute | High-speed pipelined ARIA encryption apparatus |
WO2016142330A1 (en) | 2015-03-06 | 2016-09-15 | Danmarks Tekniske Universitet | A method for accelerating pipelined cryptographic implementations |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gueron | Intel’s new AES instructions for enhanced performance and security | |
US7697681B2 (en) | Parallelizable integrity-aware encryption technique | |
JP3566311B2 (ja) | 疑似ランダム非線形シーケンス発生装置に基づいたブロック暗号装置 | |
US7295671B2 (en) | Advanced encryption standard (AES) hardware cryptographic engine | |
EP3145113B1 (en) | Flexible architecture and instruction for advanced encryption standard (aes) | |
US8094816B2 (en) | System and method for stream/block cipher with internal random states | |
EP1955473A1 (en) | Mutli-lane high-speed encryption and decryption | |
US20030068036A1 (en) | Method and circuit for data encryption/decryption | |
JP3824121B2 (ja) | 暗号データの復号化処理方法および装置 | |
Gilbert et al. | Decorrelated Fast Cipher: an AES Candidate | |
Lee et al. | Processor accelerator for AES | |
WO2012053882A1 (en) | A method for encrypting and decrypting data and a system therefor | |
KR20020071328A (ko) | 파이프라인 구조를 이용한 시드의 하드웨어 구조 | |
TW200524360A (en) | Method for implementing advanced encryption standards by a very long instruction word architecture processor | |
US20240097880A1 (en) | High-speed circuit combining aes and sm4 encryption and decryption | |
KR100546777B1 (ko) | Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리 방법, 이에 적합한 f함수 처리기 | |
KR100316025B1 (ko) | 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치 | |
Mitsuyama et al. | VLSI implementation of high performance burst mode for 128-bit block ciphers | |
KR20180021473A (ko) | 암호화 장치 | |
KR20030087893A (ko) | 라운드 키의 온라인 계산 기능을 갖는 모듈화 구조의 AESRijndael 라운드 키 생성 회로 | |
CN118157843A (zh) | 就地执行认证解密优化的aes-gcm引擎 | |
JP2004038103A (ja) | 暗号回路 | |
Mitsuyama et al. | Burst mode: a new acceleration mode for 128-bit block ciphers | |
JP2003216024A (ja) | 暗号回路 | |
Mitsuyama et al. | VLSI architecture of burst mode acceleration for 128-bit block ciphers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |