新四季網

用於籤名產生和加密/解密的共模RSA密鑰對的製作方法

2023-05-30 04:24:21 2


本申請案主張基於2014年6月10日申請的名稱為「用於籤名產生和加密/解密的共模RSA密鑰對(Common Modulus RSA Key Pairs for Signature Generation and Encryption/Decryption)」的第62/010,400號美國臨時專利申請案和2015年2月6日申請的名稱為「用於籤名產生和加密/解密的共模RS密鑰對(Common Modulus RS Key Pairs for Signature Generation and Encryption/Decryption)」的第14/616,552號美國非臨時專利申請案的優先權,所述兩個申請案被轉讓給本受讓人,並以全文引用的方式併入本文中。

技術領域

各個特徵是關於加密/解密和數字籤名產生,具體地說,是關於涉及公開和私用密鑰的非對稱密碼。



背景技術:

就密鑰管理和分配而言,例如公開密鑰系統的不對稱密碼系統(也被稱作公開密鑰系統/私用密鑰系統)通常具有優於其它密碼系統的優點。然而,公開密鑰系統通常可能難以計算,並且可涉及較大的數字籤名。密鑰產生過程可為計算昂貴的。因此,不對稱密碼系統可需要大功率的處理器,或可需要額外處理時間,這可導致延遲、使用更多能量和/或消耗電池或其它資源。

此外,通常考慮良好的密碼實踐,以具有針對不同應用/協議的單獨的密鑰。具體來說,如果不對稱密碼系統需要接收已加密的消息並對它們進行解密,以及產生數字籤名,那麼針對兩個協議具有不同的密鑰通常是可取的。然而,當使用不對稱密碼系統(例如,李維斯特-薩莫爾-阿德曼(RSA)系統)時,產生兩個密鑰通常過於計算昂貴(例如,一般來說,是只產生一個密鑰的計算量的兩倍)。尤其是在具有有限資源的密鑰供應系統的嵌入式裝置(例如,智慧型手機等)中,這可能是難以解決的。應注意,在本文中,為簡潔起見,術語「密鑰供應系統」通常指代能夠產生和/或供應密鑰的系統。應理解,實際上,可採用單獨的系統以產生RSA密鑰,同時其它系統供應密鑰。

鑑於前述,它將有助於提供改進了的密鑰產生與供應技術和系統,具體地說,有助於用於嵌入式密鑰供應系統。



技術實現要素:

在密碼裝置中操作以對消息進行解密和籤名的方法包含:獲得第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模;使用第一公開密鑰/私用密鑰對的私用密鑰對消息進行解密;通過使用第二公開密鑰/私用密鑰對的私用密鑰對消息進行籤名,以獲得消息的數字籤名;以及從密碼裝置發送數字籤名。

在另一方面,裝置包含:處理電路,其經配置以獲得第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模;使用第一公開密鑰/私用密鑰對的私用密鑰對消息進行解密;通過使用第二公開密鑰/私用密鑰對的私用密鑰對消息進行籤名,以獲得消息的數字籤名;以及發射器裝置,其經配置以從密碼裝置發送數字籤名。

在又一方面中,在系統中操作以對消息進行加密和驗證的方法包含:從單獨的裝置接收第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰,其中第一和第二公開密鑰/私用密鑰對共享共模;使用共享共模的第一和第二公開密鑰/私用密鑰對的第一公開密鑰對消息進行加密;將已加密的消息發送到單獨的裝置;從單獨的裝置接收對消息的經籤名的回覆,其中所述消息已利用使用第二公開密鑰/私用密鑰對的私用密鑰所獲得的籤名來籤名;以及使用共享共模的第一和第二公開密鑰/私用密鑰對的第二公開密鑰來驗證具有經籤名的回覆的籤名。

在再又一方面中,裝置包含:接收器裝置,其經配置以從單獨的裝置接收第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰,其中第一和第二公開密鑰/私用密鑰對共享共模;發射器裝置;以及處理電路,其經配置以使用共享共模的第一和第二公開密鑰/私用密鑰對的第一公開密鑰對消息進行加密;使用發射器裝置,將已加密的消息發送到單獨的裝置;使用接收器裝置從單獨裝置接收對消息的經籤名的回覆,其中所述消息已利用使用第二公開密鑰/私用密鑰對的私用密鑰所獲得的籤名來籤名;以及使用共享共模的第一和第二公開密鑰/私用密鑰對的第二公開密鑰來驗證經籤名的回覆的籤名。

附圖說明

圖1示出其中產生共享共模的密鑰對的例示性密鑰供應系統和方法。

圖2示出移動裝置的例示性晶片上系統(SoC),其中SoC包含用於籤名產生和用於加密/解密的嵌入式共模密鑰供應處理器。

圖3示出用於共模密鑰供應的例示性程序。

圖4示出嵌入式密碼裝置和合作供應商的遠程伺服器的例示性操作,以及它們之間交換的信息。

圖5示出用於多個合作軟體供應商的共模密鑰供應的例示性程序。

圖6示出嵌入式密碼裝置的例示性軟體組件、合作供應商的遠程伺服器的軟體組件以及在它們之間交換以便於初始通信和密匙交換等的信息。

圖7進一步示出嵌入式密碼裝置的例示性軟體組件、遠程伺服器的軟體組件以及在它們之間交換以便於認證挑戰等的信息。

圖8是說明用於採用處理系統的設備的硬體實施方案的實例的框圖,所述處理系統可以利用圖1到7的系統、方法和設備。

圖9是說明圖8的處理電路的例示性組件的框圖。

圖10是說明圖8的機器可讀媒體的例示性指令組件的框圖。

圖11概述用於可通過(例如)移動裝置的嵌入式組件執行的對消息進行解密和籤名的例示性程序。

圖12概述用於使用(例如)兩個密鑰對對消息進行解密和籤名的另外的例示性程序。

圖13概述用於使用三個或大於三個密鑰對對消息進行解密和籤名的另外的例示性程序。

圖14是說明可與圖8的設備通信的遠程系統的例示性組件的框圖。

圖15是說明可與圖8的設備通信的遠程系統的例示性指令組件的框圖。

圖16概述用於可(例如)通過圖14的系統執行的對消息進行加密和驗證的例示性程序。

圖17概述用於使用(例如)兩個密鑰對對消息進行加密和驗證的另外的例示性程序。

圖18概述用於使用三個或大於三個密鑰對對消息進行加密和驗證的另外的例示性程序。

具體實施方式

在以下描述中,給出具體細節以提供對本發明的各個方面的透徹理解。然而,所屬領域的技術人員應理解,可以在不具有這些具體細節的情況下實踐所述方面。例如,可用框圖展示電路以避免以不必要的細節混淆所述方面。在其它情況下,可不詳細展示眾所周知的電路、結構及技術,以防混淆本發明的所述方面。

此外,本文中使用詞語「例示性」意指「充當實例、例子或說明」。本文中描述為「例示性」的任何實施方案或方面未必應解釋為比本發明的其它方面優選或有利。同樣,術語「方面」不要求本發明的所有方面包含所論述的特徵、優點或操作模式。

綜述

若干新穎特徵涉及用於嵌入式密鑰供應系統的裝置和方法,例如安裝在智慧型手機內用於產生RSA公開密鑰/私用密鑰對以進行加密/解密和數字籤名產生/驗證的系統。簡單來說,在至少一些實例中,嵌入式密鑰供應系統的限制條件為產生兩個公開密鑰/私用密鑰對--一個用於加密/解密,另一個用於籤名產生/驗證--其中,這兩個公開密鑰/私用密鑰對共享共模,但在其它方面不同或不相關。這允許比產生兩個完全單獨的密鑰對(即,每一個具有其自身的獨特的模數)更高效地產生兩個密鑰對,但至少在嵌入式密鑰供應系統的情況下,實現了令人滿意的完整性和機密性。本文中,產生兩個公開密鑰/私用密鑰對--一個用於加密/解密,另一個用於籤名產生/驗證--的密碼系統和方法通常大體上被稱作「共模密鑰供應系統/方法」,其中兩個公開密鑰/私用密鑰對共享共模,但在其它方面不同。

在這點上,相信單獨的RSA公開/私用密鑰對(e1,d1)和(e2,d2)在使用本文中所描述的共模密鑰供應系統/方法所獲得的相同模數(N=pq)上的使用可提供用於嵌入式密鑰供應系統(例如,高通有限公司的MacchiatoTM系統)的安全、合理的和具有高效性能的解決方案。此外,實施共模密鑰供應系統需要相對適度地修改現有的密鑰供應系統。例如,在產生用於產生密鑰對的素數p、q期間,系統可檢查p-1和q-1與e1和e2兩者互質,而不是檢查它們只與一個公鑰指數互質(如果產生完全單獨的RSA密鑰對,那麼這就是對應的情況)。其後,在至少一些實例中,嵌入式系統反轉e1模(p-1)(q-1)以獲得d1,並反轉e2模(p-1)(q-1)以獲得d2。應注意,不同的或不相關的意思是e1、e2都不是另一者的倍數,或取決於應用,e1不是e2的倍數或e2不是e1的倍數,其中e1和e2指代公開密鑰。

傳統上,提供用於加密/解密和用於籤名的完全單獨的密鑰存在兩個主要原因:安全性和密鑰管理。就涉及到安全性而言,兩種一般類型的攻擊令人擔心:a)由與解密資料庫有關的問題導致的籤名方案的完整性的缺失;以及b)由與籤名資料庫有關的問題導致的加密方案的機密性的缺失。然而,在嵌入式密鑰供應系統的情況下,當使用本文中所描述的共模密鑰供應系統/方法時,這些弱點被認為是不存在問題的。例如,如果所有已加密的消息利用不同的製造者的密鑰(由嵌入式系統的製造者提供)來籤名,那麼完整性的缺失不應該是個問題,所述密鑰鏈回到嵌入式裝置中的證書。當嵌入式裝置的解密資料庫實施在裝置的受信任執行環境內,或裝置自身可為防篡改的,攻擊者不大可能接入解密資料庫。

就由涉及到籤名資料庫而導致的加密方案的機密性的缺失而言,攻擊者很可能需要能夠使用籤名資料庫來對消息進行解密,接著將結果洩漏出去。這似乎具有極低的風險,至少在嵌入式系統內,因為出於加密和籤名的目的可使用不同的填補。任一填補產生或驗證、散列和籤名在受信任執行環境(簡寫為TEE;舉例來說,在受信任區域情況下的受信任區域運行環境(TZBSP))的操作內核內部完成,以及使用這些服務不在應用(例如,受信任應用程式(TA))中完成。(應注意,在公開密鑰密碼術中,填補指代使用方案製作用於加密或籤名的消息的過程,所述方案例如最佳非對稱加密填補(OAEP)、公開密鑰密碼術標準#1(PKCS#1)v1.5、概率性籤名方案(PSS)、PSS與恢復(PSSR)、電氣電子工程師學會(IEEE)P1363、利用附錄籤名的編碼方法(EMSA2或EMSA5)。因此,攻擊者很可能需要:破解TA應用;調用在「錯誤」地址或具有錯誤參數的TEE的內核例程,以將消息作為籤名傳遞,並對其進行解密;以及隨後輸出結果。儘管有可能,但這被認為是相當困難的,因此這種形式的攻擊同樣地被認為是具有低風險的。

現轉而參看密鑰管理,在大多數系統中,籤名和加密密鑰具有不同要求,例如,在備份、存取、附帶條件的託管、否定等方面。通常,在籤名密鑰被破解的情況下,必須破壞所述籤名密鑰,但通常必須保持加密密鑰以對早期的消息進行解密。通過策略或通過調節,它們可具有不同的使用期限。然而,這些擔心通常並不適用於嵌入式裝置,具體地說,並不適用於智慧型手機等,因為此類裝置的使用期限通常比所有密鑰的生命周期都短得多。此外,揭露一個模數的分解的通用方法最可能還用於揭露兩個模數的分解。也就是說,如果藉助於揭露模數的分解的方法,本文中所描述的共模密鑰供應系統/方法容易受損,那麼在使用其它常規的技術單獨產生的情況下,密鑰對最可能還是容易受損的。例如,分解技術的出乎意料的數學突破可使這兩種類型的系統容易受損,但是這類突破很可能還使非共模技術容易受損。

人們相信,使用兩個與單個模數「數學不相關」的指數對(即,不同的指數對)足以解決上述擔憂。考慮RSA模數N=pq和兩個公開/私用密鑰對(e1,d1)和(e2,d2)的實例。第一密鑰對僅用於加密;而第二密鑰對專門用於籤名目的。考慮已利用e1加密的消息c=me1到達,並且黑客具有用於(e2,d2)的解密資料庫,所述解密資料庫可為可利用的解密資料庫或可利用的籤名資料庫。隨後,攻擊者通常限於計算cd2=m(e1d2)=m(e1/e2mod(N)),並且如果可確定關係e1/e2mod(N))(其指代歐拉函數或歐拉商數),那麼在之後,僅可計算出與初始消息的關係。(應注意,函數(N)的值對攻擊者來說是未知的。)只要e1和e2之間的數學關係並不顯而易見,那麼這一般等效於計算RSA問題。舉例來說,e1(對應地,e2)應該不是e2(對應地,e1)模(N)的倍數。由於後者不可能為攻擊者所知(以免攻擊者能夠分解RSA模數),這相當於:e1(resp,e2)應該不是e2(對應地,e1)的整數冪。因此在大多數實際情況中,使用用於e1和e2兩個較小素數(關於模數較小)綽綽有餘。例如,參見丘姆(Chaum)的「用於不可跟蹤付款的盲籤名(Blind Signatures for Untraceable Payments)」(密碼學進展,密碼學會刊82(3):199-203(1983))中所描述的技術。

在至少一些實例中,受信任應用程式(TA)在裝置(移動裝置、計算機等)上的受信任執行環境(TEE)中運行,其中TA需要向伺服器認證其自身。為了做到這一點,RSA密鑰對(或與共模配對的密鑰對)產生於TEE的內核並保持在那裡:TA不能存取這些密鑰,並且通常必須調用內核,以使密碼操作完成。從TA發送到伺服器的消息對伺服器來說是未加密的或已加密(因此,加密可使用伺服器的密鑰,其與RSA密鑰毫無關係)。從伺服器到TA的消息已利用裝置的密鑰進行加密。常見的兩種情形是:同時用於加密和籤名的單個RSA密鑰(一個模數,一個單個公開/私用指數對);或兩個完全不同的RSA密鑰(各自具有其自身的模數和單個公開/私用指數對)。RSA密鑰產生對形成裝置特有的密鑰集合很重要,所述密鑰集合由伺服器使用來對裝置的一些數據進行加密,數據是TA特有的。密鑰供應是將數據從伺服器引入到TA中的行為。為了節約時間--並利用這些密鑰不存在外部策略的事實--本文中所描述的嵌入式裝置產生一個模數N和兩個不同的公開/私用指數對(e1,d1)和(e2,d2),第一對用於(使用e1)加密到裝置的消息以及在裝置上(使用d1)解密它們,第二對用於對裝置上的消息進行籤名(使用d2),以及允許外部方驗證所述籤名(使用e2)。在RSA文獻中d、e的常用含義中,d1、d2是秘密指數,e1、e2是公開指數。

在至少一些實例中,密鑰產生操作如下:產生兩個不同的隨機素數p、q(舉例來說,使用偽隨機數產生器(PRNG)以產生數字,並測試它們是否是素數);計算N=pq,t=(p-1)(q-1)=(N);驗證所選擇的公開指數e1、e2是否與t互質。如果它們不互質,那麼重新開始;如果e1、e2與t互質,那麼假設d1,對應地d2是e1、e2模t的模逆;以及驗證乘到t次冪的某一隨機值x是否是x自身。如果不重新開始,那麼嵌入式裝置以另外的方式成功地產生了密鑰。

就涉及到不相關公開指數而言,應用以下考慮因素。數字應該是不同的,否則方案將被還原到傳統的RSA方案。一者不應該是另一者的倍數。如果e2=k e1,那麼d1=k d2(模(N)),如果攻擊者攔截了已由伺服器(通過將其增加到第e1次冪)加密的消息,並且攻擊者能夠接入d2的解密資料庫(舉例來說,裝置上所利用的籤名資料庫,它可洩漏操作的結果--正如它應該會洩露的,因為它是籤名裝置),那麼攻擊者可使用解密資料庫來將所攔截的消息乘到d2次冪,並因此對消息進行解密(因為k是已知的,實際上,它是e1和e2之間一個不重要的因數)。一個重要的考慮因素是,作為整數,e2不應是e1的倍數(且在一人意圖使用解密資料庫來洩密籤名方案的情況下,反之亦然--在這種情況下,e1不應是e2的倍數)。如果比值e1/e2和e2/e1不是整數,那麼中斷系統需要解決RSA問題(這被認為是等效於因式分解)。

應注意,模(N)e1始終是e2的倍數(且反之亦然),但是由於攻擊者無法計算(N)(這種「不可能性」是標準RSA安全性假設),攻擊者無法確定因數--所以,必須被阻止的倍數關係必然地保持為整數,而不是整數模(N)。使用相同模數並分離如上所述的指數對使得攻擊者使用籤名資料庫來對消息進行解密基本上是不可能的。它實現了密鑰分離的密碼原理,同時降低了密鑰產生的計算複雜度,並且還減小了在共享密鑰時的帶寬。由此,技術可適用於使用一個密鑰來改進單點登錄系統,並且還可具有許多其它應用。就涉及到公開指數而言:RSA系統僅需要這些指數為小於N的奇數(並且與(N)互質,但這在密鑰產生時測試得到)。實際上,不存在實際的限制性。出於性能原因,系統通常使用數字,如3、5、17、257、65537,但可替代地使用其它數字。還請注意,儘管關於RSA實例描述,但本文中所描述的技術中的至少一些適用於其它密碼技術,例如多素數RSA或其它RSA類密鑰對。RSA類的意思是,舉例來說,使用是大於兩個素數的乘積的模數(因此,模數N將為N=p1*p2*…*pr,其中針對i-1、2、…、r的pi全部是素數,並且e1、e2應該與針對i-1、2、…、r的pi-1中的每一個互質,且(N)=(p1-1)*(p2-1)*…*(pr-1))。因此,本發明的各方面適用於多素數(R>2)模數。在此類情況下,密鑰產生將檢查e1、e2是否與針對i-1、2、…、r的pi-1中的每一個互質,而不是只與(p-1)和(q-1)互質。

此外,儘管本文中所描述的說明性實例中的許多採用共享共模的兩個密鑰對,但各種技術適用於共享共模的三個或大於三個密鑰對的產生及使用。例如,可產生四個密鑰對,兩個用於加密/解密(e1,d1;e3,d3),且兩個用於籤名/驗證(e2,d2;e4,d4),其中四個公開密鑰(e1、e2、e3、e4)中的每一個滿足各自不能被另一者除盡(整數)的一般條件。一般來說,可產生用於加密/解密的任何數目的密鑰對,且可產生用於籤名/驗證的任何數目的密鑰對,其中一種類型具有至少一個密鑰對(其中,它們全部滿足密鑰對的公開指數無法除盡(整數)彼此的條件)。此外,儘管本文的實例主要涉及RSA或RSA類密鑰對,但本發明的至少一些方面適用於其它密碼學方案或協議,例如使用高等代數結構或多變量系統(即,有限域上基於多變量多項式使用不對稱密碼原語的系統)的那些方案或協議。然而,一般來說,並不預期本文中所描述的技術適用於橢圓曲線密碼學密碼學(ECC)或基於非交換數學結構的任一密碼系統。

例示性硬體環境

可在大範圍裝置中廣泛地應用本文中所描述的共模嵌入式密鑰供應系統/方法。圖1示出一種典型應用,其中總體系統100的一個端點是在智慧型手機或其它計算裝置106的受信任執行環境(TEE)的嵌入式系統或裝置104上運行的受信任應用程式(TA)102;而另一端點是軟體供應商110的伺服器系統108(通常與智慧型手機或其它計算裝置的製造者合作)。在此類應用中,嵌入式系統的TA 102通常需要經裝備以對從合作伺服器接收的各個已加密的消息114進行解密,以及對用於發送回到伺服器系統108的回覆消息116進行籤名。還展示了用於產生共模RSA密鑰對的前述內核118和用於存儲密鑰對的存儲裝置120,以及解密資料庫122和籤名資料庫124,它們是TEE嵌入式系統104的全部部分,但與TA 102分離。

一般來說,本文中所描述的共模系統/方法大體上適用於其中裝置需要能夠產生公開密鑰/私用密鑰對以及需要對消息進行籤名的任何情況(其中,模數可保密)。為了提供具體實例,現將描述例示性硬體環境,其中在用於智慧型手機移動通信裝置或其它接入終端的SoC處理電路上提供嵌入式密鑰供應組件。其中可實施嵌入式密鑰供應系統/方法的其它例示性硬體環境包含其它通信裝置和組件或與其共同使用的外圍裝置等,以及傳統的桌上型計算機和連接到網際網路的事務伺服器。

圖2示出根據其中可利用各個新穎特徵的一個實例的移動通信裝置的SoC處理電路200。SoC處理電路可為高通有限公司的SnapdragonTM處理電路。SoC處理電路200包含應用程式處理電路210,所述應用程式處理電路210包含經裝備以結合嵌入式共模密鑰供應處理器213操作的多核CPU 212,所述處理器213具有加密/解密裝置215和數字籤名籤名裝置217(其可包含籤名和驗證組件兩者)。加密/解密裝置215可用於使用基於共模所獲得的一對密鑰對的一個密鑰對來對消息進行加密和/或解密。籤名裝置217可用於使用基於共模所獲得的密鑰對的另一密鑰對對消息進行籤名和/或驗證。消息本身可經由無線通信網絡和其它網絡發送到/接收到的遠程系統(例如,圖1的供應商伺服器),或從所述遠程系統接收。在圖2的實例中,密鑰供應處理器213能夠同時產生和供應密鑰。在實際應用中,可採用單獨的系統以產生RSA密鑰,而由其它系統供應密鑰。還請注意,在許多實際應用中,嵌入式裝置僅對從外部伺服器接收的消息進行解密;它並不對消息進行加密。出於完整性和普遍性起見,展示了加密和解密組件兩者。在一些實例中,籤名裝置217還可驗證籤名。

應用程式處理電路210通常控制移動通信裝置的全部組件的操作。在一個方面,應用程式處理電路210耦合到用於控制數據的存儲的主機存儲控制器250,所述數據的存儲包含內部共享存儲裝置232的密鑰儲存元件233中公開和私用密鑰的存儲,所述內部共享存儲裝置232形成內部共享硬體(HW)資源230的部分。應用程式處理電路210還可包含引導ROM或RAM 218,其存儲用於SoC處理電路200的各個組件的引導順序指令。SoC處理電路200進一步包含由應用程式處理電路210控制的一或多個外圍子系統220。外圍子系統220可包含(但不限於)存儲子系統(例如,只讀存儲器(ROM)、隨機存取存儲器(RAM))、視頻/圖形子系統(例如,數位訊號處理電路(DSP)、圖形處理電路單元(GPU))、音頻子系統(例如,DSP、模/數轉換器(ADC)、數/模轉換器(DAC))、功率管理子系統、安全性子系統(例如,其它加密組件和數字權限管理(DRM)組件)、輸入/輸出(I/O)子系統(例如,鍵盤、觸控螢幕)以及有線和無線連接子系統(例如,通用串行總線(USB)、全球定位系統(GPS)、Wi-Fi、全球移動通信系統(GSM)、碼分多址(CDMA)、2G長期演進(LTE)數據機)。例示性外圍子系統220(其為數據機子系統)包含DSP 222、各種其它硬體(HW)和軟體(SW)組件224,以及各種射頻(RF)組件226。在一個方面中,每一外圍子系統220還包含引導ROM或RAM 228,其存儲相關聯的外圍子系統220的主引導映像(未示出)。

如所提到,SoC處理電路200進一步包含各種內部共享HW資源230,例如內部共享存儲裝置232(例如,靜態RAM(SRAM)、快閃記憶體等),其由應用程式處理電路210和各個外圍子系統220共享,以存儲各種運行時間數據或其它參數以及提供主機存儲器。在圖2的實例中,內部共享存儲裝置232包含前述可用於存儲公開和私用密鑰的的密鑰存儲裝置部分、組件或元件233。在其它實例中,密鑰存儲在移動裝置內的其它地方。

在一個方面中,SoC處理電路200的組件210、218、220、228和230集成在單晶片襯底上。SoC處理電路200進一步包含各種外部共享HW資源240,其可位於不同的晶片襯底上,並且可經由一或多個總線而與SoC處理電路200連通。外部共享HW資源240可包含(例如)外部共享存儲裝置242(例如,雙倍數據速率(DDR)動態RAM)和/或永久性或半永久性數據存儲裝置244(例如,安全數字(SD)卡、硬碟驅動器(HDD)、嵌入式多媒體卡、通用快閃裝置(UFS)等),其可由應用程式處理電路210和各種外圍子系統220共享以存儲各種類型的數據,例如作業系統(OS)信息、系統文件、程序、應用程式、用戶數據、音頻/視頻文件等。當並有SoC處理電路200的移動通信裝置啟動時,SoC處理電路開始系統啟動過程,其中應用程式處理電路210可接入引導ROM或RAM 218,以檢索用於SoC處理電路200的引導指令,所述引導指令包含用於各種外圍子系統220的引導順序指令。外圍子系統220還可具有額外的外圍引導ROM或RAM 228。

例示性共模密鑰產生/處理程序

圖3示出可由圖2的嵌入式密鑰供應處理器或其它經合適裝備的組件、裝置、系統或處理電路採用的共模密鑰供應的實例300。在302處,密鑰供應處理器獲得素數p和q,並使用它們來計算模數N=pq。通常,素數的長度約為1024到2048位。在304處,密鑰供應處理器基於p和q產生並存儲公開密鑰(e1,e2),同時驗證p-1和q-1同時與e1和e2兩者互質。在306處,通過反轉e1模(p-1)(q-1)和e2模(p-1)(q-1)以由此產生數學上不同或不相關的第一和第二密鑰對(e1,d1)和(e2,d2),密鑰供應處理器產生並存儲私用密鑰(d1,d2)。也就是說,密鑰對是彼此在數學上關係較為疏遠的。如上所述,不同或不相關的意思是e1、e2都不是另一者的倍數或取決於應用,e1不是e2的倍數,或e2不是e1的倍數。應注意,僅使用一個條件來防止一些情境,同時使用兩個條件來防止更多的情境或全部相關的情境。舉例來說,兩個密鑰對可為:a)互素,b)各自可由素數除盡,所述素數不可由其它數除盡,c)一者不是另一者的冪(整數),和/或更一般地說,d)一者不是另一者的倍數(整數)。也就是說,可獲得第一和第二公開密鑰(e1,e2),以使得第一公開密鑰(e1)不是第二公開密鑰(e2)的整倍數,和/或第二公開密鑰(e2)不是第一公開密鑰(e1)的整倍數。在308處,密鑰供應處理器使用公開密鑰/私用密鑰對中的一個(例如,e1,d1)來對消息進行加密和/或解密。如已提到的,在許多實際應用中,智慧型手機的嵌入式裝置僅對從外部伺服器接收的消息進行解密;它並不對消息進行加密。出於普遍性起見,展示了這兩個程序。在310處,密鑰供應處理器使用公開密鑰/私用密鑰對中的另一者(例如,e2,d2)來對消息進行籤名和/或驗證。在312處,密鑰供應處理器將已加密的消息和/或經籤名的消息發射到遠程系統,例如合作軟體供應商的伺服器。

圖4提供說明嵌入式密碼裝置402和合作供應商的遠程伺服器404的例示性操作的時序圖400。在此實例中,處理開始於406,在406中,嵌入式密碼裝置產生RSA模數N=pq,其中p和q是素數,公開密鑰(e1,e2)是這樣的:e1和e2不同並與p-1和q-1兩者互質,如已經論述的。在408處,通過反轉e1和e2模(p-1)(q-1)以由此產生第一和第二密鑰對(e1,d1)和(e2,d2),嵌入式密碼裝置產生私用密鑰(d1,d2),同樣如已經論述的。通常,406和408的操作僅由每一裝置執行一次。圖4的其餘操作(即410和之後的操作)可重複多次,並通常針對每一合作供應商執行一次或多次,即,針對在裝置的TEE中運行的每一TA執行一次(並且特定的供應商在裝置內可具有大於一個的TA)。也就是說,僅僅當裝置第一次運行協議時執行406和408,而針對與合作供應商的每個第一次連接來執行其餘的步驟。在410處,嵌入式密碼裝置將公開密鑰(e1,e2)發送到遠程伺服器,所述遠程伺服器在412處通過利用公開密鑰(e1)中的第一者產生和加密消息來作出響應。此消息可包含口令。在414處,將已加密的消息發送到嵌入式密碼裝置,所述嵌入式密碼裝置在416處使用(e1,d1)對消息進行解密,並使用(e2,d2)對回復消息進行籤名。應注意,如果在416處所接收的消息含有口令,那麼密碼裝置使用應用特有的方法來計算響應。在418處,將經籤名的回覆消息發送到遠程伺服器,所述遠程伺服器在420處使用公開密鑰(e2)來驗證回復消息的籤名。在422處,遠程伺服器接著處理消息並且,如果籤名驗證成功,那麼在424處,伺服器發送應答。也就是說,如果全部驗證通過,那麼發送應答。這個應答可含有將供應到(安全地存儲)裝置且使用裝置的公開密鑰(e1)進行加密的數據。

如所提到,消息412可含有口令(即,隨機數)。伺服器可以或可以不使用伺服器自有的密鑰來對這個消息進行籤名,所述伺服器自有的密鑰自身連結到存儲在裝置中的公開證書。通過此方法,裝置知道它從伺服器獲得了真實的消息。隨後,裝置進行回復。如果消息412含有口令,那麼經籤名的回覆消息418可含有對這個口令的響應。利用伺服器密鑰對此消息進行加密不是必要的,但是這種是有可能的。然而,重要的是,請注意,消息含有初始口令或響應,並且消息是經籤名的(從而,籤名可發揮正確響應的作用,因為僅由裝置就可完成它,並且伺服器可以對其進行驗證)。此時,424的應答還可含有數據,所述數據可含有由伺服器供應到裝置的實際密鑰。此密鑰是應用特有的,並且伺服器和裝置中的目標TA之間的任何其它的通信使用這個新信息。

圖5概述智慧型手機或其它用戶裝置寄存與各個合作供應商有關的各種TA的方式。智慧型手機通常安裝有與若干合作軟體供應商中的每一個相關聯的若干TA。開始於502,在裝置啟動之後,針對若干合作軟體供應商中的每一個供應商的若干TA中的每一個TA,用戶裝置產生用於裝置的共模密鑰對(e1,d1)和(e2,d2)。(這可對應於圖4的框406和408。)在504處,用戶裝置確定或檢測特定合作供應商的特定TA是否已啟動,接著在504處,確定這是否是第一次連接(即,TA是否已經寄存有合作供應商。)如果這是第一次連接,那麼用戶裝置:發送用於合作供應商的密鑰對的公開密鑰(e1,e2);作為回復,接收已加密的消息;解密消息;對回復消息進行籤名並發送;以及接收包含待供應的數據的應答。(這可對應於圖4的框410到424。)處理返回到用於額外的TA的504。最終,使用各個共模密鑰對以此方式登記了與全部合作供應商相關聯的全部TA。在一些情況下,用於特定供應商的特定TA可需要重新登記,並且,如果是這樣,那麼針對那一TA重複框506的操作。在極少的情況中,還可需要產生新的共模密鑰對,以用於特定TA或用於特定供應商,並且如果是這樣,那麼針對那一TA和/或針對那一供應商重複框502的操作。

圖6示出用於本文中所描述的嵌入式共模密鑰供應程序以(例如)促進初始通信問好(hellos)、握手等的例示性軟體組件。伺服器有效載荷庫602由嵌入式密鑰供應裝置的製造者(例如,其中安裝有嵌入式密鑰供應裝置的組件的智慧型手機的製造者)提供。伺服器有效載荷庫602可包含經裝備以執行各種功能的軟體組件604。還通過嵌入式密鑰供應裝置的製造者提供客戶端有效載荷庫606,以安裝在合作供應商的遠程伺服器(例如,圖1的伺服器系統108)上。客戶端有效載荷庫606可包含經裝備以執行各種功能的軟體組件608。在使用時,伺服器有效載荷庫602經由網頁伺服器/測試儀/硬體安全性模塊(HSM)610與客戶端有效載荷庫606通信,其可使用通信組件/協議612,例如HTTP、HTTPS、JTAG、TIC或USB。同樣地,客戶端有效載荷庫606經由裝置傳輸堆棧614與伺服器有效載荷庫602通信,其可使用相同的協議616。(應注意,HTTP表示超文本傳送協議,JTAG表示聯合測試行動小組,TIC表示信息和通信技術,以及USB表示通用串行總線。)在此例子中可在兩個庫之間傳送的例示性消息包含Hello(證書、口令)消息618、HelloResp(響應消息(ReponseMsg))消息620、SetKey(包裹密鑰,證書)消息622和結果消息624。這些消息的細節對於本發明的目的來說並不重要,而僅作為實例提供。

在說明性實例中,客戶端有效載荷庫606可包含軟體組件608,其經裝備以使用證書和口令來處理hello函數。這可通過以下操作(例如)來執行:將證書連結到嵌入式根中、產生已加密的裝置公開密鑰(DPK_EK)、產生已加密的晶片ID、產生口令響應以及執行已加密的裝置公開密鑰(DPK_EK)、晶片ID和口令響應的RSA加密。客戶端有效載荷庫606還可包含軟體組件,所述軟體組件經裝備以通過將證書連結到嵌入式根中而利用證書設置包裹密鑰(SetKey)、驗證口令和響應,以及產生裝置公開密鑰(DPK)和解開密鑰與其提供的任何元數據。

在說明性性實例中,伺服器有效載荷庫602可包含軟體組件604,所述軟體組件604經裝備以使用密碼質量(cryptographic quality)隨機數產生器(RNG)或PRNG來產生口令。伺服器有效載荷庫602還可包含軟體組件,其經裝備以基於響應消息(ResponseMsg)、私用密鑰、業務密鑰和一些元數據來包裹業務密鑰。例如,軟體可採用RSA以使用私用密鑰對從客戶端有效載荷庫606接收的響應消息進行解密,並接著提取已加密的晶片ID、已加密的裝置公開密鑰(DPK_EK)和響應。隨後,軟體使用已加密的晶片ID來驗證口令響應,並執行資料庫查詢。軟體使用裝置公開密鑰(DPK_EK)來對資料庫記錄進行解密、驗證資料庫記錄的散列、提取裝置公開密鑰(DPK)、密鑰包裹業務密鑰和元數據。同樣,這些只是在利用共模密鑰對的同時可執行的軟體功能的說明性實例。

圖7另外示出例示性軟體組件,具體地說,涉及認證口令和響應。伺服器有效載荷庫702由嵌入式密鑰供應裝置的製造者提供,所述嵌入式密鑰供應裝置可包含經裝備以執行各種功能的軟體組件704。客戶端有效載荷庫706可包含經裝備以執行各種功能的軟體組件708。在使用時,伺服器有效載荷庫702同樣經由網頁伺服器/測試儀/HSM 710與客戶端有效載荷庫706通信,其可使用通信組件/協議712,例如,HTTP、HTTPS、JTAG、TIC和USB。同樣地,客戶端有效載荷庫706經由裝置傳輸堆棧714與伺服器有效載荷庫702通信,其可使用相同的協議716。在此例子中可在兩個庫之間傳送的例示性消息包含認證(口令)消息718、AuthResp(晶片ID、裝置公開密鑰、經籤名的響應)消息720、SendKey(包裹密鑰、證書)消息722和結果消息724。這些消息和圖7的那些促進了公開密鑰的交換等。

在說明性性實例中,伺服器有效載荷庫702可包含軟體組件704,所述軟體組件704經裝備以使用密碼質量RNG或PRNG來產生前述口令。軟體還包含組件,其經操作以使用晶片ID、資料庫種子、認可的TA散列集合、經籤名的響應和裝置公開密鑰來認證裝置。例如,軟體可產生用於使用裝置公開密鑰、晶片ID和資料庫種子進行認證的散列,隨後使用散列來驗證裝置公開密鑰(基於資料庫查詢)。軟體還可使用RSA來以通過用於SoC(例如,圖2的SoC處理電路200)的公開密鑰來驗證響應,隨後還驗證口令,並且任選地,針對供應商認可清單驗證TA散列,以及最後將「不透明」數據返回到調用程序。軟體還包含組件,其經操作以使用與上文結合圖6所列的那些略微不同的參數集合來包裹業務密鑰。例如,圖7的軟體可使用以下各者來執行包裹業務密鑰功能:晶片ID、資料庫種子、經籤名的響應、裝置公開密鑰、私用密鑰(KPSP)、業務密鑰和一些密鑰元數據。這可通過認證裝置、隨後使用RNG以產生AES256包裹密鑰來實現。使用業務密鑰和密鑰元數據來執行密鑰包裹。包裹密鑰使用SoC公開密鑰進行加密。又另外,包裹業務密鑰功能可使用KPSP私用密鑰來對包裹業務密鑰、包裹密鑰、響應和TA散列進行籤名。

在說明性實例中,客戶端有效載荷庫706可包含軟體組件708,其經裝備以對認證口令作出響應。如果RSA裝置密鑰對不存在,那麼軟體使用裸公開密鑰(BPK)導數產生密鑰對,並存儲所述密鑰對。隨後,軟體通過對口令、響應、(調用TA的)TA散列和不透明數據進行籤名而產生對口令的響應。軟體還可通過將證書連結到嵌入式裝置根、隨後通過包裹密鑰驗證籤名來解開業務密鑰和證書。軟體可使用SoC私用密鑰來對包裹密鑰進行解密,隨後解開業務密鑰和其提供的任何元數據。調用TA可使用TA散列進行驗證,並且如果驗證成功,那麼將業務密鑰和元數據返回到調用程序。同樣,這些只是軟體功能的說明性實例。

例示性系統和方法

圖8示出其中可實施圖1到7的系統、方法和設備的總體系統或設備800。根據本發明的各種方面,元件或元件的任何部分或者元件的任何組合可以用處理系統814實施,所述處理系統包含一或多個處理電路804,例如圖2的SoC處理電路。例如,設備800可為移動通信系統的用戶設備(UE)。設備800可與無線網絡控制器(RNC)一起使用。除了SoC之外,處理電路804的實例還包含微處理電路、微控制器、數位訊號處理電路(DSP)、現場可編程門陣列(FPGA)、可編程邏輯裝置(PLD)、狀態機、門控邏輯、離散硬體電路以及經配置以執行貫穿本發明所描述的各種功能性的其它合適的硬體。又另外,處理系統814可為伺服器(例如,圖1所示的伺服器)的組件。也就是說,如在設備800中所利用的處理電路804,可用於實施上文所描述的與圖2、3和4中所說明的過程(以及圖11、12和13與圖16、17和18中所說明的、在下文論述的過程)中的任何一或多者,例如,執行數字籤名產生、籤名和驗證以及加密/解密的過程。

在圖8的實例中,處理系統814可以用大體上由總線802表示的總線架構實施。取決於處理系統814的具體應用和總體設計約束,總線802可以包含任何數目的互連總線和網橋。總線802將各種電路連接在一起,所述電路包含一或多個處理電路(大體上由處理電路804表示)、存儲裝置805以及機器可讀、處理器可讀、處理電路可讀或計算機可讀媒體(大體上由非暫時性機器可讀媒體806表示)。總線802還可連接各種其它電路,例如定時源、外圍裝置、電壓調節器以及功率管理電路,這些電路是所屬領域中眾所周知的且因此將不再做任何進一步描述。總線接口808提供總線802和收發器810之間的接口,所述收發器810可包含接收器和發射器。收發器810提供用於經由發射媒體與各種其它設備通信的裝置。取決於設備的性質,還可提供用戶接口812(例如,小鍵盤、顯示器、揚聲器、麥克風、操縱杆)。

處理電路804負責管理總線802和一般處理,包含存儲在機器可讀媒體806上的軟體的執行。所述軟體在由處理電路804執行時使得處理系統814執行本文中所描述的各種功能以用於任何特定設備。機器可讀媒體806還可用於存儲由處理電路804在執行軟體時操控的數據。

在至少一些實例中,處理電路804經配置以獲得第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模;使用第一公開密鑰/私用密鑰對的私用密鑰對消息進行解密;通過使用第二公開密鑰/私用密鑰對的私用密鑰對消息進行籤名,以獲得消息的數字籤名;以及收發器810的發射器裝置經配置以從密碼裝置發送數字籤名。

此外,在至少一些實例中,處理電路804(或用於處理的其它裝置)提供用於獲得第一和第二公開密鑰/私用密鑰對的裝置,其中第一和第二公開密鑰/私用密鑰對共享共模;用於使用第一公開密鑰/私用密鑰對的私用密鑰對消息進行解密的裝置;用於通過使用第二公開密鑰/私用密鑰對的私用密鑰對消息進行籤名以獲得消息的數字籤名的裝置;以及收發器810的發射器裝置(或其它用於發射的裝置)提供用於從密碼裝置發送數字籤名的裝置。在一些實例中,處理電路經進一步配置以提供裝置,所述裝置用於獲得第一和第二公開密鑰(e1,e2),以使得第一公開密鑰(e1)不是第二公開密鑰(e2)的倍數和/或第二公開密鑰(e2)不是第一公開密鑰(e1)的倍數。在一些實例中,處理電路經進一步配置以提供裝置,所述裝置用於獲得素數p和q,同時驗證p-1和q-1與第一公開密鑰(e1)和第二公開密鑰(e2)兩者互質。

又另外,在至少一些實例中,收發器810的接收器裝置經配置以從單獨的裝置接收第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰,其中第一和第二公開密鑰/私用密鑰對共享共模;以及處理電路804經配置以使用共享共模的第一和第二公開密鑰/私用密鑰對的第一公開密鑰來對消息進行加密;使用收發器810的發射器裝置將已加密的消息發送到所述單獨的裝置;使用收發器810的接收器裝置從所述單獨的裝置接收對消息的經籤名的回覆,其中所述消息已經利用使用第二公開密鑰/私用密鑰對的私用密鑰所獲得的籤名進行籤名;以及使用共享共模的第一和第二公開密鑰/私用密鑰對的第二公開密鑰來驗證經籤名的回覆的籤名。

此外,在至少一些實例中,收發器810的接收器裝置(或用於接收的其它裝置)提供用於從單獨的裝置接收第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰的裝置,其中第一和第二公開密鑰/私用密鑰對共享共模;以及處理電路804(或用於處理的其它裝置)提供用於使用共享共模的第一和第二公開密鑰/私用密鑰對的第一公開密鑰來對消息進行加密的裝置;用於使用收發器810的發射器裝置將已加密的消息發送到所述單獨的裝置的裝置;用於使用收發器810的接收器裝置(或用於接收的其它裝置)從所述單獨的裝置接收對消息的經籤名的回覆的裝置,其中所述消息已利用使用第二公開密鑰/私用密鑰對的私用密鑰所獲得的籤名進行籤名;以及用於使用共享共模的第一和第二公開密鑰/私用密鑰對的第二公開密鑰來驗證經籤名的回覆的籤名的裝置。在一些實例中,第一和第二公開密鑰/私用密鑰對不同於彼此。在一些實例中,第一和第二公開密鑰(e1,e2)是這樣的:第一公開密鑰(e1)不是第二公開密鑰(e2)的倍數,和/或第二公開密鑰(e2)不是第一公開密鑰(e1)的倍數。在一些實例中,共模(N)是N=pq,其中p和q是素數。

處理系統中的一或多個處理電路804可執行軟體或軟體組件。軟體應被廣泛地解釋為意味著指令、指令集、代碼、代碼段、程序代碼、程序、子程序、軟體模塊、應用、軟體應用、軟體包、例程、子例程、物件、可執行代碼、執行線程、程序、函數等,而不管其是被稱作軟體、固件、中間件、微碼、硬體描述語言還是其它者。處理電路可執行任務。代碼段可表示程序、函數、子程序、程序、例程、子例程、模塊、軟體包、類別,或指令、數據結構或程序語句的任意組合。代碼段可通過傳遞和/或接收信息、數據、自變量、參數或存儲器或存儲裝置內容而耦合到另一代碼段或硬體電路。信息、自變量、參數、數據等可經由包含存儲器共享、消息傳遞、令牌傳遞、網絡傳輸等任何合適的方式傳遞、轉發或傳輸。

軟體可駐留在機器可讀媒體806上。機器可讀媒體806可為非暫時性機器可讀媒體。非暫時性處理電路可讀、機器可讀或計算機可讀媒體包含,舉例來說,磁性存儲裝置(例如,硬碟、軟性磁碟、磁條)、光碟(例如,壓縮光碟(CD)或數字多功能光碟(DVD))、智慧卡、快閃記憶體裝置(例如,卡、操縱杆或密鑰驅動)、RAM、ROM、可編程ROM(PROM)、可擦除PROM(EPROM)、電可擦除PROM(EEPROM)、寄存器、可移動磁碟、硬碟、CD-ROM和用於存儲可由機器或計算機存取和讀取的軟體和/或指令的任何其他合適的媒體。術語「機器可讀媒體」、「計算機可讀媒體」、「處理電路可讀媒體」和/或「處理器可讀媒體」可包含(但不限於)非暫時性媒體,例如,可攜式或固定存儲裝置、光學存儲裝置,以及能夠存儲、含有或承載指令和/或數據的各種其它媒體。因此,本文中所描述的各種方法可以完全或部分通過可存儲在「機器可讀媒體」、「計算機可讀媒體」、「處理電路可讀媒體」和/或「處理器可讀媒體」中且通過一或多個處理電路、機器和/或裝置執行的指令和/或數據來實施。舉例來說,機器可讀媒體還可包含載波、傳輸線,及用於傳輸可由計算機存取和讀取的軟體和/或指令的任何其它合適的媒體。

機器可讀媒體806可駐留在處理系統814中、在處理系統814外部或跨越包含處理系統814的多個實體分布。機器可讀媒體806可實施於電腦程式產品中。舉例來說,電腦程式產品可包含封裝材料中的計算機可讀媒體。取決於特定應用及強加於整個系統上的總設計約束,所屬領域的技術人員將認識到如何最好地實施貫穿本發明呈現的所描述的功能性。例如,機器可讀存儲媒體806可具有一或多個指令,所述一或多個指令在由處理電路804執行時使得處理電路:獲得第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模;使用第一公開密鑰/私用密鑰對的私用密鑰對消息進行解密;通過使用第二公開密鑰/私用密鑰對的私用密鑰對消息進行籤名,以獲得消息的數字籤名;以及從密碼裝置發送數字籤名。

圖式中所說明的組件、步驟、特徵和/或功能中的一或多者可以重新布置和/或組合成單個組件、塊、特徵或功能或體現在若干組件、步驟或功能中。在不脫離本發明的情況下,還可以添加額外的元件、組件、步驟和/或功能。圖式中所說明的設備、裝置和/或組件可經配置以執行圖式中所描述的方法、特徵或步驟中的一或多者。本文中所描述的算法還可有效地實施於軟體中和/或嵌入於硬體中。

可用通用處理電路、數位訊號處理電路(DSP)、專用集成電路(ASIC)、現場可編程門陣列(FPGA)或其它可編程邏輯組件、離散門或電晶體邏輯、離散硬體組件或其經設計以執行本文中描述的功能的任何組合來實施或執行結合本文中揭示的實例而描述的各種說明性邏輯塊、模塊、電路、元件和/或組件。通用處理電路可為微處理電路,但在替代實施例中,處理電路可為任何常規處理電路、控制器、微控制器或狀態機。處理電路還可實施為計算組件的組合,例如,DSP和微處理電路的組合、多個微處理電路的組合、結合DSP核心的一或多個微處理電路的組合或任何其它此類配置。

因此,在本發明的一個方面中,圖2中所說明的處理器213可為專用處理電路(例如,ASIC)),其經專門設計和/或硬連線以執行圖3、4和/或5(和/或下文論述的圖11、12和13)中所描述的算法、方法和/或塊中的至少一些,例如針對產生共模密鑰對、解密消息和產生數字籤名的那些。因此,這類專用處理電路(例如,ASIC)可為用於執行圖3、4和/或5(和/或下文論述的圖11、12和13)中所描述的算法、方法和/或塊的裝置的一個實例。機器可讀存儲媒體可存儲指令,所述指令在由專用處理電路(例如,ASIC)執行時使得專用處理電路執行本文中所描述的算法、方法和/或塊。在本發明的另一方面中,圖1的遠程伺服器系統108還可包含專用處理電路,其經專門設計和/或硬連線以執行圖3和/或4(和/或下文論述的圖16、17和18)中所描述的算法、方法和/或塊中的至少一些,例如針對接收共模密鑰對、加密消息和驗證數字籤名的那些。因此,這類專用處理電路可為用於執行圖3和/或4(和/或下文論述的圖16、17和18)中所描述的算法、方法和/或塊的裝置的一個實例。機器可讀存儲媒體可存儲指令,所述指令在由專用處理電路(例如,ASIC)執行時使得專用處理電路執行本文中所描述的算法、方法和/或塊。

圖9示出所選中的(例如)具有共模嵌入式密鑰供應處理器902的移動裝置的處理電路804的例示性組件,所述共模嵌入式密鑰供應處理器902包含共模密鑰產生器904。圖9的密鑰產生器904包含:素數選擇模塊/電路908,其經操作以獲得或產生適合於產生共模的素數;共模產生模塊/電路910,其經操作以使用素數來獲得或產生共模;以及共模公開密鑰/私用密鑰產生模塊/電路912,其經操作以獲得或產生第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模。如上文所解釋,可產生三個或大於三個密鑰對,其中每一類型具有至少一個密鑰對(即,至少一個用於加密/解密,並且至少一個用於籤名/驗證),並且其中全部密鑰對滿足公開指數無法除盡(整數)彼此的條件。其中產生第一和第二密鑰對的實例在圖12中展示(在下文描述),其中產生三個或大於三個密鑰對的實例在圖13中展示(同樣在下文描述)。為了產生公開密鑰/私用密鑰對,公開密鑰反轉器模塊/電路918可用於反轉公開密鑰以形成私用密鑰。可採用非相關性驗證模塊/電路916以驗證第一和第二公開密鑰/私用密鑰對不相關。密鑰存儲控制器920控制公開密鑰/私用密鑰對的存儲。

