KR102083415B1 - 암호화 파일에 대한 복호화 장치 및 방법 - Google Patents

암호화 파일에 대한 복호화 장치 및 방법 Download PDF

Info

Publication number
KR102083415B1
KR102083415B1 KR1020180089246A KR20180089246A KR102083415B1 KR 102083415 B1 KR102083415 B1 KR 102083415B1 KR 1020180089246 A KR1020180089246 A KR 1020180089246A KR 20180089246 A KR20180089246 A KR 20180089246A KR 102083415 B1 KR102083415 B1 KR 102083415B1
Authority
KR
South Korea
Prior art keywords
identification code
user identification
encryption
file
open user
Prior art date
Application number
KR1020180089246A
Other languages
English (en)
Other versions
KR20200013963A (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 KR1020180089246A priority Critical patent/KR102083415B1/ko
Publication of KR20200013963A publication Critical patent/KR20200013963A/ko
Application granted granted Critical
Publication of KR102083415B1 publication Critical patent/KR102083415B1/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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 암호화 파일 기반의 복호화 장치 및 방법에 관한 것으로, 암호화 파일에서 암호화되지 않은 메타데이터에 있는 오픈 사용자 식별코드를 검출하는 오픈 사용자 식별코드 검출부, 상기 오픈 사용자 식별코드를 기초로 암호화 파일 생성자에 고유한 비오픈 사용자 식별코드를 결정하는 비오픈 사용자 식별코드 결정부 및 상기 비오픈 사용자 식별코드를 기초로 암호화 키를 생성하고 상기 암호화 키를 기초로 상기 암호화 파일을 해독하여 비암호화 파일을 생성하는 암호화 파일 처리부를 포함한다. 따라서, 본 발명은 암호화에 사용된 중요 정보들을 복구하고 자동으로 암호화 키를 생성하여 암호화 파일을 복호화할 수 있다.

Description

암호화 파일에 대한 복호화 장치 및 방법{APPARATUS AND METHOD FOR DECRYPTING ENCRYPTED FILES}
본 발명은 암호화 파일 기반의 복호화 기술에 관한 것으로, 보다 상세하게는 암호화에 사용된 중요 정보들을 복구하고 자동으로 암호화 키를 생성하여 암호화 파일을 복호화할 수 있는 암호화 파일 기반의 복호화 장치 및 방법에 관한 것이다.
모바일 기기는 통화기록, 문자 메시지, 메모, 스케줄 등 사용자의 다양한 사용 흔적을 가지고 있다. 사용자의 사용 흔적은 사진 및 동영상 등의 미디어 데이터를 포함할 수 있고, 사생활 침해나 기업 정보 유출 등 여러 사건을 해결하기 위한 증거로서 사용될 수 있다. 따라서, 모바일 기기에 저장된 미디어 데이터의 획득은 사건 해결에 있어서 매우 중요한 작업에 해당할 수 있다. 미디어 데이터는 다양한 프로그램에서 제공하는 잠금 기능을 이용하여 암호화시킬 수 있기 때문에 원활한 데이터 수집을 위해서는 암호화되어 있는 잠금 파일을 복호화하여 원본 데이터를 획득할 수 있는 기술이 필요하다.
한국등록특허 제10-0703345(2007.03.28)호
본 발명의 일 실시예는 암호화에 사용된 중요 정보들을 복구하고 자동으로 암호화 키를 생성하여 암호화 파일을 복호화할 수 있는 암호화 파일 기반의 복호화 장치 및 방법을 제공하고자 한다.
본 발명의 일 실시예는 암호화 파일의 헤더 분석을 통해 헤더에 은닉된 비오픈 사용자 식별코드를 획득하고 검증할 수 있는 암호화 파일 기반의 복호화 장치 및 방법을 제공하고자 한다.
본 발명의 일 실시예는 비오픈 사용자 식별코드를 기초로 해시 연산 및 XOR 연산의 반복 수행과 패딩 연산 및 해시 연산의 연속 수행을 통해 암호화 과정에서 사용된 암호화 키를 생성할 수 있는 암호화 파일 기반의 복호화 장치 및 방법을 제공하고자 한다.
실시예들 중에서, 암호화 파일 기반의 복호화 장치는 암호화 파일에서 암호화되지 않은 메타데이터에 있는 오픈 사용자 식별코드를 검출하는 오픈 사용자 식별코드 검출부, 상기 오픈 사용자 식별코드를 기초로 암호화 파일 생성자에 고유한 비오픈 사용자 식별코드를 결정하는 비오픈 사용자 식별코드 결정부 및 상기 비오픈 사용자 식별코드를 기초로 암호화 키를 생성하고 상기 암호화 키를 기초로 상기 암호화 파일을 해독하여 비암호화 파일을 생성하는 암호화 파일 처리부를 포함한다.
상기 오픈 사용자 식별코드 검출부는 상기 암호화 파일로부터 헤더(header)를 추출하고 상기 헤더의 구조를 기초로 특정 위치에 존재하는 상기 오픈 사용자 식별코드를 검출할 수 있다.
상기 비오픈 사용자 식별코드 결정부는 상기 오픈 사용자 식별코드를 디코딩(decoding)하고 식별코드 결정 상수와의 XOR 연산을 통해 상기 비오픈 사용자 식별코드를 결정할 수 있다.
상기 암호화 파일 처리부는 상기 비오픈 사용자 식별코드에 대한 해시값을 산출하는 해시(hash) 연산과 상기 해시값의 특정 위치를 XOR하는 XOR 연산을 반복 수행하여 상기 암호화 키를 생성할 수 있다.
상기 암호화 파일 처리부는 상기 해시 연산 및 상기 XOR 연산의 반복 수행 후 상기 메타데이터로부터 추출된 제1 랜덤값과의 패딩(padding) 연산과 해시 연산을 차례대로 수행하여 상기 암호화 키를 생성할 수 있다.
상기 암호화 파일 처리부는 상기 해시 연산 및 상기 XOR 연산의 반복 수행 후 해시 연산, XOR 연산 및 인코딩을 차례대로 수행하여 상기 메타데이터로부터 추출된 검증 사용자 식별코드와의 비교를 통해 상기 비오픈 사용자 식별코드를 검증할 수 있다.
상기 암호화 파일 처리부는 상기 암호화 키와 상기 메타데이터로부터 추출된 제2 랜덤값을 블록 암호 알고리즘에 적용하여 상기 암호화 파일을 해독할 수 있다.
상기 암호화 파일 처리부는 상기 암호화 파일에서 상기 메타데이터를 제거한 후 상기 블록 암호 알고리즘을 적용하여 상기 암호화 파일을 해독함으로써 상기 비암호화 파일을 생성할 수 있다.
실시예들 중에서, 암호화 파일 기반의 복호화 방법은 암호화 파일에서 암호화되지 않은 메타데이터에 있는 오픈 사용자 식별코드를 검출하는 단계, 상기 오픈 사용자 식별코드를 기초로 암호화 파일 생성자에 고유한 비오픈 사용자 식별코드를 결정하는 단계 및 상기 비오픈 사용자 식별코드를 기초로 암호화 키를 생성하고 상기 암호화 키를 기초로 상기 암호화 파일을 해독하여 비암호화 파일을 생성하는 단계를 포함한다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 암호화 파일 기반의 복호화 장치 및 방법은 암호화 파일의 헤더 분석을 통해 헤더에 은닉된 비오픈 사용자 식별코드를 획득하고 검증할 수 있다.
본 발명의 일 실시예에 따른 암호화 파일 기반의 복호화 장치 및 방법은 비오픈 사용자 식별코드를 기초로 해시 연산 및 XOR 연산의 반복 수행과 패딩 연산 및 해시 연산의 연속 수행을 통해 암호화 과정에서 사용된 암호화 키를 생성할 수 있다.
도 1은 본 발명의 일 실시예에 따른 암호화 파일 기반의 복호화 시스템을 설명하는 도면이다.
도 2는 도 1에 있는 복호화 장치를 설명하는 블록도이다.
도 3은 도 1에 있는 복호화 장치에서 수행되는 복호화 과정을 설명하는 순서도이다.
도 4는 도 1에 있는 복호화 장치에서 복호화하는 암호화 파일의 구조에 관한 일 실시예를 설명하는 예시도이다.
도 5는 암호화 프로그램에서 암호화하는 과정에 오픈 사용자 식별코드를 생성하는 과정의 일 실시예를 설명하는 예시도이다.
도 6은 도 1에 있는 복호화 장치에서 비오픈 사용자 식별코드를 기초로 암호화 키를 생성하는 과정의 일 실시예를 설명하는 예시도이다.
도 7은 도 1에 있는 복호화 장치에서 암호화 파일의 헤더를 이용하여 수행되는 복호화 과정의 일 실시예를 설명하는 예시도이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 암호화 파일 기반의 복호화 시스템을 설명하는 도면이다.
도 1을 참조하면, 암호화 파일 기반의 복호화 시스템(100)은 사용자 단말(110), 복호화 장치(130) 및 데이터베이스(150)를 포함할 수 있다.
사용자 단말(110)은 암호화되어 잠겨진 파일을 제공하고 해당 파일에 대한 비암호화 파일을 수신하여 확인할 수 있는 컴퓨팅 장치에 해당할 수 있다. 사용자 단말(110)은 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 복호화 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 복호화 장치(130)와 동시에 연결될 수 있다.
복호화 장치(130)는 암호화되어 잠겨진 파일을 복호화하여 비암호화 파일을 생성할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 복호화 장치(130)는 사용자 단말(110)과 유선 네트워크 또는 블루투스, WiFi 등과 같은 무선 네트워크로 연결될 수 있고, 유선 또는 무선 네트워크를 통해 사용자 단말(110)과 통신을 수행할 수 있다. 일 실시예에서, 복호화 장치(130)는 데이터베이스(150)와 연동하여 암호화 파일의 복호화에 필요한 다양한 정보들을 저장할 수 있다. 한편, 복호화 장치(130)는 도 1과 달리, 데이터베이스(150)를 내부에 포함하여 구현될 수 있다.
일 실시예에서, 복호화 장치(130)는 암호화되어 잠겨진 파일의 복호화를 위하여 암호화 파일 생성에 사용된 암호화 프로그램을 분석할 수 있고 암호화에 사용된 암호 알고리즘, 초기화 벡터(IV) 등의 중요정보를 사전에 획득할 수 있다. 복호화 장치(130)는 암호화 파일의 헤더와 암호화 프로그램 분석을 통해 획득한 정보를 활용하여 암호화 파일의 복호화를 수행할 수 있다.
데이터베이스(150)는 복호화 장치(130)가 암호화 파일의 복호화에 필요한 다양한 정보들을 저장할 수 있다. 예를 들어, 데이터베이스(150)는 사용자 단말(110)로부터 수신한 암호화 파일을 저장할 수 있고, 암호화 파일을 분석하여 획득한 암호화에 사용된 중요 정보들을 저장할 수 있으며, 반드시 이에 한정되지 않고, 암호화에 사용된 중요 정보들을 복구하고 자동으로 암호화 키를 생성하여 암호화 파일을 복호화하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.
도 2는 도 1에 있는 복호화 장치를 설명하는 블록도이다.
도 2를 참조하면, 복호화 장치(130)는 오픈 사용자 식별코드 검출부(210), 비오픈 사용자 식별코드 결정부(230), 암호화 파일 처리부(250) 및 제어부(270)를 포함할 수 있다.
오픈 사용자 식별코드 검출부(210)는 암호화 파일에서 암호화되지 않은 메타데이터에 있는 오픈 사용자 식별코드를 검출할 수 있다. 여기에서, 암호화 파일은 파일 잠금 기능을 제공하는 프로그램에 의해 암호화되어 잠겨진 파일에 해당할 수 있고, 암호화에 사용된 중요 정보 없이는 복호화가 불가능한 파일에 해당할 수 있다.
암호화되지 않은 메타데이터는 암호화 파일을 구성하는 데이터로서 암호화 수행과정에서 원래의 데이터에 추가된 암호화 관련 데이터에 해당할 수 있다. 예를 들어, 메타데이터는 파일 정보, 암호 정보, 데이터 정보 등을 포함할 수 있다. 오픈 사용자 식별코드는 사용자와 연관된 정보로서 사용자마다 서로 다른 값을 가질 수 있고 암호화 프로그램에 의하여 암호화 과정에서 생성되는 사용자 정보에 해당할 수 있다. 오픈 사용자 식별코드는 암호화 대상이 되는 파일에 따라 변하지 않고 일정한 값을 가질 수 있고, 복호화 장치(130)에서 암호화 파일의 복호화에 사용하는 암호화 키를 복원하는데 중요한 역할을 수행할 수 있다.
일 실시예에서, 오픈 사용자 식별코드 검출부(210)는 암호화 파일로부터 헤더(header)를 추출하고 헤더의 구조를 기초로 특정 위치에 존재하는 오픈 사용자 식별코드를 검출할 수 있다. 오픈 사용자 식별코드 검출부(210)는 암호화되지 않은 메타데이터로서 헤더를 추출할 수 있다. 헤더(header)는 암호화를 수행하는 프로그램에 의해 원래의 파일에 추가된 정보들로 구성될 수 있고, 사용자 계정, 암호 알고리즘 및 암호화되는 데이터 등에 관한 정보를 포함할 수 있다. 오픈 사용자 식별코드 검출부(210)는 암호화 파일 분석을 통해 헤더를 식별할 수 있고, 헤더의 구조를 기초로 특정 위치에 존재하는 정보로부터 오픈 사용자 식별코드를 검출할 수 있다.
비오픈 사용자 식별코드 결정부(230)는 오픈 사용자 식별코드를 기초로 암호화 파일 생성자에 고유한 비오픈 사용자 식별코드를 결정할 수 있다. 암호화 파일 생성자는 암호화 파일을 최초로 생성한 사용자에 해당할 수 있고 암호화 프로그램에 자신의 정보를 입력하여 해당 정보를 기초로 암호화된 파일을 생성할 수 있다. 비오픈 사용자 식별코드는 사용자와 연관된 정보로서 사용자마다 서로 다른 값을 가질 수 있고 암호화 프로그램이 암호화 과정에서 필수적으로 사용하는 사용자 정보에 해당할 수 있다.
비오픈 사용자 식별코드는 암호화 프로그램에 의하여 외부에 노출되지 않도록 숨겨질 수 있고, 암호화 파일의 헤더에 포함되어 저장될 수 있다. 예를 들어, 비오픈 사용자 식별코드는 사용자 이메일 주소 또는 사용자 ID 등 특정 서비스를 이용할 수 있는 사용자 계정 정보에 해당할 수 있다. 비오픈 사용자 식별코드 결정부(230)는 오픈 사용자 식별코드를 이용하여 암호화 파일을 최초로 생성한 사용자와 연관된 비오픈 사용자 식별코드를 결정할 수 있으며, 비오픈 사용자 식별코드는 일정한 형식에 따라 생성된 식별코드에 해당할 수 있다.
일 실시예에서, 비오픈 사용자 식별코드 결정부(230)는 오픈 사용자 식별코드를 디코딩(decoding)하고 식별코드 결정 상수와의 XOR 연산을 통해 비오픈 사용자 식별코드를 결정할 수 있다. 식별코드 결정 상수는 비오픈 사용자 식별코드를 결정하는 과정에서 사용되는 상수에 해당할 수 있고, 암호화 프로그램에서 사용하는 암호 알고리즘에 따라 고유한 값을 가질 수 있다. 예를 들어, 비오픈 사용자 식별코드 결정부(230)는 디코딩 방법 중 하나인 Base64 디코딩을 이용하여 오픈 사용자 식별코드를 디코딩할 수 있고, 디코딩 결과와 식별코드 결정 상수 간의 XOR 연산을 통해 비오픈 사용자 식별코드를 결정할 수 있으며, 이러한 과정은 다음과 같이 표현될 수 있다.
Figure 112018075736090-pat00001
여기에서, A는 비오픈 사용자 식별코드, B는 오픈 사용자 식별코드, C는 식별코드 결정 상수에 해당할 수 있다. 비오픈 사용자 식별코드 결정부(230)는 상기 수학식을 통해 결정된 비오픈 사용자 식별코드가 특정 형태에 해당하는지에 따라 암호화 파일의 복호화를 중단할 수 있다. 즉, 비오픈 사용자 식별코드가 특정 형태에 해당하지 않는 경우에는 암호화 파일이 변조 또는 손상된 파일에 해당하므로 복호화 장치(130)는 해당 비오픈 사용자 식별코드를 이용하여 암호화 파일을 복호화하더라도 정상적인 비암호화 파일을 생성할 수 없다.
암호화 파일 처리부(250)는 비오픈 사용자 식별코드를 기초로 암호화 키를 생성하고 암호화 키를 기초로 암호화 파일을 해독하여 비암호화 파일을 생성할 수 있다. 암호화 키는 암호화 프로그램이 암호화 파일을 생성하는데 사용한 비밀키에 해당할 수 있다.
일 실시예에서, 암호화 파일 처리부(250)는 비오픈 사용자 식별코드에 대한 해시값을 산출하는 해시(hash) 연산과 해시값의 특정 위치를 XOR하는 XOR 연산을 반복 수행하여 암호화 키를 생성할 수 있다. 예를 들어, 암호화 파일 처리부(250)는 비오픈 사용자 식별코드에 해시 함수 중 하나인 SHA-1 함수를 적용할 수 있고, SHA-1 해시값을 일정한 길이로 분할하여 이들을 일정한 순서에 따라 XOR할 수 있다. 암호화 파일 처리부(250)는 해시 연산과 XOR 연산을 반복 수행할 수 있고, 예를 들어, 2번의 연속된 해시 연산과 XOR 연산을 수행할 수 있다.
일 실시예에서, 암호화 파일 처리부(250)는 해시 연산 및 XOR 연산의 반복 수행 후 메타데이터로부터 추출된 제1 랜덤값과의 패딩(padding) 연산과 해시 연산을 차례대로 수행하여 암호화 키를 생성할 수 있다. 제1 랜덤값은 메타데이터에 포함된 정보로서 암호화 프로그램이 암호화 과정에서 사용하는 값에 해당하고 암호화 수행시마다 임의의 값을 가질 수 있다. 보다 구체적으로, 암호화 파일 처리부(250)는 해시 연산과 XOR 연산의 반복 수행으로 산출된 값 중 최상위 128 비트를 추출하고 최상위 128 비트와 메타데이터로부터 추출된 제1 랜덤값을 연결하는 패딩 연산을 수행할 수 있다. 다음으로, 암호화 파일 처리부(250)는 패딩 연산 결과에 해시 함수를 적용하여 해시값을 산출할 수 있고, 해시값의 최상위 128 비트를 암호화 키로서 생성할 수 있다.
일 실시예에서, 암호화 파일 처리부(250)는 다음의 알고리즘 1을 통해 비오픈 사용자 식별코드로부터 암호화 키를 생성할 수 있다.
[알고리즘 1]
Figure 112018075736090-pat00002
여기에서, D는 비오픈 사용자 식별코드, E는 제1 랜덤값, key는 암호화 키에 해당할 수 있다.
일 실시예에서, 암호화 파일 처리부(250)는 해시 연산 및 XOR 연산의 반복 수행 후 해시 연산, XOR 연산 및 인코딩을 차례대로 수행하여 메타데이터로부터 추출된 검증 사용자 식별코드와의 비교를 통해 비오픈 사용자 식별코드를 검증할 수 있다. 검증 사용자 식별코드는 사용자와 연관된 정보로서 사용자마다 서로 다른 값을 가질 수 있고 암호화 프로그램에 의하여 암호화 과정에서 생성되는 사용자 정보에 해당할 수 있으며, 오픈 사용자 식별코드와 대응되는 정보에 해당할 수 있다.
일 실시예에서, 암호화 파일 처리부(250)는 다음의 알고리즘 2를 통해 비오픈 사용자 식별코드를 검증할 수 있다.
[알고리즘 2]
Figure 112018075736090-pat00003
여기에서, D는 비오픈 사용자 식별코드, F는 검증을 위한 인코딩 결과에 해당할 수 있다. 암호화 파일 처리부(250)는 인코딩 결과인 F와 검증 사용자 식별코드가 동일한 경우 검증을 통과한 것으로 처리할 수 있고, 동일하지 않은 경우 암호화 파일이 변조 또는 손상된 것으로 처리할 수 있다.
일 실시예에서, 암호화 파일 처리부(250)는 암호화 키와 메타데이터로부터 추출된 제2 랜덤값을 블록 암호 알고리즘에 적용하여 암호화 파일을 해독할 수 있다. 제2 랜덤값은 메타데이터에 포함된 정보로서 암호화 프로그램이 암호화 과정에서 사용하는 값에 해당하고, 암호화 수행시마다 임의의 값을 가질 수 있으며, 제1 랜덤값과 대응되는 정보에 해당할 수 있다. 예를 들어, 암호화 파일 처리부(250)는 AES-128 암호 알고리즘에 대해 CBC 모드를 적용하여 암호화 파일을 해독할 수 있고, 해독 과정에서 암호화 키를 사용할 수 있다. 또한, 암호화 파일 처리부(250)는 AES-128-CBC를 적용하는데 제2 랜덤값을 초기화 벡터(IV)로서 사용할 수 있다.
일 실시예에서, 암호화 파일 처리부(250)는 암호화 파일에서 메타데이터를 제거한 후 블록 암호 알고리즘을 적용하여 암호화 파일을 해독함으로써 비암호화 파일을 생성할 수 있다. 암호화 파일 처리부(250)는 암호화 파일에서 메타데이터를 제거하여 암호화된 데이터에 대해서만 블록 암호 알고리즘을 적용하여 복호화를 수행할 수 있다. 결과적으로, 암호화 과정과 달리 복호화 장치(130)에서 수행되는 복호화 과정에서는 부가적인 정보에 해당하는 메타데이터가 제거되고 원본 파일에 해당하는 비암호화 파일만 최종 결과물로 도출될 수 있다.
제어부(270)는 복호화 장치(130)의 전체적인 동작을 제어하고, 오픈 사용자 식별코드 검출부(210), 비오픈 사용자 식별코드 결정부(230) 및 암호화 파일 처리부(250) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
도 3은 도 1에 있는 복호화 장치에서 수행되는 복호화 과정을 설명하는 순서도이다.
도 3을 참조하면, 복호화 장치(130)는 오픈 사용자 식별코드 검출부(210)를 통해 암호화 파일에서 암호화되지 않은 메타데이터에 있는 오픈 사용자 식별코드를 검출할 수 있다(단계 S310). 복호화 장치(130)는 비오픈 사용자 식별코드 결정부(230)를 통해 오픈 사용자 식별코드를 기초로 암호화 파일 생성자에 고유한 비오픈 사용자 식별코드를 결정할 수 있다(단계 S330). 복호화 장치(130)는 암호화 파일 처리부(250)를 통해 비오픈 사용자 식별코드를 기초로 암호화 키를 생성하고 암호화 키를 기초로 암호화 파일을 해독하여 비암호화 파일을 생성할 수 있다(단계 S350).
도 4는 도 1에 있는 복호화 장치에서 복호화하는 암호화 파일의 구조에 관한 일 실시예를 설명하는 예시도이다.
도 4를 참조하면, 복호화 장치(130)에서 복호화하는 대상인 암호화 파일은 일정한 구조로 구성될 수 있다. 도 4에서, 암호화 파일은 파일 헤더(410)와 암호화 데이터(430)로 구성될 수 있고, 파일 헤더(410)는 암호화에 사용되는 다양한 정보들을 일정한 순서에 따라 정렬된 형태로 구성될 수 있다. 파일 헤더(410)를 통해 도 4의 암호화 파일은 AES-128-CBC로 데이터를 암호화하였고, RFC2630을 따르고 있음을 확인할 수 있다.
암호화 파일을 생성하는 암호화 프로그램은 동일한 데이터를 암호화하는 경우에도 암호화할 때마다 Data B와 Data E에 대해 서로 다른 값을 사용할 수 있다. 또한, 암호화 프로그램은 서로 다른 데이터를 암호화하는 경우에도 Data C와 Data F에 대해 서로 동일한 값을 사용할 수 있다. 따라서, Data B와 Data E는 암호화 과정에 랜덤성을 제공하는 역할을 수행할 수 있고, Data C와 Data F는 암호화 프로그램을 실행하는 사용자와 연관된 정보에 해당할 수 있다.
도 5는 암호화 프로그램에서 암호화하는 과정에 오픈 사용자 식별코드를 생성하는 과정의 일 실시예를 설명하는 예시도이다.
도 5를 참조하면, 암호화 프로그램은 고정 128-bit(B)를 두 번 이어붙인 상태에서 특정 비트 위치 두 곳을 XOR하는 것을 반복하여 128-bit(C)와 128-bit(D)를 생성할 수 있다. 암호화 프로그램은 128-bit(C)를 키로 갖는 AES 알고리즘으로 128-bit(D)를 암호화하여 128-bit(D')을 생성할 수 있다. 만약 오픈 사용자 식별코드가 128-bit보다 긴 경우 128-bit(D'+1)를 다시 128-bit(C)를 키로 갖는 AES 알고리즘으로 암호화하여 128-bit(D'')를 생성하는 규칙으로 비트열을 구성할 수 있다. 암호화 프로그램은 비트열과 비오픈 사용자 식별코드를 XOR한 뒤 Base64 인코딩을 수행하여 오픈 사용자 식별코드를 생성할 수 있다.
따라서, 복호화 장치(130)는 오픈 사용자 식별코드 생성 과정을 기초로 오픈 사용자 식별코드를 디코딩하고 식별코드 결정 상수와 XOR을 수행하여 비오픈 사용자 식별코드를 결정할 수 있다.
도 6은 도 1에 있는 복호화 장치에서 비오픈 사용자 식별코드를 기초로 암호화 키를 생성하는 과정의 일 실시예를 설명하는 예시도이다.
도 6을 참조하면, 복호화 장치(130)가 비오픈 사용자 식별코드(가)를 기초로 암호화 키(DEK)를 생성하는 과정을 확인할 수 있다. 복호화 장치(130)는 비오픈 사용자 식별코드 결정부(230)를 통해 결정된 비오픈 사용자 식별코드(가)를 기초로 복호화에 사용될 수 있는 암호화 키(DEK)를 획득할 수 있다. 보다 구체적으로, 복호화 장치(130)는 비오픈 사용자 식별코드(가)를 SHA-1 해시값의 특정 비트 위치를 XOR하는 과정을 반복 수행하여 160-bit(D)를 생성할 수 있다. XOR은 규칙을 갖는 특정 비트 위치 두 곳을 XOR하는 것에 해당할 수 있다.
복호화 장치(130)는 160-bit(D)의 최상위 128-bit에 파일 헤더의 제1 랜덤값 요소(다)를 패딩하여 다시 SHA-1 해시 함수를 적용할 수 있다. 복호화 장치(130)는 해시 함수의 결과인 160-bit의 최상위 128-bit를 암호화 키(DEK)로서 결정할 수 있다. 또한, 복호화 장치(130)는 160-bit(D)에 다시 SHA-1 해시 함수를 적용하고 특정 비트 위치 두 곳을 XOR하는 것을 반복한 뒤 Base64 인코딩한 값(나)을 비오픈 사용자 식별코드(가)의 검증에 사용할 수 있다. 즉, 복호화 장치(130)는 Base64 인코딩 값(나)과 검증용 사용자 식별코드와 비교하여 동일한 경우 비오픈 사용자 식별코드(가)가 검증을 통과한 것으로 처리할 수 있다.
도 7은 도 1에 있는 복호화 장치에서 암호화 파일의 헤더를 이용하여 수행되는 복호화 과정의 일 실시예를 설명하는 예시도이다.
도 7을 참조하면, 복호화 장치(130)는 암호화 파일의 헤더를 분석하여 암호화 프로그램에서 암호화 과정에서 사용하였던 중요 정보들을 획득할 수 있다. 중요 정보는 오픈 사용자 식별코드, 초기화 벡터(IV), 제1 랜덤값 등을 포함할 수 있다. 복호화 장치(130)는 오픈 사용자 식별코드를 통해 헤더에 은닉된 비오픈 사용자 식별코드를 추출할 수 있다.
복호화 장치(130)는 비오픈 사용자 식별코드를 해시 연산과 특정 비트 위치에 대한 XOR 연산을 반복하는 알고리즘을 거쳐 획득한 128-bit 데이터와 제1 랜덤값을 패딩하여 해시 함수를 적용할 수 있다. 복호화 장치(130)는 마지막 해시값의 최상위 128-bit를 암호화 키(DEK)로서 결정할 수 있고, 암호화 키와 초기화 벡터(IV)를 기초로 AES-128-CBC를 적용하여 암호화 파일의 복호화를 수행할 수 있다. 도 4에서의 초기화 벡터(IV)는 파일 헤더의 마지막 요소인 오픈 사용자 식별코드(Data F) 이후의 128-bit에 해당할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 암호화 파일 기반의 복호화 시스템
110: 사용자 단말 130: 복호화 장치
150: 데이터베이스
210: 오픈 사용자 식별코드 검출부
230: 비오픈 사용자 식별코드 결정부
250: 암호화 파일 처리부 270: 제어부
410: 파일 헤더 430: 암호화 데이터

Claims (9)

  1. 암호화 파일에서 암호화되지 않은 메타데이터에 있는 오픈 사용자 식별코드를 검출하는 오픈 사용자 식별코드 검출부;
    상기 오픈 사용자 식별코드를 기초로 암호화 파일 생성자에 고유한 비오픈 사용자 식별코드를 결정하는 비오픈 사용자 식별코드 결정부; 및
    상기 비오픈 사용자 식별코드를 기초로 암호화 키를 생성하고 상기 암호화 키를 기초로 상기 암호화 파일을 해독하여 비암호화 파일을 생성하는 암호화 파일 처리부를 포함하되,
    상기 오픈 사용자 식별코드 검출부는 상기 암호화 파일로부터 헤더(header)를 추출하고 상기 헤더의 구조를 기초로 특정 위치에 존재하는 상기 오픈 사용자 식별코드를 검출하는 것을 특징으로 하는 암호화 파일 기반의 복호화 장치.
  2. 삭제
  3. 제1항에 있어서, 상기 비오픈 사용자 식별코드 결정부는
    상기 오픈 사용자 식별코드를 디코딩(decoding)하고 식별코드 결정 상수와의 XOR 연산을 통해 상기 비오픈 사용자 식별코드를 결정하는 것을 특징으로 하는 암호화 파일 기반의 복호화 장치.
  4. 제1항에 있어서, 상기 암호화 파일 처리부는
    상기 비오픈 사용자 식별코드에 대한 해시값을 산출하는 해시(hash) 연산과 상기 해시값의 특정 비트 위치 두 곳을 XOR하는 XOR 연산을 반복 수행하여 상기 암호화 키를 생성하는 것을 특징으로 하는 암호화 파일 기반의 복호화 장치.
  5. 제4항에 있어서, 상기 암호화 파일 처리부는
    상기 해시 연산 및 상기 XOR 연산의 반복 수행 후 상기 메타데이터로부터 추출된 제1 랜덤값과의 패딩(padding) 연산과 해시 연산을 차례대로 수행하여 상기 암호화 키를 생성하는 것을 특징으로 하는 암호화 파일 기반의 복호화 장치.
  6. 제4항에 있어서, 상기 암호화 파일 처리부는
    상기 해시 연산 및 상기 XOR 연산의 반복 수행 후 해시 연산, XOR 연산 및 인코딩을 차례대로 수행하여 상기 메타데이터로부터 추출된 검증 사용자 식별코드와의 비교를 통해 상기 비오픈 사용자 식별코드를 검증하는 것을 특징으로 하는 암호화 파일 기반의 복호화 장치.
  7. 제1항에 있어서, 상기 암호화 파일 처리부는
    상기 암호화 키와 상기 메타데이터로부터 추출된 제2 랜덤값을 블록 암호 알고리즘에 적용하여 상기 암호화 파일을 해독하는 것을 특징으로 하는 암호화 파일 기반의 복호화 장치.
  8. 제7항에 있어서, 상기 암호화 파일 처리부는
    상기 암호화 파일에서 상기 메타데이터를 제거한 후 상기 블록 암호 알고리즘을 적용하여 상기 암호화 파일을 해독함으로써 상기 비암호화 파일을 생성하는 것을 특징으로 하는 암호화 파일 기반의 복호화 장치.
  9. 암호화 파일 기반의 복호화 장치에서 수행되는 복호화 방법에 있어서,
    암호화 파일에서 암호화되지 않은 메타데이터에 있는 오픈 사용자 식별코드를 검출하는 단계;
    상기 오픈 사용자 식별코드를 기초로 암호화 파일 생성자에 고유한 비오픈 사용자 식별코드를 결정하는 단계; 및
    상기 비오픈 사용자 식별코드를 기초로 암호화 키를 생성하고 상기 암호화 키를 기초로 상기 암호화 파일을 해독하여 비암호화 파일을 생성하는 단계를 포함하되,
    상기 검출하는 단계는 상기 암호화 파일로부터 헤더(header)를 추출하고 상기 헤더의 구조를 기초로 특정 위치에 존재하는 상기 오픈 사용자 식별코드를 검출하는 단계를 포함하는 것을 특징으로 하는 암호화 파일 기반의 복호화 방법.
KR1020180089246A 2018-07-31 2018-07-31 암호화 파일에 대한 복호화 장치 및 방법 KR102083415B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180089246A KR102083415B1 (ko) 2018-07-31 2018-07-31 암호화 파일에 대한 복호화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180089246A KR102083415B1 (ko) 2018-07-31 2018-07-31 암호화 파일에 대한 복호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200013963A KR20200013963A (ko) 2020-02-10
KR102083415B1 true KR102083415B1 (ko) 2020-03-02

Family

ID=69627501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180089246A KR102083415B1 (ko) 2018-07-31 2018-07-31 암호화 파일에 대한 복호화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102083415B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210107386A (ko) * 2020-02-24 2021-09-01 삼성전자주식회사 전자 장치 및 그 제어 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101447554B1 (ko) 2013-11-08 2014-10-08 한국전자통신연구원 암호화된 파일을 복호화하는 장치 및 그 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703345B1 (ko) 2005-04-06 2007-04-03 삼성전자주식회사 잠금 속성을 이용한 이동통신단말기의 파일 데이터 보호방법
US8677504B2 (en) * 2005-07-14 2014-03-18 Qualcomm Incorporated Method and apparatus for encrypting/decrypting multimedia content to allow random access
KR100840200B1 (ko) * 2006-09-27 2008-06-23 한국전자통신연구원 H.264 형식의 동영상 파일의 보호를 위한패키징/언패키징 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101447554B1 (ko) 2013-11-08 2014-10-08 한국전자통신연구원 암호화된 파일을 복호화하는 장치 및 그 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
X. Zhang외 2명, Breaking into the vault: Privacy, security and forensic analysis of Android vault applications, Article in Computer & Security (2017.08.)*

Also Published As

Publication number Publication date
KR20200013963A (ko) 2020-02-10

Similar Documents

Publication Publication Date Title
JP6144992B2 (ja) 検索可能暗号処理システム及び方法
Indrayani et al. Increasing the security of mp3 steganography using AES Encryption and MD5 hash function
JP5914604B2 (ja) 暗号化されたファイルを復号化する装置およびその方法
CN106788995B (zh) 文件加密方法及装置
US7499552B2 (en) Cipher method and system for verifying a decryption of an encrypted user data key
CN110457873B (zh) 一种水印嵌入与检测方法及装置
EP3132368B1 (en) Method and apparatus of verifying usability of biological characteristic image
KR20080093635A (ko) 메시지의 무결성 유지를 위한 메시지 암호화 방법 및 장치,메시지의 무결성 유지를 위한 메시지 복호화 방법 및 장치
WO2018170963A1 (zh) 一种文件的加密、解密方法和装置
US20180287779A1 (en) White-box cryptography method and apparatus for preventing side channel analysis
CN106778292B (zh) 一种Word加密文档的快速还原方法
Park et al. A methodology for the decryption of encrypted smartphone backup data on android platform: A case study on the latest samsung smartphone backup system
CN112492352A (zh) 一种视频加解密方法、装置、电子设备及存储介质
US10949392B2 (en) Steganography obsfucation
Sultana et al. A new approach to hide data in color image using LSB steganography technique
KR102083415B1 (ko) 암호화 파일에 대한 복호화 장치 및 방법
KR102387169B1 (ko) 디지털 포렌식 데이터 복호화 장치
TWI488478B (zh) 執行對稱加密的技術
WO2017207998A1 (en) Method of associating a person with a digital object
CN114422209A (zh) 一种数据处理的方法、装置及存储介质
KR102311996B1 (ko) 미디어 파일에 대한 안티 포렌식 해제 장치 및 방법
CN111859408A (zh) 文件加密、解密方法及装置、电子设备、可读存储介质
Zhang et al. An extensive analysis of truecrypt encryption forensics
Aguilar Santiago et al. Chaotic Cryptosystem for Selective Encryption of Faces in Photographs
CN117786644B (zh) 一种人脸自身特征参与加解密的安全人脸识别系统

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