KR100788902B1 - Mixcolum block device and method of multiplication calculation thereof - Google Patents
Mixcolum block device and method of multiplication calculation thereof Download PDFInfo
- Publication number
- KR100788902B1 KR100788902B1 KR1020060122911A KR20060122911A KR100788902B1 KR 100788902 B1 KR100788902 B1 KR 100788902B1 KR 1020060122911 A KR1020060122911 A KR 1020060122911A KR 20060122911 A KR20060122911 A KR 20060122911A KR 100788902 B1 KR100788902 B1 KR 100788902B1
- Authority
- KR
- South Korea
- Prior art keywords
- multiplication
- result
- byte
- block
- input
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- 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/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
Description
도 1은 종래 사용되는 AES 암호화 알고리즘을 설명하기 위한 하드웨어 구성도이다.1 is a hardware configuration diagram illustrating a conventionally used AES encryption algorithm.
도 2는 본 발명에 사용되는 AES 암호화 알고리즘의 하드웨어 구성에서 믹스컬럼블록의 연산 과정을 설명하기 위한 도면이다.FIG. 2 is a diagram for describing a calculation process of a mix column block in a hardware configuration of an AES encryption algorithm used in the present invention.
도 3은 본 발명의 실시예에 따른 믹스컬럼블록 장치의 하드웨어 구성도이다.3 is a hardware configuration diagram of a mix column block device according to an embodiment of the present invention.
도 4는 본 발명의 실시예에 따른 제1 곱셈연산 블록부의 {01}, {02} 곱셈 연산을 설명하기 위한 도면이다.FIG. 4 is a diagram for describing {01} and {02} multiplication operations of the first multiplication block unit according to an exemplary embodiment of the present invention.
도 5는 본 발명의 실시예에 따른 {02} 곱셈연산 블록의 구성을 상세하게 보인 도면이다.5 is a view showing in detail the configuration of the {02} multiplication block according to an embodiment of the present invention.
도 6은 본 발명의 실시예에 따른 {03} 곱셈연산을 설명하기 위한 도면이다.6 is a diagram for describing a {03} multiplication operation according to an embodiment of the present invention.
도 7은 본 발명의 실시예에 따른 믹스컬럼블록 장치의 배타적 논리합 연산부의 구성을 상세하게 보인 도면이다.7 is a view showing in detail the configuration of the exclusive OR operation unit of the mix column block device according to an embodiment of the present invention.
도 8은 본 발명의 실시예에 따른 믹스컬럼블록 장치의 곱셈연산 과정을 설명하기 위한 순서도이다.8 is a flowchart illustrating a multiplication operation of the mixed column block device according to an embodiment of the present invention.
도 9는 본 발명의 실시예에 따른 믹스컬럼블록 장치의 {02} 곱셈연산 과정을 세부적으로 설명하기 위한 순서도이다.9 is a flowchart illustrating a multiplication operation of the {02} multiplication unit of the mix column block device according to an embodiment of the present invention.
도 10은 본 발명의 실시예에 따른 믹스컬럼블록 장치의 {03} 곱셈연산 과정을 세부적으로 설명하기 위한 도면이다.FIG. 10 is a diagram for describing a {03} multiplication process of a mix column block device according to an embodiment of the present invention in detail.
도 11 내지 도 14는 본 발명의 실시예에 따른 믹스컬럼블록 장치의 출력 바이트 연산과정을 설명하기 위한 도면이다.11 to 14 are views for explaining the output byte operation process of the mixed column block device according to an embodiment of the present invention.
본 발명은 믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법에 관한 것이다. 더욱 상세하게는, AES(Advanced Encryption Standard) 블록 알고리즘을 구성하는 믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법에 관한 것이다.The present invention relates to a mix column block device and a multiplication operation method using the same. More specifically, the present invention relates to a mixed column block device constituting an AES (Advanced Encryption Standard) block algorithm, and a multiplication operation method using the same.
도 1은 종래 사용되는 AES 암호화 알고리즘을 설명하기 위한 하드웨어 구성도이다.1 is a hardware configuration diagram illustrating a conventionally used AES encryption algorithm.
도 1에 따르면, AES 암호화 알고리즘은 초기 라운드 처리부(110), 반복 라운드 처리부(120) 및 마지막 라운드 처리부(130)로 구성된다. According to FIG. 1, the AES encryption algorithm is composed of an
여기서, 초기 라운드 처리부(110)는 암호화를 위한 라운드키의 처리 작업을 위한 라운드키처리(AddRoundKey)블록(124)으로 구성되고, 반복 라운드 처리부(120)는 각 바이트 상에서 대치 연산을 수행하기 위한 서브바이트(SubBytes)블록(121), AES의 각 데이터 구성 요소의 행렬에서, 행을 이동시키는 쉬프트로우(ShiftRows)블록(122), 쉬프트로우블록(122)에 의해 이동된 행렬의 추가 선형 변환을 수행하는 믹스컬럼(MixColums)블록(123) 및 라운드키처리(AddRoundKey)블록(124)으로 구성된다. 그리고, 마지막 라운드 처리부(130)는 서브바이트(SubBytes)블록(121), 쉬프트로우(ShiftRows)블록(122) 및 라운드키처리(AddRoundKey)블록(124)으로 구성된다. Here, the initial
여기서, 쉬프트로우블록(122)이나 라운드키처리블록(124)은 바이트(8 비트)단위의 자리 이동으로 쉽게 하드웨어로 구현할 수 있다. Here, the
그러나 서브바이트블록(121)과 믹스컬럼블록(123)을 하드웨어로 구현할 경우, 곱셈연산에 따른 전체적인 처리 속도가 늦어지고, 곱셈기 사용은 하드웨어 자원을 많이 사용하기에 휴대기기 적용에 적합하지 않은 문제점이 있다.However, when the
한편, 종래 기술로서 대한민국 특허출원번호 제2003-0051111호 “AES Rijndael(라인달) 암호 알고리즘의 하드웨어 구현을 위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로”와, 대한민국 특허출원번호 제2005-0092576호 “매스팅 방법이 적용된 데이터 암호처리장치, AES 암호시스템 및 AES 암호방법”이 개시되어 있다. Meanwhile, Korean Patent Application No. 2003-0051111 “Round processing unit circuit and online round key generation circuit for hardware implementation of AES Rijndael (Linedal) encryption algorithm” and Korean Patent Application No. 2005-0092576 “ A data encryption processing device, an AES encryption system, and an AES encryption method to which a masting method is applied ”are disclosed.
상술한 종래기술들은, 하드웨어 자원을 공유하거나 또는 서브바이트를 간략화하는 방법으로 하드웨어 자원을 줄이는 방안을 제시하고 있으나, 믹스컬럼블록의 곱셈기에 대한 언급은 없다.The above-mentioned prior arts propose a method of reducing hardware resources by sharing hardware resources or simplifying subbytes, but there is no mention of a multiplier of a mix column block.
또한, 다른 종래 기술로서 대한민국 특허출원번호 제2004-0047105호 “블록 암호용 다항식 곱셈장치 및 방법”에서 믹스컬럼블록의 곱셈장치에 대하여 언급하고 있으나, 연산시 다수의 클럭 사용과 곱셈인자를 만들 때 하드웨어 사용에 있어 중복이 많은 문제점이 있다.In addition, as another prior art, Korean Patent Application No. 2004-0047105, “Multinomial Multiplication Apparatus and Method for Block Ciphers,” refers to a multiplication apparatus for a mix column block. There is a lot of redundancy in the use of hardware.
따라서, 본 발명이 이루고자 하는 기술적 과제는 암호화 성능을 향상시키면서 소형, 저전력 휴대기기에 쉽게 적용될 수 있는 간단한 하드웨어로 구성된 믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법을 제공하는 것이다.Accordingly, an object of the present invention is to provide a mix column block device composed of simple hardware and a multiplication operation method using the same, which can be easily applied to a small, low-power portable device while improving encryption performance.
상기 기술한 바와 같은 과제를 이루기 위하여 본 발명의 특징에 따른 믹스컬럼블록 장치는, Mix column block device according to a feature of the present invention to achieve the problem as described above,
AES(Advanced Encryption Standard) 블록 암호의 라운드 연산을 수행하는 믹스컬럼(MixColums)블록 장치에 있어서, 비트 단위의 입력 데이터를 바이트 단위로 저장하고 저장된 입력 바이트를 출력하는 저장부; 상기 저장부로부터 입력받은 상기 입력 바이트에 대한 16진수 값인 {01} 및 {02} 곱셈연산을 수행하여 출력하는 제1 곱셈연산 블록부; 상기 제1 곱셈연산 블록부로부터 입력받은 상기 {01} 및 {02} 곱셈연산을 수행한 결과를 이용하여 16진수 값인 {01}, {02} 및 {03} 곱셈연산을 수행하여 출력하는 제2 곱셈연산 블록부; 및 상기 제2 곱셈연산 블록부로부터 입력받은 상기 {01}, {02} 및 {03} 곱셈연산을 수행한 결과에 대한 배타적 논리합 연산을 수행하여 상기 입력 바이트에 대한 출력 바이트를 출력하는 배타적 논리합 연산부를 포함한다.A Mixed Column (MixColums) block device for performing AES (Advanced Encryption Standard) block cipher round operations, comprising: a storage unit for storing input data in units of bytes and outputting stored input bytes; A first multiplication block block configured to perform a multiplication operation of {01} and {02}, which are hexadecimal values, of the input byte received from the storage unit; A second hexadecimal value {01}, {02} and {03} that are multiplied by a result of performing the {01} and {02} multiplication operations received from the first multiplication block unit; Multiplication operation block portion; And an exclusive OR operation unit configured to output an output byte for the input byte by performing an exclusive OR operation on the result of performing the {01}, {02} and {03} multiplication operations received from the second multiplication operation block unit. It includes.
본 발명의 특징에 따른 믹스컬럼블록 장치의 곱셈연산방법은,The multiplication operation method of the mixed column block device according to the characteristics of the present invention,
AES 블록 암호의 라운드 연산을 수행하는 믹스컬럼블록의 곱셈연산방법에 있어서, 입력 바이트에 대해 16진수 값인 {01} 및 {02} 곱셈연산을 수행하는 단계; 상기 {01} 및 {02} 곱셈연산을 수행한 결과를 이용하여 16진수 값인 {01}, {02} 및 {03} 곱셈연산을 수행하는 단계; 상기 {01}, {02} 및 {03} 곱셈연산을 수행한 결과에 대한 배타적 논리합 연산을 수행하는 단계; 및 상기 배타적 논리합 연산을 수행한 결과를 상기 입력 바이트에 대한 출력 바이트로 출력하는 단계를 포함한다.A multiplication operation method for a mixed column block performing a round operation of an AES block cipher, the method comprising: performing {01} and {02} multiplication operations that are hexadecimal values on an input byte; Performing multiplication operations of hexadecimal values {01}, {02} and {03} using the results of performing the {01} and {02} multiplication operations; Performing an exclusive OR operation on the result of performing the {01}, {02}, and {03} multiplication operations; And outputting a result of performing the exclusive OR operation as an output byte for the input byte.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.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, this means that it may further include other components, except to exclude other components unless otherwise stated.
또한, 본 명세서에서 기재한 모듈(module)이란 용어는 특정한 기능이나 동작을 처리하는 하나의 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현할 수 있다.In addition, the term module described herein refers to a unit for processing a specific function or operation, which may be implemented in hardware or software, or a combination of hardware and software.
우선, 이해의 편의를 위해 도 2를 참조하여 본 발명에 의한 믹스컬럼블록 연산 과정을 간략히 제시하고자 한다.First, for convenience of understanding, the present invention will briefly present a process of calculating a mixed column block according to the present invention.
도 2는 본 발명에 사용되는 AES 암호화 알고리즘의 하드웨어 구성에서 믹스컬럼블록의 연산 과정을 설명하기 위한 도면이다.FIG. 2 is a diagram for describing a calculation process of a mix column block in a hardware configuration of an AES encryption algorithm used in the present invention.
128 비트 평문 입력이 서브바이트 블록을 거쳐 믹스컬럼블록으로 전달되면 도 2에 보인 바와 같이 바이트 단위의 4×4 행렬 형태로 정렬하고, 행렬의 열 단위 (32 비트)가 믹스컬럼블록의 입력이 된다. When 128-bit plain text input is passed through a subbyte block to a mixed column block, as shown in FIG. 2, the matrix is arranged in a 4 × 4 matrix form of bytes, and the column unit (32 bits) of the matrix becomes the input of the mixed column block. .
열의 전환 방식은 유한체 GF(28)과 4 등급(degree) 모듈라 x4+1을 사용한 아래 수학식 1에 보인 다항식을 이용한다.The heat conversion method uses the polynomial shown in
수학식 1에 보인 다항식을 이용하여 믹스컬럼 전환을 계산하면 아래 수학식 2에서 수학식 3의 행렬식이 주어진다.When the mixed column conversion is calculated using the polynomial shown in
여기서, 는 입력 바이트를 의미하고 는 출력 바이트를 의미한다.here, Means input byte Is the output byte.
위의 수학식 3을 연산하면 다음과 같은 수학식 4를 얻을 수 있다.By calculating
위의 수학식 4에서 각각의 입력 바이트()에 대하여 {02} 곱셈연산 및 {03} 곱셈연산을 한 다음 배타적 논리합(XOR) 연산을 하면 믹스컬럼블록의 출력 바이트()를 만들 수 있다. 여기서, {02}, {03}은 16진수 값을 의미한다.In
이때, 수학식 4에서 {02} 곱셈연산을 살펴보면, '2’를 단순히 산술곱셈하는 것이 아니라 2를 곱한 값에 아래 수학식 5의 다항식을 이용하여 모듈로(modulo) 연산을 수행한다.In this case, referring to the {02} multiplication operation in
하나의 실시예로서 연산에 대해서 살펴보면, 먼저 아래 수학식 6과 같이 연산된다.Referring to the calculation as an embodiment, it is calculated as shown in Equation 6 below.
이때, 수학식 6의 결과에 수학식 5의 다항식을 이용한 모듈로 연산에 대해 살펴보면, 아래 수학식 7과 같다.At this time, the modulo operation using the polynomial of Equation 5 to the result of Equation 6 is as follows.
수학식 7에 보인 바와 같이, 모듈로 연산을 하면 {02} 곱셈연산이 완료된다.As shown in Equation 7, the modulo operation completes the {02} multiplication operation.
이때, 상술한 바와 같이 {02} 곱셈연산을 하기 보다 {02} 곱셈연산은 입력 바이트를 좌측으로 1 비트 쉬프트 시켜 2 곱셈 값을 구하고 모듈로 연산은 2 곱셈 값에 {11D}값을 배타적 논리합(XOR) 연산을 함으로써 수행될 수 있다.In this case, rather than performing the {02} multiplication operation as described above, the {02} multiplication operation shifts the
여기서, 수학식 5의 모듈로 연산을 위한 다항식은 8차 다항식이므로 입력 바이트의 최상위 비트가 ‘0’이면 모듈로 연산을 수행할 필요가 없다. 그리고 최상위 비트가 ‘1’일때만 배타적 논리합(XOR) 연산을 수행한다.Here, since the polynomial for modulo operation of Equation 5 is an eighth order polynomial, if the most significant bit of the input byte is '0', it is not necessary to perform the modulo operation. The exclusive OR is performed only when the most significant bit is '1'.
최상위 비트가 ‘1’일 때, {11D} XOR 연산의 최상위 비트는 항상 ‘0’이 되므로 9비트 연산 필요없이 좌측 1비트 쉬프트 결과에 {1D} 배타적 논리합(XOR) 연산만 하면 된다.When the most significant bit is '1', the most significant bit of the {11D} XOR operation is always '0', so only the {1D} exclusive OR (XOR) operation is performed on the left 1-bit shift result without the need for 9-bit operations.
즉, 쉬프트레지스터, 한번의 8비트 배타적 논리합(XOR) 연산 및 입력 바이트의 최상위 비트에 따른 출력 값을 선택하기 위한 먹스로 {02} 곱셈연산을 수행할 수 있다.That is, the multiplication operation may be performed with a mux for selecting an output value according to the shift register, one 8-bit exclusive OR operation, and the most significant bit of the input byte.
또한, {03} 곱셈연산은 {01}{02} 연산과 동일하고 {01} 곱셈연산은 입력 바이트와 동일하다. 즉 {03} 곱셈연산은 입력 바이트와 {02} 곱셈연산을 배타적 논리합(XOR) 연산하면 된다.Also, the {03} multiplication operation is {01} Same as {02} operation, and the {01} multiplication operation is equivalent to the input byte. That is, the {03} multiplication operation is performed by performing an exclusive OR on the input byte and the {02} multiplication operation.
따라서, {03} 곱셈연산을 위해서는 {01}, {02} 곱셈연산 결과를 이용하여 배타적 논리합(XOR) 연산을 수행하면 된다.Therefore, for the {03} multiplication operation, an exclusive OR is performed by using the {01} and {02} multiplication results.
그러면, 이제 이러한 내용을 적용한 본 발명의 실시예에 따른 믹스컬럼블록장치 및 이를 이용한 곱셈연산방법에 대하여 도면을 참고로 하여 상세하게 설명한다.Next, a mix column block device and a multiplication operation method using the same according to an embodiment of the present invention to which the above description is applied will be described in detail with reference to the accompanying drawings.
먼저, 믹스컬럼블록 장치의 구성에 대해 살펴보면 다음과 같다.First, the configuration of the mix column block device is as follows.
도 3은 본 발명의 실시예에 따른 믹스컬럼블록 장치의 하드웨어 구성도이다.3 is a hardware configuration diagram of a mix column block device according to an embodiment of the present invention.
도 3에 따르면, 믹스컬럼블록 장치(200)는 저장부(210), 제1 곱셈연산 블록부(220), 제2 곱셈연산 블록부(230) 및 배타적 논리합 연산부(240)를 포함한다.According to FIG. 3, the mix column block device 200 includes a
저장부(210)는 32비트의 입력 데이터를 8비트 단위로 구분하여 4개의 입력 바이트를 저장하는 제1 저장 모듈(212), 제2 저장 모듈(214), 제3 저장 모듈(216) 및 제4 저장 모듈(218)을 포함한다. The
여기서, 제1 저장 모듈(212)은 첫번째 입력 바이트()를 저장하고, 제2 저장 모듈(214)은 두번째 입력 바이트()를 저장하고, 제3 저장 모듈(216)은 세번째 입력 바이트()를 저장하고, 제4 저장 모듈(218)은 네번째 입력 바이트()를 저장한다.Here, the
제1 곱셈연산 블록부(220)는 저장부(210)로부터 출력된 각각의 입력 바이트에 대한 {01}, {02} 곱셈연산을 수행하는 제1 곱셈연산 모듈(222), 제2 곱셈연산 모듈(224), 제3 곱셈연산 모듈(226) 및 제4 곱셈연산 모듈(228)을 포함한다.The first
여기서, 제1 곱셈연산 모듈(222)은 제1 저장 모듈(212)로부터 입력받은 첫번째 입력 바이트()에 대한 {01} 곱셈연산을 수행하는 {01} 곱셈연산 블록 및 {02} 곱셈연산을 수행하는 {02} 곱셈연산 블록을 포함한다. In this case, the first
이때, {01} 곱셈연산 블록은 도 3에 표시된 xt0_0 블록과 동일하고 {02} 곱셈연산 블록은 xt2_0 블록과 동일하다.In this case, the {01} multiplication block is the same as the xt0_0 block shown in FIG. 3 and the {02} multiplication block is the same as the xt2_0 block.
제2 곱셈연산 모듈(224)은 제2 저장 모듈(214)로부터 입력받은 두번째 입력 바이트()에 대한 {01} 곱셈연산을 수행하는 {01} 곱셈연산 블록(또는 xt0_1 블록) 및 {02} 곱셈연산을 수행하는 {02} 곱셈연산 블록(또는 xt2_1 블록)을 포함한다.The
제3 곱셈연산 모듈(226)은 제3 저장 모듈(216)로부터 입력받은 세번째 입력 바이트()에 대한 {01} 곱셈연산을 수행하는 {01} 곱셈연산 블록(또는 xt0_2 블록) 및 {02} 곱셈연산을 수행하는 {02} 곱셈연산 블록(또는 xt2_2 블록)을 포함한다.The
제4 곱셈연산 모듈(228)은 제4 저장 모듈(218)로부터 입력받은 네번째 입력 바이트()에 대한 {01} 곱셈연산을 수행하는 {01} 곱셈연산 블록(또는 xt0_3 블록) 및 {02} 곱셈연산을 수행하는 {02} 곱셈연산 블록(또는 xt2_3 블록)을 포함한 다.The
제2 곱셈연산 블록부(230)는 제1 곱셈연산 블록부(220)로부터 출력된 각각의 {01}, {02} 곱셈연산 결과를 이용하여 {01}, {02} 및 {03} 곱셈연산을 수행하는 제5 곱셈연산 모듈(232), 제6 곱셈연산 모듈(234), 제7 곱셈연산 모듈(236) 및 제8 곱셈연산 모듈(238)을 포함한다.The second
제5 곱셈연산 모듈(232)은 제1 곱셈연산 모듈(222)로부터 입력받은 {01} 곱셈연산 결과 및 {02} 곱셈연산 결과를 이용하여 {01}, {02} 및 {03} 곱셈연산을 각각 수행하는 곱셈연산 블록(또는 각각 xt0_0 블록, xt2_0 블록 및 xt3_0 블록)을 포함한다.The
제6 곱셈연산 모듈(234)은 제2 곱셈연산 모듈(224)로부터 입력받은 {01} 곱셈연산 결과 및 {02} 곱셈연산 결과를 이용하여 {01}, {02} 및 {03} 곱셈연산을 각각 수행하는 곱셈연산 블록(또는 각각 xt0_1 블록, xt2_1 블록 및 xt3_1 블록)을 포함한다.The
제7 곱셈연산 모듈(236)은 제3 곱셈연산 모듈(226)로부터 입력받은 {01} 곱셈연산 결과 및 {02} 곱셈연산 결과를 이용하여 {01}, {02} 및 {03} 곱셈연산을 각각 수행하는 곱셈연산 블록(또는 각각 xt0_2 블록, xt2_2 블록 및 xt3_2 블록)을 포함한다.The
제8 곱셈연산 모듈(238)은 제4 곱셈연산 모듈(228)로부터 입력받은 {01} 곱셈연산 결과 및 {02} 곱셈연산 결과를 이용하여 {01}, {02} 및 {03} 곱셈연산을 각각 수행하는 곱셈연산 블록(또는 각각 xt0_3 블록, xt2_3 블록 및 xt3_3 블록)을 포함한다.The
배타적 논리합 연산부(240)는 제2 곱셈연산 블록부(230)로부터 입력받은 각각의 {01}, {02} 및 {03} 곱셈연산을 수행한 결과에 대한 배타적 논리합 연산을 수행하여 각각의 출력 바이트()(242, 244, 246, 248)를 출력한다.The exclusive OR
도 4는 본 발명의 실시예에 따른 제1 곱셈연산 블록부(220)의 {01}, {02} 곱셈 연산을 설명하기 위한 도면으로서, 특히 제1 곱셈연산 모듈(222)을 상세하게 보인 도면이다.FIG. 4 is a diagram for describing {01} and {02} multiplication operations of the first
도 4에 따르면, xt0_0 블록(222a)은 제1 저장 모듈(212)로부터 첫번째 입력 바이트()를 입력받아 xt2_0 블록(222b)으로 전달하고, 제2 곱셈연산 블록부(230)의 xt0_0 블록(232a)에게 전달한다.According to FIG. 4, the
그리고 xt2_0 블록(222b)은 {02} 곱셈연산 결과를 제2 곱셈연산 블록부(230)의 xt2_0 블록(232b)에게 전달한다.The
이때, 제1 곱셈연산부(220)의 xt0_0 블록(222a) 및 제2 곱셈연산 블록부(230)의 xt0_0 블록(232a)은 동일한 값을 가진다. 그리고 제1 곱셈연산부(220)의 xt2_0 블록(222b) 및 제2 곱셈연산 블록부(230)의 xt2_0 블록(232b)은 동일한 값을 가진다. 따라서, 이들은 공통 레지스터로 사용할 수 있다.At this time, the
도 5는 본 발명의 실시예에 따른 {02} 곱셈연산 블록의 구성을 상세하게 보인 도면으로서, 도 3의 xt2_0 블록, xt2_1 블록, xt2_2 블록 및 xt2_3 블록의 구성 이 이에 해당한다.5 is a diagram illustrating in detail the configuration of a {02} multiplication block according to an embodiment of the present invention, and the configuration of the xt2_0 block, xt2_1 block, xt2_2 block, and xt2_3 block of FIG. 3 corresponds to this.
도 5에 따르면, {02} 곱셈연산 블록은 제1 저장 레지스터(310), 쉬프트 레지스터(320), 제2 저장 레지스터(330), 배타적 논리합 연산기(340) 및 먹스(350)를 포함한다.According to FIG. 5, the {02} multiplication block includes a
제1 저장 레지스터(310)는 바이트 단위의 입력 값을 저장하여 쉬프트 레지스터로 전달하는 수단이다. 이때, 바이트 단위의 입력 값은 도 3에 보인 바에 따르면, {01} 곱셈연산 블록으로부터 전달되는 입력 바이트이다. The
쉬프트 레지스터(320)는 제1 저장 레지스터(310)로부터 전달받은 입력 바이트를 좌측으로 1 비트 쉬프트시켜 출력한다. 이렇게 하면, 입력 바이트에 대한 2 곱셈 값을 연산할 수 있다.The
제2 저장 레지스터(330)는 모듈로(modulo) 연산을 위한 16진수 값{1D}를 저장하고 이를 배타적 논리합 연산기(340)로 출력한다.The
배타적 논리합 연산기(340)는 쉬프트 레지스터(320)로부터 쉬프트시킨 입력 바이트 및 제2 저장 레지스터(330)로부터 16진수 값{1D}를 입력받아 배타적 논리합 연산을 수행한다.The
먹스(350)는 제1 저장 레지스터(310)에 저장된 입력 바이트의 최상위 비트를 제어 비트로 입력받고 쉬프트 레지스터(320) 및 배타적 논리합 연산기(340)로부터 각각 출력되는 값을 입력받는다. 그리고 입력 바이트의 최상위 비트가 ‘0’이면 쉬프트 레지스터(320)로부터 출력되는 값을 출력하고 최상위 비트가 ‘1’이면 배타적 논리합 연산기(340)로부터 출력되는 값을 출력한다.The
도 6은 본 발명의 실시예에 따른 {03} 곱셈연산을 설명하기 위한 도면으로서, 도 3의 xt3_0 블록, xt3_1 블록, xt3_2 블록 및 xt3_3 블록의 구성이 이에 해당한다.FIG. 6 is a diagram for describing a {03} multiplication operation according to an embodiment of the present invention, and the configuration of the xt3_0 block, xt3_1 block, xt3_2 block, and xt3_3 block of FIG. 3 corresponds to this.
도 6에 따르면, {03} 곱셈연산을 수행하는 블록은 {01}, {02} 곱셈연산 결과에 대한 배타적 논리합 연산을 수행함으로써 {03} 곱셈연산을 완료한다.According to FIG. 6, a block performing a {03} multiplication operation completes a {03} multiplication operation by performing an exclusive OR operation on the {01} and {02} multiplication results.
즉 xt3_0 블록(232d)은 xt0_0 블록(232a)으로 입력되는 값 즉 {01} 곱셈연산 결과 및 xt2_0 블록(232b)으로 입력되는 값 즉 {02} 곱셈연산 결과에 대한 배타적 논리합 연산 결과를 입력받아 이를 {03} 곱셈연산 결과로서 출력한다.That is, the
도 7은 본 발명의 실시예에 따른 믹스컬럼블록 장치의 배타적 논리합 연산부의 구성을 상세하게 보인 도면이다.7 is a view showing in detail the configuration of the exclusive OR operation unit of the mix column block device according to an embodiment of the present invention.
도 7에 따르면, 배타적 논리합 연산부(230)의 {01}, {02} 및 {03} 곱셈연산 결과들에 대한 배타적 논리합 연산을 수행하여 출력 바이트를 출력한다.According to FIG. 7, an exclusive OR operation is performed on the results of the {01}, {02}, and {03} multiplication operations of the exclusive OR
제1 입력 바이트()에 대한 믹스컬럼전환한 값을 의미하는 제1 출력 바이트()를 출력하는 제1 출력부(242)는 제2 곱셈연산 블록부(230)의 xt0_2 블록, xt0_3 블록, xt2_0 블록 및 xt3_1 블록의 출력 값들에 대한 배타적 논리합 연산을 수행한 결과 값이다.First input byte ( The first output byte (meaning the mixed column transition value for) ) Is a result of performing an exclusive OR operation on the output values of the xt0_2 block, the xt0_3 block, the xt2_0 block, and the xt3_1 block of the second multiplication
제2 입력 바이트()에 대한 믹스컬럼전환한 값을 의미하는 제2 출력 바이트()를 출력하는 제2 출력부(244)는 제2 곱셈연산 블록부(230)의 xt0_0 블록, xt0_3 블록, xt2_1 블록 및 xt3_2 블록의 출력 값들에 대한 배타적 논리합 연산을 수행한 결과 값이다.Second input byte ( Second output byte (meaning the mixed column switching value for) ) Is a result of performing an exclusive OR operation on the output values of the xt0_0 block, xt0_3 block, xt2_1 block, and xt3_2 block of the second multiplication
제3 입력 바이트()에 대한 믹스컬럼전환한 값을 의미하는 제3 출력 바이트()를 출력하는 제3 출력부(246)는 제2 곱셈연산 블록부(230)의 xt0_0 블록, xt0_1 블록, xt2_1 블록 및 xt3_2 블록의 출력 값들에 대한 배타적 논리합 연산을 수행한 결과 값이다.Third input byte ( Third output byte (meaning the mixed column switching value for) ) Is a result of performing an exclusive OR operation on the output values of the xt0_0 block, xt0_1 block, xt2_1 block, and xt3_2 block of the second
제4 입력 바이트()에 대한 믹스컬럼전환한 값을 의미하는 제4 출력 바이트()를 출력하는 제4 출력부(248)는 제2 곱셈연산 블록부(230)의 xt0_1 블록, xt0_2 블록, xt2_3 블록 및 xt3_0 블록의 출력 값들에 대한 배타적 논리합 연산을 수행한 결과 값이다.Fourth input byte ( The fourth output byte ( ) Is a result of performing an exclusive OR operation on the output values of the xt0_1 block, the xt0_2 block, the xt2_3 block, and the xt3_0 block of the second multiplication
이제, 상술한 믹스컬럼블록 장치를 이용한 곱셈연산 과정에 대해 살펴보기로 한다.Now, the multiplication process using the above-described mixed column block apparatus will be described.
도 8은 본 발명의 실시예에 따른 믹스컬럼블록 장치의 곱셈연산 과정을 설명하기 위한 순서도이다.8 is a flowchart illustrating a multiplication operation of the mixed column block device according to an embodiment of the present invention.
도 8에 따르면, 믹스컬럼블록 장치는 비트 단위로 입력된 데이터를 바이트 단위로 저장한다(S101).According to FIG. 8, the mix column block device stores data input in units of bits in units of bytes (S101).
다음, 상기 단계(S101)에서 저장한 바이트 단위의 입력 데이터에 대한 16진수 값{01}, {02} 곱셈연산을 수행한다(S103).Next, hexadecimal values {01} and {02} multiplication operations are performed on the input data in units of bytes stored in the step S101 (S103).
다음, 상기 단계(S103)에서 수행한 {01}, {02} 곱셈연산 값을 이용하여 {01}, {02} 및 {03} 곱셈연산을 수행한다(S105).Next, {01}, {02} and {03} multiplication operations are performed using the {01} and {02} multiplication values performed in step S103 (S105).
다음, 상기 단계(S105)에서 수행한 {01}, {02} 및 {03} 곱셈연산 값에 대한 배타적 논리합 연산을 수행한다(S107).Next, an exclusive OR operation is performed on the {01}, {02}, and {03} multiplication values performed in step S105 (S107).
다음, 상기 단계(S107)에서 수행한 배타적 논리합 연산값을 바이트 단위의 입력 데이터 즉 입력 바이트에 대한 출력 바이트로 출력한다(S109).Next, the exclusive OR operation performed in the step S107 is output as input data in bytes, that is, an output byte for the input byte (S109).
도 9는 본 발명의 실시예에 따른 믹스컬럼블록 장치의 {02} 곱셈연산 과정을 세부적으로 설명하기 위한 순서도이다.9 is a flowchart illustrating a multiplication operation of the {02} multiplication unit of the mix column block device according to an embodiment of the present invention.
도 9에 따르면, {02} 곱셈연산 블록은 바이트 단위의 데이터가 입력(S201)되면 이를 좌측으로 1 비트 쉬프트 시킨다(S203).According to FIG. 9, when the data of a byte unit is input (S201), the {02} multiplication block shifts it 1 bit to the left (S203).
다음, 상기 단계(S203)에서 쉬프트 시킨 입력 데이터와 기저장된 16진수 값{1D}에 대한 배타적 논리합 연산을 수행한다(S205).Next, an exclusive OR operation is performed on the input data shifted in the step S203 and the stored hexadecimal value {1D} (S205).
다음, 상기 단계(S201)에서 입력된 입력 바이트의 최상위 비트를 이용하여 상기 단계(S203)에서 쉬프트시킨 입력 데이터와 상기 단계(S205)에서 수행한 배타적 논리합 연산 값 중에서 출력할 값을 선별한다(S207).Next, a value to be output is selected from the input data shifted in the step S203 and the exclusive OR operation performed in the step S205 by using the most significant bit of the input byte input in the step S201 (S207). ).
다음, 상기 단계(S207)에서 선별한 값을 출력한다(S209).Next, the value selected in step S207 is output (S209).
도 10은 본 발명의 실시예에 따른 믹스컬럼블록 장치의 {03} 곱셈연산 과정을 세부적으로 설명하기 위한 도면이다.FIG. 10 is a diagram for describing a {03} multiplication process of a mix column block device according to an embodiment of the present invention in detail.
도 10에 따르면, {03} 곱셈연산 블록은 {01} 곱셈연산한 값 및 {02} 곱셈연산한 값을 입력(S301, S303)받아 이들에 대한 배타적 논리합 연산을 수행한다(S305).According to FIG. 10, the {03} multiplication block receives {01} multiplication values and {02} multiplication values (S301 and S303) and performs an exclusive OR operation on them (S305).
그리고 상기 단계(S305)에서 배타적 논리합 연산을 수행한 결과를 {03} 곱셈 연산 결과로서출력한다(S307).The result of performing the exclusive OR operation in step S305 is output as a result of the {03} multiplication operation (S307).
도 11 내지 도 14는 본 발명의 실시예에 따른 믹스컬럼블록 장치의 출력 바이트 연산과정을 설명하기 위한 도면이다.11 to 14 are views for explaining the output byte operation process of the mixed column block device according to an embodiment of the present invention.
먼저, 도 11은 첫번째 입력 바이트에 대한 역믹스컬럼블록 전환된 출력 바이트를 연산하는 과정을 보인 도면이다.First, FIG. 11 is a diagram illustrating a process of calculating an inverse mix column block converted output byte for a first input byte.
도 11에 따르면, 배타적 논리합 연산부(240)는 제2 곱셈연산 블록부(230)로부터 세번째 입력 바이트에 대한 {01} 곱셈연산 결과, 네번째 입력 바이트에 대한 {01} 곱셈연산 결과, 첫번째 입력 바이트에 대한 {01} 곱셈연산 결과 및 두번째 입력 바이트에 대한 {03} 곱셈연산 결과를 입력(S401, S403, S405, S407)받아 이들에 대한 배타적 논리합 연산을 수행한다(S409).According to FIG. 11, the exclusive OR
그리고 상기 단계(S409)에서 배타적 논리합 연산을 수행한 결과를 첫번째 입력 바이트에 대한 출력 바이트로서 출력한다(S411).The result of performing the exclusive OR operation in step S409 is output as an output byte for the first input byte (S411).
도 12는 두번째 입력 바이트에 대한 역믹스컬럼블록 전환된 출력 바이트를 연산하는 과정을 보인 도면이다.12 is a diagram illustrating a process of calculating an inverse mix column block converted output byte for a second input byte.
도 12에 따르면, 배타적 논리합 연산부(240)는 제2 곱셈연산 블록부(230)로부터 첫번째 입력 바이트에 대한 {01} 곱셈연산 결과, 네번째 입력 바이트에 대한 {01} 곱셈연산 결과, 두번째 입력 바이트에 대한 {02} 곱셈연산 결과 및 세번째 입력 바이트에 대한 {03} 곱셈연산 결과를 입력(S501, S503, S505, S507)받아 이들에 대한 배타적 논리합 연산을 수행한다(S509).According to FIG. 12, the exclusive-
그리고 상기 단계(S509)에서 배타적 논리합 연산을 수행한 결과를 두번째 입 력 바이트에 대한 출력 바이트로서 출력한다(S511).The result of performing the exclusive OR operation in step S509 is output as an output byte for the second input byte (S511).
도 13은 세번째 입력 바이트에 대한 역믹스컬럼블록 전환된 출력 바이트를 연산하는 과정을 보인 도면이다.FIG. 13 is a diagram illustrating a process of calculating an inverse mix column block converted output byte for a third input byte.
도 13에 따르면, 배타적 논리합 연산부(240)는 제2 곱셈연산 블록부(230)로부터 첫번째 입력 바이트에 대한 {01} 곱셈연산 결과, 두번째 입력 바이트에 대한 {01} 곱셈연산 결과, 두번째 입력 바이트에 대한 {02} 곱셈연산 결과 및 세번째 입력 바이트에 대한 {03} 곱셈연산 결과를 입력(S601, S603, S605, S607)받아 이들에 대한 배타적 논리합 연산을 수행한다(S609).According to FIG. 13, the exclusive OR
그리고 상기 단계(S609)에서 배타적 논리합 연산을 수행한 결과를 세번째 입력 바이트에 대한 출력 바이트로서 출력한다(S611).The result of performing the exclusive OR operation in step S609 is output as an output byte for the third input byte (S611).
도 14는 네번째 입력 바이트에 대한 역믹스컬럼블록 전환된 출력 바이트를 연산하는 과정을 보인 도면이다.14 is a diagram illustrating a process of calculating an inverse mix column block converted output byte for a fourth input byte.
도 14에 따르면, 배타적 논리합 연산부(240)는 제2 곱셈연산 블록부(230)로부터 두번째 입력 바이트에 대한 {01} 곱셈연산을 수행한 결과, 세번째 입력 바이트에 대한 {01} 곱셈연산을 수행한 결과, 네번째 입력 바이트에 대한 {02} 곱셈연산을 수행한 결과 및 첫번째 입력 바이트에 대한 {03} 곱셈연산을 수행한 결과를 입력(S701, S703, S705, S707)받아 이들에 대한 배타적 논리합 연산을 수행한다(S709).According to FIG. 14, the exclusive OR
그리고 상기 단계(S709)에서 배타적 논리합 연산을 수행한 결과를 네번째 입력 바이트에 대한 출력 바이트로서 출력한다(S711).The result of performing the exclusive OR operation in step S709 is output as an output byte for the fourth input byte (S711).
이상 기술한, 도 11 내지 도 14에 기술된 내용에 따른 배타적 논리합 연산은 수학식 4와 동일하다. As described above, the exclusive OR operation according to the contents described with reference to FIGS. 11 to 14 is the same as that of
수학식 4의 는 xt0_0와 같고 , , 는 각각 xt0_1, xt0_2, xt0_3와 같고, 수학식 4의 () 곱셈연산 결과는 xt2_0와 같고 수학식 4의 (), (), () 곱셈연산 결과는 각각 xt2_1, xt2_2, xt2_3와 같고, 수학식 4의 () 곱셈연산 결과는 xt3_0와 같고 수학식 4의 (), (), () 곱셈연산 결과는 각각 xt3_1, xt3_2, xt3_3와 같다.Of equation (4) Is equal to xt0_0 , , Are equal to xt0_1, xt0_2, and xt0_3, respectively, ) The multiplication result is the same as xt2_0 and ), ( ), ( ) The multiplication result is the same as xt2_1, xt2_2, and xt2_3, respectively. ) The multiplication result is the same as xt3_0 and ), ( ), ( ) The multiplication result is equal to xt3_1, xt3_2, and xt3_3, respectively.
이러한 내용은 아래 수학식 8과 같이 정리할 수 있다.This can be summarized as in
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다. 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.
그리고 본 발명의 권리범위는 상술한 실시예에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및개량 형태 또한 본 발명의 권리범위에 속하는 것이다.The scope of the present invention is not limited to the above-described embodiments, but various modifications and improvements of those skilled in the art using the basic concept of the present invention as defined in the following claims are also within the scope of the present invention.
이와 같이 본 발명의 실시예에 의하면, 종래의 곱셈기로 구현했을 경우 보다 하드웨어 자원을 적게 사용할 수 있어, 소형 휴대용 기기에 적용 가능한 효과를 제공한다.As described above, according to the exemplary embodiment of the present invention, hardware resources may be used less than that of the conventional multiplier, thereby providing an effect applicable to a small portable device.
Claims (12)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060122911A KR100788902B1 (en) | 2006-12-06 | 2006-12-06 | Mixcolum block device and method of multiplication calculation thereof |
PCT/KR2007/003027 WO2008069386A2 (en) | 2006-12-06 | 2007-06-21 | Mixcolumn block device and method of performing multiplication calculation using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060122911A KR100788902B1 (en) | 2006-12-06 | 2006-12-06 | Mixcolum block device and method of multiplication calculation thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100788902B1 true KR100788902B1 (en) | 2007-12-27 |
Family
ID=39148060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060122911A KR100788902B1 (en) | 2006-12-06 | 2006-12-06 | Mixcolum block device and method of multiplication calculation thereof |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR100788902B1 (en) |
WO (1) | WO2008069386A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150018657A (en) * | 2013-08-08 | 2015-02-23 | 삼성전자주식회사 | Method and apparatus for protecting of data |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030099352A1 (en) | 2001-10-04 | 2003-05-29 | Chih-Chung Lu | Apparatus for encryption and decryption, capable of use in encryption and decryption of advanced encryption standard |
KR20040045517A (en) * | 2002-11-23 | 2004-06-02 | 한국전자통신연구원 | Real time block data encryption/decryption processor using Rijndael block cipher and method therefor |
KR20040047105A (en) * | 2002-11-29 | 2004-06-05 | 한국전자통신연구원 | Apparatus and method for polynomial multiply of block cipher |
US20050182812A1 (en) | 2002-06-07 | 2005-08-18 | Hubert Gerardus T. | Aes mixcolumn transform |
US20060198524A1 (en) | 2003-05-14 | 2006-09-07 | Sexton Bonnie C | Hardware implementation of the mixcolumn/invmiscolumn functions |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7421076B2 (en) * | 2003-09-17 | 2008-09-02 | Analog Devices, Inc. | Advanced encryption standard (AES) engine with real time S-box generation |
-
2006
- 2006-12-06 KR KR1020060122911A patent/KR100788902B1/en active IP Right Grant
-
2007
- 2007-06-21 WO PCT/KR2007/003027 patent/WO2008069386A2/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030099352A1 (en) | 2001-10-04 | 2003-05-29 | Chih-Chung Lu | Apparatus for encryption and decryption, capable of use in encryption and decryption of advanced encryption standard |
US20050182812A1 (en) | 2002-06-07 | 2005-08-18 | Hubert Gerardus T. | Aes mixcolumn transform |
KR20040045517A (en) * | 2002-11-23 | 2004-06-02 | 한국전자통신연구원 | Real time block data encryption/decryption processor using Rijndael block cipher and method therefor |
KR20040047105A (en) * | 2002-11-29 | 2004-06-05 | 한국전자통신연구원 | Apparatus and method for polynomial multiply of block cipher |
US20060198524A1 (en) | 2003-05-14 | 2006-09-07 | Sexton Bonnie C | Hardware implementation of the mixcolumn/invmiscolumn functions |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150018657A (en) * | 2013-08-08 | 2015-02-23 | 삼성전자주식회사 | Method and apparatus for protecting of data |
KR102133200B1 (en) | 2013-08-08 | 2020-07-13 | 서울대학교산학협력단 | Method and apparatus for protecting of data |
Also Published As
Publication number | Publication date |
---|---|
WO2008069386A2 (en) | 2008-06-12 |
WO2008069386A3 (en) | 2009-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mangard et al. | A highly regular and scalable AES hardware architecture | |
Verbauwhede et al. | Design and performance testing of a 2.29-GB/s Rijndael processor | |
Sklavos et al. | Architectures and VLSI implementations of the AES-proposal Rijndael | |
US7809132B2 (en) | Implementations of AES algorithm for reducing hardware with improved efficiency | |
US7532721B2 (en) | Implementation of a switch-box using a subfield method | |
Karthigaikumar et al. | Simulation of image encryption using AES algorithm | |
US20110231673A1 (en) | Cryptographic processing using a processor | |
KR100377176B1 (en) | Encryption device using data encryption standard algorithm | |
US20200044822A1 (en) | Method and apparatus for improving the speed of advanced encryption standard (aes) decryption algorithm | |
JP2002040933A (en) | Ciphering device using standard algorithm for ciphering data | |
Rajasekar et al. | Design and implementation of power and area optimized AES architecture on FPGA for IoT application | |
Singh et al. | An efficient hardware design and implementation of advanced encryption standard (AES) algorithm | |
Saarinen | A lightweight ISA extension for AES and SM4 | |
KR100922728B1 (en) | AES encryption and decryption apparatus and method | |
CN110034918B (en) | SM4 acceleration method and device | |
Buell | Modern symmetric ciphers—Des and Aes | |
KR100788902B1 (en) | Mixcolum block device and method of multiplication calculation thereof | |
Kumar et al. | Efficient implementation of Advanced Encryption Standard (AES) for ARM based platforms | |
Kuswaha et al. | Data Transmission using AES-RSA Based Hybrid Security Algorithms | |
JPWO2009090689A1 (en) | Encryption apparatus and encryption processing method | |
Sireesha et al. | A novel approach of area optimized and pipelined FPGA implementation of AES encryption and decryption | |
Canright et al. | A more compact AES | |
Babu et al. | Aes algorithm implementation using arm processor | |
JP5605197B2 (en) | Cryptographic processing apparatus, cryptographic processing method, and program | |
Lee et al. | Lightweight and Low-Latency AES Accelerator Using Shared SRAM |
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: 20121129 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20131128 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20141127 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20151127 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20161129 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20171129 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20181129 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20191128 Year of fee payment: 13 |