本發(fā)明屬于密碼技術(shù)領(lǐng)域,更進(jìn)一種涉及密碼技術(shù)領(lǐng)域中的基于同態(tài)加密的虛擬資產(chǎn)匿名排序方法,可用于比特幣網(wǎng)絡(luò)中資產(chǎn)監(jiān)管。
背景技術(shù):
比特幣是一種P2P形式的數(shù)字加密貨幣,與其他虛擬貨幣相比,比特幣是一種點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金系統(tǒng),不基于信用而基于密碼學(xué)原理,使得任何達(dá)成一致的雙方在不需要第三方的參與下能夠直接進(jìn)行交易。點(diǎn)對(duì)點(diǎn)的傳輸意味著去中心化的全球性的支付系統(tǒng),不依賴于特定的貨幣發(fā)行機(jī)構(gòu)。比特幣采用全分布式拓?fù)浣Y(jié)構(gòu),利用整個(gè)P2P網(wǎng)絡(luò)中眾多節(jié)點(diǎn)構(gòu)成的分布式數(shù)據(jù)庫(kù)確認(rèn)并且記錄交易信息,而整個(gè)技術(shù)的核心就是區(qū)塊鏈。區(qū)塊鏈作為比特幣的底層技術(shù),是一串使用密碼技術(shù)相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊中都包含一次比特幣交易信息,每次交易記錄只有在大部分節(jié)點(diǎn)驗(yàn)證通過(guò)的情況下被記錄到當(dāng)前區(qū)塊中,具有去中心化、開放性、信息不可篡改性、匿名性等特點(diǎn)。簡(jiǎn)而言之,它是一個(gè)在網(wǎng)絡(luò)上去中心化的分布式共享賬本或者數(shù)據(jù)庫(kù)。比特幣作為一種數(shù)字虛擬資產(chǎn),以其安全、便捷、去中心化的特性備受金融行業(yè)和普通用戶的關(guān)注。
比特幣是數(shù)字虛擬資產(chǎn)的一種形式,雖然采用去中心化的模式運(yùn)行,但在整個(gè)網(wǎng)絡(luò)中流通的比特幣仍需要一定的監(jiān)管,以防止濫用和非法交易,監(jiān)管中心,即銀行或政府要實(shí)時(shí)監(jiān)測(cè)比特幣交易過(guò)程中的資產(chǎn)流動(dòng)情況,特別是對(duì)賬戶資產(chǎn)較多且交易頻繁的用戶。由于比特幣系統(tǒng)是全球性的,若監(jiān)管中心對(duì)全部的參與者都進(jìn)行實(shí)時(shí)監(jiān)測(cè),必會(huì)帶來(lái)巨大的工作量,所以有必要對(duì)用戶賬戶的資產(chǎn)進(jìn)行排名,實(shí)現(xiàn)監(jiān)管資源最大化的有效監(jiān)測(cè),即對(duì)資產(chǎn)較多、交易頻繁的賬戶重點(diǎn)監(jiān)測(cè),對(duì)資產(chǎn)較少的賬戶不必做到實(shí)時(shí)監(jiān)測(cè),這一定程度上抑制了非法交易和比特幣濫用現(xiàn)象。同時(shí)比特幣作為市場(chǎng)用戶的個(gè)人財(cái)產(chǎn),本身就要求具有隱私性,用戶未經(jīng)允許不能獲取其他用戶的賬戶財(cái)產(chǎn)信息。某些用戶想要在保證自身賬戶保密性的前提下,又希望知道自己的數(shù)字虛擬資產(chǎn)在整個(gè)網(wǎng)絡(luò)中的地位,獲得自己在整個(gè)網(wǎng)絡(luò)中資產(chǎn)的排名,從而確定自己的社會(huì)價(jià)值。這樣,不僅要將用戶的賬戶信息進(jìn)行加密,而且還要保證監(jiān)管中心在不知道用戶賬戶信息的情況下獲得整個(gè)網(wǎng)絡(luò)中用戶資產(chǎn)排名情況。這就需要在多個(gè)用戶協(xié)作的情況下,對(duì)個(gè)人資產(chǎn)對(duì)應(yīng)的密文進(jìn)行一定的操作。
蘇州大學(xué)在其申請(qǐng)的專利“一種面向同態(tài)加密的密文定序方法及系統(tǒng)”(公開號(hào):103401871A,申請(qǐng)?zhí)枺?01310336834.5,申請(qǐng)日:2013年08月05日)中公開一種面向同態(tài)加密的密文定序方法,該方法由客戶端生成公鑰和私鑰,將私鑰發(fā)送給代理服務(wù)器,將數(shù)據(jù)加密并托管給存儲(chǔ)服務(wù)器,然后客戶端向存儲(chǔ)服務(wù)器發(fā)送定序指令,存儲(chǔ)服務(wù)器做同態(tài)減運(yùn)算并將結(jié)果發(fā)送給代理服務(wù)器,最后代理服務(wù)解密定密文的序,并將結(jié)果加密后通過(guò)存儲(chǔ)服務(wù)器發(fā)送給客戶端,客戶端解密得到明文。該方法存在的不足之處是:
1.該專利客戶端將私鑰直接交給代理服務(wù)器,導(dǎo)致代理服務(wù)器可以完全替代客戶端,會(huì)帶來(lái)致命的隱私泄露問(wèn)題;
2.僅由單一的客戶端來(lái)完成密文的定序,應(yīng)用范圍過(guò)于狹小,不利于推廣和使用;
3.代理服務(wù)器和存儲(chǔ)服務(wù)器可以合謀并且易受到攻擊,帶來(lái)很大的安全問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種基于同態(tài)加密的虛擬資產(chǎn)匿名排序方法,以避免用戶隱私的泄露,提高密文定序的普適性。
本發(fā)明的技術(shù)方案是,首先由授權(quán)中心完成對(duì)用戶的認(rèn)證過(guò)程,然后采用多用戶交互的模式,通過(guò)請(qǐng)求、應(yīng)答的方式,在用戶隱私保護(hù)的同時(shí),完成虛擬資產(chǎn)匿名排序。其實(shí)現(xiàn)步驟包括如下:
(1)系統(tǒng)初始化:
(1a)授權(quán)中心CA運(yùn)行Sig_GenCA()算法,生成授權(quán)中心自身的驗(yàn)證公鑰(N,e)和簽名私鑰d,并對(duì)簽名私鑰d進(jìn)行秘密保存;
(1b)授權(quán)中心CA選擇滿足安全性的奇數(shù)t和整數(shù)集合定義用戶公私鑰選取集合并將用戶公私鑰選取集合的范圍限定在(-t/2,t/2];
(1c)授權(quán)中心CA在用戶公私鑰選取集合上定義離散高斯分布χ;
(1d)授權(quán)中心CA公開系統(tǒng)參數(shù)(N,e,t,χ);
(2)用戶身份注冊(cè):
用戶i向授權(quán)中心CA提交身份信息ID進(jìn)行注冊(cè)申請(qǐng),授權(quán)中心CA驗(yàn)證用戶i的身份是否合法,若合法,則進(jìn)行步驟(3),否則,拒絕用戶i的身份注冊(cè)申請(qǐng);
(3)密鑰分發(fā):
(3a)對(duì)于合法的用戶i,授權(quán)中心CA選取g維向量將xi作為用戶i的私鑰,并計(jì)算用戶i的公鑰pki;
(3b)授權(quán)中心CA通過(guò)安全信道將用戶i的私鑰xi發(fā)送給用戶i;
(3c)授權(quán)中心CA選取抗碰撞的身份哈希函數(shù)H1和公鑰哈希函數(shù)H2,通過(guò)H1計(jì)算用戶i身份信息的哈希值hID,并利用自己的簽名私鑰d對(duì)hID進(jìn)行簽名,得到授權(quán)中心的簽名值σ;
(3d)授權(quán)中心CA將數(shù)字證書cert=hID||TS||TE||pki||σ發(fā)送給用戶i,其中,TS表示數(shù)字證書的生效時(shí)間,TE表示數(shù)字證書的失效時(shí)間,||表示級(jí)聯(lián)操作;
(3e)用戶i將數(shù)字證書cert公開,并將私鑰xi秘密保存;
(4)多用戶資產(chǎn)排名:
假設(shè)有L個(gè)用戶參與資產(chǎn)排名,用戶i擁有的虛擬資產(chǎn)總數(shù)為帶符號(hào)的數(shù)n表示用戶i虛擬資產(chǎn)總數(shù)值的二進(jìn)制長(zhǎng)度,表示符號(hào)位,其排名步驟如下:
(4a)用戶i向其他L-1個(gè)用戶發(fā)送資產(chǎn)排名請(qǐng)求;
(4b)其他L-1個(gè)用戶收到用戶i的排名請(qǐng)求后,發(fā)送確認(rèn)應(yīng)答給用戶i;
(4c)用戶i收到用戶j的確認(rèn)應(yīng)答,利用自己的公鑰pki,按照下式逐比特計(jì)算資產(chǎn)數(shù)對(duì)應(yīng)的密文
其中,表示用戶i資產(chǎn)數(shù)值二進(jìn)制的第k比特密文值,Enc()表示基于容錯(cuò)學(xué)習(xí)LWE的同態(tài)加密操作,表示用戶i資產(chǎn)數(shù)值二進(jìn)制的第k比特,pki表示用戶i的公鑰,下標(biāo)k取遍[0,n-1];
(4d)用戶i將資產(chǎn)總數(shù)對(duì)應(yīng)的密文值發(fā)送給用戶j,1≤j≤L,j≠i;
(4e)用戶j查詢用戶i的公鑰pki并驗(yàn)證其有效性,若驗(yàn)證通過(guò),則進(jìn)行步驟(4f),否則,斷開與用戶i的通信;
(4f)用戶j計(jì)算其資產(chǎn)總數(shù)的補(bǔ)碼,即將資產(chǎn)總數(shù)作位反相運(yùn)算,再對(duì)運(yùn)算結(jié)果加1;
(4g)用戶j按照下式計(jì)算其資產(chǎn)總數(shù)的補(bǔ)碼密文
其中,表示用戶j資產(chǎn)數(shù)值二進(jìn)制的第k比特密文值,表示用戶j資產(chǎn)數(shù)值二進(jìn)制的第k比特,表示比特1的密文值,⊕表示基于容錯(cuò)學(xué)習(xí)LWE的密文同態(tài)加法操作,表示帶進(jìn)位的密文同態(tài)加法操作,表示進(jìn)位之后得到的第k比特加密的密文值;
(4h)用戶j利用收到的將用戶i和用戶j資產(chǎn)數(shù)的密文進(jìn)行同態(tài)相加,得到合密文
其中,表示合密文的第k個(gè)密文值,表示合密文第k位的進(jìn)位值,表示合密文第k-1位的進(jìn)位值,表示基于容錯(cuò)學(xué)習(xí)LWE的密文同態(tài)乘法操作,表示合密文的最低位,表示合密文最低位的進(jìn)位值;
(4i)用戶j將合密文的最高位發(fā)送給用戶i;
(4j)用戶i根據(jù)計(jì)算明文:
其中,表示合密文的最高位,xi表示用戶i的私鑰,Decrypt表示基于容錯(cuò)學(xué)習(xí)LWE的同態(tài)解密操作;
(4k)用戶i根據(jù)的值的大小確定自己的排名情況,若用戶i將自己排在用戶j之前,若用戶i將自己排在用戶j之后,并將該排名公布給所有參與用戶;
(4l)用戶j根據(jù)用戶i和自己的排名情況,確定在此步驟之后的通信用戶:若用戶j排在用戶i之前,則用戶j與排名在用戶i之前的其他用戶執(zhí)行步驟(4a)到(4k);若用戶j排在用戶i之后,則用戶j與排名在用戶i之后的其他用戶執(zhí)行步驟(4a)到(4k);
(4m)剩余的每一個(gè)用戶根據(jù)已經(jīng)完成排名的用戶的結(jié)果執(zhí)行步驟(4l),完成L個(gè)用戶的虛擬資產(chǎn)總數(shù)的排名。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
第一,由于本發(fā)明通過(guò)授權(quán)中心為用戶生成公鑰和私鑰,私鑰由用戶自己秘密保存,克服了現(xiàn)有技術(shù)中將密鑰交付給代理服務(wù)器的缺點(diǎn),實(shí)現(xiàn)了更安全的隱私保護(hù)。
第二,本發(fā)明由于采用多用戶交互的模式,解決了單一客戶端密文定序方法應(yīng)用范圍狹小這一問(wèn)題,擴(kuò)展了安全排名的應(yīng)用范圍。
第三,本發(fā)明由于取消了代理服務(wù)器和存儲(chǔ)服務(wù)器,采用用戶匿名機(jī)制,可以有效地抵抗共謀攻擊。
附圖說(shuō)明
圖1為本發(fā)明的實(shí)現(xiàn)流程圖;
圖2為本發(fā)明中多用戶資產(chǎn)排名的子流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步詳細(xì)描述。
參照?qǐng)D1,本發(fā)明的實(shí)現(xiàn)步驟如下。
步驟1,系統(tǒng)初始化。
(1a)授權(quán)中心CA運(yùn)行Sig_GenCA()算法,即先選擇滿足公式ed=1mod((P-1)·(Q-1))的兩個(gè)數(shù)值不同的素?cái)?shù)P、Q,和兩個(gè)數(shù)值不同的正整數(shù)e、d,再計(jì)算模數(shù)N=PQ,生成授權(quán)中心自身的驗(yàn)證公鑰(N,e)和簽名私鑰d,并對(duì)簽名私鑰d進(jìn)行秘密保存;
(1b)授權(quán)中心CA選擇滿足安全性的奇數(shù)t和整數(shù)集合定義用戶公私鑰選取集合并將用戶公私鑰選取集合限定在(-t/2,t/2]的范圍內(nèi);
(1c)授權(quán)中心CA在用戶公私鑰選取集合上定義離散高斯分布χ;
(1d)授權(quán)中心CA公開系統(tǒng)參數(shù)(N,e,t,χ)。
步驟2,用戶身份注冊(cè)。
用戶i向授權(quán)中心CA提交身份信息ID進(jìn)行注冊(cè)申請(qǐng),授權(quán)中心CA驗(yàn)證用戶i的身份是否合法,若合法,則進(jìn)行步驟(3),否則,拒絕用戶i的身份注冊(cè)申請(qǐng)。
步驟3,密鑰分發(fā)。
(3a)對(duì)于合法的用戶i,授權(quán)中心CA選取g維向量并將xi作為用戶i的私鑰;
(3b)授權(quán)中心CA選取錯(cuò)誤向量ei←χm和服從均勻分布的矩陣按照如下公式計(jì)算用戶i的公鑰pki:
pki=Ai||bi,
其中,bi=Aixi+2ei表示中間變量,||表示級(jí)聯(lián)操作,xi表示用戶i的私鑰;
(3c)授權(quán)中心通過(guò)安全的信道將用戶i的私鑰xi發(fā)送給用戶i;
(3d)授權(quán)中心CA選取抗碰撞的身份哈希函數(shù)H1和公鑰哈希函數(shù)H2,通過(guò)H1計(jì)算用戶i身份信息的哈希值hID,并利用自己的簽名私鑰d對(duì)hID進(jìn)行簽名,得到授權(quán)中心的簽名值σ:
σ=hd(modN),
其中,h=H2(hID||pki)表示hID和pki級(jí)聯(lián)后的哈希值,hID=H1(ID)表示用戶i身份信息的哈希值,d表示授權(quán)中心CA的簽名私鑰;
(3e)授權(quán)中心CA根據(jù)簽名值σ、用戶i的公鑰pki和用戶i身份信息的哈希值hID生成數(shù)字證書cert=hID||TS||TE||pki||σ,并將該數(shù)字證書cert發(fā)送給用戶i,其中,TS表示數(shù)字證書的生效時(shí)間,TE表示數(shù)字證書的失效時(shí)間,||表示級(jí)聯(lián)操作;
(3f)用戶i將數(shù)字證書cert公開,并將私鑰xi秘密保存。
步驟4,多用戶資產(chǎn)排名。
假設(shè)有L個(gè)用戶參與資產(chǎn)排名,用戶i擁有的虛擬資產(chǎn)總數(shù)為帶符號(hào)的數(shù)n表示用戶i虛擬資產(chǎn)總數(shù)值的二進(jìn)制長(zhǎng)度,表示符號(hào)位,
參照?qǐng)D2,本步驟的排名如下:
(4a)用戶i向其他L-1個(gè)用戶發(fā)送資產(chǎn)排名請(qǐng)求;
(4b)其他L-1個(gè)用戶收到用戶i的排名請(qǐng)求后,發(fā)送確認(rèn)應(yīng)答給用戶i;
(4c)用戶i收到用戶j的確認(rèn)應(yīng)答,利用自己的公鑰pki,按照下式逐比特計(jì)算資產(chǎn)數(shù)對(duì)應(yīng)的密文
其中,表示用戶i資產(chǎn)數(shù)值二進(jìn)制的第k比特密文值,Enc()表示基于容錯(cuò)學(xué)習(xí)LWE的同態(tài)加密操作,表示用戶i資產(chǎn)數(shù)值二進(jìn)制的第k比特,pki表示用戶i的公鑰,下標(biāo)k取遍[0,n-1];
上述基于容錯(cuò)學(xué)習(xí)LWE的同態(tài)加密操作Enc(),具體步驟如下:
(4c1)隨機(jī)選取向量rk∈{0,1}m;
(4c2)根據(jù)向量rk,按照如下公式計(jì)算向量相加值vk和明文加密值wk:
vk=AiTrk,
其中,Ai表示授權(quán)中心CA從中選取的服從均勻分布的m行g(shù)列的矩陣,T表示對(duì)矩陣Ai的轉(zhuǎn)置,bi=Aixi+2ei表示中間變量,ei表示授權(quán)中心CA從離散高斯分布χ中選取的m維錯(cuò)誤向量,xi表示用戶i的私鑰;
(4c3)根據(jù)向量相加值vk和明文加密值wk,按照如下公式計(jì)算用戶i資產(chǎn)數(shù)值二進(jìn)制的第k比特密文值
(4d)用戶i將資產(chǎn)總數(shù)對(duì)應(yīng)的密文值發(fā)送給用戶j,1≤j≤L,j≠i;
(4e)用戶j查詢用戶i的公鑰pki并驗(yàn)證其有效性,即由用戶j利用授權(quán)中心CA的驗(yàn)證公鑰(N,e)和用戶i的數(shù)字證書cert驗(yàn)證下式是否成立:
h=σe(modN),
若成立,則驗(yàn)證通過(guò),用戶j計(jì)算其資產(chǎn)總數(shù)的補(bǔ)碼,即將資產(chǎn)總數(shù)作位反相運(yùn)算,再對(duì)運(yùn)算結(jié)果加1;否則,用戶j斷開與用戶i的通信;
(4f)用戶j按照下式計(jì)算其資產(chǎn)數(shù)值二進(jìn)制的第k比特密文值和比特1的密文值
其中,表示用戶j資產(chǎn)數(shù)值二進(jìn)制的第k比特;
(4g)用戶j根據(jù)和按照下式計(jì)算其資產(chǎn)總數(shù)的補(bǔ)碼密文
其中,⊕表示基于容錯(cuò)學(xué)習(xí)LWE的密文同態(tài)加法操作,表示帶進(jìn)位的密文同態(tài)加法操作,表示進(jìn)位之后得到的第k比特密文值;
(4h)用戶j利用收到的當(dāng)下標(biāo)k∈[1,n-1]時(shí),按照下式計(jì)算合密文的第k位的進(jìn)位值和合密文的第k個(gè)密文值
其中,表示基于容錯(cuò)學(xué)習(xí)LWE的密文同態(tài)乘法操作,表示合密文的第k-1位的進(jìn)位值;
當(dāng)下標(biāo)k=0時(shí),按照下式計(jì)算合密文最低位的進(jìn)位值和合密文的最低位
其中,表示用戶i資產(chǎn)數(shù)二進(jìn)制的最低位密文值,表示用戶j資產(chǎn)數(shù)的補(bǔ)碼密文最低位;
(4i)用戶j根據(jù)和得到合密文
(4j)用戶j將合密文的最高位發(fā)送給用戶i;
(4k)用戶i根據(jù)計(jì)算明文
其中,表示合密文的最高位,xi表示用戶i的私鑰,Decrypt表示基于容錯(cuò)學(xué)習(xí)LWE的同態(tài)解密操作;
(4l)用戶i根據(jù)的值的大小確定自己的排名情況,若說(shuō)明s(i)≥s(j),則用戶i將自己排在用戶j之前,若說(shuō)明s(i)<s(j),則用戶i將自己排在用戶j之后,并將該排名公布給所有參與用戶;
(4m)用戶j根據(jù)用戶i和自己的排名情況,確定在此步驟之后的通信用戶:若用戶j排在用戶i之前,則用戶j與排名在用戶i之前的其他用戶執(zhí)行步驟(4a)到(4l);若用戶j排在用戶i之后,則用戶j與排名在用戶i之后的其他用戶執(zhí)行步驟(4a)到(4l);
(4n)剩余的每一個(gè)用戶根據(jù)已經(jīng)完成排名的用戶的結(jié)果執(zhí)行步驟(4m),完成L個(gè)用戶的虛擬資產(chǎn)總數(shù)的排名。
下面通過(guò)安全性分析和效率分析對(duì)本發(fā)明做進(jìn)一步的描述。
1.安全性分析:
在比特幣網(wǎng)絡(luò)中,標(biāo)記用戶唯一信息的只有比特幣地址,是一串以數(shù)字“1”開頭的十六進(jìn)制數(shù),為了保證隱私保護(hù),每個(gè)用戶可以有多個(gè)比特幣地址,比特幣的交易,本質(zhì)上將比特幣就是從一個(gè)地址轉(zhuǎn)移到另一個(gè)地址的過(guò)程。在排名實(shí)現(xiàn)過(guò)程中,用戶利用自己的比特幣地址作為唯一的標(biāo)記參與排名,即使有多個(gè)用戶合謀想要獲得某個(gè)用戶的虛擬資產(chǎn)總額,也只能得到某個(gè)比特幣地址對(duì)應(yīng)的虛擬資產(chǎn)總額,并不能確定比特幣地址對(duì)應(yīng)的用戶本人的真實(shí)身份,所以本發(fā)明通過(guò)匿名性可以保證抗共謀攻擊。
2.效率分析:
本發(fā)明采用基于容錯(cuò)學(xué)習(xí)LWE的同態(tài)加密方法,所有計(jì)算都是線性操作,同時(shí)在多用戶資產(chǎn)排名過(guò)程中,第一個(gè)用戶執(zhí)行協(xié)議L-1次,第二個(gè)用戶在第一個(gè)用戶基礎(chǔ)上且在平均情況下,可以將執(zhí)行協(xié)議的次數(shù)減半,以此類推每一個(gè)用戶在上一個(gè)用戶的基礎(chǔ)上將排序范圍縮小,這種快速排序總共將步驟4執(zhí)行O(LlogL)次就可以完成虛擬資產(chǎn)的排名。