KR101924047B1 - Encryption method and apparatus using the same, decryption method and appratus using the same - Google Patents

Encryption method and apparatus using the same, decryption method and appratus using the same Download PDF

Info

Publication number
KR101924047B1
KR101924047B1 KR1020160057156A KR20160057156A KR101924047B1 KR 101924047 B1 KR101924047 B1 KR 101924047B1 KR 1020160057156 A KR1020160057156 A KR 1020160057156A KR 20160057156 A KR20160057156 A KR 20160057156A KR 101924047 B1 KR101924047 B1 KR 101924047B1
Authority
KR
South Korea
Prior art keywords
data
encryption
function
value
hash
Prior art date
Application number
KR1020160057156A
Other languages
Korean (ko)
Other versions
KR20170127105A (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 KR1020160057156A priority Critical patent/KR101924047B1/en
Publication of KR20170127105A publication Critical patent/KR20170127105A/en
Application granted granted Critical
Publication of KR101924047B1 publication Critical patent/KR101924047B1/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03828Arrangements for spectral shaping; Arrangements for providing signals with specified spectral properties
    • H04L25/03866Arrangements for spectral shaping; Arrangements for providing signals with specified spectral properties using scrambling
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Abstract

본 발명은 암호화 방법에 관한 것으로, 더욱 상세하게는 데이터 암호화에 사용되는 암호화키를 공유하지 않더라도 데이터를 복호화할 수 있는 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치에 관한 것이다.
이를 위한 본 발명의 일 실시 예에 따른 송신 장치에서의 암호화 방법에 있어서, 상기 송신 장치는 데이터(d)를 입력 받는 단계, 상기 입력된 데이터(d)에 암호화 함수(E)를 적용하여 데이터(d)를 암호화하는 단계, 상기 암호화된 데이터(E(d)) 및 상기 암호화하는 단계에서 발생되는 데이터를 스크램블링하는 단계 및 상기 스크램블링된 데이터를 수신 장치로 전송하는 단계를 포함하여 이뤄질 수 있다.
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an encryption method, and more particularly, to an encryption method capable of decrypting data without sharing an encryption key used for data encryption, and a transmitting apparatus, a decrypting method, and a receiving apparatus using the same.
In the encrypting method in the transmitting apparatus according to an embodiment of the present invention, the transmitting apparatus receives the data d, applies an encryption function E to the input data d, d), scrambling the data generated in the encrypted data E (d) and the encrypting step, and transmitting the scrambled data to a receiving device.

Description

암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치{ENCRYPTION METHOD AND APPARATUS USING THE SAME, DECRYPTION METHOD AND APPRATUS USING THE SAME}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to an encryption method, a transmitting apparatus, a decoding method, and a receiving apparatus using the same,

본 발명은 암호화 방법에 관한 것으로, 더욱 상세하게는 데이터 암호화에 사용되는 암호화키를 공유하지 않더라도 데이터를 복호화할 수 있는 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an encryption method, and more particularly, to an encryption method capable of decrypting data without sharing an encryption key used for data encryption, and a transmitting apparatus, a decrypting method, and a receiving apparatus using the same.

이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The contents described in this section merely provide background information on the present embodiment and do not constitute the prior art.

최근, 각종 문서와 데이터 등과 같은 정보들이 컴퓨터에 의해 디지털화되고, 인터넷이나 이메일 및 디지털 저장 매체들이 발달함에 따라, 원하는 자료를 보다 신속하고 용이하게 얻을 수 있는 기회가 주어지고 있다. Recently, as information such as various documents and data is digitized by computers, and as the Internet, e-mail, and digital storage media are developed, there is an opportunity to obtain desired data more quickly and easily.

그런데 이러한 디지털 데이터들은 그 특성상 원본과 동일한 복사본 혹은 변형본을 쉽게 만들어 낼 수 있을 뿐 아니라, 손쉽게 배포할 수 있기 때문에 이러한 불법적인 복사 및 배포 등으로 인하여 기업이나 기관의 기밀이 누출을 통해 기업이나 국가 경쟁력의 약화까지 초래할 수 있는 문제점이 대두되고 있다. 특히, 최근에 기업 내에서의 LAN(Local Area Network)이나 KMS(Knowledge Management System) 구축이 급격히 진행됨에 따라 기업 내의 정보나 자료가 간간히 왕래되고 있으므로, 이에 따른 디지털 정보의 접근의 용이성으로 인하여 기업이나 기관의 정보노출의 가능성은 더더욱 증대되고 있는 실정이다. However, because of the nature of these digital data, it is not only easy to create the same copy or modified version as the original, but also it is easy to distribute it. Therefore, illegal copying and distribution, There is a problem that can lead to weakening of competitiveness. In particular, as the construction of a LAN (local area network) or a KMS (Knowledge Management System) has progressed rapidly within the enterprise, the information and the data in the enterprise have been exchanged frequently. Therefore, The possibility of institutional information disclosure is increasing even more.

따라서 데이터에 대한 보안 기술에 대한 요구는 급속히 증가하고 있으며, 이에 따라 데이터에 대한 보안을 강화할 수 있는 여러 가지 기술이 개발되고 있다. Therefore, the demand for security technology for data is rapidly increasing, and accordingly, various techniques for enhancing security of data are being developed.

현재까지의 데이터 보안 기술은 송신단이 데이터를 암호화키를 이용하여 암호화를 수행한 후 암호화된 데이터를 수신단으로 전송하고, 수신단이 해당 암호화키를 이용하여 복호화를 수행하는 것이 일반적으로 알려져 있다. 이때 암호화키에 대한 공개 여부에 따라 공개키 암호화 방식, 비밀키 암호화 방식으로 구분될 수 있으며, 이를 위한 다양한 키 관리 기술들도 소개가 되고 있다. It is generally known that the data security techniques to date transmit data to the receiving end after the data is encrypted using the encryption key, and the receiving end decrypts the data using the encryption key. In this case, the public key encryption method and the secret key encryption method can be classified according to whether the encryption key is disclosed or not, and various key management techniques are introduced.

그러나 현재까지의 암호화키를 이용한 데이터 보안 기술의 경우, 암호화에 사용된 암호화키를 사전에 공유하거나 암호화키 생성을 위한 규칙을 공유함으로써, 불법적인 접근으로 인해 외부로 노출될 가능성이 크다는 문제점이 있다. However, in the case of the data security technique using the encryption key up to now, there is a problem that the encryption key used in the encryption is shared in advance or the rule for generating the encryption key is shared, so that there is a high possibility of being exposed to the outside due to illegal access .

따라서, 데이터를 암호화 시 사용되는 암호화키에 대한 공유 없이 그리고 암호화키 생성을 위한 규칙에 대한 공유 없이도 데이터를 암호화하고 이를 복호화할 수 있는 기술의 개발이 필요하다. Therefore, there is a need to develop a technology capable of encrypting and decrypting data without sharing the encryption key used in encrypting the data and without sharing the rules for generating the encryption key.

한국공개특허 제10-2002-0073810호, 2002년 9월 28일 공개 (명칭: 콘텐츠 보호를 위한 저장 매체, 그 저장 매체 상의 기록 및 재생 방법과 장치)Korean Patent Publication No. 10-2002-0073810, published on September 28, 2002 (name: storage medium for content protection, recording and reproducing method and apparatus on the storage medium thereof)

본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로서, 특히 데이터 암호화에 사용되는 암호화키를 공유하지 않더라도 데이터를 복호화할 수 있는 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치를 제공하는 데 목적이 있다. It is an object of the present invention to provide an encryption method capable of decrypting data without sharing an encryption key used for data encryption, a transmitting apparatus using the same, a decrypting method using the same, and a receiving apparatus using the same. The purpose is to provide.

또한, 본 발명의 송신 장치는 데이터만을 스크램블링하는 게 아니라 암호화 절차에서 발생되는 다양한 값들을 함께 스크램블링하여 전송하고, 수신 장치는 이를 디스크램블링한 후 수신된 값들을 이용하여 암호화된 데이터를 확인할 수 있는 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치를 제공하는 데 그 목적이 있다. In addition, the transmitting apparatus of the present invention not only scrambles data but scrambles and transmits various values generated in the encryption procedure, and the receiving apparatus descrambles the received values, and then encrypts the encrypted data using the received values And a transmitting apparatus, a decoding method, and a receiving apparatus using the same.

그러나, 이러한 본 발명의 목적은 상기의 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.However, the object of the present invention is not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood from the following description.

상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 송신 장치에서의 암호화 방법에 있어서, 상기 송신 장치가 데이터(d)를 입력 받는 단계; 상기 입력된 데이터(d)에 암호화 함수(E)를 적용하여 데이터(d)를 암호화하는 단계; 상기 암호화된 데이터(E(d)) 및 상기 암호화하는 단계에서 발생되는 데이터를 스크램블링하는 단계; 및 상기 스크램블링된 데이터를 수신 장치로 전송하는 단계;를 포함하여 이뤄질 수 있다. According to another aspect of the present invention, there is provided an encryption method in a transmission apparatus, the method comprising: receiving data d from the transmission apparatus; Encrypting the data (d) by applying an encryption function (E) to the input data (d); Scrambling the encrypted data E (d) and data generated in the encrypting step; And transmitting the scrambled data to a receiving device.

이때, 상기 암호화하는 단계는 랜덤값(z)을 생성하는 단계; 상기 생성된 랜덤값(z)을 키 유도 함수(KDF; key derivation function)에 적용하여 암호화 키(key)를 생성하는 단계; 및 상기 생성된 암호화 키 및 암호화 함수(E)를 이용하여 상기 데이터(d)를 암호화하는 단계;를 포함하여 이뤄질 수 있다. The encrypting may include generating a random value z; Applying the generated random value z to a key derivation function (KDF) to generate an encryption key; And encrypting the data (d) using the generated encryption key and the encryption function (E).

또한, 상기 암호화하는 단계는 상기 데이터(d)에 대한 해쉬 값(H(d))을 생성하는 단계; 및 상기 해쉬 값(H(d)) 및 상기 암호화 함수(E)를 이용하여 상기 랜덤값(z)을 암호화하는 단계;를 더 포함하여 이뤄질 수 있다. In addition, the encrypting step may include generating a hash value H (d) for the data d; And encrypting the random value z using the hash value H (d) and the encryption function E.

또한, 상기 스크램블링하는 단계는 상기 암호화된 데이터(E(d)), 상기 데이터(d)에 대한 해쉬 값(H(d)) 및 상기 랜덤값(z)을 암호화한 값(EH(z))을 스크램블링할 수 있다. The scrambling step may include a step of scrambling a value E H (z) obtained by encrypting the encrypted data E (d), the hash value H (d) for the data d, Can be scrambled.

또한, 암호화 함수(E), 해쉬 함수(H), 키 유도 함수(KDF)를 포함하는 복수 개의 세트를 구성하는 단계;를 더 포함하며, 상기 암호화하는 단계 및 상기 스크램블링하는 단계는 상기 복수 개의 세트 중 어느 하나의 세트를 선택하여 이뤄질 수 있다. Further comprising constructing a plurality of sets including a cryptographic function (E), a hash function (H), and a key derivation function (KDF), said encrypting step and said scrambling step May be accomplished by selecting any one of the sets.

이때, 상기 복수 개의 세트를 상기 수신 장치와 공유하는 단계;를 더 포함하여 이뤄질 수 있다. The method may further include sharing the plurality of sets with the receiving apparatus.

상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 암호화 방법을 이용하는 송신 장치는 암호화하고자 하는 데이터(d)를 입력 받는 데이터 입력부; 상기 입력된 데이터(d)에 암호화 함수(E)를 적용하여 데이터(d)를 암호화하는 암호화 처리부; 상기 암호화된 데이터(E(d)) 및 상기 암호화하는 단계에서 발생되는 데이터를 스크램블링하는 스크램블링부; 및 상기 스크램블링된 데이터를 수신 장치로 전송하는 송신부;를 포함하여 구성될 수 있다. According to an aspect of the present invention, there is provided a transmission apparatus using an encryption method including: a data input unit receiving data d to be encrypted; An encryption processing unit for encrypting the data d by applying the encryption function E to the input data d; A scrambling unit scrambling the encrypted data E (d) and the data generated in the encrypting step; And a transmitter for transmitting the scrambled data to a receiving apparatus.

상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 암호화 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체는 데이터(d)를 입력 받는 단계; 상기 입력된 데이터(d)에 암호화 함수(E)를 적용하여 데이터(d)를 암호화하는 단계; 상기 암호화된 데이터(E(d)) 및 상기 암호화하는 단계에서 발생되는 데이터를 스크램블링하는 단계; 및 상기 스크램블링된 데이터를 전송하는 단계;를 실행할 수 있다. According to an aspect of the present invention, there is provided a computer-readable recording medium having recorded thereon a program for executing an encryption method, Encrypting the data (d) by applying an encryption function (E) to the input data (d); Scrambling the encrypted data E (d) and data generated in the encrypting step; And transmitting the scrambled data.

