KR101808313B1 - 데이터 암호화 방법 - Google Patents

데이터 암호화 방법 Download PDF

Info

Publication number
KR101808313B1
KR101808313B1 KR1020160033681A KR20160033681A KR101808313B1 KR 101808313 B1 KR101808313 B1 KR 101808313B1 KR 1020160033681 A KR1020160033681 A KR 1020160033681A KR 20160033681 A KR20160033681 A KR 20160033681A KR 101808313 B1 KR101808313 B1 KR 101808313B1
Authority
KR
South Korea
Prior art keywords
symmetric key
encrypted
application server
data
external device
Prior art date
Application number
KR1020160033681A
Other languages
English (en)
Other versions
KR20170109471A (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 KR1020160033681A priority Critical patent/KR101808313B1/ko
Publication of KR20170109471A publication Critical patent/KR20170109471A/ko
Application granted granted Critical
Publication of KR101808313B1 publication Critical patent/KR101808313B1/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
    • 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
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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
    • 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
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key

Landscapes

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

Abstract

본 발명의 목적은 외부장치로부터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여 암호화 대칭키를 생성하며, 상기 암호화 대칭키를 이용하여 데이터를 암호화 및 복호화할 수 있는, 데이터 암호화 방법을 제공하는 것이다.

Description

데이터 암호화 방법{METHOD OF ENCRYPTING DATA}
본 발명은 데이터를 암호화 또는 복호화하는 방법에 관한 것이다.
데이터를 암호화하기 위해 적용되는 방법은 다양하다.
최근에는 대칭키를 이용하여 데이터를 암호화하는 방법이 이용되고 있다.
대칭키를 이용하여 데이터를 암호화하는 방법을 간단히 설명하면 아래와 같다.
우선, 클라이언드 단말기에서 데이터를 어플리케이션 서버로 전송한다.
다음, 상기 데이터를 전송받은 어플리케이션 서버는 상기 클라이언트 단말기에서 전송받은 평문(Plaintext) 형태의 데이터를, 다양한 종류의 대칭키(DES, triple DES, AES)를 이용한 암호화 방법을 이용하여, 암호화한다.
이 경우, 128bit의 데이터를 암호화하기 위해서는 16byte 길이의 대칭키가 필요하고, 256bit의 데이터를 암호화기 위해서는 32byte 길이의 대칭키가 필요하다.
예를 들어, 상기 클라이언트 단말기로부터, ‘Hello world!’ 라는 평문의 데이터가 전송된 경우, 상기 어플리케이션 서버는, AES방식의 알고리즘 및 128bit 레벨을 이용하여 생성된, ‘1q2w3e4r5t6y7u8i’ 라는 16byte 길이의 대칭키를 이용하여 상기 데이터를 암호화할 수 있다. 이 경우, 상기 대칭키는 상기 어플리케이션 서버 내에 평문 형태로 존재한다.
다음, 상기 암호화에 의해 최종적으로 바이너리(binary)형식의 데이터가 출력된다. 바이너리 형식의 암호화된 데이터를 Ascii 형태로 변환하기 위해 Base64 encoding 과정이 진행된다.
마지막으로, 상기한 과정들을 통해 암호화된 데이터(암호화 데이터)는 데이터베이스 서버에 저장된다.
상기 암호화 데이터를 복호화하는 방법을 간단히 설명하면 아래와 같다.
우선, 상기 데이터베이스 서버로부터 상기 어플리케이션 서버로 Base64 Encoding 과정이 수행된 상기 암호화 데이터가 전달된다.
다음, 상기 어플리케이션 서버는 상기 대칭키를 이용한 암호화 방법의 역순으로 복호화를 진행하며, 이를 위해, 상기 어플리케이션 서버는, Ascii data를 base64 decoding하여 바이너리(binary) 데이터로 변환한다.
다음, 상기 어플리케이션 서버는 최종적으로 바이너리된 2진 데이터를 상기 대칭 키를 사용하여 평문으로 복호화한다.
마지막으로, 상기 어플리케이션 서버는 복호화(Decryption)된 데이터(복호화 데이터)를 상기 클라이언트 단말기로 전달한다.
상기한 바와 같은 종래의 암호화 방법은 다음과 같은 문제점을 가지고 있다.
종래의 대칭키는 상기 어플리케이션 서버에 평문 형태로 저장된다.
따라서, 상기 데이터베이스 서버에 저장된 상기 암호화 데이터와, 상기 어플리케이션 서버에 평문 형태로 저장된 대칭키가 동시에 유출되면, 암호화 데이터는 쉽게 보호될 수 없다. 따라서, 상기 암호화 데이터는 불법 사용자에게 쉽게 노출될 수 있다.
상술한 문제점을 해결하기 위한 본 발명의 목적은, 외부장치로부터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여 암호화 대칭키를 생성하며, 상기 암호화 대칭키를 이용하여 데이터를 암호화 및 복호화할 수 있는, 데이터 암호화 방법을 제공하는 것이다.
상술한 기술적 과제를 달성하기 위한 본 발명에 따른 데이터 암호화 방법은, 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장치로부터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여 암호화 대칭키를 생성하며, 상기 암호화 대칭키를 저장하는 단계; 클라이언트 단말기로부터 데이터를 수신하는 단계; 상기 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장치로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계; 상기 어플리케이션 서버가 상기 평문 대칭키를 이용해, 상기 데이터를 암호화하여, 암호화 데이터를 생성하는 단계; 상기 암호화 데이터를 저장하는 단계; 클라이언트 단말기로부터 상기 암호화 데이터에 대한 전송 요청을 수신하는 단계; 상기 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장치로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계; 상기 평문 대칭키를 이용해 상기 암호화 데이터를 복호화하여 복호화 데이터를 생성하는 단계; 및 상기 복호화 데이터를, 상기 전송을 요청한 클라이언트 단말기로 전송하는 단계를 포함한다.
본 발명에 의하면, 사용자는 데이터를 암호화함에 있어서, 종래보다 더 높은 보안성을 보장받을 수 있다.
본 발명에 의하면, 해커에 의해 암호화 데이터 및 암호화 대칭키가 탈취되더라도, 상기 암호화 데이터의 암호화를 요청한 외부장치로부터 추출된 외부장치정보가 있어야 상기 암호화 데이터가 복호화될 수 있다. 따라서, 본 발명에 의하면 이중 보안의 효과가 얻어질 수 있다.
부연하여 설명하면, 본 발명은 암호화를 요청한 외부장치로부터 추출된 외부장치정보를 활용해 평문 형태의 평문 대칭키를 암호화하여 암호화 대칭키를 생성한 후 상기 암호화 대칭키를 관리한다. 따라서, 암호화 데이터 및 암호화 대칭키가 해커에 의해 유출되더라도 상기 암호화 대칭키의 생성에 이용된 외부장치정보가 함께 존재하지 않으면, 상기 암호화 데이터는 복호화될 수 없다. 이에 따라, 암호화 데이터의 불법 유출 및 이용이 차단될 수 있다.
도 1은 본 발명에 따른 암호화 방법이 적용되는 암호화 시스템의 일실시예 구성도.
도 2는 본 발명에 따른 암호화 방법을 실행하는 어플리케이션 서버의 구성을 나타낸 예시도.
도 3은 본 발명에 따른 암호화 방법의 일실시예 흐름도.
도 4는 본 발명에 따른 암호화 방법에 적용되는 암호화 대칭키 생성 방법의 일실시예 흐름도.
도 5는 본 발명에 따른 암호화 방법에 적용되는 암호화 대칭키 복호화 방법의 일실시예 흐름도.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 발명에 따른 암호화 방법이 적용되는 암호화 시스템의 일실시예 구성도이며, 도 2는 본 발명에 따른 암호화 방법을 실행하는 어플리케이션 서버의 구성을 나타낸 예시도이다.
본 발명에 따른 암호화 방법이 적용되는 암호화 시스템은, 도 1에 도시된 바와 같이, 본 발명에 따른 암호화 방법을 실행하는 어플리케이션 서버(20), 상기 어플리케이션 서버(20)로부터 생성된 암호화된 데이터(이하, 간단히 암호화 데이터라 함)를 저장하는 데이터베이스 서버(40), 상기 어플리케이션 서버(20)를 이용하여 데이터를 암호화하거나 상기 암호화 데이터를 복호화하여 이용하고자 하는 사용자가 이용하는 클라이언트 단말기(10), 상기 암호화 데이터를 불법적으로 이용하고자 하는 해커 단말기(30) 및 상기 어플리케이션 서버(20)에서 상기 암호화 및 상기 복호화 시 이용될 암호화 대칭키의 생성에 이용될 외부장치(50)를 포함한다.
첫째, 상기 어플리케이션 서버(20)로는 현재 이용되고 있는 각종 서버 또는 개인용 컴퓨터가 이용될 수 있다.
상기 어플리케이션 서버(20)는 본 발명에 따른 암호화 방법을 실행한다.
이를 위해, 상기 어플리케이션 서버(20)는 도 2에 도시된 바와 같이, 네트워크를 통해 상기 클라이언트 단말기(10)와 통신을 수행하는 통신부(21), 본 발명에 따른 암호화 방법과 관련된 정보들을 입력받는 입력부(23), 상기 암호화 방법과 관련된 정보들을 저장하는 저장부(24), 각종 정보를 관리자에게 출력하기 위한 출력부(25) 및 상기 통신부(21), 상기 입력부(23), 상기 저장부(24), 상기 출력부(25)의 기능을 제어하는 제어부(22)를 포함한다.
특히, 상기 제어부(22)는, 상기 입력부(23) 또는 상기 통신부(21)를 통해 연결되어 있는 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여 암호화 대칭키를 생성하며, 상기 암호화 대칭키를 저장한다. 상기 제어부(22)는 상기 클라이언트 단말기(10)로부터 데이터를 수신하고 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하고, 상기 평문 대칭키를 이용해, 상기 데이터를 암호화하여, 암호화 데이터를 생성하고, 상기 암호화 데이터를 저장한다. 상기 제어부(22)는 상기 클라이언트 단말기(10)로부터 상기 암호화 데이터에 대한 전송 요청이 수신되면, 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하고, 상기 평문 대칭키를 이용해 상기 암호화 데이터를 복호화하여 복호화 데이터를 생성하며, 상기 복호화 데이터를, 상기 전송을 요청한 상기 클라이언트 단말기(10)로 전송할 수 있다.
상기 저장부(24)는 전원이 공급되지 않더라도 데이터를 저장할 수 있는 메인 메모리 및 전원이 공급되면 데이터를 저장할 수 없는 휘발성 메모리를 포함할 수 있다.
둘째, 상기 데이터베이스 서버(40)는 각종 정보를 저장하는 서버이다. 상기 데이터베이스 서버(20)로는 현재 일반적으로 이용되는 데이터베이스 서버가 이용될 수 있다.
상기 데이터베이스 서버(40)는 상기 어플리케이션 서버(20)에 포함될 수 있다. 이 경우, 상기 저장부(24)는 상기 데이터베이스 서버(40)의 기능을 수행할 수 있다.
셋째, 상기 클라이언트 단말기(10)는, 각종 네트워크를 통해 상기 어플리케이션 서버(20)와 통신을 수행할 수 있는 각종 장치가 될 수 있다. 즉, 상기 클라이언트 단말기(10)는 현재 일반적으로 이용되는, 개인용 컴퓨터(PC), 노트북, 테블릿PC 및 스마트폰이 될 수 있다.
넷째, 상기 해커 단말기(30) 역시, 각종 네트워크를 통해 상기 어플리케이션 서버(20)와 통신을 수행할 수 있는 각종 장치가 될 수 있다.
다섯째, 상기 외부장치(50)는 상기 어플리케이션 서버(20)에서 상기 암호화 및 상기 복호화 시 이용될 암호화 대칭키의 생성에 이용되는 물리적인 장치이다.
도 3은 본 발명에 따른 암호화 방법의 일실시예 흐름도이다.
본 발명에 따른 암호화 방법은, 도 3에 도시된 바와 같이, 상기 어플리케이션 서버(20)가 상기 어플리케이션 서버(20)에 연결되어 있는 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여 암호화 대칭키를 생성하며, 상기 암호화 대칭키를 저장하는 단계(S102), 상기 클라이언트 단말기(10)로부터 데이터를 수신하는 단계(S104), 상기 어플리케이션 서버(20)가 상기 어플리케이션 서버(20)에 연결되어 있는 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계(S105), 상기 어플리케이션 서버(20)가 상기 평문 대칭키를 이용해, 상기 데이터를 암호화하여, 암호화 데이터를 생성하는 단계(S106), 상기 암호화 데이터를 저장하는 단계(S108), 상기 클라이언트 단말기(10)로부터 상기 암호화 데이터에 대한 전송 요청을 수신하는 단계(S110), 상기 어플리케이션 서버(20)가 상기 어플리케이션 서버(20)에 연결되어 있는 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계(S112), 상기 평문 대칭키를 이용해 상기 암호화 데이터를 복호화하여 복호화 데이터를 생성하는 단계(S114) 및 상기 복호화 데이터를, 상기 전송을 요청한 상기 클라이언트 단말기(10)로 전송하는 단계를 포함한다.
첫째, 상기 어플리케이션 서버(20)는 상기 어플리케이션 서버(20)와 매칭되어 있는 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여, 암호화 대칭키를 생성한다(S102).
본 발명은 암호화 방법에 이용되는 평문 대칭키를 상기 어플리케이션 서버(20)에 연결된 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 1차적으로 암호화하여 상기 암호화 대칭키를 생성하며, 2차적으로 상기 암호화 대칭키를 이용해 상기 데이터를 암호화한다.
상기 평문 대칭키를 암호화하여, 상기 암호화 대칭키를 생성하는 구체적인 방법은 도 4를 참조하여 상세히 설명된다.
둘째, 상기 어플리케이션 서버(20)는 상기 클라이언트 단말기(10)로부터 데이터를 수신한다(S104).
셋째, 상기 데이터가 수신되면(S104), 상기 어플리케이션 서버(20)는 상기 암호화 대칭키를 상기 외부장치정보를 이용해 복호화하여, 평문 데이터를 생성한다(S105). 상기 과정(S105)에 대한 구체적인 방법은 도 5를 참조하여 상세히 설명된다.
넷째, 상기 어플리케이션 서버(20)는 상기 평문 대칭키를 이용해, 상기 데이터를 암호화하여 암호화 데이터를 생성한다(S106).
다섯째, 상기 어플리케이션 서버(20)는 상기 암호화 데이터를 상기 데이터베이스 서버(40)에 저장한다(S108).
여섯째, 상기 어플리케이션 서버(20)는 클라이언트 단말기(10)로부터 상기 데이터, 즉, 상기 암호화 데이터에 대한 요청을 수신한다(S110). 이하에서는, 설명의 편의를 위해, 상기 데이터, 즉, 상기 암호화 데이터를 요청하는 것이 상기 암호화에 대한 복호화를 요청하는 것으로 설명된다.
상기 복호화 요청을 전송한 클라이언트 단말기(10)는 상기 암호화 요청을 전송한 클라이언트 단말기와 동일할 수도 있으며, 동일하지 않을 수도 있다.
일곱째, 상기 복호화 요청이 수신되면(S110), 상기 어플리케이션 서버(20)는 상기 암호화 대칭키를 상기 외부장치정보를 이용해 복호화하여, 평문 데이터를 생성한다(S112). 상기 과정(S112)에 대한 구체적인 방법은 도 5를 참조하여 상세히 설명된다.
상기 데이터가 수신될 때(S104), 상기 어플리케이션 서버(20)가 상기 암호화 대칭키를 상기 외부장치정보를 이용해 복호화하여, 평문 데이터를 생성하는 과정(S105) 및 상기 복호화 요청이 수신될 때(S110), 상기 어플리케이션 서버(20)가 상기 암호화 대칭키를 상기 외부장치정보를 이용해 복호화하여, 평문 데이터를 생성하는 과정(S112)은, 동일한 절차에 따라 수행될 수 있다. 따라서, 상기 두 개의 과정들(S105 및 S112)는 도 5를 참조하여 설명될 수 있다.
여덟째, 상기 어플리케이션 서버(20)는 상기 평문 대칭키를 이용해 상기 암호화 데이터를 복호화하여 복호화 데이터를 생성한다(S114).
아홉째, 상기 어플리케이션 서버(20)는 상기 복호화 데이터를 상기 복호화 요청을 전송한 상기 클라이언트 단말기(10)로 전송한다.
이에 따라, 사용자는 상기 클라이언트 단말기(10)로 전송된 상기 복호화 데이터를 이용할 수 있다.
도 4는 본 발명에 따른 암호화 방법에 적용되는 암호화 대칭키 생성 방법의 일실시예 흐름도이다.
본 발명은, 평문 형태의 대칭키(평문 대칭키)를 상기 어플리케이션 서버(20)에 연결된 외부장치의 특정데이터(외부장치정보)를 사용해 암호화하여, 암호화 대칭키를 생성한다.
상기 암호화 대칭키가 외부로 유출되더라도, 물리적인 외부장치(50), 즉, 상기 암호화 대칭키의 생성과정에 이용된 상기 외부장치(50)가 없이는, 상기 암호화 대칭키는 복호화되지 못한다. 따라서, 상기 암호화 대칭키와 함께 상기 외부장치(50)가 탈취되지 않는 이상, 상기 암호화 대칭키와 매칭되어 있는 암호화 데이터는 복호화될 수 없다.
본 발명에 따른 암호화 방법에 적용되는 암호화 대칭키 생성 방법은, 상기 외부장치정보를 이용해 대칭키를 암호화하여 암호화 대칭키를 생성하는 방법(S102)을 의미한다.
상기 암호화 대칭키를 생성하는 단계(S104)는, 도 4에 도시된 바와 같이, 대칭키를 이용한 암호화 방법을 선택하는 단계(S302), 상기 암호화 방법의 레벨을 선택하는 단계(S304), 상기 어플리케이션 서버(20)가, 상기 어플리케이션 서버(20)에 연결되어 있는 상기 외부장치(50)로부터 외부장치정보를 추출하며, 평문 대칭키를 입력받는 단계(S306, S308, S310, S312, S314, S316), 상기 외부장치정보를 해쉬화하는 단계(S318), 해쉬화된 정보로부터 상기 암호화 방법의 레벨의 길이에 비례하는 해쉬정보를 추출하는 단계(S320), 상기 해쉬정보를 이용해 상기 평문 대칭키를 암호화하여 상기 암호화 대칭키를 생성하는 단계(S322) 및 상기 암호화 대칭키를 저장하는 단계(S324)를 포함한다.
첫째, 상기 어플리케이션 서버(20)의 관리자는 본 발명에서 이용될 암호화 방법을 선택하며(S302), 암호화 방법의 레벨(128bit 또는 256bit 등)을 선택한다(S304). 또한, 상기 관리자는 상기 암호화 방법에 적용될 평문 대칭키를 상기 입력부(23)를 통해 입력받아 상기 저장부(24)에 저장한다(S312).
둘째, 상기 어플리케이션 서버(20)는 상기 통신부(21) 또는 상기 입력부(23)에 연결된 외부장치들의 목록을 추출해서 보여줄 수 있으며, 상기 관리자는 연결된 외부장치들 중 어느 하나를 선택한다(S308).
상기 어플리케이션 서버(20)와 같은 서버에서는, 필수적으로 NIC(Lan card)가 존재하기 때문에 외부장치의 존재 유부를 판단하는 과정이 성립하지 않을 수도 있다(S310).
그러나, 관리자가 NIC 이외의 외부장치에서 특정데이터를 추출한다고 가정한다면, 상기 외부장치(50)의 존재 유무를 판단하는 과정은 성립될 수 있다. 따라서, 상기 외부장치(50)의 존재를 판단하는 과정은 성립될 할 수도 있고, 성립되지 않을 수도 있다.
셋째, 평문 대칭키를 입력하는 과정(S312)에서는, 관리자가 이미 운용되고 있는 상기 어플리케이션 서버(20) 내에 하드코딩 되어 있는 16자리 또는 32자리의 평문 대칭키를 입력할 수 있다.
또한, 상기 어플리케이션 서버(20)가 신규로 도입되어 운영될 시스템이라면, 관리자는, 특수문자, 영문, 숫자를 조합하여 임의의 문자 16자리 또는 32자리를 상기 평문 대칭키로 입력할 수 있다.
상기 어플리케이션 서버(20)는 입력된 상기 평문 대칭키가 적절하지 않으면, 평문 대칭키를 입력하는 과정을 반복적으로 수행할 수 있다(S312, S314).
넷째, 상기 어플리케이션 서버(20)는 상기 외부장치(50)로부터 외부장치번호를 추출한다(S316).
일반적으로, NIC 같은 경우 Mac address와 같은 고유한 데이터를 가지고 있다.
또한, 특정 디바이스의 접속 허용 또는 접속 차단과 같은 기능을 가지는 서비스는 일반적으로 상기한 바와 같은 Mac address의 고유한 데이터를 사용한다.
또한, 상기한 바와 같은 Mac address 정보는 서버, 노트북, 스마트 폰, 스마트TV 등과 같이 인터넷을 사용하는 모든 디바이스에 의해 이용되고 있다.
따라서, 상기 어플리케이션 서버(20)는 상기 Mac address와 같은 고유한 데이터를 상기 외부장치(50)의 외부장치정보로 추출할 수 있다.
또한, USB 메모리 같은 경우, 제조사마다 부여하는 Serial number가 존재한다. 따라서, 상기 어플리케이션 서버(20)는 상기 Serial number를 상기 외부장치(50)의 상기 외부장치정보로 추출할 수 있다.
또한, 상기 외부장치(50)로는 외장하드디스크, 외장CD-ROM 등이 이용될 수 있으며, 상기 어플리케이션 서버(20)는 상기 외장하드디스크, 상기 외장 CD-ROM 등에 매칭되어 있는 특정 정보를 상기 외부장치정보로 추출할 수 있다.
다섯째, 상기 어플리케이션 서버(20)는 상기 외부장치정보를 해쉬(Hash)화 한다(S318).
여섯째, 상기 어플리케이션 서버(20)는 해쉬화된 정보로부터, 상기에서 선택된 암호화 방법의 레벨의 길이에 비례한 해쉬정보를 추출한다(S320).
예를 들어, 관리자는 평문 대칭키를 이용하는 방법들(DES, AES, SEED, ARIA, RC4 등) 중 어느 하나를 선택하여 이용할 수 있으며, 평문 대칭키를 이용하는 방법의 형태와 bit에 따라서 상기 암호화 대칭키의 길이가 달라질 수 있다.
본 발명은, 상기 외부장치(50)의 Serial Number 또는 Mac Address 등과 같은 Unique한 정보를 추출하여, 해쉬화하고, 해쉬화된 데이터에서 특정구간을 추출하여 해쉬정보를 생성한다.
일곱째, 상기 어플리케이션 서버(20)는 상기 해쉬정보를 이용해 상기 평문 대칭키를 암호화하여 상기 암호화 대칭키를 생성한다(S322).
여덟째, 상기 어플리케이션 서버(20)는 상기 암호화 대칭키를 상기 저장부(24) 또는 상기 데이터베이스 서버(400)에 저장한다(S324).
도 5는 본 발명에 따른 암호화 방법에 적용되는 암호화 대칭키 복호화 방법의 일실시예 흐름도이다.
본 발명에 따른 암호화 방법에 적용되는 암호화 대칭키 복호화 방법은, 상기 외부장치정보를 이용해 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 방법(S105 또는 S112))이다.
상기 암호화 대칭키를 복호화하여 상기 평문 대칭키를 생성하는 단계(S105, S112)는, 상기 클라이언트 단말기(10)로부터 상기 데이터를 수신하거나, 또는 클라이언트 단말기(10)로부터 상기 암호화 데이터에 대한 전송 요청을 수신하면, 상기 어플리케이션 서버(20)가 상기 어플리케이션 서버(20)에 연결되어 있는 상기 외부장치정보(50)를 추출하는 단계(S402, S404, S406), 상기 외부장치정보를 해쉬화하는 단계(S408), 해쉬화된 정보로부터 상기 암호화 방법의 레벨의 길이에 비례하는 해쉬정보를 추출하는 단계(S410) 및 상기 해쉬정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계(S412)를 포함한다.
첫째, 상기 어플리케이션 서버(20)는 상기 데이터가 수신되거나, 상기 복호화 요청이 수신되면, 상기 데이터를 암호화하거나 상기 복호화에 이용될 상기 암호화 대칭키를 선택한다(S402).
예를 들어, 상기 어플리케이션 서버(20)의 상기 저장부(24) 또는 상기 데이터베이스 서버(40)에는 복수의 암호화 대칭키가 저장될 수 있으며, 상기 어플리케이션 서버(20)는 상기 암호화 대칭키들 중, 상기 데이터를 암호화하거나 또는 상기 복호화에 이용될 암호화 대칭키를 선택한다.
둘째, 상기 어플리케이션 서버(20)는 상기 외부장치(50)로부터 외부장치정보를 추출한다(S404, S406).
이를 위해, 우선 상기 어플리케이션 서버(20)는 상기 암호화 대칭키와 매칭되는 외부장치가 존재하는지의 여부를 판단한 후(S404), 존재하면, 상기 외부장치정보를 추출한다(S406).
셋째, 상기 어플리케이션 서버(20)는 추출된 상기 외부장치정보를 해쉬화한다(S408).
넷째, 상기 어플리케이션 서버(20)는 해쉬화된 정보로부터 상기 암호화 방법의 레벨의 길이에 비례하는 해쉬정보를 추출한다(S410).
다섯째, 상기 어플리케이션 서버(20)는 상기 해쉬정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성한다(S412).
즉, 암호화 대칭키가 다시 평문 대칭키로 변환되기 위해서는 상기 암호화 대칭키를 생성할 때 이용되었던 외부장치정보가 반드시 존재해야 한다.
따라서, 해커가, 상기 어플리케이션 서버(20) 또는 상기 데이터베이스 서버(40)에 저장되어 있는 상기 암호화 데이터 및 상기 암호화 대칭키를 해킹하였다고 하더라도, 해커가 상기 암호화 대칭키의 암호화시 이용되었던 외부장치정보 또는 상기 외부장치(50)를 획득할 수 없다면, 상기 암호화 대칭키가 복호화될 수 없으며, 따라서, 상기 암호화 데이터가 복호화될 수 없다.
여섯째, 상기 어플리케이션 서버(20)는 상기 평문 대칭키를 상기 저장부(24)의 휘발성 메모리에 저장한다.
이후, 상기 어플리케이션 서버(20)는 상기 복호화 대칭키를 이용하여, 상기 암호화 데이터를 복호화한다(S114).
이하에서는, 상기에서 설명된 본 발명이 구체적인 예를 참조하여 간단히 설명된다.
우선, 종래의 암호화 방법을 설명하면 다음과 같다.
예를 들어, 사용자는 상기 서버에 의해 운영되는 홈텍스라는 사이트에 회원으로 가입할 수 있다.
이 경우, 사용자는 아이디, 비밀번호, 성명, 전화번호, 주소, 공인인증정보등을 상기 서버로 전송하며, 최종적으로 회원가입 완료 버튼을 선택할 수 있다.
사용자가 입력한 데이터들은 상기 서버 또는 상기 서버와 연결된 데이터베이스 서버에 저장되는 프로세스를 거친다.
상기 서버는 상기 데이터들을 그대로 저장하지 않고, 민감한 데이터들을 암호화하여 저장할 수 있다.
이 경우, 대칭키 방식의 암호화가 이용될 수 있다. 각종 데이터들이 암호화되어 데이터베이스 서버에 저장되면, 나중에 사용자가 로그인하여 다시 자신의 정보를 보려고 할 때, 상기 서버는 암호화된 데이터를 복호화해야 한다. 따라서, 각종 데이터들을 암호화할 때 사용된 대칭키는 상기 서버에 존재해야 한다.
상기 서버 또는 상기 데이터베이스 서버에는 평문 형태의 대칭키, 즉, 평문 대칭키가 저장된다.
만약, 해커가 악성코드를 이용하여 상기 서버 또는 상기 데이터베이스 서버에 침투한 경우, 해커는 상기 서버 또는 데이터베이스 서버에 접근하여 암호화된 데이터들을 탈취할 수 있다. 또한, 해커는 상기 서버 또는 상기 데이터베이스 서버에 접근하여 상기 평문 대칭키도 습득할 수 있다.
이 경우, 해커는 탈취한 암호화된 데이터 및 평문 대칭키를 이용하여 상기 암호화된 데이터를 복호화할 수 있다. 상기 과정을 통해 불법적으로 복호화된 데이터는 다양한 분야에서 불법적으로 이용될 수 있다.
본 발명은 상기 평문 대칭키를 효율적으로 관리하는 방법을 제공한다. 즉, 평문 대칭키가, 해커가 전혀 볼 수 없는 형식, 즉 암호화된다면, 고객의 데이터는 쉽게 복호화될 수 없다. 따라서, 본 발명은 평문 대칭키를 암호화하는 방법을 제공한다. 부연하여 설명하면, 보안을 강화하고자 하는 관리자는, 본 발명을 이용하여 기존에 이용되는 평문 대칭키를 암호화하여 이용할 수 있다.
본 발명은, 상기 어플리케이션 서버(20)에 물리적으로 연결된 상기 외부장치(50)의 하드웨어 정보(외부장치정보)를, 평문 대칭키를 암호화하기 위해 요구되는 새로운 대칭키 정보로서 이용한다. 즉, 본 발명은 평문 대칭키를 암호화하기 위해 또 다른 평문 대칭키를 이용하지 않으며, 상기 외부장치정보를 이용한다.
특히, 본 발명에서, 상기 평문 대칭키를 암호화하여 상기 암호화 대칭키를 생성하는 과정(S102)은, 상기 어플리케이션 서버(20)의 구동 준비 시에 최초 1회만 실행될 수 있다.
예를 들어, 상기 홈텍스 사이트를 제공하는 상기 어플리케이션 서버(20)의 관리자는 본 발명을 이용하기 위해, 상기 홈텍스 사이트를 정기점검으로 전환한다.
다음, 상기 관리자는 새로운 USB 메모리(외부장치(50))를 상기 어플리케이션 서버(20)에 연결한다(S306, S308, S310).
다음, 상기 어플리케이션 서버(20)의 상기 제어부(22)는 관리자에게 USB flash memory, NIC 등과 같은 외부장치들 중 어떤 외부장치의 외부장치정보를 이용해서 평문 대칭키를 암호화할 것인지를 질문할 수 있다(S308).
다음, 상기 제어부(22)는 AES, DES, SEED 등과 같은 대칭키 방식들 중 어떤 대칭키 방식을 이용할 것인지를 질문할 수 있다(S302).
다음, 상기 제어부(22)는 128bit 또는 256 bit와 같은 대칭키 레벨들 중 어떤 대칭키 레벨을 이용할 것인지를 질문할 수 있다(S304).
다음, 상기 제어부(22)는 16자리 또는 32자리로 구성된 평문 대칭키의 정보를 입력할 것을 요청할 수 있다(S312).
다음, 상기 제어부(22)는 선택된 외부장치(50)의 외부장치정보를 이용해서 상기 평문 대칭키를 암호화하여, 상기 암호화 대칭키를 생성한다(S316 내지 S324).
마지막으로, 상기 제어부(22)는 상기 암호화 대칭키를, 예를 들어, [sample.key] 형태의 파일로 상기 저장부(24) 또는 상기 데이터베이스 서버(40)에 저장한다.
상기 [sample.key] 파일 내에는 상기 암호화 대칭키도 존재하지만, 하드웨어 비교(매칭) 코드도 삽입될 수 있다.
본 발명은 상기 평문 대칭키를 암호화하여 상기 암호화 대칭키를 생성할 수 있으며, 또한, 상기 암호화 대칭키를 복호화해 상기 평문 대칭키를 생성할 수도 있다.
상기 어플리케이션 서버(20)가 상기 암호화 대칭키를 이용하기 위해서는, 본 발명이, 상기 어플리케이션 서버(20)의 구동시에 로드되어야 한다.
예를 들어, 상기 어플리케이션 서버(20)가 구동을 시작하면, 상기 제어부(22)는 상기 어플리케이션 서버(20)에 물리적으로 연결되어 있는 외부장치(50)를 검색한다.
다음, 상기 제어부(22)는 상기 외부장치(50)를 상기 [sample.key] 파일과 매칭시켜 순차적으로 검색하여 복호화를 진행한다.
이 경우, 상기 제어부(22)는 상기 [sample.key] 파일 안에 들어있는 하드웨어 비교 코드를 참고한다.
다음, 상기 과정에 의해 복호화된 평문 대칭키는 상기 어플리케이션 서버(20)의 상기 저장부(40)에 저장될 수 있으며, 특히, 상기 저장부(40)를 구성하는 휘발성 메모리, 예를 들어 RAM(Memory)에 load될 수 있다.
마지막으로, load가 완료되면 상기 어플리케이션 서버(20)에서 상기 외부장치(50)는 제거될 수 있다.
즉, 본 발명에서, 도 5를 참조하여 설명된 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계(S105, S112)는, 상기 어플리케이션 서버(20)로 전원이 공급되어 상기 어플리케이션 서버(20)가 구동을 시작할 때 1회 수행될 수 있으며, 이 경우, 상기 평문 대칭키는 상기 어플리케이션 서버(20)에 구비된 휘발성 메모리에 저장될 수 있다.
또한, 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계(S105, S112)는, 상기 어플리케이션 서버(20)에 상기 외부장치(50)가 연결된 상태에서, 상기 암호화 대칭키에 대한 복호화 요청이 있을 때마다 수행될 수도 있다. 이 경우, 상기 복호화 요청에 따라 생성된 상기 평문 대칭키는 상기 어플리케이션 서버(20)에 구비된 휘발성 메모리에 저장될 수 있다.
부연하여 설명하면, 상기한 바와 같은 암호화 대칭키 복호화 과정을 통해 상기 암호화 대칭키가 복호화되어, 상기 평문 대칭키가 상기 휘발성 메모리에 load되면, 상기 어플리케이션 서버(20)는 개인정보를 암호화하거나 복호화할 때 일반적인 평문형태의 대칭키를 이용하지 않고, 상기 휘발성 메모리(RAM(memory))에 load되어 있는 정보를 참조할 수 있다.
따라서, 본 발명의 구성을 아는 헤커가, 상기 외부장치(50)의 정보를 습득하려고 해도, 상기한 바와 같이 휘발성 메모리에 상기 평문 대칭키가 Load 된 후에는, 상기 외부장치(50)가 상기 어플리케이션 서버(20)에 연결되지 않을 수 있기 때문에, 헤커는 상기 외부장치(50)의 하드웨어정보를 전혀 알 수 없다.
또한, 본 발명에서는 상기 휘발성 메모리(RAM)가 이용되기 때문에, 상기 어플리케이션 서버(20)가 재시작되거나, 또는 프로그램이 종료되면, 상기 휘발성 메모리에 로드되어 있는 상기 평문 대칭키 정보는 사라진다.
결과적으로 상기 어플리케이션 서버(20)에는 평문 대칭키의 어떠한 정보도 존재하지 않는다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.  그러므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 클라이언트 단말기 20: 어플리케이션 서버
30: 해커 단말기 40: 데이터베이스 서버
50: 외부장치

