KR20180131059A - 암호화 처리 방법 및 그 장치 - Google Patents

암호화 처리 방법 및 그 장치 Download PDF

Info

Publication number
KR20180131059A
KR20180131059A KR1020170067575A KR20170067575A KR20180131059A KR 20180131059 A KR20180131059 A KR 20180131059A KR 1020170067575 A KR1020170067575 A KR 1020170067575A KR 20170067575 A KR20170067575 A KR 20170067575A KR 20180131059 A KR20180131059 A KR 20180131059A
Authority
KR
South Korea
Prior art keywords
encryption
data
processing
compressed
encryption processing
Prior art date
Application number
KR1020170067575A
Other languages
English (en)
Other versions
KR101987025B1 (ko
Inventor
유인선
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020170067575A priority Critical patent/KR101987025B1/ko
Priority to US15/982,492 priority patent/US11463417B2/en
Publication of KR20180131059A publication Critical patent/KR20180131059A/ko
Application granted granted Critical
Publication of KR101987025B1 publication Critical patent/KR101987025B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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
    • 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

대용량 데이터에 대한 고속 암호화 처리를 제공함으로써, 사용자 체감 성능 및 보안성을 동시에 향상시키는 암호화 처리 방법이 제공된다. 본 발명의 일 실시예에 따른 암호화 처리방법은, 암호화 처리 대상 데이터에 대한 압축 처리를 수행하고, 상기 압축 처리의 결과로 상기 암호화 처리 대상 데이터에 대한 압축 데이터를 획득하는 단계, 상기 압축 데이터 중에서, 암호화 처리가 수행될 암호화 대상 구간을 결정하되, 상기 암호화 대상 구간은 상기 압축 데이터의 일부인 것인, 단계 및 상기 암호화 대상 구간에 대한 암호화 처리를 수행하고, 상기 암호화 처리의 결과로 상기 압축 데이터에 대한 부분 암호화 데이터를 획득하는 단계를 포함할 수 있다.

Description

암호화 처리 방법 및 그 장치{Method for processing encryption and Apparatus thereof}
본 발명은 암호화 처리 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 대용량 데이터에 대한 고속 암호화 처리를 제공함으로써, 사용자 체감 성능 및 데이터의 보안성을 동시에 향상시키는 방법 및 상기 방법을 수행하는 장치에 관한 것이다.
개인의 민감한 정보, 서버에 저장된 각종 데이터 등을 안전하게 보관하기 위해서 통상적으로 암호화 알고리즘을 이용한 암호화 처리가 수행된다. 예를 들어, 3-DES, AES128, AES256 등의 암호화 알고리즘을 이용하여 암호화 처리가 수행되면, 암호화 키의 보안성이 보장되는 한도에서 데이터의 보안성 또한 확보될 수 있다.
데이터의 보안성과 함께 고려되어야 하는 것은 성능에 관한 이슈이다. 왜냐하면, 데이터의 보안성을 위해 암호화 처리가 수행되는 경우, 데이터를 저장하고 불러올 때마다 암·복호화가 수행되고, 암·복호화를 수행하는 데 적지 않은 컴퓨팅 비용이 소모되기 때문이다. 특히, 이메일 시스템과 같이 즉각적인 처리가 요구되는 시스템의 경우, 암·복호화 처리 성능이 사용자 체감 성능과 직결되기 때문에, 암·복호화 처리 성능은 시스템에 대한 사용자의 만족도를 좌우하는 중요한 요인이라고 할 수 있다.
그러나, 데이터의 크기가 증가함에 따라, 암·복호화 속도는 느려지기 때문에, 대용량 데이터에 대한 암·복호화 처리 성능을 보장하는 것은 어렵다. 이는 고속의 암호화 알고리즘을 이용하더라도 마찬가지다.
위와 같은 문제를 해결하기 위해, 암호화 처리 방식이 아닌 압축 처리 방식이 이용될 수도 있다. 그러나, 압축 처리 방식은 암호화 처리 방식에 비해 적은 컴퓨팅 비용이 소모되는 반면, 일정 수준 이상의 데이터의 보안성을 제공하지는 못한다는 문제가 있다.
이를 보완하기 위해, 압축 데이터에 소정의 패스워드(password)를 부여하여 데이터의 보안성 향상을 꾀할 수도 있다. 그러나, winzip, 7-zip 등 대부분의 압축 알고리즘은 압축 데이터 내에 패스워드를 보관하기 때문에, 여전히 일정 수준 이상의 데이터 보안성은 보장될 수 없다. 뿐만 아니라, 패스워드를 부여하기 위해서는 사용자의 개입이 필수적이기 때문에, 이와 같은 방식은 사용자의 편의성이 크게 떨어뜨린다는 문제점 또한 존재한다.
따라서, 사용자의 개입을 요구하지 않으면서, 대용량 데이터에 대한 고속의 암·복호화 처리를 제공하는 암·복호화 방법 및 상기 방법을 수행하는 장치가 요구된다.
한국등록특허 제1047213호 (2010.01.22 공개)
본 발명이 해결하고자 하는 기술적 과제는, 대용량 데이터에 대한 고속의 암호화 처리를 제공하는 암호화 처리 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 고속의 암호화 처리를 제공함과 동시에 일정 수준 이상의 데이터 보안성을 제공할 수 있는 암호화 처리 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는, 대용량 데이터에 대한 고속의 복호화 처리를 제공하는 복호화 처리 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 암호화 처리방법은, 암호화 처리 장치에 의해서 수행되는 암호화 처리 방법에 있어서, 암호화 처리 대상 데이터에 대한 압축 처리를 수행하고, 상기 압축 처리의 결과로 상기 암호화 처리 대상 데이터에 대한 압축 데이터를 획득하는 단계, 상기 압축 데이터 중에서, 암호화 처리가 수행될 암호화 대상 구간을 결정하되, 상기 암호화 대상 구간은 상기 압축 데이터의 일부인 것인, 단계 및 상기 암호화 대상 구간에 대한 암호화 처리를 수행하고, 상기 암호화 처리의 결과로 상기 압축 데이터에 대한 부분 암호화 데이터를 획득하는 단계를 포함할 수 있다.
일 실시예에서, 상기 암호화 처리에 이용되는 암호화 키는, 외부의 키 관리 시스템으로부터 획득된 것이고, 상기 암호화 처리 장치 및 상기 부분 암호화 데이터 내에 상기 암호화 키가 저장되지 않을 수 있다.
일 실시예에서, 상기 부분 암호화 데이터는, 상기 암호화 처리에 관한 메타데이터를 가리키는 암호화 헤더를 포함하되, 상기 암호화 헤더는, 상기 암호화 처리에 이용된 암호화 키의 해시(hash) 값을 포함할 수 있다.
일 실시예에서, 상기 부분 암호화 데이터는, 상기 암호화 처리에 관한 메타데이터를 가리키는 암호화 헤더를 포함하되, 상기 암호화 헤더는, 상기 암호화 처리를 통해 암호화된 데이터의 크기 및 상기 암호화 처리 대상 데이터의 크기 정보를 포함할 수 있다.
일 실시예에서, 상기 압축 데이터를 획득하는 단계는, 상기 압축 처리에 관한 메타데이터를 가리키는 압축 헤더를 생성하여 메모리에 적재하는 제1 단계; 및 상기 암호화 처리 대상 데이터에 대한 압축 처리를 수행하고, 상기 압축 처리 된 암호화 처리 대상 데이터를 상기 메모리에 적재하는 제2 단계를 포함하고, 상기 부분 암호화 데이터를 획득하는 단계는, 상기 제1 단계 이후 및 상기 제2 단계 이전에, 상기 메모리에 적재된 상기 압축 헤더에 대한 암호화 처리를 수행하는 단계를 포함할 수 있다.
일 실시예에서, 상기 압축 데이터는, 상기 압축 처리에 관한 메타데이터를 가리키는 압축 헤더를 포함하되, 상기 암호화 대상 구간은 상기 압축 헤더에 대응되는 구간일 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 암호화 처리장치는, 하나 이상의 프로세서, 네트워크 인터페이스, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 암호화 처리 대상 데이터에 대한 압축 처리를 수행하고, 상기 압축 처리의 결과로 상기 암호화 처리 대상 데이터에 대한 압축 데이터를 획득하는 오퍼레이션, 상기 압축 데이터 중에서, 암호화 처리가 수행될 암호화 대상 구간을 결정하되, 상기 암호화 대상 구간은 상기 압축 데이터의 일부인 것인, 오퍼레이션 및 상기 암호화 대상 구간에 대한 암호화 처리를 수행하고, 상기 암호화 처리의 결과로 상기 압축 데이터에 대한 부분 암호화 데이터를 획득하는 오퍼레이션을 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 암호화 처리 컴퓨터 프로그램은, 암호화 처리 대상 데이터에 대한 압축 처리를 수행하고, 상기 압축 처리의 결과로 상기 암호화 처리 대상 데이터에 대한 압축 데이터를 획득하는 단계, 상기 압축 데이터 중에서, 암호화 처리가 수행될 암호화 대상 구간을 결정하되, 상기 암호화 대상 구간은 상기 압축 데이터의 일부인 것인, 단계 및 상기 암호화 대상 구간에 대한 암호화 처리를 수행하고, 상기 암호화 처리의 결과로 상기 압축 데이터에 대한 부분 암호화 데이터를 획득하는 단계를 실행시키기 위하여 기록 매체에 저장될 수 있다.
상술한 본 발명에 따르면, 압축 처리를 통해 암호화 처리 대상 데이터의 크기를 감소시키고, 압축 처리된 데이터의 일부 데이터에 한하여 암호화가 수행될 수 있다. 이에 따라, 대용량 데이터라도 하더라도 고속의 암호화 처리 성능이 제공될 수 있는 바, 본 발명이 적용된 시스템 사용자의 체감 성능 및 만족도가 향상될 수 있다.
또한, 압축 처리에 따라 생성된 압축 헤더에 대해서 암호화 처리가 수행될 수 있다. 압축 헤더가 암호화되면, 압축 데이터에 전체에 대한 압축 해제가 불가능하므로, 일부 데이터의 암호화를 통해 데이터 전체에 대한 보안성이 효과적으로 확보될 수 있다.
또한, 암호화 키는 암호화 처리 장치 내부 또는 암호화 처리된 데이터 내부에 저장되지 않고, 외부의 키 관리 시스템에 암호화되어 보관될 수 있다. 이에 따라, 키 관리 시스템에서 암호화 키가 유출되지 않는 한 암호화 처리 대상 데이터의 보안성이 확보될 수 있다.
또한, 암호화 처리 대상 데이터 별로 적어도 일부는 서로 다른 압축 알고리즘 또는 암호화 알고리즘이 적용될 수 있다. 이에 따라, 데이터의 보안성이 더욱 증대되는 효과가 있다.
또한, 암호화 처리 대상 데이터의 암호화 처리 과정 동안 파일 입출력을 수행하지 않고 메모리에 적재된 상태에서 압축 처리 및 암호화 처리가 수행될 수 있다. 이에 따라, 파일 입출력 횟수가 최소화되는 바, 암호화 처리 성능이 더욱 향상될 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 암호화 처리 시스템의 구성도이다.
도 2는 암호화 처리 시스템의 일 구성 요소인 키 관리 시스템을 나타내는 블록도이다.
도 3은 본 발명의 다른 실시예에 따른 암호화 처리 장치를 나타내는 블록도이다.
도 4는 본 발명의 또 다른 실시예에 따른 암호화 처리 장치의 하드웨어 구성도이다.
도 5a 내지 도 6은 본 발명의 또 다른 실시예에 따른 암호화 처리 방법을 설명하기 위한 도면이다.
도 7 내지 도 9b는 본 발명의 몇몇 실시예에 따른 부분 암호화 데이터의 구조를 설명하기 위한 도면이다.
도 10은 본 발명의 또 다른 실시예에 따라 암호화 처리 성능을 향상시킬 수 있는 암호화 처리 방법의 흐름도이다.
도 11은 본 발명의 또 다른 실시예에 따른 복호화 처리 장치를 나타내는 블록도이다.
도 12는 본 발명의 또 다른 실시예에 따른 복호화 처리 방법의 흐름도이다.
도 13은 본 발명의 일 적용예에 따른 이메일 시스템의 구성도이다.
도 14는 종래 기술과 본 발명의 성능 실험 결과를 비교 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 암호화 처리 시스템의 구성도이다.
도 1을 참조하면, 암호화 처리 시스템은 암호화 처리 장치(100) 및 키 관리 시스템(300)을 포함할 수 있다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있음은 물론이다. 또한, 도 1에 도시된 암호화 처리 시스템의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 이하, 상기 암호화 처리 시스템의 각 구성 요소에 대하여 설명한다.
암호화 처리 장치(100)는 대용량의 암호화 처리 대상 데이터에 대한 암호화 처리를 제공하는 컴퓨팅 장치이다. 단, 실시예에 따라, 암호화 처리 장치(100)는 후술할 복호화 처리 기능 또한 함께 제공할 수도 있다.
상기 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop) 등이 될 수 있으나, 이에 국한되는 것은 아니며 연산 수단 및 통신 수단이 구비된 모든 종류의 장치를 포함할 수 있다.
본 실시예에서, 암호화 처리 장치(100)는 외부의 키 관리 시스템(300)으로부터 암호화 키를 획득하여 암호화 처리 대상 데이터에 대한 암호화 처리를 수행할 수 있다. 이때, 상기 암호화 키는 암호화된 데이터 내에 보관되지 않으며, 암호화 처리 장치(100) 내부에도 보관되지 않는다. 따라서, 본 실시예에 따르면, 키 관리 시스템(300)에서 암호화 키가 유출되지 않는 한 암호화 처리 대상 데이터의 보안성이 확보될 수 있다.
본 실시예에서, 암호화 처리 장치(100)는 압축 처리를 통해 데이터의 크기를 감소시키고, 압축된 데이터의 일부에 대해서만 암호화 처리를 수행할 수 있다. 따라서, 암호화 처리 장치(100)는 대용량의 암호화 처리 대상 데이터에 대해서도 고속의 암호화 처리를 수행할 수 있다. 또한, 암호화 처리가 수행되는 암호화 대상 구간은 압축 헤더와 같이 핵심적인 데이터에 대해서 수행되기 때문에, 암호화 처리 대상 데이터의 보안성 또한 보장될 수 있다.
상기 암호화 처리 및 상기 압축 처리에 이용되는 알고리즘은 당해 기술 분야에서 널리 알려진 적어도 하나의 알고리즘이 될 수 있으며. 본 발명의 범위가 적용되는 알고리즘의 종류에 한정되는 것은 아니다. 암호화 처리 장치(100)가 암호화 처리를 수행하는 방법에 대한 자세한 설명은 도 5a 내지 도 10을 참조하여 후술하도록 한다.
키 관리 시스템(300)은 암호화 처리 장치(100)의 요청에 응답하여 암호화 처리에 이용되는 암호화 키를 제공하는 시스템이다. 키 관리 시스템(300)은 단일 컴퓨팅 장치로 구성될 수도 있고, 복수의 컴퓨팅 장치로 구성될 수도 있다. 키 관리 시스템(300)에 대한 자세한 설명은 도 2를 참조하여 후술하도록 한다.
본 실시예에서, 암호화 처리 장치(100)와 키 관리 시스템(300)은 네트워크를 통해 통신할 수 있다. 통신 과정에서 IPSec, SSL(Secure Socket Layer) 등의 기법을 통해 통신 암호화 처리가 수행될 수 있을 것이나, 본 발명의 논지를 흐리지 않기 위해 이에 대한 설명은 생략하도록 한다.
상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
지금까지 도 1을 참조하여 본 발명의 일 실시예에 따른 암호화 처리 시스템에 대하여 설명하였다. 다음으로, 상기 암호화 처리 시스템의 각 구성 요소에 대하여 도 2 내지 도 4 를 참조하여 보다 상세하게 설명하도록 한다.
이해의 편의를 위해, 먼저 도 2를 참조하여 키 관리 시스템(300)의 구성에 대하여 간략하게 설명하고, 이후 암호화 처리 장치(100)에 대하여 설명하도록 한다.
도 2를 참조하면, 키 관리 시스템(300)은 키 액세스 서버(320), 마스터 키 관리 서버(340), 캐시 서버(350), 서비스 키 관리 DB(360) 및 마스터 키 관리 DB(370)를 포함할 수 있다. 여기서, 서비스 키는 암호화 처리 장치(100) 또는 후술할 복호화 처리 장치(200)에 제공하는 암호화 키 또는 복호화 키를 의미하며, 마스터 키는 상기 서비스 키를 암복호화하기 위해 이용되는 키를 의미한다.
키 액세스 서버(320)는 암호화 처리 장치(100)의 요청을 수신하고, 상기 요청에 응답하여 암호화 키를 암호화 처리 장치(100)에 제공한다.
본 발명의 실시예에 따르면, 키 액세스 서버(320)는 스케일 아웃(scale-out) 구조를 갖는 복수의 서버로 구성될 수 있다. 이와 같은 경우, 키 관리 시스템(300)은 스케일 아웃된 복수의 서버로 암호화 키 요청을 포워딩(forwarding)하기 위한 프록시(310)를 포함하여 구성될 수 있다.
실시예에 따라, 프록시(310)는 각 키 액세스 서버(320)의 상태를 고려하여, 수신된 암호화 키 요청을 분배할 수 있다. 여기서, 상기 상태는 예를 들어 키 액세스 서버(320)의 고장 여부, 부하량, 처리 성능 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
마스터 키 관리 서버(340)는 키 액세스 서버(320)의 요청에 응답하여 마스터 키를 생성하거나 복원하여 제공한다. 마스터 키 관리 서버(340) 또한 스케일 아웃 구조를 가질 수 있으며, 이와 같은 경우, 키 관리 시스템(300)은 키 액세스 서버(320)의 요청을 마스터 키 서버(340)로 포워딩하기 위한 프록시(330)를 포함하여 구성될 수 있다.
실시예에 따라, 프록시(330) 또한 각 키 마스터 키 관리 서버(340)의 상태를 고려하여, 수신된 마스터 키 요청을 분배할 수 있다. 여기서, 상기 상태는 예를 들어 마스터 키 관리 서버(340)의 고장 여부, 부하량, 처리 성능 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
본 발명의 실시예에 따르면, 마스터 키 관리 서버(340)는 소정의 알고리즘을 이용하여, 마스터 키를 복수의 키 조각으로 분할한 뒤, 상기 복수의 키 조각을 분산하여 마스터 키 관리 DB(370)에 보관할 수 있다. 즉, 마스터 키 관리 DB(370)에는 마스터 키가 그대로 보관되는 것이 아니라, 복수의 마스터 키 조각이 분산되어 저장되게 된다. 또한, 마스터 키 관리 서버(340)는 복수의 마스터 키 조각 중 일정 개수 이상의 키 조각을 이용하여 마스터 키를 복원할 수 있다. 예를 들어, 라그레인지 보간법(Lagrange interpolation) 및 임계치를 갖는 비밀 분산 방식(e.g. Threshold Secret Sharing) 등을 이용하여 상기 마스터키가 복원될 수 있으나, 이에 한정되는 것은 아니다. 본 실시예에 따르면, 키 조각이 유출되더라도 상기 일정 개수 미만이라면 마스터 키가 복원될 수 없는 바, 키 관리의 보안성이 향상될 수 있다. 아울러, 마스터 키가 키 관리 시스템(300) 내의 어떤 장치에도 그대로 보관되지 않는 바, 마스터 키의 비밀성 또한 보장될 수 있다.
캐시 서버(350)는 이용 빈도가 높은 마스터 키를 암호화하여 저장할 수 있다. 특히, 마스터 키 관리 DB(370)가 관계형 DB로 구현되는 경우, 마스터 키 저장 및 복원을 위해 다수의 DB 접근이 발생하기 때문에, 성능 측면에서 다소 비효율적일 수 있다. 이와 같은 경우, 이용 빈도가 높은 마스터 키를 캐시 서버(350)에 보관함으로써 키 관리 시스템(300)의 전반적인 성능 향상을 꾀할 수 있다. 실시예에 따라, 캐시 서버(350)는 스케일 아웃 구조로 구성된 분산 캐시로 구현될 수 있으나, 이에 한정되는 것은 아니다.
서비스 키 관리 DB(360)는 마스터 키를 통해 암호화된 서비스 키와 상기 마스터 키에 대한 식별 정보를 보관한다. 따라서, 키 액세스 서버(320)는 상기 마스터 키에 대한 식별 정보를 이용하여, 마스터 키 관리 서버(340)로 마스터 키의 복원을 요청하고, 제공 받은 마스터 키를 이용하여 암호화된 서비스 키를 복호화한 뒤, 암호화 처리 장치(100) 또는 복호화 처리 장치(200)로 서비스 키를 안전하게 제공할 수 있다.
지금까지, 도 2를 참조하여, 암호화 처리 시스템의 일 구성 요소인 키 관리 시스템(300)의 구성에 대하여 간략하게 설명하였다. 상술한 바에 따르면, 키 관리 시스템(300)은 서비스 키 관리 기능과 마스터 키 관리 기능을 서로 다른 서버로 분리시키고, 서비스 키를 암호화하여 저장하며, 마스터 키를 복수의 키 분산 저장하기 때문에, 키 관리의 안정성을 제공할 수 있다. 이외에도, 다수의 구성 요소가 스케일 아웃 구조로 구성됨으로써, 키 관리 시스템(300)의 처리 성능이 향상될뿐만 아니라, SPOF(single point of failure) 문제가 해결됨으로써 시스템 전반적인 가용성 및 신뢰성이 향상될 수 있다.
이하에서는, 암호화 처리 장치(100)의 구성 및 동작에 대하여 도 3 내지 도 4를 참조하여 설명한다.
도 3은 본 발명의 다른 실시예에 따른 암호화 처리 장치(100)를 나타내는 블록도이다.
도 3를 참조하면, 암호화 처리 장치(100)는 압축부(110), 암호화부(120) 및 인터페이스부(130)를 포함할 수 있다. 다만, 도 3에는 본 발명의 실시예와 관련 있는 구성 요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 3에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 또한, 도 3에 도시된 암호화 처리장치의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 이하, 암호화 처리 장치(100)의 각 구성 요소에 대하여 설명한다.
압축부(110)는 평문으로 구성된 암호화 처리 대상 데이터에 대한 압축 처리를 수행하고, 암호화 처리 대상 데이터에 대한 압축 데이터를 제공한다. 상기 압축 처리에 대한 자세한 설명은 도 5a 내지 도10를 참조하여 보다 상세하게 설명하도록 한다.
암호화부(120)는 인터페이스부(130)로부터 암호화 키를 제공받고, 상기 암호화 키를 이용하여 상기 압축 데이터에 대한 암호화 처리를 수행한다. 상기 암호화 처리는 압축 데이터의 일부 데이터에 대하서만 수행될 수 있고, 예를 들어 상기 일부 데이터는 상기 압축 처리에 관한 메타데이터를 가리키는 압축 헤더가 될 수 있다. 상기 암호화 처리에 대한 자세한 설명은 도 5a 내지 도10를 참조하여 보다 상세하게 설명하도록 한다.
인터페이스부(130)는 외부의 키 관리 시스템(300)과 연동하여 암호화 키를 요청하고, 요청한 암호화 키를 제공받아 암호화부(120)로 전달하는 기능을 수행한다.
도3의 각 구성요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현될 수도 있다.
다음으로, 도 4는 본 발명의 또 다른 실시예에 따른 암호화 처리 장치(100)의 하드웨어 구성도이다.
도 4를 참조하면, 암호화 처리 장치(100)는 하나 이상의 프로세서(101), 버스(105), 네트워크 인터페이스(107), 프로세서(101)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(103)와, 암호화 처리 소프트웨어(109a)를 저장하는 스토리지(109)를 포함할 수 있다. 다만, 도 4에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 4에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(101)는 암호화 처리 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(101)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(101)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 암호화 처리 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(103)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(103)는 본 발명의 실시예들에 따른 암호화 처리 방법을 실행하기 위하여 스토리지(109)로부터 하나 이상의 프로그램(109a)을 로드할 수 있다. 도 4에서 메모리(103)의 예시로 RAM이 도시되었다.
버스(105)는 암호화 처리 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(105)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
네트워크 인터페이스(107)는 암호화 처리 장치(100)의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(107)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(107)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
구체적으로, 네트워크 인터페이스(107)는 키 관리 시스템(300)으로 암호화 키 요청을 송신하고, 키 관리 시스템(300)으로부터 암호화 키를 수신할 수 있다.
스토리지(109)는 상기 하나 이상의 프로그램(109a)을 비임시적으로 저장할 수 있다. 도 4에서 상기 하나 이상의 프로그램(109a)의 예시로 암호화 처리 소프트웨어(109a)가 도시되었다.
스토리지(109)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록매체를 포함하여 구성될 수 있다.
암호화 처리 소프트웨어(109a)는 본 발명의 실시예에 따라 대용량의 암호화 처리 대상 데이터에 대한 암호화 처리를 수행하기 위해, 본 발명의 실시예에 따른 암호화 처리 방법을 수행할 수 있다.
구체적으로, 암호화 처리 소프트웨어(109a)는 메모리(103)에 로드되어, 하나 이상의 프로세서(101)에 의해, 암호화 처리 대상 데이터에 대한 압축 처리를 수행하고, 상기 압축 처리의 결과로 상기 암호화 처리 대상 데이터에 대한 압축 데이터를 획득하는 오퍼레이션, 상기 압축 데이터 중에서, 암호화 처리가 수행될 암호화 대상 구간을 결정하되, 상기 암호화 대상 구간은 상기 압축 데이터의 일부인 것인, 오퍼레이션 및 상기 암호화 대상 구간에 대한 암호화 처리를 수행하고, 상기 암호화 처리의 결과로 상기 압축 데이터에 대한 부분 암호화 데이터를 획득하는 오퍼레이션을 실행할 수 있다.
지금까지, 도 3 내지 도 4를 참조하여 본 발명의 실시예에 따른 암호화 처리 장치(100)의 구성 및 동작에 대하여 설명하였다.
다음으로, 도 5a 내지 도 10을 참조하여 본 발명의 또 다른 실시예에 따른 암호화 처리 방법에 대하여 상세하게 설명한다. 이하, 상기 암호화 처리 방법의 각 단계는, 컴퓨팅 장치에 의해 수행될 수 있다. 예를 들어, 상기 컴퓨팅 장치는 암호화 처리 장치(100)일 수 있다. 다만, 설명의 편의를 위해, 상기 암호화 처리 방법에 포함되는 각 단계의 동작 주체는 그 기재가 생략될 수도 있다. 또한, 암호화 처리 방법의 각 단계는 암호화 처리 소프트웨어(109a)가 프로세서(101)에 의해 실행됨으로써, 암호화 처리 장치(100)에서 수행되는 오퍼레이션일 수 있다.
도 5a는 암호화 처리 방법의 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 5a를 참조하면, 암호화 처리 장치(100)는 암호화 처리 대상 데이터에 대한 암호화 처리를 위해 암호화 키를 획득한다(S110). 본 단계(S110)는 단계(S130)와 동시에 수행될 수도 있고, 단계(S130) 이후에 수행될 수도 있음에 유의한다.
도 5b에 도시된 바와 같이, 본 단계(S110) 이후에, 암호화 처리 장치(100)는 상기 암호화 키에 대한 해시 값을 생성하고, 상기 해시 값을 암호화 처리에 관한 메타데이터를 가리키는 암호화 헤더에 저장하는 단계(S120)를 더 수행할 수 있다. 상기 해시 값은 이후 복호화 단계에서 키 검증의 용도로 이용될 수 있다. 상기 해시 값과 관련된 설명은 도 7 및 도 12에 설명된 부분을 참조하도록 한다.
일 실시예에서, 상기 암호화 키는 외부의 키 관리 시스템(300)으로부터 획득될 수 있다. 본 실시예에 따르면, 암호화 키가 암호화 처리 장치(100) 내부에 보관되지 않는 바, 데이터의 보안성이 더욱 증대될 수 있다.
단, 다른 실시예에 따르면, 상기 암호화 키는 암호화 처리 장치(100)에 의해 자체적으로 생성되거나, 내부에 저장된 키를 불어오는 방식으로 획득될 수도 있다. 암호화된 데이터가 암호화 처리 장치(100) 내부에 보관되지 않고, 외부의 저장소에 보관되는 경우라면, 본 실시예에 따르더라도 일정 수준의 데이터 보안성이 확보될 수 있다.
다음으로, 암호화 처리 장치(100)는 암호화 처리 대상 데이터에 대한 압축 처리를 수행하고, 상기 압축 처리의 결과로 암호화 처리 대상 데이터에 대한 압축 데이터를 획득한다(S130). 상기 압축 처리는 예를 들어, LZO, Snappy, SynLZ, LZ4, QuickLZ 등 당해 기술 분야에서 널리 알려진 압축 알고리즘을 이용하여 수행될 수 있다.
상기 압축 데이터는 상기 압축 처리와 관련된 메타데이터를 가리키는 압축 헤더를 포함할 수 있다. 예를 들어, 도 6에 도시된 바와 같이, 데이터 A(501)가 암호화 처리 대상 데이터라고 할 때, 압축 처리를 통해 획득된 압축 데이터(503)는 압축 헤더(503a)와 데이터 A(501)가 압축된 데이터 A'(503b)를 포함할 수 있다. 참고로, 상기 압축 헤더에 포함된 각각의 메타데이터는 압축 알고리즘에 따라 달라질 수 있다.
본 발명의 실시예에 따르면, 상기 압축 처리는 암호화 처리 대상 데이터의 일부에 대해서 수행될 수 있고, 전부에 대해서 수행될 수도 있다. 예를 들어, 압축 처리되는 데이터의 범위는 암호화 처리 대상 데이터의 유형에 따라 달라질 수 있다. 보다 자세한 예를 들어, 암호화 처리 대상 데이터의 유형이 "txt" 파일과 같이 파일 내부에 구조화된 메타데이터가 존재하지 않는 파일인 경우, 상기 압축 처리는 전부에 대해서 수행될 수 있고, 암호화 처리 대상 데이터의 유형이 "jpg" 파일과 같이 파일 내부에 메타데이터를 가리키는 파일인 경우, 메타데이터 영역에 대해서만 압축 처리가 수행될 수도 있다.
또한, 실시예에 따라, 암호화 처리 대상 데이터의 크기가 기 설정된 크기 이하인 경우, 압축 처리 단계(S130)는 생략될 수도 있다.
압축 처리가 수행된 후에, 암호화 처리 장치(100)는 압축 데이터 중에서, 암호화 처리가 수행될 암호화 대상 구간을 결정하고, 상기 암호화 대상 구간에 대한 암호화 처리를 통해, 압축 데이터에 대한 부분 암호화 데이터를 획득한다(S150). 여기서, 부분 암호화 데이터는 말 그대로 데이터의 일부분만이 암호화된 데이터를 의미한다.
상기 부분 암호화 데이터는 상기 암호화 처리와 관련된 메타데이터를 가리키는 암호화 헤더를 포함할 수 있다. 예를 들어, 도 6에 도시된 바와 같이, 압축 데이터(503)에 대한 암호화 처리를 통해 획득된 부분 암호화 데이터(505)는 암호화 헤더(505a)와 암호화된 데이터(505b) 및 암호화되지 않은 데이터(503b)를 포함하게 된다.
일 실시예에서, 상기 암호화 대상 구간은 압축 헤더에 대응되는 구간으로 결정될 수 있다. 예를 들어, 도 6에 도시된 바와 같이 상기 암호화 대상 구간은 압축 헤더(503a)에 대응되는 구간으로 결정될 수 있다. 압축 헤더(503a)가 암호화되면, 압축 데이터(503b)에 대한 압축 해제가 불가능하므로, 데이터 A(501) 전체에 대한 보안성이 확보될 수 있기 때문이다. 본 실시예에 따르면, 상대적으로 크기가 작은 메타데이터만을 암호화 처리함으로써, 고속의 암호화 처리를 수행함과 동시에 데이터 전체에 대한 보안성이 확보될 수 있다.
한편, 본 발명의 실시예에 따르면, 압축 데이터의 크기, 암호화 알고리즘의 종류 등에 따라 암호화 대상 구간의 크기가 달라질 수 있다. 예를 들어, 압축 데이터의 크기가 작을수록, 상기 암호화 대상 구간의 크기는 커질 수 있다. 또 다른 예를 들어, 암호화 알고리즘의 종류에 따라 암호화 처리 속도는 달라지기 때문에, 고속의 암호화 알고리즘이 이용되는 경우, 상기 암호화 처리 대상 데이터의 크기는 더 커질 수도 있다.
지금까지, 도 5a 및 도 5b를 참조하여, 본 발명의 실시예에 따른 암호화 처리 방법에 대하여 설명하였다. 본 실시예에 따르면, 압축 처리를 통해 암호화 처리 대상 데이터의 크기를 감소시키고, 압축 처리된 데이터의 일부 데이터에 한하여 암호화가 수행될 수 있다. 이에 따라, 대용량 데이터라도 하더라도 고속의 암호화 처리가 제공될 수 있다.
이하에서는, 도 7 내지 도 9b를 참조하여, 본 발명의 몇몇 실시예에 따른 암호화 처리 방법을 수행함에 따라 획득될 수 있는 부분 암호화 데이터의 구조에 대하여 설명하도록 한다.
도 7은 본 발명의 제1 실시예에 따른 부분 암호화 데이터구조를 도시한다.
도 7을 참조하면, 부분 암호화 데이터(510)는 암호화 헤더(511), 압축 헤더(513) 및 압축 데이터(515)를 포함한다. 여기서, 암호화 헤더(511)는 암호화 키의 해시 값, 암호화 처리에 따라 암호화된 데이터의 크기 및 원본 데이터인 암호화 처리 대상 데이터의 크기를 포함할 수 있다.
즉, 상기 제1 실시예에 따르면, 암호화 처리 장치(100)는 도 5b에 도시된 바와 같이 암호화 키의 해시 값을 생성하여 암호화 헤더(511)에 저장하고, 암호화 처리 대상 데이터의 크기와 암호화 처리에 따라 암호화된 데이터의 크기 정보를 암호화 헤더(511)에 저장할 수 있다.
암호화 헤더(511)에 저장된 각각의 메타데이터는 부분 암호화 데이터(510)에 대한 복호화 처리를 수행하는데 이용될 수 있다. 예를 들어, 암호화된 데이터의 크기는 복호화 처리 대상 구간을 결정하기 위해 이용될 수 있다. 상기 제1 실시예에서는, 암호화 헤더(511)에 인접하여 압축 헤더(513)가 위치하고, 압축 헤더(513)가 암호화 대상 구간으로 결정된다고 가정하여, 암호화 헤더(511)에 암호화된 데이터의 크기만을 저장하는 것을 예로써 도시하였다. 그러나, 암호화 대상 구간의 위치가 달라지는 경우에는 복호화 대상 구간의 위치 또한 달라지므로, 이와 같은 경우 암호화 헤더(511)에 암호화된 데이터의 위치(e.g. 오프셋)를 가리키는 메타데이터 또한 포함될 수 있다.
다음으로, 보다 이해의 편의를 제공하기 위해 도 8을 참조하여 본 발명의 일 구현예에 따른 부분 암호화 데이터 구조에 대하여 간략하게 설명한다. 도 8은 압축 처리를 위해 LZ 알고리즘이 이용되는 경우를 예로 들어 도시하였다.
도 8을 참조하면, LZ 알고리즘에 따라 생성된 압축 헤더(523)는 Magic Number와 Frame Descriptor를 포함하는 것을 볼 수 있으나, 전술한 바와 같이 압축 헤더에 포함되는 메타데이터의 종류 및 개수는 압축 알고리즘에 따라 달라질 수 있다.
참고로, 블록 암호화 기반의 암호화 알고리즘을 이용하는 경우, 압축 헤더의 크기가 블록 크기보다 작거나 블록 크기의 배수에 해당하지 않는 경우, 도 8에 도시된 바와 같이, 압축 데이터의 일부분을 포함하도록 암호화 대상 구간이 설정될 수 있다. 단, 실시예에 따라, 압축 헤더에 제로 패딩(zero padding)을 수행한 데이터가 암호화 대상 구간으로 설정될 수도 있다.
또한, 부분 암호화 데이터(520)에서, 암호화 헤더(521)는 KMS(Key Management System) ID를 더 포함하고 있는 것을 볼 수 있다. KMSID는 키 관리 시스템의 식별자를 가리키는 것으로, 이는 복호화 키를 획득할 때 키 관리 시스템을 식별하기 위한 용도로 이용될 수 있다.
다음으로, 도 9a를 참조하여, 본 발명의 제2 실시예에 따른 부분 암호화 데이터 구조에 대하여 설명하도록 한다.
도 9a를 참조하면, 압축 헤더(533)는 압축 알고리즘의 종류를 가리키는 제1 식별 데이터를 더 포함하고, 암호화 헤더(531)는 암호화 알고리즘의 종류를 가리키는 제2 식별 데이터를 더 포함하고 있음을 알 수 있다.
상기 제2 실시예에서, 암호화 처리 장치(100)는 복수의 압축 알고리즘 중 어느 하나의 압축 알고리즘을 선정하고, 상기 선정된 알고리즘을 이용하여 압축 처리를 수행할 수 있다. 또한, 상기 선정된 알고리즘을 가리키는 제1 식별 데이터를 압축 헤더(533)에 저장할 수 있다. 압축 헤더(533)에 포함된 제1 식별 데이터는 추후 복호화 처리 과정에서 압축 해제 알고리즘을 결정하기 위해 이용될 수 있다.
상기 제2 실시예에서, 암호화 처리 장치(100)는 복수의 암호화 알고리즘 중 어느 하나의 암호화 알고리즘을 선정하고, 상기 선정된 알고리즘을 이용하여 암호화 처리를 수행할 수 있다. 또한, 상기 선정된 알고리즘을 가리키는 제2 식별 데이터를 암호화 헤더(531)에 저장할 수 있다. 암호화 헤더(531)에 포함된 제2 식별 데이터는 추후 복호화 처리 과정에서 복호화 알고리즘을 결정하기 위해 이용될 수 있다.
상기 제2 실시예에 따르면, 암호화 처리 대상 데이터 별로 적어도 일부는 서로 다른 압축 알고리즘 및/또는 암호화 알고리즘이 이용될 수 있는 바, 데이터의 보안성이 더욱 증대될 수 있다.
다음으로, 도 9b를 참조하여, 본 발명의 제3 실시예에 따른 부분 암호화 데이터 구조에 대하여 설명하도록 한다.
도 9b를 참조하면, 부분 암호화 데이터(540)는 공통 헤더(541)및 복수의 암호화 헤더(543, 545)를 포함하고 있는 것을 볼 수 있다. 도 9b에 도시되지 않았으나, 부분 암호화 데이터(540)는 복수의 압축 헤더를 포함할 수도 있다.
상기 제3 실시예에서, 암호화 처리 장치(100)는 암호화 처리 대상 데이터를 복수의 부분 데이터로 분할하고, 각 부분 데이터 별로 적어도 일부는 서로 다른 압축 알고리즘을 이용하여 압축 처리를 수행할 수 있다. 이와 같은 경우, 복수의 압축 헤더가 생성되게 된다.
상기 제3 실시예에서, 암호화 처리 장치(100)는 복수의 암호화 대상 구간(e.g. 복수의 압축 헤더)을 선정하고, 각 암호화 대상 구간 별로 적어도 일부는 서로 다른 암호화 키 및/또는 서로 다른 암호화 알고리즘을 이용하여 암호화 처리를 수행할 수 있다.
또는, 암호화 처리 장치(100)는 단일 암호화 대상 구간을 복수의 구간으로 분할한 뒤, 각 분할된 구간 별로 적어도 일부는 서로 다른 암호화 키 및/또는 서로 다른 암호화 알고리즘을 이용하여 암호화 처리를 수행할 수 있다.
상기 제3 실시예에 따르면, 암호화 처리 대상 데이터 내에서도 적어도 일부는 서로 다른 압축 알고리즘 및/또는 암호화 알고리즘이 이용될 수 있으므로, 데이터의 보안성이 더욱 증대될 수 있다.
지금까지, 도 7 내지 도 9b를 참조하여, 본 발명의 몇몇 실시예와 함께 상기 몇몇 실시예에 따른 부분 암호화 데이터의 구조에 대하여 설명하였다. 이하에서는, 도 10을 참조하여, 암호화 처리 성능 향상을 위한 본 발명의 또 다른 실시예에 따른 암호화 처리 방법에 대하여 설명하도록 한다.
지금까지 설명한 암호화 처리 방법의 경우, 압축 처리가 수행된 이후에 암호화 처리가 수행된다고 가정하였다. 이와 같은 경우, 압축 처리가 수행되어 압축 데이터가 파일에 저장된 다음에 상기 압축 데이터를 파일에서 메모리에 다시 적재하여 암호화 처리를 수행해야 하므로 비효율적일 수 있다. 또한, 빈번한 파일 입출력발생으로 인해, 대용량 데이터에 대한 암호화 처리 시 성능이 저하될 수 있다. 따라서, 본 발명의 다른 실시예에 따르면, 도 10에 도시된 바와 같이, 실제 데이터 압축이 수행되기 전 압축 헤더가 메모리에 적재되면, 압축 처리가 종료되어 파일에 저장하기 전에 압축 헤더에 대한 암호화 처리가 곧바로 수행될 수 있다.
보다 자세하게는, 암호화 처리 장치(100)는 암호화 처리 대상 데이터에 대한 데이터 압축을 수행하기 전에, 압축 헤더를 생성하여 메모리에 적재하고(S220), 메모리에 적재된 압축 헤더에 대하여 곧바로 암호화 처리를 수행할 수 있다(S230). 다음으로, 암호화 처리 장치(100)는 암호화 처리 대상 데이터를 압축하여, 메모리에 적재하고(S240), 상기 암호화된 압축 헤더, 압축된 암호화 처리 대상 데이터 및 암호화 헤더를 파일에 저장할 수 있다(S250). 참고로, 본 실시예에서, 단계(S230)은 압축 단계(S240)과 병렬적으로 수행될 수도 있다.
본 실시예에 따르면, 압축 처리 과정에서, 메모리에 적재된 데이터에 대하여 곧바로 암호화가 수행되므로, 파일 입출력 횟수가 최소화될 수 있고, 전체 암호화 처리 성능이 향상될 수 있다.
한편, 본 실시예에서 암호화 대상 구간이 압축 헤더인 것으로 가정하여 설명하였다. 그러나, 암호화 대상 구간이 압축 헤더 외의 다른 부분이더라도, 상술한 기술적 사상이 동일하게 적용될 수 있다. 예를 들어, 암호화 대상 구간에 대응되는 암호화 처리 대상 데이터의 제1 부분 데이터에 대한 압축 처리가 수행되고, 압축된 제1 부분 데이터가 메모리에 적재되면, 메모리에 적재된 압축된 제1 부분 데이터에 대한 암호화 처리가 수행될 수 있다. 다음으로, 메모리 상에서 상기 암호화 처리 대상 데이터의 제2 부분 데이터에 대한 압축 처리가 수행되고, 압축된 제2 부분 데이터가 메모리에 적재될 수 있다.
지금까지, 도 5a 내지 도 10을 참조하여, 본 발명의 실시예에 따른 암호화 처리 방법에 대하여 설명하였다. 이하에서는, 도 11 내지 도 12를 참조하여, 본 발명의 또 다른 실시예에 따른 복호화 처리 장치(200) 및 복호화 처리 방법에 대하여 설명하도록 한다.
도 11은 본 발명의 또 다른 실시예에 따른 복호화 처리 장치(200)를 나타내는 블록도이다.
도 11을 참조하면, 복호화 처리 장치(200)는 복호화부(210), 압축해제부(220) 및 인터페이스부(230)를 포함할 수 있다. 다만, 도 11에는 본 발명의 실시예와 관련 있는 구성 요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 11에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 또한, 도 11에 도시된 복호화 처리 장치(200)의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 이하, 복호화 처리 장치(200)의 각 구성 요소에 대하여 설명한다.
복호화부(210)는 인터페이스부(230)로부터 복호화 키를 제공받고, 상기 복호화 키를 이용하여 데이터의 일부가 암호문으로 구성된 부분 암호화 데이터에 대한 복호화 처리를 수행하며, 상기 복호화 처리된 데이터를 제공한다. 본 발명의 실시예에 따르면, 상기 복호화 처리에 따라, 압축 헤더가 복호화될 수 있다. 상기 복호화 처리에 대한 자세한 설명은 도 12를 참조하여 후술하도록 한다.
압축해제부(220)는 압축 헤더를 이용하여 압축된 데이터에 대한 압축 해제 처리를 수행하고, 압축 해제된 데이터를 제공한다. 상기 압축 해제 처리에 대한 자세한 설명은 도 12를 참조하여 후술하도록 한다.
인터페이스부(230)는 외부의 키 관리 시스템(300)과 연동하여 복호화 키를 요청하고, 요청한 복호화 키를 제공받아 복호화부(210)로 전달하는 기능을 수행한다.
도 11의 각 구성요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현될 수도 있다.
다음으로, 도 12를 참조하여, 본 발명의 또 다른 실시예에 따른 복호화 처리 방법에 대하여 설명하도록 한다.
상기 복호화 처리 방법은 예를 들어 복호화 처리 장치(200)에 의해 수행될 수 있으나, 설명의 편의를 위해 상기 복호화 처리 방법에 포함되는 각 단계의 동작 주체는 그 기재가 생략될 수도 있다. 또한, 복호화 처리 방법의 각 단계는 복호화 처리 소프트웨어가 프로세서에 의해 실행됨으로써, 복호화 처리 장치(200)에서 수행되는 오퍼레이션일 수 있다. 복호화 처리 장치(200)의 하드웨어 구성은 암호화 처리 장치(100)와 실질적으로 동일한 바 도 4를 참조하도록 한다.
도 12는 암호화 처리 방법의 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다. 도 12에서, 암호화 대상 구간은 압축헤더인 것으로 가정하였다.
도 12를 참조하면, 복호화 처리 장치(200)는 부분 암호화 데이터의 복호화 처리에 이용되는 복호화 키를 획득한다(S310). 본 단계(S310)에 대한 상세한 설명은 단계(S110)에 대한 부분을 참조하도록 한다.
다음으로, 복호화 처리 장치(200)는 복호화 키에 대한 해시 값을 생성하고(S320), 상기 해시 값이 암호화 헤더 내의 해시 값과 일치하는지 여부를 검사한다(S330). 해시 값이 일치하지 않는 경우, 복호화 처리 장치(200)는 더 이상의 처리를 수행하지 않고, 복호화 처리 과정을 종료할 수 있다.
상기 해시 값이 일치하면, 복호화 처리 장치(200)는 먼저 암호화된 압축 헤더에 대한 복호화 처리를 수행하고, 상기 복호화 처리의 결과로 압축 헤더를 획득할 수 있다(S340). 상기 암호화된 압축 헤더의 크기 및/또는 위치는 암호화 헤더로부터 식별될 수 있고, 암호화 처리에 이용된 암호화 알고리즘의 종류 또한 암호화 헤더에 저장된 메타데이터로부터 식별될 수 있다.
다음으로, 복호화 처리 장치(200)는 복호화된 압축 헤더를 이용하여 압축 해제 처리를 수행하고, 상기 압축 해제 처리의 결과로 원본 데이터를 획득할 수 있다(S350).
한편, 복호화 처리 방법에 포함된 복호화 처리 및 압축해제 처리 또한 도 10을 참조하여 설명한 바와 같이, 복호화 대상 데이터가 메모리에 적재된 상태로 전체 단계가 종료될 때까지 파일 입출력 없이 수행될 수 있다. 이에 따라, 복호화 처리 과정 또한 고속으로 수행될 수 있다.
다음으로, 보다 이해의 편의를 제공하기 위해 도 13을 참조하여, 본 발명의 적용예에 대하여 간략하게 설명하도록 한다.
도 13은 본 발명이 적용된 이메일 시스템의 예시적인 구성도이다.
도 13을 참조하면, 본 발명의 실시예에 따른 암복호화 처리 방법은 예를 들어 실시간 암복호화 처리가 요구되는 이메일 시스템에 적용될 수 있다. 상기 이메일 시스템에서, 암복호화 모듈(400)은 상기 암복호화 처리 방법을 수행하는 컴퓨터 프로그램 또는 암복호화 처리 장치를 의미할 수 있다.
상기 이메일 시스템에서, 사용자는 웹 브라우저 또는 아웃룩을 이용하여 이메일을 열람하게 된다. 상기 이메일에는 보안 정책 상 중요한 첨부 파일, 민감한 개인 정보가 포함될 수 있으므로, 암호화가 필수적으로 요구되며, 사용자는 대용량 첨부 파일이라도 빠르게 열람하기를 원하기 때문에 고속의 암복호화 처리가 중요하다.
상기와 같은 이메일 시스템에서, 암복호화 모듈(400)은 예를 들어 메일 서버, 이메일 포털 사이트를 제공하는 WAS 서버 등에 탑재되어 고속의 암복호화 처리 기능을 제공할 수 있다. 암복호화에 이용되는 키는 외부의 키 관리 서버(300)로부터 제공받을 수 있다.
이와 같이, 본 발명의 실시예에 따른 암복호화 모듈(400)이 메일 서버 등에 탑재되는 경우, 실시간의 이메일 열람 기능이 제공될 수 있으며, 이메일 관련 데이터의 보안성 또한 확보될 수 있다.
도 13에 도시된 이메일 시스템은 본 발명의 일 적용예에 불과함에 유의하여야 한다. 본 발명의 실시예에 따른 암복호화 처리 방법은 고속의 암복호화 처리가 요구되는 임의의 시스템에 적용될 수 있다.
지금까지 도 1 내지 도 13을 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지될 수 있음을 이해하여야 한다.
마지막으로, 도 14를 참조하여, 종래 기술과 본 발명의 성능 실험 결과에 대하여 간략하게 비교 설명한다. 도 14에서, 본 발명은 'LZ4' 압축 알고리즘 및 'Threefish256' 암호화 알고리즘을 이용하여 구현되었으며, 비교 대상으로 당해 기술 분야에서 널리 이용되는 AES256 암호화 알고리즘이 이용되었다. 각 알고리즘은 이미 당해 기술 분야에서 널리 알려진 것들인 바, 이에 대한 설명은 생략하기로 한다. 또한, 도 14에서, x축은 처리 대상 데이터의 크기를 가리키고, y축은 평균 소요 시간(ms)을 가리키며, 'Enc' 및 'Dec'는 각각 암호화 처리 과정과 복호화 처리 과정을 가리킨다.
도 14를 참조하면, AES256 암호화 알고리즘을 이용하여 암호화 및 복호화 처리를 수행하는 경우, 본 발명에 따라 암호화 및 복호화 처리를 수행하는 경우에 비해, 훨씬 더 많은 시간이 소요되는 것을 볼 수 있다. 특히, 데이터의 크기가 증가할수록 성능 차이가 더 크게 드러나는 것을 볼 수 있다.
또한, 본 발명에 대한 성능 실험 결과에 따르면, 100M의 크기를 갖는 대용량 데이터라 하더라도, 200ms 이내로 암·복호화 처리가 수행될 수 있음을 알 수 있다. 즉, 도 14에 도시된 실험 결과에 따르면, 본 발명은 대용량 데이터에 대한 고속의 암·복호화 처리 성능을 제공할 수 있다는 것을 알 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (11)

  1. 암호화 처리 장치에 의해서 수행되는 암호화 처리 방법에 있어서,
    암호화 처리 대상 데이터에 대한 압축 처리를 수행하고, 상기 압축 처리의 결과로 상기 암호화 처리 대상 데이터에 대한 압축 데이터를 획득하는 단계;
    상기 압축 데이터 중에서, 암호화 처리가 수행될 암호화 대상 구간을 결정하되, 상기 암호화 대상 구간은 상기 압축 데이터의 일부인 것인, 단계; 및
    상기 암호화 대상 구간에 대한 암호화 처리를 수행하고, 상기 암호화 처리의 결과로 상기 압축 데이터에 대한 부분 암호화 데이터를 획득하는 단계를 포함하는 것을 특징으로 하는,
    암호화 처리 방법.
  2. 제1 항에 있어서,
    상기 암호화 처리에 이용되는 암호화 키는,
    외부의 키 관리 시스템으로부터 획득된 것이고,
    상기 암호화 처리 장치 및 상기 부분 암호화 데이터 내에 상기 암호화 키가 저장되지 않는 것을 특징으로 하는,
    암호화 처리 방법.
  3. 제2 항에 있어서,
    상기 키 관리 시스템은,
    상기 암호화 처리 장치의 암호화 키 요청에 응답하여, 상기 암호화 키를 제공하는 키 액세스 서버 및
    상기 암호화 키를 암호화 처리 하기 위해 이용되는 마스터 키를 관리하는 마스터 키 관리 서버를 포함하는 것을 특징으로 하는,
    암호화 처리 방법.
  4. 제1 항에 있어서,
    상기 부분 암호화 데이터는,
    상기 암호화 처리에 관한 메타데이터를 가리키는 암호화 헤더를 포함하되,
    상기 암호화 헤더는,
    상기 암호화 처리에 이용된 암호화 키의 해시(hash) 값을 포함하는 것을 특징으로 하는,
    암호화 처리 방법.
  5. 제1 항에 있어서,
    상기 부분 암호화 데이터는,
    상기 암호화 처리에 관한 메타데이터를 가리키는 암호화 헤더를 포함하되,
    상기 암호화 헤더는,
    상기 암호화 처리를 통해 암호화된 데이터의 크기 및 상기 암호화 처리 대상 데이터의 크기 정보를 포함하는 것을 특징으로 하는,
    암호화 처리 방법.
  6. 제1 항에 있어서,
    상기 압축 데이터를 획득하는 단계는,
    상기 압축 처리에 관한 메타데이터를 가리키는 압축 헤더를 생성하여 메모리에 적재하는 제1 단계; 및
    상기 암호화 처리 대상 데이터에 대한 압축 처리를 수행하고, 상기 압축 처리 된 암호화 처리 대상 데이터를 상기 메모리에 적재하는 제2 단계를 포함하고,
    상기 부분 암호화 데이터를 획득하는 단계는,
    상기 제1 단계 이후 및 상기 제2 단계 이전에, 상기 메모리에 적재된 상기 압축 헤더에 대한 암호화 처리를 수행하는 단계를 포함하는 것을 특징으로 하는,
    암호화 처리 방법.
  7. 제1 항에 있어서,
    상기 압축 데이터는,
    상기 압축 처리에 관한 메타데이터를 가리키는 압축 헤더를 포함하되,
    상기 암호화 대상 구간은 상기 압축 헤더에 대응되는 구간인 것을 특징으로 하는,
    암호화 처리 방법.
  8. 제7 항에 있어서,
    상기 부분 암호화 데이터에 대한 복호화 처리를 수행하고, 상기 복호화 처리의 결과로 상기 암호화 처리 대상 데이터를 획득하는 단계를 더 포함하되,
    상기 암호화 처리 대상 데이터를 획득하는 단계는,
    상기 부분 암호화 데이터 중에서, 상기 암호화 대상 구간에 대응되는 구간에 대한 복호화 처리를 수행하고, 상기 복호화 처리의 결과로 상기 압축 헤더를 획득하는 단계; 및
    상기 압축 헤더를 이용하여 압축 해제 처리를 수행하고, 상기 압축 해제 처리의 결과로 상기 암호화 처리 대상 데이터를 획득하는 단계를 포함하는 것을 특징으로 하는,
    암호화 처리 방법.
  9. 제8 항에 있어서,
    상기 부분 암호화 데이터는,
    상기 암호화 처리에 이용된 암호화 키의 해시 값이 포함된 암호화 헤더를 포함하되,
    상기 압축 헤더를 획득하는 단계는,
    상기 복호화 처리에 이용되는 복호화 키의 해시 값을 생성하는 단계; 및
    상기 복호화 키의 해시 값과 상기 암호화 키의 해시 값이 일치하는 경우에 한하여, 상기 복호화 처리를 수행하는 단계를 포함하는 것을 특징으로 하는,
    암호화 처리 방법.
  10. 제1 항에 있어서,
    상기 압축 데이터를 획득하는 단계는,
    복수의 압축 알고리즘 중에서, 어느 하나의 압축 알고리즘을 선정하는 단계; 및
    상기 선정된 압축 알고리즘 기반으로 압축 처리를 수행하고, 상기 압축 처리의 결과로 상기 압축 데이터를 획득하는 단계를 포함하되,
    상기 압축 데이터는,
    상기 압축 처리에 관한 메타데이터를 가리키는 압축 헤더를 포함하고,
    상기 압축 헤더는,
    상기 선정된 압축 알고리즘을 가리키는 식별 데이터를 포함하는 것을 특징으로 하는,
    암호화 처리 방법.
  11. 제1 항에 있어서,
    상기 부분 암호화 데이터를 획득하는 단계는,
    복수의 암호화 알고리즘 중에서, 어느 하나의 암호화 알고리즘을 선정하는 단계; 및
    상기 선정된 암호화 알고리즘 기반으로 암호화 처리를 수행하고, 상기 암호화 처리의 결과로 상기 부분 암호화 데이터를 획득하는 단계를 포함하되,
    상기 부분 암호화 데이터는,
    상기 암호화 처리에 관한 메타데이터를 가리키는 암호화 헤더를 포함하고,
    상기 암호화 헤더는,
    상기 선정된 암호화 알고리즘을 가리키는 식별 데이터를 포함하는 것을 특징으로 하는,
    암호화 처리 방법.
