一種面向云存儲(chǔ)的遠(yuǎn)程數(shù)據(jù)完整性驗(yàn)證方法
【專利摘要】本發(fā)明提出一種面向云存儲(chǔ)的遠(yuǎn)程數(shù)據(jù)完整性驗(yàn)證方法,利用聚合簽名、指定證明人簽名技術(shù),實(shí)現(xiàn)了用戶以及第三方審計(jì)人對(duì)用戶數(shù)據(jù)完整性的驗(yàn)證功能,同時(shí)保證用戶用于數(shù)據(jù)完整性的信息不被泄露;通過零知識(shí)證明技術(shù)實(shí)現(xiàn)了驗(yàn)證信息的透明度控制,當(dāng)用戶和服務(wù)器發(fā)生爭(zhēng)議時(shí),第三方審計(jì)人可以通過一種非交互式的零知識(shí)證明技術(shù),產(chǎn)生不可否認(rèn)的高置信度證明。本發(fā)明在云存儲(chǔ)服務(wù)提供商不可信的情況下,也能夠保證云數(shù)據(jù)完整性驗(yàn)證的準(zhǔn)確性,具有易于實(shí)現(xiàn),成本低,數(shù)據(jù)保護(hù)性強(qiáng),支持第三方審計(jì),隱私保護(hù)機(jī)制靈活等優(yōu)點(diǎn)。
【專利說明】一種面向云存儲(chǔ)的遠(yuǎn)程數(shù)據(jù)完整性驗(yàn)證方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種面向云存儲(chǔ)的遠(yuǎn)程數(shù)據(jù)完整性驗(yàn)證方法,具體涉及根據(jù)數(shù)據(jù)完整性驗(yàn)證、指定證明人簽名和零知識(shí)證明理論,為云存儲(chǔ)中的數(shù)據(jù)提供安全高效、支持公共認(rèn)證、第三方驗(yàn)證以及具有隱私保護(hù)的完整性驗(yàn)證方法,屬于信息安全【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]云計(jì)算的數(shù)據(jù)服務(wù)外包可以減少數(shù)據(jù)所有者本地的存儲(chǔ)和維護(hù)壓力,然而云計(jì)算在給用戶帶來便利的同時(shí),也為用戶數(shù)據(jù)帶來了新的安全挑戰(zhàn)。由于用戶失去了對(duì)數(shù)據(jù)可靠性和安全性的物理控制,云存儲(chǔ)中的數(shù)據(jù)完整性成為用戶擔(dān)心的安全問題之一。由于大規(guī)模數(shù)據(jù)所導(dǎo)致的巨大通信代價(jià),用戶不可能將數(shù)據(jù)下載到本地后再驗(yàn)證其正確性。因此,如何保障云服務(wù)器中數(shù)據(jù)的安全,如何幫助用戶進(jìn)行數(shù)據(jù)完整性驗(yàn)證就成為一個(gè)研究熱點(diǎn)。
[0003]經(jīng)對(duì)現(xiàn)有技術(shù)文獻(xiàn)的檢索發(fā)現(xiàn),實(shí)現(xiàn)數(shù)據(jù)完整性驗(yàn)證的方法主要基于數(shù)字簽名(Digital Signatures)和梅克爾散列樹(Merkle Hash Tree)。典型的工作包括:數(shù)據(jù)可恢復(fù)性證明(Proofs of Retrievabi I ity, P0R)和可證明數(shù)據(jù)擁有(ProvableData Possession, PDP)。Shacham 和 Waters2008 年在發(fā)表于《Thel4th InternationalConference on the Theory and Application of Cryptology and InformationSecurity (第14屆密碼學(xué)與信息安全理論與應(yīng)用國際會(huì)議)》的論文《Compact Proofs ofRetrievability (緊湊的可恢復(fù)性證明)》中提出了一種普遍的緊湊可恢復(fù)性證明模型,該模型基于數(shù)據(jù)分片技術(shù)的通用思想,使用數(shù)學(xué)上的同態(tài)性質(zhì),對(duì)于t個(gè)挑戰(zhàn)塊構(gòu)成的證明,能夠在0(t)計(jì)算復(fù)雜性下聚合該證明,生成一個(gè)0(1)長(zhǎng)度認(rèn)證值。Wang等人于2009年發(fā)表在〈〈The 14th European Symposium on Research in Computer Security (第 14 屆歐洲計(jì)算機(jī)安全性研究討論年會(huì))》的論文《Enabling Public Verifiability and DataDynamics for Storage Security in Cloud Computing (云計(jì)算中具有公開驗(yàn)證和數(shù)據(jù)動(dòng)態(tài)化的安全存儲(chǔ)方法》中提出了一種結(jié)合同態(tài)認(rèn)證和梅克爾散列樹(MHT),在云計(jì)算環(huán)境下支持公開驗(yàn)證和數(shù)據(jù)動(dòng)態(tài)化的存儲(chǔ)方法。然而在這些方案中,攻擊者仍然有可能利用公開驗(yàn)證協(xié)議收集足夠多的信息,破解出數(shù)據(jù),造成數(shù)據(jù)所有者的數(shù)據(jù)泄密。因此這些方案存在著信息泄露的風(fēng)險(xiǎn),不適合實(shí)際工程應(yīng)用。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要克服現(xiàn)有技術(shù)的不足,提供一種基于指定證明人簽名方法和零知識(shí)證明技術(shù)面向云存儲(chǔ)的遠(yuǎn)程數(shù)據(jù)完整性驗(yàn)證方法,簽名人采用不可否認(rèn)數(shù)字簽名,但在計(jì)算簽名的時(shí)候結(jié)合了證明人的公鑰,驗(yàn)證必須在簽名人或指定證明人的配合下才能進(jìn)行,加強(qiáng)簽名者的不可否認(rèn)性,在用戶數(shù)量大、服務(wù)器不可靠等復(fù)雜的實(shí)際工程中,保證用戶遠(yuǎn)程驗(yàn)證云數(shù)據(jù)的完整性,支持?jǐn)?shù)據(jù)動(dòng)態(tài)更新、公開驗(yàn)證、第三方驗(yàn)證、保護(hù)用戶隱私。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明首先進(jìn)行系統(tǒng)初始化,用戶(User, U)使用Reed-Solomon編碼將被存儲(chǔ)的文件分割為若干個(gè)數(shù)據(jù)塊。用戶通過“挑戰(zhàn)-應(yīng)答”模式向云存儲(chǔ)服務(wù)器中提出文件完整性驗(yàn)證的請(qǐng)求。云存儲(chǔ)服務(wù)器(Cloud Storage Server, CSS)根據(jù)被抽查到的數(shù)據(jù)塊,生成一個(gè)消息聚合和關(guān)于該消息聚合的指定證明人簽名,同時(shí)加入根節(jié)點(diǎn)的信息,生成一個(gè)用戶可直接計(jì)算的數(shù)據(jù)完整性證明。用戶對(duì)該證明進(jìn)行一定的計(jì)算即可驗(yàn)證所存儲(chǔ)的數(shù)據(jù)文件是否有所缺損。同時(shí),因?yàn)樯傻闹付ㄗC明人簽名嵌入了第三方審計(jì)人(Third Party Auditor, TPA)的公鑰,第三方審計(jì)人也可以對(duì)該數(shù)據(jù)完整性進(jìn)行同等程度的計(jì)算驗(yàn)證。另一方面,為了防止用戶誤用/濫用數(shù)據(jù)完整性信息,第三方審計(jì)人在必要時(shí)為數(shù)據(jù)完整性證明提供一個(gè)非交互式的零知識(shí)證明,任何人都可以驗(yàn)證該零知識(shí)證明以獲知數(shù)據(jù)完整性信息,達(dá)到有效保護(hù)和靈活控制用戶驗(yàn)證數(shù)據(jù)完整性信息的目的。
[0006]本發(fā)明的方法通過以下具體步驟實(shí)現(xiàn):
[0007]I系統(tǒng)初始化
[0008]系統(tǒng)運(yùn)行雙線性Diffie-Hellman (Bilinear Diffie-Hellman, BDH)參數(shù)生成器,產(chǎn)生兩個(gè)階為素?cái)?shù)q的雙線性群G,Gt,g是群G的生成元e:GXG — Gt為雙線性對(duì)運(yùn)算,定義一個(gè)安全的Hash函數(shù)H: {0,1}* —G。
[0009]給定文件F,系統(tǒng)使用Reed-Solomon編碼將文件分為η塊FOii1.ηι2,...,mn)其中mi € Z*o
[0010]2系統(tǒng)生成密鑰
[0011]系統(tǒng)運(yùn)行密鑰生成算法KeyGen,為用戶U生成私鑰:隨機(jī)數(shù)々effZ〗,則相應(yīng)的公鑰為也-=firr;類似地,系統(tǒng)為第三方審計(jì)人TPA生成私鑰:隨機(jī)數(shù)々m Cu ZJ5則相應(yīng)的
【權(quán)利要求】
1.一種面向云存儲(chǔ)的遠(yuǎn)程數(shù)據(jù)完整性驗(yàn)證方法,其特征在于包括以下步驟: 步驟1,系統(tǒng)初始化 系統(tǒng)運(yùn)行雙線性 Diffie-Hellman (Bilinear Diffie-Hellman, BDH)參數(shù)生成器,產(chǎn)生兩個(gè)階為素?cái)?shù)q的雙線性群G,Gt, g是群G的生成元,e:GXG → Gt為雙線性對(duì)運(yùn)算,定義一個(gè)安全的Hash函數(shù)H: {0,1)* → G; 給定文件F,系統(tǒng)使用Reed-Solomon編碼將文件分為η塊FOii1, m2,..., mn)其中mi, ∈ Z*q, 步驟2,系統(tǒng)生成密鑰 系統(tǒng)運(yùn)行密鑰生成算法KeyGen,為用戶U生成私鑰:隨機(jī)數(shù)《V ,則相應(yīng)的公鑰為yu=grv 類似地,系統(tǒng)為第三方審計(jì)人TPA生成私鑰:隨機(jī)數(shù)則相應(yīng)的公鑰為yTpA = gxtpa 步驟3,用戶存儲(chǔ)文件 用戶運(yùn)行簽名生成算法SigGenkku,F(xiàn))為每一個(gè)數(shù)據(jù)塊Hii生成一個(gè)同態(tài)認(rèn)證值(homomorphic authenticator): σi, = (h(mi).umi)xv 作為文件的元數(shù)據(jù),所有數(shù)據(jù)塊的同態(tài)認(rèn)證值是可以聚集成一個(gè)標(biāo)簽值Φ = {σi},l≤i≤n; 用戶采用Merkle哈希樹將各數(shù)據(jù)塊結(jié)構(gòu)化,同時(shí)對(duì)根節(jié)點(diǎn)R進(jìn)行簽名=乖產(chǎn),將{F,Φ, σr}發(fā)送給云存儲(chǔ)服務(wù)器CSS。 步驟4,一般完整性驗(yàn)證 .4.1用戶發(fā)出挑戰(zhàn)請(qǐng)求 用戶U對(duì)文件F進(jìn)行數(shù)據(jù)完整性驗(yàn)證時(shí),生成一組挑戰(zhàn)信息ctol = {(si,ti)}s1≤i≤sc,送給云存儲(chǔ)服務(wù)器CSS,其中I = {s1;..., sj , S1 ≤ i≤ sc,對(duì)于每一個(gè)Si ∈ I, Si表不第i個(gè)數(shù)據(jù)塊Hii的索引,隨機(jī)數(shù)ri ∈ z*q;; .4.2服務(wù)器生成證明 云存儲(chǔ)服務(wù)器CSS接收到用戶U發(fā)送的挑戰(zhàn)信息之后,計(jì)算生成一段證明:
【文檔編號(hào)】H04L29/06GK103699851SQ201310601738
【公開日】2014年4月2日 申請(qǐng)日期:2013年11月22日 優(yōu)先權(quán)日:2013年11月22日
【發(fā)明者】夏瑩杰, 夏伏彪, 劉雪嬌, 王貴林 申請(qǐng)人:杭州師范大學(xué)