KR102033351B1 - Computer-executable lightweight white-box cryptographic method and apparatus thereof - Google Patents

Computer-executable lightweight white-box cryptographic method and apparatus thereof Download PDF

Info

Publication number
KR102033351B1
KR102033351B1 KR1020170106010A KR20170106010A KR102033351B1 KR 102033351 B1 KR102033351 B1 KR 102033351B1 KR 1020170106010 A KR1020170106010 A KR 1020170106010A KR 20170106010 A KR20170106010 A KR 20170106010A KR 102033351 B1 KR102033351 B1 KR 102033351B1
Authority
KR
South Korea
Prior art keywords
round
gfn
whitebox
white box
encryption
Prior art date
Application number
KR1020170106010A
Other languages
Korean (ko)
Other versions
KR20190020988A (en
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 KR1020170106010A priority Critical patent/KR102033351B1/en
Publication of KR20190020988A publication Critical patent/KR20190020988A/en
Application granted granted Critical
Publication of KR102033351B1 publication Critical patent/KR102033351B1/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
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

본 발명은 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법은 (a) 평문을 생성하는 단계, (b) 라운드 함수를 라운드 키로 내부 인코딩한 룩업 테이블로서 생성한 화이트박스 암호형 GFN(Generalized Feistel Network)을 생성하는 단계 및 (c) 상기 외부 인코딩된 평문을 상기 화이트박스 암호형 GFN에 제공하여 암호문을 제공하는 단계를 포함한다.The present invention provides a computer-implemented lightweight whitebox encryption method comprising the steps of: (a) generating a plain text, (b) generating a whitebox cryptographic GFN (Generalized Feistel Network) generated as a lookup table with the round function internally encoded with a round key. And (c) providing the ciphertext by providing the externally encoded plaintext to the whitebox encrypted GFN.

Description

컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치{COMPUTER-EXECUTABLE LIGHTWEIGHT WHITE-BOX CRYPTOGRAPHIC METHOD AND APPARATUS THEREOF}COMPUTER-EXECUTABLE LIGHTWEIGHT WHITE-BOX CRYPTOGRAPHIC METHOD AND APPARATUS THEREOF}

본 발명은 암호화 기술에 관한 것으로, 보다 상세하게는, 사물인터넷의 경량 환경을 구축할 수 있으면서 화이트박스 공격에 안전한 화이트박스 암호형 GFN(Generalized Feistel Network) 구조를 통해 보안을 향상시킨 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치에 관한 것이다.The present invention relates to encryption technology, and more particularly, a computer-implemented light weight which improves security through a white box cryptographic Generalized Feistel Network (GFN) structure that is able to construct a lightweight environment of the Internet of Things and is safe against white box attacks. A method and apparatus for whitebox encryption are provided.

DES(Data Encryption Standard) 기반의 블록 암호 기술은 암호문을 만들기 위해 암호 키와 알고리즘이 데이터 블록 단위로 적용하여 암호화를 수행한다. 보다 구체적으로, DES 기반의 블록 암호 기술은 평문의 동일 블록들이 하나의 메시지에서 동일한 암호문으로 되지 않도록 하기 위해 이전 암호 블록의 암호문을 다음 블록에 순서대로 적용하고, 같은 시간에 암호화된 동일 메시지들이 같은 암호문을 만들지 않도록 난수 발생기에 의한 초기화 벡터를 평문의 첫 블록에 조합함으로써 다음 블록들이 이전 암호 블록과 다른 암호문이 되도록 할 수 있다.Block encryption technology based on DES (Data Encryption Standard) performs encryption by applying encryption keys and algorithms in units of data blocks to create a ciphertext. More specifically, the DES-based block ciphering technique applies ciphertext from the previous cipher block to the next block in order so that the same blocks of plaintext are not the same ciphertext in one message, and the same messages encrypted at the same time are By combining the initialization vector by the random number generator with the first block of plaintext so that no ciphertext is produced, the next blocks can be different from the previous cipher block.

일반화된 파이스텔 네트워크(Generalized Feistel networks, GFN) 기반의 블록 암호 기술은 그 대표적인 예로서, 블록 암호를 구성하기 위해 키(key)를 사용하여 네트워크 변환을 수행하고, 단일 라운드(round) 별로 수행되는 암호화 단계를 여러 번 반복하여 각 라운드 단계에서의 라운드 함수(round function) F의 반복을 통해 암호화 연산을 수행한다. 이러한 내용은 도 1을 참조하여 보다 상세히 설명하도록 한다.Block cipher technology based on Generalized Feistel networks (GFN) is a typical example, which performs network transformation using a key to form a block cipher, and performs a single round. By repeating the encryption step several times, the encryption operation is performed by repeating the round function F in each round step. This will be described in more detail with reference to FIG. 1.

도 1은 일반화된 파이스텔 네트워크를 나타내는 도면이다. 보다 구체적으로, 도 1(a), 도 1(b) 및 도 1(c) 각각은 제1 유형, 제2 유형 및 제3 유형의 일반화된 파이스텔 네트워크를 사용하는 블록 암호 기술을 나타내고, 도 1(d)는 제3 유형 중 하나인 LEA(Lightweight Encryption Algorithm)의 암호화 과정을 나타낸다. 도 1(a)에 있는 제1 유형(Type-I)의 대표적인 예로는 CAST-256 알고리즘이 있고, 도 1(b)에 있는 제2 유형(Type-II)의 대표적인 예로는 HIGHT 알고리즘이 있으며, 도 1(c)에 있는 제3 유형(Type-III)의 대표적인 예로는 LEA이 있다.1 is a diagram illustrating a generalized Fiestel network. More specifically, each of FIGS. 1 (a), 1 (b) and 1 (c) shows a block cipher technique using a first type, second type and third type of generalized Fiestel network, and FIG. 1 (d) represents an encryption process of a Lightweight Encryption Algorithm (LEA), which is one of the third types. A representative example of the first type (Type-I) in Figure 1 (a) is a CAST-256 algorithm, a representative example of the second type (Type-II) in Figure 1 (b) is a HIGHT algorithm, A representative example of the third type (Type-III) in FIG. 1C is LEA.

이 중에서, LEA는 국가보안기술연구소에서 개발한 128 비트의 데이터 블록을 암호화하는 알고리즘으로서, S-BOX(Substitution-box)의 사용을 피하고 ARX(Addition, Rotation, XOR) 형태로 구성되어 경량화 구현이 가능하고, AES(Advanced Encryption Standard)보다 빠른 연산 속도를 제공하며 HIGHT 알고리즘보다 더 높은 수준의 안전성을 제공할 수 있다. LEA 알고리즘은 128 비트에 대해 키 128, 192 및 256 비트를 암호화하며 이때의 각각의 라운드 수는 24, 28 및 32 라운드이다.Among these, the LEA is an algorithm for encrypting a 128-bit block of data developed by the National Security Research Institute. The LEA avoids the use of S-BOX (Substitution-box) and consists of ARX (Addition, Rotation, XOR) to reduce the weight. Yes, it provides faster computational speeds than the Advanced Encryption Standard (AES) and can provide a higher level of safety than the HIGHT algorithm. The LEA algorithm encrypts keys 128, 192, and 256 bits for 128 bits, with each round being 24, 28, and 32 rounds.

도 1(d)의 좌측 블록도에서, 암호화 과정은 다음과 같이 수행된다. 각 라운드 함수의 연산과정에서, 입력 값은 4 개의 32 비트 내부상태변수로 구성된 128 비트 입력 값과 192 비트의 라운드 키이며 출력 값은 128 비트의 내부상태변수이다. 연산에서 키는 XOR 과정으로 처리되며, 각 블록비트는 화살표 방향으로 내려오며 Addition 과정과 Rotation 과정을 거치게 된다. 도 1(d)에서, ROR은 오른쪽 비트회전을 의미하며, ROL은 왼쪽 비트회전을 의미한다. 각각의 비트회전에 표시된 숫자는 그 숫자만큼 비트가 Rotation함을 의미한다. 모든 연산이 끝난 이후 각 블록이 왼쪽으로 이동하며, 가장 앞자리의 블록 변수는 최하단으로 이동하는 것으로 암호화 라운드함수의 연산이 종료된다. 복호화는 도 1(d)의 우측 블록도와 같은 과정으로 연산되며, 이때의 연산식은 암호화와 동일하고, 단, 암호화에서 Addition을 사용하였으므로 복호화에서 Subtraction을 사용한다.In the left block diagram of Fig. 1 (d), the encryption process is performed as follows. In the operation of each round function, the input value is a 128-bit input value consisting of four 32-bit internal state variables, a 192-bit round key, and the output value is a 128-bit internal state variable. In operation, the key is processed as XOR process, and each block bit descends in the direction of the arrow and goes through the Addition process and the Rotation process. In FIG. 1 (d), ROR means right bit rotation and ROL means left bit rotation. The number displayed for each bit rotation means that the bit is rotated by that number. After all the operations are finished, each block moves to the left, and the first round variable moves to the bottom, ending the operation of the encryption round function. Decryption is performed in the same process as the right block diagram of FIG. 1 (d), and the calculation formula is the same as that of encryption, except that the addition is used for encryption, so the subtraction is used for decryption.

