KR100667189B1 - Apparatus for aes encryption in mobile device and method thereby - Google Patents

Apparatus for aes encryption in mobile device and method thereby Download PDF

Info

Publication number
KR100667189B1
KR100667189B1 KR1020050121328A KR20050121328A KR100667189B1 KR 100667189 B1 KR100667189 B1 KR 100667189B1 KR 1020050121328 A KR1020050121328 A KR 1020050121328A KR 20050121328 A KR20050121328 A KR 20050121328A KR 100667189 B1 KR100667189 B1 KR 100667189B1
Authority
KR
South Korea
Prior art keywords
key
block
round
data
encryption
Prior art date
Application number
KR1020050121328A
Other languages
Korean (ko)
Inventor
오정훈
문영진
김현재
Original Assignee
한국전자통신연구원
삼성전자주식회사
하나로텔레콤 주식회사
에스케이 텔레콤주식회사
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원, 삼성전자주식회사, 하나로텔레콤 주식회사, 에스케이 텔레콤주식회사, 주식회사 케이티 filed Critical 한국전자통신연구원
Priority to KR1020050121328A priority Critical patent/KR100667189B1/en
Application granted granted Critical
Publication of KR100667189B1 publication Critical patent/KR100667189B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/04Masking or blinding
    • H04L2209/043Masking or blinding of tables, e.g. lookup, substitution or mapping
    • 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

Abstract

An apparatus and a method for AES(Advanced Encryption Standard) encryption in a mobile device are provided to reduce power consumption and enhance a degree of integration by simplifying a composition of hardware. An integrated block(320) performs an operation by using a look-up table. A shift row block(420) moves rows of a data matrix outputted from the integrated block. A mix column block(430) changes linearly the data processed by the shift row block. A first MUX(440) receives selectively the data to be transmitted to the shift row block, the mix column block, or a data input unit. A key management unit(470) receives selectively a round key and shifts the stored round key to the integrated block. A second MUX(310) transfers selectively the encryption data or the round key to the integrated block. A round key processing block(450) receives selectively the data and the round key from the first MUX and the key management unit and performs an encryption key operation.

Description

휴대 기기를 위한 AES 암호화 장치 및 방법{Apparatus for AES Encryption in Mobile Device and Method thereby}Apparatus for AES Encryption in Mobile Device and Method

도 1은 종래 사용되는 AES 암호화 알고리즘을 설명하기 위한 하드웨어 구성도,1 is a hardware configuration diagram illustrating a conventionally used AES encryption algorithm;

도 2a 및 도 2b는 종래 AES 암호화 장치의 서브바이트 블록의 기능을 설명하기 위한 테이블,2a and 2b is a table for explaining the function of the subbyte block of the conventional AES encryption device,

도 3은 본 발명의 실시예에 따라 각각 구성된 서브바이트 블록과 키 관리부의 서브워드 블록을 통합 구성하는 방법을 간략하게 도시한 도면, 3 is a diagram schematically illustrating a method of integrating a subbyte block and a subword block of a key management unit respectively configured according to an embodiment of the present invention;

도 4는 본 발명의 실시예에 따른 AES 암호화 장치의 하드웨어 구성도,4 is a hardware configuration diagram of an AES encryption device according to an embodiment of the present invention;

도 5는 본 발명의 실시예에 따른 통합 블록을 상세하게 나타낸 회로도,5 is a circuit diagram illustrating in detail an integrated block according to an embodiment of the present invention;

도 6은 본 발명의 실시예에 따른 AES 암호화 장치의 초기 라운드 처리 과정을 설명하기 위한 도면,6 is a diagram illustrating an initial round processing procedure of an AES encryption apparatus according to an embodiment of the present invention;

도 7은 본 발명의 실시예에 따른 AES 암호화 장치의 반복 라운드 처리 과정을 설명하기 위한 도면,7 is a diagram for describing a repetitive round processing process of an AES encryption device according to an embodiment of the present invention;

도 8은 본 발명의 실시예에 따른 AES 암호화 장치의 마지막 라운드 처리 과정을 설명하기 위한 도면,8 is a view for explaining the last round processing of the AES encryption apparatus according to an embodiment of the present invention;

도 9는 본 발명의 실시예에 따른 AES 암호화를 위해 사용되는 타이밍을 나타 낸 도면이다.9 is a diagram illustrating timing used for AES encryption according to an embodiment of the present invention.

본 발명은 휴대 기기를 위한 AES(Advanced Encryption Standard) 암호화 장치 및 방법에 관한 것이다. 더욱 상세하게는, 종래의 AES 암호화 장치의 암호화 성능을 유지하면서 하드웨어 용량을 줄여서 소형, 저전력 휴대 기기에 쉽게 적용시킬 수 있는 AES 암호화 장치 및 방법에 관한 것이다.The present invention relates to an AES (Advanced Encryption Standard) encryption apparatus and method for a portable device. More specifically, the present invention relates to an AES encryption device and method that can be easily applied to a small, low power portable device by reducing hardware capacity while maintaining the encryption performance of a conventional AES encryption device.

인터넷 및 이동통신망을 이용한 전자 결재 등이 활발해지면서, 개인 정보의 보안이 매우 중요시 여겨지고 있다. 이에 따라 개인 정보 보안을 위한 암호화 및 복호화 과정이 요구되고 있으며, 56 비트를 이용한 암호화 방식인 DES(Data Encryption Standard)가 사용되고 있다. As electronic payments using the Internet and mobile communication networks become active, security of personal information is considered to be very important. Accordingly, encryption and decryption processes are required for security of personal information, and DES (Data Encryption Standard), which is an encryption method using 56 bits, is used.

그러나, 인터넷 및 이동통신망의 기술 발전에 따라 개인 정보 유출 등의 불순한 목적을 위한 해킹 기술도 함께 발달하게 되어, 56 비트를 사용하는 DES 방식의 안전성이 위협받고 있다. 이에 따라, 보다 보안성이 향상된 암호화 알고리즘이 요구되어, 128 비트 이상의 키를 사용하는 AES 블록 알고리즘이 제시되었다.However, with the technological development of the Internet and mobile communication networks, hacking techniques for impure purposes such as personal information leakage have also developed, which threatens the safety of the DES method using 56 bits. Accordingly, a more secure encryption algorithm is required, and an AES block algorithm using a key of 128 bits or more has been proposed.

도 1은 종래 사용되는 AES 암호화 알고리즘을 설명하기 위한 하드웨어 구성도이다.1 is a hardware configuration diagram illustrating a conventionally used AES encryption algorithm.

AES 암호화 알고리즘은 초기 라운드 처리부(110), 반복 라운드 처리부(120) 및 마지막 라운드 처리부(130)로 구성된다.The AES encryption algorithm is composed of an initial round processing unit 110, a repetitive round processing unit 120 and the last round processing unit 130.

초기 라운드 처리부(110)는 암호화를 위한 라운드키의 처리 작업을 위한 라운드키 처리(AddRoundKey) 블록으로 구성되며, 반복 라운드 처리부(120)는 각 바이트 상에서 대치 연산을 수행하기 위한 서브바이트(SubBytes) 블록(122), AES의 각 데이터 구성 요소의 행렬에서, 행을 이동시키는 쉬프트로우(ShiftRows) 블록(124), 쉬프트로우 블록(124)에 의해 이동된 행렬의 추가 선형 변환을 수행하는 믹스컬럼(MixColums) 블록(126) 및 라운드키 처리(AddRoundKey) 블록(128)을 포함한다. 그리고, 마지막 라운드 처리부(130)는 서브바이트 블록, 쉬프트로우 블록 및 라운드키 처리 블록을 포함한다. The initial round processing unit 110 is composed of a round key processing (AddRoundKey) block for the operation of processing the round key for encryption, and the repetitive round processing unit 120 is a subbyte block for performing a substitution operation on each byte. (122), in the matrix of each data component of the AES, a ShiftRows block 124 for shifting rows, and a MixColumn for performing additional linear transformation of the matrix shifted by the shiftrow block 124. Block 126 and round key processing (AddRoundKey) block 128. The last round processor 130 includes a subbyte block, a shift row block, and a round key processing block.

