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

多循環(huán)反饋序列法加密以及雜湊的制作方法

文檔序號:7888841閱讀:367來源:國知局
專利名稱:多循環(huán)反饋序列法加密以及雜湊的制作方法
技術(shù)領(lǐng)域
密碼學(xué)序列法加密,雜湊函數(shù)
背景技術(shù)
本發(fā)明是基于申請?zhí)枮?007101314877的“一種獲取確定序列加密法的加強(qiáng)方法”(簡稱P-KY加密法)的基礎(chǔ),作進(jìn)一步的完善,并據(jù)此創(chuàng)造出一種雜湊方法,本發(fā)明簡稱為“P-KY II加密法,KYMC雜湊法” 申請?zhí)枮?007101314877的“一種獲取確定序列加密法的加強(qiáng)方法”(簡稱P-KY加密法)給出了獲取海量種數(shù)的無規(guī)律長序列,并且使得對應(yīng)于海量序列的密鑰值與輸出序列無關(guān)聯(lián)的方法,但卻無法避免對特定弱密鑰以及弱序列的攻擊,由于其規(guī)模過大,無法放在計算機(jī)內(nèi)存中運(yùn)算而導(dǎo)致運(yùn)算速度緩慢,進(jìn)而無法方便地實(shí)現(xiàn)。本發(fā)明將解決這些問題。
本發(fā)明“P-KY II加密法,KYMC雜湊法”引用類似P-KY加密法的描述 一 建立一個公開的公共的長序列PBS 1主要由不同的三字節(jié)字組成,并散亂隨機(jī)地插入各種二字節(jié)字和單字節(jié)字,以單個字節(jié)為PBS的基本單元,總共長度為L字節(jié),本文中取L=16M 2對PBS序列上每個單元順序編地址,從首位“0”到末尾“L-1”,將首尾地址邏輯連接,使得PBS序列成為環(huán)狀,稱為“PBS環(huán)” 3要求PBS環(huán)上沒有連續(xù)的4字節(jié)相同,對于PBS上任意一點(diǎn),沒有完全對稱的連續(xù)4字節(jié)。同時整個PBS上去除所有的含有全“0”和全“1”比特排列的字節(jié)字;要求整個PBS上的各單元和比特排列充分隨機(jī)和分布均勻。
二.由“中心法”自級聯(lián)可以確定地在一個L長度的PBS上,可以獲得L種完全不同的獨(dú)立子序列 設(shè)PBS序列為U0,U1,U2,……,Ux,……UL-1若地址A點(diǎn)是PBS環(huán)上任意一點(diǎn),則A點(diǎn)有L種選擇。
1.關(guān)于A點(diǎn)的,以A為中心對稱點(diǎn)的中心法序列為SAZa0,a1,..ai,…其中a0為隨機(jī)給定值

為異或運(yùn)算符號,表示單元uA_1與單元uA+1對應(yīng)比特位異或運(yùn)算,下同 ……1≤i≤L/2 Ux下標(biāo)變量x 0≤x≤L-1 若下標(biāo)變量表達(dá)式x=(A-i)<0,定義x=x+L; 若x=(A+i)>L-1,則定義下標(biāo)x=x-L 每個中心法子序列最大長度為L/2 2.若以A左的一個單元和A之間作為對稱中心,即對稱中心在uA—1單元和uA單元之間,而不在PBS的單元碼上,這樣的中心對稱法序列記為SOAZ 對于SOAZ的a1,..ai,… 三.每次從PBS上任意點(diǎn)選取獨(dú)立的中心法序列可以有L種方法,m次選擇并級聯(lián),則有Lm種方法和序列,當(dāng)然級聯(lián)方式是非線性級聯(lián)。本說明取m=6。選擇6個子序列并級聯(lián),其對應(yīng)6個子序列的對稱中心選點(diǎn)地址為子密鑰,依次合并6個子密鑰為一次性會話密鑰K。
四.我們已經(jīng)確定地可以獲得L種序列SAZ和L種SBZ序列(分別以A和B點(diǎn)為中心的中心對稱法序列) 若SAZ‖SBZ“序列重排級聯(lián)”—簡稱”P”級聯(lián)得到的序列寫為為SABP SAZa1,a2,…,ai,…,an SBZb1,b2,…,bi,…,bn SABPw1,w2,…,wi,…,wn w1取自SBZ序列上的一個單元碼,是從b1點(diǎn)開始向后數(shù)的第a1個字節(jié)項(xiàng); …… wi取自SBZ序列上的一個單元碼,是從bi開始向后的ai個字節(jié)找到wi …… 設(shè)a0,b0為給定初始量,定義數(shù)組a[8M]={a0,a1,a2,…,ai,…,a8M_1}和b[8M]={b0,b1,b2,…,bi,…,b8M_1} 則有w0=b
w1=b[1+a1] …… wi=b[i+ai]即級聯(lián)輸出碼是以一個子序列的各個碼值為地址尋址指針對另一個子序列碼進(jìn)行重排,級聯(lián)輸出結(jié)果為L2種(長L/2=8M的序列任意偶然相同概率低到完全可以忽略)