상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 수신 장치에서의 복호화 방법에 있어서, 상기 수신 장치가 송신 장치로부터 스크램블링된 데이터를 수신하는 단계; 상기 스크램블링된 데이터를 디스크램블링하는 단계; 상기 디스크램블링된 데이터에서 확인된 랜덤값(z)을 이용하여 암호화 키를 생성하는 단계; 상기 생성된 암호화 키를 이용하여 상기 디스크램블링된 데이터에서 암호화된 데이터(E(d))를 복호화하는 단계; 및 상기 복호화된 데이터(d)를 검증하는 단계;를 포함하여 이뤄질 수 있다. According to another aspect of the present invention, there is provided a decoding method in a receiving apparatus, comprising: receiving data scrambled from a transmitting apparatus by the receiving apparatus; Descrambling the scrambled data; Generating an encryption key using the random value (z) identified in the descrambled data; Decrypting the encrypted data E (d) in the descrambled data using the generated encryption key; And verifying the decrypted data (d).

이때, 상기 암호화 키를 생성하는 단계는 상기 디스크램블링된 데이터에서 데이터(d)의 해쉬 값(H(d))를 추출하는 단계; 상기 데이터(d)의 해쉬 값(H(d))을 이용하여 랜덤값(z)을 확인하는 단계; 및 상기 확인된 랜덤값(z)을 키 유도 함수((KDF; key derivation function)에 적용하여 암호화 키를 생성하는 단계;를 포함하여 이뤄질 수 있다. The step of generating the encryption key may include extracting a hash value H (d) of the data d from the descrambled data, Identifying a random value z using a hash value H (d) of the data d; And generating the encryption key by applying the identified random value z to a key derivation function (KDF).

또한, 상기 검증하는 단계는 상기 데이터(d)을 해쉬 함수(H)에 적용하여 해쉬 값(H(d))을 생성하는 단계; 및 상기 생성된 해쉬 값(H(d))과 상기 디스클램블링된 데이터에서 추출된 데이터(d)의 해쉬 값(H(d))을 비교하여 검증하는 단계;를 포함하여 이뤄질 수 있다. The verifying may further include applying the data d to a hash function H to generate a hash value H (d); And comparing the generated hash value H (d) with a hash value H (d) of the data d extracted from the decrambled data.

상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 암호화 방법을 이용하는 수신 장치는 송신 장치로부터 스크램블링된 데이터를 수신하는 수신부; 상기 스크램블링된 데이터를 디스크램블링하는 디스크램블링부; 및 상기 디스크램블링부를 통해 상기 디스크램블링된 데이터에서 확인된 랜덤값(z)을 이용하여 암호화 키를 생성하고, 상기 생성된 암호화 키를 이용하여 상기 디스크램블링된 데이터에서 암호화된 데이터(E(d))를 복호화하며, 상기 복호화된 데이터(d)를 검증하는 복호화 처리부;를 포함하여 구성될 수 있다. According to an aspect of the present invention, there is provided a receiving apparatus using an encryption method, the receiving apparatus including: a receiving unit for receiving scrambled data from a transmitting apparatus; A descrambling unit for descrambling the scrambled data; And generating an encryption key using the random value (z) identified in the descrambled data through the descrambling unit, and generating encrypted data E (d) from the descrambled data using the generated encryption key, And a decoding processing unit for decoding the decoded data d and verifying the decoded data d.

상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 복호화 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체는 스크램블링된 데이터를 수신하는 단계; 상기 스크램블링된 데이터를 디스크램블링하는 단계; 상기 디스크램블링된 데이터에서 확인된 랜덤값(z)을 이용하여 암호화 키를 생성하는 단계; 상기 생성된 암호화 키를 이용하여 상기 디스크램블링된 데이터에서 암호화된 데이터(E(d))를 복호화하는 단계; 및 상기 복호화된 데이터(d)를 검증하는 단계;를 실행할 수 있다. According to an aspect of the present invention, there is provided a computer-readable recording medium having recorded thereon a program for executing a decoding method, the method comprising: receiving scrambled data; Descrambling the scrambled data; Generating an encryption key using the random value (z) identified in the descrambled data; Decrypting the encrypted data E (d) in the descrambled data using the generated encryption key; And verifying the decrypted data (d).

본 발명의 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치에 의하면, 공개키 방식이 아닌 랜덤값을 기반으로 생성되는 암호화키를 통해 데이터를 암호화함으로써, 1차적으로 암호화 키의 노출에 따른 보안 문제를 해결할 수 있게 된다. According to the encrypting method of the present invention and the transmitting device, the decrypting method and the receiving device using the encrypting method of the present invention, data is encrypted through an encryption key generated based on a random value rather than a public key, Thereby solving the security problem.

또한, 본 발명에 의하면, 암호화를 하고자 하는 데이터뿐 아니라, 암호화 과정에서 발생되는 값들을 모두 스크램블링하여 수신 장치로 전송함으로써, 데이터 송수신에 따라 발생될 수 있는 보안 문제를 이중으로 예방할 수 있어 데이터 보안이 보다 효율적으로 이뤄질 수 있게 된다. In addition, according to the present invention, not only the data to be encrypted but also all the values generated in the encryption process are scrambled and transmitted to the receiving apparatus, so that a security problem that may be caused by data transmission and reception can be prevented, It can be done more efficiently.

아울러, 상술한 효과 이외의 다양한 효과들이 후술될 본 발명의 실시 예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 수 있다.In addition, various effects other than the above-described effects can be directly or implicitly disclosed in the detailed description according to the embodiment of the present invention to be described later.

도 1은 본 발명의 실시 예에 따른 암호화 시스템의 개략적인 구성도이다.
도 2는 본 발명의 실시 예에 따른 송신 장치의 주요 구성을 도시한 블록도이다.
도 3은 본 발명의 암호화 처리부의 역할을 보다 더 구체적으로 도시한 블록도이다.
도 4는 본 발명의 실시 예에 따른 수신 장치의 주요 구성을 도시한 블록도이다.
도 5는 본 발명의 실시 예에 따른 송신 장치에서의 암호화 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시 예에 따른 송신 장치에서의 암호화 방법을 도식화한 예시도이다.
도 7은 본 발명의 실시 예에 따른 수신 장치에서의 복호화 방법을 설명하기 위한 흐름도이다.
1 is a schematic block diagram of an encryption system according to an embodiment of the present invention.
2 is a block diagram showing a main configuration of a transmitting apparatus according to an embodiment of the present invention.
3 is a block diagram showing more specifically the role of the encryption processing unit of the present invention.
4 is a block diagram illustrating a main configuration of a receiving apparatus according to an embodiment of the present invention.
5 is a flowchart illustrating an encryption method in a transmitting apparatus according to an embodiment of the present invention.
6 is an exemplary diagram illustrating an encryption method in a transmitting apparatus according to an embodiment of the present invention.
7 is a flowchart illustrating a decoding method in a receiving apparatus according to an embodiment of the present invention.

본 발명의 과제 해결 수단의 특징 및 이점을 보다 명확히 하기 위하여, 첨부된 도면에 도시된 본 발명의 특정 실시 예를 참조하여 본 발명을 더 상세하게 설명한다. BRIEF DESCRIPTION OF THE DRAWINGS For a more complete understanding of the nature and advantages of the present invention, reference should be made to the following detailed description taken in conjunction with the accompanying drawings, in which:

다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.In the following description and the accompanying drawings, detailed description of well-known functions or constructions that may obscure the subject matter of the present invention will be omitted. It should be noted that the same constituent elements are denoted by the same reference numerals as possible throughout the drawings.

이하의 설명 및 도면에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.The terms and words used in the following description and drawings are not to be construed in an ordinary sense or a dictionary, and the inventor can properly define his or her invention as a concept of a term to be described in the best way It should be construed as meaning and concept consistent with the technical idea of the present invention. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention, and not all of the technical ideas of the present invention are described. Therefore, It is to be understood that equivalents and modifications are possible.

또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.Also, terms including ordinal numbers such as first, second, etc. are used to describe various elements, and are used only for the purpose of distinguishing one element from another, Not used. For example, without departing from the scope of the present invention, the second component may be referred to as a first component, and similarly, the first component may also be referred to as a second component.

더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.In addition, when referring to an element as being "connected" or "connected" to another element, it means that it can be connected or connected logically or physically. In other words, it is to be understood that although an element may be directly connected or connected to another element, there may be other elements in between, or indirectly connected or connected.

또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Also, the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. It is also to be understood that the terms such as " comprising " or " having ", as used herein, are intended to specify the presence of stated features, integers, It should be understood that the foregoing does not preclude the presence or addition of other features, numbers, steps, operations, elements, parts, or combinations thereof.

아울러, 본 발명의 범위 내의 실시 예들은 컴퓨터 실행가능 명령어 또는 컴퓨터 판독가능 매체에 저장된 데이터 구조를 가지거나 전달하는 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는, 범용 또는 특수 목적의 컴퓨터 시스템에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EPROM, CD-ROM 또는 기타 광 디스크 저장장치, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터 실행가능 명령어, 컴퓨터 판독가능 명령어 또는 데이터 구조의 형태로 된 소정의 프로그램 코드 수단을 저장하거나 전달하는 데에 이용될 수 있고, 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스 될 수 있는 임의의 기타 매체와 같은 물리적 저장 매체를 포함할 수 있지만, 이에 한정되지 않는다.In addition, embodiments within the scope of the present invention include computer-readable media having computer-executable instructions or data structures stored on computer-readable media. Such computer-readable media can be any available media that is accessible by a general purpose or special purpose computer system. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or in the form of computer- But is not limited to, a physical storage medium such as any other medium that can be used to store or communicate certain program code means of the general purpose or special purpose computer system, .

이하의 설명 및 특허 청구 범위에서, "네트워크" 또는 "통신망"은 컴퓨터 시스템들 및/또는 모듈들 간의 전자 데이터를 전송할 수 있게 하는 하나 이상의 데이터 링크로서 정의된다. 정보가 네트워크 또는 다른 (유선, 무선, 또는 유선 또는 무선의 조합인) 통신 접속을 통하여 컴퓨터 시스템에 전송되거나 제공될 때, 이 접속은 컴퓨터-판독가능매체로서 이해될 수 있다. 컴퓨터 판독가능 명령어는, 예를 들면, 범용 컴퓨터 시스템 또는 특수 목적 컴퓨터 시스템이 특정 기능 또는 기능의 그룹을 수행하도록 하는 명령어 및 데이터를 포함한다. 컴퓨터 실행가능 명령어는, 예를 들면, 어셈블리어, 또는 심지어는 소스코드와 같은 이진, 중간 포맷 명령어일 수 있다.In the following description and claims, " network " or " communication network " is defined as one or more data links that allow electronic data to be transmitted between computer systems and / or modules. When the information is transmitted or provided to a computer system via a network or other (wired, wireless, or a combination of wired or wireless) communication connection, the connection may be understood as a computer-readable medium. Computer readable instructions include, for example, instructions and data that cause a general purpose computer system or special purpose computer system to perform a particular function or group of functions. The computer executable instructions may be binary, intermediate format instructions, such as, for example, assembly language, or even source code.

이제, 본 발명의 실시 예에 따른 암호화 시스템이 주요 구성에 대해 설명하도록 한다. Now, the main configuration of the encryption system according to the embodiment of the present invention will be described.

도 1은 본 발명의 실시 예에 따른 암호화 시스템의 개략적인 구성도이다. 1 is a schematic block diagram of an encryption system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시 예에 따른 암호화 시스템(300)은 송신 장치(100) 및 수신 장치(200) 간의 암호화 및 복호화 방법을 제공하게 된다. Referring to FIG. 1, an encryption system 300 according to an embodiment of the present invention provides encryption and decryption methods between a transmitting apparatus 100 and a receiving apparatus 200.

본 발명의 송신 장치(100) 및 수신 장치(200)은 정보의 송수신 역할에 따른 구분으로, 송신 장치(100)는 데이터를 암호화하여 수신 장치(200)로 송신하는 역할을 수행하며, 수신 장치(200)는 송신 장치(100)로부터 암호화된 데이터를 수신하여 복호화하는 역할을 수행하게 된다. The transmitting apparatus 100 and the receiving apparatus 200 according to the present invention are classified according to the transmission and reception of information. The transmitting apparatus 100 encrypts the data and transmits the encrypted data to the receiving apparatus 200, 200 receives and decrypts the encrypted data from the transmitting apparatus 100.

송신 장치(100) 및 수신 장치(200)는 논리적 또는 물리적으로 서로 연결될 수 있는데, 논리적으로 연결되는 경우는 예컨대 송신 장치(100) 및 수신 장치(200)가 독립적으로 구현되는 장치이며, 서로 원격지에 위치하고 있어 IP 주소 등을 통해 서로 연결되는 방식을 들 수 있다. 이때의 송신 장치 (100) 및 수신 장치(200)는 서버-클라이언트 구조, 피어 투 피어 구조 등에 적용되는 장치가 될 수 있다. 반면 송신 장치(100) 및 수신 장치(200)가 물리적으로 연결되는 경우 USB 케이블을 통해 서로 연결되거나 각 장치가 모듈로 구현되어 하나의 장치 내에서 구현될 수도 있다. 이 경우, 송신 장치(100) 및 수신 장치(200)가 물리적으로 연결되는 통로를 통해 송수신되는 데이터를 암호화하고 복호화하여 처리하는 과정을 수행할 수 있다. The transmitting apparatus 100 and the receiving apparatus 200 may be logically or physically connected to each other. In the case where the transmitting apparatus 100 and the receiving apparatus 200 are logically connected, for example, the transmitting apparatus 100 and the receiving apparatus 200 are implemented independently, And are connected to each other through an IP address or the like. At this time, the transmitting apparatus 100 and the receiving apparatus 200 may be devices applied to a server-client structure, a peer-to-peer structure, and the like. On the other hand, when the transmitting device 100 and the receiving device 200 are physically connected, they may be connected to each other via a USB cable, or each device may be implemented as a module and implemented in one device. In this case, it is possible to perform a process of encrypting, decrypting, and processing data transmitted and received through a path through which the transmitting apparatus 100 and the receiving apparatus 200 are physically connected.

또한, 본 발명의 송신 장치(100) 및 수신 장치(200)는 퍼스널 컴퓨터, 랩탑 컴퓨터, 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그램 가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 모바일 전화, PDA, 페이저(pager) 등을 포함하는 다양한 유형의 컴퓨터 시스템 구성을 가지는 네트워크 컴퓨팅 환경에서 실시될 수 있다. The transmitting device 100 and the receiving device 200 of the present invention can also be used in a variety of forms such as a personal computer, a laptop computer, a handheld device, a multiprocessor system, a microprocessor-based or programmable consumer electronics, The present invention may be embodied in a network computing environment having various types of computer system configurations including computers, mainframe computers, mobile telephones, PDAs, pagers, and the like.

아울러, 본 발명의 송신 장치(100) 및 수신 장치(200)는 스마트 폰(smart phone), 타블렛 PC(Tablet PC), PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), MP3 Player 등의 이동 단말기는 물론, 스마트 TV(Smart TV), 데스크탑 컴퓨터 등과 같은 고정 단말기가 사용될 수 있다. 이때, 본 발명의 암호화 시스템(300)이 서버-클라이언트 방식으로 구현되는 경우, 송신 장치(100) 및 수신 장치(200) 중 어느 하나의 장치는 서버의 역할을 수행하며, 어느 하나의 장치는 클라이언트의 역할을 수행할 수 있다. 또한, 본 발명의 암호화 시스템(300)이 피어 투 피어 방식으로 구현되는 경우, 송신 장치(100) 및 수신 장치(200)는 전술한 이동 단말기 및 고정 단말기 중 어느 하나의 장치로 구현될 수 있다. In addition, the transmitting apparatus 100 and the receiving apparatus 200 of the present invention can be applied to a mobile phone such as a smart phone, a tablet PC, a PDA (personal digital assistant), a portable multimedia player (PMP) Fixed terminals such as smart TVs, desktop computers, and the like can be used as well as terminals. In this case, when the encryption system 300 of the present invention is implemented in a server-client manner, any one of the transmitting apparatus 100 and the receiving apparatus 200 acts as a server, Can play a role. Also, when the encryption system 300 of the present invention is implemented in a peer-to-peer manner, the transmitting apparatus 100 and the receiving apparatus 200 may be implemented as any one of the mobile terminal and the fixed terminal described above.

이때, 본 발명의 송신 장치(100) 및 수신 장치(200) 중 어느 하나의 장치가 서버로 구현되는 경우 이때의 서버는 하드웨어적으로는 통상적인 웹서버(Web Server) 또는 네트워크 서버와 동일한 구성을 할 수 있다. 그러나, 소프트웨어적으로는 C, C++, Java, Visual Basic, Visual C 등과 같은 언어를 통하여 구현되는 프로그램 모듈(Module)을 포함할 수 있다. In this case, when any one of the transmitting apparatus 100 and the receiving apparatus 200 of the present invention is implemented as a server, the server at this time has the same hardware configuration as a typical Web server or a network server can do. However, it may include a program module implemented through a language such as C, C ++, Java, Visual Basic, Visual C, or the like in software.

아울러, 본 발명의 송신 장치(100) 및 수신 장치(200)는 유무선 네트워크를 통해 연결될 수 있다. 여기서 유무선 네트워크는 유무선 접속망(미도시) 및 코어망(미도시)을 포함하는 모바일 망과 연결되 외부망, 예컨대 인터넷망(미도시)을 포함하여 구성될 수 있다. 여기서, 모바일 망을 구성하는 유무선 접속망(미도시)은 송신 장치(100) 및 수신 장치(200)와 유무선 통신을 수행하는 접속망으로서, 예를 들어, BS(Base Station), BTS(Base Transceiver Station), NodeB, eNodeB 등과 같은 다수의 기지국과, BSC(Base Station Controller), RNC(Radio Network Controller)와 같은 기지국 제어기로 구현될 수 있다.In addition, the transmitting apparatus 100 and the receiving apparatus 200 of the present invention can be connected through a wired / wireless network. The wired / wireless network may be connected to a mobile network including a wired / wireless access network (not shown) and a core network (not shown), and may include an external network such as an Internet network (not shown). The wired / wireless access network (not shown) constituting the mobile network is an access network that performs wired / wireless communication with the transmitting apparatus 100 and the receiving apparatus 200. The wired or wireless access network includes a base station (BS), a base transceiver station (BTS) , A NodeB, an eNodeB, and the like, and a base station controller such as a base station controller (BSC) and a radio network controller (RNC).

또 다른 방식으로는, 상기 기지국에 일체로 구현되어 있던 디지털 신호 처리부와 무선 신호 처리부를 각각 디지털 유니트(Digital Unit, 이하 DU라 함과 무선 유니트(Radio Unit, 이하 RU라 함)으로 구분하여, 다수의 영역에 각각 다수의 RU(미도시)를 설치하고, 다수의 RU(미도시)를 집중화된 DU(미도시)와 연결하여 구성할 수도 있다.Alternatively, the digital signal processing unit and the radio signal processing unit integrally implemented in the base station may be divided into a digital unit (hereinafter referred to as DU) and a radio unit (hereinafter referred to as RU) A plurality of RUs (not shown) may be provided in each of the regions, and a plurality of RUs (not shown) may be connected to a centralized DU (not shown).

또한, 유무선 접속망(미도시)와 함께 모바일 망을 구성하는 코어망(미도시)은 유무선 접속망(미도시)과 외부 망, 예컨대, 인터넷망(미도시)을 연결하는 역할을 수행한다.In addition, a core network (not shown) constituting a mobile network together with a wired / wireless access network (not shown) performs a role of connecting a wired / wireless access network (not shown) and an external network such as an Internet network (not shown).

이러한 코어망(미도시)은 앞서 설명한 바와 같이, 유무선 접속망(미도시) 간의 이동성 제어 및 스위칭 등의 이동통신 서비스를 위한 주요 기능을 수행하는 네트워크 시스템으로서, 서킷 교환(circuit switching) 또는 패킷 교환(packet switching)을 수행하며, 모바일 망 내에서의 패킷 흐름을 관리 및 제어한다. 또한, 코어망(미도시)은 주파수간 이동성을 관리하고, 접속망(미도시) 및 코어망(미도시) 내의 트래픽 및 다른 네트워크, 예컨대 인터넷망(미도시)과의 연동을 위한 역할을 수행할 수도 있다. 코어망(미도시)은 상술한 구성 이외도 MSC(Mobile Switching Center), HLR(Home Location Register), MME(Mobile Mobility Entity)와 HSS(Home Subscriber Server) 등을 더 포함하여 구성될 수도 있다. 또한, 인터넷망(미도시)은 TCP/IP 프로토콜에 따라서 정보가 교환되는 통상의 공개된 통신망, 즉 공용망을 의미한다. As described above, the core network (not shown) is a network system that performs main functions for mobile communication services such as mobility control and switching between wired / wireless access networks (not shown). The core network includes circuit switching or packet switching packet switching, and manages and controls packet flow within the mobile network. The core network (not shown) manages inter-frequency mobility and plays a role for interworking with traffic in an access network (not shown) and a core network (not shown) and other networks such as the Internet It is possible. The core network (not shown) may further include a Mobile Switching Center (MSC), a Home Location Register (HLR), a Mobile Mobility Entity (MME), and a Home Subscriber Server (HSS). In addition, an Internet network (not shown) means a public network, that is, a public network, in which information is exchanged according to the TCP / IP protocol.

이상으로 본 발명의 실시 예에 따른 암호화 시스템(300)에 대해 개략적으로 설명하였다. The encryption system 300 according to the embodiment of the present invention has been schematically described above.

이하, 본 발명의 실시 예에 따른 송신 장치(100)의 주요 구성 및 동작에 대해 도 2 및 도 3을 참조하여 설명하도록 한다. Hereinafter, the main configuration and operation of the transmission apparatus 100 according to the embodiment of the present invention will be described with reference to FIG. 2 and FIG.

도 2는 본 발명의 실시 예에 따른 송신 장치의 주요 구성을 도시한 블록도이며, 도 3은 본 발명의 암호화 처리부의 역할을 보다 더 구체적으로 도시한 블록도이다. FIG. 2 is a block diagram showing a main configuration of a transmitting apparatus according to an embodiment of the present invention, and FIG. 3 is a block diagram showing more specifically the role of the encryption processing section of the present invention.

먼저, 도 2를 참조하면, 본 발명의 송신 장치(100)는 데이터 입력부(110), 암호화 처리부(120), 스크램블링부(130), 송신부(140) 및 암호화 처리 과정에서 발생되는 다양한 정보를 저장하고 관리하는 송신 저장부(150)를 포함하여 구성될 수 있다. Referring to FIG. 2, a transmitting apparatus 100 of the present invention includes a data input unit 110, an encryption processing unit 120, a scrambling unit 130, a transmitting unit 140, and various information generated in an encryption process And a transmission storage unit 150 that manages and manages data.

먼저 데이터 입력부(110)는 송신하고자 하는 데이터를 입력 받는 역할을 수행한다. 여기서 입력되는 데이터는 사용자의 입력에 따라 직접 입력될 수 있으며, 별도의 다른 장치로부터 전달되는 데이터를 이용할 수도 있다. 그리고 데이터 입력부(110)는 입력된 데이터를 암호화 처리부(120)로 전달한다. First, the data input unit 110 receives data to be transmitted. The input data may be directly input according to an input of a user, or data transmitted from another device may be used. The data input unit 110 transmits the input data to the encryption processing unit 120.

암호화 처리부(120)는 입력된 데이터에 대한 암호화를 수행하는 역할을 수행한다. 도 3을 참조하여 보다 구체적으로 설명하면, 암호화 처리부(120)는 랜덤값 생성부(121)를 통해 랜덤 값(z)을 생성한다. 여기서 랜덤 값(z)은 수신 장치(200)와의 사이에 사전에 설정된 규칙 혹은 함수에 따라서 설정되는 값이 아니라, 랜덤값 생성부(120)에 의해 임의로 생성되는 값이다. 이때 랜덤 값(z)은 먼저 시드(seed)를 생성하고 시드에 기초하여 생성될 수 있는데, 예를 들어 시드의 값을 초기치로 하여 랜덤 값 생성부(121)가 시스템 클럭 발생 시마다 랜덤 값(z)을 생성할 수 있다. 여기서, 랜덤 값 생성부(121)는 예를 들면 선형 피드백 시프트 레지스터(LFSR) 등에 의해 구성될 수 있으나 이에 한정되는 것은 아니다. The encryption processing unit 120 performs encryption for the input data. 3, the encryption processing unit 120 generates the random value z through the random value generating unit 121. [ Here, the random value z is a value randomly generated by the random value generator 120, not a value set according to a predetermined rule or function with the receiving apparatus 200. In this case, the random value z may be generated first based on the seed and generated based on the seed. For example, assuming that the seed value is the initial value, the random value generator 121 generates a random value z Can be generated. Here, the random value generator 121 may be configured by, for example, a linear feedback shift register (LFSR), but is not limited thereto.

그리고 암호화 키 생성부(122)는 생성된 랜덤 값(z)을 키 유도 함수(KDF; Key Derivation Function)에 적용하여 암호화 키(key)를 생성한다. 본 발명의 송신 장치(100)가 사용하는 키 유도 함수는 예컨대 블록 암호 기반 키 유도 함수가 될 수 있다. 블록 암호 기반 키 유도 함수는 블록 하나로 이루어진 입력값 x가 t개의 블록으로 확장되어 출력되는 함수로, n비트의 입력값이 다중 블록 출력 함수를 통해 nt비트의 길이로 확장될 수 있다. 이러한 블록 암호 기반 키 유도 함수의 일례로 Counter 모드, Feedback 모드, Double-Pipeline Iteration 모드, Milenage 모드를 적용할 수 있다. 특히 본 발명의 암호화 키 생성부(122)는 생성된 랜덤 값(z)을 입력값 x로 적용하여 확장된 비트의 암호화 키(key)를 생성하게 된다. The encryption key generating unit 122 applies the generated random value z to a key derivation function (KDF) to generate an encryption key. The key derivation function used by the transmission apparatus 100 of the present invention may be, for example, a block cipher-based key derivation function. The block cipher key derivation function is a function that the input value x composed of one block is extended to t blocks, and the input value of n bits can be expanded to the length of nt bits through the multi-block output function. As an example of such a block-based key derivation function, a counter mode, a feedback mode, a double-pipeline Iteration mode, and an Milenage mode can be applied. In particular, the encryption key generation unit 122 of the present invention generates an extended bit encryption key by applying the generated random value z to the input value x.

그리고 암호화 수행부(123)는 암호화 키 생성부(122)를 통해 생성된 암호화 키(key)를 이용하여 입력된 데이터를 암호화하여 암호화된 데이터(E(d))를 생성한다. 암호화 과정에서는 기 설정된 암호화 함수(E)를 사용하여 데이터를 암호화할 수 있다.The encryption performing unit 123 encrypts the input data using the encryption key generated through the encryption key generating unit 122 to generate the encrypted data E (d). In the encryption process, data can be encrypted using a predetermined encryption function (E).

이후, 본 발명의 암호화 수행부(123)는 입력된 데이터(d)를 해쉬 함수(H)에 적용하여 해쉬값(H(d))를 생성한다. 해쉬 함수(H)는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 알고리즘으로, 암호화적 해쉬 함수는 MD5, SHA 계열이 있으며, 비 암호화적 해쉬 함수는 CRC32 등이 있다. The encryption performing unit 123 of the present invention applies the input data d to the hash function H to generate a hash value H (d). The hash function (H) is an algorithm for mapping data of arbitrary length to fixed length data. The encrypted hash function has MD5 and SHA series, and the non-encrypted hash function is CRC32.

그리고, 본 발명의 암호화 수행부(123)는 생성된 해쉬 값(H(d))을 암호화키로 이용하여 랜덤값 생성부(121)를 통해 생성된 랜덤값(z)을 암호화한 값(EH(z))을 생성한다. The encryption performing unit 123 of the present invention encrypts the random value z generated by the random value generating unit 121 using the generated hash value H (z).

본 발명에 있어서, 암호화 키의 생성에 사용된 시드 값인 랜덤 값(z) 및 상기 암호화키는 송신 장치(100)와 수신 장치(200) 간에 공유되지 않는다. 대신, 본 발명에 있어서, 송신 장치(100)와 수신 장치(200)는 상기 랜덤 값(z) 및 암호화 키를 추출할 수 있도록, 암호화 과정에서 이용된 키 유도 함수, 암호화 함수(E), 해쉬 함수(H)를 사전에 공유하게 된다. In the present invention, the random value (z), which is the seed value used for generating the encryption key, and the encryption key are not shared between the transmission apparatus 100 and the reception apparatus 200. Instead, the transmitting apparatus 100 and the receiving apparatus 200 may use the key derivation function used in the encryption process, the encryption function (E), the hash function The function H is shared in advance.

따라서, 본 발명에 따른 송신 장치(100)는 상기 암호화된 데이터(E(d))를 수신 장치(200)로 전송할 때, 수신 장치(200)가 상기 암호화된 데이터(E(d))를 복호화할 수 있도록, 상기 암호화된 데이터(E(d))와 함께, 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))을 수신 장치(200)로 전송하게 된다.Therefore, when the transmitting apparatus 100 according to the present invention transmits the encrypted data E (d) to the receiving apparatus 200, the receiving apparatus 200 decrypts the encrypted data E (d) The hash value H (d) obtained by applying the data d to the hash function H together with the encrypted data E (d) and the hash value H (d) And transmits the value E H (z) obtained by encrypting the random value z to the receiving apparatus 200 by applying the random number z.

