亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

公鑰加密系統(tǒng)的制作方法

文檔序號:11532274閱讀:606來源:國知局
公鑰加密系統(tǒng)的制造方法與工藝

本發(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ù)是大于和/或小于的奇數(shù),其中表示在公共集合中的多項式的兩個變量之一中的最高次數(shù),以及表示密鑰長度,并且對于每個公共個體歸約整數(shù),公共全局歸約整數(shù)減去所述公共個體歸約整數(shù)是2的密鑰長度次冪的倍數(shù),并且小于2的密鑰長度的兩倍次冪,并且其中計算對稱密鑰還包括,以2的密鑰長度次冪為模進(jìn)行歸約。在密鑰生成設(shè)備的實施例中,公共全局歸約整數(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ù),其中α表示在公共集合中的多項式的兩個變量之一中的最高次數(shù),并且b表示密鑰長度,并且對于每個公共個體歸約整數(shù),公共全局歸約整數(shù)減去所述公共個體歸約整數(shù)是2的密鑰長度次冪的倍數(shù),并且小于2的密鑰長度的兩倍次冪,并且其中計算對稱密鑰還包括以2的密鑰長度次冪為模進(jìn)行歸約。在公鑰加密設(shè)備的實施例中,公共全局歸約整數(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ù)是大于和/或小于的奇數(shù),其中表示在公共集合中的多項式的兩個變量之一中的最高次數(shù),并且表示密鑰長度。在私鑰解密設(shè)備的實施例中,公共全局歸約整數(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中的所有二元多項式都是對稱的。使用對稱多項式帶來了許多優(yōu)點。首先,它們要求指定較少的系數(shù),并且因此使用較少的資源。其次,它們簡化了簿記;其中,非對稱多項式密鑰生成和解密將多項式的兩個變量中的第一個變量用于替代,而加密將多項式的兩個變量中的第二個變量用于替代。

對稱二元多項式也可以表示為將兩個形式變量作為??占位符的。對稱二元多項式滿足。該要求轉(zhuǎn)化為對系數(shù)的要求,例如,單項式等于單項式的系數(shù)。

公共集合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ù)。例如,的次數(shù)等于2,因為中的次數(shù)為2。因為公共集合122中的多項式是對稱的,因此次數(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,這可以被分別表示為。在這些公式中,多項式與環(huán)相關(guān)聯(lián)。方括號指示,在所指示的環(huán)中歸約為規(guī)范形式。求和本身可以在全局環(huán)(在公式中未示出)中發(fā)生。還可以在全局環(huán)中執(zhí)行計算對稱密鑰214和重構(gòu)的對稱密鑰312;可能地,之后是諸如截短到密鑰長度(b)(以比特為單位)的附加處理。對于與公共集合122的多項式相關(guān)聯(lián)的每個局部環(huán),可以存在用于在求和之前將環(huán)的元素映射到全局環(huán)的映射函數(shù)。在許多實施例中,映射是自然映射:用于表示局部環(huán)中的值的比特模式被映射到具有相同比特模式的全局環(huán)的值;換句話說,不需要執(zhí)行實際的計算動作來進(jìn)行該映射。

用作與公共集合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)的工作示例,其中每個被選擇為,即,模的整數(shù)的交換環(huán),以及作為,即,模n的整數(shù)的交換環(huán)。這些環(huán)允許將它們的值數(shù)字表示為數(shù)字表示的整數(shù),例如為分別從0到或到n-1的整數(shù)。多項式可以被表示為以這種形式表示的值的數(shù)組。加法算法可以被實現(xiàn)為整數(shù)加法的硬件實現(xiàn),隨后是以模數(shù)為模進(jìn)行歸約(reductionmodulomodulus)的軟件實現(xiàn)。乘法可以被實現(xiàn)為整數(shù)乘法的硬件實現(xiàn),隨后是以模數(shù)為模進(jìn)行歸約的軟件實現(xiàn)。許多交換環(huán)和數(shù)字表示在本領(lǐng)域中本身是已知的。以本文所述的方式應(yīng)用這種數(shù)字表示以獲得公鑰-私鑰加密系統(tǒng)不是已知的。

在加密系統(tǒng)400的實施例中,公共全局歸約整數(shù)(n)與公共集合相關(guān)聯(lián)并且公共個體歸約整數(shù)()與公共集合中的每個多項式相關(guān)聯(lián)。相關(guān)聯(lián)的信息可以包括在公鑰126中或者可以是固定的。在一個實施例中,公共全局歸約整數(shù)是固定的,并且不需要包括在公鑰中,但是公共個體歸約整數(shù)()不是固定的,并且可以與公共集合122一起生成。取決于安全要求、正確解密的可能性等,可以隨機(jī)選擇這些數(shù)字。下面給出了對于這些數(shù)字的可能選擇。至少兩個公共個體歸約整數(shù)是不同的,優(yōu)選地,所有公共個體歸約整數(shù)是不同的。

私鑰生成器110被配置為生成作為0到全局公共全局歸約整數(shù)(n)之間的整數(shù)的私有隨機(jī)值112。對稱密鑰獲得器210被配置為生成作為在0到全局公共全局歸約整數(shù)(n)之間的整數(shù)的加密隨機(jī)值212。

私鑰生成器110被配置為獲得公共集合122中的多項式,作為具有整數(shù)系數(shù)的對稱二元多項式()。不要求公共集合122中的多項式具有以關(guān)聯(lián)的公共歸約整數(shù)為模進(jìn)行了歸約的系數(shù),例如系數(shù)可以更大或為負(fù)。然而,對于實現(xiàn)而言,方便的是,公共集合122的多項式是規(guī)范形式,例如具有在0到關(guān)聯(lián)的公共歸約整數(shù)()減1(包括性的)之間的系數(shù)。

公鑰生成器120被配置為生成作為具有整數(shù)系數(shù)的一元多項式的公共一元多項式。解密信息生成器220被配置為生成作為具有整數(shù)系數(shù)的一元多項式的解密一元多項式。

例如,公鑰生成器120可以被配置為通過以下操作生成公共一元多項:

1.通過以下內(nèi)容獲得一元多項式集合

2.對于公共集合的每個多項式

a.將所述私有隨機(jī)整數(shù)(s)代入所述多項式(),并且以與所述多項式相關(guān)聯(lián)的公共個體歸約整數(shù)()為模進(jìn)行歸約,以及

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)可以被選擇為大于和/或小于的奇數(shù),其中表示在公共集合中的多項式的兩個變量之一中的最高次數(shù),并且b表示密鑰長度。對于每個公共個體歸約整數(shù)(,公共全局歸約整數(shù)(n)減去所述公共個體歸約整數(shù)()是2的密鑰長度次冪的倍數(shù)(,),并且小于2的密鑰長度的兩倍次冪。參數(shù)的這種特定選擇是在充分混合與解密設(shè)備可以重構(gòu)密鑰的高概率之間的權(quán)衡。其他選擇是可能的。

在這種情況下,計算對稱密鑰(k)還包括以2的密鑰長度次冪()為模進(jìn)行歸約,即,截短以僅采取代入結(jié)果的最后b個比特。

對稱密鑰獲得器310可以被配置為通過以下操作來重構(gòu)對稱密鑰(k):在解密一元多項式中代入私有隨機(jī)值(s)并且以公共全局歸約整數(shù)(n)為模進(jìn)行歸約以及以2的密鑰長度次冪()為模進(jìn)行歸約。

在本實施例中,可能的是,僅從代入步驟獲得的密鑰仍不等于對稱密鑰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的范圍的值和其密鑰確認(rèn)值(例如散列值)。這些密鑰確認(rèn)值中的至多一個等于密鑰確認(rèn)值,例如,散列值h(k)。如果找到該索引j,則解密設(shè)備300使用j的該值并且將k計算為,其中尖括號表示模運算。如果沒有找到這樣的j,則解密設(shè)備300不能對數(shù)據(jù)進(jìn)行解密。在后一種情況下,解密設(shè)備300具有幾個選項,例如,生成錯誤消息,請求利用不同的加密隨機(jī)值212進(jìn)行重新加密等。有趣的是,私有隨機(jī)值112僅被需要用于計算初始k',其他計算使用公共全局歸約整數(shù)(n)。

可以使用以下算法。對稱密鑰獲得器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ù)。比特長度b確定對稱加密中的密鑰長度。通過增加另外兩個參數(shù),增加了系統(tǒng)的復(fù)雜性。這三個參數(shù)可以是固定的,例如由系統(tǒng)架構(gòu)師確定,或者可以由密鑰生成設(shè)備100選擇。此外,密鑰生成設(shè)備100選擇形式中的在區(qū)間中的奇數(shù)n,m個整數(shù),其中,整數(shù)滿足并且m個次數(shù)為的對稱二元多項式為:

