KR102506189B1 - 동형암호를 이용한 파일 암호화 방법 및 파일 복호화 방법 - Google Patents

동형암호를 이용한 파일 암호화 방법 및 파일 복호화 방법 Download PDF

Info

Publication number
KR102506189B1
KR102506189B1 KR1020220126738A KR20220126738A KR102506189B1 KR 102506189 B1 KR102506189 B1 KR 102506189B1 KR 1020220126738 A KR1020220126738 A KR 1020220126738A KR 20220126738 A KR20220126738 A KR 20220126738A KR 102506189 B1 KR102506189 B1 KR 102506189B1
Authority
KR
South Korea
Prior art keywords
file
encryption
encrypted
information
decryption
Prior art date
Application number
KR1020220126738A
Other languages
English (en)
Inventor
백종일
Original Assignee
주식회사 조은코디스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 조은코디스 filed Critical 주식회사 조은코디스
Priority to KR1020220126738A priority Critical patent/KR102506189B1/ko
Application granted granted Critical
Publication of KR102506189B1 publication Critical patent/KR102506189B1/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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

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

Abstract

본 명세서는 본 명세서는 종래 동형암호 및 파일암호가 가진 단점을 보완할 수 있는 파일 암호화 방법 및 파일 복호화 방법을 제공하는 것을 목적으로 한다. 본 명세서에 따른 파일 암호화 방법은 암호화 정보를 구성하는 부분에 동형암호를 사용하여, 파일 전체를 동형암호화하는 방법에 비해 암호화 시간을 단축할 수 있다. 또한, 본 명세서에 따른 파일 복호화 방법은 복호화권한여부를 판단할 때, 동형암호화된 암호화 정보를 동형암호를 이용하여 비교하므로, 전체를 복호화하지 않아서 기존 파일 암호가 가진 취약점을 보완할 수 있다.

Description