이때, 본 발명의 스크램블링부(130)는 보안성을 더 강화하기 위하여, 암호화 처리부(120)에 의해 암호화된 데이터(E(d))와 함께, 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))을 스크램블링하게 된다. 이때, 본 발명의 스크램블링부(130)는 사전에 정의된 스크램블 패턴에 따라 각각의 값들을 뒤섞는 스크램블링 과정을 수행하게 된다. At this time, the scrambling unit 130 of the present invention adds the data d to the hash function H together with the data E (d) encrypted by the encryption processing unit 120 in order to further enhance security And applies the hash value H (d) and the hash value H (d) to the encryption key to scramble the value E H (z) obtained by encrypting the random value z. At this time, the scrambling unit 130 of the present invention performs a scrambling process of scrambling each value according to a predefined scramble pattern.

이후, 송신부(140)는 스크램블링부(130)를 통해 암호화된 데이터(E(d)), 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))의 배치가 달라지게 되면 이를 수신 장치(200)로 전송하는 역할을 수행하게 된다. The transmitting unit 140 transmits the encrypted data E (d) through the scrambling unit 130, the hash value H (d) obtained by applying the data d to the hash function H, and the hash value H (d)) is applied as an encryption key and a value (E H (z)) obtained by encrypting the random value z is different.

이때, 스크램블 패턴은 송신 장치(100)와 수신 장치(200) 간에 공유하게 되며, 상기 송신 장치(100)에서 수신 장치(200)로 전송되는 데이터가 임의의 제삼자에게 노출되더라도, 상기 스크램블 패턴을 알 수 없으므로 해당 데이터로부터 원하는 정보를 추출하기 어렵다.At this time, the scramble pattern is shared between the transmitting apparatus 100 and the receiving apparatus 200, and even if the data transmitted from the transmitting apparatus 100 to the receiving apparatus 200 is exposed to an arbitrary third party, It is difficult to extract desired information from the corresponding data.

또한, 본 발명의 암호화 처리부(120)는 공개키 방식이 아닌 랜덤값(z)을 기반으로 생성되는 암호화키를 통해 데이터를 암호화함으로써, 1차적으로 암호화 키의 노출에 따른 보안 문제를 해결할 수 있으며, 더하여, 암호화 절차에서 발생되는 암호화된 데이터(E(d))만 스크램블링하는 것이 아니라, 스크램블링부(130)가 암호화된 데이터(E(d)), 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))를 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))을 스크램블링하여 수신 장치(200)로 전송함으로써, 데이터 송수신에 따라 발생될 수 있는 보안 문제를 이중으로 예방할 수 있어, 데이터의 보안을 보다 더 강화할 수 있게 된다.Also, the encryption processing unit 120 of the present invention can solve the security problem due to the exposure of the encryption key primarily by encrypting the data through the encryption key generated based on the random value (z) rather than the public key scheme The scrambling unit 130 notifies the encrypted data E (d) and the data d to the hash function H instead of scrambling only the encrypted data E (d) generated in the encryption procedure, Scrambled value E H (z) obtained by encrypting the random value z by applying the hash value H (d) and the hash value H (d) applied to the reception apparatus 200 as an encryption key, Thus, it is possible to prevent a security problem that may be caused by data transmission / reception, thereby further enhancing data security.

한편 송신 저장부(150)는 송신 장치(100)에서의 암호화 절차 수행 시 발생되는 각종 데이터를 저장하고 관리하는 역할을 수행한다. 예컨대, 본 발명의 송신 저장부(150)는 입력된 데이터를 저장하고, 데이터를 암호화하는데 필요한 암호화 함수(E), 해쉬 함수(H) 등을 저장하고 관리할 수 있다. Meanwhile, the transmission storage unit 150 stores and manages various data generated in performing the encryption procedure in the transmission apparatus 100. For example, the transmission storage unit 150 of the present invention may store and manage the input data, the encryption function E, the hash function H, and the like necessary for encrypting the data.

특히, 본 발명의 송신 저장부(150)는 암호화 함수(E), 해쉬 함수(H), 키 유도 함수(KDF)를 포함하는 암호화를 위한 함수 세트를 하기의 <표 1>과 같이 저장하고 관리할 수 있다. In particular, the transmission storage unit 150 of the present invention stores and manages a set of functions for encryption including an encryption function E, a hash function H, and a key derivation function KDF as shown in Table 1 below. can do.

세트 순번Set order 암호화 함수(E)Encryption function (E) 해쉬 함수(H)Hash function (H) 키 유도 함수(KDF)Key derivation function (KDF) Set1.Set1. E1E1 H3H3 KDF1KDF1 Set2.Set2. E2E2 H5H5 KDF4KDF4

본 발명의 송신 저장부(150)는 암호화 함수(E), 해쉬 함수(H), 키 유도 함수(KDF)로 구성되는 복수 개의 세트를 저장하고 있는 상태에서, 어느 하나의 세트를 선택하여 설정할 수 있으며, 이에 따라 암호화 처리부(120) 및 스크램블링부(130)는 설정된 함수 세트 예컨대 Set1에 설정된 각각의 암호화 함수 E1, 해쉬 함수 H3, 키 유도 함수 KDF1를 이용하여 암호화 절차를 진행할 수 있다. 여기서 암호화를 위한 함수 세트는 미리 수신 장치(200)와 공유되어야 하며, 송신 장치(100)와 수신 장치(200) 간에 동일한 함수 세트가 사전에 설정되어야 한다. The transmission storage unit 150 of the present invention can select and set any one of a plurality of sets of encryption function E, hash function H and key derivation function KDF The encryption processing unit 120 and the scrambling unit 130 can perform the encryption procedure using the encryption function E1, the hash function H3, and the key derivation function KDF1 set in the set of set functions, for example, Set1. Here, the set of functions for encryption must be shared with the receiving apparatus 200 in advance, and the same set of functions must be set in advance between the transmitting apparatus 100 and the receiving apparatus 200.

이상으로 본 발명의 실시 예에 따른 송신 장치(100)의 주요 구성 및 동작에 대해 설명하였다. The main configuration and operation of the transmitting apparatus 100 according to the embodiment of the present invention have been described above.

이하, 본 발명의 실시 예에 따른 수신 장치(200)의 주요 구성 및 동작에 대해 설명하도록 한다. Hereinafter, the main configuration and operation of the receiving apparatus 200 according to the embodiment of the present invention will be described.

도 4는 본 발명의 실시 예에 따른 수신 장치의 주요 구성을 도시한 블록도이다. 4 is a block diagram illustrating a main configuration of a receiving apparatus according to an embodiment of the present invention.

도 1 및 도 4를 참조하면, 본 발명의 실시 예에 따른 수신 장치(200)는 수신부(210), 디스크램블링부(220), 복호화 처리부(230), 데이터 처리부(240) 및 수신 저장부(250)를 포함하여 구성될 수 있다. 1 and 4, a receiving apparatus 200 according to an embodiment of the present invention includes a receiving unit 210, a descrambling unit 220, a decoding processing unit 230, a data processing unit 240, 250).

각 구성에 대해 보다 구체적으로 설명하면, 수신부(210)은 송신 장치(100)가 전송한 암호화된 데이터(E(d)), 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))를 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))에 대한 스크램블링한 데이터를 수신한다. More specifically, the receiving unit 210 receives the encrypted data E (d) transmitted from the transmitting apparatus 100, the hash value H (d) applied to the hash function H, (z) by applying the hash value H (d) and the hash value H (d) as an encryption key to the scrambled data for the value E H (z).

그리고 수신부(210)는 수신된 데이터를 디스크램블링부(220)로 전달한다. The receiving unit 210 transmits the received data to the descrambling unit 220.

