+

KR102546567B1 - White-box encryption apparatus of lightweight block cipher pipo - Google Patents

White-box encryption apparatus of lightweight block cipher pipo Download PDF

Info

Publication number
KR102546567B1
KR102546567B1 KR1020210100524A KR20210100524A KR102546567B1 KR 102546567 B1 KR102546567 B1 KR 102546567B1 KR 1020210100524 A KR1020210100524 A KR 1020210100524A KR 20210100524 A KR20210100524 A KR 20210100524A KR 102546567 B1 KR102546567 B1 KR 102546567B1
Authority
KR
South Korea
Prior art keywords
layer
pipo
inv
function
block cipher
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
KR1020210100524A
Other languages
Korean (ko)
Other versions
KR20230018688A (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 KR1020210100524A priority Critical patent/KR102546567B1/en
Publication of KR20230018688A publication Critical patent/KR20230018688A/en
Application granted granted Critical
Publication of KR102546567B1 publication Critical patent/KR102546567B1/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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • 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

본 발명은 경량 블록암호 PIPO의 화이트박스 암호 장치에 관한 것으로서, 보다 구체적으로는 화이트박스 암호 장치로서, S-box를 이용해 치환하는 함수인 S-Layer 및 비트 순환하는 함수인 R-Layer로 구성되는 경량 블록암호 PIPO를 화이트박스 암호로 구성하되, 상기 S-Layer 및 R-Layer를 각각 화이트박스화 한 함수인 WB S-Layer 및 WB R-Layer를 사용해 암호화를 처리하고, 상기 경량 블록암호 PIPO의 복호화에 적용되는 함수인 inv_S-Layer 및 inv_R-Layer를 각각 화이트박스화 한 함수인 WB inv_S-Layer 및 WB inv_R-Layer를 사용해 복호화 처리하여 화이트박스 암호를 구현하며, 상기 WB S-Layer, WB R-Layer, WB inv_S-Layer 및 WB inv_R-Layer는, 상기 WB S-Layer, WB R-Layer, WB inv_S-Layer 및 WB inv_R-Layer에 사용되는 내부 기본 연산인 AND 연산, OR 연산, XOR 연산 및 보수 연산을 각각 테이블화 한 4개의 연산 테이블을 조합해 연산을 수행하는 것을 그 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 경량 블록암호 PIPO의 화이트박스 암호 장치에 따르면, AND 연산, OR 연산, XOR 연산 및 보수 연산을 각각 테이블화 한 4개의 연산 테이블을 조합해 경량 블록 암호 PIPO의 화이트박스 암호 테이블을 생성하고 연산을 수행함으로써, 화이트박스 암호 테이블의 크기가 작아 경량화할 수 있고, 마스킹을 적용한 경량 블록 암호 PIPO에 화이트박스 구현 방식을 적용해 부채널 공격 기반의 화이트박스 공격에 안전한 화이트박스 암호를 구현할 수 있다.
The present invention relates to a white box encryption device for a lightweight block cipher, PIPO, and more specifically, as a white box encryption device, which consists of an S-Layer, a function that is substituted using an S-box, and an R-Layer, which is a function that rotates bits. The lightweight block cipher PIPO is configured as a white-box cipher, and encryption is processed using WB S-Layer and WB R-Layer, which are white-box functions of the S-Layer and R-Layer, respectively, and the light block cipher PIPO Inv_S-Layer and inv_R-Layer, which are functions applied to decryption, are decrypted using WB inv_S-Layer and WB inv_R-Layer, which are white-boxed functions, respectively, to implement white-box encryption. -Layer, WB inv_S-Layer and WB inv_R-Layer are internal basic operations used in the WB S-Layer, WB R-Layer, WB inv_S-Layer and WB inv_R-Layer, such as AND operation, OR operation, XOR operation, and Its structural feature is that it performs calculations by combining four calculation tables in which complement calculations are each tabulated.
According to the white-box encryption device of the lightweight block cipher PIPO proposed in the present invention, the white-box encryption table of the lightweight block cipher PIPO is combined with four operation tables in which AND operation, OR operation, XOR operation, and complement operation are each tabled. By generating and performing operations, the size of the white box encryption table can be small and light, and the white box implementation method is applied to the lightweight block cipher PIPO with masking to obtain a white box encryption that is safe from white box attacks based on side-channel attacks. can be implemented

Description

경량 블록암호 PIPO의 화이트박스 암호 장치{WHITE-BOX ENCRYPTION APPARATUS OF LIGHTWEIGHT BLOCK CIPHER PIPO}Light-weight block cipher PIPO's whitebox cipher {WHITE-BOX ENCRYPTION APPARATUS OF LIGHTWEIGHT BLOCK CIPHER PIPO}

본 발명은 화이트박스 암호 장치에 관한 것으로서, 보다 구체적으로는 경량 블록암호 PIPO의 화이트박스 암호 장치에 관한 것이다.The present invention relates to a white box encryption device, and more particularly, to a white box encryption device for a lightweight block cipher PIPO.

암호 공격 모델은 공격자에게 부여된 정보에 따라 블랙박스, 그레이박스, 화이트박스 모델로 분류될 수 있다. 블랙박스 모델은 입력값, 출력값 그리고 알고리즘의 구조 외에 정보를 알 수 없는 상태이고, 그레이박스 모델은 블랙박스 모델에서 추가로 전력정보, 전자파 등의 키에 대한 간접적인 정보를 알고 있는 상태이며, 화이트박스 모델은 메모리에 접근과 수정이 가능한 상태이다.Cryptographic attack models can be classified into black box, gray box, and white box models according to the information given to the attacker. The black box model is a state in which information other than the structure of the input value, output value, and algorithm is unknown, and the gray box model is a state in which indirect information about keys such as power information and electromagnetic waves are additionally known in the black box model. The box model is in a state in which memory can be accessed and modified.

화이트박스 암호는 화이트박스 공격자로부터 비밀키를 보호하기 위해서 키를 암호 알고리즘에 섞어 암호키가 드러나지 않게 설계된 암호이다. 즉, 화이트박스 암호는 알고리즘을 큰 참조 테이블로 만들고 그 안에 암호 키를 암호 알고리즘과 뒤섞인 상태로 숨겨둠으로써 내부의 동작을 분석하더라도 키를 쉽게 유추할 수 없다.White box cryptography is a cryptographic design in which a key is mixed with an encryption algorithm to protect the secret key from a white box attacker so that the encryption key is not revealed. In other words, white box cryptography makes the algorithm into a large reference table and hides the cryptographic key mixed with the cryptographic algorithm in it, so even if the internal operation is analyzed, the key cannot be easily inferred.

2002년 Chow 등은 화이트박스 암호 이론을 적용한 DES, AES을 제안했다. 이후 대수적 분석을 통해 공격하는 BGE 공격, 통계적 분석을 통해 공격하는 DCA 공격 등 많은 화이트박스 암호 공격기법이 등장하였다. 이러한 공격 기법들에 대응하기 위해 마스킹 기법을 적용한 화이트박스 암호 기법 등이 제안되었다.In 2002, Chow et al. proposed DES and AES applying the white box cryptography theory. Since then, many white box encryption attack techniques have appeared, such as the BGE attack, which attacks through algebraic analysis, and the DCA attack, which attacks through statistical analysis. In order to counteract these attack techniques, a white box encryption technique using a masking technique has been proposed.

화이트박스 암호 기술은 국외뿐만 아니라 많은 국내 기업에서 도입하고 있다. 네이버, 토스, 카카오 뱅크 등은 보안 솔루션을 공급하는 intertrust의 화이트박스 암호 솔루션 whiteCryption을 도입했다. 또한, 국내 보안 기업 아톤은 화이트박스 암호 기술을 적용한 mSafeBox를 케이뱅크 모바일 인증 솔루션에 적용하여 높은 수준의 보안을 제공하였다. 이 외에 국내 기업 스틸리언 또한 화이트박스 암호화 솔루션 AppSuit WBC을 제공하고 있다. 이처럼 해외뿐만 아니라 국내 보안 시장에서 높은 안전성을 제공하기 위해 화이트박스 암호 기술을 적용한 솔루션을 적용하고 있다.White box encryption technology is being introduced by many domestic companies as well as overseas. Naver, Toss, and Kakao Bank introduced whiteCryption, a white box encryption solution from intertrust, which provides security solutions. In addition, Aton, a domestic security company, provided a high level of security by applying mSafeBox, which applied white box encryption technology, to K-Bank's mobile authentication solution. In addition to this, a domestic company, Steelian, also provides a white box encryption solution, AppSuit WBC. In this way, to provide high security not only overseas but also in the domestic security market, a solution with white box encryption technology is applied.

관련된 선행기술로서, 등록특허 제10-1623503호(발명의 명칭: LEA 블록 암호의 화이트박스 암호 구현 장치 및 방법, 등록일자: 2016년 05월 17일) 등이 개시된 바 있다.As related prior art, Patent Registration No. 10-1623503 (Title of Invention: Apparatus and Method for Implementing White Box Encryption of LEA Block Encryption, Registration Date: May 17, 2016) has been disclosed.

한편, PIPO 암호 알고리즘은 2020년에 제안된 경량 암호로 Unbalanced bridge 구조를 이용하여 차분, 선형 공격에 안전한 S-box를 설계했다는 특징을 가지고 있다. PIPO 암호 알고리즘에서 사용한 S-box 구조는 테이블 참조 구현 외에 bitslice 구현이 가능하며 이 또한 병렬 처리가 가능하다. PIPO 알고리즘은, 입력 평문 길이 64 (-bit), 마스터 키 길이 : 128 또는 256 (-bit), 라운드 수 13 또는 17, 라운드 키 길이 64 (-bit)의 규격을 갖고 있다.On the other hand, the PIPO encryption algorithm is a lightweight encryption proposed in 2020 and has the feature of designing an S-box that is safe for differential and linear attacks using an unbalanced bridge structure. The S-box structure used in the PIPO encryption algorithm can implement bitslice in addition to table reference implementation, and parallel processing is also possible. The PIPO algorithm has specifications of input plaintext length 64 (-bit), master key length: 128 or 256 (-bit), number of rounds 13 or 17, and round key length 64 (-bit).

PIPO는 경량 블록 암호로 간단한 장점이 있으나, 아직까지 PIPO를 화이트박스로 구현하는 기술에 대해서는 개시된 바가 없는 실정이다.PIPO has a simple advantage as a lightweight block cipher, but no technology has been disclosed for implementing PIPO as a white box.

본 발명에서는, PIPO 암호 알고리즘에 대한 논문을 참고하였다(Hangi Kim, Yongjin Jeon, Giyoon Kim, Jongsung Kim, Bo Yeon Sim, Dong Guk Han, Hwajeong Seo, Seonggyeom Kim, Seokhie Hong, Jaechul Sung, and Deukjo Hong. Pipo: A lightweight block cipher with efficient higher-order masking software implementations. In Deukjo Hong, editor, 23rd International Conference, 2020, Proceedings, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), pages 99-122, Germany, 2021. Springer Science and Business Media Deutschland GmbH.).In the present invention, reference was made to papers on the PIPO encryption algorithm (Hangi Kim, Yongjin Jeon, Giyoon Kim, Jongsung Kim, Bo Yeon Sim, Dong Guk Han, Hwajeong Seo, Seonggyeom Kim, Seokhie Hong, Jaechul Sung, and Deukjo Hong. Pipo: A lightweight block cipher with efficient higher-order masking software implementations.In Deukjo Hong, editor, 23rd International Conference, 2020, Proceedings, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), pages 99-122, Germany, 2021. Springer Science and Business Media Deutschland GmbH.).

본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, AND 연산, OR 연산, XOR 연산 및 보수 연산을 각각 테이블화 한 4개의 연산 테이블을 조합해 경량 블록 암호 PIPO의 화이트박스 암호 테이블을 생성하고 연산을 수행함으로써, 화이트박스 암호 테이블의 크기가 작아 경량화할 수 있고, 마스킹을 적용한 경량 블록 암호 PIPO에 화이트박스 구현 방식을 적용해 부채널 공격 기반의 화이트박스 공격에 안전한 화이트박스 암호를 구현할 수 있는, 경량 블록암호 PIPO의 화이트박스 암호 장치를 제공하는 것을 그 목적으로 한다.The present invention is proposed to solve the above problems of the previously proposed methods, and combines four operation tables each of AND operation, OR operation, XOR operation, and complement operation into tables to obtain a white light block cipher PIPO. By creating a box encryption table and performing calculations, the size of the white box encryption table is small and lightweight, and the white box implementation method is applied to the light-weight block cipher PIPO to which masking is applied, making it safe for white box attacks based on side-channel attacks. An object of the present invention is to provide a white box encryption device for a lightweight block cipher PIPO that can implement a box encryption.

상기한 목적을 달성하기 위한 본 발명의 특징에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치는,The white box encryption device of the lightweight block cipher PIPO according to the features of the present invention for achieving the above object is,

화이트박스 암호 장치로서,As a white-box cryptographic device,

S-box를 이용해 치환하는 함수인 S-Layer 및 비트 순환하는 함수인 R-Layer로 구성되는 경량 블록암호 PIPO를 화이트박스 암호로 구성하되,The lightweight block cipher PIPO composed of S-Layer, which is a function for substitution using S-box, and R-Layer, which is a function for bit circulation, is configured as a white box cipher,

상기 S-Layer 및 R-Layer를 각각 화이트박스화 한 함수인 WB S-Layer 및 WB R-Layer를 사용해 암호화를 처리하고, 상기 경량 블록암호 PIPO의 복호화에 적용되는 함수인 inv_S-Layer 및 inv_R-Layer를 각각 화이트박스화 한 함수인 WB inv_S-Layer 및 WB inv_R-Layer를 사용해 복호화 처리하여 화이트박스 암호를 구현하며,Encryption is processed using WB S-Layer and WB R-Layer, which are whitebox functions of the S-Layer and R-Layer, respectively, and functions applied to decryption of the lightweight block cipher PIPO, inv_S-Layer and inv_R- Whitebox encryption is implemented by decryption using WB inv_S-Layer and WB inv_R-Layer, which are functions that whitebox each layer.

상기 WB S-Layer, WB R-Layer, WB inv_S-Layer 및 WB inv_R-Layer는,The WB S-Layer, WB R-Layer, WB inv_S-Layer and WB inv_R-Layer,

상기 WB S-Layer, WB R-Layer, WB inv_S-Layer 및 WB inv_R-Layer에 사용되는 내부 기본 연산인 AND 연산, OR 연산, XOR 연산 및 보수 연산을 각각 테이블화 한 4개의 연산 테이블을 조합해 연산을 수행하는 것을 그 구성상의 특징으로 한다.Combining four calculation tables each tabulating AND operation, OR operation, XOR operation, and complement operation, which are internal basic operations used in the WB S-Layer, WB R-Layer, WB inv_S-Layer, and WB inv_R-Layer, Performing calculations is a characteristic of its configuration.

바람직하게는,Preferably,

상기 4개의 연산 테이블을 생성하는 연산 테이블 생성부;an arithmetic table generating unit generating the four arithmetic tables;

암호화 또는 복호화의 전과 후에 입력 또는 출력을 인코딩 함수에 입력해 인코딩하는 외부 인코딩 처리부;an external encoding processing unit that encodes input or output before and after encryption or decryption by inputting them to an encoding function;

입력을 상기 WB S-Layer 및 WB R-Layer를 사용해 암호화하는 암호화 처리부; 및an encryption processing unit that encrypts an input using the WB S-Layer and the WB R-Layer; and

입력을 상기 WB inv_S-Layer 및 WB inv_R-Layer를 사용해 복호화하는 복호화 처리부를 포함할 수 있다.and a decoding processing unit that decodes an input using the WB inv_S-Layer and the WB inv_R-Layer.

바람직하게는, 상기 4개의 연산 테이블은,Preferably, the four calculation tables,

AND 연산을 라운드 키와 비선형 함수를 적용해 테이블화 한 AND 연산 테이블;AND operation table that is tabled by applying round key and non-linear function to AND operation;

OR 연산을 라운드 키와 비선형 함수를 적용해 테이블화 한 OR 연산 테이블;OR operation table that is tabulated by applying round key and non-linear function to OR operation;

XOR 연산을 라운드 키와 비선형 함수를 적용해 테이블화 한 XOR 연산 테이블; 및XOR operation table that is tabled by applying round key and non-linear function to XOR operation; and

보수 연산을 비선형 함수를 적용해 테이블화 한 보수 연산 테이블로 구성될 수 있다.It can be composed of a complement operation table in which a non-linear function is applied to complement operation and made into a table.

바람직하게는, 상기 WB S-Layer는,Preferably, the WB S-Layer,

키의 XOR 연산 및 상기 경량 블록암호 PIPO의 S-Layer 함수의 연산을 화이트박스화 할 수 있다.The XOR operation of the key and the operation of the S-Layer function of the lightweight block cipher PIPO can be whiteboxed.

더욱 바람직하게는, 상기 WB S-Layer는,More preferably, the WB S-Layer,

상기 4개의 연산 테이블을 이용해, 상기 경량 블록암호 PIPO의 S-Layer를 구성하는 3개의 S-box를 각각 화이트박스화 한 3개의 함수를 사용하는 64비트 입출력 함수일 수 있다.It may be a 64-bit input/output function using three functions obtained by whiteboxing three S-boxes constituting the S-Layer of the lightweight block cipher PIPO using the four operation tables.

더더욱 바람직하게는, 상기 WB S-Layer는,Even more preferably, the WB S-Layer,

상기 AND 연산 테이블, OR 연산 테이블 및 XOR 연산 테이블을 적용한 40비트 입출력 함수인 WB_S5 1 함수;a WB_S 5 1 function that is a 40-bit input/output function to which the AND operation table, the OR operation table, and the XOR operation table are applied;

상기 AND 연산 테이블, OR 연산 테이블, XOR 연산 테이블 및 보수 연산 테이블을 적용한 24비트 입출력 함수인 WB_S3 함수; 및a WB_S 3 function that is a 24-bit input/output function to which the AND operation table, OR operation table, XOR operation table, and complement operation table are applied; and

상기 AND 연산 테이블, OR 연산 테이블 및 XOR 연산 테이블을 적용한 40비트 입출력 함수인 WB_S5 2 함수를 사용할 수 있다.The WB_S 5 2 function, which is a 40-bit input/output function to which the AND operation table, the OR operation table, and the XOR operation table are applied, can be used.

바람직하게는, 상기 WB R-Layer는,Preferably, the WB R-Layer,

상기 4개의 연산 테이블을 이용해 상기 경량 블록암호 PIPO의 R-Layer를 테이블화 한 것으로, 비-최종 라운드의 R-Layer 함수를 테이블화 한 비-최종 WB R-Layer, 및 최종 라운드의 R-Layer 함수와 최종 라운드 키의 XOR 연산을 테이블화 한 최종 WB R-Layer로 구성될 수 있다.The R-Layer of the lightweight block cipher PIPO is tabulated using the four operation tables, the non-final WB R-Layer, and the R-Layer of the final round, which are tabulated with the R-Layer function of the non-final round. It can be composed of the final WB R-Layer that tabulates the XOR operation of the function and the final round key.

본 발명에서 제안하고 있는 경량 블록암호 PIPO의 화이트박스 암호 장치에 따르면, AND 연산, OR 연산, XOR 연산 및 보수 연산을 각각 테이블화 한 4개의 연산 테이블을 조합해 경량 블록 암호 PIPO의 화이트박스 암호 테이블을 생성하고 연산을 수행함으로써, 화이트박스 암호 테이블의 크기가 작아 경량화할 수 있고, 마스킹을 적용한 경량 블록 암호 PIPO에 화이트박스 구현 방식을 적용해 부채널 공격 기반의 화이트박스 공격에 안전한 화이트박스 암호를 구현할 수 있다.According to the white-box encryption device of the lightweight block cipher PIPO proposed in the present invention, the white-box encryption table of the lightweight block cipher PIPO is combined with four operation tables in which AND operation, OR operation, XOR operation, and complement operation are each tabled. By generating and performing operations, the size of the white box encryption table can be small and light, and the white box implementation method is applied to the lightweight block cipher PIPO with masking to obtain a white box encryption that is safe from white box attacks based on side-channel attacks. can be implemented

도 1은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 화이트박스화를 설명하기 위해 도시한 도면.
도 2는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 구성을 도시한 도면.
도 3은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 연산 테이블 생성부가 생성하는 AND 연산 테이블(WBAND)을 설명하기 위해 도시한 도면.
도 4는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 연산 테이블 생성부가 생성하는 OR 연산 테이블(WBOR)을 설명하기 위해 도시한 도면.
도 5는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 연산 테이블 생성부가 생성하는 XOR 연산 테이블(WBXOR)을 설명하기 위해 도시한 도면.
도 6은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 연산 테이블 생성부가 생성하는 보수 연산 테이블(wb_comp)을 설명하기 위해 도시한 도면.
도 7은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 암호화 처리부가 사용하는 WB_S5 1 함수를 설명하기 위해 도시한 도면.
도 8은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 암호화 처리부가 사용하는 WB_S3 함수를 설명하기 위해 도시한 도면.
도 9는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 암호화 처리부가 사용하는 WB_S5 2 함수를 설명하기 위해 도시한 도면.
도 10은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 암호화 처리부가 사용하는 비-최종 WB R-Layer를 설명하기 위해 도시한 도면.
도 11은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 암호화 처리부가 사용하는 최종 WB R-Layer를 설명하기 위해 도시한 도면.
도 12는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 복호화 처리부가 수행하는 복호화 과정을 설명하기 위해 도시한 도면.
도 13은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 복호화 처리부가 사용하는 wb_inv_S5 2 함수를 설명하기 위해 도시한 도면
도 14는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 복호화 처리부가 사용하는 wb_inv_S5 1 함수를 설명하기 위해 도시한 도면.
도 15는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 복호화 처리부가 사용하는 wb_inv_S3 함수를 설명하기 위해 도시한 도면.
도 16은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 복호화 처리부가 마지막 라운드에서 사용하는 연산 테이블(WB DEC XOR)을 설명하기 위해 도시한 도면.
도 17은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 복호화 처리부가 마지막 라운드에서 사용하는 wb_inv_S5 1 함수를 설명하기 위해 도시한 도면.
도 18은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 복호화 처리부가 마지막 라운드에서 사용하는 wb_inv_S3 함수를 설명하기 위해 도시한 도면.
도 19는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 복호화 처리부가 사용하는 WB inv R-Layer 테이블을 설명하기 위해 도시한 도면.
1 is a diagram illustrating white-boxing of a white-box encryption device of a lightweight block cipher PIPO according to an embodiment of the present invention.
2 is a diagram showing the configuration of a white box encryption apparatus for a lightweight block cipher PIPO according to an embodiment of the present invention.
3 is a diagram for explaining an AND operation table (WBAND) generated by an operation table generation unit of a white box encryption apparatus of a lightweight block cipher PIPO according to an embodiment of the present invention.
4 is a diagram for explaining an OR operation table (WBOR) generated by an operation table generation unit of a white box encryption device of a lightweight block cipher PIPO according to an embodiment of the present invention.
5 is a diagram for explaining an XOR operation table (WBXOR) generated by an operation table generating unit of a white box encryption apparatus of a lightweight block cipher PIPO according to an embodiment of the present invention.
6 is a diagram for explaining a complement calculation table (wb_comp) generated by an calculation table generation unit of a white box encryption device of a lightweight block cipher PIPO according to an embodiment of the present invention.
7 is a diagram for explaining the WB_S 5 1 function used by the encryption processing unit of the white box encryption apparatus of the lightweight block cipher PIPO according to an embodiment of the present invention.
8 is a diagram for explaining the WB_S 3 function used by the encryption processing unit of the white box encryption device of the lightweight block cipher PIPO according to an embodiment of the present invention.
9 is a diagram for explaining the WB_S 5 2 function used by the encryption processing unit of the white box encryption device of the lightweight block cipher PIPO according to an embodiment of the present invention.
10 is a diagram for explaining a non-final WB R-Layer used by an encryption processing unit of a white box encryption device of a lightweight block cipher PIPO according to an embodiment of the present invention.
11 is a diagram for explaining a final WB R-Layer used by an encryption processing unit of a white box encryption device of a lightweight block encryption PIPO according to an embodiment of the present invention.
12 is a diagram for explaining a decryption process performed by a decryption processing unit of a white box encryption device of a lightweight block cipher PIPO according to an embodiment of the present invention.
13 is a diagram for explaining the wb_inv_S 5 2 function used by the decryption processing unit of the white box encryption device of the lightweight block cipher PIPO according to an embodiment of the present invention.
14 is a diagram for explaining the wb_inv_S 5 1 function used by the decryption processing unit of the white box encryption device of the lightweight block cipher PIPO according to an embodiment of the present invention.
15 is a diagram for explaining the wb_inv_S 3 function used by the decryption processing unit of the white box encryption device of the lightweight block cipher PIPO according to an embodiment of the present invention.
16 is a diagram for explaining an arithmetic table (WB DEC XOR) used in the last round of a decryption processing unit of a white box encryption device of a lightweight block cipher PIPO according to an embodiment of the present invention.
17 is a diagram for explaining the wb_inv_S 5 1 function used in the last round of a decryption processing unit of a white box encryption device of a lightweight block cipher PIPO according to an embodiment of the present invention.
18 is a diagram for explaining the wb_inv_S 3 function used in the last round of the decryption processing unit of the white box encryption device of the lightweight block cipher PIPO according to an embodiment of the present invention.
19 is a diagram for explaining a WB inv R-Layer table used by a decryption processing unit of a white box encryption device of a lightweight block cipher PIPO according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.Hereinafter, preferred embodiments will be described in detail so that those skilled in the art can easily practice the present invention with reference to the accompanying drawings. However, in describing a preferred embodiment of the present invention in detail, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description will be omitted. In addition, the same reference numerals are used throughout the drawings for parts having similar functions and actions.

덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 ‘연결’ 되어 있다고 할 때, 이는 ‘직접적으로 연결’ 되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 ‘간접적으로 연결’ 되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 ‘포함’ 한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.In addition, throughout the specification, when a part is said to be 'connected' to another part, this is not only the case where it is 'directly connected', but also the case where it is 'indirectly connected' with another element in between. include In addition, 'including' a certain component means that other components may be further included, rather than excluding other components unless otherwise specified.

도 1은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치의 화이트박스화를 설명하기 위해 도시한 도면이다. 도 1에 도시된 바와 같이, 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치는, S-box를 이용해 치환하는 함수인 S-Layer 및 비트 순환하는 함수인 R-Layer로 구성되는 경량 블록암호 PIPO를 화이트박스 암호로 구성할 수 있다.1 is a diagram for explaining white-boxing of a white-box encryption apparatus of a lightweight block cipher PIPO according to an embodiment of the present invention. As shown in FIG. 1, the white box encryption apparatus of the lightweight block cipher PIPO according to an embodiment of the present invention consists of an S-Layer, a function for permutation using an S-box, and an R-Layer, a function for rotating bits. The lightweight block cipher PIPO can be constructed as a whitebox cipher.

보다 구체적으로, S-Layer 및 R-Layer를 각각 화이트박스화 한 함수인 WB S-Layer 및 WB R-Layer를 사용해 암호화를 처리하고, 경량 블록암호 PIPO의 복호화에 적용되는 함수인 inv_S-Layer 및 inv_R-Layer를 각각 화이트박스화 한 함수인 WB inv_S-Layer 및 WB inv_R-Layer를 사용해 복호화 처리하여 화이트박스 암호를 구현하며, WB S-Layer, WB R-Layer, WB inv_S-Layer 및 WB inv_R-Layer는, WB S-Layer, WB R-Layer, WB inv_S-Layer 및 WB inv_R-Layer에 사용되는 내부 기본 연산인 AND 연산, OR 연산, XOR 연산 및 보수 연산을 각각 테이블화 한 4개의 연산 테이블을 조합해 연산을 수행할 수 있다.More specifically, encryption is processed using WB S-Layer and WB R-Layer, which are whitebox functions of S-Layer and R-Layer, respectively, and inv_S-Layer, a function applied to decryption of lightweight block cipher PIPO, and Whitebox encryption is implemented by decryption using WB inv_S-Layer and WB inv_R-Layer, which are whitebox functions of inv_R-Layer, respectively, and WB S-Layer, WB R-Layer, WB inv_S-Layer and WB inv_R-Layer. Layer consists of 4 calculation tables each tabulating AND operation, OR operation, XOR operation, and complement operation, which are internal basic operations used in WB S-Layer, WB R-Layer, WB inv_S-Layer, and WB inv_R-Layer. Combinations can be performed.

여기서, PIPO 알고리즘의 규격은 다음과 같다: 입력 평문 길이 64 (-bit), 마스터 키 길이 128 또는 256 (-bit), 라운드 수 13 또는 17, 라운드 키 길이 64 (-bit). 또한, PIPO 알고리즘에서 사용하는 함수는 다음과 같다: S-Layer는 S-box를 이용하여 치환하는 함수, R-Layer는 비트 순환하는 함수.Here, the specifications of the PIPO algorithm are as follows: input plaintext length 64 (-bit), master key length 128 or 256 (-bit), number of rounds 13 or 17, round key length 64 (-bit). In addition, the functions used in the PIPO algorithm are as follows: S-Layer is a function that substitutes using an S-box, and R-Layer is a function that rotates bits.

PIPO 암호 알고리즘을 화이트박스화 하기 위해서, 기존 PIPO 알고리즘의 함수들을 addroundkey + S-Layer → WB S-Layer, R-Layer → WB R-Layer로 각각 변형하였다. 이때 키를 xor 하는 과정을 편의상 addroundkey라고 하였다. 또한, 위 함수에 사용되는 내부 기본 연산(xor, or, and, 보수 등)을 테이블화 하였다.In order to whitebox the PIPO encryption algorithm, the functions of the existing PIPO algorithm were modified into addroundkey + S-Layer → WB S-Layer and R-Layer → WB R-Layer, respectively. At this time, the process of xoring the key is called addroundkey for convenience. In addition, internal basic operations (xor, or, and, complement, etc.) used in the above function are tabled.

도 2는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 구성을 도시한 도면이다. 도 2에 도시된 바와 같이, 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)는, 연산 테이블 생성부(110), 외부 인코딩 처리부(120), 암호화 처리부(130) 및 복호화 처리부(140)를 포함하여 구성될 수 있다.2 is a diagram showing the configuration of a white box encryption apparatus 100 of a lightweight block cipher PIPO according to an embodiment of the present invention. As shown in FIG. 2, the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention includes an arithmetic table generator 110, an external encoding processor 120, and an encryption processor 130. And it may be configured to include a decoding processing unit 140.

본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 각 구성을 상세히 설명하기 전에, 경량 블록암호 PIPO를 화이트박스화 한 WBPIPO의 설명을 위해 다음 표 1과 같이 사용할 기호를 정의한다.Before each configuration of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention is described in detail, the symbols to be used as shown in Table 1 below for the description of WBPIPO in which the lightweight block cipher PIPO is white-boxed. define

Figure 112021088320110-pat00001
Figure 112021088320110-pat00001

연산 테이블 생성부(110)는, 4개의 연산 테이블을 생성할 수 있다. PIPO 알고리즘은 and, xor, or, 보수 연산을 이용하여 S-Layer 또는 inv S-Layer를 진행한다. 이를 화이트박스화 하기 위해서는 기본 연산들을 비선형 연산을 이용하여 테이블화 해야 한다.The arithmetic table generation unit 110 may generate 4 arithmetic tables. PIPO algorithm proceeds S-Layer or inv S-Layer using and, xor, or, complement operation. In order to whitebox this, basic operations should be tabled using nonlinear operations.

여기서, 4개의 연산 테이블은, AND 연산을 라운드 키와 비선형 함수를 적용해 테이블화 한 AND 연산 테이블(WBAND), OR 연산을 라운드 키와 비선형 함수를 적용해 테이블화 한 OR 연산 테이블(WBOR), XOR 연산을 라운드 키와 비선형 함수를 적용해 테이블화 한 XOR 연산 테이블(WBXOR) 및 보수 연산을 비선형 함수를 적용해 테이블화 한 보수 연산 테이블(wb_comp)로 구성될 수 있다.Here, the four operation tables are an AND operation table (WBAND) in which the AND operation is tabulated by applying a round key and a nonlinear function, an OR operation table (WBOR) in which an OR operation is tabulated by applying a round key and a nonlinear function, It can be composed of an XOR operation table (WBXOR), which is a table by applying a round key and a non-linear function, and a complement operation table (wb_comp), which is a table by applying a non-linear function to the complement operation.

도 3은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 연산 테이블 생성부(110)가 생성하는 AND 연산 테이블(WBAND)을 설명하기 위해 도시한 도면이다. 도 3에 도시된 바와 같이, 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 연산 테이블 생성부(110)가 생성하는 AND 연산 테이블(WBAND : {0, 1}8 → {0, 1}4)은 입력값 IN0과 IN1을 AND 연산하여 출력(OUT)하는 테이블일 수 있다.3 is a diagram for explaining an AND operation table (WBAND) generated by the operation table generation unit 110 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. As shown in FIG. 3, an AND operation table (WBAND: {0, 1} 8 → {0, 1} 4 ) may be a table that outputs (OUT) by ANDing input values IN 0 and IN 1 .

여기서, fa ∈ N4 는 입력 값에 적용된 인코딩을 디코딩해주는 역할, fb ∈ N4 는 입력 값에 적용된 인코딩을 디코딩해주는 역할, f′∈ N4 는 입력 값을 인코딩해주는 역할을 각각 수행하며, AND: {0, 1}8 → {0, 1}4 은 다음 수학식 1로 정의될 수 있다.Here, f a ∈ N 4 plays a role of decoding the encoding applied to the input value, f b ∈ N 4 plays a role of decoding the encoding applied to the input value, and f′∈ N 4 plays a role of encoding the input value, respectively. , AND: {0, 1} 8 → {0, 1} 4 can be defined as Equation 1 below.

Figure 112021088320110-pat00002
Figure 112021088320110-pat00002

결과적으로, AND 연산 테이블(WBAND)은 다음 수학식 2로 표현될 수 있다. 이때, fa ≠ fb 이다.As a result, the AND operation table WBAND can be expressed as Equation 2 below. At this time, f a ≠ f b .

Figure 112021088320110-pat00003
Figure 112021088320110-pat00003

AND 연산 테이블(WBAND)을 생성하는 알고리즘은 다음 표 2의 알고리즘 1과 같다.The algorithm for generating the AND operation table (WBAND) is the same as Algorithm 1 in Table 2 below.

Figure 112021088320110-pat00004
Figure 112021088320110-pat00004

이후 설명을 위해 Rk′r i,k, Rk′r j,k 값에 따라 WBAND를 다음 수학식 3과 같이 용어를 정의한다.For later description, the term WBAND is defined according to the values of Rk′ r i,k and Rk′ r j,k as shown in Equation 3 below.

Figure 112021088320110-pat00005
Figure 112021088320110-pat00005

도 4는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 연산 테이블 생성부(110)가 생성하는 OR 연산 테이블(WBOR)을 설명하기 위해 도시한 도면이다. 도 4에 도시된 바와 같이, 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 연산 테이블 생성부(110)가 생성하는 OR 연산 테이블(WBOR : {0, 1}8 → {0, 1}4)은 입력값 IN0과 IN1을 OR 연산하여 출력(OUT)하는 테이블일 수 있다.4 is a diagram for explaining an OR operation table (WBOR) generated by the operation table generation unit 110 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. As shown in FIG. 4, an OR operation table (WBOR: {0, 1} 8 → {0, 1} 4 ) may be a table that performs an OR operation on the input values IN 0 and IN 1 and outputs the output (OUT).

여기서, ga ∈ N4 는 입력 값에 적용된 인코딩을 디코딩해주는 역할, gb ∈ N4 는 입력 값에 적용된 인코딩을 디코딩해주는 역할, g′∈ N4 는 입력 값을 인코딩해주는 역할을 각각 수행하며, OR: {0, 1}8 → {0, 1}4 은 다음 수학식 4로 정의될 수 있다.Here, g a ∈ N 4 plays a role of decoding the encoding applied to the input value, g b ∈ N 4 plays a role of decoding the encoding applied to the input value, and g′∈ N 4 plays a role of encoding the input value, respectively. , OR: {0, 1} 8 → {0, 1} 4 can be defined as Equation 4 below.

Figure 112021088320110-pat00006
Figure 112021088320110-pat00006

결과적으로, OR 연산 테이블(WBOR)은 다음 수학식 5로 표현될 수 있다. 이때, ga ≠ gb 이다.As a result, the OR operation table (WBOR) can be expressed as Equation 5 below. At this time, g a ≠ g b .

Figure 112021088320110-pat00007
Figure 112021088320110-pat00007

OR 연산 테이블(WBOR)을 생성하는 알고리즘은 다음 표 3의 알고리즘 2와 같다.The algorithm for generating the OR operation table (WBOR) is shown in Algorithm 2 in Table 3 below.

Figure 112021088320110-pat00008
Figure 112021088320110-pat00008

이후 설명을 위해 Rk′r i,k, Rk′r j,k 값에 따라 WBOR를 다음 수학식 6과 같이 용어를 정의한다.For later description, the term WBOR is defined according to the values of Rk′ r i,k and Rk′ r j,k as shown in Equation 6 below.

Figure 112021088320110-pat00009
Figure 112021088320110-pat00009

도 5는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 연산 테이블 생성부(110)가 생성하는 XOR 연산 테이블(WBXOR)을 설명하기 위해 도시한 도면이다. 도 5에 도시된 바와 같이, 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 연산 테이블 생성부(110)가 생성하는 XOR 연산 테이블(WBXOR : {0, 1}8 → {0, 1}4)은 입력값 IN0과 IN1을 XOR 연산하여 출력(OUT)하는 테이블일 수 있다.5 is a diagram for explaining an XOR operation table (WBXOR) generated by the operation table generation unit 110 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. As shown in FIG. 5, the XOR operation table (WBXOR: {0, 1} 8 → {0, 1} 4 ) may be a table that performs an XOR operation on input values IN 0 and IN 1 and outputs (OUT).

여기서, ha ∈ N4 는 입력 값에 적용된 인코딩을 디코딩해주는 역할, hb ∈ N4 는 입력 값에 적용된 인코딩을 디코딩해주는 역할, h′∈ N4 는 입력 값을 인코딩해주는 역할을 각각 수행하며, XOR: {0, 1}8 → {0, 1}4 은 다음 수학식 7로 정의될 수 있다.Here, h a ∈ N 4 plays a role of decoding the encoding applied to the input value, h b ∈ N 4 plays a role of decoding the encoding applied to the input value, and h′∈ N 4 plays a role of encoding the input value, respectively. , XOR: {0, 1} 8 → {0, 1} 4 can be defined as Equation 7 below.

Figure 112021088320110-pat00010
Figure 112021088320110-pat00010

결과적으로, XOR 연산 테이블(WBXOR)은 다음 수학식 8로 표현될 수 있다. 이때, ha ≠ hb 이다.As a result, the XOR operation table (WBXOR) can be expressed as Equation 8 below. At this time, h a ≠ h b .

Figure 112021088320110-pat00011
Figure 112021088320110-pat00011

XOR 연산 테이블(WBXOR)을 생성하는 알고리즘은 다음 표 4의 알고리즘 3과 같다.The algorithm for generating the XOR operation table (WBXOR) is shown in Algorithm 3 in Table 4 below.

Figure 112021088320110-pat00012
Figure 112021088320110-pat00012

이후 설명을 위해 Rk′r i,k, Rk′r j,k 값에 따라 WBXOR을 다음 수학식 9와 같이 용어를 정의한다.For later description, the term WBXOR is defined according to the values of Rk′ r i,k and Rk′ r j,k as shown in Equation 9 below.

Figure 112021088320110-pat00013
Figure 112021088320110-pat00013

도 6은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 연산 테이블 생성부(110)가 생성하는 보수 연산 테이블(wb_comp)을 설명하기 위해 도시한 도면이다. 도 6에 도시된 바와 같이, 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 연산 테이블 생성부(110)가 생성하는 보수 연산 테이블(wb_comp : {0, 1}8 → {0, 1}4)은 입력값(IN)을 보수 연산하여 출력(OUT)하는 테이블일 수 있다. 여기서, e ∈ N4 는 입력 값에 적용된 인코딩을 디코딩해주는 역할, e′∈ N4 는 입력 값을 인코딩해주는 역할을 각각 수행하며, ~ 는 보수를 의미한다. 결과적으로, 보수 연산 테이블(wb_comp)은 wb_comp(IN):= e′(~e(IN))으로 정의될 수 있다.6 is a diagram for explaining a complement calculation table (wb_comp) generated by the calculation table generator 110 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. As shown in FIG. 6, the complement calculation table (wb_comp: {0, 1} generated by the calculation table generator 110 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. 8 → {0, 1} 4 ) may be a table that performs a complement operation on an input value (IN) and outputs (OUT). Here, e ∈ N 4 plays a role of decoding the encoding applied to the input value, e′∈ N 4 plays a role of encoding the input value, and ~ means a complement. As a result, the complement calculation table wb_comp can be defined as wb_comp(IN):= e'(~e(IN)).

보수 연산 테이블(wb_comp)을 생성하는 알고리즘은 다음 표 5의 알고리즘 4와 같다.The algorithm for generating the complement calculation table (wb_comp) is shown in Algorithm 4 in Table 5 below.

Figure 112021088320110-pat00014
Figure 112021088320110-pat00014

외부 인코딩 처리부(120)는, 암호화 또는 복호화의 전과 후에 입력 또는 출력을 인코딩 함수에 입력해 인코딩할 수 있다. 즉, 외부 인코딩은 WBPIPO 암호화 또는 복호화의 전·후에 적용되는 과정으로 다음 수학식 10과 같이 정의될 수 있다.The external encoding processing unit 120 may encode input or output before and after encryption or decryption by inputting them to an encoding function. That is, external encoding is a process applied before and after WBPIPO encryption or decryption and may be defined as in Equation 10 below.

Figure 112021088320110-pat00015
Figure 112021088320110-pat00015

여기서, exTi ∈ N4 는 비선형 함수(이때, 0 ≤ i < 16), INPUT := IN15||IN14|| … ||IN0 (이때, INi ∈ {0, 1}4, 0 ≤ i < 16)이다.Here, exT i ∈ N 4 is a nonlinear function (where 0 ≤ i < 16), INPUT := IN 15 ||IN 14 || … ||IN 0 (where INi ∈ {0, 1} 4 , 0 ≤ i < 16).

암호화 처리부(130)는, 입력을 WB S-Layer 및 WB R-Layer를 사용해 암호화할 수 있다. 즉, 암호화 처리부(130)는, 도 1의 우측에 도시된 바와 같이, S-Layer 및 R-Layer를 각각 화이트박스화 한 함수인 WB S-Layer 및 WB R-Layer를 사용해 암호화를 처리할 수 있다. 여기서, WB S-Layer 및 WB R-Layer는, WB S-Layer 및 WB R-Layer에 사용되는 내부 기본 연산인 AND 연산, OR 연산, XOR 연산 및 보수 연산을 각각 테이블화 한 4개의 연산 테이블을 조합해 연산을 수행할 수 있다.The encryption processing unit 130 may encrypt the input using WB S-Layer and WB R-Layer. That is, as shown on the right side of FIG. 1, the encryption processing unit 130 may process encryption using WB S-Layer and WB R-Layer, which are whitebox functions of S-Layer and R-Layer, respectively. there is. Here, the WB S-Layer and the WB R-Layer are four operation tables in which AND operation, OR operation, XOR operation, and complement operation, which are internal basic operations used in WB S-Layer and WB R-Layer, are tabulated, respectively. Combinations can be performed.

이하에서는, WB S-Layer 및 WB R-Layer에 대해 각각 상세히 설명하도록 한다.Hereinafter, each of the WB S-Layer and the WB R-Layer will be described in detail.

먼저, WB S-Layer는, 키의 XOR 연산 및 경량 블록암호 PIPO의 S-Layer 함수의 연산을 화이트박스화 한 것으로, 4개의 연산 테이블을 이용해, 경량 블록암호 PIPO의 S-Layer를 구성하는 3개의 S-box를 각각 화이트박스화 한 3개의 함수를 사용하는 64비트 입출력 함수일 수 있다.First, the WB S-Layer is a white box of the XOR operation of the key and the operation of the S-Layer function of the lightweight block cipher PIPO. It may be a 64-bit input/output function that uses three functions each white-boxing the S-boxes.

즉, WB S-Layer는 WBAND, WBOR, WBXOR, wb comp 테이블을 이용하여 S-Layer,

Figure 112021088320110-pat00016
과정을 진행하는 64비트 입·출력 함수이다. WB S-Layer 함수의 진행 과정은 다음 표 6의 알고리즘 5와 같다.That is, the WB S-Layer uses the WBAND, WBOR, WBXOR, and wb comp tables to
Figure 112021088320110-pat00016
It is a 64-bit input/output function that performs a process. The progress of the WB S-Layer function is shown in Algorithm 5 in Table 6 below.

Figure 112021088320110-pat00017
Figure 112021088320110-pat00017

WB S-Layer는, AND 연산 테이블, OR 연산 테이블 및 XOR 연산 테이블을 적용한 40비트 입출력 함수인 WB_S5 1 함수; AND 연산 테이블, OR 연산 테이블, XOR 연산 테이블 및 보수 연산 테이블을 적용한 24비트 입출력 함수인 WB_S3 함수; 및 AND 연산 테이블, OR 연산 테이블 및 XOR 연산 테이블을 적용한 40비트 입출력 함수인 WB_S5 2 함수를 사용할 수 있다.The WB S-Layer includes a WB_S 5 1 function, which is a 40-bit input/output function to which an AND operation table, an OR operation table, and an XOR operation table are applied; WB_S 3 function, which is a 24-bit input/output function to which an AND operation table, an OR operation table, an XOR operation table, and a complement operation table are applied; and a WB_S 5 2 function, which is a 40-bit input/output function to which an AND operation table, an OR operation table, and an XOR operation table are applied.

도 7은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 암호화 처리부(130)가 사용하는 WB_S5 1 함수를 설명하기 위해 도시한 도면이다. WB_S5 1 함수는 PIPO 알고리즘의 S5 1에서 WBAND, WBOR, WBXOR 테이블을 적용한 40비트 입·출력 함수이다. WB_S5 1 함수의 진행 과정은 다음 표 7의 알고리즘 6과 같다.7 is a diagram for explaining the WB_S 5 1 function used by the encryption processing unit 130 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. The WB_S 5 1 function is a 40-bit I/O function that applies the WBAND, WBOR, and WBXOR tables in S 5 1 of the PIPO algorithm. The progress of the WB_S 5 1 function is shown in Algorithm 6 in Table 7 below.

Figure 112021088320110-pat00018
Figure 112021088320110-pat00018

도 8은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 암호화 처리부(130)가 사용하는 WB_S3 함수를 설명하기 위해 도시한 도면이다. WB_S3 함수는 PIPO 알고리즘의 S3에서 WBAND, WBOR, WBXOR, wb comp 테이블을 적용한 24비트 입·출력 함수이다. WB_S3 함수의 진행 과정은 다음 표 8의 알고리즘 7과 같다.8 is a diagram for explaining the WB_S 3 function used by the encryption processing unit 130 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. The WB_S 3 function is a 24-bit input/output function that applies the WBAND, WBOR, WBXOR, and wb comp tables in S 3 of the PIPO algorithm. The progress of the WB_S 3 function is shown in Algorithm 7 in Table 8 below.

Figure 112021088320110-pat00019
Figure 112021088320110-pat00019

도 9는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 암호화 처리부(130)가 사용하는 WB_S5 2 함수를 설명하기 위해 도시한 도면이다. WB_S5 2 함수는 PIPO 알고리즘의 S5 2에서 WBAND, WBOR, WBXOR 테이블을 적용한 40비트 입·출력 함수이다. WB_S5 2 함수의 진행 과정은 다음 표 9의 알고리즘 8과 같다.9 is a diagram for explaining the WB_S 5 2 function used by the encryption processing unit 130 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. The WB_S 5 2 function is a 40-bit I/O function that applies the WBAND, WBOR, and WBXOR tables in S 5 2 of the PIPO algorithm. The progress of the WB_S 5 2 function is shown in Algorithm 8 in Table 9 below.

Figure 112021088320110-pat00020
Figure 112021088320110-pat00020

다음으로, WB R-Layer는, 4개의 연산 테이블을 이용해 경량 블록암호 PIPO의 R-Layer를 테이블화 한 것으로, 비-최종 라운드의 R-Layer 함수를 테이블화 한 비-최종 WB R-Layer, 및 최종 라운드의 R-Layer 함수와 최종 라운드 키의 XOR 연산을 테이블화 한 최종 WB R-Layer로 구성될 수 있다.Next, the WB R-Layer is a table of the R-Layer of the lightweight block cipher PIPO using 4 operation tables, and the non-final WB R-Layer of the R-Layer function of the non-final round as a table; and a final WB R-Layer in which the R-Layer function of the final round and the XOR operation of the final round key are tabulated.

도 10은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 암호화 처리부(130)가 사용하는 비-최종 WB R-Layer를 설명하기 위해 도시한 도면이고, 도 11은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 암호화 처리부(130)가 사용하는 최종 WB R-Layer를 설명하기 위해 도시한 도면이다.10 is a diagram for explaining a non-final WB R-Layer used by the encryption processing unit 130 of the white box encryption apparatus 100 of a lightweight block cipher PIPO according to an embodiment of the present invention, and FIG. is a diagram for explaining the final WB R-Layer used by the encryption processing unit 130 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention.

도 10 및 도 11에서, Rm ∈ N4 는 입력 값에 적용된 인코딩을 디코딩해주는 역할, Rn ∈ N4 는 입력 값에 적용된 인코딩을 디코딩해주는 역할, Rq′∈ N4 는 입력 값을 인코딩해주는 역할, Rl′∈ N4 는 입력 값을 인코딩해주는 역할을 각각 수행하며, ROTt: {0, 1}8 → {0, 1}4 은 다음 수학식 11로 정의될 수 있다. 여기서, a ← b는 a를 왼쪽으로 b비트 이동, a → b는 a를 오른쪽으로 b비트 이동을 의미한다.10 and 11, R m ∈ N 4 decodes the encoding applied to the input value, R n ∈ N 4 decodes the encoding applied to the input value, and R q ′∈ N 4 encodes the input value R l ′∈ N 4 , each of which plays a role of encoding an input value, ROT t : {0, 1} 8 → {0, 1} 4 can be defined by Equation 11 below. Here, a ← b means shift a to the left by b bits, and a → b means shift a to the right by b bits.

Figure 112021088320110-pat00021
Figure 112021088320110-pat00021

도 1의 우측에 도시된 바와 같이, 마지막 라운드의 WB R-Layer는 R-Layer와 마지막 라운드 키를 xor하는 연산이므로, 도 11에 도시된 바와 같이 마지막 라운드 R-Layer 테이블을 생성할 때 마지막 라운드 키를 입력하여, 최종 WB R-Layer를 생성할 수 있다. 이때, 로테이션을 하지 않은 값에도 마지막 라운드 키를 xor 해주어야 하므로 다음 표 10의 알고리즘 9로 생성한 테이블을 사용할 수 있다.As shown on the right side of FIG. 1, since the WB R-Layer of the last round is an operation of xoring the R-Layer and the last round key, as shown in FIG. 11, when creating the last round R-Layer table, the last round By entering the key, the final WB R-Layer can be created. At this time, since the last round key must be xored even for non-rotated values, the table generated by Algorithm 9 in Table 10 can be used.

Figure 112021088320110-pat00022
Figure 112021088320110-pat00022

R-Layer 테이블의 생성 과정은 다음 표 11의 알고리즘 10과 같고, WB R-Layer 함수의 진행 과정은 다음 표 12의 알고리즘 11과 같다.The process of generating the R-Layer table is the same as Algorithm 10 in Table 11, and the process of the WB R-Layer function is the same as Algorithm 11 in Table 12.

Figure 112021088320110-pat00023
Figure 112021088320110-pat00023

Figure 112021088320110-pat00024
Figure 112021088320110-pat00024

복호화 처리부(140)는, 입력을 WB inv_S-Layer 및 WB inv_R-Layer를 사용해 복호화할 수 있다.The decoding processing unit 140 may decode the input using the WB inv_S-Layer and the WB inv_R-Layer.

도 12는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 복호화 처리부(140)가 수행하는 복호화 과정을 설명하기 위해 도시한 도면이다. 도 12에 도시된 바와 같이, 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 복호화 처리부(140)는, 경량 블록암호 PIPO의 복호화에 적용되는 함수인 inv_S-Layer 및 inv_R-Layer를 각각 화이트박스화 한 함수인 WB inv_S-Layer 및 WB inv_R-Layer를 사용해 복호화 처리할 수 있다. 여기서, WB inv_S-Layer 및 WB inv_R-Layer는, WB inv_S-Layer 및 WB inv_R-Layer에 사용되는 내부 기본 연산인 AND 연산, OR 연산, XOR 연산 및 보수 연산을 각각 테이블화 한 4개의 연산 테이블을 조합해 연산을 수행할 수 있다.12 is a diagram for explaining a decryption process performed by the decryption processing unit 140 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. As shown in FIG. 12, the decryption processing unit 140 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention is a function applied to decryption of the lightweight block cipher PIPO, inv_S-Layer Decryption can be performed using WB inv_S-Layer and WB inv_R-Layer, which are functions obtained by whiteboxing and inv_R-Layer, respectively. Here, the WB inv_S-Layer and the WB inv_R-Layer are four operation tables in which AND operation, OR operation, XOR operation, and complement operation, which are internal basic operations used in WB inv_S-Layer and WB inv_R-Layer, are tabulated, respectively. Combinations can be performed.

이하에서는, WB inv_S-Layer 및 WB inv_R-Layer에 대해 각각 상세히 설명하도록 한다.Hereinafter, each of the WB inv_S-Layer and the WB inv_R-Layer will be described in detail.

먼저, WB inv_S-Layer는 WBAND, WBOR, WBXOR, wb comp 테이블을 이용하여 inverse S-Layer,

Figure 112021088320110-pat00025
과정을 진행하는 64비트 입·출력 함수이다. WB inv_S-Layer 함수의 진행 과정은 다음 표 13의 알고리즘 12와 같다.First, the WB inv_S-Layer uses the WBAND, WBOR, WBXOR, and wb comp tables to inverse S-Layer,
Figure 112021088320110-pat00025
It is a 64-bit input/output function that performs a process. The progress of the WB inv_S-Layer function is shown in Algorithm 12 in Table 13 below.

Figure 112021088320110-pat00026
Figure 112021088320110-pat00026

WB inv_S-Layer는, AND 연산 테이블, OR 연산 테이블 및 XOR 연산 테이블을 적용한 40비트 입출력 함수인 wb_inv_S5 2 함수; AND 연산 테이블, OR 연산 테이블 및 XOR 연산 테이블을 적용한 40비트 입출력 함수인 wb_inv_S5 1 함수; 및 AND 연산 테이블, OR 연산 테이블, XOR 연산 테이블 및 보수 연산 테이블을 적용한 24비트 입출력 함수인 wb_inv_S3 함수를 사용할 수 있다.The WB inv_S-Layer includes a wb_inv_S 5 2 function, which is a 40-bit input/output function to which an AND operation table, an OR operation table, and an XOR operation table are applied; wb_inv_S 5 1 function, which is a 40-bit input/output function to which AND operation table, OR operation table, and XOR operation table are applied; and a wb_inv_S 3 function, which is a 24-bit input/output function to which an AND operation table, an OR operation table, an XOR operation table, and a complement operation table are applied.

도 13은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 복호화 처리부(140)가 사용하는 wb_inv_S5 2 함수를 설명하기 위해 도시한 도면이다. wb_inv_S5 2 함수는 PIPO 알고리즘의 invS5 2 에서 WBAND, WBOR, WBXOR 테이블을 적용한 40비트 입·출력 함수이다. wb_inv_S5 2 함수의 진행 과정은 다음 표 14의 알고리즘 13과 같다.13 is a diagram for explaining the wb_inv_S 5 2 function used by the decryption processing unit 140 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. The wb_inv_S 5 2 function is a 40-bit input/output function that applies the WBAND, WBOR, and WBXOR tables to the invS 5 2 of the PIPO algorithm. The progress of the wb_inv_S 5 2 function is shown in Algorithm 13 in Table 14 below.

Figure 112021088320110-pat00027
Figure 112021088320110-pat00027

도 14는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 복호화 처리부(140)가 사용하는 wb_inv_S5 1 함수를 설명하기 위해 도시한 도면이다. wb_inv_S5 1 함수는 PIPO 알고리즘의 invS5 1 에서 WBAND, WBOR, WBXOR 테이블을 적용한 40비트 입·출력 함수이다. wb_inv_S5 1 함수의 진행 과정은 다음 표 15의 알고리즘 14와 같다.14 is a diagram for explaining the wb_inv_S 5 1 function used by the decryption processing unit 140 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. The wb_inv_S 5 1 function is a 40-bit I/O function that applies the WBAND, WBOR, and WBXOR tables to the invS 5 1 of the PIPO algorithm. The progress of the wb_inv_S 5 1 function is shown in Algorithm 14 in Table 15 below.

Figure 112021088320110-pat00028
Figure 112021088320110-pat00028

도 15는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 복호화 처리부(140)가 사용하는 wb_inv_S3 함수를 설명하기 위해 도시한 도면이다. wb_inv_S3 함수는 PIPO 알고리즘의 invS3 에서 WBAND, WBOR, WBXOR, wb_comp 테이블을 적용한 24비트 입·출력 함수이다. wb_inv_S3 함수의 진행 과정은 다음 표 16의 알고리즘 15과 같다.15 is a diagram for explaining the wb_inv_S 3 function used by the decryption processing unit 140 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. The wb_inv_S 3 function is a 24-bit input/output function that applies the WBAND, WBOR, WBXOR, and wb_comp tables in invS 3 of the PIPO algorithm. The progress of the wb_inv_S 3 function is shown in Algorithm 15 in Table 16 below.

Figure 112021088320110-pat00029
Figure 112021088320110-pat00029

도 12에 도시된 바와 같이, 마지막 라운드의 WB inv S-Layer는 wb_inv_S5 2, wb_inv_S5 1, wb_inv_S3에 키 정보를 삽입해야 하므로 새로운 XOR 연산 테이블(이하, WB_DEC_XOR 이라 한다.)을 사용할 수 있다.As shown in FIG. 12, since the WB inv S-Layer of the last round needs to insert key information into wb_inv_S 5 2 , wb_inv_S 5 1 , and wb_inv_S 3 , a new XOR operation table (hereinafter referred to as WB_DEC_XOR) can be used. .

도 16은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 복호화 처리부(140)가 마지막 라운드에서 사용하는 연산 테이블(WB DEC XOR)을 설명하기 위해 도시한 도면이다. 여기서, d0 ∈ N4 는 입력 값에 적용된 인코딩을 디코딩해주는 역할, d1 ∈ N4 는 입력 값에 적용된 인코딩을 디코딩해주는 역할, BRK0′는 IN0 을 생성하는데 사용한 라운드 키(이때 IN0 을 생성하는데 라운드 키를 사용하지 않았다면, BRK0′ = NULL 이다.), BRK1′는 IN1 을 생성하는데 사용한 라운드 키(이때 IN1 을 생성하는데 라운드 키를 사용하지 않았다면, BRK1′ = NULL 이다.), d′∈ N4 는 입력 값을 인코딩해주는 역할, RKi,kr는 마지막 라운드 키의 4비트 값이다. XOR: {0, 1}8 → {0, 1}4 은 다음 수학식 12로 정의될 수 있다.16 is a diagram for explaining an arithmetic table (WB DEC XOR) used in the last round by the decryption processing unit 140 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention. . Here, d 0 ∈ N 4 serves to decode the encoding applied to the input value, d 1 ∈ N 4 serves to decode the encoding applied to the input value, and BRK 0 ′ is the round key used to generate IN 0 (in this case, IN 0 If the round key was not used to create IN 1, BRK 0 ′ = NULL), BRK 1 ′ is the round key used to create IN 1 (if no round key was used to create IN 1 at this time, BRK 1 ′ = NULL) ), d′∈ N 4 is the role of encoding the input value, and RK i,kr is the 4-bit value of the last round key. XOR: {0, 1} 8 → {0, 1} 4 can be defined as Equation 12 below.

Figure 112021088320110-pat00030
Figure 112021088320110-pat00030

결과적으로, 새로운 XOR 연산 테이블(WB_DEC_XOR)은 다음 수학식 13으로 표현될 수 있다. 이때, d0 ≠ d1 이다.As a result, the new XOR operation table (WB_DEC_XOR) can be expressed as Equation 13 below. At this time, d 0 ≠ d 1 .

Figure 112021088320110-pat00031
Figure 112021088320110-pat00031

