鄭智健,鄭 清,杰林釩
(莆田市氣象局,福建 莆田 351100)
隨著大數(shù)據(jù)和云計(jì)算技術(shù)的流行,氣象信息化的發(fā)展也在不斷加速,氣象事業(yè)的發(fā)展得到進(jìn)一步提升。其中,氣象部門(mén)與各行業(yè)之間的數(shù)據(jù)共享,使得氣象數(shù)據(jù)的應(yīng)用早已融入到日常生活。可以說(shuō)氣象數(shù)據(jù)是氣象部門(mén)的立業(yè)之基,也是國(guó)家安全重要元素,其安全與穩(wěn)定關(guān)乎經(jīng)濟(jì)社會(huì)的正常運(yùn)行[1]。然而,中心式存儲(chǔ)極易導(dǎo)致數(shù)據(jù)被泄露或被篡改,且因具備融合的特性,在數(shù)據(jù)共享的過(guò)程中一旦出現(xiàn)問(wèn)題,整個(gè)氣象業(yè)務(wù)體系必然遭受影響,進(jìn)而影響氣象服務(wù)保障水平。
區(qū)塊鏈技術(shù)本質(zhì)上是一種去中心化的分布式數(shù)據(jù)庫(kù),具有可溯源、數(shù)據(jù)防篡改、唯一性等獨(dú)特優(yōu)勢(shì),能夠?qū)崿F(xiàn)不可信節(jié)點(diǎn)之間的數(shù)據(jù)傳遞,預(yù)示其在數(shù)據(jù)共享和數(shù)據(jù)安全領(lǐng)域具有廣泛的應(yīng)用前景[2]。Sim等人[3]設(shè)計(jì)并實(shí)現(xiàn)了一種基于區(qū)塊鏈的物聯(lián)網(wǎng)大數(shù)據(jù)完整性驗(yàn)證系統(tǒng),通過(guò)對(duì)來(lái)自物聯(lián)網(wǎng)設(shè)備的數(shù)據(jù)和簽名密鑰進(jìn)行多個(gè)區(qū)塊鏈分組,最大限度地減少數(shù)據(jù)丟失。Kaaniche等人[4]提出基于區(qū)塊鏈的數(shù)據(jù)使用審計(jì)機(jī)制,依賴(lài)部署在區(qū)塊鏈基礎(chǔ)設(shè)施中的可審計(jì)合同,確保數(shù)據(jù)共享的可用性。上述研究雖然在一定程度上緩解了數(shù)據(jù)存儲(chǔ)的不足,但卻沒(méi)有考慮到數(shù)據(jù)隱私性和加密性問(wèn)題。同時(shí),有實(shí)驗(yàn)研究表明,區(qū)塊鏈的匿名性是一種假名性[5],不足以完整地保護(hù)用戶(hù)數(shù)據(jù)信息。此外,區(qū)塊鏈上的數(shù)據(jù)無(wú)法進(jìn)行修改與刪除,當(dāng)有惡意的攻擊者將非法信息寫(xiě)入鏈上,極易構(gòu)成巨大危險(xiǎn),使區(qū)塊鏈的數(shù)據(jù)安全受到挑戰(zhàn)。
為此,研究者對(duì)區(qū)塊鏈中的數(shù)據(jù)加密保護(hù)能力進(jìn)行深入探索??伤阉骷用躘6]是區(qū)塊鏈隱私保護(hù)技術(shù)之一,將其與區(qū)塊鏈技術(shù)結(jié)合在一起,解決了第三方可信問(wèn)題,促進(jìn)了數(shù)據(jù)之間協(xié)作共享。鑒于此,本文提出了一種基于可搜索加密的區(qū)塊鏈氣象數(shù)據(jù)保護(hù)方案,引入智能合約[7]作為可信方,既保證了方案的可信度,又提高了可搜索加密的可實(shí)現(xiàn)性。
可搜索加密是一種為了解決云存儲(chǔ)環(huán)境下加密數(shù)據(jù)檢索困難問(wèn)題,實(shí)現(xiàn)用戶(hù)基于密文關(guān)鍵詞安全搜索的技術(shù)。傳統(tǒng)的明文搜索易被獲取到數(shù)據(jù)信息,而可搜索加密技術(shù)可以通過(guò)密鑰對(duì)加密數(shù)據(jù)的關(guān)鍵詞進(jìn)行搜索,使得用戶(hù)無(wú)法通過(guò)關(guān)鍵詞獲取到明文數(shù)據(jù)??伤阉骷用馨凑占?、解密密鑰的不同,可以分成兩類(lèi):對(duì)稱(chēng)可搜索加密和非對(duì)稱(chēng)可搜索加密。對(duì)稱(chēng)可搜索加密使用相同的私鑰密鑰進(jìn)行加密和關(guān)鍵詞搜索,具有算法相對(duì)簡(jiǎn)單、運(yùn)算速度快的優(yōu)勢(shì)。非對(duì)稱(chēng)可搜索加密則是使用公鑰和私鑰兩種不同密鑰,通常公鑰的擁有者會(huì)對(duì)明文數(shù)據(jù)進(jìn)行加密,私鑰的擁有者執(zhí)行搜索算法進(jìn)行關(guān)鍵詞檢索。雖然過(guò)程較為復(fù)雜,但是公鑰和私鑰相互分離的特點(diǎn),對(duì)于實(shí)現(xiàn)區(qū)塊鏈數(shù)據(jù)共享具有較高的實(shí)用性。因此,本文采用非對(duì)稱(chēng)可搜索加密技術(shù)。
1995年,學(xué)者尼克首次提出智能合約的概念,其認(rèn)為智能合約的本質(zhì)是一種能夠自動(dòng)執(zhí)行協(xié)議的計(jì)算機(jī)代碼。智能合約因具有圖靈完備的特性,加之缺乏可信執(zhí)行環(huán)境,未曾受到研究學(xué)者的關(guān)注。直到新興區(qū)塊鏈平臺(tái)的出現(xiàn),才將智能合約由概念逐步轉(zhuǎn)化為實(shí)際應(yīng)用。由于區(qū)塊鏈自身具有可溯源、數(shù)據(jù)防篡改、唯一性等獨(dú)特優(yōu)勢(shì),避免了智能合約受到偽造和篡改,確保了整個(gè)過(guò)程的透明、高效、不受干預(yù)。同時(shí),智能合約作為區(qū)塊鏈中的核心要素,當(dāng)滿(mǎn)足一定的預(yù)定規(guī)則時(shí),區(qū)塊鏈會(huì)自動(dòng)觸發(fā)預(yù)設(shè)協(xié)議完成操作。此外,智能合約通過(guò)加密算法可以設(shè)置兩方或多方之間訪(fǎng)問(wèn)權(quán)限的協(xié)議。雖然目前智能合約仍處在發(fā)展的初級(jí)階段,但是基于智能合約的應(yīng)用提高了信息傳輸效率,降低了管理維護(hù)的成本,使得區(qū)塊鏈技術(shù)具有廣泛的應(yīng)用前景。
可搜索加密的區(qū)塊鏈氣象數(shù)據(jù)保護(hù)方法是利用可搜索加密技術(shù)對(duì)氣象數(shù)據(jù)進(jìn)行加密保護(hù),并使用區(qū)塊鏈存儲(chǔ)加密后的數(shù)據(jù),防止氣象數(shù)據(jù)泄露。因此,本文采取層次化結(jié)構(gòu)設(shè)計(jì)了區(qū)塊鏈中的氣象數(shù)據(jù)保護(hù)模型。如圖1所示,該模型的基本框架劃分為3層:區(qū)塊鏈層、數(shù)據(jù)層和用戶(hù)層。
圖1 方案模型
2.1.1 區(qū)塊鏈層
區(qū)塊鏈層主要用于區(qū)塊鏈上氣象數(shù)據(jù)的寫(xiě)入和讀取,以及氣象數(shù)據(jù)的共享交換。鏈上的智能合約在接收到用戶(hù)請(qǐng)求參數(shù)后,執(zhí)行其業(yè)務(wù)邏輯,將氣象數(shù)據(jù)信息存入?yún)^(qū)塊鏈,并將需要記錄數(shù)據(jù)信息的哈希值存放在對(duì)應(yīng)結(jié)構(gòu)里,保證了不論發(fā)生任何變化,氣象數(shù)據(jù)都能被區(qū)塊鏈記錄保存。同時(shí),引入可搜索加密對(duì)關(guān)鍵詞進(jìn)行搜索,可以有效地提高用戶(hù)搜索速度,提升檢索效率。
2.1.2 數(shù)據(jù)層
數(shù)據(jù)層主要對(duì)氣象數(shù)據(jù)進(jìn)行處理。首先利用可搜索加密算法對(duì)氣象數(shù)據(jù)進(jìn)行加密,并構(gòu)建安全索引,然后通過(guò)區(qū)塊鏈上的節(jié)點(diǎn)執(zhí)行共識(shí)算法,最終形成塊數(shù)據(jù)上傳至數(shù)據(jù)庫(kù)存儲(chǔ)。
2.1.3 用戶(hù)層
用戶(hù)層主要進(jìn)行氣象數(shù)據(jù)的查找與質(zhì)控。當(dāng)用戶(hù)查找氣象數(shù)據(jù)時(shí),先通過(guò)可搜索加密算法生成密鑰,再發(fā)送給鏈上的共識(shí)節(jié)點(diǎn)提出查找請(qǐng)求,鏈上節(jié)點(diǎn)收到請(qǐng)求后執(zhí)行密文數(shù)據(jù)查找,并返回解密后的明文數(shù)據(jù)。與此同時(shí),用戶(hù)還可以進(jìn)行哈希運(yùn)算,查驗(yàn)氣象數(shù)據(jù)是否被篡改。
2.2.1 步驟1:密鑰生成
系統(tǒng)初始化,設(shè)定一個(gè)安全參數(shù)為λ,生成公開(kāi)參數(shù)p,其中包括2個(gè)n階G1和G2雙線(xiàn)性群。雙線(xiàn)性映射為G1×G1→G2,g是G1的生成元。選擇一個(gè)哈希函數(shù):H:{0,1}*→G1。通過(guò)執(zhí)行生成算法KeyGen,輸出公鑰pk和私鑰sk,分別用于氣象數(shù)據(jù)的加密和生成索引。
2.2.2 步驟2:密文加密
首先提取氣象數(shù)據(jù)中的關(guān)鍵詞W進(jìn)行哈希運(yùn)算,同時(shí)使用密鑰對(duì)明文文件加密,得到加密后的密文:Cw=Encrypt(pk,W),最后將密文上傳到區(qū)塊鏈數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。
2.2.3 步驟3:陷門(mén)生成
用戶(hù)根據(jù)密鑰和需要檢索的關(guān)鍵詞W,使用私鑰計(jì)算生成特定關(guān)鍵詞陷門(mén):Tw=Trapdoor(sk,W),上傳陷門(mén)到智能合約,并將信息打包傳送至區(qū)塊鏈里。
2.2.4 步驟4:檢索查找階段
用戶(hù)以陷門(mén)作為輸入提交查找請(qǐng)求,由區(qū)塊鏈鏈上的節(jié)點(diǎn)執(zhí)行可搜索加密算法進(jìn)行陷門(mén)匹配,若匹配成功則使用密鑰進(jìn)行解密,獲取明文文件。
2.3.1 安全性
本文方案中,陷門(mén)和索引兩者都是隨機(jī)加密的。在沒(méi)有密鑰的情況下,用戶(hù)無(wú)法推測(cè)出關(guān)鍵詞的相關(guān)信息,可以有效地防止數(shù)據(jù)隱私泄露。此外,經(jīng)過(guò)解密計(jì)算獲得的哈希值是不可逆和抗碰撞性的,通過(guò)密鑰將其與服務(wù)器中存儲(chǔ)的哈希值互相驗(yàn)證,若數(shù)值一致,則表明數(shù)據(jù)未發(fā)生篡改,進(jìn)一步保證了方案的安全性。
2.3.2 正確性
用戶(hù)與區(qū)塊鏈進(jìn)行數(shù)據(jù)交互的時(shí)候,鏈上的智能合約狀態(tài)和內(nèi)容是公開(kāi)透明的,結(jié)合節(jié)點(diǎn)上的共識(shí)機(jī)制能夠保證檢索數(shù)據(jù)內(nèi)容的可靠性和真實(shí)性。在執(zhí)行方案時(shí),智能合約按照事先預(yù)設(shè)的條件進(jìn)行密鑰恢復(fù)以及搜索憑證的生成,確保了用戶(hù)檢索得到結(jié)果的正確性。
2.4.1 數(shù)據(jù)加密時(shí)間
關(guān)鍵詞個(gè)數(shù)與數(shù)據(jù)加密時(shí)間的關(guān)系如圖2所示。數(shù)據(jù)加密的時(shí)間開(kāi)銷(xiāo)取決于索引的關(guān)鍵詞個(gè)數(shù),數(shù)據(jù)加密時(shí)間隨著關(guān)鍵詞個(gè)數(shù)的增加呈線(xiàn)性增長(zhǎng)。總體上該部分的時(shí)間開(kāi)銷(xiāo)較小,這是因?yàn)槊總€(gè)索引的生成時(shí)間成本是固定的,并且只需要進(jìn)行一次指數(shù)運(yùn)算,節(jié)省了時(shí)間開(kāi)銷(xiāo)。
圖2 數(shù)據(jù)加密時(shí)間
2.4.2 關(guān)鍵詞檢索時(shí)間
關(guān)鍵詞個(gè)數(shù)與檢索時(shí)間的關(guān)系如圖3所示。本文實(shí)驗(yàn)先對(duì)數(shù)據(jù)庫(kù)中的關(guān)鍵詞進(jìn)行查找檢索??梢钥闯霎?dāng)文檔個(gè)數(shù)是500的時(shí)候,用戶(hù)檢索關(guān)鍵詞的時(shí)間為4.66 s;當(dāng)文檔個(gè)數(shù)是600的時(shí)候,檢索所需的時(shí)間為4.87 s;由圖可以更直觀(guān)地看出,檢索生成時(shí)間并不會(huì)隨著關(guān)鍵詞個(gè)數(shù)的大幅增加而劇烈變化。這是由于數(shù)據(jù)集中的文檔個(gè)數(shù)決定了查詢(xún)所需時(shí)間,而且查詢(xún)中的關(guān)鍵詞個(gè)數(shù)對(duì)查詢(xún)時(shí)間的影響很小。
圖3 關(guān)鍵詞檢索時(shí)間
2.4.3 陷門(mén)生成時(shí)間
關(guān)鍵詞個(gè)數(shù)與陷門(mén)生成時(shí)間的關(guān)系如圖4所示。在陷門(mén)的生成階段,隨著關(guān)鍵詞個(gè)數(shù)的逐漸增加,陷門(mén)生成的時(shí)間也隨之增加,二者呈現(xiàn)出線(xiàn)性增長(zhǎng)的關(guān)系。當(dāng)關(guān)鍵詞的個(gè)數(shù)增加到一定程度的時(shí)候,陷門(mén)生成所需時(shí)間僅略微增加,表明方案具有較高的生成效率。
圖4 陷門(mén)生成時(shí)間
本文結(jié)合區(qū)塊鏈技術(shù)和可搜索加密技術(shù),提出并設(shè)計(jì)了基于可搜索加密的區(qū)塊鏈氣象數(shù)據(jù)保護(hù)方案。結(jié)果表明:利用智能合約作為可信方,有效地解決單一授權(quán)導(dǎo)致的第三方可信問(wèn)題,保證了方案的可信度,又提高了可搜索加密的可實(shí)現(xiàn)性。同時(shí),對(duì)關(guān)鍵詞搜索能夠在較短的時(shí)間內(nèi)實(shí)現(xiàn)對(duì)加密數(shù)據(jù)結(jié)果查找,充分發(fā)揮出兩者相結(jié)合的優(yōu)勢(shì),保護(hù)了氣象數(shù)據(jù)的安全,為氣象決策和防災(zāi)減災(zāi)提供精準(zhǔn)的氣象數(shù)據(jù)。此外,對(duì)安全性和性能的分析驗(yàn)證了該方案具有較高的效率。