国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于群簽名和同態(tài)加密的聯(lián)盟鏈雙重隱私保護方法

2022-01-19 08:49:14刁一晴葉阿勇張嬌美鄧慧娜程保容
計算機研究與發(fā)展 2022年1期
關(guān)鍵詞:同態(tài)合法性賬戶

刁一晴 葉阿勇 張嬌美 鄧慧娜 張 強 程保容

(福建師范大學(xué)數(shù)學(xué)與信息學(xué)院 福州 350117)(福建省網(wǎng)絡(luò)安全與密碼技術(shù)重點實驗室(福建師范大學(xué)) 福州 350117)

2008年提出的區(qū)塊鏈?zhǔn)且环N分布式的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),它具有去中心化、不可篡改、不可偽造等眾多優(yōu)點[1],被認為是金融服務(wù)基礎(chǔ)設(shè)施的未來[2],在金融[3]、醫(yī)療數(shù)據(jù)共享[4]、物流監(jiān)管[5]等領(lǐng)域得到了極為廣泛的應(yīng)用.區(qū)塊鏈的應(yīng)用模式目前主要分為3類:公有鏈、聯(lián)盟鏈和私有鏈.其中,公有鏈允許節(jié)點自由進出,而聯(lián)盟鏈和私有鏈需要授權(quán)與驗證后方可讓節(jié)點加入[1].聯(lián)盟鏈由多個機構(gòu)組成的聯(lián)盟構(gòu)成,聯(lián)盟指定的成員進行賬本的生成、共識、維護[6].聯(lián)盟鏈具有處理事務(wù)速度快等優(yōu)點,因此,廣泛應(yīng)用在商品溯源、供應(yīng)鏈管理等方向.商品溯源中利用區(qū)塊鏈實現(xiàn)多方共同記錄溯源信息,讓消費者可對商品實現(xiàn)溯源查詢和驗真;而供應(yīng)鏈可以使企業(yè)之間共享交易數(shù)據(jù),傳遞企業(yè)信用,解決企業(yè)間信任問題,為企業(yè)相互合作提供保障[7].

然而,在區(qū)塊鏈的實際應(yīng)用中,由于賬本的公開透明,使得區(qū)塊鏈中的礦工及驗證節(jié)點可以迅速對交易合法性進行驗證,但同時用戶的身份及交易細節(jié)皆向所有成員公開,因此,隱私保護問題逐漸成為新的挑戰(zhàn).在區(qū)塊鏈中,隱私保護問題主要分為2類:身份隱私和交易金額隱私問題.用戶希望僅通過鏈上存有的公開數(shù)據(jù)內(nèi)容無法獲取與其身份相關(guān)的任何有用信息;交易雙方為保護自身利益并不想交易的具體金額公開,這就使得交易金額的隱私保護極為重要[8].

針對上述隱私問題,學(xué)術(shù)界已展開研究.例如,2013年Maxwell提出了Coinjoin[9]方案,該方案中被認為是第1個去中心的混幣方案,并且在隱藏輸入輸出地址映射方面取得了很好的效果;但是混幣方案在本質(zhì)上僅保護了用戶的身份匿名,其交易的金額仍然透明;達世幣(Dash)[10]也利用了混幣的思想,隱藏交易輸入輸出之間的聯(lián)系,但混幣過程中需要額外的收費.除混幣外,零知識證明也被廣泛應(yīng)用于區(qū)塊鏈隱私保護中.如Zerocash[11]引入非交互式零知識證明來保護交易雙方的地址和交易金額,并被普遍認為是當(dāng)前匿名性和隱私保護程度最高的電子貨幣;但其完全依賴非交互式零知識證明,該方案效率較低.利用環(huán)簽名進行隱私保護的門羅幣[12]實現(xiàn)了對用戶身份隱私的保護,然而其并未強制保護交易金額的隱私.機密交易由Maxwell[13]在2015年首次提出,該方案基于Pedersen承諾,利用其同態(tài)性向礦工證明交易輸入輸出的合法性,但其仍僅實現(xiàn)交易金額的保護,用戶對身份匿名的需求無法滿足.Dumb Account[14]方案利用同態(tài)加密和零知識證明來實現(xiàn)交易金額的匿名,但該方案仍無法滿足交易雙方身份隱私的需要;王子鈺等人[15]結(jié)合混幣和加密交易的思想,提出了基于聚合簽名和機密交易的全匿名區(qū)塊鏈方案,該方案可以實現(xiàn)交易雙方、交易金額3者的隱私保護,但該方案仍然面向比特幣,無法適用于聯(lián)盟鏈;楊亞濤等人[16]面向聯(lián)盟鏈提出了基于SM9算法可證明安全的區(qū)塊鏈隱私保護方案,利用群簽名對交易雙方的身份隱私進行保護,但該方案無法實現(xiàn)交易金額的隱私保護.

同態(tài)加密是一種可以對密文進行計算的加密技術(shù),其中部分同態(tài)加密由于構(gòu)造簡單、執(zhí)行效率較高,所以使用較廣.當(dāng)前較為常用的半同態(tài)加密有RSA同態(tài)加密、ElGamal同態(tài)加密以及Paillier同態(tài)加密.但RSA與ElGamal同態(tài)加密為乘同態(tài),無法滿足驗證交易金額、賬戶金額和交易后賬戶余額的合法性,因此選用具有加同態(tài)特點的Paillier算法.

群簽名允許每一位群成員簽署,驗證者只可驗證該簽名合法性以及其是否屬于群成員所簽,但無法得知簽名具體成員身份,且在發(fā)生糾紛時,群管理員可以實現(xiàn)簽名成員身份的追溯.群簽名獨特的特點,使其可以在可監(jiān)管的條件下實現(xiàn)身份的匿名.且群簽名中群的概念可與聯(lián)盟鏈相契合,可在用戶進入聯(lián)盟鏈時進行身份的認證與管理.

基于上述分析,本文面向聯(lián)盟鏈和基于賬戶的區(qū)塊鏈模型,提出了基于群簽名和同態(tài)加密的區(qū)塊鏈雙重隱私保護方法,本文貢獻有4個方面:

1) 提出部分身份匿名的概念,為基于賬戶模型的區(qū)塊鏈提供了用戶身份的匿名保護.其中,“部分身份匿名”指用戶身份對其他次要節(jié)點匿名,但對于主要節(jié)點不匿名(可驗證).例如在競拍等應(yīng)用場景中,次要節(jié)點之間為競爭關(guān)系,因此,引入部分身份匿名機制,實現(xiàn)身份及交易金額等交易信息既滿足可驗證又不暴露給競爭者.

2) 基于群簽名和Paillier同態(tài)加密算法實現(xiàn)身份與交易金額的雙重隱私保護.本方案在滿足交易合法性可驗證的前提下,實現(xiàn)雙重隱私保護,且利用群簽名的特點,實現(xiàn)交易可追溯,保證聯(lián)盟鏈中用戶的合法權(quán)益.

3) 提出主要節(jié)點的4步驗證方法,通過對群簽名、賬戶所屬權(quán)和交易金額合法性的驗證,實現(xiàn)主要節(jié)點對交易合法性的監(jiān)管.4步緊湊的驗證使得本方案可以抵抗公鑰替換攻擊以及篡改攻擊,方案的安全性較高.

4) 提出新的區(qū)塊交易信息寫入結(jié)構(gòu),使得單個交易事務(wù)占區(qū)塊長度降低,提高區(qū)塊的利用率.

1 預(yù)備知識

1.1 聯(lián)盟鏈

區(qū)塊鏈?zhǔn)菑谋忍貛诺讓蛹夹g(shù)衍生出來的新型技術(shù)體系,隨著區(qū)塊鏈技術(shù)的發(fā)展,區(qū)塊鏈的應(yīng)用場景從公有鏈衍生到聯(lián)盟鏈和私有鏈[17].公有鏈完全公開,用戶可自由加入或退出,具有完全去中心化的特點;私有鏈則是完全私有的一種區(qū)塊鏈,只有內(nèi)部人員可以使用;聯(lián)盟鏈介于公有鏈與私有鏈之間,多由線下的企業(yè)等聯(lián)盟組成,節(jié)點的進入與退出需要滿足一定條件并得到許可,同時,聯(lián)盟鏈可以完全公開也可以僅由聯(lián)盟內(nèi)部人員訪問[1,6].

本方案以聯(lián)盟鏈為背景,將聯(lián)盟鏈中的節(jié)點分為主要節(jié)點和次要節(jié)點,主要節(jié)點負責(zé)維護區(qū)塊鏈參數(shù)以及歷史數(shù)據(jù)和驗證交易合法性;次要節(jié)點持有各自的簽名密鑰對,次要節(jié)點為群簽名中的用戶,且相互之間可進行交易,完成區(qū)塊鏈中點對點交易信息傳遞的流程.交易商定結(jié)束,需對交易信息進行廣播,將交易信息寫入新區(qū)塊并由各個主要節(jié)點確認后即為生效.

1.2 基于賬戶的區(qū)塊鏈數(shù)據(jù)模型

比特幣區(qū)塊鏈采用基于交易的數(shù)據(jù)模型,在此模型中,交易通過Hash指針與上筆交易構(gòu)成多條以交易為節(jié)點的鏈條,實現(xiàn)通過鏈上數(shù)據(jù)對每筆交易進行向前追溯,礦工通過查詢UTXO(未花費交易)池實現(xiàn)對交易合法性的驗證[1].基于賬戶的信息模型以鍵值對的形式存儲數(shù)據(jù),維護賬戶當(dāng)前的有效余額,通過執(zhí)行交易來不斷更新賬戶數(shù)據(jù)[6].

UTXO雖可快速驗證,但無法快速查詢賬戶余額;并且一個用戶可能擁有多個地址,每個地址上又擁有多筆交易產(chǎn)生的UTXO,要驗證一個賬戶余額,需要驗證其所有地址上所有UTXO的來源[18],這使得聯(lián)盟鏈的多種應(yīng)用場景無法契合該模型.相比于UTXO,基于賬戶模型與銀行的儲蓄賬戶類似,更直觀和高效[6].因此,為了支持更多的應(yīng)用,以太坊、超級賬本等區(qū)塊鏈平臺采用了基于賬戶的模型.

圖1為以太坊所使用的賬戶模型,其中Address為賬戶地址,Balance為賬戶余額,Nonce為該賬戶交易的計數(shù)防止雙花,CodeHash為合約代碼中的Hash值,StorageRoot為合約狀態(tài)數(shù)據(jù)的樹根.

Fig.1 Ethereum account model

1.3 Paillier同態(tài)加密

Paillier同態(tài)加密算法,由Paillier[19]于1999年提出,該算法基于復(fù)合剩余類困難問題,具有加同態(tài)性質(zhì).

1) 密鑰生成

任意選取大素數(shù)p,q,計算n=p×q和λ=lcm(p-1,q-1);任意選取整數(shù)且滿足gcd(L(gλmodn2),n)=1,則公鑰為pkP=(n,g),私鑰為skP=(p,q).

2) 加密

任意選取r

3) 解密

4) 加同態(tài)

1.4 零知識證明

零知識證明主要用于證明加密數(shù)據(jù)的范圍,本文所提方案僅利用區(qū)間證明[20]來確保交易金額大于0.

設(shè)E=E(x,r)=gxhrmodn是一個FO承諾,該承諾來保證x∈(a,b),其中r是從{-2sn+1,…,2sn-1}中選取的隨機數(shù);

證明者Prover通過下列步驟的FO承諾,欲使驗證者Verifier在不知道x值的情況下確信x∈(a,b).

定義協(xié)議PK{x,r:E=gxhrmodn∧x∈(a,b)}如下:

步驟1.令y=x-a.

Prover將(u,E2,E3,F)發(fā)送給Verifier.

步驟3.Verifier計算

E1=E(x,r)/ga=gyhrmodn,U=gu/E3=gωh-rα2-r1α-r2modn.

步驟4.Prover和Verifier分別計算

PK3{ω,r3:F=gωhr3modn∧ω∈[-2t+l+s+T,2t+l+s+T]}.

步驟5.Verifier檢查PKi(i=1,2,3)和u>2t+l+s+T的正確性,來相信x>a.

同理,令y=b-x,重復(fù)步驟2~步驟5可以證明x

證畢.

1.5 群簽名

群簽名的概念最初來自于Chaum等人[21],它允許群中任一成員代表群進行簽名,而除群管理員外的驗證人員只能驗證此簽名來自于該群,但不能精確到該簽名由哪一位群成員進行簽署.

本文參照仲紅等人[22]提出的高效群簽名方案,該方案分為6個算法:初始化、成員加入、成員撤銷、簽名、驗證、追蹤.該方案在文獻[22]中有詳細描述,在此不再贅述.需要提到的是,本文將群簽名中群管理員的權(quán)力分離,分為頒發(fā)者和打開者Opener,這對文獻[22]群簽名方案的算法的效率無影響,頒發(fā)者用以生成群簽名密鑰對,打開者保存用戶組表且用以追蹤用戶身份.

2 方案設(shè)計

本文面向基于賬戶模型的聯(lián)盟區(qū)塊鏈.不同于UTXO模型,基于賬戶模型中,主要節(jié)點對交易合法性驗證時需找到雙方賬戶進行金額增減,因此實現(xiàn)節(jié)點身份的完全匿名較為困難.且在聯(lián)盟鏈的實際應(yīng)用中,我們將主要節(jié)點作為驗證節(jié)點且其身份為聯(lián)盟中的監(jiān)管部門,屬于可信任節(jié)點,因此我們提出了本文的部分身份匿名和交易金額的區(qū)塊鏈隱私保護方案.

2.1 隱私保護目標(biāo)

聯(lián)盟鏈常用于拍賣、競標(biāo)等場景,參與拍賣競標(biāo)的用戶相互競爭,在這些場景中我們可以看出,對于共同參與競爭的節(jié)點,各節(jié)點有匿名并對交易進行隱私保護的需求,但對于不允許參與任何交易的主要節(jié)點來說,可以在可驗證的情況下,允許其知道自己的身份.

基于聯(lián)盟鏈自身特點和應(yīng)用背景,本方案對區(qū)塊鏈交易的隱私保護體現(xiàn)在2方面:

1) 對交易雙方身份的匿名.本文提出部分身份匿名的概念.所謂部分身份匿名,即用戶身份對其他次要節(jié)點匿名但允許驗證交易合法性的主要節(jié)點了解其賬戶并實現(xiàn)對交易的驗證.

2) 對交易金額的加密.實現(xiàn)交易金額的隱私保護的同時,滿足交易可驗證.

2.2 節(jié)點構(gòu)成

因本方案利用群簽名和同態(tài)加密對聯(lián)盟鏈中的交易進行隱私保護,因此,將群簽名的特性與聯(lián)盟鏈的特點結(jié)合.一個聯(lián)盟鏈作為群簽名中的一個群的概念,各節(jié)點分為群管理員、主要節(jié)點和次要節(jié)點.節(jié)點構(gòu)成如圖2所示.

1) 聯(lián)盟鏈中設(shè)立群管理員,為防止群管理員共謀泄露次要節(jié)點身份,將管理員按功能分為頒發(fā)者和打開者2種,群管理員獨立于主要節(jié)點和次要節(jié)點之外,負責(zé)聯(lián)盟鏈中群密鑰、同態(tài)密鑰的生成,以及在交易發(fā)生糾紛時的追蹤;

2) 主要節(jié)點,作為聯(lián)盟鏈中的監(jiān)管人員的角色,不參與交易,但負責(zé)對交易的合法性進行驗證、維護全網(wǎng)賬本;

3) 次要節(jié)點為聯(lián)盟中的用戶,次要節(jié)點利用自己的簽名證明自己的賬戶所有權(quán),次要節(jié)點之間進行交易.

Fig. 2 Composition of nodes

本方案面向交易金額隱私和部分身份隱私,因此,主要節(jié)點間存在共有的1個公私鑰對,公鑰面向次要節(jié)點公開,次要節(jié)點進行交易信息廣播時,利用該公鑰將交易信息進行加密,以使得對競爭節(jié)點進行匿名,實現(xiàn)部分身份隱私.

2.3 相關(guān)密鑰

群管理員利用群創(chuàng)建算法,建立群,群與聯(lián)盟鏈結(jié)合,一個鏈為一個群.

加入聯(lián)盟鏈的用戶擁有以下密鑰:

1) 用戶n申請加入聯(lián)盟鏈,群管理員驗證通過后,為該成員生成其群簽名密鑰Gskn,并將該用戶記錄在存儲列表中;

2) 群管理員利用Paillier算法生成全網(wǎng)同態(tài)密鑰,私鑰skP由群管理員保存,節(jié)點加入聯(lián)盟鏈時群管理員將同態(tài)公鑰pkP發(fā)送給該節(jié)點用戶,用戶用同態(tài)公鑰加密交易金額.

3) 用戶n加入后成為次要節(jié)點,自身生成非對稱密鑰對pkn,skn,利用公鑰生成賬戶地址Address,利用簽名證明賬戶所屬權(quán).

4) 主要節(jié)點間存在1個非對稱密鑰對pkmain,skmain,公鑰pkmain向次要節(jié)點公開,用于廣播交易信息時對交易信息進行加密,私鑰skmain主要節(jié)點保存、收到交易信息時進行解密.

新加入節(jié)點的初始賬戶余額為0,當(dāng)發(fā)生每筆交易時,由主要節(jié)點驗證交易合法性后更新余額,次要節(jié)點在本地賬本記錄交易金額,但其無法解密全網(wǎng)賬本中的余額,當(dāng)需要獲取該余額時,需向群管理員提出申請,且利用簽名證明自己賬戶所有權(quán)后,方可解密.

2.4 交易流程

1) 符號說明

符號說明如表1所示:

Table 1 Explanation of Symbols

其中Address為其賬戶地址,該地址為聯(lián)盟鏈中的用戶利用自身公鑰變化生成的字符串,用Sig簽名來證明賬戶所有權(quán).

2) 雙方交互

Alice向Bob提出交易申請,對交易信息m進行簽名和加密后得到EncB(SigA(m)),將其發(fā)給Bob,Bob收到交易信息EncB(SigA(m))后,使用自己的私鑰進行解密,并驗證Alice的簽名,核對成功后,將自身賬戶地址、交易信息進行加密、簽名以及群簽名后,得到信息:

EncA(SigB(AddressB)‖GsigB(EncP(m))‖EncP(SUMB)).

(1)

Bob將加密后的密文發(fā)送給Alice,Alice接收到式(1)后,用私鑰解密,并對Bob的簽名進行驗證,驗證通過后,將自身賬戶地址、交易信息、交易后賬戶余額寫入并進行加密、簽名、群簽名,得到信息:

SigA(AddressA)‖GsigA(GsigB(EncP(m)))‖EncP(SUMA)‖SigB(AddressB)‖EncP(SUMB).

(2)

3) 主要節(jié)點驗證

交易發(fā)起方收到交易接收方的信息后,生成如式(2)所述的交易信息,為實現(xiàn)部分身份匿名,將式(2)利用主要節(jié)點的公鑰進行加密,得到

Encmain(SigA(AddressA)‖GsigA(GsigB(EncP(m)))‖EncP(SUMA)‖SigB(AddressB)‖EncP(SUMB)).

(3)

將式(3)進行廣播,主要節(jié)點接收到廣播信息后進行解密并對交易信息合法性進行驗證,驗證流程為:

驗證1.驗證群簽名.主要節(jié)點利用群公鑰對群簽名進行驗簽,驗證該群簽名是否為群成員所簽,驗證通過后,進入驗證2.

驗證2.驗證賬戶所屬權(quán).利用AddressA和AddressB找到Alice和Bob的賬戶地址,并通過SigA,SigB來驗證交易雙方的賬戶所屬是否為Alice和Bob,驗證通過則進入驗證3.

驗證3.驗證交易金額合法性.驗證交易金額是否大于0以及交易發(fā)起方賬戶余額是否大于交易金額.

Alice利用零知識證明中的區(qū)間證明來向主要節(jié)點證明該交易金額m> 0,即設(shè)y=x-a為y=m-0.

② 主要節(jié)點計算

E1=E(m,r)/ga=gyhrmodn,U=gu/E3=gωh-rα2-r1α-r2modn.

③ Alice和主要節(jié)點分別計算

④ 主要節(jié)點檢查PKi(i=1,2,3)和u>2t+l+s+T的正確性,來相信x>a,即m>0.

若驗證成功,則證明交易金額大于0.

驗證交易發(fā)起方賬戶余額是否大于交易金額,可轉(zhuǎn)化為交易后其賬戶余額是否大于0,因此同理按①~④證明交易后Alice賬戶余額大于0.

若2個區(qū)間證明皆通過,進入下一步交易金額合法性驗證.

驗證4. 通過Paillier的加同態(tài)性質(zhì),驗證交易金額正確性.即驗證付款方交易金額加上交易完成后的賬戶余額是否等于當(dāng)前賬戶余額;以及交易中收款方的當(dāng)前賬戶余額加上交易金額是否等于交易完成后的賬戶余額.即式(4)是否成立.

EncP(SUMpresentA)=EncP(SUMA)+EncP(m),EncP(SUMB)=EncP(SUMpresentB)+EncP(m).

(4)

4步驗證的流程如圖3所示:

Fig. 3 Four-step verification flow chart

若以上4步驗證皆通過,則本次驗證通過,主要節(jié)點認證交易的合法性,將交易寫入新生區(qū)塊中并將Alice和Bob的賬戶余額分別更新為EncP(SUMA)和EncP(SUMB).相反,若以上4步驗證有一步驗證出錯,則主要節(jié)點向Alice返回錯誤信息,并終止驗證.

為保護交易雙方的身份隱私,區(qū)塊中僅寫入交易金額以及交易雙方的群簽名,寫入?yún)^(qū)塊的交易信息為

GsigA(GsigB(EncP(m))).

(5)

該信息中包含交易雙方的群簽名,且包含交易金額,當(dāng)交易發(fā)生糾紛時,可通過群管理員中的打開者Opener打開群簽名,實現(xiàn)交易雙方是溯源問題,為聯(lián)盟鏈中用戶的權(quán)益提供了保障.

2.5 具體流程

本方案面向基于賬戶的區(qū)塊鏈模型,次要節(jié)點之間進行交易,主要節(jié)點充當(dāng)?shù)V工的角色,對交易合法性進行驗證,具體的交易流程如圖4所示.

1) 交易發(fā)起方Alice向Bob發(fā)出交易申請,并將交易金額進行簽名加密后發(fā)送給Bob;

2) Bob接收到Alice的消息后,對消息進行解密驗簽,確認無誤后,將自身賬戶地址、交易信息,以及Bob的簽名、群簽名附上,用Alice的公鑰進行加密,形成式(1)所示的信息,并將該信息發(fā)送給Alice.

3) Alice接收到來自Bob的消息,解密驗簽成功后,將自己的賬戶地址、所有權(quán)簽名、群簽名等寫入,形成如式(2)所示的信息;為將交易信息發(fā)送給主要節(jié)點驗證并實現(xiàn)自身身份的隱私,因此用主要節(jié)點間的公鑰將該信息進行加密,廣播給主要節(jié)點.

4) 主要節(jié)點接收到該交易信息,對該信息進行解密,驗證群簽名、賬戶所有權(quán)簽名以及交易金額合法性和交易后賬戶余額合法性;在所有主要節(jié)點驗證通過后,將如式(5)所示的交易信息寫入?yún)^(qū)塊鏈中.交易完成.

Fig. 4 Specific transaction process

3 方案分析

本方案通過4個步驟驗證交易的合法性,任何一步無法驗證通過則主要節(jié)點認為該交易不合法并立即停止驗證.驗證1通過對群簽名的驗證,確定交易雙方為聯(lián)盟鏈中的合法用戶;驗證2驗證用戶賬戶所屬權(quán),該簽名采用ECDSA基于橢圓曲線的數(shù)字簽名算法,賬戶地址由用戶的公鑰通過若干雜湊算法變換而成,通過用戶的簽名驗證其賬戶所屬權(quán);驗證3驗證交易金額是否大于0,通過非交互式零知識證明進行;驗證4則為驗證用戶提供的交易后賬戶余額是否合法.

本節(jié)對論文的方案進行了安全性、匿名性以及方案效率的分析,論證了方案的安全性和匿名.

3.1 安全性分析

本方案基于Paillier同態(tài)加密和群簽名進行設(shè)計,用戶利用基于橢圓曲線的數(shù)字簽名算法證明賬戶所有權(quán).其中Paillier同態(tài)加密基于復(fù)合剩余類困難問題、群簽名基于傳統(tǒng)困難問題,在同態(tài)解密密鑰和群簽名打開算法未知的情況下,無法對交易金額及賬戶余額進行解密,更無法得知群簽名屬于哪位群成員.

1) 公鑰替換攻擊

方案中交易發(fā)起方向主要節(jié)點廣播的交易信息為

Encmain(SigA(AddressA)‖GsigA(GsigB(EncP(m)))‖EncP(SUMA)‖SigB(AddressB)‖EncP(SUMB)).

可以看出對于簽名算法,當(dāng)攻擊者為群成員且偽造公鑰與其他次要節(jié)點進行交易時,在交易驗證的第1步,因其為群成員,因此初步驗證可以通過,但因該公鑰為偽造,因此無法通過第2步的賬戶所屬權(quán)驗證,因此,無法對用戶賬戶安全造成威脅;若攻擊者非群成員但偽造公鑰與其他用戶進行交易,則在第1步驗證便無法通過,因此,本方案可以抵抗公鑰替換攻擊.

2) 篡改攻擊

由式(3)可知,本方案中的交易金額為經(jīng)過同態(tài)加密后的金額,且Alice廣播給主要節(jié)點驗證的交易信息中包含交易雙方Alice和Bob的群簽名,因此若交易雙方中的某一方試圖篡改交易金額是不可行的.

其次,若交易金額篡改成功,主要節(jié)點的第3,4步驗證都是為了核驗交易金額的合法性,若交易金額改為負數(shù)則無法通過第3步驗證,若隨意更改交易金額,則無法通過第4步驗證.

3.2 匿名性分析

本方案提出部分身份匿名的概念,因在基于賬戶模型的區(qū)塊鏈中,無法做到在對驗證節(jié)點進行身份匿名的前提下使其可以驗證交易的合法性,因此,利用主要節(jié)點之間的公私鑰對使得交易賬戶地址只對主要節(jié)點公開,且驗證通過后,寫入?yún)^(qū)塊鏈的信息如式(5)所示.

聯(lián)盟鏈中其他次要節(jié)點在獲取到區(qū)塊鏈上的交易信息時,僅可驗證該交易中群簽名是否為群中成員所簽,且為防止群管理員共謀泄露次要節(jié)點身份,將群管理員權(quán)力分開,分為頒發(fā)者和打開者,除管理員打開者opener外,聯(lián)盟鏈中其他節(jié)點皆無法驗證簽名者身份.群簽名滿足無關(guān)聯(lián)性,對于2個不同的群簽名Gsign和Gsign′,在打開者進行打開之前,任何人無法得知該簽名是否為同一人所簽,因此保證了方案的匿名性.

3.3 性能分析

本方案主要節(jié)點通過4步驗證來確定交易的合法性,4步驗證利用群簽名、橢圓曲線簽名、同態(tài)加密和零知識證明的特點進行.

1) 身份驗證

驗證1中,主要節(jié)點通過驗證群簽名的合法性,確定交易雙方是否屬于該聯(lián)盟中未被撤銷身份的合法用戶.

驗證2中,通過交易雙方賬戶地址AddressA和AddressB找到雙方賬戶,并通過驗證交易雙方的簽名SigA和SigB確定其提供地址的賬戶是否歸其所有.

2) 金額合法性驗證

驗證3中,用戶通過非交互式零知識證明使主要節(jié)點檢查PKi(i=1,2,3)和u>2t+l+s+T后相信m>0且交易金額小于等于付款方賬戶余額.

驗證4利用Paillier同態(tài)加密中的加同態(tài)性質(zhì)

cm1×cm2=gm1+m2(r1r2)nmodn2=cm1+m2

來驗證用戶交易金額是否滿足

EncP(SUMpresentA)=EncP(SUMA)+EncP(m),EncP(SUMB)=EncP(SUMpresentB)+EncP(m).

可以看出,4步驗證逐步進行用戶身份合法性驗證和交易金額合法性驗證,一步無法通過則停止驗證并返回錯誤信息.因此,4個緊湊的步驟可以有效實現(xiàn)交易合法性驗證.

3.4 效率分析

本文方案利用群簽名算法實現(xiàn)用戶的匿名,利用Paillier同態(tài)加密實現(xiàn)對交易金額和賬戶余額的隱私保護,同時利用基于橢圓曲線的簽名算法來證明賬戶的所屬權(quán)和零知識證明來證明交易金額的合法性,因此本方案的計算代價來自于群簽名、同態(tài)加密、零知識證明3種算法.現(xiàn)定義符號TE表示模冪運算時間開銷,TM表示模乘運算的時間開銷,H為Hash運算開銷,TB為雙線性對運算,Tm為乘運算,TA為指數(shù)運算.

運算過程中,雙線性對運算開銷較高,表2為本文方案的計算開銷,在表2中可以看出,本文所使用的算法中多為模冪運算和模乘運算的時間開銷,這2種運算的開銷相較于雙線性對的計算時間開銷較低,計算開銷合理.

Table 2 Computational Efficiency of the Scheme

3.5 效率與安全性對比

表3為本方案與其他相關(guān)方案的效率與安全性對比.由表3可以看出,楊亞濤等人[16]的方案簽名與驗證的效率較高,但該方案僅利用簽名算法實現(xiàn)了用戶雙方身份的匿名,無法實現(xiàn)交易金額的隱私保護,因此無法滿足用戶對身份和交易金額隱私保護的需求;Wang等人[14]的方案同樣利用同態(tài)加密實現(xiàn)了交易金額的隱私保護,但由于其設(shè)置了一個額外賬戶,且加密需要i次循環(huán),因此交易加密以及驗證時的效率較低,并且無法滿足用戶對于身份隱私的需求;王子鈺等人[15]方案利用聚合簽名和承諾及零知識證明來實現(xiàn)用戶身份和交易金額的全匿名,然而面向基于交易的區(qū)塊鏈模型,且驗證效率較低.

Table 3 Comparison of Efficiency and Security

綜上所述,本方案相比若干只實現(xiàn)單一方向隱私保護的方案提升了對用戶以及交易整體的隱私保護程度,通過高效的非交互式零知識證明,在保證驗證有效的前提下提高了效率.利用群簽名和同態(tài)加密,使得方案安全性更高,滿足了區(qū)塊鏈交易時用戶對身份隱私和交易金額隱私的需要,且本方案可以提供一定的交易溯源性,更加滿足聯(lián)盟區(qū)塊鏈實際應(yīng)用中的需求.

4 結(jié) 論

本文利用群簽名和Paillier同態(tài)加密,將群簽名特性和Paillier算法的加同態(tài)特性與賬戶模型的聯(lián)盟鏈進行結(jié)合,提出了一種可以實現(xiàn)身份匿名和交易金額隱私保護的方案.結(jié)合簽名加密算法的特性,提出主要節(jié)點4步驗證方法,通過對群簽名、賬戶所屬權(quán)和交易金額合法性的驗證,實現(xiàn)主要節(jié)點對交易合法性的監(jiān)管.4步緊湊的驗證使得本方案可以抵抗公鑰替換攻擊以及篡改攻擊,方案的安全性大大提高.本方案可在保證主要節(jié)點驗證交易合法性的同時保證身份的部分匿名和交易金額隱私,符合聯(lián)盟區(qū)塊鏈部分去中心化的特點和基于賬戶模型區(qū)塊鏈的特點,滿足交易中交易雙方對競爭者的身份隱私和交易金額隱私保護.本方案可應(yīng)用于用戶存在競爭者的場合,如原材料交易等.如何根據(jù)應(yīng)用場景進行節(jié)點身份及權(quán)限的優(yōu)化,可作為進一步研究的重點.

作者貢獻聲明:刁一晴負責(zé)方案的整體設(shè)計、性能分析以及論文撰寫;葉阿勇指導(dǎo)方案的擬定,把握論文創(chuàng)新性,并審閱修訂論文;張嬌美參與論文方案可行性討論與分析;鄧慧娜參與論文圖表設(shè)計與規(guī)劃;張強參與論文公式校對;程保容參與論文文字校對.

猜你喜歡
同態(tài)合法性賬戶
組織合法性的個體判斷機制
關(guān)于半模同態(tài)的分解*
Westward Movement
拉回和推出的若干注記
探索自由貿(mào)易賬戶體系創(chuàng)新應(yīng)用
中國外匯(2019年17期)2019-11-16 09:31:14
外匯賬戶相關(guān)業(yè)務(wù)
中國外匯(2019年10期)2019-08-27 01:58:28
父親的股票賬戶
特別健康(2018年4期)2018-07-03 00:38:20
一種基于LWE的同態(tài)加密方案
HES:一種更小公鑰的同態(tài)加密算法
淺談汽車養(yǎng)護品生產(chǎn)的合法性
镇平县| 刚察县| 海林市| 凭祥市| 阳信县| 台湾省| 陆丰市| 五大连池市| 荃湾区| 三门县| 荔浦县| 鄂温| 承德县| 辽阳市| 金华市| 迭部县| 中卫市| 张家川| 娱乐| 天津市| 三原县| 恩施市| 榆社县| 汉源县| 修水县| 微博| 进贤县| 平罗县| 儋州市| 沁源县| 汕头市| 环江| 体育| 临朐县| 大竹县| 涞源县| 平邑县| 周口市| 巴东县| 德庆县| 望江县|