KR102405821B1 - Aria 블록 암호의 개선된 화이트 박스 암호 장치 - Google Patents

Aria 블록 암호의 개선된 화이트 박스 암호 장치 Download PDF

Info

Publication number
KR102405821B1
KR102405821B1 KR1020200146250A KR20200146250A KR102405821B1 KR 102405821 B1 KR102405821 B1 KR 102405821B1 KR 1020200146250 A KR1020200146250 A KR 1020200146250A KR 20200146250 A KR20200146250 A KR 20200146250A KR 102405821 B1 KR102405821 B1 KR 102405821B1
Authority
KR
South Korea
Prior art keywords
type
matrix
white box
aria
processing unit
Prior art date
Application number
KR1020200146250A
Other languages
English (en)
Other versions
KR20220060349A (ko
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 KR1020200146250A priority Critical patent/KR102405821B1/ko
Publication of KR20220060349A publication Critical patent/KR20220060349A/ko
Application granted granted Critical
Publication of KR102405821B1 publication Critical patent/KR102405821B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

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

Abstract

본 발명은 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에 관한 것으로서, 보다 구체적으로는 화이트 박스 암호 장치로서, ARIA 블록 암호에서 사용하는 연산을 테이블화한 테이블을 조합하여 연산을 수행해 화이트 박스 암호를 구현하되, 상기 ARIA 블록 암호를 32비트 단위로 화이트 박스 암호화하기 위해, 상기 ARIA 블록 암호의 라운드 함수를 키 확장(AddRoundKey), 치환계층(SubstLayer) 및 확산계층(DiffLayer)의 순서로 변경하고, 16바이트 단위인 상기 확산계층의 연산을 4바이트 단위로 표현 가능한 제1 행렬(M1), 제2 행렬(P), 제1 행렬(M1) 및 제3 행렬(M)로 분리하여, 상기 키 확장, 치환계층 및 상기 확산계층의 제3 행렬을 연산하는 Type 2 테이블, 상기 제1 행렬 및 제2 행렬을 연산하는 Type 5a 테이블, 상기 제1 행렬을 연산하는 Type 5b 테이블을 구성하는 것을 그 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에 따르면, ARIA 블록 암호에서 사용하는 연산을 테이블화한 테이블을 사용하되, 128비트 단위의 ARIA 블록 암호를 32비트 단위의 화이트 박스 암호로 구현하기 위해, ARIA 블록 암호의 확산계층의 연산을 4바이트 단위로 표현 가능한 제1 행렬, 제2 행렬, 제1 행렬 및 제3 행렬로 분리하여, 키 확장, 치환계층 및 확산계층의 제3 행렬을 연산하는 Type 2 테이블, 제1 행렬 및 제2 행렬을 연산하는 Type 5a 테이블, 제1 행렬을 연산하는 Type 5b 테이블을 구성함으로써, XOR 횟수와 테이블 크기를 줄여 더 효율적으로 ARIA 블록 암호를 화이트 박스 방식으로 구현할 수 있다.

Description

ARIA 블록 암호의 개선된 화이트 박스 암호 장치{IMPROVED WHITE-BOX ENCRYPTION APPARATUS OF ARIA BLOCK CIPHER}
본 발명은 화이트 박스 암호 장치에 관한 것으로서, 보다 구체적으로는 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에 관한 것이다.
화이트 박스 암호는 공격자가 암호 소프트웨어에 대해 완전한 접근을 할 수 있고 실행되는 환경에 대한 모든 조작이 가능하다고 할 때도, 안전하게 키를 숨기면서 암호기능을 제공하는 기술이다. 2002년 'Chow' 등이 화이트 박스 AES를 제안하여 최초로 화이트 박스 암호를 구현한 바 있다.
화이트 박스 암호화 기술은 크래커가 어떤 방법을 써서든지 결국에 암호 장치 내부를 들여다볼 수 있다는 가정에서 출발한다. 결국 크래커가 암호화 장치 내부를 볼 수 있다면, 암호화 키(Key)를 획득할 수 있으므로, 설계자는 더 많은 사항을 고려해야 한다.
암호화 장치를 화이트 박스로 가정하면 암호화 키(Key)를 손쉽게 장치 내에 저장할 수 없다. 따라서 일반적인 화이트 박스에서는 암호화 키가 그대로 존재하지 않고 복잡한 암호화 연산 알고리즘과 뒤섞여 존재한다. 따라서 암호화 키를 따로 얻을 수가 없다. 또한, 이 알고리즘은 되돌리기(invert)가 어려운 알고리즘이다. 따라서 결과값을 갖고 원본값이나 암호화 키를 추측하기 어렵다.
화이트 박스에서, 입력 정보인 암호키를 암호 알고리즘 내부에서 쉽게 유출할 수 없는 형태로 안전하게 숨길 수 있다면 화이트 박스 기반으로 구동하는 암호화 연산 알고리즘을 해커가 모니터링 하더라도 암호키를 유추하는 것은 어렵다.
이와 같이, 현재의 화이트 박스 암호는 암호키를 사용하지 않기 때문에, 암호키가 누출되지 않는 장점을 가진다.
관련된 선행기술로서, 등록특허 제10-1623503호(발명의 명칭: LEA 블록 암호의 화이트 박스 암호 구현 장치 및 방법, 등록일자: 2016년 05월 17일) 등이 개시된 바 있다.
한편, ARIA(Academy, Research Institute, Agency)는 학계, 연구소, 정부 기관이 협업하여 개발된 블록 암호이며 2004년 한국 표준(KS)으로 제정되었다. 그러나 아직까지 ARIA 블록 암호를 화이트 박스로 구현하는 기술에 대해서는 개시된 바가 없는 실정이다.
본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, ARIA 블록 암호에서 사용하는 연산을 테이블화한 테이블을 사용하되, 128비트 단위의 ARIA 블록 암호를 32비트 단위의 화이트 박스 암호로 구현하기 위해, ARIA 블록 암호의 확산계층의 연산을 4바이트 단위로 표현 가능한 제1 행렬, 제2 행렬, 제1 행렬 및 제3 행렬로 분리하여, 키 확장, 치환계층 및 확산계층의 제3 행렬을 연산하는 Type 2 테이블, 제1 행렬 및 제2 행렬을 연산하는 Type 5a 테이블, 제1 행렬을 연산하는 Type 5b 테이블을 구성함으로써, XOR 횟수와 테이블 크기를 줄여 더 효율적으로 ARIA 블록 암호를 화이트 박스 방식으로 구현할 수 있는, ARIA 블록 암호의 개선된 화이트 박스 암호 장치를 제공하는 것을 그 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치는,
화이트 박스 암호 장치로서,
ARIA 블록 암호에서 사용하는 연산을 테이블화한 테이블을 조합하여 연산을 수행해 화이트 박스 암호를 구현하되,
상기 ARIA 블록 암호를 32비트 단위로 화이트 박스 암호화하기 위해, 상기 ARIA 블록 암호의 라운드 함수를 키 확장(AddRoundKey), 치환계층(SubstLayer) 및 확산계층(DiffLayer)의 순서로 변경하고, 16바이트 단위인 상기 확산계층의 연산을 4바이트 단위로 표현 가능한 제1 행렬(M1), 제2 행렬(P), 제1 행렬(M1) 및 제3 행렬(M)로 분리하여,
상기 키 확장, 치환계층 및 상기 확산계층의 제3 행렬을 연산하는 Type 2 테이블, 상기 제1 행렬 및 제2 행렬을 연산하는 Type 5a 테이블, 상기 제1 행렬을 연산하는 Type 5b 테이블을 구성하는 것을 그 구성상의 특징으로 한다.
바람직하게는,
상기 Type 2 테이블의 입력 크기를 8비트, 출력 크기를 32비트, 상기 Type 5a 테이블 및 Type 5b 테이블의 입력 및 출력 크기를 8비트가 되도록 구성할 수 있다.
더욱 바람직하게는,
입력을 입력 인코딩 함수에 입력해 인코딩하는 입력 인코딩 처리부;
상기 입력 인코딩 처리부에서 인코딩된 입력을 Type 1a 테이블 및 XOR 연산을 위한 Type 4 테이블을 이용해 연산을 수행하는 제1 연산 처리부;
상기 제1 연산 처리부의 출력을 상기 Type 2 테이블, Type 3 테이블, Type 4 테이블, Type 5a 테이블 및 Type 5b 테이블을 이용해 연산을 수행하는 제2 연산 처리부;
상기 제2 연산 처리부의 출력을 Type 1b 테이블 및 상기 Type 4 테이블을 이용해 연산을 수행하는 제3 연산 처리부; 및
상기 연산 처리부의 출력을 출력 인코딩 함수에 입력해 인코딩하는 출력 인코딩 처리부를 포함할 수 있다.
더더욱 바람직하게는, 상기 제1 연산 처리부는,
상기 Type 1a 테이블 및 Type 1b 테이블의 입력 크기는 8비트, 출력 크기는 128비트이고,
상기 Type 4 테이블의 입력 크기는 8비트, 출력 크기는 4비트일 수 있다.
더더욱 바람직하게는, 상기 제2 연산 처리부는,
상기 제1 연산 처리부의 출력을 상기 Type 2 테이블, Type 4 테이블, Type 3 테이블, Type 4 테이블, Type 5a 테이블, Type 4 테이블, Type 5b 테이블, Type 4 테이블에 순차적으로 대입해 라운드 함수의 연산을 수행하되, 미리 정해진 수만큼 반복 연산을 수행할 수 있다.
더더욱 바람직하게는, 상기 제2 연산 처리부는,
상기 Type 2 테이블 및 Type 3 테이블 이후에 Type 4 테이블을 이용해 XOR 연산을 할 때, 8개의 Type 4 테이블을 사용하는 32비트 XOR을 총 3번 수행하여 처리할 수 있다.
더욱 바람직하게는,
상기 확산계층의 연산을 위한 16바이트 단위의 16×16 크기의 행렬(Q)을, 각각 4바이트 단위의 4×4 크기의 행렬로 표현 가능한 제1 행렬(M1), 제2 행렬(P), 제1 행렬(M1) 및 제3 행렬(M)로 분리할 수 있다.
더더욱 바람직하게는,
상상기 확산계층의 연산을 위한 행렬(Q)은, 다음 수학식과 같이 제1 행렬(M1), 제2 행렬(P), 제1 행렬(M1) 및 제3 행렬(M)로 분리될 수 있다.
[수학식]
Figure 112020117874239-pat00001
여기서,
Figure 112020117874239-pat00002
더더욱 바람직하게는,
상기 Type 1a 테이블 및 Type 1b 테이블의 입력 크기는 8비트, 출력 크기는 128비트이고,
상기 Type 4 테이블의 입력 크기는 8비트, 출력 크기는 4비트일 수 있다.
본 발명에서 제안하고 있는 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에 따르면, ARIA 블록 암호에서 사용하는 연산을 테이블화한 테이블을 사용하되, 128비트 단위의 ARIA 블록 암호를 32비트 단위의 화이트 박스 암호로 구현하기 위해, ARIA 블록 암호의 확산계층의 연산을 4바이트 단위로 표현 가능한 제1 행렬, 제2 행렬, 제1 행렬 및 제3 행렬로 분리하여, 키 확장, 치환계층 및 확산계층의 제3 행렬을 연산하는 Type 2 테이블, 제1 행렬 및 제2 행렬을 연산하는 Type 5a 테이블, 제1 행렬을 연산하는 Type 5b 테이블을 구성함으로써, XOR 횟수와 테이블 크기를 줄여 더 효율적으로 ARIA 블록 암호를 화이트 박스 방식으로 구현할 수 있다.
도 1은 ARIA 블록 암호의 치환계층 연산을 설명하기 위해 도시한 도면.
도 2는 ARIA 블록 암호의 암호화 및 복호화 과정을 설명하기 위해 도시한 도면.
도 3은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치의 구현을 위한 라운드 함수의 수정을 도시한 도면.
도 4는 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치의 구현을 위한, r번째 라운드의 T 테이블을 도시한 도면.
도 5는 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치의 구현을 위한, 마지막 라운드의 T 테이블을 도시한 도면.
도 6은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치의 구현을 위한, 치환계층의 행렬 연산 중 제1 행렬, 제2 행렬, 제1 행렬의 과정을 도시한 도면.
도 7은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치의 구성을 도시한 도면.
도 8은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에 의한 암호화 및 복호화 과정을 설명하기 위해 도시한 도면.
도 9는 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에서, r라운드 i번째 열의 Type 2 테이블 4개를 도시한 도면.
도 10은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에서, r라운드 i번째 열의 Type 3 테이블 4개를 도시한 도면.
도 11은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에서, Type 5a 테이블과 Type 4 테이블을 이용한 제1 행렬(M1) 및 제2 행렬(P)의 연산 과정을 도시한 도면.
도 12는 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에서, Type 5b 테이블과 Type 4 테이블을 이용한 제1 행렬(M1)의 연산 과정을 도시한 도면.
도 13은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에서, Type 1a 테이블을 도시한 도면.
도 14는 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에서, Type 1b 테이블을 도시한 도면.
도 15는 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에서, Type 4 테이블을 이용한 128비트 XOR 계산 과정을 도시한 도면.
도 16은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에서, Type 4 테이블을 이용한 32비트 XOR 계산 과정을 도시한 도면.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 ‘연결’ 되어 있다고 할 때, 이는 ‘직접적으로 연결’ 되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 ‘간접적으로 연결’ 되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 ‘포함’ 한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
본 발명은 ARIA 블록 암호의 개선된 화이트 박스 암호 장치에 관한 것으로서, 본 발명의 특징에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치는, 메모리 및 프로세서를 포함한 컴퓨터 장치에서 구현될 수 있다. 예를 들어, 개인용 컴퓨터, 노트북 컴퓨터, 서버 컴퓨터, PDA, 스마트폰, 태블릿 PC 등에 저장 및 구현될 수 있다.
본 발명은 Chow의 화이트 박스 AES를 ARIA 블록 암호에 응용한 화이트 박스 ARIA에 대한 것이다. Chow의 화이트 박스 AES는 8비트 입력, 32비트 출력의 Type 2/Type 3 테이블과 8비트 입력, 128비트 출력의 Type 1a/Type 1b, 그리고 8비트 입력, 4비트 출력의 Type 4 테이블을 조합하여 연산한다. 여기서, AES의 경우 MixColumn에서 4바이트 단위로 연산을 수행하기 때문에 Type 2와 Type 3의 출력 크기는 32비트이다. 그러나 ARIA의 경우 확산계층에서 사용하는 연산은 16바이트 단위이기 때문에, Chow의 방식에 따르면 Type 2 테이블의 출력의 크기는 128비트가 된다.
본 발명에서는, 128비트의 ARIA 블록 암호를 32비트 단위로 구현하고 이를 화이트 박스화하여 32비트 화이트 박스 ARIA를 제공할 수 있는, ARIA 블록 암호의 개선된 화이트 박스 암호 장치를 제안하고자 한다. 32비트로 화이트 박스 ARIA를 구현하면 128비트에 비하여 테이블의 크기를 줄이고 XOR 횟수를 줄여 더 효율적으로 화이트 박스 암호를 제공할 수 있다.
보다 구체적으로, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치는, ARIA 블록 암호에서 사용하는 연산을 테이블화한 테이블을 조합하여 연산을 수행해 화이트 박스 암호를 구현하되, ARIA 블록 암호를 32비트 단위로 화이트 박스 암호화하기 위해, ARIA 블록 암호의 라운드 함수를 키 확장(AddRoundKey), 치환계층(SubstLayer) 및 확산계층(DiffLayer)의 순서로 변경하고, 16바이트 단위인 확산계층의 연산을 4바이트 단위로 표현 가능한 제1 행렬(M1), 제2 행렬(P), 제1 행렬(M1) 및 제3 행렬(M)로 분리하여, 키 확장, 치환계층 및 확산계층의 제3 행렬을 연산하는 Type 2 테이블, 제1 행렬 및 제2 행렬을 연산하는 Type 5a 테이블, 제1 행렬을 연산하는 Type 5b 테이블을 구성하는 것을 특징으로 한다. 즉, 32비트 계산을 위해 Type 2 테이블과 Type 3 테이블을 변형하고, Type 5a 테이블 및 Type 5b 테이블을 추가하여 32비트 화이트 박스 ARIA를 제공할 수 있다.
이하에서는, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서 화이트 박스 방식으로 구현하려고 하는 ARIA 블록 암호에 대해 먼저 설명하도록 한다.
ARIA 블록 암호의 특징은, 암호화 연산과 복호화 연산이 동일하기 때문에 별도의 복호화 연산이 필요하지 않으며, 테이블 룩업 및 XOR 연산과 같이 단순한 연산으로 이루어져 있다.
ARIA의 블록 크기, 키 크기와 라운드 수는 다음 표 1과 같다. 블록 크기와 키 크기는 AES와 동일하며, 라운드 수(Nr)의 경우 키 크기 대비 2개 더 크다.
Figure 112020117874239-pat00003
ARIA 블록 암호의 라운드 함수는, 치환계층(SubstLayer), 확산계층(DiffLayer) 및 키 확장(AddRoundKey)을 포함한다.
먼저, 치환계층은, 두 개의 8비트 입출력 S-box를 사용한다. 8비트 입력을 GF(28)에서의 원소로 본다면, S-box 연산은 GF(28)에서의 연산과 아핀 변환으로 계산할 수 있다. 이때, 입력이 0일 경우 GF(28)에서의 역을 0으로 간주한다. 첫 번째 S-box는 AES의 S-box와 동일한 S-box를 사용한다. S1과 S2는 다음 수학식 1 및 수학식 2에 의해 정의될 수 있다.
Figure 112020117874239-pat00004
Figure 112020117874239-pat00005
도 1은 ARIA 블록 암호의 치환계층 연산을 설명하기 위해 도시한 도면이다. 도 1에 도시된 바와 같이, ARIA 블록 암호의 치환계층은, 입력과 출력이 128비트인 함수인데, 수학식 1 및 수학식 2에서 정의한 8비트 S-box S1, S1 -1, S2, S2 -1을 연접해서 사용하며, 홀수 라운드와 짝수 라운드에 따라 연산을 다르게 정의한다.
다음으로 확산계층은, 입력과 출력이 128비트인 함수이며 다음 수학식 3과 같이 연산을 정의할 수 있다. 여기서 사용하는 행렬 Q는 Q-1=Q이다. 확산계층을 계산하기 위해서는 별도의 연산 없이 XOR 연산만으로 계산할 수 있다.
Figure 112020117874239-pat00006
도 2는 ARIA 블록 암호의 암호화 및 복호화 과정을 설명하기 위해 도시한 도면이다. 여기서 RKr (0≤r≤Nr)은 바이트 길이가 16인 r번째 라운드 키를 의미한다. 키 확장(AddRoundKey)은 라운드 키 RKr를 XOR 연산하는 함수이다. 도 2에 도시된 바와 같이, 암복호화 과정에서는, 치환계층, 확산계층 및 키 확장을 라운드 함수로 간주하고 이를 반복 연산한다. 암호화 과정과 복호화 과정은 구조가 동일하지만, 사용하는 라운드 키가 다르다. 암호화의 경우 라운드 키를 순차적으로 입력하지만, 복호화의 경우 암호화에 사용한 라운드 키를 역순으로 대입한다.
전술한 바와 같은 ARIA 블록 암호를 화이트 박스화 하기 위해서는 모든 연산을 테이블로 변경해야 한다. 도 3은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)의 구현을 위한 라운드 함수의 수정을 도시한 도면이다. ARIA 블록 암호의 연산을 테이블로 변경하기 위해, 도 3에 도시된 바와 같이 라운드 함수를 변경하여 ARIA에서 사용하는 연산을 테이블화 할 수 있다. 즉, ARIA 블록 암호의 라운드 함수를 키 확장(AddRoundKey), 치환계층(SubstLayer) 및 확산계층(DiffLayer)의 순서로 변경하고, 라운드 키의 개수가 맞도록 수정하여 화이트 박스 암호를 구현할 수 있다.
도 4는 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)의 구현을 위한, r번째 라운드의 T 테이블을 도시한 도면이고, 도 5는 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)의 구현을 위한, 마지막 라운드의 T 테이블을 도시한 도면이다. 도 4에 도시된 바와 같이, T 테이블(T table)은 키 확장(AddRoundKey)과 치환계층(SubstLayer)을 한 번에 계산하는 테이블이다. 키 확장은 16바이트 라운드 키를 XOR 하는 연산이고, 치환계층은 8비트 S-box를 16개 연접한 연산이므로, T 테이블은 다음 수학식 4와 같이 8비트 단위로 연산을 수행할 수 있다.
Figure 112020117874239-pat00007
마지막 라운드의 경우, 도 5에 도시된 바와 같이 확산계층 없이 바로 키 확장을 수행하기 때문에 Nr-1번째 T 테이블은 다음 수학식 5와 같이 정의할 수 있다.
Figure 112020117874239-pat00008
한편, ARIA를 32비트 단위로 구현하고 이를 화이트 박스화 하기 위해서는, 16바이트 단위의 연산을 하는 확산계층으로 변형하여야 한다. 이를 위해, 확산계층 연산에서 사용하는 행렬(Q)을 4바이트 단위로 표현 가능한 제1 행렬(M1), 제2 행렬(P), 제1 행렬(M1) 및 제3 행렬(M)로 분리할 수 있다.
보다 구체적으로, 확산계층의 연산을 위한 16바이트 단위의 16×16 크기의 행렬(Q)을, 각각 4바이트 단위의 4×4 크기의 행렬로 표현 가능한 제1 행렬(M1), 제2 행렬(P), 제1 행렬(M1) 및 제3 행렬(M)로 분리할 수 있다. 즉, 확산계층에서 사용하는 행렬 Q∈Mat16×16(GF(28))는 P,M,M1∈Mat16×16(GF(28))을 이용해 다음 수학식 6과 같이 계산할 수 있다.
Figure 112020117874239-pat00009
행렬 I,P1,P2,P3,N∈Mat4×4(GF(28))은 다음 수학식 7과 같다.
Figure 112020117874239-pat00010
도 6은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)의 구현을 위한, 치환계층의 행렬 연산 중 제1 행렬(M1), 제2 행렬(P), 제1 행렬(M1)의 과정을 도시한 도면이다.
도 7은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)의 구성을 도시한 도면이다. 도 7에 도시된 바와 같이, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)는, 입력을 입력 인코딩 함수에 입력해 인코딩하는 입력 인코딩 처리부(110); 입력 인코딩 처리부(110)에서 인코딩된 입력을 Type 1a 테이블 및 Type 4 테이블을 이용해 연산을 수행하는 제1 연산 처리부(120); 제1 연산 처리부(120)의 출력을 Type 2 테이블, Type 3 테이블, Type 4 테이블, Type 5a 테이블 및 Type 5b 테이블을 이용해 연산을 수행하는 제2 연산 처리부(130); 제2 연산 처리부(130)의 출력을 Type 1b 테이블 및 Type 4 테이블을 이용해 연산을 수행하는 제3 연산 처리부(140); 및 연산 처리부의 출력을 출력 인코딩 함수에 입력해 인코딩하는 출력 인코딩 처리부(150)를 포함하여 구성될 수 있다.
도 8은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에 의한 암호화 및 복호화 과정을 설명하기 위해 도시한 도면이다. 도 8에 도시된 바와 같이, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)는, Type 1a, Type 1b, Type 2, Type 3, Type 4, Type 5a 및 Type 5b 테이블을 이용해 ARIA 블록 암호를 32비트의 화이트 박스 방식으로 구현할 수 있다. 즉, ARIA 블록 암호에서 사용하는 연산을 테이블화한 Type 1a, Type 1b, Type 2, Type 3, Tape 4 테이블을 사용하되, ARIA 블록 암호를 32비트 단위로 화이트 박스 암호화하기 위해, 라운드 함수의 연산을 위한 Type 2 테이블 및 Type 3 테이블을 변형하고, Type 5a 테이블 및 Type 5b 테이블을 추가로 더 구성하여, XOR 연산을 위한 Type 4 테이블과 조합하여 연산을 수행해 32비트 단위로 화이트 박스 암호를 구현할 수 있다.
보다 구체적으로, 본 발명에 의해 구현된 32비트 화이트 박스 ARIA(WB-ARIA)는 Type 1a, Type 1b, Type 2, Type 3, Type 4, Type 5a 및 Type 5b의 7가지 테이블로 구성될 수 있다. 각 테이블의 입력 및 출력은 4비트 비선형 인코딩을 통해 테이블 내부의 연산이 드러나지 않도록 할 수 있다.
이하에서는, 7가지 테이블에 대해 각각 상세히 설명하도록 한다.
Type 2 테이블은 ARIA의 라운드 함수 중, 키 확장, 치환계층 및 확산계층의 제3 행렬(M)을 연산할 수 있다. Type 2 테이블은, 입력 크기는 8비트, 출력 크기는 32비트이다. 제3 행렬(M)은 크기가 4인 행렬 N∈Mat4×4(GF(28))로 구성된 대각 행렬이기 때문에 32비트 단위로 구현할 수 있다. N은 다음 수학식 8과 같이 8비트 입력, 32비트 출력인 행렬 Ni∈Mat1×4(GF(28)) (0≤i≤3) 네 개를 연접한 것으로 간주할 수 있다.
Figure 112020117874239-pat00011
Type 2 테이블에서는 8비트 선형 인코딩 L4i+j r∈Mat8×8(GF(2)) (0≤i,j≤3, 0≤r≤Nr-1), 32비트 선형 인코딩 MBi r∈Mat32×32(GF(2)) (0≤i≤3, 0≤r≤Nr-2), 그리고 4비트 비선형 인코딩을 사용할 수 있다. L4i+j r은 크기가 8인 GF(2)에서의 가역 행렬이다. MBi r은 크기가 8인 행렬
Figure 112020117874239-pat00012
(0≤i,j,k≤3, 0≤r≤Nr-2)을 이용해 정의할 수 있다. 이때, A, B, C, D는 크기가 4인 GF(2)에서의 가역 행렬이다. 이러한 가역 행렬을 이용해, 라운드 함수 연산의 중간 데이터 및 키를 안전하게 숨길 수 있다. Type 2 테이블은 T 테이블과 행렬 Nj를 이용해 다음 수학식 9와 같이 정의할 수 있다.
Figure 112020117874239-pat00013
도 9는 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서, r라운드 i번째 열의 Type 2 테이블 4개를 도시한 도면이다. 도 9에 도시된 바와 같이, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서 구현된 Type 2 테이블은 출력 단위가 32비트이다. 여기서 4비트 비선형 인코딩(도 9의 파란색 상자)은 입력 8비트에서 2개, 출력 32비트에서 8개를 사용하며, 이를 통해 테이블 내부의 연산이 드러나지 않도록 할 수 있다.
Type 3 테이블은, Type 2 테이블에서 사용한 행렬의 역행렬을 곱해주는 역할을 할 수 있다. Type 3 테이블의 입력 크기는 8비트, 출력 크기는 32비트이다. Type 3 테이블에서는 8비트 선형 인코딩 U4i+j r∈Mat8×8(GF(2)) (0≤i,j≤3, 0≤r≤Nr-1), 32비트 선형 인코딩 MBi r∈Mat32×32(GF(2)) (0≤i≤3, 0≤r≤Nr-2), 및 4비트 비선형 인코딩을 사용한다. Type 3 테이블은 다음 수학식 10과 같이 정의할 수 있다.
Figure 112020117874239-pat00014
도 10은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서, r라운드 i번째 열의 Type 3 테이블 4개를 도시한 도면이다. 도 10에 도시된 바와 같이, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서 구현된 Type 3 테이블은 출력 단위가 32비트이다. 여기서 4비트 비선형 인코딩(도 9의 파란색 상자)은 입력 8비트에서 2개, 출력 32비트에서 8개를 사용할 수 있다.
Type 4 테이블은 XOR 연산을 수행할 수 있다. 즉, Type 1a, Type 1b, Type 2, Type 3, Type 5a, Type 5b의 출력 값을 XOR 연산하여, 각 테이블의 결과를 모아서 마무리하는 역할을 할 수 있다. 따라서, 각 테이블의 뒤에 Type 4 테이블 연산을 수행할 수 있다. Type 4 테이블의 입력 크기는 8비트, 출력 크기는 4비트이며, 4비트 비선형 인코딩을 입력에서 2개, 출력에서 1개 사용할 수 있다. 128비트를 XOR 연산하기 위해서는 32개의 Type 4 테이블이 필요하고, 32비트를 XOR 연산하기 위해서는 8개의 Type 4 테이블이 필요하다. 따라서 ARIA 블록 암호를 32비트로 구현함으로써, XOR 횟수를 크게 줄일 수 있다.
Type 5a 테이블은 확산계층의 제1 행렬(M1) 및 제2 행렬(P)을, Type 5b 테이블은 확산계층의 제1 행렬(M1)을 각각 연산할 수 있다. Type 5a 테이블 및 Type 5b 테이블의 입력 및 출력 크기를 8비트가 되도록 구성할 수 있다.
제2 행렬(P)은 크기가 4인 GF(28)에서의 단위행렬 I와 P1, P2, P3로 구성된 대각 행렬일 수 있으며, 다음 수학식 11과 같이 계산할 수 있다. 여기서, Xi,Yi∈GF(28)4 ,0≤i≤3이다.
Figure 112020117874239-pat00015
Yi는 크기가 4인 GF(28)에서의 행렬과 Xi를 곱하여 계산할 수 있다. I, P1, P2, P3는 다음 수학식 12와 같이 입력 바이트 4개의 위치를 변경하는 연산이므로, 바이트 단위로 연산을 할 수 있다. 여기서, xi,j,yi,j∈GF(28) ,0≤i,j≤3이다.
Figure 112020117874239-pat00016
제1 행렬(M1)은 크기가 4인 GF(28)에서의 단위행렬 I로 구성된 행렬이므로 32비트 단위로 연산할 수 있다. 제1 행렬(M1)은 다음 수학식 13과 같이 계산할 수 있다. 여기서, Xi,Yi∈GF(28)4, 0≤i≤3이다.
Figure 112020117874239-pat00017
수학식 13의 연산에서 Y0의 첫 번째 바이트를 계산하기 위해서는, X0, X1, X2의 각 첫 번째 바이트를 XOR해야 한다.
Type 5a 테이블은 Type 3 테이블을 XOR한 결과에 제1 행렬(M1) 및 제2 행렬(P)을 곱하는 테이블이다. Type 3 테이블은 각 바이트에 서로 다른 선형 인코딩을 적용하기 때문에, 이를 제거하고 동일한 8비트 선형 인코딩을 적용하는 과정이 필요하다. Type 5a 테이블에서는 Type 3에서 사용한 8비트 선형 인코딩 U4i+j r∈Mat8×8(GF(2)) (0≤i,j≤3, 0≤r≤Nr-1), 8비트 선형 인코딩 V4i+j r∈Mat8×8(GF(2)) (0≤i,j≤3, 0≤r≤Nr-1), 그리고 4비트 비선형 인코딩을 사용할 수 있다. Type 5a 테이블은 다음 수학식 14와 같이 정의할 수 있다.
Figure 112020117874239-pat00018
Type 5a 테이블에서 사용하는 p1[j], p2[j], p3[j] (0≤j≤3)은 다음 수학식 15와 같다.
Figure 112020117874239-pat00019
도 11은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서, Type 5a 테이블과 Type 4 테이블을 이용한 제1 행렬(M1) 및 제2 행렬(P)의 연산 과정을 도시한 도면이다. 도 11에 도시된 바와 같이, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서는, Type 5a 테이블의 입력으로 Type 3 테이블과 Type 4 테이블의 연산 결과인 16 바이트를 사용한다. 이를 x0,x1,…,x15 (x4i+j∈GF(28), 0≤i,j≤3)라 하자. 도 11과 같이 r라운드의 j번째 바이트를 계산하기 위해 Type 5a 테이블과에 xj, x4+j, x8+j를 순차적으로 입력한다. 그 후 Type 4 테이블을 이용해 XOR하여 j번째 바이트를 출력한다. 마찬가지로 4+j번째 바이트를 계산하기 위해서는 xp1[j], x8+p1[j], x12+p1[j]를, 8+j번째 바이트를 계산하기 위해서는 xp2[j], x8+p2[j], x12+p2[j]를, 12+j번째 바이트를 계산하기 위해서는 x4+p3[j], x8+p3[j], x12+p3[j]를 입력한다.
Type 5b 테이블은 Type 5a 테이블을 XOR한 결과에 제1 행렬(M1)을 곱하는 테이블이다. Type 5a 테이블은 각 바이트에 서로 다른 선형 인코딩을 적용하기 때문에 이를 제거하고 동일한 8비트 선형 인코딩을 적용하는 과정이 필요하다. Type 5b 테이블에서는 Type 5a에서 사용한 8비트 선형 인코딩 V4i+j r∈Mat8×8(GF(2)) (0≤i,j≤3, 0≤r≤Nr-1), Type 2 테이블에서 사용한 8비트 선형 인코딩 L4i+j r∈Mat8×8(GF(2)) (0≤i,j≤3, 0≤r≤Nr-1), 그리고 4비트 비선형 인코딩을 사용한다. Type 5b 테이블을 다음 수학식 16과 같이 정의할 수 있다.
Figure 112020117874239-pat00020
도 12는 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서, Type 5b 테이블과 Type 4 테이블을 이용한 제1 행렬(M1)의 연산 과정을 도시한 도면이다. 도 12에 도시된 바와 같이, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서는, Type 5b 테이블의 입력으로 Type 5a 테이블과 Type 4 테이블의 연산 결과인 16 바이트를 사용한다. 이를 x0,x1,…,x15 (x4i+j∈GF(28), 0≤i,j≤3)라 하자. 도 12와 같이 r라운드의 j번째 바이트를 계산하기 위해 Type 5b에 xj, x4+j, x8+j를 순차적으로 입력한다. 그 후 Type 4 테이블을 이용해 XOR하여 j번째 바이트를 출력한다. 마찬가지로 4+j번째 바이트를 계산하기 위해서는 xj, x8+j, x12+j를, 8+j번째 바이트를 계산하기 위해서는 xj, x4+j, x12+j를, 12+j번째 바이트를 계산하기 위해서는 x4+j, x8+j, x12+j를 입력한다.
도 13은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서, Type 1a 테이블을 도시한 도면이다. 도 13에 도시된 바와 같이, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서 Type 1a 테이블은, 안전성을 높이기 위해 가역 행렬을 곱해주는 연산을 수행할 수 있다. Type 1a 테이블의 입력 크기는 8비트, 출력 크기는 128비트이며, Type 1a 테이블에서는 128비트 선형 인코딩 F∈Mat128×128(GF(2)), Type 2에서 사용한 8비트 선형 인코딩 Lj 0∈Mat8×8(GF(2)) (0≤j≤15), 그리고 4비트 비선형 인코딩을 사용할 수 있다. F는 크기가 8인 행렬 Fi,j∈Mat8×8(GF(2)) (0≤i,j≤15)을 이용해 정의되며, Type 1a 테이블을 다음 수학식 17과 같이 정의할 수 있다.
Figure 112020117874239-pat00021
여기서 4비트 비선형 인코딩(도 13의 파란색 상자)은 입력 8비트에서 2개, 출력 128비트에서 32개를 사용할 수 있다.
도 14는 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서, Type 1b 테이블을 도시한 도면이다. 도 14에 도시된 바와 같이, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서 Type 1b 테이블은, 마지막 라운드 연산을 수행하며, 안전성을 높이기 위해 가역 행렬을 곱해주는 연산을 수행할 수 있다.
Type 1b 테이블의 입력 크기는 8비트, 출력 크기는 128비트이다. Type 1b 테이블에서는 128비트 선형 인코딩 G∈Mat128×128(GF(2)), Type 2 테이블에서 사용한 8비트 선형 인코딩을 Lj Nr-1∈Mat8×8(GF(2)) (0≤j≤15), 그리고 4비트 비선형 인코딩을 사용한다. G는 8비트 행렬 Gi,j∈Mat8×8(GF(2)) (0≤i,j≤15)을 이용해 정의할 수 있다. ARIA 블록 암호의 경우 마지막 라운드에서 확산계층 연산을 하지 않는데, Type 1b 테이블은 마지막 라운드의 T 테이블(Tj Nr-1)을 이용해 다음 수학식 18과 같이 정의할 수 있다.
Figure 112020117874239-pat00022
여기서 4비트 비선형 인코딩(도 14의 파란색 상자)은 입력 8비트에서 2개, 출력 128비트에서 32개를 사용할 수 있다.
이하에서는, 전술한 바와 같이 구현된 화이트 박스 ARIA의 7가지 타입 테이블과 도 7 및 도 8을 참고하여, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)를 구성하는 각 구성요소에 대해 상세히 설명하도록 한다.
입력 인코딩 처리부(110)는, 입력을 입력 인코딩 함수에 입력해 인코딩할 수 있다. 입력은 16바이트일 수 있고, 입력 인코딩 함수는 128비트 선형 인코딩(F)일 수 있다. 즉, 입력 인코딩 처리부(110)는, 입력 16바이트를 128비트 선형 인코딩 F와 4비트 비선형 인코딩 32개를 연산하여 인코딩할 수 있다.
제1 연산 처리부(120)는, 입력 인코딩 처리부(110)에서 인코딩된 입력을 Type 1a 테이블 및 XOR 연산을 위한 Type 4 테이블을 이용해 연산을 수행할 수 있다. 보다 구체적으로, 제1 연산 처리부(120)는, 입력 인코딩 처리부(110)에서 인코딩된 16바이트의 입력을 바이트 별로 Type 1a 테이블을 이용해 연산해 16개의 128비트를 생성하며, Type 4 테이블을 이용해 총 15번의 128비트 XOR 연산을 수행해 한 개의 128비트를 출력할 수 있다.
도 15는 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서, Type 4 테이블을 이용한 128비트 XOR 계산 과정을 도시한 도면이다. 도 15에 도시된 바와 같이, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서 Type 4 테이블은 XOR 연산을 수행하는데, Type 4 테이블의 입력 크기는 8비트, 출력 크기는 4비트이며, 4비트 비선형 인코딩을 입력에서 2개, 출력에서 1개 사용할 수 있다. 128비트를 XOR 연산하기 위해서는 도 15와 같이 32개의 Type 4 테이블이 필요하다. 제1 연산 처리부(120)는, 도 8에 도시된 바와 같이, Type 1a 테이블의 출력에 대해 총 15번의 128비트 XOR(도 15에 도시된 바와 같은 계산 과정)을 통해 계산할 수 있다.
제2 연산 처리부(130)는, 제1 연산 처리부(120)의 출력을 Type 2 테이블, Type 3 테이블, Type 4 테이블, Type 5a 테이블 및 Type 5b 테이블을 이용해 연산을 수행할 수 있다. 제2 연산 처리부(130)는 ARIA 블록 암호의 라운드 함수를 연산하는 주요 구성으로서, 보다 구체적으로, 제2 연산 처리부(130)는, 제1 연산 처리부(120)의 출력을 Type 2 테이블, Type 4 테이블, Type 3 테이블, Type 4 테이블, Type 5a 테이블, Type 4 테이블, Type 5b 테이블, Type 4 테이블에 순차적으로 대입해 라운드 함수의 연산을 수행하되, 미리 정해진 수만큼 반복 연산을 수행할 수 있다.
즉, 제2 연산 처리부(130)는, 입력 16바이트를 바이트 단위로 Type 2 테이블에 대입해 16개의 32비트를 생성할 수 있다. 이때, Type 2 테이블의 경우 Type 1a 테이블의 XOR 방식과 상이하게 순서대로 4개의 32비트 XOR을 수행해, 16개의 32비트가 4개의 32비트가 되도록 계산할 수 있다.
도 16은 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서, Type 4 테이블을 이용한 32비트 XOR 계산 과정을 도시한 도면이다. 도 16에 도시된 바와 같이, 본 발명의 일실시예에 따른 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에서는, 32비트를 XOR 연산하기 위해서, 8개의 Type 4 테이블이 필요하다. 도 16에 도시된 바와 같은 32비트 XOR을 총 3번 이용해 4개의 32비트 XOR을 출력할 수 있다.
Type 2 테이블과 Type 4 테이블을 이용해 32비트 XOR을 통해 출력되는 4개의 32비트는, 동일한 계산 방식으로, Type 3 테이블과 Type 4 테이블을 거쳐 한 개의 16바이트로 계산될 수 있다. 그 다음, 도 11 및 12에 도시된 바와 같이, Type 5a 테이블, Type 4 테이블, Type 5b 테이블, Type 4 테이블을 차례로 거쳐 16바이트를 계산할 수 있다.
제2 연산 처리부(130)는, 전술한 바와 같은 연산을 미리 정해진 수만큼 즉, Nr-1번 반복 수행할 수 있다.
제3 연산 처리부(140)는, 제2 연산 처리부(130)의 출력을 Type 1b 테이블 및 Type 4 테이블을 이용해 연산을 수행할 수 있다. 보다 구체적으로, 제3 연산 처리부(140)는, 제2 연산 처리부(130)의 출력을 바이트 별로 Type 1b 테이블을 이용해 연산해 16개의 128비트를 생성하며, Type 4 테이블을 이용해 15번의 128비트 XOR 연산을 수행해 한 개의 128비트를 출력할 수 있다.
출력 인코딩 처리부(150)는, 연산 처리부의 출력을 출력 인코딩 함수에 입력해 인코딩할 수 있다. 여기서, 출력 인코딩 함수는 128비트 선형 인코딩 G-1일 수 있다. 즉, 도 8에 도시된 바와 같이, 출력 인코딩 처리부(150)는 4비트 비선형 인코딩 32개와 128비트 선형 인코딩 G-1을 연산하여 16바이트 출력을 계산할 수 있다.
전술한 바와 같이, 본 발명에서 제안하고 있는 ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100)에 따르면, ARIA 블록 암호에서 사용하는 연산을 테이블화한 테이블을 사용하되, 128비트 단위의 ARIA 블록 암호를 32비트 단위의 화이트 박스 암호로 구현하기 위해, ARIA 블록 암호의 확산계층의 연산을 4바이트 단위로 표현 가능한 제1 행렬, 제2 행렬, 제1 행렬 및 제3 행렬로 분리하여, 키 확장, 치환계층 및 확산계층의 제3 행렬을 연산하는 Type 2 테이블, 제1 행렬 및 제2 행렬을 연산하는 Type 5a 테이블, 제1 행렬을 연산하는 Type 5b 테이블을 구성함으로써, XOR 횟수와 테이블 크기를 줄여 더 효율적으로 ARIA 블록 암호를 화이트 박스 방식으로 구현할 수 있다.
한편, 본 발명은 다양한 통신 단말기로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터에서 판독 가능한 매체를 포함할 수 있다. 예를 들어, 컴퓨터에서 판독 가능한 매체는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD_ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
이와 같은 컴퓨터에서 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 이때, 컴퓨터에서 판독 가능한 매체에 기록되는 프로그램 명령은 본 발명을 구현하기 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예를 들어, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.
100: 본 발명에 따른 화이트 박스 암호 장치
110: 입력 인코딩 처리부
120: 제1 연산 처리부
130: 제2 연산 처리부
140: 제3 연산 처리부
150: 출력 인코딩 처리부

