KR101623503B1 - Apparatus and method for white-box cryptography implementation of LEA block cipher - Google Patents

Apparatus and method for white-box cryptography implementation of LEA block cipher Download PDF

Info

Publication number
KR101623503B1
KR101623503B1 KR1020150017285A KR20150017285A KR101623503B1 KR 101623503 B1 KR101623503 B1 KR 101623503B1 KR 1020150017285 A KR1020150017285 A KR 1020150017285A KR 20150017285 A KR20150017285 A KR 20150017285A KR 101623503 B1 KR101623503 B1 KR 101623503B1
Authority
KR
South Korea
Prior art keywords
bit
unit
output
encoding
function
Prior art date
Application number
KR1020150017285A
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 KR1020150017285A priority Critical patent/KR101623503B1/en
Application granted granted Critical
Publication of KR101623503B1 publication Critical patent/KR101623503B1/en

Links

Images

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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

The present invention is to provide an apparatus and a method for implementation of white-box cryptography of LEA block cipher, in which a cipher algorithm including a cipher key is configured in the form of a plurality of tables, thereby fundamentally preventing the cipher key from being identified via investigation into the source code of the cipher algorithm or investigation into a memory area. The apparatus for implementation of white-box cryptography of LEA block cipher is configured to comprise: a plain text input unit which receives encoded encoding plain text; a round function unit which receives the encoding plain text input from the plain text input unit or a result value of previous performance of the round function unit, performs a modular addition and a rotation operation based on a random table, and outputs a distributed processing result of a round key operation location using linear transformation; and a cryptogram output unit which outputs an encoding cryptogram, which is a result value which belongs to output values processed by the round function unit and is output after performance of the round function unit for all round keys has been completed.

Description

LEA 블록암호의 화이트박스 암호 구현 장치 및 방법{Apparatus and method for white-box cryptography implementation of LEA block cipher}Technical Field [0001] The present invention relates to a white-box cryptographic implementation of a LEA block cipher,

본 발명은 암호키를 보호하는 기술에 관한 것으로, 특히 블록암호 LEA(경량고속블록암호)로 암호화를 수행하는 기기에서 암호키를 추출하는 것을 방지하는 구현 장치 및 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technique for protecting a cryptographic key, and more particularly, to an apparatus and method for preventing extraction of a cryptographic key from a device that performs encryption using a block cipher LEA (lightweight high-speed block cipher).

화이트 박스 암호는 공격자가 암호 소프트웨어에 대한 완전한 접근을 할 수 있고 실행되는 환경에 대한 모든 조작이 가능하다고 할 때에도, 안전하게 키를 숨기면서 암호기능을 제공하는 기술이다.White box cryptography is a technology that provides cryptographic functionality while hiding keys safely, even when an attacker has full access to cryptographic software and is able to manipulate the environment in which it runs.

2002년 'Chow' 등이 화이트 박스 AES를 제안하여 최초로 화이트 박스 암호를 구현하였으나, 2004년에 'Billet'등이 제안한 공격(이하 'BGE 공격'이라 칭함)에 의해서 현실적인 공격 복잡도를 갖는 키로 복구되어 안전성이 크게 떨어졌다.In 2002, 'Chow' proposed White Box AES for the first time, and implemented the white box encryption for the first time. In 2004, it was restored to a key with realistic attack complexity by the attack proposed by Billet et al. (Hereinafter referred to as BGE attack) Safety is greatly reduced.

이후로 학계에서 BGE 공격에 저항하기 위해 여러 가지 방법을 제안하였으나, 현재까지 이론적으로 안전한 화이트 박스 암호는 없는 실정이다.Since then, several methods have been proposed to resist BGE attacks in academia, but to date there is no theoretically safe white box cipher.

따라서 현재까지의 화이트 박스 암호화 기법들의 경우 일반적으로 소프트웨어로 암호를 수행할 때, 암호키는 메모리의 특정 영역에 저장되어 참조됨에 따라 공격자가 암호키의 저장위치를 탐지하면 암호키가 유출될 우려가 그대로 노출되어 있다는 문제점이 있다.Therefore, in the case of white-box encryption techniques to date, when encryption is performed by software, the encryption key is stored in a specific area of the memory, so that if the attacker detects the storage location of the encryption key, There is a problem that they are exposed as they are.

등록특허공보 제10-1364192호 : 암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터 프로그램Patent Registration No. 10-1364192: a password processing device, a method of establishing an encryption algorithm, a password processing method, and a computer program

따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 암호키를 포함한 암호 알고리즘을 다수의 테이블로 구성하여 암호 알고리즘의 소스코드나 메모리 영역의 조사 등을 통해 암호키를 찾는 것을 원천적으로 막을 수 있는 LEA 블록암호의 화이트박스 암호 구현 장치 및 방법을 제공하는데 그 목적이 있다.SUMMARY OF THE INVENTION Accordingly, the present invention has been made to solve the above-mentioned problems, and it is an object of the present invention to provide an encryption algorithm including a cryptographic key in a large number of tables so as to prevent a cryptographic key from being searched through a source code of a cryptographic algorithm, And to provide a method and apparatus for implementing white-box encryption of LEA block ciphers.

본 발명의 다른 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.Other objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 LEA 블록암호의 화이트박스 암호 구현 장치의 특징은 인코딩된 인코딩 평문을 입력받은 평문 입력부와, 상기 평문 입력부에서 입력된 인코딩 평문 또는 직전 수행된 라운드 함수부의 결과값을 입력받아 랜덤 테이블을 기반으로 모듈러 덧셈 및 로테이션 연산을 수행하여 선형변환을 이용한 라운드 키 연산위치의 분산처리 결과를 출력하는 라운드 함수부와, 상기 라운드 함수부에서 처리된 출력값 중 마지막 라운드 키에 대하여 수행이 완료되어 출력되는 결과값인 인코딩 암호문을 출력하는 암호문 출력부를 포함하여 구성되는데 있다.According to another aspect of the present invention, there is provided an apparatus for implementing a white-box cipher of a LEA block cipher, comprising: a plaintext input unit receiving an encoded plaintext; an encoding plain text input from the plaintext input unit; A round function unit for receiving a result value and performing a modular addition and a rotation operation on the basis of the random table and outputting a result of a round key operation position distribution processing using a linear transformation; And a ciphertext output unit for outputting an encoded ciphertext, which is a result value that is completed and output to the ciphertext output unit.

바람직하게 상기 인코딩 평문 및 인코딩 암호문은 128-비트 블록암호 알고리즘에 따른 인코딩 함수를 적용하여 4-비트 랜덤 치환되어 32개로 인코딩되는 것을 특징으로 한다.Preferably, the encoded plaintext and encoded ciphertext are encoded in 32-bit positions by 4-bit random replacement using an encoding function according to a 128-bit block cipher algorithm.

바람직하게 상기 라운드 함수부는 인코딩된 라운드 함수 입력값을 4-비트 단위의 입력 인코딩 함수에 적용하여 인코딩을 제거하는 입력 인코딩 처리부와, 각각의 라운드 키마다 독립적으로 구성된 XOR 덧셈 테이블을 기반으로 키 XOR 연산 및 32-비트 단위 모듈러 덧셈 연산을 진행하는 제 1 연산부와, 비트-로테이션 크기 및 방향에 따라 독립적으로 구성된 비트-로테이션 테이블을 기반으로 로테이션 연산을 진행하는 제 2 연산부와, 4-비트 단위의 출력 인코딩 함수에 적용하여 상기 제 2 연산부에서 출력되는 라운드 함수의 출력값에 대한 랜덤 치환하는 출력 인코딩 처리부를 포함하여 이루어지는 것을 특징으로 한다.Preferably, the round function unit includes an input encoding processing unit for applying an encoded round function input value to an input encoding function of a 4-bit unit to remove the encoding, and a key XOR operation based on an XOR addition table independently configured for each round key And a second operation unit for performing a rotation operation based on a bit-rotation table independently configured according to a bit-rotation size and direction, a second operation unit for performing a 32-bit unit modular addition operation, And an output encoding unit for performing random substitution on an output value of the round function output from the second operation unit by applying the encoding function to the encoding function.

바람직하게 상기 입력 인코딩 처리부에서 적용되는 입력 인코딩 함수는 직전 단계의 인코딩 함수의 역함수로서, 입력된 인코딩 평문에서 적용된 인코딩 함수와 역함수 관계를 이루는 것을 특징으로 한다.Preferably, the input encoding function applied to the input encoding processing unit is an inverse function of the encoding function of the immediately preceding step, and is inversely related to an encoding function applied to the inputted encoding plain text.

바람직하게 상기 출력 인코딩 처리부에서 적용되는 출력 인코딩 함수는 상기 XOR 덧셈 테이블 및 비트-로테이션 테이블 중 어느 하나를 구성시 독립적인 랜덤 치환을 적용하는 함수인 것을 특징으로 한다.Preferably, the output encoding function applied to the output encoding processor is a function that applies independent random permutation when constructing either the XOR addition table or the bit-rotation table.

바람직하게 상기 제 1 연산부는 4-비트 단위 덧셈기를 이용하여 구성된 4-비트 덧셈 테이블을 이용하여 각각의 라운드 키마다 독립적으로 구성된 4-비트 XOR 덧셈 테이블을 구성하고, 32-비트 입력 워드 각각에 대하여 4-비트 단위 비트열로 분할하여 상기 4-비트 XOR 덧셈 테이블을 이용한 32-비트 XOR 덧셈 테이블을 구성하고, 상기 32-비트 XOR 덧셈 테이블을 이용하여 라운드 키 각각에 XOR 연산 및 32-비트 단위 모듈러(mod) 덧셈 연산을 진행하는 것을 특징으로 한다.Preferably, the first arithmetic unit constructs a 4-bit XOR addition table independently configured for each round key by using a 4-bit addition table configured using a 4-bit unit adder, and for each 32-bit input word Bit XOR addition table by using the 4-bit XOR addition table and dividing the 4-bit unit bit string into 4-bit unit bit strings to construct a 32-bit XOR addition table by using the 32-bit XOR addition table, (mod) addition operation is performed.

바람직하게 상기 제 2 연산부는 4-비트 로테이션 덧셈기를 이용하여 구성된 4-비트 로테이션 테이블을 이용하여 각각의 로테이션 방향 및 크기마다 독립적으로 구성된 32-비트 로테이션 테이블을 구성하고, 32-비트 입력 워드 각각에 대하여 상기 32-비트 로테이션 테이블을 이용하여 로테이션 연산을 진행하는 것을 특징으로 한다.Preferably, the second arithmetic unit constructs a 32-bit rotation table configured independently for each rotation direction and size using a 4-bit rotation table configured using a 4-bit rotation adder, And the rotation operation is performed using the 32-bit rotation table.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 LEA 블록암호의 화이트박스 암호 구현 방법의 특징은 (A) 인코딩 평문을 포함하는 인코딩된 입력값을 입력 인코딩 처리부를 통해 4-비트 단위의 입력 인코딩 함수에 적용하여 인코딩된 라운드 함수의 입력값을 디코딩하는 단계와, (B) 제 1 연산부를 통해 각각의 라운드 키마다 독립적으로 구성된 모듈러 덧셈 테이블을 기반으로 32-비트 단위로 XOR 연산 및 32-비트 단위 모듈러(mod) 덧셈 연산을 진행하여 32-비트 출력 워드를 생성하는 단계와, (C) 제 2 연산부를 통해 상기 32-비트 출력 워드 단위로 출력되는 출력 데이터를 입력으로 32-비트 단위로 구성된 비트-로테이션 테이블을 기반으로 로테이션 연산을 진행하는 단계와, (D) 출력 인코딩 처리부를 통해 4-비트 단위의 출력 인코딩 함수에 적용하여 상기 출력되는 라운드 함수의 출력값에 대한 랜덤 치환 작업을 수행하는 단계와, (E) 상기 라운드 함수의 출력 인코딩 처리로 인하여 인코딩된 출력값인 인코딩 암호문을 암호문 출력부를 통해 출력하는 단계를 포함하여 이루어지는데 있다.According to another aspect of the present invention, there is provided a method for implementing a white-box encryption of an LEA block cipher, the method comprising: (A) inputting an encoded input value including an encoded plain- (B) an XOR operation on a 32-bit unit basis and a 32-bit unit on a 32-bit unit based on a modular addition table independently configured for each round key through a first operation unit; Bit output word by performing a modular addition operation to generate a 32-bit output word; and (C) outputting the 32-bit output word unit by way of a second operation unit, (D) applying a rotation operation based on a rotation table to an output encoding function of a 4-bit unit through an output encoding processor, And (E) outputting an encoded ciphertext, which is an output value encoded due to the output encoding process of the round function, through a ciphertext output unit.

바람직하게 상기 (B) 단계는 4-비트 단위 덧셈기를 이용하여 4-비트 덧셈 테이블을 구성하는 단계와, 상기 구성된 4-비트 덧셈 테이블을 각각의 라운드 키마다 독립적으로 구성된 4-비트 XOR 덧셈 테이블을 구성하는 단계와, 32-비트 입력 워드 각각에 대하여 4-비트 단위 비트열로 분할하여 상기 4-비트 XOR 덧셈 테이블을 이용한 32-비트 XOR 덧셈 테이블을 구성하는 단계와, 상기 구성된 32-비트 XOR 덧셈 테이블을 이용하여 라운드 키 각각에 XOR 연산 및 32-비트 단위 모듈러(mod) 덧셈 연산을 진행하여 32-비트 출력 워드를 생성하는 단계를 포함하여 이루어지는 것을 특징으로 한다.Preferably, the step (B) comprises the steps of: constructing a 4-bit addition table using a 4-bit unit adder; and 4-bit addition tables formed independently of each round key Bit XOR addition table using the 4-bit XOR addition table by dividing the 32-bit input word into 4-bit unit bit strings for each of the 32-bit input words, constructing a 32-bit XOR addition table using the 4-bit XOR addition table, And performing a XOR operation and a 32-bit unit modular addition operation on each of the round keys using the table to generate a 32-bit output word.

바람직하게 상기 (C) 단계는 4-비트 로테이션 덧셈기를 이용하여 4-비트 로테이션 테이블을 구성하는 단계와, 상기 구성된 4-비트 로테이션 테이블을 각각의 로테이션 방향 및 크기마다 독립적으로 구성된 32-비트 로테이션 테이블을 구성하는 단계와, 32-비트 입력 워드 각각에 대하여 상기 32-비트 로테이션 테이블을 이용하여 로테이션 연산을 진행하여 32-비트 출력 워드를 생성하는 단계를 포함하여 이루어지는 것을 특징으로 한다.Preferably, the step (C) comprises the steps of: constructing a 4-bit rotation table using a 4-bit rotation adder; and writing the 4-bit rotation table into a 32-bit rotation table configured independently for each rotation direction and size And generating a 32-bit output word by performing a rotation operation using the 32-bit rotation table for each 32-bit input word.

