◆李祖猛 王 菁
(1.廣東科學技術職業(yè)學院計算機工程技術學院 廣東 519090;2.廣州市信息工程職業(yè)學?;A部 廣東510000)
2003年亞密會上Al-Riyami和Paterson[1]首次提出無證書密碼系統(tǒng)的概念。無證書密碼系統(tǒng)中,密鑰生成中心KGC(key generation center)和用戶一起完成用戶的密鑰生成。這種產生密鑰的方式使得KGC 不能獲知用戶的完整私鑰,從而解決了基于身份的密碼體制[2]中的密鑰托管問題,而且因為不再需要證書中心CA對用戶的證書進行管理和維護,所以也解決了傳統(tǒng)基于PKI 公鑰密碼體制[3]的證書管理問題。
無證書簽名是無證書密碼系統(tǒng)中的研究熱點之一。自Al-Riyami和Paterson在文獻[1]中提出第一個無證書簽名方案以來,許多無證書簽名方案相繼被提出[4-10]。但在無證書密碼系統(tǒng)中,因為用戶的公鑰沒有直接認證,所以無證書密碼方案容易遭受惡意用戶的替換公鑰攻擊[11-12]。此外,無證書密碼系統(tǒng)中,KGC 參與用戶密鑰的部分數(shù)據產生,且KGC 擁有主密鑰,所以無證書密碼方案也容易遭受惡意不誠實KGC的偽造攻擊[6-13]。2016年,湯永利等人[14]基于橢圓曲線離散對數(shù)困難性假設提出了一類高效的無雙線性對的無證書簽名方案,該方案包括8個子簽名方案,并在隨機預言模型下給出了安全性證明。
本文對湯永利等人的8個無證書簽名方案[14]進行密碼學分析后,發(fā)現(xiàn)其中的第1、3、6方案不能抵抗惡意不誠實KGC攻擊,其中的第2、4、5方案不能抵抗惡意用戶的替換公鑰攻擊,其中的第7、8方案即使不替換公鑰,惡意攻擊者也可以利用用戶的原始公鑰對任意消息偽造出有效的簽名。本文針對每種方案的安全漏洞分別給出了相應的偽造攻擊方法,分析結論表明,文獻[14]中的8個簽名方案都是不安全的。
本文的組織結構如下:在第1 節(jié)中,首先介紹一些預備知識;在第2 節(jié)中,簡要回顧文獻[14]中的無證書簽名方案;在第3 節(jié)中,對文獻[14]中的8個簽名方案給出偽造攻擊。最后總結全文。
設E/Fp是定義在有限素域Fp(p為大素數(shù))上的橢圓曲線,取由E/Fp上所有點和無窮原點O構成橢圓曲線的一個循環(huán)加法子群G,點P是G的一個生成元,其階為q。
定義1 橢圓曲線離散對數(shù)問題(Elliptic Curve Discrete Logarithm Problem,ECDLP):給定G上的點Q,求,使得Q=aP。
在無證書簽名方案中,包括3個合法參與者:KGC、簽名者IDs、驗簽者IDv。一個無證書簽名方案通常包含以下7個多項式時間算法:
(1)系統(tǒng)參數(shù)建立算法
由KGC 運行,輸入安全參數(shù)k,輸出系統(tǒng)公開參數(shù)params和主密鑰s,s由KGC 秘密保管。
(2)部分私鑰生成算法
由KGC 運行,輸入params和s以及用戶的身份ID,輸出該用戶的部分密鑰DID,并通過安全信道返回給用戶ID。
(3)用戶秘密值生成算法
由用戶運行,輸入params和用戶的身份ID,輸出該用戶的秘密值xID。
(4)用戶私鑰生成算法
由用戶運行,輸入params、用戶的身份ID、部分密鑰DID以及秘密值xID,輸出該用戶的私鑰SKID。
(5)用戶公鑰生成算法
由用戶運行,輸入params、用戶的身份ID、部分密鑰DID以及秘密值xID,輸出該用戶的公鑰PKID;
(6)簽名算法
由簽名者IDs運行,輸入params、簽名者的身份IDs、私鑰公鑰PKsID以及待簽消息m,輸出用戶IDs對消息m的簽名值。
(7)驗證算法
由驗簽者IDv運行,輸入params、簽名者的身份IDs、公鑰以及消息m和對應的簽名值,若簽名驗證通過,輸出“1若,表示接受,否則輸出“0 表,表示拒絕。
無證書簽名方案的攻擊模型[15],通常被劃分為兩類:
A-I類:該類攻擊者無法獲取系統(tǒng)主密鑰,但可以任意替換合法用戶的公鑰,也稱為替換公鑰攻擊;
A-II類:該類攻擊者可以獲取系統(tǒng)主密鑰,但不可以替換合法用戶的公鑰,也稱為惡意不誠實KGC攻擊。
無證書簽名方案的不可偽造性的定義詳見文獻[15],本文在此不再贅述。
(1)系統(tǒng)參數(shù)建立算法
輸入安全參數(shù)k,輸出2個大素數(shù)p、q,滿足設P選擇系統(tǒng)主密鑰計算系統(tǒng)公鑰P0=sP,系統(tǒng)公開參數(shù):秘密保存主密鑰s。是循環(huán)群G的一個階為q的生成元。選擇兩個安全Hash 函數(shù):
(2)部分私鑰生成算法
輸入params和用戶的身份KGC隨機選取計算作為用戶IDa的部分私鑰,aR作為用戶的部分公鑰,KGC 將通過安全信道發(fā)送給用戶IDa。
(3)用戶秘密值生成算法
(4)用戶私鑰生成算法
(5)用戶公鑰生成算法
(6)簽名算法
③根據表1的公式計算計算v,表1共給出8個有效的簽名方案,消息M的簽名為
驗證算法:
表1 簽名與驗證表
假設惡意攻擊者Eve 希望假冒用戶對消息M進行簽名,用戶的公鑰
通過分析該方案中的T'的計算等式
故有:
通過分析該方案中的T'的計算等式可知,對于不知道系統(tǒng)主密鑰s的惡意攻擊者Eve 而言,若想成功偽造簽名值,只需借助替換后的公鑰將帶有隨機因子T參與的摘要計算值2h的部分在運算中消除,從而可以通過T' 的計算等式計算出簽名值中隨機因子T,最終可以假冒用戶aID構造出對任意消息M的有效簽名值
惡意攻擊者Eve 執(zhí)行以下步驟即可成功假冒用戶IDa偽造對任意消息M的簽名:
故有
通過分析該方案中的T'的計算等式可知,該方案與方案2存在類似的安全漏洞,通過令惡意攻擊者Eve 則可以假冒用戶IDa構造出對任意消息M的有效簽名值
通過分析該方案中的T'的計算等式可知,該方案與方案1存在類似的安全漏洞,通過令惡意不誠實的KGC則可以假冒用戶IDa構造出對任意消息M的有效簽名值
通過分析該方案中的T'的計算等式可知,惡意攻擊者Eve 即使不替換用戶IDa的公鑰,也可以通過選擇v的值,來構造對應的T,從而假冒用戶IDa構造出對任意消息M的有效簽名值(h2,v)。
惡意攻擊者Eve 執(zhí)行以下步驟即可成功假冒用戶IDa偽造對任意消息M的簽名:
故有
通過分析該方案中的T'的計算等式可知,該方案與方案7存在類似的安全漏洞,惡意攻擊者Eve 即使不替換用戶IDa的公鑰,也可以通過選擇v的值來構造對應的從而假冒用戶IDa構造出對任意消息M的有效簽名值
無證書簽名在驗證簽名過程中無須直接驗證簽名者公鑰的合法性,所以容易遭受惡意攻擊者的替換公鑰攻擊;同時,因為KGC 掌握用戶的部分私鑰和系統(tǒng)主密鑰,所以,也面臨惡意不誠實KGC的攻擊。本文對文獻[14]中的8個無證書簽名方案進行密碼學分析后,發(fā)現(xiàn)都存在安全漏洞,并給出了具體的攻擊方案,分析結論表明此類無證書簽名方案是不安全的。