。

由于對稱性,只有其中的那些需要指定。密鑰生成設(shè)備100選擇在范圍中的秘密私有整數(shù)s(112),并通過以下方式來計算公共一元多項式125:計算個數(shù)

。

由密鑰生成設(shè)備100生成的公鑰包括所有上述參數(shù),除了s之外。在該特定實施例中,密鑰生成設(shè)備100還指定散列函數(shù)h。加密設(shè)備200選擇在范圍中的隨機(jī)整數(shù)r,并通過以下方式來計算解密一元多項式222:計算個數(shù)

以及數(shù)

和密鑰確認(rèn)數(shù)據(jù),諸如k的散列,。加密設(shè)備200傳送以及和數(shù),其中m是b比特的明文消息,其要從密鑰生成設(shè)備100發(fā)送到解密設(shè)備300。代替加上k,加密設(shè)備200還可以使用其他加密算法,以通過利用k加密m來獲得c。

解密設(shè)備300計算

和散列值

。

解密設(shè)備300找到使得并且檢索,為。解密設(shè)備300現(xiàn)在檢索所傳送的消息m,為。代替減去k,解密設(shè)備300也可以使用其他對應(yīng)于加密算法的解密算法,來通過利用k對m解密來獲得m。

給定系數(shù),該方案的安全性取決于找到s的困難度。對于,一種完成此的方法是嘗試s的所有可能的值,如果b足夠大,這是不可行的。b=128或更大的值是如此之大,以至于嘗試s的所有可能的值是不可行的,即,暴力攻擊被排除。然而,一些應(yīng)用不要求絕對不可行性。在這種情況下,b=48或更大的值可能已經(jīng)足夠了。

對于,系數(shù)是環(huán)的s上的多項式。這種系統(tǒng)可以可能地通過適配根查找算法來攻擊。雖然這當(dāng)然不是一個容易的任務(wù),但是對于所有安全性應(yīng)用,建議選擇。

對于,另一種找到s的方法是將方案映射到與m和α成比例的維度(dimension)的特定格(lattice)中的所謂最接近向量問題(closestvectorproblem)。對于對稱二元多項式,該維具有在二元多項式具有至少個不同的、非零系數(shù)和至少個非零系數(shù)時實現(xiàn)的上限,以及在所有二元多項式都是相同次數(shù)的單項式情況下的下限m+1。用于解決最接近向量問題的所有已知算法要么采用隨著格維度指數(shù)地增長的時間量,要么制造可以隨著格維度指數(shù)地增長的誤差。已經(jīng)發(fā)現(xiàn),大維度的格中的最接近向量問題是不可行的。stehlé報道,大多數(shù)已知的分析算法在維度達(dá)到180時開始失效。本發(fā)明人發(fā)現(xiàn),對于非常大的維度——維度500被發(fā)現(xiàn)為滿足這一要求-,現(xiàn)有的分析算法要么根本不工作,要么不可行地慢。作為另一個優(yōu)點,與諸如整數(shù)因子分解之類的基于經(jīng)典問題的現(xiàn)有密碼算法相比,諸如最接近向量問題之類的基于格的問題更難利用即將出現(xiàn)的量子計算機(jī)來分析。

在本實施例中,排除指定和散列函數(shù),密鑰生成設(shè)備100生成的公鑰的大小是

。

可以不需要指定和散列函數(shù),例如,如果它們在系統(tǒng)中是固定的。假設(shè)散列函數(shù)h輸出f個比特,則用于傳送b-比特消息m的密文的加密消息422是

。

