專利名稱:偽公鑰加密方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于公鑰加密的方法和系統(tǒng),具體地說,涉及用于以低成本實(shí)現(xiàn)偽公鑰加密系統(tǒng)的方法和系統(tǒng)。
背景技術(shù):
在當(dāng)前的加密技術(shù)中尤為重要的公鑰加密方法被廣泛地用于加密、簽名和認(rèn)證。用于實(shí)現(xiàn)公鑰加密系統(tǒng)的算法通常需要非常高的計(jì)算成本。實(shí)現(xiàn)公鑰加密系統(tǒng)的實(shí)用方法之一是RSA加密法。RSA加密法需要將明文或密文提升到從n的歐拉函數(shù)值獲得的數(shù)(加密指數(shù)或解密指數(shù))的冪(其是兩個(gè)大的質(zhì)數(shù)的乘積)并且然后確定n的殘數(shù)的運(yùn)算,此運(yùn)算的成本非常高。為了提高密鑰的安全性,n的位數(shù)需要很大。但是,具有很大位數(shù)的RSA加密法所需的計(jì)算成本非常高。盡管可以采用諸如使用專用硬件執(zhí)行此類運(yùn)算之類的措施來追求高速度,但是這將為開發(fā)和制造成本增加負(fù)擔(dān)或影響產(chǎn)品的靈活性。由于這種情況,使用公鑰的加密系統(tǒng)的成本很高,并且很難將其結(jié)合到可以被廉價(jià)地大量生產(chǎn)的裝置中。
還存在一種公知的橢圓曲線加密法,與RSA加密法相比,其具有較少的位數(shù)和同等的強(qiáng)度。但是,盡管與模數(shù)取冪的運(yùn)算成本相比,加密(對(duì)有限體上定義的橢圓曲線上的一點(diǎn)進(jìn)行標(biāo)量乘法,等等)所需的運(yùn)算成本較低,但是類似地所述加密法需要昂貴的運(yùn)算,并且因此仍然很難將其結(jié)合到可以被廉價(jià)地大量生產(chǎn)的裝置中。此外,還提議了一種使用密鑰加密系統(tǒng)和防篡改硬件來實(shí)現(xiàn)公鑰加密系統(tǒng)的方法。在此方法中,接收者使用第三方機(jī)關(guān)的密鑰來加密其自己的密鑰并將其公布。發(fā)送者使用所述第三方機(jī)關(guān)的密鑰將其解密,使用獲得的接收者的密鑰加密消息并發(fā)送該消息。接收者使用其自己的密鑰將其解密。由于使用第三方機(jī)關(guān)的密鑰的加密、使用第三方機(jī)關(guān)的密鑰的解密以及使用接收者的密鑰的加密都在防篡改硬件中執(zhí)行,所以可以確保安全性。但是,在此方法中,發(fā)送者和接收者必須使用不同的硬件,并且他們的密鑰都需要使用同一硬件。此方法類似于例如基于ID的加密系統(tǒng)的方法,其中公鑰不是通過認(rèn)證機(jī)關(guān)來分發(fā),因?yàn)镮D被公開。在此方法中,密鑰生成機(jī)關(guān)從用戶的唯一ID來生成用戶的私鑰,并且任何人都可以從用戶ID來生成用戶的公鑰。此方法就公鑰的分發(fā)而言很方便。但是,RSA加密法中的陷門單向函數(shù)的性質(zhì)等被用于消息的加密/解密,并且處理所需的成本與普通公鑰加密系統(tǒng)的成本一樣高。
已公布未審查的專利申請(qǐng)No.2004-70712發(fā)明公開本發(fā)明將解決的問題本發(fā)明將要解決的問題是提供一種用于以低成本實(shí)現(xiàn)偽公鑰加密系統(tǒng)的方法和系統(tǒng)。
另一個(gè)問題是提供一種能夠通過使用公鑰來更廉價(jià)地實(shí)現(xiàn)加密信息通信和代碼簽名通信的方法和系統(tǒng)。
再一個(gè)問題是提供一種允許在諸如移動(dòng)終端(其上頻繁地執(zhí)行簽名并且其需要即時(shí)處理)之類的終端上執(zhí)行信息處理和通信且保持高安全性的方法和系統(tǒng)。
再一個(gè)問題是提供一種用于虛假地實(shí)現(xiàn)需要昂貴運(yùn)算的函數(shù)的方法和系統(tǒng)。
發(fā)明內(nèi)容
根據(jù)本發(fā)明,密鑰加密系統(tǒng)和防篡改硬件被用于以低成本來實(shí)現(xiàn)偽公鑰加密系統(tǒng)。陷門單向函數(shù)(其被認(rèn)為是構(gòu)建公鑰加密系統(tǒng)所必不可少的)通常要求“昂貴的”運(yùn)算。使用防篡改硬件可以實(shí)際地實(shí)現(xiàn)此類函數(shù)。每個(gè)用戶使用配備有硬件(其具有以下所述的相同功能)的設(shè)備來執(zhí)行通信。此類硬件保持ID與密鑰之間的關(guān)聯(lián)。響應(yīng)于來自用戶的請(qǐng)求,所述硬件發(fā)行并存儲(chǔ)ID,并且其可以使用與所述ID關(guān)聯(lián)的密鑰來執(zhí)行消息認(rèn)證代碼(此后稱為MAC)的解密和生成。盡管此硬件可以使用任何給定的ID來執(zhí)行MAC的加密和驗(yàn)證,但是其不能執(zhí)行MAC的解密和生成。用戶公開其ID。當(dāng)執(zhí)行加密時(shí),消息發(fā)送者使用消息接收者的公開的ID并使用與接收者的硬件具有相同功能的硬件來加密消息。第三者只能通過分析所述硬件中的機(jī)制來使用所述ID執(zhí)行解密。但是,當(dāng)嘗試此類操作時(shí),所述硬件具有自破壞的能力。
當(dāng)使用對(duì)稱函數(shù),并且用P表示明文、C表示暗文、K1表示公鑰、K2表示私鑰時(shí),基本上很難從K1導(dǎo)出K2。
C=F(P)=H(P,K1)P=F-1(C)=H(C,K2)對(duì)于滿足上述條件的函數(shù)F,如果對(duì)于不知道K2的人實(shí)際上不可能計(jì)算出F-1,則可以構(gòu)建公鑰加密系統(tǒng)。在本發(fā)明中,給出了借助廉價(jià)計(jì)算的密鑰K的函數(shù)F,并且F的功能被隱藏在防篡改硬件中。同時(shí),給出了隱藏在硬件中的一對(duì)一函數(shù)K=G(ID)以便滿足下列條件,其中ID是所述密鑰的標(biāo)識(shí)符。
C=F(P)=H(P,G(ID))P=F-1(C)=H(C,G(ID))在此情況下,所述ID被公開為偽公鑰以便在執(zhí)行MAC的加密或驗(yàn)證時(shí),任何人都可以計(jì)算G(ID)。另一方面,當(dāng)執(zhí)行MAC的解密或生成時(shí),只有ID的有效所有者才能計(jì)算出G(ID)。由此構(gòu)建了由硬件實(shí)現(xiàn)的陷門單向函數(shù)F,并且實(shí)現(xiàn)了偽公鑰加密系統(tǒng)。
作為本發(fā)明的優(yōu)選裝置,使用了包括防篡改硬件的裝置,所述防篡改硬件包括加密/認(rèn)證部分,用于響應(yīng)于用戶的請(qǐng)求執(zhí)行ID的發(fā)行、加密和認(rèn)證;以及篡改檢測(cè)部分,用于檢測(cè)電壓變化或壓力變化以便電氣地破壞所述加密/認(rèn)證部分。借助此裝置來執(zhí)行偽公鑰加密。所述裝置的所述加密/認(rèn)證部分包括ID發(fā)行/登記部分,用于發(fā)行ID以響應(yīng)用戶請(qǐng)求以及將所述ID存儲(chǔ)在存儲(chǔ)部分中;密鑰生成部分,用于使用一對(duì)一函數(shù)來生成與所述ID對(duì)應(yīng)的密鑰并輸出所述ID;第一密鑰獲取部分,用于響應(yīng)于用戶解密或生成消息認(rèn)證代碼的請(qǐng)求,將輸入的ID與存儲(chǔ)在所述ID存儲(chǔ)部分中的所述ID進(jìn)行比較并且,如果所述ID彼此一致,將所述ID移交給所述密鑰生成部分以便輸出由所述密鑰生成部分生成的密鑰;第二密鑰獲取部分,用于響應(yīng)于用戶加密或驗(yàn)證帶有附加到其的消息認(rèn)證代碼的消息的請(qǐng)求,將輸入的ID移交給所述密鑰生成部分以便輸出由所述密鑰生成部分生成的密鑰;消息認(rèn)證代碼生成部分,用于將輸入的ID移交給所述第一密鑰獲取部分并且,使用從所述第一密鑰獲取部分輸出的密鑰,計(jì)算和輸出輸入消息的消息認(rèn)證代碼;消息認(rèn)證代碼驗(yàn)證部分,用于將輸入的ID移交給所述第二密鑰獲取部分,使用從所述第二密鑰獲取部分輸出的密鑰來計(jì)算輸入消息的消息認(rèn)證代碼,將所獲得的消息認(rèn)證代碼與輸入的消息認(rèn)證代碼進(jìn)行比較,并且如果所述消息認(rèn)證代碼彼此一致,將指示所述驗(yàn)證已成功的信息返回給所述用戶;加密部分,用于將輸入的ID移交給所述第二密鑰獲取部分,使用從所述第二密鑰獲取部分輸出的密鑰來加密輸入的明文并將結(jié)果返回用戶;以及解密部分,用于將輸入的ID移交給所述第一密鑰獲取部分并且,使用從所述第一密鑰獲取部分輸出的密鑰,解密和輸出輸入的加密文本。
使用此裝置執(zhí)行偽公鑰加密的方法包括以下描述的諸步驟。在分別具有所述裝置A和所述裝置B的發(fā)送用戶和接收用戶之間發(fā)送消息中,所述方法包括以下步驟所述裝置A選擇并存儲(chǔ)發(fā)送用戶ID,然后將所述發(fā)送用戶ID返回給所述發(fā)送用戶,以便公開所述發(fā)送用戶ID;所述裝置B選擇并存儲(chǔ)接收用戶ID,然后將所述接收用戶ID返回給所述接收用戶,以便公開所述接收用戶ID;所述裝置A獲取與所述發(fā)送用戶ID對(duì)應(yīng)的密鑰,生成消息認(rèn)證代碼并將所述消息認(rèn)證代碼返回給所述發(fā)送用戶;響應(yīng)于所述發(fā)送用戶的加密請(qǐng)求,所述裝置A獲取與所述接收用戶ID對(duì)應(yīng)的密鑰,加密所述消息和所述消息認(rèn)證代碼并將所述加密的消息和消息認(rèn)證代碼返回給所述發(fā)送用戶;響應(yīng)于所述接收用戶對(duì)所述加密進(jìn)行解密的請(qǐng)求,所述裝置B獲取與所述接收用戶ID對(duì)應(yīng)的密鑰,解密所述接收的消息并將所述解密的消息返回給所述接收用戶;以及響應(yīng)于所述接收用戶驗(yàn)證所述消息認(rèn)證代碼的請(qǐng)求,所述裝置B獲取與所述發(fā)送ID對(duì)應(yīng)的密鑰,驗(yàn)證所述消息認(rèn)證代碼并將結(jié)果返回給所述接收用戶。本發(fā)明的以上概要并未列舉出本發(fā)明的所有必要特征,并且這些特征的子組合可以是本發(fā)明。
本發(fā)明的優(yōu)點(diǎn)根據(jù)本發(fā)明,可以借助公鑰以低成本來實(shí)現(xiàn)加密信息通信和代碼簽名通信。通過在移動(dòng)終端(其目前越來越多地被用于各種目的),尤其是在廉價(jià)和大量生產(chǎn)的終端(其上頻繁地執(zhí)行簽名并要求即時(shí)處理)上實(shí)現(xiàn)本發(fā)明,即使在此類終端上,也可以實(shí)現(xiàn)要求高級(jí)別安全性管理的信息處理和通信。
圖1是本發(fā)明的硬件的方塊圖;圖2是示出了加密/認(rèn)證部分的細(xì)節(jié)的示意圖;圖3是示出了本發(fā)明的發(fā)送/接收協(xié)議的示意圖;圖4是示出了本發(fā)明的其他發(fā)送/接收協(xié)議的示意圖;圖5示出了將本發(fā)明應(yīng)用到基于ID的加密系統(tǒng)的實(shí)例;以及圖6示出了將本發(fā)明應(yīng)用到移動(dòng)電話的實(shí)例。
符號(hào)說明100系統(tǒng)101加密/認(rèn)證部分102篡改檢測(cè)部分201ID發(fā)行/登記部分206ID存儲(chǔ)部分210密鑰生成部分209種子存儲(chǔ)部分
207第一密鑰獲取部分208第二密鑰獲取部分202生成部分204驗(yàn)證部分205加密部分203解密部分520ID存儲(chǔ)機(jī)關(guān)具體實(shí)施方式
優(yōu)選實(shí)施例圖1示出了本發(fā)明的硬件的方塊圖。系統(tǒng)100是完整的系統(tǒng),其中包括加密/認(rèn)證部分101和篡改檢測(cè)部分102。加密/認(rèn)證部分101執(zhí)行諸如發(fā)行ID、響應(yīng)于來自用戶的請(qǐng)求進(jìn)行加密和驗(yàn)證之類的服務(wù)。篡改檢測(cè)部分102檢測(cè)在用戶嘗試分析系統(tǒng)100的內(nèi)部電路時(shí)引起的電壓變化或壓力變化并電氣地破壞加密/認(rèn)證部分101。
圖2是示出了圖1中的加密/認(rèn)證部分101的細(xì)節(jié)的示意圖。ID發(fā)行/登記部分201發(fā)行唯一的ID以響應(yīng)來自用戶的請(qǐng)求并將其存儲(chǔ)在ID存儲(chǔ)部分206中。密鑰生成部分210根據(jù)輸入的ID和存儲(chǔ)在種子存儲(chǔ)部分209中的種子來生成并輸出密鑰。當(dāng)用戶嘗試解密或生成MAC時(shí),第一密鑰獲取部分207將輸入的ID與存儲(chǔ)在ID存儲(chǔ)部分206中的ID進(jìn)行比較。如果所述ID相同,則第一密鑰獲取部分207將ID移交給密鑰生成部分210并輸出從密鑰生成部分210返回的密鑰。如果所述ID不同,則返回錯(cuò)誤。當(dāng)用戶嘗試加密或驗(yàn)證附加有MAC的消息時(shí),第二密鑰獲取部分208將輸入的ID移交給密鑰生成部分210并輸出從密鑰生成部分210返回的密鑰。使用消息和ID作為輸入,MAC生成部分202將所述ID移交給第一密鑰獲取部分207并獲得密鑰。如果沒有從所述密鑰獲取部分返回錯(cuò)誤,則MAC生成部分202計(jì)算并輸出所述消息的MAC。如果從所述密鑰獲取部分返回了錯(cuò)誤,則MAC生成部分202將錯(cuò)誤返回給所述用戶。使用所述消息、MAC和ID作為輸入,MAC驗(yàn)證部分204將所述ID移交給第二密鑰獲取部分208并獲得密鑰。MAC生成部分202根據(jù)所述密鑰計(jì)算并輸出所述消息的MAC,并將獲得的MAC與輸入的MAC進(jìn)行比較。如果所述MAC相同,則指示驗(yàn)證成功的信息被返回給所述用戶。否則,指示驗(yàn)證失敗的信息被返回給所述用戶。使用明文和ID作為輸入,加密部分205將所述ID移交給第二密鑰獲取部分208并獲得密鑰。加密部分205根據(jù)所述密鑰加密所述明文并將結(jié)果返回給用戶。使用暗文和所述ID作為輸入,解密部分203將所述ID移交給第一密鑰獲取部分207并獲得密鑰。如果沒有從所述密鑰獲取部分返回錯(cuò)誤,則解密部分203根據(jù)所述密鑰解密并輸出暗文。如果從所述密鑰獲取部分返回了錯(cuò)誤,則解密部分203將錯(cuò)誤返回給所述用戶。
如從以上描述中理解的,本發(fā)明的硬件具有這樣的能力使用特定的密鑰來執(zhí)行MAC的加密/解密和生成/驗(yàn)證,并且防止入侵操作進(jìn)行篡改。所述硬件配備有以下接口·用于發(fā)行和登記與密鑰關(guān)聯(lián)的ID以響應(yīng)來自用戶的請(qǐng)求的接口;·用于只有當(dāng)ID已登記時(shí)才使用給定的所述ID來解密消息的接口;·用于從解密的消息來生成MAC的接口;·用于使用給定的ID來加密消息的接口;以及·用于驗(yàn)證消息的MAC的接口。
接著,將描述本發(fā)明中用于交換信息的方法。如以下描述的那樣交換加密的信息。首先,消息接收者請(qǐng)求其中結(jié)合有圖1的系統(tǒng)100的裝置發(fā)行ID。系統(tǒng)100將與特定密鑰關(guān)聯(lián)的ID移交給所述用戶并登記所述ID。接收者公開接收到的ID。消息發(fā)送者通過其中結(jié)合了具有相同功能的系統(tǒng)100的裝置,使用公開的ID來加密將被發(fā)送的消息。實(shí)際上,只有接收者才能解密所述消息。
如以下描述的那樣交換具有附加到其的MAC的消息。首先,消息發(fā)送者請(qǐng)求其中結(jié)合了系統(tǒng)100的裝置發(fā)行ID。系統(tǒng)100將與特定密鑰關(guān)聯(lián)的ID移交給所述用戶并登記所述ID。所述發(fā)送者通過同一系統(tǒng)100利用接收到的ID來生成將被發(fā)送的消息的MAC。實(shí)際上,只有所述發(fā)送者才能生成所述MAC。所述發(fā)送者發(fā)送所述消息、MAC和ID。所述消息的接收者通過其中結(jié)合了具有相同功能的系統(tǒng)100的裝置,利用所述ID為所述接收的消息驗(yàn)證所述接收的MAC。
用于進(jìn)一步增強(qiáng)本發(fā)明的安全性的方法。為了只有接收者才能解密消息并且只有發(fā)送者才能生成MAC,希望同一ID不應(yīng)被惡意地使用,這是公鑰加密系統(tǒng)中的一個(gè)常見問題。為了實(shí)現(xiàn)此目的,將采用以下方法。
·通過二次編碼進(jìn)行密碼稀釋當(dāng)ID被發(fā)行時(shí),其被編碼有較高的平均信息量(通過在其中包括冗余信息)。由此,可以顯著地減小同一ID被移交給用戶的可能性。此外,編碼算法隨裝置而不同以使得逆編碼變得困難。這使得惡意的個(gè)人將公開的ID和用其自己的系統(tǒng)100登記的ID標(biāo)識(shí)為相同非常困難。此外,通過將解密的故意失敗看作惡意操作并且然后在檢測(cè)到此類操作時(shí)停止功能,可以實(shí)際上阻止惡意的個(gè)人執(zhí)行解密以檢驗(yàn)ID的同一性。例如,此機(jī)制可以通過填充隨機(jī)值的方法來實(shí)現(xiàn)。原始ID的空間被定義為X位,并且進(jìn)一步添加Y位空間以便稀釋密鑰。當(dāng)原始ID被發(fā)行時(shí),隨機(jī)的Y位數(shù)字被放入此附加的空間中。通過這種方式獲得的(X+Y)位信息被混合以獲得將被公開的ID。盡管此混合可以是簡(jiǎn)單的混合(如移位和交換的組合),但是算法被隱藏在防篡改系統(tǒng)100中。由此,同一密鑰被發(fā)行的概率可以被減小到在直接使用X位密鑰的情況下的概率的2^Y分之一。通過在防篡改硬件中實(shí)現(xiàn)逆運(yùn)算算法并移除冗余添加的空間,也可以簡(jiǎn)單地實(shí)現(xiàn)公開的(X+Y)位原始密鑰。
·ID的登記發(fā)行的ID由認(rèn)證機(jī)關(guān)來驗(yàn)證。通過認(rèn)證機(jī)關(guān)保證ID的唯一性,可以防止ID的非法使用。
·ID發(fā)行的限制作為防止發(fā)行同一ID的手段,發(fā)行的數(shù)量收到限制,或?qū)Πl(fā)行收費(fèi)。
·為了防止已為其發(fā)行了一次ID的設(shè)備被其他用戶使用,需要用戶認(rèn)證以使用所述設(shè)備。
將說明一種用于結(jié)合基于ID的加密系統(tǒng)來實(shí)現(xiàn)本發(fā)明的方法。本發(fā)明的ID并非用作“個(gè)人的ID”,而是用作“密鑰的ID”。因此,一般地說,類似于其他(并非基于ID的)公鑰加密系統(tǒng),本發(fā)明需要認(rèn)證機(jī)關(guān)來公開ID。同時(shí),由于基于ID的加密系統(tǒng)的目標(biāo)與本發(fā)明的目標(biāo)相對(duì)應(yīng),所以也可以相互結(jié)合地使用兩個(gè)系統(tǒng)。在此情況下,密鑰生成機(jī)關(guān)生成用戶的私鑰以便“個(gè)人的ID”適合于成為“密鑰的ID”。這可以例如通過只允許密鑰生成機(jī)關(guān)發(fā)行和登記任意給定的ID來實(shí)現(xiàn)。在此情況下,可以不通過認(rèn)證機(jī)關(guān)來得知公鑰,并且因此可以構(gòu)建一種允許更廉價(jià)地加密的系統(tǒng)。
實(shí)施例1在足夠數(shù)量的密鑰可以被存儲(chǔ)在系統(tǒng)100(包括每個(gè)接口和發(fā)送/接收協(xié)議)中的情況下,將使用圖3對(duì)實(shí)施例進(jìn)行描述。假定用戶A和用戶B使用圖1中的系統(tǒng)100(硬件A和硬件B)彼此通信。還假定足夠數(shù)量的密鑰被存儲(chǔ)在系統(tǒng)100中,其中每個(gè)密鑰都被賦予一個(gè)特定于其的ID。如果硬件的各部分相同,則所述ID和所述密鑰的映射也是相同的。
用戶A從硬件A請(qǐng)求ID(310)。硬件A從ID空間隨機(jī)地選擇ID(此后稱為ID-A)(320),并將所述ID返回給用戶A。所述ID還被存儲(chǔ)在ID存儲(chǔ)部分中。用戶A公開ID-A。同時(shí),用戶B也已執(zhí)行了與用戶A相同的過程。即,用戶B從硬件B請(qǐng)求ID(310)。硬件B從ID空間隨機(jī)地選擇ID(此后稱為ID-B),并將所述ID返回給用戶B。所述ID也被存儲(chǔ)在ID存儲(chǔ)部分中(330)。用戶B公開ID-B。假定用戶A將消息發(fā)送給用戶B。首先,所述消息被賦予具有用戶A的密鑰的MAC,然后其被使用用戶B的密鑰加密。在不對(duì)本說明書的配置做出任何更改的情況下,可以選擇任何MAC和任何加密算法。例如,可以使用HMAC-SHA1或AES。
用戶A按以下程序創(chuàng)建將被發(fā)送的消息。用戶A將所述消息和ID-A移交給硬件A并請(qǐng)求生成MAC。硬件A檢查ID-A是否被存儲(chǔ)在ID存儲(chǔ)部分中(340)。如果存儲(chǔ)了ID-A,則硬件A從密鑰存儲(chǔ)部分獲得與ID-A對(duì)應(yīng)的密鑰(350),生成MAC(360)并將其返回給用戶A。如果沒有存儲(chǔ)ID-A,則硬件A將錯(cuò)誤返回給用戶A。用戶A將(消息/MAC)和ID-B移交給硬件A并請(qǐng)求加密。硬件A從密鑰存儲(chǔ)部分獲得與ID-B對(duì)應(yīng)的密鑰,解密所述(消息/MAC)(370),并將其返回給用戶A。
同時(shí),用戶B按以下程序處理接收到的消息。用戶B將所述接收到的消息和ID-B移交給硬件B并請(qǐng)求解密。硬件B檢查ID-B是否被存儲(chǔ)在ID存儲(chǔ)部分中(340)。如果存儲(chǔ)了ID-B,則硬件B從密鑰存儲(chǔ)部分獲得與ID-B對(duì)應(yīng)的密鑰(350),解密接收到的消息(380)并將其返回給用戶B。如果沒有存儲(chǔ)ID-B,則硬件B將錯(cuò)誤返回給用戶B。用戶B將所述消息、MAC和ID-A移交給硬件B并請(qǐng)求驗(yàn)證MAC。硬件B從密鑰存儲(chǔ)部分獲得與ID-A對(duì)應(yīng)的密鑰,驗(yàn)證所述MAC(390),并將結(jié)果返回給用戶B。
實(shí)施例2實(shí)際上,通常不可能具有足夠的存儲(chǔ)容量來存儲(chǔ)足夠數(shù)量的密鑰。在足夠數(shù)量的密鑰不能被存儲(chǔ)在系統(tǒng)100中的情況下,將使用圖4對(duì)實(shí)施例進(jìn)行描述。只有一個(gè)值(此后稱為種子)被存儲(chǔ)在系統(tǒng)100中以便從所述種子和適當(dāng)?shù)腎D來生成密鑰。使用任何散列算法(例如,SHA-1)以便將(ID/種子)的散列值用作密鑰。在此情況下,用戶A創(chuàng)建將被發(fā)送的消息的過程如下。
所述過程從用戶A和B請(qǐng)求ID并且所述硬件選擇并存儲(chǔ)ID的步驟到每個(gè)用戶公開其自己的ID的步驟與上述實(shí)施例的這些步驟相同。假定用戶A將消息發(fā)送給用戶B。當(dāng)創(chuàng)建將被發(fā)送的消息時(shí),用戶A將所述消息和ID-A移交給硬件A并請(qǐng)求生成MAC。硬件A檢查ID-A是否被存儲(chǔ)在ID存儲(chǔ)部分中(440)。如果存儲(chǔ)了ID-A,則硬件A根據(jù)所述種子和ID-A生成密鑰(450),生成MAC(460)并將其返回給用戶A。如果沒有存儲(chǔ)ID-A,則硬件A將錯(cuò)誤返回給用戶A。用戶A將(消息/MAC)和ID-B移交給硬件A并請(qǐng)求加密。硬件A根據(jù)所述種子和ID-B生成密鑰,加密所述(消息/MAC)(470)并將其返回給用戶A。
另一方面,用戶B處理接收到的消息的過程如下。用戶B將所述接收到的消息和ID-B移交給硬件B并請(qǐng)求解密。硬件B檢查ID-B是否被存儲(chǔ)在ID存儲(chǔ)部分中(440)。如果存儲(chǔ)了ID-B,則硬件B根據(jù)所述種子和ID-B生成密鑰(450),解密所述接收到的消息(480)并將其返回給用戶B。如果沒有存儲(chǔ)ID-B,則硬件B將錯(cuò)誤返回給用戶B。用戶B將所述消息、MAC和ID-A移交給硬件B并請(qǐng)求驗(yàn)證MAC。硬件B根據(jù)所述種子和ID-A生成密鑰,驗(yàn)證所述MAC(490),并將結(jié)果返回給用戶B。
實(shí)施例3在上述兩個(gè)實(shí)施例中,示出了隨機(jī)選擇ID的情況。接著,使用圖5來描述將本發(fā)明應(yīng)用到基于ID的加密系統(tǒng)的實(shí)例。在此情況下,將由用戶A預(yù)先執(zhí)行的處理如下。用戶A將硬件A和ID-A移交給ID存儲(chǔ)機(jī)關(guān)520并請(qǐng)求將所述ID存儲(chǔ)在硬件中(510)。所述ID存儲(chǔ)機(jī)關(guān)將ID-A移交給硬件A并請(qǐng)求存儲(chǔ)所述ID。硬件A將ID-A存儲(chǔ)在ID存儲(chǔ)部分中。將由用戶B預(yù)先執(zhí)行的處理是相同的。即,用戶B將硬件B和ID-B移交給ID存儲(chǔ)機(jī)關(guān)520,并請(qǐng)求將所述ID存儲(chǔ)在硬件中(510)。所述ID存儲(chǔ)機(jī)關(guān)將ID-B移交給硬件B并請(qǐng)求存儲(chǔ)所述ID。硬件B將ID-B存儲(chǔ)在ID存儲(chǔ)部分中。用戶A創(chuàng)建將被發(fā)送的消息的過程和用戶B處理接收到的消息的過程與實(shí)施例1或?qū)嵤├?中描述的過程相同。
實(shí)施例4
在實(shí)施例3中,示出了基于ID的加密系統(tǒng)中的一般過程。以將此應(yīng)用于移動(dòng)電話為例,圖6示出了使得ID的獲取和設(shè)備的移交能夠被更高效地執(zhí)行的過程。此處,所述ID存儲(chǔ)機(jī)制被這樣實(shí)現(xiàn)設(shè)備制造商將設(shè)備的銷售委托給零售商同時(shí)確保ID僅被存儲(chǔ)在所述設(shè)備中一次,并且零售商通過基礎(chǔ)結(jié)構(gòu)的協(xié)作獲得適當(dāng)和唯一的ID,將其存儲(chǔ)在所述設(shè)備中并將所述設(shè)備移交給用戶。具體地說,將電話號(hào)碼設(shè)置為ID。在步驟610,設(shè)備制造商確定一個(gè)一對(duì)一函數(shù)f以便從所述ID(電話號(hào)碼)獲得密鑰。接著,在步驟620,f(ID)被包括在防篡改裝置中。設(shè)備制造商在所述裝置中預(yù)先布置了一次寫入存儲(chǔ)器。最后,在步驟630,零售商將所述ID寫入該處以使用設(shè)備登記所述ID,以便所述ID成為f(ID)的輸入。此處,與實(shí)施例1或?qū)嵤├?中示出的相同,只有在向其登記了所述ID的設(shè)備上才能使用f(ID)解密消息和生成MAC。另一方面,在沒有向其登記所述ID的設(shè)備上,使用f(ID)進(jìn)行消息的解密是可能的。MAC的驗(yàn)證也是可能的。
消息被按以下方式交換。用戶A和B分別購(gòu)買移動(dòng)電話并獲得唯一的電話號(hào)碼NA和NB。在加密的情況下,用戶A使用f(NB)作為密鑰來加密消息M。用戶A將加密的消息E(M)發(fā)送給用戶B。用戶B使用f(NB)解密E(M)。只有用戶B才能夠使用f(NB)執(zhí)行解密。在簽名的情況下,用戶A使用f(NA)作為密鑰來生成消息M的MAC,并將所述M和所述MAC發(fā)送給用戶B。在此情況下,只有用戶A才能夠使用f(NA)生成M的MAC。用戶B可以驗(yàn)證發(fā)送的消息M和MAC并檢查用戶A的簽名。類似的機(jī)制可以被應(yīng)用于除移動(dòng)電話以外的裝置。例如,當(dāng)信息家電被連接到互聯(lián)網(wǎng)時(shí),IP地址或主機(jī)名可以被用作ID。
權(quán)利要求
1.一種包括防篡改硬件的裝置,所述防篡改硬件包括加密/認(rèn)證部分,用于響應(yīng)于用戶的請(qǐng)求執(zhí)行標(biāo)識(shí)符的發(fā)行、加密和認(rèn)證;以及篡改檢測(cè)部分,用于檢測(cè)電壓變化或壓力變化以便電氣地破壞所述加密/認(rèn)證部分,所述加密/認(rèn)證部分包括標(biāo)識(shí)符發(fā)行/登記部分,用于發(fā)行標(biāo)識(shí)符以響應(yīng)用戶請(qǐng)求以及將所述標(biāo)識(shí)符存儲(chǔ)在存儲(chǔ)部分中;密鑰生成部分,用于使用一對(duì)一函數(shù)來生成與所述標(biāo)識(shí)符對(duì)應(yīng)的密鑰并輸出所述密鑰;第一密鑰獲取部分,用于響應(yīng)于用戶解密或生成消息認(rèn)證代碼的請(qǐng)求,將輸入的標(biāo)識(shí)符與存儲(chǔ)在所述標(biāo)識(shí)符存儲(chǔ)部分中的所述標(biāo)識(shí)符進(jìn)行比較并且,如果所述標(biāo)識(shí)符彼此一致,將所述標(biāo)識(shí)符移交給所述密鑰生成部分以便輸出由所述密鑰生成部分生成的密鑰;第二密鑰獲取部分,用于響應(yīng)于用戶加密或驗(yàn)證帶有附加到其的消息認(rèn)證代碼的消息的請(qǐng)求,將輸入的標(biāo)識(shí)符移交給所述密鑰生成部分以便輸出由所述密鑰生成部分生成的密鑰;消息認(rèn)證代碼生成部分,用于將輸入的標(biāo)識(shí)符移交給所述第一密鑰獲取部分并且,使用從所述第一密鑰獲取部分輸出的密鑰,計(jì)算和輸出輸入消息的消息認(rèn)證代碼;消息認(rèn)證代碼驗(yàn)證部分,用于將輸入的標(biāo)識(shí)符移交給所述第二密鑰獲取部分,使用從所述第二密鑰獲取部分輸出的密鑰來計(jì)算輸入消息的消息認(rèn)證代碼,將所獲得的消息認(rèn)證代碼與輸入的消息認(rèn)證代碼進(jìn)行比較,并且如果所述消息認(rèn)證代碼彼此一致,將指示所述驗(yàn)證已成功的信息返回給所述用戶;加密部分,用于將輸入的標(biāo)識(shí)符移交給所述第二密鑰獲取部分,使用從所述第二密鑰獲取部分輸出的密鑰來加密輸入的明文并將結(jié)果返回給用戶;以及解密部分,用于將輸入的標(biāo)識(shí)符移交給所述第一密鑰獲取部分并且,使用從所述第一密鑰獲取部分輸出的密鑰,解密和輸出輸入的加密文本。
2根據(jù)權(quán)利要求1的裝置,其中所述加密/認(rèn)證部分具有種子存儲(chǔ)部分,并且所述密鑰生成部分根據(jù)存儲(chǔ)在所述種子存儲(chǔ)部分中的種子和存儲(chǔ)在所述標(biāo)識(shí)符存儲(chǔ)部分中的標(biāo)識(shí)符來生成密鑰并輸出所述密鑰。
3.根據(jù)權(quán)利要求1的裝置,其中所述標(biāo)識(shí)符發(fā)行/登記部分在發(fā)行標(biāo)識(shí)符時(shí)將冗余信息包括在所述標(biāo)識(shí)符中。
4.根據(jù)權(quán)利要求1的裝置,其中所述加密/認(rèn)證部分還具有一次寫入存儲(chǔ)區(qū)域以便通過將標(biāo)識(shí)符寫入所述一次寫入存儲(chǔ)區(qū)域來實(shí)現(xiàn)所述標(biāo)識(shí)符的登記。
5.根據(jù)權(quán)利要求1的裝置,其中僅由密鑰生成機(jī)關(guān)來執(zhí)行所述標(biāo)識(shí)符的發(fā)行/登記。
6.一種用于使用包括防篡改硬件的裝置來執(zhí)行偽公鑰加密和數(shù)字簽名的方法,所述防篡改硬件包括加密/認(rèn)證部分,用于響應(yīng)于用戶的請(qǐng)求執(zhí)行標(biāo)識(shí)符的發(fā)行、加密和認(rèn)證;以及篡改檢測(cè)部分,用于檢測(cè)電壓變化或壓力變化以便電氣地破壞所述加密/認(rèn)證部分,所述裝置的所述加密/認(rèn)證部分包括標(biāo)識(shí)符發(fā)行/登記部分,用于發(fā)行標(biāo)識(shí)符以響應(yīng)用戶請(qǐng)求以及將所述標(biāo)識(shí)符存儲(chǔ)在存儲(chǔ)部分中;密鑰生成部分,用于使用一對(duì)一函數(shù)來生成與所述標(biāo)識(shí)符對(duì)應(yīng)的密鑰并輸出所述密鑰;第一密鑰獲取部分,用于響應(yīng)于用戶解密或生成消息認(rèn)證代碼的請(qǐng)求,將輸入的標(biāo)識(shí)符與存儲(chǔ)在所述標(biāo)識(shí)符存儲(chǔ)部分中的所述標(biāo)識(shí)符進(jìn)行比較并且,如果所述標(biāo)識(shí)符彼此一致,將所述標(biāo)識(shí)符移交給所述密鑰生成部分以便輸出由所述密鑰生成部分生成的密鑰;第二密鑰獲取部分,用于響應(yīng)于用戶加密或驗(yàn)證帶有附加到其的消息認(rèn)證代碼的消息的請(qǐng)求,將輸入的標(biāo)識(shí)符移交給所述密鑰生成部分以便輸出由所述密鑰生成部分生成的密鑰;消息認(rèn)證代碼生成部分,用于將輸入的標(biāo)識(shí)符移交給所述第一密鑰獲取部分并且,使用從所述第一密鑰獲取部分輸出的密鑰,計(jì)算和輸出輸入消息的消息認(rèn)證代碼;消息認(rèn)證代碼驗(yàn)證部分,用于將輸入的標(biāo)識(shí)符移交給所述第二密鑰獲取部分,使用從所述第二密鑰獲取部分輸出的密鑰來計(jì)算輸入消息的消息認(rèn)證代碼,將所獲得的消息認(rèn)證代碼與輸入的消息認(rèn)證代碼進(jìn)行比較,并且如果所述消息認(rèn)證代碼彼此一致,將指示所述驗(yàn)證已成功的信息返回給所述用戶;加密部分,用于將輸入的標(biāo)識(shí)符移交給所述第二密鑰獲取部分,使用從所述第二密鑰獲取部分輸出的密鑰來加密輸入的明文并將結(jié)果返回給用戶;以及解密部分,用于將輸入的標(biāo)識(shí)符移交給所述第一密鑰獲取部分并且,使用從所述第一密鑰獲取部分輸出的密鑰,解密和輸出輸入的加密文本;以及在分別具有所述裝置A和所述裝置B的發(fā)送用戶與接收用戶之間發(fā)送消息中,所述方法包括以下步驟所述裝置A選擇并存儲(chǔ)發(fā)送用戶標(biāo)識(shí)符,然后將所述發(fā)送用戶標(biāo)識(shí)符返回給所述發(fā)送用戶,以便公開所述發(fā)送用戶標(biāo)識(shí)符;所述裝置B選擇并存儲(chǔ)接收用戶標(biāo)識(shí)符,然后將所述接收用戶標(biāo)識(shí)符返回給所述接收用戶,以便公開所述接收用戶標(biāo)識(shí)符;所述裝置A獲取與所述發(fā)送用戶標(biāo)識(shí)符對(duì)應(yīng)的密鑰,生成消息認(rèn)證代碼并將所述消息認(rèn)證代碼返回給所述發(fā)送用戶;響應(yīng)于所述發(fā)送用戶的加密請(qǐng)求,所述裝置A獲取與所述接收用戶標(biāo)識(shí)符對(duì)應(yīng)的密鑰,加密所述消息和所述消息認(rèn)證代碼并將所述加密的消息和消息認(rèn)證代碼返回給所述發(fā)送用戶;響應(yīng)于所述接收用戶對(duì)所述加密進(jìn)行解密的請(qǐng)求,所述裝置B獲取與所述接收用戶標(biāo)識(shí)符對(duì)應(yīng)的密鑰,解密所述接收的消息并將所述解密的消息返回給所述接收用戶;以及響應(yīng)于所述接收用戶驗(yàn)證所述消息認(rèn)證代碼的請(qǐng)求,所述裝置B獲取與所述發(fā)送標(biāo)識(shí)符對(duì)應(yīng)的密鑰,驗(yàn)證所述消息認(rèn)證代碼并將結(jié)果返回給所述接收用戶。
7.根據(jù)權(quán)利要求6的方法,其中所述加密/認(rèn)證部分具有種子存儲(chǔ)部分,并且所述密鑰生成部分根據(jù)存儲(chǔ)在所述種子存儲(chǔ)部分中的種子和存儲(chǔ)在所述標(biāo)識(shí)符存儲(chǔ)部分中的標(biāo)識(shí)符來生成密鑰并輸出所述密鑰。
8.根據(jù)權(quán)利要求6的方法,其中所述標(biāo)識(shí)符發(fā)行/登記部分在發(fā)行標(biāo)識(shí)符時(shí)將冗余信息包括在所述標(biāo)識(shí)符中。
9.根據(jù)權(quán)利要求6的方法,其中所述加密/認(rèn)證部分還具有一次寫入存儲(chǔ)區(qū)域以便通過將標(biāo)識(shí)符寫入所述一次寫入存儲(chǔ)區(qū)域來實(shí)現(xiàn)所述標(biāo)識(shí)符的登記。
10.根據(jù)權(quán)利要求6的方法,其中僅由密鑰生成機(jī)關(guān)來執(zhí)行所述標(biāo)識(shí)符的發(fā)行/登記。
全文摘要
根據(jù)本發(fā)明,密鑰加密系統(tǒng)和防篡改硬件被用于以低成本來實(shí)現(xiàn)偽公鑰加密系統(tǒng)。每個(gè)用戶使用配備有硬件的設(shè)備來執(zhí)行通信。此類硬件保持標(biāo)識(shí)符與密鑰之間的關(guān)聯(lián)。響應(yīng)于來自用戶的請(qǐng)求,所述硬件發(fā)行并存儲(chǔ)標(biāo)識(shí)符,并且其可以使用與所述標(biāo)識(shí)符關(guān)聯(lián)的密鑰來執(zhí)行消息認(rèn)證代碼的解密和生成。盡管此硬件可以使用任何給定的標(biāo)識(shí)符來執(zhí)行消息認(rèn)證代碼的加密和驗(yàn)證,但是其不能執(zhí)行消息認(rèn)證代碼的解密和生成。用戶公開其標(biāo)識(shí)符。當(dāng)執(zhí)行加密時(shí),消息發(fā)送者使用消息接收者的公開的標(biāo)識(shí)符并使用與接收者的硬件具有相同功能的硬件來加密消息。第三者只能通過分析所述硬件中的機(jī)制來使用所述標(biāo)識(shí)符執(zhí)行解密。但是,當(dāng)嘗試此類操作時(shí),所述硬件具有自破壞的能力。
文檔編號(hào)H04L9/08GK1794630SQ20051012431
公開日2006年6月28日 申請(qǐng)日期2005年11月28日 優(yōu)先權(quán)日2004年12月20日
發(fā)明者古關(guān)聰, 今村剛 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司