專利名稱:一種對稱密碼體制的加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息加密技術(shù)領(lǐng)域,屬對稱密碼體制。
背景技術(shù):
目前實際應(yīng)用中的密碼體制種類繁多,按現(xiàn)代密碼學(xué)的觀點,將密碼體制分為兩大類,對稱密碼體制和非對稱密碼體制,序列密碼也稱流密碼,它是對稱密碼算法的一種。最早出現(xiàn)的類流密碼是Vernam密碼,直到1949年信息論創(chuàng)始人Shannon發(fā)表的兩篇劃時代的論文證明了只有“一次一密”才是理論上不可破譯的,絕對安全的,由此奠定了序列密碼技術(shù)的發(fā)展基石??梢哉f“一次一密”的密碼方案是序列密碼的雛形。由于“一次一密”的密碼體制存在密鑰產(chǎn)生、分配和管理極為困難的缺點使其應(yīng)用范圍受到限制。但在保密強度高的場合,如軍事密碼系統(tǒng)、政治、外交密碼系統(tǒng)仍采用序列密碼方案。鑒于序列密碼在軍事、政治、外交保密通訊中有重要價值,序列密碼的設(shè)計基本上都是保密的。因此國內(nèi) 外公開的序列密碼文獻(xiàn)不多,國際上先后幾次征集序列密碼算法,建立序列密碼工程。但至今沒有一個完整的商業(yè)序列密碼標(biāo)準(zhǔn)。
發(fā)明內(nèi)容
本發(fā)明就是針對序列密碼的現(xiàn)狀,提出了算法集合、時間攪拌器、缺位運算、變長密鑰、圖標(biāo)密鑰、單位密鑰等全新密碼設(shè)計理念,設(shè)計并制作實現(xiàn)了一種能產(chǎn)生千萬年不重復(fù)的序列密碼。實現(xiàn)了 “一次一密“的加密效果。本發(fā)明是一種對稱密碼體制的加密方法,主要用于信息通訊、計算機文件、賬戶信息、身份驗證等方面,在本發(fā)明核心思想的指導(dǎo)下,在對明文字節(jié)的處理方式上稍作改變,即可演變?yōu)橥叫蛄忻艽a、自同步序列密碼、分組密碼三種不同的加密方式。
圖I是隨機數(shù)產(chǎn)生的示意圖。圖2是隨機組合運算的示意圖。圖3是隨機運算的示意圖。圖4是隨機換位運算的示意圖。圖5是隨機序列密碼產(chǎn)生的示意圖。
具體實施例方式I、本序列密碼設(shè)計方案是針對國家機關(guān)、企事業(yè)單位、個人等不同單位,不同需求設(shè)計的。主模塊、主功能一樣,輔助模塊、輔助功能由各單位自行選擇。2、產(chǎn)生圖標(biāo)密鑰①選取一百個不同的、大家喜聞樂見的圖案,如十二生肖、喜洋洋等,橫豎各十個排列,每個圖案對應(yīng)一種密鑰處理計算公式。
②設(shè)置一萬頁,每頁對應(yīng)一種密鑰處理計算公式。這樣個人客戶選擇頁數(shù)和圖案就是在一百萬種不同的密鑰處理算法中選擇了其中一種。3、處理輸入的種子密鑰Z[]:對于輸入的種子密鑰首先取其長度,長度小于規(guī)定數(shù)值時,將種子密鑰數(shù)據(jù)Z[]、單位密鑰數(shù)據(jù)D[]帶入算法集合{},返回值填充到種子密鑰數(shù)組中,直至長度等于規(guī)定數(shù)值;長度大于規(guī)定數(shù)值時,改變所有算法相關(guān)種子密鑰的入口參數(shù)為種子密鑰的實際長度。以上涉及的單位密鑰D[]是加密軟件自帶的由使用單位自行統(tǒng)一產(chǎn)生數(shù)據(jù)環(huán)境。以上涉及的算法集合{+、_、X、+、 、Λ、%,m、n、l、h,S口、Z口、D口、E[]}(為了畫表方便以下用H表示)是加密軟件內(nèi)設(shè)的通過排列組合組成一百萬種不同的計算公式的算法集合(其中m、η、I、h為常量S口、Z口、D口、E[]為變量)。主要用途是每次調(diào)用算法集合時,按帶入的參數(shù)決定采用哪一種計算公式,調(diào)用結(jié)束后返回三個數(shù)值,并改變二級密鑰數(shù)組E [] I至3位數(shù)組元素數(shù)據(jù)。再具體點講,是將每一百個計算公式組成一個組, 共組成三個組,將上一輪的返回值經(jīng)變換計算帶入第一組,第一組的返回值帶入第二組,第二組的返回值帶入第三組,同時調(diào)用過程中還有循環(huán)調(diào)用。這樣就組成了至少一百萬種不同的計算公式的算法集合。再考慮到每次帶入?yún)⒓佑嬎愕膮?shù)不一樣,可以說序列密碼的每一個字節(jié)的生成所使用的計算公式及參數(shù)是不同的(計算公式、帶入計算的參數(shù)兩次兩者都完全一樣的概率非常小)。另外組成算法集合的計算公式及相關(guān)常數(shù)設(shè)置綜合考慮了各種因素,采用了“缺位運算”、“素數(shù)擴(kuò)散運算”、“除商擴(kuò)倍運算”、“條件運算”等一些非常規(guī)的計算方法,如“缺位運算”是截取某一數(shù)據(jù)的某一位或某幾位的非常規(guī)運算。如123456,如缺百位運算是12356,如缺百位、萬位運算是1356。從而增強了計算結(jié)果的隨機性、擴(kuò)散性。4、生成時間攪拌器、密鑰提示信息等數(shù)據(jù)提取系統(tǒng)時間年、月、日、時、分、秒分別放入時間攪拌器數(shù)組S []的2至7位,提取時間計數(shù)器(加密軟件內(nèi)設(shè))3個數(shù)據(jù),第I個數(shù)據(jù)放在S[]的第I位,用于對年份的補充,防范類似千年蟲問題,第2個數(shù)據(jù)放在S[]的第8位,第3個數(shù)據(jù)放在S[]的第9位,將秒細(xì)化到四十億分之一,第10位作為校驗位及密鑰位,一是對前九個數(shù)據(jù)進(jìn)行校驗,二是特殊情況作為參數(shù)的一部分調(diào)用算法集合對前面數(shù)據(jù)進(jìn)行轉(zhuǎn)換封存;這樣I至10位數(shù)據(jù)就組成一個千萬年每時每刻永不重復(fù)的數(shù)據(jù),極大地增強了時間攪拌器的攪拌效果;11至30位存放明文相關(guān)信息,密鑰提示信息,對于個人客戶當(dāng)密文存放時間久了,忘記了密鑰、明文類型時,明文相關(guān)信息,密鑰提示信息可以幫助恢復(fù)記憶;對于信息通訊類客戶,可以建立種子密鑰群,按密鑰提示信息選擇種子密鑰;31、32位作為校驗位及密鑰位,11至30位的空余位由加密系統(tǒng)自動填滿。并將生成的時間攪拌器S[]數(shù)據(jù)寫入密文文件前部(各部分?jǐn)?shù)據(jù)存放位置及存放方式可根據(jù)客戶要求更改)。5、生成隨機數(shù)將時間攪拌器S[6]、種子密鑰Z[6]、單位密鑰D[6]作為參數(shù)調(diào)用運算集合H經(jīng)兩輪運算生成三個隨機數(shù)。如圖I所示,其中x、y、z、xl、yl、zl為運算集合返回的數(shù)值。6、生成1024位二級密鑰數(shù)組E []:通過組合,隨機,換位三輪隨機運算生成二級密鑰數(shù)組。(I)組合運算由以上生成的三個隨機數(shù)為數(shù)組下標(biāo),將所對應(yīng)的時間攪拌器、種子密鑰、單位密鑰的數(shù)組值作為參數(shù)調(diào)用運算集合{},以返回值xl、yl、zl為下標(biāo)隨機組合運算產(chǎn)生一長整數(shù);以此類推生成1024位二級密鑰數(shù)組E[]。如圖2所示,其中X、y、z為程序生成的隨機數(shù),xl、yl、zl、xn、yn、zn為運算集合返回的數(shù)值。(2)隨機運算由上述運算過程中產(chǎn)生的數(shù)據(jù)為起始數(shù)組下標(biāo),對應(yīng)的時間攪拌器、種子密鑰、單位密鑰,二級密鑰的數(shù)組數(shù)值通過調(diào)用算法集合對二級密鑰每一數(shù)據(jù)進(jìn)行再運算。二級密鑰的每一位數(shù)值均是采用不同的算式及不同的參數(shù)運算生成。如圖3所示,其中X、y、z為上一輪運算過程中產(chǎn)生的數(shù)據(jù),xl、yl、zl、xn、yn、zn為運算集合返回的數(shù)值。(3)換位運算以上述運算過程中產(chǎn)生的數(shù)據(jù)為數(shù)組下標(biāo),對應(yīng)的時間攪拌器、種子密鑰、二級密鑰的數(shù)組數(shù)值調(diào)用算法集合,將產(chǎn)生的返回值作為二級密鑰數(shù)組下標(biāo)對對應(yīng)的二級密鑰數(shù)組數(shù)據(jù)進(jìn)行大換位。如圖4所示,其中X、y、z為上一輪運算生成的數(shù)據(jù),xl、yl、zl、xi、yi、zi、xn、yn、zn為運算集合返回的數(shù)值。7、生成隨機數(shù)以上述運算過程中產(chǎn)生的數(shù)據(jù)作為參數(shù)調(diào)用算法集合經(jīng)三輪運算 后生成隨機密鑰序列的入口參數(shù)。8、生成與明文字節(jié)一樣長的隨機密鑰序列(I)由以上生成的三個隨機密鑰序列的入口參數(shù)(X,y, z)為數(shù)組下標(biāo),對應(yīng)的數(shù)組值(E[x],E[y],E[z])作為參數(shù)調(diào)用算法集合。由數(shù)組值大小決定選擇百萬種計算公式集合中的哪一種計算公式進(jìn)行運算;(2)運算過程中,綜合應(yīng)用了缺位運算、條件運算、質(zhì)數(shù)擴(kuò)散運算、除商擴(kuò)倍運算等計算方法,帶入的參數(shù)一律為上次集合運算返回值為下標(biāo)對應(yīng)的二級密鑰E □、時間攪拌器S□、種子密鑰Z[]的數(shù)組值,保證了每次運算和上一次運算是相對獨立的,具有隨機性和擴(kuò)散性;(3)運算過程中將本次參余運算的二級密鑰數(shù)組E □的I位或3位數(shù)組元素重新賦值,即每調(diào)用集合算法一次,也就是每加密一個字節(jié),二級密鑰數(shù)組元素就改變一次;(4)每次算法集合調(diào)用返回xl、yl、zl三個數(shù)值;a返回的數(shù)值xl作用有三一是決定加密強度i (i = qdl+xl% qd2 ;i由xl決定,范圍為qdl < i < qd2),具體說就是決定加密i個字節(jié)后對運行環(huán)境(包括二級密鑰和入口參數(shù))進(jìn)行改變;二是xl經(jīng)過類型變換(char km I = xl % 256)與明文一個字節(jié)異或;三是xl對應(yīng)的數(shù)組值E[xl]作為參數(shù)參與下次集合運算。b返回的數(shù)值yl作用有三一是在加密強度改變時決定選擇運算集合中的哪一種計算公式進(jìn)行運算來改變?nèi)肟趨?shù)或二級密鑰全部數(shù)值;二是yl經(jīng)過類型變換(char knl=yl% 256)對明文一個字節(jié)進(jìn)行轉(zhuǎn)換;三是yl對應(yīng)的數(shù)組值E[yl]作為參數(shù)參與下次集
合運算。c返回的數(shù)組元素值zl作用有三一是由zl對應(yīng)的數(shù)組值E[zl]具體決定選擇運算集合中的哪一種計算公式進(jìn)行下一輪運算;二是zl對應(yīng)的數(shù)組值E[zl]作為參數(shù)參與下次集合運算。(5)重復(fù)(I)——(4)步驟,直到生成與明文字節(jié)一樣長的序列密鑰字節(jié)。如圖5所示,其中χ、I、Z是隨機密鑰序列的入口參數(shù);xl、yl、zl, xi、yi、zi, xs、ys、zs, xj、yj、z j,xh、yh、zh都是算法集合運算返回值;i、j是運算過程中產(chǎn)生的加密強度;S []、Z []、D []是算法集合運算過程中隨機地調(diào)用該數(shù)組的某一值參加集合運算;km、kn, kml、knl, kml、knl, kmh、knh是生成的隨機密鑰序列。9、以上第8點第(4)小點算法集合調(diào)用返回xl或yl,在加密每一個明文字節(jié)時用明文的前一個字節(jié)代替或異或,那么該算法就變成了自同步序列密碼算法。10、以上算法執(zhí)行到第8點第(4)小點時,a、讀取一組明文數(shù)據(jù)(長度為Cd個字節(jié)),并放入fz[]數(shù)組中,以算法集合返回的xl、yl、zl經(jīng)取余處理對應(yīng)的fz []的前半部分的數(shù)組值(fx[xl% (int cd/2) ], fx[yl%(int cd/2)], fx[zl% (cd/2)])為參數(shù)調(diào)用算法集合;b、調(diào)用算法集合返回x2、y2、z2,以x2決定采用分組加密方式集合(用x2與明文一字節(jié)異或、用12與明文一字節(jié)異或、用z2與明文一字節(jié)異或、用x2對明文的一字節(jié)進(jìn)行 轉(zhuǎn)換、用12對明文的一字節(jié)進(jìn)行轉(zhuǎn)換、用z2對明文的一字節(jié)進(jìn)行轉(zhuǎn)換、用x2(y2、z2)與明文一字節(jié)異或后再用y2(x2、z2)進(jìn)行轉(zhuǎn)換、用x2(y2、z2)與明文一字節(jié)轉(zhuǎn)換后再用y2(x2、z2)進(jìn)行異或,以這些加密具體方法為元素在cd/2范圍內(nèi)進(jìn)行排列,組成一個分組加密方式集合)中的哪一種加密方式對fz[]的后半部分?jǐn)?shù)據(jù)逐位進(jìn)行加密;C、以x2、y2、z2經(jīng)取余處理對應(yīng)的fz []的后半部分的數(shù)組值為參數(shù)調(diào)用算法集合,返回三個數(shù)值x3、y3、z3,以x3決定采用分組加密方式集合中的哪一種加密方式對fz []的前半部分?jǐn)?shù)據(jù)進(jìn)行加密;d、用二級密鑰的一部分?jǐn)?shù)據(jù)對fz []數(shù)組元素進(jìn)行異或封存; e、重復(fù)a——d步驟,直到明文信息不足一組字節(jié)cd的長度,然后,填充數(shù)據(jù)至cd的長度,并對這一組數(shù)據(jù)進(jìn)行加密;或者用自同步序列密碼加密方法對剩余明文字節(jié)進(jìn)行加密;這樣該算法就變成了另一種算法即分組密碼算法;并且分組的長度Cd是可變的,是可以根據(jù)客戶需求,按客戶數(shù)據(jù)結(jié)構(gòu)情況進(jìn)行分組加密;同時分組加密過程中由于明文數(shù)據(jù)的攪拌作用,時間攪拌器可視情況取舍。11、算法設(shè)計制作過程中,充分考慮了各種客戶的多方面不同需求,充分考慮了計算機技術(shù)發(fā)展進(jìn)步后的升級問題,充分考慮了各種不同計算機整數(shù)、長整數(shù)占用字節(jié)位數(shù)不一樣的實際情況,對種子密鑰、時間攪拌器、單位密鑰、二級密鑰等數(shù)組長度,計算過程中使用的常數(shù)、加密強度等都進(jìn)行了宏定義,涉及字節(jié)數(shù)的地方使用了 SizeofO函數(shù),從而能在幾分鐘內(nèi)很方便根據(jù)客戶需求進(jìn)行修改。對于圖案、頁次的長度,算法集合中的計算公式的數(shù)量,時間攪拌器的存放方式,加密時異或、置換的先后順序也可根據(jù)客戶需求較方便地進(jìn)行修改。這樣就是使該算法能適應(yīng)國家機關(guān)、企事業(yè)單位、個人等多層次客戶的多方面需求,同時還能保證客戶系統(tǒng)之間加密算法的獨立性。
權(quán)利要求
1.本發(fā)明是ー種對稱密碼體制的加密方法,主要用于信息通訊、計算機文件、賬戶信息、身份驗證等方面,設(shè)計、制作中提出了算法集合、缺位運算、變長密鑰、時間攪拌器、圖標(biāo)密鑰、単位密鑰等全新的密碼設(shè)計理念。在本發(fā)明核心思想的指導(dǎo)下,在對明文字節(jié)的處理方式上稍作改變,即可演變?yōu)橥叫蛄忻艽a、自同步序列密碼、分組密碼三種不同的加密方式。
2.算法集合{+、_、X、+、 、八、%,m、n、l、h,S[]、Z[]、D[]、E[]}:是指加密軟件內(nèi)設(shè)的通過排列組合組成一百萬種不同的計算公式的算法集合(其中m、n、l、h為常量,S口、Z口、D口、E[]為變量);主要用途是每次調(diào)用算法集合時,按帶入的參數(shù)決定采用哪ー種計算公式,調(diào)用結(jié)束后返回三個數(shù)值,并改變ニ級密鑰數(shù)組E[] I至3位數(shù)組元素數(shù)據(jù);再具體點講,是將每ー百個計算公式組成ー個組,共組成三個組,將上ー輪的返回值經(jīng)變換計算帶入第一組,第一組的返回值帶入第二組,第二組的返回值帶入第三組,同時調(diào)用過程中還有循環(huán)調(diào)用,這樣就組成了至少ー百萬種不同的計算公式的算法集合,再考慮到每次帶入?yún)⒓佑嬎愕膮?shù)不一樣,可以說序列密碼的每ー個字節(jié)的生成所使用的計算公式及參數(shù)是不同的。
3.缺位運算是指截取某一數(shù)據(jù)的某一位或某幾位的非常規(guī)運算;如123456,缺百位的運算結(jié)果是12356,缺百位、萬位的運算結(jié)果是1356 ;增強了算法集合計算結(jié)果的隨機性、擴(kuò)散性。
4.變長密鑰是指加密軟件對有關(guān)參數(shù)及種子密鑰特殊處理后使加密所用的種子密鑰無位數(shù)限制,可隨用戶加密強度或計算機技術(shù)的發(fā)展由用戶自行選定密鑰長度。
5.時間攪拌器是指提取系統(tǒng)時間年、月、日、時、分、秒分別放入時間攪拌器數(shù)組S[]的2至7位,提取時間計數(shù)器(加密軟件內(nèi)設(shè))3個數(shù)據(jù),第I個數(shù)據(jù)放在S[]的第I位,用于對年份的補充,防范類似千年蟲問題,第2個數(shù)據(jù)放在S[]的第8位,第3個數(shù)據(jù)放在SG的第9位,將秒細(xì)化到四十億分之一,第10位作為校驗位及密鑰位,一是對前九個數(shù)據(jù)進(jìn)行校驗,ニ是特殊情況作為參數(shù)的一部分調(diào)用算法集合對前面數(shù)據(jù)進(jìn)行轉(zhuǎn)換封存;這樣I至10位數(shù)據(jù)就組成ー個千萬年每時每刻永不重復(fù)的數(shù)據(jù),極大地增強了時間攪拌器的攪拌效果;11至30位存放明文相關(guān)信息,密鑰提示信息,對于個人客戶當(dāng)密文存放時間久了,忘記了密鑰、明文類型吋,明文相關(guān)信息,密鑰提示信息可以幫助恢復(fù)記憶;對于信息通訊類客戶,可以建立種子密鑰群,按密鑰提示信息選擇種子密鑰;31、32位作為校驗位及密鑰位,11至30位的空余位由加密系統(tǒng)自動填滿,并將生成的時間攪拌器S[]數(shù)據(jù)寫入密文文件前部(各部分?jǐn)?shù)據(jù)存放位置及存放方式可根據(jù)客戶要求更改)。
6.圖標(biāo)密鑰是針對個人客戶種子密鑰簡單、長度短的特點設(shè)計的,圖標(biāo)密鑰的產(chǎn)生是選取ー百個不同的、大家喜聞樂見的圖案,如十二生肖、喜洋洋等,橫豎各十個排列,每個圖案對應(yīng)ー種密鑰處理計算公式;同時設(shè)置一萬頁,每頁對應(yīng)ー種密鑰處理計算公式;這樣個人客戶選擇頁數(shù)和圖案就是在ー百萬種不同的密鑰處理算法中選擇了其中ー種。
7.単位密鑰是加密軟件自帶的由使用單位自行統(tǒng)ー產(chǎn)生的數(shù)據(jù)環(huán)境,保證了客戶系統(tǒng)之間加密算法的獨立性。
8.序列密碼產(chǎn)生的主要流程 (I)、生成隨機數(shù)將時間攪拌器S[6]、種子密鑰Z[6]、単位密鑰D[6]作為參數(shù)調(diào)用運算集合{}經(jīng)兩輪運算生成三個隨機數(shù);(2)、生成1024位ニ級密鑰數(shù)組E[]:通過組合,隨機,換位三輪隨機運算生成ニ級密鑰數(shù)組; ①組合運算由以上生成的三個隨機數(shù)為數(shù)組下標(biāo),將所對應(yīng)的時間攪拌器、種子密鑰、単位密鑰的數(shù)組值作為參數(shù)調(diào)用運算集合H,以返回值xl、yl、zl為下標(biāo)隨機組合運算產(chǎn)生ー長整數(shù);以此類推生成1024位ニ級密鑰數(shù)組E []; ②隨機運算由上述運算過程中產(chǎn)生的數(shù)據(jù)為起始數(shù)組下標(biāo),對應(yīng)的時間攪拌器、種子密鑰、単位密鑰,ニ級密鑰的數(shù)組數(shù)值通過調(diào)用算法集合對ニ級密鑰每一數(shù)據(jù)進(jìn)行再運算;ニ級密鑰的每一位數(shù)值均是采用不同的算式及不同的參數(shù)運算生成; ③換位運算以上述運算過程中產(chǎn)生的數(shù)據(jù)為數(shù)組下標(biāo),對應(yīng)的時間攪拌器、種子密鑰、ニ級密鑰的數(shù)組數(shù)值調(diào)用算法集合,將產(chǎn)生的返回值作為ニ級密鑰數(shù)組下標(biāo)對對應(yīng)的ニ級密鑰數(shù)組數(shù)據(jù)進(jìn)行大換位; (3)、生成隨機數(shù)以上述運算過程中產(chǎn)生的數(shù)據(jù)作為參數(shù)調(diào)用算法集合經(jīng)三輪運算后生成隨機密鑰序列的入口參數(shù); (4)生成與明文字節(jié)ー樣長的隨機密鑰序列 ①由以上生成的三個隨機密鑰序列的入口參數(shù)(X,y,z)為數(shù)組下標(biāo),對應(yīng)的數(shù)組值(E[x],E[y],E[z])作為參數(shù)調(diào)用算法集合,由數(shù)組值大小決定選擇百萬種計算公式集合中的哪ー種計算公式進(jìn)行運算; ②運算過程中,綜合應(yīng)用了缺位運算、條件運算、質(zhì)數(shù)擴(kuò)散運算、除商擴(kuò)倍運算等計算方法,帶入的參數(shù)一律為上次集合運算返回值為下標(biāo)對應(yīng)的ニ級密鑰E□、時間攪拌器S□、種子密鑰Z[]的數(shù)組值,保證了每次運算和上一次運算是相對獨立的,具有隨機性和擴(kuò)散性; ③運算過程中將本次參余運算的ニ級密鑰數(shù)組E[]的I位或3位數(shù)組元素重新賦值,即每調(diào)用集合算法一次,也就是每加密ー個字節(jié),ニ級密鑰數(shù)組元素就改變一次; ④每次算法集合調(diào)用返回xl、yl、zl三個數(shù)值; a返回的數(shù)值xl作用有三一是決定加密強度i(i = qdl+xl% qd2 ;i由xl決定,范圍為qdl < i < qd2),具體說就是決定加密i個字節(jié)后對運行環(huán)境(包括ニ級密鑰和入口參數(shù))進(jìn)行改變;ニ是xl經(jīng)過類型變換(char km I = xl% 256)與明文ー個字節(jié)異或;三是xl對應(yīng)的數(shù)組值E[xl]作為參數(shù)參與下次集合運算; b返回的數(shù)值yl作用有三一是在加密強度改變時決定選擇運算集合中的哪ー種計算公式進(jìn)行運算來改變?nèi)肟趨?shù)或ニ級密鑰全部數(shù)值;ニ是yl經(jīng)過類型變換(char knl =yl% 256)對明文ー個字節(jié)進(jìn)行置換;三是yl對應(yīng)的數(shù)組值E[yl]作為參數(shù)參與下次集合運算; c返回的數(shù)組元素值zl作用有三ー是由zl對應(yīng)的數(shù)組值E[zl]具體決定選擇運算集合中的哪ー種計算公式進(jìn)行下ー輪運算;ニ是zl對應(yīng)的數(shù)組值E[zl]作為參數(shù)參與下次集合運算; ⑤重復(fù)(I)——(4)步驟,直到生成與明文字節(jié)ー樣長的序列密鑰字節(jié)。
9.以上第8條第(4)點第④小點算法集合調(diào)用返回的xl或yl,在加密每ー個明文字節(jié)時用明文的前一個字節(jié)代替或異或,那么該算法就變成了自同步序列密碼算法。
10.以上算法執(zhí)行到第8條第(4)點第④小點吋,a、讀取ー組明文數(shù)據(jù)(長度為Cd個字節(jié)),并放入fz[]數(shù)組中,以算法集合返回的xl、yl、zl經(jīng)取余處理對應(yīng)的fz 口的前半部分的數(shù)組值(fz[xl% (int cd/2)], fz[yl% (intcd/2)],fz[zl% (cd/2)])為參數(shù)調(diào)用算法集合; b、調(diào)用算法集合返回x2、y2、z2,以x2決定采用分組加密方式集合(用x2與明文一字節(jié)異或、用12與明文一字節(jié)異或、用z2與明文一字節(jié)異或、用x2對明文的一字節(jié)進(jìn)行轉(zhuǎn)換、用y2對明文的一字節(jié)進(jìn)行轉(zhuǎn)換、用z2對明文的一字節(jié)進(jìn)行轉(zhuǎn)換、用x2(y2、z2)與明文一字節(jié)異或后再用y2 (x2、z2)進(jìn)行轉(zhuǎn)換、用x2 (y2、z2)與明文一字節(jié)轉(zhuǎn)換后再用y2 (x2、z2)進(jìn)行異或,以這些加密具體方法為元素在cd/2范圍內(nèi)進(jìn)行排列,組成ー個分組加密方式集合)中的哪ー種加密方式對fz[]的后半部分?jǐn)?shù)據(jù)逐位進(jìn)行加密; C、以x2、y2、z2經(jīng)取余處理對應(yīng)的fz []的后半部分的數(shù)組值為參數(shù)調(diào)用算法集合,返回三個數(shù)值x3、y3、z3,以x3決定采用分組加密方式集合中的哪ー種加密方式對fz []的前半部分?jǐn)?shù)據(jù)進(jìn)行加密;經(jīng)13、c步驟,該組明文的每ー個字節(jié)的加密方式都是隨機的; d、用ニ級密鑰的一部分?jǐn)?shù)據(jù)對fz[]數(shù)組元素進(jìn)行異或封存; e、重復(fù)a——d步驟,直到明文信息不足一組字節(jié)Cd的長度,然后,填充數(shù)據(jù)至Cd的長度,并對這ー組數(shù)據(jù)進(jìn)行加密;或者用自同步序列密碼加密方法對剩余明文字節(jié)進(jìn)行加密; 這樣該算法就變成了另ー種算法即分組密碼算法; 并且分組的長度Cd是可變的,是可以根據(jù)客戶需求,按客戶數(shù)據(jù)結(jié)構(gòu)情況進(jìn)行分組加密;同時分組加密過程中由于明文數(shù)據(jù)的攪拌作用,時間攪拌器可視情況取舎。
全文摘要
一種對稱密碼體制的加密方法,涉及信息加密技術(shù)領(lǐng)域。本發(fā)明設(shè)計建立了一個含一百萬種計算公式的算法集合,以種子密鑰、單位密鑰、時間攪拌器為參數(shù)調(diào)用算法集合,經(jīng)組合,隨機,換位三輪隨機運算生成1024位二級密鑰數(shù)組;再以返回值對應(yīng)的二級密鑰、種子密鑰、單位密鑰、時間攪拌器的數(shù)組值為參數(shù)調(diào)用算法集合,運算過程中綜合應(yīng)用了缺位運算、條件運算、質(zhì)數(shù)擴(kuò)散運算、除商擴(kuò)倍運算等非常規(guī)計算方法,同時在時間攪拌器的充分?jǐn)嚢柘庐a(chǎn)生了一個千萬年不重復(fù)的序列密碼。同時經(jīng)對種子密鑰的特殊處理及入口參數(shù)的特殊設(shè)置,實現(xiàn)了種子密鑰長度無限制,可根據(jù)客戶加密強度或計算機進(jìn)步發(fā)展的需求,由客戶隨意確定密鑰長度。
文檔編號H04L9/32GK102857340SQ20111017343
公開日2013年1月2日 申請日期2011年6月27日 優(yōu)先權(quán)日2011年6月27日
發(fā)明者席繼紅 申請人:席繼紅