王化群,劉哲,何德彪,李繼國
(1.南京郵電大學計算機學院,江蘇 南京 210023;2.南京航空航天大學計算機科學與技術學院,江蘇 南京 210016;3.武漢大學國家網絡安全學院,湖北 武漢 430072;4.福建師范大學數學與信息學院,福建 福州 350007)
5G 等新興技術的出現為物聯網環境下數據轉發的研究帶來了新的機遇和挑戰。5G 極大地提升了通信速度,能在無人駕駛、智能家居、智慧城市等方面廣泛應用,5G 的誕生能改寫物聯網領域。云計算能夠為遠程計算機用戶提供按需IT 服務,是繼互聯網經濟繁榮以來的又一個重要IT 產業增長點。云平臺能夠為移動用戶提供計算和存儲資源,但存在外包存儲數據被篡改的風險。
在公有云中,具體數據處理由公有云服務器(PCS,public cloud sever)執行。使用公有云具有以下優勢:因為公有云提供了硬件、應用程序和帶寬成本,所以操作簡單且成本低廉;提供可擴展性以滿足需求;因為用戶只需為使用的東西付費,所以不會浪費資源等。在公有云中,數據不受用戶控制。PCS 對外包數據的安全性和隱私性負有更多責任。但是,為了保護自己的利益,不誠實的PCS 可能會拒絕對丟失的數據負責。因此,確保數據所有者的遠程數據完整性是重要的。在某些應用程序環境中,外包數據屬于多個所有者,并且很敏感。在執行遠程數據完整性檢測時,必須確保驗證者不能獲取所存儲文件內容的任何信息。同時,驗證者必須確保檢測的數據屬于指定的多個所有者。但是,誰有能力檢測遠程數據的完整性?為了保護數據隱私,只能由數據所有者授權的驗證者執行遠程數據完整性檢測。PKI(public key infrastructure)需要公鑰證書的分發和管理,會產生相當大的消耗,例如證書生成、交付、吊銷、更新等。身份基公鑰密碼體制消除了復雜的證書管理,為了提高效率,研究公有云中多源物聯網(IoT,Internet of things)終端數據身份基完整性檢測非常必要。
當海量數據存儲在PCS 中時,輕量級遠程數據完整性概率檢測是一種可行的方法。可證數據持有(PDP,provable data possession)是一個重要的遠程數據完整性概率檢測模型。基于RSA 加密技術,Ateniese 等[1]在2007 年提出了PDP 模型和設計方法。然后,文獻[2-3]提出了PoR(proof of retrievability)模型。近年來,PDP 模型和方案設計得到了進一步發展。
利用區塊鏈技術,研究人員相繼提出了高效的私有PDP 方案[4]、無可信中心PDP 方案[5]、動態PDP 方案[6]等。為解決復雜證書管理問題,基于雙線性對或RSA 假設,一些高效的身份基PDP 方案被提出[7-8]。當遠程數據需要動態處理時,如插入、刪除等,動態PDP 方案是必要的[9-10]。另外,可遷移的遠程數據PDP 方案[11]、匿名PDP 方案[12]等相繼被提出。
在某些特殊情況下,數據屬于多個所有者。例如在工業物聯網中,需要多個物聯網節點協作交互,感知物理空間數據,并將這些數據存儲在遠程云服務器中。多所有者數據管理已成為重要的研究領域,在公有云中研究其完整性檢測非常重要。現有PDP 方案都不是多源PDP,因而不適合本文的場景。本文提出的PDP 方案不僅適用于多源數據,并且是基于身份的,消除了復雜的證書管理,提高了效率。
本文主要貢獻如下:提出了公有云中身份基多源IoT 終端數據PDP 概念,給出了形式化定義、系統模型和安全模型;使用RSA 和一些相應的困難問題,設計了一種有效且安全的身份基多源IoT 終端數據可證明數據持有(ID-MPDP,identity-based multi-source IoT terminals provable data possession)方案。安全性分析和性能比較表明,本文的ID-MPDP方案是可證安全和有效的。
系統模型。本文系統由以下網絡實體組成:系統管理器、私鑰生成中心(PKG,private key generator)、PCS、數據所有者、驗證者。
1) 系統管理器:生成系統參數。
2) PKG:可信第三方,為用戶生成相應的私鑰,也有助于驗證者完成遠程數據完整性檢測。
3) PCS:具有大量存儲空間和計算資源來處理用戶數據。
4) 數據所有者:即多源IoT 終端,將大量數據上傳到PCS 進行存儲和計算。本文中,用戶指IoT終端。
5) 驗證者:通過與PKG 交互檢測遠程數據完整性。
信任假設。PKG 得到所有其他實體的信任。PKG 不能與所有其他實體(包括PCS、數據所有者、驗證者)合謀。驗證者不能與PCS、數據所有者合謀。對于屬于n1個所有者的已處理文件F,允許PCS 與最多n1? 1個所有者合謀。
ID-MPDP 方案形式化定義如定義1 所示。
定義1ID-MPDP 方案。其包括5 個算法:SetUp、KeyGen、TagBlock、GenProof 和CheckProof,具體如下。
1) SetUp(1k)→系統參數。輸入安全參數k,輸出系統參數。
2) KeyGen(ID)→xID。輸入用戶身份ID,輸出用戶私鑰xID。
3) TagBlock (F j,xIDi,IDi∈U)→Tj。輸入數據塊Fj,U中用戶交互生成相應的標簽Tj,并將(F j,Tj)上傳到PCS。其中,U表示參與協議的用戶集。
4) GenProof(chal)→V。輸入挑戰chal,PCS生成完整性檢測證明V,并將V發送給驗證者。
5) CheckProof(chal,V)→成功/失敗。輸入挑戰chal 和響應V,如果有效,則返回“成功”;否則,返回“失敗”。
ID-MPDP 方案必須滿足以下安全要求。
1) GenProof 只能由數據所有者授權的驗證者執行。
2) 授權驗證者不需要文件和標簽的完整副本。
3) 修改某些存儲的數據后,惡意證明者(即PCS)只能以很小的概率通過驗證者的檢測。即使PCS 與部分數據所有者串通,它仍然只能以很小的概率通過驗證者的檢測。
定義2不可偽造性。對于公有云中的多所有者數據,如果任何PPT 敵手A(即惡意PCS 和部分所有者)都無法偽造ID-MPDP 方案,A贏得游戲的概率可以忽略不計。游戲來自挑戰者S與敵手A的交互,游戲如下。
1) 初始化。生成系統參數和數據所有者的公私鑰對,并將系統參數和數據所有者的公鑰發送給A。如果某個文件F存在n1個數據所有者,S將n1? 1個數據所有者的私鑰發送給A。
2) 請求。A將預言機請求自適應地發送給S,S響應這些請求。
①哈希預言機。收到哈希請求后,S用相應的哈希值響應A。
② KeyGen 預言機。收到身份后,S會生成相應的私鑰并將其發送給A。
③TagBlock 預言機。收到TagBlock 請求Fj后,S計算數據塊標簽Tj并將Tj發送給A。
3) 挑戰。S向A發送挑戰chal,限制條件是,至少有一個挑戰數據塊沒有發給TagBlock 預言機。
4) 偽造。根據chal,A計算并返回證明V給S。
在上面的游戲中,如果響應V以不可忽略的概率通過S的檢測,則A獲勝。
定義3(ρ,δ)安全[8]。如果PCS 篡改了全部數據塊?標簽對的ρ部分,驗證者以至少δ的概率檢測到該篡改,則ID-MPDP 方案是(ρ,δ)安全的。
1) RSA。RSA 密碼系統由Rivest、Shamir 和Adleman 于1978 年發明。在標準RSA 中,n=pq是2 個同樣大小的大素數的乘積,公鑰e滿足1 ≤e≤φ(n)的整數,且e和φ(n)互素,即gcd (e,φ(n))=1,其中φ(n)=(p? 1)(q? 1)是歐拉函數。求解方程ed=1modφ(n)得到私鑰d。
定義4RSA 問題[13]。設n=pq是2 個同樣大小的大素數的乘積,給定公鑰n,e,y∈,RSA 問題是計算的模數y第e個根x,使xe=ymodn。
A解決RSA 問題的成功概率為

