KR100425956B1 - SEED Cipher and Decipher using on-the-fly pre-claculation schme of round key - Google Patents
SEED Cipher and Decipher using on-the-fly pre-claculation schme of round key Download PDFInfo
- Publication number
- KR100425956B1 KR100425956B1 KR10-2000-0041478A KR20000041478A KR100425956B1 KR 100425956 B1 KR100425956 B1 KR 100425956B1 KR 20000041478 A KR20000041478 A KR 20000041478A KR 100425956 B1 KR100425956 B1 KR 100425956B1
- Authority
- KR
- South Korea
- Prior art keywords
- round
- key
- round key
- encryption
- register
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
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
- 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
본 발명은 대칭형 암호 알고리즘인 SEED 암호 및 복호 알고리즘을 하드웨어로 구현하는 방법 및 장치에 관한 것으로서, 본 발명은 외부 입력 데이터와 마스터 키를 외부에서 제공받아 저장하는 128비트 입력 레지스터, 키 레지스터, 암호 및 복호 동작에 필요한 라운드 키를 온라인 사전 계산 방식으로 생성하는 라운드 키 생성부, 라운드 동작을 수행하는 라운드 처리부, 제어 신호를 발생시키는 제어부, 그리고 128 비트 출력 결과를 저장하는 출력 레지스터로 이루어져 있다.The present invention relates to a method and apparatus for implementing a symmetric encryption algorithm SEED encryption and decryption algorithm in hardware. The present invention relates to a 128-bit input register, key register, encryption and A round key generation unit for generating a round key required for the decoding operation by online precomputation, a round processing unit for performing a round operation, a control unit for generating a control signal, and an output register for storing a 128-bit output result.
본 발명은 라운드 키의 온라인 사전 계산, 라운드 키의 파이프라인 계산, 단일 라운드 동작을 3개의 대칭적인 부분 라운드로 분할 처리 및 암호·복호 동작 시 하드웨어 공유를 최대화시켜 하드웨어 양의 감소와 고속 동작을 구현할 수 있는 효과가 있다.According to the present invention, it is possible to reduce the amount of hardware and achieve high-speed operation by maximizing hardware sharing during encryption / decryption operations, by splitting a single round operation into three symmetric partial rounds, and performing online precomputation of a round key, pipeline calculation of a round key. It can be effective.
Description
본 발명은 동작 진행 중 라운드 키 계산 방식을 이용한 SEED 암호 및 복호 회로에 관한 것으로서, 전자 상거래, 스마트카드 및 네트웍 분야에 응용할 수 있도록 하드웨어 크기와 동작 속도 측면에서 효율적인 시드(SEED)회로를 제공코자 하는 것이다.더욱 상세히는 SEED 암호 알고리즘의 하드웨어 구현에 관한 것으로, 특히 SEED 암호 및 복호 알고리즘의 라운드 동작을 3개의 대칭적인 부분 라운드로 분할처리, 라운드 키의 파이프라인 처리, 그리고 암호 및 복호 동작 시 하드웨어 공유를 통해 하드웨어 양을 감소시키며, 동작 진행 중(on-the-fly) 라운드 키 계산 방식 과 라운드 키의 사전 계산 기법을 사용하여 동작 속도를 개선시킨 라운드 키의 온라인 사전 계산 방식을 사용한 SEED 암호 및 복호 회로에 관한 것이다.The present invention relates to a SEED encryption and decryption circuit using a round key calculation method during operation, and to provide an efficient seed circuit in terms of hardware size and operation speed for application in electronic commerce, smart card and network fields. More specifically, it relates to the hardware implementation of the SEED cryptographic algorithm, in particular splitting the round operation of the SEED encryption and decryption algorithm into three symmetric partial rounds, pipelined round keys, and sharing of hardware during cryptographic and decryption operations. SEED encryption and decryption using an on-the-fly round-key calculation scheme and an on-the-fly round-key on-line precomputation scheme that improves speed by using pre-computing techniques. It is about a circuit.
종래 방식의 SEED 암호 알고리즘의 하드웨어 구현 방식은 하나의 라운드 동작을 하나의 클록 사이클에 구현하며, 라운드 동작에 라운드 키 계산을 포함하므로, 하드웨어 공유가 불가능하여 많은 하드웨어가 필요하고, 동작 속도가 떨어지는결점이 있다.The hardware implementation of the conventional SEED cryptographic algorithm implements one round operation in one clock cycle, and includes round key calculations in the round operation, which makes it impossible to share hardware, which requires a lot of hardware and slows down the operation speed. There is this.
또한 다른 형태의 종래 방식의 경우, 라운드 키 계산에 따른 동작 속도 문제를 해결하기 위해, 암호 및 복호 동작을 시작하기 전에 16개의 라운드 키를 계산하는 기법을 사용한다. 이러한 기법의 경우 16개의 라운드 키를 유지하기 위해 16개의 64비트 레지스터가 별도로 필요하다는 결점이 있다.In addition, the other type of conventional method uses a technique of calculating 16 round keys before starting encryption and decryption operations to solve the operation speed problem caused by the round key calculation. This technique has the drawback of requiring 16 separate 64-bit registers to hold 16 round keys.
SEED 암호 알고리즘을 전자 상거래, 네트웍 및 스마트 카드 분야에 적용하기 위해, 하드웨어 양의 최소화와 함께 적절한 동작 속도 보장이 요구된다.In order to apply the SEED encryption algorithm to the field of electronic commerce, network and smart card, it is required to guarantee the proper operation speed while minimizing the amount of hardware.
이에 본 발명에서는 종래 방식의 많은 하드웨어 문제를 해결하기 위해, SEED 암호 및 복호 알고리즘의 하드웨어 구현 시 라운드 동작의 3개의 부분 라운드 처리, 라운드 키의 파이프라인 계산, 및 암호 및 복호 동작 시 동일 하드웨어 사용 등의 하드웨어 공유 극대화를 통해 하드웨어 양의 최소화가 가능하도록 한다. 그리고 종래 방식의 낮은 동작 속도 문제를 해결하기 위해, 암호 및 복호 동작에 필요한 라운드 키의 온라인 계산과 라운드 키 사전 계산 기법을 결합해서 사용하는 방식을 제시코자 하는 것이다.Accordingly, in the present invention, in order to solve many hardware problems of the conventional method, three partial round processing of the round operation in the hardware implementation of the SEED encryption and decryption algorithm, pipeline calculation of the round key, and use of the same hardware in the encryption and decryption operation, etc. Minimize the amount of hardware by maximizing hardware sharing. In order to solve the problem of low operation speed of the conventional method, the present invention proposes a method using a combination of the online calculation of the round key and the round key precomputation technique required for the encryption and decryption operation.
도 1은 본 발명의 전체 시스템의 구조를 나타내는 블록도1 is a block diagram showing the structure of the entire system of the present invention.
도 2는 SEED 암호 알고리즘의 하나의 라운드 동작을 3개의 부분 라운드로 구현하는 기법2 is a scheme for implementing one round operation of the SEED encryption algorithm into three partial rounds.
도 3은 라운드 키를 사전 계산하는 기법3 is a scheme for precomputing round keys.
도 4는 라운드 키를 3개의 클록을 사용한 파이프라인 계산 기법Figure 4 illustrates a pipeline calculation technique using three clocks with round keys.
도 5는 라운드 처리부 블록도5 is a round processing block diagram
도 6은 라운드 키 생성부 블록도6 is a block diagram of a round key generation unit
도 7은 복호 동작 라운드 키 생성 기법7 illustrates a decryption operation round key generation technique.
도 8은 제어 회로 블록도8 is a control circuit block diagram
■ 도면의 주요부분에 사용된 부호의 설명 ■■ Explanation of symbols used in main part of drawing ■
10 : 암호 및 복호 데이터를 저장하는 입력 레지스터10: input register to store password and decrypted data
11 : SEED 암호 및 복호 알고리즘의 하나의 라운드를 구현하는 라운드 처리부11: round processing unit for implementing one round of SEED encryption and decryption algorithm
12 : 암호 및 복호된 결과를 저장하는 출력 레지스터12: output register to store password and decrypted result
13 : 마스터 키 레지스터13: master key register
14 : 라운드 키 생성부14: round key generation unit
15 : 제어 신호를 발생하는 제어부15: control unit for generating a control signal
16 : 라운드 동작 입력의 상위 64 비트를 저장하는 L 레지스터16: L register to store the upper 64 bits of the round operation input
17 : 라운드 동작 입력의 하위 64 비트를 저장하는 R 레지스터17: R register to store the lower 64 bits of the round operation input
18 : 32 비트 exclusive-OR 회로18: 32 bit exclusive-OR circuit
19 : G 함수19: G function
20 : 32 비트 모듈라 덧셈기20: 32-bit Modular Adder
21 : 라운드 동작 결과의 상위 64 비트를 저장하는 L* 레지스터21: L * register to store the top 64 bits of the round operation result
22 : 라운드 동작 결과의 하위 64 비트를 저장하는 R* 레지스터22: R * register to store the lower 64 bits of the round operation result
23 : 라운드 키 계산을 위한 조정된 마스터 키 레지스터{D,C,B,A}23: Adjusted master key register for round key calculation {D, C, B, A}
24 : 32-비트 멀티프렉서 회로24: 32-bit multiplexer circuit
25 : 3 입력 캐리 보존 덧셈기25: 3 Input Carry Preservation Adder
26 : 파이프라인 레지스터26: pipeline register
29 : G 함수29: G function
30 : 라운드 키 레지스터30: round key register
31 : 32-비트 멀티프렉서31: 32-bit multiplexer
31 : 32-비트 exclusive-OR 회로31: 32-bit exclusive-OR circuit
32 : 32 비트 멀티프렉서32: 32-bit multiplexer
33 : G 함수33: G function
34 : 32 비트 모듈라 덧셈기34: 32-bit Modular Adder
35 : 라운드 동작의 중간 결과 저장 L 레지스터(L1, L0)35: Save intermediate result of round operation L register (L1, L0)
36 : 라운드 동작의 중간 결과 저장 T 레지스터(T1, T0)36: Save intermediate result of round operation T register (T1, T0)
37 : 라운드 동작의 중간 결과 저장 R 레지스터(R1, R0)37: Save intermediate result of round operation R register (R1, R0)
38 : 32-비트 멀티프렉서38: 32-bit multiplexer
39 : 복호시 초기 정렬 값을 선택하는 32 비트 멀티프렉서39: 32-bit multiplexer to select initial alignment value when decoding
40 : 2개의 32 비트 데이터를 받아서, 좌 또는 우측으로 순회 이동시키는 회로40: circuit that receives two 32-bit data and moves it left or right
41 : 3 입력 캐리 보존 덧셈기41: 3 Input Carry Preservation Adder
42 : 캐리 전달 덧셈기42: Carry Forward Adder
43 : 파이프라인 레지스터43: pipeline register
44 : G 함수44: G function
45 : 라운드 키 레지스터45: round key register
46 : 마스터 키의 순회 이동 값을 저장하는 조정된 마스터 키 레지스터46: Adjusted master key register to store the traversal movement value of the master key
48 : 1 비트 좌측 순회 이동회로48: 1 bit left circuit
49 : 1 비트 우측 순회 이동회로49: 1 bit right circuit
50 : 15 비트 좌측 순회 이동회로50: 15 bit left circuit
51 : 라운드 키 상수를 저장하는 키 상수 레지스터51: key constant register to store round key constants
52 : 유한 상태 기계52: Finite State Machine
53 : 제어신호를 생성하는 명령 디코더53: command decoder for generating a control signal
54 : 라운드 계수기54: round counter
55 : 키 계수기55: key counter
이하에서 상기 목적을 달성하기 위한 본 발명의 SEED 암호 및 복호 회로의 구성 및 작용에 대해서 첨부된 도면을 참고하여 상세히 설명한다.Hereinafter, the configuration and operation of the SEED encryption and decryption circuit of the present invention for achieving the above object will be described in detail with reference to the accompanying drawings.
도 1은 본 발명에 의한 SEED 암호 및 복호 회로에 대한 전체 블록 구성도이다.1 is an overall block diagram of a SEED encryption and decryption circuit according to the present invention.
도 1을 참조하여 설명하면, 전체 SEED 암호 및 복호 회로는 외부 데이터와 키를 저장하는 입력 레지스터(10)와 마스터 키 레지스터(13), 동작 모드와 시작 신호를 받아서 필요한 제어 신호를 생성하는 제어부(15), 암호 및 복호 동작에 필요한 라운드 키를 온라인과 사전 계산 기법으로 생성하는 라운드 키 생성부(14)와SEED 암호 알고리즘의 16번의 라운드 동작을 구현하는 라운드 처리부(11), 결과 값을 저장하는 출력 레지스터(12)로 구성된다.Referring to FIG. 1, the entire SEED encryption and decryption circuit includes an input register 10 and a master key register 13 for storing external data and a key, and a control unit for receiving an operation mode and a start signal to generate necessary control signals ( 15), a round key generation unit 14 for generating a round key for encryption and decryption operations online and a precomputation technique, and a round processing unit 11 for implementing 16 round operations of the SEED encryption algorithm, and storing result values. It consists of an output register 12.
도 2는 SEED 알고리즘의 하나의 라운드 동작을 3개의 부분 라운드로 분할하는 기법을 나타낸다. SEED 암호 및 복호 알고리즘은 도 2의 라운드 동작을 16번 반복하여 암호 또는 복호 결과를 생성한다. 단, 복호 동작의 경우 라운드 키의 적용순서가 반대이다.2 illustrates a technique of dividing one round operation of the SEED algorithm into three partial rounds. The SEED encryption and decryption algorithm repeats the round operation of FIG. 16 six times to generate an encryption or decryption result. However, in the case of the decoding operation, the application order of the round keys is reversed.
도 2를 참조하여 설명하면, 도 2를 기존 방식과 같이 하나의 클록으로 구현하는 경우, 각각 3쌍씩 존재하는 G함수(19)와 모듈로 32 비트 덧셈기(20)의 하드웨어 공유가 불가능하므로 많은 하드웨어가 필요하다.Referring to FIG. 2, in the case where FIG. 2 is implemented as a single clock as in the conventional method, since hardware sharing of the G function 19 and the modulo 32-bit adder 20, which exist in three pairs, is impossible, a lot of hardware is used. Is needed.
도 2에서 점선을 중심으로 3개의 부분으로 나눌 경우 각 부분 라운드(sub round)에서는 G함수(19)와 모듈로 32 비트 덧셈기(20)가 하나씩 존재한다. 따라서 본 발명에서는 점선에 따라 하나의 라운드 동작을 3개의 부분 라운드로 분할하고, 각 부분 라운드 동작을 하나의 클록으로 구현하는 방식을 사용한다.In FIG. 2, the G function 19 and the modulo 32-bit adder 20 exist one by one in each sub round. Accordingly, the present invention uses a method of dividing one round operation into three partial rounds according to a dotted line and implementing each partial round operation with one clock.
단, 3개의 부분 라운드의 하드웨어 유사성을 최대한 활용하기 위해서 부분 라운드 결과의 상위 32 비트와 하위 32 비트를 위치를 바꾸어 저장한다. 이렇게 하는 경우 도 2의 하나의 라운드 구현에 1쌍의 G함수와 모듈로 32 비트 덧셈기가 필요하므로 하드웨어가 기존 방식에 비해 약 1/3로 감소된다. 그리고 많은 계산시간이 소요되는 라운드 키 계산을 도 3과 같이 이전 라운드의 3개의 클록을 활용하여 온라인 기법으로 계산하는 방식을 사용한다.However, in order to maximize the hardware similarity of the three partial rounds, the upper 32 bits and the lower 32 bits of the partial round result are changed and stored. In this case, since one pair of G functions and a modulo 32-bit adder are required in one round implementation of FIG. 2, the hardware is reduced by about one third compared to the conventional method. In addition, as shown in FIG. 3, the round key calculation, which requires a lot of computation time, is calculated using an online technique using three clocks of the previous round.
도 4는 도 3의 라운드 키 사전 계산을 파이프라인 방식으로 구현하는 기법을나타낸다. 라운드 키를 종래 방식으로 계산하는 경우 2개의 G함수와 4개의 모듈로 32 비트 덧셈기가 필요하므로 많은 하드웨어 문제와 속도 문제가 생긴다.4 illustrates a technique for implementing the round key precomputation of FIG. 3 in a pipelined manner. The conventional round key calculation requires two G functions and four modules with a 32-bit adder, which creates many hardware and speed problems.
본 발명에서는 라운드 키의 사전 계산 기법에 따라 라운드 키 계산에 3개의 클록 사이클을 사용할 수 있다는 점을 활용하여 하드웨어 공유가 가능한 파이프라인 방식으로 라운드 키(Ki,0, Ki,1)를 계산한다. 라운드 동작의 첫 번째 클록 사이클에서는 캐리 보존 덧셈기(25)와 캐리 전달 덧셈기(26)를 사용하여, A+C-KC의 계산이 수행되어 파이프라인 레지스터(27)에 저장되며, 두 번째 클록 사이클에서는 파이프라인 단계 2에서는 파이프라인 레지스터값(A+C-KC)을 입력으로 사용한 G 함수(28) 계산을 통해 라운드 키 Ki,0 계산이 이루어지며, 파이프라인 단계 1에서는 B+KC-D의 계산이 이루어져 파이프라인 레지스터(27)에 저장된다. 마지막 세 번째 사이클에서는 파이프라인 단계 2에서 G 함수(28) 계산을 통해 라운드 키 Ki,1 계산이 이루어진다.According to the present invention, the round key (K i , 0, K i , 1) is calculated in a pipelined manner that allows hardware sharing by utilizing three clock cycles for round key calculation according to the round key precomputing technique. do. In the first clock cycle of the round operation, using the carry preservation adder 25 and the carry transfer adder 26, the calculation of A + C-KC is performed and stored in the pipeline register 27, in the second clock cycle. In pipeline stage 2, the round key Ki, 0 is calculated by calculating the G function 28 using the pipeline register value (A + C-KC) as input.In pipeline stage 1, B + KC-D is calculated. This is done and stored in the pipeline register 27. In the final third cycle, the round key Ki, 1 calculation is performed by calculating the G function 28 in pipeline stage 2.
이러한 라운드 키 계산 동작은 도 3에 보이는 바와 같이 라운드 동작 이전 라운드 시점에 수행되므로, 라운드 키 계산을 최악 동작 경로에서 배제할 수 있어서, 높은 동작 주파수 구현이 가능하다.Since the round key calculation operation is performed at the round point before the round operation as shown in FIG. 3, the round key calculation can be excluded from the worst operation path, thereby enabling high operating frequency.
그리고 파이프라인 단계 1에서 2개의 모듈로 32 비트 덧셈기를 사용하는 대신에 1개의 3입력 캐리 보존 덧셈기와 1개의 모듈로 32 비트 덧셈기를 사용함에 의해서 동작 속도가 약 2배 개선된다.In pipeline stage 1, instead of using two mod 32-bit adders, the speed of operation is approximately doubled by using one 3-input carry preservation adder and one mod 32-bit adder.
도 5는 도 2의 기법을 하드웨어로 구현한 라운드 처리부를 나타낸다. 도 5를 참조하여 설명하면, 부분 라운드 1에서는 도 1의 입력 레지스터에 연결된 입력 데이터값 또는 중간 라운드 값을 저장하고 있는 L(35)와 R(37) 레지스터 값을 입력 멀티프렉서(30)를 통해 선택한 후 32 비트 XOR 게이트(31)에서 라운드 키(Ki,0, Ki,1)와 결합한 후, G 함수(33)와 모듈로 32 비트 덧셈기(34)를 거쳐서, 중간 결과 레지스터(T1, T0)(36)에 저장된다. 부분 라운드 2에서는 중간 결과 레지스터값(T1, T0)(36) 값이 멀티프렉서(32)에 의해 선택되어, G 함수(33)와 모듈로 32 비트 덧셈기(34)를 거쳐서 다시 중간 결과 레지스터(T1, T0)(36)에 저장된다. 그리고 부분 라운드 3에서는 중간 결과 레지스터값(T1, T0)(36) 값이 멀티프렉서(32)에 의해 선택되어, G 함수(33)와 모듈로 32 비트 덧셈기(34)를 거친 후에 L 레지스터(35)와 XOR된 후 R레지스터(37)에 저장된다. 동시에 R 레지스터(R1, R0)(37)는 L 레지스터(L1, L0)(35)에 담긴다. 이러한 동작은 16번의 라운드 동안 반복되며, 16 라운드 동작 후에 L 레지스터(35)와 R 레지스터(37)의 값이 서로 위치가 바뀌어 도 1의 출력 레지스터(12)에 저장된다.FIG. 5 illustrates a round processor that implements the technique of FIG. 2 in hardware. Referring to FIG. 5, in the partial round 1, the Lx 35 and R37 register values storing the input data value or the intermediate round value connected to the input register of FIG. And then combine with the round keys (Ki, 0, Ki, 1) at the 32-bit XOR gate 31, then through the G function 33 and modulo 32-bit adder 34, the intermediate result registers T1, T0 36). In partial round 2, the intermediate result register values (T1, T0) 36 are selected by the multiplexer 32, again via the G function 33 and the modulo 32-bit adder 34, again to the intermediate result register ( T1, T0) (36). In the partial round 3, the intermediate result register values (T1, T0) 36 are selected by the multiplexer 32, and after passing through the G function 33 and the modulo 32-bit adder 34, the L register ( 35) and then stored in the R register 37. At the same time, the R registers R1 and R0 37 are contained in the L registers L1 and L0 35. This operation is repeated for sixteen rounds, and after the sixteenth round operation, the values of the L register 35 and the R register 37 are shifted from each other and stored in the output register 12 of FIG.
도 6은 도 4의 라운드 키 생성 기법을 채택한 온라인 암호 및 복호 라운드 키 생성회로이다. 단, 암호 및 복호 라운드 키 생성 동작 시 하드웨어 공유를 극대화시킨다. 암호 라운드 키 생성과 달리 복호 라운드 키 생성은 도 7의 방식으로 구현한다.6 is an online encryption and decryption round key generation circuit employing the round key generation scheme of FIG. However, it maximizes hardware sharing during encryption and decryption round key generation. Unlike the encryption round key generation, the decryption round key generation is implemented in the manner of FIG.
도 7을 참고하여 설명하면 복호 동작에 대한 라운드 키 생성은 암호 동작의 라운드 키 생성 방식과 3가지 측면에서 다르다.Referring to FIG. 7, the round key generation for the decryption operation is different in three aspects from the round key generation method of the encryption operation.
첫째, 복호 라운드 1에 대한 입력 값으로 마스터 키가 아닌 마스터 키의 변형값(55)을 사용한다.First, the modified value 55 of the master key rather than the master key is used as the input value for the decryption round 1.
둘째, 라운드 키의 생성에 사용되는 조정된 키 값{D, C, B, A} 결정에 사용되는 순회 이동 방향이 암호 동작과 반대이다.Second, the traversal direction of movement used to determine the adjusted key values {D, C, B, A} used to generate the round key is the opposite of the cryptographic operation.
셋째, 키 상수 발생 순서도 암호 동작의 라운드 키와 반대이다. 도 7의 복호 라운드 키 기법과 암호 라운드 키 생성 기법을 하드웨어로 구현한 도 6을 설명하면, 입력 멀티프렉서(38)는 마스터 키와 조정된 마스터 키 값{D, C, B, A}(46)을 선택하는 역할을 수행한다. 4개의 64 비트 좌우측 순회 이동기(40)는 암호 및 복호에 필요한 조정된 마스터 키를 생성하는 역할과 도 7의 복호 동작 초기 정렬 동작 값을 생성하는 역할을 수행한다. {B||A}(40)은 두 개의 32 비트 데이트를 연결하여 64비트 데이터를 만드는 동작을 나타낸다. 단 이러한 회로는 별도의 배럴 시프터를 사용하지 않고 고정배선으로 구현된다. 단 복호 동작 시 도 7에 보이는 바와 같이 첫 번째 라운드에 대한 라운드 키의 계산은 마스터 키가 아닌 마스터 키의 상위 64비트를 우측 순회이동(55)된 값을 필요로 하므로, 멀티프렉서(39)가 초기 정렬된 값을 선택한다. 복호시 키 상수 역시 암호 동작과 반대로 생성되어야 하므로, 이를 구현하기 위해 온라인 방식으로 키 상수(KC)를 생성하기 위해 1비트 좌측 또는 우측 순회 이동 회로(48, 49)를 사용한다.Third, the sequence of generating key constants is the reverse of the round key of the cryptographic operation. Referring to FIG. 6 in which the decryption round key scheme and the cryptographic round key generation scheme of FIG. 7 are implemented in hardware, the input multiplexer 38 includes a master key and adjusted master key values {D, C, B, A} ( 46) to select. Four 64-bit left and right traversing mobiles 40 serve to generate the adjusted master key required for encryption and decryption, and to generate the decryption operation initial alignment operation values of FIG. {B || A} (40) represents the operation of concatenating two 32-bit data to produce 64-bit data. However, this circuit is implemented by fixed wiring without using a separate barrel shifter. However, in the decoding operation, as shown in FIG. 7, since the round key calculation for the first round requires the value of the right shift 55 of the upper 64 bits of the master key, not the master key, the multiplexer 39 is used. Selects the initial sorted value. Since the key constant in decryption must also be generated as opposed to the cryptographic operation, one-bit left or right traversal mobile circuits 48 and 49 are used to generate the key constant (KC) in an online manner to implement this.
단, 복호시 초기 키 상수가 KC0가 아닌 KC15가 사용되므로 15비트 좌측 순회이동기(50)를 사용된다. 라운드 키 계산에 사용되는 온라인 방식으로 생성된 키 상수는 키 상수 레지스터(51)에 유지된다.However, since the initial key constant is not KC 0 but KC 15 is used for decoding, the 15-bit left traversal port 50 is used. The key constants generated in the online manner used for round key calculations are held in the key constant register 51.
도 8은 SEED 암호 및 복호 동작을 구현하기 위한 제어 회로에 대한 블록 구성도를 나타낸다. 라운드 키 계산이 정상적인 라운드 동작보다 한 라운드 이전에 이루어지므로 라운드 진행을 지시하는 2개의 계수기, 즉 라운드 계수기(54)와 키 계수기(55)가 사용된다. 유한 상태 기계(52)는 동작 모드와 시작 신호를 받아서, SEED 암호 및 복호 동작에 대한 상태 값을 결정한다. 유한상태가 생성하는 상태 값과 2개의 계수기 값을 사용하여, 명령 디코더(53)는 도 1의 라운드 처리부와 라운드 키 생성부에 필요한 제어 신호를 발생시킨다.8 shows a block diagram of a control circuit for implementing the SEED encryption and decryption operation. Since the round key calculation is made one round before the normal round operation, two counters indicating round progression, that is, round counter 54 and key counter 55, are used. The finite state machine 52 receives an operation mode and a start signal to determine state values for SEED encryption and decryption operations. Using the state value generated by the finite state and the two counter values, the command decoder 53 generates control signals necessary for the round processing section and the round key generation section in FIG.
이상에서 상세히 설명한 바와 같이 본 발명은 라운드 키의 온라인 및 사전 계산 기법을 통해, 라운드 키의 계산 동작을 SEED 암호 및 복호 동작의 최악 경로에서 배제시켜 종래 방식에 비해 2배 이상의 고속 동작이 가능하다.As described in detail above, the present invention enables the round key calculation operation to be twice as fast as the conventional method by excluding the calculation operation of the round key from the worst path of the SEED encryption and decryption operation.
또한 라운드 키의 파이프라인 처리와 1 라운드 동작을 3개의 부분 라운드로 분할 처리함에 의해서 하드웨어 공유가 가능함에 따라, 종래 방식에 비해 하드웨어 크기가 1/3 정도로 감소된다.In addition, since hardware sharing is possible by splitting the round key pipeline processing and the first round operation into three partial rounds, the hardware size is reduced by about one third compared to the conventional method.
그리고 마스터 키의 상위 64비트의 초기 정렬 처리, 암호 동작 시와 반대 방향의 조정된 마스터 키(D,C,B,A)순회 이동기법과, 온라인 키 상수 생성 기법을 통해, 암호 및 복호 동작 시 온라인 라운드 키 생성 하드웨어의 공유를 극대화시켰다.The initial 64 bits of the master key, the master key (D, C, B, A) traversal method in the opposite direction to the encryption operation, and the online key constant generation method, Maximized sharing of online round key generation hardware.
Claims (6)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2000-0041478A KR100425956B1 (en) | 2000-07-15 | 2000-07-15 | SEED Cipher and Decipher using on-the-fly pre-claculation schme of round key |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2000-0041478A KR100425956B1 (en) | 2000-07-15 | 2000-07-15 | SEED Cipher and Decipher using on-the-fly pre-claculation schme of round key |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20020007113A KR20020007113A (en) | 2002-01-26 |
| KR100425956B1 true KR100425956B1 (en) | 2004-04-03 |
Family
ID=19678854
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR10-2000-0041478A Expired - Fee Related KR100425956B1 (en) | 2000-07-15 | 2000-07-15 | SEED Cipher and Decipher using on-the-fly pre-claculation schme of round key |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR100425956B1 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3770584B2 (en) * | 2000-10-31 | 2006-04-26 | シャープ株式会社 | Encryption key generation circuit |
| KR100379122B1 (en) * | 2000-11-13 | 2003-04-08 | 엘지전자 주식회사 | Method for Creating Round Key in Giga Bit Ethernet Switch 128 Bit Block Encrypting Algorithm |
| KR20020071328A (en) * | 2001-03-06 | 2002-09-12 | 미션텔레콤 주식회사 | Hardware Architecture of the pipelined SEED |
| KR20020087331A (en) * | 2001-05-14 | 2002-11-22 | 최병윤 | AES Rijndael Encryption and Decryption Circuit with Subround-Level Pipeline Scheme |
| KR20030087893A (en) * | 2002-05-09 | 2003-11-15 | 최병윤 | Modular AES Rijndael Round Key Scheduler with On-the-Fly Computation Scheme of Round Key |
| KR100667189B1 (en) * | 2005-12-10 | 2007-01-12 | 한국전자통신연구원 | AES encryption device and method for mobile devices |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5740249A (en) * | 1996-04-09 | 1998-04-14 | Kabushiki Kaisha Toshiba | Encryption apparatus and method capable of controlling encryption process in accordance with an internal state |
| JPH10232606A (en) * | 1996-12-20 | 1998-09-02 | Toshiba Corp | Encryption method and decryption method, and encryption device and decryption device |
| KR19990002840A (en) * | 1997-06-23 | 1999-01-15 | 윤종용 | Fast Block Encryption Algorithm Guarantees Security against Differential and Linear Decryptions |
| KR19990048318A (en) * | 1997-12-09 | 1999-07-05 | 윤종용 | Fast block cipher algorithm |
| WO1999066669A2 (en) * | 1998-06-15 | 1999-12-23 | Rsa Security, Inc. | Block ciphers with integer multiplication, data-dependent and fixed number of rotations in each round |
| KR20000021130A (en) * | 1998-09-25 | 2000-04-15 | 김용만 | Symmetrical key block encryption algorithm |
| KR20020071328A (en) * | 2001-03-06 | 2002-09-12 | 미션텔레콤 주식회사 | Hardware Architecture of the pipelined SEED |
-
2000
- 2000-07-15 KR KR10-2000-0041478A patent/KR100425956B1/en not_active Expired - Fee Related
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5740249A (en) * | 1996-04-09 | 1998-04-14 | Kabushiki Kaisha Toshiba | Encryption apparatus and method capable of controlling encryption process in accordance with an internal state |
| JPH10232606A (en) * | 1996-12-20 | 1998-09-02 | Toshiba Corp | Encryption method and decryption method, and encryption device and decryption device |
| KR19990002840A (en) * | 1997-06-23 | 1999-01-15 | 윤종용 | Fast Block Encryption Algorithm Guarantees Security against Differential and Linear Decryptions |
| KR19990048318A (en) * | 1997-12-09 | 1999-07-05 | 윤종용 | Fast block cipher algorithm |
| WO1999066669A2 (en) * | 1998-06-15 | 1999-12-23 | Rsa Security, Inc. | Block ciphers with integer multiplication, data-dependent and fixed number of rotations in each round |
| KR20000021130A (en) * | 1998-09-25 | 2000-04-15 | 김용만 | Symmetrical key block encryption algorithm |
| KR20020071328A (en) * | 2001-03-06 | 2002-09-12 | 미션텔레콤 주식회사 | Hardware Architecture of the pipelined SEED |
Non-Patent Citations (1)
| Title |
|---|
| Area Efficient Implementation Of 128-Bit Block Cipher, SEED" Proceedings of ITC-CSCC 2000, 2000.07.11) * |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20020007113A (en) | 2002-01-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20120106731A1 (en) | Speeding up galois counter mode (gcm) computations | |
| AU5542099A (en) | Enhanced block ciphers with data-dependent rotations | |
| US7024560B2 (en) | Power-residue calculating unit using Montgomery algorithm | |
| KR20050078271A (en) | Hardware cryptographic engine and method improving power consumption and operation speed | |
| KR100425956B1 (en) | SEED Cipher and Decipher using on-the-fly pre-claculation schme of round key | |
| US6873707B1 (en) | Hardware-based encryption/decryption employing cycle stealing | |
| KR20050087271A (en) | Key schedule apparatus for generating an encryption round key and a decryption round key selectively corresponding to initial round key having variable key length | |
| Gilbert et al. | Decorrelated Fast Cipher: an AES Candidate | |
| KR100478974B1 (en) | Serial finite-field multiplier | |
| Trinca | Sequential and parallel cascaded convolutional encryption with local propagation: Toward future directions in symmetric cryptography | |
| US20040223609A1 (en) | Data encryption method | |
| KR20030051111A (en) | Round processing circuit and on-line round key generation circuit for the hardware implementation of AES Rijndael cipher algorithm | |
| KR20020087331A (en) | AES Rijndael Encryption and Decryption Circuit with Subround-Level Pipeline Scheme | |
| US20020172355A1 (en) | High-performance booth-encoded montgomery module | |
| US5999953A (en) | Method for the production of a parameter Jo associated with the implementation of a modular operation according to the Montgomery method | |
| Jansen et al. | Cascade jump controlled sequence generator and Pomaranch stream cipher | |
| RU2206961C2 (en) | Method for iterative block encryption of binary data | |
| KR100316025B1 (en) | Encryption and decryption device using data encryption standard algorithm | |
| KR100986226B1 (en) | Computing Device and Encryption / Decryption Device | |
| Mitsuyama et al. | VLSI implementation of high performance burst mode for 128-bit block ciphers | |
| RU2199826C2 (en) | Method for iterative encoding of digital data blocks | |
| RU2184423C2 (en) | Method for iterative block encryption of digital data | |
| KR20030087893A (en) | Modular AES Rijndael Round Key Scheduler with On-the-Fly Computation Scheme of Round Key | |
| Mitsuyama et al. | Burst mode: a new acceleration mode for 128-bit block ciphers | |
| JPS5843743B2 (en) | Encryption method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R13-asn-PN2301 St.27 status event code: A-3-3-R10-R11-asn-PN2301 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| FPAY | Annual fee payment |
Payment date: 20070221 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20080324 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20080324 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |