專利名稱:基于身份的加密系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對通過諸如移動電話網(wǎng)絡(luò)或因特網(wǎng)之類的公共網(wǎng)絡(luò)發(fā)送的消息的加密和解密。
背景技術(shù):
其中向通過公共或非安全網(wǎng)絡(luò)發(fā)送的消息提供安全性的通信系統(tǒng)一般應(yīng)用公共密鑰密碼,其中發(fā)送者從預(yù)期的接收者請求公共密鑰,并且使用該接收到的公共密鑰加密消息。當(dāng)加密的消息被接收者接收到時,它們能夠使用它們的相應(yīng)私鑰或秘密密鑰來解密該消息。這種形式的密碼一般應(yīng)用來保護基于因特網(wǎng)的通信。
在移動電話網(wǎng)絡(luò)中,網(wǎng)絡(luò)和移動電話通常共享這樣的秘密密鑰,它們使用該秘密密鑰來對通過空中接口的它們之間的通信加密和解密。一般來說,移動電話從插入的SIM或RUIM卡接收秘密密鑰。然而,這僅適于網(wǎng)絡(luò)和移動電話之間的通信,而不適于移動電話的不同用戶之間的通信。這是由于在可以使用秘密密鑰來加密之前,用戶必須首先在它們之間共享秘密密鑰。在要求不具有公用或共享的秘密密鑰的用戶之間的通信的情形中,公共密碼加密層一般被添加到上述通信中。然而,這要求通過管理和帶寬密集的網(wǎng)絡(luò)請求和發(fā)送公共密鑰。
發(fā)明內(nèi)容
概括而言,在一個方面中提供了一種方法,用于通過不安全的通信系統(tǒng)例如因特網(wǎng)或無線網(wǎng)絡(luò)安全地交換消息。該方法使用消息接收者的標(biāo)識符例如電話號碼或電子郵件地址以及基于身份的加密函數(shù)生成過程或引擎,該過程或引擎生成類似于公共密碼方案中的通用函數(shù)和公共密鑰的基于身份的加密函數(shù)。該基于身份的加密函數(shù)生成過程或引擎類似于基于公共密鑰的系統(tǒng)的通用加密函數(shù),不以接收者公共密鑰為條件。利用該基于身份的加密函數(shù)加密的消息然后可以由預(yù)期接收者使用基于秘密身份的解密函數(shù)解密,該基于秘密身份的解密函數(shù)對應(yīng)于從接收者的標(biāo)識符生成的基于身份的加密函數(shù)。
在一個實施例中,通信系統(tǒng)中的發(fā)送者和接收者每個都具有公用的基于身份的加密函數(shù)生成引擎和各自的基于秘密身份的解密函數(shù),該基于身份的加密函數(shù)生成引擎嵌入在它們各自的設(shè)備中,例如移動電話或因特網(wǎng)家電,該基于秘密身份的解密函數(shù)對應(yīng)于它們各自的標(biāo)識符。然后該基于身份的加密函數(shù)生成引擎和預(yù)期接收者的標(biāo)識符一起可以由發(fā)送者用來生成用于預(yù)期接收者的基于身份的加密函數(shù),該加密函數(shù)然后可以用來加密該接收者的消息,而不必請求它們的公共密鑰。類似地,接收者無需將其公共密鑰發(fā)送給發(fā)送者,而是只使用其相應(yīng)的基于秘密身份的解密函數(shù)解密所接收到的消息。公用的基于身份的加密函數(shù)生成引擎和各自的基于身份的解密函數(shù)可以存儲在發(fā)送者和接收者設(shè)備上,例如移動電話的SIM卡上或插入到因特網(wǎng)設(shè)備中的智能卡上?;蛘?,安全或加密系統(tǒng)管理者可以周期性地將該消息發(fā)送到設(shè)備,以更新它們的基于身份的加密函數(shù)和相應(yīng)的解密函數(shù)。
在本發(fā)明的另一個方面中提供了一種電子設(shè)備,以及/或者計算機程序,當(dāng)在適當(dāng)?shù)奶幚砥魃蠄?zhí)行該計算機程序時,布置為執(zhí)行這里所述的方法。
為了可以容易地理解本發(fā)明并將其投入實用,現(xiàn)在參考結(jié)合附圖解釋的示例性實施例,其中在所有不同的示圖中,相似的標(biāo)號指示相同或功能上相似的元件。附圖和下面的具體實施方式
一起結(jié)合到并形成說明書的一部分,并且用來進一步解釋實施例并說明各種原理和優(yōu)點,根據(jù)本發(fā)明其中圖1圖示了適于與一個實施例一起使用的電子設(shè)備;
圖2圖示了根據(jù)一個實施例的通信系統(tǒng);圖3圖示了根據(jù)一個實施例的用于安全地發(fā)送消息的方法;圖4圖示了根據(jù)一個實施例的用于安全地接收消息的方法;圖5圖示了根據(jù)一個實施例的對在圖3中使用的加密的增強;和圖6圖示了根據(jù)一個實施例的對在圖4中使用的解密的增強。
技術(shù)人員將理解出于簡化和清楚而圖示附圖中的元素,并且無需按照比例繪制。例如,附圖中某些元素的尺寸相對于其他元素被放大了,以幫助理解本發(fā)明實施例。
具體實施例方式
在詳細(xì)描述根據(jù)本發(fā)明的實施例前,應(yīng)當(dāng)注意到實施例主要存在方法步驟的組合中和與電子設(shè)備中的受限服務(wù)提供者模式的激活和去激活相關(guān)的裝置組件中。因此,在附圖中利用傳統(tǒng)的符號再現(xiàn)了裝置組件和方法步驟,僅示出了與理解本發(fā)明的實施例有關(guān)的那些具體細(xì)節(jié),以免用具有這里描述的一般知識的本領(lǐng)域普通技術(shù)人員容易明了的細(xì)節(jié)模糊了該公開。
在此文檔中,關(guān)系術(shù)語例如第一和第二、頂和底等可以用來單獨區(qū)分一個實體和另一個實體、或者一個動作和另一個動作,并不要求或暗示這些實體或動作之間的任何實際這類關(guān)系或順序。術(shù)語“包括”或者它們的任何其他變體是要覆蓋費排他包含,以使包括一列元素的過程、方法、物品或裝置不只包括這些元素,而且還可以包括未明確列出的或者對于這種過程、方法、物品或裝置內(nèi)在的其他元素。緊隨“包括一個…”表示的元素在沒有更多限制的情況下不排除在包括該元素的過程、方法、物品或裝置中存在其他相同的元素。另外,在整個說明書中,術(shù)語“鍵”具有廣泛的涵義,包括具有可由用戶啟動的專用、可變或可編程功能的任何鍵、按鈕或執(zhí)行器。
應(yīng)當(dāng)理解,這里所述的本發(fā)明的實施例可以包括一個或多個傳統(tǒng)的處理器,以及唯一存儲的程序指令,這些程序指令控制一個或多個處理器,結(jié)合某些非處理器電路一起來實現(xiàn)這里所述的電子設(shè)備中的受限所服務(wù)提供者模式的激活和去激活功能的某些、大多數(shù)和全部。非處理器電路可以包括單不限于無線電接收器、無線電發(fā)射器、信號驅(qū)動器、時鐘電路、電源電路和用戶輸入設(shè)備。這樣,這些功能可以被解釋為下述方法的步驟,該方法用于激活和去激活電子設(shè)備中的受限服務(wù)提供者模式。或者,某些或全部功能可以用不具有程序指令的狀態(tài)機實現(xiàn),或者實現(xiàn)在一個或多個專用集成電路(ASIC)中,其中每個功能或這些功能中的某些的組合被實現(xiàn)為定制邏輯。當(dāng)然,也可以使用這兩種方法的組合。這樣,這里已描述了用于這些功能的方法和裝置。此外,盡管存在例如由空閑時間、當(dāng)前技術(shù)和經(jīng)濟考慮推動的可能的明顯努力和許多設(shè)計選擇,但是當(dāng)由這里所公開的概念和原理引導(dǎo)時,預(yù)期本領(lǐng)域的技術(shù)人員將能夠利用最少的試驗容易地生成這種軟件指令、程序和IC。
參考圖1,該示意圖示出了移動臺或移動電話形式的電子設(shè)備100,電子設(shè)備100一般是無線通信設(shè)備,其包括耦合以與處理器103通信的射頻通信單元102。電子設(shè)備100還具有顯示屏105。還具有一般包含警報揚聲器、振動器馬達和關(guān)聯(lián)驅(qū)動器的警報模塊115。顯示屏105、以及警報模塊115被耦合以與處理器103通信。
處理器103包括編碼器/解碼器111,其具有用于存儲下述數(shù)據(jù)的關(guān)聯(lián)的碼只讀存儲器(ROM)112,所述數(shù)據(jù)用于對可以由電子設(shè)備100發(fā)射或接收的聲音或其他信號編碼和解碼。處理器103還包括微處理器113,其通過公共數(shù)據(jù)和地址總線117耦合到編碼器/解碼器111、字符只讀存儲器(ROM)114、隨機存取存儲器(RAM)104、靜態(tài)可編程存儲器116和可移除用戶身份模塊(RUIM)接口118。靜態(tài)可編程存儲器116和RUIM卡119(通常稱作訂戶身份模塊(SIM)卡)操作耦合到RUIM接口118,它們每個都可以存儲偏好漫游列表(PRL)、訂戶認(rèn)證數(shù)據(jù)、所選進入文本消息、以及電話號碼數(shù)據(jù)庫(TND電話薄)等等,該電話號碼數(shù)據(jù)庫包括用于電話號碼的號碼字段和名稱字段,名稱字段用于與號碼字段中的號碼之一相關(guān)聯(lián)的標(biāo)識符。RUIM卡119和靜態(tài)存儲器116也可以存儲口令,口令允許對電子設(shè)備100上的口令保護功能的訪問。
微處理器113具有用于耦合到顯示屏105和警報模塊115的端口。另外,微處理器113還具有用于耦合到與該設(shè)備集成在一起的麥克風(fēng)135和通信揚聲器140的端口。
字符只讀存儲器114存儲用于對可由通信單元102接收的文本消息解碼或編碼的碼。在本實施例中,字符只讀存儲器114、RUIM卡119和靜態(tài)存儲器116還可以存儲用于微處理器113的操作碼(OC)和用于執(zhí)行與電子設(shè)備100關(guān)聯(lián)的功能的碼。
射頻通信單元102是具有公用天線107的組合的接收機和發(fā)射機。通信單元102具有經(jīng)由射頻放大器109耦合到天線107的收發(fā)機108。收發(fā)機108也耦合到組合的調(diào)制器/解調(diào)器110,其將通信單元102耦合到處理器103。
圖2根據(jù)實施例圖示了其中可以安全交換消息的系統(tǒng)。系統(tǒng)200包括無線網(wǎng)絡(luò)210例如移動電話蜂窩網(wǎng)絡(luò),以及許多無線電子設(shè)備200例如移動電話,它們經(jīng)由無線網(wǎng)絡(luò)210彼此無線耦合,并且耦合到外部設(shè)備(未示出)。
每個電子設(shè)備220嵌入有常見的或通用的基于身份的加密函數(shù)生成引擎(F)230,其包括具有變量部分的函數(shù)(M),該變量部分在這里被稱作公共密鑰部分(PK)。公共密鑰部分(PKb)專用于每個預(yù)期的接收者(220b),并且使用預(yù)期接收者專有的公共標(biāo)識符(IDb)生成。因此公共標(biāo)識符(IDb)可用來生成相應(yīng)的基于身份的公共密鑰(PKb),并且從而使用基于身份的加密函數(shù)生成引擎230a生成預(yù)期接收者專用的基于身份的加密函數(shù)(M(PKb))。該接收者專用的基于身份的加密函數(shù)(M(PKb))由加密引擎240a用來將明文消息(P)270加密成密文(M(PKb,P))280。與用于預(yù)期接收者(220b)的公共密鑰(PKb)相對的公共密碼可以由發(fā)送者使用預(yù)期接收者的公共標(biāo)識符(IDb)260和基于身份的加密函數(shù)生成過程(F)或引擎230在本地生成。該公共密鑰的等同物或基于身份的加密函數(shù)的變量部分(PKb)可以然后被結(jié)合到與預(yù)期接收者的標(biāo)識符(IDb)相對應(yīng)的基于身份的加密函數(shù)(M(PKb))中,以便為該預(yù)期接收者的明文消息(P)加密。該基于身份的加密函數(shù)生成引擎230可以被嵌入在諸如與網(wǎng)絡(luò)210關(guān)聯(lián)的SIM或R-UIM卡之類的可移除存儲介質(zhì)上,它可以在制造時安全地存儲在電子設(shè)備220中,或者可以利用來自網(wǎng)絡(luò)210的安全傳輸周期性地被更新。公共標(biāo)識符IDb可以是與預(yù)期接收者或系統(tǒng)的用戶唯一關(guān)聯(lián)的任何適當(dāng)?shù)淖址蚝瘮?shù),例如它們的電話號碼或電子郵件地址。
每個電子設(shè)備220也嵌入有基于身份的秘密解密函數(shù)D(SKb)250。該基于身份的秘密解密函數(shù)D(SKb)是取決于每個相應(yīng)設(shè)備220的標(biāo)識符260的從通用解密函數(shù)(D)和這里稱作基于身份的解密函數(shù)D(SKB)的秘密密鑰SKb部分的內(nèi)容生成的。預(yù)期接收者220b的設(shè)備專用或依賴于基于標(biāo)識符的身份的解密函數(shù)D(SKb)然后被用來對利用基于該預(yù)期接收者的公共密鑰PKb加密的消息M(PKb,P)進行解密。各個引擎230、240和250可以實現(xiàn)為例如在處理器上執(zhí)行的軟件指令。使用這種具有嵌入的加密/解密功能的基于身份的加密布置,其中該加密/解密功能利用依賴于用戶標(biāo)識符(ID)的公共/秘密密鑰部分,發(fā)送者(例如220a)無需請求預(yù)期接收者(例如220b)的公共密鑰(例如PKb),類似地也不要求預(yù)期接收者向發(fā)送者提供其相應(yīng)的公共密鑰。這簡化了基于加密的安全步驟的實現(xiàn),該布置用于維護通過系統(tǒng)發(fā)送的消息的機密性。
本領(lǐng)域的技術(shù)人員將了解各種基于身份的加密方案,并且這些加密方案中的任意一種都可以在實施例中實現(xiàn)。示例包括Renji &Shihua的基于身份的密碼系統(tǒng)和基于有限自動公共密鑰密碼的簽名方案,如在T.Renji和C.ShiHua的“An Implementation ofIdentity-based Cryptosystems and Signature Schemes by FiniteAutomation Public Key Cryptosystems”,Advance inCryptology-CHINACRYPT 92,BeijingScience Press,1992,pp87~104中所述。其他基于身份的密碼方案可以作為替換使用,例如在下述文獻中所描述的那些A.Shamir,“Identity-BasedCryptosystems and Signature Schemes”,Advances in CryptologyProceedings of CRYPTO 84,Springer-Verlag,1985,pp.47~53;K.Koyama and K.Ohta,“Identity-Based Conference Key DistributionSystem”,Advances in CryptologyProceedings of CRYPTO 87,Springer-Verlag,1988,pp.175~284;H.Tanaka,“A RealizationScheme for the Identity-Based Cryptosystem”,Advances inCryptologyProceedings of CRYPTO 87,Springer Verlag,1988,pp.340~349;以及D.Boneh and M.Franklin,“Identity based encryptionfrom the Weil pairing”,SIAM J of Computing,Vol.32,No.3,pp.585~615,2003。
現(xiàn)在描述參考上述Renji和Shihua方案的實施例。用于此方案的詳細(xì)數(shù)學(xué)超出了本說明的范圍,但是所參考的技術(shù)讀物如下文獻所述,它們給出了完整數(shù)學(xué)實現(xiàn)信息1.ReniiInvertibility of Finite Automata,Science Press,19792.Renji,ShihuaAn Public-key Encryption and SignatureScheme based on Finite Automata,J.of Computer Science andtechnology,1985,8,401~4093.Renji,ShihuaTWo varieties of Finite AutomatonPublic-key Cryptosystem and Digital Signatures,1986,1,9~184.Shihua,RenjiInvertibility of Quasl-Linear FiniteAutomata,Advances in Cryptology-CHINACRYPT `92,BeijingScience Press,19925.T.Renji and C.ShiHua,“An Implementation ofIdentity-based Cryptosystems and Signature Schemes by FiniteAutomaton Public Key Cryptosystems”,Advances inCryptology-CHINACRYPT`92,BeijingScience Press,1992,pp.87·104。
這些文獻一起被稱作Renji文獻。
然而,在更一般的數(shù)學(xué)層次上,加密函數(shù)M是有限自動機,其是例如兩個可逆有限自動機M0和M1的串聯(lián)之類的組合。該組合M是容易計算的,但是該逆操作實際是不可行的,例如,從M尋找M0和M1是非常難以計算的。兩個有限自動機M0和M1的逆M0”和M1”被用在通用解密函數(shù)D中。
在一個實施例中,基于身份的加密函數(shù)生成引擎230(F)包括通用加密函數(shù)M的一組系數(shù)表示,在它的矩陣多項式表示中,這些系數(shù)明確地表達為基于身份的參數(shù)或標(biāo)識符(ID)的函數(shù)。通過將用戶的公共標(biāo)識符IDb填充到通用加密函數(shù)M的矩陣多項式的系數(shù)表示中,然后可以生成用戶的基于身份的加密函數(shù)M(PKb)的變量部分或基于身份的公共密鑰PKb。然后可以針對明文消息P計算出基于身份的加密函數(shù)M(PKb),以便生成密文M(PKb,P)。通用加密函數(shù)M的矩陣多項式和初始狀態(tài)被嵌入或以其他方式分布在系統(tǒng)200中的每個電子設(shè)備220中。這使得能夠使用通用加密函數(shù)M的矩陣多項式的系數(shù)表示、公共標(biāo)識符IDb和可選的r來針對具有關(guān)聯(lián)的公共標(biāo)識符IDb的預(yù)期接收者計算出或生成基于身份的公共密鑰PKb,其中r是隨機會話數(shù)。這樣,從一組系數(shù)和初始狀態(tài)、以及相應(yīng)的公共標(biāo)識符ID生成基于身份的加密函數(shù)M(PKb)的公共密鑰PKb部分。這樣,基于身份的加密函數(shù)生成引擎230或過程F針對特定的預(yù)期接收者標(biāo)識符(IDb)生成基于身份的加密函數(shù)M(PKb)。
通用加密函數(shù)M詳細(xì)示例和根據(jù)實施例的基于身份的加密函數(shù)M(PK)如下給出,但是應(yīng)當(dāng)理解本發(fā)明不限于此My(i)=A0+A1*y(i-1)+A2*y(i-2)+A3*y(i-3)…+Aj*y(i-j)+B0*x(i)+B1*x(i-1)+B2*x(i-2)…+Bk*x(i-k)其中i=0,1,2,…;A0,A1…Aj和B0,B1...Bk屬于矩陣聚合,并且是標(biāo)識符ID的函數(shù);x是屬于向量聚合的輸入(明文)序列,y是屬于向量聚合的輸出(密文)序列。
基于身份的加密函數(shù)生成過程F利用標(biāo)識符ID作為變量生成矩陣系數(shù)A0、A1、…Aj和B0、B1...Bk。從而為了得到用于接收者220b(IDb)的基于身份的加密函數(shù)的公共密鑰部分(PK),它們的公共標(biāo)識符IDb被用于填充系數(shù)A0、A1、…Aj和B0、B1…Bk。這在上述Renji文獻中作了詳細(xì)描述。這給出了公共密鑰部分PKb,其由A0(IDb)、A1(IDb)、...Ai(IDb)和B0(IDb)、B1(IDb)...Bk(IDb)組成。
該基于身份的公共密鑰部分PKb然后被應(yīng)用到通用加密函數(shù)M,以得到基于身份的加密函數(shù)M(PKb)?;谏矸莸募用芎瘮?shù)生成引擎230生成基于適當(dāng)身份的加密函數(shù)M(PKb),加密引擎240a然后可以將該加密函數(shù)如下應(yīng)用到明文消息P=x(0),x(1),…x(n)的每個元素y(0)=A0(IDb)+A1(IDb)*y(-1)+A2(IDb)*y(-2)+…+Aj(IDb)*y(-j)+B0(IDb)*x(0)+B1(IDb)*x(-1)+B2(IDb)*x(-2)+…+Bk(IDb)*x(-k)其中x(-1)…x(-k)和y(-1)…y(-j)為初始狀態(tài);y(1)=A0(IDb)+A1(IDb)*y(0)+A2(IDb)*y(-1)+…+Aj(IDb)*y(-j+1)+B0(IDb)*x(1)+B1(IDb)*x(0)+B2(IDb)*x(-1)+…+Bk(IDb)*x(-k+1)…y(n)=A0(IDb)+A1(IDb)*y(n-1)+A2(IDb)*y(n-2)+…+Aj(IDb)*y(n-j)+B0(IDb)*x(n)+B1(IDb)*x(n-1)+B2(IDb)*x(n-2)+…+Bk(IDb)*x(n-k),其中y(0)、y(1),…y(n)=M(PKb,P),其是密文280。
發(fā)送者然后將密文280(y(0)-y(n)=M(PKb,P))傳輸給預(yù)期接收者220b。
構(gòu)成加密函數(shù)M的矩陣多項式M0和M1的逆分別是M0”和M1”。這些矩陣多項式之間的關(guān)系和如何從一個導(dǎo)出另一個超出了本說明的范圍,但是在Renji文獻中作了詳細(xì)描述。
由于利用了加密函數(shù)矩陣多項式M,所以逆矩陣多項式M0”和M1”包括其中變量是接收者的公共標(biāo)識符(IDb)的函數(shù)。為了獲得用于密文(M(PKb,P))或利用他們的公共密鑰(PKb)加密的消息的的接收者的解密函數(shù)D(SDb)的秘密密鑰(SKb)部分,用消息接收者的公共標(biāo)識符(IDb)填充逆矩陣多項式的系數(shù)。該秘密密鑰以與公共密鑰部分PKb形成加密函數(shù)M(PKb)=M1(PKb)M0(PKb)的一部分類似的方式形成解密函數(shù)D(SKb)=M0”(SKb)M1”(SKb)的一部分。這在Renji文獻中也作了詳細(xì)的數(shù)學(xué)描述。
如此獲得的基于身份的解密函數(shù)D(SKb)然后可以用來對用接收者公共密鑰加密的明文消息(P)解密,即D(M(PKb,P),SKb)=P。
包括相應(yīng)的秘密密鑰部分SKb的基于身份的解密函數(shù)D(SKb)也被提供給每個相應(yīng)電子設(shè)備220b,每個相應(yīng)密鑰部分SK取決于它們各自的標(biāo)識符(IDb)。各個基于身份的解密函數(shù)D(SK)的秘密密鑰部分SK是使用各個標(biāo)識符(ID)和M0”及M1”的多項式的變量系數(shù)表達式生成的。秘密密鑰SK和解密函數(shù)的生成一般在相應(yīng)接收設(shè)備220的使用之前完成,并且存儲在其中,例如在SIM或R-UIM卡上。
由于利用了公共密鑰密碼,所以基于身份的秘密密鑰(SK)和公共密鑰(PK)對具有這樣的屬性利用公共密鑰PK加密的消息易于計算,但是對利用該公共密鑰PK加密的消息解密非常難于計算,或者不現(xiàn)實;這實際上正是秘密密鑰SK所要求的。
在接收到加密的消息M(PKb,P)后,預(yù)期接收者220b使用它們的基于身份的解密函數(shù)對其進行解密,其中該解密函數(shù)結(jié)合它們各自的秘密密鑰SKb和有限自動機M0”和M1”,即M1”(M(PKb,P),SKb)=P。
因此,不是具有中央密鑰服務(wù)器,其中該服務(wù)器經(jīng)消息交換請求請求生成并向系統(tǒng)中的發(fā)送者和接收者分發(fā)基于身份的公共/秘密密鑰部分對(取決于實現(xiàn)可能是加密/解密函數(shù)對),而是基于身份的加密函數(shù)生成過程F或引擎230被嵌入到發(fā)送者設(shè)備中,并且基于身份的解密函數(shù)對應(yīng)于基于身份的加密函數(shù)M(PK)。在一個實施例中,基于身份的加密函數(shù)生成過程F對所有設(shè)備公用。將理解,就發(fā)送和接收與安全機制相關(guān)聯(lián)的控制消息來說,這節(jié)省了大量管理開銷。在帶寬有限并且標(biāo)準(zhǔn)的公共密鑰串非常長的無線網(wǎng)絡(luò)中尤其有利。此外,因為不要求發(fā)送公共密鑰,所以無需實現(xiàn)第三方認(rèn)證系統(tǒng)來對轉(zhuǎn)發(fā)的公共密鑰進行認(rèn)證。另外在初始設(shè)置后,用戶可以如正常操作一樣進行秘密通信,所以無需例如與額外的安全相關(guān)的控制消息協(xié)議。
生成基于身份的加密函數(shù)生成過程F和相應(yīng)解密函數(shù)D(SK)的實體可以是網(wǎng)絡(luò)210,或者由網(wǎng)絡(luò)210其他網(wǎng)絡(luò)使用的獨立機構(gòu),或者不相關(guān)的設(shè)備?;谏矸莸募用芎瘮?shù)生成函數(shù)和相應(yīng)的基于身份的解密函數(shù)可以例如使用對稱加密而被安全發(fā)送到設(shè)備,其中網(wǎng)絡(luò)210知道與每個設(shè)備220相關(guān)聯(lián)的基于(分離)網(wǎng)絡(luò)的秘密密鑰。其可以被嵌入在例如設(shè)備的SIM卡上。
現(xiàn)在參考圖3,其中圖示了發(fā)送經(jīng)加密消息的方法。這種方法可以實現(xiàn)在例如移動電話上,其中用戶希望與同一個或不同無線網(wǎng)絡(luò)上的另一個移動電話的用戶進行安全通信。在方法(300)中,移動電話或其他電子設(shè)備220a接收到使用適當(dāng)?shù)慕涌谳斎氲拿魑南?P),例如電子郵件、SMS或語音(310)。術(shù)語明文消息(P)用于區(qū)分由一個實施例加密后的密文消息M(PKb,P),然而,從與一個實施例串聯(lián)的另一種加密方案來看,明文消息(P)可能實際上也是密文消息。該方法然后確定與預(yù)期接收者關(guān)聯(lián)的標(biāo)識符(IDb),例如電話號碼和電子郵件地址(320)。該標(biāo)識符可以存儲在例如移動電話或SIM卡上的地址薄中,或者用戶可以手動將該信息輸入到可以輸入的電子設(shè)備中。
該方法(300)然后使用基于身份的加密函數(shù)生成過程(F)或引擎230及接收者的相應(yīng)標(biāo)識符(IDb)生成與該預(yù)期接收者關(guān)聯(lián)的基于身份的加密函數(shù)M(PKb)(330)。這可以使用上述基于身份的加密(IBE)方案或者本領(lǐng)域技術(shù)人員將理解的其他IBE來生成。該方法然后使用所生成的基于身份的加密函數(shù)M(PKb)(在上述實施例中其包括多項式矩陣M)加密消息(P),以便獲得經(jīng)加密消息或密文M(PKb,P)(340)。本領(lǐng)域的技術(shù)人員將了解各種加密算法和函數(shù)M,并且可以在這里使用。如上所述,公知的加密方案是使用有限自動機公共密鑰密碼的基于ID的密碼系統(tǒng),該系統(tǒng)可用在實施例中,并且在下述文獻中作了描述T.Renji and C.ShiHua,“AnImplemention of Identity-based Cryptosystems and SignatureSchemes by Finite Automation Public Key Cryptosystems”,Advancesin Cryptology-CHINACRYPT`92,BeijingScience Press,1992,pp.87-104。最后,該經(jīng)加密消息M(PKb,P)通過網(wǎng)絡(luò)210被傳輸?shù)筋A(yù)期接收者(350)。
現(xiàn)在參考圖4,其示出了接收并解密利用基于身份的加密函數(shù)M(PK)加密的消息。該方法(400)接收到已利用接收者的基于身份的加密函數(shù)M(PKb)加密的消息(410)。如上所述,該基于身份的加密函數(shù)M(PKb)是使用基于身份的加密函數(shù)生成過程(F)和接收者的標(biāo)識符(IDb)生成的。該方法然后使用嵌入在接收者設(shè)備中的接收者的基于身份的解密函數(shù)D(SKb)來解密該消息(420)。加密領(lǐng)域的技術(shù)人員將理解,對應(yīng)于加密算法M(PK)的基于身份的解密算法或函數(shù)D(SK)用來對所接收到的經(jīng)加密消息解鎖(D(M(PKb,P)SKb)=P)。
基于身份的加密M(PK)和解密D(SK)或者D(M0”,M1”)算法可以根據(jù)所需安全級別選擇。這可以通過在各個加密和解密函數(shù)中使用不同的公共和秘密密鑰部分大小來實現(xiàn)。例如在上述有限自動機實施例中,系數(shù)A0~Aj和B0~Bk大小可以增加,以便增加安全級別。例如,對于VoIP語音呼叫,可以要求相對較低的安全級別,以使得可以使用小規(guī)模的密鑰大小來提高性能。然而,對于要求較高安全級別的應(yīng)用,例如金融事務(wù),可以應(yīng)用較大規(guī)模的密鑰大小以保證安全性。
由于IBE工作的方式,即使在預(yù)期接收者具有相應(yīng)的基于身份的解密函數(shù)D(SKb)之前,也可以針對該預(yù)期接收者使用它們的計算出或生成的基于身份的加密函數(shù)M(PKb)對消息加密。在這種情形中,接收者仍舊可以接收消息,但是然后將需要(例如向網(wǎng)絡(luò)210)請求它們的基于身份的加密函數(shù)來解密該消息。如果發(fā)送者的設(shè)備是使用地址薄的移動電話或類似設(shè)備,則具有發(fā)送/接收根據(jù)實施例加密的消息的能力的某些聯(lián)系人可以例如使用適當(dāng)?shù)膱D標(biāo)而在地址薄中被突出。該設(shè)備然后可以配置為自動對到這種接收者的所有消息加密,或者可以要求用戶操作硬件/軟件開關(guān)。設(shè)備也可能配置為存儲常規(guī)使用的聯(lián)系人的基于身份的加密函數(shù)M(PK),而不是每次都必須計算。接收設(shè)備可能具有通知發(fā)送者它們不能解密從該發(fā)送者接收到的消息的功能。
圖5和圖6分別圖示了圖3和圖4的方法的加密(340)和解密(420)步驟的增強。在這些方法中,數(shù)字簽名被用來對使用實施例加密的消息的發(fā)送者進行認(rèn)證。首先參考圖5,所示方法(500)替換圖3的相應(yīng)加密步驟(340)。該方法(500)計算明文消息的散列H(P)(510)。該方法(500)然后使用經(jīng)散列的消息執(zhí)行數(shù)字簽名計算DS(SKa,H(M))(520)。數(shù)字簽名函數(shù)或計算(DS)使用發(fā)送者的基于身份的解密函數(shù)D(SKa)的基于身份的秘密密鑰部分SKa。散列(H)和數(shù)字簽名(DS)計算對密碼領(lǐng)域的技術(shù)人員將都是公知的,并且任何適當(dāng)?shù)挠嬎愣伎梢杂迷趯嵤├?。接下來,方?500)使用上述的對于預(yù)期接收者(IDb)的基于身份的加密函數(shù)M(PKb)對消息(P)和數(shù)字簽名加密M(P,DS(SKa,H(P)))(530)。方法(500)然后返回圖3的經(jīng)加密消息傳輸步驟(350)。
現(xiàn)在參考圖6,其示出了替換圖4的相應(yīng)解密步驟(420)的方法(600)。方法(600)首先解密數(shù)字簽名的消息D(P,DS(SKa,H(P)),SKb)=P,DS[SKa,H(P)](610)。接下來該方法使用發(fā)送者公共標(biāo)識符IDa及嵌入的基于身份的加密函數(shù)生成引擎230b來計算發(fā)送者的公共密鑰PKa(620)。該方法然后使用其加密引擎240b來利用發(fā)送者的公共密鑰對解密后的數(shù)字簽名加密M[PKa,DS(SKa,H(P))],并且還計算解密后的消息的散列H(P)(630)。接下來,散列后的消息H(P)被與利用發(fā)送者的基于身份的加密函數(shù)加密的數(shù)字簽名M(PKa,DS(SKa,H(P)))比較(640)。該數(shù)字簽名方法中的變化可以替換使用,例如在圖5和圖6中都可以省略散列操作。
如果散列后的消息H(P)和重加密的數(shù)字簽名M(PKb,DS(SKa,H(P)))不相等,則本領(lǐng)域的技術(shù)人員將理解該消息未被認(rèn)證或驗證為來自發(fā)送者(650)。然而,如果這兩種計算產(chǎn)生相同的結(jié)果,則發(fā)送者被驗證為該發(fā)送者的下述加密函數(shù)的秘密密鑰部分的持有者,從而正是該發(fā)送者,其中所述加密函數(shù)是用來對該消息和數(shù)字簽名進行加密的基于身份的加密函數(shù)(600)。
盡管已使用移動電話相應(yīng)的電話號碼作為標(biāo)識符描述了關(guān)于移動電話的實施例,但是替換標(biāo)識符和/或應(yīng)用也可以用于其他實施例中。例如,用戶(發(fā)送者和接收者)的電子郵件地址可以用作由整個系統(tǒng)使用的標(biāo)識符;或者可以使用系統(tǒng)專用標(biāo)識符。標(biāo)識符可以是任何參數(shù),只要其唯一地標(biāo)識系統(tǒng)中的每個用戶或設(shè)備,并且例如可以是設(shè)備的MAC地址。在替換實施例中,IBE系統(tǒng)可以實現(xiàn)在任何計算設(shè)備中,例如,耦合到因特網(wǎng)的計算機或其他因特網(wǎng)家電;這并不一定要求無線連接。例如,受信第三方可以監(jiān)視安全電子郵件或金融系統(tǒng)系統(tǒng),并且提供或指定所有用戶的標(biāo)識符、相應(yīng)秘密密鑰、以及公用公共密鑰生成函數(shù)。
在前面的說明書中,已描述了本發(fā)明的特定實施例。但是,本領(lǐng)域的普通技術(shù)人員將理解可以做出各種修改和改變,而不脫離在所附權(quán)利要求書中闡述的本發(fā)明的范圍。因此,說明書和附圖應(yīng)當(dāng)被認(rèn)為是說明性的,而非限制性的,并且所有這種修改是要被包括在本發(fā)明的范圍內(nèi)??梢允谷魏我嫣帯?yōu)點或解決方案發(fā)生,或者使它們變得更顯著的益處、優(yōu)點、對問題的解決方案和任何(一個或多個)元素不應(yīng)當(dāng)解釋為任何或所有權(quán)利要求的關(guān)鍵、必需或本質(zhì)的特征。本發(fā)明僅由所附權(quán)利要求書限定,所附權(quán)利要求書包括在本申請的處理期間做出的任何修改和那些權(quán)利要求的所有等同物。
技術(shù)人員將認(rèn)識到上述裝置和方法可以實現(xiàn)為例如載體介質(zhì)上或數(shù)據(jù)載體上的處理器控制代碼,所述載體介質(zhì)例如是盤、CD-或DVD-ROM、經(jīng)編程存儲器(例如只讀存儲器,固件),所述數(shù)據(jù)載體例如是光或電信號載體。對于多種應(yīng)用,本發(fā)明的實施例將實現(xiàn)在DSP(數(shù)字信號處理器)、ASIC(專用集成電路)或FPGA(現(xiàn)場可編程門陣列)。因此代碼可以包括傳統(tǒng)的程序代碼或微代碼,或者例如用于建立或控制ASIC或FPGA的代碼。代碼可以包括用于動態(tài)配置可重配置裝置(例如可重編程邏輯門陣列)的代碼。類似地,代碼可以包括硬件描述語言(例如VerilogTM或VHDL(超高速集成電路硬件描述語言))的代碼。本領(lǐng)域的技術(shù)人員將理解,代碼可以分布在彼此通信的多個耦合的組件之間。如果合適,實施例也可以通過使用在現(xiàn)場可(重)編程模擬陣列或類似的設(shè)備上運行的代碼來實現(xiàn),以便配置模擬硬件。
權(quán)利要求
1.一種電子設(shè)備,包括基于身份的加密函數(shù)生成引擎,布置為使用與接收者電子設(shè)備相對應(yīng)的標(biāo)識符生成對應(yīng)于所述接收者電子設(shè)備的基于身份的加密函數(shù);加密引擎,布置為使用所生成的基于身份的加密函數(shù)來加密所述接收者設(shè)備的用戶消息;以及傳輸器,布置為將加密后的用戶消息傳輸?shù)狡渌邮照唠娮釉O(shè)備。
2.如權(quán)利要求1所述的電子設(shè)備,其中,所述標(biāo)識符是所述其他電子設(shè)備的電話號碼。
3.如權(quán)利要求1所述的電子設(shè)備,其中,所述基于身份的加密函數(shù)生成引擎嵌入在可移除模塊中,秘密密鑰用于對使用基于身份的公共密鑰加密的消息解密,所述基于身份的公共密鑰是使用基于身份的公共密鑰生成函數(shù)和與所述電子設(shè)備關(guān)聯(lián)的標(biāo)識符生成的。
4.如權(quán)利要求1所述的電子設(shè)備,還包括接收器,布置為接收來自發(fā)送者電子設(shè)備的經(jīng)加密用戶消息;基于身份的解密引擎,布置為使用基于身份的解密函數(shù)解密所述經(jīng)加密用戶消息,所述基于身份的解密函數(shù)與使用對應(yīng)于所述電子設(shè)備的標(biāo)識符生成的基于身份的加密函數(shù)相對應(yīng)。
5.如權(quán)利要求1所述的電子設(shè)備,其中,所述加密函數(shù)是有限自動機。
6.如權(quán)利要求4所述的電子設(shè)備,其中,所述接收器布置為接收電子簽名,并且所述電子設(shè)備還包括基于身份的數(shù)字簽名加密函數(shù)生成引擎,布置為使用所述基于身份的加密函數(shù)生成引擎和與所述發(fā)送者電子設(shè)備關(guān)聯(lián)的標(biāo)識符來生成基于身份的數(shù)字簽名加密函數(shù);基于身份的數(shù)字簽名加密引擎,布置為使用所述基于身份的數(shù)字簽名加密函數(shù)來加密所接收到的數(shù)字簽名;驗證引擎,配置為響應(yīng)于接收到的用所述數(shù)字簽名加密函數(shù)加密的數(shù)字簽名等同于所接收到的消息,來驗證所接收到的數(shù)字簽名。
7.一種用于安全交換用戶消息的方法,包括確定與用戶消息的預(yù)期接收者相關(guān)聯(lián)的標(biāo)識簽;使用基于身份的加密函數(shù)生成過程和所確定的標(biāo)識符來生成與預(yù)期接收者關(guān)聯(lián)的基于身份的加密函數(shù);使用所生成的基于身份的加密函數(shù)來加密所述用戶消息;將經(jīng)加密的用戶消息傳輸?shù)剿鲱A(yù)期接收者。
8.如權(quán)利要求6所述的用于安全交換用戶消息的方法,其中,所述標(biāo)識符是與所述預(yù)期接收者關(guān)聯(lián)的電話號碼。
9.如權(quán)利要求6所述的用于安全交換用戶消息的方法,還包括接收來自發(fā)送者的經(jīng)加密用戶消息;使用基于身份的解密函數(shù)解密所述經(jīng)加密用戶消息,所述基于身份的解密函數(shù)與使用與所述接收者關(guān)聯(lián)的標(biāo)識符生成的基于身份的加密函數(shù)相對應(yīng)。
10.如權(quán)利要求9所述的用于安全交換用戶消息的方法,還包括使用所述基于身份的加密函數(shù)生成過程和與所述發(fā)送者關(guān)聯(lián)的標(biāo)識符來生成基于身份的數(shù)字簽名加密函數(shù);使用所述基于身份的數(shù)字簽名加密函數(shù)來加密所接收到的數(shù)字簽名;響應(yīng)于接收到的用所述數(shù)字簽名加密函數(shù)加密的數(shù)字簽名等同于所接收到的消息,來驗證所接收到的數(shù)字簽名。
11.一種承載計算機程序指令的載體介質(zhì),當(dāng)在計算機上執(zhí)行所述計算機程序指令時使所述計算機執(zhí)行下述操作確定與用戶消息的預(yù)期接收者關(guān)聯(lián)的標(biāo)識符;使用基于身份的加密函數(shù)生成過程和所確定的標(biāo)識符來生成與所述預(yù)期接收者關(guān)聯(lián)的基于身份的加密函數(shù);使用所生成的基于身份的加密函數(shù)加密所述用戶消息;將所述經(jīng)加密用戶消息傳輸?shù)剿鲱A(yù)期接收者。
全文摘要
本發(fā)明涉及基于身份的加密系統(tǒng)。本發(fā)明提供了用于通過不安全的通信系統(tǒng)安全地交換消息的方法(300),以及執(zhí)行該方法(300)的電子設(shè)備(100)。該方法確定(320)與用戶消息的預(yù)期接收者關(guān)聯(lián)的標(biāo)識符,然后使用基于身份的加密函數(shù)生成過程和所確定的標(biāo)識符來生成(330)與該預(yù)期接收者關(guān)聯(lián)的基于身份的加密函數(shù)。接下來,該方法使用所生成的基于身份的加密函數(shù)來實現(xiàn)解密(340)該用戶消息,然后將經(jīng)解密用戶消息傳輸(350)到該預(yù)期接收者。
文檔編號H04L9/30GK1992587SQ200510135750
公開日2007年7月4日 申請日期2005年12月29日 優(yōu)先權(quán)日2005年12月29日
發(fā)明者吳松, 朱宇 申請人:摩托羅拉公司