專利名稱:包括加密及解密系統(tǒng)的密碼系統(tǒng)及密鑰保管系統(tǒng)和相關(guān)的裝置及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及包括加密及解密的密碼系統(tǒng)及密鑰保管系統(tǒng),和相關(guān)的裝置及設(shè)備。
本發(fā)明尤其是設(shè)計用于芯片卡、PCMCIA卡、標(biāo)簽、無觸點卡類型的電子系統(tǒng)或任何另外的便攜式裝置。
現(xiàn)今具有公用密鑰的大多數(shù)密碼系統(tǒng)(也稱非對稱密碼系統(tǒng))使用了RSA加密算法,它是在1978年由R.Rivest,A.shamir及L.Adleman發(fā)表的并繼而以《密碼通信系統(tǒng)及方法》的名稱獲得專利,其專利號為US 4,405,829。
除系統(tǒng)RSA以外,很少具有用公用密鑰加密的實際系統(tǒng)和方法。但存在另一種較不著稱及使用相對少的系統(tǒng),它涉及以標(biāo)題《公用密鑰密碼系統(tǒng)及基于離散對數(shù)的特征方案》發(fā)表在IEEE信息理論會利,1985年第IT-31卷第4期,第469-472頁上的E1-Gamal系統(tǒng)。
一個RSA或E1-Gamal密碼實際上是在計算機中由二進制或十六進制數(shù)字鏈表示的一個大數(shù)目。在處理所有可存取的參數(shù)的應(yīng)用前,可借助軟件計算資源(程序)和/或使用一系列計算規(guī)則的硬件(電子電路)來計算密碼,以便隱蔽被處理數(shù)據(jù)的內(nèi)容??捎媚M方式,借助軟件計算資源或使用應(yīng)用于所有秘密、公開參數(shù)及密碼的一系列計算規(guī)則的硬件(解密碼算法)來對密碼解碼。
加密系統(tǒng)或方法使用一種公用密鑰來產(chǎn)生密碼。而解密方法使用一種不公開的密鑰,該密鑰相應(yīng)于總之無法被識別的秘密密鑰。一種便攜式電子裝置、例如智能卡的用戶具有一對密鑰(稱為公用密鑰及秘密密鑰)。并假定,公用密鑰是所有用戶公知的,而秘密密鑰從不公開。所有的人能夠使用用戶的公用密鑰來加密該用戶的信息,但這些密碼不能被解碼,除非使用該用戶的秘密密鑰。
以下將以說明的方式描述公知的RSA算法的原理。
RSA參數(shù)為①兩個長度至少等于256位(bit)的秘密質(zhì)數(shù)p及q。這些質(zhì)數(shù)是以一種特定方式產(chǎn)生的,其詳情對于理解本發(fā)明并非必須的,但可以參考著作《應(yīng)用密碼、算法、協(xié)議及源碼》Bruce Schneier著(MarcVauclair的譯本),Thomson出版社出版。
②一個公用模數(shù)n=pq。
③一對指數(shù),記為{e、d},e為公開指數(shù)及d為秘密指數(shù),如ed=1 mod(p-1)(q-1)。
稱為《加密指數(shù)》的指數(shù)e是安全可得到的,而《解密指數(shù)》d是保密的。
為了對信息m加密,發(fā)送機計算密碼c=memod n,及接收機或檢驗裝置通過計算m=cdmod n來解密。
E1-Gamal算法其本身的原理不太復(fù)雜及對于理解本發(fā)明并無特殊幫助。
本發(fā)明涉及一種密碼系統(tǒng),它包括作為RSA方法及E1-Gamal方法變型的具有交替公用密鑰的加密-解密系統(tǒng)及一個密鑰保管系統(tǒng)(英語通常稱為《Keyescrow》)。
根據(jù)本發(fā)明,提供了一種與所謂離散對數(shù)及因數(shù)分解原理相結(jié)合的密碼系統(tǒng),其中包括公用密鑰及一個秘密密鑰,其特征在于,所述公用密鑰至少包括a.一個長度大于640位(bit)的模數(shù)RSA n,它具有以下特性n=(ApA+1)×(BpB+1)式中pA及pB是長度大于320位(bit)的質(zhì)數(shù),(ApA+1)是一個記為p的RSA質(zhì)數(shù),(BpB+1)是一個記為q的RSA質(zhì)數(shù),A是K/2(K是包括在10及120之間的一個偶整數(shù))個長度相對小(在2及6位之間)的質(zhì)數(shù)(記為p〔i〕,i=1至K/2)的乘積,及B是K/2個質(zhì)數(shù)(也記為p〔i〕,i=K/2+1至K)的乘積;p〔i〕的長度相對小(在2及16位之間),并同樣互為質(zhì)數(shù);b.一個冪的底數(shù)g,其量級為φ(n)/4(其中φ(n)為歐拉指示函數(shù)),因此g不會成為任何數(shù)的第p〔i〕次冪的模n(modulo n)。
更確切地,本發(fā)明涉及一種密碼系統(tǒng),它包括至少一個加密-解密系統(tǒng),其特征在于一個信息m的加密由以下操作形成,m<AB
C=gmmod n式中C表示密碼(加密信息)。
優(yōu)選地,根據(jù)本發(fā)明的密碼系統(tǒng)其特征在于m的完整性可由m/h(m)的加密(h表示一個截斷函數(shù)及1表示鏈接)或由DES(cle′、m)的加密來保證,《cle′》是一個完全可取得的密鑰。
本發(fā)明同樣旨在描述一種保管系統(tǒng)。根據(jù)本發(fā)明,譯碼器的所述秘密密鑰或保管核心是數(shù)φ(n),及解密操作或恢復(fù)用戶識別的操作在于以下步驟a.對于從1至K的i計算y〔i〕=cφ(n)/p〔i〕mod n;b.對于從1至K的i,對于1至p〔i〕的j,比較y〔i〕與m無關(guān)的值gjφ(n)/p〔i〕mod n,如果gjφ(n)/p〔i〕mod n=y(tǒng)〔i〕,則賦予μ〔i〕=j(luò),c.根據(jù)TRC中國余數(shù)定理及值μ〔i〕重組信息m。
根據(jù)一個實施變型,通過以下計算可加速所述譯碼器對量y〔i〕的計算a)z=crmod n,其中r=pApB,b)對于從1至K的i,計算y〔i〕=ZAB/p〔i〕mod n,以便利用AB/p〔i〕及φ(n)/p〔i〕之間的長度差別來加速計算。
根據(jù)本發(fā)明的另一變型,譯碼器將一勞永逸地對于1≤i≤k及1≤j≤p〔i〕預(yù)計算及保存值gjφ(n)/p〔i〕mod n的表格,或更專門地,這些值的截斷值或散列值(記為h)具有以下特性h(gjφ(n)/p〔i〕mod n)≠h(gj′φ(n)/p〔i〕mod n),如果j≠j′的話。
因此,這就一方面避免了對于每個I對量gjφ(n)/p〔i〕mod n的全新計算,另一方面可對特別長的值進行存儲。
根據(jù)本發(fā)明的另一優(yōu)選實施方式,譯碼器通過分開地先解碼信息模p然后解碼模q及借助中國余數(shù)定理組合結(jié)果模,以重新獲得m。
保管系統(tǒng)是由以下的功能步驟來實現(xiàn)的a.保管權(quán)威機構(gòu)通過計算e(ID)=∏ p〔i〕ID〔i〕(對于從1至K的i計算積)對用戶的識別碼ID=∑2i-1ID〔i〕編碼,其中ID〔i〕是系統(tǒng)中該用戶的識別碼位(對于從1至K的i計算和);b.它向用戶輸出一個E1-Gamal密鑰(這就是說,一個冪的底數(shù))C=gc(ID)umod n,其中u是一個隨機的大質(zhì)數(shù)或具有φ(n)的質(zhì)數(shù);
c.它也可以通過選擇一個隨機數(shù)x及通過自乘C到x模n次冪使用戶從C的求導(dǎo)得到其E1-Gamal公用密鑰;d.為了重新找到用戶的蹤跡,權(quán)威機構(gòu)從編碼器的E1-Gamal密碼中提取下列部分(所述密碼總是包括兩部分)V=crmod n式中r是由編碼器選擇的編碼隨機量;e.知道φ(n)后,所述權(quán)威機構(gòu)由下列算法求出位ID〔i〕①對于從1至K的i計算y〔i〕=Vφ(n)/p〔i〕mod n,②如果y〔i〕=1,則μ〔i〕=1,否則μ〔i〕=0,③計算ID′=∑2i-1μ〔i〕,④求出ID=CCE(ID′),式中CCE表示一種(選擇的)糾錯機制(其類型為著作《碼糾錯器,理論與實踐》,A.Poli及L.Huguet著,Masson出版社,中所述的類型),它用于對在非法使用組合r的情況下導(dǎo)入的干擾進行糾偏。
所提出的另一種保管系統(tǒng)是基于Diffie-Hellman的所謂密鑰交換機制,其中用戶之一通過自乘g到a模n隨機次冪獲得的數(shù)C被所述保管權(quán)威機構(gòu)截取C=gamod n所述保管權(quán)威機構(gòu)以再下列方式示出aa.知道n的因數(shù)分解后,所述權(quán)威機構(gòu)借助于解碼的算法求出值α=a mod AB或a=α+βAB;b.所述權(quán)威機構(gòu)計算λ=c/gamod n=gβABmod n;c.通過使用密碼分析算法(離散對數(shù)計算法,可能執(zhí)行兩次(模p及模q)以便加速運算),權(quán)威機構(gòu)計算離散對數(shù)βλ=(gAB)βmod n;d.所述權(quán)威機構(gòu)求出a=α+βAB并基于使用a,解碼通信信息。
根據(jù)本發(fā)明的另一實施例,模數(shù)RSA n為三個因數(shù)的乘積n=(ApA+1)×(BpB+1)×(CpC+1)
式中pA、pB、pC為長度大于320位的質(zhì)數(shù),(ApA+1)、(BpB+1)、(CpC+1)為RSA質(zhì)數(shù),分別記為p、q、r,A、B及C各是K/3個質(zhì)數(shù)(記為p〔i〕,i=1至K)的乘積,p〔i〕的長度相對小(在2至16位之間)并互為質(zhì)數(shù),及K是包括在10及120之間的一個整數(shù),因此乘積ABC至少為160位。
該實施例對于加速解碼的運算是有利的。為了加速這些計算,解碼器執(zhí)行mod p mod q mod r的運算。如果n為640位,分割成三個因數(shù)將使這些因數(shù)的長度更小。
本發(fā)明優(yōu)先地設(shè)計用于加密、解密及密鑰的保管裝置中,例如它們?yōu)橛嬎銠C、芯片卡、PCMCIA卡、標(biāo)簽、無觸點卡及其它的便攜裝置。
本發(fā)明也涉及一種設(shè)備,它包括一個密碼系統(tǒng),其特征在于它包括一個加密系統(tǒng)和/或一個解密系統(tǒng)和/或一個密碼保管系統(tǒng),所述這些系統(tǒng)通過交換電子信號或通過對無線電波或紅外信號交換在它們之間進行通信。
為了更好地理解本發(fā)明,需要進行以下的說明。
本發(fā)明的加密方法可分為三個不同階段產(chǎn)生密鑰,產(chǎn)生密碼,及對密碼解碼。
以下,我們使用傳統(tǒng)的(符號表示)方式φ(n)表示歐拉指示函數(shù),φ(n)也確定為當(dāng)n=n1×n2×n3×…×nk-1×nk,其中n1、n2、n3、…nk-1、nk為質(zhì)數(shù),則有φ(n)=(n1-1)×(n2-1)×(n3-1)×…(nk-1-1)×(nk-1)。
為了很好地理解本發(fā)明,首先,必須描述密鑰的產(chǎn)生。
為了產(chǎn)生密鑰,密碼接收機隨機地選擇兩個各約有K/2個不同小質(zhì)數(shù)p〔i〕的集GA及GB(K是10至120量級的系統(tǒng)參數(shù)),并構(gòu)成以下兩個數(shù)(其長度近似相同)A=屬于集GA的p〔i〕的乘積B=屬于集GB的p〔i〕的乘積為了安全的緣故,可以適當(dāng)?shù)剡@樣規(guī)定GA及GB1.GA∩GB是零集,2.某些p〔i〕未出現(xiàn)在GA∪GB中。
即使條件2不能被滿足,本發(fā)明的方法也被證實是可靠的(盡管某些規(guī)定不太復(fù)雜)。如果條件1不能被滿足,該方法也同樣被證實是可靠的,但是密鑰產(chǎn)生算法及解碼算法應(yīng)作相應(yīng)改變,并變得顯著的復(fù)雜。并且,p〔i〕可能為非質(zhì)數(shù),而彼此互質(zhì)(例如二或三個字節(jié)的質(zhì)數(shù)的整數(shù)冪)。
為了簡化說明,我們將p〔i〕表示為第i個奇質(zhì)數(shù)p〔1〕=3、p〔2〕=5、p〔3〕=7…。
在以下還假設(shè),A是由對于1至K/2的i的p〔i〕乘積直接形成的,及B是由對于K/2+1至K的i的p〔i〕乘積形成的。但是,這不是最好可能的選擇,而僅應(yīng)理解為一種傳統(tǒng)的符號表示方式。
然后,密碼接收機產(chǎn)生兩個大質(zhì)數(shù)(通常為200至512位的量級),記為pA及pB,例如p=ApA+1及q=BpB+1為RSA質(zhì)數(shù)(RSA質(zhì)數(shù)是這樣的數(shù),一旦相乘,其乘積n=pq很難被因數(shù)分解)。
為了保證安全,顯然最好對不同參數(shù)規(guī)定最小長度1-乘積AB應(yīng)至少為160位量級的數(shù);2-每個數(shù)pA、pB的長度應(yīng)超過至少160位的乘積AB;3-數(shù)n=p×q的長度應(yīng)至為640位。
這些質(zhì)數(shù)產(chǎn)生的程序不在本發(fā)明的范圍內(nèi),并顯然地是該領(lǐng)域的技術(shù)人員熟知的。
最后,信息接收機產(chǎn)生及發(fā)出量級為φ(n)/4的一個元g。
對于這樣一個g應(yīng)強制地用以下條件檢驗對于所有的i,不存在使g=xp〔i〕mod n的x。
可借助以下的方法計算g*計算g的(快速)第一方法為信號接收機產(chǎn)生兩個整數(shù)gp,量級為(p-1)/2 modulo pgq,量級為(q-1)modulo q如上所述,gp的產(chǎn)生實際上與一個數(shù)的產(chǎn)生相同,該數(shù)對于所有小于k/2的i不是第p〔i〕的冪;對于gq也是一樣,并具有以下明顯顯的修改1.確定x0=1ti=1tI=對于從1至i-1的j的p〔j〕的乘積2.對于從1至k/2的所有i取一個隨機數(shù)x使x數(shù)ti次乘方如果x(p-1)/p〔i〕=1,試驗另一個x否則,計算xi=x(xi-1)p〔i〕3.確定gp=Xk/24.確定x0=1ti=1ti=對于從1至i-1的j的p〔j〕的乘積5.對于從1至K/2的所有i取一個隨機數(shù)x使x數(shù)ti次乘方如果x(q-1)/p〔i〕=1,試驗另一個x否則計算xi=〔xi-1〕p〔i〕6.確定gq=xk7.運用中國余數(shù)方法(在下列說明中表示為TRC,“Me′thode desRestes Chinois”的縮寫),即在書籍《數(shù)字理論及密碼數(shù)程》(NealKoblitz著,第二版,Springer出版社)中描述的一種方法來由gp和gq構(gòu)成g。這了得到最后的g,必須使數(shù)字積平方。
應(yīng)當(dāng)指出,該算法(其細節(jié)對于理解本發(fā)明并不需要)的每個步驟用于確定一個元,該元不是對于小于或等于i的j的第p〔j〕次冪。
*計算g的(簡單)第二方法該替換方案為,隨機地選擇一個g及檢驗這個g不是第p〔j〕次冪mod n。精確的計算表明,這個g將在ln(k)次隨機抽取后被找到(即對于K=120約有5次機會)。
為了根好地理解本發(fā)明,現(xiàn)在需要描述密碼的產(chǎn)生。
一個小于乘積AB的信息的密碼c可由下列公式計算c=gmmod n現(xiàn)在,本發(fā)明的說明將指向?qū)γ艽a解碼的描述。
為了求出m,解碼器執(zhí)行以下操作①對于從1至K的i計算y〔i〕=cφ(n)/p〔i〕mod n,或m〔i〕=mmod p〔i〕及m′=(m-m〔i〕)/p〔i〕通過替代,容易看出y〔i〕=cφ(n)/p〔i〕mod n=gmφ(n)/p〔i〕mod n=g(m〔i〕+m′p〔i〕φ(n)/p〔i〕mod n=gm〔i〕φ(n)/p〔i〕gm′φ(n)mod n=gm〔i〕φ(n)/p〔i〕mod n②對于從1至K的i作出對于從1至p〔i〕的j作出如果gjφ(n)/p〔i〕mod n=y(tǒng)〔i〕,賦予mi=j(luò)③求出m=TRC(m1、m2、…、mk)。
解碼的算法可用各種方式來改善通常,可以對在解碼過程中所需的變量i及j的所有值預(yù)計算gj φ(n)/p〔i〕mod n,并制成表格。并且這樣一個表格可被切割或截斷,只要切割或截斷的方法(記為h)能保證h〔gjφ(n)/p〔i〕mod n〕≠h〔gj′φ(n)/p〔i〕mod n〕,如果j≠j′。
借助這種實施方式,可以證實,20字節(jié)的信息可通過K=30被解碼(積AB則為160位,模n為80字節(jié)及表格為4kilo字節(jié))。
如在以上《密鑰的產(chǎn)生》部分所描述的,選擇16個10位的質(zhì)數(shù)來取代30個質(zhì)數(shù)p〔i〕(K值則為16),是更合理的。如果具有75個這樣的質(zhì)數(shù),約有252.9種可能的選擇,但不必公開所選擇的質(zhì)數(shù),盡管這不會增加附加的安全性。
也可以選擇互質(zhì)的數(shù);例如質(zhì)數(shù)的冪,這可以增加這些參數(shù)選擇的范圍。
第二種實施方式可通過在收到密碼開始計算下列量Z=crmod n,式中r=PAPB因此可以通過取以下計算的捷徑使量y〔i〕的計算更容易y〔i〕=ZAB/p〔i〕mod n,并利用AB/p〔i〕及φ(n)/p〔i〕之間長度的差加速冪的計算。
第三種實施方式通過分別地先解碼信息模p然后解碼模q(p及q的長度是n長度的一半,解碼將加速兩倍)及組合結(jié)果模φ(n)來加速解碼。
這種類型的解碼方法可這樣地描述①對于從1至K/2的i計算y〔i〕=cφ(p)/p〔i〕mod n或m〔i〕=m mod p〔i〕及m′=(m-m〔i〕)/p〔i〕通過替代,容易看出y〔i〕=cφ(p)/p〔i〕mod p=gmφ(p)/p〔i〕mod p=g(m(i)+m′p〔i〕φ(p)/p〔i〕mod p=gm(i)φ(p)/p〔i〕gm′φ(p)mod p=gm(i)φ(p)/p〔i〕mod p②對于從1至K的i作出對于從1至p〔i〕的j作出如果gjφ(p)/p〔i〕mod p=y(tǒng)〔i〕,賦予μ〔i〕=j(luò)③求出m=TRC(μ〔1〕mod p〔1〕,…μ〔k/2〕mod p〔k/2〕)④以q取代p重復(fù)步驟{①,②,③}⑤計算m=TRC(m modφ(p),m modφ(q))。
顯然,在使用本發(fā)明推薦的方法編碼f(cle′、m)時,必須防止m被操作,其中f是一個對稱加密函數(shù)(例如DES算法),而參數(shù)《cle′》是完全可以得到的。換一種方式,該加密方法可檢驗所獲得的信息m正是其密碼為c的信息。另一種保護m的方式是通過所推薦的方法對m/hash(m)加密(這就是說c=gm/hash(m)mod n),式中hash(m)為信息m的散列,及1表示鏈接(在此情況下,解碼檢驗由其散列計算所獲得的信息的完整性)。
也可以將上述密碼系統(tǒng)擴展到模n不是由兩個而是由三個因數(shù)組成的情況。我們則有n=pqr式中p=ApA+1、q=BpB+1、r=CpC+1,pA、pB、pC是三個大質(zhì)數(shù)(200至512位),及A、B、C的各個是來自集GA、GB、GC的不同小奇質(zhì)數(shù)的乘積。
它所帶來的變化對于本領(lǐng)域的技術(shù)人員來說是顯而易見的。
此外,顯然可以對以上密鑰產(chǎn)生描述部分的第二條件(這里仍為《某些p〔i〕不出現(xiàn)在GA∪GB∪GC中》稍微放寬。這就是,參數(shù)n為640位,積ABC為160位及每個p〔i〕相應(yīng)為160位中的一些偏差仍能保證適當(dāng)?shù)陌踩浴?br>
本發(fā)明的第二目的在于提供一種改進的密鑰保管系統(tǒng),它是對由Y.Desmedt在文章《密碼文本可跟蹤性的保安-導(dǎo)致安全軟件密鑰保管系統(tǒng)》(Proceedings of Eurocrypt`95,Lecture Notes inComputer Science 921)中所述的并被L.Knudsen及T.Pedersen在文章《論軟體密鑰保管的困難》(Proceedings of Eurocrypt′96,Lecture Notes in Computer Science 1070)中所述的評論所完善的一種方法的改善。
為了對由Y.Desmedt提出的密鑰保管功能有顯著的改善,我們考慮加密方法的一種變型即,每個用戶的識別碼ID以二進制方式編碼ID=∑2i-1ID〔i〕其中ID〔i〕是密鑰保管系統(tǒng)用戶識別碼的位(對于1至k的i取其和);及e(ID)=∏p〔i〕ID〔i〕(對于1至k的i取其積)。
最后有c=ge(ID)umod n,其中,u為一個隨機大質(zhì)數(shù),c是用戶參數(shù),其作為E1-Gamal密碼中冪的底數(shù)。用戶由c并通過選擇一個隨機數(shù)x及自乘c到x模n次冪得到他的E1-Gamal公用密鑰。
為了跟蹤用戶,所述保管中心從用戶E1-Gamal密碼中抽取以下部分V=crmod n式中r是由用戶選擇的編碼隨機數(shù)。
知道了φ(n)后,所述保管中心根據(jù)下列算法求出位ID〔i〕①對于1至k的i計算y〔i〕=vφ〔n〕/p〔i〕mod n,②對于1至k的i作出對于1至p〔i〕的j作出如果y〔i〕=1,則將μ〔i〕賦于1,否則,將μ〔i〕賦于0。
③計算ID′=∑2i-1u〔i〕,④求出ID=CCE(ID′)式中CCE表示一種糾錯機制(其類型為A.Poli及L.Huguet著,Masson出版社出版的《糾碼器,理論及實踐》一書中所述的類型),用于對在非法使用組合r的情況下導(dǎo)入的干擾進行糾偏。該糾錯機制在這里可被省略;而跟蹤用戶的算法應(yīng)經(jīng)受對本領(lǐng)域技術(shù)人員顯而易見的修改,及使用多個類似于crmod n的量,它們相應(yīng)于E1 Gamal加密算法的多次執(zhí)行。
本發(fā)明的第三目的在于提出第二種密鑰保管系統(tǒng),它基于US4200770中一種被專利保護的Diffie Hellman所述的密鑰交換機制。
在該體系中,由用戶之一通過自乘g到a模n隨機次冪獲得的數(shù)c被保管權(quán)威機構(gòu)截取c=gamod n。
所述保管權(quán)威機構(gòu)以下列方式求出a1.知道n的因數(shù)分解后,所述權(quán)威機構(gòu)借助于解碼算法求出值α=a mod AB或a=α+βAB;2.權(quán)威機構(gòu)計算λ=c/gαmod n=gβABmod n(因為c=gamod n=gα+βABmod n=gαgβABmod n);3.通過使用密碼分析算法(離散對數(shù)計算法,可能執(zhí)行兩次(模p及模q)以及加速運算),權(quán)威機構(gòu)計算離散對數(shù)β;λ=(gAB)βmod n;4.權(quán)威機構(gòu)求出a=α+βAB并基于使用a對通信信息解碼。
在閱讀了以下的說明及附圖后將會更好地理解本發(fā)明;其附圖為—
圖1表示實施本發(fā)明提出的系統(tǒng)的加密系統(tǒng)組織機構(gòu)圖;—圖2表示實施本發(fā)明提出的系統(tǒng)的解密系統(tǒng)組織機構(gòu)圖;—圖3表示在信息m的保安傳輸期間加密系統(tǒng)及解密系統(tǒng)之間傳輸?shù)臄?shù)據(jù)。
根據(jù)本發(fā)明,每個加密裝置(通常為一個計算機或一張芯片卡)由一個處理單元(CPU),通信接口,一個隨機存取存儲器(RAM)和/或一個只讀存儲器(ROM)和/或一個可寫入(通常,可重寫)存儲器(硬盤、軟盤、EPROM或EEPROM)組成。
該加密裝置的CPU和/或ROM中裝有與密碼產(chǎn)生規(guī)則相應(yīng)的程序或計算資源(乘法、乘方及求簡模)。這些運算中的某些可以再組合(例如,求簡??芍苯拥亟Y(jié)合在乘法運算中)。
類似于RSA的實施方式,RAM通常包括將對其施以加密的信息m及用于產(chǎn)生密碼的規(guī)則。軟硬盤,E(E)PROM中至少包括參數(shù)n及g,其產(chǎn)生及使用如以下的說明。
CPU通過地址及數(shù)據(jù)總線控制通信接口,存儲器的讀及寫操作。
每個解密裝置(等同于密鑰保管裝置)必需使用軟或硬件的保護來抵御外界。這種保護應(yīng)足以防止未被授權(quán)的實體獲得由n的秘密因數(shù)構(gòu)成的秘密密鑰?,F(xiàn)今在硬件方面使用最多的技術(shù)是在保安組件中的芯片及芯片設(shè)備中集成能檢測溫度、光線變化的裝置及能檢測異常時鐘頻率和電壓的裝置。同樣可使用尤其如,使存取器的存取混合的軟件技術(shù)。
根據(jù)本發(fā)明,解密裝置至少由一個處理單元(CPU)及存儲器資源(RAM、ROM、EEPROM或盤)。
CPU通過地址及數(shù)據(jù)總線控制通信接口,存儲器的讀及寫操作。RAM、EEPROM或盤包含參數(shù)φ(n),或至少包括φ(n)的因數(shù)。
解密裝置的CPU和/或ROM包括能執(zhí)行上述解密方法各個步驟的計算程序或資源(乘法、取冪及求簡模)。這些運算中的某些可以再組合(例如求簡模可直接地結(jié)合在乘法運算中)。
在本發(fā)明總的范圍內(nèi),信息m的加密是通過在卡、標(biāo)簽裝置及驗證裝置之間至少交換數(shù)據(jù)c來實現(xiàn)的。
權(quán)利要求
1.一種與所謂離散對數(shù)及因數(shù)分解原理相結(jié)合的密碼系統(tǒng),其中包括公用密鑰及一個秘密密鑰,其特征在于,所述公用密鑰至少包括a.一個長度大于640位(bit)的模數(shù)RSA n,它具有以下特性n=(ApA+1)×(BpB+1)式中pA及pB是長度大于320位(bit)的質(zhì)數(shù),(ApA+1)是一個記為p的RSA質(zhì)數(shù),(BpB+1)是一個記為q的RSA質(zhì)數(shù),A是k/2(k是包括在10及120之間的一個偶整數(shù))個長度相對小(在2及6位之間)的質(zhì)數(shù)(記為p〔i〕,i=1至k/2)的乘積,及B是k/2個質(zhì)數(shù)(也記為p〔i〕,i=k/2+1至k)的乘積;P〔i〕的長度相對小(在2及16位之間),并同樣互為質(zhì)數(shù);b.一個冪的底數(shù)g,其量級為φ(n)/4(其中φ(n)為歐拉指示函數(shù)),因此g不會成為任何數(shù)的第p〔i〕次冪的模n。
2.根據(jù)權(quán)利要求1的密碼系統(tǒng),至少包括一個加密-解密系統(tǒng),其特征在于一個信息m的加密由以下操作形成,m<ABC=gmmod n式中C表示密碼(加密信息)。
3.根據(jù)權(quán)利要求2的密碼系統(tǒng),包括一個加密-解密系統(tǒng),其特征在于m的完整性可由m/h(m)的加密(h表示一個截斷函數(shù)及|表示鏈接7或由DES(cle′,m)的加密來保證,所述《cle′》是一個完全可取得的密鑰。
4.根據(jù)權(quán)利要求1的密碼系統(tǒng)包括一個加密-解密系統(tǒng)及一個密鑰保管系統(tǒng),其特征在于譯碼器的所述秘密密鑰或保管核心是數(shù)φ(n)及解碼操作或恢復(fù)用戶識別的操作在于以下步驟a.對于從1至k的i計算y〔i〕=cφ(n)/p〔i〕mod n;b.對于從1至k的i,對于1至p〔i〕的j,比較y〔i〕與m無關(guān)的值gjφ(n)/p〔i〕mod n,如果gjφ(n)/p〔i〕mod n=y(tǒng)〔i〕,則賦于μ〔i〕=j(luò),c.根據(jù)TRC中國余數(shù)定理及值μ〔i〕重組信息m。
5.根據(jù)權(quán)利要求4或5的密碼系統(tǒng),包括一個加密-解密系統(tǒng)及一個密鑰保管系統(tǒng),其特征在于通過以下計算來加速所述譯碼器對量y〔i〕的計算a)Z=crmod n,其中r=pApB,b)對于從1至k的i,計算y〔i〕=ZAB/p〔i〕mod n,以便利用AB/p〔i〕及φ(n)/p〔i〕之間的長度差別來加速計算。
6.根據(jù)權(quán)利要求4或5的密碼系統(tǒng),包括一個加密-解密系統(tǒng)及一個密鑰保管系統(tǒng),其特征在于譯碼器一勞永逸地對于1≤i≤k及1≤j≤p〔i〕預(yù)計算及保存值gjφ(n)/p〔i〕mod n的表格,或更專門地,這些值的截斷值或散列值(記為h)具有以下特性h(gjφ(n)/p〔i〕mod n)≠h(gj′φ(n)/p〔i〕mod n),如果j≠j′的話。
7.根據(jù)權(quán)利要求4至6中任一項的密碼系統(tǒng),包括一個加密-解密系統(tǒng)及一個密鑰保管系統(tǒng),其特征在于譯碼器通過分開地先解碼信息模p然后解碼模q及借助中國余數(shù)定理組合模,以重新獲得m。
8.根據(jù)權(quán)利要求4至7中任一項的密碼系統(tǒng),其特征在于一個密鑰保管權(quán)威機構(gòu)或中心實現(xiàn)以下步驟a.它通過計算e(ID)=∏p〔i〕ID〔i〕(對于從1至k的i計算積)對用戶的識別碼ID=∑2i-1ID〔i〕編碼,其中ID〔i〕是系統(tǒng)中該用戶的識別碼位(對于從1至k的i計算和);b.它向用戶輸出一個E1-Gamal密鑰(這就是說,一個冪的底數(shù))c=ge(ID)umod n,其中u是一個隨機的大質(zhì)數(shù)或具有φ(n)的質(zhì)數(shù);c.它也可通過選擇一個隨機數(shù)x及自乘c到x模n次冪使用戶從c的求導(dǎo)得到其E1-Gamal公用密鑰;d.為了重新得到用戶的蹤跡,權(quán)威機構(gòu)從編碼器的E1-Gamal密碼中提取下列部分(所述密碼總是包括兩部分)V=crmod n式中r是由編碼器選擇的編碼隨機量;e.知道φ(n)后,所述權(quán)威機構(gòu)由下列算法求出位ID〔i〕①對于從1至k的i計算y〔i〕=vφ(n)/p〔i〕mod n,②如果y〔i〕=1,則μ〔i〕=1,否則μ〔i〕=0,③計算ID′=∑2i-1μ〔i〕,④求出ID=CCE(ID′)式中CCE表示一種糾錯機制。
9.根據(jù)權(quán)利要求4至7中任一項的密碼系統(tǒng),包括一個密鑰保管系統(tǒng),其特征在于它基于Diffie-Hellman的所謂密鑰交換機制,其中由用戶之一通過自乘g到a模n隨機次冪獲得的數(shù)c被所述保管權(quán)威機構(gòu)截取c=gamod n。所述保管權(quán)威機構(gòu)再以下方式求出aa.知道n的因數(shù)分解后,所述權(quán)威機構(gòu)借用于解碼的算法求出值α=a mod AB或a=α+βAB;b.所述權(quán)威機構(gòu)計算λ=c/gamod n=gβABmod n;c.通過使用密碼分析算法,權(quán)威機構(gòu)計算離散對數(shù)βλ=(gAB)βmod n;d.權(quán)威機構(gòu)求出a=α+βAB當(dāng)基于使用a,解碼通信信息。
10.根據(jù)權(quán)利要求2至9中任一項的密碼系統(tǒng),包括一個加密-解密系統(tǒng)及一個密鑰保管系統(tǒng),其特征在于RSA模n為三個因數(shù)的乘積n=(ApA+1)×(BpB+1)×(CPC+1)式中pA、pB、pC為長度大于320位的質(zhì)數(shù),(ApA+1)、(BpA+1)、(CpC+1)為RSA質(zhì)數(shù),分別記為p、q、r,A、B、C各為k/3個質(zhì)數(shù)(記為p〔i〕,i=1至k)的乘積,p〔i〕的長度相對小(在2至16位之間)并互為質(zhì)數(shù)及k是包括在10及120之間的一個整數(shù),因此乘積ABC至少為160位。
11.根據(jù)權(quán)利要求1至10中任一項的密碼系統(tǒng),包括一個加密-解密或保管系統(tǒng),其特征在于加密、解密及密鑰保管裝置為計算機、芯片卡、PCMCIA卡、標(biāo)簽、無觸點卡及其它的便攜裝置。
12.包括根據(jù)以上權(quán)利要求中任一項的密碼系統(tǒng)的設(shè)備,其特征在于它包括一個加密系統(tǒng)和/或一個解密系統(tǒng)和/或一個密碼保管系統(tǒng),所述這些系統(tǒng)通過交換電子信號或通過對無線電波或紅外信號交換在它們之間進行通信。
全文摘要
本發(fā)明涉及一種與所謂離散對數(shù)及因數(shù)分解原理相結(jié)合的密碼系統(tǒng),它包括一個加密及解密系統(tǒng)及一個密鑰保管系統(tǒng)和相關(guān)的裝置和設(shè)備。它尤其是設(shè)計用于芯片卡、PCMCIA卡、標(biāo)簽、無觸點卡或其它便攜式裝置類型的電子系統(tǒng)中。
文檔編號H04L9/30GK1248366SQ9880267
公開日2000年3月22日 申請日期1998年2月17日 優(yōu)先權(quán)日1997年2月19日
發(fā)明者D·納卡希, F·萊維-迪特-維赫爾, J·斯特恩 申請人:格姆普拉斯有限公司