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