【技术实现步骤摘要】
一种面向散列函数的卷积压缩方法
本专利技术涉及到信息安全领域,具体是一种面向散列函数的卷积压缩方法。
技术介绍
目前,散列算法的研究发展迅速。鉴于MD5及SHA-1等主流散列算法被成功攻破,对称密码学学术界的关注点主要集中在NIST举办的SHA-3竞赛的获胜算法——Keccak算法上。Keccak算法由比利时密码研究组Bertoni等领衔设计,该算法基于新颖的海绵结构,在保证安全强度的同时,兼顾快速软、硬件实现的优势,该海绵结构包含4种截断输出:224、256、384和512。但由于散列算法的运行依赖于计算所需的存储器,尽管基于海绵结构的SHA-3具有很好的硬件实现能力,但为了在实践中避免通用的碰撞搜索,其数据长度为1600位,输出至少224位。这种输出规模在需要高水平和长期安全性的情况下很有意义,但在一些较小安全参数或需要面向硬件的情况下,这种输出规模的内部存储器尺寸又过大。为适应这些受限制的设备,如无源RFID标签,Guo等设计了面向硬件的散列函数族:PHOTON,其输入数据长度512位,输出长度80~256位。PHOTON算法对海绵结构进行了扩展,内部使用类AES的内部置换,保证足够安全强度的同时,灵活地降低了内部存储器的尺寸。但海绵结构在小信息散列情况下,存在挤压过程相对缓慢的问题,主要是挤压过程浪费了硬件面积和计算能力。目前,散列算法中并没有一种很好的结构可以避免浪费计算力,迫切需要一种新的结构,以进一步提高小信息散列的挤压速率。
技术实现思路
针对上述不足,本专利技术提供一种面向散列函数的新型压缩方法,设计了一种新型卷积压缩结构,对数据存储状态进行 ...
【技术保护点】
1.一种面向散列函数的卷积压缩方法,包括消息处理模块、消息填充模块、消息存储模块、初态填充模块、卷积压缩模块、字节替换模块、移位混淆模块、截断压缩模块,其特征在于,卷积压缩方法包含如下步骤:S1:利用消息预处理模块,对输入的消息m进行预处理,生成消息块m1和m2;S2:利用消息填充模块,对预处理后的消息块m1和m2同时进行填充操作:在消息块末尾补111000…01,使填充后的消息块m1’=m1’(1)||m1’(2)||…||m1’(i);m2’=m2’(1)||m2’(2)||…||m2’(i),其中,消息m1’和m2’均为27的整数倍,消息块m1’(1),m1’(2)…m1’(i);m2’(1),m2’(2)…m2’(i)长度均为27,i为正整数;S3:将S2填充后的消息块输入消息存储模块;先将S2填充后的消息块m1’(1)、m2’(1)存到初值为0的输入消息块r中,其中,消息块r是由64个消息块组成,r=p0||p1||…||pn,pn为长8比特的消息块,n∈[0,64),m1’(1)、m2’(1)的存入方式如下:定义消息块r1=p0||p1||…||p15、r2=p32||p3 ...
【技术特征摘要】
1.一种面向散列函数的卷积压缩方法,包括消息处理模块、消息填充模块、消息存储模块、初态填充模块、卷积压缩模块、字节替换模块、移位混淆模块、截断压缩模块,其特征在于,卷积压缩方法包含如下步骤:S1:利用消息预处理模块,对输入的消息m进行预处理,生成消息块m1和m2;S2:利用消息填充模块,对预处理后的消息块m1和m2同时进行填充操作:在消息块末尾补111000…01,使填充后的消息块m1’=m1’(1)||m1’(2)||…||m1’(i);m2’=m2’(1)||m2’(2)||…||m2’(i),其中,消息m1’和m2’均为27的整数倍,消息块m1’(1),m1’(2)…m1’(i);m2’(1),m2’(2)…m2’(i)长度均为27,i为正整数;S3:将S2填充后的消息块输入消息存储模块;先将S2填充后的消息块m1’(1)、m2’(1)存到初值为0的输入消息块r中,其中,消息块r是由64个消息块组成,r=p0||p1||…||pn,pn为长8比特的消息块,n∈[0,64),m1’(1)、m2’(1)的存入方式如下:定义消息块r1=p0||p1||…||p15、r2=p32||p33||…||p47,则新的消息块之后通过一个对应关系,将输入消息块r存入数组,得到新的三维数组B0[x][y][z],其对应关系为:p[4×(4x+y)+z]=B0[x][y][z],其中,x∈[0,4),y∈[0,4),z∈[0,4);S4:将三维数组B0输入到初态填充模块,得到新的三维数组B1[6][6][z],并更新三维数组B1[6][6][z];S5:将更新后的三维数组B1[6][6][z]输入到卷积压缩模块,使用参数矩阵A1、A2对三维数组B1[6][6][z]进行x-y层压缩操作,得到新的三维数组B2[4][4][z];S6:利用字节替换模块,针对B2[4][4][2]中的每一个8比特消息块使用非线性S盒做字节替换操作,得到新的三维数组B3[4][4][2];S7:利用移位混淆模块,先定义S6得到的B3[4][4][2]的组成消息块为q0,q1,…,qn,则B3=q0||q1...||qn,其中,qn为长8比特的消息块,n∈[0,32);对消息块qn进行循环向右移31–Round位的操作,之后通过一个对应关系,将消息块qn存入数组,得到新的三维数组B4[4][4][2],其对应关系为:q[2×(4y+x)+z]=B4[x][y][z]其中,Round表示当前轮数,x∈[0,4),y∈[0,4),z∈[0,2);S8:将新的三维数组B4[4][4][2]输入截断压缩模块,完成压缩。2.根据权利要求1所述的面向散列函数的卷积压缩方法,其特征在于:S1所述预处理方法为:将n比特消息m转换成16进制,分成消息块m1和消息块m2,m=m1||m2;若n为偶数,平均分成消息块m1和消息块m2;若n为奇数,消息块m2长度为(n-1)/2,消息块m1的长度为(n+1)/2。3.根据权利要求1所述的面向散列函数的卷积压缩方法,其特征在于:S4具体包括如下步骤:S4.1:针对消息块三维数组B0[4][4][z],通过...
【专利技术属性】
技术研发人员:韦永壮,刘晓强,武小年,
申请(专利权)人:桂林电子科技大学,
类型:发明
国别省市:广西,45
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。