專利名稱:生成加密/解密密鑰的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種生成加密/解密密鑰的方法,特別涉及一種生成用于對稱加密 (即其中加密和解密均使用同一密鑰)的一次加密/解密密鑰的方法。本發(fā)明進一步涉及 一種計算機程序,包括用于當(dāng)在計算機上運行時執(zhí)行該方法的代碼裝置;以及一種計算機程序產(chǎn)品,包括存儲在計算機可讀介質(zhì)上的程序代碼裝置,該程序代碼裝置用于當(dāng)所述產(chǎn)品在計算機上運行時執(zhí)行該方法。
背景技術(shù):
在密碼術(shù)中,密鑰是確定密碼算法的函數(shù)輸出的一段信息。如若沒有密鑰,算法就沒有結(jié)果。在加密時,密鑰指定從明文到密文的特定變換,而在解密期間,密鑰指定從密文到明文的特定變換。在諸如數(shù)字簽名方案和消息認證代碼之類的其它密碼算法中也使用密鑰。經(jīng)常說在設(shè)計安全系統(tǒng)中,明智的做法是假定密碼算法的細節(jié)已為攻擊者獲得。 該原理已知為Kerdd1Off (柯克霍夫)原理,因此只有密鑰的保密方能提供安全。該原理基于難以將廣泛使用的算法的細節(jié)保密這一事實。密鑰通常更容易保護,因為與加密算法相比,密鑰通常是一小段信息。然而,也可能難以將密鑰保密,并且如果攻擊者以某種手段獲取了密鑰,則他或她就可以從加密數(shù)據(jù)中恢復(fù)出原始消息。如以上所提及的那樣,加密和解密都使用同一密鑰的加密算法已知為對稱密鑰算法。還存在使用一對密鑰的非對稱密鑰算法,一個密鑰用于加密,并且一個密鑰用于解密。 這些非對稱密鑰算法允許將一個密鑰變成公共的,同時僅在一個位置保留私有密鑰。這些非對稱密鑰算法被設(shè)計成即便已知對應(yīng)的公共密鑰也非常難找到私有密鑰。公共密鑰技術(shù)的用戶可以公布他們的公共密鑰,同時將他們的私有密鑰保密,從而允許任何人向他們發(fā)送加密消息。為了使密鑰與對稱加密算法一起保持“安全”,通常考慮最小為80位的長度,而普通使用1 位的密鑰,并且該1 位的密鑰被認為是非常強。在公共密鑰密碼術(shù)中使用的密鑰具有一些數(shù)學(xué)結(jié)構(gòu)。例如,在RSA系統(tǒng)中使用的公共密鑰是兩個素數(shù)之積。因此,針對同等級別的安全性,公共密鑰系統(tǒng)需要比對稱系統(tǒng)長的密鑰長度。對于基于因式分解和整數(shù)離散對數(shù)的旨在具有等同于1 位對稱密碼的安全性的系統(tǒng)來說,建議采用3072位的密鑰長度。如以上所提及的那樣,如果基于對稱算法和非對稱算法的密鑰都足夠長,則可以生成具有高度安全性的密鑰。然而,在密鑰分發(fā)上存在問題。例如,如果雙方希望使用對稱密碼術(shù)彼此通信,那么他們首先要決定所使用的密鑰,然后將該密鑰從一方安全地分發(fā)到另一方。此外,必須由雙方對該密鑰進行保密。入侵者可能找到該密鑰的風(fēng)險隨著密鑰使用的時間而增加。因此,在正常情況下,密鑰只在有限時間內(nèi)有效,例如六個月或十二個月內(nèi)有效。此后必須分發(fā)新的密鑰。而且,非對稱密碼術(shù)加密的密鑰分發(fā)在雙方希望彼此通信時會遇到關(guān)于密鑰分發(fā)的問題。為了雙向發(fā)送信息,他們需要與彼此交換公共密鑰。而且,在這種情況下,這些密鑰通常具有有限的有效時段。對于與很多不同方通信的一方來說,有效公共密鑰分發(fā)的管理可能是麻煩的。典型的示例是,當(dāng)你需要向另一方緊急發(fā)送一些秘密信息時密鑰的有效性已過期,或者你尚未交換公共密鑰。另一種密碼術(shù)是量子密碼術(shù),其使用量子力學(xué)來保證安全通信。它能夠使雙方產(chǎn)生僅為這雙方所知的共用隨機位串,該共用隨機位串可以用作對消息加密和解密的密鑰。 量子密碼術(shù)的重要且唯一的特性在于兩個通信用戶檢測任何試圖獲知密鑰的第三方的存在的能力。這就是量子力學(xué)的基本方面的結(jié)果,即測量量子系統(tǒng)的過程將影響該系統(tǒng)。由于試圖竊聽密鑰的第三方必須以某種方式對該密鑰進行測量,因此將存在可檢測到的異常。 因此,量子密碼術(shù)的安全性依賴于量子力學(xué)的基礎(chǔ),這與依賴于某些數(shù)學(xué)函數(shù)的計算難度且不能提供任何竊聽的指示也不能保證密鑰安全的傳統(tǒng)公共密鑰密碼術(shù)形成對照。量子密碼術(shù)僅用于產(chǎn)生和分發(fā)密鑰,而不用于發(fā)送任何消息數(shù)據(jù)。該密鑰而后可與任何選中的加密算法一起用于對消息加密和解密,之后該消息可以通過標準通信信道進行發(fā)送。即便利用量子密碼術(shù)生成密鑰提供了一種非常安全的生成和分發(fā)密鑰的方式,但是它也具有主要缺陷。由于量子力學(xué)的特性,可分發(fā)量子密鑰的距離限于約100千米。給出了以上提及的問題,需要一種簡單的生成和分發(fā)密碼密鑰的方式。
發(fā)明內(nèi)容
本發(fā)明所要解決的問題是生成不需要分發(fā)到希望彼此通信的節(jié)點的密碼密鑰,即密鑰由節(jié)點自身生成。根據(jù)第一方面,該問題由生成加密/解密密鑰的方法來解決,該方法可用于第一節(jié)點與第二節(jié)點之間的安全通信。該方法包括以下步驟從所述第一節(jié)點A向中心服務(wù)器發(fā)送與所述第二節(jié)點建立通信的請求;響應(yīng)于來自所述第一節(jié)點的請求,從所述中心服務(wù)器向所述第一節(jié)點發(fā)送第一密鑰生成文件并且向所述第二節(jié)點發(fā)送第二密鑰生成文件;在所述第一節(jié)點上處理所述第一密鑰生成文件,并且在所述第二節(jié)點上處理所述第二密鑰生成文件;在所述第一節(jié)點處生成第一中間數(shù)據(jù)集,并且在所述第二節(jié)點處生成第二中間數(shù)據(jù)集;從所述第一節(jié)點向所述第二節(jié)點發(fā)送所述第一中間數(shù)據(jù)集;將所述第一中間數(shù)據(jù)集的位與所述第二中間數(shù)據(jù)集的對應(yīng)位進行比較;基于所述第一中間數(shù)據(jù)集與所述第二中間數(shù)據(jù)集之間的逐位比較,通過在被比較的位相等的情況下設(shè)置第一值,而在被比較的位不相等的情況下設(shè)置第二值,來創(chuàng)建新的第三中間數(shù)據(jù)集;從所述第二節(jié)點向所述第一節(jié)點發(fā)送所述第三中間數(shù)據(jù)集;將所述第三中間數(shù)據(jù)集的位與所述第一中間數(shù)據(jù)集的對應(yīng)位進行比較;
基于所述第三中間數(shù)據(jù)集與所述第一中間數(shù)據(jù)集之間的逐位比較,通過在所述第三中間數(shù)據(jù)集的對應(yīng)位被設(shè)置為所述第一值的情況下保持所述第一數(shù)據(jù)集的位值,而在所述第三中間數(shù)據(jù)集的對應(yīng)位被設(shè)置為所述第二值的情況下忽略所述第一中間數(shù)據(jù)集的位, 來生成第一密碼密鑰;基于所述第一中間數(shù)據(jù)集與所述第二中間數(shù)據(jù)集之間的逐位比較,通過在所述第一中間數(shù)據(jù)集的對應(yīng)位相等的情況下保持所述第二數(shù)據(jù)集的位值,而在被比較的位不相等的情況下忽略所述第二中間數(shù)據(jù)集的位,來生成第二密碼密鑰,所述第一密碼密鑰與所述第二密碼密鑰相同。根據(jù)本發(fā)明的第二方面,該問題由在第一節(jié)點中生成加密/解密密鑰的方法解決,該方法可用于所述第一節(jié)點與第二節(jié)點之間的安全通信。根據(jù)第二方面的所述方法包括以下步驟向中心服務(wù)器發(fā)送與所述第二節(jié)點建立安全通信的請求;響應(yīng)于所述請求,從所述中心服務(wù)器接收第一密鑰生成文件;處理所述第一密鑰生成文件;生成第一中間數(shù)據(jù)集;向所述第二節(jié)點發(fā)送所述第一中間數(shù)據(jù)集;從所述第二節(jié)點接收第三中間數(shù)據(jù)集;將所述第三中間數(shù)據(jù)集的位與所述第一中間數(shù)據(jù)集的對應(yīng)位進行比較;基于所述第三中間數(shù)據(jù)集與所述第一中間數(shù)據(jù)集之間的逐位比較,通過在所述第三中間數(shù)據(jù)集的對應(yīng)位被設(shè)置為第一值的情況下保持所述第一數(shù)據(jù)集的位值,而在所述第三中間數(shù)據(jù)集的對應(yīng)位被設(shè)置為第二值的情況下忽略所述第一中間數(shù)據(jù)集的位,來生成第
一密碼密鑰。根據(jù)本發(fā)明的第三方面,該問題由在第二節(jié)點中生成加密/解密密鑰的方法解決,該方法可用于第一節(jié)點與所述第二節(jié)點之間的安全通信。根據(jù)第三方面,所述方法包括以下步驟響應(yīng)于來自所述第一節(jié)點的開始所述第一節(jié)點與所述第二節(jié)點之間的安全通信的請求,從中心服務(wù)器接收第二密鑰生成文件;處理所述第二密鑰生成文件;生成第二中間數(shù)據(jù)集;從所述第一節(jié)點接收第一中間數(shù)據(jù)集;將所述第一中間數(shù)據(jù)集的位與所述第二中間數(shù)據(jù)集的對應(yīng)位進行比較;基于所述第一中間數(shù)據(jù)集與所述第二中間數(shù)據(jù)集之間的逐位比較,通過在被比較的位相等的情況下設(shè)置第一值,而在被比較的位不相等的情況下設(shè)置第二值,來創(chuàng)建新的第三中間數(shù)據(jù)集;向所述第一節(jié)點發(fā)送所述第三中間數(shù)據(jù)集;基于所述第一中間數(shù)據(jù)集與所述第二中間數(shù)據(jù)集之間的逐位比較,通過在所述第一中間數(shù)據(jù)集的對應(yīng)位相等的情況下保持所述第二數(shù)據(jù)集的位值,而在被比較的位不相等的情況下忽略所述第二中間數(shù)據(jù)集的位,來生成第二密碼密鑰。根據(jù)本發(fā)明的優(yōu)選實施例,所述發(fā)送第一密鑰生成文件和第二密鑰生成文件的步
6驟還包括分別發(fā)送附于每個密鑰生成文件的元數(shù)據(jù)。在本發(fā)明的另一優(yōu)選實施例中,所述元數(shù)據(jù)包括待用于生成所述第一密碼密鑰和所述第二密碼密鑰兩者的常數(shù)。所述元數(shù)據(jù)還可以包括關(guān)于密碼密鑰長度的信息。在另一實施例中,可以在預(yù)定間隔內(nèi)隨機生成所述密鑰長度。根據(jù)本發(fā)明的第四方面,提供一種計算機程序,包括用于當(dāng)該程序在計算機上運行時執(zhí)行上述方法步驟的代碼裝置。根據(jù)本發(fā)明的第五方面,提供一種計算機程序產(chǎn)品,包括存儲在計算機可讀介質(zhì)上的程序代碼裝置,該程序代碼裝置用于當(dāng)所述產(chǎn)品在計算機上運行時執(zhí)行上述方法步
馬聚ο本發(fā)明的巨大益處在于,在希望彼此通信的節(jié)點處生成密鑰,從而無需分發(fā)密鑰。
以下參照附圖描述本發(fā)明,在附圖中圖1是示出根據(jù)本發(fā)明的生成密碼密鑰的方法的流程圖;圖2是從中心服務(wù)器發(fā)送到期望通信的節(jié)點的密鑰生成文件的示例;圖3是用于生成第一中間數(shù)據(jù)集和第二中間數(shù)據(jù)集的常數(shù)的示例;圖4是在第一節(jié)點A處的第一中間數(shù)據(jù)集和在第二節(jié)點B處的第二中間數(shù)據(jù)集的示例;圖5是第一中間數(shù)據(jù)集與第二中間數(shù)據(jù)集的匹配過程以及生成第二節(jié)點B的密碼密鑰的示例;以及圖6是生成第一節(jié)點A的密碼密鑰的示例。
具體實施例方式現(xiàn)在將借助于本發(fā)明的不同實施例來詳細描述本發(fā)明。實施例應(yīng)被視為用于理解本發(fā)明的示例和解釋,而不應(yīng)視為限制。圖1示出根據(jù)本發(fā)明的生成密碼密鑰的方法。整個方法由希望通過利用安全的加密/解密密鑰與彼此建立安全通信的兩個節(jié)點A和B來執(zhí)行。此外,該方法在中心服務(wù)器2 的幫助下執(zhí)行。在圖1中,在左手側(cè)示出第一節(jié)點A,而在右手側(cè)示出第二節(jié)點B,即在虛線的左手側(cè)示出由第一節(jié)點A執(zhí)行的步驟,而在虛線的右手側(cè)示出由第二節(jié)點B執(zhí)行的步驟。 在實踐中,第一節(jié)點A可以是計算機,該計算機的用戶可能希望與在其銀行的計算機(第二節(jié)點B)開始安全通信。對于本領(lǐng)域技術(shù)人員顯而易見的是,第一節(jié)點A和第二節(jié)點B均可以是期望彼此通信的任何通信設(shè)備。中心服務(wù)器2可以是能夠在某種安全證書的幫助下以安全的方式接收和發(fā)送數(shù)據(jù)的任何通信設(shè)備。為了使節(jié)點能夠使用根據(jù)本發(fā)明的密鑰生成方法,節(jié)點需要被授權(quán)與中心服務(wù)器2通信。因此,中心服務(wù)器2跟蹤所有被授權(quán)使用密鑰生成方法的用戶。如以上所提及的那樣,通過使用某種安全證書來保證中心服務(wù)器2與節(jié)點之間或者節(jié)點與中心服務(wù)器2之間的通信。優(yōu)選地,X509證書等被用于安全通信?,F(xiàn)在將以示例的方式描述根據(jù)本發(fā)明的生成加密/解密密鑰的方法。該方法開始于節(jié)點(在本示例中為第一節(jié)點A)向中心服務(wù)器2發(fā)送與第二節(jié)點B建立通信的請求。中心服務(wù)器2首先檢查第一節(jié)點A是否被授權(quán)與第二節(jié)點B建立通信,并且還檢查第二節(jié)點B 是否被授權(quán)與中心服務(wù)器2和第一節(jié)點A通信。如果兩個節(jié)點都被授權(quán)開始彼此通信,則中心服務(wù)器2響應(yīng)于來自第一節(jié)點A的請求,將向第一節(jié)點A發(fā)送第一密鑰生成文件,并向第二節(jié)點B發(fā)送第二密鑰生成文件。圖2示出從中心服務(wù)器向第一節(jié)點A和第二節(jié)點B發(fā)送的密鑰生成文件的示例。 該文件包含處理文件,當(dāng)該處理文件被第一節(jié)點A和第二節(jié)點B執(zhí)行時,將生成加密/解密密鑰。由于在第一節(jié)點A和第二節(jié)點B處的處理不同(這將在下面進行解釋),因此發(fā)送到第一節(jié)點A的處理文件不同于發(fā)送到第二節(jié)點B的處理文件。從圖2中顯而易見的是,密鑰生成文件還包含元數(shù)據(jù)Ml、M2. . . Mn。元數(shù)據(jù)可以包含待用于生成加密/解密密鑰的信息,并且相同的元數(shù)據(jù)將被發(fā)送到第一節(jié)點A和第二節(jié)點B兩者。元數(shù)據(jù)的示例是用于生成密鑰的常數(shù)。圖3示出用于生成在密鑰生成期間使用的第一中間數(shù)據(jù)集和第二中間數(shù)據(jù)集的這種常數(shù)。元數(shù)據(jù)還可以包含待用于比較兩個密鑰生成文件是否具有相同的原點的時間標簽。此外,元數(shù)據(jù)還可以包含關(guān)于待使用的密鑰長度的信息或者關(guān)于密鑰中的應(yīng)當(dāng)用于生成密鑰的位的信息。對于本領(lǐng)域技術(shù)人員顯而易見的是,可以存在若干個可用于進一步增加密鑰生成過程的安全性的其它元數(shù)據(jù)。當(dāng)?shù)谝还?jié)點A和第二節(jié)點B已接收到密鑰生成文件時,每個節(jié)點將開始處理該文件。首先,通過利用如圖3所描繪的常數(shù)的值,第一節(jié)點A將生成第一中間數(shù)據(jù)集,并且第二節(jié)點B將生成第二中間數(shù)據(jù)集。在這種情況下,常數(shù)包含四個二進制位,每個位與字母相關(guān)聯(lián)。該常數(shù)的長度可以任意改變,并且這些位可以與字母、圖、希臘符號等相關(guān)聯(lián)。圖4中示出第一節(jié)點A的第一中間數(shù)據(jù)集和第二節(jié)點B的第二中間數(shù)據(jù)集的示例。通過利用某種已知的偽隨機數(shù)生成器生成中間數(shù)據(jù)集,該偽隨機數(shù)生成器利用在這種情況下生成字母A-D的隨機序列的這種偽隨機算法,例如,Blum Blum Shub, Fortuna或 Mersenne twister (馬特賽特旋轉(zhuǎn)演算法)。在圖4的第一中間數(shù)據(jù)集和第二中間數(shù)據(jù)集的頭部示出字母的隨機序列。因此,為了生成中間數(shù)據(jù)集,首先偽隨機地確定字母的序列, 之后將根據(jù)圖3中的常數(shù)分配與字母相關(guān)聯(lián)的正確值。如果該分配導(dǎo)致例如該中間數(shù)據(jù)集僅產(chǎn)生零或僅產(chǎn)生一,則該結(jié)果可能被濾除并生成新的隨機序列。由于第一中間數(shù)據(jù)集和第二中間數(shù)據(jù)集都是偽隨機地生成的,因此它們將從不相同。在該示例中,中間數(shù)據(jù)集的長度僅為8位,以便易于以示例的方式例示本發(fā)明。然而, 在實踐中,中間數(shù)據(jù)集的長度通常在64位到2048位之間。位長度可以是以上提及的元數(shù)據(jù)的部分,并且可以在每次由節(jié)點提出新的請求時由中心服務(wù)器2隨機設(shè)置。在生成第一中間數(shù)據(jù)集和第二中間數(shù)據(jù)集之后,第一節(jié)點沒有任何保護地,即公開地向第二節(jié)點B發(fā)送第一中間數(shù)據(jù)集。第二節(jié)點B將第一中間數(shù)據(jù)集和第二中間數(shù)據(jù)集彼此進行比較。比較結(jié)果在圖5 所示的表中稱為匹配1。值A(chǔ)和值B分別對應(yīng)于第一中間數(shù)據(jù)集和第二中間數(shù)據(jù)集。該比較是逐位比較,并且如果第一數(shù)據(jù)集位和第二數(shù)據(jù)集位的值分別相等,則結(jié)果為True (真), 如果第一數(shù)據(jù)集位和第二數(shù)據(jù)集位的值不相等,則結(jié)果為Flase (假)。比較結(jié)果(匹配1) 通過在比較位相等的情況下設(shè)置第一值,而在比較位不相等的情況下設(shè)置第二值,用來創(chuàng)建新的第三中間數(shù)據(jù)集(值1)。在這種情況下,當(dāng)比較位相等時使用1,而在位不相等的情況下使用0。然而,在不背離本發(fā)明的前提下,也可以使用其它方式。然后,第三中間數(shù)據(jù)集從第二節(jié)點B向第一節(jié)點A公開地發(fā)送。然后,第一節(jié)點A 基于第三中間數(shù)據(jù)集與第一中間數(shù)據(jù)集之間的逐位比較,通過在第三中間數(shù)據(jù)集的對應(yīng)位被設(shè)置為第一值的情況下保持第一數(shù)據(jù)集的位值,而在第三中間數(shù)據(jù)集的對應(yīng)位被設(shè)置為第二值的情況下忽略第一中間數(shù)據(jù)集的位,來生成第一密碼密鑰。在圖6所示的這種情況下,第一值對應(yīng)于1且第二值對應(yīng)于0。圖6中顯而易見的是,密鑰包括四位來代替原始的八位,因為在生成密鑰期間已有四位被忽略。如以上提及的那樣,第一中間數(shù)據(jù)集和第三中間數(shù)據(jù)集都是公開發(fā)送的。即便它們被偵聽,第三方也無法利用該數(shù)據(jù)生成密鑰,因為第三數(shù)據(jù)集中的1值并不真地表示值 1,而只是表示第一數(shù)據(jù)集和第二數(shù)據(jù)集具有相同的值。因此,第三數(shù)據(jù)集中的1實際上可能是1或0。在節(jié)點B中,基于第一中間數(shù)據(jù)集和第二中間數(shù)據(jù)集之間的逐位比較,見圖5,通過在第一中間數(shù)據(jù)集的對應(yīng)位相等的情況下保持第二數(shù)據(jù)集的位值,而在比較位不相等的情況下忽略第二中間數(shù)據(jù)集的位,來生成第二密碼密鑰。可以看出,所述第一密碼密鑰和第二密碼密鑰是相同的密鑰。然后,這些密鑰可以用于在第一節(jié)點A與第二節(jié)點B之間發(fā)送的信息的加密/解密。通過根據(jù)本發(fā)明的方法生成的密鑰可以與任何已知的加密方法一起使用。因此,本發(fā)明并不致力于如何進行加密/解密,而是致力于密碼密鑰的生成。只要在第一節(jié)點與第二節(jié)點之間的通信會話是活躍的,所生成的密鑰就將是有效的。此外,當(dāng)?shù)谝还?jié)點A和第二節(jié)點B已生成密鑰時,中心服務(wù)器所接收的密鑰生成文件將在各個節(jié)點中被刪除。現(xiàn)在已詳細地描述了本發(fā)明的整個方法。然而,本發(fā)明還涉及一種在第一節(jié)點A 處生成加密/解密密鑰的方法。該方法是以上所述的整個方法的子集,因此將簡要地進行描述。由第一節(jié)點執(zhí)行的方法開始于向中心服務(wù)器2發(fā)送與第二節(jié)點B建立安全通信的請求。然后,第一節(jié)點從中心服務(wù)器2接收第一密鑰生成文件,并開始對該文件進行處理。這將生成第一中間數(shù)據(jù)集,如以上所提及的那樣,該第一中間數(shù)據(jù)集被發(fā)送到第二節(jié)點B。然后,第一節(jié)點A將從第二節(jié)點B接收第三中間數(shù)據(jù)集,并將第三中間數(shù)據(jù)集的位與第一中間數(shù)據(jù)集的對應(yīng)位進行比較。第一節(jié)點A將基于第三中間數(shù)據(jù)集與第一中間數(shù)據(jù)集之間的逐位比較,通過在第三中間數(shù)據(jù)集的對應(yīng)位被設(shè)置為第一值的情況下保持第一數(shù)據(jù)集的位值,而在第三中間數(shù)據(jù)集的對應(yīng)位被設(shè)置為第二值的情況下忽略第一中間數(shù)據(jù)集的位,來生成第一加密密鑰。并且,第二節(jié)點B將執(zhí)行整個方法的子集,現(xiàn)在將對其進行簡要描述。在第二節(jié)點 B中生成加密/解密密鑰的方法開始于第二節(jié)點B從中心服務(wù)器2接收第二密鑰生成文件, 并開始對該文件進行處理。這將生成第二中間數(shù)據(jù)集。之后,第二節(jié)點B將從第一節(jié)點A接收第一中間數(shù)據(jù)集,并將第一中間數(shù)據(jù)集的位與第二中間數(shù)據(jù)集的對應(yīng)位進行比較。之后, 第二節(jié)點B將基于第一中間數(shù)據(jù)集與第二中間數(shù)據(jù)集之間的逐位比較,通過在比較位相等的情況下設(shè)置第一值,而在比較位不相等的情況下設(shè)置第二值,來創(chuàng)建新的第三中間數(shù)據(jù)集。然后,將第三中間數(shù)據(jù)集發(fā)送到第一節(jié)點A。然后,第二節(jié)點B基于第一中間數(shù)據(jù)集和第二中間數(shù)據(jù)集之間的逐位比較,通過在第一中間數(shù)據(jù)集的對應(yīng)位相等的情況下保持第二數(shù)據(jù)集的位值,而在比較位不相等的情況下忽略第二中間數(shù)據(jù)集的位,來生成第二加密密鑰。因此,利用以上所述的方法可以以容易且安全的方式在使用密碼密鑰的地方,即在節(jié)點處生成該密碼密鑰。由于不再需要分發(fā)密鑰,因此這是非常有益的。該密鑰是一次性的,并且僅針對一次通信會話且在該通信會話活躍期間有效。此外,在兩個分離節(jié)點處以兩個獨立的過程生成密鑰。即便相信以上方法是非常安全的,也可以通過利用附于密鑰生成文件的元數(shù)據(jù)來進一步提高安全性。例如,元數(shù)據(jù)可以規(guī)定,僅密鑰生成過程的結(jié)果的每第三位或每第二位應(yīng)當(dāng)用作密鑰。元數(shù)據(jù)的類似應(yīng)用還可以規(guī)定,當(dāng)?shù)谝还?jié)點A和第二節(jié)點B在密鑰生成過程期間彼此通信時,應(yīng)當(dāng)僅讀取每第三位或每第二位。應(yīng)當(dāng)理解,盡管參照優(yōu)選實施例對本發(fā)明進行了描述,但是本發(fā)明不限于此。還存在很多其它的同樣在本發(fā)明范圍內(nèi)的實施例和變體,本發(fā)明的范圍通過所附權(quán)利要求得到最好的限定。
權(quán)利要求
1.一種生成加密/解密密鑰的方法,該方法可用于第一節(jié)點(A)與第二節(jié)點(B)之間的安全通信,所述方法包括以下步驟從所述第一節(jié)點(A)向中心服務(wù)器( 發(fā)送與所述第二節(jié)點(B)建立通信的請求; 響應(yīng)于來自所述第一節(jié)點㈧的請求,從所述中心服務(wù)器⑵向所述第一節(jié)點㈧發(fā)送第一密鑰生成文件并且向所述第二節(jié)點(B)發(fā)送第二密鑰生成文件;在所述第一節(jié)點(A)上開始處理所述第一密鑰生成文件,并且在所述第二節(jié)點(B)上開始處理所述第二密鑰生成文件;在所述第一節(jié)點(A)處生成第一中間數(shù)據(jù)集,并且在所述第二節(jié)點(B)處生成第二中間數(shù)據(jù)集;從所述第一節(jié)點(A)向所述第二節(jié)點(B)發(fā)送所述第一中間數(shù)據(jù)集; 將所述第一中間數(shù)據(jù)集的位與所述第二中間數(shù)據(jù)集的對應(yīng)位進行比較; 基于所述第一中間數(shù)據(jù)集與所述第二中間數(shù)據(jù)集之間的逐位比較,通過在被比較的位相等的情況下設(shè)置第一值,而在被比較的位不相等的情況下設(shè)置第二值,來創(chuàng)建新的第三中間數(shù)據(jù)集;從所述第二節(jié)點(B)向所述第一節(jié)點(A)發(fā)送所述第三中間數(shù)據(jù)集; 將所述第三中間數(shù)據(jù)集的位與所述第一中間數(shù)據(jù)集的對應(yīng)位進行比較; 基于所述第三中間數(shù)據(jù)集與所述第一中間數(shù)據(jù)集之間的逐位比較,通過在所述第三中間數(shù)據(jù)集的對應(yīng)位被設(shè)置為所述第一值的情況下保持所述第一數(shù)據(jù)集的位值,而在所述第三中間數(shù)據(jù)集的對應(yīng)位被設(shè)置為所述第二值的情況下忽略所述第一中間數(shù)據(jù)集的位,來生成第一密碼密鑰;基于所述第一中間數(shù)據(jù)集與所述第二中間數(shù)據(jù)集之間的逐位比較,通過在所述第一中間數(shù)據(jù)集的對應(yīng)位相等的情況下保持所述第二數(shù)據(jù)集的位值,而在被比較的位不相等的情況下忽略所述第二中間數(shù)據(jù)集的位,來生成第二密碼密鑰,所述第一密碼密鑰與所述第二密碼密鑰相同。
2.根據(jù)權(quán)利要求1所述的方法,其中向所述第一節(jié)點(A)發(fā)送所述第一密鑰生成文件并且向所述第二節(jié)點(B)發(fā)送所述第二密鑰生成文件的步驟還包括分別發(fā)送附于每個密鑰生成文件的元數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的方法,其中所述元數(shù)據(jù)包括用于生成所述第一密碼密鑰和所述第二密碼密鑰兩者的常數(shù)。
4.根據(jù)權(quán)利要求2或3所述的方法,其中所述元數(shù)據(jù)包括關(guān)于密碼密鑰長度的信息。
5.根據(jù)權(quán)利要求4所述的方法,進一步包括以下步驟在預(yù)定間隔內(nèi)隨機生成所述密碼密鑰長度。
6.一種在第一節(jié)點(A)中生成加密/解密密鑰的方法,該方法可用于所述第一節(jié)點 (A)與第二節(jié)點(B)之間的安全通信,所述方法包括以下步驟向中心服務(wù)器( 發(fā)送與所述第二節(jié)點(B)建立安全通信的請求; 響應(yīng)于所述請求,從所述中心服務(wù)器( 接收第一密鑰生成文件; 處理所述第一密鑰生成文件; 生成第一中間數(shù)據(jù)集;向所述第二節(jié)點(B)發(fā)送所述第一中間數(shù)據(jù)集;從所述第二節(jié)點(B)接收第三中間數(shù)據(jù)集;將所述第三中間數(shù)據(jù)集的位與所述第一中間數(shù)據(jù)集的對應(yīng)位進行比較; 基于所述第三中間數(shù)據(jù)集與所述第一中間數(shù)據(jù)集之間的逐位比較,通過在所述第三中間數(shù)據(jù)集的對應(yīng)位被設(shè)置為第一值的情況下保持所述第一數(shù)據(jù)集的位值,而在所述第三中間數(shù)據(jù)集的對應(yīng)位被設(shè)置為第二值的情況下忽略所述第一中間數(shù)據(jù)集的位,來生成第一密碼密鑰。
7.根據(jù)權(quán)利要求6所述的方法,其中所述接收第一密鑰生成文件的步驟還包括接收附于所述文件的元數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的方法,其中所述元數(shù)據(jù)包括待用于生成所述第一密碼密鑰的常數(shù)。
9.根據(jù)權(quán)利要求7或8所述的方法,其中所述元數(shù)據(jù)包括關(guān)于密碼密鑰長度的信息。
10.一種在第二節(jié)點(B)中生成加密/解密密鑰的方法,該方法可用于第一節(jié)點(A)與所述第二節(jié)點(B)之間的安全通信,所述方法包括以下步驟響應(yīng)于來自所述第一節(jié)點(A)的開始所述第一節(jié)點(A)與所述第二節(jié)點(B)之間的安全通信的請求,從中心服務(wù)器( 接收第二密鑰生成文件; 處理所述第二密鑰生成文件; 生成第二中間數(shù)據(jù)集; 從所述第一節(jié)點(A)接收第一中間數(shù)據(jù)集;將所述第一中間數(shù)據(jù)集的位與所述第二中間數(shù)據(jù)集的對應(yīng)位進行比較; 基于所述第一中間數(shù)據(jù)集與所述第二中間數(shù)據(jù)集之間的逐位比較,通過在被比較的位相等的情況下設(shè)置第一值,而在被比較的位不相等的情況下設(shè)置第二值,來創(chuàng)建新的第三中間數(shù)據(jù)集;向所述第一節(jié)點(A)發(fā)送所述第三中間數(shù)據(jù)集;基于所述第一中間數(shù)據(jù)集與所述第二中間數(shù)據(jù)集之間的逐位比較,通過在所述第一中間數(shù)據(jù)集的對應(yīng)位相等的情況下保持所述第二數(shù)據(jù)集的位值,而在被比較的位不相等的情況下忽略所述第二中間數(shù)據(jù)集的位,來生成第二密碼密鑰。
11.根據(jù)權(quán)利要求10所述的方法,其中所述接收第二密鑰生成文件的步驟還包括接收附于所述文件的元數(shù)據(jù)。
12.根據(jù)權(quán)利要求11所述的方法,其中所述元數(shù)據(jù)包括待用于生成所述第二密碼密鑰的常數(shù)。
13.根據(jù)權(quán)利要求10或11所述的方法,其中所述元數(shù)據(jù)包括關(guān)于密碼密鑰長度的信肩、ο
14.一種計算機程序,包括用于當(dāng)該程序在計算機上運行時執(zhí)行權(quán)利要求1-13中任一項所述的步驟的代碼裝置。
15.一種計算機程序產(chǎn)品,包括存儲在計算機可讀介質(zhì)上的程序代碼裝置,該程序代碼裝置用于當(dāng)所述產(chǎn)品在計算機上運行時執(zhí)行權(quán)利要求1-13中任一項所述的方法。
全文摘要
本發(fā)明涉及一種生成加密/解密密鑰的方法,具體涉及一種生成用于對稱加密(即其中加密和解密均使用同一密鑰)的一次性加密/解密密鑰的方法。為了開始生成密鑰,第一節(jié)點(A)向中心服務(wù)器(2)發(fā)送與第二節(jié)點(B)建立通信的請求。中心服務(wù)器(2)向節(jié)點(A和B)發(fā)送密鑰生成文件。每個節(jié)點生成不同的中間數(shù)據(jù)集,即第一數(shù)據(jù)集和第二數(shù)據(jù)集。由第一節(jié)點(A)生成的第一數(shù)據(jù)集被發(fā)送到第二節(jié)點(B),第二節(jié)點(B)基于該數(shù)據(jù)集生成第三數(shù)據(jù)集,并將第三數(shù)據(jù)集發(fā)回第一節(jié)點。在節(jié)點(A)中基于第三中間數(shù)據(jù)集與第一中間數(shù)據(jù)集之間的逐位比較生成第一密碼密鑰,并且基于第一中間數(shù)據(jù)集與第二中間數(shù)據(jù)集之間的逐位比較生成第二密碼密鑰。第一密碼密鑰和第二密碼密鑰相同。
文檔編號H04L9/08GK102227887SQ201080003360
公開日2011年10月26日 申請日期2010年7月5日 優(yōu)先權(quán)日2009年7月3日
發(fā)明者埃利塞·雷維爾 申請人:凱里賽克公司