多循环反馈序列法加密以及杂凑的制作方法

文档序号:7888841阅读:319来源:国知局
专利名称:多循环反馈序列法加密以及杂凑的制作方法
技术领域
密码学序列法加密,杂凑函数
背景技术
本发明是基于申请号为2007101314877的“一种获取确定序列加密法的加强方法”(简称P-KY加密法)的基础,作进一步的完善,并据此创造出一种杂凑方法,本发明简称为“P-KY II加密法,KYMC杂凑法” 申请号为2007101314877的“一种获取确定序列加密法的加强方法”(简称P-KY加密法)给出了获取海量种数的无规律长序列,并且使得对应于海量序列的密钥值与输出序列无关联的方法,但却无法避免对特定弱密钥以及弱序列的攻击,由于其规模过大,无法放在计算机内存中运算而导致运算速度缓慢,进而无法方便地实现。本发明将解决这些问题。
本发明“P-KY II加密法,KYMC杂凑法”引用类似P-KY加密法的描述 一 建立一个公开的公共的长序列PBS 1主要由不同的三字节字组成,并散乱随机地插入各种二字节字和单字节字,以单个字节为PBS的基本单元,总共长度为L字节,本文中取L=16M 2对PBS序列上每个单元顺序编地址,从首位“0”到末尾“L-1”,将首尾地址逻辑连接,使得PBS序列成为环状,称为“PBS环” 3要求PBS环上没有连续的4字节相同,对于PBS上任意一点,没有完全对称的连续4字节。同时整个PBS上去除所有的含有全“0”和全“1”比特排列的字节字;要求整个PBS上的各单元和比特排列充分随机和分布均匀。
二.由“中心法”自级联可以确定地在一个L长度的PBS上,可以获得L种完全不同的独立子序列 设PBS序列为U0,U1,U2,……,Ux,……UL-1若地址A点是PBS环上任意一点,则A点有L种选择。
1.关于A点的,以A为中心对称点的中心法序列为SAZa0,a1,..ai,…其中a0为随机给定值

为异或运算符号,表示单元uA_1与单元uA+1对应比特位异或运算,下同 ……1≤i≤L/2 Ux下标变量x 0≤x≤L-1 若下标变量表达式x=(A-i)<0,定义x=x+L; 若x=(A+i)>L-1,则定义下标x=x-L 每个中心法子序列最大长度为L/2 2.若以A左的一个单元和A之间作为对称中心,即对称中心在uA—1单元和uA单元之间,而不在PBS的单元码上,这样的中心对称法序列记为SOAZ 对于SOAZ的a1,..ai,… 三.每次从PBS上任意点选取独立的中心法序列可以有L种方法,m次选择并级联,则有Lm种方法和序列,当然级联方式是非线性级联。本说明取m=6。选择6个子序列并级联,其对应6个子序列的对称中心选点地址为子密钥,依次合并6个子密钥为一次性会话密钥K。
四.我们已经确定地可以获得L种序列SAZ和L种SBZ序列(分别以A和B点为中心的中心对称法序列) 若SAZ‖SBZ“序列重排级联”—简称”P”级联得到的序列写为为SABP SAZa1,a2,…,ai,…,an SBZb1,b2,…,bi,…,bn SABPw1,w2,…,wi,…,wn w1取自SBZ序列上的一个单元码,是从b1点开始向后数的第a1个字节项; …… wi取自SBZ序列上的一个单元码,是从bi开始向后的ai个字节找到wi …… 设a0,b0为给定初始量,定义数组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]即级联输出码是以一个子序列的各个码值为地址寻址指针对另一个子序列码进行重排,级联输出结果为L2种(长L/2=8M的序列任意偶然相同概率低到完全可以忽略)