Claims (8)

  1. 화이트 박스 암호 장치(100)로서,
    ARIA 블록 암호에서 사용하는 연산을 테이블화한 테이블을 조합하여 연산을 수행해 화이트 박스 암호를 구현하되,
    상기 ARIA 블록 암호를 32비트 단위로 화이트 박스 암호화하기 위해, 상기 ARIA 블록 암호의 라운드 함수를 키 확장(AddRoundKey), 치환계층(SubstLayer) 및 확산계층(DiffLayer)의 순서로 변경하고, 16바이트 단위인 상기 확산계층의 연산을 4바이트 단위로 표현 가능한 제1 행렬(M1), 제2 행렬(P), 제1 행렬(M1) 및 제3 행렬(M)로 분리하여,
    상기 키 확장, 치환계층 및 상기 확산계층의 제3 행렬을 연산하는 Type 2 테이블, 상기 제1 행렬 및 제2 행렬을 연산하는 Type 5a 테이블, 상기 제1 행렬을 연산하는 Type 5b 테이블을 구성하는 것을 특징으로 하는, ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100).
  2. 제1항에 있어서,
    상기 Type 2 테이블의 입력 크기를 8비트, 출력 크기를 32비트, 상기 Type 5a 테이블 및 Type 5b 테이블의 입력 및 출력 크기를 8비트가 되도록 구성하는 것을 특징으로 하는, ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100).
  3. 제2항에 있어서,
    입력을 입력 인코딩 함수에 입력해 인코딩하는 입력 인코딩 처리부(110);
    상기 입력 인코딩 처리부(110)에서 인코딩된 입력을 Type 1a 테이블 및 XOR 연산을 위한 Type 4 테이블을 이용해 연산을 수행하는 제1 연산 처리부(120);
    상기 제1 연산 처리부(120)의 출력을 상기 Type 2 테이블, Type 3 테이블, Type 4 테이블, Type 5a 테이블 및 Type 5b 테이블을 이용해 연산을 수행하는 제2 연산 처리부(130);
    상기 제2 연산 처리부(130)의 출력을 Type 1b 테이블 및 상기 Type 4 테이블을 이용해 연산을 수행하는 제3 연산 처리부(140); 및
    상기 제3 연산 처리부(140)의 출력을 출력 인코딩 함수에 입력해 인코딩하는 출력 인코딩 처리부(150)를 포함하는 것을 특징으로 하는, ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100).
  4. 제3항에 있어서, 상기 제2 연산 처리부(130)는,
    상기 제1 연산 처리부(120)의 출력을 상기 Type 2 테이블, Type 4 테이블, Type 3 테이블, Type 4 테이블, Type 5a 테이블, Type 4 테이블, Type 5b 테이블, Type 4 테이블에 순차적으로 대입해 라운드 함수의 연산을 수행하되, 미리 정해진 수만큼 반복 연산을 수행하는 것을 특징으로 하는, ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100).
  5. 제3항에 있어서, 상기 제2 연산 처리부(130)는,
    상기 Type 2 테이블 및 Type 3 테이블 이후에 Type 4 테이블을 이용해 XOR 연산을 할 때, 8개의 Type 4 테이블을 사용하는 32비트 XOR을 총 3번 수행하여 처리하는 것을 특징으로 하는, ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100).
  6. 제2항에 있어서,
    상기 확산계층의 연산을 위한 16바이트 단위의 16×16 크기의 행렬(Q)을, 각각 4바이트 단위의 4×4 크기의 행렬로 표현 가능한 제1 행렬(M1), 제2 행렬(P), 제1 행렬(M1) 및 제3 행렬(M)로 분리하는 것을 특징으로 하는, ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100).
  7. 제6항에 있어서,
    상기 확산계층의 연산을 위한 행렬(Q)은, 다음 수학식과 같이 제1 행렬(M1), 제2 행렬(P), 제1 행렬(M1) 및 제3 행렬(M)로 분리되는 것을 특징으로 하는, ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100).
    [수학식]
    Figure 112020117874239-pat00023

    여기서,
    Figure 112020117874239-pat00024

  8. 제3항에 있어서,
    상기 Type 1a 테이블 및 Type 1b 테이블의 입력 크기는 8비트, 출력 크기는 128비트이고,
    상기 Type 4 테이블의 입력 크기는 8비트, 출력 크기는 4비트인 것을 특징으로 하는, ARIA 블록 암호의 개선된 화이트 박스 암호 장치(100).
