本文所述主題內(nèi)容一般涉及數(shù)據(jù)處理,尤其涉及使用關(guān)聯(lián)私鑰部分更快的公鑰加密的系統(tǒng)和方法。
背景技術(shù):
在公鑰密碼術(shù)或不對稱密碼術(shù)中,密碼系統(tǒng)包括三個算法:一個用于密鑰生成的算法,其生成所有者保有的私鑰以及由所有者向公眾公布的公鑰;一個用于加密的算法,其允許能夠得到公布的公鑰的任何人使用公鑰進行加密;以及一個用于解密的算法,其允許擁有私鑰或“暗門”信息的所有者通過使用公鑰加密的私鑰數(shù)據(jù)來解密。
在RSA(Rivest、Shamir和Adleman)算法中,例如,私鑰和公鑰均使用兩個質(zhì)數(shù)生成。所有者知道這兩個質(zhì)數(shù)并且可以使用所述質(zhì)數(shù)執(zhí)行解密。“公眾”(即,那些被提供公鑰的人,公鑰至少基于兩個質(zhì)數(shù)的某些形式的合數(shù))可以使用公鑰進行加密。公眾不能有效地分解合數(shù),并且不能執(zhí)行解密。
在某些情況下,執(zhí)行加密的一方也是私鑰的所有者。例如,所有者可能需要將數(shù)據(jù)加密,用于在公共網(wǎng)絡(luò)上傳輸,和/或存儲在第三方存儲中(例如云存儲)。之后可以檢索加密數(shù)據(jù)并由所有者解密。
技術(shù)實現(xiàn)要素:
主題內(nèi)容包括使用關(guān)聯(lián)私鑰部分更快的公鑰加密的系統(tǒng)和方法,包括:將明文加密為密文,其中加密使用公鑰和對應(yīng)的私鑰;以及存儲密文。
所述方法使用一個或多個計算裝置和/或系統(tǒng)來實現(xiàn)。所述方法可存儲在計算機可讀介質(zhì)中。
附圖說明
圖1示出快速加密實施方式的高級示意圖。
圖2示出可以部署快速加密實施方式的示例性環(huán)境。
圖3示出過程實施方式的示例。
圖4示出適合于一些示例性實施方式的示例性環(huán)境。
圖5示出示例性計算環(huán)境,其中示例性計算裝置適合于在一些示例性實施方式中使用。
具體實施方式
本文所述主題內(nèi)容通過示例性實施方式來教導(dǎo)。為了清楚以及為了避免混淆主題內(nèi)容起見,省略了很多細(xì)節(jié)。下面所示示例指向用于實施使用關(guān)聯(lián)私鑰部分更快的公鑰加密的系統(tǒng)和方法的結(jié)構(gòu)和功能。
圖1示出快速加密實施方式的高級示意圖。示例性快速加密100被實施為使用公鑰102的至少一部分以及對應(yīng)的私鑰104的至少一部分(也可以稱為解密密鑰)將數(shù)據(jù)或消息M加密,以產(chǎn)生密文C。快速加密100可以是實施一個或多個算法以使用公鑰102的至少一部分執(zhí)行加密的軟件模塊、過程、軟件應(yīng)用、硬件電路、實體裝置、以及它們的任何組合。
快速加密100可以在任何密碼系統(tǒng)中實施,例如加密、鑒權(quán)、數(shù)字簽名等等,它們使用公鑰等等以及私鑰等等??梢允褂帽疚乃黾夹g(shù)使其更快的示例性算法包括但不限于傳輸層安全(TLS)、完美隱私(PGP)、Rivest、Shamir和Adleman(RSA)、同態(tài)加密(例如,Paillier加密)等等。算法可包括密鑰分配或秘密密鑰分配(例如使用Diffie–Hellman密鑰交換等等)。
下面如圖2所述,密文C可以與使用傳統(tǒng)加密算法加密的另一個密文C2等同,傳統(tǒng)加密算法只使用公鑰102來加密數(shù)據(jù)。換言之,相同的解密引擎可將密文C和密文C2解密,并且不能區(qū)分C是使用快速加密算法100還是使用傳統(tǒng)加密算法進行加密。
圖2示出可以部署快速加密實施方式的示例性環(huán)境。A方200(例如所有者)使用密鑰生成210生成公鑰102和私鑰104(或解密密鑰104)。密鑰生成120可以是實施一個或多個算法以生成密鑰的軟件模塊、過程、軟件應(yīng)用、硬件電路、實體裝置、以及它們的任何組合。公鑰102可以提供給希望向所有者200發(fā)送加密消息的任何一方(例如B方250)。所有者200使用私鑰104將利用公鑰102加密的消息解密。所有者200在一個或多個快速加密算法或快速鑒權(quán)算法中也使用私鑰104或者私鑰104的至少一部分。
密鑰生成210例如隨機并相互獨立地計算或選擇兩個質(zhì)數(shù)p和q來生成密鑰(例如公鑰102和私鑰104)。實施方式可以使用長度相等的質(zhì)數(shù)p和q(例如,256比特、512比特、1024比特、2048比特、非2X的長度等等)??梢杂嬎阕畲蠊蜃?即gcd)來驗證gcd(pq,(p-1)(q-1))=1的性質(zhì)。為了生成公鑰(例如公鑰102),密鑰生成210計算n=pq并選擇隨機整數(shù)g,諸如g=n+1,其中以及公鑰為(n,g)。公鑰包括合數(shù)n,合數(shù)n不能有效地破解或分解,以獲取p和q。p和/或q越大(例如比特長度越長),破解n就越難。
在本文所述示例中,使用公式c=(gm)(rn)mod n2可將明文m加密為密文c,其中且r是隨機選擇,并且其中或者以及且gcd(i,n)=1。可將公式c=(gm)(rn)mod n2稱為EQ1。本文使用的術(shù)語“明文”或“m”(例如圖1所示的M以及圖2所示的M1和M2)表示要加密的數(shù)據(jù)、信息或消息?!懊魑摹被颉癿”可以采用人類可讀或機器可辨的形式,也可以采用并非人類可讀或機器可辨的形式(例如事先加密)。
只有所有者或者進行解密的一方才知道或者應(yīng)當(dāng)知道p和q。一旦知道p和q,就可以容易地生成私鑰。為了生成對應(yīng)的私鑰(例如私鑰104,用于解密使用公鑰102加密的密文),密鑰生成210計算λ=lcm(p-1,q-1),其中l(wèi)cm是最小公倍數(shù)。密鑰生成210還計算μ=(L(gλmod n2))-1mod n,其中L(μ)=(μ-1)/n。私鑰(解密密鑰)是(λ,μ)。本文所述示例中的解密公式為m=L(cλmodn2)μmod n。
如果p和q的長度相同,則生成密鑰(例如λ和μ)的另一個示例性方法是計算λ=Φ(n)=(p-1)(q-1);μ=Φ(n)-1mod n;以及g=n+1。
例如,p和q可以是512比特長的數(shù),并且所得n可以是1024比特長的合數(shù)。如果p和q是1024比特長的質(zhì)數(shù),那么相應(yīng)地,n可以是2048比特長的數(shù)(這種合數(shù)稱為“RSA數(shù)”)。
因為只有所有者或者進行解密的一方才知道或者應(yīng)當(dāng)知道p和q,所以只有所有者(例如所有者的計算裝置或系統(tǒng))才能使用p和/或q進行加密。例如實施快速加密100,以使用私鑰104或者私鑰的成分(例如p和q)來加快加密。
如圖1所示,快速加密100使用公鑰102和對應(yīng)的私鑰104(或者私鑰104的一部分)兩者來加密數(shù)據(jù)(例如消息M1),以生成密文(例如密文C1)。
EQ1加密公式為c=(gm)(rn)mod n2。如果將n+1用作g,則加密公式變?yōu)閏=((n+1)m)(rn)mod n2,由于(n+1)mmod n2的二項展開式,可將其簡化為c=(1+nm)(rn) mod n2(稱為EQ2)。在EQ2中,消去了一個冪運算(即gm),這可以減少計算時間。EQ2只有一個剩余的冪運算(即rn)。
使用p和q,可以消去剩余的冪運算或者減少其計算時間。如果底數(shù)固定并且指數(shù)變化,則預(yù)計算可以很快。為了使用p和q加快加密(即,這只能通過私鑰104的所有者進行,私鑰104的所有者知道p和q或者能夠得到p和q),可以使用公知的中國剩余定理(CRT)轉(zhuǎn)換EQ2的“(rn)mod n2”部分,從而能夠利用固定底數(shù)進行預(yù)計算。
注意n2=p2q2。從n2的n次余數(shù)選擇隨機r的操作可以用從p2的n次余數(shù)選擇隨機r1以及從q2的n次余數(shù)選擇隨機r2來代替。使用CRT,可將r1和r2組合,得到p2q2或n2的n次余數(shù)。使用CRT,對于隨機r1和r2,可將(rn)mod n2=(rn)mod p2 q2轉(zhuǎn)換為(r1)nmod p2和(r2)nmod q2,其中(r1)(r2)=r;以及
通過選擇階為Φ(p2)的循環(huán)群的生成元g1以及從Φ(p2)選擇隨機元素s1,然后計算y1=(g1)s1mod p2,可以隨機選擇r1的值。Φ(p2)是歐拉函數(shù)或Φ函數(shù)=小于p2的正整數(shù)中(即1,2,…,(p2-1))與p2互質(zhì)的數(shù)的數(shù)目。
通過選擇階為Φ(q2)的循環(huán)群的生成元g2以及從Φ(q2)選擇隨機元素s2,然后計算y2=(g2)s2mod q2,可以隨機選擇r2的值。Φ(q2)是歐拉函數(shù)或Φ函數(shù)=小于q2的正整數(shù)中(即1,2,…,(q2-1))與q2互質(zhì)的數(shù)的數(shù)目。
為了獲得n次余數(shù),將y1和y2升冪到n次冪。因此,(y1)n=[(g1)s1mod p2]n=[(g1)s1]nmod p2=(g1n)s1mod p2,且(y2)n=[(g2)s2mod q2]n=[(g2)s2]nmod q2=(g2n)s2mod q2。作為參考,可將g1nmod p2稱為GN1,且g2nmod q2=GN2。結(jié)果是固定底數(shù)的GN1升冪到隨機s1的指數(shù)mod p2(即,GN1s1mod p2)以及固定底數(shù)的GN2升冪到隨機s2的指數(shù)mod q2(即,GN2s2mod q2)。
快速加密100對于p和q的每個組合預(yù)計算其值一次且僅此一次。為了簡化描述,選擇小的p和q值作為示例。在通過計算裝置或系統(tǒng)的實際實施方式中,p和q的值在長度上可以是256比特、512比特、1024比特、2048比特或者其他數(shù)目的比特。例如,在下面所示的示例中,p=5且q=7。前面的示例性實施方式被應(yīng)用于p和q的值,如以下運算序列所示:
p=5;p2=25
的大小=20
p2的g1={1:1,2:20,3:20,4:10,5:2,6:5,7:4,8:20,9:10,10:2,11:5,12:20,13:20,14:10,15:2,16:5,17:20,18:4,19:10,20:2,21:5,22:20,23:20,24:2},最大階是20。生成元g1可以是(2,3,8,12,13,17,22,或23)。
例如,g1=2。
的大?。?2
q2的g2={1:1,2:21,3:42,4:21,5:42,6:14,7:2,8:7,9:21,10:42,11:21,12:42,13:14,14:2,15:7,16:21,17:42,18:3,19:6,20:14,21:2,22:7,23:21,24:42,25:21,26:42,27:14,28:2,29:7,30:3,31:6,32:21,33:42,34:14,35:2,36:7,37:21,38:42,39:21,40:42,41:14,42:2,43:7,44:21,45:42,46:21,47:42,48:2},最大階是42。生成元g2可以是(3,5,10,12,17,24,26,33,38,40,45,或47)。
例如,g2=3。
n=pq=35;n2=352=1225
GN1=glnmod p2=235mod 25=18
GN2=g2nmod q2=335mod 49=19
預(yù)計算以上恒定值之后,快速加密100例如可以使用以下算法將任何數(shù)據(jù)或消息m加密為密文c。
EQ2為c=(1+nm)(rn)mod n2,并且對于GN1s1mod p2和GN2s2mod q2可以使用CRT(中國剩余定理)計算“(rn)mod n2”部分。
令D=(1+nm)mod n2。因此,就最高計算成本而言(例如,關(guān)于時間和/或資源消耗),D的計算基本上為一個倍增。
所進行的從Φ(p2)選擇隨機元素s1以及從Φ(q2)選擇隨機元素s2的操作就計算成本而言可以忽略不計。
計算E=GN1s1 mod p2和F=GN2s2 mod q2。計算成本基本上是固定底數(shù)的兩個指數(shù)運算。經(jīng)由加法鏈的方法,特別是Pippenger冪運算算法,可以加快固定底數(shù)的冪運算。
快速加密100使用CRT執(zhí)行計算,將E與F組合,產(chǎn)生結(jié)果H=(rn)mod n2。計算成本不包括進行任何冪運算。
然后,快速加密100計算c=DH mod n2。
例如,如圖2所示,快速加密100可將消息M1加密,生成密文C1。M1=12(即m=12)。使用預(yù)計算的常數(shù)GN1和GN2(基于p=5和q=7),快速加密100選擇和/或計算以下值:
D=(1+nm)mod n2=(1+35x12)mod 352=421
s1=7以及s2=9(隨機選擇)
E=GN1s1mod p2=187mod 25=7
F=GN2s2mod q2=199mod 49=48F
可以使用以下兩個方程計算H。
x≡7mod 25
x≡48mod 49
H=832
C1=DH mod n2=421x832 mod 1225=1147
如果要通過快速加密100加密的數(shù)據(jù)與某個時候(例如)能夠加密的數(shù)量相比更大或更長,那么可將數(shù)據(jù)分解為片段,以滿足每個片段條件。得到的密文可以連接起來。在相反的過程或解密過程中,在解密為個別明文之前可將連接起來的密文分解為個體密文。明文可以連接起來形成原始數(shù)據(jù)。
在快速加密100將M2加密創(chuàng)建C1之后,例如可將C1存儲在A方或所有者200控制的數(shù)據(jù)庫220中。也可以經(jīng)由網(wǎng)絡(luò)224(例如公共網(wǎng)絡(luò)或互聯(lián)網(wǎng)),通過路徑222將C1例如傳輸?shù)紺方226。C方可以是提供數(shù)據(jù)存儲服務(wù)的第三方(例如云存儲服務(wù)提供者)。在一些實施方式中,可以經(jīng)由網(wǎng)絡(luò)224傳輸密文C1,以用于存儲或通過由A方控制的裝置或系統(tǒng)(未示出)處理。當(dāng)A方要訪問M1或C1的明文數(shù)據(jù)時,如果C1存儲在數(shù)據(jù)庫220中,則A方可以從數(shù)據(jù)庫220檢索C1,或者通過網(wǎng)絡(luò)224以及路徑228從C方檢索C1。不管C1的源如何,A方都可以使用解密引擎230(或解密230)將C1解密。
與快速加密100相比,能夠得到公鑰102(即,在不知道p和q的情況下)的一方(例如B方)只使用公鑰進行加密。例如,A方200將公鑰102提供給B方250,用于B方將消息M2加密為密文C2發(fā)送給A方。M2可以是任何值。B方的加密引擎260使用EQ1 c=(gm)(rn)mod n2來加密M2。例如,n=35且g=36。B方不知道合數(shù)n的因子p和q。加密引擎260選擇隨機r,如上所述。例如,r=23。作為比較,M2=12(即,m=12)。EQ1變?yōu)镃2=(gm)(rn)mod n2=(3612)(2335)mod 1225=522。B方將C2發(fā)送給A方。注意,EQ1不使用私鑰(例如因子p和q),或者λ和/或μ的值。
A方的解密引擎230可通過相同的方式將(即,使用私鑰104和公鑰102通過快速加密100來加密的)C1和(即,只使用公鑰102通過B方的加密引擎260來加密的)C2解密。不管C1和C2何時到達(dá)(例如分別地),都可以使用相同的解密密鑰或私鑰104(例如λ、μ)獨立地將C1和C2解密。
為了解密,解密引擎230檢索或計算以下值:
p=5;q=7;n=pq=35;n2=1225
g=n+1=36
λ=1cm(p-1,q-1)=12
μ=(L(gλmod n2))-1mod n,其中L(u)=(u-1)/n。
u=gλmod n2=3612mod 352=421
L(u)=(421-1)/35=12
μ=(12)-1mod 35=3
私鑰(λ,μ)=(12,3)。
解密公式為m=L(cλmod n2)μmod n。
m=L(cλmod n2)μmod n=(k)μmod n,其中k=L(cλmod n2),其中L(u)=(u-1)/n
解密引擎230將C1解密獲得明文M1,將C2解密獲得明文M2。解密引擎230計算以下值來解密C1(C1=1147,通過快速加密100產(chǎn)生)。
u=C1λmod n2=114712mod 1225=1411
k=(141-1)/35=4
M1=(k)μmod n=(4)3 mod 35=12
解密引擎230計算以下值來解密C2(C2=522,通過加密引擎260生成)
u=C2λmod n2=52212mod 1225=141
k=(141-1)/35=4
M2=(k)μmod n=(4)3mod 35=12
相同的解密引擎230可將密文C1和C2解密,不管是否Cs使用快速加密算法加密且C2使用傳統(tǒng)加密算法來加密。
圖3示出過程實施方式的示例。過程300例如包括塊310,其中快速加密100使用合數(shù)n=p乘以q(例如公鑰102)將數(shù)據(jù)(例如M1)加密為密文(例如C1),其中p和q可以是質(zhì)數(shù)。為了加快加密操作,快速加密100還分別使用p和q,即私鑰104的成分。例如,使用或基于p來計算g1和GN1,且使用或基于q來計算g2和GN2。在塊320,可以存儲(例如存儲在數(shù)據(jù)庫220)加密數(shù)據(jù)(例如C1)或者將其發(fā)送到另一個位置或另一方(例如C方)。
在一些示例中,可通過不同、更少或更多的塊來實施處理300??蓪⑻幚?00實施為計算機可執(zhí)行指令,計算機可執(zhí)行指令可以存儲在介質(zhì)上,載入一個或多個計算裝置的一個或多個處理器,并作為計算機實施方法執(zhí)行。
在公鑰操作中使用私鑰的另一個示例是簽名驗證(例如,驗證使用數(shù)字簽名來簽名的消息或數(shù)據(jù)的真實性(authenticity))。例如,為了創(chuàng)建RSA簽名密鑰,生成包含模數(shù)N的RSA密鑰對(模數(shù)N是兩個大質(zhì)數(shù)(例如p和q)的乘積),連同整數(shù)e和d一起,使得(e)(d)≡1(modΦ(N)),其中Φ是歐拉Φ函數(shù)。簽名者的公鑰包括N和e,且簽名者的私鑰包括d。
為了對消息m進行簽名,簽名者計算σ≡md(mod N)。為了驗證數(shù)字簽名的消息σ,接收者校驗σe≡m(mod N)。持有質(zhì)數(shù)因子p和q(即私鑰)的一方可以實施RSA簽名驗證,RSA簽名驗證不是將σ升冪到e次冪,對合數(shù)N取余數(shù),而是執(zhí)行mod p和mod q的運算,并使用CRT加快消息的e次方mod N的計算,類似于上述EQ2的“(rn)mod n2”部分的轉(zhuǎn)換。
例如,將σ升冪到e次方對合數(shù)N取余數(shù)的操作可以通過從p的n次余數(shù)選擇隨機r1以及從q的n次余數(shù)選擇隨機r2來代替。使用CRT,可將r1和r2組合,得到pq或N的e次余數(shù)。使用CRT,對于隨機r1和r2,可將(σe)mod N=(σe)mod pq轉(zhuǎn)換為(r1)emod p和(r2)emod q,其中(r1)(r2)=σ;以及在如上所述計算r1和r2之后操作繼續(xù)。
可以由知道因子(私鑰)的一方將相同的操作應(yīng)用于RSA加密的另一個示例。例如,為了驗證已經(jīng)使用私鑰進行數(shù)字簽名的數(shù)據(jù)或消息,可以(例如由知道私鑰的一方)使用私鑰的至少一部分以及對應(yīng)的公鑰來生成基于消息的驗證結(jié)果。例如可以“驗證”或“拒絕”驗證結(jié)果。結(jié)果例如可以存儲在日志或數(shù)據(jù)庫中。
圖4示出適合于一些示例性實施方式的示例性環(huán)境。環(huán)境400包括裝置405-445,每個裝置例如經(jīng)由網(wǎng)絡(luò)460可通信地連接到至少一個其他裝置(例如通過有線和/或無線連接)。一些裝置可通信地連接到一個或多個存儲裝置430和445。
一個或多個裝置405-445的示例可以是圖5所述的計算裝置505。裝置405-445可包括但不限于計算機405(例如膝上型計算裝置)、移動裝置410(例如智能電話或平板電腦)、電視415、與車輛相關(guān)聯(lián)的裝置420、服務(wù)器計算機425、計算裝置435-440、存儲裝置430和445。
在一些實施方式中,可將裝置405-420視為用戶裝置(例如用戶用來訪問數(shù)據(jù)的裝置,諸如例如云存儲服務(wù)提供者存儲的數(shù)據(jù))。裝置425-445可以是與服務(wù)提供者相關(guān)聯(lián)的裝置(例如,服務(wù)提供者用來提供服務(wù)和/或存儲數(shù)據(jù),例如存儲加密的網(wǎng)頁、文本、文本部分、圖像、圖像部分、音頻、音頻片段、視頻、視頻片段、和/或與其有關(guān)的信息)。
例如,用戶(例如Alice)可以使用裝置405或410將加密數(shù)據(jù)發(fā)送給一個或多個裝置425-445支持的存儲提供者。Alice可以使用私鑰將數(shù)據(jù)加密,以節(jié)約計算時間和/或資源。加密數(shù)據(jù)不能被存儲提供者解密。當(dāng)Alice要訪問數(shù)據(jù)時,Alice從存儲提供者檢索數(shù)據(jù)(例如,按照加密的形式),并在Alice的裝置405或410上將數(shù)據(jù)解密。
圖5示出具有示例計算裝置的示例性計算環(huán)境,所述示例性計算裝置適合于在一些示例性實施方式中使用。計算環(huán)境500中的計算裝置505可包括一個或多個處理單元、核、或處理器510、存儲器515(例如RAM、ROM等等)、內(nèi)部儲存器520(例如磁、光、固態(tài)存儲、和/或有機存儲)、和/或I/O接口525,它們的任何一個都可以耦合到用于傳遞信息的通信機構(gòu)或總線530,或者嵌入在計算裝置505中。
計算裝置505可通信地耦合到輸入/用戶接口535以及輸出裝置/接口540。輸入/用戶接口535和輸出裝置/接口540的一者或二者可以是有線或無線接口,并且可拆卸。輸入/用戶接口535可包括實體或虛擬的用于提供輸入的任何裝置、組件、傳感器、或接口(例如按鈕、觸摸屏接口、鍵盤、指示/光標(biāo)控制、麥克風(fēng)、相機、盲文、運動傳感器、光學(xué)閱讀器等等)。輸出裝置/接口540可包括顯示器、電視、監(jiān)視器、打印機、揚聲器、盲文等等。在一些示例性實施方式中,可將輸入/用戶接口535和輸出裝置/接口540嵌入計算裝置505或者實體連接到計算裝置505。在其他示例性實施方式中,其他計算裝置可以充當(dāng)用于計算裝置505的輸入/用戶接口535和輸出裝置/接口540,或者提供輸入/用戶接口535和輸出裝置/接口540的功能。
計算裝置505的示例可包括但不限于高度移動裝置(例如,智能電話、車輛和其他機器中的裝置、人和動物攜帶的裝置等等)、移動裝置(例如,平板、筆記本電腦、膝上型計算機、個人計算機、便攜電視、無線電等等),以及并非為移動性設(shè)計的裝置(例如,桌面型計算機、其它計算機、信息亭、其中嵌入有一個或多個處理器和/或與其耦合的電視、無線電等等)。
計算裝置505可通信地耦合(例如經(jīng)由I/O接口525)到外部儲存器545以及網(wǎng)絡(luò)550,網(wǎng)絡(luò)550用于與任意數(shù)量的網(wǎng)絡(luò)化組件、裝置、和系統(tǒng)通信,包括配置相同或不同的一個或多個計算裝置。計算裝置505或者任何相連接的計算裝置可以充當(dāng)服務(wù)器、客戶端、瘦服務(wù)器、通用機器、專用機器、或其他標(biāo)簽,或者提供它們的服務(wù),或者稱為服務(wù)器、客戶端、瘦服務(wù)器、通用機器、專用機器、或其他標(biāo)簽。
I/O接口525可包括但不限于使用任何通信或I/O協(xié)議或標(biāo)準(zhǔn)(例如以太網(wǎng)、802.11x、通用系統(tǒng)總線、WIMAX、調(diào)制解調(diào)器、蜂窩網(wǎng)絡(luò)協(xié)議等等)的有線和/或無線接口,用于向所連接的組件、裝置、以及計算環(huán)境500中的網(wǎng)絡(luò)通信信息和/或從所連接的組件、裝置、以及計算環(huán)境500中的網(wǎng)絡(luò)傳遞信息。網(wǎng)絡(luò)550可以是任何網(wǎng)絡(luò)或網(wǎng)絡(luò)的組合(例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)、電話網(wǎng)絡(luò)、蜂窩網(wǎng)絡(luò)、衛(wèi)星網(wǎng)絡(luò)等等)。
計算裝置505可以使用計算機可用介質(zhì)或計算機可讀介質(zhì)和/或使用計算機可用或計算機可讀介質(zhì)來通信,包括暫時性介質(zhì)和非暫時性介質(zhì)。暫時性介質(zhì)包括傳輸介質(zhì)(例如金屬電纜、光纖)、信號、載波等等。非暫時性介質(zhì)包括磁介質(zhì)(例如磁盤和磁帶)、光介質(zhì)(例如CD ROM、數(shù)字視頻盤、藍(lán)光盤)、固態(tài)介質(zhì)(例如RAM、ROM、閃存、固態(tài)存儲)、以及其他非易失性存儲或存儲器。
計算裝置505可用于在一些示例性計算環(huán)境中實施技術(shù)、方法、應(yīng)用、過程、或計算機可執(zhí)行指令。計算機可執(zhí)行指令可以從暫時性介質(zhì)檢索,并存儲在非暫時性介質(zhì)上,以及從非暫時性介質(zhì)檢索??蓤?zhí)行指令可根據(jù)任何編程語言、腳本語言、以及機器語言中的一個或多個(例如C、C++、C#、Java、Visual Basic、Python、Perl、JavaScript等等)生成。
在本機或虛擬環(huán)境中,(一個或多個)處理器510可以在任何操作系統(tǒng)(OS)(未示出)下執(zhí)行??梢圆渴鹨粋€或多個應(yīng)用,包括邏輯單元560、應(yīng)用程序編程接口(API)單元565、輸入單元570、輸出單元575、預(yù)計算引擎580、隨機數(shù)生成器585、加密引擎590、以及單元間通信機構(gòu)595,用于不同單元相互通信、與OS通信,以及與其他應(yīng)用(未示出)通信。例如,預(yù)計算引擎580、隨機數(shù)生成器585、以及加密引擎590可以實施圖1至圖4中所示和所述的一個或多個處理。所述單元和元件可以在設(shè)計、功能、配置、或?qū)嵤┓绞椒矫孀兓⑶也幌抻谒峁┑拿枋觥?/p>
在一些示例性實施方式中,當(dāng)通過API單元565接收信息或執(zhí)行指令時,可將其通信給一個或多個其他單元(例如邏輯單元560、輸入單元570、輸出單元575、預(yù)計算引擎580、隨機數(shù)生成器585、以及加密引擎590)。例如,在輸入單元570檢測到消息M以后,輸入單元570可以使用API單元565將消息M傳遞給預(yù)計算引擎580。預(yù)計算引擎580進行檢查,保證加密操作中所需的常數(shù)和/或值有效。如果情況并非如此,則預(yù)計算引擎580生成或預(yù)計算這些常數(shù)和/或值。然后預(yù)計算引擎580呼叫加密引擎590將M加密。如果需要的話,加密引擎590呼叫隨機數(shù)生成器585,生成s1和s2隨機數(shù),用于在加密時使用。在加密引擎590將M加密為密文C之后,加密引擎590將C傳遞給輸出單元575,輸出單元575與I/O接口525互動,以存儲C或者在網(wǎng)絡(luò)上傳輸C。
在一些實例中,可將邏輯單元560配置為控制在單元間流動的信息,并引導(dǎo)在上述一些示例性實施方式中通過API單元565、輸入單元570、輸出單元575、預(yù)計算引擎580、隨機數(shù)生成器585、以及加密引擎590提供的服務(wù)。例如,可單獨通過邏輯單元560或結(jié)合API單元565控制一個或多個過程或?qū)嵤┓绞降牧鞒獭?/p>
雖然示出和描述了一些示例性實施方式,但是這些示例性實施方式是用于向熟悉本領(lǐng)域的人員傳達(dá)本文所述主題內(nèi)容。應(yīng)當(dāng)理解,本文所述主題內(nèi)容可以按照多種形式實施,不限于所述的示例性實施方式。本文所述主題內(nèi)容沒有這些特別限定或描述的內(nèi)容也可以實踐,也可利用其他或不同的元件或者沒有描述的內(nèi)容來實踐。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在不脫離后附權(quán)利要求書及其等同物所限定的本文所述主題內(nèi)容的情況下,在這些示例性實施方式中可以進行改變。