KR20050019086A - Advanced encryption standard(aes) hardware cryptographic engine - Google Patents

Advanced encryption standard(aes) hardware cryptographic engine

Info

Publication number
KR20050019086A
KR20050019086A KR10-2004-7019262A KR20047019262A KR20050019086A KR 20050019086 A KR20050019086 A KR 20050019086A KR 20047019262 A KR20047019262 A KR 20047019262A KR 20050019086 A KR20050019086 A KR 20050019086A
Authority
KR
South Korea
Prior art keywords
round
key
cipher
mix
xor
Prior art date
Application number
KR10-2004-7019262A
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 KR10-2004-7019262A priority Critical patent/KR20050019086A/en
Publication of KR20050019086A publication Critical patent/KR20050019086A/en

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

Abstract

본 발명은 Rijndael-AES 암호화 표준에서의 암호 방법 및 관련 도구를 제공한다. 일실시예에서, 해독화 라운드 키(w[i])는 이전의 암호화 키 스케쥴링 연산으로부터 저장된 최종의 Nk 라운트 키로부터 한 라운드씩 생성된다. 그에 따라 레이턴시 및 메모리 요건이 감소된다. AES 키 생성 및 암호 연산 자체를 위한 S-박스(410∼413)는 상이한 전력 서명을 갖는 상이한 통로에서 복수배 실시될 수 있으며, 상이한 바이트에 대한 경로의 의사-랜덤 선택(390∼393, 410∼413 )이 대체될 것이다. 프리믹스 연산(73)은 최초의 라운드 키의 생성과 동시적으로 발생하며(72, 83), 실제의 프리믹스 회로와 실질적으로 동일한 타이밍을 갖는 더미 회로(도 13)는 프리믹스에 전력 소비 잡음을 추가시킨다.The present invention provides an encryption method and related tools in the Rijndael-AES encryption standard. In one embodiment, the decryption round key w [i] is generated one round from the last Nk round key stored from the previous encryption key scheduling operation. This reduces latency and memory requirements. AES key generation and cipher operation itself S- boxes for (41 3 0-41) may be carried out plural times at different path with different power signatures, decision path to a different byte-random selection (39 0-39 3 , 41 0 to 4 1 3 ) will be replaced. The premix operation 73 occurs concurrently with the generation of the first round key (72, 83), and the dummy circuit (FIG. 13) having substantially the same timing as the actual premix circuit adds power consumption noise to the premix. .

Description

진보된 암호화 표준(AES)의 하드웨어 암호 엔진{ADVANCED ENCRYPTION STANDARD(AES) HARDWARE CRYPTOGRAPHIC ENGINE}ADVANCED ENCRYPTION STANDARD (AES) HARDWARE CRYPTOGRAPHIC ENGINE}

본 발명은 암호 방법 및 장치에 관한 것으로, 보다 구체적으로는 Rijndael 또는 AES(Advanced Encryption Standard}로서 알려진 특수한 대칭 키 블록 사이퍼(block cipher) 알고리즘 및 관련 하드웨어 또는 소프트웨어 구현에 관한 것이다. 특히, 본 발명은 암호화 및 해독화 방향 모두에서의 그 알고리즘의 라운드 키 생성(round key generation)에 관한 것이며, 또한 사이퍼 키를 찾아내고자 하는 구현 하드웨어 또는 소프트웨어에 대한 차분 전력 분석 공격(differential power analysis attack)을 차단하기 위한 기술에 관한 것이다.The present invention relates to a cryptographic method and apparatus, and more particularly to a special symmetric key block cipher algorithm and associated hardware or software implementation known as Rijndael or AES (Advanced Encryption Standard). It relates to the round key generation of the algorithm in both the encryption and decryption directions, and also to block differential power analysis attacks against the implementation hardware or software that attempts to find the cipher key. It's about technology.

미국 상무부 소속의 National Institute of Standards and Technology(NIST)는 2001년 11월 26일자의 "Federal Information Processing Standards Publication 197"(FIPS 197)에서 규정된 바와 같은 진보된 암호화 표준(AES)의 Rijndael 대칭 키 블록 사이퍼 알고리즘의 서브세트를 채택하였다. AES 알고리즘은 128, 192 및 256 비트의 암호 키를 사용하여 데이타를 128 비트의 블록으로 암호화 및 해독화한다. Rijndael 알고리즘은 또한 192 및 256 비트 블록을 처리할 수 있으며, 어떤 중간 또는 잠재적으로는 더 큰 키 길이 및 블록 사이즈까지의 확장을 임의의 그 키 길이와 블록 사이즈 사이에서 정의된 연산을 이용하여 지원한다.The National Institute of Standards and Technology (NIST) of the US Department of Commerce is Rijndael symmetric key block of the Advanced Encryption Standard (AES) as defined in the Federal Information Processing Standards Publication 197 (FIPS 197) of November 26, 2001. A subset of cipher algorithms was adopted. The AES algorithm encrypts and decrypts data in 128-bit blocks using 128, 192, and 256 bit encryption keys. The Rijndael algorithm can also handle 192 and 256 bit blocks, supporting any intermediate or potentially larger key lengths and block sizes using operations defined between any of those key lengths and block sizes. .

알고리즘은 키 길이와 블록 사이즈에 좌우되는 다수의 거의 동일한 라운드(round)를 반복한다. 암호화 또는 해독화 연산을 완료하기 위해, AES128은 10개의 라운드를 이용하고, AES192는 12개의 라운드를 이용하며, AES256은 14개의 라운드를 이용한다. 보다 일반적으로, 32-비트 워드의 키 길이 Nk와 32-비트 워드의 블록 사이즈 Nb에 대하여, Rijndael 알고리즘의 라운드의 수 Nr은 현재 Nr = max(Nk, Nb) + 6 으로 지정되어 있다.The algorithm repeats a number of nearly identical rounds depending on the key length and block size. To complete the encryption or decryption operation, AES128 uses 10 rounds, AES192 uses 12 rounds, and AES256 uses 14 rounds. More generally, for the key length Nk of the 32-bit word and the block size Nb of the 32-bit word, the number of rounds Nr of the Rijndael algorithm is currently designated Nr = max (Nk, Nb) + 6.

본 명세서에 개시된 발명은 AES용으로 지정된 128-비트 블록 사이즈를 포함하여 Rijndael 키 길이 및 블록 사이즈의 어떠한 것에도 적용 가능하며, 또한 어떠한 모드의 연산에도 적용할 수 있다. 본 특허 명세서의 나머지 부분은 바람직한 AES 실시예에 대하여 언급할 것이며, 임의의 다른 Rijndael 블록 사이즈까지의 확장 또한 암시된다는 것을 이해하기 바란다.The invention disclosed herein is applicable to any of Rijndael key lengths and block sizes, including the 128-bit block size designated for AES, and can also be applied to any mode of operation. It will be appreciated that the remainder of this patent specification will refer to preferred AES embodiments, and that extensions to any other Rijndael block size are also implied.

Morris Dworkin에 의한 "Recommendation for Block Cipher Modes of Operation: Methods and Techniques"라는 제목의 NIST 특별 공개자료 800-38A(2001년 12월)에는 AES와 같은 임의의 하위 대칭 키 블록 사이퍼 알고리즘과 함께 사용하도록 NIST에 의해 승인된 연산의 5가지 기밀성 모드(confidentiality mode)가 특정되어 있다. 연산의 다른 가능한 모드가 또한 NIST 승인을 대기하고 있다. 본 명세서에 개시된 발명은 연산 모드의 어떠한 것에도 적용 가능하다.NIST Special Publication 800-38A (December 2001) entitled "Recommendation for Block Cipher Modes of Operation: Methods and Techniques" by Morris Dworkin for NIST for use with arbitrary subsymmetric key block cipher algorithms such as AES. Five confidentiality modes of operations approved by are specified. Another possible mode of operation is also waiting for NIST approval. The invention disclosed herein is applicable to any of the modes of operation.

AES에서, 각각의 라운드 동안 3가지의 주요 단계, 즉 (a) 텍스트 블록이 수정되고, (b) 라운드 키가 생성되며, (c) 수정된 텍스트 블록 및 라운드 키가 다음 라운드를 위한 개시 텍스트 블록을 제공하기 위해 XOR 연산을 이용하여 함께 추가되는 단계가 발생한다. 2가지의 예외를 갖는다면, 텍스트 블록은 각각의 라운드(S-박스 대체(S-box substitution), 로우 시프팅(row shifting), 컬럼 믹싱(column mixing))에서 동일한 방식으로 수정된다. 첫번째 예외는 플레인텍스트 메시지 블록(plaintext message block)이 사이퍼 키 자체로부터의 최초의 Nb 워드로 채워진 초기 라운드 키와 비트마다 XOR 연산되는 프리 키 믹스 연산(pre key mix operation)(라운드 0)이다. AES에 대해 Nb=4인 경우, 이 프리 키 믹스 연산은 라운드 1에 대한 개시 텍스트를 제공한다. 두 번째 예외는 컬럼 믹싱 연산이 생략되는 최종 라운드에서 발생한다. 라운드에 대한 S-박스 대체, 로우 시프팅, 컬럼 믹싱 연산은 전술된 FIPS 197 문서에 기술되어 있다.In AES, three major steps during each round: (a) the text block is modified, (b) the round key is generated, and (c) the modified text block and the round key are the starting text block for the next round. Steps are added together using XOR operation to provide. With two exceptions, the text block is modified in the same way at each round (S-box substitution, row shifting, column mixing). The first exception is the initial round key, where the plaintext message block is filled with the first Nb word from the cipher key itself, and a pre key mix operation (round 0), bit by bit XORed. If Nb = 4 for AES, this free key mix operation provides the start text for round one. The second exception is raised in the final round, where the column mixing operation is omitted. S-box substitution, low shifting, and column mixing operations for rounds are described in the aforementioned FIPS 197 document.

