首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于ARM平台的SM3并行数据加密方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:南京邮电大学

摘要:本发明属于安全密码应用技术领域,公开了一种基于ARM平台的SM3并行数据加密方法,首先使用多线程技术,充分利用了多核CPU的特性,多个线程同时处理多组明文,实现了软件层面的并行化;对消息扩展部分采用NEON指令集并行实现,一次性加载相邻的4个数据到寄存器中,利用并行指令集同时计算;针对压缩函数中的轮函数提出UltraRound的概念,将压缩函数中原本一次需要8个赋值操作的轮函数通过在每轮切换字的输入位置,减少到一次只需要4个赋值操作,实现压缩函数性能的提升。

主权项:1.一种基于ARM平台的SM3并行数据加密方法,其特征在于,包括以下步骤:步骤1、根据CPU核心数获取与其相同数量的待加密的明文;步骤2、创建与CPU核心数相同的线程数目,使每个线程加密一组明文;步骤3、针对每个线程处理的每组明文,进行消息填充;具体为:将明文划分为16个字,用这16个字生成后续的116个字,即;将公式,16≤j≤67中的替换为uint32x4类型的tmp1;其中,tmp1=;将替换为uint32x4类型的tmp2,其中tmp2=;将替换为uint32x4类型的tmp3,其中tmp3=;将替换为uint32x4类型的tmp4,其中tmp4=;将替换为uint32x4类型的tmp5,其中tmp5=;步骤4、将完成消息填充后的明文输入并行消息扩展模块,对每组数据使用NEON指令集并行处理;具体为:设j=4,进行13轮迭代;每轮迭代过程中使用NEON指令集中的vld1q_u32指令一次性从W[j*4-16]处加载4个字到tmp1中;从W[j*4-13]处加载4个字到tmp2中;从W[j*4-9]处加载4个字到tmp3中;从W[j*4-6]处加载4个字到tmp4中;然后利用NEON的veorq_u32指令对tmp1和tmp3进行并行异或计算,同时利用循环左移指令使tmp4左移15位,最后使用vst1q_u32指令将处理好的数据存储到W[j*4]数组中;步骤5、将经过并行消息扩展模块后的明文输入优化后的CF压缩函数模块,通过不断改变字的输入位置减少赋值操作,同时降低循环次数,最终得到加密后的杂凑值;所述CF压缩函数模块包括存储初始值的寄存器A、B、C、D、E、F、G、H,以及存储计算过程中的中间变量的寄存器SS1、SS2、TT1、TT2,通过UltraRound函数循环执行,在UltraRound中实现具体压缩函数部分,同时对布尔函数进行拆分,前4轮循环使用布尔函数1,后15轮循环使用布尔函数2,减少分支判断;其中布尔函数1包括FF1X,Y,Z=XYZ,GG1X,Y,Z=XYZ,布尔函数2包括FF2X,Y,Z=X∧Y∨X∧Z∨Y∧Z,GG2X,Y,Z=X∧Y∨¬X∧Z,其中X、Y、Z均为寄存器中需要计算的值,表示异或运算,∧表示与运算,∨表示或运算,¬表示非运算;所述UltraRound的具体实现步骤为:首先对采用原始压缩函数的流程计算出寄存器SS1,SS2,TT1,TT2的值,然后再将TT1的值赋值给寄存器D,TT2的值经过P_0函数运算后赋值给寄存器H,B的值左移9位后再赋值为寄存器B,F的值左移19位后再赋值为寄存器F,最终得到加密后的杂凑值。

全文数据:

权利要求:

百度查询: 南京邮电大学 一种基于ARM平台的SM3并行数据加密方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。