KR20050092698A - A small hardware implementation of the subbyte function of rijndael - Google Patents

A small hardware implementation of the subbyte function of rijndael Download PDF

Info

Publication number
KR20050092698A
KR20050092698A KR1020057010593A KR20057010593A KR20050092698A KR 20050092698 A KR20050092698 A KR 20050092698A KR 1020057010593 A KR1020057010593 A KR 1020057010593A KR 20057010593 A KR20057010593 A KR 20057010593A KR 20050092698 A KR20050092698 A KR 20050092698A
Authority
KR
South Korea
Prior art keywords
affine
linedal
lookup table
inverse
transformation
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
KR1020057010593A
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 코닌클리즈케 필립스 일렉트로닉스 엔.브이.
Publication of KR20050092698A publication Critical patent/KR20050092698A/en
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • 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
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

A small hardware implementation is provided for the Advanced Encryption Standard SubByte function that implements the affine transform and inverse transform in a single Affine- All transform using a multiplicative inverse ROM. The logic is greatly reduced and the maximum path delay is reduced compared to a multiplexor implementation and is slightly greater than a ROM implementation.

Description

라인달 블록 암호의 서브바이트 함수를 실행하는 장치 및 방법과 데이터 암호화 및 해독 장치{A SMALL HARDWARE IMPLEMENTATION OF THE SUBBYTE FUNCTION OF RIJNDAEL}Apparatus and method for executing subbyte functions of linedal block ciphers and apparatuses for encrypting and decrypting data {A SMALL HARDWARE IMPLEMENTATION OF THE SUBBYTE FUNCTION OF RIJNDAEL}

본 발명은 데이터 암호화 분야에 관한 것이다. 본 발명은 특히 AES(Advanced Encryption Standard) 알고리즘 또는 라인달 암호(Rijndael Cipher)(이하에서는 AES/Rijndael이라 함)에서 나타나는 서브바이트 함수의 소형 하드웨어 실행을 위한 장치 및 방법에 관한 것이다. 이 내용은 역 및 정상 프로세싱으로 작업하도록 재설계될 수 있다. The present invention relates to the field of data encryption. The present invention relates, in particular, to apparatus and methods for small hardware implementation of subbyte functions represented in AES (Advanced Encryption Standard) algorithms or Rijndael Cipher (hereinafter referred to as AES / Rijndael). This content can be redesigned to work with reverse and normal processing.

당해 분야의 현 기술 수준은 역 암호가 암호를 구현하는 회로를 부분적으로만 재사용할 수 있는 하드웨어를 제공한다. 고속 네트워킹 프로세서 및 스마트 카드 애플리케이션에 있어서, 매우 작고(게이트 사이즈) (OC-192의 광학 캐리어 레이트 9953.28 Mbps를 넘어 9.6 Gbps의 페이로드를 수용하는)높은 데이터 레이트가 바람직하다.The state of the art in the art provides hardware in which reverse cryptography can only partially reuse circuits that implement cryptography. For high speed networking processor and smart card applications, a very small (gate size) and high data rate (accommodating a payload of 9.6 Gbps beyond the optical carrier rate of 9953.28 Mbps of OC-192) is desirable.

AES/Rijndael은 통합 블록 암호이며, 1999년 3월 9일 발행된 Joan Daemen 및 Vincent Rijmen에 의한 제안에 설명되어 있다. NIST(National Institute of Standard and Technology)는 AES/Rijndael을 암호 알고리즘으로 승인하고 2001년 11월 26일에 AES/Rijndael을 간행하였는데(Federal Information Processing Standard 197 또는 "FIPS 197"로 알려져 있는 간행물 197 참조), 이것은 본 명세서에 참조로서 포함된다. AES/Rijndael을 포함하는 많은 비밀키 암호/해독 알고리즘에 따르면, 암호/해독은 일반적으로 반복(iteration) 또는 라운드(round)로 알려져 있는 복수의 단계에서 수행된다. 이러한 알고리즘은 데이터 처리 파이프라인 또는 파이프라인들의 아키텍처에 적용된다. 각 라운드에서, AES/Rijndael은 정보를 해독하고(decipher) 암호화하는(encrypt) 다른 변환과 함께 아핀 변환(affine transformation) 및 그 역을 이용한다. 암호화는 데이터를 암호문(cipher text)이라고 하는 이해할 수 없는 형태(unintelligible)로 변환시키는 것이고, 해독은 이 데이터를 평문(plaintext)이라고 하는 원래의 형태로 다시 변환시키는 것이다.AES / Rijndael is an integrated block cipher and is described in a proposal by Joan Daemen and Vincent Rijmen, issued March 9, 1999. The National Institute of Standards and Technology (NIST) approved AES / Rijndael as a cryptographic algorithm and published AES / Rijndael on November 26, 2001 (see Federal Information Processing Standard 197 or publication 197, known as "FIPS 197"). , Which is incorporated herein by reference. According to many secret key encryption / decryption algorithms, including AES / Rijndael, encryption / decryption is generally performed in a plurality of steps, known as iterations or rounds. This algorithm applies to the architecture of a data processing pipeline or pipelines. In each round, AES / Rijndael uses affine transformation and vice versa, along with other transformations that decrypt and encrypt the information. Encryption converts data into an unintelligible form called cipher text, and decryption converts the data back to its original form called plaintext.

