專利名稱:能快速解密的密碼系統(tǒng)與方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼系統(tǒng)、計算機及計算機實現(xiàn)的執(zhí)行加密與解密運算的方法。更具體地,本發(fā)明涉及改進執(zhí)行解密運算的速度的密碼系統(tǒng)。
背景技術(shù):
公開密鑰密碼學(xué)是在否則不安全的通信信道上安全地傳輸報文的廣為使用的方法。公開密鑰密碼學(xué)采用了不對稱的密鑰對?!安粚ΨQ”密碼密鑰對包含兩個獨立的密鑰,第一密鑰以一種方式操作數(shù)據(jù)而第二密鑰將操作后的數(shù)據(jù)轉(zhuǎn)換回其原始形式。這兩個密鑰是基于其中的一個密鑰不能從另一個密鑰計算出(至少在任何合理的時間量中)的數(shù)學(xué)關(guān)系的。
密碼密鑰對可用于不同功能,諸如加密、解密、數(shù)字簽名、簽名檢驗及鑒定。作為實例,采用不對稱密鑰對的加密與解密可表示如下EKpub(M)=CDKpri(C)=M其中“EKpub”為使用公開密鑰“Kpub”將明文報文“M”加密成密文“C”的加密函數(shù),而“DKpri”則為使用秘密密鑰“Kpri”的解密函數(shù)。其逆亦真,由于能用秘密密鑰“簽名”報文并用公開密鑰檢驗簽名。
在公開密鑰系統(tǒng)中,公開密鑰是分配給其它方的而秘密密鑰是保密的。不對稱公開與秘密密鑰保證兩種結(jié)果。第一,只有秘密密鑰的持有者能解密用對應(yīng)的公開密鑰加密的報文。第二,如果另一方用公開密鑰解密報文,該方能保證該報文是用秘密密鑰加密的并從而推測源自該秘密密鑰的持有者。
最知名與最廣為使用的不對稱密碼為用其建立者Rivest、Shamir與Adleman命名的RSA密碼學(xué)密碼。原始RSA密碼系統(tǒng)描述在以RivestShamir與Adleman的名義的1983年9月20日提交的名為“密碼通信系統(tǒng)與方法”的美國專利4,405,829中。通過引用結(jié)合該專利作為背景信息。
加密與解密的RSA密碼給出如下RAS加密C=MemodnRAS解密M=C1/emod(p1-1)(p2-1)modn其中p1與p2為素數(shù),n為形式n=p1p2的合數(shù),而e則為與(p1-1)(p2-1)互素的數(shù)。
運算“mod”為“??s減”運算,或簡單地說“?!边\算,這是大整數(shù)算術(shù)的普通運算。模運算是算術(shù)運算,其結(jié)果為除法運算的余數(shù)。表示成“A mod B”,其中A為以某一基寫出的數(shù)而B為“?!薄 modB的結(jié)果為A除以模B的余數(shù)。作為簡單的示例,模運算17mod3得出結(jié)果2,因為17除以3得出余數(shù)2。因為它產(chǎn)生余數(shù),模運算通常也稱作“除法余數(shù)”運算。
對于傳統(tǒng)RAS密碼學(xué),解密比加密慢得多。這一差別是由于RAS密碼需要比加密同一報文更多的計算來解密同一報文中這一事實。在一些環(huán)境中這一差別是不利的。例如,在客戶服務(wù)器的范圍之中,客戶機與服務(wù)器通?;ハ嘟粨Q加密的報文。單個客戶機通常享有充分時間與資源來加密報文。不幸的是,服務(wù)器并不享受這種奢侈品并有時可能受到其快速解密進入的報文的限制,尤其是在高級客戶機請求量的時段中。
從而,存在著改進RAS算法中的解密速度的要求。
發(fā)明概述本發(fā)明涉及改進RAS密碼中的解密速度的密碼學(xué)系統(tǒng)與方法。該密碼學(xué)系統(tǒng)采用基于Zn*的子群中的取冪的陷門置換(trapdoorpermutation)的新族。
該系統(tǒng)包括編碼器,將報文M變換成密文C并在通信信道上傳輸該密文C。密文C具有兩個分量,值V及值W。值V為數(shù)x的函數(shù),或V=xe,其中e為整數(shù)而x如下x=gRmodn,其中(ⅰ)n是一個數(shù)n=p1p2,其中p1與p2為素數(shù),p1=r1q1+1且p2=r2q2+1,其中r1與r2為隨機數(shù),而q1與q2為素數(shù);(ⅱ)R為與隨機數(shù)r1與r2無關(guān)地選取的隨機數(shù);以及(ⅲ)g為形式g=r3(p1-1)(p2-1)/q1q2modn的數(shù),其中r3為與隨機數(shù)r1、r2與R無關(guān)地選取的隨機數(shù)。
值W是作為值h1(x)與報文M的函數(shù)編碼的(如h1(x)_M),其中值h1(x)為數(shù)x的單向函數(shù)(例如x的散列(hash)函數(shù))。
編碼器還用散列函數(shù)h計算數(shù)x與報文M的散列值h2(x,M)。編碼器在通信信道上發(fā)送密文C(包含值V與W,及散列值h2(x,M)。
該系統(tǒng)還包括耦合成從通信信道接收密文C及散列值h2(x,M)及將密文C變換成報文M的解碼器。解碼器首先按照x=V(1/e)modq1q2modn從值V導(dǎo)出數(shù)x。然后利用值W和值h1(x)函數(shù)(例如W_H1(x))解碼報文M。復(fù)原報文M之后,解碼器從數(shù)x與復(fù)原的報文M計算出測試散列值h2’(x,M),并將該測試散列值h2’(x,M)與從編碼器接收的散列值h2(x,M)比較。如果兩個散列值匹配,報文M便未曾改變。
附圖簡要描述
圖1為密碼系統(tǒng)的框圖。
圖2為實現(xiàn)該密碼系統(tǒng)的計算機系統(tǒng)的框圖。
圖3為示出加密與解密報文的方法中的步驟的流程圖。
優(yōu)選實施例的詳細描述下面的討論假定讀者熟悉密碼技術(shù)及模運算。對于密碼學(xué)的基本介紹,引導(dǎo)讀者閱讀名為“應(yīng)用密碼學(xué)協(xié)議、算法及C源碼”的BruceSchneier編寫的教科書,第二版,1996年版權(quán)所有者John Wiley & Sons出版,通過引用將其結(jié)合在此。
圖1示出具有通過通信信道26耦合在解碼器24上的編碼器22的密碼系統(tǒng)20。該密碼系統(tǒng)20采用基于RSA算法的不對稱密碼學(xué)密碼。更具體地,該較佳系統(tǒng)為采用RSA陷門置換族的Bellare-Rogaway密碼系統(tǒng)。
通常,密碼學(xué)密碼采用包含四個素數(shù)p1、p2、q1與q2的秘密密鑰。這些素數(shù)相關(guān)如下p1=r1q1+1p2=r2q2+1其中r1與r2為隨機數(shù),它們受上式中它們的值得出素數(shù)p1與p2的要求的制約。
從該秘密密鑰生成公開密鑰。公開密鑰包含三個數(shù)n、e與g。數(shù)e為整數(shù),而數(shù)n與g的計算如下n=p1p2g=r3(p1-1)(p2-1)/q1q2modn其中r3是與隨機數(shù)r1與r2無關(guān)地選取的隨機數(shù)。雖然并非必要,隨機數(shù)r3與r1和r2不同。數(shù)g為階q1q2的Zn*的隨機元素。
編碼器22用由n、e及g構(gòu)成的公開密鑰將報文M編碼成密文C。廣義地說,密文C為報文M與數(shù)x的函數(shù),其中x具有Zn*中的階q1q2。數(shù)x導(dǎo)出如下x=gRmodn其中R為與隨機數(shù)r1與r2無關(guān)地選取的隨機數(shù)。雖然并非必要,隨機數(shù)R非??赡芘c隨機數(shù)r1與r2不同。密文C具有兩個分量,值V與值W。值V為數(shù)x的函數(shù),如下V=xe值W為值h1(x)與報文M的函數(shù),其中值h1(x)為數(shù)x的單向函數(shù)h1的結(jié)果。作為一個實例,該單向函數(shù)實現(xiàn)為散列函數(shù),諸如SHA(安全散列算法)。在一種實現(xiàn)中,值W用“異或”函數(shù)計算如下W=h1(x)_M然而只要該邏輯運算是可逆的,可采用值h1(x)與M的其它邏輯組合來取代“異或”函數(shù)。
編碼器22將值V與W組裝在一起而構(gòu)成密文C,并跨越通信信道26將其發(fā)送到解碼器24。解碼器24用秘密密鑰從值V中重新計算出數(shù)x,數(shù)x中包含公開密鑰加p1、p2、q1、q2如下
x=V(1/e)modq1q2modn一旦復(fù)原了數(shù)x,解碼器24從值W中恢復(fù)報文M如下M=W_h(x)=h(x)_M_h(x)=M上述并在系統(tǒng)20中使用的密碼學(xué)密碼的優(yōu)點在于與標準RSA密碼中的解密相比,其解密速度更快。其原因在于用在復(fù)原x中的運算“V(1/e)modq1q2modn”比用在傳統(tǒng)的RSA密碼中的對應(yīng)運算“C(1/e)mod(p1-1)(p2-1)modn”明顯地更快。
改進的解密速度是通過采用基于Zn*的子群中的取冪的陷門置換的新族達到的。上述密碼學(xué)碼利用Zn*的某一子群。更具體地,密碼利用Zn*的子群(它們是用g生成的)來計算x。這使得在解密方上的計算能具有Zn*中的階q1q2。
這一密碼學(xué)密碼的缺點在于與標準RSA算法中的加密相比加密過程較慢。這是因為新方案涉及在加密方上導(dǎo)出數(shù)x的增加的計算。通過只是有時而不是每一次都計算數(shù)x便能減少增加的計算的次數(shù)。下面更詳細地討論這一優(yōu)化。
總體上,這一密碼學(xué)密碼在速度上與RSA密碼大致相等。然而,在一些范圍中,它對于改進解密過程的速度是有利的,即使這種改進是以較慢的加密為代價的。例如,在客戶機一服務(wù)器角度上,在服務(wù)器上改進解密速度是有益的,即使它是以客戶機上較慢的加密為代價得來的??蛻魴C擁有充裕的時間來加密報文而較慢的速度是覺察不到的然而,在服務(wù)器上的解密速度的任何改進都是受到珍視的。
圖1的體系結(jié)構(gòu)代表在其中使用加密能力的許多不同環(huán)境。例如,在客戶機一服務(wù)器角度上,可在客戶機與服務(wù)器兩者上都實現(xiàn)編碼器22及解碼器24以便能使網(wǎng)絡(luò)上的通信安全,諸如LAN(局域網(wǎng))、WAN(廣域網(wǎng))、或因特網(wǎng),作為另一實例,在智能卡的角度上,編碼器22可實現(xiàn)在智能卡中而解碼器24則可實現(xiàn)在連通的代理商中(諸如計算機,ATM,電話亭,售貨機,顧客機等)。這里,信道26表示卡與代理商之間的電子接口。
為了繼續(xù)討論的目的,將密碼系統(tǒng)20描述成實現(xiàn)在通用計算機中的,諸如個人計算機、服務(wù)器、工作站、膝上型計算機等等。
圖2示出通用計算機30的示例性實現(xiàn)。計算機30包含處理單元32系統(tǒng)存儲器34及將包含系統(tǒng)存儲器34在內(nèi)的各種系統(tǒng)部件耦合在處理單元32上的系統(tǒng)總線36。系統(tǒng)總線36可以是若干類型的總線結(jié)構(gòu)中任何一種,其中包括存儲器總線或存儲器控制器、外圍設(shè)備總線及使用多種總線結(jié)構(gòu)中任何一種的局部總線。系統(tǒng)存儲器34包含只讀存器(ROM)38及隨機存取存儲器(RAM)40?;据斎?輸出系統(tǒng)42(BIOS)存儲在ROM38中。
計算機30還具有下述驅(qū)動器中一個或多個用于讀寫硬盤的硬盤驅(qū)動器44,用于讀寫可拆卸的磁盤48的磁盤驅(qū)動器46,及用于讀或?qū)懼T如CD ROM或其它光學(xué)介質(zhì)等可拆卸的光盤52的光盤驅(qū)動器50。硬盤驅(qū)動器44、磁盤驅(qū)動器46及光盤驅(qū)動器50分別用硬盤驅(qū)動器接口54、磁盤驅(qū)動器接口56、及光學(xué)驅(qū)動器接口58連接在系統(tǒng)總線36上。這些驅(qū)動器與它們所關(guān)聯(lián)的計算機可讀的介質(zhì)提供計算機可讀的指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊及用于個人計算機30的其它數(shù)據(jù)的非易失性存儲。
雖然描述了可拆卸的磁盤48及可拆卸的光盤52,熟悉本技術(shù)的人員應(yīng)理解也能用其它類型的計算機可讀的介質(zhì)來存儲數(shù)據(jù)。其它介質(zhì)包括盒式磁帶、快速存儲卡、數(shù)字視盤、Bernoulli盒式存儲器、隨機存取存儲器(RAM)、只讀存儲器(ROM)等等。
可將若干程序模塊存儲在硬盤、磁盤48、光盤52、ROM38或RAM40上。這些程序包含操作系統(tǒng)60、一或多個應(yīng)用程序62、其它程序模塊64及程序數(shù)據(jù)66。
用戶可通過諸如鍵盤68及鼠標器70等輸入設(shè)備輸入命令與信息到個人計算機30中。其它輸入設(shè)備(未示出)可包含麥克風、操縱桿、游戲盤、衛(wèi)星碟、掃描器等等。這些及其它輸入設(shè)備通常通過耦合在系統(tǒng)總線36上的串行端口接口72連接在處理單元32上,但也可用諸如并行端口、游戲端口、或通用串行總線(USB)等其它接口連接。
監(jiān)視器74或其它類型的顯示設(shè)備也通過諸如視頻適配器75等接口連接在系統(tǒng)總線36上。除了監(jiān)視器之外,個人計算機通常還包括諸如揚聲器與打印機等其它外圍輸出設(shè)備(未示出)。
服務(wù)器計算機30具有網(wǎng)絡(luò)接口或適配器78、調(diào)制解調(diào)器80或其它用于在網(wǎng)絡(luò)82(如LAN、因特網(wǎng)等)上建立通信的裝置。調(diào)制解調(diào)器80,可以是內(nèi)置或外置的,通過串行端口接口72連接在系統(tǒng)總線36上。
密碼系統(tǒng)20可作為軟件、固件或硬件實現(xiàn)在計算機30中。例如,編碼器22及解碼器24可實現(xiàn)在操作系統(tǒng)60、應(yīng)用程序62或程序模塊64(諸如DLL-動態(tài)鏈接庫)中。作為替代,編碼器22及解碼器24可實現(xiàn)在ROM38中。在又另一實施例中,編碼器22與解碼器24可實現(xiàn)在處理單元22內(nèi)。
圖3示出利用密碼系統(tǒng)20加密與解密報文的方法的示范步驟。如圖3中所圖示的,步驟100-106是由編碼器22執(zhí)行的而步驟108-114是由解碼器24執(zhí)行的。編碼器22知道從秘密密鑰導(dǎo)出的公開密鑰(即素數(shù)n、e與g)??蓪⑦@些密鑰存儲在存儲器或寄存器中。解碼器24知道秘密密鑰(即數(shù)p1、p2、q1與q2)。
在步驟100上,編碼器22計算作為g、階q1q2的Zn*的隨機元素的函數(shù)的數(shù)x。更具體地編碼器22計算x如下x=gRmodn其中R為一隨機數(shù)。
在步驟102上,編碼器編碼報文M產(chǎn)生密文C。這一編碼包含生成值V與W,其中V=xe而W=h1(x)_M。值h1(x)為數(shù)x的第一散列函數(shù)h1的結(jié)果。密文C包括值V與W。
在步驟104上,編碼器22計算另一散列值h2(x,M),這是數(shù)x與報文M的第二散列函數(shù)h2的結(jié)果。解碼器24用這一值來檢驗報文M是否已被改變或在編碼器與解碼器之間的路途上受到損害。在步驟106上,編碼器22在通信信道26上將密文C(即,V=xe及W=h1(x)_M)與第二散列值h2(x,M)傳輸給解碼器24。
在步驟108上,解碼器24接收密文C與第二散列值h2(x,M)。在步驟110上,解碼器24隨即從密文C的值V分量(即V=xe)中重新計算數(shù)x,如下x=V(1/e)moaq1q2modn一旦復(fù)原了數(shù)x,解碼器24用編碼器22所采用的同一第一散列函數(shù)h1計算散列值h1(x)。在步驟112上,解碼器24從密文C的值W分量中復(fù)原報文M,如下M=W_h1(x)在步驟114上,解碼器24取復(fù)原的數(shù)x與復(fù)原的報文M并用編碼器所采用的同一第二散列函數(shù)h2計算測試散列值h2’(x,M)。如果測試散列值h2’(x,M)等于從編碼器22接收的散列值h2(x,M),解碼器24確信報文M并未改變。
上述加密/解密過程可用下述偽代碼表示。在加密/解密步驟之前可執(zhí)行一次密鑰計算來建立密鑰值。密鑰可根據(jù)需要更新。
密鑰計算int e,r1,r2,r3prime int p1,p2,q1,q2p1←r1q1+1p2←r2q2+1n←p1p2g←r3(p1-1)(p2-1)/q1q2mod n加密Function E(M,V,W,HV)\*M是一個輸入?yún)?shù)*\\*V,W和HV是輸出參數(shù)*\int Rx←gRmod nV←xemod nW←h1(x)_MHV←h2(x,M)return V,W,HV解密Function D(V,W,HV,M)\*V,W和HV是輸入?yún)?shù)*\x←V(1/e)mod q1q2mod n.\*M是輸出參數(shù)*\M←W_h1(x)HVtest=h2(x,M)Compare HVtest=HVreturn M
在一種實現(xiàn)中,將整數(shù)“e”設(shè)定為2,從而陷門置換的新族是基于Zn*的子群的求平方的。
該密碼方案的缺點之一在于加密過程比傳統(tǒng)RSA加密慢,因為編碼器要計算作為Zn*的隨機元素的g的函數(shù)的數(shù)x。推導(dǎo)數(shù)x需要在傳統(tǒng)的RSA加密中沒有的附加計算。
改進加密階段的速度的一種方法是計算數(shù)x一次而在下一次加密中利用該舊數(shù)x生成新數(shù)x。具體地,改進包含為每一次新的加密改變數(shù)x,其方式為比為每一次新加密重新計算gRmod n有較低計算密集性。一種從舊數(shù)x生成新數(shù)x的方法如下x←xK exp(i),其中“k exp(i)”表示ki。
編碼器計算數(shù)x(即x=gRmod n)并將數(shù)x存儲在存儲器或寄存器中供以后使用。對于每一次以后的加密,編碼器通過計算xK exp(i)改變x,并選擇值“i”使得當x改變時值V保持不變。然后編碼器將值i連同值V一起發(fā)送給解碼器供在復(fù)原值x中使用。
這一在若干次加密上分攤計算值x的過程減少了在各編碼過程中的計算次數(shù)。密碼系統(tǒng)保持了編碼器的前面保密性,從而如果泄露了數(shù)x不會泄露過去的報文,但未來的報文可能泄露。編碼器可在任何時間間隔上或它認為必要的任何時間上完全重新計算數(shù)x。
上述密碼系統(tǒng)也能用來改進作為RSA的知名改進型的批量RSA的解密速度。密碼系統(tǒng)類似于上述的,但不同之處在于用來推導(dǎo)素數(shù)P1與P2的隨機數(shù)r1與r2進一步受到限制不被前b個素數(shù)除盡,其中b為解密批量大小。
對于批量RSA,數(shù)x仍導(dǎo)出如下
x=gRmod n然后計算值V如下V=xemod n其中e=第(i+1)個奇素數(shù)而i來自Zb。
在解密方上,值x復(fù)原如下x=V(1/e)mod q1q2mod n上述對批量RSA的修改能使解密更快,因為在批量逆運算期間,能將冪縮減成模q1q2。
雖然已用結(jié)構(gòu)特征與/或方法學(xué)步驟的特定語言描述了本發(fā)明,應(yīng)理解所附權(quán)利要求書中所定義的發(fā)明沒有必要限于這些描述的特定特征或步驟。反之,這些特定特征與步驟是作為實現(xiàn)所要求的發(fā)明的較佳方式公開的。
權(quán)利要求
1.在第一與第二計算單元之間的網(wǎng)絡(luò)上發(fā)送報文的系統(tǒng)中的一種方法,包括下述步驟(a)在第一計算單元上將報文M加密成密文C,其中密文C包含值V及值W,如下(1)值V為數(shù)x的函數(shù)V=xe,其中e為整數(shù)且x如下x=gRmod n,其中(ⅰ)n為數(shù)n=p1p2,其中p1與p2為素數(shù)且p1=r1q1+1及p2=r2q2+1,其中r1與r2為隨機數(shù)且q1與q2為素數(shù);(ⅱ)R為與隨機數(shù)r1與r2無關(guān)地選取的隨機數(shù);及(ⅲ)g為形式g=r3(p1-1)(p2-1)/q1q2modn的數(shù),其中r3為與隨機數(shù)r1,r2及R無關(guān)地選取的隨機數(shù);(2)值W為值h(x)與報文M的函數(shù),值h(x)為數(shù)x的單向函數(shù)的結(jié)果;(b)將密文C從第一計算單元發(fā)送到第二計算單元;以及(c)在第二計算單元上解密密文C來再生報文M,其中M為值W與值h(x)的函數(shù)且x是作為x=V(1/e)modq1q2modn導(dǎo)出的。
2.權(quán)利要求1中所述的方法,其中該加密步驟包括作為W=h(x)_M導(dǎo)出值的步驟。
3.如權(quán)利要求2中所述的方法,其中該解密步驟包括作為M=W_h(x)導(dǎo)出報文M的步驟。
4.如權(quán)利要求1中所述的方法,其中,其中整數(shù)e等于2。
5.權(quán)利要求1中所述的方法,其中該加密步驟包括從數(shù)x與報文M的散列函數(shù)h中計算散列值h(x,M)的步驟;該發(fā)送步驟包括將散列值h(x,M)連同密文C從第一計算單元發(fā)送到第二計算單元的步驟;以及該解密步驟包括從導(dǎo)出的數(shù)x與再生的報文M的散列函數(shù)h計算出測試散列值h’(x,M)及將從第一計算單元接收的散列值h(x,M)與測試散列值h’(x,M)進行比較來檢驗報文M是否曾被改變的步驟。
6.如權(quán)利要求1中所述的方法,其中該加密步驟包括下述步驟存儲數(shù)x;根據(jù)舊數(shù)x生成新數(shù)x;以及使用新數(shù)x加密下一個報文。
7.一種將報文M加密成密文C的方法,其中n為形式n=p1p2的數(shù),其中p1與p2為素數(shù)p1=r1q1+1且p2=r2q2+1,其中r1與r2為隨機數(shù)且q1與q2為素數(shù);及g為形式g=r3(p1-1)(p2-1)/q1q2modn的數(shù),其中r3為與隨機數(shù)r1與r2無關(guān)地選取的隨機數(shù);該方法包括下述步驟計算數(shù)x=gRmod n,其中R為與隨機數(shù)r1、r2與r3無關(guān)地選取的隨機數(shù);按照單向函數(shù)h變換數(shù)x產(chǎn)生值h(x);以及按照值h(x)的函數(shù)編碼報文M。
8.如權(quán)利要求7中所述的方法,其中該編碼步驟包括計算h(x)_M的步驟。
9.權(quán)利要求7中所述的方法,還包括從數(shù)x與報文M的散列函數(shù)h計算散列值h(x,M)的步驟。
10.權(quán)利要求7中所述的方法,還包括下述步驟存儲數(shù)x;根據(jù)舊數(shù)x生成新數(shù)x;以及利用新數(shù)x加密下一個報文。
11.一種計算機可讀的介質(zhì),包括用于執(zhí)行權(quán)利要求7中所述的方法中的步驟的計算機可執(zhí)行的指令。
12.一種以用于執(zhí)行權(quán)利要求7中所述的步驟的計算機可執(zhí)行的指令編程的計算機。
13.一種用于解密密文C來再生報文M的方法,其中n為形式n=p1p2的數(shù),其中p1與p2為素數(shù);p1=r1q1+1及p2=r2q2+1,其中r1與r2為隨機數(shù)且q1與q2為素數(shù);g為形式g=r3(p1-1)(p2-1)/q1q2modn的數(shù),其中r3為與隨機數(shù)r1與r2無關(guān)地選取的隨機數(shù);x為形式x=gRmodn的數(shù),其中R為與隨機數(shù)r1、r2及r3無關(guān)地選取的隨機數(shù);e為一整數(shù);及V為形式V=xe的值;該方法包括下述步驟從值V中復(fù)原數(shù)x,其中x=V(1/e)modq1q2modn;按照單向函數(shù)h變換數(shù)x以產(chǎn)生值h(x);以及按照值h(x)的函數(shù)解碼密文C來恢復(fù)報文M。
14.按照權(quán)利要求13中所述的方法,其中該解碼步驟包括計算C_h(x)的步驟。
15.如權(quán)利要求13中所述的方法,還包括從數(shù)x與恢復(fù)的報文M的散列函數(shù)h計算散列值h(x,M)的步驟。
16.一種包括用于執(zhí)行權(quán)利要求13中所述的方法中的步驟的計算機可執(zhí)行的指令的計算機可讀的介質(zhì)。
17.一種以用于執(zhí)行權(quán)利要求13中所述的方法中的步驟的計算機可執(zhí)行的指令編程的計算機。
18.在第一與第二計算單元之間的網(wǎng)絡(luò)上發(fā)送報文的系統(tǒng)中的一種方法,包括下述步驟(a)在第一計算單元上將報文M加密成密文C,其中該密文C包含值V與值W,如下(1)值V為數(shù)x的函數(shù)V=xe,其中e為選自前b個奇素數(shù)的整數(shù),而x如下x=gRmodn,其中(ⅰ)n為數(shù)n=p1p2,其中p1與p2為素數(shù)且p1=r1q1+1及p2=r2q2+1,其中q1與q2為素數(shù)且r1與r2為不被前b個奇數(shù)素數(shù)除盡的隨機數(shù);(ⅱ)R為與隨機數(shù)r1與r2無關(guān)地選取的隨機數(shù);及(ⅲ)g為形式g=r3(p1-1)(p2-1)/q1q2modn的數(shù),其中r3為與隨機數(shù)r1、r2及R無關(guān)地選取的隨機數(shù);(2)值W為值h(x)與報文M的函數(shù),值h(x)為數(shù)x的單向函數(shù)的結(jié)果;(b)將密文C從第一計算單元發(fā)送到第二計算單元;以及(C)在第二計算單元上解密密文C來再生報文M,其中M為值W與值h(x)的函數(shù)且x是作為x=V(1/e)modq1q2modn導(dǎo)出的。
19.在采用RSA陷門置換族的Bellare-Rogaway密碼系統(tǒng)中,通過用基于在Zn*的子群中取冪的陷門置換族取代RSA陷門置換族來改進解密的方法。
20.一種包括用于執(zhí)行權(quán)利要求19中所述的方法中的步驟的計算機可執(zhí)行的指令的計算機可讀的介質(zhì)。
21.一種從用于執(zhí)行權(quán)利要求19中所述的方法中的步驟的計算機可執(zhí)行的指令編程的計算機。
22.一種在通信信道上發(fā)送報文的系統(tǒng),包括將報文M變換成密文C并在通信信道上傳輸該密文C的編碼器,其中該密文C包含值V與值W,如下(1)值V為數(shù)x的函數(shù)V=Xe,其中e為整數(shù)而x如下x=gRmodn,其中(ⅰ)n為數(shù)=p1p2,其中p1與p2為素數(shù)且p1=r1q1+1及p2=r2q2+1,其中r1與r2為隨機數(shù),而q1與q2為素數(shù);(ⅱ)R為與隨機數(shù)r1與r2無關(guān)地選取的隨機數(shù);及(ⅲ)g為形式g=r3(p1-1)(p2-1)/q1q2modn的數(shù),其中r3為與隨機數(shù)r1、r2及R無關(guān)地選取的隨機數(shù);(2)值W為值h(x)與報文M的函數(shù),值h(x)為數(shù)x的單向函數(shù)的結(jié)果以及耦合成從通信信道接收密文C及值V并將密文C變換回報文M的解碼器,其中M為值W與值h(x)的函數(shù)且x是作為x=V(1/e)modq1q2modn導(dǎo)出的。
23.權(quán)利要求22中所述的系統(tǒng),其中該編碼器作為W=h(x)_M導(dǎo)出值W。
24.權(quán)利要求23中所述的系統(tǒng),其中該解碼器作為M=W_h(x)導(dǎo)出報文M。
25.權(quán)利要求22中所述的系統(tǒng),其中整數(shù)e等于2。
26.權(quán)利要求22中所述的系統(tǒng),其中編碼器從數(shù)x與報文M的散列函數(shù)h計算出散列值h(x,M)并連同密文C一起傳輸散列值h(x,M);以及解碼器從導(dǎo)出的數(shù)x與再生的報文M的散列函數(shù)h計算出測試散列值h’(x,M),并將從第一計算單元接收的散列值h(x,M)與測試散列值h’(x,M)比較來檢驗報文M是否已被改變。
27.權(quán)利要求22中的所述的系統(tǒng),其中該編碼器存儲數(shù)x,根據(jù)舊數(shù)x生成新數(shù)x,及用該新數(shù)x計算值V與W。
28.一種用于密碼系統(tǒng)的編碼器,其中n為形式n=p1p2的數(shù),其中p1與p2為素數(shù);p1=r1q1+1及p2=r2q2+1,其中r1與r2為隨機數(shù)且q1與q2為素數(shù);及g為形式g=r3(p1-1)(p2-1)/q1q2modn的數(shù),其中r3為與隨機數(shù)r1與r2無關(guān)地選取的隨機數(shù);該編碼器包括用于計算數(shù)x=gRmodn的裝置,其中R為與隨機數(shù)r1、r2及r3無關(guān)地選取的隨機數(shù);用于按照單向函數(shù)h變換數(shù)x來產(chǎn)生值h(x)的裝置;以及用按照值h(x)的函數(shù)編碼報文M的裝置。
29.如權(quán)利要求28中所述的編碼器,其中該編碼裝置按照h(x)_M編碼報文M。
30.如權(quán)利要求28中所述的編碼器,還包括用于存儲數(shù)x的裝置用于根據(jù)舊數(shù)x生成新數(shù)x的裝置;以及用于利用新數(shù)x導(dǎo)出值h(x)的裝置。
31.一種用于密碼系統(tǒng)的解碼器,其中n為形式n=p1p2的數(shù),其中p1與p2為素數(shù);p1=r1q1+1及p2=r2q2+1,其中r1與r2為隨機數(shù)且q1與q2為素數(shù)g為形式g=r3(p1-1)(p2-1)/q1q2modn的數(shù),其中r3為與隨機數(shù)r1與r2無關(guān)地選取的隨機數(shù);x為形式x=gRmodn的數(shù),其中R為與隨機數(shù)r1、r2與r3無關(guān)地選取的隨機數(shù);e為整數(shù);V為形式V=xe的值;及W為從報文M與值h(x)的函數(shù)導(dǎo)出的值,其中h(x)為單向函數(shù)h的結(jié)果;該解碼器包括用于接收值V與W的裝置;用于從值V復(fù)原數(shù)x的裝置,其中x=V(1/e)modq1q2modn;用于按照單向函數(shù)h變換數(shù)x來產(chǎn)生值h(x)的裝置;以及用于按照值h(x)的一個函數(shù)解碼值W來恢復(fù)報文M的裝置。
32.權(quán)利要求31中所述的解碼器,其中該解碼裝置計算函數(shù)W_h(x)來恢復(fù)報文M。
33.權(quán)利要求31中所述的解碼器,還包括用于從數(shù)x與恢復(fù)的報文M的散列函數(shù)h計算散列值h(x,M)的裝置。
34.一種用于在通信信道上發(fā)送報文的系統(tǒng),包括將報文M變換成密文C及在通信信道上傳輸密文C的編碼器,其中密文C包含如下的值V與值W(1)值V為數(shù)x的函數(shù)V=xe,其中e為選自前b個奇素數(shù)的整數(shù),而x如下x=gRmodn,其中(ⅰ)n為數(shù)n=p1p2,其中p1與p2為素數(shù)且p1=r1q1+1及p2=r2q2+1,其中q1與q2為素數(shù)及r1與r2為不能被前b個奇素數(shù)除盡的隨機數(shù);(ⅱ)R為與隨機數(shù)r1與r2無關(guān)地選取的隨機數(shù);及(ⅲ)g為形式g=r3(p1-1)(p2-1)/q1q2modn的數(shù),其中r3為與隨機數(shù)r1、r2及R無關(guān)地選取的隨機數(shù);(2)值W為數(shù)值h(x)與報文M的函數(shù),值h(x)為數(shù)x的單向函數(shù)的結(jié)果;(3)耦合成從通信信道接收報文C與值V并將密文C變換回報文M的解碼器,其中M為值W及值h(x)的函數(shù)而是x作為x=V(1/e)modq1q2modn導(dǎo)出的。
35.一種采用RSA陷門置換族的Bellare-Rogaway密碼系統(tǒng),其特征在于用基于Zn*的子群中的取冪的陷門置換的族取代RSA陷門置換族。
36.一種具有指導(dǎo)計算機將報文M加密成密文C的計算機可執(zhí)行的指令的計算機可讀的介質(zhì),其中n為形式n=p1p2的數(shù),其中p1與p2為素數(shù);p1=r1q1+1及p2=r2q2+1,其中r1與r2為隨機數(shù)且q1與q2為素數(shù);及g為形式g=r3(p1-1)(p2-1)/q1q2modn的數(shù),其中r3為與隨機數(shù)r1、r2及R無關(guān)地選取的隨機數(shù);該計算機可讀的介質(zhì)包括指導(dǎo)計算機計算數(shù)x=gRmodn的計算機可執(zhí)行的指令,其中R為與隨機數(shù)r1、r2及r3無關(guān)地選取的隨機數(shù);指導(dǎo)計算機按照單向函數(shù)h變換數(shù)x來產(chǎn)生值h(x)的計算機可執(zhí)行的指令;以及指導(dǎo)計算機按照值h(x)的函數(shù)編碼報文M的計算機可執(zhí)行的指信。
37.權(quán)利要求36中所述的計算機可讀的介質(zhì),還包括指導(dǎo)計算機按照函數(shù)h(x)_M編碼報文M的計算機可執(zhí)行的指令。
38.權(quán)利要求36中所述的計算機可讀的介質(zhì),還包括指導(dǎo)計算機存儲數(shù)x,根據(jù)舊數(shù)x生成新新x及利用該新數(shù)x導(dǎo)出值h(x)的計算機可執(zhí)行的指令。
39.一種編程成執(zhí)行在權(quán)利要求36中所述的計算機可讀的介質(zhì)上所體現(xiàn)的計算機可執(zhí)行的指令的處理器。
40.一種具有指導(dǎo)計算機解密密文C以復(fù)原報文M的計算機可執(zhí)行的指令的計算機可讀的介質(zhì),其中n為形式n=p1p2的數(shù),其中p1與p2為素數(shù);p1=r1q1+1及p2=r2q2+1,其中r1與r2為隨機數(shù)且q1與q2為素數(shù)g為形式g=r3(p1-1)(p2-1)/q1q2modn的數(shù),其中r3為與隨機數(shù)r1、r2及R無關(guān)地選取的隨機數(shù);x為形式x=gRmodn的數(shù),其中R為與隨機數(shù)r1、r2與r3無關(guān)地選取的隨機數(shù);e為整數(shù);及V為V=xe形式的值;該計算機可讀的介質(zhì)包括指導(dǎo)計算機從值V復(fù)原數(shù)x的計算機可執(zhí)行的指令,其中x=V(1/e)modq1q2modn;指導(dǎo)計算機按照單向函數(shù)n變換數(shù)x以產(chǎn)生h(x)的計算機可執(zhí)行的指令;以及指導(dǎo)計算機按照函數(shù)h(x)解碼密文C以恢復(fù)報文M的計算機可執(zhí)行的指令。
41.權(quán)利要求40中所述的計算機可讀的介質(zhì),還包括指導(dǎo)計算機按照函數(shù)C_h(x)解碼密文C的計算機可執(zhí)行的指令。
42.權(quán)利要求40中所述的計算機可讀的介質(zhì),還包括指導(dǎo)計算機從數(shù)x與恢復(fù)的報文M的散列函數(shù)h計算散列值h(x,M)的計算機可執(zhí)行的指令。
43.一種編程成執(zhí)行在權(quán)利要求40中所述的計算機可讀的介質(zhì)上體現(xiàn)的計算機可執(zhí)行的指令的處理器。
全文摘要
一種通過利用Zn
文檔編號H04L9/30GK1281607SQ9881189
公開日2001年1月24日 申請日期1998年9月16日 優(yōu)先權(quán)日1997年10月20日
發(fā)明者戴威 申請人:微軟公司