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