KR20230018688A - White-box encryption apparatus of lightweight block cipher pipo - Google Patents
White-box encryption apparatus of lightweight block cipher pipo Download PDFInfo
- Publication number
- KR20230018688A KR20230018688A KR1020210100524A KR20210100524A KR20230018688A KR 20230018688 A KR20230018688 A KR 20230018688A KR 1020210100524 A KR1020210100524 A KR 1020210100524A KR 20210100524 A KR20210100524 A KR 20210100524A KR 20230018688 A KR20230018688 A KR 20230018688A
- 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.)
- Granted
Links
- 230000006870 function Effects 0.000 claims abstract description 117
- 101800000089 Movement protein P3N-PIPO Proteins 0.000 claims abstract description 101
- 230000000295 complement effect Effects 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 27
- 238000004364 calculation method Methods 0.000 claims abstract description 21
- 241001074639 Eucalyptus albens Species 0.000 claims description 14
- 238000012886 linear function Methods 0.000 claims description 9
- 238000006467 substitution reaction Methods 0.000 claims description 2
- 230000000873 masking effect Effects 0.000 abstract description 6
- 238000004422 calculation algorithm Methods 0.000 description 44
- 238000010586 diagram Methods 0.000 description 38
- 238000005516 engineering process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 244000240602 cacao Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation 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의 화이트박스 암호 장치에 관한 것이다.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 emerged, 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 subject matter 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
본 발명의 일실시예에 따른 경량 블록암호 PIPO의 화이트박스 암호 장치(100)의 각 구성을 상세히 설명하기 전에, 경량 블록암호 PIPO를 화이트박스화 한 WBPIPO의 설명을 위해 다음 표 1과 같이 사용할 기호를 정의한다.Before each configuration of the white
연산 테이블 생성부(110)는, 4개의 연산 테이블을 생성할 수 있다. PIPO 알고리즘은 and, xor, or, 보수 연산을 이용하여 S-Layer 또는 inv S-Layer를 진행한다. 이를 화이트박스화 하기 위해서는 기본 연산들을 비선형 연산을 이용하여 테이블화 해야 한다.The arithmetic
여기서, 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
여기서, 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
결과적으로, AND 연산 테이블(WBAND)은 다음 수학식 2로 표현될 수 있다. 이때, fa ≠ fb 이다.As a result, the AND operation table WBAND can be expressed as
AND 연산 테이블(WBAND)을 생성하는 알고리즘은 다음 표 2의 알고리즘 1과 같다.The algorithm for generating the AND operation table (WBAND) is the same as
이후 설명을 위해 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.
도 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
여기서, 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
결과적으로, 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 .
OR 연산 테이블(WBOR)을 생성하는 알고리즘은 다음 표 3의 알고리즘 2와 같다.The algorithm for generating the OR operation table (WBOR) is shown in
이후 설명을 위해 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.
도 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
여기서, 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.
결과적으로, 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 .
XOR 연산 테이블(WBXOR)을 생성하는 알고리즘은 다음 표 4의 알고리즘 3과 같다.The algorithm for generating the XOR operation table (WBXOR) is shown in Algorithm 3 in Table 4 below.
이후 설명을 위해 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.
도 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
보수 연산 테이블(wb_comp)을 생성하는 알고리즘은 다음 표 5의 알고리즘 4와 같다.The algorithm for generating the complement calculation table (wb_comp) is shown in
외부 인코딩 처리부(120)는, 암호화 또는 복호화의 전과 후에 입력 또는 출력을 인코딩 함수에 입력해 인코딩할 수 있다. 즉, 외부 인코딩은 WBPIPO 암호화 또는 복호화의 전·후에 적용되는 과정으로 다음 수학식 10과 같이 정의될 수 있다.The external
여기서, 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
이하에서는, 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, 과정을 진행하는 64비트 입·출력 함수이다. WB S-Layer 함수의 진행 과정은 다음 표 6의 알고리즘 5와 같다.That is, the WB S-Layer uses the WBAND, WBOR, WBXOR, and wb comp tables to 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.
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
도 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
도 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
다음으로, 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
도 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.
도 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.
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.
복호화 처리부(140)는, 입력을 WB inv_S-Layer 및 WB inv_R-Layer를 사용해 복호화할 수 있다.The
도 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
이하에서는, 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, 과정을 진행하는 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, 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.
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
도 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
도 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
도 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,k′r는 마지막 라운드 키의 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
결과적으로, 새로운 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 .
이후 설명을 위해 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.
도 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
도 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
다음으로, 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
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.
알고리즘 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.
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.
한 라운드에 대해서, WB S-Layer에서 사용하는 연산 테이블의 크기는 각각 다음과 같다.For one round, the sizes of calculation tables used in WB S-Layer are as follows.
WBAND : 12 × 28 × 4 = 12288 (-bit) = 1536 (-byte) WBAND: 12 × 2 8 × 4 = 12288 (-bits) = 1536 (-bytes)
WBOR : 10 × 28 × 4 = 10240 (-bit) = 1280 (-byte) WBOR: 10 × 2 8 × 4 = 10240 (-bit) = 1280 (-byte)
WBXOR : 44 × 28 × 4 = 45056 (-bit) = 5632 (-byte) WBXOR: 44 × 2 8 × 4 = 45056 (-bit) = 5632 (-byte)
wb comp : 2 × 24 × 4 = 128 (-bit) = 16 (-byte) wb comp: 2 × 2 4 × 4 = 128 (-bit) = 16 (-byte)
Total : 12288 + 10240 + 45056 + 128 = 67712 (-bit) = 8464 (-byte) 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.
14 × 28 × 4 = 14336 (-bit) = 1792 (-byte), if r = final round 14 × 28 × 4 = 14336 (-bit) = 1792 (-byte), if r = final round
14 × 28 × 4 + 2 × 24 × 4 = 14464 (-bit) = 1808 (-byte), if r = final round 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.
전술한 바와 같이, 본 발명에서 제안하고 있는 경량 블록암호 PIPO의 화이트박스 암호 장치(100)에 따르면, AND 연산, OR 연산, XOR 연산 및 보수 연산을 각각 테이블화 한 4개의 연산 테이블을 조합해 경량 블록 암호 PIPO의 화이트박스 암호 테이블을 생성하고 연산을 수행함으로써, 화이트박스 암호 테이블의 크기가 작아 경량화할 수 있고, 마스킹을 적용한 경량 블록 암호 PIPO에 화이트박스 구현 방식을 적용해 부채널 공격 기반의 화이트박스 공격에 안전한 화이트박스 암호를 구현할 수 있다.As described above, according to the white
한편, 본 발명은 다양한 통신 단말기로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터에서 판독 가능한 매체를 포함할 수 있다. 예를 들어, 컴퓨터에서 판독 가능한 매체는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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)
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.
상기 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.
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 lightweight block cipher PIPO, characterized in that it consists of a complement operation table obtained by applying a nonlinear function to the complement operation.
키의 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개의 연산 테이블을 이용해, 상기 경량 블록암호 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).
상기 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.
상기 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.
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 true KR20230018688A (en) | 2023-02-07 |
| KR102546567B1 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 (3)
| 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 |
| KR20210015403A (en) * | 2019-08-02 | 2021-02-10 | 국민대학교산학협력단 | White box cryptographic encoding device and method using anti-inversion function |
-
2021
- 2021-07-30 KR KR1020210100524A patent/KR102546567B1/en active Active
Patent Citations (3)
| 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 |
| KR20210015403A (en) * | 2019-08-02 | 2021-02-10 | 국민대학교산학협력단 | White box cryptographic encoding device and method using anti-inversion function |
| 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)
| 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 |
|---|---|
| KR102546567B1 (en) | 2023-06-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113940028B (en) | Method and device for realizing white box password | |
| CN105453481B (en) | Computing equipment including table networks | |
| EP2924677B1 (en) | Splitting s-boxes in a white-box implementation to resist attacks | |
| JP6035459B2 (en) | ENCRYPTION DEVICE, DECRYPTION DEVICE, AND PROGRAM | |
| CN110235409A (en) | Use the protected RSA signature of homomorphic cryptography or the method for decryption | |
| US7720225B2 (en) | Table splitting for cryptographic processes | |
| CN108270550B (en) | Safe and efficient white box implementation method and device based on SM4 algorithm | |
| US20180287779A1 (en) | White-box cryptography method and apparatus for preventing side channel analysis | |
| US8699702B2 (en) | Securing cryptographic process keys using internal structures | |
| US8619985B2 (en) | Table splitting for cryptographic processes | |
| 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 | |
| KR102319699B1 (en) | White box cryptographic encoding device and method using anti-inversion function | |
| KR102546567B1 (en) | White-box encryption apparatus of lightweight block cipher pipo | |
| CN116796345A (en) | Encryption and decryption methods, devices, equipment and storage media | |
| Verma et al. | Improvement in the performance and security of advanced encryption standard using AES algorithm and comparison with blowfish | |
| 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 | |
| Sangwan | Combining Huffman text compression with new double encryption algorithm | |
| 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 |