KR100788902B1 - Mixcolum block device and method of multiplication calculation thereof - Google Patents

Mixcolum block device and method of multiplication calculation thereof Download PDF

Info

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
Application number
KR1020060122911A
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 KR1020060122911A priority Critical patent/KR100788902B1/en
Priority to PCT/KR2007/003027 priority patent/WO2008069386A2/en
Application granted granted Critical
Publication of KR100788902B1 publication Critical patent/KR100788902B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • 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/12Details 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

A MixColumn block device and a multiplication method using the same are provided to be applied to a small and low power portable device with a simple structure while increasing an encryption performance by including an AES block algorithm. A storing part(210) stores bit data as a byte unit and outputs stored byte data. A first multiplication block(220) outputs a multiplied result by performing [01] and [02] multiplication, which is a hexadecimal value of an input byte received from the storing part. A second multiplication block(230) outputs the multiplied result by performing [01], [02], and [03] multiplication, which is the hexadecimal value, with the result of the [01] and [02] multiplication. An XOR unit(240) outputs an output byte for the input byte by performing XOR operation for the result of the [01], [02], and [03] multiplication.

Description

믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법{MixColum block device and method of multiplication calculation thereof}MixColumn block device and method of multiplication calculation

도 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 initial round processor 110, a repetitive round processor 120, and a last round processor 130.

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

여기서, 쉬프트로우블록(122)이나 라운드키처리블록(124)은 바이트(8 비트)단위의 자리 이동으로 쉽게 하드웨어로 구현할 수 있다. Here, the shift row block 122 or the round key processing block 124 can be easily implemented in hardware by shifting the positions of bytes (8 bits).

그러나 서브바이트블록(121)과 믹스컬럼블록(123)을 하드웨어로 구현할 경우, 곱셈연산에 따른 전체적인 처리 속도가 늦어지고, 곱셈기 사용은 하드웨어 자원을 많이 사용하기에 휴대기기 적용에 적합하지 않은 문제점이 있다.However, when the sub-byte block 121 and the mix column block 123 are implemented in hardware, the overall processing speed according to the multiplication operation is slowed down, and the use of the multiplier uses a lot of hardware resources, which is not suitable for mobile device application. have.

한편, 종래 기술로서 대한민국 특허출원번호 제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 Equation 1 below using the finite field GF (28) and the fourth degree modulus x 4 +1.

Figure 112006090387120-pat00001
Figure 112006090387120-pat00001

수학식 1에 보인 다항식을 이용하여 믹스컬럼 전환을 계산하면 아래 수학식 2에서 수학식 3의 행렬식이 주어진다.When the mixed column conversion is calculated using the polynomial shown in Equation 1, the determinant of Equation 3 is given in Equation 2 below.

Figure 112006090387120-pat00002
Figure 112006090387120-pat00002

여기서,

Figure 112006090387120-pat00003
는 입력 바이트를 의미하고
Figure 112006090387120-pat00004
는 출력 바이트를 의미한다.here,
Figure 112006090387120-pat00003
Means input byte
Figure 112006090387120-pat00004
Is the output byte.

Figure 112006090387120-pat00005
Figure 112006090387120-pat00005

위의 수학식 3을 연산하면 다음과 같은 수학식 4를 얻을 수 있다.By calculating Equation 3 above, Equation 4 can be obtained.

Figure 112006090387120-pat00006
Figure 112006090387120-pat00006

위의 수학식 4에서 각각의 입력 바이트(

Figure 112006090387120-pat00007
)에 대하여 {02} 곱셈연산 및 {03} 곱셈연산을 한 다음 배타적 논리합(XOR) 연산을 하면 믹스컬럼블록의 출력 바이트(
Figure 112006090387120-pat00008
)를 만들 수 있다. 여기서, {02}, {03}은 16진수 값을 의미한다.In Equation 4 above, each input byte (
Figure 112006090387120-pat00007
) And the exclusive OR (XOR) operation with {02} multiplication and {03} multiplication, then the output byte (
Figure 112006090387120-pat00008
) Can be made. Here, {02} and {03} mean hexadecimal values.

이때, 수학식 4에서 {02} 곱셈연산을 살펴보면, '2’를 단순히 산술곱셈하는 것이 아니라 2를 곱한 값에 아래 수학식 5의 다항식을 이용하여 모듈로(modulo) 연산을 수행한다.In this case, referring to the {02} multiplication operation in Equation 4, a modulo operation is performed by using the polynomial of Equation 5 below instead of simply performing arithmetic multiplication of '2'.

Figure 112006090387120-pat00009
Figure 112006090387120-pat00009

하나의 실시예로서 연산에 대해서 살펴보면, 먼저 아래 수학식 6과 같이 연산된다.Referring to the calculation as an embodiment, it is calculated as shown in Equation 6 below.

Figure 112006090387120-pat00010
Figure 112006090387120-pat00010

Figure 112006090387120-pat00011
Figure 112006090387120-pat00012
Figure 112006090387120-pat00013
Figure 112006090387120-pat00014
Figure 112006090387120-pat00011
Figure 112006090387120-pat00012
Figure 112006090387120-pat00013
Figure 112006090387120-pat00014

Figure 112006090387120-pat00015
Figure 112006090387120-pat00016
Figure 112006090387120-pat00015
Figure 112006090387120-pat00016

