專利名稱:以對等方式安全地發(fā)送和接收數(shù)據(jù)的設(shè)備和方法
技術(shù)領(lǐng)域:
與本發(fā)明一致的方法和設(shè)備涉及在嵌入式裝置間安全地發(fā)送和接收數(shù)據(jù)。
背景技術(shù):
圖1是示出傳統(tǒng)數(shù)據(jù)安全方法的流程圖。參照圖1,在操作101中,第一認(rèn)證授權(quán)3通過未公開的路徑將認(rèn)證發(fā)放給客戶機1或者更新或者無效發(fā)放給客戶機1的認(rèn)證。在操作102中,客戶機從認(rèn)證授權(quán)3下載(操作101中)被發(fā)放的被更新的認(rèn)證。在操作103,客戶機使用包括在下載的認(rèn)證中的公開密鑰將源數(shù)據(jù)加密。在操作104中,客戶機1將包含加密的源數(shù)據(jù)的源數(shù)據(jù)密文發(fā)送到服務(wù)器2,并且服務(wù)器2接收所述源數(shù)據(jù)密文。
在操作105中,服務(wù)器2在數(shù)據(jù)庫中搜索包含將包括在源數(shù)據(jù)密文中的加密的源數(shù)據(jù)解密所需要的私有密鑰的認(rèn)證。在操作106中,如果包含將加密的源數(shù)據(jù)解密所需要的私有密鑰的認(rèn)證不存在于所述數(shù)據(jù)庫中,則服務(wù)器2將對認(rèn)證的請求發(fā)放到第二認(rèn)證授權(quán)4,并且通過將第一認(rèn)證授權(quán)3發(fā)放的認(rèn)證通過未公開的路徑發(fā)送到第一認(rèn)證授權(quán)3,將認(rèn)證服務(wù)提供給第一認(rèn)證授權(quán)3。
在操作107中,第二認(rèn)證授權(quán)4響應(yīng)在操作106中服務(wù)器2發(fā)放的請求,發(fā)放將被發(fā)放到第一認(rèn)證授權(quán)3的對認(rèn)證的請求,并且第一認(rèn)證授權(quán)3響應(yīng)第二認(rèn)證授權(quán)4發(fā)放的請求,通過未公開的路徑將認(rèn)證發(fā)放給第二認(rèn)證授權(quán)4。
在操作108中,服務(wù)器2通過使用包括在找到的認(rèn)證中或者包括在操作107中發(fā)放的認(rèn)證中的私有密鑰將加密的源數(shù)據(jù)解密來恢復(fù)源數(shù)據(jù)。在操作109中,服務(wù)器2處理恢復(fù)的源數(shù)據(jù)。在操作110中,服務(wù)器2使用包括在操作105中找到的認(rèn)證中或者包括在操作107中發(fā)放的認(rèn)證中的公有密鑰加密處理的源數(shù)據(jù),從而生成加密的結(jié)果數(shù)據(jù)。在操作111中,服務(wù)器2將包含加密的結(jié)果數(shù)據(jù)的結(jié)果數(shù)據(jù)密文發(fā)送到客戶機1,并且客戶機1接收所述結(jié)果數(shù)據(jù)密文。
在操作112中,客戶機通過使用包括在下載的認(rèn)證中的私有密鑰將包括在結(jié)果數(shù)據(jù)密文中的加密的結(jié)果數(shù)據(jù)解密來恢復(fù)結(jié)果數(shù)據(jù)。
如上所述,傳統(tǒng)地,為了增強數(shù)據(jù)的安全性,使用包含公有密鑰和私有密鑰的非對稱密鑰對對數(shù)據(jù)進(jìn)行加密或者解密。但是,非對稱密鑰對加密算法非常復(fù)雜并且需要高性能的加密系統(tǒng)。因此,很難將這種傳統(tǒng)的數(shù)據(jù)安全技術(shù)應(yīng)用到低性能的嵌入式裝置。
近來,已經(jīng)提出了一種數(shù)據(jù)加密/解密方法,在所述方法中,基于非對稱密鑰對算法在裝置間共享對稱密鑰并且使用所述對稱密鑰對數(shù)據(jù)進(jìn)行加密或者解密。但是,由于這些數(shù)據(jù)加密/解密方法涉及與如圖1中所示的從操作101到操作112相似的加密/解密對稱密鑰的步驟,所以所述的數(shù)據(jù)加密/解密方法仍然需要能夠安全地分布非對稱密鑰對的認(rèn)證授權(quán)。因此,仍然難于將所述加密/解密方法應(yīng)用到不能被連接到認(rèn)證授權(quán)的以對等方式進(jìn)行彼此通信的嵌入式裝置。
發(fā)明內(nèi)容
本發(fā)明的一方面提供一種用于在以對等方式彼此通信的嵌入式裝置之間安全地發(fā)送數(shù)據(jù)的方法和設(shè)備。
本發(fā)明的一方面提供一種用于存儲執(zhí)行在以對等方式彼此通信的嵌入式裝置之間安全地發(fā)送數(shù)據(jù)的方法的計算機程序的計算機可讀記錄介質(zhì)。
根據(jù)本發(fā)明的一方面,提供一種安全地將數(shù)據(jù)發(fā)送到裝置的方法。所述方法包括發(fā)放對在與裝置的會話中使用的會話密鑰的請求;通過對包括在對所述請求的響應(yīng)中的加密的會話密鑰進(jìn)行解密來恢復(fù)所述會話密鑰;使用恢復(fù)的會話密鑰對數(shù)據(jù)進(jìn)行加密;和發(fā)送所述加密的數(shù)據(jù)。
根據(jù)本發(fā)明的另一方面,提供一種安全地將數(shù)據(jù)發(fā)送到裝置的設(shè)備。所述設(shè)備包括發(fā)送單元,發(fā)送用于請求在與裝置的會話中使用的會話密鑰的請求令牌;第一解密單元,通過對包括在與請求令牌相應(yīng)的響應(yīng)令牌中的加密會話密鑰進(jìn)行解密來恢復(fù)所述會話密鑰;和加密單元,使用恢復(fù)的會話密鑰對數(shù)據(jù)進(jìn)行加密,其中,發(fā)送單元用于發(fā)送所述加密的數(shù)據(jù)。
根據(jù)本發(fā)明的另一方面,提供一種用于存儲執(zhí)行安全地將數(shù)據(jù)發(fā)送到裝置的方法的計算機程序的計算機可讀記錄介質(zhì),所述方法包括發(fā)放對在與裝置的會話中使用的會話密鑰的請求;通過對包括在對所述請求的響應(yīng)中的加密的會話密鑰進(jìn)行解密來恢復(fù)所述會話密鑰;使用恢復(fù)的會話密鑰對數(shù)據(jù)進(jìn)行加密;和發(fā)送所述加密的數(shù)據(jù)。
根據(jù)本發(fā)明的另一方面,提供一種用于從裝置安全地接收數(shù)據(jù)的方法,所述方法包括接收對在與裝置的會話中使用的會話密鑰的請求;發(fā)送加密的會話密鑰以響應(yīng)所述請求;和接收使用從加密的會話密鑰恢復(fù)的會話密鑰加密的加密數(shù)據(jù)。
根據(jù)本發(fā)明的另一方面,提供一種用于安全地從裝置接收數(shù)據(jù)的設(shè)備,所述設(shè)備包括接收單元,接收用于請求在與裝置的會話中使用的會話密鑰的請求令牌;和發(fā)送單元,發(fā)送包含加密的會話密鑰的相應(yīng)令牌以響應(yīng)于所述請求令牌,其中,接收單元接收包含使用從包括在所述響應(yīng)令牌中的加密的會話密鑰中恢復(fù)的會話密鑰加密的加密數(shù)據(jù)的密文。
根據(jù)本發(fā)明的另一方面,提供一種存儲用于執(zhí)行所述安全地從裝置接收數(shù)據(jù)的方法的計算機程序的計算機可讀存儲介質(zhì),所述方法包括接收用于在與裝置的會話中使用的會話密鑰的請求;發(fā)送響應(yīng)于所述請求的加密的會話密鑰;和接收使用從加密的會話密鑰恢復(fù)的會話密鑰加密的加密數(shù)據(jù)。
通過參照附圖對本發(fā)明示例性實施例的詳細(xì)描述,本發(fā)明的各方面將變得更加清楚,其中圖1是示出傳統(tǒng)數(shù)據(jù)安全方法的流程圖;圖2是示出根據(jù)本發(fā)明示例性實施例的安全地發(fā)送和接收數(shù)據(jù)的方法的流程圖;圖3是根據(jù)本發(fā)明示例性實施例的第一裝置的框圖;圖4是示出根據(jù)本發(fā)明示例性實施例的非對稱密鑰對的格式的示圖;圖5是示出根據(jù)本發(fā)明示例性實施例的會話密鑰請求令牌的格式的示圖;圖6是示出根據(jù)本發(fā)明示例性實施例的由第一裝置使用的會話密鑰數(shù)據(jù)塊的格式的示圖;圖7是示出根據(jù)本發(fā)明示例性實施例的源數(shù)據(jù)密文的格式的示圖;圖8是根據(jù)本發(fā)明示例性實施例的第二裝置的框圖;圖9是示出根據(jù)本發(fā)明示例性實施例的由第二裝置使用的會話密鑰數(shù)據(jù)塊的格式的示圖;圖10是示出根據(jù)本發(fā)明示例性實施例的會話密鑰響應(yīng)令牌的格式的示圖;圖11是示出根據(jù)本發(fā)明另一示例性實施例的源數(shù)據(jù)密文的格式的示圖;圖12是示出根據(jù)本發(fā)明示例性實施例的安全地發(fā)送數(shù)據(jù)的方法的流程圖;圖13A和圖13B是示出根據(jù)本發(fā)明示例性實施例的安全的發(fā)送數(shù)據(jù)的方法的流程圖。
具體實施例方式
現(xiàn)在將參照示出本發(fā)明示例性實施例的附圖,對本發(fā)明進(jìn)行更全面的描述。
圖2是示出根據(jù)本發(fā)明示例性實施例的安全地發(fā)送和接收數(shù)據(jù)的方法的流程圖。參照圖2,在操作201中,第一裝置5生成非對稱密鑰對。根據(jù)本發(fā)明示當(dāng)前例性實施例,如果第一裝置5已具有適當(dāng)?shù)姆菍ΨQ密鑰對,則在操作201中它可直接使用這個非對稱密鑰對而不是生成新的非對稱密鑰對。
在操作202中,第一裝置5將用于請求將在第一裝置5和第二裝置6之間的會話中使用的會話密鑰的會話密鑰請求令牌發(fā)送到第二裝置6,并且第二裝置6接收第一裝置5發(fā)送的會話密鑰請求令牌。根據(jù)本發(fā)明當(dāng)前示例性實施例,所述在第一裝置5和第二裝置6之間的會話中使用的會話密鑰是對稱密鑰。第一裝置5發(fā)送的會話密鑰請求令牌包括第一裝置5生成的非對稱密鑰對的公有密鑰。
在操作203中,第二裝置6響應(yīng)第一裝置5發(fā)送的會話密鑰請求令牌生成會話密鑰。根據(jù)本發(fā)明當(dāng)前示例性實施例,如果第二裝置6已具有適當(dāng)?shù)臅捗荑€,則在操作203中第二裝置6可直接使用已有的適當(dāng)?shù)臅捗荑€而不是生成的新的會話密鑰。
在操作204中,第二裝置6使用包括在第一裝置5發(fā)送的會話密鑰請求令牌中的公有密鑰將在操作203中生成的會話密鑰加密。
在操作205中,第二裝置6響應(yīng)第一裝置5發(fā)送的會話密鑰請求令牌,將會話密鑰響應(yīng)令牌發(fā)送到第一裝置5,并且第一裝置5接收由第二裝置6發(fā)送的會話密鑰響應(yīng)令牌。第二裝置6發(fā)送的會話密鑰響應(yīng)令牌包括在操作204由第二裝置6獲得的加密的會話密鑰。
在操作206中,第一裝置5使用由第一裝置5生成的非對稱密鑰對的私有密鑰將包括在由第二裝置6發(fā)送的會話密鑰響應(yīng)令牌中的加密的會話密鑰解密,從而恢復(fù)將在第一裝置5和第二裝置6的會話中使用的會話密鑰。
執(zhí)行從操作201到206,以在第一裝置5和第二裝置6之間基于非對稱密鑰算法共享會話密鑰。根據(jù)本發(fā)明當(dāng)前示例性實施例,通過僅將可被安全地向外公開的公有密鑰發(fā)送到第二裝置6,第一裝置5可與第二裝置6安全地共享會話密鑰。換句話說,第二裝置6不需要由第一裝置5生成的非對稱密鑰對的私有密鑰來共享第一裝置5的會話密鑰。其結(jié)果是,可以使嵌入式裝置無需通過未對外公開的路徑從裝備有集中式安全服務(wù)器的認(rèn)證授權(quán)獲取私有密鑰而以對等方式彼此通信。
在操作207中,第一裝置5使用在操作206恢復(fù)的會話密鑰對將被發(fā)送到第二裝置6的源數(shù)據(jù)進(jìn)行加密。
在操作208中,第一裝置5將包含加密的源數(shù)據(jù)的源數(shù)據(jù)密文發(fā)送到第二裝置6,并且第二裝置6接收由第一裝置5發(fā)送的所述源數(shù)據(jù)密文。
在操作209中,第二裝置6使用由第二裝置6生成的會話密鑰通過將包括在由第一裝置5發(fā)送的源數(shù)據(jù)密文中的加密的源數(shù)據(jù)解密來恢復(fù)源數(shù)據(jù)。
在操作210中,第二裝置6處理所述恢復(fù)的源數(shù)據(jù)。
在操作211中,第二裝置6使用在操作209中使用的會話密鑰對處理的源數(shù)據(jù)進(jìn)行加密,從而生成加密的結(jié)果數(shù)據(jù)。
在操作212中,第二裝置6將包含加密的結(jié)果的結(jié)果數(shù)據(jù)密文發(fā)送到第一裝置5,并且第一裝置5接收所述結(jié)果數(shù)據(jù)密文。
在操作213中,第一裝置5通過使用在操作206中恢復(fù)的會話密鑰將包括在結(jié)果數(shù)據(jù)密文中的加密的結(jié)果數(shù)據(jù)進(jìn)行解密來恢復(fù)結(jié)果數(shù)據(jù)。
執(zhí)行從操作207到操作213,以在第一裝置5和第二裝置6之間安全地傳輸數(shù)據(jù)。雖然圖2的方法已被描述為僅包括在第一裝置5和第二裝置6之間發(fā)送數(shù)據(jù)的單一操作,但是根據(jù)本發(fā)明示例性實施例,第一裝置5和第二裝置6可使用在其間共享的會話密鑰在彼此間多于一次地發(fā)送數(shù)據(jù)并接收數(shù)據(jù)。
根據(jù)本發(fā)明當(dāng)前示例性實施例,第一裝置5和第二裝置6最初使用非對稱密鑰算法以在彼此間共享會話密鑰,隨后使用對稱密鑰算法在彼此間發(fā)送數(shù)據(jù)并接收數(shù)據(jù)。因此,因為對稱密鑰算法更加簡單,所以可最小化系統(tǒng)的數(shù)據(jù)安全維持負(fù)載,因此,和非對稱密鑰算法相比系統(tǒng)的負(fù)擔(dān)較少。
如上所述,在沒有認(rèn)證授權(quán)的幫助下,兩個嵌入式裝置執(zhí)行從操作201到203,因此,無需考慮認(rèn)證授權(quán)從外部強加的限制,圖2的方法可以自由地在兩個嵌入式裝置中被執(zhí)行。
圖3是根據(jù)本發(fā)明示例性實施例的第一裝置5的框圖。參照圖3,第一裝置5包括非對稱密鑰對生成單元51、數(shù)據(jù)庫52、會話密鑰請求令牌生成單元53、第一解密單元54、加密單元55、源數(shù)據(jù)密文生成單元56、第二解密單元57、發(fā)送單元58和接收單元59。
非對稱密鑰對生成單元51生成包含公有密鑰和私有密鑰的非對稱密鑰對。非對稱密鑰對和關(guān)于非對稱密鑰對的信息被存儲在數(shù)據(jù)庫52中。在生成非對稱密鑰對之后,非對稱密鑰對僅被允許在預(yù)定時間段內(nèi)使用,所述預(yù)定時間段是指非對稱密鑰對的有效期。通過以這種方式調(diào)節(jié)非對稱密鑰對的使用,可減少非對稱密鑰對被偶然地公開的可能性。
具體地說,非對稱密鑰對生成單元51檢查存儲在數(shù)據(jù)庫52中的多個非對稱密鑰對,并且確定是否每個存儲在數(shù)據(jù)庫52中的非對稱密鑰對都是有效的。此后,非對稱密鑰對生成單元51從數(shù)據(jù)庫52中提取被確定為有效的非對稱密鑰對。另一方面,如果沒有存儲在數(shù)據(jù)庫52中的非對稱密鑰對都是無效的,則非對稱密鑰對生成單元51生成新的非對稱密鑰對。
數(shù)據(jù)庫52存儲多個非對稱密鑰對以及關(guān)于各非對稱密鑰對的多條非對稱密鑰對的信息。具體地說,數(shù)據(jù)庫52在非對稱密鑰對數(shù)據(jù)塊的單元中存儲非對稱密鑰對以及多條非對稱密鑰對的信息。存儲在數(shù)據(jù)庫52中的非對稱密鑰對信息的示例可包括,例如指定非對稱密鑰對的有效期的信息,所述有效期的信息由預(yù)定開始時間和預(yù)定結(jié)束時間確定。
圖4是根據(jù)本發(fā)明示例性實施例的示出非對稱密鑰對數(shù)據(jù)塊的格式的示圖。參照圖4,所述非對稱密鑰對包括校驗和字段401、公有密鑰字段402、私有密鑰字段403、時間戳字段404、有效期字段405和算法比特字段406。例如,可使用如在圖4中所示的C語言定義所述非對稱密鑰對數(shù)據(jù)塊。
非對稱密鑰對的校驗和值被記錄在校驗和字段401。所述校驗和字段401是用于確定在將非對稱密鑰對從第一裝置5發(fā)送到第二裝置6之前,所述非對稱密鑰對是否被損壞。公有密鑰值,即,關(guān)于非對稱密鑰對中的公有密鑰的值,被記錄在公有密鑰字段402中。私有密鑰值,即,關(guān)于非對稱密鑰對中的私有密鑰的值,被記錄在私有密鑰字段403中。非對稱密鑰對的有效期的開始時間被記錄在時間戳字段404。非對稱密鑰對的有效期的結(jié)束時間被記錄在有效期字段405??墒褂妙A(yù)定的非對稱密鑰加密算法處理的對數(shù)據(jù)塊的比特大小被記錄在算法比特字段406中。一般來說,數(shù)據(jù)塊的比特大小可根據(jù)不同的加密算法而不同,因此,記錄在算法比特字段406中的值可被用于識別加密算法的類型。
參照圖3,會話密鑰請求令牌生成單元53生成請求將在第一裝置5與第二裝置6之間的會話中使用的會話密鑰的會話密鑰請求令牌。具體地說,會話密鑰請求令牌生成單元53生成會話密鑰請求令牌,所述會話密鑰包含由非對稱密鑰對生成單元51在數(shù)據(jù)庫52中找到的非對稱密鑰對中的公有密鑰或者包含由非對稱密鑰對生成單元51生成的非對稱密鑰對中的公有密鑰。包括在會話密鑰請求令牌中的所述公有密鑰由第二裝置6使用以將會話密鑰加密。
圖5是示出根據(jù)本發(fā)明示例性實施例的會話密鑰請求令牌的格式的示圖。參照圖5,會話密鑰請求令牌包括命令字段501、密鑰交換類型字段502、算法比特字段503、會話標(biāo)識符字段504和令牌消息字段505。例如,可使用在圖5中示出的C語言定義所述會話密鑰請求令牌。
在第一裝置5和第二裝置6的會話期間從第一裝置5發(fā)送到第二裝置6的令牌的命令值,即,指示該令牌是用于向第二裝置6發(fā)放請求的令牌,還是由第二裝置6發(fā)放的響應(yīng)請求的令牌的值,被記錄在命令字段501中。由此,在此例中,會話密鑰請求令牌是用于向第二裝置6發(fā)放請求的令牌,指示所述會話密鑰請求令牌是用于向第二裝置6發(fā)放請求的值被記錄在命令字段501。
識別用于在第一裝置5和第二裝置6之間交換公有密鑰的非對稱密鑰加密算法的值,即,指示公有密鑰基礎(chǔ)設(shè)施(PKI)算法或者Diffie Hellman(DH)算法被用于在第一裝置5和第二裝置6之間交換公有密鑰的值,被記錄在密鑰交換類型字段502中。例如,可使用如圖5中所示的C語言來定義密鑰交換類型字段502,并且其包括字段key_ex_type,在其中記錄了指示為了使用公有密鑰基礎(chǔ)設(shè)施(PKI)算法還是使用Diffie Hellman算法在第一裝置5和第二裝置6之間交換公有密鑰的值;和字段PKI_DH_CTX,在其中記錄了指定以PKI算法或者DH算法如何在第一裝置5和第二裝置6之間交換公有密鑰的信息。例如,如圖5中所示,所述字段PKI_DH_CTX可使用C語言來定義,并且其包括PKI_CTX字段,在其中存儲了指示PKI算法中如何在第一裝置5和第二裝置6之間交換公有密鑰的信息;和DH_CTX字段,在其中存儲了指示在DH算法中如何在第一裝置5和第二裝置6之間交換公有密鑰的信息。
可使用由密鑰交換類型字段502的值識別的非對稱密鑰加密算法來處理的數(shù)據(jù)塊的比特大小被存儲在算法比特字段503中。第一裝置5和第二裝置6之間的會話的會話標(biāo)識符被記錄在會話標(biāo)識符字段504中。令牌消息,即通過由會話密鑰請求令牌傳送的實際需要從第一裝置5被發(fā)送到第二裝置6的消息被存儲在令牌消息字段505中。根據(jù)本發(fā)明示例性實施例,將由第二裝置6用來將會話密鑰加密的公有密鑰作為令牌信息被存儲在令牌消息字段505。
參照圖3,第一解密單元54根據(jù)由會話密鑰響應(yīng)令牌的密鑰交換字段和算法比特字段的值識別的非對稱密鑰加密算法,使用與包括在會話密鑰請求令牌的令牌消息字段505中的公有密鑰相應(yīng)的私有密鑰,對包括在由接收單元59接收的會話密鑰響應(yīng)令牌中的加密的會話密鑰解密,從而恢復(fù)與用于識別在第一裝置5和第二裝置6之間會話的預(yù)定會話標(biāo)識符相應(yīng)的會話密鑰。具體地說,第一解密單元54根據(jù)由會話密鑰響應(yīng)令牌的密鑰交換字段502和算法比特字段503的值識別的非對稱密鑰加密算法,通過對包括在由接收單元59接收的會話密鑰響應(yīng)令牌的令牌消息505中的加密的會話密鑰解密,恢復(fù)與預(yù)定會話標(biāo)識符相應(yīng)的會話密鑰。
關(guān)于由第一解密單元54恢復(fù)的會話密鑰的信息和關(guān)于由預(yù)定會話標(biāo)識符識別的會話的信息被存儲在數(shù)據(jù)庫52中。數(shù)據(jù)庫52可以將多個會話密鑰和關(guān)于各個會話密鑰的會話密鑰信息存儲在會話密鑰數(shù)據(jù)塊的單元中。如果第一裝置5與多于一個裝置共享會話密鑰,則有多少個裝置與第一裝置5共享會話密鑰就可以有多少個數(shù)據(jù)塊存在于數(shù)據(jù)庫52中。例如,存儲在數(shù)據(jù)庫52中的會話密鑰信息可以包括指定由預(yù)定開始時間和預(yù)定結(jié)束時間定義的會話密鑰的有效期的信息。
圖6是示出根據(jù)本發(fā)明示例性實施例的由第一裝置5使用的會話密鑰數(shù)據(jù)塊的格式的示圖。參照圖6,所述會話密鑰數(shù)據(jù)塊包括會話標(biāo)識符字段601、會話密鑰字段602、時間戳字段603和有效期字段604。例如,可以使用如圖6中所示C語言來定義所示會話密鑰數(shù)據(jù)塊。
第一裝置5和第二裝置6之間的會話的會話標(biāo)識符被存儲在會話標(biāo)識符字段601中。與記錄在會話標(biāo)識符字段601中的會話標(biāo)識符相應(yīng)的會話密鑰被存儲在會話密鑰字段602中。會話密鑰的有效期的開始時間被記錄在時間戳字段603中。會話密鑰的有效期的結(jié)束時間被記錄在有效期字段604中。
參照圖3,加密單元55使用由第一解密單元54恢復(fù)的會話密鑰對將被從第一裝置5發(fā)送到第二裝置6的源數(shù)據(jù)進(jìn)行加密。具體地說,如果存在將被從第一裝置5發(fā)送到第二裝置6的源數(shù)據(jù),則加密單元55在數(shù)據(jù)庫52中搜索將在第一裝置5和第二裝置6之間的會話中使用的預(yù)定的會話密鑰。
如果在數(shù)據(jù)庫52中找到預(yù)定的會話密鑰,則確定找到的會話密鑰是否有效。但是,如果預(yù)定的會話密鑰不存在于數(shù)據(jù)庫52中,則加密單元55將用于生成新的會話密鑰請求令牌的請求發(fā)放到會話密鑰請求令牌生成單元53。如果確定找到的會話密鑰沒有過期,則加密單元55使用找到的會話密鑰對源數(shù)據(jù)進(jìn)行加密。但是,如果確定找到的會話密鑰確定已經(jīng)過期,則加密單元55將用于生成新的會話密鑰請求令牌的請求發(fā)放到會話密鑰請求令牌生成單元53。
源數(shù)據(jù)密文生成單元56生成包含由加密單元55提供的加密的源數(shù)據(jù)的源數(shù)據(jù)密文。
圖7是示出根據(jù)本發(fā)明示例性實施例的源數(shù)據(jù)密文的格式的示圖。參照圖7,所述源數(shù)據(jù)密文包括加密算法字段701、加密算法比特字段702、會話標(biāo)識符字段703、原始數(shù)據(jù)大小字段704、校驗和字段705和加密數(shù)據(jù)字段706。例如,可使用如圖7中所示的C語言來定義源數(shù)據(jù)密文。
識別用于加密源數(shù)據(jù)的對稱密鑰加密算法的值,即指示所述源數(shù)據(jù)是否已使用數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)算法被加密的值,被存儲在加密算法字段701中??墒褂眉用芩惴ㄗ侄?01的值識別的對稱密鑰加密算法處理的數(shù)據(jù)塊的比特大小被存儲在加密算法比特字段702中。第一裝置5和第二裝置6之間的會話的會話標(biāo)識符被記錄在會話標(biāo)識符字段703中。已由第一裝置5的加密單元55加密的原始源數(shù)據(jù)的比特大小被記錄在原始數(shù)據(jù)大小字段704中。原始數(shù)據(jù)大小字段704隨后被用于確定第二裝置6是否成功地恢復(fù)了原始源數(shù)據(jù)。會話密鑰的校驗和值被存儲在校驗和字段705中。校驗和字段705被用于確定在將會話密鑰從第一裝置5發(fā)送到第二裝置6之前會話密鑰是否已被損壞。需要被從第一裝置5發(fā)送到第二裝置6的由源數(shù)據(jù)密文攜帶的加密的源數(shù)據(jù)被存儲在加密數(shù)據(jù)字段706中。
參照圖3,第二解密單元57通過使用由第一解密單元54恢復(fù)的會話密鑰將包括在由接收單元59接收的結(jié)果數(shù)據(jù)密文中的加密的結(jié)果數(shù)據(jù)解密來恢復(fù)結(jié)果數(shù)據(jù)。由第二解密單元57恢復(fù)的結(jié)果數(shù)據(jù)是第二裝置6響應(yīng)由作為客戶機的第一裝置5發(fā)放的用于處理源數(shù)據(jù)的請求,處理源數(shù)據(jù)的結(jié)果。
具體地說,第二解密單元57根據(jù)由結(jié)果數(shù)據(jù)密文的加密算法字段701和加密算法比特字段702的值識別的加密算法,使用與記錄在結(jié)果數(shù)據(jù)密文的會話標(biāo)識符字段703中的會話標(biāo)識符相應(yīng)的會話密鑰,對包括在結(jié)果數(shù)據(jù)密文中的加密數(shù)據(jù)字段706中的加密數(shù)據(jù)解密,并且參照結(jié)果數(shù)據(jù)密文的原始數(shù)據(jù)大小字段704和校驗和字段705的值確定是否已成功地恢復(fù)了與加密的數(shù)據(jù)相應(yīng)的原始數(shù)據(jù)。
發(fā)送單元58將由會話密鑰請求令牌生成單元53生成的會話密鑰請求令牌發(fā)送到第二裝置6。此外,發(fā)送單元58將由密文生成單元56生成的源數(shù)據(jù)密文發(fā)送到第二裝置6。
接收單元59接收與由發(fā)送單元58發(fā)送的會話密鑰請求令牌相應(yīng)的會話密鑰響應(yīng)令牌。此外,接收單元59接收包含加密的結(jié)果數(shù)據(jù)的結(jié)果數(shù)據(jù)密文,所述加密的結(jié)果數(shù)據(jù)是通過第二裝置6處理包括在由發(fā)送單元58發(fā)送的源數(shù)據(jù)密文中的源數(shù)據(jù)獲得的。
圖8是示出根據(jù)本發(fā)明示例性實施例的第二裝置6的框圖。參照圖8,第二裝置6包括會話密鑰生成單元61、數(shù)據(jù)庫62、第一加密單元63、會話密鑰響應(yīng)令牌生成單元64、解密單元65、數(shù)據(jù)處理單元66、第二加密單元67、結(jié)果數(shù)據(jù)密文生成單元68、接收單元69和發(fā)送單元610。
會話密鑰生成單元61響應(yīng)由接收單元69接收的會話密鑰請求令牌,生成將在第二裝置6和第一裝置5之間的會話中使用的會話密鑰。具體地說,會話密鑰生成單元61生成與記錄在如在圖5中所示的會話密鑰請求令牌的會話密鑰標(biāo)識符字段504中的會話標(biāo)識符相應(yīng)的會話密鑰。
會話密鑰和關(guān)于會話密鑰的會話密鑰信息被存儲在數(shù)據(jù)庫62中。在生成所述會話密鑰以后只允許在預(yù)定時間段內(nèi)使用所述會話密鑰,所述預(yù)定時間段是指會話密鑰的有效期。通過以這種方式調(diào)整會話密鑰的使用,可減少會話密鑰被偶然地公開的可能性。
具體地說,響應(yīng)于會話密鑰請求令牌,會話密鑰生成單元61在數(shù)據(jù)庫62中搜索與記錄在會話密鑰請求令牌中的會話標(biāo)識符字段504中的會話標(biāo)識符相應(yīng)的會話密鑰。如果在數(shù)據(jù)庫62中搜索到與記錄在會話密鑰請求令牌中的會話標(biāo)識符字段504中的會話標(biāo)識符相應(yīng)的會話密鑰,則會話密鑰生成單元61確定搜索到的會話密鑰是否有效。如果確定找到的會話密鑰有效,即找到的會話密鑰沒有過期,則會話密鑰生成單元61從數(shù)據(jù)庫62中提取所述找到的會話密鑰。如果與記錄在會話密鑰請求令牌中的會話標(biāo)識符字段504中的會話標(biāo)識符相應(yīng)的會話密鑰不存在于數(shù)據(jù)庫62中,或者如果在數(shù)據(jù)庫62中找到了與記錄在會話密鑰請求令牌中的會話標(biāo)識符字段504中的會話標(biāo)識符相應(yīng)的會話密鑰,但是找到的會話密鑰已經(jīng)過期,即是無效的,則會話密鑰生成單元61生成新的會話密鑰。
數(shù)據(jù)庫62存儲多個會話密鑰以及關(guān)于各會話密鑰的多條會話密鑰信息。數(shù)據(jù)庫62可在會話密鑰塊的單元中存儲會話密鑰及其各自的多條會話密鑰的信息。所述會話密鑰信息的示例可包括,但不限于指定由預(yù)定開始時間和預(yù)定結(jié)束時間定義的會話密鑰的有效期的信息。
圖9是示出根據(jù)本發(fā)明示例性實施例的由第二裝置6使用的會話密鑰數(shù)據(jù)塊的格式的示圖。參照圖9,所述會話密鑰數(shù)據(jù)塊包括校驗和字段901、會話標(biāo)識符字段902、會話密鑰字段903、時間戳字段904和有效期字段905。例如,可是用如圖9所示的C語言來定義會話密鑰數(shù)據(jù)塊。
會話密鑰的校驗和值被記錄在校驗和字段901中。所述校驗和值用于確定在將會話密鑰對從第二裝置6發(fā)送到第一裝置5之前,所述會話密鑰是否已被損壞。第二裝置6和第一裝置5之間的會話的會話標(biāo)識符被記錄在會話標(biāo)識符字段902中。與記錄在會話標(biāo)識符字段902中的會話標(biāo)識符相應(yīng)的會話密鑰被記錄在會話密鑰字段903中。會話密鑰的有效期的開始時間被記錄在時間戳字段904。會話密鑰的有效期的結(jié)束時間被記錄在有效期字段905。
參照圖8,第一加密單元63根據(jù)由接收單元69接收的如圖5中所示的會話密鑰請求令牌的密鑰交換類型字段502和所述算法比特字段503的值來識別的非對稱密鑰加密算法對由會話密鑰生成單元61生成的會話密鑰進(jìn)行加密。具體地說,第一加密單元63使用存儲在由接收單元69接收的如圖5所示的會話密鑰請求令牌中的令牌消息505中的公有密鑰,對由會話密鑰生成單元61生成的會話密鑰進(jìn)行加密。
會話密鑰響應(yīng)令牌生成單元64生成與由接收單元69接收的會話密鑰請求令牌相應(yīng)的會話密鑰響應(yīng)令牌。具體地說,會話密鑰響應(yīng)令牌生成單元64生成包含由第一加密單元63加密的會話密鑰的會話密鑰響應(yīng)令牌。
圖10是示出根據(jù)本發(fā)明示例性實施例的會話密鑰響應(yīng)令牌的格式的示圖。參照圖10,所述會話密鑰響應(yīng)令牌包括命令字段1001、密鑰交換類型字段1002、算法比特字段1003、會話標(biāo)識符字段1004和令牌消息字段1005。例如,可使用如圖10中所示的C語言來定義所述會話密鑰響應(yīng)令牌。
在第二裝置6和第一裝置5的會話期間,從第二裝置6發(fā)送到第一裝置5的令牌的命令值,即,指示該令牌是用于向第一裝置5發(fā)放請求,還是用于響應(yīng)由第一裝置5發(fā)放的請求的值,被記錄在命令字段1001中。由于會話密鑰響應(yīng)令牌是用響應(yīng)于由第一裝置5發(fā)放的請求的令牌,指示所述會話密鑰響應(yīng)令牌是用于響應(yīng)由第一裝置5發(fā)放的請求的值被記錄在命令字段1001。
識別被用于在第一裝置5和第二裝置6之間交換公有密鑰的非對稱密鑰加密算法的值,即,指示PKI算法或者使用DH算法被用于在第一裝置5和第二裝置6之間交換公有密鑰的值,被記錄在密鑰交換類型字段1002中。例如,可使用如圖5中所示的C語言來定義密鑰交換類型1002,并且所述密鑰交換類型1002包括字段key_ex_type,在其中記錄了指示PKI算法或者使用DH算法被用于在第一裝置5和第二裝置6之間交換公有密鑰的值;和字段PKI_DH_CTX,在其中記錄了指定在PKI算法或者DH算法中如何在第一裝置5和第二裝置6之間交換公有密鑰的信息。例如,可使用如圖5中所示的C語言來定義所述字段PKI_DH_CTX,并且所述字段PKI_DH_CTX包括PKI_CTX字段,在其中存儲了指示在PKI算法中如何在第一裝置5和第二裝置6之間交換公有密鑰的信息;和DH_CTX字段,在所述DH_CTX字段中存儲了指示在DH算法中如何在第一裝置5和第二裝置6之間交換公有密鑰的信息。
可使用由密鑰交換類型字段1002的值識別的非對稱密鑰加密算法來處理的數(shù)據(jù)塊的比特大小被存儲在算法比特字段1003中。第一裝置5和第二裝置6之間的會話的會話標(biāo)識符被記錄在會話標(biāo)識符字段1004中。令牌消息,即由會話密鑰請求令牌傳送的需要被從第一裝置5被發(fā)送到第二裝置6的消息被存儲在令牌消息字段1005中。根據(jù)本發(fā)明示例性實施例,由第二裝置6使用以將會話密鑰進(jìn)行加密的公有密鑰作為令牌信息被存儲在令牌消息字段1005。
參照圖8,解密單元65使用會話密鑰對包括在由接收單元69接收的源數(shù)據(jù)密文中的加密的源數(shù)據(jù)進(jìn)行解密,從而恢復(fù)所述源數(shù)據(jù)。具體地說,解密單元65根據(jù)由接收單元69接收的源數(shù)據(jù)密文的加密算法字段701和加密算法比特字段702的值識別的對稱密鑰加密算法,對存儲在由接收單元69接收的源數(shù)據(jù)密文的加密數(shù)據(jù)字段706中的加密的源數(shù)據(jù)進(jìn)行解密,并參照由接收單元69接收的源數(shù)據(jù)密文的原始數(shù)據(jù)大小字段704和校驗和字段705的值來確定是否已成功地從加密的源數(shù)據(jù)恢復(fù)源數(shù)據(jù)。
此外,當(dāng)接收單元69接收源數(shù)據(jù)密文時,解密單元65在數(shù)據(jù)庫62中搜索與記錄在源數(shù)據(jù)密文的會話標(biāo)識符字段703中的會話標(biāo)識符相應(yīng)的會話密鑰。如果在數(shù)據(jù)庫62中找到與記錄在源數(shù)據(jù)密文的會話標(biāo)識符字段703中的會話標(biāo)識符相應(yīng)的會話密鑰,則解密單元65確定發(fā)現(xiàn)的會話密鑰是否有效。如果確定找到的會話密鑰還沒有過期,則解密單元65從數(shù)據(jù)庫62中提取找到的會話密鑰并使用所述會話密鑰恢復(fù)源數(shù)據(jù)。但是,如果與記錄在源數(shù)據(jù)密文的會話標(biāo)識符字段703中的會話標(biāo)識符相應(yīng)的會話密鑰不存在于數(shù)據(jù)庫62中,或者如果在數(shù)據(jù)庫62中找到與記錄在源數(shù)據(jù)密文的會話標(biāo)識符字段703中的會話標(biāo)識符相應(yīng)的會話密鑰,但是所述會話密鑰已經(jīng)過期,則解密單元65生成錯誤消息。
數(shù)據(jù)處理單元66對由解密單元65恢復(fù)的源數(shù)據(jù)進(jìn)行處理。例如,如果由解密單元65恢復(fù)的源數(shù)據(jù)被壓縮,則數(shù)據(jù)處理單元66對所述源數(shù)據(jù)執(zhí)行解壓縮。
第二加密單元67使用會話密鑰對由數(shù)據(jù)處理單元66處理的源數(shù)據(jù)進(jìn)行加密,所述會話密鑰被解密單元65用于對包括在由接收單元69接收的源數(shù)據(jù)密文中加密的源數(shù)據(jù)進(jìn)行解密。
圖11是示出根據(jù)本發(fā)明示例性實施例的源數(shù)據(jù)密文的格式的示圖。參照圖11,源數(shù)據(jù)密文包括加密算法字段1101、加密算法比特字段1102、會話標(biāo)識符字段1103、原始數(shù)據(jù)大小字段1104、校驗和字段1105和加密數(shù)據(jù)字段1106。例如,可使用如圖11中所示的C語言來定義所述源數(shù)據(jù)密文。
識別用于加密源數(shù)據(jù)的非對稱密鑰加密算法的值,即指示所述源數(shù)據(jù)已使用DES算法被加密的值,被記錄在加密算法字段1101中??墒褂糜杉用芩惴ㄗ侄?101的值識別的對稱密鑰加密算法處理的數(shù)據(jù)塊的比特大小被存儲在加密算法比特字段1102中。第一裝置5和第二裝置6之間的會話的會話標(biāo)識符被存儲在會話標(biāo)識符字段1103中。已由第二裝置6的加密單元55加密的原始源數(shù)據(jù)的比特大小被存儲在原始數(shù)據(jù)大小字段1104中。原始數(shù)據(jù)大小字段1104的值被隨后用于確定所述原始數(shù)據(jù)是否已被第一裝置5成功恢復(fù)。會話密鑰的校驗和值被存儲在校驗和字段1105中。校驗和值被用于確定在將會話密鑰從第二裝置6發(fā)送到第一裝置5之前,所述會話密鑰是否已被損壞。需要被從第二裝置6發(fā)送到第一裝置5的由源數(shù)據(jù)密文傳送的加密的源數(shù)據(jù)被存儲在加密數(shù)據(jù)字段1106中。
參照圖8,接收單元69接收會話密鑰請求令牌,所述會話密鑰請求令牌用于從第一裝置5請求將在第一裝置5和第二裝置6之間的會話中使用的會話密鑰。此外,接收單元69接收包含使用預(yù)定會話密鑰加密的源數(shù)據(jù)的源數(shù)據(jù)密文,其中,所述預(yù)定的會話密鑰是從包括在由發(fā)送單元610發(fā)送的會話密鑰響應(yīng)令牌中的加密的會話密鑰恢復(fù)的會話密鑰。
發(fā)送單元610將由會話密鑰響應(yīng)令牌生成單元64生成的會話密鑰響應(yīng)令牌發(fā)送到第一裝置5。此外,發(fā)送單元610將由解密單元65生成的錯誤消息發(fā)送到第一裝置5。此外,發(fā)送單元610將由結(jié)果數(shù)據(jù)密碼文本生成單元68生成的結(jié)果數(shù)據(jù)密碼文本發(fā)送到第一裝置5。
圖12是示出根據(jù)本發(fā)明示例性實施例的安全地發(fā)送數(shù)據(jù)的方法的流程圖。圖12中所示的方法包括由圖3的第一裝置5順序執(zhí)行的多個操作。因此,上述參照圖3的對第一裝置5的詳細(xì)描述可被直接應(yīng)用于圖12所示的方法中。
參照圖12,在操作1201中,第一裝置5在存儲在數(shù)據(jù)庫52中的多個非對稱密鑰對之中進(jìn)行搜索并確定每個非對稱密鑰對是否是有效的。
在操作1202中,如果在數(shù)據(jù)庫52中找到還沒有過期,即有效的非對稱密鑰對,則從數(shù)據(jù)庫52提取找到的非對稱密鑰對,然后所述方法進(jìn)行到操作1204。另一方面,如果沒有一個存儲在數(shù)據(jù)庫52中的非對稱密鑰對被確定為有效,則所述方法進(jìn)行到操作1203。
在操作1203中,第一裝置5生成非對稱密鑰對。
在操作1204中,第一裝置5生成會話密鑰請求令牌,所述會話密鑰請求令牌用于請求在第一裝置5和第二裝置6之間的會話中使用的會話密鑰。具體地說,在操作1204中,第一裝置5生成包含找到的非對稱密鑰對中的或者生成的非對稱密鑰對中的公有密鑰的會話密鑰請求令牌。
在操作1205中,第一裝置5發(fā)送所述會話密鑰請求令牌。
在操作1206中,第一裝置5接收響應(yīng)于所述會話密鑰請求令牌的會話密鑰響應(yīng)令牌。
在操作1207中,第一裝置5使用找到的非對稱密鑰對中的或者生成的非對稱密鑰對中的私有密鑰對加密的會話密鑰進(jìn)行解密,從而恢復(fù)與第一裝置5和第二裝置6之間的會話的會話標(biāo)識符相對應(yīng)的會話密鑰。
在操作1208中,第一裝置5使用恢復(fù)的會話密鑰對將被發(fā)送到第二裝置6的源數(shù)據(jù)進(jìn)行加密。
在操作1209中,第一裝置5生成包含加密的源數(shù)據(jù)的源數(shù)據(jù)密文。
在操作1210中,第一裝置5發(fā)送所述源數(shù)據(jù)密文。
在操作1211中,第一裝置5接收包含加密的結(jié)果數(shù)據(jù)的結(jié)果數(shù)據(jù)密文,所述結(jié)果數(shù)據(jù)是第二裝置6處理包括在操作1210發(fā)送的源數(shù)據(jù)密文中的加密的源數(shù)據(jù)而獲得的。
在操作1212中,第一裝置5使用恢復(fù)的會話密鑰對包括在接收的結(jié)果數(shù)據(jù)密文中的加密的結(jié)果數(shù)據(jù)進(jìn)行解碼,從而恢復(fù)結(jié)果數(shù)據(jù)。
圖13A和圖13B是示出根據(jù)本發(fā)明另一個示例性實施例的安全地發(fā)送數(shù)據(jù)的方法的流程圖。在圖13A和圖13B中示出的方法包括由圖8的第二裝置6順序執(zhí)行的多個操作。因此,上述參照圖8的對第一裝置5的詳細(xì)描述可被直接應(yīng)用于圖13A和圖13B中所示的方法中。
參照圖13A和圖13B,在操作1301中,第二裝置6從第一裝置5接收會話密鑰請求令牌,所述會話密鑰請求令牌用于請求將在第一裝置5和第二裝置6之間的會話中使用的會話密鑰。
在操作1302中,第二裝置6在數(shù)據(jù)庫62中搜索與包括在接收的會話密鑰請求令牌中的會話標(biāo)識符相應(yīng)的會話密鑰。如果在數(shù)據(jù)庫62中找到與包括在接收的會話密鑰請求令牌中的會話標(biāo)識符相應(yīng)的會話密鑰,則第二裝置6確定找到的會話密鑰是否有效。
在操作1303中,如果在步驟1302找到了會話密鑰并且找到的會話密鑰被確定為有效,則第二裝置6從數(shù)據(jù)庫62中提取所述找到的會話密鑰,方法進(jìn)行到操作1305。另一方面,如果在數(shù)據(jù)庫62中不存在與包括在接收的會話密鑰請求令牌中的會話標(biāo)識符相應(yīng)的會話密鑰,或者如果在數(shù)據(jù)庫62中找到了與包括在接收的會話密鑰請求令牌中的會話標(biāo)識符相應(yīng)的會話密鑰,但是找到的會話密鑰已經(jīng)過期,即是無效的,則所述方法進(jìn)行到操作1304。
在操作1304中,第二裝置6生成會話密鑰。
在操作1305中,第二裝置6使用包括在接收的會話密鑰請求令牌中的公有密鑰,對在操作1302中找到的會話密鑰或者在操作1304中成生的會話密鑰進(jìn)行加密。
在操作1306中,第二裝置6生成與接收的會話密鑰請求令牌相應(yīng)的會話密鑰響應(yīng)令牌。具體地說,在操作1306中,第二裝置6生成包含加密的會話密鑰的會話密鑰響應(yīng)令牌。
在操作1307中,第二裝置6將所述會話密鑰響應(yīng)令牌發(fā)送到第一裝置5。
在操作1308中,第二裝置6接收包含加密的源數(shù)據(jù)的源數(shù)據(jù)密文,所述加密的源數(shù)據(jù)是使用從加密的會話密鑰中恢復(fù)的會話密鑰對源數(shù)據(jù)加密而獲得的。
在操作1309中,第二裝置6在數(shù)據(jù)庫62中搜索與記錄在接收的源數(shù)據(jù)密文的會話標(biāo)識符字段703中的會話標(biāo)識符相應(yīng)的會話密鑰。此后,如果在數(shù)據(jù)庫62中找到與記錄在接收的源數(shù)據(jù)密文的會話標(biāo)識符字段703中的會話標(biāo)識符相應(yīng)的會話密鑰,則第二裝置6確定找到的會話密鑰是否有效。
在操作1310中,如果在操作1309中找到的會話密鑰沒有過期,即是有效的,則第二裝置6從數(shù)據(jù)庫62中將其提取,所述方法進(jìn)行到操作1312。但是,如果數(shù)據(jù)庫62中不存在與記錄在接收的源數(shù)據(jù)密文的會話標(biāo)識符字段703中的會話標(biāo)識符相應(yīng)的會話密鑰,或者如果在數(shù)據(jù)庫62中找到與記錄在接收的源數(shù)據(jù)密文的會話標(biāo)識符字段703中的會話標(biāo)識符相應(yīng)的會話密鑰,但是找到的會話密鑰已經(jīng)過期,即是無效的,則所述方法進(jìn)行到操作1311。
在操作1311中,第二裝置6向第一裝置5發(fā)送錯誤消息,所述錯誤消息用于指示與記錄在接收的源數(shù)據(jù)密文的會話標(biāo)識符字段703中的會話標(biāo)識符相應(yīng)的會話密鑰不存在于數(shù)據(jù)庫62中,或者指示在數(shù)據(jù)庫62中找到與記錄在接收的源數(shù)據(jù)密文的會話標(biāo)識符字段703中的會話標(biāo)識符相應(yīng)的會話密鑰,但是找到的會話密鑰已經(jīng)過期,即是無效的。
參照圖13B,在操作1312中,第二裝置6使用在操作1310中提取的會話密鑰對包括在接收的源數(shù)據(jù)密文中的加密的源數(shù)據(jù)進(jìn)行解密,從而恢復(fù)預(yù)定的源數(shù)據(jù)。
在操作1313中,第二裝置6對恢復(fù)的源數(shù)據(jù)進(jìn)行處理。
在操作1314中,第二裝置6使用由解密單元65使用的會話密鑰對處理過的源數(shù)據(jù)進(jìn)行加密,從而生成加密的結(jié)果數(shù)據(jù)。
在操作1315中,第二裝置6生成包含加密的結(jié)果數(shù)據(jù)的結(jié)果數(shù)據(jù)密文。
在操作1316中,第二裝置6將所述結(jié)果數(shù)據(jù)密文發(fā)送到第一裝置5。
本發(fā)明的示例性實施例可被實現(xiàn)為寫在計算機可讀記錄介質(zhì)上的計算機可讀代碼。所述計算機可讀記錄介質(zhì)可以是任何種類的以計算機可讀的方式存儲數(shù)據(jù)的記錄裝置。所述計算機可讀記錄介質(zhì)的示例包括,但不限于ROM、RAM、CD-ROM、磁帶、軟盤、光數(shù)據(jù)存儲和載波(例如通過因特網(wǎng)的數(shù)據(jù)傳輸)。
根據(jù)本發(fā)明的示例性實施例,通過在以對等方式彼此通信的兩個裝置間發(fā)送允許對外公開的公開密鑰,具體地說,通過允許兩個裝置中的一個使用包括在由另一裝置發(fā)放的會話密鑰請求中的公有密鑰對會話密鑰進(jìn)行加密,并且將所述加密的會話密鑰發(fā)送到另一裝置,可以在所述兩個裝置間安全地共享會話密鑰。因此,對于嵌入式裝置來說,可以在不需要通過沒有對外公開的路徑從裝備有集中式安全服務(wù)器的認(rèn)證授權(quán)獲得私有密鑰的情況下,以對等方式進(jìn)行彼此的安全通信。
此外,根據(jù)本發(fā)明示例性實施例,非對稱密鑰算法被用于在裝置間共享會話密鑰,并且隨后對稱密鑰算法被用于在裝置間發(fā)送數(shù)據(jù)。因此,可最小化系統(tǒng)的數(shù)據(jù)安全維持負(fù)載。此外,由于本發(fā)明的方法可在沒有認(rèn)證授權(quán)的幫助下,在兩個嵌入式裝置間被執(zhí)行,所以所述方法可在不考慮由授權(quán)認(rèn)證強加的外部限制的情況下被自由地在嵌入式裝置中實現(xiàn)為軟件庫。
盡管參照其示例性實施例已對本發(fā)明做出了詳細(xì)的示出和描述,但是本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,在不脫離由權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可在形式和細(xì)節(jié)上做出各種改變。
權(quán)利要求
1.一種安全地將數(shù)據(jù)發(fā)送給裝置的方法,包括發(fā)放對于在與裝置的會話中使用的會話密鑰的請求;通過對包括在對所述請求的響應(yīng)中的加密的會話密鑰進(jìn)行解密來恢復(fù)所述會話密鑰;使用恢復(fù)的會話密鑰對數(shù)據(jù)進(jìn)行加密;和發(fā)送所述加密的數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其中,所述發(fā)放對會話密鑰的請求的步驟包括通過發(fā)送包含將被用于加密會話密鑰的公有密鑰的請求令牌來發(fā)送對會話密鑰的請求,其中,所述恢復(fù)所述會話密鑰的步驟包括對加密的會話密鑰進(jìn)行解密,所述加密的會話密鑰是使用所述公有密鑰被加密,和其中,使用與公有密鑰相應(yīng)的私有密鑰將加密的會話密鑰解密。
3.如權(quán)利要求2所述的方法,還包括生成包括公有密鑰和私有密鑰的非對稱密鑰對。
4.如權(quán)利要求1所述的方法,其中,所述發(fā)放對會話密鑰的請求的步驟包括通過發(fā)送包含所述會話的會話標(biāo)識符的請求令牌來發(fā)放對所述會話密鑰的請求,和其中,所述恢復(fù)會話密鑰的步驟包括恢復(fù)與所述會話標(biāo)識符相應(yīng)的會話密鑰。
5.如權(quán)利要求1所述的方法,還包括接收通過處理加密的數(shù)據(jù)獲得的加密的結(jié)果數(shù)據(jù);和通過使用所述會話密鑰對接收的加密的結(jié)果數(shù)據(jù)進(jìn)行解密來恢復(fù)結(jié)果數(shù)據(jù)。
6.如權(quán)利要求1所述的方法,其中,所述會話密鑰包括對稱密鑰。
7.一種用于安全地將數(shù)據(jù)發(fā)送到裝置的設(shè)備,包括發(fā)送單元,發(fā)送用于請求在與裝置的會話中使用的會話密鑰的請求令牌;第一解密單元,通過對包括在與請求令牌相應(yīng)的響應(yīng)令牌中的加密的會話密鑰進(jìn)行解密來恢復(fù)所述會話密鑰;和加密單元,使用恢復(fù)的會話密鑰對數(shù)據(jù)進(jìn)行加密,其中,所述發(fā)送單元用于發(fā)送加密的數(shù)據(jù)。
8.如權(quán)利要求7所述的設(shè)備,其中,所述請求令牌包括由裝置使用以對所述會話密鑰進(jìn)行加密的公有密鑰,和所述第一解密單元使用與公有密鑰相應(yīng)的私有密鑰對所述會話密鑰進(jìn)行解密。
9.一種存儲用于執(zhí)行安全地將數(shù)據(jù)發(fā)送到裝置的方法的計算機程序的計算機可讀存儲介質(zhì),所述方法包括將對在與裝置的會話中使用的會話密鑰的請求發(fā)放到裝置;通過對包括在對所述請求的響應(yīng)中的加密的會話密鑰進(jìn)行解密來恢復(fù)所述會話密鑰;使用恢復(fù)的會話密鑰對數(shù)據(jù)進(jìn)行加密;和發(fā)送所述加密的數(shù)據(jù)。
10.一種從裝置安全地接收數(shù)據(jù)的方法,包括接收對在與裝置的會話中使用的會話密鑰的請求;響應(yīng)所述請求發(fā)送的加密的會話密鑰;和接收使用從加密的會話密鑰恢復(fù)的會話密鑰被加密的加密數(shù)據(jù)。
11.如權(quán)利要求10所述的方法,還包括響應(yīng)對會話密鑰的請求生成會話密鑰;和加密所述會話密鑰。
12.如權(quán)利要求11所述的方法,其中,所述接收對會話密鑰的請求的步驟包括接收包含對在與裝置的會話中使用的會話密鑰的請求令牌,和所述加密會話密鑰的步驟包括使用包括在請求令牌中的公有密鑰對所述會話密鑰進(jìn)行加密。
13.如權(quán)利要求11所述的方法,其中,所述接收對會話密鑰的請求的步驟包括接收包含所述會話的會話標(biāo)識符的請求令牌,和所述生成會話密鑰的步驟包括生成與包括在請求令牌中的會話標(biāo)識符相應(yīng)的會話密鑰。
14.如權(quán)利要求10所述,還包括響應(yīng)對所述會話密鑰的請求確定會話密鑰是否有效;和如果所述會話密鑰被確定為有效,則加密所述會話密鑰。
15.如權(quán)利要求10所述,還包括通過使用所述會話密鑰對接收的加密的數(shù)據(jù)進(jìn)行解密來恢復(fù)數(shù)據(jù)。
16.一種用于安全地從裝置接收數(shù)據(jù)的設(shè)備,包括接收單元,接收用于請求在與裝置的會話中使用的會話密鑰的請求令牌;和發(fā)送單元,用于響應(yīng)所述請求令牌發(fā)送包含加密的會話密鑰的響應(yīng)令牌,其中,所述接收單元接收包含使用從包括在所述響應(yīng)令牌中的加密的會話密鑰中恢復(fù)的會話密鑰加密的加密數(shù)據(jù)的密文。
17.如權(quán)利要求16所述的設(shè)備,還包括生成單元,響應(yīng)所述請求令牌生成會話密鑰;和第一加密單元,加密所述會話密鑰。
18.如權(quán)利要求17所述的設(shè)備,其中,所述請求令牌包括用來加密會話密鑰的公有密鑰,和所述第一加密單元使用包括在請求令牌中的公有密鑰來加密所述會話密鑰。
19.一種存儲用于執(zhí)行安全地從裝置接收數(shù)據(jù)的方法的計算機程序的計算機可讀存儲介質(zhì),所述方法包括接收對在與裝置的會話中使用的會話密鑰的請求;響應(yīng)所述請求,發(fā)送加密的會話密鑰;和接收使用從加密的會話密鑰恢復(fù)的會話密鑰加密的加密的數(shù)據(jù)。
全文摘要
提供一種用于在嵌入式裝置間安全地發(fā)送數(shù)據(jù)的方法和設(shè)備。所述方法包括發(fā)放對于在與裝置的會話中使用的會話密鑰的請求;通過對包括在對所述請求的響應(yīng)中的加密的會話密鑰進(jìn)行解密來恢復(fù)所述會話密鑰;使用所述恢復(fù)的會話密鑰加密數(shù)據(jù);以及發(fā)送加密的數(shù)據(jù)。因此,嵌入式裝置能夠以對等方式與彼此進(jìn)行安全地通信。
文檔編號H04L9/00GK1929369SQ200610151649
公開日2007年3月14日 申請日期2006年9月11日 優(yōu)先權(quán)日2005年9月9日
發(fā)明者郭起源, 姜春云, 鄭敏宇 申請人:三星電子株式會社