劉天寧 張艷碩 劉 寧
北京電子科技學院,北京市100070
在1977 年,三位美國的數(shù)學家Rivest、Shamir 和Adleman[1]聯(lián)合提出了RSA 公鑰加密體制。 RSA 算法是世界上第一個實用的公開密鑰的算法。 它的安全性依賴于大整數(shù)因子分解的困難性。 2018 年 3 月, Tangavel 和Varalakshmi pro[2]提出了“用于云數(shù)據(jù)機密性的改進RSA 安全密碼系統(tǒng)(ISRSAC)”,并且在他們的論證下,ISRSAC 被證明比RSA 更安全。
文獻[3]表明,在現(xiàn)實世界里,人們常需要將自己的某些權(quán)力委托給可靠的代理人,讓代理人代表本人去行使這些權(quán)力。 在這些可以委托的權(quán)力中包括人們的簽名權(quán)。 1996 年,Mambo、Usuda 和Okamoto[4]提出了代理簽名的概念,給出了解決這個問題的一種方法。 由于代理簽名在實際應(yīng)用中起著重要作用,所以代理簽名一提出便受到廣泛關(guān)注,國內(nèi)外學者對其進行了深入的探討與研究。 有時候,我們會遇見多個人委托同一個人的情形,這種情況下的簽名我們稱為代理多重簽名。
ISRSAC 算法是一種安全性高于傳統(tǒng)RSA算法的新型算法,因此借其設(shè)計的簽名算法會具有更高的安全性。 目前對ISRSAC 算法的性能分析表示其安全性要高于傳統(tǒng)RSA 密碼體制,同時有關(guān)于它的密碼體制研究、數(shù)字簽名設(shè)計在理論上也可以應(yīng)用于云數(shù)據(jù)存儲、傳輸?shù)确矫妗?015 年,Thangavel 和Varalakshmi[2]提出了增強RSA 安全密鑰生成方案,其中使用四個素數(shù)來提高安全性即ESRKGS 算法。 2018 年3 月,Thangavel 和Varalakshmi[2]將ESRKGS 算法修改為ISRSAC 方案。 2021 年,Teng Yang[5]等人以ISRSAC 算法為基礎(chǔ)給出了一種基于ISRSAC公鑰密碼算法的數(shù)字簽名方案然后構(gòu)造了一個代理數(shù)字簽名方案、一個有序多重數(shù)字簽名方案和一個廣播多重數(shù)字簽名方案。
在本文中,首先介紹了ISRSAC 算法,然后在Teng[5]等人簽名方案的基礎(chǔ)上將其擴展到代理多重簽名,并且設(shè)計了按序代理多重簽名以及廣播代理多重簽名,最后針對其安全性進行分析。 結(jié)果表明其在安全性上等同于Teng Yang[5]等人簽名方案,同時增加了代理多重簽名的性質(zhì)。 在兩類代理多重簽名方案中,一個代理簽名人可以同時代表多個原始簽名人的利益在一個文件上簽名,簽名的方式也可以按照一定順序或者不分前后順序來選擇,這使得方案在電子商務(wù)、網(wǎng)絡(luò)安全通信、多方公平交換協(xié)議、電子選舉協(xié)議以及移動代理環(huán)境方面有較為廣泛的應(yīng)用前景。
公鑰密碼學[6]由于它在數(shù)字簽名、認證和密鑰管理上的優(yōu)越性,在現(xiàn)代保密體系中占據(jù)十分重要的地位,應(yīng)用十分廣泛,其中RSA 是目前公認的在理論和實際應(yīng)用中最為成熟和完善的一種公鑰密碼體制。 它不僅可以進行加密,還可以用來進行數(shù)字簽名和身份驗證,是公鑰密碼體制的代表。 它是由Rivest、Shamir 和Adleman[7]于1977 年在劍橋麻省理工學院開發(fā)設(shè)計的。RSA 密碼系統(tǒng)描述如下:
具體算法流程如下:
(1)隨機選取兩個大素數(shù)p 和q,其中p≠q,p >3,q >3 然后計算n =p·q;
(2)計算n 的歐拉函數(shù)值:
φ(n)=(p-1)(q-1)
(3) 選擇數(shù)字e 作為公鑰,同時gcd(e,φ(n))=1,計算私鑰d,滿足e·d≡1modφ(n)
(4)公鑰為(e,n),私鑰為d。
加密過程:假設(shè)M 是明文信息,則可以得到密文C≡Memodn。
解密過程:如獲取密文信息C,明文信息獲取如M≡Cdmodn。
RSA 的安全性[8]基于大整數(shù)N 因子分解的難度。 一旦N 分解為兩個素數(shù)因子,RSA 就被破解。 但數(shù)學上至今還未找到分解一個具有大素數(shù)因子的大數(shù)的有效辦法,也不能證明這種分解就是NP 問題。 從長遠來看,對于RSA 長密鑰攻擊力強度會越來越強,量子計算機的出現(xiàn)和因子分解算法的不斷改進會給RSA 安全帶來更大的威脅,所以取一個1024 或2048bits 的密鑰才能保證RSA 更好的安全性。
RSA 密碼體制的安全性基于大整數(shù)因式分解問題。 隨著各項技術(shù)的不斷發(fā)展,傳統(tǒng)RSA算法的安全性正遭受威脅。 為了提高RSA 系統(tǒng)的安全性,大部分研究人員基本從增加額外的素數(shù)、添加隨機數(shù)和隱藏公鑰等方面對系統(tǒng)進行修改。 而ISRSAC 算法在RSA 的基礎(chǔ)上對加強了大整n 的分解難度并增加了隨機性從而加大了算法計算上的破解難度。 ISRSAC 密碼系統(tǒng)由以下三個階段組成:主密鑰生成、加密和解密[5]。
具體算法流程如下:
(1)隨機選取兩個大素數(shù)p 和q,其中p≠q,p >3,q >3 然后計算
n =p·q·(p-1)·(q-1),m =p·q。
(2)隨機選取一個整數(shù)r,其中p >2r <q,生成
(3)選擇數(shù)字e,滿足1<e <a(n) 同時gcd(e,a(n))=1,計算私鑰d,滿足
e·d≡1moda(n)
(4)公鑰為(e,n),私鑰為(d,m)。
加密過程:假設(shè)M 是明文信息,則可以得到密文C≡Memodn。
解密過程:如獲取密文信息C,明文信息獲取如M≡Cdmodm。
簽名方案的安全性很大一部分是取決于核心算法的安全性,相較于基礎(chǔ)傳統(tǒng)的RSA 密碼體制,ISRSAC 有著較高的安全性,主要體現(xiàn)在以下兩個方面:
(1) 此方案強化了大整數(shù)的分解問題,即在n 的取值上將原本依賴于兩個素數(shù)的生成方式,拓展到兩個素數(shù)加兩個自然數(shù),這樣就很難用現(xiàn)有的方法進行因式分解進而破解獲取私鑰。 首先n 的取值包含兩個素數(shù)和兩個自然數(shù),目前因式分解的方法包括the elliptic curve factorisation method(橢圓曲線因式分解)、General Number Field Sieve method(一般數(shù)域篩法),但都很難用于對同時包含兩個素數(shù)和兩個自然數(shù)的n 進行分解,由于兩個自然數(shù)因子的存在就很難找到相關(guān)的兩個大素數(shù)p,q。 當然想要計算出私鑰d,僅僅只靠計算n 值是不夠的,還需要確定隨機因子r,由于r 值的確定是充滿隨機性的,所以攻擊者很難分解n 的同時找到隨機數(shù)r 進而獲取到私鑰d 的具體值。
(2) 在私鑰生成過程中定義了一個新的安全函數(shù)α(n),在這個函數(shù)中引入了隨機值r,所以攻擊者在沒有獲取到r 的情況下即便解決了上述的因式分解問題,在進一步的計算上也會存在一定困難。 由上述兩點可以得出ISRSAC 算法相較于RSA 算法是安全的,但在密鑰生成及加解密操作上需要的時間是較長的,不過以此來換取較高的安全性在實際操作上肯定是可以忽略的。
2021 年1 月,Teng Yang[5]等人有提出一個基于ISRSAC 的廣播多重數(shù)字簽名方案,本文接下來即會介紹一下該方案。
2.3.1 系統(tǒng)建立
首先,一個權(quán)力中心需要隨機選擇兩個大素數(shù)p 和q,其中p≠q,p >3,q >3 然后計算n =p·q·(p-1)·(q-1),m =p·q。
然后如上述流程一樣,選擇r 和e,找到a(n)和d,之后,權(quán)力中心集(e, n) 作為公鑰,(d,m)作為私鑰。 H(·)為哈希函數(shù),Ui代表簽名者,M 為明文,IDi(i =(1,2,…),n) 表示簽名者的身份同時是公開的。
為了使簽名者Ui能夠正確地簽名消息M,權(quán)力中心計算:
hi =H(IDi),
Si≡hi-dmodn,
通過一個秘密的安全通道將證書(IDI,Si)分發(fā)給每個簽名者Ui, 每個簽名者使用公式hiSie≡modm來驗證證書(IDI,Si)。
基于上述理論,我們可以完成一個廣播式多重簽名,Uc 代表簽名的收集方。
2.3.2 簽名生成
(1)每一個簽名者Ui(i =(1,2,…n)) 選擇一個隨機數(shù)r,計算
Ri≡riemodn
將Ri發(fā)送到Uc;
(2)Uc 計算
K≡R1R2…Rnmodn
然后廣播發(fā)送K;
(3)每個簽名者Ui計算
l =H(K,M),
Di≡riSlimodn
然后發(fā)送Di至Uc。
2.3.3 驗證簽名
接受Uc 計算D =D1D2…Dn, 最終的簽名為(D,K,l)。
當我們想要驗證這個簽名時,需計算:
h1=H(ID1),…,hn =H(IDn),
K′≡De(h1·h2…h(huán)n)lmodm,
l′ =H(M,K′)
如果l′ =l,則這個簽名被認證成功。
以下是針對此方案的安全性分析:
(1)簽名方案的安全性很大一部分是取決于核心算法的安全性,由本文2.2 節(jié)可以了解到,ISRSAC 算法由于自身因式分解的復(fù)雜度加上隨機性的引入,算法本身就有很高的安全性。攻擊者無論從各種方面進行入侵,都很難獲取簽名方所使用的私鑰,這樣就避免了冒充攻擊的可能性。 所以在核心算法上,基于ISRSAC 算法的安全性較高,要強于基于傳統(tǒng)RSA 算法的數(shù)字簽名。
(2)本方案是基于ISRSAC 大整數(shù)因式分解難題和哈希函數(shù)求逆困難性提出來的,雖然每個簽名者Ui的身份IDi是公開的,任何人都可以計算H (IDi),但是任何人卻不能計算Si≡hi-dmodn,,因為兩個大素數(shù)p,q,所以沒有人可以通過e 來得到d 的信息,求解d 的難度等價于ISRSAC 難題。
(3)本方案引入了hash 函數(shù),它是通過散列法將任意長度的輸入信息變換成固定長度的消息摘要。 簽名者對消息摘要進行簽名不但可以提高簽名效率,而且還可以保證信息完整性和防止隱私信息泄露。
(4)本方案可以抵抗外部攻擊,任何外部成員要想偽造Ui 的簽名是不可行的。
假設(shè)外部攻擊者想偽裝成簽名者Ui來對消息M 簽名,由上面的簽名過程可知,他可以隨機選擇Ri,但是密鑰中心拒絕接受他發(fā)送的Ri,因為他不能發(fā)送合法的身份證書Si。
目前,人們已提出了若干不同類型的代理簽名方案。 但是在這些方案中,一個代理簽名者只能代表一個原始簽名者。 有時,人們需要讓一個代理簽名者能夠同時代表多個原始簽名者。 文獻[4]表明,在現(xiàn)實的生活中,由于某些不可抗力人們可能沒法親自來簽署某些文件,而需要自己能夠信任的人代理簽名。 就像我把自己的公章鎖了起來,將鑰匙托付給了代理人,讓他代替我給一些需要處理的文件蓋章。 對于前一種情況,可用多重簽名方案來解決,針對后一種情況,即多個部門同時委托一個代理人在一個文件上簽名。 例如:如果一個公司將要發(fā)布一個涉及到財務(wù)部門、工程部門以及行政管理部門的文件,該文件必須由這些部門聯(lián)合簽名才有效,這些部門可以委托他們都信任的代理人代替他們在該文件上簽字。 對于這種情況,可用代理多重簽名方案來解決,即多個部門同時委托一個代理人在一個文件上簽名。 這使得代理多重簽名在電子商務(wù)和網(wǎng)絡(luò)安全通信方面有較為廣泛的應(yīng)用前景。
1996 年,Mambo[9]等人提出了代理簽名的概念。 代理簽名是一種特殊的簽名體制,它滿足通信三方(原始簽名者、代理簽名者和接收方)之間的安全需求,并為這三方通信提供了便利,因此它的安全性得到研究者們的廣泛重視。2000 年伊麗江等人[10]提出了代理多重簽名概念;同年祁明等人[11]提出了基于離散對數(shù)的若干新型代理簽名方案;王曉明等人[12]在祁明等人方案的基礎(chǔ)上提出了一種代理多重數(shù)字簽名方案;2015 年馮婕等人[13]提出了具有強不可偽造性的雙向代理重簽名方案;2017 杜成斌[14]提出了量子代理多重盲簽名協(xié)議設(shè)計;同年曹陽[15]提出了基于ECC 存在特權(quán)集的(t,n)門限群代理多重簽名方案;2018 年鄭建國[16]等人提出了一種優(yōu)化的代理多重數(shù)字簽名方案,該方案可以抵抗合謀攻擊和偽造攻擊;2020 年李文婷[17]提出了一種基于代理重加密的區(qū)塊鏈電子病歷數(shù)據(jù)共享算法。 可以看出目前基于離散對數(shù)的代理多重簽名研究占多數(shù),而基于大整數(shù)分解的代理多重簽名研究較少,本文所提出的研究正可以彌補這一領(lǐng)域的空白。
2000 年伊麗江等人[10]提出的代理多重簽名方案如下:
令A(yù)1,…An是n 個原始簽名人。 他們聯(lián)合請求一個代理簽名人B 代替他們在一個文件m上簽名。 對1 ≤?i≤n,Ai有一個公開密鑰vi和一個秘密密鑰si,使得si∈RZp-1\{0},vi≡gsimodp。
3.1.1 系統(tǒng)參數(shù)
對1 ≤?i≤n, Ai隨機選擇ki∈RZp-1\{0},計算Ki≡gkmodp和σi≡si +kiKimodp-1。
Ai將(σi,Ki) 作為子密鑰通過安全信道交給B。 B 驗證gσi≡viKkiimodp是否成立。 如果成立,他接受這個密鑰,否則他拒絕接受這個密鑰而請求Ai重新發(fā)送一個有效的子代理密鑰,或者他終止協(xié)議。 如果B 確認所有(σi,Ki)(1≤?i≤n)都是有效的,那么他計算出σ =σi。
3.1.2 代理簽名生成
當Bob 代表所有原始簽名人A1,…An在文件m 上簽名時,他用σ 作為普通簽名運算中的簽名秘密密鑰來執(zhí)行普通的簽名運算。 于是生成的代理簽名是(m,Signσ(m),K1,…Kn), 其中Signσ(m) 表示用普通簽名方法在密鑰σ 下生成的關(guān)于消息m 的簽名。
3.1.3 代理簽名驗證
驗證人在驗證以上代理簽名時首先計算v′≡v1…vnKK11…KK1nmodp, 然后用v′作為一個新的公鑰對Signσ(m) 進行驗證。
以上代理多重簽名方案滿足以下性質(zhì):
性質(zhì)1 代理簽名人無法計算出任何一個原始簽名人的秘密密鑰。
性質(zhì)2 任何人可以驗證代理多重簽名的有效性。
性質(zhì)3 通過有效的代理多重簽名,驗證者可以確認每個原始簽名人對被簽文件都是承認的,這是因為,在驗證代理多重簽名時,需要用到每個原始簽名人的公鑰。
性質(zhì)4 在沒有得到所有原始簽名人的授權(quán)情況下, 任何人都無法生成一個有效的代理多重簽名。
2000 年伊麗江等人[10]提出的代理多重簽名方案原則上所有原始簽名人都信任代理簽名人。 代理簽名人無法計算出原始簽名人的秘密密鑰,因而無法偽造任何一個有效的代理簽名,所以任何人都不能偽造出有效的代理簽名。
另外,在驗證代理簽名時必須使用每個原始簽名人的公鑰,所以從一個有效的代理簽名可以確認每個原始簽名人都介入了簽名過程,因此實現(xiàn)了一個簽名可以代表多個原始簽名人的目的。
與基本的代理簽名體制類似,代理多重簽名應(yīng)當滿足以下基本性質(zhì)[10]:
(1)基本的不可偽造性。 除了原始簽名人外,任何人(包括代理簽名人)都不能生成原始簽名人的普通數(shù)字簽名。
(2)代理多重簽名的不可偽造性。 除了代理簽名人外,任何人(包括原始簽名人)都不能生成有效的代理多重簽名。 特別是,如果原始簽名人委托了多個代理簽名人,那么任何代理簽名人都不能偽造其它代理簽名人的代理多重簽名。
(3)代理簽名的可區(qū)分性。 任何一個代理多重簽名都與原始簽名人的普通(多重)簽名有明顯的區(qū)別;不同的代理簽名人生成的代理多重簽名之間也有明顯的區(qū)別。
(4)不可抵賴性。 任何簽名人(不論是原始簽名人還是代理簽名人)在生成一個(代理)多重簽名后,不能再對它加以否認。
(5)身份證實性。 每個原始簽名人都可以根據(jù)一個有效的代理多重簽名確定出相應(yīng)的代理簽名人的身份,或者多個原始簽名人合作起來可以確定出代理簽名人的身份。
(6)密鑰依賴性。 生成代理多重簽名的簽名密鑰依賴于每個原始簽名人的秘密密鑰。
(7)可注銷性。 任何一個原始簽名人都可以注銷他委托給代理簽名人的簽名權(quán)力。
按序多重簽名是指按同一順序?qū)Χ鄠€用戶的簽名和授權(quán)消息文件[5]。 例如,在一個公司里,有一份要求董事長、總經(jīng)理和部門經(jīng)理一起簽署的合同才是有效的。 在看到部門經(jīng)理的簽字后總經(jīng)理只簽了合同。 董事長承認總經(jīng)理和總經(jīng)理部門經(jīng)理的簽字。 基于類似產(chǎn)品的需要在場景中,按序多重簽名也被廣泛使用。
隨機選取大素數(shù)pAi(1 ≤i≤n),pBi(1 ≤i≤n),pCA,qAi(1 ≤i≤n),qBi(1 ≤i≤n),qCA其中所有的p≠q,p >3,q >3。
令原始簽名人為Ai(1 ≤i≤n),代理簽名人為Bi(1 ≤i≤n),nAi、nBi、nCA、mAi、mBi、mCA分別為Ai、Bi和CA 的ISRSAC 模數(shù),分別計算:
nAi =pAi·qAi·(pAi-1)·(qAi-1)
nBi =pBi·qBi·(pBi-1)·(qBi-1)
nCA =pCA·qCA·(pCA-1)·(qCA-1)
mAi =pAi·qAimBi =pBi·qBi
mBi =pBi·qBimCA =pCA·qCA
mCA =pCA·qCA
隨機選取ri(1 ≤i≤n)pAi >2ri <qAi,其中CA 選擇其中ri(1 ≤i≤n) 中任意值。
選擇數(shù)字e,滿足1<e <a(n) 同時gcd(e,a(n))=1, 計算私鑰d,根據(jù)公式e·d≡1moda(n) 計算出公私鑰。
(eAi,mAi) 為Ai公鑰, (dAi,nAi) 為Ai私鑰,(eBi,mBi) 為Bi公鑰, (dBi,nBi) 為Bi私鑰,(eCA,mCA) 為CA 公鑰,(dCA,nCA) 為CA私鑰。mw為授權(quán)信息,其中含有原始簽名人和代理簽名人的身份、代理權(quán)限、授權(quán)有效期等內(nèi)容。IDAi,IDBi分別表示Ai和Bi的身份標識,且公開。 本文選取的哈希算法為SM3 算法。 SM3是中國獨立開發(fā)的哈希算法,其安全性相當于sha-256。 因此,本方案選擇SM3 作為簽名的哈希函數(shù)。
由CA 選取小素數(shù)epA為臨時公鑰,發(fā)送至每個原始簽名人Ai。 對于1 ≤?i≤n,每個Ai分別計算epAdpAi≡1moda(n)Ai,
再計算:
CA 逐一驗證kiePAmodmAi≡h(IDAi,mw)是否成立。 如果成立,則(ki,IDAi,mw) 為一個有效的子代理密鑰;如果不成立,則CA 拒絕接受該密鑰,并要求Ai重發(fā)一個新的子代理密鑰,或者停止協(xié)議。
CA 計算
通過安全信道將(ki,si) 發(fā)送至代理簽名人Bi,ki-1 發(fā)送至Bi,ki作為Bi的部分代理公鑰,并將mw、IDAi和IDBi向所有用戶廣播。
公布Bi簽名順序,假設(shè)為(B1,B2,…,Bn):
(1)代理簽名人B1 選擇一個隨機數(shù)r1(1 ≤r1 ≤n),計算:
(2)將(T1,v1,D1) 傳遞給B2,B2 驗證簽名正確性:
h1=h(ID1,mw,k1)
T1*≡D1eCA·h1v1modmCA
v1*=h(m,T1*)
如果v1*=v1,則簽名正確,否則簽名不正確。 當驗證的簽名通過后,B2 隨機選取一個數(shù)r2(1<r2<n),并計算
T2 ≡r2eCAmodnCA v2=h(m,T2)
D2 ≡D1r2s2v2modnCA
f1 ≡h1v1modnCA
將(T2,v2,D2,f1) 傳遞給B3,以此類推。
(3)當簽名人Bi(2<i <n) 將簽名(Ti,vi,Di,fi-1) 傳遞給Bi +1(fi-1 ≡fi-2hi-1vi-1modnCA),Bi +1 首先驗證簽名正確性,計算:
hi =h(IDi,mw,ki)
Ti*≡DieCA·fi-1hivimodmCA
vi*=h(m,Ti*)
如果vi*=vi, 則簽名正確,否則簽名不正確。 當驗證的簽名通過后,Bi +1 隨機選擇一個數(shù)ri +1(1<ri +1<n),并計算
Ti +1 ≡Tiri +1eCAmodnCA
vi +1=h(m,Ti +1)
Di +1 ≡Diri +1si +1vi+1modnCA
fi≡fi-1hivimodnCA
將(Ti +1,vi +1,Di +1,fi) 傳遞給下一個簽名人,執(zhí)導(dǎo)最后一個簽名人為止。 最后得到消息m 的代理多重簽名為(Tn,vn,Dn,fn-1)。
當驗證者驗證消息的簽名(Tn,vn,Dn,fn-1) 時,計算:
hn =h(IDn,mn,kn)
Tn*≡DneCA·fn-1hnvnmodmCA
vn*=h(m,Tn*)
如果vn*=vn,則簽名正確,否則簽名無效。
本方案的安全性在第6 節(jié)中進行具體分析。
在實際應(yīng)用中,多重簽名往往是按有序進行簽名的[18],按序多重簽名是指簽名者將自己的簽名按照一定順序發(fā)送給簽名接收者,由簽名接收者整理產(chǎn)生對消息的簽名。 代理多重簽名可以應(yīng)用于多個部門同時委托一個代理人在一個文件上簽名[10]。 按序代理多重簽名可以應(yīng)用于多個部門同時委托一個代理人在一個文件上簽名,而簽名需要先后順序。
按序代理多重簽名可以應(yīng)用于類似于以下案例的場景:
例如,公司的經(jīng)理、財務(wù)和出納集體出差或者單位各部門上下級領(lǐng)導(dǎo)集體出差,需要他們對同一文件的進行有序簽名,那么可以指定一個他們都信賴的人代表他們簽名。
在許多情況下,很多人需要簽署相同的文件[5]。 例如,在一個車載網(wǎng)絡(luò)中,每個機載的通信單元需要簽署相同的事件。 在電子商務(wù)方面,有一些機構(gòu)需要簽署同樣的協(xié)議文件。 應(yīng)用程序場景中需要的簽名是多重簽名的對象。 廣播多重簽名是一種表單的多重簽名。 其特點是每個簽名方都將其部分簽名傳遞給信號收集器。收集器將收集部分內(nèi)容簽名,然后執(zhí)行驗證。 如果驗證了所有的屬性,那么可以驗證多個簽名合成,否則不可以使用它們。
基于同樣思想,構(gòu)造一個廣播代理多重簽名,令Br為接收者,其他參數(shù)同按序代理多重簽名。
由CA 選取小素數(shù)epA為臨時公鑰,發(fā)送至每個原始簽名人Ai。 對于1 ≤?i≤n每個Ai分別計算epAdpAi≡1moda(n)Ai,再計算:ki≡(h(IDAi,mw))dpAimodnAi,Ai將(ki,IDAi,mw)傳給CA。
CA 逐一驗證kiePAmodmAi≡h(IDAi,mw)是否成立。 如果成立,則(ki,IDAi,mw) 為一個有效的子代理密鑰;如果不成立,則CA 拒絕接受該密鑰,并要求Ai重發(fā)一個新的子代理密鑰,或者停止協(xié)議。
CA 計算
hi =h(IDBi,mw,ki)
si≡hi-dCAmodnCA
通過安全信道將(ki,si) 發(fā)送至代理簽名人Bi,si作為Bi的部分代理公鑰,并將mw、IDAi和IDBi向所有用戶廣播。
(1)每個代理簽名人Bi選擇一個隨機數(shù)ri,計算Ri≡rieCAmodnCA, 將Ri發(fā)送給接收者Br。
(2)接收者計算T≡R1R2…RnmodnCA,將T 廣播出去。
(3)每個簽名人Bi計算
v =h(m,T)
Di≡risivmodnCA
把Di傳送給接收者Br。(4)接收者Br計算
D =D1D2…Dn,
最后簽名為(D,T,v)。
驗證時,驗證者先計算時,計算
h1= h(IDB1,mw,k1),…,hn = h(IDBn,mw,kn),
再計算
T*≡DeCA(h1h2…h(huán)n)vmodmCA
v*=h(m,T*)
如果v*=v,則簽名正確,否則簽名無效。
本方案的安全性在第六節(jié)中進行具體分析。
廣播多重簽名[19]是指簽名者將自己的簽名不分先后順序發(fā)送給簽名接收者,由簽名接收者整理產(chǎn)生對消息的簽名。 代理多重簽名可以應(yīng)用于多個部門同時委托一個代理人在一個文件上簽名[10]。 廣播代理多重簽名可以應(yīng)用于多個部門同時委托一個代理人在一個文件上簽名,而簽名不分先后順序。
廣播代理多重簽名可以應(yīng)用于以下案例的場景:
例如, 一個公司發(fā)表的聲明涉及到財務(wù)部、開發(fā)部、銷售部、售后服務(wù)部等部門,需要這些部門簽名認可,而簽名不分先后順序,這些部門指定一個它們都信賴的人或部門代表它們簽名,與這些部門共同生成多重簽名相比,其效率大大提高。
在兩類代理多重簽名方案中,一個代理簽名人可以同時代表多個原始簽名人的利益在一個文件上簽名,而且可以采用按序和廣播的方式,這使得方案在電子商務(wù)和網(wǎng)絡(luò)安全通信、多方公平交換協(xié)議、電子選舉協(xié)議以及移動代理環(huán)境方面有較為廣泛的應(yīng)用前景。
(1)不可偽造性
這兩種方案在代理授權(quán)階段的方法基本類似,都是通過可信的認證中心CA 驗證原始簽名人的授權(quán)后,計算hi =h(IDBi,mw,ki)si≡hi-dCAmodnCA來生成代理密鑰;在生成與驗證代理多重簽名階段,也必須使用CA 給定的代理密鑰si,才能生成有效的(Di,Ti,vi)。 因此,任何人要偽造有效的代理多重簽名都必須得到有效的si,即得到- dCA,由于兩個大素數(shù)pCA,qCA未知且a(n) 是一個未知數(shù),所以其困難度相當于求解ISRSAC 問題。 ISRSAC 算法是在RSA的基礎(chǔ)上對加強了大整數(shù)n 的分解難度并引入隨機性加大了算法計算上的破解難度,其安全性是大于RSA 的。
假設(shè),一個攻擊者想偽裝成簽名者Bi來對消息m 簽名,由上面的簽名過程中可知,攻擊者可以通過隨機選擇一個數(shù)ri′, 計算Ti′≡(ri′)eCAmodmCA和vi′ =h(m,Ti′) 來偽造Ti,vi。 但是他不能偽造Di,因為他不能得到si。
假設(shè)簽名者Bi想簽名一個不同消息m′,當Bi +1 驗證Bi的部分簽名時,代入m 來計算vi*,即vi*=h(m,Ti*), 從而使得驗證不能通過,有效地防止了內(nèi)部簽名者的攻擊。
(2)可驗證性和可識別性
在這兩個方案中,任何人都可通過驗證等式hi =h(IDBi,mw,ki)或v*=v是否成立來驗證代理多重簽名的有效性,且由于在代理密鑰和代理多重簽名中嵌入了代理簽名人的身份標識符,接收者可以有效地驗證代理簽名人的身份。
(3)不可否認性
由(1)和(2)的分析可知,在這兩個方案中,任何人都不能偽造有效的代理多重簽名。 同時,收到一個代理多重簽名后,任何人都可以驗證其有效性,并能夠驗證代理簽名人的身份與原始簽名人的授權(quán)。 所以,當生成一個有效的代理多重簽名后,無論是代理簽名人還是原始簽名人都無法否認這個簽名。
綜上所述,這兩種代理多重簽名方案具有強代理性。
本文的兩種簽名方案同Teng Yang[5]等人的按序多重簽名方案以及廣播多重簽名方案在安全性上都是基于ISRSAC 算法,Teng Yang[5]等人文章也驗證了ISRSAC 算法的安全性是遠遠優(yōu)于基于RSA 的。 由此本文設(shè)計的簽名方案在安全性上是可靠的。 此外本文增加了代理多重的性質(zhì),本文設(shè)計的方案具有不可偽造性、可驗證性、可識別性、不可否認性、強代理性,以上性質(zhì)使得本文設(shè)計的簽名方案具有更多功能,可以應(yīng)用于更加豐富的環(huán)境。
本文設(shè)計了基于ISRSAC 的按序代理多重簽名以及廣播代理多重簽名,并針對其安全性進行分析。 結(jié)果表明其在確保安全性的同時滿足代理多重簽名的性質(zhì),本文設(shè)計的方案具有不可偽造性、可驗證性、可識別性、不可否認性、強代理性。 在兩類代理多重簽名方案中,一個代理簽名人可以同時代表多個原始簽名人的利益在一個文件上簽名,而簽名的方式也可以按照一定順序或者不分前后順序來選擇。 這使得本文的兩種方案在電子商務(wù)、網(wǎng)絡(luò)安全通信、多方公平交換協(xié)議、電子選舉協(xié)議以及移動代理環(huán)境方面有較為廣泛的應(yīng)用前景。