一種基于流密碼的丟位加密-補位解密的加解密方法
【專利摘要】本發(fā)明公開了一種基于流密碼的丟位加密-補位解密的加解密方法,在流密碼加密的過程中不需要專用的計算機硬件、專用的電子邏輯器件,更不需要邏輯電路的設(shè)計,不涉及混沌信號的反饋問題和反饋算法,完全通過軟件的方法程解決流密碼的加密和解密過程,降低明碼加密對外條件的依靠。本發(fā)明若要破解密文文件,必須知道算法程序、密文文件和秘鑰文件,而同時具備此三個文件比較幾乎不可能,且秘鑰的長度可以擴展至128字節(jié)至于更大,極大增加了破譯的難度。
【專利說明】—種基于流密碼的丟位加密-補位解密的加解密方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及密碼的加解密,特別是一種基于流密碼的丟位加密-補位解密的加解密方法。
【背景技術(shù)】
[0002]流密碼(Stream Cipher)也稱為序列密碼,它是對稱密碼算法的一種。序列密碼具有實現(xiàn)簡單、便于硬件實施、加解密處理速度快、沒有或只有有限的錯誤傳播等特點,因此在實際應(yīng)用中,特別是專用或機密機構(gòu)中保持著優(yōu)勢。
[0003]現(xiàn)有流密碼的研究狀態(tài),由于流密碼的分析和設(shè)計往往用于一個國家的軍事和外交通信。所以,流密碼的研發(fā)和設(shè)計基本上都是在保密的狀態(tài)下進行,各個國家研發(fā)流密碼的學者和專家為了保密幾乎沒有過多的這方面的公開的論著。各國都將流密碼技術(shù)和產(chǎn)品,作為軍工產(chǎn)品而限制出口。由于它具有許多其他密碼不可比擬的優(yōu)點,所以,它是當今最為通用的密碼系統(tǒng)之一。
[0004]現(xiàn)在的流密碼學的研究方向,都是以數(shù)學模型為基礎(chǔ),使用復(fù)雜的代數(shù)運算、布爾代數(shù)運算、偽隨機數(shù)、移位寄存器、線性反饋等。完成流密碼的加密和解密。在這方面比較成功的方法有A5方法,S盒方法,RC4方法,K2方法等。這些方法已經(jīng)是不公開的秘密,經(jīng)過多年的研究,對其加密和解密已經(jīng)具有了一定的成熟手段?,F(xiàn)在已有很多學者研究攻擊和破譯上述方法加密的密文。這就使得使用以上的方法進行加密的密文,其安全性受到極大的挑戰(zhàn)。
【發(fā)明內(nèi)容】
[0005]為解決上述問題,本發(fā)明的目的在于提供一種基于流密碼的丟位加密-補位解密的加解密方法,加強保密,`增加破譯難度。
[0006]本發(fā)明解決其問題所采用的技術(shù)方案是:
一種基于流密碼的丟位加密-補位解密的加解密方法,包括明碼集合M =Uvx1,…XbsJ和秘鑰集合P =…兄J,且兩個集合均為二進制集合,所述方法包括
加密步驟與解密步驟,其中,加密步驟包括:
取指針P指向秘鑰集合P的凡位,并向方向搜索,同時取指針q指向明碼集合M的
Zja-1位,并向sCi方向搜索,且規(guī)定指針q隨著指針P的位移而冋步位移;
當指針P搜索到“ I ”位時,將指針q所指向的位值保存,同時將指針q所指的位至位全部左移一位,并將保存的指針q所指向的位值填入串尾;
當指針P搜索至JV1位時,完成加密,并生成二進制密文集合C;
所述解密步驟包括:
取指針P指向秘鑰集合P的h位,并向}方向搜索,取指針q指向密文集合C的位,并向A方向搜索;
當指針P搜索到“ I ”位時,將指針q所指向的位值保存,指針q移動一位,同時將密文集合中與指針P相對應(yīng)的位置的位值至位全部右移一位,并將保存的指針q所指向的位值寫入至密文集合中與指針P相對應(yīng)的位置;
當指針P搜索至、位時,完成解密,并生成明碼集合M。
[0007]所述加密步驟還包括:
將生成的密文集合C迭代固定次數(shù)的加密步驟,生成對應(yīng)的密文集合。
[0008]所述解密步驟還包括:
將生成的明碼集合M迭代相同固定次數(shù)的解密步驟,生成對應(yīng)所需要的明碼集合。
[0009]對于明碼集合M和秘鑰集合P =Ον>ν..Λ-ι),其中,m大于等于η。
[0010]所述秘鑰集合P =Cu1,…:^1)為32字節(jié)、64字節(jié)、128字節(jié)、256字節(jié)。
[0011]其中,明碼集合M中的元素個數(shù)E滿足Emod8=0,秘鑰集合P中元素的個數(shù)F滿足Fmod8=0,密文集合C中元素的個數(shù)G滿足Gmod8=0。
[0012]一種基于流密碼的丟位加密-補位解密的加解密方法,包括明文文件、秘鑰文件和密文文件,所述方法包括加密步驟和解密步驟,所述加密步驟包括:
(O讀取明文文件中明文信息的字節(jié)數(shù)`M,同時讀取秘鑰文件中秘鑰信息的字節(jié)數(shù)N,且規(guī)定M大于N ;
(2)以字節(jié)N為單位讀取明文文件中的明文信息,并取指針P指向所讀取的明文信息的尾位置;
(3)讀取秘鑰文件中的秘鑰信息,并取指針q指向秘鑰信息的首位置;
(4)指針q按位移動,指針P隨著q的移動而冋步移動,當指針q搜索到“I”位時,將指針P所指向的位值保存,同時將指針P所指向的位值至尾位值全部左移一位,并將保存的指針P所指向的位值填入至尾位;
(5)重復(fù)步驟(4),直至指針q移動至密鑰信息的尾位置,將處理后的指針P所指向的明文信息寫入至密文文件中;
(6)重復(fù)步驟(2)至步驟(5),對讀取的下一個N字節(jié)的明文信息進行加密,直至明文文件中的明文信息全部被讀取,并生成對應(yīng)的密文文件;
所述解密步驟包括:
(11)讀取密文文件中密文信息的字節(jié)數(shù)K,同時讀取秘鑰文件中秘鑰信息的字節(jié)數(shù)N,且K大于N ;
(12)以字節(jié)N為單位讀取密文文件中的密文信息,并取指針P指向所讀取的密文信息的尾位置;
(13)讀取秘鑰文件中的秘鑰信息,并取指針q指向秘鑰信息的尾位置;
(14)指針q按位移動,當指針q搜索到“I ”位時,將指針P所指向的位值保存,指針P移動一位,之后將密文信息中與指針q相對應(yīng)位置的位值至尾位全部右移一位,并將所保存的指針P所指向的位值填入至密文信息中與指針q相對應(yīng)的位置;(15)重復(fù)步驟(14),直至指針q移動至密鑰信息的首位置,將處理后的指針p所指向的明文信息寫入至明文文件中;
(16)重復(fù)步驟(12)至步驟(15),對讀取的下一個N字節(jié)的密文信息進行解密,直至密文文件中的密文信息全部被讀取,并生成對應(yīng)的明文文件。
[0013]所述解密步驟還包括:
將步驟(6)所生成的密文文件迭代固定次數(shù)的加密步驟,生成對應(yīng)的密文文件。
[0014]所述解密步驟還包括:
將步驟(16)所生成的明文文件迭代相同固定次數(shù)的解密步驟,生成所需要的明文文 件。
[0015]所述明文文件、秘鑰文件和密文文件均為二進制文件。
[0016]本發(fā)明的有益效果是:
本發(fā)明采用一種基于流密碼的丟位加密-補位解密的加解密方法,在流密碼加密的過程中不需要專用的計算機硬件、專用的電子邏輯器件,更不需要邏輯電路的設(shè)計,不涉及混沌信號的反饋問題和反饋算法,完全通過軟件的方法程解決流密碼的加密和解密過程,降低明碼加密對外條件的依靠。本發(fā)明若要破解密文文件,必須知道算法程序、密文文件和秘鑰文件,而同時具備此三個文件比較幾乎不可能,且秘鑰的長度可以擴展至128字節(jié)至于更大,極大增加了破譯的難度。
【具體實施方式】
[0017]實施例1:
本發(fā)明提供了一種基于流密碼的丟位加密-補位解密的加解密方法,在密碼學領(lǐng)域,所有的加解密都相通的,加密時,通過加密算法,利用秘鑰對明文進行加密形成密文,解密時,通過解密算法,利用秘鑰對密文進行解密形成明文。本發(fā)明亦遵從相同的原理。
[0018]本發(fā)明在加密過程,對于明碼集合M = {J0,和秘鑰集合P =
{凡,乃,其中,兩個集合均為二進制集合,且明碼集合M中元素的個數(shù)不少于秘鑰集
合P中元素的個數(shù),即m大于或等于n,取指針p指向秘鑰集合P的I位,并向JVi方向搜
索,同時取指針q指向明碼集合M的位,并向方向搜索,且規(guī)定指針q隨著指針P的位移而同步位移;
當指針P搜索到“ I ”位時,將指針q所指向的位值保存,同時將指針q所指的位至Xi1位全部左移一位,并將保存的指針q所指向的位值填入尾部;
最后,當指針P搜索至JVi位時,完成加S,并生成~進制S文集合C = …2/_1),生成的密文集合C可以重復(fù)迭代,具體次數(shù)可以進行設(shè)定。
[0019]加密的過程在指針p搜索至“I”時,將指針q所指的位值丟棄,并將其位值移至尾部,是一個丟位加密的過程。
[0020]解密時,則需要將加密時生成的密文集合C =通過秘鑰和解密算法進行解密,此處,秘鑰是不變的,仍然是秘鑰集合p ,具體為:取指針P指向秘鑰集合P的乂.!位,并向?方向搜索,取指針q指向密文集合C的位,并向萬向搜索;
當指針P搜索到“ I ”位時,將指針q所指向的位值保存,且指針q移動一位,同時將密文集合中與指針P相對應(yīng)的位置的位值至位全部右移一位,并將保存的指針q所指向的位值寫入至密文集合中與指針P相對應(yīng)的位置;
當指針P搜索至\位時,完成解密,并生成明碼集合M,明碼集合M經(jīng)過相同次數(shù)的解密迭代運算,最終得到所需要的明碼集合。
[0021]解密時與加密正好相反,將原來依次丟棄的位重新補回,是一個補位解密的過程。
[0022]在解密時,秘鑰的長度與解密難度成正比,為此,秘鑰集合P可以為32字節(jié)、64字節(jié)、128字節(jié)、256字節(jié),也可以進行后續(xù)擴展。
[0023]不論是加密或者是解密,明碼、秘鑰、密文的長度都是有規(guī)定的,本發(fā)明中,其中,約定明碼集合M中的元素個數(shù)E滿足Emod8=0,秘鑰集合P中元素的個數(shù)F滿足Fmod8=0,密文集合C中元素的個數(shù)G滿足Gmod8=0。
[0024]本發(fā)明若要破譯,需要運算明文字節(jié)數(shù)(N) 8倍的二次冪,即28k ,基本上沒有破解的可能性。本發(fā)明通過軟件實現(xiàn),方法簡單,且極難破譯;加密方法不是傳統(tǒng)的一對一,一對多,而是無序加密;明文加密、發(fā)送、接收、解密實行三分離原則,使得保密系統(tǒng)更加安全。
[0025]本發(fā)明提供了文件式的加解密方法,在計算機或相關(guān)設(shè)備加解密時,通常以文件的形式保存明文、秘鑰和密文,本發(fā)明也可以實現(xiàn)。加密時,通常會提供明文文件和秘鑰文件,加密后生成密文文件,本發(fā)明中,三個文件皆為二進制文件。加密時,其步驟包括:
(1)讀取明文文件中明文信息的字節(jié)數(shù)M,同時讀取秘鑰文件中秘鑰信息的字節(jié)數(shù)N,且規(guī)定M大于N ;
(2)以字節(jié)N為單位讀取明文文件中的明文信息,并取指針P指向所讀取的明文信息的尾位置;
(3)讀取秘鑰文件中的秘鑰信息,并取指針q指向秘鑰信息的首位置;
(4)指針q按位移動,指針P隨著q的移動而冋步移動,當指針q搜索到“I”位時,將指針P所指向的位值保存,同時將指針P所指向的位值至尾位值全部左移一位,并將保存的指針P所指向的位值填入至尾位;
(5)重復(fù)步驟(4),直至指針q移動至密鑰信息的尾位置,將處理后的指針P所指向的明文信息寫入至密文文件中;
(6)重復(fù)步驟(2)至步驟(5),對讀取的下一個N字節(jié)的明文信息進行加密,直至明文文件中的明文信息全部被讀取,并生成對應(yīng)的密文文件,密文文件可以迭代固定次數(shù)的加密步驟,生成對應(yīng)的密文文件。
[0026]加密后需要解密,解密步驟包括:
(11)讀取密文文件中密文信息的字節(jié)數(shù)K,同時讀取秘鑰文件中秘鑰信息的字節(jié)數(shù)N,且K大于N ;
(12)以字節(jié)N為單位讀取密文文件中的密文信息,并取指針P指向所讀取的密文信息的尾位置;(13)讀取秘鑰文件中的秘鑰信息,并取指針q指向秘鑰信息的尾位置;
(14)指針q按位移動,當指針q搜索到“I ”位時,將指針P所指向的位值保存,指針P移動一位,之后將密文信息中與指針q相對應(yīng)位置的位值至尾位全部右移一位,并將所保存的指針P所指向的位值填入至密文信息中與指針q相對應(yīng)的位置;
(15)重復(fù)步驟(14),直至指針q移動至密鑰信息的首位置,將處理后的指針p所指向的明文信息寫入至明文文件中;
(16)重復(fù)步驟(12)至步驟(15),對讀取的下一個N字節(jié)的密文信息進行解密,直至密文文件中的密文信息全部被讀取,并生成對應(yīng)的明文文件,將生成的此文件迭代與加密時相同次數(shù)的解密步驟,生成所需要的明文文件。
[0027]其中,明文文件中的字節(jié)數(shù)M、秘鑰文件中的字節(jié)數(shù)N及密文文件中的字節(jié)數(shù)K均為整數(shù),且M與K均大于N,這樣就保證了在以N為單位進行加密或解密時,保證運算的可靠性。
[0028]本發(fā)明在具體應(yīng)用時,其中涉及到的位移運算,如加密時向左移動,解密時向右移動,只是一種簡單的運算而已,但完全滿足應(yīng)用,對于使用類似手段的技術(shù)均在本發(fā)明的保護范圍之內(nèi);對于以文件形式進行加解密的類似手段,亦在本發(fā)明的保護范圍。
[0029]實施例2:
本實施例以加解密時的數(shù)據(jù)為例進行說明,簡單起見,進行如下設(shè)置:
明碼集合 M = (?, X1,…Am) = (0100 0010) 2 ;
秘鑰集合 P =(7。J1= (0100 0001)
加密時,秘鑰集合P從左至右進行搜索,明碼集合M則從右至左搜索,加密后,生成密文集合 C =(?,?...~_!:} = (1000 0010) 2。
[0030]解密時,對于:
秘鑰集合 P =Ou1八-1) = (0100 0001)
密文集合 C =(2。而'…= (1000 0010) 2 ;
秘鑰集合P從右至左搜索,密文集合也從右至左搜索,得到明碼集合M =
(X0jX1,--= (0100 0010) 2。
[0031]在具體執(zhí)行時,亦可以將對應(yīng)的集合寫入對應(yīng)的文件之中,以文件的形式進行加
密解密。
[0032]以上所述,只是本發(fā)明的較佳實施例而已,本發(fā)明并不局限于上述實施方式,只要其以相同的手段達到本發(fā)明的技術(shù)效果,都應(yīng)屬于本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種基于流密碼的丟位加密-補位解密的加解密方法,其特征在于,包括明碼集合M= (?,Xy X88J'和秘鑰集合P ={凡,乃,…八J,且兩個集合均為二進制集合,所述方法包括加密步驟與解密步驟,其中,加密步驟包括: 取指針P指向秘鑰集合P的 > 位,并向JV1方向搜索,同時取指針q指向明碼集合M的&-1位,并向.?方向搜索,且規(guī)足指針q隨著指針P的位移而同步位移; 當指針P搜索到“ I ”位時,將指針q所指向的位值保存,同時將指針q所指的位至U位全部左移一位,并將保存的指針q所指向的位值寫入尾部; 當指針P搜索至九-1位時,完成加密,并生成二進制密文集合C =2f-1); 所述解密步驟包括: 取指針P指向秘鑰集合?的7?-1位,并向I方向搜索,取指針q指向密文集合C的Zp1位,并內(nèi),萬向搜索; 當指針P搜索到“ I ”位時,將指針q所指向的位值保存,指針q移動一位,同時將密文集合中與指針P相對應(yīng)的位置的位值至位全部右移一位,并將保存的指針q所指向的位值寫入至密文集合中與指針P相對應(yīng)的位置; 當指針P搜索至I位時,完成解密,并生成明碼集合M。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述加密步驟還包括: 將生成的密文集合C迭代固定次數(shù)的加密步驟,生成對應(yīng)的密文集合。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述解密步驟還包括: 將生成的明碼集合M迭代相同固定次數(shù)的解密步驟,生成對應(yīng)所需要的明碼集合。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,對于明碼集合和秘鑰集合P =,其中,m大于等于n。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述秘鑰集合P=為32字節(jié)、64字節(jié)、128字節(jié)、256字節(jié)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,其中,明碼集合M中的元素個數(shù)E滿足Emod8=0,秘鑰集合P中元素的個數(shù)F滿足Fmod8=0,密文集合C中元素的個數(shù)G滿足Gmod8=0。
7.一種基于流密碼的丟位加密-補位解密的加解密方法,其特征在于,包括明文文件、秘鑰文件和密文文件,所述方法包括加密步驟和解密步驟,所述加密步驟包括: (1)讀取明文文件中明文信息的字節(jié)數(shù)M,同時讀取秘鑰文件中秘鑰信息的字節(jié)數(shù)N,且規(guī)定M大于N ; (2)以字節(jié)N為單位讀取明文文件中的明文信息,并取指針p指向所讀取的明文信息的尾位置; (3)讀取秘鑰文件中的秘鑰信息,并取指針q指向秘鑰信息的首位置; (4)指針q按位移動,指針p隨著q的移動而冋步移動,當指針q搜索到“I”位時,將指針P所指向的位值保存,同時將指針P所指向的位值至尾位值全部左移一位,并將保存的指針P所指向的位值填入至尾位; (5)重復(fù)步驟(4),直至指針q移動至密鑰信息的尾位置,將處理后的指針P所指向的明文信息寫入至密文文件中; (6)重復(fù)步驟(2)至步驟(5),對讀取的下一個N字節(jié)的明文信息進行加密,直至明文文件中的明文信息全部被讀取,并生成對應(yīng)的密文文件; 所述解密步驟包括: (11)讀取密文文件中密文信息的字節(jié)數(shù)K,同時讀取秘鑰文件中秘鑰信息的字節(jié)數(shù)N,且K大于N ; (12)以字節(jié)N為單位讀取密文文件中的密文信息,并取指針P指向所讀取的密文信息的尾位置; (13)讀取秘鑰文件中的秘鑰信息,并取指針q指向秘鑰信息的尾位置; (14)指針q按位移動,當指針q搜索到“I ”位時,將指針P所指向的位值保存,指針P移動一位,之后將密文信息中與指針q相對應(yīng)位置的位值至尾位全部右移一位,并將所保存的指針P所指向的位值填入至密文信息中與指針q相對應(yīng)的位置; (15)重復(fù)步驟(14),直至指針q移動至密鑰信息的首位置,將處理后的指針P所指向的明文信息寫入至明文文件中; (16)重復(fù)步驟(12)至步驟(15),對讀取的下一個N字節(jié)的密文信息進行解密,直至密文文件中的密文信息全部被讀取,并生成對應(yīng)的明文文件。
8.根據(jù)權(quán)利要求6所述的方法`,其特征在于,所述解密步驟還包括: 將步驟(6)所生成的密文文件迭代固定次數(shù)的加密步驟,生成對應(yīng)的密文文件。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述解密步驟還包括: 將步驟(16)所生成的明文文件迭代相同固定次數(shù)的解密步驟,生成所需要的明文文件。
10.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述明文文件、秘鑰文件和密文文件均為二進制文件。
【文檔編號】H04L9/00GK103595524SQ201310494077
【公開日】2014年2月19日 申請日期:2013年10月21日 優(yōu)先權(quán)日:2013年10月21日
【發(fā)明者】司玉娟, 郎六琪 申請人:吉林大學