이러한 종래의 일반화된 파이스텔 네트워크 구조 기반의 암호화 기술은 구현 상의 편의성이 높은 반면 여전히 암호화와 복호화 과정에서 화이트박스 공격에 취약한 단점이 있다.While the encryption technology based on the conventional generalized Fiestel network structure is high in convenience of implementation, there is still a weak point to the white box attack during the encryption and decryption process.

상기 서술한 DES 기반의 블록 암호 기술은 암호 키가 안전하게 유지 관리된다는 가정 하에서 동작하는 블랙박스 암호화 매커니즘을 기반으로 하고 있다. 이에 반해, 화이트박스 암호화 기술은 내부의 동작이 노출되더라도 공격자가 암호 키를 쉽게 유추하지 못하도록 하는 화이트박스 암호화 매커니즘을 기반으로 하고 있다. 이러한 내용은 도 2를 참조하여 보다 상세히 설명하도록 한다.The DES-based block cipher technology described above is based on a black box encryption mechanism that operates under the assumption that the encryption key is securely maintained. In contrast, the whitebox encryption technology is based on a whitebox encryption mechanism that prevents an attacker from easily inferring a cryptographic key, even when internal operations are exposed. This will be described in more detail with reference to FIG. 2.

도 2는 화이트박스 암호화의 기본 개념을 설명하기 위한 도면이다.2 is a diagram illustrating a basic concept of white box encryption.

도 2에서, 화이트박스 암호화 기술은 알고리즘을 큰 룩업 테이블로 만들고 그 안에 암호 키를 소프트웨어로 구현된 암호 알고리즘과 섞여있는(obfuscation) 상태로 숨겨둠으로써 공격자가 내부의 동작을 분석하더라도 암호 키를 쉽게 유추하지 못하도록 한다. 보다 구체적으로, 화이트박스 암호화 기술은 내부에서 인코딩 과정(Mi)과 디코딩 과정(Mi)-1을 별도의 테이블을 통해 수행하여 중간값이 노출되지 않도록 하면서도 결과적으로는 인코딩과 디코딩의 상쇄를 통해 원래의 암호화 동작(Xi)만 수행한 결과와 동일하도록 하여 라운드 연산의 중간 데이터와 키를 공격자로부터 안전하게 숨길 수 있다.In FIG. 2, the whitebox encryption technique makes the encryption key easier even if an attacker analyzes its internal behavior by hiding the algorithm into a large lookup table and hiding the encryption key therein with the software implemented encryption algorithm. Do not allow inference. More specifically, the whitebox encryption technique performs the encoding process (Mi) and the decoding process (Mi) -1 internally by using separate tables so that intermediate values are not exposed, and consequently, by offsetting encoding and decoding. The intermediate data and key of the round operation can be safely hidden from the attacker by setting the same as the result of only the encryption operation (Xi).

종래의 화이트박스 암호화 기술은 높은 보안성을 구현하고자 하는 경우 테이블의 크기가 지나치게 커지기 때문에 사물인터넷이나 모바일 기기를 위한 경량 환경에 적합하게 구현하기 어려운 단점이 있다.Conventional white box encryption technology has a disadvantage in that it is difficult to implement in a lightweight environment for the Internet of Things or a mobile device because the size of the table is too large to implement high security.

한국등록특허 제10-1623503(2016.05.17)호는 LEA 블록암호의 화이트박스 암호 구현 장치 및 방법에 관한 것으로, 암호키를 포함한 암호 알고리즘을 다수의 테이블로 구성하여 암호 알고리즘의 소스코드나 메모리 영역의 조사 등을 통해 암호키를 찾는 것을 원천적으로 막을 수 있는 LEA 블록암호의 화이트박스 암호 구현 장치 및 방법을 제공하기 위한 것으로서, 인코딩된 인코딩 평문을 입력받은 평문 입력부와, 상기 평문 입력부에서 입력된 인코딩 평문 또는 직전 수행된 라운드 함수부의 결과값을 입력받아 랜덤 테이블을 기반으로 모듈러 덧셈 및 로테이션 연산을 수행하여 선형변환을 이용한 라운드 키 연산위치의 분산처리 결과를 출력하는 라운드 함수부와, 상기 라운드 함수부에서 처리된 출력값 중 모든 라운드 키에 대한 라운드 함수부 수행이 완료되어 출력되는 결과값인 인코딩 암호문을 출력하는 암호문 출력부를 포함하여 구성되는데 있다.Korean Patent Registration No. 10-1623503 (2016.05.17) relates to an apparatus and method for implementing a white box cryptography of an EL block cipher, and comprising a plurality of tables of cryptographic algorithms including cryptographic keys in the source code or memory area of the cryptographic algorithm. The present invention provides an apparatus and method for implementing an LEA block cipher white box cipher that can prevent a cipher key from being searched through, a plain text input unit that receives an encoded encoded plain text, and an encoding input from the plain text input unit. A round function unit for receiving a result of a round function or a previous round function unit and performing a modular addition and rotation operation based on a random table and outputting a result of distributed processing of a round key operation position using a linear transformation, and the round function unit Round function execution is completed for all round keys among outputs processed by There is consists to the result of encoding including a ciphertext outputted cipher text output for outputting.

한국공개특허 제10-2015-0090438(2015.08.06)호는 화이트박스 암호 장치 및 그 방법에 관한 것으로, 화이트 박스 암호 테이블들을 이용한 암호화 연산을 다수의 라운드 별로 수행하는 연산부 및 각 라운드별로 출력되는 결과 테이블들의 배열을 믹싱하는 테이블 믹싱부를 포함한다.Korean Patent Laid-Open No. 10-2015-0090438 (2015.08.06) relates to a white box encryption device and a method thereof, and an operation unit for performing encryption operations using white box encryption tables for each round and a result output for each round. A table mixing unit for mixing an array of tables.

한국등록특허 제10-1623503(2016.05.17)호Korean Patent Registration No. 10-1623503 (2016.05.17) 한국공개특허 제10-2015-0090438(2015.08.06)호Korean Patent Publication No. 10-2015-0090438 (2015.08.06)

본 발명의 일 실시예는 사물인터넷의 경량 환경을 구축할 수 있으면서 화이트박스 공격에 안전한 화이트박스 암호형 GFN(Generalized Feistel Network) 구조를 통해 보안을 향상시킨 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치를 제공하고자 한다.An embodiment of the present invention provides a computer-implemented lightweight white box encryption method and apparatus for improving security through a white box encrypted GFN (Generalized Feistel Network) structure that can build a lightweight environment of the Internet of Things and is safe against white box attacks. To provide.

본 발명의 일 실시예는 룩업 테이블의 재사용을 조절하여 총 요구되는 테이블 크기를 현저하게 감소시킬 수 있어 메모리 제한 환경에 용이하게 적용할 수 있는 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치를 제공하고자 한다. One embodiment of the present invention is to provide a computer-implemented lightweight white box encryption method and apparatus that can be applied to a memory limited environment can be significantly reduced by adjusting the reuse of the look-up table to significantly reduce the total required table size .

본 발명의 일 실시예는 라운드 수의 감소 조절이 용이하여 연산 속도를 효율적으로 향상시킬 수 있는 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치를 제공하고자 한다.One embodiment of the present invention is to provide a computer-implemented lightweight white box encryption method and apparatus that can easily reduce the number of rounds to improve the operation speed.

실시예들 중에서, 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법은 (a) 평문을 외부 인코딩하는 단계,(b) 라운드 함수를 라운드 키로 내부 인코딩한 룩업 테이블로서 생성한 화이트박스 암호형 GFN(Generalized Feistel Network)을 생성하는 단계 및 (c) 상기 외부 인코딩된 평문을 상기 화이트박스 암호형 GFN에 제공하여 암호문을 제공하는 단계를 포함한다.Among the embodiments, a computer-implemented lightweight whitebox encryption method includes: (a) externally encoding a plain text, (b) a whitebox cryptographic Generalized Feistel Network (GFN) generated as a lookup table that internally encodes a round function with a round key. And (c) providing the externally encoded plaintext to the whitebox encrypted GFN to provide a ciphertext.

상기 (a) 단계는 복수의 인코딩 타입이 정의된 인코딩 테이블을 기초로 상기 외부 인코딩을 수행하는 단계를 포함할 수 있다.Step (a) may include performing the external encoding based on an encoding table in which a plurality of encoding types are defined.

상기 (a) 단계는 상기 외부 인코딩된 평문을 n (상기 n은 자연수) 개의 m (상기 m은 자연수) 비트를 가지는 내부 상태 변수로 분할하는 단계를 더 포함할 수 있다.The step (a) may further include dividing the externally encoded plain text into an internal state variable having n bits (where n is a natural number) and m (the m is a natural number) bits.

상기 (b) 단계는 상기 라운드 키에 관해 ARX(Addition, Rotation, XOR) 연산을 수행하여 상기 룩업 테이블을 산출하는 단계를 포함할 수 있다.The step (b) may include calculating the lookup table by performing an ARX (Addition, Rotation, XOR) operation on the round key.

