KR101593675B1 - 사용자 데이터의 무결성 검증 방법 및 그 장치 - Google Patents

사용자 데이터의 무결성 검증 방법 및 그 장치 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
English (en)
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/ko
Application granted granted Critical
Publication of KR101593675B1 publication Critical patent/KR101593675B1/ko

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

사용자 데이터의 무결성 검증 방법이 개시된다. 본 발명의 사용자 데이터 무결성 검증 방법은 겹선형 사상 및 BLS 짧은 서명 기법에 기초하여 서명키 쌍을 생성하는 단계; 업로드할 데이터 파일을 소정개의 블록으로 분할하고 상기 서명키 쌍 생성 단계에서 생성된 서명키 쌍에 의거하여 암호화한 후 데이터 저장 서버에 업로드 하는 데이터 아웃소싱 단계; 상기 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일 일부에 대한 챌린지(challenge)값을 생성하여 상기 데이터 저장 서버로 전송하는 단계; 데이터 업로드시 전송된 정보와 상기 챌린지값에 기초하여 증명값(proof)을 생성하고, 그 증명값을 상기 제2 단말로 전송하는 단계; 및 상기 증명값(proof)과 공개키들을 이용하여 상기 증명값(proof)의 정당성을 검증하는 단계를 포함한다.

Description

사용자 데이터의 무결성 검증 방법 및 그 장치{USER DATA INTEGRITY VERIFICATION METHOD AND APPARATUS}
본 발명은 사용자 데이터의 무결성 검증 방법 및 그 장치에 관한 것으로서, 특히, 클라우드 환경에서 데이터 소유주가 자신의 데이터를 서버에 업로드한 후, 서버나 다른 공격자의 악의적인 행동으로부터 자신의 데이터가 훼손되지 않고 저장되어 있는지를 확인하는 사용자 데이터의 무결성 검증 방법 및 그 장치에 관한 것이다.
최근 사용자가 네트워크나 컴퓨터를 의식하지 않고 장소에 상관없이 자유롭게 네트워크에 접속할 수 있는 정보 통신 환경을 일컫는 유비쿼터스(Ubiquitous) 환경이 일반화되어 감에 따라 원격 컴퓨팅(remote computing)도 함께 확장되는 추세에 있으며, 이러한 원격 컴퓨팅 중 특히 클라우드 컴퓨팅(Cloud computing)이 미래의 컴퓨팅 환경을 주도할 새로운 패러다임으로 부각되고 있다.
클라우드 컴퓨팅이란 정보가 인터넷 상의 서버에 영구적으로 저장되고, IT 기기 등(예컨대, 데스크 데스크톱, 태블릿컴퓨터, 노트북, 넷북, 스마트폰 등)과 같은 클라이언트에는 일시적으로 보관되는 컴퓨터 환경을 뜻한다. 즉 이용자의 모든 정보를 인터넷 상의 서버에 저장하고, 이 정보를 각종 IT 기기를 통하여 언제 어디서든 이용할 수 있도록 한다는 개념이다.
다시 말해, 클라우드 컴퓨팅 서비스는 구름(cloud)과 같이 무형의 형태로 존재하는 하드웨어나 소프트웨어 등의 컴퓨팅 자원을 자신이 필요한 만큼 빌려 쓰고 이에 대한 사용요금을 지급하는 방식의 컴퓨팅 서비스로, 서로 다른 물리적인 위치에 존재하는 컴퓨팅 자원을 가상화 기술로 통합해 제공하는 기술을 말한다.
클라우드 컴퓨팅을 도입하면 기업 또는 개인은 컴퓨터 시스템을 유지, 보수 및 관리하기 위하여 들어가는 비용과 시간을 줄일 수 있으며, 서버의 구매, 설치, 업데이트 및 소프트웨어 구매를 위한 엄청난 비용과 시간 및 인력을 줄일 수 있다. 또한, 에너지 절감에도 기여할 수 있다. 한편, PC에 자료를 보관할 경우 하드디스크 장애 등으로 인하여 자료가 손실될 수도 있지만 클라우드 컴퓨팅 환경에서는 외부 서버에 자료들이 저장되기 때문에 안전하게 자료를 보관할 수 있고, 저장 공간의 제약도 극복할 수 있으며, 언제 어디서든 자신이 작업한 문서 등을 열람 및 수정할 수 있다.
반면, 서버가 해킹을 당할 경우 개인정보가 유출될 수 있고, 서버 장애가 발생하면 자료 이용이 불가능하다는 단점이 있다. 따라서, 클라우드 컴퓨팅이 미래의 컴퓨팅 환경에서의 지배적인 위치를 확보하기 위해 선결되어야 할 사항은 바로 사용자 데이터에 대한 무결성(integrity)이 보장되어야 한다.
따라서, 최근 클라우드 서버에 아웃소싱(outsourcing)한 데이터들의 무결성을 검사하는 기술들에 대한 연구가 활발하게 진행되고 있다. 하기의 선행기술문헌 1에서는 아웃소싱(outsourcing)한 데이터의 무결성을 감사할 수 있으면서 데이터의 추가/삭제가 용이한 기법을 제안한다. 하지만, 감사 과정에서 감사자(auditor)에게 저장한 데이터가 노출되어 안전성이 결여되는 문제가 있다. 이러한 문제를 보완하기 위해, 선행기술문헌 2,3,4에서는 아웃소싱(outsourcing)한 데이터들의 무결성을 누구나 감사할 수 있는 기법을 제안하였다. 그런데 선행기술문헌 5에서 이러한 기법들이 감사과정에서 주고받는 값들의 준동형적(Homomorphic) 성질 때문에 안전하지 않음을 보였다. 이후에 선행기술문헌 6에서 안전성을 보완하기 위한 새로운 기법을 제안하지만 이 기법 또한 선행기술문헌 7에 의해 안전하지 않다는 것이 증명되었다. 한편, 선행기술문헌 8에서도 데이터의 안전성을 보완하기 위한 새로운 기법을 제안하고 있지만, 이 또한 선행기술문헌 5,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. 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. 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. 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. 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.
따라서 본 발명은 클라우드 컴퓨팅 환경에서 사용자 데이터의 무결성을 검증하는 방법 및 그 장치를 제공하고자 한다.
또한, 본 발명은 클라우드 컴퓨팅 환경에서 다양한 공격에 대하여도 데이터의 안전성을 보장하는 사용자 데이터의 무결성을 검증하는 방법 및 장치를 제공하고자 한다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 사용자 데이터의 무결성 검증 방법은 데이터 파일을 생성하는 제1 단말, 상기 데이터 파일을 저장하는 인터넷 상의 데이터 저장 서버, 상기 데이터 저장 서버에 저장된 데이터 파일의 무결성을 감사하는 제2 단말 간의 상호 관계에 의거하여 사용자 데이터의 무결성을 검증하는 사용자 데이터 무결성 검증 방법에 있어서, 상기 제1 단말이 겹선형 사상 및 BLS 짧은 서명 기법에 기초하여 서명키 쌍을 생성하는 단계; 상기 제1 단말이 업로드할 데이터 파일을 소정개의 블록으로 분할하고 상기 서명키 쌍 생성 단계에서 생성된 서명키 쌍에 의거하여 암호화한 후 데이터 저장 서버에 업로드 하는 데이터 아웃소싱 단계; 상기 제2 단말이 상기 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일 일부에 대한 챌린지(challenge)값을 생성하여 상기 데이터 저장 서버로 전송하는 단계; 상기 데이터 저장 서버가 데이터 업로드시 전송된 정보와 상기 챌린지값에 기초하여 증명값(proof)을 생성하고, 그 증명값을 상기 제2 단말로 전송하는 단계; 및 상기 제2 단말이 상기 증명값(proof)과 공개키들을 이용하여 상기 증명값(proof)의 정당성을 검증하는 단계를 포함한다.
바람직하게는, 상기 서명키 쌍 생성 단계는 정수 집합의 원소인 제1 난수(x)를 포함하는 비밀키와, 정수 집합의 원소인 제2 난수(k) 및 겹선형 사상에 의거한 성질을 만족하는 복수의 난수들(v,g,u,e(u,v))을 포함하는 공개키를 생성할 수 있다.
바람직하게는, 상기 데이터 아웃소싱 단계는 업로드할 데이터 파일(
(
Figure 112014082815340-pat00001
)을 소정개로 분할하는 단계; 상기 BLS 짧은 서명 기법에 의거하여, 상기 서명키 쌍 생성 단계에서 생성된 비밀키 및 공개키가 반영된 태그(
Figure 112014082815340-pat00002
)를 상기 분할된 데이터 각각에 대하여 생성하는 단계; 상기 파일 이름(name)에 대한 서명값(SSigssk( name ))을 생성하는 단계; 및 상기 데이터 파일(
Figure 112014082815340-pat00003
), 태그(
Figure 112014082815340-pat00004
) 및 서명값이 부가된 파일명(
Figure 112014082815340-pat00005
)을 함께 업로드하는 단계를 포함할 수 있다.
바람직하게는, 상기 챌린지값 전송단계는 상기 데이터 저장 서버로부터 데이터 파일 전체 블럭(n) 중 임의로 선정한 몇 개(c)의 블록들을 포함하는 임의의 부분집합(I)을 제공받는 단계; 상기 부분집합(I)에 대하여 챌린지 값을 생성하는 단계; 및 상기 챌린지 값을 상기 데이터 저장 서버로 전송하는 단계를 포함할 수 있다.
한편, 상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 사용자 데이터의 무결성 검증 장치는 데이터 파일을 저장하는 데이터 저장 서버와의 인터페이스를 제공하는 통신 인터페이스부; 상기 데이터 저장 서버에 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일에 일부에 대한 챌린지 값을 생성하여 상기 데이터 저장 서버로 전송하는 챌린지값 생성부; 및 상기 챌린지값 및 데이터 업로드시 전송된 정보에 기초하여 상기 데이터 저장 서버에서 생성된 증명값을 제공받아 그 증명값의 정당성을 검증하는 검증부를 포함한다.
바람직하게는, 상기 챌린지값 생성부는 상기 데이터 저장 서버로부터 데이터 파일 전체 블럭(n) 중 임의로 선정한 몇 개(c)의 블록들을 포함하는 임의의 부분집합(I)을 상기 통신 인터페이스부를 통해 제공받고, 상기 부분집합(I)에 대하여 챌린지 값을 생성할 수 있다.
본 발명은 겹선형 사상(bilinear maps) 기법과 BLS 짧은 서명(BLS short signature) 기법을 적용하여 사용자 데이터의 무결성을 검증함으로서, 클라우드 컴퓨팅 환경에서 다양한 공격에 대하여도 데이터의 안전성을 보장하는 효과가 있다.
도 1은 본 발명의 사용자 데이터 무결성 검증 방법을 구현하기 위한 시스템 구성도를 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 방법에 대한 시스템간 처리 절차도이다.
도 3은 도 2에 예시된 암호화 과정에 대한 개략적인 처리 흐름도이다.
도 4는 도 2에 예시된 챌린지값 생성 과정에 대한 개략적인 처리 흐름도이다.
도 5는 도 2에 예시된 증명값 생성 과정에 대한 개략적인 처리 흐름도이다.
도 6은 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 장치에 대한 개략적인 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 사용자 데이터 무결성 검증 방법을 구현하기 위한 시스템 구성도를 도시한 도면이다. 도 1을 참조하면 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 방법은 통신망으로 연결된 데이터 소유주(100), 데이터 저장 서버(200) 및 감사자(300)가 서로 상호 작용을 함으로써 구현할 수 있다. 즉, 데이터 소유주(100)가 자신의 데이터를 데이터 저장 서버(200)에 업로드(S10)하면, 데이터 저장서버(200)는 그 데이터 파일을 저장(S20)하고, 감사자(300)는 데이터 저장서버(200)에 저장된 데이터 파일에 대한 데이터 무결성 검증(S30)을 실시한다.
이를 위해, 각 장치들은 서로 약속된 프로토콜에 의해 상호 작용을 하여야 하며, 본 발명은 겹선형 사상(bilinear maps)과, BLS 짧은 서명(BLS short signature) 알고리즘이 적용되었다.
도 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)와 같은 블럭 알고리즘이라고 한다.
먼저, 단계 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))이다.
단계 S110에서, 제1 단말(100A)은 업로드할 데이터 파일을 소정개의 블록으로 분할하고 상기 서명키 쌍 생성 단계에서 생성된 서명키 쌍에 의거하여 암호화한다. 이 때, 암호화를 위한 처리 과정의 예가 도 3에 예시되어 있다.
도 3은 도 2에 예시된 암호화 과정(S110)에 대한 개략적인 처리 흐름도로서, 도 3을 참조하면, 암호화를 위해, 단계 S111에서, 제1 단말(100A)은 업로드할 데이터 파일(
Figure 112014082815340-pat00006
)을 소정개로 분할한다. 그리고, 단계 S112에서는, 상기 BLS 짧은 서명 기법에 의거하여, 상기 서명키 쌍 생성 단계에서 생성된 비밀키 및 공개키가 반영된 태그(
Figure 112014082815340-pat00007
)를 상기 분할된 모든 데이터 각각에 대하여 생성한다. 이를 위해, 제1 단말(100A)은 하기의 수학식1을 적용한다.
Figure 112014082815340-pat00008
이 때, i는 분할된 데이터 중 i번째 파일에 대한 태그,
Figure 112014082815340-pat00009
,
Figure 112014082815340-pat00010
은 파일 F의 id,
Figure 112014082815340-pat00011
는 i번째 파일을 공개키k로 암호화한 값, x는 비밀키이다.
단계 S113에서, 제1 단말(100A)은 상기 업로드할 데이터 파일의 이름(name)에 대한 서명값(SSigssk( name ))을 생성한다. 이 때, SSig는 안전한 전자 서명기법으로서, 공지된 다양한 서명 알고리즘을 적용할 수 있다.
이와 같이 암호화 과정(S110)이 수행되면, 도 2의 단계 S115에서, 제1 단말(100A)은 데이터 파일(
Figure 112014082815340-pat00012
), 태그(
Figure 112014082815340-pat00013
) 및 서명값이 부가된 파일명(
Figure 112014082815340-pat00014
)을 데이터 저장서버(200)로 업로드한다.
한편, 단계 S120에서, 데이터 저장서버(200)는 상기 업로드된 데이터를 저장한다. 또한, 단계 S125에서, 데이터 저장서버(200)는 그 저장된 데이터에 대한 정보 일부를 제2 단말(300A)에게 제공한다. 이는 제2 단말(300A)이 그 데이터에 대한 챌린지(challenge)값을 생성하도록 하기 위함이다. 즉, 단계 S130에서, 제2 단말(300A)은 데이터 저장 서버(200)에 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일 일부에 대한 챌린지(challenge)값을 생성하고, 단계 S135에서, 그 챌린지(challenge) 값을 데이터 저장 서버(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를 적용한다.
Figure 112014082815340-pat00015
이 때,
Figure 112014082815340-pat00016
Figure 112014082815340-pat00017
번째 블록에 해당하는 난수로써 임의로 생성한다.
이와 같이 챌린지 값이 생성되면, 도 2의 단계 S135에서, 제2 단말(300A)은 그 챌린지값을 데이터 저장 서버(200)로 전송한다.
그러면, 단계 S140에서, 데이터 저장 서버(200)는 데이터 업로드시 전송된 정보(t, mi,
Figure 112014082815340-pat00018
)와 상기 챌린지값에 기초하여 증명값(proof)을 생성한다.
도 5는 도 2에 예시된 증명값 생성 과정(S140)에 대한 개략적인 처리 흐름도로서, 도 5를 참조하면, 단계 S141에서, 데이터 저장서버(200)는 정수 집합의 원소인 임의의 제3 난수(r)를 생성하고, 상기 제3 난수(r)에 기초하여 제1 증명값(R)을 생성한다. 이를 위해, 데이터 저장서버(200)는 난수 r ← ZP를 생성하고, 그 값에 의거하여 제1 증명값(R = e(u,v)r)을 생성한다.
또한, 단계 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
)를 생성한다.
Figure 112014082815340-pat00025
이 때,
Figure 112014082815340-pat00026
는 챌린지값,
Figure 112014082815340-pat00027
는 i번째 파일을 공개키k로 암호화한 값이다.
제2 증명값(
Figure 112014082815340-pat00028
)은 제1 변수(
Figure 112014082815340-pat00029
)와 제2 변수(
Figure 112014082815340-pat00030
)를 곱한 값을 제3 난수(r)에 합산(
Figure 112014082815340-pat00031
)하여 구할 수 있다.
한편, 단계 S143에서, 데이터 저장서버(200)는 데이터 업로드시 수신한 태그정보(
Figure 112014082815340-pat00032
)에 의거하여 제3 증명값()을 생성한다. 이를 위해, 데이터 저장서버(200)는 하기의 수학식4를 적용한다.
Figure 112014082815340-pat00033
이 때,
Figure 112014082815340-pat00034
는 데이터 업로드시 수신한 i번째 파일의 태그값,
Figure 112014082815340-pat00035
는 챌린지값이다.
이와 같이 증명값(proof(μ,σ,R))을 생성한 데이터 저장 서버(200)는 도 2의 단계 S145에서, 이를 제2 단말(300A)에게 전송한다.
도 2의 단계 S150에서, 제2 단말(300A)는 상기 증명값(proof(μ,σ,R))과 공개키들을 이용하여 상기 증명값(proof(μ,σ,R))의 정당성을 검증한다. 이를 위해, 제2 단말(300A)은 하기의 수학식 5를 적용한다.
Figure 112014082815340-pat00036
이 때, 상기 수학식 5가 성립하기 위한 검증 단계는 다음과 같다.
Figure 112014082815340-pat00037

이와 같이 수학식 5가 성립되면 상기 증명값(μ,σ,R))이 정당한 것이고, 해당 데이터의 무결성이 보장된 것으로 간주한다.
도 6은 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 장치에 대한 개략적인 블록도이다. 도 6을 참조하면, 본 발명의 일 실시 예에 따른 사용자 데이터 무결성 검증 장치(300A)는 사용자 인터페이스부(I/F)(310), 제어부(320), 챌린지값 생성부(330), 검증부(340) 및 통신 인터페이스부(I/F)(350)를 포함한다.
사용자 인터페이스부(I/F)(310)는 사용자와의 인터페이스를 제공한다. 예를 들어, 데이터 무결성 검증을 위한 데이터 선택 정보 등 사용자의 선택정보 및 조작신호를 입력받아 제어부(320)로 전달한다.
제어부(320)는 미리 설정된 제어 프로그램에 의거하여 사용자 데이터 무결성 검증 장치의 동작을 제어한다. 특히, 사용자 선택정보 또는 조작신호에 의거하여 챌린지값 생성부(330) 및 검증부(340)의동작을 제어한다.
챌린지값 생성부(330)는 클라우드 컴퓨팅 환경에서, 클라우드 서버 역할을 하는 데이터 저장 서버(도 1의 '200')에 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일에 일부에 대한 챌린지 값을 생성한다. 그리고 통신 인터페이스부(I/F)(350)를 통해 그 챌린지값을 데이터 저장서버(도 1의 '200')로 전송한다. 이를 위해, 챌린지값 생성부(330)는, 통신 인터페이스부(I/F)(350)를 통해, 데이터 저장 서버(도 1의 '200')로부터 데이터 파일 전체 블럭(n) 중 임의로 선정한 몇 개(c)의 블록들을 포함하는 임의의 부분집합(I)을 제공받고, 상기 부분집합(I)에 대하여 챌린지 값을 생성한다. 또한, 챌린지값 생성부(330)는 도 4를 참조한 설명에서 언급된 수학식2에 의거하여 챌린지 값을 생성하는 것이 바람직하다.
검증부(340)는 상기 챌린지값 및 데이터 업로드시 전송된 정보에 기초하여 상기 데이터 저장 서버에서 생성된 증명값을 제공받아 그 증명값의 정당성을 검증한다. 이를 위해, 검증부(240)는 도 2를 참조한 설명에서 언급된 수학식5에 의거하여 상기 증명값을 검증하는 것이 바람직하다.
통신 인터페이스부(I/F)(350)는 데이터 파일을 저장하는 데이터 저장 서버(도 1의 '200')와의 인터페이스를 제공한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (12)

  1. 데이터 파일을 생성하는 제1 단말, 상기 데이터 파일을 저장하는 인터넷 상의 데이터 저장 서버, 상기 데이터 저장 서버에 저장된 데이터 파일의 무결성을 감사하는 제2 단말 간의 상호 관계에 의거하여 사용자 데이터의 무결성을 검증하는 사용자 데이터 무결성 검증 방법에 있어서,
    상기 제1 단말이 겹선형 사상 및 BLS 짧은 서명 기법에 기초하여 서명키 쌍을 생성하는 단계;
    상기 제1 단말이 업로드할 데이터 파일을 소정개의 블록으로 분할하고 상기 서명키 쌍 생성 단계에서 생성된 서명키 쌍에 의거하여 암호화한 후 데이터 저장 서버에 업로드 하는 데이터 아웃소싱 단계;
    상기 제2 단말이 상기 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일 일부에 대한 챌린지(challenge)값을 생성하여 상기 데이터 저장 서버로 전송하는 단계;
    상기 데이터 저장 서버가 데이터 업로드시 전송된 정보와 상기 챌린지값에 기초하여 증명값(proof)을 생성하고, 그 증명값을 상기 제2 단말로 전송하는 단계; 및
    상기 제2 단말이 상기 증명값(proof)과 공개키들을 이용하여 상기 증명값(proof)의 정당성을 검증하는 단계를 포함하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
  2. 제1항에 있어서, 상기 서명키 쌍 생성 단계는,
    정수 집합의 원소인 제1 난수(x)를 포함하는 비밀키와, 정수 집합의 원소인 제2 난수(k) 및 겹선형 사상에 의거한 성질을 만족하는 복수의 난수들(v,g,u,e(u,v))을 포함하는 공개키를 생성하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
  3. 제2항에 있어서, 상기 데이터 아웃소싱 단계는,
    업로드할 데이터 파일(
    Figure 112014082815340-pat00038
    )을 소정개로 분할하는 단계;
    상기 BLS 짧은 서명 기법에 의거하여, 상기 서명키 쌍 생성 단계에서 생성된 비밀키 및 공개키가 반영된 태그(
    Figure 112014082815340-pat00039
    )를 상기 분할된 데이터 각각에 대하여 생성하는 단계;
    상기 파일 이름(name)에 대한 서명값(SSigssk(name))을 생성하는 단계; 및
    상기 데이터 파일(
    Figure 112014082815340-pat00040
    ), 태그(
    Figure 112014082815340-pat00041
    ) 및 서명값이 부가된 파일명(
    Figure 112014082815340-pat00042
    )을 함께 업로드하는 단계를 포함하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
  4. 제3항에 있어서, 상기 태그 생성단계는,
    하기의 수학식1에 의거하여 상기 분할된 데이터 모두에 대한 태그를 생성하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
    (수학식1)
    Figure 112014082815340-pat00043

    이 때, i는 분할된 데이터 중 i번째 파일에 대한 태그,
    Figure 112014082815340-pat00044
    ,
    Figure 112014082815340-pat00045
    은 파일 F의 id,
    Figure 112014082815340-pat00046
    는 i번째 파일을 공개키k로 암호화한 값, x는 비밀키이다.
  5. 제1항에 있어서, 상기 챌린지값 전송단계는,
    상기 데이터 저장 서버로부터 데이터 파일 전체 블럭(n) 중 임의로 선정한 몇 개(c)의 블록들을 포함하는 임의의 부분집합(I)을 제공받는 단계;
    상기 부분집합(I)에 대하여 챌린지 값을 생성하는 단계; 및
    상기 챌린지 값을 상기 데이터 저장 서버로 전송하는 단계를 포함하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
  6. 제5항에 있어서, 상기 챌린지 값 생성 단계는
    하기의 수학식2에 의거하여 챌린지 값을 생성하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
    (수학식2)
    Figure 112014082815340-pat00047

    이 때,
    Figure 112014082815340-pat00048
    Figure 112014082815340-pat00049
    번째 블록에 해당하는 난수로써 임의로 생성한다.
  7. 제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
    는 챌린지값이다.
  8. 제1항에 있어서, 상기 증명값 검증 단계는
    하기의 수학식5에 의거하여 상기 증명값을 검증하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 방법.
    (수학식 5)
    Figure 112014082815340-pat00062

  9. 데이터 파일을 저장하는 데이터 저장 서버와의 인터페이스를 제공하는 통신 인터페이스부;
    상기 데이터 저장 서버에 업로드된 데이터 파일에 대한 무결성 확인을 위해 상기 데이터 파일에 일부에 대한 챌린지 값을 생성하여 상기 데이터 저장 서버로 전송하는 챌린지값 생성부; 및
    상기 챌린지값 및 데이터 업로드시 전송된 정보에 기초하여 상기 데이터 저장 서버에서 생성된 증명값을 제공받아 공개키들을 이용하여 그 증명값의 정당성을 검증하는 검증부를 포함하고,
    상기 공개키들 각각은 겹선형 사상 및 BLS 짧은 서명 기법에 기초하여 생성된 서명키 쌍 중 하나이고, 상기 데이터 저장 서버에 업로드된 데이터 파일은 상기 생성된 서명키 쌍에 의거하여 암호화된 것을 특징으로 하는 사용자 데이터 무결성 검증 장치.
  10. 제9항에 있어서, 상기 챌린지값 생성부는
    상기 데이터 저장 서버로부터 데이터 파일 전체 블럭(n) 중 임의로 선정한 몇 개(c)의 블록들을 포함하는 임의의 부분집합(I)을 상기 통신 인터페이스부를 통해 제공받고, 상기 부분집합(I)에 대하여 챌린지 값을 생성하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 장치.
  11. 제10항에 있어서, 상기 챌린지값 생성부는
    하기의 수학식2에 의거하여 챌린지 값을 생성하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 장치.
    (수학식2)
    Figure 112014082815340-pat00063

    이 때,
    Figure 112014082815340-pat00064
    Figure 112014082815340-pat00065
    번째 블록에 해당하는 난수로써 임의로 생성한다.
  12. 제9항에 있어서, 상기 검증부는
    하기의 수학식5에 의거하여 상기 증명값을 검증하는 것을 특징으로 하는 사용자 데이터의 무결성 검증 장치.
    (수학식 5)
    Figure 112014082815340-pat00066




















KR1020140114170A 2014-08-29 2014-08-29 사용자 데이터의 무결성 검증 방법 및 그 장치 KR101593675B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140114170A KR101593675B1 (ko) 2014-08-29 2014-08-29 사용자 데이터의 무결성 검증 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140114170A KR101593675B1 (ko) 2014-08-29 2014-08-29 사용자 데이터의 무결성 검증 방법 및 그 장치

Publications (1)

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

Family

ID=55357459

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140114170A KR101593675B1 (ko) 2014-08-29 2014-08-29 사용자 데이터의 무결성 검증 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR101593675B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109951296A (zh) * 2019-03-05 2019-06-28 北京邮电大学 一种基于短签名的远程数据完整性验证方法
US20200313859A1 (en) * 2019-03-29 2020-10-01 Accenture Global Solutions Limited Cryptologic Blockchain-Based Off-Chain Storage Verification
CN114760061A (zh) * 2020-12-29 2022-07-15 深信服科技股份有限公司 数据上传的方法、装置、设备及存储介质
CN116112216A (zh) * 2022-12-15 2023-05-12 中国电信股份有限公司 云数据验证方法、装置、电子设备及非易失性存储介质

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 (zh) * 2019-03-05 2019-06-28 北京邮电大学 一种基于短签名的远程数据完整性验证方法
US20200313859A1 (en) * 2019-03-29 2020-10-01 Accenture Global Solutions Limited Cryptologic Blockchain-Based Off-Chain Storage Verification
CN114760061A (zh) * 2020-12-29 2022-07-15 深信服科技股份有限公司 数据上传的方法、装置、设备及存储介质
CN114760061B (zh) * 2020-12-29 2023-09-05 深信服科技股份有限公司 数据上传的方法、装置、设备及存储介质
CN116112216A (zh) * 2022-12-15 2023-05-12 中国电信股份有限公司 云数据验证方法、装置、电子设备及非易失性存储介质
CN116112216B (zh) * 2022-12-15 2024-05-14 中国电信股份有限公司 云数据验证方法、装置、电子设备及非易失性存储介质

Similar Documents

Publication Publication Date Title
KR102472231B1 (ko) 블록체인 구현 방법 및 시스템
CN110417750B (zh) 基于区块链技术的文件读取和存储的方法、终端设备和存储介质
CN106664202B (zh) 提供多个设备上的加密的方法、***和计算机可读介质
US20220191012A1 (en) Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System
KR101658501B1 (ko) 해시함수 기반의 전자서명 서비스 시스템 및 그 방법
US9621524B2 (en) Cloud-based key management
US9673979B1 (en) Hierarchical, deterministic, one-time login tokens
CN111708991A (zh) 服务的授权方法、装置、计算机设备和存储介质
KR101082917B1 (ko) 원격 컴퓨팅 환경에서 사용자 데이터의 무결성 검증 방법 및 그 시스템
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 (ko) 보안 체크 방법, 장치, 단말기 및 서버
CN107359998A (zh) 一种便携式智能口令管理体制的建立与操作方法
US11153074B1 (en) Trust framework against systematic cryptographic
CN110445840B (zh) 一种基于区块链技术的文件存储和读取的方法
US20190081783A1 (en) Method for storing data on a storage entity
KR101580514B1 (ko) 시드 키를 이용한 패스워드 관리방법, 패스워드 관리장치 및 이를 적용한 컴퓨터로 읽을 수 있는 기록매체
KR101593675B1 (ko) 사용자 데이터의 무결성 검증 방법 및 그 장치
KR101586439B1 (ko) 프라이버시를 보장하는 사용자 데이터의 무결성 검증 방법 및 그 장치
GB2546612A (en) Password-authenticated public key encryption and decryption
US20210035018A1 (en) Apparatus for verifying integrity of AI learning data and method therefor
CN111914270A (zh) 基于区块链技术的可编程认证服务方法和***
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