專利名稱:一種與加密歷程相關(guān)的加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種加密方法,尤其涉及一種具有高度非線性結(jié)構(gòu)而降低被破解風(fēng)險(xiǎn)的加密方法。
在當(dāng)今互聯(lián)網(wǎng)發(fā)達(dá)的年代,為防止重要信息在傳送時(shí)為他人所輕易截獲解讀,對(duì)重要文件加密保護(hù)已成為一件重要的事。應(yīng)文件加密的需要,有了加密系統(tǒng)的發(fā)展。常見的加密系統(tǒng)的工作方式為給定一加密密鑰碼與欲加密的明文,經(jīng)由該加密系統(tǒng)的計(jì)算,即可得到一加密后的密文。通常一個(gè)加密系統(tǒng)接受該加密密鑰碼與明文后,會(huì)依一定的方法,將明文分解為固定長(zhǎng)度的字串,并以另一特定的方法,提供一密鑰碼,再以一基本的加密方法配合該密鑰碼,將該明文字串加密為一密文字串;最后再以一定的方式組合所有的密文字串,得到該密文。本發(fā)明即提供一種用于加解密的基本編碼方法,用來將固定長(zhǎng)度的明文字串,配合一由該加密系統(tǒng)供給的密鑰碼,加密為一加密字串。而該加密方法的特征為增加加密過程的復(fù)雜度,以降低被破解的可能性。
本發(fā)明的主要目的在于提供一種基本的加密方法,可配合一密鑰碼,將一固定長(zhǎng)度的明文字串加密為一密文字串。本發(fā)明可做為一基本構(gòu)成塊,適用于各種不同的加密系統(tǒng)。且本發(fā)明具有高度的非線性,可降低密文被破解的可能。
以下,將參照附圖對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行詳細(xì)描述,附圖中
圖1為本發(fā)明加密方法用于一加密系統(tǒng)的功能方塊圖;圖2為起始算法的功能方塊圖;圖3為加密算法的功能方塊圖;圖4為功能方塊22的詳細(xì)結(jié)構(gòu)圖;圖5為功能方塊26的詳細(xì)結(jié)構(gòu)圖;圖6為功能方塊28的詳細(xì)結(jié)構(gòu)圖;和圖7為解密迭代過程。
參照?qǐng)D1。圖1所示為一利用本發(fā)明加密方法1的加密系統(tǒng)的功能方塊圖。功能方塊9為該利用本發(fā)明的加密方法1的加密系統(tǒng)。該加密系統(tǒng)9的輸入為明文2及加密密鑰碼8,輸出則為密文6。該加密系統(tǒng)9利用一特定算法A(功能方塊90),將該明文2分解為長(zhǎng)度固定的明文字串,并由該加密密鑰碼8得到用于本發(fā)明加密方法1的密鑰碼7。而本發(fā)明的加密方法1的主要功能為利用加密系統(tǒng)9所提供的密鑰碼7,將該長(zhǎng)度固定的明文字串3加密為一密文字串5。最后,該加密系統(tǒng)9再以一特定算法B(功能方塊91),將各密文字串5組合為一密文6。而加密系統(tǒng)9的典型實(shí)施例為一塊加密結(jié)構(gòu)(block cipher),即該特定算法A(功能方塊90)僅將明文2分解為長(zhǎng)度固定的明文字串3,并直接以該加密密鑰碼8作為密鑰碼7,依序加密各明文字串,而該特定算法B(功能方塊91)僅將各密文字串5依序連接成為該密文6。但本發(fā)明所提供的加密方法可作為一基本構(gòu)成塊,運(yùn)用于更復(fù)雜的加密系統(tǒng),如使用數(shù)據(jù)流加密結(jié)構(gòu)(stream cipher)的加密系統(tǒng)。
如圖1所示,在本實(shí)施例中,本發(fā)明的加密方法1以一長(zhǎng)度為64比特的明文字串3與密鑰碼7為輸入,并輸出一密文字串5。本發(fā)明的加密方法1包含兩個(gè)主要功能方塊10及20。其中方塊10以密鑰碼7為輸入,以一起始算法10產(chǎn)生加密參考數(shù)據(jù)4為輸出。而明文字串3則與加密參考數(shù)據(jù)4共同輸入加密算法20,產(chǎn)生64比特的密文字串5。
圖1中方塊10中的起始算法的功能方塊圖示于圖2。如圖2所示,該起始算法以密鑰碼7為輸入,以加密參考數(shù)據(jù)4為輸出。該加密參考數(shù)據(jù)為三陣列,分別為次密鑰陣列P、排序?qū)?yīng)陣列S及腳標(biāo)陣列N。其中陣列P包含18個(gè)32比特元素,陣列S為二維陣列,包含4個(gè)各含256元素的一維陣列,而陣列N包含16個(gè)32比特元素。在功能方塊12中,此三陣列分別被填入預(yù)定常數(shù)。在接下來的功能方塊14中,P的第一元素與密鑰碼的頭32個(gè)比特做XOR(異或)運(yùn)算,并以所得來更新P的第一元素。P的第二元素與密鑰碼的次32比特做XOR運(yùn)算并以此更新P的第二個(gè)元素,以此類推,更新P陣列中的所有元素。若密鑰碼的總比特?cái)?shù)不如P陣列的總比特?cái)?shù),則重復(fù)密鑰碼序列以完成上述步驟。
在功能方塊16中,P陣列被重新計(jì)算。其中需利用一初始加密算法。該初始加密算法以兩個(gè)32比特輸入產(chǎn)生兩個(gè)32比特輸出。P的更新程序則如下先以各設(shè)為0的兩個(gè)32比特輸入,經(jīng)該初始加密算法得到兩個(gè)32比特輸出,填入P的頭兩個(gè)元素。并以此二輸出再經(jīng)該初始加密算法所得的兩個(gè)32比特結(jié)果,填入P的接下來的兩個(gè)元素,并循此規(guī)則依序?qū)的所有元素更新。
前述過程亦被用于功能方塊18中,以更新陣列S。而在功能方塊16及18中皆被使用的初始加密算法將稍后予以介紹。
組成本發(fā)明加密方法核心的加密算法20示于圖3。如圖3所示,由64比特所組成的明文字串3首先被分解為兩個(gè)分別稱為X1、Xr的片段,并以此二者輸入功能方塊22,而在功能方塊22中亦使用加密參考數(shù)據(jù),以完成加密過程。完成功能方塊22中的過程后,X1及Xr均被更新,以組成密文字串為輸出。同時(shí),功能方塊22亦產(chǎn)生一陣列n,用來在功能方塊24中更新陣列N。此陣列n長(zhǎng)度與陣列N長(zhǎng)度相同。在功能方塊24中,則執(zhí)行下列步驟對(duì)i從0到15,將N的第i個(gè)元素與N[n[i]]交換。經(jīng)過如此重排過程,屬于加密參考數(shù)據(jù)4的N陣列會(huì)被重新排列,以增加加密時(shí)的復(fù)雜度。
圖3中功能方塊22的詳細(xì)結(jié)構(gòu)示于圖4。由圖4可知,X1首先與P
進(jìn)行XOR運(yùn)算以更新X1,并與Xr進(jìn)入第一迭代步驟27。在此步驟中,X1被輸入功能方塊26中,其輸出結(jié)果與Xr及P[N
]進(jìn)行XOR運(yùn)算,以更新Xr,接下來交換X1與Xr的值,兩者共同輸入功能方塊28,以產(chǎn)生n陣列的第一個(gè)元素n
。此迭代步驟27重復(fù)16次,在第i次迭代中,使用P[N[i]]為加密過程的一變量,并產(chǎn)生n[i]。最后Xr與P[17]進(jìn)行XOR運(yùn)算,更新Xr。
圖4中功能方塊26的詳細(xì)功能方塊圖示于圖5。如圖5所示,功能方塊26接收一32比特輸入并產(chǎn)生一32比特輸出。其32比特輸出先被分為四個(gè)各長(zhǎng)8比特的部分,并分別用來定義四個(gè)常數(shù)s0、s1、s2、s3。在S陣列中,第一個(gè)一維陣列以第一個(gè)8比特(由最高有效位算起)為腳標(biāo)所取出的元素為s0。在S陣列中,第二個(gè)一維陣列以第二個(gè)8比特為腳標(biāo)所取出的元素為s1。依此類推以得到s2及s3。而最后輸出為((((s0+s1)XOR s2)+s3)。
圖4中功能方塊28的詳細(xì)結(jié)構(gòu)示于圖6。如圖6所示,功能方塊28接收兩個(gè)32比特輸入,產(chǎn)生一個(gè)32比特輸出。在功能方塊28中,兩個(gè)輸入的最后4比特進(jìn)行XOR運(yùn)算后所得的4比特再填入28比特的0,形成最后的32比特輸出。
由上述對(duì)本發(fā)明的詳細(xì)說明可知,本發(fā)明的加密方法1在加密一明文字串后,其加密參考數(shù)據(jù)4即被重新改寫,且改寫方式與該明文相關(guān)。如此一來,當(dāng)本發(fā)明的加密方法用于加密后接下來的另一明文字串時(shí),其加密結(jié)果不僅與密鑰碼7有關(guān),并且該已被改寫的加密參考數(shù)據(jù)4與前一明文字串有關(guān),故,本發(fā)明的加密方法1所加密的密文不僅與該密鑰碼7有關(guān),還與整個(gè)加密過程相關(guān)。這樣的作法,大幅地增加本發(fā)明加密方法1的非線性,使加密后的密文更難被破解。
為使本發(fā)明的特征更清楚,現(xiàn)以一128比特的密鑰碼依序加密四段內(nèi)容完全相同的64-比特明文密鑰碼00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00四段64-比特明文字串分別為00 00 00 00 00 00 00 0000 00 00 00 00 00 00 0000 00 00 00 00 00 00 0000 00 00 00 00 00 00 00而利用本發(fā)明加密方法1依序加密該四段明文后所得的四段密文字串為98 38 97 4E 36 07 B3 D090 FD BE 62 B0 6F DD D490 FB B5 88 71 03 63 3004 B5 63 6F 87 CE 28 AE雖然該四段明文字串內(nèi)容完全相同,加密該四段明文字串所用的密鑰碼亦完全相同,但依序加密該四段明文后所得的結(jié)果卻已完全不同。正如前面所提到的,本發(fā)明加密方法1加密后的結(jié)果不僅與密鑰碼有關(guān),還與加密的過程有關(guān)。
總之,本加密方法的特征在于,功能方塊28所產(chǎn)生的陣列n重排陣列N(如功能方塊24所述)。此一重排過程改寫加密參考數(shù)據(jù),使得該加密參考數(shù)據(jù)不僅與該密鑰碼有關(guān),還與已加密的過程有關(guān),以此增加加密過程的復(fù)雜度與非線性,減少被破解的機(jī)會(huì)。
本加密方法也有一相對(duì)應(yīng)的解密方法。此時(shí)只要將功能方塊22代以描述于圖7的功能方塊30,便可將原來加密的過程改為解密的過程即以密文為輸入,配合原來的密鑰碼,輸出明文。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,在本發(fā)明權(quán)利要求內(nèi)所做出的等效變化與改進(jìn),皆應(yīng)屬于本發(fā)明的覆蓋范圍。
權(quán)利要求
1.一種加密方法,用于將一長(zhǎng)度固定的明文字串,配合一給定的密鑰碼,得到一對(duì)應(yīng)的密文字串;該加密方法包含有下列步驟給定該密鑰碼與該明文字串;以一起始算法,配合該密鑰碼,產(chǎn)生加密參考數(shù)據(jù);以一加密算法,配合該加密參考數(shù)據(jù),將該明文字串加密為該密文字串;其中,該加密算法接收一固定長(zhǎng)度字串與該加密參考數(shù)據(jù)為輸入,經(jīng)過特定的步驟后,輸出一加密后的固定長(zhǎng)度字串;而該加密算法還包括一重置過程,在加密其輸入字串后,重設(shè)該加密參考數(shù)據(jù)。
2.如權(quán)利要求1所述的加密方法,其中,該加密參考數(shù)據(jù)為三陣列,分別為一次密鑰碼陣列,一排序?qū)?yīng)陣列及一腳標(biāo)陣列。
3.如權(quán)利要求2所述的加密方法,其中,該加密算法接收一輸入字串與該加密參考數(shù)據(jù)后,以下列步驟得到一輸出字串(1)將輸入該加密算法的字串分為一左字串與一右字串,以腳標(biāo)陣列中第一元素為腳標(biāo),并取出該次密鑰陣列中對(duì)應(yīng)該腳標(biāo)的元素,以以上三者與次密鑰陣列中第一元素,以特定法則計(jì)算出一左輸出、一右輸出及一新腳標(biāo);(2)以前步驟的左右輸出,另以該腳標(biāo)陣列中第二元素為腳標(biāo)取得該次密鑰碼陣列中的對(duì)應(yīng)元素,以以上三者以特定法則,還計(jì)算出新的左右輸出及一新腳標(biāo);(3)重復(fù)進(jìn)行步驟(2)固定次數(shù),每次進(jìn)行中,依序以腳標(biāo)陣列中第三、第四…元素為腳標(biāo)取得該次密鑰碼陣列中的對(duì)應(yīng)元素,以前述步驟的左右輸出,利用以上三者以特定法則還計(jì)算出新的左右輸出及一新腳標(biāo);(4)將步驟(3)的左右輸出,還以腳標(biāo)陣列中最后一元素為腳標(biāo)取得該次密鑰陣列的對(duì)應(yīng)元素,以以上三者及該次密鑰陣列中最后一個(gè)元素,以特定法則計(jì)算出左右輸出及一新腳標(biāo),此左右輸出對(duì)應(yīng)于該輸入字串的該輸出字串;和(5)合并步驟(1)至(4)所產(chǎn)生的新腳標(biāo),以特定法則重新安排該加密參考數(shù)據(jù)中的該腳標(biāo)陣列。
4.如權(quán)利要求3所述的加密方法,其中,該起始算法包含下列步驟以預(yù)設(shè)常數(shù)填入該三陣列中;以給定的密鑰碼,配合該次密鑰碼陣列,以一特定程序重新計(jì)算該次密鑰碼陣列;以一初始加密算法重新計(jì)算該次密鑰陣列;和以該初始加密算法重新計(jì)算該排序?qū)?yīng)陣列。
5.如權(quán)利要求4所述的加密算法,其中,該初始加密算法與該加密算法相同。
全文摘要
一種基本的加解密方法,可配合一給定的密鑰碼,將一長(zhǎng)度固定的明文字串加密為一密文字串。在本發(fā)明的加密方法中,包含一與加密過程相關(guān)的重置過程,使加密后的密文字串不僅與該密鑰碼及該明文字串有關(guān),還與該加密方法的加密過程相關(guān)。故,本發(fā)明為一具有高度非線性特性的加密法,可降低被破解的機(jī)會(huì)。
文檔編號(hào)H04L9/00GK1348278SQ0012598
公開日2002年5月8日 申請(qǐng)日期2000年10月10日 優(yōu)先權(quán)日2000年10月10日
發(fā)明者林振群 申請(qǐng)人:優(yōu)碩資訊科技股份有限公司