상기 (b) 단계는 단일 라운드 당 상기 룩업 테이블을 (n-1-t) (상기 n은 내부상태변수의 개수, 상기 t는 재사용 룩업 테이블의 개수로서 0 이상의 정수) 개 만큼 생성하는 단계를 포함할 수 있다.Step (b) includes generating the lookup table per single round by (n-1-t), where n is the number of internal state variables and t is the number of reuse lookup tables. can do.

상기 (b) 단계는 r (상기 r은 자연수) 번의 라운드 각각에서 상기 t를 동일한 값으로 유지하는 단계를 더 포함할 수 있다.The step (b) may further include maintaining t at the same value in each of r rounds (where r is a natural number).

상기 (b) 단계는 상기 화이트박스 암호형 GFN에 관한 안정성 지수를 정의하여 총 요구되는 라운드 키의 개수(N)와 내부 상태 변수의 비트 개수(m)를 결정하는 단계를 포함할 수 있다.Step (b) may include determining a stability index for the whitebox cryptographic GFN to determine the total number of required round keys (N) and the number of bits (m) of internal state variables.

상기 (b) 단계는 총 요구되는 라운드 키의 개수(N)를 기초로 라운드 반복 횟수(r), 내부 상태 변수의 개수(n) 및 재사용 룩업 테이블의 개수(t)를 결정하는 단계를 포함할 수 있다.Step (b) may include determining the number of round iterations (r), the number of internal state variables (n), and the number of reuse lookup tables (t) based on the total number of required round keys (N). Can be.

상기 (b) 단계는 상기 총 요구되는 라운드 키를 결합하여 화이트박스 암호를 위한 비밀 키를 생성하는 단계를 포함할 수 있다.Step (b) may comprise combining the total required round keys to generate a secret key for a whitebox cryptogram.

상기 (c) 단계는 상기 암호문에 관해 외부 인코딩을 수행하여 경량 화이트 박스 암호화를 수행하는 단계를 포함할 수 있다.Step (c) may include performing lightweight white box encryption by performing external encoding on the cipher text.

실시예들 중에서, 경량 화이트박스 암호화 장치는 평문을 외부 인코딩하는 평문 관리부, 라운드 함수를 라운드 키로 내부 인코딩한 룩업 테이블로서 생성한 화이트박스 암호형 GFN(Generalized Feistel Network)을 생성하는 화이트박스 암호형 GFN 생성부 및 상기 외부 인코딩된 평문을 상기 화이트박스 암호형 GFN에 제공하여 암호문을 제공하는 암호문 제공부를 포함한다.Among the embodiments, the lightweight whitebox encryption device may include a plaintext management unit that externally encodes plaintext, and a whitebox cryptographic GFN that generates a whitebox encrypted GFN generated as a lookup table that internally encodes a round function with a round key. And a cipher text providing unit for providing a cipher text by providing the generator and the externally encoded plain text to the white box cipher type GFN.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technique can have the following effects. However, since a specific embodiment does not mean to include all of the following effects or only the following effects, it should not be understood that the scope of the disclosed technology is limited by this.

본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치는 사물인터넷의 경량 환경을 구축할 수 있으면서 화이트박스 공격에 안전한 화이트박스 암호형 GFN(Generalized Feistel Network) 구조를 통해 보안을 향상시킬 수 있다.The computer-implemented lightweight whitebox encryption method and apparatus according to an embodiment of the present invention can enhance security through a whitebox encrypted GFN (Generalized Feistel Network) structure that can secure a whitebox attack while constructing a lightweight environment of the Internet of Things. You can.

본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치는 룩업 테이블의 재사용을 조절하여 총 요구되는 테이블 크기를 현저하게 감소시킬 수 있어 메모리 제한 환경에 용이하게 적용할 수 있다.The computer-implemented lightweight whitebox encryption method and apparatus according to an embodiment of the present invention can significantly reduce the total required table size by adjusting the reuse of the lookup table, and thus can be easily applied to a memory limited environment.

본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치는 라운드 수의 감소 조절이 용이하여 연산 속도를 효율적으로 향상시킬 수 있다.The computer-implemented lightweight whitebox encryption method and apparatus according to an embodiment of the present invention can easily improve the operation speed by reducing and controlling the number of rounds.

도 1은 일반화된 파이스텔 네트워크를 나타내는 도면이다.
도 2는 화이트박스 암호화의 기본 개념을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 경량 화이트박스 암호화 장치의 구성을 나타내는 블록도이다.
도 4는 도 3에 있는 경량 화이트박스 암호화 장치에 의해 생성된 화이트박스 암호형 GFN의 구조의 일 실시예를 나타내는 블록도이다.
도 5는 도 3에 있는 경량 화이트박스 암호화 장치가 총 테이블의 크기를 감소시키기 위한 화이트박스 암호형 GFN을 생성하는 과정의 일 실시예를 나타내는 도면이다.
도 6은 도 3에 있는 경량 화이트박스 암호화 장치가 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법을 수행하여 총 테이블의 크기를 현저하게 감소시킨 실시예들을 나타내는 도면이다.
도 7은 도 3에 있는 경량 화이트박스 암호화 장치에 의해 수행되는 경량 화이트박스 암호화 방법을 설명하는 순서도이다.
도 8은 도 3에 있는 경량 화이트박스 암호화 장치가 화이트박스 암호형 GFN을 생성하는 과정에서 도출될 수 있는 재사용 룩업 테이블의 비율(tr)과 라운드 반복 횟수(r) 간의 관계 그래프를 나타내는 도면이다.
1 is a diagram illustrating a generalized Fiestel network.
2 is a diagram illustrating a basic concept of white box encryption.
3 is a block diagram showing the configuration of a lightweight white box encryption apparatus according to an embodiment of the present invention.
FIG. 4 is a block diagram illustrating an embodiment of a structure of a white box encrypted GFN generated by the lightweight white box encryption device of FIG. 3.
FIG. 5 is a diagram illustrating an embodiment of a process of generating a white box encrypted GFN for reducing the size of a total table by the lightweight white box encryption apparatus of FIG. 3.
FIG. 6 is a diagram illustrating embodiments in which the lightweight white box encryption apparatus of FIG. 3 significantly reduces the size of a total table by performing a computer-implemented lightweight white box encryption method.
7 is a flowchart illustrating a lightweight white box encryption method performed by the lightweight white box encryption device of FIG. 3.
FIG. 8 is a diagram illustrating a relationship graph between a ratio (t r ) and a number of round iterations (r) of a reuse lookup table that may be derived in the process of generating a whitebox encrypted GFN by the lightweight whitebox encryption apparatus of FIG. 3. .

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Description of the present invention is only an embodiment for structural or functional description, the scope of the present invention should not be construed as limited by the embodiments described in the text. That is, since the embodiments may be variously modified and may have various forms, the scope of the present invention should be understood to include equivalents capable of realizing the technical idea. In addition, the objects or effects presented in the present invention does not mean that a specific embodiment should include all or only such effects, the scope of the present invention should not be understood as being limited thereby.

한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.On the other hand, the meaning of the terms described in the present application should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as "first" and "second" are intended to distinguish one component from another component, and the scope of rights should not be limited by these terms. For example, the first component may be named a second component, and similarly, the second component may also be named a first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" to another component, it should be understood that there may be other components in between, although it may be directly connected to the other component. On the other hand, when a component is referred to as being "directly connected" to another component, it should be understood that there is no other component in between. On the other hand, other expressions describing the relationship between the components, such as "between" and "immediately between" or "neighboring to" and "directly neighboring to", should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions should be understood to include plural expressions unless the context clearly indicates otherwise, and terms such as "comprise" or "have" refer to a feature, number, step, operation, component, part, or feature thereof. It is to be understood that the combination is intended to be present and does not exclude in advance the possibility of the presence or addition of one or more other features or numbers, steps, operations, components, parts or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, an identification code (e.g., a, b, c, etc.) is used for convenience of description, and the identification code does not describe the order of the steps, and each step clearly indicates a specific order in context. Unless stated otherwise, they may occur out of the order noted. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be embodied as computer readable code on a computer readable recording medium, and the computer readable recording medium includes all kinds of recording devices in which data can be read by a computer system. . Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, and the like, and are also implemented in the form of a carrier wave (for example, transmission over the Internet). It also includes. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art unless otherwise defined. Generally, the terms defined in the dictionary used are to be interpreted to coincide with the meanings in the context of the related art, and should not be interpreted as having ideal or excessively formal meanings unless clearly defined in the present application.

도 3은 본 발명의 일 실시예에 따른 경량 화이트박스 암호화 장치의 구성을 나타내는 블록도이다.3 is a block diagram showing the configuration of a lightweight white box encryption apparatus according to an embodiment of the present invention.

도 3을 참조하면, 경량 화이트박스 암호화 장치(300)는 평문 관리부(310), 화이트박스 암호형 GFN 생성부(320) 및 암호문 제공부(330)를 포함할 수 있다.Referring to FIG. 3, the lightweight white box encryption apparatus 300 may include a plain text management unit 310, a white box encrypted GFN generation unit 320, and a cipher text providing unit 330.

경량 화이트박스 암호화 장치(300)는 화이트박스 암호화를 수행할 수 있는 컴퓨팅 장치에 해당할 수 있고, 일 실시예에서, 데스크톱, 태블릿 PC, 노트북 또는 스마트폰 등으로 구현될 수 있다. 일 실시예에서, 경량 화이트박스 암호화 장치(300)는 사물인터넷의 경량 환경을 구축하여 화이트박스 공격에 안전하게 데이터 암호화 및 복호화를 수행하기 위한 블록 암호 알고리즘을 기반으로 보안 기능을 제공할 수 있다.The lightweight white box encryption apparatus 300 may correspond to a computing device capable of performing white box encryption, and in one embodiment, may be implemented as a desktop, tablet PC, laptop or smartphone. In one embodiment, the lightweight white box encryption apparatus 300 may provide a security function based on a block cipher algorithm for safely encrypting and decrypting data against a white box attack by building a lightweight environment of the IoT.

평문 관리부(310)는 평문을 외부 인코딩한다. 보다 구체적으로, 평문 관리부(310)는 암호화 대상으로서의 데이터를 평문으로 생성할 수 있고, 생성된 평문에 관해 외부 인코딩을 수행하여 외부 인코딩된 평문을 기초로 화이트박스 암호형 기반의 암호문이 생성되도록 할 수 있다. 일 실시예에서, 평문 블록의 길이는 암호문의 길이와 동일할 수 있다. 평문 관리부(310)는 인코딩 함수를 통해 평문을 외부 인코딩된 평문으로 변환할 수 있고, 외부 인코딩된 평문을 화이트박스 암호형 GFN 생성부(320)에 입력으로 제공할 수 있다. 평문 관리부(310)는 복수의 인코딩 타입이 정의된 인코딩 테이블을 기초로 외부 인코딩을 수행할 수 있다. 예를 들어, 평문 관리부(310)는 인코딩 테이블에 있는 복수의 인코딩 타입 중 특정 인코딩 타입을 선택적으로 적용하여 외부 인코딩을 수행할 수 있고, 이에 따라, 외부 인코딩의 수행 과정에서 다양한 인코딩 방식을 사용할 수 있어 안전성을 보다 강화시킬 수 있다.The plain text manager 310 externally encodes the plain text. More specifically, the plain text manager 310 may generate data as an encryption target in plain text, and perform external encoding on the generated plain text to generate a white box cryptographic based ciphertext based on the externally encoded plain text. Can be. In one embodiment, the length of the plaintext block may be equal to the length of the ciphertext. The plain text manager 310 may convert the plain text into an externally encoded plain text through an encoding function and provide the externally encoded plain text as an input to the whitebox encrypted GFN generator 320. The plain text manager 310 may perform external encoding based on an encoding table in which a plurality of encoding types are defined. For example, the plain text manager 310 may perform an external encoding by selectively applying a specific encoding type among a plurality of encoding types in the encoding table, and thus, may use various encoding methods in the process of performing the external encoding. Can enhance safety.

평문 관리부(310)는 외부 인코딩된 평문을 n (n은 자연수) 개의 m (m은 자연수) 비트를 가지는 내부 상태 변수로 분할할 수 있다. 일 실시예에서, 평문 관리부(310)는 외부 인코딩된 평문을 상호 동일한 m 비트 크기를 가지도록 블록 분할하여 n 개의 내부 상태 변수들 X1, X2, …, Xn (410 참조)를 생성할 수 있고, 예를 들어, 외부 인코딩된 평문의 블록 크기가 40 비트이면 해당 평문을 분할하여 각각 8 비트인 5 개의 내부 상태 변수들을 생성할 수 있고, 생성된 내부 상태 변수들을 화이트박스 암호형 GFN 생성부(320)에 입력으로 제공할 수 있다.The plaintext manager 310 may divide the externally encoded plaintext into an internal state variable having n (n is a natural number) m (m is a natural number) bits. In one embodiment, the plaintext manager 310 blocks the externally encoded plaintext to have the same m bit size, and divides the n internal state variables X 1 , X 2 ,... , X n (see 410), for example, if the block size of the outer encoded plain text is 40 bits, the plain text can be partitioned to generate five internal state variables that are 8 bits each. Internal state variables may be provided as inputs to the whitebox cryptographic GFN generator 320.

화이트박스 암호형 GFN 생성부(320)는 라운드 함수(round function)를 라운드 키(round key, RK)로 내부 인코딩한 룩업 테이블(420)로서 생성한 화이트박스 암호형 GFN(Generalized Feistel Network)(400)을 생성한다. 이러한 내용은 도 4를 참조하여 설명하도록 한다.The white box cryptographic GFN generation unit 320 generates a white box cryptographic GFN (Generalized Feistel Network) 400 generated as a lookup table 420 which internally encodes a round function as a round key (RK). ). This will be described with reference to FIG. 4.

도 4는 도 3에 있는 경량 화이트박스 암호화 장치에 의해 생성된 화이트박스 암호형 GFN의 구조의 일 실시예를 나타내는 블록도이다.FIG. 4 is a block diagram illustrating an embodiment of a structure of a white box encrypted GFN generated by the lightweight white box encryption device of FIG. 3.

도 4에서, 화이트박스 암호형 GFN(400)은 평문으로부터 분할되고 각각이 m 비트를 가지는 n 개의 내부 상태 변수들 X1, X2, …, Xn (410)을 제1 라운드(430)의 입력으로 수신하고, 단일 라운드 당 (n-1) 개의 라운드 키를 기초로 (n-1) 개의 룩업 테이블 T1, T2, …, Tn -1 (420)을 산출하며, 라운드 별로 현재 라운드에 입력으로서 수신된 내부 상태 변수들에 대한 연산을 통해 다음 라운드에 입력으로서 적용할 내부 상태 변수들을 갱신할 수 있다. 여기에서, 라운드(round)는 암호화 및 복호화를 위해 반복되는 과정을 의미하고, 라운드 함수는 암호화 및 복호화를 수행하는데 필요한 함수를 나타내고, 비밀 키(secret key)는 반복되는 라운드에서 암호화 및 복호화를 위한 인자로서 사용될 수 있다.In FIG. 4, the whitebox cryptographic GFN 400 is divided from plain text and has n internal state variables X 1 , X 2 ,..., Each having m bits. , X n 410 is received as an input of the first round 430, and (n-1) lookup tables T 1 , T 2 ,..., Based on (n-1) round keys per single round. , T n -1 420 may be calculated, and the internal state variables to be applied as inputs in the next round may be updated through operations on internal state variables received as inputs in the current round for each round. Here, a round means a repeated process for encryption and decryption, a round function indicates a function necessary for performing encryption and decryption, and a secret key indicates a function for encryption and decryption in the repeated round. Can be used as an argument.

화이트박스 암호형 GFN 생성부(320)는 비밀 키(secret key)로부터 복수의 라운드 키들을 생성할 수 있다. 화이트박스 암호형 GFN 생성부(320)는 단일 라운드 별로 사용되는 라운드 함수(F)의 개수만큼의 라운드 키를 생성할 수 있다. 일 실시예에서, 화이트박스 암호형 GFN 생성부(320)는 비밀 키에 대한 블록 분할을 통해 복수의 라운드 키들을 생성할 수 있고, 다른 일 실시예에서, 비밀 키에 관한 키-스케줄(key schedule) 연산을 통해 확장된 복수의 라운드 키들을 생성할 수 있다. 예를 들어, 화이트박스 암호형 GFN 생성부(320)는 요구되는 라운드 키들을 모두 비밀 키로 설정할 수 있고, 비밀 키의 크기가 16 비트라면 비밀 키를 기초로 키-스케줄하여 라운드 키를 128 비트로 확장할 수 있다. The white box cryptographic GFN generation unit 320 may generate a plurality of round keys from a secret key. The white box cryptographic GFN generation unit 320 may generate as many round keys as the number of round functions F used for each single round. In one embodiment, the whitebox encrypted GFN generation unit 320 may generate a plurality of round keys through block partitioning for the secret key, and in another embodiment, a key schedule related to the secret key. It is possible to generate a plurality of round keys extended through the) operation. For example, the whitebox encrypted GFN generation unit 320 may set all the required round keys as the secret key, and if the size of the secret key is 16 bits, key-schedule based on the secret key to expand the round key to 128 bits. can do.

일 실시예에서, 화이트박스 암호형 GFN 생성부(320)는 일반화된 파이스텔 네트워크의 구조(도 1 참조)를 기반으로 하고 각 라운드 함수를 라운드 키로 내부 인코딩한 룩업 테이블(420)로 화이트박스 암호형 GFN(400)를 생성할 수 있고, 예를 들어, 제2 또는 제3 유형의 파이스텔 구조를 기반으로 설계될 수 있다.In one embodiment, the whitebox cryptographic GFN generator 320 is based on the structure of a generalized Feistel network (see FIG. 1) and is a whitebox cipher with a lookup table 420 that internally encodes each round function with a round key. The type GFN 400 may be generated and, for example, designed based on the second or third type of Feistel structure.

