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 PDFInfo
- 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
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
-
- 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/12—Transmitting 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
Description
본 발명은 암호키를 보호하는 기술에 관한 것으로, 특히 블록암호 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.
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 암호키를 포함한 암호 알고리즘을 다수의 테이블로 구성하여 암호 알고리즘의 소스코드나 메모리 영역의 조사 등을 통해 암호키를 찾는 것을 원천적으로 막을 수 있는 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
참고로 본 명세서에서는 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
한편, 상기 입력 인코딩 처리부(210)에서 적용되는 입력 인코딩 함수는 직전 단계의 인코딩 함수의 역함수로서, 입력된 인코딩 평문에서 적용된 인코딩 함수와 역함수 관계를 이룬다. 그리고 상기 출력 인코딩 처리부(240)에서 적용되는 출력 인코딩 함수는 각각의 테이블 구성시 독립적인 랜덤 치환을 적용하는 함수이다.Meanwhile, the input encoding function applied in the input
또한 상기 제 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
그리고 상기 제 2 연산부(230)는 도 4b(b)에서 도시하고 있는 4-비트 로테이션 덧셈기를 이용하여 4-비트 로테이션 테이블을 구성하고, 도 4b(a)에서 도시하고 있는 것과 같이 각각의 로테이션 방향 및 크기마다 독립적으로 구성된 32-비트 로테이션 테이블을 구성한다. 이어 32-비트 입력 워드(X,Y) 각각에 대하여 상기 구성된 32-비트 로테이션 테이블을 이용하여 로테이션 연산을 진행하여 32-비트 출력 워드(Z)를 생성한다. 참고로 도 4a는 인코딩 전에 구성된 4-비트 로테이션 테이블 및 32-비트 로테이션 테이블을 나타낸다.
The second
이와 같이 구성된 본 발명에 따른 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
이때, 상기 인코딩 평문을 포함하는 인코딩된 라운드 함수 입력은 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-비트 비트열 , , 와 1-비트열 , 이 구성된 4-비트 단위 덧셈기를 이용하여 4-비트 덧셈 테이블이 구성된 후, 상기 구성된 4-비트 덧셈 테이블을 각각의 라운드 키마다 독립적으로 구성함으로써 도 2(b)에서 도시하고 있는 것과 같이 가능한 모든 입력 , , 에 대하여 비트별 덧셈 연산을 수행한 결과를 (5-비트)라고 할 때, 의 최상위 비트를 에 저장하고 나머지 4-비트를 로 하여 출력하는 함수로서 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 , , And 1-bit columns , 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, , , Bit additive operation is performed on (5-bit), < / RTI > The most significant bit of And the remaining 4-bit Bit XOR addition table.
그리고 32-비트 입력 워드 각각에 대하여 4-비트 단위 비트열로 분할하여 도 3b에서 도시하고 있는 것과 같이 상기 4-비트 XOR 덧셈 테이블을 이용한 32-비트 XOR 덧셈 테이블을 구성한 후, 워드 X, Y가 입력이고 Z가 출력인 경우, 각각의 입력값은 순차적으로 4-비트 단위인 , 로 분할되고, 과 함께 32-비트 XOR 덧셈 테이블을 통과하면서 각각의 4-비트 XOR 덧셈 테이블 별로 얻어진 를 연접하여 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 , / RTI > Bit XOR summation table with each 32-bit XOR summation table 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
단계 S40을 도면을 참조하여 상세히 설명하면, 도 6에서 도시하고 있는 것과 같이, 왼쪽으로 9-비트 로테이션을 기준으로 설명하면 입출력 워드를 각각 X, Z라고 하면, 로테이션 결과에서 을 살펴보면, 의 하위 3-비트와 의 최상위 1-비트로 이루어진다. 그리고 나머지 비트열 들에 대해서도 같은 방법을 적용한다.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, However, The lower 3-bits of 1 " Then, The same method applies.
이를 통해 32-비트 입출력을 각각 X, Z라 하면, 도 4b(b)에서 도시하고 있는 4-비트 로테이션 덧셈기를 이용하여 4-비트 로테이션 테이블을 구성한다. 이때, 상기 4-비트 로테이션 테이블은 입력 X를 4-비트 비트열 들로 분할된 후, 모든 에 대하여 과 를 비트-로테이션 테이블에 입력되어 출력값 을 얻는다.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- And then all about and Is input to the bit-rotation table, .
따라서 상기 구성된 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
그리고 라운드 키 각각에 대한 라운드 함수부가 모두 수행될 때까지 직전 수행된 라운드 함수부의 출력 인코딩 처리부(240)에서 출력되는 결과값을 다음 라운드 함수부의 입력 인코딩 처리부(210)의 입력값으로 반복되어 제공된다(S60).The result output from the output
한편, 모든 라운드 키 각각에 대한 라운드 함수부 수행이 완료되면 암호문 출력부(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
이와 같이, 본 발명의 모듈러 덧셈 테이블과 비트-로테이션 테이블에 각각의 화이트 박스 구현 기법을 적용한 실시예로서 상세히 설명하면 다음과 같다.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.
일반적으로 화이트 박스 암호에서는 암호화키를 그대로 입력받는 경우, 공격자가 키를 관찰할 수 있기 때문에 취약하다. 그러므로 테이블 내부에 키를 숨겨야 한다. 즉, 하나의 고정된 키 에 대하여 키 XOR 연산 부분을 미리 계산하여 테이블로 구성하여야 한다. 따라서 4-비트 덧셈 테이블의 입력을 다음 수학식 1과 같이 하여 테이블을 구성한다. 이때, 라 정의한다.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 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, .
이때, 상기 수학식 1의 각 변수들 , , 는 , , 로 각각 정의된다.At this time, the variables of Equation (1) , , The , , Respectively.
한편, 테이블 내부에 키를 숨긴다고 하여도 공격자는 테이블 값을 관찰함으로써 키를 쉽게 알아 낼 수 있다. 이를 방지하기 위해 각각의 테이블에 균등 분포를 따르는 랜덤 인코딩 함수를 적용한다. 즉, 를 라운드 연산을 위한 테이블 함수라 하고, , 를 전단사 함수라 하면, 다음 수학식 2와 같은 테이블 를 만들 수 있다.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, Is a table function for round operations, , Is a shear yarn function, the following equation (2) .
이때, 는 입력 인코딩을, 는 출력 인코딩을 나타낸다.At this time, The input encoding, Represents the output encoding.
또한, 테이블 의 출력값이 테이블 의 입력인 경우, 테이블 의 출력 인코딩과 의 입력 인코딩이 서로 상쇄가 되도록 선택함으로써, 다음 수학식 3과 같이 두 테이블을 연결시킬 수 있다.In addition, Lt; RTI ID = 0.0 > , The table The output encoding of So that the input encodings of the two tables can be offset from each other.
, 일 때, , when,
이처럼, 본 발명은 먼저 테이블을 구성한 후, 각각의 테이블을 참조함으로써 라운드 연산을 수행하여 암호화를 수행한다. 즉, 화이트박스 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.
상기 인코딩 평문 및 인코딩 암호문은 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.
인코딩된 라운드 함수 입력값을 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.
상기 입력 인코딩 처리부에서 적용되는 입력 인코딩 함수는 직전 단계의 인코딩 함수의 역함수로서, 입력된 인코딩 평문에서 적용된 인코딩 함수와 역함수 관계를 이루는 것을 특징으로 하는 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.
상기 출력 인코딩 처리부에서 적용되는 출력 인코딩 함수는 상기 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.
상기 제 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.
상기 제 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.
(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.
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.
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.
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)
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)
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 |
-
2015
- 2015-02-04 KR KR1020150017285A patent/KR101623503B1/en active IP Right Grant
Patent Citations (3)
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)
Title |
---|
김신효 외 2명, 화이트박스 암호 및 응용 기술 동향 분석, 전자통신동향분석 제25권제5호 (2010.10.) |
Cited By (14)
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 |