一种数据处理方法、数据处理装置以及处理器制造方法及图纸

技术编号:14762440 阅读:58 留言:0更新日期:2017-03-03 16:26
一种数据处理方法、数据处理装置以及处理器,该方法包括:获取第i轮第一操作数、第i轮第二操作数和第i轮第三操作数,i为自然数;执行第一指令,第一指令用于对第i轮第一操作数、第i轮第二操作数和第i轮第三操作数进行第i轮迭代压缩运算,得到第i轮目标操作数;将第i轮目标操作数作为第i+1轮第二操作数,并将第i轮第二操作数作为第i+1轮第一操作数,第i+1轮第一操作数和第i+1轮第二操作数用于进行第i+1轮迭代压缩运算。实施本发明专利技术实施例可以提高迭代压缩算法的执行效率。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种数据处理方法、数据处理装置以及处理器
技术介绍
为了满足电子认证服务系统应用需求,国家密码管理局发布了SM3密码杂凑算法,SM3密码杂凑算法用于密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可以满足多种密码应用的安全需求。SM3密码杂凑算法一般以512比特(bit)为一个消息分组,每个消息分组由16个32bit的字构成,针对每一个消息分组,将16个字依据扩展算法生成132个扩展字,将这些扩展字与8个32bit的输入状态字一起经过64轮迭代压缩操作,得到输出结果。迭代压缩算法属于计算密集型操作,每一次迭代循环都包括大量的循环位移、逻辑运算和算数运算等操作,如果使用普通的指令集,需要耗费许多指令才能算出一轮迭代结果,执行效率较低。可见,现有的迭代压缩算法的执行效率低下。
技术实现思路
本专利技术实施例公开了一种数据处理方法、数据处理装置以及处理器,可以提高迭代压缩算法的执行效率。本专利技术实施例第一方面公开一种数据处理方法,包括:获取第i轮第一操作数、第i轮第二操作数和第i轮第三操作数,所述i为自然数;执行第一指令,所述第一指令用于对所述第i轮第一操作数、所述第i轮第二操作数和所述第i轮第三操作数进行第i轮迭代压缩运算,得到第i轮目标操作数;将所述第i轮目标操作数作为第i+1轮第二操作数,并将所述第i轮第二操作数作为第i+1轮第一操作数,所述第i+1轮第一操作数和所述第i+1轮第二操作数用于进行第i+1轮迭代压缩运算。本方案适用于哈希算法(例如,SM3密码杂凑算法),第一指令为单指令多数据流,可以在一条指令中同时执行多个运算。本方案中仅用一条指令(第一指令)即可进行多轮迭代运算,与现有技术中需要采用多条普通指令集相比,可以提高迭代压缩算法的执行效率。结合本专利技术实施例第一方面,在本专利技术实施例第一方面的第一种实现方式中,所述将所述第i轮目标操作数作为第i+1轮第二操作数,并将所述第i轮第二操作数作为第i+1轮第一操作数之后,所述方法还包括:判断所述i是否小于第一预设值;当所述i小于所述第一预设值时,将所述i的值加1,执行所述获取第i轮第一操作数、第i轮第二操作数和第i轮第三操作数的步骤。对于哈希算法而言,迭代轮数不同,使用的算法有可能不同。基于第一指令的迭代压缩运算执行的次数没有达到第一预设次数(第一预设值+1)时,继续执行基于第一指令的迭代压缩运算,即在第一预设次数内使用的算法相同。对于SM3密码杂凑算法而言,前16轮迭代压缩运算与后48轮迭代压缩运算使用不同的算法,则第一预设值为15。结合本专利技术实施例第一方面的第一种实现方式,在本专利技术实施例第一方面的第二种实现方式中,所述方法还包括:当所述i等于或大于所述第一预设值时,获取第j轮第一操作数、第j轮第二操作数和第j轮第三操作数,所述j为大于所述第一预设值并且小于或等于第二预设值的正整数;执行第二指令,所述第二指令用于对所述第j轮第一操作数、所述第j轮第二操作数和所述第j轮第三操作数进行第j轮迭代压缩运算,得到第j轮目标操作数;将所述第j轮目标操作数作为第j+1轮第二操作数,并将所述第j轮第二操作数作为第j+1轮第一操作数,所述第j+1轮第一操作数和所述第j+1轮第二操作数用于进行第j+1轮迭代压缩运算。基于第一指令的迭代压缩运算执行的次数达到预设次数(第一预设值+1)时,执行第二指令的迭代压缩运算。第一次执行第二指令的迭代压缩运算用到的操作数是执行第一指令达到预设次数时产生的“第一预设值+1”轮第一操作数和“第一预设值+1”轮第二操作数。结合本专利技术实施例第一方面的第二种实现方式,在本专利技术实施例第一方面的第三种实现方式中,所述方法还包括:所述将所述第j轮目标操作数作为第j+1轮第二操作数,并将所述第j轮第二操作数作为第j+1轮第一操作数之后,所述方法还包括:判断所述j是否小于所述第二预设值;当所述j小于所述第二预设值时,将所述j的值加1,执行所述获取第j轮第一操作数、第j轮第二操作数和第j轮第三操作数的步骤。基于第二指令的迭代压缩运算执行的次数没有达到第二预设次数(第二预设值-第一预设值)时,继续执行基于第二指令的迭代压缩运算,即在第二预设次数内使用的算法相同。对于SM3密码杂凑算法而言,第二预设值为63。结合本专利技术实施例第一方面的第三种实现方式,在本专利技术实施例第一方面的第四种实现方式中,所述方法还包括:当所述j等于所述第二预设值时,将第j轮第一操作数和第j轮第二操作数输出。本方案仅用两条指令(第一指令和第二指令)即可完成多轮迭代运算,与现有技术中需要采用多条普通指令集相比,可以提高迭代压缩算法的执行效率。对于SM3密码杂凑算法而言,前16轮迭代压缩运算使用第一指令,后48轮迭代压缩运算使用第二指令。本专利技术实施例第二方面公开一种数据处理装置,包括:获取单元,用于获取第i轮第一操作数、第i轮第二操作数和第i轮第三操作数,所述i为自然数;第一执行单元,用于执行第一指令,所述第一指令用于对所述第i轮第一操作数、所述第i轮第二操作数和所述第i轮第三操作数进行第i轮迭代压缩运算,得到第i轮目标操作数;处理单元,用于将所述第i轮目标操作数作为第i+1轮第二操作数,并将所述第i轮第二操作数作为第i+1轮第一操作数,所述第i+1轮第一操作数和所述第i+1轮第二操作数用于所述第一执行单元进行第i+1轮迭代压缩运算。结合本专利技术实施例第二方面,在本专利技术实施例第二方面的第一种实现方式中,所述数据处理装置还包括:第一判断单元,用于在所述处理单元将所述第i轮目标操作数作为第i+1轮第二操作数,并将所述第i轮第二操作数作为第i+1轮第一操作数之后,判断所述i是否小于第一预设值;第一增加单元,还用于当所述i小于所述第一预设值时,将所述i的值加1;所述第一执行单元,还用于当所述第一增加单元将所述i的值加1之后,获取第i轮第一操作数、第i轮第二操作数和第i轮第三操作数。结合本专利技术实施例第二方面的第一种实现方式,在本专利技术实施例第二方面的第二种实现方式中,所述数据处理装置还包括:所述获取单元,还用于当所述i等于或大于所述第一预设值时,获取第j轮第一操作数、第j轮第二操作数和第j轮第三操作数,所述j为大于所述第一预设值并且小于或等于第二预设值的正整数;第二执行单元,用于执行第二指令,所述第二指令用于对所述第j轮第一操作数、所述第j轮第二操作数和所述第j轮第三操作数进行第j轮迭代压缩运算,得到第j轮目标操作数;所述处理单元,还用于将所述第j轮目标操作数作为第j+1轮第二操作数,并将所述第j轮第二操作数作为第j+1轮第一操作数,所述第j+1轮第一操作数和所述第j+1轮第二操作数用于所述第二执行单元进行第j+1轮迭代压缩运算。结合本专利技术实施例第二方面的第二种实现方式,在本专利技术实施例第二方面的第三种实现方式中,所述数据处理装置还包括:第二判断单元,用于在所述处理单元将所述第j轮目标操作数作为第j+1轮第二操作数,并将所述第j轮第二操作数作为第j+1轮第一操作数之后,判断所述j是否小于所述第二预设值;第二增加单元,用于当所述j小于所述第二预设值时,将所述j的值加1;所述第二执行单元,还用于当所述第二增加单元将所述j的值加1之后,获取第j轮第一操作数本文档来自技高网...
一种数据处理方法、数据处理装置以及处理器

【技术保护点】
一种数据处理方法,其特征在于,包括:获取第i轮第一操作数、第i轮第二操作数和第i轮第三操作数,所述i为自然数;执行第一指令,所述第一指令用于对所述第i轮第一操作数、所述第i轮第二操作数和所述第i轮第三操作数进行第i轮迭代压缩运算,得到第i轮目标操作数;将所述第i轮目标操作数作为第i+1轮第二操作数,并将所述第i轮第二操作数作为第i+1轮第一操作数,所述第i+1轮第一操作数和所述第i+1轮第二操作数用于进行第i+1轮迭代压缩运算。

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取第i轮第一操作数、第i轮第二操作数和第i轮第三操作数,所述i为自然数;执行第一指令,所述第一指令用于对所述第i轮第一操作数、所述第i轮第二操作数和所述第i轮第三操作数进行第i轮迭代压缩运算,得到第i轮目标操作数;将所述第i轮目标操作数作为第i+1轮第二操作数,并将所述第i轮第二操作数作为第i+1轮第一操作数,所述第i+1轮第一操作数和所述第i+1轮第二操作数用于进行第i+1轮迭代压缩运算。2.根据权利要求1所述的方法,其特征在于,所述将所述第i轮目标操作数作为第i+1轮第二操作数,并将所述第i轮第二操作数作为第i+1轮第一操作数之后,所述方法还包括:判断所述i是否小于第一预设值;当所述i小于所述第一预设值时,将所述i的值加1,执行所述获取第i轮第一操作数、第i轮第二操作数和第i轮第三操作数的步骤。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:当所述i等于或大于所述第一预设值时,获取第j轮第一操作数、第j轮第二操作数和第j轮第三操作数,所述j为大于所述第一预设值并且小于或等于第二预设值的正整数;执行第二指令,所述第二指令用于对所述第j轮第一操作数、所述第j轮第二操作数和所述第j轮第三操作数进行第j轮迭代压缩运算,得到第j轮目标操作数;将所述第j轮目标操作数作为第j+1轮第二操作数,并将所述第j轮第二操作数作为第j+1轮第一操作数,所述第j+1轮第一操作数和所述第j+1轮第二操作数用于进行第j+1轮迭代压缩运算。4.根据权利要求3所述的方法,其特征在于,所述将所述第j轮目标操作数作为第j+1轮第二操作数,并将所述第j轮第二操作数作为第j+1轮第一操作数之后,所述方法还包括:判断所述j是否小于所述第二预设值;当所述j小于所述第二预设值时,将所述j的值加1,执行所述获取第j轮第一操作数、第j轮第二操作数和第j轮第三操作数的步骤。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:当所述j等于所述第二预设值时,将第j轮第一操作数和第j轮第二操作数输出。6.一种数据处理装置,其特征在于,包括:获取单元,用于获取第i轮第一操作数、第i轮第二操作数和第i轮第三操作数,所述i为自然数;第一执行单元,用于执行第一指令,所述第一指令用于对所述第i轮第一操作数、所述第i轮第二操作数和所述第i轮第三操作数进行第i轮迭代压缩运算,得到第i轮目标操作数;处理单元,用于将所述第i轮目标操作数作为第i+1轮第二操作数,并将所述第i轮第二操作数作为第i+1轮第一操作数,所述第i+1轮第一操作数和所述第i+1轮第二操作数用于所述第一执行单元进行第i+1轮迭代压缩运算。7.根据权利要求6所述的数据处理装置,其特征在于,所述数据处理装置还包括:第一判断单元,用于在所述处理单元将所述第i轮目标操作数作为第i+1轮第二操作数,并将所述第i轮第二操作数作为第i+1轮第一操作数之后,判断所述i是否小于第一预设值;第一增加单元,还用于当所述i小于所述第一预设值时,将所述i的值加1;所述第一执行单元,还用...

【专利技术属性】
技术研发人员:杨胜凯
申请(专利权)人:杭州华为数字技术有限公司
类型:发明
国别省市:浙江;33

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

1