본 발명의 디스크램블링부(220)는 송신 장치(100)와 공유한 기 설정된 스크램블 패턴에 따라 수신된 데이터를 원래의 배치로 복원하는 디스크램블링을 수행한다. 이렇게 디스클램블링된 데이터에서, 암호화된 데이터(E(d)), 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))를 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))은 원래의 배치로 복원되므로, 기 설정된 배치로부터 암호화된 데이터(E(d)), 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))를 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))을 각각 추출할 수 있다. The descrambling unit 220 of the present invention performs descrambling to restore the received data to the original arrangement according to a predetermined scramble pattern shared with the transmission apparatus 100. [ The encrypted data E (d), the hash value H (d) applied to the hash function H and the hash value H (d) are decrypted a value encrypted random value (z) by applying a key (E H (z)) is therefore restored to its original place, the group of encrypted data from the arrangement set (E (d)), the hash function to the data (d) ( H) can extract the hash value (H (d)) and the hash value (H (d) (value (E H (z encrypts and z)))) by applying the encryption key, the random value is applied to each.

아울러, 본 발명의 수신 장치(200)는 송신 장치(100)에서 암호화에 사용된 암호화 키를 모르므로, 암호화를 위해서 먼저 송신 장치(100)에서 암호화에 사용된 암호화 키를 생성하는 과정을 수행하게 된다.In addition, since the receiving apparatus 200 of the present invention does not know the encryption key used for encryption in the transmitting apparatus 100, the transmitting apparatus 100 first performs a process of generating an encryption key used for encryption in the transmitting apparatus 100 do.

이를 위해, 본 발명의 수신 장치(200)는 복호화 처리부(230)를 통해 먼저 디스크램블링된 데이터에서 데이터(d)에 대한 해쉬 값(H(d))을 추출한다. 본 발명의 복호화 처리부(230)는 추출한 해쉬 값(H(d))으로 디스크램블링된 데이터로부터 추출된 해쉬 값(H(d)을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))을 복호화하여 랜덤값(z)을 확인할 수 있다. To this end, the receiving apparatus 200 of the present invention extracts a hash value H (d) for the data d from the data descrambled first through the decoding processing unit 230. The decryption processing unit 230 of the present invention decrypts the value H (d) obtained by encrypting the random value z by applying the hash value H (d) extracted from the descrambled data with the extracted hash value H (z)) can be decoded to confirm the random value z.

이후에, 본 발명의 복호화 처리부(230)는 추출된 랜덤 값(z)을 키 유도 함수에 적용하여 암호화 키를 생성한다. 이후, 본 발명의 복호화 처리부(230)는 생성된 암호화 키를 이용하여 디스크램블링하여 확인된 암호화된 데이터(E(d))를 복호화할 수 있다. 이를 통해서 암호화키를 송수신하지 않더라도 송신 장치(100)에서 송신하고자 하는 원래의 데이터를 확인할 수 있게 된다. Thereafter, the decryption processing unit 230 of the present invention applies the extracted random value z to the key derivation function to generate an encryption key. Thereafter, the decryption processing unit 230 of the present invention can decrypt the encrypted data E (d) confirmed by descrambling using the generated encryption key. Accordingly, even if the encryption key is not transmitted or received, the original data to be transmitted by the transmission apparatus 100 can be confirmed.

또한, 본 발명의 복호화 처리부(230)는 데이터(d)를 기 설정된 해쉬 함수(H)에 적용하여 생성되는 해쉬 값(H(d))을 이용하여 검증 절차를 수행한다. 다시 말해, 확인한 데이터(d)를 기 설정된 해쉬 함수(H)에 적용하여 해쉬 값(H(d))를 생성하고, 생성된 해쉬 값(H(d))과 송신 장치(100)로부터 수신된 해쉬 값(H(d))을 비교하여 복호화 처리가 정상적으로 이루어 졌는지를 검증하게 된다. Also, the decryption processing unit 230 of the present invention performs the verification procedure using the hash value H (d) generated by applying the data d to the predetermined hash function H. In other words, the hash value H (d) is generated by applying the confirmed data d to the predetermined hash function H to generate the hash value H And compares the hash value H (d) to verify whether or not the decoding process is normally performed.

이러한 과정을 거쳐 송신 장치(100)가 전달하고자 하는 데이터에 대한 확인이 이뤄지게 되면, 본 발명의 데이터 처리부(240)는 이에 따른 결과를 처리하는 역할을 수행할 수 있다. 예를 들어, 본 발명의 데이터 처리부(240)는 확인된 데이터에 따라 특정 기능을 수행하거나 기능 수행을 위한 장치로 이를 전달하는 역할을 수행할 수 있다. When the data to be transmitted by the transmitting apparatus 100 is confirmed through the above process, the data processing unit 240 of the present invention can process the result. For example, the data processing unit 240 of the present invention may perform a specific function according to the confirmed data, or may transmit the function to a device for performing a function.

또한, 본 발명의 수신 저장부(250)는 상술한 바와 같은 복호화 과정에서 발생되는 다양한 정보들을 저장하고 관리하는 역할을 수행한다. 예를 들어, 송신 장치(100)와 공유된 암호화를 위한 세트 정보를 저장하고 관리할 수 있으며, 디스크램블링을 위한 스크램블 패턴을 저장하고 관리할 수 있다. 또한 복호화 절차에서 파생되는 각종 정보들을 저장하고 관리할 수 있다. In addition, the reception storage unit 250 of the present invention stores and manages various information generated in the decoding process as described above. For example, it is possible to store and manage set information for encryption shared with the transmission apparatus 100, and to store and manage a scramble pattern for descrambling. Also, various information derived from the decryption procedure can be stored and managed.

이상으로 본 발명의 실시 예에 따른 송신 장치(100) 및 수신 장치(200)의 주요 구성 및 동작에 대해 설명하였다. The main configuration and operation of the transmitting apparatus 100 and the receiving apparatus 200 according to the embodiment of the present invention have been described above.

한편, 본 발명의 각 장치에 탑재되는 메모리는 그 장치 내에서 정보를 저장한다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛 일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛 일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.On the other hand, the memory mounted on each device of the present invention stores information in the device. In one implementation, the memory is a computer-readable medium. In one implementation, the memory may be a volatile memory unit, and in other embodiments, the memory may be a non-volatile memory unit. In one implementation, the storage device is a computer-readable medium. In various different implementations, the storage device may comprise, for example, a hard disk device, an optical disk device, or any other mass storage device.

비록 본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 본 발명에 따른 장치의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치 혹은 이들 중 하나 이상의 조합일 수 있다.Although the present specification and drawings describe exemplary device configurations, the functional operations and subject matter implementations described herein may be embodied in other types of digital electronic circuitry, or alternatively, of the structures disclosed herein and their structural equivalents May be embodied in computer software, firmware, or hardware, including, or in combination with, one or more of the foregoing. Implementations of the subject matter described herein may be embodied in one or more computer program products, i. E. One for computer program instructions encoded on a program storage medium of the type for &lt; RTI ID = 0.0 & And can be implemented as a module as described above. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, or a combination of one or more of the foregoing.

이하, 본 발명의 실시 예에 따른 암호화 방법에 대해 설명하도록 한다. Hereinafter, an encryption method according to an embodiment of the present invention will be described.

도 5는 본 발명의 실시 예에 따른 송신 장치에서의 암호화 방법을 설명하기 위한 흐름도이며, 도 6은 본 발명의 실시 예에 따른 송신 장치에서의 암호화 방법을 도식화한 예시도이다.FIG. 5 is a flowchart for explaining an encryption method in a transmitting apparatus according to an embodiment of the present invention, and FIG. 6 is an exemplary diagram illustrating an encryption method in a transmitting apparatus according to an embodiment of the present invention.

먼저, 도 2 및 도 5를 참조하면, 본 발명의 실시 예에 따른 송신 장치(100)는 데이터 입력부(110)를 통해 송신하고자 하는 데이터를 입력 받는다(S101). 여기서 입력되는 데이터는 사용자의 입력에 따라 직접 입력될 수 있으며, 별도의 다른 장치로부터 전달되는 데이터를 이용할 수도 있다. 2 and 5, a transmitting apparatus 100 according to an embodiment of the present invention receives data to be transmitted through a data input unit 110 (S101). The input data may be directly input according to an input of a user, or data transmitted from another device may be used.

그리고 입력된 데이터에 대한 암호화를 수행하기 위해, 먼저, 송신 장치(100)의 암호화 처리부(120)가 랜덤 값(z)을 생성한다(S103). 여기서 랜덤 값(z)은 수신 장치(200)와의 사이에 사전에 설정된 규칙 혹은 함수에 따라서 설정되는 값이 아니라, 송신 장치(100)에 의해 임의로 생성되는 값이다. 이때 랜덤 값(z)은 먼저 시드를 생성하고 시드에 기초하여 생성될 수 있는데, 예를 들어 시드의 값을 초기치로 하여 암호화 처리부(120)의 랜덤 값 생성부(121)가 시스템 클럭 발생 시마다 랜덤 값(z)을 생성할 수 있다. 여기서, 랜덤 값 생성부(121)는 예를 들면 선형 피드백 시프트 레지스터(LFSR) 등에 의해 구성될 수 있으나 이에 한정되는 것은 아니다. In order to perform encryption on the input data, the encryption processing unit 120 of the transmission apparatus 100 generates a random value z (S103). Here, the random value z is a value arbitrarily generated by the transmitting apparatus 100, not a value set in accordance with a rule or a function set beforehand with the receiving apparatus 200. In this case, the random value z may be generated first based on the seed and may be generated based on the seed. For example, if the random value generation unit 121 of the encryption processing unit 120 uses the seed value as the initial value, The value z can be generated. Here, the random value generator 121 may be configured by, for example, a linear feedback shift register (LFSR), but is not limited thereto.

그리고 본 발명의 송신 장치(100)의 암호화 처리부(120)는 생성된 랜덤 값(z)을 키 유도 함수(KDF; Key Derivation Function)에 적용하여 암호화 키(key)를 생성한다(S105). 본 발명의 송신 장치(100)가 사용하는 키 유도 함수는 예컨대 블록 암호 기반 키 유도 함수가 될 수 있다. 블록 암호 기반 키 유도 함수는 블록 하나로 이루어진 입력값 x가 t개의 블록으로 확장되어 출력되는 함수로, n비트의 입력값이 다중 블록 출력 함수를 통해 nt비트의 길이로 확장될 수 있다. 이러한 블록 암호 기반 키 유도 함수의 일례로 Counter 모드, Feedback 모드, Double-Pipeline Iteration 모드, Milenage 모드를 적용할 수 있다. 특히 본 발명의 송신 장치(100)의 암호화 처리부(120)는 생성된 랜덤 값(z)을 입력값 x로 적용하여 확장된 비트의 암호화 키(key)를 생성하게 된다. The encryption processing unit 120 of the transmitting apparatus 100 of the present invention applies the generated random value z to a key derivation function (KDF) to generate an encryption key (S105). The key derivation function used by the transmission apparatus 100 of the present invention may be, for example, a block cipher-based key derivation function. The block cipher key derivation function is a function that the input value x composed of one block is extended to t blocks, and the input value of n bits can be expanded to the length of nt bits through the multi-block output function. As an example of such a block-based key derivation function, a counter mode, a feedback mode, a double-pipeline Iteration mode, and an Milenage mode can be applied. In particular, the encryption processing unit 120 of the transmitting apparatus 100 of the present invention generates an extended bit encryption key by applying the generated random value z to the input value x.

그리고 본 발명의 송신 장치(100)의 암호화 처리부(120)는 생성된 암호화 키(key)를 이용하여 S101 단계에서 입력된 데이터를 암호화하하여 암호화된 데이터(E(d))를 생성하게 된다(S107). 암호화하는 과정에서는 기 설정된 암호화 함수(E)를 사용하게 된다. The encryption processing unit 120 of the transmission apparatus 100 of the present invention encrypts data input in step S101 using the generated encryption key to generate encrypted data E (d) ( S107). In the process of encryption, a predetermined encryption function (E) is used.

이후에, 본 발명의 송신 장치(100)의 암호화 처리부(120)는 입력된 데이터(d)를 해쉬 함수(H)에 적용하여 해쉬값(H(d))을 생성한다(S109). 해쉬 함수(H)는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 알고리즘으로, 암호화적 해쉬 함수는 MD5, SHA 계열이 있으며, 비 암호화적 해쉬 함수는 CRC32 등이 있다. Thereafter, the encryption processing unit 120 of the transmission apparatus 100 of the present invention applies the input data d to the hash function H to generate a hash value H (d) (S109). The hash function (H) is an algorithm for mapping data of arbitrary length to fixed length data. The encrypted hash function has MD5 and SHA series, and the non-encrypted hash function is CRC32.

그리고 본 발명의 송신 장치(100)의 암호화 처리부(120)는 S109 단계에서 생성된 해쉬 값(H(d))을 암호화키로 이용하여 S103 단계에서 생성된 랜덤값(z)을 암호화한 값(EH(z))을 생성하게 된다(S111).The encryption processing unit 120 of the transmitting apparatus 100 of the present invention encrypts the random value z generated in step S103 by using the hash value H (d) generated in step S109 as an encryption key, H (z)) (S111).

본 발명에 있어서, 암호화 키의 생성에 사용된 시드 값인 랜덤 값(z) 및 상기 암호화키는 송신 장치(100)와 수신 장치(200) 간에 공유되지 않는다. 대신, 본 발명에 있어서, 송신 장치(100)와 수신 장치(200)는 상기 랜덤 값(z) 및 암호화 키를 추출할 수 있도록, 암호화 과정에서 이용된 키 유도 함수, 암호화 함수, 해쉬 함수(H)를 사전에 공유하게 된다. In the present invention, the random value (z), which is the seed value used for generating the encryption key, and the encryption key are not shared between the transmission apparatus 100 and the reception apparatus 200. Instead, the transmitting apparatus 100 and the receiving apparatus 200 may transmit the key derivation function, the encryption function, the hash function (H ) In advance.

