KR100668664B1 - Module and method for encryption/decryption by using aes rijndael block algorithm - Google Patents

Module and method for encryption/decryption by using aes rijndael block algorithm Download PDF

Info

Publication number
KR100668664B1
KR100668664B1 KR1020050111591A KR20050111591A KR100668664B1 KR 100668664 B1 KR100668664 B1 KR 100668664B1 KR 1020050111591 A KR1020050111591 A KR 1020050111591A KR 20050111591 A KR20050111591 A KR 20050111591A KR 100668664 B1 KR100668664 B1 KR 100668664B1
Authority
KR
South Korea
Prior art keywords
encryption
data
block
decryption
aes
Prior art date
Application number
KR1020050111591A
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 KR1020050111591A priority Critical patent/KR100668664B1/en
Application granted granted Critical
Publication of KR100668664B1 publication Critical patent/KR100668664B1/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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

A module and method for encryption/decryption by using AES rijndael block algorithm are provided to facilitate a module design process by composing equally an encryption process and a decryption process. A sub-byte block unit(420) performs a substitutional operation for a plaintext and recovers the operated plaintext. A shift row block unit(430) shifts rows of a data matrix processed by the sub-byte block unit or recovers the shifted rows. A mix column block unit(450) converts linearly or inversely the data processed by the shift row block unit. A first MUX(440) receives selectively the data processed by the shift row block unit. A second MUX(460) receives selectively the plaintext or the encryption text, the data processed by the mix column block unit or the data transmitted from the first MUX. A third MUX(490) selects a round key. A round key processing block unit(470) receives the selected data from the second MUX and the selected round key from the third MUX and encrypts or decrypts the data.

Description

AES 라인달 블록 알고리즘을 이용하는 암호화/복호화 장치 및 방법{Module and Method for Encryption/Decryption by Using AES Rijndael Block Algorithm}Device and method for encrypting / decrypting using AES Linedal Block Algorithm {Adule and Method for Encryption / Decryption by Using AES Rijndael Block Algorithm}

도 1은 종래 AES 라인달 암호화 알고리즘을 설명하기 위한 하드웨어 구성도,1 is a hardware configuration diagram illustrating a conventional AES linedal encryption algorithm;

도 2는 종래 AES 라인달 복호화 알고리즘을 설명하기 위한 하드웨어 구성도,2 is a hardware configuration diagram for explaining a conventional AES linedal decoding algorithm;

도 3은 AES 라인달 암호화 및 복호화 블록을 조합한 종래의 하드웨어 블록도,3 is a conventional hardware block diagram combining AES linedal encryption and decryption blocks;

도 4는 본 발명의 실시예에 따른 AES 라인달 암호화 및 복호화 블록을 조합한 하드웨어 블록도,4 is a hardware block diagram combining AES linedal encryption and decryption blocks according to an embodiment of the present invention;

도 5는 본 발명에 따른 AES 라인달 암호화 및 복호화 블록에서 암호화 및 복호화시 각 먹스(Mux)의 설정 값을 예시한 표,5 is a table illustrating a setting value of each mux during encryption and decryption in the AES linedal encryption and decryption block according to the present invention;

도 6은 본 발명의 실시예에 따라 AES 라인달 암호화 및 복호화 블록을 조합한 하드웨어에서의 암호화 과정을 설명하기 위한 도면,6 is a diagram for describing an encryption process in hardware combining AES line-dal encryption and decryption block according to an embodiment of the present invention;

도 7은 본 발명의 실시예에 따라 AES 라인달 암호화 및 복호화 블록을 조합한 하드웨어에서의 복호화 과정을 설명하기 위한 도면이다.7 is a diagram illustrating a decryption process in hardware combining AES line-dal encryption and decryption blocks according to an embodiment of the present invention.

본 발명은 AES(Advanced Encryption Standard) 라인달(Rijndael) 블록 알고리즘을 이용하는 암호화/복호화 장치 및 방법에 관한 것이다. 더욱 상세하게는, 전송 데이터의 암호화 및 복호화를 위한 AES 라인달 블록 알고리즘에서 암호화 과정과 복호화 과정에 필요한 하드웨어 블록 배열을 같도록 하여 하드웨어 설계 및 수정을 간소화시키는 AES 라인달 블록 알고리즘을 이용하는 암호화/복호화 장치 및 방법에 관한 것이다.The present invention relates to an encryption / decryption apparatus and method using the Advanced Encryption Standard (AES) Rijndael block algorithm. More specifically, in the AES linedal block algorithm for encrypting and decrypting transmission data, encryption / decryption using the AES linedal block algorithm that simplifies hardware design and modification by making hardware block arrangements necessary for the encryption process and the decryption process the same. An apparatus and method are provided.

인터넷 및 이동통신망을 이용한 전자 결재 등이 활발해지면서, 개인 정보의 보안이 매우 중요시 여겨지고 있다. 이에 따라 개인 정보 보안을 위한 암호화 및 복호화 과정이 요구되고 있으며, 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 linedal block algorithm using a key of 128 bits or more has been proposed.

도 1은 종래 AES 라인달 암호화 알고리즘을 설명하기 위한 하드웨어 구성도이다.1 is a hardware configuration diagram illustrating a conventional AES linedal encryption algorithm.

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

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

여기서, 암호화 초기 라운드 처리부(110), 암호화 반복 라운드 처리부(120) 및 암호화 마지막 라운드 처리부(130)에 각각 포함되는 라운드키 처리 블록은 입력된 암호화 라운드키(Round KEY)를 전달받아 암호화를 위한 키 작업을 수행한다.Here, the round key processing blocks included in the encryption initial round processing unit 110, the encryption repeat round processing unit 120, and the encryption last round processing unit 130 respectively receive the input encryption round key (Round KEY) for encryption. Do the work.

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

이와 같이 암호화된 데이터가 전달되면, 이를 원래의 평문으로 복원시키기 위해서 수신된 암호문의 해석을 위한 복호화 알고리즘을 필요로 한다.When the encrypted data is transmitted as described above, a decryption algorithm for interpreting the received cipher text is required to restore it to the original plain text.

도 2는 종래 AES 라인달 복호화 알고리즘을 설명하기 위한 하드웨어 구성도이다.2 is a hardware configuration diagram illustrating a conventional AES linedal decoding algorithm.

AES 라인달 알고리즘에서 복호화 알고리즘의 하드웨어 구성도 암호화 알고리 즘과 같이 복호화 초기 라운드 처리부(210), 복호화 반복 라운드 처리부(220) 및 복호화 마지막 라운드 처리부(230)로 구성된다.The hardware configuration of the decryption algorithm in the AES linedal algorithm is also composed of the decryption initial round processing unit 210, the decryption repeat round processing unit 220, and the decryption last round processing unit 230, like the encryption algorithm.

복호화 초기 라운드 처리부(210)는 복호화를 위한 라운드키 처리 작업을 수행하는 라운드키 처리(AddRoudnKey) 블록으로 구성된다. 복호화 반복 라운드 처리부(220)는 쉬프트된 행을 다시 원래대로 복귀시키기 위한 역쉬프트로우(InvShiftRows) 블록(222), 대치 연산이 수행된 암호문을 복귀시키기 위한 역서브바이트(InvSubBytes) 블록(224), 복호화를 위한 라운드키 처리를 수행하는 라운드키 처리(AddRoudnKey) 블록(226) 및 추가 선형 변환을 역수행하기 위한 역믹스컬럼(InvMixColums) 블록(228)을 포함한다. 그리고, 복호화 마지막 라운드 처리부(230)는 역쉬프트로우 블록, 역서브바이트 블록 및 라운드키 처리 블록을 포함한다. The decryption initial round processing unit 210 includes a round key processing (AddRoudnKey) block that performs a round key processing operation for decryption. The decryption repetition round processing unit 220 may include an InvShiftRows block 222 for returning the shifted row back to the original position, an InvSubBytes block 224 for returning the cipher text on which the substitution operation was performed, A round key processing (AddRoudnKey) block 226 for performing round key processing for decryption and an InvMixColums block 228 for inversely performing an additional linear transformation. The decryption last round processor 230 includes an inverse shift row block, an inverse subbyte block, and a round key processing block.

여기서도, 암호화 알고리즘과 동일하게 복호화 초기 라운드 처리부(210), 복호화 반복 라운드 처리부(220) 및 복호화 마지막 라운드 처리부(230)에 각각 포함되는 라운드키 처리 블록은 암호화 데이터 수신 장비에서 사전에 포함되어 있던 암호화 라운드키(Round KEY)를 전달받아 복호화를 위한 라운드키 처리 작업을 수행한다. 이 때, 암호화 데이터 수신 장비는 통신망을 통하여 암호화 라운드키(Round KEY)를 암호화된 데이터와 별도로 수신하고, 수신된 암호화 라운드키를 이용하여 복호화를 위한 라운드키 처리 작업을 수행할 수도 있다.Here, similarly to the encryption algorithm, the round key processing blocks included in the decryption initial round processing unit 210, the decryption repeat round processing unit 220, and the decryption last round processing unit 230, respectively, are encrypted in advance in the encryption data receiving device. Receives round key and performs round key processing for decryption. In this case, the encrypted data receiving apparatus may separately receive the encrypted round key from the encrypted data through a communication network, and perform a round key processing operation for decryption using the received encrypted round key.

