亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)據(jù)碼的加密和解密的方法

文檔序號:6333786閱讀:192來源:國知局
專利名稱:一種數(shù)據(jù)碼的加密和解密的方法
本申請是下述專利申請的分案申請中請?zhí)?7122459.5,申請日1997年11月7日,發(fā)明名稱一種數(shù)據(jù)碼的保密系統(tǒng)及方法。
本發(fā)明涉及一種數(shù)據(jù)碼的加密和解密的方法,尤其涉及到數(shù)據(jù)碼的保護。它是關于硬件、數(shù)字數(shù)據(jù)、程序加密與解密的方法。
保密學在計算機與通信領域中愈來愈重要,尤其在保護程序、硬件、及數(shù)據(jù)的用途上。而且近年來高速網(wǎng)路、網(wǎng)際網(wǎng)路、全球網(wǎng)路的興盛更使保密學的應用領域愈來愈廣。許多保密的方法著重于數(shù)理的推導,例如RSA、Deffie-Hellme等方法;反而不專注于電子設計的保護。所以,發(fā)明電子設計的保護確有其重要性。尤其保護電子設計中的程序、硬件、數(shù)據(jù)等,更是電子設計所應著重考慮的。這類保護電子設計中的程序、硬件、數(shù)據(jù)的方法,應考慮好下列特性很短的處理延遲、簡單的電路需求、多重的密鑰保護、難于被破解。