发明内容
1.设立杂化函数f(x,y) 取多项式x2/n1+x/n2的(10进制时)小数点后有效部分6位为整数xZ,xZ mod16M化为三字节字x1x2x3,x1,x2,x3分别为单字节字 取多项式y2/n3+y/n4的(10进制时)小数点后有效部分6位为整数yZ,yZ mod16M化为三字节字y1y2y3,y1,y2,y3分别为单字节字 其中n1,n2,n3,n4,为选定的质数常数 x1,x2,x3字分别与对应的y1,y2,y3字,规定每个字的高位4个比特位为字的大端,其余4个比特位为小端,各个对应字大小端互换, 互换后的x1,x2,x3和y1,y2,y3组成字串x1x2x3y1y2y3并循环左移三位作为杂化函数f(x,y)的输出. 2.过滤器设置R 对于输入单字节码r1,r2,……,ri,……执行以ri为比较单元,若ri+1≠ri则输出ri,ri+1置换ri为比较单元;若ri+1=ri则计数一次,输出ri,ri+1置换ri为比较单元,若rr+2=ri+1则计数2次,不输出ri+1,rr+2置换ri+1为比较单元,计数复0。
即,比较单元总是后一级替换前一级,只有当比较计数为2时,才不输出比较单元。这样,输出重复码只能一次 输入码ri与固定比较单元00000000和11111111比较,若有相同即删除不输出。
3.子序列循环及输出 6个中心法子序列是分别以A,B,C,R,V,T为地址的中心对称法序列,首先检测排除全0字节,它们的长度分别记为LA,LB,LC,LR,LV,和LT,并选出最小长度值记为Lmin SAZa1,…,ai,… SBZb1,…,bi,… SCZc1,…,ci,… ……… 这是中心法子序列的顺序排列 对子序列逐个码P级联式寻址排列而重新获得的新序列,称为P寻址级联中心法序列,简称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为经过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轮各项,则 以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) 然后进入i+1轮的(2)式再(1)式 …… 1)i=1轮,获取qb1即获取(当Zn.i的i=1,n=2时的)Z2.1 在杂化函数f(x,y)中,令a0=x,a1=y Pqb1=(i+f(a0,a1)+PKj)mod LB即PZn.i=(i+f(a0,a1)+PKj)modLZn n=2时 Pqb1为寻址指针,在SBZ中寻址找到qb1式中i=1,PKj是循环副密钥偏量,Pkj=j,j是Kj的下标,此处j=0 2)获取qc1即获取(当Zn.i的i=1,n=3时的)Z3.1 在杂化函数f(x,y)中,输入b0=x,qb1=y 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轮结束,进入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式表达为, 指针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式表达为 指针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,找到对应码。只有SAZ序列码是i-2和i-1轮的两个STZ码为x,y得到指针并找到对应码。
STZ的(i+f(qti_1,qti)+PK.j)输出,并记为Qi PS.i=QimodL→Si即在PBS上寻址找到Si码,通过过滤计数器R后输出, 当i=Lmin时,做最后一轮运算,输出Si←PS.i=QimodL Qi=(i+f(qti_1,qti)+PK.j),此主K轮即K0轮结束。
qai,qai_1,qbi qci,qri,qvi,qti作为下一个副密钥Kj的中心法序列的初始偏置量。
4.副密钥产生和循环 S码前50个码不作加解密码输出,从第6个码即S6开始的连续3个码S7S8S9与当前Kj的第一个子密钥(3个字节)对比,若相同则取后偏一个字节的连续3码S8S9S10,继续比对,直至不同,则包含此3码连续取18个字节码为下一轮的副密钥Kj+1,j≥0,定义K0为主密钥,j递增1后循环 设定j的最大值jmax,当j=jmax时,程序结束。
副密钥等分为6个子密钥重新建立6个子序列,初始偏置量为上个K轮的qai,qai_1,qbi qci,qri,qvi,qti 5.中心法子序列自级联不采用异或运算,对应的左向序列码跟右向序列码组成一个表达式,简单起见,采用一个简单线性表达式。中心法序列记为(仍以地址点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规定取为正整数常数。
一般地,以地址值X(X为任意地址点)的中心法P寻址序列项 qxi=m0UX-qi+m1UX+qi …………………(5) 在(5)中,x=ZN,qi=指针P=PZn.i qxi=Zn.i 即Zn.i=m0UZN-P+m1UZN+P……………(6) ZN代表子密钥本身固定的数值,在(6)式的右边是个数值 Zn代表子密钥符号,n有1~6的变化 那么,所有的中心法序列的每一项都是一个正整数,对于子序列寻址得到的每一项都不一定是一个字节的0~255之间的正整数了。也因此,对子序列逐项P级联式寻址排列而重新获得的序列,记为qi序列项都是一个不一定是在0~255之间的正整数。
以此种简单线性表达式为单元组成的中心法子序列中每一项都是非0的正整数,我们不用再通过过滤全“0”字节的过滤器,并且所有子序列中心法序列长度固定,项数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) 因而,实际上,中心法序列我们可以不必真正建立起来,它是一个逻辑上存在的序列。例如求qb1 在杂化函数f(x,y)中,令a0=x,a1=y Pqb1=(i+f(a0,a1)+PKj)modLA在SBZ中寻址找到qb1,数值指针Pqb1在SBZ的qb1=qxi=m0UX-qi+m1UX+qi中,x=B,令qi=Pqb1=PZn.i(3.22)式得到qb1 综合以上,便建立了P-KY II加密法 6.KYMC杂凑法 我们利用以上建立的P-KYII加密法,其密钥值与输出之间无关联,密钥的一个任意微小变动,都会引起在之后随机输出中复杂和无规律变化,从任意的一个输出不能推断出输入,穷搜将是海量而不可行的。这就是单向性的。找到一个输入使得与另一个输入从而输出相同很困难,找到任意两个输入以得到相同输出很困难,这就具备了抗碰撞的要素。
以P-KY II加密法的基本机构来构造杂凑函数KYMC 预设a0,a1,b0,c0,r0,v0,t0,δ0,ε0,ζ0,η0,θ0,λ0初始偏置量,预设长度L=288bit的字串D0,将明文分成288bit的m个分组K1,K2,……Kj,……,Km,最后的Km不足288bit时以0补足,同时D0字串和Km对应位逐个比特异或成KmD,以KmD代替Km K1的288bit顺序等分为12份子密钥,在16M的PBS上逻辑建立12个中心对称法序列(实际上并未建立!),中心法子序列自级联采用线性表达式, 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个字节码长度比特,64比特,进入第二轮 整个杂凑输出比特为n位,K1上三轮输出为3*64比特=192比特,四轮输出为4*64比特=256比特,五轮输出为320比特。我们选择四轮。
第二轮f(qλ1,qλ2)输出 四轮输出的比特组成256比特长的字串C1 第四轮各个中心法序列的qa4,qb4,qc4,……,qλ4,以及第三轮的qa3作为下一个K,即K2的预置偏量,定义H1=C1 K2产生C2,H2=g(C2,H1) Hj=g(Cj,Hj_1)2≤j≤m Hm为输出杂凑值,g(x,y)函数中,Cj,Hj_1分别为x和y,输入的x和y都是256bit串,用y串比特与x串比特对应位异或成256比特的串Q0;用y串比特对x串对应比特对应位进行“丢弃法”级联,即当y串比特位是“1”时,输出对应x串的比特位,当y串比特位是“0”时,不输出对应x串的比特位,这样得到一个长d位的比特串M0,长d位的比特串M0不足256比特部分,用Q0逐位填充至256位得到新串,新串循环右移d位,即为g(x,y)函数的输出Hj
具体实施例方式 一 多循环反馈序列法加密 算法 1建立符合标准的L=16M的PBS序列环,以三字节字为主,散乱穿插单字节和双字节字,去除所有的含有全“0”和全“1”比特排列字节字,以单字节字为基本单元,确保PBS上各个单元随机和均匀分布,并确保PBS环上没有连续4个单元码以上相同,没有关于任意一个码的4个单元码以上的对称。
PBS序列为X为PBS环上任意一个地址点ux下标变量x 0≤x≤L-1 若下标表达式x=(A-i)<0,定义x=x+L; 若x=(A+i)>L-1,则定义下标x=x-L 2设立杂化函数f(x,y) 取多项式x2/n1+x/n2的(10进制时)小数点后有效部分6位为整数xZ,xZ mod16M化为三字节字x1x2x3,x1,x2,x3分别为单字节字 取多项式y2/n3+y/n4的(10进制时)小数点后有效部分6位为整数yZ,yZmod16M化为三字节字y1y2y3,y1,y2,y3分别为单字节字 n1=167,n2=193,n3=457,n4=349 x1,x2,x3字分别与对应的y1,y2,y3字,规定每个字的高位4个比特位为字的大端,其余4个比特位为小端,各个对应字大小端互换,互换后的x1,x2,x3和y1,y2,y3组成字串x1x2x3y1y2y3并循环左移三位作为杂化函数f(x,y)的输出. 3.过滤器设置R 对于输入单字节码r1,r2,……,ri,……执行以ri为比较单元,若ri+1≠ri则输出ri,ri+1置换ri为比较单元;若ri+1=ri则计数一次,输出ri,ri+1置换ri为比较单元,若r1+2=ri+1则计数2次,不输出ri+1,r1+2置换ri+1为比较单元,计数复0。
即,比较单元总是后一级替换前一级,只有当比较计数为2时,才不输出比较单元。这样,输出重复码只能一次 4.PBS序列为U0,U1,U2,……,Ux,……UL_1 以地址值X(X为任意地址点)为对称中心的中心法P寻址级联中心法序列,为 qx.i序列qxi=m0UX-qi+m1UX+qi m0,m1为正整数常数,取m0=187,m1=13 式中下标X代表6个子密钥A,B,C,R,V,T,以Zn表示分别为Z1,Z2,Z3,Z4,Z5,Z6下标qi为寻址变量指针P,即PZn.i值 二算法执行 输入一次性会话密钥K为主密钥K0,随后程序自动产生的副密钥为Kj,j≥0并递增1直至设定的最大数jmax,当j=jmax时程序结束. 将Kj等分为6个子密钥,依次为A,B,C,R,V,T,分别表示为Z1,Z2,Z3,Z4,Z5,Z6它们的值即为(1)式中的X下标 j=0,K0时,PKj=j=0 预设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 循环从求qb1即Z2.1开始,i=1此i轮不输出,(L/2≥i≥1) 在(5)式qxi=m0UX-qi+m1Ux+qi中, 下标变量中,令X=B=Z2,qi=PZ2.1 则qb1=qZ2.1=m0UZN-P+m1UZN+P ---其中,下标变量的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)是杂化函数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,当n=6完成后,进入下一轮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,进入下一轮 在PBS上,Ps→Qi Qi通过重复计数过滤器R成为输出码Soi, S码前50个码不作加解密码输出,从第6个码即S开始的连续3个码与当前Kj的第一个子密钥(3个字节)对比,若相同则取向后偏移一个字节的连续3码,继续比对,直至不同,则包含此3码连续取18个字节码为下一轮的副密钥Kj+1,j≥0,定义K0为主密钥,j递增1后循环,当前Kj=K0,获得下一个K为Kj+1=K1 i=L/2=8M时,完成本K轮输出,qai,qai-1,qbi qci,qri,qvi,qti作为下一个副密钥Kj的中心法序列的初始偏置量。
进入下一K轮,即j=j+1;当j=jmax时,程序结束. 三KYMC杂凑算法 1.预设a0,a1,b0,c0,r0,v0,t0,δ0,ε0,ζ0,η0,θ0,λ0初始偏置量,预设寻址时间固定偏量PT0,预设长度L=288bit的字串D0,将明文分成288bit的m个分组K1,K2,……Kj,……,Km,最后的Km不足288bit时,以D0字串逐个比特填充到288比特,称为KmD,以KmD代替Km 以Kj为加密循环体的输入加密密钥,以Kj为288比特分为12个子密钥,记为Z1,Z2,Z3,…,Zn,…,Z12每轮进行12步的运算,每个K运算四轮, 1≤i≤4,算法从i=1,j=1开始1≤j≤m K=1,i=1,循环从第一轮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)式 根据(3.22)式有 指针P=Pzn.i=(i+f(Zn-1.i-1,Zn-1.i)+PK.j)modLZn 2≤n≤12, n递增1直至n=12, 当n=12输出指针P=PZn.i为8个字节码长度比特,64比特进入下一轮,i=i+1 qxi=m0UX-qi+m1UX+qi…………………(5) 下标变量中,令X=Z2,qi=PqZ2·1 则qZ2·1=m0UZ2-p+m1UZ2+p ---其中,下标变量的指针P=PqZ2·1=(i+f(a0,a1)+PKj+)modL/2 (式中,i=1,PKj=j=1) P为8个字节码长度比特,64比特 令i=i+1,进入第二轮 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,……据(3.22)式 当n=12时输出第二组8个字节码,……,一直到i=4时的n=12的输出,进入下一个K,即j=j+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产生C2,H2=g(C2,H1) Hj=g(Cj,Hj-1)2≤j≤m Hm为输出杂凑值,g(x,y)函数中,Cj,Hj_1分别为x和y, 输入的x和y都是256bit串,用y串比特与x串比特对应位异或成256比特的串Q0;用y串比特对x串对应比特对应位进行“丢弃法”级联,即当y串比特位是“1”时,输出对应x串的比特位,当y串比特位是“0”时,不输出对应x串的比特位,这样得到一个长d位的比特串M0,长d位的比特串M0不足256比特部分,用Q0逐位填充至256位得到新串,新串循环右移d位,即为g(x,y)函数的输出Hj 当j=m时,输出Hm=g(Cm,Hm-1),程序结束
权利要求
1.一种在PBS序列基础上,由多个中心法序列构成的多循环反馈序列法加密;
在P-KY加密法的PBS公共序列码环,中心对称法子序列,P级联,构筑海量不同的无规律无周期长序列原理基础上,显著地改变了加密的一些特性,其特征为
1)设置和加入了杂化函数f(x,y),并使上一级子序列的双项qi_1和qi分别为f(x,y)的二元输入而得到寻址指针(主要组成)从而寻得本级子序列的一个项qi;本级又同样通过令qi_1和qi为f(x,y)的二元输入而输出下一级的寻址指针(主要组成)从而寻址找到下一级的qi,进而构成循环;
2)PBS缩短长度以适应放入内存高速运行,严格规定PBS的随机均匀特性并删除全”0”比特和全”1”比特对应的字节,循环输出数据最后在PBS上寻址获得码输出,并设立了过滤器,以过滤重复规律码,使得最终输出无偏和无弱序列片段;
3)在输出码中自动选定副密钥,以使输出循环能有要求的长序列输出,同时对副密钥检测排除相同并设密钥寻址的自增偏量PKj,使得即使子密钥相同,其结果也完全无关,并设置了初始偏量及自动初始偏量,对输出的随机化有重要影响;
4)排除了中心法序列只有异或这一种形式,并给出了一个简单线性表达式,排除了中心法自级联输出只能为一个字节的形式,因而不再需要必须的建立子序列,而只是逻辑上存在子序列,可直接运用数学式运算
2.一种利用多循环反馈序列法加密构筑的杂凑函数KYMC,其特征为
1)利用了P-KY加密原理,运用了多循环反馈序列法加密的基本结构,并且明文分组成的若干等分段是分别依次作为序列法加密的输入密钥,产生有限的固定n位随机输出序列,对这些输出序列进行迭代运算获取杂凑码;
2)输出与输入没有关联,有限的输出码序列长度可以根据要求而调整,
因此更长的n位杂凑输出比特可以轻易实现;
3)KYMC安全强度是基于P-KY海量序列构造原理和多循环反馈序列加密的无关联随机性。
全文摘要
本发明P-KY II多循环反馈序列法加密和KYMC杂凑,在P-KY加密法利用公开公共数据序列PBS而创建的海量种类的,与密钥无关联长序列基础上,解决P-KY加密法的缺陷通过缩短PBS长度并循环反馈而解决实用性问题,通过设立杂化函数并双点寻址级联解决了选定弱密钥特定码攻击可能,通过设立过滤器以及最终在无偏PBS上选码输出避免了弱序列的输出。通过利用P-KY II多循环反馈序列法加密的单向特性和随机输出无关联特性,以及把明文作为多循环反馈序列法加密的输入密钥组构造了KYMC杂凑函数,使之有效地免除对通常杂凑函数的各类攻击。P-KY II多循环反馈序列法加密和KYMC杂凑在密码学方面有着实用性的显著意义。
文档编号H04L9/28GK101430842SQ20071013510
公开日2009年5月13日 申请日期2007年11月8日 优先权日2007年11月8日
发明者姚锡根 申请人:姚锡根
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1