이때, 수학식 6의 결과에 수학식 5의 다항식을 이용한 모듈로 연산에 대해 살펴보면, 아래 수학식 7과 같다.At this time, the modulo operation using the polynomial of Equation 5 to the result of Equation 6 is as follows.

Figure 112006090387120-pat00017
Figure 112006090387120-pat00018
modulo
Figure 112006090387120-pat00017
Figure 112006090387120-pat00018
modulo

Figure 112006090387120-pat00019
Figure 112006090387120-pat00020
Figure 112006090387120-pat00019
Figure 112006090387120-pat00020

수학식 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 input byte 1 bit to the left to obtain a multiplication value. XOR) operation can be performed.

여기서, 수학식 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}

Figure 112006090387120-pat00021
{02} 연산과 동일하고 {01} 곱셈연산은 입력 바이트와 동일하다. 즉 {03} 곱셈연산은 입력 바이트와 {02} 곱셈연산을 배타적 논리합(XOR) 연산하면 된다.Also, the {03} multiplication operation is {01}
Figure 112006090387120-pat00021
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 storage unit 210, a first multiplication operation unit 220, a second multiplication operation unit 230, and an exclusive OR operation unit 240.

저장부(210)는 32비트의 입력 데이터를 8비트 단위로 구분하여 4개의 입력 바이트를 저장하는 제1 저장 모듈(212), 제2 저장 모듈(214), 제3 저장 모듈(216) 및 제4 저장 모듈(218)을 포함한다. The storage unit 210 stores the first input module 212, the second storage module 214, the third storage module 216, and the fourth storage byte by dividing the 32-bit input data into 8-bit units. 4 storage module 218.

여기서, 제1 저장 모듈(212)은 첫번째 입력 바이트(

Figure 112006090387120-pat00022
)를 저장하고, 제2 저장 모듈(214)은 두번째 입력 바이트(
Figure 112006090387120-pat00023
)를 저장하고, 제3 저장 모듈(216)은 세번째 입력 바이트(
Figure 112006090387120-pat00024
)를 저장하고, 제4 저장 모듈(218)은 네번째 입력 바이트(
Figure 112006090387120-pat00025
)를 저장한다.Here, the first storage module 212 is the first input byte (
Figure 112006090387120-pat00022
), And the second storage module 214 stores the second input byte (
Figure 112006090387120-pat00023
), And the third storage module 216 stores the third input byte (
Figure 112006090387120-pat00024
), And the fourth storage module 218 stores the fourth input byte (
Figure 112006090387120-pat00025
Save).

제1 곱셈연산 블록부(220)는 저장부(210)로부터 출력된 각각의 입력 바이트에 대한 {01}, {02} 곱셈연산을 수행하는 제1 곱셈연산 모듈(222), 제2 곱셈연산 모듈(224), 제3 곱셈연산 모듈(226) 및 제4 곱셈연산 모듈(228)을 포함한다.The first multiplication operation block 220 may include a first multiplication operation module 222 and a second multiplication operation module that perform {01} and {02} multiplication operations on respective input bytes output from the storage unit 210. 224, a third multiplication module 226, and a fourth multiplication module 228.

여기서, 제1 곱셈연산 모듈(222)은 제1 저장 모듈(212)로부터 입력받은 첫번째 입력 바이트(

Figure 112006090387120-pat00026
)에 대한 {01} 곱셈연산을 수행하는 {01} 곱셈연산 블록 및 {02} 곱셈연산을 수행하는 {02} 곱셈연산 블록을 포함한다. In this case, the first multiplication operation module 222 receives the first input byte (received from the first storage module 212).
Figure 112006090387120-pat00026
{01} multiplication block for performing {01} multiplication and {02} multiplication block for performing {02} multiplication.

이때, {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)로부터 입력받은 두번째 입력 바이트(

Figure 112006090387120-pat00027
)에 대한 {01} 곱셈연산을 수행하는 {01} 곱셈연산 블록(또는 xt0_1 블록) 및 {02} 곱셈연산을 수행하는 {02} 곱셈연산 블록(또는 xt2_1 블록)을 포함한다.The second multiplication module 224 receives a second input byte (received from the second storage module 214).
Figure 112006090387120-pat00027
{01} multiplication block (or xt0_1 block) for performing {01} multiplication, and {02} multiplication block (or xt2_1 block) for performing {02} multiplication.

제3 곱셈연산 모듈(226)은 제3 저장 모듈(216)로부터 입력받은 세번째 입력 바이트(

Figure 112006090387120-pat00028
)에 대한 {01} 곱셈연산을 수행하는 {01} 곱셈연산 블록(또는 xt0_2 블록) 및 {02} 곱셈연산을 수행하는 {02} 곱셈연산 블록(또는 xt2_2 블록)을 포함한다.The third multiplication module 226 receives the third input byte (received from the third storage module 216).
Figure 112006090387120-pat00028
{01} multiplication block (or xt0_2 block) for performing {01} multiplication, and {02} multiplication block (or xt2_2 block) for performing {02} multiplication.

제4 곱셈연산 모듈(228)은 제4 저장 모듈(218)로부터 입력받은 네번째 입력 바이트(

Figure 112006090387120-pat00029
)에 대한 {01} 곱셈연산을 수행하는 {01} 곱셈연산 블록(또는 xt0_3 블록) 및 {02} 곱셈연산을 수행하는 {02} 곱셈연산 블록(또는 xt2_3 블록)을 포함한 다.The fourth multiplication module 228 receives the fourth input byte (received from the fourth storage module 218).
Figure 112006090387120-pat00029
{01} multiplication block (or xt0_3 block) for performing {01} multiplication, and {02} multiplication block (or xt2_3 block) for performing {02} multiplication.

제2 곱셈연산 블록부(230)는 제1 곱셈연산 블록부(220)로부터 출력된 각각의 {01}, {02} 곱셈연산 결과를 이용하여 {01}, {02} 및 {03} 곱셈연산을 수행하는 제5 곱셈연산 모듈(232), 제6 곱셈연산 모듈(234), 제7 곱셈연산 모듈(236) 및 제8 곱셈연산 모듈(238)을 포함한다.The second multiplication operation block 230 uses the {01}, {02} multiplication operations output from the first multiplication operation block 220 to perform the {01}, {02} and {03} multiplication operations. And a fifth multiplication module 232, a sixth multiplication module 234, a seventh multiplication module 236, and an eighth multiplication module 238.

제5 곱셈연산 모듈(232)은 제1 곱셈연산 모듈(222)로부터 입력받은 {01} 곱셈연산 결과 및 {02} 곱셈연산 결과를 이용하여 {01}, {02} 및 {03} 곱셈연산을 각각 수행하는 곱셈연산 블록(또는 각각 xt0_0 블록, xt2_0 블록 및 xt3_0 블록)을 포함한다.The fifth multiplication module 232 performs {01}, {02} and {03} multiplication operations using the {01} multiplication result and the {02} multiplication result received from the first multiplication calculation module 222. Multiplication blocks (or xt0_0 blocks, xt2_0 blocks, and xt3_0 blocks, respectively) to perform.

제6 곱셈연산 모듈(234)은 제2 곱셈연산 모듈(224)로부터 입력받은 {01} 곱셈연산 결과 및 {02} 곱셈연산 결과를 이용하여 {01}, {02} 및 {03} 곱셈연산을 각각 수행하는 곱셈연산 블록(또는 각각 xt0_1 블록, xt2_1 블록 및 xt3_1 블록)을 포함한다.The sixth multiplication module 234 performs {01}, {02} and {03} multiplication operations using the {01} multiplication result and the {02} multiplication result received from the second multiplication module 224. Multiplication blocks (or xt0_1 blocks, xt2_1 blocks, and xt3_1 blocks, respectively).

제7 곱셈연산 모듈(236)은 제3 곱셈연산 모듈(226)로부터 입력받은 {01} 곱셈연산 결과 및 {02} 곱셈연산 결과를 이용하여 {01}, {02} 및 {03} 곱셈연산을 각각 수행하는 곱셈연산 블록(또는 각각 xt0_2 블록, xt2_2 블록 및 xt3_2 블록)을 포함한다.The seventh multiplication module 236 performs {01}, {02} and {03} multiplication operations using the {01} multiplication result and the {02} multiplication result received from the third multiplication module 226. Multiplication blocks (or xt0_2 blocks, xt2_2 blocks, and xt3_2 blocks, respectively) to perform.

제8 곱셈연산 모듈(238)은 제4 곱셈연산 모듈(228)로부터 입력받은 {01} 곱셈연산 결과 및 {02} 곱셈연산 결과를 이용하여 {01}, {02} 및 {03} 곱셈연산을 각각 수행하는 곱셈연산 블록(또는 각각 xt0_3 블록, xt2_3 블록 및 xt3_3 블록)을 포함한다.The eighth multiplication module 238 performs {01}, {02} and {03} multiplication operations using the {01} multiplication result and the {02} multiplication result received from the fourth multiplication module 228. Multiplication blocks (or xt0_3 blocks, xt2_3 blocks, and xt3_3 blocks, respectively) to perform.

배타적 논리합 연산부(240)는 제2 곱셈연산 블록부(230)로부터 입력받은 각각의 {01}, {02} 및 {03} 곱셈연산을 수행한 결과에 대한 배타적 논리합 연산을 수행하여 각각의 출력 바이트(

Figure 112006090387120-pat00030
)(242, 244, 246, 248)를 출력한다.The exclusive OR operation 240 performs an exclusive OR operation on the result of performing each of the {01}, {02}, and {03} multiplication operations received from the second multiplication operation block 230, and outputs each of the output bytes. (
Figure 112006090387120-pat00030
) 242, 244, 246, 248.

도 4는 본 발명의 실시예에 따른 제1 곱셈연산 블록부(220)의 {01}, {02} 곱셈 연산을 설명하기 위한 도면으로서, 특히 제1 곱셈연산 모듈(222)을 상세하게 보인 도면이다.FIG. 4 is a diagram for describing {01} and {02} multiplication operations of the first multiplication block unit 220 according to an embodiment of the present invention. In particular, the first multiplication operation module 222 is shown in detail. to be.

