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