欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種安全發(fā)送傳輸密鑰的方法

文檔序號:7881571閱讀:360來源:國知局
專利名稱:一種安全發(fā)送傳輸密鑰的方法
技術領域
本發(fā)明涉及數據安全傳輸技術,特別是指在客戶端-服務器框架下一種安全發(fā)送傳輸密鑰的方法。
背景技術
在各種通信系統(tǒng)尤其是移動通信系統(tǒng)中,為了確保用戶間信息的安全保密性,安全通信的實現是非常重要的,這就需要對所傳輸的數據進行加密保護,進而就需要在傳輸數據的實體之間確定并傳輸加密的密鑰。在一些客戶端-服務器(C-S,Client-Server)框架的應用中,會涉及到唯雙方的密鑰傳輸。例如在無線局域網(WLAN)系統(tǒng)中,接入控制器(AC)和接入點(AP)之間的密鑰傳輸、AP和終端(STA)之間的密鑰傳輸都屬于Client-Server框架下的密鑰傳輸,這里,可將一方作為Client,另一方作為Server。無論是STA與AP還是AP與AC之間,如果不進行安全保護,就會存在安全隱患。因此,當雙方傳輸密鑰時,就需要對傳輸的密鑰信息進行保護,同時也需要對雙方的身份進行認證,以保證是在合法用戶之間進行相互的密鑰傳輸。
目前,在進行數據加密傳輸的任意兩個實體之間,只是在建網時通過人工方式分別設置了對稱密鑰,而沒有采用密鑰傳輸機制。兩個實體之間要傳送保密信息時,一端使用所設置的密鑰加密,而另一端使用相同的密鑰解密,一次單向的消息傳遞完成保密信息傳送的過程。但這種方式只能進行簡單的保密信息傳送,傳遞保密信息的兩端不能進行相互認證,從而無法抵御中間人的攻擊。

發(fā)明內容
有鑒于此,本發(fā)明的主要目的在于提供一種安全發(fā)送傳輸密鑰的方法,使其能保證兩個實體間的密鑰保密傳輸。
本發(fā)明進一步的目的是保證兩個實體間能夠實現相互的身份認證。
為達到上述目的,本發(fā)明的技術方案是這樣實現的一種安全發(fā)送傳輸密鑰的方法,預先在通信雙方分別設置共享密鑰Ki,該方法進一步包括a.發(fā)送端生成隨機數R1,然后利用所生成的隨機數R1、共享密鑰Ki、要發(fā)送的傳輸密鑰master_key以及選定的加密算法生成加密密鑰Kc,并計算出自身的摘要字;b.發(fā)送端將攜帶有步驟a計算出的摘要字、所生成的隨機數R1和加密密鑰Kc的信息發(fā)送給接收端;c.接收端收到步驟b所發(fā)送的信息后,先根據共享密鑰Ki、收到的隨機數R1、加密密鑰Kc以及選定的加密算法,獲得傳輸密鑰master_key;并計算出自身的簽名字,然后判斷計算出的簽名字與所收到的摘要字是否一致,如果是,則所收到信息為正確信息;否則,所收到信息為錯誤信息。
其中,步驟a中所述摘要字根據隨機數R1、加密密鑰Kc、要發(fā)送的傳輸密鑰master_key以及選定的簽名字算法計算得出。
該方法還進一步包括d.接收端隨機生成一個隨機數R2,并計算出用于認證的摘要字R2-R,然后將所生成的隨機數R2和計算出的摘要字R2-R發(fā)給發(fā)送端;e.發(fā)送端根據接收到的隨機數R2、自身生成的加密密鑰Kc、選定的簽名算法f2以及要發(fā)送的傳輸密鑰master_key,計算出自身使用的簽名字,然后判斷計算出的簽名字與所收到的摘要字R2-R是否相等,如果相等,則認證通過對端為合法方,否則,對端為非法方,結束當前認證流程;f.發(fā)送端根據接收到的隨機數R2、共享密鑰Ki和選定的簽名算法f2計算用于認證的摘要字R2_digt,并將該摘要字R2_digt發(fā)送給接收端;g.接收端根據自身生成的隨機數R2、共享密鑰Ki以及選定的簽名算法f2計算出自身使用的簽名字,然后判斷計算出的簽名字與所收到的摘要字R2-R是否相等,如果相等,則認證通過端端為合法方,否則,對端為非法方。
其中,步驟d所述摘要字根據共享密鑰Ki、接收端生成的隨機數R2、發(fā)送端生成的隨機數R1以及選定的簽名字算法計算得出;或者根據共享密鑰Ki、接收端生成的隨機數R2、要發(fā)送的傳輸密鑰master_key以及選定的簽名字算法計算得出;或是根據共享密鑰Ki、接收端生成的隨機數R2、發(fā)送端生成的隨機數R1、要發(fā)送的傳輸密鑰master_key以及選定的簽名字算法計算得出。
上述方案中,所述選定的加密算法為MD5算法。所述選定的簽名算法為MD5算法。所述發(fā)送端為客戶端,或為服務器端。
因此,本發(fā)明所提供的安全發(fā)送傳輸密鑰的方法,兩個通信實體之間必須預先共享一個密鑰,利用該預共享密鑰可解決C-S框架下實體間密鑰的保密傳輸問題。本發(fā)明通過雙方的隨機數以及共享密鑰作為簽名算法的參數,使兩個通信實體間能夠互相確認對方的身份,并能安全的完成傳輸密鑰傳遞的過程。
本發(fā)明可將進行對方身份確認的過程作為可選流程,如果不進行對方身份確認,則本發(fā)明安全傳輸密鑰的處理流程簡單易行,且節(jié)省Server端的資源;如果進行對方身份確認,則本發(fā)明將身份認證過程和密鑰安全傳輸過程結合在一起進行,使相互的身份認證和密鑰的安全傳輸兩個過程協(xié)同工作,可保證在滿足安全需求條件下有最少的傳輸流程。


