王化群,劉哲,何德彪,李繼國
(1.南京郵電大學(xué)計算機(jī)學(xué)院,江蘇 南京 210023;2.南京航空航天大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 210016;3.武漢大學(xué)國家網(wǎng)絡(luò)安全學(xué)院,湖北 武漢 430072;4.福建師范大學(xué)數(shù)學(xué)與信息學(xué)院,福建 福州 350007)
5G 等新興技術(shù)的出現(xiàn)為物聯(lián)網(wǎng)環(huán)境下數(shù)據(jù)轉(zhuǎn)發(fā)的研究帶來了新的機(jī)遇和挑戰(zhàn)。5G 極大地提升了通信速度,能在無人駕駛、智能家居、智慧城市等方面廣泛應(yīng)用,5G 的誕生能改寫物聯(lián)網(wǎng)領(lǐng)域。云計算能夠為遠(yuǎn)程計算機(jī)用戶提供按需IT 服務(wù),是繼互聯(lián)網(wǎng)經(jīng)濟(jì)繁榮以來的又一個重要IT 產(chǎn)業(yè)增長點(diǎn)。云平臺能夠為移動用戶提供計算和存儲資源,但存在外包存儲數(shù)據(jù)被篡改的風(fēng)險。
在公有云中,具體數(shù)據(jù)處理由公有云服務(wù)器(PCS,public cloud sever)執(zhí)行。使用公有云具有以下優(yōu)勢:因為公有云提供了硬件、應(yīng)用程序和帶寬成本,所以操作簡單且成本低廉;提供可擴(kuò)展性以滿足需求;因為用戶只需為使用的東西付費(fèi),所以不會浪費(fèi)資源等。在公有云中,數(shù)據(jù)不受用戶控制。PCS 對外包數(shù)據(jù)的安全性和隱私性負(fù)有更多責(zé)任。但是,為了保護(hù)自己的利益,不誠實的PCS 可能會拒絕對丟失的數(shù)據(jù)負(fù)責(zé)。因此,確保數(shù)據(jù)所有者的遠(yuǎn)程數(shù)據(jù)完整性是重要的。在某些應(yīng)用程序環(huán)境中,外包數(shù)據(jù)屬于多個所有者,并且很敏感。在執(zhí)行遠(yuǎn)程數(shù)據(jù)完整性檢測時,必須確保驗證者不能獲取所存儲文件內(nèi)容的任何信息。同時,驗證者必須確保檢測的數(shù)據(jù)屬于指定的多個所有者。但是,誰有能力檢測遠(yuǎn)程數(shù)據(jù)的完整性?為了保護(hù)數(shù)據(jù)隱私,只能由數(shù)據(jù)所有者授權(quán)的驗證者執(zhí)行遠(yuǎn)程數(shù)據(jù)完整性檢測。PKI(public key infrastructure)需要公鑰證書的分發(fā)和管理,會產(chǎn)生相當(dāng)大的消耗,例如證書生成、交付、吊銷、更新等。身份基公鑰密碼體制消除了復(fù)雜的證書管理,為了提高效率,研究公有云中多源物聯(lián)網(wǎng)(IoT,Internet of things)終端數(shù)據(jù)身份基完整性檢測非常必要。
當(dāng)海量數(shù)據(jù)存儲在PCS 中時,輕量級遠(yuǎn)程數(shù)據(jù)完整性概率檢測是一種可行的方法??勺C數(shù)據(jù)持有(PDP,provable data possession)是一個重要的遠(yuǎn)程數(shù)據(jù)完整性概率檢測模型?;赗SA 加密技術(shù),Ateniese 等[1]在2007 年提出了PDP 模型和設(shè)計方法。然后,文獻(xiàn)[2-3]提出了PoR(proof of retrievability)模型。近年來,PDP 模型和方案設(shè)計得到了進(jìn)一步發(fā)展。
利用區(qū)塊鏈技術(shù),研究人員相繼提出了高效的私有PDP 方案[4]、無可信中心PDP 方案[5]、動態(tài)PDP 方案[6]等。為解決復(fù)雜證書管理問題,基于雙線性對或RSA 假設(shè),一些高效的身份基PDP 方案被提出[7-8]。當(dāng)遠(yuǎn)程數(shù)據(jù)需要動態(tài)處理時,如插入、刪除等,動態(tài)PDP 方案是必要的[9-10]。另外,可遷移的遠(yuǎn)程數(shù)據(jù)PDP 方案[11]、匿名PDP 方案[12]等相繼被提出。
在某些特殊情況下,數(shù)據(jù)屬于多個所有者。例如在工業(yè)物聯(lián)網(wǎng)中,需要多個物聯(lián)網(wǎng)節(jié)點(diǎn)協(xié)作交互,感知物理空間數(shù)據(jù),并將這些數(shù)據(jù)存儲在遠(yuǎn)程云服務(wù)器中。多所有者數(shù)據(jù)管理已成為重要的研究領(lǐng)域,在公有云中研究其完整性檢測非常重要?,F(xiàn)有PDP 方案都不是多源PDP,因而不適合本文的場景。本文提出的PDP 方案不僅適用于多源數(shù)據(jù),并且是基于身份的,消除了復(fù)雜的證書管理,提高了效率。
本文主要貢獻(xiàn)如下:提出了公有云中身份基多源IoT 終端數(shù)據(jù)PDP 概念,給出了形式化定義、系統(tǒng)模型和安全模型;使用RSA 和一些相應(yīng)的困難問題,設(shè)計了一種有效且安全的身份基多源IoT 終端數(shù)據(jù)可證明數(shù)據(jù)持有(ID-MPDP,identity-based multi-source IoT terminals provable data possession)方案。安全性分析和性能比較表明,本文的ID-MPDP方案是可證安全和有效的。
系統(tǒng)模型。本文系統(tǒng)由以下網(wǎng)絡(luò)實體組成:系統(tǒng)管理器、私鑰生成中心(PKG,private key generator)、PCS、數(shù)據(jù)所有者、驗證者。
1) 系統(tǒng)管理器:生成系統(tǒng)參數(shù)。
2) PKG:可信第三方,為用戶生成相應(yīng)的私鑰,也有助于驗證者完成遠(yuǎn)程數(shù)據(jù)完整性檢測。
3) PCS:具有大量存儲空間和計算資源來處理用戶數(shù)據(jù)。
4) 數(shù)據(jù)所有者:即多源IoT 終端,將大量數(shù)據(jù)上傳到PCS 進(jìn)行存儲和計算。本文中,用戶指IoT終端。
5) 驗證者:通過與PKG 交互檢測遠(yuǎn)程數(shù)據(jù)完整性。
信任假設(shè)。PKG 得到所有其他實體的信任。PKG 不能與所有其他實體(包括PCS、數(shù)據(jù)所有者、驗證者)合謀。驗證者不能與PCS、數(shù)據(jù)所有者合謀。對于屬于n1個所有者的已處理文件F,允許PCS 與最多n1? 1個所有者合謀。
ID-MPDP 方案形式化定義如定義1 所示。
定義1ID-MPDP 方案。其包括5 個算法:SetUp、KeyGen、TagBlock、GenProof 和CheckProof,具體如下。
1) SetUp(1k)→系統(tǒng)參數(shù)。輸入安全參數(shù)k,輸出系統(tǒng)參數(shù)。
2) KeyGen(ID)→xID。輸入用戶身份ID,輸出用戶私鑰xID。
3) TagBlock (F j,xIDi,IDi∈U)→Tj。輸入數(shù)據(jù)塊Fj,U中用戶交互生成相應(yīng)的標(biāo)簽Tj,并將(F j,Tj)上傳到PCS。其中,U表示參與協(xié)議的用戶集。
4) GenProof(chal)→V。輸入挑戰(zhàn)chal,PCS生成完整性檢測證明V,并將V發(fā)送給驗證者。
5) CheckProof(chal,V)→成功/失敗。輸入挑戰(zhàn)chal 和響應(yīng)V,如果有效,則返回“成功”;否則,返回“失敗”。
ID-MPDP 方案必須滿足以下安全要求。
1) GenProof 只能由數(shù)據(jù)所有者授權(quán)的驗證者執(zhí)行。
2) 授權(quán)驗證者不需要文件和標(biāo)簽的完整副本。
3) 修改某些存儲的數(shù)據(jù)后,惡意證明者(即PCS)只能以很小的概率通過驗證者的檢測。即使PCS 與部分?jǐn)?shù)據(jù)所有者串通,它仍然只能以很小的概率通過驗證者的檢測。
定義2不可偽造性。對于公有云中的多所有者數(shù)據(jù),如果任何PPT 敵手A(即惡意PCS 和部分所有者)都無法偽造ID-MPDP 方案,A贏得游戲的概率可以忽略不計。游戲來自挑戰(zhàn)者S與敵手A的交互,游戲如下。
1) 初始化。生成系統(tǒng)參數(shù)和數(shù)據(jù)所有者的公私鑰對,并將系統(tǒng)參數(shù)和數(shù)據(jù)所有者的公鑰發(fā)送給A。如果某個文件F存在n1個數(shù)據(jù)所有者,S將n1? 1個數(shù)據(jù)所有者的私鑰發(fā)送給A。
2) 請求。A將預(yù)言機(jī)請求自適應(yīng)地發(fā)送給S,S響應(yīng)這些請求。
①哈希預(yù)言機(jī)。收到哈希請求后,S用相應(yīng)的哈希值響應(yīng)A。
② KeyGen 預(yù)言機(jī)。收到身份后,S會生成相應(yīng)的私鑰并將其發(fā)送給A。
③TagBlock 預(yù)言機(jī)。收到TagBlock 請求Fj后,S計算數(shù)據(jù)塊標(biāo)簽Tj并將Tj發(fā)送給A。
3) 挑戰(zhàn)。S向A發(fā)送挑戰(zhàn)chal,限制條件是,至少有一個挑戰(zhàn)數(shù)據(jù)塊沒有發(fā)給TagBlock 預(yù)言機(jī)。
4) 偽造。根據(jù)chal,A計算并返回證明V給S。
在上面的游戲中,如果響應(yīng)V以不可忽略的概率通過S的檢測,則A獲勝。
定義3(ρ,δ)安全[8]。如果PCS 篡改了全部數(shù)據(jù)塊?標(biāo)簽對的ρ部分,驗證者以至少δ的概率檢測到該篡改,則ID-MPDP 方案是(ρ,δ)安全的。
1) RSA。RSA 密碼系統(tǒng)由Rivest、Shamir 和Adleman 于1978 年發(fā)明。在標(biāo)準(zhǔn)RSA 中,n=pq是2 個同樣大小的大素數(shù)的乘積,公鑰e滿足1 ≤e≤φ(n)的整數(shù),且e和φ(n)互素,即gcd (e,φ(n))=1,其中φ(n)=(p? 1)(q? 1)是歐拉函數(shù)。求解方程ed=1modφ(n)得到私鑰d。
定義4RSA 問題[13]。設(shè)n=pq是2 個同樣大小的大素數(shù)的乘積,給定公鑰n,e,y∈,RSA 問題是計算的模數(shù)y第e個根x,使xe=ymodn。
A解決RSA 問題的成功概率為
對于任何概率多項式時間敵手A,如果可忽略不計,則RSA 假設(shè)成立。
2) 二次剩余[13]。如果存在一個整數(shù)x使x2≡zmodn,則整數(shù)z為二次剩余;否則,z為模n的非二次剩余。
假設(shè)上傳的數(shù)據(jù)塊?標(biāo)簽對的最大數(shù)量為,文件F可能通過使用糾錯碼(例如Reed-Solomon 碼)進(jìn)行編碼將上傳到PCS。F分為個塊 (F1,…,Fn?)。本文中所用符號和說明如表1 所示。
表1 符號和說明
SetUp(1k)。n1表示數(shù)據(jù)所有者的數(shù)目,k表示安全性參數(shù)。選取 2 個素數(shù)e和e′,其中2k≤e,e′≤22k且2kn1 如果等式成立,驗證者輸出“成功”;否則,驗證者輸出“失敗”。 ID-MPDP方案的正確性分析和安全性分析如下。 定理1如果上傳的數(shù)據(jù)塊?標(biāo)簽對有效,即數(shù)據(jù)所有者和驗證者是誠實的,并且數(shù)據(jù)沒有被篡改,那么上傳的數(shù)據(jù)塊?標(biāo)簽對能夠通過驗證者的完整性檢測,即CheckProof 滿足正確性。 證明正確性來自以下推導(dǎo)。 假設(shè)存在一個文件F,它屬于n1個數(shù)據(jù)所有者。將文件F分成個數(shù)據(jù)塊。在KeyGen 階段,對于身份ID,PKG 需要執(zhí)行哈希函數(shù)H1和以整數(shù)n為模的指數(shù)算法。在TagBlock 階段中,對于單個數(shù)據(jù)塊,每個所有者將計算一次哈希函數(shù)H3、4 次模冪n計算和2n1? 1次乘運(yùn)算。對于挑戰(zhàn),PCS 將執(zhí)行2c次冪運(yùn)算和2(c? 1)次乘運(yùn)算,執(zhí)行2c? 1次加法和c次乘法。在CheckProof 階段中,驗證者將執(zhí)行c+n1+1次冪運(yùn)算和c+n1? 1次乘運(yùn)算。另外,PKG 將計算m odφ(n)和一次冪運(yùn)算。 RSA 的有效性取決于整數(shù)因子分解的計算困難性。1024 bit 的非對稱密鑰長度通常被認(rèn)為是RSA 加密算法所需的最小長度。 數(shù)據(jù)上傳一次可以全部完成,僅考慮完整性請求和響應(yīng)引起的通信消耗。在完整性請求中,驗證者將挑戰(zhàn) chal=(c,k1,k2)發(fā)送到PCS。換句話說,驗證者將中的2 個元素和一個小整數(shù)c發(fā)送到PCS。當(dāng)n的長度為1 024 bit 時,挑戰(zhàn)的長度為。為了響應(yīng)驗證者的挑戰(zhàn),PCS 生成證明,其長度小于1024 × 3= 3 072bit。 在CheckProof 階段,秘密值D(i i=1,2,…,n1)是必不可少的。當(dāng)驗證者獲得授權(quán)并獲得秘密值Di時,它可以執(zhí)行GheckProof 。否則,它將無法執(zhí)行CheckProof。因此,當(dāng)數(shù)據(jù)所有者將Di保密時,ID-MPDP 方案是私有遠(yuǎn)程數(shù)據(jù)完整性檢測。當(dāng)數(shù)據(jù)所有者將Di公開時,ID-MPDP 方案就是公共遠(yuǎn)程數(shù)據(jù)完整性檢測。當(dāng)數(shù)據(jù)所有者將Di發(fā)送給某些特殊的驗證者時,ID-MPDP 方案就是指定驗證者遠(yuǎn)程數(shù)據(jù)完整性檢測。因此,該方案是可轉(zhuǎn)換的。 本節(jié)將ID-MPDP 方案的計算和通信消耗與文獻(xiàn)[14-15]方案進(jìn)行對比。本文方案和文獻(xiàn)[14-15]方案都是使用RSA 設(shè)計的。由于哈希函數(shù)和加法效率較高,因此在比較中將它們省略。表2 給出了3 種方案的計算和安全性比較。在表2 中,n1表示數(shù)據(jù)所有者數(shù),Exp 和Mul 分別表示乘運(yùn)算和冪運(yùn)算的時間消耗,Sig 和VeriCert 分別表示生成簽名和驗證證書的時間消耗。在PKI 中,驗證來自證書頒發(fā)機(jī)構(gòu)的證書是必不可少的。同時,本文還比較了它們的其他屬性。文獻(xiàn)[14-15]方案是在PKI 和基于身份的密碼學(xué)中設(shè)計的,需要認(rèn)證管理。本文方案完全基于身份的密碼學(xué)設(shè)計,不需要認(rèn)證管理。同時,本文方案滿足可轉(zhuǎn)換性,文獻(xiàn)[14-15]方案不滿足可轉(zhuǎn)換性。另一方面,本文方案可用于處理屬于多個所有者的數(shù)據(jù),文獻(xiàn)[14-15]方案不能用于處理屬于多個所有者的數(shù)據(jù)。 表3將本文方案的通信消耗與文獻(xiàn)[14-15]方案進(jìn)行了比較,包括以下三部分:標(biāo)簽大小、挑戰(zhàn)大小和響應(yīng)大小。在表3 中,n表示RSA 中的安全大整數(shù),表示總塊數(shù),n1表示所有者數(shù)。在文獻(xiàn)[14-15]方案中,簽名是必要的,用|Sig|表示簽名長度,用|μ|表示合計塊數(shù)量。 從表2 和表3 可知,ID-MPDP 方案具有以下優(yōu)點(diǎn)。 表2 3 種方案的計算和安全性比較(數(shù)據(jù)所有者數(shù)量為n1) 表3 3 種方案的通信消耗比較(數(shù)據(jù)所有者數(shù)量為n1) 1) 該方案可用于多所有者數(shù)據(jù)完整性檢測,而其他方案則不能。 2) 相對于文獻(xiàn)[14-15]方案,該方案具有較低的數(shù)據(jù)塊擴(kuò)展率。 3) 利用基于身份的公鑰密碼學(xué),消除了證書管理成本。 4) 該方案是可轉(zhuǎn)換的,高效且滿足更多安全性要求。 仿真實驗采用C 語言和Miracl 庫。PCS 和PKG運(yùn)行在DELL PowerEdge R420 服務(wù)器,該服務(wù)器性能如下。 ①CPU:Intel R Xeon R processor E5-2400,E5-2400 v2 product families ② Physical Memory:8 GB DDR3 1 600 MHz ③OS:Ubuntu 13.04 Linux 3.8.0-19-generic SMP i686 驗證者運(yùn)行在PC 平臺,性能如下。 ①CPU:Intel(R) Core(TM) i5-3470 CPU@3.20 GHz ② Physical Memory:4.00 GB (3.36 GB available) ③OS:Windows 7 TagBlock 階段的計算時間如圖1 所示。 圖1 TagBlock 階段的計算時間 GenProof 階段和CheckProof 階段的計算時間如圖2 所示。在GenProof 階段,計算時間來自PCS和PKG。在CheckProof 階段,計算時間來自驗證者,n1表示數(shù)據(jù)源數(shù)目。 圖2 GenProof 階段和CheckProof 階段的計算時間 在公有云中,本文提出了一種基于身份的多所有者數(shù)據(jù)完整性檢測的ID-MPDP 方案,基于RSA 構(gòu)造了具體方案。安全性分析和性能分析表明,所提的ID-MPDP 方案是可證明安全的和高效的。3.2 安全分析
4 性能分析
4.1 計算消耗
4.2 通信消耗
4.3 降低數(shù)據(jù)塊擴(kuò)展率
4.4 可轉(zhuǎn)換性
4.5 方案比較
4.6 仿真實驗
5 結(jié)束語