AES/Rijndael 알고리즘에 대한 입력 및 출력은 각각 128 비트(각각 0 또는 1의 값을 가짐)의 시퀀스로 이루어진다. 이들 시퀀스는 일반적으로 블록이라고 지칭되며, 이들이 포함하는 비트 수는 이들 시퀀스의 길이라고도 한다("FIPS 197", NIST, 7페이지 참조). AES/Rijndael 알고리즘에서 처리에 대한 기본 단위는, 좌측에 최상위 비트(MSB)를 갖는 단일 엔티티로서 처리된 8 비트의 시퀀스인 바이트이다. 내부적으로, AES/Rijndael 알고리즘의 연산이 스테이트(state)라고 하는 2차원 바이트 어레이에 대해 수행된다. 이 스테이트는 각각 Nb 바이트를 포함하는 4개의 바이트의 행으로 이루어지는데, Nb는 32로 나누어진 블록 길이이다("FIPS 197", NIST, 9 페이지 참조).The inputs and outputs to the AES / Rijndael algorithm consist of a sequence of 128 bits (each with a value of 0 or 1, respectively). These sequences are generally referred to as blocks, and the number of bits they contain is also referred to as the length of these sequences (see "FIPS 197", NIST, page 7). The basic unit of processing in the AES / Rijndael algorithm is a byte, which is a sequence of 8 bits processed as a single entity with the most significant bit (MSB) on the left. Internally, the operation of the AES / Rijndael algorithm is performed on a two-dimensional byte array called a state. This state consists of four bytes of rows each containing Nb bytes, where Nb is a block length divided by 32 (see "FIPS 197", NIST, page 9).

암호 및 역 암호(암호 및 해독)의 시작 시에, 입력인 바이트의 어레이 in0, in1, ... in15가 도 1에 도시된 스테이트 어레이로 복사된다. 그 다음에 암호 또는 역 암호 연산이 이 상태 어레이 내의 각 바이트에 대해 행해지고, 그 후 최종 값이 출력인 바이트 어레이 out0, out1, ... out15로 복사된다.At the beginning of the cipher and reverse cipher (cipher and decryption), an array of input in bytes in 0 , in 1 , ... in 15 is copied into the state array shown in FIG. 1. A cryptographic or inverse cryptographic operation is then performed for each byte in this state array, and then copied into the byte array out 0 , out 1 , ... out 15, where the final value is the output.

유한 필드 내의 두 요소의 합은 두 요소에 대한 다항식 내의 대응하는 멱(power)에 대한 계수들을 덧셈(adding)함으로써 달성된다. 이 덧셈은 불의 배타적 XOR 연산("FIPS 197", NIST, 10페이지 참조)에 의해 수행된다. 2 바이트의 덧셈에 대한 2진 표시는 다음과 같다.The sum of two elements in the finite field is achieved by adding the coefficients for the corresponding power in the polynomial for the two elements. This addition is performed by a Boolean exclusive XOR operation ("FIPS 197", NIST, see page 10). The binary representation of the addition of two bytes is:

(1.0) (1.0)

다항식 표현에서, GF(28)에서의 곱셈은 다항식 모듈로 8차 기약 다항식의 곱셈과 일치한다. 다항식은 제수가 1과 자신인 경우에만 약분할 수 없다. AES/Rijndael 알고리즘에 있어서, 이 기약 다항식은 다음과 같다("FIPS 197", NIST, 10페이지 참조).In the polynomial expression, the multiplication in GF (2 8 ) is consistent with the multiplication of the polynomial modulo 8th order polynomial. A polynomial cannot be abbreviated only if the divisor is 1 and itself. For the AES / Rijndael algorithm, this shorthand polynomial is as follows (see "FIPS 197", NIST, page 10).

(1.1) (1.1)

각각의 대각 요소가 1인 대각 행렬은 단위 행렬이라고 한다. n×n 단위 행렬은 In으로 표시된다.A diagonal matrix where each diagonal element is 1 is called an identity matrix. The n × n unit matrix is represented by In.

(1.2) (1.2)

만약 A 및 B가 n×n 행렬이고, 다음이 성립하면 이들은 각각에 대해 역행렬이 된다.If A and B are n × n matrices, and the following holds, they are inverses for each.

(1.3) (1.3)

행렬에 의한 곱셈과 벡터의 덧셈으로 이루어지는 변환은 아핀 변환(Affine Transformation)이라고 한다.The transformation that consists of multiplication by matrix and addition of vectors is called affine transformation.

AES/Rijndael의 SubByte() 함수는 대치 테이블(S-box)을 이용하는 스테이트의 각 바이트에 대해 독립적으로 연산하는 비선형 바이트 대치(substitution)이다. 이 S-box는 가역적이며, 두 변환을 구성하는 것에 의해 제작된다.The SubByte () function of AES / Rijndael is a non-linear byte substitution that operates independently for each byte of the state using an S-box. This S-box is reversible and is produced by constructing two transforms.

