一種數(shù)據(jù)持有性證明方案的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種云存儲(chǔ)的安全管理技術(shù),具體地說,涉及一種在云環(huán)境下的數(shù)據(jù) 持有性證明方案,屬于信息安全技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 在大數(shù)據(jù)時(shí)代,越來越多的Owner愿意將數(shù)據(jù)委托給云服務(wù)提供商CSP (Cloud Service Provider)管理,降低Owner數(shù)據(jù)管理的成本。另一方面,將數(shù)據(jù)放在云服務(wù)器上 又會(huì)產(chǎn)生各種各樣的數(shù)據(jù)安全性問題。由于CSP并不一定完全可信,CSP可能向Owner隱瞞 由于管理不當(dāng)?shù)仍蛟斐傻臄?shù)據(jù)破壞與丟失,以逃避責(zé)任。數(shù)據(jù)持有性證明PDP (Provable Data Possession)就讓Owner可以驗(yàn)證不可信的CSP是否正確地保存Owner的數(shù)據(jù),防止 CSP修改或刪除數(shù)據(jù)等。
[0003] 縱觀目前已有的數(shù)據(jù)持有性證明PDP方案,存在的問題之一就是計(jì)算開銷大,需 要較多的額外存儲(chǔ)空間。特別是在數(shù)據(jù)量大的情況下,這個(gè)問題將會(huì)更加嚴(yán)重。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明利用NTRU算法的同態(tài)性和hash函數(shù),構(gòu)造一種安全、高效的數(shù)據(jù)持有性證 明方案,為研究數(shù)據(jù)持有性證明開辟一個(gè)新的思路。
[0005] -種數(shù)據(jù)持有性證明方案,其技術(shù)方案如下。
[0006] -種數(shù)據(jù)持有性證明方案,本發(fā)明用到的主要符號(hào)。
[0007] Owner :數(shù)據(jù)擁有者。
[0008] CSP:云服務(wù)提供商。
[0009] KeyGen :密鑰生成模塊 KeyGen 〇
[0010] TagGen :標(biāo)簽生成模塊。
[0011] Challenge :挑戰(zhàn)模塊。
[0012] Proof Gen :證據(jù)生成模塊。
[0013] Verification :驗(yàn)證模塊。
[0014] M :Owner的外包數(shù)據(jù)。
[0015] η:數(shù)據(jù)塊數(shù)目,即將Μ劃分成η個(gè)固定大小的塊。
[0016] m1:M中的數(shù)據(jù)塊,Μ,1彡i彡η。
[0017] :帶密鑰的hash函數(shù)。
[0018] :1|:數(shù)據(jù)塊標(biāo)簽。
[0019] :在密鑰k作用下的偽隨機(jī)函數(shù)。
[0020] 在密鑰k作用下的偽隨機(jī)置換函數(shù)。
[0021] .£.">) :NRTU 加密算法。
[0022] 包括以下步驟。
[0023] A. Owner利用密鑰生成模塊KeyGen生產(chǎn)方案中所需要的密鑰。
[0024] B.將數(shù)據(jù)分成η個(gè)數(shù)據(jù)塊,利用標(biāo)簽生成模塊TagGen,為每個(gè)數(shù)據(jù)塊生成相應(yīng)的 驗(yàn)證標(biāo)簽,Owner將數(shù)據(jù)塊和數(shù)據(jù)塊標(biāo)簽等發(fā)送給CSP。
[0025] C. Owner利用挑戰(zhàn)模塊Challenge生成挑戰(zhàn)信息,發(fā)送給CSP〇
[0026] D. CSP根據(jù)挑戰(zhàn)信息,利用證據(jù)生成模塊ProofGen生成數(shù)據(jù)持有性證據(jù),發(fā)送給 Owner〇
[0027] E. Owner利用驗(yàn)證模塊Verification驗(yàn)證CSP提供數(shù)據(jù)持有性證明的正確性,如 果通過驗(yàn)證,存儲(chǔ)在CSP中的數(shù)據(jù)是完整的,否則數(shù)據(jù)被破壞了。
[0028] 本方案數(shù)據(jù)持有性證明協(xié)議流程。
[0029] (1) KeyGen (lk) - (kl,k2, k3) 〇
[0030] a.輸入安全參數(shù)k。
[0031] b.根據(jù)k,選擇NTUR算法相關(guān)參數(shù)N、p、q。
[0032] c.計(jì)算NTRU算法的密鑰對(duì)(kl,k2)。
[0033] d.隨機(jī)選擇密鑰k3。
[0034] e.輸出密鑰(kl,k2,k3)〇
[0035] (2) TagGen (kl,k2, M,k3) - (n^,t" k2) 〇
[0036] a.輸入(kl,k2, M,k3)。
[0037] b.將數(shù)據(jù)M分成n個(gè)數(shù)據(jù)塊,每塊大小相同,每塊用叫表示,1彡i彡n。
[0038] c.計(jì)算
用于減少標(biāo) 簽的長(zhǎng)度。
[0039] d.計(jì)算
[0040] e.生成偽隨機(jī)置換函數(shù)麵;藏|。
[0041] f.生成偽隨機(jī)函數(shù)動(dòng):録,用于防止CSP事先生成挑戰(zhàn)的數(shù)據(jù)塊和。
[0042] g.將
[0043] h.刪除本地存儲(chǔ)的數(shù)據(jù)M,mi,h,1彡i彡n,保留kl,k2, k3,妁、;(')、#衫(*)。
[0044] (3) Challenge () - (c, k4, k5)。
[0045] a. Owner給出挑戰(zhàn)數(shù)據(jù)塊的個(gè)數(shù)c,生成隨機(jī)置換密鑰k4和隨機(jī)數(shù)產(chǎn)生密鑰k5。
[0046] b.將(c,k4,k45 )發(fā)送給 CSP。
[0047] (4) ProofGen (c, k4, k5) - (Τ,Μ')。
[0048] a.輸入(c,k4, k5)。
[0049] b.計(jì)算數(shù)據(jù)塊下標(biāo),
[0050] c.計(jì)算挑戰(zhàn)隨機(jī)數(shù),
[0051] d.計(jì)算
[0052] e.將(Τ, Μ')發(fā)送給 Owner。
[0053] (5) Verification (c, kl, k2, k3, k4, k5, Τ, Μ')-(Success, Failure) 〇
[0054] a.輸入(c, kl, k2, k3, k4, k5, Τ, Μ')。
[0055] b.計(jì)算
[0056] c.計(jì)算
[0057] d.計(jì)算r=i^(#+A),如果1 =城立,則輸出Success,表示數(shù)據(jù)持有性證明驗(yàn)證 成功,否側(cè)輸出Failure,表示數(shù)據(jù)持有性證明驗(yàn)證失敗。
[0058] 本發(fā)明與現(xiàn)有技術(shù)相比所產(chǎn)生的有益效果是。
[0059] 本發(fā)明利用NTRU算法的同態(tài)性和hash函數(shù),構(gòu)造一種新的數(shù)據(jù)持有性證明方案, 本方案支持云存儲(chǔ)環(huán)境下數(shù)據(jù)持有性證明方案,用于檢查用戶存儲(chǔ)在云服務(wù)器中數(shù)據(jù)的完 整性。本方案在確保安全的前提下,避免了大量的指數(shù)運(yùn)算,減少了計(jì)算開銷、通信開銷和 存儲(chǔ)開銷,提高了數(shù)據(jù)持有性證明方案執(zhí)行速度和安全性,適合資源有限的客戶端和各種 網(wǎng)絡(luò)環(huán)境,為研究數(shù)據(jù)持有性證明開辟一個(gè)新的方向。
【附圖說明】
[0060] 附圖是本發(fā)明的數(shù)據(jù)持有性證明示意圖。
【具體實(shí)施方式】
[0061] 下面結(jié)合附圖對(duì)發(fā)明的一種數(shù)據(jù)持有性證明方案作以下詳細(xì)說明。
[0062] 一種數(shù)據(jù)持有性證明方案,本發(fā)明用到的主要符號(hào)描述如下。
[0063] Owner :數(shù)據(jù)擁有者。
[0064] CSP :云服務(wù)提供商。
[0065] KeyGen :密鑰生成模塊 KeyGen。
[0066] TagGen :標(biāo)簽生成模塊。
[0067] Challenge :挑戰(zhàn)模塊。
[0068] Proof Gen :證據(jù)生成模塊。
[0069] Verification :驗(yàn)證模塊。
[0070] M :Owner的外包數(shù)據(jù)。
[0071] η:數(shù)據(jù)塊數(shù)目,即將Μ劃分成η個(gè)固定大小的塊。
[0072] m1:M中的數(shù)據(jù)塊,m # Μ,1彡i彡η。
[0073] :帶密鑰的hash函數(shù)。
[0074] :1|:數(shù)據(jù)塊標(biāo)簽。
[0075] :在密鑰k作用下的偽隨機(jī)函數(shù)。
[0076] 在密鑰k作用下的偽隨機(jī)置換函數(shù)。
[0077] ?、):NRTU 加密算法。
[0078] 包括以下步驟。
[0079] A. Owner利用密鑰生成模塊KeyGen生產(chǎn)方案中所需要的密鑰。
[0080] B.將數(shù)據(jù)分成η個(gè)數(shù)據(jù)塊,利用標(biāo)簽生成模塊TagGen,為每個(gè)數(shù)據(jù)塊生成相應(yīng)的 驗(yàn)證標(biāo)簽。Owner將數(shù)據(jù)塊和數(shù)據(jù)塊標(biāo)簽等發(fā)送給CSP。
[0081] C. Owner利用挑戰(zhàn)模塊Challenge生成挑戰(zhàn)信息,發(fā)送給CSP〇
[0082] D. CSP根據(jù)挑戰(zhàn)信息,利用證據(jù)生成模塊ProofGen生成數(shù)據(jù)持有性證據(jù),發(fā)送給 Owner〇
[0083] E. Owner利用驗(yàn)證模塊Verification驗(yàn)證CSP提供數(shù)據(jù)持有性證明的正確性,如 果通過驗(yàn)證,存儲(chǔ)在CSP中的數(shù)據(jù)是完整的,否則數(shù)據(jù)被破壞了。
[0084] 本方案數(shù)據(jù)持有性證明流程。
[0085] (1) KeyGen (lk) - (kl,k2, k3) 〇
[0086] a.輸入安全參數(shù)k。
[0087] b.根據(jù)k,選擇NTUR算法相關(guān)參數(shù)N、p、q。
[0088] c.計(jì)算NTRU算法的密鑰對(duì)(kl,k2)。
[0089] d.隨機(jī)選擇密鑰k3。
[0090] e.輸出密鑰(kl,k2,k3)〇
[0091] TagGen (kl, k2, M, k3) (m;, ti; k2)。
[0092] a.輸入(kl,k2,M,k3)。
[0093] b.將數(shù)據(jù)M分成n個(gè)數(shù)據(jù)塊,每塊大小相同,每塊用叫表示,1彡i彡n。
[0094] c.計(jì)算
用于減少標(biāo) 簽的長(zhǎng)度。
[0095] d.計(jì)算
[0096] e.生成偽隨機(jī)置換函數(shù)
[0097] f.生成偽隨機(jī)函數(shù)用于防止CSP事先生成挑戰(zhàn)的數(shù)據(jù)塊和。
[0098] g.將
發(fā)送到CSP,1彡i彡η。
[0099] h.刪除本地存