專利名稱:高速靈活的加密系統(tǒng)的方法及設(shè)備的制作方法
背景技術(shù):
本發(fā)明涉及加密系統(tǒng),用于數(shù)據(jù)與信息保護,特別是用于通訊中數(shù)據(jù)與信息的保護,以及有關(guān)的方法和協(xié)議。
近幾十年來,加密技術(shù)的發(fā)展突飛猛進,尤其是以W.Diffie和M.Hellman的里程碑似的文獻“加密技術(shù)新導(dǎo)向”為新起點(″New Directions in Cryptography″,IEEE Transactions on InformationTheory,Vol.IT-22,1976,pp.644-654)。此后,公開加密系統(tǒng)不再屈指。Rivest,Shamir及Adleman發(fā)明了RSA加密系統(tǒng),公布于美國專利第4,405829號。T.ElGamal的加密系統(tǒng)發(fā)表于“一個運用離散對數(shù)的公開加密系統(tǒng)以及一種簽名方法”(″A Public Key Cryptosystem and a Signature Schemebased on Discrete Logarithms″,IEEE Transactions on Information Theory,Vol.31,985,pp.469-472)。新近推出的基于橢線的加密系統(tǒng)則以Victor S.Miller的文章“用橢線于加密技術(shù)”(″Use of EllipticCurves in Cryptography″,Advances in Cryptology CRYPTO′85 Proceedings,BerlinSpringer-Verlag,1985,pp.417-426)。對此,請參照U.Maurer在美國第5,146,500號專利上發(fā)表的具體實現(xiàn)方法。
另有一種以背袋難題為基礎(chǔ)的加密系統(tǒng)被R.Merkle和M.Hellman破土,系統(tǒng)在其“運用難逆的背袋問題進行信息隱避及簽字”中公布于世。(″Hiding Information and Signature in TrapdoorKnapsacks″,IEEE Transactions on Information Theory,Vol.IT-24,1978,pp.525-530)。S.C.Lu和L.N.Lee提出了一個更具普遍性的背袋加密系統(tǒng),其中使用了中國余數(shù)定理。請參照“一個簡單而有效的公開加密系統(tǒng)”(″A Simple and Effective Public-Key Cryptosystem″,COMSAT Technical Review,Vol.9,No,1,1979,pp.15-24)。R.M.Goodman和A.J.McAuley開發(fā)了另一種形式的背袋加密系統(tǒng)。請參看“新難逆的背袋公開加密系統(tǒng)”(″New Trapdoor Knapsack Public Key Cryptosystem″,Advances in Cryptology Proceedings of EUROCRYPT′84,BerlinSpringer-Verlag,1985,pp.150-158)。H。-Isselhorst推展了一個采用有理數(shù)的背袋加密系統(tǒng)。請參看“非整數(shù)在公開加密系統(tǒng)中的使用”(″The Use of Fractions in Public-Key Cryptosystems″,Advances in CryptologyEUROCRYPT′89,BerlinSpringer-Verlag,1990,pp.47-55)。V.Niemi也相繼提出另一個背袋加密系統(tǒng)。請參照“背袋中的一個難逆性”(″A New Trapdoor in Knapsacks″,Advances in CryptologyEUROCRYPT′91 Proceedings,BerlinSpringer-Verlag,1991,pp.405-411)。所有這些背袋式的加密方法及系統(tǒng)在下面例舉的文章中都或多或少被研討解破“一個線性時間的算法用來破解基本的Merkle-Hellman加密系統(tǒng)”(″A Polynomial Time Algorithm for Breaking the Basic Merkle-HellmanCryptosystem″,Advances in Cryptology Proceedings of CRYPTO′82,Plenum Press,1983,pp.279-288);“破解多次取模背袋”(″Breaking Iterated Knapsack″,Advances in Cryptology Proceedingsof CRYPTO′84,BerlinSpringer-Verlag,1985,pp.342-358);“近期結(jié)果的泛觀”(″A servey ofrecent results″作者Brickell和Odlysko,Contemporary Cryptology,IEEE Press,1992,pp.501-540);“解析建立于有限精確小數(shù)的公開加密系統(tǒng)”(″Cryptanalysis of Public-Key Cryptosystems based onApproximation by Rational Numbers″作者J.Stern和P.Toffin,Advances in CryptologyEUROCRYPT′91,BerlinSpringer-Verlag,1991,pp.313-317);“解析一個基于取模背袋的新公開加密系統(tǒng)”(″The Cryptanalysis of a New Public-Key Cryptosystme based on Modular Knapsack″作者Y.M.Chee,A.Joux和J.Stem,Advances in Cryptology CRYPTO′91,BerlinSpringer-Verlag,1991,pp.204-212)。
當(dāng)今加密技術(shù)及系統(tǒng)有待于改進和創(chuàng)新,以便具有更好的性能及更高的靈活性。
發(fā)明的目的以及概述本發(fā)明的一個主要目的是提供各種方法,用來具體實現(xiàn)加密系統(tǒng),以便保護數(shù)據(jù)和通訊的安全,保障數(shù)據(jù)完整,并且得以正確辨認(rèn)通訊各方。
本發(fā)明是個靈活性強,速度高的加密系統(tǒng),運用多種不同加密方法及協(xié)議。其基本概念是使用可辨認(rèn)元,即集合中元(或其倍數(shù))可從子集和中確定無疑地,唯一地,有效地識別出來。此發(fā)明具有生成密鍵快、易、用戶可控,公開鍵和秘密鍵每次使用可以更新,以及通過口令相應(yīng)生成密鍵的特征。
附圖
的簡敘本發(fā)明的目的,特征及優(yōu)點可以借助于附圖,并通過后面對于本發(fā)明優(yōu)選實施例的詳細描述而得以更好地了解。附圖中包括圖一是功能模塊圖,描述發(fā)明的概觀。
圖二是發(fā)明單向加密或解密的詳圖。
圖三給出一個簡化的硬件實現(xiàn)圖。
圖四是此發(fā)明中加密邏輯。
圖五是此發(fā)明中解密邏輯。
優(yōu)先實施例的詳述本發(fā)明最簡單的構(gòu)造包括至少一個加密裝置或至少一個解密裝置來進行加密或解密。其一般構(gòu)造包括1)至少兩個密碼機,其同與某數(shù)據(jù)傳送媒介(DTM)相連,各自具有自己的加密器(E)和解密器(D)。
2)每個密碼機具有一些輸入、輸出(I/O)設(shè)施,包括數(shù)據(jù)存儲設(shè)備(DS)。
3)每個密碼機具有一個鍵生成器。
4)每個密碼機具有一個數(shù)據(jù)及鍵管理器。
5)每個密碼機具有一個數(shù)據(jù)處理器。
6)每個密碼機具有一個通訊協(xié)議器。
密碼機的輸入、輸出設(shè)施包括穩(wěn)定內(nèi)存、中端、顯示器、鍵盤、打印機、傳真機、掃描器、通訊線路等等,也包括數(shù)據(jù)存儲設(shè)備,譬如內(nèi)存、硬盤、磁帶、只讀光盤等等。
鍵生成器依靠隨機或半隨機輸入產(chǎn)生加密、解密用的鍵。用戶可提供秘密口令,用以生成各鍵。其他隨機輸入可為組織編輯的硬盤使用數(shù)據(jù)、用戶按鍵間隙、檢測隨機環(huán)境所收集的數(shù)據(jù)等等。此發(fā)明文本中所提及的隨機一詞也會用于偽隨機的概念。在能取得真正的隨機數(shù)據(jù)時,本發(fā)明倡導(dǎo)采用真隨機數(shù)據(jù)。偽隨機(或半隨機)數(shù)據(jù)是指某種器具用真隨機數(shù)據(jù)驅(qū)動生成的輸出。
數(shù)據(jù)及鍵管理器協(xié)調(diào)密碼機中其他各組成部分,管理和控制鍵、中間結(jié)果和其他數(shù)據(jù)的存取。如果有些鍵屬于某外界實體(例如一組鍵是某電腦中心用來進行保險通訊的),數(shù)據(jù)及鍵管理器會建立此外界實體與這組鍵的關(guān)系。
數(shù)據(jù)處理器提供加密或解密以外的數(shù)據(jù)處理。例如,如果鍵長為X,二進制數(shù)可分為x位碼一組,以便加密。
加密器用于加密,解密器用于解譯密碼。
通訊協(xié)議器提供密碼器與媒介的界面,此媒介也與其他參與通訊的密碼機相連。
現(xiàn)請參照附圖一中發(fā)明的概括形式。輸入給密碼機A的可以是需要加密的口令或數(shù)據(jù),而這些要加密的數(shù)據(jù)也可以原來就存于密碼機內(nèi)的存儲媒介。例如在鍵已確定的情況下,當(dāng)密碼機A得到指令進行加密,并把加過密的數(shù)據(jù)送給密碼機B時,密碼機A將數(shù)據(jù)送入加密器(11A)加密,并通過數(shù)據(jù)傳送媒介傳密碼給密碼機B,密碼機B接收從密碼機A傳來得密碼,通過解密器(12B)解密。復(fù)原的數(shù)據(jù)再從密碼機B中輸出。同樣的操作可以反向進行,即密碼機B加密而密碼機A解譯。
圖二展示本發(fā)明單向加密的詳況。左邊的大虛線框圖表示加密單位(密碼機A的加密結(jié)構(gòu)),而右邊的大虛線框圖表示解密單位(密碼機B的解密結(jié)構(gòu))。
數(shù)據(jù)及鍵管理器(27A)通過密碼機A的協(xié)議器(29A)要求與密碼機B接通,并要求密碼機A輸送數(shù)據(jù)給密碼機B。密碼機B同意后,數(shù)據(jù)及鍵管理器(29B)通知鍵生成器(26B)生成一組鍵,并將密鍵存放好以進行解密,同時將公開鍵通過協(xié)議器(29B)傳給密碼機A。
密碼機A在收到公開鍵后,通過數(shù)據(jù)及鍵管理器(27A),從數(shù)據(jù)存儲設(shè)備中提取數(shù)據(jù),送入數(shù)據(jù)處理器(28A)進行加密前的處理(如雙向攪亂),處理后的數(shù)據(jù)再進入加密器(22A),而最后的密碼輸給協(xié)議器(29A)送入數(shù)據(jù)傳送媒介(21)。
密碼機B通過協(xié)議器(29B)接到加過密的數(shù)據(jù)后,采取與密碼機A相反的步驟。密碼機B先解密,隨后進行所需的處理,如反雙向攪亂,復(fù)原的數(shù)據(jù)或是放于數(shù)據(jù)存儲設(shè)備(25B)中,或是輸出給其他設(shè)備(24B)。
在加密、解密過程中,可以起用某協(xié)議。此舉一例。密碼機A可以在任何時候通知密碼機B,新的模糊雜質(zhì)對映需以確定。而后雙方都轉(zhuǎn)入某種狀態(tài)以建立新的模糊雜質(zhì)。在確定模糊雜質(zhì)后,雙方又都返回正常加密或解密狀態(tài),繼續(xù)進行加密或解密。模糊雜質(zhì)是數(shù)字,當(dāng)它被加到子集和里面的時后,會導(dǎo)至子集和有多種分解。而模糊雜質(zhì)對映是鍵元與數(shù)據(jù)位碼的一種關(guān)系,它定義模糊雜質(zhì)是以何種方式加到子集的和上。
在此過程中,密碼機A與密碼機B也可能進入解除模糊狀態(tài),來解決或部分解決在解密中遇到的多解的狀況。當(dāng)解除多解狀況完畢時,雙方又回復(fù)加密、解密狀態(tài),繼續(xù)進行加密、解密。
圖三是一個簡化了的設(shè)備,具有兩個大存儲器(可容納所需處理的最大數(shù)字),以及一些運算邏輯電路(32),用來進行所需的運算,如加、減、乘等等。選擇器(31)是一組邏輯電路,用來選取內(nèi)存或存儲器(30)中數(shù)值,并將數(shù)值放入相應(yīng)的存儲器(33或34)。在兩存儲器中數(shù)值運算完畢后,結(jié)果存于存儲器(34),而后,選擇器可選恰當(dāng)?shù)拇鎯ζ骰騼?nèi)存(30)存放結(jié)果。
簡而言之,此發(fā)明用鍵生成器生成的數(shù)字組成一組數(shù)作為加密鍵、解密鍵、和其他影響密碼及鍵轉(zhuǎn)換的參數(shù)。加密鍵包括加密鍵集,有可能還包括一個模糊雜質(zhì)集。解密鍵包括解密鍵集和其他參數(shù)。此加密系統(tǒng)的基本概念是解密集Kd={d1,d2,...,dn},加密集Ke={e1,e2,...,en},也可能包括模糊雜質(zhì)集F={f1,f2,...,f1,...},以及可逆的轉(zhuǎn)換T,具有以下特點1)Ke是從Kd通過T轉(zhuǎn)換過來的,而T-1是T的反轉(zhuǎn)換。就是說對于1≤i≤n,ei=T(di)并且di=T-1(ei),同時對于某大于零的自然數(shù)g,0≤y≤g,y*ei=T(y*di)并且y*di=T-1(y*ei).
2)T可將Kd的任一子集和轉(zhuǎn)換成相應(yīng)的Ke的子集和,而T-1可將Ke的任一子集和轉(zhuǎn)換成Kd相應(yīng)的子集和。這就是說,假設(shè)X是Kd的一個子集有q個元,Z是Ke的一個子集有q個元,Y={y1,y2,...,yq}是一個標(biāo)量集滿足0≤yj≤g,對于1≤j≤q,x=X×Y和z=Z×Y,如果x是z相應(yīng)的子集和,(同時z是x的相應(yīng)子集和),那么ei*yj是Z×Y的成份當(dāng)且經(jīng)當(dāng)di*yj是X×Y,的成份,這里1≤j≤n,1≤j≤q。
3)Kd建立的方式可以保證一種有效方法的存在,這樣用Kd形成的任一子集和中的元可以唯一地、肯定的識別出來。
4)T的設(shè)計保證T和T-1都實際、有效、并且可以實現(xiàn)。
5)T,Kd和Ke的設(shè)計致使從Kd通過T轉(zhuǎn)換來的Ke中不再有Kd原有的規(guī)律,這樣,通過Ke對加密系統(tǒng)的攻擊,從運算角度來講不切實際。
6)模糊雜質(zhì)集F是根據(jù)Kd和Ke生成的,并可能經(jīng)T轉(zhuǎn)換,這樣F中元的某一倍數(shù)可以以一種方式加到Ke的子集和上,同時保持唯一、確定的解碼。
7)Ke和F可以公開。
圖四是加密邏輯。數(shù)據(jù)位碼被分成組裝入數(shù)據(jù)寄存器41。同時,密碼寄存器42被清零。位移器43是被參量h所控制,這樣h位碼就被依次輸入第一數(shù)乘器45。第一選擇器44從加密鍵集402中選出正確的元與裝入第一數(shù)乘器45中的h位碼相乘,乘積又輸給數(shù)加器46。與此同時,在密碼器42中的數(shù)值也進入數(shù)加器46。這樣密碼器42中的數(shù)值就和第一數(shù)乘器45來的積累計起來。在位移器43輸給第一數(shù)乘器的同時,也將這些位碼輸給對映器47,它將h位碼組對映于某相應(yīng)的倍數(shù)。此倍數(shù)和第二選擇器49選出的模糊雜質(zhì)所成的積被輸進數(shù)加器46加到累計的和中。當(dāng)所有的位碼從數(shù)據(jù)寄存器41被移出后密碼器42中所存的最終的和就被作為一個密碼輸出。第二選擇器49與第一選擇器44保持向步,這樣當(dāng)?shù)谝贿x擇器44在加密鍵集402中選中某一個含雜質(zhì)元時,第二選擇器49從模糊雜質(zhì)集401中選出正確的模糊雜質(zhì)。如果所選中的元是不含雜質(zhì)的,第二選擇器49輸零給第二數(shù)乘器48,也就如同輸零給數(shù)加器,實際上就是不加雜質(zhì)。
加密是通過用加密鍵向量Ke和一組組數(shù)據(jù)位碼組成的向量生成內(nèi)積C,即加密文件的密碼。C實際上就是Ke的子集和,而Ke中相對應(yīng)于非零的位碼組的元則是子集和中非零的組成部份。不影響恢復(fù)原數(shù)據(jù)的模糊雜質(zhì)也可以根據(jù)模糊雜質(zhì)的特性加到密碼C上。由于存在著有效可行的算法來識別出組成解密鍵集的子集和的成員,當(dāng)密碼被T-1轉(zhuǎn)換成相應(yīng)的加密鍵的子集和時,Kd中相應(yīng)的成員也就能辨認(rèn)出來了。這樣相應(yīng)的非零原數(shù)據(jù)位碼組就可以復(fù)原,同時為零的位碼組也就能自然而直接的復(fù)原了。
現(xiàn)請參照圖五的解密邏輯。首先一個皺集被生成并裝入皺集寄存器51中。皺集是個集合。當(dāng)它被加到另一個集合上的時候可以打亂后者的特殊結(jié)構(gòu)、規(guī)律以及后者中元素之間的聯(lián)系。密碼然后被一個個地輸入密碼寄存器52,而每次輸入一個密碼時,位碼組及商寄存器53就被清零。第一選擇器54分別從模寄存器560和逆乘數(shù)寄存器中選出應(yīng)選的模-逆乘數(shù)對并對從密碼寄存器52送來的密碼在逆乘取模器550中進行逆乘取模。然后,第二選擇器55和第三選擇器56分別從解密鍵寄存器57和模糊雜質(zhì)寄存器58中選出應(yīng)選的解密鍵元和模糊雜質(zhì)輸送給位碼提取器59。位碼提取器59提取出數(shù)據(jù)原碼,在需要進行延遲恢復(fù)原碼(即原碼的恢復(fù)需要幾步進行)時,也提取出商,并將它們暫存于位碼組和商寄存器中。位碼提取器59又將未處理完的密碼送回到密碼寄存器52中。處理過程一直重復(fù)到所有位碼及商都被提取出來。最后第五選擇器510選出的商和與其對應(yīng)的第四選擇器520從皺集寄存器中選出的元被一起輸進位碼延遲復(fù)原器530,以便將剩下的位碼全部復(fù)原。復(fù)原的位碼通過重新排列器540,恢復(fù)到數(shù)據(jù)位碼的正確位置。
此發(fā)明有兩種形式。其基本形式是純公開鍵式(PPKS),它不對加密鍵進行進一步的保護而且加密鍵可以公開。其擴展形式是半公開式(QPKS),這種形式不將加密鍵原封不動地公開。多余無用的雜質(zhì)元與加密鍵集以及其它有關(guān)加密的數(shù)據(jù)混在一起,用以隱蔽真正的加密鍵元。實際數(shù)據(jù)也可以通過QPKS進行擴展。
PPKS闡述如下讓S={C,h,I,k,n,P,R,R}為加密系統(tǒng)的一般定義,具有如下特征1)n是公開及秘密鍵的大小,或公開及秘密鍵向量的維數(shù)。
2)k(1≤k≤n)是分段鍵集的段數(shù)。
3)P是一個排列器,以P1為其反排列器,而對于任意一個(有限)列XP(P-1(X))=P-1(P(X))=X這里P和P-1進行的排列可以用隨機輸入或秘密口令來控制。
4)R是一個隨機數(shù)生成器,應(yīng)輸入的種子(數(shù))生成一系列隨機數(shù)。
5)I={i1,i2,...}給出系統(tǒng)運行中的一些點i1,i2,...,在到達這些點時,隨機數(shù)生成器R內(nèi)部狀態(tài)將重新確定。這些重新確定點可以用隨機輸入或秘密口令來控制。
6)R={r1,r2,...}是個數(shù)對集合,數(shù)對是數(shù)值范圍的上下限。
7)C={c1,c2,...,ck}是個有k個數(shù)的集合,用以控制皺集的特性。
8)h>0是個自然數(shù),用以確定組成加密向量元的位碼數(shù)。
其中,以下參數(shù)也可以為加密系統(tǒng)制訂出來,或由加密系統(tǒng)生成。
1)Z={z1,z2,...,zk}是個有k個非零自然數(shù)集,而Z中所有數(shù)的和等于n。其中zi,對于1≤i≤k,是鍵第i段中含元的個數(shù)。
2)每段都有以下相應(yīng)參數(shù)的制訂和生成。
2.1)ti確定對正在生成的鍵集和模糊雜質(zhì)取模的次數(shù)。
2.2)Mi={mi,1,mi,2,...},Wi={wi,1,wi,2,...}和Wi-1={wi,1-1,wi,2-1,..}都有ti個成員,其中每對mi,j-wi,j是用來取模的,mi,j的選擇保證逆取模時不會產(chǎn)生多種解。例如,mi,j大于所有要被取模數(shù)的和的2h-1倍,(mi,j,wi,j)=1(即互質(zhì))而且w-1i,j對于1≤j≤ti,是wi,j同模于mi,j的逆乘數(shù)。mi,j-wi,j-1對是用來進行逆取模的。在F也需要取模時,mi,j的選擇會在計算mi,j時把F考慮進來。例如,mi,j比當(dāng)時所生成的鍵和模糊雜質(zhì)元所能取的最大倍數(shù)的和還大。如果ci>0,針對第i段,以下參數(shù)也可能被生成2.3)qi是第i段中要被取皺的元素的個數(shù),這里qi≤zi,即皺集中非零元的個數(shù)。
2.4)Bi={bi,1,bi,2...}是有zi元的皺集,它與第i段相對應(yīng)。皺集是用來加到另一個集合上,從而打亂后者中的規(guī)律性。
3)F={fl,1,fl,2,...,fi,1,fi,2,...}是個模糊雜質(zhì)集。
4)FMO是個可逆的模糊雜質(zhì)對應(yīng)函數(shù)用于加密和解密。通過轉(zhuǎn)換,解密模糊雜質(zhì)集被轉(zhuǎn)換成加密模糊雜質(zhì),而加密鍵保留原有的解密鍵與模糊雜質(zhì)之間的對映,這樣加密鍵元與加密模糊雜質(zhì)元之間保持有與解密鍵元和解密模糊雜質(zhì)元之間同樣的對映。
除M,W,W-1和F之外,參數(shù)可以用以下方式產(chǎn)生1)制訂給系統(tǒng)而且保持不變。
2)作為變量制訂給系統(tǒng),用來控制系統(tǒng)運行和鍵的生成。
3)在隨機輸入的驅(qū)動下通過系統(tǒng)生成。
4)給系統(tǒng)提供數(shù)值范圍讓系統(tǒng)生成數(shù)值范圍內(nèi)的參數(shù)。
只要對此技術(shù)有所了解就不難看出,如果除去 M,W,W-1和F其他參數(shù)都保持不變,系統(tǒng)是經(jīng)不起攻擊的。一種生成公開和秘密鍵的簡單方法可用如下過程所表示1)讓A和X為空集。
2)生成皺集B1一直到皺集Bk。
3)對于(i=1;i≤k,i++){4)生成Ai={ai,1,ai,2,...,ai,u}一個段5)將bi,j*ci加到ai,j(對段Ai取皺)/*如ci=0,Ai不變*/6)Xi<<Ai7)Bi<<08)A<<(A∪Ai)9)X<<(X∪Xi)10)對X取模ti次11)對B取模ti次}12)用Ke代表被P排列過的X在第4)步中u=zi.
在第6)步后,Ai中的元可以從X的任一子集和中有效地識別并選出。模糊雜質(zhì)也能在以上的過程中生成。
Ke是公開加密鍵集,而有可能的話,F(xiàn)的一個子集也作為公開鍵的一部分公開出來。
Al段到Ak段(即A本身)以及其他所有用來進行逆轉(zhuǎn)換的參數(shù)就是秘密鍵,其中A是秘密鍵集。
要加密的數(shù)據(jù)先是以二進制碼被組成n組,而每一組有h位碼。而每個n*h-位碼組可以變成加密文件的一個密碼。加密是通過取加密鍵向量與n組二進制碼形成的向量的內(nèi)積,生成加密鍵集的一個子集和,其中加密鍵集中對應(yīng)于非零h-位碼組的元加到和中,而一些模糊雜質(zhì)也可以在此過程中加到這個子集和中。
解密是對密碼文件進行反轉(zhuǎn)換以復(fù)原數(shù)據(jù)元的位碼。當(dāng)密碼經(jīng)過反轉(zhuǎn)換時,與Ke中段相對應(yīng)的Ak段到Al段里加到子集和中的元就可以識別出來了。而子集和中所含的模糊雜質(zhì)也可識別出來。秘密鍵和模糊雜質(zhì)集中元一經(jīng)被識別,就被從密碼中減去,而相對的非零位碼組就被記下來。最后,所有的非零位碼組就可以被復(fù)原了。同時,為零的位碼組也就自然地、直接地被復(fù)原了。在去掉沒必要的其它雜質(zhì)后并用P1進行反排列后,原數(shù)據(jù)位碼也就復(fù)得了。
此發(fā)明的特征之一是鍵的設(shè)計可允許子集和中存在干擾因素。當(dāng)解密鍵集為超增時,子集和中可以允許一個不大于x-1的數(shù),如果a1、1等于某自然數(shù)y而a1、2等于x+y。這就是說,一些數(shù)只要它們的和不超過x-1,就可以在秘密鍵到公開鍵轉(zhuǎn)換時,采用施用于其它參數(shù)的、同樣的取模方法取模,而且可以用來加到任一個子集和中而不影響解密的唯一性。這就是雜質(zhì)公開鍵方法(RPK orRPKM)。一般來講,干擾因素可以是任何數(shù),只要當(dāng)它們被加到子集上時并不影響解密的唯一性。因此可辨認(rèn)元就可以用來作干擾因素。
此發(fā)明的另一特征是,當(dāng)一個以上ci大于零時,某些公開鍵集中的規(guī)律會被打亂。例如,當(dāng)ci大于零時,Ai的超增性將被打亂。特別是當(dāng)打亂后如果鍵集仍保持為唯一可辨認(rèn)元集,也就是一個集合滿足(∑Y=∑Z)→(Y=Z),其中Y和Z是集合的任一子集,這種方法叫做皺公開鍵方法(WPK orWPKM)。
此發(fā)明的另一特征是,當(dāng)k大于1時,公開鍵集實際上是分段生成的,而各段可以采用不同的生成方式并經(jīng)過一系列不同的取模和轉(zhuǎn)換。這是分段公開鍵方法(SPK or SPKM)。
此發(fā)明還有一種方法,干擾素可以以特定的方式設(shè)計和實施,這樣密碼的解就不再唯一。這是模糊雜質(zhì)公開鍵方法(FPK or FPKM)。模糊雜質(zhì)可以建立在加密鍵里面,比如用WPKM,每個鍵集元都被加上一個整數(shù),即采用皺集,產(chǎn)生一個不唯一鍵集。模糊雜質(zhì)也可以采用獨立的模糊雜質(zhì)集,其中模糊程度以及實施與要進行加密的數(shù)據(jù)掛鉤。
具體來說,RPKM與WPKM和起來使用值得一提。假設(shè)已經(jīng)生成的u個段含元a1,...,a2,...,am而第u+2段要有t個元。接著可辨認(rèn)元am+1,...,am+3被生成,而且am+1到am+s+t+1是第u+1段的元,其中s>t>1。然后a1到am+s可以在生成第u+2段的第一個可辨認(rèn)元x之前經(jīng)取模生成對應(yīng)的b1到bm+s。而第u+2段的元就可以是x+bm+s-t+2,x+bm+s-t+3,...,x+bm+s。
QPKS闡述如下讓S={C,h,I,k,n,P,R,R}為加密系統(tǒng)的一般定義1)n是擴展鍵集的大小,或擴展向量的維數(shù)。
2)I={i1,i2,...}給出系統(tǒng)中一些點i1,i2,...,在到達這些點時,隨機數(shù)生成器R內(nèi)部狀態(tài)將重新確定。這些重新確定點可以用隨機輸入或秘密口令來控制。
3)k是秘密文件的分塊大小,指定文件應(yīng)該怎樣分成較小的單位,而每個單位則是個擴展集的一個元。
4)P是一個排列器,以P-1為其反排列器,而對于任意一個(有限)列XP(P-1(X))=P-1(P(X))=X這里P和P-1進行的排列可以用隨機輸入或秘密口令來控制。
5)R是一個隨機數(shù)生成器,應(yīng)輸入的種子(數(shù))生成一系列隨機數(shù)。
6)R={r1,r2,...}是個數(shù)對集合,數(shù)對是數(shù)值范圍的上下限。
7)C是用來對部分可感覺(擴展)集進行分類的方法(或數(shù)化的分類方法),而對于每次具體加密可以從這些方法中(隨機)選來應(yīng)用??筛杏X元是否被加入了某個子集和是可以唯一而有效的確定的。一個元當(dāng)且僅當(dāng)具有這一特性時才被叫做可感覺元,而可感覺集是一個含有可感覺元的集合。
8)h>0是個自然數(shù),用以確定組成加密向量元的位碼個數(shù)。
一般來講,擴展集可以大小不一。
二進制碼塊先被分成小塊。有幾種分法正好k位碼,最多k位碼,或有大約k位碼。當(dāng)然,如果都是正好k位碼將不保險。如果每小塊的大小不同,一個多余的位碼1將加在前面用來保護打頭的零位碼。完后的小塊我們叫文件基本單位。然后對每以個文件基本單位,生成一個有m個可感覺元的大小為n的集合,在經(jīng)轉(zhuǎn)換后,其中一個可感覺元將被轉(zhuǎn)換成那個文件基本單位。然后這個集合的元將被重新排列。但如果此感覺元是隨機選的,重新排列就沒有必要了。
接收擴展集的一方用每個擴展集生成一個子集和送給傳送擴展集的一方。如果傳送擴展集的一方送回一個肯定的答復(fù)(即肯定收到的子集和中含有文件基本單位),就意味著那些沒用來建立子集的元都不是文件基本單位。因此,非文件基本單位的元就可以從擴展集中一組一組地識別出來,而當(dāng)所有非文件基本單位的元被識別出來后,文件基本單位也就自然而直接地被識別出來了。當(dāng)所有的原位碼塊中的小塊都被識別出來、去掉前面的位碼1然后聯(lián)接在一起,原位碼塊就被復(fù)原了。
采用QPKS,子集和的建立基本上與用PPKS一樣,即取擴展向量和數(shù)據(jù)位碼組形成的向量的內(nèi)積。所不同的是,用QPKS時位碼組不是預(yù)先確定的數(shù)據(jù)。隨機位碼組可以達到更好的效果。但QPKS每次選用不同的擴展集元來形成子集和。
QPKS的解密過程與PPKS的基本相同。所不同的是,QPKS不一定需要識別出所有形成子集和的元,而只需要確定子集和中是否含有我們所關(guān)心的可感覺元。
QPKS值得注意的一點是怎樣將需要加密的位碼塊分成小塊,并且怎樣把一個有m個可感覺元集合中的一個可感覺元轉(zhuǎn)換成一個所分成的小塊。假設(shè)以下例子中要進行擴展的位碼塊是
ENGLISH □ OR □ GREEK其中□代表一個空格。其ASCII二進制碼是0100 0101 0100 1110 0100 0111 0100 11000100 1001 0101 0011 0100 1000 0010 00000100 1111 0101 0010 0010 0000 0100 01110101 0010 0100 0101 0100 0101 0100 1011為了便于看清,位碼被列成四個一組。進一步假設(shè)位碼要分成組,每組大約k=32位碼。一個隨機序列為此而生30,31,34,33,32,...,這樣分成的位碼組就是0100 0101 0100 1110 0100 0111 0100 11 (30位碼)00 0100 1001 0101 0011 0100 1000 0010 0 (31位碼)000 0100 1111 0101 0010 0010 0000 0100 011 (34位碼)1 0101 0010 0100 0101 0100 0101 0100 1011 (33位碼)由于分成組的碼會有領(lǐng)頭的零(在以上例子中,除了第四組都如此),它們需要加以保護,以免當(dāng)它們轉(zhuǎn)換成數(shù)字時丟失。為此,一個領(lǐng)頭的1被放到分成的位碼組的最前面、最有效的碼位,而位碼組就成了10100 0101 0100 1110 0100 0111 0100 11100 0100 1001 0101 0011 0100 1000 0010 01000 0100 1111 0101 0010 0010 0000 0100 01111 0101 0010 0100 0101 0100 0101 0100 1011當(dāng)位碼組被識別出來后,最前面的1碼將被去掉,因而得到原來的位碼。
下面我們用第一個分成的小塊10100 0101 0100 1110 0100 0111 0100 11來作一個示范,其中為了方便起見,我們用d來代表10100 0101 0100 1110 0100 0111 0100 11。我們假設(shè)h=2而且一個有一個可辨認(rèn)元的擴展集合
下面介紹的方法是用來增進此發(fā)明的保險程度、提高信息律及靈活性。
用與此發(fā)明的模糊雜質(zhì)是加大攻擊密碼本身來進行破譯的復(fù)雜程度。以下段落介紹的方法包括模糊雜質(zhì)索引(對映),可除及不可除的模糊雜質(zhì),鍵元的指定(用于對模糊雜質(zhì)的索引),以及皺集的使用。
一個模糊雜質(zhì)的例子是零一集{1,2,3,7,11}。數(shù)10可以是子集和用1,2,和7建成的,或用3和7建成的。在沒有集合的其它更確切的特征和沒有更確切的子集和形成的知識時,模糊狀況無法消除,即無法說1-2-7還是3-7是10的正確解譯碼。但如果另有條規(guī)定,3與7不能同時含在子集和中,模糊狀況就變?yōu)榭梢韵牧?。對于這一例,10只可以被解譯成1-2-7因為解譯為3-7違反了規(guī)定。可除的模糊狀況可以有其它多種,如稀疏的語句結(jié)構(gòu)和語義就可以幫助消除大部分或絕大部分、甚至所有的錯誤解譯。鍵集可以用某種方式設(shè)計和建立,這樣設(shè)計者可以有效地挑出可除模糊狀況下的正確解碼以及不可除模糊狀況下的所有解碼。模糊的′程度′根據(jù)集合建立的方法也是可以控制的。如集和{1,2,3,7,11}是25%模糊,即隨意形成的100個子集合中,平均有25個可以有一種以上的解法。如果集合是{1,2,5,10,18},它就是3.125%模糊。如果集合{1,2,3,7,11}被轉(zhuǎn)換成兩個集合,一個零一集{1,2,7,11}和一個模糊雜質(zhì)集{0,3},同時確定只要對應(yīng)于7的數(shù)據(jù)位碼是1時加零否則加3。這樣一來,模糊狀況就變?yōu)榭沙恕?br>
現(xiàn)舉一模糊雜質(zhì)對映的例子。針對某一次加密可以規(guī)定,如果對應(yīng)于某一含模糊雜質(zhì)元的數(shù)據(jù)位碼值為1時,加上某一模糊雜質(zhì)的三倍;如果其值為2,加上此模糊雜質(zhì)的5.5772倍(帶有限精確度);如果其值為3,則不加任何模糊雜質(zhì),等等。
干擾因素可以被有意地設(shè)計用來攪亂帶進公開鍵的規(guī)律,也可以用來加入模糊狀況。現(xiàn)舉一例。假設(shè)我們采用PPKS而讓k=1,c是個非零整數(shù)。生成一個唯一集(其中元都是可識別的)并取模兩次得到A={a1,a2,...,an}。然后生成一個皺集B={b1,b2,...,bn}滿足min(A)>max(B)。為了控制解密的復(fù)雜性,B可以含零元而且sum(B)可以被限制為一個不太大的數(shù)。公開鍵向量是經(jīng)過重新排列的(a1+b1*c,a2+b2*c,...,an+bn*c),實際上等價于A+B′,其中B′={b1*c,b2*c,...,bn*c}。加密仍然是簡單的對公開鍵向量和位碼形成的向量取內(nèi)積。解密較費時,但并行處理可以加快運算。因為c和B是已知的,模糊程度或子集和(密碼)中可能的c的個數(shù)也是可知的。對于每個可能的c的倍數(shù)m,子集和(密碼)可以先作嘗試被減去m*c,所得的差再通過正常的解密過程。每次嘗試的結(jié)果可以有以下三種之一1)解碼成功(即差可表示為一個子集和)并且m=D×B,其中D是解譯完的位碼組的向量,而×是內(nèi)積運算2)解碼成功(即差可表示為一個子集和)但是m◇D×B,其中D是解譯完的位碼組的向量3)解碼失敗(即差不可表示為一個子集和)情況2)和3)肯定地表明所減去的c的個數(shù)m是不正確的。我們可以試c的另一個倍數(shù)。
情況1)有兩種可能。一是正確原碼得到了,再就是內(nèi)存模糊狀況,即子集和有多種解而解密器無法在沒有被加過密的文件的原文或其它特征的情況下找出正確的解。很明顯,如果所有可能的c的倍數(shù)都試過了而第一種情況只出現(xiàn)了一次,那么所解的碼就是所要的正確的解。但如果第一種情況出現(xiàn)了一次以上,就肯定是內(nèi)存模糊狀況了。然而,內(nèi)存模糊狀況可以通過稍后介紹的協(xié)議有效地進行消除。
下面我們描述一種延遲解碼方法。給出一個(縮小、簡化的)零一集合{2,3,7},假設(shè)我們選m1=13,w1=11而且w-11=6。取模后集合變?yōu)閧9,7,12},然后m和2*m被加進去形成{9,7,12,13,26}。接著我們選m2=71,w-12=55,和w2=31。第二次取模后,集合變成{66,4,17,48,25}。
設(shè)某一位碼組為01010,而此位碼組與集合(都當(dāng)成向量)的內(nèi)積就是0*66+1*4+0*17+1*48+0*25=4+48=52解碼先對52逆取模
接著
。因為m1和2*m1是m1的整倍數(shù),01010中最后(最右)的兩個位碼在用m1及w-11進行逆取模時被′淹沒′了。復(fù)原這兩位碼不能馬上進行而要推遲一下。用第二次逆取模后的結(jié)果3以及解密用的唯一集合{2,3,7},馬上可以復(fù)原010。中間結(jié)果20可幫我們得到其余的兩位碼。因為通過用w-12-m2逆取模的結(jié)果20不過就是(0,1,0,y,z)和(9,7,12,13,26)的內(nèi)積,而13y+26z=20-(0*9+1*7+0*12)=13。用第二段{13,26},最后兩位碼10也就可以輕而易舉地復(fù)原了。這樣,原碼01010就全部復(fù)原了。
在下面的協(xié)議中,我們描述怎樣把身份證明與鍵交換合為一個不可分割的基本步驟,其中身份證明過程中包含鍵的交換。
讓X作為身份證明的發(fā)起者。
讓KXIp作為X的用以身份證明的公開鍵,此鍵不作他用。
讓KYIp作為Y的用以身份證明的公開鍵,此鍵不作他用。
讓KXIs作為X的用以身份證明的秘密鍵,此鍵不作他用。
讓KYIs作為Y的用以身份證明的秘密鍵,此鍵不作他用。
讓KXp作為X的公開保護鍵,此鍵在每次通訊是即時生成。
讓KYp作為Y的公開保護鍵,此鍵在每次通訊是即時生成。
讓KXs作為X的秘密保護鍵,此鍵在每次通訊是即時生成。
讓KYs作為Y的秘密保護鍵,此鍵在每次通訊是即時生成。
身份證明鍵和保護鍵不必含有不可除模糊狀況。
讓<claim>X作為X聲稱傳送此<claim>X的是X。
收到<claim>X收到<request>X等待如果t過了但還沒收到KYIp(KXp)記錄協(xié)議失敗終止協(xié)議或采取其它措施收到KYIp(KXp)解密得到K1Xp=KYIs(KYIp(KXp))(K1Xp是X的公開保護鍵)← K1Xp(KXIp(β·KYp·CY·IY))其中β=H(K1Xp·IY·CY)(注發(fā)起者被先質(zhì)疑)等待如果t過了但還沒收到K1Xp(KXIp(β·KYp·CY·IY))記錄協(xié)議失敗終止協(xié)議或采取其它措施收到K1Xp(KXIp(β·KYp·CY·IY))解密得到β′·K1Yp·C1Y·I1Y=KXIs(KXs(K1Xp(KXIp(β·KYp·CY·IY))))(K1Yp是Y的公開保護鍵)如果β′◇H(KXp·I1Y·C1Y)記錄協(xié)議失敗終止協(xié)議或采取其它措施(X的公開保護鍵KXp已在Y確立)根據(jù)I1Y從C1Y中取出RxK1Yp(KYIp(γ·RX·CX·Ix))→其中γ=H(K1Yp·IY·CY)等待如果t過了但還沒收到K1Yp(KYIp(γ·RX·CX·Ix))記錄協(xié)議失敗終止協(xié)議或采取其它措施收到K1Yp(KYIp(γ·RX·CX·Ix))解密得到γ′·R1X·C1X·I1X=KYIs(KYs(K1Yp(KYIp(γ·RX·CX·Ix))))如果RX◇R1Y或γ′◇H(KYp·I1X·C1x)))
記錄協(xié)議失敗終止協(xié)議或采取其它措施(X身份得以證明)(Y的公開保護鍵KYp已在X確立)根據(jù)I1X從C1X中取出RY← K1Xp(KXIp(RY))(如果RY是X所期待的,協(xié)議結(jié)束)等待如果t過了但還沒收到Y(jié)送來的K1Xp(KXIp(RY))記錄協(xié)議失敗終止協(xié)議或采取其它措施收到K1Xp(KXIp(RY))解密得到R1Y=K1Xp(KXIp(RY))如果RY◇R1Y記錄協(xié)議失敗終止協(xié)議或采取其它措施(Y身份得以證明)(協(xié)議結(jié)束)
為了具有更高的保險性,特別是來對付中間人一類的進攻,可以使用守時傳送塊(TSTB)的概念。TSTB是一方送給另一方的一個邏輯塊,而塊的全部內(nèi)容必需在一特定時間內(nèi)收到。剛描述的協(xié)議可以以另一種方式出現(xiàn),其中通訊的每一方的至少一個守時傳送塊可以用規(guī)范的或個方都同意的方法重新組成n≥2部份p1,p2,...,pn,而pi送出前間隔αi-1滿足從算法上來講,只用p1,p2,...,pn-1通過同樣的攪亂方法來重建守時傳送塊的前k位碼是不現(xiàn)實的,而∑αi+d≥t,∑αj+d<t,其中0≤i<n-1,0≤j<n,α0=0,k是p1中的位碼數(shù),d大于或等于在媒介中傳送的最大延遲。接收方期待在t到期前得到p1而k足夠大(建議至少128)。這些部份在接收方又復(fù)原成守時傳送塊。如果αi和d挑選得好,公開鍵塊加密器是使用攪亂方法的很好而自然的選擇。只要對此技術(shù)有所了解就不難看出,所提到的部份并不只限于塊中連續(xù)位碼。實際上為了更安全,一部份應(yīng)該是來自整個塊的各個地方。
在下面介紹的協(xié)議和例子中,我們不再明說必要和恰當(dāng)?shù)纳矸葑C明及加密鍵的交換總被付之實施。因此,如果我們說一些位碼被送走了,它們實際上可能是被新交換了的加密鍵加密后才送走的。
下面我們用簡化了的方式來描述QPKS的協(xié)議。
假設(shè)每個擴展集都是零一集只含有一個文件基本單位,而且為了簡單起見,假設(shè)沒有不可除的模糊狀況。(在有不可除模糊狀況時,可以在協(xié)議執(zhí)行過程中,調(diào)用解決方法將其解除)。我們進一步假設(shè)n是2的整次冪。
為從擴展集中挑出鍵或數(shù)據(jù)元(一個可辨認(rèn)元),可采用和以下相近的協(xié)議1.對于每個擴展集Si,擴展集接收者采用另外三個集合Ai,Bi和Ci。Ai裝已被淘汰的、不是真正的鍵或數(shù)據(jù)元,Bi和Ci分別各裝一半不在Ai中的元。不在Ai中的元里面有一個是真正的鍵或數(shù)據(jù)元。開始Ai,Bi和Ci都是空的。
2.m<<n÷23.(2*m是此刻Si中含的元的個數(shù),其中一個元是真正的鍵或數(shù)據(jù)元,而Si中元的個數(shù)每次都減半)。對于每個擴展集Si,如果其中還有一個以上的元,擴展集接收者隨機地把m個元從Si中移到Bi中而且復(fù)制Si中的其他元放入Ci。
4.對于每個擴展集Si,如果其中還有一個以上的元,從Ai隨意移n÷2-m個元到Si。如果Ai是空集,無變化。
5.對于每個擴展集Si,取Si中元之和si。如果Si只有一個元就讓si為零。
6.將s1,s2,...送給擴展集的發(fā)送者。
7.擴展集的發(fā)送者解譯密碼后送位碼b1,b2,...給s1,s2,...的發(fā)送者。bi為1如果si中含有真正的鍵或數(shù)據(jù)元,否則為0。
8.擴展集接收者在收到b1,b2,...,后,根據(jù)bi的值作如下處理如果bi=1那么Ai<<Bi∪Ai(新識別出的非鍵或非數(shù)據(jù)元被移入Ai)Bi<<Sj<<CiCi<<
否則如果bi=0那么Ai<<Ci∪Ai(新識別出的非鍵或非數(shù)據(jù)元被移入Ai)Ci<<Si<<BiBi<<endif9.如果所有Si中只剩下一個元,跳到第12步。
10.m<<m÷2.
11.回到第3步。
12.Si中剩下的唯一元就是鍵或數(shù)據(jù)元(仍帶有領(lǐng)頭位碼1),找出此元最多需要重復(fù)log2(n)次。
就和PPKS一樣,模糊雜質(zhì)也可以用在QPKS上。在第2和第10步中,不一定非要正好一半的元,大約一半或足夠多的元都可以選來生成子集,而且n不再非是2的整次冪。重復(fù)的次數(shù)也會比第12步給出的要多。在一個(小于密碼的最大可能值的)隨機數(shù)恰是真正的密碼(子集和)的概率τ很小而擴展集所有元都是可辨認(rèn)元的條件下,協(xié)議還可以擴展為另一種具體實現(xiàn)方法,即在第5步時,當(dāng)加密器(擴展集接收者)已辨認(rèn)出鍵或數(shù)據(jù)元時,即Si只剩下一個元的時侯,在第7步不送零而送一個隨機位碼。解密器(擴展集的發(fā)送者)發(fā)現(xiàn)假碼的可能性很高,因而意識到對方已經(jīng)辨認(rèn)出鍵或數(shù)據(jù)元。在這種情況下,解密器就可以隨機地用1或0作為bi進行答復(fù)。這種情形下,加碼器就不用管對應(yīng)于si的bi值了。再有,假密碼還可以隨時送出,而當(dāng)τ非常小的時候,也可以使用反饋操作方式,那時系統(tǒng)或加密和解密各方可以決定是否用假密碼的值于反饋。由于τ非常小,解不唯一的子集和導(dǎo)致協(xié)議失敗的情況也極為少見。只要對此技術(shù)有所了解就不難看出,如此發(fā)明稍后介紹的消除模糊狀況的協(xié)議類似的其它核實方法,可以用來防止哪怕是極小的失敗的可能。
下面介紹一些方法和協(xié)議,用于控制解密過程中由于模糊狀況所至的復(fù)雜程度的增長并解除模糊狀況。
據(jù)定義,可除模糊狀況是可以從解譯的密碼中消除的。一個具體的例子就是加了密的英文文字。其中不正確的譯本可以根據(jù)英文句法、語法、詞義等等加以解除;另一例子則是任意的數(shù)據(jù)塊帶有文件核實碼,而核實是通過核對根據(jù)各種解密的文本算出的文本核實碼與解出的文本核實碼。當(dāng)出現(xiàn)不可除模糊狀況時,可用如下的方法和協(xié)議來排除不正確的解碼。
解密器生成隨機位碼s送給加密器。加密器用事先規(guī)定的或當(dāng)時通過通訊建立的方法將s混入數(shù)據(jù)原碼。譬如,位碼被依次輪換從s和數(shù)據(jù)原位碼中一個一個地取出。如果數(shù)據(jù)原碼或s先被取完,剩下未被取完的位碼就加在后面。然后事先規(guī)定的和當(dāng)時通過通訊建立的一種單向特征函數(shù)或單向壓縮雜湊函數(shù)用在混合后的新位碼塊,其結(jié)果h就被送回給解密器。同時,解密器用同樣的方法將s與每個解譯版本混合而且使用同樣的雜湊函數(shù)于混合的位碼塊取得值h′。它然后將h和h′進行比較。如它們相同,對應(yīng)于h′的解譯的版本就可能是正確的解碼,否則解譯的版本就被作為錯譯碼而取締。在所有的解譯版本都被這樣處理完后,如果只有一個雜湊值和從加密器來的一致,那么這個版本就是正確的。有時一個以上的版本會雜湊成同一值,盡管這種情況在雜湊碰撞稀疏時極為鮮見。如果需要去掉所有錯譯碼,可以生成另一個隨機位碼序列,同時也可以確立另一個函數(shù)來重復(fù)執(zhí)行協(xié)議,直到正確的解碼被辨認(rèn)出來。
當(dāng)密碼不唯一解譯較多的時候,密碼文件的解法會多得無法控制。然而通過解決模糊狀況的協(xié)議,模糊狀況或解譯版本的數(shù)模可以隨時削減。解密器不一定非要加密器計算整個文件的雜湊值,而可以在解密過程中的任何時候都可以選擇原數(shù)據(jù)任何位碼,讓加密器計算雜湊值。
為了更保險,在解密過程中采用解除模糊狀況的協(xié)議的次數(shù)應(yīng)該盡量少而雜湊函數(shù)應(yīng)該送回只能消除部份而不是全部假解碼的雜湊值。只有最后一次執(zhí)行協(xié)議是才應(yīng)該用一個雜湊函數(shù)盡可能地消除不正確的解碼。一個簡單但有效的雜湊函數(shù)就是余數(shù)函數(shù)。譬如,當(dāng)模是5的時候,平均五分之四的不正確的解碼都會被消除。
此發(fā)明的另一種方法是用來減少簽字證明中對第三信任方的依賴。簽字證明可以采用多個注冊-轉(zhuǎn)換機構(gòu)而少數(shù)個別注冊-轉(zhuǎn)換機構(gòu)出現(xiàn)問題是可以及時發(fā)現(xiàn)。通過保險的通訊方式,簽字一方先將其簽字轉(zhuǎn)換鍵注冊在多個注冊-轉(zhuǎn)換機構(gòu),而這些機構(gòu)遵守規(guī)定不互通簽字者的公開身份或其簽字轉(zhuǎn)換鍵。簽字者的公開身份可以包括其姓名、地址、身份證明公開鍵等等。簽字鍵注冊機構(gòu)持有簽字者的公開身份但不持有其簽字轉(zhuǎn)換鍵;簽字轉(zhuǎn)換機構(gòu)持有簽字者的簽字轉(zhuǎn)換鍵但不知道此鍵與簽字者的關(guān)系。換言之,簽字轉(zhuǎn)換機構(gòu)有簽字轉(zhuǎn)換鍵但不知道此鍵歸誰所有。簽字鍵注冊機構(gòu)和簽字轉(zhuǎn)換機構(gòu)雙方以一個獨特的標(biāo)識I來分別查詢簽字者的身份與簽字轉(zhuǎn)換鍵。在注冊過程中,簽字者向簽字鍵注冊機構(gòu)出示其身份并從簽字轉(zhuǎn)換機構(gòu)那里得到一個即次注冊標(biāo)識,簽字者將用此標(biāo)識在送其簽字鍵給簽字轉(zhuǎn)換機構(gòu)時用來證明身份。簽字鍵注冊機構(gòu)認(rèn)證簽字者后,生成I和即次注冊標(biāo)識,并將兩者送給簽字轉(zhuǎn)換機構(gòu),同時也將即次注冊標(biāo)識送給簽字者。簽字鍵注冊機構(gòu)也將簽字者的公開身份和I一起作為相關(guān)的信息秘密保存起來。簽字者然后與和此簽字鍵注冊機構(gòu)相關(guān)的簽字轉(zhuǎn)換機構(gòu)取得聯(lián)系,用即次注冊標(biāo)識證明其身份并且提供簽字轉(zhuǎn)換鍵。簽字轉(zhuǎn)換機構(gòu)核實此簽字鍵無詐后通知簽字鍵注冊機構(gòu)以及簽字者,簽字鍵已被接受。簽字轉(zhuǎn)換機構(gòu)然后將簽字轉(zhuǎn)換鍵和I作為相關(guān)的信息秘密保存起來。對一個簽字者的簽名進行核實的時候,持簽字者用保險方式與一個或多個相關(guān)的簽字注冊-轉(zhuǎn)換機構(gòu)聯(lián)系,在那些機構(gòu)里簽字者曾注冊了他的簽字轉(zhuǎn)換鍵。持簽字者向簽字鍵注冊機構(gòu)證明其身份,并把簽字者的簽字以及其公開身份送給簽字鍵注冊機構(gòu)。簽字鍵注冊機構(gòu)通過簽字者的公開身份查到I,生成一個即次核實標(biāo)識J,并將簽字、I及J用保險的方式送給簽字轉(zhuǎn)換機構(gòu)。簽字轉(zhuǎn)換機構(gòu)通過從簽字鍵注冊機構(gòu)那里得來的I查到簽字轉(zhuǎn)換鍵,將簽字通過簽字轉(zhuǎn)換鍵轉(zhuǎn)換成T,并將J和T送給簽字鍵注冊機構(gòu)。簽字鍵注冊機構(gòu)再將T傳給持簽字者。持簽字者參照T所代表的文件對T進行核實。如果核實無誤,簽字就被接受。參照的方法多種多樣,依賴于具體的簽字鍵技術(shù)或方法。有時,T與未簽過字的文件的二進制碼完全一樣,而直接的比較就可以核實簽字的真實性,而有時T是文件的一種不可偽造的簡化形式,必需滿足一定的標(biāo)準(zhǔn),具備一定的特征或?qū)儆谀骋环秶?。簽字轉(zhuǎn)換機構(gòu)可以將簽字、I、J、T、及簽字時間作為相關(guān)的信息安全地記錄保存起來,而簽字鍵注冊機構(gòu)可以將簽字、I、J、T、簽字時間以及持簽字者的身份作為相關(guān)的信息安全地記錄保存起來。它們也可以將簽字時間、J、T、甚至簽字的本身公開,其中要求T和簽字既不是簽字的文件本身也不會泄露任何文件內(nèi)容。
例子為了更好地闡述此發(fā)明的基本概念,我們按如下的假設(shè)舉幾個例子1.我們采用按此發(fā)明所建立的加密系統(tǒng)的一般定義S={C,h,I,k,n,P,R,R}2.n=83.C={0,1,...,1,0}(除了第一和最后的段,其它段都進行取皺處理,其中對于1<i<k,ci=1)4.h=25.B=B1∪B2∪...∪Bk是皺集,其中Bi對映于鍵的第i段。
如果ci=0那么Bi=0={0,0,...}(即所有Bi的元都為零)如果ci≠0那么bi,1=0如果對于x<i,cx=0bi,2=1否則bi,2=2h*max(B1∪B2∪...∪Bi-1)
對于3≤j,bi,j=2h*bi,j-16.a1,1>(2h-1)*sum(B)7.對于1≤i≤k-2,tk-1=0及tk=2,ti=18.口令為ASCII碼123(3個八位碼)9.最短的口令(即系統(tǒng)要求長度的下限)是12個八位碼。
10.對口令的要求有所降低,這樣通過反復(fù)復(fù)制、相連的方法加長口令至12個八位碼,達到可接受的長度。
11.隨機數(shù)生成器和生成器的起始裝置分別是計算機C語言的randO和srandO。
12.段的長度,除了最后段會短些外,都在[2,3]的范圍之內(nèi)。
13.驅(qū)使鍵集生成的隨機因素屬于[1,8]的范圍內(nèi)。例如
14.驅(qū)使第i個模生成的隨機因素是2i-1*128。
15.對隨機數(shù)生成器進行重新起始化的種子是二進制碼,每個種子是擴展口令的兩個八位碼。
16.重新起始化點的范圍是[2,3].
17.第三段被指定對應(yīng)于模糊雜質(zhì)。即相對于鍵集第三段元的位碼組值的和將與一個模糊雜質(zhì)對映。
18.第三段通過一個函數(shù)SM3按以下的方法對映于模糊雜質(zhì)位碼組值和 0 1 2 3 4 5 6↓ ↓ ↓ ↓ ↓ ↓ ↓模糊雜質(zhì)倍數(shù) 0 3 4 5 6 8 919.最后段的最后一個元被指定通過一個函數(shù)IM4按一下的方法對映于模糊雜質(zhì)位碼組值和 0 1 2 3↓ ↓ ↓ ↓
模糊雜質(zhì)倍數(shù) 0 2 3 520.第三段的模糊雜質(zhì)是模糊雜質(zhì)集中的第一個元素,其值在[1,1000]的范圍以內(nèi)。
21.模糊雜質(zhì)比其對映的最后一段中最后一個元要小,但至少是其三分之二大。這個模糊雜質(zhì)是模糊雜質(zhì)集中的第二個元。
22.這兩個模糊雜質(zhì)將被公開,而且也將假設(shè)18和19中的對映通知加密的一方。因為(按假設(shè)8和9)口令比系統(tǒng)要求的要短,我們將它反復(fù)自行相接變成123123123123。有域隨機數(shù)是通過取域運算得來的r用((上限-下限+1)+下限)為模取余其中r是隨機數(shù),對此例子來說就是randO的輸出。
從擴展的口令中每次取兩個八位碼作為重新起始化的種子。此例中的六個種子就是12 31 23 1231 23。我們將使用雙八位碼的ASCII碼的二進制值。譬如,ASCII碼1和2的十進制值是49和50。而其二進制的值為00110001和00110010。因此,ASCII碼12的二進制值為0011000100110010即十進制的49*256+50=12594,用它作為第一個種子輸給srandO進行第一次起始化。擴展口令的八位碼并不一定要原封不動地使用??梢韵葘λ鼈冞M行處理,比如在用來作起始化之前將其位碼重新排列。
對此例來講,srandO是用12584啟動,并按假設(shè)16中所給的域生成一個序列。此序列是用來啟動srandO的六顆種子SEQs1,s2,...,s6然后用序列SEQ的第一個數(shù)s1作為現(xiàn)用的數(shù),通過以下的方法依次生成所需的隨機數(shù)讓i=1如果現(xiàn)用的SEQ的數(shù)變成零了(si=0)那么如果現(xiàn)用的SEQ的數(shù)不是s6(i<6)那么讓i加1用下一個種子si重新起始隨機數(shù)生成器調(diào)用randO并取所提供的域(對此例來說就是假設(shè)12中的[2,3])讓現(xiàn)用的SEQ中的數(shù)(si)減一以上的描述說明I中的數(shù),即重新起始化點,是怎樣生成的。也表明怎樣用一個隨機數(shù)生成器實現(xiàn)一個擴展雜湊函數(shù),即一個函數(shù)其輸入小于其輸出,因而用很有限的輸入通過擴展生成接近真隨機序列。因為這一過程的每一步是確定的,同樣的輸入會產(chǎn)生同樣的序列,而當(dāng)用它來生成鍵的時后,也會導(dǎo)致同樣的鍵。因此,口令與鍵的對映直接而有效。
在PPKS的例中,我們介紹WPKM和RPKM的雙重概念。
首先,段的大小是通過假設(shè)12設(shè)定的域[2,3]而產(chǎn)生的(在此我們只給出最后產(chǎn)生的隨機數(shù))。第一次,我們?nèi)〉秒S機數(shù)3。第二第三個隨機數(shù)都是2。我們不用第四次調(diào)用randO了,因為所定的域以及密碼系統(tǒng)的規(guī)定(n=sum({z1,z2,...,zk})),決定了最后一段的大小為1。即n-3-2-2=8-7=1。
然后皺集的元素就按假設(shè)5,定為段的元數(shù)減一。
對第一和第四段來說,由于c1=c4=0,不對其取皺。
第二段有一個元素需要取皺。
第三段也有一個元素需要取皺。
據(jù)假設(shè)5,B2={0,1}而且B3={0,4},自然B1={0,0,0}而且B4={0}。
接著,第一段的第一個元用下面的方法計算sum(B)*(2h-1)+Random(1,8),其中Random(1,8)意味著隨機數(shù)生成器按域[1,8]產(chǎn)生隨機數(shù)。所使用的域[1,8]是根據(jù)假設(shè)13。Random(1,8)生成的域內(nèi)的數(shù)是6,,因此第一段的第一個元素為sum(B)*(2h-1)+Random(1,8)=(1+4)*(22-1)+6=5*3+6=21.
到此為止生成的秘密鍵集只包含這一個元素A={a1,1}={21}下一個元素的計算方法是((sum(B)+sum(A))*(2h-1)+Random(1,8)=(5+21)*3+4=82,而第三個元素的計算方法是((sum(B)+sum(A))*(2h-1)+Random(1,8)=(5+21+82)*3+2=326?,F(xiàn)在A={21,82,326}。一個D集也被用來存放公開鍵集在取模過程中的中間結(jié)果。因此在這一階段,D={21,82,326}.
到此,應(yīng)有三個元素的第一段就生成了。
由于c1=0,不用取皺。因為t1=1,我們對現(xiàn)以建成的D取模。模數(shù)是這樣計算的m1,1=((sum(B)+sum(D))*(2h-1)+Random(1,128)=(5+429)*3+109=1411。所采用的域的上限(128)是根據(jù)假設(shè)14。一個與模數(shù)互質(zhì)的數(shù)w1,1=878被生成,同時此數(shù)的逆乘數(shù)w-11,=728也被生成。取得互質(zhì)數(shù)的方法很多。其中一種就是隨機地選不是m1,1因子的質(zhì)數(shù),而這些質(zhì)數(shù)的乘積就與m1,1互質(zhì)。生成此數(shù)的方法應(yīng)該是確定的,并可以用口令控制。B和D然后被取模D<<D*w1,1Ξm1,1(={95,35,1206})B<<B*w1,1Ξm1,1(={{0,0,0},{0,878},{0,690},{0}})M1={m1,1}={1411}and W1={w1,1}={878}and W-11=-11,1}={728}真正的算法在產(chǎn)生w′s時調(diào)用了RandomO,這些調(diào)用這里就不再一一說明了。因此SEQ中的si有時被遞減,而且種子也被用掉了。對此,我們不重復(fù)再明說了。
由于c2=1,第二段要經(jīng)取皺。先生成第二段的元素((sum(B)+sum(D))*(2h-1)+Random(1,8)=((878+690)+(95+35+1206))*3+2=8714.。即A={21,82,326,8714,8714}而且D={95,35,1206,8714,8714},然后取皺,即B2={0,878}被加到A和D的第二段{8714,8714}上。這一來A={21,82,326,8714,9592}并且D={95,35,1206,8714,9592}。因為B2以被用來對第二段取皺,就被設(shè)成零,即B2<<{0,0}。
下一個模數(shù)計算為m2,1<<((sum(B)+1sum(D))*(2h-1)+Random(1,256)=(690+(95+35+1206+8714+9592))*3+191=61187。然而通過前面所用的同樣方法生成w2,1=56426和w-12,1=3380。B和D再次取模后變成B={{0,0,0},{0,0},{0,19008},{0}}D={37201,16926,9812,58619,39177}而M={M1,M2}={{m1,1},{m2,1}}={{1411},{61187}}W={W1,W2}={{w1,1},{w2,1}}={{878},{56426}}W-1={W-11,W-12}={{w-11,1},{w-12,1}}={{728},{3380}}第三段施用同樣方法取得A={21,82,326,8714,9592,542234,542234}B={{0,0,0},{0,0},{0,0},{0}}D={37201,16926,9812,58619,39177,542234,542234}M={M1,M2,M3}={{m1,1},{m2,1},{}}={{1411},{61187},{}}W={W1,W2,W3}={{w1,1},{w2,1},{}}={{878},{56426},{}}
W-1={W-11,W-12,W-13}={{w-11,1},{w-12,1},{}}={{728},{3380},{}}因為第三段不取模(據(jù)假設(shè)7),M3,W3和W-13為空。在取皺后A={21,82,326,8714,9592,542234,561242}B={{0,0},{0,0},{0,0,0},{0}}D={37201,16926,9812,58619,39177,542234,561242}M={M1,M2,M3}={{m1,1},{m2,1},{}}={{1411},{61187},{}}W={W1,W2,W3}={{w1,1},{w2,1},{}}={{878},{56426},{}}W-1={W-11,W-12,W-13}={{w-11,1},{w-12,1},{}}={{728},{3380},{}}此后,第三段的模糊雜質(zhì)被生成Random(1,1000)=666.
因為第三段不需取模,接下來生成的就是最后一段的唯一的元素sum(D)*(2h-1)+λ*666+Random(1,8)=3804299其中λ不小于假設(shè)19所定的、模糊雜質(zhì)能用的最大倍數(shù)。此例中,λ=13。大些的λ是為留出充分空間,以便采用多種不同的對映,可以在不用更新鍵集或模糊雜質(zhì)集的情況下進行多次不同的加密。
按假設(shè)21,最后段的元素是
。B中元素已全為零了,并不再對以后鍵的建立有任何影響,因而以后就不再使用了。到此,各個參數(shù)就是A={21,82,326,8714,9592,542234,561242,3804299}F={666,2536200}D={37201,16926,9812,58619,39177,542234,561242,3804299}M={M1,M2,M3}={{m1,1},{m2,1},{}}={{1411},{61187},{}}W={W1,W2,W3}={{w1,1},{w2,1},{}}={{878},{56426},{}}
W-1={W-11,W-12,W-13}={{w-11,1},{w-12,1},{}}={{728},{3380},{}}因為tk=4=2,還需要對D以及F取模兩次,而m4,1=53277556、w4,1=6178291、及w-14,1=21375375被生成用來進行第一次取模。第一次取模后,參數(shù)變?yōu)锳={21,82,326,8714,9592,542234,561242,3804299}F={12369994,26194152}D={52504463,43188594,44810120,37691997,6969599,39998370,53220274,33112937}M={M1,M2,M3,M4}={{m1,1},{m2,1},{},m4,1}}={{1411},{61187},{},{53277556}}W={W1,W2,W3,W4}={{w1,1},{w2,1},{},{w4,1}}={{878},{56426},{},{6178291}}W-1={W-11,W-12,W-13,W-14}={{w-11,1},{w-12,1},{},{w-14,1}}={{728},{3380},{},{21375375}}在用m4,2=1809832417和w4,2=2085440329完成最后一次取模后,最終結(jié)果就是A={21,82,326,8714,9592,542234,561242,3804299}F={21933612,808030227}D={20053732,624037339,480756407,747752389,133089836,623579574,602702862,683922441}M={M1,M2,M3,M4}={{m1,1},{m2,1},{},{m4,1,m4,2}}={{1411},{61187},{},{53277556,1809832417}}W={W1,W2,W3,W4}={{w1,1},{w2,1},{},{w4,1,w4,2}}={{878},{56426},{},{6178291,2085440329}}
W1={W-11,W-12,W-13,W-14}={{w-11,1},{w-12,1},{},{w-14,1,w-14,2}}={{728},{3380},{},{21375375,908436921}}為了簡單起見,一個反序排列P定義為對于任意一個序列x1,x2,...,xn,P(x1,x2,...,xn))=(xn,xn-1,...,x2,x1)。而經(jīng)反排列的D就作為公開鍵向量。相對與D的反排列,同時為了響應(yīng)P對D的反序排列,模糊雜質(zhì)對映關(guān)系也相應(yīng)地被調(diào)整。我們將F以及假設(shè)18和19中的對映通知加密的一方。A,M,W,W-1,未經(jīng)取模轉(zhuǎn)換的皺集{{0,0,0},{0,1},{0,4},{0}},模糊雜質(zhì)集{666,2536200},以及假設(shè)18和19中的對映合起來是解密鍵。A是秘密鍵向量。
下面的例子用剛剛生成的鍵來描述加密過程。假設(shè)要加密的數(shù)據(jù)是ENGLISH □ OR □ GREEK其中□代表一個空格。加密的過程是把最前面的兩個字母(E和N)變成密碼。對的其它字母的加密可以用完全同樣的方式進行。還是為了簡單化,數(shù)據(jù)不經(jīng)過雙向攪亂。數(shù)字化輸入的ASCII碼值是十六進制 45 4E二進制 0100 0101 0100 1110按假設(shè)4,h=2。因此,二進制碼就被分成兩個碼一組01 00 01 01 01 00 11 10而每一組的十進制的值是1、0、1、1、1、0、3和2。以向量形式表示就是(1,0,1,1,1,0,3,2)并用來與公開鍵向量(683922441,602702862,623579574,133089836,747752389,480756407,624037339,20053732)生成內(nèi)積。最后段的最后那個唯一的元素是683922441,而相應(yīng)的模糊雜質(zhì)是808030227。相對的位碼組的值是1而且根據(jù)假設(shè)18,對映的倍數(shù)是2。對映與第三段的模糊雜質(zhì)是21933612。第三段位碼組值的和是0+1=1,而根據(jù)假設(shè)19對映的倍數(shù)是3。因此,加過密的0100010101001110是
1*683922441+(2*808030227)+0*602702862+1*623579574+(3*21933612)+1*133089836+1*747752389+0*480756407+3*624037339+2*20053732=5782425011下面,解密的過程是對剛生成的密碼(5782425011)的解譯,描述如下因為tk=4=2、M4={m4,1,m4,2}={53277556,1809832417}而且W-14={w-14,1,w-14,2}={21375375,908436921}被用來對密碼進行逆取模5782425011*908436921Ξ1809832417=441845897441845897*21375375Ξ53277556=9643907現(xiàn)在最后的一段就被暴露了,而且商of
就得到了。滿足
的x是1。因而,密碼中含有一個最后一段的(唯一的)元素,而相對應(yīng)解出的位碼組就是01。模糊雜質(zhì)2536200的倍數(shù)是SM4(x)=SM4(l)=2。1*3804299和2*2536200被從9643907中減去,而經(jīng)過處理的密碼成為767208。
因為M3,W3和W-13皆空,不用進行逆取模。
下面兩段被取皺了(因為c3和c2不為零),位碼不能馬上恢復(fù),而要稍侯。對第三段,處理到現(xiàn)在的密碼被解密鍵集的第三段的第一個元素除,商為
我們記住767208中有一個542234,以便在以后將位碼復(fù)原。所含模糊雜質(zhì)666的三倍是以用在最后一段的同樣方法確定的。1*542234和3*666被從767208中減去,剩下222976。由于第二段曾<p>實施例81
將1當(dāng)量的實施例58的產(chǎn)物(化合物101.0-B,表1)溶于95%的含有1.1當(dāng)量氫氧化鈉的甲醇水溶液中,于25℃攪拌16小時。真空濃縮得到為白色固體的產(chǎn)物。mp=240℃(d)。
實施例82
將1.0當(dāng)量的實施例81的產(chǎn)物(化合物107.0-B)溶于含有5.0當(dāng)量氯化銨和DEC、HOBT以及N-甲基嗎啉各1.0當(dāng)量的DMF中。于室溫下,將該混合物攪拌18小時,然后真空濃縮為殘留物,使其分配于乙酸乙酯和水之間。用碳酸氫鈉水溶液和鹽水依次洗滌有機相。用硫酸鎂干燥有機相,過濾并真空濃縮為殘留物。將殘留物經(jīng)硅膠層析,得到為白色固體的產(chǎn)物。mp=125.5-126.5℃。
權(quán)利要求
1.一個密碼方法包括步驟生成一個解密鍵,其中包括一個由可辨認(rèn)元素組成的、被邏輯分段的解密鍵集,而每一段是由多種不同方法之一生成的;從解密鍵生成一個加密鍵,其中每個解密鍵集段被轉(zhuǎn)換成相應(yīng)的加密鍵集段,而且其中至少兩個段的轉(zhuǎn)換方法相異;接受一個文件,而文件是以整數(shù)序列形式輸入的;將加密鍵集轉(zhuǎn)換成一個鍵向量并將輸入的整數(shù)序列轉(zhuǎn)換成與鍵向量同維的數(shù)據(jù)向量;生成密碼,生成過程包括取數(shù)據(jù)相量和鍵向量內(nèi)積;接受密碼;并且解譯密碼來復(fù)原文件。
2.一個如權(quán)利要求1所述的密碼方法,安全地把數(shù)據(jù)從一方S送到另一方R包括步驟在R方生成密碼鍵包括步驟在R方生成解密的秘密鍵,其成份之一是一個由可辨認(rèn)元素組成的、被邏輯分段的解密鍵集,其中每段都是用多種建鍵的方法之一生成的;從解密鍵生成一個加密鍵,其中每個解密鍵集段被轉(zhuǎn)換成相應(yīng)的加密鍵集段,而其中至少兩個段的轉(zhuǎn)換方法相異;將加密鍵從R方發(fā)送給S方;S方取得加密鍵;S方生成密碼文件,包括步驟接受一個以整數(shù)序列形勢輸入的文件;將加密鍵集轉(zhuǎn)換成一個鍵向量并將輸入的整數(shù)序列轉(zhuǎn)換成與鍵向量同維的數(shù)據(jù)向量;并且通過計算數(shù)據(jù)向量和鍵向量的內(nèi)積生成密碼;通過某個通訊渠道將加過密的文件從S方送到R方;R方接收加過密的文件;并且R方解譯加過密的文件恢復(fù)原文。
3.一個如權(quán)利要求1所述的密碼方法還包括步驟生成一個包括解密模糊雜質(zhì)集的解密鍵;導(dǎo)出一個模糊雜質(zhì)的對映從而使得解密鍵集的元素和模糊雜質(zhì)集的元素之間建立起解密的關(guān)系;從解密鍵導(dǎo)出一個加密鍵,其中包括一個從解密模糊雜質(zhì)集導(dǎo)出的加密模糊雜質(zhì)集,沿襲模糊雜質(zhì)對映,從而使得加密鍵集的元素和加密模糊雜質(zhì)集的元素之間建立起加密的關(guān)系;計算密碼文件的密碼,其中包括按照數(shù)據(jù)向量的整數(shù)值以及模糊雜質(zhì)對映,施加模糊雜質(zhì);并且逐個解譯密碼,其中包括按照模糊雜質(zhì)對映去掉模糊雜質(zhì),恢復(fù)原文件。
4.一個如權(quán)利要求2所述的密碼方法,安全地把數(shù)據(jù)從一方S送到另一方R還包括步驟生成一個R方的秘密解密鍵,其中包括一個R方的秘密模糊雜質(zhì)集;導(dǎo)出一個R方的秘密模糊雜質(zhì)對映從而使得解密鍵集的元素和模糊雜質(zhì)集的元素之間建立起解密的關(guān)系;R方從解密鍵導(dǎo)出一個加密鍵,其中包括從解密模糊雜質(zhì)集導(dǎo)出一個加密模糊雜質(zhì)集,沿襲模糊雜質(zhì)對映,從而使得加密鍵集的元素和加密模糊雜質(zhì)集的元素之間建立起加密的關(guān)系;S方按照數(shù)據(jù)向量的整數(shù)值以及模糊雜質(zhì)對映施加模糊雜質(zhì),算出文件的密碼;并且R方逐個解譯密碼,其中包括按照模糊雜質(zhì)對映去掉模糊雜質(zhì),恢復(fù)原文件。
5.一個密碼方法,安全地將數(shù)據(jù)從S一方送到另一方R包括步驟R方生成密碼鍵包括步驟生成一個R方的秘密解密鍵,其中此解密鍵的解譯不唯一;并且從此解密鍵導(dǎo)出一個加密鍵,而用此加密鍵加過密的文件對外具有不可消除的模糊性;將加密鍵從R方發(fā)給S方;S方取得加密鍵;S方接受一個文件;S方用加密鍵對文件加密;S方將加過密的文件通過某一通訊渠道送給R方;R方接收加過密的文件;并且R方解譯加過密的文件從而得到所有可能的解碼,并通過某種解決方法排除非真碼來恢復(fù)原文。
6.一個密碼方法,安全地將數(shù)據(jù)從S一方送到另一方R包括步驟S接受一個以位碼序列形式出現(xiàn)的文件;S將位碼序列轉(zhuǎn)換成n個數(shù)a1,a2,...,an用n個隨機選取、長短不一的子序列組成,而每個子序列之首都被加上一個值為1的位碼;生成一個S方的秘密解密鍵,其中包括至少n個唯一或近乎唯一集D1,D2,...,Dn作為擴展解密集對應(yīng)與那n個數(shù),而每個擴展集中至少有一個元素是可感覺元。S從解密鍵導(dǎo)出一個加密鍵,對于1≤i≤n,將解密鍵擴展集Di轉(zhuǎn)換成加密鍵擴展集Ei,其中每個解密鍵擴展集Di的某個元素被轉(zhuǎn)換成相對應(yīng)的ai;將加密鍵從S方送到R方;R執(zhí)行以下步驟至少一輪,直到每個Ei中的ai都通過排除Ei中非ai的元素而識別出來R生成密碼包括以下步驟生成隨機整數(shù)向量Vi對應(yīng)與Ei,其中1≤i≤n;并且生成密碼si,包括取Vi和Ei的內(nèi)積,其中1≤i≤n;R方將密碼通過某一通訊渠道送給S方;S方收到密碼并確認(rèn)si中是否含有從Di中的可感覺元轉(zhuǎn)換成的ai,其中1≤i≤n;S方向R方通過某個通訊渠道報告所說的含納情況;并且R方根據(jù)所說的報告確認(rèn)出在Ei中不是ai的元素,其中1≤i≤n;并且R重新組建原文件。
7.一個保障信息和通訊安全的密碼方法,具有保險地交換公開加密鍵的特性以及相互確認(rèn)通訊各方的不可分割的特性,包括步驟采用身份證明公開鍵而不依賴提前約定的機密也不依賴第三信任者,進行不可分割的、最基礎(chǔ)的相互確認(rèn)以及保險的公開加密鍵交換。
8.一個如權(quán)利要求6所述保障信息和通訊安全的密碼方法,具有一個X方與另一個Y方之間保險地交換公開加密鍵以及恰當(dāng)?shù)南嗷ゴ_認(rèn)通訊雙方的不可分割性,包括步驟建立一個通訊渠道,以X方為發(fā)起者;X方通過上述通訊渠道發(fā)給Y方Kyip(Kxp),其中Kxp是X方要發(fā)給Y方的公開加密鍵,而Kyip是Y方的公開身份證明鍵;Y方在一定時間t內(nèi)收到Kyip(Kxp);Y方通過解密得到K1xp=Kyis(Kyip(Kxp))其中Kyis是Y方相對于Kyip的身份證明的秘密解密鍵;Y方建立一個挑戰(zhàn)包K1xp(Kxip(β·Kyp·Cy)),其中Kyp是Y方要發(fā)給X方的公開加密鍵,Cy是Y方生成的一個挑戰(zhàn),而β=H(K1xp·Cy)是由某個單向特征函數(shù)H生成的;Y方通過所說的通訊渠道將K1xp(Kxip(β·Kyp·Cy))送到X方;X方在所說的時間t以內(nèi)收到并解譯K1xp(Kxip(β·Kyp·Cy))β′·K1yp·C1y=Kxis(Kxs(K1xp(Kxip(β·Kyp·Cy)))其中Kxis是X方相對于Kxip的身份證明秘密解密鍵而Kxs是X方相對于Kxp的秘密解密鍵;X方驗證β′是否等于H(Kxp·C1y),如果不等就宣告相互確認(rèn)失敗并終止此過程;X方建立一個挑戰(zhàn)包K1yp(Kyip(γ·Rx·Cx)),其中Kyip是Y方的身份證明公開鍵,Cx是X方的一個挑戰(zhàn),RX是X方應(yīng)Y方對C1y的答復(fù),而γ=H(K1yp·Cx);X方通過所說的通訊渠道將K1yp(Kyip(γ·Rx·Cx))送給Y方;Y方在所說的時間t以內(nèi)收到并解譯K1yp(Kyip(γ·Rx·Cx))γ′·R1x·C1x=Kyis(Kys(K1yp(Kyip(γ·Rx·Cx)))其中Kys是Y方相對于Kyp的秘密解密鍵;Y方驗證γ′是否等于H((Kyp·C1x)并且R1x是否等于Rx,如果其中任何一項不等就宣告相互確認(rèn)失敗并終止此過程,其中Rx是根據(jù)Cy所期待的答復(fù);Y方通過所說的通訊渠道送給X方K1xp(Kxip(Ry)),其中Ry是Y方針對于C1x給X方的答復(fù);X方受到并解譯K1xp(Kxip(Ry))R1y=Kxis(Kxs(K1xp(Kxip(Ry))))X方驗證R1y是否等于Ry,如果不等就宣告相互確認(rèn)失敗并終止此過程,其中Ry是根據(jù)Cx所期待的答復(fù);如果任何時候1)時間t過了,或者2)任意解密失敗就宣告相互確認(rèn)失敗并終止此過程;并且使用K1xp=Kxpand K1yp=Kyp對通訊以及數(shù)據(jù)傳送進行進一步保護。
9.一個如權(quán)利要求8中所述的身份證明方法,用于以塊操作密碼器為加密及解密設(shè)備的密碼系統(tǒng),其中至少X方的一個守時塊按定義好的或商定的方式被分成m>1部份,p1,p2,...,pm,并從X方送至Y方,而在送每個pj之后停頓αj,這里對于1≤j<m和1≤i<m-1,∑αj+d≥t并且∑αi+d<t,而d是傳送延遲的上限,而且其中至少Y方的一個守時塊按定義好的或商定的方式被分成n>1部份,q1,q2,...,qn,并從Y方送至X方,而在送每個qj之后停頓βj,這里對于1≤j<n和1≤β<n-1,∑βj+d≥t和∑βi+d<t,而X方期待在t時間內(nèi)得到q1,Y方也期待在t時間內(nèi)得到p1,雙方最后都重新恢復(fù)守時塊。
10.一個用于解決解密過程中出現(xiàn)的不可消除的模糊狀況的方法,其模糊狀況來源于某一S方送給另一R方的加過密的文件,而消除方法是依照一個非零界值,通過一組組地排除非真的解譯碼來實現(xiàn)的,其中排除過程在非真解碼數(shù)組低于所說的界值時結(jié)束,并且在每一輪排除非真解碼組時,雙方采用事先約定或即時商定的一個單向特征函數(shù),包括至少一輪以下的步驟指定R方生成一個隨機位碼序列s,此序列可含零個或多個位碼;R方將s以及p,即對所說文件某一部份的指定,通過一個通訊渠道送給S方;S方收到s及p;S方將s與p所指定的文件部份混合,得到混合后的結(jié)果b;S方計算出特征值h=H(b);S方將h通過所說的通訊渠道送給R方;R方收到h;并且R方針對每一組解碼C重復(fù)以下步驟將s與C中p所指定的部份混合得到混合后的結(jié)果b′;計算出特征值h′=H(b′);并且如果h′不等于h,拋棄C。
11.一個攪亂、加密方法,用于一個密碼系統(tǒng),通過采用一個規(guī)定的、公開的、由s>0位碼單位組成的二進制塊為碼簿,其中s-位的單位是均勻分布于
]>和一個解密模糊雜質(zhì)集,其段對映于Kd的段G=G1∪G2∪...∪Gk還包括一個皺集,其段對應(yīng)于Kd的段B=B1∪B2∪...∪Bk其中Kd,G和B是保密的,而對于1≤i≤k,Kd的i段是由以下至少一種方法生成的1)普通法2)淹沒法3)取皺法4)一對一對映法5)多對一對映法而對于一個淹沒的段idi,j=2h(j-1)*mi,1≤j≤zi,其中mi的下標(biāo)i別定義為i≡i,0≡i-1,zi-1而對于一個取皺的段iσ=sum(ηθ*|θ|)+rdi,j=σ+Ψi-1(bi,j),1≤j≤zi而對于一個用其它方法生成的段di,j=Σθ∈θi-1ηθ*|θ|+(2h-1)Σt=1j-1di,t+r,]]>對于1≤j≤zi其中r是個非零正范圍值,ηθ是θ∈Θi-1可使用的最大倍數(shù),而Θi定義為
對于0≤i≤k其中Ψi(X∪Y)=Ψi(X)∪Ψi(Y),對于任何X和Y集Ψi(S)={Ψi(S1),Ψi(S2),...,Ψi(Sn)}對于任何集S={S1,S2,...,Sn}Ψi=Γi°Γi-1°...°Γi
(wn,v,mn,v)=1mn,v>Σθ∈θ-k,v=1ηθ*|θ|]]>
以及θ-u=(θu-1∪Kdu∪Gu)-ψu-1(Bu)]]>其中Cu,v({μ1,μ2,...,μn})={Cu,v(μ1),Cu,v(μ2),...,Cu,v(μn)}代表生成整個鍵的互補函數(shù)而對于任意數(shù)μ,Cu,v(μ)或被定義為μ+mu,v如果
或μ-Mu,v如
或μ otherwise其中g(shù)∈G是一個范圍值;生成模糊雜質(zhì)對映函數(shù)FMO,這樣一來密鍵集的元素就與模糊雜質(zhì)集的元素建立了一種聯(lián)系,而FMO對于某一段i至少有一個元素是采用一一對映法的,定義為FM(X)=Σi=1kΣj=1ziIM(xi,j)]]>滿足IM(μ-1)+(μ-1)*di,j<IM(μ)+μ*di,j<IM(μ+1)+(μ+1)*di,j,其中X=X1∪X2∪...∪Xk是輸入給FMO、屬于
]>yi,j<[γ′-Σm=j+1zi(yi,m*di,m)di,j],]]>對于1≤j≤zi并且在得到所有的yi,j(1≤j≤zi)時,γ′經(jīng)過以下調(diào)整γ′<γ′-Σj=1zi(yi,j*di,j)]]>而相對于經(jīng)過淹沒的某段i,解密依照γ′<Γi-1(γ′)]]>yi,j<γ′-Y′×Ω2h(j-1)*mi-1,ti-1]]>其中Ω是從解密鍵集轉(zhuǎn)換來的Θi-1中的元素,而Y′是解密后的{y1,1,y1,2,...,yi-1,u},其中u=zi-1,而相對于經(jīng)過取皺的某段i,解密依照γ′<Γi-1(γ′)]]>qi<[γ′di,l]]]>yi,j<b′i,j對于1≤j≤ziyi,l<qi-Σj=2zi(yi,j)]]>其中b′i,j是解譯出來的γ′中所含可辯別元bi,j的倍數(shù),而在得到qi后,γ′經(jīng)過以下調(diào)整γ′<<γ′-qi*di,1.而相對于經(jīng)過一對一對映的某段i,對j=zi遞減到1,解密依照γ′<<Γi-1(γ′)]]>yi,j<<q,滿足FM(q-1)+(q-1)*di,j≤FM(q)+q*di,j<FM(q+1)+(q+1)*di,j而在得到每個yi,j后,γ′經(jīng)過以下調(diào)整γ′<<γ′-FM(yi,j)-yi,j*di,j而相對于經(jīng)過多對一對映的某段i,對j=zi遞減到1,解密依照γ′<<Γi-1(γ′)]]>yi,j<<q,滿足FM(q)+q*di,j≤γ′而在得到每個yi,j后,γ′經(jīng)過以下調(diào)整γ′<γ′-yi,j*di,j-(SM(Σm=jziIM(yi,m)))-(SM(Σm=j+1ziIM(yi,m)))]]>其中對相對映于解密鍵最后生成的一段的段k的解譯時,γ′等于要進行解譯的密碼γ,并且
Γu,v-1(μ)=Cu,v-1((wu,v-1*μ)Ξmu,v)]]>Cu,v-1代表Cu,v的逆,其中Cu,v-1(μ)對于任意數(shù)μ定義為μ+mu,v如果μ<-NEGu,v或μ-mu,v如果μ>POSu,v或μ otherwiseNEGu,v=Σθ<0θ∈θu,v-1θ]]>POSu,v=Σθ>0θ∈θz,v-1θ]]>
15.一個密碼系統(tǒng)包括如下設(shè)備設(shè)備生成一個解密鍵,其中包括一個由可辨認(rèn)元素組成的、被邏輯分段的解密鍵集,而每一段是由多種不同方法之一生成的;設(shè)備從解密鍵生成一個加密鍵,其中每個解密鍵集段被轉(zhuǎn)換成相應(yīng)的加密鍵集段,而其中至少兩個段的轉(zhuǎn)換方法相異;設(shè)備接受一個文件,而文件是以整數(shù)序列形式輸入的;設(shè)備將加密鍵集轉(zhuǎn)換成一個鍵向量并將輸入的整數(shù)序列轉(zhuǎn)換成與鍵向量同維的數(shù)據(jù)向量;設(shè)備生成密碼,生成過程包括取數(shù)據(jù)向量和鍵向量內(nèi)積;設(shè)備接受密碼;并且設(shè)備解譯密碼來復(fù)原文件。
16.一個權(quán)利要求15所述的密碼系統(tǒng),安全地把數(shù)據(jù)從一方S送到另一方R包括如下設(shè)備設(shè)備在R方生成密碼鍵包括設(shè)備在R方生成解密的秘密鍵,包括一個由可辨認(rèn)元素組成的、被邏輯分段的解密鍵集,其中每段是由多種方法之一生成的;并且設(shè)備從解密鍵生成一個加密鍵,其中每個解密鍵集段被轉(zhuǎn)換成相應(yīng)的加密鍵集段,而其中至少兩個段的轉(zhuǎn)換方法相異;設(shè)備將加密鍵從R方發(fā)給S方;設(shè)備在S方取得加密鍵;設(shè)備在S方生成密碼文件,包括設(shè)備接受一個以整數(shù)序列形式輸入的文件;設(shè)備將加密鍵集轉(zhuǎn)換成一個鍵向量并將輸入的整數(shù)序列轉(zhuǎn)換成與鍵向量同維的數(shù)據(jù)向量;并且設(shè)備通過計算數(shù)據(jù)向量和鍵向量的內(nèi)積生成密碼;設(shè)備通過某個通訊渠道將加過密的文件從S方送到R方;設(shè)備在R方接收加過密的文件;并且設(shè)備在R方解譯加過密的文件恢復(fù)原文。
17.一個如權(quán)利要求15所述的密碼系統(tǒng)還包括如下設(shè)備設(shè)備生成一個包括解密模糊雜質(zhì)集的解密鍵;設(shè)備導(dǎo)出一個與模糊雜質(zhì)的對映從而使得解密鍵集的元素和模糊雜質(zhì)集的元素之間建立起解密的關(guān)系;設(shè)備從解密鍵導(dǎo)出一個加密鍵,其中包括一個從解密模糊雜質(zhì)集導(dǎo)出的加密模糊雜質(zhì)集,沿襲模糊雜質(zhì)對映,從而使得加密鍵集的元素和模糊雜質(zhì)集的元素之間建立起加密的關(guān)系;設(shè)備計算密碼文件的密碼,其中包括按照數(shù)據(jù)向量的整數(shù)值以及模糊雜質(zhì)對映,施加模糊雜質(zhì);并且設(shè)備逐個解譯密碼,其中包括按照模糊雜質(zhì)對映去掉模糊雜質(zhì),恢復(fù)原文件。
18.一個如權(quán)利要求16所述的密碼系統(tǒng),安全地把數(shù)據(jù)從一方S送到另一方R包括如下設(shè)備設(shè)備在R方生成密碼鍵包括設(shè)備生成一個R方的秘密解密鍵,其中此解密鍵的解譯不唯一;并且設(shè)備從此解密鍵導(dǎo)出一個加密鍵,而用此加密鍵加過密的文件對外據(jù)有不可消除的模糊性;設(shè)備將加密鍵從R方發(fā)給S方;設(shè)備在S方取得加密鍵;設(shè)備在S方接受一個文件;設(shè)備在S方用加密鍵對文件加密;設(shè)備在S方將加過密的文件通過某一通訊渠道送給R方;設(shè)備在R方接收加過密的文件;并且設(shè)備在R方解譯加過密的文件從而得到所有可能的解碼,并通過某種解決方法排除非真碼來恢復(fù)原文。
19.一個用來生成鍵的加密系統(tǒng)包括如下設(shè)備設(shè)備生成一個解密鍵,其中包括一個由可辨認(rèn)元素組成的、被邏輯分為k>1段的解密鍵集
(其中
對1≤j≤k是一個段)={d1,1,d1,2···,d1,z1,d2,1d2,2···d2,z2,···,dk,1,dk,2,···,dk,zk}]]>和一個解密模糊雜質(zhì)集,其段對應(yīng)于Kd的段G=G1∪G2∪...∪Gk還包括一個皺集,其段對應(yīng)于Kd的段B=B1∪B2∪...∪Bk其中Kd,G和B是保密的,而對于1≤i≤k,Kd的i段是由以下至少一種方法生成的1)普通法2)淹沒法3)取皺法4)一對一對映法5)多對一對映法而對于一個淹沒的段idi,j=2h(j-1)*mi,1≤j≤zi,其中mi的下標(biāo)i別定義為i≡i,0≡i-1,zi-1而對于一個取皺的段iσ=sum(ηθ*|θ|)+rdi,j=σ+Ψi-1(bi,j),1≤j≤zi而對于一個用其它方法生成的段di,j=Σθ∈θi-1ηθ*|θ|+(2h-1)Σt=1j-1di,t+r,]]>對于1≤j≤zi其中r是個非零正范圍值,ηθ是θ∈Θi-1可使用的最大倍數(shù),而Θi定義為
對于0≤i≤k其中Ψi(X∪Y)=Ψi(X)∪Ψi(Y),對于任何X和Y集Ψi(S)=(Ψi(S1),Ψi(S2),...,Ψi(Sn)}對于任何集S={S1,S2,...,Sn}Ψi=Γi°Γi-1°...°Γ1
而相對于經(jīng)過一對一對映的某段i,對j=zi遞減到1,解密依照γ′<<Γi-1(γ′)]]>yi,j<<q,滿足FM(q-1)+(q-1)*di,j≤FM(q)+q*di,j<FM(q+1)+(q+1)*di,j而在得到每個yi,j后,γ′經(jīng)過以下調(diào)整γ′<<γ′-FM(yi,j)-yi,j*di,j而相對于經(jīng)過多對一對映的某段i,對j=zi遞減到1,解密依照γ′<<Γi-1(γ′)]]>yi,j<<q,滿足FM(q)+q*di,j≤γ′而在得到每個yi,j后,γ′經(jīng)過以下調(diào)整γ′<γ′-yi,j*di,j-(SM(Σm=jziIM(yi,m)))-(SM(Σm=j+1ziIM(yi,m)))]]>其中對相對映于解密鍵最后生成的一段的段k的解譯時,γ′等于要進行解譯的密碼γ,并且
而對于某個多對一對映段i,F(xiàn)MO被定義為FM(X)=FM(X1∪X2∪...∪Xk)=FM(X1)+FM(X2)+...+FM(Xk)其中FM(Xi)=SM(∑IM(xi,j))1≤j≤zi并且如果ei,j是個對映元素IM(xi,j)就等于xi,j否則為零,SM(μ)給出α*gi,j,其中α對映于μ且滿足SM(μ-1)<SM(μ)<SM(μ+1);設(shè)備從解密鍵生成一個加密鍵Θk,沿襲模糊雜質(zhì)對映,設(shè)備生成密碼包括設(shè)備接受一個用一系列在
]>yi,j<[γ′-Σm=j+1zi(yi,m*di,m)di,j],]]>對1≤j≤zi并且在得到所有的yi,j(1≤j≤zi,)時,γ′經(jīng)過以下調(diào)整γ′<γ′-Σj=1zi(yi,j*di,j)]]>而相對于經(jīng)過淹沒的某段i,解密依照γ′<Γi-1(γ′)]]>yi,j<γ′-Y′×Ω2h(j-1)*mi-1,ti-1]]>其中Ω是從解密鍵集轉(zhuǎn)換來的Θi-1中的元素,而Y′是解密后的{y1,1,y1,2,...,yi-1,u},其中u=zi-1而相對于經(jīng)過取皺的某段i,解密依照γ′<Γi-1(γ′)]]>qi<[γ′di,l]]]>yi,j<bi,j′,]]>對于1≤j≤ziyi,1<qi-Σj=2zi(yi,j)]]>其中b′i,j是解譯出來的γ′中所含可辯別元bi,j的倍數(shù),而在得到qi后,γ′經(jīng)過以下調(diào)整γ′<<γ′-qi*di,1.而相對于經(jīng)過一對一對映的某段i,對j=zi遞減到1,解密依照γ′<<Γi-1(γ′)]]>yi,j<<q,滿足FM(q-1)+(q-1)*di,j≤FM(q)+q*di,j<FM(q+1)+(q+1)*di,j而在得到每個yi,j后,γ′經(jīng)過以下調(diào)整γ′<<γ′-FM(yi,j)-yi,j*di,j而相對于經(jīng)過多對一對映的某段i,對j=zi遞減到1,解密依照γ′<<Γi-1(γ′)]]>yi,j<<q,滿足FM(q)+q*di,j≤γ′而在得到每個yi,j后,γ′經(jīng)過以下調(diào)整γ′<γ′-yi,j*di,j-(SM(Σm=jziIM(yi,m))-(SM(Σm=j+1ziIM(yi,m))]]>其中對相對應(yīng)于解密鍵最后生成的一段的段k的解譯時,γ′等于要進行解譯的密碼γ,并且
Γu,v-1(μ)=Cu,v-1((wu,v-1*μ)Ξmu,v)]]>Cu,v-1,代表Cu,v的逆,其中Cu,v-1(μ)對于任意數(shù)μ定義為μ+mu,v如μ<NEGu,v或μ-mu,v如μ>POSu,v或μ otherwiseNEGu,v=Σθ<0θ∈θu,v-1θ]]>POSu,v=Σθ>0θ∈θu,v-1θ]]>
全文摘要
一個背袋式的信息及通訊系統(tǒng),其特征是對鍵的邏輯分段,其中各段是用不同的方法生成并采用不同的轉(zhuǎn)換;而其另一特征是子集的密碼的多種解,而解密器在有必要時通過協(xié)議解除多解狀況。
文檔編號H04L9/30GK1248365SQ98801794
公開日2000年3月22日 申請日期1998年1月13日 優(yōu)先權(quán)日1997年1月14日
發(fā)明者張景隆 申請人:張景隆