• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      群智網(wǎng)絡(luò)中基于區(qū)塊鏈的有序聚合簽名認(rèn)證方案

      2022-04-18 14:42:42楊坤偉周彥偉
      電子學(xué)報(bào) 2022年2期
      關(guān)鍵詞:敵手公鑰密鑰

      楊坤偉,楊 波,周彥偉

      (陜西師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,陜西西安 710062)

      1 引言

      隨著共享經(jīng)濟(jì)的不斷發(fā)展,群體智能已經(jīng)在各行各業(yè)中得到深度應(yīng)用,目前已經(jīng)引起了學(xué)術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注.《中國(guó)人工智能2.0 發(fā)展戰(zhàn)略研究》[1]定義了群體智能的概念:通過(guò)吸引、匯聚和管理大規(guī)模參與者,以競(jìng)爭(zhēng)和合作等多種自主協(xié)同方式來(lái)共同應(yīng)對(duì)挑戰(zhàn)性任務(wù),特別是開(kāi)放環(huán)境下的復(fù)雜系統(tǒng)決策任務(wù),涌現(xiàn)出來(lái)的超越個(gè)體智力的智能形態(tài). 群智網(wǎng)絡(luò)任務(wù)管理從角色構(gòu)成上可以分為管理平臺(tái)、任務(wù)發(fā)布者和任務(wù)執(zhí)行者三元模型,從邏輯上可以自上而下分為應(yīng)用層、網(wǎng)絡(luò)層和終端層,如圖1 所示. 應(yīng)用層提供眾包任務(wù)的用戶管理、任務(wù)發(fā)布和任務(wù)回收等功能. 網(wǎng)絡(luò)層主要提供眾包任務(wù)的網(wǎng)絡(luò)通信,包括(移動(dòng))互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、無(wú)線傳感網(wǎng)和無(wú)線自組織網(wǎng)等形態(tài). 終端層作為感知數(shù)據(jù)的來(lái)源,通過(guò)各類(lèi)智能設(shè)備或傳感器收集與眾包任務(wù)相關(guān)的數(shù)據(jù)并上傳.

      圖1 群智網(wǎng)絡(luò)邏輯分層

      在群體智能各類(lèi)應(yīng)用中,身份認(rèn)證是不可缺少的重要環(huán)節(jié),成為保護(hù)用戶數(shù)據(jù)安全的重要屏障. 公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)作為網(wǎng)絡(luò)安全建設(shè)的基礎(chǔ)與核心,提供密鑰和數(shù)字證書(shū)[2]管理服務(wù). 然而,集中式的PKI 機(jī)制在群智網(wǎng)絡(luò)環(huán)境中面臨CA(Certification Authority)不可信、被攻擊、單點(diǎn)故障以及證書(shū)簽發(fā)不透明等問(wèn)題,使得傳統(tǒng)的集中式PKI機(jī)制已經(jīng)難以適應(yīng)規(guī)模日益龐大和復(fù)雜的網(wǎng)絡(luò)環(huán)境.

      針對(duì)上述問(wèn)題,研究人員開(kāi)始將目光投向基于區(qū)塊鏈的身份認(rèn)證技術(shù)[3~12],考慮利用區(qū)塊鏈中數(shù)據(jù)不可篡改和分布式存儲(chǔ)等特點(diǎn)優(yōu)化傳統(tǒng)的PKI體制,實(shí)現(xiàn)去中心化的身份認(rèn)證. 文獻(xiàn)[6]提出了基于區(qū)塊鏈技術(shù)的分布式證書(shū)管理模型Certcoin,利用區(qū)塊鏈記錄用戶證書(shū),通過(guò)將用戶身份與證書(shū)公鑰相關(guān)聯(lián)并定義挑戰(zhàn)-應(yīng)答機(jī)制,實(shí)現(xiàn)了PKI 體制的去中心化. 模型中,去中心化的證書(shū)簽發(fā)與記錄機(jī)制避免了CA 的單點(diǎn)故障問(wèn)題和證書(shū)簽發(fā)過(guò)程不透明的問(wèn)題,對(duì)于女巫攻擊有更強(qiáng)的抵抗性. 文獻(xiàn)[8]針對(duì)傳統(tǒng)PKI 系統(tǒng)的中心化和不透明性提出了一個(gè)替代方案(Smart Contract-based PKI,SCPKI),該方案是基于分布式網(wǎng)絡(luò)模型和區(qū)塊鏈上的智能合約設(shè)計(jì)的,其具有運(yùn)行公鑰基礎(chǔ)設(shè)施和身份管理的功能,機(jī)制中公鑰和標(biāo)識(shí)屬性存儲(chǔ)在區(qū)塊鏈上,由智能合約管理,以便在發(fā)布惡意證書(shū)時(shí)很容易被檢測(cè)出來(lái). 文獻(xiàn)[9]針對(duì)現(xiàn)有交互頻繁的信息服務(wù)信任域之間不能實(shí)現(xiàn)安全、高效的跨域認(rèn)證的問(wèn)題,提出了一種基于區(qū)塊鏈的跨異構(gòu)域認(rèn)證方案,在基于身份的密碼體制(Identity-Based Cryptography,IBC)內(nèi)設(shè)置區(qū)塊鏈域代理服務(wù)器參與密鑰生成,并與PKI域區(qū)塊鏈證書(shū)服務(wù)器等構(gòu)成聯(lián)盟鏈模型,利用區(qū)塊鏈去中心化、數(shù)據(jù)不易篡改等優(yōu)點(diǎn)保證模型內(nèi)第三方服務(wù)器的可信性.

      然而,上述基于區(qū)塊鏈的分布式身份認(rèn)證方案均沒(méi)有考慮現(xiàn)實(shí)簽名認(rèn)證應(yīng)用中多用戶或多機(jī)構(gòu)對(duì)消息簽名的情況,忽略了認(rèn)證過(guò)程中大量簽名信息會(huì)增加網(wǎng)絡(luò)傳輸帶寬和區(qū)塊鏈存儲(chǔ)空間等問(wèn)題.

      解決這些問(wèn)題的一個(gè)有效辦法是,在基于區(qū)塊鏈的身份認(rèn)證過(guò)程中引入有序聚合簽名技術(shù),將任意多個(gè)簽名壓縮為一個(gè)簽名,將任意多個(gè)簽名的驗(yàn)證簡(jiǎn)化為一次驗(yàn)證. 使用有序聚合簽名來(lái)代替多個(gè)單一簽名會(huì)節(jié)省大量存儲(chǔ)空間,大幅減少驗(yàn)證時(shí)間,可以為多用戶提供不可否認(rèn)性,對(duì)許多應(yīng)用都有良好的支撐作用,具有廣闊的應(yīng)用前景. 在Eurocrypt 2004 上,Lysyanskaya 等人[10]基于RSA 提出了第一個(gè)有序聚合簽名方案,每一個(gè)簽名者在一個(gè)有序的聚合簽名中加入一個(gè)自己所選擇的消息簽名,形成一個(gè)新的有序聚合簽名,有序聚合簽名的結(jié)構(gòu)有層次性,像洋蔥一樣,即第一個(gè)簽名是在聚合的最里面,后續(xù)簽名向外依次延伸,這種結(jié)構(gòu)很好地反映了簽名的順序特性,并且簽名長(zhǎng)度與普通簽名長(zhǎng)度相同.Lu 等人[11]在Eurocrypt 2006 上基于Waters 的簽名方案提出了一個(gè)標(biāo)準(zhǔn)模型下的有序聚合簽名方案,該方案不要求簽名者知道簽名消息的順序,并且聚合簽名長(zhǎng)度更短、驗(yàn)證效率更快,方案的安全性基于有序聚合認(rèn)證密鑰模型,在該模型中,敵手需掌握所選擇的公鑰序列對(duì)應(yīng)的私鑰. 2011 年,Schrder[13]通過(guò)對(duì)Lysyanskaya 簽名方案的改進(jìn),提出了一個(gè)新的有序聚合簽名方案,具有密鑰長(zhǎng)度短的優(yōu)勢(shì),其中公鑰為兩個(gè)群元素.2015 年,Lee 等人[14]在標(biāo)準(zhǔn)模型下基于靜態(tài)假設(shè)提出了一個(gè)有序聚合簽名方案,該方案中公鑰元素為常數(shù),簽名和驗(yàn)證算法只需要進(jìn)行常數(shù)次對(duì)運(yùn)算.同年,趙慧艷等人[15]為了應(yīng)對(duì)聚合簽名中的密鑰泄露問(wèn)題,將并行密鑰隔離機(jī)制擴(kuò)展到聚合簽名系統(tǒng)中,給出了并行密鑰隔離聚合簽名的概念,同時(shí)提出了第一個(gè)并行密鑰隔離聚合簽名方案,并在隨機(jī)預(yù)言模型下證明了方案的安全性,但是方案不具備有序性.

      由于現(xiàn)有有序聚合簽名方案的簽名長(zhǎng)度和公鑰長(zhǎng)度較長(zhǎng),簽名驗(yàn)證效率較低,不適用于基于區(qū)塊鏈的輕量級(jí)身份認(rèn)證,因此本文基于BLS 簽名[16]提出了一個(gè)新的有序聚合簽名方案,方案在效率方面有所提升,更適用于具有高度自治性、多樣性及涌現(xiàn)性特點(diǎn)的群智網(wǎng)絡(luò). 同時(shí),利用區(qū)塊鏈的不可篡改和去中心化的特點(diǎn)以及信任網(wǎng)絡(luò)(web of trust,wot)[17]的分布式認(rèn)證思想,提出一個(gè)基于區(qū)塊鏈的輕量級(jí)身份認(rèn)證模型,實(shí)現(xiàn)端對(duì)端的去中心認(rèn)證. 將有序聚合簽名嵌入到基于區(qū)塊鏈的身份認(rèn)證機(jī)制中,能有效滿足多人簽名認(rèn)證和證書(shū)追加簽名等需求,在實(shí)際應(yīng)用中具有獨(dú)特優(yōu)勢(shì).

      2 基礎(chǔ)知識(shí)

      2.1 雙線性映射

      設(shè)G1和G2是階為大素?cái)?shù)p的乘法群,映射e:G1×G1→G2是一個(gè)雙線性映射,e滿足以下性質(zhì).

      (1)雙線性:如果對(duì)于任意的P,Q∈G1和任意的a,b∈Z,都 有e(aP,bQ)=e(P,Q)ab,就 說(shuō)e:G1×G1→G2是雙線性的.

      (2)非退化性:這個(gè)映射不會(huì)將G1×G1中的所有對(duì)映射為G2的單位元,因?yàn)镚1,G2同為素?cái)?shù)階群,這意味著如果P是G1的單位元,那么e(P,P)是G2的單位元.

      (3)可計(jì)算性:對(duì)于任意的P,Q∈G1,都有有效的算法來(lái)計(jì)算e(P,Q).

      2.2 BLS簽名方案

      BLS 簽名方案的安全性基于乘法群上的CDH 問(wèn)題的困難性假設(shè)[16]. 方案包含密鑰生成算法、簽名算法和驗(yàn)證算法,采用了一個(gè)全域哈希函數(shù)h:{0,1}*→G*,具體算法如下所述.

      (1)密鑰生成算法:選擇一個(gè)隨機(jī)數(shù)x∈Zp,計(jì)算y=gx∈G,私鑰為SK=x,公鑰為PK=y.

      (2)簽名算法:對(duì)于消息M∈{0,1}*,計(jì)算h=H(M),輸出簽名σ=hx∈G.

      (3)驗(yàn)證算法:輸入消息M和簽名σ,如果(g,h,y,σ)為一個(gè)有效的CDH四元組,就返回1,否則輸出0.

      2.3 有序聚合簽名

      一個(gè)有序聚合簽名方案包括密鑰生成算法、有序聚合簽名算法、聚合驗(yàn)證算法. 與普通聚合簽名不同,有序聚合簽名算法輸入不僅包括簽名所需的私鑰和對(duì)應(yīng)的待簽名消息,而且還包含一個(gè)截至當(dāng)前時(shí)點(diǎn),基于?-1 個(gè)簽名者對(duì)?-1 個(gè)對(duì)應(yīng)消息的聚合簽名σ,算法將新的簽名添加進(jìn)σ中,產(chǎn)生一個(gè)新的基于?個(gè)簽名者對(duì)?個(gè)對(duì)應(yīng)消息的聚合簽名σ*. 聚合驗(yàn)證算法,輸入一個(gè)聚合簽名和對(duì)應(yīng)的公鑰序列和消息序列,驗(yàn)證聚合簽名是否有效,算法具體過(guò)程如圖2所示.

      圖2 有序聚合簽名

      2.4 安全模型

      本文基于文獻(xiàn)[11]提出的有序聚合認(rèn)證密鑰模型(the sequential Aggregate certified-key model),挑戰(zhàn)者B給定敵手A一個(gè)隨機(jī)選擇的挑戰(zhàn)公鑰,敵手A有選擇除了挑戰(zhàn)公鑰對(duì)應(yīng)私鑰外的所有密鑰和訪問(wèn)有序聚合簽名諭言機(jī)的能力. 與傳統(tǒng)的聚合簽名模型不同,該模型中增加了密鑰認(rèn)證詢問(wèn)環(huán)節(jié),要求敵手證明在詢問(wèn)簽名諭言機(jī)和偽造過(guò)程中使用的非挑戰(zhàn)公鑰是正確生成的. 敵手A 需要提交相關(guān)非挑戰(zhàn)密鑰對(duì)給挑戰(zhàn)者B,B即可構(gòu)造除挑戰(zhàn)密鑰外的有序聚合簽名. 敵手的目標(biāo)是存在性偽造一個(gè)包含挑戰(zhàn)密鑰的有序聚合簽名,敵手的優(yōu)勢(shì)AdvA被定義為在下面游戲中獲勝的概率.

      初始化:挑戰(zhàn)者B 新建一個(gè)公鑰認(rèn)證列表C←φ,隨機(jī)生成一對(duì)密鑰(PK,SK),將挑戰(zhàn)公鑰PK 給定敵手A.

      認(rèn)證詢問(wèn):敵手A 提交密鑰對(duì)(PK′,SK′)以證明公鑰PK′的有效性,如果PK′是對(duì)應(yīng)SK′的有效公鑰,挑戰(zhàn)者B將PK′添加至列表C中.

      聚合簽名詢問(wèn):敵手A 適應(yīng)性地基于挑戰(zhàn)公鑰PK和其選擇的消息M進(jìn)行有序聚合簽名詢問(wèn),同時(shí)提供一個(gè)基于一系列消息M=(M1,M2,…,Mi-1)和對(duì)應(yīng)公鑰PK=(PK1,PK2,…,PKi-1)的有序聚合簽名σ. 首先,算法檢查簽名σ的有效性,其中對(duì)應(yīng)的每一個(gè)公鑰PKi∈C,挑戰(zhàn)公鑰PK不在公鑰序列PK中,如果以上都成立,則輸出一個(gè)由諭言機(jī)產(chǎn)生的新的簽名σ′=(SK,M,S,M,PK).

      偽造:敵手A 輸出i個(gè)不同的公鑰PK,這里的i至多為n,并且這里的公鑰長(zhǎng)度可以與詢問(wèn)階段的公鑰長(zhǎng)度不相等,但是其中必須要包含挑戰(zhàn)公鑰PK,A 同時(shí)輸出與公鑰序列對(duì)應(yīng)的消息序列M和一個(gè)基于這i個(gè)用戶的有序的聚合簽名σ,不失一般性,將PK1視為最里層的公鑰.

      敵手A 獲勝,當(dāng)且僅當(dāng)該有序聚合簽名σ是一個(gè)對(duì)應(yīng)于消息序列M和公鑰序列PK 的有效的有序聚合簽名,并且σ是非平凡的,即在偽造過(guò)程中用到的挑戰(zhàn)公鑰PK 必須出現(xiàn)在PK 序列中,對(duì)應(yīng)的簽名消息M必須在簽名詢問(wèn)過(guò)程中沒(méi)有被詢問(wèn)過(guò),基于挑戰(zhàn)公鑰的簽名可以在有序聚合簽名的任何位置.

      如果不存在t時(shí)間的敵手發(fā)起qC次認(rèn)證詢問(wèn)和qS次簽名詢問(wèn)后以超過(guò)ε的優(yōu)勢(shì)贏得以上游戲,則稱有序聚合簽名方案是(t,qC,qS,n,ε)安全的,其中n表示聚合簽名的長(zhǎng)度上界.

      3 基于區(qū)塊鏈的認(rèn)證管理機(jī)制

      3.1 基于區(qū)塊鏈認(rèn)證管理的事務(wù)結(jié)構(gòu)

      基于區(qū)塊鏈的認(rèn)證機(jī)制是對(duì)系統(tǒng)內(nèi)注冊(cè)用戶的身份合法性進(jìn)行鑒別,驗(yàn)證用戶身份信息和公鑰信息是否一致、有效的一個(gè)過(guò)程. 基本思想是在區(qū)塊鏈網(wǎng)絡(luò)中,允許用戶實(shí)體自主管理身份信息、創(chuàng)建自身公鑰信息和簽名他人的公鑰信息,通過(guò)有序聚合簽名合約可以將任意多個(gè)用戶簽名按順序壓縮為一個(gè)聚合簽名,并存儲(chǔ)于區(qū)塊鏈中. 當(dāng)需要對(duì)某一用戶的公鑰和其身份進(jìn)行驗(yàn)證的時(shí)候,僅需對(duì)單一的聚合簽名進(jìn)行驗(yàn)證即可達(dá)到對(duì)所有用戶簽名的驗(yàn)證的效果. 在本文的認(rèn)證機(jī)制中,以區(qū)塊鏈中事務(wù)的形式來(lái)進(jìn)行身份認(rèn)證管理,下面對(duì)認(rèn)證機(jī)制中的模塊進(jìn)行靜態(tài)描述.

      用戶:表示群智網(wǎng)絡(luò)中所有參與認(rèn)證的人、自組織或者智能體,是區(qū)塊鏈中相關(guān)數(shù)據(jù)的擁有者,可以發(fā)起針對(duì)各類(lèi)事務(wù)的請(qǐng)求,如簽名事務(wù)、撤銷(xiāo)事務(wù)等.

      錢(qián)包:作為基于區(qū)塊鏈認(rèn)證的管理端,由公鑰進(jìn)行標(biāo)識(shí),為用戶提供密鑰生成服務(wù)、證書(shū)生成和管理服務(wù)、單證書(shū)的簽名服務(wù)以及認(rèn)證相關(guān)事務(wù)創(chuàng)建,利用錢(qián)包可以將事務(wù)發(fā)布至區(qū)塊鏈或從區(qū)塊鏈上檢索相關(guān)事務(wù).

      地址:是用戶公鑰的哈希值,擁有相應(yīng)私鑰的用戶擁有該地址,使用地址來(lái)標(biāo)識(shí)機(jī)制中的所有用戶. 地址在區(qū)塊鏈網(wǎng)絡(luò)中是公開(kāi)共享的,可用于注冊(cè)證書(shū)和請(qǐng)求認(rèn)證.

      數(shù)據(jù)區(qū)塊:是區(qū)塊鏈網(wǎng)絡(luò)中的底層數(shù)據(jù)結(jié)構(gòu),由區(qū)塊頭和區(qū)塊體組成,區(qū)塊頭封裝了前一個(gè)區(qū)塊的地址、當(dāng)前區(qū)塊的目標(biāo)哈希值、當(dāng)前區(qū)塊的共識(shí)隨機(jī)數(shù)、Merkle 根、時(shí)間戳等信息. 區(qū)塊體存儲(chǔ)著區(qū)塊創(chuàng)建過(guò)程中的所有認(rèn)證事務(wù)數(shù)據(jù),區(qū)塊之間按時(shí)間順序形成固定的鏈?zhǔn)浇Y(jié)構(gòu). 由于區(qū)塊頭中包含了區(qū)塊體的Merkle 根和前一個(gè)區(qū)塊的哈希值,因此通過(guò)哈希運(yùn)算即可驗(yàn)證該區(qū)塊直至創(chuàng)世區(qū)塊的所有區(qū)塊是否被篡改.

      事務(wù)數(shù)據(jù):是基于區(qū)塊鏈的身份認(rèn)證集中存儲(chǔ)實(shí)際操作的相關(guān)數(shù)據(jù),通過(guò)智能合約事務(wù)來(lái)管理證書(shū)、公鑰、認(rèn)證簽名的發(fā)布、聚合簽名的生成以及證書(shū)或者簽名的撤銷(xiāo).

      P2P 網(wǎng)絡(luò):網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)處于對(duì)等的地位,既是資源和服務(wù)的使用者又是提供者,沒(méi)有主、從之分,整個(gè)網(wǎng)絡(luò)中不存在中心節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都可對(duì)任意對(duì)等節(jié)點(diǎn)做出響應(yīng),提供計(jì)算資源、存儲(chǔ)資源等.

      智能合約:存儲(chǔ)在區(qū)塊鏈上的腳本程序,能夠在網(wǎng)絡(luò)節(jié)點(diǎn)上自動(dòng)運(yùn)行. 作為區(qū)塊鏈2.0 的核心特性,智能合約可以在去中心的環(huán)境下自動(dòng)按照程序設(shè)定規(guī)則完成一系列安全、可信、公開(kāi)的操作.

      3.2 基于區(qū)塊鏈的身份認(rèn)證框架和工作流程

      本文考慮群智網(wǎng)絡(luò)中終端節(jié)點(diǎn)物理位置、節(jié)點(diǎn)身份、環(huán)境屬性等因素的影響,提出一個(gè)高效的適用于群智網(wǎng)絡(luò)的認(rèn)證機(jī)制. 機(jī)制將區(qū)塊鏈作為一個(gè)去中心化的認(rèn)證數(shù)據(jù)庫(kù),利用其分布式及鏈?zhǔn)浇Y(jié)構(gòu)存儲(chǔ)事務(wù)數(shù)據(jù),節(jié)點(diǎn)通過(guò)發(fā)布身份和公鑰的綁定信息實(shí)現(xiàn)證書(shū)的生成,將密鑰校驗(yàn)機(jī)制、身份認(rèn)證機(jī)制和密鑰撤銷(xiāo)機(jī)制都寫(xiě)入智能合約,由合約自主判定完成,具體過(guò)程如圖3所示.

      圖3 基于區(qū)塊鏈的身份認(rèn)證機(jī)制

      本文以區(qū)塊鏈中的事務(wù)為載體對(duì)身份認(rèn)證進(jìn)行管理. 認(rèn)證機(jī)制管理中包括證書(shū)信息管理和簽名信息管理,分別以證書(shū)類(lèi)事務(wù)和簽名類(lèi)事務(wù)的形式發(fā)布至區(qū)塊鏈中. 證書(shū)信息由節(jié)點(diǎn)自身通過(guò)綁定身份屬性信息和公鑰信息產(chǎn)生,證書(shū)被發(fā)布到區(qū)塊鏈后,可以進(jìn)行更新、簽名、撤銷(xiāo)等操作,其歷史操作記錄都會(huì)被區(qū)塊鏈永久保存,以便于審計(jì)和追溯. 交易事務(wù)中僅包含事務(wù)標(biāo)識(shí)符、公鑰信息、身份屬性信息和簽名信息,并沒(méi)有包含占用存儲(chǔ)資源很多的其他信息. 同時(shí),提出使用有序聚合簽名方案來(lái)提高認(rèn)證管理機(jī)制中簽名驗(yàn)證效率,節(jié)省傳輸帶寬和存儲(chǔ)空間. 表1 描述了認(rèn)證機(jī)制中的相關(guān)符號(hào).

      表1 符號(hào)描述

      算法1 身份綁定輸入:● IDB:當(dāng)前證書(shū)事務(wù)標(biāo)識(shí)符.● PKB:證書(shū)節(jié)點(diǎn)自身公鑰.● SKB:證書(shū)節(jié)點(diǎn)自身私鑰.● Attributes:證書(shū)節(jié)點(diǎn)身份屬性信息.具體過(guò)程:1. 調(diào)用驗(yàn)證合約SC.Validation校驗(yàn)公鑰PKB格式的正確性.2. 建立節(jié)點(diǎn)PKB和Attributes的綁定關(guān)系,生成證書(shū)Cert.Cert=(PKB,Attributes,Timestamp)3. 對(duì)證書(shū)進(jìn)行簽名,得到σ=SignSKB(Cert).4. 通過(guò)證書(shū)事務(wù)發(fā)布至區(qū)塊鏈Tx=(IDB,Cert,σ).輸出:證書(shū)事務(wù)Tx.

      Step1(密鑰生成)終端節(jié)點(diǎn)通過(guò)自身的區(qū)塊鏈錢(qián)包生成密鑰對(duì)(PK,SK),對(duì)外公布公鑰PK,私鑰SK 秘密保存. 節(jié)點(diǎn)可以通過(guò)公鑰的身份屬性,遍歷整個(gè)區(qū)塊鏈去檢索公鑰.

      Step2(身份綁定)首先,由SC.Validation 驗(yàn)證合約校驗(yàn)公鑰格式的正確性. 驗(yàn)證內(nèi)容有格式標(biāo)準(zhǔn)、密鑰長(zhǎng)度、密鑰期限、是否撤銷(xiāo)等. 當(dāng)公鑰格式驗(yàn)證通過(guò)之后便可以調(diào)用身份綁定合約(SC.Binding)將節(jié)點(diǎn)的相關(guān)身份屬性信息Attributes 與公鑰PK 綁定,建立節(jié)點(diǎn)PK 和Attributes 的綁定關(guān)系證書(shū)Cert,并將Cert 發(fā)布至區(qū)塊鏈中保存,具體過(guò)程見(jiàn)算法1.

      Step3(證書(shū)簽名)允許滿足證書(shū)簽名條件的可信節(jié)點(diǎn)對(duì)其信任的節(jié)點(diǎn)證書(shū)進(jìn)行簽名操作,并將簽名結(jié)果上傳至區(qū)塊鏈中,從而向其他節(jié)點(diǎn)證明自己對(duì)該證書(shū)中公鑰有效性的認(rèn)可. 同時(shí),節(jié)點(diǎn)可以通過(guò)調(diào)用密鑰撤銷(xiāo)合約SC.RevokeSign對(duì)自身的簽名進(jìn)行撤銷(xiāo).

      Step4(聚合簽名)考慮在實(shí)際應(yīng)用中存在多用戶對(duì)證書(shū)的認(rèn)證簽名的情況,使用有序聚合簽名技術(shù)將多個(gè)認(rèn)證簽名壓縮為一個(gè)簽名,實(shí)現(xiàn)簽名壓縮,減小簽名的存儲(chǔ)空間. 聚合簽名的長(zhǎng)度與用戶數(shù)無(wú)關(guān),更適用于帶寬較低的網(wǎng)絡(luò)環(huán)境,具體過(guò)程見(jiàn)算法2.

      Step5(身份認(rèn)證)節(jié)點(diǎn)通過(guò)調(diào)用身份認(rèn)證合約SC.Authentication 驗(yàn)證聚合簽名,從而判斷驗(yàn)證節(jié)點(diǎn)公鑰證書(shū)的有效性,具體過(guò)程見(jiàn)算法3.

      認(rèn)證機(jī)制允許節(jié)點(diǎn)在區(qū)塊鏈中發(fā)布簽名撤銷(xiāo)證書(shū)來(lái)撤銷(xiāo)自己的簽名,同時(shí)節(jié)點(diǎn)可以通過(guò)調(diào)用密鑰撤銷(xiāo)合約SC.RevokeKey 對(duì)自身的公鑰進(jìn)行撤銷(xiāo). 秘鑰撤銷(xiāo)分為節(jié)點(diǎn)主動(dòng)撤銷(xiāo)和過(guò)期撤銷(xiāo)兩種模式:主動(dòng)撤銷(xiāo)是通過(guò)調(diào)用密鑰撤銷(xiāo)合約,節(jié)點(diǎn)向區(qū)塊鏈中發(fā)送密鑰撤銷(xiāo)證書(shū),實(shí)現(xiàn)密鑰撤銷(xiāo);過(guò)期撤銷(xiāo)則根據(jù)密鑰的時(shí)間戳設(shè)定密鑰的有效期,到期后自動(dòng)撤銷(xiāo). 區(qū)塊鏈作為一個(gè)去中心化的底層存儲(chǔ)數(shù)據(jù)庫(kù),用于記錄公鑰、證書(shū)、簽名等相關(guān)信息. 利用區(qū)塊鏈,用戶擁有對(duì)自己身份的自主控制.

      算法2 聚合簽名輸入:● IDS:當(dāng)前簽名事務(wù)標(biāo)識(shí)符.● PKi:簽名節(jié)點(diǎn)自身公鑰.● Certi:簽名節(jié)點(diǎn)所簽證書(shū).● σi:節(jié)點(diǎn)對(duì)證書(shū)的簽名.具體過(guò)程:1. 通過(guò)區(qū)塊鏈獲取到相關(guān)簽名元組(PKi,Certi,σi).2. 通過(guò)有序聚合簽名算法AggS(·)計(jì)算得到聚合簽名σ*.σ*=AggS(PK1,PK2,…,PK?,Cert1,Cert2,…,Cert?,σ1,σ2,…,σ?)3. 通過(guò)簽名事務(wù)發(fā)布至區(qū)塊鏈Tx=(IDS,σ*,Timestamp).輸出:簽名事務(wù)Tx.

      算法3 身份認(rèn)證輸入:● σ*: 聚合簽名.● PKi:任意簽名節(jié)點(diǎn)公鑰.具體過(guò)程:1. 通過(guò)區(qū)塊鏈獲取到相關(guān)證書(shū)的聚合簽名σ*.2. 通過(guò)調(diào)用身份認(rèn)證合約SC.Authentication的聚合驗(yàn)證算法AggV判定證書(shū)簽名的有效性.輸出:AggV驗(yàn)證通過(guò)輸出1,否則輸出0.

      4 有序聚合簽名方案

      4.1 方案介紹

      為了能夠提高基于區(qū)塊鏈的認(rèn)證管理機(jī)制中的簽名驗(yàn)證效率,節(jié)省傳輸帶寬和存儲(chǔ)空間,本文基于BLS簽名方案提出了一個(gè)新的有序聚合簽名方案. 方案中簽名由兩個(gè)群元素組成,分別記為S1和S2,其中S2是對(duì)簽名方案中隨機(jī)數(shù)的承諾,當(dāng)一個(gè)簽名者想要在一個(gè)有序聚合簽名(S1,S2)中添加他對(duì)某個(gè)消息的簽名時(shí),他需要將自己計(jì)算的部分簽名與S1相乘,同時(shí)更新計(jì)算的隨機(jī)數(shù). 方案中選擇階為素?cái)?shù)q(q>2k)并且k為安全參數(shù)的循環(huán)群G,g為群G的一個(gè)生成元,用t來(lái)表示時(shí)間戳,方案采用了一個(gè)抗碰撞的哈希函數(shù)H1:{0,1}*×{0,1}*→G.

      密鑰生成算法:算法隨機(jī)選擇x∈Z*q,計(jì)算U=gx,用戶的公鑰PK=U,私鑰SK=x.

      聚合簽名算法:用戶輸入私鑰SK 和一個(gè)待簽名的消息M*∈{0,1}*,同時(shí)輸入一個(gè)現(xiàn)有的基于消息序列M=(M1,M2,…,Mi) 和對(duì)應(yīng)公鑰序列PK=(PK1,PK2,…,PKi)的有序聚合簽名σ′=(S′1,S′2),算法首先利用下面的聚合驗(yàn)證算法驗(yàn)證簽名σ′的有效性. 如果簽名驗(yàn)證無(wú)效,則算法終止并退出. 如果簽名驗(yàn)證有效,假設(shè)|PK|=|M|=?,對(duì)于每一個(gè)i(1 ≤i≤?),M[i]與PK[i]相對(duì)應(yīng),其中PK[i]=Ui=gxi∈G,算法首先計(jì)算h?+1=H1(M*,t),然后計(jì)算w1=和w2=S′2,其中有序聚合簽名元組S′1=,S′2=gr.

      計(jì)算結(jié)果(w1,w2) 是消息M∥M*基于公鑰PK ∥PK的一個(gè)有效簽名,其中w2=S′2=gr,但是簽名需要重新增加隨機(jī)性,選擇一個(gè)隨機(jī)的r′∈Z*q計(jì)算S1=和S2=w2·gr′=gr′+r,這里的x?+1即當(dāng)前用戶私鑰.

      顯然,σ=(S1,S2)是一個(gè)基于消息序列M∥M*,對(duì)應(yīng)公鑰PK ∥PK 和隨機(jī)數(shù)r+r′的一個(gè)有效的有序聚合簽名,算法輸出σ=(S1,S2).

      聚合簽名驗(yàn)證算法:輸入一個(gè)公鑰序列PK、消息序列M以及一個(gè)對(duì)應(yīng)的有序聚合簽名σ=(S1,S2). 如果任意一個(gè)公鑰在PK 中出現(xiàn)了兩次,或者任意一個(gè)PK中的公鑰沒(méi)有被驗(yàn)證,又或者|PK|≠|(zhì)M|,則輸出無(wú)效并且終止. 否則,設(shè)|PK|=?,當(dāng)?=0,則輸出有效,其中S1=S2=1. 當(dāng)1 ≤i≤?,驗(yàn)證等式e(S1,g)·e(hi,Ui)是否成立,如果等式成立則輸出有效,否則輸出無(wú)效.

      4.2 安全性證明

      定理1本文有序聚合簽名方案是(t,qC,qS,n,ε)不可偽造的,當(dāng)且僅當(dāng)BLS 簽名方案是(t′,q′,ε′)不可偽造的,其中t′=t+O(qC+nqS+n),q′=qS,ε′=ε.

      證明本文的安全性證明基于文獻(xiàn)[11]提出的有序聚合認(rèn)證密鑰模型,與傳統(tǒng)的聚合簽名模型不同,該模型中增加了密鑰認(rèn)證詢問(wèn)環(huán)節(jié),要求敵手證明在簽名詢問(wèn)和偽造過(guò)程中使用的非挑戰(zhàn)公鑰是正確生成的. 敵手A 需要提交相關(guān)非挑戰(zhàn)密鑰對(duì)給挑戰(zhàn)者B,B即可構(gòu)造除挑戰(zhàn)密鑰外的有序聚合簽名. 敵手A 的目標(biāo)是存在性地偽造一個(gè)包含挑戰(zhàn)密鑰的有序聚合簽名. 證畢

      假設(shè)存在一個(gè)敵手A 成功偽造聚合簽名的優(yōu)勢(shì)為ε,構(gòu)造一個(gè)挑戰(zhàn)者B,通過(guò)調(diào)用敵手A 的能力來(lái)偽造BLS 簽名. 給定挑戰(zhàn)BLS 簽名的公鑰PK*=U*=gx*,挑戰(zhàn)者B與敵手A的交互過(guò)程如圖4所示.

      圖4 方案的安全性證明思路

      初始化:挑戰(zhàn)者B 新建一個(gè)公鑰認(rèn)證列表C←φ,并將挑戰(zhàn)公鑰PK*發(fā)送給敵手A.

      認(rèn)證詢問(wèn):敵手A 提交一系列公鑰進(jìn)行認(rèn)證,為了證明這些公鑰的有效性,A同時(shí)提交這些公鑰對(duì)應(yīng)的私鑰,挑戰(zhàn)者B檢查公私鑰對(duì)的有效性,如果有效,則將密鑰對(duì)記錄在列表C中.

      聚合簽名詢問(wèn):敵手A基于挑戰(zhàn)公鑰PK*和其選擇的消息M進(jìn)行有序聚合簽名詢問(wèn),同時(shí)提供一個(gè)基于消息序列M和對(duì)應(yīng)的公鑰序列PK 的有序聚合簽名σ'.首先,挑戰(zhàn)者B 檢查簽名σ'的有效性,確保其中對(duì)應(yīng)的每一個(gè)公鑰PKi∈C,并且PK*不在公鑰序列PK 中,|PK|<n. 如果上述任何情況不成立,則B 返回失??;否則,B 詢問(wèn)自己的簽名諭言機(jī)得到消息M基于公鑰PK*的一個(gè)簽名σ,隨后,B利用本文的有序聚合簽名算法把基于PK和M的有序聚合簽名σ′添加至σ中. 這是因?yàn)锽掌握密鑰認(rèn)證列表C,即知道每一個(gè)非挑戰(zhàn)公鑰PK[i]對(duì)應(yīng)的私鑰. 所以,輸出結(jié)果是一個(gè)基于M∥M和對(duì)應(yīng)公鑰PK ∥PK*的有序聚合簽名.

      偽造:A 輸出一個(gè)基于新的消息序列M和對(duì)應(yīng)公鑰序列PK 的偽造有序聚合簽名σ*=(S*1,S*2),該偽造必須是非平凡的,即挑戰(zhàn)公鑰PK*必須出現(xiàn)在PK 中,并且對(duì)應(yīng)的消息M*∈M沒(méi)有出現(xiàn)在A 的聚合簽名詢問(wèn)過(guò)程中. 該偽造的聚合簽名必須能夠通過(guò)聚合簽名驗(yàn)證算法,并且除了挑戰(zhàn)公鑰外,其余公鑰必須存在于密鑰認(rèn)證列表C中.

      由于方案的聚合簽名驗(yàn)證算法沒(méi)有順序的限制,不失一般性,將挑戰(zhàn)公鑰PK*和對(duì)應(yīng)消息M*的索引序號(hào) 設(shè) 定 為1. 設(shè) 定|PK|=|M|=?,對(duì) 于1 ≤i≤?,PK[i]=Ui∈G,M[i]∈{0,1}*,則PK*=PK[1]=U1,M*=M[1].

      挑戰(zhàn)者B根據(jù)以上信息計(jì)算一個(gè)基于單個(gè)消息M*和對(duì)應(yīng)挑戰(zhàn)公鑰PK*的簽名(S1,S2). 具體計(jì)算方式為

      隨后,挑戰(zhàn)者B驗(yàn)證如下:

      通過(guò)上述計(jì)算可以看出(S1,S2)是一個(gè)基于單個(gè)消息M*和對(duì)應(yīng)挑戰(zhàn)公鑰PK*的有效簽名,其中S1即BLS簽名元組,S2是對(duì)簽名中隨機(jī)數(shù)的承諾. 因?yàn)閿呈諥 沒(méi)有對(duì)M*發(fā)起聚合簽名詢問(wèn),挑戰(zhàn)者B 也就沒(méi)有發(fā)起對(duì)M*的簽名詢問(wèn),所以簽名σ=(S1,S2)是一個(gè)非平凡的基于BLS的偽造簽名. 挑戰(zhàn)者B返回結(jié)果并終止游戲.

      通過(guò)以上游戲過(guò)程可以看出,當(dāng)敵手A 偽造成功時(shí),挑戰(zhàn)者B也同樣成功,即ε′=ε. 挑戰(zhàn)者B發(fā)起的簽名詢問(wèn)次數(shù)與敵手A 發(fā)起的有序聚合簽名次數(shù)一致,即q′=qS. 挑戰(zhàn)者B 的運(yùn)行時(shí)間是敵手A 的運(yùn)行時(shí)間加上處理A 的查詢和計(jì)算開(kāi)銷(xiāo)時(shí)間,每一次的密鑰認(rèn)證查詢可以在O(1)時(shí)間內(nèi)處理完成,每一次聚合簽名查詢可以在O(n)時(shí)間內(nèi)完成,最終的結(jié)果可以通過(guò)A 在O(n)時(shí)間內(nèi)的偽造得到,即t′=t+O(qC+nqS+n).

      4.3 性能及效率分析

      4.3.1 去中心化

      本文方案中,群智網(wǎng)絡(luò)中的終端節(jié)點(diǎn)通過(guò)區(qū)塊鏈客戶端產(chǎn)生密鑰對(duì)(PK,SK),通過(guò)身份綁定合約建立節(jié)點(diǎn)PK 和ID 的證書(shū)Cert,并將Cert 發(fā)布至區(qū)塊鏈中保存,證書(shū)Cert 的有效性通過(guò)節(jié)點(diǎn)的有序聚合簽名進(jìn)行擔(dān)保,整個(gè)過(guò)程中不存在可信第三方的參與. 區(qū)塊鏈作為一個(gè)去中心化的底層存儲(chǔ)數(shù)據(jù)庫(kù)保證認(rèn)證過(guò)程公開(kāi)、透明、可審計(jì).

      4.3.2 公開(kāi)驗(yàn)證性

      本文方案中,當(dāng)簽名者與接收者關(guān)于簽名的真實(shí)性存在爭(zhēng)議,需公開(kāi)驗(yàn)證發(fā)送者身份時(shí),接收者可以將公開(kāi)的消息簽名元組(PK,M,σ=(S1,S2))發(fā)送給任意的可信第三方,第三方只需驗(yàn)證等式e(S1,g)·(hi,Ui)是否成立,無(wú)需任何私有信息即可完成簽名的有效性驗(yàn)證. 因此,本文方案具有公開(kāi)驗(yàn)證性.

      4.3.3 不可否認(rèn)性

      由定理1證明可知,本文有序聚合簽名方案對(duì)敵手具有不可偽造性,同時(shí),由公開(kāi)驗(yàn)證性可知,任何可信第三方均可公開(kāi)驗(yàn)證簽名者的身份. 所以,本文有序聚合簽名方案具有不可否認(rèn)性.

      4.3.4 效率分析

      將本文方案與現(xiàn)有相關(guān)方案[10,11,13~15]的計(jì)算效率進(jìn)行比較. 表2 中相關(guān)符號(hào)的具體含義如下:n代表參與者數(shù)量上界;EB表示雙線性映射運(yùn)算;EM表示群上的乘法運(yùn)算;EE表示指數(shù)運(yùn)算;LG表示群中元素的長(zhǎng)度;LB表示雙線性對(duì)的長(zhǎng)度.

      表2 效率比較結(jié)果

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

      本文提出了一種面向群智網(wǎng)絡(luò)的基于區(qū)塊鏈的身份認(rèn)證機(jī)制,并構(gòu)造了一個(gè)新的有序聚合簽名方案,分析了方案的安全屬性. 本文將區(qū)塊鏈技術(shù)與有序聚合簽名技術(shù)相結(jié)合,借助區(qū)塊鏈所具有的不可篡改、可審計(jì)等特點(diǎn),實(shí)現(xiàn)了對(duì)公鑰證書(shū)的自動(dòng)化管理,認(rèn)證過(guò)程更加靈活. 證書(shū)簽發(fā)和公鑰發(fā)布以公開(kāi)、透明的形式存放在區(qū)塊鏈中,用戶可以對(duì)其進(jìn)行查詢,解決了證書(shū)簽發(fā)的不透明問(wèn)題.

      本文提出的身份認(rèn)證機(jī)制只給出了基本的認(rèn)證流程框架,關(guān)于用戶身份或者屬性信息的隱私性保護(hù)沒(méi)有涉及. 在接下來(lái)的工作中,考慮通過(guò)零知識(shí)證明等技術(shù)實(shí)現(xiàn)匿名認(rèn)證,達(dá)到對(duì)終端用戶的安全管理和隱私保護(hù).

      猜你喜歡
      敵手公鑰密鑰
      探索企業(yè)創(chuàng)新密鑰
      密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
      不帶著怒氣做任何事
      一種基于混沌的公鑰加密方案
      一種對(duì)稱密鑰的密鑰管理方法及系統(tǒng)
      基于ECC的智能家居密鑰管理機(jī)制的實(shí)現(xiàn)
      HES:一種更小公鑰的同態(tài)加密算法
      SM2橢圓曲線公鑰密碼算法綜述
      基于格的公鑰加密與證書(shū)基加密
      不帶著怒氣作戰(zhàn)
      阳春市| 融水| 沙洋县| 盐城市| 中方县| 锡林浩特市| 资源县| 正镶白旗| 博兴县| 仲巴县| 谢通门县| 峨边| 英吉沙县| 吕梁市| 安吉县| 驻马店市| 定安县| 万山特区| 融水| 永川市| 周至县| 灵武市| 新和县| 苗栗县| 静乐县| 泰宁县| 长海县| 高阳县| 峨山| 莎车县| 黎平县| 古丈县| 阜阳市| 巨鹿县| 榕江县| 永和县| 犍为县| 连江县| 五家渠市| 佛冈县| 镶黄旗|