嵌入式密鑰供應處理器902還具有加密模塊/電路922,其經操作以使用第一公開密鑰/私用密鑰對對消息進行加密,和解密模塊/電路923,其經操作以使用第一公開密鑰/私用密鑰對對消息進行解密。又另外,嵌入式密鑰供應處理器902還具有共模數字籤名處理器模塊/電路906,其經操作以使用第二公開密鑰/私用密鑰對的私用密鑰來對消息進行籤名,從而提供、獲得或以另外方式產生數字籤名。數字籤名處理器模塊/電路906包含籤名模塊/電路924,其經操作以使用第二公開密鑰/私用密鑰對的私用密鑰對消息進行籤名,和驗證模塊/電路926,其經操作以使用第二公開密鑰/私用密鑰對的公開密鑰來驗證消息的籤名。籤名消息發射/接收模塊/電路928經操作以接收和/或發射已加密的消息和經籤名的消息,以及同時經過加密和籤名的消息。

圖10示出所選中的用於密鑰供應的計算機或機器可讀媒體806的例示性指令。提供共模嵌入式密鑰供應指令1002集合,其包含共模密鑰產生指令1004,所述共模密鑰產生指令1004在由圖8的處理電路804執行時使得處理電路控制或執行密鑰供應和相關操作。圖10的密鑰產生指令1004包含:素數選擇指令1008,其經操作以獲得或產生適合於產生共模的素數;共模產生指令1010,其經操作以使用素數來獲得或產生共模;以及共模公開密鑰/私用密鑰產生指令1012,其經操作以獲得或產生至少第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模。如所提到,可產生三個或大於三個密鑰對,其中每一類型具有至少一個密鑰對(即,至少一個用於加密/解密,至少一個用於籤名/驗證),並且其中全部密鑰對滿足公開指數無法除盡(整數)彼此的條件。為了產生公開密鑰/私用密鑰對,公開密鑰反轉器指令1018可用於反轉公開密鑰以形成私用密鑰。可採用非相關性驗證指令1016以驗證第一和第二公開密鑰/私用密鑰對不相關。密鑰存儲控制器指令1020控制公開密鑰/私用密鑰對的存儲。

嵌入式密鑰供應指令1002還包含加密指令1022,其經操作以使用第一公開密鑰/私用密鑰對對消息進行加密,和解密指令1023,其經操作以使用第一公開密鑰/私用密鑰對對消息進行解密。又另外,嵌入式密鑰供應指令1002還包含共模數字籤名處理器指令1006,其經操作以使用第二公開密鑰/私用密鑰對的私用密鑰來對消息進行籤名,從而提供、獲得或以另外方式產生數字籤名。數字籤名處理器指令1006包含籤名指令1024,其經操作以使用第二公開密鑰/私用密鑰對的私用密鑰對消息進行籤名,和驗證指令1026,其經操作以使用第二公開密鑰/私用密鑰對的公開密鑰來驗證消息的籤名。籤名消息發射/接收指令1028經操作以接收和/或發射已加密的消息和經籤名的消息,以及同時經過加密和籤名的消息。

圖11大體上示出和概述可由圖8的處理電路804或由用於產生或以另外方式獲得公開密鑰/私用密鑰對且用於對消息進行解密和籤名的其它經適當裝備的密碼裝置執行的方法或程序1100。在1102處,密碼裝置獲得第一和第二公開密鑰/私用密鑰對,其中第一和第二公開密鑰/私用密鑰對共享共模。在1104處,密碼裝置使用第一公開密鑰/私用密鑰對的私用密鑰對消息進行解密。在1106處,密碼裝置通過使用第二公開密鑰/私用密鑰對的私用密鑰來對消息進行籤名,從而獲得消息的數字籤名。在1108處,密碼裝置從密碼裝置發送數字籤名。

圖12示出和概述可由圖8的處理電路804或由用於產生或以另外方式獲得公開密鑰/私用密鑰對且用於對消息進行解密和籤名的其它經適當裝備的密碼裝置執行的其它方法或程序1200。密碼裝置可為移動無線裝置內嵌入式密鑰供應系統的組件。在1202處,密碼裝置獲得第一和第二RSA公開密鑰/私用密鑰對(e1,d1)和(e2,d2),其中第一和第二公開密鑰/私用密鑰對:(1)共享共模N=pq,其中p和q是小於模數N的素數,並且p-1和q-1與第一公開密鑰(e1)和第二公開密鑰(e2)兩者互質,以及(2)不同於彼此;並且其中獲得第一和第二公開密鑰(e1,e2),以使得第一公開密鑰(e1)不是第二公開密鑰(e2)的整倍數,和/或第二公開密鑰(e2)不是第一公開密鑰(e1)的整倍數;並且其中通過反轉第一公開密鑰(e1)和第二公開密鑰(e2)模(p-1)(q-1),獲得第一私用密鑰(d1)和第二私用密鑰(d2)。在1204處,密碼裝置使用第一公開密鑰/私用密鑰對(e1,d1)的私用密鑰對消息進行解密,其中從遠程系統(例如,圖1的合作伺服器)接收待解密的消息。在1206處,密碼裝置通過使用第二公開密鑰/私用密鑰對(e2,d2)的私用密鑰(d2)對消息進行籤名,從而獲得消息的數字籤名。在1206處,密碼裝置將數字籤名從密碼裝置發送到遠程系統。

圖13示出其中產生大於兩個密鑰對的實例,其中每一類型具有至少一個密鑰對(即,至少一個用於加密/解密,至少一個用於籤名/驗證),其中它們全部滿足密鑰對的公開指數無法除盡(整數)彼此的條件。也就是說,圖13示出和概述可由圖8的處理電路804或由用於產生或以另外方式獲得公開密鑰/私用密鑰對且用於在使用三個或大於三個密鑰對時對消息進行解密和籤名的其它經適當裝備的密碼裝置執行的其它方法或程序1300。在1302處,密碼裝置獲得公開密鑰/私用密鑰對(e1,d1)…(en,dn),其中n大於2(即,三或大於三),並且其中公開密鑰/私用密鑰對:(1)共享共模N=pq,其中p和q是小於模數N的素數,並且p-1和q-1與全部公開密鑰(e1…en)互質,以及(2)每一個不同於彼此;並且其中獲得公開密鑰(e1…en)中的每一個,以使得每一公開密鑰不是另一公開密鑰中的任一個的整倍數;並且其中通過反轉對應的公開密鑰模(p-1)(q-1)獲得每一單個私用密鑰。在1304處,密碼裝置使用公開密鑰/私用密鑰對的私用密鑰中的一個對消息進行解密,其中從遠程系統接收待解密的消息。在1306處,密碼裝置通過使用其它公開密鑰/私用密鑰對中的一個公開密鑰/私用密鑰對的私用密鑰來對消息進行籤名,從而獲得消息的數字籤名。在1308處,密碼裝置將數字籤名從密碼裝置發送到遠程系統。

因此,圖8到13示出和概述與移動裝置或其類似者的共模密碼處理組件的使用有關的各個方面,所述移動裝置經操作以產生和利用共模密鑰對。圖14到18示出和概述與遠程系統(例如,合作軟體伺服器)的共模組件的使用有關的各個方面,所述遠程系統經操作以接收和利用共模密鑰對的公開密鑰。

圖14示出所選中的具有共模密鑰處理器1402的(例如)遠程伺服器(例如,圖1的伺服器系統108)的處理電路1400的例示性組件,所述共模密鑰處理器1402包含共模公開密鑰接收模塊/電路1404,其經操作以接收共享共模的兩個或大於兩個公開密鑰,所述公開密鑰可使用共模公開密鑰存儲模塊/電路1406進行存儲。例如,公開密鑰接收模塊/電路1404可從圖9的裝置接收第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰,其中第一和第二公開密鑰/私用密鑰對共享共模。使用共模公開密鑰中的至少一個的去話消息(去到例如圖9的裝置)的加密可使用加密模塊/電路1408執行,以(例如)使用第一和第二公開密鑰/私用密鑰對的第一公開密鑰對消息進行加密。任何所接收的消息的解密可通過解密模塊/電路1410使用遠程系統的至少一個私用密鑰來執行。