1. 전술한 유한 필드 GF(28)에서의 곱에 관한 역원을 취한다. 요소 {00}은 자신에게로 맵핑된다.1. Take the inverse of the product in the finite field GF (2 8 ) described above. Element {00} is mapped to itself.

2. 다음 아핀 변환을 (GF(2)에 대해) 적용한다.2. Apply the following affine transformations (for GF (2)).

(1.4) (1.4)

행렬 형태로, S-box의 아핀 변환 요소는 다음과 같이 표현될 수 있다("FIPS 197", NIST, 16페이지).In matrix form, the affine transform elements of the S-box can be expressed as follows ("FIPS 197", NIST, p. 16).

(1.5) (1.5)

만약 이것이 AES/Rijndael 제안에 의해 제안된 룩업 테이블로서 구현되면, 256 엔트리 ROM 또는 멀티플렉서가 요구될 것이다. AES/Rijndael 알고리즘을 구현하기 위해, 이 테이블의 12 개의 인스턴스 생성(instantiation)이 요구될 것이다. 이 행렬의 역은 다음과 같을 수 있다.If this is implemented as a lookup table proposed by the AES / Rijndael proposal, a 256 entry ROM or multiplexer will be required. In order to implement the AES / Rijndael algorithm, 12 instances of this table will be required. The inverse of this matrix can be

(1.6) (1.6)

만약 이것이 AES/Rijndael 제안에 의해 제안된 룩업 테이블로서 구현되면, 128 엔트리, 16 비트 워드 ROM 또는 멀티플렉서가 요구될 것이다. AES/Rijndael 알고리즘을 구현하기 위해, 이 테이블의 12개의 인스턴스 생성이 요구될 것이다.If this is implemented as a lookup table proposed by the AES / Rijndael proposal, then a 128 entry, 16 bit word ROM or multiplexer will be required. In order to implement the AES / Rijndael algorithm, 12 instances of this table will be required.

도 1은 스테이트 어레이 입력 및 출력("FIPS 197", NIST 9페이지 참조)을 도시한 도면.1 illustrates a state array input and output ("FIPS 197", see NIST page 9).

도 2는 종래 기술의 ROM과 본 발명의 아핀 올로 구현된 서브바이트 함수의 룩업 테이블(멀티플렉서) 구현의 비교를 도시한 도면.2 shows a comparison of a look-up table (multiplexer) implementation of a prior art ROM and a subbyte function implemented with affine all of the present invention.

도 3은 본 발명의 아핀 올 변환에 사용된 룩업 테이블 또는 ROM을 도시한 도면.3 illustrates a lookup table or ROM used in the affine all transformation of the present invention.

도 4는 아핀 올 조합 로직의 넷리스트(netlist)를 도시한 도면.4 shows a netlist of affine all combinatorial logic.

따라서, 게이트 수를 줄이기 위한 아핀 변환을 위해 거의 모든 회로를 공유하는 시스템 및 방법이 요구된다. 높은 데이터 레이트 및 작은 게이트 사이즈를 얻기 위해, 최대 경로가 너무 길지 않도록 설계되어야 하고, 다이 사이즈를 크게 증가시키지 않으면서 병렬 처리를 촉진하도록 디자인이 복제될 수 있도록 게이트 사이즈가 작게 설계되어야 한다. 다이의 크기가 커지면, 비용 및 전력 소비가 증가하여 제품의 시장 가치가 떨어진다. 본 발명은 최대 경로 지연을 약간 증가시키면서 게이트 사이즈를 감소시키는 장치 및 방법에 관한 것이다. 이것은 회로의 크기를 감소시켜, 높은 데이터 레이트 디자인의 매력이 있다.Thus, there is a need for a system and method that shares nearly all circuitry for affine conversion to reduce the number of gates. To achieve high data rates and small gate sizes, the maximum path must be designed not to be too long, and the gate size must be designed so that the design can be replicated to facilitate parallel processing without significantly increasing die size. As dies grow in size, cost and power consumption increase, resulting in a lower market value of the product. The present invention is directed to an apparatus and method for reducing gate size while slightly increasing maximum path delay. This reduces the size of the circuit, making it attractive for high data rate designs.

AES/Rijndael의 아핀 변환 및 역 아핀 변환 쌍이 본 발명에 의해 하나의 변환, 즉 아핀 올 변환(Affine-All transform)으로 감소한다. 바람직한 실시예에서, 회로는 매우 적은 이중 논리로 정상 아핀 변환 및 역 아핀 변환을 모두 수행한다. 이 바람직한 실시예에서, 곱에 관한 역 ROM으로 아핀 올 변환을 구현함으로써, 로직이 크게 감소하고, ROM의 경우보다는 약간 더 크지만 멀티플렉서로 구현한 경우에 비해 최대 경로 지연이 감소한다.The affine and inverse affine transformation pairs of AES / Rijndael are reduced by one invention to one transformation, the Affine-All transform. In a preferred embodiment, the circuit performs both normal and inverse affine transformations with very little double logic. In this preferred embodiment, by implementing the affine all transformation with inverse ROM on the product, the logic is greatly reduced, and the maximum path delay is reduced compared to the implementation with multiplexers, although slightly larger than with ROM.