圖1-a及圖1-b分別描繪了一種現(xiàn)有的二進制位反轉法的加密與解密方法。其加密與解密的操作是相同的,均是使用異或邏輯來實現(xiàn)。將欲加密的第一數(shù)據(jù)碼Xn,與一密k0鑰做異或邏輯運算,就可以得到第二數(shù)據(jù)碼Yn,即Yn=(XnXORk0)。解密時,再將欲解密的第二數(shù)據(jù)碼Yn,與同一密鑰K0做異或邏輯運算,就可以將之還原得到第一數(shù)據(jù)碼Xn,即Xn=(YnXORk0)。這種方法利用同樣異或邏輯運算使得加密與解密都非常簡易,而且處理延遲也很短。但是這種方法卻很容易被破解。例如密鑰k0如果過短,很容易就會被試出,因為它的可能組合數(shù)過少。即使密鑰k0很長,用這種方法加密的數(shù)據(jù),仍然可以用機率統(tǒng)計的方法猜出密鑰(key)來。所以,這種方式的保密方法不夠周全。
圖2-a及圖2-b分別描繪了另一種保密方法,稱為可逆轉換法的加密與解密方法。這種方法將欲加密的第一數(shù)據(jù)碼Xn,經過一可逆轉換T,轉換成第二數(shù)據(jù)碼Yn,即Yn=T(Xn)。因為轉換T為可逆,所以有一個對應的逆轉換T-1,可以將第二數(shù)據(jù)碼Yn還原回第一數(shù)據(jù)碼Xn,亦即Xn=T-1(Yn),而該可逆轉換T是一個一對一的函數(shù)。下面舉一個三個二進制位的可逆轉換為例子說明。
例如000被轉換成001、001被轉換成101、010被轉換成111、011被轉換成011、100被轉換成110、101被轉換成000、110被轉換成100、111被轉換成010。
這樣的可逆轉換的組合數(shù)目當多,使得被猜中的機率降低很多。但是仍然會被統(tǒng)計式的猜測法破解。舉例而言,當?shù)谝粩?shù)據(jù)碼中的數(shù)據(jù)碼111是為最高統(tǒng)計機率的數(shù)據(jù)碼,則它被轉換成010后,010的統(tǒng)計機率也會是最高。所以,突破者可以大膽地假設,111是對應到010。如此類推,則整個轉換方法將會被逐步猜出,反向轉換也就被破解了。
圖3-a及圖3-b分別描繪了另一種不可逆轉換法。當一群數(shù)據(jù)碼Xn經過不可逆轉換成為數(shù)據(jù)碼Yn,它的統(tǒng)計特性將被隱藏,這樣原數(shù)據(jù)碼Xn將因為加密過而不容易被解出。因為,不可逆轉換不是一對一函數(shù),所以從數(shù)據(jù)碼Yn無法找出可以解密的反向函數(shù)。也因為如此,不可逆轉換后的數(shù)據(jù)碼Yn將無法再轉換回數(shù)據(jù)碼Xn。如此一來,單純的不可逆轉換無法用于加密??偠灾M制位反轉法、可逆轉換法均有容易破解的弱點;不可逆轉換雖然有難以破解的特性,卻無法被應用。因此,尋找一個可以應用,又難以被破解的方法,成為當下重要的課題。
本發(fā)明的目的在于提供一種數(shù)據(jù)碼保密、保護系統(tǒng)及加密、解密方法,它使用了不可逆轉換及動態(tài)的加密密鑰,以完成加密的操作和解密的操作。該保密系統(tǒng)包括加密電路及解密電路。加密電路在執(zhí)行加密時使用動態(tài)的加密密鑰來加密,而動態(tài)的加密密鑰則以不可逆轉換方式產生,使得難被破解。解密電路只要有相同的不可逆轉換及初始密鑰就能很順利地解密成功。因而達到可以方便應用,又難以被破解的目的。
本發(fā)明的目的通過下方式實現(xiàn)提供一種加密數(shù)據(jù)碼的方法,用于將一組數(shù)據(jù)碼Xn加密轉換成一組數(shù)據(jù)碼Yn,包括以下步驟1)設定初始密鑰X0;2)給定一組數(shù)據(jù)碼Xn,n=1,...,N,N為欲加密的數(shù)據(jù)碼總數(shù);3)不可逆轉換步驟,用于將輸入的一組p位二進制位的數(shù)據(jù)碼Xn轉換為q位二進制位的轉換碼Zm,即Zm=U(Xn-1);4)暫存步驟,暫存所述轉換后的數(shù)據(jù)碼Zm以將其延遲一個工作周期;5)組合步驟,接收延遲的轉換后的數(shù)據(jù)碼Zm,并將其組合成為p位二進制位碼后輸出;6)異或邏輯運算步驟,接收所述組合步驟的輸出和所述數(shù)據(jù)碼Xn作為輸入,經過異或邏輯操作后輸出加密后的所述數(shù)據(jù)碼Yn,Yn=(XnXOR U(Xn-1))。
本發(fā)明還提供一種解密數(shù)據(jù)碼的方法,用于將用如上所述的加密方法加密后的數(shù)據(jù)碼Yn解密轉換成一組數(shù)據(jù)碼Xn,包括以下步驟1)設定初始密鑰X0;2)給定一組數(shù)據(jù)碼Xn,n=1,...,N,N為欲解密的數(shù)據(jù)碼總數(shù);3)不可逆轉換步驟,用于將輸入的一組p位二進制位的數(shù)據(jù)碼Xn轉換為q位二進制位的轉換碼Zm,即Zm=U(Xn-1);4)暫存步驟,暫存所述轉換后的數(shù)據(jù)碼Zm以將其延遲一個工作周期;5)組合步驟,接收延遲的轉換后的數(shù)據(jù)碼Zm,并將其組合成為p位二進制位碼后輸出;6)異或邏輯運算步驟,接收所述組合步驟的輸出和所述加密后的數(shù)據(jù)碼Yn作為輸入,經過異或邏輯操作后輸出解密后的所述數(shù)據(jù)碼Xn,Xn=(YnXOR U(Xn-1))。
也就是說,在本發(fā)明的方法中擁有兩種密鑰,一種為初始密k0=X0,另一種為動態(tài)密鑰kn.k0=X0是預訂的密鑰,而密鑰kn則由一不可逆轉換與輸入的第一數(shù)據(jù)碼Xn動態(tài)來決定。解密時必須要通過這兩種密鑰才能解開密碼。動態(tài)密鑰kn是隨著時間n而變動,并且是由輸入的數(shù)據(jù)碼Xn-1經過不可逆轉換而產生。
本方法中的加密電路包括一不可逆轉換器U,并可產生動態(tài)密鑰;而解密電路也包含同樣的不可逆轉換器,用以產生對應的解密密鑰。如此,即可成功地將不可逆轉換應用于加密與解密。由于不可逆轉換具有難以破解的特性,因而使本方法更難以被破解成功。該不可逆轉換器U可以用ROM(只讀存儲器)、PLA(可編程邏輯陣列)、或組合邏輯來實現(xiàn)。更進一步,不可逆轉換器U可以分成兩部分可移部分Um與不可移部分Ur??梢撇糠諹m可以作成能抽拔的元件,以作為可攜式密鑰。Ur則為固定于電路板上的部分。如何將不可逆轉換器U切分成Um與Ur是由設計者決定,當然Ur=U或Um=U都是被允許的。
本發(fā)明方法的特點是它的破解難度相當高。第一、它的密鑰組合數(shù)相當大;第二、它也能將原始數(shù)據(jù)碼的統(tǒng)計特性隱藏。此外,在組合數(shù)的比較上,它也比二進制位反轉法、可逆轉換法有更多的組合,所以,使其破解難度提高更多。假設,原始數(shù)據(jù)碼Xn為b位二進制位的碼。則二進制位反轉法的密鑰組合數(shù)為2b個??赡孓D換法總共有2b!=2b*(2b-1)*...*3*2*1種組合,而不可逆轉換法則一共可以有2(b*2b)-2b!]]>這么多種密鑰組合數(shù)。然而、本發(fā)明的保護法的密鑰可有高達2b*{2(b*2b)-2b!}]]>組合數(shù)。所以相當難以用猜測法來破解。同時本發(fā)明的保護法也隱藏了原始數(shù)據(jù)碼的統(tǒng)計特性,因此也可防止被以統(tǒng)計分析方式破解。
以下結合附圖,描述本發(fā)明實施例,其中圖1-a及圖1-b分別描繪了一種現(xiàn)有的二進制位反轉法的加密與解密方法;圖2-a及圖2-b分別描繪了一種保密方法,稱為可逆轉換法的加密與解密方法;圖3-a及圖3-b分別描繪了另一種不可逆轉換法,因為其不可逆,所以無法找到解密方法;圖4描繪了本發(fā)明的加密方法與解密方法的應用結構,它使用不可逆轉換法卻能有完整的解密方法;圖5描繪了本發(fā)明的加密電路的一實施例;圖6描繪了本發(fā)明的解密電路的一實施例;圖7描繪了本發(fā)明的解密電路的另一實施例,其不可逆轉換電路有部分為可移式;圖8描繪了一組用于暫存數(shù)據(jù)的寄存器;圖9描繪了組合器,其用于將q位二進制位的轉換碼組合回p位二進制位的動態(tài)密鑰,其中q小于等于p;圖10描繪了一組異或邏輯電路,用來作為兩個p位二進制位碼間的異或邏輯運算;圖11a及圖11b分別表示非常簡單的不可逆轉換電路與組合器;圖12表示本發(fā)明中加密方法的流程圖;圖13是比較二進制位反轉法、可逆轉換法、不可逆轉換法與本發(fā)明在不同二進制位條件下,所擁有的密鑰組合數(shù)。
圖4描繪了本發(fā)明適用的應用結構。其中,一只讀存儲器2通過解密器3連到處理器1。只讀存儲器2中可以儲存加密后的數(shù)據(jù)碼。解密器3扮演橋梁的角色。當處理器1由只讀存儲器2讀取數(shù)據(jù)時,解密器3則可將加密后的數(shù)據(jù)解密,以提供給處理器1正確的數(shù)據(jù)。處理器1當然可以銜接輸入4a-4c、輸出5a-5c或存儲器6a-6c等其它周邊裝置。
圖5是適用本發(fā)明的加密電路7。其包括一組異或邏輯電路8及轉換電路17。轉換電路17包括一不可逆轉換器10、一組寄存器11及組合器12。一組p位二進制位的數(shù)據(jù)碼Xn通過輸入13進入不可逆轉換器10,暫存于寄存器11中。經過一個工作周期后,經過組合器12,再輸入給異或邏輯電路8產生p位二進制位的數(shù)據(jù)碼Yn。
其中的不可逆轉換器U10的作用,在于將p位二進制位的數(shù)據(jù)碼Xn轉換成q位二進制位的轉換碼Zm。數(shù)據(jù)碼Xn可以為{X1、X2、X3、...、XN},N個其中之一;而轉換碼Zm可以為{Z1、Z2、Z3、...、ZM},M個其中之一,并且因為其不可逆轉換所以M<N。也可以說不可逆轉換U是多對一的轉換,例如,{X1、X2、X3、...、XN}中的{X2、X4、X6}均轉換成Z1,這種多對一轉換。所以,從轉換碼Z1無法找到逆向轉換決定是X2、X4、或是X6何者為加密前的數(shù)據(jù)碼。不可逆轉換器10實現(xiàn)這類不可逆轉換。
寄存器11則可將轉換后的數(shù)據(jù)暫存一個工作周期,然后再將數(shù)據(jù)交組合器12,將q位二進制位的轉換碼組合回p位二進制位的動態(tài)密鑰,送給異或邏輯電路8。此刻的輸入數(shù)據(jù)碼Xn也由輸入14傳到異或邏輯電路8,與動態(tài)密鑰作異或邏輯運算,而得到加密后的數(shù)據(jù)碼Yn,數(shù)學式的表示為Yn=(XnXOR U(Xn-1))。
圖6是適用于本發(fā)明的解密電路15,它與加密電路7是相對應的。解密電路15包括一組異或邏輯電路16、不可逆轉換器18、一組寄存器19及組合器20。數(shù)據(jù)碼Xn從輸入21回饋到不可逆轉換器18而產生q位二進制位轉換碼Zm。Xn可以為{X1、X2、X3、...、XN},N個其中之一;而轉換碼Zm可以為{Z1、Z2、Z3、...、ZM},M個其中之一,不可逆轉換U為多對一的轉換,所以M<N。然后由寄存器19暫存一個工作周期,再經組合器20作組合,送到異或邏輯電路16輸入為動態(tài)密鑰。此時,Yn也經輸入22到達異或邏輯電路16,與輸入的Xn-1所產生的動態(tài)密鑰作解密而得到Xn,數(shù)學式的表示為Xn=(YnXOR U(Xn-1))。
解密時所用的異或邏輯電路16、不可逆轉換器18、一組寄存器19及組合器20與加密時所用的異或邏輯電路8、不可逆轉換器10、一組寄存器11及組合器12分別是對應相同的。其中不可逆轉換器l0與不可逆轉換器18用于作不可逆轉換;寄存器1l與寄存器19均用于延遲數(shù)據(jù)一個工作周期組合器l2與組合器20用于將q位二進制位的轉換碼組合成p位二進制位的動態(tài)密鑰碼。
圖7所示為適用于本發(fā)明的解密電路的另一種實施例。轉換電路17的不可逆轉換器U可以拆成兩部分Um23、Ur24。Ur在硬件實現(xiàn)上可以是固定的,而Um23、寄存器19、組合器20、異或邏輯電路16則可作為可移式的電路密鑰,只有擁有這部分電路的人可開啟解密電路。而此部分可移式的電路密鑰仍具有難以破解的特性。當然,Um23與Ur24組成不可逆轉換器U,而Um23、Ur24的劃分取決于設計者。它們像不可逆轉換器U一樣,可以用ROM(只讀存儲器)、PLA(可編程邏輯陣列)、或組合邏輯來實現(xiàn)。
圖8則描繪了適用于本發(fā)明的寄存器,用以暫存數(shù)據(jù)一個工作周期。寄存器的二進制位位數(shù)是與輸入數(shù)據(jù)的二進制位位數(shù)q相等,例如q=3,則包括R1、R2與R3三個寄存器來儲存數(shù)據(jù)。
圖9為適用于本發(fā)明的組合器,它可以將輸入的q位二進制位碼轉化為p位二進制位碼輸出。它將碼用直接繞接的方式重新組合二進制位的位置。由于q小于等于p,因此組合器的p位二進制位輸出中有部分二進制位不是由繞接而得,而可以直接給予設定為0或1。此等重新組合的方法及設定的值則可由設計者視系統(tǒng)需求調整。
圖10所示為適用于本發(fā)明的異或邏輯電路,其由一組異或邏輯組成。一個異或邏輯可用下列的布林表示法(A0XOR A1)={(NOT A0)AND A1}OR{(NOT A1)AND A0}表示,其中的XOR代表異或邏輯運算,AND代表與邏輯運算,OR代表或邏輯運算,而NOT代表反邏輯運算。
在圖11a中例舉了一個非常簡單的不可逆轉換器10(或不可逆轉換器18)。而圖1lb則例舉出一個非常簡單的組合器12(或不可逆轉換器20)。在此例中p=3,q=1。假如欲加密的一組數(shù)據(jù)碼為X1=101、X2=l10、X3=111、X4=000、X5=01l,且設定X0=011。則加密的過程為
當n=1,k1=U(011)=010Y1=(X1XOR k1)=(101 XOR 010)=111當n=2,k2=U(101)=010Y2=(X2XOR k2)=(110 XOR 010)=100當n=3,k3=U(110)=010Y3=(X3XOR k3)=(111 XOR 010)=101當n=4,k4=U(111)=010Y4=(X4XOR k4)=(000 XOR 010)=010當n=5,k5=U(000)=000Y5=(X5XOR k5)=(011 XOR 000)=011結果可得到,Y1=111、Y2=100、Y3=101、Y4=010、Y5=011等加密后的數(shù)據(jù)碼。
圖12描述了加密的流程圖,敘述如下步驟25先設定預定密鑰X0的值;步驟26設定n=1;步驟27算出轉換碼Zm=U(Xn-1),得到動態(tài)密鑰kn;步驟28算出Yn=(XnXOR kn);步驟29算出n=n+1;步驟30若n>N,跳至步驟31;否則跳至步驟27;(N為欲加密的數(shù)據(jù)碼數(shù))步驟31加密完成。
圖13列出了密鑰組合數(shù)的比較。b代表數(shù)據(jù)碼的二進制位數(shù),比較的方法包括二進制位反轉法、可逆轉換法、不可逆轉換法與本發(fā)明的方法。當二進制位位數(shù)為1時,這四種方法的密鑰組合數(shù)分別為2、2、2、4,相差不多;但當二進制位位數(shù)為3時,這四種方法的密鑰組合數(shù)分別為8、40320、16736896、133895168,就相差甚多。假設二進制位數(shù)為b位二進制位,則二進制位反轉法的密鑰組合數(shù)為2b;可逆轉換法的密鑰組合數(shù)為2b!=2b*(2b-1)*...*3*2*1;不可逆轉換法的密鑰組合數(shù)為2(b*2b)-2b!;]]>而本發(fā)明的密鑰組合數(shù)為2b*{2(b*2b)-2b!}]]>。可以看到,本發(fā)明的密鑰組合數(shù)最多,優(yōu)于其他方法。當二進制位位數(shù)大于4,就明顯看出難于破解。
以上說明中所舉用的例子是為了說明清楚而用,并不是限定本發(fā)明的應用范圍。顯然,基于上述說明,可以衍生各種與本發(fā)明所公開實施方式相應的變化形式。因此,在以下的權利要求列舉的均應作為本發(fā)明所涵蓋的范疇。
權利要求
1.一種加密數(shù)據(jù)碼的方法,用于將一組數(shù)據(jù)碼Xn加密轉換成一組數(shù)據(jù)碼Yn,其特征在于,包括以下步驟1)設定初始密鑰X0;2)給定一組數(shù)據(jù)碼Xn,n=1,...,N,N為欲加密的數(shù)據(jù)碼總數(shù);3)不可逆轉換步驟,用于將輸入的一組p位二進制位的數(shù)據(jù)碼Xn轉換為q位二進制位的轉換碼Zm,即Zm=U(Xn-1);4)暫存步驟,暫存所述轉換后的數(shù)據(jù)碼Zm以將其延遲一個工作周期;5)組合步驟,接收延遲的轉換后的數(shù)據(jù)碼Zm,并將其組合成為p位二進制位碼后輸出;6)異或邏輯運算步驟,接收所述組合步驟的輸出和所述數(shù)據(jù)碼Xn作為輸入,經過異或邏輯操作后輸出加密后的所述數(shù)據(jù)碼Yn,Yn=(XnXOR U(Xn-1))。
2.如權利要求1所述的加密方法,其中在所述不可逆轉換步驟3)中,轉換成的轉換碼Zm有M個可能值,而輸入的Xn有N個可能值,同時N>M。
3.如權利要求1所述的加密方法,還包括一步驟將數(shù)據(jù)碼總數(shù)N設定為1。
4.如權利要求1所述的加密方法,還包括一步驟將數(shù)據(jù)碼總數(shù)N設定為大于1。
5.如權利要求4所述的加密方法,還包括一步驟,對n=1,執(zhí)行所述步驟3)到6),并將n加1,然后重復所述的步驟3)到6),直到n等于欲加密的數(shù)據(jù)碼總數(shù)N。
6.一種解密數(shù)據(jù)碼的方法,用于將用如權利要求22中的加密方法加密后的數(shù)據(jù)碼Yn解密轉換成一組數(shù)據(jù)碼Xn,其特征在于,包括以下步驟1)設定初始密鑰X0;2)給定一組數(shù)據(jù)碼Xn,n=1,...,N,N為欲解密的數(shù)據(jù)碼總數(shù);3)不可逆轉換步驟,用于將輸入的一組p位二進制位的數(shù)據(jù)碼Xn轉換為q位二進制位的轉換碼Zm,即Zm=U(Xn-1);4)暫存步驟,暫存所述轉換后的數(shù)據(jù)碼Zm以將其延遲一個工作周期;5)組合步驟,接收延遲的轉換后的數(shù)據(jù)碼Zm,并將其組合成為p位二進制位碼后輸出;6)異或邏輯運算步驟,接收所述組合步驟的輸出和所述加密后的數(shù)據(jù)碼Yn作為輸入,經過異或邏輯操作后輸出解密后的所述數(shù)據(jù)碼Xn,Xn=(YnXOR U(Xn-1))。
7.如權利要求6所述的解密方法,其中在所述不可逆轉換步驟3)中,轉換成的轉換碼Zm有M個可能值,而輸入的Xn有N個可能值,同時N>M。
8.如權利要求6所述的解密方法,還包括一步驟將數(shù)據(jù)碼總數(shù)N設定為1。
9.如權利要求6所述的解密方法,還包括一步驟將數(shù)據(jù)碼總數(shù)N設定為大于1。
10.如權利要求9所述的解密方法,還包括一步驟,對n=1,執(zhí)行所述步驟3)到6),并將n加1,然后重復所述的步驟3)到6),直到n等于欲解密的數(shù)據(jù)碼總數(shù)N。
全文摘要
一種用于保密以保護數(shù)據(jù)碼特別是程序、硬件或數(shù)字數(shù)據(jù)等等的加密和解密的方法,其在加密與解密方法中使用了不可逆轉換及動態(tài)密鑰。加密方法將一組數(shù)據(jù)碼用動態(tài)密鑰加以加密,而動態(tài)密鑰由不可逆轉換產生。解密方法也是利用動態(tài)密鑰將一組加密后的數(shù)據(jù)碼加以解密,而動態(tài)密鑰也由不可逆轉換產生。該動態(tài)密鑰會隨著時間參數(shù)n的變動而變動。變動的方法則由不可逆轉換器U來決定,變動的值則由輸入的數(shù)據(jù)碼控制。
文檔編號G06F21/00GK1303196SQ0012879
公開日2001年7月11日 申請日期1997年11月7日 優(yōu)先權日1997年5月19日
發(fā)明者謝勛璋 申請人:財團法人工業(yè)技術研究院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1