摘 要:基于身份簽密的體制能在一個邏輯步驟內完成加密和簽名的功能,其通信成本和計算量都比傳統先加密后簽名的方案小。利用Ben Lynn的PBC庫以及李發根等提出的基于身份簽密的算法,實現了用戶間的安全通信。該系統較當前提出的基于IBE的安全通信系統操作更為簡便,安全性更高。
關鍵詞:基于身份簽密; 安全通信; PBC庫;IBE安全通信系統
中圖分類號:TP309 文獻標識碼:A
文章編號:1004-373X(2010)09-0098-03
Secure Communication System of Identity-based Signcryption
LI Shun, ZENG Chao, LI Jun
(Institute of Electronic Engineering, China Academy of Engineering Physics, Mianyang 621900,China)
Abstract: The identity-based signcryption can realize the encryption and digital signature, whose communication cost and computation are less than the traditional encryption-then-signature scheme. The secure communication between usersis rea-lized by PBC library coded by Ben Lynn and identity-based signcryption algorithm proposed by LI Fa-gen et al. The system is securer and easier than the available IBE-based secure communication system.
Keywords: identity-based signcryption; secure communication; PBC library;IBE secure cemmunication system
0 引 言
在開放網絡中傳輸涉密信息需要對信息進行加密。由于基于IBE的密碼體制能極大地簡化基于證書密碼體制的密鑰管理過程,已經成為密碼學研究的熱點之一。它選擇任意比特串(如身份證號、Email地址等)作為公鑰,由私鑰生成中心(PKG)生成公鑰。從閱讀的文獻來看,已經有很多將IBE體制應用于到現實系統中的例子。文獻[1]中實現了一個基于IBE的安全郵件系統。文獻[2]中將IBE體制用于學分制管理系統中,實現了安全的學分制管理。這些文獻都是基于斯坦福大學計算機科學系安全實驗室Ben Lynn開發的IBE程序庫[3],只能實現IBE加密,不具備簽名功能,而且操作較為繁瑣(需要輸入命令)。
針對這些問題,本文根據Ben Lynn最新實現的PBC庫[4],實現了一個基于身份簽密的安全通信系統。基于身份簽密能在一個邏輯步驟內完成加密和簽名的功能,其通信成本和計算量都比傳統先加密后簽名的方案小。該系統能提供加密和數字簽名的功能,具有更高的安全性,而且操作簡單,人機界面好。
1 基于身份簽密體制
2002年Malone Lee定義了基于身份簽密方案的安全模型,利用雙線性對構造了第一個基于身份的簽密方案[5],但是該方案被證明不是語義安全的。隨后一些新方案相繼提出,文獻[6]中提出目前為止被證明為最高效的基于身份簽密體制,該方案在隨機預言機模型下被證明可滿足機密性、不可偽造性、不可否認性、公開驗證性和前向安全性。該方案包括Setup,Signcrypt,Unsigncrypt三個算法。
1.1 系統初始化(Setup)
設P為循環加法群G1的生成元,階為q;G2為具有相同階q的乘法循環群。PKG隨機選擇一個主密鑰s∈Z*q,計算Ppub=sP作為自己的公鑰。定義4個安全的Hash函數,滿足:
H1={0,1}*→G1,H2={0,1}*→Zq,
H3:G1→Zq,H4:G2→{0,1}n。
公開系統參數: {G1,G2,n,e,P,Ppub,H1,H2,H3,H4}。
每個用戶擁有自己的ID(ID可以是標識用戶身份的任意比特串)。用戶向PKG發送自己的ID,PKG計算QU=H1(ID)作為用戶的公鑰,SU=s QU作為用戶的私鑰。PKG通過安全通道將私鑰傳遞給用戶,并公布用戶的公鑰。
1.2 簽密(Signcrypt)
假設用戶Alice要給Bob發送一條簽密消息,即m∈{0,1}n。其中,Alice的公鑰為QA,私鑰為SA;Bob的公鑰為QB,私鑰為SB,則執行以下步驟:
(1) Alice隨機選擇k∈Z*q,計算R=kP,S=k-1[H2(m)#8226;Ppub+H3(R)#8226;SA];
(2) 計算w=e(Ppub,QB)k和c=H4(w)⊕m;
(3) 發送密文σ=(c,R,S)給Bob。
1.3 解簽密(Unsigncrypt)
Bob接收到密文σ后,執行如下步驟:
(1) 計算w=e(R,SB),如果該消息確實是由Alice發送給Bob的,則可以通過m=c⊕H4(w)恢復消息。
(2) 用通過恢復得到的消息m判斷e(R,S)=e(P,Ppub)H2(m)e(Ppub,QA)H3(R)是否成立,如果成立,則解簽密成功,否則返回符號“⊥”,解簽密失敗。
2 基于身份簽密的安全通信系統
2.1 系統交互模型
系統交互模型如圖1所示。
圖1 系統交互模型
PKG Server運行Setup算法,計算出系統參數,建立TCP服務器等待連接。用戶Alice和Bob連接上服務器,PKG Server登記他們的主機名作為身份信息。當Alice要給Bob發送簽密消息時,Bob建立TCP服務器等待Alice的連接,并進行下述交互步驟:
(1) Alice申請Bob的公鑰;
(2) PKG生成Alice私鑰和Bob的公鑰,并連同系統參數一起發送給Alice;
(3) Alice運行Signcrypt算法,發送密文σ給Bob;
(4) Bob檢測到Alice的連接(即得到Alice的主機名),向PKG申請Alice的公鑰;
(5) PKG向Bob發送Alice的公鑰、Bob私鑰和系統參數;
(6) Bob運行Unsigncrypt算法,返回驗證結果給Alice。
2.2 系統安全機制
(1) 主密鑰的生成與撤銷。本系統傳輸的信息是極為重要的,而且傳輸的信息量較少,在運行PKG服務器時,需要鍵入用戶口令,以驗證操作權限,驗證后才運行Setup算法。在Alice和Bob的通信結束后,PKG關閉,撤銷原主密鑰,在下次運行PKG時,重新生成主密鑰。這樣省去了主密鑰的備份和恢復機制,降低了系統的復雜性。
(2) 私鑰生成、撤銷與安全通道。PKG必須采取訪問控制、入侵檢測、審計追蹤等安全防范措施,以保證主密鑰和私鑰生成算法的安全。在一次通信完成后,PKG需要重新生成主密鑰,用戶私鑰也需重新申請,原私鑰撤銷、刪除。私鑰發送的安全通道通過文獻[7]中提出的算法實現。
(3) 公鑰撤銷。借鑒傳統解決方法,在主機名后,用有效年限的方法來構成公鑰,如使用“主機名||2009”形式的字符串作為公鑰,其中附加字段“2009”指該公鑰的有效期為2009年。
2.3 基于身份簽密安全通信系統的實現
2.3.1 核心算法的實現
斯坦福大學計算機科學系的Ben Lynn在其博士論文中對使用對密碼系統的實現進行了深入研究[8],開發了開源的PBC庫[4]。該庫為循環群上的雙線形對提供了虛擬接口,使開發人員不用考慮底層的數學實現[9]。PBC庫是建立在GMP庫之上的,在安裝PBC庫之前需要安裝GMP庫。
Hash函數選擇標準算法SHA1,因此需要安裝openssl庫。為了有效地進行代碼復用,定義了將PBC數據類型散列為字符串的函數element_hash_to_str。實現過程如下:
void element_hash_to_str(element_t a, unsigned char * md)
{
mpz_t t;
int n;
char *data = pbc_malloc(n);
mpz_init(t);
element_to_mpz(t, a);
n=mpz_sizeinbase(t, 40) + 2;
mpz_get_str(data, 40, t);
SHA1((unsigned char*)data, sizeof(data), md);
pbc_free(data);
}
算法的主要執行過程如圖2所示。
2.3.2 圖形用戶界面的開發
采用Nokia公司最新推出的開源SDK-Qt Creator 1.0開發GUI界面。Qt具有非常好的可移植性,能支持大多數的硬件平臺,具有“一次編譯,到處運行”的特點,適合復雜的GUI開發。在通信過程中,用戶雙方使用面向連接的TCP協議,以保證傳輸的實時性。Qt中的QTcpServer和QTcpSocket類庫對TCP協議的實現提供了很好的支持,極大地加快了開發進程。軟件已在Ubuntu 8.10和Windows XP操作系統下進行測試,且運行良好。
圖2 算法執行流程圖
3 結 語
針對網絡中傳輸重要信息的需要,利用Ben Lynn最新開發的PBC庫實現了文獻[6]等提出的基于身份簽密的算法,并在此基礎上開發一個安全通信系統。該系統采用TCP協議進行通信,使用Qt開發操作界面,有效地解決了當前基于IBE體制的實現中所存在的操作不方便,只實現單一加密等功能問題。該系統能有效地運行在多種平臺,其安全性高,適合于傳輸極為重要的信息。
參考文獻
[1]彭海濤,史清華.基于身份加密的安全郵件系統[J].計算機工程,2005,31(13):124-125.
[2]孫飛顯,徐明潔,楊進,等.基于Web的教務管理系統安全方案設計[J].計算機應用,2006,26(5):1198-1201.
[3]BEN Lynn. Stanford IBE Library[EB/OL]. [2004-11-21]. http://crypto.stanford.edu/ibe/download/ibe-0.7.2.tgz.
[4]BEN Lynn. PBC Library[EB/OL]. [2005-03-22]. http://crypto.stanford.edu/pbc/.
[5]MALONE-LEE J. Identity based signcryption[R]. [S.l.]: Cryptology ePrint Archive, 2002.
[6]李發根,胡予濮,李剛.一個高效的基于身份的簽密方案[J].計算機學報,2006,29(9):1641-1647.
[7]YUAN Q, LI S. A new efficient ID-based authenticated key agreement protocol[EB/OL]. [2005-07-09]. http://eprint.iacr.org/2005/309.pdf.
[8]LYNN Ben. On the implementation of pairing-based cryptosystems[D]. USA: Stanford University, 2008.
[9]LYNN Ben. PBC Library Manual 0.4.19 [EB/OL]. [2007-08-11]. http://crypto.stanford.edu/pbc/.