亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于區(qū)塊鏈的安全云存儲方案設計

        2021-04-15 03:48:04余海波
        計算機應用與軟件 2021年4期
        關鍵詞:梅克爾哈希結點

        余海波 陳 潔 張 凱

        1(華東師范大學 上海 200062)2(上海電力大學 上海 200090)

        0 引 言

        過去人們習慣于將文件或數(shù)據(jù)存儲在本地硬盤或磁盤上。但是,隨著互聯(lián)網技術的發(fā)展,信息分享和交換變得更加的頻繁,需要存儲的數(shù)據(jù)呈現(xiàn)出幾何級數(shù)的增長形勢,本地存儲難以滿足用戶需求。為了處理這些大規(guī)模的數(shù)據(jù),企業(yè)和個人用戶都選擇借助于云平臺來擴大終端的存儲能力,即通過云存儲方式來存取自己的文件或數(shù)據(jù)。

        云存儲[1]相比傳統(tǒng)數(shù)據(jù)存儲方式,是基于云計算[2]的發(fā)展而衍生出的新興存儲方式。以用戶的視角來看,在云服務器中存儲數(shù)據(jù)可以帶來以下好處:減少了本地存儲、維護和管理的成本;消除了對數(shù)據(jù)的訪問受地理位置的限制;避免了在建設基礎設施的大量投資和在人力資源上的巨大成本。

        然而,把數(shù)據(jù)存儲到不受信任的第三方服務器上,可能會導致一些數(shù)據(jù)安全隱患的出現(xiàn)。一方面是云服務器會面臨著來自內部和外部的惡意攻擊,從而威脅到存儲數(shù)據(jù)的隱私性;另一方面,用戶將數(shù)據(jù)上傳到云服務器后,對數(shù)據(jù)的控制權隨之減弱,甚至可能會失去,存儲數(shù)據(jù)是否一直保持完整難以驗證。因此,數(shù)據(jù)的隱私性和完整性是云存儲方式的兩個關鍵問題。為了解決數(shù)據(jù)隱私問題,傳統(tǒng)的解決方式是把用戶數(shù)據(jù)在通過特定的加密算法進行加密后,然后再上傳到云服務器上[3];為了解決數(shù)據(jù)完整性的問題,傳統(tǒng)的解決方式是在云存儲服務架構的框架中引入一個假設的可信第三方(Trusted Third Party,TTP)[4-5]?;赥TP的云存儲服務架構如圖1所示。TTP的作用就是作為用戶與云服務器間的媒介,完成數(shù)據(jù)的完整性驗證。

        圖1 基于TTP的云存儲服務架構

        在引入TTP的傳統(tǒng)方案中,數(shù)據(jù)完整性的驗證結果將完全依賴于一個假設的可信第三方,而現(xiàn)實應用中幾乎不存在完全可信的第三方。因此,如何不依賴任何可信第三方實現(xiàn)云存儲中數(shù)據(jù)的完整性證明成了一個有價值的問題。

        區(qū)塊鏈作為比特幣系統(tǒng)[6]的底層技術,隨著比特幣的成功而得到人們的廣泛關注。區(qū)塊鏈也被稱為分布式賬本數(shù)據(jù)庫,與傳統(tǒng)數(shù)據(jù)庫相比,區(qū)塊鏈技術的優(yōu)勢在于它提供了去中心化、匿名性、可審計、防篡改的特性。這些特性使得它逐漸被廣泛地應用于生活中[7-8]。

        本文提出一種基于區(qū)塊鏈的云存儲方案。其中數(shù)據(jù)的完整性驗證不依賴于任何可信第三方,只要用戶客戶端和云服務器的多輪互動即可完成,并且驗證結果是完全可信的。同時,通過區(qū)塊鏈的匿名性和防篡改特性,在創(chuàng)建的交易過程中不會暴露與數(shù)據(jù)和用戶相關的任何隱私信息,攻擊者也難以對區(qū)塊鏈上的數(shù)據(jù)進行篡改,從而保證數(shù)據(jù)的隱私不會受到威脅。

        1 相關概念

        1.1 區(qū)塊鏈結構

        區(qū)塊鏈中包含有兩個重要的數(shù)據(jù)結構,且它們都是基于哈希值的。一個是哈希鏈,它是由不同的區(qū)塊通過指針鏈接起來所形成的;另一個是梅克爾樹,它是樹狀的數(shù)據(jù)結構,作用是把每個區(qū)塊內的不同交易的哈希值存儲到葉子結點上,并基于葉子結點的哈希值進行計算,生成根結點哈希值。

        區(qū)塊鏈中的哈希鏈是以區(qū)塊作為結點,各結點間通過指針進行鏈接。任何結點中的數(shù)據(jù)修改都不會導致整個鏈的改變。任何新產生的區(qū)塊要加入到鏈上,必須先通過共識機制的驗證。也正是這樣,才實現(xiàn)了區(qū)塊鏈上的數(shù)據(jù)不可修改和可審計的功能。區(qū)塊鏈結構如圖2所示。

        圖2 區(qū)塊鏈結構

        區(qū)塊鏈由創(chuàng)世塊開始,下一個塊的生成需要對創(chuàng)世塊進行哈希計算,得到的結果作為下一個區(qū)塊的輸入,一直這樣循環(huán)下去,從而形成一條哈希鏈。

        區(qū)塊頭和區(qū)塊體是區(qū)塊的兩個重要組成部分,每部分保存了不同的基本元素信息[9]。區(qū)塊的數(shù)據(jù)結構如表1所示。

        表1 區(qū)塊的數(shù)據(jù)結構

        區(qū)塊頭的字段含義:

        (1) 版本號:區(qū)塊的版本信息。

        (2) 上一區(qū)塊哈希值:基于父區(qū)塊頭進行哈希計算生成的哈希值,存儲到當前區(qū)塊的區(qū)塊頭中。

        (3) 梅克爾樹:基于一個區(qū)塊中全部交易生成的256位哈希值。

        (4) 時間戳:新區(qū)塊打包時的時間。

        (5) 困難值:表示某個區(qū)塊的難度級別。

        (6) 隨機數(shù):調整挖礦難度。

        區(qū)塊體的字段含義:

        (1) 交易數(shù)量:某區(qū)塊中存在的交易數(shù)目。

        (2) 交易列表:具體的交易記錄,非空。

        1.2 梅克爾樹

        梅克爾樹(Merkle)是區(qū)塊鏈中的第二個基于哈希值的數(shù)據(jù)結構,它通過樹狀的形式把某個區(qū)塊中全部交易的哈希值保存著。若要驗證某個交易在一個特定的塊中,通過樹內路徑就可以完成驗證。

        梅克爾樹結構:樹中最底層的不同葉子結點存儲著不同交易對應的哈希值;非葉子結點的值都是基于其相應子結點的哈希值相加再通過哈希算法計算而得到的;沿著樹內路徑自底向上進行計算,最終計算出的值即是根節(jié)點所對應的哈希值。梅克爾樹結構的優(yōu)勢就在于只需要驗證根節(jié)點的哈希值就能完成全部葉子結點的完整性認證。梅克爾樹結構如圖3所示。

        圖3 梅克爾樹結構

        梅克爾樹的計算過程如下:

        假設某區(qū)塊共8個交易(T1-T8),每筆交易對應于一個SHA256校驗值。要計算父結點的值,需要將其不同子結點的哈希值進行相加,再對相加的結果進行SHA256計算,求出的值即為父結點對應的值。計算過程自底向上進行類推,最終得到的哈希值即為根節(jié)點H0的值。按照上面的方式進行計算,便會形成一棵二元梅克爾樹。圖3中,所有葉子結點(H7-H14)保存著交易(T1-T8)的實際哈希值;內部結點(H1-H6)保存著由孩子結點生成的哈希值。所有內部結點形成的路徑組合是驗證葉子結點完整性的校驗路徑可能性,因此它們也被稱為路徑哈希值。在本文方案中,為了實現(xiàn)對存儲數(shù)據(jù)提供完整性證明,梅克爾樹葉子結點保存是對數(shù)據(jù)塊通過SHA256算法進行計算所得到的哈希值。

        2 基于區(qū)塊鏈的云存儲方案

        2.1 系統(tǒng)框架

        基于區(qū)塊鏈的云存儲方案的框架如圖4所示。

        圖4 系統(tǒng)框架圖

        基于區(qū)塊鏈的云存儲方案框架圖中存在如下幾個實體:

        (1) 用戶:用戶實體,負責將本地文件或數(shù)據(jù)上傳到云服務器上。

        (2) 區(qū)塊鏈:記錄交易的實體。

        (3) 云服務器:存儲文件塊的實體。存儲用戶上傳的數(shù)據(jù)塊。

        在圖4的框架下,首先需要將用戶的文件或數(shù)據(jù)在本地進行劃分,文件或數(shù)據(jù)塊的大小保持相同,再對生成的塊通過加密算法進行加密,最后上傳這些塊到云服務器中。利用區(qū)塊鏈技術,作為用戶和云存儲服務提供商的交易機制,保存存儲數(shù)據(jù)塊的位置索引和一些額外信息到交易中。我們在此架構中選擇使用隨機文件塊放置策略[10],而不是選擇多文件副本放置策略[11-12],這不僅能夠減少存儲的壓力,也方便用戶可以從云服務器中快速檢索文件并減少分布式存儲網絡的負擔。另外,通過梅克爾樹驗證存儲文件的數(shù)據(jù)完整性時,先利用云服務器上存儲的梅克爾樹結構生成新的樹根root,將其發(fā)送到區(qū)塊鏈上進行比較,這與文獻[13]不同,后者是在區(qū)塊鏈上通過執(zhí)行預設的智能合約生成root再進行對比,前者進一步減少了云服務器與區(qū)塊鏈間的通信,從而更加高效。

        2.2 上傳文件

        用戶上傳文件到云服務器可以分為:

        (1) 將文件劃分成大小相等的塊(不足的用0進行填充),對文件和所有文件塊進行加密。

        (2) 對加密文件和全部加密文件塊根據(jù)SHA256算法進行計算得到相應的哈希值。

        (3) 利用步驟(2)中的所有加密文件塊的哈希值構造梅克爾樹。

        (4) 存儲步驟(3)中的梅克爾樹的樹根哈希值root到區(qū)塊鏈上。

        (5) 用戶客戶端上傳所有加密文件塊以及公共梅克爾哈希樹到云存儲服務器中。

        (6) 云存儲服務器返回所有文件塊位置索引URL給用戶客戶端。

        文件上傳的流程設計如圖5所示。

        圖5 文件上傳流程設計

        2.3 創(chuàng)建交易

        創(chuàng)建交易就是為了將關于文件的信息(而不是文件本身)永久保存在區(qū)塊鏈上,也便于對文件的完整性進行驗證。創(chuàng)建的交易中保存的相關信息如圖6所示。

        圖6 區(qū)塊體中的交易信息

        可以看出,存儲用戶ID、用戶IP、文件哈希值、所有文件塊的URLs等信息到創(chuàng)建的交易中,而不是將文件塊本身存儲到區(qū)塊鏈中。值得注意的是,每個用戶客戶端都會擁有區(qū)塊鏈中所有交易的副本,并且這些交易信息的字節(jié)大小相對于用戶客戶端的硬盤存儲空間來講完全可以忽略不計,因此這樣既可以為用戶節(jié)約大量的存儲空間,也使得攻擊者幾乎不可能對區(qū)塊鏈上的存儲信息進行任何的篡改。另一方面,因為只有文件塊URLs和哈希值存儲在區(qū)塊鏈上,攻擊者無法從區(qū)塊鏈上獲得有關存儲數(shù)據(jù)和用戶的任何其他信息,從而對數(shù)據(jù)和用戶進行了良好的隱私保護。

        2.4 文件完整性驗證

        文件完整性驗證流程設計如圖7所示。

        圖7 完整性驗證流程設計

        為了實現(xiàn)文件完整性的檢測,需要進行以下幾個步驟:

        (1) 用戶客戶端發(fā)送挑戰(zhàn)數(shù)si到云服務器(表示對第i文件塊進行驗證)。

        (2) 云服務器對文件塊i和si挑戰(zhàn)數(shù)進行SHA256計算,生成哈希摘要j。

        (3) 云服務器根據(jù)哈希摘要j,利用服務器上存儲的梅克爾樹結構生成新的梅克爾樹根值root’。

        (4) 云服務器發(fā)送新的梅克爾樹根值root’到區(qū)塊鏈上。

        (5) 比較root’和區(qū)塊鏈上存儲的root。若相等,則存儲的文件完整;反之,則文件已經被破壞。

        (6) 區(qū)塊鏈將步驟(5)得到的驗證結果返回給用戶客戶端。

        3 實驗及分析

        為了驗證研究方案的可行性及高效性,通過實驗模擬了客戶端和云服務器,區(qū)塊鏈系統(tǒng)由以太坊實現(xiàn)。在實驗中,將4 GB大小的文件劃分成不同數(shù)量的塊,且保持每個文件塊大小一致。然后,對梅克爾樹生成時間和完整性驗證時間與文件塊數(shù)量之間的關系進行測驗。相應的實驗結果分別對應于圖8和圖9。

        圖8 梅克爾樹生成時間與文件塊數(shù)量之間的關系

        圖9 數(shù)據(jù)完整性驗證時間與文件塊數(shù)量之間的關系

        由圖8可以看出,隨著對相同文件劃分的文件塊越來越多,梅克爾樹的葉子結點相應增加,梅克爾樹的生成時間也增加。從圖9可知,文件塊數(shù)量增加,數(shù)據(jù)完整性的驗證時間也隨之增加,但是仍然能在較短時間內完成數(shù)據(jù)驗證,這是可以接受的。

        4 結 語

        隨著云存儲的廣泛應用,如何確保數(shù)據(jù)的完整性和隱私性得到了廣泛的關注。本文將區(qū)塊鏈技術引入到云存儲系統(tǒng)中,對傳統(tǒng)的云存儲架構進行改進,提出一種基于區(qū)塊鏈的云存儲方案,有效地解決了這兩個問題。首先,利用區(qū)塊鏈中的梅克爾樹屬性對存儲數(shù)據(jù)的完整性進行驗證,使得驗證過程不經過任何可信第三方,解決了數(shù)據(jù)完整性問題。其次,由于區(qū)塊鏈的匿名性,并在數(shù)據(jù)存儲的過程對文件或數(shù)據(jù)進行加密并進行分塊,將所有分塊存儲到云服務器上,有效保證數(shù)據(jù)的隱私性。同時,通過文件塊的冗余存儲也有助于對已破壞的文件或數(shù)據(jù)進行恢復。

        猜你喜歡
        梅克爾哈希結點
        Ladyzhenskaya流體力學方程組的確定模與確定結點個數(shù)估計
        基于OpenCV與均值哈希算法的人臉相似識別系統(tǒng)
        基于維度分解的哈希多維快速流分類算法
        計算機工程(2015年8期)2015-07-03 12:20:04
        基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗證算法
        計算機工程(2014年6期)2014-02-28 01:25:40
        基于Raspberry PI為結點的天氣云測量網絡實現(xiàn)
        一種基于Bigram二級哈希的中文索引結構
        基于DHT全分布式P2P-SIP網絡電話穩(wěn)定性研究與設計
        結點位移的確定
        a级毛片100部免费观看| 国产免费专区| 在线亚洲AV成人无码一区小说| 精品无码国产一二三区麻豆| 看一区二区日本视频免费| 久久国产精品一国产精品金尊| 国产精品自在线拍国产| 色先锋资源久久综合5566| 久久久久成人精品免费播放网站| 看全色黄大黄大色免费久久| 国产精品久久国产精麻豆| 亚洲精品中文字幕导航| 亚洲日韩中文字幕无码一区| 法国啄木乌av片在线播放| 午夜在线观看有码无码| 精品av一区二区在线| 国产在线视频一区二区天美蜜桃 | 日本一区二区精品高清| 亚洲日韩精品a∨片无码加勒比 | 久久精品国产99国产精品亚洲| 欧美日韩亚洲国产精品| 99国产超薄丝袜足j在线观看| 国产亚洲亚洲精品视频| 国产av精选一区二区| 中文字幕人妻在线中字| 性饥渴艳妇性色生活片在线播放| 麻豆AV无码久久精品蜜桃久久| 久久亚洲春色中文字幕久久| 国产男女免费完整视频| 国品精品一区二区在线观看| 日本视频一区二区三区三州| 强开小婷嫩苞又嫩又紧视频| 国产乱妇乱子视频在播放| 亚洲欧洲精品成人久久曰不卡| 激情在线视频一区二区三区| 未满十八18禁止免费无码网站| 青青久在线视频免费观看| 国产无套露脸| 永久免费看黄在线观看| 国产精品一区二区av麻豆日韩| 亚洲爆乳精品无码一区二区|