張艷碩 劉 寧 羅樂琦
北京電子科技學(xué)院,北京市 100070
隨著電子商務(wù)領(lǐng)域的不斷發(fā)展,各類應(yīng)用開始推行用戶匿名功能,以達(dá)到在保護(hù)用戶身份信息的前提下實現(xiàn)相應(yīng)投票、選舉等功能。 但現(xiàn)在市場上匿名功能的實現(xiàn)大多都建立在管理員知情的情況下,這就給用戶身份信息安全帶來了潛在威脅,甚至造成不可估量的損失。 故如何在足夠安全的情況下,實現(xiàn)對用戶信息的真正匿名便成為了一個十分重要的問題。
用戶要想在認(rèn)證過程中不讓自己的身份及認(rèn)證信息被其他用戶或攻擊者得到,那么方案就要滿足匿名性,而對于大部分方案來說,要想達(dá)到保密目的,最基本的要求就是滿足它的安全性,即一個方案允許被算法或敵手攻破,只要被攻破的概率是可忽略的即可。 可見要想解決這一問題,安全性和匿名性是兩個需關(guān)注的方面。
在安全性方面,隨著1977 年Rivest、Shamir和Adleman[1]提出的基于大整數(shù)分解問題[2][3][4]的RSA 公鑰密碼系統(tǒng)的問世,密碼學(xué)找到了一個新的發(fā)展方向。 1989 年,剛興起的互聯(lián)網(wǎng)采用了RSA 加密軟件。 2005 年,RSA 開始占據(jù)消費者身份保護(hù)市場。 兩年以后,RSA再一次為消費者身份保護(hù)領(lǐng)域增加了基于知識的驗證解決方案[5]。 但是隨著各方面技術(shù)的發(fā)展,依賴于大整數(shù)因子分解的傳統(tǒng)RSA 算法開始遭受威脅。 為解決這一威脅,相關(guān)領(lǐng)域?qū)<议_始從增加素數(shù)個數(shù)、加入隨機(jī)數(shù)以及將公鑰、私鑰同時隱藏等多個方面著手進(jìn)行研究[6][7]。2017 年,Tang-avel 和Varalakshmi[8]提出了比RSA 算法更安全的ISRSAC 算法。 ISRSAC 算法主要是在Thangavel 和Varalakshmi[9]提出的利用四個素數(shù)提高安全性從而增強(qiáng)RSA 密鑰安全的ESRKGS 算法基礎(chǔ)上由Thangavel 和Varalakshmi 修改而成的。 由此可見,ISRSAC 算法大幅度提高了公共密鑰的安全性。
在匿名性方面,就不得不提能夠隱藏真實簽名者的身份信息,從而達(dá)到保護(hù)隱私效果的環(huán)簽名。 環(huán)簽名作為一種特殊的數(shù)字簽名,2001 年首次由Rivest 給出了相關(guān)的環(huán)簽名定義[10]。 環(huán)簽名即簽名者根據(jù)所需隨機(jī)選擇多個用戶,利用所選用戶的公鑰以及自己的公私鑰對對相應(yīng)文件進(jìn)行簽名[11]的一種簽名算法。 2003-2004年,學(xué)者們在對環(huán)簽名概念和模型有了深層次理解后,開始引入多種新的環(huán)簽名方案,并提出了新的環(huán)簽名發(fā)展理念。 2005 年,密碼學(xué)者們開始注重環(huán)簽名的實際應(yīng)用研究[10]。 由于各領(lǐng)域?qū)Νh(huán)簽名應(yīng)用需求的不同,環(huán)簽名以不同屬性為重點提出多種簽名方案,根據(jù)環(huán)簽名的不同屬性特征,可以將現(xiàn)有的環(huán)簽名分為門限環(huán)簽名[12]、關(guān)聯(lián)環(huán)簽名[13]、可撤銷性匿名環(huán)簽名[14]和可否認(rèn)的環(huán)簽名[15]四大類。
還有一些學(xué)者根據(jù)密鑰生成方式的不同,將環(huán)簽名分為基于PKI 的環(huán)簽名[16]、基于IBC 的環(huán)簽名[17]和基于CLC 的環(huán)簽名[18]三大類。
基于證書公開密鑰體系(PKI)的環(huán)簽名是一種采用證書機(jī)制實現(xiàn)用戶的身份和用戶的鑰匙之間的安全對應(yīng)的環(huán)簽名;基于身份標(biāo)識密碼技術(shù)(IBC)的環(huán)簽名是一種非對稱的公鑰密碼體系下的環(huán)簽名;基于無證書密碼體制(CLC)的環(huán)簽名是一種介于傳統(tǒng)PKI 和標(biāo)識密碼技術(shù)之間的環(huán)簽名。 其中PKI 體系下經(jīng)典的環(huán)簽名主要有基于RSA 簽名算法的RST 環(huán)簽名算法[19],但是安全性基于大整數(shù)因式分解的RSA 算法存在著很大的安全隱患,于是出現(xiàn)了能夠在一定程度上提高方案安全性的改進(jìn)算法——基于ISRSAC 的環(huán)簽名。 本文便在楊滕[20]設(shè)計的基于ISRSAC 的數(shù)字簽名的基礎(chǔ)上,構(gòu)造出了基于ISRSAC 的環(huán)簽名方案,為環(huán)簽名提供了一種新的研究方案,同時也為那些對匿名性等功能有較高需求的領(lǐng)域提供新的研究方向。
本文整體結(jié)構(gòu)如下:第2 節(jié)介紹了ISRSAC算法和基于ISRSAC 算法的數(shù)字簽名[20],并將ISRSAC 算法與RSA 算法進(jìn)行了對比,更直觀地表現(xiàn)出了ISRSAC 算法的優(yōu)勢所在;第3 節(jié)介紹了環(huán)簽名算法及其性質(zhì),包括無條件匿名性、不可偽造性、自發(fā)性和正確性,同時構(gòu)造出了基于ISRSAC 的環(huán)簽名方案;第4 節(jié)對本文構(gòu)造方案的安全性進(jìn)行了分析,并將本方案與基于ISRSAC 算法的其他簽名方案和其他體制下的環(huán)方案方案分別進(jìn)行對比分析,展示出了本方案所特有的性質(zhì),也進(jìn)一步證明了基于ISRSAC 的環(huán)簽名在一些對用戶信息匿名要求相對較高的領(lǐng)域可以有很好的應(yīng)用市場和發(fā)展前景;第5 節(jié)給出了本文的總結(jié)。
ISRSAC 算法主要通過利用增加隨機(jī)數(shù)以及增大正整數(shù)n的分解難度的方法來提高算法的破解難度。 ISRSAC 算法由三階段組成:密鑰生成算法、加密算法和解密算法。
具體算法流程如下:
(1) 密鑰生成算法
1) 隨機(jī)選取兩個大素數(shù)p和q,其中p≠q,p >3,q >3;
2) 計算n=p·q·(p-1)·(q-1),m=p·q;
4) 隨機(jī)選取一個數(shù)e, 同時滿足1<e <α(n) 和gcd(e,α(n))= 1;
5) 計算d,滿足d·e≡1(modα(n))。
通過上述計算,確定出公鑰(e,n)和私鑰(d,m)。
(2) 加密算法
假設(shè)原文為M, 則可以通過公鑰得到加密后的密文C=Memodn。
(3) 解密算法
已知私鑰(d,m) 的情況下,可將密文C還原得到明文M=Cdmodm。
算法的安全性很大程度決定了對應(yīng)簽名方案的安全性,與傳統(tǒng)的RSA 算法相比,ISRSAC算法的安全性有了很大程度的提高,主要體現(xiàn)在以下三方面:
(1) 整數(shù)n的分解難度提升。 在ISRSAC算法中正整數(shù)n的分解難度提高,由RSA 算法中分解為兩個素數(shù)提升到分解為兩個素數(shù)外加兩個整數(shù)。 這就讓攻擊者很難利用現(xiàn)有方法在給定的多項式時間內(nèi)進(jìn)行因式分解,從而找到兩個素數(shù)p,q。
(2) 引入隨機(jī)數(shù),提高隨機(jī)性。 在ISRSAC算法中,攻擊者要想獲得私鑰除了需要準(zhǔn)確找到p,q外還需要確定隨機(jī)因子r。 由于隨機(jī)因子r值的確定具有隨機(jī)性,攻擊者很難在分解出兩個素數(shù)的基礎(chǔ)上再去確定一個隨機(jī)數(shù)的具體值。
(3) 定義了一個新的安全函數(shù)α(n)。 ISRSAC 算法增加了一個新的安全函數(shù)α(n),α(n)中涉及隨機(jī)數(shù)r,這就讓攻擊者即便能夠正確分解出p,q,也很難再進(jìn)一步進(jìn)行攻擊。
但是自Tangavel 和Varalakshmi 在2017 年提出ISRSAC 算法[8]以來,有關(guān)ISRSAC 算法在數(shù)字簽名上的研究還較少,其中在2021 年提出了基于ISRSAC 算法的數(shù)字簽名方案[20],并在此基礎(chǔ)上構(gòu)造了代理數(shù)字簽名方案、有序多重數(shù)字簽名方案和廣播多重數(shù)字簽名方案。
數(shù)字簽名是保證交互雙方傳輸數(shù)據(jù)完整性以及確保交互雙方身份認(rèn)證的關(guān)鍵核心技術(shù)。通過數(shù)字簽名技術(shù)可以將現(xiàn)實生活中手寫簽字或印章的功能在數(shù)字社會中得以實現(xiàn)[21]。
基于ISRSAC 算法的數(shù)字簽名由三階段構(gòu)成:密鑰生成算法、簽名生成算法、簽名驗證算法[20]。
具體算法流程如下:
(1) 密鑰生成算法
1) 隨機(jī)選取兩個大素數(shù)p和q,其中p≠q,p >3,q >3;
2) 計算n=p·q·(p-1)·(q-1),m=p·q;
4) 隨機(jī)選取一個數(shù)e, 同時滿足1<e <α(n) 和gcd(e,α(n))= 1;
5) 計算d,滿足d·e≡1(modα(n))。
通過上述計算,確定出公鑰(e,m) 和私鑰(d,n)。
(2) 簽名生成算法
由于大多數(shù)明文的字符長度較長,在簽名之前先要對明文進(jìn)行壓縮。 哈希函數(shù)作為一個確定性函數(shù),主要通過散列算法將任意長度的輸入轉(zhuǎn)換成固定長度的輸出。 在考慮到算法的不可逆性、正向快速性和抗碰撞性等性質(zhì)后,在選擇哈希算法時,選用了中華人民共和國政府采用的密碼散列函數(shù)標(biāo)準(zhǔn)SM3[22]。 在本文中,假設(shè)原文為M, 哈希函數(shù)為H, 明文M的哈希值為H(M)。 為了對H(M) 進(jìn)行簽名,在加入私鑰d和n后進(jìn)行簽名,生成:
S≡H(M)dmodm
(3) 簽名驗證算法
為驗證簽名S,在計算出M的哈希值H(M)后,加入公鑰e和m,驗證方程:
H(M) ≡Semodm
是否正確。 如果正確則輸出accept,否則輸出reject。
2017 年,M.Thangaval 提出了ISRSAC 算法,ISRSAC 算法主要通過增加模n 值分解的復(fù)雜性對RSA 算法進(jìn)行了安全改進(jìn)。
文獻(xiàn)[20]使用暴力攻擊,對RSA 下的數(shù)字簽名算法和IRSAC 下的數(shù)字簽名算法進(jìn)行了安全對比,對比結(jié)果如圖1 所示。
圖1 安全性對比
顯然,ISRSAC 算法下的數(shù)字簽名方案要比RSA 算法下的數(shù)字簽名方案需要更多的攻擊時間,因此安全性也較高。 并且隨著消息長度的增加,安全性也有所提高。 所以ISRSAC 算法下簽名方案的安全性明顯優(yōu)于RSA 算法下的簽名方案的安全性。
環(huán)簽名作為一種匿名簽名技術(shù)自2001 年被提出以來,很多密碼界人士開始對其進(jìn)行研究。
環(huán)簽名主要包含四個算法[23]:系統(tǒng)初始化算法、密鑰生成算法、環(huán)簽名生成算法和環(huán)簽名驗證算法。 具體算法流程如下:
(1) 系統(tǒng)初始化算法:
即params←Setup(λ),這是一個概率多項式時間(PPT)算法,在輸入一個安全參數(shù)λ以后,輸出一組安全參數(shù)params。
(2) 密鑰生成算法:
即(pk,sk) ←KeyGen(λ,params), 一個PPT 算法,輸入安全參數(shù)λ和安全參數(shù)組params后,輸出公鑰pk和私鑰sk。
(3) 環(huán)簽名生成算法:
即σ←RSign(M,n,S,skπ), 一個PPT 算法,輸入待簽名信息M、n個環(huán)成員公鑰所構(gòu)成的集合S= {pk1,pk2,...,pkn} 和簽名者的私鑰skπ后,輸出簽名值σ。
(4) 環(huán)簽名驗證算法:
即accept/reject←RVerify(M,S,σ),輸入已簽名信息M、n個環(huán)成員公鑰所構(gòu)成的集合S={pk1,pk2,...,pkn} 和簽名值σ, 如果σ是M的有效輸出,則輸出accept,否則輸出reject。
自環(huán)簽名算法被提出以來,環(huán)簽名研究取得了很大的進(jìn)步,近幾年,除了涌現(xiàn)出很多安全高效的環(huán)簽名方案之外,還出現(xiàn)了很多將環(huán)簽名與其他特殊數(shù)字簽名方案結(jié)合的新的環(huán)簽名方案。
Glodwasser 和Micali 在1984 年提出了安全性定義。 這一安全性定義一般通過一種挑戰(zhàn)者C 和攻擊者A 之間的虛擬游戲形象化定義。 在這一安全模型定義下,規(guī)定攻擊者A 可以訪問以下諭言機(jī):
(1) 加入(Setup)諭言機(jī)。 挑戰(zhàn)者C 通過執(zhí)行給定的算法,生成相應(yīng)的密鑰對,并將其中新生成的公鑰pk發(fā)送給攻擊者A,對應(yīng)私鑰sk自己進(jìn)行保存。
(2) 查詢(Inquire)諭言機(jī)。 攻擊者A 可以通過公鑰環(huán)S= {pk1,pk2,…,pkn} 和消息M 進(jìn)行相關(guān)數(shù)字簽名查詢,每當(dāng)挑戰(zhàn)者收到(S,M)后,都會生成一個有效的數(shù)字簽名值σ,并將數(shù)字簽名值σ發(fā)送給攻擊者C。
(3) 輸出(Output)諭言機(jī)。 當(dāng)攻擊者A 認(rèn)為查詢階段結(jié)束以后,輸出對應(yīng)的(M*,σ*)。
一般一個環(huán)簽名方案為了保證安全,需要滿足正確性、不可偽造性、無條件匿名性和安全性,本節(jié)給出以上性質(zhì)的相關(guān)定義。
定義1 正確性
一個環(huán)簽名方案是正確的,即簽名者在簽名結(jié)束后,得到的簽名值可以在簽名驗證階段得以驗證,都有RVerify(M,S,σ) →accept。
定義2 不可偽造性
一個環(huán)簽名方案是不可偽造的,即攻擊者在對任何環(huán)成員的私鑰一無所知的情況下,即使能夠通過一些渠道獲得任意消息的簽名情況,但其能夠真正生成與簽名者一樣的合法環(huán)簽名值,贏得下述游戲的概率是忽略不計的。
具體游戲步驟如下:
(1) 挑戰(zhàn)者C 生成系統(tǒng)參數(shù)params, 并將其發(fā)送給攻擊者A;
(2) 攻擊者A 可自主查詢以上諭言機(jī);
(3) 攻擊者A 輸出簽名消息M*、公鑰環(huán)S*={pk1,pk2,…,pkn} 以及偽造的簽名σ*,其中σ*不是通過查詢(Inquire)諭言機(jī)查詢得到的;
(4) 若RVerify(M*,S*,σ*) 輸出accept,則游戲勝利,否則游戲失敗。
定義3 無條件匿名性
一個環(huán)簽名方案是無條件匿名的,即在任意的多項式時間內(nèi),攻擊者A 無法確定真正簽名者的身份,贏得下述游戲的概率低于1/n, 其中n代表整個群體的個體數(shù)。
具體的游戲步驟如下:
(1) 挑戰(zhàn)者C 生成系統(tǒng)參數(shù)params, 并將其發(fā)送給攻擊者A;
(2) 攻擊者A 可以自主查詢以上諭言機(jī);
(3) 攻擊者A 將簽名消息M*以及公鑰環(huán)S*= {pk1,pk2,…,pkn} 發(fā)送給挑戰(zhàn)者C;
(4) 挑戰(zhàn)者C 隨機(jī)選取一個π(1 ≤π≤n),計算σπ←RSign(M*,n,S*,skπ),并將σπ發(fā)送給攻擊者A;
(5) 攻擊者A 猜測對應(yīng)π′ 的值,若π′ ≡π,游戲勝利,否則游戲失敗。
定義4 安全性
一個環(huán)簽名方案如果滿足無條件匿名性、不可偽造性和正確性,就稱該簽名方案是安全的,環(huán)中的每一位成員成為真正簽名者的條件是一樣的,它們之間的地位是平等的。
正是由于環(huán)簽名以上幾個性質(zhì),讓環(huán)簽名在電子郵件、數(shù)據(jù)交換、電子交易和電子貨幣等領(lǐng)域[10],以及那些需要匿名舉報等功能的應(yīng)用中得到了廣泛應(yīng)用。 此外,環(huán)簽名在環(huán)中可以在不經(jīng)過用戶同意的情況下就任意選擇一個用戶進(jìn)行簽名,這在很大程度上提高了環(huán)簽名的效率性以及隱私安全性。
隨著技術(shù)的進(jìn)步,傳統(tǒng)的數(shù)字簽名方案已經(jīng)不能滿足現(xiàn)在各領(lǐng)域?qū)Π踩缘囊蠹案黝惒町惢枨蟆?環(huán)簽名作為一種特殊的數(shù)字簽名,因其可以很好的隱藏簽名者身份信息,從而得到了廣泛應(yīng)用。 本節(jié)在基于ISRSAC 的數(shù)字簽名算法[20]的基礎(chǔ)上,設(shè)計了一種基于ISRSAC 的環(huán)簽名方案,這一方案主要包含三個算法:密鑰生成算法、環(huán)簽名生成算法、環(huán)簽名驗證算法。
(1) 密鑰生成算法
1) 隨機(jī)選取兩個大素數(shù)p和q,其中p≠q,p >3,q >3;
2) 計算
n=p·q·(p- 1)·(q- 1),m=p·q;
4) 隨機(jī)選取一個數(shù)e, 同時滿足1<e <α(n) 和gcd(e,α(n))= 1;
5) 計算d,滿足d·e≡1(modα(n))。
通過上述計算,確定出公鑰(e,m) 和私鑰(d,n)。
(2) 環(huán)簽名生成算法
簽名者通過隨機(jī)n- 1 個用戶的公鑰,以及自己的公鑰形成一個公鑰環(huán)L= {P1,P2,P3,...,Pn},其中Pi= (ei,mi),i= 1,2,...n, 簽名者為其中第π(1 ≤π≤n) 個用戶,再利用自身私鑰(dπ,nπ) 和公鑰環(huán)L 通過算法1 生成對消息M的環(huán)簽名。
算法1 ISRSAC 環(huán)簽名生成算法(1) 計算Sπ = H1(M)dπ· ∏n i=1,i≠πH1(M) -ei2(modn);(2) 計算Si = H1(M)eπei(mod n),其中i = 1,2,…,π-1,π+ 1,…,n;(3) 輸出關(guān)于M 的環(huán)簽名(S1,S2,...,Sn)。
在算法1 中,H1(M):{0,1}*→Zm,Si經(jīng)過H1(·) 運算構(gòu)成環(huán)狀結(jié)構(gòu)。
(3) 環(huán)簽名驗證算法
驗證者在收到消息M′以及環(huán)簽名值(S1′,S2′,...,Sn′) 后進(jìn)行以下步驟:
1) 計算出H1(M′) 的值;
3) 判斷是否
若滿足則輸出“accept”, 否則輸出“reject”。 有關(guān)這一方案的正確性證明將在4.1節(jié)安全性分析中給出。
接下來依次對環(huán)簽名方案的正確性、不可偽造性和匿名性進(jìn)行證明。
定理1 基于ISRSAC 的環(huán)簽名方案滿足正確性。
安全性得以證明。 這一方案的正確性說明了這一方案不會產(chǎn)生二義性,保證了方案可以輸出正確結(jié)果。
定理2 基于ISRSAC 的環(huán)簽名方案具有不可偽造性。
證明:當(dāng)基于ISRSAC 的環(huán)簽名的不可偽造性是通過挑戰(zhàn)者C 與攻擊者A 之間的虛擬游戲來定義時,游戲的具體步驟如下:
(1) 挑戰(zhàn)者C 生成系統(tǒng)參數(shù)params,并將其發(fā)送給攻擊者A;
(2) 攻擊者A 可自主查詢以上諭言機(jī);
(3) 攻擊者A 輸出簽名消息M*、公鑰環(huán)L*= {P1,P2,P3,...,Pn} 以及偽造的簽名σ*,其中σ*不是通過查詢(Inquire)諭言機(jī)查詢得到的;
(4) 若RVerify(M*,L*,σ*) 輸出accept,則游戲勝利,否則游戲失敗。
在游戲過程中,攻擊者A 生成的簽名值σ*是消息M*的有效簽名值;公鑰環(huán)L*={P1,P2,P3,...,Pn} 中的公鑰Pi都是通過加入諭言機(jī)得出的;攻擊者A 沒有得到任何環(huán)成員的私鑰;攻擊者A 生成的簽名值σ*不是通過挑戰(zhàn)者C 給出的四個條件。 在上述基于ISRSAC 的環(huán)簽名方案中,環(huán)簽名值(S1,S2,...,Sn) 中Sπ是由
生成的,很明顯在Sπ的生成中,涉及到了簽名者的私鑰dπ。 假設(shè)攻擊者A 成功偽造了簽名環(huán),那么攻擊者A 需要知道環(huán)成員的私鑰,而攻擊者破解環(huán)成員私鑰是基于大整數(shù)分解的困難問題的,所以說攻擊者成功偽造簽名σ*, 使得RVerify(M*,L*,σ*) 輸出為accept的概率可以忽略不計,不可偽造性得以確認(rèn)。
正是由于環(huán)簽名方案的不可偽造性才讓環(huán)中其他成員不能偽造真實簽名者的簽名,攻擊者即使在獲得某個有效環(huán)簽名的基礎(chǔ)上也不能以不可忽略的優(yōu)勢成功偽造一個新消息的合法簽名。
定理3 基于ISRSAC 的環(huán)簽名方案滿足無條件匿名性。
證明:當(dāng)基于ISRSAC 的環(huán)簽名的匿名性是通過挑戰(zhàn)者C 與攻擊者A 之間的虛擬游戲來定義時,具體的游戲步驟如下:
(1) 挑戰(zhàn)者C 生成系統(tǒng)參數(shù)params,并將其發(fā)送給攻擊者A;
(2) 攻擊者A 可以自主查詢以上諭言機(jī);
(3) 攻擊者A 將簽名消息M*以及公鑰環(huán)L*= {P1,P2,P3,...,Pn} 發(fā)送給挑戰(zhàn)者C;
(4) 挑戰(zhàn)者C 隨機(jī)選取一個π(1 ≤π≤n),計算σπ←RSign(M*,n,L*,skπ),并將σπ發(fā)送給攻擊者A;
(5) 攻擊者A 猜測對應(yīng)π′ 的值,若π′ ≡π,游戲勝利,否則游戲失敗。
也正是基于這一方案的匿名性,使得驗證者只能驗證簽名為群體中某個成員所簽,但并不能知道為哪個成員,簽名者的信息被完美的隱藏在了環(huán)中,即便驗證者出現(xiàn)了問題,真正的簽名者也不會暴露,達(dá)到了簽名者匿名的作用。
定理4 基于ISRSAC 的環(huán)簽名方案滿足安全性。
證明:通過定理1、定理2 和定理3 可以說明基于ISRSAC 的環(huán)簽名方案滿足正確性、不可偽造性和無條件匿名性,故基于ISRSAC 的環(huán)簽名方案滿足安全性。
自ISRSAC 算法在2017 年被提出以來,基于ISRSAC 算法的相關(guān)研究也開始相繼出現(xiàn),楊滕在2021 年提出了基于ISRSAC 的代理數(shù)字簽名方案、基于ISRSAC 的有序多重數(shù)字簽名方案和基于ISRSAC 的廣播多重數(shù)字簽名方案,接下來將本文提出的基于ISRSAC 的環(huán)簽名方案分別與這三種數(shù)字簽名進(jìn)行對比分析。
(1) 基于ISRSAC 的代理數(shù)字簽名方案
基于ISRSAC 的代理數(shù)字簽名方案主要是原始簽名者A 使用自己的私鑰(dA,nA) 和代理簽名者B 的公私鑰對,對消息M 進(jìn)行處理以后生成授權(quán)簽名SA,然后原始簽名者A 將消息M以及授權(quán)簽名SA一起傳輸給代理簽名者B,在代理簽名者B 使用公鑰驗證其真實性以后,對授權(quán)簽名SA進(jìn)行進(jìn)一步處理生成代理簽名SB,最終代理簽名者B 將生成的代理簽名SB和M一起發(fā)送給接收者的一種簽名算法。
這種簽名方案在對代理簽名進(jìn)行驗證時,主要涉及到了原始簽名者和代理簽名者的公鑰。與基于ISRSAC 的環(huán)簽名方案相比,這一方案必須建立在原始簽名者充分信任代理簽名者的前提下才可以進(jìn)行,并且原始簽名者的身份信息是公開的,這也決定了代理數(shù)字簽名方案主要功能是為了同時滿足原始簽名者、代理簽名者和接收方三方之間的一種安全便利需求性,而非隱藏原始簽名者的身份信息。
(2) 基于ISRSAC 的有序多重數(shù)字簽名方案
在這一方案中,需要反復(fù)進(jìn)行“簽名認(rèn)證簽名”的循環(huán),即在簽名生成的過程中需要進(jìn)行n次的簽名和驗證。 不同于傳統(tǒng)的數(shù)字簽名方案,該方案中的用戶必須按照某一規(guī)定的簽名順序進(jìn)行簽名,不能出現(xiàn)用戶亂序簽名或者幾個用戶同時進(jìn)行簽名的情況,所以這一方案很好地實現(xiàn)了多用戶之間按序簽名,缺一不可的功能特性。
(3) 基于ISRSAC 的廣播多重數(shù)字簽名方案
基于ISRSAC 的廣播多重數(shù)字簽名方案是多個簽名者各自進(jìn)行簽名以后,將其部分簽名值傳給簽名收集方,由簽名收集方根據(jù)這些部分簽名值生成多重簽名消息,然后發(fā)送給驗證者進(jìn)行驗證的一種簽名方案。 在這一方案中,簽名收集方不僅需要利用每個用戶Ui按照規(guī)定算法生成廣播值K,還需要各用戶在接收到廣播的K值后,根據(jù)某一規(guī)定算法生成中間值Di,并將中間值Di傳給簽名收集方,最后由簽名收集方根據(jù)各用戶傳來的Di生成最后簽名值中的部分值D。 相比與順序多重數(shù)字簽名方案,廣播多重數(shù)字簽名各用戶之間的靈活度有所提升,更適用于一些常需要對用戶簽名進(jìn)行修改的相關(guān)應(yīng)用。
通過上述分析,下面將四種數(shù)字簽名方案的對比分析通過表1 給出。
表1 基于ISRSAC 的數(shù)字簽名方案對比分析
其中文獻(xiàn)[20]中基于ISRSAC 的代理數(shù)字簽名方案、有序多重數(shù)字簽名方案和廣播多重數(shù)字簽名方案分別用方案1、方案2 和方案3 表示,n 表示簽名者個數(shù)。
通過表1 可以看出,只有本方案可以隱藏簽名者信息,且用戶之間互不影響,這也展現(xiàn)出了本方案的優(yōu)勢。 此外在幾種方案中,在同樣基于ISRSAC 算法的情況下,環(huán)簽名方案的主要功能是在環(huán)成員處于平等地位的基礎(chǔ)上實現(xiàn)對真實簽名者的信息隱藏保護(hù);代理數(shù)字簽名方案主要功能是滿足原始簽名者、代理簽名者和接收方三方之間的一種安全便利需求;有序多重數(shù)字簽名方案的主要功能是在保證所有簽名用戶缺一不可的情況下實現(xiàn)多用戶之間的按序簽名;廣播多重數(shù)字簽名方案的主要功能是在各簽名用戶各自生成部分信息后,實現(xiàn)對同一信息的共同簽名。
在本節(jié)中,主要將本文的環(huán)簽名方案分別與文獻(xiàn)[11]、文獻(xiàn)[24]、文獻(xiàn)[25]的環(huán)簽名方案進(jìn)行比較分析,如表2 所示。
表2 環(huán)簽名方案對比分析
通過表2 可看出,本方案在密鑰生成算法中引入的隨機(jī)數(shù)個數(shù)為4n,范青和韓寶杰的環(huán)簽名方案中引入隨機(jī)數(shù)個數(shù)為n, 王曉蘭的環(huán)簽名方案中引入隨機(jī)數(shù)個數(shù)為2n。 顯然,本方案引入的隨機(jī)數(shù)個數(shù)大于范青、韓寶杰和王曉蘭提出的環(huán)簽名方案中引入的隨機(jī)數(shù)個數(shù),除此之外基于ISRSAC 的環(huán)簽名方案還引入了安全函數(shù)α(n),所以在破解難度上基于ISRSAC的環(huán)簽名方案遠(yuǎn)比其他三個環(huán)簽名方案的難度要高,這也進(jìn)一步展現(xiàn)出了本方案所特有的優(yōu)勢。
本節(jié)從計算量角度出發(fā),分別給出上節(jié)提到的方案4、方案5 和方案6 以及本方案的環(huán)成員數(shù)量與計算量之間的關(guān)系,如表3 所示,其中n表示環(huán)成員數(shù)量,Tpm、Tpa分別表示循環(huán)群G上一次點乘、點加運算所消耗的時間,Th表示一次哈希運算所消耗的時間,Tzi表示Zq上一次逆運算所消耗的時間,Tmul、Tadd、Tinv分別表示Zn* 上的一次模乘、模加、模除運算所消耗的時間,Tzm、Tza分別表示Zn* 上的一次點乘、點加運算所消耗的時間,ZFm、ZFa分別表示多變量方程組F上一次點乘、點加運算所消耗的時間。
表3 不同環(huán)簽名方案的計算量
通過表3 可以看出,本方案的簽名生成時間為(n+1)Th+nTmu l,簽名驗證時間為Th+(n-1)Tzm;方案4 的簽名生成時間為(2n- 1)Tpm+(n- 1)Tpa+nTh+Tzi+ 2Tmul+ 2Tadd,簽名驗證時間為2nTpm+nTpa+nTh;方案5 的簽名生成時間為(n+ 1)TFa+ (n+ 1)Tza+Th+ 3Tzm,簽名驗證時間為(n- 1)Tza+Th;方案6 的簽名生成時間為2TFm+Tza+nTh,簽名驗證時間為nTh。
本文在基于ISRSAC 算法的基礎(chǔ)上構(gòu)造了一個環(huán)簽名方案。 通過分析表明,所提出的方案滿足正確性、匿名性、不可偽造性等安全性要求。此外,將本方案與文獻(xiàn)[20]的數(shù)字簽名方案,以及文獻(xiàn)[11]、文獻(xiàn)[24]和文獻(xiàn)[25]的環(huán)簽名方案分別進(jìn)行了對比分析,并給出環(huán)簽名成員數(shù)量與計算量的關(guān)系,進(jìn)一步展現(xiàn)出了本方案同時提高了攻擊者破解難度和保護(hù)簽名者身份信息的特性,也說明了本方案在那些對用戶信息匿名要求較高的領(lǐng)域可以有很好的應(yīng)用市場和發(fā)展前景。