陳艾琳++李斌勇
摘 要:圍繞一對多通信的隱私保護安全問題,針對通信過程中面臨的惡意攻擊風險,分析了攔截監(jiān)聽和中斷信息兩種主流攻擊方式。結合兩種方式的惡意攻擊特點,在分析RSA算法的加解密原理基礎上,結合Hash算法和通信消息的確認原理,提出了一種基于Hash算法的消息確認機制。通過對消息確認機制的安全性分析,表明該機制在一對多通信過程中能有效地保障消息傳輸的安全可靠性,從而達到通信隱私保護的目標。
關鍵詞:一對多;RSA算法;Hash算法;消息確認機制;可靠性
中圖分類號:TP393 文獻標識碼:A
1 引言
隨著網絡的發(fā)展,一對多通信逐漸演變?yōu)槟壳皵祿ㄐ胚^程中廣泛采用的信息交互方式。互聯網的飛速發(fā)展使得通信更加便捷高效,但同時也使通信雙方的數據隱私安全受到前所未有的挑戰(zhàn)與威脅,尤其是一對多通信過程中的數據安全與隱私保護問題,已成為當前網絡安全亟待解決的問題之一?;诖?,論文將圍繞如何實現一對多可靠通信隱私保護問題展開重點研究。
密碼技術[1]是解決上述信息安全問題的核心手段之一,其主要由密碼編碼和密碼分析兩部分組成。上世紀70年代,Diffie和Hellman發(fā)表了題為“密碼學的新方向”的非對稱密碼奠基性論文,首次建立了公鑰密碼的思想和概念。后來,Ron Rivest、Adi Shamir和Leonard Adleman等人共同提出并實現了Diffie和Hellman思想的一種算法,即如今廣泛采用的RSA算法。RSA算法基于一個十分簡單的數論事實:將兩個大質數相乘十分容易,但是想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。
此外,Hash算法可以將任意長的消息m映射為較短的、固定長度的一個值,以消息的Hash值作為驗證信息,可以得知消息是否被接收方收到,并且通過比較發(fā)送和接受的消息哈希值判斷消息是否被篡改。由此,可起到消息可靠傳輸的作用。
2 普通一對多通信
一對多通信是指由一個發(fā)送方和多個接收方組成的通信系統(tǒng),發(fā)送方可以對所有接收方發(fā)送相同或不同的一組信息,也可以僅向其中部分接收方發(fā)送信息。一對多通信適用范圍很廣,如學校通知學生的成績、醫(yī)院發(fā)送病人的病情信息、福利機構公布獲獎名單等。不難看出,諸如上述通信內容均屬于用戶隱私部分,故應當防止第三方攔截攻擊。
上述信息在未經任何處理的一對多通信中,由于一些惡意攻擊者的存在,用戶的隱私岌岌可危。惡意攻擊者不僅可通過攔截監(jiān)聽的方式獲取用戶隱私,而且也可通過中斷信息方式來阻止用戶接受信息。上述兩種攻擊方式分別如圖1和圖2所示。
3 RSA加密信息
3.1 RSA算法
RSA公開密鑰密碼體制。所謂的公開密鑰密碼體制就是使用不同的加密密鑰與解密密鑰,是一種“由已知加密密鑰推導出解密密鑰在計算上是不可行的”密碼體制。
在公開密鑰密碼體制[2]中,加密密鑰(即公開密鑰)PK是公開信息,而解密密鑰(即秘密密鑰)SK是需要保密的。加密算法E和解密算法D也都是公開的。雖然解密密鑰SK是由公開密鑰PK決定的,但卻不能根據PK計算出SK。
算法簡述如下[3]:
RSA的算法涉及三個參數,n、e、d。
其中,n是兩個大質數p、q的積,n的二進制表示時所占用的位數,就是所謂的密鑰長度。
e和d是一對相關的值,e可以任意取,但要求e與(p-1)*(q-1)互質;再選擇d,要求(d*e)mod((p-1)*(q-1))=1。
(n,e),(n,d)就是密鑰對。其中(n,e)為公鑰,(n,d)為私鑰。
RSA加解密的算法完全相同,設m為明文,s為密文,則:m≡sd mod n;s≡me mod n;在公鑰加密體制中,通常采用公鑰進行加密,私鑰進行解密。
3.2 RSA加密用戶信息
一對多信息傳送密鑰分配規(guī)則為:機構與n個用戶分別有獨立的n對密鑰,其中機構保存n個公鑰,n個用戶各自保存自己的1個私鑰。機構同時向多個用戶發(fā)送信息時,就分別采用每個用戶所對應的公鑰加密,加密后的信息在公共信道進行傳輸。由于信息以密文形式進行傳輸,即使被攻擊者攔截,也不能得到有效信息。若攻擊者試圖將密文解密,則需要知道私鑰d,私鑰d被用戶秘密保存,且?guī)缀醪荒芡ㄟ^公鑰e計算出來,因而攻擊者亦無法將攔截監(jiān)聽的信息解密得到有效信息。
這種隱私保護的方法基于RSA大數分解難題,在已知兩個大素數乘積和其中一個大素數時,難以計算出另一個大素數,因此這樣的加密方式在計算上是安全的。
4 消息確認
4.1 Hash算法概述
Hash函數[3]又稱為哈希函數、雜湊函數和散列函數,在現代密碼學中扮演者重要角色,Hash函數是一公開函數,通常記為H或h,Hash函數可以將任意長的消息m映射為較短的、固定長度的一個值,記為H(m)。
從密碼算法角度看,Hash函數也可以看作是一種單項密碼體制,即它從一個明文到密文是不可逆映射,只有加密過程,不能解密。哈希值是消息中所有比特的函數,因此提供了一種錯誤檢測能力,即改變消息中任何一個比特或幾個比特都會使哈希值發(fā)生變化。
4.2 消息確認原理
消息確認[4]是收到信息的接收方發(fā)送確認信息給發(fā)送方,確認已收到的信息。消息確認的實現過程是數字簽名和消息認證部分方法的結合。
與數字簽名[5]實現過程不同之處在于消息確認只發(fā)送對消息m進行Hash變化的H(m)的簽名s≡H(m)d mod n,而不是發(fā)送m||s,這樣能有效防止攻擊者劫持消息確認從而得到有效消息內容m。具體過程如下:
接收者將信息m輸入Hash函數,得到H(m),然后將s≡H(m)d mod n發(fā)送給發(fā)送方。endprint
發(fā)送方收到確認信息后,將原信息輸入Hash函數,若與接收到的s解密所得值相等,即信息傳送成功,否則信息傳送中途出現問題,需要重新傳送信息。其消息確認過程如圖3所示。
4.3 消息確認機制安全性分析
消息確認機制能抵抗攔截監(jiān)聽。
由于消息經過Hash函數處理,若傳送消息途中有攻擊者劫持,攻擊者可以通過公鑰e解密得到H(m),但由于Hash算法的單向性,攻擊者也無法在已知H(m)的條件下推出m。因此,消息確認算法在傳送至發(fā)送方的公共信道上是安全的。
消息確認機制能檢查消息是否被篡改。
由于Hash算法能夠抵抗弱碰撞[3],即給定消息m和H(m),找到另外一個m≠m?,使得H(m)=H(m?)是不可能的。而且,Hash算法能夠抵抗強沖突[3],即可以有兩個有意義的消息m和m?,使得H(m)=H(m?)幾乎是不可能的。因此,若在消息傳送過程中,當攻擊者對消息進行了篡改,即m被改為m?,那么接收方并不能發(fā)現消息已被篡改,但當接收方發(fā)送對消息的確認時,由上述Hash算法的特殊性質可知,H(m?)≠H(m),故發(fā)送方可判斷出消息被篡改,從而進行消息重傳或者采用其他手段與接收方進行通信。
此外,若攻擊者在消息發(fā)送或消息確認發(fā)送過程中進行消息中斷,發(fā)送方事先設置的超時計時器到期后,就會因未收到確認而重新發(fā)送RSA加密消息,繼續(xù)等待接收方發(fā)回對消息的確認。上述步驟將反復進行,直到發(fā)送方收到消息確認。如圖4和圖5所示。
綜上,上述確認機制能有效對抗攻擊者進行攔截監(jiān)聽和中斷攻擊,并且能有效確保消息發(fā)送成功。
5 結束語
文中提出了利用RSA和Hash算法進行一對多可靠通信的方法,使消息的傳送不再有隱私被竊取的隱患,并通過確認機制保證了消息能被接收方獲取。可以此為理念設計一個軟件,通過使用上述系列算法,實現一對多消息傳送,并保證重要消息傳送過程的安全性和可靠性。
基金項目:
1.四川省教育廳重點項目(17ZA0069);
2.成都信息工程大學科研基金資助項目(KYTZ201618)。
參考文獻
[1] 韋茜,王晨,李星毅.基于RSA算法的快遞信息隱私保護應用[J].信息安全,2014,(4):58-60.
[2] 石志堅,譚全權,段海龍.RSA算法實現數字簽名的研究與應用[J].微型電腦應用,2008,(6):50-51.
[3] 張仕斌,萬武南,張金全.應用密碼學[M].陜西:西安電子科技大學出版社,2017.
[4] 曾晟珂,陳勇,夏梅宸.車載自組網的隱私保護問題[J].西華大學學報,2015,(4):1-15.
[5] 石志堅,譚全權,段海龍.RSA算法實現數字簽名的研究與應用[J].微型電腦應用,2008,(6):50-51.endprint