對于任何概率多項式時間敵手A,如果可忽略不計,則RSA 假設成立。
2) 二次剩余[13]。如果存在一個整數x使x2≡zmodn,則整數z為二次剩余;否則,z為模n的非二次剩余。
假設上傳的數據塊?標簽對的最大數量為,文件F可能通過使用糾錯碼(例如Reed-Solomon 碼)進行編碼將上傳到PCS。F分為個塊 (F1,…,Fn?)。本文中所用符號和說明如表1 所示。

表1 符號和說明
SetUp(1k)。n1表示數據所有者的數目,k表示安全性參數。選取 2 個素數e和e′,其中2k≤e,e′≤22k且2kn1 如果等式成立,驗證者輸出“成功”;否則,驗證者輸出“失敗”。 ID-MPDP方案的正確性分析和安全性分析如下。 定理1如果上傳的數據塊?標簽對有效,即數據所有者和驗證者是誠實的,并且數據沒有被篡改,那么上傳的數據塊?標簽對能夠通過驗證者的完整性檢測,即CheckProof 滿足正確性。 證明正確性來自以下推導。 假設存在一個文件F,它屬于n1個數據所有者。將文件F分成個數據塊。在KeyGen 階段,對于身份ID,PKG 需要執行哈希函數H1和以整數n為模的指數算法。在TagBlock 階段中,對于單個數據塊,每個所有者將計算一次哈希函數H3、4 次模冪n計算和2n1? 1次乘運算。對于挑戰,PCS 將執行2c次冪運算和2(c? 1)次乘運算,執行2c? 1次加法和c次乘法。在CheckProof 階段中,驗證者將執行c+n1+1次冪運算和c+n1? 1次乘運算。另外,PKG 將計算m odφ(n)和一次冪運算。 RSA 的有效性取決于整數因子分解的計算困難性。1024 bit 的非對稱密鑰長度通常被認為是RSA 加密算法所需的最小長度。 數據上傳一次可以全部完成,僅考慮完整性請求和響應引起的通信消耗。在完整性請求中,驗證者將挑戰 chal=(c,k1,k2)發送到PCS。換句話說,驗證者將中的2 個元素和一個小整數c發送到PCS。當n的長度為1 024 bit 時,挑戰的長度為。為了響應驗證者的挑戰,PCS 生成證明,其長度小于1024 × 3= 3 072bit。 在CheckProof 階段,秘密值D(i i=1,2,…,n1)是必不可少的。當驗證者獲得授權并獲得秘密值Di時,它可以執行GheckProof 。否則,它將無法執行CheckProof。因此,當數據所有者將Di保密時,ID-MPDP 方案是私有遠程數據完整性檢測。當數據所有者將Di公開時,ID-MPDP 方案就是公共遠程數據完整性檢測。當數據所有者將Di發送給某些特殊的驗證者時,ID-MPDP 方案就是指定驗證者遠程數據完整性檢測。因此,該方案是可轉換的。 本節將ID-MPDP 方案的計算和通信消耗與文獻[14-15]方案進行對比。本文方案和文獻[14-15]方案都是使用RSA 設計的。由于哈希函數和加法效率較高,因此在比較中將它們省略。表2 給出了3 種方案的計算和安全性比較。在表2 中,n1表示數據所有者數,Exp 和Mul 分別表示乘運算和冪運算的時間消耗,Sig 和VeriCert 分別表示生成簽名和驗證證書的時間消耗。在PKI 中,驗證來自證書頒發機構的證書是必不可少的。同時,本文還比較了它們的其他屬性。文獻[14-15]方案是在PKI 和基于身份的密碼學中設計的,需要認證管理。本文方案完全基于身份的密碼學設計,不需要認證管理。同時,本文方案滿足可轉換性,文獻[14-15]方案不滿足可轉換性。另一方面,本文方案可用于處理屬于多個所有者的數據,文獻[14-15]方案不能用于處理屬于多個所有者的數據。 表3將本文方案的通信消耗與文獻[14-15]方案進行了比較,包括以下三部分:標簽大小、挑戰大小和響應大小。在表3 中,n表示RSA 中的安全大整數,表示總塊數,n1表示所有者數。在文獻[14-15]方案中,簽名是必要的,用|Sig|表示簽名長度,用|μ|表示合計塊數量。 從表2 和表3 可知,ID-MPDP 方案具有以下優點。 表2 3 種方案的計算和安全性比較(數據所有者數量為n1) 表3 3 種方案的通信消耗比較(數據所有者數量為n1) 1) 該方案可用于多所有者數據完整性檢測,而其他方案則不能。 2) 相對于文獻[14-15]方案,該方案具有較低的數據塊擴展率。 3) 利用基于身份的公鑰密碼學,消除了證書管理成本。 4) 該方案是可轉換的,高效且滿足更多安全性要求。 仿真實驗采用C 語言和Miracl 庫。PCS 和PKG運行在DELL PowerEdge R420 服務器,該服務器性能如下。 ①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 驗證者運行在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表示數據源數目。 圖2 GenProof 階段和CheckProof 階段的計算時間 在公有云中,本文提出了一種基于身份的多所有者數據完整性檢測的ID-MPDP 方案,基于RSA 構造了具體方案。安全性分析和性能分析表明,所提的ID-MPDP 方案是可證明安全的和高效的。

3.2 安全分析





4 性能分析
4.1 計算消耗
4.2 通信消耗
4.3 降低數據塊擴展率

4.4 可轉換性
4.5 方案比較


4.6 仿真實驗


5 結束語