KR101135058B1 - Encryption method and encryption device using differential fault analysis in round key generation of Data Encryption Standard - Google Patents
Encryption method and encryption device using differential fault analysis in round key generation of Data Encryption Standard Download PDFInfo
- Publication number
- KR101135058B1 KR101135058B1 KR1020100024957A KR20100024957A KR101135058B1 KR 101135058 B1 KR101135058 B1 KR 101135058B1 KR 1020100024957 A KR1020100024957 A KR 1020100024957A KR 20100024957 A KR20100024957 A KR 20100024957A KR 101135058 B1 KR101135058 B1 KR 101135058B1
- Authority
- KR
- South Korea
- Prior art keywords
- bit
- key
- round
- bits
- unit
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
데이터를 64비트로 나눈 블록을 16라운드 페이스텔(feistel)형 공통키 블록 암호 처리를 실행하는 암호 처리 방법을 개시한다. 상기 방법은 64비트의 평문에 초기 치환을 수행하는 단계, 마스터 키를 패리티 드롭하여 생성된 암호화 키(cipher key)를 비트 왼쪽 순환(left shift) 및 압축치환(compression permutation)을 거쳐 제1 내지 제15 라운드 키를 생성하고 상기 비트 왼쪽 순환, 레지스터의 오류 주입 및 압축치환을 통해 제16 라운드 키를 생성하는 단계, 상기 초기 치환이 수행된 64비트의 평문을 두 개의 32비트로 나누어 왼쪽 레지스터 및 오른쪽 레지스터에 저장한 후, 제1 내지 제16 라운드를 통해 상기 제1 내지 제16 라운드 키를 이용한 암호화 연산을 통해 수행하는 단계, 및 상기 제1 내지 제16 라운드의 암호화 연산을 통해 생성된 비트들에 대해 상기 초기 치환의 역과정을 수행하는 단계를 포함한다. 상기 방법은 16라운드 키 생성과정에서 오류를 주입하여 오류 주입 가능 범위를 넓히고 적은 오류를 주입하여 마스터 키를 획득할 수 있다.Disclosed is a cryptographic processing method for executing a 16-round Fiestel type common key block cryptographic process by dividing a block into 64 bits of data. The method comprises performing an initial substitution on a 64-bit plain text, and performing first and second bit shifts on a cipher key generated by parity drop of a master key through bit left shift and compression permutation. Generating a sixteenth round key and generating a sixteenth round key through the bit left rotation, error injection and compression of the register, and dividing the 64-bit plaintext in which the initial substitution is performed into two 32-bit left and right registers. After storing in the first to sixteenth rounds, performing the encryption operation using the first to sixteenth round keys, and the bits generated through the encryption operations of the first to sixteenth rounds. Performing the reverse process of said initial substitution. The method may inject an error in the process of generating a 16-round key to widen the error injection possible range and obtain a master key by injecting fewer errors.
Description
본 발명은 암호 처리 방법 및 암호 처리 장치에 관한 것으로, 특히 데이터 암호화 표준의 라운드 키 생성과정에서 차분오류주입공격을 이용한 암호 처리 방법 및 암호 처리 장치에 관한 것이다.The present invention relates to a cryptographic processing method and a cryptographic processing device, and more particularly, to a cryptographic processing method and a cryptographic processing device using differential error injection attack in the round key generation process of the data encryption standard.
네트워크 통신, 전자 상거래의 발전에 따라 시큐리티 확보가 점점 중요해지고 있다. 시큐리티 확보의 방법 중 하나가 암호 기술이며, 다양한 암호화 방법을 이용한 통신이 이루어지고 있다. With the development of network communication and electronic commerce, securing security is becoming more and more important. One of security methods is encryption technology, and communication using various encryption methods is performed.
암호화 방법은 크게 공개키 암호 방식 및 공통키 암호 방식으로 분류된다. 공개키 암호 방식은 암호화키와 복호키를 상이한 키로 설정하는 암호 방식이고 공통키 암호 방식은 암호화키와 복호키를 공통의 키로 설정하는 암호 방식이다. 공통키 암호 방식에도 다양한 알고리즘이 있지만, 그 중 하나는 공통키를 베이스로 하여 복수개의 키를 생성하고 생성한 복수개의 키를 사용하여 블록 단위(64비트, 128비트 등)의 데이터 변환 처리를 반복 실행하는 방식으로 대표적인 것이 공통키 블록 암호 방식이다. 공통키 블록 암호 방식의 대표적인 것으로 미국 표준 암호인 데이터 암호화 표준(DES, Data Encryption Standard)이 다양한 분야에서 널리 이용되고 있다.Encryption methods are largely classified into public key cryptography and common key cryptography. Public key cryptography is an encryption method for setting an encryption key and a decryption key to different keys, and common key cryptography is an encryption method for setting an encryption key and a decryption key as a common key. Although there are various algorithms in common key cryptography, one of them generates a plurality of keys based on the common key and repeats data conversion processing in block units (64 bits, 128 bits, etc.) using the generated keys. One common method is to execute common key block cryptography. Common key block cryptography is a typical US standard encryption, the Data Encryption Standard (DES) is widely used in various fields.
암호 알고리즘에 대한 다양한 부채널 공격방법이 소개되었는데, TA(시간공격, Timing Attack), SPA(단순전력분석, Simple Analysis), DPA(차분전력분석, Differential Power Analysis), EMA(전자파 분석, Electromagnetic Analysis)등의 수동적인 공격방법과 FA(오류주입공격, Fault Analysis) 및 DFA(차분오류주입공격, Differential Fault Analysis)등의 능동적인 공격방법에 대한 연구가 이루어지고 있다. 이 중 차분오류주입공격(DFA)은 블록 암호 알고리즘 또는 스트림 암호 알고리즘의 데이터 흐름에서 옳은 암호문과 오류를 주입한 암호문의 차분을 이용하여 마스터키를 구하는 방법이다. Various subchannel attacks on cryptographic algorithms were introduced: TA (timing attack), SPA (simple analysis), DPA (differential power analysis), EMA (electromagnetic analysis) And passive attack methods, and active attack methods such as FA (Fault Injection Attack, Fault Analysis) and DFA (Differential Error Injection Attack, Differential Fault Analysis). The differential error injection attack (DFA) is a method of obtaining a master key using a difference between a correct cipher text and an injecting cipher text in a data flow of a block cipher algorithm or a stream cipher algorithm.
데이터 암호화 표준(DES)에 대한 차분오류주입공격(DFA)은 13라운드 왼쪽 스테이트에 오류를 주입하여 마스터 키를 복구하는 것으로 제안되었었다. 그 후 이를 일반화하고 확장하여 중간라운드(9-12라운드)의 왼쪽 스테이트에 오류를 주입하여 마스터 키를 얻을 수 있는 방법이 제안되었는데 이는 암호화 과정과 복호화 과정에서 전 라운드에 걸쳐 차분오류주입공격(DFA)방법을 적용할 수 있음을 의미한다. 또한, 일반적인 암호화 과정에서의 차분오류주입공격(DFA)이 아닌 키 생성과정에서의 차분오류주입공격(DFA)이 제안되기도 하였다. 그러나, 다양하게 제안된 이러한 방법들은 주입되는 오류의 갯수가 지나치게 커서 복잡도가 증가하는 문제점이 있다. Differential Error Injection Attack (DFA) against Data Encryption Standard (DES) has been proposed to recover the master key by injecting an error into the 13th round left state. After that, a generalized and extended method was introduced to inject an error into the left state of the middle round (rounds 9-12) to obtain a master key, which is a differential error injection attack (DFA) throughout the round during encryption and decryption. This means that the method can be applied. In addition, a differential error injection attack (DFA) in the key generation process has been proposed, not a differential error injection attack (DFA) in the general encryption process. However, these variously proposed methods have a problem in that complexity increases because the number of injected errors is too large.
삭제delete
본 발명이 이루고자 하는 기술적 과제는 데이터 암호화 표준(DES, Data Encryption Standard)의 문제점을 해결하기 위한 것으로, 기존의 데이터 암호화 표준(DES)의 문제점을 보완하여 데이터 암호화 표준(DES)의 키 생성과정에 오류를 주입하여 오류의 갯수가 향상된 암호 처리 방법 및 암호 처리 장치를 제공하는 데 있다.The technical problem to be solved by the present invention is to solve the problem of the Data Encryption Standard (DES), to compensate for the problem of the existing Data Encryption Standard (DES) in the key generation process of the Data Encryption Standard (DES) The present invention provides an encryption processing method and an encryption processing apparatus in which the number of errors is improved by injecting an error.
본 발명의 일 양태에 따르면 데이터를 64비트로 나눈 블록을 16라운드 페이스텔(feistel)형 공통키 블록 암호 처리를 실행하는 암호 처리 방법에 있어서, 64비트의 평문에 초기 치환을 수행하는 단계, 마스터 키를 패리티 드롭하여 생성된 암호화 키(cipher key)를 비트 왼쪽 순환(left shift) 및 압축치환(compression permutation)을 거쳐 제1 내지 제15 라운드 키를 생성하고 상기 비트 왼쪽 순환, 레지스터의 오류 주입 및 압축치환을 통해 제16 라운드 키를 생성하는 단계, 상기 초기 치환이 수행된 64비트의 평문을 두 개의 32비트로 나누어 왼쪽 레지스터 및 오른쪽 레지스터에 저장한 후, 제1 내지 제16 라운드를 통해 상기 제1 내지 제16 라운드 키를 이용한 암호화 연산을 통해 수행하는 단계, 및 상기 제1 내지 제16 라운드의 암호화 연산을 통해 생성된 비트들에 대해 상기 초기 치환의 역과정을 수행하는 단계를 포함하는 암호 처리 방법을 제공한다.According to an aspect of the present invention, there is provided a cryptographic processing method for executing a 16-round Fiestel-type common key block cryptographic processing of a block in which data is divided into 64-bit blocks. To generate the first to fifteenth round keys through bit left shifting and compression permutation of the cipher key generated by parity drop. Generating a sixteenth round key through substitution; dividing the 64-bit plaintext in which the initial substitution is performed into two 32-bit bits and storing them in a left register and a right register, and then performing the first through sixteenth rounds. Performing the encryption operation using the sixteenth round key, and performing the operation on bits generated through the encryption operations of the first to sixteenth rounds. It provides the encryption processing method of performing a reverse process of the group substitution.
상기 제1 내지 제15 라운드 키 및 제16 라운드키를 생성하는 단계는 상기 암호화 키(cipher key)를 두 블럭으로 나누어 제1 내지 제15 라운드를 통해 1 비트 또는 2 비트 왼쪽 순환(left shift)을 하고 압축치환(compression permutation)을 거쳐 제1 내지 제15 라운드 키를 생성하고 상기 제1 내지 제15 라운드를 통해 1 비트 또는 2 비트 왼쪽 순환(left shift)을 한 암호화 키(cipher key)를 1 비트 왼쪽 순환(left shift)을 하고 왼쪽 또는 오른쪽 레지스터에 오류를 주입한 후 압축치환을 거쳐 제16 라운드 키를 생성할 수 있다.Generating the first to fifteenth round keys and the sixteenth round key may be performed by dividing the cipher key into two blocks and performing a one-bit or two-bit left shift through the first to fifteenth rounds. And generate a first to fifteenth round key through compression permutation, and use a cipher key of one bit or two bits left shifted through the first to fifteenth rounds. A 16th round key may be generated by performing a left shift, injecting an error into a left or right register, and performing compression.
상기 제1 내지 제15 라운드 키 및 제16 라운드키를 생성하는 단계에서 제1, 제2, 제9 및 제16라운드에서는 1 비트 왼쪽 순환(left shift)을 수행할 수 있다.In the generating of the first to fifteenth round keys and the sixteenth round key, one-bit left shift may be performed in the first, second, ninth, and sixteenth rounds.
상기 제1 내지 제15 라운드 키 및 제16 라운드 키는 48 비트일 수 있다.The first to fifteenth round keys and the sixteenth round key may be 48 bits.
상기 제16 라운드 키는 왼쪽 또는 오른쪽 24비트에 오류가 주입된 값이고 나머지 24비트는 오류가 주입되지 않은 라운드 키값을 가질 수 있다.The sixteenth round key may have a value in which an error is injected into the left or right 24 bits and the remaining 24 bits may have a round key value in which no error is injected.
본 발명의 다른 양태에 따르면 상기 암호 처리 방법을 수행하기 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램이 기록된 기록매체를 제공한다.According to another aspect of the present invention, a program of instructions that can be executed by a digital processing apparatus is implemented to perform the encryption processing method, and provides a recording medium having a program recorded thereon that can be read by the digital processing apparatus. .
본 발명의 또 다른 양태에 따르면 데이터를 64비트로 나눈 블록을 16라운드 페이스텔(feistel)형 공통키 블록 암호 처리를 실행하는 암호 처리 장치에 있어서, 암호 처리의 개시 및 종료, 데이터의 송수신을 제어하고 프로그램을 실행하는 중앙처리부, 상기 중앙처리부가 실행하는 프로그램, 연산 파라미터로서의 고정 데이터를 저장하는 메모리, 및 마스터 키를 패리티 드롭하여 생성된 암호화 키(cipher key)를 비트 왼쪽 순환(left shift) 및 압축치환(compression permutation)을 거쳐 제1 내지 제15 라운드 키를 생성하고 상기 비트 왼쪽 순환, 레지스터의 오류 주입 및 압축치환을 통해 제16 라운드 키를 생성하여 상기 데이터를 64비트로 나눈 블록에 상기 생성된 제1 내지 제16 라운드 키를 이용하여 암호 처리를 수행하는 암호 처리부를 포함하는 암호 처리 장치를 제공한다.According to still another aspect of the present invention, there is provided a cryptographic processing apparatus for performing a 16-round Fiestel type common key block cryptographic processing of a block in which data is divided into 64-bit blocks. Left shift and compression of a central processing unit for executing a program, a program executed by the central processing unit, a memory for storing fixed data as operation parameters, and a cipher key generated by parity drop of a master key. The first to the fifteenth round keys are generated through compression permutation and the sixteenth round key is generated through the bit left rotation, error injection of the register, and compression substitution to generate the generated first block in a block divided into 64 bits. It provides a cryptographic processing apparatus comprising a cryptographic processing unit for performing cryptographic processing using the first to sixteenth round key. The.
상기 암호 처리부는 상기 암호화 키(cipher key)를 두 블럭으로 나누어 제1 내지 제15 라운드를 통해 1 비트 또는 2 비트 왼쪽 순환(left shift)을 하고 압축치환(compression permutation)을 거쳐 제1 내지 제15 라운드 키를 생성하고 상기 제1 내지 제15 라운드를 통해 1 비트 또는 2 비트 왼쪽 순환(left shift)을 한 암호화 키(cipher key)를 1 비트 왼쪽 순환(left shift)을 하고 왼쪽 또는 오른쪽 레지스터에 오류를 주입한 후 압축치환을 거쳐 제16 라운드 키를 생성할 수 있다.The encryption processing unit divides the cipher key into two blocks and performs one or two bit left shift through the first to fifteenth rounds, and then through compression permutation to perform the first to fifteenth. Generates a round key and performs a 1-bit left shift on a cipher key that has undergone a 1-bit or 2-bit left shift through the first through 15th rounds and an error in a left or right register. After injection of the 16 th round key, compression may be generated.
상기 암호 처리부는 제1 내지 제16 라운드 키를 생성하는 라운드 키 생성부를 포함하며, 상기 라운드 키 생성부는 64비트 마스터 키에서 패리티 드롭을 수행하여 56비트의 암호화 키를 생성하는 패러티 드롭부, 상기 56비트의 암호화 키를 28 비트의 두 블럭로 나누어 각 블럭의 1비트 또는 2 비트 왼쪽 순환(left shift)을 수행하는 제1 쉬프트부 및 제2 쉬프트부,및 상기 왼쪽 순환이 수행된 비트들의 압축 치환을 수행하는 압축 치환부를 포함할 수 있다.The encryption processing unit includes a round key generation unit for generating first to sixteenth round keys, wherein the round key generation unit performs a parity drop on a 64-bit master key to generate a 56-bit encryption key; A first shift portion and a second shift portion for dividing an encryption key of bits into two blocks of 28 bits and performing a left or right shift of one or two bits of each block, and compression replacement of the bits on which the left cycle is performed It may include a compression substitution to perform.
상기 제1 쉬프트부 및 제2 쉬프트부는 제1, 제2, 제9 및 제16라운드에서는 1 비트 왼쪽 순환(left shift)을 수행할 수 있다.The first shift unit and the second shift unit may perform 1-bit left shift in the first, second, ninth, and sixteenth rounds.
상기 암호 처리부는 상기 데이터를 64비트로 나눈 블록에 대해 초기 치환을 수행하는 초기치환부, 마스터 키를 제1 내지 제15 라운드를 통해 1 비트 또는 2 비트 왼쪽 순환(left shift)을 하고 압축치환(compression permutation)을 거쳐 제1 내지 제15 라운드 키를 생성하고 상기 제1 내지 제15 라운드를 통해 1 비트 또는 2 비트 왼쪽 순환(left shift)을 한 암호화 키(cipher key)를 1 비트 왼쪽 순환(left shift)을 하고 왼쪽 또는 오른쪽 레지스터에 오류를 주입한 후 압축치환을 거쳐 제16 라운드 키를 생성하여 상기 초기 치환이 수행된 데이터에 상기 생성된 제1 내지 제16 라운드 키를 이용하여 암호 처리를 수행하는 기본연산부, 및 상기 제1 내지 제16 라운드를 통해 암호 처리가 수행된 비트들에 대해 상기 초기 치환의 역과정을 통해 암호문을 생성하는 역초기치환부를 포함할 수 있다.The encryption processing unit performs an initial substitution for the block that divides the data into 64 bits, and performs a left shift of 1 bit or 2 bits through the first to fifteenth rounds of the master key, and compression permutation. Generate a first through fifteenth round key and perform a one-bit or two-bit left shift through the first through fifteenth rounds. After the error is injected into the left or right register, the 16th round key is generated through compression substitution to perform encryption processing using the generated first to sixteenth round keys to the data on which the initial substitution is performed. And an inverse initial replacement unit for generating a cipher text through a reverse process of the initial substitution for bits in which encryption processing is performed through the first to sixteenth rounds. There.
상기 기본연산부는 상기 초기 치환이 수행된 데이터를 두 개의 32비트의 블럭으로 나누어 왼쪽레지스터(Li)와 오른쪽레지스터(Ri)에 저장한 후, 상기 생성된 제1 내지 제16 라운드 키를 이용하여 암호 처리를 수행하는 F-함수부를 포함할 수 있다.The basic operation unit is used and save the data that the initial substituted performed on both the left divided into blocks of 32-bit registers (L i) and right register (R i), the generated first to the 16th Round Key It may include an F-function unit for performing the encryption process.
상기 F-함수부는 상기 32비트의 블럭을 48비트의 데이터로 확장 치환하는 확장 치환부, 상기 48비트의 데이터에 상기 라운드 키 생성부로부터 생성된 상기 제1 내지 제16 라운드 키의 배타적 논리합 연산을 수행하는 배타적 논리합 연산부, 상기 배타적 논리합 연산이 수행된 48비트의 데이터를 32비트의 데이터로 대치 치환하는 S-box 치환부, 및 상기 대치 치환된 32비트의 데이터를 복사 치환하는 P-box 치환부를 포함할 수 있다.The F-function unit expands and replaces the 32-bit block with 48-bit data, and performs an exclusive OR operation of the first to sixteenth round keys generated from the round key generator in the 48-bit data. An exclusive OR operation unit for performing the operation, an S-box replacement unit for replacing and replacing the 48-bit data on which the exclusive OR operation is performed with 32-bit data, and a P-box replacement unit for copy-substituting the substituted 32-bit data. It may include.
상기 S-box 치환부는 8개의 S-box를 포함하고, 상기 S-box의 입력값 중 1 내지 4번째 또는 5 내지 8번째 S-box에 오류가 주입될 수 있다.The S-box replacement part includes eight S-boxes, and an error may be injected into the first to fourth or fifth to eighth S-boxes of the input values of the S-box.
상기 S-box의 출력값 중 1 내지 16번째 또는 17 내지 32번째 비트에 오류가 주입될 수 있다.An error may be injected into
상기 F-함수부의 출력값의 1, 2, 6, 9, 10, 13, 16 ,17, 18, 20, 23, 24, 26, 28, 30, 31번째 또는 3, 4, 5, 7, 8, 11, 12, 14, 15, 19, 21, 22, 25, 27, 32번째 비트에 오류가 주입될 수 있다.1, 2, 6, 9, 10, 13, 16, 17, 18, 20, 23, 24, 26, 28, 30, 31st or 3, 4, 5, 7, 8, of the output value of the F-function part Errors may be injected into the 11th, 12th, 14th, 15th, 19th, 21st, 22nd, 25th, 27th, and 32nd bits.
본 실시예에 따른 암호 처리 방법은 16라운드 키 생성과정에서 오류를 주입하여 오류 주입 가능 범위를 넓히고 적은 오류를 주입하여 마스터 키를 획득할 수 있다.The encryption processing method according to the present embodiment may inject an error in the process of generating a 16-round key to widen an error injection possible range and obtain a master key by injecting fewer errors.
도 1은 데이터 암호화 표준(DES, Data Encryption Standard)의 암호화 모듈을 설명하기 위한 블럭도이다.
도 2는 F-함수부의 구성을 나타내는 블럭도이다.
도 3은 본 실시예에 따른 라운드 키 생성부를 나타내는 블럭도이다.
도 4는 본 실시예에 따른 오류가 주입된 16라운드 키를 통한 암호 처리 방법을 설명하기 위한 개념도이다.
도 5는 본 실시예에 따른 오류가 주입된 16라운드 키를 통한 암호 처리를 통해 마스터 키를 획득하는 방법을 설명하는 순서도이다.
도 6은 본 실시예에 따라 암호 처리를 수행하는 암호 처리 장치를 나타내는 블록도이다.1 is a block diagram illustrating an encryption module of a data encryption standard (DES).
2 is a block diagram showing a configuration of an F-function unit.
3 is a block diagram showing a round key generation unit according to the present embodiment.
4 is a conceptual diagram illustrating a method of processing an encryption through a 16-round key injected with an error according to the present embodiment.
5 is a flowchart illustrating a method of acquiring a master key through encryption processing through an error-injected 16 round key according to the present embodiment.
6 is a block diagram showing an encryption processing apparatus that performs encryption processing according to the present embodiment.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated and described in the drawings. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.
제2, 제1 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms including ordinal numbers, such as second and first, may be used to describe various components, but the components are not limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the second component may be referred to as the first component, and similarly, the first component may also be referred to as the second component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is said to be "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that another component may exist in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
이하, 첨부된 도면을 참조하여 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings, and the same or corresponding components will be given the same reference numerals regardless of the reference numerals, and redundant description thereof will be omitted.
본 실시예에서, a b 는 a와 b의 배타적 논리합, <a>는 a의 집합, P는 평문(64비트), C는 옳은 암호문(64비트), CL *는 16라운드 키 생성단계에서 왼쪽 레지스터에 오류가 주입된 암호문, CR *는 16라운드 키 생성단계에서 오른쪽 레지스터에 오류가 주입된 암호문, Li는 i번째 라운드의 왼쪽 32비트 출력값, Ri는 i번째 라운드의 오른쪽 32비트 출력값, Li *는 오류가 주입된 i번째 라운드의 왼쪽 32비트 출력값, Ri *는 i번째 라운드의 오른쪽 32비트 출력값, K는 마스터 키(64비트) 및 RKi는 i번째 라운드 키(48비트)를 나타낸다. In this embodiment, a b is an exclusive OR of a and b, <a> is a set of a, P is plaintext (64-bit), C is correct ciphertext (64-bit), and C L * is an error in the left register during 16-round key generation Ciphertext, C R * is the ciphertext injecting an error into the right register during the 16 round key generation phase, L i is the left 32-bit output of the i-th round, R i is the right 32-bit output of the i-th round, and L i * is The left 32-bit output value of the i-th round of the error injected, R i * is the right 32-bit output value of the i-th round, K is the master key (64-bit) and RK i is the i-th round key (48-bit).
도 1은 데이터 암호화 표준(DES, Data Encryption Standard)의 암호화 모듈을 설명하기 위한 블럭도이다.1 is a block diagram illustrating an encryption module of a data encryption standard (DES).
도 1을 참조하면, 암호화 모듈(10)은 초기치환부(100), 기본연산부(200) 및 역초기치환부(300)를 포함한다. 초기치환부(100)는 입력되는 64비트의 평문(P, plain Text)블럭에 대해 초기 치환(IP, Initial permutation)을 수행한다. 기본연산부(200)는 초기 치환이 수행된 64비트의 블럭을 두 개의 32비트의 블럭으로 나누어 왼쪽 레지스터(Li)와 오른쪽 레지스터(Ri)에 저장한 후, F-함수로 수행되는 16라운드의 곱 변형(Product Transformation)과 왼쪽 레지스터(Li)와 오른쪽 레지스터(Ri)를 매 라운드마다 교환하는 16라운드의 블럭 변형(Block Transformation)을 수행한다. 여기서, 곱 변형은 오른쪽 레지스터(Ri)에 저장된 32비트의 블럭을 라운드 키 생성부(도시되지 않음)에 의해서 생성된 라운드 키(RKi)와 함께 입력시켜서 암호화 연산을 수행하는 F-함수부(210) 및 F-함수부(210)의 결과를 왼쪽 레지스터(Li)에 저장된 32비트의 블럭과 함께 배타적 논리합하는 제1 배타적 논리합 연산부(220)로 구성되어 있다. 제1 배타적 논리합 연산부(220)의 32비트의 데이터는 다음 라운드의 오른쪽 레지스터(Ri +1)에 저장되고 오른쪽 레지스터(Ri)에 저장된 32비트의 데이터는 다음 라운드의 왼쪽 레지스터(Li +1)에 교환되어 저장됨으로 블럭 변형이 수행된다. 암호화 모듈(10)에서는 이러한 1라운드의 연산이 반복되어 16라운드가 수행된다. 역초기치환부(300)는 16라운드에 걸친 변형이 종료된 후 생성된 비트들을 역초기치환(IP-1)을 거쳐서 암호화된 암호문(C, Cipher Text)를 출력한다.Referring to FIG. 1, the
도 2는 F-함수부의 구성을 나타내는 블럭도이다.2 is a block diagram showing a configuration of an F-function unit.
도 2를 참조하면, F-함수부(210)는 F-함수 연산을 수행하며, 확장 치환부(211), 제2 배타적 논리합 연산부(212), S-box 치환부(213) 및 P-box 치환부(214)를 포함한다. 확장 치환부(211)는 32비트의 텍스트 블럭을 저장하고 있는 레지스터(RB)로부터 32비트의 데이터를 입력받아 48비트의 데이터로 확장 치환한다. 제2 배타적 논리합 연산부(212)는 확장 치환부(211)로부터 출력된 48비트의 데이터를 입력받고 라운드 키 생성부(도시되지 않음)로부터 라운드 키(RKi)를 입력받아 배타적 논리합 연산을 수행한다. Referring to FIG. 2, the F-
S-box 치환부(213)는 8개의 S-box를 포함하고, 제2 배타적 논리합 연산부(212)로부터 출력된 48비트의 데이터를 32비트의 데이터로 대치 치환한다. P-box 치환부(214)는 S-box 치환부(213)로부터 출력된 32비트의 데이터를 복사 치환하여 32비트의 데이터를 출력한다.The S-
도 3은 본 실시예에 따른 라운드 키 생성부를 나타내는 블럭도이다.3 is a block diagram showing a round key generation unit according to the present embodiment.
도 3을 참조하면, 데이터 암호화 표준(DES, Data Encryption Standard)의 마스터 키는 56비트의 키와 패리티 체크 비트인 8비트를 포함하여 64비트이다. 마스터 키 64비트를 패러티 드롭부(20)에서 패리티 드롭하여 56비트의 암호화 키를 생성하여 출력한다. 56비트 암호화 키는 28비트의 두 블럭로 나누어 제1 쉬프트부(31) 및 제2 쉬프트부(33)에 의해 1비트(1, 2, 9, 16라운드) 또는 2비트 왼쪽 순환(left shift)을 하여 압축 치환부(35)에서 압축 치환과정을 거쳐 48비트의 라운드 키(RKi)를 생성하여 출력한다. Referring to FIG. 3, the master key of the Data Encryption Standard (DES) is 64 bits including a 56-bit key and 8 bits of parity check bits. The
이러한 본 실시예에 따른 라운드 키 생성부에서는 16라운드의 압축 치환부(35)에 입력값이 저장되어 있는 28비트의 왼쪽 레지스터 또는 오른쪽 레지스터 중 하나의 레지스터에 오류를 주입한다. 압축 치환부(35)에서 압축 치환과정을 거쳐 생성되어 출력된 16라운드 키(RK16)는 왼쪽 또는 오른쪽 절반 24비트에 오류가 주입된 값이고 나머지 절반 24비트는 오류가 주입되지 않은 본래의 라운드 키의 값을 가진다. 따라서, 본 실시예에 따른 16라운드 키(RK16)가 입력된 F-함수부(210)의 8개의 S-box 중 1 내지 4번째 또는 5 내지 8번째 S-box에 오류가 주입된 값이 입력된다. S-box의 출력값 중 1 내지 16번째 또는 17 내지 32번째 비트에 오류가 주입되고 F-함수부(210)의 P-box 치환부(214)에 의한 F-함수부(210)의 출력값의 1, 2, 6, 9, 10, 13, 16 ,17, 18, 20, 23, 24, 26, 28, 30, 31번째 또는 3, 4, 5, 7, 8, 11, 12, 14, 15, 19, 21, 22, 25, 27, 32번째 비트에 오류가 주입될 수 있다. 여기서, 라운드 키 생성부에서 i번째 라운드는 데이터 암호화 표준(DES, Data Encryption Standard)의 암호화 모듈의 i번째 라운드에 이용되는 라운드 키를 생성하는 라운드를 의미한다.In the round key generation unit according to the present exemplary embodiment, an error is injected into one of a 28-bit left register or a right register in which an input value is stored in the
도 4는 본 실시예에 따른 오류가 주입된 16라운드 키를 통한 암호 처리 방법을 설명하기 위한 개념도이다.4 is a conceptual diagram illustrating a method of processing an encryption through a 16-round key injected with an error according to the present embodiment.
도 4를 참조하면, R16, L16, L16 *은 공격자가 알고 있는 값이므로 F-함수부(210)의 출력 차분과 입력값을 알 수 있다. S-box의 출력 차분 정보를 이용하여 S-box 입력값의 후보군을 생성할 수 있다. 하나의 오류에 여러개의 평문에 대한 암호문으로 후보군의 개수를 줄여 라운드 키의 1 내지 24 비트값 또는 25 내지 48 비트값을 결정할 수 있다.Referring to FIG. 4, since R 16 , L 16 , and L 16 * are known to an attacker, the output difference and the input value of the F-
도 5는 본 실시예에 따른 오류가 주입된 16라운드 키를 통한 암호 처리를 통해 마스터 키를 획득하는 방법을 설명하는 순서도이다.5 is a flowchart illustrating a method of acquiring a master key through encryption processing through an error-injected 16 round key according to the present embodiment.
도 5를 참조하면, 옳은 암호문과 본 실시예에 따라 오류가 주입된 16라운드 키를 통해 오류가 주입된 암호문을 획득한다(S510). 구체적으로, 임의의 평문(P)에 대하여 오류가 주입되지 않은 암호문(C)를 얻는다. 본 실시예에 따른 라운드 키 생성부에서는 16라운드의 압축 치환부(35)에 입력값이 저장되어 있는 28 비트의 왼쪽 레지스터 또는 오른쪽 레지스터 중 하나의 레지스터에 오류를 주입하여 얻은 암호문(CL *) 또는 암호문(CR *)를 얻는다.Referring to FIG. 5, an error-injected ciphertext is obtained through a correct ciphertext and a 16-round key in which an error is injected according to the present embodiment (S510). Specifically, for any plaintext P, a ciphertext C with no error injected is obtained. In the round key generation unit according to the present embodiment, a ciphertext (C L * ) obtained by injecting an error into one of a 28-bit left register or a right register in which an input value is stored in a
그런 다음, S-box 출력값 후보군의 집합을 생성한다(S520). S510에서 얻은 옳은 암호문(C)과 오류가 주입된 암호문(CL * 또는 CR *)에 초기 치환과정을 거쳐서 16라운드 출력값 L16, L16 *,R16=R16 *를 얻는다. F-함수부(210)의 출력 차분은 다음 수학식 1과 같다.Then, a set of S-box output value candidate groups is generated (S520). 16 round outputs L 16 , L 16 * , R 16 = R 16 * are obtained by initial substitution of the correct ciphertext (C) and the error-injected ciphertext (C L * or C R * ) obtained in S510. The output difference of the F-
F-함수부(210)에서 마지막 치환의 역치환 과정을 거쳐서 S-box의 출력차분을 획득한다. CL * 에 대한 S-box의 출력 차분은 1 내지 4번째 S-box에만 영향을 미치므로 ****0000이고, CR *에 대한 S-box의 출력 차분은 5 내지 8번째 S-box에만 영향을 미치므로 0000****이다. 여기서, *는 알고 있는 S-box의 출력 차분값이며, 0 내지 15인 정수값이다. 각각의 S-box 출력 차분에 대하여 옳은 출력값이 결정되면 오류가 주입된 출력값이 하나로 결정되므로 가능한 옳은 출력값과 오류가 주입된 출력값의 쌍은 16개이다. 8개의 S-box에 대한 각각의 16개의 출력값 쌍을 집합<output(ith S-box)>에 저장한다. 여기서, i는 1 내지 8인 정수값이다.The F-
그런 다음, S-box 입력값 후보군의 집합을 생성한다(S530). 구체적으로, F-함수부(210)의 S-box는 정해진 하나의 출력값에 대하여 4개의 입력값을 가진다. 따라서, 하나의 옳은 출력값과 오류가 주입된 출력값은 4개의 입력값 후보군을 갖는다. S520에서 얻은 S-box의 출력값 집합의 옳은 출력값과 오류가 주입된 출력값의 쌍은 16개의 입력값 후보군 쌍을 갖는다. 하나의 S-box에 대한 옳은 입력값과 오류가 주입된 입력값 후보군 쌍의 개수는 256개(16×16)이다. 8개의 S-box에 대한 각각의 256개 입력값 쌍을 집합<input(ith S-box)>에 저장한다. 여기서, i는 1 내지 8인 정수값이다.Then, a set of S-box input value candidate groups is generated (S530). Specifically, the S-box of the F-
그런 다음, 16라운드 키 후보군의 집합을 생성한다(S540). S530에서 얻은 R16으로부터 F-함수부(210)의 확장 치환부(211)를 거쳐 확장된 48비트 중간값을 얻는다. 48비트의 중간값을 8개의 6비트로 나누어 S530에서 저장한 집합<input(ith S-box)> 원소들과 배타적 논리합 연산을 수행한다. 연산결과 RK16 와 RK16 *의 후보군 6비트 쌍을 8개의 집합<ith RK16, ith RK16 *>에 저장한다. 여기서, i는 1 내지 8인 정수값이다.Then, a set of 16 round key candidate groups is generated (S540). From the R16 obtained in S530, an extended 48-bit intermediate value is obtained through the
그런 다음, 마스터 키를 획득한다(S560). 구체적으로, 다른 평문에 대하여 S510 내지 S540를 반복하여(S550) 저장한 각각의 집합<ith RK16, ith RK16 *>에 대하여 일치하지 않는 라운드 키 쌍을 제거한다. 이러한 과정을 반복하여 하나의 48비트 라운드 키를 구한다. 확정된 16라운드 키를 이용하여 라운드 키 생성단계의 역과정을 통해 마스터 키를 획득한다. Then, a master key is obtained (S560). In detail, the non-matching round key pair is removed for each set <ith RK 16 , ith RK 16 * > which are stored by repeating S510 to S540 for another plain text (S550). This process is repeated to obtain one 48-bit round key. The master key is acquired through the reverse process of the round key generation step using the confirmed 16 round key.
S510 내지 S560단계를 상세하여 설명하면, S-box 입력값 집합의 원소의 개수는 256개(28)이다. S-box의 입력값의 전체 가능한 개수는 212(=26 ×26)이다. 하나의 평문에 오류를 주입함으로써 S-box 입력값 쌍의 후보군 개수는 1/24(=28/212)만큼 줄어든다. 따라서, 3개의 평문에 대하여 오류를 주입하면 1/256(=(1/24)3)으로 S-box 입력값 쌍의 후보군 개수를 줄일 수 있으므로 하나의 옳은 입력값 쌍을 구할 수 있다. 즉, 라운드 키 생성단계에서 16라운드 압축치환의 왼쪽 레지스터 또는 오른쪽 레지스터에서 오류를 주입하여 각각 3개의 평문에 대한 암호문을 얻으면 옳은 16라운드 키를 얻을 수 있고 확정된 16라운드 키를 이용하여 라운드 키 생성단계의 역과정을 통해 마스터 키를 획득할 수 있다.In detail, operations S510 to S560 are described as 256 elements (2 8 ) in the S-box input value set. The total possible number of input values of the S-box is 2 12 (= 2 6 × 2 6 ). By injecting a fault in one of the plaintext S-box candidates number of input pair is reduced by 1/2 4 (= 28/212). Therefore, if an error is injected into three plain texts, the number of candidate groups of S-box input value pairs can be reduced to 1/256 (= (1/2 4 ) 3 ), so that one correct input value pair can be obtained. That is, in the round key generation step, if an error is injected from the left register or the right register of the 16 round compression substitution, and the ciphertext for each 3 plain texts is obtained, the correct 16 round keys can be obtained and the round key is generated using the confirmed 16 round keys. It is possible to obtain a master key through the reverse process of the steps.
도 6은 본 실시예에 따라 암호 처리를 수행하는 암호 처리 장치를 나타내는 블록도이다.6 is a block diagram showing an encryption processing apparatus that performs encryption processing according to the present embodiment.
도 6을 참조하면, 암호 처리 장치(600)는 중앙처리부(610), 메모리(620), 암호처리부(630), 난수발생기(640) 및 송수신부(650)를 포함한다.Referring to FIG. 6, the
중앙처리부(610)(CPU, Central processing Unit)는 암호 처리의 개시나, 종료, 데이터의 송수신의 제어, 각 구성부 사이의 데이터 전송 제어, 그 외의 각종 프로그램을 실행하는 프로세서이다. 메모리(620)는 중앙처리부(610)가 실행하는 프로그램, 또는 연산 파라미터로서의 고정 데이터를 저장하는 ROM(Read-Only-Memory), 중앙처리부(610)의 처리에 있어서 실행되는 프로그램 및 프로그램 처리에 있어서 적당히 변화하는 파라미터의 저장 영역, 공작물 영역으로서 사용되는 RAM(Random Access Memory) 등을 포함하여 구성된다. 또한, 메모리(620)는 암호 처리에 필요한 키 데이터 등의 저장 영역으로서 이용할 수 있다. The central processing unit 610 (CPU) is a processor for starting or ending encryption processing, controlling data transmission and reception, controlling data transmission between components, and executing various other programs. The
암호 처리부(630)는 전술한 본 실시예에 따른 방법을 수행하는 암호 처리 및 복호 처리 등을 실행한다. 난수 발생기(640)는 암호 처리에 필요한 키의 생성 등에 있어서 필요한 난수의 발생 처리를 실행한다. 송수신부(650)는 외부와의 데이터 통신을 실행하는 데이터 통신 처리부이다. 예를 들어, 리더 라이터 등, IC모듈과의 데이터 통신을 실행하고, IC모듈 내에서 생성한 암호문의 출력 또는 외부의 리더 라이터 등의 기기로부터의 데이터 입력 등을 실행한다.The
본 실시예에서는 암호 처리 장치(600)를 개별 모듈로 한 예를 나타냈으나, 이와 같이 독립된 암호 처리 모듈로 구성되지 않고 암호 처리 프로그램을 ROM에 저장하고 중앙처리부(610)가 ROM 저장 프로그램을 판독하여 실행하도록 구성할 수도 있다. In the present embodiment, an example in which the
이하에서는, 본 실시예에 따른 암호 처리 방법의 효과에 대하여 설명하기로 한다.Hereinafter, the effect of the encryption processing method according to the present embodiment will be described.
본 실시예에 따른 암호 처리 방법 및 종래 DES의 암호 처리 방법의 비교를 다음 표 1에서 설명한다.A comparison between the encryption processing method according to the present embodiment and the encryption processing method of the conventional DES will be described in Table 1 below.
표 1을 참조하면, DES의 중간 라운드에 대해 차분오류주입공격을 수행한 방법과 본 실시예에 따라 16라운드에 대해 차분오류주입공격을 수행한 방법을 비교하였다. 중간 라운드에 대해 차분오류주입공격을 수행한 방법에서는 9 내지 12라운드에 약 20 내지 108개의 1 바이트 랜덤 오류를 주입하여 마스터 키를 획득한다. 반면, 본 실시예에 따라 16라운드에 대해 차분오류주입공격을 수행한 방법은 16라운드 키 생성단계에 약 6개의 레지스터(4 바이트)랜덤 오류를 주입하여 마스터 키를 획득한다. 주입되는 오류의 크기 및 오류의 갯수가 종래 방법에 비해 향상된 것을 확인할 수 있다.Referring to Table 1, a method of performing a differential error injection attack on the middle round of the DES and a method of performing a differential error injection attack on the 16 rounds according to this embodiment was compared. In the method of performing the differential error injection attack on the middle round, a master key is obtained by injecting about 20 to 10 8 1 byte random errors in the 9 to 12 rounds. On the other hand, the method of performing the differential error injection attack on the 16th round according to the present embodiment obtains the master key by injecting about 6 registers (4 bytes) random errors in the 16th round key generation step. It can be seen that the size of the injected error and the number of errors improved compared to the conventional method.
본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-programmable gate array) 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터,데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.The term '~ part' used in the present embodiment refers to software or a hardware component such as a field-programmable gate array (FPGA) or an ASIC, and '~ part' performs certain roles. However, '~' is not meant to be limited to software or hardware. &Quot; to " may be configured to reside on an addressable storage medium and may be configured to play one or more processors. Thus, as an example, '~' means components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, procedures, and the like. Subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functionality provided within the components and the 'parts' may be combined into a smaller number of components and the 'parts' or further separated into additional components and the 'parts'. In addition, the components and '~' may be implemented to play one or more CPUs in the device or secure multimedia card.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.
상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer reader media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 암호처리방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광기록매체 및 캐리어 웨이브 매체를 포함한다. The program is stored in a computer readable medium (computer reader media), and read and executed by the computer to implement the encryption processing method. The information storage medium includes a magnetic recording medium, an optical recording medium and a carrier wave medium.
상술한 모든 기능은 상기 기능을 수행하도록 코딩된 소프트웨어나 프로그램 코드 등에 따른 마이크로프로세서, 제어기, 마이크로제어기, ASIC(Application Specific Integrated Circuit) 등과 같은 프로세서에 의해 수행될 수 있다. 상기 코드의 설계, 개발 및 구현은 본 발명의 설명에 기초하여 당업자에게 자명하다고 할 것이다.All of the above functions may be performed by a processor such as a microprocessor, a controller, a microcontroller, an application specific integrated circuit (ASIC), or the like according to software or program code coded to perform the function. The design, development and implementation of the code will be apparent to those skilled in the art based on the description of the present invention.
이상 본 발명에 대하여 실시예를 참조하여 설명하였지만, 해당 기술 분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시켜 실시할 수 있음을 이해할 수 있을 것이다. 따라서 상술한 실시예에 한정되지 않고, 본 발명은 이하의 특허청구범위의 범위 내의 모든 실시예들을 포함한다고 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made therein without departing from the spirit and scope of the invention. You will understand. Therefore, the present invention is not limited to the above-described embodiment, and the present invention will include all embodiments within the scope of the following claims.
10: 암호화 모듈 100: 초기치환부
200: 기본연산부 210: F-함수부
211: 확장 치환부 212: 제2 배타적 논리합 연산부
213: S-box 치환부 214: P-box 치환부
220: 제1 배타적 논리합 연산부 300: 역초기치환부10: encryption module 100: initial replacement unit
200: basic operation unit 210: F-function unit
211: expansion substitution unit 212: second exclusive-OR operation unit
213: S-box substitution 214: P-box substitution
220: first exclusive AND operation unit 300: reverse initial replacement unit
Claims (18)
64비트의 평문에 초기 치환을 수행하는 단계;
마스터 키를 패리티 드롭하여 생성된 암호화 키(cipher key)를 비트 왼쪽 순환(left shift) 및 압축치환(compression permutation)을 거쳐 제1 내지 제15 라운드 키를 생성하고 상기 비트 왼쪽 순환, 레지스터의 오류 주입 및 압축치환을 통해 제16 라운드 키를 생성하는 단계;
상기 초기 치환이 수행된 64비트의 평문을 두 개의 32비트로 나누어 왼쪽 레지스터 및 오른쪽 레지스터에 저장한 후, 제1 내지 제16 라운드를 통해 상기 제1 내지 제16 라운드 키를 이용한 암호화 연산을 통해 수행하는 단계; 및
상기 제1 내지 제16 라운드의 암호화 연산을 통해 생성된 비트들에 대해 상기 초기 치환의 역과정을 수행하는 단계를 포함하는 암호 처리 방법.In a cipher processing method for executing a 16-round facetel type common key block cipher processing of a block divided into 64-bit data,
Performing an initial substitution on the 64-bit plain text;
A cipher key generated by parity drop of the master key is used to generate first to fifteenth round keys through bit left shift and compression permutation, and bit injection of the left register Generating a sixteenth round key through compression;
The 64-bit plaintext of which the initial substitution is performed is divided into two 32-bits and stored in a left register and a right register, and then performed through an encryption operation using the first through sixteenth round keys through first through sixteenth rounds. step; And
And performing an inverse of the initial substitution on the bits generated through the first to sixteenth round encryption operations.
상기 제1 내지 제15 라운드 키 및 제16 라운드키를 생성하는 단계는
상기 암호화 키(cipher key)를 두 블럭으로 나누어 제1 내지 제15 라운드를 통해 1 비트 또는 2 비트 왼쪽 순환(left shift)을 하고 압축치환(compression permutation)을 거쳐 제1 내지 제15 라운드 키를 생성하고 상기 제1 내지 제15 라운드를 통해 1 비트 또는 2 비트 왼쪽 순환(left shift)을 한 암호화 키(cipher key)를 1 비트 왼쪽 순환(left shift)을 하고 왼쪽 또는 오른쪽 레지스터에 오류를 주입한 후 압축치환을 거쳐 제16 라운드 키를 생성하는 것을 특징으로 하는 암호 처리 방법.The method of claim 1,
Generating the first to fifteenth round keys and the sixteenth round key
By dividing the cipher key into two blocks, one-bit or two-bit left shift is performed through the first to fifteenth rounds, and the first to fifteenth round keys are generated through compression permutation. After performing a 1-bit left shift of the cipher key with 1-bit or 2-bit left shift through the first to 15th rounds, and injecting an error into the left- or right-register. And a sixteenth round key through compression conversion.
상기 제1 내지 제15 라운드 키 및 제16 라운드키를 생성하는 단계에서
제1, 제2, 제9 및 제16라운드에서는 1 비트 왼쪽 순환(left shift)을 수행하는 것을 특징으로 하는 암호 처리 방법.The method of claim 2,
Generating the first to fifteenth round keys and the sixteenth round key;
The first, second, ninth, and sixteenth rounds, a 1-bit left shift is performed.
상기 제1 내지 제15 라운드 키 및 제16 라운드 키는 48 비트인 것을 특징으로 하는 암호 처리 방법.The method of claim 1,
And the first to fifteenth round keys and the sixteenth round key are 48 bits.
상기 제16 라운드 키는 왼쪽 또는 오른쪽 24비트에 오류가 주입된 값이고 나머지 24비트는 오류가 주입되지 않은 라운드 키값을 가지는 것을 특징으로 하는 암호 처리 방법.The method of claim 4, wherein
The sixteenth round key is a value in which an error is injected into the left or right 24 bits, and the remaining 24 bits have a round key value in which the error is not injected.
암호 처리의 개시 및 종료, 데이터의 송수신을 제어하고 프로그램을 실행하는 중앙처리부;
상기 중앙처리부가 실행하는 프로그램, 연산 파라미터로서의 고정 데이터를 저장하는 메모리; 및
마스터 키를 패리티 드롭하여 생성된 암호화 키(cipher key)를 비트 왼쪽 순환(left shift) 및 압축치환(compression permutation)을 거쳐 제1 내지 제15 라운드 키를 생성하고 상기 비트 왼쪽 순환, 레지스터의 오류 주입 및 압축치환을 통해 제16 라운드 키를 생성하여 상기 데이터를 64비트로 나눈 블록에 상기 생성된 제1 내지 제16 라운드 키를 이용하여 암호 처리를 수행하는 암호 처리부를 포함하는 암호 처리 장치.A cryptographic apparatus that executes 16 rounds of facetel type common key block cryptographic processing by dividing a block into 64 bits of data.
A central processing unit controlling the initiation and termination of encryption processing, transmission and reception of data, and executing a program;
A memory for storing a program executed by the central processing unit and fixed data as an operation parameter; And
A cipher key generated by parity drop of the master key is used to generate first to fifteenth round keys through bit left shift and compression permutation, and bit injection of the left register And an encryption processing unit for generating a sixteenth round key through compression substitution and performing encryption processing using the generated first to sixteenth round keys in a block obtained by dividing the data into 64-bits.
상기 제1 내지 제15 라운드 키 및 제16 라운드 키는 48 비트인 것을 특징으로 하는 암호 처리 장치.The method of claim 7, wherein
And the first to fifteenth round keys and the sixteenth round key are 48 bits.
상기 제16 라운드 키는 왼쪽 또는 오른쪽 24비트에 오류가 주입된 값이고 나머지 24비트는 오류가 주입되지 않은 라운드 키값을 가지는 것을 특징으로 하는 암호 처리 장치.The method of claim 8,
The sixteenth round key is a value in which an error is injected into the left or right 24 bits, and the remaining 24 bits have a round key value in which the error is not injected.
상기 암호 처리부는
상기 암호화 키(cipher key)를 두 블럭으로 나누어 제1 내지 제15 라운드를 통해 1 비트 또는 2 비트 왼쪽 순환(left shift)을 하고 압축치환(compression permutation)을 거쳐 제1 내지 제15 라운드 키를 생성하고 상기 제1 내지 제15 라운드를 통해 1 비트 또는 2 비트 왼쪽 순환(left shift)을 한 암호화 키(cipher key)를 1 비트 왼쪽 순환(left shift)을 하고 왼쪽 또는 오른쪽 레지스터에 오류를 주입한 후 압축치환을 거쳐 제16 라운드 키를 생성하는 것을 특징으로 하는 암호 처리 장치.The method of claim 7, wherein
The encryption processing unit
By dividing the cipher key into two blocks, one-bit or two-bit left shift is performed through the first to fifteenth rounds, and the first to fifteenth round keys are generated through compression permutation. After performing a 1-bit left shift of the cipher key with 1-bit or 2-bit left shift through the first to 15th rounds, and injecting an error into the left- or right-register. And a sixteenth round key through compression substitution.
상기 암호 처리부는 제1 내지 제16 라운드 키를 생성하는 라운드 키 생성부를 포함하며,
상기 라운드 키 생성부는 64비트 마스터 키에서 패리티 드롭을 수행하여 56비트의 암호화 키를 생성하는 패러티 드롭부;
상기 56비트의 암호화 키를 28 비트의 두 블럭로 나누어 각 블럭의 1비트 또는 2 비트 왼쪽 순환(left shift)을 수행하는 제1 쉬프트부 및 제2 쉬프트부;및
상기 왼쪽 순환이 수행된 비트들의 압축 치환을 수행하는 압축 치환부를 포함하는 것을 특징으로 하는 암호 처리 장치.The method of claim 10,
The encryption processing unit includes a round key generation unit for generating first to sixteenth round keys,
A parity drop unit which generates a 56-bit encryption key by performing a parity drop on a 64-bit master key;
A first shift unit and a second shift unit for dividing the 56-bit encryption key into two blocks of 28 bits and performing a left shift of one or two bits of each block; and
And a compression substitution unit configured to perform compression substitution of bits on which the left rotation is performed.
상기 제1 쉬프트부 및 제2 쉬프트부는 제1, 제2, 제9 및 제16라운드에서는 1 비트 왼쪽 순환(left shift)을 수행하는 것을 특징으로 하는 암호 처리 장치.The method of claim 11,
And the first shift unit and the second shift unit perform a 1-bit left shift in the first, second, ninth, and sixteenth rounds.
상기 암호 처리부는
상기 데이터를 64비트로 나눈 블록에 대해 초기 치환을 수행하는 초기치환부;
마스터 키를 제1 내지 제15 라운드를 통해 1 비트 또는 2 비트 왼쪽 순환(left shift)을 하고 압축치환(compression permutation)을 거쳐 제1 내지 제15 라운드 키를 생성하고 상기 제1 내지 제15 라운드를 통해 1 비트 또는 2 비트 왼쪽 순환(left shift)을 한 암호화 키(cipher key)를 1 비트 왼쪽 순환(left shift)을 하고 왼쪽 또는 오른쪽 레지스터에 오류를 주입한 후 압축치환을 거쳐 제16 라운드 키를 생성하여 상기 초기 치환이 수행된 데이터에 상기 생성된 제1 내지 제16 라운드 키를 이용하여 암호 처리를 수행하는 기본연산부; 및
상기 제1 내지 제16 라운드를 통해 암호 처리가 수행된 비트들에 대해 상기 초기 치환의 역과정을 통해 암호문을 생성하는 역초기치환부를 포함하는 것을 특징으로 하는 암호 처리 장치.The method of claim 10,
The encryption processing unit
An initial substitution unit which performs initial substitution on a block obtained by dividing the data into 64-bits;
The master key is left-shifted one bit or two bits through the first to fifteenth rounds, and the first to fifteenth rounds are generated through compression permutation and the first to fifteenth rounds. 1-bit or 2-bit left shift through cipher key 1 bit left shift, injecting error to left or right register and compressing A basic calculation unit which generates encryption by using the generated first to sixteenth round keys to the data on which the initial substitution is performed; And
And an inverse initial replacement unit for generating a cipher text through the reverse process of the initial substitution for the bits on which encryption processing is performed through the first to sixteenth rounds.
상기 기본연산부는 상기 초기 치환이 수행된 데이터를 두 개의 32비트의 블럭으로 나누어 왼쪽레지스터(Li)와 오른쪽레지스터(Ri)에 저장한 후, 상기 생성된 제1 내지 제16 라운드 키를 이용하여 암호 처리를 수행하는 F-함수부를 포함하는 것을 특징으로 하는 암호 처리 장치.The method of claim 13,
The basic operation unit is used and save the data that the initial substituted performed on both the left divided into blocks of 32-bit registers (L i) and right register (R i), the generated first to the 16th Round Key And an F-function unit to perform encryption processing.
상기 F-함수부는
상기 32비트의 블럭을 48비트의 데이터로 확장 치환하는 확장 치환부;
상기 48비트의 데이터에 상기 라운드 키 생성부로부터 생성된 상기 제1 내지 제16 라운드 키의 배타적 논리합 연산을 수행하는 배타적 논리합 연산부;
상기 배타적 논리합 연산이 수행된 48비트의 데이터를 32비트의 데이터로 대치 치환하는 S-box 치환부; 및
상기 대치 치환된 32비트의 데이터를 복사 치환하는 P-box 치환부를 포함하는 것을 특징으로 하는 암호 처리 장치.The method of claim 14,
The F-function part
An expansion substitution unit for extending replacement of the 32-bit block with 48-bit data;
An exclusive-OR operation unit that performs an exclusive-OR operation on the first to sixteenth round keys generated from the round-key generation unit on the 48-bit data;
An S-box replacement unit for replacing and replacing 48-bit data on which the exclusive OR operation has been performed with 32-bit data; And
And a P-box replacement unit for copy-substituting the substituted 32-bit data.
상기 S-box 치환부는 8개의 S-box를 포함하고,
상기 S-box의 입력값 중 1 내지 4번째 또는 5 내지 8번째 S-box에 오류가 주입된 것을 특징으로 하는 암호 처리 장치.The method of claim 15,
The S-box replacement includes eight S-boxes,
And an error is injected into the first to fourth or fifth to eighth S-boxes of the input values of the S-boxes.
상기 S-box의 출력값 중 1 내지 16번째 또는 17 내지 32번째 비트에 오류가 주입된 것을 특징으로 하는 암호 처리 장치.17. The method of claim 16,
And an error is injected into bits 1 to 16 or 17 to 32 of the output values of the S-box.
상기 F-함수부의 출력값의 1, 2, 6, 9, 10, 13, 16 ,17, 18, 20, 23, 24, 26, 28, 30, 31번째 또는 3, 4, 5, 7, 8, 11, 12, 14, 15, 19, 21, 22, 25, 27, 32번째 비트에 오류가 주입된 것을 특징으로 하는 암호 처리 장치.
The method of claim 14,
1, 2, 6, 9, 10, 13, 16, 17, 18, 20, 23, 24, 26, 28, 30, 31st or 3, 4, 5, 7, 8, of the output value of the F-function part Cryptographic processing apparatus characterized in that the error is injected into the 11th, 12th, 14th, 15th, 19th, 21st, 22nd, 25th, 27th, and 32nd bits.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100024957A KR101135058B1 (en) | 2010-03-19 | 2010-03-19 | Encryption method and encryption device using differential fault analysis in round key generation of Data Encryption Standard |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100024957A KR101135058B1 (en) | 2010-03-19 | 2010-03-19 | Encryption method and encryption device using differential fault analysis in round key generation of Data Encryption Standard |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110105678A KR20110105678A (en) | 2011-09-27 |
KR101135058B1 true KR101135058B1 (en) | 2012-04-13 |
Family
ID=44955971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100024957A KR101135058B1 (en) | 2010-03-19 | 2010-03-19 | Encryption method and encryption device using differential fault analysis in round key generation of Data Encryption Standard |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101135058B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190037980A (en) | 2017-09-29 | 2019-04-08 | 한밭대학교 산학협력단 | System and method for efficient lightweight block cipher in pervasive computing |
CN109981671A (en) * | 2019-04-03 | 2019-07-05 | 北京深思数盾科技股份有限公司 | Data processing method and encryption equipment based on encryption equipment |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013159112A1 (en) * | 2012-04-20 | 2013-10-24 | The Board Of Regents Of The University Of Texas System | Systems and methods for simultaneous compression and encryption |
-
2010
- 2010-03-19 KR KR1020100024957A patent/KR101135058B1/en not_active IP Right Cessation
Non-Patent Citations (4)
Title |
---|
제목: A DFA attack against the AES key schedule, WhitePaper: http://www.siventure.com/pdfs/AES_KeySchedule_DFA_whitepaper.pdf, 저자: D.Peacham & BT. Siventure, 발행일: 2006.10.26 * |
제목: DFA Mechanism on the AES Key Schedule, 2007 Workshop on Fault Diagnosis and Tolerance in Cryptography, 저자: J. Takahashi외 2명, 발행년도: 2007 * |
제목: FIPS PUB 46-3 DATA ENCRYPTION STANDARD (DES), 저자: WM. Daley & RG. Kammer, 발행처: U.S. Department of Commerce - National Institute of Standards and Technology, 발행일: 1999. 10. 25 * |
제목: New Differential Fault Analysis on AES Key Schedule: Two Faults Are Enough, International Federation for Information Processing 2008, 저자: CH.Kim & JJ.Quisquater, 발행년도: 2008 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190037980A (en) | 2017-09-29 | 2019-04-08 | 한밭대학교 산학협력단 | System and method for efficient lightweight block cipher in pervasive computing |
CN109981671A (en) * | 2019-04-03 | 2019-07-05 | 北京深思数盾科技股份有限公司 | Data processing method and encryption equipment based on encryption equipment |
CN109981671B (en) * | 2019-04-03 | 2020-12-08 | 北京深思数盾科技股份有限公司 | Data processing method based on encryption machine and encryption machine |
Also Published As
Publication number | Publication date |
---|---|
KR20110105678A (en) | 2011-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Daemen | Cipher and hash function design strategies based on linear and differential cryptanalysis | |
JP5682527B2 (en) | Cryptographic processing apparatus, cryptographic processing method, and program | |
CN108964872B (en) | Encryption method and device based on AES | |
US8635452B2 (en) | Method for generating a cipher-based message authentication code | |
KR20180002069A (en) | A protection method and device against a side-channel analysis | |
Feng et al. | A byte-based guess and determine attack on SOSEMANUK | |
US20080143561A1 (en) | Operation processing apparatus, operation processing control method, and computer program | |
US8489897B2 (en) | Method and circuitry for detecting a fault attack | |
Turan et al. | Status report on the final round of the NIST lightweight cryptography standardization process | |
CN110071794B (en) | AES algorithm-based information encryption method, system and related components | |
CN108809626A (en) | A kind of whitepack SM4 cryptographic algorithms scheme and system | |
TWI595460B (en) | Data processing device, information processing device, data processing method and program | |
WO2008026622A1 (en) | Encryption device, encryption method, and computer program | |
JP2007192893A (en) | Encryption processing device, encryption processing method, and computer program | |
EP3635725A1 (en) | Data security apparatus with analog component | |
Zhang et al. | LAC: A lightweight authenticated encryption cipher | |
Quilala et al. | Modified blowfish algorithm | |
KR101135058B1 (en) | Encryption method and encryption device using differential fault analysis in round key generation of Data Encryption Standard | |
Jana et al. | Differential fault attack on photon-beetle | |
Biryukov et al. | Cryptanalysis of the Atmel cipher in SecureMemory, CryptoMemory and CryptoRF | |
US10951596B2 (en) | Method for secure device-to-device communication using multilayered cyphers | |
CN110868717A (en) | Method for improving wireless communication security based on DES encryption algorithm | |
Guo et al. | Differential power analysis on dynamic password token based on SM3 algorithm, and countermeasures | |
CN105553644A (en) | 32-bit-packet length lightweight encryption and decryption method | |
JP2007323019A (en) | Encryption processing apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160225 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |