基表变量伪随机序列和杂凑函数.pdf

上传人:大师****2 文档编号:852405 上传时间:2018-03-15 格式:PDF 页数:8 大小:324.96KB
返回 下载 相关 举报
摘要
申请专利号:

CN200810156673.0

申请日:

2008.10.15

公开号:

CN101727772A

公开日:

2010.06.09

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G09C 1/00公开日:20100609|||公开

IPC分类号:

G09C1/00; G09C1/02

主分类号:

G09C1/00

申请人:

姚锡根

发明人:

姚锡根

地址:

214035 江苏省无锡市北塘区新民村377号

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

(1)基表变量伪随机序列BTS预建基表,把144位的密钥K依次拆分为16比特的子密钥Ki(0≤i≤8),每轮的每一步以查表变量取代MD5中固定字和消息子块进行运算,每轮abcd第9步的128位,作为伪随机序列输出。BTS具有MD5的随机性并具有庞大周期,可用同一个密钥K组织多个独立循环体,进行大规模并行运算。(2)基表变量杂凑函数BTH将明文的每一个分组块512比特当作BTS的加密密钥,作4轮16步的运算,每轮第16步abcd输出的128位即h1,h2,h3,h4级联构成这个明文块的256位杂凑值;以每个第16步时abcd和多个查表变量值为下一轮(第四轮的状态为下一个明文块的第一轮)的初始IV。BTH在预防各类攻击时更强大,更具有抗强碰撞的特性。

权利要求书

1: 获取一种伪随机序列的方法----基表变量伪随机序列BTS循环体 BTS运用了MD5杂凑函数的结构,直接采用了其非线性运算处理P函数。与MD5不同的是,BTS是一个使用密钥K创建大周期伪随机系列的循环,其特征为: (1)建立了2个基础序列表PS,QS,将密钥K拆为有序的16位子密钥K 0 ,K 1 ,…,K i ,逐个逐步获得对应查表变量R 0 ,R 1 ,R 2 ,…,R i (R i =P(t 1i )P(t 2i )Q(t 1i )Q(t 2i )),以多层查表变量替代MD5结构中固定字表,消息子块,作为每一步输入。 (2)设立辅助存储变量T 1 ,T 2 ,T 3 ,T 4 ,T 5 依次存储连续的查表变量值。每轮输出为最后一步abcd值,第一轮最后一步abcd定义为y 0 ,同时,最后一步时的abcd值和T 1 ,T 2 ,T 3 ,T 4 ,T 5 值为下一轮的初始IV。 (3)从第二轮开始输出序列,对于j轮输出序列为 (或 ),而不直接给出y j 。 (4)并行运算方法:使用同一密钥K而将初始的T 1 ,T 2 ,T 3 ,T 4 ,T 5 ,W值,(abcd) 0 值任意设置,以获得多个不同的独立循环体,每个独立循环体只需要初始设置互不相同,就可以在同一K下,同时输出独立的伪随机序列。
2: 一种新杂凑函数--基表变量杂凑函数BTH BTH采用了MD5的基本结构:添加比特MD强化,将明文分为512比特分组,采用了MD5处理P函数,寄存器abcd结构,每个消息块512比特经过4轮,每轮16步运算。但BTH与MD5不同,其特征为: (1)BTH把每个消息子块当作BTS中密钥K来处理,每一步是采用BTS循环体的多层查表变量来替代MD5的固定字表,消息子块作为输入。 (2)BTH采用了辅助变量T 1 ,T 2 ,T 3 ,T 4 ,T 5 。每轮的每一步,输入不同层次的查表变量,每轮的最后一步时输出的abcd值h n =(abcd) 15.n (n为轮数,1≤n≤4)以及T 1 ,T 2 ,T 3 ,T 4 ,T 5 同时作为下一轮(或下一个明文块的首轮)的初始IV。 (3)输出杂凑值是256位:

说明书


基表变量伪随机序列和杂凑函数

    技术领域:密码学对称密钥加密,杂凑函数

    背景介绍:

    1).用于加密的基表变量伪随机序列BTS

    BTS基表变量循环体是以变量取代MD5中固定字表,IV,以及消息输入子块,融入了加密密钥K进行运算的循环体,输出大周期伪随机序列。它利用并增强了MD5随机性又具有庞大周期,不依赖于任何预置的IV,因而BTS既可以获得MD5的输出随机性,在计算安全性基础上又可以随意设置IV,用同一个密钥K下组织多个独立循环体,从而可进行大规模并行运算,为加密提供高速和安全的伪随机序列。

    2).用于杂凑的基表杂凑函数BTH

    将明文的每一个分组块512比特当作BTS的加密密钥,作4轮16步的运算,寄存器变量abcd的4个第16步输出的128位,即h1,h2,h3,h4级联构成这个明文块的256位杂凑值;以每个第16步时abcd和连续多个运算过程中的查表变量值为下一轮(第四轮的状态为下一个明文块的)的初始IV。以多层查表变量取代了MD5或SHA的固定字表以及IV设置,并定义为下一轮的初始IV,独特的BTH在预防自由起始端攻击,生日攻击等各类攻击时,比通常的杂凑函数更具有优良的抗碰撞特性。

    发明内容:

    1.基表变量序列BTS

    1.1建立一个公开固定的基础表

    我们以所有不同的单节字为基元,随机乱序排列成总共长度为256B的固定序列表“PBS”,

    将PBS基础表放在连续的物理内存中,它是只读顺序表,因而,对于此表上的任意一个数据单

    元,都可以随机读取。

    实际建立独立的2个PBS基础表,“PS”和“QS”

    用P(t)来表示在PS上查表获得单字节基元,t为对应基元的地址;

    用Q(t)来表示在QS上查表获得单字节基元,t为对应基元的地址;

    要求:PS和QS上的基元分布随机均匀,且对于任意一个t(0≤t≤255),有P(t)≠Q(t)

    1.2定义基元项Ri

    密钥K为144比特长,拆分为16比特的子密钥K0,K1,…,Ki,…,K8

    Ri是由四个8比特基元P(t1i),P(t2i),Q(t1i),Q(t2i)串接构成的32比特字Ri=P(t1i)P(t2i)Q(t1i)Q(t2i)是以16位子密钥产生的32位的特定字,可排除规律的特殊的比特排列,例如Ri≠0

    1.3利用MD5形式,主寄存器运算器变量ABCD

    和MD5一样,由4个32比特的寄存器A,B,C,D组成的累加器,a,b,c,d代表这4个寄存器变量组成abcd,进行运算并存储运算结果)。

    初始化后,输入Ri及其他输入项,每轮进行9步的移位和累加运算,输出128比特。

    1.4基表变量序列BTS算法

    (以下所有加法为模加,“←”表示同时赋值,“<<<”为循环左移。)

    初始化:abcd=N0 R-1=N1,R-2=N2,R-3=N3,R-4=N4,R-4=N5,常量W=N6其中N0,N1,N2,N3,N4,N5,N6

    为6个给定的32比特常量,N0为给定的128比特常量

    整型变量i,j  步数i(0≤i≤8),设定最大轮数jmax。

    每一轮共9步,每一步输入Ki获得Ri后,输入为abcd,Ri,Ri-5

    对于j轮,第i步0≤i≤8(0≤j≤jmax)

    (1)第j轮第i步开始时,abcd记为(abcd)i。j,abcd中32比特的b顺序写为4个8比特的s1,s2和q1,q2,子密钥16比特Ki写为2个8比特的K1i,K2i

    t1i=q1i+i+j+K1i (8位模加)

    t2i=q2i+i+j+K2i (8位模加)

    Ri。j=P(t1i)P(t2i)Q(t1i)Q(t2i)

    b=b+(Ri-4。j<<<(i+1)+W)<<<(s1mod32)(加法为32位模加)

    a=a+(ProcessPi(b,c,d)+Ri。j+b)<<<(s2mod32)(ProcessPi(b,c,d)为处理P函数,见后)(加法为32位模加)

    (a,b,c,d)←(d,a,b,c)(同时赋值)此时abcd即为(abcd)i+1。j

    (2)(abcd)8。j为j轮的yj,

    j+1轮的初始化:令(abcd)0。j+1=(abcd)8。j;

    (R-5,j+1,R-4,j+1R-1,R-3,j+1,R-2,j+1,R-1,j+1)←(R4,j R5,j R6,j R7,j R8,j);(同时赋值)

    j=0时,获得y0,1≤j起输出Yj为输出序列

    j+1,进入下轮

    ……,

    直至j=jmax,结束

    2.基表变量循环体构造的杂凑函数BTH

    将明文的一个512分组当作基表变量循环体的密钥K,把基表变量循环体稍作改动,就可以构成一个新杂凑函数BTH。进行MD强化后,明文总共m个512位分组,我们用K1K2,……Kj,……,Km来表示各个分组

    每个分组为512比特,依次拆为32比特的Ki。j 其中0≤i≤15,1≤j≤m

    每个明文分组进行4轮,各16步的运算,每轮的第16步的(abcd)15输出128比特,分别记为h1,h2,h3,h4h1,h2串接成256比特,h1||h2,||为级联符号,表示位异或,<<<表示循环左移,←表示同时赋值。

    Hj=((h1||h2)⊕(h3||h4))⊕Hj-1]]>为256比特

    当j=m时,最终的Hm为整个明文的杂凑值。预定义H0值杂凑时的Ri定义:

    第i步,abcd中32比特的b顺序写为4个8比特的q1,q2,q3,q4明文分组Kj的第i+1个32比特的ki。j拆为8比特的k1i,k2i,k3i,k4i

    t1i=q1+i+j+k1i (8位模加)

    t2i=q2+i+j+k2i (8位模加)

    t3i=q3+i+j+k3i (8位模加)

    t4i=q4+i+j+k4i (8位模加)

    其中ri=P(t1i)P(t2i)Q(t3i)Q(t4i)

    (1)第j分组第n轮第i步开始时,(1≤n≤4)

    Ri.n=ki-1.n⊕(P(t1i)P(t2i)Q(t3i)Q(t4i))]]>

    b=b+(T1+W)<<<(q1mod32);

    (T1,T2,T3,T4,T5)←(T2,T3,T4,T5,Ri.n<<<(i+1))此为(T1,T2,T3,T4,T5)i.n

    a=a+(ProcessPi(b,c,d)+Ri.n+b)<<<(q2mod32)

    (a,b,c,d)←(d,a,b,c)此为(abcd)i.n

    (2)n+1轮的初始化:

    (abcd)0.n+1=(abcd)15.n;

    (T1,T2,T3,T4,T5)0.n+1=(T1,T2,T3,T4,T5)15.n

    即:n轮最后一步abcd和T1,T2,T3,T4,T5的状态,为n+1轮的初始状态。

    hn=(abcd)15.n

    n=n+1,…,直到n=4时,得到h4

    Hj=((h1||h2)⊕(h3||h4))⊕Hj-1]]>

    (3)j+1分组的初始状态(i=0,n=1)为j分组最后一轮最后一步(i=15,n=4)的状态:

    (abcd)0.1.j+1=(abcd)15.4.j

    (T1,T2,T3,T4,T5)0.1.j+1=(T1,T2,T3,T4,T5)15.4.j

    j=j+1,

    ……,

    一直到j=m,求出Hm

    【具体实施方式】

    以所有不同的单节字为基元,随机乱序排列成总共长度为256B的固定序列表“PBS”

    建立独立的2个PBS基础表,“PS”和“QS”

    用P(t)来表示在PS上查表获得单字节基元,t为对应基元地地址;

    用Q(t)来表示在QS上查表获得单字节基元,t为对应基元的地址;

    要求:PS和QS上的基元分布随机均匀,且对于任意一个t(0≤t≤255),有P(t)≠Q(t)

    定义N0,N1,N2,N3,N4,N5,N6为6个给定的32比特常量,N0为给定的128比特常量。

    设置4个32比特的寄存器A,B,C,D组成的累加器,a,b,c,d代表这4个寄存器变量组成abcd,进行运算并存储运算结果。设置辅助的5个寄存器变量T1,T2,T3,T4,T5,每个为32比特.定义一个32比特的固定字W。

    所有加法为模加,“←”表示同时赋值,“<<<”为循环左移,表示对应位异或,所有变量为整形变量。

    1)对于基表变量序列BTS

    密钥K为144比特长,拆分为16比特的子密钥K0,K1,…,Ki,…,K8初始化时,T1=N1,T2=N2,T3N3,T4=N4,T5=N5,常量W=N6(abcd)0=N0变量i,j

    步数i(0≤i≤8),设定最大轮数jmax。

    每一轮共9步,每一步输入Ki获得Ri后,输入为abcd,Ri,T1算法

    对于j轮,第i步0≤i≤8(0≤j≤jmax)

    (1)第j轮第i步开始时,abcd记为(abcd)i。j,abcd中32比特的b顺序写为4个8比特的s1,s2和q1,q2,子密钥16比特Ki写为2个8比特的K1i,K2i

    t1i=q1i+i+j+K1i (8位模加)

    t2i=q2i+i+j+K2i (8位模加)

    定义Ri是由四个8比特基元P(t1i),P(t2i),Q(t1i),Q(t2i)串接构成的32比特字

    Ri。j=P(t1i)P(t2i)Q(t1i)Q(t2i)

    b=b+(T1+W)<<<(s1mod32);(加法为32位模加)

    (T1,T2,T3,T4,T5)←(T2,T3,T4,T5,Ri。j<<<(i+1))此为(T1,T2,T3,T4,T5)i。j

    a=a+(ProcessPi(b,c,d)+Ri。j+b)<<<(s2mod32)(ProcessP1(b,c,d)为处理P函数,见后)

    (a,b,c,d)←(d,a,b,c)(同时赋值)此时abcd即为(abcd)i+1。j

    (2)j+1轮的初始化:

    (abcd)0。j+1=(abcd)8。j,(T1,T2,T3,T4,T5)0。j+1=(T1,T2,T3,T4,T5)8。j

    即:j轮最后一步abcd和T1,T2,T3,T4,T5的状态,为j+1轮的初始状态。

    (3)(abcd)8。j为j轮的yj,

    j=0时,获得y0,1≤j起输出Yj为输出序列

    j+1,进入下轮

    ……,

    直至j=jmax,结束

    (4)ProcessPi(b,c,d)处理P函数:

    i=0,1,2时:ProcessPi=(bANDc)OR((NOTb)AND(d))

    i=3,4,5时:ProcessPi=(bANDd)OR(cAND(NOTd))

    i=6,7,8,时:ProcessPi=bXORcXORd

    2).基表变量循环体构造的杂凑函数BTH

    将明文分成每个为512比特的分组,并进行MD强化:

    原明文长度x,在明文后添加b比特(添加第一个比特为1,后面接着添加b-1个0),使得添加后的长度x+b=512m-64(m是正整数)b≤512,若x=512m-64,则b=512。最后的明文块b比特后再加上64位长度值xmod264。这样明文总共m个512位分组,我们用K1,K2,……Kj,……,Km来表示各个分组

    每个分组为512比特,依次拆为32比特的Ki。j其中0≤i≤15,1≤j≤m

    每个明文分组进行4轮,各16步的运算,每轮的第16步的(abcd)15输出128比特,分别记为h1,h2,h3,h4

    h1||h2表示h1,h2串接成256比特,h3||h4表示h3,h4串接成256比特,“||”为级联符号,表示对应比特位异或运算

    Hj=((h1||h2)⊕(h3||h4))⊕Hj-1]]>为256比特

    当j=m时,最终的Hm为整个明文的杂凑值。预定义H0值,设置5个辅助的寄存器变量

    T1,T2,T3,T4,T5,每个为32比特。定义变量i,j,n,

    (1)初始化设置以及杂凑时的Ri定义:

    第一个明文块首轮第一步(j=0,n=0,i=0)

    初始化:T1=N1,T2=N2,T3=N3,T4=N4,T5=N5,常量W=N6(abcd)0=N0第i步,abcd中32比特的b顺序写为4个8比特的q1,q2,q3,q4明文分组Kj的第i+1个32比特的ki。j拆为8比特的k1i,k2i,k3i,k4i

    t1i=q1+i+j+k1i (8位模加)

    t2i=q2+i+j+k2i  (8位模加)

    t3i=q3+i+j+k3i (8位模加)

    t4i=q4+i+j+k4i (8位模加)

    定义ri是由四个8比特基元P(t1i),P(t2i),Q(t3i),Q(t4i)串接构成的32比特字

    ri=P(t1i)P(t2i)Q(t3i)Q(t4i)

    (2)算法

    (i)对于第j分组第n轮第i步(1≤n≤4,0≤i ≤8)

    Ri.n=ki-1.n⊕(P(t1i)P(t2i)Q(t3i)Q(t4i))]]>

    b=b+(T1+W)<<<(q1mod32);

    (T1,T2,T3,T4,T5)←(T2,T3,T4,T5,Ri.n<<<(i+1))此为(T1,T2,T3,T4,T5)i.n

    a=a+(ProcessPi(b,c,d)+Ri.n+b)<<<(q2mod32)

    (a,b,c,d)←(d,a,b,c)此为(abcd)i.n

    (ii)(abcd)0.n+1=(abcd)15.n;

    (T1,T2,T3,T4,T5)0.n+1=(T1,T2,T3,T4,T5)15.n

    即:n+1轮的初始状态为n轮最后一步abcd和T1,T2,T3,T4,T5的状态。

    hn=(abcd)15.n

    直到n=4时,分别得到h1,h2,h3,h4

    Hj=((h1||h2)⊕(h3||h4))⊕Hj-1]]>

    (iii)j+1分组的初始状态(i=0,n=1)为j分组最后一轮最后一步(i=15,n=4)的状态:

    (abcd)0.1.j+1=(abcd)15.4.j

    (T1,T2,T3,T4,T5)0.1.j+1=(T1,T2,T3,T4,T5)15.4.j

    j=j+1,

    ……,

    一直到j=m,求出Hm

    (iv)ProcessPi(b,c,d)同MD5

    n=1时,ProcessPi(b,c,d)=(bANDc)OR((NOTb)AND(b))

    n=2时,ProcessPi(b,c,d)=(bANDd)OR(cAND(NOTd))

    n=3时,ProcessPi(b,c,d)=bXORcXORd

    n=4时,ProcessPi(b,c,d)=cXOR(bOR(NOTd))。

基表变量伪随机序列和杂凑函数.pdf_第1页
第1页 / 共8页
基表变量伪随机序列和杂凑函数.pdf_第2页
第2页 / 共8页
基表变量伪随机序列和杂凑函数.pdf_第3页
第3页 / 共8页
点击查看更多>>
资源描述

《基表变量伪随机序列和杂凑函数.pdf》由会员分享,可在线阅读,更多相关《基表变量伪随机序列和杂凑函数.pdf(8页珍藏版)》请在专利查询网上搜索。

(1)基表变量伪随机序列BTS预建基表,把144位的密钥K依次拆分为16比特的子密钥Ki(0i8),每轮的每一步以查表变量取代MD5中固定字和消息子块进行运算,每轮abcd第9步的128位,作为伪随机序列输出。BTS具有MD5的随机性并具有庞大周期,可用同一个密钥K组织多个独立循环体,进行大规模并行运算。(2)基表变量杂凑函数BTH将明文的每一个分组块512比特当作BTS的加密密钥,作4轮16步的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 教育;密码术;显示;广告;印鉴


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1