라운드 키의 세트(키 스케쥴)는 키 확장 루틴을 사용하여 초기 암호로부터 생성된다. AES에서, 라운드 키의 길이는 원본 사이퍼 키의 길이(128, 192 또는 256 비트)에 무관하여 블록 사이즈(128 비트 = 4 워드)와 항상 동일하다. 사이퍼 키의 워드는 그들이 지속하는 동안에는 앞쪽의 라운드에서 사용되며, 각각의 연속적인 라운드 키 워드는 선행 라운드 키 워드의 함수가 된다. 키 확장 루틴에 의한 라운드 키의 계산은 각각의 사이퍼 키 길이에 대해 다소 상이하며, 그 점에서, 동일한 기본 단계(S-박스 대체와, 바이트 로테이션과, 라운드 상수와의 XOR)가 각각의 경우에 사용되는 동안, 이들 기본 단계는 상이한 키 길이에 대해 상이한 빈도로 발생한다.The set of round keys (key schedule) is generated from the initial cipher using a key expansion routine. In AES, the length of the round key is always the same as the block size (128 bits = 4 words) regardless of the length of the original cipher key (128, 192 or 256 bits). The words of the cipher keys are used in the preceding round as long as they last, and each successive round key word becomes a function of the preceding round key word. The calculation of the round key by the key expansion routine is somewhat different for each cipher key length, in that the same basic steps (S-box replacement, byte rotation, and XOR with round constants) are in each case While in use, these basic steps occur at different frequencies for different key lengths.

해독화를 행하는 간단한 방식의 경우, 개개의 암호 변환은 반전되어 암호화의 역순으로 시행될 수 있다. 암호화 및 해독화 연산에 대한 키 스케쥴의 형태는 동일한 것으로 유지하지만, 역순으로 적용된다. 그러므로, 해독화를 위한 제1 라운드 키는 암호화의 최종 라운드 키와 동일하고, 제2 해독화 라운드 키는 암호화의 끝에서 2번째 라운드 키와 동일하며, 나머지 라운드 키들도 동일한 양상을 갖는다.In the simple manner of decryption, individual cryptographic conversions can be reversed and performed in the reverse order of encryption. The form of key schedules for encryption and decryption operations remain the same, but apply in reverse order. Therefore, the first round key for decryption is the same as the last round key of encryption, the second decryption round key is the same as the second round key at the end of encryption, and the remaining round keys have the same aspect.

키 스케쥴링에 대한 한가지 공통적인 접근방식은 통신 세션에 요구된 라운드 키의 전부를 미리 사전 계산하고 그들을 각각의 라운드에 대해 요구될 때에 검색될 수 있도록 메모리에 키 테이블로써 저장하는 것이다. 이 접근방식은 라운드 키의 세트가 계산되는 동안에는 커다란 초기 레이턴시 주기를 갖지만, 암호 라운드의 더 신속한 후속 실행을 갖는다. 더욱이, 이 경우에서의 해독화 라운드는 암호화 라운드만큼 신속하게 된다. 그러나, 이 접근방식은 전체 키 스케쥴을 저장하는데 사용할 수 있는 충분한 메모리 용량이 있고 초기 레이턴시 주기가 허용 가능하다는 것을 전제로 한다.One common approach to key scheduling is to pre-compute all of the round keys required for the communication session and store them as a key table in memory so that they can be retrieved when required for each round. This approach has a large initial latency period while the set of round keys is being calculated, but with a faster subsequent execution of the crypto round. Moreover, the decryption round in this case is as fast as the encryption round. However, this approach assumes that there is sufficient memory capacity available to store the entire key schedule and that the initial latency period is acceptable.

일부 하드웨어 시스템에서 사용된 또다른 접근방식은 라운드 키가 필요시 한 라운드씩 생성되는 "on-the-fly" 방식의 키 스케쥴링을 수반한다. 이 접근방식은 전체 키 스케쥴을 사전 처리하지 않기 때문에, 초기 레이턴시 주기가 적어도 암호 순방향(암호화)에서는 방지되며, 라운드 키를 위한 메모리 조건이 실질적으로 감소된다. 이것은 암호화를 행할 필요가 있고 메모리 및 프로세싱 제한을 갖는 장치에 대해 특히 유용하다. 그러나, 암호 역방향(해독화)에서, 라운드 키는 반대로 요구된다. 즉, 해독화를 위한 제1 라운드 키는 암호화의 최종 라운드 키와 동일하다. 더욱이, 라운드 키는 이전의 라운드 키의 함수가 된다. 현재의 해독화 라운드에 대한 라운드 키가 도달될 때까지, 각각의 라운드에 대하여 "on-the-fly" 방식의 키 생성기가 모든 선행 라운드 키를 재계산하여야만 하기 때문에, 기존의 "on-the-fly" 방식의 키 확장 방법은 해독화 방향에서, 특히 앞쪽의 해독화 라운드에서 커다란 레이턴시를 갖는다. 가능하다면, 역방향에 대하여 개량된 키 생성 루틴이 요구되어 이 레이턴시를 경감시키는 것이 요망된다.Another approach used in some hardware systems involves "on-the-fly" key scheduling, where round keys are generated one by one when needed. Since this approach does not preprocess the entire key schedule, the initial latency period is prevented at least in cryptographic forward (encryption), and the memory requirements for the round key are substantially reduced. This is particularly useful for devices that need to perform encryption and have memory and processing restrictions. However, in crypto reverse (decryption), the round key is required in reverse. That is, the first round key for decryption is the same as the last round key of encryption. Moreover, the round key becomes a function of the previous round key. Because the "on-the-fly" key generator must recalculate all preceding round keys for each round until the round key for the current decryption round is reached, the existing "on-the-" The key expansion method of the fly "method has a large latency in the decryption direction, especially in the front decryption round. If possible, improved key generation routines for backwards are required to reduce this latency.

AES 등의 암호가 실제 어플리케이션에 채용될 때, 이들 암호는 먼저 하드웨어 또는 소프트웨어로서 구현되어야 한다. 공격자는 암호 자체의 수학적인 약점을 찾아내려고 시도하기 보다는 그 구현의 일부 약점을 찾아내려고 할 것이다. 이것은 사이퍼 키를 결정하는데 유용한 내부 연산에 대해 누출된 정보를 획득하기 위해 암호 시스템의 동작 동안의 암호 시스템의 외부 모니터링을 통해 행해질 것이다. 암호 시스템의 도구 공격의 예로는 실행 시각 또는 전력 소비 패턴에서의 어떠한 키 종속 변동(key-dependent variation)을 찾아내는 타이밍 및 전력 분석 공격이 있다. 각종 도구 공격에 대한 공지된 대응책은 일반적으로, 개입 저항 칩 패키징과, 신호 방출을 차단하기 위한 물리적 차폐와, 입력 및 출력의 필터링과, 연산의 타이밍을 등화 또는 랜덤화하기 위한 컴퓨터처리 기술과, 명령어 시퀀스를 사이퍼 키 또는 한 실행에서 다음 실행으로의 변경에 독립적이 되도록 하는 방법과, 하드웨어 잡음을 전력 소비 패턴에 추가하는 방법을 포함한다. 예를들어, Kocher 등에게 허여된 미국 특허 번호 6,327,661호는 예측 불가능한(랜덤한 또는 의사-랜덤한) 정보를 암호 처리에 통합하는 대응책을 개시한다. 그러나, 이러한 가능한 방어의 전부가 모든 상황에 적용 가능한 것은 아니라는 점에 유념하기 바란다. 예를들어, 암호 엔진이 내장된 스마트 카드의 처리 및 메모리 제약은 다수의 이용 가능한 대응책 중의 어느 것이 사용될 수 있는지를 제한한다. 특히 플레인텍스트가 제일 먼저 처리되는 때인 가장 취약한 주기 동안 스마트 카드 및 다른 프로세서 또는 메모리 제한된 어플리케이션에 대해 추가의 도구 대응책이 요망된다.When ciphers such as AES are employed in actual applications, these ciphers must first be implemented as hardware or software. The attacker will try to find some weaknesses in the implementation, rather than trying to figure out the mathematical weaknesses of the cipher itself. This will be done through external monitoring of the cryptographic system during operation of the cryptographic system to obtain leaked information about internal operations useful for determining the cipher key. Examples of instrumental attacks in crypto systems are timing and power analysis attacks that look for any key-dependent variation in execution time or power consumption patterns. Known countermeasures against various tool attacks generally include intervening resistor chip packaging, physical shielding to block signal emission, filtering of inputs and outputs, computer processing techniques to equalize or randomize the timing of operations, Methods of making an instruction sequence independent of a cipher key or from one execution to the next, and adding hardware noise to the power consumption pattern. For example, US Pat. No. 6,327,661 to Kocher et al. Discloses a countermeasure that incorporates unpredictable (random or pseudo-random) information into cryptographic processing. However, keep in mind that not all of these possible defenses are applicable to every situation. For example, the processing and memory constraints of smart cards with embedded cryptographic engines limit which of the many available countermeasures can be used. Additional tool countermeasures are desired for smart cards and other processor or memory constrained applications, especially during the most vulnerable periods when plaintext is processed first.

암호화 및 해독화는 필수적으로 시간이 많이 소요되는 연산이다. 플레인텍스트 블록을 사이퍼텍스트(ciphertext)로 변환하는데 요구된 데이타 비트, 바이트 및 워드의 다수의 전환 및 대체와, 그 반대의 경우는 처리를 위한 시간을 필요로 한다. 블록 사이즈와 라운드의 수가 증가할 때, 하드웨어의 처리 전력이 그에 대응하여 증가하지 않는다면 문제가 더욱 악화되는 경향이 있다. 보안을 유지하고자 한다면, 소정 도구에서 이용할 수 있는 어떠한 시간 절약이 이로울 것이다.Encryption and decryption are essentially time-consuming operations. Many conversions and replacements of data bits, bytes, and words required to convert a plaintext block into ciphertext, and vice versa, require time for processing. As the block size and the number of rounds increase, the problem tends to get worse if the processing power of the hardware does not increase correspondingly. If you want to stay secure, any time savings available in any tool will be beneficial.