在上述實施例中,將k和m相加已被用作加密。這是一個合適的選擇,例如,如果系統(tǒng)被應(yīng)用于相對短的消息,諸如命令消息。該結(jié)構(gòu)也可被用于加密第二對稱密鑰,其進(jìn)而用于加密m。以上構(gòu)造也可與其他對稱加密(例如,塊密碼,諸如aes,例如aes-128)一起使用。

以上描述可以以多種方式變化。下面描述了多種可能的變化。

例如,如果除了在時,我們要求所有多項式系數(shù)為零,則解密信息424的大小可以被大大減小。這減小了公鑰的大小,但更重要的是,其暗示著,加密設(shè)備200僅需要傳送單個,即,使得密文的大小減小到比特。

當(dāng)給定k時,找到秘密密鑰s的問題現(xiàn)在減少為從下面的單個方程求解s:

。

如果,這仍然是一個困難的問題。

形成為是一個好的選擇,因為k的幾乎均勻分布確保了即使消息m不均勻分布,c也是(幾乎)均勻分布的。其他可能的選擇包括,其針對任何1-參數(shù)的可逆函數(shù)集合,例如

,對于給定奇數(shù)而言;

,其中加密設(shè)備200必須挑選他的隨機(jī)數(shù)r,使得

加密系統(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),即,具有在中的系數(shù)的變量上的多項式的環(huán)。這個環(huán)的一個元素是多項式,其中所有并且序列終止:存在一個k,使得對于,所有系數(shù)。由表示的次數(shù)是k的值,使得對于所有,并且。這定義了,除了零多項式之外,的所有元素的次數(shù)。次數(shù)“0”,即零多項式,是未定義的。

可以將中的兩個多項式的加法定義為,其中指示以模p對變元求值并且在于中。應(yīng)注意,對于其中的非零多項式,它使,成立。

中的兩個多項式的乘法被定義為。應(yīng)注意,如果p是素數(shù),對于非零多項式,它使始終成立。如果p不是素數(shù),這不一定是真。我們將在下文中假設(shè)p是素數(shù)。

是在中的一個非零多項式(對于素數(shù)p)。然后任一多項式可以被唯一地寫為,其中。這里除以的結(jié)果,是余數(shù)。該余數(shù)由或以為模對進(jìn)行歸約來表示。環(huán),被定義為在具有在中的系數(shù)的次數(shù)小于的t上的所有多項式和零多項式的集合。兩個這樣的多項式的加法與中的加法相同,乘法與中的乘法相同,其后是以為模進(jìn)行歸約。

存在在非負(fù)整數(shù)與p-ary多項式之間的自然映射:多項式系數(shù)對應(yīng)于整數(shù)的p-ary擴(kuò)展中的數(shù)字,因此對應(yīng)于多項式的整數(shù)可以通過以下操作獲得:在多項式中代入并且在中對其求值。應(yīng)注意,該映射并不暗示,以多項式為模進(jìn)行歸約等價于以為模進(jìn)行整數(shù)歸約。例如,在中,它使得成立,所以,但是。

環(huán)的元素的集合僅取決于次數(shù)。這些元素的加法取決于p,因為多項式系數(shù)在中,但是無關(guān)于。另一方面,它們的乘法的結(jié)果取決于p和。

在環(huán)中具有定義的乘法和加法允許在該環(huán)中定義多項式:它們的變元是該環(huán)的元素,它們具有估價環(huán)(ring-valued)的系數(shù)并且采用在該環(huán)中的值。因此,在上的次數(shù)為的二元多項式可以寫為:

其中(中的)求和可以在模歸約運算之外進(jìn)行。我們甚至可以在不同的環(huán),中使(在中的)多項式相加:

在所有以下實施例中,我們使用,其更容易在面向比特的設(shè)備上實現(xiàn)。然而,這不是限制性的,因為p的其他值也是可能的,特別是素數(shù)值。例如,251和65521是適當(dāng)?shù)倪x擇,因為系數(shù)分別適合于一個字節(jié)和兩個字節(jié)。

與加密系統(tǒng)400和430中類似,密鑰生成設(shè)備100包括私鑰生成器110和公鑰生成器120。公鑰生成器120被配置為以電子形式選擇或以其他方式獲得以下參數(shù):

表示為m的公共全局歸約多項式次數(shù);

密鑰大?。╞個比特);

整數(shù),優(yōu)選地,

確定私有隨機(jī)值和加密隨機(jī)值的大小的安全性參數(shù)'b';

整數(shù),優(yōu)選地,

對于參數(shù)而言,一個好的選擇是,,并且。系統(tǒng)設(shè)計者可以選擇這些參數(shù)并將它們發(fā)送到密鑰生成設(shè)備。此外,公鑰生成器120被配置為以電子形式選擇或以其他方式獲得以下參數(shù):

公共全局歸約多項式。其次數(shù)等于

公共個體歸約多項式;

在其兩個變量的每一個中的次數(shù)為的二元多項式的公共集合。在每個中,二元多項式具有系數(shù),,。

密鑰大小(b)和參數(shù)大?。╞)可以不同。一種選項是將它們選擇為相等。

對于公共集合中的每個多項式,公共個體歸約多項式相關(guān)聯(lián),反之亦然。公共集合中的每個特定多項式是具有系數(shù)的二元多項式,該系數(shù)從多項式環(huán)模與該特定多項式相關(guān)聯(lián)的公共個體歸約多項式而取得。多項式可以被表示為。

選擇公共個體歸約多項式的一個好方法如下:首先選擇次數(shù)為b的多項式;然后選擇m個多項式,所有多項式具有至多等于的次數(shù)并且至少一個(優(yōu)選地所有)多項式具有大于的次數(shù);然后定義m個多項式,其中。對于歸約多項式的這種選擇確保了私鑰解密設(shè)備的對稱密鑰獲得器直接從在解密一元多項式中代入私有隨機(jī)值中獲得由公鑰加密設(shè)備使用的相同的對稱密鑰。應(yīng)注意,公共個體歸約多項式的次數(shù)的下限可以取為-1。大于-1的次數(shù)意味著次數(shù)應(yīng)該至少是0。該次數(shù)于是必須至多等于alpha*(b-1)-1。在一個實施例中,至少一個或者甚至所有的公共個體歸約多項式具有至少為2的次數(shù)。

密鑰生成設(shè)備以電子形式獲得在中的私有隨機(jī)值,并且通過對通過將私有隨機(jī)值(112,s)代入公共集合的多項式而獲得的一元多項式求和來計算公共一元多項式:

。

應(yīng)注意,非負(fù)整數(shù)與p-ary(在這種情況下為二進(jìn)制)多項式之間的自然映射已經(jīng)被用于將s映射到s(t),即系數(shù)s的二進(jìn)制擴(kuò)展與系數(shù)s(t)。后者也可以直接生成。

如前,公鑰加密設(shè)備包括對稱密鑰獲得器、解密信息生成器和加密單元。

對稱密鑰獲得器被配置為以電子形式獲得在中的加密隨機(jī)值r。加密隨機(jī)值被代入公共一元多項式中,

這里,結(jié)果是以全局公共全局歸約多項式為模進(jìn)行歸約,然后模。該代入和歸約的結(jié)果是在形式變量(t)上的多項式??梢砸愿鞣N方式從此獲得對稱密鑰。例如,可以使用自然映射將多項式轉(zhuǎn)換為數(shù)。映射的結(jié)果或系數(shù)串可以直接被散列。如果需要,可以應(yīng)用密鑰縮減、擴(kuò)增,熵放大等。如前,加密單元使用對稱密鑰來加密消息。

