專利名稱:一種客戶端即時(shí)通信數(shù)據(jù)的加密和解密方法
技術(shù)領(lǐng)域:
本發(fā)明屬于即時(shí)通信領(lǐng)域,尤其涉及一種客戶端即時(shí)通信數(shù)據(jù)的加密方法和解密方法。
背景技術(shù):
即時(shí)通信(Instant Messenger,簡(jiǎn)稱IM)系統(tǒng)是一種能夠即時(shí)發(fā)送和接收互聯(lián)網(wǎng)消息的系統(tǒng)。用戶之間通過即時(shí)通信系統(tǒng)可以傳遞文本消息、文件或者進(jìn)行音頻對(duì)話、視頻對(duì)話等通信活動(dòng)。隨著計(jì)算機(jī)網(wǎng)絡(luò)的快速發(fā)展,即時(shí)通信系統(tǒng)已經(jīng)成為用戶普遍使用的通信工具。
圖1示出了客戶端之間進(jìn)行即時(shí)通信的網(wǎng)絡(luò)結(jié)構(gòu),多個(gè)客戶端上運(yùn)行有即時(shí)通信系統(tǒng),客戶端之間以及客戶端與服務(wù)器之間通過用戶數(shù)據(jù)報(bào)文協(xié)議(UserDatagram Protocol,UDP)通信。當(dāng)用戶登錄即時(shí)通信系統(tǒng)時(shí),作為客戶端連接到服務(wù)器上,并從服務(wù)器上讀取在線聯(lián)系人名單。當(dāng)用戶和其他的在線聯(lián)系人進(jìn)行即時(shí)通信時(shí),如果雙方的通信連接比較穩(wěn)定,雙方的消息以UDP的形式在客戶端之間傳送。如果雙方的連接不穩(wěn)定或者通信的一方不在線時(shí),消息將通過服務(wù)器進(jìn)行中轉(zhuǎn)??蛻舳丝梢允莻€(gè)人計(jì)算機(jī)(Personal Computer,簡(jiǎn)稱PC)、PDA(Personal Digital Assistant,個(gè)人數(shù)字助理)以及移動(dòng)電話等。服務(wù)器可以是各種大、中、小型服務(wù)器。
為了保證通信的安全性,即時(shí)通信用戶在通信過程中的通信記錄、聯(lián)系人資料以及用戶資料等即時(shí)通信數(shù)據(jù)加密保存在客戶端本地,一般采用對(duì)稱加密技術(shù)。當(dāng)用戶第一次登陸客戶端時(shí),客戶端隨機(jī)生成一個(gè)加密密鑰(key),并使用該key加密本地保存的即時(shí)通信數(shù)據(jù),同時(shí)使用客戶端密鑰,例如登陸密碼對(duì)key進(jìn)行加密,并保存于客戶端本地。為了避免客戶端解密key失敗,從而導(dǎo)致即時(shí)通信數(shù)據(jù)解密失敗,客戶端同時(shí)將key上傳到服務(wù)器。服務(wù)器采用不同的服務(wù)器密鑰對(duì)每個(gè)即時(shí)通信用戶的key進(jìn)行加密并保存。
當(dāng)用戶需要查看本地保存的即時(shí)通信數(shù)據(jù)時(shí),首先使用客戶端密鑰解密獲取key,然后利用解密后的key解密加密后的即時(shí)通信數(shù)據(jù)。當(dāng)使用客戶端密鑰不能解密key時(shí),則需要請(qǐng)求服務(wù)器協(xié)助解密,服務(wù)器對(duì)加密保存的key進(jìn)行解密后發(fā)送給客戶端。
在上述處理中,由于針對(duì)不同客戶端提交的key采用不同的服務(wù)器密鑰進(jìn)行加密保存,需要占用服務(wù)器較大的存儲(chǔ)空間,同時(shí)增加了服務(wù)器的加解密工作負(fù)擔(dān)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種客戶端即時(shí)通信數(shù)據(jù)的加密方法,旨在解決現(xiàn)有技術(shù)中存在的由于針對(duì)不同客戶端提交的key采用不同的服務(wù)器密鑰進(jìn)行加密保存,需要占用服務(wù)器較大的存儲(chǔ)空間,同時(shí)增加了服務(wù)器的加解密工作負(fù)擔(dān)的問題。
本發(fā)明的另一目的在于提供一種客戶端即時(shí)通信數(shù)據(jù)的解密方法。
本發(fā)明是這樣實(shí)現(xiàn)的,一種客戶端即時(shí)通信數(shù)據(jù)的加密方法,所述方法包括以下步驟A.客戶端加密本地保存的即時(shí)通信數(shù)據(jù),并將數(shù)據(jù)加密密鑰上傳給服務(wù)器;B.服務(wù)器利用統(tǒng)一的服務(wù)器密鑰加密保存所述數(shù)據(jù)加密密鑰,并將加密后的數(shù)據(jù)密鑰返回客戶端;C.客戶端保存服務(wù)器返回的加密后的數(shù)據(jù)密鑰。
所述步驟A進(jìn)一步包括以下步驟A1.客戶端生成數(shù)據(jù)加密密鑰;A2.客戶端利用所述數(shù)據(jù)密鑰加密本地保存的即時(shí)通信數(shù)據(jù);A3.客戶端利用客戶端密鑰加密保存所述數(shù)據(jù)加密密鑰;
A4.客戶端將所述數(shù)據(jù)加密密鑰上傳給服務(wù)器。
所述客戶端密鑰為即時(shí)通信登錄密碼。
所述服務(wù)器密鑰為服務(wù)器隨機(jī)產(chǎn)生的一個(gè)全局變量,用于統(tǒng)一加密不同客戶端上傳的數(shù)據(jù)加密密鑰。
一種客戶端即時(shí)通信數(shù)據(jù)的解密方法,所述方法包括以下步驟A.客戶端向服務(wù)器上傳采用統(tǒng)一的服務(wù)器密鑰加密的數(shù)據(jù)加密密鑰;B.服務(wù)器使用統(tǒng)一的服務(wù)器密鑰解密獲得客戶端的數(shù)據(jù)加密密鑰,并發(fā)送給客戶端;C.客戶端利用所述加密密鑰解密本地保存的即時(shí)通信數(shù)據(jù)。
所述服務(wù)器密鑰為服務(wù)器隨機(jī)產(chǎn)生的一個(gè)全局變量,用于統(tǒng)一加密不同客戶端上傳的數(shù)據(jù)加密密鑰。
在本發(fā)明中,服務(wù)器采用統(tǒng)一的密鑰加密保存不同客戶端的數(shù)據(jù)加密密鑰,節(jié)省了服務(wù)器的存儲(chǔ)空間,減小了服務(wù)器的工作負(fù)擔(dān),并保證了客戶端即時(shí)通信數(shù)據(jù)的安全性。
圖1是實(shí)現(xiàn)服務(wù)器協(xié)助客戶端加密本地?cái)?shù)據(jù)的系統(tǒng)結(jié)構(gòu)圖;圖2是本發(fā)明中客戶端對(duì)即時(shí)通信數(shù)據(jù)加密的實(shí)現(xiàn)流程圖;圖3是本發(fā)明中服務(wù)器協(xié)助客戶端解密即時(shí)通信數(shù)據(jù)的實(shí)現(xiàn)流程圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
在本發(fā)明中,服務(wù)器采用同一個(gè)服務(wù)器密鑰加密不同客戶端提交的加密密鑰,協(xié)助客戶端完成本地?cái)?shù)據(jù)的加密,節(jié)省了服務(wù)器的存儲(chǔ)空間,并減小了服務(wù)器的加解密工作負(fù)擔(dān)。
圖2示出了本發(fā)明提供的客戶端對(duì)即時(shí)通信數(shù)據(jù)進(jìn)行加密的實(shí)現(xiàn)流程,詳述如下在步驟S201中,當(dāng)用戶第一次通過客戶端登陸即時(shí)通信系統(tǒng)時(shí),客戶端隨機(jī)產(chǎn)生一個(gè)數(shù)據(jù)加密密鑰(key)。
在步驟S202中,客戶端使用該key加密本地保存的即時(shí)通信數(shù)據(jù)。
在步驟S203中,客戶端使用客戶端密鑰,例如即時(shí)通信登陸密碼加密key,并將加密后的密鑰(Ukey1)保存在本地。
在步驟S204中,客戶端將key傳送給服務(wù)器。
在步驟S205中,服務(wù)器使用統(tǒng)一的服務(wù)器密鑰加密key,并將加密后的密鑰(KSs(key))保存在本地,該統(tǒng)一的服務(wù)器密鑰是服務(wù)器隨機(jī)產(chǎn)生的、用于對(duì)不同客戶端上傳的數(shù)據(jù)加密密鑰統(tǒng)一進(jìn)行加密的一個(gè)全局變量。
在步驟S206中,服務(wù)器向客戶端返回KSs(key)。
在步驟S207中,客戶端接收KSs(key),并保存在本地。
在本發(fā)明中,當(dāng)用戶需要查看本地保存的即時(shí)通信數(shù)據(jù)時(shí),首先采用客戶端密鑰解密獲取key,并利用key解密加密后的即時(shí)通信數(shù)據(jù)。若采用客戶端密鑰無法解密獲取key時(shí),則需要請(qǐng)求服務(wù)器協(xié)助解密。
圖3示出了本發(fā)明中服務(wù)器協(xié)助客戶端解密的實(shí)現(xiàn)流程,詳述如下在步驟S301中,客戶端向服務(wù)器上傳本地保存的KSs(key),請(qǐng)求服務(wù)器協(xié)助解密。
在步驟S302中,服務(wù)器使用統(tǒng)一的服務(wù)器密鑰解密KSs(key),獲取key。
在步驟S303中,服務(wù)器將key發(fā)送到客戶端。
在步驟S304中,客戶端使用key解密本地保存的即時(shí)通信數(shù)據(jù)。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種客戶端即時(shí)通信數(shù)據(jù)的加密方法,其特征在于,所述方法包括以下步驟A.客戶端加密本地保存的即時(shí)通信數(shù)據(jù),并將數(shù)據(jù)加密密鑰上傳給服務(wù)器;B.服務(wù)器利用統(tǒng)一的服務(wù)器密鑰加密保存所述數(shù)據(jù)加密密鑰,并將加密后的數(shù)據(jù)密鑰返回客戶端;C.客戶端保存服務(wù)器返回的加密后的數(shù)據(jù)密鑰。
2.如權(quán)利要求1所述的客戶端即時(shí)通信數(shù)據(jù)的加密方法,其特征在于,所述步驟A進(jìn)一步包括以下步驟A1.客戶端生成數(shù)據(jù)加密密鑰;A2.客戶端利用所述數(shù)據(jù)密鑰加密本地保存的即時(shí)通信數(shù)據(jù);A3.客戶端利用客戶端密鑰加密保存所述數(shù)據(jù)加密密鑰;A4.客戶端將所述數(shù)據(jù)加密密鑰上傳給服務(wù)器。
3.如權(quán)利要求1所述的客戶端即時(shí)通信數(shù)據(jù)的加密方法,其特征在于,所述客戶端密鑰為即時(shí)通信登錄密碼。
4.如權(quán)利要求1所述的客戶端即時(shí)通信數(shù)據(jù)的加密方法,其特征在于,所述服務(wù)器密鑰為服務(wù)器隨機(jī)產(chǎn)生的一個(gè)全局變量,用于統(tǒng)一加密不同客戶端上傳的數(shù)據(jù)加密密鑰。
5.一種客戶端即時(shí)通信數(shù)據(jù)的解密方法,其特征在于,所述方法包括以下步驟A.客戶端向服務(wù)器上傳采用統(tǒng)一的服務(wù)器密鑰加密的數(shù)據(jù)加密密鑰;B.服務(wù)器使用統(tǒng)一的服務(wù)器密鑰解密獲得客戶端的數(shù)據(jù)加密密鑰,并發(fā)送給客戶端;C.客戶端利用所述加密密鑰解密本地保存的即時(shí)通信數(shù)據(jù)。
6.如權(quán)利要求5所述的客戶端即時(shí)通信數(shù)據(jù)的解密方法,其特征在于,所述服務(wù)器密鑰為服務(wù)器隨機(jī)產(chǎn)生的一個(gè)全局變量,用于統(tǒng)一加密不同客戶端上傳的數(shù)據(jù)加密密鑰。
全文摘要
本發(fā)明適用于即時(shí)通信領(lǐng)域,提供了一種客戶端即時(shí)通信數(shù)據(jù)的加密和解密方法,所述方法包括以下步驟A.客戶端加密本地保存的即時(shí)通信數(shù)據(jù),并將數(shù)據(jù)加密密鑰上傳給服務(wù)器;B.服務(wù)器利用統(tǒng)一的服務(wù)器密鑰加密保存所述數(shù)據(jù)加密密鑰,并將加密后的數(shù)據(jù)密鑰返回客戶端;C.客戶端保存服務(wù)器返回的加密后的數(shù)據(jù)密鑰。在本發(fā)明中,服務(wù)器采用統(tǒng)一的密鑰加密保存不同客戶端的數(shù)據(jù)加密密鑰,節(jié)省了服務(wù)器的存儲(chǔ)空間,減小了服務(wù)器的工作負(fù)擔(dān),并保證了客戶端即時(shí)通信數(shù)據(jù)的安全性。
文檔編號(hào)H04L12/58GK101064598SQ20061006056
公開日2007年10月31日 申請(qǐng)日期2006年4月28日 優(yōu)先權(quán)日2006年4月28日
發(fā)明者陳偉華, 高自光, 葉茂 申請(qǐng)人:騰訊科技(深圳)有限公司