Claims (4)

  1. 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장치로부
    터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여 암호화 대칭키를 생성
    하는 단계;
    상기 어플리케이션 서버가 상기 암호화 대칭키를 저장하는 단계;
    클라이언트 단말기로부터 데이터를 수신하는 단계;
    상기 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장
    치로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대
    칭키를 생성하는 단계;
    상기 어플리케이션 서버가 상기 평문 대칭키를 이용해, 상기 데이터를 암호
    화하여, 암호화 데이터를 생성하는 단계;
    상기 암호화 데이터를 저장하는 단계;
    클라이언트 단말기로부터 상기 암호화 데이터에 대한 전송 요청을 수신하는
    단계;
    상기 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장
    치로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대
    칭키를 생성하는 단계;
    상기 평문 대칭키를 이용해 상기 암호화 데이터를 복호화하여 복호화 데이터
    를 생성하는 단계; 및
    상기 복호화 데이터를, 상기 전송을 요청한 클라이언트 단말기로 전송하는
    단계를 포함하며,
    상기 암호화 대칭키를 생성하는 단계는,
    암호화 방법을 선택하고, 상기 암호화 방법의 레벨을 선택하고,
    상기 어플리케이션 서버가, 상기 어플리케이션 서버에 연결되어 있는 외부장
    치로부터 외부장치정보를 추출하고, 상기 외부장치정보를 해쉬화하고,
    해쉬화된 정보로부터 상기 암호화 방법의 레벨의 길이에 비례하는 해쉬정보
    를 추출하고,
    상기 해쉬정보를 이용해 평문 대칭키를 암호화하여 상기 암호화 대칭키를 생
    성하며,
    상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계는,
    클라이언트 단말기로부터 상기 데이터를 수신하거나, 또는 클라이언트 단말기로부터 상기 암호화 데이터에 대한 전송 요청을 수신하면, 상기 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장치정보를 추출하고, 상기 외부장치정보를 해쉬화하고, 해쉬화된 정보로부터 상기 암호화 방법의 레벨의 길이에 비례하는 해쉬정보를 추출하고, 상기 해쉬정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 데이터 암호화 방법.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계는,
    상기 어플리케이션 서버로 전원이 공급되어 상기 어플리케이션 서버가 구동을 시작할 때 수행되며, 상기 평문 대칭키는 상기 어플리케이션 서버에 구비된 휘발성 메모리에 저장되는 데이터 암호화 방법.