解密信息生成器被配置為,通過對通過將加密隨機(jī)值(r)代入公共集合((122,)的多項式而獲得的一元多項式求和來計算解密一元多項式,

私鑰解密設(shè)備包括對稱密鑰獲得器和解密單元。

私鑰解密設(shè)備從中計算密鑰。

有趣的是,所述參數(shù)保證??赡艿厥褂门c加密設(shè)備相同的導(dǎo)出,該密鑰可以用于解密密文。在這種情況下,不需要導(dǎo)出另外的重構(gòu)密鑰。

二元多項式可以被選擇為對稱二元多項式。這不是必需的,因為alice公布的密鑰材料是,bob發(fā)送給alice的密鑰材料是。alice和bob二者都計算相同的密鑰:

。

圖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的對稱二元多項式,諸如,以及相關(guān)聯(lián)的公共歸約整數(shù)592-596,諸如。此外,在圖4中,存儲器的兩個部分被保留作為計算公鑰的工作空間。歸約結(jié)果566用于將私有隨機(jī)整數(shù)562代入對稱二元多項式之一,并且以公共歸約整數(shù)為模進(jìn)行歸約。對于每個對稱多項式,然后將結(jié)果加到求和結(jié)果566并且以全局整數(shù)564為模對結(jié)果進(jìn)行歸約。圖4中所示的布局適用于m=3的系統(tǒng)。

圖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對稱二元多項式(()的公共集合;通過對通過將私有隨機(jī)值(s)代入公共集合中的多項式而獲得的一元多項式()求和來計算706公共一元多項式;以及生成708公鑰,公鑰包括公共一元多項式和公共集合。

圖6b是加密方法710的示意性流程圖。方法710包括以電子形式獲得712加密隨機(jī)值(r);通過在公共一元多項式中代入加密隨機(jī)值(r)來計算714對稱密鑰(k);通過對通過將加密隨機(jī)值(r)代入公共集合的多項式而獲得的一元多項式()求和來計算716解密一元多項式;從對稱密鑰(k)計算718密鑰確認(rèn)數(shù)據(jù),以用于驗證重構(gòu)密鑰(k')是否等于所述對稱密鑰(k);生成720所述解密信息,所述解密信息包括所述解密一元多項式;以及利用所述對稱密鑰加密722所述消息,并將所述加密的消息與所述解密信息相關(guān)聯(lián)。

圖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的所述密鑰長度()次冪為模進(jìn)行歸約。如果在734中從密鑰確認(rèn)數(shù)據(jù)確定第一重構(gòu)密鑰(k')等于對稱密鑰(k),則利用對稱密鑰(k)解密738該消息。

執(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,),其中不同的交換環(huán)與所述二元多項式的公共集合中的每個多項式相關(guān)聯(lián),

-通過對通過將所述私有隨機(jī)值(112,s)代入所述公共集合(122,)的多項式而獲得的所述一元多項式,來計算公共一元多項式(124),通過將所述私有隨機(jī)值(s)代入所述公共集合的特定多項式()而獲得的一元多項式在與特定一元多項式相關(guān)聯(lián)的交換環(huán)中被歸約為規(guī)范形式,以及

-生成所述公鑰(126),所述公鑰包括所述公共一元多項式(124)和所述公共集合(122)。

實施例2.一種用于使用公鑰來加密電子消息(410)的公鑰加密設(shè)備(200),所述公鑰包括公共一元多項式和二元多項式()的公共集合,其中不同的交換環(huán)與所述二元多項式公共集合中的每個多項式相關(guān)聯(lián),所述公鑰加密設(shè)備包括:

-對稱密鑰獲得器(210),其被配置為:

-以電子形式獲得加密隨機(jī)值(212,r),以及

-通過在所述公共一元多項式中代入所述加密隨機(jī)值(212,r)來計算對稱密鑰(214,k),

-解密信息生成器(220),其被配置為:

-通過對通過將加密隨機(jī)值(r)代入公共集合(122,)的多項式而獲得的一元多項式求和來計算解密一元多項式(222),通過將加密隨機(jī)值(r)代入公共集合的特定多項式()中而獲得的一元多項式在與特定一元多項式相關(guān)聯(lián)的交換環(huán)中被歸約為規(guī)范形式,以及

-生成所述解密信息(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ù)()與公共集合的每個多項式相關(guān)聯(lián),

-私有隨機(jī)值和加密隨機(jī)值(r)是整數(shù),公共集合中的每個多項式是具有整數(shù)系數(shù)的二元多項式(),公共一元多項式和解密一元多項式是具有整數(shù)系數(shù)的一元多項式,

-以及其中

-計算所述對稱密鑰(k)包括:在所述公共一元多項式中代入所述加密隨機(jī)值(r)并且以所述全局歸約整數(shù)(n)為模進(jìn)行歸約,

-計算所述解密一元多項式包括:

-通過以下方式獲得一元多項式集合:

-對于公共集合的每個多項式,將所述私有加密值(r)代入所述多項式()以及以與所述多項式相關(guān)聯(lián)的公共個體歸約整數(shù)()為模進(jìn)行歸約,以及

-對一元多項式集合求和并且以全局歸約整數(shù)(n)為模進(jìn)行歸約。

實施例7.如實施例6中的公鑰加密設(shè)備,其中

-公共全局歸約整數(shù)(n)是大于和/或小于的奇數(shù),其中表示公共集合中的多項式的兩個變量之一的最高次數(shù),表示密鑰長度,以及

-對于每個公共個體歸約整數(shù)(),所述公共全局歸約整數(shù)(n)減去所述公共個體歸約整數(shù)()是2的所述密鑰長度次冪的倍數(shù)(,),并且小于2的密鑰長度的兩倍次冪,

-以及其中,計算所述對稱密鑰(k)還包括以2的所述密鑰長度次冪()為模進(jìn)行歸約。

實施例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的所述密鑰長度次冪()為模進(jìn)行歸約。

實施例10.如實施例2中的公鑰加密設(shè)備,其中

-公共全局歸約多項式(n(t))與公共集合相關(guān)聯(lián),以及公共個體歸約多項式()與公共集合的每個多項式相關(guān)聯(lián),

-所述私有隨機(jī)值(s(t))和所述加密隨機(jī)值(r(t))是多項式,所述公共集合中的每個特定多項式是具有系數(shù)()的二元多項式,系數(shù)()從多項式環(huán)模與特定多項式()相關(guān)聯(lián)的公共個體歸約多項式()而取得。

-公共一元多項式和解密一元多項式具有多項式系數(shù),

-以及其中

-計算所述對稱密鑰(k)包括在所述公共一元多項式中代入所述加密隨機(jī)值(r(t))并且以所述全局歸約多項式(n(t))為模進(jìn)行歸約,

-計算所述解密一元多項式包括

-通過以下方式獲得一元多項式集合:

-對于公共集合中的每個多項式,將所述私有加密值(r(t))代入所述多項式()并且以與所述多項式相關(guān)聯(lián)的公共個體歸約多項式()為模進(jìn)行歸約,以及

-對所述一元多項式集合求和。

實施例11.一種密鑰生成方法,其被配置為生成在公鑰加密方法中使用的公鑰和在私鑰解密方法中使用的對應(yīng)的私鑰,所述密鑰生成方法包括:

-以電子形式獲得私有隨機(jī)值(s),其中不同的交換環(huán)與所述二元多項式的公共集合中的每個多項式相關(guān)聯(lián),以及

-生成私鑰,所述私鑰包括所述私有隨機(jī)值,以及

-以電子形式獲得二元多項式()的公共集合,

-通過對通過將所述私有隨機(jī)值(s)代入所述公共集合的多項式()而獲得的一元多項式求和來計算公共一元多項式,通過將所述私有隨機(jī)值(s)代入公共集合的特定多項式()而獲得的一元多項式在與該特定一元多項式相關(guān)聯(lián)的交換環(huán)中被歸約為規(guī)范形式,以及

-生成所述公鑰,所述公鑰包括所述公共一元多項式和所述公共集合。

實施例12.一種用于使用公鑰對電子消息進(jìn)行加密的公鑰加密方法,所述公鑰包括公共一元多項式和二元多項式()的公共集合,其中不同的交換環(huán)與二元多項式的公共集合中的每個多項式相關(guān)聯(lián),

-以電子形式獲得加密隨機(jī)值(r),以及

-通過在所述公共一元多項式中代入所述加密隨機(jī)值(r)來計算對稱密鑰(k),

-通過對通過將加密隨機(jī)值(r)代入公共集合的多項式()而獲得的一元多項式求和來計算解密一元多項式,通過將加密隨機(jī)值(r)代入公共集合的特定多項式()而獲得的一元多項式在與該特定一元多項式相關(guān)聯(lián)的交換環(huán)中被歸約為規(guī)范形式,以及

-生成所述解密信息,所述解密信息包括所述解密一元多項式,以及

-利用所述對稱密鑰加密所述消息并將所述加密的消息與所述解密信息相關(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ù)

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1