KR101586439B1 - User data integrity verification method and apparatus capable of guaranteeing privacy - Google Patents

User data integrity verification method and apparatus capable of guaranteeing privacy Download PDF

Info

Publication number
KR101586439B1
KR101586439B1 KR1020140114172A KR20140114172A KR101586439B1 KR 101586439 B1 KR101586439 B1 KR 101586439B1 KR 1020140114172 A KR1020140114172 A KR 1020140114172A KR 20140114172 A KR20140114172 A KR 20140114172A KR 101586439 B1 KR101586439 B1 KR 101586439B1
Authority
KR
South Korea
Prior art keywords
terminal
value
certificate
data
storage server
Prior art date
Application number
KR1020140114172A
Other languages
Korean (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 KR1020140114172A priority Critical patent/KR101586439B1/en
Application granted granted Critical
Publication of KR101586439B1 publication Critical patent/KR101586439B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]

Abstract

Disclosed is a user data integrity verification method for ensuring privacy. The method of the present invention includes: a step of generating parameters required for user data integrity verification ensured with privacy; a data outsourcing step of having the first terminal encrypt a data file to be uploaded based on the parameters generated in the parameter generation step, and a cryptologically safe hash function, and upload the data file to a data storage server; a step of having the data storage server test check the validity of the uploaded data based on the parameters generated in the parameter generation step; a step of having the second terminal generate a challenge value with respect to a portion of the uploaded data file; a step of having the data storage server receive the challenge value from the second terminal, and generate a proof value based on the parameters generated in the parameter generation step, and the challenge value; and a step of having the second terminal check the validity of the proof value by using the proof value and public keys.

Description

프라이버시를 보장하는 사용자 데이터의 무결성 검증 방법 및 그 장치{USER DATA INTEGRITY VERIFICATION METHOD AND APPARATUS CAPABLE OF GUARANTEEING PRIVACY}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a method for verifying integrity of user data,

본 발명은 프라이버시를 보장하는 사용자 데이터의 무결성 검증 방법 및 그 장치에 관한 것으로서, 특히, 클라우드 환경에서 데이터 소유주가 자신의 데이터를 서버에 업로드한 후, 대리인을 지정하여 서버나 다른 공격자의 악의적인 행동으로부터 자신의 데이터가 훼손되지 않고 저장되어 있는지를 확인하는 프라이버시를 보장하는 사용자 데이터의 무결성 검증 방법 및 그 장치에 관한 것이다. The present invention relates to a method and an apparatus for verifying integrity of user data ensuring privacy, and more particularly, to a system and method for verifying integrity of user data by uploading their data to a server in a cloud environment, The present invention relates to a method for verifying integrity of user data and an apparatus for verifying integrity of user data to confirm whether or not its own data is stored without being damaged.

최근 사용자가 네트워크나 컴퓨터를 의식하지 않고 장소에 상관없이 자유롭게 네트워크에 접속할 수 있는 정보 통신 환경을 일컫는 유비쿼터스(Ubiquitous) 환경이 일반화되어 감에 따라 원격 컴퓨팅(remote computing)도 함께 확장되는 추세에 있으며, 이러한 원격 컴퓨팅 중 특히 클라우드 컴퓨팅(Cloud computing)이 미래의 컴퓨팅 환경을 주도할 새로운 패러다임으로 부각되고 있다.Recently, as the ubiquitous environment, which refers to an information communication environment where a user can freely access a network regardless of a network or a computer, is becoming common, remote computing is also being expanded. Cloud computing is emerging as a new paradigm that will lead the future computing environment.

클라우드 컴퓨팅이란 정보가 인터넷 상의 서버에 영구적으로 저장되고, IT 기기 등(예컨대, 데스크 데스크톱, 태블릿컴퓨터, 노트북, 넷북, 스마트폰 등)과 같은 클라이언트에는 일시적으로 보관되는 컴퓨터 환경을 뜻한다. 즉 이용자의 모든 정보를 인터넷 상의 서버에 저장하고, 이 정보를 각종 IT 기기를 통하여 언제 어디서든 이용할 수 있도록 한다는 개념이다.Cloud computing is a computer environment in which information is permanently stored on a server on the Internet and is temporarily stored on clients such as IT devices (e.g., desk desktops, tablet computers, notebooks, netbooks, smart phones, etc.). In other words, all the information of the user is stored on a server on the Internet, and this information can be used anytime and anywhere through various IT devices.

다시 말해, 클라우드 컴퓨팅 서비스는 구름(cloud)과 같이 무형의 형태로 존재하는 하드웨어나 소프트웨어 등의 컴퓨팅 자원을 자신이 필요한 만큼 빌려 쓰고 이에 대한 사용요금을 지급하는 방식의 컴퓨팅 서비스로, 서로 다른 물리적인 위치에 존재하는 컴퓨팅 자원을 가상화 기술로 통합해 제공하는 기술을 말한다. In other words, a cloud computing service is a computing service in which computing resources such as hardware and software existing in an intangible form such as a cloud are borrowed and paid for as much as they need, Refers to a technology that integrates computing resources existing in a location with virtualization technology.

클라우드 컴퓨팅을 도입하면 기업 또는 개인은 컴퓨터 시스템을 유지, 보수 및 관리하기 위하여 들어가는 비용과 시간을 줄일 수 있으며, 서버의 구매, 설치, 업데이트 및 소프트웨어 구매를 위한 엄청난 비용과 시간 및 인력을 줄일 수 있다. 또한, 에너지 절감에도 기여할 수 있다. 한편, PC에 자료를 보관할 경우 하드디스크 장애 등으로 인하여 자료가 손실될 수도 있지만 클라우드 컴퓨팅 환경에서는 외부 서버에 자료들이 저장되기 때문에 안전하게 자료를 보관할 수 있고, 저장 공간의 제약도 극복할 수 있으며, 언제 어디서든 자신이 작업한 문서 등을 열람 및 수정할 수 있다. With cloud computing, businesses or individuals can reduce the cost and time required to maintain, maintain, and manage computer systems and reduce the cost, time, and manpower required to purchase, install, update, and purchase software on servers . It can also contribute to energy savings. On the other hand, if data is stored on a PC, data may be lost due to a hard disk failure or the like. However, since data is stored in an external server in a cloud computing environment, it is possible to securely store data, You can view and edit documents you have worked on anywhere.

반면, 서버가 해킹을 당할 경우 개인정보가 유출될 수 있고, 서버 장애가 발생하면 자료 이용이 불가능하다는 단점이 있다. 따라서 클라우드 컴퓨팅이 미래의 컴퓨팅 환경에서의 지배적인 위치를 확보하기 위해 선결되어야 할 사항은 바로 사용자 데이터에 대한 무결성(integrity)이 보장되어야 한다. On the other hand, if the server is hacked, personal information can be leaked, and if the server fails, the data can not be used. Therefore, in order for cloud computing to have a dominant position in the future computing environment, integrity of user data must be ensured.

따라서 최근 클라우드 서버에 아웃소싱(outsourcing)한 데이터들의 무결성을 검사하는 기술들에 대한 연구가 활발하게 진행되고 있으나, 이러한 연구들은 대부분 아웃소싱한 데이터들에 대한 무결성 감사를 TPA(Third Party Auditor)라는 감사자가 아무런 비밀값 없이 누구나 수행할 수 있다. 그러므로 종래에는 데이터에 대한 프라이버시를 보장받을 수 없는 문제가 있었다. 이를 보완하기 위해 하기의 선행기술문헌 1에서는 데이터 소유주가 자신의 권한을 위임한 대리 감사자(Proxy auditor)만이 데이터 감사를 할 수 있는 기법을 제안하고 있다. 하지만 선행기술문헌 1에서 제안한 방법은 선행기술문선 2에서 제시한 공격법에 의해 안전성 문제가 발생한다. Therefore, in recent years, studies on the integrity checking of data outsourcing to cloud servers have been actively conducted, but most of these studies have been conducted by an auditor, TPA (Third Party Auditor) Anyone can do it without any secret value. Therefore, conventionally, there has been a problem in that privacy of data can not be guaranteed. In order to compensate for this, in the following Prior Art Document 1, only a proxy auditor who has delegated authority of the data owner proposes a technique for performing data audit. However, the method proposed in the prior art document 1 causes a safety problem by the attack method shown in the prior art paragraph 2.

1. H. Wang, Proxy Provable Data Possession in Public Clouds, IEEE Transactions on Service Computing, 6(4), (2013), pp. 551559.1. H. Wang, Proxy Provable Data Possession in Public Clouds, IEEE Transactions on Service Computing, 6 (4), (2013), pp. 551559. 2. Y. Yu, L. Niu, G. Yang, Y. Mu, W. Susil, On the security of auditing mechanisms for secure cloud storage, Future Generation Computer Systems, (2014), pp. 127-132.2. Y. Yu, L. Niu, G. Yang, Y. Mu, W. Susil, On the security of auditing mechanisms for secure cloud storage, Future Generation Computer Systems, (2014), pp. 127-132.