동형암호를 이용한 파일 암호화 방법 및 파일 복호화 방법{METHOD FOR FILE ENCRYPTION AND DECRYPTION USING HOMOMORPHIC ENCRYPTION}
본 발명은 파일 암호화 및 복호화에 관한 것이며, 보다 상세하게는 동형암호를 이용한 파일 암호화 및 복호화에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 명세서에 기재된 실시예에 대한 배경 정보를 제공할 뿐 반드시 종래 기술을 구성하는 것은 아니다.
데이터 보안을 위해 파일을 암호화하는 방법이 널리 사용되고 있다.
도 1은 암호화된 파일의 구조에 대한 참고도이다.
도 1을 참조하면, 암호화된 파일 본문 'EncFile', 암호화된 파일 헤더 'EncFIH(File Information Header)' 및 암호화 헤더 'EIH(Encryption Information Header)'를 확인할 수 있다. 여기서 암호화 헤더(EIH)에는 암호화를 누가 했는지, 파일에 대한 간략한 설명과 파일 복호화를 위한 정보를 평문으로 기록한다. 파일(파일 본문 및 파일 헤더)은 암호화된 상태로 보호되지만, 암호화 헤더 부분이 평문이므로, 암호화 헤더 부분은 인위적인 공격에 취약하다는 단점을 가지고 있다. 실제로 무료 헥스 에디터 프로그램인 "Hxd.exe" 프로그램으로 파일의 암호화 헤더 부분에 어떤 정보가 있는지 볼 수 있으며 이를 수정할 수 있으며, 심각한 경우에는 파일을 복호화 할 수 있는 키를 얻어낼 수 있다.
도 2는 헥스 에디터 프로그램을 통해 실제로 암호화가 적용된 파일을 확인한 예시도이다.
도 2를 참조하면, 암호화 헤더 부분의 어떠한 헥스값을 가지고 있는지 확인할 수 있다. 이 중에서 "유통요청자 ID"의 헥스 값인 <x75x00x73x00x65x00x72x00x30x00x32x00>을 실제 UTF-8 디코더로 값을 대입하여 변환시키면 <user02>로 디코딩할 수 있다.
이와 마찬가지로 파일의 크기, 소유 기업명 등 암호화 정보는 평문으로 구성되어 있으므로 당업자 수준에서 누구나 볼 수 있고, 인위적인 취약점 공격으로 헥스 값을 수정하여 권한이 없는 문서도 열 수 있는 문제가 발생할 수 있다.
Craig Gentry. A fully homomorphic encryption scheme. PhD thesis, Stanford University, 2009. crypto.stanford.edu/craig
본 명세서는 종래 동형암호 및 파일암호가 가진 단점을 보완할 수 있는 파일 암호화 방법 및 파일 복호화 방법을 제공하는 것을 목적으로 한다.
본 명세서는 상기 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 명세서에 따른 파일 암호화 방법은, (a) 프로세서가 동형암호키 및 상기 동형암호키로 암호화된 복호화권한정보를 저장하는 단계; (b) 프로세서가 파일암호키를 발급하고, 암호화 대상 파일의 암호화 정보를 구성하는 단계; (c) 프로세서가 상기 암호화 정보를 상기 동형암호키를 이용하여 동형암호화하는 단계; 및 (d) 프로세서가 상기 암호화 대상 파일의 평문을 상기 파일암호키를 이용하여 암호화하는 단계;를 포함할 수 있다.
본 명세서에 따른 파일 암호화 방법은, 상기 (a) 단계 이전에, 프로세서가 암호화 지원 서버로부터 복호화권한정보 및 동형암호키를 발급 받는 동형암호키발급단계; 및 프로세서가 상기 복호화권한정보를 상기 동형암호키를 이용하여 동형암호화하는 복호화권한정보암호화단계;를 더 포함할 수 있다.
본 명세서에 따른 파일 암호화 방법은, 상기 동형암호키발급단계 이전에,
프로세서가 상기 암호화 지원 서버에게 클라이언트 고유 식별값을 전송하는 식별값전송단계;를 더 포함할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 복호화권한정보는 상기 고유 식별값에 따른 복호화 단말기 정보를 포함하는 정보일 수 있다.
본 명세서의 일 실시예에 따르면, 상기 암호화 대상 파일의 암호화 정보는 암호식별자, 상기 암호화 대상 파일의 암호화 이전 파일 해쉬값, 암호화된 파일암호키 중 적어도 어느 하나의 정보를 포함할 수 있다.
상술한 과제를 해결하기 위한 본 명세서에 따른 파일 복호화 방법은, (a) 프로세서가 동형암호키로 암호화된 복호화권한정보를 저장하는 단계; (b) 프로세서가 암호화된 파일에서 동형암호화된 암호화 정보와 상기 복호화권한정보를 비교 연산하여 복호화권한 여부를 판단하는 단계; (c) 프로세서가 상기 (b) 단계에서 복호화권한이 존재할 경우, 상기 동형암호화된 암호화 정보 내 암호화된 파일암호키를 상기 동형암호키를 이용하여 복호화하는 단계; 및 (d) 프로세서가 상기 암호화된 파일을 복호화된 파일암호키를 이용하여 복호화하는 단계;를 포함할 수 있다.
본 명세서에 따른 파일 복호화 방법의 상기 (c) 단계는, 상기 (b) 단계에서 복호화권한이 존재할 경우, 프로세서가 암호화 지원 서버로부터 동형암호키를 발급 받는 동형암호키발급단계;를 더 포함할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 동형암호화된 암호화 정보는 암호화된 파일의 암호화 이전 파일 해쉬값을 포함할 수 있다. 이 경우, 본 명세서에 따른 파일 복호화 방법은, (e) 프로세서가 복호화된 파일의 해쉬값과 상기 암호화 이전 파일 해쉬값을 비교하여 복호화된 파일의 손상 여부를 판단하는 단계;를 더 포함할 수 있다.
본 명세서에 따른 파일 암호화 방법은, 컴퓨터에서 파일 암호화 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다.
본 명세서에 따른 파일 복호화 방법은, 컴퓨터에서 파일 복호화 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 명세서의 일 측면에 따르면, 파일을 암호화할 때 필수적인 정보만 동형암호를 적용하여 할 수 있는 빠른 암호화가 가능하다.
본 명세서의 다른 측면에 따르면, 파일을 복호화할 때 복호화 권한 여부를 빠르게 판단할 수 있다.
본 명세서의 또 다른 측면에 따르면, 민감한 정보를 노출하지 않으면서 빠른 비교 속도로 파일을 비교할 수 있는바, 서버 개인정보 보안 솔루션과 비정형데이터 암호화 솔루션과 같은 분야에 활용할 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 암호화된 파일의 구조에 대한 참고도이다.
도 2는 헥스 에디터 프로그램을 통해 실제로 암호화가 적용된 파일을 확인한 예시도이다.
도 3은 동형암호별 슬롯 크기 증가에 따른 암호화 시간에 대한 참고도이다.
도 4는 본 명세서에 따른 파일 암호화 방법의 개략적인 흐름도이다.
도 5는 본 명세서의 일 실시예에 따른 동형암호키 획득에 대한 참고도이다.
도 6은 본 명세서에 따른 파일 복호화 방법의 개략적인 흐름도이다.
본 명세서에 개시된 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 명세서가 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 명세서의 개시가 완전하도록 하고, 본 명세서가 속하는 기술 분야의 통상의 기술자(이하 '당업자')에게 본 명세서의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 명세서의 권리 범위는 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 명세서의 권리 범위를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 명세서가 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
앞서 [발명의 배경이 되는 기술]에서 살펴본 것과 같이, 암호화 정보를 평문으로 노출하는 단점을 해결하기 위한 방법 중 하나로 동형암호가 있다. 동형암호는 암호화된 데이터를 복호화하지 않고 암호문 상태 그대로의 연산을 가능하게 하는 암호 시스템이다.
동형암호의 개념이 처음 제시된 것은 1978년 Rivest, Adleman, Dertouzou에 의해서였다. 이들이 제안한 'Privacy Homomorphism'의 개념은 RSA 암호 시스템을 변형한 것으로 암호문 간의 연산을 보존한다는 개념을 처음 제시했다. 하지만 이 기법은 두 암호문간의 연산으로 비밀키가 노출된다는 치명적인 안전성의 문제가 발생해 실제로 사용되지는 못했다. 이후 많은 동형암호 기법이 소개되었지만, 가장 대중적으로 사용된 것은 1999년 Pailier가 제시했던 Pailier Cryptosystem 이었다. Pailier cryptosystem은 부분동형암호(Somewhat Homomorphic Encryption)로 분류되는데, 이는 이 암호 시스템이 암호문 간의 덧셈만을 지원했기 때문이다. Pailier 이후에 암호문 간의 곱셈을 지원하는 많은 암호 시스템이 제시되었지만, 전부 곱셈의 횟수가 제한된 부분동형암호였다. 이는 동형암호가 평문을 암호화할 때 난수화된 노이즈를 사용하기 때문인데, 이 노이즈는 연산을 수행할 때마다 증폭된다. 노이즈가 누적되어 일정 수준을 넘게 되면 암호문을 정상적으로 복호화할 수 없게 된다.
이러한 노이즈 증폭의 문제를 처음 해결한 것이 바로 2009년 Gentry의 완전동형암호였다. Gentry는 축적된 노이즈를 제거하는 부트스트래핑(bootstrapping) 알고리즘을 제시하여 연산 횟수의 제한을 없앴다. 하지만 이 Gentry의 기법은 평문을 비트별로 각자 암호화해야 했는데, 암호문의 용량이 너무 크기 때문에 메모리에 큰 부담이었다. 또 bootstrapping 연산은 굉장히 복잡한 알고리즘으로 수행됐기 때문에 한 비트의 bootstrapping에 수십 분의 시간이 소요되는 문제점이 있다.
동형암호에는 다양한 종류들이 존재한다. 그 중에서 가장 경쟁력 있는 BGV(Brakerski, Gentry, and. Vaikuntanathan), BFV(Brakerski, Fan, and Vercauteren),. CKKS(Cheon, Kim, Kim and Song)의 특징을 설명하면 다음과 같다. 모든 동형암호는 반복 연산을 수행하면 노이즈가 발생하여 연산 횟수에 제한이 있다는 단점이 있다. 이를 극복하기 위해 Modulus와 Key Changing, Bootstrapping이라는 기법을 이용하여 이론상, 제한 없이 연산을 할 수 있는 완전 동형암호가 개발된 것이다. 그러나 위에서 말한 기법은 연산 시간이 굉장히 오래 걸린다는 단점이 있다.
BFV는 하위 비트에 노이즈가 생성되는 개념이다. 그래서 암호문에 대해 반복 연산을 수행하면 노이즈의 사이즈가 점점 커져서 메시지 값을 침범하게 되는 단점이 있다. 그래서 Key changing과 Bootstrapping을 사용하여 연산 횟수를 증가시킨다. CKKS는 한국 서울대 천정희 교수가 개발한 실수에 대해 근사치를 이용한 완전 동형 암호 계산 방법이다. BFV와 같이 하위 비트에 노이즈를 관리하므로 연산을 반복하면 노이즈 값이 메시지 값을 침범하는 오류가 발생합니다. 그러나 CKKS는 근사치를 이용하여 계산하므로 노이즈 값이 정밀하게 관리되는 BFV나 BGV와 다르다. 리스케일링(Rescaling)이라는 연산을 추가로 고안하여 암호문의 근사치를 계산할 수 있고, 이는 암호문의 사이즈를 낮출 수 있어서 더욱 많은 연산을 빠르게 수행할 수 있다. BGV는 상위 비트에 노이즈를 관리하므로 반복된 연산에도 노이즈가 메시지를 침범하지 않는다. 그러나 Modulus가 연산 과정마다 축소가 되므로 거듭되는 연산에 한계가 있다는 점은 같다. 그래서 BGV에는 Modulus Switching이라는 부가적인 연산을 통해 연산 횟수를 증가시키는 방법이 있다. 아래 표 1은 암호화하고자 하는 슬롯 개수에 따른 암호화 시간을 동형암호별로 분석한 자료이다.
<표 1>
Figure 112022104531697-pat00001
poly modulus degree가 커질수록 암호문의 길이가 길어지고, 노이즈를 담을 수 있는 사이즈도 커진다. 그러나 표 1에 나타나듯이 암호화하는 데 걸리는 시간이 급격하게 증가하게 된다. 권장값은 1024, 2048, 4096, 8192, 16384, 32768이지만 이 범위를 벗어나는 것도 가능하다. 세 종류의 동형암호 BGV, BFV, CKKS 모두 제한 없이 연산을 할 수 있지만, 속도가 느리다는 단점을 가지고 있다.
도 3은 동형암호별 슬롯 크기 증가에 따른 암호화 시간에 대한 참고도이다.
도 3을 참조하면, 슬롯의 수가 암호문의 길이를 의미하고, 이러한 암호문의 길이가 암호화 시간에 대해 비례하지 않고 기하급수적으로 늘어나는 것을 확인할 수 있다. 따라서, 암호문의 길이가 커질수록 완전동형암호에 대한 효율은 급격하게 떨어지게 된다.
동형암호를 이용하면 클라우드에서 사용자의 데이터를 복호화하지 않고도 데이터를 처리할 수 있지만, 문제는 동형암호가 실제 데이터에 적용되기에는 큰 한계가 존재한다는 것이다. 즉, 암호화 정보를 평문으로 노출하지 않기 위해서 동형암호를 적용하지만, 동형암호는 암호화 속도가 느리다는 단점이 존재한다. 본 출원인은 이러한 단점을 해결하고자 본 명세서에 따른 파일 암호화 방법 및 파일 복호화 방법을 발명하게 되었다. 본 명세서에 따른 파일 암호화 방법 및 파일 복호화 방법에 대해서 간략하게 설명하자면, 파일을 암호화 및 복호화할 때 동형암호를 적용할 수 있는 필수적인 정보만 추출하고, 복호화 단말기 정보를 서버에 사전에 요청하여 암호화하는 것이다.
이하, 첨부된 도면을 참조하여 본 명세서에 따른 파일 암호화 방법 및 파일 복호화 방법을 보다 자세히 설명하겠다. 한편, 본 명세서에 따른 파일 암호화 방법 및 파일 복호화 방법은 이하에서 설명될 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다. 이때, 컴퓨터프로그램은 메모리 장치에 저장되고, 프로세서에 의해 실행될 수 있다. 또한, 이하에서 설명될 다양한 로직을 실행하기 위해 본 발명이 속한 기술분야에 알려진 마이크로프로세서, ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로, 레지스터, 통신 모뎀, 데이터 처리 장치 등을 포함할 수 있다.
도 4는 본 명세서에 따른 파일 암호화 방법의 개략적인 흐름도이다.
먼저 단계 S100에서 프로세서는 동형암호키 및 상기 동형암호키로 암호화된 복호화권한정보를 저장할 수 있다. 상기 동형암호키 및 상기 동형암호키로 암호화된 복호화권한정보는 다양한 방법으로 메모리에 저장될 수 있다.
본 명세서의 일 실시예에 따르면, 상기 동형암호키 및 상기 동형암호키로 암호화된 복호화권한정보는 외부의 서버로부터 수신할 수 있다. 본 명세서의 다른 실시예에 따르면, 상기 동형암호키와 복호화권한정보를 각각 수신하고, 프로세서는 복호화권한정보를 동형암호키로 암호화할 수 있다.
도 5는 본 명세서의 일 실시예에 따른 동형암호키 획득에 대한 참고도이다.
도 5를 참조하면, 외부 서버로서 '암호화 지원 서버'를 확인할 수 있다. 상기 암호화 지원 서버는 본 명세서에 따른 파일 암호화 방법을 실행하는 프로세서와 다른 별도의 데이터 처리 주체를 나타낸 것이다. 상기 암호화 지원 서버는 본 명세서에 따른 파일 암호화 방법을 실행하는데 필요한 복호화권한정보 및 동형암호키를 제공하는 역할을 할 수 있다.
한편, 상기 암호화 지원 서버는 요청자에 따라 복호화권한정보 및 동형암호키를 제공할 수 있다. 먼저, 프로세서는 상기 암호화 지원 서버에게 요청자 정보인 고유 식별값을 전송할 수 있다. 다음으로, 프로세서는 암호화 지원 서버로부터 복호화권한정보 및 동형암호키를 발급 받을 수 있다. 이때, 상기 복호화권한정보는 상기 고유 식별값에 따른 복호화 단말기 정보를 포함할 수 있다. 다음으로, 프로세서는 상기 복호화권한정보를 상기 동형암호키를 이용하여 동형암호화할 수 있다.
다시 도 4를 참조하면, 단계 S110에서 프로세서는 파일암호키를 발급하고, 암호화 대상 파일의 암호화 정보를 구성할 수 있다. 이때, 상기 파일암호키는 앞서 언급된 동형암호화키와 다른 암호키로서, 파일의 평문을 암호화하는데 사용되는 암호키이며, 대칭 암호화키일 수 있다. 상기 암호화 정보는 암호화된 파일의 헤더에 포함되는 정보로서, 상기 암호화 대상 파일의 암호화 정보는 암호식별자, 상기 암호화 대상 파일의 암호화 이전 파일 해쉬값, 암호화된 파일암호키, 파일 생성자, 문서 등급, 문서에 대한 보호 정책 등 다양한 정보가 포함될 수 있다.
다음 단계 S120에서 프로세서는 상기 암호화 정보를 상기 동형암호키를 이용하여 동형암호화할 수 있다. 그리고 다음 단계 S130에서 프로세서는 상기 암호화 대상 파일의 평문을 상기 파일암호키를 이용하여 암호화할 수 있다. 즉, 암호화된 파일의 헤더부분은 동형암호키로 암호화되어 있고, 파일 평문은 파일암호키로 암호화될 수 있다. 이를 통해, 종래 동형암호화가 많은 시간을 소요하는 것에 비해, 파일의 헤더부분만 동형암호화를 통해 암호화에 소요되는 시간을 단축시킬 수 있다.
다음으로 본 명세서에 따른 파일 복호화 방법을 설명하겠다.
도 6은 본 명세서에 따른 파일 복호화 방법의 개략적인 흐름도이다.
단계 S200에서 프로세서는 동형암호키로 암호화된 복호화권한정보를 저장할 수 있다. 이때, 상기 복호화권한정보는 본 명세서에 따른 파일 암호화 방법을 통해 암호화된 특정 파일의 복호화를 요청한 단말기를 통해 수신할 수 있다.
다음 단계 S210에서, 프로세서는 암호화된 파일에서 동형암호화된 암호화 정보와 상기 복호화권한정보를 비교 연산하여 복호화권한 여부를 판단할 수 있다. 앞서 설명하였듯이, 동형암호는 복호화를 거치지 않고 비교 연산이 가능하기 때문에, 이 단계에서 동형암호키가 필요하지 않다. 만약, 복호화권한이 없는 경우, 즉 암호화된 파일 내 암호화 정보에 포함된 복호화권한정보와 다른 경우 복호화 프로세스는 종료할 수 있다. 반면, 복호화권한이 존재할 경우(단계 S210의 'YES'), 프로세서는 상기 동형암호화된 암호화 정보 내 암호화된 파일암호키를 상기 동형암호키를 이용하여 복호화할 수 있다.
상기 복호화에 필요한 동형암호키는 미리 저장되어 있을 수도 있고, 복호화권한이 확인된 이후 획득할 수도 있다. 본 명세서의 일 실시예에 따르면, 단계 S220에서 복호화권한이 존재할 경우, 프로세서는 암호화 지원 서버로부터 동형암호키를 발급 받을 수 있다. 다음 단계 S230에서, 프로세서는 상기 암호화된 파일을 복호화된 파일암호키를 이용하여 복호화할 수 있다.
한편, 상기 동형암호화된 암호화 정보는 암호화된 파일의 암호화 이전 파일 해쉬값을 포함할 수 있다. 이 경우, 프로세서는 복호화된 파일의 해쉬값과 상기 암호화 이전 파일 해쉬값을 비교하여 복호화된 파일의 손상 여부를 판단할 수도 있다.
상술한 바와 같이, 본 명세서에 따른 파일 암호화 방법 및 파일 복호화 방법은 암호 정보를 구성하고 있는 요소별로 비교가 가능하다. 즉, 복호화권한정보가 동형암호로 암호화가 되어 있어서, 권한존재여부를 판단하기 위해 복호화할 필요 없이 즉각적인 비교 연산이 가능하다. 이를 통해 기존 암호의 취약점을 보완하면서, 동시에 동형암호의 단점인 시간적인 측면에서 복호화 과정이 생략되어 있으므로 경제적이다.
이에 대한 효과를 보다 구체적으로 비교하기 위해 다음과 같은 실험을 실시하였다.
아래 표 2는 기존 동형암호, 기존 파일암호와 본 명세서에 따른 파일 암호화/복호화 방법을 비교한 내용이다.
<표 2>
Figure 112022104531697-pat00002
표 2에 따르면 복호화 정보 암호화 시간은 기존 동형암호 시스템을 적용했을 시, 0.512ms가 소요되는데, 본 명세서에 따른 파일 암호화 방법은 복호화 정보를 사전에 동형암호화하기 때문에 복호화 시점에 암호화를 하지 않아서 시간이 소요되지 않는다. 비교 정보를 복호화하는 것은 동형암호를 사용하기 이전에 비교하기 위해서 복호화하는 과정이다. 이는 동형암호를 사용하면 불필요한 과정이다. 이후 권한을 비교하는 속도는 동형암호화된 데이터 연산 속도가 일반 연산 속도보다 오래 걸리기 때문에 기존의 파일 암호화 시스템에서보다 본 명세서에 따른 파일 복호화 방법이 더 느린 것을 볼 수 있다. 그리고 기존 동형 암호 시스템은 복호화권한정보 전체를 동형암호화하였으므로 연산 시간이 더 소요된다. 기존의 파일 암호화 시스템에서는 평문으로 암호화 정보가 누출되는 문제점이 존재했다. 그래서 권한 변경, 암호화 헤더 변경 공격 등에 취약점을 보였는데, 이는 동형암호를 적용함으로써 암호화되지 않은 평문으로 누출되는 일을 방지할 수 있고, 취약점을 해소할 수 있었다.
위와 같이 본 명세서에 따른 파일 암호화 방법 및 파일 복호화 방법으로 취약점을 해소하고 총 소요 시간에 대해 약 24.86% 효율을 보였다. 결과적으로 더 높은 효율의 시스템을 제안할 수 있었고, 추후 서버 개인정보 보안 솔루션이나 비정형데이터의 암호화 솔루션에서 특히 강점을 가질 수 있다. 서버 측 개인정보 보안은 개인정보를 다루면서 실제 개인정보가 누출되는 것이 아니라 동형암호로 암호화된 상태에서 개인정보가 담긴 문서를 관리할 수 있다는 강점이 있고, 실제 개인정보 데이터를 확인하기 위해서는 복호화할 수 있는 권한을 가진 사용자를 신속하게 확인할 수 있기 때문이다. 게다가 암호화된 상태로 연산할 수 있으므로 개인정보가 실시간으로 몇 개 포함하고 있는지 파일의 헤더 부분에 동형암호로 기록할 수 있다. 비정형데이터는 정형화되어 있지 않은 데이터로써, 데이터의 크기가 정해져 있지 않다는 특징을 가지고 있다. 그래서 파일 암호화 정보 부분에 파일에 대한 크기 등 여러 암호화 정보 요소를 추가하여 이를 동형암호를 이용해 보호하면, 안전하게 비정형데이터에 대한 암/복호화가 가능할 것이다.
상기 전술한 컴퓨터프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C/C++, C#, JAVA, Python, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.
이상, 첨부된 도면을 참조로 하여 본 명세서의 실시예를 설명하였지만, 본 명세서가 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.

