摘 要:基于身份簽密的體制能在一個(gè)邏輯步驟內(nèi)完成加密和簽名的功能,其通信成本和計(jì)算量都比傳統(tǒng)先加密后簽名的方案小。利用Ben Lynn的PBC庫以及李發(fā)根等提出的基于身份簽密的算法,實(shí)現(xiàn)了用戶間的安全通信。該系統(tǒng)較當(dāng)前提出的基于IBE的安全通信系統(tǒng)操作更為簡便,安全性更高。
關(guān)鍵詞:基于身份簽密; 安全通信; PBC庫;IBE安全通信系統(tǒng)
中圖分類號:TP309 文獻(xiàn)標(biāo)識碼: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 引 言
在開放網(wǎng)絡(luò)中傳輸涉密信息需要對信息進(jìn)行加密。由于基于IBE的密碼體制能極大地簡化基于證書密碼體制的密鑰管理過程,已經(jīng)成為密碼學(xué)研究的熱點(diǎn)之一。它選擇任意比特串(如身份證號、Email地址等)作為公鑰,由私鑰生成中心(PKG)生成公鑰。從閱讀的文獻(xiàn)來看,已經(jīng)有很多將IBE體制應(yīng)用于到現(xiàn)實(shí)系統(tǒng)中的例子。文獻(xiàn)[1]中實(shí)現(xiàn)了一個(gè)基于IBE的安全郵件系統(tǒng)。文獻(xiàn)[2]中將IBE體制用于學(xué)分制管理系統(tǒng)中,實(shí)現(xiàn)了安全的學(xué)分制管理。這些文獻(xiàn)都是基于斯坦福大學(xué)計(jì)算機(jī)科學(xué)系安全實(shí)驗(yàn)室Ben Lynn開發(fā)的IBE程序庫[3],只能實(shí)現(xiàn)IBE加密,不具備簽名功能,而且操作較為繁瑣(需要輸入命令)。
針對這些問題,本文根據(jù)Ben Lynn最新實(shí)現(xiàn)的PBC庫[4],實(shí)現(xiàn)了一個(gè)基于身份簽密的安全通信系統(tǒng)。基于身份簽密能在一個(gè)邏輯步驟內(nèi)完成加密和簽名的功能,其通信成本和計(jì)算量都比傳統(tǒng)先加密后簽名的方案小。該系統(tǒng)能提供加密和數(shù)字簽名的功能,具有更高的安全性,而且操作簡單,人機(jī)界面好。
1 基于身份簽密體制
2002年Malone Lee定義了基于身份簽密方案的安全模型,利用雙線性對構(gòu)造了第一個(gè)基于身份的簽密方案[5],但是該方案被證明不是語義安全的。隨后一些新方案相繼提出,文獻(xiàn)[6]中提出目前為止被證明為最高效的基于身份簽密體制,該方案在隨機(jī)預(yù)言機(jī)模型下被證明可滿足機(jī)密性、不可偽造性、不可否認(rèn)性、公開驗(yàn)證性和前向安全性。該方案包括Setup,Signcrypt,Unsigncrypt三個(gè)算法。
1.1 系統(tǒng)初始化(Setup)
設(shè)P為循環(huán)加法群G1的生成元,階為q;G2為具有相同階q的乘法循環(huán)群。PKG隨機(jī)選擇一個(gè)主密鑰s∈Z*q,計(jì)算Ppub=sP作為自己的公鑰。定義4個(gè)安全的Hash函數(shù),滿足:
H1={0,1}*→G1,H2={0,1}*→Zq,
H3:G1→Zq,H4:G2→{0,1}n。
公開系統(tǒng)參數(shù): {G1,G2,n,e,P,Ppub,H1,H2,H3,H4}。
每個(gè)用戶擁有自己的ID(ID可以是標(biāo)識用戶身份的任意比特串)。用戶向PKG發(fā)送自己的ID,PKG計(jì)算QU=H1(ID)作為用戶的公鑰,SU=s QU作為用戶的私鑰。PKG通過安全通道將私鑰傳遞給用戶,并公布用戶的公鑰。
1.2 簽密(Signcrypt)
假設(shè)用戶Alice要給Bob發(fā)送一條簽密消息,即m∈{0,1}n。其中,Alice的公鑰為QA,私鑰為SA;Bob的公鑰為QB,私鑰為SB,則執(zhí)行以下步驟:
(1) Alice隨機(jī)選擇k∈Z*q,計(jì)算R=kP,S=k-1[H2(m)#8226;Ppub+H3(R)#8226;SA];
(2) 計(jì)算w=e(Ppub,QB)k和c=H4(w)⊕m;
(3) 發(fā)送密文σ=(c,R,S)給Bob。
1.3 解簽密(Unsigncrypt)
Bob接收到密文σ后,執(zhí)行如下步驟:
(1) 計(jì)算w=e(R,SB),如果該消息確實(shí)是由Alice發(fā)送給Bob的,則可以通過m=c⊕H4(w)恢復(fù)消息。
(2) 用通過恢復(fù)得到的消息m判斷e(R,S)=e(P,Ppub)H2(m)e(Ppub,QA)H3(R)是否成立,如果成立,則解簽密成功,否則返回符號“⊥”,解簽密失敗。
2 基于身份簽密的安全通信系統(tǒng)
2.1 系統(tǒng)交互模型
系統(tǒng)交互模型如圖1所示。
圖1 系統(tǒng)交互模型
PKG Server運(yùn)行Setup算法,計(jì)算出系統(tǒng)參數(shù),建立TCP服務(wù)器等待連接。用戶Alice和Bob連接上服務(wù)器,PKG Server登記他們的主機(jī)名作為身份信息。當(dāng)Alice要給Bob發(fā)送簽密消息時(shí),Bob建立TCP服務(wù)器等待Alice的連接,并進(jìn)行下述交互步驟:
(1) Alice申請Bob的公鑰;
(2) PKG生成Alice私鑰和Bob的公鑰,并連同系統(tǒng)參數(shù)一起發(fā)送給Alice;
(3) Alice運(yùn)行Signcrypt算法,發(fā)送密文σ給Bob;
(4) Bob檢測到Alice的連接(即得到Alice的主機(jī)名),向PKG申請Alice的公鑰;
(5) PKG向Bob發(fā)送Alice的公鑰、Bob私鑰和系統(tǒng)參數(shù);
(6) Bob運(yùn)行Unsigncrypt算法,返回驗(yàn)證結(jié)果給Alice。
2.2 系統(tǒng)安全機(jī)制
(1) 主密鑰的生成與撤銷。本系統(tǒng)傳輸?shù)男畔⑹菢O為重要的,而且傳輸?shù)男畔⒘枯^少,在運(yùn)行PKG服務(wù)器時(shí),需要鍵入用戶口令,以驗(yàn)證操作權(quán)限,驗(yàn)證后才運(yùn)行Setup算法。在Alice和Bob的通信結(jié)束后,PKG關(guān)閉,撤銷原主密鑰,在下次運(yùn)行PKG時(shí),重新生成主密鑰。這樣省去了主密鑰的備份和恢復(fù)機(jī)制,降低了系統(tǒng)的復(fù)雜性。
(2) 私鑰生成、撤銷與安全通道。PKG必須采取訪問控制、入侵檢測、審計(jì)追蹤等安全防范措施,以保證主密鑰和私鑰生成算法的安全。在一次通信完成后,PKG需要重新生成主密鑰,用戶私鑰也需重新申請,原私鑰撤銷、刪除。私鑰發(fā)送的安全通道通過文獻(xiàn)[7]中提出的算法實(shí)現(xiàn)。
(3) 公鑰撤銷。借鑒傳統(tǒng)解決方法,在主機(jī)名后,用有效年限的方法來構(gòu)成公鑰,如使用“主機(jī)名||2009”形式的字符串作為公鑰,其中附加字段“2009”指該公鑰的有效期為2009年。
2.3 基于身份簽密安全通信系統(tǒng)的實(shí)現(xiàn)
2.3.1 核心算法的實(shí)現(xiàn)
斯坦福大學(xué)計(jì)算機(jī)科學(xué)系的Ben Lynn在其博士論文中對使用對密碼系統(tǒng)的實(shí)現(xiàn)進(jìn)行了深入研究[8],開發(fā)了開源的PBC庫[4]。該庫為循環(huán)群上的雙線形對提供了虛擬接口,使開發(fā)人員不用考慮底層的數(shù)學(xué)實(shí)現(xiàn)[9]。PBC庫是建立在GMP庫之上的,在安裝PBC庫之前需要安裝GMP庫。
Hash函數(shù)選擇標(biāo)準(zhǔn)算法SHA1,因此需要安裝openssl庫。為了有效地進(jìn)行代碼復(fù)用,定義了將PBC數(shù)據(jù)類型散列為字符串的函數(shù)element_hash_to_str。實(shí)現(xiàn)過程如下:
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);
}
算法的主要執(zhí)行過程如圖2所示。
2.3.2 圖形用戶界面的開發(fā)
采用Nokia公司最新推出的開源SDK-Qt Creator 1.0開發(fā)GUI界面。Qt具有非常好的可移植性,能支持大多數(shù)的硬件平臺,具有“一次編譯,到處運(yùn)行”的特點(diǎn),適合復(fù)雜的GUI開發(fā)。在通信過程中,用戶雙方使用面向連接的TCP協(xié)議,以保證傳輸?shù)膶?shí)時(shí)性。Qt中的QTcpServer和QTcpSocket類庫對TCP協(xié)議的實(shí)現(xiàn)提供了很好的支持,極大地加快了開發(fā)進(jìn)程。軟件已在Ubuntu 8.10和Windows XP操作系統(tǒng)下進(jìn)行測試,且運(yùn)行良好。
圖2 算法執(zhí)行流程圖
3 結(jié) 語
針對網(wǎng)絡(luò)中傳輸重要信息的需要,利用Ben Lynn最新開發(fā)的PBC庫實(shí)現(xiàn)了文獻(xiàn)[6]等提出的基于身份簽密的算法,并在此基礎(chǔ)上開發(fā)一個(gè)安全通信系統(tǒng)。該系統(tǒng)采用TCP協(xié)議進(jìn)行通信,使用Qt開發(fā)操作界面,有效地解決了當(dāng)前基于IBE體制的實(shí)現(xiàn)中所存在的操作不方便,只實(shí)現(xiàn)單一加密等功能問題。該系統(tǒng)能有效地運(yùn)行在多種平臺,其安全性高,適合于傳輸極為重要的信息。
參考文獻(xiàn)
[1]彭海濤,史清華.基于身份加密的安全郵件系統(tǒng)[J].計(jì)算機(jī)工程,2005,31(13):124-125.
[2]孫飛顯,徐明潔,楊進(jìn),等.基于Web的教務(wù)管理系統(tǒng)安全方案設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,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]李發(fā)根,胡予濮,李剛.一個(gè)高效的基于身份的簽密方案[J].計(jì)算機(jī)學(xué)報(bào),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/.