KR20170109471A - Method of encrypting data - Google Patents

Method of encrypting data Download PDF

Info

Publication number
KR20170109471A
KR20170109471A KR1020160033681A KR20160033681A KR20170109471A KR 20170109471 A KR20170109471 A KR 20170109471A KR 1020160033681 A KR1020160033681 A KR 1020160033681A KR 20160033681 A KR20160033681 A KR 20160033681A KR 20170109471 A KR20170109471 A KR 20170109471A
Authority
KR
South Korea
Prior art keywords
symmetric key
application server
encrypted
data
external device
Prior art date
Application number
KR1020160033681A
Other languages
Korean (ko)
Other versions
KR101808313B1 (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 KR1020160033681A priority Critical patent/KR101808313B1/en
Publication of KR20170109471A publication Critical patent/KR20170109471A/en
Application granted granted Critical
Publication of KR101808313B1 publication Critical patent/KR101808313B1/en

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

Abstract

An objective of the present invention is to provide a data encryption method capable of generating an encrypted symmetric key by encrypting a plain text symmetric key by using external device information extracted from an external device, and encrypting and decrypting data by using the encrypted symmetric key. The data encryption method comprises the following steps of: storing an encrypted symmetric key; receiving data from a client terminal; generating a plain text symmetric key; generating encrypted data; generating decrypted data; and transmitting the decrypted data to the client terminal.

Description

데이터 암호화 방법{METHOD OF ENCRYPTING DATA}[0001] METHOD OF ENCRYPTING DATA [0002]

본 발명은 데이터를 암호화 또는 복호화하는 방법에 관한 것이다. The present invention relates to a method for encrypting or decrypting data.

데이터를 암호화하기 위해 적용되는 방법은 다양하다.There are a variety of ways to encrypt data.

최근에는 대칭키를 이용하여 데이터를 암호화하는 방법이 이용되고 있다. Recently, a method of encrypting data using a symmetric key has been used.

대칭키를 이용하여 데이터를 암호화하는 방법을 간단히 설명하면 아래와 같다.A method of encrypting data using a symmetric key will be briefly described below.

우선, 클라이언드 단말기에서 데이터를 어플리케이션 서버로 전송한다. First, the client terminal transmits data to the application server.

다음, 상기 데이터를 전송받은 어플리케이션 서버는 상기 클라이언트 단말기에서 전송받은 평문(Plaintext) 형태의 데이터를, 다양한 종류의 대칭키(DES, triple DES, AES)를 이용한 암호화 방법을 이용하여, 암호화한다.Next, the application server that receives the data encrypts the plaintext data received from the client terminal using an encryption method using various kinds of symmetric keys (DES, triple DES, AES).

이 경우, 128bit의 데이터를 암호화하기 위해서는 16byte 길이의 대칭키가 필요하고, 256bit의 데이터를 암호화기 위해서는 32byte 길이의 대칭키가 필요하다.In this case, a 16-byte symmetric key is required to encrypt 128-bit data, and a 32-byte symmetric key is required to encrypt 256-bit data.

예를 들어, 상기 클라이언트 단말기로부터, ‘Hello world!’ 라는 평문의 데이터가 전송된 경우, 상기 어플리케이션 서버는, AES방식의 알고리즘 및 128bit 레벨을 이용하여 생성된, ‘1q2w3e4r5t6y7u8i’ 라는 16byte 길이의 대칭키를 이용하여 상기 데이터를 암호화할 수 있다. 이 경우, 상기 대칭키는 상기 어플리케이션 서버 내에 평문 형태로 존재한다. For example, when plaintext data of 'Hello world!' Is transmitted from the client terminal, the application server generates a 16-byte symmetric key '1q2w3e4r5t6y7u8i' generated using the AES algorithm and the 128- Can be used to encrypt the data. In this case, the symmetric key exists in a plaintext form in the application server.

다음, 상기 암호화에 의해 최종적으로 바이너리(binary)형식의 데이터가 출력된다. 바이너리 형식의 암호화된 데이터를 Ascii 형태로 변환하기 위해 Base64 encoding 과정이 진행된다. Next, data of a binary format is finally output by the encryption. The Base64 encoding process is performed to convert binary encoded data to Ascii format.

마지막으로, 상기한 과정들을 통해 암호화된 데이터(암호화 데이터)는 데이터베이스 서버에 저장된다. Finally, the encrypted data (encrypted data) is stored in the database server through the above processes.

상기 암호화 데이터를 복호화하는 방법을 간단히 설명하면 아래와 같다. A method for decrypting the encrypted data will be briefly described below.

우선, 상기 데이터베이스 서버로부터 상기 어플리케이션 서버로 Base64 Encoding 과정이 수행된 상기 암호화 데이터가 전달된다. First, the encrypted data, from which the Base64 Encoding process has been performed, is transmitted from the database server to the application server.

다음, 상기 어플리케이션 서버는 상기 대칭키를 이용한 암호화 방법의 역순으로 복호화를 진행하며, 이를 위해, 상기 어플리케이션 서버는, Ascii data를 base64 decoding하여 바이너리(binary) 데이터로 변환한다.Next, the application server performs decoding in the reverse order of the encryption method using the symmetric key. To this end, the application server base64-decodes Ascii data and converts it into binary data.

다음, 상기 어플리케이션 서버는 최종적으로 바이너리된 2진 데이터를 상기 대칭 키를 사용하여 평문으로 복호화한다.Next, the application server finally decodes binary binary data into plain text using the symmetric key.

마지막으로, 상기 어플리케이션 서버는 복호화(Decryption)된 데이터(복호화 데이터)를 상기 클라이언트 단말기로 전달한다.Finally, the application server delivers decrypted data (decrypted data) to the client terminal.

상기한 바와 같은 종래의 암호화 방법은 다음과 같은 문제점을 가지고 있다. The conventional encryption method as described above has the following problems.

종래의 대칭키는 상기 어플리케이션 서버에 평문 형태로 저장된다.The conventional symmetric key is stored in plain text form in the application server.

따라서, 상기 데이터베이스 서버에 저장된 상기 암호화 데이터와, 상기 어플리케이션 서버에 평문 형태로 저장된 대칭키가 동시에 유출되면, 암호화 데이터는 쉽게 보호될 수 없다. 따라서, 상기 암호화 데이터는 불법 사용자에게 쉽게 노출될 수 있다. Therefore, if the encrypted data stored in the database server and the symmetric key stored in the form of plaintext are simultaneously leaked, the encrypted data can not be easily protected. Therefore, the encrypted data can be easily exposed to an illegal user.

상술한 문제점을 해결하기 위한 본 발명의 목적은, 외부장치로부터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여 암호화 대칭키를 생성하며, 상기 암호화 대칭키를 이용하여 데이터를 암호화 및 복호화할 수 있는, 데이터 암호화 방법을 제공하는 것이다. It is an object of the present invention to solve the above-mentioned problems, and it is an object of the present invention to provide a method and apparatus for encrypting and decrypting data using an encrypted symmetric key by encrypting a plaintext symmetric key using external device information extracted from an external device There is a way to provide data encryption.

상술한 기술적 과제를 달성하기 위한 본 발명에 따른 데이터 암호화 방법은, 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장치로부터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여 암호화 대칭키를 생성하며, 상기 암호화 대칭키를 저장하는 단계; 클라이언트 단말기로부터 데이터를 수신하는 단계; 상기 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장치로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계; 상기 어플리케이션 서버가 상기 평문 대칭키를 이용해, 상기 데이터를 암호화하여, 암호화 데이터를 생성하는 단계; 상기 암호화 데이터를 저장하는 단계; 클라이언트 단말기로부터 상기 암호화 데이터에 대한 전송 요청을 수신하는 단계; 상기 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장치로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계; 상기 평문 대칭키를 이용해 상기 암호화 데이터를 복호화하여 복호화 데이터를 생성하는 단계; 및 상기 복호화 데이터를, 상기 전송을 요청한 클라이언트 단말기로 전송하는 단계를 포함한다.According to another aspect of the present invention, there is provided a data encryption method including: encrypting a plaintext symmetric key using an external device information extracted from an external device connected to the application server, Storing the encrypted symmetric key; Receiving data from a client terminal; The application server decrypting the encrypted symmetric key using external device information extracted from an external device connected to the application server to generate a plain text symmetric key; The application server encrypting the data using the plaintext symmetric key to generate encrypted data; Storing the encrypted data; Receiving a transmission request for the encrypted data from a client terminal; The application server decrypting the encrypted symmetric key using external device information extracted from an external device connected to the application server to generate a plain text symmetric key; Decrypting the encrypted data using the plain text symmetric key to generate decrypted data; And transmitting the decoded data to the client terminal requesting the transmission.

본 발명에 의하면, 사용자는 데이터를 암호화함에 있어서, 종래보다 더 높은 보안성을 보장받을 수 있다.According to the present invention, in encrypting data, a user can be assured of higher security than in the past.

본 발명에 의하면, 해커에 의해 암호화 데이터 및 암호화 대칭키가 탈취되더라도, 상기 암호화 데이터의 암호화를 요청한 외부장치로부터 추출된 외부장치정보가 있어야 상기 암호화 데이터가 복호화될 수 있다. 따라서, 본 발명에 의하면 이중 보안의 효과가 얻어질 수 있다. According to the present invention, even if the encrypted data and the encrypted symmetric key are stolen by the hacker, the encrypted data can be decrypted by using the external device information extracted from the external device requesting the encryption of the encrypted data. Therefore, according to the present invention, the effect of double security can be obtained.

부연하여 설명하면, 본 발명은 암호화를 요청한 외부장치로부터 추출된 외부장치정보를 활용해 평문 형태의 평문 대칭키를 암호화하여 암호화 대칭키를 생성한 후 상기 암호화 대칭키를 관리한다. 따라서, 암호화 데이터 및 암호화 대칭키가 해커에 의해 유출되더라도 상기 암호화 대칭키의 생성에 이용된 외부장치정보가 함께 존재하지 않으면, 상기 암호화 데이터는 복호화될 수 없다. 이에 따라, 암호화 데이터의 불법 유출 및 이용이 차단될 수 있다. In further detail, the present invention encrypts a plaintext symmetric key in a plain text form using external device information extracted from an external device requesting encryption, generates an encrypted symmetric key, and manages the encrypted symmetric key. Therefore, even if the encrypted data and the encrypted symmetric key are extracted by the hacker, the encrypted data can not be decrypted if the external device information used for generating the encrypted symmetric key does not exist together. As a result, the illegal outflow and use of the encrypted data can be blocked.

도 1은 본 발명에 따른 암호화 방법이 적용되는 암호화 시스템의 일실시예 구성도.
도 2는 본 발명에 따른 암호화 방법을 실행하는 어플리케이션 서버의 구성을 나타낸 예시도.
도 3은 본 발명에 따른 암호화 방법의 일실시예 흐름도.
도 4는 본 발명에 따른 암호화 방법에 적용되는 암호화 대칭키 생성 방법의 일실시예 흐름도.
도 5는 본 발명에 따른 암호화 방법에 적용되는 암호화 대칭키 복호화 방법의 일실시예 흐름도.
1 is a block diagram of an embodiment of an encryption system to which an encryption method according to the present invention is applied;
2 is an exemplary view showing a configuration of an application server that executes an encryption method according to the present invention;
3 is a flowchart of an embodiment of an encryption method according to the present invention.
4 is a flowchart of an embodiment of a method for generating an encrypted symmetric key applied to an encryption method according to the present invention.
5 is a flowchart of an embodiment of a cryptographic symmetric key decryption method applied to an encryption method according to the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 암호화 방법이 적용되는 암호화 시스템의 일실시예 구성도이며, 도 2는 본 발명에 따른 암호화 방법을 실행하는 어플리케이션 서버의 구성을 나타낸 예시도이다. FIG. 1 is a block diagram of an encryption system to which an encryption method according to the present invention is applied, and FIG. 2 is an exemplary view showing the configuration of an application server that executes an encryption method according to the present invention.

본 발명에 따른 암호화 방법이 적용되는 암호화 시스템은, 도 1에 도시된 바와 같이, 본 발명에 따른 암호화 방법을 실행하는 어플리케이션 서버(20), 상기 어플리케이션 서버(20)로부터 생성된 암호화된 데이터(이하, 간단히 암호화 데이터라 함)를 저장하는 데이터베이스 서버(40), 상기 어플리케이션 서버(20)를 이용하여 데이터를 암호화하거나 상기 암호화 데이터를 복호화하여 이용하고자 하는 사용자가 이용하는 클라이언트 단말기(10), 상기 암호화 데이터를 불법적으로 이용하고자 하는 해커 단말기(30) 및 상기 어플리케이션 서버(20)에서 상기 암호화 및 상기 복호화 시 이용될 암호화 대칭키의 생성에 이용될 외부장치(50)를 포함한다. 1, an encryption system to which an encryption method according to the present invention is applied includes an application server 20 for executing the encryption method according to the present invention, encrypted data (hereinafter referred to as " A client terminal 10 used by a user who wants to encrypt data or decrypt and use the encrypted data by using the application server 20, A hacker terminal 30 for illegally using the encrypted symmetric key and an external device 50 to be used for encryption and generation of an encrypted symmetric key to be used in the decryption in the application server 20.

첫째, 상기 어플리케이션 서버(20)로는 현재 이용되고 있는 각종 서버 또는 개인용 컴퓨터가 이용될 수 있다. First, various servers or personal computers currently used can be used as the application server 20.

상기 어플리케이션 서버(20)는 본 발명에 따른 암호화 방법을 실행한다.The application server 20 executes the encryption method according to the present invention.

이를 위해, 상기 어플리케이션 서버(20)는 도 2에 도시된 바와 같이, 네트워크를 통해 상기 클라이언트 단말기(10)와 통신을 수행하는 통신부(21), 본 발명에 따른 암호화 방법과 관련된 정보들을 입력받는 입력부(23), 상기 암호화 방법과 관련된 정보들을 저장하는 저장부(24), 각종 정보를 관리자에게 출력하기 위한 출력부(25) 및 상기 통신부(21), 상기 입력부(23), 상기 저장부(24), 상기 출력부(25)의 기능을 제어하는 제어부(22)를 포함한다.2, the application server 20 includes a communication unit 21 for communicating with the client terminal 10 via a network, an input unit for receiving information related to the encryption method according to the present invention, A storage unit 24 for storing information related to the encryption method, an output unit 25 for outputting various kinds of information to an administrator, and an output unit 25 for outputting various information to the communication unit 21, the input unit 23, And a control unit 22 for controlling the function of the output unit 25.

특히, 상기 제어부(22)는, 상기 입력부(23) 또는 상기 통신부(21)를 통해 연결되어 있는 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여 암호화 대칭키를 생성하며, 상기 암호화 대칭키를 저장한다. 상기 제어부(22)는 상기 클라이언트 단말기(10)로부터 데이터를 수신하고 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하고, 상기 평문 대칭키를 이용해, 상기 데이터를 암호화하여, 암호화 데이터를 생성하고, 상기 암호화 데이터를 저장한다. 상기 제어부(22)는 상기 클라이언트 단말기(10)로부터 상기 암호화 데이터에 대한 전송 요청이 수신되면, 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하고, 상기 평문 대칭키를 이용해 상기 암호화 데이터를 복호화하여 복호화 데이터를 생성하며, 상기 복호화 데이터를, 상기 전송을 요청한 상기 클라이언트 단말기(10)로 전송할 수 있다. In particular, the control unit 22 encrypts the plaintext symmetric key using the external device information extracted from the external device 50 connected to the input unit 23 or the communication unit 21 to generate an encrypted symmetric key And stores the encrypted symmetric key. The control unit 22 receives the data from the client terminal 10 and decrypts the encrypted symmetric key using the external device information extracted from the external device 50 to generate a plain text symmetric key, , Encrypts the data, generates encrypted data, and stores the encrypted data. The control unit 22 decrypts the encrypted symmetric key using the external device information extracted from the external device 50 and generates a clear-text symmetric key when the request for transmission of the encrypted data is received from the client terminal 10 Decrypts the encrypted data using the plain text symmetric key to generate decrypted data, and transmits the decrypted data to the client terminal 10 requesting the transmission.

상기 저장부(24)는 전원이 공급되지 않더라도 데이터를 저장할 수 있는 메인 메모리 및 전원이 공급되면 데이터를 저장할 수 없는 휘발성 메모리를 포함할 수 있다. The storage unit 24 may include a main memory capable of storing data even when power is not supplied, and a volatile memory that can not store data when power is supplied.

둘째, 상기 데이터베이스 서버(40)는 각종 정보를 저장하는 서버이다. 상기 데이터베이스 서버(20)로는 현재 일반적으로 이용되는 데이터베이스 서버가 이용될 수 있다.Second, the database server 40 is a server for storing various kinds of information. As the database server 20, a currently used database server may be used.

상기 데이터베이스 서버(40)는 상기 어플리케이션 서버(20)에 포함될 수 있다. 이 경우, 상기 저장부(24)는 상기 데이터베이스 서버(40)의 기능을 수행할 수 있다. The database server 40 may be included in the application server 20. In this case, the storage unit 24 may perform the function of the database server 40.

셋째, 상기 클라이언트 단말기(10)는, 각종 네트워크를 통해 상기 어플리케이션 서버(20)와 통신을 수행할 수 있는 각종 장치가 될 수 있다. 즉, 상기 클라이언트 단말기(10)는 현재 일반적으로 이용되는, 개인용 컴퓨터(PC), 노트북, 테블릿PC 및 스마트폰이 될 수 있다.Third, the client terminal 10 may be various devices capable of performing communication with the application server 20 through various networks. That is, the client terminal 10 may be a personal computer (PC), a notebook computer, a tablet PC, and a smart phone, which are currently commonly used.

넷째, 상기 해커 단말기(30) 역시, 각종 네트워크를 통해 상기 어플리케이션 서버(20)와 통신을 수행할 수 있는 각종 장치가 될 수 있다. Fourth, the hacker terminal 30 may also be various devices capable of performing communication with the application server 20 through various networks.

다섯째, 상기 외부장치(50)는 상기 어플리케이션 서버(20)에서 상기 암호화 및 상기 복호화 시 이용될 암호화 대칭키의 생성에 이용되는 물리적인 장치이다.Fifth, the external device 50 is a physical device used by the application server 20 to generate the encrypted symmetric key to be used in the encryption and decryption.

도 3은 본 발명에 따른 암호화 방법의 일실시예 흐름도이다. 3 is a flowchart of an embodiment of the encryption method according to the present invention.

본 발명에 따른 암호화 방법은, 도 3에 도시된 바와 같이, 상기 어플리케이션 서버(20)가 상기 어플리케이션 서버(20)에 연결되어 있는 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여 암호화 대칭키를 생성하며, 상기 암호화 대칭키를 저장하는 단계(S102), 상기 클라이언트 단말기(10)로부터 데이터를 수신하는 단계(S104), 상기 어플리케이션 서버(20)가 상기 어플리케이션 서버(20)에 연결되어 있는 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계(S105), 상기 어플리케이션 서버(20)가 상기 평문 대칭키를 이용해, 상기 데이터를 암호화하여, 암호화 데이터를 생성하는 단계(S106), 상기 암호화 데이터를 저장하는 단계(S108), 상기 클라이언트 단말기(10)로부터 상기 암호화 데이터에 대한 전송 요청을 수신하는 단계(S110), 상기 어플리케이션 서버(20)가 상기 어플리케이션 서버(20)에 연결되어 있는 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계(S112), 상기 평문 대칭키를 이용해 상기 암호화 데이터를 복호화하여 복호화 데이터를 생성하는 단계(S114) 및 상기 복호화 데이터를, 상기 전송을 요청한 상기 클라이언트 단말기(10)로 전송하는 단계를 포함한다. 3, the encryption method according to the present invention is a method in which the application server 20 uses the external device information extracted from the external device 50 connected to the application server 20, (S102), receiving data from the client terminal (S104), and transmitting the encrypted symmetric key to the application server (20) (S105) of decrypting the encrypted symmetric key by using the external device information extracted from the external device (50) connected to the external device (50) (S105). The application server (20) (S106), encrypting the data to generate encrypted data (S106), storing the encrypted data (S108) The application server 20 receives the transmission request for the encrypted data in step S110. The application server 20 transmits the encrypted symmetric key using the external device information extracted from the external device 50 connected to the application server 20, (S114) of decrypting the encrypted data using the symmetric key to generate decrypted data (S114); and transmitting the decrypted data to the client terminal 10 ). ≪ / RTI >

첫째, 상기 어플리케이션 서버(20)는 상기 어플리케이션 서버(20)와 매칭되어 있는 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여, 암호화 대칭키를 생성한다(S102).First, the application server 20 encrypts the plaintext symmetric key using the external device information extracted from the external device 50 matched with the application server 20 to generate an encrypted symmetric key (S102).

본 발명은 암호화 방법에 이용되는 평문 대칭키를 상기 어플리케이션 서버(20)에 연결된 상기 외부장치(50)로부터 추출된 외부장치정보를 이용해 1차적으로 암호화하여 상기 암호화 대칭키를 생성하며, 2차적으로 상기 암호화 대칭키를 이용해 상기 데이터를 암호화한다.In the present invention, the plaintext symmetric key used in the encryption method is primarily encrypted by using the external device information extracted from the external device 50 connected to the application server 20 to generate the encrypted symmetric key, And encrypts the data using the encrypted symmetric key.

상기 평문 대칭키를 암호화하여, 상기 암호화 대칭키를 생성하는 구체적인 방법은 도 4를 참조하여 상세히 설명된다.A concrete method of encrypting the plaintext symmetric key to generate the encrypted symmetric key will be described in detail with reference to FIG.

둘째, 상기 어플리케이션 서버(20)는 상기 클라이언트 단말기(10)로부터 데이터를 수신한다(S104).Second, the application server 20 receives data from the client terminal 10 (S104).

셋째, 상기 데이터가 수신되면(S104), 상기 어플리케이션 서버(20)는 상기 암호화 대칭키를 상기 외부장치정보를 이용해 복호화하여, 평문 데이터를 생성한다(S105). 상기 과정(S105)에 대한 구체적인 방법은 도 5를 참조하여 상세히 설명된다. Third, when the data is received (S104), the application server 20 decrypts the encrypted symmetric key using the external device information to generate plaintext data (S105). A specific method of the above-described process (S105) will be described in detail with reference to FIG.

넷째, 상기 어플리케이션 서버(20)는 상기 평문 대칭키를 이용해, 상기 데이터를 암호화하여 암호화 데이터를 생성한다(S106).Fourth, the application server 20 encrypts the data using the plain text symmetric key to generate encrypted data (S106).

다섯째, 상기 어플리케이션 서버(20)는 상기 암호화 데이터를 상기 데이터베이스 서버(40)에 저장한다(S108).Fifth, the application server 20 stores the encrypted data in the database server 40 (S108).

여섯째, 상기 어플리케이션 서버(20)는 클라이언트 단말기(10)로부터 상기 데이터, 즉, 상기 암호화 데이터에 대한 요청을 수신한다(S110). 이하에서는, 설명의 편의를 위해, 상기 데이터, 즉, 상기 암호화 데이터를 요청하는 것이 상기 암호화에 대한 복호화를 요청하는 것으로 설명된다. Sixth, the application server 20 receives a request for the data, i.e., the encrypted data, from the client terminal 10 (S110). Hereinafter, for convenience of explanation, it is described that requesting the data, i.e., the encrypted data, requests decryption for the encryption.

상기 복호화 요청을 전송한 클라이언트 단말기(10)는 상기 암호화 요청을 전송한 클라이언트 단말기와 동일할 수도 있으며, 동일하지 않을 수도 있다.The client terminal 10 transmitting the decryption request may be the same as or different from the client terminal that transmitted the decryption request.

일곱째, 상기 복호화 요청이 수신되면(S110), 상기 어플리케이션 서버(20)는 상기 암호화 대칭키를 상기 외부장치정보를 이용해 복호화하여, 평문 데이터를 생성한다(S112). 상기 과정(S112)에 대한 구체적인 방법은 도 5를 참조하여 상세히 설명된다. Seventh, when the decryption request is received (S110), the application server 20 decrypts the encrypted symmetric key using the external device information and generates plain text data (S112). A specific method of the step S112 will be described in detail with reference to FIG.

상기 데이터가 수신될 때(S104), 상기 어플리케이션 서버(20)가 상기 암호화 대칭키를 상기 외부장치정보를 이용해 복호화하여, 평문 데이터를 생성하는 과정(S105) 및 상기 복호화 요청이 수신될 때(S110), 상기 어플리케이션 서버(20)가 상기 암호화 대칭키를 상기 외부장치정보를 이용해 복호화하여, 평문 데이터를 생성하는 과정(S112)은, 동일한 절차에 따라 수행될 수 있다. 따라서, 상기 두 개의 과정들(S105 및 S112)는 도 5를 참조하여 설명될 수 있다. When the data is received (S104), the application server 20 decrypts the encrypted symmetric key using the external device information to generate plaintext data (S105); and when the decryption request is received (S110 (S112) of decrypting the encrypted symmetric key using the external device information and generating the plain text data by the application server 20 can be performed according to the same procedure. Therefore, the two processes (S105 and S112) can be described with reference to FIG.

여덟째, 상기 어플리케이션 서버(20)는 상기 평문 대칭키를 이용해 상기 암호화 데이터를 복호화하여 복호화 데이터를 생성한다(S114).Eighth, the application server 20 decrypts the encrypted data using the plain text symmetric key to generate decrypted data (S114).

아홉째, 상기 어플리케이션 서버(20)는 상기 복호화 데이터를 상기 복호화 요청을 전송한 상기 클라이언트 단말기(10)로 전송한다.Ninth, the application server 20 transmits the decrypted data to the client terminal 10 which has transmitted the decryption request.

이에 따라, 사용자는 상기 클라이언트 단말기(10)로 전송된 상기 복호화 데이터를 이용할 수 있다. Accordingly, the user can use the decrypted data transmitted to the client terminal 10.

도 4는 본 발명에 따른 암호화 방법에 적용되는 암호화 대칭키 생성 방법의 일실시예 흐름도이다.4 is a flowchart of an embodiment of an encrypted symmetric key generation method applied to the encryption method according to the present invention.

본 발명은, 평문 형태의 대칭키(평문 대칭키)를 상기 어플리케이션 서버(20)에 연결된 외부장치의 특정데이터(외부장치정보)를 사용해 암호화하여, 암호화 대칭키를 생성한다. In the present invention, a symmetric key (plaintext symmetric key) in the form of a plain text is encrypted using specific data (external device information) of an external device connected to the application server 20 to generate an encrypted symmetric key.

상기 암호화 대칭키가 외부로 유출되더라도, 물리적인 외부장치(50), 즉, 상기 암호화 대칭키의 생성과정에 이용된 상기 외부장치(50)가 없이는, 상기 암호화 대칭키는 복호화되지 못한다. 따라서, 상기 암호화 대칭키와 함께 상기 외부장치(50)가 탈취되지 않는 이상, 상기 암호화 대칭키와 매칭되어 있는 암호화 데이터는 복호화될 수 없다. The encrypted symmetric key can not be decrypted without the physical device 50, i.e., the external device 50 used in the process of generating the encrypted symmetric key, even if the encrypted symmetric key is exported to the outside. Therefore, unless the external device 50 is stolen with the encrypted symmetric key, the encrypted data matching the encrypted symmetric key can not be decrypted.

본 발명에 따른 암호화 방법에 적용되는 암호화 대칭키 생성 방법은, 상기 외부장치정보를 이용해 대칭키를 암호화하여 암호화 대칭키를 생성하는 방법(S102)을 의미한다.The encrypted symmetric key generation method applied to the encryption method according to the present invention means a method (S102) of encrypting the symmetric key using the external device information to generate an encrypted symmetric key.

상기 암호화 대칭키를 생성하는 단계(S104)는, 도 4에 도시된 바와 같이, 대칭키를 이용한 암호화 방법을 선택하는 단계(S302), 상기 암호화 방법의 레벨을 선택하는 단계(S304), 상기 어플리케이션 서버(20)가, 상기 어플리케이션 서버(20)에 연결되어 있는 상기 외부장치(50)로부터 외부장치정보를 추출하며, 평문 대칭키를 입력받는 단계(S306, S308, S310, S312, S314, S316), 상기 외부장치정보를 해쉬화하는 단계(S318), 해쉬화된 정보로부터 상기 암호화 방법의 레벨의 길이에 비례하는 해쉬정보를 추출하는 단계(S320), 상기 해쉬정보를 이용해 상기 평문 대칭키를 암호화하여 상기 암호화 대칭키를 생성하는 단계(S322) 및 상기 암호화 대칭키를 저장하는 단계(S324)를 포함한다. The step (S104) of generating the encrypted symmetric key includes a step (S302) of selecting an encryption method using a symmetric key, a step (S304) of selecting a level of the encryption method (S304) S306, S308, S310, S312, S314, and S316 in which the server 20 extracts external device information from the external device 50 connected to the application server 20 and receives the plain text symmetric key, (S320), extracting hash information proportional to the length of the level of the encryption method from the hashed information (S320), encrypting the plaintext symmetric key using the hash information (S322) the encrypted symmetric key, and storing the encrypted symmetric key (S324).

첫째, 상기 어플리케이션 서버(20)의 관리자는 본 발명에서 이용될 암호화 방법을 선택하며(S302), 암호화 방법의 레벨(128bit 또는 256bit 등)을 선택한다(S304). 또한, 상기 관리자는 상기 암호화 방법에 적용될 평문 대칭키를 상기 입력부(23)를 통해 입력받아 상기 저장부(24)에 저장한다(S312).First, the administrator of the application server 20 selects an encryption method to be used in the present invention (S302), and selects a level (128 bits or 256 bits, etc.) of the encryption method (S304). Also, the administrator inputs the plaintext symmetric key to be applied to the encryption method through the input unit 23, and stores it in the storage unit 24 (S312).

둘째, 상기 어플리케이션 서버(20)는 상기 통신부(21) 또는 상기 입력부(23)에 연결된 외부장치들의 목록을 추출해서 보여줄 수 있으며, 상기 관리자는 연결된 외부장치들 중 어느 하나를 선택한다(S308). Second, the application server 20 can extract and display a list of external devices connected to the communication unit 21 or the input unit 23, and the manager selects any one of connected external devices (S308).

상기 어플리케이션 서버(20)와 같은 서버에서는, 필수적으로 NIC(Lan card)가 존재하기 때문에 외부장치의 존재 유부를 판단하는 과정이 성립하지 않을 수도 있다(S310). In a server such as the application server 20, a process of determining the presence of an external device may not be established because an NIC (Lan card) is necessarily present (S310).

그러나, 관리자가 NIC 이외의 외부장치에서 특정데이터를 추출한다고 가정한다면, 상기 외부장치(50)의 존재 유무를 판단하는 과정은 성립될 수 있다. 따라서, 상기 외부장치(50)의 존재를 판단하는 과정은 성립될 할 수도 있고, 성립되지 않을 수도 있다.However, if it is assumed that the administrator extracts specific data from an external device other than the NIC, a process of determining whether the external device 50 is present may be established. Therefore, the process of determining the presence of the external device 50 may or may not be established.

셋째, 평문 대칭키를 입력하는 과정(S312)에서는, 관리자가 이미 운용되고 있는 상기 어플리케이션 서버(20) 내에 하드코딩 되어 있는 16자리 또는 32자리의 평문 대칭키를 입력할 수 있다.Thirdly, in the step of inputting the plain-text symmetric key (S312), a 16-digit or 32-digit plain-text symmetric key hard-coded in the application server 20 already operated by the administrator can be input.

또한, 상기 어플리케이션 서버(20)가 신규로 도입되어 운영될 시스템이라면, 관리자는, 특수문자, 영문, 숫자를 조합하여 임의의 문자 16자리 또는 32자리를 상기 평문 대칭키로 입력할 수 있다.If the application server 20 is a newly introduced system to be operated, the administrator can input arbitrary 16-character or 32-digit arbitrary characters as the symmetric key by combining special characters, alphabets, and numbers.

상기 어플리케이션 서버(20)는 입력된 상기 평문 대칭키가 적절하지 않으면, 평문 대칭키를 입력하는 과정을 반복적으로 수행할 수 있다(S312, S314). If the inputted plain text symmetric key is not appropriate, the application server 20 may repeatedly perform the process of inputting the plain text symmetric key (S312, S314).

넷째, 상기 어플리케이션 서버(20)는 상기 외부장치(50)로부터 외부장치번호를 추출한다(S316).Fourth, the application server 20 extracts the external device number from the external device 50 (S316).

일반적으로, NIC 같은 경우 Mac address와 같은 고유한 데이터를 가지고 있다. Typically, NICs have unique data, such as a Mac address.

또한, 특정 디바이스의 접속 허용 또는 접속 차단과 같은 기능을 가지는 서비스는 일반적으로 상기한 바와 같은 Mac address의 고유한 데이터를 사용한다. In addition, a service having a function of accessing or disconnecting a specific device generally uses data unique to the Mac address as described above.

또한, 상기한 바와 같은 Mac address 정보는 서버, 노트북, 스마트 폰, 스마트TV 등과 같이 인터넷을 사용하는 모든 디바이스에 의해 이용되고 있다. In addition, the above-mentioned Mac address information is used by all devices using the Internet such as a server, a notebook, a smart phone, and a smart TV.

따라서, 상기 어플리케이션 서버(20)는 상기 Mac address와 같은 고유한 데이터를 상기 외부장치(50)의 외부장치정보로 추출할 수 있다. Therefore, the application server 20 can extract unique data such as the Mac address as external device information of the external device 50.

또한, USB 메모리 같은 경우, 제조사마다 부여하는 Serial number가 존재한다. 따라서, 상기 어플리케이션 서버(20)는 상기 Serial number를 상기 외부장치(50)의 상기 외부장치정보로 추출할 수 있다.In the case of a USB memory, there is a serial number assigned to each manufacturer. Therefore, the application server 20 can extract the serial number as the external device information of the external device 50. [

또한, 상기 외부장치(50)로는 외장하드디스크, 외장CD-ROM 등이 이용될 수 있으며, 상기 어플리케이션 서버(20)는 상기 외장하드디스크, 상기 외장 CD-ROM 등에 매칭되어 있는 특정 정보를 상기 외부장치정보로 추출할 수 있다.In addition, the external device 50 may be an external hard disk or an external CD-ROM. The application server 20 may transmit specific information matched to the external hard disk, the external CD-ROM, It can be extracted as device information.

다섯째, 상기 어플리케이션 서버(20)는 상기 외부장치정보를 해쉬(Hash)화 한다(S318).Fifth, the application server 20 hashashes the external device information (S318).

여섯째, 상기 어플리케이션 서버(20)는 해쉬화된 정보로부터, 상기에서 선택된 암호화 방법의 레벨의 길이에 비례한 해쉬정보를 추출한다(S320).Sixth, the application server 20 extracts hash information proportional to the length of the level of the encryption method selected from the hashed information (S320).

예를 들어, 관리자는 평문 대칭키를 이용하는 방법들(DES, AES, SEED, ARIA, RC4 등) 중 어느 하나를 선택하여 이용할 수 있으며, 평문 대칭키를 이용하는 방법의 형태와 bit에 따라서 상기 암호화 대칭키의 길이가 달라질 수 있다. For example, the administrator can select one of the methods using the plaintext symmetric key (DES, AES, SEED, ARIA, RC4, etc.) and use the plaintext symmetric key The length of the key can vary.

본 발명은, 상기 외부장치(50)의 Serial Number 또는 Mac Address 등과 같은 Unique한 정보를 추출하여, 해쉬화하고, 해쉬화된 데이터에서 특정구간을 추출하여 해쉬정보를 생성한다.The present invention extracts unique information such as a serial number or a Mac address of the external device 50 and generates a hash, extracts a specific section from the hashed data, and generates hash information.

일곱째, 상기 어플리케이션 서버(20)는 상기 해쉬정보를 이용해 상기 평문 대칭키를 암호화하여 상기 암호화 대칭키를 생성한다(S322).Seventh, the application server 20 encrypts the plaintext symmetric key using the hash information to generate the encrypted symmetric key (S322).

여덟째, 상기 어플리케이션 서버(20)는 상기 암호화 대칭키를 상기 저장부(24) 또는 상기 데이터베이스 서버(400)에 저장한다(S324). Eighth, the application server 20 stores the encrypted symmetric key in the storage unit 24 or the database server 400 (S324).

도 5는 본 발명에 따른 암호화 방법에 적용되는 암호화 대칭키 복호화 방법의 일실시예 흐름도이다. FIG. 5 is a flowchart illustrating an encryption symmetric key decryption method applied to the encryption method according to an embodiment of the present invention.

본 발명에 따른 암호화 방법에 적용되는 암호화 대칭키 복호화 방법은, 상기 외부장치정보를 이용해 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 방법(S105 또는 S112))이다.The encrypted symmetric key decryption method applied to the encryption method according to the present invention is a method (S105 or S112) for generating a plain-text symmetric key by decrypting the encrypted symmetric key using the external device information.

상기 암호화 대칭키를 복호화하여 상기 평문 대칭키를 생성하는 단계(S105, S112)는, 상기 클라이언트 단말기(10)로부터 상기 데이터를 수신하거나, 또는 클라이언트 단말기(10)로부터 상기 암호화 데이터에 대한 전송 요청을 수신하면, 상기 어플리케이션 서버(20)가 상기 어플리케이션 서버(20)에 연결되어 있는 상기 외부장치정보(50)를 추출하는 단계(S402, S404, S406), 상기 외부장치정보를 해쉬화하는 단계(S408), 해쉬화된 정보로부터 상기 암호화 방법의 레벨의 길이에 비례하는 해쉬정보를 추출하는 단계(S410) 및 상기 해쉬정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계(S412)를 포함한다.The step (S105, S112) of decrypting the encrypted symmetric key to generate the plain-text symmetric key may include receiving the data from the client terminal 10 or requesting transmission of the encrypted data from the client terminal 10 (S402, S404, S406) of extracting the external device information (50) connected to the application server (20) by the application server (20), hashing the external device information Extracting hash information proportional to the length of the level of the encryption method from the hashed information in operation S410, and generating the plain text symmetric key in operation S412 by decrypting the encrypted symmetric key using the hash information .

첫째, 상기 어플리케이션 서버(20)는 상기 데이터가 수신되거나, 상기 복호화 요청이 수신되면, 상기 데이터를 암호화하거나 상기 복호화에 이용될 상기 암호화 대칭키를 선택한다(S402).First, when the data is received or the decryption request is received, the application server 20 encrypts the data or selects the encrypted symmetric key to be used for the decryption (S402).

예를 들어, 상기 어플리케이션 서버(20)의 상기 저장부(24) 또는 상기 데이터베이스 서버(40)에는 복수의 암호화 대칭키가 저장될 수 있으며, 상기 어플리케이션 서버(20)는 상기 암호화 대칭키들 중, 상기 데이터를 암호화하거나 또는 상기 복호화에 이용될 암호화 대칭키를 선택한다. For example, a plurality of encrypted symmetric keys may be stored in the storage unit 24 or the database server 40 of the application server 20, and the application server 20 may store the encrypted symmetric keys, Encrypts the data or selects an encrypted symmetric key to be used for the decryption.

둘째, 상기 어플리케이션 서버(20)는 상기 외부장치(50)로부터 외부장치정보를 추출한다(S404, S406).Second, the application server 20 extracts external device information from the external device 50 (S404, S406).

이를 위해, 우선 상기 어플리케이션 서버(20)는 상기 암호화 대칭키와 매칭되는 외부장치가 존재하는지의 여부를 판단한 후(S404), 존재하면, 상기 외부장치정보를 추출한다(S406).To this end, the application server 20 first determines whether there is an external device matching the encrypted symmetric key (S404), and if so, extracts the external device information (S406).

셋째, 상기 어플리케이션 서버(20)는 추출된 상기 외부장치정보를 해쉬화한다(S408).Third, the application server 20 hashes the extracted external device information (S408).

넷째, 상기 어플리케이션 서버(20)는 해쉬화된 정보로부터 상기 암호화 방법의 레벨의 길이에 비례하는 해쉬정보를 추출한다(S410).Fourth, the application server 20 extracts hash information proportional to the level length of the encryption method from the hashed information (S410).

다섯째, 상기 어플리케이션 서버(20)는 상기 해쉬정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성한다(S412).Fifth, the application server 20 decrypts the encrypted symmetric key using the hash information to generate a plain text symmetric key (S412).

즉, 암호화 대칭키가 다시 평문 대칭키로 변환되기 위해서는 상기 암호화 대칭키를 생성할 때 이용되었던 외부장치정보가 반드시 존재해야 한다.That is, in order for the encrypted symmetric key to be converted back to the plaintext symmetric key, the external device information used in generating the encrypted symmetric key MUST be present.

따라서, 해커가, 상기 어플리케이션 서버(20) 또는 상기 데이터베이스 서버(40)에 저장되어 있는 상기 암호화 데이터 및 상기 암호화 대칭키를 해킹하였다고 하더라도, 해커가 상기 암호화 대칭키의 암호화시 이용되었던 외부장치정보 또는 상기 외부장치(50)를 획득할 수 없다면, 상기 암호화 대칭키가 복호화될 수 없으며, 따라서, 상기 암호화 데이터가 복호화될 수 없다. Therefore, even if the hacker hacked the encrypted data and the encrypted symmetric key stored in the application server 20 or the database server 40, it is possible to prevent the hacker from using the external device information If the external device 50 can not be acquired, the encrypted symmetric key can not be decrypted, and thus the encrypted data can not be decrypted.

여섯째, 상기 어플리케이션 서버(20)는 상기 평문 대칭키를 상기 저장부(24)의 휘발성 메모리에 저장한다. Sixth, the application server 20 stores the plaintext symmetric key in the volatile memory of the storage unit 24.

이후, 상기 어플리케이션 서버(20)는 상기 복호화 대칭키를 이용하여, 상기 암호화 데이터를 복호화한다(S114).Thereafter, the application server 20 decrypts the encrypted data using the decrypted symmetric key (S114).

이하에서는, 상기에서 설명된 본 발명이 구체적인 예를 참조하여 간단히 설명된다.Hereinafter, the present invention described above will be briefly described with reference to specific examples.

우선, 종래의 암호화 방법을 설명하면 다음과 같다. First, a conventional encryption method will be described as follows.

예를 들어, 사용자는 상기 서버에 의해 운영되는 홈텍스라는 사이트에 회원으로 가입할 수 있다. For example, a user can subscribe to a site called HomeTex operated by the server.

이 경우, 사용자는 아이디, 비밀번호, 성명, 전화번호, 주소, 공인인증정보등을 상기 서버로 전송하며, 최종적으로 회원가입 완료 버튼을 선택할 수 있다. In this case, the user can transmit an ID, a password, a name, a telephone number, an address, authorized authentication information, etc. to the server and finally select a member registration completion button.

사용자가 입력한 데이터들은 상기 서버 또는 상기 서버와 연결된 데이터베이스 서버에 저장되는 프로세스를 거친다.The data input by the user is stored in the server or a database server connected to the server.

상기 서버는 상기 데이터들을 그대로 저장하지 않고, 민감한 데이터들을 암호화하여 저장할 수 있다. The server can encrypt and store sensitive data without storing the data as it is.

이 경우, 대칭키 방식의 암호화가 이용될 수 있다. 각종 데이터들이 암호화되어 데이터베이스 서버에 저장되면, 나중에 사용자가 로그인하여 다시 자신의 정보를 보려고 할 때, 상기 서버는 암호화된 데이터를 복호화해야 한다. 따라서, 각종 데이터들을 암호화할 때 사용된 대칭키는 상기 서버에 존재해야 한다.In this case, symmetric key encryption can be used. When various data are encrypted and stored in the database server, the server decrypts the encrypted data when the user later logs in and sees his / her information again. Therefore, the symmetric key used when encrypting various data must exist in the server.

상기 서버 또는 상기 데이터베이스 서버에는 평문 형태의 대칭키, 즉, 평문 대칭키가 저장된다. The server or the database server stores a plaintext symmetric key, that is, a plaintext symmetric key.

만약, 해커가 악성코드를 이용하여 상기 서버 또는 상기 데이터베이스 서버에 침투한 경우, 해커는 상기 서버 또는 데이터베이스 서버에 접근하여 암호화된 데이터들을 탈취할 수 있다. 또한, 해커는 상기 서버 또는 상기 데이터베이스 서버에 접근하여 상기 평문 대칭키도 습득할 수 있다.If the hacker infiltrates the server or the database server using a malicious code, the hacker may access the server or the database server to take the encrypted data. Also, the hacker may access the server or the database server to learn the plain text symmetric key.

이 경우, 해커는 탈취한 암호화된 데이터 및 평문 대칭키를 이용하여 상기 암호화된 데이터를 복호화할 수 있다. 상기 과정을 통해 불법적으로 복호화된 데이터는 다양한 분야에서 불법적으로 이용될 수 있다. In this case, the hacker can decrypt the encrypted data using the seized encrypted data and the plaintext symmetric key. Data illegally decoded through the above process can be illegally used in various fields.

본 발명은 상기 평문 대칭키를 효율적으로 관리하는 방법을 제공한다. 즉, 평문 대칭키가, 해커가 전혀 볼 수 없는 형식, 즉 암호화된다면, 고객의 데이터는 쉽게 복호화될 수 없다. 따라서, 본 발명은 평문 대칭키를 암호화하는 방법을 제공한다. 부연하여 설명하면, 보안을 강화하고자 하는 관리자는, 본 발명을 이용하여 기존에 이용되는 평문 대칭키를 암호화하여 이용할 수 있다. The present invention provides a method for efficiently managing the plaintext symmetric key. That is, if the plaintext symmetric key is in a format that the hacker can not see at all, i.e., encrypted, the customer's data can not be decrypted easily. Thus, the present invention provides a method for encrypting a plaintext symmetric key. In other words, the administrator who intends to enhance security can encrypt and use the existing plain text symmetric key using the present invention.

본 발명은, 상기 어플리케이션 서버(20)에 물리적으로 연결된 상기 외부장치(50)의 하드웨어 정보(외부장치정보)를, 평문 대칭키를 암호화하기 위해 요구되는 새로운 대칭키 정보로서 이용한다. 즉, 본 발명은 평문 대칭키를 암호화하기 위해 또 다른 평문 대칭키를 이용하지 않으며, 상기 외부장치정보를 이용한다.The present invention uses hardware information (external device information) of the external device 50 physically connected to the application server 20 as new symmetric key information required for encrypting the plaintext symmetric key. That is, the present invention does not use another plaintext symmetric key to encrypt the plaintext symmetric key, and uses the external device information.

특히, 본 발명에서, 상기 평문 대칭키를 암호화하여 상기 암호화 대칭키를 생성하는 과정(S102)은, 상기 어플리케이션 서버(20)의 구동 준비 시에 최초 1회만 실행될 수 있다. In particular, in the present invention, the step (S102) of encrypting the plaintext symmetric key to generate the encrypted symmetric key may be executed only once at the time of preparing the application server 20 for driving.

예를 들어, 상기 홈텍스 사이트를 제공하는 상기 어플리케이션 서버(20)의 관리자는 본 발명을 이용하기 위해, 상기 홈텍스 사이트를 정기점검으로 전환한다.For example, in order to use the present invention, the manager of the application server 20 providing the home-text site converts the home-text site into periodic inspection.

다음, 상기 관리자는 새로운 USB 메모리(외부장치(50))를 상기 어플리케이션 서버(20)에 연결한다(S306, S308, S310). Next, the manager connects a new USB memory (external device 50) to the application server 20 (S306, S308, S310).

다음, 상기 어플리케이션 서버(20)의 상기 제어부(22)는 관리자에게 USB flash memory, NIC 등과 같은 외부장치들 중 어떤 외부장치의 외부장치정보를 이용해서 평문 대칭키를 암호화할 것인지를 질문할 수 있다(S308).Next, the control unit 22 of the application server 20 may inquire of the administrator whether to encrypt the plaintext symmetric key using external device information of an external device such as a USB flash memory, NIC, or the like (S308).

다음, 상기 제어부(22)는 AES, DES, SEED 등과 같은 대칭키 방식들 중 어떤 대칭키 방식을 이용할 것인지를 질문할 수 있다(S302).Next, the control unit 22 may inquire which symmetric key scheme to use among the symmetric key schemes such as AES, DES, SEED, and the like (S302).

다음, 상기 제어부(22)는 128bit 또는 256 bit와 같은 대칭키 레벨들 중 어떤 대칭키 레벨을 이용할 것인지를 질문할 수 있다(S304).Next, the control unit 22 may inquire which symmetric key level to use among the symmetric key levels such as 128 bits or 256 bits (S304).

다음, 상기 제어부(22)는 16자리 또는 32자리로 구성된 평문 대칭키의 정보를 입력할 것을 요청할 수 있다(S312). Next, the control unit 22 may request to input information of the plain text symmetric key composed of 16 digits or 32 digits (S312).

다음, 상기 제어부(22)는 선택된 외부장치(50)의 외부장치정보를 이용해서 상기 평문 대칭키를 암호화하여, 상기 암호화 대칭키를 생성한다(S316 내지 S324).Next, the control unit 22 encrypts the plaintext symmetric key using the external device information of the selected external device 50 to generate the encrypted symmetric key (S316 to S324).

마지막으로, 상기 제어부(22)는 상기 암호화 대칭키를, 예를 들어, [sample.key] 형태의 파일로 상기 저장부(24) 또는 상기 데이터베이스 서버(40)에 저장한다. Finally, the control unit 22 stores the encrypted symmetric key in the storage unit 24 or the database server 40 as a file in the form of [sample.key], for example.

상기 [sample.key] 파일 내에는 상기 암호화 대칭키도 존재하지만, 하드웨어 비교(매칭) 코드도 삽입될 수 있다.In the [sample.key] file, the encrypted symmetric key is also present, but a hardware comparison (matching) code can also be inserted.

본 발명은 상기 평문 대칭키를 암호화하여 상기 암호화 대칭키를 생성할 수 있으며, 또한, 상기 암호화 대칭키를 복호화해 상기 평문 대칭키를 생성할 수도 있다. The present invention may encrypt the plaintext symmetric key to generate the encrypted symmetric key, and may also decrypt the encrypted symmetric key to generate the plaintext symmetric key.

상기 어플리케이션 서버(20)가 상기 암호화 대칭키를 이용하기 위해서는, 본 발명이, 상기 어플리케이션 서버(20)의 구동시에 로드되어야 한다. In order for the application server 20 to use the encrypted symmetric key, the present invention must be loaded at the time of activation of the application server 20.

예를 들어, 상기 어플리케이션 서버(20)가 구동을 시작하면, 상기 제어부(22)는 상기 어플리케이션 서버(20)에 물리적으로 연결되어 있는 외부장치(50)를 검색한다. For example, when the application server 20 starts to operate, the control unit 22 searches for an external device 50 physically connected to the application server 20.

다음, 상기 제어부(22)는 상기 외부장치(50)를 상기 [sample.key] 파일과 매칭시켜 순차적으로 검색하여 복호화를 진행한다.Next, the control unit 22 sequentially searches for and matches with the [sample.key] file of the external device 50, and proceeds with decoding.

이 경우, 상기 제어부(22)는 상기 [sample.key] 파일 안에 들어있는 하드웨어 비교 코드를 참고한다.In this case, the control unit 22 refers to the hardware comparison code contained in the [sample.key] file.

다음, 상기 과정에 의해 복호화된 평문 대칭키는 상기 어플리케이션 서버(20)의 상기 저장부(40)에 저장될 수 있으며, 특히, 상기 저장부(40)를 구성하는 휘발성 메모리, 예를 들어 RAM(Memory)에 load될 수 있다.The plaintext symmetric key decrypted by the above process may be stored in the storage unit 40 of the application server 20 and may be stored in a volatile memory constituting the storage unit 40, Memory).

마지막으로, load가 완료되면 상기 어플리케이션 서버(20)에서 상기 외부장치(50)는 제거될 수 있다.Finally, when the load is completed, the external device 50 may be removed from the application server 20.

즉, 본 발명에서, 도 5를 참조하여 설명된 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계(S105, S112)는, 상기 어플리케이션 서버(20)로 전원이 공급되어 상기 어플리케이션 서버(20)가 구동을 시작할 때 1회 수행될 수 있으며, 이 경우, 상기 평문 대칭키는 상기 어플리케이션 서버(20)에 구비된 휘발성 메모리에 저장될 수 있다. That is, in the present invention, the step (S105, S112) of decrypting the encrypted symmetric key described with reference to FIG. 5 to generate the plain text symmetric key is performed by supplying power to the application server 20 The symmetric key may be stored in the volatile memory of the application server 20. In this case,

또한, 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계(S105, S112)는, 상기 어플리케이션 서버(20)에 상기 외부장치(50)가 연결된 상태에서, 상기 암호화 대칭키에 대한 복호화 요청이 있을 때마다 수행될 수도 있다. 이 경우, 상기 복호화 요청에 따라 생성된 상기 평문 대칭키는 상기 어플리케이션 서버(20)에 구비된 휘발성 메모리에 저장될 수 있다. In addition, the step (S105, S112) of decrypting the encrypted symmetric key to generate the plain-text symmetric key may include a step of, when the external device 50 is connected to the application server 20, It can also be done whenever it is. In this case, the plaintext symmetric key generated according to the decryption request may be stored in the volatile memory of the application server 20. [

부연하여 설명하면, 상기한 바와 같은 암호화 대칭키 복호화 과정을 통해 상기 암호화 대칭키가 복호화되어, 상기 평문 대칭키가 상기 휘발성 메모리에 load되면, 상기 어플리케이션 서버(20)는 개인정보를 암호화하거나 복호화할 때 일반적인 평문형태의 대칭키를 이용하지 않고, 상기 휘발성 메모리(RAM(memory))에 load되어 있는 정보를 참조할 수 있다.In more detail, when the encrypted symmetric key is decrypted through the encryption symmetric key decryption process as described above, and the plaintext symmetric key is loaded in the volatile memory, the application server 20 encrypts or decrypts the personal information It is possible to refer to information loaded in the volatile memory (RAM) without using a symmetric key in a general plaintext form.

따라서, 본 발명의 구성을 아는 헤커가, 상기 외부장치(50)의 정보를 습득하려고 해도, 상기한 바와 같이 휘발성 메모리에 상기 평문 대칭키가 Load 된 후에는, 상기 외부장치(50)가 상기 어플리케이션 서버(20)에 연결되지 않을 수 있기 때문에, 헤커는 상기 외부장치(50)의 하드웨어정보를 전혀 알 수 없다.Therefore, even if the hecker who knows the configuration of the present invention intends to acquire the information of the external device 50, after the external device 50 loads the clear text symmetric key into the volatile memory as described above, It may not be connected to the server 20, so that the hecker can not know the hardware information of the external device 50 at all.

또한, 본 발명에서는 상기 휘발성 메모리(RAM)가 이용되기 때문에, 상기 어플리케이션 서버(20)가 재시작되거나, 또는 프로그램이 종료되면, 상기 휘발성 메모리에 로드되어 있는 상기 평문 대칭키 정보는 사라진다. In addition, since the volatile memory (RAM) is used in the present invention, when the application server 20 is restarted or the program is terminated, the plaintext symmetric key information loaded in the volatile memory disappears.

결과적으로 상기 어플리케이션 서버(20)에는 평문 대칭키의 어떠한 정보도 존재하지 않는다. As a result, the application server 20 does not have any information of the plaintext symmetric key.

본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.  그러므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It will be understood by those skilled in the art that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

10: 클라이언트 단말기 20: 어플리케이션 서버
30: 해커 단말기 40: 데이터베이스 서버
50: 외부장치
10: client terminal 20: application server
30: hacker terminal 40: database server
50: External device

Claims (4)

어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장치로부터 추출된 외부장치정보를 이용해 평문 대칭키를 암호화하여 암호화 대칭키를 생성하며, 상기 암호화 대칭키를 저장하는 단계;
클라이언트 단말기로부터 데이터를 수신하는 단계;
상기 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장치로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계;
상기 어플리케이션 서버가 상기 평문 대칭키를 이용해, 상기 데이터를 암호화하여, 암호화 데이터를 생성하는 단계;
상기 암호화 데이터를 저장하는 단계;
클라이언트 단말기로부터 상기 암호화 데이터에 대한 전송 요청을 수신하는 단계;
상기 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장치로부터 추출된 외부장치정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계;
상기 평문 대칭키를 이용해 상기 암호화 데이터를 복호화하여 복호화 데이터를 생성하는 단계; 및
상기 복호화 데이터를, 상기 전송을 요청한 클라이언트 단말기로 전송하는 단계를 포함하는 데이터 암호화 방법.
The application server encrypts the plaintext symmetric key using external device information extracted from an external device connected to the application server to generate an encrypted symmetric key, and storing the encrypted symmetric key;
Receiving data from a client terminal;
The application server decrypting the encrypted symmetric key using external device information extracted from an external device connected to the application server to generate a plain text symmetric key;
The application server encrypting the data using the plaintext symmetric key to generate encrypted data;
Storing the encrypted data;
Receiving a transmission request for the encrypted data from a client terminal;
The application server decrypting the encrypted symmetric key using external device information extracted from an external device connected to the application server to generate a plain text symmetric key;
Decrypting the encrypted data using the plain text symmetric key to generate decrypted data; And
And transmitting the decrypted data to the client terminal requesting the transmission.
제 1 항에 있어서,
상기 암호화 대칭키를 생성하는 단계는,
암호화 방법을 선택하는 단계;
상기 암호화 방법의 레벨을 선택하는 단계;
상기 어플리케이션 서버가, 상기 어플리케이션 서버에 연결되어 있는 외부장치로부터 외부장치정보를 추출하는 단계;
상기 외부장치정보를 해쉬화하는 단계;
해쉬화된 정보로부터 상기 암호화 방법의 레벨의 길이에 비례하는 해쉬정보를 추출하는 단계;
상기 해쉬정보를 이용해 평문 대칭키를 암호화하여 상기 암호화 대칭키를 생성하는 단계; 및
상기 암호화 대칭키를 저장하는 단계를 포함하는 데이터 암호화 방법.
The method according to claim 1,
Wherein the step of generating the encrypted symmetric key comprises:
Selecting an encryption method;
Selecting a level of the encryption method;
The application server extracting external device information from an external device connected to the application server;
Hashing the external device information;
Extracting hash information proportional to a length of the level of the encryption method from the hashed information;
Encrypting the plaintext symmetric key using the hash information to generate the encrypted symmetric key; And
And storing the encrypted symmetric key.
제 1 항에 있어서,
상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계는,
클라이언트 단말기로부터 상기 데이터를 수신하거나, 또는 클라이언트 단말기로부터 상기 암호화 데이터에 대한 전송 요청을 수신하면, 상기 어플리케이션 서버가 상기 어플리케이션 서버에 연결되어 있는 외부장치정보를 추출하는 단계;
상기 외부장치정보를 해쉬화하는 단계;
해쉬화된 정보로부터 상기 암호화 방법의 레벨의 길이에 비례하는 해쉬정보를 추출하는 단계; 및
상기 해쉬정보를 이용해 상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계를 포함하는 데이터 암호화 방법.
The method according to claim 1,
The step of decrypting the encrypted symmetric key to generate a plain-
Extracting external device information connected to the application server when the application server receives the data from the client terminal or receives a transmission request for the encrypted data from the client terminal;
Hashing the external device information;
Extracting hash information proportional to a length of the level of the encryption method from the hashed information; And
And decrypting the encrypted symmetric key using the hash information to generate a plain text symmetric key.
제 1 항에 있어서,
상기 암호화 대칭키를 복호화하여 평문 대칭키를 생성하는 단계는,
상기 어플리케이션 서버로 전원이 공급되어 상기 어플리케이션 서버가 구동을 시작할 때 수행되며, 상기 평문 대칭키는 상기 어플리케이션 서버에 구비된 휘발성 메모리에 저장되는 데이터 암호화 방법.
The method according to claim 1,
The step of decrypting the encrypted symmetric key to generate a plain-
Wherein the application server is activated when power is supplied to the application server, and the plaintext symmetric key is stored in a volatile memory of the application server.
KR1020160033681A 2016-03-21 2016-03-21 Method of encrypting data KR101808313B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160033681A KR101808313B1 (en) 2016-03-21 2016-03-21 Method of encrypting data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160033681A KR101808313B1 (en) 2016-03-21 2016-03-21 Method of encrypting data

Publications (2)

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

Family

ID=60035634

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160033681A KR101808313B1 (en) 2016-03-21 2016-03-21 Method of encrypting data

Country Status (1)

Country Link
KR (1) KR101808313B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017221407A1 (en) 2017-08-29 2019-02-28 Hyundai Motor Company FAHRASSISTENZSYSTEM USING NAVIGATION INFORMATION AND ITS OPERATING PROCESS

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101512241B1 (en) * 2013-10-25 2015-04-16 한양대학교 에리카산학협력단 Method and system for providing contents to digital video recorder using personal virtualization based on cloud

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017221407A1 (en) 2017-08-29 2019-02-28 Hyundai Motor Company FAHRASSISTENZSYSTEM USING NAVIGATION INFORMATION AND ITS OPERATING PROCESS

Also Published As

Publication number Publication date
KR101808313B1 (en) 2017-12-12

Similar Documents

Publication Publication Date Title
US8712041B2 (en) Content protection apparatus and content encryption and decryption apparatus using white-box encryption table
US10469253B2 (en) Methods and apparatus for migrating keys
US11074332B2 (en) Methods and systems of securely transferring data
US9641328B1 (en) Generation of public-private key pairs
US11677546B2 (en) Methods and systems of securely transferring data
JP6930053B2 (en) Data encryption method and system using device authentication key
JP7323004B2 (en) Data extraction system, data extraction method, registration device and program
US10699021B2 (en) Method and a device for secure storage of at least one element of digital information, and system comprising such device
KR101808313B1 (en) Method of encrypting data
JP2017108237A (en) System, terminal device, control method and program
GB2579884A (en) Methods and systems of securely transferring data
CN113779629A (en) Key file sharing method and device, processor chip and server
JP6165044B2 (en) User authentication apparatus, system, method and program
KR101851719B1 (en) System and method for distributing to client terminals the encryption key
KR20170120898A (en) Apparatus for confirming data and method for confirming data using the same
JP2023048525A (en) Data sharing apparatus and data sharing method
KR20210126944A (en) Method for Sharing Secret Information
KR100959380B1 (en) Flash contents supplying method
WO2009018513A1 (en) Systems and methods for implementing a mutating lock box

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