[go: up one dir, main page]

KR102019182B1 - Method for controlling white-box cipher mode of operations which is computer-executable and apparatus of the same - Google Patents

Method for controlling white-box cipher mode of operations which is computer-executable and apparatus of the same Download PDF

Info

Publication number
KR102019182B1
KR102019182B1 KR1020170100321A KR20170100321A KR102019182B1 KR 102019182 B1 KR102019182 B1 KR 102019182B1 KR 1020170100321 A KR1020170100321 A KR 1020170100321A KR 20170100321 A KR20170100321 A KR 20170100321A KR 102019182 B1 KR102019182 B1 KR 102019182B1
Authority
KR
South Korea
Prior art keywords
encryption
block cipher
whitebox
white box
mode
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020170100321A
Other languages
Korean (ko)
Other versions
KR20190016285A (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 KR1020170100321A priority Critical patent/KR102019182B1/en
Publication of KR20190016285A publication Critical patent/KR20190016285A/en
Application granted granted Critical
Publication of KR102019182B1 publication Critical patent/KR102019182B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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

Landscapes

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

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.

Figure R1020170100321
Figure R1020170100321

Description

컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법 및 장치{METHOD FOR CONTROLLING WHITE-BOX CIPHER MODE OF OPERATIONS WHICH IS COMPUTER-EXECUTABLE AND APPARATUS OF THE SAME}METHOD FOR CONTROLLING WHITE-BOX CIPHER MODE OF OPERATIONS WHICH IS COMPUTER-EXECUTABLE AND APPARATUS OF THE SAME}

본 발명은 암호화 운영모드 제어 기술에 관한 것으로, 보다 상세하게는, 화이트박스 암호를 사용하여 다중 블록을 안전하고 효율적으로 처리할 수 있는 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법 및 장치에 관한 것이다.The present invention relates to an encryption operation mode control technology, and more particularly, to a computer-implemented white box encryption operation mode control method and apparatus capable of safely and efficiently processing multiple blocks using a white box encryption.

블록 암호 운용 방식(block cipher modes of operation)은 하나의 키 하에서 블록 암호를 반복적으로 안전하게 이용하게 하는 절차를 말한다. 블록 암호는 특정한 길이의 블록 단위로 동작하기 때문에, 가변 길이 데이터를 암호화하기 위해서는 먼저 이들을 단위 블록들로 나누어야 하며, 그리고 그 블록들을 어떻게 암호화할지를 정해야 하는데, 이때 블록들의 암호화 방식을 운용 방식으로 부른다. 블록 암호 운용 방식의 대표적인 예로는 전자 코드북(Electronic codebook, ECB) 운용 방식, 암호 블록 체인(cipher-block chaining, CBC) 운용 방식, 카운터(Counter, CTR) 운용 방식, XTS(XEX-based tweaked-codebook mode with ciphertext stealing) 운용 방식 등이 있다. 이중에서 XTS 운용 방식에 관해 도 1을 참조하여 보다 상세히 설명하도록 한다.Block cipher modes of operation refers to a procedure for repeatedly and securely using a block cipher under one key. Since block ciphers operate in units of blocks of a specific length, in order to encrypt variable length data, the ciphers must first be divided into unit blocks, and then, how to encrypt the blocks is determined. Representative examples of the block cipher operation method include electronic codebook (ECB) operation method, cipher-block chaining (CBC) operation method, counter (CTR) operation method, XEX-based tweaked-codebook operation method. mode with ciphertext stealing). The XTS operation method will be described in more detail with reference to FIG. 1.

도 1은 XTS 운용 방식을 나타내는 블록도이다.1 is a block diagram showing an XTS operation method.

도 1에서, XTS 운용 방식은 XEX(XOR-Encrypt-XOR) 구조를 사용하고, 두 개의 키를 사용한다. XTS 운용 방식은 블록마다 XOR 하는 값을 업데이트 하고, 평문이 블록단위로 분할되지 않을 경우에는 마지막 이전의 암호문으로부터 부족한 부분을 채운 다음에 최종 암호문을 꼬아주는 구조를 사용하여 평문과 암호문의 길이가 같아진다. 이러한 XTS 운용 방식은 XTS 모드는 디스크 암호화 소프트웨어(TrueCrypt, VeraCrypt, BestCrypt, dm-crypt 등)에서 주로 데이터를 부분을 암호화하는데 사용되고, 동일한 데이터라도 데이터의 저장 위치에 따라 출력되는 암호문에 차이가 발생되는 특징이 있다.In FIG. 1, the XTS operation scheme uses an XEX (XOR-Encrypt-XOR) structure and uses two keys. The XTS operation method updates the XOR value for each block, and if the plaintext is not divided into blocks, the plaintext and the ciphertext are the same length using the structure that fills in the gap from the last ciphertext and then twists the final ciphertext. Lose. This XTS operation method is XTS mode is mainly used to encrypt the data part in disk encryption software (TrueCrypt, VeraCrypt, BestCrypt, dm-crypt, etc.) There is a characteristic.

이러한 종래의 XTS 운용 방식은 암호화와 복호화 과정에서 화이트박스 공격에 취약한 단점이 있다.Such a conventional XTS operation method has a disadvantage of being vulnerable to a white box attack during encryption and decryption.

상기 서술한 블록 암호 운용 방식에서 운용하는 블록 암호는 암호 키가 안전하게 유지 관리된다는 가정 하에서 동작하는 블랙박스 암호화 매커니즘을 기반으로 하고 있다. 이에 반해, 화이트박스 암호는 내부의 동작이 노출되더라도 공격자가 암호 키를 쉽게 유추하지 못하도록 하는 화이트박스 암호화 매커니즘을 기반으로 하고 있다. 이러한 내용은 도 2를 참조하여 보다 상세히 설명하도록 한다.The block cipher operated in the above-described block cipher operation method is based on a black box encryption mechanism operating under the assumption that the encryption key is securely maintained. In contrast, whitebox cryptography 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 the attacker analyzes the internal operation by hiding the algorithm into a large lookup table and hiding the encryption key therein with the software algorithm implemented in the 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).

이러한 화이트박스 암호는 블록 암호 대비 보다 강력한 보안성을 제공할 수 있으나, 속도와 메모리 측면에서 효율성이 다소 떨어지는 단점이 있다.These whitebox ciphers can provide stronger security than block ciphers, but they have some disadvantages in terms of speed and memory.

종래의 암호 운용 기술은 단일 블록에 대한 화이트박스 암호를 처리할 수 있으나, 다중 블록에 대한 화이트박스 암호를 효율적으로 처리하고 운용하기 위한 운영 모드가 부재하여 이에 관한 개발이 요구되고 있다.Conventional cryptographic operation techniques can process whitebox cryptography for a single block, but there is a lack of an operation mode for efficiently processing and operating whitebox cryptography for multiple blocks, and the development thereof is required.

한국공개특허 제10-2011-0042419호(2011.04.27)호는 멀티미디어에 적용 가능한 블록암호 운용방법에 관한 것으로, CTR 모드와 CBC 모드를 동시에 사용하는 혼합 모델로 수퍼블록으로 분할하고 각 수퍼블록의 초기 벡터를 연쇄적인 카운터로 운용하는 DCBC(Discrete CBC) 모드, 여기서, 수퍼블록 내에서는 종래의 CBC 모드와 동일한 방식의 암복호와 단계 및 각 수퍼블록에 사용되는 초기 벡터는 종래의 CTR 모드의 증가규칙을 포함하고, 암복호화가 상기 수퍼블록 단위로 이루어지므로, 원하는 수퍼블록만 암복호화하는 것이 가능하고, 병렬처리가 가능하며, 수퍼블록 단위로 임의 접근이 가능한 것을 특징으로 한다.Korean Patent Laid-Open No. 10-2011-0042419 (2011.04.27) relates to a method for operating a block cipher applicable to multimedia, and is a mixed model using a CTR mode and a CBC mode at the same time. DCBC (Discrete CBC) mode, which operates an initial vector as a chain of counters, where, within the superblock, the decryption and steps in the same manner as the conventional CBC mode and the initial vector used for each superblock are incremented in the conventional CTR mode. It includes a rule, and because the encryption and decryption is made in the unit of the superblock, it is possible to encrypt and decrypt only the desired superblock, parallel processing, it is characterized in that the random access to the superblock unit.

한국등록특허 제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 to output a result of distributed processing of round key operation positions 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-2011-0042419호(2011.04.27)호Korean Patent Publication No. 10-2011-0042419 (2011.04.27) 한국등록특허 제10-1623503(2016.05.17)호Korean Patent Registration No. 10-1623503 (2016.05.17)

본 발명의 일 실시예는 화이트박스 암호를 사용하여 다중 블록을 안전하고 효율적으로 처리할 수 있는 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법 및 장치를 제공하고자 한다.An embodiment of the present invention is to provide a computer-implemented white box encryption operation mode control method and apparatus that can safely and efficiently process multiple blocks using a white box encryption.

본 발명의 일 실시예는 XTS(XEX-based tweaked-codebook mode with ciphertext stealing) 운영모드를 기반으로 다중 블록에 대한 화이트박스 암호화 처리를 제어할 수 있어 속도 저하를 최소화시키고 화이트박스 공격에 안전한 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법 및 장치를 제공하고자 한다.One embodiment of the present invention can control the whitebox encryption process for multiple blocks based on the XEX-based tweaked-codebook mode with ciphertext stealing (XTS) operating mode to minimize speed degradation and to secure computer execution against whitebox attacks The present invention provides a method and apparatus for controlling a white box encryption operation mode.

본 발명의 일 실시예는 보안 모드에 따라 복수의 암호화 키들에 관한 화이트박스 암호화의 수행 여부를 결정하여 암호화 속도와 보안성 간의 조절이 가능하도록 하여 사용자 편의성을 향상시킨 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법 및 장치를 제공하고자 한다.According to an embodiment of the present invention, a computer-executable white box encryption operation mode that improves user convenience by determining whether to perform white box encryption on a plurality of encryption keys according to a security mode to enable adjustment between encryption speed and security. It is intended to provide a control method and apparatus.

실시예들 중에서, 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법은 (a) 다중 블록 암호와 연관된 복수의 암호화 키들을 수신하는 단계, (b) 제1 보안 모드에서 상기 복수의 암호화 키들 중 하나에 관해 화이트박스 암호화를 수행하여 블록 암호를 암호화하는 단계, (c) 복수의 분할 평문들을 수신하는 단계 및 (d) 상기 암호화된 블록 암호를 상기 복수의 암호화 키들 중 나머지에 반영하고 상기 복수의 분할 평문들을 블록 암호 암호화(block cipher encryption)하여 복수의 분할 암호문들을 생성하는 단계를 포함한다.Among embodiments, a computer-implemented whitebox cryptographic operation mode control method includes (a) receiving a plurality of encryption keys associated with a multi-block cipher, and (b) relating to one of the plurality of encryption keys in a first security mode. Encrypting the block cipher by performing whitebox encryption, (c) receiving a plurality of fragmented plaintexts, and (d) reflecting the encrypted block cipher to the remainder of the plurality of encryption keys and Generating a plurality of fragment ciphertexts by block cipher encryption.

상기 (b) 단계는 제2 보안 모드에서 상기 복수의 암호화 키들 중 하나에 관해 블록 암호 암호화를 수행하는 단계를 포함할 수 있다.Step (b) may include performing block cipher encryption on one of the plurality of encryption keys in a second security mode.

상기 (b) 단계는 상기 복수의 암호화 키들 중 암호화 횟수가 가장 적은 하나(이하, 공통 암호화 키)에 관해 화이트박스 암호화를 수행하는 단계를 포함할 수 있다.Step (b) may include performing whitebox encryption on one of the plurality of encryption keys having the least number of encryptions (hereinafter, referred to as a common encryption key).

상기 (c) 단계는 상기 블록 암호 암호화 전에 상기 수신된 복수의 분할 평문들을 외부 인코딩하는 단계를 포함할 수 있다.Step (c) may comprise externally encoding the received plurality of split plain texts prior to the block cipher encryption.

상기 (d) 단계는 상기 블록 암호 암호화 후에 상기 복수의 분할 암호문들을 외부 인코딩 하는 단계를 포함할 수 있다.The step (d) may include externally encoding the plurality of fragment ciphertexts after the block cipher encryption.

상기 (b) 단계는 상기 화이트박스 암호화의 수행 과정에서 복수의 인코딩 변환 방식들을 정의한 인코딩 변환 테이블을 생성하는 단계를 더 포함하고, 상기 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법은 상기 (c) 및 (d) 단계에서 상기 인코딩 변환 테이블을 기초로 상기 복수의 분할 평문들 및 분할 암호문들 각각에 대한 외부 인코딩을 수행하는 단계를 포함할 수 있다.The step (b) further includes the step of generating an encoding conversion table defining a plurality of encoding conversion schemes in the process of performing the white box encryption, wherein the computer-implementable white box encryption operation mode control method includes (c) and In step (d), the method may include performing an external encoding on each of the plurality of split plaintext and split ciphertext based on the encoding conversion table.

상기 (d) 단계는 상기 암호화된 블록 암호와 상기 외부 인코딩된 복수의 분할 평문들 각각 간에 XOR 연산을 수행하여 해당 연산의 수행 결과를 상기 블록 암호 암호화를 수행하기 위한 입력으로 제공하는 단계를 포함할 수 있다.The step (d) may include performing an XOR operation between each of the encrypted block cipher and the plurality of externally encoded fragmented plaintexts and providing a result of performing the operation as an input for performing the block cipher encryption. Can be.

상기 (a) 단계는 XTS (XEX-based tweaked-codebook mode with ciphertext stealing) 모드에서 사용되는 2 개의 키들을 상기 복수의 암호화 키들로 수신하는 단계를 포함할 수 있다.The step (a) may include receiving two keys used in the XTS-based tweaked-codebook mode with ciphertext stealing (XTS) mode as the plurality of encryption keys.

상기 (b) 단계는 WB(White Box)-AES(Advanced Encryption Standard), WB-DES(Data Encryption Standard) 또는 WB-LEA(Lightweight Encryption Algorithm)를 기초로 상기 화이트박스 암호화를 수행하는 단계를 포함할 수 있다.The step (b) may include performing the white box encryption based on a white box (WB) -advanced encryption standard (AES), a data encryption standard (WB-DES), or a light weight encryption algorithm (WB-LEA). Can be.

실시예들 중에서, 화이트박스 암호화 운영모드 제어 장치는 다중 블록 암호와 연관된 복수의 암호화 키들을 수신하는 암호화 키 수신부, 제1 보안 모드에서 상기 복수의 암호화 키들 중 하나에 관해 화이트박스 암호화를 수행하여 블록 암호를 암호화하는 화이트박스 암호화 수행부, 복수의 분할 평문들을 수신하는 분할 평문 수신부 및 상기 암호화된 블록 암호를 상기 복수의 암호화 키들 중 나머지에 반영하고 상기 복수의 분할 평문들을 블록 암호 암호화(block cipher encryption)하여 복수의 분할 암호문들을 생성하는 분할 암호문 생성부를 포함한다.In one or more embodiments, the apparatus for controlling a whitebox encryption operation mode may include: an encryption key receiver configured to receive a plurality of encryption keys associated with a multi-block cipher, and performing a whitebox encryption on one of the plurality of encryption keys in a first security mode. A white box encryption execution unit for encrypting a cipher, a split plaintext receiver for receiving a plurality of divided plaintexts, and the encrypted block cipher are reflected in the remaining ones of the plurality of encryption keys and the plurality of divided plaintexts are block cipher encryption. And a split ciphertext generator for generating a plurality of split ciphertexts.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.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.

본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법 및 장치는 화이트박스 암호를 사용하여 다중 블록을 안전하고 효율적으로 처리할 수 있다.A computer-implemented white box encryption operation mode control method and apparatus according to an embodiment of the present invention can safely and efficiently process multiple blocks using white box encryption.

본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법 및 장치는 XTS(XEX-based tweaked-codebook mode with ciphertext stealing) 운영모드를 기반으로 다중 블록에 대한 화이트박스 암호화 처리를 제어할 수 있어 속도 저하를 최소화시키고 화이트박스 공격에 안전한 특징이 있다.A computer-implemented white box encryption operating mode control method and apparatus according to an embodiment of the present invention may control white box encryption processing for multiple blocks based on an XEX-based tweaked-codebook mode with ciphertext stealing (XTS) operating mode. It can minimize speed degradation and is safe against white box attacks.

본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법 및 장치는 보안 모드에 따라 복수의 암호화 키들에 관한 화이트박스 암호화의 수행 여부를 결정하여 암호화 속도와 보안성 간의 조절이 가능하도록 하여 사용자 편의성을 향상시킬 수 있다.The method and apparatus for controlling computer-implemented whitebox encryption operation mode according to an embodiment of the present invention determine whether to perform whitebox encryption on a plurality of encryption keys according to the security mode so that the control between encryption speed and security is possible. User convenience can be improved.

도 1은 XTS 운용 방식을 나타내는 블록도이다.
도 2는 화이트박스 암호화의 기본 개념을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 화이트박스 암호화 운영모드 제어 장치의 구성을 나타내는 블록도이다.
도 4는 도 3에 있는 화이트박스 암호화 운영모드 제어 장치가 다중 블록에 대한 화이트박스 암호화 운영모드 중 제1 보안 모드에서 동작하는 과정을 나타내는 블록도이다.
도 5는 도 3에 있는 화이트박스 암호화 운영모드 제어 장치가 보안 모드에 따라 복수의 분할 암호문들을 생성하는 과정의 일 실시예를 나타내는 블록도이다.
1 is a block diagram showing an XTS operation method.
2 is a diagram illustrating a basic concept of white box encryption.
3 is a block diagram illustrating a configuration of an apparatus for controlling a white box encryption operation mode according to an embodiment of the present invention.
FIG. 4 is a block diagram illustrating a process in which the white box encryption operation mode control device of FIG. 3 operates in a first security mode among white box encryption operation modes for multiple blocks.
FIG. 5 is a block diagram illustrating an embodiment of a process of generating a plurality of divided cipher texts according to a security mode by the apparatus for controlling a white box encryption operation mode 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 illustrating a configuration of an apparatus for controlling a white box encryption operation mode according to an embodiment of the present invention.

도 3을 참조하면, 화이트박스 암호화 운영모드 제어 장치(300)는 암호화 키 수신부(310), 화이트박스 암호화 수행부(320), 분할 평문 수신부(330), 분할 암호문 생성부(340) 및 제어부(350)를 포함할 수 있다.Referring to FIG. 3, the apparatus for controlling white box encryption operation mode 300 may include an encryption key receiver 310, a white box encryption performer 320, a split plaintext receiver 330, a split ciphertext generator 340, and a controller ( 350).

화이트박스 암호화 운영모드 제어 장치(300)는 다중 블록에 대한 화이트박스 암호화 운영모드를 제어할 수 있는 컴퓨팅 장치에 해당할 수 있고, 일 실시예에서, 데스크톱, 태블릿 PC, 노트북 또는 스마트폰 등으로 구현될 수 있다.The white box encryption operation mode control device 300 may correspond to a computing device capable of controlling the white box encryption operation mode for multiple blocks, and in one embodiment, is implemented as a desktop, a tablet PC, a notebook, or a smartphone. Can be.

암호화 키 수신부(310)는 복수의 암호화 키들을 수신할 수 있다. 이하의 내용들은 도 4를 더 참조하여 보다 상세히 설명하도록 한다.The encryption key receiver 310 may receive a plurality of encryption keys. The following contents will be described in more detail with reference to FIG. 4.

도 4는 도 3에 있는 화이트박스 암호화 운영모드 제어 장치가 다중 블록에 대한 화이트박스 암호화 운영모드 중 제1 보안 모드에서 동작하는 과정을 나타내는 블록도이다.FIG. 4 is a block diagram illustrating a process in which the white box encryption operation mode control device of FIG. 3 operates in a first security mode among white box encryption operation modes for multiple blocks.

도 4에서, 암호화 키 수신부(310)는 다중 블록 암호와 연관된 복수의 암호화 키들(410)을 수신할 수 있다. 일 실시예에서, 암호화 키 수신부(310)는 XTS (XEX-based tweaked-codebook mode with ciphertext stealing) 모드에서 사용되는 2 개의 키들을 복수의 암호화 키들(410)로 수신할 수 있다. 예를 들어, 암호화 키 수신부(310)는 XTS 모드에서 사용되는 제1 암호화 키(410a)와 제2 암호화 키(410b)를 수신할 수 있다.In FIG. 4, the encryption key receiver 310 may receive a plurality of encryption keys 410 associated with a multi-block cipher. According to an embodiment, the encryption key receiver 310 may receive two keys used in the XEX-based tweaked-codebook mode with ciphertext stealing (XTS) mode as the plurality of encryption keys 410. For example, the encryption key receiver 310 may receive the first encryption key 410a and the second encryption key 410b used in the XTS mode.

화이트박스 암호화 수행부(320)는 제1 보안 모드에서 복수의 암호화 키들(410) 중 하나에 관해 화이트박스 암호화를 수행하여 블록 암호를 암호화할 수 있다. 보다 구체적으로, 화이트박스 암호화 수행부(320)는 제1 및 제2 보안 모드를 포함하는 복수의 보안 모드들을 기초로 복수의 암호화 키들(410)에 관한 화이트박스 암호화의 수행 여부를 결정할 수 있다. 일 실시예에서, 화이트박스 암호화 수행부(320)는 제1 보안 모드에서 복수의 암호화 키들(410) 중 하나에 관해 화이트박스 암호화를 수행할 수 있고, 제2 보안 모드에서 복수의 암호화 키들(410) 중 하나에 관해 블록 암호 암호화(block cipher encryption)를 수행할 수 있다. 일 실시예에서, 화이트박스 암호화 수행부(320)는 제3 보안 모드에서 복수의 암호화 키들(410) 모두에 관해 화이트박스 암호화를 수행할 수도 있다. 화이트박스 암호화 수행부(320)는 화이트박스 암호화가 수행된 암호화된 블록 암호와 화이트박스 암호화가 수행되지 않은 다른 암호화 키를 분할 암호문 생성부(340)에 제공할 수 있다.The whitebox encryption performing unit 320 may encrypt the block cipher by performing whitebox encryption on one of the plurality of encryption keys 410 in the first security mode. More specifically, the whitebox encryption performing unit 320 may determine whether to perform whitebox encryption on the plurality of encryption keys 410 based on the plurality of security modes including the first and second security modes. In one embodiment, the whitebox encryption performing unit 320 may perform whitebox encryption on one of the plurality of encryption keys 410 in the first security mode, and the plurality of encryption keys 410 in the second security mode. Block cipher encryption (block cipher encryption) can be performed. In one embodiment, the whitebox encryption performing unit 320 may perform whitebox encryption on all of the plurality of encryption keys 410 in the third security mode. The white box encryption performing unit 320 may provide the divided ciphertext generation unit 340 with an encrypted block cipher in which white box encryption is performed and another encryption key in which white box encryption is not performed.

이에 따라, 화이트박스 암호화 수행부(320)는 복수의 암호화 키들(410) 중 하나의 암호화 키에 대해서만 화이트박스 암호화를 수행하는 보안 모드에서 공격자에 의해 해당 암호화 키가 노출되더라도 나머지 암호화 키 및 인코딩 정보가 노출되지 않기 때문에 화이트박스 공격에 안전한 효과가 있고, 모든 암호화 키에 관해 화이트박스 암호화를 수행하지 않아 전체 암호화 속도의 저하를 방지할 수 있다. 또한, 화이트박스 암호화 수행부(320)는 보안 모드에 따라 모든 암호화 키들에 대해 화이트박스 암호화를 수행하도록 하여 보안을 강화시키거나, 모든 암호화 키들에 대해 화이트박스 암호화를 수행하지 않도록 하여 보안을 낮추는 대신 속도를 높이는 방향을 고려하여 선택적으로 운영모드를 제어할 수도 있다.Accordingly, the white box encryption execution unit 320 may expose the remaining encryption key and encoding information even if the corresponding encryption key is exposed by an attacker in a security mode in which the white box encryption is performed only for one of the plurality of encryption keys 410. Because it is not exposed, it has a safe effect against white box attacks and does not perform white box encryption on all encryption keys, thereby preventing the degradation of the overall encryption speed. In addition, the white box encryption execution unit 320 enhances security by performing white box encryption on all encryption keys according to the security mode, or instead of lowering security by not performing white box encryption on all encryption keys. The operating mode may be selectively controlled in consideration of the direction of increasing the speed.

일 실시예에서, 화이트박스 암호화 수행부(320)는 복수의 암호화 키들(410) 중 암호화 횟수가 가장 적은 하나(이하, 공통 암호화 키)에 관해 화이트박스 암호화를 수행할 수 있다. 일 실시예에서, 화이트박스 암호화 수행부(320)는 전체 암호화 과정에서 사용되는 비율이 가장 적은 암호화 키를 공통 암호화 키로 결정할 수 있고, 다른 일 실시예에서, 전체 암호화 과정에서 제일 먼저 사용되는 암호화 키를 공통 암호화 키로 결정할 수도 있다.In one embodiment, the whitebox encryption performing unit 320 may perform whitebox encryption on one of the plurality of encryption keys 410 having the least number of encryptions (hereinafter, referred to as a common encryption key). In one embodiment, the whitebox encryption performing unit 320 may determine the encryption key having the smallest ratio used in the entire encryption process as the common encryption key, and in another embodiment, the encryption key used first in the entire encryption process May be determined as the common encryption key.

일 실시예에서, 화이트박스 암호화 수행부(320)는 단일 암호화 키에 관한 화이트박스 암호화를 수행하는 제1 보안 모드에서 XTS 모드에서 사용되는 제1 암호화 키(410a)와 제2 암호화 키(410b) 중 하나를 선별할 수 있고, 예를 들어, 전체 암호화 과정에서 블록 암호 암호화에 입력 시드로서 사용되는 횟수가 더 적은 제2 암호화 키(410b)를 공통 암호화 키로 결정하여 제2 암호화 키(410b)를 기초로 단일 블록에 대한 화이트박스 암호화를 수행할 수 있다. 이에 따라, 화이트박스 암호화 수행부(320)는 제2 암호화 키(410b)에 관한 화이트박스 암호화를 통해 전체 속도 저하를 감소시킬 수 있으면서 공격자에게 제1 암호화 키(410a)(예를 들어, Key1)가 노출되더라도 제2 암호화 키(410b)(예를 들어, Key2) 및 인코딩 정보를 숨길 수 있어 공격자가 암호문으로부터 평문을 알아낼 수 없도록 보호할 수 있다.In one embodiment, the whitebox encryption performing unit 320 performs a first encryption key 410a and a second encryption key 410b used in the XTS mode in a first security mode that performs whitebox encryption on a single encryption key. May be selected, and for example, the second encryption key 410b may be determined as the common encryption key by determining the second encryption key 410b which is less frequently used as an input seed for block cipher encryption in the entire encryption process. Based on this, whitebox encryption for a single block can be performed. Accordingly, the white box encryption performing unit 320 may reduce the overall speed degradation through the white box encryption on the second encryption key 410b while providing the attacker with the first encryption key 410a (for example, Key1). Even if is exposed, the second encryption key 410b (for example, Key2) and the encoding information can be hidden to protect the attacker from being able to recognize the plain text from the cipher text.

일 실시예에서, 화이트박스 암호화 수행부(320)는 화이트박스 암호화 수행부(320)는 WB(White Box)-AES(Advanced Encryption Standard), WB-DES(Data Encryption Standard) 또는 WB-LEA(Lightweight Encryption Algorithm)를 기초로 화이트박스 암호화를 수행할 수 있다. 예를 들어, 화이트박스 암호화 수행부(320)는 WB-AES, WB-DES 또는 WB-LEA를 기초로 제2 암호화 키(410b)에 대한 암호화 방식이 정의된 화이트박스 테이블을 생성할 수 있고, 화이트박스 테이블을 기초로 식별번호 420의 파트에서 T1에 관한 화이트박스 암호화를 수행하여(G(T1)) T1'를 출력할 수 있다.In one embodiment, the white box encryption execution unit 320 is a white box encryption execution unit 320 is WB (White Box) -AES (Advanced Encryption Standard), WB-DES (Data Encryption Standard) or WB-LEA (Lightweight) Whitebox encryption can be performed based on Encryption Algorithm. For example, the white box encryption execution unit 320 may generate a white box table in which an encryption method for the second encryption key 410b is defined based on WB-AES, WB-DES, or WB-LEA. in the part of the identification number 420, on the basis of the white-box table by performing the white-box cryptographic about T 1 (G (T 1) ) can output a T 1 '.

일 실시예에서, 화이트박스 암호화 수행부(320)는 화이트박스 암호화의 수행 과정에서 복수의 인코딩 변환 방식들을 정의한 인코딩 변환 테이블을 생성할 수 있다. 화이트박스 암호화 수행부(320)는 인코딩 변환 테이블을 기초로 전체 암호화 과정 중 외부 인코딩을 수행할 수 있다. 일 실시예에서, 화이트박스 암호화 수행부(320)는 화이트박스 암호화의 수행 과정에서 인코딩 변환 테이블, 이후의 암호화 과정에서 필요한 XOR 테이블 및 α 업데이트 테이블을 같이 생성할 수 있다. 일 실시예에서, 화이트박스 암호화 수행부(320)는 생성된 제2 암호화 키(410b)에 대한 화이트박스 테이블, XOR 테이블 및 α 업데이트 테이블을 메모리 상에 저장할 수 있고, 이들은 랜덤 테이블인 이유로 메모리 상에 저장하더라도 안전하여 구현의 용이성 및 안전성을 동시에 제공할 수 있다.In one embodiment, the whitebox encryption performing unit 320 may generate an encoding conversion table that defines a plurality of encoding conversion schemes in the process of performing whitebox encryption. The whitebox encryption performing unit 320 may perform external encoding during the entire encryption process based on the encoding conversion table. In one embodiment, the whitebox encryption performing unit 320 may generate the encoding conversion table, the XOR table necessary for the subsequent encryption process, and the α update table together during the whitebox encryption. In one embodiment, the whitebox encryption performing unit 320 may store the whitebox table, the XOR table, and the α update table for the generated second encryption key 410b in memory, and because they are random tables, It is safe even if it is stored in, so it can provide both ease of implementation and safety at the same time.

일 실시예에서, 화이트박스 암호화 수행부(320)는 하기의 수학식 1을 기초로 복수의 암호화 키들(410) 중 화이트박스 암호화를 수행하기 위한 적어도 하나의 암호화 키를 결정할 수 있다. 보다 구체적으로, 화이트박스 암호화 수행부(320)는 하기의 수학식 1을 기초로 특정 암호화 키에 관해 암호화 키 결정 지수(c)를 산출할 수 있고, 암호화 키 결정 지수(c)가 1 미만인 경우에만 해당 암호화 키에 관한 화이트박스 암호화의 수행을 결정할 수 있다. 예를 들어, 화이트박스 암호화 수행부(320)는 하기의 s가 사용자에 의해 0.3으로 설정되었음을 가정한다면, XTS 모드에서 사용되는 2 개의 암호화 키들 제1 및 제2 암호화 키(410a, 410b) 각각에 관해 전체 암호화 과정에서 블록 암호 암호화에 입력 시드로서 사용되는 암호화 키 사용 횟수를 각각 3과 1로 검출할 수 있고, 제1 암호화 키(410a)에 관해 n = 3, t = 4, s = 0.3 을 적용하여 c = 2.5 로 산출하여 해당 제1 암호화 키(410a)에 관한 화이트박스 암호화를 수행하지 않는 것으로 결정할 수 있고, 제2 암호화 키(410b)에 관해 n = 1, t = 4, s = 0.3 을 적용하여 c = 0.83 으로 산출하여 해당 제2 암호화 키(410b)에 관한 화이트박스 암호화를 수행하는 것으로 결정할 수 있다.In an embodiment, the whitebox encryption performing unit 320 may determine at least one encryption key for performing whitebox encryption among the plurality of encryption keys 410 based on Equation 1 below. More specifically, the white box encryption performing unit 320 may calculate an encryption key determination index (c) with respect to a specific encryption key based on Equation 1 below, and when the encryption key determination index (c) is less than 1 Only you can decide to perform whitebox encryption on that encryption key. For example, the white box encryption execution unit 320 may assume that the following s is set to 0.3 by the user, respectively, to each of the two encryption keys 410a and 410b used in the XTS mode. The number of times the encryption key used as the input seed for the block cipher encryption in the entire encryption process can be detected as 3 and 1, respectively, and n = 3, t = 4, and s = 0.3 for the first encryption key 410a. By applying c = 2.5, it can be determined that white box encryption on the first encryption key 410a is not performed, and n = 1, t = 4, s = 0.3 on the second encryption key 410b. By applying c = 0.83 it can be determined to perform the white box encryption on the second encryption key (410b).

[수학식 1][Equation 1]

Figure 112017076355019-pat00001
Figure 112017076355019-pat00001

(여기에서, n은 전체 암호화 과정에서 블록 암호 암호화에 입력 시드로서 사용되는 암호화 키 사용 횟수를 나타내고, t는 복수의 암호화 키들(410) 전체에 관한 전체 사용 횟수를 나타내며, s는 사용자에 의해 설정될 수 있는 특정 기준 비율(0 보다 크고 1 보다 작은 값을 가지고, 예를 들어, 0.3)을 나타냄)(Where n denotes the number of times the encryption key is used as an input seed for block cipher encryption during the entire encryption process, t denotes the total number of times of use of the entirety of the plurality of encryption keys 410, and s is set by the user) A specific reference ratio that can be (represents a value greater than 0 and less than 1, for example, 0.3)

분할 평문 수신부(330)는 복수의 분할 평문들을 수신할 수 있다. 보다 구체적으로, 분할 평문 수신부(330)는 암호화 대상으로서의 데이터를 복수의 분할 평문들로 수신할 수 있고, 이후의 단계에서 복수의 분할 평문들을 기초로 다중 불록에 대한 화이트박스 암호화 기반의 암호문이 생성되도록 할 수 있다. 예를 들어, 분할 평문 수신부(330)는 복수의 분할 평문들(Plaintext) P1, P2, P3을 수신할 수 있다. 일 실시예에서, 복수의 분할 평문들 각각의 길이는 암호문과 동일할 수 있다.The divided plain text receiver 330 may receive a plurality of divided plain texts. More specifically, the divided plaintext receiver 330 may receive data as an encryption target as a plurality of divided plaintexts, and in a subsequent step, a ciphertext based on whitebox encryption for multiple blocks is generated based on the plurality of divided plaintexts. You can do that. For example, the divided plaintext receiver 330 may receive a plurality of divided plaintexts P 1 , P 2 , and P 3 . In one embodiment, the length of each of the plurality of split plaintexts may be the same as the ciphertext.

분할 평문 수신부(330)는 블록 암호 암호화 전에 수신된 복수의 분할 평문들을 외부 인코딩할 수 있고, 외부 인코딩된 복수의 분할 평문들을 분할 암호문 생성부(340)에 입력으로 제공할 수 있다. 일 실시예에서, 분할 평문 수신부(330)는 인코딩 변환 테이블을 기초로 복수의 분할 평문들 각각에 대한 외부 인코딩을 수행할 수 있다. 예를 들어, 분할 평문 수신부(330)는 복수의 분할 평문들 P1, P2 및 P3 를 수신하여 복수의 인코딩 변환 방식들을 정의한 인코딩 변환 테이블을 기초로 식별번호 440과 같이 복수의 분할 평문들 P1, P2 및 P3 각각에 관한 외부 인코딩을 수행하여(F(P1), F(P2), F(P3)) 외부 인코딩된 분할 평문들 P1', P2' 및 P3' 각각을 출력하여 그 다음 연산에 반영할 수 있다.The split plaintext receiver 330 may externally encode a plurality of split plaintexts received before block cipher encryption, and provide the split encoded plaintexts as an input to the split ciphertext generator 340. In an embodiment, the split plaintext receiver 330 may perform external encoding on each of the plurality of split plaintexts based on the encoding conversion table. For example, the divided plaintext receiver 330 receives the plurality of divided plaintexts P 1 , P 2, and P 3 and defines the plurality of divided plain texts as shown in the identification number 440 based on an encoding conversion table that defines a plurality of encoding conversion schemes. Perform outer encoding on P 1 , P 2 and P 3 (F (P 1 ), F (P 2 ), F (P 3 )) to externally encode split plaintexts P 1 ′, P 2 ′ and P Each 3 'can be output and reflected in subsequent operations.

일 실시예에서, 분할 평문 수신부(330)는 평문과 암호문에 적용할 외부 인코딩 과정에서 사용되는 인코딩 변환 테이블을 난독화를 적용하여 안전하게 보호되도록 할 수 있고, 평문에 외부 인코딩을 적용하는 과정과 외부 인코딩이 적용된 암호문을 디코딩 하는 과정을 난독화를 통해 보호할 수 있다.In one embodiment, the split plaintext receiver 330 may be secured by applying obfuscation to the encoding conversion table used in the external encoding process to be applied to the plaintext and ciphertext, and to apply the external encoding to the plaintext and the external The process of decoding the ciphertext with the encoding applied can be protected by obfuscation.

분할 암호문 생성부(340)는 화이트박스 암호화를 통해 암호화된 블록 암호를 복수의 암호화 키들(410) 중 나머지에 반영하고 복수의 분할 평문들을 블록 암호 암호화하여 복수의 분할 암호문들(ciphertext)을 생성할 수 있다. The split ciphertext generation unit 340 generates a plurality of split ciphertexts by reflecting the block cipher encrypted through the white box encryption to the rest of the plurality of encryption keys 410 and block cipher ciphering the plurality of split plaintexts. Can be.

일 실시예에서, 분할 암호문 생성부(340)는 도 4에 표기된 것과 같이, XTS (XEX-based tweaked-codebook mode with ciphertext stealing) 모드를 기반으로 다중 블록에 대한 화이트박스 암호화 운영모드를 운용할 수 있다. 보다 구체적으로, 분할 암호문 생성부(340)는 화이트박스 암호화 수행부(320)로부터 공통 암호화 키를 기초로 화이트박스 암호화를 거쳐 암호화된 블록 암호를 제공 받아 다중 블록에 대한 블록 암호 암호화 과정(식별번호 430 ~ 480 참조)에 반영할 수 있다.In one embodiment, the split ciphertext generation unit 340 may operate a white box encryption operation mode for multiple blocks based on an XTS-based tweaked-codebook mode with ciphertext stealing (XTS) mode, as shown in FIG. 4. have. More specifically, the divided cipher text generation unit 340 receives a block cipher encrypted through white box encryption based on a common encryption key from the white box cipher 320, a block cipher encryption process (identification number) 430 ~ 480).

일 실시예에서, 분할 암호문 생성부(340)는 암호화된 블록 암호와 외부 인코딩된 복수의 분할 평문들 각각 간에 XOR 연산을 수행하여 해당 연산의 수행 결과를 블록 암호 암호화를 수행하기 위한 입력으로 제공할 수 있다. 예를 들어, 분할 암호문 생성부(340)는 제2 암호화 키(410b)를 통해 화이트박스 암호화를 거쳐 암호화된 블록 암호 T1' 와 외부 인코딩된 분할 평문 P1' 에 관해 식별번호 450a 에서와 같이 XOR 연산을 수행할 수 있고, XOR 연산의 출력 결과를 제1 암호화 키(410a)를 이용하여 식별번호 460a와 같이 블록 암호 암호화하는 과정에 입력으로서 제공할 수 있다.In one embodiment, the split ciphertext generation unit 340 performs an XOR operation between each of the encrypted block cipher and the plurality of externally encoded split plaintexts and provides the result of performing the operation as an input for performing block cipher encryption. Can be. For example, the split ciphertext generation unit 340 is the block cipher T 1 'encrypted through the white box encryption through the second encryption key 410b and the externally encoded split plaintext P 1 ' as in the identification number 450a. The XOR operation may be performed, and the output result of the XOR operation may be provided as an input to a block cipher encryption process using the first encryption key 410a as shown in the identification number 460a.

일 실시예에서, 분할 암호문 생성부(340)는 AES, DES 또는 LEA를 기초로 블록 암호 암호화를 수행하여 복수의 분할 암호문들 각각을 생성할 수 있다. 예를 들어, 분할 암호문 생성부(340)는 식별번호 450a와 같은 XOR 연산을 통해 출력된 결과와 제1 암호화 키(410a)를 이용하여 블록 암호화 기술 기반의 LEA를 기초로 해당 블록 암호에 대한 암호화를 수행하여 C1을 출력할 수 있고, 식별번호 470a와 같이 제2 암호화 키(410b)를 통해 화이트박스 암호화를 거쳐 암호화된 블록 암호 T1' 와 위의 출력 C1 에 관한 XOR 연산을 통해 분할 암호문

Figure 112017076355019-pat00002
을 출력할 수 있다. 일 실시예에서, 도 4에 표기된
Figure 112017076355019-pat00003
은 XOR 테이블을 기초로 수행되는 XOR 연산을 의미한다.In one embodiment, the split ciphertext generator 340 may generate each of the plurality of split ciphertexts by performing block cipher encryption based on AES, DES, or LEA. For example, the split ciphertext generation unit 340 encrypts the block cipher based on the LEA based on the block cipher technology using the result output through the XOR operation such as the identification number 450a and the first encryption key 410a. C 1 can be outputted, and the block cipher T 1 'encrypted through the white box encryption through the second encryption key 410 b as shown in the identification number 470a is divided by the XOR operation on the above output C 1 . cryptogram
Figure 112017076355019-pat00002
You can output In one embodiment, shown in FIG.
Figure 112017076355019-pat00003
Denotes an XOR operation performed based on the XOR table.

