新四季網

數據加密的裝置和方法

2023-05-29 06:43:11 1

專利名稱:數據加密的裝置和方法
技術領域:
本發明是屬於密碼學領域,特別是關於用密鑰控制進行數據加密與解密的裝置和方法。
在現代的電子時代中,通過在公共電信信道上交換的數據處理日常的商務、公務及私人事務與日俱增。敏感的數據常常是儲存在不保密的存儲器中。通過電信信道交換的數據或存儲在保密存儲器中的數據易被其他人未經許可的存取,因而就不能確保其機密性。
數據加密就是防止數據在存儲器中或在公共電信信道上傳輸時被非授權存取的一種方法。加密是把明文轉換為不可理解的密文的一種計算形式。解密是把無法理解的密文恢復為明文的加密的逆計算。
在實踐中,數據首先由加密者把明文加密成密文後才用於公共信道傳輸或儲存起來。收到或檢索這些數據時,解密者需把密文解密成明文,以便獲得原來的數據。
在密鑰加密方案中,用密鑰把有關加密者如何進行加密的信息傳送到被授權的解密者那裡,以便解密者能構成一個逆運算,進行有效的解密。另一方面,如果不是不可能的話,其它非授權解密者無此密鑰是十分困難破譯密文的。
常規的密鑰加密系統中,建立一種計算的步驟序列或算法來加密解密。密鑰加密系統通常都是設計成算法是公知的。唯獨需要保密的是密鑰,而該密鑰只能是發送者和被授權接受者之間共享。
典型的密鑰提供一個用戶選擇的值,這值和明文一起作為算法的輸入進行加密和解密。通常,這種算法通過某種模運算將密鑰值加到明文上來改變明文。
在實際上,密鑰通過保密信道由發送者秘密地傳送給授權接收者。這樣,授權接收者採用公知算法,藉助密鑰有效地把密文解密。另一方面,其它不知道密鑰或沒有任何其它密碼破譯方式的人就不得不在該密鑰間隔中一個個的找出可能的密鑰,看看是否能可懂的解密。當密鑰間隔很長時,認為加密系統有很高的加密強度,而且其解密計算是不可行的。
如果在合理的時間內,利用合理的資源實際上不能實現,這個計算任務是不可行的計算。如在可能的最快的計算機上計算100年可認為是不合理的。類似地,使用100萬億美元專門製造的計算機可認為是不合理的。
密鑰系統的一個例子是「一次密鑰體制」「one-time pad」)或Vernam方案,首先把明文編碼為二進位比特串並且用模2加法加到密鑰上,把明文轉換成密文。密鑰是和明文一樣長的一串隨機比特,而且只能用一次。該方案被證明非常安全,但是不希望的是需要密鑰的每個位對應明文的每個位。要求密鑰的位和要傳遞的信息一樣長,而不能再次使用,使得從現代數據事務處理的角度看這種方案是不實用的。
有人已試圖採用偽隨機生成器產生大量的密鑰隨機位。偽隨機生成器通常是用一個反饋移位寄存器來實現的。所產生的偽隨機序列完全取決於移位寄存器中的初始值。初始值可以用作密鑰,因此可以使少量的密鑰位產生一長串「隨機」位。然而,採用偽隨機生成器的一次插入密鑰體制加密系統對已知明文的攻擊很敏感,也就是在知道了一部分密文及其相應的明文時是很敏感的。
其它的方法也考慮採用較短密鑰串的密鑰加密系統。在這些方法中較顯著的是「數據加密標準」(DES),由美國國家標準局於1977年元月在聯邦信息處理標準(FIPS)出版物第46號上公布。自那以後,DES就被確定為一個標準的公共加密方法。根據DES,加密和解密是按塊進行的,每個塊為64位長。基本的算法包括一系列預定排列的十六次迭代,加入密鑰和在每個64位塊的每個分塊中的預定置換運算。56位密鑰通過移位寄存器循環生成十六個迭代值。
在過去十年中DES被正式作為標準採用,但普遍認為現時應該有一種新的更好的標準來取代。一個原因是56位密鑰太短。它僅能產生大約1017個可能密鑰的密鑰間隔。從現代高速和多處理器計算機來看,在此密鑰長度的密鑰間隔的窮舉在計算上是有可能的(即嘗試每個可能的密鑰,看是否能得到解密的方法)。另一個缺點是基本設計原理,例如各種不同排列的選擇、置換和所需的迭代次數都沒有清楚的說明。對有關該系統中設有「陷井」(trapdoor)的可能性一直都存爭論。因此,如果用戶不能容易地和精確地鑑定該系統的實際安全性,它就不能是一個真正的公共加密系統。此外,用戶沒有系統的方法修正算法或變換以使系統更安全或增加加密強度。不管怎樣,要增加加密強度,計算機的開銷就要呈指數增加。這是因為DES,和其它短密鑰方法一樣,基於增加計算量原理獲得加密。相同的短密鑰在不同條件下多次使用以把長的多的明文加密。
另一種方法是RSA(Rivest,Shamir和Adleman)公共密鑰系統。它基於計算複雜性(computationally complex)的原理獲得加密強度。用戶選擇兩個非常大的素數,最好每個上百位的數字,產生一對不同的加密與解密的密鑰。加密是用密鑰在模算法下控制取冪完成的。密鑰可做成對任何要對信息加密的用戶是公共的,但它不能導出解密的密鑰。這樣,加密的信息只能由有解密密鑰的用戶讀出。不希望的特性是系統的安全取決於使用很難得到的兩個非常大的素數。並且,如果找出一種很快的方法分解這兩個大的素數的乘積,系統就很容易被攻破。
為此,仍需要有一種改進的數據加密系統。
本發明總的目的是為數據加密和解密提供改進的方法和裝置,而不會有前述方法的缺點。
本發明的一個目的是為加密和解密提供一種方法和裝置,其基本原理是清楚易懂並是可公開的,又不損害它的安全性。為此,本發明提供了一個真正的能夠作為標準的公共加密系統。
本發明的另一個目的是為數據加密和解密提供一種極其安全的方法和裝置。
本發明的再一個目的是為數據加密和解密提供一種用戶可以選擇加密強度的方法和裝置。
本發明的又一個目的是為數據加密和解密提供一種容易實現和計算開銷小的方法和裝置。
這些和其它的目的是通過產生一個用戶可以選擇的映射實現的,該映射是從一個巨大映射集選出來的。該映射作用於分成塊的明文。明文塊的大小N是用戶可選擇的,每個明文塊都等效於一個N維的明文向量x。該映射是由一組用戶可選擇的映射參數所指定的,該映射把明文向量x映射為N維的密文向量y。相應的逆映射也存在,用於把密文向量y反向映射為明文向量x。映射集中映射的基本原理和形式是可以公開的而不會影響該方法和裝置的安全性。該映射的特徵是映射集的大小是塊的大小和每個映射參數範圍的指數函數。
根據本發明的一個方面,塊的大小和每個映射參數的範圍也是保密的,只能通過密鑰在用戶之間秘密使用。這樣,不知道密鑰的人用通常破譯密碼的方法在映射集中嘗試每個映射從而找出明文是不可行的。這是因為他們面臨著在不確定大小的映射集中採用在計算上是不可行的窮舉法任務。
根據本發明的另一方面,塊的大小N和每映射參數的範圍無需保密。一旦選擇一個足夠大的值產生具有被認為是非常大的預定大小的映射集,塊大小N和參數範圍作為標準並公開。要破譯密碼的其他人在這個非常大的映射集中仍然面臨在計算上不可行的窮舉法的任務。
在優選的實施例中,映射的形式為yt=Axt+zt而相應的逆映射為xt=A-1[yt-zt]這裡,xt和yt分為與第t塊相應的N維明文和密文向量;A和A-1分別是NxN映射和相應的逆映射矩陣;而Zt是對應於第t塊的N維第二個分向量。
A和Zt構成映射參數,它們是密鑰的一部分。實質上,N×N映射矩陣A確定了該映射的空間。如果每個矩陣單元都可以在L範圍內變化,那麼映射集具有通過排列所有的矩陣單元得出的大小,即LN×N。這是一個指數函數,而且即使N和L的值不是很大,其映射集也會變得非常之大。例如,如果N=3,L=100,整個映射集就有1018個映射。
在優選的實施例中,加入第二個分向量Zt組成每個密文向量以進一步增強本方法的安全性。特別是對已知明文的攻擊(attack)及對較小塊的統計攻擊這一潛在薄弱環節特別有效。在一種實現中,第二分向量是偽隨機向量,它隨塊的不同而變化。在另一種實現中,第二分向量是非線性函數或非線性函數和偽隨機向量的混合。
目前的實現方法沒有常規方法(加入一串偽隨機數對一明文串加密)相同的弱點。這是因為該映射發生在N維空間中,每個偽隨機數一般不像常規情況那樣直接加到單個的明文字符上以便把明文字符轉換為密文字符,而是加到明文字符的線性組合上。別人來分析這種方法的偽隨機數的問題在數學上稱為非確定的多項式(NP)問題。
本發明的一個重要方面是提供了映射結構,一般地其大小而且特別是具體映射的特性是用戶可以用密鑰隨意選擇的。沒有密鑰,其他人面臨在一個不確定的映射集中用窮舉法找出計算上不可行的任務。
本發明的另一個重要方面是計算機開銷只隨塊大小的平方增加,而加密強度呈指數增加。這樣,在計算機開銷很小的情況下得到很高的加密強度。相反,一般的加密系統計算機開銷隨加密強度的增加呈指數增長。這是NP的另一種表現形式。
本發明的其它目的、特點和優點都會從後面的優選實施例的描述中更好的理解,本發明的描述應結合附圖。


