專利名稱:消息中間件的數(shù)據(jù)加密傳輸方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種消息中間件的數(shù)據(jù)加密傳輸方法和系 統(tǒng)。
背景技術(shù):
隨著現(xiàn)代計算機技術(shù)和網(wǎng)絡(luò)通訊技術(shù)的不斷發(fā)展普及,利用互聯(lián)網(wǎng)進行數(shù)據(jù)交換 及資源共享已經(jīng)非常普遍。由于互聯(lián)網(wǎng)是一個基于TCP/IP協(xié)議的開放式互連網(wǎng)絡(luò),用戶的 數(shù)據(jù)資源實際上被暴露在網(wǎng)絡(luò)傳輸路徑上,黑客或非法用戶會利用嗅探器等惡意軟件攔截 傳輸?shù)臄?shù)據(jù),因此在INTERNET上實現(xiàn)數(shù)據(jù)的安全傳輸就顯得尤其重要?,F(xiàn)在較成熟的加密傳輸技術(shù)有Netscape公司開發(fā)的安全套接字層協(xié)議(kcure Sockets Layer, SSL)、VISA和MasterCard兩大信用卡公司聯(lián)合推出的安全電子交易 (Secure ElectronicTransaction, SET)。這兩種加密傳輸方法能夠?qū)π庞每ê蛡€人信息提 供較強的保護。但是這兩種加密傳輸方法要求通信雙方進行額外的密鑰交換工作,并對消 息進行加密和解密,性能較低,只適合電子交易這種小數(shù)量的加密傳輸。另外這兩種加密傳 輸方法只適合兩臺機器(通常是客戶機/服務(wù)器)之間的加密傳輸。在企業(yè)級數(shù)據(jù)交換和 資源共享的消息中間件領(lǐng)域,通常會涉及兩方以上的多方通訊,也包括視音頻文件等大數(shù) 據(jù)的傳輸。傳統(tǒng)的加密傳輸方法無法滿足這種應(yīng)用場合,無法應(yīng)用在企業(yè)級數(shù)據(jù)交換和資 源共享的消息中間件領(lǐng)域。發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題相關(guān)技術(shù)的加密傳輸方法性能較低、 不適合多方通訊以及數(shù)據(jù)量較大的加密傳輸。
發(fā)明內(nèi)容
本發(fā)明旨在提供一種消息中間件的數(shù)據(jù)加密傳輸方法和系統(tǒng),能夠解決相關(guān)技術(shù) 不適合多方通訊以及數(shù)據(jù)量較大的加密傳輸?shù)膯栴}。在本發(fā)明的實施例中,提供了一種消息中間件的數(shù)據(jù)加密傳輸方法,包括發(fā)送裝 置使用隨機生成的公共密鑰加密所要發(fā)送的實體數(shù)據(jù)得到實體數(shù)據(jù)密文以及使用第一密 鑰加密公共密鑰得到第一密文,并將實體數(shù)據(jù)密文和第一密文發(fā)送給數(shù)據(jù)交換服務(wù)器;數(shù) 據(jù)交換服務(wù)器使用第一密鑰對接收到的第一密文進行解密,得到公共密鑰;數(shù)據(jù)交換服務(wù) 器使用第二密鑰對解密得到的公共密鑰進行加密,并將加密得到的第二密文以及接收到的 實體數(shù)據(jù)密文發(fā)送給接收裝置;接收裝置使用第二密鑰解密接收到的第二密文得到公共密 鑰,并使用公共密鑰解密實體數(shù)據(jù)密文得到實體數(shù)據(jù)。在本發(fā)明的實施例中,還提供了一種消息中間件的數(shù)據(jù)加密傳輸系統(tǒng),包括發(fā)送裝置,用于使用隨機生成的公共密鑰加密所要發(fā)送的實體數(shù)據(jù)得到實體數(shù)據(jù) 密文以及使用第一密鑰加密公共密鑰得到第一密文,并將實體數(shù)據(jù)密文和第一密文發(fā)送給 數(shù)據(jù)交換服務(wù)器;數(shù)據(jù)交換服務(wù)器,用于使用第一密鑰對接收到的第一密文進行解密,得到公共密鑰;還用于使用第二密鑰對解密得到的公共密鑰進行加密,并將加密得到的第二密文以及 接收到的實體數(shù)據(jù)密文發(fā)送給接收裝置;接收裝置,用于使用第二密鑰解密接收到的第二密文得到公共密鑰,并使用公共 密鑰解密實體數(shù)據(jù)密文得到實體數(shù)據(jù)。由于通過數(shù)據(jù)交換服務(wù)器轉(zhuǎn)發(fā)加密的實體數(shù)據(jù)和加密的公共密鑰,每次發(fā)送數(shù)據(jù) 均隨機生成一個公共密鑰,使用該公共密鑰加密要發(fā)送的實體數(shù)據(jù),數(shù)據(jù)交換服務(wù)器只需 對小數(shù)量的公共密鑰進行加密和解密操作,且對實體數(shù)據(jù)的加密是采用對稱加密算法進行 加密,加密、解密速度快,解決了相關(guān)技術(shù)不適合數(shù)據(jù)量較大的加密傳輸以及不適合多方通 訊的問題,從而使得發(fā)送端和接收端之間的公共密鑰交換通過系統(tǒng)自動完成,避免了密鑰 交換的麻煩;數(shù)據(jù)交換服務(wù)器只對小數(shù)量的公共密鑰進行解密和加密操作,避免了在數(shù)據(jù) 交換服務(wù)器對大數(shù)據(jù)量的實體數(shù)據(jù)進行加密和解密操作而引起的性能問題;同時由于對實 體數(shù)據(jù)本身的加密是采用對稱加密算法進行加密,對于數(shù)據(jù)的加密和解密的速度很快,適 合特大數(shù)據(jù)量數(shù)據(jù)的加密傳輸。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中圖1示出了根據(jù)本發(fā)明實施例的消息中間件的數(shù)據(jù)加密傳輸方法的流程圖;圖2示出了根據(jù)本發(fā)明實施例的消息中間件的數(shù)據(jù)加密傳輸系統(tǒng)的示意圖;圖3示出了根據(jù)本發(fā)明優(yōu)選實施例的消息中間件的數(shù)據(jù)加密傳輸系統(tǒng)的框架示 意圖;圖4示出了根據(jù)本發(fā)明優(yōu)選實施例的消息中間件的數(shù)據(jù)加密傳輸系統(tǒng)的整體工 作流程圖;圖5示出了根據(jù)本發(fā)明優(yōu)選實施例的發(fā)送裝置的工作流程圖;圖6示出了根據(jù)本發(fā)明優(yōu)選實施例的數(shù)據(jù)交換服務(wù)器的工作流程圖;圖7示出了根據(jù)本發(fā)明優(yōu)選實施例的接收裝置的工作流程圖。
具體實施例方式為了解決相關(guān)技術(shù)不適合數(shù)據(jù)量較大的加密傳輸以及不適合多方通訊的問題,本 發(fā)明提供了一種消息中間件的數(shù)據(jù)加密傳輸方法和系統(tǒng),其中,方法包括發(fā)送裝置使用隨 機生成的公共密鑰加密所要發(fā)送的實體數(shù)據(jù)得到實體數(shù)據(jù)密文以及使用第一密鑰加密公 共密鑰得到第一密文,并將實體數(shù)據(jù)密文和第一密文發(fā)送給數(shù)據(jù)交換服務(wù)器;數(shù)據(jù)交換服 務(wù)器使用第一密鑰對接收到的第一密文進行解密,得到公共密鑰;數(shù)據(jù)交換服務(wù)器使用第 二密鑰對解密得到的公共密鑰進行加密,并將加密得到的第二密文以及接收到的實體數(shù)據(jù) 密文發(fā)送給接收裝置;接收裝置使用第二密鑰解密接收到的第二密文得到公共密鑰,并使 用公共密鑰解密實體數(shù)據(jù)密文得到實體數(shù)據(jù)。本發(fā)明的數(shù)據(jù)加密傳輸方法和系統(tǒng)對于實體 數(shù)據(jù)的加密和解密的速度很快,適合特大數(shù)據(jù)量數(shù)據(jù)的加密傳輸,且數(shù)據(jù)交換服務(wù)器只對 小數(shù)量的公共密鑰進行解密和加密操作,避免了在數(shù)據(jù)交換服務(wù)器對大數(shù)據(jù)量的實體數(shù)據(jù) 進行加密和解密操作而引起的性能問題。此外,為企業(yè)應(yīng)用系統(tǒng)之間的數(shù)據(jù)交換提供了點對點、一點對多點、廣播方式等多種加密傳輸方式,提高了數(shù)據(jù)在網(wǎng)絡(luò)上傳輸?shù)谋C苄院桶?全性。下面將參考附圖并結(jié)合實施例,來詳細說明本發(fā)明。圖1示出了根據(jù)本發(fā)明實施例的消息中間件的數(shù)據(jù)加密傳輸方法的流程圖,包括 以下步驟步驟S101,發(fā)送裝置使用隨機生成的公共密鑰加密所要發(fā)送的實體數(shù)據(jù)得到實體 數(shù)據(jù)密文以及使用第一密鑰加密公共密鑰得到第一密文,并將實體數(shù)據(jù)密文和第一密文發(fā) 送給數(shù)據(jù)交換服務(wù)器;步驟S102,數(shù)據(jù)交換服務(wù)器使用第一密鑰對接收到的第一密文進行解密,得到公 共密鑰;步驟S103,數(shù)據(jù)交換服務(wù)器使用第二密鑰對解密得到的公共密鑰進行加密,并將 加密得到的第二密文以及接收到的實體數(shù)據(jù)密文發(fā)送給接收裝置;步驟S104,接收裝置使用第二密鑰解密接收到的第二密文得到公共密鑰,并使用 公共密鑰解密實體數(shù)據(jù)密文得到實體數(shù)據(jù)。該實施例由于通過數(shù)據(jù)交換服務(wù)器轉(zhuǎn)發(fā)加密的實體數(shù)據(jù)和加密的公共密鑰,每次 發(fā)送數(shù)據(jù)均隨機生成一個公共密鑰,使用該公共密鑰加密要發(fā)送的實體數(shù)據(jù),數(shù)據(jù)交換服 務(wù)器只需對小數(shù)量的公共密鑰進行解密和加密操作,且對實體數(shù)據(jù)的加密是采用對稱加密 算法進行加密,加密、解密速度快,從而解決了相關(guān)技術(shù)不適合數(shù)據(jù)量較大的加密傳輸以及 不適合多方通訊的問題。該實施例實現(xiàn)了在消息中間件領(lǐng)域的加密傳輸方案,每一次發(fā)送實體數(shù)據(jù)均生成 一個新的隨機密鑰作為公共密鑰,保證實體數(shù)據(jù)每次加密密鑰都是唯一的;發(fā)送端和接收 端之間的公共密鑰交換通過系統(tǒng)自動完成,避免了密鑰交換的麻煩;數(shù)據(jù)交換服務(wù)器只對 小數(shù)量的公共密鑰進行加密和解密操作,避免了在數(shù)據(jù)交換服務(wù)器對大數(shù)據(jù)量的實體數(shù)據(jù) 進行加密和解密操作而引起的性能問題;同時由于對實體數(shù)據(jù)本身的加密是采用對稱加密 算法進行加密,對于數(shù)據(jù)的加密和解密的速度很快,適合特大數(shù)據(jù)量數(shù)據(jù)的加密傳輸。優(yōu)選地,在存儲裝置的數(shù)據(jù)庫或者磁盤文件中預(yù)先存儲有用戶信息,用戶信息包 括用戶名和登錄口令。上述步驟SlOl中的第一密鑰為發(fā)送用戶的登錄口令,步驟SlOl包括發(fā)送裝置隨 機生成一個字符串作為公共密鑰;發(fā)送裝置使用公共密鑰對所要發(fā)送的實體數(shù)據(jù)進行加密 得到實體數(shù)據(jù)密文;發(fā)送裝置使用發(fā)送用戶輸入的發(fā)送用戶的登錄口令對公共密鑰進行加 密得到第一密文;發(fā)送裝置將實體數(shù)據(jù)密文、第一密文以及發(fā)送用戶指定的發(fā)送方式的信 息發(fā)送給數(shù)據(jù)交換服務(wù)器。其中,發(fā)送方式的信息包括點對點、一點對多點或者廣播發(fā)送方式;當發(fā)送方式 為點對點或者一點對多點發(fā)送方式時,發(fā)送方式的信息還包括接收用戶的用戶名或者用戶 名列表。通過提供多種發(fā)送方式為企業(yè)應(yīng)用系統(tǒng)之間的數(shù)據(jù)交換提供了點對點(單播)、一 點對多點(多播)、廣播方式等多種加密傳輸方式,提高了數(shù)據(jù)在網(wǎng)絡(luò)上傳輸?shù)谋C苄院桶?全性。步驟S102包括數(shù)據(jù)交換服務(wù)器從存儲裝置中查找到發(fā)送用戶的登錄口令;數(shù)據(jù) 交換服務(wù)器使用發(fā)送用戶的登錄口令解密第一密文,得到公共密鑰。
上述步驟S103中的第二密鑰為接收用戶的登錄口令,步驟S103包括數(shù)據(jù)交換 服務(wù)器根據(jù)接收到的發(fā)送方式的信息以及預(yù)先設(shè)置的消息路由規(guī)則獲得路由表;數(shù)據(jù)交換 服務(wù)器依次遍歷路由表中的各個接收用戶,根據(jù)當前的接收用戶的用戶名從存儲裝置中查 找到當前的接收用戶的登錄口令,并使用當前的接收用戶的登錄口令加密公共密鑰,得到 第二密文;根據(jù)路由表將第二密文以及接收到的實體數(shù)據(jù)密文發(fā)送給當前的接收用戶對應(yīng) 的接收裝置。當發(fā)送方式為一點到多點或廣播方式時,路由表中的接收用戶可能是多個,此 時,需要依次使用每一個接收用戶的登錄口令加密公共密鑰,并將加密后得到的第二密文 發(fā)送給每一個接收用戶對應(yīng)的接收裝置。步驟S104包括接收裝置使用接收用戶輸入的接收用戶的登錄口令對接收到的 第二密文進行解密,得到公共密鑰;接收裝置使用公共密鑰對接收到的實體數(shù)據(jù)密文進行 解密得到實體數(shù)據(jù)。上述優(yōu)選實施例提供了本發(fā)明的消息中間件的數(shù)據(jù)加密傳輸方法的具體實施方 案。通過數(shù)據(jù)交換服務(wù)器訪問存儲裝置,從存儲裝置中查找預(yù)先存儲的用戶的密碼信息,來 對公共密鑰進行加密和解密。數(shù)據(jù)交換服務(wù)器只對小數(shù)量的公共密鑰進行加密和解密操 作,避免了在數(shù)據(jù)交換服務(wù)器對大數(shù)據(jù)量的實體數(shù)據(jù)進行加密和解密操作而引起的性能問 題。上述的存儲裝置也可以由數(shù)據(jù)交換服務(wù)器實現(xiàn)。用戶信息(包括用戶名和登錄口 令)可以預(yù)先存儲在數(shù)據(jù)交換服務(wù)器以外的另一個裝置中,也可以存儲在數(shù)據(jù)交換服務(wù)器 中,即由數(shù)據(jù)交換服務(wù)器來實現(xiàn)存儲裝置的功能。圖2示出了根據(jù)本發(fā)明實施例的消息中間件的數(shù)據(jù)加密傳輸系統(tǒng)的示意圖,包 括發(fā)送裝置10,用于使用隨機生成的公共密鑰加密所要發(fā)送的實體數(shù)據(jù)得到實體數(shù) 據(jù)密文以及使用第一密鑰加密公共密鑰得到第一密文,并將實體數(shù)據(jù)密文和第一密文發(fā)送 給數(shù)據(jù)交換服務(wù)器;數(shù)據(jù)交換服務(wù)器20,用于使用第一密鑰對接收到的第一密文進行解密,得到公共 密鑰;還用于使用第二密鑰對解密得到的公共密鑰進行加密,并將加密得到的第二密文以 及接收到的實體數(shù)據(jù)密文發(fā)送給接收裝置;接收裝置30,用于使用第二密鑰解密接收到的第二密文得到公共密鑰,并使用公 共密鑰解密實體數(shù)據(jù)密文得到實體數(shù)據(jù)。優(yōu)選地,上述的系統(tǒng)還包括存儲裝置40,用于在其數(shù)據(jù)庫或者磁盤文件中預(yù)先 存儲用戶信息,用戶信息包括用戶名和登錄口令。優(yōu)選地,第一密鑰為發(fā)送用戶的登錄口令,發(fā)送裝置10包括公共密鑰生成模塊101,用于隨機生成一個字符串作為公共密鑰;第一加密模塊102,用于使用公共密鑰生成模塊101生成的公共密鑰對所要發(fā)送 的實體數(shù)據(jù)進行加密得到實體數(shù)據(jù)密文;還用于使用發(fā)送用戶輸入的發(fā)送用戶的登錄口令 對公共密鑰進行加密得到第一密文;第一發(fā)送模塊103,用于將實體數(shù)據(jù)密文、第一密文以及發(fā)送用戶指定的發(fā)送方式 的信息發(fā)送給數(shù)據(jù)交換服務(wù)器。優(yōu)選地,數(shù)據(jù)交換服務(wù)器20包括
第二接收模塊201,用于接收實體數(shù)據(jù)密文、第一密文以及發(fā)送方式的信息;第二解密模塊202,用于從存儲裝置40中查找到發(fā)送用戶的登錄口令;還用于使 用發(fā)送用戶的登錄口令解密第一密文,得到公共密鑰。優(yōu)選地,第二密鑰為接收用戶的登錄口令,數(shù)據(jù)交換服務(wù)器20還包括第二發(fā)送模塊203,用于根據(jù)第二接收模塊接收到的發(fā)送方式的信息以及預(yù)先設(shè) 置的消息路由規(guī)則獲得路由表;還用于根據(jù)路由表將第二密文以及第二接收模塊接收到的 實體數(shù)據(jù)密文發(fā)送給路由表中的所有接收用戶對應(yīng)的接收裝置;第二加密模塊204,用于依次遍歷路由表中的各個接收用戶,根據(jù)當前的接收用戶 的用戶名從存儲裝置中查找到當前的接收用戶的登錄口令,并使用當前的接收用戶的登錄 口令加密公共密鑰,得到第二密文。接收裝置30包括第三接收模塊301,用于接收第二密文以及實體數(shù)據(jù)密文;第三解密模塊302,用于使用接收用戶輸入的接收用戶的登錄口令對第三接收模 塊301接收到的第二密文進行解密,得到公共密鑰;還用于使用公共密鑰對第三接收模塊 301接收到的實體數(shù)據(jù)密文進行解密得到實體數(shù)據(jù)。圖3示出了根據(jù)本發(fā)明優(yōu)選實施例的數(shù)據(jù)加密傳輸系統(tǒng)的基本框架示意圖,接收 裝置可以有多個(如圖中的接收裝置A和接收裝置B),支持單播、多播和廣播等多種數(shù)據(jù)加 密傳輸方式,其包括發(fā)送裝置、數(shù)據(jù)交換服務(wù)器、接收裝置。如圖4所示,整體的工作流程包括如下步驟步驟401,發(fā)送用戶將要發(fā)送的實體數(shù)據(jù)傳給發(fā)送裝置,并指定消息發(fā)送方式。如 此處指定要發(fā)送的數(shù)據(jù)為一個長度為4096字節(jié)的字節(jié)數(shù)組data,發(fā)送方式為廣播消息。步驟402,發(fā)送裝置利用公共密鑰生成模塊生成一個30個字符長度的隨機字符串 “I8T70Z91KCCHZ3LKH5UYX273EM4141”作為對實體數(shù)據(jù)進行加密的公共密鑰。步驟403,發(fā)送裝置利用生成的公共密鑰“I8T70Z91KCOC3LKH5UYX273EM4141,,作 為密碼對指定的實體數(shù)據(jù)data進行加密、得到實體數(shù)據(jù)密文encdata。步驟404,發(fā)送裝置利用發(fā)送用戶的登錄口令(此處假定為123456)對公共密鑰 “I8T70Z91KCCHZ3LKH5UYX273EM4141”進行加密,得到發(fā)送方公共密鑰密文(即上述的第一 密文)"pRmMgM2B5gsK2zB3jVpohdBZlbAEx+J7/nP3XQF9J22dCPuXadFttIUd3KZMdG0AXNKew6 ZFy5SkUcffbMVzC8g ==,,。步驟405,發(fā)送裝置將實體數(shù)據(jù)密文encdata和發(fā)送方公共密鑰密文“PRmMgM2B5 gsK2zB3jVpohdBZlbAEx+J7/nP3XQF9J22dCPuXadFttIUd3KZMdG0AXNKew6ZFy5SkUcffbMVzC8g ==,,組裝成數(shù)據(jù)包,并將該數(shù)據(jù)包發(fā)送到數(shù)據(jù)交換服務(wù)器。步驟406,數(shù)據(jù)交換服務(wù)器接收發(fā)送裝置發(fā)送的數(shù)據(jù)包,從數(shù)據(jù)包中得到實體數(shù)據(jù) 密文 encdata 和發(fā)送方公共密鑰密文 “pRmMgM2B5gsKhB3 jVpohdBZlbAEx+J7/nP3XQF9J22d CPuXadFttIUd3KZMdG0AXNKew6ZFy5SkUcffbMVzC8g == ” ;數(shù)據(jù)交換服務(wù)器根據(jù)消息路由規(guī) 則得到路由表,此處假定路由結(jié)果有兩個接收用戶Appl和App2。步驟407,數(shù)據(jù)交換服務(wù)器從存儲裝置中查找得到發(fā)送用戶的登錄口令(此處為 12;3456),并使用該登錄口令對發(fā)送方公共密鑰密文“pRmMgM2B5gsKhB3jVpohdBZlbAEx+J7 /nP3XQF9J22dCPuXadFttIUd3KZMdG0AXNKew6ZFy5SkUcffbMVzC 8g = = 行解密,得到公共
9密鑰的明文“ I8T7( 91KCCHZ3LKH5UYX273EM4141 ”。步驟408,數(shù)據(jù)交換服務(wù)器從存儲裝置中得到接收用戶Appl的登錄密碼,此處假 定為abcl23,使用該登錄密碼對公共密鑰“I8T70Z91KCCHZ3LKH5UYX273EM4141”進行加密, 得到接收方公共密鑰密文(即上述的第二密文)“kK7yvzY+I0HNyoQgfe5nhTVx85Jshfbee8 Uc7npuD4RLlXXlUh2g5tImkMbjvHgK/oQ38AcY0kgYlUUV0w0GA ==”。步驟409,數(shù)據(jù)交換服務(wù)器將步驟406中得到的實體數(shù)據(jù)密文encdata和步驟408 中得到的接收方公共密鑰密文 “kK7yvzY+I0HNyoQgfe5nhTVx85Jshfbee8Uc7npuD4RLlXXlU h2g5tImkMbjvHgK/oQ38AcY0kgYlUUV0w0GA == ”組裝成新的數(shù)據(jù)包發(fā)送到接收用戶Appl 對應(yīng)的接收裝置A。數(shù)據(jù)交換服務(wù)器根據(jù)步驟406得到的路由表對App2重復(fù)步驟408和步 驟409,直到將數(shù)據(jù)發(fā)送給路由表的每一個接收用戶。步驟410,接收裝置A收到數(shù)據(jù)交換服務(wù)器的數(shù)據(jù)包后從數(shù)據(jù)包中得到實體數(shù)據(jù) 密文 encdata 和接收方公共密鑰密文 “kK7yvzY+I0HNyoQgfe5nhTVx85Jshfbee8Uc7npuD4R LlXXlUh2g5tImkMbjvHgK/oQ38AcY0kgYlUUV0w0GA ==,,。步驟411,接收裝置A使用接收用戶Appl的登錄口令(此處為abcl23)對接收方 公共密鑰密文 “kK7yvzY+I0HNyoQgfe5nhTVx85Js2zfbee8Uc7npuD4RLlXXlUh2g5tImkMbjvHg K/oQ38AcY0kgYlUUV0w0GA == ”進行解密得到公共密鑰“ I8T70Z91KCCHZ3LKH5UYX273EM414 1”。步驟412,接收裝置A使用公共密鑰“I8T70Z91KCCHZ3LKH5UYX273EM4141”對步驟 410中得到的實體數(shù)據(jù)密文encdata進行解密,得到發(fā)送端傳輸?shù)恼鎸崝?shù)據(jù)data,完成一次 加密數(shù)據(jù)傳輸過程。圖5示出了根據(jù)本發(fā)明優(yōu)選實施例的發(fā)送裝置的工作流程圖,包括以下步驟步驟S501,發(fā)送裝置接收發(fā)送用戶要發(fā)送的實體數(shù)據(jù)以及發(fā)送用戶指定的點對 點、一點對多點或廣播等消息發(fā)送方式;步驟S502,發(fā)送裝置生成一個隨機字符串作為對實體數(shù)據(jù)進行加密的公共密鑰;步驟S503,發(fā)送裝置利用公共密鑰對指定的實體數(shù)據(jù)進行加密、得到實體數(shù)據(jù)密 文;步驟S504,發(fā)送裝置利用發(fā)送用戶的登錄口令對公共密鑰進行加密,得到發(fā)送方 公共密鑰密文;步驟S505,發(fā)送裝置將實體數(shù)據(jù)密文和發(fā)送方公共密鑰密文組裝成數(shù)據(jù)包,并將 該數(shù)據(jù)包發(fā)送到數(shù)據(jù)交換服務(wù)器。圖6示出了根據(jù)本發(fā)明優(yōu)選實施例的數(shù)據(jù)交換服務(wù)器的工作流程圖,包括以下步 驟步驟S601,數(shù)據(jù)交換服務(wù)器接收到發(fā)送裝置發(fā)送的數(shù)據(jù)包后,從數(shù)據(jù)包中得到實 體數(shù)據(jù)密文和發(fā)送方公共密鑰密文;步驟S602,數(shù)據(jù)交換服務(wù)器從存儲裝置中得到發(fā)送用戶的登錄口令,并使用該登 錄口令對發(fā)送方公共密鑰密文進行解密,得到公共密鑰;步驟S603,數(shù)據(jù)交換服務(wù)器根據(jù)消息路由規(guī)則得到路由表,交換服務(wù)器從路由表 得到接收端列表;步驟S604,數(shù)據(jù)交換服務(wù)器從存儲裝置中得到接收用戶的登錄口令,并使用該登錄口令對公共密鑰進行加密,得到接收方公共密鑰密文;步驟S605,數(shù)據(jù)交換服務(wù)器將得到的實體數(shù)據(jù)密文和接收方公共密鑰密文組裝成 新的數(shù)據(jù)包發(fā)送到接收裝置;步驟S606,數(shù)據(jù)交換服務(wù)根據(jù)得到的路由表判斷是否已將公共密鑰加密并將加密 的公共密鑰和實體數(shù)據(jù)密文轉(zhuǎn)發(fā)給所有接收用戶,若否,則繼續(xù)對下一個接收端重復(fù)步驟 S604和步驟S605,直到將加密的公共密鑰和實體數(shù)據(jù)密文發(fā)送給路由表中的每一個接收 用戶。圖7示出了根據(jù)本發(fā)明優(yōu)選實施例的接收裝置的工作流程圖,包括以下步驟步驟S701,接收裝置收到數(shù)據(jù)交換服務(wù)器的數(shù)據(jù)包后從數(shù)據(jù)包中得到實體數(shù)據(jù)密 文和接收方公共密鑰密文;步驟S702,接收裝置使用接收用戶的登錄口令對接收方公共密鑰密文進行解密得 到公共密鑰;步驟S703,接收裝置使用公共密鑰對實體數(shù)據(jù)密文進行解密,得到發(fā)送端傳輸?shù)?真實數(shù)據(jù),完成一次加密傳輸過程。采用本發(fā)明的數(shù)據(jù)加密傳輸方法和系統(tǒng)能夠提高應(yīng)用系統(tǒng)之間的數(shù)據(jù)傳輸安全 性和數(shù)據(jù)傳輸性能,可以保證數(shù)據(jù)在網(wǎng)絡(luò)上傳輸加密后的數(shù)據(jù),防止非法用戶攔截傳輸?shù)?數(shù)據(jù)后用于非法目的,保證數(shù)據(jù)傳輸?shù)陌踩?。從以上的描述中,可以看出,本發(fā)明上述的實施例實現(xiàn)了如下技術(shù)效果(1)對每一次消息均生成一個新的隨機密鑰作為公共密鑰,保證實體數(shù)據(jù)每次加 密密鑰都是唯一的;發(fā)送端和接收端之間的公共密鑰交換通過系統(tǒng)自動完成,避免了密鑰 交換的麻煩;(2)數(shù)據(jù)交換服務(wù)器只對小數(shù)量的公共密鑰進行解密和加密操作,避免了在數(shù)據(jù) 交換服務(wù)器對大數(shù)據(jù)量的實體數(shù)據(jù)進行加密和解密操作而引起的性能問題;(3)對于實體數(shù)據(jù)的加密和解密的速度很快,適合特大數(shù)據(jù)量數(shù)據(jù)的加密傳輸;(4)提供多種發(fā)送方式為企業(yè)應(yīng)用系統(tǒng)之間的數(shù)據(jù)交換提供了點對點、一點對多 點、廣播方式等多種加密傳輸方式,提高了數(shù)據(jù)在網(wǎng)絡(luò)上傳輸?shù)谋C苄院桶踩浴o@然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成 的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而可以將它們存儲在 存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中 的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬 件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種消息中間件的數(shù)據(jù)加密傳輸方法,其特征在于,包括發(fā)送裝置使用隨機生成的公共密鑰加密所要發(fā)送的實體數(shù)據(jù)得到實體數(shù)據(jù)密文以及 使用第一密鑰加密所述公共密鑰得到第一密文,并將所述實體數(shù)據(jù)密文和所述第一密文發(fā) 送給數(shù)據(jù)交換服務(wù)器;所述數(shù)據(jù)交換服務(wù)器使用第一密鑰對接收到的第一密文進行解密,得到所述公共密鑰;所述數(shù)據(jù)交換服務(wù)器使用第二密鑰對解密得到的公共密鑰進行加密,并將加密得到的 第二密文以及接收到的所述實體數(shù)據(jù)密文發(fā)送給接收裝置;所述接收裝置使用第二密鑰解密接收到的第二密文得到所述公共密鑰,并使用所述公 共密鑰解密所述實體數(shù)據(jù)密文得到所述實體數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在存儲裝置的數(shù)據(jù)庫或者磁盤文件中預(yù) 先存儲有用戶信息,所述用戶信息包括用戶名和登錄口令。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第一密鑰為發(fā)送用戶的登錄口令,發(fā) 送裝置使用隨機生成的公共密鑰加密所要發(fā)送的實體數(shù)據(jù)得到實體數(shù)據(jù)密文以及使用第 一密鑰加密所述公共密鑰得到第一密文,并將所述實體數(shù)據(jù)密文和所述第一密文發(fā)送給數(shù) 據(jù)交換服務(wù)器包括所述發(fā)送裝置隨機生成一個字符串作為所述公共密鑰;所述發(fā)送裝置使用所述公共密鑰對所要發(fā)送的實體數(shù)據(jù)進行加密得到所述實體數(shù)據(jù) 密文;所述發(fā)送裝置使用發(fā)送用戶輸入的發(fā)送用戶的登錄口令對所述公共密鑰進行加密得 到所述第一密文;所述發(fā)送裝置將所述實體數(shù)據(jù)密文、所述第一密文以及所述發(fā)送用戶指定的發(fā)送方式 的信息發(fā)送給所述數(shù)據(jù)交換服務(wù)器。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述發(fā)送方式的信息包括點對點、一點 對多點或者廣播發(fā)送方式;當發(fā)送方式為點對點或者一點對多點發(fā)送方式時,所述發(fā)送方 式的信息還包括接收用戶的用戶名或者用戶名列表。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述數(shù)據(jù)交換服務(wù)器使用第一密鑰對接 收到的第一密文進行解密,得到所述公共密鑰包括所述數(shù)據(jù)交換服務(wù)器從所述存儲裝置中查找到所述發(fā)送用戶的登錄口令;所述數(shù)據(jù)交換服務(wù)器使用所述發(fā)送用戶的登錄口令解密所述第一密文,得到所述公共 密鑰。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述第二密鑰為接收用戶的登錄口令,所 述數(shù)據(jù)交換服務(wù)器使用第二密鑰對解密得到的公共密鑰進行加密,并將加密得到的第二密 文以及接收到的所述實體數(shù)據(jù)密文發(fā)送給接收裝置包括所述數(shù)據(jù)交換服務(wù)器根據(jù)接收到的所述發(fā)送方式的信息以及預(yù)先設(shè)置的消息路由規(guī) 則獲得路由表;所述數(shù)據(jù)交換服務(wù)器依次遍歷所述路由表中的各個接收用戶,根據(jù)當前的接收用戶的 用戶名從所述存儲裝置中查找到所述當前的接收用戶的登錄口令,并使用所述當前的接收 用戶的登錄口令加密所述公共密鑰,得到第二密文;根據(jù)所述路由表將所述第二密文以及接收到的所述實體數(shù)據(jù)密文發(fā)送給所述當前的 接收用戶對應(yīng)的接收裝置。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述接收裝置使用第二密鑰解密接收到 的第二密文得到所述公共密鑰,并使用所述公共密鑰解密所述實體數(shù)據(jù)密文得到所述實體 數(shù)據(jù)包括所述接收裝置使用接收用戶輸入的接收用戶的登錄口令對接收到的第二密文進行解 密,得到所述公共密鑰;所述接收裝置使用所述公共密鑰對接收到的實體數(shù)據(jù)密文進行解密得到所述實體數(shù)據(jù)。
8.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述存儲裝置由所述數(shù)據(jù)交換服務(wù)器實現(xiàn)。
9.一種消息中間件的數(shù)據(jù)加密傳輸系統(tǒng),其特征在于,包括發(fā)送裝置,用于使用隨機 生成的公共密鑰加密所要發(fā)送的實體數(shù)據(jù)得到實體數(shù)據(jù)密文以及使用第一密鑰加密所述 公共密鑰得到第一密文,并將所述實體數(shù)據(jù)密文和所述第一密文發(fā)送給數(shù)據(jù)交換服務(wù)器;所述數(shù)據(jù)交換服務(wù)器,用于使用第一密鑰對接收到的第一密文進行解密,得到所述公 共密鑰;還用于使用第二密鑰對解密得到的公共密鑰進行加密,并將加密得到的第二密文 以及接收到的所述實體數(shù)據(jù)密文發(fā)送給接收裝置;所述接收裝置,用于使用第二密鑰解密接收到的第二密文得到所述公共密鑰,并使用 所述公共密鑰解密所述實體數(shù)據(jù)密文得到所述實體數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,還包括存儲裝置,用于在其數(shù)據(jù)庫或者磁盤文件中預(yù)先存儲用戶信息,所述用戶信息包括用 戶名和登錄口令。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述第一密鑰為發(fā)送用戶的登錄口令, 所述發(fā)送裝置包括公共密鑰生成模塊,用于隨機生成一個字符串作為所述公共密鑰; 第一加密模塊,用于使用所述公共密鑰生成模塊生成的公共密鑰對所要發(fā)送的實體數(shù) 據(jù)進行加密得到所述實體數(shù)據(jù)密文;還用于使用發(fā)送用戶輸入的發(fā)送用戶的登錄口令對所 述公共密鑰進行加密得到所述第一密文;第一發(fā)送模塊,用于將所述實體數(shù)據(jù)密文、所述第一密文以及所述發(fā)送用戶指定的發(fā) 送方式的信息發(fā)送給所述數(shù)據(jù)交換服務(wù)器。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述數(shù)據(jù)交換服務(wù)器包括第二接收模塊,用于接收所述實體數(shù)據(jù)密文、所述第一密文以及所述發(fā)送方式的信息;第二解密模塊,用于從所述存儲裝置中查找到所述發(fā)送用戶的登錄口令;還用于使用 所述發(fā)送用戶的登錄口令解密所述第一密文,得到所述公共密鑰。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,所述第二密鑰為接收用戶的登錄口令, 所述數(shù)據(jù)交換服務(wù)器還包括第二發(fā)送模塊,用于根據(jù)所述第二接收模塊接收到的所述發(fā)送方式的信息以及預(yù)先設(shè) 置的消息路由規(guī)則獲得路由表;還用于根據(jù)所述路由表將所述第二密文以及所述第二接收模塊接收到的所述實體數(shù)據(jù)密文發(fā)送給所述路由表中的所有接收用戶對應(yīng)的接收裝置;第二加密模塊,用于依次遍歷所述路由表中的各個接收用戶,根據(jù)當前的接收用戶的 用戶名從所述存儲裝置中查找到所述當前的接收用戶的登錄口令,并使用所述當前的接收 用戶的登錄口令加密所述公共密鑰,得到第二密文。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于,所述接收裝置包括 第三接收模塊,用于接收所述第二密文以及所述實體數(shù)據(jù)密文; 第三解密模塊,用于使用接收用戶輸入的接收用戶的登錄口令對所述第三接收模塊接 收到的第二密文進行解密,得到所述公共密鑰;還用于使用所述公共密鑰對所述第三接收 模塊接收到的實體數(shù)據(jù)密文進行解密得到所述實體數(shù)據(jù)。
全文摘要
本發(fā)明提供了一種消息中間件的數(shù)據(jù)加密傳輸方法,包括發(fā)送裝置使用隨機生成的公共密鑰加密所要發(fā)送的實體數(shù)據(jù)得到實體數(shù)據(jù)密文以及使用第一密鑰加密公共密鑰得到第一密文,并將實體數(shù)據(jù)密文和第一密文發(fā)送給數(shù)據(jù)交換服務(wù)器;數(shù)據(jù)交換服務(wù)器使用第一密鑰對接收到的第一密文進行解密,得到公共密鑰;數(shù)據(jù)交換服務(wù)器使用第二密鑰對解密得到的公共密鑰進行加密,并將加密得到的第二密文以及接收到的實體數(shù)據(jù)密文發(fā)送給接收裝置;接收裝置使用第二密鑰解密接收到的第二密文得到公共密鑰,并使用公共密鑰解密實體數(shù)據(jù)密文得到實體數(shù)據(jù)。本發(fā)明還提供了一種消息中間件的數(shù)據(jù)加密傳輸系統(tǒng)。本發(fā)明適合特大數(shù)據(jù)量數(shù)據(jù)的加密傳輸。
文檔編號H04L29/06GK102088352SQ20091024142
公開日2011年6月8日 申請日期2009年12月8日 優(yōu)先權(quán)日2009年12月8日
發(fā)明者樂以長, 原鋒, 彭飛 申請人:北京大學, 北京方正奧德計算機系統(tǒng)有限公司, 北大方正集團有限公司