이후 설명을 위해 BRK0′, BRK1′ 값에 따라 WB_DEC_XOR를 다음 수학식 14와 같이 용어를 정의한다.For later description, the term WB_DEC_XOR is defined according to the values of BRK 0 'and BRK 1 ' as shown in Equation 14 below.

Figure 112021088320110-pat00032
Figure 112021088320110-pat00032

도 17은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 복호화 처리부(140)가 마지막 라운드에서 사용하는 wb_inv_S5 1 함수를 설명하기 위해 도시한 도면이고, r = final round일 때 wb_inv_S5 1 함수의 진행 과정은 다음 표 17의 알고리즘 16과 같다.17 is a diagram for explaining the wb_inv_S 5 1 function used in the last round by the decryption processing unit 140 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention, where r = During the final round, the progress of the wb_inv_S 5 1 function is shown in Algorithm 16 in Table 17 below.

Figure 112021088320110-pat00033
Figure 112021088320110-pat00033

도 18은 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 복호화 처리부(140)가 마지막 라운드에서 사용하는 wb_inv_S3 함수를 설명하기 위해 도시한 도면이고, r = final round일 때 wb_inv_S3 함수의 진행 과정은 다음 표 18의 알고리즘 17과 같다.18 is a diagram for explaining the wb_inv_S 3 function used in the last round by the decryption processing unit 140 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention, where r = final The progress of the wb_inv_S 3 function during round is as shown in Algorithm 17 in Table 18 below.

Figure 112021088320110-pat00034
Figure 112021088320110-pat00034

다음으로, WB inv_R-Layer는, 4개의 연산 테이블을 이용해 경량 블록암호 PIPO의 inverse R-Layer를 테이블화 한 것이다.Next, WB inv_R-Layer is a table of inverse R-Layer of lightweight block cipher PIPO using 4 calculation tables.

도 19는 본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 복호화 처리부(140)가 사용하는 WB inv R-Layer 테이블을 설명하기 위해 도시한 도면이다.19 is a diagram for explaining the WB inv R-Layer table used by the decryption processing unit 140 of the white box encryption apparatus 100 of the lightweight block cipher PIPO according to an embodiment of the present invention.

WB inv_R-Layer 테이블의 생성 과정은 다음 표 19의 알고리즘 18 및 표 20의 알고리즘 19와 같다.The process of generating the WB inv_R-Layer table is as shown in Algorithm 18 in Table 19 and Algorithm 19 in Table 20 below.

Figure 112021088320110-pat00035
Figure 112021088320110-pat00035

Figure 112021088320110-pat00036
Figure 112021088320110-pat00036

알고리즘 19를 통해서 생성된 테이블을 inv_R_TABLE 이라고 하자. 다음 표 21의 알고리즘 20은 WB inv_R_Layer 테이블의 생성 과정을 나타낸 것이다.Let's call the table created through Algorithm 19 inv_R_TABLE. Algorithm 20 of Table 21 below shows the process of generating the WB inv_R_Layer table.

Figure 112021088320110-pat00037
Figure 112021088320110-pat00037

WBPIPO 테이블 크기를 산출하기 위해 암호화 과정을 기준으로 하여 계산하였다. 한 라운드에 대해서, WB S-Layer에서 사용되는 테이블의 개수는 다음 표 22와 같다.To calculate the WBPIPO table size, it was calculated based on the encryption process. For one round, the number of tables used in the WB S-Layer is shown in Table 22 below.

Figure 112021088320110-pat00038
Figure 112021088320110-pat00038

한 라운드에 대해서, WB S-Layer에서 사용하는 연산 테이블의 크기는 각각 다음과 같다.For one round, the sizes of calculation tables used in WB S-Layer are as follows.

Figure 112021088320110-pat00039
WBAND : 12 × 28 × 4 = 12288 (-bit) = 1536 (-byte)
Figure 112021088320110-pat00039
WBAND: 12 × 2 8 × 4 = 12288 (-bits) = 1536 (-bytes)

Figure 112021088320110-pat00040
WBOR : 10 × 28 × 4 = 10240 (-bit) = 1280 (-byte)
Figure 112021088320110-pat00040
WBOR: 10 × 2 8 × 4 = 10240 (-bit) = 1280 (-byte)

Figure 112021088320110-pat00041
WBXOR : 44 × 28 × 4 = 45056 (-bit) = 5632 (-byte)
Figure 112021088320110-pat00041
WBXOR: 44 × 2 8 × 4 = 45056 (-bit) = 5632 (-byte)

Figure 112021088320110-pat00042
wb comp : 2 × 24 × 4 = 128 (-bit) = 16 (-byte)
Figure 112021088320110-pat00042
wb comp: 2 × 2 4 × 4 = 128 (-bit) = 16 (-byte)

Figure 112021088320110-pat00043
Total : 12288 + 10240 + 45056 + 128 = 67712 (-bit) = 8464 (-byte)
Figure 112021088320110-pat00043
Total: 12288 + 10240 + 45056 + 128 = 67712 (-bit) = 8464 (-byte)

WB R-Layer는 한 라운드에 14개의 로테이션 테이블을 사용한다. 따라서 WB R-Layer 테이블 크기는 다음과 같다.WB R-Layer uses 14 rotation tables per round. Therefore, the size of the WB R-Layer table is as follows.

Figure 112021088320110-pat00044
14 × 28 × 4 = 14336 (-bit) = 1792 (-byte), if r = final round
Figure 112021088320110-pat00044
14 × 28 × 4 = 14336 (-bit) = 1792 (-byte), if r = final round

Figure 112021088320110-pat00045
14 × 28 × 4 + 2 × 24 × 4 = 14464 (-bit) = 1808 (-byte), if r = final round
Figure 112021088320110-pat00045
14 × 28 × 4 + 2 × 24 × 4 = 14464 (-bit) = 1808 (-byte), if r = final round

WBPIPO 복호화에서 사용하는 WB inv S-Layer 테이블 크기는 WB S-Layer 테이블 크기와 동일하다. WB inv R-Layer 테이블 크기는 14 × 28 × 4 + 2 × 24 × 4 = 14464 (-bit) = 1808 (-byte) 가 된다.The size of the WB inv S-Layer table used in WBPIPO decryption is the same as the size of the WB S-Layer table. The size of the WB inv R-Layer table becomes 14 × 28 × 4 + 2 × 24 × 4 = 14464 (-bit) = 1808 (-byte).

결과적으로, 암·복호화 WBPIPO 테이블 크기는 다음과 같다. Chow의 화이트박스 AES와 비교하면, 테이블 크기가 크게 작아 경량화된 것을 확인할 수 있다.As a result, the size of the encryption/decryption WBPIPO table is as follows. Compared to Chow's white box AES, it can be seen that the table size is significantly smaller and lighter.

Figure 112021088320110-pat00046
Figure 112021088320110-pat00046

전술한 바와 같이, 본 발명에서 제안하고 있는 경량 블록암호 PIPO의 화이트박스 암호 장치(100)에 따르면, AND 연산, OR 연산, XOR 연산 및 보수 연산을 각각 테이블화 한 4개의 연산 테이블을 조합해 경량 블록 암호 PIPO의 화이트박스 암호 테이블을 생성하고 연산을 수행함으로써, 화이트박스 암호 테이블의 크기가 작아 경량화할 수 있고, 마스킹을 적용한 경량 블록 암호 PIPO에 화이트박스 구현 방식을 적용해 부채널 공격 기반의 화이트박스 공격에 안전한 화이트박스 암호를 구현할 수 있다.As described above, according to the white box encryption apparatus 100 of the lightweight block cipher PIPO proposed in the present invention, four arithmetic tables in which AND operation, OR operation, XOR operation, and complement operation are each tabled are combined to form lightweight block ciphers. By generating and performing calculations on the white box encryption table of the block cipher PIPO, the size of the white box cipher table is small and lightweight, and the white box implementation method is applied to the light-weight block cipher PIPO with masking to achieve side-channel attack-based white box encryption. You can implement white-box cryptography that is secure against box attacks.

한편, 본 발명은 다양한 통신 단말기로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터에서 판독 가능한 매체를 포함할 수 있다. 예를 들어, 컴퓨터에서 판독 가능한 매체는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD_ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.Meanwhile, the present invention may include a computer-readable medium including program instructions for performing operations implemented in various communication terminals. For example, computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD_ROMs and DVDs, and floptical disks. It may include hardware devices specially configured to store and execute program instructions, such as magneto-optical media and ROM, RAM, flash memory, and the like.

이와 같은 컴퓨터에서 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 이때, 컴퓨터에서 판독 가능한 매체에 기록되는 프로그램 명령은 본 발명을 구현하기 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예를 들어, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.Such computer-readable media may include program instructions, data files, data structures, etc. alone or in combination. At this time, program instructions recorded on a computer-readable medium may be specially designed and configured to implement the present invention, or may be known and usable to those skilled in computer software. For example, it may include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes generated by a compiler.

이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.The present invention described above can be variously modified or applied by those skilled in the art to which the present invention belongs, and the scope of the technical idea according to the present invention should be defined by the claims below.

100: 화이트 박스 암호 장치
110: 연산 테이블 생성부
120: 외부 인코딩 처리부
130: 암호화 처리부
140: 복호화 처리부
100: white box cryptographic device
110: arithmetic table generation unit
120: external encoding processing unit
130: encryption processing unit
140: decryption processing unit

Claims (7)