KR1020200146250A 2020-11-04 2020-11-04 Aria 블록 암호의 개선된 화이트 박스 암호 장치 KR102405821B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200146250A KR102405821B1 (ko) 2020-11-04 2020-11-04 Aria 블록 암호의 개선된 화이트 박스 암호 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200146250A KR102405821B1 (ko) 2020-11-04 2020-11-04 Aria 블록 암호의 개선된 화이트 박스 암호 장치

Publications (2)

Publication Number Publication Date
KR20220060349A KR20220060349A (ko) 2022-05-11
KR102405821B1 true KR102405821B1 (ko) 2022-06-08

Family

ID=81607059

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200146250A KR102405821B1 (ko) 2020-11-04 2020-11-04 Aria 블록 암호의 개선된 화이트 박스 암호 장치

Country Status (1)

Country Link
KR (1) KR102405821B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101623503B1 (ko) 2015-02-04 2016-05-23 국민대학교산학협력단 Lea 블록암호의 화이트박스 암호 구현 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101623503B1 (ko) 2015-02-04 2016-05-23 국민대학교산학협력단 Lea 블록암호의 화이트박스 암호 구현 장치 및 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Limin Xiao 외 4명. "High Performance Implementation of ARIA Encryption Algorithm on Graphics Processing Units", HPCC 2013 & EUC 2013 (2013.11.)
Martin Tehan. "White-Box Crypotgraphy", MASARYK UNIVERSITY, Master Thesis (2013).
Stanley Chow 외 3명. "White-Box Cryptography and an AES Implementation." International Workshop on Selected Areas in Cryptography. Springer, Berlin, Heidelberg (2002.)