이상에서 설명한 바와 같은 본 발명에 따른 LEA 블록암호의 화이트박스 암호 구현 장치 및 방법은 암호키를 하드웨어 토큰에 저장하지 않고도 암호키의 해킹이나 탈취로부터 방어할 수 있다. 또한 금융거래 등에 사용되는 암호모듈의 구현시 난독화 기술과 함께 사용되면 안전성을 크게 강화할 수 있는 효과가 있다.As described above, the apparatus and method for implementing a white-box cipher of the LEA block cipher according to the present invention can prevent a cipher key from being hacked or deodorized without storing the cipher key in a hardware token. In addition, when the cryptographic module used in the financial transaction is implemented, the security can be greatly enhanced if it is used together with the obfuscation technology.

도 1 은 본 발명의 실시예에 따른 LEA 블록암호의 화이트박스 암호 구현 장치의 구성을 나타낸 블록도
도 2 는 도 1의 제 1 연산부의 모듈러 덧셈 테이블의 구조를 나타낸 구성도
도 3a 및 도 3b는 도 2의 모듈러 덧셈 테이블을 32-비트 덧셈 테이블로 나타낸 구성도
도 4a 및 도 4b는 도 1의 제 2 연산부의 비트-로테이션 테이블의 구조를 나타낸 구성도
도 5 는 본 발명의 실시예에 따른 LEA 블록암호의 화이트박스 암호 구현 방법을 설명하기 위한 흐름도
도 6 은 도 5에서 비트 단위의 왼쪽으로 9-비트 로테이션하는 과정을 설명하기 위한 도면
1 is a block diagram showing a configuration of an apparatus for implementing a white-box cipher of a LEA block cipher according to an embodiment of the present invention;
Fig. 2 is a block diagram showing a structure of a modular addition table of the first calculation unit in Fig. 1
3A and 3B are diagrams showing the modular addition table of FIG. 2 as a 32-bit addition table
Figs. 4A and 4B are diagrams showing the structure of the bit-rotation table of the second operation unit in Fig.
FIG. 5 is a flowchart illustrating a method of implementing a white-box encryption of an LEA block cipher according to an embodiment of the present invention.
FIG. 6 is a diagram for explaining a process of 9-bit rotation to the left of a bit unit in FIG. 5

본 발명의 다른 목적, 특성 및 이점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the detailed description of the embodiments with reference to the accompanying drawings.

본 발명에 따른 LEA 블록암호의 화이트박스 암호 구현 장치 및 방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.A preferred embodiment of an apparatus and method for implementing a white-box encryption of LEA block ciphering according to the present invention will be described with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. It is provided to let you know. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention and are not intended to represent all of the technical ideas of the present invention. Therefore, various equivalents It should be understood that water and variations may be present.

도 1 은 본 발명의 실시예에 따른 LEA 블록암호의 화이트박스 암호 구현 장치의 구성을 나타낸 블록도이다.FIG. 1 is a block diagram showing a configuration of a white-box cipher implementing apparatus of an LEA block cipher according to an embodiment of the present invention.

도 1에서 도시하고 있는 것과 같이, 128-비트 블록암호 알고리즘에 따른 인코딩 함수를 적용하여 4-비트 랜덤 치환되어 32개로 인코딩된 인코딩 평문을 입력받은 평문 입력부(100)와, 상기 평문 입력부(100)에서 입력된 인코딩 평문 또는 직전 수행된 라운드 함수부의 결과값을 입력받아 라운드 키 각각에 대하여 8-비트 입력, 4-비트 출력의 랜덤 테이블을 기반으로 모듈러 덧셈 및 로테이션 연산을 수행하여 선형변환을 이용한 라운드 키 연산위치의 분산처리를 수행하는 라운드 함수부(200)와, 상기 라운드 함수부(200)에서 처리된 출력값 중 마지막 라운드 키에 대하여 수행이 완료되어 출력되는 결과값인 인코딩 암호문을 출력하는 암호문 출력부(300)로 구성된다. 이때, 상기 인코딩 암호문은 라운드 함수부(200)를 통해 128-비트 블록암호 알고리즘에 따른 인코딩 함수를 적용하여 4-비트 랜덤 치환되어 32개로 인코딩된(24-Round 함수의 인코딩 처리된) 암호문이다.As shown in FIG. 1, a plain text input unit 100 receives an encoding plain text encoded in 32 bits by 4-bit random substitution using an encoding function according to a 128-bit block encryption algorithm, And performs a modular addition and a rotation operation based on a random table of 8-bit input and 4-bit output for each of the round keys, A round function unit 200 for performing a distribution process of the key operation position, a ciphertext output unit for outputting an encoded ciphertext, which is a result value that is completed and output for the last round key among the output values processed by the round function unit 200 (300). At this time, the encoded ciphertext is a cipher text encoded in 32-bit (24-round function encoded) in 4-bit random replacement by applying an encoding function according to a 128-bit block encryption algorithm through the round function unit 200.

참고로 본 명세서에서는 128-비트 블록암호 알고리즘(LEA-128)을 한정하여 기재하고 있으나, 이에 한정되는 것이 아니며, 192/256-비트 블록암호 알고리즘(LEA-192/256)도 동일한 기법을 적용하여 화이트박스 암호화가 가능하다. 차이점은 사용하는 라운드 수가 다르다는 점 뿐, 즉 암호키로부터 유도된 라운드 키의 개수가 많은 것뿐이다.Although the 128-bit block cipher algorithm (LEA-128) is limited in the present specification, the present invention is not limited thereto. The 192/256-bit block cipher algorithm (LEA-192/256) White box encryption is possible. The only difference is that the number of rounds used is different, that is, the number of round keys derived from cryptographic keys is high.

이때, 상기 라운드 함수부(200)는 인코딩 라운드 함수 입력값을 4-비트 단위의 입력 인코딩 함수에 적용하여 인코딩을 제거하는 입력 인코딩 처리부(210)와, 각각의 라운드 키마다 독립적으로 구성된 XOR 덧셈 테이블을 기반으로 키 XOR 연산 및 32-비트 단위 모듈러 덧셈 연산을 진행하는 제 1 연산부(220)와, 비트-로테이션 크기 및 방향에 따라 독립적으로 구성된 32-비트 단위로 진행되는 비트-로테이션 테이블을 기반으로 로테이션 연산을 진행하는 제 2 연산부(230)와, 4-비트 단위의 출력 인코딩 함수에 적용하여 상기 제 2 연산부(230)에서 출력되는 라운드 함수의 출력값에 대한 랜덤 치환하는 출력 인코딩 처리부(240)로 구성된다. 이때, 상기 라운드 함수부(200)는 라운드 키 각각에 대하여 모두 수행될 때까지 직전 수행된 라운드 함수부의 출력 인코딩 처리부(240)를 통해 출력되는 결과값을 입력 인코딩 처리부(210)의 인코딩 라운드 함수 입력값으로 로테이션한다.The round function unit 200 includes an input encoding processing unit 210 for applying an encoding round function input value to the 4-bit input encoding function to remove the encoding, an XOR addition table Based on a bit-rotation table that is performed in units of 32-bits independently configured according to a bit-rotation size and a direction, and a bit-rotation table A second operation unit 230 for performing a rotation operation, and an output encoding processor 240 for performing random substitution on an output value of the round function output from the second operation unit 230 by applying the output encoding function to the 4- . The round function unit 200 outputs the result value output through the output encoding processing unit 240 of the round function unit performed immediately before the round function is performed to the encoding round function input unit 210 of the input encoding processing unit 210 Value.

