KR100667189B1 - Apparatus for aes encryption in mobile device and method thereby - Google Patents
Apparatus for aes encryption in mobile device and method thereby Download PDFInfo
- 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
Links
Images
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/043—Masking or blinding of tables, e.g. lookup, substitution or mapping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Abstract
Description
도 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
초기 라운드 처리부(110)는 암호화를 위한 라운드키의 처리 작업을 위한 라운드키 처리(AddRoundKey) 블록으로 구성되며, 반복 라운드 처리부(120)는 각 바이트 상에서 대치 연산을 수행하기 위한 서브바이트(SubBytes) 블록(122), AES의 각 데이터 구성 요소의 행렬에서, 행을 이동시키는 쉬프트로우(ShiftRows) 블록(124), 쉬프트로우 블록(124)에 의해 이동된 행렬의 추가 선형 변환을 수행하는 믹스컬럼(MixColums) 블록(126) 및 라운드키 처리(AddRoundKey) 블록(128)을 포함한다. 그리고, 마지막 라운드 처리부(130)는 서브바이트 블록, 쉬프트로우 블록 및 라운드키 처리 블록을 포함한다. The initial
여기서, 초기 라운드 처리부(110), 반복 라운드 처리부(120) 및 마지막 라운드 처리부(130)에 각각 포함되는 라운드키 처리 블록은 키 관리부(140)로부터 암호화 라운드키(Round KEY)를 전달받아 암호화를 위한 키 작업을 수행한다.Here, the round key processing block included in each of the initial
키 관리부(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
이렇게 구성되는 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
이와 같이 구성되는 이와 같은 암호화 알고리즘에서 서브바이트 블록(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
도 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
여기서, 서브바이트 블록(122)뿐만 아니라, 키 생성 블록(142)의 서브워드 블록(146)에서도 서브바이트 블록(122)과 동일한 룩-업 테이블을 사용하게 된다. 여기서, 서브바이트 블록(122)은 128 비트를 사용하나, 서브워드 블록(146)은 32 비트를 사용하는 등 처리되는 비트 수만 다를 뿐, 룩-업 테이블에 의한 출력 결과는 동일하다. Here, the same look-up table as the
이와 같이 종래의 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
이와 관련하여 국내 특허 출원 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
이와 같이 별개로 구성되어 있으나, 동일한 룩-업 테이블을 사용하던 종래의 서브바이트 블록(122)과 서브워드 블록(146)을 본 발명에 따라 통합 구성하면 3B와 같이 구성될 수 있다.Although configured separately as described above, the
서브바이트 블록(122)과 서브워드 블록(146)의 통합 구성을 위하여 추가로 먹스(Mux)(310)를 추가로 포함한다. In addition, a
그리고, 동일한 기능을 수행하는 서브바이트 블록(122)과 서브워드 블록(146)은 하나의 블록(320)으로 구성한다. 이하의 설명에 있어서는, 설명의 편의를 위하여 이를 '통합 블록'이라 칭하기로 한다. 그리고, 먹스(310)는 키 관리부(140)의 순환워드 블록(144)으로부터 전달되는 데이터 및 로직 B로부터 전달되는 데이터를 선별하여 통합 블록(320)으로 전달한다. In addition, the
또한, 통합 블록(320)에 의해 처리된 데이터는 로직 A와 로직 C로 모두 전달되고, 로직 A에 의해 생성된 키는 로직 C로 입력된다.In addition, the data processed by the
이와 같은 구성 방법을 통해서 서브바이트 블록(122)과 서브워드 블록(146)을 통합한 AES 암호화 장치는 도 4와 같다.An AES encryption apparatus incorporating the
도 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
암호화 블록(400)은 AES 암호화 장치 구조를 간단하게 하기 위하여 초기 라운드 처리부(110), 반복 라운드 처리부(120) 및 마지막 라운드 처리부(130)에서 초기 라운드 처리, 반복 라운드 처리 및 마지막 라운드 처리를 위하여 공통으로 사용 되는 하드웨어를 통합 구성한다.The
이에 따라, 암호화 블록(400)에는 통합 블록부(410), 쉬프트로우 블록(420), 믹스컬럼 블록(430), 제1 먹스(440), 라운드키 처리 블록(450) 및 데이터 버퍼(460)를 포함한다. 그리고, 통합 블록부(410)는 도 3을 통해 설명한 것과 같이 제2 먹스(310) 및 통합 블록(320)으로 구성된다.Accordingly, the
암호화 블록(400)의 제1 먹스(440)는 데이터 입력부(Input data)로부터 입력되는 데이터, 믹스컬럼 블록(430)으로부터 믹스컬럼 처리된 값 및 쉬프트로우 블록(420)에서 쉬프트로우 처리된 값을 선별 수신하여 라운드키 처리 블록(450)으로 전달한다.The
이 때, 제1 먹스(460)는 실행되고 있는 라운드 처리 단계에 따라서 데이터를 선별 수신하게 된다. 즉, 초기 라운드 처리 단계에서는 '0'을 선택하여 데이터 입력부로부터 전달되는 데이터를 수신하여 라운드키 처리 블록(450)으로 전달하고, 반복 라운드 처리 단계에서는 '1'을 선택하여 믹스컬럼 블록(430)으로부터 전달되는 값을 라운드키 처리 블록(450)으로 전달하며, 마지막 라운드 처리 단계에서는 '2'를 선택하여 쉬프트로우 처리된 값을 라운드키 처리 블록(450)으로 전달하는 역할을 수행한다.At this time, the
제2 먹스(310)는 도 3을 통해 설명한 것과 같이 반복 라운드 처리, 마지막 라운드 처리 단계에서는 '0'을 선택하여 데이터 버퍼로부터 입력되는 데이터를 수신하여 통합 블록(320)으로 전달함으로써 룩-업 테이블을 이용한 서브바이트 처리가 이루어지도록 하고, 키 생성 단계에 있어서는 '1'을 선택하여 순환워드 블록 (144)으로부터 입력되는 데이터를 수신하여 통합 블록(320)으로 전달함으로써, 룩-업 테이블을 이용한 키 생성이 이루어지도록 하는 역할을 수행한다.As described with reference to FIG. 3, the
데이터 버퍼(460)는 초기 라운드 처리 단계 및 반복 라운드 처리 단계에서 초기 라운드 처리된 데이터, 반복 라운드 처리된 데이터를 임시로 저장하는 부분이다.The
키 관리부(470)는 순환워드 블록(144), Rcon 블록(148), 제3 먹스(480), 키 버퍼(490) 및 다수의 XOR 논리 회로로 구성된다.The
제3 먹스(480)는 키 입력부(Input KEY)를 통해 입력되는 초기 라운드키와, 키 버퍼(490)에 포함되어 있던 키가 순환워드 블록(144), 통합 블록(320)의 룩-업 테이블, Rcon 블록(148) 및 XOR 논리 회로를 통해 처리된 라운드키 중에서 라운드키 처리 블록(450)으로 전송할 라운드키를 선택하는 부분이다. 제3 먹스(480)는 초기 라운드 처리 단계에서는 '0'으로 설정하여 키 입력부를 통해 입력된 초기 라운드키를 라운드키 처리 블록(450)으로 전송하고, 반복 라운드키 처리 단계 및 마지막 라운드 처리 단계에서는 '1'로 설정하여, 순환워드 블록(144), 통합 블록(320)의 룩-업 테이블, Rcon 블록(148) 및 XOR 논리 회로를 통해 처리된 라운드키를 라운드키 처리 블록(450)으로 전송한다.The
도 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
이 때, 룩-업 테이블로 입력되는 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
제2 먹스(310)가 '0'으로 설정되면, 데이터 버퍼(460)로부터 입력되는 상위 32 비트의 데이터를 선택하여 룩-업 테이블의 입력으로 사용한다. 룩-업 테이블에 의해 치환된 상위 32 비트의 데이터는, 룩-업 테이블에 의해 치환된 다른 96 비트의 데이터와 통합되어 128 비트의 데이터로써 쉬프트로우 블록(122)으로 출력된다.When the
이와 같은 과정을 통해 종래의 서브바이트 블록(122)을 통해 처리되던 대치 연산 기능을 수행하게 된다.Through this process, the substitution operation, which was processed through the
그리고, 통합 블록부(410)는 종래의 서브워드 블록의 기능을 수행하기 위하여, 순환워드 블록(144)으로부터 입력되는 32 비트의 입력을 저장된 룩-업 테이블을 이용하여 치환한 값을 출력한다. 이를 위하여 통합 블록부(410)의 제2 먹스(310)는 '1'로 설정되어 순환워드 블록(144)으로부터 전달되는 32 비트의 키 생성 데이터를 수신한다. 입력된 32 비트의 키 생성 데이터가 룩-업 테이블에 의해 치환되면, 이를 키 관리부(470)의 XOR 논리 회로로 전달한다.The
여기서, 본 발명에 따른 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
여기서, 제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
그리고, 순환워드 블록(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
제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
이와 같은 방법을 통하여 한 클럭 동안 반복 라운드 처리를 수행하게 된다. 이와 같은 과정을 통해 반복 라운드 처리가 완료되면, 마지막 라운드 처리 단계가 진행된다.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
그리고, 제2 클럭의 상승 레벨 동안 제2 먹스(310)를 '0'으로 설정하여 통합 블록(320)을 서브바이트 블록 기능으로써 사용하도록 설정하고, 제1 먹스(440)를 '2'로 설정하여 믹스컬럼 블록(430)에 의해 처리되지 않은 데이터를 라운드키와 함께 계산하여 출력하면 암호화가 완성된다. 이와 같은 방식으로 한 클럭 동안 마지막 라운드 단계의 계산을 수행하게 된다.Then, during the rising level of the second clock, the
이상의 도 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
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)
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)
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)
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 |
-
2005
- 2005-12-10 KR KR1020050121328A patent/KR100667189B1/en active IP Right Grant
Patent Citations (5)
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)
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 |