KR20020087331A - AES Rijndael Encryption and Decryption Circuit with Subround-Level Pipeline Scheme - Google Patents
AES Rijndael Encryption and Decryption Circuit with Subround-Level Pipeline Scheme Download PDFInfo
- Publication number
- KR20020087331A KR20020087331A KR1020010027870A KR20010027870A KR20020087331A KR 20020087331 A KR20020087331 A KR 20020087331A KR 1020010027870 A KR1020010027870 A KR 1020010027870A KR 20010027870 A KR20010027870 A KR 20010027870A KR 20020087331 A KR20020087331 A KR 20020087331A
- Authority
- KR
- South Korea
- Prior art keywords
- round
- key
- encryption
- circuit
- decryption
- 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.)
- Ceased
Links
- 238000000034 method Methods 0.000 claims abstract description 13
- 238000004364 calculation method Methods 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
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/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
Abstract
본 발명은 AES(Advanced Encryption Standard) 대칭형 암호 알고리즘인 Rijndael 암호 및 복호 알고리즘을 하드웨어로 구현하는 방법 및 장치에 관한 것으로서, 본 발명은 128비트 입력 레지스터, 256 비트 키 레지스터, 암호 및 복호 동작에 필요한 라운드 키를 생성하는 라운드 키 생성부, 라운드 동작을 수행하는 라운드 처리부, 제어 신호를 발생시키는 제어부, 그리고 128 비트 출력 결과를 저장하는 출력 레지스터와 복호 동작시 첫 번째 라운드에 대한 키를 갖는 256비트 복호용 키 레지스터로 이루어져 있다.The present invention relates to a method and apparatus for hardware implementation of Rijndael encryption and decryption algorithm, which is an Advanced Encryption Standard (AES) symmetric encryption algorithm, in which the present invention relates to a 128-bit input register, a 256-bit key register, and a round required for encryption and decryption operations. Round key generation unit for generating keys, round processing unit for performing round operations, control unit for generating control signals, and output registers for storing 128-bit output results, and for 256-bit decoding with keys for the first round during decoding operations. It consists of a key register.
본 발명은 라운드 키의 온라인 계산, 부분 라운드간 파이프라인 계산 기법과 다중 클록을 사용한 단일 라운드 동작 구현을 통해 자원 공유를 최대화시켜 하드웨어 양의 감소와 고속 동작을 구현할 수 있는 효과가 있다.The present invention has the effect of maximizing the resource sharing and realizing high-speed operation by maximizing resource sharing through the on-line calculation of the round key, the partial inter-round pipeline calculation technique, and the implementation of a single round operation using multiple clocks.
Description
본 발명은 인터넷 보안, 네트웍 보안 및 스마트카드 보안에 사용될 수 있도록 하드웨어 크기와 동작 속도 측면에서 뛰어난 특성을 갖는 AES Rijndael 암호 및 복호회로를 제공하는데 목적이 있다.An object of the present invention is to provide an AES Rijndael cipher and decryption circuit having excellent characteristics in terms of hardware size and operation speed so that it can be used for internet security, network security, and smart card security.
본 발명은 Rijndael 암호 알고리즘의 하드웨어 구현에 관한 것으로, 특히 Rijndael 암호 및 복호 알고리즘의 라운드 동작을 2개의 부분 라운드로 분할처리, 부분 라운드간 파이프라인 처리, 암호 및 복호 동작 시 하드웨어 공유, 온라인 라운드 키 계산 방식을 사용하여 하드웨어 양을 감소시키며, 동작 속도를 개선시킨 AES Rijndael 암호 및 복호 회로에 관한 것이다.The present invention relates to a hardware implementation of the Rijndael cryptographic algorithm, and in particular, splits the round operation of the Rijndael cryptographic and decryption algorithm into two partial rounds, inter-partial pipeline processing, hardware sharing during encryption and decryption operations, and online round key calculation. AES Rijndael cryptography and decryption circuit that reduces the amount of hardware using the scheme and improves the operation speed.
종래 방식의 Rijndael 암호 알고리즘의 하드웨어 구현 방식은 하나의 라운드 동작을 하나의 클록 사이클에 구현하므로, 하드웨어 공유가 불가능하여 많은 하드웨어가 필요하다는 결점이 있다. 또한 암호 및 복호 동작을 시작하기 전에 (Nr + 1)개의 라운드 키를 계산하는 미리 계산해두는 기법을 사용한다. 여기서 Nr은 라운드 수를 나타낸다. 이러한 기법의 경우 (Nr + 1) 개의 라운드 키를 유지하기 위해 (Nr +1) 개의 256비트 레지스터가 별도로 필요하다는 결점이 있다. 그리고 AES Rijndael 알고리즘은 3가지(128, 192, 256비트) 키를 사용하는 데, 종래 하드웨어는 하나의 키만 지원하는 하드웨어를 갖고 있기 때문에, 다른 크기의 키를 갖는 시스템을 사용하고자 하는 경우 별도의 회로가 필요하다.The hardware implementation of the conventional Rijndael cryptographic algorithm implements one round of operation in one clock cycle, so that hardware sharing is impossible and thus requires a lot of hardware. We also use a precomputation technique that calculates (Nr + 1) round keys before starting encryption and decryption operations. Where Nr represents the number of rounds. This technique has the drawback that separate (Nr + 1) 256-bit registers are needed to hold (Nr + 1) round keys. The AES Rijndael algorithm uses three (128, 192, and 256-bit) keys. Since the conventional hardware has hardware that supports only one key, a separate circuit is needed to use a system having a different size key. Is needed.
AES Rijndael 암호 알고리즘을 네트웍 및 전자 상거래 등 다양한 대칭키 응용 분야에 적용하려면, 하드웨어 양의 최소화와 높은 암·복호율이 필요하다. 본 발명에서는 종래 방식의 많은 하드웨어 문제를 해결하기 위해, 각 라운드 동작을각각 2 개 또는 4개의 클록이 할당되는 2개의 부분 라운드로 처리하는 기법과 라운드 키의 온라인 계산 기법을 통해 하드웨어 공유를 가능케 하였다. 또한 종래 방식의 낮은 동작 속도 문제를 해결하기 위해, 암호 및 복호 동작시 부분 라운드간 파이프라인 기법을 사용하여 높은 동작 속도와 높은 암·복호율이 가능하도록 하였다. 그리고 3가지 키를 하나의 회로에서 동시에 지원할 수 있도록 하여, 별도의 추가의 하드웨어 없이 키가 다른 다양한 응용 분야에 모두 적용할 수 있게 하였다.In order to apply AES Rijndael cryptographic algorithm to various symmetric key applications such as network and electronic commerce, it is necessary to minimize the amount of hardware and high encryption / decryption rate. In the present invention, in order to solve many hardware problems of the conventional method, hardware sharing is enabled through a method of processing each round operation into two partial rounds each of which two or four clocks are allocated and a round key online calculation technique. . In addition, in order to solve the problem of low operation speed of the conventional method, a high operation speed and a high encryption / decryption rate are enabled by using a partial round-round pipeline technique in the encryption and decryption operation. In addition, three keys can be simultaneously supported in one circuit, so that they can be applied to various applications with different keys without any additional hardware.
도 1은 본 발명의 전체 시스템의 구조를 나타내는 블록도1 is a block diagram showing the structure of the entire system of the present invention.
도 2는 Rijndael 암호 알고리즘의 하나의 라운드 동작을 2개의 부분 라운드로 나누고, 부분 라운드간 파이프라인을 구현하는 기법2 is a scheme of dividing one round operation of the Rijndael cryptographic algorithm into two partial rounds and implementing a partial inter-round pipeline.
도 3은 복호 동작시 온라인 라운드 키 계산을 단순화 시키는 Rijndael 복호 연산 기법3 is a Rijndael decoding algorithm for simplifying online round key calculation in a decoding operation.
도 4는 라운드 처리부 블록도4 is a round processing block diagram
도 5는 암호 및 복호 동작에 필요한 ShiftRow 연산와 InvShiftRow 연산을 구현하는 회로5 is a circuit for implementing the ShiftRow and InvShiftRow operations required for cryptographic and decryption operations.
도 6은 MixColumn과 InvMixComun연산을 수행하는GF((28)4) 곱셈기 구조6 is a GF ((2 8 ) 4 ) multiplier structure for performing MixColumn and InvMixComun operations
도 7은GF(28)곱셈을 수행하는 MUL(·)회로7 is a MUL (·) circuit for performing GF (2 8 ) multiplication.
도 8은 온라인 라운드 키 생성부의 블록도8 is a block diagram of an online round key generation unit
도 9는 키 스케줄러 회로9 is a key scheduler circuit
■ 도면의 주요부분에 사용된 부호의 설명 ■■ Explanation of symbols used in main part of drawing ■
10 : 암호 및 복호 데이터를 저장하는 입력 레지스터10: input register to store password and decrypted data
11 : Rijndael 암호 및 복호 알고리즘의 하나의 라운드를 구현하는 라운드 처리부11: round processing unit implementing one round of Rijndael cryptography and decryption algorithm
12 : 암호 및 복호된 결과를 저장하는 출력 레지스터12: output register to store password and decrypted result
13 : 128, 192, 256 비트 외부 키를 저장하는 마스터 키 레지스터13: master key register to store 128, 192, 256-bit foreign keys
14 : 라운드 키 생성부14: round key generation unit
15 : 제어 신호를 발생하는 제어부15: control unit for generating a control signal
16 : 복호 동작의 첫 번째 라운드 키를 저장하고 있는 복호용 키 레지스터16: Decoding key register that stores the first round key of the decoding operation.
17 : 암호 및 복호 동작시 시작 키 선택회로17: start key selection circuit for encryption and decryption operation
18 : 암호 및 복호 동작 시 외부 입력 데이터와 중간 라운드 결과를 선택하는 회로18: Circuit for selecting external input data and intermediate round result during encryption and decryption operation
19 : ByteSub와 InvByteSub 동작시 연산을 수행할 행을 선택하는 회로19: Circuit to select the row to be operated in ByteSub and InvByteSub operation
20 : ByteSub 동작을 4개의 클록으로 수행하기 위한 4개의 S 박스20: 4 S boxes to perform ByteSub operation with 4 clocks
21 : InvByteSub 동작을 4개의 클록으로 수행하기 위한 4개의 SI 박스21: Four SI Boxes for InvByteSub Operation with Four Clocks
22 : 암호 및 복호 동작시 ByteSub와 InvByteSub 결과를 선택하는 회로22: Circuit for selecting the result of ByteSub and InvByteSub in the operation of encryption and decryption
23 : 암호 및 복호 동작용 ShiftRow 회로23: ShiftRow circuit for encryption and decryption operation
24 : 부분 라운드 중간 결과 레지스터24: partial round intermediate result register
25 : 복호용 라운드 키 선택회로25: Round key selection circuit for decoding
26 : 암호 및 각호 동작시 MixColumn과 InvMixColumn 연산에 필요한 16 비트 상수를 발생하는 회로26: A circuit that generates 16-bit constants required for MixColumn and InvMixColumn operations during cipher and angle operations.
27 : MixColumn과 InvMixColumn 연산을 수행하는 4개의 GF_MUL회로27: Four GF_MUL Circuits Performing MixColumn and InvMixColumn Operations
28 : 암호용 라운드 키 선택회로28: round key selection circuit for encryption
29: 라운드 결과 레지스터29: Round Result Register
30 :GF((28)4) 곱셈을 수행하는 GF_MUL 회로30: GF_MUL circuit to perform GF ((2 8 ) 4 ) multiplication
31 :GF(28)곱셈을 수행하는 MUL(·)회로31: MUL (·) circuit which performs GF (2 8 ) multiplication
32 : 기약 다항식 m(x)=x8+x4+x3+x+1에 따라 4개의 다항식을 생성하는 인코더 회로32: Encoder circuit for generating four polynomials according to the contracted polynomial m (x) = x 8 + x 4 + x 3 + x + 1
33 : 라운드 키 생성동작시 중간 라운드키를 선택하는 중간 라운드 키 선택회로33: middle round key selection circuit for selecting the middle round key during the round key generation operation
34 : 키 스케줄러34: key scheduler
35 : 라운드 키 레지스터35: round key register
36 : 32 비트 Exclusive-OR 회로36: 32 bit Exclusive-OR circuit
37 : 6 입력 32 비트 멀티프렉서 회로37: 6 input 32 bit multiplexer circuit
38 : 1 바이트 좌측 순환 이동을 구현하는 회로38: Circuit implementing 1 byte left circular shift
39 : Rcon 생성부39: Rcon generation unit
이하에서는 상기의 목적을 달성하기 위한 AES Rijndael 암호 및 복호 회로의 구성 및 작용에 대해서 첨부된 도면을 참고하여 설명하고자 한다.Hereinafter, the configuration and operation of the AES Rijndael cipher and decryption circuit for achieving the above object will be described with reference to the accompanying drawings.
도 1은 본 발명에 의한 Rijndael 암호 및 복호 회로에 대한 전체 블록도이다.1 is a complete block diagram of a Rijndael cipher and decryption circuit according to the present invention.
도 1을 참조하여 설명하면, 전체 Rijndael 암호 및 복호 회로는 외부 데이터와 키를 저장하는 입력 레지스터(10)와 마스터 키 레지스터(13), 복호 동작시 첫 번째 라운드에 대한 키를 저장하는 복호용 키 레지스터(16), 동작 모드와 시작 신호를 받아서 필요한 제어 신호를 생성하는 제어부(15), 암호 및 복호 동작에 필요한 라운드 키를 온라인 계산 기법으로 생성하는 라운드 키 생성부(14)와 Nr 번의 라운드 동작을 구현하는 라운드 처리부(11), 결과 값을 저장하는 출력 레지스터(12)로 구성된다. 여기서 Nr는 라운드 수를 나타내며, 키 값이 128, 192, 또는 256값을 가질 때, Nr값은 각각 10, 12, 14를 갖는다.Referring to FIG. 1, the entire Rijndael cipher and decryption circuit includes an input register 10 and a master key register 13 which store external data and a key, and a decryption key which stores a key for the first round during a decryption operation. The register 16, the control unit 15 for receiving the operation mode and the start signal and generating the necessary control signal, the round key generation unit 14 for generating the round key required for the encryption and decryption operation by an online calculation technique, and the Nr round operation. The round processing unit 11 for implementing a, and an output register 12 for storing the result value. Where Nr represents the number of rounds, and when the key value has 128, 192, or 256 values, the Nr values have 10, 12, and 14, respectively.
Rijndael 암호 알고리즘은 하나의 라운드 동작이 ByteSub, ShiftRow,MixColumn, AddRoundKey(Add_RK) 동작으로 구성되는데, 도 2.(1)는 Rijndael 알고리즘의 하나의 라운드 동작을 2개의 부분 라운드로 분할하고, 각각의 부분 라운드는 하드웨어 공유를 위해 4 클록으로 구현하며, 동작 속도 개선을 위해 현재 라운드의 후반부 부분 라운드(부분 라운드 2)와 다음 라운드의 전반부 부분 라운드(부분 라운드 1)간에 파이프라인이 적용되는 기법을 나타낸다. 여기서 전반부 부분 라운드는 BytsSub와 ShiftRow동작을 구현하며, MixColumns과 AddRoundKey는 후반부 부분 라운드 동작을 구성한다. 단, 첫번째 라운드는 입력부에 AddRoundKey 동작이 추가되고, 마지막 라운드는 기존 라운드동작에 비해 MixColumn 동작이 없는 동작 특성을 갖는다. Rijndael 암호 및 복호 알고리즘은 도 2의 라운드 동작을 Nr번 반복하여 암호 또는 복호 결과를 생성한다. 단, 복호 동작의 경우 라운드 키의 적용 순서가 반대이다. 이러한 부분 라운드 분할 기법과 부분 라운드간 파이프라인 기법을 통해, 암호 동작에 필요한 사이클 수는 Nr × 5 클록이다. 그리고 각 라운드 동작에 라운드 키가 필요한 시점이 후반부 부분 라운드이므로, 전반부 4 클록 동안 온라인 방식으로 해당 라운드의 라운드 키를 생성할 수 있다. 그리고 도 2.(2)는 위의 방식을 확장한 기법으로 부분 라운드를 2 클록으로 구현하는 구조로, S 박스, SI 박스, GF_MUL회로가 각각 8개씩 필요하며, 암호 및 복호 동작에 소요되는 클록 수는 Nr × 3이 된다.The Rijndael cryptographic algorithm consists of one round operation consisting of ByteSub, ShiftRow, MixColumn, and AddRoundKey (Add_RK) operations. Rounds are implemented with four clocks for hardware sharing and represent a technique where the pipeline is applied between the second half of the current round (partial round 2) and the first half of the next round (partial round 1) to improve operation speed. Here, the first half round implements BytsSub and ShiftRow actions, and the MixColumns and AddRoundKey constitute second half round actions. However, the first round has an AddRoundKey action added to the input part, and the last round has an operation characteristic without MixColumn action compared to the existing round action. The Rijndael encryption and decryption algorithm repeats the round operation of FIG. 2 times Nr 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. With this partial round splitting scheme and the partial round-round pipelined scheme, the number of cycles required for cryptographic operations is Nr × 5 clocks. Since the round key is required for each round operation in the second half of the round, the round key of the corresponding round can be generated online for the first four clocks. 2. (2) is an extension of the above scheme, which implements a partial round with two clocks, each of which requires eight S box, SI box, and GF_MUL circuits, and clocks for encryption and decryption operations. The number becomes Nr × 3.
도 3은 Rijndael 알고리즘에 대한 복호 동작에 대한 연산기법을 나타낸다. 하드웨어공유와 복호 동작의 라운드 키 생성을 단순화시키기 위해, 암호 동작과 정반대의 연산순서를 따르지 않고 InvByteSub와 InvShiftRow 연산만 순서를 바꾸는기법을 사용하였다. 여기서 InvByteSub의 Inv라는 첨자는 암호시 필요한 ByteSub동작의 역연산을 나타낸다.3 shows an operation technique for the decoding operation for the Rijndael algorithm. In order to simplify the round key generation of hardware sharing and decryption operations, we use only the InvByteSub and InvShiftRow operations to reverse the order of the encryption operation. Here, the Inv subscript of InvByteSub indicates the inverse operation of the ByteSub operation required for encryption.
도 4는 도 2.(1)와 도3의 방식에 따라 암·복호 동작의 라운드 동작을 구현하는 라운드 처리부를 나타낸다. 단, 입력값 128 비트는 열 우선 방식으로 2차원 형태의 바이트배열로 표현되어 처리된다. 도 2.(1)를 참조하여 설명하면, 기존 방식과 같이 각 라운드를 하나의 클록으로 구현하는 경우, 각각 S 박스(20), SI 박스(21), ShiftRow회로(23), GF_MUL회로(27)의 크기가 4 배 증가한다. 반면 도 4의 경우 4 클록으로 부분 라운드동작을 수행하므로, 암·복호 동작의 하드웨어 공유와 순차적인 중간 결과 선택을 위한 선택회로가 필요하다. 그리고 부분 라운드간 파이프라인 처리를 위해 부분 라운드중간 결과 레지스터(24)가 96 비트 레지스터와 128 비트 레지스터가 쌍으로 된 구조를 갖고 있다. S-박스(20)와 SI 박스(21)는 ByteSub와 InvByteSub를 구현하는 28× 8-비트 Look-Up Table형태의 ROM으로 구성된다.4 shows a round processing unit that implements a round operation of an encryption / decryption operation according to the schemes of FIGS. However, the 128-bit input value is represented and processed as a two-dimensional byte array in a column-first manner. Referring to FIG. 2. (1), in the case of implementing each round with one clock as in the conventional method, the S box 20, the SI box 21, the ShiftRow circuit 23, and the GF_MUL circuit 27 are respectively. ) Increases the size 4 times. On the other hand, in FIG. 4, since the partial round operation is performed at 4 clocks, a selection circuit for hardware sharing of the encryption / decoding operation and sequential intermediate result selection is required. In addition, the partial round middle result register 24 has a structure in which a 96 bit register and a 128 bit register are paired for the partial round pipeline processing. The S-box 20 and the SI box 21 are constituted by ROM of 2 8 x 8-bit Look-Up Table type which implements ByteSub and InvByteSub.
도 5는 암호 와 복호 동작시 ShiftRow와 InvShiftRow 동작을 구현하며, 선택된 행데이터에 대해 정해진 바이트 크기의 왼쪽 방향의 순환 회전 이동 동작을 수행하는 회로이다. 암호 동작시 순차적으로 선택된 행에 대해 0,1,2,3 바이트 크기의 왼쪽 순환 이동 동작을 하며, 복호 동작시에는 순차적으로 선택된 행에 대해 0,3,2,1 바이트 크기의 왼쪽 순환 이동 동작을 수행한다.5 is a circuit that implements the ShiftRow and InvShiftRow operations during encryption and decryption operations, and performs a cyclic rotation movement operation of the left direction of a predetermined byte size for the selected row data. In the encryption operation, the left circular movement of 0,1,2,3 bytes is performed for the sequentially selected rows. In the decryption operation, the left circular movement of 0,3,2,1 bytes are sequentially performed for the sequentially selected rows. Do this.
도 6는 MixColumn와 InvMixColumn 동작을 수행하는 역할을 수행하며, 갈로아체(Galois Field)GF((28)4) 곱셈 연산을 수행하는 4개의 GF_MUL 회로로 구성되어 있다. GF MUL(30) 회로는 내부적으로 4개의 GF(28)곱셈기, MUL(·) (31)와 3개의 8 비트 XOR 회로로 구성된다. 단, 다음 라운드의 전반부 부분 라운드와 파이프라인 동작을 수행할 수 있게 하기 위해, 열 단위가 아닌 행 단위의 출력이 필요하므로, 4개의 GF MUL 회로를 사용하여, 부분 라운드 중간 결과의 열(column) 값과 암·복호용 상수 발생기에서 생성된 16 비트 상수 값을 입력으로 하여, 부분 라운드의 동작 시점을 지시하는 카운터 값에 따라 순차적으로 다음 라운드에 필요한 중간 결과 값을 행 단위로 생성한다.6 performs a role of performing the MixColumn and InvMixColumn operation, consists of a Galois field (Galois Field) GF ((2 8) 4) 4 of GF_MUL circuit which performs a multiplication operation. The GF MUL 30 circuit is internally composed of four GF (2 8 ) multipliers, a MUL (·) 31 and three 8 bit XOR circuits. However, in order to be able to perform the first half of the next round and the pipeline operation, the output of the unit is not the column, so the column of the middle part of the round is used using four GF MUL circuits. The value and the 16-bit constant value generated by the encryption / decoding constant generator are input, and the intermediate result values required for the next round are sequentially generated in units of rows according to the counter value indicating the operation time of the partial round.
도 7은 GF(28)곱셈기 MUL(·) (31) 회로의 내부 구조를 나타낸다. 도 7에서 encoder(32)는 기약 다항식 m(x)=x8+x4+x3+x+1에 따라 입력값 a(x)에 대한 a(x), a(x)x, a(x)x2, a(x)x3을 계산한다.Fig. 7 shows the internal structure of the GF (2 8 ) multiplier MUL (·) 31 circuit. In FIG. 7, the encoder 32 is a (x), a (x) x, a () for the input value a (x) according to the contract polynomial m (x) = x 8 + x 4 + x 3 + x + 1. Calculate x) x 2 , a (x) x 3 .
도 8은 온라인 방식으로 라운드 키를 생성하는 회로에 대한 블록도를 나타낸다. 단, 암호 동작 시에는 외부에서 주어지는 128/192/256비트의 마스터 키를 받아서 각 라운드에 대한 라운드 키를 온라인 방식으로 계산이 가능하지만, 복호 동작시에는 외부에서 주어지는 마스터 키에서 복호 동작에 필요한 시작 라운드 키를 직접적으로 도출할수 없기 때문에 복호 동작의 경우 반드시 마스터 키를 입력으로 하는 온라인 라운드 키 생성 동작을 수행하여, 암호 동작의 마지막 라운드 키를 미리 계산하여, 복호용 키레지스터(16)에 저장해두는 사전 처리 동작이 한번 필요하다.Rijndael 알고리즘은 128, 192, 256 비트의 3가지 라운드 키를 지원하므로, 라운드 키 계산 과정에 키 크기에 따라 128, 192, 256 비트의 라운드 키를 생성하도록 하였다. 그러나 각 라운드에 실제로 필요한 라운드 키 크기는 128 비트이므로, 상위 128비트만 선택해서 라운드 처리부에 제공하는 구조를 갖는다. 도 9의 키 스케줄러는 암·복호 동작 모드와 마스터 키 크기에 따라 시작 라운드 키 또는 중간 라운드 키를 사용하여, 256 비트의 다음 단계의 라운드 키를 생성한다. 단, 도 2에 따라 라운드 키 생성에 4 클록이 할당될 수 있으므로, 순차적인 계산이 가능하지만, 라운드 키 계산은 직렬 연산 특성을 갖고 있기 때문에, 순차적인 계산을 사용할 경우 키 스케줄러가 암·복호 회로의 최악 지연 경로가 될 수 있다. 따라서 이러한 문제를 제거하기 위해 할당된 4 클록에 256 비트의 중간 라운드 키를 생성하는 조합논리 회로 구조를 갖도록 하였다. 이러한 구조에서는 내부에 4개의 S 박스와 Rcon 생성회로(39)가 포함된다. Rcon 생성 회로는 현재 라운드 값, 키 크기 및 모드 정보에 따라, 적절한 32 비트 Rcon 상수값을 생성하는 회로이다. 제어부는 부분 라운드간 파이프라인 특성을 제어하기 위해 유한 상태 기계와 2개의 계수기(키 계수기, 라운드 계수기)로 구성된다. 외부에서 동작모드, 키 크기 정보, 시작 신호를 입력받아서, 라운드 처리부 와 라운드 키 생성부에 대한 적절한 제어 신호를 생성한다.8 shows a block diagram of a circuit for generating a round key in an online manner. However, during encryption operation, it is possible to calculate the round key for each round online by receiving the 128/192/256 bits of the externally provided master key.However, during the decryption operation, the start required for the decryption operation is performed from the externally provided master key. Since the round key cannot be directly derived, in the case of the decryption operation, the online round key generation operation must be performed by inputting the master key, and the final round key of the encryption operation is calculated in advance and stored in the decryption key register 16. The pre-processing operation is required once. The Rijndael algorithm supports three round keys of 128, 192, and 256 bits. Therefore, the round key calculation process generates 128, 192, and 256 bit round keys according to the key size. However, since the round key size actually required for each round is 128 bits, only the upper 128 bits are selected and provided to the round processor. The key scheduler of Fig. 9 generates the next round key of 256 bits by using the start round key or the middle round key according to the encryption / decryption operation mode and the master key size. However, since four clocks can be allocated to the round key generation according to FIG. 2, the sequential calculation is possible. However, since the round key calculation has the serial arithmetic characteristic, when the sequential calculation is used, the key scheduler uses the encryption / decoding circuit. Can be the worst-case delay path. Therefore, to eliminate this problem, we have a combinatorial logic circuit that generates a 256-bit intermediate round key at four clocks. In this structure, four S boxes and Rcon generating circuits 39 are included therein. The Rcon generation circuit is a circuit for generating an appropriate 32 bit Rcon constant value according to the current round value, key size and mode information. The control unit consists of a finite state machine and two counters (key counter and round counter) to control the partial round-to-round pipeline characteristics. By receiving the operation mode, key size information, and start signal from the outside, appropriate control signals for the round processor and the round key generator are generated.
이상에 설명한 바와 같이 본 발명은 도 2.(1) 방식을 사용할 경우 라운드 키의 온라인 계산 라운드 동작의 부분 라운드 처리, 그리고 부분 라운드간 파이프라인 처리를 통해, 1개의 라운드 처리에 1개의 클록을 할당하는 종래의 방식에 비해필요한 하드웨어 크기가 약 1/4로 감소한다. 부분 라운드를 2클록으로 구현하는 도 2.(2) 방식의 경우 부분 라운드간 파이프라인 특성과 높은 동작 주파수로 약 1/2의 하드웨어로, 종래 방식보다 보다 암·복호율을 갖는다. 또한 라운드 키의 온라인 계산 특성으로 라운드 키를 저장하는 메모리를 제거할 수 있다. 또한 라운드 키 생성회로는 키 크기에 따라 128, 192, 256 비트의 마스터 키에 대한 라운드 키를 생성할 수 있기 때문에, 동일 하드웨어로 3가지 마스터 키를 사용하는 분야에 응용이 가능하다. 또한 동일 하드웨어에 암호 및 복호 기능을 할 수 있도록 하는 최대의 하드웨어 공유 특성을 갖는다. 그리고 라운드 키 계산에 2 또는 4 클록을 할당함에 따라, 라운드 키 계산이 최악 지연 전달 경로가 되는 문제를 제거할 수 있다.As described above, the present invention allocates one clock to one round processing through the partial round processing of the online calculation round operation of the round key and the partial inter-round pipeline processing when using the method of FIG. Compared to the conventional method, the required hardware size is reduced to about one quarter. In the case of FIG. In addition, the on-line computing nature of the round key eliminates the memory that stores the round key. In addition, since the round key generation circuit can generate a round key for a master key of 128, 192, and 256 bits according to the key size, the round key generation circuit can be applied to the field using three master keys with the same hardware. It also has the maximum hardware sharing feature that allows encryption and decryption functions on the same hardware. By allocating 2 or 4 clocks to the round key calculation, the problem of round key calculation becoming the worst delay propagation path can be eliminated.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010027870A KR20020087331A (en) | 2001-05-14 | 2001-05-14 | AES Rijndael Encryption and Decryption Circuit with Subround-Level Pipeline Scheme |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010027870A KR20020087331A (en) | 2001-05-14 | 2001-05-14 | AES Rijndael Encryption and Decryption Circuit with Subround-Level Pipeline Scheme |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20020087331A true KR20020087331A (en) | 2002-11-22 |
Family
ID=27705808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020010027870A Ceased KR20020087331A (en) | 2001-05-14 | 2001-05-14 | AES Rijndael Encryption and Decryption Circuit with Subround-Level Pipeline Scheme |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20020087331A (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030051111A (en) * | 2001-12-18 | 2003-06-25 | 신경욱 | Round processing circuit and on-line round key generation circuit for the hardware implementation of AES Rijndael cipher algorithm |
KR100440074B1 (en) * | 2002-10-28 | 2004-07-14 | 주식회사 하이닉스반도체 | Apparatus for generating key in algorithm of data encryption standard |
KR20050053379A (en) * | 2003-12-01 | 2005-06-08 | 삼성전자주식회사 | Apparatus and method for performing AES Rijndael Algorithm |
KR100668664B1 (en) * | 2005-11-22 | 2007-01-12 | 한국전자통신연구원 | Encryption / decryption apparatus and method using AES linedal block algorithm |
KR100800468B1 (en) * | 2004-01-29 | 2008-02-01 | 삼성전자주식회사 | Hardware encryption / decryption device and method for low power high speed operation |
KR100960113B1 (en) * | 2008-09-19 | 2010-05-27 | 한국전자통신연구원 | High speed processing Aria encryption / decryption device |
KR101068367B1 (en) * | 2008-02-27 | 2011-09-28 | 인텔 코오퍼레이션 | Method and apparatus for optimizing AES encryption and decryption in parallel operation mode |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199162B1 (en) * | 1997-09-17 | 2001-03-06 | Frank C. Luyster | Block cipher method |
KR20010102684A (en) * | 2000-05-04 | 2001-11-16 | 오길록 | Apparatus of encryption for round key generating and encryption processing |
KR20020007113A (en) * | 2000-07-15 | 2002-01-26 | 최병윤 | A circuit of seed code & multiple code using a on-line dictionary calculating system for the round key |
KR20020071328A (en) * | 2001-03-06 | 2002-09-12 | 미션텔레콤 주식회사 | Hardware Architecture of the pipelined SEED |
-
2001
- 2001-05-14 KR KR1020010027870A patent/KR20020087331A/en not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199162B1 (en) * | 1997-09-17 | 2001-03-06 | Frank C. Luyster | Block cipher method |
KR20010102684A (en) * | 2000-05-04 | 2001-11-16 | 오길록 | Apparatus of encryption for round key generating and encryption processing |
KR20020007113A (en) * | 2000-07-15 | 2002-01-26 | 최병윤 | A circuit of seed code & multiple code using a on-line dictionary calculating system for the round key |
KR20020071328A (en) * | 2001-03-06 | 2002-09-12 | 미션텔레콤 주식회사 | Hardware Architecture of the pipelined SEED |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030051111A (en) * | 2001-12-18 | 2003-06-25 | 신경욱 | Round processing circuit and on-line round key generation circuit for the hardware implementation of AES Rijndael cipher algorithm |
KR100440074B1 (en) * | 2002-10-28 | 2004-07-14 | 주식회사 하이닉스반도체 | Apparatus for generating key in algorithm of data encryption standard |
KR20050053379A (en) * | 2003-12-01 | 2005-06-08 | 삼성전자주식회사 | Apparatus and method for performing AES Rijndael Algorithm |
KR100800468B1 (en) * | 2004-01-29 | 2008-02-01 | 삼성전자주식회사 | Hardware encryption / decryption device and method for low power high speed operation |
KR100668664B1 (en) * | 2005-11-22 | 2007-01-12 | 한국전자통신연구원 | Encryption / decryption apparatus and method using AES linedal block algorithm |
KR101068367B1 (en) * | 2008-02-27 | 2011-09-28 | 인텔 코오퍼레이션 | Method and apparatus for optimizing AES encryption and decryption in parallel operation mode |
KR100960113B1 (en) * | 2008-09-19 | 2010-05-27 | 한국전자통신연구원 | High speed processing Aria encryption / decryption device |
US8509428B2 (en) | 2008-09-19 | 2013-08-13 | Electronics And Telecommunications Research Institute | High-speed pipelined ARIA encryption apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7508937B2 (en) | Programmable data encryption engine for advanced encryption standard algorithm | |
US7532721B2 (en) | Implementation of a switch-box using a subfield method | |
US11546135B2 (en) | Key sequence generation for cryptographic operations | |
AU4105801A (en) | Block encryption device using auxiliary conversion | |
JP4460772B2 (en) | Synchronous stream cipher | |
WO2006121149A1 (en) | Pseudo random number generation system, encryption system, and decryption system | |
KR100377172B1 (en) | Key Scheduller of encryption device using data encryption standard algorithm | |
US6914984B2 (en) | Encryption apparatus using data encryption standard algorithm | |
KR20050078271A (en) | Hardware cryptographic engine and method improving power consumption and operation speed | |
JP2002032018A (en) | Ciphering device using standard algorithm for ciphering data | |
RU2141729C1 (en) | Method for encrypting of binary data units | |
US6931127B2 (en) | Encryption device using data encryption standard algorithm | |
JP4098719B2 (en) | Programmable data encryption engine for AES algorithm | |
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 | |
KR20020087331A (en) | AES Rijndael Encryption and Decryption Circuit with Subround-Level Pipeline Scheme | |
JP2005513541A6 (en) | Programmable data encryption engine for AES algorithm | |
RU2188513C2 (en) | Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks | |
KR100425956B1 (en) | SEED Cipher and Decipher using on-the-fly pre-claculation schme of round key | |
Zigiotto et al. | A low-cost FPGA implementation of the Advanced Encryption Standard algorithm | |
KR100494560B1 (en) | Real time block data encryption/decryption processor using Rijndael block cipher and method therefor | |
RU2738321C1 (en) | Cryptographic transformation method and device for its implementation | |
JPH1152850A (en) | Cryptographic conversion method and device | |
RU2206961C2 (en) | Method for iterative block encryption of binary data | |
RU2140716C1 (en) | Method for cryptographic conversion of digital data blocks | |
KR20030087893A (en) | Modular AES Rijndael Round Key Scheduler with On-the-Fly Computation Scheme of Round Key |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20010514 |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20030813 Patent event code: PE09021S01D |
|
E601 | Decision to refuse application | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20031205 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20030813 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |