1.一種基于非對稱密碼算法的數(shù)據(jù)存儲和訪問控制方法,其特征在于,所述方法包括:
步驟1、數(shù)據(jù)擁有者根據(jù)所要上傳文件M的訪問權(quán)限需求生成進行屬性加密所需的屬性集合{A1,A2,...,An}和訪問策略A;
步驟2、所述數(shù)據(jù)擁有者生成隨機會話密鑰K以及一對公私鑰對(PK,SK),采用對稱加密算法對文件M和私鑰SK進行加密處理,根據(jù)所述訪問策略A采用屬性加密方法對隨機會話密鑰K進行加密處理,并將所得的密文記為:
CT={EK(M),EA(K),EK(SK),PK};
步驟3、所述數(shù)據(jù)擁有者上傳密文CT到云服務(wù)器進行存儲,并在本地存儲公鑰PK用作資源審計操作;
步驟4、所述云服務(wù)器生成N個隨機字符串{S1,S2,...,SN},采用公鑰加密算法利用公鑰PK加密該N個隨機字符串得到{Si,EPK(Si)}(i∈[1,N]),并更新密文為:
步驟5、當其他用戶需要獲取所述云服務(wù)器存儲的文件M時,所述云服務(wù)器和該提出請求的用戶完成挑戰(zhàn)-應(yīng)答過程,在所述用戶獲取文件M之前驗證該用戶對文件的訪問權(quán)限;
步驟6、所述云服務(wù)器將所述用戶所請求文件M對應(yīng)密文CT中的數(shù)據(jù)密文EK(M)發(fā)送給所述用戶;
步驟7、所述用戶采用隨機會話密鑰K解密EK(M),得到所需要的文件M;
步驟8、所述數(shù)據(jù)擁有者對所述云服務(wù)器提供的資源消耗記錄進行審計,以驗證所述云服務(wù)器為該數(shù)據(jù)擁有者消耗的資源量。
2.根據(jù)權(quán)利要求1所述基于非對稱密碼算法的數(shù)據(jù)存儲和訪問控制方法,其特征在于,所述云服務(wù)器和該提出請求的用戶完成挑戰(zhàn)-應(yīng)答過程的步驟具體包括:
所述云服務(wù)器從密文CT中隨機選擇一組未使用的{Si,EPK(Si)},并將EA(K),EK(SK)和EPK(Si)作為挑戰(zhàn)發(fā)送給該提出請求的用戶;
所述用戶根據(jù)自身的屬性解密EA(K)得到K′,使用K′解密EK(SK)得到私鑰SK′,并利用公鑰加密算法解密EPK(Si)得到S′i;
所述用戶利用所得到的私鑰SK′對S′i進行簽名得到Sign(SK′,Si′),并通過安全通道將(Si′,Sign(SK′,Si′))作為應(yīng)答發(fā)送給所述云服務(wù)器;
所述云服務(wù)器比較所述用戶返回的(Si′,Sign(SK′,Si′))中的S′i與所選擇的{Si,EPK(Si)}中的Si,并利用公鑰PK驗證簽名,如果簽名驗證不通過,則該返回結(jié)果不能作為資源消耗的憑證,所述云服務(wù)器終止操作;
若比較結(jié)果相等,則判斷所述用戶的屬性滿足所請求文件的訪問策略,將{Si,EPK(Si)}標記為已使用,并存儲對應(yīng)的(Si,Sign(SK,Si))作為資源消耗的憑證,進行后繼步驟6的操作;否則,判斷所述用戶的屬性不能滿足所請求文件的訪問策略,所述云服務(wù)器終止操作。
3.根據(jù)權(quán)利要求1所述基于非對稱密碼算法的數(shù)據(jù)存儲和訪問控制方法,其特征在于,所述方法還包括:
由所述云服務(wù)器對隨機字符串及其密文進行更新操作;
所述更新操作為周期性執(zhí)行,或者當{Si,EPK(Si)}均被使用過時,由所述云服務(wù)器執(zhí)行更新過程。
4.根據(jù)權(quán)利要求3所述基于非對稱密碼算法的數(shù)據(jù)存儲和訪問控制方法,其特征在于,所述云服務(wù)器執(zhí)行更新過程的方案具體為:
所述云服務(wù)器產(chǎn)生新的N個隨機字符串{S′1,S′2,...,S′N};
所述云服務(wù)器采用公鑰加密算法和密文中存儲的公鑰PK加密該N個隨機字符串得到{Si′,EPK(Si′)}(i∈[1,N]);
所述云服務(wù)器使用新得到的{S′i,EPK(S′i)}(i∈[1,N])替換原有的{Si,EPK(Si)}(i∈[1,N]),完成更新過程。
5.根據(jù)權(quán)利要求1所述基于非對稱密碼算法的數(shù)據(jù)存儲和訪問控制方法,其特征在于,在所述步驟8中,所述數(shù)據(jù)擁有者對所述云服務(wù)器提供的資源消耗記錄進行審計的過程為:
所述數(shù)據(jù)擁有者向所述云服務(wù)器申請?zhí)囟〞r間段內(nèi)的資源消耗記錄;
所述云服務(wù)器向所述數(shù)據(jù)擁有者返回其申請時間段內(nèi)的資源消耗憑證{St1,Sign(SK,St1),St2,Sign(SK,St2),...,Stj,Sign(SK,Stj)};
所述數(shù)據(jù)擁有者利用所述步驟3中存儲的公鑰PK驗證所述云服務(wù)器返回的資源消耗憑證{St1,Sign(SK,St1),St2,Sign(SK,St2),...,Stj,Sign(SK,Stj)},以驗證所述云服務(wù)器在特定時間段內(nèi)的資源消耗量。