專利名稱:分組密碼加密解密的方法及其加密解密器的制作方法
技術領域:
本發(fā)明涉及數據傳輸或存儲過程中的加密技術,特別是一種分組密碼加密解密的方法及其加密解密器,本發(fā)明可以進一步提高分組密碼加密的強度。
背景技術:
21世紀是信息化的時代,信息日益網絡化,體現在商務電子化、金融電子化、政府辦公網絡化等方面,隨之而來的信息的安全與保密就變得越來越重要,而加密技術又是信息安全的基礎,加密強度、加密速度都要提高,加密成本要降低。隨著計算技術的飛速發(fā)展,破密能力也驚人地發(fā)展,這就使得加密技術面臨嚴峻的挑戰(zhàn)。在20世紀末,一路領先的美國的DES已被攻破,還有一些其它分組密碼,比如DES的變形(包括NewDES、多重DES、白化了的DES、s-盒可選擇的DES、s-盒可變的DES、使用獨立子密鑰的DES、廣義DES等),Rc系列分組密碼(包括RC2、RC5、RC6等)Lucifer、Madryga、Feal-N、RedocII、RedocIII、LOKI系列分組密碼(包括LOKI89、LOKI91、LOKI97等),Khufa、Khafre、Safer系列分組密碼(包括Safer64、Safer128、Safer+等),MMB、CAST、3WAY、TEA、MacGuffin、SHARK、BEAR、LION、CA.1.1、CRAB、Blowfish、GOST、SQUARE、MISTY、SXAL8、MBAL、Akelarre、15個AES候選算法等;目前國際公開的分組密碼不下100種,包括2001年美國出臺的AES,在這些算法中并沒有引進新的思維、新的概念、新的理論,只能依靠提高分組長度來提高加密強度,且破密能力與加密能力正在同步增長。中國專利z199107959.8公開了一種排列碼加密解密方法及其排列碼加密解密器。
發(fā)明內容
本發(fā)明的目的是提供一種分組密碼加密解密的方法及其加密解密器,可以克服現有技術的缺點和不足。本發(fā)明也是對現有技術的改進,提出了一種新的加密概念模型構成和方法,以求達到在不增加分組長度的情況下提高加密強度,并且與其它加密解密方法相比,可達到相同的加密強度,又可以使加密設備做得更簡單。使用排列碼加密法時,當分組長度n=4時就可以做到有足夠大的加密強度,比n=64的DES的加密強度還大。分組長度小,就可以是加解密設備做得更簡單。
本發(fā)明對于任意的分組密碼,基本構成設明文為m1,m2,m3.........。
對應的密文為c1,c2,c3.........。
Key為密鑰。f(m,Key)是分組加密函數,f-1(c,Key)是分組解密函數。
現有的加密方法是c1=f(m1,Key),c2=f(m2,Key),c3=f(m3,Key).........。
現有的解密方法是m1=f-1(c1,Key),m2=f-1(c2,Key),m3=f-1(c3,Key).........。
為了增加密碼分析的難度,本發(fā)明是使用一個變動的Key,每個、或者每幾個分組使用一個不同的Key,這樣可以使用Key1,Key2,Key3..........。
具體的方法是輸入密鑰Key,計算Key1=Key,Key2=F(Key1,m1),Key3=F(Key2,m2),以下文中F是由兩個已知變量計算一個新變量的函數,后面不再解釋。例如,Key3=F(Key2,m2)可以表示為Key3=Key2+m2,也可以表示為Key3=Key2-m2,還可以表示為Key3=Key2m2(表示是異或運算,一種標準的邏輯運算),只要已知(Key2,m2),計算出Key3的所有方法都可以。
........Keyi=F(Keyi-1,mi-1)...........。
加密方法是c1=f(m1,Key1),c2=f(m2,Key2),c3=f(m3,Key3).........。
對應的解密方法是m1=f-1(c1,Key1),m2=f-1(c2,Key2),m3=f-1(c3,Key3).........;或者這樣加密c1=f(m1,Key1),c2=f(m2,Key1),c3=f(m3,Key1).........;ci+1=f(mi+1,Key2),ci+2=f(mi+2,Key2),ci+3=f(mi+3,Key2).........;c2i+1=f(m2i+1,Key3),c2i+2=f(m2i+2,Key3),c2i+3=f(m2i+3,Key3).........;.......。
對應的解密方法是m1=f-1(c1,Key1),m2=f-1(c2,Key1),m3=f-1(c3,Key1).........;mi+1=f-1(ci+1,Key2),mi+2=f-1(ci+2,Key2),mi+3=f-1(ci+3,Key2).........;m2i+1=f-1(c2i+1,Key3),m2i+2=f-1(c2i+2,Key3),m2i+3=f-1(c2i+3,Key3).........;..........;如果加密強度仍不能滿足既定的要求,可以把加密后的密文再換一次密鑰加密一遍。這個過程可以重復多遍。當然這樣會產生很大的延遲,為了少產生延遲,可以每個分組加密多遍,再進行下一個分組的加密和整個明文加密完后再換一個密鑰重新加密,這個過程根據需要可以重復多編。
邏輯尺的應用因為加密與解密是對稱的,所以還可以用一個0、1序列的密鑰控制加密或解密,比明文組短時讓密鑰循環(huán)使用,可以用0代表加密,1代表解密,也可以反過來用1代表加密,0代表解密,只要先加密后解密,或者先解密后加密都行。這個邏輯尺就是輸入的密鑰,在多遍加密中也可以使用邏輯尺來控制究竟哪一遍加密,哪一遍解密。
假如加密一遍的密鑰為k比特,加密j遍,可以輸入j*k比特的密鑰,依次每次使用k比特,輸入的密鑰也可以小于j*k比特,最小可以是k比特,在這種情況下,在多次加密時,循環(huán)使用密鑰序列即可。
本發(fā)明的具體實施方案包括下述步驟一、加密的做法是
1)輸入密鑰Key(包括Key1,Key11,......Key1j),取出明文m1,用分組加密算法f(m1,Key1)產生密文c11和Key2(Key2=F(Key1,m1)),再用分組加密算法f(c11,Key11)產生密文c12和Key21(Key21=F(Key11,c11),......,最后再用分組加密算法f(c1j,Key1j)產生密文c1,至此完成了第一個分組m1的加密;2)取出明文m2,用分組加密算法f(m2,Key2)產生密文c21和Key3(Key3=F(Key2,m2)),再用分組加密算法f(c21,Key21)產生密文c22和Key31(Key31=F(Key21,c21)),......,最后再用分組加密算法f(c2j,Key2j)產生密文c2,至此完成了第二個分組m2的加密;3)取出明文m3,用分組加密算法f(m3,Key3)產生密文c31和Key4(Key4=F(Key3,m3)),再用分組加密算法f(c31,Key31)產生密文c32和Key41(Key41=F(Key31,c31)),......,最后再用分組加密算法f(c3j,Key3j)產生密文c3,至此完成了第三個分組m3的加密;.......,4)一直把所有的明文分組都加密完成。
二、解密的做法是1)輸入密鑰Key(包括Key1,Key11,......Key1j),取出密文c1,用分組解密算法f-1(c1,Key1j)產生密文c1j和Key2j(Key2j=F(Key1j,c1j)),再用分組解密算法f-1(c1j,Key1j-1)產生密文c1j-1和Key2j-1(Key2j-1=F(Key1j-1,c1j-1)),......最后再用分組加密算法f-1(c11,Key1)產生明文m1,至此完成了第一個分組c1的解密;2)取出密文c2,用分組解密算法f-1(c2,Key2j)產生密文c2j和Key3j(Key3j=F(Key2j,c2j)),再用分組解密算法f-1(c2j,Key2j-1)產生密文c2j-1和Key3j-1(Key3j-1=F(Key2j-1,c2j-1)),......最后再用分組加密算法f-1(c21,Key1)產生明文m2,至此完成了第二個分組c2的解密;3)取出密文c3,用分組解密算法f-1(c3,Key3j)產生密文c3j和Key4j(Key4j=F(Key3j,c3j)),再用分組解密算法f-1(c3j,Key3j-1)產生密文c3j-1和Key4j-1(Key4j-1=F(Key3j-1,c3j-1)),......最后再用分組加密算法f-1(c31,Key1)產生明文m3,至此完成了第三個分組c3的解密;.......
4)一直把所有的密文分組都解密完成。
三、邏輯尺的應用因為加密與解密是對稱的,所以還可以用一個0、1序列的密鑰控制加密或解密,比明文組短時讓密鑰循環(huán)使用,可以用0代表加密,1代表解密,也可以反過來用1代表加密,0代表解密,只要先加密后解密,或者先解密后加密都行。這個邏輯尺就是輸入的密鑰,在多遍加密中也可以使用邏輯尺來控制究竟哪一遍加密,哪一遍解密。
假如加密一遍的密鑰為k比特,加密j遍,可以輸入j*k比特的密鑰,依次每次使用k比特,輸入的密鑰也可以小于j*k比特,最小可以是k比特,在這種情況下,在多次加密時,循環(huán)使用密鑰序列即可。
本發(fā)明提供的分組密碼加密解密器包括所述的分組密碼加密器包括明文輸入線,明文寄存器MR1、MR2、......明文寄存器MRj;密鑰Key1、Key2、......密鑰Keyj,密鑰寄存器R1、R2、......密鑰寄存器Rj,時鐘CLK,j分頻器,時序電路,明文寄存器MR2,延時電路,控制端R1、R2......Rj控制端,子密鑰電路,加密運算電路和密鑰運算電路構成。
明文輸入線接明文寄存器MR1輸入端;密鑰Key1接密鑰寄存器R1輸入端、密鑰Key2接密鑰寄存器R2輸入端......密鑰Keyj接密鑰寄存器Rj輸入端;時鐘CLK接j分頻輸入端、同時接時序電路輸入端、同時接明文寄存器MR2輸入端、同時接延時電路輸入端;j分頻輸出端接明文寄存器MR1輸入端;時序電路輸出信號Q1接R1控制端和Rj控制端、時序控制信號Q2接R2控制端和R1控制端......;R1、R2......Rj的輸出端接子密鑰電路的輸入端;MR1的輸出端接MR2的輸入端;MR2的輸出端接加密運算電路的輸入端和密鑰運算電路的輸入端;子密鑰電路的輸出端接加密運算的輸入端和密鑰運算電路的輸入端;加密運算電路的輸出端接密文寄存器ER1的輸入端;ER1的輸出端接MR2的輸入端,同時輸出密文;密鑰運算電路的輸出端接R1、R2......Rj的輸入端。
所述的分組密碼解密器包括密文輸入端,密文寄存器ERj、ERj-1、......、密文寄存器ER2、密文寄存器ER1;密鑰Keyj、密鑰Keyj-1、......密鑰Key1,密鑰寄存器Rj、Rj-1、......密鑰寄存器R1,時鐘CLK,j分頻器,時序電路,延時電路,控制端Rj、Rj-1、......R1控制端,子密鑰電路,加密運算電路和密鑰運算電路構成。
密文輸入線接密文寄存器ER2輸入端;密鑰Keyj接密鑰寄存器Rj輸入端、密鑰Keyj-1接密鑰寄存器Rj-1輸入端......密鑰Key1接密鑰寄存器R1輸入端;時鐘CLK接j分頻輸入端、同時接時序電路輸入端、同時接密文寄存器ER3輸入端、同時接延時電路輸入端;j分頻輸出端接密文寄存器ER3輸入端;時序電路輸出信號Q1接Rj控制端和R1控制端、時序控制信號Q2接Rj-1控制端和Rj控制端......;R1、R2......Rj的輸出端接子密鑰電路的輸入端;ER2的輸出端接ER3的輸入端ER3的輸出端接解密運算電路的輸入端和密鑰運算電路的輸入端;子密鑰電路的輸出端接解密運算電路的輸入端和密鑰運算電路的輸入端;解密運算的輸出端接明文寄存器MR3的輸入端;MR3的輸出端接ER3的輸入端,同時輸出明文;密鑰運算電路的輸出端接R1、R2......Rj的輸入端。
本發(fā)明與現有技術相比有如下有益效果對于美國的DES算法,其分組長度n=64的算法被破密后,只能靠加大分組長度n來提高加密強度。而現在我們提供的方法用于排列碼加密法時,當分組長度n=4時就可以做到有足夠大的加密強度,比n=64的DES的加密強度還大。分組長度n小的好處是設備的復雜度降低,可靠性增加,加密速度加快。
利用本發(fā)明可以設計出加密強度可以大于2n的加密方法。適用于一切可以利用分組密碼加密的場合,可以用于存儲的數字量加密,又可以用于傳輸的數字信號加密,由于它的快速性,還可以用于實時系統(tǒng)的加密中。
圖1當Key=4時的比特交換示意圖;圖2加密過程示意圖;圖3解密過程示意圖;圖4Key的構成示意圖。
圖5Key的另一種構成示意圖。
圖6對一個明文分組進行加密時邏輯尺的應用。
圖7對一個密文分組進行解密時邏輯尺的應用。
圖8對所有明文分組進行縱向多遍加密過程中邏輯尺的應用。
圖9對所有密文分組進行縱向多遍解密過程中邏輯尺的應用。
圖10對所有明文分組進行橫向多遍加密過程中邏輯尺的應用。
圖11對所有密文分組進行橫向多遍解密過程中邏輯尺的應用。
圖12對明文進行縱向加密過程中以密鑰序列與明文作為邏輯尺的應用。
圖13加密電路圖。
圖14解密電路圖。
具體實施例方式
本發(fā)明可通過實施例詳細說明,但它們不是對本發(fā)明做任何限制。
實施例1n=4的排列碼程序設計說明1.建立1個n=4的排列碼表Key01230 01231 01322 02133 02314 03125 0321........
23 3210這樣的表有24!個,我們隨機建立其中的256個。當Key=4時,有如下的映射關系0→0,1→3,2→1,3→2。附圖1描述了Key=4時的比特交換示意圖。
為了節(jié)省存儲空間,0→00,1→01,2→10,3→11,Key用存儲地址來表示。這樣1個排列碼表占24個字節(jié)。
圖2加密過程示意圖;圖3解密過程示意圖;注加密解密執(zhí)行的順序既可以按行進行,又可以按列進行。
2.密鑰的設計用1個字節(jié)作整數,它表示的范圍是0~255。根據其值就可以確定一個排列碼表。
在這個排列碼表中,再對該值進行模24運算。得到一個0~23的整數,恰好對應排列碼表中的Key值,由此可確定比特的交換順序。
3.關于求非的運算,為了進一步增加破密的難度,我們在交換順序的同時,在某些路徑上求反。因為n=4,0點有可能有4個路徑,1、2、3點都有可能有4個路徑,所以可能的路徑數共有16條,每一bit對應一條路徑,使用16bit或者說2個字節(jié)控制哪個路徑上是否加非。用0表示不加非,用1表示加非,或者反之。
4.綜合以上密鑰的長度為24bit。附圖4和附圖5描述了密鑰Key的構成。
5.為了進一步增加加密強度,第二個分組的密鑰選取,是在原密鑰的基礎上與3個字節(jié)的明文進行一種函數運算,輸入都是已知,所以方法可行。(若明文不是3個字節(jié),首先通過任意定義的規(guī)則轉換成3個字節(jié)。)6.這樣一來每個分組的密鑰都是一個偽隨機數。但必定有明文的特征。但產生的密文隨機性很強。
7.以上過程連續(xù)執(zhí)行多遍,每遍都用不同的24bit的密鑰。
8.為了提高速度,并不是一遍加密結束后再進行下一遍,而是一個分組連續(xù)進行多遍加密。
這種做法理論上進行4遍,加密強度已經遠遠超過了24=16,因為加密強度是關于n的函數,因此加密強度會遠遠大于2n。
實施例2以密鑰序列作為邏輯尺在加密解密過程中的應用加密和解密是兩個相逆的過程,可以先加密后解密,也可以先解密后加密。我們可以用長為1比特的二進制0或1作為密鑰來控制當前要運行加密模塊還是解密模塊。即可將輸入的密鑰序列Key作為邏輯尺,在多遍加密解密過程中來控制哪些遍進行加密、哪些遍進行解密。
現于該實施例中采用如下的符號約定執(zhí)行一遍加密需k bit密鑰,則執(zhí)行j遍加密解密,可輸入j*k bit長的密鑰;在每一遍加密解密時依次使用密鑰序列Key中的k bit;也可以輸入長度小于j*k bit長的密鑰,在這種情況下,循環(huán)使用該密鑰作為邏輯尺即可進行j遍的加密過程。
在附圖6中,描述了在對一個明文分組進行加密時邏輯尺的應用;在該過程中,可把1代表加密而0代表解密。以p作為循環(huán)變量,其初值為1、終值為j;在每輪循環(huán)中,首先判斷是否滿足循環(huán)條件p<=j,若不滿足,則進行下一個分組的運算;若滿足p<=j,則讀取密鑰序列Key中的第p個比特Kp,再對Kp進行判定,若Kp=1,則第p遍應該執(zhí)行加密模塊,反之若Kp=0,則第p遍應該執(zhí)行解密模塊。
至此,完成了對于該明文分組的加密過程。
對所有明文分組均利用上述方法,完成對所有明文分組的加密,也就完成了對于整個明文的加密。
注若密鑰序列Key的長度<j,則循環(huán)使用密鑰序列Key即可,直至利用密鑰序列Key完成對于明文的加密。
附圖8描述了對于所有明文分組進行縱向多遍加密過程中邏輯尺的應用。
附圖8中的符號約定如下明文分組為m1,m2,...mL;即明文分組個數為L;q為外層循環(huán)變量,其初值為1、終值為L;p為內層循環(huán)變量,其初值為1、終值為j;K仍為密鑰序列,K中的第p個比特仍以Kp表示。
外層循環(huán)的判定條件為q<=L是否滿足如果不滿足q<=L,則已經完成對所有明文分組的運算,所有明文分組的加密過程全部完成,即完成了對于整個明文的加密過程;若滿足q<=L,則進入內層循環(huán),開始對于下一個分組的j遍加密過程。內層循環(huán)的原理同附圖6,在此不再贅述。
附圖7描述了對于一個密文分組進行解密時的邏輯尺的應用。在對該分組進行解密時,以1代表解密而0代表加密。仍以p作為循環(huán)變量,其初值為1、終值為j;在每輪循環(huán)過程中,首先判斷是否滿足循環(huán)條件p<=j若不滿足,則進行下一個分組的運算;若滿足p<=j,則讀取密鑰序列Key中的第p個比特Kp,再對Kp進行判定若Kp=1,則第p遍應該執(zhí)行解密模塊,反之若Kp=0,則第p遍應該執(zhí)行加密模塊。
至此,完成了對于該密文分組的解密過程。
對所有密文分組均利用上述方法,完成對所有密文分組的解密,也就完成了對于整個密文的解密。
附圖9描述了對于所有密文分組進行縱向多遍解密過程中邏輯尺的應用。
附圖9中的符號約定如下密文分組為c1,c2,...cL;即密文分組個數為L;q為外層循環(huán)變量,其初值為1、終值為L;p為內層循環(huán)變量,其初值為1、終值為j;K仍為密鑰序列,K中的第p個比特仍以Kp表示。
外層循環(huán)的判定條件為q<=L是否滿足如果不滿足q<=L,則已經完成對所有密文分組的運算,所有密文分組的解密過程全部完成,即完成了對于整個密文的解密過程;若滿足q<=L,則進入內層循環(huán),開始對于下一個密文分組的運算。內層循環(huán)的原理同附圖7,在此不再贅述。
在此需補充一點在附圖6中,對于同一分組沿縱向執(zhí)行了多遍的加密或解密模塊,從而完成了對該分組的加密過程;然后對其他分組執(zhí)行上述過程,從而完成對整個明文的加密過程;附圖8中描述了對于所有明文分組進行縱向多遍加密過程中邏輯尺的應用;在附圖7中,對于同一分組沿縱向執(zhí)行多遍加密或解密模塊,從而完成了對該分組的解密過程;然后對其他分組執(zhí)行上述過程,從而完成對整個密文的解密過程。附圖9中描述了對于所有密文分組進行縱向多遍解密過程中邏輯尺的應用;上述過程都是沿縱向完成的,另一種實施方案是沿橫向完成參見附圖2,可以先計算出c11,c21,c31......后,再去計算c12,c22,c32......,直至計算出所有的密文分組c1,c2,c3......為止,則橫向完成了對于整個明文的加密。
同理,在附圖3中,解密過程不僅可沿縱向進行,也可以沿橫向進行。
附圖10中描述了對于所有明文分組實現橫向多遍加密過程中邏輯尺的應用。
附圖10中的符號約定如下明文分組為m1,m2,...mL;即明文分組個數為L;q為外層循環(huán)變量,其初值為1、終值為j;p為內層循環(huán)變量,其初值為1、終值為L;K仍為密鑰序列,K中的第p個比特仍以Kp表示。
外層循環(huán)判定條件為是否滿足q<=j;若不滿足q<=j,則表明已橫向完成對所有明文明文分組的j遍運算,則對明文的橫向多遍加密過程完成;若滿足q<=j,則進入內層循環(huán),沿橫向執(zhí)行對于所有分組的下一遍加密模塊或解密模塊。
附圖11中描述了對于所有密文分組實現橫向多遍解密過程中邏輯尺的應用。
附圖11中的符號約定如下密文分組為c1,c2,...cL;即明文分組個數為L;q為外層循環(huán)變量,其初值為1、終值為j;p為內層循環(huán)變量,其初值為1、終值為L;K仍為密鑰序列,在此作為邏輯尺使用;K中的第p個比特仍以Kp表示。
外層循環(huán)判定條件為是否滿足q<=j;若不滿足q<=j,則表明已橫向完成對所有密文分組的j遍運算,則對密文的橫向多遍解密過程完成;若滿足q<=j,則進入內層循環(huán),沿橫向執(zhí)行對于所有分組的下一遍加密模塊或解密模塊。
注在該實施例的上述所有附圖內,在對明文的加密過程中,均以1代表執(zhí)行加密模塊而以0代表解密模塊,而對于密文的解密過程中,均以0代表加密模塊而以1代表解密模塊;也可以在對明文的加密過程中以0代表加密模塊而以1代表解密模塊,在對密文的解密過程中以1代表加密模塊而以0代表解密模塊。只要加密過程中所采用的邏輯與解密過程中的邏輯相反即可。
實施例3以密鑰序列和明文分組作為邏輯尺在加密解密過程中的應用在實施例2各例中,均以密鑰序列Key作為邏輯尺,來控制哪一遍執(zhí)行加密模塊、哪一遍執(zhí)行解密模塊;在該實施例中,以密鑰序列和明文分組作為邏輯尺。
圖12描述了對明文進行縱向加密過程中以密鑰序列與明文作為邏輯尺的應用。在該圖中,對各明文分組m1,m2,...mL進行縱向加密;首先使用密鑰序列Key作為邏輯尺,當密鑰序列Key作為邏輯尺用完時,使用明文分組m1的各個比特作為邏輯尺繼續(xù)使用,來控制在哪一遍執(zhí)行加密、哪一遍執(zhí)行解密。若明文分組m1仍然不夠,則當m1用完后,開始使用明文分組m2的各個比特作為邏輯尺繼續(xù)使用,來控制在哪一遍執(zhí)行加密、哪一遍執(zhí)行解密。。。。。。直到整個加密過程完成。
實施例4以n=4為例描述硬件加密和解密過程,取j=3,即子密鑰為3組,每一分組加(解)密3次。
加密過程如下輸入明文(01000000)B,輸入(100101010010101010101010)B到Key1,(101000110101001010110110)B到Key2,輸入密鑰(110101110011001010101000)B到Key3。
CLK到來,3分頻輸出高電平,第一組明文(0100)B由寄存器MR1輸入MR2;時序電路輸出Q1為高電平,其余為低電平,密鑰寄存器R1打開,其余密鑰寄存器關閉,Key1輸入到子密鑰電路,子密鑰電路對Key1前8位對(24)D取模得到(5)D;子密鑰電路處理子密鑰后輸入到加密運算和密鑰運算;CLK到來,明文輸入到加密運算和密鑰運算;第一組明文經第一次加密為(0011)B,輸入到MR2;密鑰運算輸出(100101010010101010101110)B輸入到R1為Key1’;CLK到來,時序電路輸出Q2為高電平,其余為低電平,R2打開,其余密鑰寄存器關閉,Key2輸入到子密鑰電路,子密鑰電路對Key2前8位對(24)D取模得到(19)D;子密鑰電路處理子密鑰后輸入到加密運算和密鑰運算;CLK到來,第一次中間秘文輸入到加密運算和密鑰運算;第一次中間秘文經第二次加密為(1000)B,輸入到MR2;密鑰運算輸出(101000110101001010111001)B輸入到R2為Key2’;CLK到來,時序電路輸出Q3為高電平,其余為低電平,R3打開,其余密鑰寄存器關閉,Key3輸入到子密鑰電路,子密鑰電路對Key3前8位對(24)D取模得到(23)D;子密鑰電路處理子密鑰后輸入到加密運算和密鑰運算;CLK到來,第二次中間秘文輸入到加密運算和密鑰運算;第二次中間秘文經第三次加密為(1100)B,輸入到MR2;密鑰運算輸出(110101110011001010100000)B輸入到R3為Key3’;輸出第一組密文(1100)B。
CLK到來,3分頻輸出高電平,第二組明文(0000)B由寄存器MR1輸入MR2;時序電路輸出Q1為高電平,其余為低電平,密鑰寄存器R1打開,其余密鑰寄存器關閉,Key1’輸入到子密鑰電路,子密鑰電路對Key1’前8位對(24)D取模得到(5)D;子密鑰電路處理子密鑰后輸入到加密運算和密鑰運算;CLK到來,明文輸入到加密運算和密鑰運算;第二組明文經第一次加密為(0011)B,輸入到MR2;密鑰運算輸出(100101010010101010101110)B輸入到R1為Key1”;CLK到來,時序電路輸出Q2為高電平,其余為低電平,R2打開,其余密鑰寄存器關閉,Key2’輸入到子密鑰電路,子密鑰電路對Key2’前8位對(24)D取模得到(19)D;子密鑰電路處理子密鑰后輸入到加密運算和密鑰運算;CLK到來,第一次中間秘文輸入到加密運算和密鑰運算;第一次中間秘文經第二次加密為(1101)B,輸入到MR2;密鑰運算輸出(101000110101001010111100)B輸入到R2為Key2’;CLK到來,時序電路輸出Q3為高電平,其余為低電平,R3打開,其余密鑰寄存器關閉,Key3輸入到子密鑰電路,子密鑰電路對Key3前8位對(24)D取模得到(23)D;子密鑰電路處理子密鑰后輸入到加密運算和密鑰運算;CLK到來,第二次中間秘文輸入到加密運算和密鑰運算;第二次中間秘文經第三次加密為(0101)B,輸入到MR2;密鑰運算輸出(110101110011001010101101)B輸入到R3為Key3’;輸出第二組密文(0101)B。
解密過程如下輸入密文(11000101)B,輸入(100101010010101010101010)B到Key1,(101000110101001010110110)B到Key2,輸入密鑰(110101110011001010101000)B到Key3。
CLK到來,3分頻輸出高電平,第一組密文(1100)B由寄存器ER2輸入ER3;時序電路輸出Q1為高電平,其余為低電平,密鑰寄存器R3打開,其余密鑰寄存器關閉,Key3輸入到子密鑰電路,子密鑰電路對Key3前8位對(24)D取模得到(23)D;子密鑰電路處理子密鑰后輸入到解密運算和密鑰運算;CLK到來,密文輸入到解密運算和密鑰運算;第一組密文經第一次解密為(1000)B,輸入到MR3;密鑰運算輸出(110101110011001010110000)B輸入到R3為Key3’;CLK到來,時序電路輸出Q2為高電平,其余為低電平,R2打開,其余密鑰寄存器關閉,Key2輸入到子密鑰電路,子密鑰電路對Key2前8位對(24)D取模得到(19)D;子密鑰電路處理子密鑰后輸入到解密運算和密鑰運算;CLK到來,第一次中間明文輸入到解密運算和密鑰運算;第一次中間明文經第二次解密為(0011)B,輸入到ER3;密鑰運算輸出(101000110101001010111001)B輸入到R2為Key2’;CLK到來,時序電路輸出Q3為高電平,其余為低電平,R1打開,其余密鑰寄存器關閉,Key1輸入到子密鑰電路,子密鑰電路對Key1前8位對(24)D取模得到(5)D;子密鑰電路處理子密鑰后輸入到解密運算和密鑰運算;CLK到來,第二次中間明文輸入到解密運算和密鑰運算;第二次中間明文經第三次解密為(0100)B,輸入到MR3;密鑰運算輸出(100101010010101010101110)B輸入到R1為Key1’;輸出第一組明文(0100)B。
CLK到來,3分頻輸出高電平,第二組密文(0101)B由寄存器ER2輸入ER3;時序電路輸出Q1為高電平,其余為低電平,密鑰寄存器R3打開,其余密鑰寄存器關閉,Key3’輸入到子密鑰電路,子密鑰電路對Key3’前8位對(24)D取模得到(23)D;子密鑰電路處理子密鑰后輸入到解密運算和密鑰運算;CLK到來,密文輸入到解密運算和密鑰運算;第二組密文經第一次解密為(1101)B,輸入到ER3;密鑰運算輸出(110101110011001010111101)B輸入到R3為Key3”;CLK到來,時序電路輸出Q2為高電平,其余為低電平,R2打開,其余密鑰寄存器關閉,Key2’輸入到子密鑰電路,子密鑰電路對Key2’前8位對(24)D取模得到(19)D;子密鑰電路處理子密鑰后輸入到解密運算和密鑰運算;CLK到來,第一次中間明文輸入到解密運算和密鑰運算;第一次中間明文經第二次解密為(0011)B,輸入到ER3;密鑰運算輸出(101000110101001010111100)B輸入到R2為Key2”;CLK到來,時序電路輸出Q3為高電平,其余為低電平,R1打開,其余密鑰寄存器關閉,Key1’輸入到子密鑰電路,子密鑰電路對Key1’前8位對(24)D取模得到(5)D;子密鑰電路處理子密鑰后輸入到解密運算和密鑰運算;CLK到來,第二次中間明文輸入到解密運算和密鑰運算;第二次中間明文經第三次解密為(0000)B,輸入到ER3;密鑰運算輸出(100101010010101010101110)B輸入到則為Key1”;輸出第二組明文(0000)B。
權利要求
1.一種分組密碼加密解密的方法,它包括下述步驟設明文為m1,m2,m3.........;對應的密文為c1,c2,c3.........;Key為密鑰;f(m,Key)是分組加密函數,f-1(c,Key)是分組解密函數;加密方法是c1=f(m1,Key),c2=f(m2,Key),c3=f(m3,Key).........;解密方法是m1=f-1(c1,Key),m2=f-1(c2,Key),m3=f-1(c3,Key).........;其特征在于使用一個變動的Key,每個、或者每幾個分組使用一個不同的KeyKey1,Key2,Key3..........;輸入密鑰Key,計算Key1=Key,Key2=F(Key1,m1),Key3=F(Key2,m2)........Keyi=F(Keyi-1,mi-1)...........;F是由兩個已知變量計算一個新變量的函數;加密方法是c1=f(m1,Key1),c2=f(m2,Key2),c3=f(m3,Key3).........;或者c1=f(m1,Key1),c2=f(m2,Key1),c3=f(m3,Key1).........;ci+1=f(mi+1,Key2),ci+2=f(mi+2,Key2),ci+3=f(mi+3,Key2).........;c21+1=f(m2i+1,Key3),c2i+2=f(m2i+2,Key3),c2i+3=f(m2i+3,Key3).........;對應的解密方法是m1=f-1(c1,Key1),m2=f-1(c2,Key2),m3=f-1(c3,Key3).........;或者解密方法是m1=f-1(c1,Key1),m2=f-1(c2,Key1),m3=f-1(c3,Key1).........;mi+1=f-1(ci+1,Key2),mi+2=f-1(ci+2,Key2),mi+3=f-1(ci+3,Key2).........;m2i+1=f-1(c2i+1,Key3),m2i+2=f-1(c2i+2,Key3),m2i+3=f-1(c2i+3,Key3).........;..........。
2.按照權利要求1所說的分組密碼加密解密的方法,其特征在于把所說的加密后的密文再換一次密鑰加密一遍或分組重復多遍;所說的換密鑰加密重復多遍中,包括先是每個分組加密多遍,然后再進行下一個分組的加密和整個明文加密完后再換一個密鑰重新加密,這個過程根據需要可以重復多編。
3.按照權利要求1或2所說的分組密碼加密解密的方法,其特征在于應用邏輯尺控制加密或解密。
4.按照權利要求3所說的分組密碼加密解密的方法,其特征在于所說的邏輯尺是0、1序列,用0代表加密,1代表解密,或用1代表加密,0代表解密。
5.一種分組密碼加密解密的方法,其特征在于它包括下述步驟加密的做法1)輸入密鑰Key,包括Key1,Key11,......Key1j,取出明文m1,用分組加密算法f(m1,Key1)產生密文c11和Key2,Key2=F(Key1,m1)再用分組加密算法f(c11,Key11)產生密文c12和Key21,Key21=F(Key11,c11),......最后再用分組加密算法f(c1j,Key1j)產生密文c1,至此完成了第一個分組m1的加密;2)取出明文m2,用分組加密算法f(m2,Key2)產生密文c21和Key3,Key3=F(Key2,m2),再用分組加密算法f(c21,Key21)產生密文c22和Key31,Key31=F(Key21,c21),......最后再用分組加密算法f(c2j,Key2j)產生密文c2,至此完成了第二個分組m2的加密;3)取出明文m3,用分組加密算法f(m3,Key3)產生密文c31和Key4,Key4=F(Key3,m3),再用分組加密算法f(c31,Key31)產生密文c32和Key4,Key41=F(Key31,c31),......最后再用分組加密算法f(c3j,Key3j)產生密文c3,至此完成了第三個分組m3的加密;.......;4)一直把所有的明文分組都加密完成;解密的做法1)輸入密鑰Key,包括Key1,Key11,......Key1j,取出密文c1,用分組解密算法f-1(c1,Key1j)產生密文c1j和Key2j,Key2j=F(Key1j,c1j),再用分組解密算法f-1(c1j,Key1j-1)產生密文c1j-1和Key2j-1,Key2j-1=F(Key1j-1,c1j-1),......,最后再用分組加密算法f-1(c11,Key1)產生明文m1,至此完成了第一個分組c1的解密;2)取出密文c2,用分組解密算法f-1(c2,Key2j)產生密文c2j和Key3j,Key3j=F(Key2j,c2j),再用分組解密算法f-1(c2j,Key2j-1)產生密文c2j-1和Key3j-1,Key3j-1=F(Key2j-1,c2j-1),......,最后再用分組加密算法f-1(c21,Key1)產生明文m2,至此完成了第二個分組c2的解密;3)取出密文c3,用分組解密算法f-1(c3,Key3j)產生密文c3j和Key4j,Key4j=F(Key3j,c3j),再用分組解密算法f-1(c3j,Key3j-1)產生密文c3j-1和Key4j-1,Key4j-1=F(Key3j-1,c3j-1),......,最后再用分組加密算法f-1(c31,Key1)產生明文m3,至此完成了第三個分組c3的解密;.......;4)一直把所有的密文分組都解密完成。
6.按照權利要求5所說的分組密碼加密解密的方法,其特征在于把所說的加密后的密文再換一次密鑰加密一遍或分組重復多遍;所說的換密鑰加密重復多遍中,包括先是每個分組加密多遍,然后再進行下一個分組的加密和整個明文加密完后再換一個密鑰重新加密,這個過程根據需要可以重復多編。
7.按照權利要求5所說的分組密碼加密解密的方法,其特征在于應用邏輯尺控制加密或解密。
8.按照權利要求7所說的分組密碼加密解密的方法,其特征在于所說的邏輯尺是0、1序列,用0代表加密,1代表解密;或用1代表加密,0代表解密。
9.一種分組密碼加密解密器,其特征在于所述的分組密碼加密器包括明文輸入線,明文寄存器MR1、MR2、......明文寄存器MRj;密鑰Key1、Key2、......密鑰Keyj,密鑰寄存器R1、R2、......密鑰寄存器Rj,時鐘CLK,j分頻器,時序電路,明文寄存器MR2,延時電路,控制端R1、R2......Rj控制端,子密鑰電路,加密運算電路和密鑰運算電路構成;明文輸入線接明文寄存器MR1輸入端;密鑰Key1接密鑰寄存器R1輸入端、密鑰Key2接密鑰寄存器R2輸入端......密鑰Keyj接密鑰寄存器Rj輸入端;時鐘CLK接j分頻輸入端、同時接時序電路輸入端、同時接明文寄存器MR2輸入端、同時接延時電路輸入端;j分頻輸出端接明文寄存器MR1輸入端;時序電路輸出信號Q1接R1控制端和Rj控制端、時序控制信號Q2接R2控制端和R1控制端......;R1、R2......Rj的輸出端接子密鑰電路的輸入端;MR1的輸出端接MR2的輸入端;MR2的輸出端接加密運算電路的輸入端和密鑰運算電路的輸入端;子密鑰電路的輸出端接加密運算的輸入端和密鑰運算電路的輸入端;加密運算電路的輸出端接密文寄存器ER1的輸入端;ER1的輸出端接MR2的輸入端,同時輸出密文;密鑰運算電路的輸出端接R1、R2......Rj的輸入端。所述的分組密碼解密器包括密文輸入端,密文寄存器ERj、ERj-1、......、密文寄存器ER2、密文寄存器ER1;密鑰Keyj、密鑰Keyj-1、......密鑰Key1,密鑰寄存器Rj、Rj-1、......密鑰寄存器R1,時鐘CLK,j分頻器,時序電路,延時電路,控制端Rj、Rj-1、......R1控制端,子密鑰電路,加密運算電路和密鑰運算電路構成;密文輸入線接密文寄存器ER2輸入端;密鑰Keyj接密鑰寄存器Rj輸入端、密鑰Keyj-1接密鑰寄存器Rj-1輸入端......密鑰Key1接密鑰寄存器R1輸入端;時鐘CLK接j分頻輸入端、同時接時序電路輸入端、同時接密文寄存器ER3輸入端、同時接延時電路輸入端;j分頻輸出端接密文寄存器ER3輸入端;時序電路輸出信號Q1接Rj控制端和R1控制端、時序控制信號Q2接Rj-1控制端和Rj控制端......;R1、R2......Rj的輸出端接子密鑰電路的輸入端;ER2的輸出端接ER3的輸入端;ER3的輸出端接解密運算電路的輸入端和密鑰運算電路的輸入端;子密鑰電路的輸出端接解密運算電路的輸入端和密鑰運算電路的輸入端;解密運算的輸出端接明文寄存器MR3的輸入端;MR3的輸出端接ER3的輸入端,同時輸出明文;密鑰運算電路的輸出端接R1、R2......Rj的輸入端。
全文摘要
本發(fā)明涉及一種分組密碼加密解密的方法及其加密解密器。使用一個變動的Key,每個、或者每幾個分組使用一個不同的Key,這樣可以使用Key
文檔編號H04L9/06GK1697369SQ20051001380
公開日2005年11月16日 申請日期2005年6月14日 優(yōu)先權日2005年6月14日
發(fā)明者武優(yōu)西, 武金木, 洪流濤, 姚芳, 李艷, 劉依, 張邑博 申請人:河北工業(yè)大學