이와 같은 AES 라인달 블록 알고리즘의 암호화 반복 라운드 처리부(120)와 복호화 반복 라운드 처리부(220)를 살펴보면, 암호화 과정에서는 서브바이트 처리 후, 쉬프트로우 과정으로 진행되는데 반하여, 복호화 과정에서는 역쉬프트로우 처 리 후, 역서브바이트 과정으로 진행됨을 확인할 수 있다. 또한, 암호화 과정에서는 믹스컬럼 과정 처리 후, 라운드키 처리 과정으로 진행되는데 반하여, 복호화 과정에서는 라운드키 처리 과정 후, 역믹스컬럼 과정으로 진행됨을 확인할 수 있다.Looking at the encryption iteration round processing unit 120 and the decryption iteration round processing unit 220 of the AES linedal block algorithm as described above, in the encryption process, after the sub-byte processing, the process proceeds to the shift row process, while in the decryption process inverse shift processing Afterwards, it can be confirmed that the reverse subbyte process is performed. In addition, in the encryption process, after the process of the mix column process, the process proceeds to the round key process, while in the decryption process, after the process of the round key process, it can be seen that proceeds to the reverse mix column process.

암호화 마지막 라운드처리부(130) 및 복호화 마지막 라운드 처리부(230)에 있어서도, 암호화 과정의 서브바이트 처리 후 쉬프트로우로 진행되는데 반하여, 복호화 과정에서는 역쉬프트로우 처리 후 역서브바이트 과정으로 진행된다.The encryption last round processing unit 130 and the decryption last round processing unit 230 also proceed to shift after the subbyte processing of the encryption process, whereas in the decryption process, the reverse shift process is performed to the reverse subbyte process.

이와 같은 AES 라인달 암호화 블록 및 복호화 블록은 하나의 하드웨어로 구성될 수 있다.Such an AES linedal encryption block and decryption block may be configured as one hardware.

도 3은 AES 라인달 암호화 및 복호화 블록을 조합한 종래의 하드웨어 블록도이다.3 is a conventional hardware block diagram combining AES linedal encryption and decryption blocks.

도 3과 같이 구성되는 AES 라인달 알고리즘의 하드웨어 블록도는 암호화 과정에서의 반복 라운드 처리가 서브바이트 블록(122), 쉬프트로우 블록(124), 믹스컬럼 블록(126), 제1 먹스(Mux)(312) 및 라운드키 처리 블록(128)의 5 단계를 거치게 된다. 반면, 복호화 과정에서의 반복 라운드 처리는 역쉬프트로우 블록(222), 역서브바이트 블록(224), 제2 먹스(322), 라운드키 처리 블록(226), 역믹스컬럼 블록(228) 및 제3 먹스(324)의 6 단계를 거치게 된다. 이와 같이 암호화와 복호화를 위하여 거치는 단계가 상이함에 따라, 입력되는 데이터에 대한 출력 시간이 상이해지며 유사 블록 간의 모듈화가 어렵고, 공통으로 사용되는 데이터 버퍼(Data Buffer)(310, 320) 및 라운드키 처리 블록(128, 226)에 대해서도 암호화 블록과 복호화 블록에 각각 필요하게 된다.In the hardware block diagram of the AES linedal algorithm configured as shown in FIG. 3, iterative round processing in the encryption process is performed by subbyte block 122, shift row block 124, mix column block 126, and first mux. 312 and the round key processing block 128. On the other hand, the iterative round processing in the decoding process is performed by the reverse shift block 222, the reverse subbyte block 224, the second mux 322, the round key processing block 226, the inverse mix column block 228 and the first. Three stages of the mux 324 is to go through. As the steps for encryption and decryption are different in this way, the output time for input data is different, and it is difficult to modularize similar blocks, and commonly used data buffers 310 and 320 and round keys. The processing blocks 128 and 226 are also required for the encryption block and the decryption block, respectively.

즉, 종래의 AES 라인달 블록 알고리즘을 하드웨어로 구현하는 경우, 암호화 과정과 복호화 과정의 사용하는 블록 순서가 상이하여 모듈화가 어렵고, 하드웨어 설계시 공통으로 사용될 수 있는 데이터 버퍼 및 라운드키 처리 블록에 대해서도 각각 별도의 설계가 필요하여 설계가 복잡해지며, 데이터 버퍼가 각각 따로 존재하여 하드웨어 자원이 낭비된다. 또한, 입력에 대한 출력 시간 및 성능이 비대칭적으로 되어 AES 라인달 블록 알고리즘이 적용되는 집적회로를 설계할 때, 각 경로 시간 지연을 고려해야 함에 따라 AES 라인달 블록 알고리즘의 설계 및 수정에 많은 시간 및 노력이 요구된다.That is, in the case of implementing the conventional AES linedal block algorithm in hardware, the block order of the encryption process and the decryption process is different, making it difficult to modularize, and the data buffer and the round key processing block that can be commonly used in hardware design. Each design requires a separate design, which complicates the design, and separates data buffers, which wastes hardware resources. In addition, when designing an integrated circuit to which the AES linedal block algorithm is applied due to the asymmetrical output time and performance of the input, each path time delay must be taken into consideration. Effort is required.

한국공개특허 제2002-0087331호 '부분 라운드간 파이프라인 기법을 이용한 AES Rijndael 암호 및 복호 회로'(2002.11.22) 및 한국공개특허 제2004-0045517호 'Rijndael 암호를 이용한 블록 데이터 실시간 암호 복호화 장치 및 방법'(2004.06.02)을 통하여 효율이 뛰어난 암호화 회로 및 복호화 회로를 제공하고 있으나, 이 또한 암호화 과정과 복호화 과정이 서로 상이하여, 암호화 및 복호화의 동시에 처리할 수 있는 모듈화하기가 어려우며, 하드웨어 설계시 각각의 설계가 필요하고, 자원이 낭비되는 종래의 문제점을 여전히 갖고 있다.Korea Patent Publication No. 2002-0087331 'AES Rijndael cipher and decryption circuit using partial round-to-round pipeline technique' (2002.11.22) and Korea Patent Publication No. 2004-0045517 'block data real time encryption and decryption apparatus using Rijndael cipher and Method '(2004.06.02) provides an efficient encryption circuit and a decryption circuit, but since the encryption process and the decryption process are different from each other, it is difficult to modularize to simultaneously process the encryption and decryption, and the hardware design There is still a conventional problem in that each design is required and resources are wasted.

이와 같은 문제점을 해결하기 위하여, 본 발명은 전송 데이터의 암호화 및 복호화를 위한 AES 라인달 블록 알고리즘에서 복호화 알고리즘의 순서를 변경하여 암호화와 복호화 과정이 동일하도록 변경한 뒤, 유사한 기능을 수행하는 블록을 하나로 블록화하여 성능을 개선시키는 AES 라인달 블록 알고리즘을 이용하는 암호화/ 복호화 장치 및 방법을 제공한다.In order to solve this problem, the present invention changes the order of decryption algorithms in the AES linedal block algorithm for encrypting and decrypting transmission data so that the encryption and decryption processes are the same, and then performs a block performing a similar function. Provided are an encryption / decryption apparatus and method using an AES linedal block algorithm that blocks and improves performance.

이러한 기술적 과제를 달성하기 위하여 본 발명은, AES 라인달 알고리즘의 암호화 및 복호화 장치로서, AES 라인달 알고리즘에 따라 데이터의 암호화 및 복호화를 실행하는 장치에 있어서, 암호화를 위해 입력되는 평문의 대치 연산을 수행하거나, 대치 연산된 암호문을 복귀시키는 서브바이트(SubBytes) 블록부; 서브바이트 블록부에 의해 처리된 데이터의 행렬에서 행을 이동시키거나, 이동된 행을 원래대로 복귀시키는 쉬프트로우(ShiftRows) 블록부; 쉬프트로우 블록부에 의해 처리된 데이터를 추가 선형 변화시키거나, 역변환시키는 믹스컬럼(MixColums) 블록부; 암호화 또는 복호화에 따라 쉬프트로우 블록부에서 처리된 데이터를 선별 수신하는 제1 먹스(Mux); 암호화를 위해 입력되는 평문이나 암호문, 믹스컬럼 블록부를 통해 처리된 데이터, 또는 제1 먹스로부터 전달되는 데이터를 선별 수신하는 제2 먹스; 암호화 또는 복호화를 위한 라운드키 처리 작업에서 사용되는 라운드키를 선별하는 제3 먹스; 및 제2 먹스로부터 선별된 데이터를 수신하고, 제3 먹스를 통해 선별된 라운드키를 수신하여, 라운드키 처리 작업을 통해 데이터를 암호화 또는 복호화하여 출력하는 라운드키 처리(AddRoundKey) 블록을 포함한다. In order to achieve the above technical problem, the present invention provides a device for encrypting and decrypting an AES linedal algorithm. In an apparatus for encrypting and decrypting data according to the AES linedal algorithm, an alternate operation of plain text input for encryption is performed. A SubBytes block unit for performing or returning a substituted cipher text; A ShiftRows block unit for shifting rows in the matrix of data processed by the subbyte block unit or returning the shifted rows to their original positions; A MixColums block unit for further linearly changing or inversely transforming data processed by the shift block unit; A first mux for selectively receiving data processed by the shift block unit according to encryption or decryption; A second mux for selectively receiving plain text or cipher text input for encryption, data processed through the mix column block unit, or data transmitted from the first mux; A third mux for selecting a round key used in a round key processing operation for encryption or decryption; And a round key processing (AddRoundKey) block for receiving the selected data from the second mux, receiving the round key selected through the third mux, and encrypting or decrypting the data through a round key processing operation.

또한, 제2의 기술적 과제를 달성하기 위하여 본 발명은, AES 라인달 알고리즘의 암호화 방법으로서, AES 라인달 알고리즘에 따라 입력되는 평문 데이터를 암호화하는 방법에 있어서, (a) 암호화를 위해 입력되는 평문 형식의 초기 데이터를 암호화 라운드키를 이용하여 키 처리하는 단계; (b) 키 처리된 초기 데이터를 대치 연산 처리한 후 초기 데이터 구성 요소의 행렬에서 행을 이동시켜서 추가 선형 변환시키는 반복 라운드 처리하는 단계; (c) 반복 라운드 처리된 데이터를 암호화 라운드키를 이용하여 키 처리하는 단계; (d) 키 처리된 반복 라운드 처리 데이터를 대치 연산 처리한 후, 반복 라운드 처리 데이터 구성 요소의 행렬에서 행을 이동시키는 마지막 라운드 처리하는 단계; 및 (e) 마지막 라운드 처리된 데이터에 암호화 라운드키를 이용한 키 처리를 수행하여 생성되는 암호문을 출력하는 단계를 포함한다.In addition, in order to achieve the second technical problem, the present invention provides a method for encrypting plain text data input according to an AES linedal algorithm as an encryption method of an AES linedal algorithm, which includes (a) plaintext input for encryption. Key processing the initial data of the type using an encryption round key; (b) performing an iterative rounding process by shifting rows in the matrix of initial data components and then performing additional linear transformations after the keyed initial data is substituted; (c) key processing the repeatedly rounded data using an encryption round key; (d) performing a substitution operation on the keyed iterative rounded data and then performing a final rounded process of moving rows in the matrix of the iterative rounded data elements; And (e) outputting a cipher text generated by performing key processing using an encryption round key on the last round processed data.

또한, 제3의 기술적 과제를 달성하기 위하여 본 발명은, AES 라인달 알고리즘의 복호화 방법으로서, AES 라인달 알고리즘에 따라 입력되는 암호문 데이터를 복호화하는 방법에 있어서, (a) 복호화를 위해 입력되는 암호문 형식의 초기 데이터를 복호화 라운드키를 이용하여 키 처리하는 단계; (b) 키 처리된 초기 데이터를 역서브바이트, 역쉬프트로우 및 역믹스 컬럼 처리하는 반복 라운드 처리를 실행하는 단계; (c) 반복 라운드 처리된 데이터를 복호화 라운드키를 이용하여 키 처리하는 단계; (d) 키 처리된 반복 라운드 처리 데이터를 역서브바이트 및 역쉬프트로우 처리하는 마지막 라운드 처리를 실행하는 단계; 및 (e) 마지막 라운드 처리된 데이터에 복호화 라운드키를 이용한 키 처리를 수행하여 생성되는 평문을 출력하는 단계를 포함한다.In addition, in order to achieve the third technical problem, the present invention provides a decryption method of the AES linedal algorithm, and in the method of decrypting ciphertext data input according to the AES linedal algorithm, (a) a ciphertext input for decryption. Key-processing initial data of a format using a decryption round key; (b) executing an iterative round process of processing the sub-bytes, reverse shifts, and reverse mix columns of the keyed initial data; (c) key processing the repeatedly rounded data using a decryption round key; (d) executing a final round processing of reverse subbytes and reverse shift processing of the keyed repetitive round processing data; And (e) outputting the plain text generated by performing key processing using the decryption round key on the last round processed data.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기 에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 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, without excluding 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.

도 4는 본 발명의 실시예에 따른 AES 라인달 암호화 및 복호화 블록을 조합한 하드웨어 블록도이다.4 is a hardware block diagram combining AES linedal encryption and decryption blocks according to an embodiment of the present invention.

본 발명에 따른 AES 라인달 암호화 및 복호화 블록 알고리즘을 하드웨어로 구성하면, 도 4와 같이 구성된다. 본 발명에 따른 암호화 및 복호화 블록 알고리즘은, 데이터 버퍼(410), 서브바이트 블록부(420), 쉬프트로우 블록부(430), 제1 먹스(440), 믹스컬럼 블록부(450), 제2 먹스(460), 라운드키 처리 블록(470), 역믹스컬럼 블록(480) 및 제3 먹스(490)를 포함한다.If the AES linedal encryption and decryption block algorithm according to the present invention is configured in hardware, it is configured as shown in FIG. The encryption and decryption block algorithm according to the present invention includes a data buffer 410, a subbyte block unit 420, a shift row block unit 430, a first mux 440, a mixed column block unit 450, and a second block. The mux 460 includes a round key processing block 470, an inverse mix column block 480, and a third mux 490.

여기서, 서브바이트 블록부(420)는 암호화를 위한 서브바이트 블록(422) 및 복호화를 위한 역서브바이트 블록(424)을 포함하고, 쉬프트로우 블록부(430)는 암호화를 위하여 쉬프트로우 블록(432)과, 복호화를 위한 역쉬프트로우 블록(434)을 포함하며, 믹스컬럼 블록부(450)는 암호화를 위한 믹스컬럼 블록(452)과 복호화를 위한 역믹스컬럼 블록(454)을 포함한다.Here, the subbyte block unit 420 includes a subbyte block 422 for encryption and an inverse subbyte block 424 for decryption, and the shift row block unit 430 includes a shift row block 432 for encryption. ), And an inverse shift row block 434 for decryption, and the mix column block unit 450 includes a mix column block 452 for encryption and an inverse mix column block 454 for decryption.

또한, 제1 먹스(440), 제2 먹스(460) 및 제3 먹스(490)는 암호화 및 복호화 과정에서 상황에 따라 진행될 다음 단계를 선택하는 역할을 수행한다.In addition, the first mux 440, the second mux 460, and the third mux 490 play a role of selecting a next step to be performed according to a situation in the encryption and decryption process.

여기서, 본 발명에 따른 AES 라인달 암호화 및 복호화 블록 알고리즘에서, 복호화를 위한 역쉬프트로우 블록(434)과 역서브바이트 블록(424)의 위치가 종래 복호화 과정에서의 위치와 상이함을 확인할 수 있다. 즉, 종래에는 역쉬프트로우 블록(434) 계산 결과를 먼저하고, 역서브바이트 블록(424)을 통한 계산을 하였으나, 본 발명에 따른 AES 라인달 암호화 및 복호화 블록 알고리즘에서는, 역서브바이트 블록(424)을 통한 계산이 먼저 수행된 뒤, 역쉬프트로우 블록(434)을 통한 계산이 수행된다.Here, in the AES line moon encryption and decryption block algorithm according to the present invention, it can be seen that the positions of the reverse shift block 434 and the reverse subbyte block 424 for decryption are different from those in the conventional decryption process. . That is, in the related art, the inverse shift block 434 calculation result is performed first, and the inverse subbyte block 424 is calculated. However, in the AES line moon encryption and decryption block algorithm according to the present invention, the inverse subbyte block 424 is used. Is calculated first, followed by the inverse shift block 434.

이것은 역서브바이트 블록(424)을 통한 계산과, 역쉬프트로우 블록(434)을 통한 계산이 서로 영향을 주지않기 때문에, 순서를 바꾸어 블록을 재배열시키더라도 계산에 따른 결과치는 동일하게 된다. 여기서, 역서브바이트 블록(424)에서 실행되는 연산을 f역서브바이트, 역쉬프트로우 블록(434)에서 실행되는 연산을 f역쉬프트로우라고 표시하면, 수학식 1과 같이 표현된다.This is because the calculation through the inverse subbyte block 424 and the calculation through the inverse shift block 434 do not affect each other, so that the result of the calculation becomes the same even if the blocks are rearranged in a reversed order. Here, the sub station when the operation performed on the block of bytes 424, the operation f-byte sub-station, the low reverse shift block 434 performed in the display is called reverse shift f low, and is expressed by equation (1).