화이트박스 암호 장치(100)로서,
S-box를 이용해 치환하는 함수인 S-Layer 및 비트 순환하는 함수인 R-Layer로 구성되는 경량 블록암호 PIPO를 화이트박스 암호로 구성하되,
상기 S-Layer 및 R-Layer를 각각 화이트박스화 한 함수인 WB S-Layer 및 WB R-Layer를 사용해 암호화를 처리하고, 상기 경량 블록암호 PIPO의 복호화에 적용되는 함수인 inv_S-Layer 및 inv_R-Layer를 각각 화이트박스화 한 함수인 WB inv_S-Layer 및 WB inv_R-Layer를 사용해 복호화 처리하여 화이트박스 암호를 구현하며,
상기 WB S-Layer, WB R-Layer, WB inv_S-Layer 및 WB inv_R-Layer는,
상기 WB S-Layer, WB R-Layer, WB inv_S-Layer 및 WB inv_R-Layer에 사용되는 내부 기본 연산인 AND 연산, OR 연산, XOR 연산 및 보수 연산을 각각 테이블화 한 4개의 연산 테이블을 조합해 연산을 수행하는 것을 특징으로 하는, 경량 블록암호 PIPO의 화이트박스 암호 장치(100).
As a white box cryptographic device 100,
The lightweight block cipher PIPO composed of S-Layer, which is a function for substitution using S-box, and R-Layer, which is a function for bit circulation, is configured as a white box cipher,
Encryption is processed using WB S-Layer and WB R-Layer, which are whitebox functions of the S-Layer and R-Layer, respectively, and functions applied to decryption of the lightweight block cipher PIPO, inv_S-Layer and inv_R- Whitebox encryption is implemented by decryption using WB inv_S-Layer and WB inv_R-Layer, which are functions that whitebox each layer.
The WB S-Layer, WB R-Layer, WB inv_S-Layer and WB inv_R-Layer,
Combining four calculation tables each tabulating AND operation, OR operation, XOR operation, and complement operation, which are internal basic operations used in the WB S-Layer, WB R-Layer, WB inv_S-Layer, and WB inv_R-Layer, A white box encryption apparatus 100 of lightweight block cipher PIPO, characterized in that it performs an operation.
제1항에 있어서,
상기 4개의 연산 테이블을 생성하는 연산 테이블 생성부(110);
암호화 또는 복호화의 전과 후에 입력 또는 출력을 인코딩 함수에 입력해 인코딩하는 외부 인코딩 처리부(120);
입력을 상기 WB S-Layer 및 WB R-Layer를 사용해 암호화하는 암호화 처리부(130); 및
입력을 상기 WB inv_S-Layer 및 WB inv_R-Layer를 사용해 복호화하는 복호화 처리부(140)를 포함하는 것을 특징으로 하는, 경량 블록암호 PIPO의 화이트박스 암호 장치(100).
According to claim 1,
an arithmetic table generating unit 110 generating the four arithmetic tables;
an external encoding processing unit 120 that encodes input or output before and after encryption or decryption by inputting them to an encoding function;
an encryption processing unit 130 that encrypts an input using the WB S-Layer and the WB R-Layer; and
A white box encryption apparatus (100) of lightweight block cipher PIPO, characterized by comprising a decryption processing unit (140) for decrypting input using the WB inv_S-Layer and the WB inv_R-Layer.
제1항에 있어서, 상기 4개의 연산 테이블은,
AND 연산을 라운드 키와 비선형 함수를 적용해 테이블화 한 AND 연산 테이블;
OR 연산을 라운드 키와 비선형 함수를 적용해 테이블화 한 OR 연산 테이블;
XOR 연산을 라운드 키와 비선형 함수를 적용해 테이블화 한 XOR 연산 테이블; 및
보수 연산을 비선형 함수를 적용해 테이블화 한 보수 연산 테이블로 구성되는 것을 특징으로 하는, 경량 블록암호 PIPO의 화이트박스 암호 장치(100).
The method of claim 1, wherein the four calculation tables,
AND operation table that is tabled by applying round key and non-linear function to AND operation;
OR operation table that is tabulated by applying round key and non-linear function to OR operation;
XOR operation table that is tabled by applying round key and non-linear function to XOR operation; and
A white box encryption device (100) of a lightweight block cipher PIPO, characterized in that it consists of a complement operation table obtained by applying a nonlinear function to the complement operation.
제1항에 있어서, 상기 WB S-Layer는,
키의 XOR 연산 및 상기 경량 블록암호 PIPO의 S-Layer 함수의 연산을 화이트박스화 한 것을 특징으로 하는, 경량 블록암호 PIPO의 화이트박스 암호 장치(100).
The method of claim 1, wherein the WB S-Layer,
A white box encryption device (100) of a lightweight block cipher PIPO, characterized in that the XOR operation of the key and the operation of the S-Layer function of the lightweight block cipher PIPO are white-boxed.
제4항에 있어서, 상기 WB S-Layer는,
상기 4개의 연산 테이블을 이용해, 상기 경량 블록암호 PIPO의 S-Layer를 구성하는 3개의 S-box를 각각 화이트박스화 한 3개의 함수를 사용하는 64비트 입출력 함수인 것을 특징으로 하는, 경량 블록암호 PIPO의 화이트박스 암호 장치(100).
The method of claim 4, wherein the WB S-Layer,
A lightweight block cipher characterized in that it is a 64-bit input/output function using three functions obtained by whiteboxing the three S-boxes constituting the S-Layer of the lightweight block cipher PIPO using the four operation tables. PIPO's Whitebox Cryptographic Device (100).
제5항에 있어서, 상기 WB S-Layer는,
상기 AND 연산 테이블, OR 연산 테이블 및 XOR 연산 테이블을 적용한 40비트 입출력 함수인 WB_S5 1 함수;
상기 AND 연산 테이블, OR 연산 테이블, XOR 연산 테이블 및 보수 연산 테이블을 적용한 24비트 입출력 함수인 WB_S3 함수; 및
상기 AND 연산 테이블, OR 연산 테이블 및 XOR 연산 테이블을 적용한 40비트 입출력 함수인 WB_S5 2 함수를 사용하는 것을 특징으로 하는, 경량 블록암호 PIPO의 화이트박스 암호 장치(100).
The method of claim 5, wherein the WB S-Layer,
a WB_S 5 1 function that is a 40-bit input/output function to which the AND operation table, the OR operation table, and the XOR operation table are applied;
a WB_S 3 function that is a 24-bit input/output function to which the AND operation table, OR operation table, XOR operation table, and complement operation table are applied; and
A white box encryption device (100) of lightweight block cipher PIPO, characterized by using the WB_S 5 2 function, which is a 40-bit input/output function to which the AND operation table, OR operation table, and XOR operation table are applied.
제1항에 있어서, 상기 WB R-Layer는,
상기 4개의 연산 테이블을 이용해 상기 경량 블록암호 PIPO의 R-Layer를 테이블화 한 것으로, 비-최종 라운드의 R-Layer 함수를 테이블화 한 비-최종 WB R-Layer, 및 최종 라운드의 R-Layer 함수와 최종 라운드 키의 XOR 연산을 테이블화 한 최종 WB R-Layer로 구성되는 것을 특징으로 하는, 경량 블록암호 PIPO의 화이트박스 암호 장치(100).
The method of claim 1, wherein the WB R-Layer,
The R-Layer of the lightweight block cipher PIPO is tabulated using the four operation tables, the non-final WB R-Layer, and the R-Layer of the final round, which are tabulated with the R-Layer function of the non-final round. A white box encryption device (100) of lightweight block cipher PIPO, characterized in that it consists of a final WB R-Layer tabulating the XOR operation of the function and the final round key.
KR1020210100524A 2021-07-30 2021-07-30 White-box encryption apparatus of lightweight block cipher pipo Active KR102546567B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210100524A KR102546567B1 (en) 2021-07-30 2021-07-30 White-box encryption apparatus of lightweight block cipher pipo

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210100524A KR102546567B1 (en) 2021-07-30 2021-07-30 White-box encryption apparatus of lightweight block cipher pipo

Publications (2)

Publication Number Publication Date
KR20230018688A KR20230018688A (en) 2023-02-07
KR102546567B1 true KR102546567B1 (en) 2023-06-23

Family

ID=85221231

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210100524A Active KR102546567B1 (en) 2021-07-30 2021-07-30 White-box encryption apparatus of lightweight block cipher pipo

Country Status (1)

Country Link
KR (1) KR102546567B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015110899A1 (en) 2014-01-21 2015-07-30 Metaforic Limited Method of protecting secret data when used in a cryptographic algorithm
KR102169369B1 (en) 2019-10-31 2020-10-23 국민대학교산학협력단 Countermeasure method of first-order side-channel attack on lightweight block cipher and apparatus using the same

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102319699B1 (en) * 2019-08-02 2021-11-02 국민대학교산학협력단 White box cryptographic encoding device and method using anti-inversion function

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015110899A1 (en) 2014-01-21 2015-07-30 Metaforic Limited Method of protecting secret data when used in a cryptographic algorithm
KR102169369B1 (en) 2019-10-31 2020-10-23 국민대학교산학협력단 Countermeasure method of first-order side-channel attack on lightweight block cipher and apparatus using the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hangi Kim 외 10명. "PIPO: A lightweight block cipher with efficient higher-order masking software implementations", ICISC 2020 (2020.12.)

Also Published As

Publication number Publication date
KR20230018688A (en) 2023-02-07

Similar Documents

Publication Publication Date Title
CN113940028B (en) Method and device for realizing white box password
CN105453481B (en) Computing equipment including table networks
CN105049400B (en) S box is split in whitepack implementation to prevent from attacking
US9189425B2 (en) Protecting look up tables by mixing code and operations
US8644500B2 (en) Apparatus and method for block cipher process for insecure environments
CN110235409A (en) Use the protected RSA signature of homomorphic cryptography or the method for decryption
US8966285B2 (en) Securing implementation of a cryptographic process having fixed or dynamic keys
US7720225B2 (en) Table splitting for cryptographic processes
CN108270550B (en) Safe and efficient white box implementation method and device based on SM4 algorithm
US8699702B2 (en) Securing cryptographic process keys using internal structures
US20180287779A1 (en) White-box cryptography method and apparatus for preventing side channel analysis
US8619985B2 (en) Table splitting for cryptographic processes
JP7078631B2 (en) Cryptographic device, encryption method, decryption device, and decryption method
JP2017187724A (en) Encryption device, encryption method, decryption device, and decryption method
CN105184115A (en) Method For Including An Implicit Integrity Or Authenticity Check Into A White-box Implementation
Jain et al. Implementation of hybrid cryptography algorithm
CN109726565A (en) Whitepack is used in anti-leakage primitive
JPWO2015166701A1 (en) ENCRYPTION METHOD, PROGRAM, AND SYSTEM
KR102546567B1 (en) White-box encryption apparatus of lightweight block cipher pipo
CN116796345A (en) Encryption and decryption methods, devices, equipment and storage media
KR102803454B1 (en) Method and apparatus for decrypting cryptogram using auxiliary secret key
CN115603892A (en) Method for performing cryptographic operations, corresponding processing device and computer program product
KR20240059830A (en) Masked white-box encryption apparatus of lightweight block cipher pipo
KR20250040832A (en) Masked white-box encryption apparatus of lightweight block cipher lea
CN104683095A (en) A kind of DES encryption method and device

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20210730

PA0201 Request for examination
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: 20230609

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20230619

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20230620

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载