한편, 상기 입력 인코딩 처리부(210)에서 적용되는 입력 인코딩 함수는 직전 단계의 인코딩 함수의 역함수로서, 입력된 인코딩 평문에서 적용된 인코딩 함수와 역함수 관계를 이룬다. 그리고 상기 출력 인코딩 처리부(240)에서 적용되는 출력 인코딩 함수는 각각의 테이블 구성시 독립적인 랜덤 치환을 적용하는 함수이다.Meanwhile, the input encoding function applied in the input encoding processing unit 210 is an inverse function of the encoding function of the immediately preceding step, and has an inverse function relation with the encoding function applied in the input encoding plain text. The output encoding function applied to the output encoding processor 240 is a function for applying independent random permutation in each table configuration.

또한 상기 제 1 연산부(220)는 도 2(a)에서 도시하고 있는 4-비트 단위 덧셈기를 이용하여 4-비트 덧셈 테이블을 구성하고, 상기 구성된 4-비트 덧셈 테이블을 도 2(b)에서 도시하고 있는 것과 같이 각각의 라운드 키마다 독립적으로 구성된 4-비트 XOR 덧셈 테이블을 구성한다. 이어 32-비트 입력 워드(X,Y) 각각에 대하여 4-비트 단위 비트열로 분할한 후, 도 3b에서 도시하고 있는 상기 4-비트 XOR 덧셈 테이블을 이용한 32-비트 XOR 덧셈 테이블을 구성하고, 구성된 32-비트 XOR 덧셈 테이블을 이용하여 라운드 키 각각에 XOR 연산 및 32-비트 단위 모듈러(mod) 덧셈 연산을 진행하여 32-비트 출력 워드(Z)를 생성한다. 참고로 도 3a는 인코딩 전에 구성된 4-비트 단위 덧셈기를 이용하여 4-비트 덧셈 테이블을 이용한 32-비트 단위 덧셈 테이블을 나타낸다.The first operation unit 220 constructs a 4-bit addition table using the 4-bit unit adder shown in FIG. 2 (a), and the 4-bit addition table constructed as shown in FIG. 2 (b) Bit XOR addition table composed independently of each round key as shown in FIG. Next, a 32-bit XOR addition table using the 4-bit XOR addition table shown in FIG. 3B is constructed by dividing each 32-bit input word (X, Y) into 4-bit unit bit strings, The 32-bit XOR addition table is used to perform an XOR operation on each round key and a 32-bit unit modular addition operation to generate a 32-bit output word (Z). For reference, FIG. 3A shows a 32-bit unit addition table using a 4-bit addition table using a 4-bit unit adder configured before encoding.

그리고 상기 제 2 연산부(230)는 도 4b(b)에서 도시하고 있는 4-비트 로테이션 덧셈기를 이용하여 4-비트 로테이션 테이블을 구성하고, 도 4b(a)에서 도시하고 있는 것과 같이 각각의 로테이션 방향 및 크기마다 독립적으로 구성된 32-비트 로테이션 테이블을 구성한다. 이어 32-비트 입력 워드(X,Y) 각각에 대하여 상기 구성된 32-비트 로테이션 테이블을 이용하여 로테이션 연산을 진행하여 32-비트 출력 워드(Z)를 생성한다. 참고로 도 4a는 인코딩 전에 구성된 4-비트 로테이션 테이블 및 32-비트 로테이션 테이블을 나타낸다.
The second arithmetic operation unit 230 constructs a 4-bit rotation table using the 4-bit rotation adder shown in FIG. 4B, and generates a 4-bit rotation table in each rotation direction And a 32-bit rotation table configured independently for each size. Then, a rotation operation is performed for each of the 32-bit input words (X, Y) using the configured 32-bit rotation table to generate a 32-bit output word (Z). 4A shows a 4-bit rotation table and a 32-bit rotation table configured before encoding.

이와 같이 구성된 본 발명에 따른 LEA 블록암호의 화이트박스 암호 구현 장치의 동작을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다. 도 1과 동일한 참조부호는 동일한 기능을 수행하는 동일한 부재를 지칭한다. The operation of the white-box cipher embodying device of the LEA block cipher according to the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals as those in Fig. 1 designate the same members performing the same function.

도 5 는 본 발명의 실시예에 따른 LEA 블록암호의 화이트박스 암호 구현 방법을 설명하기 위한 흐름도이다.5 is a flowchart illustrating a method of implementing a white-box encryption of an LEA block cipher according to an embodiment of the present invention.

도 5를 참조하여 설명하면, 먼저 인코딩 평문을 포함한 인코딩된 라운드 함수의 입력값이 입력되면(S10), 입력 인코딩 처리부(210)를 통해 4-비트 단위의 입력 인코딩 함수에 적용하여 인코딩 된 라운드 함수의 입력값을 디코딩한다(S20).Referring to FIG. 5, when an input value of an encoded round function including an encoding plain text is input (S10), the round function is applied to the 4-bit input encoding function through the input encoding processing unit 210, (S20). ≪ / RTI >

이때, 상기 인코딩 평문을 포함하는 인코딩된 라운드 함수 입력은 128-비트 평문 데이터가 4-비트 랜덤 치환 32개로 인코딩된 입력값이다. 그리고 상기 입력 인코딩 함수는 랜덤하게 테이블을 만드는 것이 아니라 각각의 테이블 구성 시 독립적인 랜덤 치환(전단사 함수)을 만들어 입력 값에 적용하기 위한 4-비트 단위 인코딩 함수가 적용된다. 이는 직전 단계의 인코딩 함수의 역함수로서, 첫 라운드의 KeyADD4에서 사용된 입력 인코딩 함수는 인코딩 함수와 역함수 관계를 이룬다.In this case, the encoded round function input including the encoding plain text is an input value in which 128-bit plain text data is encoded into 32 4-bit random permutations. The input encoding function does not randomly generate a table but applies a 4-bit unit encoding function to generate independent random substitution (shear function) for each table and apply it to an input value. This is an inverse function of the encoding function of the previous stage. The input encoding function used in KeyADD4 of the first round is inversely related to the encoding function.

이어 제 1 연산부(220)를 통해 각각의 라운드 키마다 독립적으로 구성된 모듈러 덧셈 테이블을 기반으로 32-비트 단위로 키 XOR 연산 및 32-비트 단위 모듈러(mod) 덧셈 연산을 진행한다(S30).Then, a key XOR operation and a 32-bit unit modular addition operation are performed on a 32-bit unit basis on a modulo addition table independently configured for each round key through a first operation unit 220 (S30).

단계 S30을 도면을 참조하여 상세히 설명하면, 도 2(a)에서 도시하고 있는 것과 같이 4-비트 비트열

Figure 112015011993340-pat00001
,
Figure 112015011993340-pat00002
,
Figure 112015011993340-pat00003
와 1-비트열
Figure 112015011993340-pat00004
,
Figure 112015011993340-pat00005
이 구성된 4-비트 단위 덧셈기를 이용하여 4-비트 덧셈 테이블이 구성된 후, 상기 구성된 4-비트 덧셈 테이블을 각각의 라운드 키마다 독립적으로 구성함으로써 도 2(b)에서 도시하고 있는 것과 같이 가능한 모든 입력
Figure 112015011993340-pat00006
,
Figure 112015011993340-pat00007
,
Figure 112015011993340-pat00008
에 대하여 비트별 덧셈 연산을 수행한 결과를
Figure 112015011993340-pat00009
(5-비트)라고 할 때,
Figure 112015011993340-pat00010
의 최상위 비트를
Figure 112015011993340-pat00011
에 저장하고 나머지 4-비트를
Figure 112015011993340-pat00012
로 하여 출력하는 함수로서 4-비트 XOR 덧셈 테이블을 구성한다. Step S30 will be described in detail with reference to the drawings. As shown in FIG. 2 (a), a 4-bit bit string
Figure 112015011993340-pat00001
,
Figure 112015011993340-pat00002
,
Figure 112015011993340-pat00003
And 1-bit columns
Figure 112015011993340-pat00004
,
Figure 112015011993340-pat00005
The 4-bit addition table is configured using the 4-bit unit adder configured as described above, and then the 4-bit addition table configured as described above is configured independently for each round key,
Figure 112015011993340-pat00006
,
Figure 112015011993340-pat00007
,
Figure 112015011993340-pat00008
Bit additive operation is performed on
Figure 112015011993340-pat00009
(5-bit), < / RTI >
Figure 112015011993340-pat00010
The most significant bit of
Figure 112015011993340-pat00011
And the remaining 4-bit
Figure 112015011993340-pat00012
Bit XOR addition table.