일 실시예에서, 분할 암호문 생성부(340)는 α 업데이트 테이블을 기초로 암호화된 블록 암호에 관한 α 업데이트 연산을 수행하여 다중 블록 중 다음 블록에 대한 블록 암호 암호화를 수행하는 과정에 반영할 수 있다. 예를 들어, 분할 암호문 생성부(340)는 식별번호 430a와 같이, 제2 암호화 키(410b)를 통해 화이트박스 암호화를 거쳐 암호화된 블록 암호 T1' 에 관한 α 업데이트 1차 연산을 수행하여 해당 수행 결과(G(T2)=T2')를 다음 블록에 입력으로 제공하고, 다음 블록에 대한 블록 암호 암호화의 수행 과정에서 식별번호 430b와 같이, α 업데이트 연산의 수행 결과(G(T2)=T2')에 관한 α 업데이트 2차 연산을 수행하여 해당 2차 수행 결과(G(T3)=T3')를 그 다음 블록에 입력으로 제공할 수 있다.In one embodiment, the split ciphertext generation unit 340 may be reflected in the process of performing the block cipher encryption for the next block of the multi-block by performing the α update operation on the encrypted block cipher based on the α update table. . For example, the split ciphertext generation unit 340 performs the α update primary operation on the block cipher T 1 ′ encrypted through whitebox encryption through the second encryption key 410b, as shown in the identification number 430a. Provides the execution result (G (T 2 ) = T 2 ') as an input to the next block, and performs the result of the α update operation (G (T 2) as in the identification number 430b during the process of block cipher encryption for the next block. The α update quadratic operation regarding) = T 2 ′) may be performed to provide a corresponding quadratic result G (T 3 ) = T 3 ′ as an input to the next block.

일 실시예에서, 분할 암호문 생성부(340)는 블록 암호 암호화 후에 복수의 분할 암호문들을 외부 인코딩 하는 인코딩 변환 테이블을 기초로 복수의 분할 암호문들 각각에 대한 외부 인코딩을 수행할 수 있다. 예를 들어, 분할 암호문 생성부(340)는 식별번호 480a와 같이 분할 암호문

Figure 112017076355019-pat00004
에 관한 외부 인코딩을 수행하여 외부 인코딩된 분할 암호문을 출력할 수 있다.In one embodiment, the split ciphertext generator 340 may perform an external encoding on each of the plurality of split ciphertexts based on an encoding conversion table for externally encoding the plurality of split ciphertexts after block cipher encryption. For example, the divided cipher text generation unit 340 is divided cipher text, such as identification number 480a
Figure 112017076355019-pat00004
An externally encoded split ciphertext may be output by performing an external encoding on the.

제어부(350)는 화이트박스 암호화 운영모드 제어 장치(300)의 동작 전반을 제어할 수 있고, 암호화 키 수신부(310), 화이트박스 암호화 수행부(320), 분할 평문 수신부(330) 및 분할 암호문 생성부(340) 간의 데이터 흐름을 제어할 수 있다. 일 실시예에서, 제어부(350)는 화이트박스 암호화 운영모드 제어 장치(300)의 CPU(Central Processing Unit)으로 구현될 수 있다.The control unit 350 may control the overall operation of the apparatus for controlling the white box encryption operation mode 300, and generates an encryption key receiver 310, a white box encryption performer 320, a split plaintext receiver 330, and a split ciphertext. The data flow between the units 340 may be controlled. In an embodiment, the controller 350 may be implemented as a central processing unit (CPU) of the apparatus for controlling white box encryption operation mode 300.

도 5는 도 3에 있는 화이트박스 암호화 운영모드 제어 장치가 보안 모드에 따라 복수의 분할 암호문들을 생성하는 과정의 일 실시예를 나타내는 블록도이다. 하기의 단계들을 포함할 수 있는 암호화 운영모드 제어 방법은 컴퓨터 실행 가능하다.FIG. 5 is a block diagram illustrating an embodiment of a process of generating a plurality of divided cipher texts according to a security mode by the apparatus for controlling a white box encryption operation mode of FIG. 3. The encryption operation mode control method, which may include the following steps, is computer executable.

도 5에서, 암호화 키 수신부(310)는 복수의 암호화 키들을 수신할 수 있다(단계 S505). 화이트박스 암호화 수행부(320)는 제1 보안 모드에서 복수의 암호화 키들(410) 중 하나에 관해 화이트박스 암호화를 수행할 수 있고(단계 S510 ~ S530), 제2 보안 모드에서 복수의 암호화 키들(410) 중 하나에 관해 블록 암호 암호화를 수행할 수 있다(단계 S535 ~ S550).In FIG. 5, the encryption key receiving unit 310 may receive a plurality of encryption keys (step S505). The whitebox encryption performing unit 320 may perform whitebox encryption on one of the plurality of encryption keys 410 in the first security mode (steps S510 to S530), and the plurality of encryption keys (2) in the second security mode. 410 may perform block cipher encryption (steps S535 to S550).

제1 보안 모드에서, 화이트박스 암호화 수행부(320)는 복수의 암호화 키들(410) 중 하나에 관해 화이트박스 암호화를 수행하여 블록 암호를 암호화할 수 있다(단계 S510). 일 실시예에서, 화이트박스 암호화 수행부(320)는 XTS 모드에서 사용되는 제1 및 제2 암호화 키들(410) 중 암호화 횟수가 가장 적은 제2 암호화 키(410b)를 공통 암호화 키로 설정하고 제2 암호화 키(410b)에 관해 화이트박스 암호화를 수행할 수 있다. 분할 평문 수신부(330)는 복수의 분할 평문들을 수신할 수 있고, 인코딩 변환 테이블을 기초로 외부 인코딩하여 외부 인코딩된 복수의 분할 평문들을 분할 암호문 생성부(340)에 입력으로 제공할 수 있다(단계 S515). 분할 암호문 생성부(340)는 화이트박스 암호화를 통해 암호화된 블록 암호를 복수의 암호화 키들(410) 중 나머지에 반영하고(단계 S520), 복수의 암호화 키들(410) 중 나머지를 기초로 다중 블록에 대한 블록 암호 암호화를 수행하여 복수의 분할 암호문들을 생성할 수 있다(단계 S525). 분할 암호문 생성부(340)는 블록 암호 암호화 후에 인코딩 변환 테이블을 기초로 복수의 분할 암호문들 각각에 대한 외부 인코딩을 수행할 수 있다(단계 S530).In the first security mode, the whitebox encryption performing unit 320 may encrypt the block cipher by performing whitebox encryption on one of the plurality of encryption keys 410 (step S510). In one embodiment, the whitebox encryption performing unit 320 sets the second encryption key 410b having the least number of encryptions among the first and second encryption keys 410 used in the XTS mode as a common encryption key, and sets the second encryption key. Whitebox encryption may be performed on the encryption key 410b. The split plaintext receiver 330 may receive a plurality of split plaintexts and provide a plurality of externally encoded split plaintexts as input to the split ciphertext generator 340 based on an encoding conversion table (step S515). The division ciphertext generation unit 340 reflects the block cipher encrypted through the white box encryption to the rest of the plurality of encryption keys 410 (step S520), and the multi-block based on the rest of the plurality of encryption keys 410. Block cipher encryption may be performed to generate a plurality of fragment ciphertexts (step S525). The split cipher text generation unit 340 may perform external encoding on each of the plurality of split cipher texts based on the encoding conversion table after block cipher encryption (step S530).

제2 보안 모드에서, 화이트박스 암호화 수행부(320)는 복수의 암호화 키들(410) 중 하나에 관해 블록 암호 암호화를 수행하여 블록 암호를 암호화할 수 있다(단계 S535). 일 실시예에서, 화이트박스 암호화 수행부(320)는 AES, DES 또는 LEA를 기초로 상기 하나에 관해 블록 암호 암호화를 수행할 수 있다. 분할 평문 수신부(330)는 복수의 분할 평문들을 수신하여 인코딩 변환 테이블을 기초로 외부 인코딩된 복수의 분할 평문들을 생성할 수 있다(단계 S540). 분할 암호문 생성부(340)는 다중 블록에 대한 블록 암호 암호화를 수행하여 복수의 분할 암호문들을 생성할 수 있다(단계 S545). 분할 암호문 생성부(340)는 블록 암호 암호화 후에 인코딩 변환 테이블을 기초로 복수의 분할 암호문들 각각에 대한 외부 인코딩을 수행할 수 있다(단계 S550).In the second security mode, the whitebox encryption performing unit 320 may encrypt the block cipher by performing block cipher encryption on one of the plurality of encryption keys 410 (step S535). In one embodiment, the white box encryption execution unit 320 may perform block cipher encryption on the one based on AES, DES or LEA. The split plaintext receiver 330 may receive a plurality of split plaintexts and generate a plurality of externally encoded split plaintexts based on an encoding conversion table (step S540). The split ciphertext generation unit 340 may generate a plurality of split ciphertexts by performing block cipher encryption on multiple blocks (step S545). The split ciphertext generator 340 may perform external encoding on each of the plurality of split ciphertexts based on the encoding conversion table after block cipher encryption (step S550).

일 실시예에서, 화이트박스 암호화 운영모드 제어 장치(300)는 복수의 암호화 키들(410) 모두에 관해 화이트박스 암호화를 수행하는 제3 보안 모드를 더 포함할 수 있다.In one embodiment, the white box encryption operation mode control apparatus 300 may further include a third security mode for performing white box encryption on all of the plurality of encryption keys 410.

일 실시예에서, 화이트박스 암호화 운영모드 제어 장치(300)는 다중 블록에 대한 화이트박스 암호화의 운영 모드를 제어하여 화이트박스 공격에 안전한 화이트박스 암호화를 통해 안전성을 확보하면서 동시에 화이트박스 암호화에 따른 속도 저하와 많은 공간을 요구하는 메모리 문제를 최소화시킬 수 있다.In one embodiment, the white box encryption operation mode control device 300 controls the operation mode of the white box encryption for multiple blocks to ensure safety through white box encryption that is safe against white box attack while at the same time speed according to white box encryption This can minimize degradation and memory problems that require a lot of space.

일 실시예에서, 화이트박스 암호화 운영모드 제어 장치(300)는 전체 암호화 과정에서 비율이 적은 암호화 키에 대해서 화이트박스 암호화를 적용하여 보다 안전성을 강화시키면서 동시에 암호화 속도 및 메모리 공간 측면에서 효율적으로 동작하도록 제어할 수 있다.In one embodiment, the white box encryption operation mode control device 300 applies white box encryption to a low encryption key in the entire encryption process to enhance the security while operating efficiently in terms of encryption speed and memory space. Can be controlled.

일 실시예에서, 화이트박스 암호화 운영모드 제어 장치(300)는 다양한 인코딩을 적용한 α 업데이트 연산 및 XOR 연산에 대한 인코딩 풀을 형성하여 고정적인 인코딩 방식을 사용하는 것보다 안전성을 강화할 수 있다In one embodiment, the white box encryption operation mode control apparatus 300 may enhance the security than using a fixed encoding scheme by forming an encoding pool for the α update operation and the XOR operation to which various encodings are applied.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.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: 화이트박스 암호화 수행부
330: 분할 평문 수신부 340: 분할 암호문 생성부
350: 제어부
300: white box encryption operation mode control device
310: encryption key receiving unit 320: white box encryption execution unit
330: Split plaintext receiver 340: Split ciphertext generator
350: control unit

Claims (10)

(a) 다중 블록 암호와 연관되고 특정 블록 암호 알고리즘의 동작에 직접 참여하는 복수의 암호화 키들을 수신하는 단계;
(b) 제1 보안 모드에서 상기 복수의 암호화 키들 중 하나에 관해 화이트박스 암호화를 수행하여 블록 암호를 암호화하고, 상기 화이트박스 암호화의 수행 과정에서 복수의 인코딩 변환 방식들에 관한 테이블을 생성하여 저장하는 단계;
(c) 복수의 분할 평문들을 수신하는 단계; 및
(d) 상기 암호화된 블록 암호를 상기 특정 블록 암호 알고리즘의 동작 과정에 반영하고 상기 복수의 분할 평문들을 블록 암호 암호화(block cipher encryption)하여 복수의 분할 암호문들을 생성하는 단계를 포함하는 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법.
(a) receiving a plurality of encryption keys associated with the multi-block cipher and directly participating in the operation of the particular block cipher algorithm;
(b) encrypting a block cipher by performing whitebox encryption on one of the plurality of encryption keys in a first security mode, and generating and storing a table relating to a plurality of encoding conversion schemes in the process of performing the whitebox encryption; Doing;
(c) receiving a plurality of split plain texts; And
(d) reflecting the encrypted block cipher in an operation of the specific block cipher algorithm and block cipher encrypting the plurality of divided plain texts to generate a plurality of divided cipher texts. How to control box encryption operation mode.
제1항에 있어서, 상기 (b) 단계는
제2 보안 모드에서 상기 복수의 암호화 키들 중 하나에 관해 블록 암호 암호화를 수행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법.
The method of claim 1, wherein step (b)
And performing block cipher encryption on one of the plurality of cipher keys in a second security mode.
제1항에 있어서, 상기 (b) 단계는
상기 복수의 암호화 키들 중 암호화 횟수가 가장 적은 하나(이하, 공통 암호화 키)에 관해 화이트박스 암호화를 수행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법.
The method of claim 1, wherein step (b)
And performing whitebox encryption on one of the plurality of encryption keys having the least number of encryptions (hereinafter, common encryption key).
제1항에 있어서, 상기 (c) 단계는
상기 블록 암호 암호화 전에 상기 수신된 복수의 분할 평문들을 외부 인코딩하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법.
The method of claim 1, wherein step (c)
And externally encoding the received plurality of fragmented plaintexts prior to the block cipher encryption.
제1항에 있어서, 상기 (d) 단계는
상기 블록 암호 암호화 후에 상기 복수의 분할 암호문들을 외부 인코딩 하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법.
The method of claim 1, wherein step (d)
And externally encoding the plurality of split ciphertexts after the block cipher encryption.
제4항 또는 제5항에 있어서, 상기 (b) 단계는
상기 화이트박스 암호화의 수행 과정에서 복수의 인코딩 변환 방식들을 정의한 인코딩 변환 테이블을 생성하는 단계를 더 포함하고,
상기 (c) 및 (d) 단계에서 상기 인코딩 변환 테이블을 기초로 상기 복수의 분할 평문들 및 분할 암호문들 각각에 대한 외부 인코딩을 수행하는 단계를 포함하는 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법.
The method of claim 4 or 5, wherein step (b)
Generating an encoding conversion table defining a plurality of encoding conversion schemes during the whitebox encryption;
And (c) and (d) performing external encoding on each of the plurality of split plaintext and split ciphertexts based on the encoding conversion table.
제6항에 있어서, 상기 (d) 단계는
상기 암호화된 블록 암호와 상기 외부 인코딩된 복수의 분할 평문들 각각 간에 XOR 연산을 수행하여 해당 연산의 수행 결과를 상기 블록 암호 암호화를 수행하기 위한 입력으로 제공하는 단계를 포함하는 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법.
The method of claim 6, wherein step (d)
Performing an XOR operation between each of the encrypted block cipher and the plurality of externally encoded fragmented plaintexts, and providing a result of performing the operation as an input for performing the block cipher encryption. Operation mode control method.
제1항에 있어서, 상기 (a) 단계는
XTS (XEX-based tweaked-codebook mode with ciphertext stealing) 모드에서 사용되는 2 개의 키들을 상기 복수의 암호화 키들로 수신하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법.
The method of claim 1, wherein step (a)
And receiving, as the plurality of encryption keys, two keys used in an XEX-based tweaked-codebook mode with ciphertext stealing (XTS) mode.
제1항에 있어서, 상기 (b) 단계는
WB(White Box)-AES(Advanced Encryption Standard), WB-DES(Data Encryption Standard) 또는 WB-LEA(Lightweight Encryption Algorithm)를 기초로 상기 화이트박스 암호화를 수행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 화이트박스 암호화 운영모드 제어 방법.
The method of claim 1, wherein step (b)
And executing the white box encryption based on White Box (WB) -Advanced Encryption Standard (AES), Data Encryption Standard (WB-DES) or Lightweight Encryption Algorithm (WB-LEA). How to control whitebox encryption mode of operation.
다중 블록 암호와 연관되고 특정 블록 암호 알고리즘의 동작에 직접 참여하는 복수의 암호화 키들을 수신하는 암호화 키 수신부;
제1 보안 모드에서 상기 복수의 암호화 키들 중 하나에 관해 화이트박스 암호화를 수행하여 블록 암호를 암호화하고, 상기 화이트박스 암호화의 수행 과정에서 복수의 인코딩 변환 방식들에 관한 테이블을 생성하여 저장하는 화이트박스 암호화 수행부;
복수의 분할 평문들을 수신하는 분할 평문 수신부; 및
상기 암호화된 블록 암호를 상기 특정 블록 암호 알고리즘의 동작 과정에 반영하고 상기 복수의 분할 평문들을 블록 암호 암호화(block cipher encryption)하여 복수의 분할 암호문들을 생성하는 분할 암호문 생성부를 포함하는 화이트박스 암호화 운영모드 제어 장치.
An encryption key receiver for receiving a plurality of encryption keys associated with the multi-block cipher and directly participating in the operation of a particular block cipher algorithm;
A white box encrypts a block cipher by performing whitebox encryption on one of the plurality of encryption keys in a first security mode, and generates and stores a table relating to a plurality of encoding conversion schemes during the whitebox encryption. An encryption performing unit;
A divided plain text receiver for receiving a plurality of divided plain texts; And
A white box encryption operation mode including a divided ciphertext generator configured to reflect the encrypted block cipher in an operation process of the specific block cipher algorithm and generate a plurality of divided ciphertexts by block cipher encryption of the plurality of divided plaintexts controller.
KR1020170100321A 2017-08-08 2017-08-08 Method for controlling white-box cipher mode of operations which is computer-executable and apparatus of the same Active KR102019182B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170100321A KR102019182B1 (en) 2017-08-08 2017-08-08 Method for controlling white-box cipher mode of operations which is computer-executable and apparatus of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170100321A KR102019182B1 (en) 2017-08-08 2017-08-08 Method for controlling white-box cipher mode of operations which is computer-executable and apparatus of the same

Publications (2)

Publication Number Publication Date
KR20190016285A KR20190016285A (en) 2019-02-18
KR102019182B1 true KR102019182B1 (en) 2019-09-06

Family

ID=65561411

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170100321A Active KR102019182B1 (en) 2017-08-08 2017-08-08 Method for controlling white-box cipher mode of operations which is computer-executable and apparatus of the same

Country Status (1)

Country Link
KR (1) KR102019182B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115987483B (en) * 2022-12-19 2024-01-30 豪符密码检测技术(成都)有限责任公司 Method for detecting white box password

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101612518B1 (en) * 2009-11-26 2016-04-15 삼성전자주식회사 Endecryptor enabling parallel processing and en/decryption method thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110042419A (en) 2009-10-19 2011-04-27 세종대학교산학협력단 Block cipher operation method applicable to multimedia environment
KR101623503B1 (en) 2015-02-04 2016-05-23 국민대학교산학협력단 Apparatus and method for white-box cryptography implementation of LEA block cipher
KR20170019679A (en) * 2015-08-12 2017-02-22 장동훈 Efficient white-box based encryption-decryption method and tag generation and verification method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101612518B1 (en) * 2009-11-26 2016-04-15 삼성전자주식회사 Endecryptor enabling parallel processing and en/decryption method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
화이트박스 암호 및 응용 기술 동향 분석(2010.10월)

Also Published As

Publication number Publication date
KR20190016285A (en) 2019-02-18

Similar Documents

Publication Publication Date Title
US8259934B2 (en) Methods and devices for a chained encryption mode
US9189425B2 (en) Protecting look up tables by mixing code and operations
US8121294B2 (en) System and method for a derivation function for key per page
US9515818B2 (en) Multi-block cryptographic operation
US8966285B2 (en) Securing implementation of a cryptographic process having fixed or dynamic keys
EP2922234A1 (en) Protecting a white-box implementation against attacks
US20120170739A1 (en) Method of diversification of a round function of an encryption algorithm
KR101815175B1 (en) Apparatus and method for data encryption, apparatus and method for data decryption
KR102033351B1 (en) Computer-executable lightweight white-box cryptographic method and apparatus thereof
EP3169017B1 (en) Split-and-merge approach to protect against dfa attacks
US8718280B2 (en) Securing keys of a cipher using properties of the cipher process
US8675866B2 (en) Multiplicative splits to protect cipher keys
US9485226B2 (en) Method for including an implicit integrity or authenticity check into a white-box implementation
US8699702B2 (en) Securing cryptographic process keys using internal structures
US9363244B2 (en) Realizing authorization via incorrect functional behavior of a white-box implementation
KR20170097509A (en) Operation method based on white-box cryptography and security apparatus for performing the method
Yap et al. On the effective subkey space of some image encryption algorithms using external key
CN107273724A (en) Input and output watermarking for whitepack embodiment
KR101933649B1 (en) Apparatus and method for public key cryptography using white-box cryptographic alrgorithm
Preneel Modes of operation of a block cipher
KR20170050026A (en) Apparatus and method for encryption
KR102019182B1 (en) Method for controlling white-box cipher mode of operations which is computer-executable and apparatus of the same
EP2940677A1 (en) Method for including an implicit integrity or authenticity check into a white-box implementation
KR101971001B1 (en) A method of generating random number based on block cipher with whitebox encryption and apparatus thereof
EP2940919B1 (en) Realizing authorization via incorrect functional behavior of a white-box implementation

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20170808

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20190208

Patent event code: PE09021S01D

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20190827

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20190902

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20190903

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20220623

Start annual number: 4

End annual number: 4