本申請案主張基于2014年6月10日申請的名稱為“用于簽名產(chǎn)生和加密/解密的共模RSA密鑰對(Common Modulus RSA Key Pairs for Signature Generation and Encryption/Decryption)”的第62/010,400號美國臨時(shí)專利申請案和2015年2月6日申請的名稱為“用于簽名產(chǎn)生和加密/解密的共模RS密鑰對(Common Modulus RS Key Pairs for Signature Generation and Encryption/Decryption)”的第14/616,552號美國非臨時(shí)專利申請案的優(yōu)先權(quán),所述兩個(gè)申請案被轉(zhuǎn)讓給本受讓人,并以全文引用的方式并入本文中。
技術(shù)領(lǐng)域
各個(gè)特征是關(guān)于加密/解密和數(shù)字簽名產(chǎn)生,具體地說,是關(guān)于涉及公開和私用密鑰的非對稱密碼。
背景技術(shù):
就密鑰管理和分配而言,例如公開密鑰系統(tǒng)的不對稱密碼系統(tǒng)(也被稱作公開密鑰系統(tǒng)/私用密鑰系統(tǒng))通常具有優(yōu)于其它密碼系統(tǒng)的優(yōu)點(diǎn)。然而,公開密鑰系統(tǒng)通常可能難以計(jì)算,并且可涉及較大的數(shù)字簽名。密鑰產(chǎn)生過程可為計(jì)算昂貴的。因此,不對稱密碼系統(tǒng)可需要大功率的處理器,或可需要額外處理時(shí)間,這可導(dǎo)致延遲、使用更多能量和/或消耗電池或其它資源。
此外,通??紤]良好的密碼實(shí)踐,以具有針對不同應(yīng)用/協(xié)議的單獨(dú)的密鑰。具體來說,如果不對稱密碼系統(tǒng)需要接收已加密的消息并對它們進(jìn)行解密,以及產(chǎn)生數(shù)字簽名,那么針對兩個(gè)協(xié)議具有不同的密鑰通常是可取的。然而,當(dāng)使用不對稱密碼系統(tǒng)(例如,李維斯特-薩莫爾-阿德曼(RSA)系統(tǒng))時(shí),產(chǎn)生兩個(gè)密鑰通常過于計(jì)算昂貴(例如,一般來說,是只產(chǎn)生一個(gè)密鑰的計(jì)算量的兩倍)。尤其是在具有有限資源的密鑰供應(yīng)系統(tǒng)的嵌入式裝置(例如,智能手機(jī)等)中,這可能是難以解決的。應(yīng)注意,在本文中,為簡潔起見,術(shù)語“密鑰供應(yīng)系統(tǒng)”通常指代能夠產(chǎn)生和/或供應(yīng)密鑰的系統(tǒng)。應(yīng)理解,實(shí)際上,可采用單獨(dú)的系統(tǒng)以產(chǎn)生RSA密鑰,同時(shí)其它系統(tǒng)供應(yīng)密鑰。
鑒于前述,它將有助于提供改進(jìn)了的密鑰產(chǎn)生與供應(yīng)技術(shù)和系統(tǒng),具體地說,有助于用于嵌入式密鑰供應(yīng)系統(tǒng)。
技術(shù)實(shí)現(xiàn)要素:
在密碼裝置中操作以對消息進(jìn)行解密和簽名的方法包含:獲得第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模;使用第一公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行解密;通過使用第二公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行簽名,以獲得消息的數(shù)字簽名;以及從密碼裝置發(fā)送數(shù)字簽名。
在另一方面,裝置包含:處理電路,其經(jīng)配置以獲得第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模;使用第一公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行解密;通過使用第二公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行簽名,以獲得消息的數(shù)字簽名;以及發(fā)射器裝置,其經(jīng)配置以從密碼裝置發(fā)送數(shù)字簽名。
在又一方面中,在系統(tǒng)中操作以對消息進(jìn)行加密和驗(yàn)證的方法包含:從單獨(dú)的裝置接收第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰,其中第一和第二公開密鑰/私用密鑰對共享共模;使用共享共模的第一和第二公開密鑰/私用密鑰對的第一公開密鑰對消息進(jìn)行加密;將已加密的消息發(fā)送到單獨(dú)的裝置;從單獨(dú)的裝置接收對消息的經(jīng)簽名的回復(fù),其中所述消息已利用使用第二公開密鑰/私用密鑰對的私用密鑰所獲得的簽名來簽名;以及使用共享共模的第一和第二公開密鑰/私用密鑰對的第二公開密鑰來驗(yàn)證具有經(jīng)簽名的回復(fù)的簽名。
在再又一方面中,裝置包含:接收器裝置,其經(jīng)配置以從單獨(dú)的裝置接收第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰,其中第一和第二公開密鑰/私用密鑰對共享共模;發(fā)射器裝置;以及處理電路,其經(jīng)配置以使用共享共模的第一和第二公開密鑰/私用密鑰對的第一公開密鑰對消息進(jìn)行加密;使用發(fā)射器裝置,將已加密的消息發(fā)送到單獨(dú)的裝置;使用接收器裝置從單獨(dú)裝置接收對消息的經(jīng)簽名的回復(fù),其中所述消息已利用使用第二公開密鑰/私用密鑰對的私用密鑰所獲得的簽名來簽名;以及使用共享共模的第一和第二公開密鑰/私用密鑰對的第二公開密鑰來驗(yàn)證經(jīng)簽名的回復(fù)的簽名。
附圖說明
圖1示出其中產(chǎn)生共享共模的密鑰對的例示性密鑰供應(yīng)系統(tǒng)和方法。
圖2示出移動(dòng)裝置的例示性芯片上系統(tǒng)(SoC),其中SoC包含用于簽名產(chǎn)生和用于加密/解密的嵌入式共模密鑰供應(yīng)處理器。
圖3示出用于共模密鑰供應(yīng)的例示性程序。
圖4示出嵌入式密碼裝置和合作供應(yīng)商的遠(yuǎn)程服務(wù)器的例示性操作,以及它們之間交換的信息。
圖5示出用于多個(gè)合作軟件供應(yīng)商的共模密鑰供應(yīng)的例示性程序。
圖6示出嵌入式密碼裝置的例示性軟件組件、合作供應(yīng)商的遠(yuǎn)程服務(wù)器的軟件組件以及在它們之間交換以便于初始通信和密匙交換等的信息。
圖7進(jìn)一步示出嵌入式密碼裝置的例示性軟件組件、遠(yuǎn)程服務(wù)器的軟件組件以及在它們之間交換以便于認(rèn)證挑戰(zhàn)等的信息。
圖8是說明用于采用處理系統(tǒng)的設(shè)備的硬件實(shí)施方案的實(shí)例的框圖,所述處理系統(tǒng)可以利用圖1到7的系統(tǒng)、方法和設(shè)備。
圖9是說明圖8的處理電路的例示性組件的框圖。
圖10是說明圖8的機(jī)器可讀媒體的例示性指令組件的框圖。
圖11概述用于可通過(例如)移動(dòng)裝置的嵌入式組件執(zhí)行的對消息進(jìn)行解密和簽名的例示性程序。
圖12概述用于使用(例如)兩個(gè)密鑰對對消息進(jìn)行解密和簽名的另外的例示性程序。
圖13概述用于使用三個(gè)或大于三個(gè)密鑰對對消息進(jìn)行解密和簽名的另外的例示性程序。
圖14是說明可與圖8的設(shè)備通信的遠(yuǎn)程系統(tǒng)的例示性組件的框圖。
圖15是說明可與圖8的設(shè)備通信的遠(yuǎn)程系統(tǒng)的例示性指令組件的框圖。
圖16概述用于可(例如)通過圖14的系統(tǒng)執(zhí)行的對消息進(jìn)行加密和驗(yàn)證的例示性程序。
圖17概述用于使用(例如)兩個(gè)密鑰對對消息進(jìn)行加密和驗(yàn)證的另外的例示性程序。
圖18概述用于使用三個(gè)或大于三個(gè)密鑰對對消息進(jìn)行加密和驗(yàn)證的另外的例示性程序。
具體實(shí)施方式
在以下描述中,給出具體細(xì)節(jié)以提供對本發(fā)明的各個(gè)方面的透徹理解。然而,所屬領(lǐng)域的技術(shù)人員應(yīng)理解,可以在不具有這些具體細(xì)節(jié)的情況下實(shí)踐所述方面。例如,可用框圖展示電路以避免以不必要的細(xì)節(jié)混淆所述方面。在其它情況下,可不詳細(xì)展示眾所周知的電路、結(jié)構(gòu)及技術(shù),以防混淆本發(fā)明的所述方面。
此外,本文中使用詞語“例示性”意指“充當(dāng)實(shí)例、例子或說明”。本文中描述為“例示性”的任何實(shí)施方案或方面未必應(yīng)解釋為比本發(fā)明的其它方面優(yōu)選或有利。同樣,術(shù)語“方面”不要求本發(fā)明的所有方面包含所論述的特征、優(yōu)點(diǎn)或操作模式。
綜述
若干新穎特征涉及用于嵌入式密鑰供應(yīng)系統(tǒng)的裝置和方法,例如安裝在智能手機(jī)內(nèi)用于產(chǎn)生RSA公開密鑰/私用密鑰對以進(jìn)行加密/解密和數(shù)字簽名產(chǎn)生/驗(yàn)證的系統(tǒng)。簡單來說,在至少一些實(shí)例中,嵌入式密鑰供應(yīng)系統(tǒng)的限制條件為產(chǎn)生兩個(gè)公開密鑰/私用密鑰對--一個(gè)用于加密/解密,另一個(gè)用于簽名產(chǎn)生/驗(yàn)證--其中,這兩個(gè)公開密鑰/私用密鑰對共享共模,但在其它方面不同或不相關(guān)。這允許比產(chǎn)生兩個(gè)完全單獨(dú)的密鑰對(即,每一個(gè)具有其自身的獨(dú)特的模數(shù))更高效地產(chǎn)生兩個(gè)密鑰對,但至少在嵌入式密鑰供應(yīng)系統(tǒng)的情況下,實(shí)現(xiàn)了令人滿意的完整性和機(jī)密性。本文中,產(chǎn)生兩個(gè)公開密鑰/私用密鑰對--一個(gè)用于加密/解密,另一個(gè)用于簽名產(chǎn)生/驗(yàn)證--的密碼系統(tǒng)和方法通常大體上被稱作“共模密鑰供應(yīng)系統(tǒng)/方法”,其中兩個(gè)公開密鑰/私用密鑰對共享共模,但在其它方面不同。
在這點(diǎn)上,相信單獨(dú)的RSA公開/私用密鑰對(e1,d1)和(e2,d2)在使用本文中所描述的共模密鑰供應(yīng)系統(tǒng)/方法所獲得的相同模數(shù)(N=pq)上的使用可提供用于嵌入式密鑰供應(yīng)系統(tǒng)(例如,高通有限公司的MacchiatoTM系統(tǒng))的安全、合理的和具有高效性能的解決方案。此外,實(shí)施共模密鑰供應(yīng)系統(tǒng)需要相對適度地修改現(xiàn)有的密鑰供應(yīng)系統(tǒng)。例如,在產(chǎn)生用于產(chǎn)生密鑰對的素?cái)?shù)p、q期間,系統(tǒng)可檢查p-1和q-1與e1和e2兩者互質(zhì),而不是檢查它們只與一個(gè)公鑰指數(shù)互質(zhì)(如果產(chǎn)生完全單獨(dú)的RSA密鑰對,那么這就是對應(yīng)的情況)。其后,在至少一些實(shí)例中,嵌入式系統(tǒng)反轉(zhuǎn)e1模(p-1)(q-1)以獲得d1,并反轉(zhuǎn)e2模(p-1)(q-1)以獲得d2。應(yīng)注意,不同的或不相關(guān)的意思是e1、e2都不是另一者的倍數(shù),或取決于應(yīng)用,e1不是e2的倍數(shù)或e2不是e1的倍數(shù),其中e1和e2指代公開密鑰。
傳統(tǒng)上,提供用于加密/解密和用于簽名的完全單獨(dú)的密鑰存在兩個(gè)主要原因:安全性和密鑰管理。就涉及到安全性而言,兩種一般類型的攻擊令人擔(dān)心:a)由與解密數(shù)據(jù)庫有關(guān)的問題導(dǎo)致的簽名方案的完整性的缺失;以及b)由與簽名數(shù)據(jù)庫有關(guān)的問題導(dǎo)致的加密方案的機(jī)密性的缺失。然而,在嵌入式密鑰供應(yīng)系統(tǒng)的情況下,當(dāng)使用本文中所描述的共模密鑰供應(yīng)系統(tǒng)/方法時(shí),這些弱點(diǎn)被認(rèn)為是不存在問題的。例如,如果所有已加密的消息利用不同的制造者的密鑰(由嵌入式系統(tǒng)的制造者提供)來簽名,那么完整性的缺失不應(yīng)該是個(gè)問題,所述密鑰鏈回到嵌入式裝置中的證書。當(dāng)嵌入式裝置的解密數(shù)據(jù)庫實(shí)施在裝置的受信任執(zhí)行環(huán)境內(nèi),或裝置自身可為防篡改的,攻擊者不大可能接入解密數(shù)據(jù)庫。
就由涉及到簽名數(shù)據(jù)庫而導(dǎo)致的加密方案的機(jī)密性的缺失而言,攻擊者很可能需要能夠使用簽名數(shù)據(jù)庫來對消息進(jìn)行解密,接著將結(jié)果泄漏出去。這似乎具有極低的風(fēng)險(xiǎn),至少在嵌入式系統(tǒng)內(nèi),因?yàn)槌鲇诩用芎秃灻哪康目墒褂貌煌奶钛a(bǔ)。任一填補(bǔ)產(chǎn)生或驗(yàn)證、散列和簽名在受信任執(zhí)行環(huán)境(簡寫為TEE;舉例來說,在受信任區(qū)域情況下的受信任區(qū)域運(yùn)行環(huán)境(TZBSP))的操作內(nèi)核內(nèi)部完成,以及使用這些服務(wù)不在應(yīng)用(例如,受信任應(yīng)用程序(TA))中完成。(應(yīng)注意,在公開密鑰密碼術(shù)中,填補(bǔ)指代使用方案制作用于加密或簽名的消息的過程,所述方案例如最佳非對稱加密填補(bǔ)(OAEP)、公開密鑰密碼術(shù)標(biāo)準(zhǔn)#1(PKCS#1)v1.5、概率性簽名方案(PSS)、PSS與恢復(fù)(PSSR)、電氣電子工程師學(xué)會(huì)(IEEE)P1363、利用附錄簽名的編碼方法(EMSA2或EMSA5)。因此,攻擊者很可能需要:破解TA應(yīng)用;調(diào)用在“錯(cuò)誤”地址或具有錯(cuò)誤參數(shù)的TEE的內(nèi)核例程,以將消息作為簽名傳遞,并對其進(jìn)行解密;以及隨后輸出結(jié)果。盡管有可能,但這被認(rèn)為是相當(dāng)困難的,因此這種形式的攻擊同樣地被認(rèn)為是具有低風(fēng)險(xiǎn)的。
現(xiàn)轉(zhuǎn)而參看密鑰管理,在大多數(shù)系統(tǒng)中,簽名和加密密鑰具有不同要求,例如,在備份、存取、附帶條件的托管、否定等方面。通常,在簽名密鑰被破解的情況下,必須破壞所述簽名密鑰,但通常必須保持加密密鑰以對早期的消息進(jìn)行解密。通過策略或通過調(diào)節(jié),它們可具有不同的使用期限。然而,這些擔(dān)心通常并不適用于嵌入式裝置,具體地說,并不適用于智能手機(jī)等,因?yàn)榇祟愌b置的使用期限通常比所有密鑰的生命周期都短得多。此外,揭露一個(gè)模數(shù)的分解的通用方法最可能還用于揭露兩個(gè)模數(shù)的分解。也就是說,如果借助于揭露模數(shù)的分解的方法,本文中所描述的共模密鑰供應(yīng)系統(tǒng)/方法容易受損,那么在使用其它常規(guī)的技術(shù)單獨(dú)產(chǎn)生的情況下,密鑰對最可能還是容易受損的。例如,分解技術(shù)的出乎意料的數(shù)學(xué)突破可使這兩種類型的系統(tǒng)容易受損,但是這類突破很可能還使非共模技術(shù)容易受損。
人們相信,使用兩個(gè)與單個(gè)模數(shù)“數(shù)學(xué)不相關(guān)”的指數(shù)對(即,不同的指數(shù)對)足以解決上述擔(dān)憂??紤]RSA模數(shù)N=pq和兩個(gè)公開/私用密鑰對(e1,d1)和(e2,d2)的實(shí)例。第一密鑰對僅用于加密;而第二密鑰對專門用于簽名目的??紤]已利用e1加密的消息c=me1到達(dá),并且黑客具有用于(e2,d2)的解密數(shù)據(jù)庫,所述解密數(shù)據(jù)庫可為可利用的解密數(shù)據(jù)庫或可利用的簽名數(shù)據(jù)庫。隨后,攻擊者通常限于計(jì)算cd2=m(e1d2)=m(e1/e2mod(N)),并且如果可確定關(guān)系e1/e2mod(N))(其指代歐拉函數(shù)或歐拉商數(shù)),那么在之后,僅可計(jì)算出與初始消息的關(guān)系。(應(yīng)注意,函數(shù)(N)的值對攻擊者來說是未知的。)只要e1和e2之間的數(shù)學(xué)關(guān)系并不顯而易見,那么這一般等效于計(jì)算RSA問題。舉例來說,e1(對應(yīng)地,e2)應(yīng)該不是e2(對應(yīng)地,e1)模(N)的倍數(shù)。由于后者不可能為攻擊者所知(以免攻擊者能夠分解RSA模數(shù)),這相當(dāng)于:e1(resp,e2)應(yīng)該不是e2(對應(yīng)地,e1)的整數(shù)冪。因此在大多數(shù)實(shí)際情況中,使用用于e1和e2兩個(gè)較小素?cái)?shù)(關(guān)于模數(shù)較小)綽綽有余。例如,參見丘姆(Chaum)的“用于不可跟蹤付款的盲簽名(Blind Signatures for Untraceable Payments)”(密碼學(xué)進(jìn)展,密碼學(xué)會(huì)刊82(3):199-203(1983))中所描述的技術(shù)。
在至少一些實(shí)例中,受信任應(yīng)用程序(TA)在裝置(移動(dòng)裝置、計(jì)算機(jī)等)上的受信任執(zhí)行環(huán)境(TEE)中運(yùn)行,其中TA需要向服務(wù)器認(rèn)證其自身。為了做到這一點(diǎn),RSA密鑰對(或與共模配對的密鑰對)產(chǎn)生于TEE的內(nèi)核并保持在那里:TA不能存取這些密鑰,并且通常必須調(diào)用內(nèi)核,以使密碼操作完成。從TA發(fā)送到服務(wù)器的消息對服務(wù)器來說是未加密的或已加密(因此,加密可使用服務(wù)器的密鑰,其與RSA密鑰毫無關(guān)系)。從服務(wù)器到TA的消息已利用裝置的密鑰進(jìn)行加密。常見的兩種情形是:同時(shí)用于加密和簽名的單個(gè)RSA密鑰(一個(gè)模數(shù),一個(gè)單個(gè)公開/私用指數(shù)對);或兩個(gè)完全不同的RSA密鑰(各自具有其自身的模數(shù)和單個(gè)公開/私用指數(shù)對)。RSA密鑰產(chǎn)生對形成裝置特有的密鑰集合很重要,所述密鑰集合由服務(wù)器使用來對裝置的一些數(shù)據(jù)進(jìn)行加密,數(shù)據(jù)是TA特有的。密鑰供應(yīng)是將數(shù)據(jù)從服務(wù)器引入到TA中的行為。為了節(jié)約時(shí)間--并利用這些密鑰不存在外部策略的事實(shí)--本文中所描述的嵌入式裝置產(chǎn)生一個(gè)模數(shù)N和兩個(gè)不同的公開/私用指數(shù)對(e1,d1)和(e2,d2),第一對用于(使用e1)加密到裝置的消息以及在裝置上(使用d1)解密它們,第二對用于對裝置上的消息進(jìn)行簽名(使用d2),以及允許外部方驗(yàn)證所述簽名(使用e2)。在RSA文獻(xiàn)中d、e的常用含義中,d1、d2是秘密指數(shù),e1、e2是公開指數(shù)。
在至少一些實(shí)例中,密鑰產(chǎn)生操作如下:產(chǎn)生兩個(gè)不同的隨機(jī)素?cái)?shù)p、q(舉例來說,使用偽隨機(jī)數(shù)產(chǎn)生器(PRNG)以產(chǎn)生數(shù)字,并測試它們是否是素?cái)?shù));計(jì)算N=pq,t=(p-1)(q-1)=(N);驗(yàn)證所選擇的公開指數(shù)e1、e2是否與t互質(zhì)。如果它們不互質(zhì),那么重新開始;如果e1、e2與t互質(zhì),那么假設(shè)d1,對應(yīng)地d2是e1、e2模t的模逆;以及驗(yàn)證乘到t次冪的某一隨機(jī)值x是否是x自身。如果不重新開始,那么嵌入式裝置以另外的方式成功地產(chǎn)生了密鑰。
就涉及到不相關(guān)公開指數(shù)而言,應(yīng)用以下考慮因素。數(shù)字應(yīng)該是不同的,否則方案將被還原到傳統(tǒng)的RSA方案。一者不應(yīng)該是另一者的倍數(shù)。如果e2=k e1,那么d1=k d2(模(N)),如果攻擊者攔截了已由服務(wù)器(通過將其增加到第e1次冪)加密的消息,并且攻擊者能夠接入d2的解密數(shù)據(jù)庫(舉例來說,裝置上所利用的簽名數(shù)據(jù)庫,它可泄漏操作的結(jié)果--正如它應(yīng)該會(huì)泄露的,因?yàn)樗呛灻b置),那么攻擊者可使用解密數(shù)據(jù)庫來將所攔截的消息乘到d2次冪,并因此對消息進(jìn)行解密(因?yàn)閗是已知的,實(shí)際上,它是e1和e2之間一個(gè)不重要的因數(shù))。一個(gè)重要的考慮因素是,作為整數(shù),e2不應(yīng)是e1的倍數(shù)(且在一人意圖使用解密數(shù)據(jù)庫來泄密簽名方案的情況下,反之亦然--在這種情況下,e1不應(yīng)是e2的倍數(shù))。如果比值e1/e2和e2/e1不是整數(shù),那么中斷系統(tǒng)需要解決RSA問題(這被認(rèn)為是等效于因式分解)。
應(yīng)注意,模(N)e1始終是e2的倍數(shù)(且反之亦然),但是由于攻擊者無法計(jì)算(N)(這種“不可能性”是標(biāo)準(zhǔn)RSA安全性假設(shè)),攻擊者無法確定因數(shù)--所以,必須被阻止的倍數(shù)關(guān)系必然地保持為整數(shù),而不是整數(shù)模(N)。使用相同模數(shù)并分離如上所述的指數(shù)對使得攻擊者使用簽名數(shù)據(jù)庫來對消息進(jìn)行解密基本上是不可能的。它實(shí)現(xiàn)了密鑰分離的密碼原理,同時(shí)降低了密鑰產(chǎn)生的計(jì)算復(fù)雜度,并且還減小了在共享密鑰時(shí)的帶寬。由此,技術(shù)可適用于使用一個(gè)密鑰來改進(jìn)單點(diǎn)登錄系統(tǒng),并且還可具有許多其它應(yīng)用。就涉及到公開指數(shù)而言:RSA系統(tǒng)僅需要這些指數(shù)為小于N的奇數(shù)(并且與(N)互質(zhì),但這在密鑰產(chǎn)生時(shí)測試得到)。實(shí)際上,不存在實(shí)際的限制性。出于性能原因,系統(tǒng)通常使用數(shù)字,如3、5、17、257、65537,但可替代地使用其它數(shù)字。還請注意,盡管關(guān)于RSA實(shí)例描述,但本文中所描述的技術(shù)中的至少一些適用于其它密碼技術(shù),例如多素?cái)?shù)RSA或其它RSA類密鑰對。RSA類的意思是,舉例來說,使用是大于兩個(gè)素?cái)?shù)的乘積的模數(shù)(因此,模數(shù)N將為N=p1*p2*…*pr,其中針對i-1、2、…、r的pi全部是素?cái)?shù),并且e1、e2應(yīng)該與針對i-1、2、…、r的pi-1中的每一個(gè)互質(zhì),且(N)=(p1-1)*(p2-1)*…*(pr-1))。因此,本發(fā)明的各方面適用于多素?cái)?shù)(R>2)模數(shù)。在此類情況下,密鑰產(chǎn)生將檢查e1、e2是否與針對i-1、2、…、r的pi-1中的每一個(gè)互質(zhì),而不是只與(p-1)和(q-1)互質(zhì)。
此外,盡管本文中所描述的說明性實(shí)例中的許多采用共享共模的兩個(gè)密鑰對,但各種技術(shù)適用于共享共模的三個(gè)或大于三個(gè)密鑰對的產(chǎn)生及使用。例如,可產(chǎn)生四個(gè)密鑰對,兩個(gè)用于加密/解密(e1,d1;e3,d3),且兩個(gè)用于簽名/驗(yàn)證(e2,d2;e4,d4),其中四個(gè)公開密鑰(e1、e2、e3、e4)中的每一個(gè)滿足各自不能被另一者除盡(整數(shù))的一般條件。一般來說,可產(chǎn)生用于加密/解密的任何數(shù)目的密鑰對,且可產(chǎn)生用于簽名/驗(yàn)證的任何數(shù)目的密鑰對,其中一種類型具有至少一個(gè)密鑰對(其中,它們?nèi)繚M足密鑰對的公開指數(shù)無法除盡(整數(shù))彼此的條件)。此外,盡管本文的實(shí)例主要涉及RSA或RSA類密鑰對,但本發(fā)明的至少一些方面適用于其它密碼學(xué)方案或協(xié)議,例如使用高等代數(shù)結(jié)構(gòu)或多變量系統(tǒng)(即,有限域上基于多變量多項(xiàng)式使用不對稱密碼原語的系統(tǒng))的那些方案或協(xié)議。然而,一般來說,并不預(yù)期本文中所描述的技術(shù)適用于橢圓曲線密碼學(xué)密碼學(xué)(ECC)或基于非交換數(shù)學(xué)結(jié)構(gòu)的任一密碼系統(tǒng)。
例示性硬件環(huán)境
可在大范圍裝置中廣泛地應(yīng)用本文中所描述的共模嵌入式密鑰供應(yīng)系統(tǒng)/方法。圖1示出一種典型應(yīng)用,其中總體系統(tǒng)100的一個(gè)端點(diǎn)是在智能手機(jī)或其它計(jì)算裝置106的受信任執(zhí)行環(huán)境(TEE)的嵌入式系統(tǒng)或裝置104上運(yùn)行的受信任應(yīng)用程序(TA)102;而另一端點(diǎn)是軟件供應(yīng)商110的服務(wù)器系統(tǒng)108(通常與智能手機(jī)或其它計(jì)算裝置的制造者合作)。在此類應(yīng)用中,嵌入式系統(tǒng)的TA 102通常需要經(jīng)裝備以對從合作服務(wù)器接收的各個(gè)已加密的消息114進(jìn)行解密,以及對用于發(fā)送回到服務(wù)器系統(tǒng)108的回復(fù)消息116進(jìn)行簽名。還展示了用于產(chǎn)生共模RSA密鑰對的前述內(nèi)核118和用于存儲密鑰對的存儲裝置120,以及解密數(shù)據(jù)庫122和簽名數(shù)據(jù)庫124,它們是TEE嵌入式系統(tǒng)104的全部部分,但與TA 102分離。
一般來說,本文中所描述的共模系統(tǒng)/方法大體上適用于其中裝置需要能夠產(chǎn)生公開密鑰/私用密鑰對以及需要對消息進(jìn)行簽名的任何情況(其中,模數(shù)可保密)。為了提供具體實(shí)例,現(xiàn)將描述例示性硬件環(huán)境,其中在用于智能手機(jī)移動(dòng)通信裝置或其它接入終端的SoC處理電路上提供嵌入式密鑰供應(yīng)組件。其中可實(shí)施嵌入式密鑰供應(yīng)系統(tǒng)/方法的其它例示性硬件環(huán)境包含其它通信裝置和組件或與其共同使用的外圍裝置等,以及傳統(tǒng)的桌上型計(jì)算機(jī)和連接到因特網(wǎng)的事務(wù)服務(wù)器。
圖2示出根據(jù)其中可利用各個(gè)新穎特征的一個(gè)實(shí)例的移動(dòng)通信裝置的SoC處理電路200。SoC處理電路可為高通有限公司的SnapdragonTM處理電路。SoC處理電路200包含應(yīng)用程序處理電路210,所述應(yīng)用程序處理電路210包含經(jīng)裝備以結(jié)合嵌入式共模密鑰供應(yīng)處理器213操作的多核CPU 212,所述處理器213具有加密/解密裝置215和數(shù)字簽名簽名裝置217(其可包含簽名和驗(yàn)證組件兩者)。加密/解密裝置215可用于使用基于共模所獲得的一對密鑰對的一個(gè)密鑰對來對消息進(jìn)行加密和/或解密。簽名裝置217可用于使用基于共模所獲得的密鑰對的另一密鑰對對消息進(jìn)行簽名和/或驗(yàn)證。消息本身可經(jīng)由無線通信網(wǎng)絡(luò)和其它網(wǎng)絡(luò)發(fā)送到/接收到的遠(yuǎn)程系統(tǒng)(例如,圖1的供應(yīng)商服務(wù)器),或從所述遠(yuǎn)程系統(tǒng)接收。在圖2的實(shí)例中,密鑰供應(yīng)處理器213能夠同時(shí)產(chǎn)生和供應(yīng)密鑰。在實(shí)際應(yīng)用中,可采用單獨(dú)的系統(tǒng)以產(chǎn)生RSA密鑰,而由其它系統(tǒng)供應(yīng)密鑰。還請注意,在許多實(shí)際應(yīng)用中,嵌入式裝置僅對從外部服務(wù)器接收的消息進(jìn)行解密;它并不對消息進(jìn)行加密。出于完整性和普遍性起見,展示了加密和解密組件兩者。在一些實(shí)例中,簽名裝置217還可驗(yàn)證簽名。
應(yīng)用程序處理電路210通常控制移動(dòng)通信裝置的全部組件的操作。在一個(gè)方面,應(yīng)用程序處理電路210耦合到用于控制數(shù)據(jù)的存儲的主機(jī)存儲控制器250,所述數(shù)據(jù)的存儲包含內(nèi)部共享存儲裝置232的密鑰儲存元件233中公開和私用密鑰的存儲,所述內(nèi)部共享存儲裝置232形成內(nèi)部共享硬件(HW)資源230的部分。應(yīng)用程序處理電路210還可包含引導(dǎo)ROM或RAM 218,其存儲用于SoC處理電路200的各個(gè)組件的引導(dǎo)順序指令。SoC處理電路200進(jìn)一步包含由應(yīng)用程序處理電路210控制的一或多個(gè)外圍子系統(tǒng)220。外圍子系統(tǒng)220可包含(但不限于)存儲子系統(tǒng)(例如,只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM))、視頻/圖形子系統(tǒng)(例如,數(shù)字信號處理電路(DSP)、圖形處理電路單元(GPU))、音頻子系統(tǒng)(例如,DSP、模/數(shù)轉(zhuǎn)換器(ADC)、數(shù)/模轉(zhuǎn)換器(DAC))、功率管理子系統(tǒng)、安全性子系統(tǒng)(例如,其它加密組件和數(shù)字權(quán)限管理(DRM)組件)、輸入/輸出(I/O)子系統(tǒng)(例如,鍵盤、觸摸屏)以及有線和無線連接子系統(tǒng)(例如,通用串行總線(USB)、全球定位系統(tǒng)(GPS)、Wi-Fi、全球移動(dòng)通信系統(tǒng)(GSM)、碼分多址(CDMA)、2G長期演進(jìn)(LTE)調(diào)制解調(diào)器)。例示性外圍子系統(tǒng)220(其為調(diào)制解調(diào)器子系統(tǒng))包含DSP 222、各種其它硬件(HW)和軟件(SW)組件224,以及各種射頻(RF)組件226。在一個(gè)方面中,每一外圍子系統(tǒng)220還包含引導(dǎo)ROM或RAM 228,其存儲相關(guān)聯(lián)的外圍子系統(tǒng)220的主引導(dǎo)映像(未示出)。
如所提到,SoC處理電路200進(jìn)一步包含各種內(nèi)部共享HW資源230,例如內(nèi)部共享存儲裝置232(例如,靜態(tài)RAM(SRAM)、快閃存儲器等),其由應(yīng)用程序處理電路210和各個(gè)外圍子系統(tǒng)220共享,以存儲各種運(yùn)行時(shí)間數(shù)據(jù)或其它參數(shù)以及提供主機(jī)存儲器。在圖2的實(shí)例中,內(nèi)部共享存儲裝置232包含前述可用于存儲公開和私用密鑰的的密鑰存儲裝置部分、組件或元件233。在其它實(shí)例中,密鑰存儲在移動(dòng)裝置內(nèi)的其它地方。
在一個(gè)方面中,SoC處理電路200的組件210、218、220、228和230集成在單芯片襯底上。SoC處理電路200進(jìn)一步包含各種外部共享HW資源240,其可位于不同的芯片襯底上,并且可經(jīng)由一或多個(gè)總線而與SoC處理電路200連通。外部共享HW資源240可包含(例如)外部共享存儲裝置242(例如,雙倍數(shù)據(jù)速率(DDR)動(dòng)態(tài)RAM)和/或永久性或半永久性數(shù)據(jù)存儲裝置244(例如,安全數(shù)字(SD)卡、硬盤驅(qū)動(dòng)器(HDD)、嵌入式多媒體卡、通用快閃裝置(UFS)等),其可由應(yīng)用程序處理電路210和各種外圍子系統(tǒng)220共享以存儲各種類型的數(shù)據(jù),例如操作系統(tǒng)(OS)信息、系統(tǒng)文件、程序、應(yīng)用程序、用戶數(shù)據(jù)、音頻/視頻文件等。當(dāng)并有SoC處理電路200的移動(dòng)通信裝置啟動(dòng)時(shí),SoC處理電路開始系統(tǒng)啟動(dòng)過程,其中應(yīng)用程序處理電路210可接入引導(dǎo)ROM或RAM 218,以檢索用于SoC處理電路200的引導(dǎo)指令,所述引導(dǎo)指令包含用于各種外圍子系統(tǒng)220的引導(dǎo)順序指令。外圍子系統(tǒng)220還可具有額外的外圍引導(dǎo)ROM或RAM 228。
例示性共模密鑰產(chǎn)生/處理程序
圖3示出可由圖2的嵌入式密鑰供應(yīng)處理器或其它經(jīng)合適裝備的組件、裝置、系統(tǒng)或處理電路采用的共模密鑰供應(yīng)的實(shí)例300。在302處,密鑰供應(yīng)處理器獲得素?cái)?shù)p和q,并使用它們來計(jì)算模數(shù)N=pq。通常,素?cái)?shù)的長度約為1024到2048位。在304處,密鑰供應(yīng)處理器基于p和q產(chǎn)生并存儲公開密鑰(e1,e2),同時(shí)驗(yàn)證p-1和q-1同時(shí)與e1和e2兩者互質(zhì)。在306處,通過反轉(zhuǎn)e1模(p-1)(q-1)和e2模(p-1)(q-1)以由此產(chǎn)生數(shù)學(xué)上不同或不相關(guān)的第一和第二密鑰對(e1,d1)和(e2,d2),密鑰供應(yīng)處理器產(chǎn)生并存儲私用密鑰(d1,d2)。也就是說,密鑰對是彼此在數(shù)學(xué)上關(guān)系較為疏遠(yuǎn)的。如上所述,不同或不相關(guān)的意思是e1、e2都不是另一者的倍數(shù)或取決于應(yīng)用,e1不是e2的倍數(shù),或e2不是e1的倍數(shù)。應(yīng)注意,僅使用一個(gè)條件來防止一些情境,同時(shí)使用兩個(gè)條件來防止更多的情境或全部相關(guān)的情境。舉例來說,兩個(gè)密鑰對可為:a)互素,b)各自可由素?cái)?shù)除盡,所述素?cái)?shù)不可由其它數(shù)除盡,c)一者不是另一者的冪(整數(shù)),和/或更一般地說,d)一者不是另一者的倍數(shù)(整數(shù))。也就是說,可獲得第一和第二公開密鑰(e1,e2),以使得第一公開密鑰(e1)不是第二公開密鑰(e2)的整倍數(shù),和/或第二公開密鑰(e2)不是第一公開密鑰(e1)的整倍數(shù)。在308處,密鑰供應(yīng)處理器使用公開密鑰/私用密鑰對中的一個(gè)(例如,e1,d1)來對消息進(jìn)行加密和/或解密。如已提到的,在許多實(shí)際應(yīng)用中,智能手機(jī)的嵌入式裝置僅對從外部服務(wù)器接收的消息進(jìn)行解密;它并不對消息進(jìn)行加密。出于普遍性起見,展示了這兩個(gè)程序。在310處,密鑰供應(yīng)處理器使用公開密鑰/私用密鑰對中的另一者(例如,e2,d2)來對消息進(jìn)行簽名和/或驗(yàn)證。在312處,密鑰供應(yīng)處理器將已加密的消息和/或經(jīng)簽名的消息發(fā)射到遠(yuǎn)程系統(tǒng),例如合作軟件供應(yīng)商的服務(wù)器。
圖4提供說明嵌入式密碼裝置402和合作供應(yīng)商的遠(yuǎn)程服務(wù)器404的例示性操作的時(shí)序圖400。在此實(shí)例中,處理開始于406,在406中,嵌入式密碼裝置產(chǎn)生RSA模數(shù)N=pq,其中p和q是素?cái)?shù),公開密鑰(e1,e2)是這樣的:e1和e2不同并與p-1和q-1兩者互質(zhì),如已經(jīng)論述的。在408處,通過反轉(zhuǎn)e1和e2模(p-1)(q-1)以由此產(chǎn)生第一和第二密鑰對(e1,d1)和(e2,d2),嵌入式密碼裝置產(chǎn)生私用密鑰(d1,d2),同樣如已經(jīng)論述的。通常,406和408的操作僅由每一裝置執(zhí)行一次。圖4的其余操作(即410和之后的操作)可重復(fù)多次,并通常針對每一合作供應(yīng)商執(zhí)行一次或多次,即,針對在裝置的TEE中運(yùn)行的每一TA執(zhí)行一次(并且特定的供應(yīng)商在裝置內(nèi)可具有大于一個(gè)的TA)。也就是說,僅僅當(dāng)裝置第一次運(yùn)行協(xié)議時(shí)執(zhí)行406和408,而針對與合作供應(yīng)商的每個(gè)第一次連接來執(zhí)行其余的步驟。在410處,嵌入式密碼裝置將公開密鑰(e1,e2)發(fā)送到遠(yuǎn)程服務(wù)器,所述遠(yuǎn)程服務(wù)器在412處通過利用公開密鑰(e1)中的第一者產(chǎn)生和加密消息來作出響應(yīng)。此消息可包含口令。在414處,將已加密的消息發(fā)送到嵌入式密碼裝置,所述嵌入式密碼裝置在416處使用(e1,d1)對消息進(jìn)行解密,并使用(e2,d2)對回復(fù)消息進(jìn)行簽名。應(yīng)注意,如果在416處所接收的消息含有口令,那么密碼裝置使用應(yīng)用特有的方法來計(jì)算響應(yīng)。在418處,將經(jīng)簽名的回復(fù)消息發(fā)送到遠(yuǎn)程服務(wù)器,所述遠(yuǎn)程服務(wù)器在420處使用公開密鑰(e2)來驗(yàn)證回復(fù)消息的簽名。在422處,遠(yuǎn)程服務(wù)器接著處理消息并且,如果簽名驗(yàn)證成功,那么在424處,服務(wù)器發(fā)送應(yīng)答。也就是說,如果全部驗(yàn)證通過,那么發(fā)送應(yīng)答。這個(gè)應(yīng)答可含有將供應(yīng)到(安全地存儲)裝置且使用裝置的公開密鑰(e1)進(jìn)行加密的數(shù)據(jù)。
如所提到,消息412可含有口令(即,隨機(jī)數(shù))。服務(wù)器可以或可以不使用服務(wù)器自有的密鑰來對這個(gè)消息進(jìn)行簽名,所述服務(wù)器自有的密鑰自身鏈接到存儲在裝置中的公開證書。通過此方法,裝置知道它從服務(wù)器獲得了真實(shí)的消息。隨后,裝置進(jìn)行回復(fù)。如果消息412含有口令,那么經(jīng)簽名的回復(fù)消息418可含有對這個(gè)口令的響應(yīng)。利用服務(wù)器密鑰對此消息進(jìn)行加密不是必要的,但是這種是有可能的。然而,重要的是,請注意,消息含有初始口令或響應(yīng),并且消息是經(jīng)簽名的(從而,簽名可發(fā)揮正確響應(yīng)的作用,因?yàn)閮H由裝置就可完成它,并且服務(wù)器可以對其進(jìn)行驗(yàn)證)。此時(shí),424的應(yīng)答還可含有數(shù)據(jù),所述數(shù)據(jù)可含有由服務(wù)器供應(yīng)到裝置的實(shí)際密鑰。此密鑰是應(yīng)用特有的,并且服務(wù)器和裝置中的目標(biāo)TA之間的任何其它的通信使用這個(gè)新信息。
圖5概述智能手機(jī)或其它用戶裝置寄存與各個(gè)合作供應(yīng)商有關(guān)的各種TA的方式。智能手機(jī)通常安裝有與若干合作軟件供應(yīng)商中的每一個(gè)相關(guān)聯(lián)的若干TA。開始于502,在裝置啟動(dòng)之后,針對若干合作軟件供應(yīng)商中的每一個(gè)供應(yīng)商的若干TA中的每一個(gè)TA,用戶裝置產(chǎn)生用于裝置的共模密鑰對(e1,d1)和(e2,d2)。(這可對應(yīng)于圖4的框406和408。)在504處,用戶裝置確定或檢測特定合作供應(yīng)商的特定TA是否已啟動(dòng),接著在504處,確定這是否是第一次連接(即,TA是否已經(jīng)寄存有合作供應(yīng)商。)如果這是第一次連接,那么用戶裝置:發(fā)送用于合作供應(yīng)商的密鑰對的公開密鑰(e1,e2);作為回復(fù),接收已加密的消息;解密消息;對回復(fù)消息進(jìn)行簽名并發(fā)送;以及接收包含待供應(yīng)的數(shù)據(jù)的應(yīng)答。(這可對應(yīng)于圖4的框410到424。)處理返回到用于額外的TA的504。最終,使用各個(gè)共模密鑰對以此方式登記了與全部合作供應(yīng)商相關(guān)聯(lián)的全部TA。在一些情況下,用于特定供應(yīng)商的特定TA可需要重新登記,并且,如果是這樣,那么針對那一TA重復(fù)框506的操作。在極少的情況中,還可需要產(chǎn)生新的共模密鑰對,以用于特定TA或用于特定供應(yīng)商,并且如果是這樣,那么針對那一TA和/或針對那一供應(yīng)商重復(fù)框502的操作。
圖6示出用于本文中所描述的嵌入式共模密鑰供應(yīng)程序以(例如)促進(jìn)初始通信問好(hellos)、握手等的例示性軟件組件。服務(wù)器有效載荷庫602由嵌入式密鑰供應(yīng)裝置的制造者(例如,其中安裝有嵌入式密鑰供應(yīng)裝置的組件的智能手機(jī)的制造者)提供。服務(wù)器有效載荷庫602可包含經(jīng)裝備以執(zhí)行各種功能的軟件組件604。還通過嵌入式密鑰供應(yīng)裝置的制造者提供客戶端有效載荷庫606,以安裝在合作供應(yīng)商的遠(yuǎn)程服務(wù)器(例如,圖1的服務(wù)器系統(tǒng)108)上??蛻舳擞行лd荷庫606可包含經(jīng)裝備以執(zhí)行各種功能的軟件組件608。在使用時(shí),服務(wù)器有效載荷庫602經(jīng)由網(wǎng)頁服務(wù)器/測試儀/硬件安全性模塊(HSM)610與客戶端有效載荷庫606通信,其可使用通信組件/協(xié)議612,例如HTTP、HTTPS、JTAG、TIC或USB。同樣地,客戶端有效載荷庫606經(jīng)由裝置傳輸堆棧614與服務(wù)器有效載荷庫602通信,其可使用相同的協(xié)議616。(應(yīng)注意,HTTP表示超文本傳送協(xié)議,JTAG表示聯(lián)合測試行動(dòng)小組,TIC表示信息和通信技術(shù),以及USB表示通用串行總線。)在此例子中可在兩個(gè)庫之間傳送的例示性消息包含Hello(證書、口令)消息618、HelloResp(響應(yīng)消息(ReponseMsg))消息620、SetKey(包裹密鑰,證書)消息622和結(jié)果消息624。這些消息的細(xì)節(jié)對于本發(fā)明的目的來說并不重要,而僅作為實(shí)例提供。
在說明性實(shí)例中,客戶端有效載荷庫606可包含軟件組件608,其經(jīng)裝備以使用證書和口令來處理hello函數(shù)。這可通過以下操作(例如)來執(zhí)行:將證書鏈接到嵌入式根中、產(chǎn)生已加密的裝置公開密鑰(DPK_EK)、產(chǎn)生已加密的芯片ID、產(chǎn)生口令響應(yīng)以及執(zhí)行已加密的裝置公開密鑰(DPK_EK)、芯片ID和口令響應(yīng)的RSA加密。客戶端有效載荷庫606還可包含軟件組件,所述軟件組件經(jīng)裝備以通過將證書鏈接到嵌入式根中而利用證書設(shè)置包裹密鑰(SetKey)、驗(yàn)證口令和響應(yīng),以及產(chǎn)生裝置公開密鑰(DPK)和解開密鑰與其提供的任何元數(shù)據(jù)。
在說明性性實(shí)例中,服務(wù)器有效載荷庫602可包含軟件組件604,所述軟件組件604經(jīng)裝備以使用密碼質(zhì)量(cryptographic quality)隨機(jī)數(shù)產(chǎn)生器(RNG)或PRNG來產(chǎn)生口令。服務(wù)器有效載荷庫602還可包含軟件組件,其經(jīng)裝備以基于響應(yīng)消息(ResponseMsg)、私用密鑰、業(yè)務(wù)密鑰和一些元數(shù)據(jù)來包裹業(yè)務(wù)密鑰。例如,軟件可采用RSA以使用私用密鑰對從客戶端有效載荷庫606接收的響應(yīng)消息進(jìn)行解密,并接著提取已加密的芯片ID、已加密的裝置公開密鑰(DPK_EK)和響應(yīng)。隨后,軟件使用已加密的芯片ID來驗(yàn)證口令響應(yīng),并執(zhí)行資料庫查詢。軟件使用裝置公開密鑰(DPK_EK)來對資料庫記錄進(jìn)行解密、驗(yàn)證資料庫記錄的散列、提取裝置公開密鑰(DPK)、密鑰包裹業(yè)務(wù)密鑰和元數(shù)據(jù)。同樣,這些只是在利用共模密鑰對的同時(shí)可執(zhí)行的軟件功能的說明性實(shí)例。
圖7另外示出例示性軟件組件,具體地說,涉及認(rèn)證口令和響應(yīng)。服務(wù)器有效載荷庫702由嵌入式密鑰供應(yīng)裝置的制造者提供,所述嵌入式密鑰供應(yīng)裝置可包含經(jīng)裝備以執(zhí)行各種功能的軟件組件704??蛻舳擞行лd荷庫706可包含經(jīng)裝備以執(zhí)行各種功能的軟件組件708。在使用時(shí),服務(wù)器有效載荷庫702同樣經(jīng)由網(wǎng)頁服務(wù)器/測試儀/HSM 710與客戶端有效載荷庫706通信,其可使用通信組件/協(xié)議712,例如,HTTP、HTTPS、JTAG、TIC和USB。同樣地,客戶端有效載荷庫706經(jīng)由裝置傳輸堆棧714與服務(wù)器有效載荷庫702通信,其可使用相同的協(xié)議716。在此例子中可在兩個(gè)庫之間傳送的例示性消息包含認(rèn)證(口令)消息718、AuthResp(芯片ID、裝置公開密鑰、經(jīng)簽名的響應(yīng))消息720、SendKey(包裹密鑰、證書)消息722和結(jié)果消息724。這些消息和圖7的那些促進(jìn)了公開密鑰的交換等。
在說明性性實(shí)例中,服務(wù)器有效載荷庫702可包含軟件組件704,所述軟件組件704經(jīng)裝備以使用密碼質(zhì)量RNG或PRNG來產(chǎn)生前述口令。軟件還包含組件,其經(jīng)操作以使用芯片ID、資料庫種子、認(rèn)可的TA散列集合、經(jīng)簽名的響應(yīng)和裝置公開密鑰來認(rèn)證裝置。例如,軟件可產(chǎn)生用于使用裝置公開密鑰、芯片ID和資料庫種子進(jìn)行認(rèn)證的散列,隨后使用散列來驗(yàn)證裝置公開密鑰(基于資料庫查詢)。軟件還可使用RSA來以通過用于SoC(例如,圖2的SoC處理電路200)的公開密鑰來驗(yàn)證響應(yīng),隨后還驗(yàn)證口令,并且任選地,針對供應(yīng)商認(rèn)可清單驗(yàn)證TA散列,以及最后將“不透明”數(shù)據(jù)返回到調(diào)用程序。軟件還包含組件,其經(jīng)操作以使用與上文結(jié)合圖6所列的那些略微不同的參數(shù)集合來包裹業(yè)務(wù)密鑰。例如,圖7的軟件可使用以下各者來執(zhí)行包裹業(yè)務(wù)密鑰功能:芯片ID、資料庫種子、經(jīng)簽名的響應(yīng)、裝置公開密鑰、私用密鑰(KPSP)、業(yè)務(wù)密鑰和一些密鑰元數(shù)據(jù)。這可通過認(rèn)證裝置、隨后使用RNG以產(chǎn)生AES256包裹密鑰來實(shí)現(xiàn)。使用業(yè)務(wù)密鑰和密鑰元數(shù)據(jù)來執(zhí)行密鑰包裹。包裹密鑰使用SoC公開密鑰進(jìn)行加密。又另外,包裹業(yè)務(wù)密鑰功能可使用KPSP私用密鑰來對包裹業(yè)務(wù)密鑰、包裹密鑰、響應(yīng)和TA散列進(jìn)行簽名。
在說明性實(shí)例中,客戶端有效載荷庫706可包含軟件組件708,其經(jīng)裝備以對認(rèn)證口令作出響應(yīng)。如果RSA裝置密鑰對不存在,那么軟件使用裸公開密鑰(BPK)導(dǎo)數(shù)產(chǎn)生密鑰對,并存儲所述密鑰對。隨后,軟件通過對口令、響應(yīng)、(調(diào)用TA的)TA散列和不透明數(shù)據(jù)進(jìn)行簽名而產(chǎn)生對口令的響應(yīng)。軟件還可通過將證書鏈接到嵌入式裝置根、隨后通過包裹密鑰驗(yàn)證簽名來解開業(yè)務(wù)密鑰和證書。軟件可使用SoC私用密鑰來對包裹密鑰進(jìn)行解密,隨后解開業(yè)務(wù)密鑰和其提供的任何元數(shù)據(jù)。調(diào)用TA可使用TA散列進(jìn)行驗(yàn)證,并且如果驗(yàn)證成功,那么將業(yè)務(wù)密鑰和元數(shù)據(jù)返回到調(diào)用程序。同樣,這些只是軟件功能的說明性實(shí)例。
例示性系統(tǒng)和方法
圖8示出其中可實(shí)施圖1到7的系統(tǒng)、方法和設(shè)備的總體系統(tǒng)或設(shè)備800。根據(jù)本發(fā)明的各種方面,元件或元件的任何部分或者元件的任何組合可以用處理系統(tǒng)814實(shí)施,所述處理系統(tǒng)包含一或多個(gè)處理電路804,例如圖2的SoC處理電路。例如,設(shè)備800可為移動(dòng)通信系統(tǒng)的用戶設(shè)備(UE)。設(shè)備800可與無線網(wǎng)絡(luò)控制器(RNC)一起使用。除了SoC之外,處理電路804的實(shí)例還包含微處理電路、微控制器、數(shù)字信號處理電路(DSP)、現(xiàn)場可編程門陣列(FPGA)、可編程邏輯裝置(PLD)、狀態(tài)機(jī)、門控邏輯、離散硬件電路以及經(jīng)配置以執(zhí)行貫穿本發(fā)明所描述的各種功能性的其它合適的硬件。又另外,處理系統(tǒng)814可為服務(wù)器(例如,圖1所示的服務(wù)器)的組件。也就是說,如在設(shè)備800中所利用的處理電路804,可用于實(shí)施上文所描述的與圖2、3和4中所說明的過程(以及圖11、12和13與圖16、17和18中所說明的、在下文論述的過程)中的任何一或多者,例如,執(zhí)行數(shù)字簽名產(chǎn)生、簽名和驗(yàn)證以及加密/解密的過程。
在圖8的實(shí)例中,處理系統(tǒng)814可以用大體上由總線802表示的總線架構(gòu)實(shí)施。取決于處理系統(tǒng)814的具體應(yīng)用和總體設(shè)計(jì)約束,總線802可以包含任何數(shù)目的互連總線和網(wǎng)橋??偩€802將各種電路連接在一起,所述電路包含一或多個(gè)處理電路(大體上由處理電路804表示)、存儲裝置805以及機(jī)器可讀、處理器可讀、處理電路可讀或計(jì)算機(jī)可讀媒體(大體上由非暫時(shí)性機(jī)器可讀媒體806表示)??偩€802還可連接各種其它電路,例如定時(shí)源、外圍裝置、電壓調(diào)節(jié)器以及功率管理電路,這些電路是所屬領(lǐng)域中眾所周知的且因此將不再做任何進(jìn)一步描述??偩€接口808提供總線802和收發(fā)器810之間的接口,所述收發(fā)器810可包含接收器和發(fā)射器。收發(fā)器810提供用于經(jīng)由發(fā)射媒體與各種其它設(shè)備通信的裝置。取決于設(shè)備的性質(zhì),還可提供用戶接口812(例如,小鍵盤、顯示器、揚(yáng)聲器、麥克風(fēng)、操縱桿)。
處理電路804負(fù)責(zé)管理總線802和一般處理,包含存儲在機(jī)器可讀媒體806上的軟件的執(zhí)行。所述軟件在由處理電路804執(zhí)行時(shí)使得處理系統(tǒng)814執(zhí)行本文中所描述的各種功能以用于任何特定設(shè)備。機(jī)器可讀媒體806還可用于存儲由處理電路804在執(zhí)行軟件時(shí)操控的數(shù)據(jù)。
在至少一些實(shí)例中,處理電路804經(jīng)配置以獲得第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模;使用第一公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行解密;通過使用第二公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行簽名,以獲得消息的數(shù)字簽名;以及收發(fā)器810的發(fā)射器裝置經(jīng)配置以從密碼裝置發(fā)送數(shù)字簽名。
此外,在至少一些實(shí)例中,處理電路804(或用于處理的其它裝置)提供用于獲得第一和第二公開密鑰/私用密鑰對的裝置,其中第一和第二公開密鑰/私用密鑰對共享共模;用于使用第一公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行解密的裝置;用于通過使用第二公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行簽名以獲得消息的數(shù)字簽名的裝置;以及收發(fā)器810的發(fā)射器裝置(或其它用于發(fā)射的裝置)提供用于從密碼裝置發(fā)送數(shù)字簽名的裝置。在一些實(shí)例中,處理電路經(jīng)進(jìn)一步配置以提供裝置,所述裝置用于獲得第一和第二公開密鑰(e1,e2),以使得第一公開密鑰(e1)不是第二公開密鑰(e2)的倍數(shù)和/或第二公開密鑰(e2)不是第一公開密鑰(e1)的倍數(shù)。在一些實(shí)例中,處理電路經(jīng)進(jìn)一步配置以提供裝置,所述裝置用于獲得素?cái)?shù)p和q,同時(shí)驗(yàn)證p-1和q-1與第一公開密鑰(e1)和第二公開密鑰(e2)兩者互質(zhì)。
又另外,在至少一些實(shí)例中,收發(fā)器810的接收器裝置經(jīng)配置以從單獨(dú)的裝置接收第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰,其中第一和第二公開密鑰/私用密鑰對共享共模;以及處理電路804經(jīng)配置以使用共享共模的第一和第二公開密鑰/私用密鑰對的第一公開密鑰來對消息進(jìn)行加密;使用收發(fā)器810的發(fā)射器裝置將已加密的消息發(fā)送到所述單獨(dú)的裝置;使用收發(fā)器810的接收器裝置從所述單獨(dú)的裝置接收對消息的經(jīng)簽名的回復(fù),其中所述消息已經(jīng)利用使用第二公開密鑰/私用密鑰對的私用密鑰所獲得的簽名進(jìn)行簽名;以及使用共享共模的第一和第二公開密鑰/私用密鑰對的第二公開密鑰來驗(yàn)證經(jīng)簽名的回復(fù)的簽名。
此外,在至少一些實(shí)例中,收發(fā)器810的接收器裝置(或用于接收的其它裝置)提供用于從單獨(dú)的裝置接收第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰的裝置,其中第一和第二公開密鑰/私用密鑰對共享共模;以及處理電路804(或用于處理的其它裝置)提供用于使用共享共模的第一和第二公開密鑰/私用密鑰對的第一公開密鑰來對消息進(jìn)行加密的裝置;用于使用收發(fā)器810的發(fā)射器裝置將已加密的消息發(fā)送到所述單獨(dú)的裝置的裝置;用于使用收發(fā)器810的接收器裝置(或用于接收的其它裝置)從所述單獨(dú)的裝置接收對消息的經(jīng)簽名的回復(fù)的裝置,其中所述消息已利用使用第二公開密鑰/私用密鑰對的私用密鑰所獲得的簽名進(jìn)行簽名;以及用于使用共享共模的第一和第二公開密鑰/私用密鑰對的第二公開密鑰來驗(yàn)證經(jīng)簽名的回復(fù)的簽名的裝置。在一些實(shí)例中,第一和第二公開密鑰/私用密鑰對不同于彼此。在一些實(shí)例中,第一和第二公開密鑰(e1,e2)是這樣的:第一公開密鑰(e1)不是第二公開密鑰(e2)的倍數(shù),和/或第二公開密鑰(e2)不是第一公開密鑰(e1)的倍數(shù)。在一些實(shí)例中,共模(N)是N=pq,其中p和q是素?cái)?shù)。
處理系統(tǒng)中的一或多個(gè)處理電路804可執(zhí)行軟件或軟件組件。軟件應(yīng)被廣泛地解釋為意味著指令、指令集、代碼、代碼段、程序代碼、程序、子程序、軟件模塊、應(yīng)用、軟件應(yīng)用、軟件包、例程、子例程、物件、可執(zhí)行代碼、執(zhí)行線程、程序、函數(shù)等,而不管其是被稱作軟件、固件、中間件、微碼、硬件描述語言還是其它者。處理電路可執(zhí)行任務(wù)。代碼段可表示程序、函數(shù)、子程序、程序、例程、子例程、模塊、軟件包、類別,或指令、數(shù)據(jù)結(jié)構(gòu)或程序語句的任意組合。代碼段可通過傳遞和/或接收信息、數(shù)據(jù)、自變量、參數(shù)或存儲器或存儲裝置內(nèi)容而耦合到另一代碼段或硬件電路。信息、自變量、參數(shù)、數(shù)據(jù)等可經(jīng)由包含存儲器共享、消息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)热魏魏线m的方式傳遞、轉(zhuǎn)發(fā)或傳輸。
軟件可駐留在機(jī)器可讀媒體806上。機(jī)器可讀媒體806可為非暫時(shí)性機(jī)器可讀媒體。非暫時(shí)性處理電路可讀、機(jī)器可讀或計(jì)算機(jī)可讀媒體包含,舉例來說,磁性存儲裝置(例如,硬盤、軟性磁盤、磁條)、光盤(例如,壓縮光盤(CD)或數(shù)字多功能光盤(DVD))、智能卡、快閃存儲器裝置(例如,卡、操縱桿或密鑰驅(qū)動(dòng))、RAM、ROM、可編程ROM(PROM)、可擦除PROM(EPROM)、電可擦除PROM(EEPROM)、寄存器、可移動(dòng)磁盤、硬盤、CD-ROM和用于存儲可由機(jī)器或計(jì)算機(jī)存取和讀取的軟件和/或指令的任何其他合適的媒體。術(shù)語“機(jī)器可讀媒體”、“計(jì)算機(jī)可讀媒體”、“處理電路可讀媒體”和/或“處理器可讀媒體”可包含(但不限于)非暫時(shí)性媒體,例如,便攜式或固定存儲裝置、光學(xué)存儲裝置,以及能夠存儲、含有或承載指令和/或數(shù)據(jù)的各種其它媒體。因此,本文中所描述的各種方法可以完全或部分通過可存儲在“機(jī)器可讀媒體”、“計(jì)算機(jī)可讀媒體”、“處理電路可讀媒體”和/或“處理器可讀媒體”中且通過一或多個(gè)處理電路、機(jī)器和/或裝置執(zhí)行的指令和/或數(shù)據(jù)來實(shí)施。舉例來說,機(jī)器可讀媒體還可包含載波、傳輸線,及用于傳輸可由計(jì)算機(jī)存取和讀取的軟件和/或指令的任何其它合適的媒體。
機(jī)器可讀媒體806可駐留在處理系統(tǒng)814中、在處理系統(tǒng)814外部或跨越包含處理系統(tǒng)814的多個(gè)實(shí)體分布。機(jī)器可讀媒體806可實(shí)施于計(jì)算機(jī)程序產(chǎn)品中。舉例來說,計(jì)算機(jī)程序產(chǎn)品可包含封裝材料中的計(jì)算機(jī)可讀媒體。取決于特定應(yīng)用及強(qiáng)加于整個(gè)系統(tǒng)上的總設(shè)計(jì)約束,所屬領(lǐng)域的技術(shù)人員將認(rèn)識到如何最好地實(shí)施貫穿本發(fā)明呈現(xiàn)的所描述的功能性。例如,機(jī)器可讀存儲媒體806可具有一或多個(gè)指令,所述一或多個(gè)指令在由處理電路804執(zhí)行時(shí)使得處理電路:獲得第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模;使用第一公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行解密;通過使用第二公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行簽名,以獲得消息的數(shù)字簽名;以及從密碼裝置發(fā)送數(shù)字簽名。
圖式中所說明的組件、步驟、特征和/或功能中的一或多者可以重新布置和/或組合成單個(gè)組件、塊、特征或功能或體現(xiàn)在若干組件、步驟或功能中。在不脫離本發(fā)明的情況下,還可以添加額外的元件、組件、步驟和/或功能。圖式中所說明的設(shè)備、裝置和/或組件可經(jīng)配置以執(zhí)行圖式中所描述的方法、特征或步驟中的一或多者。本文中所描述的算法還可有效地實(shí)施于軟件中和/或嵌入于硬件中。
可用通用處理電路、數(shù)字信號處理電路(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯組件、離散門或晶體管邏輯、離散硬件組件或其經(jīng)設(shè)計(jì)以執(zhí)行本文中描述的功能的任何組合來實(shí)施或執(zhí)行結(jié)合本文中揭示的實(shí)例而描述的各種說明性邏輯塊、模塊、電路、元件和/或組件。通用處理電路可為微處理電路,但在替代實(shí)施例中,處理電路可為任何常規(guī)處理電路、控制器、微控制器或狀態(tài)機(jī)。處理電路還可實(shí)施為計(jì)算組件的組合,例如,DSP和微處理電路的組合、多個(gè)微處理電路的組合、結(jié)合DSP核心的一或多個(gè)微處理電路的組合或任何其它此類配置。
因此,在本發(fā)明的一個(gè)方面中,圖2中所說明的處理器213可為專用處理電路(例如,ASIC)),其經(jīng)專門設(shè)計(jì)和/或硬連線以執(zhí)行圖3、4和/或5(和/或下文論述的圖11、12和13)中所描述的算法、方法和/或塊中的至少一些,例如針對產(chǎn)生共模密鑰對、解密消息和產(chǎn)生數(shù)字簽名的那些。因此,這類專用處理電路(例如,ASIC)可為用于執(zhí)行圖3、4和/或5(和/或下文論述的圖11、12和13)中所描述的算法、方法和/或塊的裝置的一個(gè)實(shí)例。機(jī)器可讀存儲媒體可存儲指令,所述指令在由專用處理電路(例如,ASIC)執(zhí)行時(shí)使得專用處理電路執(zhí)行本文中所描述的算法、方法和/或塊。在本發(fā)明的另一方面中,圖1的遠(yuǎn)程服務(wù)器系統(tǒng)108還可包含專用處理電路,其經(jīng)專門設(shè)計(jì)和/或硬連線以執(zhí)行圖3和/或4(和/或下文論述的圖16、17和18)中所描述的算法、方法和/或塊中的至少一些,例如針對接收共模密鑰對、加密消息和驗(yàn)證數(shù)字簽名的那些。因此,這類專用處理電路可為用于執(zhí)行圖3和/或4(和/或下文論述的圖16、17和18)中所描述的算法、方法和/或塊的裝置的一個(gè)實(shí)例。機(jī)器可讀存儲媒體可存儲指令,所述指令在由專用處理電路(例如,ASIC)執(zhí)行時(shí)使得專用處理電路執(zhí)行本文中所描述的算法、方法和/或塊。
圖9示出所選中的(例如)具有共模嵌入式密鑰供應(yīng)處理器902的移動(dòng)裝置的處理電路804的例示性組件,所述共模嵌入式密鑰供應(yīng)處理器902包含共模密鑰產(chǎn)生器904。圖9的密鑰產(chǎn)生器904包含:素?cái)?shù)選擇模塊/電路908,其經(jīng)操作以獲得或產(chǎn)生適合于產(chǎn)生共模的素?cái)?shù);共模產(chǎn)生模塊/電路910,其經(jīng)操作以使用素?cái)?shù)來獲得或產(chǎn)生共模;以及共模公開密鑰/私用密鑰產(chǎn)生模塊/電路912,其經(jīng)操作以獲得或產(chǎn)生第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模。如上文所解釋,可產(chǎn)生三個(gè)或大于三個(gè)密鑰對,其中每一類型具有至少一個(gè)密鑰對(即,至少一個(gè)用于加密/解密,并且至少一個(gè)用于簽名/驗(yàn)證),并且其中全部密鑰對滿足公開指數(shù)無法除盡(整數(shù))彼此的條件。其中產(chǎn)生第一和第二密鑰對的實(shí)例在圖12中展示(在下文描述),其中產(chǎn)生三個(gè)或大于三個(gè)密鑰對的實(shí)例在圖13中展示(同樣在下文描述)。為了產(chǎn)生公開密鑰/私用密鑰對,公開密鑰反轉(zhuǎn)器模塊/電路918可用于反轉(zhuǎn)公開密鑰以形成私用密鑰??刹捎梅窍嚓P(guān)性驗(yàn)證模塊/電路916以驗(yàn)證第一和第二公開密鑰/私用密鑰對不相關(guān)。密鑰存儲控制器920控制公開密鑰/私用密鑰對的存儲。
嵌入式密鑰供應(yīng)處理器902還具有加密模塊/電路922,其經(jīng)操作以使用第一公開密鑰/私用密鑰對對消息進(jìn)行加密,和解密模塊/電路923,其經(jīng)操作以使用第一公開密鑰/私用密鑰對對消息進(jìn)行解密。又另外,嵌入式密鑰供應(yīng)處理器902還具有共模數(shù)字簽名處理器模塊/電路906,其經(jīng)操作以使用第二公開密鑰/私用密鑰對的私用密鑰來對消息進(jìn)行簽名,從而提供、獲得或以另外方式產(chǎn)生數(shù)字簽名。數(shù)字簽名處理器模塊/電路906包含簽名模塊/電路924,其經(jīng)操作以使用第二公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行簽名,和驗(yàn)證模塊/電路926,其經(jīng)操作以使用第二公開密鑰/私用密鑰對的公開密鑰來驗(yàn)證消息的簽名。簽名消息發(fā)射/接收模塊/電路928經(jīng)操作以接收和/或發(fā)射已加密的消息和經(jīng)簽名的消息,以及同時(shí)經(jīng)過加密和簽名的消息。
圖10示出所選中的用于密鑰供應(yīng)的計(jì)算機(jī)或機(jī)器可讀媒體806的例示性指令。提供共模嵌入式密鑰供應(yīng)指令1002集合,其包含共模密鑰產(chǎn)生指令1004,所述共模密鑰產(chǎn)生指令1004在由圖8的處理電路804執(zhí)行時(shí)使得處理電路控制或執(zhí)行密鑰供應(yīng)和相關(guān)操作。圖10的密鑰產(chǎn)生指令1004包含:素?cái)?shù)選擇指令1008,其經(jīng)操作以獲得或產(chǎn)生適合于產(chǎn)生共模的素?cái)?shù);共模產(chǎn)生指令1010,其經(jīng)操作以使用素?cái)?shù)來獲得或產(chǎn)生共模;以及共模公開密鑰/私用密鑰產(chǎn)生指令1012,其經(jīng)操作以獲得或產(chǎn)生至少第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模。如所提到,可產(chǎn)生三個(gè)或大于三個(gè)密鑰對,其中每一類型具有至少一個(gè)密鑰對(即,至少一個(gè)用于加密/解密,至少一個(gè)用于簽名/驗(yàn)證),并且其中全部密鑰對滿足公開指數(shù)無法除盡(整數(shù))彼此的條件。為了產(chǎn)生公開密鑰/私用密鑰對,公開密鑰反轉(zhuǎn)器指令1018可用于反轉(zhuǎn)公開密鑰以形成私用密鑰??刹捎梅窍嚓P(guān)性驗(yàn)證指令1016以驗(yàn)證第一和第二公開密鑰/私用密鑰對不相關(guān)。密鑰存儲控制器指令1020控制公開密鑰/私用密鑰對的存儲。
嵌入式密鑰供應(yīng)指令1002還包含加密指令1022,其經(jīng)操作以使用第一公開密鑰/私用密鑰對對消息進(jìn)行加密,和解密指令1023,其經(jīng)操作以使用第一公開密鑰/私用密鑰對對消息進(jìn)行解密。又另外,嵌入式密鑰供應(yīng)指令1002還包含共模數(shù)字簽名處理器指令1006,其經(jīng)操作以使用第二公開密鑰/私用密鑰對的私用密鑰來對消息進(jìn)行簽名,從而提供、獲得或以另外方式產(chǎn)生數(shù)字簽名。數(shù)字簽名處理器指令1006包含簽名指令1024,其經(jīng)操作以使用第二公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行簽名,和驗(yàn)證指令1026,其經(jīng)操作以使用第二公開密鑰/私用密鑰對的公開密鑰來驗(yàn)證消息的簽名。簽名消息發(fā)射/接收指令1028經(jīng)操作以接收和/或發(fā)射已加密的消息和經(jīng)簽名的消息,以及同時(shí)經(jīng)過加密和簽名的消息。
圖11大體上示出和概述可由圖8的處理電路804或由用于產(chǎn)生或以另外方式獲得公開密鑰/私用密鑰對且用于對消息進(jìn)行解密和簽名的其它經(jīng)適當(dāng)裝備的密碼裝置執(zhí)行的方法或程序1100。在1102處,密碼裝置獲得第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模。在1104處,密碼裝置使用第一公開密鑰/私用密鑰對的私用密鑰對消息進(jìn)行解密。在1106處,密碼裝置通過使用第二公開密鑰/私用密鑰對的私用密鑰來對消息進(jìn)行簽名,從而獲得消息的數(shù)字簽名。在1108處,密碼裝置從密碼裝置發(fā)送數(shù)字簽名。
圖12示出和概述可由圖8的處理電路804或由用于產(chǎn)生或以另外方式獲得公開密鑰/私用密鑰對且用于對消息進(jìn)行解密和簽名的其它經(jīng)適當(dāng)裝備的密碼裝置執(zhí)行的其它方法或程序1200。密碼裝置可為移動(dòng)無線裝置內(nèi)嵌入式密鑰供應(yīng)系統(tǒng)的組件。在1202處,密碼裝置獲得第一和第二RSA公開密鑰/私用密鑰對(e1,d1)和(e2,d2),其中第一和第二公開密鑰/私用密鑰對:(1)共享共模N=pq,其中p和q是小于模數(shù)N的素?cái)?shù),并且p-1和q-1與第一公開密鑰(e1)和第二公開密鑰(e2)兩者互質(zhì),以及(2)不同于彼此;并且其中獲得第一和第二公開密鑰(e1,e2),以使得第一公開密鑰(e1)不是第二公開密鑰(e2)的整倍數(shù),和/或第二公開密鑰(e2)不是第一公開密鑰(e1)的整倍數(shù);并且其中通過反轉(zhuǎn)第一公開密鑰(e1)和第二公開密鑰(e2)模(p-1)(q-1),獲得第一私用密鑰(d1)和第二私用密鑰(d2)。在1204處,密碼裝置使用第一公開密鑰/私用密鑰對(e1,d1)的私用密鑰對消息進(jìn)行解密,其中從遠(yuǎn)程系統(tǒng)(例如,圖1的合作服務(wù)器)接收待解密的消息。在1206處,密碼裝置通過使用第二公開密鑰/私用密鑰對(e2,d2)的私用密鑰(d2)對消息進(jìn)行簽名,從而獲得消息的數(shù)字簽名。在1206處,密碼裝置將數(shù)字簽名從密碼裝置發(fā)送到遠(yuǎn)程系統(tǒng)。
圖13示出其中產(chǎn)生大于兩個(gè)密鑰對的實(shí)例,其中每一類型具有至少一個(gè)密鑰對(即,至少一個(gè)用于加密/解密,至少一個(gè)用于簽名/驗(yàn)證),其中它們?nèi)繚M足密鑰對的公開指數(shù)無法除盡(整數(shù))彼此的條件。也就是說,圖13示出和概述可由圖8的處理電路804或由用于產(chǎn)生或以另外方式獲得公開密鑰/私用密鑰對且用于在使用三個(gè)或大于三個(gè)密鑰對時(shí)對消息進(jìn)行解密和簽名的其它經(jīng)適當(dāng)裝備的密碼裝置執(zhí)行的其它方法或程序1300。在1302處,密碼裝置獲得公開密鑰/私用密鑰對(e1,d1)…(en,dn),其中n大于2(即,三或大于三),并且其中公開密鑰/私用密鑰對:(1)共享共模N=pq,其中p和q是小于模數(shù)N的素?cái)?shù),并且p-1和q-1與全部公開密鑰(e1…en)互質(zhì),以及(2)每一個(gè)不同于彼此;并且其中獲得公開密鑰(e1…en)中的每一個(gè),以使得每一公開密鑰不是另一公開密鑰中的任一個(gè)的整倍數(shù);并且其中通過反轉(zhuǎn)對應(yīng)的公開密鑰模(p-1)(q-1)獲得每一單個(gè)私用密鑰。在1304處,密碼裝置使用公開密鑰/私用密鑰對的私用密鑰中的一個(gè)對消息進(jìn)行解密,其中從遠(yuǎn)程系統(tǒng)接收待解密的消息。在1306處,密碼裝置通過使用其它公開密鑰/私用密鑰對中的一個(gè)公開密鑰/私用密鑰對的私用密鑰來對消息進(jìn)行簽名,從而獲得消息的數(shù)字簽名。在1308處,密碼裝置將數(shù)字簽名從密碼裝置發(fā)送到遠(yuǎn)程系統(tǒng)。
因此,圖8到13示出和概述與移動(dòng)裝置或其類似者的共模密碼處理組件的使用有關(guān)的各個(gè)方面,所述移動(dòng)裝置經(jīng)操作以產(chǎn)生和利用共模密鑰對。圖14到18示出和概述與遠(yuǎn)程系統(tǒng)(例如,合作軟件服務(wù)器)的共模組件的使用有關(guān)的各個(gè)方面,所述遠(yuǎn)程系統(tǒng)經(jīng)操作以接收和利用共模密鑰對的公開密鑰。
圖14示出所選中的具有共模密鑰處理器1402的(例如)遠(yuǎn)程服務(wù)器(例如,圖1的服務(wù)器系統(tǒng)108)的處理電路1400的例示性組件,所述共模密鑰處理器1402包含共模公開密鑰接收模塊/電路1404,其經(jīng)操作以接收共享共模的兩個(gè)或大于兩個(gè)公開密鑰,所述公開密鑰可使用共模公開密鑰存儲模塊/電路1406進(jìn)行存儲。例如,公開密鑰接收模塊/電路1404可從圖9的裝置接收第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰,其中第一和第二公開密鑰/私用密鑰對共享共模。使用共模公開密鑰中的至少一個(gè)的去話消息(去到例如圖9的裝置)的加密可使用加密模塊/電路1408執(zhí)行,以(例如)使用第一和第二公開密鑰/私用密鑰對的第一公開密鑰對消息進(jìn)行加密。任何所接收的消息的解密可通過解密模塊/電路1410使用遠(yuǎn)程系統(tǒng)的至少一個(gè)私用密鑰來執(zhí)行。
又另外,共模數(shù)字簽名處理器模塊/電路1412經(jīng)操作以使用共模密鑰對來控制簽名驗(yàn)證程序等等。更確切地說,驗(yàn)證模塊/電路1414經(jīng)操作以驗(yàn)證由遠(yuǎn)程系統(tǒng)接收到的消息的簽名,其中驗(yàn)證使用共模密鑰對的公開密鑰。例如,驗(yàn)證模塊/電路1414可使用一對共模密鑰對的第二公開密鑰來驗(yàn)證從圖9的裝置接收的經(jīng)簽名的回復(fù)的簽名。還可提供簽名模塊/電路1416,以通過使用遠(yuǎn)程系統(tǒng)的私用密鑰對消息進(jìn)行簽名,從而提供、獲得或以另外方式產(chǎn)生數(shù)字簽名。公開密鑰/回復(fù)消息接收模塊/電路1418經(jīng)操作以從遠(yuǎn)程裝置(例如,圖9的裝置)接收共享共模的公開密鑰,以從遠(yuǎn)程裝置接收經(jīng)簽名的回復(fù)消息,以及接收其它信息或數(shù)據(jù)。已加密的消息發(fā)射模塊/電路1420經(jīng)操作以將已加密的消息發(fā)射到遠(yuǎn)程裝置,并用于發(fā)射其它信息或數(shù)據(jù)。
圖15示出所選中的用于處理和利用共模公開密鑰對的機(jī)器或計(jì)算機(jī)可讀媒體1500的例示性指令。提供共模密鑰供應(yīng)指令1502的集合,所述指令在由(例如)遠(yuǎn)程服務(wù)器系統(tǒng)的處理電路執(zhí)行時(shí)使得系統(tǒng)控制或執(zhí)行密鑰供應(yīng)和相關(guān)操作。圖15的共模密鑰處理指令包含:共模公開密鑰接收指令1504,其經(jīng)操作以接收共享共模的兩個(gè)或大于兩個(gè)公開密鑰,所述公開密鑰可在共模公開密鑰存儲指令1506的控制下進(jìn)行存儲。例如,公開密鑰接收指令1504可控制來自圖9的裝置的第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰的接收,其中第一和第二公開密鑰/私用密鑰對共享共模。使用共模公開密鑰中的至少一個(gè)的去話消息(去到例如圖9的裝置)的加密可使用加密指令1508執(zhí)行,以(例如)使用第一和第二公開密鑰/私用密鑰對的第一公開密鑰對消息進(jìn)行加密。任何所接收的消息的解密可通過解密指令1510使用遠(yuǎn)程系統(tǒng)的至少一個(gè)私用密鑰來執(zhí)行。
又另外,共模數(shù)字簽名處理器指令1512經(jīng)操作以使用共模密鑰對來控制簽名驗(yàn)證程序等等。更確切地說,驗(yàn)證指令1514經(jīng)操作以驗(yàn)證由遠(yuǎn)程系統(tǒng)接收到的消息的簽名,其中驗(yàn)證使用共模密鑰對的公開密鑰。例如,驗(yàn)證指令1514可使用一對共模密鑰對的第二公開密鑰來驗(yàn)證從圖9的裝置接收的經(jīng)簽名的回復(fù)的簽名。還可提供簽名指令1516,以使用遠(yuǎn)程系統(tǒng)私用密鑰對消息進(jìn)行簽名,從而提供、獲得或以另外方式產(chǎn)生數(shù)字簽名。公開密鑰/回復(fù)消息接收指令1518經(jīng)操作以從遠(yuǎn)程裝置(例如,圖9的裝置)接收共享共模的公開密鑰,以從遠(yuǎn)程裝置接收經(jīng)簽名的回復(fù)消息,以及接收其它信息或數(shù)據(jù)。已加密的消息發(fā)射指令1520經(jīng)操作以將已加密的消息發(fā)射到遠(yuǎn)程裝置,并用于發(fā)射其它信息或數(shù)據(jù)。
圖16大體上示出和概述用于加密和驗(yàn)證消息的可由與密碼裝置(例如,圖9的裝置)通信的系統(tǒng)(例如,并有圖14的裝置的系統(tǒng))執(zhí)行的方法或程序1600。在1602處,系統(tǒng)從單獨(dú)的裝置接收第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰,其中第一和第二公開密鑰/私用密鑰對共享共模。在1604處,系統(tǒng)使用共享共模的第一和第二公開密鑰/私用密鑰對的第一公開密鑰對消息進(jìn)行加密。在1605處,系統(tǒng)將已加密的消息發(fā)送到所述單獨(dú)的裝置。在1606處,系統(tǒng)從所述單獨(dú)的裝置接收對消息的經(jīng)簽名的回復(fù),其中所述消息已利用使用第二公開密鑰/私用密鑰對的私用密鑰所獲得的簽名進(jìn)行簽名。在1608處,系統(tǒng)使用共享共模的第一和第二公開密鑰/私用密鑰對的第二公開密鑰來驗(yàn)證經(jīng)簽名的回復(fù)的簽名。
圖17大體上示出和概述用于加密和驗(yàn)證消息的可由與密碼裝置(例如,圖9的裝置)通信的系統(tǒng)(例如,具有圖14的裝置的系統(tǒng))執(zhí)行的其它方法或程序1700。在1702處,系統(tǒng)接收RSA公開密鑰/私用密鑰對(e1,d1)和(e2,d2)的第一和第二公開密鑰(e1,e2),其中第一和第二公開密鑰/私用密鑰對:(1)共享共模N=pq,其中p和q是小于模數(shù)N的素?cái)?shù),并且p-1和q-1與第一公開密鑰(e1)和第二公開密鑰(e2)兩者互質(zhì),以及(2)不同于彼此;并且其中第一和第二公開密鑰(e1,e2)是這樣的:第一公開密鑰(e1)不是第二公開密鑰(e2)的整倍數(shù),和/或第二公開密鑰(e2)不是第一公開密鑰(e1)的整倍數(shù)。在1704處,系統(tǒng)使用公開密鑰(e1)對消息進(jìn)行加密,并將其發(fā)送到移動(dòng)無線裝置的嵌入式系統(tǒng)。在1706處,系統(tǒng)從移動(dòng)無線裝置的嵌入式系統(tǒng)接收對消息的經(jīng)簽名的回復(fù),其中所述消息已利用使用第二公開密鑰/私用密鑰對(e2,d2)的私用密鑰(d2)所獲得的簽名進(jìn)行簽名。在1708處,系統(tǒng)使用第二公開密鑰(e2)來驗(yàn)證經(jīng)簽名的回復(fù)的簽名。
圖18大體上示出和概述用于加密和驗(yàn)證消息(其中,采用三個(gè)或大于三個(gè)密鑰對)的可由與密碼裝置(例如,圖9的裝置)通信的系統(tǒng)(例如,具有圖14的裝置的系統(tǒng))執(zhí)行的其它方法或程序1800。在1802處,系統(tǒng)接收公開密鑰/私用密鑰對集合(e1,d1)…(en,dn)的三個(gè)或大于三個(gè)公開密鑰(e1…en),其中n大于2,并且其中公開密鑰:(1)共享共模N=pq,其中p和q是小于模數(shù)N的素?cái)?shù),并且p-1和q-1與全部公開密鑰(e1…en)互質(zhì),以及(2)其中公開密鑰(e1…en)中的每一個(gè)不同于彼此;并且其中公開密鑰(e1…en)中的每一個(gè)是這樣的:每一公開密鑰不是其它公開密鑰中的任一者的整倍數(shù)。在1804處,系統(tǒng)使用公開密鑰中的一個(gè)對消息進(jìn)行加密,并將其發(fā)送到移動(dòng)無線裝置的嵌入式系統(tǒng)。在1806處,系統(tǒng)從移動(dòng)無線裝置的嵌入式系統(tǒng)接收對消息的經(jīng)簽名的回復(fù),其中所述消息已利用使用公開密鑰/私用密鑰對集合的私用密鑰所獲得的簽名進(jìn)行簽名。在1808處,系統(tǒng)使用對應(yīng)于用于獲得簽名的私用密鑰的公開密鑰來驗(yàn)證經(jīng)簽名的回復(fù)的簽名。因此,圖18示出其中產(chǎn)生大于兩個(gè)密鑰對的實(shí)例,其中每一類型具有至少一個(gè)密鑰對,并且其中全部密鑰對滿足公開指數(shù)無法除盡(整數(shù))彼此的條件。
應(yīng)注意,本發(fā)明的各方面可在本文中描述為過程,所述過程描繪為流程圖表、流程圖、結(jié)構(gòu)圖或框圖。盡管流程圖表可將操作描述為順序過程,但是許多操作可以并行或同時(shí)執(zhí)行。此外,操作的次序可重新布置。過程在其操作完成時(shí)終止。過程可以對應(yīng)于方法、函數(shù)、步驟、子例程、子程序等。當(dāng)過程對應(yīng)于函數(shù)時(shí),其終止對應(yīng)于所述函數(shù)返回到調(diào)用函數(shù)或主函數(shù)。
所屬領(lǐng)域的技術(shù)人員將進(jìn)一步了解,結(jié)合本文中所揭示的方面描述的各種說明性邏輯塊、模塊、電路和算法步驟可實(shí)施為電子硬件、計(jì)算機(jī)軟件或兩者的組合。為清楚地說明硬件與軟件的這種互換性,以上已大體就各種說明性組件、塊、模塊、電路以及步驟的功能性對它們進(jìn)行描述。此類功能性是實(shí)施為硬件還是軟件取決于具體應(yīng)用及強(qiáng)加于整個(gè)系統(tǒng)的設(shè)計(jì)約束。
結(jié)合本文中揭示的實(shí)例而描述的方法或算法可以處理單元、編程指令或其它方向的形式直接體現(xiàn)在硬件、可由處理器執(zhí)行的軟件模塊或兩者的組合中,且可含于單個(gè)裝置中或跨越多個(gè)裝置而分布。軟件模塊可駐留在RAM存儲器、快閃存儲器、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM,或此項(xiàng)技術(shù)中已知的任何其它形式的存儲媒體中。存儲媒體可耦合到處理器,使得處理器可從存儲媒體讀取信息和將信息寫入到存儲媒體。在替代方案中,存儲媒體可以與處理器成一體式。
本文中描述的本發(fā)明的各種特征可實(shí)施于不同系統(tǒng)中而不脫離本發(fā)明。應(yīng)注意,前述實(shí)施例僅為實(shí)例,且不應(yīng)解釋為限制本發(fā)明。實(shí)施例的描述意圖為說明性的,且不限制權(quán)利要求書的范疇。因此,本發(fā)明的教示可易于應(yīng)用于其它類型的設(shè)備,且所屬領(lǐng)域的技術(shù)人員將明白許多替代方案、修改及變化。