Claims (10)

  1. (a) 프로세서가 암호화 지원 서버에게 클라이언트 고유 식별값을 전송하는 식별값전송단계;
    (b) 프로세서가 상기 암호화 지원 서버로부터 상기 고유 식별값에 따른 복호화 단말기 정보인 복호화권한정보 및 동형암호키를 발급 받는 동형암호키발급단계;
    (c) 프로세서가 상기 복호화권한정보를 상기 동형암호키를 이용하여 동형암호화하는 복호화권한정보암호화단계;
    (d) 프로세서가 동형암호키 및 상기 동형암호키로 암호화된 복호화권한정보를 저장하는 단계;
    (e) 프로세서가 파일암호키를 발급하고, 암호화 대상 파일의 암호화 정보를 구성하는 단계;
    (f) 프로세서가 상기 암호화 정보를 상기 동형암호키를 이용하여 동형암호화하는 단계; 및
    (g) 프로세서가 상기 암호화 대상 파일의 평문을 상기 파일암호키를 이용하여 암호화하는 단계;를 포함하는 파일 암호화 방법.
  2. 청구항 1에 있어서,
    상기 암호화 대상 파일의 암호화 정보는 암호식별자, 상기 암호화 대상 파일의 암호화 이전 파일 해쉬값, 암호화된 파일암호키 중 적어도 어느 하나의 정보를 포함하는 것을 특징으로 하는 파일 암호화 방법.
  3. 컴퓨터에서 청구항 1 또는 청구항 2에 따른 파일 암호화 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램.
  4. (a) 프로세서가 동형암호키로 암호화된 복호화권한정보를 저장하는 단계;
    (b) 프로세서가 암호화된 파일에서 동형암호화된 암호화 정보와 상기 복호화권한정보를 비교 연산하여 복호화권한 여부를 판단하는 단계;
    (c) 상기 (b) 단계에서 복호화권한이 존재할 경우, 프로세서가 암호화 지원 서버로부터 동형암호키를 발급 받는 동형암호키발급단계
    (d) 상기 동형암호화된 암호화 정보 내 암호화된 파일암호키를 상기 동형암호키를 이용하여 복호화하는 단계; 및
    (e) 프로세서가 상기 암호화된 파일을 복호화된 파일암호키를 이용하여 복호화하는 단계;를 포함하는 파일 복호화 방법.
  5. 청구항 4에 있어서,
    상기 동형암호화된 암호화 정보는 암호화된 파일의 암호화 이전 파일 해쉬값을 포함하고,
    (f) 프로세서가 복호화된 파일의 해쉬값과 상기 암호화 이전 파일 해쉬값을 비교하여 복호화된 파일의 손상 여부를 판단하는 단계;를 더 포함하는 파일 복호화 방법.
  6. 컴퓨터에서 청구항 4 또는 청구항 5에 따른 파일 복호화 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
KR1020220126738A 2022-10-05 2022-10-05 동형암호를 이용한 파일 암호화 방법 및 파일 복호화 방법 KR102506189B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220126738A KR102506189B1 (ko) 2022-10-05 2022-10-05 동형암호를 이용한 파일 암호화 방법 및 파일 복호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220126738A KR102506189B1 (ko) 2022-10-05 2022-10-05 동형암호를 이용한 파일 암호화 방법 및 파일 복호화 방법

Publications (1)

Publication Number Publication Date
KR102506189B1 true KR102506189B1 (ko) 2023-03-07

Family

ID=85513725

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220126738A KR102506189B1 (ko) 2022-10-05 2022-10-05 동형암호를 이용한 파일 암호화 방법 및 파일 복호화 방법

Country Status (1)

Country Link
KR (1) KR102506189B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000022006A (ko) * 1998-09-24 2000-04-25 윤종용 디지털 컨텐트의 암호화/해독화 장치 및 그 방법
KR101621931B1 (ko) * 2014-12-19 2016-05-17 한국인터넷진흥원 스마트 그리드에서의 전력정보 송수신 시스템
KR20190079947A (ko) * 2017-12-28 2019-07-08 (재)대구포교성베네딕도수녀회 의료 데이터 전송 인증 서버, 의료 데이터 전송 단말 및 의료 데이터 수신 단말
KR20200002410A (ko) * 2018-06-29 2020-01-08 주식회사 케이티 동형 암호화 및 블록체인 기반으로 보험금을 지급하기 위한 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000022006A (ko) * 1998-09-24 2000-04-25 윤종용 디지털 컨텐트의 암호화/해독화 장치 및 그 방법
KR101621931B1 (ko) * 2014-12-19 2016-05-17 한국인터넷진흥원 스마트 그리드에서의 전력정보 송수신 시스템
KR20190079947A (ko) * 2017-12-28 2019-07-08 (재)대구포교성베네딕도수녀회 의료 데이터 전송 인증 서버, 의료 데이터 전송 단말 및 의료 데이터 수신 단말
KR20200002410A (ko) * 2018-06-29 2020-01-08 주식회사 케이티 동형 암호화 및 블록체인 기반으로 보험금을 지급하기 위한 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Craig Gentry. A fully homomorphic encryption scheme. PhD thesis, Stanford University, 2009. crypto.stanford.edu/craig