그리고 32-비트 입력 워드 각각에 대하여 4-비트 단위 비트열로 분할하여 도 3b에서 도시하고 있는 것과 같이 상기 4-비트 XOR 덧셈 테이블을 이용한 32-비트 XOR 덧셈 테이블을 구성한 후, 워드 X, Y가 입력이고 Z가 출력인 경우, 각각의 입력값은 순차적으로 4-비트 단위인

Figure 112015011993340-pat00013
,
Figure 112015011993340-pat00014
로 분할되고,
Figure 112015011993340-pat00015
과 함께 32-비트 XOR 덧셈 테이블을 통과하면서 각각의 4-비트 XOR 덧셈 테이블 별로 얻어진
Figure 112015011993340-pat00016
를 연접하여 32-비트 출력 워드 Z를 출력한다.Then, a 32-bit XOR addition table using the 4-bit XOR addition table is constructed as shown in FIG. 3B by dividing each 32-bit input word into 4-bit unit bit strings. Input and Z is an output, each input value is sequentially input into a 4-bit unit
Figure 112015011993340-pat00013
,
Figure 112015011993340-pat00014
/ RTI >
Figure 112015011993340-pat00015
Bit XOR summation table with each 32-bit XOR summation table
Figure 112015011993340-pat00016
To output a 32-bit output word Z.

또한 제 2 연산부(230)를 통해 상기 워드 단위(Z)로 출력되는 출력 데이터를 입력으로 32-비트 단위로 구성된 비트-로테이션 테이블을 기반으로 로테이션 연산을 진행한다(S40).In operation S40, the output data output in the word unit Z is input through the second operation unit 230 and the rotation operation is performed based on the bit-rotation table configured in units of 32 bits.

단계 S40을 도면을 참조하여 상세히 설명하면, 도 6에서 도시하고 있는 것과 같이, 왼쪽으로 9-비트 로테이션을 기준으로 설명하면 입출력 워드를 각각 X, Z라고 하면, 로테이션 결과에서

Figure 112015011993340-pat00017
을 살펴보면,
Figure 112015011993340-pat00018
의 하위 3-비트와
Figure 112015011993340-pat00019
의 최상위 1-비트로 이루어진다. 그리고 나머지 비트열
Figure 112015011993340-pat00020
들에 대해서도 같은 방법을 적용한다.Referring to FIG. 6, step S40 will be described in detail with reference to the drawings. With reference to the 9-bit rotation to the left, if the input and output words are X and Z, respectively,
Figure 112015011993340-pat00017
However,
Figure 112015011993340-pat00018
The lower 3-bits of
Figure 112015011993340-pat00019
1 " Then,
Figure 112015011993340-pat00020
The same method applies.

이를 통해 32-비트 입출력을 각각 X, Z라 하면, 도 4b(b)에서 도시하고 있는 4-비트 로테이션 덧셈기를 이용하여 4-비트 로테이션 테이블을 구성한다. 이때, 상기 4-비트 로테이션 테이블은 입력 X를 4-비트 비트열

Figure 112015011993340-pat00021
들로 분할된 후, 모든
Figure 112015011993340-pat00022
에 대하여
Figure 112015011993340-pat00023
Figure 112015011993340-pat00024
를 비트-로테이션 테이블에 입력되어 출력값
Figure 112015011993340-pat00025
을 얻는다.If the 32-bit input / output is X and Z, respectively, a 4-bit rotation table is constructed using the 4-bit rotation adder shown in FIG. 4B. At this time, the 4-bit rotation table stores the input X as a 4-
Figure 112015011993340-pat00021
And then all
Figure 112015011993340-pat00022
about
Figure 112015011993340-pat00023
and
Figure 112015011993340-pat00024
Is input to the bit-rotation table,
Figure 112015011993340-pat00025
.

따라서 상기 구성된 4-비트 로테이션 테이블을 도 4b(a)에서 도시하고 있는 것과 같이 각각의 로테이션 방향 및 크기마다 독립적으로 구성된 32-비트 로테이션 테이블을 이용하여 로테이션 연산을 진행하여 32-비트 출력 워드(Z)를 생성하게 된다. 같은 방식으로 워드 단위의 오른쪽 3-비트, 오른쪽 5-비트 로테이션 구성이 가능하다.Accordingly, as shown in FIG. 4B, the 4-bit rotation table configured as described above is subjected to a rotation operation using a 32-bit rotation table configured independently for each rotation direction and size, thereby generating a 32-bit output word Z ). Likewise, right 3-bit and right 5-bit rotation in word units is possible.

그리고 출력 인코딩 처리부(240)를 통해 4-비트 단위의 출력 인코딩 함수에 적용하여 상기 출력되는 라운드 함수의 출력값에 대한 랜덤 치환 작업을 수행한다(S50). 이때, 상기 출력 인코딩 함수는 랜덤하게 테이블을 만드는 것이 아니라 각각의 테이블 구성 시 독립적인 랜덤 치환(전단사 함수)을 만들어 출력값에 적용하기 위한 4-비트 단위 인코딩 함수가 적용된다. 이는 각각의 테이블 구성 시 독립적인 랜덤 치환을 적용하며, 마지막 라운드의 ROT4에서 사용된 출력 인코딩 함수는 차후 암호문 출력부(300)에서 출력되는 인코딩 암호문에서 사용된 인코딩 함수와 동일한 함수이다. 즉, 24번째 라운드 함수부의 로테이션 테이블 구성시 적용되는 출력 인코딩 함수로 인하여 출력값이 인코딩 되고, 이 값이 인코딩 암호문이 된다.Then, the output encoding processor 240 applies the output encoding function to the 4-bit output encoding function to perform a random replacement operation on the output value of the round function (S50). In this case, the output encoding function is not a random table, but a 4-bit unit encoding function for applying independent random substitution (a shear function) to the output value when each table is constructed is applied. The output encoding function used in the ROT4 of the last round is the same function as the encoding function used in the encoded cipher text output from the next cipher text output unit 300. [ That is, the output value is encoded due to the output encoding function applied when the rotation table of the 24th round function unit is constructed, and this value becomes the encoded cipher text.

그리고 라운드 키 각각에 대한 라운드 함수부가 모두 수행될 때까지 직전 수행된 라운드 함수부의 출력 인코딩 처리부(240)에서 출력되는 결과값을 다음 라운드 함수부의 입력 인코딩 처리부(210)의 입력값으로 반복되어 제공된다(S60).The result output from the output encoding processing unit 240 of the round function unit performed immediately before the round function addition for each round key is performed is repeatedly provided to the input value of the input encoding processing unit 210 of the next round function unit (S60).

한편, 모든 라운드 키 각각에 대한 라운드 함수부 수행이 완료되면 암호문 출력부(300)를 통해 4-비트 랜덤 치환 32개로 인코딩된 인코딩 암호문을 출력한다(S70).
When the round function is performed for all the round keys, the encoded ciphertext encoded with 32-bit random permutation is output through the cipher text output unit 300 at step S70.

이와 같이, 본 발명의 모듈러 덧셈 테이블과 비트-로테이션 테이블에 각각의 화이트 박스 구현 기법을 적용한 실시예로서 상세히 설명하면 다음과 같다.As described above, the embodiments of applying the white-box implementation techniques to the modular addition table and the bit-rotation table of the present invention will be described in detail as follows.

일반적으로 화이트 박스 암호에서는 암호화키를 그대로 입력받는 경우, 공격자가 키를 관찰할 수 있기 때문에 취약하다. 그러므로 테이블 내부에 키를 숨겨야 한다. 즉, 하나의 고정된 키

Figure 112015011993340-pat00026
에 대하여 키 XOR 연산 부분을 미리 계산하여 테이블로 구성하여야 한다. 따라서 4-비트 덧셈 테이블의 입력을 다음 수학식 1과 같이 하여 테이블을 구성한다. 이때,
Figure 112015011993340-pat00027
라 정의한다.Generally, in a white-box password, when an encryption key is input as it is, it is vulnerable because an attacker can observe the key. So you have to hide the keys inside the table. That is, one fixed key
Figure 112015011993340-pat00026
The key XOR operation part must be calculated in advance and configured as a table. Therefore, a table is constructed by inputting the 4-bit addition table as shown in the following equation (1). At this time,
Figure 112015011993340-pat00027
.

Figure 112015011993340-pat00028
Figure 112015011993340-pat00028

이때, 상기 수학식 1의 각 변수들

Figure 112015011993340-pat00029
,
Figure 112015011993340-pat00030
,
Figure 112015011993340-pat00031
Figure 112015011993340-pat00032
,
Figure 112015011993340-pat00033
,
Figure 112015011993340-pat00034
로 각각 정의된다.At this time, the variables of Equation (1)
Figure 112015011993340-pat00029
,
Figure 112015011993340-pat00030
,
Figure 112015011993340-pat00031
The
Figure 112015011993340-pat00032
,
Figure 112015011993340-pat00033
,
Figure 112015011993340-pat00034
Respectively.

한편, 테이블 내부에 키를 숨긴다고 하여도 공격자는 테이블 값을 관찰함으로써 키를 쉽게 알아 낼 수 있다. 이를 방지하기 위해 각각의 테이블에 균등 분포를 따르는 랜덤 인코딩 함수를 적용한다. 즉,

Figure 112015011993340-pat00035
를 라운드 연산을 위한 테이블 함수라 하고,
Figure 112015011993340-pat00036
,
Figure 112015011993340-pat00037
를 전단사 함수라 하면, 다음 수학식 2와 같은 테이블
Figure 112015011993340-pat00038
를 만들 수 있다.On the other hand, even if the key is hidden inside the table, the attacker can easily recognize the key by observing the table value. To prevent this, a random encoding function with uniform distribution is applied to each table. In other words,
Figure 112015011993340-pat00035
Is a table function for round operations,
Figure 112015011993340-pat00036
,
Figure 112015011993340-pat00037
Is a shear yarn function, the following equation (2)
Figure 112015011993340-pat00038
.

Figure 112015011993340-pat00039
Figure 112015011993340-pat00039

이때,

Figure 112015011993340-pat00040
는 입력 인코딩을,
Figure 112015011993340-pat00041
는 출력 인코딩을 나타낸다.At this time,
Figure 112015011993340-pat00040
The input encoding,
Figure 112015011993340-pat00041
Represents the output encoding.

또한, 테이블

Figure 112015011993340-pat00042
의 출력값이 테이블
Figure 112015011993340-pat00043
의 입력인 경우, 테이블
Figure 112015011993340-pat00044
의 출력 인코딩과
Figure 112015011993340-pat00045
의 입력 인코딩이 서로 상쇄가 되도록 선택함으로써, 다음 수학식 3과 같이 두 테이블을 연결시킬 수 있다.In addition,
Figure 112015011993340-pat00042
Lt; RTI ID = 0.0 >
Figure 112015011993340-pat00043
, The table
Figure 112015011993340-pat00044
The output encoding of
Figure 112015011993340-pat00045
So that the input encodings of the two tables can be offset from each other.

Figure 112015011993340-pat00046
,
Figure 112015011993340-pat00047
일 때,
Figure 112015011993340-pat00046
,
Figure 112015011993340-pat00047
when,

Figure 112015011993340-pat00048
Figure 112015011993340-pat00048

이처럼, 본 발명은 먼저 테이블을 구성한 후, 각각의 테이블을 참조함으로써 라운드 연산을 수행하여 암호화를 수행한다. 즉, 화이트박스 LEA의 암호화는 총 24라운드 동안 각각의 중간 값에 대해서 테이블을 연속적으로 참조함으로써 수행된다.
As described above, the present invention first constructs a table, and performs round-up operations by referring to the respective tables to perform encryption. That is, the encryption of the white box LEA is performed by consecutively referencing the table for each intermediate value for a total of 24 rounds.

상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술적 분야의 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. It will be apparent to those skilled in the art that various modifications may be made without departing from the scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

Claims (10)

인코딩된 인코딩 평문을 입력받은 평문 입력부와,
상기 평문 입력부에서 입력된 인코딩 평문 또는 직전 수행된 라운드 함수부의 결과값을 입력받아 랜덤 테이블을 기반으로 모듈러 덧셈 및 로테이션 연산을 수행하여 선형변환을 이용한 라운드 키 연산위치의 분산처리 결과를 출력하는 라운드 함수부와,
상기 라운드 함수부에서 처리된 출력값 중 마지막 라운드 키에 대하여 수행이 완료되어 출력되는 결과값인 인코딩 암호문을 출력하는 암호문 출력부를 포함하여 구성되는 것을 특징으로 하는 LEA 블록암호의 화이트박스 암호 구현 장치.
A plain text input unit to which an encoded plain text is inputted,
A round function for inputting the encoding plain text input from the plain text input unit or a result value of the round function unit performed immediately before and outputting a result of the round key operation position distribution processing by performing modular addition and rotation operations based on the random table, Wealth,
And a ciphertext output unit for outputting an encoded ciphertext, which is a result value that is completed and output with respect to a last round key among the output values processed in the round function unit.
제 1 항에 있어서,
상기 인코딩 평문 및 인코딩 암호문은 128-비트 블록암호 알고리즘에 따른 인코딩 함수를 적용하여 4-비트 랜덤 치환되어 32개로 인코딩되는 것을 특징으로 하는 LEA 블록암호의 화이트박스 암호 구현 장치.
The method according to claim 1,
Wherein the encoding plaintext and the encoded ciphertext are encoded in 32-bit by 4-bit random substitution using an encoding function according to a 128-bit block cipher algorithm.
제 1 항에 있어서, 상기 라운드 함수부는
인코딩된 라운드 함수 입력값을 4-비트 단위의 입력 인코딩 함수에 적용하여 인코딩을 제거하는 입력 인코딩 처리부와,
각각의 라운드 키마다 독립적으로 구성된 XOR 덧셈 테이블을 기반으로 키 XOR 연산 및 32-비트 단위 모듈러 덧셈 연산을 진행하는 제 1 연산부와,
비트-로테이션 크기 및 방향에 따라 독립적으로 구성된 비트-로테이션 테이블을 기반으로 로테이션 연산을 진행하는 제 2 연산부와,
4-비트 단위의 출력 인코딩 함수에 적용하여 상기 제 2 연산부에서 출력되는 라운드 함수의 출력값에 대한 랜덤 치환하는 출력 인코딩 처리부를 포함하여 이루어지는 것을 특징으로 하는 LEA 블록암호의 화이트박스 암호 구현 장치.
The apparatus of claim 1, wherein the round function unit
An input encoding processor for applying the input round function value to the 4-bit input encoding function to remove the encoding,
A first operation unit for performing a key XOR operation and a 32-bit unit modular addition operation based on an XOR addition table independently configured for each round key,
A second operation unit for performing a rotation operation based on a bit-rotation table independently configured according to bit-rotation size and direction,
And an output encoding unit for applying the output encoding function of the LEA block cipher to the 4-bit output encoding function to randomly replace the output value of the round function output from the second calculation unit.
제 3 항에 있어서,
상기 입력 인코딩 처리부에서 적용되는 입력 인코딩 함수는 직전 단계의 인코딩 함수의 역함수로서, 입력된 인코딩 평문에서 적용된 인코딩 함수와 역함수 관계를 이루는 것을 특징으로 하는 LEA 블록암호의 화이트박스 암호 구현 장치.
The method of claim 3,
Wherein the input encoding function applied in the input encoding processing unit is an inverse function of the encoding function of the previous stage and has an inverse relationship with an encoding function applied in the input encoding plain text.
제 3 항에 있어서,
상기 출력 인코딩 처리부에서 적용되는 출력 인코딩 함수는 상기 XOR 덧셈 테이블 및 비트-로테이션 테이블 중 어느 하나를 구성시 독립적인 랜덤 치환을 적용하는 함수인 것을 특징으로 하는 LEA 블록암호의 화이트박스 암호 구현 장치.
The method of claim 3,
Wherein the output encoding function applied in the output encoding processing unit is a function that applies independent random substitution when any one of the XOR addition table and the bit-rotation table is configured.
제 3 항에 있어서,
상기 제 1 연산부는 4-비트 단위 덧셈기를 이용하여 구성된 4-비트 덧셈 테이블을 이용하여 각각의 라운드 키마다 독립적으로 구성된 4-비트 XOR 덧셈 테이블을 구성하고, 32-비트 입력 워드 각각에 대하여 4-비트 단위 비트열로 분할하여 상기 4-비트 XOR 덧셈 테이블을 이용한 32-비트 XOR 덧셈 테이블을 구성하고, 상기 32-비트 XOR 덧셈 테이블을 이용하여 라운드 키 각각에 XOR 연산 및 32-비트 단위 모듈러(mod) 덧셈 연산을 진행하는 것을 특징으로 하는 LEA 블록암호의 화이트박스 암호 구현 장치.
The method of claim 3,
The first arithmetic unit constructs a 4-bit XOR addition table independently configured for each round key using a 4-bit addition table constructed using a 4-bit unit adder, and generates 4- Bit XOR addition table by using the 4-bit XOR addition table by dividing the 32-bit unit bit string into 32-bit units, ) Of the LEA block cipher.
제 3 항에 있어서,
상기 제 2 연산부는 4-비트 로테이션 덧셈기를 이용하여 구성된 4-비트 로테이션 테이블을 이용하여 각각의 로테이션 방향 및 크기마다 독립적으로 구성된 32-비트 로테이션 테이블을 구성하고, 32-비트 입력 워드 각각에 대하여 상기 32-비트 로테이션 테이블을 이용하여 로테이션 연산을 진행하는 것을 특징으로 하는 LEA 블록암호의 화이트박스 암호 구현 장치.
The method of claim 3,
The second arithmetic unit constructs a 32-bit rotation table configured independently for each rotation direction and size by using a 4-bit rotation table configured using a 4-bit rotation adder, and for each 32-bit input word, And a rotation operation is performed using a 32-bit rotation table.
(A) 인코딩 평문을 포함하는 인코딩된 입력값을 입력 인코딩 처리부를 통해 4-비트 단위의 입력 인코딩 함수에 적용하여 인코딩된 라운드 함수의 입력값을 디코딩하는 단계와,
(B) 제 1 연산부를 통해 각각의 라운드 키마다 독립적으로 구성된 모듈러 덧셈 테이블을 기반으로 32-비트 단위로 XOR 연산 및 32-비트 단위 모듈러(mod) 덧셈 연산을 진행하여 32-비트 출력 워드를 생성하는 단계와,
(C) 제 2 연산부를 통해 상기 32-비트 출력 워드 단위로 출력되는 출력 데이터를 입력으로 32-비트 단위로 구성된 비트-로테이션 테이블을 기반으로 로테이션 연산을 진행하는 단계와,
(D) 출력 인코딩 처리부를 통해 4-비트 단위의 출력 인코딩 함수에 적용하여 상기 출력되는 라운드 함수의 출력값에 대한 랜덤 치환 작업을 수행하는 단계와,
(E) 상기 라운드 함수의 출력 인코딩 처리로 인하여 인코딩된 출력값인 인코딩 암호문을 암호문 출력부를 통해 출력하는 단계를 포함하여 이루어지는 것을 특징으로 하는 LEA 블록암호의 화이트박스 암호 구현 방법.
(A) decoding an input value of an encoded round function by applying an encoded input value including an encoding plain text to an input encoding function of a 4-bit unit through an input encoding processing unit,
(B) A 32-bit output word is generated by performing an XOR operation and a 32-bit unit modular addition operation in 32-bit units based on a modulo addition table independently configured for each round key through a first operation unit , ≪ / RTI &
(C) performing a rotation operation based on a bit-rotation table composed of 32-bit units by receiving output data output in units of the 32-bit output words through a second operation unit,
Bit output encoding function through a (D) output encoding processor, performing a random replacement operation on the output value of the round function,
(E) outputting an encoded cipher text, which is an encoded output value due to an output encoding process of the round function, through a cipher text output unit.
제 8 항에 있어서, 상기 (B) 단계는
4-비트 단위 덧셈기를 이용하여 4-비트 덧셈 테이블을 구성하는 단계와,
상기 구성된 4-비트 덧셈 테이블을 각각의 라운드 키마다 독립적으로 구성된 4-비트 XOR 덧셈 테이블을 구성하는 단계와,
32-비트 입력 워드 각각에 대하여 4-비트 단위 비트열로 분할하여 상기 4-비트 XOR 덧셈 테이블을 이용한 32-비트 XOR 덧셈 테이블을 구성하는 단계와,
상기 구성된 32-비트 XOR 덧셈 테이블을 이용하여 라운드 키 각각에 XOR 연산 및 32-비트 단위 모듈러(mod) 덧셈 연산을 진행하여 32-비트 출력 워드를 생성하는 단계를 포함하여 이루어지는 것을 특징으로 하는 LEA 블록암호의 화이트박스 암호 구현 방법.
9. The method of claim 8, wherein step (B)
Constructing a 4-bit addition table using a 4-bit unit adder,
Constructing the 4-bit adder table with 4-bit XOR addition tables independently configured for each round key,
Constructing a 32-bit XOR addition table using the 4-bit XOR addition table by dividing each 32-bit input word into 4-bit unit bit strings;
And performing a XOR operation and a 32-bit unit modular addition operation on each of the round keys using the configured 32-bit XOR addition table to generate a 32-bit output word. How to implement a white - box password for passwords.
제 8 항에 있어서, 상기 (C) 단계는
4-비트 로테이션 덧셈기를 이용하여 4-비트 로테이션 테이블을 구성하는 단계와,
상기 구성된 4-비트 로테이션 테이블을 각각의 로테이션 방향 및 크기마다 독립적으로 구성된 32-비트 로테이션 테이블을 구성하는 단계와,
32-비트 입력 워드 각각에 대하여 상기 32-비트 로테이션 테이블을 이용하여 로테이션 연산을 진행하여 32-비트 출력 워드를 생성하는 단계를 포함하여 이루어지는 것을 특징으로 하는 LEA 블록암호의 화이트박스 암호 구현 방법.
9. The method of claim 8, wherein step (C)
Constructing a 4-bit rotation table using a 4-bit rotation adder,
Configuring the configured 4-bit rotation table as a 32-bit rotation table configured independently for each rotation direction and size,
And generating a 32-bit output word by performing a rotation operation using the 32-bit rotation table for each of the 32-bit input words to generate a 32-bit output word.
KR1020150017285A 2015-02-04 2015-02-04 Apparatus and method for white-box cryptography implementation of LEA block cipher KR101623503B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150017285A KR101623503B1 (en) 2015-02-04 2015-02-04 Apparatus and method for white-box cryptography implementation of LEA block cipher

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150017285A KR101623503B1 (en) 2015-02-04 2015-02-04 Apparatus and method for white-box cryptography implementation of LEA block cipher

