KR101593675B1 - User data integrity verification method and apparatus - Google Patents

User data integrity verification method and apparatus Download PDF

Info

Publication number
KR101593675B1
KR101593675B1 KR1020140114170A KR20140114170A KR101593675B1 KR 101593675 B1 KR101593675 B1 KR 101593675B1 KR 1020140114170 A KR1020140114170 A KR 1020140114170A KR 20140114170 A KR20140114170 A KR 20140114170A KR 101593675 B1 KR101593675 B1 KR 101593675B1
Authority
KR
South Korea
Prior art keywords
data
value
storage server
file
generating
Prior art date
Application number
KR1020140114170A
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 KR1020140114170A priority Critical patent/KR101593675B1/en
Application granted granted Critical
Publication of KR101593675B1 publication Critical patent/KR101593675B1/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Disclosed is a method for verifying user data integrity. According to the present invention, the method for verifying user data integrity comprises: a step of generating a pair of signature keys based on a bilinear mapping technique and a BLS short signature technique; a data outsourcing step of dividing a data file to be uploaded into a prescribed number of blocks, encrypting the data file in accordance with the pair of signature keys generated in the signature key pair generation step, and then uploading the data file to a data storage server; a step of generating a challenge value for a portion of the data file to transmit the challenge value to the data storage server to check integrity of the uploaded data file; a step of generating a proof based on information transmitted when uploading data and the challenge value, and transmitting the proof to a second terminal; and a step of using the proof and public keys to verify legitimacy of the proof.

Description

사용자 데이터의 무결성 검증 방법 및 그 장치{USER DATA INTEGRITY VERIFICATION METHOD AND APPARATUS}USER DATA INTEGRITY VERIFICATION METHOD AND APPARATUS Document Type and Number: WIPO Patent Application WO /

본 발명은 사용자 데이터의 무결성 검증 방법 및 그 장치에 관한 것으로서, 특히, 클라우드 환경에서 데이터 소유주가 자신의 데이터를 서버에 업로드한 후, 서버나 다른 공격자의 악의적인 행동으로부터 자신의 데이터가 훼손되지 않고 저장되어 있는지를 확인하는 사용자 데이터의 무결성 검증 방법 및 그 장치에 관한 것이다.The present invention relates to a method and apparatus for verifying the integrity of user data, and more particularly, in a cloud environment, after a data owner has uploaded his data to a server, his data is not corrupted from malicious behavior of a server or other attacker And an apparatus for verifying integrity of user data for confirming whether or not the user data is stored.

최근 사용자가 네트워크나 컴퓨터를 의식하지 않고 장소에 상관없이 자유롭게 네트워크에 접속할 수 있는 정보 통신 환경을 일컫는 유비쿼터스(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, the integrity of user data must be ensured.

따라서, 최근 클라우드 서버에 아웃소싱(outsourcing)한 데이터들의 무결성을 검사하는 기술들에 대한 연구가 활발하게 진행되고 있다. 하기의 선행기술문헌 1에서는 아웃소싱(outsourcing)한 데이터의 무결성을 감사할 수 있으면서 데이터의 추가/삭제가 용이한 기법을 제안한다. 하지만, 감사 과정에서 감사자(auditor)에게 저장한 데이터가 노출되어 안전성이 결여되는 문제가 있다. 이러한 문제를 보완하기 위해, 선행기술문헌 2,3,4에서는 아웃소싱(outsourcing)한 데이터들의 무결성을 누구나 감사할 수 있는 기법을 제안하였다. 그런데 선행기술문헌 5에서 이러한 기법들이 감사과정에서 주고받는 값들의 준동형적(Homomorphic) 성질 때문에 안전하지 않음을 보였다. 이후에 선행기술문헌 6에서 안전성을 보완하기 위한 새로운 기법을 제안하지만 이 기법 또한 선행기술문헌 7에 의해 안전하지 않다는 것이 증명되었다. 한편, 선행기술문헌 8에서도 데이터의 안전성을 보완하기 위한 새로운 기법을 제안하고 있지만, 이 또한 선행기술문헌 5,7에서 증명한 공격에 안전하지 않은 문제가 있다. .Accordingly, researches on techniques for checking the integrity of outsourced data to the cloud server have been actively conducted. In the following Prior Art Document 1, a method is proposed in which the integrity of outsourced data can be audited, and data addition / deletion is easy. However, there is a problem that the data stored in the auditor is exposed during the auditing process, resulting in lack of safety. In order to overcome this problem, prior art documents 2, 3 and 4 proposed a technique for auditing the integrity of outsourced data. However, in Prior Art Document 5, these techniques have shown to be insecure due to the homomorphic nature of the values exchanged in the audit process. Thereafter, in the prior art document 6, a new technique for supplementing safety is proposed, but this technique has also proved unsafe by the prior art document 7. On the other hand, Prior Art Document 8 also proposes a new technique for supplementing the safety of data, but this also has a problem unsafe for the attacks proved in the prior art documents 5 and 7. .

1. Q. Wang, C. Wang, K. Ren, W. Lou, J. Li, Enabling public auditability and data dynamics for storage security in cloud computing, IEEE Trans. Parallel Distrib. Syst., 22(5), (2011), pp. 847859.1. Q. Wang, C. Wang, K. Ren, W. Lou, J. Li, Enabling public auditability and data dynamics for storage security in IEEE Trans. Parallel Distrib. Syst., 22 (5), (2011), pp. 847859. 2. C. Wang, Q. Wang, K. Ren, N. Cao, W. Lou, Toward secure and dependable storage services in cloud computing, IEEE Trans. Serv. Comput., 5(2), (2012), pp. 220232.2. C. Wang, Q. Wang, K. Ren, N. Cao, W. Lou, Toward secure and dependable storage services in IEEE Trans. Serv. Comput., 5 (2), (2012), pp. 220232. 3. B. Wang, B. Li, H. Li, Oruta: privacy-preserving public auditing for shared data in the cloud, in: IEEE International Conference on Cloud Computing, 2012, pp. 293302.3. B. Wang, B. Li, H. Li, Oruta: Privacy-preserving public auditing for shared data in the cloud, in: IEEE International Conference on Cloud Computing, 2012, pp. 293302. 4. B. Wang, B. Li, H. Li, Knox: privacy-preserving auditing for shared data with large groups in the cloud, in: Proc. of ACNS 2012, pp. 507525.4. B. Wang, B. Li, H. Li, and Knox: privacy-preserving auditing for shared data with large groups in the cloud, in: Proc. of ACNS 2012, pp. 507525. 5. 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.5. 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. 6. K. Yang, and X. Jia, An efficient and secure dynamic auditing protocol for data storage in cloud computing. IEEE Transactions on Parallel and Distributed Systems, 24(9), (2013), 17171726.6. K. Yang, and X. Jia, An efficient and secure dynamic auditing protocol for data storage in cloud computing. IEEE Transactions on Parallel and Distributed Systems, 24 (9), (2013), 17171726. 7. J. Ni, Y. Yu, Y. Mu, and Q. Xia, On the security of an efficient dynamic auditing protocol in cloud storage, (2013), IEEE Transactions on Parallel and Distributed Systems. 7. J. Ni, Y. Yu, Y. Mu, and Q. Xia, On the Security of an Efficient Dynamic Auditing Protocol in Cloud Storage, (2013), IEEE Transactions on Parallel and Distributed Systems. 8. C. Wang, S.S.M. Chow, Q. Wang, K. Ren, and W. Lou, Privacy-preserving public auditing for secure cloud storage, IEEE Transactions on Computers, 62(2), (2013), pp. 362-375.8. C. Wang, S. S. M. Chow, Q. Wang, K. Ren, and W. Lou, Privacy-preserving public auditing for secure cloud storage, IEEE Transactions on Computers, 62 (2), (2013), pp. 362-375.

따라서 본 발명은 클라우드 컴퓨팅 환경에서 사용자 데이터의 무결성을 검증하는 방법 및 그 장치를 제공하고자 한다. Accordingly, the present invention provides a method and apparatus for verifying the integrity of user data in a cloud computing environment.

또한, 본 발명은 클라우드 컴퓨팅 환경에서 다양한 공격에 대하여도 데이터의 안전성을 보장하는 사용자 데이터의 무결성을 검증하는 방법 및 장치를 제공하고자 한다. It is another object of the present invention to provide a method and apparatus for verifying integrity of user data ensuring data security against various attacks in a cloud computing environment.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 사용자 데이터의 무결성 검증 방법은 데이터 파일을 생성하는 제1 단말, 상기 데이터 파일을 저장하는 인터넷 상의 데이터 저장 서버, 상기 데이터 저장 서버에 저장된 데이터 파일의 무결성을 감사하는 제2 단말 간의 상호 관계에 의거하여 사용자 데이터의 무결성을 검증하는 사용자 데이터 무결성 검증 방법에 있어서, 상기 제1 단말이 겹선형 사상 및 BLS 짧은 서명 기법에 기초하여 서명키 쌍을 생성하는 단계; 상기 제1 단말이 업로드할 데이터 파일을 소정개의 블록으로 분할하고 상기 서명키 쌍 생성 단계에서 생성된 서명키 쌍에 의거하여 암호화한 후 데이터 저장 서버에 업로드 하는 데이터 아웃소싱 단계; 상기 제2 단말이 상기 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일 일부에 대한 챌린지(challenge)값을 생성하여 상기 데이터 저장 서버로 전송하는 단계; 상기 데이터 저장 서버가 데이터 업로드시 전송된 정보와 상기 챌린지값에 기초하여 증명값(proof)을 생성하고, 그 증명값을 상기 제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; A method for verifying the integrity of user data based on a correlation between a first terminal and a second terminal that audits integrity of a first terminal, the method comprising: generating a signature key pair based on a bi- ; A data outsourcing step of dividing a data file to be uploaded by the first terminal into a predetermined number of blocks, encrypting the data file based on the signature key pair generated in the signature key pair generation step, and uploading the encrypted data file to the data storage server; Generating a challenge value for the part of the data file and transmitting the challenge value to the data storage server for the integrity check of the uploaded data file by the second terminal; Generating a proof value based on the information transmitted when the data storage server uploads the data and the challenge value, and transmitting the proof value to the second terminal; And verifying the validity of the proof value using the proof and the public keys by the second terminal.

바람직하게는, 상기 서명키 쌍 생성 단계는 정수 집합의 원소인 제1 난수(x)를 포함하는 비밀키와, 정수 집합의 원소인 제2 난수(k) 및 겹선형 사상에 의거한 성질을 만족하는 복수의 난수들(v,g,u,e(u,v))을 포함하는 공개키를 생성할 수 있다. Preferably, the signature key pair generation step satisfies a secret key including a first random number (x) that is an element of an integer set, a property based on a second random number (k) (V, g, u, e (u, v)), which is a public key.

바람직하게는, 상기 데이터 아웃소싱 단계는 업로드할 데이터 파일(Preferably, the data outsourcing step comprises the steps of:

(

Figure 112014082815340-pat00001
)을 소정개로 분할하는 단계; 상기 BLS 짧은 서명 기법에 의거하여, 상기 서명키 쌍 생성 단계에서 생성된 비밀키 및 공개키가 반영된 태그(
Figure 112014082815340-pat00002
)를 상기 분할된 데이터 각각에 대하여 생성하는 단계; 상기 파일 이름(name)에 대한 서명값(SSigssk( name ))을 생성하는 단계; 및 상기 데이터 파일(
Figure 112014082815340-pat00003
), 태그(
Figure 112014082815340-pat00004
) 및 서명값이 부가된 파일명(
Figure 112014082815340-pat00005
)을 함께 업로드하는 단계를 포함할 수 있다. (
Figure 112014082815340-pat00001
) Into a predetermined number; Based on the BLS short signature scheme, a secret key generated in the signature key pair generation step and a tag
Figure 112014082815340-pat00002
) For each of the segmented data; Generating a signature value (SSig ssk ( name ) ) for the file name (name); And the data file (
Figure 112014082815340-pat00003
), tag(
Figure 112014082815340-pat00004
) And the filename to which the signature value is attached (
Figure 112014082815340-pat00005
) May be uploaded together.

바람직하게는, 상기 챌린지값 전송단계는 상기 데이터 저장 서버로부터 데이터 파일 전체 블럭(n) 중 임의로 선정한 몇 개(c)의 블록들을 포함하는 임의의 부분집합(I)을 제공받는 단계; 상기 부분집합(I)에 대하여 챌린지 값을 생성하는 단계; 및 상기 챌린지 값을 상기 데이터 저장 서버로 전송하는 단계를 포함할 수 있다. Advantageously, the step of transmitting the challenge value comprises the steps of: receiving, from the data storage server, an arbitrary subset (I) including arbitrarily selected several blocks (c) of the entire data file block (n); Generating a challenge value for the subset (I); And transmitting the challenge value to the data storage server.

한편, 상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 사용자 데이터의 무결성 검증 장치는 데이터 파일을 저장하는 데이터 저장 서버와의 인터페이스를 제공하는 통신 인터페이스부; 상기 데이터 저장 서버에 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일에 일부에 대한 챌린지 값을 생성하여 상기 데이터 저장 서버로 전송하는 챌린지값 생성부; 및 상기 챌린지값 및 데이터 업로드시 전송된 정보에 기초하여 상기 데이터 저장 서버에서 생성된 증명값을 제공받아 그 증명값의 정당성을 검증하는 검증부를 포함한다. 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 with a data storage server for storing a data file; 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; And a verifying unit for receiving the verification value generated by the data storage server based on the challenge value and information transmitted when the data is uploaded and verifying the validity of the verification value.

바람직하게는, 상기 챌린지값 생성부는 상기 데이터 저장 서버로부터 데이터 파일 전체 블럭(n) 중 임의로 선정한 몇 개(c)의 블록들을 포함하는 임의의 부분집합(I)을 상기 통신 인터페이스부를 통해 제공받고, 상기 부분집합(I)에 대하여 챌린지 값을 생성할 수 있다. Advantageously, the challenge value generator is provided from the data storage server via the communication interface unit to any subset (I) including arbitrarily selected blocks (c) of the entire data file block (n) And generate a challenge value for the subset (I).

본 발명은 겹선형 사상(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 to guarantee the security of data against various attacks in a cloud computing environment .

도 1은 본 발명의 사용자 데이터 무결성 검증 방법을 구현하기 위한 시스템 구성도를 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 방법에 대한 시스템간 처리 절차도이다.
도 3은 도 2에 예시된 암호화 과정에 대한 개략적인 처리 흐름도이다.
도 4는 도 2에 예시된 챌린지값 생성 과정에 대한 개략적인 처리 흐름도이다.
도 5는 도 2에 예시된 증명값 생성 과정에 대한 개략적인 처리 흐름도이다.
도 6은 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 장치에 대한 개략적인 블록도이다.
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.
6 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)하고, 감사자(300)는 데이터 저장서버(200)에 저장된 데이터 파일에 대한 데이터 무결성 검증(S30)을 실시한다.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 may be implemented by interacting with a data owner 100, a data storage server 200, and an auditor 300 connected to a network. 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), and the auditor 300 stores the data And performs data integrity verification (S30) on the data file stored in the server (200).

이를 위해, 각 장치들은 서로 약속된 프로토콜에 의해 상호 작용을 하여야 하며, 본 발명은 겹선형 사상(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 employs bilinear maps and a BLS short signature algorithm.

도 2는 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 방법에 대한 시스템간 처리 절차도이다. 도 2의 예에서는 데이터 소유주의 단말을 제1 단말(100A), 감사자의 단말을 제2 단말(300A)이라 칭하고 데이터 저장 서버(200)와의 상호 처리 절차의 예를 설명하고 있다. 이 때, G1, G2 및 GT를 위수 p로 가지는 곱셈순환군이라 하고, e:G1×G2→GT를 겹선형 사상이라 한다. 또한 g를 G2의 생성자, H(·):{0,1}*→G1을 맵 투 포인트 해시(map-to-point hash) 함수, h(·):GT →ZP를 또 다른 해시함수라고 하고, E(·)는 DES(Data Encryption Standard), AES(Advanced Encryption Standard)와 같은 블럭 알고리즘이라고 한다. 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 data owner terminal is referred to as a first terminal 100A, the auditor terminal is referred to as a second terminal 300A, and an example of a mutual processing procedure with the data storage server 200 is described. In this case, a multiplicative cyclic group having G 1 , G 2, and G T as the power p, and e: G 1 × G 2 → G T are referred to as a double linear mapping. Also g of the generator G 2, H (·): {0,1 } * → hash-to-point (map-to-point hash) function map of G 1, h (·): a G → T Z P another Is called a hash function, and E (·) is called a block algorithm such as DES (Data Encryption Standard) and AES (Advanced Encryption Standard).

먼저, 단계 S105에서, 제1 단말(100A)은 겹선형 사상 및 BLS 짧은 서명 기법에 기초하여 서명키 쌍(spk, ssk)을 생성한다. 이 때, 제1 단말(100A)은 정수 집합의 원소인 제1 난수(x)를 포함하는 비밀키와, 정수 집합의 원소인 제2 난수(k) 및 겹선형 사상에 의거한 성질을 만족하는 복수의 난수들(v,g,u,e(u,v))을 포함하는 공개키를 생성한다. 이를 위해, 제1 단말(100A)은 난수 x,k ← ZP, u ← G1를 생성하고, v ←gx 를 계산한다. 여기서 비밀키는 sk = (x, ssk)이고, 공개키는 pk = (spk, v, g, u, k, e(u,v))이다. First, in step S105, the first terminal 100A generates a signature key pair (spk, ssk) based on the double linear mapping and the BLS short signature technique. At this time, the first MS 100A satisfies the secret key including the first random number x, which is an integer set of elements, and the second random number k, which is an element of the integer set, Generates a public key including a plurality of random numbers (v, g, u, e (u, v)). To this end, the first terminal 100A generates a random number x, k ← Z P , u ← G 1 , and calculates v ← g x . Here, the secret key is sk = (x, ssk) and the public key is pk = (spk, v, g, u, k, e (u, v)).

단계 S110에서, 제1 단말(100A)은 업로드할 데이터 파일을 소정개의 블록으로 분할하고 상기 서명키 쌍 생성 단계에서 생성된 서명키 쌍에 의거하여 암호화한다. 이 때, 암호화를 위한 처리 과정의 예가 도 3에 예시되어 있다. In step S110, the first terminal 100A divides the data file to be uploaded into a predetermined number of blocks and encrypts based on the signature key pair generated in the signature key pair generation step. At this time, an example of a processing procedure for encryption is illustrated in FIG.

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

Figure 112014082815340-pat00006
)을 소정개로 분할한다. 그리고, 단계 S112에서는, 상기 BLS 짧은 서명 기법에 의거하여, 상기 서명키 쌍 생성 단계에서 생성된 비밀키 및 공개키가 반영된 태그(
Figure 112014082815340-pat00007
)를 상기 분할된 모든 데이터 각각에 대하여 생성한다. 이를 위해, 제1 단말(100A)은 하기의 수학식1을 적용한다.
FIG. 3 is a schematic flowchart of the encryption process (S110) illustrated in FIG. 2. Referring to FIG. 3, for encryption, in step S111, the first terminal 100A transmits a data file
Figure 112014082815340-pat00006
Is divided into a predetermined number. Then, in step S112, based on the BLS short signature technique, the secret key generated in the signature key pair generation step and the tag
Figure 112014082815340-pat00007
) For each of the segmented data. To this end, the first terminal 100A applies the following Equation (1).

Figure 112014082815340-pat00008
Figure 112014082815340-pat00008

이 때, i는 분할된 데이터 중 i번째 파일에 대한 태그,

Figure 112014082815340-pat00009
,
Figure 112014082815340-pat00010
은 파일 F의 id,
Figure 112014082815340-pat00011
는 i번째 파일을 공개키k로 암호화한 값, x는 비밀키이다.
At this time, i is the tag of the i-th file among the divided data,
Figure 112014082815340-pat00009
,
Figure 112014082815340-pat00010
Is the id of the file F,
Figure 112014082815340-pat00011
Is the value obtained by encrypting the i-th file with the public key k, and x is the secret key.

단계 S113에서, 제1 단말(100A)은 상기 업로드할 데이터 파일의 이름(name)에 대한 서명값(SSigssk( name ))을 생성한다. 이 때, SSig는 안전한 전자 서명기법으로서, 공지된 다양한 서명 알고리즘을 적용할 수 있다.In step S113, the first terminal 100A generates a signature value (SSig ssk ( name ) ) for the name of the data file to be uploaded. At this time, SSig is a secure digital signature scheme, and various known signature algorithms can be applied.

이와 같이 암호화 과정(S110)이 수행되면, 도 2의 단계 S115에서, 제1 단말(100A)은 데이터 파일(

Figure 112014082815340-pat00012
), 태그(
Figure 112014082815340-pat00013
) 및 서명값이 부가된 파일명(
Figure 112014082815340-pat00014
)을 데이터 저장서버(200)로 업로드한다. When the encryption process (S110) is performed in this way, in step S115 of FIG. 2, the first terminal (100A)
Figure 112014082815340-pat00012
), tag(
Figure 112014082815340-pat00013
) And the filename to which the signature value is attached (
Figure 112014082815340-pat00014
To the data storage server 200.

한편, 단계 S120에서, 데이터 저장서버(200)는 상기 업로드된 데이터를 저장한다. 또한, 단계 S125에서, 데이터 저장서버(200)는 그 저장된 데이터에 대한 정보 일부를 제2 단말(300A)에게 제공한다. 이는 제2 단말(300A)이 그 데이터에 대한 챌린지(challenge)값을 생성하도록 하기 위함이다. 즉, 단계 S130에서, 제2 단말(300A)은 데이터 저장 서버(200)에 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일 일부에 대한 챌린지(challenge)값을 생성하고, 단계 S135에서, 그 챌린지(challenge) 값을 데이터 저장 서버(200)로 전송한다. Meanwhile, in step S120, the data storage server 200 stores the uploaded data. Also, in step S125, 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 S130, the second terminal 300A generates a challenge value for a part of the data file for integrity verification of the data file uploaded to the data storage server 200, and in step S135, And transmits the challenge value to the data storage server 200.

도 4는 도 2에 예시된 챌린지값 생성 과정(S130)에 대한 개략적인 처리 흐름도로서, 도 4를 참조하면, 단계 S131에서, 제2 단말(300A)은 데이터 저장 서버(200)에 업로드된 데이터 파일 전체 블록 중 일부를 선정한다. 예컨대, 데이터 파일 전체 블록 n개 중 임의로 c개의 블록만을 선정할 수 있다. 그리고, 그 선정된 c개의 블록들을 포함하는 임의의 부분집합(I)을 데이터 저장 서버(200)로부터 제공받는다. 이 때, 제2 단말(300A)은 데이터 저장 서버(200)에서 임의로 선택된 상기 데이터 파일 일부를 제공받거나, 제2 단말(300A)이 데이터 저장 서버(200)에게 요청하여 선택된 데이터 파일 일부를 제공받을 수 있다. 한편, 단계 S132에서, 제2 단말(300A)은 데이터 저장서버(200)로부터 제공받은 일부 블록에 대한 챌린지 값을 생성한다. 이를 위해, 제2 단말(300A)은 하기의 수학식2를 적용한다.
4 is a schematic flowchart of a challenge value generation process (S130) illustrated in FIG. 2. Referring to FIG. 4, in step S131, 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 S132, the second terminal 300A generates a challenge value for some blocks provided from the data storage server 200. [ To this end, the second terminal 300A applies the following equation (2).

Figure 112014082815340-pat00015
Figure 112014082815340-pat00015

이 때,

Figure 112014082815340-pat00016
Figure 112014082815340-pat00017
번째 블록에 해당하는 난수로써 임의로 생성한다.
At this time,
Figure 112014082815340-pat00016
The
Figure 112014082815340-pat00017
Th block.

이와 같이 챌린지 값이 생성되면, 도 2의 단계 S135에서, 제2 단말(300A)은 그 챌린지값을 데이터 저장 서버(200)로 전송한다. 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 S135 of FIG.

그러면, 단계 S140에서, 데이터 저장 서버(200)는 데이터 업로드시 전송된 정보(t, mi,

Figure 112014082815340-pat00018
)와 상기 챌린지값에 기초하여 증명값(proof)을 생성한다. Then, in step S140, the data storage server 200 transmits the information (t, mi ,
Figure 112014082815340-pat00018
) And a proof value (proof) based on the challenge value.

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

또한, 단계 S142에서, 데이터 저장서버(200)는 임의의 제3 난수(r)와 추가로 생성된 제1 및 제2 변수에 기초하여 제2 증명값(

Figure 112014082815340-pat00019
)을 생성한다. 이를 위해, 데이터 저장서버(200)는 제1 증명값(R)을 해시함수에 반영(
Figure 112014082815340-pat00020
= h(R))하여 제2 증명값 생성을 위한 제1 변수(
Figure 112014082815340-pat00021
)를 생성하고, 상기 챌린지값(
Figure 112014082815340-pat00022
) 및 데이터 업로드시 수신된 정보(
Figure 112014082815340-pat00023
)를 하기의 수학식3에 반영하여 제2 증명값 생성을 위한 제2 변수(
Figure 112014082815340-pat00024
)를 생성한다.
Further, in step S142, the data storage server 200 generates the second proof value (r) based on the arbitrary third random number r and the first and second additional variables
Figure 112014082815340-pat00019
). To this end, the data storage server 200 reflects the first proof value R to the hash function (
Figure 112014082815340-pat00020
= h (R)) to generate a first variable for generating a second proof value
Figure 112014082815340-pat00021
), And the challenge value (
Figure 112014082815340-pat00022
) And information received when uploading data (
Figure 112014082815340-pat00023
) To the following equation (3) to generate a second parameter for generating a second proof value
Figure 112014082815340-pat00024
).

Figure 112014082815340-pat00025
Figure 112014082815340-pat00025

이 때,

Figure 112014082815340-pat00026
는 챌린지값,
Figure 112014082815340-pat00027
는 i번째 파일을 공개키k로 암호화한 값이다.
At this time,
Figure 112014082815340-pat00026
A challenge value,
Figure 112014082815340-pat00027
Is a value obtained by encrypting the i-th file with the public key k.

제2 증명값(

Figure 112014082815340-pat00028
)은 제1 변수(
Figure 112014082815340-pat00029
)와 제2 변수(
Figure 112014082815340-pat00030
)를 곱한 값을 제3 난수(r)에 합산(
Figure 112014082815340-pat00031
)하여 구할 수 있다. The second proof value (
Figure 112014082815340-pat00028
) Is the first variable (
Figure 112014082815340-pat00029
) And the second variable (
Figure 112014082815340-pat00030
) Is added to the third random number (r) (
Figure 112014082815340-pat00031
).

한편, 단계 S143에서, 데이터 저장서버(200)는 데이터 업로드시 수신한 태그정보(

Figure 112014082815340-pat00032
)에 의거하여 제3 증명값()을 생성한다. 이를 위해, 데이터 저장서버(200)는 하기의 수학식4를 적용한다.
On the other hand, in step S143, the data storage server 200 transmits the tag information
Figure 112014082815340-pat00032
) ≪ / RTI > To this end, the data storage server 200 applies the following Equation (4).

Figure 112014082815340-pat00033
Figure 112014082815340-pat00033

이 때,

Figure 112014082815340-pat00034
는 데이터 업로드시 수신한 i번째 파일의 태그값,
Figure 112014082815340-pat00035
는 챌린지값이다.
At this time,
Figure 112014082815340-pat00034
The tag value of the i-th file received at the time of data upload,
Figure 112014082815340-pat00035
Is the challenge value.

이와 같이 증명값(proof(μ,σ,R))을 생성한 데이터 저장 서버(200)는 도 2의 단계 S145에서, 이를 제2 단말(300A)에게 전송한다. The data storage server 200 that has generated the proof value proof ([mu], [sigma], R)) transmits it to the second terminal 300A in step S145 of FIG.

도 2의 단계 S150에서, 제2 단말(300A)는 상기 증명값(proof(μ,σ,R))과 공개키들을 이용하여 상기 증명값(proof(μ,σ,R))의 정당성을 검증한다. 이를 위해, 제2 단말(300A)은 하기의 수학식 5를 적용한다.
2, the second terminal 300A verifies the validity of the proof value proof ([mu], [sigma], R)) using the proof value (proof do. To this end, the second terminal 300A applies the following Equation (5).

Figure 112014082815340-pat00036
Figure 112014082815340-pat00036

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

Figure 112014082815340-pat00037

Figure 112014082815340-pat00037

이와 같이 수학식 5가 성립되면 상기 증명값(μ,σ,R))이 정당한 것이고, 해당 데이터의 무결성이 보장된 것으로 간주한다. When Equation (5) is established in this way, the proof value ([mu], [sigma], R)) is valid and the integrity of the data is considered to be guaranteed.

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

사용자 인터페이스부(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)는 미리 설정된 제어 프로그램에 의거하여 사용자 데이터 무결성 검증 장치의 동작을 제어한다. 특히, 사용자 선택정보 또는 조작신호에 의거하여 챌린지값 생성부(330) 및 검증부(340)의동작을 제어한다. The control unit 320 controls the operation of the user data integrity verification apparatus based on a preset control program. In particular, the operation of the challenge value generator 330 and the verification unit 340 is controlled based on the user selection information or the operation signal.

챌린지값 생성부(330)는 클라우드 컴퓨팅 환경에서, 클라우드 서버 역할을 하는 데이터 저장 서버(도 1의 '200')에 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일에 일부에 대한 챌린지 값을 생성한다. 그리고 통신 인터페이스부(I/F)(350)를 통해 그 챌린지값을 데이터 저장서버(도 1의 '200')로 전송한다. 이를 위해, 챌린지값 생성부(330)는, 통신 인터페이스부(I/F)(350)를 통해, 데이터 저장 서버(도 1의 '200')로부터 데이터 파일 전체 블럭(n) 중 임의로 선정한 몇 개(c)의 블록들을 포함하는 임의의 부분집합(I)을 제공받고, 상기 부분집합(I)에 대하여 챌린지 값을 생성한다. 또한, 챌린지값 생성부(330)는 도 4를 참조한 설명에서 언급된 수학식2에 의거하여 챌린지 값을 생성하는 것이 바람직하다. In the cloud computing environment, the challenge value generator 330 generates a challenge value for a part of the data file in order to check the integrity of the data file uploaded to the data storage server ('200' in FIG. 1) serving as a cloud server . And transmits the challenge value to the data storage server 200 'in FIG. 1 through the communication interface unit (I / F) 350. To this end, the challenge value generating unit 330 generates a challenge value generating unit 330 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). Further, the challenge value generator 330 preferably generates a challenge value based on Equation (2) mentioned in the description with reference to Fig.

검증부(340)는 상기 챌린지값 및 데이터 업로드시 전송된 정보에 기초하여 상기 데이터 저장 서버에서 생성된 증명값을 제공받아 그 증명값의 정당성을 검증한다. 이를 위해, 검증부(240)는 도 2를 참조한 설명에서 언급된 수학식5에 의거하여 상기 증명값을 검증하는 것이 바람직하다. The verification unit 340 receives the challenge value generated in the data storage server based on the challenge value and the information transmitted when the data is uploaded, and verifies the validity of the challenge value. To this end, the verifying unit 240 preferably verifies the proof value based on Equation (5) mentioned in the explanation with reference to Fig.

통신 인터페이스부(I/F)(350)는 데이터 파일을 저장하는 데이터 저장 서버(도 1의 '200')와의 인터페이스를 제공한다. The communication interface unit (I / F) 350 provides an interface with a data storage server ('200' in FIG. 1) for storing data files.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.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 (12)

데이터 파일을 생성하는 제1 단말, 상기 데이터 파일을 저장하는 인터넷 상의 데이터 저장 서버, 상기 데이터 저장 서버에 저장된 데이터 파일의 무결성을 감사하는 제2 단말 간의 상호 관계에 의거하여 사용자 데이터의 무결성을 검증하는 사용자 데이터 무결성 검증 방법에 있어서,
상기 제1 단말이 겹선형 사상 및 BLS 짧은 서명 기법에 기초하여 서명키 쌍을 생성하는 단계;
상기 제1 단말이 업로드할 데이터 파일을 소정개의 블록으로 분할하고 상기 서명키 쌍 생성 단계에서 생성된 서명키 쌍에 의거하여 암호화한 후 데이터 저장 서버에 업로드 하는 데이터 아웃소싱 단계;
상기 제2 단말이 상기 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일 일부에 대한 챌린지(challenge)값을 생성하여 상기 데이터 저장 서버로 전송하는 단계;
상기 데이터 저장 서버가 데이터 업로드시 전송된 정보와 상기 챌린지값에 기초하여 증명값(proof)을 생성하고, 그 증명값을 상기 제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,
The first terminal generating a signature key pair based on a double linear mapping and a BLS short signature scheme;
A data outsourcing step of dividing a data file to be uploaded by the first terminal into a predetermined number of blocks, encrypting the data file based on the signature key pair generated in the signature key pair generation step, and uploading the encrypted data file to the data storage server;
Generating a challenge value for the part of the data file and transmitting the challenge value to the data storage server for the integrity check of the uploaded data file by the second terminal;
Generating a proof value based on the information transmitted when the data storage server uploads the data and the challenge value, and transmitting the proof value to the second terminal; And
And verifying the validity of the proof value using the proof and the public keys by the second terminal.
제1항에 있어서, 상기 서명키 쌍 생성 단계는,
정수 집합의 원소인 제1 난수(x)를 포함하는 비밀키와, 정수 집합의 원소인 제2 난수(k) 및 겹선형 사상에 의거한 성질을 만족하는 복수의 난수들(v,g,u,e(u,v))을 포함하는 공개키를 생성하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
2. The method of claim 1,
A secret key including a first random number x that is an element of an integer set, a second random number k that is an integer set of elements, and a plurality of random numbers v, g, u , e (u, v)). < / RTI >
제2항에 있어서, 상기 데이터 아웃소싱 단계는,
업로드할 데이터 파일(
Figure 112014082815340-pat00038
)을 소정개로 분할하는 단계;
상기 BLS 짧은 서명 기법에 의거하여, 상기 서명키 쌍 생성 단계에서 생성된 비밀키 및 공개키가 반영된 태그(
Figure 112014082815340-pat00039
)를 상기 분할된 데이터 각각에 대하여 생성하는 단계;
상기 파일 이름(name)에 대한 서명값(SSigssk(name))을 생성하는 단계; 및
상기 데이터 파일(
Figure 112014082815340-pat00040
), 태그(
Figure 112014082815340-pat00041
) 및 서명값이 부가된 파일명(
Figure 112014082815340-pat00042
)을 함께 업로드하는 단계를 포함하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
3. The method of claim 2, wherein the data outsourcing comprises:
Data file to upload (
Figure 112014082815340-pat00038
) Into a predetermined number;
Based on the BLS short signature scheme, a secret key generated in the signature key pair generation step and a tag
Figure 112014082815340-pat00039
) For each of the segmented data;
Generating a signature value (SSig ssk (name) ) for the file name (name); And
The data file (
Figure 112014082815340-pat00040
), tag(
Figure 112014082815340-pat00041
) And the filename to which the signature value is attached (
Figure 112014082815340-pat00042
The method comprising the steps of: (a) uploading the user data to the server;
제3항에 있어서, 상기 태그 생성단계는,
하기의 수학식1에 의거하여 상기 분할된 데이터 모두에 대한 태그를 생성하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
(수학식1)
Figure 112014082815340-pat00043

이 때, i는 분할된 데이터 중 i번째 파일에 대한 태그,
Figure 112014082815340-pat00044
,
Figure 112014082815340-pat00045
은 파일 F의 id,
Figure 112014082815340-pat00046
는 i번째 파일을 공개키k로 암호화한 값, x는 비밀키이다.
4. The method according to claim 3,
A method for verifying integrity of user data, comprising: generating a tag for all of the divided data based on Equation (1).
(1)
Figure 112014082815340-pat00043

At this time, i is the tag of the i-th file among the divided data,
Figure 112014082815340-pat00044
,
Figure 112014082815340-pat00045
Is the id of the file F,
Figure 112014082815340-pat00046
Is the value obtained by encrypting the i-th file with the public key k, and x is the secret key.
제1항에 있어서, 상기 챌린지값 전송단계는,
상기 데이터 저장 서버로부터 데이터 파일 전체 블럭(n) 중 임의로 선정한 몇 개(c)의 블록들을 포함하는 임의의 부분집합(I)을 제공받는 단계;
상기 부분집합(I)에 대하여 챌린지 값을 생성하는 단계; 및
상기 챌린지 값을 상기 데이터 저장 서버로 전송하는 단계를 포함하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
The method of claim 1, wherein the challenge value transmission step comprises:
Receiving from the data storage server an arbitrary subset (I) comprising arbitrarily selected several (c) blocks of the entire data file block (n);
Generating a challenge value for the subset (I); And
And transmitting the challenge value to the data storage server.
제5항에 있어서, 상기 챌린지 값 생성 단계는
하기의 수학식2에 의거하여 챌린지 값을 생성하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
(수학식2)
Figure 112014082815340-pat00047

이 때,
Figure 112014082815340-pat00048
Figure 112014082815340-pat00049
번째 블록에 해당하는 난수로써 임의로 생성한다.
6. The method of claim 5, wherein the generating the challenge value comprises:
Wherein a challenge value is generated based on Equation (2) below.
(2)
Figure 112014082815340-pat00047

At this time,
Figure 112014082815340-pat00048
The
Figure 112014082815340-pat00049
Th block.
제1항에 있어서, 상기 증명값 생성 단계는
정수 집합의 원소인 제3 난수(r)를 생성하고, 상기 제3 난수(r)에 기초하여 제1 증명값(R)을 생성하는 단계;
상기 제1 증명값(R)을 해시함수에 반영하여 제2 증명값 생성을 위한 제1 변수(
Figure 112014082815340-pat00050
)를 생성하는 단계;
상기 챌린지값 및 데이터 업로드시 수신된 정보를 하기의 수학식3에 반영하여 제2 증명값 생성을 위한 제2 변수(
Figure 112014082815340-pat00051
)를 생성하는 단계;
상기 제3 난수(r), 제1 변수(
Figure 112014082815340-pat00052
) 및 제2 변수(
Figure 112014082815340-pat00053
)에 기초하여 제2 증명값(
Figure 112014082815340-pat00054
)을 생성하는 단계;
하기의 수학식4에 의거하여 제3 증명값(
Figure 112014082815340-pat00055
)을 생성하는 단계; 및
상기 제1 내지 제3 증명값을 상기 챌린지값에 대한 증명값(proof) 값으로 결정하는 단계를 포함하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
(수학식3)
Figure 112014082815340-pat00056

이 때,
Figure 112014082815340-pat00057
는 챌린지값,
Figure 112014082815340-pat00058
는 i번째 파일을 공개키k로 암호화한 값이다.
(수학식4)
Figure 112014082815340-pat00059

이 때,
Figure 112014082815340-pat00060
는 데이터 업로드시 수신한 i번째 파일의 태그값,
Figure 112014082815340-pat00061
는 챌린지값이다.
2. The method according to claim 1, 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);
The first proof value (R) is reflected in the hash function to generate a first proof value
Figure 112014082815340-pat00050
);
The challenge value and the information received at the time of data upload are reflected in the following equation (3) to obtain the second parameter for generating the second authentication value
Figure 112014082815340-pat00051
);
The third random number r, the first variable
Figure 112014082815340-pat00052
) And the second variable (
Figure 112014082815340-pat00053
On the basis of the second proof value (
Figure 112014082815340-pat00054
);
Based on the following equation (4), the third proof value (
Figure 112014082815340-pat00055
); And
And determining the first to third authentication values as a proof value for the challenge value.
(3)
Figure 112014082815340-pat00056

At this time,
Figure 112014082815340-pat00057
A challenge value,
Figure 112014082815340-pat00058
Is a value obtained by encrypting the i-th file with the public key k.
(4)
Figure 112014082815340-pat00059

At this time,
Figure 112014082815340-pat00060
The tag value of the i-th file received at the time of data upload,
Figure 112014082815340-pat00061
Is the challenge value.
제1항에 있어서, 상기 증명값 검증 단계는
하기의 수학식5에 의거하여 상기 증명값을 검증하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
(수학식 5)
Figure 112014082815340-pat00062

The method according to claim 1, wherein the verification value verification step
Wherein the verification value is verified based on Equation (5) below.
(5)
Figure 112014082815340-pat00062

데이터 파일을 저장하는 데이터 저장 서버와의 인터페이스를 제공하는 통신 인터페이스부;
상기 데이터 저장 서버에 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일에 일부에 대한 챌린지 값을 생성하여 상기 데이터 저장 서버로 전송하는 챌린지값 생성부; 및
상기 챌린지값 및 데이터 업로드시 전송된 정보에 기초하여 상기 데이터 저장 서버에서 생성된 증명값을 제공받아 공개키들을 이용하여 그 증명값의 정당성을 검증하는 검증부를 포함하고,
상기 공개키들 각각은 겹선형 사상 및 BLS 짧은 서명 기법에 기초하여 생성된 서명키 쌍 중 하나이고, 상기 데이터 저장 서버에 업로드된 데이터 파일은 상기 생성된 서명키 쌍에 의거하여 암호화된 것을 특징으로 하는 사용자 데이터 무결성 검증 장치.
A communication interface unit for providing an interface with a data storage server for storing a data file;
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; And
And a verification unit that receives the challenge value and the authentication value generated by the data storage server based on the information transmitted when the data is uploaded and verifies the validity of the authentication value using the public keys,
Wherein each of the public keys is one of a signature key pair generated based on a double linear mapping and a BLS short signature technique and a data file uploaded to the data storage server is encrypted based on the generated signature key pair User data integrity verification device.
제9항에 있어서, 상기 챌린지값 생성부는
상기 데이터 저장 서버로부터 데이터 파일 전체 블럭(n) 중 임의로 선정한 몇 개(c)의 블록들을 포함하는 임의의 부분집합(I)을 상기 통신 인터페이스부를 통해 제공받고, 상기 부분집합(I)에 대하여 챌린지 값을 생성하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 장치.
10. The apparatus of claim 9, wherein the challenge value generator
(I) including some arbitrarily selected blocks (c) of the entire data file block (n) from the data storage server via the communication interface, and a challenge for the subset (I) Value of the user data.
제10항에 있어서, 상기 챌린지값 생성부는
하기의 수학식2에 의거하여 챌린지 값을 생성하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 장치.
(수학식2)
Figure 112014082815340-pat00063

이 때,
Figure 112014082815340-pat00064
Figure 112014082815340-pat00065
번째 블록에 해당하는 난수로써 임의로 생성한다.
11. The apparatus of claim 10, wherein the challenge value generator
And generates a challenge value based on Equation (2) below.
(2)
Figure 112014082815340-pat00063

At this time,
Figure 112014082815340-pat00064
The
Figure 112014082815340-pat00065
Th block.
제9항에 있어서, 상기 검증부는
하기의 수학식5에 의거하여 상기 증명값을 검증하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 장치.
(수학식 5)
Figure 112014082815340-pat00066




















The apparatus of claim 9, wherein the verifying unit
Wherein the verification unit verifies the verification value based on Equation (5) below.
(5)
Figure 112014082815340-pat00066




















KR1020140114170A 2014-08-29 2014-08-29 User data integrity verification method and apparatus KR101593675B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140114170A KR101593675B1 (en) 2014-08-29 2014-08-29 User data integrity verification method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140114170A KR101593675B1 (en) 2014-08-29 2014-08-29 User data integrity verification method and apparatus

Publications (1)

Publication Number Publication Date
KR101593675B1 true KR101593675B1 (en) 2016-02-15

Family

ID=55357459

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140114170A KR101593675B1 (en) 2014-08-29 2014-08-29 User data integrity verification method and apparatus

Country Status (1)

Country Link
KR (1) KR101593675B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109951296A (en) * 2019-03-05 2019-06-28 北京邮电大学 A kind of remote data integrity verification method based on short signature
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
CN116112216A (en) * 2022-12-15 2023-05-12 中国电信股份有限公司 Cloud data verification method and device, electronic equipment and nonvolatile storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
은하수 외 2인, 컴퓨터 및 통신 시스템 제2권 제11호, "계수행렬을 이용한 외부 스토리지 무결성 검증 기법" (2013.11. 공개)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109951296A (en) * 2019-03-05 2019-06-28 北京邮电大学 A kind of remote data integrity verification method based on short signature
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
CN116112216A (en) * 2022-12-15 2023-05-12 中国电信股份有限公司 Cloud data verification method and device, electronic equipment and nonvolatile storage medium
CN116112216B (en) * 2022-12-15 2024-05-14 中国电信股份有限公司 Cloud data verification method and device, electronic equipment and nonvolatile storage medium

Similar Documents

Publication Publication Date Title
KR102472231B1 (en) Blockchain implementation method and system
CN106664202B (en) Method, system and computer readable medium for providing encryption on multiple devices
US20220191012A1 (en) Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System
KR101658501B1 (en) Digital signature service system based on hash function and method thereof
US9621524B2 (en) Cloud-based key management
US9673979B1 (en) Hierarchical, deterministic, one-time login tokens
CN111708991A (en) Service authorization method, service authorization device, computer equipment and storage medium
KR101082917B1 (en) Method for verifying the integrity of a user's data in remote computing and System thereof
US20150244522A1 (en) Method and system for providing data security
US20170272251A1 (en) Method of performing keyed-hash message authentication code (hmac) using multi-party computation without boolean gates
US11489660B2 (en) Re-encrypting data on a hash chain
US20220014367A1 (en) Decentralized computing systems and methods for performing actions using stored private data
KR102137122B1 (en) Security check method, device, terminal and server
CN107359998A (en) A kind of foundation of portable intelligent password management system and operating method
US11153074B1 (en) Trust framework against systematic cryptographic
CN110445840B (en) File storage and reading method based on block chain technology
US20190081783A1 (en) Method for storing data on a storage entity
KR101580514B1 (en) Method and apparatus for managing a password by using the seed key and computer readable recording medium applying the same
KR101593675B1 (en) User data integrity verification method and apparatus
GB2546612A (en) Password-authenticated public key encryption and decryption
KR101586439B1 (en) User data integrity verification method and apparatus capable of guaranteeing privacy
Kwon et al. A secure and efficient audit mechanism for dynamic shared data in cloud storage
US20210035018A1 (en) Apparatus for verifying integrity of AI learning data and method therefor
CN111914270A (en) Programmable authentication service method and system based on block chain technology
WO2022206203A1 (en) Connection resilient multi-factor authentication

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: 20190201

Year of fee payment: 4