KR1020160033681A 2016-03-21 2016-03-21 데이터 암호화 방법 KR101808313B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160033681A KR101808313B1 (ko) 2016-03-21 2016-03-21 데이터 암호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160033681A KR101808313B1 (ko) 2016-03-21 2016-03-21 데이터 암호화 방법

Publications (2)

Publication Number Publication Date
KR20170109471A KR20170109471A (ko) 2017-09-29
KR101808313B1 true KR101808313B1 (ko) 2017-12-12

Family

ID=60035634

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160033681A KR101808313B1 (ko) 2016-03-21 2016-03-21 데이터 암호화 방법

Country Status (1)

Country Link
KR (1) KR101808313B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190023550A (ko) 2017-08-29 2019-03-08 현대자동차주식회사 내비게이션 정보를 이용한 주행지원시스템 및 그 동작방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101512241B1 (ko) * 2013-10-25 2015-04-16 한양대학교 에리카산학협력단 클라우드를 기반으로 하는 개인 가상화를 이용하여 디지털 비디오 레코더로 컨텐츠를 제공하는 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101512241B1 (ko) * 2013-10-25 2015-04-16 한양대학교 에리카산학협력단 클라우드를 기반으로 하는 개인 가상화를 이용하여 디지털 비디오 레코더로 컨텐츠를 제공하는 방법 및 시스템