화이트박스 암호형 GFN 생성부(320)는 라운드 키에 관해 ARX(Addition, Rotation, XOR) 연산을 수행하여 룩업 테이블(420)을 산출할 수 있다. 보다 구체적으로, 화이트박스 암호형 GFN 생성부(320)는 라운드 함수 F를 상대적으로 구현하기 쉬운 가산(Addition), 회전(Rotation) 및 배타적 논리합(XOR) 연산 중 적어도 하나로 구성할 수 있고, 이에 따라, Xi 가 8 비트인 경우에도 4 비트 단위로 분할 연산이 가능하도록 할 수 있다.The white box cryptographic GFN generation unit 320 may calculate an lookup table 420 by performing an ARX (Addition, Rotation, XOR) operation on the round key. More specifically, the white box cryptographic GFN generator 320 may be configured with at least one of addition, rotation, and exclusive OR operations, which are relatively easy to implement the round function F. In addition, even when Xi is 8 bits, the partitioning operation may be performed in units of 4 bits.

일 실시예에서, 화이트박스 암호형 GFN 생성부(320)는 단일 라운드 당 룩업 테이블(420)을 (n-1-t) (n은 내부상태변수의 개수, t는 재사용 룩업 테이블의 개수로서 0 이상의 정수) 개 만큼 생성할 수 있다. 보다 구체적으로, 화이트박스 암호형 GFN 생성부(320)는 단일 라운드에 사용되는 라운드 키들을 재사용을 고려하여 (n-1-t) 개 생성할 수 있고, 생성된 (n-1-t) 개의 라운드 키들을 이용하여 단일 라운드 별로 (n-1-t) 개의 룩업 테이블(420)을 생성하여 전체 사용되는 테이블 크기를 감소시킬 수 있다.In one embodiment, the white box cryptographic GFN generator 320 selects a lookup table 420 per single round (n-1-t), where n is the number of internal state variables and t is the number of reuse lookup tables. As many as the above integers). More specifically, the white box cryptographic GFN generation unit 320 may generate (n-1-t) pieces of the round keys used for a single round in consideration of reuse, and generate (n-1-t) pieces The round keys may be used to generate (n-1-t) lookup tables 420 per single round to reduce the total table size.

일 실시예에서, 화이트박스 암호형 GFN 생성부(320)는 r (r은 자연수) 번의 라운드 각각에서 t를 동일한 값으로 유지할 수 있다. 예를 들어, 단일 라운드에서 사용되는 룩업 테이블(420)의 총 개수는 (n-1-t) 개이고, r 번의 라운드 각각에서 t 개의 룩업 테이블(420)을 재사용한다면 총 필요한 룩업 테이블(420)의 개수는 r*(n-1-t)로 산출될 수 있고, 마찬가지로, 총 요구되는 라운드 키의 개수 N은 r*(n-1-t)로 산출될 수 있다.In one embodiment, the whitebox cryptographic GFN generator 320 may maintain t at the same value in each of r (r is a natural number) rounds. For example, the total number of lookup tables 420 used in a single round is (n-1-t), and if t lookup tables 420 are reused in each of r rounds, The number can be calculated as r * (n-1-t), and likewise, the number N of total required round keys can be calculated as r * (n-1-t).

일 실시예에서, 화이트박스 암호형 GFN 생성부(320)는 화이트박스 암호형 GFN(400)에 관한 안정성 지수(S)를 정의하여 총 요구되는 라운드 키의 개수(N)와 내부 상태 변수(410)의 비트 개수(m)를 결정할 수 있고, 예를 들어, 하기의 수학식 1을 기초로 안정성 지수(S)로부터 N 및 m 각각을 적정 값으로 산출할 수 있다.In one embodiment, the whitebox encrypted GFN generation unit 320 defines a stability index (S) for the whitebox encrypted GFN 400 to determine the total number of required round keys (N) and internal state variables 410. ), The number of bits m may be determined, and for example, N and m may be calculated as appropriate values from the stability index S based on Equation 1 below.

[수학식 1][Equation 1]

S = N * mS = N * m

일 실시예에서, 화이트박스 암호형 GFN 생성부(320)는 총 요구되는 라운드 키의 개수(N)를 기초로 라운드 반복 횟수(r), 내부 상태 변수의 개수(n) 및 재사용 룩업 테이블의 개수(t)를 결정할 수 있고, 예를 들어, 하기의 수학식 2를 기초로 환경에 따라 m, n, t 및 r을 적정 값으로 설정할 수 있다.In one embodiment, the whitebox encrypted GFN generation unit 320 is based on the total number of round keys (N) required round iteration number (r), the number of internal state variables (n) and the number of reuse lookup table (t) can be determined, for example, m, n, t and r can be set to appropriate values according to the environment based on Equation 2 below.

[수학식 2][Equation 2]

N = r * (n-1-t)N = r * (n-1-t)

예를 들어, 화이트박스 암호형 GFN 생성부(320)는 평문의 블록 크기가 40 비트이고 안정성 지수(S)를 32로 설정하는 경우를 가정하였을 때, 내부 상태 변수(410)의 크기 m을 8 (비트)로 한다면 내부 상태 변수(410)의 개수 n을 5로 산출할 수 있고, 재사용 룩업 테이블의 개수(t)를 2로 한다면 라운드 반복 횟수 r을 2로 산출할 수 있다. 다른 예를 들어, 화이트박스 암호형 GFN 생성부(320)는 상기와 같은 경우를 가정하였을 때, 내부 상태 변수(410)의 크기 m을 4 (비트)로 한다면 내부 상태 변수(410)의 개수 n을 10으로 산출할 수 있고, 재사용 룩업 테이블의 개수(t)를 4로 한다면 라운드 반복 횟수 r을 2로 산출할 수 있다.For example, the white box cryptographic GFN generation unit 320 assumes that the size m of the internal state variable 410 is 8 when the block size of the plain text is 40 bits and the stability index S is set to 32. If (bit), the number n of the internal state variable 410 can be calculated as 5, and if the number (t) of the reuse lookup table is 2, the number of round iterations r can be calculated as 2. As another example, when the white box cryptographic GFN generation unit 320 assumes the above case, if the size m of the internal state variable 410 is 4 (bits), the number n of the internal state variables 410 is n. Can be calculated as 10, and if the number (t) of reuse lookup tables is 4, the number of round repetitions r can be calculated as 2.

다른 일 실시예에서, 화이트박스 암호형 GFN 생성부(320)는 라운드 키의 개수(N)와 내부 상태 변수(410)의 비트 개수(m) 중 적어도 하나가 제한된 경우 이로부터 구현 가능한 최대의 안정성 지수(S)가 산출되도록 라운드 키의 개수(N)와 내부 상태 변수(410)의 비트 개수(m) 중 나머지를 결정할 수도 있다.In another embodiment, the whitebox cryptographic GFN generator 320 is the maximum stability that can be implemented therefrom when at least one of the number of round keys (N) and the number of bits (m) of the internal state variable 410 is limited. The remainder of the number N of round keys and the number m of bits of the internal state variable 410 may be determined such that the exponent S is calculated.

일 실시예에서, 화이트박스 암호형 GFN 생성부(320)는 총 요구되는 룩업 테이블(420)의 크기(T)를 정의하여 라운드 내 재사용 룩업 테이블의 비율(tr)과 라운드 반복 횟수(r)를 결정할 수 있고, 예를 들어, 하기의 수학식 3을 기초로 환경에 따라 r과 t를 적정 값으로 설정할 수 있다.In one embodiment, the whitebox cryptographic GFN generator 320 defines the size T of the total required lookup table 420 to determine the ratio t r of the reused lookup table in the round and the number of round iterations r. For example, r and t may be set to appropriate values according to the environment based on Equation 3 below.

[수학식 3][Equation 3]

T = r * (n-1) * (1-tr) * 2m * mT = r * (n-1) * (1-t r ) * 2 m * m

S = r * (n-1) * (1-tr) * mS = r * (n-1) * (1-t r ) * m

(여기에서, tr 은 0 < tr < 1 로서 라운드 별로 t/(n-1)로 산출될 수 있는 재사용 룩업 테이블의 비율에 해당함)Where t r corresponds to the ratio of reuse lookup tables that can be calculated as t / (n-1) per round, with 0 <t r <1

예를 들어, 화이트박스 암호형 GFN 생성부(320)는 환경에 따른 메모리 제약으로 총 요구되는 룩업 테이블(420)의 크기(T)가 1 KB 이하로 제한되고 화이트박스 암호형 GFN(400)에 관한 안정성 지수(S)를 512까지 확보하고자 하는 경우를 가정하였을 때, T / S = 2m = 8192 / 512 = 24 에 따라 내부 상태 변수(410)의 비트 개수(m)를 4로 산출할 수 있고, 이에 따라 산출되는 r * (n-1) * (1-tr) = 128 의 관계식을 기초로 내부 상태 변수(410)의 개수 n 에 따른 라운드 내 재사용 룩업 테이블의 비율(tr)과 라운드 반복 횟수(r) 간의 관계 그래프(도 8 참조)를 도출할 수 있으며, 이에 따라, 룩업 테이블의 비율(tr)과 라운드 반복 횟수(r) 각각을 설정할 수 있다.For example, the white box cryptographic GFN generation unit 320 is limited to the size (T) of the lookup table 420 required as a total memory constraint of the environment to 1 KB or less and to the white box cryptographic GFN (400) Assuming that the stability index (S) in relation to 512 is assumed, the number of bits (m) of the internal state variable 410 can be calculated as 4 according to T / S = 2 m = 8192/512 = 2 4 . And the ratio (t r ) of the reuse lookup table in the round according to the number n of the internal state variables 410 based on the relation r * (n-1) * (1-t r ) = 128 calculated accordingly. The relationship graph (see FIG. 8) between and the number of round repetitions r can be derived. Accordingly, the ratio t r and the number of round repetitions r of the lookup table can be set.

화이트박스 암호형 GFN 생성부(320)는 총 요구되는 라운드 키를 결합하여 화이트박스 암호를 위한 비밀 키를 생성할 수 있다. 위의 예에서, 비밀 키의 크기는 N * m 비트로 설정될 수 있다. 일 실시예에서, 화이트박스 암호형 GFN 생성부(320)는 목표로 하는 화이트박스 친화적 알고리즘의 안전성 수준에 관한 안정성 지수(S)를 비밀 키의 크기로 결정할 수 있고, 이러한 안정성 지수(S)는 설계자 또는 사용자에 의해 이용 환경에 적합한 값으로 설정될 수 있다.The white box cryptographic GFN generation unit 320 may generate a secret key for the white box encryption by combining the total required round keys. In the above example, the size of the secret key may be set to N * m bits. In one embodiment, the whitebox cryptographic GFN generation unit 320 may determine a stability index (S) regarding the security level of the target whitebox friendly algorithm as the size of the secret key, and this stability index (S) is It may be set by the designer or user to a value suitable for the usage environment.

일 실시예에서, 화이트박스 암호형 GFN 생성부(320)는 내부 상태 변수(410) 각각의 크기가 4 또는 8 비트이면 라운드 함수 F를 작은 테이블로 구현 가능하도록 설정할 수 있다.In one embodiment, the whitebox cryptographic GFN generator 320 may set the round function F to be implemented as a small table when the size of each of the internal state variables 410 is 4 or 8 bits.

암호문 제공부(330)는 외부 인코딩된 평문을 화이트박스 암호형 GFN(400)에 제공하여 암호문을 제공한다. 일 실시예에서, 암호문 제공부(330)는 화이트박스 암호형 GFN 생성부(320)에 의해 생성된 화이트박스 암호형 GFN(400)에 외부 인코딩된 평문을 입력으로 제공하여 화이트박스 암호화 연산이 수행되도록 할 수 있고, 화이트박스 암호형 GFN(400)로부터 최종적으로 출력된 데이터에 관해 연접(Concatenation) 연산을 수행하여 암호문을 생성할 수 있다. 여기에서, 연접은 적어도 두 개의 입력들을 비트 단위로 연이어 붙이는 것을 말한다.The ciphertext providing unit 330 provides the ciphertext by providing the externally encoded plaintext to the white box cipher GFN 400. In an embodiment, the ciphertext providing unit 330 provides an externally encoded plain text as an input to the whitebox cipher GFN 400 generated by the whitebox cipher GFN generator 320 to perform a whitebox encryption operation. The ciphertext may be generated by performing a concatenation operation on the data finally output from the white box cryptographic GFN 400. Here, the concatenation refers to concatenating at least two inputs bit by bit.

암호문 제공부(330)는 암호문에 관해 외부 인코딩을 수행하여 경량 화이트 박스 암호화를 수행할 수 있다. 일 실시예에서, 암호문 제공부(330)는 복수의 인코딩 타입이 정의된 인코딩 테이블을 기초로 화이트박스 암호형 GFN(400)를 통해 생성된 암호문에 관한 외부 인코딩을 수행할 수 있다.The ciphertext provider 330 may perform lightweight white box encryption by performing external encoding on the ciphertext. In one embodiment, the ciphertext provider 330 may perform external encoding on the ciphertext generated through the whitebox cipher GFN 400 based on an encoding table in which a plurality of encoding types are defined.

도 5는 도 3에 있는 경량 화이트박스 암호화 장치가 총 테이블의 크기를 감소시키기 위한 화이트박스 암호형 GFN을 생성하는 과정의 일 실시예를 나타내는 도면이다.FIG. 5 is a diagram illustrating an embodiment of a process of generating a white box encrypted GFN for reducing the size of a total table by the lightweight white box encryption apparatus of FIG. 3.

도 5에서, 경량 화이트박스 암호화 장치(100)는 앞서 서술한 것처럼, 암호화 및 복호화의 수행 과정에서 요구되는 룩업 테이블(420)의 총 개수를 감소시키기 위한 변수로서, 내부 상태 변수(410)의 개수(n), 재사용 룩업 테이블의 개수(t), 단일 라운드 당 요구되는 라운드 키의 개수(n-1-t) 및 라운드 반복 횟수(r)를 주요 변수로서 사용할 수 있고, 이에 따라, 총 요구되는 라운드 키의 개수(N)를 r*(n-1-t)로 설정할 수 있다.In FIG. 5, the lightweight white box encryption apparatus 100 is a variable for reducing the total number of lookup tables 420 required in the process of performing encryption and decryption, as described above, and the number of internal state variables 410. (n), the number of reuse lookup tables (t), the number of round keys required per single round (n-1-t), and the number of round iterations (r) can be used as key variables, and thus the total required The number N of round keys can be set to r * (n-1-t).

경량 화이트박스 암호화 장치(100)는 N = 256으로 고정하였을 때 n = 5, t = 2로 설정하여 r = 128 (=256/(5-1-2))로 산출할 수 있고, 이와 같이 설정된 각 변수들을 기초로 도 5와 같은 화이트박스 암호형 GFN(500)를 생성할 수 있다.The lightweight white box encryption apparatus 100 may calculate r = 128 (= 256 / (5-1-2)) by setting n = 5 and t = 2 when N = 256 is fixed. The white box cryptographic GFN 500 as shown in FIG. 5 may be generated based on each variable.

보다 구체적으로, 경량 화이트박스 암호화 장치(100)는 제1 라운드에서 사용되기 위한 2 개의 라운드 키를 이용하여 재사용 룩업 테이블 T1, T2를 각각 1회씩 총 2 회 재사용할 수 있고, 제2 라운드에서 이전 라운드에서 사용되지 않은 다른 2 개의 라운드 키를 이용하여 재사용 룩업 테이블 T3, T4를 각각 1회씩 총 2 회 재사용할 수 있으며, 이와 같은 과정을 128 번의 라운드 동안 반복할 수 있다. 이에 따라, 경량 화이트박스 암호화 장치(100)는 화이트박스 암호화를 통해 화이트박스 공격에 대비할 수 있는 동시에 룩업 테이블 재사용을 통해 총 요구되는 테이블의 개수를 현저하게 감소시킬 수 있다.More specifically, the lightweight white box encryption apparatus 100 may reuse the reuse lookup tables T 1 and T 2 twice in total, using two round keys for use in the first round, and the second round. You can reuse the reuse lookup tables T 3 and T 4 twice, using two other round keys not used in the previous round, and you can repeat this process for 128 rounds. Accordingly, the lightweight white box encryption apparatus 100 may prepare for a white box attack through white box encryption and may significantly reduce the total number of required tables through reuse of lookup tables.

도 6은 도 3에 있는 경량 화이트박스 암호화 장치가 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법을 수행하여 총 테이블의 크기를 현저하게 감소시킨 실시예들을 나타내는 도면이다.FIG. 6 is a diagram illustrating embodiments in which the lightweight white box encryption apparatus of FIG. 3 significantly reduces the size of a total table by performing a computer-implemented lightweight white box encryption method.

보다 구체적으로, 도 6(a)는 경량 화이트박스 암호화 장치(300)가 룩업 테이블(420)을 재사용하지 않고 화이트박스 암호형 GFN(400)를 구성한 일 실시예를 나타내고, 도 6(b) 및 도 6(c)는 룩업 테이블(420)을 재사용하여 화이트박스 암호형 GFN(400)를 구성한 일 실시예들을 나타낸다.More specifically, FIG. 6 (a) shows an embodiment in which the lightweight white box encryption device 300 configures the white box encrypted GFN 400 without reusing the lookup table 420, and FIGS. 6 (b) and FIG. 6C illustrates one embodiment of the white box cryptographic GFN 400 by reusing the lookup table 420.

도 6(a) 내지 도 6(c)는 재사용 룩업 테이블의 유무 또는 재사용 정도에 따라 총 요구되는 룩업 테이블(420)의 개수가 얼마나 현저하게 감소될 수 있는지를 잘 보여준다. 여기에서, 도 6(a) 내지 도 6(c)에 있는 화이트박스 암호형 GFN의 구성을 위해 평문의 블록 크기 40 (= m * n) 비트 및 비밀 키의 크기 16 비트의 환경 조건을 동일하게 적용함을 가정한다.6 (a) to 6 (c) show how remarkably the total number of required lookup tables 420 can be reduced depending on the presence or the degree of reuse of the reuse lookup table. Here, the environment conditions of the block size 40 (= m * n) bits of the plain text and the size 16 bits of the secret key are the same for the configuration of the white box encrypted GFN in FIGS. 6 (a) to 6 (c). It is assumed to apply.

도 6(a)는 룩업 테이블(420)을 재사용하지 않은 경우를 나타낸다. 경량 화이트박스 암호화 장치(300)는 내부 상태 변수(410)의 크기(m)를 8 비트로, 라운드 반복 횟수(r)를 4로 설정하여 총 요구되는 테이블의 크기를 32,768 비트 (= 16 * 28 * 8)로 산출할 수 있다. 여기에서, 라운드 키 16 비트는 비밀 키와 키-스케줄을 통해 128 비트로 확장될 수 있다.6A illustrates a case where the lookup table 420 is not reused. The lightweight white box encryption apparatus 300 sets the size (m) of the internal state variable 410 to 8 bits and the number of round iterations r to 4 to set the total size of the required table to 32,768 bits (= 16 * 2 8). * 8) can be calculated. Here, the round key 16 bits can be extended to 128 bits through the secret key and key-schedule.

도 6(b) 내지 도 6(c)는 룩업 테이블(420)을 재사용한 경우를 나타내고, 각각은 화이트박스 암호형 GFN(400)에 관한 안정성 지수(S)를 32로 만족시키면서 메모리 사용량을 감소시키는 상황을 가정한다. 도 6(b)에서, 경량 화이트박스 암호화 장치(300)는 상기 수학식 3을 기초로 S = r * (n-1) * (1-tr) * m = 32 를 도출할 수 있고, 여기에서, 내부 상태 변수(410)의 크기(m)를 8 비트로 설정하여 내부 상태 변수(410)의 개수(n)를 5 개로 산출할 수 있고, 재사용 룩업 테이블의 비율(tr)를 2/5로 설정하여 라운드 반복 횟수(r)를 2로 산출할 수 있다. 이 경우, 경량 화이트박스 암호화 장치(300)는 총 요구되는 테이블의 크기가 8,196 비트 (= 4 * 28 * 8)로 산출됨에 따라, 도 6(a) 대비 총 요구되는 테이블의 크기를 약 1/4 배로 감소시킬 수 있다.6 (b) to 6 (c) show a case in which the lookup table 420 is reused, each of which reduces the memory usage while satisfying a stability index S of 32 for the white box encrypted GFN 400. Let's assume a situation. In FIG. 6B, the lightweight white box encryption apparatus 300 may derive S = r * (n-1) * (1-t r ) * m = 32 based on Equation 3 above. In this case, by setting the size (m) of the internal state variable (410) to 8 bits, the number (n) of the internal state variables (410) can be calculated as five, and the ratio (t r ) of the reuse lookup table is 2/5. The number of round repetitions r can be calculated as 2 by setting to. In this case, the lightweight white box encryption apparatus 300 calculates the total size of the required table as 8,196 bits (= 4 * 2 8 * 8), thereby reducing the size of the total required table to about 1 (a). Can be reduced by / 4 times.

도 6(c)에서, 경량 화이트박스 암호화 장치(300)는 상기 수학식 3을 기초로 S = r * (n-1) * (1-tr) * m = 32 를 도출할 수 있고, 여기에서, 내부 상태 변수(410)의 크기(m)를 4 비트로 설정하여 내부 상태 변수(410)의 개수(n)를 10 개로 산출할 수 있고, 재사용 룩업 테이블의 비율(tr)를 2/5로 설정하여 라운드 반복 횟수(r)를 2로 산출할 수 있다. 이 경우, 경량 화이트박스 암호화 장치(300)는 총 요구되는 테이블의 크기를 640 비트 (= 10 * 24 * 4)로 산출됨에 따라, 도 6(a) 대비 총 요구되는 테이블의 크기를 약 1/51 배로 감소시킬 수 있다.In FIG. 6C, the lightweight white box encryption apparatus 300 may derive S = r * (n-1) * (1-t r ) * m = 32 based on Equation 3 above. In this case, by setting the size (m) of the internal state variable (410) to 4 bits, the number (n) of the internal state variables (410) can be calculated as 10, and the ratio (t r ) of the reuse lookup table is 2/5. The number of round repetitions r can be calculated as 2 by setting to. In this case, the lightweight white box encryption apparatus 300 calculates the total size of the required table as 640 bits (= 10 * 2 4 * 4), thereby reducing the size of the total required table to about 1 (a). Can be reduced by / 51 times.

일 실시예에서, 경량 화이트박스 암호화 장치(300)는 이와 같이, 환경에 따라 파라미터를 조절하여 메모리 제약을 해소할 수 있고, 비밀 키를 라운드 키로 사용하여 비밀키 크기를 높임에 따라 안전성을 강화시킬 수 있으며, 안전성이 강화됨에 따라 라운드 반복 횟수(r)를 감소시킬 수 있어 암호화 속도를 크게 향상시킬 수 있다.In one embodiment, the lightweight white box encryption apparatus 300 may remove memory constraints by adjusting parameters according to the environment as described above, and increase security by increasing the size of the secret key by using the secret key as a round key. As the safety is enhanced, the number of round repetitions r can be reduced, thereby greatly improving the encryption speed.

도 7은 도 3에 있는 경량 화이트박스 암호화 장치에 의해 수행되는 경량 화이트박스 암호화 방법을 설명하는 순서도이다.7 is a flowchart illustrating a lightweight white box encryption method performed by the lightweight white box encryption device of FIG. 3.

도 7에서, 평문 관리부(310)는 평문을 생성한다(단계 S710). 화이트박스 암호형 GFN 생성부(320)는 라운드 함수를 라운드 키로 내부 인코딩한 룩업 테이블(420)로서 생성한 화이트박스 암호형 GFN(400)을 생성한다(단계 S720). 암호문 제공부(330)는 외부 인코딩된 평문을 화이트박스 암호형 GFN(400)에 제공하여 암호문을 제공한다(단계 S730).In FIG. 7, the plain text manager 310 generates plain text (step S710). The whitebox cryptographic GFN generation unit 320 generates a whitebox cryptographic GFN 400 generated as a lookup table 420 in which the round function is internally encoded with a round key (step S720). The ciphertext providing unit 330 provides the ciphertext by providing the externally encoded plain text to the white box cipher GFN 400 (step S730).

일 실시예에서, 화이트박스 암호형 GFN 생성부(320)는 라운드 별로 암호화 및 복호화를 위해 사용되는 룩업 테이블(420)을 재사용하여 화이트박스 암호화 과정에서 요구되는 테이블 개수 및 크기를 현저하게 감소시킬 수 있고, 이에 따라, 제한된 메모리 및 속도 환경이 요구되는 사물인터넷(Internet of Things, IoT) 기반의 경량 환경에 보다 적합하게 구현될 수 있다.In one embodiment, the whitebox encrypted GFN generation unit 320 may significantly reduce the number and size of tables required in the whitebox encryption process by reusing the lookup table 420 used for encryption and decryption for each round. Accordingly, the present invention may be more suitably implemented in a lightweight environment based on the Internet of Things (IoT), which requires a limited memory and speed environment.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described above with reference to a preferred embodiment of the present invention, those skilled in the art will be variously modified and changed within the scope of the invention without departing from the spirit and scope of the invention described in the claims below I can understand that you can.

300: 경량 화이트박스 암호화 장치
310: 평문 관리부 320: 화이트박스 암호형 GFN 생성부
330: 암호문 제공부
400: 화이트박스 암호형 GFN(Generalized Feistel Network)
410: 내부 상태 변수 420: 룩업 테이블
300: Lightweight Whitebox Encryption Device
310: plain text management unit 320: white box encrypted GFN generation unit
330: ciphertext provider
400: Generalized Feistel Network (GFN) with white box encryption
410: internal state variable 420: lookup table

Claims (11)

