+

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 PDF

Info

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
Application number
KR10-2000-0041478A
Other languages
Korean (ko)
Other versions
KR20020007113A (en
Inventor
서정욱
최병윤
Original Assignee
(주)시큐어피아
최병윤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)시큐어피아, 최병윤 filed Critical (주)시큐어피아
Priority to KR10-2000-0041478A priority Critical patent/KR100425956B1/en
Publication of KR20020007113A publication Critical patent/KR20020007113A/en
Application granted granted Critical
Publication of KR100425956B1 publication Critical patent/KR100425956B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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

본 발명은 대칭형 암호 알고리즘인 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 Cipher and Decipher using on-the-fly pre-claculation schme of round key}SEED Cipher and Decipher using on-the-fly pre-claculation schme of round key}

본 발명은 동작 진행 중 라운드 키 계산 방식을 이용한 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)

SEED의 라운드 키 생성 연산(Ki,0= G(A+B-KC), Ki,l=G(B+KC-B)을 1개의 캐리보존 덧셈기와 1개의 32 비트 모듈로 덧셈기로 구성된 3-오퍼랜드 덧셈을 구현하는 파이프라인 단계 1과, G 블록으로 된 파이프라인 단계 2를 파이프라인 시켜 3 클록에 동작 진행 중(on-the-fly) 기법으로 이전 라운드에 라운드 키를 생성하는 동작 진행 중 라운드 키 계산 방식을 이용한 SEED 암호 및 복호 회로.SEED's round key generation operation (K i, 0 = G (A + B-KC), K i, l = G (B + KC-B) consists of one carry preservation adder and one 32-bit modular adder Pipeline Phase 1, which implements 3-Operland addition, and Pipeline Phase 2, which consists of G blocks, to generate a round key for the previous round with an on-the-fly technique at 3 clocks. SEED encryption and decryption circuit using heavy round key calculation. 제 1 항에 있어서;The method of claim 1; 상기 마스터 키의 상위 64비트의 초기 우측 순회 이동과 조정된 마스터 키(D, C, B, A)의 암호 제어와 반대 방향의 순회 이동을 통한 도 7의 복호 라운드 키 생성회로를 특징으로 하는 동작 진행 중 라운드 키 계산 방식을 이용한 SEED 암호 및 복호 회로.A decoded round key generation circuit of FIG. 7 through initial right traversal of the upper 64 bits of the master key, cryptographic control of the adjusted master key (D, C, B, A) and traversal in the opposite direction SEED encryption and decryption circuit using ongoing round key calculation. 삭제delete 삭제delete 삭제delete 삭제delete
KR10-2000-0041478A 2000-07-15 2000-07-15 SEED Cipher and Decipher using on-the-fly pre-claculation schme of round key Expired - Fee Related KR100425956B1 (en)

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)

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

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

Patent Citations (7)

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

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

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载