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