도 4에 따르면, xt0_0 블록(222a)은 제1 저장 모듈(212)로부터 첫번째 입력 바이트(

Figure 112006090387120-pat00031
)를 입력받아 xt2_0 블록(222b)으로 전달하고, 제2 곱셈연산 블록부(230)의 xt0_0 블록(232a)에게 전달한다.According to FIG. 4, the xt0_0 block 222a receives the first input byte (from the first storage module 212).
Figure 112006090387120-pat00031
) Is received and transferred to the xt2_0 block 222b and delivered to the xt0_0 block 232a of the second multiplication operation block 230.

그리고 xt2_0 블록(222b)은 {02} 곱셈연산 결과를 제2 곱셈연산 블록부(230)의 xt2_0 블록(232b)에게 전달한다.The xt2_0 block 222b transfers the {02} multiplication operation result to the xt2_0 block 232b of the second multiplication operation block unit 230.

이때, 제1 곱셈연산부(220)의 xt0_0 블록(222a) 및 제2 곱셈연산 블록부(230)의 xt0_0 블록(232a)은 동일한 값을 가진다. 그리고 제1 곱셈연산부(220)의 xt2_0 블록(222b) 및 제2 곱셈연산 블록부(230)의 xt2_0 블록(232b)은 동일한 값을 가진다. 따라서, 이들은 공통 레지스터로 사용할 수 있다.At this time, the xt0_0 block 222a of the first multiplication operation unit 220 and the xt0_0 block 232a of the second multiplication operation unit 230 have the same value. The xt2_0 block 222b of the first multiplication operation unit 220 and the xt2_0 block 232b of the second multiplication operation unit 230 have the same value. Thus, they can be used as common registers.

도 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 first storage register 310, a shift register 320, a second storage register 330, an exclusive-OR operator 340, and a mux 350.

제1 저장 레지스터(310)는 바이트 단위의 입력 값을 저장하여 쉬프트 레지스터로 전달하는 수단이다. 이때, 바이트 단위의 입력 값은 도 3에 보인 바에 따르면, {01} 곱셈연산 블록으로부터 전달되는 입력 바이트이다. The first storage register 310 is a means for storing an input value of a byte unit and transferring it to the shift register. In this case, as shown in FIG. 3, the input value in bytes is an input byte transmitted from the {01} multiplication block.

쉬프트 레지스터(320)는 제1 저장 레지스터(310)로부터 전달받은 입력 바이트를 좌측으로 1 비트 쉬프트시켜 출력한다. 이렇게 하면, 입력 바이트에 대한 2 곱셈 값을 연산할 수 있다.The shift register 320 shifts the input byte received from the first storage register 310 to the left by one bit and outputs the shifted bit. This allows you to compute a multiplication value for the input byte.

제2 저장 레지스터(330)는 모듈로(modulo) 연산을 위한 16진수 값{1D}를 저장하고 이를 배타적 논리합 연산기(340)로 출력한다.The second storage register 330 stores the hexadecimal value {1D} for modulo operation and outputs it to the exclusive-OR operator 340.

배타적 논리합 연산기(340)는 쉬프트 레지스터(320)로부터 쉬프트시킨 입력 바이트 및 제2 저장 레지스터(330)로부터 16진수 값{1D}를 입력받아 배타적 논리합 연산을 수행한다.The exclusive OR operator 340 receives the input byte shifted from the shift register 320 and the hexadecimal value {1D} from the second storage register 330 to perform an exclusive OR operation.

먹스(350)는 제1 저장 레지스터(310)에 저장된 입력 바이트의 최상위 비트를 제어 비트로 입력받고 쉬프트 레지스터(320) 및 배타적 논리합 연산기(340)로부터 각각 출력되는 값을 입력받는다. 그리고 입력 바이트의 최상위 비트가 ‘0’이면 쉬프트 레지스터(320)로부터 출력되는 값을 출력하고 최상위 비트가 ‘1’이면 배타적 논리합 연산기(340)로부터 출력되는 값을 출력한다.The mux 350 receives the most significant bit of the input byte stored in the first storage register 310 as a control bit and receives a value output from the shift register 320 and the exclusive OR operator 340, respectively. If the most significant bit of the input byte is '0', the value output from the shift register 320 is output. If the most significant bit is '1', the value output from the exclusive OR operator 340 is output.

도 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 xt3_0 block 232d receives the value input to the xt0_0 block 232a, that is, the {01} multiplication result and the xt2_0 block 232b, that is, the exclusive OR operation result for the {02} multiplication operation result. Output as a result of multiplication operation.

도 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 operation unit 230 to output an output byte.

제1 입력 바이트(

Figure 112006090387120-pat00032
)에 대한 믹스컬럼전환한 값을 의미하는 제1 출력 바이트(
Figure 112006090387120-pat00033
)를 출력하는 제1 출력부(242)는 제2 곱셈연산 블록부(230)의 xt0_2 블록, xt0_3 블록, xt2_0 블록 및 xt3_1 블록의 출력 값들에 대한 배타적 논리합 연산을 수행한 결과 값이다.First input byte (
Figure 112006090387120-pat00032
The first output byte (meaning the mixed column transition value for)
Figure 112006090387120-pat00033
) 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 operation block unit 230.