따라서, 본 발명에 따른 송신 장치(100)는 상기 암호화된 데이터(E(d))를 수신 장치(200)로 전송할 때, 수신 장치(200)가 상기 암호화된 데이터(E(d))를 복호화할 수 있도록, 상기 암호화된 데이터(E(d))와 함께, 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))을 수신 장치(200)로 전송하게 된다. Therefore, when the transmitting apparatus 100 according to the present invention transmits the encrypted data E (d) to the receiving apparatus 200, the receiving apparatus 200 decrypts the encrypted data E (d) The hash value H (d) obtained by applying the data d to the hash function H together with the encrypted data E (d) and the hash value H (d) And transmits the value E H (z) obtained by encrypting the random value z to the receiving apparatus 200 by applying the random number z.

이때, 본 발명에 따른 송신 장치(100)는 보안성을 더 강화하기 위하여, 상기 암호화된 데이터(E(d))와 함께, 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))을 스크램블링하여 전송하게 된다. 즉, 본 발명에 의한 송신 장치(100)의 스크램블링부(130)가 암호화된 데이터(E(d)), 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))을 전달받아 스크램블링을 수행한다(S113). 여기서 본 발명 송신 장치(100)의 스크램블링부(130)는 사전에 정의된 스크램블 패턴에 따라 각각의 값들을 뒤섞는 스크램블링 과정을 수행하게 된다. In order to further enhance security, the transmitting apparatus 100 according to the present invention transmits a hash value H (d) obtained by applying the data d to the hash function H together with the encrypted data E (z) by applying the hash value H (d) and the hash value H (d) as an encryption key, and transmits the scrambled value E H (z). That is, the scrambling unit 130 of the transmitting apparatus 100 according to the present invention transmits the encrypted data E (d), the hash value H (d) obtained by applying the data d to the hash function H, And receives the value E H (z) obtained by encrypting the random value z by applying the hash value H (d) as an encryption key to perform scrambling (S113). Here, the scrambling unit 130 of the transmitting apparatus 100 of the present invention scrambles each value according to a scramble pattern defined in advance.

즉, 도 6에 도시된 바와 같이, 생성된 랜덤값(z)에 키 유도 함수를 적용하여 암호화키(key)를 생성하고, 생성된 암호화 키를 이용하여 입력된 데이터(d)를 암호화한 데이터 암호화값(E(d))을 생성하고, 그리고 입력된 데이터(d)를 해쉬 함수(H)를 통한 해쉬 값(H(d))를 생성하고, 그리고 랜덤값(z)을 상기 생성한 해쉬 값(H(d))을 암호화 키로 사용하여 암호화한 값(EH(z))을 생성하게 된다. That is, as shown in FIG. 6, the key derivation function is applied to the generated random value z to generate an encryption key, and the encrypted data (d) is encrypted using the generated encryption key Generates a hash value H (d) through the hash function H, and outputs the random value z to the generated hash function H the value (H (d)) the value (E H (z)) encrypted using the encryption key is generated.

여기서, 데이터(d)를 암호화할 때 사용한 암호화 함수(E) 및 랜덤값(z)을 암호화할 때 사용한 암호화 함수(E)는 동일함 암호화 함수를 사용할 수 있으며, 설명의 편의를 위해 랜덤값(z)를 각각 표기하였으나, 표기된 각각의 랜덤값(z)은 하나의 랜덤값(z)을 의미한다. 그리고 상술한 과정을 거쳐 도출된 값들을 스크램블링하여 스크램블링된 데이터(C)를 생성하게 되는 것이다. Here, the encryption function E used for encrypting the data d and the encryption function E used for encrypting the random value z may use the same encryption function. For the sake of convenience of explanation, a random value z, respectively, but each of the indicated random values z means one random value z. Then, the scrambled data C is generated by scrambling the derived values through the above-described process.

이러한 스크램블링을 통해서, 송신 데이터 상에서 암호화된 데이터(E(d)), 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))의 배치가 달라지게 되며, 이에 따라서, 송신 데이터로부터 특정 정보를 추출하는 것이 어렵게 된다.Through this scrambling, the hash value H (d), which is the encrypted data E (d) on the transmission data, the hash value H (d) which applies the data d to the hash function H, Key, the value E H (z) obtained by encrypting the random value z is different, and it becomes difficult to extract the specific information from the transmission data.

이후에 본 발명의 송신 장치(100)의 송신부(140)는 스크램블링된 데이터를 수신 장치(200)로 전송하게 된다(S115).Thereafter, the transmitting unit 140 of the transmitting apparatus 100 of the present invention transmits the scrambled data to the receiving apparatus 200 (S115).

이때, 스크램블 패턴은 송신 장치(100)와 수신 장치(200) 간에 공유하게 되며, 상기 송신 장치(100)에서 수신 장치(200)로 전송되는 데이터가 임의의 제삼자에게 노출되더라도, 상기 스크램블 패턴을 알 수 없으므로 해당 데이터로부터 원하는 정보를 추출하기 어렵다.At this time, the scramble pattern is shared between the transmitting apparatus 100 and the receiving apparatus 200, and even if the data transmitted from the transmitting apparatus 100 to the receiving apparatus 200 is exposed to an arbitrary third party, It is difficult to extract desired information from the corresponding data.

또한, 본 발명의 송신 장치(100)는 공개키 방식이 아닌 랜덤값(z)을 기반으로 생성되는 암호화키를 통해 데이터를 암호화함으로써, 1차적으로 암호화 키의 노출에 따른 보안 문제를 해결할 수 있으며, 더하여, 암호화 절차에서 발생되는 암호화된 데이터(E(d))만 스크램블링하는 것이 아니라, 암호화된 데이터(E(d)), 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))을 함께 스크램블링하여 수신 장치(200)로 전송함으로써, 데이터 송수신에 따라 발생될 수 있는 보안 문제를 이중으로 예방할 수 있어, 데이터의 보안을 보다 더 강화할 수 있게 된다.In addition, the transmitting apparatus 100 of the present invention can solve the security problem due to the exposure of the encryption key by encrypting the data through the encryption key generated based on the random value (z) rather than the public key scheme (H (H)) applied to the hash function (H), instead of only scrambling the encrypted data E (d) generated in the encryption procedure, (z) is applied to the receiving apparatus 200 by scrambling the value E H (z) obtained by encrypting the random value z by applying the hash value H (d) and the hash value H (d) It is possible to prevent a security problem that may occur according to the present invention, thereby further enhancing security of data.

아울러, 본 발명의 실시 예에 따른 송신 장치(100)는 S107 및 S111 단계에서 사용하는 암호화 함수(E), S109 단계에서 사용하는 해쉬 함수(H), S105 단계에서 사용하는 키 유도 함수(KDF)를 포함하는 암호화를 위한 함수 세트를 전술한 <표 1>에 도시된 바와 같이 미리 사전에 구축한 상태임이 바람직하다. 그리고 본 발명의 송신 장치(100)는 암호화 함수(E), 해쉬 함수(H), 키 유도 함수(KDF)로 구성되는 복수 개의 세트 중 어느 하나의 세트를 선택하여 설정하며, 설정된 함수 세트 예컨대 Set1에 설정된 각각의 암호화 함수 E1, 해쉬 함수 H3, 키 유도 함수 KDF1를 이용하여 암호화 절차를 진행하게 된다. 여기서 암호화를 위한 함수 세트는 미리 수신 장치(200)와 공유되어야 하며, 송신 장치(100)와 수신 장치(200) 간에 동일한 함수 세트가 사전에 설정되어야 한다. In addition, the transmitting apparatus 100 according to the embodiment of the present invention includes the encryption function E used in steps S107 and S111, the hash function H used in step S109, the key derivation function KDF used in step S105, Is set in advance in advance as shown in <Table 1> described above. Then, the transmitting apparatus 100 of the present invention selects and sets any one of a plurality of sets composed of an encryption function E, a hash function H, and a key derivation function KDF, The encryption process E1, the hash function H3, and the key derivation function KDF1 are performed. Here, the set of functions for encryption must be shared with the receiving apparatus 200 in advance, and the same set of functions must be set in advance between the transmitting apparatus 100 and the receiving apparatus 200.

이하, 본 발명의 실시 예에 따른 수신 장치(200)에서의 복호화 방법에 대해 설명하도록 한다. Hereinafter, a decoding method in the receiving apparatus 200 according to the embodiment of the present invention will be described.

도 7은 본 발명의 실시 예에 따른 수신 장치에서의 복호화 방법을 설명하기 위한 흐름도이다. 7 is a flowchart illustrating a decoding method in a receiving apparatus according to an embodiment of the present invention.

도 4 및 도 7을 참조하면, 본 발명의 실시 예에 따른 수신 장치(200)의 수신부(210)은 송신 장치(100)가 전송한 스크램블링된 데이터(C) 즉, 암호화된 데이터(E(d)), 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))에 대한 스크램블링된 데이터를 수신하게 된다(S201).4 and 7, the receiving unit 210 of the receiving apparatus 200 according to the embodiment of the present invention receives the scrambled data C transmitted by the transmitting apparatus 100, that is, the encrypted data E (d ) E (H (d)) obtained by encrypting the random value z by applying the hash value H (d) applied with the data d to the hash function H and the hash value H (z)) (S201).

이를 수신한 본 발명의 수신 장치(200)의 디스크램블링부(220)는 사전에 송신 장치(100)와 공유한 기 설정된 스크램블 패턴에 따라 수신된 데이터를 원래의 배치로 복원하는 디스크램블링을 수행하게 된다(S203). The descrambling unit 220 of the receiving apparatus 200 of the present invention performs descrambling to restore the received data to its original arrangement according to a predetermined scramble pattern previously shared with the transmitting apparatus 100 (S203).

이렇게 디스클램블링된 데이터에서, 암호화된 데이터(E(d)), 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))은 원래의 배치로 복원되므로, 기 설정된 배치로부터 암호화된 데이터(E(d)), 상기 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d)) 그리고 해쉬 값(H(d))을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))를 각각 추출할 수 있다. The hash value H (d) and the hash value H (d), which are obtained by applying the decrypted data E (d), the data d to the hash function H, a value encrypted random value (z) by applying a key (E H (z)) is therefore restored to its original place, the group of encrypted data from the arrangement set (E (d)), the hash function to the data (d) ( a hash value (H (d)) and the hash value (H (d)) (a value (E H (z encrypt z))) random value by applying the encryption key is applied to H) can be extracted respectively.

아울러, 본 발명의 수신 장치(200)는 송신 장치(100)에서 암호화에 사용된 암호화 키를 모르므로, 암호화를 위해서 먼저 송신 장치(100)에서 암호화에 사용된 암호화 키를 생성하는 과정을 수행하게 된다.In addition, since the receiving apparatus 200 of the present invention does not know the encryption key used for encryption in the transmitting apparatus 100, the transmitting apparatus 100 first performs a process of generating an encryption key used for encryption in the transmitting apparatus 100 do.

이를 위해, 본 발명의 수신 장치(200)는 복호화 처리부(230)를 통해 먼저 디스크램블링된 데이터에서 데이터(d)를 해쉬 함수(H)에 적용한 해쉬 값(H(d))을 추출한다(S205). 그리고 본 발명의 수신 장치(200)의 복호화 처리부(230)는 추출한 해쉬 값(H(d))으로 디스크램블링된 데이터로부터 추출된 해쉬 값(H(d)을 암호화키로 적용하여 랜덤값(z)을 암호화한 값(EH(z))을 복호화하여 랜덤값(z)을 확인할 수 있다(S207).To this end, the receiving apparatus 200 of the present invention extracts a hash value H (d) obtained by applying the data d from the descrambled data to the hash function H through the decryption processing unit 230 (S205 ). The decryption processing unit 230 of the receiving apparatus 200 of the present invention applies the hash value H (d) extracted from the descrambled data with the extracted hash value H (d) to the random value z, (E H (z)) by decrypting the random value z (S207).

그리고 본 발명의 수신 장치(200)의 복호화 처리부(230)는 추출된 랜덤 값(z)을 키 유도 함수에 적용하여 암호화 키를 생성한다(S209). 여기서 암호화 키를 생성하는 과정은 도 5의 S105 단계와 동일하게 이뤄지게 된다. The decryption processing unit 230 of the receiving apparatus 200 of the present invention applies the extracted random value z to the key derivation function to generate an encryption key (S209). Here, the process of generating the encryption key is performed in the same manner as in step S105 of FIG.

이후, 본 발명의 수신 장치(200)의 복호화 처리부(230)는 생성된 암호화 키를 이용하여 S203 단계에서 디스크램블링하여 확인된 암호화된 데이터(E(d))를 복호화할 수 있게 된다(S211). 이를 통해서 암호화키를 송수신하지 않더라도 송신 장치(100)에서 송신하고자 하는 원래의 데이터를 확인할 수 있게 된다. The decryption processing unit 230 of the receiving apparatus 200 of the present invention can decrypt the encrypted data E (d) confirmed by descrambling in step S203 using the generated encryption key (S211) . Accordingly, even if the encryption key is not transmitted or received, the original data to be transmitted by the transmission apparatus 100 can be confirmed.

그리고 본 발명의 수신 장치(200)의 복호화 처리부(230)는 데이터(d)를 기 설정된 해쉬 함수(H)에 적용하여 생성되는 해쉬 값(H(d))를 이용하여 검증 절차를 수행한다(S213). 다시 말해, 확인한 데이터(d)를 기 설정된 해쉬 함수(H)에 적용하여 해쉬 값(H(d))을 생성하고 생성된 해쉬 값(H(d))과 S203 단계에서 확인한 즉, 송신 장치(100)로부터 수신된 해쉬 값(H(d))을 비교하여 복호화 처리가 정상적으로 이루어 졌는지를 검증하게 된다. The decryption processing unit 230 of the receiving apparatus 200 of the present invention performs the verification procedure using the hash value H (d) generated by applying the data d to the predetermined hash function H S213). In other words, the hash value H (d) is generated by applying the confirmed data d to the predetermined hash function H to generate the hash value H (d) 100), and verifies whether or not the decryption processing has been normally performed by comparing the hash value H (d).

