KR20170081504A - 암호 데이터의 중복 제거 방법 및 장치 - Google Patents

암호 데이터의 중복 제거 방법 및 장치 Download PDF

Info

Publication number
KR20170081504A
KR20170081504A KR1020160000623A KR20160000623A KR20170081504A KR 20170081504 A KR20170081504 A KR 20170081504A KR 1020160000623 A KR1020160000623 A KR 1020160000623A KR 20160000623 A KR20160000623 A KR 20160000623A KR 20170081504 A KR20170081504 A KR 20170081504A
Authority
KR
South Korea
Prior art keywords
tag
data
client
server
encrypted data
Prior art date
Application number
KR1020160000623A
Other languages
English (en)
Other versions
KR102450295B1 (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 KR1020160000623A priority Critical patent/KR102450295B1/ko
Priority to US15/051,574 priority patent/US10025811B2/en
Publication of KR20170081504A publication Critical patent/KR20170081504A/ko
Application granted granted Critical
Publication of KR102450295B1 publication Critical patent/KR102450295B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • G06F17/30156
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • G06F17/30097
    • G06F17/3012
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Human Computer Interaction (AREA)

Abstract

클라이언트에서는 평문 데이터를 이용하여 암호키를 생성하고, 암호키를 이용하여 첫 번째 태그를 생성하며, 암호키와 평문 데이터를 암호화하여 암호 데이터를 생성하고, 암호 데이터의 중복 여부를 확인하기 위해 상기 첫 번째 태그를 서버로 전송하며, 첫 번째 태그를 전송한 후에 서버로부터의 암호 데이터 요구에 따라서 암호 데이터를 서버로 전송한다.

Description

암호 데이터의 중복 제거 방법 및 장치{METHOD AND APPARATUS FOR DEDUPLICATION OF ENCRYPTED DATA}
본 발명은 암호 데이터의 중복 제거 방법 및 장치에 관한 것이다.
데이터 중복제거 기술은 동일한 데이터를 반복적으로 모두 저장하지 않고 중복되는 부분을 제거하는 기술이다. 이 기술은 DB(database)나 클라우드 시스템에서 스토리지 공간을 절약하고 네트워크에서 불필요한 데이터를 전송하지 않게 함으로서 대역폭을 절감시키는 매우 중요한 기술이다.
암호 데이터 중복제거 기술은 DB 시스템 또는 클라우드 서비스와 같은 원격지 데이터 저장소에 보관되는 데이터의 프라이버시를 제공하기 위해 데이터를 암호하여 평문 데이터가 아닌 암호문 데이터를 저장하고 중복되는 암호문 데이터를 제거하는 기술이다. 기존의 암호 방식에 의하면 동일한 평문에 대응하는 암호문은 암호하려는 사람마다 고유한 암호키를 사용하므로 하나의 평문에 대하여 다수의 서로 다른 암호문이 생성된다. 그래서 평문 데이터에 대한 중복제거는 가능하지만 동일한 평문 데이터에 해당하는 암호 데이터는 서로 달라서 중복제거로 저장공간을 절약할 수 있는 장점이 없어진다.
암호 데이터에 대한 중복제거를 가능하게 하기 위해 2002년 "Reclaiming Space from Duplicate Files in a Serverless Distributed File System" 이라는 논문이 발표되었고, CE(Convergent Encryption)라는 개념이 처음으로 제시되었다. CE 에서 암호키는 메시지를 해쉬한 값 등의 결정론적 함수에 의해 유도되고, 이 암호키와 평문 메시지를 블록 암호 알고리즘으로 암호화해서 암호문을 생성한다. 결과적으로, 서로 다른 사용자가 동일한 평문을 가지고 있고 이를 CE로 암호화한다면, 암호키는 사용자마다 동일한 하나만 생성된다. 즉, 평문 데이터를 소유하는 사용자가 다르더라도 평문 데이터에 대응하는 암호문 데이터는 하나만 생성되므로 암호 데이터의 중복제거가 가능하게 되었다. 하지만, 이 논문은 CE에 관한 기본 개념만 언급하고 있고 데이터를 암호하고 저장을 요청하는 클라이언트와 데이터를 저장하는 서버(또는 DB)간의 암호 데이터 중복제거를 위한 구체적인 구성 및 작용에 관한 설명은 없다.
또한 상기 논문에 기반하여 암호 데이터의 중복처리를 위해, "Message-Locked Encryption and Secure Deduplication" 이라는 메시지 기반 암호화와 안전한 중복처리에 관한 논문을 발표되었다. 이 논문에서는 4개의 암호 데이터 중복처리 기술(CE, HCE1, HCE2, RCE)을 제시하고 있으며, 아래와 같은 특징과 문제점을 가진다.
종래 기술 "Message-Locked Encryption and Secure Deduplication"의 CE 기법에 의하면, 클라이언트는 평문 데이터를 해쉬해서 암호키를 생성하고 이 암호키와 평문 데이터를 블록 암호 알고리즘으로 암호해서 암호 데이터를 생성한다. 그리고 나서, 클라이언트는 암호 데이터를 서버로 전송한다. 클라이언트로부터 암호 데이터를 수신한 서버는 수신한 암호 데이터를 식별하기 위한 수단으로 암호 데이터를 해쉬한 값을 태그로 사용한다. 서버는 자신이 계산한 태그와 자신의 저장소에 저장되어 있는 태그 리스트를 비교하여 일치하는 태그가 없을 때에만 상기 수신한 암호 데이터와 태그를 저장한다. 만약 서버가 계산한 태그와 서버의 저장소에 저장되어 있던 태그 리스트에서 일치하는 태그가 있다면, 자신의 저장소에 저장되어 있는 데이터와 전송 받은 암호데이터가 중복된다는 것을 의미하므로 클라이언트로부터 전송 받은 암호데이터를 저장하지 않는다. 그래서 동일한 암호 데이터의 중복처리가 가능하다. 이 CE 방식에 의하면, 클라이언트는 무조건 암호 데이터를 서버에 전송하고 서버가 중복처리 여부를 결정하므로 네트워크 대역폭 낭비가 심한 문제점이 있다. 또한 서버는 전송된 모든 암호 데이터에 대한 태그를 계산해야 하는 부담이 있다. 특히, 동영상 데이터와 같이 데이터 크기가 매우 크다면 태그를 계산해야 하는 부담은 매우 크다.
종래 기술 "Message-Locked Encryption and Secure Deduplication"의 HCE1 기법에 의하면, 클라이언트는 평문 데이터를 해쉬해서 암호키로 사용하고 이 암호키를 다시 해쉬해서 태그를 생성한다. 암호 데이터를 식별하기 위한 태그를 생성함에 있어서 상기 CE 방식과는 달리, HCE1 기법은 암호데이터에 대한 해쉬값을 태그로 사용하는 것이 아니라 암호키에 대한 해쉬값을 태그로 사용한다. 그리고 나서, 클라이언트는 암호데이터와 태그를 서버에 전송한다. 암호 데이터와 태그를 수신한 서버는 수신한 태그와 자신의 데이터베이스에 저장된 태그 리스트 중에서 일치하는 태그가 존재한다면 수신한 암호 데이터를 저장하지 않고, 일치하는 태그가 존재하지 않는다면 수신한 암호 데이터와 태그를 저장한다. 이런 방식으로 서버에서 암호 데이터의 중복처리 여부가 가능하다. 하지만, 이 HCE1 방식은 상기 논문에서 언급한 것처럼 중복위장공격(duplicate faking attack)과 데이터 삭제공격(erasure attack)에 취약하여 실제 환경에서 사용하기에는 부적합한 문제점이 있다.
또한 종래 기술 "Message-Locked Encryption and Secure Deduplication"의 HCE2 기법에 의하면, HCE2의 업로드 과정은 HCE1의 동작 방식과 동일하지만 다운로드 과정은 HCE1과 차이점을 보인다. 클라이언트가 서버로부터 암호 데이터를 다운로드 하기 위해 자신이 저장하고 있는 태그를 서버에게 전송하고 서버는 수신한 태그와 일치하는 암호 데이터를 클라이언트에게 전송하는 것은 HCE1과 동일하다. 이후, HCE1 방식에서는 클라이언트가 수신한 암호 데이터와 자신이 보관하고 있는 암호키를 사용하여 평문 데이터를 복호하는 것으로 동작이 종료된다. 하지만, HCE2 방식에서는 클라이언트가 평문 데이터를 복호한 다음, 복호한 평문 데이터에 대한 해쉬값을 계산하고 이 해쉬값을 또다시 해쉬해서 새로운 태그를 생성한다. 그리고 클라이언트는 저장하고 있는 태그와 새롭게 생성된 태그를 비교한 다음, 두 태그가 일치하면 수신한 암호 데이터에 대한 평문 데이터를 저장하고 동작을 종료한다. 만약, 두 개의 태그가 일치하지 않으면, 클라이언트는 수신한 암호데이터와 관련된 모든 데이터를 삭제하고 동작을 종료한다. 이 방식에 의하면 HCE1에서 언급한 중복위장공격(duplicate faking attack)은 방지할 수 있지만, 여전히 데이터 삭제공격(erasure attack)에 취약하여 실제 환경에서 사용하기에는 부적합하다. 예를 들어, 클라이언트는 자신의 암호데이터를 클라우드 서버에 보관하고 클라이언트에서는 데이터를 지웠다고 가정하자. 추후 클라이언트가 다시 자신의 암호 데이터를 다운로드 하려고 시도해도 악의적인 공격자의 삭제 공격에 의해 데이터가 사라지게 되어 자신의 데이터를 영구히 복구하지 못하게 되는 심각한 문제점이 있다.
그리고 종래 기술 "Message-Locked Encryption and Secure Deduplication"의 RCE 기법에 의하면, 클라이언트는 메시지로부터 유도된 암호키 외에 클라이언트마다 고유한 개인 비밀키를 하나 더 가진다. RCE 기법에서 클라이언트는 개인 비밀키를 이용해서 두 개의 암호데이터를 생성해서 서버에게 업로드하고, 다운로드 과정에서는 두 개의 암호데이터를 이용해서 태그 일치성을 검사한다는 점을 제외하고는 동작방식이 HCE2 기법과 동일하다. 하지만 상기 HCE2 기법과 마찬가지로 데이터 삭제공격(erasure attack)에 취약하다는 문제점이 있다.
상기 방법들에서 살펴본 바와 같이, CE 및 MLE(Message-Locked Encryption) 기반의 암호데이터 중복처리 방식은 다음과 같은 문제점을 가진다. CE에 기반한 암호데이터 중복처리 기술은 모든 암호데이터가 클라이언트로부터 서버에게 전송되므로 네트워크 대역폭 낭비가 심하고 서버에서 모든 암호 데이터에 대한 태그를 계산해야 하므로 계산 부하가 매우 크다. 또한 HCE1 방식의 암호데이터 중복처리 기술은 중복위장공격과 데이터 삭제공격 모두에 취약하여 실제 환경에서 사용하기에는 부적합하다. 또한 HCE2와 RCE 기반의 암호데이터 중복처리 방식 역시 데이터 삭제 공격에 취약하여 클라이언트의 데이터가 서버에서 삭제되는 문제점이 있다. 또한, 상기 방식들은 암호데이터 중복처리를 위한 데이터 암복호화 방법과 태그 생성방법에 대해서만 기술할 뿐, 클라이언트와 서버에서 암호데이터 중복처리에 관한 구체적인 동작에 관한 명확한 기술을 하지 않고 있다.
본 발명이 해결하려는 과제는 네트워크 대역폭을 절약하며 중복위장공격 및 데이터 삭제공격을 방지할 수 있는 암호 데이터의 중복 제거 방법 및 장치를 제공하는 것이다.
본 발명의 한 실시 예에 따르면, 클라이언트에서 암호 데이터의 중복 제거 방법이 제공된다. 암호 데이터의 중복 제거 방법은 평문 데이터를 이용하여 암호키를 생성하는 단계, 상기 암호키를 이용하여 첫 번째 태그를 생성하는 단계, 상기 암호키와 상기 평문 데이터를 암호화하여 암호 데이터를 생성하는 단계, 상기 암호 데이터의 중복 여부를 확인하기 위해 상기 첫 번째 태그를 서버로 전송하는 단계, 그리고 상기 첫 번째 태그를 전송한 후, 상기 서버로부터의 암호 데이터 요구에 따라서 상기 암호 데이터를 상기 서버로 전송하는 단계를 포함한다.
상기 암호 데이터의 중복 제거 방법은 상기 첫 번째 태그를 전송한 후, 상기 서버로부터 두 번째 태그 요구를 수신하면, 상기 암호 데이터를 이용하여 두 번째 태그를 생성하는 단계, 상기 암호 데이터의 중복 여부를 확인하기 위해, 상기 두 번째 태그를 상기 서버로 전송하는 단계, 그리고 상기 두 번째 태그를 전송한 후, 상기 서버로부터의 암호 데이터 요구에 따라서 상기 암호 데이터를 상기 서버로 전송하는 단계를 더 포함할 수 있다.
상기 두 번째 태그를 생성하는 단계는 상기 암호 데이터를 해쉬하여 상기 두 번째 태그를 생성하는 단계를 포함할 수 있다.
상기 암호 데이터의 중복 제거 방법은 상기 두 번째 태그를 전송한 후 상기 서버로부터 어떠한 요구도 없으면 상기 암호키와 첫 번째 태그를 저장하는 단계를 더 포함할 수 있다.
상기 첫 번째 태그 또는 상기 두 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있지 않음이 확인되면, 상기 서버에 의해 상기 암호 데이터 요구가 전송되며, 상기 첫 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 서버에 의해 상기 두 번째 태그 요구가 전송될 수 있다.
상기 암호키를 생성하는 단계는 상기 평문 데이터를 해쉬하여 상기 암호키를 생성하는 단계를 포함하고, 상기 첫 번째 태그를 생성하는 단계는 상기 암호키를 해쉬하여 상기 첫 번째 태그로 생성하는 단계를 포함할 수 있다.
본 발명의 다른 한 실시 예에 따르면, 서버에서 암호 데이터의 중복 제거 방법이 제공된다. 암호 데이터의 중복 제거 방법은 클라이언트로부터 첫 번째 태그를 수신하는 단계, 상기 첫 번째 태그를 이용하여 DB에서 암호 데이터의 중복 여부를 확인하는 단계, 상기 첫 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있지 않음이 확인되면, 상기 클라이언트에게 암호 데이터를 요구하는 단계, 상기 클라이언트로부터 암호 데이터를 수신하는 단계, 상기 암호 데이터를 이용하여 두 번째 태그 값을 계산하는 단계, 그리고 상기 DB에 상기 클라이언트로부터 수신한 상기 첫 번째 태그, 상기 암호 데이터, 상기 계산된 두 번째 태그 값 및 상기 클라이언트의 식별자를 저장하는 단계를 포함한다.
상기 암호 데이터의 중복 제거 방법은 상기 첫 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 클라이언트에게 두 번째 태그를 요구하는 단계, 상기 클라이언트에서 계산된 두 번째 태그를 상기 클라이언트로부터 수신하는 단계, 그리고 상기 두 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 DB에 저장되어 있는 상기 첫 번째 태그와 상기 두 번째 태그에 대응하여 상기 클라이언트의 식별자만을 추가하는 단계를 포함한다.
상기 암호 데이터의 중복 제거 방법은 상기 두 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있지 않음이 확인되면, 상기 클라이언트에게 암호 데이터를 요구하는 단계, 상기 클라이언트로부터 암호 데이터를 수신하는 단계, 상기 암호 데이터를 이용하여 두 번째 태그 값을 계산하는 단계, 그리고 상기 DB에 상기 클라이언트로부터 수신한 상기 첫 번째 태그, 상기 암호 데이터, 상기 계산된 두 번째 태그 값 및 상기 클라이언트의 식별자를 저장하는 단계를 더 포함할 수 있다.
상기 두 번째 태그 값을 계산하는 단계는 상기 암호 데이터를 해쉬하여 상기 두 번째 태그 값을 생성하는 단계를 포함하며, 상기 클라이언트에 의해 두 번째 태그는 상기 암호 데이터의 해쉬값일 수 있다.
상기 DB는 첫 번째 태그 목록, 암호 데이터 목록, 두 번째 태그 목록 및 클라이언트 목록을 포함하고, 상기 첫 번째 태그를 이용하여 DB에서 암호 데이터의 중복 여부를 확인하는 단계는 상기 DB의 첫 번째 태그 목록에 상기 클라이언트로부터 수신한 첫 번째 태그와 동일한 태그가 존재하는지 확인하는 단계를 포함하며, 상기 두 번째 태그를 이용하여 DB에서 암호 데이터의 중복 여부를 확인하는 단계는 상기 DB의 두 번째 태그 목록에 상기 클라이언트로부터 수신한 두 번째 태그와 동일한 태그가 존재하는지 확인하는 단계를 포함할 수 있다.
본 발명의 또 다른 한 실시 예에 따르면, 클라이언트에서의 암호 데이터 중복 제거 장치가 제공된다. 암호 데이터 중복 제거 장치는 프로세서, 송수신기, 그리고 메모리를 포함한다. 상기 프로세서는 평문 데이터를 이용하여 암호키를 생성하고, 상기 암호키를 이용하여 첫 번째 태그를 생성하며, 상기 암호키와 상기 평문 데이터를 암호화하여 암호 데이터를 생성하고, 상기 암호 데이터를 이용하여 두 번째 태그를 생성한다. 상기 송수신기는 상기 첫 번째 태그를 상기 서버로 전송하고, 상기 서버로부터 두 번째 태그 요구에 따라서 상기 두 번째 태그를 상기 서버로 전송하며, 상기 서버로부터 암호 데이터 요구에 따라서 상기 암호 데이터를 상기 서버로 전송한다. 그리고 상기 메모리는 상기 암호키와 상기 첫 번째 태그를 저장하고 있다.
상기 프로세서는 상기 암호키를 해쉬하여 상기 첫 번째 태그를 생성하고, 상기 암호 데이터를 해쉬하여 상기 두 번째 태그를 생성할 수 있다.
상기 첫 번째 태그 또는 상기 두 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있지 않음이 확인되는 경우, 상기 서버에 의해 상기 암호 데이터 요구가 전송되고, 상기 첫 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 서버에 의해 상기 두 번째 태그 요구가 전송될 수 있다.
상기 프로세서는 상기 암호 데이터를 상기 서버로 전송하고 난 후에 상기 암호키와 상기 첫 번째 태그를 상기 메모리에 저장하거나, 상기 두 번째 태그를 전송하고 난 후 상기 서버로부터 그 어떠한 요구도 없는 경우에 상기 암호키와 상기 첫 번째 태그를 상기 메모리에 저장할 수 있다.
본 발명의 또 다른 한 실시 예에 따르면, 서버에서의 암호 데이터 중복 제거 장치가 제공된다. 암호 데이터 중복 제거 장치는 송수신기, 메모리 그리고 프로세서를 포함한다. 상기 송수신기는 클라이언트로부터 첫 번째 태그와 두 번째 태그를 수신한다. 상기 메모리는 DB를 저장하고 있다. 그리고 상기 프로세서는 상기 첫 번째 태그를 이용하여 상기 DB에서 암호 데이터의 중복 여부를 확인하고, 상기 첫 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 두 번째 태그를 이용하여 상기 DB에서 상기 암호 데이터의 중복 여부를 재차 확인하며, 상기 암호 데이터가 중복되어 있지 않음이 확인되면 상기 송수신기를 통해 상기 클라이언트로 암호 데이터를 요구한다.
상기 송수신기는 상기 클라이언트로부터 암호 데이터를 수신하고, 상기 프로세서는 상기 암호 데이터를 이용하여 두 번째 태그 값을 계산하고, 상기 DB에 상기 클라이언트로부터 수신한 상기 첫 번째 태그, 상기 암호 데이터, 상기 계산된 두 번째 태그 값 및 상기 클라이언트의 식별자를 저장할 수 있다.
상기 프로세서는 상기 첫 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 송수신기를 통해 상기 클라이언트에게 두 번째 태그를 요구하고, 상기 두 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 DB에 저장되어 있는 상기 첫 번째 태그와 상기 두 번째 태그에 대응하여 상기 클라이언트의 식별자만을 추가할 수 있다.
상기 DB는 첫 번째 태그 목록, 암호 데이터 목록, 두 번째 태그 목록 및 클라이언트 목록을 포함하고, 상기 프로세서는 상기 DB의 첫 번째 태그 목록과 두 번째 태그 목록에 각각 상기 클라이언트로부터 수신한 첫 번째 태그와 상기 두 번째 태그와 동일한 태그가 존재하면 상기 암호 데이터가 중복되어 있는 것으로 판단할 수 있다.
상기 프로세서는 상기 암호 데이터를 해쉬하여 상기 두 번째 태그 값을 계산할 수 있다.
본 발명의 실시 예에 의하면, 중복위장공격과 데이터 삭제공격에 모두 안전하고 네트워크 대역폭을 절약할수 있는 클라이언트 기반 암호데이터 중복처리가 가능하다. 또한 계산량이 적은 첫 번째 태그를 이용함으로서 클라이언트에서의 연산량을 감소시킬 수 있고, 중복된 데이터는 서버에 전송되지 않기 때문에 서버에서 처리하는 계산량 또한 감소시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 클라이언트가 암호 데이터를 서버에게 업로드하는 방법의 일 예를 나타낸 도면이다.
도 2는 본 발명의 실시 예에 따른 서버의 DB 구조의 일 예를 나타낸 도면이다.
도 3 및 도 4는 각각 본 발명의 실시 예에 따른 클라이언트가 암호 데이터를 서버에 업로드하는 방법의 다른 일 예를 나타낸 도면이다.
도 5는 본 발명의 실시 예에 따른 서버에서 암호 데이터에 대한 중복 처리를 수행한 후의 DB를 나타낸 도면이다
도 6은 본 발명의 실시 예에 따른 클라이언트에서 암호 데이터의 안전한 중복 처리 방법을 나타낸 흐름도이다.
도 7은 본 발명의 실시 예에 따른 서버에서 암호 데이터의 안전한 중복 처리 방법을 나타낸 흐름도이다.
도 8은 본 발명의 실시 예에 따른 클라이언트의 암호 데이터 중복 제거 장치를 나타낸 도면이다.
도 9는 본 발명의 실시 예에 따른 클라이언트의 암호 데이터 중복 제거 장치를 나타낸 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
이제 본 발명의 실시 예에 따른 암호 데이터의 중복 제거 방법 및 장치에 대하여 도면을 참고로 하여 상세하게 설명한다.
도 1은 본 발명의 실시 예에 따른 클라이언트가 암호 데이터를 서버에게 업로드하는 방법의 일 예를 나타낸 도면이다.
도 1을 참고하면, 클라이언트(100)는 기존의 방법들과는 달리, 첫 번째 전송에서 크기가 큰 암호 데이터를 서버(200)로 전송하지 않는다. 본 발명의 실시 예에서 클라이언트(100)는 우선 크기가 작은 태그(t)를 서버(200)에게 전송하고, 서버(200)에서 암호 데이터의 중복 여부를 확인한다. 그런 후에, 클라이언트(100)는 중복되지 않은 암호 데이터만 서버(200)로 전송한다.
클라이언트(100)는 클라우드 서비스나 데이터 스토리지 서버 등에 데이터를 저장하고자 하는 사용자, 특히 암호 데이터를 저장하기 위해 서버를 이용하는 사용자를 의미한다. 클라이언트(100)는 암호 데이터 중복처리를 위해 컴퓨터 장치 또는 단말을 사용하며, 클라이언트(100)는 사용자의 컴퓨터 장치 또는 단말을 의미할 수도 있다. 서버(200)는 클라우드 스토리지 서버, 데이터 저장 서버 등이 될 수 있고, 서버(200)는 암호 데이터와 암호 데이터에 관련된 메타데이터 저장을 위한 DB를 가진다. 여기에서 메타데이터는 후술하는 태그, 클라이언트 식별자 등이 될 수 있다.
본 발명의 실시 예에서는 암호 데이터의 중복 여부를 확인하기 위해, 두 가지 종류의 태그가 사용된다. 첫 번째 태그는 암호키에 대한 해쉬값이고, 두 번째 태그는 암호 데이터에 대한 해쉬값이다. 첫 번째 태그는 클라이언트(100)에서 생성하고, 두 번째 태그는 클라이언트(100)와 서버(200)에서 생성한다.
그러면, 구체적인 방법을 설명하면 다음과 같다.
클라이언트(100)는 평문 데이터(M)를 해쉬해서 암호키(K)를 생성하고, 다시 암호키(K)를 해쉬해서 첫 번째 태그(t)를 생성한다(S110). 도 1에서 H()는 해쉬 함수를 의미한다.
그리고 나서, 클라이언트(100)는 첫 번째 태그(t)를 서버(200)에게 전송하고(S120), 평문 데이터(M)와 암호키(K)를 블록 암호 알고리즘[E(M, K)]으로 암호화해서 평문 데이터(M)와 암호키(K)에 해당하는 암호 데이터(C)를 생성한다(S130).
첫 번째 태그(t)를 수신한 서버(200)는 DB의 첫 번째 태그 목록에서 수신한 태그(t)와 동일한 태그가 있는지 확인한다.
도 1에 도시한 바와 같이, 서버(200)는 클라이언트(100)로부터 수신한 태그(t)와 동일한 태그가 첫 번째 태그 목록에 존재하지 않음을 확인하면(S140), 암호 데이터(C)를 클라이언트(100)에게 요구한다(S150). 클라이언트(100)로부터 수신한 태그(t)와 동일한 태그가 첫 번째 태그 목록에 존재하지 않는다는 것은 DB에 중복되는 암호 데이터가 없다는 것을 의미한다. 따라서 서버(200)는 암호 데이터(C)를 클라이언트(100)에게 요구한다.
암호 데이터(C)를 요구 받은 클라이언트(100)는 암호 데이터(C)를 서버(200)로 전송하고(S160), 암호키(K)와 첫 번째 태그(t)를 저장한다(S170).
암호 데이터(C)를 수신한 서버(200)는 암호 데이터(C)를 해쉬하여 두 번째 태그(T')를 계산하고(S180), 자신의 DB에 첫 번째 태그(t), 두 번째 태그(T'), 암호 데이터(C) 및 클라이언트 식별자(U)를 저장한다(S190).
이와 같이, 클라이언트(100)는 암호 데이터(C)를 서버(200)로 전송하지 않고 우선 태그(t)를 이용하여 암호 데이터(C)의 중복 여부를 확인함으로써, 중복되지 않은 암호 데이터(C)만을 서버(200)로 전송할 수 있다. 이 방법에 의하면 클라이언트(100)는 암호 데이터 중복확인을 위해 첫 번째 태그(t)를 이용함으로써, 클라이언트(100)에서의 연산량이 감소되고, 서버(200) 또한 모든 암호 데이터가 아니라 수신한 암호 데이터에 대해서만 두 번째 태그(T')를 생성하므로 서버(200)에서의 연산량도 감소될 수 있다.
한편, 서버(200)는 클라이언트(100)로부터 수신한 태그(t)와 동일한 태그가 첫 번째 태그 목록에 존재하면, 클라이언트(100)로 두 번째 태그를 요구함으로써, 암호 데이터(C)의 중복 여부를 다시 한 번 확인하는 과정을 수행한다. 이에 대해서는 도 3 및 도 4를 참고로 하여 자세하게 설명한다.
도 2는 본 발명의 실시 예에 따른 서버의 DB 구조의 일 예를 나타낸 도면이다.
도 2를 참고하면, 암호 데이터 및 이에 관련된 메타 데이터를 저장하기 위한 DB(210)는 첫 번째 태그 목록(211), 두 번째 태그 목록(212), 암호 데이터 목록(213) 및 클라이언트 목록(214)을 포함한다.
첫 번째 태그 목록(211)은 클라이언트(100)가 계산하고, 클라이언트(100)로부터 서버(200)가 수신한 첫 번째 태그(t)를 저장한다.
두 번째 태그 목록(212)은 클라이언트(100)로부터 서버(200)가 수신한 암호 데이터에 대해서 서버에서 계산한 두 번째 태그(T')를 저장한다.
암호 데이터 목록(213)은 클라이언트(100)로부터 수신한 암호 데이터(C)를 저장한다.
클라이언트 목록(214)은 암호데이터를 소유하는 클라이언트 식별자를 저장한다.
예를 들어, 클라이언트 식별자(U1)의 중복되지 않는 암호 데이터(C1)에 대해, 클라이언트 식별자(U1)에 해당하는 클라이언트에서 계산한 첫 번째 태그가 t1이고, 서버(200)에서 계산한 두 번째 태그가 T'1이면, 서버(200)는 첫 번째 태그 목록, 두 번째 태그 목록, 암호 데이터 목록 및 클라이언트 목록에 각각 첫 번째 태그(t1), 두 번째 태그(T'1), 암호 데이터(C1) 및 클라이언트 식별자(U1)을 저장한다. 또한 클라이언트 식별자(U2)의 중복되지 않는 암호 데이터(C2)에 대해, 클라이언트 식별자(U2)에 해당하는 클라이언트에서 계산한 첫 번째 태그가 t2이고, 서버(200)에서 계산한 두 번째 태그가 T'2이면, 서버(200)는 첫 번째 태그 목록, 두 번째 태그 목록, 암호 데이터 목록 및 클라이언트 목록에 각각 첫 번째 태그(t2), 두 번째 태그(T'2), 암호 데이터(C2) 및 클라이언트 식별자(U2)을 저장한다. 또한 클라이언트 식별자(U1)의 중복되지 않는 암호 데이터(C3)에 대해, 클라이언트 식별자(U1)에 해당하는 클라이언트에서 계산한 첫 번째 태그가 t3이고, 서버(200)에서 계산한 두 번째 태그가 T'3이면, 서버(200)는 첫 번째 태그 목록, 두 번째 태그 목록, 암호 데이터 목록 및 클라이언트 목록에 각각 첫 번째 태그(t3), 두 번째 태그(T'3), 암호 데이터(C3) 및 클라이언트 식별자(U1)을 저장한다.
이러한 방법으로 서버(200)는 중복되지 않은 암호 데이터만을 서버(200)에 저장할 수 있다.
도 3 및 도 4는 각각 본 발명의 실시 예에 따른 클라이언트가 암호 데이터를 서버에 업로드하는 방법의 다른 일 예를 나타낸 도면이다. 그리고 도 5는 본 발명의 실시 예에 따른 서버에서 암호 데이터에 대한 중복 처리를 수행한 후의 DB를 나타낸 도면이다
도 3을 참고하면, 클라이언트(100)는 평문 데이터(M)를 해쉬해서 암호키(K)를 생성하고, 다시 암호키(K)를 해쉬해서 첫 번째 태그(t)를 생성한다(S302).
클라이언트(100)는 첫 번째 태그(t)를 서버(200)에게 전송하고(S304), 평문 데이터(M)와 암호키(K)를 블록 암호 알고리즘[E(M, K)]으로 암호화해서 평문 데이터(M)와 암호키(K)에 해당하는 암호 데이터(C)를 생성한다(S306).
첫 번째 태그(t)를 수신한 서버(200)는 자신의 DB의 첫 번째 태그 목록에서 수신한 태그(t)와 동일한 태그가 있는지 확인한다.
서버(200)는 클라이언트(100)로부터 수신한 태그(t)와 동일한 태그가 첫 번째 태그 목록에 존재함을 확인하면(S308), 클라이언트(100)에게 두 번째 태그(T)를 요구한다(S310). 클라이언트(100)로부터 수신한 태그(t)와 동일한 태그가 첫 번째 태그 목록에 존재한다는 것은 DB에 중복되는 암호 데이터가 있을 수 있다는 것을 의미한다. 따라서 서버(200)는 암호 데이터(C)의 중복 여부를 다시 한 번 확인하기 위해 클라이언트(100)에게 두 번째 태그(T)를 요구한다.
두 번째 태그(T)를 요구 받은 클라이언트(100)는 암호 데이터(C)를 해쉬해서 두 번째 태그(T)를 생성한다(S312).
그리고 나서, 클라이언트(100)는 두 번째 태그(T)를 서버(200)에게 전송하고(S314), 암호키(K)와 첫 번째 태그(t)를 저장한다(S316).
두 번째 태그(T)를 수신한 서버(200)는 DB의 두 번째 태그 목록에서 수신한 두 번째 태그(T)와 동일한 태그가 있는지 확인한다.
도 3에 도시한 바와 같이, 서버(200)는 클라이언트(100)로부터 수신한 두 번째 태그(T)와 동일한 태그가 두 번째 태그 목록에 존재함을 확인하면(S318), 첫 번째 태그(t)와 두 번째 태그(T)에 해당하는 DB의 클라이언트 목록에 클라이언트 식별자(U)만을 추가한다(S320).
이와 같이, 클라이언트(100)가 순차적으로 첫 번째 태그(t)와 두 번째 태그(T)를 생성해서 서버(200)에 전송하고, 서버(200)는 첫 번째 태그(t)와 두 번째 태그(T)를 각각 자신의 DB에서 찾아 비교함으로써, 암호 데이터 중복을 확인한다. 서버(200)는 첫 번째 태그(t)와 두 번째 태그(T)를 이용하여 암호 데이터가 중복되어 있다는 것을 확인하면, 암호 데이터(C)를 클라이언트에게 요구하지 않고 DB의 첫 번째 태그(t)와 두 번째 태그(T)에 해당하는 클라이언트 목록에 클라이언트 식별자(U)만을 추가한다. 예를 들어, 서버(200)의 DB에 저장된 암호 데이터와 암호 데이터에 관련된 메타 데이터는 도 2와 같다고 가정한다. 이때 클라이언트 식별자(U3)에 해당하는 클라이언트(100)에서 계산한 첫 번째 태그 및 두 번째 태그가 각각 t3 및 T'3일 때, 서버(200)는 클라이언트(100)로부터 수신한 t3 및 T'3을 이용해서 암호 데이터가 중복되어 있다는 것을 확인하게 된다. 이 경우, 서버(200)는 도 5에 도시한 바와 같이 t3 및 T'3에 해당하는 클라이언트 목록에 U3만을 추가한다.
이 방법에 의하면 클라이언트(100)와 서버(200)는 암호 데이터의 중복여부를 확인하기 위해 첫 번째 태그(t)와 두 번째 태그(T)를 이용하되, 클라이언트(100)로부터 암호 데이터(C)가 서버(200)로 전송되지는 않으므로, 통신량 절감에 매우 효과적이다. 그리고 서버(200)에서 첫 번째 태그(t)와 두 번째 태그(T)를 확인하는 과정을 통해서 종래 기술들의 문제점인 중복위장공격과 데이터 삭제공격을 방지할 수 있다.
한편, 도 4에 도시한 바와 같이, 서버(200)는 클라이언트(100)로부터 수신한 두 번째 태그(T)와 동일한 태그가 두 번째 태그 목록에 존재하지 않음을 확인하면(S418), 서버(200)는 암호 데이터(C)를 클라이언트(100)에게 요구한다(S420). 클라이언트(100)로부터 수신한 두 번째 태그(T)와 동일한 태그가 두 번째 태그 목록에 존재하지 않는다는 것은 DB에 중복되는 암호 데이터가 없다는 것을 의미한다. 따라서 서버(200)는 암호 데이터(C)를 클라이언트(100)에게 요구한다. 도 4에서 단계(S402~S416)는 도 3의 단계(S302~S316)와 동일하므로, 단계(S402~S416)에 해당하는 설명은 생략하였다.
암호 데이터(C)를 요구 받은 클라이언트(100)는 암호 데이터(C)를 서버(200)로 전송하고(S422), 암호키(K)와 첫 번째 태그(t)를 저장한다(S424).
암호 데이터(C)를 수신한 서버(200)는 암호 데이터(C)를 해쉬하여 두 번째 태그(T')를 계산하고(S426), 자신의 DB에 첫 번째 태그(t), 두 번째 태그(T'), 암호 데이터(C) 및 클라이언트 식별자(U)를 저장한다(S428).
도 4에서 설명한 바와 같이, 클라이언트(100)와 서버(200)는 첫 번째 태그(t)와 두 번째 태그(T)를 이용해서 암호 데이터(C)가 중복되지 않았음을 확인한다. 특히, 서버(200)는 첫 번째 태그(t)와 동일한 태그가 DB의 첫 번째 목록에 존재하는 것을 확인하였으나, 두 번째 태그(T)와 동일한 태그가 DB의 두 번째 목록에 존재하지 않아, 암호 데이터(C)를 클라이언트(100)에게 요구하게 된다. 이 방법에 의해서 종래 기술들의 문제점인 중복위장공격과 데이터 삭제공격을 방지할 수 있다.
도 6은 본 발명의 실시 예에 따른 클라이언트에서 암호 데이터의 안전한 중복 처리 방법을 나타낸 흐름도이다.
도 6을 참고하면, 클라이언트(100)는 평문 데이터를 해쉬해서 암호키를 생성하고(S600), 암호키를 해쉬해서 첫 번째 태그를 생성한다(S610). 그리고 나서, 클라이언트(100)는 첫 번째 태그를 서버(200)에게 전송하고(S620), 평문 데이터와 암호키를 블록 암호 알고리즘을 이용하여 암호화해서 평문 데이터와 암호키에 해당하는 암호 데이터를 생성한다(S630).
클라이언트(100)는 서버(200)로부터 암호 데이터를 요구 받으면(S640), 암호 데이터를 서버(200)로 전송하고(S650), 암호키와 첫 번째 태그를 저장한다(S660).
한편, 클라이언트(100)는 서버(200)로부터 두 번째 태그 요구를 수신하면, 암호 데이터를 해쉬하여 두 번째 태그를 생성하고(S670), 두 번째 태그를 서버(200)로 전송한다(S680).
클라이언트(100)는 두 번째 태그를 전송한 후 서버(200)로부터 암호 데이터를 요구 받으면(S690), 암호 데이터를 서버(200)로 전송하고(S650), 암호키와 첫 번째 태그를 저장한다(S660). 그리고 두 번째 태그를 전송한 후 서버(200)로부터 설정된 시간 내에 그 어떠한 요구도 없으면 암호키와 첫 번째 태그를 저장한다(S660).
도 7은 본 발명의 실시 예에 따른 서버에서 암호 데이터의 안전한 중복 처리 방법을 나타낸 흐름도이다.
도 7을 참고하면, 서버(200)는 클라이언트(100)로부터 첫 번째 태그를 수신하면(S700), DB의 첫 번째 태그 목록에서 클라이언트(100)로부터 수신한 태그와 동일한 태그가 존재하는지 확인한다(S710).
서버(200)는 DB의 첫 번째 태그 목록에서 클라이언트(100)로부터 수신한 첫 번째 태그와 동일한 태그가 존재하지 않으면, 암호 데이터를 클라이언트(100)에게 요구하고(S720), 클라이언트(100)로부터 암호 데이터를 수신한다(S730). 서버(200)는 클라이언트(100)로부터 암호 데이터를 수신하면, 암호 데이터를 해쉬하여 해쉬값을 생성하고(S740), 생성된 해쉬값을 DB의 두 번째 태그 목록에 저장할 두 번째 태그로 사용한다. 서버(200)는 클라이언트(100)로부터 수신한 첫 번째 태그, 암호 데이터의 해쉬값, 암호 데이터 및 클라이언트(100)의 클라이언트 식별자를 각각 DB의 첫 번째 태그 목록, 두 번째 태그 목록, 암호 데이터 목록 및 클라이언트 목록에 각각 저장한다(S750).
한편, 서버(200)는 DB의 첫 번째 태그 목록에서 클라이언트(100)로부터 수신한 첫 번째 태그와 동일한 태그가 존재하면, 클라이언트(100)로 두 번째 태그를 요구하고(S760), 클라이언트(100)로부터 두 번째 태그를 수신한다(S770).
서버(200)는 클라이언트(100)로부터 두 번째 태그를 수신하면, DB의 두 번째 태그 목록에서 클라이언트(100)로부터 수신한 두 번째 태그와 동일한 태그가 존재하는지 확인한다(S780).
서버(200)는 DB의 두 번째 태그 목록에서 클라이언트(100)로부터 수신한 두 번째 태그와 동일한 태그가 존재하지 않으면, 암호 데이터를 클라이언트(100)에게 요구하고(S720), 단계(S730~S750)를 수행한다.
반면, 서버(200)는 DB의 두 번째 태그 목록에서 클라이언트(100)로부터 수신한 두 번째 태그와 동일한 태그가 존재하면, 첫 번째 태그와 두 번째 태그에 해당하는 DB의 클라이언트 목록에 새로운 클라이언트 식별자 즉, 클라이언트(100)의 식별자를 추가한다(S790).
도 8은 본 발명의 실시 예에 따른 클라이언트의 암호 데이터 중복 제거 장치를 나타낸 도면이다.
도 8을 참고하면, 클라이언트(100)의 암호 데이터 중복 제거 장치(800)는 프로세서(810), 송수신기(820) 및 메모리(830)를 포함한다.
프로세서(810)는 도 1, 도 3, 도 4 및 도 6을 토대로 설명한 기능들을 수행한다. 프로세서(810)는 평문 데이터를 해쉬해서 암호키를 생성하고, 암호키를 해쉬해서 첫 번째 태그를 생성하고, 평문 데이터와 암호키를 블록 암호 알고리즘을 이용하여 암호화해서 평문 데이터와 암호키에 해당하는 암호 데이터를 생성한다.
송수신기(820)는 서버(200)와 암호 데이터의 업로드 및 다운로드를 위한 송수신 동작을 수행한다. 송수신기(820)는 프로세서(810)의 제어에 따라서 첫 번째 태그와 두 번째 태그 및 암호 데이터를 서버(200)로 전송할 수 있고, 서버(200)로부터 두 번째 태그 및 암호 데이터의 요구를 수신할 수 있다.
메모리(830)는 암호키와 첫 번째 태그를 저장한다. 또한 메모리(830)는 프로세서(810)에서 수행하기 위한 명령어(instructions)를 저장하고 있거나 저장 장치(도시하지 않음)로부터 명령어를 로드하여 일시 저장하며, 프로세서(810)는 메모리(830)에 저장되어 있거나 로드된 명령어를 실행할 수 있다.
프로세서(810)와 메모리(830)는 버스(도시하지 않음)를 통해 서로 연결되어 있으며, 버스에는 입출력 인터페이스(도시하지 않음)도 연결되어 있을 수 있다. 이때 입출력 인터페이스에 송수신기(820)가 연결되며, 입력 장치, 디스플레이, 스피커, 저장 장치 등의 주변 장치가 연결되어 있을 수 있다.
도 9는 본 발명의 실시 예에 따른 클라이언트의 암호 데이터 중복 제거 장치를 나타낸 도면이다.
도 9를 참고하면, 서버(200)의 암호 데이터 중복 제거 장치(900)는 프로세서(910), 송수신기(920) 및 메모리(930)를 포함한다.
프로세서(910)는 도 1, 도 3, 도 4 및 도 7을 토대로 설명한 기능들을 수행한다. 프로세서(910)는 클라이언트(100)로부터 수신한 첫 번째 태그와 두 번째 태그를 이용하여 암호 데이터의 중복 여부를 확인한다. 프로세서(910)는 첫 번째 태그와 두 번째 태그를 이용하여 암호 데이터가 중복되지 않았음을 확인하면, 클라이언트(100)로부터 암호 데이터를 요구하여 수신하고, 수신한 암호 데이터를 해쉬하여 해쉬값을 생성한 후, 클라이언트(100)로부터 수신한 첫 번째 태그, 암호 데이터의 해쉬값, 암호 데이터 및 클라이언트(100)의 클라이언트 식별자를 각각 DB의 첫 번째 태그 목록, 두 번째 태그 목록, 암호 데이터 목록 및 클라이언트 목록에 각각 저장할 수 있다. 또한 프로세서(910)는 첫 번째 태그와 두 번째 태그를 이용하여 암호 데이터가 중복되어 있음을 확인하면, 첫 번째 태그와 두 번째 태그에 해당하는 DB의 클라이언트 목록에 클라이언트 식별자만을 추가한다.
송수신기(920)는 클라이언트(100)와 암호 데이터의 업로드 및 다운로드를 위한 송수신 동작을 수행한다. 송수신기(920)는 클라이언트(100)로부터 첫 번째 태그와 두 번째 태그 및 암호 데이터를 수신할 수 있고, 클라이언트(100)로 두 번째 태그 및 암호 데이터 요구를 전송할 수 있다.
메모리(930)는 도 2 및 도 5에서 설명한 DB(210)를 포함할 수 있다. 또한 메모리(930)는 프로세서(910)에서 수행하기 위한 명령어(instructions)를 저장하고 있거나 저장 장치(도시하지 않음)로부터 명령어를 로드하여 일시 저장하며, 프로세서(910)는 메모리(930)에 저장되어 있거나 로드된 명령어를 실행할 수 있다.
프로세서(910)와 메모리(930)는 버스(도시하지 않음)를 통해 서로 연결되어 있으며, 버스에는 입출력 인터페이스(도시하지 않음)도 연결되어 있을 수 있다. 이때 입출력 인터페이스에 송수신기(920)가 연결되며, 입력 장치, 디스플레이, 스피커, 저장 장치 등의 주변 장치가 연결되어 있을 수 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현되는 것은 아니며, 본 발명의 실시 예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시 예의 기재로부터 본 발명이 속하는 기술 분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.

Claims (20)

  1. 클라이언트에서 암호 데이터의 중복 제거 방법으로서,
    평문 데이터를 이용하여 암호키를 생성하는 단계,
    상기 암호키를 이용하여 첫 번째 태그를 생성하는 단계,
    상기 암호키와 상기 평문 데이터를 암호화하여 암호 데이터를 생성하는 단계,
    상기 암호 데이터의 중복 여부를 확인하기 위해 상기 첫 번째 태그를 서버로 전송하는 단계, 그리고
    상기 첫 번째 태그를 전송한 후, 상기 서버로부터의 암호 데이터 요구에 따라서 상기 암호 데이터를 상기 서버로 전송하는 단계
    를 포함하는 암호 데이터의 중복 제거 방법.
  2. 제1항에서,
    상기 첫 번째 태그를 전송한 후, 상기 서버로부터 두 번째 태그 요구를 수신하면, 상기 암호 데이터를 이용하여 두 번째 태그를 생성하는 단계,
    상기 암호 데이터의 중복 여부를 확인하기 위해, 상기 두 번째 태그를 상기 서버로 전송하는 단계, 그리고
    상기 두 번째 태그를 전송한 후, 상기 서버로부터의 암호 데이터 요구에 따라서 상기 암호 데이터를 상기 서버로 전송하는 단계
    를 더 포함하는 암호 데이터의 중복 제거 방법.
  3. 제2항에서,
    상기 두 번째 태그를 생성하는 단계는 상기 암호 데이터를 해쉬하여 상기 두 번째 태그를 생성하는 단계를 포함하는 암호 데이터의 중복 제거 방법.
  4. 제2항에서,
    상기 두 번째 태그를 전송한 후 상기 서버로부터 어떠한 요구도 없으면 상기 암호키와 첫 번째 태그를 저장하는 단계
    를 더 포함하는 암호 데이터의 중복 제거 방법.
  5. 제1항에서,
    상기 첫 번째 태그 또는 상기 두 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있지 않음이 확인되면, 상기 서버에 의해 상기 암호 데이터 요구가 전송되며,
    상기 첫 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 서버에 의해 상기 두 번째 태그 요구가 전송되는 암호 데이터의 중복 제거 방법.
  6. 제1항에서,
    상기 암호키를 생성하는 단계는 상기 평문 데이터를 해쉬하여 상기 암호키를 생성하는 단계를 포함하고,
    상기 첫 번째 태그를 생성하는 단계는 상기 암호키를 해쉬하여 상기 첫 번째 태그로 생성하는 단계를 포함하는 암호 데이터의 중복 제거 방법.
  7. 서버에서 암호 데이터의 중복 제거 방법으로서,
    클라이언트로부터 첫 번째 태그를 수신하는 단계,
    상기 첫 번째 태그를 이용하여 DB에서 암호 데이터의 중복 여부를 확인하는 단계,
    상기 첫 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있지 않음이 확인되면, 상기 클라이언트에게 암호 데이터를 요구하는 단계,
    상기 클라이언트로부터 암호 데이터를 수신하는 단계,
    상기 암호 데이터를 이용하여 두 번째 태그 값을 계산하는 단계, 그리고
    상기 DB에 상기 클라이언트로부터 수신한 상기 첫 번째 태그, 상기 암호 데이터, 상기 계산된 두 번째 태그 값 및 상기 클라이언트의 식별자를 저장하는 단계
    를 포함하는 암호 데이터의 중복 제거 방법.
  8. 제7항에서,
    상기 첫 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 클라이언트에게 두 번째 태그를 요구하는 단계,
    상기 클라이언트에서 계산된 두 번째 태그를 상기 클라이언트로부터 수신하는 단계, 그리고
    상기 두 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 DB에 저장되어 있는 상기 첫 번째 태그와 상기 두 번째 태그에 대응하여 상기 클라이언트의 식별자만을 추가하는 단계
    를 더 포함하는 암호 데이터의 중복 제거 방법.
  9. 제8항에서,
    상기 두 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있지 않음이 확인되면, 상기 클라이언트에게 암호 데이터를 요구하는 단계,
    상기 클라이언트로부터 암호 데이터를 수신하는 단계,
    상기 암호 데이터를 이용하여 두 번째 태그 값을 계산하는 단계, 그리고
    상기 DB에 상기 클라이언트로부터 수신한 상기 첫 번째 태그, 상기 암호 데이터, 상기 계산된 두 번째 태그 값 및 상기 클라이언트의 식별자를 저장하는 단계
    를 더 포함하는 암호 데이터의 중복 제거 방법.
  10. 제8항에서,
    상기 두 번째 태그 값을 계산하는 단계는 상기 암호 데이터를 해쉬하여 상기 두 번째 태그 값을 생성하는 단계를 포함하며,
    상기 클라이언트에 의해 두 번째 태그는 상기 암호 데이터의 해쉬값인 암호 데이터의 중복 제거 방법.
  11. 제8항에서,
    상기 DB는 첫 번째 태그 목록, 암호 데이터 목록, 두 번째 태그 목록 및 클라이언트 목록을 포함하고,
    상기 첫 번째 태그를 이용하여 DB에서 암호 데이터의 중복 여부를 확인하는 단계는 상기 DB의 첫 번째 태그 목록에 상기 클라이언트로부터 수신한 첫 번째 태그와 동일한 태그가 존재하는지 확인하는 단계를 포함하며,
    상기 두 번째 태그를 이용하여 DB에서 암호 데이터의 중복 여부를 확인하는 단계는 상기 DB의 두 번째 태그 목록에 상기 클라이언트로부터 수신한 두 번째 태그와 동일한 태그가 존재하는지 확인하는 단계를 포함하는 암호 데이터의 중복 제거 방법.
  12. 클라이언트에서의 암호 데이터 중복 제거 장치로서,
    평문 데이터를 이용하여 암호키를 생성하고, 상기 암호키를 이용하여 첫 번째 태그를 생성하며, 상기 암호키와 상기 평문 데이터를 암호화하여 암호 데이터를 생성하고, 상기 암호 데이터를 이용하여 두 번째 태그를 생성하는 프로세서,
    상기 첫 번째 태그를 상기 서버로 전송하고, 상기 서버로부터 두 번째 태그 요구에 따라서 상기 두 번째 태그를 상기 서버로 전송하며, 상기 서버로부터 암호 데이터 요구에 따라서 상기 암호 데이터를 상기 서버로 전송하는 송수신기, 그리고
    상기 암호키와 상기 첫 번째 태그를 저장하고 있는 메모리
    를 포함하는 암호 데이터 중복 제거 장치.
  13. 제12항에서,
    상기 프로세서는 상기 암호키를 해쉬하여 상기 첫 번째 태그를 생성하고, 상기 암호 데이터를 해쉬하여 상기 두 번째 태그를 생성하는 암호 데이터 중복 제거 장치.
  14. 제12항에서,
    상기 첫 번째 태그 또는 상기 두 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있지 않음이 확인되는 경우, 상기 서버에 의해 상기 암호 데이터 요구가 전송되고,
    상기 첫 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 서버에 의해 상기 두 번째 태그 요구가 전송되는 암호 데이터 중복 제거 장치.
  15. 제12항에서,
    상기 프로세서는 상기 암호 데이터를 상기 서버로 전송하고 난 후에 상기 암호키와 상기 첫 번째 태그를 상기 메모리에 저장하거나, 상기 두 번째 태그를 전송하고 난 후 상기 서버로부터 그 어떠한 요구도 없는 경우에 상기 암호키와 상기 첫 번째 태그를 상기 메모리에 저장하는 암호 데이터 중복 제거 장치.
  16. 서버에서의 암호 데이터 중복 제거 장치로서,
    클라이언트로부터 첫 번째 태그와 두 번째 태그를 수신하는 송수신기,
    DB를 저장하고 있는 메모리, 그리고
    상기 첫 번째 태그를 이용하여 상기 DB에서 암호 데이터의 중복 여부를 확인하고, 상기 첫 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 두 번째 태그를 이용하여 상기 DB에서 상기 암호 데이터의 중복 여부를 재차 확인하며, 상기 암호 데이터가 중복되어 있지 않음이 확인되면 상기 송수신기를 통해 상기 클라이언트로 암호 데이터를 요구하는 프로세서
    를 포함하는 암호 데이터 중복 제거 장치.
  17. 제16항에서,
    상기 송수신기는 상기 클라이언트로부터 암호 데이터를 수신하고,
    상기 프로세서는 상기 암호 데이터를 이용하여 두 번째 태그 값을 계산하고, 상기 DB에 상기 클라이언트로부터 수신한 상기 첫 번째 태그, 상기 암호 데이터, 상기 계산된 두 번째 태그 값 및 상기 클라이언트의 식별자를 저장하는 암호 데이터 중복 제거 장치.
  18. 제17항에서,
    상기 프로세서는 상기 첫 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 송수신기를 통해 상기 클라이언트에게 두 번째 태그를 요구하고, 상기 두 번째 태그를 이용하여 상기 암호 데이터가 중복되어 있음이 확인되면, 상기 DB에 저장되어 있는 상기 첫 번째 태그와 상기 두 번째 태그에 대응하여 상기 클라이언트의 식별자만을 추가하는 암호 데이터 중복 제거 장치.
  19. 제17항에서,
    상기 DB는 첫 번째 태그 목록, 암호 데이터 목록, 두 번째 태그 목록 및 클라이언트 목록을 포함하고,
    상기 프로세서는 상기 DB의 첫 번째 태그 목록과 두 번째 태그 목록에 각각 상기 클라이언트로부터 수신한 첫 번째 태그와 상기 두 번째 태그와 동일한 태그가 존재하면 상기 암호 데이터가 중복되어 있는 것으로 판단하는 암호 데이터 중복 제거 장치.
  20. 제17항에서,
    상기 프로세서는 상기 암호 데이터를 해쉬하여 상기 두 번째 태그 값을 계산하는 암호 데이터 중복 제거 장치.
KR1020160000623A 2016-01-04 2016-01-04 암호 데이터의 중복 제거 방법 및 장치 KR102450295B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160000623A KR102450295B1 (ko) 2016-01-04 2016-01-04 암호 데이터의 중복 제거 방법 및 장치
US15/051,574 US10025811B2 (en) 2016-01-04 2016-02-23 Method and apparatus for deduplicating encrypted data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160000623A KR102450295B1 (ko) 2016-01-04 2016-01-04 암호 데이터의 중복 제거 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20170081504A true KR20170081504A (ko) 2017-07-12
KR102450295B1 KR102450295B1 (ko) 2022-10-04

Family

ID=59235778

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160000623A KR102450295B1 (ko) 2016-01-04 2016-01-04 암호 데이터의 중복 제거 방법 및 장치

Country Status (2)

Country Link
US (1) US10025811B2 (ko)
KR (1) KR102450295B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102450295B1 (ko) * 2016-01-04 2022-10-04 한국전자통신연구원 암호 데이터의 중복 제거 방법 및 장치
WO2018110608A1 (ja) * 2016-12-15 2018-06-21 日本電気株式会社 照合システム、方法、装置及びプログラム
US11106810B2 (en) * 2018-07-30 2021-08-31 EMC IP Holding Company LLC Multi-tenant deduplication with non-trusted storage system
CN110677429A (zh) * 2019-10-10 2020-01-10 青岛大学 一种文件存储的方法、系统、云端设备及终端设备
US11429736B2 (en) 2020-02-17 2022-08-30 International Business Machines Corporation Encryption management
US11303618B2 (en) 2020-02-17 2022-04-12 International Business Machines Corporation Encryption management
CN113553611A (zh) * 2020-04-26 2021-10-26 中国电信股份有限公司 文件加密存储方法和系统、用户终端、云平台和存储介质
US11494351B2 (en) 2020-05-01 2022-11-08 International Business Machines Corporation Deduplication of encrypted data
CN112685753B (zh) * 2020-12-25 2023-11-28 上海焜耀网络科技有限公司 一种用于加密数据存储的方法及设备
CN113792315B (zh) * 2021-09-17 2023-04-25 长春理工大学 一种支持块级加密去重的云数据访问控制方法及控制系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062570B2 (en) * 2000-08-04 2006-06-13 Avaya Technology, Corp. High performance server farm with tagging and pipelining
KR100985169B1 (ko) * 2009-11-23 2010-10-05 (주)피스페이스 분산 저장 시스템에서 파일의 중복을 제거하는 장치 및 방법
US8199911B1 (en) * 2008-03-31 2012-06-12 Symantec Operating Corporation Secure encryption algorithm for data deduplication on untrusted storage
US20120167087A1 (en) * 2010-12-23 2012-06-28 Electronics And Telecommunications Research Institute Apparatus and method for driving virtual machine, and method for deduplication of virtual machine image
US20120210127A1 (en) * 2006-05-16 2012-08-16 Masakazu Sato Authentication device using true random number generating element or pseudo-random number generating element, authentication apparatus, and authentication method
US8516271B2 (en) * 2011-03-11 2013-08-20 Hewlett-Packard Development Company, L. P. Securing non-volatile memory regions
KR20140034222A (ko) * 2011-05-14 2014-03-19 비트카사, 인코포레이티드 사용자-독립적인 암호화된 파일들의 서버측 중복제거를 하는 클라우드 파일 시스템
US20140281486A1 (en) * 2013-03-13 2014-09-18 Alex Nayshtut Community-based de-duplication for encrypted data
WO2015030646A1 (en) * 2013-08-29 2015-03-05 Telefonaktiebolaget L M Ericsson (Publ) Method, content owner device, computer program, and computer program product for distributing content items to authorized users
US9773118B1 (en) * 2014-07-15 2017-09-26 Ionu Security, Inc. Data deduplication with encryption

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9920502D0 (en) * 1999-09-01 1999-11-03 Ncr Int Inc Portable terminal
CA2567285A1 (en) * 2004-05-18 2005-11-24 Silverbrook Research Pty Ltd Method and apparatus for security document tracking
US20080297326A1 (en) * 2007-03-30 2008-12-04 Skyetek, Inc. Low Cost RFID Tag Security And Privacy System And Method
US20080304664A1 (en) * 2007-06-07 2008-12-11 Shanmugathasan Suthaharan System and a method for securing information
WO2011076463A1 (en) 2009-12-23 2011-06-30 International Business Machines Corporation Deduplication of encrypted data
KR101505263B1 (ko) 2013-03-07 2015-03-24 포항공과대학교 산학협력단 데이터 중복 제거 방법 및 장치
KR20140117994A (ko) 2013-03-27 2014-10-08 한국전자통신연구원 복제 파일 중복 제거 방법 및 장치
KR102450295B1 (ko) * 2016-01-04 2022-10-04 한국전자통신연구원 암호 데이터의 중복 제거 방법 및 장치

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062570B2 (en) * 2000-08-04 2006-06-13 Avaya Technology, Corp. High performance server farm with tagging and pipelining
US20120210127A1 (en) * 2006-05-16 2012-08-16 Masakazu Sato Authentication device using true random number generating element or pseudo-random number generating element, authentication apparatus, and authentication method
US8199911B1 (en) * 2008-03-31 2012-06-12 Symantec Operating Corporation Secure encryption algorithm for data deduplication on untrusted storage
KR100985169B1 (ko) * 2009-11-23 2010-10-05 (주)피스페이스 분산 저장 시스템에서 파일의 중복을 제거하는 장치 및 방법
US20120167087A1 (en) * 2010-12-23 2012-06-28 Electronics And Telecommunications Research Institute Apparatus and method for driving virtual machine, and method for deduplication of virtual machine image
US8516271B2 (en) * 2011-03-11 2013-08-20 Hewlett-Packard Development Company, L. P. Securing non-volatile memory regions
KR20140034222A (ko) * 2011-05-14 2014-03-19 비트카사, 인코포레이티드 사용자-독립적인 암호화된 파일들의 서버측 중복제거를 하는 클라우드 파일 시스템
US20140281486A1 (en) * 2013-03-13 2014-09-18 Alex Nayshtut Community-based de-duplication for encrypted data
WO2015030646A1 (en) * 2013-08-29 2015-03-05 Telefonaktiebolaget L M Ericsson (Publ) Method, content owner device, computer program, and computer program product for distributing content items to authorized users
US9773118B1 (en) * 2014-07-15 2017-09-26 Ionu Security, Inc. Data deduplication with encryption

Also Published As

Publication number Publication date
US10025811B2 (en) 2018-07-17
KR102450295B1 (ko) 2022-10-04
US20170193032A1 (en) 2017-07-06

Similar Documents

Publication Publication Date Title
KR102450295B1 (ko) 암호 데이터의 중복 제거 방법 및 장치
US11108753B2 (en) Securing files using per-file key encryption
US9547774B2 (en) System and method for distributed deduplication of encrypted chunks
JP5241818B2 (ja) 端末
US9037856B2 (en) System and method for distributed deduplication of encrypted chunks
US8661259B2 (en) Deduplicated and encrypted backups
US9122882B2 (en) Method and apparatus of securely processing data for file backup, de-duplication, and restoration
US9256499B2 (en) Method and apparatus of securely processing data for file backup, de-duplication, and restoration
US10685141B2 (en) Method for storing data blocks from client devices to a cloud storage system
US9064133B2 (en) Method and apparatus of securely processing data for file backup, de-duplication, and restoration
CN103731395A (zh) 文件的处理方法及系统
US20200213109A1 (en) Deduplication of client encrypted data
CN110362984B (zh) 多设备运行业务系统的方法及装置
Nayak et al. SEDS: secure and efficient server-aided data deduplication scheme for cloud storage
US20230291548A1 (en) Authorization requests from a data storage device to multiple manager devices
US9054864B2 (en) Method and apparatus of securely processing data for file backup, de-duplication, and restoration
KR20200080011A (ko) 데이터를 분산해서 저장하는 시스템 및 방법
JP2009055428A (ja) 情報処理装置、サーバ装置、情報処理プログラム及び方法
KR101790757B1 (ko) 암호데이터를 저장하는 클라우드 시스템 및 그 방법
US20230291579A1 (en) Cryptographic keys for authorization requests from a data storage device
Debbarma et al. Encryption With Private KEY for Data Security and Deduplication
Kim et al. Improving dynamic ownership scheme for data deduplication
Kim et al. Secure Data Deduplication Scheme Using Linkage of Data Blocks in Cloud Storage Environment
JP2020201605A (ja) ネットワークシステム、配信サーバ、配信方法、配信プログラム、キャッシュサーバ、キャッシュ方法及びキャッシュプログラム

Legal Events

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