제2 입력 바이트(

Figure 112006090387120-pat00034
)에 대한 믹스컬럼전환한 값을 의미하는 제2 출력 바이트(
Figure 112006090387120-pat00035
)를 출력하는 제2 출력부(244)는 제2 곱셈연산 블록부(230)의 xt0_0 블록, xt0_3 블록, xt2_1 블록 및 xt3_2 블록의 출력 값들에 대한 배타적 논리합 연산을 수행한 결과 값이다.Second input byte (
Figure 112006090387120-pat00034
Second output byte (meaning the mixed column switching value for)
Figure 112006090387120-pat00035
) 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 operation block unit 230.

제3 입력 바이트(

Figure 112006090387120-pat00036
)에 대한 믹스컬럼전환한 값을 의미하는 제3 출력 바이트(
Figure 112006090387120-pat00037
)를 출력하는 제3 출력부(246)는 제2 곱셈연산 블록부(230)의 xt0_0 블록, xt0_1 블록, xt2_1 블록 및 xt3_2 블록의 출력 값들에 대한 배타적 논리합 연산을 수행한 결과 값이다.Third input byte (
Figure 112006090387120-pat00036
Third output byte (meaning the mixed column switching value for)
Figure 112006090387120-pat00037
) 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 multiplication operation block 230.

