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 PDFInfo
- 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
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/24—Key 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
Description
도 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
암호화 초기 라운드 처리부(110)는 암호화를 위한 라운드키의 처리 작업을 위한 라운드키 처리(AddRoundKey) 블록으로 구성되며, 암호화 반복 라운드 처리부(120)는 각 바이트 상에서 대치 연산을 수행하기 위한 서브바이트(SubBytes) 블록(122), AES의 각 데이터 구성 요소의 행렬에서, 행을 이동시키는 쉬프트로우(ShiftRows) 블록(124), 쉬프트로우 블록(124)에 의해 이동된 행렬의 추가 선형 변환을 수행하는 믹스컬럼(MixColums) 블록(126) 및 라운드키 처리(AddRoundKey) 블록(128)을 포함한다. 그리고, 암호화 마지막 라운드 처리부(130)는 서브바이트 블록, 쉬프트로우 블록 및 라운드키 처리 블록을 포함한다. The encryption initial
여기서, 암호화 초기 라운드 처리부(110), 암호화 반복 라운드 처리부(120) 및 암호화 마지막 라운드 처리부(130)에 각각 포함되는 라운드키 처리 블록은 입력된 암호화 라운드키(Round KEY)를 전달받아 암호화를 위한 키 작업을 수행한다.Here, the round key processing blocks included in the encryption initial
이렇게 구성되는 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
이와 같이 암호화된 데이터가 전달되면, 이를 원래의 평문으로 복원시키기 위해서 수신된 암호문의 해석을 위한 복호화 알고리즘을 필요로 한다.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
복호화 초기 라운드 처리부(210)는 복호화를 위한 라운드키 처리 작업을 수행하는 라운드키 처리(AddRoudnKey) 블록으로 구성된다. 복호화 반복 라운드 처리부(220)는 쉬프트된 행을 다시 원래대로 복귀시키기 위한 역쉬프트로우(InvShiftRows) 블록(222), 대치 연산이 수행된 암호문을 복귀시키기 위한 역서브바이트(InvSubBytes) 블록(224), 복호화를 위한 라운드키 처리를 수행하는 라운드키 처리(AddRoudnKey) 블록(226) 및 추가 선형 변환을 역수행하기 위한 역믹스컬럼(InvMixColums) 블록(228)을 포함한다. 그리고, 복호화 마지막 라운드 처리부(230)는 역쉬프트로우 블록, 역서브바이트 블록 및 라운드키 처리 블록을 포함한다. The decryption initial
여기서도, 암호화 알고리즘과 동일하게 복호화 초기 라운드 처리부(210), 복호화 반복 라운드 처리부(220) 및 복호화 마지막 라운드 처리부(230)에 각각 포함되는 라운드키 처리 블록은 암호화 데이터 수신 장비에서 사전에 포함되어 있던 암호화 라운드키(Round KEY)를 전달받아 복호화를 위한 라운드키 처리 작업을 수행한다. 이 때, 암호화 데이터 수신 장비는 통신망을 통하여 암호화 라운드키(Round KEY)를 암호화된 데이터와 별도로 수신하고, 수신된 암호화 라운드키를 이용하여 복호화를 위한 라운드키 처리 작업을 수행할 수도 있다.Here, similarly to the encryption algorithm, the round key processing blocks included in the decryption initial
이와 같은 AES 라인달 블록 알고리즘의 암호화 반복 라운드 처리부(120)와 복호화 반복 라운드 처리부(220)를 살펴보면, 암호화 과정에서는 서브바이트 처리 후, 쉬프트로우 과정으로 진행되는데 반하여, 복호화 과정에서는 역쉬프트로우 처 리 후, 역서브바이트 과정으로 진행됨을 확인할 수 있다. 또한, 암호화 과정에서는 믹스컬럼 과정 처리 후, 라운드키 처리 과정으로 진행되는데 반하여, 복호화 과정에서는 라운드키 처리 과정 후, 역믹스컬럼 과정으로 진행됨을 확인할 수 있다.Looking at the encryption iteration
암호화 마지막 라운드처리부(130) 및 복호화 마지막 라운드 처리부(230)에 있어서도, 암호화 과정의 서브바이트 처리 후 쉬프트로우로 진행되는데 반하여, 복호화 과정에서는 역쉬프트로우 처리 후 역서브바이트 과정으로 진행된다.The encryption last
이와 같은 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
즉, 종래의 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
여기서, 서브바이트 블록부(420)는 암호화를 위한 서브바이트 블록(422) 및 복호화를 위한 역서브바이트 블록(424)을 포함하고, 쉬프트로우 블록부(430)는 암호화를 위하여 쉬프트로우 블록(432)과, 복호화를 위한 역쉬프트로우 블록(434)을 포함하며, 믹스컬럼 블록부(450)는 암호화를 위한 믹스컬럼 블록(452)과 복호화를 위한 역믹스컬럼 블록(454)을 포함한다.Here, the
또한, 제1 먹스(440), 제2 먹스(460) 및 제3 먹스(490)는 암호화 및 복호화 과정에서 상황에 따라 진행될 다음 단계를 선택하는 역할을 수행한다.In addition, the
여기서, 본 발명에 따른 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
이것은 역서브바이트 블록(424)을 통한 계산과, 역쉬프트로우 블록(434)을 통한 계산이 서로 영향을 주지않기 때문에, 순서를 바꾸어 블록을 재배열시키더라도 계산에 따른 결과치는 동일하게 된다. 여기서, 역서브바이트 블록(424)에서 실행되는 연산을 f역서브바이트, 역쉬프트로우 블록(434)에서 실행되는 연산을 f역쉬프트로우라고 표시하면, 수학식 1과 같이 표현된다.This is because the calculation through the
이와 같은 복호화 과정에서 라운드키 처리 블록(470)과 역믹스컬럼 블록(454)을 살펴보면, 종래의 복호화 블록 알고리즘에서는 라운드키 처리 블록(470)을 통한 계산이 먼저 이루어진 뒤, 역믹스컬럼 블록(454)에 의한 계산이 실행되도록 라운드키 처리블록(470)이 역믹스컬럼 블록(454)의 앞에 위치하고 있다.In the decoding process, the round
역믹스컬럼 블록(454)의 경우 두 입력에 대한 여러 XOR 연산으로 이루어지는 블록이며, 라운드키 처리 블록(470)은 두 입력에 대한 단순 XOR 연산 처리를 실행하는 블록이므로, 역믹스컬럼 블록(454)에서 실행되는 연산을 f역믹스컬럼, 라운드키 처리 블록(434)에서 실행되는 연산을 f라운드키 처리라고 표시하면, 역믹스컬럼 블록(454)과 라운드키 처리 블록(470)의 연산은 수학식 2와 같이 단순 XOR 연산식으로 표현할 수 있다.The inverse
수학식 2에 따라, 상태 입력 A와 라운드키 입력 B를 라운드키 처리한 후, 역믹스컬럼 블록(454)을 통해 계산한 결과는, 상태 입력 A와 라운드키 입력 B를 XOR 연산한 결과를 역믹스컬럼 블록(454)을 통해 계산한 결과와 동일함을 알 수 있다. 그리고, 이 결과는 상태 입력 A와 라운드키 입력 B를 각각 역믹스컬럼 블록(454)을 통해 계산한 뒤 XOR 연산한 결과와 수학적으로 동일하다.According to
즉, 상태 입력 A와 라운드키 입력 B에 대한 라운드키 처리 블록(470)은 'A XOR B'로 표현할 수 있으며, 'A XOR B'에 대한 역믹스컬럼 처리는 A, B에 대한 각각의 역믹스컬럼 처리 결과에 대한 XOR 연산과 같으며, XOR 수학 연산에서는 교환 법칙이 성립함에 따라 수학식 3과 같이 표현될 수 있다. That is, the round
= 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
이와 같은 수학식 1, 수학식 2 및 수학식 3을 통해서 AES 라인달 복호화 블록도 암호화 블록과 같은 순서로 배열할 수 있으며, 성격이 유사한 서브바이트 블록(422)과 역서브바이트 블록(424), 쉬프트로우 블록(432)과 역쉬프트로우 블록(434), 믹스컬럼 블록(452)과 역믹스컬럼 블록(454)을 모듈화시킬 수 있다. 이와 같은 모듈화에 따라, 데이터 경로가 간단해지며 복호화에 필요한 데이터 버퍼가 필요 없게 된다.Through
도 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
제1 먹스(440)는 쉬프트로우 블록부(430)와 믹스컬럼 블록부(450) 사이에 위치하여, 암호화 작업이 이루어지는 경우에는 0을 선택하여 쉬프트로우 블록(432)으로부터 수신되는 값을 믹스컬럼 블록부(450)로 전달하고, 복호화 작업이 이루어지는 경우에는 1을 선택하여, 역쉬프트로우 블록(434)으로부터 수신되는 값을 믹스컬럼 블록부(450)로 전달한다.The
제2 먹스(460)는 데이터 입력부(Input data)로부터 입력되는 데이터, 믹스컬럼 블록부(450)로부터 믹스컬럼 처리된 값 또는 역믹스컬럼 처리된 값 및 제1 먹스(440)로부터 쉬프트로우 처리된 값 또는 역쉬프트로우 처리된 값을 선택하여 수신한다.The
제2 먹스(460)는 라운드 처리 단계에 따라서 수신할 값을 선택하여 다음 단계로 진행시킨다. 즉, 암호화 초기 라운드 처리 또는 복호화 초기 라운드 처리 단계에서는 0을 선택하여 데이터 입력부로부터 전달되는 데이터를 수신하여 라운드키 처리 블록(470)으로 전달하고, 암호화 반복 라운드 처리 단계에서는 2를 선택하여 믹스컬럼 블록(452)으로부터 전달되는 값을 라운드키 처리 블록(470)으로 전달하며, 복호화 반복 라운드 처리 단계에서는 1을 선택하여 역믹스컬럼 블록(454)으로부터 전달되는 값을 라운드키 처리 블록(470)으로 전달한다. 그리고, 암호화 마지막 라운드 처리 또는 복호화 마지막 라운드 처리 단계에서는 3을 선택하여 제1 먹스(440)로부터 수신되는 값을 라운드키 처리 블록(470)으로 전달하는 역할을 수행한다.The
제3 먹스(490)는 키 관리부(Key Management)에 포함되어 암호화 라운드키(Round KEY)를 수신하거나, 역믹스컬럼 블록(480)으로부터 수신되는 복호화에 필요한 역믹스컬럼 값을 수신한다. 즉, 제3 먹스(490)는 암호화 작업을 수행하는 경우에는 '0'을 선택하여 암호화 라운드키를 수신하고, 복호화 작업을 수행하는 경우에는 '1'을 선택하여 역믹스컬럼 값을 수신하여 라운드키 처리 블록(470)으로 전달한다.The
여기서, 제1 먹스(440), 제2 먹스(460) 및 제3 먹스(490)에 설정되는 값은 AES 라인달 암호화 및 복호화 블록의 구성 방법에 따라서 다양하게 변형될 수 있다.Here, the values set in the
도 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
라운드키 처리 블록(470)에서는 입력된 초기 데이터와 암호화 라운드키를 이 용하여 키 처리한 뒤, 데이터 버퍼(410)에 저장시킨다. 데이터 버퍼(410)에 키 처리된 초기 데이터가 입력되면, 암호화 반복 라운드 처리 단계로 진행된다.In the round
암호화 반복 라운드 처리 단계에서는 데이터 버퍼(410)에 저장된 값이 서브바이트 블록(422)과 쉬프트로우 블록(432)을 통해 처리된 결과치가 제1 먹스(440)에 의해서 입력으로 선택된다. In the encryption iteration round processing step, a value stored in the
그리고, 제1 먹스(440)에 의해 선택된 값은 믹스컬럼 블록(452)에 의해 믹스컬럼 처리되고, 그 결과 값은 제2 먹스(460)에 의해 선택된다. Then, the value selected by the
제2 먹스(460)에 의해 선택된 값은 라운드키 처리 블록(470)의 입력으로 작용하며, 라운드키 처리된 결과는 다시 데이터 버퍼(410)에 저장된다. 이 때, 각 라운드키 처리 과정에서 사용되는 라운드키는 키 관리부에서 생성되고, 제3 먹스(490)에 의해서 선택되어 라운드키 처리 블록(470)으로 입력된다.The value selected by the
이와 같은 반복 라운드 처리 단계를 거친 후, 암호화 마지막 라운드 처리 단계를 수행하게 된다. 암호화 마지막 라운드 처리 단계에서는 반복 라운드 처리 단계를 거쳐 데이터 버퍼(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
이와 같은 과정을 통하여 본 발명에 따른 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
라운드키 처리 블록(470)으로 입력된 초기 데이터와 복호화 라운드키는 라운드키 처리 블록(470)에서 키 처리되어 데이터 버퍼(410)에 저장된다. 데이터 버퍼(410)에 키 처리된 초기 데이터가 입력되면, 복호화 반복 라운드 처리 단계로 진행된다.The initial data and the decryption round key input to the round
복호화 반복 라운드 처리 단계에서는 데이터 버퍼(410)에 저장된 값이 역서브바이트 블록(424)과 역쉬프트로우 블록(434)을 통해 처리된 결과치가 제1 먹스 (440)에 의해서 선택된다. In the decoding iteration round processing step, the
그리고, 제1 먹스(440)에 의해 선택된 값은 역믹스컬럼 블록(454)에 의해 역믹스컬럼 처리되고, 그 결과 값은 제2 먹스(460)에 의해 선택된다. In addition, the value selected by the
제2 먹스(460)에 의해 선택된 값은 라운드키 처리 블록(470)의 입력으로 작용하며, 라운드키 처리된 결과는 다시 데이터 버퍼(410)에 저장된다. 이 때, 각 라운드키 처리 과정에서 사용되는 라운드키는 키 관리부에서 생성되고, 제3 먹스(490)에 의해서 선택되어 라운드키 처리 블록(470)으로 입력된다. 이 때, 사용되는 복호화 라운드키는 암호화 라운드키가 역믹스컬럼 블록(480)에 의해 처리된 값이다. The value selected by the
이와 같은 복호화 반복 라운드 처리 단계를 거친 후, 암호화 마지막 라운드 처리 단계를 수행하게 된다. 복호화 마지막 라운드 처리 단계에서는 반복 라운드 처리 단계를 거쳐 데이터 버퍼(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
이와 같은 과정을 통하여 본 발명에 따른 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)
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)
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)
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 |
-
2005
- 2005-11-22 KR KR1020050111591A patent/KR100668664B1/en active IP Right Grant
Patent Citations (4)
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)
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 |