따라서 본 발명은 클라우드 컴퓨팅 환경에서 다양한 공격에 대하여 안전하고, 지정된 감사자만이 감사를 수행할 수 있도록 함으로써 프라이버시를 보장받을 수 있는 사용자 데이터 무결성 검증 방법 및 장치를 제공하고자 한다.Accordingly, the present invention provides a user data integrity verification method and apparatus that can secure privacy by allowing only a designated auditor to perform an audit by being secure against various attacks in a cloud computing environment.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 사용자 데이터의 무결성 검증 방법은 데이터 파일을 생성하는 제1 단말, 상기 데이터 파일을 저장하는 인터넷 상의 데이터 저장 서버, 상기 데이터 저장 서버에 저장된 데이터 파일의 무결성을 감사하는 제2 단말 간의 상호 관계에 의거하여 사용자 데이터의 무결성을 검증하는 사용자 데이터 무결성 검증 방법에 있어서, 프라이버시가 보장된 사용자 데이터 무결성 검증에 필요한 파라미터들을 생성하는 단계; 상기 제1 단말이 상기 파라미터 생성 단계에서 생성된 파라미터 및 암호학적으로 안전한 해쉬 함수에 기초하여 업로드할 데이터 파일을 암호화한 후 데이터 저장 서버에 업로드 하는 데이터 아웃소싱 단계; 상기 데이터 저장 서버가 상기 파라미터 생성 단계에서 생성된 파라미터에 기초하여 업로드된 데이터의 정당성을 검증하는 단계; 상기 제2 단말이 상기 업로드된 데이터 파일 일부에 대한 챌린지(challenge)값을 생성하는 단계; 상기 데이터 저장 서버가 상기 제2 단말로부터 상기 챌린지 값을 수신하고, 상기 파라미터 생성 단계에서 생성된 파라미터 및 상기 챌린지 값에 기초하여 증명값을 생성하는 단계; 및 상기 제2 단말이 상기 증명값(proof)과 공개키들을 이용하여 상기 증명값(proof)의 정당성을 검증하는 단계를 포함한다. According to an aspect of the present invention, there is provided a method for verifying integrity of user data, the method comprising: a first terminal for generating a data file; a data storage server on the Internet for storing the data file; The method comprising the steps of: generating parameters necessary for verifying user data integrity that are secured for privacy; and verifying integrity of the user data based on a correlation between the first terminal and the second terminal. A data outsourcing step in which the first terminal encrypts a data file to be uploaded on the basis of the parameters generated in the parameter generation step and the cryptographically secure hash function and uploads the encrypted data file to the data storage server; The data storage server verifying the validity of the uploaded data based on the parameters generated in the parameter generation step; The second terminal generating a challenge value for a portion of the uploaded data file; The data storage server receiving the challenge value from the second terminal, generating a proof value based on the parameter generated in the parameter generation step and the challenge value; And verifying the validity of the proof value using the proof and the public keys by the second terminal.

바람직하게는, 상기 파라미터 생성 단계는 상기 제1 단말, 상기 데이터 저장 서버, 상기 제2 단말이 각각 자신의 개인키와 공개키를 생성하는 단계; 상기 제1 단말이 상기 제2 단말에 대한 보증서를 작성한 후 상기 제1 단말의 개인키로 서명하는 단계; 상기 보증서 및 서명 쌍을 상기 데이터 저장서버 및 상기 제2 단말에게 전송하는 단계; 및 상기 제1 단말이 공개파라미터를 생성하는 단계를 포함할 수 있다. Preferably, the parameter generation step includes: generating the private key and the public key of the first terminal, the data storage server, and the second terminal, respectively; Signing the private key of the first terminal after the first terminal creates a certificate for the second terminal; Transmitting the certificate and signature pair to the data storage server and the second terminal; And generating the public parameters by the first terminal.

바람직하게는, 상기 파라미터 생성 단계는 상기 제1 단말로부터 상기 보증서 및 서명 쌍을 수신한 상기 데이터 저장 서버 및 상기 제2 단말 각각이 해당 서명 값이 상기 보증서에 대해 정당한지를 확인하는 단계; 및 상기 확인 결과 상기 서명 값이 상기 보증서에 대해 정당하지 않은 경우 상기 제1 단말에게 상기 보증서 및 서명 쌍을 재요청하는 단계를 더 포함할 수 있다. Preferably, the parameter generation step comprises: confirming whether the data storage server and the second terminal each receiving the certificate and the signature pair from the first terminal are legitimate with respect to the certificate; And re-requesting the first terminal for the certificate and signature pair if the signature value is not valid for the certificate.

바람직하게는, 상기 업로드 데이터 정당성 검증 단계는 상기 파라미터 생성 단계에서 생성된 상기 데이터 저장 서버의 개인키(y), 상기 제1 단말 및 상기 제2 단말 각각의 공개키(X, Z) 및 상기 제1 단말이 생성한 공개파라미터(u)에 기초하여 상기 업로드 데이터의 정당성을 검증하되, 하기의 수학식1 및 수학식2에 의거하여 제1 및 제2 변수를 생성하고, 하기의 수학식3이 성립하는지를 확인할 수 있다. Preferably, the upload data validity verification step includes a step of verifying the uploaded data, the step of verifying the uploaded data comprises: generating a private key (y) of the data storage server, a public key (X, Z) of each of the first terminal and the second terminal, 1, the first and second variables are generated based on the following equations (1) and (2), and the following equation (3) is generated: < EMI ID = .

(수학식1)(1)

Figure 112014082815687-pat00001
Figure 112014082815687-pat00001

이 때, X는 상기 제1 단말의 공개키, Z는 상기 제2 단말의 공개키, y는 상기 데이터 저장서버의 개인키, w는 상기 제1 단말에서 생성한 보증서이다.
In this case, X is a public key of the first terminal, Z is a public key of the second terminal, y is a private key of the data storage server, and w is a certificate generated by the first terminal.

(수학식2)(2)

Figure 112014082815687-pat00002
Figure 112014082815687-pat00002

이 때, t는 (수학식 1)에 의해 생성된 제1 변수이다.
Here, t is the first variable generated by (Equation 1).

(수학식3)(3)

Figure 112014082815687-pat00003
Figure 112014082815687-pat00003

이 때,

Figure 112014082815687-pat00004
은 데이터 업로드시 전송된 태그, u는 상기 제1 단말이 생성한 공개 파라미터,
Figure 112014082815687-pat00005
는 i번째 데이터 블록, X는 상기 제1 단말의 공개키이다. At this time,
Figure 112014082815687-pat00004
Is a tag transmitted when data is uploaded, u is a public parameter generated by the first terminal,
Figure 112014082815687-pat00005
Is an i-th data block, and X is a public key of the first terminal.

바람직하게는, 상기 챌린지값 생성 단계는 상기 업로드된 데이터 중 선택된 블록의 개수(c)와 제1 및 제2 난수(k1, k2)를 포함하는 챌린지값을 생성할 수 있다. Advantageously, the generating of the challenge value may generate a challenge value including the number of selected blocks (c) of the uploaded data and the first and second random numbers (k 1 , k 2 ).

바람직하게는, 상기 증명값 생성 단계는 정수 집합의 원소인 제3 난수(r)를 생성하고, 상기 제3 난수(r)에 기초하여 제1 증명값(R)을 생성하는 단계; 제1 및 제2 난수(k1, k2)를 각각 의사난수함수(π) 및 의사난수치환(f)에 적용하여 제3 변수(aj)를 생성하고, 상기 제3 변수(aj) 및 메시지 블록 개수(mi)에 기초하여 제2 증명값(T)을 생성하는 단계; 상기 제3 변수(aj), 메시지 블록 개수(mi) 및 상기 제1 증명값(R)에 기초하여 제3 증명값(m)을 생성하는 단계; 상기 데이터 저장 서버의 개인키(y)와, 상기 제1 및 제2 단말의 공개키(X,Z)에 기초하여 제4 증명값(Sm)을 생성하는 단계; 및 상기 제1 내지 제4 증명값을 상기 챌린지값에 대한 증명값(proof) 값으로 결정하는 단계를 포함할 수 있다. Preferably, the proving value generating step may include generating a third random number r, which is an element of the set of integers, and generating a first proving value R based on the third random number r; First and second random numbers (k 1, k 2) for each pseudo-random number function (π), and a pseudo-random number a substituted (f) a third variable (a j) the third variable (a j), is generated by applying the And generating a second proof value (T) based on the number of message blocks (m i ); Generating a third proof value (m) based on the third variable (a j ), the number of message blocks (m i ) and the first proof value (R); Generating a fourth authentication value (S m ) based on the private key (y) of the data storage server and the public keys (X, Z) of the first and second terminals; And determining the first to fourth proof values as a proof value for the challenge value.

바람직하게는, 상기 증명값 생성 단계는 상기 제2 단말로부터 상기 챌린지 값 수신시 상기 제2 단말의 보증서 및 서명 쌍을 함께 수신하는 단계; 상기 제2 단말로부터 수신한 보증서 및 서명 쌍의 정당성을 검증하는 단계; 및 상기 제2 단말로부터 수신한 보증서 및 서명쌍이 정당한 경우 상기 제1 단말로부터 수신하여 기 저장된 보증서와 상기 제2 단말로부터 수신한 보증서를 비교하는 단계를 더 포함하고, 상기 제1 단말로부터 수신하여 기 저장된 보증서와 상기 제2 단말로부터 수신한 보증서가 같지 않은 경우 증명값 생성을 중단할 수 있다. Advantageously, the step of generating the certification value includes receiving the certificate and signature pair of the second terminal together with the challenge value from the second terminal; Verifying the legitimacy of a certificate and a signature pair received from the second terminal; And comparing the guarantee certificate received from the first terminal and the certificate received from the second terminal when the certificate and the signature pair received from the second terminal are legitimate, If the stored certificate and the certificate received from the second terminal are not the same, generation of the certificate value can be stopped.