Publications (1)

Publication Number Publication Date
KR101623503B1 true KR101623503B1 (en) 2016-05-23

Family

ID=56104408

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150017285A KR101623503B1 (en) 2015-02-04 2015-02-04 Apparatus and method for white-box cryptography implementation of LEA block cipher

Country Status (1)

Country Link
KR (1) KR101623503B1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190016285A (en) 2017-08-08 2019-02-18 국민대학교산학협력단 Method for controlling white-box cipher mode of operations which is computer-executable and apparatus of the same
KR20190020988A (en) 2017-08-22 2019-03-05 국민대학교산학협력단 Computer-executable lightweight white-box cryptographic method and apparatus thereof
WO2019050343A1 (en) * 2017-09-08 2019-03-14 국민대학교산학협력단 Method and apparatus for generating random number on basis of block cipher to which white-box cryptography is applied
CN110943841A (en) * 2018-09-24 2020-03-31 恩智浦有限公司 Password authentication using white-box encryption
KR20220060349A (en) * 2020-11-04 2022-05-11 주식회사 엔에스에이치씨 Improved white-box encryption apparatus of aria block cipher
KR20220060304A (en) * 2020-11-04 2022-05-11 주식회사 엔에스에이치씨 White-box encryption apparatus of aria block cipher
CN116668007A (en) * 2023-08-01 2023-08-29 ***量子科技有限公司 Encryption communication method, terminal and system based on white-box SM4 algorithm
KR20230156861A (en) 2022-05-06 2023-11-15 한성대학교 산학협력단 Korean lightweight encryption method using quantum circuits

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100309565B1 (en) 1998-09-25 2001-12-17 김용만 A method for data encryption using feistel network
JP2004184567A (en) 2002-12-02 2004-07-02 Sony Corp Aes block cryptography and encryption circuit of the same
US20090060176A1 (en) 2005-04-28 2009-03-05 Kaoru Yokota Program converter, encrypting device, and encrypting method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100309565B1 (en) 1998-09-25 2001-12-17 김용만 A method for data encryption using feistel network
JP2004184567A (en) 2002-12-02 2004-07-02 Sony Corp Aes block cryptography and encryption circuit of the same
US20090060176A1 (en) 2005-04-28 2009-03-05 Kaoru Yokota Program converter, encrypting device, and encrypting method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김신효 외 2명, 화이트박스 암호 및 응용 기술 동향 분석, 전자통신동향분석 제25권제5호 (2010.10.)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190016285A (en) 2017-08-08 2019-02-18 국민대학교산학협력단 Method for controlling white-box cipher mode of operations which is computer-executable and apparatus of the same
KR20190020988A (en) 2017-08-22 2019-03-05 국민대학교산학협력단 Computer-executable lightweight white-box cryptographic method and apparatus thereof
KR102033351B1 (en) * 2017-08-22 2019-10-17 국민대학교산학협력단 Computer-executable lightweight white-box cryptographic method and apparatus thereof
WO2019050343A1 (en) * 2017-09-08 2019-03-14 국민대학교산학협력단 Method and apparatus for generating random number on basis of block cipher to which white-box cryptography is applied
KR20190028066A (en) * 2017-09-08 2019-03-18 국민대학교산학협력단 A method of generating random number based on block cipher with whitebox encryption and apparatus thereof
KR101971001B1 (en) 2017-09-08 2019-04-22 국민대학교산학협력단 A method of generating random number based on block cipher with whitebox encryption and apparatus thereof
CN110943841A (en) * 2018-09-24 2020-03-31 恩智浦有限公司 Password authentication using white-box encryption
KR20220060349A (en) * 2020-11-04 2022-05-11 주식회사 엔에스에이치씨 Improved white-box encryption apparatus of aria block cipher
KR20220060304A (en) * 2020-11-04 2022-05-11 주식회사 엔에스에이치씨 White-box encryption apparatus of aria block cipher
KR102405821B1 (en) 2020-11-04 2022-06-08 주식회사 엔에스에이치씨 Improved white-box encryption apparatus of aria block cipher
KR102405819B1 (en) 2020-11-04 2022-06-08 주식회사 엔에스에이치씨 White-box encryption apparatus of aria block cipher
KR20230156861A (en) 2022-05-06 2023-11-15 한성대학교 산학협력단 Korean lightweight encryption method using quantum circuits
CN116668007A (en) * 2023-08-01 2023-08-29 ***量子科技有限公司 Encryption communication method, terminal and system based on white-box SM4 algorithm
CN116668007B (en) * 2023-08-01 2023-10-31 ***量子科技有限公司 Encryption communication method, terminal and system based on white-box SM4 algorithm

