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

        ?

        基于ECC的區(qū)塊鏈數(shù)據(jù)共享系統(tǒng)設(shè)計(jì)*

        2022-05-27 02:05:40林潔和張紹華戴炳榮
        關(guān)鍵詞:智能用戶

        林潔和,張紹華,李 超,戴炳榮

        (1.上海海洋大學(xué)信息學(xué)院,上海 201306;2.上海計(jì)算機(jī)軟件技術(shù)開發(fā)中心,上海 201112)

        1 引言

        數(shù)據(jù)共享傳輸?shù)陌踩尚攀钱?dāng)前研究的熱點(diǎn)問(wèn)題,尤其是近年來(lái),隨著大數(shù)據(jù)應(yīng)用程序的發(fā)展,人們對(duì)數(shù)據(jù)共享的需求越來(lái)越高,同時(shí)又對(duì)數(shù)據(jù)安全提出了更多的挑戰(zhàn)。如何安全且可追溯地共享數(shù)據(jù)信息,同時(shí)保護(hù)數(shù)據(jù)隱私已經(jīng)成為研究熱點(diǎn)之一。傳統(tǒng)的數(shù)據(jù)共享解決方案以第三方組織為中心,存在數(shù)據(jù)源真實(shí)性存疑、數(shù)據(jù)共享流向不透明以及數(shù)據(jù)易泄漏或篡改等問(wèn)題,這些問(wèn)題是設(shè)計(jì)數(shù)據(jù)共享系統(tǒng)的最大障礙。

        區(qū)塊鏈技術(shù)的出現(xiàn)為解決數(shù)據(jù)的安全共享提供了一種嶄新的思路。區(qū)塊鏈這一概念最早出現(xiàn)于2008年11月一篇名為《Bitcoin:A peer-to-peer electronic cash system》[1]的論文中。該文提到區(qū)塊鏈技術(shù)是支撐比特幣數(shù)據(jù)結(jié)構(gòu)以及加密交易信息傳輸?shù)闹匾A(chǔ)。區(qū)塊鏈?zhǔn)且环N在對(duì)等網(wǎng)絡(luò)環(huán)境下構(gòu)建出來(lái)的,具有不可偽造、難篡改且可追溯特點(diǎn)的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),用以實(shí)現(xiàn)和管理交易處理,具有去中心化、開放、匿名和難以篡改信息的特征??偟膩?lái)說(shuō),區(qū)塊鏈可以被視為去中心化的可信第三方,借助區(qū)塊鏈這樣的虛擬受信任第三方,用戶可以實(shí)現(xiàn)數(shù)據(jù)的安全共享。

        針對(duì)區(qū)塊鏈用戶之間的數(shù)據(jù)安全傳輸和共享問(wèn)題,有些研究人員希望通過(guò)共識(shí)算法來(lái)保證數(shù)據(jù)安全,如梅穎[2]使用工作量證明PoW(Proof of Work)機(jī)制來(lái)防止惡意節(jié)點(diǎn)對(duì)區(qū)塊鏈的攻擊。還有一些研究人員希望利用智能合約來(lái)實(shí)現(xiàn)數(shù)據(jù)的安全共享,例如,汪菲等人[3]將區(qū)塊鏈技術(shù)應(yīng)用到數(shù)據(jù)共享中,設(shè)計(jì)并部署了一種去中心化和保證數(shù)據(jù)安全共享的智能合約,構(gòu)造了共享數(shù)據(jù)的存儲(chǔ)塊結(jié)構(gòu),提出將共享數(shù)據(jù)的信息可信地存儲(chǔ)到區(qū)塊鏈上,從而實(shí)現(xiàn)數(shù)據(jù)共享的解決方案。Yue等人[4]提出了一種基于區(qū)塊鏈技術(shù)與智能合約融合的可信大數(shù)據(jù)共享模型,并為數(shù)據(jù)擁有者和請(qǐng)求者提供了一個(gè)安全可信的數(shù)據(jù)共享平臺(tái)。依靠區(qū)塊鏈技術(shù)確保了數(shù)據(jù)的可追蹤性,同時(shí)借助智能合約的自動(dòng)執(zhí)行為數(shù)據(jù)安全共享提供了保護(hù)。

        然而實(shí)現(xiàn)數(shù)據(jù)共享的重中之重還是要通過(guò)探索算法來(lái)保證數(shù)據(jù)共享的安全性。例如,Arumugam等人[5]認(rèn)為RSA算法能夠提供高安全性的數(shù)據(jù)加密技術(shù)。李莉等人[6]為了解決基于區(qū)塊鏈的數(shù)據(jù)共享問(wèn)題,構(gòu)建了基于Schnorr的代理重加密方案,通過(guò)一個(gè)代理重加密密鑰實(shí)現(xiàn)了數(shù)據(jù)的安全共享,但該方案存在通信代價(jià)大和計(jì)算開銷高的問(wèn)題。Zhang等人[7]設(shè)計(jì)了一種基于區(qū)塊鏈的安全與隱私保護(hù)方案,利用公鑰可搜索加密算法實(shí)現(xiàn)了數(shù)據(jù)安全訪問(wèn)、隱私保護(hù)和安全搜索等功能。然而,這種公鑰可搜索加密方案往往效率較低,其加密算法的運(yùn)算復(fù)雜度以及所生成密文的長(zhǎng)度與關(guān)鍵詞的個(gè)數(shù)成正比[8]。郭乃網(wǎng)等人[9]提出了一種基于區(qū)塊鏈技術(shù)的隱私保護(hù)的數(shù)據(jù)共享協(xié)議,該協(xié)議利用對(duì)稱密鑰對(duì)數(shù)據(jù)進(jìn)行加密,并用哈希算法完成數(shù)據(jù)檢驗(yàn)。該協(xié)議雖采用哈希算法保障了數(shù)據(jù)完整性,但在數(shù)據(jù)加密方面使用對(duì)稱密鑰使得數(shù)據(jù)共享雙方共用同一密鑰對(duì)數(shù)據(jù)進(jìn)行加解密,不論是在密鑰的管理上還是加密數(shù)據(jù)在非安全信道中傳輸時(shí),其安全性都不能得到保障,密鑰泄露的風(fēng)險(xiǎn)大大增加,最終導(dǎo)致數(shù)據(jù)共享安全性降低。

        綜上所述,已有的基于區(qū)塊鏈的數(shù)據(jù)共享方案仍存在效率低、成本高和無(wú)法復(fù)原篡改數(shù)據(jù)等問(wèn)題,難以真正應(yīng)用于實(shí)際。本文提出了一種基于橢圓曲線加密ECC(Elliptic Curve Cryptography)算法的區(qū)塊鏈數(shù)據(jù)共享方案及系統(tǒng)設(shè)計(jì)。該方案通過(guò)智能合約來(lái)保證記賬的安全性與完整性,同時(shí)借助ECC算法實(shí)現(xiàn)數(shù)據(jù)傳遞雙方密鑰協(xié)商以及數(shù)據(jù)加密,解決了傳統(tǒng)方案效率低、成本高、安全性低和數(shù)據(jù)被惡意篡改后的復(fù)原問(wèn)題。此外,本文還設(shè)計(jì)了仿真系統(tǒng),驗(yàn)證了該方案的正確性和安全性,并將本文提到的ECC算法與文獻(xiàn)[5]所用的RSA算法在時(shí)間效率和空間效率上進(jìn)行了對(duì)比分析。

        2 預(yù)備知識(shí)

        20世紀(jì)80年代,Koblitz[10]和Miller[11]分別提出一種將橢圓曲線原理與密碼學(xué)融合的加密算法,即橢圓曲線加密ECC算法。ECC算法是基于橢圓曲線數(shù)學(xué)理論的一種非對(duì)稱加密算法,其安全性基于橢圓曲線離散對(duì)數(shù)問(wèn)題求解的困難性。

        2.1 橢圓曲線密碼學(xué)相關(guān)知識(shí)

        2.1.1 橢圓曲線的幾何意義

        設(shè)存在大素?cái)?shù)q,整數(shù)域Fq以q為模,滿足式(1)的(x,y)稱為Fq域上的橢圓曲線Eq(a,b)的點(diǎn):

        y2modq=(x3+ax+b)modq

        (1)

        其中,a,b,x,y∈Fq且

        Δ=-16(a3+27b2)modq≠0

        (2)

        2.1.2 橢圓曲線加解密算法原理

        設(shè)私鑰和公鑰分別為d和Q,即Q=dG,G為基點(diǎn)。

        公鑰加密過(guò)程為:選擇一個(gè)隨機(jī)數(shù)r,將消息M加密為密文C,該密文是一個(gè)點(diǎn)對(duì),即C={rG,M+rQ},其中Q為公鑰。

        私鑰解密:根據(jù)密文C和私鑰d可計(jì)算出消息M,計(jì)算公式如式(3)所示:

        M+rQ-d(rG)=M+r(dG)-d(rG)=M

        (3)

        2.1.3 密碼學(xué)的困難問(wèn)題

        橢圓曲線密碼學(xué)的安全性依賴于被廣泛承認(rèn)的解決橢圓曲線離散對(duì)數(shù)問(wèn)題的困難性上,對(duì)應(yīng)有限域上橢圓曲線的群。故此,對(duì)于基于ECC算法的困難問(wèn)題,給出了如下定義:

        定義1(橢圓曲線離散對(duì)數(shù)問(wèn)題ECDLP(Elliptic Curve Discrete Logarithm Problem))[12]已知有限域Fq上的橢圓曲線群E(Fq)及其基點(diǎn)U,U的階為大素?cái)?shù)n,給定整數(shù)x,計(jì)算點(diǎn)W=xU很容易。但是,給定點(diǎn)W,計(jì)算整數(shù)x,使得xU=W卻非常困難。

        從橢圓曲線密碼體制提出以來(lái),至今仍沒有有效的方法來(lái)破解橢圓曲線的離散對(duì)數(shù)問(wèn)題[13]。

        2.2 智能合約

        1995年,密碼學(xué)專家Szabo[14]首次提出了智能合約的概念。其原理類似于狀態(tài)機(jī),通過(guò)定義多個(gè)狀態(tài)和規(guī)則、設(shè)置條件以及觸發(fā)相應(yīng)合同時(shí)所需的對(duì)應(yīng)邏輯來(lái)自動(dòng)執(zhí)行合約。智能合約是利用計(jì)算機(jī)編程語(yǔ)言實(shí)現(xiàn)合約的制定與執(zhí)行,可通過(guò)編輯代碼制定合同的參數(shù)、方法和返回值等,并執(zhí)行合約以實(shí)現(xiàn)合同雙方的權(quán)利和義務(wù)。與傳統(tǒng)合約相比,智能合約可以更好地控制價(jià)值的存儲(chǔ)和管理。

        Figure 1 Data sharing scheme圖1 數(shù)據(jù)共享方案

        雖然智能合約這一概念提出較早,然而直到區(qū)塊鏈技術(shù)的隔空問(wèn)世,智能合約才真正開始在實(shí)踐中應(yīng)用。這是因?yàn)橹悄芎霞s的執(zhí)行需要能夠支持可編程合約的數(shù)字系統(tǒng)和技術(shù),以此來(lái)確保合約內(nèi)容能夠被可靠執(zhí)行,而非傳統(tǒng)的計(jì)算機(jī)程序所依賴的可信第三方。經(jīng)過(guò)雙方達(dá)成共識(shí)后,智能合約的代碼和狀態(tài)存儲(chǔ)在區(qū)塊鏈上,以實(shí)現(xiàn)代碼執(zhí)行和保障存證記錄的永久性。可見,使用智能合約不僅可以提高交易自動(dòng)化水平,降低交易成本,而且可以確保交易的安全性。

        3 基于ECC算法的區(qū)塊鏈數(shù)據(jù)共享方案

        3.1 方案設(shè)計(jì)

        在詳細(xì)描述基于ECC算法的數(shù)據(jù)共享方案過(guò)程之前,先給出方案涉及的符號(hào)及其含義,如表1所示。

        Table 1 Symbol design表1 符號(hào)設(shè)計(jì)

        當(dāng)前公有鏈上主要承載數(shù)字貨幣等資產(chǎn),聯(lián)盟鏈則主要由業(yè)務(wù)相關(guān)方搭建和維護(hù)。在諸如比特幣等公有鏈上,用戶間可以便捷、安全地進(jìn)行資產(chǎn)轉(zhuǎn)移,礦工只需要驗(yàn)證并通過(guò)交易的哈希值和數(shù)字簽名等信息便可以打包生成區(qū)塊,存儲(chǔ)在區(qū)塊鏈上,任何人無(wú)法篡改交易信息。而在聯(lián)盟鏈上,機(jī)構(gòu)與機(jī)構(gòu)、用戶與用戶之間更多的是業(yè)務(wù)和數(shù)據(jù)上的交互。如圖1所示,即便是基于同一條區(qū)塊鏈,不同應(yīng)用平臺(tái)上的數(shù)據(jù)擁有者與數(shù)據(jù)請(qǐng)求者之間也需要進(jìn)行身份認(rèn)證、協(xié)商數(shù)據(jù)傳輸以及密鑰交換等一系列操作,才能夠?qū)崿F(xiàn)跨應(yīng)用平臺(tái)的數(shù)據(jù)共享。只有在保障數(shù)據(jù)共享安全可靠的前提下,區(qū)塊鏈上跨機(jī)構(gòu)間的數(shù)據(jù)共享流通才能更好地進(jìn)行,數(shù)據(jù)價(jià)值才得以實(shí)現(xiàn)。

        本文方案所考慮的應(yīng)用場(chǎng)景為在聯(lián)盟鏈上實(shí)現(xiàn)跨機(jī)構(gòu)間數(shù)據(jù)的安全共享。依托區(qū)塊鏈技術(shù)實(shí)現(xiàn)不可偽造、難篡改且可追溯的記錄數(shù)據(jù)的共享情況;采用ECC算法對(duì)數(shù)據(jù)加密,提高數(shù)據(jù)安全;使用協(xié)商密鑰加密,實(shí)現(xiàn)數(shù)據(jù)的可逆性驗(yàn)證,并通過(guò)部署智能合約實(shí)現(xiàn)區(qū)塊鏈上跨機(jī)構(gòu)間的安全和可信數(shù)據(jù)共享。

        3.1.1 數(shù)據(jù)共享過(guò)程設(shè)計(jì)

        基于ECC算法的數(shù)據(jù)共享過(guò)程如圖2所示。

        Figure 2 Process of data sharing 圖2 數(shù)據(jù)共享過(guò)程

        數(shù)據(jù)擁有者用戶A發(fā)布數(shù)據(jù)索引。用戶A選定橢圓曲線參數(shù)T=(m,f(x),a,b,G,n,h),其中,G為基點(diǎn),n為點(diǎn)G的階。根據(jù)所選的參數(shù)T生成私鑰dA、公鑰QA=dAG=(xA,yA),以及隨機(jī)取一整數(shù)rA∈[1,n-1],生成隨機(jī)點(diǎn)(x1,y1)=RA=rAG。用戶A設(shè)置交易時(shí)間t,以保證交易快速進(jìn)行,并將數(shù)據(jù)索引、身份信息、隨機(jī)生成點(diǎn)RA和T等參數(shù)發(fā)送到系統(tǒng),同時(shí)把數(shù)據(jù)索引與真實(shí)數(shù)據(jù)之間的映射關(guān)系存儲(chǔ)在本地?cái)?shù)據(jù)庫(kù)中。

        數(shù)據(jù)請(qǐng)求者用戶B向系統(tǒng)發(fā)送數(shù)據(jù)索引請(qǐng)求,系統(tǒng)中找到對(duì)應(yīng)的數(shù)據(jù)擁有者用戶A。在系統(tǒng)中創(chuàng)建一個(gè)符合交易的智能合約。合約創(chuàng)建后,系統(tǒng)向用戶B發(fā)送用戶A的身份信息、參數(shù)T和RA。

        用戶B根據(jù)用戶A選定的橢圓曲線參數(shù)T生成密鑰對(duì)(私鑰dB、公鑰QB=dBG=(xB,yB)),并隨機(jī)取一整數(shù)rB∈[1,n-1],生成隨機(jī)點(diǎn)(x2,y2)=RB=rBG。用戶B將數(shù)據(jù)索引、B的身份信息與隨機(jī)生成點(diǎn)RB通過(guò)區(qū)塊鏈底層P2P網(wǎng)絡(luò)單播給用戶A,可通過(guò)參數(shù)選擇是否需要TLS/SSL安全信道進(jìn)行傳輸。與此同時(shí),用戶B將RB發(fā)送給系統(tǒng)。

        用戶A接受到請(qǐng)求后,將會(huì)對(duì)用戶B的身份信息進(jìn)行驗(yàn)證。驗(yàn)證通過(guò)后,通過(guò)數(shù)據(jù)索引與真實(shí)數(shù)據(jù)之間的映射關(guān)系,從本地?cái)?shù)據(jù)庫(kù)中找到真實(shí)數(shù)據(jù),并根據(jù)用戶B發(fā)送的RB、用戶B的公鑰QB計(jì)算K。使用用戶B的公鑰QB對(duì)真實(shí)數(shù)據(jù)RealData加密后,上傳EQB(RealData)到系統(tǒng),系統(tǒng)將EQB(RealData)存儲(chǔ)到代理服務(wù)器上。同時(shí)用K進(jìn)行對(duì)稱加密,發(fā)送DK(RealData)給用戶B,用于驗(yàn)證數(shù)據(jù)的完整性。

        用戶A計(jì)算密鑰K的步驟如式(4)和式(5)所示:

        sA=rA+x1dAxA

        (4)

        K=sA(RB+x2xBQB)=rArBG+rBx1xAdAG+

        rAx2xBdBG+x1x2xAxBdAdBG=sAsBG

        (5)

        用戶B利用用戶A發(fā)送的RA和用戶A的公鑰QA計(jì)算K。將獲取加密后的數(shù)據(jù)EQB(RealData),使用私鑰dB解密得到真實(shí)數(shù)據(jù)RealData。同時(shí)使用K對(duì)獲得的真實(shí)數(shù)據(jù)進(jìn)行對(duì)稱加密,與所獲得的驗(yàn)證數(shù)據(jù)DK(RealData)進(jìn)行對(duì)比。若對(duì)比結(jié)果一致,則數(shù)據(jù)在傳輸過(guò)程中是安全的且未被篡改的。若不一致,則用K對(duì)獲得的驗(yàn)證數(shù)據(jù)DK(RealData)進(jìn)行解密,即可獲得真實(shí)數(shù)據(jù)。

        用戶B計(jì)算密鑰K的步驟如式(6)和式(7)所示:

        sB=rB+x2dBxB

        (6)

        K=sB(RA+x1xAQA)=rArBG+rBx1xAdAG+

        rAx2xBdBG+x1x2xAxBdAdBG=sAsBG

        (7)

        3.1.2 智能合約設(shè)計(jì)

        本系統(tǒng)所設(shè)計(jì)的去中心化和可信數(shù)據(jù)共享的智能合約包含共享數(shù)據(jù)上傳、共享數(shù)據(jù)訪問(wèn)請(qǐng)求和身份驗(yàn)證功能,最終完成雙方之間的數(shù)據(jù)共享。智能合約為數(shù)據(jù)供需雙方提供了各種所需的調(diào)用接口,以方便與區(qū)塊鏈進(jìn)行交互實(shí)現(xiàn)各項(xiàng)功能。一旦智能合約部署在區(qū)塊鏈上,其預(yù)定義代碼將作為合約賬戶存在于區(qū)塊鏈網(wǎng)絡(luò)中,并且無(wú)法更改。當(dāng)然,合約一旦部署,其預(yù)定義的接口函數(shù)也可供其他賬戶調(diào)用。

        該智能合約[14]主要包含以下4個(gè)部分:

        (1)用戶注冊(cè)。利用以太坊(Ethereum network)上的用戶注冊(cè)系統(tǒng),每個(gè)用戶可隨機(jī)生成一組公私鑰對(duì)作為用戶的唯一標(biāo)識(shí),以便用戶登錄區(qū)塊鏈數(shù)據(jù)共享系統(tǒng)時(shí)使用,用戶可以使用私鑰與智能合約進(jìn)行交互,以實(shí)現(xiàn)設(shè)備注冊(cè)和數(shù)據(jù)訪問(wèn)的功能。

        (2)設(shè)備注冊(cè)。數(shù)據(jù)擁有者僅需在通過(guò)身份驗(yàn)證后提供設(shè)備的標(biāo)識(shí)符deviceID,即可完成對(duì)多個(gè)設(shè)備的注冊(cè)。通過(guò)使用數(shù)據(jù)擁有者的地址和deviceID的組合作為哈希映射中的鍵,實(shí)現(xiàn)了數(shù)據(jù)的快速定位。

        (3)數(shù)據(jù)上傳。在智能合約允許數(shù)據(jù)上傳之前,先要將數(shù)據(jù)上傳到區(qū)塊鏈的設(shè)備,需要提供數(shù)據(jù)擁有者的地址、deviceID和上傳的數(shù)據(jù)。由智能合約檢查數(shù)據(jù)擁有者是否已經(jīng)注冊(cè)deviceID對(duì)應(yīng)的設(shè)備,從而確保只有設(shè)備所有者才能執(zhí)行數(shù)據(jù)上傳操作。此后,再對(duì)共享數(shù)據(jù)進(jìn)行加密,將密文存儲(chǔ)至系統(tǒng)的代理服務(wù)器,以便后續(xù)數(shù)據(jù)共享。

        (4)數(shù)據(jù)獲取。在進(jìn)行數(shù)據(jù)請(qǐng)求時(shí),數(shù)據(jù)請(qǐng)求者發(fā)出一個(gè)讀取數(shù)據(jù)的請(qǐng)求許可,并提供自身地址和deviceID,用于身份驗(yàn)證。若身份驗(yàn)證通過(guò),則數(shù)據(jù)請(qǐng)求者可獲得數(shù)據(jù)擁有者上傳至系統(tǒng)的密文和相關(guān)參數(shù),并通過(guò)計(jì)算最終獲得共享數(shù)據(jù)。

        智能合約算法如算法1所示:

        算法1智能合約算法

        輸入:owner_Address,Requester_Address,Data。

        輸出:數(shù)據(jù)交易ID或不具備訪問(wèn)權(quán)限。

        1.Begin

        2.HashMapdeviceRegistry(owner_Address)

        3.returnList[DeviceIDs];

        4.HashMapEncryptedData(owner_Address,deviceID)

        5.returnList[TxId]//返回交易ID

        6.HashMapDataIsAllowed(owner_Addresss,Requester_Address,deviceID)

        7.returnboolisAllowed/*審核請(qǐng)求方是否有權(quán)限訪問(wèn)*/

        8.FunctionREGISTERDEVICE(owner_Address,deviceID)

        9.InsertToHashMap(deviceRegistry)/*數(shù)據(jù)擁有者注冊(cè)*/

        10.EndFunction

        11.FunctionUPLOADDATA(owner_Address,deviceID,Data)

        12.ifowner==owner_Address/*驗(yàn)證數(shù)據(jù)擁有者并上傳數(shù)據(jù)*/

        13.EncryptedData[owner,deviceID].List.InsertData(encrypt(Data))

        14.EndFunction

        15.FunctionGETDATA(owner_Address,Requester_Address,deviceID)

        16.ifDataIsAllowed(Requester_Address)==true/*審核通過(guò)則可讀取數(shù)據(jù)*/

        17.returnEncryptedData[hash(owner_Address,deviceID])

        18.EndFunction

        19.FunctionPASSACCESS(owner_Address,Requester_Address,deviceID)/*身份驗(yàn)證通過(guò)*/

        20.ifowner==owner_Address

        21.DataIsAllowed[hash(owner_Address,Requester_Address,deviceID)]=true

        22.EndFunction

        23.FunctionREJECTACCESS(owner_Address,Requester_Address,deviceID)/*身份驗(yàn)證失*/

        24.ifowner!=owner_Address

        25.DataIsAllowed[hash(owner_Address,Requester_Address,deviceID)]=false

        26.EndFunction

        27.End

        3.2 方案結(jié)構(gòu)設(shè)計(jì)

        基于ECC算法的區(qū)塊鏈數(shù)據(jù)共享方案主要包含3個(gè)模塊:前端模塊、代理服務(wù)器模塊和區(qū)塊鏈模塊??傮w結(jié)構(gòu)如圖3所示。

        Figure 3 Structure of scheme圖3 方案結(jié)構(gòu)

        前端模塊主要為數(shù)據(jù)擁有者和數(shù)據(jù)請(qǐng)求者提供可視化的操作接口。數(shù)據(jù)擁有者可在此上傳數(shù)據(jù),對(duì)數(shù)據(jù)請(qǐng)求者的申請(qǐng)進(jìn)行驗(yàn)證以及為數(shù)據(jù)請(qǐng)求者提供檢索相關(guān)數(shù)據(jù)、申請(qǐng)數(shù)據(jù)和下載數(shù)據(jù)等功能的操作。

        代理服務(wù)器模塊扮演半可信第三方的角色,主要有3個(gè)功能:(1)保存數(shù)據(jù)擁有者上傳的數(shù)據(jù)密文和相應(yīng)的加密參數(shù);(2)根據(jù)數(shù)據(jù)請(qǐng)求者提供的關(guān)鍵字搜索對(duì)應(yīng)的數(shù)據(jù),并將數(shù)據(jù)擁有者的地址信息和加密參數(shù)返回給請(qǐng)求者;(3)確認(rèn)請(qǐng)求者是否有權(quán)限下載數(shù)據(jù)。將請(qǐng)求者的地址信息和請(qǐng)求的數(shù)據(jù)信息發(fā)送給區(qū)塊鏈模塊,由區(qū)塊鏈模塊驗(yàn)證用戶是否有對(duì)應(yīng)這個(gè)數(shù)據(jù)的下載權(quán)限,區(qū)塊鏈模塊驗(yàn)證權(quán)限之后,會(huì)對(duì)此次請(qǐng)求結(jié)果生成日志上鏈。

        區(qū)塊鏈模塊分為2個(gè)部分:智能合約和底層數(shù)據(jù)區(qū)塊。智能合約是一組定義了區(qū)塊鏈系統(tǒng)邏輯的核心合約代碼,由管理員編寫,在系統(tǒng)初始化階段部署在各個(gè)節(jié)點(diǎn)上,提供遠(yuǎn)程接口供用戶調(diào)用[15]。智能合約不僅能夠免除因?yàn)槿斯なд`造成的錯(cuò)誤,還能夠避免操作者對(duì)數(shù)據(jù)進(jìn)行惡意修改和破壞。在本文方案中,智能合約主要負(fù)責(zé)管理2種數(shù)據(jù):加密數(shù)據(jù)和訪問(wèn)控制數(shù)據(jù)。系統(tǒng)通過(guò)調(diào)用智能合約的API將數(shù)據(jù)的密文和訪問(wèn)控制數(shù)據(jù)上鏈。底層數(shù)據(jù)區(qū)塊主要負(fù)責(zé)存儲(chǔ)相關(guān)交易數(shù)據(jù),即鏈上數(shù)據(jù),包含父區(qū)塊、時(shí)間戳、交易ID、數(shù)據(jù)共享雙方地址、數(shù)據(jù)雙方設(shè)備ID和隨機(jī)數(shù)等,它是一個(gè)類似鏈表的數(shù)據(jù)結(jié)構(gòu),每個(gè)節(jié)點(diǎn)保存了上一個(gè)節(jié)點(diǎn)的哈希值,以保證鏈上數(shù)據(jù)的不可篡改。

        4 方案分析

        本節(jié)將對(duì)所設(shè)計(jì)的數(shù)據(jù)共享方案進(jìn)行簡(jiǎn)單的正確性與安全性分析。仍假設(shè)數(shù)據(jù)擁有者為用戶A,數(shù)據(jù)請(qǐng)求者為用戶B,數(shù)據(jù)索引用index表示,真實(shí)數(shù)據(jù)用RealData表示。

        4.1 正確性分析

        在本文方案中,每個(gè)真實(shí)數(shù)據(jù)都擁有一個(gè)相應(yīng)的數(shù)據(jù)索引。用戶之間預(yù)先溝通或通過(guò)某種手段對(duì)這個(gè)數(shù)據(jù)索引達(dá)成一致。只有獲取正確的數(shù)據(jù)索引才有權(quán)利共享數(shù)據(jù)擁有者擁有的真實(shí)數(shù)據(jù),從而實(shí)現(xiàn)對(duì)數(shù)據(jù)擁有者的隱私保護(hù)。

        用戶A事先在本地?cái)?shù)據(jù)庫(kù)中存儲(chǔ)RealData與index之間的映射關(guān)系。用戶A把index和自己的身份信息公布到系統(tǒng)中,當(dāng)用戶B希望通過(guò)某種途徑獲取RealData時(shí),用戶B可以成功地在區(qū)塊鏈系統(tǒng)上找到index對(duì)應(yīng)的區(qū)塊,并獲取用戶A的身份信息。

        用戶B將index、id(B)和RB發(fā)送給用戶A后,用戶A可查找本地是否有對(duì)應(yīng)的索引,并驗(yàn)證用戶B身份標(biāo)識(shí)的有效性。若索引存在且通過(guò)身份檢查,則需要向用戶B提供index對(duì)應(yīng)的真實(shí)數(shù)據(jù)。用戶A在本地計(jì)算出K后,將真實(shí)數(shù)據(jù)用用戶B的公鑰進(jìn)行加密,然后將加密后的EQB(RealData)存儲(chǔ)到代理服務(wù)器,并發(fā)送EQB(RealData)給用戶B。用戶B使用自己的私鑰即可成功解密獲取真實(shí)數(shù)據(jù)。

        用戶A在本地用K對(duì)真實(shí)數(shù)據(jù)RealData加密,將DK(RealData)發(fā)送給用戶B。同樣,用戶B可以對(duì)獲得的真實(shí)數(shù)據(jù)RealData用K加密與獲得的驗(yàn)證數(shù)據(jù)DK(RealData)進(jìn)行比較,由于已知破解協(xié)商密鑰K是基于一個(gè)離散對(duì)數(shù)問(wèn)題,難以破解,因此可以用來(lái)對(duì)數(shù)據(jù)在傳輸過(guò)程中的完整性進(jìn)行驗(yàn)證。

        從以上步驟可以看出數(shù)據(jù)共享的整個(gè)過(guò)程是可行且正確的。在雙方的合作下,只有具有數(shù)據(jù)索引的數(shù)據(jù)請(qǐng)求者才可以成功地從數(shù)據(jù)擁有者獲取數(shù)據(jù)。

        4.2 安全性分析

        假設(shè)數(shù)據(jù)共享的過(guò)程中存在攻擊者,攻擊者可能通過(guò)登錄成為了網(wǎng)絡(luò)中合法的成員。攻擊者試圖基于數(shù)據(jù)共享系統(tǒng)中的現(xiàn)有信息或通過(guò)竊聽節(jié)點(diǎn)之間的通信流來(lái)攔截真實(shí)數(shù)據(jù)。但是,本文方案能夠保證以下2點(diǎn):

        (1)攻擊者無(wú)法獲得真實(shí)數(shù)據(jù)。用戶A將真實(shí)數(shù)據(jù)的加密形式EQB(RealData)存儲(chǔ)在代理服務(wù)器上,即真實(shí)數(shù)據(jù)已經(jīng)被用戶B的公鑰加密,其中使用的是橢圓曲線加密算法。由于橢圓曲線加密算法的安全性是基于解決橢圓曲線離散對(duì)數(shù)問(wèn)題的困難性,因此攻擊者在有限的時(shí)間內(nèi)對(duì)其進(jìn)行破解是十分困難的,也就是說(shuō),他無(wú)法獲得任何真實(shí)數(shù)據(jù)。此外,攻擊者還可能通過(guò)監(jiān)聽網(wǎng)絡(luò)信息來(lái)進(jìn)行主動(dòng)攻擊。通過(guò)模擬用戶B的身份信息,假裝為用戶B,使用戶A認(rèn)為是用戶B發(fā)出的數(shù)據(jù)請(qǐng)求,有權(quán)利獲取真實(shí)數(shù)據(jù)RealData;盡管通過(guò)模擬用戶B,將欺騙用戶A并把加密后的真實(shí)數(shù)據(jù)上傳到系統(tǒng)中,但由于攻擊者沒有rB和用戶B的私鑰,攻擊者不能計(jì)算出密鑰K,如式(8)和式(9)所示:

        sC=rC+x2dCxB≠sB

        (8)

        K=sB(RA+x1xAQA)≠sC(RA+x1xAQA)

        (9)

        故此,攻擊者通過(guò)嗅探網(wǎng)絡(luò)上的數(shù)據(jù)包進(jìn)行主動(dòng)攻擊無(wú)法得到真實(shí)數(shù)據(jù)。

        (2)攻擊者難以篡改數(shù)據(jù)。由于用戶A還會(huì)發(fā)送DK(RealData)給用戶B,用于驗(yàn)證數(shù)據(jù)傳遞的完整性,即便攻擊者對(duì)EQB(RealData)進(jìn)行了篡改,也不能對(duì)DK(RealData)進(jìn)行篡改,使得2個(gè)密文解密后相同。

        因此,從以上角度來(lái)看,本文方案具有較強(qiáng)的安全性,能夠抵御惡意篡改和數(shù)據(jù)竊取等攻擊。

        5 仿真實(shí)驗(yàn)

        5.1 實(shí)驗(yàn)環(huán)境

        本文實(shí)驗(yàn)所使用的硬件環(huán)境為 Intel(R)CoreTMi7-8700 CPU @3.20 GHz,8 GB RAM;操作系統(tǒng)為64位Windows 10;編譯器是IntelliJ IDEA 2020.03和Remix-Ethereum IDE;編程語(yǔ)言為 Java和Solidity;外部資源庫(kù)為JPBC和web3.js。在加密過(guò)程中,通過(guò) JPBC 實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密,并引入相關(guān)jar包實(shí)現(xiàn)ECC算法加密功能。通過(guò)在以太坊平臺(tái)搭建的聯(lián)盟鏈上進(jìn)行仿真和測(cè)試。

        5.2 實(shí)驗(yàn)數(shù)據(jù)

        系統(tǒng)可選用的橢圓曲線有sect113r1,sect113r2,sect131r1,sect131r2,sect571r1等18種,本次實(shí)驗(yàn)數(shù)據(jù)擁有者選用的是sect113r2,因此雙方所生成的隨機(jī)密鑰及其他參數(shù)如表2所示。

        Table 2 Experimental parameters表2 實(shí)驗(yàn)參數(shù)

        5.3 數(shù)據(jù)共享實(shí)驗(yàn)過(guò)程

        用戶在數(shù)據(jù)共享時(shí)首先要對(duì)設(shè)備進(jìn)行注冊(cè),系統(tǒng)將自動(dòng)分配設(shè)備ID,該設(shè)備ID與用戶地址相關(guān)聯(lián),如圖4所示。

        Figure 4 Device registration圖4 設(shè)備注冊(cè)

        如圖5所示,數(shù)據(jù)擁有者收到數(shù)據(jù)請(qǐng)求,若對(duì)請(qǐng)求者進(jìn)行授權(quán)則validate為“true”,并將數(shù)據(jù)加密上傳。上傳時(shí)需要向智能合約提供使用數(shù)據(jù)請(qǐng)求者公鑰加密的dataQ、協(xié)商密鑰以及用協(xié)商密鑰加密的驗(yàn)證數(shù)據(jù)dataK。智能合約自動(dòng)生成鏈上交易ID(txID)和時(shí)間戳(txTimestamp),并將加密數(shù)據(jù)傳輸給數(shù)據(jù)請(qǐng)求者。

        Figure 5 Encrypted data upload圖5 加密數(shù)據(jù)上傳

        5.4 實(shí)驗(yàn)結(jié)果

        如圖6所示,數(shù)據(jù)請(qǐng)求者用戶B用私鑰dB對(duì)加密數(shù)據(jù)encrypted進(jìn)行解密,得到數(shù)據(jù)decrypedQ,即RealData。并計(jì)算協(xié)商密鑰K,用其對(duì)真實(shí)數(shù)據(jù)加密,生成的calData與用戶A所發(fā)的驗(yàn)證數(shù)據(jù)srcDataK進(jìn)行對(duì)比。對(duì)比結(jié)果一致則validate返回的為true;若結(jié)果不一致,則返回false??捎脜f(xié)商密鑰對(duì)srcDataK進(jìn)行解密,獲得真實(shí)數(shù)據(jù)。此外系統(tǒng)還會(huì)將本次數(shù)據(jù)共享用戶雙方的地址與設(shè)備ID記錄上鏈,以便后續(xù)溯源。

        Figure 6 Data decryption verification圖6 數(shù)據(jù)解密驗(yàn)證

        5.5 實(shí)驗(yàn)對(duì)比

        本節(jié)在Matlab環(huán)境下模擬仿真文獻(xiàn)[5]使用的加密算法RSA和ECC這2種算法。由于安全性與破解時(shí)間(以每秒處理100萬(wàn)條指令的處理器運(yùn)算一年為單位,即MIPS-YEARS)成正相關(guān),本文選用具有相同安全性的密鑰長(zhǎng)度,如表3所示。

        Table 3 Key bits corresponding to the two public key systems under the same security 表3 同等安全性下公鑰體制對(duì)應(yīng)的密鑰位

        為了保證數(shù)據(jù)的安全性,需要不斷增加RSA 的密鑰長(zhǎng)度。然而,密鑰長(zhǎng)度的增加將不可避免地占用更多的存儲(chǔ)空間,與使用ECC算法對(duì)數(shù)據(jù)加密的應(yīng)用對(duì)比,使用RSA算法在空間效率上劣勢(shì)明顯。此外在相同安全性下,ECC算法所對(duì)應(yīng)的密鑰長(zhǎng)度明顯短于RSA算法所對(duì)應(yīng)的密鑰長(zhǎng)度,有利于用戶雙方更快地對(duì)共享數(shù)據(jù)進(jìn)行加解密運(yùn)算,進(jìn)而提高數(shù)據(jù)共享效率。

        Figure 7 Comparison diagram of key pair generation speed圖7 密鑰對(duì)生成速度對(duì)比圖

        由圖7可見,RSA算法若想生成難破解的密鑰對(duì)需要消耗更長(zhǎng)的時(shí)間,而本文所采用的ECC算法密鑰在生成時(shí)間上有著明顯優(yōu)勢(shì),這意味者在保障安全性的前提下,ECC算法能更高效地實(shí)現(xiàn)數(shù)據(jù)在區(qū)塊鏈系統(tǒng)上共享。且與傳統(tǒng)算法相比,ECC算法在許多方面都具有絕對(duì)的優(yōu)勢(shì),尤其體現(xiàn)在抗攻擊性、資源占用、網(wǎng)絡(luò)消耗和加密速度等方面[16]。綜上分析,基于ECC算法的區(qū)塊鏈數(shù)據(jù)共享系統(tǒng)具有耗時(shí)短、成本低和安全性高的特點(diǎn)。

        6 結(jié)束語(yǔ)

        本文基于區(qū)塊鏈技術(shù)在數(shù)據(jù)共享方面的國(guó)內(nèi)外研究現(xiàn)狀,設(shè)計(jì)并模擬了基于ECC算法的區(qū)塊鏈數(shù)據(jù)共享系統(tǒng),且對(duì)比驗(yàn)證了該算法的效率。該系統(tǒng)有如下特點(diǎn):(1)利用ECC算法這種耗時(shí)短、成本低、安全性高的非對(duì)稱加密算法對(duì)數(shù)據(jù)進(jìn)行加密;(2)使用協(xié)商密鑰實(shí)現(xiàn)數(shù)據(jù)的可逆性驗(yàn)證;(3)執(zhí)行智能合約完成數(shù)據(jù)共享。該系統(tǒng)既保證了跨機(jī)構(gòu)間數(shù)據(jù)共享的安全性與完整性,又基于區(qū)塊鏈技術(shù)使得數(shù)據(jù)在共享過(guò)程中具有不可偽造、難篡改且可追溯的特點(diǎn)。未來(lái)將深入研究跨區(qū)塊鏈數(shù)據(jù)共享方案,在保障數(shù)據(jù)安全的條件下,實(shí)現(xiàn)2條獨(dú)立區(qū)塊鏈之間的數(shù)據(jù)共享。

        猜你喜歡
        智能用戶
        智能制造 反思與期望
        智能前沿
        文苑(2018年23期)2018-12-14 01:06:06
        智能前沿
        文苑(2018年19期)2018-11-09 01:30:14
        智能前沿
        文苑(2018年17期)2018-11-09 01:29:26
        智能前沿
        文苑(2018年21期)2018-11-09 01:22:32
        智能制造·AI未來(lái)
        商周刊(2018年18期)2018-09-21 09:14:46
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        Camera360:拍出5億用戶
        青草福利在线| 亚洲毛片免费观看视频| 亚洲无码毛片免费视频在线观看 | 亚洲国产高清一区av| 精品人妻av一区二区三区四区| 无码国内精品人妻少妇蜜桃视频| 色欲人妻综合网| 久久久久久中文字幕有精品| 成人一区二区三区蜜桃| 亚洲精品视频在线一区二区| 大ji巴好深好爽又大又粗视频| 18成人片黄网站www| 熟女人妻丰满熟妇啪啪| 在线观看高清视频一区二区三区| 日韩大片高清播放器大全| 日日噜噜噜夜夜爽爽狠狠视频| 国产最新网站| 亚洲国产精品免费一区| 人妖一区二区三区视频| 小sao货水好多真紧h无码视频| 91视频88av| 日本一本草久国产欧美日韩| 久久久熟女一区二区三区| 精品国产性色无码av网站| 一本一本久久a久久精品| 精品亚洲一区二区99| 桃色一区一区三区蜜桃视频| 国产超碰人人做人人爽av大片| 内谢少妇xxxxx8老少交 | 丰满爆乳在线播放| 成人无码一区二区三区网站| 亚洲A∨无码国产精品久久网| 国产免费99久久精品| 欧美日韩午夜群交多人轮换| 色偷偷偷久久伊人大杳蕉| 98色花堂国产精品首页| 深夜福利国产| 日韩免费精品在线观看| а天堂中文在线官网| 中文字幕av一区二区三区| 视频一区二区三区中文字幕狠狠 |