一种基于Sponge结构的轻量级哈希函数构造方法技术

技术编号:17413373 阅读:67 留言:0更新日期:2018-03-07 09:14
本发明专利技术公开了一种基于Sponge结构的轻量级哈希函数构造方法,该Sponge结构为迭代结构,其内部操作为压缩函数,具体方法为:将预处理后的消息通过多轮压缩函数迭代完成吸收操作,即将不定长的消息变为定长的中间状态;再将中间状态通过多轮压缩函数迭代,每轮输出一个子串,拼接成定长的消息摘要。本发明专利技术的一种基于Sponge结构的轻量级哈希函数构造方法所构造的哈希函数既有安全保证又满足轻量化需求。

A lightweight hash function construction method based on Sponge structure

The invention discloses a lightweight hash function construction method based on Sponge structure, the Sponge structure for the iterative structure, its internal operation for the compression function, concrete method is as follows: after pretreatment of the message through several rounds of iterative compression function complete absorption operation, will not set long messages into the intermediate state of fixed length; in the middle state through several rounds of iterative compression function, each round of output substring, spliced into a fixed length message digest. The hash function constructed by the lightweight hash function based on the Sponge structure has both security and lightweight requirements.

【技术实现步骤摘要】
一种基于Sponge结构的轻量级哈希函数构造方法
本专利技术属于信息安全
,涉及一种基于Sponge结构的轻量级哈希函数构造方法。
技术介绍
随着物联网技术(InternetofThings,IOT)的高速发展,其存在的安全隐私问题也越发受到人们重视。作为应对安全威胁及进行身份识别、鉴定消息完整性的Hash函数在射频识别系统(RadioFrequencyIdentification,RFID),无线传感器网络(WirelessSensorNetwork,WSN)等资源受限场景下也面临着新的要求与挑战。资源受限环境下的硬件只有很小的存储空间和有限的计算能力,这就要求应用其中的Hash算法除了提供一定的安全保证外还需要满足轻量化需求。Hash函数的轻量化可以是设计全新的Hash函数也可以是对现有Hash的轻量化改进,其中将轻量化加密算法应用到Hash函数的设计中也是密码学领域中的一个重要方向。
技术实现思路
本专利技术的目的是提供一种基于Sponge结构的轻量级哈希函数构造方法,所构造的哈希函数既有安全保证又满足轻量化需求。本专利技术所采用的技术方案是,一种基于Sponge结构的轻量级哈希函数构造方法,该Sponge结构为迭代结构,其内部操作为压缩函数,具体方法为:将预处理后的消息通过多轮压缩函数迭代完成吸收操作,即将不定长的消息变为定长的中间状态;再将中间状态通过多轮压缩函数迭代,每轮输出一个子串,拼接成定长的消息摘要。本专利技术的特征还在于,Sponge结构的具体参数设置为:吞吐率r=8bit,容量c=56bit,置换长度b=64bit,消息摘要长度为64bit,拥有64bit的内存状态。具体方法按照以下步骤实施:步骤1、消息预处理首先将输入的文本消息转换为对应的ASCII码,再将对应的ASCII码转换为对应的二进制数据,然后进行填充操作:在消息后面填充一个1,然后填充若干个0,使消息长度为r的最小整数倍,并将内存状态的初始值设为0;步骤2、消息吸收处理将经步骤1预处理后的消息通过压缩函数的多轮迭代完成吸收,具体为:步骤2.1、首先将预处理后的消息分为r=8bit一组,共S组,第一个分组的r=8bit位数据与初始内存状态的前r=8bit位0进行异或运算,与剩下初始内存状态的c=56bit位0拼接在一起通过压缩函数运算得到64bit中间状态;步骤2.2、将中间状态的前8位与预处理消息的第二个分组进行异或运算,与剩下中间状态的56bit数据拼接在一起再次通过压缩函数进行运算,依次进行计算直到S组预处理消息运算完毕,完成吸收操作,将不定长的消息变为定长的中间状态;步骤3、压缩函数处理每轮压缩处理时首先将输入的定长的中间状态与产生的轮密钥进行轮密钥加Substitution(·)操作,再通过非线性置换层Substitution(·)进行非线性置换,然后进行移位操作RotateNibbles(·),再通过线性置换层Permutation(·)进行线性置换,最后将轮密钥与本轮轮数通过密钥生成算法进行轮密钥的更新,本轮处理结束,进入下轮迭代,依次迭代i轮,i表示轮数,完成压缩函数处理,得到经压缩函数处理的中间状态。步骤4、消息挤压处理将经过步骤2消息吸收处理后的定长的中间状态取前r=8bit数据为第一个子串H0,然后将经过步骤3处理得到的经压缩函数处理的中间状态再次取前8bit数据为第二个子串H1,依次进行处理得到8个子串,拼接到一起即为最后的64bit消息摘要。步骤3中的轮密钥的生成算法采用典型的Feistel结构,将迭代轮数Nr作为变量参与运算,密钥更新流程如下:ski+1[0]=ski[5];ski+1[1]=ski[6];ski+1[2]=ski[7]⊕Nr;ski+1[3]=ski[4];ski+1[4]=ski[1]⊕ski[5];ski+1[5]=sbox[ski[2]⊕ski[6]];ski+1[6]=sbox[ski[3]⊕ski[7]];ski+1[7]=ski[0]⊕ski[4];其中,ski[n]表示第i轮密钥的第n个字节,⊕表示异或运算,sbox[·]表示用s盒对数据进行非线性变换。轮密钥加后的定长的中间状态通过Substitution(·)层进行非线性置换,Substitution(·)层采用16个并行相同的s盒,s盒为Klein中的4位s盒。RotateNibbles(·)操作是将通过Substitution(·)层的数据左移16bit。Permutation(·)层使用位排列置换。本专利技术的有益效果是,本专利技术基于Sponge结构的轻量级哈希函数构造方法,基于Sponge结构,并将改进的Klein算法应用到轮迭代的压缩函数中,并做了面向字节优化,在兼顾算法安全性的同时拥有更好的软硬件实现效率,更适合资源受限环境的特殊需求。附图说明图1是Sponge结构框图;图2是基于Sponge结构的轻量级哈希函数结构框图;图3是压缩函数结构框图。具体实施方式下面结合具体实施方式对本专利技术进行详细说明。本专利技术一种基于Sponge结构的轻量级哈希函数构造方法,该Sponge结构为迭代结构,其内部操作为压缩函数,具体方法为:将预处理后的消息通过多轮压缩函数迭代完成吸收操作,即将不定长的消息变为定长的中间状态;再将中间状态通过多轮压缩函数迭代,每轮输出一个子串,拼接成定长的消息摘要。Sponge结构的具体参数设置为:吞吐率r=8bit,容量c=56bit,置换长度b=64bit,消息摘要长度为64bit,拥有64bit的内存状态。具体方法按照以下步骤实施:步骤1、消息预处理首先将输入的文本消息转换为对应的ASCII码,再将对应的ASCII码转换为对应的二进制数据,然后进行填充操作:在消息后面填充一个1,然后填充若干个0,使消息长度为r的最小整数倍,并将内存状态的初始值设为0;例如当消息长度length对r取余值为1时,填充的值为“100000000”。步骤2、消息吸收处理将经步骤1预处理后的消息通过压缩函数的多轮迭代完成吸收,具体为:步骤2.1、首先将预处理后的消息分为r=8bit一组,共S组,第一个分组的r=8bit位数据与初始内存状态的前r=8bit位0进行异或运算,与剩下初始内存状态的c=56bit位0拼接在一起通过压缩函数运算得到64bit中间状态;步骤2.2、将中间状态的前8位与预处理消息的第二个分组进行异或运算,与剩下中间状态的56bit数据拼接在一起再次通过压缩函数进行运算,依次进行计算直到S组预处理消息运算完毕,完成吸收操作,将不定长的消息变为定长的中间状态;步骤3、压缩函数处理压缩函数的设计借鉴了Klein算法的思想,并对其进行优化,使之更契合“轻量化”的设计目标,主流程可描述为:fori=1toNrdoAddRoundKey(STATE,ski);Substitution(STATE);RotateNibbles(STATE);Permutation(STATE);ski+1=KeySchedule(ski,i);其中i表示轮数,STATE表示中间状态,ski表示轮密钥,Nr为迭代轮数。每轮压缩处理时首先将输入的定长的中间状态与产生的轮密钥进行轮密钥加Substitution(·)操作,再通本文档来自技高网...
一种基于Sponge结构的轻量级哈希函数构造方法

【技术保护点】
一种基于Sponge结构的轻量级哈希函数构造方法,其特征在于,该Sponge结构为迭代结构,其内部操作为压缩函数,具体方法为:将预处理后的消息通过多轮压缩函数迭代完成吸收操作,即将不定长的消息变为定长的中间状态;再将中间状态通过多轮压缩函数迭代,每轮输出一个子串,拼接成定长的消息摘要。

【技术特征摘要】
1.一种基于Sponge结构的轻量级哈希函数构造方法,其特征在于,该Sponge结构为迭代结构,其内部操作为压缩函数,具体方法为:将预处理后的消息通过多轮压缩函数迭代完成吸收操作,即将不定长的消息变为定长的中间状态;再将中间状态通过多轮压缩函数迭代,每轮输出一个子串,拼接成定长的消息摘要。2.根据权利要求1所述的一种基于Sponge结构的轻量级哈希函数构造方法,其特征在于,所述Sponge结构的具体参数设置为:吞吐率r=8bit,容量c=56bit,置换长度b=64bit,消息摘要长度为64bit,拥有64bit的内存状态。3.根据权利要求2所述的一种基于Sponge结构的轻量级哈希函数构造方法,其特征在于,所述具体方法按照以下步骤实施:步骤1、消息预处理首先将输入的文本消息转换为对应的ASCII码,再将对应的ASCII码转换为对应的二进制数据,然后进行填充操作:在消息后面填充一个1,然后填充若干个0,使消息长度为r的最小整数倍,并将内存状态的初始值设为0;步骤2、消息吸收处理将经步骤1预处理后的消息通过压缩函数的多轮迭代完成吸收,具体为:步骤2.1、首先将预处理后的消息分为r=8bit一组,共S组,第一个分组的r=8bit位数据与初始内存状态的前r=8bit位0进行异或运算,与剩下初始内存状态的c=56bit位0拼接在一起通过压缩函数运算得到64bit中间状态;步骤2.2、将中间状态的前8位与预处理消息的第二个分组进行异或运算,与剩下中间状态的56bit数据拼接在一起再次通过压缩函数进行运算,依次进行计算直到S组预处理消息运算完毕,完成吸收操作,将不定长的消息变为定长的中间状态;步骤3、压缩函数处理每轮压缩处理时首先将输入的定长的中间状态与产生的轮密钥进行轮密钥加Substitution(·)操作,再通过非线性置换层Substitution(·)进行非线性置换,然后进行移位操作RotateNibbles(·),再通过线性置换层Perm...

【专利技术属性】
技术研发人员:赵太飞尹航郭嘉文李永明雷洋飞
申请(专利权)人:西安理工大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1