陳梁景,王志偉,2,3
(1.南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210003;2.江蘇省大數(shù)據(jù)安全與智能處理重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210023;3.江蘇省計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210096)
近年來(lái),傳染性疾病比如肺炎的大規(guī)模爆發(fā)給人們敲響警鐘。關(guān)于傳染病患者以及其密切接觸者的發(fā)現(xiàn)以及隔離對(duì)于控制疫情異常重要[1]。政府官員和業(yè)界人士所采取的一種通用方法是(全部或部分)實(shí)現(xiàn)人工追蹤聯(lián)系人的廣泛任務(wù)的自動(dòng)化。該文主要研究關(guān)于隱私保護(hù)的傳染病密切接觸者身份追蹤系統(tǒng)。主要思路是:(1)密切接觸者相互接觸時(shí)取得彼此的公鑰進(jìn)行交互認(rèn)證,認(rèn)證成功交換彼此的身份密文信息;(2)患者被確診后,通過(guò)執(zhí)行帶地域的群簽名加入病人群,管理者為權(quán)威醫(yī)療機(jī)構(gòu)。將患者保存的密切接觸者的加密信息打包公布,并附上群簽名;(3)用戶讀取公布的加密信息,若群簽名驗(yàn)證成功且解密密文成功,則上報(bào)相關(guān)機(jī)構(gòu)去隔離點(diǎn)隔離,從而達(dá)到追蹤密切接觸者身份的目的。必要的情況下,群管理者可以打開(kāi)簽名追蹤到確認(rèn)患者的人員信息。
在隱私保護(hù)方面,Zhang等人[2]提出了一種基于鄰近性的移動(dòng)社交網(wǎng)絡(luò)的隱私保護(hù)配置文件匹配算法。該算法使用戶能夠匹配他們的個(gè)人資料,而不透露他們的個(gè)人資料的任何信息。另一個(gè)相關(guān)研究方向是移動(dòng)社交網(wǎng)絡(luò)中保護(hù)隱私的位置共享[3-5]。然而,該領(lǐng)域的大多數(shù)解決方案都假設(shè)社交網(wǎng)絡(luò)平臺(tái)知道每個(gè)用戶的位置,并提供基于位置的隱私保護(hù)搜索功能。澳大利亞與以色列推出了新型冠狀病毒安全應(yīng)用[6]以及一款HaMagen[7]的聯(lián)系人追蹤應(yīng)用,然而用戶需要對(duì)權(quán)威機(jī)構(gòu)有高度的信任。另一個(gè)研究方向,Naren N[8]和Alansari S A等人[9]使用區(qū)塊鏈來(lái)幫助推進(jìn)隱私保護(hù)相關(guān)的接觸追蹤應(yīng)用程序。Jan Camenisch[10]提出了一個(gè)緊湊群簽名。允許授權(quán)機(jī)構(gòu)向用戶發(fā)出帶有屬性的成員資格憑證。該文將區(qū)域?qū)傩约尤氲饺汉灻?dāng)中,區(qū)域記為相遇的區(qū)域編號(hào)。如果需要,權(quán)威醫(yī)療機(jī)構(gòu)可以恢復(fù)患者的身份。
該文貢獻(xiàn)列舉如下:(1)提出了一個(gè)隱私保護(hù)的傳染病密切接觸者身份追蹤系統(tǒng)方案;(2)方案第一部分提出了一個(gè)身份認(rèn)證協(xié)議實(shí)現(xiàn)接觸者雙方的相遇認(rèn)證,利用零知識(shí)驗(yàn)證公鑰的正確性;(3)方案提出了一個(gè)基于Jan Camenisch等人群簽名方案的帶地域?qū)傩缘娜汉灻桨福瑢?shí)現(xiàn)了匿名確診的匿名性、安全性、可追溯性。
給定中性元1G的群G,G*為G{1G}。一個(gè)非對(duì)稱配對(duì)組(p,G1,G2,GT,e),p是一個(gè)質(zhì)數(shù),G1,G2,GT是p階的群,以及e:G1×G2→GT是一個(gè)有效的可計(jì)算的非退化的雙線性映射。類型3配對(duì)群是指已知G2到G1沒(méi)有有效可計(jì)算同態(tài)的配對(duì)群。
Elgamal加密算法[11]分為密鑰生成算法、加密算法、解密算法,如下:
Pointcheval和Sanders引入了Modified q-Strong Diffie-Hellman假設(shè),并證明它擁有一般雙線性群模型[12]。暗示了SDL假設(shè)。
定義1(q-MSDH-1假設(shè)[12]):設(shè)G為3型配對(duì)群發(fā)生器。對(duì)G的q-MSDH-1假設(shè),對(duì)所有λ∈,Γ=(p,G1,G2,GT,e)←G(1λ),給定和兩個(gè)元組和
Pointcheval和Sanders證明了[13],該簽名方案在q-MDSH-1假設(shè)下存在不可偽造(見(jiàn)2.3節(jié)定義1)。
零知識(shí)證明是一種兩方協(xié)議,允許一方說(shuō)服另一方某件事是真的,而不透露其他任何東西。Yuen等人[14]提出了一個(gè)未知階數(shù)群上離散對(duì)數(shù)(DL)關(guān)系的緊湊零知識(shí)證明,該文首先考慮一個(gè)群元素g,w∈G在未知階群G中的簡(jiǎn)單DL關(guān)系R的ZK證明:R={x∈:w=gx}。證明者P和驗(yàn)證者V之間的零知識(shí)證明由以下三部分組成。
(1)驗(yàn)證者發(fā)送一個(gè)隨機(jī)λ位素?cái)?shù)l。
(2)證明者發(fā)現(xiàn)q'∈以及r∈[0,l-1],有x=q'l+r。證明者發(fā)送Q=gq'和r給驗(yàn)證者。
(3)驗(yàn)證者驗(yàn)證,如果r∈[0,l-1]且Qlgr=w,則接受。
系統(tǒng)如圖1所示,包含三個(gè)主體,權(quán)威醫(yī)療機(jī)構(gòu)、用戶和公告板。角色定義如下:
圖1 系統(tǒng)模型
-公告板:用于發(fā)布公共信息。它可以通過(guò)使用web或者區(qū)塊鏈系統(tǒng)來(lái)實(shí)例化。
-用戶(User):它可以被稱為正常使用手機(jī)的人群。在其余部分,使用Alice和Bob來(lái)表示兩個(gè)用戶為密切接觸者。
-權(quán)威醫(yī)療機(jī)構(gòu)(D):只有醫(yī)生才能將患者確診,并頒發(fā)給患者確診憑證患者,而醫(yī)生也隸屬于某家醫(yī)院。
必須做出以下合理假設(shè):
(1)用戶不會(huì)公開(kāi)他們的社交活動(dòng)(例如在微博上發(fā)布與某人的合照)。
(2)系統(tǒng)和智能手機(jī)都連接到了互聯(lián)網(wǎng)上。
(3)智能手機(jī)可以通過(guò)藍(lán)牙連接。
(4)用戶不會(huì)與他人共享私鑰。
(5)醫(yī)生或醫(yī)療機(jī)構(gòu)是完全可信的。
在實(shí)際應(yīng)用中,一個(gè)安全的隱私保護(hù)身份追蹤系統(tǒng)應(yīng)滿足以下屬性:
(1)正確性:用戶相遇,彼此可以正確地進(jìn)行相遇認(rèn)證,并正確地將對(duì)方的身份信息用對(duì)方的公鑰加密后,保存在自己手機(jī)上。若某用戶被確診后,可以正確入群,并取得醫(yī)生頒發(fā)的確診憑證。此外,若有需要,醫(yī)生可以正確地恢復(fù)出患者的身份信息。
(2)匿名性:除醫(yī)生外,任何人都不應(yīng)知道確診病人的身份詳情。對(duì)手包括該患者的所有密切接觸者(該密切接觸者是確診前的)和公眾。任何人,都不應(yīng)了解確診患者密切接觸者的身份信息,包括接觸者的位置。這里的密碼敵手試圖找出確診患者密切接觸者的所有細(xì)節(jié)。
(3)可追溯性:當(dāng)需要時(shí),權(quán)威醫(yī)療機(jī)構(gòu)可打開(kāi)病人群簽名,可追溯性對(duì)于任何有效的令牌,只要發(fā)行者是誠(chéng)實(shí)的,它就保證了開(kāi)放既不能失敗,也不能暴露一個(gè)不正確的誠(chéng)實(shí)身份。
本協(xié)議有四個(gè)階段。在注冊(cè)階段,用戶選擇自己的私公鑰。醫(yī)生將獲得醫(yī)院頒發(fā)的用戶密鑰,該密鑰用于代表醫(yī)院生成群簽名。在相遇認(rèn)證階段,密切接觸者之間相互接觸取得彼此的公鑰,進(jìn)行公鑰零知識(shí)證明。認(rèn)證完畢后,交換彼此的身份信息密文。在匿名確診階段,用戶確診后,通過(guò)執(zhí)行帶區(qū)域?qū)傩缘娜汉灻尤氩∪巳海芾碚邽闄?quán)威醫(yī)療機(jī)構(gòu)。在公示解密階段,將該患者手機(jī)中傳染周期內(nèi)的密接者加密信息以及群簽名張貼到公告牌上。若群簽名驗(yàn)證成功且解密密文成功,則表示該密文信息指向他們自己。必要的情況下,群管理者(醫(yī)生)可以打開(kāi)簽名追蹤到確認(rèn)患者的身份信息。
4.2.1 注冊(cè)階段
(1)用戶注冊(cè):
Step2:用戶Alice選擇一個(gè)私鑰skA,私鑰為一個(gè)隨機(jī)數(shù)a(1 Step3:Alice隨機(jī)生成標(biāo)識(shí)IDA∈p。 (2)醫(yī)生注冊(cè): G為3型配對(duì)組生成器,H為哈希函數(shù),PS為改進(jìn)Pointcheval-Sanders簽名方案。用k來(lái)表示每個(gè)用戶的屬性個(gè)數(shù),本方案僅僅采用一個(gè)區(qū)域?qū)傩?,k取值為1。 Step1:Setup(1λ,k)→pp:生成Γ=(p,G1,G2,GT,e)←G(1λ),返回 (Γ,k+1)。生成公共參數(shù)pp,用于生成發(fā)行者(一般情況下為權(quán)威醫(yī)療機(jī)構(gòu))密鑰。 4.2.2 相遇認(rèn)證階段 (1)公鑰零知識(shí)證明。 Alice和Bob相遇,Alice向Bob發(fā)送自己的公鑰pkA。Alice要向Bob證明,Bob收到的pkA:A=gamodp是正確產(chǎn)生的,Bob已收到有效的Alice公鑰,如下: ①驗(yàn)證者(Bob)發(fā)送一個(gè)隨機(jī)λ位素?cái)?shù)l給證明者(Alice)。 ②證明者(Alice)的私鑰skA為a∈以及r∈[0,l-1],有a=ql+r,計(jì)算gq=Q。證明者(Alice)發(fā)送r給驗(yàn)證者(Bob)。 ③驗(yàn)證者(Bob)驗(yàn)證,如果r∈[0,l-1]且Qlgr=A,則確認(rèn)收到的pkA是正確的。 在另一方面,Bob也這樣做,向Alice發(fā)送自己的公鑰pkB,讓Alice驗(yàn)證他收到的自己的公鑰是否是正確產(chǎn)生的。 (2)相遇認(rèn)證。 相遇認(rèn)證階段協(xié)議模型如圖2所示。 圖2 相遇認(rèn)證協(xié)議模型 認(rèn)證請(qǐng)求:將Key用Bob的公鑰進(jìn)行Elgamal加密CB=(Key)pkB,Key為一次性會(huì)話密鑰,用于此會(huì)話中接觸者雙方之間的信息加密通信如下: Step1:對(duì)消息Key隨機(jī)選擇整數(shù)r(1 Step2:計(jì)算c≡gr(modp),c'≡yrKey(modp); Step3:生成密文CB=(c,c')。 將mA=(IDA,loc,T)用Key加密CKey=(IDA,loc,T)Key并將CKey和CB一起發(fā)送給Bob。 請(qǐng)求驗(yàn)證:Bob在接收到消息后,用自己的私鑰skB解密獲得對(duì)稱密鑰Key,如下: Step1:Bob收到密文CB=(c,c'); Step3:得到明文m=Key。 接觸者Bob可以解密(mA)Key,從而獲取Alice的相關(guān)信息(身份標(biāo)識(shí),相遇地點(diǎn)編號(hào),時(shí)間戳)。用pkA對(duì)mA進(jìn)行Elgamal加密。將加密完的信息登記在B的手機(jī)上。 請(qǐng)求響應(yīng):相對(duì)的,Bob也這樣做,將mB用Key加密CKey=(mB)Key。Bob向Alice發(fā)送響應(yīng)消息(mB)Key。其中mB為Bob的相關(guān)信息,而mB=(IDB,loc,T),其中IDB為Bob的身份標(biāo)識(shí),loc為接觸者雙方相遇的地點(diǎn),T為接觸者雙方相遇的時(shí)間。 響應(yīng)確認(rèn):在接收到消息后,Alice使用對(duì)稱密鑰可以解密CKey,從而獲取Bob的相關(guān)信息(身份標(biāo)識(shí),相遇地點(diǎn)編號(hào),時(shí)間戳)。驗(yàn)證相遇地點(diǎn)編號(hào)以及時(shí)間戳,不同則驗(yàn)證失敗。用pkB對(duì)mB進(jìn)行Elgamal加密。將加密信息登記在Alice的手機(jī)上。 4.2.3 匿名確診階段 在本小節(jié)中,將介紹關(guān)于一個(gè)重要構(gòu)建塊,即帶區(qū)域?qū)傩缘膭?dòng)態(tài)群簽名,基于動(dòng)態(tài)群簽名[15]改進(jìn)而來(lái)。本階段通過(guò)權(quán)威醫(yī)療機(jī)構(gòu)和用戶之間發(fā)行簽名,來(lái)實(shí)現(xiàn)用戶信息的隱私保護(hù)以及匿名。 (1)生成確診憑證。 Issue:為了在用戶u和權(quán)威醫(yī)療機(jī)構(gòu)D之間發(fā)行簽名,假設(shè)用戶和發(fā)行者之間通信的信道是安全信道。如果一方中止協(xié)議,則返回⊥。進(jìn)一步假設(shè)身份空間ID是Zp的多項(xiàng)式大小的子集。 Step1:Issue.D(sk,st,ID,regionid)。 -如果st中存在記錄(ID,regionid,*),則中止; -σ=(a',σ1,σ2)←PS.Sign(sk,(ID,T)); -將σ發(fā)送給u,并返回st' ←st∪(ID,regionid,a'),將狀態(tài)更新為st'。 ID是患者用戶的身份標(biāo)識(shí),regionid為患者用戶所在區(qū)域的編號(hào)值。PS為改進(jìn)的Pointcheval-Sanders簽名方案。 Step2:Issue.U(ID,regionid,pk),一旦從D接收到σ: -驗(yàn)證PS.Vf(GPK,(ID,regionid),σ)=1,如果不是則中止; cred為病人加入病人群的入群憑證。確診的病人加入病人群。 (2)匿名簽名。 對(duì)確診患者的密切接觸者的加密信息,用帶地域?qū)傩缘娜汉灻灻1砻髟撔畔⒋_實(shí)是來(lái)自確診病人,且是該確診病人的密切接觸者相關(guān)信息。 Auth(GPK,cred,m)→tok:分析 m即為確診病人最近傳染周期內(nèi)的密切接觸者Bob的加密信息(mB)pkB。tok為確診患者對(duì)其最近傳染周期內(nèi)的密切接觸者(例如Bob)的加密信息的簽名。 4.2.4 公示解密階段 (1)簽名公示。 Step2:將確診患者最近傳染周期內(nèi)的密切接觸者(例如Bob)的加密信息(mB)pkB和tok以及σ*公布在公告板上。公布信息時(shí),按照患者所在區(qū)域劃分進(jìn)行公布。 (2)解密查詢。 Step1:外界用戶驗(yàn)證信息真實(shí)性以及是否被篡改。 ①先驗(yàn)證該信息是否被權(quán)威醫(yī)療機(jī)構(gòu)授權(quán)。驗(yàn)證PS.Vf(GPK,(m1,…,mn),σ*)=1,若不是,則該信息無(wú)效。 ②驗(yàn)證公布在公告板上的tok帶屬性的群簽名,若驗(yàn)證成功,則該信息確實(shí)是來(lái)自確診患者。Vf(GPK,m,regionid,tok)→b:用π=(c,vID,va'),regionid=a1來(lái)分析tok=(σ1,σ2,π)。如果σ1≠1G且c=H0(u,regionid,m,σ1,σ2,GPK),則返回1。這是因?yàn)?/p> Step2:驗(yàn)證成功之后,用戶讀取加密信息。如果可以用自己的私鑰解密某個(gè)加密信息,若能解密其中某個(gè)信息,則說(shuō)明該用戶就是確診患者的密切接觸者之一。 4.2.5 身份追蹤 醫(yī)療機(jī)構(gòu)可打開(kāi)群簽名,找到確診患者的身份信息。Open(GSK,st,m,regionid,tok)→ID/⊥:為消息m屬性regionid生成身份驗(yàn)證令牌tok=(σ1,σ2,π)的用戶恢復(fù)身份ID。它首先驗(yàn)證tok對(duì)m和regionid是否有效。驗(yàn)證成功,遍歷st中的元組(ID,regionid,a'),直到找到一個(gè)使得(a',σ1,σ2)在(ID,regionid)上是一個(gè)有效的PS簽名,然后返回ID。如果沒(méi)有找到這樣的元組,則返回⊥。 本方案的安全性主要是基于帶屬性的動(dòng)態(tài)群簽名方案[10]以及ElGamal加密體制的安全性。 定理1:在隨機(jī)oracle模型中,如果第一組DDH和SDL假設(shè)都對(duì)組生成器G有效,則帶地域?qū)傩缘膭?dòng)態(tài)群簽名方案滿足匿名性。 以及c←H0(u,regionid*,m*,σ1,σ2,GPK)。Δ設(shè)置π←(c,sID,sa'),以及返回(σ1,σ2,π)給Λ。 Δ對(duì)查詢挑戰(zhàn)的回答由于C計(jì)算的σ1和σ2的分布,在計(jì)算上與C0的回答沒(méi)有區(qū)別,且Δ在G1中的DDH假設(shè)下是不可區(qū)分的。C0和Δ的不可區(qū)分性論證類似于Jan Camenisch等人方案[10]的證明。 還原(reduction)算法像挑戰(zhàn)之前一樣回答其他查詢。因此,對(duì)Issue,Issue.D,Auth, Corrupt,Open查詢和挑戰(zhàn)的查詢的聯(lián)合分布的答案還原算法都相同地分布到C0或Δ,這取決于(g0,g1,g2,g3)是否為DDH元組。因此DDH假設(shè)下,C0和Δ在計(jì)算上不可區(qū)分(任何對(duì)手的明顯優(yōu)勢(shì)最多是先驗(yàn)還原算法|ID|2倍DDH優(yōu)勢(shì))。同樣,Δ和C1在計(jì)算上無(wú)法區(qū)分。C0和C1在計(jì)算上不可區(qū)分,DGSR在DDH假設(shè)下滿足匿名性。接著,列舉一些典型的攻擊進(jìn)行分析: 5.1.1 敵手的竊聽(tīng)攻擊 竊聽(tīng)是一種捕獲未經(jīng)授權(quán)的機(jī)密信息的攻擊。加密提供了強(qiáng)大的防御竊聽(tīng)。在該框架中,所有通信都是加密的,以防止竊聽(tīng)。從理論上講,如果攻擊者無(wú)法獲得密鑰,他們就無(wú)法解密消息以獲得消息內(nèi)部的內(nèi)容。 5.1.2 中間人攻擊 中間人(man-in-middle,MITM)攻擊是指攻擊者在通信過(guò)程中偽裝成正確的人,利用從一方接收到的信息欺騙另一方。受害者雙方都覺(jué)得他們?cè)谥苯咏粨Q信息。然而,本協(xié)議采用了零知識(shí)證明,能夠驗(yàn)證彼此公鑰是否是正確產(chǎn)生的,無(wú)法冒充其他人,并把自己的公鑰頂替他人的公鑰。不能將無(wú)效公鑰引入認(rèn)證。它保證了對(duì)MITM攻擊的強(qiáng)大防御,因?yàn)镸ITM攻擊者不可能在沒(méi)有正確的私鑰的情況下實(shí)現(xiàn)公鑰的零知識(shí)證明。 5.1.3 重放攻擊 在重放攻擊中,攻擊者獲取兩個(gè)受害者之間的信息并攔截該信息并欺騙性地重放它。這種攻擊可以通過(guò)在相遇認(rèn)證中使用一次性共享密鑰來(lái)禁用。此外,這兩個(gè)認(rèn)證都使用時(shí)間戳和帶隨機(jī)數(shù)的ElGamal加密體制來(lái)防止應(yīng)答攻擊。如果攻擊者想要實(shí)現(xiàn)他的目標(biāo),他必須猜測(cè)一次性共享密鑰,但正如上面分析的,這幾乎是不可能的。 對(duì)協(xié)議進(jìn)行性能評(píng)估,測(cè)試環(huán)境如下:處理器:Intel(R) Core(TM) i7-8550U CPU @ 1.80 GHz 2.00 GHz,RAM 16.00 GB。 語(yǔ)言:Java+JPBC庫(kù)+Bouncycastle第三方庫(kù)。 5.2.1 相遇身份認(rèn)證性能分析 為方便后續(xù)的性能評(píng)估,定義以下符號(hào):Th:運(yùn)行1次Hash函數(shù)所需的時(shí)間(Th≈0.32 ms);Ts:運(yùn)行1次對(duì)稱加密所需的時(shí)間(Ts≈0.8 ms);Te:運(yùn)行一次Elgamal加密或解密所需要的平均時(shí)間(Te≈2.6 ms);Tzk:運(yùn)行1次公鑰零知識(shí)證明所需的時(shí)間(Tzk≈13 ms)。異或運(yùn)算的計(jì)算量很小,忽略不計(jì)。上述這些操作運(yùn)行所花費(fèi)的時(shí)間為10次實(shí)驗(yàn)的平均值。 表1列出了文中相遇階段身份認(rèn)證協(xié)議與Zhao[17]身份認(rèn)證協(xié)議計(jì)算開(kāi)銷的對(duì)比。且文中對(duì)相遇雙方執(zhí)行了高效的零知識(shí)證明[14]。無(wú)需第三方CA機(jī)構(gòu),僅通過(guò)雙方進(jìn)行彼此公鑰的零知識(shí)證明,即可確認(rèn)彼此公鑰的正確性。Zhao[17]協(xié)議是非對(duì)稱密鑰雙向認(rèn)證協(xié)議,需要彼此注冊(cè)身份,且登錄和雙向認(rèn)證階段的信息構(gòu)造運(yùn)算較為復(fù)雜。文中相遇階段身份認(rèn)證協(xié)議相比Zhao[17]的身份認(rèn)證協(xié)議在保證安全性的同時(shí)也更加高效。且應(yīng)用Yuen[14]的緊致零知識(shí)證明僅僅需要一次實(shí)現(xiàn)驗(yàn)證,十分高效。 表1 身份認(rèn)證性能比較 5.2.2 匿名確診階段性能分析 病人身份驗(yàn)證令牌包含兩個(gè)G1元素和三個(gè)p元素,共計(jì)232個(gè)字節(jié)。群簽名知識(shí)證明中的哈希值實(shí)際上可以縮短,進(jìn)一步將群簽名縮短為216字節(jié)。在本方案中,由于令牌大小為216字節(jié),基于配對(duì)的實(shí)例化足夠緊湊,可以與本協(xié)議的病人確診方案結(jié)合使用。 本次測(cè)試分別測(cè)試文中方案匿名確診階段群簽名的令牌生成過(guò)程、簽名過(guò)程所消耗的時(shí)間,同時(shí)在相同環(huán)境下與Jan Camenisch[10]方案進(jìn)行了測(cè)量比較,結(jié)果如表2所示。 表2 匿名確診性能比較 ms 如表2所示,文中方案在效率上略優(yōu)于Jan Camenisch[10]方案。文中方案采用帶地域?qū)傩缘膭?dòng)態(tài)群簽名方案,僅采用一個(gè)屬性,相較于Jan Camenisch提出的多屬性動(dòng)態(tài)群簽名方案更為簡(jiǎn)便,在性能上更加優(yōu)秀。 5.2.3 公示解密階段性能分析 圖3表示在公示解密階段,512 bit和1 024 bit密鑰長(zhǎng)度時(shí),匹配解密一定數(shù)量的密文的性能情況。公布的密文越多,解密匹配的次數(shù)越多,運(yùn)行時(shí)間也越多。密鑰長(zhǎng)度也會(huì)影響運(yùn)行的時(shí)間。為了保證實(shí)驗(yàn)的隨機(jī)性和真實(shí)性,分別隨機(jī)選取50條,100條,150條,200條密文進(jìn)行解密匹配,計(jì)算時(shí)間消耗。計(jì)算200次時(shí),1 024 bit密鑰長(zhǎng)度的時(shí)間消耗都在1 000 ms以下,512 bit密鑰長(zhǎng)度的時(shí)間消耗僅有100 ms左右。 圖3 解密匹配執(zhí)行時(shí)間 考慮到實(shí)際的計(jì)算能力遠(yuǎn)遠(yuǎn)高于文中的實(shí)驗(yàn)條件,解密匹配的時(shí)間消耗會(huì)更短,因此文中協(xié)議具有較好的性能。且Elgamal雖然是公鑰密碼體制,但身份信息較短,約256比特,解密代價(jià)較小,能夠?yàn)橘Y源受限的用戶設(shè)備所容忍。 用ElGamal加密體制以及Yuen的零知識(shí)證明方法,來(lái)驗(yàn)證相遇雙方身份。采用對(duì)稱加密實(shí)現(xiàn)加密傳輸彼此身份信息,用對(duì)方公鑰將對(duì)方身份信息加密保存在自己手機(jī)上。在病人匿名確診認(rèn)證階段,基于帶屬性的群簽名,對(duì)患者確診進(jìn)行匿名認(rèn)證。在必要情況下,可以通過(guò)打開(kāi)群簽名的方式來(lái)達(dá)到追蹤患者身份的目的。該方案的隱私保護(hù)特性在于:(1)匿名性:患者身份不能泄露;(2)可追蹤性:在公示階段,用戶可通過(guò)嘗試解密公布的加密信息來(lái)驗(yàn)證自己是否為患者的密切接觸者。5 方案的安全性及性能分析
5.1 安全性分析
5.2 性能分析
6 結(jié)束語(yǔ)