바람직하게는, 상기 증명값 검증 단계는 상기 데이터 저장 서버의 비밀키(y) 및 상기 제1 및 제2 단말의 공개키(X, Z)에 기초하여 제3 증명값의 정당성을 판단하는 단계; 상기 제3 증명값이 정당한 경우 상기 제2 단말의 개인키를 이용하여 증명값 검증을 위한 제4 변수(t)를 생성하는 단계; 및 하기의 수학식4에 의거하여 상기 증명값을 검증하는 단계를 포함할 수 있다.Preferably, the verifying step verifies the validity of the third proof value based on the secret key (y) of the data storage server and the public key (X, Z) of the first and second terminals. Generating a fourth variable (t) for proof value verification using the private key of the second terminal if the third proof value is legitimate; And verifying the proof value based on the following equation (4).

(수학식 4)(4)

Figure 112014082815687-pat00006
Figure 112014082815687-pat00006

한편, 상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 사용자 데이터의 무결성 검증 장치는 데이터 파일을 생성하는 제1 단말 및 데이터 파일을 저장하는 데이터 저장 서버와의 인터페이스를 제공하는 통신 인터페이스부; 프라이버시가 보장된 사용자 데이터 무결성 검증에 필요한 개인키 및 공개키(z, Z)를 설정하는 설정부; 상기 통신 인터페이스부를 통해 상기 제1 단말에서 생성한 보증서 및 서명 쌍을 전달받아 저장하는 제어부; 상기 데이터 저장 서버에 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일에 일부에 대한 챌린지 값을 생성하여 상기 제어부에 저장된 보증서 및 서명 쌍과 함께 상기 데이터 저장 서버로 전송하는 챌린지값 생성부; 및 상기 데이터 저장 서버에서 생성된 증명값을 제공받아 그 증명값의 정당성을 검증하는 검증부를 포함한다. According to another aspect of the present invention, there is provided an apparatus for verifying user data integrity, comprising: a communication interface unit for providing an interface between a first terminal for generating a data file and a data storage server for storing a data file; A setting unit configured to set a private key and a public key (z, Z) necessary for verifying user data integrity guaranteed with privacy; A control unit for receiving and storing the certificate and signature pair generated by the first terminal through the communication interface unit; A challenge value generation unit for generating a challenge value for a part of the data file to confirm integrity of the data file uploaded to the data storage server and transmitting the generated challenge value to the data storage server together with the certificate and signature pair stored in the control unit; And a verification unit that receives the verification value generated by the data storage server and verifies the validity of the verification value.

바람직하게는, 상기 제어부는 상기 제1 단말로부터 수신한 보증서 및 서명 쌍을 검증하여 해당 서명 값이 상기 보증서에 대해 정당한지를 확인하고 상기 서명 값이 상기 보증서에 대해 정당하지 않은 경우 상기 제1 단말에게 상기 보증서 및 서명 쌍을 재요청할 수 있다.Preferably, the control unit verifies the certificate and signature pair received from the first terminal to check whether the corresponding signature value is valid for the certificate, and if the signature value is not valid for the certificate, And may re-request the certificate and signature pair.

바람직하게는, 상기 검증부는 상기 설정부에서 설정한 개인키(z)를 이용하여 증명값 검증을 위한 변수(t)를 생성하고, 상기의 수학식4에 의거하여 상기 증명값을 검증할 수 있다. Preferably, the verifying unit may generate a variable (t) for verifying the proof value using the private key (z) set by the setting unit, and verify the proof value based on Equation (4) .

바람직하게는, 상기 검증부는 상기 데이터 저장 서버의 비밀키(y) 및 상기 제1 단말의 공개키(X)와, 상기 설정부에서 설정한 공개키(Z)에 기초하여 상기 증명값에 대한 1차 검증을 실시하고, 상기 1차 검증 결과가 정당하지 않은 경우 증명값 검증을 중단할 수 있다. Preferably, the verifying unit verifies the public key (X) of the first terminal and the secret key (y) of the data storage server based on the public key (Z) And the verification of the verification value can be discontinued if the primary verification result is not justified.

본 발명은 겹선형 사상(bilinear maps) 기법과 BLS 짧은 서명(BLS short signature) 기법을 적용하여 사용자 데이터의 무결성을 검증하되, 지정된 감사자 만이 감사를 수행할 수 있도록 함으로써 다양한 공격에 대하여 데이터의 안전성을 보장하면서도, 데이터 프라이버시를 보장받을 수 있는 효과가 있다. The present invention verifies the integrity of user data by applying a bilinear mapping technique and a BLS short signature technique. However, only a designated auditor can perform auditing, The data privacy can be guaranteed.

도 1은 본 발명의 사용자 데이터 무결성 검증 방법을 구현하기 위한 시스템 구성도를 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 방법에 대한 시스템간 처리 절차도이다.
도 3은 도 2에 예시된 암호화 과정에 대한 개략적인 처리 흐름도이다.
도 4는 도 2에 예시된 챌린지값 생성 과정에 대한 개략적인 처리 흐름도이다.
도 5는 도 2에 예시된 증명값 생성 과정에 대한 개략적인 처리 흐름도이다.
도 6은 도 2에 예시된 증명값 검증 과정에 대한 개략적인 처리 흐름도이다.
도 7은 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 장치에 대한 개략적인 블록도이다.
1 is a block diagram of a system for implementing a user data integrity verification method of the present invention.
2 is a flowchart illustrating an inter-system processing procedure for a user data integrity verification method according to an embodiment of the present invention.
3 is a schematic process flow chart for the encryption process illustrated in FIG.
FIG. 4 is a schematic flowchart of the process of generating the challenge value illustrated in FIG. 2. FIG.
FIG. 5 is a schematic processing flowchart of the procedure for generating a proof value illustrated in FIG. 2. FIG.
FIG. 6 is a schematic processing flowchart of the procedure for verifying a proof value illustrated in FIG. 2. FIG.
7 is a schematic block diagram of a user data integrity verification apparatus according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings. Throughout the specification and claims, where a section includes a constituent, it does not exclude other elements unless specifically stated otherwise, but may include other elements.

도 1은 본 발명의 사용자 데이터 무결성 검증 방법을 구현하기 위한 시스템 구성도를 도시한 도면이다. 도 1을 참조하면 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 방법은 통신망으로 연결된 데이터 소유주(100), 데이터 저장 서버(200) 및 데이터 소유주가 지정한 대리 감사자(300)가 서로 상호 작용을 함으로써 구현할 수 있다. 즉, 데이터 소유주(100)가 자신의 데이터를 데이터 저장 서버(200)에 업로드(S10)하면, 데이터 저장서버(200)는 그 데이터 파일을 저장(S20)한다. 한편, 데이터 소유주(100)가 대리 감사자(300)에 대하여 생성한 보증서를 대리 감사자(300)와 데이터 저장서버(200)가 공유(S30)하고, 데이터 소유주(100)의 감사 요청(S40)에 응답하여 대리 감사자(300)가 데이터 저장서버(200)에 저장된 데이터 파일에 대한 데이터 무결성 검증(S50)을 실시한다.1 is a block diagram of a system for implementing a user data integrity verification method of the present invention. Referring to FIG. 1, a method for verifying user data integrity according to an exemplary embodiment of the present invention includes a data owner 100, a data storage server 200, and a proxy auditor 300 designated by a data owner, . That is, when the data owner 100 uploads its data to the data storage server 200 (S10), the data storage server 200 stores the data file (S20). On the other hand, the assurance certificate generated by the data owner 100 to the substitute auditor 300 is shared by the substitute auditor 300 and the data storage server 200 (S30), and the audit request S40 The proxy auditor 300 performs data integrity verification (S50) on the data file stored in the data storage server 200 in response to the data verification request.

이를 위해, 각 장치들은 서로 약속된 프로토콜에 의해 상호 작용을 하여야 하며, 본 발명은 의사난수 함수(pesudo-random function) 및 의사난수 치환(pesudo-random permutation)과, 겹선형 사상(bilinear maps), BLS 짧은 서명(BLS short signature) 알고리즘이 적용되었다. To this end, each device must interact with each other according to a promised protocol, and the present invention is applicable to pseudo-random function, pesudo-random permutation, bilinear maps, The BLS short signature algorithm was applied.