又另外,共模數字籤名處理器模塊/電路1412經操作以使用共模密鑰對來控制籤名驗證程序等等。更確切地說,驗證模塊/電路1414經操作以驗證由遠程系統接收到的消息的籤名,其中驗證使用共模密鑰對的公開密鑰。例如,驗證模塊/電路1414可使用一對共模密鑰對的第二公開密鑰來驗證從圖9的裝置接收的經籤名的回覆的籤名。還可提供籤名模塊/電路1416,以通過使用遠程系統的私用密鑰對消息進行籤名,從而提供、獲得或以另外方式產生數字籤名。公開密鑰/回復消息接收模塊/電路1418經操作以從遠程裝置(例如,圖9的裝置)接收共享共模的公開密鑰,以從遠程裝置接收經籤名的回覆消息,以及接收其它信息或數據。已加密的消息發射模塊/電路1420經操作以將已加密的消息發射到遠程裝置,並用於發射其它信息或數據。

圖15示出所選中的用於處理和利用共模公開密鑰對的機器或計算機可讀媒體1500的例示性指令。提供共模密鑰供應指令1502的集合,所述指令在由(例如)遠程伺服器系統的處理電路執行時使得系統控制或執行密鑰供應和相關操作。圖15的共模密鑰處理指令包含:共模公開密鑰接收指令1504,其經操作以接收共享共模的兩個或大於兩個公開密鑰,所述公開密鑰可在共模公開密鑰存儲指令1506的控制下進行存儲。例如,公開密鑰接收指令1504可控制來自圖9的裝置的第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰的接收,其中第一和第二公開密鑰/私用密鑰對共享共模。使用共模公開密鑰中的至少一個的去話消息(去到例如圖9的裝置)的加密可使用加密指令1508執行,以(例如)使用第一和第二公開密鑰/私用密鑰對的第一公開密鑰對消息進行加密。任何所接收的消息的解密可通過解密指令1510使用遠程系統的至少一個私用密鑰來執行。

又另外,共模數字籤名處理器指令1512經操作以使用共模密鑰對來控制籤名驗證程序等等。更確切地說,驗證指令1514經操作以驗證由遠程系統接收到的消息的籤名,其中驗證使用共模密鑰對的公開密鑰。例如,驗證指令1514可使用一對共模密鑰對的第二公開密鑰來驗證從圖9的裝置接收的經籤名的回覆的籤名。還可提供籤名指令1516,以使用遠程系統私用密鑰對消息進行籤名,從而提供、獲得或以另外方式產生數字籤名。公開密鑰/回復消息接收指令1518經操作以從遠程裝置(例如,圖9的裝置)接收共享共模的公開密鑰,以從遠程裝置接收經籤名的回覆消息,以及接收其它信息或數據。已加密的消息發射指令1520經操作以將已加密的消息發射到遠程裝置,並用於發射其它信息或數據。

圖16大體上示出和概述用於加密和驗證消息的可由與密碼裝置(例如,圖9的裝置)通信的系統(例如,並有圖14的裝置的系統)執行的方法或程序1600。在1602處,系統從單獨的裝置接收第一和第二公開密鑰/私用密鑰對的第一和第二公開密鑰,其中第一和第二公開密鑰/私用密鑰對共享共模。在1604處,系統使用共享共模的第一和第二公開密鑰/私用密鑰對的第一公開密鑰對消息進行加密。在1605處,系統將已加密的消息發送到所述單獨的裝置。在1606處,系統從所述單獨的裝置接收對消息的經籤名的回覆,其中所述消息已利用使用第二公開密鑰/私用密鑰對的私用密鑰所獲得的籤名進行籤名。在1608處,系統使用共享共模的第一和第二公開密鑰/私用密鑰對的第二公開密鑰來驗證經籤名的回覆的籤名。

圖17大體上示出和概述用於加密和驗證消息的可由與密碼裝置(例如,圖9的裝置)通信的系統(例如,具有圖14的裝置的系統)執行的其它方法或程序1700。在1702處,系統接收RSA公開密鑰/私用密鑰對(e1,d1)和(e2,d2)的第一和第二公開密鑰(e1,e2),其中第一和第二公開密鑰/私用密鑰對:(1)共享共模N=pq,其中p和q是小於模數N的素數,並且p-1和q-1與第一公開密鑰(e1)和第二公開密鑰(e2)兩者互質,以及(2)不同於彼此;並且其中第一和第二公開密鑰(e1,e2)是這樣的:第一公開密鑰(e1)不是第二公開密鑰(e2)的整倍數,和/或第二公開密鑰(e2)不是第一公開密鑰(e1)的整倍數。在1704處,系統使用公開密鑰(e1)對消息進行加密,並將其發送到移動無線裝置的嵌入式系統。在1706處,系統從移動無線裝置的嵌入式系統接收對消息的經籤名的回覆,其中所述消息已利用使用第二公開密鑰/私用密鑰對(e2,d2)的私用密鑰(d2)所獲得的籤名進行籤名。在1708處,系統使用第二公開密鑰(e2)來驗證經籤名的回覆的籤名。

圖18大體上示出和概述用於加密和驗證消息(其中,採用三個或大於三個密鑰對)的可由與密碼裝置(例如,圖9的裝置)通信的系統(例如,具有圖14的裝置的系統)執行的其它方法或程序1800。在1802處,系統接收公開密鑰/私用密鑰對集合(e1,d1)…(en,dn)的三個或大於三個公開密鑰(e1…en),其中n大於2,並且其中公開密鑰:(1)共享共模N=pq,其中p和q是小於模數N的素數,並且p-1和q-1與全部公開密鑰(e1…en)互質,以及(2)其中公開密鑰(e1…en)中的每一個不同於彼此;並且其中公開密鑰(e1…en)中的每一個是這樣的:每一公開密鑰不是其它公開密鑰中的任一者的整倍數。在1804處,系統使用公開密鑰中的一個對消息進行加密,並將其發送到移動無線裝置的嵌入式系統。在1806處,系統從移動無線裝置的嵌入式系統接收對消息的經籤名的回覆,其中所述消息已利用使用公開密鑰/私用密鑰對集合的私用密鑰所獲得的籤名進行籤名。在1808處,系統使用對應於用於獲得籤名的私用密鑰的公開密鑰來驗證經籤名的回覆的籤名。因此,圖18示出其中產生大於兩個密鑰對的實例,其中每一類型具有至少一個密鑰對,並且其中全部密鑰對滿足公開指數無法除盡(整數)彼此的條件。

應注意,本發明的各方面可在本文中描述為過程,所述過程描繪為流程圖表、流程圖、結構圖或框圖。儘管流程圖表可將操作描述為順序過程,但是許多操作可以並行或同時執行。此外,操作的次序可重新布置。過程在其操作完成時終止。過程可以對應於方法、函數、步驟、子例程、子程序等。當過程對應於函數時,其終止對應於所述函數返回到調用函數或主函數。

所屬領域的技術人員將進一步了解,結合本文中所揭示的方面描述的各種說明性邏輯塊、模塊、電路和算法步驟可實施為電子硬體、計算機軟體或兩者的組合。為清楚地說明硬體與軟體的這種互換性,以上已大體就各種說明性組件、塊、模塊、電路以及步驟的功能性對它們進行描述。此類功能性是實施為硬體還是軟體取決於具體應用及強加於整個系統的設計約束。

結合本文中揭示的實例而描述的方法或算法可以處理單元、編程指令或其它方向的形式直接體現在硬體、可由處理器執行的軟體模塊或兩者的組合中,且可含於單個裝置中或跨越多個裝置而分布。軟體模塊可駐留在RAM存儲器、快閃記憶體、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬碟、可移動磁碟、CD-ROM,或此項技術中已知的任何其它形式的存儲媒體中。存儲媒體可耦合到處理器,使得處理器可從存儲媒體讀取信息和將信息寫入到存儲媒體。在替代方案中,存儲媒體可以與處理器成一體式。

本文中描述的本發明的各種特徵可實施於不同系統中而不脫離本發明。應注意,前述實施例僅為實例,且不應解釋為限制本發明。實施例的描述意圖為說明性的,且不限制權利要求書的範疇。因此,本發明的教示可易於應用於其它類型的設備,且所屬領域的技術人員將明白許多替代方案、修改及變化。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