圖1為本發(fā)明方法的一實現流程示意圖;圖2為本發(fā)明方法的另一實現流程示意圖。
具體實施例方式
下面結合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。
本發(fā)明的基本思想是利用預共享密鑰,一端將所擁有的傳輸密鑰master_key安全的傳輸給另一端。具體地說就是在Client端和Server端共享一個密鑰Ki;要發(fā)送傳輸密鑰master_key的一端生成隨機數R,并利用共享密鑰Ki、所生成的隨機數R、選定的加密算法f1和簽名算法f2以及要發(fā)送的傳輸密鑰master_key,計算出實際發(fā)送的加密密鑰和摘要字;接收傳輸密鑰的一端根據所收到的摘要字、隨機數、加密密鑰以及共享密鑰Ki,得到真正的傳輸密鑰master_key,并同時計算出簽名字以驗證信息的正確性。
這里,所述共享密鑰Ki通常被預先安全保存在Client端和Server端,一般該共享密鑰采用物理存放方式,且在寫入后任何人都不可能讀取到。所述要發(fā)送的傳輸密鑰master_key可以通過多種途徑獲取,比如由隨機數產生,或是預先設定。
所述選定的加密算法f1和簽名算法f2可采用任意現有的算法,Client端和Server端應分別保留至少一套密鑰生成算法和數字簽名算法,且要求雙方至少有一套相同的密鑰生成算法和數字簽名算法,Client端和Server端采用雙方預先共同選定的加密算法和簽名算法進行相應的計算。
所述要發(fā)送傳輸密鑰master_key的一端可以是Client端,也可以是Server端。以下僅以Client端發(fā)送傳輸密鑰master_key,Server端接收為例。
如圖1所示,本發(fā)明安全發(fā)送傳輸密鑰的方法包括以下步驟步驟101Client端要發(fā)送自身擁有的傳輸密鑰master_key,則Client端先隨機生成一個隨機數R1,然后利用共享密鑰Ki、所生成的隨機數R1、選定的加密算法fl,按照公式(1)產生出傳輸密鑰master_key的加密密鑰KcKc=f1(Ki,R1)master_key(1)并且,Client端根據所生成的隨機數R1、選定的簽名算法f2、計算出的加密密鑰Kc,按照公式(2)計算自身當前使用的摘要字DigtDigt=f2(R1,Kc,master_key) (2)步驟102Client端向Server端發(fā)送攜帶有隨機數R1、加密密鑰Kc以及摘要字Digt的信息{R1,Kc,Digt}。
步驟103Server端收到該信息后,根據自身存儲的共享密鑰Ki、所收到的隨機數R1和加密密鑰Kc、選定的加密算法fl,按照公式(3)計算出接收密鑰rec_key,即傳輸密鑰master_keyrec_key=fl(Ki,R1)Kc=master_key (3)同時,利用所收到的隨機數R1和加密密鑰Kc、選定的簽名算法f2以及計算出的接收密鑰rec_key,按照公式(4)計算出自身使用的簽名字Rec_DigtRec_Digt=f2(R1,Kc,rec_key) (4)步驟104Server端判斷自身計算出的簽名字Rec_Digt是否與所接收到的摘要字Digt相同,如果相同,即Rec_Digt=Digt,則說明發(fā)送過來的信息是個正確的信息。如果不相同,則說明發(fā)送的信息錯誤,結束當前流程或是通知對端重新發(fā)送。
為了防止非法方可能的復制攻擊,實現雙方相互的身份認證,可選擇增加步驟105~107,如圖2所示。
步驟105Server端隨機生成一個隨機數R2,然后根據公式(5)計算用于認證的摘要字R2-RR2-R=f2(Ki,R2,R1,master_key) (5)之后,Server端將信息{R2,R2-R}發(fā)送給Client端。
這里,在計算摘要字R2-R時,公式(5)中的參數R1和master_key可以全使用,也可以只選擇R1、master_key其中之一。
步驟106Client端驗證R2-R正確,則認為傳輸密鑰master_key已正確發(fā)送給Server端。具體的認證過程是Client端根據接收到的R2、自身生成的加密密鑰Kc、選定的簽名算法f2以及要發(fā)送的傳輸密鑰master_key,計算出自身使用的簽名字,然后判斷計算出的簽名字與所收到的摘要字R2-R是否相等,如果相等,說明Server端已正確接收傳輸密鑰master_key,且說明認證通過Server端為合法方;否則,說明Server端為非法方,結束當前流程。
Client端確認Server端已正確接收傳輸密鑰master_key后,根據公式(6)計算用于認證的摘要字R2_digt
R2_digt=f2(Ki,R2)(6)步驟107Client端發(fā)送帶有摘要字R2_digt的數字信息給Server端,Server端通過驗證所收到的、帶有摘要字R2_digt的消息,可以確定第一條消息是Client端發(fā)送的消息,從而實現雙方的身份確認。具體的驗證過程是Server端根據自身生成的隨機數R2、共享密鑰Ki以及選定的簽名算法f2計算出自身使用的簽名字,然后判斷計算出的簽名字與所收到的摘要字R2-R是否相等,如果相等,說明認證通過Client端為合法方;否則,說明Server端為非法方。
如果不進行雙方身份的確認,Server端就可以省略R2的生成,如此可節(jié)省Server端的資源。
在上述方案中,傳輸密鑰master_key的值可以根據需要隨時更新或周期性地更新,產生方法也是設定或由隨機數生成等等,但安全傳輸過程與上述步驟完全相同,只是其中用到的傳輸密鑰master_key值不同。
以AC為Client端,AP為Server端為例進一步說明,在本實施例中,AC、AP之間所選定的加密算法f1和簽名算法f2均為MD5算法,AC要將傳輸密鑰master_key發(fā)送給AP,實現過程是1)AC先隨機生成一個隨機數R1,然后利用共享密鑰Ki、所生成的隨機數R1、選定的加密算法MD5,按照公式(7)產生出傳輸密鑰master_key的加密密鑰KcKc=MD5(Ki,R1)master_key(7)并且,AC根據所生成的隨機數R1、選定的簽名算法MD5、計算出的加密密鑰Kc,按照公式(8)計算摘要字DigtDigt=MD5(R1,Kc,master_key) (8)2)AC向AP發(fā)送攜帶有隨機數R1、加密密鑰Kc以及摘要字Digt的信息{R1,Kc,Digt}。
3)AP收到該信息后,根據自身存儲的共享密鑰Ki、所收到的隨機數R1和加密密鑰Kc、選定的加密算法MD5,按照公式(9)計算出接收密鑰rec_key,即傳輸密鑰master_keyrec_key=MD5(Ki,R1)Kc=master_key (9)同時,利用所收到的隨機數R1和加密密鑰Kc、選定的簽名算法f2以及計算出的接收密鑰rec_key,按照公式(10)計算出自身的簽名字Rec_DigtRec_Digt=MD5(R1,Kc,rec_key)(10)4)AP判斷自身計算出的簽名字Rec_Digt是否與所接收到的摘要字Digt相同,如果相同,即Rec_Digt=Digt,則說明發(fā)送過來的信息是個正確的信息。如果不相同,則說明發(fā)送的信息錯誤,結束當前流程或是通知對端重新發(fā)送。
然后,AP隨機生成一個隨機數R2,并根據公式(11)計算用于認證的摘要字R2-RR2-R=MD5(Ki,R2,R1,master_key) (11)5)AP將信息{R2,R2-R}發(fā)送給AC,AC驗證R2-R正確,則可以認為master_key已正確發(fā)送給AP。
之后,AC計算用于認證的摘要字,并將計算出的簽名字數字信息發(fā)送給AP,AP通過驗證所收到消息可確定第一條消息是由AC發(fā)送的消息,如此即可實現身份確認,有效防止非法方可能的復制攻擊。
其中,所述AC或AP端的驗證具體是AC或AP計算自身使用的簽名字,并比較計算出的簽名字與所收到的摘要字,如果相同,則說明認證通過,對方為合法方;否則,說明認證失敗,對方為非法方。
在上述過程中,AC可隨時或周期性地更新傳輸密鑰master_key值,但安全傳輸過程與上述步驟完全相同。
以上描述的方案,可適用于任意的C-S架構,總之,以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權利要求
1.一種安全發(fā)送傳輸密鑰的方法,預先在通信雙方分別設置共享密鑰Ki,其特征在于,該方法進一步包括a.發(fā)送端生成隨機數R1,然后利用所生成的隨機數R1、共享密鑰Ki、要發(fā)送的傳輸密鑰master_key以及選定的加密算法生成加密密鑰Kc,并計算出自身的摘要字;b.發(fā)送端將攜帶有步驟a計算出的摘要字、所生成的隨機數R1和加密密鑰Kc的信息發(fā)送給接收端;c.接收端收到步驟b所發(fā)送的信息后,先根據共享密鑰Ki、收到的隨機數R1、加密密鑰Kc以及選定的加密算法,獲得傳輸密鑰master_key;并計算出自身的簽名字,然后判斷計算出的簽名字與所收到的摘要字是否一致,如果是,則所收到信息為正確信息;否則,所收到信息為錯誤信息。
2.根據權利要求1所述的方法,其特征在于,步驟a中所述摘要字根據隨機數R1、加密密鑰Kc、要發(fā)送的傳輸密鑰master_key以及選定的簽名字算法計算得出。
3.根據權利要求1所述的方法,其特征在于,該方法進一步包括d.接收端隨機生成一個隨機數R2,并計算出用于認證的摘要字R2-R,然后將所生成的隨機數R2和計算出的摘要字R2-R發(fā)給發(fā)送端;e.發(fā)送端根據接收到的隨機數R2、自身生成的加密密鑰Kc、選定的簽名算法f2以及要發(fā)送的傳輸密鑰master_key,計算出自身使用的簽名字,然后判斷計算出的簽名字與所收到的摘要字R2-R是否相等,如果相等,則認證通過對端為合法方,否則,對端為非法方,結束當前認證流程;f.發(fā)送端根據接收到的隨機數R2、共享密鑰Ki和選定的簽名算法f2計算用于認證的摘要字R2_digt,并將該摘要字R2_digt發(fā)送給接收端;g.接收端根據自身生成的隨機數R2、共享密鑰Ki以及選定的簽名算法f2計算出自身使用的簽名字,然后判斷計算出的簽名字與所收到的摘要字R2-R是否相等,如果相等,則認證通過端端為合法方,否則,對端為非法方。
4.根據權利要求3所述的方法,其特征在于,步驟d所述摘要字根據共享密鑰Ki、接收端生成的隨機數R2、發(fā)送端生成的隨機數R1以及選定的簽名字算法計算得出;或者根據共享密鑰Ki、接收端生成的隨機數R2、要發(fā)送的傳輸密鑰master_key以及選定的簽名字算法計算得出;或是根據共享密鑰Ki、接收端生成的隨機數R2、發(fā)送端生成的隨機數R1、要發(fā)送的傳輸密鑰master_key以及選定的簽名字算法計算得出。
5.根據權利要求1、2或3所述的方法,其特征在于,所述選定的加密算法為MD5算法。
6.根據權利要求1、2、3或4所述的方法,其特征在于,所述選定的簽名算法為MD5算法。
7.根據權利要求1、3或4所述的方法,其特征在于,所述發(fā)送端為客戶端,或為服務器端。
全文摘要
本發(fā)明公開了一種安全發(fā)送傳輸密鑰的方法,預先在通信雙方分別設置共享密鑰,該方法包括發(fā)送端生成隨機數R1,然后利用所生成的隨機數R1、共享密鑰、要發(fā)送的傳輸密鑰以及選定的加密算法生成加密密鑰Kc,并計算出自身的摘要字;發(fā)送端將攜帶有計算出的摘要字、所生成的隨機數R1和加密密鑰Kc的信息發(fā)送給接收端;接收端收到信息后,先根據共享密鑰、收到的隨機數R1、加密密鑰Kc以及選定的加密算法,獲得傳輸密鑰;并計算出自身的簽名字,然后判斷計算出的簽名字與所收到的摘要字是否一致,如果是,則所收到信息為正確信息;否則,所收到信息為錯誤信息。該方法不僅能使兩個實體間的密鑰保密傳輸,而且能保證實體間相互的身份認證。
文檔編號H04L9/14GK1620005SQ200310103879
公開日2005年5月25日 申請日期2003年11月18日 優(yōu)先權日2003年11月18日
發(fā)明者鄭志彬 申請人:華為技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
石台县| 东台市| 潞西市| 沂源县| 曲周县| 旬阳县| 万山特区| 奎屯市| 股票| 英德市| 黄浦区| 河间市| 侯马市| 乾安县| 曲阜市| 肇庆市| 苏尼特左旗| 莱芜市| 礼泉县| 临海市| 武功县| 高尔夫| 南安市| 横峰县| 天门市| 长宁区| 新田县| 常熟市| 鹤峰县| 池州市| 玉山县| 防城港市| 彩票| 佛教| 长乐市| 南开区| 裕民县| 黄大仙区| 视频| 涟源市| 呼玛县|