本發(fā)明涉及安全通信,特別涉及一種即時通信過程中的數(shù)據(jù)加密方法。
背景技術(shù):
移動終端設(shè)備己經(jīng)普遍進入了人們的工作與生活,豐富多樣的應(yīng)用給人們的工作與生活帶來前所未有的便利。隨著移動終端技術(shù)和寬帶無線接入技術(shù)的發(fā)展,上網(wǎng)速度在不斷提升,使得人們的上網(wǎng)體驗更好。用戶通過移動終端訪問云端進行數(shù)據(jù)交互,提交信息給云端,并獲取從云端返回的相關(guān)信息。移動終端上安裝的應(yīng)用程序種類很多,很多業(yè)務(wù)應(yīng)用涉及到移動終端的登錄賬號、密碼、財務(wù)往來等即時通信數(shù)據(jù)。由于無線網(wǎng)絡(luò)的開放性特點,使得移動終端與云端之間數(shù)據(jù)傳輸?shù)陌踩媾R更多的挑戰(zhàn),用戶即時通信數(shù)據(jù)的傳輸需要經(jīng)過相關(guān)的處理,否則信息被截取與篡改會給數(shù)據(jù)安全傳輸構(gòu)成較大威脅?,F(xiàn)有的基于移動終端的數(shù)據(jù)安全處理方式?jīng)]有考慮移動終端的處理能力和有限電量,增加了過多的加密處理,給移動終端設(shè)備用戶帶來不好的使用體驗,整體性能和效率降低。
技術(shù)實現(xiàn)要素:
為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明提出了一種即時通信過程中的數(shù)據(jù)加密方法,包括:
在移動終端與云端之間進行即時通信時,對數(shù)據(jù)進行加密和解密;
通過預(yù)定義加密算法,將上述對數(shù)據(jù)進行加密和解密中所使用共有私鑰的加密傳輸和簽名。
優(yōu)選地,所述移動終端負責生成idea加密所使用的共有私鑰,并進行相關(guān)加密與簽名處理,最后將加密后的密文數(shù)據(jù)和簽名數(shù)據(jù)發(fā)送給云端;在移動終端使用橢圓曲線集成加密算法,借助于云端公鑰將共有私鑰進行加密處理,然后對共有私鑰密文進行簽名處理,將共有私鑰密文和簽名數(shù)據(jù)一同發(fā)送給云端;云端接收到共有私鑰密文和簽名數(shù)據(jù)之后,使用該移動終端的公鑰進行簽名驗證,如果簽名驗證通過,則將共有私鑰密文使用云端私鑰進行解密得到共有私鑰明文,將私鑰明文進行加密處理,將加密后共有私鑰的密文保存到結(jié)構(gòu)化數(shù)據(jù)庫的云端密鑰數(shù)據(jù)表中。
優(yōu)選地,使用摘要算法對用戶的即時消息進行加密形成密文,然后再使用摘要算法對密文產(chǎn)生摘要信息,然后使用自身的私鑰對摘要信息加密;移動終端使用存儲在分布式數(shù)據(jù)庫密鑰表中的私鑰對摘要信息進行加密處理,形成簽名數(shù)據(jù),然后將簽名數(shù)據(jù)和用戶即時消息的密文數(shù)據(jù)一同傳送給云端;云端接收到移動終端傳輸?shù)挠脩艏磿r通信數(shù)據(jù)之后進行相關(guān)的簽名驗證和解密處理;如果簽名驗證成功,則進行解密處理,得到移動終端傳輸?shù)挠脩糇悦魑臄?shù)據(jù);從中解析出密文數(shù)據(jù)和簽名數(shù)據(jù),密文數(shù)據(jù)是移動終端使用idea加密算法借助于共有私鑰加密得到的,簽名數(shù)據(jù)是移動終端經(jīng)過生成摘要與使用私鑰加密處理之后得到的;對于解析得到的密文數(shù)據(jù),使用與移動終端相同的摘要算法生成新的摘要信息;
根據(jù)云端持有移動終端的公鑰,解析出該移動終端的設(shè)備硬件標識,根據(jù)設(shè)備標識在結(jié)構(gòu)化數(shù)據(jù)庫中査詢對應(yīng)的公鑰,然后對加密的公鑰實施解密操作,該公鑰是和設(shè)備標識設(shè)備硬件標識對應(yīng)的移動終端私鑰相對應(yīng)的,
從云端接收到的數(shù)據(jù)中解析出移動終端發(fā)送過來的簽名數(shù)據(jù),該簽名數(shù)據(jù)是經(jīng)過摘要算法處理,并使用橢圓曲線加密算法借助移動終端私鑰加密生成的;該簽名數(shù)據(jù)只有使用和移動終端私鑰對應(yīng)的公鑰才能夠解密;
云端提取出簽名數(shù)據(jù),并使用數(shù)據(jù)庫所存儲終端公鑰解密,得到在該移動終端使用摘要算法生成的原始摘要信息;云端解析出密文數(shù)據(jù),對該密文數(shù)據(jù)使用與移動終端相同的摘要算法生成新的摘要信息;將解密得到的原始摘要信息和新生成的摘要信息進行比較,如果完全相同,則簽名驗證成功;簽名驗證成功之后,對云端接收到的密文進行解密,得到真正的明文數(shù)據(jù);云端使用idea加密算法,借助于與該移動終端的共有私鑰,將密文數(shù)據(jù)進行解密處理。
本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點:
本發(fā)明提出了一種即時通信過程中的數(shù)據(jù)加密方法,在保證移動終端數(shù)據(jù)安全傳輸?shù)那疤嵯拢M可能減少加密等相關(guān)處理的計算量,提高移動應(yīng)用的整體性能和效率。
附圖說明
圖1是根據(jù)本發(fā)明實施例的即時通信過程中的數(shù)據(jù)加密方法的流程圖。
具體實施方式
下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個或者多個實施例的詳細描述。結(jié)合這樣的實施例描述本發(fā)明,但是本發(fā)明不限于任何實施例。本發(fā)明的范圍僅由權(quán)利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細節(jié)以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細節(jié),并且無這些具體細節(jié)中的一些或者所有細節(jié)也可以根據(jù)權(quán)利要求書實現(xiàn)本發(fā)明。
本發(fā)明的一方面提供了一種即時通信過程中的數(shù)據(jù)加密方法。圖1是根據(jù)本發(fā)明實施例的即時通信過程中的數(shù)據(jù)加密方法流程圖。
本發(fā)明保證移動終端和云端數(shù)據(jù)數(shù)據(jù)通信的安全性,使用idea加密對移動終端與云端之間交互的即時通信數(shù)據(jù)進行加密和解密處理,然后使用elgamal加密算法來實現(xiàn)idea加密算法所使用共有私鑰的加密傳輸,并對加密后的共有私鑰密文進行簽名處理。
移動終端在關(guān)系數(shù)據(jù)庫設(shè)置密鑰表,用于存儲移動終端的公鑰、私鑰以及密鑰生成時間。移動應(yīng)用首次運行后,首先查詢在密鑰表中是否存在公私鑰數(shù)據(jù)信息。如果不存在,立即生成移動終端的公鑰和私鑰,經(jīng)過加密處理后保存到數(shù)據(jù)庫中的密鑰表中。同時,還需要保存公鑰和私鑰的生成時間、以及公鑰是否己經(jīng)成功提交給云端的狀態(tài)信息。密鑰信息保存成功之后,開啟子進程,用于提交終端公鑰至云端。
云端使用結(jié)構(gòu)化數(shù)據(jù)庫,并建立一個云端密鑰數(shù)據(jù)表用于存儲云端生成的公鑰、私鑰和其他相關(guān)信息。存儲在云端密鑰數(shù)據(jù)表中的公鑰和私鑰信息需要經(jīng)過加密處理,并設(shè)置該表的訪問和更改權(quán)限,云端密鑰數(shù)據(jù)表表中還存儲公鑰和私鑰第一次生成并保存到數(shù)據(jù)庫表中的時間。如果終端需要重新生成云端的公鑰和私鑰,更新表中的公鑰和私鑰數(shù)據(jù),并將更新字段的時間更改為保存新密鑰時的系統(tǒng)時間。
公鑰的發(fā)布包括兩個方面:云端公鑰發(fā)布、客戶端公鑰發(fā)布。在elgamal加密階段中,產(chǎn)生一對公鑰與私鑰,私鑰由自己保管,公鑰可以對外公開。數(shù)據(jù)的發(fā)送方可以使用數(shù)據(jù)接收方的公鑰對數(shù)據(jù)進行加密,將密文發(fā)送給接收方;接收方接收到密文數(shù)據(jù)后,使用自己的私鑰對密文數(shù)據(jù)進行解密,得到真實的數(shù)據(jù)。數(shù)據(jù)發(fā)送方首先使用摘要算法將要傳送的大量原始信息生成較短的摘要信息,發(fā)送方使用自己的私鑰對摘要信息加密生成簽名數(shù)據(jù),將原始信息和簽名數(shù)據(jù)一同發(fā)送給接收方。接收方在接收到數(shù)據(jù)后,對簽名數(shù)據(jù)使用發(fā)送方的公鑰解密得到摘要信息,使用相同的摘要算法將接收到的原始數(shù)據(jù)生成新的摘要信息。將解密得到的摘要信息與新的摘要信息對比,如果完全相同,則簽名驗證成功。在簽名前首先需要將數(shù)據(jù)收發(fā)雙方的公鑰發(fā)布給對方。位于云端的結(jié)構(gòu)化數(shù)據(jù)庫在存儲該移動應(yīng)用的終端公鑰時,根據(jù)設(shè)備硬件標識來區(qū)分不同的移動終端,用戶重新生成公私鑰時,并向云端提交生成的公鑰數(shù)據(jù)信息。這樣,云端在接收到公鑰之后,找到相應(yīng)設(shè)備硬件標識的記錄若己經(jīng)存在,則更新表中該移動終端的公鑰,更改密鑰數(shù)據(jù)并將更新時間字段的值更改為當前時間。
終端公鑰的發(fā)布,是在密鑰對生成完成并成功保存到對應(yīng)的分布式數(shù)據(jù)庫中之后,通過調(diào)用子進程實現(xiàn)的。在子進程中,使用云端的公鑰將移動終端生成的公鑰進行加密處理得到公鑰密文,將公鑰的明文數(shù)據(jù)使用摘要算法生成摘要信息,對生成的摘要信息使用云端的公鑰進行加密處理得到摘要密文。將公鑰密文數(shù)據(jù)與摘要密文數(shù)據(jù)拼接成字符串,將公鑰密文和摘要密文一同發(fā)送給云端。
云端接收到數(shù)據(jù)后,分離出摘要密文與公鑰密文,使用云端的私鑰將公鑰密文數(shù)據(jù)進行解密得到終端公鑰明文,然后使用相同的摘要算法對公鑰明文數(shù)據(jù)生成新的摘要信息。使用云端的公鑰將分離出來的摘要密文解密為摘要明文。將新生成的摘要信息與解密得到的摘要明文信息進行比較,如果兩個摘要信息相等,則說明數(shù)據(jù)在移動終端與云端之間傳輸過程中,沒有發(fā)生數(shù)據(jù)的篡改,數(shù)據(jù)是完整的和一致的,則將此保存移動終端的公鑰。如果兩個摘要信息不相同,則返回相關(guān)信息給該移動終端,請求重新給云端傳輸公鑰信息。
云端的公鑰和私鑰生成之后,公鑰需要發(fā)布給移動終端,私鑰由云端自己保存。每個移動終端就持有了一個云端的公鑰。在移動終端與云端的數(shù)據(jù)交互協(xié)議中,設(shè)置相應(yīng)的標識符,來表示云端公鑰是否己經(jīng)發(fā)生更改,進而決定是否讓移動終端獲取并應(yīng)用新的云端公鑰。
對于移動終端與云端傳輸?shù)募磿r通信數(shù)據(jù)使用idea加密算法,提高應(yīng)用系統(tǒng)的整體效率和性能。移動終端負責生成idea加密所使用的共有私鑰,并進行相關(guān)加密與簽名處理,最后將加密后的密文數(shù)據(jù)和簽名數(shù)據(jù)發(fā)送給云端。
為了保證共有私鑰能夠安全地傳輸給云端,在移動終端使用橢圓曲線集成加密算法,借助于云端公鑰將共有私鑰進行加密處理,然后對共有私鑰密文進行簽名處理,將共有私鑰密文和簽名數(shù)據(jù)一同發(fā)送給云端。
云端接收到共有私鑰密文和簽名數(shù)據(jù)之后,使用該移動終端的公鑰進行簽名驗證,如果簽名驗證通過,則將共有私鑰密文使用云端私鑰進行解密得到共有私鑰明文,將共有私鑰明文進行加密處理,將加密后共有私鑰的密文保存到結(jié)構(gòu)化數(shù)據(jù)庫的云端密鑰數(shù)據(jù)表中。
移動終端與云端之間交互的數(shù)據(jù)分為即時通信數(shù)據(jù)和普通數(shù)據(jù)兩種。對于普通數(shù)據(jù),可以使用明文直接傳輸。對于即時通信數(shù)據(jù),需要使用加密算法進行處理。使用摘要算法對用戶的即時消息進行加密形成密文,然后再使用摘要算法對密文產(chǎn)生摘要信息。然后使用自身的私鑰對摘要信息加密;移動終端使用存儲在分布式數(shù)據(jù)庫密鑰表中的私鑰對摘要信息進行加密處理,形成簽名數(shù)據(jù)。然后將簽名數(shù)據(jù)和用戶即時消息的密文數(shù)據(jù)一同傳送給云端。
云端接收到移動終端傳輸?shù)挠脩艏磿r通信數(shù)據(jù)之后進行相關(guān)的簽名驗證和解密處理。如果簽名驗證成功,則進行解密處理,得到移動終端傳輸?shù)挠脩糇悦魑臄?shù)據(jù)。從中解析出密文數(shù)據(jù)和簽名數(shù)據(jù)。其中,密文數(shù)據(jù)是移動終端使用idea加密算法借助于共有私鑰加密得到的,簽名數(shù)據(jù)是移動終端經(jīng)過生成摘要與使用私鑰加密處理之后得到的。對于解析得到的密文數(shù)據(jù),使用與移動終端相同的摘要算法生成新的摘要信息。
根據(jù)云端持有移動終端的公鑰,解析出該移動終端的設(shè)備硬件標識,根據(jù)設(shè)備標識在結(jié)構(gòu)化數(shù)據(jù)庫中査詢對應(yīng)的公鑰。然后對加密的公鑰實施解密操作,該公鑰是和設(shè)備標識設(shè)備硬件標識對應(yīng)的移動終端私鑰相對應(yīng)的。
從云端接收到的數(shù)據(jù)中解析出移動終端發(fā)送過來的簽名數(shù)據(jù),該簽名數(shù)據(jù)是經(jīng)過摘要算法處理,并使用橢圓曲線加密算法借助移動終端私鑰加密生成的。該簽名數(shù)據(jù)只有使用和移動終端私鑰對應(yīng)的公鑰才能夠解密。
云端提取出簽名數(shù)據(jù),并使用數(shù)據(jù)庫所存儲終端公鑰解密,得到在該移動終端使用摘要算法生成的原始摘要信息。云端解析出密文數(shù)據(jù),對該密文數(shù)據(jù)使用與移動終端相同的摘要算法生成新的摘要信息。將解密得到的原始摘要信息和新生成的摘要信息進行比較,如果完全相同,則說明移動終端發(fā)送給云端的數(shù)據(jù)在傳輸過程中沒有被修改,保證了數(shù)據(jù)的完整性和一致性,簽名驗證成功。
簽名驗證成功之后,對云端接收到的密文進行解密,得到真正的明文數(shù)據(jù)。云端使用idea加密算法,借助于與該移動終端的共有私鑰,將密文數(shù)據(jù)進行解密處理。
綜上所述,本發(fā)明提出了一種即時通信過程中的數(shù)據(jù)加密方法,在保證移動終端數(shù)據(jù)安全傳輸?shù)那疤嵯?,盡可能減少加密等相關(guān)處理的計算量,提高移動應(yīng)用的整體性能和效率。。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各模塊或各步驟可以用通用的計算系統(tǒng)來實現(xiàn),它們可以集中在單個的計算系統(tǒng)上,或者分布在多個計算系統(tǒng)所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算系統(tǒng)可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲系統(tǒng)中由計算系統(tǒng)來執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
應(yīng)當理解的是,本發(fā)明的上述具體實施方式僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。