따라서, 본 발명의 바람직한 실시예는 곱에 관한 역원에 대해 판독 전용 메모리(ROM)를 채용하고, 아핀 변환을 위해 감소된 조합 로직을 채용한다. 이 구현예는 최대 지연 경로는 비슷하면서 게이트 수가 매우 적다.Thus, a preferred embodiment of the present invention employs read only memory (ROM) for the inverse of the product and employs reduced combinatorial logic for affine transformation. This implementation has a very small number of gates with similar maximum delay paths.

본 발명은 마지막 행에서부터 행렬식 (1.5) 및 (1.6)의 각 행이 이전의 행으로부터 1 비트씩 좌측으로 이동한다는 사실에 부분적으로 기초한다. 본 발명에서, 각 행렬의 제 1 행은 "로드 패턴(load pattern)"이라고 한다. 따라서, 아핀 변환 행렬의 "로드 패턴"은 {10001111}이고, 역 아핀 변환에 대한 "로드 패턴"은 {00100101}이다. 각 "로드 패턴 내의 0의 개수는 홀수이고, 두 변환을 본 발명의 시스템 및 방법에서 하나의 회로로 병합할 수 있다는 것이 중요한 특징이라는 점에 유의하라.The present invention is based in part on the fact that from the last row each row of determinants (1.5) and (1.6) is shifted left by one bit from the previous row. In the present invention, the first row of each matrix is referred to as a "load pattern". Thus, the "load pattern" of the affine transformation matrix is {10001111} and the "load pattern" for the inverse affine transformation is {00100101}. Note that the number of zeros in each "load pattern is odd, and it is an important feature that the two transformations can be merged into one circuit in the system and method of the present invention.

만약 두 아핀 변환이 배타적 OR 게이트를 사용하는 Daemen 및 Rijmen("FIPS 197" 참조)에 의해 제안된 바와 같이 구현되면, 회로 방정식은 다음과 같이 된다.If the two affine transformations are implemented as suggested by Daemen and Rijmen (see "FIPS 197") using an exclusive OR gate, the circuit equation becomes as follows.

아핀 변환식Affine conversion

(1.7) (1.7)

각 식은 홀수개의 항을 가지며 다섯 개의 동일한 수의 항을 갖는다는 점에 유의하라. 벡터의 덧셈은 일부 식의 부정(negation)을 결정한다. 따라서 각 식 내의 항의 수는 "로드 패턴"에 의해 결정된다. 부정의 수는 "로드 벡터"라고 하는 벡터의 덧셈에 의해 결정된다.Note that each equation has an odd number of terms and five equal numbers of terms. The addition of the vector determines the negation of some equations. Thus, the number of terms in each equation is determined by the "rod pattern". The number of negations is determined by the addition of a vector called a "load vector".

역 아핀 변환식Inverse Affine Conversion

(1.8) (1.8)

각 식은 홀수 개의 항을 가지며 세 개의 동일한 항을 갖는다. 벡터의 덧셈은 일부 식의 부정을 결정한다. 따라서 각 식 내의 항의 개수는 "로드 패턴"에 의해 결정된다. 부정의 수는 벡터의 덧셈에 의해 결정된다. Each equation has an odd number of terms and three identical terms. Addition of vectors determines the negation of some expressions. Thus, the number of terms in each equation is determined by the "rod pattern". The number of negations is determined by the addition of the vector.

이 덧셈 벡터는 또한 "로드 벡터"로서 사용될 수 있다. 두 세트의 식을 살펴보면 병합되는 공통 로직이 없다는 것을 확인할 수 있다. 만약 이 식들이 포함된 "로드 패턴"으로 다시 표현되고 벡터의 덧셈을 이용하여 부정을 결정한다면, 공통 회로가 나타날 것이다. 배타적 OR의 특성이 이것을 달성하는데 사용되며 이들 특성은 다음과 같다.This addition vector can also be used as a "load vector." Looking at the two sets of expressions, we can see that there is no common logic to merge. If these expressions are represented again with the included "load pattern" and use vector addition to determine negation, a common circuit will appear. The properties of exclusive OR are used to achieve this, and these properties are as follows.

(1.9) (1.9)

(2.0) (2.0)

(2.1) (2.1)

(2.2) (2.2)

바람직한 실시예에서, 아핀 변환 및 역 아핀 변환을 모두 구현하는 회로는 곱에 관한 역 ROM을 포함하고, 두 변환을 모두 나타내는 로직은 다음과 같이 "로드 패턴"으로서 p를 "로드 벡터"로서 v를 갖는다. 예를 들면, 아핀 행렬 중 7 개의 식이 다음과 같이 된다.In a preferred embodiment, the circuitry that implements both the affine transformation and the inverse affine transformation comprises an inverse ROM with respect to the product, and logic representing both transformations is defined as p as a "load pattern" and v as a "load vector" as follows. Have For example, the seven equations in the affine matrix are:

(2.3) (2.3)