제4 입력 바이트(

Figure 112006090387120-pat00038
)에 대한 믹스컬럼전환한 값을 의미하는 제4 출력 바이트(
Figure 112006090387120-pat00039
)를 출력하는 제4 출력부(248)는 제2 곱셈연산 블록부(230)의 xt0_1 블록, xt0_2 블록, xt2_3 블록 및 xt3_0 블록의 출력 값들에 대한 배타적 논리합 연산을 수행한 결과 값이다.Fourth input byte (
Figure 112006090387120-pat00038
The fourth output byte (
Figure 112006090387120-pat00039
) 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 operation block unit 230.

이제, 상술한 믹스컬럼블록 장치를 이용한 곱셈연산 과정에 대해 살펴보기로 한다.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 operation unit 240 performs a {01} multiplication operation on the third input byte, a {01} multiplication operation on the fourth input byte, and a first input byte from the second multiplication operation block unit 230. A multiplication result for {01} and a multiplication result for {03} for the second input byte are received (S401, S403, S405, and S407), and an exclusive OR operation is performed on them (S409).

그리고 상기 단계(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-OR operation unit 240 performs a {01} multiplication operation on the first input byte, a {01} multiplication operation on the fourth input byte, and a second input byte from the second multiplication operation block unit 230. A multiplication result for {02} and a multiplication result for {03} for the third input byte are received (S501, S503, S505, and S507) and an exclusive OR operation is performed on the multiplication result (S509).

그리고 상기 단계(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 operation unit 240 performs a {01} multiplication operation on the first input byte, a {01} multiplication operation on the second input byte, and a second input byte from the second multiplication operation block 230. A multiplication result of {02} and a {03} multiplication result of the third input byte are received (S601, S603, S605, and S607), and an exclusive OR operation is performed on them (S609).

그리고 상기 단계(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 operation 240 performs the {01} multiplication operation on the second input byte from the second multiplication operation block unit 230, and performs the {01} multiplication operation on the third input byte. As a result, the result of performing the {02} multiplication operation on the fourth input byte and the result of performing the {03} multiplication operation on the first input byte is received (S701, S703, S705, and S707) and an exclusive OR operation is performed on them. It performs (S709).

그리고 상기 단계(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 Equation 4 below.

수학식 4의

Figure 112006090387120-pat00040
는 xt0_0와 같고
Figure 112006090387120-pat00041
,
Figure 112006090387120-pat00042
,
Figure 112006090387120-pat00043
는 각각 xt0_1, xt0_2, xt0_3와 같고, 수학식 4의 (
Figure 112006090387120-pat00044
) 곱셈연산 결과는 xt2_0와 같고 수학식 4의 (
Figure 112006090387120-pat00045
), (
Figure 112006090387120-pat00046
), (
Figure 112006090387120-pat00047
) 곱셈연산 결과는 각각 xt2_1, xt2_2, xt2_3와 같고, 수학식 4의 (
Figure 112006090387120-pat00048
) 곱셈연산 결과는 xt3_0와 같고 수학식 4의 (
Figure 112006090387120-pat00049
), (
Figure 112006090387120-pat00050
), (
Figure 112006090387120-pat00051
) 곱셈연산 결과는 각각 xt3_1, xt3_2, xt3_3와 같다.Of equation (4)
Figure 112006090387120-pat00040
Is equal to xt0_0
Figure 112006090387120-pat00041
,
Figure 112006090387120-pat00042
,
Figure 112006090387120-pat00043
Are equal to xt0_1, xt0_2, and xt0_3, respectively,
Figure 112006090387120-pat00044
) The multiplication result is the same as xt2_0 and
Figure 112006090387120-pat00045
), (
Figure 112006090387120-pat00046
), (
Figure 112006090387120-pat00047
) The multiplication result is the same as xt2_1, xt2_2, and xt2_3, respectively.
Figure 112006090387120-pat00048
) The multiplication result is the same as xt3_0 and
Figure 112006090387120-pat00049
), (
Figure 112006090387120-pat00050
), (
Figure 112006090387120-pat00051
) The multiplication result is equal to xt3_1, xt3_2, and xt3_3, respectively.

이러한 내용은 아래 수학식 8과 같이 정리할 수 있다.This can be summarized as in Equation 8 below.

Figure 112006090387120-pat00052
Figure 112006090387120-pat00052

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

AES(Advanced Encryption Standard) 블록 암호의 라운드 연산을 수행하는 믹스컬럼(MixColums)블록 장치에 있어서,In the MixColums block device, which performs a round operation of an advanced encryption standard (AES) block cipher, 비트 단위의 입력 데이터를 바이트 단위로 저장하고 저장된 입력 바이트를 출력하는 저장부;A storage unit for storing input data in units of bits and outputting the stored input bytes; 상기 저장부로부터 입력받은 상기 입력 바이트에 대한 16진수 값인 {01} 및 {02} 곱셈연산을 수행하여 출력하는 제1 곱셈연산 블록부;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; 상기 제1 곱셈연산 블록부로부터 입력받은 상기 {01} 및 {02} 곱셈연산을 수행한 결과를 이용하여 16진수 값인 {01}, {02} 및 {03} 곱셈연산을 수행하여 출력하는 제2 곱셈연산 블록부; 및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 상기 제2 곱셈연산 블록부로부터 입력받은 상기 {01}, {02} 및 {03} 곱셈연산을 수행한 결과에 대한 배타적 논리합 연산을 수행하여 상기 입력 바이트에 대한 출력 바이트를 출력하는 배타적 논리합 연산부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. 를 포함하는 믹스컬럼블록 장치. Mix column block device comprising a. 제1항에 있어서,The method of claim 1, 상기 제1 곱셈연산 블록부는,The first multiplication operation block unit, 상기 저장부로부터 상기 입력 바이트를 입력받아 출력하는 {01} 곱셈연산 블록; 및A {01} multiplication block configured to receive the input byte from the storage and output the received byte; And 상기 {01} 곱셈연산 블록이 출력한 값을 입력받아 {02} 곱셈연산을 수행한 결과를 출력하는 {02} 곱셈연산 블록A {02} multiplication block that receives a value output by the {01} multiplication block and outputs a result of performing {02} multiplication 을 포함하는 것을 특징으로 하는 믹스컬럼블록 장치. Mix column block device comprising a. 제2항에 있어서,The method of claim 2, 상기 {02} 곱셈연산 블록은,The {02} multiplication block, 바이트 단위의 입력 값을 저장하는 제1 저장 레지스터;A first storage register for storing an input value in bytes; 상기 제1 저장 레지스터로부터 입력 바이트를 입력받아 이를 좌측으로 1 비트 쉬프트시켜 출력하는 쉬프트 레지스터;A shift register which receives an input byte from the first storage register and shifts it by 1 bit to the left; 16진수 값 {1D}를 저장하는 제2 저장 레지스터; A second storage register for storing the hexadecimal value {1D}; 상기 쉬프트 레지스터로부터 출력된 값과 상기 제2 저장 레지스터에 저장된 값을 입력받고, 입력받은 값들에 대한 배타적 논리합 연산을 수행하여 출력하는 배타적 논리합 연산기; 및An exclusive OR operator which receives a value output from the shift register and a value stored in the second storage register and performs an exclusive OR operation on the input values; And 상기 제1 저장 레지스터로부터 입력받은 상기 입력 바이트의 최상위 비트를 제어 비트로 하고 상기 쉬프트 레지스터로부터 출력된 값 및 상기 배타적 논리합 연산기로부터 출력된 값을 입력받아 상기 입력받은 값들 중에서 출력할 값을 선별하는 먹스A mux for selecting a value to be output from among the input values by receiving the most significant bit of the input byte received from the first storage register as a control bit and receiving a value output from the shift register and a value output from the exclusive OR operator. 를 포함하는 것을 특징으로 하는 믹스컬럼블록 장치.Mix column block device comprising a. 제3항에 있어서,The method of claim 3, 상기 제1 곱셈연산 블록부는,The first multiplication operation block unit, {01} 곱셈연산 블록 및 {02} 곱셈연산 블록으로 구성되고, 상기 저장부로부터 입력된 복수개의 입력 바이트에 대한 {01} 및 {02} 곱셈연산을 수행하는 곱셈연산 모듈을 복수개 포함하는 것을 특징으로 하는 믹스컬럼블록 장치.And a multiplication module configured to perform a multiplication operation of {01} and {02} with respect to a plurality of input bytes input from the storage unit. Mix column block device. 제1항 내지 제4항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 4, 상기 제2 곱셈연산 블록부는,The second multiplication operation block unit, 상기 제1 곱셈연산 블록부의 상기 {01} 곱셈연산 결과를 입력받아 이를 출력하는 {01} 곱셈연산 블록;A {01} multiplication block receiving and outputting the {01} multiplication result of the first multiplication block unit; 상기 제1 곱셈연산 블록부의 상기 {02} 곱셈연산 결과를 입력받아 이를 출력하는 {02} 곱셈연산 블록; 및A {02} multiplication block receiving and outputting the {02} multiplication result of the first multiplication block unit; And 상기 {01} 곱셈연산 결과 및 상기 {02} 곱셈연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행하여 {03} 곱셈연산 결과를 출력하는 {03} 곱셈연산 블록A {03} multiplication block that receives the {01} multiplication result and the {02} multiplication result and performs an exclusive OR operation on them to output a {03} multiplication result 을 포함하는 것을 특징으로 하는 믹스컬럼블록 장치.Mix column block device comprising a. 제5항에 있어서,The method of claim 5, 상기 제2 곱셈연산 블록부는,The second multiplication operation block unit, 상기 {01} 곱셈연산 블록, 상기 {02} 곱셈연산 블록 및 상기 {03} 곱셈연산 블록으로 구성되고, 상기 {01}, {02} 및 {03} 곱셈연산을 수행하는 곱셈연산 모듈 을 복수개 포함하는 것을 특징으로 하는 믹스컬럼블록 장치.A plurality of multiplication modules comprising the {01} multiplication block, the {02} multiplication block and the {03} multiplication block, and performing the {01}, {02} and {03} multiplication operations; Mix column block device, characterized in that. 제6항에 있어서,The method of claim 6, 상기 배타적 논리합 연산부는,The exclusive OR operation unit, 32 비트 단위로 입력된 데이터를 바이트 단위로 구분한 입력 바이트에 대한 출력 바이트를 연산하고,Computes the output byte for the input byte that divides the input data in 32-bit units into bytes, 첫번째 입력 바이트에 대한 {02} 곱셈연산 결과, 두번째 입력 바이트에 대한{03} 곱셈연산 결과, 세번째 입력 바이트에 대한 {01} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {01} 곱셉연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 첫번째 입력 바이트에 대한 출력 바이트로 연산하는 제1 출력부;Take the result of the {02} multiplication operation for the first input byte, the {03} multiplication result for the second input byte, the {01} multiplication result for the third input byte, and the {01} multicept operation for the fourth input byte A first output unit configured to calculate a result of performing an exclusive OR operation on these data as an output byte for the first input byte; 첫번째 입력 바이트에 대한 {01} 곱셈연산 결과, 첫번째 입력 바이트에 대한{02} 곱셈연산 결과, 세번째 입력 바이트에 대한 {03} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {01} 곱셉연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 두번째 입력 바이트에 대한 출력 바이트로 연산하는 제2 출력부;Take the result of the {01} multiplication operation for the first input byte, the {02} multiplication result for the first input byte, the {03} multiplication result for the third input byte, and the {01} multicept operation result for the fourth input byte A second output unit configured to calculate a result of performing an exclusive OR operation on the output bytes as output bytes for the second input bytes; 첫번째 입력 바이트에 대한 {01} 곱셈연산 결과, 두번째 입력 바이트에 대한{01} 곱셈연산 결과, 세번째 입력 바이트에 대한 {02} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {03} 곱셉연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 세번째 입력 바이트에 대한 출력 바이트로 연산하는 제3 출력부; 및Take the result of the {01} multiplication operation for the first input byte, the {01} multiplication result for the second input byte, the {02} multiplication result for the third input byte, and the {03} multicept operation result for the fourth input byte. A third output unit configured to calculate a result of performing an exclusive OR operation on them as an output byte for the third input byte; And 첫번째 입력 바이트에 대한 {03} 곱셈연산 결과, 두번째 입력 바이트에 대한{01} 곱셈연산 결과, 세번째 입력 바이트에 대한 {01} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {02} 곱셉연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 네번째 입력 바이트에 대한 출력 바이트로 연산하는 제4 출력부Take the result of the {03} multiplication operation for the first input byte, the {01} multiplication result for the second input byte, the {01} multiplication result for the third input byte, and the {02} multicept operation for the fourth input byte Fourth output unit for calculating the result of performing an exclusive OR operation on them as an output byte for the fourth input byte 를 포함하는 것을 특징으로 하는 믹스컬럼블록 장치.Mix column block device comprising a. AES 블록 암호의 라운드 연산을 수행하는 믹스컬럼블록의 곱셈연산방법에 있어서,In the multiplication operation of a mixed column block performing a round operation of the AES block cipher, 입력 바이트에 대해 16진수 값인 {01} 및 {02} 곱셈연산을 수행하는 단계;Performing a hexadecimal value {01} and {02} multiplication on the input byte; 상기 {01} 및 {02} 곱셈연산을 수행한 결과를 이용하여 16진수 값인 {01}, {02} 및 {03} 곱셈연산을 수행하는 단계; Performing multiplication operations of hexadecimal values {01}, {02} and {03} using the results of performing the {01} and {02} multiplication operations; 상기 {01}, {02} 및 {03} 곱셈연산을 수행한 결과에 대한 배타적 논리합 연산을 수행하는 단계; 및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 를 포함하는 믹스컬럼블록의 곱셈연산방법.Multiplication operation method of the mix column block comprising a. 제8항에 있어서,The method of claim 8, 상기 {01} 및 {02} 곱셈연산을 수행하는 단계는,Performing the {01} and {02} multiplication operation, 상기 입력 바이트를 입력받아 출력하는 {01} 곱셈연산 단계; 및A {01} multiplication operation for receiving and outputting the input byte; And 상기 {01} 곱셈연산 결과를 이용하여 {02} 곱셈연산을 수행하는 {02} 곱셈연산 단계A {02} multiplication operation step of performing a {02} multiplication operation using the {01} multiplication operation result 를 포함하는 것을 특징으로 하는 믹스컬럼블록의 곱셈연산방법.Multiplication operation method of the mix column block comprising a. 제9항에 있어서,The method of claim 9, 상기 {01}, {02} 및 {03} 곱셈연산을 수행하는 단계는,Performing the {01}, {02} and {03} multiplication operation, 상기 {01} 곱셈연산 결과를 입력받아 이를 출력하는 {01} 곱셈연산 단계; A {01} multiplication operation step of receiving the {01} multiplication result and outputting the result; 상기 {02} 곱셈연산 결과를 입력받아 이를 출력하는 {02} 곱셈연산 단계; 및A {02} multiplication operation step of receiving the {02} multiplication result and outputting the result; And 상기 {01} 곱셈연산 결과 및 상기 {02} 곱셈연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행하여 {03} 곱셈연산을 수행하는 {03} 곱셈연산 단계A {03} multiplication operation step of receiving the {01} multiplication operation result and the {02} multiplication operation result and performing an exclusive OR operation on the {03} multiplication operation 를 포함하는 것을 특징으로 하는 믹스컬럼블록의 곱셈연산방법.Multiplication operation method of the mix column block comprising a. 제8항 내지 제10항 중 어느 한 항에 있어서,The method according to any one of claims 8 to 10, 상기 {02} 곱셈연산 단계는,The {02} multiplication operation step, 상기 입력 바이트를 좌측으로 1 비트 쉬프트시켜 출력하는 단계;Outputting the input byte by one bit to the left; 상기 쉬프트시켜 출력한 값과 16진수 값 {1D}에 대한 배타적 논리합 연산을 수행하여 출력하는 단계; 및Performing an exclusive OR operation on the shifted output value and the hexadecimal value {1D} and outputting the result; And 상기 입력 바이트의 최상위 비트를 이용하여 상기 쉬프트시켜 출력한 값과 상기 배타적 논리합 연산을 수행하여 출력한 값 중에서 출력할 값을 선별하는 단계Selecting a value to be output from the shifted output value using the most significant bit of the input byte and the output value by performing the exclusive OR operation; 를 포함하는 것을 특징으로 하는 믹스컬럼블록의 곱셈연산방법.Multiplication operation method of the mix column block comprising a. 제11항에 있어서,The method of claim 11, 상기 배타적 논리합 연산을 수행하는 단계는,The performing of the exclusive OR operation may include: 32 비트 단위로 입력된 데이터를 바이트 단위로 구분한 입력 바이트에 대한 출력 바이트를 연산하고,Computes the output byte for the input byte that divides the input data in 32-bit units into bytes, 첫번째 입력 바이트에 대한 {02} 곱셈연산 결과, 두번째 입력 바이트에 대한{03} 곱셈연산 결과, 세번째 입력 바이트에 대한 {01} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {01} 곱셉연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 첫번째 입력 바이트에 대한 출력 바이트로 연산하는 단계;Take the result of the {02} multiplication operation for the first input byte, the {03} multiplication result for the second input byte, the {01} multiplication result for the third input byte, and the {01} multicept operation for the fourth input byte Computing the result of performing the exclusive OR operation on them as an output byte for the first input byte; 첫번째 입력 바이트에 대한 {01} 곱셈연산 결과, 첫번째 입력 바이트에 대한{02} 곱셈연산 결과, 세번째 입력 바이트에 대한 {03} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {01} 곱셉연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 두번째 입력 바이트에 대한 출력 바이트로 연산하는 단계;Take the result of the {01} multiplication operation for the first input byte, the {02} multiplication result for the first input byte, the {03} multiplication result for the third input byte, and the {01} multicept operation result for the fourth input byte Computing the result of performing the exclusive OR operation on them as an output byte for the second input byte; 첫번째 입력 바이트에 대한 {01} 곱셈연산 결과, 두번째 입력 바이트에 대한{01} 곱셈연산 결과, 세번째 입력 바이트에 대한 {02} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {03} 곱셉연산 결과를 입력받아 이들에 대한 배타적 논리합 연 산을 수행한 결과를 상기 세번째 입력 바이트에 대한 출력 바이트로 연산하는 단계; 및Take the result of the {01} multiplication operation for the first input byte, the {01} multiplication result for the second input byte, the {02} multiplication result for the third input byte, and the {03} multicept operation result for the fourth input byte. Computing the result of performing the exclusive OR operation on them as an output byte for the third input byte; And 첫번째 입력 바이트에 대한 {03} 곱셈연산 결과, 두번째 입력 바이트에 대한{01} 곱셈연산 결과, 세번째 입력 바이트에 대한 {01} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {02} 곱셉연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 네번째 입력 바이트에 대한 출력 바이트로 연산하는 단계Take the result of the {03} multiplication operation for the first input byte, the {01} multiplication result for the second input byte, the {01} multiplication result for the third input byte, and the {02} multicept operation for the fourth input byte Computing the result of performing the exclusive OR on these as an output byte for the fourth input byte. 를 포함하는 것을 특징으로 하는 믹스컬럼블록의 곱셈연산방법.Multiplication operation method of the mix column block comprising a.
KR1020060122911A 2006-12-06 2006-12-06 Mixcolum block device and method of multiplication calculation thereof KR100788902B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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