KR101281275B1 - 부울 함수 표현을 이용한 블록암호 암/복호화 과정의 난독화 방법 및 이를 위한 장치 - Google Patents

부울 함수 표현을 이용한 블록암호 암/복호화 과정의 난독화 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR101281275B1
KR101281275B1 KR1020110094168A KR20110094168A KR101281275B1 KR 101281275 B1 KR101281275 B1 KR 101281275B1 KR 1020110094168 A KR1020110094168 A KR 1020110094168A KR 20110094168 A KR20110094168 A KR 20110094168A KR 101281275 B1 KR101281275 B1 KR 101281275B1
Authority
KR
South Korea
Prior art keywords
function
encryption
block cipher
input
boolean
Prior art date
Application number
KR1020110094168A
Other languages
English (en)
Other versions
KR20130025308A (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 서울대학교산학협력단
Publication of KR20130025308A publication Critical patent/KR20130025308A/ko
Application granted granted Critical
Publication of KR101281275B1 publication Critical patent/KR101281275B1/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/16Obfuscation or hiding, e.g. involving white box

Abstract

블록암호 암/복호화 과정의 난독화 방법 및 장치가 개시된다. 본 발명에 따른 블록암호 암/복호화 과정의 난독화 방법은 블록암호 함수의 입/출력 관계를 제1 부울 함수(Boolean function)로 표현하는 단계; 상기 블록암호 함수의 앞단 및 뒷단 중 어느 하나 이상에 부가될 하나 이상의 처리 함수를 상기 제1 부울 함수와 합성하여 제2 부울 함수를 생성하는 단계; 및 상기 제2 부울 함수를 디지털 형태로 저장하고, 암/복호화가 필요한 경우 암/복호화 입력에 상기 제2 부울 함수를 적용하여 암호화 키를 드러내지 않고 상기 암/복호화를 수행하는 단계를 포함한다.

Description

부울 함수 표현을 이용한 블록암호 암/복호화 과정의 난독화 방법 및 이를 위한 장치 {OBFUSCATION METHOD FOR PROCESS OF ENCRYPTING/DECRYPTING BLOCK CIPHER USING BOOLEAN FUNCTION EXPRESSION AND APPARATUS FOR THE SAME}
본 발명은 암/복호화 기술에 관한 것으로, 특히 컴퓨터 소프트웨어나 하드웨어로 암호화 시스템을 구현함에 있어 암호화 키를 노출시키지 않고 암호화 시스템을 구현할 수 있는 블록암호 암/복호화 과정의 난독화 기술에 관한 것이다.
기존의 암호 메커니즘은 암호키를 이용하여 평문으로부터 암호문을 만들거나 암호문과 암호키를 입력으로 받아서 복호화를 수행한다. 하지만 대부분의 소프트웨어는 디버거 등의 소프트웨어 분석 공격에 의해 암호 연산 과정과 중간값을 모두 알아낼 수 있고, 암호키 해석 및 유추가 가능하다.
이러한 암호 메커니즘을 큰 룩업테이블로 표현하고 이러한 룩업테이블에 암호키를 숨겨 놓음으로써, 공격자가 암호키 프로세싱을 모니터링 하더라도 실제적인 암호키가 무엇인지를 유추할 수 없도록 하는 암호 기법이 화이트 박스 암호이다. 이 기법은 2002년의 "Proc. Of the 9th Annual Workshop on Selected Areas in Cryptography"에서의 "S. Chow, P. Eisen, H. Johnson, P. C. van Oorschot"의 "White-Box Cryptography and an AES Implementation" 논문에 공개된 바 있다.
또한, 미국등록특허 제7,397,916호를 통해 화이트 박스 공격(white box attack)으로부터 컴퓨터 소프트웨어를 보호하기 위한 테이블 기반의 암호화 시스템 및 방법이 개시되어 있다.
그러나, 이러한 테이블 기반 화이트-박스 암호화는 입력/출력 관계를 하나의 테이블로 표현하는 경우 테이블의 사이즈가 너무 커지고, 테이블을 보다 작은 복수 개의 테이블들로 나누어서 표현하는 경우 외부 공격에 취약하다는 문제점이 있다.
IP 네트워크의 일반화로 스마트 TV, 스마트폰 등 기기 성능의 향상, 해당 컨텐츠가 증가함에 따라 공격자의 능력도 향상되고, 멀웨어(Mal-ware)가 증가함에 따라 기기에 저장된 기밀정보의 보호에 대한 요구사항이 증가하고 있다. 스마트 TV, 스마트폰 시장규모가 폭발적으로 확대됨에 기밀정보를 보호하기 위한 기술이 빠른 기간 내에 개발될 필요성이 있다.
상기한 문제점을 해결하기 위한 본 발명의 목적은 기존의 테이블 기반 화이트-박스 암호화 기법의 문제점을 보완하여 보다 안전하게 블록암호의 암/복호화 과정에서 암호키(복호키)를 숨길 수 있는 새로운 암호화 기법을 제공하는 것이다.
또한, 본 발명의 목적은 블록암호 함수의 입/출력 관계를 부울 함수로 표현하고, 블록암호 함수의 앞단 및 뒷단 중 어느 하나 이상에 부가될 전처리 함수 및 후처리 함수를 블록암호 함수에 상응하는 부울 함수와 합성함으로써 블록암호 함수의 입/출력 관계를 드러내지 않고 암호화/복호화를 수행하는 것이다.
또한, 본 발명의 목적은 블록암호 암/복호화 과정을 복수 개의 라운드들로 구분하고, 라운드들 각각에 대하여 모든 입력 비트들과 모든 출력 비트들의 관계를 부울 함수로 표현함으로써, 일부 입력 비트와 일부 출력 비트 사이의 관계만을 테이블화 함으로써 발생하는 테이블 기반 화이트-박스 암호화의 안전성 문제를 해결하는 것이다.
또한, 본 발명의 목적은 블록암호 함수의 입/출력 관계를 출력 비트 단위의 부울 함수로 표현하여 저장함으로써 테이블 기반 화이트-박스 암호화의 안전성 문제를 해결하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 블록암호 암/복호화 과정의 난독화 방법은, 블록암호 함수의 입/출력 관계를 제1 부울 함수(Boolean function)로 표현하는 단계; 각각 상기 블록암호 함수의 앞단 및 뒷단 중 어느 하나 이상에 부가될 전처리 함수 및 후처리 함수를 상기 제1 부울 함수와 합성하여 제2 부울 함수를 생성하는 단계; 및 상기 제2 부울 함수를 디지털 형태로 저장하고, 암/복호화가 필요한 경우 암/복호화 입력에 상기 제2 부울 함수를 적용하여 암호화 키를 드러내지 않고 상기 암/복호화를 수행하는 단계를 포함한다.
이 때, 상기 블록암호 함수는 복수 개의 라운드들로 분할되고, 상기 블록암호 암/복호화 과정의 난독화 방법은 상기 라운드들마다 수행될 수 있다.
이 때, 상기 전처리 함수 및 상기 후처리 함수는 각각 입력 비트의 순서를 바꾸어 출력하는 비트 치환(permutation) 함수일 수 있다.
이 때, 상기 디지털 형태는 출력 비트 변수들 각각을 입력 비트 변수들의 부울 연산 관계(Boolean operation relationship)로 정의한 부울 연산 표현일 수 있다.
또한, 본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 장치는 블록암호 함수의 입/출력 관계를 제1 부울 함수(Boolean function)로 표현하는 부울 함수 표현부; 상기 블록암호 함수의 앞단 및 뒷단 중 어느 하나 이상에 부가될 하나 이상의 처리 함수를 상기 제1 부울 함수와 합성하여 제2 부울 함수를 생성하는 함수 합성부; 및 상기 제2 부울 함수를 디지털 형태로 저장하고, 암/복호화가 필요한 경우 암/복호화 입력에 상기 제2 부울 함수를 적용하여 암호화 키를 드러내지 않고 상기 암/복호화를 수행하는 암/복호화부를 포함한다.
이 때, 상기 하나 이상의 처리 함수는 상기 블록암호 함수의 앞단에 부가되는 전처리 함수 및 상기 블록암호 함수의 뒷단에 부가되는 후처리 함수일 수 있다.
본 발명에 따르면, 기존의 테이블 기반 화이트-박스 암호화 기법의 문제점을 보완하여 보다 안전하게 암/복호화 과정에서 암호키(복호키)를 숨길 수 있다.
또한, 본 발명은 블록암호 함수의 입/출력 관계를 부울 함수로 표현하고, 블록암호 함수의 앞단 및 뒷단 중 어느 하나 이상에 부가될 전처리 함수 및 후처리 함수를 블록암호 함수에 상응하는 부울 함수와 합성함으로써 블록암호 함수의 입/출력 관계를 드러내지 않고 암호화/복호화를 수행할 수 있다.
또한, 본 발명은 블록암호 암/복호화 과정을 복수 개의 라운드들로 구분하고 라운드들 각각에 대하여 모든 입력 비트들과 모든 출력 비트들의 관계를 부울 함수로 표현함으로써, 일부 입력 비트와 일부 출력 비트 사이의 관계만을 테이블화함으로써 발생하는 테이블 기반 화이트-박스 암호화의 안전성 문제를 해결할 수 있다.
또한, 본 발명은 블록암호 함수의 입/출력 관계를 출력 비트 단위의 부울 함수로 표현하여 저장함으로써 테이블 기반 화이트-박스 암호화의 안전성 문제를 해결할 수 있다.
도 1은 본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 방법을 나타낸 동작 흐름도이다.
도 2는 1비트 풀 애디션의 입/출력 관계를 나타낸 도면이다.
도 3은 4비트 바이너리 애디션의 입/출력 관계를 나타낸 도면이다.
도 4는 입력 치환(input permutation)의 입/출력 관계를 나타낸 도면이다.
도 5는 출력 치환(output permutation)의 입/출력 관계를 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 장치를 나타낸 블록도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 방법을 나타낸 동작 흐름도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 방법은 블록암호 함수의 입/출력 관계를 제1 부울 함수(Boolean function)로 표현한다(S110).
또한, 본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 방법은 각각 상기 블록암호 함수의 앞단 및 뒷단 중 어느 하나 이상에 부가될 전처리 함수 및 후처리 함수를 상기 제1 부울 함수와 합성하여 제2 부울 함수를 생성한다(S120).
이 때, 전처리 함수 및 후처리 함수는 각각 입력 비트의 순서를 바꾸어 출력하는 비트 치환(permutation) 함수일 수 있다.
또한, 본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 방법은 상기 제2 부울 함수를 디지털 형태로 저장하고, 암/복호화가 필요한 경우 암/복호화 입력에 상기 제2 부울 함수를 적용하여 암호화 키를 드러내지 않고 상기 암/복호화를 수행한다(S130).
이 때, 블록암호 함수는 복수 개의 라운드들로 분할될 수 있다. 이 때, 블록암호 암/복호화 과정의 난독화 방법은 상기 라운드들마다 수행될 수 있다.
이 때, 상기 디지털 형태는 출력 비트 변수들 각각을 입력 비트 변수들의 부울 연산 관계(Boolean operation relationship)로 정의한 부울 연산 표현일 수 있다.
도 2는 1비트 풀 애디션(1-bit Full Addition)의 입/출력 관계를 나타낸 도면이다.
도 2를 참조하면, x, y 및 c를 입력으로 받아서, 출력 S 및 NC를 생성하는 것을 알 수 있다. 이 때, 모든 입력 변수들과 출력 변수들은 '0' 또는 '1'로 표현될 수 있다.
결국 도 2에 도시된 테이블은 입력 비트 변수들 x, y 및 c를 출력 비트 변수 S 및 NC로 암호화하는 암호화 프로세스에 대응되는 것으로 볼 수 있고, 이와 같이 블록암호의 입/출력 관계를 테이블로 표현하는 방식이 테이블 기반 화이트-박스 암호화에 해당한다.
도 2에 도시된 예는 1비트 풀 애디션(1-bit Full Addition)을 나타낸 것이므로 x, y 및 c는 각각 입력 비트에 해당하고(c는 carry bit), S는 합(sum), NC는 넥스트 캐리(next carry)에 해당한다.
이 때, 필요한 저장공간은 40비트(5비트 * 8)이나, 컴퓨터에 저장되는 최소 단위를 8비트의 바이트(BYTE) 객체라고 하면 필요한 총저장공간은 훨씬 늘어나게 된다.
본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 방법은 이와 같이 블록암호 함수의 입/출력 관계를 테이블로 나타내지 않고, 출력 비트 변수별로 입력 비트들의 부울 함수 표현으로 나타낸다.
즉, 본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 방법은 임의의 함수를 부울 회로(Boolean circuit)로 나타낼 수 있다는 사실에 기반하여 해당 함수를 부울 함수(f:{0,1}* -> {0,1})를 사용하여 표현하게 된다.
블록암호 암/복호화 과정이 소프트웨어로 구현되는 경우, 블록암호 입/출력 관계는 결국 암호(복호)키에 해당하고 이를 부울 함수로 표현하여 디지털 형식으로 저장함으로써 암호(복호)키를 직접 메모리에 로드하는 것을 피할 수 있다.
출력 비트 변수 S는 하기 수학식 1과 같이 표현된다.
Figure 112011072704286-pat00001

출력 비트 변수 NC는 하기 수학식 2와 같이 표현된다.
Figure 112011072704286-pat00002
상기 수학식 1 및 수학식 2에서 x, y 및 z는 각각 입력 비트에 해당하고(z는 도 2의 테이블에서는 c로 표현됨), S는 합(sum)이고 NC는 넥스트 캐리(next carry)이다.
이와 같이, 블록암호 입/출력 관계가 부울 함수로 표현되고, 이 부울 함수가 컴퓨터 시스템에 디지털 형태로 저장되면 암호화 키를 직접 메모리에 로드할 필요 없이 암/복호화를 수행할 수 있다. 이 때, 디지털 형태는 출력 비트 변수들 각각을 입력 비트 변수들의 부울 연산 관계로 정의한 부울 연산 표현일 수 있다.
예를 들어, 출력 비트 변수들 각각에 대하여 출력 비트 변수 연산에 사용되는 입력 비트 변수들과 입력 비트 변수들 사이의 관계를 나타내는 연산자가 기설정된 메모리 공간에 저장됨으로써 부울 함수가 디지털 형태로 컴퓨터 시스템에 저장될 수 있다.
예를 들어, 상기 수학식 1 및 수학식 2에서 모두 9개의 바이트 변수 저장을 위해 72비트(8비트 * 9)의 저장 공간이 필요할 수 있다.
도 3은 4비트 바이너리 애디션(4-bit binary addition)의 입/출력 관계를 나타낸 도면이다.
도 3을 참조하면, x0, x1, x2, x3, y0, y1, y2 및 y3를 입력으로 받아서, 출력 S0, S1, S2 S3 및 NC를 생성하는 것을 알 수 있다. 이 때, 모든 입력 변수들과 출력 변수들은 '0' 또는 '1'로 표현될 수 있다.
결국, 도 3에 도시된 테이블은 입력 비트 변수들 x0, x1, x2, x3, y0, y1, y2, y3을 출력 비트 변수들 S0, S1, S2, S3 및 NC로 암호화하는 암호화 프로세스에 대응되는 것으로 볼 수 있고, 이와 같이 블록암호의 입/출력 관계를 테이블로 표현하는 방식이 테이블 기반 화이트-박스 암호화에 해당한다.
도 3에 도시된 예는 4비트 바이너리 애디션(4-bit binary addition)을 나타낸 것이므로 (x0, x1, x2, x3) 및 (y0, y1, y2, y3)는 각각 4비트 입력에 해당하고, (S0, S1, S2, S3)는 4비트 출력(합)에 해당하고, NC는 넥스트 캐리(next carry)에 해당한다.
이 때, 필요한 저장공간은 3328비트(13비트 * 256)이나, 컴퓨터에 저장되는 최소 단위를 8비트의 바이트(BYTE) 객체라고 하면 총저장공간은 훨씬 늘어나게 된다.
본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 방법은 이와 같이 블록암호 함수의 입/출력 관계를 테이블로 나타내지 않고, 출력 비트 변수별로 입력 비트들의 부울 함수 표현으로 나타낸다.
즉, 본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 방법은 임의의 함수를 부울 회로(Boolean circuit)로 나타낼 수 있다는 사실에 기반하여 해당 함수를 부울 함수(f:{0,1}* -> {0,1})를 사용하여 표현하게 된다.
블록암호 암/복호화 과정이 소프트웨어로 구현되는 경우, 블록암호 입/출력 관계는 결국 암호(복호)키에 해당하고 이를 부울 함수로 표현하여 디지털 형식으로 저장함으로써 암호(복호)키를 직접 메모리에 로드하는 것을 피할 수 있다.
출력 비트 변수 S0는 하기 수학식 3과 같이 표현된다.
Figure 112011072704286-pat00003
출력 비트 변수 S1은 하기 수학식 4와 같이 표현된다.
Figure 112011072704286-pat00004
(여기서, c1 = x0y0)
출력 비트 변수 S2는 하기 수학식 5와 같이 표현된다.
Figure 112011072704286-pat00005
(여기서, c2 = x1y1 + y1c1 + x1c1)
출력 비트 변수 S3은 하기 수학식 6과 같이 표현된다.
Figure 112011072704286-pat00006
(여기서, c3 = x2y2 + y2c2 + x2c2)
출력 비트 변수 NC는 하기 수학식 7과 같이 표현된다.
Figure 112011072704286-pat00007
(여기서, c3 = x2y2 + y2c2 + x2c2)
상기 수학식 3 내지 수학식 7에서 x0, x1, x2, x3, y0, y1, y2, y3는 각각 입력 비트에 해당하고, S0, S1, S2 및 S3는 4비트 출력(합)에 해당하고, NC는 넥스트 캐리(next carry)에 해당한다.
이와 같이, 블록암호 입/출력 관계가 부울 함수로 표현되고, 이 부울 함수가 컴퓨터 시스템에 디지털 형태로 저장되면 암호화 키를 직접 메모리에 로드할 필요 없이 암/복호화를 수행할 수 있다. 이 때, 디지털 형태는 출력 비트 변수들 각각을 입력 비트 변수들의 부울 연산 관계로 정의한 부울 연산 표현일 수 있다.
예를 들어, 출력 비트 변수들 각각에 대하여 출력 비트 변수 연산에 사용되는 입력 비트 변수들과 입력 비트 변수들 사이의 관계를 나타내는 연산자가 기설정된 메모리 공간에 저장됨으로써 부울 함수가 디지털 형태로 컴퓨터 시스템에 저장될 수 있다.
예를 들어, 상기 수학식 3 내지 수학식 7에서 모두 30개의 바이트 변수 저장을 위해 240비트(8비트 * 30)의 저장 공간이 필요할 수 있다.
테이블 기반 화이트-박스 암호화 기법은 블록암호 함수 한 라운드의 입출력 관계를 테이블로 표현한다. 이때 테이블 저장 공간의 효율적 사용을 위해 해당 라운드를 작은 크기의 다수 테이블(일부 입력 비트와 일부 출력 비트의 관계)로 먼저 표현한다.
이 때, 블록암호의 라운드의 입출력이 128비트 x 128비트라면 이것을 하나의 테이블로 나타내려면 128*128*2128-bit=211+128-Byte=2109-GB라는 엄청난 메모리 공간이 필요하다. 따라서, 필요한 저장공간을 줄이기 위해 테이블을 여러 개로 분할하여 8-bit x 8-bit 테이블 16개를 사용한다. 이와 같이 테이블을 여러 개로 분할하여 저장하면 하나의 테이블 크기는 8*8*28-bit가 되어 효율적인 관리가 가능하지만, 안전성이 훼손되는 문제가 나타난다. 즉, 테이블 사이즈가 작으므로 입/출력을 감시함으로써 테이블이 노출될 수 있는 위험이 있다.
본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 기술은 각각의 라운드에 대하여 모든 입력 비트와 모든 출력 비트 사이의 관계를 부울 함수로 표현함으로써 각각의 라운드의 일부 입력 비트와 일부 출력 비트 사이의 관계를 테이블화 함으로써 발생하는 테이블 기반 화이트-박스 암호화 기술의 한계를 극복할 수 있다. 즉, 테이블 기반 화이트-박스 암호화 기술이 1개의 라운드를 가로 및/또는 세로로 분할하는 방식이었다면, 부울 함수 기반 난독화 기술은 라운드별로 가로 또는 세로 분할 없이 입/출력 관계를 부울 함수로 표현하므로 안정성이 강화된다.
또한, 본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 기술은 입출력 영역의 크기를 줄이지 않고 대신 부울 함수로 나타낸 후, 블록암호 함수의 앞단 및 뒷단 중 어느 하나 이상에 적당한 전처리/후처리 함수를 만들어 합성하여 1개의 부울 함수 표현으로 나타낼 수 있다.
도 4는 전처리 함수(input permutation)의 입/출력 관계를 나타낸 도면이다.
도 4를 참조하면, 0번째 입력은 1번으로 출력되고, 1번째 입력은 2번으로 출력되고, 2번째 입력은 3번으로 출력되고, 3번째 입력은 0번으로 출력되는 것을 알 수 있다.
도 5는 후처리 함수(output permutation)의 입/출력 관계를 나타낸 도면이다.
도 5를 참조하면, 0번째 입력은 2번으로, 1번째 입력은 그대로, 2번째 입력은 3번으로, 3번째 입력은 0번으로 출력되는 것을 알 수 있다.
즉, 블록암호 함수의 전단 및/또는 후단에 하나 이상의 처리 함수(본 실시예에서는 전처리 함수 및 후처리 함수)를 부가할 수 있고, 이 처리 함수들을 블록암호 입/출력 관계에 해당하는 부울 함수와 합성함으로써 암호화 키를 안전하게 숨길 수 있다.
도 3을 통하여 설명한 4-비트 바이너리 덧셈함수
Figure 112011072704286-pat00008
, 도 4를 통하여 설명한 전처리 비트 치환(permutation) 함수
Figure 112011072704286-pat00009
및 도 5를 통하여 설명한 후처리 비트 치환(permutation) 함수
Figure 112011072704286-pat00010
의 합성을
Figure 112011072704286-pat00011
라 할 때 합성함수(제2 부울 함수)는 하기 수학식 8과 같이 정의될 수 있다.
Figure 112011072704286-pat00012

상기 수학식 8에 정의된 합성함수(제2 부울 함수)는 덧셈 결과로 S2S1S3S0을 출력한다. 이 때, 입력은 (x3x2x1x0), (y3y2y1y0)로 들어오더라도 도 4에 도시된 비트 치환 함수에 의해 내부에서 (x0x1x2x3), (y0y1y2y3)로 바뀌어 덧셈 연산이 수행된 후, 도 5에 도시된 비트 치환에 의해 출력은 다시 S2S1S3S0로 나오게 된다.
이 때, 출력 비트 변수 S0는 하기 수학식 9와 같이 표현된다.
Figure 112011072704286-pat00013

출력 비트 변수 S1은 하기 수학식 10과 같이 표현된다.
Figure 112011072704286-pat00014
(여기서, c1 = x0y0)
출력 비트 변수 S2는 하기 수학식 11과 같이 표현된다.
Figure 112011072704286-pat00015
(여기서, c2 = x1y1 + y1c1 + x1c1)
출력 비트 변수 S3은 하기 수학식 12와 같이 표현된다.
Figure 112011072704286-pat00016
(여기서, c3 = x2y2 + y2c2 + x2c2)
테이블 기반 화이트 박스 암호화 기술은 테이블 저장이 필요한 저장공간을 줄이기 위해 테이블을 작은 사이즈의 복수 개로 분할하여야 하고, 이 경우 암호학적으로 안전하지 않으므로 난독화 기술과 같은 별도의 추가 기술을 필요로 한다.
본 발명은 증명 가능한 화이트-박스 블록암호 기술을 개발하고 이를 이용하여 경량 공개키 암호를 설계할 수 있다.
본 발명의 일실시예에 따르면 블록암호를 라운드 별로 분할하고, 각 라운드 함수를 부울함수를 이용하여 표현하고 부울함수의 입력과 출력을 변화하는 인코딩/디코딩 함수를 합성하여 하나의 함수로 표현하는 방법을 사용한다. 추가로 블록암호의 전체 입력과 출력을 변화하는 별도의 인코딩/디코딩 함수(전처리/후처리 함수)도 고려할 수 있고, 부울함수의 효율성 개선을 위해 돈 케어 조건(Don't care condition)을 고려할 수 있다. 이상과 같이 설계된 블록암호의 암호화 모듈은 비밀키가 전혀 드러나지 않는 구조 이므로 공개키 암호의 암호화 기능을 대체할 수 있다.
도 4 및 도 5를 통하여 설명된 실시예에서 처리 함수는 전처리 함수 및 후처리 함수의 두 개인 경우를 예로 들었으나, 실시예에 따라 블록암호 함수의 앞단에 전처리 함수만 부가될 수도 있고, 블록암호 함수의 뒷단에 후처리 함수만 부가될 수도 있다.
도 6은 본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 장치를 나타낸 블록도이다.
도 6을 참조하면, 본 발명의 일실시예에 따른 블록암호 암/복호화 과정의 난독화 장치는 부울 함수 표현부(610), 함수 합성부(620) 및 암/복호화부(630)를 포함한다.
부울 함수 표현부(610)는 블록암호 함수의 입/출력 관계를 제1 부울 함수(Boolean function)로 표현한다.
함수 합성부(620)는 상기 블록암호 함수의 앞단 및 뒷단 중 어느 하나 이상에 부가될 하나 이상의 처리 함수를 상기 제1 부울 함수와 합성하여 제2 부울 함수를 생성한다.
이 때, 처리 함수는 상기 블록암호 함수의 앞단에 부가되는 전처리 함수 및 상기 블록암호 함수의 뒷단에 부가되는 후처리 함수의 두 개일 수 있다.
이 때, 상기 전처리 함수 및 후처리 함수는 각각 입력 비트의 순서를 바꾸어 출력하는 비트 치환(permutation) 함수일 수 있다.
암/복호화부(630)는 제2 부울 함수를 디지털 형태로 저장하고, 암/복호화가 필요한 경우 암/복호화 입력에 상기 제2 부울 함수를 적용하여 암호화 키를 드러내지 않고 암/복호화를 수행한다.
이 때, 상기 디지털 형태는 출력 비트 변수들 각각을 입력 비트 변수들의 부울 연산 관계(Boolean operation relationship)로 정의한 부울 연산 표현일 수 있다.
이 때, 블록암호 함수는 복수 개의 라운드들로 분할되고, 상기 블록암호 암/복호화 과정의 난독화 장치는 상기 라운드들마다 상기 난독화를 수행할 수 있다.
이상에서와 같이 본 발명에 따른 블록암호 암/복호화 과정의 난독화 방법 및 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
S110: 제1 부울 함수 표현단계
S120: 제2 부울 함수 생성단계
S130: 암/복호화 수행 단계

Claims (10)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 블록암호 함수의 입/출력 관계를 제1 부울 함수(Boolean function)로 표현하는 부울 함수 표현부;
    상기 블록암호 함수의 앞단 및 뒷단 중 어느 하나 이상에 부가될 하나 이상의 처리 함수를 상기 제1 부울 함수와 합성하여 제2 부울 함수를 생성하는 함수 합성부; 및
    상기 제2 부울 함수를 디지털 형태로 저장하고, 암/복호화가 필요한 경우 암/복호화 입력에 상기 제2 부울 함수를 적용하여 암호화 키를 드러내지 않고 상기 암/복호화를 수행하는 암/복호화부
    를 포함하는 것을 특징으로 하는 부울 함수 표현을 이용한 블록암호 암/복호화 과정의 난독화 장치.
  7. 청구항 6에 있어서,
    상기 하나 이상의 처리 함수는 상기 블록암호 함수의 앞단에 부가되는 전처리 함수 및 상기 블록암호 함수의 뒷단에 부가되는 후처리 함수인 것을 특징으로 하는 블록암호 암/복호화 과정의 난독화 장치.
  8. 청구항 7에 있어서,
    상기 블록암호 함수는 복수 개의 라운드들로 분할되고, 상기 블록암호 암/복호화 과정의 난독화 장치는 상기 라운드들마다 상기 난독화를 수행하는 것을 특징으로 하는 블록암호 암/복호화 과정의 난독화 장치.
  9. 청구항 8에 있어서,
    상기 전처리 함수 및 후처리 함수는 각각 입력 비트의 순서를 바꾸어 출력하는 비트 치환(permutation) 함수인 것을 특징으로 하는 블록암호 암/복호화 과정의 난독화 장치.
  10. 청구항 9에 있어서,
    상기 디지털 형태는 출력 비트 변수들 각각을 입력 비트 변수들의 부울 연산 관계(Boolean operation relationship)로 정의한 부울 연산 표현인 것을 특징으로 하는 블록암호 암/복호화 과정의 난독화 장치.
KR1020110094168A 2011-09-01 2011-09-19 부울 함수 표현을 이용한 블록암호 암/복호화 과정의 난독화 방법 및 이를 위한 장치 KR101281275B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20110088717 2011-09-01
KR1020110088717 2011-09-01

Publications (2)

Publication Number Publication Date
KR20130025308A KR20130025308A (ko) 2013-03-11
KR101281275B1 true KR101281275B1 (ko) 2013-07-03

Family

ID=48177045

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110094168A KR101281275B1 (ko) 2011-09-01 2011-09-19 부울 함수 표현을 이용한 블록암호 암/복호화 과정의 난독화 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR101281275B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980083221A (ko) * 1997-05-13 1998-12-05 윤종용 N-라운드 라운드 출력문 귀한 블록 암호화/복호화 방법
JP2003223098A (ja) 2002-01-29 2003-08-08 Sony Corp ブーリアン・マトリクスに基づく暗号化処理方法、および復号処理方法、並びにデータ通信システム
US7237097B2 (en) 2001-02-21 2007-06-26 Mips Technologies, Inc. Partial bitwise permutations
US20090245510A1 (en) 2008-03-25 2009-10-01 Mathieu Ciet Block cipher with security intrinsic aspects

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980083221A (ko) * 1997-05-13 1998-12-05 윤종용 N-라운드 라운드 출력문 귀한 블록 암호화/복호화 방법
US7237097B2 (en) 2001-02-21 2007-06-26 Mips Technologies, Inc. Partial bitwise permutations
JP2003223098A (ja) 2002-01-29 2003-08-08 Sony Corp ブーリアン・マトリクスに基づく暗号化処理方法、および復号処理方法、並びにデータ通信システム
US20090245510A1 (en) 2008-03-25 2009-10-01 Mathieu Ciet Block cipher with security intrinsic aspects

Also Published As

Publication number Publication date
KR20130025308A (ko) 2013-03-11

Similar Documents

Publication Publication Date Title
CA3049531C (en) Homomorphic white box system and method for using same
EP2924677B1 (en) Splitting s-boxes in a white-box implementation to resist attacks
CN110235409A (zh) 使用同态加密被保护的rsa签名或解密的方法
US20150215117A1 (en) White box encryption apparatus and method
CN105359450B (zh) 防篡改密码算法实现
US10277391B2 (en) Encryption device, encryption method, decryption device, and decryption method
US11436946B2 (en) Encryption device, encryption method, decryption device, and decryption method
CN105024803A (zh) 白箱实现中的行为指纹
US10305689B2 (en) Encryption apparatus, decryption apparatus, cryptography processing system, encryption method, decryption method, encryption program, and decryption program
US11063743B2 (en) Method of RSA signature of decryption protected using assymetric multiplicative splitting
CN108141352B (zh) 密码设备、方法、装置和计算机可读介质和编码设备、方法、装置和计算机可读介质
US8699702B2 (en) Securing cryptographic process keys using internal structures
CN111010266B (zh) 消息的加解密、读写方法、装置、计算机设备和存储介质
CN104396182A (zh) 加密数据的方法
KR20170097509A (ko) 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말
CN112054896A (zh) 白盒加密方法、装置、终端及存储介质
WO2015166701A1 (ja) 暗号化方法、プログラム、および、システム
EP2940917A1 (en) Behavioral fingerprint in a white-box implementation
EP3054620A1 (en) System and method for performing block cipher cryptography by implementing a mixer function that includes a substitution-box and a linear transformation using a lookup-table
KR101281275B1 (ko) 부울 함수 표현을 이용한 블록암호 암/복호화 과정의 난독화 방법 및 이를 위한 장치
CN110474967B (zh) 块链实验系统及方法
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
Yadav et al. Hybrid cryptography approach to secure the data in computing environment
JP2009037095A (ja) データスクランブル装置、データデスクランブル装置、データスクランブル方法、データデスクランブル方法およびプログラム
Singh et al. Parallel Chunk Encryption in Public Cloud Storage: Validating Data Privacy

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160524

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170404

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190604

Year of fee payment: 7