專利名稱:基于證書的數(shù)字簽名系統(tǒng)及簽名方法
技術領域:
本發(fā)明涉及網(wǎng)絡安全的數(shù)字簽名技術,特別是指一種安全高效的基于證書的數(shù)字簽名系統(tǒng)及數(shù)字簽名方法。
背景技術:
隨著計算機網(wǎng)絡以及通信技術的飛速發(fā)展,人類已逐步邁入信息化社會,數(shù)字化、 網(wǎng)絡化將成為全球信息化新的基礎平臺。在社會信息化進程中,互聯(lián)網(wǎng)的發(fā)展極大地方便了人們的學習、工作和生活,計算機應用已經(jīng)滲透到政治、經(jīng)濟、軍事、科學文化和家庭生活等社會的各個領域。不知不覺中,信息成為了最重要的一種資源和財富,但是由于信息的傳遞、存儲、處理等過程往往是在開放的通信網(wǎng)絡上進行的,所以信息容易受到竊聽、截取、修改、偽造、重放等各種攻擊手段的威脅。
數(shù)字簽名作為保障網(wǎng)絡信息安全的手段之一,可以有效解決網(wǎng)絡信息傳輸中偽造、抵賴、冒充和篡改問題,是實現(xiàn)電子安全交易的核心技術之一,在保證交易的安全性、真實性以及不可抵賴性等方面具有重要的作用,因而是信息安全核心技術之一,在密鑰分配、 電子銀行、電子證券、電子商務和電子政務等領域均有重要的應用價值。
傳統(tǒng)的數(shù)字簽名體制是基于公鑰基礎設施的,采用的是證書的認證方式,通過權威認證機構(CA)所頒發(fā)的證書來實現(xiàn)用戶公鑰和身份信息的綁定,從而保證用戶公鑰的真實有效。證書管理包括證書的撤銷、存儲、更新等,需要很大的計算量和存儲能力,特別是證書撤銷問題。另外,傳統(tǒng)的PKI技術還存在第三方詢問問題。所謂第三方詢問,是指第三方在使用某個用戶的公鑰前,需要向CA詢問該用戶的證書狀態(tài),以驗證公鑰的真實和有效性。這種方法耗費大量時間、空間和計算,一度成為公鑰密碼系統(tǒng)發(fā)展的障礙。
為了簡化數(shù)字證書的管理開銷等問題,1984年Siamir首先提出了基于身份的密碼體制的概念?;谏矸莸拿艽a體制,不需要保存每個用戶的公鑰證書,也不需要有一個公共的文件來存儲所有用戶的公鑰,每個用戶的公鑰都是由他的身份直接生成的,用戶的身份可以是他的姓名、電話號碼、身份證號碼、通信地址或電子郵箱地址等,而用戶的私鑰則是由可信中心(PKG)統(tǒng)一產(chǎn)生?;谏矸莸拿艽a體制雖然克服了傳統(tǒng)公鑰密碼體制中存在的證書管理問題,但由于仍然需要一個可信中心來產(chǎn)生和發(fā)布用戶的私鑰,因而存在著固有的密鑰托管問題,即可信中心知道任何用戶的私鑰,因而可以竊聽任何用戶的通信,進而可以解密任何用戶的密文或者偽造任何用戶的簽名。
為了克服基于身份的密碼體制中的密鑰托管問題,Gentry于2003年在歐洲密碼學會議上提出了一個新的公鑰密碼學的體制-基于證書的公鑰密碼體制(CBC Certificate-based Cryptography),該體制是將傳統(tǒng)的公鑰密碼體制和基于身份的密碼體制的優(yōu)點結合起來,消除了高代價的證書驗證過程,并且不存在密鑰托管的隱患?;谧C書的公鑰密碼體制中的證書具有傳統(tǒng)公鑰密碼體制中證書的全部功能,并且在解密和簽名過程中作為私鑰的一部分,因而在加密和簽名驗證過程中不存在對證書狀態(tài)的第三方詢問。而且,在基于證書的公鑰密碼體制中,證書的發(fā)送不需要通過安全信道,不存在密鑰分發(fā)的問題。雖然基于證書的數(shù)字簽名方案的研究有所進展,但目前的基于證書的數(shù)字簽名方法在安全強度、運行效率等方面或多或少存在一些問題和不足。
基于以上分析,本發(fā)明人針對現(xiàn)有的基于證書的數(shù)字簽名方法進行研究改進,本案由此產(chǎn)生。發(fā)明內(nèi)容
本發(fā)明的目的,在于提供一種基于證書的數(shù)字簽名系統(tǒng)及簽名方法,其在簽名過程和驗證過程中不使用傳統(tǒng)的雙線性對映射,在保證安全性的前提下具有較小的計算代價和通信代價,提高了系統(tǒng)的運行效率。
本發(fā)明的另一目的,在于提供一種基于證書的數(shù)字簽名系統(tǒng)及簽名方法,其可降低基于證書的數(shù)字簽名方法的計算代價和通信代價,提高基于證書的數(shù)字簽名方法的運算效率。
為了達成上述目的,本發(fā)明的解決方案是
一種基于證書的數(shù)字簽名系統(tǒng),包括系統(tǒng)參數(shù)設置模塊、用戶密鑰產(chǎn)生模塊、用戶證書認證模塊、簽名模塊和驗證模塊;
系統(tǒng)參數(shù)設置模塊,用于生成系統(tǒng)主密鑰和系統(tǒng)公開參數(shù),并將系統(tǒng)主密鑰發(fā)送給用戶證書認證模塊,將系統(tǒng)公開參數(shù)發(fā)送給用戶密鑰產(chǎn)生模塊、用戶證書認證模塊、簽名模塊和驗證模塊;
用戶密鑰產(chǎn)生模塊,用于生成各個用戶的公鑰和私鑰對,并將用戶的公鑰發(fā)送給用戶證書認證模塊和驗證模塊,將用戶的私鑰發(fā)送給簽名模塊;
用戶證書認證模塊,通過系統(tǒng)參數(shù)設置模塊發(fā)送的系統(tǒng)主密鑰和系統(tǒng)公開參數(shù), 對用戶的身份和公鑰進行簽名,產(chǎn)生用戶的證書,并將用戶的證書發(fā)送給簽名模塊;
簽名模塊,通過用戶密鑰產(chǎn)生模塊發(fā)送的用戶私鑰和用戶證書認證模塊頒發(fā)的用戶證書,對消息進行簽名,并將產(chǎn)生的簽名發(fā)送給驗證模塊;
驗證模塊,通過系統(tǒng)參數(shù)設置模塊發(fā)送的系統(tǒng)公開參數(shù)和用戶密鑰產(chǎn)生模塊發(fā)送的用戶公鑰,對簽名模塊產(chǎn)生的簽名的有效性進行驗證。
一種基于證書的數(shù)字簽名方法,包括以下步驟
A 設定系統(tǒng)公開參數(shù)params和系統(tǒng)的主密鑰msk ;
B 根據(jù)所述系統(tǒng)公開參數(shù)params生成用戶的公鑰PKid和私鑰uskID ;
C 根據(jù)所述系統(tǒng)公開參數(shù)params,用戶的身份ID,系統(tǒng)主密鑰msk和用戶的公鑰 I3Kid產(chǎn)生用戶的證書Certm;
D 根據(jù)用戶的私鑰USkm和用戶的證書Certm對消息m進行簽名得到ο ;
E 根據(jù)所述系統(tǒng)公開參數(shù)params和用戶的公鑰I3Kid對消息m的簽名σ的有效性進行驗證。
上述步驟A具體包括
Al 選取兩個大素數(shù)ρ和q且滿足q | p_l ;
A2 隨機選取0 ;的一個生成元g,選取一個抗碰撞的雜湊哈希函數(shù)H ;
A3 隨機選取χ e φ ;,計算系統(tǒng)主公鑰y = gxmodp ;
系統(tǒng)公開參數(shù)params為< p,q,g,y,H >,系統(tǒng)主密鑰msk為χ。
上述步驟A2中,所選的雜湊哈希函數(shù)H選用哈希函數(shù)MD-5、SHA-U SHA-2或 SHA-3。
上述步驟B具體包括
Bl 隨機選取巧^ 〖作為用戶的私鑰uskm ;
B2 計算PXffi =^5 mod尸作為用戶的公鑰。
上述步驟C具體包括
Cl 隨機選取^ e φ ;,計算 W = gsmodp ;
C2 計算 R = s+xH(ID,H(ID,W)modq,得到用戶的證書 Certm = < W,R >。上述步驟D具體包括
Dl 隨機選取r e φ ;,計算 U = grmodp ;
D2 計算 hi = H(m, PKid, U, W)和 h2 = H(m, ID, PKid, U, W);
D3 計算 ζ = R+xid · Vr · h2modq,得到消息 m 對應的簽名為 σ =< U, W, ζ >
上述步驟E具體包括
El 計算 h。= H(ID, PKid, W),Ii1 = H(m,PKid, U,W)和 h2 = H(m,ID, PKid, U,W);
E2 驗證等式壙=W-yK -PK^ . U、mod尸是否成立,若等式成立,則接受簽名,否則,拒絕簽名。
采用上述方案后,本發(fā)明在保證簽名安全性的情況下,降低了簽名方案的計算代價和通信代價,提高了簽名服務器的處理效率,節(jié)省了簽名服務器的運算資源,是一種新的安全高效的數(shù)字簽名方法。
圖1是本發(fā)明基于證書的數(shù)字簽名系統(tǒng)示意圖2是本發(fā)明基于證書的數(shù)字簽名方法的流程圖3是本發(fā)明應用于基于組件屬性遠程證明系統(tǒng)的示意圖。
具體實施方式
以下將結合附圖,對本發(fā)明的技術方案進行詳細說明。
如圖1所示,依照本發(fā)明基于證書的數(shù)字簽名系統(tǒng)包括系統(tǒng)參數(shù)設置模塊A、用戶密鑰產(chǎn)生模塊B、用戶證書認證模塊C、簽名模塊D和驗證模塊E。
其中,系統(tǒng)參數(shù)設置模塊A用于生成系統(tǒng)主密鑰msk和系統(tǒng)公開參數(shù)params,并將系統(tǒng)主密鑰msk發(fā)送給用戶證書認證模塊C,將系統(tǒng)公開參數(shù)params分別發(fā)送給用戶密鑰產(chǎn)生模塊B、用戶證書認證模塊C、簽名模塊D和驗證模塊E。
用戶密鑰產(chǎn)生模塊B用于生成各個用戶的公鑰H(id和私鑰uskID,并將用戶的公鑰 PKid發(fā)送給用戶證書認證模塊C和驗證模塊E,將用戶的私鑰Iiskm發(fā)送給簽名模塊D。
用戶證書認證模塊C通過系統(tǒng)參數(shù)設置模塊A發(fā)送的系統(tǒng)主密鑰msk和系統(tǒng)公開參數(shù)params,對合法用戶的身份ID和公鑰PKid進行簽名,產(chǎn)生用戶的證書CetID,并將用戶的證書Certm發(fā)送給簽名模塊。
簽名模塊D通過用戶密鑰產(chǎn)生模塊B發(fā)送的用戶私鑰uskID和用戶證書認證模塊 C頒發(fā)的用戶證書CertID,對消息m進行簽名,并將產(chǎn)生的簽名ο發(fā)送給驗證模塊Ε。
驗證模塊E通過系統(tǒng)參數(shù)設置模塊A發(fā)送的系統(tǒng)公開參數(shù)params和用戶密鑰產(chǎn)生模塊B發(fā)送的用戶公鑰H(ID,對簽名模塊D產(chǎn)生的簽名σ的有效性進行驗證。
下面將結合數(shù)字簽名方法的流程圖對該數(shù)字簽名系統(tǒng)中的各個模塊的操作進行具體說明。
如圖2所示,該系統(tǒng)參數(shù)設置模塊A執(zhí)行以下步驟
Al 選取兩個大素數(shù)ρ和q且滿足q |ρ-1,其中ρ為IOM位的整數(shù),q為160位的整數(shù);
A2 隨機選取0〗的一個生成元g,選取SHA-I作為抗碰撞的哈希函數(shù)H ( ·);
A3 隨機選取χ e φ ;,計算系統(tǒng)主公鑰y = gxmodp。
綜合上述信息,系統(tǒng)參數(shù)設置模塊A返回系統(tǒng)公開參數(shù)params為< p,q,g,y,H >,系統(tǒng)主密鑰msk為χ。
該用戶密鑰產(chǎn)生模塊B執(zhí)行以下步驟
Bl 隨機選取巧^ 〖作為用戶的私鑰uskm ;
B2 計算P^3 =^5 mod尸作為用戶的公鑰。
該用戶證書認證模塊C執(zhí)行以下步驟
Cl 隨機選取^ e φ ;,計算 W = gsmodp ;
C2 計算 R = s+xH(ID,PKID,W)modq,得到用戶的證書 Certm = < W,R >。該簽名模塊D執(zhí)行以下步驟
Dl 隨機選取r e φ ;,計算 U = grmodp ;
D2 計算 hi = H(m, PKid, U, W)和 h2 = H(m, ID, PKid, U, W);
D3 計算 ζ = R+xid · Vr · h2modq,得到消息 m 對應的簽名為 σ =< U, W, ζ >
該驗證模塊E執(zhí)行以下步驟
El 計算 h。= H(ID,PKid, W),Ii1 = H(m,PKid, U,W), h2 = H(m,ID, PKid, U,W);
E2 驗證等式壙=W-yK -PK^ . U、mod尸是否成立,若等式成立,則接受簽名,否則,拒絕簽名。
下面將對如上所述的依照本發(fā)明的基于證書的數(shù)字簽名系統(tǒng)應用于基于組件屬性可信終端的遠程證明系統(tǒng)中的情形進行說明。
以證明計算平臺可信為目標的遠程證明是可信計算的重要特色功能之一,已經(jīng)受到國內(nèi)外科研機構的廣泛關注。隨著遠程證明的不斷發(fā)展,出現(xiàn)了基于組件屬性的遠程證明方案(component property-based attestation,簡禾爾 CPBA)。
在基于組件屬性的遠程證明(CPBA)方法中,組件屬性證書的頒發(fā)、撤銷和驗證均使用傳統(tǒng)的PKI方法實現(xiàn)。因此,組件屬性證明的效率較低,特別是對大數(shù)量組件的屬性證明時,計算和通信代價較大,不是特別適用。依照本發(fā)明的高效的基于證書的數(shù)字簽名方法,不僅可以為可信平臺(TPM)的證書發(fā)放和撤銷提供新方法,而且也可用于可信計算平臺身份證明方法即隱私CA(Pricacy-CA)的構造,從而能夠形成更加實用的遠程證明方法。
如圖3所示,改進的基于組件屬性的遠程證明系統(tǒng)包含組件生產(chǎn)廠商、用戶平臺、 服務提供者、證書發(fā)布權威機構這4個角色。除了組件生產(chǎn)廠商外,其他3個角色參與組件屬性證明的遠程證明過程。我們用下列符號來表示系統(tǒng)中的各個參與者
CA 證書發(fā)布權威機構(Certificate Authority),主要執(zhí)行圖1系統(tǒng)參數(shù)設置模塊A和用戶證書認證模塊C中的算法,負責系統(tǒng)參數(shù)的產(chǎn)生和發(fā)布、撤銷組件屬性證書;
USER 用戶平臺,包括主機(HOST)和可信平臺模塊(TPM)兩部分,主要執(zhí)行圖1用戶密鑰產(chǎn)生模塊B和簽名模塊D中的算法,屬于證明協(xié)議中的證明者;
SP 服務提供者(Service ftxwider),主要執(zhí)行圖1驗證模塊E中的算法,提出屬性證明要求,驗證組件屬性證明。
可信計算平臺的基于組件屬性的遠程證明方案(CPBA)是屬性權威機構為各種類型組件頒發(fā)的屬性證書,屬性證書與軟、硬件綁定共同發(fā)布,平臺證明者根據(jù)配置的組件屬性證書和TPM的完整性度量向服務提供者證明其當前運行配置狀態(tài)滿足一定的安全屬性。 改進的基于組件屬性的遠程證明方案不需要第三方詢問,提高了基于組件屬性的遠程證明系統(tǒng)的效率。由圖3的體系結構可以看出,改進的CPBA證明由以下步驟組成
初始化(Setup)由證書發(fā)布權威機構(CA)執(zhí)行圖1系統(tǒng)參數(shù)設置模塊A中的算法,生成系統(tǒng)主密鑰msk和系統(tǒng)公開參數(shù)params,并將系統(tǒng)公開參數(shù)params分別發(fā)送給 USER 禾口 SP ;
注冊(Register)由用戶平臺(USER)執(zhí)行圖1用戶密鑰產(chǎn)生模塊B中的算法,生成用戶平臺的公鑰PKid和私鑰uskID,并將PKid和平臺組件屬性發(fā)送給CA和SP,然后CA執(zhí)行用戶證書認證模塊C中的算法,為用戶平臺組件屬性頒發(fā)證書Certm ;
證明(Attest)用戶平臺(包括HOST和TPM)根據(jù)服務提供者(SP)的證明請求, 執(zhí)行圖1簽名模塊D中的算法,用自己的私鑰uskID和證書Certm計算平臺組件屬性簽名 ο,然后向SP發(fā)送簽名ο進行遠程證明;
驗證(Verify)由服務提供者(SP)執(zhí)行圖1驗證模塊E中的算法,用系統(tǒng)公開參數(shù)params和用戶平臺公鑰H(ID對平臺組件屬性簽名σ進行驗證。
改進的基于組件屬性可信終端的遠程證明系統(tǒng)引入了基于證書的數(shù)字簽名方案, 消除了證書的第三方詢問,減少了系統(tǒng)的計算代價和通信代價,提高了遠程證明系統(tǒng)的效率。
對該技術領域的普通技術人員來說,根據(jù)以上實施類型可以很容易地聯(lián)想到其它的優(yōu)點和變形。因此,本發(fā)明并不局限于上述具體實施例,其僅僅作為例子對本發(fā)明的一種形態(tài)進行詳細、示范性的說明。在不背離本發(fā)明宗旨的范圍內(nèi),本領域普通技術人員可以根據(jù)上述具體實施例通過各種等同替換所得到的技術方案均應該包含在本發(fā)明的權利要求的范圍及其等同的范圍之內(nèi)。
權利要求
1.一種基于證書的數(shù)字簽名系統(tǒng),其特征在于包括系統(tǒng)參數(shù)設置模塊,用于生成系統(tǒng)主密鑰和系統(tǒng)公開參數(shù),并將系統(tǒng)主密鑰發(fā)送給用戶證書認證模塊,將系統(tǒng)公開參數(shù)發(fā)送給用戶密鑰產(chǎn)生模塊、用戶證書認證模塊、簽名模塊和驗證模塊;用戶密鑰產(chǎn)生模塊,用于生成各個用戶的公鑰和私鑰對,并將用戶的公鑰發(fā)送給用戶證書認證模塊和驗證模塊,將用戶的私鑰發(fā)送給簽名模塊;用戶證書認證模塊,通過系統(tǒng)參數(shù)設置模塊發(fā)送的系統(tǒng)主密鑰和系統(tǒng)公開參數(shù),對用戶的身份和公鑰進行簽名,產(chǎn)生用戶的證書,并將用戶的證書發(fā)送給簽名模塊;簽名模塊,通過用戶密鑰產(chǎn)生模塊發(fā)送的用戶私鑰和用戶證書認證模塊頒發(fā)的用戶證書,對消息進行簽名,并將產(chǎn)生的簽名發(fā)送給驗證模塊;驗證模塊,通過系統(tǒng)參數(shù)設置模塊發(fā)送的系統(tǒng)公開參數(shù)和用戶密鑰產(chǎn)生模塊發(fā)送的用戶公鑰,對簽名模塊產(chǎn)生的簽名的有效性進行驗證。
2.一種采用如權利要求1所述的基于證書的數(shù)字簽名系統(tǒng)的簽名方法,其特征在于包括以下步驟A 設定系統(tǒng)公開參數(shù)params和系統(tǒng)的主密鑰msk ; B 根據(jù)所述系統(tǒng)公開參數(shù)params生成用戶的公鑰PKid和私鑰uskID ; C 根據(jù)所述系統(tǒng)公開參數(shù)params,用戶的身份ID,系統(tǒng)主密鑰msk和用戶的公鑰H(ID 產(chǎn)生用戶的證書Certm;D 根據(jù)用戶的私鑰uskID和用戶的證書Certm對消息m進行簽名得到ο ; E 根據(jù)所述系統(tǒng)公開參數(shù)params和用戶的公鑰H(ID對消息m的簽名σ的有效性進行驗證。
3.如權利要求2所述的基于證書的數(shù)字簽名方法,其特征在于所述步驟A具體包括 Al 選取兩個大素數(shù)ρ和q且滿足q I p-1 ;A2 隨機選取¢:的一個生成元g,選取一個抗碰撞的雜湊哈希函數(shù)H ;A3 隨機選取χ e φ ;,計算系統(tǒng)主公鑰y = gxmodp ;系統(tǒng)公開參數(shù)params為< p,q,g,y,H >,系統(tǒng)主密鑰msk為χ。
4.如權利要求3所述的基于證書的數(shù)字簽名方法,其特征在于,所述步驟Α2中,所選的雜湊哈希函數(shù)H選用哈希函數(shù)MD-5、SHA-U SHA-2或SHA-3。
5.如權利要求2所述的基于證書的數(shù)字簽名方法,其特征在于所述步驟B具體包括 Bl 隨機選取巧060=作為用戶的私鑰uskm;B2 計算=g mod尸作為用戶的公鑰。
6.如權利要求2所述的基于證書的數(shù)字簽名方法,其特征在于所述步驟C具體包括 Cl 隨機選取s e φ ;,計算W = gsmodp ;C2 計算 R = s+xH(ID, PKid, W)modq,得到用戶的證書 Certm = < W,R >。
7.如權利要求2所述的基于證書的數(shù)字簽名方法,其特征在于所述步驟D具體包括 Dl 隨機選取〃 e φ ;,計算U = grmodp ;D2 計算 Ii1 = H(m,PKid, U,W)和 Ii2 = H(m,ID, PKid, U,W);D3 計算ζ = R+xid · hi+r · h2modq,得到消息m對應的簽名為σ =< U,W,ζ >。
8.如權利要求2所述的基于證書的數(shù)字簽名方法,其特征在于所述步驟E具體包括 El 計算 h。= H(ID,PKid, W), hi = H(m,PKid, U,W)和 Ii2 = H(m,ID, PKid, U,W); E2 驗證等式壙=爐·/ ·^^)·爐mod尸是否成立,若等式成立,則接受簽名,否則, 拒絕簽名。
全文摘要
本發(fā)明公開一種基于證書的數(shù)字簽名系統(tǒng),包括系統(tǒng)參數(shù)設置模塊、用戶密鑰產(chǎn)生模塊、用戶證書認證模塊、簽名模塊和驗證模塊;系統(tǒng)參數(shù)設置模塊生成系統(tǒng)主密鑰和系統(tǒng)公開參數(shù),公開參數(shù)發(fā)送給其它模塊;用戶密鑰產(chǎn)生模塊生成各個用戶的公鑰和私鑰對;用戶證書認證模塊對用戶的身份和公鑰進行簽名,產(chǎn)生用戶的證書并發(fā)送給簽名模塊;簽名模塊對消息進行簽名并發(fā)送給驗證模塊;驗證模塊對簽名模塊產(chǎn)生的簽名的有效性進行驗證。此系統(tǒng)可在保證安全性的前提下具有較小的計算代價和通信代價,提高系統(tǒng)的運行效率;可降低基于證書的數(shù)字簽名方法的計算代價和通信代價,提高基于證書的數(shù)字簽名方法的運算效率。本發(fā)明還公開一種基于證書的數(shù)字簽名方法。
文檔編號H04L9/32GK102546173SQ20111042647
公開日2012年7月4日 申請日期2011年12月19日 優(yōu)先權日2011年12月19日
發(fā)明者張亦辰, 李繼國, 王芝偉 申請人:河海大學