도 2는 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 방법에 대한 시스템간 처리 절차도이다. 도 2의 예에서는 데이터 소유주의 단말을 제1 단말(100A), 데이터 소유주가 지정한 대리 감사자의 단말을 제2 단말(300A)이라 칭하고 데이터 저장 서버(200)와의 상호 처리 절차의 예를 설명하고 있다. 이 때, G1 그리고 G2를 위수 p로 가지는 곱셈 순환군이라 하고, e:G1×G1→G2를 겹선형 사상이라 한다. 또한 g를 G1의 생성자, H(·):G2×{0,1}*→Zq *를 두 개의 입력을 가지는 암호학적으로 안전한 해시(hash) 함수, h(·):Zq *→G1 *를 또 다른 해시함수라고 하고, f:Zq *×{1,2,…,n}→Zq *, Ω: Zq *×{1,2,…,n}→Zq *를 의사난수 함수, π: Zq *×{1,2,…,n}→{1,2,…,n}를 의사난수 치환이라고 한다. 2 is a flowchart illustrating an inter-system processing procedure for a user data integrity verification method according to an embodiment of the present invention. In the example of FIG. 2, the terminal of the data owner is referred to as the first terminal 100A, the terminal of the proxy auditor designated by the data owner is referred to as the second terminal 300A, and an example of the mutual processing procedure with the data storage server 200 is described . In this case, G 1 and G 2 are called multiplicative cyclic groups with a power p, and e: G 1 × G 1 → G 2 is called a folded linear mapping. In addition, the constructor, H of the G 1 g (·): G 2 × {0,1} * → Z q * two cryptographically secure hash having an input (hash) function, h (·): Z q * → G 1 * is another hash function, and f: Z q * × {1,2, ... , n}? Z q * ,?: Z q * x {1,2, ... , n} → Z q * is a pseudo-random function, π: Z q * × {1,2, ... , n} → {1,2, ... , n} is called pseudo-random number substitution.

먼저, 단계 S105 내지 S120에서, 제1 단말(100A), 데이터 저장서버(200) 및 제2 단말(300A)은 각각 프라이버시가 보장된 사용자 데이터 무결성 검증에 필요한 파라미터들을 생성한다. 즉, 단계 S105에서는, 제1 단말(100A)이 개인키 및 공개키(x,X)를 설정한다. 이를 위해, 제1 단말(100A)은 난수 x←Zq *를 생성하고, X← gx 를 계산한다. 단계 S110에서는, 데이터 저장서버(200)가 이와 동일한 방법으로 개인키 및 공개키(y,Y)를 설정하고, 단계 S115에서는, 제2 단말(300A)가 이와 동일한 방법으로 개인키 및 공개키(z,Z)를 설정한다. 한편, 단계 S120에서는, 제1 단말(100A)이 제2 단말(300A)에 대한 보증서(w)를 작성한 후 제1 단말의 개인키로 서명(Sign(w))한다. 이 때, Sign은 안전한 전자 서명기법으로서, 공지된 다양한 서명 알고리즘을 적용할 수 있다. 그리고, 단계 S125 및 단계 S130에서, 제1 단말(100A)은 상기 보증서 및 서명 쌍(w, Sign(w))을 데이터 저장서버(200) 및 제2 단말(300A)에게 전송한다. First, in steps S105 to S120, the first terminal 100A, the data storage server 200, and the second terminal 300A generate parameters necessary for privacy-guaranteed user data integrity verification, respectively. That is, in step S105, the first terminal 100A sets the private key and public key (x, X). To this end, the first terminal (100A) generates a random number x ← Z * q, and calculating the X ← g x. In step S110, the data storage server 200 sets the private key and the public key y, Y in the same manner. In step S115, the second terminal 300A transmits the private key and the public key z, Z). Meanwhile, in step S120, the first terminal 100A creates a certificate w for the second terminal 300A, and then signs (Signs (w)) with the private key of the first terminal. At this time, Sign is a secure digital signature technique, and various publicly known signature algorithms can be applied. Then, in steps S125 and S130, the first terminal 100A transmits the certificate and signature pair (w, Sign (w)) to the data storage server 200 and the second terminal 300A.

한편, 단계 S135에서는, 데이터 저장 서버(200)가 제1 단말(100A)로부터 수신한 보증서 및 서명 쌍(w, Sign(w))에 대하여 정당한지를 확인하는 보증서 검증 과정을 수행하고, 단계 S140에서는, 제2 단말(300A)이 제1 단말(100A)로부터 수신한 보증서 및 서명 쌍(w, Sign(w))에 대하여 정당한지를 확인하는 보증서 검증 과정을 수행한다. On the other hand, in step S135, the data storage server 200 performs a certificate verification process to confirm whether the certificate and the signature pair (w, Sign (w)) received from the first terminal 100A are valid. In step S140 (W, Sign (w)) received from the first terminal 100A by the second terminal 300A, and verifies the validity of the certificate and signature pair (w, Sign (w)) received from the first terminal 100A.

상기 확인 결과 상기 서명 값이 해당 보증서에 대해 정당하지 않은 경우, 상기 데이터 저장서버(200) 및 제2 단말(300A)은 제1 단말(100A)에게 상기 보증서 및 서명 쌍을 재요청할 수 있다(미도시). 한편, 제1 단말(100A)은 공개파라미터(u)를 생성한다(미도시).If it is determined that the signature value is not valid for the certificate, the data storage server 200 and the second terminal 300A may request the first terminal 100A to renew the certificate and signature pair city). Meanwhile, the first terminal 100A generates the public parameter u (not shown).

이와 같이 프라이버시가 보장된 사용자 데이터의 무결성 검증에 필요한 파라미터들을 생성한 후, 단계 S145에서, 제1 단말(100A)은 상기 생성된 파라미터 및 암호학적으로 안전한 해쉬 함수에 기초하여 업로드할 데이터 파일을 암호화한다. 이 때, 암호화를 위한 처리 과정의 예가 도 3에 예시되어 있다. After generating the parameters necessary for integrity verification of the user data with privacy guaranteed, the first terminal 100A encrypts the data file to be uploaded based on the generated parameter and the cryptographically secure hash function in step S145 do. At this time, an example of a processing procedure for encryption is illustrated in FIG.

도 3은 도 2에 예시된 암호화 과정(S145)에 대한 개략적인 처리 흐름도로서, 도 3을 참조하면, 먼저, 단계 S146에서, 제1 단말(100A)은 업로드할 데이터 파일(

Figure 112014082815687-pat00007
)을 소정개로 분할한다. 그리고, 단계 S147에서는, 하기의 수학식1에 의해 태그(
Figure 112014082815687-pat00008
)를 생성한다.FIG. 3 is a schematic flowchart of the encryption process (S145) illustrated in FIG. 2. Referring to FIG. 3, first, in step S146, the first terminal 100A transmits a data file
Figure 112014082815687-pat00007
Is divided into a predetermined number. Then, in step S147, the tag (
Figure 112014082815687-pat00008
).

Figure 112014082815687-pat00009
Figure 112014082815687-pat00009

Figure 112014082815687-pat00010
Figure 112014082815687-pat00010

이 때, Y는 데이터 저장서버(200)의 공개키, Z는 제2 단말(300A)의 공개키, x는 제1 단말(100A)의 개인키, w는 보증서, u는 제1 단말(100A)이 생성한 공개 파라미터,

Figure 112014082815687-pat00011
는 i번째 데이터 블록이다. In this case, Y is the public key of the data storage server 200, Z is the public key of the second terminal 300A, x is the private key of the first terminal 100A, w is the certificate, ),
Figure 112014082815687-pat00011
Is an i-th data block.

이와 같이 암호화 과정(S145)이 수행되면, 도 2의 단계 S150에서, 제1 단말(100A)은 생성된 태그(

Figure 112014082815687-pat00012
)와 메시지 블록(
Figure 112014082815687-pat00013
)들을 데이터 저장서버(200)로 업로드한다. When the encryption process S145 is performed as described above, in step S150 of FIG. 2, the first terminal 100A transmits the generated tag
Figure 112014082815687-pat00012
) And a message block
Figure 112014082815687-pat00013
) To the data storage server (200).

한편, 단계 S155에서, 데이터 저장서버(200)는 단계 S105 내지 S120에서 생성된 파라미터들에 기초하여 업로드된 데이터의 정당성을 검증한다. 이를 위해, 데이터 저장서버(200)는 데이터 저장 서버(200)의 개인키(y), 제1 단말(100A) 및 제2 단말(300A) 각각의 공개키(X, Z) 및 제1 단말(100A)이 생성한 공개파라미터(u)에 기초하여 상기 업로드 데이터의 정당성을 검증하되, 하기의 수학식2 및 수학식3에 의거하여 제1 및 제2 변수(t, Wi)를 생성하고, 하기의 수학식4가 성립하는지를 확인한다. On the other hand, in step S155, the data storage server 200 verifies the validity of the uploaded data based on the parameters generated in steps S105 to S120. The data storage server 200 stores the private key y of the data storage server 200, the public keys X and Z of the first terminal 100A and the public keys X and Z of the second terminal 300A, (T, W i ) based on the following Equations (2) and (3) by verifying the validity of the upload data based on the generated public parameter (u) It is confirmed whether Equation (4) below holds true.

Figure 112014082815687-pat00014
Figure 112014082815687-pat00014

이 때, X는 상기 제1 단말의 공개키, Z는 상기 제2 단말의 공개키, y는 상기 데이터 저장서버의 개인키, w는 상기 제1 단말에서 생성한 보증서이다.In this case, X is a public key of the first terminal, Z is a public key of the second terminal, y is a private key of the data storage server, and w is a certificate generated by the first terminal.

Figure 112014082815687-pat00015
Figure 112014082815687-pat00015

이 때, t는 (수학식 1)에 의해 생성된 제1 변수이다. Here, t is the first variable generated by (Equation 1).

Figure 112014082815687-pat00016
Figure 112014082815687-pat00016

이 때,

Figure 112014082815687-pat00017
은 데이터 업로드시 전송된 태그, u는 상기 제1 단말이 생성한 공개 파라미터,
Figure 112014082815687-pat00018
는 i번째 데이터 블록, X는 상기 제1 단말의 공개키이다. At this time,
Figure 112014082815687-pat00017
Is a tag transmitted when data is uploaded, u is a public parameter generated by the first terminal,
Figure 112014082815687-pat00018
Is an i-th data block, and X is a public key of the first terminal.

단계 S155의 검증결과가 정당한 경우, 단계 S160에서는 데이터 저장서버(200)가 업로드된 데이터를 저장한다. 또한, 단계 S165에서, 데이터 저장서버(200)는 그 저장된 데이터에 대한 정보 일부를 제2 단말(300A)에게 제공한다. 이는 제2 단말(300A)이 그 데이터에 대한 챌린지(challenge)값을 생성하도록 하기 위함이다. 즉, 단계 S170에서, 제2 단말(300A)은 데이터 저장 서버(200)에 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일 일부에 대한 챌린지(challenge)값을 생성하고, 단계 S175에서, 그 챌린지(challenge) 값을 데이터 저장 서버(200)로 전송한다. If the verification result in step S155 is valid, the data storage server 200 stores the uploaded data in step S160. Also, in step S165, the data storage server 200 provides a part of the information on the stored data to the second terminal 300A. This is to allow the second terminal 300A to generate a challenge value for the data. That is, in step S170, the second terminal 300A generates a challenge value for the part of the data file for integrity verification of the data file uploaded to the data storage server 200, and in step S175, And transmits the challenge value to the data storage server 200.