Similar Documents

Publication Publication Date Title
US20200195417A1 (en) Cryptography circuit particularly protected against information-leak observation attacks by the ciphering thereof
US9240883B2 (en) Multi-key cryptography for encrypting file system acceleration
CN110868287B (zh) 一种认证加密密文编码方法、系统、装置及存储介质
US8880879B2 (en) Accelerated cryptography with an encryption attribute
US20060265595A1 (en) Cascading key encryption
US20080084996A1 (en) Authenticated encryption method and apparatus
US20030138105A1 (en) Storing keys in a cryptology device
CN111835774B (zh) 数据处理方法、装置、设备及存储介质
US10630462B2 (en) Using white-box in a leakage-resilient primitive
KR20080025121A (ko) 비대칭 개인키로부터 비밀키 생성
Agarwal et al. A survey on cloud computing security issues and cryptographic techniques
CN106100823B (zh) 保护密码装置
CN115580396A (zh) 匿踪查询系统及匿踪查询方法
US9025765B2 (en) Data security
KR20140047291A (ko) 세션상태정보의 암호화 및 복호화 방법
US8769301B2 (en) Product authentication based upon a hyperelliptic curve equation and a curve pairing function
KR102506189B1 (ko) 동형암호를 이용한 파일 암호화 방법 및 파일 복호화 방법
US20210312018A1 (en) Anti cloning for white box protected data
CN111260365A (zh) 一种保护交易安全性的加密方法和装置
KR101290818B1 (ko) 보안 패치 시스템
Shaik et al. A Compatible Hexadecimal Encryption-Booster Algorithm for Augmenting Security in the Advanced Encryption Standard
CN117811734B (zh) 业务源码加密存储与评估与鉴权方法
Das et al. Data privacy preservation using aes-gcm encryption in Heroku cloud
Hemmert et al. How to Backdoor (Classic) McEliece and How to Guard Against Backdoors
Onyesolu et al. On Information Security using a Hybrid Cryptographic Model

Legal Events

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