本發(fā)明涉及網(wǎng)絡(luò)安全,尤其涉及一種智能電網(wǎng)下基于sgx的數(shù)據(jù)完整性驗證方法。
背景技術(shù):
1、智能電表是智能電網(wǎng)基礎(chǔ)設(shè)施中的一個關(guān)鍵設(shè)備。截至2021年,美國已經(jīng)安裝了超過1.1億智能電表。僅在2022年,美國的智能電表數(shù)量將激增至1.24億,傳輸?shù)臄?shù)據(jù)量將達到48pb。智能電網(wǎng)若直接獲取海量智能電表上傳的數(shù)據(jù),則將面臨流數(shù)據(jù)實時傳輸帶來的帶寬開銷問題。隨著移動云計算的發(fā)展,將智能電表數(shù)據(jù)上傳到云端進行存儲成為解決這一問題的重要方式。對于智能電網(wǎng)機構(gòu)來說,出于成本考慮需要使用公有云進行存儲。但由于云服務(wù)提供商的本身架構(gòu)問題,如拜占庭問題等,存儲在云中的數(shù)據(jù)可能會損壞或泄露,而云因為自身利益關(guān)系,并不會立即將數(shù)據(jù)丟失事件告知客戶?;谏鲜鰡栴},為實現(xiàn)智能電表數(shù)據(jù)在云平臺上的安全存儲并驗證其數(shù)據(jù)的完整性,需要引入數(shù)據(jù)完整性驗證的方法來確保云端數(shù)據(jù)的安全。
2、使用數(shù)據(jù)完整性驗證對云存儲數(shù)據(jù)進行驗證一般包含以下算法:
3、(1)keygen(k)→(pk,sk):客戶端生成密鑰。用戶在本地執(zhí)行密鑰生成算法,輸入安全參數(shù)k,并輸出公鑰pk,私鑰sk。
4、(2)siggen(sk,m)→t:客戶端生成文件標簽。用戶在本地利用算法(1)中生成的私鑰sk對文件執(zhí)行標簽生成算法,生成文件m的數(shù)據(jù)標簽。
5、(3)chalgen(appr)→{chal,r}:用戶將當(dāng)次驗證所需的電力系統(tǒng)數(shù)據(jù)的數(shù)據(jù)范圍appr作為輸入,輸出審計挑戰(zhàn)集合chal和數(shù)據(jù)錯誤定位拓展范圍r。
6、(4)genproof(m,t,chal)→p:當(dāng)需要進行數(shù)據(jù)完整性驗證時,由驗證者將審計挑戰(zhàn)集合chal發(fā)送給服務(wù)器,服務(wù)器根據(jù)審計挑戰(zhàn)集合chal生成對應(yīng)的證據(jù)p,并將該證據(jù)p返回給驗證者。
7、(5)verifyproof(chal,p,r)→*true,false,local+:驗證者根據(jù)云服務(wù)器發(fā)送的證據(jù)p通過驗證算法來判斷存儲在云中的數(shù)據(jù)是否被完整存儲。若發(fā)現(xiàn)錯誤數(shù)據(jù),則首先依據(jù)二分法找出錯誤挑戰(zhàn)索引,并根據(jù)拓展范圍r查詢是否存在錯誤數(shù)據(jù)漏報。
8、上述傳統(tǒng)的數(shù)據(jù)完整性算法具有以下兩個問題:一方面,對于智能電網(wǎng)場景下的智能電表來說,不滿足傳統(tǒng)的數(shù)據(jù)完整性驗證過程中將簽名計算與驗證計算集于用戶一體需要的計算能力;另一方面,雖然可以引入第三方審核員協(xié)助進行審計,但審計帶來的通信開銷以及第三方審核員本身是否對數(shù)據(jù)好奇對整體審計過程會帶來一定的風(fēng)險。軟件安全擴展(software?guard?extensions,sgx)技術(shù)作為intel架構(gòu)的擴展,可以為應(yīng)用程序提供一塊安全的內(nèi)存,保護內(nèi)存中的應(yīng)用程序不受外界環(huán)境的影響。sgx作為具有一定算力且不需要在云環(huán)境中進行額外部署的組件,可以解決物聯(lián)網(wǎng)設(shè)備不具備一定計算能力需要可信第三方的問題。
9、對于大規(guī)模的智能電表(smart?meters,sms)及其不斷增長的數(shù)據(jù)量,增加簽名管理的難度和存儲開銷是不可避免的。隨著數(shù)據(jù)量的不斷增加,管理和訪問簽名證據(jù)變得更加復(fù)雜且費時。為了更快地訪問這些簽名證據(jù),需要建立高效的索引結(jié)構(gòu)。對于新產(chǎn)生的證據(jù),簽名者可以將其直接存儲在該索引中,以便后續(xù)快速檢索。面對如此大規(guī)模的證據(jù)生成,傳統(tǒng)的merkle-tree索引結(jié)構(gòu)在提供索引檢索的同時,可以對數(shù)據(jù)進行認證,確保數(shù)據(jù)沒有被篡改。然而,在sgx環(huán)境中,sgx本身提供了一個可信的執(zhí)行環(huán)境,對于索引結(jié)構(gòu)的首要目標是保證能夠高效且準確地檢索簽名證據(jù),以滿足快速訪問的需求。如果采用哈希表對索引進行存儲的話,則會因為大量的哈希沖突而導(dǎo)致精度下降。同時,對于智能電表的動態(tài)操作,例如增加或刪除來說,這就要求索引結(jié)構(gòu)具有相對的彈性,但是現(xiàn)有的索引結(jié)構(gòu)只能支持數(shù)據(jù)塊結(jié)構(gòu)的查詢,并不適用于sgx環(huán)境。因此,需要設(shè)計一種具有可擴展的新的索引結(jié)構(gòu)。
技術(shù)實現(xiàn)思路
1、針對上述現(xiàn)有技術(shù)的不足,本發(fā)明基于sgx的安全特性,提出了一種智能電網(wǎng)下基于sgx的數(shù)據(jù)完整性驗證方法,旨在確保智能電網(wǎng)下數(shù)據(jù)的隱私安全和存儲安全,同時進一步提升驗證效率,為后續(xù)智能電網(wǎng)從云端下載正確完整的數(shù)據(jù)進行后續(xù)的電力應(yīng)用奠定了基礎(chǔ)。
2、本發(fā)明提出的一種智能電網(wǎng)下基于sgx的數(shù)據(jù)完整性驗證方法,包括:
3、步驟1:構(gòu)建基于sgx的數(shù)據(jù)完整性驗證模型,包括:智能電表sm、云存儲服務(wù)器css和供電公司esc;
4、步驟2:初始化基于sgx的數(shù)據(jù)完整性驗證模型,供電公司esc向云存儲服務(wù)器css申請prof-sgx與verify-sgx,供電公司esc與prof-sgx進行遠程驗證并建立可信信道,將智能電表sm與通過供電公司esc遠程驗證的prof-sgx進行匹配,智能電表sm與匹配成功的prof-sgx進行驗證并建立可信信道;其中所述prof-sgx與verify-sgx均包含在云存儲服務(wù)器css中;
5、步驟3:利用智能電表獲取用戶住宅的電表數(shù)據(jù)并對電表數(shù)據(jù)進行加密,將加密后的電表數(shù)據(jù)通過可信信道上傳至通過智能電表驗證的prof-sgx;
6、步驟4:prof-sgx對加密后的電表數(shù)據(jù)進行解密,再對解密后得到的電表數(shù)據(jù)進行二次加密并生成證據(jù);
7、步驟5:供電公司向verify-sgx發(fā)送對數(shù)據(jù)完整性驗證的審計需求reqk,verify-sgx根據(jù)審計請求reqk生成挑戰(zhàn)索引集發(fā)送至prof-sgx,進而生成挑戰(zhàn)請求并發(fā)送給云存儲服務(wù)器css,云存儲服務(wù)器css計算數(shù)據(jù)證明proof1發(fā)送給verify-sgx,prof-sgx利用步驟4中生成的證據(jù)計算證明proof0發(fā)送給verify-sgx,verify-sgx根據(jù)數(shù)據(jù)證明proof1和證明proof0對二次加密后的電表數(shù)據(jù)進行數(shù)據(jù)完整性驗證,若驗證成功則將符合審計需求的電表數(shù)據(jù)發(fā)送給供電公司,反之執(zhí)行步驟6;
8、步驟6:采用二分法對云存儲服務(wù)器css中二次加密后的電表數(shù)據(jù)進行錯誤數(shù)據(jù)定位,得到所有錯誤的電表數(shù)據(jù)并發(fā)送給供電公司,供電公司從云存儲服務(wù)器css中獲取除所有錯誤的電表數(shù)據(jù)之外的符合審計需求的電表數(shù)據(jù);
9、所述智能電表sm安裝在用戶住宅內(nèi),用于獲取用戶住宅的電表數(shù)據(jù),并對該電表數(shù)據(jù)加密后傳輸至云存儲服務(wù)器css;
10、所述云存儲服務(wù)器css由云服務(wù)提供商管理,用于接收來自智能電表sm的電表數(shù)據(jù)和來自供電公司esc的數(shù)據(jù)需求,并選定符合該數(shù)據(jù)需求的電表數(shù)據(jù)傳輸至供電公司esc;
11、所述prof-sgx,用于生成并存儲證據(jù);所述verify-sgx,用于充當(dāng)審計過程中的可信第三方來檢查云存儲服務(wù)器css上數(shù)據(jù)的完整性;
12、所述供電公司esc,用于向云存儲服務(wù)器css發(fā)送數(shù)據(jù)需求,并接收來自云存儲服務(wù)器css的數(shù)據(jù);
13、所述步驟2進一步包括:
14、步驟2-1:初始化基于sgx的數(shù)據(jù)完整性驗證模型,并生成基于sgx的數(shù)據(jù)完整性驗證模型的公共參數(shù);
15、步驟2-1-1:供電公司esc生成一個階數(shù)為q的加法循環(huán)群g1和一個階數(shù)為q的乘法循環(huán)群g2;其中q為大素數(shù);
16、步驟2-1-2:供電公司esc根據(jù)加法循環(huán)群g1和乘法循環(huán)群g2設(shè)定雙線性映射e和哈希函數(shù)h1;
17、步驟2-1-3:定義模q的乘法群zq*,供電公司esc從zq*中隨機選擇esc的私鑰skesc,并計算esc的公鑰pkesc;
18、步驟2-1-4:將加法循環(huán)群g1、乘法循環(huán)群g2、雙線性映射e、模q、生成元p、esc的公鑰pkesc和哈希函數(shù)h1作為基于sgx的數(shù)據(jù)完整性驗證模型的公共參數(shù)并由供電公司esc進行發(fā)布;所述公共參數(shù)記為*g1,g2,e,q,p,pkesc,h1+;
19、步驟2-2:供電公司esc向云存儲服務(wù)器css申請prof-sgx與verify-sgx,并與prof-sgx建立可信信道,智能電表sm向供電公司esc注冊,智能電表sm與云存儲服務(wù)器css中的prof-sgx進行匹配,進而與匹配成功的prof-sgx進行驗證并建立可信信道;
20、步驟2-2-1:供電公司與prof-sgx進行遠程認證并建立可信信道;
21、步驟2-2-2:智能電表sm向供電公司esc注冊;
22、步驟2-2-3:智能電表與prof-sgx進行身份認證;
23、所述步驟2-2-1進一步包括:
24、步驟2-2-1-1:供電公司esc向prof-sgx中的安全區(qū)enclave發(fā)送身份認證請求reqesc;
25、步驟2-2-1-2:安全區(qū)enclave在收到reqesc后,通過調(diào)用ereport指令生成report結(jié)構(gòu)reporte,并將reporte發(fā)送給prof-sgx中的引用enclave;
26、步驟2-2-1-3:引用enclave在收到reporte后,與安全區(qū)enclave在運行prof-sgx的設(shè)備或計算環(huán)境內(nèi)進行雙向驗證;
27、所述雙向驗證包括:安全區(qū)enclave對引用enclave進行身份驗證和引用enclave對安全區(qū)enclave進行身份驗證;
28、所述安全區(qū)enclave對引用enclave進行身份驗證的過程為:安全區(qū)enclave向引用enclave發(fā)送身份認證請求reqe,引用enclave通過調(diào)用ereport指令生成report結(jié)構(gòu)reportqe,其中reportqe包括:引用enclave的身份信息和可信硬件信息;獲取安全區(qū)enclave的報告密鑰ke并計算reportqe的mac標簽構(gòu)建reportqe及其mac標簽并發(fā)送給安全區(qū)enclave;安全區(qū)enclave收到后,通過調(diào)用egetkey指令來根據(jù)安全區(qū)enclave的報告密鑰ke重新計算report結(jié)構(gòu)的mac標簽,記為mac;安全區(qū)enclave檢查reportqe中的可信硬件信息是否與安全區(qū)enclave在認證之前預(yù)先記錄的硬件信息一致,若不一致則認證失敗,若一致則將mac和從接收的中分離出的進行匹配,若匹配成功,則證明安全區(qū)enclave認可引用enclave的身份,執(zhí)行步驟2-2-1-4;若匹配失敗,則證明安全區(qū)enclave對引用enclave的身份驗證失?。?/p>
29、所述引用enclave對安全區(qū)enclave進行身份驗證的過程為:引用enclave向安全區(qū)enclave發(fā)送身份認證請求reqqe,安全區(qū)enclave通過調(diào)用ereport指令生成report結(jié)構(gòu)reporte1,其中reporte1包括:安全區(qū)enclave的身份信息和可信硬件信息;獲取引用enclave的報告密鑰kqe并計算report結(jié)構(gòu)的mac標簽構(gòu)建report結(jié)構(gòu)及其mac標簽并發(fā)送給引用enclave;引用enclave收到后,通過調(diào)用egetkey指令來根據(jù)引用enclave的報告密鑰kqe重新計算report結(jié)構(gòu)的mac標簽,記為macqe;引用enclave檢查report結(jié)構(gòu)中的硬件信息是否與引用enclave在認證之前預(yù)先記錄的硬件信息一致,若不一致則認證不通過,若一致則將macqe和從接收的中分離出的進行匹配,若匹配成功,則證明引用enclave認可安全區(qū)enclave的身份,執(zhí)行步驟2-2-1-4;若匹配失敗,則證明引用enclave對安全區(qū)enclave的身份驗證失??;
30、步驟2-2-1-4:引用enclave生成遠程認證結(jié)果quote,包括:引用enclave的身份信息和可信硬件信息,獲取并利用處理器的私鑰kepid生成簽名進而生成遠程認證結(jié)果及其簽名并發(fā)送給供電公司esc和安全區(qū)enclave;
31、步驟2-2-1-5:供電公司esc從收到的中分離出并利用intel認證服務(wù)的公鑰證書對簽名的合法性進行驗證,如果合法則證明簽名有效,并通過比對quote的可信硬件信息與intel認證服務(wù)提供的硬件信息來確認安全區(qū)的身份并存儲安全區(qū)enclave的編號ide;如果不合法則重新執(zhí)行2-2-1-4;
32、所述步驟2-2-2進一步包括:
33、步驟2-2-2-1:對于任意智能電表smi,smi從zq*中隨機選擇smi的私鑰并計算smi的公鑰smi通過智能電表與供電公司之間的安全信道發(fā)送消息給供電公司,其中表示第i個智能電表的編號;
34、步驟2-2-2-2:基于接收到的消息供電公司采用bls簽名計算smi的證書并保存,供電公司esc構(gòu)建消息并通過安全信道發(fā)送至智能電表,同時供電公司esc向prof-sgx發(fā)送esc的公鑰pkesc;
35、所述smi的證書為:
36、
37、其中sig_skesc(·)表示利用供電公司esc的私鑰skesc對消息進行簽名;表示智能電表smi證書的有效期;
38、步驟2-2-2-3:智能電表smi存儲消息
39、所述步驟2-2-3進一步包括:
40、步驟2-2-3-1:prof-sgx從中隨機選擇prof-sgx的私鑰sksgx,并計算prof-sgx的公鑰pksgx;
41、步驟2-2-3-2:智能電表從存儲的ide中匹配需要進行認證的prof-sgx,對于該prof-sgx,智能電表smi選擇從中選擇隨機數(shù)并計算密鑰協(xié)商的參數(shù)智能電表smi從中隨機選擇挑戰(zhàn)值c1,并構(gòu)建消息智能電表使用該prof-sgx的公鑰pksgx對消息進行加密,得到密文并發(fā)送至該prof-sgx;其中h(·)為哈希函數(shù);
42、所述密文為:
43、
44、其中en_pksgx(·)表示使用該prof-sgx的公鑰pksgx進行加密的過程;
45、步驟2-2-3-3:prof-sgx對密文進行解密,得到消息
46、步驟2-2-3-4:prof-sgx判斷消息中的合法性,若合法,則對證書的合法性進行驗證,若證書合法,則將保存至prof-sgx中;若證書不合法,則智能電表身份認證失敗;prof-sgx計算會話密鑰并使用會話密鑰對消息(c1)進行加密,將加密得到的密文發(fā)送至智能電表smi;
47、所述會話密鑰為:
48、
49、所述密文為:
50、
51、其中表示使用會話密鑰進行加密的過程;
52、步驟2-2-3-5:智能電表smi收到密文后,計算會話密鑰并對密文進行解密得到消息(c1),進而獲得挑戰(zhàn)值c1,smi驗證c1的正確性,若正確,則表示smi已與prof-sgx認證成功并構(gòu)建可信信道;若不正確,則表示smi與prof-sgx認證失敗;
53、所述會話密鑰為:
54、
55、步驟3中所述對電表數(shù)據(jù)進行加密的過程為:對于智能電表smi,獲取用戶住宅的電表數(shù)據(jù),smi利用會話密鑰對電表數(shù)據(jù)進行加密,得到加密后的電表數(shù)據(jù)并通過可信信道上傳至云存儲服務(wù)器css中與該智能電表匹配成功的prof-sgx;
56、所述加密后的電表數(shù)據(jù)為:
57、
58、其中表示smi在tj時刻生成的數(shù)據(jù)塊;tj表示j時刻;表示加密后的數(shù)據(jù)塊;表示利用會話密鑰進行加密的過程;
59、所述步驟4進一步包括:
60、步驟4-1:prof-sgx利用會話密鑰對接收的進行解密,得到數(shù)據(jù)并從數(shù)據(jù)中分離出tj和smi;
61、步驟4-2:獲取供電公司為prof-sgx生成的對稱密鑰并利用對稱密鑰對步驟4-1中分離出的進行二次加密,得到二次加密數(shù)據(jù)
62、所述二次加密數(shù)據(jù)為:
63、
64、其中表示利用對稱密鑰進行二次加密的過程;m為prof-sgx的編號;是供電公司為編號為m的prof-sgx生成的對稱密鑰;
65、步驟4-3:使用同態(tài)哈希函數(shù)fhp對二次加密數(shù)據(jù)進行哈希處理得到證據(jù)將二次加密數(shù)據(jù)上傳至云存儲服務(wù)器css進行存儲,將證據(jù)存儲在prof-sgx中;
66、步驟4-4:將步驟4-1中分離出的tj作為證據(jù)的樹索引,smi作為表示證據(jù)來源的智能電表,構(gòu)建prof-sgx中的trie-rbt樹并存儲,prof-sgx將樹索引發(fā)送給verify-sgx;
67、所述prof-sgx中的trie-rbt樹包括兩層樹結(jié)構(gòu),分別為:用于存儲智能電表id的字典樹和用于存儲證據(jù)的紅黑樹rbt;
68、所述用于存儲智能電表id的字典樹包括:根節(jié)點不存放任何智能電表id中的字符,除根節(jié)點以外的每個節(jié)點處只存放一個字符,且每個節(jié)點的子節(jié)點處存放的字符各不相同;對于從根節(jié)點到除根節(jié)點之外任意節(jié)點的路徑,將由該路徑上所有節(jié)點中存放的字符組成的字符串作為該節(jié)點的字符串;
69、對于任意一個待存儲的智能電表id,查詢字典樹根節(jié)點的子節(jié)點中是否存有第一個字符,若是則訪問該子節(jié)點,并將該子節(jié)點作為下一個字符的查詢起點;若否則插入一個保存第一個字符的子節(jié)點并作為下一個字符的查詢起點;查詢該查詢起點的子節(jié)點中是否存有第二個字符,若是則訪問該子節(jié)點,并將該子節(jié)點作為下一個字符的查詢起點;若否則插入一個保存第二個字符的子節(jié)點并作為下一個字符的查詢起點,重復(fù)上述過程直至完成該智能電表id中最后一個字符的查詢,并在存有最后一個字符的節(jié)點處標記結(jié)束符號,將該節(jié)點作為結(jié)束節(jié)點,表示從根節(jié)點到結(jié)束節(jié)點的路徑中存儲的字符構(gòu)成一個完整的智能電表id;
70、所述用于存儲證據(jù)的紅黑樹rbt為:對于任意智能電表smi,將smi的紅黑樹的根節(jié)點存儲在字典樹中存有的結(jié)束節(jié)點中,將時間戳tj作為紅黑樹的樹索引并根據(jù)時間戳的自然順序來構(gòu)建一個紅黑樹,當(dāng)新的證據(jù)到達時,將新的證據(jù)直接插入rbt最右側(cè)的節(jié)點中;
71、所述步驟5進一步包括:
72、步驟5-1:供電公司向verify-sgx發(fā)出審計請求reqk;
73、步驟5-2:verify-sgx通過隨機抽取若干個數(shù)據(jù)生成挑戰(zhàn)索引集csk,為每個抽取到的數(shù)據(jù)塊生成一個隨機數(shù),并利用所有生成的隨機數(shù)組成隨機數(shù)集合v;
74、步驟5-3:verify-sgx根據(jù)審計請求reqk生成挑戰(zhàn)索引集并發(fā)送至prof-sgx,利用挑戰(zhàn)索引集和隨機數(shù)集合v生成挑戰(zhàn)請求并發(fā)送給云存儲服務(wù)器css;
75、步驟5-4:云存儲服務(wù)器css根據(jù)挑戰(zhàn)請求計算數(shù)據(jù)證明proof1并發(fā)送至verify-sgx;
76、所述數(shù)據(jù)證明proof1為:
77、
78、其中cdk為挑戰(zhàn)數(shù)據(jù);對于給定一個用于計算證據(jù)的prof-sgx,即prof-sgxm,cdk,prof-m表示在prof-sgxm上生成的cdk的證據(jù)部分;cdk,dr-m表示與cdk,prof-m相關(guān)的遠程數(shù)據(jù)部分;表示為抽取到的數(shù)據(jù)塊生成的隨機數(shù);
79、步驟5-5:prof-sgx通過計算存儲在prof-sgx中證據(jù)的集合得到證明proof0并發(fā)送至verify-sgx;
80、所述證明proof0為:
81、
82、其中proof0為證據(jù)集合中的元素累乘,即的累乘;
83、步驟5-6:verify-sgx根據(jù)收到的數(shù)據(jù)證明proof1計算數(shù)據(jù)證明proof1的同態(tài)哈希函數(shù)值fhp(proof1),verify-sgx根據(jù)收到的證明proof0計算證據(jù)proof2,驗證fhp(proof1)與proof2是否相等,若相等則輸出結(jié)果result為true,表明電表數(shù)據(jù)在云存儲服務(wù)器css中被完整存儲,未被篡改,并根據(jù)審計請求reqk選擇云存儲服務(wù)器css的二次加密數(shù)據(jù)發(fā)送給供電公司,供電公司使用解密得到電表數(shù)據(jù)反之則驗證失敗,輸出結(jié)果result為false,表示電表數(shù)據(jù)在css中已經(jīng)損壞,并執(zhí)行步驟6;
84、所述數(shù)據(jù)證明proof1的同態(tài)哈希函數(shù)值fhp(proof1)為:
85、
86、其中fhp(·)表示同態(tài)哈希函數(shù);
87、所述證據(jù)proof2為:
88、
89、所述供電公司使用解密得到電表數(shù)據(jù)的過程為:
90、
91、其中表示使用對二次加密數(shù)據(jù)進行解密的過程;
92、步驟6中所述采用二分法對云存儲服務(wù)器css中二次加密后的電表數(shù)據(jù)進行錯誤數(shù)據(jù)定位的過程為:verify-sgx采用二分法對挑戰(zhàn)索引集csk進行拆分,并根據(jù)拆分后的挑戰(zhàn)索引集分別向css和prof-sgx發(fā)送挑戰(zhàn)請求,css和prof-sgx根據(jù)各自收到的挑戰(zhàn)請求生成證明返回給verify-sgx進行驗證,若驗證通過則表示與該部分挑戰(zhàn)索引集對應(yīng)的數(shù)據(jù)中沒有錯誤數(shù)據(jù);若驗證失敗則采用二分法對含有錯誤數(shù)據(jù)的挑戰(zhàn)索引集繼續(xù)進行拆分,并根據(jù)拆分后的挑戰(zhàn)索引集分別向css和prof-sgx發(fā)送挑戰(zhàn)請求,css和prof-sgx根據(jù)各自收到的挑戰(zhàn)請求生成證明返回給verify-sgx進行驗證,直至找到csk中所有的錯誤數(shù)據(jù)并生成錯誤挑戰(zhàn)集合errk,verify-sgx依據(jù)拓展范圍r分別以錯誤挑戰(zhàn)集合errk中的各元素為中心,生成若干個拓展范圍驗證挑戰(zhàn)chalerr并發(fā)送至prof-sgx,prof-sgx通過查詢trie-rbt樹確定與chalerr對應(yīng)的證據(jù)并發(fā)送至verify-sgx,verify-sgx采用二分法找出錯誤的電表數(shù)據(jù)并發(fā)送至供電公司。
93、采用上述技術(shù)方案所產(chǎn)生的有益效果在于:
94、在安全性方面,本發(fā)明方法充分利用了sgx的安全特性,通過引入sgx來解決智能電網(wǎng)場景下引入不可信第三方帶來的隱私泄露問題,同時在一定程度上減少了通信開銷。
95、當(dāng)數(shù)據(jù)完整性驗證不通過時,本發(fā)明方法設(shè)計了一種基于范圍拓展的錯誤定位方式,通過二分法將云中所有錯誤數(shù)據(jù)均定位出來,并依據(jù)審計拓展范圍獲取漏報的錯誤數(shù)據(jù)信息,在識別出挑戰(zhàn)集合中的錯誤基礎(chǔ)上,將錯誤定位拓展到自定義范圍上,實現(xiàn)細粒度錯誤定位。
96、在高效性方面,本發(fā)明方法根據(jù)sgx的安全特性及智能電網(wǎng)中智能電表id易具有相同前綴的特性,通過設(shè)計了一種具有可擴展的新的索引結(jié)構(gòu),即設(shè)計了一種雙層數(shù)據(jù)結(jié)構(gòu)來分別存儲智能電表id及各個時刻對應(yīng)的證據(jù),加快了對數(shù)據(jù)證據(jù)的訪問速度,在一定程度上提高了檢索效率。
97、考慮與sgx進行遠程認證的時間開銷較大,本發(fā)明方法通過分析sgx本身認證的特性結(jié)合場景,并引入供電公司作為媒介進行智能電表與sgx的身份認證,設(shè)計智能電表-sgx-供電公司三者之間的認證過程,在一定程度上提高了認證效率。
98、綜上所述,本發(fā)明提出的一種智能電網(wǎng)下基于sgx的數(shù)據(jù)完整性驗證方法,不僅確保了智能電網(wǎng)下數(shù)據(jù)的隱私安全和存儲安全,同時在驗證效率方面進行了進一步提升,為后續(xù)智能電網(wǎng)從云端下載正確完整的數(shù)據(jù)進行后續(xù)的電力應(yīng)用奠定了基礎(chǔ)。