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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/02—Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
Abstract
Description
본 발명은 프라이버시를 보장하는 사용자 데이터의 무결성 검증 방법 및 그 장치에 관한 것으로서, 특히, 클라우드 환경에서 데이터 소유주가 자신의 데이터를 서버에 업로드한 후, 대리인을 지정하여 서버나 다른 공격자의 악의적인 행동으로부터 자신의 데이터가 훼손되지 않고 저장되어 있는지를 확인하는 프라이버시를 보장하는 사용자 데이터의 무결성 검증 방법 및 그 장치에 관한 것이다. 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.
따라서 본 발명은 클라우드 컴퓨팅 환경에서 다양한 공격에 대하여 안전하고, 지정된 감사자만이 감사를 수행할 수 있도록 함으로써 프라이버시를 보장받을 수 있는 사용자 데이터 무결성 검증 방법 및 장치를 제공하고자 한다.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)
이 때, 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)
이 때, t는 (수학식 1)에 의해 생성된 제1 변수이다.
Here, t is the first variable generated by (Equation 1).
(수학식3)(3)
이 때, 은 데이터 업로드시 전송된 태그, u는 상기 제1 단말이 생성한 공개 파라미터, 는 i번째 데이터 블록, X는 상기 제1 단말의 공개키이다. At this time, Is a tag transmitted when data is uploaded, u is a public parameter generated by the first terminal, 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)
한편, 상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 사용자 데이터의 무결성 검증 장치는 데이터 파일을 생성하는 제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
이를 위해, 각 장치들은 서로 약속된 프로토콜에 의해 상호 작용을 하여야 하며, 본 발명은 의사난수 함수(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
먼저, 단계 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
한편, 단계 S135에서는, 데이터 저장 서버(200)가 제1 단말(100A)로부터 수신한 보증서 및 서명 쌍(w, Sign(w))에 대하여 정당한지를 확인하는 보증서 검증 과정을 수행하고, 단계 S140에서는, 제2 단말(300A)이 제1 단말(100A)로부터 수신한 보증서 및 서명 쌍(w, Sign(w))에 대하여 정당한지를 확인하는 보증서 검증 과정을 수행한다. On the other hand, in step S135, the
상기 확인 결과 상기 서명 값이 해당 보증서에 대해 정당하지 않은 경우, 상기 데이터 저장서버(200) 및 제2 단말(300A)은 제1 단말(100A)에게 상기 보증서 및 서명 쌍을 재요청할 수 있다(미도시). 한편, 제1 단말(100A)은 공개파라미터(u)를 생성한다(미도시).If it is determined that the signature value is not valid for the certificate, the
이와 같이 프라이버시가 보장된 사용자 데이터의 무결성 검증에 필요한 파라미터들을 생성한 후, 단계 S145에서, 제1 단말(100A)은 상기 생성된 파라미터 및 암호학적으로 안전한 해쉬 함수에 기초하여 업로드할 데이터 파일을 암호화한다. 이 때, 암호화를 위한 처리 과정의 예가 도 3에 예시되어 있다. After generating the parameters necessary for integrity verification of the user data with privacy guaranteed, the
도 3은 도 2에 예시된 암호화 과정(S145)에 대한 개략적인 처리 흐름도로서, 도 3을 참조하면, 먼저, 단계 S146에서, 제1 단말(100A)은 업로드할 데이터 파일()을 소정개로 분할한다. 그리고, 단계 S147에서는, 하기의 수학식1에 의해 태그()를 생성한다.FIG. 3 is a schematic flowchart of the encryption process (S145) illustrated in FIG. 2. Referring to FIG. 3, first, in step S146, the
이 때, Y는 데이터 저장서버(200)의 공개키, Z는 제2 단말(300A)의 공개키, x는 제1 단말(100A)의 개인키, w는 보증서, u는 제1 단말(100A)이 생성한 공개 파라미터, 는 i번째 데이터 블록이다. In this case, Y is the public key of the
이와 같이 암호화 과정(S145)이 수행되면, 도 2의 단계 S150에서, 제1 단말(100A)은 생성된 태그()와 메시지 블록()들을 데이터 저장서버(200)로 업로드한다. When the encryption process S145 is performed as described above, in step S150 of FIG. 2, the
한편, 단계 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
이 때, 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.
이 때, t는 (수학식 1)에 의해 생성된 제1 변수이다. Here, t is the first variable generated by (Equation 1).
이 때, 은 데이터 업로드시 전송된 태그, u는 상기 제1 단말이 생성한 공개 파라미터, 는 i번째 데이터 블록, X는 상기 제1 단말의 공개키이다. At this time, Is a tag transmitted when data is uploaded, u is a public parameter generated by the first terminal, 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
도 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
이와 같이 챌린지 값이 생성되면, 도 2의 단계 S175에서, 제2 단말(300A)은 그 챌린지값을 데이터 저장 서버(200)로 전송한다. 이 때, 제2 단말(300A)은 단계 S130에서 제1 단말(300A)로부터 제공받았던 보증서 및 서명 쌍(w, Sign(w))을 함께 전송한다.When the challenge value is generated as described above, the
그러면, 단계 S180에서, 데이터 저장 서버(200)는 단계 S105 내지 S120에서 생성된 파라미터들 및 상기 챌린지 값에 기초하여 증명값(proof)을 생성한다. Then, in step S180, the
도 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
단계 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
단계 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
단계 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
이와 같이 증명값(proof(T, m, R, Sm))을 생성한 데이터 저장 서버(200)는 도 2의 단계 S185에서, 이를 제2 단말(300A)에게 전송한다. In this way proof value (proof (T, m, R, S m)), a
도 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
단계 S192에서, 제2 단말(300A)는 제2 단말(300A)의 개인키를 이용하여 증명값 검증을 위한 제4 변수(t)를 생성한다. 이를 위해 제2 단말(300A)는 하기의 수학식 8을 적용한다. In step S192, the
한편, 단계 S193에서, 제2 단말(300A)는 수학식 9에 의거하여 상기 증명값을 검증한다.On the other hand, in step S193, the
이 때, 상기 수학식 9가 성립하기 위한 검증 단계는 다음과 같다. At this time, the verification step for establishing Equation (9) is as follows.
이와 같이 수학식 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
통신 인터페이스부(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
제어부(320)는 미리 설정된 제어 프로그램에 의거하여 사용자 데이터 무결성 검증 장치의 동작을 제어한다. 예를 들어, 사용자 선택정보 또는 조작신호에 의거하여 챌린지값 생성부(340) 및 검증부(350)의 동작을 제어한다. 또한, 제어부(320)는 통신 인터페이스부를 통해 제1 단말(도 1의 '100')에서 생성한 보증서 및 서명 쌍(w, Sign(w))을 전달받아 저장한다. 이 때, 제어부(320)는 제1 단말(도 1의 '100')로부터 수신한 보증서 및 서명 쌍(w, Sign(w))을 검증하여 해당 서명 값이 상기 보증서에 대해 정당한지를 먼저 확인하고 상기 서명 값이 상기 보증서에 대해 정당한 경우에만 이를 저장한다. 만약 상기 서명 값이 상기 보증서에 대해 정당하지 않은 경우 제어부(320)는 제1 단말(도 1의 '100')에게 상기 보증서 및 서명 쌍을 재요청하여 다시 제공받는다. The
개인키 및 공개키 설정부(330)는 프라이버시가 보장된 사용자 데이터 무결성 검증에 필요한 개인키 및 공개키(z, Z)를 설정한다. 이를 위해, 개인키 및 공개키 설정부(330)는 난수 z ← Zq *를 생성하고, Z ← gz 를 계산한다.The private key and public
챌린지값 생성부(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
검증부(350)는 데이터 저장 서버(도 1의 200)에서 생성된 증명값(proof(T, m, R, Sm))을 제공받아 그 증명값의 정당성을 검증한다. 이를 위해, 검증부(240)는 개인키 및 공개키 설정부(330)에서 설정한 개인키(z)를 이용하여 증명값 검증을 위한 변수(t)를 생성하고, 도 6을 참조한 설명에서 언급한 수학식9에 의거하여 상기 증명값을 검증하는 것이 바람직하다. Providing a
또한, 검증부(350)는 데이터 저장 서버(도 1의 200)의 비밀키(y) 및 제1 단말(도 1의 '100')의 공개키(X)와, 개인키 및 공개키 설정부(330)에서 설정한 공개키(Z)에 기초하여 상기 증명값에 대한 1차 검증을 실시하고, 상기 1차 검증 결과가 정당하지 않은 경우 증명값 검증을 중단할 수 있다. 즉, 검증부(350)는 도 6을 참조한 설명에서 언급한 바와 같이 제4 증명값(Sm)에 기초하여 제3 증명값(m)의 변조 여부를 판단하고, 상기 제3 증명값(m)이 정당하다고 판단된 경우에 이후의 과정을 수행한다. The
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.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 단말에 대한 보증서 및 서명 쌍을 생성하여 상기 데이터 저장 서버 및 상기 제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 단말, 상기 데이터 저장 서버, 상기 제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 >
상기 제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.
상기 파라미터 생성 단계에서 생성된 상기 데이터 저장 서버의 개인키(y), 상기 제1 단말 및 상기 제2 단말 각각의 공개키(X, Z) 및 상기 제1 단말이 생성한 공개파라미터(u)에 기초하여 상기 업로드 데이터의 정당성을 검증하되,
하기의 수학식1 및 수학식2에 의거하여 제1 및 제2 변수를 생성하고,
하기의 수학식3이 성립하는지를 확인하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
(수학식1)
이 때, X는 상기 제1 단말의 공개키, Z는 상기 제2 단말의 공개키, y는 상기 데이터 저장서버의 개인키, w는 상기 제1 단말에서 생성한 보증서이다.
(수학식2)
이 때, t는 (수학식 1)에 의해 생성된 제1 변수이다.
(수학식3)
이 때, 은 데이터 업로드시 전송된 태그, u는 상기 제1 단말이 생성한 공개 파라미터, 는 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)
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)
Here, t is the first variable generated by (Equation 1).
(3)
At this time, Is a tag transmitted when data is uploaded, u is a public parameter generated by the first terminal, Is an i-th data block, and X is a public key of the first terminal.
상기 업로드된 데이터 중 선택된 블록의 개수(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 ).
정수 집합의 원소인 제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.
상기 제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.
상기 데이터 저장 서버의 비밀키(y) 및 상기 제1 및 제2 단말의 공개키(X, Z)에 기초하여 제3 증명값의 정당성을 판단하는 단계;
상기 제3 증명값이 정당한 경우 상기 제2 단말의 개인키를 이용하여 증명값 검증을 위한 제4 변수(t)를 생성하는 단계; 및
하기의 수학식4에 의거하여 상기 증명값을 검증하는 단계를 포함하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
(수학식 4)
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)
의사난수 함수로부터 모델링된 해쉬 함수에 기초하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
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.
프라이버시가 보장된 사용자 데이터 무결성 검증에 필요한 개인키 및 공개키(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.
상기 제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.
상기 설정부에서 설정한 개인키(z)를 이용하여 증명값 검증을 위한 변수(t)를 생성하고, 하기의 수학식4에 의거하여 상기 증명값을 검증하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 장치.
(수학식 4)
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)
상기 데이터 저장 서버의 비밀키(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.
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)
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 |
-
2014
- 2014-08-29 KR KR1020140114172A patent/KR101586439B1/en active IP Right Grant
Non-Patent Citations (3)
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)
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 |