發(fā)明內(nèi)容
1.設(shè)立雜化函數(shù)f(x,y) 取多項(xiàng)式x2/n1+x/n2的(10進(jìn)制時)小數(shù)點(diǎn)后有效部分6位為整數(shù)xZ,xZ mod16M化為三字節(jié)字x1x2x3,x1,x2,x3分別為單字節(jié)字 取多項(xiàng)式y(tǒng)2/n3+y/n4的(10進(jìn)制時)小數(shù)點(diǎn)后有效部分6位為整數(shù)yZ,yZ mod16M化為三字節(jié)字y1y2y3,y1,y2,y3分別為單字節(jié)字 其中n1,n2,n3,n4,為選定的質(zhì)數(shù)常數(shù) x1,x2,x3字分別與對應(yīng)的y1,y2,y3字,規(guī)定每個字的高位4個比特位為字的大端,其余4個比特位為小端,各個對應(yīng)字大小端互換, 互換后的x1,x2,x3和y1,y2,y3組成字串x1x2x3y1y2y3并循環(huán)左移三位作為雜化函數(shù)f(x,y)的輸出. 2.過濾器設(shè)置R 對于輸入單字節(jié)碼r1,r2,……,ri,……執(zhí)行以ri為比較單元,若ri+1≠ri則輸出ri,ri+1置換ri為比較單元;若ri+1=ri則計數(shù)一次,輸出ri,ri+1置換ri為比較單元,若rr+2=ri+1則計數(shù)2次,不輸出ri+1,rr+2置換ri+1為比較單元,計數(shù)復(fù)0。
即,比較單元總是后一級替換前一級,只有當(dāng)比較計數(shù)為2時,才不輸出比較單元。這樣,輸出重復(fù)碼只能一次 輸入碼ri與固定比較單元00000000和11111111比較,若有相同即刪除不輸出。
3.子序列循環(huán)及輸出 6個中心法子序列是分別以A,B,C,R,V,T為地址的中心對稱法序列,首先檢測排除全0字節(jié),它們的長度分別記為LA,LB,LC,LR,LV,和LT,并選出最小長度值記為Lmin SAZa1,…,ai,… SBZb1,…,bi,… SCZc1,…,ci,… ……… 這是中心法子序列的順序排列 對子序列逐個碼P級聯(lián)式尋址排列而重新獲得的新序列,稱為P尋址級聯(lián)中心法序列,簡稱qxi序列 SAZa0a1qa2qa3……qai……在SAZ中尋址獲得的新序列 SBZb0qb1qb2qb3……qbi……在SBZ中尋址獲得的新序列 SCZc0qc1qc2qc3……qci……在SCZ中尋址獲得的新序列 SRZr0qr1qr2qr3……qri……在SRZ中尋址獲得的新序列 SVZv0qv1qv2qv3……qvi……在SVZ中尋址獲得的新序列 STZt0qt1qt2qt3……qti……在STZ中尋址獲得的新序列 其中a0,a1,b0,c0,r0,v0,t0為初始偏置量,其他qx.i為經(jīng)過P尋址得到的碼。
第一輪 我們以a0 a1兩個碼在SBZ中找到qb1; 以b0 qb1兩個碼在SCZ中找到qc1; 以c0 qc1兩個碼在SRZ中找到qr1; 以r0 qr1兩個碼在SVZ中找到qvi; 以v0 qv1兩個碼在STZ中找到qt1; 第二輪 以t0 qt1兩個碼在SAZ中找到qa2; 以a1 qa2兩個碼在SBZ中找到qb2; 以qb1 qb2兩個碼在SCZ中找到qc2; 以qc1 qc2兩個碼在SRZ中找到qr2; 以qr1 qr2兩個碼在SVZ中找到qv2; 以qv1 qv2兩個碼在STZ中找到qt2; …… 第i輪 以qti-2 qti-1兩個碼在SAZ中找到qai 以qai-1 qai兩個碼在SBZ中找到qbi 以qbi-1 qbi兩個碼在SCZ中找到qci; 以qci-1 qci兩個碼在SRZ中找到qri; 以qri-1 qri兩個碼在SVZ中找到qvi 以qvi-1 qvi兩個碼在STZ中找到qti 若以Zn(n=1,2,3,4,5,6)即Z1,Z2,Z3,Z4,Z5,Z6分別代表A,B,C,R,V,TZn.i來表示以上第i輪各項(xiàng),則 以Z6.i-2 Z6.i-1兩個碼在Z1中找到Z1.i 以Z1.i-1 Z1.i兩個碼在Z2找到Z2.i n=2 以Z2.i-1 Z2.i兩個碼在Z3找到Z3.i n=3 以Z3.i-1 Z3.i兩個碼在Z4找到Z4.i n=4 以Z4.i-1 Z4.i兩個碼在Z5找到Z5.i n=5 以Z5.i-1Z5.i兩個碼在Z6找到Z6.i n=6 第i輪, 以Zn-1.i-1 Zn-1.i兩個碼在到Zn中找到Zn.i 2≤n≤6,i≥1……(1) 第i+1輪 以Zn+5.i-2 Zn+5.i-1兩個碼在到Zn中找到Zn.i n=1,i≥2時………(2) 以Zn-1.i-1 Zn-1.i兩個碼在到Zn中找到Zn.i 2≤n≤6,i≥1 注意,程序從i=1,n=2開始,即先 以Zn-1.i-1 Zn-1.i兩個碼在到Zn中找到Zn.i(2≤n≤6,i≥1) 然后進(jìn)入i+1輪的(2)式再(1)式 …… 1)i=1輪,獲取qb1即獲取(當(dāng)Zn.i的i=1,n=2時的)Z2.1 在雜化函數(shù)f(x,y)中,令a0=x,a1=y(tǒng) Pqb1=(i+f(a0,a1)+PKj)mod LB即PZn.i=(i+f(a0,a1)+PKj)modLZn n=2時 Pqb1為尋址指針,在SBZ中尋址找到qb1式中i=1,PKj是循環(huán)副密鑰偏量,Pkj=j(luò),j是Kj的下標(biāo),此處j=0 2)獲取qc1即獲取(當(dāng)Zn.i的i=1,n=3時的)Z3.1 在雜化函數(shù)f(x,y)中,輸入b0=x,qb1=y(tǒng) Pqc1=(i+f(b0,qb1)+PK.j)modLC,在SCZ中尋址找到qc1 即PZn.i=(i+f(Zn-1.i-1,Zn-1.i)+PKj)modLZn n=3時 3)同樣,Pqr1=Pzn.i=(i+f(Zn-1.i-1,Zn-1.i)+PKj)modLZn n=4時 Pqv1==Pzn.i=(i+f(Zn-1.i-1,Zn-1.i)+PKj)modLZn n=5時, Pqt1=PZn.i=(i+f(Zn-1.i-1,Zn-1.i)+PKj)modLZn n=6時; i=1輪結(jié)束,進(jìn)入i=2輪 4)qa2獲取 Pqa2=PZn.i=(i+f(Zn+5.i-2,Zn+5.i-1)+PKj)modLZn n=1時i=2,PK.j=0 PZn.i=(i+f(Zn-1.i-1,Zn-1.i)+PKj)modLZn時2≤n≤6 5)一般地,P尋址指針 在SAZ中,Pqai=(i+f(qti_2,qti_1)+PK.j)modLA,Pqai→qai, 寫成Zn.i式表達(dá)為, 指針PZn.i=(i+f(Zn+5.i-2,Zn+5.i-1)+PK.j)modLZn-5. i≥2,n=1時………(3.1) SBZ中,Pqbi=(i+f(qai_1,qai)+PK.j)modLB,Pqbi→qbi≥1 Zn.i式表達(dá)為 指針PZn.i=(i+f(Zn-1.i-1,Zn-1.i)+PK.j)modLZn(2≤n≤6,i≥1)………(3.2) 即由上一個子序列第i-1和第i輪的兩個碼分別作f(x,y)中的x和y,得出本序列的第i輪的尋址指針Pqi即Pzn.i,找到對應(yīng)碼。只有SAZ序列碼是i-2和i-1輪的兩個STZ碼為x,y得到指針并找到對應(yīng)碼。
STZ的(i+f(qti_1,qti)+PK.j)輸出,并記為Qi PS.i=QimodL→Si即在PBS上尋址找到Si碼,通過過濾計數(shù)器R后輸出, 當(dāng)i=Lmin時,做最后一輪運(yùn)算,輸出Si←PS.i=QimodL Qi=(i+f(qti_1,qti)+PK.j),此主K輪即K0輪結(jié)束。
qai,qai_1,qbi qci,qri,qvi,qti作為下一個副密鑰Kj的中心法序列的初始偏置量。
4.副密鑰產(chǎn)生和循環(huán) S碼前50個碼不作加解密碼輸出,從第6個碼即S6開始的連續(xù)3個碼S7S8S9與當(dāng)前Kj的第一個子密鑰(3個字節(jié))對比,若相同則取后偏一個字節(jié)的連續(xù)3碼S8S9S10,繼續(xù)比對,直至不同,則包含此3碼連續(xù)取18個字節(jié)碼為下一輪的副密鑰Kj+1,j≥0,定義K0為主密鑰,j遞增1后循環(huán) 設(shè)定j的最大值jmax,當(dāng)j=j(luò)max時,程序結(jié)束。
副密鑰等分為6個子密鑰重新建立6個子序列,初始偏置量為上個K輪的qai,qai_1,qbi qci,qri,qvi,qti 5.中心法子序列自級聯(lián)不采用異或運(yùn)算,對應(yīng)的左向序列碼跟右向序列碼組成一個表達(dá)式,簡單起見,采用一個簡單線性表達(dá)式。中心法序列記為(仍以地址點(diǎn)A為例)PBS序列;U0,U1,U2,……,Ux,……UL_1…………(4) SAZa1,…,ai,… a1=m0UA_1+m1UA+1 a2=m0UA_2+m1UA+2 ai=m0UA_i+m1UA+i 式中,m0,m1規(guī)定取為正整數(shù)常數(shù)。
一般地,以地址值X(X為任意地址點(diǎn))的中心法P尋址序列項(xiàng) qxi=m0UX-qi+m1UX+qi …………………(5) 在(5)中,x=ZN,qi=指針P=PZn.i qxi=Zn.i 即Zn.i=m0UZN-P+m1UZN+P……………(6) ZN代表子密鑰本身固定的數(shù)值,在(6)式的右邊是個數(shù)值 Zn代表子密鑰符號,n有1~6的變化 那么,所有的中心法序列的每一項(xiàng)都是一個正整數(shù),對于子序列尋址得到的每一項(xiàng)都不一定是一個字節(jié)的0~255之間的正整數(shù)了。也因此,對子序列逐項(xiàng)P級聯(lián)式尋址排列而重新獲得的序列,記為qi序列項(xiàng)都是一個不一定是在0~255之間的正整數(shù)。
以此種簡單線性表達(dá)式為單元組成的中心法子序列中每一項(xiàng)都是非0的正整數(shù),我們不用再通過過濾全“0”字節(jié)的過濾器,并且所有子序列中心法序列長度固定,項(xiàng)數(shù)I,長度為8M 1≤i≤L/2,(或者1≤i≤L) 因而指針PZn.i=(i+f(Zn+5.i-2,Zn+5.i-1)+PK.j)mod8M i≥2,n=1……(3.11) 指針PZn.i=(i+f(Zn-1.i-1,Zn-1.i)+PK.j)mod8M 2≤n≤6,i≥1……(3.22) 因而,實(shí)際上,中心法序列我們可以不必真正建立起來,它是一個邏輯上存在的序列。例如求qb1 在雜化函數(shù)f(x,y)中,令a0=x,a1=y(tǒng) Pqb1=(i+f(a0,a1)+PKj)modLA在SBZ中尋址找到qb1,數(shù)值指針Pqb1在SBZ的qb1=qxi=m0UX-qi+m1UX+qi中,x=B,令qi=Pqb1=PZn.i(3.22)式得到qb1 綜合以上,便建立了P-KY II加密法 6.KYMC雜湊法 我們利用以上建立的P-KYII加密法,其密鑰值與輸出之間無關(guān)聯(lián),密鑰的一個任意微小變動,都會引起在之后隨機(jī)輸出中復(fù)雜和無規(guī)律變化,從任意的一個輸出不能推斷出輸入,窮搜將是海量而不可行的。這就是單向性的。找到一個輸入使得與另一個輸入從而輸出相同很困難,找到任意兩個輸入以得到相同輸出很困難,這就具備了抗碰撞的要素。
以P-KY II加密法的基本機(jī)構(gòu)來構(gòu)造雜湊函數(shù)KYMC 預(yù)設(shè)a0,a1,b0,c0,r0,v0,t0,δ0,ε0,ζ0,η0,θ0,λ0初始偏置量,預(yù)設(shè)長度L=288bit的字串D0,將明文分成288bit的m個分組K1,K2,……Kj,……,Km,最后的Km不足288bit時以0補(bǔ)足,同時D0字串和Km對應(yīng)位逐個比特異或成KmD,以KmD代替Km K1的288bit順序等分為12份子密鑰,在16M的PBS上邏輯建立12個中心對稱法序列(實(shí)際上并未建立!),中心法子序列自級聯(lián)采用線性表達(dá)式, qxi=m0UX-qi+m1UX+qi …………………(5) 式中x分別為K1的12個子密鑰地址值 f(a0,a1)→Pqb1→qb1 其中qb1=qxi=m0UX-qi+m1UX+qi f(b0,qb1)→Pqc1 同樣可以得到qc1 …… f(λ0,qλ1)→Pqa2→qa2 輸出(λ0,qλ1,),為8個字節(jié)碼長度比特,64比特,進(jìn)入第二輪 整個雜湊輸出比特為n位,K1上三輪輸出為3*64比特=192比特,四輪輸出為4*64比特=256比特,五輪輸出為320比特。我們選擇四輪。
第二輪f(qλ1,qλ2)輸出 四輪輸出的比特組成256比特長的字串C1 第四輪各個中心法序列的qa4,qb4,qc4,……,qλ4,以及第三輪的qa3作為下一個K,即K2的預(yù)置偏量,定義H1=C1 K2產(chǎn)生C2,H2=g(C2,H1) Hj=g(Cj,Hj_1)2≤j≤m Hm為輸出雜湊值,g(x,y)函數(shù)中,Cj,Hj_1分別為x和y,輸入的x和y都是256bit串,用y串比特與x串比特對應(yīng)位異或成256比特的串Q0;用y串比特對x串對應(yīng)比特對應(yīng)位進(jìn)行“丟棄法”級聯(lián),即當(dāng)y串比特位是“1”時,輸出對應(yīng)x串的比特位,當(dāng)y串比特位是“0”時,不輸出對應(yīng)x串的比特位,這樣得到一個長d位的比特串M0,長d位的比特串M0不足256比特部分,用Q0逐位填充至256位得到新串,新串循環(huán)右移d位,即為g(x,y)函數(shù)的輸出Hj
具體實(shí)施例方式 一 多循環(huán)反饋序列法加密 算法 1建立符合標(biāo)準(zhǔn)的L=16M的PBS序列環(huán),以三字節(jié)字為主,散亂穿插單字節(jié)和雙字節(jié)字,去除所有的含有全“0”和全“1”比特排列字節(jié)字,以單字節(jié)字為基本單元,確保PBS上各個單元隨機(jī)和均勻分布,并確保PBS環(huán)上沒有連續(xù)4個單元碼以上相同,沒有關(guān)于任意一個碼的4個單元碼以上的對稱。
PBS序列為X為PBS環(huán)上任意一個地址點(diǎn)ux下標(biāo)變量x 0≤x≤L-1 若下標(biāo)表達(dá)式x=(A-i)<0,定義x=x+L; 若x=(A+i)>L-1,則定義下標(biāo)x=x-L 2設(shè)立雜化函數(shù)f(x,y) 取多項(xiàng)式x2/n1+x/n2的(10進(jìn)制時)小數(shù)點(diǎn)后有效部分6位為整數(shù)xZ,xZ mod16M化為三字節(jié)字x1x2x3,x1,x2,x3分別為單字節(jié)字 取多項(xiàng)式y(tǒng)2/n3+y/n4的(10進(jìn)制時)小數(shù)點(diǎn)后有效部分6位為整數(shù)yZ,yZmod16M化為三字節(jié)字y1y2y3,y1,y2,y3分別為單字節(jié)字 n1=167,n2=193,n3=457,n4=349 x1,x2,x3字分別與對應(yīng)的y1,y2,y3字,規(guī)定每個字的高位4個比特位為字的大端,其余4個比特位為小端,各個對應(yīng)字大小端互換,互換后的x1,x2,x3和y1,y2,y3組成字串x1x2x3y1y2y3并循環(huán)左移三位作為雜化函數(shù)f(x,y)的輸出. 3.過濾器設(shè)置R 對于輸入單字節(jié)碼r1,r2,……,ri,……執(zhí)行以ri為比較單元,若ri+1≠ri則輸出ri,ri+1置換ri為比較單元;若ri+1=ri則計數(shù)一次,輸出ri,ri+1置換ri為比較單元,若r1+2=ri+1則計數(shù)2次,不輸出ri+1,r1+2置換ri+1為比較單元,計數(shù)復(fù)0。
即,比較單元總是后一級替換前一級,只有當(dāng)比較計數(shù)為2時,才不輸出比較單元。這樣,輸出重復(fù)碼只能一次 4.PBS序列為U0,U1,U2,……,Ux,……UL_1 以地址值X(X為任意地址點(diǎn))為對稱中心的中心法P尋址級聯(lián)中心法序列,為 qx.i序列qxi=m0UX-qi+m1UX+qi m0,m1為正整數(shù)常數(shù),取m0=187,m1=13 式中下標(biāo)X代表6個子密鑰A,B,C,R,V,T,以Zn表示分別為Z1,Z2,Z3,Z4,Z5,Z6下標(biāo)qi為尋址變量指針P,即PZn.i值 二算法執(zhí)行 輸入一次性會話密鑰K為主密鑰K0,隨后程序自動產(chǎn)生的副密鑰為Kj,j≥0并遞增1直至設(shè)定的最大數(shù)jmax,當(dāng)j=j(luò)max時程序結(jié)束. 將Kj等分為6個子密鑰,依次為A,B,C,R,V,T,分別表示為Z1,Z2,Z3,Z4,Z5,Z6它們的值即為(1)式中的X下標(biāo) j=0,K0時,PKj=j(luò)=0 預(yù)設(shè)a0,a1,b0,c0,r0,v0,t0為初始偏置量 定義a0=Z1.0,a1=Z1.1,b0=Z2.0,c0=Z3.0,r0=Z4.0,v0=Z5.0,t0=Z5.0 循環(huán)從求qb1即Z2.1開始,i=1此i輪不輸出,(L/2≥i≥1) 在(5)式qxi=m0UX-qi+m1Ux+qi中, 下標(biāo)變量中,令X=B=Z2,qi=PZ2.1 則qb1=qZ2.1=m0UZN-P+m1UZN+P ---其中,下標(biāo)變量的P=PZ2.1=PZn.i=(i+f(Zn-1.i-1,Zn-1.i)+PK.j)mod8M 2≤n≤6,i≥1……(3.22) f(Zn-1.i-1,Zn-1.i)是雜化函數(shù)f(x,y)中,令x=Zn-1.i-1,y=Zn-1.in=2時,求出qb1=Z2.1 然后依次求Zn.i,即n遞增后的qc1,qr1,qv1,qt1 Zn.i=m0UZN-P+m1UZN+P ………(6)式 (式中ZN為子密鑰的值) 式中指針P=PZn.i=(i+f(Zn-1.i-1,Zn-1.i)+PK.j)mod8M ……(3.22)式 (2≤n≤6,i≥1)n從2開始到6,逐個遞增1,當(dāng)n=6完成后,進(jìn)入下一輪i 令i=2 Zn.i=m0UZN-P+m1UZN+P ……………(6) 指針P=PZn.i=(i+f(Zn+5.i-2,Zn+5.i-1)+PK.j)mod8M n=1時……(3.11)式 指針P=PZn.i=(i+f(Zn-1.i-1,Zn-1.i)+PK.j)modLZn 2≤n≤6,……(3.22)式 n=6時,輸出指針Ps=PZn.i同時,i=i+1,進(jìn)入下一輪 在PBS上,Ps→Qi Qi通過重復(fù)計數(shù)過濾器R成為輸出碼Soi, S碼前50個碼不作加解密碼輸出,從第6個碼即S開始的連續(xù)3個碼與當(dāng)前Kj的第一個子密鑰(3個字節(jié))對比,若相同則取向后偏移一個字節(jié)的連續(xù)3碼,繼續(xù)比對,直至不同,則包含此3碼連續(xù)取18個字節(jié)碼為下一輪的副密鑰Kj+1,j≥0,定義K0為主密鑰,j遞增1后循環(huán),當(dāng)前Kj=K0,獲得下一個K為Kj+1=K1 i=L/2=8M時,完成本K輪輸出,qai,qai-1,qbi qci,qri,qvi,qti作為下一個副密鑰Kj的中心法序列的初始偏置量。
進(jìn)入下一K輪,即j=j(luò)+1;當(dāng)j=j(luò)max時,程序結(jié)束. 三KYMC雜湊算法 1.預(yù)設(shè)a0,a1,b0,c0,r0,v0,t0,δ0,ε0,ζ0,η0,θ0,λ0初始偏置量,預(yù)設(shè)尋址時間固定偏量PT0,預(yù)設(shè)長度L=288bit的字串D0,將明文分成288bit的m個分組K1,K2,……Kj,……,Km,最后的Km不足288bit時,以D0字串逐個比特填充到288比特,稱為KmD,以KmD代替Km 以Kj為加密循環(huán)體的輸入加密密鑰,以Kj為288比特分為12個子密鑰,記為Z1,Z2,Z3,…,Zn,…,Z12每輪進(jìn)行12步的運(yùn)算,每個K運(yùn)算四輪, 1≤i≤4,算法從i=1,j=1開始1≤j≤m K=1,i=1,循環(huán)從第一輪i=1,序列Z2中開始 定義a0=Z1.0,a1=Z1.1,b0=Z2.0 c0=Z3.0,r0=Z4.0,v0=Z5.0,t0=Z6.0,δ0=Z7.0,ε0=Z8.0,ζ0=Z9.0, η0=Z10.0,θ0=Z11.0,λ0=Z12.0 2.求qZn..i即求qZ2·1 qZn.i=m0UZN-P+m1UZN+P ………(6)式 根據(jù)(3.22)式有 指針P=Pzn.i=(i+f(Zn-1.i-1,Zn-1.i)+PK.j)modLZn 2≤n≤12, n遞增1直至n=12, 當(dāng)n=12輸出指針P=PZn.i為8個字節(jié)碼長度比特,64比特進(jìn)入下一輪,i=i+1 qxi=m0UX-qi+m1UX+qi…………………(5) 下標(biāo)變量中,令X=Z2,qi=PqZ2·1 則qZ2·1=m0UZ2-p+m1UZ2+p ---其中,下標(biāo)變量的指針P=PqZ2·1=(i+f(a0,a1)+PKj+)modL/2 (式中,i=1,PKj=j(luò)=1) P為8個字節(jié)碼長度比特,64比特 令i=i+1,進(jìn)入第二輪 qxi=m0UX-qi+m1UX+qi…………………(5) qZn.i=m0UZN-P+m1UZN+P………(6)式 指針PZn.i=(i+f(Zn+5.i-2,Zn+5.i-1)+PK.j)mod8M n=1時……(3.11)式 指針P=PZn.i=(i+f(Zn-1.i-1,Zn-1.i)+PK.j)modLZn 2≤n≤12,……據(jù)(3.22)式 當(dāng)n=12時輸出第二組8個字節(jié)碼,……,一直到i=4時的n=12的輸出,進(jìn)入下一個K,即j=j(luò)+1輪 P=PZn.i=(i+f(Zn-1.i-1,Zn-1.i)+PK.j)modLZn 第四輪各個中心法序列的碼Zn.iZ1.4,Z2.4 Z3.4………Z12.4, 以及Z1.3碼作為下輪K時的初始偏置量. 四輪輸出的比特組成256比特長的字串C1 定義H1=C1 K2產(chǎn)生C2,H2=g(C2,H1) Hj=g(Cj,Hj-1)2≤j≤m Hm為輸出雜湊值,g(x,y)函數(shù)中,Cj,Hj_1分別為x和y, 輸入的x和y都是256bit串,用y串比特與x串比特對應(yīng)位異或成256比特的串Q0;用y串比特對x串對應(yīng)比特對應(yīng)位進(jìn)行“丟棄法”級聯(lián),即當(dāng)y串比特位是“1”時,輸出對應(yīng)x串的比特位,當(dāng)y串比特位是“0”時,不輸出對應(yīng)x串的比特位,這樣得到一個長d位的比特串M0,長d位的比特串M0不足256比特部分,用Q0逐位填充至256位得到新串,新串循環(huán)右移d位,即為g(x,y)函數(shù)的輸出Hj 當(dāng)j=m時,輸出Hm=g(Cm,Hm-1),程序結(jié)束
權(quán)利要求
1.一種在PBS序列基礎(chǔ)上,由多個中心法序列構(gòu)成的多循環(huán)反饋序列法加密;
在P-KY加密法的PBS公共序列碼環(huán),中心對稱法子序列,P級聯(lián),構(gòu)筑海量不同的無規(guī)律無周期長序列原理基礎(chǔ)上,顯著地改變了加密的一些特性,其特征為
1)設(shè)置和加入了雜化函數(shù)f(x,y),并使上一級子序列的雙項(xiàng)qi_1和qi分別為f(x,y)的二元輸入而得到尋址指針(主要組成)從而尋得本級子序列的一個項(xiàng)qi;本級又同樣通過令qi_1和qi為f(x,y)的二元輸入而輸出下一級的尋址指針(主要組成)從而尋址找到下一級的qi,進(jìn)而構(gòu)成循環(huán);
2)PBS縮短長度以適應(yīng)放入內(nèi)存高速運(yùn)行,嚴(yán)格規(guī)定PBS的隨機(jī)均勻特性并刪除全”0”比特和全”1”比特對應(yīng)的字節(jié),循環(huán)輸出數(shù)據(jù)最后在PBS上尋址獲得碼輸出,并設(shè)立了過濾器,以過濾重復(fù)規(guī)律碼,使得最終輸出無偏和無弱序列片段;
3)在輸出碼中自動選定副密鑰,以使輸出循環(huán)能有要求的長序列輸出,同時對副密鑰檢測排除相同并設(shè)密鑰尋址的自增偏量PKj,使得即使子密鑰相同,其結(jié)果也完全無關(guān),并設(shè)置了初始偏量及自動初始偏量,對輸出的隨機(jī)化有重要影響;
4)排除了中心法序列只有異或這一種形式,并給出了一個簡單線性表達(dá)式,排除了中心法自級聯(lián)輸出只能為一個字節(jié)的形式,因而不再需要必須的建立子序列,而只是邏輯上存在子序列,可直接運(yùn)用數(shù)學(xué)式運(yùn)算
2.一種利用多循環(huán)反饋序列法加密構(gòu)筑的雜湊函數(shù)KYMC,其特征為
1)利用了P-KY加密原理,運(yùn)用了多循環(huán)反饋序列法加密的基本結(jié)構(gòu),并且明文分組成的若干等分段是分別依次作為序列法加密的輸入密鑰,產(chǎn)生有限的固定n位隨機(jī)輸出序列,對這些輸出序列進(jìn)行迭代運(yùn)算獲取雜湊碼;
2)輸出與輸入沒有關(guān)聯(lián),有限的輸出碼序列長度可以根據(jù)要求而調(diào)整,
因此更長的n位雜湊輸出比特可以輕易實(shí)現(xiàn);
3)KYMC安全強(qiáng)度是基于P-KY海量序列構(gòu)造原理和多循環(huán)反饋序列加密的無關(guān)聯(lián)隨機(jī)性。
全文摘要
本發(fā)明P-KY II多循環(huán)反饋序列法加密和KYMC雜湊,在P-KY加密法利用公開公共數(shù)據(jù)序列PBS而創(chuàng)建的海量種類的,與密鑰無關(guān)聯(lián)長序列基礎(chǔ)上,解決P-KY加密法的缺陷通過縮短PBS長度并循環(huán)反饋而解決實(shí)用性問題,通過設(shè)立雜化函數(shù)并雙點(diǎn)尋址級聯(lián)解決了選定弱密鑰特定碼攻擊可能,通過設(shè)立過濾器以及最終在無偏PBS上選碼輸出避免了弱序列的輸出。通過利用P-KY II多循環(huán)反饋序列法加密的單向特性和隨機(jī)輸出無關(guān)聯(lián)特性,以及把明文作為多循環(huán)反饋序列法加密的輸入密鑰組構(gòu)造了KYMC雜湊函數(shù),使之有效地免除對通常雜湊函數(shù)的各類攻擊。P-KY II多循環(huán)反饋序列法加密和KYMC雜湊在密碼學(xué)方面有著實(shí)用性的顯著意義。
文檔編號H04L9/28GK101430842SQ20071013510
公開日2009年5月13日 申請日期2007年11月8日 優(yōu)先權(quán)日2007年11月8日
發(fā)明者姚錫根 申請人:姚錫根
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1