f역쉬프트로우{f역서브바이트(Data)} = f역서브바이트{f역쉬프트로우(Data)}f reverse shift {f reverse subbyte (Data)} = f reverse subbyte {f reverse shift (Data)}

이와 같은 복호화 과정에서 라운드키 처리 블록(470)과 역믹스컬럼 블록(454)을 살펴보면, 종래의 복호화 블록 알고리즘에서는 라운드키 처리 블록(470)을 통한 계산이 먼저 이루어진 뒤, 역믹스컬럼 블록(454)에 의한 계산이 실행되도록 라운드키 처리블록(470)이 역믹스컬럼 블록(454)의 앞에 위치하고 있다.In the decoding process, the round key processing block 470 and the inverse mix column block 454 are described. In the conventional decoding block algorithm, the calculation using the round key processing block 470 is performed first, and then the inverse mix column block 454. The round key processing block 470 is located in front of the inverse mix column block 454 so that the calculation by.

역믹스컬럼 블록(454)의 경우 두 입력에 대한 여러 XOR 연산으로 이루어지는 블록이며, 라운드키 처리 블록(470)은 두 입력에 대한 단순 XOR 연산 처리를 실행하는 블록이므로, 역믹스컬럼 블록(454)에서 실행되는 연산을 f역믹스컬럼, 라운드키 처리 블록(434)에서 실행되는 연산을 f라운드키 처리라고 표시하면, 역믹스컬럼 블록(454)과 라운드키 처리 블록(470)의 연산은 수학식 2와 같이 단순 XOR 연산식으로 표현할 수 있다.The inverse mix column block 454 is a block consisting of several XOR operations on two inputs, and the round key processing block 470 is a block that executes a simple XOR operation processing on two inputs, and thus the inverse mix column block 454. If the operation performed at f denotes an inverse mix column and the round key processing block 434 as the f round key processing, the operation of the inverse mix column block 454 and the round key processing block 470 is expressed as: As shown in 2, it can be expressed as a simple XOR expression.

f역믹스컬럼{f라운드키처리(A, B)} = f역믹스컬럼(A XOR B)f Inverse Mix Column {f Round Key Processing (A, B)} = f Inverse Mix Column (A XOR B)

수학식 2에 따라, 상태 입력 A와 라운드키 입력 B를 라운드키 처리한 후, 역믹스컬럼 블록(454)을 통해 계산한 결과는, 상태 입력 A와 라운드키 입력 B를 XOR 연산한 결과를 역믹스컬럼 블록(454)을 통해 계산한 결과와 동일함을 알 수 있다. 그리고, 이 결과는 상태 입력 A와 라운드키 입력 B를 각각 역믹스컬럼 블록(454)을 통해 계산한 뒤 XOR 연산한 결과와 수학적으로 동일하다.According to Equation 2, after the round key processing of the state input A and the round key input B, the result of calculating through the inverse mix column block 454 is the result of XOR operation of the state input A and the round key input B. It can be seen that it is the same as the result calculated by the mix column block 454. The result is mathematically identical to the result of the XOR operation after calculating the state input A and the round key input B through the inverse mix column block 454, respectively.

즉, 상태 입력 A와 라운드키 입력 B에 대한 라운드키 처리 블록(470)은 'A XOR B'로 표현할 수 있으며, 'A XOR B'에 대한 역믹스컬럼 처리는 A, B에 대한 각각의 역믹스컬럼 처리 결과에 대한 XOR 연산과 같으며, XOR 수학 연산에서는 교환 법칙이 성립함에 따라 수학식 3과 같이 표현될 수 있다. That is, the round key processing block 470 for the state input A and the round key input B may be expressed as 'A XOR B', and the inverse mix column processing for the 'A XOR B' may be performed inversely with respect to A and B. It is the same as the XOR operation on the mixed column processing result, and in the XOR math operation, it can be expressed as Equation 3 according to the exchange law.

f역믹스컬럼(A XOR B) = f역믹스컬럼(A) XOR f역믹스컬럼(B)f Inverse mix column (A XOR B) = f Inverse mix column (A) XOR f Inverse mix column (B)

= f역믹스컬럼(B) XOR f역믹스컬럼(A)= f inverse mix column (B) XOR f inverse mix column (A)

이에 따라서, 상태에 대한 역믹스컬럼 과정이 먼저 선행될 수도 있으며, 역믹스컬럼 블록(454)이 먼저 배치되고, 라운드키 처리 블록(470)이 나중에 배치될 수 있다. 단, 역믹스칼럼 블록(454)과 라운드키 처리 블록(470)의 배치 순서가 달라짐에 따라, 복호화 시 라운드키 처리 블록(470)으로 입력되는 복호화 라운드키도 역믹스컬럼 과정을 추가로 필요로 하며, 이를 위하여 키 관리부(Key Management)에는 역믹스컬럼 블록(480)이 추가로 포함된다.Accordingly, the inverse mix column process for the state may be preceded first, the inverse mix column block 454 may be disposed first, and the round key processing block 470 may be disposed later. However, as the arrangement order of the inverse mix column block 454 and the round key processing block 470 is changed, the decryption round key input to the round key processing block 470 during decryption also requires an inverse mix column process. For this purpose, the inverse mix column block 480 is additionally included in the key management unit.

이와 같은 수학식 1, 수학식 2 및 수학식 3을 통해서 AES 라인달 복호화 블록도 암호화 블록과 같은 순서로 배열할 수 있으며, 성격이 유사한 서브바이트 블록(422)과 역서브바이트 블록(424), 쉬프트로우 블록(432)과 역쉬프트로우 블록(434), 믹스컬럼 블록(452)과 역믹스컬럼 블록(454)을 모듈화시킬 수 있다. 이와 같은 모듈화에 따라, 데이터 경로가 간단해지며 복호화에 필요한 데이터 버퍼가 필요 없게 된다.Through Equation 1, Equation 2, and Equation 3, the AES linedal decryption blocks may also be arranged in the same order as the encryption block, and the subbyte block 422 and the inverse subbyte block 424 having similar characteristics may be arranged. The shift row block 432 and the reverse shift block 434, the mix column block 452, and the inverse mix column block 454 may be modularized. This modularization simplifies the data path and eliminates the need for a data buffer for decryption.

도 5는 본 발명에 따른 AES 라인달 암호화 및 복호화 블록에서 암호화 및 복호화시 각 먹스(Mux)의 설정 값을 예시한 표이다.5 is a table illustrating a setting value of each mux during encryption and decryption in the AES line-dal encryption and decryption block according to the present invention.

본 발명에 따른 AES 라인달 암호화 및 복호화 블록을 조합한 하드웨어 블록도에서 제1 먹스(440), 제2 먹스(460) 및 제3 먹스(490)는 상황에 따라 다음 단계 로 진행될 암호화 블록 또는 복호화 블록을 선택해야한다.In the hardware block diagram combining the AES linedal encryption and decryption block according to the present invention, the first mux 440, the second mux 460, and the third mux 490 are encrypted blocks or decryptions to proceed to the next step according to the situation. You need to select a block.

제1 먹스(440)는 쉬프트로우 블록부(430)와 믹스컬럼 블록부(450) 사이에 위치하여, 암호화 작업이 이루어지는 경우에는 0을 선택하여 쉬프트로우 블록(432)으로부터 수신되는 값을 믹스컬럼 블록부(450)로 전달하고, 복호화 작업이 이루어지는 경우에는 1을 선택하여, 역쉬프트로우 블록(434)으로부터 수신되는 값을 믹스컬럼 블록부(450)로 전달한다.The first mux 440 is located between the shift row block unit 430 and the mix column block unit 450, and when an encryption operation is performed, selects 0 to mix the value received from the shift row block 432. When the decoding operation is performed, the block unit 450 transmits the value received from the reverse shift block 434 to the mix column block unit 450.

제2 먹스(460)는 데이터 입력부(Input data)로부터 입력되는 데이터, 믹스컬럼 블록부(450)로부터 믹스컬럼 처리된 값 또는 역믹스컬럼 처리된 값 및 제1 먹스(440)로부터 쉬프트로우 처리된 값 또는 역쉬프트로우 처리된 값을 선택하여 수신한다.The second mux 460 is a data input from the data input unit (Input data), the mixed column processed value from the mix column block unit 450 or the reverse mixed column processed value and the shift-processed from the first mux 440 Select a value or reverse shifted value to receive it.

