校園網(wǎng)一卡通系統(tǒng)與數(shù)字簽名技術(shù)
文章出處:http://www.sgrivertours.com 作者:林鵬,萬振凱 人氣: 發(fā)表時(shí)間:2009年05月03日
1 數(shù)字簽名的原理
數(shù)字簽名基于加密技術(shù),是加密技術(shù)在認(rèn)證領(lǐng)域的一個(gè)應(yīng)用。現(xiàn)在的加密技術(shù)分為三大類:雜湊函數(shù)、私鑰密碼體制、公鑰密碼體制。因此,數(shù)字簽名也分為三種體制:基于雜湊函數(shù)的數(shù)字簽名、基于私鑰密碼體制的數(shù)字簽名和基于公鑰密碼體制的數(shù)字簽名。使用雜湊函數(shù)方案的數(shù)字簽名對(duì)雜湊函數(shù)的選擇要求很高,但是能符合要求的雜湊函數(shù)并不是很多,因此這種方案多用于對(duì)消息進(jìn)行變換而得到其消息文摘,然后利用其他的算法對(duì)消息進(jìn)行簽名?;谒借€密碼體制的數(shù)字簽名有兩種基本方式,也就是雙方直接通信或者借助可靠的第三方進(jìn)行通信。Lamport-Diffie方案是常見的雙方直接通信的數(shù)字簽名,該方案根據(jù)消息選取不同的參數(shù),因此可靠性較高,但是數(shù)據(jù)膨脹率極大,而且密鑰用過立即作廢。如果借助第三方,則需要第三方公正而且雙方都可以信任,以便通過其來驗(yàn)證簽名。第三方擁有與之通信的所有用戶的密鑰,通信雙方如果發(fā)生爭(zhēng)執(zhí),第三方可以起到仲裁作用,但是由于要管理大量的密鑰,所以容易出現(xiàn)瓶頸的問題。
與前兩種方式的數(shù)字簽名相比,基于公鑰密碼體制實(shí)現(xiàn)的數(shù)字簽名簡(jiǎn)單而且更加實(shí)用。因此現(xiàn)在的數(shù)字簽名大多是指這種類型。美國(guó)的數(shù)字簽名標(biāo)準(zhǔn)DSS\DSA采用了公鑰密碼體制。公開密鑰算法的特點(diǎn)可概述為以下幾點(diǎn):
1)用加密密鑰對(duì)明文加密后再用解密密鑰解密即可以恢復(fù)出明文。
2)加密密鑰不能用來解密。
3)在計(jì)算機(jī)上可以容易的產(chǎn)生成對(duì)的加密和解密密鑰。
4)從已知的加密密鑰實(shí)際上不可能推出解密密鑰。
5)加密和解密的運(yùn)算可以對(duì)掉。
2 數(shù)字簽名的方案設(shè)計(jì)
在實(shí)際應(yīng)用中,數(shù)字簽名必須保證以下幾點(diǎn):接收者能夠核實(shí)發(fā)送者對(duì)報(bào)文的簽名;發(fā)送者事后不能抵賴對(duì)報(bào)文的簽名;接受者不能偽造對(duì)報(bào)文的簽名。也就是說簽字可以被確認(rèn),但是無法被偽造。簽字無法重復(fù)使用,被簽名的文件是不能夠被篡改的,簽字具有無可否認(rèn)性。
自數(shù)字簽名的概念提出以來,涌現(xiàn)出了很多的簽名方案,RSA方案和ElGammal方案是其中較為典型的兩種。RSA方案是River、Shamir、Adleman于1978年提出的,自公布以來,許多專家和學(xué)者對(duì)其進(jìn)行了分析,但至今尚未找出主要缺陷。RSA有兩個(gè)參數(shù)e和d,。若將e公開,則d保密。密碼能保證信息不被非法竊取,但不能防止發(fā)信方抵賴,也不能阻止收信方作假。因?yàn)?IMG class=pic height=21 alt="" onerror='this.src="/UploadFiles/Article_UploadFiles/200905/20090503170607640.gif"' src="/UploadFiles/Article_UploadFiles/200905/20090503170615679.jpg" width=91>其中e和n是公開的。若發(fā)生雙方糾紛,很難判斷是發(fā)信方抵賴還是收信方偽造。
ElGammal方案是ElGammal等人在1985年提出的,是繼RSA之后著名的數(shù)字簽名方案。該方案基于求離散對(duì)數(shù)的困難性。系統(tǒng)提供一大素?cái)?shù)p和G,(p)上的本原元素go對(duì)每一個(gè)用戶A可選擇XA∈[O,1,2A,p-1]。計(jì)算。將 yA公開,XA保密,由A自己掌握。
在校園網(wǎng)辦公自動(dòng)化系統(tǒng)中可以考慮這兩種方案,而且為了增加安全性,可以將這兩種方案合二為一。RSA方案是基于大整數(shù)分解的問題,而ElGammal方案是基于有限域上的離散對(duì)數(shù)問題,只要將簽名方案的安全性建立在大整數(shù)分解和離散對(duì)數(shù)這兩個(gè)問題的基礎(chǔ)上面,那么這個(gè)方案的安全性將要比RSA方案和Elgammal方案的安全性都要好?;谶@些理論,可以構(gòu)造一種新的數(shù)字簽名方案。
方案描述:
3 方案的分析
上述方案具有如下特點(diǎn):方案的安全性是建立在整數(shù)分解和離散對(duì)數(shù)兩個(gè)困難問題上,要攻破該方案,必須求解Z*P中的離散對(duì)數(shù)問題,并且要有能力把(p-1)/2分解為兩個(gè)大素?cái)?shù)。因此它的安全性比RSA和ElGammal都要好一些。
在該方案中采用了不需要求逆運(yùn)算而且驗(yàn)證只需要兩個(gè)儀器儀表用戶模指數(shù)運(yùn)算的一種廣義ElGammal簽名形式:s=(m+r)X-j ,比起需要求逆運(yùn)算并且驗(yàn)證時(shí)需要三個(gè)模指數(shù)運(yùn)算的ElGamal簽名形式sj=m-xr來說,計(jì)算量要小很多。該方案是非確定性的,即對(duì)于同一明文消息,由于隨即參數(shù)選擇的不同,產(chǎn)生的簽名也會(huì)不同。
4 方案的實(shí)現(xiàn)
該方案分為三個(gè)模塊:密鑰獲取模塊、簽名模塊和驗(yàn)證模塊。
1)用戶密鑰獲取模塊
每個(gè)初次接入系統(tǒng)的設(shè)備都需要輸入一個(gè)初始值p ,系統(tǒng)根據(jù)這個(gè)初始值產(chǎn)生兩個(gè)大數(shù)q1和t ,而后在這兩個(gè)大數(shù)附近確定兩個(gè)大素?cái)?shù)g和t,再由p=2qt+1確定p,對(duì)p進(jìn)行檢測(cè),看其是否為素?cái)?shù)。如果p是素?cái)?shù),就可以由此產(chǎn)生簽名私鑰和驗(yàn)證簽名所用的公鑰,否則需要重新輸入另外的初始值。公鑰和私鑰產(chǎn)生后,私鑰保存在設(shè)備中,公鑰存入公鑰簿中(公鑰簿是一個(gè)公共文件)。
2)簽名模塊
終端機(jī)對(duì)某一消息簽名的時(shí)候,用自己的簽名私鑰,即可得到該消息的數(shù)字簽名。
3)驗(yàn)證模塊
服務(wù)器端接收到簽名消息后,將消息輸入到驗(yàn)證模塊,模塊進(jìn)行驗(yàn)證并輸出驗(yàn)證結(jié)果。
5 結(jié)論
本文針對(duì)校園網(wǎng)一卡通系統(tǒng)設(shè)計(jì)了一個(gè)數(shù)字簽名方案,該方案結(jié)合了RSA和ElGammal的安全性,因此更加可靠。編程測(cè)試結(jié)果表明該方案對(duì)簽名真?zhèn)闻袛嗤耆_。如果結(jié)合其他的數(shù)據(jù)加密技術(shù),該方案將能勝任一般辦公系統(tǒng)對(duì)數(shù)據(jù)安全性的要求。
(文/天津工業(yè)大學(xué)計(jì)算機(jī)與自動(dòng)化學(xué)院,林鵬,萬振凱)