이러한 과정을 거쳐 송신 장치(100)가 전달하고자 하는 데이터에 대한 확인이 이뤄지게 되면, 본 발명의 수신 장치(200)는 이를 처리하는 과정을 수행할 수 있다(S215). 예를 들어, 확인된 데이터에 따라 특정 기능을 수행하거나 기능 수행을 위한 장치로 이를 전달하는 역할을 수행할 수 있다. If the data to be transmitted by the transmitting apparatus 100 is confirmed through the above process, the receiving apparatus 200 of the present invention can process the data (S215). For example, it can carry out a specific function according to the confirmed data or transmit it to a device for performing a function.

이와 같이 본 발명의 실시 예에 따른 암호화 및 복호화 방법에 따르면, 공개키 방식이 아닌 랜덤값을 기반으로 생성되는 암호화키를 통해 데이터를 암호화함으로써, 1차적으로 암호화 키의 노출에 따른 보안 문제를 해결할 수 있게 된다. As described above, according to the encryption and decryption method according to the embodiment of the present invention, data is encrypted through an encryption key generated based on a random value rather than a public key, thereby solving the security problem due to the exposure of the encryption key .

또한, 본 발명에 의하면, 암호화를 하고자 하는 데이터뿐 아니라, 암호화 과정에서 발생되는 값들을 모두 스크램블링하여 수신 장치로 전송함으로써, 데이터 송수신에 따라 발생될 수 있는 보안 문제를 이중으로 예방할 수 있어 데이터 보안이 보다 효율적으로 이뤄질 수 있게 된다. In addition, according to the present invention, not only the data to be encrypted but also all the values generated in the encryption process are scrambled and transmitted to the receiving apparatus, so that a security problem that may be caused by data transmission and reception can be prevented, It can be done more efficiently.

이상으로 본 발명의 실시 예에 따른 암호화 및 복호화 방법에 대해 설명하였다. The encryption and decryption method according to the embodiment of the present invention has been described above.

상술한 바와 같은 본 발명의 암호화 및 복호화 방법은 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체의 형태로 제공될 수도 있다. 본 발명의 일 실시 예에 따른 암호화 방법을 구현하기 위한 기록매체에 기록되는 프로그램은 데이터(d)를 입력 받는 단계, 상기 입력된 데이터(d)에 암호화 함수(E)를 적용하여 데이터(d)를 암호화하는 단계, 상기 암호화된 데이터(E(d)) 및 상기 암호화하는 단계에서 발생되는 데이터를 스크램블링하는 단계 및 상기 스크램블링된 데이터를 전송하는 단계 등을 실행할 수 있다. The encryption and decryption method of the present invention as described above may be provided in the form of a computer readable medium suitable for storing computer program instructions and data. A program recorded on a recording medium for implementing an encryption method according to an embodiment of the present invention includes the steps of receiving data d, applying an encryption function E to the input data d, , Encrypting the encrypted data E (d) and the data generated in the encrypting step, and transmitting the scrambled data.

또한, 본 발명의 다른 실시 예에 따른 복호화 방법을 구현하기 위한 기록매체에 기록되는 프로그램은 스크램블링된 데이터를 수신하는 단계, 상기 스크램블링된 데이터를 디스크램블링하는 단계, 상기 디스크램블링된 데이터에서 확인된 랜덤값(z)을 이용하여 암호화 키를 생성하는 단계, 상기 생성된 암호화 키를 이용하여 상기 디스크램블링된 데이터에서 암호화된 데이터(E(d))를 복호화하는 단계 및 상기 복호화된 데이터(d)를 검증하는 단계 등을 실행할 수 있다. According to another aspect of the present invention, there is provided a program recorded on a recording medium for implementing a decoding method, comprising: receiving scrambled data; descrambling the scrambled data; Decrypting the encrypted data (E (d)) from the descrambled data using the generated encryption key, and decrypting the decrypted data (d) using the generated encryption key Verification step, and the like.

이때, 기록매체에 기록된 프로그램은 컴퓨터에서 읽히어 설치되고 실행됨으로써 전술한 기능들을 실행할 수 있다. At this time, the program recorded on the recording medium can be read and installed in the computer and executed, thereby executing the above-described functions.

여기서, 컴퓨터가 기록매체에 기록된 프로그램을 읽어 들여 프로그램으로 구현된 기능들을 실행시키기 위하여, 전술한 프로그램은 컴퓨터의 프로세서(CPU)가 컴퓨터의 장치 인터페이스(Interface)를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. In order to allow a computer to read a program recorded on a recording medium and to execute functions implemented by the program, the above-mentioned program may be stored in a computer-readable medium such as C, C ++, JAVA, machine language, and the like.

이러한 코드는 전술한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Function Code)를 포함할 수 있고, 전술한 기능들을 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수도 있다. 또한, 이러한 코드는 전술한 기능들을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다. 또한, 컴퓨터의 프로세서가 전술한 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈을 이용하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다.The code may include a function code related to a function or the like that defines the functions described above and may include an execution procedure related control code necessary for the processor of the computer to execute the functions described above according to a predetermined procedure. In addition, such code may further include memory reference related code as to what additional information or media needed to cause the processor of the computer to execute the aforementioned functions should be referenced at any location (address) of the internal or external memory of the computer . In addition, when a processor of a computer needs to communicate with any other computer or server that is remote to execute the above-described functions, the code may be stored in a memory of the computer using a communication module of the computer, It may further include a communication-related code such as how to communicate with another computer or a server, and what information or media should be transmitted or received during communication.

이러한, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM)과 같은 반도체 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다. Such computer-readable media suitable for storing computer program instructions and data include, for example, magnetic media such as hard disks, floppy disks and magnetic tape, compact disk read only memory (CD-ROM) Optical media such as a DVD (Digital Video Disk), a magneto-optical medium such as a floppy disk, and a ROM (Read Only Memory), a RAM , Random Access Memory), flash memory, EPROM (Erasable Programmable ROM), and EEPROM (Electrically Erasable Programmable ROM). The processor and memory may be supplemented by, or incorporated in, special purpose logic circuits.

또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.The computer readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner. The functional program for implementing the present invention and the related code and code segment may be implemented by programmers in the technical field of the present invention in consideration of the system environment of the computer that reads the recording medium and executes the program, Or may be easily modified or modified by the user.

본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.While the specification contains a number of specific implementation details, it should be understood that they are not to be construed as limitations on the scope of any invention or claim, but rather on the description of features that may be specific to a particular embodiment of a particular invention Should be understood. Certain features described herein in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments, either individually or in any suitable subcombination. Further, although the features may operate in a particular combination and may be initially described as so claimed, one or more features from the claimed combination may in some cases be excluded from the combination, Or a variant of a subcombination.

마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.Likewise, although the operations are depicted in the drawings in a particular order, it should be understood that such operations must be performed in that particular order or sequential order shown to achieve the desired result, or that all illustrated operations should be performed. In certain cases, multitasking and parallel processing may be advantageous. Also, the separation of the various system components of the above-described embodiments should not be understood as requiring such separation in all embodiments, and the described program components and systems will generally be integrated together into a single software product or packaged into multiple software products It should be understood.

본 발명은 암호화 방법에 관한 것으로, 더욱 상세하게는 데이터 암호화에 사용되는 암호화키를 공유하지 않더라도 데이터를 복호화할 수 있는 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an encryption method, and more particularly, to an encryption method capable of decrypting data without sharing an encryption key used for data encryption, and a transmitting apparatus, a decrypting method, and a receiving apparatus using the same.

본 발명에 의하면, 암호화를 하고자 하는 데이터뿐 아니라, 암호화 과정에서 발생되는 값들을 모두 스크램블링하여 수신 장치로 전송함으로써, 데이터 송수신에 따라 발생될 수 있는 보안 문제를 이중으로 예방할 수 있으며, 이를 통해 본 발명은 보안 서비스 산업의 발전에 이바지할 수 있다.According to the present invention, not only the data to be encrypted but also all the values generated in the encryption process are scrambled and transmitted to the receiving device, thereby preventing a security problem that may be caused by data transmission and reception. Can contribute to the development of the security service industry.

더불어, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.In addition, since the present invention is not only possible to be marketed or operated, but also can be practically and practically carried out, it is industrially applicable.

100: 송신 장치 110: 데이터 입력부
120: 암호화 처리부 130: 스크램블링부
140: 송신부 150: 송신 저장부
200: 수신 장치 210: 수신부
220: 디스크램블링부 230: 복호화 처리부
240: 데이터 처리부 250: 수신 저장부
300: 암호화 시스템
100: transmitting apparatus 110: data input unit
120: Encryption processing unit 130: Scrambling unit
140: Transmission unit 150: Transmission storage unit
200: receiving apparatus 210: receiving section
220: descrambling unit 230: decryption processing unit
240: Data processing unit 250:
300: Encryption system

Claims (13)