제2 먹스(460)는 라운드 처리 단계에 따라서 수신할 값을 선택하여 다음 단계로 진행시킨다. 즉, 암호화 초기 라운드 처리 또는 복호화 초기 라운드 처리 단계에서는 0을 선택하여 데이터 입력부로부터 전달되는 데이터를 수신하여 라운드키 처리 블록(470)으로 전달하고, 암호화 반복 라운드 처리 단계에서는 2를 선택하여 믹스컬럼 블록(452)으로부터 전달되는 값을 라운드키 처리 블록(470)으로 전달하며, 복호화 반복 라운드 처리 단계에서는 1을 선택하여 역믹스컬럼 블록(454)으로부터 전달되는 값을 라운드키 처리 블록(470)으로 전달한다. 그리고, 암호화 마지막 라운드 처리 또는 복호화 마지막 라운드 처리 단계에서는 3을 선택하여 제1 먹스(440)로부터 수신되는 값을 라운드키 처리 블록(470)으로 전달하는 역할을 수행한다.The second mux 460 selects a value to be received according to the round processing step and proceeds to the next step. That is, in the encryption initial round processing or decryption initial round processing step, 0 is selected to receive the data transmitted from the data input unit and transmitted to the round key processing block 470, and in the encryption iteration round processing step, 2 is selected to mix column block. The value transmitted from 452 is transmitted to the round key processing block 470, and in the decryption iteration round processing step, 1 is selected and the value transmitted from the inverse mix column block 454 is transmitted to the round key processing block 470. do. In the encryption final round processing or the decryption final round processing step, 3 is selected to transmit a value received from the first mux 440 to the round key processing block 470.

제3 먹스(490)는 키 관리부(Key Management)에 포함되어 암호화 라운드키(Round KEY)를 수신하거나, 역믹스컬럼 블록(480)으로부터 수신되는 복호화에 필요한 역믹스컬럼 값을 수신한다. 즉, 제3 먹스(490)는 암호화 작업을 수행하는 경우에는 '0'을 선택하여 암호화 라운드키를 수신하고, 복호화 작업을 수행하는 경우에는 '1'을 선택하여 역믹스컬럼 값을 수신하여 라운드키 처리 블록(470)으로 전달한다.The third mux 490 is included in the key management unit to receive an encryption round key or receive an inverse mix column value for decryption received from the inverse mix column block 480. That is, the third mux 490 selects '0' to receive an encryption round key when performing an encryption operation, and selects '1' to receive an inverse mix column value when performing a decryption operation. Passed to key processing block 470.

여기서, 제1 먹스(440), 제2 먹스(460) 및 제3 먹스(490)에 설정되는 값은 AES 라인달 암호화 및 복호화 블록의 구성 방법에 따라서 다양하게 변형될 수 있다.Here, the values set in the first mux 440, the second mux 460, and the third mux 490 may be variously modified according to the method of configuring the AES linedal encryption and decryption block.

도 6은 본 발명의 실시예에 따라 AES 라인달 암호화 및 복호화 블록을 조합한 하드웨어에서의 암호화 과정을 설명하기 위한 도면이다.FIG. 6 is a diagram for describing an encryption process in hardware combining AES linedal encryption and decryption blocks according to an embodiment of the present invention.

본 발명에 따른 AES 라인달 암호화 및 복호화 블록에서의 암호화 과정은 암호화 초기 라운드 처리 단계, 암호화 반복 라운드 처리 단계 및 암호화 마지막 라운드 처리 단계로 분류된다.The encryption process in the AES linedal encryption and decryption block according to the present invention is classified into an encryption initial round processing step, an encryption iteration round processing step, and an encryption last round processing step.

암호화 초기 라운드 처리 단계에서는 데이터 입력부로부터 전달되는 평문 형태의 초기 데이터가 제2 먹스(460)로 입력된다. 제2 먹스(460)에서는 초기 데이터 입력을 위한 설정 값(0)을 선택하여 데이터 입력부로부터 전달되는 초기 데이터를 수신하여 라운드키 처리 블록(470)으로 전달한다. 그리고, 제3 먹스(490)에서 암호화 라운드키가 선택하여 라운드키 처리 블록(470)으로 전달한다. In the encryption initial round processing step, the initial data in the form of plain text transmitted from the data input unit is input to the second mux 460. The second mux 460 selects a setting value 0 for initial data input, receives initial data transmitted from the data input unit, and transmits the initial data to the round key processing block 470. The encryption round key is selected by the third mux 490 and transferred to the round key processing block 470.

라운드키 처리 블록(470)에서는 입력된 초기 데이터와 암호화 라운드키를 이 용하여 키 처리한 뒤, 데이터 버퍼(410)에 저장시킨다. 데이터 버퍼(410)에 키 처리된 초기 데이터가 입력되면, 암호화 반복 라운드 처리 단계로 진행된다.In the round key processing block 470, the key is processed using the input initial data and the encryption round key, and then stored in the data buffer 410. When the keyed initial data is input to the data buffer 410, the process proceeds to the encryption iteration round processing step.

암호화 반복 라운드 처리 단계에서는 데이터 버퍼(410)에 저장된 값이 서브바이트 블록(422)과 쉬프트로우 블록(432)을 통해 처리된 결과치가 제1 먹스(440)에 의해서 입력으로 선택된다. In the encryption iteration round processing step, a value stored in the data buffer 410 through the subbyte block 422 and the shift row block 432 is selected as an input by the first mux 440.

그리고, 제1 먹스(440)에 의해 선택된 값은 믹스컬럼 블록(452)에 의해 믹스컬럼 처리되고, 그 결과 값은 제2 먹스(460)에 의해 선택된다. Then, the value selected by the first mux 440 is mixed column processed by the mix column block 452, and the result value is selected by the second mux 460.

제2 먹스(460)에 의해 선택된 값은 라운드키 처리 블록(470)의 입력으로 작용하며, 라운드키 처리된 결과는 다시 데이터 버퍼(410)에 저장된다. 이 때, 각 라운드키 처리 과정에서 사용되는 라운드키는 키 관리부에서 생성되고, 제3 먹스(490)에 의해서 선택되어 라운드키 처리 블록(470)으로 입력된다.The value selected by the second mux 460 serves as an input of the round key processing block 470, and the result of the round key processing is again stored in the data buffer 410. At this time, the round key used in each round key processing process is generated by the key management unit, is selected by the third mux 490 and input to the round key processing block 470.

이와 같은 반복 라운드 처리 단계를 거친 후, 암호화 마지막 라운드 처리 단계를 수행하게 된다. 암호화 마지막 라운드 처리 단계에서는 반복 라운드 처리 단계를 거쳐 데이터 버퍼(410)에 저장된 값이 서브바이트 블록(422)과 쉬프트로우 블록(432)으로 입력된다. 서브바이트 블록(422)과 쉬프트로우 블록(432)에서 처리된 결과 값은 제1 먹스(440)에 의해서 선택되고, 제2 먹스(460)에서는 제1 먹스(440)에서 선택된 값을 다시 선택하여, 제1 먹스(440)의 출력 값이 믹스컬럼 블록(452)을 거치지 않고 직접 라운드키 처리 블록(470)으로 입력되도록 한다. 그리고, 라운드키 처리 블록(470)을 통과된 값을 출력함으로써 암호화를 완료한다. 이 때, 라운드키 처리 과정에서 사용되는 라운드키는 제3 먹스(490)에 의해 선택된다.After this repeated round processing step, the encryption last round processing step is performed. In the encryption final round processing step, the value stored in the data buffer 410 is input to the subbyte block 422 and the shift row block 432 through an iterative round processing step. The result values processed by the subbyte block 422 and the shift block 432 are selected by the first mux 440, and the second mux 460 selects the value selected by the first mux 440 again. The output value of the first mux 440 is directly input to the round key processing block 470 without passing through the mix column block 452. The encryption is completed by outputting the value passed through the round key processing block 470. At this time, the round key used in the round key processing is selected by the third mux 490.

이와 같은 과정을 통하여 본 발명에 따른 AES 라인달 블록 알고리즘에서의 암호화가 수행된다.Through this process, encryption is performed in the AES linedal block algorithm according to the present invention.

도 7은 본 발명의 실시예에 따라 AES 라인달 암호화 및 복호화 블록을 조합한 하드웨어에서의 복호화 과정을 설명하기 위한 도면이다.7 is a diagram illustrating a decryption process in hardware combining AES line-dal encryption and decryption blocks according to an embodiment of the present invention.

본 발명에 따른 AES 라인달 암호화 및 복호화 블록에서의 복호화 과정은 복호화 초기 라운드 처리 단계, 복호화 반복 라운드 처리 단계 및 복호화 마지막 라운드 처리 단계로 분류된다.The decryption process in the AES linedal encryption and decryption block according to the present invention is classified into a decryption initial round processing step, a decryption repeat round processing step, and a decryption last round processing step.

복호화 초기 라운드 처리 단계에서는 데이터 입력부로부터 전달되는 암호문 형태의 초기 데이터가 제2 먹스(460)로 입력된다. 제2 먹스(460)에서는 초기 데이터 입력을 위한 설정 값(0)을 선택하여 데이터 입력부로부터 전달되는 초기 데이터를 수신하여 라운드키 처리 블록(470)으로 전달한다. 그리고, 제3 먹스(490)에서 복호화 라운드키를 선택하여 라운드키 처리 블록(470)으로 전달한다. 여기서, 복호화 라운드키는 암호화 라운드키가 역믹스컬럼 블록(480)에 의해 처리된 키 값을 갖는다. In the decryption initial round processing step, the initial data in the form of a cipher text transmitted from the data input unit is input to the second mux 460. The second mux 460 selects a setting value 0 for initial data input, receives initial data transmitted from the data input unit, and transmits the initial data to the round key processing block 470. The decryption round key is selected by the third mux 490 and transmitted to the round key processing block 470. Here, the decryption round key has a key value in which the encryption round key is processed by the inverse mix column block 480.