KR1020170067575A 2017-05-31 2017-05-31 암호화 처리 방법 및 그 장치 KR101987025B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170067575A KR101987025B1 (ko) 2017-05-31 2017-05-31 암호화 처리 방법 및 그 장치
US15/982,492 US11463417B2 (en) 2017-05-31 2018-05-17 Encryption processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170067575A KR101987025B1 (ko) 2017-05-31 2017-05-31 암호화 처리 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20180131059A true KR20180131059A (ko) 2018-12-10
KR101987025B1 KR101987025B1 (ko) 2019-06-10

Family

ID=64460131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170067575A KR101987025B1 (ko) 2017-05-31 2017-05-31 암호화 처리 방법 및 그 장치

Country Status (2)

Country Link
US (1) US11463417B2 (ko)
KR (1) KR101987025B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110636064A (zh) * 2019-09-23 2019-12-31 浪潮软件集团有限公司 一种基于gzip压缩的高速加密数据同步方法及系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815715A (zh) * 2019-01-04 2019-05-28 平安科技(深圳)有限公司 一种数据加密方法和相关装置
CN111092866B (zh) * 2019-12-06 2023-04-07 航天信息股份有限公司 基于Hadoop的密钥管理方法及装置
US11533173B2 (en) * 2020-06-11 2022-12-20 Lognovations Holdings, Llc Systems and methods for compression and encryption of data

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006345036A (ja) * 2005-06-07 2006-12-21 Konica Minolta Business Technologies Inc 画像処理装置及び画像記憶方法
KR101047213B1 (ko) 2007-06-08 2011-07-06 후지쯔 가부시끼가이샤 암호화 장치, 암호화 방법 및 컴퓨터 판독가능한 기록 매체
KR20110119269A (ko) * 2010-04-27 2011-11-02 한국과학기술원 최적화된 통신환경을 위한 압축알고리즘 및 암호알고리즘 선택시스템, 선택방법과 그 방법을 컴퓨터에서 수행하도록 각각의 단계를 실행시키기 위한 명령어를 기록한 컴퓨터 판독가능 기록매체
JP2015114771A (ja) * 2013-12-10 2015-06-22 パテネット株式会社 データ暗号化装置、データ復元装置、データ暗号化方法、データ復元方法、データ暗号化プログラムおよびデータ復元プログラム
KR20160139493A (ko) * 2015-05-27 2016-12-07 삼성에스디에스 주식회사 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792308B2 (en) * 1998-12-11 2017-10-17 Realtime Data, Llc Content estimation data compression
CA2400786C (en) * 2000-01-21 2007-04-10 Sony Corporation Data authentication system with reproduction device utilization restrictions
DK1417800T3 (en) * 2001-08-15 2018-01-15 Bentley Sys Inc PROCEDURE AND SYSTEM FOR STORING LARGE DATA FILES
US7814316B1 (en) * 2006-04-14 2010-10-12 Oracle America, Inc. System, method and data storage device for encrypting data
WO2007138599A2 (en) * 2006-05-31 2007-12-06 Storwize Ltd. Method and system for transformation of logical data objects for storage
US8300823B2 (en) * 2008-01-28 2012-10-30 Netapp, Inc. Encryption and compression of data for storage
US20170078609A1 (en) * 2015-09-16 2017-03-16 Quopin Co., Ltd. Image processing method and apparatus based on screen spliting
US10673623B2 (en) * 2015-09-25 2020-06-02 Mongodb, Inc. Systems and methods for hierarchical key management in encrypted distributed databases
US10310774B2 (en) * 2015-12-24 2019-06-04 Intel Corporation Techniques for data storage protection and integrity checking
US10095635B2 (en) * 2016-03-29 2018-10-09 Seagate Technology Llc Securing information relating to data compression and encryption in a storage device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006345036A (ja) * 2005-06-07 2006-12-21 Konica Minolta Business Technologies Inc 画像処理装置及び画像記憶方法
KR101047213B1 (ko) 2007-06-08 2011-07-06 후지쯔 가부시끼가이샤 암호화 장치, 암호화 방법 및 컴퓨터 판독가능한 기록 매체
KR20110119269A (ko) * 2010-04-27 2011-11-02 한국과학기술원 최적화된 통신환경을 위한 압축알고리즘 및 암호알고리즘 선택시스템, 선택방법과 그 방법을 컴퓨터에서 수행하도록 각각의 단계를 실행시키기 위한 명령어를 기록한 컴퓨터 판독가능 기록매체
JP2015114771A (ja) * 2013-12-10 2015-06-22 パテネット株式会社 データ暗号化装置、データ復元装置、データ暗号化方法、データ復元方法、データ暗号化プログラムおよびデータ復元プログラム
KR20160139493A (ko) * 2015-05-27 2016-12-07 삼성에스디에스 주식회사 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110636064A (zh) * 2019-09-23 2019-12-31 浪潮软件集团有限公司 一种基于gzip压缩的高速加密数据同步方法及系统

Also Published As

Publication number Publication date
KR101987025B1 (ko) 2019-06-10
US11463417B2 (en) 2022-10-04
US20180351920A1 (en) 2018-12-06

Similar Documents

Publication Publication Date Title
US11558174B2 (en) Data storage method, device, related equipment and cloud system for hybrid cloud
US11275603B2 (en) Technologies for memory replay prevention using compressive encryption
KR101966767B1 (ko) 클라우드 서비스를 위한 암호화 키 관리 시스템
US20230155989A1 (en) Self-encrypting key management system
KR101987025B1 (ko) 암호화 처리 방법 및 그 장치
CN109460670B (zh) 配置项解密方法、装置、计算机设备和存储介质
US9430278B2 (en) System having operation queues corresponding to operation execution time
US11930099B2 (en) Implementing resilient deterministic encryption
CN113987563A (zh) 数据处理方法、系统、产品、设备及存储介质
US10108820B2 (en) Snapshot data and hibernation data processing methods and devices
US11720270B2 (en) Client-side compression
CN109711178B (zh) 一种键值对的存储方法、装置、设备及存储介质
CN112115495B (zh) 可离线云端数据存储方法、系统、计算机设备及存储介质
US20220085983A1 (en) Encryption keys from storage systems
US20230267217A1 (en) Method and system for differential deduplication in untrusted storage
CN109871698B (zh) 数据处理方法、装置、计算机设备和存储介质
CN112182512A (zh) 一种信息处理方法、装置及存储介质
CN113742657A (zh) 软件保护方法及其系统
US20220284110A1 (en) Multi-key secure deduplication using locked fingerprints
CN113839773A (zh) 一种luks密钥离线提取方法、终端设备及存储介质
CN115734215A (zh) 密钥找回方法、服务器及识别卡
EP3054398B1 (en) Method and system for performing secure i/o operation in a pluggable flash storage device
CN114386064A (zh) 数据库透明加密方法、装置、计算机设备及存储介质
TW202145041A (zh) 軟體保護方法及其系統
CN116490869A (zh) 用于对不可信存储器中的已加密数据块进行密钥更新的方法和系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant