本發(fā)明屬于信息安全技術(shù)領(lǐng)域,涉及一種所有權(quán)認證與密鑰傳遞方法,具體涉及一種密文去重場景下不損失熵的所有權(quán)認證與密鑰傳遞方法,可用于云存儲服務(wù)中對客戶端加密文件數(shù)據(jù)進行去重的場景。
背景技術(shù):
隨著云存儲服務(wù)越來越多的應(yīng)用,為了節(jié)省網(wǎng)絡(luò)帶寬和存儲資源,越來越多的企業(yè)與個人開始使用云存儲服務(wù)器來存儲本地的文件數(shù)據(jù)。其中,用戶在上傳文件至云存儲服務(wù)器前,為了確保數(shù)據(jù)隱私安全,會選擇加密文件后再進行上傳。這就使得擁有相同文件的不同用戶在上傳自己加密數(shù)據(jù)后,無法實現(xiàn)云存儲服務(wù)器端的去重工作,造成大量相同數(shù)據(jù)重復(fù)存儲,導(dǎo)致存儲利用率降低,因此如何在文件加密場景下完成文件所有權(quán)認證,高效地進行去重工作,提高云存儲的利用率,成為了當前的研究熱點。
現(xiàn)有的去重方法按照去重實體的不同,有服務(wù)器端去重和客戶端去重,其中常用的是客戶端去重。在客戶端去重場景中,服務(wù)器根據(jù)客戶端是否通過所有權(quán)認證,判斷是否進行文件去重工作,若是,則服務(wù)器將該客戶端標記為文件擁有者,客戶端無需再次上傳文件;否則不能執(zhí)行去重工作。根據(jù)處理數(shù)據(jù)粒度大小的不同,客戶端去重又可分為數(shù)據(jù)塊級去重和文件級去重,其中數(shù)據(jù)塊級去重將文件首先分塊,再與服務(wù)器交互判斷是否通過所有權(quán)認證。在當前去重領(lǐng)域中,主要應(yīng)用的是客戶端文件級去重方法,由于云存儲服務(wù)器并不是完全可信的,用戶出于對數(shù)據(jù)隱私保護的考慮,通常需要在上傳文件前對明文進行加密處理,因此客戶端密文去重方法是目前研究的重點。jxu等在2013年acmsigsacsymposiumoninformation(8thsigsac2013)會議中發(fā)表的《weakleakage-resilientclient-sidededuplicationofencrypteddataincloudstorage》首次公開提出了客戶端密文文件級去重方法,該方法利用收斂加密方法,將文件哈希值作為文件加密密鑰,因此同一明文加密后將得到相同的密文,有利于服務(wù)器識別文件的重復(fù)性,然而當文件部分信息泄露時,收斂加密方法不能提供數(shù)據(jù)保密性,不能保證語義安全。在此基礎(chǔ)上,yan等在2016年在《ieeetransactionsonbigdata》(2016,2(2))期刊中發(fā)表的《deduplicationonencryptedbigdataincloud》中公開提出了利用可信第三方代理重加密的方法傳遞文件加密密鑰,后續(xù)上傳者完成文件所有權(quán)認證后,可以從代理服務(wù)器獲得文件加密密鑰,但這種方法在實際中需要更高的假設(shè)前提。專利授權(quán)號為cn103731261b、名稱為“加密重復(fù)數(shù)據(jù)刪除場景下的密鑰分發(fā)方法”的中國專利,公開了一種基于schnorr體制的零知識認證實現(xiàn)文件所有權(quán)認證方法,其實現(xiàn)步驟是:利用基于schnorr體制的零知識認證實現(xiàn)文件所有權(quán)認證,每次抽取多份明文文件塊生成所有權(quán)證據(jù);服務(wù)器根據(jù)預(yù)先獲取的中間證據(jù)與客戶端提交的所有權(quán)證據(jù),判斷客戶端是否通過文件所有權(quán)認證;通過文件所有權(quán)認證后,密鑰分發(fā)輔助者生成重加密密鑰,服務(wù)器使用重加密密鑰對文件密鑰進行代理重加密,生成重加密密文并將其發(fā)送至客戶端,完成對文件密鑰的分發(fā)。但該專利將文件數(shù)據(jù)分塊,所有權(quán)認證過程建立在文件數(shù)據(jù)塊上,服務(wù)器需要挑戰(zhàn)一定數(shù)量的文件數(shù)據(jù)塊進行零知識驗證實現(xiàn)所有權(quán)認證,這種做法僅能在一定概率條件下完成所有權(quán)認證,無法保證全體文件數(shù)據(jù)的所有權(quán)認證,同時借助密鑰分發(fā)輔助者進行文件密鑰分發(fā)工作,在具體實現(xiàn)過程中需要更高的安全假設(shè)條件支持。
以上是目前在客戶端密文去重場景中一些常用的方法,在所知的客戶端密文去重方法中,文件加密密鑰的獲取方式一般采用收斂加密方法,當文件部分信息泄露時,收斂加密方法不能保證語義安全;文件所有權(quán)認證方法采用挑戰(zhàn)一定數(shù)量的文件數(shù)據(jù)塊進行所有權(quán)認證,僅能在一定概率條件下保證文件所有權(quán)認證成功;在去重方法中加入可信第三方服務(wù)器參與,需要更高的安全假設(shè)條件支持,不適用于具體實現(xiàn)場景,因此,在密文去重場景下,現(xiàn)有技術(shù)中的所有權(quán)認證安全性低,并且沒有提供密鑰的安全傳遞方法。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于針對上述現(xiàn)有技術(shù)的不足,提出了一種密文去重場景下不損失熵的所有權(quán)認證與密鑰傳遞方法,利用零知識驗證方法,通過不損失熵的文件大摘要,實現(xiàn)了密文去重場景下的文件所有權(quán)安全認證,利用隱藏憑據(jù)恢復(fù)方法實現(xiàn)了密文去重場景下的密鑰安全傳遞。
本發(fā)明的技術(shù)思路是:文件首位上傳者對文件進行預(yù)處理,并將預(yù)處理結(jié)果上傳至服務(wù)器。后續(xù)上傳者與服務(wù)器進行文件所有權(quán)認證交互,若后續(xù)上傳者文件所有權(quán)認證成功,則服務(wù)器將后續(xù)上傳者標記為文件擁有者,通知后續(xù)上傳者刪除本地文件,實現(xiàn)客戶端密文文件去重;否則文件所有權(quán)認證失敗。文件擁有者可以訪問服務(wù)器文件密文。其具體實現(xiàn)方案包括如下:
(1)文件首位上傳者u1對明文f進行預(yù)處理,并將預(yù)處理結(jié)果上傳至服務(wù)器,實現(xiàn)步驟為:
1a)首位上傳者u1利用哈希函數(shù)h(),計算明文f的索引值h(f);
1b)首位上傳者u1利用獨立成對哈希方法,計算明文f的不損失熵的文件大摘要hrandom(f);
1c)首位上傳者u1隨機生成文件對稱加密密鑰dek,并利用該文件對稱加密密鑰dek對明文f進行加密,得到文件密文cf,cf=enc(dek,f),其中enc()為對稱加密方案;
1d)首位上傳者u1對文件對稱加密密鑰dek的保護:首位上傳者u1選擇第一隨機整數(shù)v和第二隨機整數(shù)s,利用隱藏憑據(jù)恢復(fù)方法,通過第一隨機整數(shù)v和第二隨機整數(shù)s,計算中間變量h=vs,并通過第二隨機整數(shù)s和明文f的不損失熵的文件大摘要hrandom(f),計算文件對稱加密密鑰dek傳遞值d,再通過文件對稱加密密鑰dek傳遞值d和文件對稱加密密鑰dek,計算文件對稱加密密鑰dek傳遞保護值r;
1e)首位上傳者u1將第一隨機整數(shù)v、第二隨機整數(shù)s、中間變量h和文件對稱加密密鑰dek傳遞保護值r發(fā)送至服務(wù)器并存儲,實現(xiàn)對文件對稱加密密鑰dek的安全傳遞,同時將明文f的索引值h(f)和文件密文cf發(fā)送至服務(wù)器并存儲;
(2)后續(xù)上傳者u2與服務(wù)器進行文件所有權(quán)認證交互,實現(xiàn)步驟為:
2a)后續(xù)上傳者u2利用哈希函數(shù)h(),計算明文f'的索引值h(f'),并將索引值h(f')發(fā)送至服務(wù)器;
2b)服務(wù)器判斷明文f'的索引值h(f')與明文f的索引值h(f)是否相等,若是,選擇第三隨機數(shù)w,將第三隨機數(shù)w發(fā)送至后續(xù)上傳者u2,否則,結(jié)束運算;
2c)后續(xù)上傳者u2利用獨立成對哈希方法,計算明文f'的不損失熵的文件大摘要hrandom(f'),同時選擇第四隨機數(shù)t,并利用零知識驗證方法,通過明文f'的不損失熵的文件大摘要hrandom(f')、第三隨機數(shù)w和第四隨機數(shù)t,在生成元為g的p階乘法循環(huán)群g中計算所有權(quán)認證的證據(jù)值proof、承諾值commit、輔助值aux和輔助驗證值auxw,最終將所有權(quán)認證的證據(jù)值proof、承諾值commit和輔助驗證值auxw發(fā)送至服務(wù)器;
2d)服務(wù)器利用零知識驗證方法,通過所有權(quán)認證的證據(jù)值proof,在生成元為g的p階乘法循環(huán)群g中計算所有權(quán)認證的證據(jù)驗證值gproof,并判斷gproof×auxw與承諾值commit是否相等,若是,后續(xù)上傳者u2文件所有權(quán)認證成功,將文件所有權(quán)認證成功的后續(xù)上傳者u2標記為文件擁有者,并通知后續(xù)上傳者u2刪除明文f',實現(xiàn)客戶端密文文件去重,執(zhí)行步驟(3),否則,后續(xù)上傳者u2文件所有權(quán)認證失敗,結(jié)束運算;
(3)文件擁有者訪問服務(wù)器文件密文cf,實現(xiàn)步驟為:
3a)服務(wù)器將第一隨機整數(shù)v、中間變量h和文件對稱加密密鑰dek傳遞保護值r發(fā)送至文件擁有者;
3b)文件擁有者選擇第五隨機數(shù)r,并通過第五隨機數(shù)r、明文f的不損失熵的文件大摘要hrandom(f)和第一隨機整數(shù)v,計算明文f的不損失熵的文件大摘要hrandom(f)證據(jù)值u=vrh(hrandom(f)),其中h()為哈希函數(shù),再將證據(jù)值u發(fā)送至服務(wù)器;
3c)服務(wù)器通過明文f的不損失熵的文件大摘要hrandom(f)證據(jù)值u和第二隨機整數(shù)s,計算明文f的不損失熵的文件大摘要hrandom(f)證據(jù)驗證值b=us,并將證據(jù)驗證值b發(fā)送至文件擁有者;
3d)文件擁有者通過明文f的不損失熵的文件大摘要hrandom(f)證據(jù)驗證值b、中間變量h和第五隨機數(shù)r,計算文件對稱加密密鑰dek傳遞值d=b×h-r,并通過文件對稱加密密鑰dek傳遞保護值r和文件對稱加密密鑰dek傳遞值d,計算文件對稱加密密鑰dek=r×d;
3e)文件擁有者利用文件對稱加密密鑰dek對文件密文cf進行解密,得到明文f,f=dec(dek,cf),其中dec()為對稱解密方案。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點:
1.本發(fā)明利用獨立成對哈希方法生成不損失熵的文件大摘要,同時利用零知識驗證方法,完成文件所有權(quán)認證過程,因此文件所有權(quán)認證過程建立在文件自身熵值不變的等價大摘要上,不存在概率條件上通過驗證的可能性,保證了文件所有權(quán)認證的安全性;并且驗證過程具有零知識性,服務(wù)器無法從用戶上傳的零知識驗證數(shù)據(jù)中竊取到與文件本身相關(guān)的信息,保護用戶文件數(shù)據(jù)隱私性,從而提高了文件所有權(quán)認證過程的安全性。
2.本發(fā)明利用隱藏憑據(jù)恢復(fù)方法,文件加密密鑰與文件本身無關(guān),可以抵抗當文件內(nèi)容部分泄露時攻擊者獲取部分信息的攻擊,與收斂加密方法相比,保證了文件加密密鑰與文件分離,實現(xiàn)了文件加密密鑰語義安全;同時隱藏憑據(jù)恢復(fù)方法可以建立在服務(wù)器不可信的兩方密鑰傳遞過程中,不需要可信第三方服務(wù)器參與,在本發(fā)明中,服務(wù)器在文件加密密鑰傳遞過程中不會獲取到文件加密密鑰的任何信息,防止了文件加密密鑰的隱私泄露,從而保證了文件加密密鑰傳遞的安全性。
3.本發(fā)明通過不損失熵的文件大摘要進行零知識驗證,驗證過程建立在不損失熵的文件大摘要上,不需要建立在對原始文件進行運算處理的操作上,減少了客戶端與服務(wù)器所有權(quán)認證的運算量。
附圖說明
圖1為本發(fā)明的實現(xiàn)流程框圖;
圖2為本發(fā)明中的首位上傳者對文件預(yù)處理并將結(jié)果上傳至服務(wù)器流程框圖;
圖3為本發(fā)明中的后續(xù)上傳者與服務(wù)器進行文件所有權(quán)認證交互流程框圖;
圖4為本發(fā)明中的文件擁有者訪問服務(wù)器文件密文流程框圖。
具體實施方式
以下結(jié)合附圖和具體實施例,對本發(fā)明作進一步詳細說明:
參照圖1,一種密文去重場景下不損失熵的所有權(quán)認證與密鑰傳遞方法,包括如下步驟:
步驟1,文件首位上傳者u1對明文f進行預(yù)處理,并將預(yù)處理結(jié)果上傳至服務(wù)器,實現(xiàn)步驟如圖2所示:
步驟1a)首位上傳者u1利用md5哈希函數(shù),計算明文f的索引值h(f)=md5(f);
步驟1b)首位上傳者u1利用獨立成對哈希方法,計算明文f的不損失熵的文件大摘要hrandom(f):
步驟1b1)首位上傳者u1對明文f進行分塊,得到明文f={w1,w2,…,wi,…,wl},其中wi表示明文f={w1,w2,…,wi,…,wl}中的第i塊,l表示塊的數(shù)量,且i∈[1,l];
步驟1b2)首位上傳者u1利用sha1哈希函數(shù)hash(),計算明文f={w1,w2,…,wi,…,wl}中每一塊wi的哈希值yi=hash(w1||w2||...||wi),并將所有塊的哈希值聯(lián)結(jié),得到明文f正向哈希值y={y1||y2||...||yl};
步驟1b3)首位上傳者u1對明文f進行逆序處理,得到明文f逆序文件
步驟1b4)首位上傳者u1利用sha1哈希函數(shù)hash(),計算明文f逆序文件
步驟1b5)首位上傳者u1通過明文f正向哈希值y和明文f逆向哈希轉(zhuǎn)換值
步驟1c)首位上傳者u1隨機生成文件對稱加密密鑰dek,并利用該文件對稱加密密鑰dek對明文f進行加密,得到文件密文cf,cf=aesenc(dek,f),其中aesenc()為aes對稱加密方案;
步驟1d)首位上傳者u1對文件對稱加密密鑰dek的保護:首位上傳者u1選擇第一隨機整數(shù)v和第二隨機整數(shù)s,利用隱藏憑據(jù)恢復(fù)方法,通過第一隨機整數(shù)v和第二隨機整數(shù)s,計算中間變量h=vs,并通過第二隨機整數(shù)s和明文f的不損失熵的文件大摘要hrandom(f),計算文件對稱加密密鑰dek傳遞值d,再通過文件對稱加密密鑰dek傳遞值d和文件對稱加密密鑰dek,計算文件對稱加密密鑰dek傳遞保護值r:
步驟1d1)首位上傳者u1通過明文f的不損失熵的文件大摘要hrandom(f)和第二隨機整數(shù)s,計算文件對稱加密密鑰dek傳遞值d:d=(hash(hrandom(f)))s,其中hash()為sha1哈希函數(shù);
步驟1d2)首位上傳者u1計算文件對稱加密密鑰dek傳遞保護值r:r=dek×d-1;
步驟1e)首位上傳者u1將第一隨機整數(shù)v、第二隨機整數(shù)s、中間變量h和文件對稱加密密鑰dek傳遞保護值r發(fā)送至服務(wù)器并存儲,實現(xiàn)對文件對稱加密密鑰dek的安全傳遞,同時將明文f的索引值h(f)和文件密文cf發(fā)送至服務(wù)器并存儲;
步驟2,后續(xù)上傳者u2與服務(wù)器進行文件所有權(quán)認證交互,實現(xiàn)步驟如圖3所示:
步驟2a)后續(xù)上傳者u2利用md5哈希函數(shù),計算明文f'的索引值h(f')=md5(f'),并將索引值h(f')發(fā)送至服務(wù)器;
步驟2b)服務(wù)器判斷明文f'的索引值h(f')與明文f的索引值h(f)是否相等,若是,選擇第三隨機數(shù)w,將第三隨機數(shù)w發(fā)送至后續(xù)上傳者u2,否則,結(jié)束運算;
步驟2c)后續(xù)上傳者u2利用獨立成對哈希方法,計算明文f'的不損失熵的文件大摘要hrandom(f'),同時選擇第四隨機數(shù)t,并利用零知識驗證方法,通過明文f'的不損失熵的文件大摘要hrandom(f')、第三隨機數(shù)w和第四隨機數(shù)t,在生成元為g的p階乘法循環(huán)群g中計算所有權(quán)認證的證據(jù)值proof、承諾值commit、輔助值aux和輔助驗證值auxw,最終將所有權(quán)認證的證據(jù)值proof、承諾值commit和輔助驗證值auxw發(fā)送至服務(wù)器:
步驟2c1)后續(xù)上傳者u2計算所有權(quán)認證的證據(jù)值proof=(hrandom(f')×w+t)modq;
步驟2c2)后續(xù)上傳者u2計算所有權(quán)認證的承諾值commit=gtmodq;
步驟2c3)后續(xù)上傳者u2計算所有權(quán)認證的輔助值
其中,q是一個素數(shù),且q|p-1;
步驟2d)服務(wù)器利用零知識驗證方法,通過所有權(quán)認證的證據(jù)值proof,在生成元為g的p階乘法循環(huán)群g中計算所有權(quán)認證的證據(jù)驗證值gproof,并判斷gproof×auxw與承諾值commit是否相等,若是,后續(xù)上傳者u2文件所有權(quán)認證成功,將文件所有權(quán)認證成功的后續(xù)上傳者u2標記為文件擁有者,并通知后續(xù)上傳者u2刪除明文f',實現(xiàn)客戶端密文文件去重,執(zhí)行步驟(3),否則,后續(xù)上傳者u2文件所有權(quán)認證失敗,結(jié)束運算;
步驟3,文件擁有者訪問服務(wù)器文件密文cf,實現(xiàn)步驟如圖4所示:
步驟3a)服務(wù)器將第一隨機整數(shù)v、中間變量h和文件對稱加密密鑰dek傳遞保護值r發(fā)送至文件擁有者;
步驟3b)文件擁有者選擇第五隨機數(shù)r,并通過第五隨機數(shù)r、明文f的不損失熵的文件大摘要hrandom(f)和第一隨機整數(shù)v,計算明文f的不損失熵的文件大摘要hrandom(f)證據(jù)值u=vrhash(hrandom(f)),其中hash()為sha1哈希函數(shù),再將證據(jù)值u發(fā)送至服務(wù)器;
步驟3c)服務(wù)器通過明文f的不損失熵的文件大摘要hrandom(f)證據(jù)值u和第二隨機整數(shù)s,計算明文f的不損失熵的文件大摘要hrandom(f)證據(jù)驗證值b=us,并將證據(jù)驗證值b發(fā)送至文件擁有者;
步驟3d)文件擁有者通過明文f的不損失熵的文件大摘要hrandom(f)證據(jù)驗證值b、中間變量h和第五隨機數(shù)r,計算文件對稱加密密鑰dek傳遞值d=b×h-r,并通過文件對稱加密密鑰dek傳遞保護值r和文件對稱加密密鑰dek傳遞值d,計算文件對稱加密密鑰dek=r×d;
dek=r×d
=r×b×h-r
=r×us×h-r
=r×(vrhash(hrandom(f)))s×h-r
=r×(vrhash(hrandom(f)))s×v-rs
=r×(hash(hrandom(f)))s
其中,hash()為sha1哈希函數(shù)。
步驟3e)文件擁有者利用文件對稱加密密鑰dek對文件密文cf進行解密,得到明文f,f=aesdec(dek,cf),其中aesdec()為aes對稱解密方案。