여기서, 초기 라운드 처리부(110), 반복 라운드 처리부(120) 및 마지막 라운드 처리부(130)에 각각 포함되는 라운드키 처리 블록은 키 관리부(140)로부터 암호화 라운드키(Round KEY)를 전달받아 암호화를 위한 키 작업을 수행한다.Here, the round key processing block included in each of the initial round processing unit 110, the repetitive round processing unit 120, and the last round processing unit 130 receives an encryption round key from the key management unit 140 for encryption. Perform key operations.

키 관리부(140)는 각 다수의 키 생성 블록(142)으로 구성되어 있으며, 키 생성 블록(142)은 입력되는 워드(Word)를 이동(Shift)시키는 순환워드(RotWord) 블록(144), 입력 워드와 대응하는 위치의 바이트에 룩-업 테이블(S-box) 적용하여 출력 워드로써 치환시키는 서브워드(SubWord) 블록(146), 라운드 상수 처리하는 Rcon 블록(148) 및 다수의 XOR 논리 회로로 구성되어 있다.The key manager 140 includes a plurality of key generation blocks 142, and the key generation block 142 includes a rotation word block 144 for shifting an input word. A subword block 146 for applying a look-up table (S-box) to the byte at the position corresponding to the word and replacing it as an output word, an Rcon block 148 for round constant processing, and a plurality of XOR logic circuits. Consists of.

이렇게 구성되는 AES 암호화 알고리즘에 암호화 작업이 수행될 평문이 입력되면, 초기 라운드 처리부(110), 반복 라운드 처리부(120) 및 마지막 라운드 처리부(130)의 암호화 알고리즘을 통과하여 암호문으로 출력된다.When a plain text to be encrypted is input to the AES encryption algorithm configured as described above, the plain text to be encrypted is passed through the encryption algorithms of the initial round processing unit 110, the repetitive round processing unit 120, and the last round processing unit 130.

이와 같이 구성되는 이와 같은 암호화 알고리즘에서 서브바이트 블록(122)의 대치 연산 기능을 수행하기 위하여 도 2a 및 도 2b와 같은 테이블을 사용한다.In this encryption algorithm configured as described above, a table as shown in FIGS. 2A and 2B is used to perform a substitution operation of the subbyte block 122.

도 2a 및 도 2b는 종래 AES 암호화 장치의 서브바이트 블록의 기능을 설명하기 위한 테이블이다.2A and 2B are tables for explaining the functions of the subbyte blocks of the conventional AES encryption apparatus.

서브바이트 블록(122)은 도 2a와 같이 입력된 비트들을 4×4 바이트 형태로 배열한 다음, 각 바이트를 상위 4 비트(x)와 하위 4 비트(y)로 나누어 도 2b의 룩-업 테이블을 이용하여 값을 치환한다. 예를 들어, 2행 2열의 값이 16진수로 '0x63(= x:6 y:3)'이면, 룩-업 테이블을 기초로 '0xFB'로 치환된다. 이와 같은 방법으로 서브바이트 블록(122)에 128 비트가 입력되면 룩-업 테이블을 이용하여 치환된 128 비트의 데이터가 출력되고, 이 때 사용되는 룩-업 테이블은 256×8 비트의 롬(ROM)으로 구현된다.The subbyte block 122 arranges the input bits in the form of 4 × 4 bytes as shown in FIG. 2A, and then divides each byte into upper 4 bits (x) and lower 4 bits (y), and the look-up table of FIG. 2B. Substitute a value using. For example, if the value of 2 rows 2 columns is '0x63 (= x: 6 y: 3)' in hexadecimal, '0xFB' is replaced based on the look-up table. In this way, when 128 bits are input to the subbyte block 122, 128 bits of data substituted using the look-up table are output, and the look-up table used at this time is 256x8 bits of ROM (ROM). Is implemented as

여기서, 서브바이트 블록(122)뿐만 아니라, 키 생성 블록(142)의 서브워드 블록(146)에서도 서브바이트 블록(122)과 동일한 룩-업 테이블을 사용하게 된다. 여기서, 서브바이트 블록(122)은 128 비트를 사용하나, 서브워드 블록(146)은 32 비트를 사용하는 등 처리되는 비트 수만 다를 뿐, 룩-업 테이블에 의한 출력 결과는 동일하다. Here, the same look-up table as the subbyte block 122 is used not only in the subbyte block 122 but also in the subword block 146 of the key generation block 142. Here, the subbyte block 122 uses 128 bits, but the subword block 146 uses only 32 bits, and only the number of bits processed differs, and the output result by the look-up table is the same.

이와 같이 종래의 AES 알고리즘을 하드웨어로 구현함에 있어서, 룩-업 테이블이 전체 하드웨어를 차지하는 비율은 40% 이상이 된다. 그러나, 이와 같이 동일한 룩-업 테이블을 사용하는 서브바이트 블록(122)과 서브워드 블록(146)을 별개로 구현함으로써 하드웨어 소모가 많은 문제점이 있다. 또한, 종래의 AES 알고리즘을 하드웨어로 구현함에 있어서 한 번의 라운드 계산 및 키 생성을 위해 여러 클럭을 사용하도록 되어 있어, 고속 처리가 어려운 문제점이 있다.As described above, in implementing the conventional AES algorithm in hardware, the ratio of the look-up table to the entire hardware is 40% or more. However, since the sub-byte block 122 and the subword block 146 using the same look-up table are separately implemented, there is a problem in that hardware consumption is high. In addition, since the conventional AES algorithm is implemented in hardware, multiple clocks are used for one round calculation and key generation, and thus, high-speed processing is difficult.

이와 관련하여 국내 특허 출원 2001-0085502 'AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을 위한 라운드 처리부 회로 및 온라인 라운드키 생성 회로'(2001.12.18)가 있으나, 다수의 선택기를 사용하여 암호화 블록과 복호화 블록을 공유로 모듈화하여 하드웨어 자원을 줄이는 방법만을 제공하고 있으며, 국내 특허 출원 2002-0027236 '라운드키의 온라인 계산 기능을 갖는 모듈화 구조의 AES Rijndael 라운드키 생성 회로'(2002.05.09)가 있으나, 키 생성 블록을 파이프라인 형태로 모듈화하는 방법만을 제공하고 있다. 이와 같이 두 발명 모두 하드웨어의 가장 큰 비율을 차지하는 룩-업 테이블을 줄이는 것이 아니라 다른 부분의 하드웨어를 줄이는 방법을 제공하고 있어, 하드웨어의 크기 등에 대해 큰 절감 효과가 없어 휴대 기기에 용이하게 적용하기 어려운 문제점을 여전히 포함하고 있다.In this regard, there is a domestic patent application 2001-0085502 'Round processing circuit and online round key generation circuit for hardware implementation of AES Rijndael (Linedal) encryption algorithm' (December 18, 2001), but using a plurality of selectors and It provides only a method of reducing hardware resources by sharing a decoding block with a shared module, and there is a domestic patent application 2002-0027236 'AES Rijndael round key generation circuit having a modular structure having an online calculation function of round key' (2002.05.09). It only provides a way to modularize key generation blocks into a pipeline. As such, both inventions provide a method of reducing the look-up table, which occupies the largest proportion of hardware, but the hardware of other parts, so that there is no significant savings on the size of the hardware, making it difficult to easily apply to mobile devices. It still contains the problem.