암호화 함수(E), 해쉬 함수(H), 키 유도 함수(KDF)를 포함하는 복수 개의 세트를 포함하는 송신 장치에서의 암호화 방법에 있어서,
상기 송신 장치가
데이터(d)를 입력 받는 단계;
상기 복수 개의 세트 중 어느 한 세트의 키 유도 함수(KDF; key derivation function)에 임의의 랜덤값(z)을 적용하여 암호화 키(key)를 생성하는 단계;
상기 어느 한 세트를 구성하는 암호화 함수(E)와 상기 생성된 암호화 키를 이용하여 상기 데이터(d)를 암호화하고, 상기 데이터(d)에 상기 어느 한 세트를 구성하는 해쉬 함수(H)를 적용하여 해쉬 값(H(d))을 생성하고, 상기 해쉬 값(H(d)) 및 상기 암호화 함수(E)를 이용하여 상기 랜덤값(z)을 암호화하는 단계;
상기 암호화된 데이터(E(d)), 상기 데이터(d)에 대한 해쉬 값(H(d)) 및 상기 랜덤값(z)을 암호화한 값(EH(z))을 스크램블링하는 단계; 및
상기 스크램블링된 값을 수신 장치로 전송하는 단계;
를 포함하는 것을 특징으로 하는 암호화 방법.
An encryption method in a transmitting apparatus including a plurality of sets including an encryption function (E), a hash function (H), and a key derivation function (KDF)
When the transmitting apparatus
Receiving data (d);
Generating an encryption key by applying an arbitrary random value (z) to a key derivation function (KDF) of any one of the plurality of sets;
Encrypting the data (d) using the encryption function (E) constituting any one of the sets and the generated encryption key, and applying a hash function (H) constituting any one of the sets to the data (d) Generating a hash value H (d) and encrypting the random value z using the hash value H (d) and the encryption function E;
Scrambling a value E H (z) obtained by encrypting the encrypted data E (d), the hash value H (d) for the data d, and the random value z; And
Transmitting the scrambled value to a receiving device;
And encrypting the encrypted data.
삭제delete 삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 복수 개의 세트를 상기 수신 장치와 공유하는 단계;
를 더 포함하는 것을 특징으로 하는 암호화 방법.
The method according to claim 1,
Sharing the plurality of sets with the receiving apparatus;
Further comprising the step of:
암호화 함수(E), 해쉬 함수(H), 키 유도 함수(KDF)를 포함하는 복수 개의 세트를 포함하는 송신 장치에 있어서,
상기 송신 장치는
암호화하고자 하는 데이터(d)를 입력 받는 데이터 입력부;
기 복수 개의 세트 중 어느 한 세트의 키 유도 함수(KDF; key derivation function)에 임의의 랜덤값(z)을 적용하여 암호화 키(key)를 생성하고, 상기 어느 한 세트를 구성하는 암호화 함수(E)와 상기 생성된 암호화 키를 이용하여 상기 데이터(d)를 암호화하고, 상기 데이터(d)에 상기 어느 한 세트를 구성하는 해쉬 함수(H)를 적용하여 해쉬 값(H(d))을 생성하고, 상기 해쉬 값(H(d)) 및 상기 암호화 함수(E)를 이용하여 상기 랜덤값(z)을 암호화하는 암호화 처리부;
상기 암호화된 데이터(E(d)), 상기 데이터(d)에 대한 해쉬 값(H(d)) 및 상기 랜덤값(z)을 암호화한 값(EH(z))을 스크램블링하는 스크램블링부; 및
상기 스크램블링된 값을 수신 장치로 전송하는 송신부;
포함하는 것을 특징으로 하는 암호화 방법을 이용하는 송신 장치.
A transmission apparatus comprising a plurality of sets including an encryption function (E), a hash function (H), and a key derivation function (KDF)
The transmitting apparatus
A data input unit for receiving data d to be encrypted;
Generating an encryption key by applying an arbitrary random value z to a key derivation function KDF of any one of the plurality of sets and generating an encryption function E Encrypts the data d using the generated encryption key and applies a hash function H constituting any one of the sets to the data d to generate a hash value H An encryption processing unit for encrypting the random value z using the hash value H (d) and the encryption function E;
A scrambling unit for scrambling a value E H (z) obtained by encrypting the encrypted data E (d), the hash value H (d) for the data d, and the random value z; And
A transmitter for transmitting the scrambled value to a receiver;
And the encryption method is used.
데이터(d)를 입력 받는 단계;
암호화 함수(E), 해쉬 함수(H), 키 유도 함수(KDF)를 포함하는 복수 개의 세트 중 어느 한 세트의 키 유도 함수(KDF; key derivation function)에 임의의 랜덤값(z)을 적용하여 암호화 키(key)를 생성하는 단계;
기 어느 한 세트를 구성하는 암호화 함수(E)와 상기 생성된 암호화 키를 이용하여 상기 데이터(d)를 암호화하고, 상기 데이터(d)에 상기 어느 한 세트를 구성하는 해쉬 함수(H)를 적용하여 해쉬 값(H(d))을 생성하고, 상기 해쉬 값(H(d)) 및 상기 암호화 함수(E)를 이용하여 상기 랜덤값(z)을 암호화하는 단계; 및
기 암호화된 데이터(E(d)), 상기 데이터(d)에 대한 해쉬 값(H(d)) 및 상기 랜덤값(z)을 암호화한 값(EH(z))을 스크램블링하는 단계;
포함하는 것을 특징으로 하는 암호화 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
Receiving data (d);
(Z) to a key derivation function (KDF) of any one of a plurality of sets including an encryption function (E), a hash function (H) and a key derivation function (KDF) Generating an encryption key;
(D) by using a cryptographic function (E) constituting a set and a generated encryption key, and applying a hash function (H) constituting any one of the sets to the data (d) Generating a hash value H (d) and encrypting the random value z using the hash value H (d) and the encryption function E; And
Scrambling a value E H (z) obtained by encrypting the pre-encrypted data E (d), the hash value H (d) for the data d, and the random value z;
And encrypting the encrypted data with the encryption key.
암호화 함수(E), 해쉬 함수(H), 키 유도 함수(KDF)를 포함하는 복수 개의 세트를 포함하는 수신 장치에서의 복호화 방법에 있어서,
상기 수신 장치가
송신 장치로부터 스크램블링된 데이터를 수신하는 단계;
상기 스크램블링된 데이터를 디스크램블링하는 단계;
상기 디스크램블링된 데이터에서 데이터(d)의 해쉬 값(H(d))를 추출하고, 상기 데이터(d)의 해쉬 값(H(d))을 이용하여 랜덤값(z)을 확인하며, 상기 확인된 랜덤값(z)을 상기 복수 개의 세트 중 어느 한 세트의 키 유도 함수((KDF; key derivation function)에 적용하여 암호화 키를 생성하는 단계;
상기 생성된 암호화 키를 이용하여 상기 디스크램블링된 데이터에서 암호화된 데이터(E(d))를 복호화하는 단계; 및
상기 데이터(d)을 상기 어느 한 세트의 해쉬 함수(H)에 적용하여 해쉬 값(H(d))을 생성하고, 상기 생성된 해쉬 값(H(d))과 상기 디스크램블링된 데이터에서 추출된 데이터(d)의 해쉬 값(H(d))을 비교하여 검증하는 단계;
를 포함하는 것을 특징으로 하는 복호화 방법.
A decoding method in a receiving apparatus including a plurality of sets including an encryption function (E), a hash function (H), and a key derivation function (KDF)
The receiving device
Receiving scrambled data from a transmitting device;
Descrambling the scrambled data;
Extracting a hash value H (d) of the data d from the descrambled data and verifying the random value z using a hash value H (d) of the data d, Generating an encryption key by applying the identified random value z to a set of key derivation functions (KDF) of the plurality of sets;
Decrypting the encrypted data E (d) in the descrambled data using the generated encryption key; And
Generating the hash value H (d) by applying the data d to the set of hash functions H and generating the hash value H (d) Comparing the hash value H (d) of the received data d with the hash value H (d);
And decrypting the decrypted data.
삭제delete 삭제delete 송신 장치로부터 스크램블링된 데이터를 수신하는 수신부;
상기 스크램블링된 데이터를 디스크램블링하는 디스크램블링부; 및
기 디스크램블링부를 통해 상기 디스크램블링된 데이터에서 데이터(d)의 해쉬 값(H(d))를 추출하고, 상기 데이터(d)의 해쉬 값(H(d))을 이용하여 랜덤값(z)을 확인하며, 상기 확인된 랜덤값(z)을 복수 개의 세트 중 어느 한 세트의 키 유도 함수((KDF; key derivation function)에 적용하여 암호화 키를 생성하며, 상기 생성된 암호화 키를 이용하여 상기 디스크램블링된 데이터에서 암호화된 데이터(E(d))를 복호화하며, 상기 데이터(d)를 상기 어느 한 세트의 해쉬 함수(H)에 적용하여 해쉬 값(H(d))을 생성하고, 상기 생성된 해쉬 값(H(d))과 상기 디스크램블링된 데이터에서 추출된 데이터(d)의 해쉬 값(H(d))을 비교하여 검증하는 복호화 처리부;
포함하는 것을 특징으로 하는 복호화 방법을 이용하는 수신 장치.
A receiving unit for receiving scrambled data from a transmitting apparatus;
A descrambling unit for descrambling the scrambled data; And
(D) of the data d from the descrambled data by using a hash value H (d) of the data d, and outputs the random value z as a hash value H (d) And generating an encryption key by applying the identified random value z to a set of key derivation functions (KDF) of a plurality of sets, and using the generated encryption key, Decrypting the encrypted data E (d) from the descrambled data and applying the data d to the set of hash functions H to generate a hash value H (d) A decoding processor for comparing and verifying the generated hash value H (d) with a hash value H (d) of the data d extracted from the descrambled data;
And decodes the received signal.
스크램블링된 데이터를 수신하는 단계;
기 스크램블링된 데이터를 디스크램블링하는 단계;
기 디스크램블링된 데이터에서 데이터(d)의 해쉬 값(H(d))를 추출하고, 상기 데이터(d)의 해쉬 값(H(d))을 이용하여 랜덤값(z)을 확인하며, 상기 확인된 랜덤값(z)을 암호화 함수(E), 해쉬 함수(H), 키 유도 함수(KDF)를 포함하는 복수 개의 세트 중 어느 한 세트의 키 유도 함수((KDF; key derivation function)에 적용하여 암호화 키를 생성하는 단계;
기 생성된 암호화 키를 이용하여 상기 디스크램블링된 데이터에서 암호화된 데이터(E(d))를 복호화하는 단계; 및
기 데이터(d)을 상기 어느 한 세트의 해쉬 함수(H)에 적용하여 해쉬 값(H(d))을 생성하고, 상기 생성된 해쉬 값(H(d))과 상기 디스크램블링된 데이터에서 추출된 데이터(d)의 해쉬 값(H(d))을 비교하여 검증하는 단계;
를 포함하는 것을 특징으로 하는 복호화 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.


Receiving scrambled data;
Descrambling the scrambled data;
Extracts a hash value H (d) of the data d from the scrambled data and confirms the random value z by using a hash value H (d) of the data d, The identified random value z is applied to a set of key derivation functions (KDF) of a plurality of sets including a cryptographic function E, a hash function H and a key derivation function KDF Generating an encryption key;
Decrypting the encrypted data E (d) in the descrambled data using the generated encryption key; And
Generating a hash value H (d) by applying the hash value H (d) to the set of hash functions H to generate a hash value H Comparing the hash value H (d) of the received data d with the hash value H (d);
And a decryption step of decrypting the decrypted encrypted data.


KR1020160057156A 2016-05-10 2016-05-10 Encryption method and apparatus using the same, decryption method and appratus using the same KR101924047B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160057156A KR101924047B1 (en) 2016-05-10 2016-05-10 Encryption method and apparatus using the same, decryption method and appratus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160057156A KR101924047B1 (en) 2016-05-10 2016-05-10 Encryption method and apparatus using the same, decryption method and appratus using the same

Publications (2)

Publication Number Publication Date
KR20170127105A KR20170127105A (en) 2017-11-21
KR101924047B1 true KR101924047B1 (en) 2019-02-25

Family

ID=60808772

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160057156A KR101924047B1 (en) 2016-05-10 2016-05-10 Encryption method and apparatus using the same, decryption method and appratus using the same

Country Status (1)

Country Link
KR (1) KR101924047B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102192477B1 (en) * 2018-07-16 2020-12-18 (주)이더블유비엠 Method, system and program of silent authentication instead of fido-based authentication
CN114726543B (en) * 2022-04-12 2023-07-18 北京信息科技大学 Key chain generation and message sending and receiving methods and devices based on message chain
KR102600593B1 (en) * 2022-12-22 2023-11-09 장준 Apparatus and method for encrypting data using a virtual keyboard

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100668016B1 (en) * 2004-01-22 2007-01-16 닛본 덴끼 가부시끼가이샤 Mixnet system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100601636B1 (en) 2001-03-16 2006-07-14 삼성전자주식회사 Storage Medium for protecting its contents, and method and apparatus for recording and reproducing thereon
KR100523054B1 (en) * 2002-11-19 2005-10-24 한국전자통신연구원 Controlling apparatus for storing and playing digital broadcasting contents
AU2003302544A1 (en) * 2002-12-03 2004-06-23 Matsushita Electric Industrial Co., Ltd. Key sharing system, shared key creation device, and shared key restoration device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100668016B1 (en) * 2004-01-22 2007-01-16 닛본 덴끼 가부시끼가이샤 Mixnet system

Also Published As

Publication number Publication date
KR20170127105A (en) 2017-11-21

Similar Documents

Publication Publication Date Title
CN100592683C (en) Protected return path from digital rights management dongle
JP3901909B2 (en) ENCRYPTION DEVICE AND RECORDING MEDIUM CONTAINING PROGRAM
US10187200B1 (en) System and method for generating a multi-stage key for use in cryptographic operations
JP2013047822A (en) Encryption method for message authentication
JP4701381B2 (en) Encryption key generation device, encryption key generation method, encrypted data distribution device, individual encryption key regeneration device, encrypted data reception device, encrypted data distribution system, encryption key generation program, and recording medium
JP2016513825A (en) Safety communication method and apparatus
CN1401171A (en) Generation of a common encryption key
KR101112157B1 (en) Data Encrytion Method
KR20160024965A (en) Method and apparatus to encrypt plaintext data
JP2012212138A (en) Encryption program, decryption program, encryption method, decryption method, system, and content generation method
KR101924047B1 (en) Encryption method and apparatus using the same, decryption method and appratus using the same
JP2018148434A (en) Key generation device and key generation method
US20110182419A1 (en) Encryption algorithm with randomized buffer
JP6930053B2 (en) Data encryption method and system using device authentication key
KR101899130B1 (en) Methods for encrypting data, decrypting data and apparatus using the same
TWI422241B (en) Spectrum authorization and related communications methods and apparatus
CN106254304B (en) Method and system for facilitating secure communications
KR20080046515A (en) Encoding and decoding method of contents file
KR20160034931A (en) Apparatus and method for key update for use in a block cipher algorithm
CN106341384B (en) Method for facilitating secure communications
KR101790948B1 (en) Apparatus and method for providing drm service, apparatus and method for playing contents using drm service
KR101687492B1 (en) Storing method of data dispersively and credential processing unit
KR100931986B1 (en) Terminal and method for transmitting message and receiving message
KR101566416B1 (en) Method and device of data encription with increased security
KR101824315B1 (en) Method and apparatus for encrypting data, and method and apparatus decrypting data

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