라운드키 처리 블록(470)으로 입력된 초기 데이터와 복호화 라운드키는 라운드키 처리 블록(470)에서 키 처리되어 데이터 버퍼(410)에 저장된다. 데이터 버퍼(410)에 키 처리된 초기 데이터가 입력되면, 복호화 반복 라운드 처리 단계로 진행된다.The initial data and the decryption round key input to the round key processing block 470 are keyed at the round key processing block 470 and stored in the data buffer 410. When the keyed initial data is input to the data buffer 410, the process proceeds to the decoding iteration round processing step.

복호화 반복 라운드 처리 단계에서는 데이터 버퍼(410)에 저장된 값이 역서브바이트 블록(424)과 역쉬프트로우 블록(434)을 통해 처리된 결과치가 제1 먹스 (440)에 의해서 선택된다. In the decoding iteration round processing step, the first mux 440 selects a result value of the value stored in the data buffer 410 through the reverse subbyte block 424 and the reverse shift block 434.

그리고, 제1 먹스(440)에 의해 선택된 값은 역믹스컬럼 블록(454)에 의해 역믹스컬럼 처리되고, 그 결과 값은 제2 먹스(460)에 의해 선택된다. In addition, the value selected by the first mux 440 is reverse mixed by the inverse mix column block 454, and the result value is selected by the second mux 460.

제2 먹스(460)에 의해 선택된 값은 라운드키 처리 블록(470)의 입력으로 작용하며, 라운드키 처리된 결과는 다시 데이터 버퍼(410)에 저장된다. 이 때, 각 라운드키 처리 과정에서 사용되는 라운드키는 키 관리부에서 생성되고, 제3 먹스(490)에 의해서 선택되어 라운드키 처리 블록(470)으로 입력된다. 이 때, 사용되는 복호화 라운드키는 암호화 라운드키가 역믹스컬럼 블록(480)에 의해 처리된 값이다. The value selected by the second mux 460 serves as an input of the round key processing block 470, and the result of the round key processing is again stored in the data buffer 410. At this time, the round key used in each round key processing process is generated by the key management unit, is selected by the third mux 490 and input to the round key processing block 470. At this time, the decryption round key used is a value in which the encryption round key is processed by the inverse mix column block 480.

이와 같은 복호화 반복 라운드 처리 단계를 거친 후, 암호화 마지막 라운드 처리 단계를 수행하게 된다. 복호화 마지막 라운드 처리 단계에서는 반복 라운드 처리 단계를 거쳐 데이터 버퍼(410)에 저장된 값이 역서브바이트 블록(424)과 역쉬프트로우 블록(434)으로 입력된다. 역서브바이트 블록(424)과 역쉬프트로우 블록(434)에서 처리된 결과 값은 제1 먹스(440)에 의해서 선택되고, 제2 먹스(460)에서는 제1 먹스(440)에서 선택된 값을 다시 선택하여, 제1 먹스(440)의 출력 값이 역믹스컬럼 블록(454)을 거치지 않고 직접 라운드키 처리 블록(470)으로 입력되도록 한다. 그리고, 라운드키 처리 블록(470)을 통과된 값을 출력함으로써 복호화를 완료한다. 이 때, 라운드키 처리 과정에서 사용되는 라운드키는 제3 먹스(490)에 의해 선택된다.After the decryption iteration round processing step, the encryption final round processing step is performed. In the decoding final round processing step, the value stored in the data buffer 410 is input to the reverse subbyte block 424 and the reverse shift block 434 through the iterative round processing step. The resultant values processed in the inverse subbyte block 424 and the inverse shift block 434 are selected by the first mux 440, and the second mux 460 returns the values selected in the first mux 440. In this case, the output value of the first mux 440 is directly input to the round key processing block 470 without passing through the inverse mix column block 454. The decryption is completed by outputting the value passed through the round key processing block 470. At this time, the round key used in the round key processing is selected by the third mux 490.

이와 같은 과정을 통하여 본 발명에 따른 AES 라인달 블록 알고리즘에서의 복호화가 수행된다.Through this process, decoding is performed in the AES linedal block algorithm according to the present invention.

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다. 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.

전술한 구성에 의하여, 암호화 과정 및 복호화 과정을 동일하도록 하드웨어를 구성함에 따라, 모듈화가 쉬워져서 설계 기간을 단축할 수 있으며, 암호화 및 복호화를 위한 회로에서의 수정이 간편해지고, 시스템에 쉽게 이식할 수 있는 효과를 기대할 수 있다.According to the above-described configuration, by configuring the hardware so that the encryption process and the decryption process are the same, the modularity becomes easy, the design period can be shortened, the modification in the circuit for encryption and decryption is simplified, and the system can be easily ported to the system. You can expect the effect.

또한, 암호화 및 복호화 과정에서 입력한 데이터에 대한 출력 시간이 동일하게 되어, 복호화 시에도 암호화와 동일한 성능을 가지게 되며, 비대칭 구조로 인한 고려 사항이 없어지므로, 설계가 용이해지는 효과를 기대할 수 있다.In addition, since the output time of the data input during the encryption and decryption process is the same, and the decryption has the same performance as the encryption, and the consideration due to the asymmetric structure is eliminated, it can be expected that the design becomes easy.

Claims (18)