이와 같은 문제점을 해결하기 위하여, 본 발명은 AES 암호화 장치에서 처리 비트 수는 다르나 동일한 룩-업 테이블을 사용하는 서브바이트 블록과 서브워드 블록을 하나로 통합하여 구성함으로써, 종래의 암호화 성능을 그대로 유지하면서 하드웨어 용량을 줄일 수 있는 AES 암호화 장치 및 방법을 제공한다.In order to solve this problem, the present invention integrates a subbyte block and a subword block using different look-up tables but using the same look-up table in an AES encryption device, while maintaining the conventional encryption performance. Provided are an AES encryption apparatus and method for reducing hardware capacity.

이러한 기술적 과제를 달성하기 위하여 본 발명은, AES 알고리즘 암호화 장치로서, AES(Advanced Encryption Standard) 알고리즘에 따라 입력 데이터를 암호화하는 장치에 있어서, 룩-업 테이블을 이용하여 암호화를 위해 입력되는 평문의 대치 연산을 수행하거나, 키 생성을 위한 대치 연산을 수행하는 통합 블록; 통합 블록에 의해 대치 연산이 수행된 데이터의 행렬에서 행을 이동시키는 쉬프트로우(ShiftRows) 블록; 쉬프트로우 블록부에 의해 처리된 데이터를 추가 선형 변화시키는 믹스컬럼(MixColums) 블록; 암호화를 위한 라운드 처리 단계에 따라 쉬프트로우 블록, 믹스컬럼 블록 또는 데이터 입력부로부터 전달되는 데이터를 선별 수신하는 제1 먹스(Mux); 키 입력부를 통해 입력되는 초기 라운드키 또는 통합 블록에 의해 대치 연산 처리된 라운드키를 선별 수신하며, 저장된 라운드키를 쉬프트(Shift)시켜 통합 블록으로 전달하는 키 관리부; 암호화를 위해 전달되는 데이터 또는 키 관리부로부터 전달되는 라운드키를 선별 수신하여 통합 블록으로 전달하는 제2 먹스; 및 제1 먹스를 통해 선별된 데이터를 수신하고, 키 관리부를 통해 선별된 라운드키를 수신하여, 암호화를 위한 키 작업을 수행하는 라운드키 처리(AddRoundKey) 블록을 포함한다.In order to achieve the above technical problem, the present invention provides a device for encrypting input data according to an AES algorithm, which is an AES algorithm encryption device, and replaces plain text input for encryption using a look-up table. An integration block for performing an operation or performing a substitution operation for generating a key; A ShiftRows block for moving a row in a matrix of data on which a substitution operation is performed by an integration block; MixColums blocks for further linearly changing data processed by the shift row block unit; A first mux for selectively receiving data transferred from a shift row block, a mix column block, or a data input unit according to a round processing step for encryption; A key management unit which selectively receives a round key processed by an initial round key or an integrated block input through a key input unit and shifts the stored round key to the integrated block; A second mux to selectively receive the data delivered for encryption or the round key delivered from the key management unit and deliver the selected round key to the integrated block; And a round key processing (AddRoundKey) block for receiving the selected data through the first mux, receiving the selected round key through the key manager, and performing a key operation for encryption.

또한, 제2의 기술적 과제를 달성하기 위하여 본 발명은, AES 알고리즘의 암호화 방법으로서, AES(Advanced Encryption Standard) 알고리즘에 따른 입력 데이터의 암호화 방법에 있어서, (a) 암호화를 위해 입력되는 평문 형식의 초기 데이터를 초기 라운드키를 이용하여 키 처리하는 단계; (b) 룩-업 테이블을 이용하여 초기 라운드 키를 대치 연산시켜, 반복 라운드 처리를 위한 반복 라운드키를 생성하는 단계; (c) 키 처리된 초기 데이터를 반복 라운드키를 이용하여 키 처리하는 단계; (d) 룩-업 테이블을 이용하여 반복 라운드키를 대치 연산시켜, 마지막 라운드 처리를 위한 마지막 라운드키를 생성하는 단계; 및 (e) 반복 라운드키에 의하여 키 처리된 데이터를 마지막 라운드키를 이용하여 키 처리함으로써 생성되는 암호문을 출력하는 단계를 포함한다. In order to achieve the second technical problem, the present invention provides an encryption method of the AES algorithm, which is an encryption method for input data according to the AES (Advanced Encryption Standard) algorithm. Key processing initial data using an initial round key; (b) replacing the initial round key using a look-up table to generate a repeat round key for repeat round processing; (c) key-processing the keyed initial data using a repeating round key; (d) substituting a repeating round key using the look-up table to generate a last round key for the last round processing; And (e) outputting a cipher text generated by keying the data keyed by the recursive round key using the last round key.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.

또한, 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. In addition, when a part is said to "include" a certain component, it means that it may further include other components, except to exclude other components unless otherwise stated.

또한, 본 명세서에서 기재한 모듈(module)이란 용어는 특정한 기능이나 동작을 처리하는 하나의 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현할 수 있다. In addition, the term module described herein refers to a unit for processing a specific function or operation, which may be implemented in hardware or software, or a combination of hardware and software.

도 3은 본 발명의 실시예에 따라 각각 구성된 서브바이트 블록과 키 관리부의 서브워드 블록을 통합 구성하는 방법을 간략하게 도시한 도면이다.FIG. 3 is a diagram schematically illustrating a method of integrating a subbyte block and a subword block of a key management unit respectively configured according to an exemplary embodiment of the present invention.

종래의 서브바이트 블록(122)과 서브워드 블록(146)을 간단하게 표시하면, 3A와 같다. 여기서, 로직(Logic) A, B, C는 서브바이트 처리 및 서브워드 처리를 위하여 서브바이트 블록(122) 또는 서브워드 블록(146)의 이전이나 이후에서 별개의 알고리즘을 각각 수행하는 부분이다.The conventional subbyte block 122 and the subword block 146 are simply displayed as 3A. Here, logics A, B, and C are parts for performing separate algorithms before or after the subbyte block 122 or the subword block 146 for subbyte processing and subword processing.

이와 같이 별개로 구성되어 있으나, 동일한 룩-업 테이블을 사용하던 종래의 서브바이트 블록(122)과 서브워드 블록(146)을 본 발명에 따라 통합 구성하면 3B와 같이 구성될 수 있다.Although configured separately as described above, the conventional subbyte block 122 and the subword block 146 using the same look-up table may be configured as shown in 3B by integrating according to the present invention.

서브바이트 블록(122)과 서브워드 블록(146)의 통합 구성을 위하여 추가로 먹스(Mux)(310)를 추가로 포함한다. In addition, a mux 310 is further included for the integrated configuration of the subbyte block 122 and the subword block 146.

그리고, 동일한 기능을 수행하는 서브바이트 블록(122)과 서브워드 블록(146)은 하나의 블록(320)으로 구성한다. 이하의 설명에 있어서는, 설명의 편의를 위하여 이를 '통합 블록'이라 칭하기로 한다. 그리고, 먹스(310)는 키 관리부(140)의 순환워드 블록(144)으로부터 전달되는 데이터 및 로직 B로부터 전달되는 데이터를 선별하여 통합 블록(320)으로 전달한다. In addition, the subbyte block 122 and the subword block 146 that perform the same function are configured as one block 320. In the following description, for the convenience of description, this will be referred to as an "integrated block". In addition, the mux 310 selects the data transferred from the cyclic word block 144 of the key manager 140 and the data transferred from the logic B to the integrated block 320.

또한, 통합 블록(320)에 의해 처리된 데이터는 로직 A와 로직 C로 모두 전달되고, 로직 A에 의해 생성된 키는 로직 C로 입력된다.In addition, the data processed by the integration block 320 is passed to both logic A and logic C, and the key generated by logic A is input to logic C.

이와 같은 구성 방법을 통해서 서브바이트 블록(122)과 서브워드 블록(146)을 통합한 AES 암호화 장치는 도 4와 같다.An AES encryption apparatus incorporating the subbyte block 122 and the subword block 146 through such a configuration method is illustrated in FIG. 4.

도 4는 본 발명의 실시예에 따른 AES 암호화 장치의 하드웨어 구성도이다.4 is a hardware configuration diagram of an AES encryption apparatus according to an embodiment of the present invention.

본 발명에 따른 AES 암호화 장치는 크게 암호화 블록(400)과 키 관리부(470)로 구성된다.The AES encryption apparatus according to the present invention is largely composed of the encryption block 400 and the key management unit 470.

암호화 블록(400)은 AES 암호화 장치 구조를 간단하게 하기 위하여 초기 라운드 처리부(110), 반복 라운드 처리부(120) 및 마지막 라운드 처리부(130)에서 초기 라운드 처리, 반복 라운드 처리 및 마지막 라운드 처리를 위하여 공통으로 사용 되는 하드웨어를 통합 구성한다.The encryption block 400 is common for the initial round processing, the repeat round processing, and the last round processing in the initial round processing unit 110, the repeat round processing unit 120, and the last round processing unit 130 to simplify the AES encryption device structure. Integrate hardware that is used as

이에 따라, 암호화 블록(400)에는 통합 블록부(410), 쉬프트로우 블록(420), 믹스컬럼 블록(430), 제1 먹스(440), 라운드키 처리 블록(450) 및 데이터 버퍼(460)를 포함한다. 그리고, 통합 블록부(410)는 도 3을 통해 설명한 것과 같이 제2 먹스(310) 및 통합 블록(320)으로 구성된다.Accordingly, the encryption block 400 includes an integrated block unit 410, a shift row block 420, a mix column block 430, a first mux 440, a round key processing block 450, and a data buffer 460. It includes. The integrated block unit 410 includes a second mux 310 and an integrated block 320 as described with reference to FIG. 3.

암호화 블록(400)의 제1 먹스(440)는 데이터 입력부(Input data)로부터 입력되는 데이터, 믹스컬럼 블록(430)으로부터 믹스컬럼 처리된 값 및 쉬프트로우 블록(420)에서 쉬프트로우 처리된 값을 선별 수신하여 라운드키 처리 블록(450)으로 전달한다.The first mux 440 of the encryption block 400 may input data input from the data input unit, mix-column values from the mix column block 430, and shift-low values in the shift row block 420. Selectively receives and forwards the round key processing block 450.

이 때, 제1 먹스(460)는 실행되고 있는 라운드 처리 단계에 따라서 데이터를 선별 수신하게 된다. 즉, 초기 라운드 처리 단계에서는 '0'을 선택하여 데이터 입력부로부터 전달되는 데이터를 수신하여 라운드키 처리 블록(450)으로 전달하고, 반복 라운드 처리 단계에서는 '1'을 선택하여 믹스컬럼 블록(430)으로부터 전달되는 값을 라운드키 처리 블록(450)으로 전달하며, 마지막 라운드 처리 단계에서는 '2'를 선택하여 쉬프트로우 처리된 값을 라운드키 처리 블록(450)으로 전달하는 역할을 수행한다.At this time, the first mux 460 selects and receives data according to the round processing step being executed. That is, in the initial round processing step, '0' is selected to receive data transmitted from the data input unit and transmitted to the round key processing block 450, and in the repetitive round processing step, '1' is selected to mix column block 430 The value transmitted from the group is transmitted to the round key processing block 450, and in the final round processing step, '2' is selected to transfer the shifted value to the round key processing block 450.

제2 먹스(310)는 도 3을 통해 설명한 것과 같이 반복 라운드 처리, 마지막 라운드 처리 단계에서는 '0'을 선택하여 데이터 버퍼로부터 입력되는 데이터를 수신하여 통합 블록(320)으로 전달함으로써 룩-업 테이블을 이용한 서브바이트 처리가 이루어지도록 하고, 키 생성 단계에 있어서는 '1'을 선택하여 순환워드 블록 (144)으로부터 입력되는 데이터를 수신하여 통합 블록(320)으로 전달함으로써, 룩-업 테이블을 이용한 키 생성이 이루어지도록 하는 역할을 수행한다.As described with reference to FIG. 3, the second mux 310 receives a data input from the data buffer by selecting '0' in the iterative round processing step and the last round processing step, and transfers the received data to the integration block 320. Subbyte processing is performed, and in the key generation step, '1' is selected to receive data input from the cyclic word block 144 and transfer the data to the aggregation block 320, thereby using a key using the look-up table. It is responsible for the creation.

데이터 버퍼(460)는 초기 라운드 처리 단계 및 반복 라운드 처리 단계에서 초기 라운드 처리된 데이터, 반복 라운드 처리된 데이터를 임시로 저장하는 부분이다.The data buffer 460 temporarily stores the data initially rounded and the data repeatedly processed in the initial round processing step and the repeated round processing step.

키 관리부(470)는 순환워드 블록(144), Rcon 블록(148), 제3 먹스(480), 키 버퍼(490) 및 다수의 XOR 논리 회로로 구성된다.The key manager 470 includes a cyclic word block 144, an Rcon block 148, a third mux 480, a key buffer 490, and a plurality of XOR logic circuits.

제3 먹스(480)는 키 입력부(Input KEY)를 통해 입력되는 초기 라운드키와, 키 버퍼(490)에 포함되어 있던 키가 순환워드 블록(144), 통합 블록(320)의 룩-업 테이블, Rcon 블록(148) 및 XOR 논리 회로를 통해 처리된 라운드키 중에서 라운드키 처리 블록(450)으로 전송할 라운드키를 선택하는 부분이다. 제3 먹스(480)는 초기 라운드 처리 단계에서는 '0'으로 설정하여 키 입력부를 통해 입력된 초기 라운드키를 라운드키 처리 블록(450)으로 전송하고, 반복 라운드키 처리 단계 및 마지막 라운드 처리 단계에서는 '1'로 설정하여, 순환워드 블록(144), 통합 블록(320)의 룩-업 테이블, Rcon 블록(148) 및 XOR 논리 회로를 통해 처리된 라운드키를 라운드키 처리 블록(450)으로 전송한다.The third mux 480 includes an initial round key input through a key input unit, a key included in the key buffer 490, and a look-up table of the cyclic word block 144 and the integrated block 320. A part of selecting a round key to be transmitted to the round key processing block 450 from among the round keys processed through the Rcon block 148 and the XOR logic circuit. The third mux 480 is set to '0' in the initial round processing step to transmit the initial round key input through the key input unit to the round key processing block 450, and in the repeat round key processing step and the last round processing step Set to '1' to transfer the processed roundkey to roundkey processing block 450 through cyclic word block 144, look-up table of integration block 320, Rcon block 148 and XOR logic circuitry. do.

도 5는 본 발명의 실시예에 따른 통합 블록을 상세하게 나타낸 회로도이다.5 is a circuit diagram illustrating in detail an integrated block according to an exemplary embodiment of the present invention.

통합 블록부(410)는 종래의 서브바이트 블록(122)을 통해 처리되던 대치 연산 기능을 수행하기 위하여, 데이터 버퍼(460)로부터 입력되는 128 비트의 입력을 저장된 룩-업 테이블을 이용하여 치환하고, 치환된 128 비트의 결과 값을 출력한 다. The integrated block unit 410 replaces the 128-bit input input from the data buffer 460 using the stored look-up table in order to perform the substitution operation that was processed through the conventional subbyte block 122. The result is the 128-bit result.

이 때, 룩-업 테이블로 입력되는 128 비트의 데이터는 32 비트씩 나뉘어서 입력되며, 제2 먹스(310)는 4개로 나뉘어진 32 비트의 데이터 중 상위 32 비트를 입력받도록 설정된다. 또한, 제2 먹스(310)는 순환워드 블록(144)으로부터 키 생성을 위하여 32 비트의 키 생성 데이터를 입력받도록 설정된다.At this time, the 128-bit data input to the look-up table is input by being divided by 32 bits, and the second mux 310 is set to receive the upper 32 bits of the 32-bit data divided into four. In addition, the second mux 310 is configured to receive 32-bit key generation data from the cyclic word block 144 for key generation.

