本發(fā)明涉及一種包括密鑰生成設(shè)備的公開密鑰加密系統(tǒng)。密鑰生成設(shè)備被配置為生成在公鑰加密設(shè)備中使用的公鑰和在私鑰解密設(shè)備中使用的對應(yīng)的私鑰。密鑰生成設(shè)備被配置為以電子形式獲得私有隨機(jī)值。
背景技術(shù):
公鑰加密是使用兩個單獨密鑰的密碼術(shù)的領(lǐng)域,這兩個密鑰之一是秘密(私有的),這兩個密鑰之一被稱為公共的。雖然不同,但是該密鑰對的兩個部分在數(shù)學(xué)上是鏈接的。一個密鑰鎖定或加密明文以獲得密文,另一個密鑰解鎖或解密該密文以再次獲得該明文。在沒有私鑰的情況下,公鑰不能執(zhí)行解密功能。公鑰甚至可以被公布,然而在解密密文上,攻擊者并沒有得到幫助。公鑰加密也稱為非對稱加密。
用于公鑰密碼術(shù)的已知算法基于數(shù)學(xué)關(guān)系,諸如整數(shù)因子??分解和離散對數(shù)問題。盡管在計算上容易地使預(yù)期的接受者生成公鑰和私鑰,使用私鑰解密消息,并且使發(fā)送者容易使用公鑰來加密消息,但是任何人難以僅基于他們對公鑰的了解而導(dǎo)出私鑰。后者不同于對稱加密,其中解密密鑰要么等于它們對應(yīng)的加密密鑰,要么容易從其中導(dǎo)出。
公鑰密碼術(shù)被廣泛使用。它是一種被許多密碼性算法和密碼性系統(tǒng)使用的方法。
已知的公鑰加密系統(tǒng)所基于的問題是資源密集型的。例如,作為已知的公鑰加密系統(tǒng)的rsa加密對于密鑰生成要求,生成兩個大素數(shù)p和q。解密要求在類似大小的數(shù)上求冪。
參考了delphineboucher等人的文章“keyexchangeandencryptionschemesbasedonnon-commutativeskewpolynomials”。該文章涉及基于所謂的非交換斜多項式(non-commutativeskewpolynomial)的密鑰交換算法。
還參考了由yagisawamasahiro的文章“keyagreementprotocolsbasedonmultivariatepolynomialsoverfq”。該文章涉及基于未評估的多元多項式的密鑰協(xié)商協(xié)議。
技術(shù)實現(xiàn)要素:
當(dāng)前的公鑰加密(pke)方法要求大量的數(shù)學(xué)運算,因此它們不太適合于在計算上受約束的嵌入式系統(tǒng),諸如傳感器。具有用于消息的公鑰加密的改進(jìn)的系統(tǒng)將是有利的。
本發(fā)明的一個方面涉及一種用于加密消息的系統(tǒng)。該系統(tǒng)包括密鑰生成設(shè)備、公鑰加密設(shè)備和優(yōu)選地私鑰解密設(shè)備。密鑰生成設(shè)備被配置為生成在公鑰加密設(shè)備中使用的公鑰和在私鑰解密設(shè)備中使用的對應(yīng)的私鑰。公鑰加密設(shè)備被配置為使用公鑰對電子消息進(jìn)行加密。私鑰解密設(shè)備被配置為使用解密信息和私鑰來解密加密的消息。
在pke中,每一方維護(hù)兩個密鑰:公鑰和私鑰。公鑰可以例如由中央機(jī)構(gòu)公布。但是,每一方保持其私鑰對于不被信任來讀取針對該特定方的通信的任何其他方是秘密的。
由系統(tǒng)中的設(shè)備提供的公鑰加密允許有效操作并且適合于資源受約束的設(shè)備。下面進(jìn)一步解釋系統(tǒng)的設(shè)備。
公鑰加密可以用在例如要求安全通信的照明網(wǎng)絡(luò)中。一般地,本發(fā)明可以應(yīng)用于要求設(shè)備對之間的安全通信的任何類型的通信網(wǎng)絡(luò)。
密鑰生成設(shè)備、公鑰加密設(shè)備和私鑰解密設(shè)備是電子設(shè)備;它們可以是諸如移動電話之類的移動電子設(shè)備、機(jī)頂盒、計算機(jī)等。密鑰生成設(shè)備、公鑰加密設(shè)備和私鑰解密設(shè)備可以是資源受約束的,諸如傳感器、照明設(shè)備、led燈、智能卡,rfid標(biāo)簽等。
本發(fā)明的一方面涉及一種密鑰生成設(shè)備,其被配置為生成在公鑰加密設(shè)備中使用的公鑰和在私鑰解密設(shè)備中使用的對應(yīng)的私鑰。密鑰生成設(shè)備包括私鑰生成器和公鑰生成器。私鑰生成器被配置為以電子形式獲得私有隨機(jī)值,并且生成私鑰,私鑰包括私有隨機(jī)值。公鑰生成器被配置為以電子形式獲得二元多項式的公共集合,通過對通過將私有隨機(jī)值代入公共集合的多項式而獲得的一元多項式求和來計算公共一元多項式,并且生成公鑰,公鑰包括公共一元多項式和公共集合。
在密鑰生成設(shè)備的實施例中,二元多項式的公共集合僅包括對稱二元多項式。
在密鑰生成設(shè)備的實施例中,二元多項式的公共集合包括至少兩個不同的二元多項式。
當(dāng)兩個二元多項式在它們的底層環(huán)的條件下相同(例如局部歸約整數(shù)不同)時,也可以使用該系統(tǒng)。
在密鑰生成設(shè)備的實施例中,公共集合的至少一個多項式在所述至少一個多項式的兩個變量之一中具有至少為2的次數(shù)。
在密鑰生成設(shè)備的實施例中,公共一元多項式被表示為規(guī)范形式的公共一元多項式的系數(shù)的列表。
在密鑰生成設(shè)備的實施例中,不同的交換環(huán)與二元多項式的公共集合中的每個多項式相關(guān)聯(lián),并且其中通過將私有隨機(jī)值代入公共集合的特定多項式中而獲得的一元多項式在與特定一元多項式相關(guān)聯(lián)的交換環(huán)中被歸約為規(guī)范形式。
在密鑰生成設(shè)備的實施例中,公共全局歸約整數(shù)與公共集合相關(guān)聯(lián),并且公共個體歸約整數(shù)與公共集合的每個多項式相關(guān)聯(lián),私有隨機(jī)值是整數(shù),公共集合中的每個多項式是具有整數(shù)系數(shù)的二元多項式,公共一元多項式是具有整數(shù)系數(shù)的一元多項式。公共個體歸約整數(shù)也稱為局部歸約整數(shù)。
有用的是,公共個體歸約整數(shù)都是不同的,因為如果它們中的兩個是相等的,則公共集合可以被簡化為具有更少的多項式。然而,如果一些或所有公共個體歸約整數(shù)相等,則系統(tǒng)將正確地工作,但是具有可以從具有更少多項式的較小系統(tǒng)預(yù)期的安全性。
計算公共一元多項式包括:通過對于公共集合的每個多項式將私有隨機(jī)值代入所述多項式并且以與所述多項式相關(guān)聯(lián)的公共個體歸約整數(shù)為模進(jìn)行歸約而獲得一元多項式集合,以及對一元多項式集合求和并且以全局歸約整數(shù)為模進(jìn)行歸約。
在密鑰生成設(shè)備的實施例中,公共全局歸約整數(shù)是大于
作為本發(fā)明的一方面涉及一種用于使用公鑰對電子消息進(jìn)行加密的公鑰加密設(shè)備,所述公鑰包括公共一元多項式和二元多項式的公共集合。該公鑰加密設(shè)備包括對稱密鑰獲得器,解密信息生成器和加密單元。
對稱密鑰獲得器被配置為以電子形式獲得加密隨機(jī)值,并且通過將加密隨機(jī)值代入公共一元多項式中來計算對稱密鑰。對稱密鑰獲得器可以被配置為不僅求多項式的值,而且還采取
解密信息生成器被配置為通過對通過將加密隨機(jī)值代入公共集合的多項式而獲得的一元多項式求和來計算解密一元多項式,并且生成解密信息,解密信息包括解密一元多項式。
加密單元被配置為利用對稱密鑰加密消息并將所述加密的消息與解密信息相關(guān)聯(lián)。
在公鑰加密設(shè)備的實施例中,二元多項式的公共集合僅包括對稱二元多項式。
在公鑰加密設(shè)備的實施例中,二元多項式的公共集合包括至少兩個不同的二元多項式。
在公鑰加密設(shè)備的實施例中,公共集合的至少一個多項式在所述至少一個多項式的兩個變量之一中具有至少為2的次數(shù)。
在公鑰加密設(shè)備的實施例中,公共一元多項式被表示為規(guī)范形式的公共一元多項式的系數(shù)的列表,和/或解密一元多項式被表示為規(guī)范形式的解密一元多項式的系數(shù)的列表。
在公鑰加密設(shè)備的實施例中,不同的交換環(huán)與二元多項式的公共集合中的每個多項式相關(guān)聯(lián),并且其中通過將私有隨機(jī)值代入公共集合的特定多項式中而獲得的一元多項式在與特定一元多項式相關(guān)聯(lián)的交換環(huán)中被歸約為規(guī)范形式,并且通過將加密隨機(jī)值代入公共集合的特定多項式中而獲得的一元多項式在與特定一元多項式相關(guān)聯(lián)的交換環(huán)中被歸約為規(guī)范形式。
在公鑰加密設(shè)備的實施例中,公共全局歸約整數(shù)與公共集合相關(guān)聯(lián)并且公共個體歸約整數(shù)與公共集合的每個多項式相關(guān)聯(lián),加密隨機(jī)值是整數(shù),公共集合中的每個多項式是具有整數(shù)系數(shù)的二元多項式,所述公共一元多項式和解密一元多項式是具有整數(shù)系數(shù)的一元多項式。
計算對稱密鑰包括:在公共一元多項式中代入加密隨機(jī)值,并且以全局歸約整數(shù)為模進(jìn)行歸約。計算對稱密鑰還可以包括采取結(jié)果的
計算解密一元多項式包括通過對于公共集合的每個多項式將私有加密值代入多項式并且以與所述多項式相關(guān)聯(lián)的公共個體歸約整數(shù)為模進(jìn)行歸約而獲得一元多項式集合,以及將一元多項式集合求和并且以全局歸約整數(shù)為模進(jìn)行歸約。
在公鑰加密設(shè)備的實施例中,公共全局歸約整數(shù)是大于
在公鑰加密設(shè)備的實施例中,生成解密信息包括:從對稱密鑰計算密鑰確認(rèn)數(shù)據(jù),以用于驗證重構(gòu)密鑰是否等于所述對稱密鑰,解密信息包括密鑰確認(rèn)數(shù)據(jù)。
作為本發(fā)明的一方面涉及一種用于使用解密信息和私鑰來解密加密的消息的私鑰解密設(shè)備,所述解密信息包括解密一元多項式,所述私鑰包括私有隨機(jī)值。私鑰解密設(shè)備包括對稱密鑰獲得器和解密單元。
對稱密鑰獲得器被配置為通過在解密一元多項式中代入私有隨機(jī)值來重構(gòu)對稱密鑰。重構(gòu)對稱密鑰還可以包括采取輸出的b個比特作為密鑰k,例如最低有效b比特。
解密單元被配置為利用所述重構(gòu)的對稱密鑰來解密加密的消息。對稱密鑰也稱為“k”。
在私鑰解密設(shè)備的實施例中,解密信息是由公鑰加密設(shè)備使用由密鑰生成設(shè)備生成的公鑰獲得的。
在私鑰解密設(shè)備的實施例中,解密一元多項式被表示為規(guī)范形式的解密一元多項式的系數(shù)的列表。
在私鑰解密設(shè)備的實施例中,私有隨機(jī)值是整數(shù)。解密一元多項式是具有以公共全局歸約整數(shù)為模進(jìn)行歸約的整數(shù)系數(shù)的一元多項式。重構(gòu)對稱密鑰包括:在解密一元多項式中代入私有隨機(jī)值,并且以公共全局歸約整數(shù)為模進(jìn)行歸約。
在私鑰解密設(shè)備的實施例中,公共全局歸約整數(shù)是大于
計算對稱密鑰還包括以2的密鑰長度次冪為模進(jìn)行歸約。
在私鑰解密設(shè)備的實施例中,重構(gòu)對稱密鑰包括從在解密一元多項式中代入私有隨機(jī)值并且以公共全局歸約整數(shù)為模進(jìn)行歸約的結(jié)果導(dǎo)出第一重構(gòu)密鑰,以及從密鑰確認(rèn)數(shù)據(jù)確定所述第一重構(gòu)密鑰是否等于所述對稱密鑰,并且如果不等于,則從所述第一重構(gòu)密鑰導(dǎo)出另一個重構(gòu)密鑰。
在私鑰解密設(shè)備的實施例中,導(dǎo)出另一個重構(gòu)密鑰包括,將公共全局歸約整數(shù)或公共全局歸約整數(shù)的倍數(shù)加到第一重構(gòu)密鑰,并且以2的密鑰長度次冪為模進(jìn)行歸約。
加密系統(tǒng)的實施例使用多項式環(huán)。特別是:
在密鑰生成設(shè)備的實施例中,公共全局歸約多項式與公共集合相關(guān)聯(lián)并且公共個體歸約多項式與公共集合的每個多項式相關(guān)聯(lián),私有隨機(jī)值是多項式,公共集合中的每個特定多項式是具有從多項式環(huán)模與所述特定多項式相關(guān)聯(lián)的公共個體歸約多項式取得的系數(shù)的二元多項式,以及所述公共一元多項式和解密一元多項式具有多項式系數(shù)。
在公鑰加密設(shè)備的實施例中,公共全局歸約多項式與公共集合相關(guān)聯(lián)并且公共個體歸約多項式與公共集合的每個多項式相關(guān)聯(lián),加密隨機(jī)值是多項式,公共集合中的每個特定多項式是具有從多項式環(huán)模與所述特定多項式相關(guān)聯(lián)的公共個體歸約多項式取得的系數(shù)的二元多項式,以及所述公共一元多項式和解密一元多項式具有多項式系數(shù)。
在私鑰解密設(shè)備的實施例中,私有隨機(jī)值是多項式,解密一元多項式具有多項式系數(shù)。
本發(fā)明的一個方面涉及一種密鑰生成方法,其被配置為生成在公鑰加密方法中使用的公鑰和在私鑰解密方法中使用的對應(yīng)的私鑰。
本發(fā)明的一個方面涉及一種用于使用公鑰來加密電子消息的公鑰加密方法。
本發(fā)明的一個方面涉及一種用于使用解密信息和私鑰來解密加密的消息的私鑰解密方法。
根據(jù)本發(fā)明的方法可以作為計算機(jī)實現(xiàn)的方法在計算機(jī)上實現(xiàn),或者在專用硬件中實現(xiàn),或者在兩者的組合中實現(xiàn)。用于根據(jù)本發(fā)明的方法的可執(zhí)行代碼可以存儲在計算機(jī)程序產(chǎn)品上。計算機(jī)程序產(chǎn)品的示例包括存儲器設(shè)備、光學(xué)存儲設(shè)備、集成電路,服務(wù)器,在線軟件等。優(yōu)選地,計算機(jī)程序產(chǎn)品包括存儲在計算機(jī)可讀介質(zhì)上的非暫時性程序代碼構(gòu)件,用于當(dāng)所述程序產(chǎn)品在計算機(jī)上執(zhí)行時執(zhí)行根據(jù)本發(fā)明的方法。
在優(yōu)選實施例中,計算機(jī)程序包括適于在計算機(jī)程序在計算機(jī)上運行時執(zhí)行根據(jù)本發(fā)明的方法的所有步驟的計算機(jī)程序代碼構(gòu)件。優(yōu)選地,計算機(jī)程序被體現(xiàn)在計算機(jī)可讀介質(zhì)上。
附圖說明
本發(fā)明的這些和其他方面將由于下文描述的實施例而是顯而易見的,并且將通過參照下文描述的實施例而被闡明。在圖中,
圖1是加密系統(tǒng)400的示意性框圖,
圖2是加密系統(tǒng)430的示意性框圖,
圖3是集成電路500的示意性框圖,
圖4是存儲器布局的示意性框圖,
圖5是加密系統(tǒng)600的示意性框圖,
圖6a是密鑰生成方法700的示意性流程圖,
圖6b是加密方法710的示意性流程圖,
圖6c是解密方法730的流程圖。
應(yīng)當(dāng)注意,在不同圖中具有相同附圖標(biāo)記的項目具有相同的結(jié)構(gòu)特征和相同的功能,或者是相同的信號。在已經(jīng)解釋了這種項目的功能和/或結(jié)構(gòu)的情況下,在詳細(xì)描述中不必對其重復(fù)解釋。
具體實施方式
盡管本發(fā)明容許以許多不同形式的實施例,但是在圖中示出并且將在本文中詳細(xì)描述一個或多個特定實施例,應(yīng)當(dāng)理解,本公開被認(rèn)為是本發(fā)明原理的示例并且不旨在將本發(fā)明限制于所示出和描述的特定實施例。
圖1是加密系統(tǒng)400的示意性框圖。加密系統(tǒng)400包括密鑰生成設(shè)備100、公鑰加密設(shè)備200和私鑰解密設(shè)備300。公鑰加密設(shè)備200還將被稱為加密設(shè)備200。私鑰解密設(shè)備300還將被稱為解密設(shè)備300。
密鑰生成設(shè)備100被配置為生成用于在加密設(shè)備200中使用的公鑰126和用于在解密設(shè)備300中使用的對應(yīng)的私鑰114。通過使用公鑰126,加密設(shè)備200可以加密消息410,即用于解密設(shè)備300的數(shù)據(jù),以獲得加密的消息422。除了加密的消息422之外,加密設(shè)備200還生成解密信息424。通過使用私鑰114、加密的消息422和公共一元多項式124,解密設(shè)備300可以對解密信息424解密以再次獲得消息410。該加密和解密系統(tǒng)是所謂的非對稱加密,也稱為公-私鑰加密。與對稱加密相反,對公鑰的了解不暗示對私鑰的了解。這意味著,有權(quán)訪問公鑰的任何設(shè)備都可以對消息進(jìn)行加密,但是只有有權(quán)訪問私鑰的設(shè)備才能對消息進(jìn)行解密。這又暗示著,可以對公共和私有數(shù)據(jù)應(yīng)用不同的安全性策略。例如,在一些應(yīng)用中,公鑰被公布,使得其不是秘密的,而私鑰被保密。例如,私鑰可以僅被解密設(shè)備300和密鑰生成設(shè)備100或者一個或多個可信方知道。
使用形容詞公共和私有的目的在于有助于理解:即使有權(quán)訪問所有公共數(shù)據(jù),也不能計算私有數(shù)據(jù),至少不在給定應(yīng)用的安全性或與密鑰生成、加密和解密所需的資源相比而沒有過度高的資源的情況下。然而,“公共”并不意味著對應(yīng)的數(shù)據(jù)必然對密鑰生成設(shè)備100和加密設(shè)備200以外的任何人可用。特別地,保持公鑰和其他公共數(shù)據(jù)對不可信方保密增加了安全性。
密鑰生成設(shè)備100、加密設(shè)備200和解密設(shè)備300可以是加密系統(tǒng)400中僅有的三個實體。在圖2中,示出了加密系統(tǒng)400的配置,其中存在多個私鑰解密設(shè)備。圖2示出了私鑰解密設(shè)備300和301,可以有更多。在圖2中,加密設(shè)備200從密鑰生成設(shè)備100接收公鑰126;并且解密設(shè)備300接收私鑰114,以及可能的其他公共數(shù)據(jù),諸如公共一元多項式124和諸如模數(shù)之類的參數(shù)。然而,這僅是說明性示例,因為存在還如本文所示的在加密系統(tǒng)中分發(fā)密鑰的其他方式。
繼續(xù)圖1;密鑰生成設(shè)備100包括私鑰生成器110和公鑰生成器120。
私鑰生成器110被配置為以電子形式獲得也被稱為s的私有隨機(jī)值112。私有隨機(jī)值112在其對攻擊者的可預(yù)測性小于預(yù)定安全性界限的意義上是隨機(jī)的。例如,私有隨機(jī)值112可以由密鑰生成設(shè)備100使用密鑰生成設(shè)備100中包括的隨機(jī)數(shù)生成器(未單獨示出)來選擇。隨機(jī)數(shù)生成器可以是真隨機(jī)數(shù)生成器或偽隨機(jī)數(shù)生成器。私鑰生成器110使用私有隨機(jī)值112來生成私鑰114。私鑰114是包括私有隨機(jī)值112的電子數(shù)據(jù)。例如,私鑰114可以是包括私有隨機(jī)值112的數(shù)據(jù)結(jié)構(gòu)。私鑰114可以包含其他數(shù)據(jù),諸如私鑰114的有效日期范圍、私鑰114的允許使用等。
與一些其他非對稱密碼術(shù)相比,密鑰生成設(shè)備100所使用的非對稱加密方案對私有隨機(jī)值112施加的要求非常小。例如,rsa密鑰生成要求其私鑰包括兩個素數(shù),這對于計算是資源密集型的。
私有隨機(jī)值112可以是基于身份的。例如,密鑰生成設(shè)備100可以包括存儲秘密密鑰的秘密密鑰存儲器(圖1中未示出)。秘密密鑰可以是某種非對稱加密方案的公鑰或?qū)ΨQ密鑰。私鑰生成器110可以被配置為通過獲得(例如接收或生成)解密設(shè)備300的身份(例如身份號碼)并加密身份來獲得私有隨機(jī)值112。給定身份號碼,密鑰生成設(shè)備100可以通過再次加密身份來再生解密設(shè)備300的私鑰。這個系統(tǒng)例如適合于這樣的情形,其中,可能稍后需要訪問設(shè)備300上的數(shù)據(jù),例如用于產(chǎn)品召回(productrecall)、取證(forensic)等,即使私鑰丟失或者在解密設(shè)備300處不可訪問,也是如此。如果例如像圖2中一樣存在多個私鑰解密設(shè)備,則密鑰生成設(shè)備100可以重構(gòu)所述多個解密設(shè)備的私鑰而不必存儲密鑰數(shù)據(jù)庫。設(shè)備300的身份可以被包括在公鑰126和/或私鑰114中。
公鑰生成器120被配置為以電子形式獲得公共的二元多項式集合122,其在公式上也被稱為
對稱二元多項式也可以表示為將兩個形式變量作為??占位符的
公共集合122可以以多種方式獲得。例如,公共集合122可以是規(guī)定的,例如,通過一個標(biāo)準(zhǔn)確定要在密鑰生成設(shè)備100中使用加密。在這種情況下,只有不同設(shè)備的公鑰不同,因為它們是使用不同的私有隨機(jī)值112產(chǎn)生的。使用固定的公共集合122減少了解密設(shè)備300處的通信和/或存儲開銷。
對不同的解密設(shè)備300使用不同的公共集合122增加了安全性。例如,可以通過計算對于公共集合122中的多項式的系數(shù)的隨機(jī)值來隨機(jī)生成公共集合122。方便的是規(guī)定公共集合122的一些方面,諸如公共集合122中的多項式的數(shù)量和多項式的次數(shù)(degree),或最大次數(shù)。還可規(guī)定多項式中的系數(shù)中的一些系數(shù)為零,以例如用于減少存儲要求。
可以根據(jù)應(yīng)用不同地選擇公共集合122中的多項式的數(shù)量。公共集合122包括至少一個對稱二元多項式。在密鑰生成設(shè)備100的一個實施例中,該集合包括一個多項式。在公共集合122中具有僅僅一個多項式降低了復(fù)雜性、存儲要求并且增加了速度。然而,在公共集合122中具有僅僅一個多項式被認(rèn)為不如在公共集合122中具有兩個或更多個多項式安全,因為這樣的一個多項式系統(tǒng)不會從下面描述的求和中的附加混合(additionalmixing)中獲益。然而,密鑰生成、加密和解密將正確地工作,并且被認(rèn)為對于低價值和/或低安全性應(yīng)用是足夠安全的。
在其余部分中,我們將假定公共集合122包括至少兩個對稱二元多項式。在一個實施例中,至少兩個或甚至所有的多項式是不同的;這大大地復(fù)雜化了系統(tǒng)的分析。但是這不是必需的,公共集合122可以包括兩個相等的多項式,并且如果在不同的環(huán)上評估這兩個多項式,其仍然可以從求和步驟中的混合中受益;這一點將在下面進(jìn)一步討論。在一個實施例中,公共集合122包括與不同環(huán)相關(guān)聯(lián)的至少兩個相等多項式。具有兩個或更多個相等的多項式降低了存儲要求。
公共集合122中的多項式可以具有不同的次數(shù)。對于對稱二元多項式的次數(shù),我們將意為,多項式在兩個變量之一中的次數(shù)。例如,
可以根據(jù)應(yīng)用不同地選擇公共集合122中的多項式的次數(shù)。公共集合122包括次數(shù)為1或更高的至少一個對稱二元多項式。在一個實施例中,公共集合122僅包括次數(shù)為1的多項式。在公共集合122中僅具有線性多項式降低了復(fù)雜性、存儲要求并且增加了速度。然而,在公共集合122中僅具有一次多項式被認(rèn)為不如在公共集合122中具有相同數(shù)目的其中至少一個多項式是至少兩次的多項式安全,因為這樣的系統(tǒng)是非常不線性的。在一個實施例中,公共集合122包括至少一個,優(yōu)選地兩個,次數(shù)為2或更高的多項式。然而,如果僅使用一元多項式并且使用少量的二元多項式,它們被認(rèn)為對于低價值和/或低安全性應(yīng)用是足夠安全的,則密鑰生成、加密和解密將正確地工作。然而,應(yīng)注意,如果在不同的環(huán)上對公共集合122中的多個多項式進(jìn)行估值,則即使公共集合122中的所有多項式都是線性的,所得到的加密也不是線性的。因為線性多項式被有效地估值,所以在一個實施例中,公共集合122包括大量的線性多項式。實現(xiàn)了仍然被認(rèn)為對于高價值安全性應(yīng)用足夠安全的有效解決方案。
在可以與線性和非線性多項式一起使用的另一個實施例中,公共集合122包括大量二元多項式,其包括在不同環(huán)中評估的單個單項式。這有利地具有小的公鑰大小,并且被有效地評估,同時提供與多項式的數(shù)量成比例的足夠的安全性。
在公共集合122中具有次數(shù)為0的一個或多個多項式將不影響系統(tǒng),只要次數(shù)更高的(多個)多項式提供足夠的安全性。
對于中等安全性的應(yīng)用,公共集合122可以包括或者甚至包含次數(shù)為2的兩個對稱二元多項式。對于更高安全性的應(yīng)用,公共集合122可以包括或者甚至包含兩個對稱二元多項式,其中一個的次數(shù)為2,其中一個的次數(shù)高于2,例如3。增加多項式的數(shù)量和/或它們的次數(shù)將以增加資源消耗為代價進(jìn)一步增加安全性。
公鑰生成器120被配置為通過以下方式來計算公共一元多項式124:對通過將私有隨機(jī)值112代入公共集合122的多項式而獲得的一元多項式求和。例如,公鑰生成器120可以將私有隨機(jī)值112代入公共集合122中的每一個對稱多項式并歸約結(jié)果。通過將特定值(諸如私有值112)代入對稱二元多項式的兩個變量中的一個變量,而沒有針對另一個變量代入特定值,來移除變量之一并獲得一元多項式。
在公共集合122中的代入之后,使結(jié)果成為規(guī)范形式是可取的。例如,在密鑰生成設(shè)備100和加密系統(tǒng)400內(nèi),一般而言,可以使用一元多項式的規(guī)范形式。一個好的選擇是將代入的結(jié)果寫為按照單項式次數(shù)排序的系數(shù)列表,例如作為數(shù)組。如果值具有多個表示,則也對系數(shù)進(jìn)行規(guī)范選擇。
一種用于獲得公共一元多項式124的方法如下。
1.對于公共集合122中的每個多項式:
a.將私有隨機(jī)值112代入多項式以用于兩個變量中的一個,
b.使結(jié)果成為規(guī)范形式并在與多項式相關(guān)聯(lián)的環(huán)中歸約,從而獲得一元多項式,
2.在另一個環(huán)中對在1b中獲得的所有一元多項式求和以獲得公共一元多項式124,
這些步驟可以在很大程度上組合。
此外,公共一元多項式124可以表示為根據(jù)規(guī)范形式的系數(shù)列表。用于許多應(yīng)用的合適形式是,在通過與系數(shù)相關(guān)聯(lián)的單項式的次數(shù)來排序的數(shù)組中列出系數(shù)。也就是說,一元多項式可以被認(rèn)為是具有與單項式相關(guān)聯(lián)的系數(shù)的單項式之和。此外下面提供了包括可能的公式的實施例。
公共密鑰生成器120還被配置為生成公鑰126。公鑰126包括公共集合122和公共一元多項式124的表示。例如,公鑰126可以是包括公鑰124和公共集合122的數(shù)字表示的電子數(shù)據(jù)結(jié)構(gòu)。此外,公鑰126可以包括與上述私鑰類似的附加信息,例如,有權(quán)訪問對應(yīng)私鑰的設(shè)備的身份。
在密鑰生成設(shè)備100已經(jīng)生成了私鑰114和公鑰126之后,密鑰生成設(shè)備100可以將私鑰114分發(fā)給解密設(shè)備300,并且將公鑰126分發(fā)給被配置為對用于解密設(shè)備300的消息進(jìn)行加密的設(shè)備200。該分發(fā)可以以各種方式進(jìn)行,其中一些將在下面進(jìn)一步討論,或如圖2所示。
作為示例,可以在用于制造某種電子單元(例如照明單元)的制造工廠中采用密鑰生成設(shè)備100,密鑰生成設(shè)備100可以被配置為利用(可選的)不同標(biāo)識符和不同的私鑰來配置每個所制造的單元,例如照明單元。電子單元被布置有解密設(shè)備300。
例如,密鑰生成設(shè)備100可以將與電子單元的私鑰對應(yīng)的公鑰存儲在包括加密設(shè)備200的管理設(shè)備中。管理設(shè)備被配置為發(fā)送利用適當(dāng)?shù)墓€加密的技術(shù)數(shù)據(jù),例如命令。例如,管理設(shè)備可以對于一個單元的命令(例如“開啟”命令)利用與存儲在該單元處的私鑰對應(yīng)的公鑰進(jìn)行加密。所得到的加密消息,例如加密的命令,可以例如利用所述標(biāo)識符來尋址。即使管理設(shè)備被破壞并且攻擊者獲得對存儲在其中的所有公鑰的訪問權(quán),但是他也不會獲得對應(yīng)的私鑰。
用于密鑰生成設(shè)備100的另一應(yīng)用(其可以或可以不與前述示例組合)是生成公鑰??-私鑰對并且利用公鑰配置每個所制造的單元(例如照明單元)并利用私用配置管理設(shè)備。電子單元被布置有加密設(shè)備200。通過使用它們的設(shè)備200,諸如照明單元之類的電子單元可以以加密形式向管理設(shè)備發(fā)送消息,例如狀態(tài)消息。許多電子設(shè)備可以有權(quán)訪問公鑰,因此這個密鑰可能泄漏,并且以某種方式變得可被攻擊者訪問。但是,因為數(shù)據(jù)是公共的,所以其不能使某人獲得私鑰。管理設(shè)備被配置有解密設(shè)備200。
圖1的頂部在框100、200和300的頂部示意性地圖示出了公鑰126到加密設(shè)備200的分發(fā),以及公鑰126和私鑰114到解密設(shè)備300的分發(fā)。
加密設(shè)備200被配置為使用包括公共一元多項式和公共對稱二元多項式集合的公鑰126來加密電子消息410。特別地,加密設(shè)備200被配置為使用由密鑰生成設(shè)備100生成的公鑰126。
加密設(shè)備200包括對稱密鑰獲得器210、加密單元230和解密信息生成器220。
對稱密鑰獲得器210被配置為以電子形式獲得加密隨機(jī)值212。加密隨機(jī)值212也稱為r。加密隨機(jī)值212在其對加密消息的攻擊者的可預(yù)測性小于安全性界限的意義上是隨機(jī)的。不同的加密隨機(jī)值212可以用于每個消息,但這不是必需的??梢允褂孟嗤募用茈S機(jī)值212加密多個消息。對稱密鑰獲得器210被配置為通過將加密隨機(jī)值212代入從公鑰126獲得的公共一元多項式124中來獲得對稱密鑰214。對稱密鑰214也被稱為k。可以在環(huán)中評估代入。
加密隨機(jī)值212是秘密的,即至少對于就消息410的內(nèi)容而言不受信任的各方是秘密的。解密設(shè)備300不需要加密隨機(jī)值212。在加密設(shè)備200的實施例中,在生成加密消息422和解密信息424之后,例如緊接其后,刪除加密隨機(jī)值212。
可以通過在消息塊420中組合加密消息422和解密信息424來使它們相關(guān)聯(lián)。它們也可以被單獨發(fā)送。
即使可以為每個消息選擇新的加密隨機(jī)值212,私鑰114和公鑰126也可能在多個消息上是相同的。取決于安全性要求,在某點處,例如在多于預(yù)定數(shù)量的消息已經(jīng)利用私鑰114解密之后,可以分發(fā)新的密鑰。如果所述預(yù)定數(shù)量的解密已經(jīng)用完,則解密設(shè)備300可以拒絕利用相同私鑰114進(jìn)行附加的解密。該措施保護(hù)免受仍然未知的這樣的攻擊,其嘗試通過使解密設(shè)備300解密特別構(gòu)造的消息塊420來吸取在私有隨機(jī)值112上的信息。為此目的,解密設(shè)備300可以包括用于對利用私鑰114進(jìn)行解密的消息的數(shù)目進(jìn)行計數(shù)的計數(shù)器以及用于在計數(shù)器超過所述預(yù)定數(shù)量的情況下阻止使用私鑰114解密的阻止單元;例如,阻止單元可以被配置為從解密設(shè)備300中刪除私鑰114。
獲得對稱密鑰214還可以涉及其他步驟。例如,散列函數(shù)可以應(yīng)用于對稱密鑰214。這平滑了對稱密鑰214中的熵,并且可以提高安全性,例如,如果加密隨機(jī)值212的分發(fā)不統(tǒng)一或者已知是統(tǒng)一的。此外,對稱密鑰214可以被截短為密鑰長度。例如,可以取得代入結(jié)果的b個最低有效位并截短。
加密單元230被配置為利用對稱密鑰214加密消息410以獲得加密消息422。加密單元230可以配置有任何對稱加密算法。例如,加密單元230可以使用諸如aes、cast等塊密碼(blockcipher),使用用于加密的合適的“操作模式”,諸如cbc或ctr。如果已知消息410的比特大小小于或等于對稱密鑰214的比特大小,則還可以將對稱密鑰214與消息410相加或xor。
解密信息生成器220被配置為通過以下操作來計算解密一元多項式222:對通過將加密隨機(jī)值212代入公共集合122的多項式中而獲得的一元多項式求和。除了使用加密隨機(jī)值212而不是私有隨機(jī)值112之外,該步驟可以使用與計算公共一元多項式124相同的實現(xiàn)。解密信息生成器220還被配置為生成解密信息424。解密信息包括解密一元多項式222。解密信息可以僅包括解密一元多項式222,但也可以包括附加信息,諸如發(fā)送者信息和/或電子簽名。
解密信息生成器220可以將解密一元多項式表示為規(guī)范形式的解密一元多項式的系數(shù)列表。用于公共一元多項式124的相同類型的規(guī)范形式可以用于解密一元多項式222。特別地,解密一元多項式222可以被表示為以多項式的次數(shù)排序的解密一元多項式222的單項式的系數(shù)的列表。解密一元多項式222或公共一元多項式124也可以被表示為對的列表,每對包括次數(shù)和單項式的系數(shù)。在該表示中,不需要表示具有零系數(shù)的單項式。后者的表示也適用于公共集合122中的稀疏多項式。
除了加密之外,加密單元230還被配置為將加密消息422與解密信息424相關(guān)聯(lián)。這可以以多種方式來進(jìn)行。例如,可以通過以下方式將加密消息422和解密信息424關(guān)聯(lián)在一起:通過將它們嵌入到同一單個消息中;例如通過利用解密信息424擴(kuò)展加密消息422。加密消息422和解密信息424不需要一定是相同消息的一部分。例如,加密消息422和解密信息424可以各自與包含相同標(biāo)識符的報頭組合;這兩個消息通過相同標(biāo)識符相關(guān)聯(lián)。加密設(shè)備200可以比解密信息424早地將加密消息422發(fā)送給解密設(shè)備300。以這種方式,加密設(shè)備200交付了消息410,但是還不允許解密設(shè)備300讀取消息410.在稍后的時間點,加密設(shè)備200可以向解密設(shè)備300發(fā)送解密信息424以揭示其內(nèi)容。交付消息但不揭示其內(nèi)容是基本的密碼術(shù)原語,使得系統(tǒng)可應(yīng)用于各種各樣的密碼術(shù)算法,諸如電子投票系統(tǒng)。有趣的是,本文描述的公鑰加密系統(tǒng)允許有權(quán)訪問加密設(shè)備200的一方交付一個值,稍后通過發(fā)送解密信息來揭示該值,但不揭示私鑰。
加密設(shè)備200可以接收消息410作為輸入,并且生成消息塊420作為輸出,如圖1的底部所示。這些元件也被示出在加密設(shè)備200和解密設(shè)備300內(nèi)部。通常,消息410將在加密設(shè)備200內(nèi)部生成,例如自動生成的消息,諸如狀態(tài)消息。
加密設(shè)備200,即對稱密鑰獲得器210,可以被配置為從對稱密鑰214(k)計算密鑰確認(rèn)數(shù)據(jù),以用于驗證由解密設(shè)備300重構(gòu)的的重構(gòu)對稱密鑰312(k')是否等于對稱密鑰214。密鑰確認(rèn)數(shù)據(jù)可以采取各種形式。例如,密鑰確認(rèn)數(shù)據(jù)可以是在對稱密鑰214上的密碼術(shù)散列(例如sha-256)。為了驗證重構(gòu)密鑰312是否等于對稱密鑰214,解密設(shè)備300可以計算在重構(gòu)對稱密鑰312上的散列,并且驗證散列是否是相同的。密鑰確認(rèn)數(shù)據(jù)還可以包括在輸入上的加密。為了驗證重構(gòu)對稱密鑰312是否等于對稱密鑰214,解密設(shè)備300可以利用重構(gòu)對稱密鑰312來加密輸入,并驗證加密是否相同,或者解密當(dāng)前輸入并驗證其是否等于輸入。輸入可以是密鑰確認(rèn)數(shù)據(jù)的一部分,例如輸入可以是隨機(jī)數(shù)(nonce)或者甚至是隨機(jī)的。輸入也可以是固定的,在后一種情況下,輸入不需要是密鑰確認(rèn)數(shù)據(jù)的一部分。密鑰確認(rèn)數(shù)據(jù)可以包括在解密信息424中。
解密設(shè)備300被配置為使用解密信息424和私鑰114對加密消息422進(jìn)行解密。解密設(shè)備300可能需要公共數(shù)據(jù)的一部分,例如全局模數(shù),以下提供關(guān)于此的更多信息。例如,解密設(shè)備300可以接收公鑰126,但是解密設(shè)備300不需要它的所有部分。特別地,解密設(shè)備300不需要訪問公共集合122來解密。
解密設(shè)備300使用的解密信息424和私鑰114可以分別由加密設(shè)備200或密鑰生成設(shè)備100生成。解密信息424包括解密一元多項式222,私鑰114包括私有隨機(jī)值112。
解密設(shè)備300包括對稱密鑰獲得器310和解密單元320。
對稱密鑰獲得器310被配置為獲得重構(gòu)的對稱密鑰312。重構(gòu)的對稱密鑰312是基于用于加密消息410的對稱密鑰214的解密信息424進(jìn)行重構(gòu)的。解密單元320被配置為利用重構(gòu)的對稱密鑰312對加密的消息進(jìn)行解密。解密單元320被配置為使用與用于加密消息410的加密算法相對應(yīng)的解密算法。例如,如果消息410使用aes加密,則解密單元320將使用aes解密。要使用的加密和解密算法可以是固定的。例如,加密設(shè)備200和解密設(shè)備300可以被配置為始終使用aes。但是要使用的加密/解密算法也可以是可配置的。例如,解密信息424可以包括指示用于加密消息410的加密算法的信息。解密設(shè)備300可以被配置為根據(jù)所述指示來選擇用于解密加密的消息422的解密算法。
對稱密鑰獲得器310被配置為通過在解密一元多項式222中代入私有隨機(jī)值114(s)來對重構(gòu)的對稱密鑰312進(jìn)行重構(gòu)。該步驟將可能生成加密密鑰。遺憾的是,不能保證從在解密一元多項式222中代入私鑰114直接獲得對稱密鑰214。這種可能性取決于公共集合122中的多項式的數(shù)量,它們的次數(shù)和底層的環(huán)。可以通過以下方式來計算該可能性:在表示公共集合122的通用公式中代入私鑰114,并計算將重構(gòu)的密鑰312和對稱密鑰214成為相同進(jìn)行扭曲的進(jìn)位(carry)的可能性。
根據(jù)所述可能性和應(yīng)用,密鑰確認(rèn)數(shù)據(jù)的重要性不同。一些應(yīng)用可能接受,偶然地由于解密設(shè)備300無法正確地重構(gòu)密鑰,所以解密設(shè)備300可能不能解密一些消息。如果需要,解密設(shè)備300可以請求加密設(shè)備200再次發(fā)送消息,但是利用不同的加密隨機(jī)值212重新加密。
然而,解密設(shè)備300還可能構(gòu)建多個密鑰,并且通過使用密鑰確認(rèn)數(shù)據(jù)驗證多個密鑰來從多個密鑰確定重構(gòu)的對稱密鑰312。可以使用密鑰確認(rèn)數(shù)據(jù)來正確地驗證來自多個密鑰中的至多一個密鑰。
所構(gòu)造的密鑰的數(shù)量和為系統(tǒng)做出的選擇,特別是對于公共集合122和底層環(huán)所做出的選擇,影響解密設(shè)備300不能構(gòu)造等于對稱密鑰214的密鑰的概率。我們將在下面示出,如果要求的話,該概率可以被減少到零。
生成多個構(gòu)造的密鑰優(yōu)選地迭代地完成。例如,對稱密鑰獲得器310可以被如下配置用于密鑰搜索:
1.從在解密一元多項式中代入私有隨機(jī)值(s)的結(jié)果中導(dǎo)出第一重構(gòu)密鑰(k'),
2.從密鑰確認(rèn)數(shù)據(jù)確定第一重構(gòu)密鑰(k')是否等于對稱密鑰214(k),
3.如果等于,則終止密鑰搜索,
4.利用第一重構(gòu)密鑰(k')生成另一重構(gòu)密鑰,
5.轉(zhuǎn)到步驟2。
可以使用各種編程手段(諸如for-next循環(huán),while循環(huán),do-until等)來進(jìn)行該密鑰搜索的實現(xiàn)。步驟3也可以在超時的情況下終止。
密鑰生成設(shè)備100和解密設(shè)備300可以組合在單個設(shè)備中,這避免了私有隨機(jī)值112總是離開解密設(shè)備300的限定范圍。加密設(shè)備200和解密設(shè)備300可以例如組合在加密的備份系統(tǒng)中。密鑰生成設(shè)備100、加密設(shè)備200和解密設(shè)備300可以是可能在地理上分布的不同設(shè)備。加密設(shè)備200和解密設(shè)備300可以通過通信網(wǎng)絡(luò)彼此通信。密鑰生成設(shè)備100可以使用通信網(wǎng)絡(luò)來分發(fā)密鑰信息,但是也可以使用超出界限的手段,例如在可信位置中的有線連接,使用諸如usb棒等便攜式存儲器設(shè)備的傳輸?shù)鹊取?/p>
有趣的是,可以以多種方式選擇引起私鑰114、公共一元多項式124、對稱密鑰214、解密一元多項式222和重構(gòu)的對稱密鑰312的計算的計算系統(tǒng)。例如,可以從所謂的交換環(huán)中選擇包括私有隨機(jī)值112和加密隨機(jī)值212的值以及二元多項式和一元多項式的系數(shù)。交換環(huán)是數(shù)學(xué)概念,其中利用加法和乘法組合一組值。
在公共集合122包括多個多項式的情況下,本發(fā)明人的見解是,通過將不同的交換環(huán)與公共集合122的每個多項式相關(guān)聯(lián),來獲得改善的混合效果和單向性(one-way-ness)。公鑰生成器120和解密信息生成器220被配置為將私有隨機(jī)值112或加密隨機(jī)值212分別代入公共集合122的每個多項式并且在與其相關(guān)聯(lián)的環(huán)中規(guī)約每個多項式。優(yōu)選地,還使每個多項式成為規(guī)范形式。
在公式形式中,對于私有隨機(jī)值112或加密隨機(jī)值212,這可以被分別表示為
用作與公共集合122中的多項式相關(guān)聯(lián)的環(huán)中的一個環(huán)或者用作全局環(huán)的環(huán)在例如系統(tǒng)400中實現(xiàn)如下。環(huán)的值在電子設(shè)備100、200和300中以數(shù)字形式表示,并且對值的加法和乘法運算被實現(xiàn)為數(shù)字算法。算法可以在軟件或硬件中實現(xiàn)。通常,,可能地與軟件結(jié)合地使用這些運算的硬件表示。環(huán)可以具有用于以唯一形式表示環(huán)的值的規(guī)范化算法。
存在可以以數(shù)字形式表示的許多交換環(huán)。兩個重要的示例是多項式環(huán)和整數(shù)環(huán)。下面我們給出基于整數(shù)環(huán)的工作示例,其中每個
在加密系統(tǒng)400的實施例中,公共全局歸約整數(shù)(n)與公共集合相關(guān)聯(lián)并且公共個體歸約整數(shù)(
私鑰生成器110被配置為生成作為0到全局公共全局歸約整數(shù)(n)之間的整數(shù)的私有隨機(jī)值112。對稱密鑰獲得器210被配置為生成作為在0到全局公共全局歸約整數(shù)(n)之間的整數(shù)的加密隨機(jī)值212。
私鑰生成器110被配置為獲得公共集合122中的多項式,作為具有整數(shù)系數(shù)的對稱二元多項式(
公鑰生成器120被配置為生成作為具有整數(shù)系數(shù)的一元多項式的公共一元多項式。解密信息生成器220被配置為生成作為具有整數(shù)系數(shù)的一元多項式的解密一元多項式。
例如,公鑰生成器120可以被配置為通過以下操作生成公共一元多項:
1.通過以下內(nèi)容獲得一元多項式集合
2.對于公共集合的每個多項式
a.將所述私有隨機(jī)整數(shù)(s)代入所述多項式(
3.將一元多項式集合求和并且以全局歸約整數(shù)(n)為模進(jìn)行歸約,
除了使用加密隨機(jī)值212而不是私有隨機(jī)值112之外,配置解密信息生成器220以生成解密一元多項式可以進(jìn)行相同操作。
對稱密鑰獲得器210被配置為通過以下操作來計算對稱密鑰(k)在公共一元多項式中代入加密隨機(jī)值(r)并且以全局歸約整數(shù)(n)為模進(jìn)行歸約,采取結(jié)果的最小密鑰長度比特數(shù)目(b)。
作為示例,公共全局歸約整數(shù)(n)可以被選擇為大于
在這種情況下,計算對稱密鑰(k)還包括以2的密鑰長度次冪(
對稱密鑰獲得器310可以被配置為通過以下操作來重構(gòu)對稱密鑰(k):在解密一元多項式中代入私有隨機(jī)值(s)并且以公共全局歸約整數(shù)(n)為模進(jìn)行歸約以及以2的密鑰長度次冪(
在本實施例中,可能的是,僅從代入步驟獲得的密鑰仍不等于對稱密鑰214。檢測重構(gòu)密鑰是否等于用于加密的密鑰可以使用密鑰確認(rèn)數(shù)據(jù)。密鑰確認(rèn)也可以是隱式的,例如,消息410可以是在利用不同的密鑰解密時未獲得的特定形式。
如果用于密鑰k的密鑰確認(rèn)數(shù)據(jù)(例如,對于散列函數(shù)h,h(k)與h(k')不同),則解密設(shè)備300可以計算仍然可以獲得正確的密鑰。為這樣做,解密設(shè)備300從k'計算針對j的范圍的值
可以使用以下算法。對稱密鑰獲得器310可以被如下配置用于密鑰搜索:
1.從在所述解密一元多項式中代入所述私有隨機(jī)整數(shù)(s)的結(jié)果中導(dǎo)出第一重構(gòu)密鑰(k'),
2.從密鑰確認(rèn)數(shù)據(jù)確定第一重構(gòu)密鑰(k')是否等于對稱密鑰214(k),
3.如果等于,則終止密鑰搜索,
4.利用第一重構(gòu)密鑰(k'生成另一個重構(gòu)密鑰,通過針對j的新的非零值來計算
5.轉(zhuǎn)到步驟2。
步驟3也可以在超時的情況下終止。例如,在一些資源受約束的設(shè)備上,可以花費在密鑰重構(gòu)上的時間量是有限的。
典型地,設(shè)備100、200和300各自包括微處理器(未示出),其執(zhí)行存儲在設(shè)備處的適當(dāng)軟件,例如,該軟件可能已經(jīng)被下載并存儲在設(shè)備的對應(yīng)的存儲器中,例如,ram中(未示出)。
下面給出了系統(tǒng)的實施例的數(shù)學(xué)描述。選擇第一安全性參數(shù):比特長度b,公共集合中的多項式的數(shù)量m和公共集合中的最大次數(shù)
由于對稱性,只有其中
由密鑰生成設(shè)備100生成的公鑰包括所有上述參數(shù),除了s之外。在該特定實施例中,密鑰生成設(shè)備100還指定散列函數(shù)h。加密設(shè)備200選擇在范圍
以及數(shù)
和密鑰確認(rèn)數(shù)據(jù),諸如k的散列,
解密設(shè)備300計算
和散列值
解密設(shè)備300找到
給定系數(shù)
對于
對于
在本實施例中,排除指定
可以不需要指定
在上述實施例中,將k和m相加已被用作加密。這是一個合適的選擇,例如,如果系統(tǒng)被應(yīng)用于相對短的消息,諸如命令消息。該結(jié)構(gòu)也可被用于加密第二對稱密鑰,其進(jìn)而用于加密m。以上構(gòu)造也可與其他對稱加密(例如,塊密碼,諸如aes,例如aes-128)一起使用。
以上描述可以以多種方式變化。下面描述了多種可能的變化。
例如,如果除了在
當(dāng)給定k時,找到秘密密鑰s的問題現(xiàn)在減少為從下面的單個方程求解s:
如果
將
加密系統(tǒng)400和系統(tǒng)430可以配置有用于執(zhí)行乘法和加法(也稱為“環(huán)”中的運算)的可替換計算系統(tǒng)。應(yīng)認(rèn)為,交換環(huán)是優(yōu)選的。盡管環(huán)一般是可應(yīng)用的,但為了可讀性,針對多項式環(huán)給出了下面的示例。像整數(shù)環(huán)一樣的多項式環(huán)是交換環(huán)的示例。與上述系統(tǒng)的重要區(qū)別在于,多項式的系數(shù)、加密隨機(jī)值和私有隨機(jī)值是來自各種多項式環(huán)的元素。我們將使用't'來指示所有所使用的多項式環(huán)的形式變量。
由于多項式環(huán)本身是已知的,因此下面僅給出簡要概述。我們考慮環(huán)
可以將
讓
存在在非負(fù)整數(shù)與p-ary多項式之間的自然映射:多項式系數(shù)對應(yīng)于整數(shù)的p-ary擴(kuò)展中的數(shù)字,因此對應(yīng)于多項式的整數(shù)可以通過以下操作獲得:在多項式中代入
環(huán)
在環(huán)
其中(
在所有以下實施例中,我們使用
與加密系統(tǒng)400和430中類似,密鑰生成設(shè)備100包括私鑰生成器110和公鑰生成器120。公鑰生成器120被配置為以電子形式選擇或以其他方式獲得以下參數(shù):
表示為m的公共全局歸約多項式次數(shù);
密鑰大?。╞個比特);
整數(shù)
確定私有隨機(jī)值和加密隨機(jī)值的大小的安全性參數(shù)'b';
整數(shù)
對于參數(shù)
公共全局歸約多項式
公共個體歸約多項式
在其兩個變量的每一個中的次數(shù)為
密鑰大小(b)和參數(shù)大?。╞)可以不同。一種選項是將它們選擇為相等。
對于公共集合中的每個多項式,公共個體歸約多項式
選擇公共個體歸約多項式
密鑰生成設(shè)備以電子形式獲得在
應(yīng)注意,非負(fù)整數(shù)與p-ary(在這種情況下為二進(jìn)制)多項式之間的自然映射已經(jīng)被用于將s映射到s(t),即系數(shù)s的二進(jìn)制擴(kuò)展與系數(shù)s(t)。后者也可以直接生成。
如前,公鑰加密設(shè)備包括對稱密鑰獲得器、解密信息生成器和加密單元。
對稱密鑰獲得器被配置為以電子形式獲得在
這里,結(jié)果是以全局公共全局歸約多項式為模進(jìn)行歸約,然后模
解密信息生成器被配置為,通過對通過將加密隨機(jī)值(r)代入公共集合((122,
私鑰解密設(shè)備包括對稱密鑰獲得器和解密單元。
私鑰解密設(shè)備從
有趣的是,所述參數(shù)保證
二元多項式
圖3是集成電路500的示意性框圖。集成電路500包括處理器520、存儲器530和i/o單元540。集成電路500的這些單元可以通過諸如總線之類的互連510彼此通信。處理器520被配置為執(zhí)行存儲在存儲器530中的軟件以執(zhí)行如本文所述的方法。以這種方式,集成電路500可以被配置為密鑰生成設(shè)備100、加密設(shè)備200和/或解密設(shè)備300;于是,存儲器530的一部分可以根據(jù)要求存儲公鑰、私鑰、明文消息和/或加密消息。
i/o單元540可以用于與諸如設(shè)備100、200或300之類的其他設(shè)備通信,例如用于接收公鑰或私鑰,或者用于發(fā)送和接收加密的消息。i/o單元540可以包括用于無線通信的天線。i/o單元540可以包括用于有線通信的電接口。
集成電路500可以集成在計算機(jī)、移動通信設(shè)備(諸如移動電話)等中。集成電路500還可以集成在例如布置有l(wèi)ed設(shè)備的照明設(shè)備中。例如,被配置為解密設(shè)備300并且布置有諸如led之類的照明單元的集成電路500可以接收利用公鑰加密的命令。只有解密設(shè)備300可以解密和執(zhí)行所述命令。例如,被配置為加密設(shè)備200并且布置有諸如led之類的照明單元的集成電路500可以發(fā)送消息,諸如利用公鑰加密的狀態(tài)消息。只有能夠訪問對應(yīng)于公鑰的私鑰的解密設(shè)備300可以解密和執(zhí)行所述命令。
盡管多項式操縱可以由受存儲在存儲器530中的多項式操縱軟件指令的處理器520來執(zhí)行,但是如果集成電路500被配置有可選的多項式操縱設(shè)備550,則密鑰生成、加密和解密的任務(wù)更快。多項式操縱設(shè)備550是用于執(zhí)行代入和歸約運算的硬件單元。
圖4是存儲器布局的示意性框圖,在集成電路500被配置為密鑰生成設(shè)備100的情況下,所述存儲器布局可以與存儲器530一起使用。在圖4中示出的是:私有隨機(jī)整數(shù)562,諸如s;公共全局歸約整數(shù)564,諸如n;具有整數(shù)系數(shù)582-586的對稱二元多項式,諸如
圖4已經(jīng)針對整數(shù)環(huán)進(jìn)行了說明,然而也可以允許從多項式環(huán)獲取系數(shù)。所要求的存儲器應(yīng)當(dāng)相應(yīng)地適配。
圖5是加密系統(tǒng)600的示意性框圖。圖6示出了配置有密鑰生成設(shè)備100和解密設(shè)備300的接收單元610;配置有加密設(shè)備200的發(fā)送單元640;證書機(jī)構(gòu)620和公鑰數(shù)據(jù)庫630。此外,圖6示出了從發(fā)送單元640發(fā)送到接收單元610的加密數(shù)據(jù)650。接收單元610和發(fā)送單元640是網(wǎng)絡(luò)的一部分。網(wǎng)絡(luò)中的任何設(shè)備可以使用預(yù)期接受者的公鑰來加密消息。預(yù)期接受者擁有用于解密消息的私鑰。
發(fā)送單元640和接收單元610之間的雙方通信可以如下工作:
(1)接收單元610使用如本文所述的他的密鑰生成設(shè)備100來選擇公鑰-私鑰對(e,d)。這里e表示公鑰,d表示對應(yīng)的私鑰;
(2)接收單元610然后將加密密鑰e發(fā)送到發(fā)送單元640,但保持解密密鑰d是秘密的;
(3)發(fā)送單元640可以通過計算c=ee(m)('密文')來向接收單元610發(fā)送消息m('明文');以及
(4)當(dāng)接收單元610接收到c時,它可以通過計算m=dd(c)來恢復(fù)原始消息。
網(wǎng)絡(luò)加密系統(tǒng)600的更高級實施例使用公鑰數(shù)據(jù)庫630和證書機(jī)構(gòu)620。
接收單元610將其公鑰e發(fā)送到證書機(jī)構(gòu)630(ca)。公鑰數(shù)據(jù)庫630可以驗證接收單元610的用戶的身份,但這不是嚴(yán)格必需的。證書機(jī)構(gòu)620使用證書機(jī)構(gòu)620的公鑰對公鑰進(jìn)行簽名。證書機(jī)構(gòu)620可能地與所述身份一起在公鑰數(shù)據(jù)庫630中公布經(jīng)簽名的公鑰。當(dāng)發(fā)送單元640想要向如利用身份標(biāo)識的接收單元610發(fā)送消息時,發(fā)送單元640可能地使用身份作為搜索索引在公鑰數(shù)據(jù)庫630中查找公鑰。發(fā)送單元640可以驗證證書機(jī)構(gòu)620的簽名。
使公共集合中的多項式對稱簡化了實現(xiàn)。在公鑰加密系統(tǒng)100的實施例中,公共集合122中的至少一個二元多項式是非對稱的。在一個實施例中,公共集合122中的所有多項式都是非對稱的。
密鑰生成如上所述一樣工作,除了密鑰生成設(shè)備被配置為將私有隨機(jī)值112代入集合122的多項式的兩個變量中的特定一個變量之外。例如,如果f(x,y)是集合122中的二元多項式之一,并且如果密鑰生成設(shè)備被配置為使用這兩個變量中的第一個變量,則其計算f(s,y)。求和步驟(如果有的話)如上所述一樣進(jìn)行。加密設(shè)備接收公共一元多項式124。由于一元多項式只有一個變量,所以在其中代入加密隨機(jī)值212沒有差別。然而,為了計算解密一元多項式222,加密設(shè)備被配置為將加密隨機(jī)值212代入這兩個變量中的第二個變量,即然后由密鑰生成設(shè)備使用的不同的一個變量。接著上述示例,加密設(shè)備將計算f(x,r)。最后,解密設(shè)備接收一元多項式,因此只有一個變量可用于代入。
使用非對稱多項式可以增加安全性,因為其確保了公共一元多項式124和解密一元多項式222具有不同的結(jié)構(gòu)。
本文中給出的使用在集合122中的對稱多項式的所有實施例可以被修改為使用非對稱多項式。所需要的唯一變化是,確保解密一元多項式222是通過代入集合122中的多項式的兩個變量之一而獲得的,而公共一元多項式124是通過代入集合122中的多項式的兩個變量中的另一個變量而獲得的。
圖6a是密鑰生成方法700的示意性流程圖。方法700包括:生成702私鑰,私鑰包括私有隨機(jī)值;以電子形式獲得704對稱二元多項式((
圖6b是加密方法710的示意性流程圖。方法710包括以電子形式獲得712加密隨機(jī)值(r);通過在公共一元多項式中代入加密隨機(jī)值(r)來計算714對稱密鑰(k);通過對通過將加密隨機(jī)值(r)代入公共集合的多項式而獲得的一元多項式(
圖6c是解密方法730的流程圖。方法730包括:通過在解密一元多項式中代入私有隨機(jī)值(s)來重構(gòu)732第一對稱密鑰(k);從密鑰確認(rèn)數(shù)據(jù)確定734重構(gòu)密鑰(k')是否等于對稱密鑰(k);以及如果不等于,則從第一重構(gòu)密鑰(k')導(dǎo)出另一個重構(gòu)的密鑰,例如通過將公共全局歸約整數(shù)(n)或公共全局歸約整數(shù)(n)的倍數(shù)與所述第一重構(gòu)密鑰(k')相加并且以2的所述密鑰長度(
執(zhí)行該方法的許多不同方式是可能的,這對于本領(lǐng)域技術(shù)人員是顯而易見的。例如,可以變動所述步驟的順序或者可以并行地執(zhí)行一些步驟。此外,在步驟之間可以插入其他方法步驟。插入的步驟可以表示諸如本文所描述的方法的改進(jìn),或者可以與該方法無關(guān)。
根據(jù)本發(fā)明的方法可以使用軟件執(zhí)行,該軟件包括用于使處理器系統(tǒng)執(zhí)行方法700、710和730的指令。軟件可以僅包括由系統(tǒng)的特定子實體采取的那些步驟。軟件可以存儲在合適的存儲介質(zhì)中,諸如硬盤、軟盤、存儲器等。軟件可以作為信號沿著線或無線地或使用數(shù)據(jù)網(wǎng)絡(luò)(例如因特網(wǎng))發(fā)送??梢允沟密浖捎糜谙螺d和/或在服務(wù)器上的遠(yuǎn)程使用。
應(yīng)當(dāng)意識到,本發(fā)明還擴(kuò)展到計算機(jī)程序,特別是適配于將本發(fā)明付諸實踐的載體上或載體中的計算機(jī)程序。程序可以是源代碼、目標(biāo)代碼、代碼中間源和目標(biāo)代碼的形式(諸如部分編譯的形式)或適于在根據(jù)本發(fā)明的方法的實現(xiàn)中使用的任何其他形式。與計算機(jī)程序產(chǎn)品相關(guān)的實施例包括與所闡述的方法中的至少一個方法的每個處理步驟相對應(yīng)的計算機(jī)可執(zhí)行指令。這些指令可以被細(xì)分為子例程和/或被存儲在可以靜態(tài)或動態(tài)鏈接的一個或多個文件中。與計算機(jī)程序產(chǎn)品有關(guān)的另一個實施例包括與所闡述的系統(tǒng)和/或產(chǎn)品中的至少一個的每個構(gòu)件相對應(yīng)的計算機(jī)可執(zhí)行指令。
應(yīng)當(dāng)注意,上述實施例說明而不是限制本發(fā)明,并且本領(lǐng)域技術(shù)人員將能夠設(shè)計許多可替換的實施例。
在權(quán)利要求中,置于括號之間的任何附圖標(biāo)記不應(yīng)被解釋為限制權(quán)利要求。動詞“包括”及其詞形變化的使用不排除除了在權(quán)利要求中所述的元件或步驟之外的元件或步驟的存在。元件之前的冠詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以通過包括幾個不同元件的硬件以及通過適當(dāng)編程的計算機(jī)來實現(xiàn)。在列舉了若干構(gòu)件的設(shè)備權(quán)利要求中,這些構(gòu)件中的幾個構(gòu)件可以由同一個硬件項體現(xiàn)。在相互不同的從屬權(quán)利要求中記載某些措施的純粹事實并不指示不能有利地使用這些措施的組合。
優(yōu)選實施例可以總結(jié)如下。
實施例1.一種密鑰生成設(shè)備(100),其被配置為生成在公鑰加密設(shè)備中使用的公鑰(126)和在私鑰解密設(shè)備中使用的對應(yīng)的私鑰(114),所述密鑰生成設(shè)備包括
-私鑰生成器(110),其被配置為:
-以電子形式獲得私有隨機(jī)值(112,s),以及
-生成所述私鑰(114),所述私鑰包括所述私有隨機(jī)值(112),以及
-公鑰生成器(120),其被配置為:
-以電子形式獲得二元多項式的公共集合(122,
-通過對通過將所述私有隨機(jī)值(112,s)代入所述公共集合(122,
-生成所述公鑰(126),所述公鑰包括所述公共一元多項式(124)和所述公共集合(122)。
實施例2.一種用于使用公鑰來加密電子消息(410)的公鑰加密設(shè)備(200),所述公鑰包括公共一元多項式和二元多項式(
-對稱密鑰獲得器(210),其被配置為:
-以電子形式獲得加密隨機(jī)值(212,r),以及
-通過在所述公共一元多項式中代入所述加密隨機(jī)值(212,r)來計算對稱密鑰(214,k),
-解密信息生成器(220),其被配置為:
-通過對通過將加密隨機(jī)值(r)代入公共集合(122,
-生成所述解密信息(424),所述解密信息包括所述解密一元多項式(222),以及
-加密單元(230),其被配置為:
-利用所述對稱密鑰(214)加密所述消息(410)并將所述加密的消息(422)與所述解密信息(424)相關(guān)聯(lián)。
實施例3.一種用于使用可由實施例2的公鑰加密設(shè)備獲得的解密信息(424)和私鑰(114)解密加密的消息(422)的私鑰解密設(shè)備(300),
-所述解密信息包括解密一元多項式(222),所述私鑰包括私有隨機(jī)值(112,s),
所述私鑰解密設(shè)備包括:
-對稱密鑰獲得器(310),其被配置為:
-通過在所述解密一元多項式(222)中代入所述私有隨機(jī)值(s)來重構(gòu)對稱密鑰(312,k'),
-解密單元(320),被配置為:
-利用所述重構(gòu)的對稱密鑰(312,k')解密所述加密的消息。
實施例4.如在實施例2中的公鑰加密設(shè)備,其中
-二元多項式(
-二元多項式(
-所述公共集合的至少一個多項式在所述至少一個多項式的兩個變量之一中具有至少為2的次數(shù)。
實施例5.如實施例2中的公鑰加密設(shè)備,其中
-公共一元多項式被表示為規(guī)范形式的公共一元多項式的系數(shù)的列表,以及
-解密一元多項式被表示為規(guī)范形式的解密一元多項式的系數(shù)的列表。
實施例6.如實施例2中的公鑰加密設(shè)備,其中
-公共全局歸約整數(shù)(n)與公共集合相關(guān)聯(lián)并且公共個體歸約整數(shù)(
-私有隨機(jī)值和加密隨機(jī)值(r)是整數(shù),公共集合中的每個多項式是具有整數(shù)系數(shù)的二元多項式(
-以及其中
-計算所述對稱密鑰(k)包括:在所述公共一元多項式中代入所述加密隨機(jī)值(r)并且以所述全局歸約整數(shù)(n)為模進(jìn)行歸約,
-計算所述解密一元多項式包括:
-通過以下方式獲得一元多項式集合:
-對于公共集合的每個多項式,將所述私有加密值(r)代入所述多項式(
-對一元多項式集合求和并且以全局歸約整數(shù)(n)為模進(jìn)行歸約。
實施例7.如實施例6中的公鑰加密設(shè)備,其中
-公共全局歸約整數(shù)(n)是大于
-對于每個公共個體歸約整數(shù)(
-以及其中,計算所述對稱密鑰(k)還包括以2的所述密鑰長度次冪(
實施例8.如實施例3中的私鑰解密設(shè)備,其中所述解密信息包括從對稱密鑰(k)計算的密鑰確認(rèn)數(shù)據(jù),以用于驗證重構(gòu)密鑰(k')是否等于所述對稱密鑰(k),解密信息包括密鑰確認(rèn)數(shù)據(jù),以及其中
-重構(gòu)所述對稱密鑰(k)包括:
-從在所述解密一元多項式中代入所述私有隨機(jī)值(s)并以所述公共全局歸約整數(shù)(n)為模進(jìn)行歸約的結(jié)果中導(dǎo)出第一重構(gòu)密鑰(k'),
-從所述密鑰確認(rèn)數(shù)據(jù)確定所述第一重構(gòu)密鑰(k')是否等于所述對稱密鑰(k),以及如果不等于,則從所述第一重構(gòu)密鑰(k')導(dǎo)出另一個重構(gòu)密鑰。
實施例9.如實施例8中的私鑰解密設(shè)備,其中重構(gòu)對稱密鑰(k)包括:在解密一元多項式中代入私有隨機(jī)值(s),并且以公共全局歸約整數(shù)(n)為模進(jìn)行歸約,其中,導(dǎo)出另一個重構(gòu)密鑰包括將所述公共全局歸約整數(shù)(n)或所述公共全局歸約整數(shù)(n)的倍數(shù)加到所述第一重構(gòu)密鑰(k'),并且以2的所述密鑰長度次冪(
實施例10.如實施例2中的公鑰加密設(shè)備,其中
-公共全局歸約多項式(n(t))與公共集合相關(guān)聯(lián),以及公共個體歸約多項式(
-所述私有隨機(jī)值(s(t))和所述加密隨機(jī)值(r(t))是多項式,所述公共集合中的每個特定多項式
-公共一元多項式和解密一元多項式具有多項式系數(shù),
-以及其中
-計算所述對稱密鑰(k)包括在所述公共一元多項式中代入所述加密隨機(jī)值(r(t))并且以所述全局歸約多項式(n(t))為模進(jìn)行歸約,
-計算所述解密一元多項式包括
-通過以下方式獲得一元多項式集合:
-對于公共集合中的每個多項式,將所述私有加密值(r(t))代入所述多項式(
-對所述一元多項式集合求和。
實施例11.一種密鑰生成方法,其被配置為生成在公鑰加密方法中使用的公鑰和在私鑰解密方法中使用的對應(yīng)的私鑰,所述密鑰生成方法包括:
-以電子形式獲得私有隨機(jī)值(s),其中不同的交換環(huán)與所述二元多項式的公共集合中的每個多項式相關(guān)聯(lián),以及
-生成私鑰,所述私鑰包括所述私有隨機(jī)值,以及
-以電子形式獲得二元多項式(
-通過對通過將所述私有隨機(jī)值(s)代入所述公共集合的多項式(
-生成所述公鑰,所述公鑰包括所述公共一元多項式和所述公共集合。
實施例12.一種用于使用公鑰對電子消息進(jìn)行加密的公鑰加密方法,所述公鑰包括公共一元多項式和二元多項式(
-以電子形式獲得加密隨機(jī)值(r),以及
-通過在所述公共一元多項式中代入所述加密隨機(jī)值(r)來計算對稱密鑰(k),
-通過對通過將加密隨機(jī)值(r)代入公共集合的多項式(
-生成所述解密信息,所述解密信息包括所述解密一元多項式,以及
-利用所述對稱密鑰加密所述消息并將所述加密的消息與所述解密信息相關(guān)聯(lián)。
實施例13.一種私鑰解密方法,其用于使用可通過實施例12的方法獲得的解密信息和私鑰來解密加密的消息,
-所述解密信息包括解密一元多項式,所述私鑰包括私有隨機(jī)值(s),
-通過在所述解密一元多項式中代入所述私有隨機(jī)值(s)來重構(gòu)對稱密鑰(k),
-用所述對稱密鑰(k)解密所述消息。
實施例14.一種包括計算機(jī)程序代碼構(gòu)件的計算機(jī)程序,所述計算機(jī)程序代碼構(gòu)件被適配為,當(dāng)計算機(jī)程序在計算機(jī)上運行時,執(zhí)行實施例11、12和13中任一個的所有步驟。
實施例15.如實施例14中所述的計算機(jī)程序,其體現(xiàn)在計算機(jī)可讀介質(zhì)上。
圖1-5中的附圖標(biāo)記列表:
100密鑰生成設(shè)備
110私鑰生成器
112私有隨機(jī)值
114私鑰
120公鑰生成器
122二元多項式的公共集合
124公共一元多項式
126公鑰
200公鑰加密設(shè)備
210對稱密鑰獲得器
212加密隨機(jī)值
214對稱密鑰
220解密信息生成器
222解密一元多項式
230加密單元
300,301私鑰解密設(shè)備
310對稱密鑰獲得器
312重構(gòu)的對稱密鑰
320解密單元
400加密系統(tǒng)
410電子消息
420消息塊
422加密的消息
424解密信息
430加密系統(tǒng)
500集成電路
510總線
520處理器
530存儲器
540i/o單元
550多項式操縱設(shè)備
562私有隨機(jī)整數(shù)
564公共全局歸約整數(shù)
566歸約結(jié)果
568求和結(jié)果
582-586具有整數(shù)系數(shù)的對稱二元多項式
592-596公共歸約整數(shù)
600加密系統(tǒng)
610接收單元
620證書機(jī)構(gòu)
630公鑰數(shù)據(jù)庫
640發(fā)送單元
650加密的數(shù)據(jù)