인스턴스 생성의 수는 반으로 줄었다. p와 b의 덧셈에 의해 생성된 0 때문에, 이 식은 아핀 변환 및 역 아핀 변환 모두에 적용된다. 1과 XOR된 b는 항상 b의 역이기 때문에, 매회 v7을 이용하는 것은 적절한 경우 이 식을 부정한다.The number of instantiations was cut in half. Because of the zero generated by the addition of p and b, this equation applies to both affine and inverse affine transformations. Since b xed with 1 is always the inverse of b, using v 7 each time negates this equation where appropriate.

비교:compare:

AES/Rijndael 제안(FIPS 197 참조)에 의해 제안된 디자인을 사용하는 것은 다음 두 방식으로 구현된다.Using the design proposed by the AES / Rijndael proposal (see FIPS 197) is implemented in two ways:

(1) 128 엔트리, 16 비트 워드 ROM(1) 128-entry, 16-bit word ROM

(2) 128 엔트리, 멀티플렉서로서 구현된 16 비트 워드 룩업 테이블(2) 16-bit word lookup table implemented as a 128-entry, multiplexer

ROM, 멀티플렉서 및 본 발명의 아핀 올 회로 실시예는 합성되었고 최대 경로 해석을 이용하여 조절되었다. 도 2는 게이트의 크기가 주어진 결과 및 비교를 위한 마이크론 크기를 ROM 구현예와 비교한다. 배선 로드 모델이 기술에 따라 다르기 때문에 네트 영역은 고려되지 않는다.ROM, multiplexer and affine all circuit embodiments of the present invention were synthesized and adjusted using maximum path analysis. Figure 2 compares the micron size with the ROM implementation for results and comparison given the size of the gate. The net area is not taken into account because the wiring rod model is technology dependent.

ROM 또는 룩업 테이블의 바람직한 실시예는 16진수로 표현된 도 3에 도시된 값을 포함한다.A preferred embodiment of a ROM or lookup table includes the value shown in FIG. 3 represented in hexadecimal.

바람직한 실시예의 아핀 올 조합 로직의 네트 리스트는 도 4에 도시되어 있다. 구현을 위한 코드는 부록 A로서 포함된다.The net list of affine all combinatorial logic of the preferred embodiment is shown in FIG. Code for implementation is included as Appendix A.

본 발명은 보안 네트워킹 프로세서, 보안 키보드 장치, 자기 카드 판독 장치, 스마트 카드 판독 장치 및 무선 802.11 장치를 포함하는 통신을 안전하게 할 수 있는 모든 시스템 및 장치에 적용할 수 있다.The present invention is applicable to all systems and devices capable of securely communicating, including secure networking processors, secure keyboard devices, magnetic card readers, smart card readers, and wireless 802.11 devices.

전술한 실시예는 전형적인 예일 뿐이며, 당업자에게 자명한 이들의 변형 및 변경이 가능할 것이다. 전술한 실시예의 여러 변형은 첨부한 청구범위에 구현된 바와 같이 본 발명의 범위로부터 벗어나지 않고 이루어질 수 있다.The above-described embodiments are merely exemplary and modifications and variations thereof will be apparent to those skilled in the art. Various modifications of the above-described embodiments can be made without departing from the scope of the invention as embodied in the appended claims.

부록 AAppendix A

이하, 아핀 올 회로를 구현하기 위한 RTL을 나타낸다.Hereinafter, the RTL for implementing the affine all circuit is shown.

Claims (18)

라인달 블록 암호(Rijndael Block Cipher)의 서브바이트(SubByte) 기능을 실행하는 장치에 있어서,In the apparatus that executes the SubByte function of the Rijndael Block Cipher, 제 1 및 제 2 변환을 구성함으로써 제작된 S-box를 포함하고,An S-box fabricated by configuring the first and second transforms, 상기 제 1 변환은 룩업 테이블(300)이고, 상기 제 2 변환은 아핀 변환 및 역 아핀 변환을 모두 수행하는 아핀 올 변환(affine-all transformation)인 The first transform is a lookup table 300 and the second transform is an affine-all transformation that performs both affine and inverse affine transformations. 라인달 블록 암호의 서브바이트 함수를 실행하는 장치.Device that executes the subbyte function of the linedal block cipher. 제 1 항에 있어서,The method of claim 1, 상기 룩업 테이블(300)은 자신에게 맵핑된 {00}을 갖는 유한 필드 GF(28)에서의 상기 곱에 관한 역원이고,The lookup table 300 is the inverse of the product in the finite field GF 2 8 with {00} mapped to it, 상기 아핀 올 변환은 조합 로직 회로(400)를 사용하여 구현되는The affine all transformation is implemented using combinational logic circuit 400. 라인달 블록 암호의 서브바이트 함수를 실행하는 장치.Device that executes the subbyte function of the linedal block cipher. 제 2 항에 있어서,The method of claim 2, 상기 룩업 테이블(300)은 판독 전용 메모리(ROM)에 의해 구현되고,The lookup table 300 is implemented by a read only memory (ROM), 상기 조합 로직 회로(400)는 다음 식을 실행하되,The combinational logic circuit 400 executes the following equation, 여기서, 상기 아핀 변환에 대해 {10001111}로 구성되고 상기 역 아핀 변환에 대해 {00100101}로 구성되는 로드 패턴으로서 p=p0p1p2p3p4p5p6p7이고, 상기 아핀 변환에 대해 {11000110}으로 구성되고 상기 역 아핀 변환에 대해 {10100000}으로 구성되는 로드 벡터로서 v=v0v1v2v3v4v5v6v7Here, as a load pattern consisting of {10001111} for the affine transformation and {00100101} for the inverse affine transformation, p = p 0 p 1 p 2 p 3 p 4 p 5 p 6 p 7 , and the affine A load vector consisting of {11000110} for the transform and {10100000} for the inverse affine transform, with v = v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 라인달 블록 암호의 서브바이트 함수를 실행하는 장치.Device that executes the subbyte function of the linedal block cipher. 데이터 암호화 및 해독 장치에 있어서,In the data encryption and decryption apparatus, 바이트 대치(substitution)를 수행하도록 구성된 데이터 처리 모듈을 포함하고,A data processing module configured to perform byte substitution, 상기 데이터 처리 모듈의 적어도 일부는At least part of the data processing module 룩업 테이블(300)과,Lookup table 300, 상기 룩업 테이블을 저장하기 위한 저장 장치와,A storage device for storing the lookup table; 아핀 변환 및 역 아핀 변환 중 어느 하나를 수행하는 단일 변환을 수행하는 공유된 로직을 갖는 회로(400)를 포함하는A circuit 400 having shared logic that performs a single transformation that performs either an affine transformation or an inverse affine transformation. 데이터 암호화 및 해독 장치.Data encryption and decryption device. 제 4 항에 있어서,The method of claim 4, wherein 상기 룩업 테이블(300)은 상기 유한 필드 GF(28)의 곱에 관한 역원인The lookup table 300 is the inverse of the product of the finite field GF (2 8 ). 데이터 암호화 및 해독 장치.Data encryption and decryption device. 제 5 항에 있어서,The method of claim 5, 상기 룩업 테이블(300)은 판독 전용 메모리(ROM)에 의해 구현되는The lookup table 300 is implemented by read only memory (ROM). 데이터 암호화 및 해독 장치.Data encryption and decryption device. 제 4 항에 있어서,The method of claim 4, wherein 상기 룩업 테이블(300)은 판독 전용 메모리(ROM)에 의해 구현되는The lookup table 300 is implemented by read only memory (ROM). 데이터 암호화 및 해독 장치.Data encryption and decryption device. 제 4 항에 있어서,The method of claim 4, wherein 상기 장치는 데이터 처리 파이프라인에 배치된 데이터 처리 모듈의 복수의 인스턴스를 포함하는The apparatus includes a plurality of instances of a data processing module disposed in the data processing pipeline. 데이터 암호화 및 해독 장치.Data encryption and decryption device. 제 4 항에 있어서,The method of claim 4, wherein 상기 장치는 라인달 블록 암호에 따라서 암호화 또는 해독을 수행하도록 구성되며, 상기 데이터 처리 모듈은 라인달 라운드(Rijndael round)를 실행하도록 구성되는The apparatus is configured to perform encryption or decryption in accordance with a linedal block cipher, and the data processing module is configured to execute a Rijndael round. 데이터 암호화 및 해독 장치.Data encryption and decryption device. 제 9 항에 있어서,The method of claim 9, 상기 데이터 처리 모듈은 암호화를 위한 아핀 변환 및 해독을 위한 역 아핀 변환으로 구성된 상기 룩업 테이블을 사용하여 라인달 라운드의 상기 서브바이트 변환을 실행하도록 구성되는The data processing module is configured to execute the subbyte conversion of a linedal round using the lookup table consisting of an affine transformation for encryption and an inverse affine transformation for decryption. 데이터 암호화 및 해독 장치.Data encryption and decryption device. 제 10 항에 있어서,The method of claim 10, 상기 룩업 테이블(300)은 판독 전용 메모리(ROM)에 의해 구현되는The lookup table 300 is implemented by read only memory (ROM). 데이터 암호화 및 해독 장치.Data encryption and decryption device. 라인달 블록 암호의 라운드의 서브바이트 함수를 실행하는 장치에 있어서,A device for executing a subbyte function of a round of linedal block ciphers, 유한 필드 GF(28)에서의 곱에 관한 역원을 획득하는 수단과,Means for obtaining the inverse of the product in the finite field GF (2 8 ), 아핀 변환 및 역 아핀 변환으로 이루어진 아핀 올 변환을 단일 아핀 변환으로서 수행하는 수단을 구성함으로써 제작된 S-box를 포함하는S-box fabricated by constructing means for performing affine transformations consisting of affine transformations and inverse affine transformations as a single affine transformation. 라인달 블록 암호의 라운드의 서브바이트 함수를 실행하는 장치.Device that executes the subbyte function of the round of linedal block ciphers. 제 12 항에 있어서,The method of claim 12, 상기 곱에 관한 역원을 획득하는 수단은 룩업 테이블(300)이고, 상기 아핀 올 변환을 수행하는 수단은 조합 로직 회로(400)인The means for obtaining the inverse for the product is a lookup table 300 and the means for performing the affine all transformation is a combinational logic circuit 400. 라인달 블록 암호의 라운드의 서브바이트 함수를 실행하는 장치.Device that executes the subbyte function of the round of linedal block ciphers. 라인달 블록 암호의 라인달 라운드의 서브바이트 함수를 실행하는 방법으로서,A method of executing a line-byte round subbyte function of a line-dal block cipher. 유한 필드 GF(28)에서의 곱에 관한 역원에 대한 룩업 테이블(300)을 생성하는 단계와,Generating a lookup table 300 for the inverse for the product in the finite field GF (2 8 ), 아핀 변환 및 역 아핀 변환으로 이루어지는 아핀 올 변환을 단일 아핀 변환으로 제공하는 단계와,Providing affine transformations consisting of affine transformations and inverse affine transformations into a single affine transformation, 상기 룩업 테이블(300) 및 상기 아핀 올 변환으로 구성된 S-box를 제작하는 단계와,Manufacturing an S-box including the lookup table 300 and the affine all transformations; 상기 제작된 S-box를 이용하여 비선형 바이트 대치를 수행하는 단계를 포함하는 Performing non-linear byte substitution using the manufactured S-box. 라인달 블록 암호의 라인달 라운드의 서브바이트 함수를 실행하는 방법.How to execute a subbyte function of the linedal round of a linedal block cipher. 제 14 항에 있어서,The method of claim 14, 상기 아핀 올 변환을 제공하는 단계는 상기 단일 아핀 변환을 수행하는 공유된 로직 회로(400)를 제공하는 단계를 더 포함하는Providing the affine all transformations further comprises providing a shared logic circuit 400 for performing the single affine transformation. 라인달 블록 암호의 라인달 라운드의 서브바이트 함수를 실행하는 방법.How to execute a subbyte function of the linedal round of a linedal block cipher. 제 14 항에 있어서,The method of claim 14, 상기 판독 전용 메모리(ROM)에 상기 룩업 테이블(300)을 저장하는 단계를 더 포함하는Storing the lookup table 300 in the read only memory (ROM). 라인달 블록 암호의 라인달 라운드의 서브바이트 함수를 실행하는 방법.How to execute a subbyte function of the linedal round of a linedal block cipher. 제 16 항에 있어서,The method of claim 16, 상기 아핀 올 변환을 제공하는 단계는 상기 단일 아핀 변환을 수행하는 공유된 로직 회로(400)를 구현하는 단계를 더 포함하는Providing the affine all transformations further comprises implementing a shared logic circuit 400 that performs the single affine transformation. 라인달 블록 암호의 라인달 라운드의 서브바이트 함수를 실행하는 방법.How to execute a subbyte function of the linedal round of a linedal block cipher. 제 14 항에 있어서,The method of claim 14, 상기 룩업 테이블(300)은 자신에게 맵핑된 {00}을 갖는 상기 유한 필드 GF(28)에서의 곱에 관한 역원이고,The lookup table 300 is the inverse of the product in the finite field GF 2 8 with {00} mapped to it, 상기 아핀 올 변환을 제공하는 단계는 상기 단일 아핀 변환을 수행하는 조합 로직 회로(400)를 구현하는 단계를 더 포함하는Providing the affine all transformations further comprises implementing a combinational logic circuit 400 that performs the single affine transformation. 라인달 블록 암호의 라인달 라운드의 서브바이트 함수를 실행하는 방법.How to execute a subbyte function of the linedal round of a linedal block cipher.
KR1020057010593A 2002-12-13 2003-11-28 A small hardware implementation of the subbyte function of rijndael Ceased KR20050092698A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US43336502P 2002-12-13 2002-12-13
US60/433,365 2002-12-13
US47352703P 2003-05-27 2003-05-27
US60/473,527 2003-05-27