제2 먹스(310)가 '0'으로 설정되면, 데이터 버퍼(460)로부터 입력되는 상위 32 비트의 데이터를 선택하여 룩-업 테이블의 입력으로 사용한다. 룩-업 테이블에 의해 치환된 상위 32 비트의 데이터는, 룩-업 테이블에 의해 치환된 다른 96 비트의 데이터와 통합되어 128 비트의 데이터로써 쉬프트로우 블록(122)으로 출력된다.When the second mux 310 is set to '0', the upper 32 bits of data input from the data buffer 460 are selected and used as an input of the look-up table. The upper 32 bits of data replaced by the look-up table are combined with the other 96 bits of data replaced by the look-up table and output to the shift row block 122 as 128 bits of data.

이와 같은 과정을 통해 종래의 서브바이트 블록(122)을 통해 처리되던 대치 연산 기능을 수행하게 된다.Through this process, the substitution operation, which was processed through the conventional subbyte block 122, is performed.

그리고, 통합 블록부(410)는 종래의 서브워드 블록의 기능을 수행하기 위하여, 순환워드 블록(144)으로부터 입력되는 32 비트의 입력을 저장된 룩-업 테이블을 이용하여 치환한 값을 출력한다. 이를 위하여 통합 블록부(410)의 제2 먹스(310)는 '1'로 설정되어 순환워드 블록(144)으로부터 전달되는 32 비트의 키 생성 데이터를 수신한다. 입력된 32 비트의 키 생성 데이터가 룩-업 테이블에 의해 치환되면, 이를 키 관리부(470)의 XOR 논리 회로로 전달한다.The integrated block unit 410 outputs a value obtained by substituting a 32-bit input input from the cyclic word block 144 using the stored look-up table in order to perform a function of a conventional subword block. To this end, the second mux 310 of the integrated block unit 410 is set to '1' and receives 32-bit key generation data transmitted from the cyclic word block 144. When the input 32-bit key generation data is replaced by the look-up table, the 32-bit key generation data is transferred to the XOR logic circuit of the key manager 470.

여기서, 본 발명에 따른 AES 암호화와 키 생성에 대하여 각 처리 단계 별로 좀 더 상세하게 살펴보면 다음과 같다.Here, the AES encryption and key generation according to the present invention will be described in more detail for each processing step as follows.

도 6은 본 발명의 실시예에 따른 AES 암호화 장치의 초기 라운드 처리 과정 을 설명하기 위한 도면이다.6 is a diagram illustrating an initial round processing procedure of an AES encryption apparatus according to an embodiment of the present invention.

AES 암호화 장치에서 초기 라운드 처리를 위하여, 제1 먹스(440)와 제3 먹스(480)는 '0'으로 설정되어, 데이터 입력부를 통해 입력되는 초기 데이터와 키 입력부를 통해 입력되는 초기 라운드키가 라운드키 처리 블록(450)으로 입력되도록 한다. 이에 따라 초기 라운드 처리 효과가 나타날 수 있고, 라운드키처리 블록(450)에 의한 초기 라운드 처리 결과는 데이터 버퍼(460)에 저장되어, 반복 라운드 처리 단계의 입력 값으로 사용된다. 여기서, 제1 먹스(440)와 제3 먹스(480)의 설정 값 선택 기간은 제1 클럭과 제2 클럭의 상승 레벨 부분만큼만 활성화된다. 이에 따라, 초기 라운드 처리에 필요한 클럭은 한 클럭만 소요하게 된다.For the initial round processing in the AES encryption apparatus, the first mux 440 and the third mux 480 are set to '0', so that the initial round key input through the data input unit and the initial round key input through the key input unit are set. Enter the round key processing block 450. Accordingly, an initial round processing effect may appear, and the initial round processing result by the round key processing block 450 is stored in the data buffer 460 and used as an input value of the repetitive round processing step. Here, the setting value selection period of the first mux 440 and the third mux 480 is activated only by the rising level portions of the first clock and the second clock. Accordingly, the clock required for the initial round processing only takes one clock.

여기서, 제1 클럭과 제2 클럭은 상승 레벨과 하강 레벨이 엇갈리도록 구성되어 있어 제1 클럭이 상승 레벨인 경우 제2 클럭은 하강 레벨이 되며, 제1 클럭이 하강 레벨인 경우 제2 클럭은 상승 레벨이 된다. 이에 따라, 제1 클럭이 한 번의 상승 레벨을 갖는 시간과 제2 클럭이 한 번의 상승 레벨을 갖는 시간을 합하면 암호화 장치 내의 한 클럭이 된다.Here, the first clock and the second clock are configured such that the rising level and the falling level are alternated, so that when the first clock is the rising level, the second clock becomes the falling level, and when the first clock is the falling level, the second clock is The level rises. Accordingly, the sum of the time when the first clock has one rising level and the time when the second clock has one rising level results in one clock in the encryption apparatus.

이와 같은 과정을 통해 초기 라운드 처리가 완료되면, 반복 라운드 처리 단계가 진행된다.When the initial round processing is completed through this process, the repeat round processing step is performed.

도 7은 본 발명의 실시예에 따른 AES 암호화 장치의 반복 라운드 처리 과정을 설명하기 위한 도면이다.7 is a diagram illustrating a repetitive round processing process of an AES encryption device according to an embodiment of the present invention.

반복 라운드 처리 단계에서 사용할 라운드키를 계산하기 위하여, 제1 클럭의 상승 레벨 동안 제2 먹스(310)는 '1'로 설정하여 통합 블록(320)을 서브워드 블록 기능으로써 사용한다. 그리고, 제3 먹스(480)는 '1'로 설정하여 순환워드 블록(144), 통합 블록(320)의 룩-업 테이블, Rcon 블록(148) 및 XOR 논리 회로를 통해 처리된 라운드키를 라운드키 처리 블록(450)의 입력으로 유지시킨다.In order to calculate the round key to be used in the repetitive round processing step, during the rising level of the first clock, the second mux 310 is set to '1' to use the integrated block 320 as a subword block function. Then, the third mux 480 is set to '1' to round the round key processed through the cyclic word block 144, the look-up table of the integration block 320, the Rcon block 148, and the XOR logic circuit. It is maintained as an input of the key processing block 450.

그리고, 순환워드 블록(144), 통합 블록(320)의 룩-업 테이블, Rcon 블록(148) 및 XOR 논리 회로를 통해 처리된 라운드키를 다음에 사용될 라운드키의 입력으로 사용하기 위하여 키 버퍼(490)에 저장시킨다. In addition, a key buffer may be used to use the round key processed through the cyclic word block 144, the look-up table of the integrated block 320, the Rcon block 148, and the XOR logic circuit as the input of the next round key. 490).

제2 클럭의 상승 레벨 동안 제2 먹스(310)를 '0'으로 설정하여 통합 블록(320)을 서브바이트 블록 기능으로써 사용하도록 설정하고, 제1 먹스(440)를 '1'로 설정하여 통합 블록(320), 쉬프트로우 블록(420) 및 믹스컬럼 블록(430)에 의해 처리된 결과를 라운드키 처리 블록(450)으로 전달한다. 그리고, 제3 먹스(480)를 통해 입력된 라운드키와 함께 라운드키 처리 블록(450)을 통해 계산한 뒤, 마지막 라운드 처리 단계의 입력으로 사용하기 위하여 데이터 버퍼(460)에 저장한다. During the rising level of the second clock, the second mux 310 is set to '0' to enable the integration block 320 as a subbyte block function, and the first mux 440 is set to '1' to integrate. The result processed by the block 320, the shift row block 420, and the mix column block 430 is transmitted to the round key processing block 450. Then, the round key processing block 450 is calculated along with the round key input through the third mux 480 and then stored in the data buffer 460 for use as an input of the last round processing step.