(a) 평문을 외부 인코딩하는 단계;
(b) 라운드 함수를 라운드 키로 내부 인코딩한 룩업 테이블로서 생성한 화이트박스 암호형 GFN(Generalized Feistel Network)을 적어도 하나의 파라미터에 따라 생성하는 단계; 및
(c) 상기 외부 인코딩된 평문을 상기 화이트박스 암호형 GFN에 제공하여 암호문을 제공하는 단계를 포함하되,
상기 (b) 단계는 상기 화이트박스 암호형 GFN에 관한 안정성 지수를 비밀키의 크기로 정의하고 상기 룩업 테이블의 구현을 위해 요구되는 테이블의 총 크기 및 상기 안정성 지수를 기초로 상기 적어도 하나의 파라미터를 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법.
(a) externally encoding the plain text;
(b) generating, according to at least one parameter, a whitebox cryptographic Generalized Feistel Network (GFN) generated as a lookup table with the round function internally encoded with a round key; And
(c) providing the ciphertext by providing the externally encoded plaintext to the whitebox encrypted GFN,
In step (b), the stability index for the white box cryptographic GFN is defined as the size of the secret key and the at least one parameter is based on the total size of the table and the stability index required for implementing the lookup table. And determining said computer executable lightweight whitebox encryption method.
제1항에 있어서, 상기 (a) 단계는
복수의 인코딩 타입이 정의된 인코딩 테이블을 기초로 상기 외부 인코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법.
The method of claim 1, wherein step (a)
And performing the external encoding based on an encoding table in which a plurality of encoding types are defined.
제2항에 있어서, 상기 (a) 단계는
상기 안정성 지수를 기초로 상기 외부 인코딩된 평문을 n (상기 n은 자연수) 개의 m (상기 m은 자연수) 비트를 가지는 내부 상태 변수로 분할하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법.
The method of claim 2, wherein step (a)
And partitioning the externally encoded plaintext into an internal state variable having n bits (where n is a natural number) m (the m is a natural number) bits based on the stability index. Box encryption method.
제1항에 있어서, 상기 (b) 단계는
상기 라운드 키에 관해 ARX(Addition, Rotation, XOR) 연산을 수행하여 상기 룩업 테이블을 산출하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법.
The method of claim 1, wherein step (b)
Computing the lookup table by performing an ARX (Addition, Rotation, XOR) operation on the round key.
제1항에 있어서, 상기 (b) 단계는
상기 안정성 지수를 기초로 단일 라운드 당 상기 룩업 테이블을 (n-1-t) (상기 n은 내부상태변수의 개수, 상기 t는 재사용 룩업 테이블의 개수로서 0 이상의 정수) 개 만큼 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법.
The method of claim 1, wherein step (b)
Generating as many as (n-1-t) the lookup table per single round based on the stability index, where n is the number of internal state variables and t is the number of reuse lookup tables. Lightweight whitebox encryption method executable by the computer, characterized in that.
제5항에 있어서, 상기 (b) 단계는
r (상기 r은 자연수) 번의 라운드 각각에서 상기 t를 동일한 값으로 유지하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법.
The method of claim 5, wherein step (b)
and maintaining said t at the same value in each of r rounds (where r is a natural number).
제1항에 있어서, 상기 (b) 단계는
상기 안정성 지수를 기초로 총 요구되는 라운드 키의 개수(N)와 내부 상태 변수의 비트 개수(m)를 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법.
The method of claim 1, wherein step (b)
Determining the total number of required round keys (N) and the number of bits (m) of internal state variables based on the stability index.
제7항에 있어서, 상기 (b) 단계는
총 요구되는 라운드 키의 개수(N)를 기초로 라운드 반복 횟수(r), 내부 상태 변수의 개수(n) 및 재사용 룩업 테이블의 개수(t)를 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법.
The method of claim 7, wherein step (b)
Determining the number of round iterations (r), the number of internal state variables (n), and the number of reuse lookup tables (t) based on the total number of required round keys (N). Possible lightweight whitebox encryption method.
제8항에 있어서, 상기 (b) 단계는
상기 총 요구되는 라운드 키를 결합하여 화이트박스 암호를 위한 비밀 키를 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법.
The method of claim 8, wherein step (b)
Combining the total required round keys to generate a secret key for a whitebox cryptogram.
제1항에 있어서, 상기 (c) 단계는
상기 암호문에 관해 외부 인코딩을 수행하여 경량 화이트 박스 암호화를 수행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법.
The method of claim 1, wherein step (c)
And performing light weight white box encryption by performing external encoding on the cipher text.
평문을 외부 인코딩하는 평문 관리부;
라운드 함수를 라운드 키로 내부 인코딩한 룩업 테이블로서 생성한 화이트박스 암호형 GFN(Generalized Feistel Network)을 적어도 하나의 파라미터에 따라 생성하는 화이트박스 암호형 GFN 생성부; 및
상기 외부 인코딩된 평문을 상기 화이트박스 암호형 GFN에 제공하여 암호문을 제공하는 암호문 제공부를 포함하되,
상기 화이트박스 암호형 GFN 생성부는 상기 화이트박스 암호형 GFN에 관한 안정성 지수를 비밀키의 크기로 정의하고 상기 룩업 테이블의 구현을 위해 요구되는 테이블의 총 크기 및 상기 안정성 지수를 기초로 상기 적어도 하나의 파라미터를 결정하는 것을 특징으로 하는 경량 화이트박스 암호화 장치.
A plain text manager for externally encoding the plain text;
A whitebox cryptographic GFN generation unit for generating a whitebox cryptographic GFN (Generalized Feistel Network) generated as a lookup table internally encoded with a round key according to at least one parameter; And
It includes a cipher text providing unit for providing a cipher text by providing the externally encoded plain text to the white box cipher type GFN,
The white box encrypted GFN generation unit defines a stability index for the white box encrypted GFN as the size of the secret key and based on the total size of the table required for the implementation of the lookup table and the stability index. Lightweight white box encryption apparatus, characterized in that for determining the parameters.
KR1020170106010A 2017-08-22 2017-08-22 Computer-executable lightweight white-box cryptographic method and apparatus thereof KR102033351B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170106010A KR102033351B1 (en) 2017-08-22 2017-08-22 Computer-executable lightweight white-box cryptographic method and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170106010A KR102033351B1 (en) 2017-08-22 2017-08-22 Computer-executable lightweight white-box cryptographic method and apparatus thereof

Publications (2)

Publication Number Publication Date
KR20190020988A KR20190020988A (en) 2019-03-05
KR102033351B1 true KR102033351B1 (en) 2019-10-17

Family

ID=65760380

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170106010A KR102033351B1 (en) 2017-08-22 2017-08-22 Computer-executable lightweight white-box cryptographic method and apparatus thereof

Country Status (1)

Country Link
KR (1) KR102033351B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2582900A (en) 2019-03-18 2020-10-14 Pqshield Ltd Cryptography using a cryptographic state
KR102319699B1 (en) * 2019-08-02 2021-11-02 국민대학교산학협력단 White box cryptographic encoding device and method using anti-inversion function
CN115987483B (en) * 2022-12-19 2024-01-30 豪符密码检测技术(成都)有限责任公司 Method for detecting white box password
CN115987489B (en) * 2022-12-28 2023-10-20 北京电子科技学院 Lightweight encryption and decryption method and device and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012530269A (en) 2009-06-19 2012-11-29 イルデト・ベー・フェー White box cryptosystem with configurable keys using intermediate data modification
KR101623503B1 (en) * 2015-02-04 2016-05-23 국민대학교산학협력단 Apparatus and method for white-box cryptography implementation of LEA block cipher

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050087271A (en) * 2004-02-26 2005-08-31 삼성전자주식회사 Key schedule apparatus for generating an encryption round key and a decryption round key selectively corresponding to initial round key having variable key length
KR20150090438A (en) 2014-01-29 2015-08-06 한국전자통신연구원 White box encryption apparatus and encryption method
KR20150139304A (en) * 2014-06-03 2015-12-11 한국전자통신연구원 Encryption device and method for protecting a master key
KR101989956B1 (en) * 2015-10-29 2019-06-17 삼성에스디에스 주식회사 Apparatus and method for encryption

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012530269A (en) 2009-06-19 2012-11-29 イルデト・ベー・フェー White box cryptosystem with configurable keys using intermediate data modification
KR101623503B1 (en) * 2015-02-04 2016-05-23 국민대학교산학협력단 Apparatus and method for white-box cryptography implementation of LEA block cipher

Also Published As

Publication number Publication date
KR20190020988A (en) 2019-03-05

Similar Documents

Publication Publication Date Title
EP3154217B1 (en) Scrambled tweak mode of block ciphers for differential power analysis resistant encryption
KR100917073B1 (en) Method and apparatus for increasing the speed of cryptographic processing
CN101753292B (en) Methods and devices for a chained encryption mode
KR102033351B1 (en) Computer-executable lightweight white-box cryptographic method and apparatus thereof
US10333702B2 (en) Updating key information
US10951402B2 (en) Apparatus and method for encryption
US9189425B2 (en) Protecting look up tables by mixing code and operations
CN108964872B (en) Encryption method and device based on AES
KR101989956B1 (en) Apparatus and method for encryption
US20060023875A1 (en) Enhanced stream cipher combining function
JP7031580B2 (en) Cryptographic device, encryption method, decryption device, and decryption method
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
KR102169369B1 (en) Countermeasure method of first-order side-channel attack on lightweight block cipher and apparatus using the same
CN110474761A (en) One kind 16 takes turns SM4-256 whitepack password implementation method
KR101095386B1 (en) A Cryptosystem with a Discretized Chaotic Map
CN105184115A (en) Method For Including An Implicit Integrity Or Authenticity Check Into A White-box Implementation
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
Alemami et al. Advanced approach for encryption using advanced encryption standard with chaotic map
KR101914453B1 (en) Apparatus and method for encryption
JP2022513185A (en) Devices and methods for performing non-polynomial operations on ciphertext
Andreeva et al. AES-COPA v.
Aghajanzadeh et al. Developing a new hybrid cipher using AES, RC4 and SERPENT for encryption and Decryption
Yoshikawa et al. Round addition DFA on 80-bit Piccolo and TWINE
Zhang Comments on “Color image encryption using Choquet fuzzy integral and hyper chaotic system”
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right