AES(Advanced Encryption Standard) 라인달(Rijndael) 알고리즘에 따라 데이터의 암호화 및 복호화를 실행하는 장치에 있어서,An apparatus for performing encryption and decryption of data in accordance with AES (Advanced Encryption Standard) Rijndael algorithm, 상기 암호화를 위해 입력되는 평문의 대치 연산을 수행하거나, 상기 대치 연산된 암호문을 복귀시키는 서브바이트(SubBytes) 블록부;A SubBytes block unit which performs a substitution operation of the plain text input for the encryption or returns the substituted encryption text; 상기 서브바이트 블록부에 의해 처리된 데이터의 행렬에서 행을 이동시키거나, 이동된 행을 원래대로 복귀시키는 쉬프트로우(ShiftRows) 블록부;A ShiftRows block unit for shifting rows in the matrix of data processed by the subbyte block unit or returning the shifted rows to their original positions; 상기 쉬프트로우 블록부에 의해 처리된 데이터를 추가 선형 변화시키거나, 역변환시키는 믹스컬럼(MixColums) 블록부;A MixColums block unit for further linearly changing or inversely transforming data processed by the shift block unit; 상기 암호화 또는 복호화에 따라 상기 쉬프트로우 블록부에서 처리된 데이터를 선별 수신하는 제1 먹스(Mux);A first mux for selectively receiving data processed by the shift block unit according to the encryption or decryption; 상기 암호화를 위해 입력되는 평문이나 상기 암호문, 상기 믹스컬럼 블록부를 통해 처리된 데이터, 또는 상기 제1 먹스로부터 전달되는 데이터를 선별 수신하는 제2 먹스;A second mux for selectively receiving plain text or the cipher text input for the encryption, data processed through the mix column block unit, or data transmitted from the first mux; 상기 암호화 또는 복호화를 위한 라운드키 처리 작업에서 사용되는 라운드키를 선별하는 제3 먹스; 및A third mux for selecting a round key used in the round key processing operation for encryption or decryption; And 상기 제2 먹스로부터 선별된 데이터를 수신하고, 상기 제3 먹스를 통해 선별된 라운드키를 수신하여, 상기 라운드키 처리 작업을 통해 상기 데이터를 암호화 또는 복호화하여 출력하는 라운드키 처리(AddRoundKey) 블록A round key processing block (AddRoundKey) that receives data selected from the second mux, receives a round key selected through the third mux, encrypts or decrypts the data through the round key processing operation, and outputs the encrypted data. 을 포함하는 AES 라인달 알고리즘의 암호화 및 복호화 장치.Apparatus for encrypting and decrypting AES linedal algorithm comprising a. 제1항에 있어서, 상기 서브바이트 블록부는,The method of claim 1, wherein the sub-byte block unit, 상기 암호화를 위해서 상기 평문의 대치 연산을 수행하는 서브바이트 블록; 및A subbyte block for performing the substitution operation of the plain text for the encryption; And 상기 복호화를 위해서 상기 대치 연산된 암호문을 원래대로 복귀시키는 역서브바이트(InvSubBytes) 블록InvSubBytes block for returning the substituted ciphertext to the original for decryption 을 포함하는 것을 특징으로 하는 AES 라인달 알고리즘의 암호화 및 복호화 장치.Apparatus for encrypting and decrypting an AES linedal algorithm comprising: a. 제1항에 있어서, 상기 쉬프트로우 블록부는,The method of claim 1, wherein the shift block unit, 상기 암호화를 위해서 상기 서브바이트 블록부에 의해 처리된 데이터의 행렬에서 행을 이동시키는 쉬프트로우 블록; 및A shift row block for moving rows in a matrix of data processed by the sub-byte block portion for the encryption; And 상기 복호화를 위해서 상기 암호문의 쉬프트된 행을 원래대로 복귀시키는 역쉬프트로우(InvShiftRows) 블록InvShiftRows block to return the shifted row of the ciphertext to the original for decryption 을 포함하는 것을 특징으로 하는 AES 라인달 알고리즘의 암호화 및 복호화 장치.Apparatus for encrypting and decrypting an AES linedal algorithm comprising: a. 제3항에 있어서, 상기 제1 먹스는,The method of claim 3, wherein the first mux, 상기 암호화가 진행되는 경우에는 상기 쉬프트로우 블록으로부터 전달되는 데이터를 수신하고, 상기 복호화가 진행되는 경우에는 상기 역쉬프트로우 블록으로부터 전달되는 데이터를 수신하는 것을 특징으로 하는 AES 라인달 알고리즘의 암호화 및 복호화 장치.When the encryption proceeds, the data transmitted from the shift row block is received, and when the decryption is performed, the data transmitted from the reverse shift block is received. Device. 제1항에 있어서, 상기 믹스컬럼 블록부는,The method of claim 1, wherein the mix column block portion, 상기 암호화를 위하여 상기 제1 먹스에 의해 수신된 데이터의 추가 선형 변환을 수행하는 믹스컬럼 블록; 및A mix column block for performing further linear transformation of data received by the first mux for the encryption; And 상기 복호화를 위하여 상기 제1 먹스에 의해 수신되는 추가 선형 변환된 데이터를 역변환시켜 원래대로 복귀시키는 역믹스컬럼(InvMixColums) 블록InvMixColums block for inverting and returning additional linearly transformed data received by the first mux for decoding 을 포함하는 것을 특징으로 하는 AES 라인달 알고리즘의 암호화 및 복호화 장치.Apparatus for encrypting and decrypting an AES linedal algorithm comprising: a. 제5항에 있어서, 상기 제2 먹스는,The method according to claim 5, wherein the second mux, 상기 암호화 또는 복호화 처리 과정에 따라, 상기 입력되는 평문 또는 암호문, 상기 암호화의 진행에 따라 상기 믹스컬럼 블록으로부터 전달되는 데이터, 상기 복호화의 진행에 따라 상기 역믹스컬럼 블록으로부터 전달되는 데이터 및 상기 제1 먹스로부터 수신되는 데이터 중 하나를 선별하여 상기 라운드키 처리 블록으로 전달하는 것을 특징으로 하는 AES 라인달 알고리즘의 암호화 및 복호화 장치.In response to the encryption or decryption processing, the input plain text or cipher text, data transmitted from the mix column block according to the encryption progress, data transmitted from the inverse mix column block according to the decryption progress, and the first And encrypting and transmitting one of the data received from the mux to the round key processing block. 제1항에 있어서,The method of claim 1, 상기 암호화를 위한 라운드키를 역믹스 컬럼 처리하여 상기 제3 먹스로 전달하는 제2 역믹스컬럼 블록A second reverse mix column block for processing the round key for encryption and performing a reverse mix column to the third mux; 을 추가로 포함하는 것을 특징으로 하는 AES 라인달 알고리즘의 암호화 및 복호화 장치.Apparatus for encrypting and decrypting AES linedal algorithms further comprising. 제7항에 있어서, 상기 제3 먹스는,The method according to claim 7, wherein the third mux, 상기 암호화가 진행되는 경우에는 상기 암호화를 위한 라운드키를 수신하여 상기 라운드키 처리 블록으로 전달하고, If the encryption is in progress, receives the round key for encryption and delivers to the round key processing block, 상기 복호화가 진행되는 경우에는 상기 제2 역믹스컬럼 블록으로부터 전달되는 역믹스 컬럼 처리된 라운드키를 수신하여 상기 라운드키 처리 블록으로 전달하는 것을 특징으로 하는 AES 라인달 알고리즘의 암호화 및 복호화 장치.When the decryption is in progress, the encryption and decryption apparatus of the AES line Dal algorithm, characterized in that for receiving the reverse-mixed column-processed round key delivered from the second inverse mix column block to pass to the round key processing block. AES(Advanced Encryption Standard) 라인달(Rijndael) 알고리즘에 따라 입력되는 평문 데이터를 암호화하는 방법에 있어서,In a method of encrypting plain text data input according to AES (Advanced Encryption Standard) Rijndael algorithm, (a) 상기 암호화를 위해 입력되는 평문 형식의 초기 데이터를 암호화 라운드키를 이용하여 키 처리하는 단계;(a) key processing the initial data in plain text format for encryption using an encryption round key; (b) 상기 키 처리된 초기 데이터를 대치 연산 처리한 후 상기 초기 데이터 구성 요소의 행렬에서 행을 이동시켜서 추가 선형 변환시키는 반복 라운드 처리하는 단계;(b) performing an iterative rounding process by performing an alternative operation on the keyed initial data and then further linearly transforming a row in a matrix of the initial data component; (c) 상기 반복 라운드 처리된 데이터를 상기 암호화 라운드키를 이용하여 키 처리하는 단계;(c) key processing the repeated rounded data using the encrypted round key; (d) 상기 키 처리된 반복 라운드 처리 데이터를 대치 연산 처리한 후, 상기 반복 라운드 처리 데이터 구성 요소의 행렬에서 행을 이동시키는 마지막 라운드 처리하는 단계; 및(d) performing a substitution operation on the keyed iterative rounded data and then performing a final rounded process of moving rows in a matrix of the iterative rounded data elements; And (e) 상기 마지막 라운드 처리된 데이터에 상기 암호화 라운드키를 이용한 키 처리를 수행하여 생성되는 암호문을 출력하는 단계(e) outputting a cipher text generated by performing key processing using the encryption round key on the last round processed data; 를 포함하는 것을 특징으로 하는 AES 라인달 알고리즘의 암호화 방법.An encryption method of the AES linedal algorithm, characterized in that it comprises a. 제9항에 있어서, The method of claim 9, 상기 단계 (a)를 통해 키 처리된 상기 초기 데이터, 상기 단계 (b)를 통해 상기 반복 라운드 처리된 데이터 및 상기 단계 (d)를 통하여 상기 마지막 라운드 처리된 데이터는 상기 AES 라인달 알고리즘에 포함되는 세 개의 먹스 중 하나의 먹스에서 선별 수신되는 것을 특징으로 하는 AES 라인달 알고리즘의 암호화 방법.The initial data keyed through step (a), the repeated rounded data through step (b) and the last rounded data through step (d) are included in the AES linedal algorithm. The encryption method of the AES linedal algorithm, characterized in that the reception is selected from one of the three mux. 제10항에 있어서,The method of claim 10, 상기 단계 (b), 상기 단계 (d) 및 상기 단계 (f)에서 이용되는 상기 암호화 라운드키는 상기 AES 라인달 알고리즘에 포함되는 세 개의 먹스 중 하나의 먹스에서 선별되는 것을 특징으로 하는 AES 라인달 알고리즘의 암호화 방법.The encryption round key used in the steps (b), (d) and (f) is selected from one of three muxes included in the AES Rindall algorithm. Encryption method of the algorithm. 제9항에 있어서,The method of claim 9, 상기 단계 (a) 및 상기 단계 (c)를 통해 키 처리된 초기 데이터 및 상기 반복 라운드키 처리 데이터를 임시로 저장하는 단계Temporarily storing the initial data keyed through the steps (a) and (c) and the repeated round key processing data; 를 추가로 포함하는 것을 특징으로 하는 AES 라인달 알고리즘의 암호화 방법.The encryption method of the AES line Dal algorithm, characterized in that it further comprises. AES(Advanced Encryption Standard) 라인달(Rijndael) 알고리즘에 따라 입력되는 암호문 데이터를 복호화하는 방법에 있어서,In the method for decrypting the input cipher text data according to AES (Advanced Encryption Standard) Rijndael algorithm, (a) 상기 복호화를 위해 입력되는 암호문 형식의 초기 데이터를 복호화 라운드키를 이용하여 키 처리하는 단계;(a) key processing the ciphertext-format initial data input for decryption using a decryption round key; (b) 상기 키 처리된 초기 데이터를 역서브바이트, 역쉬프트로우 및 역믹스 컬럼 처리하는 반복 라운드 처리를 실행하는 단계;(b) executing an iterative round process of processing the sub-bytes, reverse shifts, and reverse mix columns of the keyed initial data; (c) 상기 반복 라운드 처리된 데이터를 상기 복호화 라운드키를 이용하여 키 처리하는 단계;(c) key processing the repeated rounded data using the decryption round key; (d) 상기 키 처리된 반복 라운드 처리 데이터를 상기 역서브바이트 및 역쉬프트로우 처리하는 마지막 라운드 처리를 실행하는 단계; 및(d) executing a last round process of processing the reverse subbytes and the reverse shift of the keyed repetitive round process data; And (e) 상기 마지막 라운드 처리된 데이터에 상기 복호화 라운드키를 이용한 키 처리를 수행하여 생성되는 평문을 출력하는 단계(e) outputting plain text generated by performing key processing using the decryption round key on the last rounded data; 를 포함하는 것을 특징으로 하는 AES 라인달 알고리즘의 복호화 방법.Decoding method of the AES line Dal algorithm, characterized in that it comprises a. 제13항에 있어서, 상기 단계 (b)는,The method of claim 13, wherein step (b) comprises: (b1) 상기 암호문에서 대치 연산된 부분을 복귀시키는 상기 역서브바이트 처리 단계;(b1) the reverse subbyte processing step of returning a substituted operation portion of the cipher text; (b2) 상기 초기 데이터 구성 요소의 행렬에서 이동된 행을 복귀시키는 상기 역쉬프트로우 처리 단계; 및(b2) the reverse shift processing step of returning a moved row in the matrix of the initial data component; And (b3) 상기 암호문에서 추가 선형 변환된 부분을 역변환시키는 상기 역믹스 컬럼 처리 단계(b3) the inverse mix column processing step of inversely transforming the additional linearly transformed portion of the cipher text. 를 포함하는 것을 특징으로 하는 AES 라인달 알고리즘의 복호화 방법.Decoding method of the AES line Dal algorithm, characterized in that it comprises a. 제14항에 있어서,The method of claim 14, 상기 역서브바이트 처리 단계에서 실행되는 연산을 f역서브바이트, 상기 역쉬프트로우 처리 단계에서 실행되는 연산을 f역쉬프트로우라고 하면, The operation to be executed the operation to be executed in the reverse sub-byte process steps f-byte sub-station, in the low-reverse shift processing step if said station shifts f low, and f역쉬프트로우{f역서브바이트(Data)} = f역서브바이트{f역쉬프트로우(Data)}f reverse shift {f reverse subbyte (Data)} = f reverse subbyte {f reverse shift (Data)} 인 것을 특징으로 하는 AES 라인달 알고리즘의 복호화 방법.AES linedal algorithm decoding method characterized in that the. 제13항에 있어서, 상기 단계 (a), 상기 단계 (c) 및 상기 단계 (e)는,The method of claim 13, wherein step (a), step (c) and step (e) 암호화에 사용된 라운드키를 역믹스 컬럼 처리하여 상기 복호화 라운드키로 사용하는 것을 특징으로 하는 AES 라인달 알고리즘의 복호화 방법.A method of decrypting an AES line moon algorithm, characterized in that the round key used for encryption is processed as an inverse mix column and used as the decryption round key. 제13항에 있어서, The method of claim 13, 상기 단계 (a)를 통해 키 처리된 상기 초기 데이터, 상기 단계 (b)를 통해 상기 반복 라운드 처리된 데이터 및 상기 단계 (d)를 통하여 상기 마지막 라운드 처리된 데이터는 상기 AES 라인달 알고리즘에 포함되는 세 개의 먹스 중 하나의 먹스에서 선별 수신되는 것을 특징으로 하는 AES 라인달 알고리즘의 복호화 방법.The initial data keyed through step (a), the repeated rounded data through step (b) and the last rounded data through step (d) are included in the AES linedal algorithm. A method for decoding an AES line moon algorithm, characterized in that the reception is selectively received from one of the three mux. 제16항 또는 제17항에 있어서,The method according to claim 16 or 17, 상기 단계 (b), 상기 단계 (d) 및 상기 단계 (f)에서 이용되는 상기 복호화 라운드키는 상기 AES 라인달 알고리즘에 포함되는 세 개의 먹스 중 하나의 먹스에서 선별되는 것을 특징으로 하는 AES 라인달 알고리즘의 복호화 방법.The decryption round key used in the step (b), the step (d) and the step (f) is selected from one of three muxes included in the AES linedal algorithm. Decryption method of the algorithm.
KR1020050111591A 2005-11-22 2005-11-22 Module and method for encryption/decryption by using aes rijndael block algorithm KR100668664B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050111591A KR100668664B1 (en) 2005-11-22 2005-11-22 Module and method for encryption/decryption by using aes rijndael block algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050111591A KR100668664B1 (en) 2005-11-22 2005-11-22 Module and method for encryption/decryption by using aes rijndael block algorithm