도 4는 도 2에 예시된 챌린지값 생성 과정(S170)에 대한 개략적인 처리 흐름도로서, 도 4를 참조하면, 단계 S171에서, 제2 단말(300A)은 데이터 저장 서버(200)에 업로드된 데이터 파일 전체 블록 중 일부를 선정한다. 예컨대, 데이터 파일 전체 블록 n개 중 임의로 c개의 블록만을 선정할 수 있다. 그리고, 그 선정된 c개의 블록들을 포함하는 임의의 부분집합(I)을 데이터 저장 서버(200)로부터 제공받는다. 이 때, 제2 단말(300A)은 데이터 저장 서버(200)에서 임의로 선택된 상기 데이터 파일 일부를 제공받거나, 제2 단말(300A)이 데이터 저장 서버(200)에게 요청하여 선택된 데이터 파일 일부를 제공받을 수 있다. 한편, 단계 S172에서, 제2 단말(300A)은 데이터 저장서버(200)로부터 제공받은 일부 블록에 대한 챌린지 값을 생성한다. 상기 챌린지값은 업로드된 데이터 중 선택된 블록의 개수(c)와 제1 및 제2 난수(k1, k2)를 포함하는 것이 바람직하다. FIG. 4 is a schematic flowchart of a challenge value generation process (S170) illustrated in FIG. 2. Referring to FIG. 4, in step S171, the second terminal 300A transmits data Select some of the entire blocks of the file. For example, it is possible to select only c blocks arbitrarily among n blocks of the entire data file. Then, the data storage server 200 receives an arbitrary subset I including the selected c blocks. At this time, the second terminal 300A receives a part of the data file arbitrarily selected by the data storage server 200, or the second terminal 300A requests the data storage server 200 to receive a part of the selected data file . On the other hand, in step S172, the second terminal 300A generates a challenge value for some blocks provided from the data storage server 200. [ The challenge value preferably includes the number of selected blocks (c) of the uploaded data and the first and second random numbers (k 1 , k 2 ).

이와 같이 챌린지 값이 생성되면, 도 2의 단계 S175에서, 제2 단말(300A)은 그 챌린지값을 데이터 저장 서버(200)로 전송한다. 이 때, 제2 단말(300A)은 단계 S130에서 제1 단말(300A)로부터 제공받았던 보증서 및 서명 쌍(w, Sign(w))을 함께 전송한다.When the challenge value is generated as described above, the second terminal 300A transmits the challenge value to the data storage server 200 in step S175 of FIG. At this time, the second terminal 300A transmits the certificate and signature pair (w, Sign (w)) received from the first terminal 300A together in step S130.

그러면, 단계 S180에서, 데이터 저장 서버(200)는 단계 S105 내지 S120에서 생성된 파라미터들 및 상기 챌린지 값에 기초하여 증명값(proof)을 생성한다. Then, in step S180, the data storage server 200 generates a proof value based on the parameters and the challenge value generated in steps S105 to S120.

도 5는 도 2에 예시된 증명값 생성 과정(S180)에 대한 개략적인 처리 흐름도로서, 도 5를 참조하면, 단계 S181에서, 데이터 저장서버(200)는 제1 증명값(R)을 생성한다. 이를 위해, 데이터 저장서버(200)는 난수 r←ZP *를 생성하고, 그 값에 의거하여 제1 증명값(R = ur)을 생성한다. 5 is a schematic flowchart of a procedure for generating a proof value (S180) illustrated in FIG. 2. Referring to FIG. 5, in step S181, the data storage server 200 generates a first proof value R . To this end, the data storage server 200 generates a random number r? Z P * and generates a first authentication value (R = u r ) based on the value.

단계 S182에서는 챌린지값에 포함된 제1 및 제2 난수(k1, k2)를 각각 의사난수함수(π) 및 의사난수치환(f)에 적용하여 제3 변수(aj)를 생성하고, 상기 제3 변수(aj) 및 메시지 블록 개수(mi)에 기초하여 제2 증명값(T)을 생성한다. 이를 위해, 데이터 저장서버(200)는 하기의 수학식 5를 적용한다. In step S182, the third variable a j is generated by applying the first and second random numbers k 1 and k 2 included in the challenge value to the pseudo-random number function p and the pseudo-random number substitution f, respectively, And generates a second proof value T based on the third variable a j and the number of message blocks m i . To this end, the data storage server 200 applies the following Equation (5).

Figure 112014082815687-pat00019
Figure 112014082815687-pat00019

단계 S183에서는, 제3 변수(aj), 메시지 블록 개수(mi) 및 상기 제1 증명값(R)에 기초하여 제3 증명값(m)을 생성한다. 이를 위해, 데이터 저장서버(200)는 하기의 수학식 6을 적용한다. In step S183, a third proof value m is generated based on the third variable a j , the number of message blocks m i , and the first proof value R. [ To this end, the data storage server 200 applies Equation (6) below.

Figure 112014082815687-pat00020
Figure 112014082815687-pat00020

단계 S184에서는, 데이터 저장 서버(200)의 개인키(y)와, 상기 제1 및 제2 단말의 공개키(X,Z)에 기초하여 제4 증명값(Sm)을 생성한다. 이를 위해, 데이터 저장서버(200)는 하기의 수학식 7을 적용한다. In step S184, the fourth authentication value S m is generated based on the private key y of the data storage server 200 and the public keys X and Z of the first and second terminals. For this, the data storage server 200 applies the following Equation (7).

Figure 112014082815687-pat00021
Figure 112014082815687-pat00021

이와 같이 증명값(proof(T, m, R, Sm))을 생성한 데이터 저장 서버(200)는 도 2의 단계 S185에서, 이를 제2 단말(300A)에게 전송한다. In this way proof value (proof (T, m, R, S m)), a data storage server 200 generates a step S185 of FIG. 2, and transmits it to the second terminal (300A).

도 2의 단계 S190에서, 제2 단말(300A)는 상기 증명값(proof(T, m, R, Sm))과 공개키들을 이용하여 상기 증명값(proof(T, m, R, Sm))의 정당성을 검증한다. In Fig stage of the second S190, the second terminal (300A) is the proof value (proof (T, m, R , S m)) and public keys by using the proof value (proof (T, m, R , S m )) Is verified.

도 6은 도 2에 예시된 증명값 검증 과정(S190)에 대한 개략적인 처리 흐름도로서, 도 6을 참조하면, 단계 S191에서, 제2 단말(300A)는 e(X,Z)y를 계산한 후, 제4 증명값(Sm)을 통해 제3 증명값(m)의 변조 유무를 확인한다. 상기 확인 결과 제3 증명값(m)이 정당하다고 결정되면 제2 단말(300A)는 이후의 과정을 수행하지만, 그렇지 않은 경우 제2 단말(300A)는 증명값 검증 과정을 중단한다. 6 is a schematic flowchart of the procedure for verifying a proof value (S190) illustrated in FIG. 2. Referring to FIG. 6, in step S191, the second terminal 300A calculates e (X, Z) y Thereafter, whether or not the third proof value m is modulated is confirmed through the fourth proof value S m . If it is determined that the third authentication value m is valid, the second terminal 300A performs the following process. Otherwise, the second terminal 300A stops the verification of the authentication value.

단계 S192에서, 제2 단말(300A)는 제2 단말(300A)의 개인키를 이용하여 증명값 검증을 위한 제4 변수(t)를 생성한다. 이를 위해 제2 단말(300A)는 하기의 수학식 8을 적용한다. In step S192, the second terminal 300A generates the fourth parameter t for the proof value verification using the private key of the second terminal 300A. To this end, the second terminal 300A applies the following Equation (8).

Figure 112014082815687-pat00022
Figure 112014082815687-pat00022

한편, 단계 S193에서, 제2 단말(300A)는 수학식 9에 의거하여 상기 증명값을 검증한다.On the other hand, in step S193, the second terminal 300A verifies the proof value based on equation (9).

Figure 112014082815687-pat00023
Figure 112014082815687-pat00023

이 때, 상기 수학식 9가 성립하기 위한 검증 단계는 다음과 같다. At this time, the verification step for establishing Equation (9) is as follows.

Figure 112014082815687-pat00024
Figure 112014082815687-pat00024

이와 같이 수학식 9 성립되면 상기 증명값(proof(T, m, R, Sm))이 정당한 것이고, 해당 데이터의 무결성이 보장된 것으로 간주한다. Thus, the proof value (proof (T, m, R, S m )) is valid when Equation (9) is satisfied and the integrity of the data is considered to be guaranteed.

도 7은 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 장치에 대한 개략적인 블록도이다. 도 7을 참조하면, 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 장치(300A)는 사용자 인터페이스부(I/F)(310), 제어부(320), 개인키 및 공개키 설정부(330), 챌린지값 생성부(340), 검증부(350) 및 통신 인터페이스부(I/F)(360)를 포함한다. 7 is a schematic block diagram of a user data integrity verification apparatus according to an embodiment of the present invention. 7, a user data integrity verification apparatus 300A according to an exemplary embodiment of the present invention includes a user interface unit 310, a control unit 320, a private key and public key configuration unit 330, A challenge value generating unit 340, a verifying unit 350, and a communication interface unit (I / F)

통신 인터페이스부(I/F)(360)는 데이터 파일을 생성하는 제1 단말(도 1의 '100') 및 통신 데이터 파일을 저장하는 데이터 저장 서버(도 1의 '200')와의 인터페이스를 제공한다. The communication interface unit (I / F) 360 provides an interface with a first terminal ('100' in FIG. 1) for generating a data file and a data storage server (200 in FIG. 1) do.

사용자 인터페이스부(I/F)(310)는 사용자와의 인터페이스를 제공한다. 예를 들어, 데이터 무결성 검증을 위한 데이터 선택 정보 등 사용자의 선택정보 및 조작신호를 입력받아 제어부(320)로 전달한다. The user interface unit (I / F) 310 provides an interface with the user. For example, user selection information and operation signal, such as data selection information for data integrity verification, are received and transmitted to the controller 320.

제어부(320)는 미리 설정된 제어 프로그램에 의거하여 사용자 데이터 무결성 검증 장치의 동작을 제어한다. 예를 들어, 사용자 선택정보 또는 조작신호에 의거하여 챌린지값 생성부(340) 및 검증부(350)의 동작을 제어한다. 또한, 제어부(320)는 통신 인터페이스부를 통해 제1 단말(도 1의 '100')에서 생성한 보증서 및 서명 쌍(w, Sign(w))을 전달받아 저장한다. 이 때, 제어부(320)는 제1 단말(도 1의 '100')로부터 수신한 보증서 및 서명 쌍(w, Sign(w))을 검증하여 해당 서명 값이 상기 보증서에 대해 정당한지를 먼저 확인하고 상기 서명 값이 상기 보증서에 대해 정당한 경우에만 이를 저장한다. 만약 상기 서명 값이 상기 보증서에 대해 정당하지 않은 경우 제어부(320)는 제1 단말(도 1의 '100')에게 상기 보증서 및 서명 쌍을 재요청하여 다시 제공받는다. The control unit 320 controls the operation of the user data integrity verification apparatus based on a preset control program. For example, the operation of the challenge value generator 340 and the verification unit 350 is controlled based on the user selection information or the operation signal. Also, the control unit 320 receives and stores the certificate and signature pair (w, Sign (w)) generated in the first terminal ('100' in FIG. 1) through the communication interface unit. At this time, the control unit 320 verifies the certificate and signature pair (w, Sign (w)) received from the first terminal ('100' in FIG. 1) and confirms whether the signature value is legitimate for the certificate And stores the signature value only when it is legitimate for the certificate. If the signature value is not valid for the certificate, the control unit 320 requests the first terminal ('100' in FIG.

개인키 및 공개키 설정부(330)는 프라이버시가 보장된 사용자 데이터 무결성 검증에 필요한 개인키 및 공개키(z, Z)를 설정한다. 이를 위해, 개인키 및 공개키 설정부(330)는 난수 z ← Zq *를 생성하고, Z ← gz 를 계산한다.The private key and public key setting unit 330 sets a private key and a public key (z, Z) necessary for privacy-guaranteed user data integrity verification. To this end, the private key and public key setting unit 330 generates a random number z ← Z q * and calculates Z ← g z .

챌린지값 생성부(340)는 클라우드 컴퓨팅 환경에서, 클라우드 서버 역할을 하는 데이터 저장 서버(도 1의 '200')에 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일에 일부에 대한 챌린지 값을 생성한다. 또한, 통신 인터페이스부(I/F)(360)를 통해 그 챌린지값과 상기 제어부(320)에 저장된 보증서 및 서명 쌍(w, Sign(w))을 데이터 저장서버(도 1의 '200')로 전송한다. 이를 위해, 챌린지값 생성부(340)는, 통신 인터페이스부(I/F)(360)를 통해, 데이터 저장 서버(도 1의 '200')로부터 데이터 파일 전체 블럭(n) 중 임의로 선정한 몇 개(c)의 블록들을 포함하는 임의의 부분집합(I)을 제공받고, 상기 부분집합(I)에 대하여 챌린지 값을 생성한다. In the cloud computing environment, the challenge value generating unit 340 generates a challenge value for a part of the data file for integrity verification on a data file uploaded to a data storage server ('200' in FIG. 1) serving as a cloud server . The challenge value and the signature pair (w, Sign (w)) stored in the control unit 320 are stored in the data storage server 200 'in FIG. 1 through the communication interface unit (I / F) Lt; / RTI > To this end, the challenge value generating unit 340 receives a random number (s) of randomly selected data file blocks n from the data storage server ('200' in FIG. 1) through the communication interface unit (I / F) (I) comprising blocks of (c), and generates a challenge value for the subset (I).

검증부(350)는 데이터 저장 서버(도 1의 200)에서 생성된 증명값(proof(T, m, R, Sm))을 제공받아 그 증명값의 정당성을 검증한다. 이를 위해, 검증부(240)는 개인키 및 공개키 설정부(330)에서 설정한 개인키(z)를 이용하여 증명값 검증을 위한 변수(t)를 생성하고, 도 6을 참조한 설명에서 언급한 수학식9에 의거하여 상기 증명값을 검증하는 것이 바람직하다. Providing a verification unit 350, a data storage server (200 of FIG. 1) demonstrated the value (proof (T, m, R, S m)) generated by the receiving and verifies the validity of the proof value. To this end, the verifying unit 240 generates a variable t for verifying the proof value using the private key and the private key z set by the public key setting unit 330, It is preferable to verify the proof value based on Equation (9).

또한, 검증부(350)는 데이터 저장 서버(도 1의 200)의 비밀키(y) 및 제1 단말(도 1의 '100')의 공개키(X)와, 개인키 및 공개키 설정부(330)에서 설정한 공개키(Z)에 기초하여 상기 증명값에 대한 1차 검증을 실시하고, 상기 1차 검증 결과가 정당하지 않은 경우 증명값 검증을 중단할 수 있다. 즉, 검증부(350)는 도 6을 참조한 설명에서 언급한 바와 같이 제4 증명값(Sm)에 기초하여 제3 증명값(m)의 변조 여부를 판단하고, 상기 제3 증명값(m)이 정당하다고 판단된 경우에 이후의 과정을 수행한다. The verification unit 350 verifies whether or not the secret key y of the data storage server 200 of FIG. 1 and the public key X of the first terminal 100 The first verification is performed on the proof value based on the public key Z set in step 330 and the proof value verification can be stopped if the first verification result is not valid. That is, as described in the description with reference to FIG. 6, the verifying unit 350 determines whether or not the third proof value m is modulated based on the fourth proof value S m , and outputs the third proof value m ) Is deemed to be legitimate, perform the following process.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.The above-described embodiments of the present invention can be embodied in a general-purpose digital computer that can be embodied as a program that can be executed by a computer and operates the program using a computer-readable recording medium.

상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 를 포함한다.The computer readable recording medium includes a magnetic storage medium (e.g., ROM, floppy disk, hard disk, etc.), optical reading medium (e.g., CD ROM, DVD, etc.).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. The present invention has been described with reference to the preferred embodiments.

본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

Claims (13)

데이터 파일을 생성하는 제1 단말, 상기 데이터 파일을 저장하는 인터넷 상의 데이터 저장 서버, 상기 데이터 저장 서버에 저장된 데이터 파일의 무결성을 감사하는 제2 단말 간의 상호 관계에 의거하여 사용자 데이터의 무결성을 검증하는 사용자 데이터 무결성 검증 방법에 있어서,
프라이버시가 보장된 사용자 데이터 무결성 검증에 필요한 파라미터들을 생성하고, 상기 제1 단말이 상기 제2 단말에 대한 보증서 및 서명 쌍을 생성하여 상기 데이터 저장 서버 및 상기 제2 단말에 전송하는 단계;
상기 제1 단말이 상기 파라미터 생성 단계에서 생성된 파라미터 및 암호학적으로 안전한 해쉬 함수에 기초하여 업로드할 데이터 파일을 암호화한 후 데이터 저장 서버에 업로드 하는 데이터 아웃소싱 단계;
상기 데이터 저장 서버가 상기 파라미터 생성 단계에서 생성된 파라미터에 기초하여 업로드된 데이터의 정당성을 검증하는 단계;
상기 제2 단말이 상기 업로드된 데이터 파일 일부에 대한 챌린지(challenge)값을 생성하는 단계;
상기 데이터 저장 서버가 상기 제2 단말로부터 상기 챌린지 값과 상기 보증서 및 서명 쌍을 수신하고, 상기 수신한 보증서 및 서명 쌍, 상기 파라미터 생성 단계에서 생성된 파라미터 및 상기 챌린지 값에 기초하여 증명값을 생성하는 단계; 및
상기 제2 단말이 상기 증명값(proof)과 공개키들을 이용하여 상기 증명값(proof)의 정당성을 검증하는 단계를 포함하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
A system for verifying the integrity of user data based on a correlation between a first terminal for generating a data file, a data storage server on the Internet for storing the data file, and a second terminal for auditing the integrity of the data file stored in the data storage server A method for verifying user data integrity,
Generating parameters necessary for privacy-guaranteed user data integrity verification, generating a certificate and signature pair for the second terminal and transmitting the generated certificate and signature pair to the data storage server and the second terminal;
A data outsourcing step in which the first terminal encrypts a data file to be uploaded on the basis of the parameters generated in the parameter generation step and the cryptographically secure hash function and uploads the encrypted data file to the data storage server;
The data storage server verifying the validity of the uploaded data based on the parameters generated in the parameter generation step;
The second terminal generating a challenge value for a portion of the uploaded data file;
The data storage server receives the challenge value and the certificate and signature pair from the second terminal and generates a proof value based on the received certificate and signature pair, the parameter generated in the parameter generation step, and the challenge value ; And
And verifying the validity of the proof value using the proof and the public keys by the second terminal.
제1항에 있어서, 상기 파라미터 생성 단계는
상기 제1 단말, 상기 데이터 저장 서버, 상기 제2 단말이 각각 자신의 개인키와 공개키를 생성하는 단계;
상기 제1 단말이 상기 제2 단말에 대한 보증서를 작성한 후 상기 제1 단말의 개인키로 서명하는 단계;
상기 보증서 및 서명 쌍을 상기 데이터 저장서버 및 상기 제2 단말에게 전송하는 단계; 및
상기 제1 단말이 공개파라미터를 생성하는 단계를 포함하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
The method according to claim 1, wherein the parameter generation step
Generating a private key and a public key of the first terminal, the data storage server, and the second terminal, respectively;
Signing the private key of the first terminal after the first terminal creates a certificate for the second terminal;
Transmitting the certificate and signature pair to the data storage server and the second terminal; And
Wherein the first terminal generates a public parameter. ≪ Desc / Clms Page number 20 >
제2항에 있어서, 상기 파라미터 생성 단계는
상기 제1 단말로부터 상기 보증서 및 서명 쌍을 수신한 상기 데이터 저장 서버 및 상기 제2 단말 각각이 해당 서명 값이 상기 보증서에 대해 정당한지를 확인하는 단계; 및
상기 확인 결과 상기 서명 값이 상기 보증서에 대해 정당하지 않은 경우 상기 제1 단말에게 상기 보증서 및 서명 쌍을 재요청하는 단계를 더 포함하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
3. The method of claim 2, wherein the parameter generation step
Confirming whether each of the data storage server and the second terminal receiving the certificate and the signature pair from the first terminal is legitimate with respect to the certificate; And
Further comprising the step of re-requesting the first terminal for the certificate and the signature pair if the signature value is not valid for the certificate.
제2항에 있어서, 상기 업로드 데이터 정당성 검증 단계는
상기 파라미터 생성 단계에서 생성된 상기 데이터 저장 서버의 개인키(y), 상기 제1 단말 및 상기 제2 단말 각각의 공개키(X, Z) 및 상기 제1 단말이 생성한 공개파라미터(u)에 기초하여 상기 업로드 데이터의 정당성을 검증하되,
하기의 수학식1 및 수학식2에 의거하여 제1 및 제2 변수를 생성하고,
하기의 수학식3이 성립하는지를 확인하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.

(수학식1)
Figure 112014082815687-pat00025

이 때, X는 상기 제1 단말의 공개키, Z는 상기 제2 단말의 공개키, y는 상기 데이터 저장서버의 개인키, w는 상기 제1 단말에서 생성한 보증서이다.

(수학식2)
Figure 112014082815687-pat00026

이 때, t는 (수학식 1)에 의해 생성된 제1 변수이다.

(수학식3)
Figure 112014082815687-pat00027

이 때,
Figure 112014082815687-pat00028
은 데이터 업로드시 전송된 태그, u는 상기 제1 단말이 생성한 공개 파라미터,
Figure 112014082815687-pat00029
는 i번째 데이터 블록, X는 상기 제1 단말의 공개키이다.
3. The method of claim 2, wherein the upload data validity verification step
(X, z) of the first terminal and the second terminal, and the public parameter (u) generated by the first terminal, the private key (y) of the data storage server generated in the parameter generation step Verifying the validity of the upload data,
Generating first and second variables based on the following equations (1) and (2)
And verifying whether or not the following Equation (3) is satisfied.

(1)
Figure 112014082815687-pat00025

In this case, X is a public key of the first terminal, Z is a public key of the second terminal, y is a private key of the data storage server, and w is a certificate generated by the first terminal.

(2)
Figure 112014082815687-pat00026

Here, t is the first variable generated by (Equation 1).

(3)
Figure 112014082815687-pat00027

At this time,
Figure 112014082815687-pat00028
Is a tag transmitted when data is uploaded, u is a public parameter generated by the first terminal,
Figure 112014082815687-pat00029
Is an i-th data block, and X is a public key of the first terminal.
제2항에 있어서, 상기 챌린지값 생성 단계는
상기 업로드된 데이터 중 선택된 블록의 개수(c)와 제1 및 제2 난수(k1, k2)를 포함하는 챌린지값을 생성하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
3. The method of claim 2, wherein the generating the challenge value comprises:
And generating a challenge value including the number (c) of selected blocks of the uploaded data and the first and second random numbers (k 1 , k 2 ).
제5항에 있어서, 상기 증명값 생성 단계는
정수 집합의 원소인 제3 난수(r)를 생성하고, 상기 제3 난수(r)에 기초하여 제1 증명값(R)을 생성하는 단계;
제1 및 제2 난수(k1, k2)를 각각 의사난수함수(π) 및 의사난수치환(f)에 적용하여 제3 변수(aj)를 생성하고, 상기 제3 변수(aj) 및 메시지 블록 개수(mi)에 기초하여 제2 증명값(T)을 생성하는 단계;
상기 제3 변수(aj), 메시지 블록 개수(mi) 및 상기 제1 증명값(R)에 기초하여 제3 증명값(m)을 생성하는 단계;
상기 데이터 저장 서버의 개인키(y)와, 상기 제1 및 제2 단말의 공개키(X,Z)에 기초하여 제4 증명값(Sm)을 생성하는 단계; 및
상기 제1 내지 제4 증명값을 상기 챌린지값에 대한 증명값(proof) 값으로 결정하는 단계를 포함하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
6. The method of claim 5, wherein the proof value generation step
Generating a third random number (r) which is an element of the integer set and generating a first authentication value (R) based on the third random number (r);
First and second random numbers (k 1, k 2) for each pseudo-random number function (π), and a pseudo-random number a substituted (f) a third variable (a j) the third variable (a j), is generated by applying the And generating a second proof value (T) based on the number of message blocks (m i );
Generating a third proof value (m) based on the third variable (a j ), the number of message blocks (m i ) and the first proof value (R);
Generating a fourth authentication value (S m ) based on the private key (y) of the data storage server and the public keys (X, Z) of the first and second terminals; And
And determining the first to fourth authentication values as a proof value for the challenge value.
제6항에 있어서, 상기 증명값 생성 단계는
상기 제2 단말로부터 상기 챌린지 값 수신시 상기 제2 단말의 보증서 및 서명 쌍을 함께 수신하는 단계;
상기 제2 단말로부터 수신한 보증서 및 서명 쌍의 정당성을 검증하는 단계; 및
상기 제2 단말로부터 수신한 보증서 및 서명쌍이 정당한 경우 상기 제1 단말로부터 수신하여 기 저장된 보증서와 상기 제2 단말로부터 수신한 보증서를 비교하는 단계를 더 포함하고,
상기 제1 단말로부터 수신하여 기 저장된 보증서와 상기 제2 단말로부터 수신한 보증서가 같지 않은 경우 증명값 생성을 중단하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
7. The method according to claim 6, wherein the proof value generation step
Receiving a certificate and a signature pair of the second terminal together when the challenge value is received from the second terminal;
Verifying the legitimacy of a certificate and a signature pair received from the second terminal; And
Further comprising the step of comparing the guarantee certificate received from the first terminal and the certificate received from the second terminal if the certificate and signature pair received from the second terminal are legitimate,
If the guarantee certificate received from the first terminal and the guarantee certificate received from the second terminal are not the same, stop generating the authentication value.
제6항에 있어서, 상기 증명값 검증 단계는
상기 데이터 저장 서버의 비밀키(y) 및 상기 제1 및 제2 단말의 공개키(X, Z)에 기초하여 제3 증명값의 정당성을 판단하는 단계;
상기 제3 증명값이 정당한 경우 상기 제2 단말의 개인키를 이용하여 증명값 검증을 위한 제4 변수(t)를 생성하는 단계; 및
하기의 수학식4에 의거하여 상기 증명값을 검증하는 단계를 포함하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
(수학식 4)
Figure 112014082815687-pat00030

7. The method according to claim 6, wherein the verification value verification step
Determining the validity of the third authentication value based on the secret key (y) of the data storage server and the public key (X, Z) of the first and second terminals;
Generating a fourth variable (t) for proof value verification using the private key of the second terminal if the third proof value is legitimate; And
And verifying the verification value based on Equation (4) below.
(4)
Figure 112014082815687-pat00030

제1항에 있어서, 상기 데이터 아웃소싱 단계는
의사난수 함수로부터 모델링된 해쉬 함수에 기초하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
The method of claim 1, wherein the data outsourcing comprises:
Wherein the hash function is based on a hash function modeled from a pseudo-random number function.
데이터 파일을 생성하는 제1 단말 및 데이터 파일을 저장하는 데이터 저장 서버와의 인터페이스를 제공하는 통신 인터페이스부;
프라이버시가 보장된 사용자 데이터 무결성 검증에 필요한 개인키 및 공개키(z, Z)를 설정하는 설정부;
상기 통신 인터페이스부를 통해 상기 제1 단말에서 생성한 보증서 및 서명 쌍을 전달받아 저장하는 제어부;
상기 데이터 저장 서버에 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일에 일부에 대한 챌린지 값을 생성하여 상기 제어부에 저장된 보증서 및 서명 쌍과 함께 상기 데이터 저장 서버로 전송하는 챌린지값 생성부; 및
상기 데이터 저장 서버에서 생성된 증명값을 제공받아 그 증명값의 정당성을 검증하는 검증부를 포함하는 것을 특징으로 하는 사용자 데이터 무결성 검증 장치.
A communication interface for providing an interface with a first terminal for generating a data file and a data storage server for storing a data file;
A setting unit configured to set a private key and a public key (z, Z) necessary for verifying user data integrity guaranteed with privacy;
A control unit for receiving and storing the certificate and signature pair generated by the first terminal through the communication interface unit;
A challenge value generation unit for generating a challenge value for a part of the data file to confirm integrity of the data file uploaded to the data storage server and transmitting the generated challenge value to the data storage server together with the certificate and signature pair stored in the control unit; And
And a verification unit for receiving a verification value generated by the data storage server and verifying the validity of the verification value.
제10항에 있어서, 상기 제어부는
상기 제1 단말로부터 수신한 보증서 및 서명 쌍을 검증하여 해당 서명 값이 상기 보증서에 대해 정당한지를 확인하고 상기 서명 값이 상기 보증서에 대해 정당하지 않은 경우 상기 제1 단말에게 상기 보증서 및 서명 쌍을 재요청하는 것을 특징으로 하는 사용자 데이터 무결성 검증 장치.
11. The apparatus of claim 10, wherein the control unit
Verifying whether the signature value is valid for the certificate, verifying the certificate and signature pair received from the first terminal, verifying whether the signature value is valid for the certificate, and transmitting the certificate and signature pair to the first terminal if the signature value is not valid for the certificate Wherein the user data integrity verification device requests the user data to be verified.
제10항에 있어서, 상기 검증부는
상기 설정부에서 설정한 개인키(z)를 이용하여 증명값 검증을 위한 변수(t)를 생성하고, 하기의 수학식4에 의거하여 상기 증명값을 검증하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 장치.
(수학식 4)
Figure 112014082815687-pat00031

11. The apparatus of claim 10, wherein the verifying unit
(T) for verifying the proof value using the private key (z) set by the setting unit, and verifying the proof value based on the following equation (4). Device.
(4)
Figure 112014082815687-pat00031

제12항에 있어서, 상기 검증부는
상기 데이터 저장 서버의 비밀키(y) 및 상기 제1 단말의 공개키(X)와, 상기 설정부에서 설정한 공개키(Z)에 기초하여 상기 증명값에 대한 1차 검증을 실시하고, 상기 1차 검증 결과가 정당하지 않은 경우 증명값 검증을 중단하는 것을 특징으로 하는 사용자 데이터 무결성 검증 장치.




13. The apparatus of claim 12, wherein the verifying unit
Performs a first verification on the proof value based on the secret key (y) of the data storage server, the public key (X) of the first terminal and the public key (Z) set by the setting unit, And if the first verification result is not valid, the verification of the verification value is stopped.




KR1020140114172A 2014-08-29 2014-08-29 User data integrity verification method and apparatus capable of guaranteeing privacy KR101586439B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140114172A KR101586439B1 (en) 2014-08-29 2014-08-29 User data integrity verification method and apparatus capable of guaranteeing privacy

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140114172A KR101586439B1 (en) 2014-08-29 2014-08-29 User data integrity verification method and apparatus capable of guaranteeing privacy

Publications (1)

Publication Number Publication Date
KR101586439B1 true KR101586439B1 (en) 2016-01-18

Family

ID=55305869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140114172A KR101586439B1 (en) 2014-08-29 2014-08-29 User data integrity verification method and apparatus capable of guaranteeing privacy

Country Status (1)

Country Link
KR (1) KR101586439B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108123934A (en) * 2017-12-06 2018-06-05 深圳先进技术研究院 A kind of data integrity verifying method towards mobile terminal
US20200313859A1 (en) * 2019-03-29 2020-10-01 Accenture Global Solutions Limited Cryptologic Blockchain-Based Off-Chain Storage Verification
CN114760061A (en) * 2020-12-29 2022-07-15 深信服科技股份有限公司 Data uploading method, device, equipment and storage medium
WO2022251987A1 (en) * 2021-05-29 2022-12-08 华为技术有限公司 Data encryption and decryption method and apparatus

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
1. H. Wang, Proxy Provable Data Possession in Public Clouds, IEEE Transactions on Service Computing, 6(4), (2013), pp. 551559.
2. Y. Yu, L. Niu, G. Yang, Y. Mu, W. Susil, On the security of auditing mechanisms for secure cloud storage, Future Generation Computer Systems, (2014), pp. 127-132.
Jiawei Yuan 외 1인, Communications and Network security (CNS), 2013 IEEE Conference, "Secure and Constant Cost Public Cloud Storage Auditing with Deduplication" (2013.10.16. 공개) *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108123934A (en) * 2017-12-06 2018-06-05 深圳先进技术研究院 A kind of data integrity verifying method towards mobile terminal
US20200313859A1 (en) * 2019-03-29 2020-10-01 Accenture Global Solutions Limited Cryptologic Blockchain-Based Off-Chain Storage Verification
CN114760061A (en) * 2020-12-29 2022-07-15 深信服科技股份有限公司 Data uploading method, device, equipment and storage medium
CN114760061B (en) * 2020-12-29 2023-09-05 深信服科技股份有限公司 Method, device, equipment and storage medium for uploading data
WO2022251987A1 (en) * 2021-05-29 2022-12-08 华为技术有限公司 Data encryption and decryption method and apparatus

Similar Documents

Publication Publication Date Title
CN108292402B (en) Determination of a common secret and hierarchical deterministic keys for the secure exchange of information
CN106664202B (en) Method, system and computer readable medium for providing encryption on multiple devices
KR102472231B1 (en) Blockchain implementation method and system
EP2737656B1 (en) Credential validation
US10187373B1 (en) Hierarchical, deterministic, one-time login tokens
US10103888B2 (en) Method of performing keyed-hash message authentication code (HMAC) using multi-party computation without Boolean gates
US9749130B2 (en) Distributing keys for decrypting client data
US9172530B2 (en) Apparatus and method for generating secret key for ID-based encryption system and recording medium having program recorded thereon for causing computer to execute the method
CN111835526B (en) Method and system for generating anonymous credential
CN108199847B (en) Digital security processing method, computer device, and storage medium
US20160197906A1 (en) Multi-party secure authentication system, authentication server, intermediate server, multi-party secure authentication method, and program
US10887110B2 (en) Method for digital signing with multiple devices operating multiparty computation with a split key
TW202029693A (en) Computer implemented system and method for distributing shares of digitally signed data
KR101586439B1 (en) User data integrity verification method and apparatus capable of guaranteeing privacy
KR101580514B1 (en) Method and apparatus for managing a password by using the seed key and computer readable recording medium applying the same
CN116491098A (en) Certificate-based security using post-use quantum cryptography
US10419213B2 (en) Key exchange method, key exchange system, key device, terminal device, and program
CN109257381A (en) A kind of key management method, system and electronic equipment
KR101593675B1 (en) User data integrity verification method and apparatus
Crocker et al. Two factor encryption in cloud storage providers using hardware tokens
JP6808609B2 (en) Server devices, communication devices, key sharing systems, key sharing methods, and programs
Rehman et al. Securing cloud storage by remote data integrity check with secured key generation
KR102122773B1 (en) System and method for providng redactable signature with recovery functionality
KR102094606B1 (en) Apparatus and method for authentication
Sreenivas et al. Performance evaluation of encryption techniques and uploading of encrypted data in cloud

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200113

Year of fee payment: 5