본 발명의 목적은 AES/Rijndael 라운드 키를 역방향(해독화 방향)으로 효율적으로 생성할 수 있는 on-the-fly 방식의 스케쥴링 방법 및 관련 하드웨어 또는 소프트웨어를 제공하는 것이다.An object of the present invention is to provide an on-the-fly scheduling method and related hardware or software capable of efficiently generating AES / Rijndael round keys in the reverse direction (decoding direction).

본 발명의 다른 목적은 암호화의 초기 단계 동안, 특히 사이퍼의 프리-키-믹스 단계(라운드 0) 동안의 전력 분석 공격에 대한 대응책을 제공하는 AES/Rijndael 사이퍼의 하드웨어 구현을 제공하는데 있다.Another object of the present invention is to provide a hardware implementation of AES / Rijndael ciphers that provides countermeasures against power analysis attacks during the initial phase of encryption, in particular during the pre-key-mix phase of the cipher (round 0).

본 발명의 다른 목적은 사이퍼를 처리하는데 요구된 총 클럭 사이클의 수를 감소시키는 AES/Rijndael 구현을 제공하는데 있다.Another object of the present invention is to provide an AES / Rijndael implementation that reduces the total number of clock cycles required to process the cipher.

도 1은 AES/Rijndael 암호화 암호에 대해 특정된 입력 바이트 XY에 대한 S-박스 대체값의 표를 도시하는 도면이다.1 is a diagram showing a table of S-box replacement values for an input byte XY specified for an AES / Rijndael encrypted cipher.

도 2는 16진수 연산자쌍에 대한 XOR 연산 결과의 표를 도시하는 도면이다.2 is a diagram illustrating a table of XOR operation results for hexadecimal operator pairs.

도 3은 암호화 방향에서의 128-비트 사이퍼 키에 대해 FIPS-197로부터 취해진 종래 기술의 키 확장 예를 나타내는 표를 도시하는 도면이다.FIG. 3 is a table showing an example of a prior art key extension taken from FIPS-197 for a 128-bit cipher key in the encryption direction.

도 4는 역방향(해독화 방향)에서의 도 3에서와 동일한 128-비트 사이퍼 키에 대해 본 발명에 의해 구현된 키 확장 예를 나타내는 표를 도시하는 도면이다.4 is a table showing an example of key expansion implemented by the present invention for the same 128-bit cipher key as in FIG. 3 in the reverse direction (decryption direction).

도 5는 암호화 방향에서의 192-비트 사이퍼 키에 대해 FIPS-197로부터 취해진 종래 기술의 키 확장 예를 나타내는 표를 도시하는 도면이다.FIG. 5 is a diagram illustrating a table showing an example of a key extension of the prior art taken from FIPS-197 for a 192-bit cipher key in the encryption direction.

도 6은 역방향(해독화 방향)에서의 도 5에서와 동일한 192-비트 사이퍼 키에 대해 본 발명에 의해 구현된 키 확장 예를 나타내는 표를 도시하는 도면이다.FIG. 6 is a table showing an example of key expansion implemented by the present invention for the same 192-bit cipher key as in FIG. 5 in the reverse direction (decryption direction).

도 7은 암호화 방향에서의 256-비트 사이퍼 키에 대해 FIPS-197로부터 취해진 종래 기술의 키 확장 예를 나타내는 표를 도시하는 도면이다.FIG. 7 is a diagram illustrating a table showing an example of a prior art key extension taken from FIPS-197 for a 256-bit cipher key in the encryption direction.

도 8은 역방향(해독화 방향)에서의 도 7에서와 동일한 256-비트 사이퍼 키에 대해 본 발명에 의해 구현된 키 확장 예를 나타내는 표를 도시하는 도면이다.8 is a table showing an example of key expansion implemented by the present invention for the same 256-bit cipher key as in FIG. 7 in the reverse direction (decryption direction).

도 9a 및 도 9b는 본 발명을 위한 키 생성기 하드웨어를 도식적으로 나타낸 블록도를 도시하는 도면이다.9A and 9B are schematic block diagrams illustrating key generator hardware for the present invention.

도 10은 도 9a 및 도 9b의 키 생성기에 대한 라운드 키 변환 하드웨어를 도식적으로 나타낸 블록도를 도시하는 도면이다.FIG. 10 is a block diagram schematically illustrating round key conversion hardware for the key generator of FIGS. 9A and 9B.

도 11은 라운드 키 변환 시퀀스를 위한 S-박스 하드웨어의 다른 실시예를 도시하고 있으며, 동일한 S-박스 함수가 상이한 전력 소비 패턴을 갖는 4개의 구별적 통로로 구현되고, 4개의 S-박스를 통한 가변 경로가 난수 생성기(LFSR)에 의해 제어되는 것을 나타내고 있는 도면이다.11 illustrates another embodiment of S-box hardware for a round key translation sequence, wherein the same S-box function is implemented with four distinct passages with different power consumption patterns, and through four S-boxes. It is a figure which shows that a variable path is controlled by the random number generator (LFSR).

도 12는 256개의 난수 중의 임의의 것을 24개의 경로 순열 선택으로 전환하기 위해 도 11의 실시예의 제어부에서 사용하기 위한 탐색표를 도시하는 도면이다.FIG. 12 is a diagram illustrating a lookup table for use in the controller of the embodiment of FIG. 11 to convert any of 256 random numbers to 24 path permutation selections.

도 13은 본 발명의 하드웨어 구현에서의 대응책으로써의 AES 프리믹스(라운드 0) 연산 동안에 랜덤한 전력 소비 잡음을 유입시키기 위한 더미 회로를 도식적으로 나타내는 블록도를 도시하는 도면이다.FIG. 13 is a schematic diagram illustrating a dummy circuit for introducing random power consumption noise during an AES premix (round 0) operation as a countermeasure in a hardware implementation of the present invention.

도 14는 제1 라운드를 위한 on-the-fly 방식의 키 스케쥴링과 일치하는 프리믹스 연산의 작용을 예시하는 데이타 및 사이퍼 키 입력 경로의 도식적 블록도를 도시하는 도면이다.14 is a schematic block diagram of data and cipher key input paths illustrating the operation of premix operations consistent with on-the-fly key scheduling for the first round.

도 15는 도 14로 수행되는 동시적 프리믹스/키 스케쥴링 연산에 대한 흐름도이다.FIG. 15 is a flow chart for the simultaneous premix / key scheduling operation performed with FIG. 14.

상기의 목적은 키 생성기로 하여금 사이퍼 알고리즘의 해독 연산에 사용하기 위해 AES 라운드-키 워드 w[i]를 "on-the-fly" 방식으로 한 라운드씩 요구된 바대로 역방향으로 생성하도록 하는 방법에 의해 충족된다. 키 생성기는 하드웨어 회로로서 구현되는 것이 바람직하지만, 필요시 소프트웨어로서 구현될 수도 있다. 역방향 키 생성은 순방향에서의 암호화 연산의 키 확장 동안 구해진 Nk 라운드-키 워드의 최종 세트를 저장하기 위한 메모리를 제공함으로써 달성된다. 키 생성기 회로가 해독화 연산을 위해 설정될 때, 키 생성기 회로는 저장된 라운드-키 워드 w[i] 및 w[i-1]를 수반한 XOR 논리 연산에 의해 이전의 라운드-키 워드 w[i-Nk]를 "on-the-fly" 방식으로 구하며, 여기서 w[i-1]은 i mod Nk = 0일 때마다 그리고 또한 Nk>6 이고 i mod Nk = 4일 때마다 XOR 논리 연산을 적용하기 전에 변환 시퀀스에 의해 제일 먼저 수정된다. w[i-1]에 대한 변환 시퀀스는 순방향의 키 확장 루틴과 역방향의 키 확장 루틴에서 동일하다. 변환 시퀀스는 순환적 바이트 시프트와, S-박스 바이트 대체와, i mod Nk = 0일 때마다 라운드 상수와의 XOR 연산을 수반한다. 변환 시퀀스는 Nk>6 이고 i mod Nk = 4일 때에는 S-박스 바이트 대체만을 수반한다.The above objective is to allow the key generator to generate the AES round-keyword w [i] in a "on-the-fly" fashion in the reverse direction as required for use in the decryption operation of the cipher algorithm. Are satisfied by The key generator is preferably implemented as hardware circuitry, but may also be implemented as software if desired. Reverse key generation is achieved by providing a memory for storing the final set of Nk round-key words obtained during key expansion of the cryptographic operation in the forward direction. When the key generator circuit is set up for the decryption operation, the key generator circuit generates the previous round-keyword w [i by XOR logic operation involving the stored round-keywords w [i] and w [i-1]. -Nk] is obtained in an "on-the-fly" fashion, where w [i-1] applies XOR logic operations whenever i mod Nk = 0 and also when Nk> 6 and i mod Nk = 4. First modified by the conversion sequence before doing so. The conversion sequence for w [i-1] is the same in the forward key expansion routine and in the reverse key expansion routine. The conversion sequence involves cyclic byte shifts, S-box byte substitutions, and XOR operations with round constants whenever i mod Nk = 0. The conversion sequence involves only S-box byte replacement when Nk> 6 and i mod Nk = 4.