Publications (1)

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

Family

ID=37867951

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050111591A KR100668664B1 (en) 2005-11-22 2005-11-22 Module and method for encryption/decryption by using aes rijndael block algorithm

Country Status (1)

Country Link
KR (1) KR100668664B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101026439B1 (en) 2009-07-20 2011-04-07 한국전자통신연구원 The Masking Method for Protecting Power Analysis Attacks in SEED
KR101036103B1 (en) * 2008-02-29 2011-05-19 인텔 코오퍼레이션 Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation
US8774402B2 (en) 2008-09-09 2014-07-08 Electronics And Telecommunications Research Institute Encryption/decryption apparatus and method using AES rijndael algorithm

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020087331A (en) * 2001-05-14 2002-11-22 최병윤 AES Rijndael Encryption and Decryption Circuit with Subround-Level Pipeline Scheme
US20020191784A1 (en) 2001-06-08 2002-12-19 Nhu-Ha Yup Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels
KR20040045517A (en) * 2002-11-23 2004-06-02 한국전자통신연구원 Real time block data encryption/decryption processor using Rijndael block cipher and method therefor
KR20040108311A (en) * 2003-06-16 2004-12-23 한국전자통신연구원 Apparatus for rijndael block cipher and encryption/decryption method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020087331A (en) * 2001-05-14 2002-11-22 최병윤 AES Rijndael Encryption and Decryption Circuit with Subround-Level Pipeline Scheme
US20020191784A1 (en) 2001-06-08 2002-12-19 Nhu-Ha Yup Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels
KR20040045517A (en) * 2002-11-23 2004-06-02 한국전자통신연구원 Real time block data encryption/decryption processor using Rijndael block cipher and method therefor
KR20040108311A (en) * 2003-06-16 2004-12-23 한국전자통신연구원 Apparatus for rijndael block cipher and encryption/decryption method thereof

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101036103B1 (en) * 2008-02-29 2011-05-19 인텔 코오퍼레이션 Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation
US8879725B2 (en) 2008-02-29 2014-11-04 Intel Corporation Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation
US8774402B2 (en) 2008-09-09 2014-07-08 Electronics And Telecommunications Research Institute Encryption/decryption apparatus and method using AES rijndael algorithm
KR101026439B1 (en) 2009-07-20 2011-04-07 한국전자통신연구원 The Masking Method for Protecting Power Analysis Attacks in SEED
US8391476B2 (en) 2009-07-20 2013-03-05 Electronics And Telecommunications Research Institute Masking method of defending differential power analysis attack in seed encryption algorithm

Similar Documents

Publication Publication Date Title
McLoone et al. High performance single-chip FPGA Rijndael algorithm implementations
EP1191737A2 (en) Data encryption apparatus
US8165288B2 (en) Cryptographic processing apparatus and cryptographic processing method, and computer program
EP1246389B1 (en) Apparatus for selectably encrypting or decrypting data
US20030059054A1 (en) Apparatus for generating encryption or decryption keys
US20050169463A1 (en) Hardware cryptographic engine and hardware cryptographic method using an efficient S-BOX implementation
Singh et al. An efficient hardware design and implementation of advanced encryption standard (AES) algorithm
Nadjia et al. Aes ip for hybrid cryptosystem rsa-aes
US6732271B1 (en) Method of deciphering ciphered data and apparatus for same
Kouser et al. FPGA implementation of advanced Encryption Standard algorithm
US6108421A (en) Method and apparatus for data encryption
KR100668664B1 (en) Module and method for encryption/decryption by using aes rijndael block algorithm
Miroshnik et al. Uses of programmable logic integrated circuits for implementations of data encryption standard and its experimental linear cryptanalysis
US11838403B2 (en) Method and apparatus for an ultra low power VLSI implementation of the 128-bit AES algorithm using a novel approach to the shiftrow transformation
Balamurugan et al. High speed low cost implementation of advanced encryption standard on fpga
Naidu et al. Design of high throughput and area efficient advanced encryption system core
KR100362170B1 (en) Apparatus of encryption for round key generating and encryption processing
EP1629626B1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
KR100749414B1 (en) Apparatus and method of encryption, and apparatus and method of decryption of mobile internet system
Krishna et al. Design implementation of composite field S-Box using AES 256 algorithm
KR100494560B1 (en) Real time block data encryption/decryption processor using Rijndael block cipher and method therefor
EP1514174B1 (en) Aes mixcolumn transform
Izotov et al. Controlled operations as a cryptographic primitive
Lanjewar et al. Implementation of AES-256 Bit: A Review
EP2209252B1 (en) Compact hardware implementation of block ciphers with a MISTY structure

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

FPAY Annual fee payment

Payment date: 20161219

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20181213

Year of fee payment: 13