Similar Documents

Publication Publication Date Title
KR101623503B1 (en) Apparatus and method for white-box cryptography implementation of LEA block cipher
US11507705B2 (en) Determining cryptographic operation masks for improving resistance to external monitoring attacks
CN108964872B (en) Encryption method and device based on AES
CN105049400B (en) S box is split in whitepack implementation to prevent from attacking
CN107005404B (en) Processor apparatus implementing executable white-box mask implementations of cryptographic algorithms
US8428251B2 (en) System and method for stream/block cipher with internal random states
JP5861018B1 (en) Computing device configured by table network
US20120159186A1 (en) Securing the implementation of a cryptographic process using key expansion
US8699702B2 (en) Securing cryptographic process keys using internal structures
RU2696334C1 (en) Device and method for calculating block cipher
KR102397579B1 (en) Method and apparatus for white-box cryptography for protecting against side channel analysis
CA3007348A1 (en) Fast format-preserving encryption for variable length data
KR20120089396A (en) Encryption apparatus and encryption method thereof
KR101913644B1 (en) Code-based encryption apparatus and method capable of message authentication
JP2020521392A (en) Cryptographic apparatus and method
JP2017187724A (en) Encryption device, encryption method, decryption device, and decryption method
CN105184115A (en) Method For Including An Implicit Integrity Or Authenticity Check Into A White-box Implementation
JP4586163B2 (en) Encryption system
WO2015166701A1 (en) Encryption method, program, and system
CN107592963B (en) Method and computing device for performing secure computations
CN107534550B (en) Cryptographic apparatus, cryptographic method, computing apparatus, and computer-readable storage medium
CN115987490A (en) Lightweight block cipher algorithm white-box construction method suitable for ARX structure
CN115730296A (en) Secure execution of cryptographic processes
AB et al. A New Security Mechanism for Secured Communications Using Steganography and CBA
KR101584220B1 (en) Encoding Method for Maintaining Sorting Order of Encrypted Data

Legal Events

Date Code Title Description
GRNT Written decision to grant