Publications (1)

Publication Number Publication Date
KR20050092698A true KR20050092698A (en) 2005-09-22

Family

ID=32600143

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057010593A Ceased KR20050092698A (en) 2002-12-13 2003-11-28 A small hardware implementation of the subbyte function of rijndael

Country Status (6)

Country Link
US (1) US7873161B2 (en)
EP (1) EP1573956A1 (en)
JP (1) JP2006510067A (en)
KR (1) KR20050092698A (en)
AU (1) AU2003302946A1 (en)
WO (1) WO2004056036A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008036940A3 (en) * 2006-09-22 2008-05-08 Intel Corp Techniques for merging tables

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050053379A (en) * 2003-12-01 2005-06-08 삼성전자주식회사 Apparatus and method for performing AES Rijndael Algorithm
US7783037B1 (en) * 2004-09-20 2010-08-24 Globalfoundries Inc. Multi-gigabit per second computing of the rijndael inverse cipher
US8422668B1 (en) 2006-12-15 2013-04-16 Spansion Llc Table lookup operation on masked data
KR100969961B1 (en) * 2007-12-20 2010-07-15 한국전자통신연구원 Substitution and Method of Substitution of Block Cipher Aria
TWI416347B (en) 2009-06-22 2013-11-21 Realtek Semiconductor Corp Method and processing circuit for dealing with galois field computation
KR101601684B1 (en) * 2011-05-18 2016-03-09 한국전자통신연구원 Method for implementing symmetric key encryption algorithm against power analysis attacks
IL235729A (en) * 2014-11-17 2017-06-29 Kaluzhny Uri Secure storage device and method
US10158485B2 (en) 2015-09-24 2018-12-18 Intel Corporation Double affine mapped S-box hardware accelerator
US9910792B2 (en) 2016-04-11 2018-03-06 Intel Corporation Composite field scaled affine transforms-based hardware accelerator
CN119675846B (en) * 2024-11-21 2026-01-20 华北电力科学研究院有限责任公司 A method and apparatus for dynamically generating S-boxes over a finite field

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5091942A (en) * 1990-07-23 1992-02-25 Ericsson Ge Mobile Communications Holding, Inc. Authentication system for digital cellular communications
KR100889465B1 (en) * 2000-07-04 2009-03-20 코닌클리케 필립스 일렉트로닉스 엔.브이. Substitution-Box for Symmetric-Key Ciphers
US6937727B2 (en) * 2001-06-08 2005-08-30 Corrent Corporation Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels
JP3851115B2 (en) * 2001-06-28 2006-11-29 富士通株式会社 Cryptographic circuit
DE10136303A1 (en) * 2001-07-26 2003-02-13 Infineon Technologies Ag Method and apparatus for performing a byte substitution operation of the Rijndael AES algorithm
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
JP4328487B2 (en) * 2002-01-28 2009-09-09 インターナショナル・ビジネス・マシーンズ・コーポレーション Combination circuit, encryption circuit, generation method thereof, and program
US20030198345A1 (en) * 2002-04-15 2003-10-23 Van Buer Darrel J. Method and apparatus for high speed implementation of data encryption and decryption utilizing, e.g. Rijndael or its subset AES, or other encryption/decryption algorithms having similar key expansion data flow

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008036940A3 (en) * 2006-09-22 2008-05-08 Intel Corp Techniques for merging tables
US7801299B2 (en) 2006-09-22 2010-09-21 Intel Corporation Techniques for merging tables

