淺談RSA數字簽名技術在綜合船橋系統中的應用
隨著計算機網絡的快速發展,信息網絡化在綜合船橋系統中得到廣泛的應用,而網絡的各種弊端也日益顯露,如數據傳輸的完整性、保密性以及各種訪問者的身份驗證等問題。綜合船橋系統各子系統的日常運行涉及大量信息在各部門之間傳遞,通過信息傳遞來實現各部門的分工協調工作,因此重要信息的保密和確認也是亟待解決的問題。而目前這些信息的保密性一般采用明文傳送和簡單的口令機制實現對用戶的身份認證,進而控制用戶訪問重要信息的權限及確認信息發送者的身份,但這不能完全保證重要信息的保密性、完整性和抗否認性。本文采用的數字簽名可以很好地解決這一問題。
1 綜合船橋系統信息安全
綜合船橋系統IBS (Integrated Bridge System)是新一代多功能綜合型船橋系統,數據通信網絡是綜合船橋系統的重要組成部分,數據通信網絡實現了在IBS內任一工作站的信息共享,是實時監測船舶航行狀態和船舶自身工作狀態,控制船舶按照預定航線航行,快速實施避碰,實現安全航行的保證[1]。
綜合船橋系統中包含的信息廣泛,有些信息(如航行狀態、船舶工作狀態等)是非常重要的,各子系統間不斷地進行數據交換,以保證日常工作的正常運行,因此信息的傳輸非常重要。由于計算機網絡缺乏足夠的安全性,網絡上傳輸的信息隨時都受到各種威脅,如被非法用戶盜聽、竊取,未被授權用戶的非法查看、篡改和破壞。
為了保證信息傳輸的完整性、用戶身份的正確性和不可抵賴性,本文將基于RSA算法的數字簽名技術應用于綜合船橋系統信息交換過程中,以確保綜合船橋系統數據的完整性和保密性。
2 RSA數字簽名算法和單向散列函數MD5
所謂“數字簽名”就是通過某種密碼運算生成的一系列符號及代碼組成電子密碼進行簽名,用來代替書寫簽名或印章。數字簽名已經在很多領域得到了普遍應用,可操作性強,很好地保證了文件在傳輸過程中的完整性、真實性和不可抵賴性。
在RSA數字簽名變換前,先使用單向散列函數MD5對明文進行數字摘要操作,其在保證數字簽名效果的同時更好地提高RSA數字簽名操作的運行速度。
2.1 數字簽名的作用
(1)身份認證:利用數字簽名辨認和鑒定被指定方身份的真偽,如果該簽名通過驗證,則可以肯定其身份確鑿無疑。
(2)數據完整性:利用數字簽名技術確認數據在傳輸和存儲過程中沒有被修改。
(3)數據保密性:除了指定的授權者外,其他沒經授權的人無法讀出或即使讀出也無法看懂該數據信息。
(4)不可否認性:一方面,用數字簽名的方法從技術上防止簽名者對其行為的否認,另一方面,確保數據來源的不可否認性,即用戶不能否認信息和文件是來源于他。
2.2 單向散列函數MD5
MD5函數是一種單向散列函數,它將任意長度的消息壓縮成128 bit的消息摘要。應用MD5的單向性和抗碰撞性,可以實現信息的完整性檢驗。另外,該函數執行的速度快,是一種被廣泛認可的單向散列算法。
MD5數字摘要過程:發送者利用MD5函數對傳送的信息進行數字摘要操作得到128 bit的摘要值,并將此摘要值與原始信息數據一起傳送給接收者,接收者用此摘要值來檢驗信息數據在網絡傳送過程中是否有改變,以此來判斷信息的真實性[4-6]。
對于綜合船橋系統的數據,在其傳輸過程中,可能因某些傳輸協議、信道、防火墻的問題,或者黑客攻擊而導致信息被攔截、竊取、破壞和篡改,因此在數據傳輸之前使用一些數字簽名算法對重要核心數據簽名,然后再進行傳輸,這樣就大大提高了信息傳輸的完整性和抗攻擊能力。
與此同時,可能因為一些特殊的需要,會遇到關于傳輸者的身份和文件的不可抵賴性,以及文件的保密性和完整性等問題的困擾,為了解決這個難題,本文引入了數字簽名機制,在進行數字簽名前,首先采用MD5哈希函數在信息轉換前對它進行數字摘要,以提高RSA數字簽名的速度。這樣既解決了信息驗證的問題,又有效地解決了RSA速度上的缺陷。
4 RSA數字簽名算法流程和實現
4.1 算法流程
綜合考慮綜合船橋系統的各種信息的安全性問題,在信息傳輸前對信息進行數字簽名,可以很好地保證信息在傳輸過程中不會被未被授權的用戶查看、篡改和破壞,接收到數據后還可以驗證發送方的身份,以及驗證文件信息的不可否認性。
本文的數字簽名過程如下:
(1)數字摘要過程:發送者使用MD5算法對明文信息進行數字摘要變換。
(2)簽名過程:發送方使用自己的私鑰對明文信息進行數字簽名變換,將加密后的消息和簽名發送給接收方。
(3)驗證過程:接收方使用發送方的公鑰對收到的消息進行數字簽名驗證變換,然后再比較與發送方的公鑰解密恢復消息M即可。
數字簽名算流程框圖如圖1所示。
RSA數字簽名易于實現,并且可以和加密算法相結合。但是簽名者每次只能簽名log2n bit長的消息,獲得同樣長的簽名。一般說來,如果所要簽的消息很長,簽名前只能把消息分成log2n bit大小的分組,逐組進行簽名。由于RSA數字簽名中基本運算都是長字節運算,這樣運行的速度較慢,如果整個發送信息都使用RSA簽名,速度就成了瓶頸。為了解決速度的約束,本文在對明文消息進行簽名之前首先采用MD5對明文信息進行數字摘要,然后再由RSA算法對固定長度的數字摘要進行數字簽名變換[2]。
對于MD5算法,要找到兩個具有相同散列值的信息在實現上是不可行的,因此解決了信息在傳輸過程中被篡改的問題。
4.2 數字簽名在IBS中的算法實現
圖1給出了RSA數字簽名的算法流程,其算法的實現步驟如下:
(1)發送方首先使用MD5算法對明文信息M進行數字摘要變換。
(2)發送方使用自己的私鑰Kdb對明文信息M進行數字簽名變換:C=MKdb(modn)。
(3)將加密后的消息M和簽名發送給接收方。
(4)接收方使用發送方的公鑰Keb對收到的消息C進行數字簽名驗證變換:M*=CKeb(modn)。
(5)比較M*與發送方的公鑰解密恢復消息M。
(6)如果M*=M則證實發送方的身份合法。
在信息安全領域存在多種加密算法,隨著計算機網絡技術的發展,信息安全越來越受到重視,本文針對問題的實際情況,在RSA數字簽名算法和MD5算法的基礎上,將RSA數字簽名機制應用到綜合船橋系統中。此算法原理簡單、易于實現,既保證了信息的完整性,又保證了信息的真實性和完成用戶的身份驗證。同時,在簽名操作前使用MD5進行數字摘要操作,使得加密速度較快,而對安全性沒有影響,很好地符合了系統的要求。
參考文獻
[1] 曾慶軍,周耀庭.綜合船橋系統研究綜述[J].中國航海, 2000,46(1):28-37.
[2] 徐煒,陶翔.數字簽名在網上交易中的應用[J].電子商務,2006(34).
[3] 王保義,張少敏.用混合密碼算法實現電力系統重要信息的安全傳送[J].電力自動化設備,2004,24(4):64-67.
[4] 凌捷.計算機數據安全技術[M].北京:科學出版社,2004.
[5] 牛少彰.信息安全概論[M].北京:北京郵電大學出版社, 2004.
評論