Also Published As

Publication number Publication date
KR20220060349A (ko) 2022-05-11

Similar Documents

Publication Publication Date Title
DK1686722T3 (en) Block encryption device and block encryption method comprising rotation key programming
Biryukov et al. Block ciphers and systems of quadratic equations
US20060177052A1 (en) S-box encryption in block cipher implementations
Aboytes-González et al. Design of a strong S-box based on a matrix approach
US20070071236A1 (en) High speed configurable cryptographic architecture
US20120170739A1 (en) Method of diversification of a round function of an encryption algorithm
CN107438065A (zh) 数据加密装置及方法、数据解密装置及方法
Yap et al. On the effective subkey space of some image encryption algorithms using external key
KR20050078271A (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
Masoodi et al. Symmetric Algorithms I
Shorin et al. Linear and differential cryptanalysis of Russian GOST
Xu et al. A white-box AES-like implementation based on key-dependent substitution-linear transformations
Hussain et al. Modified advanced encryption standard (MAES) based on non-associative inverse property loop
Gandh et al. FPGA implementation of enhanced key expansion algorithm for Advanced Encryption Standard
KR102405821B1 (ko) Aria 블록 암호의 개선된 화이트 박스 암호 장치
Granelli et al. A novel methodology for analysis of the computational complexity of block ciphers: Rijndael, Camellia and Shacal-2 compared.
KR102405819B1 (ko) Aria 블록 암호의 화이트 박스 암호 장치
EP3998738A1 (en) Secured performance of a cryptographic process
Gupta et al. Correlation power analysis of KASUMI and power resilience analysis of some equivalence classes of KASUMI S-boxes
KR20190037980A (ko) 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템
Tarawneh Cryptography: Recent Advances and Research Perspectives
Abdulwahed Chaos-Based Advanced Encryption Standard
Zajac et al. Cryptographic properties of small bijective S-boxes with respect to modular addition
AlRoubiei et al. Critical analysis of cryptographic algorithms
JP2018514816A (ja) 変形鍵を用いる高速aes

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant