KR102415626B1 - 데이터 소유권 검증 방법 및 장치 - Google Patents

데이터 소유권 검증 방법 및 장치 Download PDF

Info

Publication number
KR102415626B1
KR102415626B1 KR1020160000615A KR20160000615A KR102415626B1 KR 102415626 B1 KR102415626 B1 KR 102415626B1 KR 1020160000615 A KR1020160000615 A KR 1020160000615A KR 20160000615 A KR20160000615 A KR 20160000615A KR 102415626 B1 KR102415626 B1 KR 102415626B1
Authority
KR
South Korea
Prior art keywords
value
random number
service provider
file
server
Prior art date
Application number
KR1020160000615A
Other languages
English (en)
Other versions
KR20170081498A (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 KR1020160000615A priority Critical patent/KR102415626B1/ko
Priority to US15/179,375 priority patent/US10515225B2/en
Publication of KR20170081498A publication Critical patent/KR20170081498A/ko
Application granted granted Critical
Publication of KR102415626B1 publication Critical patent/KR102415626B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers

Abstract

본 발명은 데이터 소유권 검증 방법 및 장치에 관한 것이다. 본 발명은 사용자 측에서 서버가 자신이 업로드 하고자 하는 데이터를 실제로 소유하고 있는지 여부를 검증하고, 동시에 서버 측에서 사용자가 실제로 데이터를 소유하고 있는지 여부를 검증할 수 있다.

Description

데이터 소유권 검증 방법 및 장치{METHOD AND APPARATUS FOR VERIFYING DATA OWNERSHIP}
본 발명은 데이터 소유권 검증 방법 및 장치에 관한 것으로, 특히 사용자 단말과 서비스 제어 서버 간에 데이터 소유권을 상호 검증하는 데이터 소유권 검증 방법 및 장치에 관한 것이다.
스토리지 서비스 제공자가 관리하는 스토리지 서버에 저장되는 데이터 중 중복된 데이터를 관리하기 위한 기술은 서버 측 중복(server-side deduplication) 처리 기술 및 클라이언트 측 중복(client-side deduplication) 처리 기술로 구분된다.
서버 측 중복 처리 기술은 데이터 서버가 고객의 정보를 제공 받은 상태에서 특정 시점에 저장된 모든 데이터에 대해 중복 여부를 확인하고, 중복된 데이터가 존재하는 경우 해당 데이터를 하나만 남기고 나머지는 제거하는 방식이다.
클라이언트 측 중복 처리 기술은 사용자가 데이터를 업로드 하고자 할 때 서버는 동일한 데이터가 이미 저장되어 있는지 여부를 확인하고, 동일한 데이터가 존재하는 경우 사용자가 해당 데이터를 실제로 가지고 있는지 여부를 확인한 후, 사용자에게 해당 데이터에 대한 접근 권한을 부여하는 방식이다.
저장 공간의 효율성은 중복 처리 비율에 따라 결정되므로, 서버 측 및 클라이언트 중복 처리 기술 각각의 데이터 저장 공간에 대한 성능은 동일하다. 그러나, 서버 측 중복 처리 기술은 사용자들이 자신의 데이터를 서버에 업로드할 필요가 있다. 이에 반해, 클라이언트 측 중복 처리 기술은 동일한 데이터가 서버의 스토리지에 존재하는 경우 사용자가 보유하고 있는 데이터를 업로드 할 필요가 없기 때문에 네트워크 부하를 크게 감소시킬 수 있다.
그런데, 클라이언트 측 중복 처리 기술은 사용자가 실제로 보유하고 있지 않은 데이터에 대해 소유권을 증명할 수 있는 경우 해당 데이터에 대한 접근 권한을 쉽게 얻을 수 있기 때문에 사용자가 업로드 하고자 하는 데이터를 실제로 가지고 있는지를 정확하게 판단할 필요가 있다.
이와 같은 데이터 소유권을 검증하는 기술은 데이터 중복 처리 기술에서 이용하는 기술로서, 일반적인 암호 기술과 달리 암호화된 비밀 정보를 관리하지 않고, 보유한 데이터를 기반으로 해당 데이터를 온전히 소유하고 있음을 증명하는 보안 기술이다. 즉, 암호학적인 키와 같은 비밀 정보를 기반으로 하지 않으나, 실제로 데이터를 소유하지 않는 경우 생성할 수 없는 증거를 생성하고, 생성된 증거를 기반으로 해당 데이터를 소유하고 있음을 증명하는 방식의 기술이다.
이와 같은 데이터 소유권을 증명하기 위해 이론적으로 검증된 기술은 2011년에 햐이 할레비(Shai Halevi) 등에 의해 최초로 제안되었다. 최초로 제안된 방법은 서버가 원본 데이터에 대한 머클 트리(Merkle-Tree)의 루트 값을 저장하고, 사용자가 해당 데이터에 대한 소유권 증명을 시도할 때 서버가 챌린지로 해당 트리에서 임의의 최 하단 노드의 위치를 선택한다.
사용자는 챌린지로 선택된 노드에서 루트까지 계산하기 위한 경로에서 요구되는 모든 해쉬 값을 생성하고, 서버에 전송한다. 즉, 사용자에게 선택한 임의의 최하단 노드에 대한 해쉬 값에서 루트 값을 생성하기 위해 필요한 모든 경로 정보를 제공하도록 함으로써 전체 데이터에 대한 소유 여부를 전체 데이터의 로그 길이에 해당하는 정보로 증명하는 기술이다. 이후에 개발되고 있는 소유권 증명 기술들은 햐이 할레비(Shai Halevi)의 기법을 기초로 소유권 증명 정보를 생성하기 위한 효율성을 개선시키거나, 안정성을 강화시키는 방식으로 개발되고 있다.
그런데, 이와 같은 클라이언트 측 중복 처리 기술의 경우 서버에 저장된 데이터가 완전하게 잘 관리되어 있다는 가정을 기반으로 하고 있다. 즉, 사용자는 소유권 증명이 수행된 이후, 보유한 데이터를 삭제한다.
이로 인해, 데이터를 업로드하는 대신 해당 데이터에 대한 접근 권한만 획득한 상태에서 실제로 서버에 저장된 데이터에 문제가 발생한 경우 삭제된 데이터에 대한 복구는 불가능하다.
따라서, 실제로 업로드가 되지 않는 데이터에 대한 권한을 부여하는 환경에서 서버뿐만 아니라 사용자도 실제로 서버가 데이터를 소유하고 있는지 여부를 검증할 필요가 있다.
본 발명이 해결하려는 과제는 사용자 측에서 서버가 자신이 업로드 하고자 하는 데이터를 실제로 소유하고 있는지 여부를 검증하고, 동시에 서버 측에서 사용자가 실제로 데이터를 소유하고 있는지 여부를 검증할 수 있는 데이터 소유권 검증 방법 및 장치를 제공한다.
본 발명의 실시 예에 따른 사용자 단말에서 서비스 제어 서버의 데이터 소유권을 검증하는 방법은 상기 서비스 제어 서버에 파일의 업로드 요청 시 제1 난수를 선택하고, 상기 파일의 색인 값을 연산하는 단계; 상기 제1 난수 및 상기 서비스 제어 서버로부터 수신된 제2 난수를 이용하여 질의 값을 연산하는 단계; 상기 파일의 파일 정보를 이용하여 상기 질의 값에 대한 사용자 답변 값을 연산하는 단계; 및 상기 서비스 제어 서버로부터 수신된 위임 값을 이용하여 상기 파일에 대한 상기 서비스 제어 서버의 소유권을 검증하는 단계를 포함한다.
여기서, 상기 위임 값은 상기 서비스 제어 서버에 상기 색인 값에 대응하여 저장된 파일의 파일 정보를 이용하여 상기 질의 값에 대해 답변한 서버 답변 값에 대응하는 값이다. 그리고, 상기 위임 값은 상기 서비스 제어 서버에 의해 선택된 제3 난수 및 상기 서버 답변 값을 이용하여 연산된 값이다.
그리고, 상기 제3 난수는 상기 사용자 답변 값과 상기 서버 답변 값이 동일한 경우 상기 서비스 제어 서버로부터 공개되는 값이다. 또한, 상기 제1 난수는 상기 서비스 제어 서버와 공유하는 값이다. 그리고, 상기 제2 난수는 상기 서비스 제어 서버에 상기 색인 값에 대응하는 파일이 존재하는 경우 상기 서비스 제어 서버에 의해 선택된 값이다.
또한, 본 발명의 실시 예에 따른 서비스 제어 서버에서 사용자 단말의 데이터 소유권을 검증하는 방법은 상기 사용자 단말로부터 제1 난수 및 파일의 색인 값을 수신 받는 단계; 상기 색인 값에 대응하는 파일이 존재하는 경우 제2 난수를 선택하고, 상기 제1 난수 및 상기 제2 난수를 이용하여 질의 값을 연산하는 단계; 상기 파일의 파일 정보를 이용하여 상기 질의 값에 대한 서버 답변 값을 연산하는 단계; 및 상기 사용자 단말로부터 상기 질의 값에 대한 사용자 답변 값을 수신 받고, 상기 서버 답변 값과 상기 사용자 답변 값에 따라 상기 사용자 단말의 상기 파일의 소유권을 검증하는 단계를 포함한다.
그리고, 상기 소유권을 검증하는 단계는 제3 난수를 이용하여 상기 서버 답변 값에 대응하는 위임 값을 연산하는 단계; 상기 서버 답변 값과 상기 사용자 답변 값이 동일한지 여부를 판단하는 단계; 및 상기 서버 답변 값과 상기 사용자 답변 값이 동일한 경우 상기 사용자 단말에 상기 파일의 접근 권한을 부여하는 단계를 포함한다.
또한, 상기 파일의 접근 권한을 부여하는 단계는 상기 서버 답변 값과 상기 사용자 답변 값이 동일한 경우 상기 제3 난수를 상기 사용자 단말에 공개하는 단계를 포함한다. 그리고, 상기 제2 난수 및 상기 위임 값을 상기 사용자 단말에 공개하는 단계를 더 포함한다. 또한, 상기 사용자 답변 값은 상기 질의 값에 대해 상기 사용자 단말에 저장된 상기 파일의 파일 정보를 이용하여 연산된 값이다.
그리고, 본 발명의 실시 예에 따른 서비스 제어 서버의 데이터 소유권을 검증하는 사용자 단말의 데이터 소유권 검증 장치는 상기 서비스 제어 서버에 제1 난수, 파일의 색인 값 및 사용자 답변 값을 송신하고, 상기 서비스 제어 서버로부터 제2 난수, 제3 난수 및 서버 답변 값에 대응하는 위임 값을 수신 받는 송수신부; 및 상기 서비스 제어 서버에 상기 파일을 업로드 시 상기 제1 난수를 선택하고, 상기 색인 값을 연산하고, 상기 제1 난수와 상기 제2 난수를 이용하여 질의 값을 연산하고, 상기 질의 값에 대한 상기 사용자 답변 값을 연산하고, 상기 제3 난수 및 상기 위임 값을 이용하여 상기 서비스 제어 서버의 상기 파일의 소유권을 검증하는 프로세서를 포함한다.
여기서, 상기 서버 답변 값은 상기 질의 값에 대해 상기 서비스 제어 서버에 상기 색인 값에 대응하여 저장된 파일의 파일 정보를 이용하여 연산된 값이다. 그리고, 상기 위임 값은 상기 제3 난수 및 상기 서버 답변 값을 이용하여 연산된 값이다. 또한, 상기 제2 난수는 상기 서비스 제어 서버에 상기 색인 값에 대응하는 파일이 존재하는 경우 상기 서비스 제어 서버에 의해 선택된 값이다. 그리고, 상기 제3 난수는 상기 사용자 답변 값과 상기 서버 답변 값이 동일한 경우 상기 서비스 제어 서버로부터 공개되는 값이다.
본 발명의 실시 예에 의하면 사용자 측에서 서버가 자신이 업로드 하고자 하는 데이터를 실제로 소유하고 있는지 여부를 검증함으로써 사용자는 서버에 저장된 데이터에 문제가 발생한 상황에도 자신이 보유한 데이터를 삭제하여 데이터를 분실하는 것을 방지할 수 있다.
또한, 서버 측에서 사용자가 실제로 데이터를 소유하고 있는지 여부를 검증함으로써 서버는 데이터를 소유하지 않아 사용 권한이 없는 사용자에게 해당 데이터에 대한 접근을 금지시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 데이터 소유권 검증 방법을 도시한 도면.
도 2는 본 발명의 다른 실시 예에 따른 데이터 소유권 검증 방법을 도시한 도면.
도 3은 본 발명이 실시 예에 따른 사용자 단말(100) 및 서비스 제공자 서버(200)의 데이터 소유권 검증 장치를 각각 도시한 도면.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 그리고, 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어이며, 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로, 용어는 명세서 전반에 걸친 내용을 기반으로 정의될 수 있다. 본 발명의 실시 예에서 제안하는 기술은 기존에 알려져 있는 기술들을 기반으로 본 발명의 기법을 설계할 수 있는 일반적인 프로토콜 설계 방법이다.
명세서 전체에서, 사용자 단말은 이동 단말(mobile terminal, MT), 이동국(mobile station, MS), 진보된 이동국(advanced mobile station, AMS), 고신뢰성 이동국(high reliability mobile station, HR-MS), 가입자국(subscriber station, SS), 휴대 가입자국(portable subscriber station, PSS), 접근 단말(access terminal, AT), 사용자 장비(user equipment, UE) 등을 지칭할 수도 있고, MT, MS, AMS, HR-MS, SS, PSS, AT, UE 등의 전부 또는 일부의 기능을 포함할 수도 있다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 실시 예를 첨부된 도면을 참조로 하여 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 사용자 단말(100)과 서비스 제공 서버(200) 간의 데이터 소유권 검증 방법을 설명하기 위해 도시한 도면이다.
도 1을 참조하면, 먼저, 사용자 단말(100)은 난수(a)를 임의로 선택하고, 업로드 할 파일(F)을 검색하기 위한 색인 값(idx)을 연산한다(S101 단계).
여기서, 사용자 단말(100)은 아래의 [수학식 1]과 같이 색인을 생성하는 태그 생성 함수(Tgen)를 이용하여 색인 값(idx)을 연산할 수 있다.
[수학식 1]
idx=Tgen(F)
그 다음, 사용자 단말(100)은 난수(a) 및 색인 값(idx)을 서비스 제공자 서버(200)에 전송한다(S102 단계). 그러면, 서비스 제공자 서버(200)는 색인 값(idx)을 기초로 스토리지에 해당 파일(F)과 동일한 파일이 존재하는지 여부를 검색한다.
검색 결과, 스토리지에 동일한 파일이 존재하지 않는 경우 서비스 제공자 서버(200)는 사용자 단말(100)에 해당 파일(F)의 업로드를 요청한다.
반면, 스토리지에 동일한 파일(F)이 존재하는 경우 사용자 단말(100) 및 서비스 제공자 서버(200)는 해당 파일(F)에 대한 소유권을 상호 검증한다. 서비스 제공자 서버(200)는 사용자 단말(100)이 해당 파일(F)을 실제로 소유하고 있는지 여부를 검증하고, 사용자 단말(100)은 서비스 제공자 서버(200)의 스토리지에 해당 파일(F)이 실제로 존재하는지 여부를 검증한다.
구체적으로, 서비스 제공자 서버(200)는 2개의 난수(b, t)를 임의로 선택한다(S103 단계). 그 다음, 서비스 제공자 서버(200)는 난수(a, b, t) 및 파일(F)의 파일 정보를 이용하여 서버 답변 값(ps) 및 서버 답변 값(ps)에 대한 위임 값(c)을 생성한다(S104 단계). 여기서, 파일 정보는 파일(F)을 소유한 사람만 알 수 있는 정보이다.
구체적으로, 서비스 제공자 서버(200)는 난수(a)와 난수(b)를 이용하여 난수(r), 즉 질의 값을 연산한다. 여기서, 난수(r)은 모든 입력을 모르는 경우 출력을 예상할 수 없는 함수를 이용하여 연산할 수 있다. 예컨대, 아래의 [수학식 2]와 같이, 난수 생성 함수(prng)를 이용할 수 있다.
[수학식 2]
r=prng(a||b)
그 다음, 서비스 제공자 서버(200)는 난수(r)에 대해 파일(F)의 파일 정보를 이용하여 답변한 서버 답변 값(ps)을 연산한다. 여기서, 서비스 제공자 서버(200)는 아래의 [수학식 3]과 같이, 질의(challenge)-응답(response) 방식으로 동작하는 일 방향 소유권 증명 기법에서 사용되는 질의에 대한 응답을 계산하는 함수(Proof)를 이용하여 서버 답변 값(ps)을 연산할 수 있다.
[수학식 3]
ps=Proof(r,F)
본 발명의 실시 예는 이에 한정되지 않고, 난수(r)가 주어진 시점에 파일(F)을 소유한 서비스 제공자 서버(200)만 연산할 수 있는 값을 생성하는 다른 함수를 이용하여 서버 답변 값(ps)을 연산할 수 있다.
그리고, 서비스 제공자 서버(200)는 난수(t)를 이용하여 서버 답변 값(ps)에 대응하는 위임 값(c)을 연산한다. 여기서, 위임 값(c)은 난수(t)와 숨긴 상태로 공개하려는 서버 답변 값(ps)을 입력으로 생성되는 값이다. 이를 위해, 서비스 제공자 서버(200)는 아래의 [수학식 4]와 같이, 위임 기법(commitment scheme)을 이용하여 위임 값(c)을 연산할 수 있다.
[수학식 4]
c=Commit(t,ps)
본 발명의 실시 예는 이에 한정되지 않고, 난수(t)가 사용자 단말(100)에 공개될 때 위임 값(c)이 서버 답변 값(ps)에서 생성된 값임을 증명할 수 있는 다른 함수를 이용하여 연산할 수 있다.
그 다음, 서비스 제공자 서버(200)는 난수(b) 및 위임 값(c)을 사용자 단말(100)에 전달한다(S105 단계). 사용자 단말(100)은 난수(a, b)와 파일(F)의 파일 정보를 이용하여 사용자 답변 값(pc)을 생성한다(S106 단계).
이를 위해, 사용자 단말(100)은 상기한 [수학식 2]와 같이, 난수(a)와 난수(b)를 이용하여 난수(r), 즉 질의 값을 연산한다. 그리고, 사용자 단말(100)은 상기한 [수학식 3]과 같이, 난수(r)에 대해 자신이 보유한 파일(F)의 파일 정보를 이용하여 사용자 답변 값(pc)을 연산한다.
즉, 사용자 단말(100)과 서비스 제공자 서버(200) 각각은 서로 교환한 난수(a, b)를 이용하여 동일한 질의 값(r)을 연산하고, 자신이 소유한 파일(F)의 파일 정보를 이용하여 질의 값(r)에 대해 사용자 답변 값(pc) 및 서버 답변 값(ps)을 연산한다.
이 상태에서, 사용자 단말(100)은 연산된 사용자 답변 값(pc)을 서비스 제공자 서버(200)에 전달한다(S107 단계). 그러면, 서비스 제공자 서버(200)는 사용자 답변 값(pc)과 서버 답변 값(ps)이 동일한지 여부를 확인한다(S108 단계).
확인 결과, 사용자 답변 값(pc)과 서버 답변 값(ps)이 동일하지 않은 경우 서비스 제공자 서버(200)는 사용자 단말(100)이 해당 파일을 실제로 보유하지 않은 것으로 판단하고, 사용자 단말(100)에 파일(F)의 접근을 금지한다.
반면, 사용자 증명 값(pc)과 서버 증명 값(ps)이 동일한 경우 서비스 제공자 서버(200)는 사용자 단말(100)이 스토리지에 저장된 파일(F)을 실제로 소유하고 있는 것으로 판단하여 사용자 단말(100)에 접근 권한을 부여한다. 그리고, 사용자 단말(100)에 난수(t)를 공개한다(S109 단계).
그러면, 사용자 단말(100)은 난수(t)와 사용자 답변 값(pc)을 이용하여 서비스 제공자 서버(200)로부터 수신된 위임 값(c)을 검증한다(S110 단계). 예컨대, 사용자 단말(100)은 상기한 [수학식 4]에 따라 위임 값(c)을 별도로 연산하거나, 검증식을 이용하여 서비스 제공자 서버(200)로부터 수신된 위임 값(c)이 자신이 공개한 난수(a)를 이용하여 연산된 값인지를 검증할 수 있다.
이로 인해, 사용자가 서비스 제공자 서버(200)에 실제로 파일(F)이 존재하지 않거나, 문제가 발생한 상황을 모르고, 사용자 단말(100)에 저장된 파일(F)을 삭제하는 상황을 방지할 수 있다.
한편, 본 발명의 실시 예는 이에 한정되지 않고, 사용자 단말(100)과 서비스 제공자 서버(200)가 서로 역할을 바꾸어 소유권을 상호 검증할 수도 있다.
도 2는 본 발명의 다른 실시 예에 따른 데이터 소유권 검증 방법을 도시한 도면이다.
도 2를 참조하면, 본 발명의 다른 실시 예에 따른 데이터 소유권 검증 방법은 해쉬 함수를 기반으로 요소 알고리즘을 모두 구현한 점이 도 1과 다르다. 도 2에서는 도 1과 다른 단계만 다른 도면 부호로 도시하여 설명한다.
즉, S201 단계에서 사용자 단말(100)은 아래의 [수학식 5]과 같이, 색인 값(idx)을 연산할 수 있다.
[수학식 5]
idx= h(F)
그리고, S204 단계에서, 서비스 제공자 서버(200)는 아래의 [수학식 6]와 같이, 난수(r)를 연산할 수 있다.
[수학식 6]
r=h(a||b)
또한, 서비스 제공자 서버(200)는 아래의 [수학식 7]과 같이 서버 답변 값(ps)을 연산할 수 있다.
[수학식 7]
ps=h(r,F)
그리고, 서비스 제공자 서버(200)는 아래의 [수학식 8]과 같이, 위임 값(c)을 연산할 수 있다.
[수학식 8]
c=h(t,ps)
이와 마찬가지로, S206 단계에서, 사용자 단말(100)은 상기한 [수학식 6] 및 [수학식 7]과 같이, 난수(r) 및 사용자 답변 값(pc)을 연산할 수 있다.
도 3은 본 발명이 실시 예에 따른 사용자 단말(100) 및 서비스 제공자 서버(200)의 데이터 소유권 검증 장치를 각각 도시한 도면이다.
도 3을 참조하면, 사용자 단말(100)의 데이터 소유권 검증 장치는 프로세서(110), 송수신기(120) 및 메모리(130)를 포함한다. 프로세서(110)는 메모리(130)에 저장된 파일(F)을 서비스 제공자 서버(200)에 업로드 하고자 하는 요청이 발생한 경우 임의의 난수(a)를 선택하고, 파일(F)의 색인 값(idx)을 연산한다. 프로세서(110)는 연산된 난수(a) 및 색인 값(idx)을 포함하는 업로드 요청을 송수신기(120)를 통해 서비스 제공자 서버(200)에 전달한다.
그리고, 프로세서(110)는 서비스 제공자 서버(200)로부터 난수(b) 및 위임 값(c)을 수신 받아 메모리(130)에 위임 값(c)을 저장하고, 난수(a)와 난수(b)를 이용하여 난수(r)를 연산한다.
프로세서(110)는 난수(r) 및 파일(F)의 파일 정보를 이용하여 사용자 답변 값(pc)을 연산한다. 프로세서(110)는 연산된 사용자 답변 값(pc)을 송수신기(120)를 통해 서비스 제공자 서버(200)에 전달한다.
프로세서(110)는 서비스 제공자 서버(200)로부터 난수(t)를 수신 받고, 난수(t) 및 사용자 답변 값(pc)을 이용하여 위임 값(c)을 검증한다.
그리고, 서비스 제공자 서버(200)의 데이터 소유권 검증 장치는 프로세서(210), 송수신기(220) 및 메모리(230)를 포함한다. 프로세서(210)는 사용자 단말(100)로부터 난수(a) 및 색인 값(idx)을 수신 받고, 메모리(230)에 색인 값(idx)에 대응하는 파일(F)이 존재하는지 여부에 따라 사용자 단말(100)의 업로드 요청을 수락하거나, 사용자 단말(100)이 파일(F)을 소유하는지 여부를 검증한다.
구체적으로, 프로세서(210)는 메모리(230)에 해당 파일(F)이 존재하지 않는 경우 사용자 단말(100)의 업로드 요청을 수락한다. 프로세서(210)는 메모리(230)에 해당 파일(F)이 존재하는 경우 난수(b, t)를 임의로 선택한다. 프로세서(210)는 난수(a) 및 난수(b)를 이용하여 난수(r)를 연산하고, 난수(r) 및 파일(F)의 파일 정보를 이용하여 서버 답변 값(ps)을 연산한다.
프로세서(210)는 난수(t)를 이용하여 서버 답변 값(ps)에 대응하는 위임 값(c)을 연산하고, 송수신기(220)를 통해 사용자 단말(100)에 난수(b) 및 위임 값(c)을 전달한다. 프로세서(210)는 사용자 단말(100)로부터 사용자 답변 값(pc)을 수신 받고, 사용자 답변 값(pc)과 서버 답변 값(ps)이 일치하는지 여부에 따라 사용자 단말(100)이 파일(F)을 소유하는지 여부를 검증한다.
프로세서(210)는 사용자 답변 값(pc)과 서버 답변 값(ps)이 일치하는 경우 사용자 단말(100)에 파일(F)의 접근 권한을 부여하고, 자신이 선택한 난수(t)를 송수신기(220)를 통해 사용자 단말(100)에 전달한다. 프로세서(210)는 사용자 답변 값(pc)과 서버 답변 값(ps)이 일치하지 않는 경우 사용자 단말(100)의 파일(F)에 대한 접근을 금지한다.
상술한 바와 같이, 본 발명의 실시 예에 따른 데이터 소유권 검증 방법은 클라이언트 측 중복 처리 기술에서 사용자의 소유 여부만 검증하는 것이 아닌, 서버의 소유 여부도 검증할 수 있다.
이를 위해, 공동으로 질의(challenge) 값(r)을 생성하고, 이를 기반으로 동일한 소유권 증명용 정보, 즉 서버 답변 값(ps) 및 사용자 답변 값(pc)을 생성한다. 그리고, 사용자 단말(100)과 서비스 제공자 서버(200)가 동시에 답변 값을 공개하기 어려운 문제를 위임 기법을 적용하여 해결한다.
따라서, 본 발명의 실시 예는 상호 소유권 검증 절차를 수행할 때 사용자 단말(100)과 서비스 제공자 서버(200)가 서로 다른 소유권 증명용 정보를 생산하고, 이를 검증하는 과정을 수행할 필요가 없다. 이로 인해, 사용자 단말(100)과 서비스 제공자 서버(200)는 상호 소유권 검증에 필요한 증거 정보를 생성하기 위한 비용을 절감하고, 신뢰성 있는 상호 검증 절차를 수행할 수 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현되는 것은 아니며, 본 발명의 실시 예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시 예의 기재로부터 본 발명이 속하는 기술 분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100: 사용자 단말
200: 서비스 제공자 서버

Claims (16)

  1. 사용자 단말에서 서비스 제공자 서버의 데이터 소유권을 검증하는 방법에 있어서,
    상기 서비스 제공자 서버에 상기 사용자 단말에 저장된 제1 파일의 업로드 요청 시, 제1 난수와 상기 제1 난수를 이용해 연산된 상기 제1 파일의 색인 값을 상기 서비스 제공자 서버에 전송하는 단계;
    상기 서비스 제공자 서버에 의해 스토리지에서 상기 색인 값에 대응하는 제2 파일이 검색되면, 제2 난수 및 위임 값을 상기 서비스 제공자 서버로부터 수신하는 단계,
    상기 제1 난수 및 상기 제2 난수를 이용하여 질의 값을 연산하는 단계;
    상기 제1 파일의 파일 정보를 이용하여 상기 질의 값에 대한 사용자 답변 값을 연산하는 단계;
    상기 사용자 답변 값을 상기 서비스 제공자 서버에 전송하는 단계;
    상기 서비스 제공자 서버에 의해 상기 사용자 답변 값이 검증되면, 상기 위임 값의 연산에 사용된 제3 난수를 상기 서비스 제공자 서버로부터 수신하는 단계; 및
    상기 제3 난수를 이용해 상기 위임 값을 검증함으로써, 상기 제1 파일에 대한 상기 서비스 제공자 서버의 소유권을 검증하는 단계
    를 포함하는 데이터 소유권 검증 방법.
  2. 제1 항에 있어서,
    상기 위임 값은,
    상기 서비스 제공자 서버가, 상기 제1 난수 및 상기 제2 난수를 이용해 산출한 상기 질의 값에 대해 상기 제2 파일의 파일 정보를 이용하여 답변한 서버 답변 값에 대응하는 값인 데이터 소유권 검증 방법.
  3. 제2 항에 있어서,
    상기 위임 값은
    상기 서비스 제공자 서버에 의해 선택된 상기 제3 난수 및 상기 서버 답변 값을 이용하여 연산된 값인 데이터 소유권 검증 방법.
  4. 제3 항에 있어서,
    상기 제3 난수는
    상기 사용자 답변 값과 상기 서버 답변 값이 동일한 경우 상기 서비스 제공자 서버로부터 공개되는 값인 데이터 소유권 검증 방법.
  5. 제1 항에 있어서,
    상기 제1 난수는 상기 서비스 제공자 서버와 공유하는 값인 데이터 소유권 검증 방법.
  6. 제1 항에 있어서,
    상기 제2 난수는
    상기 서비스 제공자 서버에 상기 색인 값에 대응하는 파일이 존재하는 경우 상기 서비스 제공자 서버에 의해 선택된 값인 데이터 소유권 검증 방법.
  7. 서비스 제공자 서버에서 사용자 단말의 데이터 소유권을 검증하는 방법에 있어서,
    상기 사용자 단말로부터 제1 난수 및 상기 사용자 단말에 저장된 제1 파일의 색인 값을 수신 받는 단계;
    스토리지에 상기 색인 값에 대응하는 제2 파일이 존재하면, 상기 제1 난수 및 제2 난수를 이용하여 질의 값을 연산하는 단계;
    상기 제2 파일의 파일 정보를 이용하여 상기 질의 값에 대한 서버 답변 값을 연산하는 단계;
    상기 제2 난수를 상기 사용자 단말에 전송하는 단계;
    상기 사용자 단말로부터 상기 질의 값에 대한 사용자 답변 값을 수신 받는 단계; 및
    상기 서버 답변 값과 상기 사용자 답변 값에 따라 상기 사용자 단말의 상기 제2 파일의 소유권을 검증하는 단계를 포함하며,
    상기 사용자 답변 값은, 상기 사용자 단말이 상기 제1 난수, 상기 제2 난수 및 상기 제1 파일의 파일 정보를 이용해 생성한 값인, 데이터 소유권 검증 방법.
  8. 제7 항에 있어서,
    상기 소유권을 검증하는 단계는
    제3 난수를 이용하여 상기 서버 답변 값에 대응하는 위임 값을 연산하는 단계;
    상기 서버 답변 값과 상기 사용자 답변 값이 동일한지 여부를 판단하는 단계; 및
    상기 서버 답변 값과 상기 사용자 답변 값이 동일한 경우 상기 사용자 단말에 상기 제2 파일의 접근 권한을 부여하는 단계
    를 포함하는 데이터 소유권 검증 방법.
  9. 제8 항에 있어서,
    상기 제2 파일의 접근 권한을 부여하는 단계는
    상기 서버 답변 값과 상기 사용자 답변 값이 동일한 경우 상기 제3 난수를 상기 사용자 단말에 전송하는 단계를 포함하는 데이터 소유권 검증 방법.
  10. 제8 항에 있어서,
    상기 제2 난수를 상기 사용자 단말에 전송하는 단계는,
    상기 위임 값을 상기 사용자 단말에 전송하는 단계를 더 포함하는 데이터 소유권 검증 방법.
  11. 삭제
  12. 서비스 제공자 서버의 데이터 소유권을 검증하는 사용자 단말의 데이터 소유권 검증 장치에 있어서,
    제1 파일을 저장하는 메모리;
    상기 서비스 제공자 서버와 데이터를 송수신하는 송수신기; 및
    상기 서비스 제공자 서버에 상기 제1 파일의 업로드 요청 시, 제1 난수와 상기 제1 난수를 이용해 연산된 상기 제1 파일의 색인 값을 상기 서비스 제공자 서버에 전송하고, 상기 서비스 제공자 서버에 의해 스토리지에서 상기 색인 값에 대응하는 제2 파일이 검색되면, 제2 난수, 및 위임 값을 상기 서비스 제공자 서버로부터 수신하며, 상기 제1 난수 및 상기 제2 난수를 이용하여 질의 값을 연산하고, 상기 제1 파일의 파일 정보를 이용하여 상기 질의 값에 대한 사용자 답변 값을 연산하며, 상기 사용자 답변 값을 상기 서비스 제공자 서버에 전송하고, 상기 서비스 제공자 서버에 의해 상기 사용자 답변 값이 검증되면, 상기 위임 값의 연산에 사용된 제3 난수를 상기 서비스 제공자 서버로부터 수신하며, 상기 제3 난수를 이용해 상기 위임 값을 검증함으로써, 상기 제1 파일에 대한 상기 서비스 제공자 서버의 소유권을 검증하는 프로세서
    를 포함하는 데이터 소유권 검증 장치.
  13. 제12 항에 있어서,
    상기 서버 답변 값은 상기 질의 값에 대해 상기 서비스 제공자 서버에 상기 제2 파일의 파일 정보를 이용하여 연산된 값인 데이터 소유권 검증 장치.
  14. 제12 항에 있어서,
    상기 위임 값은 상기 제3 난수 및 상기 서버 답변 값을 이용하여 연산된 값인 데이터 소유권 검증 장치.
  15. 제12 항에 있어서,
    상기 제2 난수는
    상기 서비스 제공자 서버에 상기 색인 값에 대응하는 상기 제2 파일이 존재하는 경우 상기 서비스 제공자 서버에 의해 선택된 값인 데이터 소유권 검증 장치.
  16. 제12 항에 있어서,
    상기 제3 난수는
    상기 사용자 답변 값과 상기 서버 답변 값이 동일한 경우 상기 서비스 제공자 서버로부터 공개되는 값인 데이터 소유권 검증 장치.
KR1020160000615A 2016-01-04 2016-01-04 데이터 소유권 검증 방법 및 장치 KR102415626B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160000615A KR102415626B1 (ko) 2016-01-04 2016-01-04 데이터 소유권 검증 방법 및 장치
US15/179,375 US10515225B2 (en) 2016-01-04 2016-06-10 Method for mutual verifying of data ownership

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160000615A KR102415626B1 (ko) 2016-01-04 2016-01-04 데이터 소유권 검증 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20170081498A KR20170081498A (ko) 2017-07-12
KR102415626B1 true KR102415626B1 (ko) 2022-07-01

Family

ID=59227042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160000615A KR102415626B1 (ko) 2016-01-04 2016-01-04 데이터 소유권 검증 방법 및 장치

Country Status (2)

Country Link
US (1) US10515225B2 (ko)
KR (1) KR102415626B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102452250B1 (ko) 2019-03-18 2022-10-07 한국전자통신연구원 오프체인 데이터 저장 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090276621A1 (en) * 2008-04-30 2009-11-05 Panasonic Corporation Secret authentication system
US20100080391A1 (en) * 2007-10-30 2010-04-01 Shah Mehul A Auditing Data Integrity
CN103731261A (zh) * 2014-01-09 2014-04-16 西安电子科技大学 加密重复数据删除场景下的密钥分发方法
US20150012719A1 (en) * 2013-07-08 2015-01-08 Arm Limited Data store and method of allocating data to the data store

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100946986B1 (ko) 2007-12-13 2010-03-10 한국전자통신연구원 파일 저장 시스템 및 파일 저장 시스템에서의 중복 파일관리 방법
JP2009272737A (ja) * 2008-05-01 2009-11-19 Panasonic Corp 秘匿認証システム
US8862889B2 (en) * 2011-07-02 2014-10-14 Eastcliff LLC Protocol for controlling access to encryption keys
KR20130085491A (ko) 2011-12-09 2013-07-30 한국전자통신연구원 인덱스 검증과 추적이 가능한 다자간 환경에서의 검색 가능 암호 시스템 및 방법
US8528085B1 (en) 2011-12-28 2013-09-03 Emc Corporation Method and system for preventing de-duplication side-channel attacks in cloud storage systems
EP2916482A4 (en) * 2012-10-31 2016-05-25 Hitachi Ltd SYSTEM AND METHOD FOR VERIFYING STORAGE OF DATA

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100080391A1 (en) * 2007-10-30 2010-04-01 Shah Mehul A Auditing Data Integrity
US20090276621A1 (en) * 2008-04-30 2009-11-05 Panasonic Corporation Secret authentication system
US20150012719A1 (en) * 2013-07-08 2015-01-08 Arm Limited Data store and method of allocating data to the data store
CN103731261A (zh) * 2014-01-09 2014-04-16 西安电子科技大学 加密重复数据删除场景下的密钥分发方法

Also Published As

Publication number Publication date
US10515225B2 (en) 2019-12-24
US20170193245A1 (en) 2017-07-06
KR20170081498A (ko) 2017-07-12

Similar Documents

Publication Publication Date Title
CN104735164B (zh) 一种保存文件信息的方法和装置
US7454421B2 (en) Database access control method, database access controller, agent processing server, database access control program, and medium recording the program
CN107579958B (zh) 数据管理方法、装置及系统
CN105516110B (zh) 移动设备安全数据传送方法
CN109768987A (zh) 一种基于区块链的数据文件安全隐私存储和分享方法
US9485090B2 (en) Managed authentication on a distributed network
KR20160044022A (ko) 데이터에 대한 액세스 인에이블링
US20200252460A1 (en) Restricting access to a data storage system on a local network
CN109845183A (zh) 用于从客户端设备向云存储系统存储数据块的方法
CN114239046A (zh) 数据共享方法
JP2006236349A5 (ko)
JP2006236349A (ja) ピアツーピアネットワーク情報
KR20210064675A (ko) 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법
CN105183402B (zh) 数据存储方法
CN103532989A (zh) 文件数据的下载方法
Lin et al. Secure deduplication schemes for content delivery in mobile edge computing
CN114629713A (zh) 身份验证方法、装置及系统
CN105518696B (zh) 对数据存储器执行操作
KR102415626B1 (ko) 데이터 소유권 검증 방법 및 장치
Yan et al. Secure and efficient big data deduplication in fog computing
JP3215882U (ja) クラウドストレージベースのファイルアクセス制御システム
US11153282B2 (en) Controlling access to content in a network
JP4558387B2 (ja) 利用者認証システムおよび方法
Bharat et al. A Secured and Authorized Data Deduplication in Hybrid Cloud with Public Auditing
KR102496829B1 (ko) 블록체인 기반 id 관리 장치 및 방법

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