본 발명의 목적은 또한 블록 사이퍼 알고리즘의 초기의 프리-믹스 XOR 연산 동안의 하드웨어 블록 암호 회로의 전체적인 전력 서명에 의사-랜덤 잡음을 삽입하는 프리-믹스 더미 회로(pre-mix dummy circuit)에 의해 충족된다. 이 차별적 전력 분석 대응책은 플레인텍스트가 최초의 사이퍼 암호화 라운드 이전에 사이퍼 키와 혼합되기 때문에 모든 XOR 게이트 스위칭으로부터 전력 서명을 은닉한다. 프리-믹스 더미 회로는 이 초기의 프리-믹스 XOR 연산 동안에만 작동하며, 프리-믹스 서브회로의 전파 지연량과 실질적으로 일치하는 전파 지연량을 특징으로 한다. 더미 회로는 의사-랜덤 생성기 및 XOR 어레이를 포함한다. 의사-랜덤 생성기는 예를들어 선형 피드백 시프트 레지스터의 세트일 수도 있을 것이다. XOR 어레이는 의사-랜덤 생성기의 출력에 접속된 제1 입력을 갖는다. XOR 어레이의 제2 입력은 프리-믹스 서브회로와 동일한 사이퍼 키 비트를 수신하도록 접속된다. XOR 어레이의 출력은 의사-랜덤 생성기에 피드백된다. 더미 회로의 의사-랜덤 생성기 및 XOR 어레이는 프리-믹스 서브회로의 비트와 일치하는 비트의 워드폭을 가질 수도 있을 것이다.The object of the present invention is also met by a pre-mix dummy circuit that inserts pseudo-random noise into the overall power signature of the hardware block cryptographic circuit during the initial pre-mix XOR operation of the block cipher algorithm. do. This differential power analysis countermeasure hides power signatures from all XOR gate switching because plaintext is mixed with the cipher key before the first round of cipher encryption. The pre-mix dummy circuit operates only during this initial pre-mix XOR operation and features an amount of propagation delay that substantially matches the amount of propagation delay of the pre-mix subcircuit. The dummy circuit includes a pseudo-random generator and an XOR array. The pseudo-random generator may be a set of linear feedback shift registers, for example. The XOR array has a first input connected to the output of the pseudo-random generator. The second input of the XOR array is connected to receive the same cipher key bits as the pre-mix subcircuit. The output of the XOR array is fed back to the pseudo-random generator. The pseudo-random generator and the XOR array of the dummy circuit may have a word width of bits that matches the bits of the pre-mix subcircuit.

본 발명의 목적은 또한, 사이퍼 암호화 라운드의 시퀀스를 개시하기 전에 플레인텍스트를 사이퍼 키와 혼합하여 사이퍼텍스트(ciphertext)를 생성하는 초기의 프리-믹스 XOR 연산을 갖는 사이퍼 알고리즘을 수행하도록 구성된 하드웨어 블록 암호 회로에서, 프리-믹스 연산을 최초의 사이퍼 암호화 라운드와 조합하고, 이에 의해 한 라운드씩 사이퍼 알고리즘을 처리하도록 요구된 클럭 사이클의 수를 감소시키는 방법에 의해 충족된다. 본 방법은 플레인텍스트가 로딩되는 동안 최초의 사이퍼 암호화 라운드에 대한 라운드-키 워드를 생성하도록 사이퍼 키를 사전처리한다. 프리-믹스 XOR 연산은 또한 플레인텍스트가 로딩되는 때에도 발생한다. 제1 사이퍼 암호화 라운드는 로딩된 프리-믹스된 플레인텍스트에 대하여 사전 생성된 제1 라운드-키 워드를 사용하여 수행된다.The object of the present invention is also a hardware block cipher configured to perform a cipher algorithm with an initial pre-mix XOR operation that mixes plaintext with a cipher key to generate ciphertext before initiating a sequence of cipher encryption rounds. In the circuit, a pre-mix operation is combined with the first cipher encryption round, thereby satisfying the method by reducing the number of clock cycles required to process the cipher algorithm one by one. The method preprocesses the cipher key to generate a round-keyword for the first cipher encryption round while the plaintext is loading. Pre-mix XOR operations also occur when plaintext is loaded. The first cipher encryption round is performed using the first generated first round-keyword for the loaded pre-mixed plaintext.

본 발명은 예를들어 스마트 카드용과 같은 마이크로콘트롤러 또는 다른 시스템 회로용의 암호 엔진과 같은 하드웨어 회로로서 구현되는 것이 바람직하다. 이러한 암호 엔진은 AES 연산을 수행하도록 설계된 주문형 반도체(ASIC)이거나, 혹은 AES 연산을 수행하기 위해 펌웨어(firmware)로 프로그램된 더욱 범용의 처리 하드웨어일 것이다. 암호화 엔진은 통상적으로 대형의 시스템 회로와 메모리를 공유한다. 암호화 엔진은 또한 소프트웨어로서 구현될 수도 있다.The invention is preferably implemented as hardware circuitry, for example a cryptographic engine for a microcontroller or other system circuitry such as for a smart card. Such crypto engines may be on-demand semiconductors (ASICs) designed to perform AES operations, or may be more general purpose processing hardware programmed with firmware to perform AES operations. Cryptographic engines typically share memory with large system circuits. The encryption engine may also be implemented as software.

AES/Rijndael 알고리즘은 사이퍼 키에 관한 키 확장 루틴을 수행하여 키 스케쥴을 생성한다. 키 확장은 총 Nb(Nr+1)개의 워드를 생성하며, 여기서 AES에 대한 블록 사이즈 Nb=4가 표준이지만, 다른 Rijndael 구현에 대해서는 상이하게 될 수 있으며, 라운드의 수 Nr는 현재 [max(Nk, Nb)+6]으로 특정되고, Nk는 32-비트(4-바이트) 워드의 사이퍼 키 사이즈이다. 라운드 키는 각각 Nb 워드로 구성되며, 그 결과의 키 스케쥴은 0≤i≤Nb(Nr+1) 범위의 i를 갖는 [wi]로 표기되는 워드의 선형 어레이이다. 암호화를 위해서는 라운드 키 워드는 i=0 에서 Nb(Nr+1)까지의 순방향으로 요구된다. 그리나, 해독화를 위해서는 라운드 키 워드는 i=Nb(Nr+1)로 개시하는 역방향으로 요구된다.The AES / Rijndael algorithm generates a key schedule by performing a key expansion routine on the cipher key. The key extension produces a total of Nb (Nr + 1) words, where the block size Nb = 4 for AES is standard, but may be different for other Rijndael implementations, and the number of rounds Nr is currently [max (Nk , Nb) +6], where Nk is the cipher key size of a 32-bit (4-byte) word. Each round key consists of Nb words, and the resulting key schedule is a linear array of words denoted [w i ] with i in the range 0 ≦ i ≦ Nb (Nr + 1). For encryption, round key words are required in the forward direction from i = 0 to Nb (Nr + 1). However, for decryption, the round key word is required in the reverse direction starting with i = Nb (Nr + 1).

순방향 키 확장을 위한 의사-코드는 FIPS-197에 다음과 같이 주어져 있다:The pseudo-code for forward key expansion is given in FIPS-197 as follows:

SubWord()는 4-바이트 입력 워드를 취하고 4 바이트의 각각에 S-박스 표(도 1에 도시된)를 적용하여 출력 워드를 발생하는 함수이다. 바이트는 4-비트 16진수값 0 내지 f의 xy쌍들로 표현된다. 각각의 xy쌍은 S-박스 표로부터 출력쌍을 생성한다. 예를들어, 바이트 {53}은 대체 바이크 {ed}에 의해 대체될 것이다. AES 표준(FIPS-197)은 또한 역 암호(inverse cipher)와 함께 사용하기 위한 역 S-박스(inverse S-box)를 특정한다. 본 발명의 키 스케쥴링의 장점은 역 S-박스를 필요로 하지 않고서도 순방향에서와 동일한 S-박스를 사용하여 라운드 키가 역방향으로 생성될 수 있다는 점이다.SubWord () is a function that takes a 4-byte input word and applies an S-box table (shown in FIG. 1) to each of the 4 bytes to generate an output word. The byte is represented by xy pairs of 4-bit hexadecimal values 0 through f. Each xy pair produces an output pair from the S-box table. For example, byte {53} would be replaced by replacement bike {ed}. The AES standard (FIPS-197) also specifies an inverse S-box for use with an inverse cipher. The advantage of key scheduling of the present invention is that the round key can be generated in the reverse direction using the same S-box as in the forward direction without the need for a reverse S-box.

RotWord() 함수는 입력으로써 워드 [a0,a1,a2,a3]를 취하고, 순환적 순열(cyclic permutation)을 수행하며, 워드 [a0,a1,a2,a3]를 리턴한다.The RotWord () function takes the word [a 0 , a 1 , a 2 , a 3 ] as input, performs cyclic permutation, and takes the word [a 0 , a 1 , a 2 , a 3 ] Returns.

라운드 상수 워드 어레이 Rcon[i]는 [xi-1,{00},{00},{00}]로 주어진 값을 포함하며, 여기서 x={02},xi-1 는 축약 불가능한 8차 다항식 m(x) = x8 + x4 + x3 + x + 1 = {01}{1b}에 의한 모듈러 감소(modular reduction)를 갖는 유한 필드 GF(28)에서의 x의 파워이다(m(x)에 의한 모듈러 감소는 그 결과가 바이트로 표현될 수 있도록 한다). 참고로, 최초의 10개의 라운드 상수(i=1로 개시하는)는 다음과 같다:The round constant word array Rcon [i] contains the values given by [x i-1 , {00}, {00}, {00}], where x = {02}, x i-1 is an unabbreviated eighth order Power of x in finite field GF (2 8 ) with modular reduction by polynomial m (x) = x 8 + x 4 + x 3 + x + 1 = {01} {1b} (m Modular reduction by (x) allows the result to be expressed in bytes). For reference, the first ten round constants (starting with i = 1) are:

16진수값 0 내지 f에 대한 XOR(배타적 OR) 함수 테이블은 편의를 위해 도 2에 도시되어 있다. XOR 함수는 비트와이즈 연산(bitwise operation)(가산 모듈로 2에 동등한)이라는 것에 유의하기 바란다. 2개의 바이트 {a7a6a5a4 a3a2a1a0} 및 {b7b6b5b4b3b2b1b0 }에 대하여, 합계는 {c7c6c5c4c3c2c 1c0}이며, 여기서 각각의 ci = ai XOR bi 이다. 이러한 바이트는 한쌍의 16진수값에 16진수 표기로 표현될 수 있다. 본 발명의 역방향 키 확장 루틴은 XOR 함수의 성질, 즉 ci = ai XOR bi 이라면 ai = ci XOR bi 이라는 성질을 이용한다는 점에 유의하여야 한다.The XOR (exclusive OR) function table for hexadecimal values 0 through f is shown in FIG. 2 for convenience. Note that the XOR function is a bitwise operation (equivalent to addition modulo 2). For two bytes {a 7 a 6 a 5 a 4 a 3 a 2 a 1 a 0 } and {b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 }, the sum is {c 7 c 6 c 5 c 4 c 3 c 2 c 1 c 0 }, where each c i = a i XOR b i . These bytes can be represented in hexadecimal notation in a pair of hexadecimal values. Reverse key expansion routine according to the present invention is to be noted that the nature of the XOR function, i.e. c i = a i b i if the XOR utilizes the property of a i = c i i XOR b.

앞서 제공된 의사-코드로부터, 순방향 키 확장 루틴이 확장된 키의 제1 Nk 워드를 사이퍼 키로 채움으로써 개시한다는 것을 알 수 있다. 매번의 후속 워드 w[i]는 이전의 워드 w[i-1]와 Nk 위치만큼 앞서는 워드 w[i-Nk]의 XOR과 동일하다. Nk의 배수인 위치에서의 워드에 대하여(즉, i mod Nk = 0에 대하여), 변환 시퀀스는 w[i-Nk]와의 XOR 이전에 w[i-1]에 적용된다. 이 변환 시퀀스는 워드내의 바이트의 순확적 시프트(즉, RotWord()함수)와, 그 다음에의 워드의 전체 4 바이트에의 S-박스 테이블 탐색의 적용(즉, SubWord() 함수)과, 그 다음에의 그 워드에 대한 라운드 상수 Rcon[i/Nk]와의 XOR로 구성된다. 추가적으로, Rijndael 사이퍼 알고리즘에서의 256-비트 사이퍼 키(Nk=8) 또는 다른 큰 사이퍼 키(Nk>6)에 대하여, i-4 가 Nk의 배수라면(즉, i mod Nk = 4 일때), S-박스 탐색 함수 SubWord()는 w[i-Nk]와의 XOR 이전에 w[i-1]에 적용된다.From the pseudo-code provided above, it can be seen that the forward key expansion routine begins by filling the first Nk word of the expanded key with the cipher key. Each subsequent word w [i] is equal to the XOR of word w [i-Nk] preceding the previous word w [i-1] by Nk positions. For a word at a position that is a multiple of Nk (ie, for i mod Nk = 0), the transform sequence is applied to w [i-1] before XOR with w [i-Nk]. This conversion sequence is used to perform a precise shift of the bytes in the word (i.e., RotWord ()), then to apply an S-box table search to all four bytes of the word (i.e., the SubWord () function), and then It consists of XOR with the round constant Rcon [i / Nk] for that word. Additionally, for a 256-bit cipher key (Nk = 8) or other large cipher key (Nk> 6) in the Rijndael cipher algorithm, if i-4 is a multiple of Nk (ie when i mod Nk = 4), S The box search function SubWord () is applied to w [i-1] before XOR with w [i-Nk].

도 3, 도 5 및 도 7은 각각의 128-비트, 192-비트 및 256-비트에 대한 순방향 키 확장 루틴의 예를 제공한다.3, 5 and 7 provide examples of forward key expansion routines for 128-bit, 192-bit and 256-bit, respectively.

본 발명의 역방향 키 확장 방법은 라운드 키를 역방향에서 "on-the-fly" 방식으로, 즉 한 라운드씩 요구되는 것으로 생성한다. 역방향 키 확장을 위한 의사-코드는 다음과 같다:The reverse key expansion method of the present invention generates the round key in an "on-the-fly" manner in the reverse direction, i.e., round by round. The pseudo-code for reverse key expansion is:

역방향 키 확장 루틴은 이전의 순방향 확장으로부터의 라운드 키의 최종 Nk 워드가 메모리에 저장될 수 있도록 요구한다. 역순에서, 이들 최종 라운드 키 워드는 등가의 역방향 암호에 사용하기 위한 최초의 라운드 키 워드이다. 역방향에서 생성된(즉, i가 감소하는) 매번의 후속 워드 w[i-Nk]는 Nk 위치만큼 앞서는 워드 w[i]와, 변환 시퀀스에 의해 적합하게 수정될 수도 있는 그 인접 워드 w[i-1]의 XOR과 동일하다. 변환 시퀀스를 적용하기 위한 조건과, 실제로 변환 시퀀스 자체는 순방향 키 확장에서와 동일하다. 함수 SubWord(), RotWord() 및 XOR과, 라운드 상수 워드 어레이 Rcon[i]는 순방향 키 확장에 대하여 전술된 것과 정확하게 동일하다. Nk의 배수인 위치에 있는 워드에 대하여(즉, i mod Nk = 0인 워드에 대하여), w[i-1]에 적용된 변환 시퀀스는 바이트의 순환적 시프트(즉, RotWord() 함수)와, 그 다음에의 워드의 전체 4 바이트에의 S-박스 테이블 탐색의 적용(즉, SubWord() 함수)과, 그 다음에의 대응하는 라운드 키 Rcon[i/Nk]와의 XOR로 구성된다. 또한, Rijndael 역방향 암호에서의 256-비트 사이퍼 키(Nk=8) 또는 다른 큰 사이퍼 키(Nk>6)에 대하여, i-4 가 Nk의 배수라면(즉, i mod Nk = 4 일때), S-박스 탐색 함수 SubWord()는 w[i-Nk]를 생성하는 w[i]와의 XOR 이전에 w[i-1]에 적용된다.The reverse key expansion routine requires that the last Nk words of the round key from the previous forward expansion can be stored in memory. In reverse order, these last round keywords are the first round keywords for use in an equivalent reverse cipher. Each subsequent word w [i-Nk] generated in the reverse direction (i.e. decreasing i) is the word w [i] leading by the Nk position and its adjacent word w [i, which may be modified as appropriate by the conversion sequence. -1] is the same as XOR. The conditions for applying the conversion sequence, and in fact the conversion sequence itself, are the same as in forward key expansion. The functions SubWord (), RotWord () and XOR, and the round constant word array Rcon [i] are exactly the same as described above for forward key expansion. For words at positions that are multiples of Nk (i.e. for words with i mod Nk = 0), the conversion sequence applied to w [i-1] is a cyclic shift of bytes (i.e., the RotWord () function), It then consists of the application of the S-box table search to all four bytes of the word (i.e. the SubWord () function) and the XOR with the corresponding round key Rcon [i / Nk]. Also, for a 256-bit cipher key (Nk = 8) or other large cipher key (Nk> 6) in the Rijndael reverse cipher, if i-4 is a multiple of Nk (ie, when i mod Nk = 4), S The box search function SubWord () is applied to w [i-1] before XOR with w [i], which produces w [i-Nk].

도 4, 도 6 및 도 8은 각각 도 3, 도 5 및 도 7의 순방향 키 확장 예로부터의 동일한 128-비트, 192-비트 및 256-비트 사이퍼 키에 대한 역방향 키 확장 루틴의 예를 제공한다. 도 3과 도 4를 비교하면, AES에서의 라운드 0 프리믹스와 후속의 10개 라운드를 위해 요구된 동일한 44개의 라운드 키 워드 w[0] 내지 w[43]가 생성된다는 것을 알 수 있다(AES 블록 사이즈 Nb가 32-비트 워드 또는 256 비트이기 때문에, 라운드당 4개의 라운드 키 워드가 사용된다). 순방향에서, 확장은 4개의 사이퍼 키 워드 w[0] 내지 w[3]으로 개시한다. 역방향에서, 순방향 키 확장으로부터 이전에 획득되어 메모리에 저장된 최종의 4개의 워드 w[40] 내지 w[43]은 나머지 라운드 키 워드 w[39] 내지 w[0]를 역순으로 구하기 위해 사용된다. 각각의 방향에서, 동일한 변환 시퀀스는 w[i-1] 매 4번째의 워드에, 즉 i가 4(=Nk)의 배수일 때에 적용된다. 동일한 값의 i를 갖는 도 3과 도 4의 행들을 비교하면, 역방향에서의 변환 시퀀스(도 4)가 순방향 키 확장(도 3)에서 적용된 것과 동일하다는 것이 입증된다. 순방향 키 확장과 역방향 키 확장간의 차이점은 최종의 2개 열의 워드에서 나타난다. w[i-Nk]가 순방향에서 w[i]를 생성하기 위해 사용되고(도 3) w[i]가 역방향에서 w[i-Nk]를 생성하기 위해 사용되는(도 4) 2개의 방향에서 이들 최종의 2개의 열이 역으로 되기 때문에, XOR 연산의 대칭이 명백하게 드러난다. 유사하게, 동일한 예의 192-비트 사이퍼 키에 대한 도 5와 도 6의 비교는 역방향 키 확장이 역방향에서의 라운드-0 프리믹스와 12개의 암호 라운드에 대하여 그리고 등가의 역방향 암호 라운드에 대하여 순방향 키 확장과 동일한 52개의 라운드 키 워드를 생성하는 것을 보여준다. 마찬가지로, 도 7과 도 8은 역방향 키 확장이 순방향 확장으로부터 획득된 8개의 저장된 워드를 사용하여 역방향에서 60개의 라운드 키 워드를 정확하게 생성한다는 것을 증명한다. 또한, 동일한 SubWord() 변환이 역방향에서도 사용된다는 점에 유의하기 바란다. 역방향 S-박스 테이블은 본 발명의 순방향 키 확장을 위해 사용되지도 요구되지도 않는다.4, 6, and 8 provide examples of reverse key expansion routines for the same 128-bit, 192-bit, and 256-bit cipher keys from the forward key expansion examples of FIGS. 3, 5, and 7, respectively. . Comparing Figures 3 and 4, it can be seen that the same 44 round keywords w [0] to w [43] required for the round 0 premix in AES and the next 10 rounds are generated (AES block). Since size Nb is a 32-bit word or 256 bits, four round keywords are used per round). In the forward direction, expansion begins with four cipher keywords w [0] through w [3]. In the reverse direction, the last four words w [40] to w [43] previously obtained from the forward key expansion and stored in the memory are used to find the remaining round key words w [39] to w [0] in reverse order. In each direction, the same conversion sequence is applied to every fourth word w [i-1], i.e. when i is a multiple of 4 (= Nk). Comparing the rows of FIG. 3 and FIG. 4 with the same value of i, it is demonstrated that the translation sequence in the reverse direction (FIG. 4) is the same as applied in forward key expansion (FIG. 3). The difference between forward key expansion and reverse key expansion appears in the last two rows of words. w [i-Nk] is used to generate w [i] in the forward direction (FIG. 3) and w [i] is used to generate w [i-Nk] in the reverse direction (FIG. 4) in these two directions. Since the last two columns are reversed, the symmetry of the XOR operation is evident. Similarly, a comparison of Figs. 5 and 6 for the 192-bit cipher key of the same example shows that the reverse key expansion is equivalent to the forward key expansion for round-0 premix and 12 cipher rounds in the reverse and for the equivalent reverse cipher round. It shows generating the same 52 round keywords. Similarly, Figures 7 and 8 demonstrate that the reverse key extension correctly generates 60 round key words in the reverse direction using 8 stored words obtained from the forward extension. Also note that the same SubWord () transform is used in the reverse direction. The reverse S-box table is neither used nor required for the forward key expansion of the present invention.

도 9a 및 도 9b를 참조하면, 키 스케쥴 회로는 Nk 워드(여기서, 개수가 최대 8)를 저장하는 복수의 입력 레지스터(110∼117)를 포함한다. 순방향 암호화에 대하여, 이들은 사이퍼 키의 최초의 Nk 워드이다. 역방향 암호화에 대하여, 이들 레지스터는 이전의 암호화 라운드로부터 얻어지고 시스템 메모리에 저장되었던 최종의 Nk 라운드 워드가 로딩된다. 입력 레지스터(110∼117)는 이들 초기의 워드값을 선택 멀티플렉서(130∼137)를 통해 라운드 키 레지스터(150∼157)에 제공하며, 이 라운드 키 레지스터는 로딩된 워드를 저장한다. 라운드 키 레지스터(150∼157)의 출력은 rk1 내지 rk4와 rk1b 내지 rk4b로 표시된다. 이들 출력은 멀티플렉서(130∼137)를 통해 다시 반복되며, 또한 처리를 위한 한쌍의 멀티플렉서(17, 18)에 입력된다. 멀티플렉서(17)는 인덱스 i에 대해 적합하다면 변환 시퀀스에 의해 연산될 워드 w[i-1]를 수신하는 한편, 멀티플렉서(18)는 키 확장 순방향을 위한 w[i-Nk] 또는 키 확장 역방향을 위한 w[i] 중의 하나를 수신한다. 변환 회로(19)를 통과하거나 또는 멀티플렉서(21)에 의해 선택된 바와 같은 워드 라인(20)을 따라 변환 회로를 바이패싱한 후, 2개의 워드는 XOR 게이트(23)에 입력되고, 그 결과인 KEYSTRAND_NEXT는 라운드 키 레지스터(150)를 업데이트하는 다음 라운드 키 워드가 된다.When Fig. 9a and FIG. 9b, and the key scheduling circuit including Nk words of the input registers (11, 7, 0-11) for storing (where a maximum number of 8). For forward encryption, these are the first Nk words of the cipher key. For reverse encryption, these registers are obtained from the previous encryption round and the last Nk round words that were stored in system memory are loaded. And provided to the input register (11 0-11 7) is round key register (15 0-15 7) the word value of their initial via selection multiplexer (13, 7, 0-13), a round key registers the loaded word Save it. The output of the round key registers 15 0 to 15 7 is represented by rk1 to rk4 and rk1b to rk4b. The output is repeated again via a multiplexer (13 0-13 7), is also input to a pair of multiplexers (17, 18) for processing. Multiplexer 17 receives word w [i-1] to be computed by the conversion sequence if appropriate for index i, while multiplexer 18 selects w [i-Nk] or key expansion backward for key expansion forward. Receive one of w [i]. After passing through the conversion circuit 19 or bypassing the conversion circuit along the word line 20 as selected by the multiplexer 21, two words are input to the XOR gate 23, and the result is KEYSTRAND_NEXT. Becomes the next round keyword that updates the round key register 15 0 .

도 10은 적합한 때에 라운드 키 워드 w[i-1]에 변환 시퀀스를 적용하기 위한 변환 회로(19)를 도시한다. 멀티플렉서(17)에 의해 선택된 워드 w[i-1]는 키 클라우드(KEYCLOUD) [31:0]로써 입력되며, 4-바이-4 바이트 멀티플렉서(25)에 의해 분기 및 로테이션된다. 각각이 바이트는 탐색표 또는 게이트의 세트로써 실시될 수 있는 S-박스(270∼274) 중의 하나에 입력된다. 각각의 S-박스는 바이트 결과치를 출력한다. 라운드 상수 XOR 회로(29)는 변환된 워드의 제1 바이트를 수신하고, i/Nk에 대응하는 특정 라운드 상수를 추가한다. 회로(29)는 정확한 라운드 키 상수를 생성하기 위해 인덱스 바이트 i[3:0] 및 키사이즈 [1:0] 표식(예를들어, 128-비트 키에 대해서는 00, 192-비트 키에 대해서는 01, 256-비트 키에 대해서는 10) 모두를 수신한다. 변환된 워드는 멀티플렉서(31)에 의해 재결합된다. Nk=8에 대해, S-박스(270∼274)로부터의 교번적 경로는 라운드 상수 추가 블록을 스킵하고, i mod 8 = 4일 때의 경우에 대한 정확한 비로테이션된 순서(correct un-rotated order)까지 바이트를 복원한다. 이 교번적 경로는 변환된 워드(temp)와 멀티플렉서(32)를 결합시킨다. 비변환된 워드 w[i-1]는 변환 수반 경로(33)를 바이패스한다. 정확한 temp 워드는 멀티플렉서(35)에 의해 선택된다.10 shows a conversion circuit 19 for applying a conversion sequence to the round keyword w [i-1] when appropriate. The word w [i-1] selected by the multiplexer 17 is input as a key cloud (KEYCLOUD) [31: 0], which is branched and rotated by the 4-by-4 byte multiplexer 25. Each byte is input to the one of the S- box (27 0-27 4), which can be embodied as a lookup table or a set of gates. Each S-box prints a byte result. Round constant XOR circuit 29 receives the first byte of the converted word and adds a specific round constant corresponding to i / Nk. Circuit 29 generates index byte i [3: 0] and keysize [1: 0] markers (e.g., 00 for 128-bit keys, 01 for 192-bit keys) to generate the correct round key constants. 10) for a 256-bit key. The converted words are recombined by the multiplexer 31. For Nk = 8, alternate paths from the S-boxes 27 0 to 27 4 skip the round constant addition block and correct unrotated order for the case when i mod 8 = 4 (correct un- rotated order) This alternating path combines the converted word temp and the multiplexer 32. The unconverted word w [i-1] bypasses the conversion accompanying path 33. The correct temp word is selected by the multiplexer 35.

도 11을 참조하면, 키 스케쥴러 회로에 대한 전력 분석 공격을 차단하기 위한 한 가지 대응책이 도시되어 있으며, 여기에서는 상이한 유형의 S-박스 도구의 세트가 사용된다. 예를들어, 그 기능은 각각 상이한 전력 서명을 갖는 SRAM, ROM, 클라우드 회로 및 계산 회로를 사용하여 행해질 수 있다. 4개의 S-박스에 대해서는 4!=24개의 상이한 순열이 존재한다. 바이트가 상이한 박스를 통과하는 순서를 랜덤하게 변경함으로써, 전력 서명은 취할 수 있는 24개의 상이한 형태를 갖는다. 도 11에서, 워드 입력(37)은 상이한 S-박스(410∼413)에 제공되는 바이트로 분기된다. 이들 바이트는 그리고나서 재결합되어 S-박스 변환된 출력 워드(45)를 생성한다. 바이트 선택 멀티플렉서(390∼393)의 세트 및 그들의 보충 세트(430∼43 3)는 선택된 경로 순열 및 워드 복원 역순열을 발생하도록 랜덤 생성기(47) 및 선택 제어 신호 생성기(49)에 의해 제어된다. 랜던 생성기(47)는 생성을 지배하는 일부 선택된 다항식 세트를 갖는 선형 피드백 시프트 레지스터(LFSR)일 수도 있다. 선택 제어 신호 생성기(49)는 도 12에 도시된 표에 따라 작동한다. 랜덤 생성기(47)로부터의 각각 9-비트 범위의 LFSR 출력에 대해, 24개의 가능한 경로 순열 중의 특정의 것이 선택되며, 그에 대응하는 선택 SEL 및 역선택 SEL-1 제어 신호가 출력된다. 다른 경로 순열은 그 대신에 선택 제어 신호 생성기(49)의 함수 테이블을 변경시키거나, 혹은 LFSR 또는 다른 랜덤 생성기(47)의 크기 또는 특정 의사-랜덤 함수를 추가적으로 변경함으로써 실시될 수 있다. 제어 신호 생성기(49)는 탐색표로서 구현될 수도 있을 것이다.Referring to FIG. 11, one countermeasure for blocking a power analysis attack against a key scheduler circuit is shown, where a set of different types of S-box tools are used. For example, the functionality can be done using SRAM, ROM, cloud circuits, and computation circuits, each having a different power signature. There are 4! = 24 different permutations for the four S-boxes. By randomly changing the order in which bytes pass through different boxes, the power signature has 24 different forms that can be taken. In Fig. 11, the word input 37 is branched into bytes provided to different S-boxes 41 0 to 41 3 . These bytes are then recombined to produce an S-box converted output word 45. By the set and their replacement set (43 0-43 3) is a random generator 47 and the selection control signal generator 49 to generate the selected channel word permutation and restoration reverse order of the byte select column multiplexer (39 3 0-39) Controlled. The random generator 47 may be a linear feedback shift register (LFSR) with some selected polynomial set that governs the generation. The selection control signal generator 49 operates according to the table shown in FIG. For each LFSR output in the 9-bit range from the random generator 47, a particular one of the 24 possible path permutations is selected, and corresponding select SEL and deselect SEL- 1 control signals are output. Other path permutations may instead be implemented by changing the function table of the selection control signal generator 49, or by additionally changing the size of the LFSR or other random generator 47 or a particular pseudo-random function. The control signal generator 49 may be implemented as a lookup table.

도 13을 참조하면, 또다른 전력 및 타이밍 분석 대응책은 프리믹스(라운드 0) 연산 동안 전력 잡음을 유입시키는 더미 회로이다. 이 더미 회로는 초기의 XOR 프리믹스 어레이에 전파 지연량을 매칭시키고, 랜덤 생성기의 세트, 바람직하게는 선형 피드백 시프트 레지스터(51, 53)에 의해 생성된 의사-랜덤 잡음을 삽입시킨다. 멀티플렉서 요소(55∼57)는 실제 입력 회로의 대응 요소의 지연량을 매칭시킨다. 워드-폭 XOR 어레이(59)로부터의 출력은 실제 플레인텍스트의 암호 처리에서 사용되지는 않지만, 랜덤 생성기(51, 53)의 입력에 피드백된다. XOR의 출력은 실제 XOR 어레이의 성질(또한 워드-폭)을 매칭시키지만, 랜덤 생성으로 인해 상이한 입력을 갖는다. 랜덤 생성기는 또한 플레인텍스트 입력을 한 워드씩, 더미 신호가 플레인텍스트에 대해 약간의 관계를 가질 수도 있는(그러나, 사이퍼 키에 대해서는 전혀 관계를 갖지 않는) 순서로 수신하여, 더미 신호를 필터링 제거하여 더욱 어렵게 한다.Referring to FIG. 13, another power and timing analysis countermeasure is a dummy circuit that introduces power noise during premix (round 0) operations. This dummy circuit matches the propagation delay amount to the initial XOR premix array and inserts the pseudo-random noise generated by the set of random generators, preferably the linear feedback shift registers 51 and 53. The multiplexer elements 55-57 match the delay amounts of the corresponding elements of the actual input circuit. The output from the word-width XOR array 59 is not used in the encryption of the actual plaintext, but is fed back to the inputs of the random generators 51 and 53. The output of the XOR matches the nature (also word-width) of the actual XOR array, but has a different input due to random generation. The random generator also receives plaintext input, word by word, in an order in which the dummy signal may have some relationship to the plaintext (but not at all relative to the cipher key), filtering out the dummy signal, To make it more difficult.

도 14 및 도 15를 참조하면, 플레인텍스트 블록을 최초의 라운드 이전에 사이퍼 키와 결합시키는 프리믹스 연산은 최초의 암호 라운드에 대한 라운드 키 워드가 생성된다 하더라도 수행될 수 있다. 128-비트 플레인텍스트 블록은 입력 버퍼(71)에 수신된다. 사이퍼 키의 최초의 128-비트는 마찬가지로 입력 버퍼(72)에서 수신된다. 이들 블록 사이즈 유닛은 32-비트 워드로 처리되며, 그리고나서 멀티플렉서(75)를 이용하여 프리믹스 XOR 어레이(73) 내로 시프트된다. 최종 라운드(또는 해독화에 대해서는 최로 라운드)에 대해, 키 믹스 연산은 AES 알고리즘 사양에 따라 프로그램된 스테이트 머신에 의해 제어된 멀티플렉서(77)에 의해 선택된 바대로 스킵된다. AES 라운드 1은 그리고나서 S-박스 대체(79), 열 믹싱 연산(81) 및 라운드 키를 이용한 키 XOR 연산(83)으로 진행한다. 후속의 라운드는 입력(84)에서의 이전의 라운드로부터의 블록의 변환된 워드를 수신한다. 변환된 워드에 관한 키 XOR 연산을 위한 키 스트랜드(key strand)는 전술된 키 스케쥴러로부터 유래된다. 키 스케쥴링 연산은 최초의 라운드 키가 라운드 0 프리믹스 연산(프리라운드) 동안 생성되도록 되어(도 15에서의 프리스텝키_1 내지 프리스텝키_4), 최초의 라운드 m을 포함한 후속 라운드가 대기할 필요없이 그 라운드에 이미 이용 가능한 라운드 키 워드를 갖는다.14 and 15, a premix operation that combines a plaintext block with a cipher key prior to the first round may be performed even if a round keyword for the first cipher round is generated. The 128-bit plaintext block is received in the input buffer 71. The first 128-bits of the cipher key are likewise received in the input buffer 72. These block size units are processed into 32-bit words and then shifted into the premix XOR array 73 using multiplexer 75. For the last round (or the most round for decryption), the key mix operation is skipped as selected by the multiplexer 77 controlled by the state machine programmed according to the AES algorithm specification. AES round 1 then proceeds to S-box replacement 79, thermal mixing operation 81 and key XOR operation 83 using the round key. Subsequent rounds receive the converted words of the block from the previous round at input 84. The key strand for the key XOR operation on the translated word is derived from the key scheduler described above. The key scheduling operation causes the first round key to be generated during the round 0 premix operation (pre-round) (prestep key_1 to prestep key_4 in FIG. 15), so that subsequent rounds including the first round m will wait. There is no round keyword already available for that round without the need.

본 발명에 의하면, AES/Rijndael 라운드 키를 역방향(해독화 방향)으로 효율적으로 생성할 수 있고, 암호화의 앞쪽 단계 동안, 특히 암호의 프리-키-믹스 단계(라운드 0) 동안의 전력 분석 공격에 대한 대응책을 제공할 수 있으며, 또한 암호를 처리하는데 요구된 총 클럭 사이클의 수를 감소시킬 수 있다.According to the present invention, AES / Rijndael round keys can be generated efficiently in the reverse direction (decryption direction), and can be used for power analysis attacks during the first phase of encryption, especially during the pre-key-mix phase (round 0) of encryption. Countermeasures can also be provided, and the total number of clock cycles required to process cryptography can be reduced.

Claims (8)