Also Published As

Publication number Publication date
KR20170109471A (ko) 2017-09-29

Similar Documents

Publication Publication Date Title
US8712041B2 (en) Content protection apparatus and content encryption and decryption apparatus using white-box encryption table
CN100576196C (zh) 内容加密方法、系统和利用该加密方法通过网络提供内容的方法
US10469253B2 (en) Methods and apparatus for migrating keys
US11074332B2 (en) Methods and systems of securely transferring data
US11424919B2 (en) Protecting usage of key store content
US9641328B1 (en) Generation of public-private key pairs
US11677546B2 (en) Methods and systems of securely transferring data
JP6930053B2 (ja) 装置認証キーを利用したデータ暗号化方法およびシステム
JP7323004B2 (ja) データ抽出システム、データ抽出方法、登録装置及びプログラム
US10699021B2 (en) Method and a device for secure storage of at least one element of digital information, and system comprising such device
US20150200777A1 (en) Data securing method, data securing system and data carrier
KR101808313B1 (ko) 데이터 암호화 방법
JP2017108237A (ja) システム、端末装置、制御方法、およびプログラム
GB2579884A (en) Methods and systems of securely transferring data
CN113779629A (zh) 密钥文件共享方法、装置、处理器芯片及服务器
JP6165044B2 (ja) 利用者認証装置、システム、方法及びプログラム
JP2023048525A (ja) データ共有装置、及び、データ共有方法
KR100959380B1 (ko) 플래시 컨텐츠 제공 방법

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