Also Published As

Publication number Publication date
WO2004056036A1 (en) 2004-07-01
JP2006510067A (en) 2006-03-23
EP1573956A1 (en) 2005-09-14
US20060109981A1 (en) 2006-05-25
AU2003302946A1 (en) 2004-07-09
US7873161B2 (en) 2011-01-18

Similar Documents

Publication Publication Date Title
McLoone et al. High performance single-chip FPGA Rijndael algorithm implementations
KR100800468B1 (en) Hardware encryption / decryption device and method for low power high speed operation
EP1246389A1 (en) Apparatus for selectably encrypting or decrypting data
Karthigaikumar et al. Simulation of image encryption using AES algorithm
US20250013430A1 (en) Reconfigurable architecture for improvement and optimization of advanced encryption standard
KR20050092698A (en) A small hardware implementation of the subbyte function of rijndael
Arrag et al. Design and Implementation A different Architectures of mixcolumn in FPGA
US20060198524A1 (en) Hardware implementation of the mixcolumn/invmiscolumn functions
Priya et al. FPGA implementation of efficient AES encryption
Buell Modern symmetric ciphers—Des and Aes
EP1629626B1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
Gangadari et al. FPGA implementation of compact S-Box for AES algorithm using composite field arithmetic
Bajaj et al. AES algorithm for encryption
Gujar Image encryption using AES algorithm based on FPGA
Chefranov et al. One-Time Involutory Matrix-Based Hill Cipher Modification.
Järvinen Sharing resources between AES and the SHA-3 second round candidates Fugue and Grøstl
James et al. An Optimized Parallel Mix column and Sub bytes’ design in Lightweight Advanced Encryption Standard
Premananda et al. MEC S-box based PRESENT lightweight cipher for enhanced security and throughput
Alam et al. Single chip encryptor/decryptor core implementation of AES algorithm
Schubert et al. Reusable cryptographic VLSI core based on the SAFER K-128 algorithm with 251.8 Mbit/s throughput
Nampalliwar et al. Implementation of AES Algorithm
Lee et al. High‐Speed Hardware Architectures for ARIA with Composite Field Arithmetic and Area‐Throughput Trade‐Offs
Srisuchinwong et al. A symmetric cipher using autonomous and non-autonomous cellular automata
Rajoriya et al. REVIEW ON FPGA IMPLEMENTATION OF IMAGE ENCRYPTION AND DECRYPTION USING AES ALGORITHM ALONG WITH KEY ENCRYPTION
Arrag et al. Several AES variants under VHDL language in FPGA

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20050610

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
N231 Notification of change of applicant
PN2301 Change of applicant

Patent event date: 20070907

Comment text: Notification of Change of Applicant

Patent event code: PN23011R01D

A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20081128

Comment text: Request for Examination of Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20100824

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20101113

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20100824

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I