이와 같은 방법을 통하여 한 클럭 동안 반복 라운드 처리를 수행하게 된다. 이와 같은 과정을 통해 반복 라운드 처리가 완료되면, 마지막 라운드 처리 단계가 진행된다.Through this method, iterative round processing is performed for one clock. When the iterative round process is completed through this process, the last round process step is performed.

도 8은 본 발명의 실시예에 따른 AES 암호화 장치의 마지막 라운드 처리 과정을 설명하기 위한 도면이다.8 is a diagram illustrating a final round processing procedure of an AES encryption apparatus according to an embodiment of the present invention.

마지막 라운드 처리 단계에서 사용될 라운드키를 계산하기 위하여, 제1 클럭의 상승 레벨 동안 제2 먹스(310)는 '1'로 설정하여 통합 블록(320)을 서브워드 블록 기능으로써 사용한다. 그리고, 제3 먹스(480)는 '1'로 설정하여 순환워드 블 록(144), 통합 블록(320)의 룩-업 테이블, Rcon 블록(148) 및 XOR 논리 회로를 통해 처리된 라운드키를 라운드키 처리 블록(450)의 입력으로 유지시킨다.In order to calculate the round key to be used in the last round processing step, during the rising level of the first clock, the second mux 310 is set to '1' to use the integrated block 320 as a subword block function. The third mux 480 is set to '1' to set the round key processed through the cyclic word block 144, the look-up table of the integrated block 320, the Rcon block 148, and the XOR logic circuit. Maintained as an input of the round key processing block 450.

그리고, 제2 클럭의 상승 레벨 동안 제2 먹스(310)를 '0'으로 설정하여 통합 블록(320)을 서브바이트 블록 기능으로써 사용하도록 설정하고, 제1 먹스(440)를 '2'로 설정하여 믹스컬럼 블록(430)에 의해 처리되지 않은 데이터를 라운드키와 함께 계산하여 출력하면 암호화가 완성된다. 이와 같은 방식으로 한 클럭 동안 마지막 라운드 단계의 계산을 수행하게 된다.Then, during the rising level of the second clock, the second mux 310 is set to '0' to use the integrated block 320 as a subbyte block function, and the first mux 440 is set to '2'. By calculating and outputting the data not processed by the mix column block 430 together with the round key, encryption is completed. In this way, the calculation of the last round step is performed during one clock.

이상의 도 3 내지 도 8의 설명에 있어서, 각 먹스의 설정 값(0, 1, 2)은 다양하게 설정될 수 있다.In the above description of FIGS. 3 to 8, the set values (0, 1, 2) of each mux may be set in various ways.

도 9는 본 발명의 실시예에 따른 AES 암호화를 위해 사용되는 타이밍을 나타낸 도면이다.9 is a diagram illustrating timing used for AES encryption according to an embodiment of the present invention.

여기서, 라운드데이터 및 라운드키에서 음영으로 표시된 부분이 통합 블록(320)에서 사용하는 타이밍이다.Here, the shaded portions of the round data and the round key are timings used by the integration block 320.

AES 암호화 작업에서는 128 비트의 라운드데이터 및 라운드키 처리를 위하여 10번의 라운드 작업이 필요하게 된다. 여기서, 도 9를 통해 확인할 수 있는 바와 같이 한 번의 라운드 처리를 위하여 한 클럭만이 소요되므로, 이를 위한 하드웨어는 도 4와 같이 현저하게 줄어들 수 있는 반면, 성능은 저하되지 않고 그 결과 값을 출력할 수 있게 된다.AES encryption requires 10 rounds for 128-bit round data and round key processing. As shown in FIG. 9, since only one clock is required for one round processing, hardware for this may be significantly reduced as shown in FIG. 4, but the performance is not degraded and the resulting value may be output. It becomes possible.

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다. The embodiments of the present invention described above are not implemented only through the apparatus and the method, but may be implemented through a program for realizing a function corresponding to the configuration of the embodiment of the present invention or a recording medium on which the program is recorded. Implementation may be easily implemented by those skilled in the art from the description of the above-described embodiments.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

전술한 구성에 의하여, 종래의 AES 암호화 장치에 비하여 하드웨어 소요 양은 줄어드는 반면, 종래와 같은 성능을 유지시킬 수 있는 AES 암호화 장치를 구현함으로써 소형화 및 저전력 집적화가 가능해지므로, 휴대 기기에 적용할 수 있는 효과를 기대할 수 있다.By the above-described configuration, the hardware requirement is reduced as compared with the conventional AES encryption device, while miniaturization and low-power integration is possible by implementing the AES encryption device that can maintain the same performance as the conventional, it can be applied to portable devices You can expect.

Claims (15)

AES(Advanced Encryption Standard) 알고리즘에 따라 입력 데이터를 암호화하는 장치에 있어서,An apparatus for encrypting input data according to AES (Advanced Encryption Standard) algorithm, 룩-업 테이블을 이용하여 암호화를 위해 입력되는 평문의 대치 연산을 수행하거나, 키 생성을 위한 대치 연산을 수행하는 통합 블록;An integrated block that performs a substitution operation of a plain text input for encryption or a substitution operation for key generation using a look-up table; 상기 통합 블록에 의해 대치 연산이 수행된 데이터의 행렬에서 행을 이동시키는 쉬프트로우(ShiftRows) 블록;A ShiftRows block for moving a row in a matrix of data on which a substitution operation is performed by the integration block; 상기 쉬프트로우 블록부에 의해 처리된 데이터를 추가 선형 변화시키는 믹스컬럼(MixColums) 블록;A MixColums block for further linearly changing data processed by the shift row block unit; 상기 암호화를 위한 라운드 처리 단계에 따라 상기 쉬프트로우 블록, 상기 믹스컬럼 블록 또는 데이터 입력부로부터 전달되는 데이터를 선별 수신하는 제1 먹스(Mux);A first mux for selectively receiving data transmitted from the shift row block, the mix column block, or the data input unit according to the round processing step for encryption; 키 입력부를 통해 입력되는 초기 라운드키 또는 상기 통합 블록에 의해 대치 연산 처리된 라운드키를 선별 수신하며, 상기 저장된 라운드키를 쉬프트(Shift)시켜 상기 통합 블록으로 전달하는 키 관리부;A key management unit which selectively receives an initial round key input through a key input unit or a round key processed by the integration block, and shifts the stored round key to the integrated block; 상기 암호화를 위해 전달되는 데이터 또는 상기 키 관리부로부터 전달되는 라운드키를 선별 수신하여 상기 통합 블록으로 전달하는 제2 먹스; 및A second mux for selectively receiving the data transmitted for the encryption or the round key delivered from the key manager and delivering the selected round key to the integrated block; And 상기 제1 먹스를 통해 선별된 데이터를 수신하고, 상기 키 관리부를 통해 선별된 라운드키를 수신하여, 상기 암호화를 위한 키 작업을 수행하는 라운드키 처리 (AddRoundKey) 블록A round key processing (AddRoundKey) block for receiving the selected data through the first mux, receiving the selected round key through the key manager, and performing a key operation for the encryption. 을 포함하는 AES 알고리즘 암호화 장치.AES algorithm encryption device comprising a. 제1항에 있어서, 상기 통합 블록은,The method of claim 1, wherein the integration block, 상기 제2 먹스로부터 상기 암호화를 위한 데이터를 수신하면, 상기 데이터의 대치 연산을 수행하여 상기 쉬프트로우 블록으로 전달하는 서브바이트(SubBytes) 블록 기능을 수행하고,When receiving the data for encryption from the second mux, it performs a sub-bytes block function to perform the substitution operation of the data to transfer to the shift block, 상기 제2 먹스로부터 상기 키 생성을 위한 라운드키를 수신하면, 상기 라운드키의 대치 연산을 수행하여 상기 키 관리부로 전달하는 서브워드(SubWord) 블록 기능을 수행하는 것을 특징으로 하는 AES 알고리즘 암호화 장치.And receiving a round key for generating the key from the second mux, performing a subword block function for performing a substitution operation of the round key and transferring the round key to the key manager. 제1항에 있어서, 상기 키 관리부는,The method of claim 1, wherein the key management unit, 상기초기 라운드키 또는 상기 통합 블록에 의해 대치 연산 처리된 라운드키를 선별 수신하는 제3 먹스;A third mux for selectively receiving the initial round key or the round key that has been replaced by the integrated block; 상기 제3 먹스에서 송출된 라운드키를 수신하여 저장하는 키 버퍼(Key Buffer);A key buffer for receiving and storing the round key transmitted from the third mux; 상기 키 버퍼에 저장된 라운드키를 쉬프트(Shift)시켜 상기 제3 먹스로 전달하는 순환워드(RotWord) 블록;A rotation word block for shifting the round key stored in the key buffer to the third mux; 상기 통합 블록으로부터 대치 연산된 라운드키에 XOR 연산되는 라운드 상수를 생성하는 Rcon 블록; 및An Rcon block for generating a round constant that is XOR-operated on the round key computed from the integrated block; And 상기 키 버퍼로부터 전달되는 라운드키 및 상기 통합 블록으로부터 전달되는 라운드키를 XOR 연산시키는 다수의 XOR 논리회로A plurality of XOR logic circuits for performing an XOR operation on the round key delivered from the key buffer and the round key delivered from the integrated block 를 포함하는 것을 특징으로 하는 AES 알고리즘 암호화 장치.AES algorithm encryption apparatus comprising a. 제1항에 있어서, 상기 제1 먹스는,The method of claim 1, wherein the first mux, 초기 라운드 처리 단계에서는 상기 데이터 입력부로부터 전달되는 초기 데이터를 수신하고, 반복 라운드 처리 단계에서는 상기 믹스컬럼 블록으로부터 전달되는 데이터를 수신하고, 마지막 라운드 처리 단계에서는 상기 쉬프트로우블록으로부터 전달되는 데이터를 수신하는 것을 특징으로 하는 AES 알고리즘 암호화 장치.In the initial round processing step, the initial data transmitted from the data input unit is received, in the repetitive round processing step, the data transmitted from the mix column block is received, and in the last round processing step, the data transmitted from the shift row block is received. AES algorithm encryption apparatus, characterized in that. 제1항에 있어서, The method of claim 1, 상기 라운드키 처리 블록으로부터 상기 암호화를 위한 키 작업이 수행된 데이터를 저장하여, 상기 암호화를 위한 라운드 처리 단계 진행시 상기 제2 먹스로 입력되는 데이터로 제공하는 데이터 버퍼A data buffer for storing the data on which the key operation for encryption is performed from the round key processing block and providing the data input to the second mux when the round processing step for encryption is performed. 를 추가로 포함하는 것을 특징으로 하는 AES 알고리즘 암호화 장치.AES algorithm encryption apparatus further comprises. AES(Advanced Encryption Standard) 알고리즘에 따른 입력 데이터의 암호화 방법에 있어서,In the encryption method of the input data according to the AES (Advanced Encryption Standard) algorithm, (a) 상기 암호화를 위해 입력되는 평문 형식의 초기 데이터를 초기 라운드키를 이용하여 키 처리하는 단계;(a) key processing initial data in plain text format input for the encryption using an initial round key; (b) 룩-업 테이블을 이용하여 상기 초기 라운드 키를 대치 연산시켜, 반복 라운드 처리를 위한 반복 라운드키를 생성하는 단계;(b) replacing the initial round key using a look-up table to generate a repeat round key for repeat round processing; (c) 상기 키 처리된 초기 데이터를 상기 반복 라운드키를 이용하여 키 처리하는 단계;(c) key processing the keyed initial data using the iterative round key; (d) 상기 룩-업 테이블을 이용하여 상기 반복 라운드키를 대치 연산시켜, 마지막 라운드 처리를 위한 마지막 라운드키를 생성하는 단계; 및(d) substituting the iterative round key using the look-up table to generate a last round key for the last round processing; And (e) 상기 반복 라운드키에 의하여 키 처리된 데이터를 상기 마지막 라운드키를 이용하여 키 처리함으로써 생성되는 암호문을 출력하는 단계(e) outputting a cipher text generated by keying the data keyed by the repetitive round key using the last round key; 를 포함하는 AES 알고리즘의 암호화 방법.Encryption method of the AES algorithm comprising a. 제6항에 있어서, 상기 단계 (a)는,The method of claim 6, wherein step (a) is (a1) 제1 먹스를 통하여 상기 초기 라운드 키를 수신하는 단계; 및(a1) receiving the initial round key via a first mux; And (a2) 제2 먹스를 통하여 상기 평문 형식의 초기 데이터를 수신하고 상기 초기 라운드 키를 이용하여 키 처리하는 단계(a2) receiving initial data in the plain text format through a second mux and performing key processing using the initial round key 를 포함하는 것을 특징으로 하는 AES 알고리즘의 암호화 방법.Encryption method of the AES algorithm, characterized in that it comprises a. 제6항에 있어서, The method of claim 6, 상승 레벨과 하강 레벨이 엇갈리게 구성되어 있는 제1 클럭 및 제2 클럭에 따라 상기 단계 (a) 내지 상기 단계 (e)에 따른 암호화가 진행되는 것을 특징으로 하는 AES 알고리즘의 암호화 방법.The encryption method of the AES algorithm, characterized in that the encryption according to the step (a) to the step (e) is performed according to the first clock and the second clock are composed of a rising level and a falling level. 제7항 또는 제8항에 있어서,The method according to claim 7 or 8, 상기 제1 클럭의 상승 레벨 부분에 상기 단계 (a1)이 실행되고, 상기 제2 클럭의 상승 레벨 부분에 상기 단계 (a2)가 실행됨으로써, 한 클럭 동안 상기 단계 (a)에 따른 초기 라운드 처리가 실행되는 것을 특징으로 하는 AES 알고리즘의 암호화 방법.The step (a1) is executed in the rising level portion of the first clock and the step (a2) is executed in the rising level portion of the second clock, so that the initial round processing according to the step (a) is performed for one clock. The encryption method of the AES algorithm, characterized in that executed. 제8항에 있어서, 상기 단계 (b) 및 상기 단계 (c)는,The method of claim 8, wherein step (b) and step (c) 상기 제1 클럭의 상승 레벨 부분에 상기 단계 (b)가 실행되고, 상기 제2 클럭의 상승 레벨 부분에 상기 단계 (c)가 실행됨으로써, 한 클럭 동안 상기 단계 (b) 및 상기 단계 (c)에 따른 반복 라운드 처리가 실행되는 것을 특징으로 하는 AES 알고리즘의 암호화 방법.The step (b) is performed in the rising level portion of the first clock and the step (c) is executed in the rising level portion of the second clock, thereby performing the steps (b) and (c) for one clock. Iterative round processing according to, characterized in that the encryption method of the AES algorithm. 제8항에 있어서, 상기 단계 (d) 및 상기 단계 (e)는,The method of claim 8, wherein step (d) and step (e) 상기 제1 클럭의 상승 레벨 부분에 상기 단계 (d)가 실행되고, 상기 제2 클럭의 상승 레벨 부분에 상기 단계 (e)가 실행됨으로써, 한 클럭 동안 상기 단계 (d) 및 상기 단계 (e)에 따른 마지막 라운드 처리가 실행되는 것을 특징으로 하는 AES 알고리즘의 암호화 방법.The step (d) is executed in the rising level portion of the first clock and the step (e) is executed in the rising level portion of the second clock, thereby performing the steps (d) and (e) for one clock. The encryption method of the AES algorithm, characterized in that the last round processing according to. 제6항에 있어서, 상기 단계 (b)는,The method of claim 6, wherein step (b) (b1) 상기 초기 라운드키를 이동시키는 쉬프트 작업을 수행하는 단계;(b1) performing a shift operation of moving the initial round key; (b2) 상기 룩-업 테이블을 이용하여 상기 쉬프트된 초기 라운드키를 대치 연산하는 단계; 및(b2) replacing the shifted initial round key using the look-up table; And (b3) 상기 대치 연산된 초기 라운드키와 Rcon 블록에 의해 생성된 라운드 상수를 XOR 연산하여 상기 반복 라운드키를 생성하는 단계(b3) generating the repeating round key by performing an XOR operation on the replaced initial round key and the round constant generated by the Rcon block; 를 포함하는 것을 특징으로 하는 AES 알고리즘의 암호화 방법.Encryption method of the AES algorithm, characterized in that it comprises a. 제6항에 있어서, 상기 단계 (c)는,The method of claim 6, wherein step (c) comprises: (c1) 상기 룩-업 테이블을 이용하여 상기 키 처리된 초기 데이터를 대치 연산하는 단계;(c1) replacing the keyed initial data using the look-up table; (c2) 상기 대치 연산된 초기 데이터의 행렬에서 행을 이동시키는 쉬프트 작업을 수행하는 단계;(c2) performing a shift operation of moving a row in the matrix of the substituted initial data; (c3) 상기 쉬프트 작업이 수행된 데이터를 선형 변환하는 단계; 및(c3) linearly converting the data on which the shift operation is performed; And (c4) 상기 선형 변환된 데이터를 상기 반복 라운드키를 이용하여 키 처리하는 단계(c4) key processing the linearly transformed data using the iterative round key 를 포함하는 것을 특징으로 하는 AES 알고리즘의 암호화 방법.Encryption method of the AES algorithm, characterized in that it comprises a. 제6항에 있어서, 상기 단계 (d)는The method of claim 6, wherein step (d) (d1) 상기 반복 라운드키를 이동시키는 쉬프트 작업을 수행하는 단계;(d1) performing a shift operation of moving the repeating round key; (d2) 상기 룩-업 테이블을 이용하여 상기 쉬프트된 반복 라운드키를 대치 연 산하는 단계; 및(d2) replacing the shifted iterative round key using the look-up table; And (d3) 상기 대치 연산된 반복 라운드키와 Rcon 블록에 의해 생성된 라운드 상수를 XOR 연산하여 상기 마지막 라운드키를 생성하는 단계(d3) generating the last round key by performing an XOR operation on the replaced round key and the round constant generated by the Rcon block; 를 포함하는 것을 특징으로 하는 AES 알고리즘의 암호화 방법.Encryption method of the AES algorithm, characterized in that it comprises a. 제6항에 있어서, 상기 단계 (e)는,The method of claim 6, wherein step (e) (e1) 상기 룩-업 테이블을 이용하여 상기 반복 라운드키에 의하여 키 처리된 데이터를 대치 연산하는 단계;(e1) replacing the data keyed by the iterative round key using the look-up table; (e2) 상기 대치 연산된 데이터의 행렬에서 행을 이동시키는 쉬프트 작업을 수행하는 단계; 및(e2) performing a shift operation of moving rows in the matrix of substituted data; And (e3) 상기 쉬프트 작업이 수행된 데이터를 상기 마지막 라운드키를 이용하여 키 처리하여 생성되는 상기 암호문 출력하는 단계(e3) outputting the ciphertext generated by key processing the data on which the shift operation is performed using the last round key; 를 포함하는 것을 특징으로 하는 AES 알고리즘의 암호화 방법.Encryption method of the AES algorithm, characterized in that it comprises a.
KR1020050121328A 2005-12-10 2005-12-10 Apparatus for aes encryption in mobile device and method thereby KR100667189B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050121328A KR100667189B1 (en) 2005-12-10 2005-12-10 Apparatus for aes encryption in mobile device and method thereby

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050121328A KR100667189B1 (en) 2005-12-10 2005-12-10 Apparatus for aes encryption in mobile device and method thereby

Publications (1)

Publication Number Publication Date
KR100667189B1 true KR100667189B1 (en) 2007-01-12

Family

ID=37867628

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050121328A KR100667189B1 (en) 2005-12-10 2005-12-10 Apparatus for aes encryption in mobile device and method thereby

Country Status (1)

Country Link
KR (1) KR100667189B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100931193B1 (en) * 2007-11-09 2009-12-10 한국전자통신연구원 Passive RDF Tag Encryption Computing Device
KR20220096818A (en) * 2020-12-31 2022-07-07 호서대학교 산학협력단 Private key protection method against cache side channel attack
CN116996222A (en) * 2023-09-27 2023-11-03 江西财经大学 Data security transmission method and device, readable storage medium and electronic equipment

Citations (5)

* 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 Ciphering method and decoding method and ciphering device and decoding device
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
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
KR20050092576A (en) * 2004-03-16 2005-09-22 삼성전자주식회사 A cipher processing unit, an advanced encryption standard cipher system and an advanced encryption standard cipher method with masking method

Patent Citations (5)

* 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 Ciphering method and decoding method and ciphering device and decoding device
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
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
KR20050092576A (en) * 2004-03-16 2005-09-22 삼성전자주식회사 A cipher processing unit, an advanced encryption standard cipher system and an advanced encryption standard cipher method with masking method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100931193B1 (en) * 2007-11-09 2009-12-10 한국전자통신연구원 Passive RDF Tag Encryption Computing Device
KR20220096818A (en) * 2020-12-31 2022-07-07 호서대학교 산학협력단 Private key protection method against cache side channel attack
KR102505587B1 (en) * 2020-12-31 2023-03-02 호서대학교 산학협력단 Private key protection method against cache side channel attack
CN116996222A (en) * 2023-09-27 2023-11-03 江西财经大学 Data security transmission method and device, readable storage medium and electronic equipment
CN116996222B (en) * 2023-09-27 2023-12-12 江西财经大学 Data security transmission method and device, readable storage medium and electronic equipment

Similar Documents

Publication Publication Date Title
US7688974B2 (en) Rijndael block cipher apparatus and encryption/decryption method thereof
US7295671B2 (en) Advanced encryption standard (AES) hardware cryptographic engine
US8625781B2 (en) Encrypton processor
US20060177052A1 (en) S-box encryption in block cipher implementations
US7561689B2 (en) Generating keys having one of a number of key sizes
US20030059054A1 (en) Apparatus for generating encryption or decryption keys
JP5652363B2 (en) Cryptographic processing apparatus, cryptographic processing method, and program
US10237066B1 (en) Multi-channel encryption and authentication
US6931127B2 (en) Encryption device using data encryption standard algorithm
JP2010245881A (en) Cipher processor
KR100667189B1 (en) Apparatus for aes encryption in mobile device and method thereby
El-meligy et al. 130nm Low power asynchronous AES core
Patel et al. Hybrid security algorithms for data transmission using AES-DES
KR20030051111A (en) Round processing circuit and on-line round key generation circuit for the hardware implementation of AES Rijndael cipher algorithm
Gangadari et al. FPGA implementation of compact S-box for AES algorithm using composite field arithmetic
Mohan et al. Revised aes and its modes of operation
KR100668664B1 (en) Module and method for encryption/decryption by using aes rijndael block algorithm
RU2738321C1 (en) Cryptographic transformation method and device for its implementation
Paar et al. The data encryption standard (DES) and alternatives
Nadjia et al. Efficient implementation of AES S-box in LUT-6 FPGAs
Das et al. An efficient VLSI implementation of AES encryption using ROM submodules and exclusion of shiftrows
KR102348802B1 (en) AES encryption and decryption circuit
Henricksen Tiny Dragon-an encryption algorithm for wireless sensor networks
Nayana et al. VLSI implementation of AES Encryption/Decryption Algorithm using FPGA
KR200279546Y1 (en) Device for coding/decoding document

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121218

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131218

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141215

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151221

Year of fee payment: 10