圖1示意地示出了應用於本發明的一個一般的密鑰加密系統;圖2A示出常規加密系統的計算開銷與加密強度的關係曲線;圖2B示出本發明的計算開銷和加密強度的關係曲線;圖3示出本發明的加密強度隨映射參數的指數函數增加,映射參數諸如塊的大小N和每個映射矩陣單元的範圍L;圖4示出根據本發明的優選實施例的加密裝置的功能方框圖;圖5示出根據本發明的優選實施例的解密裝置的功能方框圖;圖6A示出塊大小N=9時的基本明文向量單元的各種排列或可能的選擇;和圖6B示出從一個塊中選擇一些單元的實際排列配置,塊單元是按3×3圖安排的。
圖1概要示出應用於本發明的一個一般的密鑰加密系統。用加密裝置或過程30把明文x10加密成密文y20。加密者以用戶可選擇的密鑰k40控制加密過程30。密鑰k是與解密者秘密地共用的,解密者又用它控制解密裝置或過程50,將接收到的密文y解密為明文x。
本發明的一個重要方面是提供了映射結構以生成映射集。用戶一般可用密鑰選擇映射集的大小和特別是指定的映射特性。沒有密鑰,其他人面臨在不確定的映射集中採用窮舉的計算上是不可行的任務。
映射將明文映射或加密為密文。每個映射都可由一組映射參數來確定,這組參數實質上是用戶可選擇的,因為它是由密鑰k導出的。
本發明將每個明文流分成一塊一塊的明文向量。塊的大小也是用戶通過密鑰可選擇的。如果塊的大小為N,那麼該映射把一個N維明文向量映射為對應的N維密文向量。
映射的特徵是映射集的大小取決於塊的大小和每個映射參數的範圍。用戶可以通過調整這些參數選擇所需要的加密強度等級。如果每個映射參數有一個範圍L,那麼,如後面所述,映射集的大小為LNxN。這樣,密鑰的空間就隨N呈指數增加。例如,如果L=100,N=3,那麼(k)≈1018,這比DES大十倍。如N擴大到9,則(k)≈10162。這就意味著攻擊者即使知道N的大小,在採用窮舉的辦法時需要嘗試10162個密鑰。在優選的實施例中,N和L也是保密的,攻擊者面對的是一個不確定的大密鑰空間。
本發明的另一個重要方面是加密強度可增加到非常高等級而不需要相應高的計算開銷。相反,傳統的加密系統的計算開銷隨加密強度的增加呈指數增長。這是NP的另一種表現形式。
圖2A示出傳統加密系統的計算開銷與加密強度之間的曲線關係。圖2B示出本發明的計算開銷與加密強度的曲線關係。兩圖比較可以看出,傳統加密系統的計算開銷呈指數增長,而本發明的計算開銷呈對數增長。這是因為本發明的計算開銷隨塊大小的平方增長,而加密強度卻呈指數增長。
圖3示出本發明的加密強度隨映射參數(如塊的大小N,每個映射矩陣單元的範圍L)的指數函數增長。圖中還表明了L兩個值之間的關係。L=2對應的情況是每個映射矩陣單元可以如從「0」和「1」兩個數值中取一個。L=100對應的情況是每個映射矩陣單元可以從100個可能值的範圍內變化,例如從0到99或者負49到50。可以看出,本發明在計算開銷增加很小的情況下可獲得極高的加密強度。加密和解密的方法本發明的優選方法包括以下步驟步驟1.選擇塊的大小N每個明文塊都對應一個N維的明文向量。每個N維明文向量都可加密成N維的密文向量。因此,明文x=xi=[x1,x2,…,xN]密文y=yi=[y1,y2,…,yN] (1)i=1,2,…,N初始的明文通常是字符流的形式。通過預先定義的字符代碼表可把字符表達方式轉換為數字表達方式。xi和yi都是以數字表達方式編碼的。
一般來說,x1、x2、…、xn沒有必要與進來的明文字符流中單元的相同序列對應。映射前的初始塊排列可用於混洗塊單元的原始順序。初始塊排列可規定為加密信息的一部分,通過密鑰從一個用戶傳輸到另一個用戶。這樣,另一個用戶可執行相反的步驟,在密文已解密成明文後把明文重新排列成原來的順序。步驟2.由用戶選定的一組映射參數A,Zt,…生成第t塊的映射yt=Axt+zt(2)這裡,t代表第t個塊或向量的標記,A一般說來是一個可逆的NxN映射矩陣A=aij=a11a12a1Na21a22a2Na1Na2NaNN---(3)]]>i,j=1,2,…,N和zt=(zi)t=[z1,z2,…,zN]t(4)是第二個向量分量,它可根據具體實施例呈現不同的形式。在一個實施例中,它是隨塊的不同而變化的一個隨機向量,這將在後面更加詳細地敘述。例如(zi)t=biR(t,ci) (5)這裡R(t,Ci)是t的偽隨機函數,bi是一個常數向量,例如,b=〔b1,b2,…,6N〕,Gi是R的初始值。在另一種實施例中,(Zi)t也可能是xi的非線性函數。步驟3.用戶之間秘密地共用一個密鑰,把加密信息從一個用戶傳送到另一個用戶用於解密。例如k=〔塊大小;映射參數,隨機函數的詳細描述;初始塊排列,。。。〕=〔N;A;zt,…;…〕(6)通常為分別控制加密和解密,密鑰k可推導出一組加密或解密參數。密鑰間隔{k}包括了所有可能的密鑰集,這些密鑰是由在其範圍內每個密鑰參數所有可能的值生成的。例如,如果每個映射矩陣單元具有以可能值的範圍,如那麼,給定N,一個密鑰空間中存在的可能密鑰集由下式給出{k}≈LN×N(7)步驟4.由方程(2)生成第t塊的逆映射xi=A-1(yt-zt) (8)逆映射參數A-1,zt,…是從方程(6)中的密鑰導出的。特別是逆映射矩陣是由對映射矩陣A求逆得到的。
映射或逆映射最好用整數量來實現以避免舍位問題。因此,所有的映射參數和明文表示式都是用整數給出的並且計算是精確的。在密文已解密成明文後,用解密時使用的同一字符代碼可把數字表示的明文解碼回原來用字符表示的明文。
在優選的實施例中,第二向量分量zt不為零。加入該分量構成每個密文向量以便進一步增強安全性,特別是防止已知明文(known—plaintext)攻擊和在塊較小時統計攻擊的潛在弱點。
在一個實施例中,第二向量分量是逐塊變化的一個偽隨機向量。對第t塊,由方程(2),通過下式給出每個密文向量單元y1=a11x1+a12x2+,…,a1nxN+b1R(t,c1)y2=a21x1+a22x2+,…,a2nxN+b2R(t,c2)yN=aN1x1+aN2x2+,…,aNNxN+bNR(t,cN) (9)密鑰具有參數k=[N;aij; bf;ci;…)(10)解密由方程(8)給出,並且明文由下式恢復xt=A-1(yt-zt)在另一個優選實施例中,採用一種快速計算把密文轉換成明文而無需對NxN映射矩陣A求逆。在此情況下,第二個分量(zi)t最好是非線性函數或偽隨機函數。如前面所述的,密文向量單元通常由方程(2)給出yi=aijxj+zi(11)i,j=1,2,…,N這種方法需要從每個明文向量中選出基礎明文向量單元的隨機子集∈{xi}s=s1,s2,…,sM因此{xi}={xs}u{xr}r=r1,r2,…,rN-M1<M≤N把密文映射定義為xs's的函數yf=aisxs+zf(12)具有如下特性(a)當i=s時ys=assxs+zs(13)且zs是如方程(5)中的隨機值zs=bsR(t,cs)(b)當i=r時yr=arsxs+zr(14)這裡zr=brG(xr) (15)且 G(xt)是一個非線性函數,例如,G(xr)=xr3(16)由方程(13)得出xs=[ys-bsR(t,cs)]/ass由方程(14)和(15)得出xr=G-1[zr/br]=G-1[(yr-arsxs)/br]=G-1[yr-((ys-bsR(t,cs))ars/ass)/br]例如N=9s=1,5,8那麼 i=1,2,…9r=2,3,4,6,7,9而密鑰是k=[N=9;s1=1,s2=5,s3=8;a11,a55,a88;a21,a25,a28,a31,a35,a38,…,a98;b1,b2,…,b9;c1,c5,c8;…] (17)為了加密第t塊,由方程(13)得出y1=a11x1+b1R(t,c2)y5=a55x5+b5R(t,c5)y8=a88x8+b8R(t,c8)由方程(14)得出y2=a21x1+a25x5+a28x8+b2G(x2)y3=a31x1+a35x5+a38x8+b3G(x3)y4=a41x1+a45x5+a48x8+b4G(x4)y6=a61x1+a65x5+a68x8+b6G(x6)y7=a71x1+a75x5+a78x8+b7G(x7)y9=a91x1+a95x5+a98x8+b9G(x9)為了解密第t塊,由方程(13),基礎明文向量單元可很容易由下式得出
x1=[y1-b2R(t,c1)]/a11x5=[y5-b5R(t,c5)]/a55x8=[y8-b8R(t,c8)]/a88由方程(14)和(15),非基礎明文向量單元是x2=G-1[(y2-(a21x1+a25x5+a28x8))/b2]x3=G-1[(y3-(a31x1+a35x5+a38x8))/b3]x4=G-1[(y4-(a41x1+a45x5+a48x8))/b4]x6=G-1((y6-(a61x1+a65x5+a68x8))/b6]x7=G-1[(y7-(a72x2+a75x5+a78x8))/b7]x9=G-1[(y9-(a91x1+a95x5+a98x8))/b9]由方程(16)得出G-1,G-1〔〕是〔〕的立方根。這樣可迅速恢復明文(x1,x2,…,xx)而不需對一個NxN矩陣求逆。加密和解密裝置圖4是根據本發明的一個優選實施例的加密裝置的功能方框圖。加密裝置30實質上包含了一個明文輸入緩中器200,用於接收輸入的明文,一個存儲器220,處理器240,字符代碼表260和密文輸出緩衝器280。
存儲器220除了別的之外用於存儲控制參數以控制加密過程。這種控制參數的例子是N,A,zt,…。如上所述,N是塊的大小,A是NxN映射矩陣,zt是構成密文向量yt的第二個分向量的向量。也可以有控制zt的其它參數,如zt=zt(b,c),這裡b是N維恆定向量而c是輸入偽隨機數發生器的初始值向量。
處理器240包括幾種功能,由圖中的功能框表示,如明文預處理器241,加密處理器243,塊計數器245,偽隨機數發生器247,以及密鑰處理器249。
在操作中,密鑰k首先被密鑰處理器處理,獲得諸如N,A,zt(b,c)的控制參數,然後這些參數儲存在存儲器220中。密鑰處理器最好對儲存的密鑰有效的規則集檢查輸入的密鑰是否有效。如果發現輸入的密鑰無效,裝置應傳達出信息告訴用戶出了什麼問題。在一種實現的方式中,密鑰k包含了一連串的控制參數,密鑰處理器249把這些參數分析出來後儲存在存儲器220中。在另一個實施例中,密鑰k包含簡化的輸入集,它與需求的控制參數集比較。處理器249也作為密鑰生成器,它將簡化了的輸入集擴展為完整的控制參數集,最後儲存在存儲器220中。例如,如果要求密鑰間隔為2256,那麼密鑰為256比特長並且可由預定的密鑰映射來映射為完整的控制參數集。一旦控制參數在適當位置,即可由處理器240存取。
以字符流的形式輸入到加密裝置30的輸入明文經明文輸入緩衝器200緩衝後,由明文預處理器241處理。
明文預處理器241按照從存儲器220取出的塊大小參數,把輸入的明文字符流大小N的塊逐塊分析。在一種實現方式中,明文預處理器也根據存儲器220中的參數進行初始的塊排列。字符代碼表260用於將每個字符轉換為數值以使得每個塊等效於明文向量x。字符代碼表可選擇地設置在加密裝置30的外面。
塊計數器245跟蹤所處理的塊。因此,第t個塊產生明文向量xt。
然後把明文向量xt輸入到加密處理器243,計算出對應的密文向量yt。密文向量yt是通過將NxN矩陣A作用於xt,再給它加上第二個分向量zt。矩陣A和第二個分向量可從存儲器220中得到。
在優選的實施例中,第二個分量是逐塊變化的隨機分量。偽隨機數發生器Rt(c)247對每個塊提供一個偽隨機向量序列。每個序列都取決於初始值向量c。對第t個塊,zt假定該序列中的第t個偽隨機向量。
這樣密文向量由加密處理器243計算出來,然後通過密文輸出緩衝器280從加密裝置30輸出。
圖5是根據本發明在一個具體實施例的解密裝置的功能方框圖。解密裝置50在結構上和加密裝置30相似,實質上是執行加密裝置30的相反操作。它包含一個密文輸入緩衝器300,用於接收輸入的密文,一個存儲器320,一個處理器340,一個字符代碼表360以及明文輸出緩衝器380。
存儲器320除了別的之外用於儲存控制參數以控制解密。這些控制參數的例子有N,A,zt(b,c),…,這些參數同加密的控制參數一樣,並且也是可從輸入的密鑰中導出的。但在解密裝置中,映射矩陣A不直接用於計算,而是用於導出的逆映射矩陣A-1。
處理器340包括幾種功能,由圖中以功能框表示,如密文預處理器341、解密處理器343、塊計數器345、偽隨機數發生器347以及密鑰處理器349。這些功能框同加密裝置30中的是對應的。
另外,處理器340也包括一個逆處理器344,逆處理器344可由給定的映射矩陣A計算逆映射矩陣A-1。
在操作中,同加密裝置相似,密鑰k首先由密鑰處理器349處理。推導出控制參數如N,A,zt(b,c),…,然後存入存儲器320。一旦控制參數在適當位置,它們可由處理器340存取。
輸入到解密裝置50以變換的數字串流的形式的密文經密文輔入緩衝器300緩衝後,由密文預處理器341處理。
密文預處理器341根據從存儲器取出的塊大小參數把輸入的密文流大小為N的塊逐塊分析。這樣,每個塊都等效於密文向量y。
塊計數器345跟蹤所處理的塊。因此,第t個塊產生密文向量yt。
然後把密文向量yt輸入到解密處理器343,計算出對應的明文向量xt。明文向量xt是先從yt減去第二個分向量zt,再將NXN逆映射矩陣A-1作用於所得向量而得到的。逆映射矩陣A-1和第二個分量可以從存儲器320中獲得。第二個分量同加密裝置30中的向量是相同的。
在優選的實施例中,第二個分量是逐塊變化的隨機分量。偽隨機數發生器Rt(c)347同加密裝置30中的一樣,它提供相同的偽隨機向量序列,該序列用於在加密裝置30中將每個塊隨機化。
初始明文進行初始的塊排列後,解密處理器343將響應存儲器320中的參數也執行相反的塊排列。
一旦明文向量xt被解密,就被類似加密裝置中所用的字符代碼表360解碼。字符代碼表可選擇地設置在解密裝置50以外。把明文向量中被編碼數值解碼為它們原來的字符狀態。
這樣,恢復成初始明文後,通過密文輸出緩衝器380從解密裝置50中輸出。
圖4和圖5分別表示了加密和解密裝置的優選硬體實施例,它們是圖1所示的加密系統的一部分。本發明也考慮了採用在軟體控制下用於實現加密裝置30和解密裝置50實現的各種功能的計算機。例如,處理器240和340可以用普通計算機的微處理器。存儲器220,320和緩衝器200,300可用計算機的各種類型存儲器。軟體可放在計算機的一個存儲器中,根據上述方法控制加密和解密。隨機圖像方案—映射參數的系統選擇如上所述,本發明要求用戶從映射集中選擇一種映射。它是利用密鑰表示的,並可從該密鑰導出一組映射參數。該映射集實質上是通過NXN映射矩陣單元在指定範圍內排列起來生成的。如上面指出的,即使N和L為中等值,映射集的大小實際上變得非常之大。
在優選的實施例中,用一種系統的方法把映射分成不同的組,以易於區別和辨認它們。這樣,用戶能夠有系統地從分類的映射中作出選擇。如果密鑰需要常常更改,或者如果一組密鑰需要指定給一組人,用這種方法是特別預料到的。
這種方案是通過把塊或明文單元排列起來建立映射分類的。這同在前面快速計算實現中所述的從明文向量中選擇基礎明文向量單元的子集是類似的。用戶隨機選取基礎明文向量單元的子集。在最簡單的實施例中,把剩下的未選取的明文向量單元置零。這樣,僅從被選取的基礎明文向量單元的線性組合得出每個密文向量單元。換言之,密文向量實質上被映射成由選取的基礎明文向量單元隔開的子間隔。
一般來說,當每個單元取兩個值中的一個時,就有2N種方法來排列N個單元。由二項式定理,2N個選擇可以分組為N個單元中的M個基本向量單元的所有可能排列的和0MC(N,M)=N!M!(N-M)!=2N]]>圖6A列出了塊的大小N=9時的各種排列或基礎明文向量單元的可能選擇。因此共有29=512種排列。
圖6B是在3×3的圖像中從一塊中選擇多個單元的實際排列的結構圖,每個塊中的單元是按照從左到右,從上至下的順序安排的。該結構是按M的遞增順序安排的,並有從#1到#511的結構號(#0結構未出現,它相應於無基礎向量單元被選擇的不重要的情況)。例如,參照圖6B,用戶可選取結構#54,它規定基礎明文向量為x=〔x1,0,x3,0,x5,0,0,0,0〕。如果用戶知道密鑰周期地被更改,他們能很容易地利用本方案選出結構的預定序列,提供相應的密鑰序列。
而在另一個實施例中,生成系統的映射參數的方案可由前面提到的初始塊排列實現。一般來說,明文向量單元x1,x2,…,xN不必對應於明文字符流中單元進入的順序相同。例如,x1可對應字符流的一個塊中第7個字符,而x2可對應第1個字符。在N時隙上填入N個單元就有N的階乘種(N1)方法。用戶可隨意選擇初始塊的排列方式或將其說明編入密鑰中。根據一個預定的順序,將塊單元排列成各種不同的結構(或圖象),再根據另一種預定的順序將其讀出,就生成了不同的順序。例如,對塊大小為N=9,一個圖象為3×3的矩陣。塊單元〔x1,x2,…,x9〕能夠以從左到右,從上至下順序分配到矩陣中。通過從下至上,從左到右讀出矩陣單元可得到一種不同的排列〔x7,x4,x1,x8,x5,x2,x9,x6,x3〕。一般來說,通過所用的圖像、單元的設置方式和從圖象中讀出單元的方式的變化可以獲得不同的排列。
雖然上面已經敘述本發明各個方面的實施例是優選實施方式,但本領域的技術人員懂得可以有各種修改。因此,本發明由所附的權利要求書的整個範圍保護。
權利要求
1.一種密碼系統,使用戶將明文加密成密文及將密文解密成明文,其特徵在於,該系統包含用戶之間共享的一個密鑰;用來從所述密鑰導出一組用戶可選擇的加密參數的裝置,每個用戶可選擇的加密參數有一個數值範圍;一個產生映射的裝置,根據該組用戶可選擇的加密參數產生其映射集中的一個映射,把明文映射成密文;一個解密參數導出的裝置,用來從所述密鑰導出一組解密參數;一個產生逆映射的裝置,根據該組解密參數產生一個與該映射相關的逆映射,把密文逆映射成明文;和該映射集的大小取決於每個所述用戶可選擇的加密參數的數值範圍,因而不知道所述密鑰的人面臨著在大小不確定的映射集之中窮舉法計算的不可行的任務。
2.根據權利要求1所述的密碼系統,其特徵在於,還包括一個分塊裝置,根據一個控制塊大小的參數將明文分成相應大小的明文塊或明文向量;其中該映射把明文向量映射為每個相應的密文向量;和該組用戶可選擇的加密參數包括該塊大小的參數。
3.根據權利要求2所述的密碼系統,其特徵在於該組用戶可選擇的加密參數包括一個映射矩陣;該映射是這樣的每個密文向量是一個向量和,該向量和包括一個第一向量和分量,該第一向量和分量是由該映射矩陣和相應的明文向量的乘積形成的;該組解密參數包括與該映射矩陣相關的一個逆映射矩陣;和該逆映射是這樣的每個明文向量是該逆映射矩陣及一個合成向量的乘積,該合成向量是由相應的密文向量減去除了第一向量和分量之外的其向量和所產生的。
4.根據權利要求3所述的密碼系統,其特徵在於,還包括生成一組偽隨機向量的裝置,每個塊一個偽隨機向量;其中該向量和包括了一個第二向量和分量,而該第二向量和分量是由該組偽隨機向量中的一個偽隨機向量所形成的。
5.根據權利要求4所述的密碼系統,其特徵在於,每組用戶可選擇的加密和解密參數都包括用於產生一組偽隨機向量的參數。
6.根據權利要求1所述的密碼系統,其特徵在於,還包含一個密鑰產生器,從具有預定長度的輸入產生該密鑰。
7.用戶把明文加密成密文及將密文解密恢復成明文的密碼系統,其特徵在於,包括一組加密參數和一組解密參數,分別控制加密和解密;用戶間共用的一個密鑰;由所述的密鑰推導出加密參數的所述組的用戶可選擇的部分的裝置;一個產生映射的裝置,根據該組用戶所選擇的加密參數產生一個映射集之中的一個映射,把明文映射成密文,該映射集的大小取決於所述組的加密參數;用來從所述密鑰導出所述組解密參數的用戶可選擇部分的裝置;和一個產生逆映射的裝置,根據該組解密參數產生一個與該映射相關的逆映射,把密文逆映射成明文。
8.一種數據加密裝置,用於使明文逐塊地加密成密文,其特徵在於,該數據加密裝置包含儲存裝置,用來儲存一組加密參數,該組加密參數包括了一個塊大小的參數和用於控制明文映射為密文的映射參數,每個映射參數具有一個可能的數值範圍;明文處理裝置,根據塊大小的參數,把輸入的明文逐塊地劃分,因而得到與每塊對應的明文向量;一個映射裝置,根據該組映射參數產生一個映射集的一個映射,所述映射把每個明文向量映射成相應的密文向量;該映射集的大小取決於每個映射參數的數值範圍,因而產生一個具有一個數值範圍大小的映射集;和密文輸出裝置,用來把密文從該數據加密裝置中輸出。
9.根據權利要求8所述的數據加密裝置,其特徵在於,還包括密鑰處理裝置,由輸入的密鑰推導出所述加密參數用戶可選擇部分,該用戶可選擇部分包括映射參數。
10.根據權利要求9所述的數據加密裝置,其特徵在於,還包括一個密鑰產生器,用於從一個預定長度的輸入產生該密鑰。
11.根據權利要求8所述之數據加密裝置,其中所述加密參數的用戶可選擇部分包括該塊大小的參數;和該映射集的大小取決於塊大小的參數,由此生成一個用戶可選擇大小的映射集。12.根據權利要求8所述的數據加密裝置,其特徵在於,還包括字符編碼裝置,把用字符表示的明文轉換為數字表示。
13.根據權利要求8所述的數據加密裝置,其特徵在於,該映射參數包括一個映射矩陣;和該映射是這樣的每個密文向量是一個向量和,該向量和包括一個由該映射矩陣和相應的明文向量的乘積形成的第一向量和分量。
14.根據權利要求13所述的數據加密裝置,其特徵在於,還包含產生一組偽隨機向量的裝置,每個塊一個偽隨機向量;其中所述向量和包括一個第二向量和分量,而該第二向量和分量是來自該組偽隨機向量的一個偽隨機向量。
15.根據權利要求14所述的數據加密裝置,其特徵在於該映射參數包括用戶可選擇的參數,用來產生該組偽隨機向量。
16.一種數據解密裝置,用於將相關的加密裝置來的密文逐塊地解密成明文,其特徵在於,該數據解密裝置包括儲存裝置,用來儲存一組解密參數,該組解密參數包括一個塊大小的參數和用於控制密文逆映射為明文的逆映射參數,每個逆映射參數具有可能的數值範圍;密文處理裝置,根據塊大小參數把輸入的密文分塊,因而得到與每塊對應的密文向量;一個逆映射的裝置,根據該組逆映射參數產生一個逆映射集中的一個逆映射,所述逆映射把每個密文向量逆映射成相應的明文向量;該逆映射集的大小取決於每個逆映射參數的範圍,因此產生一個具有一個數值範圍大小的逆映射集;和明文輸出裝置,用來把明文從該數據解密裝置中輸出。
17.根據權利要求16所述的數據解密裝置,其特徵在於,還包含密鑰處理裝置,由輸入的密鑰推導出所述解密參數的用戶可選擇部分,該用戶可選擇部分包括逆映射參數。
18.根據權利要求17所述的數據解密裝置,其特徵在於,還包括一個密鑰發生器,從一個預定長度的輸入產生該密鑰。
19.根據權利要求16所述的數據解密裝置,其特徵在於所述解密參數的用戶可選擇部分包括該塊大小參數;和該逆映射集的大小取決於塊大小參數,由此生成一個用戶可選擇大小的逆映射集。
20.根據權利要求16所述的數據解密裝置,其特徵在於,還包括字符編碼裝置,把用編碼的數字表示的明文轉換回到字符表示。
21.根據權利要求16所述的數據解密裝置,其特徵在於該相關的加密裝置把每個密文向量作為一個向量和,該向量和包括一個第一向量和分量,該第一向量和分量是由一個映射矩陣和相應的明文向量的乘積形成的;該逆映射參數包括與該映射矩陣相關的一個逆映射矩陣;和該逆映射可使每個明文向量是該逆映射矩陣與一個合成向量的乘積,該合成向量是由相應的密文向量減去除了其第一向量和分量之外的向量和所產生的。
22.根據權利要求21所述的數據解密裝置,其特徵在於,還包括產生一組偽隨機向量的裝置,每個塊一個偽隨機向量,而且與加密裝置中採用的相同;該加密裝置中的所述向量和還包括了一個第二向量和分量,該第二向量和分量是由該組偽隨機向量的偽隨機向量所形成的。
23.根據權利要求22所述的數據解密裝置,其特徵在於該逆映射參數包括用戶可選擇的參數,用來產生該組偽隨機向量。
24.一種密碼方法,使用戶將明文加密成密文及將密文解密成明文,其特徵在於,該方法包括以下步驟用戶之間共享一個密鑰;從所述密鑰導出一組用戶可選擇的加密參數,每個用戶可選擇的加密參數有一個可能的數值範圍;該組用戶可選擇的加密參數,產生一個映射集中的一個映射,把明文映射成密文;從所述密鑰導出一組解密參數;產生與所述逆映射相關的一個逆映射,把密文映射成明文;和該映射集的大小取決於每個所述組的用戶可選擇的加密參數的數值範圍,因此不知密鑰的人面臨著在大小不確定的映射集之中窮舉法計算上是不可行的任務。
25.根據權利要求24所述的密碼方法,其特徵在於,還包括以下步驟把明文按塊大小的參數分成一塊一塊的明文塊或明文向量,每塊的大小是根據該塊大小的參數;其中該映射將明文向量映射成相應的密文向量;和該組用戶可選擇的加密參數包括該塊大小的參數。
26.根據權利要求24所述之密碼方法,還包含以下步驟從一個預定長度的輸入產生該密鑰。
27.根據權利要求25所述之密碼方法,其中該組用戶可選擇的加密參數包括一個映射矩陣;該映射是這些的每個密文向量是一個向量和,該向量和包括一個第一向量和分量,該第一向量和分量是由該映射矩陣和相應的明文向量的乘積形成;該組解密參數包括一個與該映射矩陣相關的逆映射矩陣;和該逆映射是這樣的每個明文向量是該逆映射矩陣及一個合成向量的乘積,該合成向量是由相應的密文向量減去除了第一向量和分量之外的向量和所產生的。
28.根據權利要求27所述的密碼方法,其特徵在於,還包括以下步驟產生一組偽隨機向量,每個塊一個偽隨機向量;其中該向量和包括一個第二向量和分量,而該第二向量和分量是由該組偽隨機向量一個偽隨機向量所形成的。
29.根據權利要求28所述的密碼方法,其特徵在於所述組的用戶可選擇的加密和解密參數都包括產生所述組偽隨機向量的參數。
30.根據權利要求25所述的密碼方法,其特徵在於,還包括有以下步驟從每個明文向量中選擇明文單元的子集作為基礎明文單元;從每個密文向量中選擇相應的密文單元的子集作為基礎密文單元;產生該映射,其中每個密文單元都是一個和,它包括一個第一和分量及一個第二和分量,因此對於所述基礎密文單元;每個第一和分量都是與對應的基礎明文單元線性相關的,該線性關係是由用戶可選擇的基本係數確定的;並且它的第二和分量都是逐塊變化的偽隨機數;而且對於不在該子集中的每個密文單元它的第一和分量都是基礎明文單元子集的線性組合,該線性組合由一組用戶可選擇的組合係數確定的;它的第二和分量都是相應的明文單元的非線性函數,該非線性函數由用戶確定的;產生該逆映射,其中每個基礎明文單元都是合成值的反線性關係,該合成值是相應的密文單元減去除了該和的第一和分量外所得到的;和每個不在該子集中的明文單元都是該非線性函數的倒數,作用在由相應的密文單元減去除了該和的第一和分量外所得到的一個結果值上。
31.一種密碼方法,使用戶將明文加密成密文及將密文解密成明文,其特徵在於,該方法包括以下步驟提供一組加密參數來控制加密和一組解密參數來控制解密;用戶之間共享一個密鑰;從所述的密鑰導出加密參數的用戶可選擇的部分;根據該組的加密參數產生一個映射集中的一個映射,把明文映射成密文,該映射集的大小取決於所述組的加密參數;從所述密鑰導出所述組的解密參數的用戶可選擇部分;和根據所述組的解密參數產生與所述映射相關的一個逆映射,把密文逆映射成明文。
全文摘要
一種密碼裝置和方法提供了一個明文和密文向量之間映射和對應的逆映射的映射集。明文(200)分成塊,塊的大小可由用戶選擇,例如N個字符。每個映射在一對N維的明文(200)和密文向量(280)之間映射。映射或對應的逆映射都是由帶有N×N個矩陣單元的矩陣實現的,其中每個單元可有一個L值的範圍。將矩陣單元在其範圍內排列,該映射集的大小就是L
文檔編號H04L9/06GK1121754SQ94191886
公開日1996年5月1日 申請日期1994年3月16日 優先權日1993年5月5日
發明者劉尊全 申請人:劉尊全

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