진보된 암호화 표준(AES)-Rijndael의 블록 사이퍼 알고리즘에 따라 키 확장 루틴을 수행하여 Nk 워드의 소정의 사이퍼 키로부터 Nb(Nr+1) 라운드-키 워드 w[i]의 키 스케쥴을 생성하고(여기서 Nb는 워드 단위의 사이퍼 블록 사이즈, Nr은 사이퍼 알고리즘에 의해 채용된 라운드의 수), 필요시 한 라운드씩 상기 라운드-키 워드 w[i]를 "on-the-fly" 방식으로 생성하도록 구성된 키 생성기에서, 상기 사이퍼 알고리즘의 해독화 연산에 적합하게 역방향으로 라운드-키 워드를 "on-the-fly" 방식으로 생성하는 방법에 있어서,A key expansion routine is performed according to the Advanced Encryption Standard (AES) -Rijndael's block cipher algorithm to generate a key schedule of Nb (Nr + 1) round-keyword w [i] from a given cipher key of Nk words ( Where Nb is the cipher block size in word units, Nr is the number of rounds employed by the cipher algorithm), and if necessary, the round-keyword w [i] in a "on-the-fly" manner. In the key generator, a method for generating a round-keyword in an "on-the-fly" manner in a reverse direction suitable for the decryption operation of the cipher algorithm, Nk 라운드-키 워드의 최종 세트를 저장하기 위한 메모리를 제공하는 단계와;Providing a memory for storing a final set of Nk round-keywords; 암호화 연산 동안 순방향으로 상기 키 확장 루틴을 수행하여 상기 최종 세트의 Nk 라운드-키 워드를 획득하고, 상기 최종 세트의 Nk 라운드-키 워드를 상기 메모리에 저장하는 단계와;Performing the key expansion routine in the forward direction during an encryption operation to obtain the final set of Nk round-keywords, and storing the final set of Nk round-keywords in the memory; 상기 키 생성기를 상기 해독화 연산으로 설정하는 단계와;Setting the key generator to the decryption operation; 저장된 라운드-키 워드 w[i] 및 w[i-1]를 수반하는 XOR 논리 연산에 의해 이전의 라운드-키 워드 w[i-Nk]를 "on-the-fly" 방식으로 구하는 단계를 포함하며, 여기서 w[i-1]은 i mod Nk = 0일 때마다 또한 Nk>6이고 i mod Nk = 4일 때마다 상기 XOR 논리 연산을 적용하기 전에 변환 시퀀스에 의해 먼저 수정되며, 상기 변환 시퀀스는 i mod Nk = 0일 때에는 순환적 바이트 시프트와, S-박스 바이트 대체와, 라운드 상수와의 XOR 연산을 수반하고, Nk>6 이고 i mod Nk = 4일때에는 S-박스 바이트 대체만을 수반하며, 상기 w[i-1]에 대한 변환 시퀀스는 상기 순방향 및 역방향의 키 확장 루틴에서 동일하고, 상기 AES-Rijndael의 블록 사이퍼 알고리즘과 일치하는 것인 라운드-키 워드 생성 방법.Obtaining the previous round-keyword w [i-Nk] in an “on-the-fly” manner by an XOR logic operation involving the stored round-keywords w [i] and w [i-1]. Wherein w [i-1] is first modified by the transform sequence before applying the XOR logical operation every time i mod Nk = 0 and also Nk> 6 and i mod Nk = 4, wherein the transform sequence Entails cyclic byte shifts, S-box byte substitutions, and XOR operations with round constants when i mod Nk = 0, and only S-box byte substitutions when Nk> 6 and i mod Nk = 4. And the transform sequence for w [i-1] is the same in the forward and reverse key extension routines and matches the block cipher algorithm of AES-Rijndael. 제1항에 있어서, 상기 키 생성기는 하드웨어 회로로서 구현되는 것인 라운드-키 워드 생성 방법.2. The method of claim 1, wherein the key generator is implemented as hardware circuitry. 제2항에 있어서, 상기 S-박스 바이트 대체를 수행하기 위해 복수의 S-박스가 제공되며, 각각의 S-박스는 AES-Rijndael용으로 지정된 동일한 기능성을 갖지만, 상이한 전력 소비 서명을 특징으로 하여 구현된 상이한 하드웨어를 가지며, 의사-랜덤 생성기는 상기 키 확장 루틴에서 대체될 다양한 바이트에 대해 상이한 B-박스로의 가변 경로를 선택하는 것인 라운드-키 워드 생성 방법.3. A plurality of S-boxes are provided for performing the S-box byte replacement, each S-box having the same functionality designated for AES-Rijndael, but characterized by different power consumption signatures. With different hardware implemented, the pseudo-random generator selecting a variable path to a different B-box for the various bytes to be replaced in the key expansion routine. 제3항에 있어서, 상기 의사-랜덤 생성기는 n-비트 의사-랜덤 출력을 제공하는 선형 피드백 시프트 레지스터와, 상기 의사-랜덤 출력에 의해 어드레스되고 상기 의사-랜덤 출력에 대응하는 경로 선택 제어 신호를 제공하는 탐색표를 포함하는 것인 라운드-키 워드 생성 방법.4. The pseudo-random generator of claim 3, wherein the pseudo-random generator comprises a linear feedback shift register providing an n-bit pseudo-random output and a path selection control signal addressed by the pseudo-random output and corresponding to the pseudo-random output. Round-keyword generation method comprising a search table provided. 암호텍스트를 생성하기 위해 암호 암호화 라운드의 시퀀스를 개시하기 전에 암호 키와 플레인텍스트를 혼합하는 암호 블록 알고리듬의 초기 프리-믹스 XOR 연산을 수행하기 위한 프리-믹스 서브회로를 갖는 하드웨어 블록 암호 회로에서, 차별적인 전력 분석 대응책으로써 사용하기 위한 프리-믹스 더미 회로에 있어서,In a hardware block cryptographic circuit having a pre-mix subcircuit for performing an initial pre-mix XOR operation of a cryptographic block algorithm that mixes cryptographic keys and plaintext prior to initiating a sequence of cryptographic encryption rounds to generate cryptographic text, In a pre-mix dummy circuit for use as a differential power analysis countermeasure, 상기 초기 프리-믹스 XOR 연산 동안 작동하고, 상기 프리-믹스 서브회로의 전파 지연량과 실질적으로 부합하는 전파 지연량에 의해 특징지워지며, 의사-랜덤 생성기 및 XOR 어레이를 포함하며, 상기 XOR 어레이가 의사-랜덤 생성기의 출력에 접속된 제1 입력과, 상기 프리-믹스 서브회로와 동일한 암호 키를 수신하도록 접속된 제2 입력과, 의사-랜덤 생성기에 피드백되는 출력을 가지며, 이에 의해 상기 더미 회로는 초기의 프리-믹스 XOR 연산 동안 하드웨어 블록 암호 회로의 모든 XOR 게이트 스위칭의 전체적인 전력 신호내에 의사-랜덤 잡음을 삽입하는 것을 특징으로 하는 프리-믹스 더미 회로.Operating during the initial pre-mix XOR operation, characterized by a propagation delay amount that substantially matches the propagation delay amount of the pre-mix subcircuit, and comprising a pseudo-random generator and an XOR array; A dummy circuit having a first input connected to an output of a pseudo-random generator, a second input connected to receive the same encryption key as the pre-mix subcircuit, and an output fed back to the pseudo-random generator. Pre-mix dummy circuitry inserts pseudo-random noise into the overall power signal of all XOR gate switching of the hardware block cryptographic circuit during the initial pre-mix XOR operation. 제5항에 있어서, 의사-랜덤 생성기는 선형 피드백 시프트 레지스터의 세트를 포함하는 것을 특징으로 하는 프리-믹스 더미 회로.6. The pre-mix dummy circuit of claim 5 wherein the pseudo-random generator comprises a set of linear feedback shift registers. 제5항에 있어서, 더미 회로의 의사-랜덤 생성기 및 XOR 어레이는 프리-믹스 서브회로의 워드폭과 동일한 비트의 워드폭을 갖는 것을 특징으로 하는 프리-믹스 더미 회로.6. The pre-mix dummy circuit of claim 5, wherein the pseudo-random generator and the XOR array of the dummy circuit have a word width of a bit equal to the word width of the pre-mix subcircuit. 사이퍼 암호화 라운드의 시퀀스를 개시하여 사이퍼텍스트를 생성하기 전에 사이퍼 키와 플레인텍스트를 혼합하는 초기 프리-믹스 XOR 연산을 갖는 사이퍼 알고리즘을 수행하도록 구성된 하드웨어 블록 사이퍼 회로에서, 상기 프리-믹스 연산을 최초의 사이퍼 암호화 라운드와 결합시키는 방법에 있어서,In a hardware block cipher circuit configured to perform a cipher algorithm with an initial pre-mix XOR operation that mixes a cipher key and a plaintext before initiating a sequence of cipher encryption rounds to generate a ciphertext, the pre-mix operation is performed first. In the method of combining with the cipher encryption round, 플레인텍스트가 로딩되는 동안에 상기 사이퍼 키를 사전 처리하여 상기 최초의 사이퍼 암호화 라운드를 위한 라운드-키 워드를 생성하는 단계로서, 플레인텍스트가 로딩되는 동안에 상기 프리-믹스 XOR 연산도 일어나는 것인 단계와;Preprocessing the cipher key while plaintext is loaded to generate a round-keyword for the first cipher encryption round, wherein the pre-mix XOR operation also occurs while plaintext is loaded; 상기 사전 생성된 최초의 라운드-키 워드를 사용하여 상기 로딩되어 프리-믹스된 플레인텍스트에 대해 상기 최초의 사이퍼 암호화 라운드를 수행하는 단계Performing the first cipher encryption round on the loaded and pre-mixed plaintext using the pre-generated first round-keyword 를 포함하는 결합 방법.Joining method comprising a.
KR10-2004-7019262A 2002-05-23 2003-05-23 Advanced encryption standard(aes) hardware cryptographic engine KR20050019086A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2004-7019262A KR20050019086A (en) 2002-05-23 2003-05-23 Advanced encryption standard(aes) hardware cryptographic engine

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60/383,252 2002-05-23
KR10-2004-7019262A KR20050019086A (en) 2002-05-23 2003-05-23 Advanced encryption standard(aes) hardware cryptographic engine

Publications (1)

Publication Number Publication Date
KR20050019086A true KR20050019086A (en) 2005-02-28

Family

ID=41783902

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7019262A KR20050019086A (en) 2002-05-23 2003-05-23 Advanced encryption standard(aes) hardware cryptographic engine

Country Status (1)

Country Link
KR (1) KR20050019086A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938268A (en) * 2021-10-15 2022-01-14 湖南麒麟信安科技股份有限公司 Hardware control system of block cipher algorithm

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938268A (en) * 2021-10-15 2022-01-14 湖南麒麟信安科技股份有限公司 Hardware control system of block cipher algorithm
CN113938268B (en) * 2021-10-15 2023-07-28 湖南麒麟信安科技股份有限公司 Hardware control system of block cipher algorithm

Similar Documents

Publication Publication Date Title
US7295671B2 (en) Advanced encryption standard (AES) hardware cryptographic engine
McLoone et al. High performance single-chip FPGA Rijndael algorithm implementations
US7092525B2 (en) Cryptographic system with enhanced encryption function and cipher key for data encryption standard
US6829355B2 (en) Device for and method of one-way cryptographic hashing
US10320554B1 (en) Differential power analysis resistant encryption and decryption functions
EP1246389B1 (en) Apparatus for selectably encrypting or decrypting data
US7639797B2 (en) Apparatus and method of performing AES Rijndael algorithm
US11546135B2 (en) Key sequence generation for cryptographic operations
US20090080647A1 (en) Method and System for Usage of Block Cipher Encryption
US20060177052A1 (en) S-box encryption in block cipher implementations
US8000471B2 (en) Robust cipher design
US20040247117A1 (en) Device and method for encrypting and decrypting a block of data
US10237066B1 (en) Multi-channel encryption and authentication
Masoodi et al. Symmetric Algorithms I
US6931127B2 (en) Encryption device using data encryption standard algorithm
JP4673857B2 (en) Method for generating pseudo-random sequences
Murtaza et al. Fortification of aes with dynamic mix-column transformation
KR100710455B1 (en) Apparatus for rijndael block cipher and encryption/decryption method thereof
EP1629626B1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
Abdulwahed Chaos-Based Advanced Encryption Standard
Soumya et al. Design and implementation of Rijndael encryption algorithm based on FPGA
KR20050019086A (en) Advanced encryption standard(aes) hardware cryptographic engine
WO2009104827A1 (en) Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box
Gajbhiye et al. FPGA IMPLEMENTATION OF ENCRYPTION AND DECRYPTION RIJINDAEL’S ALGORITHM BASED ON AES
Toz et al. Block Ciphers

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application