预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共17页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号(10)申请公布号CNCN103559458103559458A(43)申请公布日2014.02.05(21)申请号201310467782.5(22)申请日2013.10.09(71)申请人广州华迅网络科技有限公司地址510000广东省广州市海珠区金纺路2号广州国际轻纺城D7003b(72)发明人盛先富欧阳敏宁(74)专利代理机构广州华进联合专利商标代理有限公司44224代理人王茹向群(51)Int.Cl.G06F21/64(2013.01)权权利要求书2页利要求书2页说明书10页说明书10页附图4页附图4页(54)发明名称数据散列获取方法及其系统(57)摘要本发明提供一种数据散列获取方法及其系统,首先将待处理数据序列进行数据填充至预定字长,获得数据字序列;将所述数据字序列划分为至少一个子序列,其中,每一所述子序列包括多个数据字;对所述数据字序列执行多轮迭代的数据注入处理;根据迭代后获得的中间值提取部分数据字,组成数据散列值。由于交替采用基于非线性反馈函数的附加式发生器和线性反馈函数的附加式发生器构造轮函数,通过所述轮函数对数据序列进行反馈步进、置换等处理,快速获得可变长、抗碰撞的消息散列值。该系统结构简单,实现速度较快,易于硬件实现,适用于在安卓、Windows等操作系统的嵌入式终端中保护数据完整性。CN103559458ACN1035948ACN103559458A权利要求书1/2页1.一种数据散列获取方法,其特征在于,包括以下步骤:将待处理数据序列进行数据填充至预定字长,获得数据字序列;将所述数据字序列划分为至少一个子序列,其中,每一所述子序列包括多个数据字;对所述数据字序列执行如下的多轮迭代:fori=0tonb-1;S←R(S);其中,i+1为迭代轮数,nb为所述数据字序列包含的子序列的个数,S为每一轮迭代中各个所述子序列的中间值,S的初始值为0,{p16i,p16i+1,p16i+2,…,p16i+15}为第i+1个子序列;FI为注入函数,用于对所述第i+1个子序列执行以下操作:将所述子序列作为循环序列,采用基于线性反馈变换的附加式发生器,按字步进地对其中的每个数据字执行线性反馈变换;R(S)为轮函数,用于对所述第i+1个子序列执行以下操作:将所述子序列作为一个循环序列,采用基于非线性反馈变换的附加式发生器,按字步进地对其中的每个数据字执行非线性反馈变换;对所述子序列包含的数据字,进行按位步进的循环移位变换;再将所述子序列作为循环序列,采用基于线性反馈变换的附加式发生器,按字步进地对其中的每个数据字执行线性反馈变换;根据变换后获得的中间值S提取部分数据字,组成数据散列值。2.如权利要求1所述的数据散列获取方法,其特征在于,所述将待处理数据序列进行数据填充至预定字长,获得数据字序列的步骤包括:如果所述待处理数据序列的数据长度等于16个数据字的整数倍,则直接获取所述待处理数据序列为所述数据字序列;否则,将待处理数据序列进行数据填充至16个数据字的整数倍,获取数据填充后得到的数据序列为所述数据字序列。3.如权利要求2所述的数据散列获取方法,其特征在于,将所述数据字序列划分为至少一个子序列的步骤中,划分的每个所述子序列包含16个数据字。4.如权利要求3所述的数据散列获取方法,其特征在于,每个所述数据字为32位的数据字。5.如权利要求4所述的数据散列获取方法,其特征在于,将所述子序列作为一个循环序列,采用基于线性反馈变换的附加式发生器,按字步进地对其中的每个数据字执行线性反馈变换的步骤包括:将该子序列作为长度为16个数据字的循环序列,采用基于线性反馈变换的附加式发生器:xi=xi-11+xi-13+xi-14+xi-16,按字步进地对所述子序列中的每个数据字执行线性反馈处理。6.如权利要求5所述的数据散列获取方法,其特征在于,将所述子序列作为一个循环序列,采用基于非线性反馈变换的附加式发生器,按字步进地对其中的每个数据字执行非线性反馈变换的步骤包括:将该子序列作为长度为16个数据字的循环序列,采用基于非线性反馈变换的附加式发生器:按字步进地对所述子序列中的每个数据字2CN103559458A权利要求书2/2页执行所述非线性反馈处理。7.如权利要求6所述的数据散列获取方法,其特征在于,对所述子序列包含的数据字,进行按位步进的循环移位变换的步骤包括:对所述子序列中每一个数据字,按照以下移位变换公式:xi=xi>>>((i+1)(i+2)/2mod32),进行按位步进的循环移位变换。8.如权利要求1至7中任意一项所述的数据散列获取方法,其特征在于,根据变换后获得的中间值S提取部分数据字,组成数据散列值之前,进一步包括以下数据混淆的步骤:采用所述轮函数R对所