预览加载中,请您耐心等待几秒...
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)申请公布号CN115525341A(43)申请公布日2022.12.27(21)申请号202211280182.3(22)申请日2022.10.19(71)申请人上海高性能集成电路设计中心地址201210上海市浦东新区张江高科技园区毕升路399号(72)发明人陈子钰何军杨剑新李媛蒋生健范好好(74)专利代理机构上海泰博知识产权代理有限公司31451专利代理师钱文斌(51)Int.Cl.G06F9/38(2006.01)G06F9/30(2006.01)G06F21/60(2013.01)权利要求书2页说明书10页附图4页(54)发明名称一种MD5信息摘要算法的加速方法及指令集处理器(57)摘要本发明涉及一种MD5消息摘要算法的加速方法及指令集处理器,所述方法基于MD5轮函数迭代指令,通过流水执行所述MD5轮函数迭代指令实现两个不相关的MD5消息摘要算法的并行加速;所述MD5轮函数迭代指令采用RISC架构,用于根据源操作数执行MD5消息摘要算法中任意一次消息处理轮函数迭代;所述MD5轮函数迭代指令采用MD5轮函数并行算法,以两组不相关的MD5消息摘要算法的16字消息分组处理过程中的中间迭代变量、消息字和轮迭代序号为输入,并行完成两组数据各自的MD5轮函数迭代,并将结果按规定形式输出。所述指令集处理器支持所述MD5轮函数迭代指令流水执行。CN115525341ACN115525341A权利要求书1/2页1.一种MD5信息摘要算法的加速方法,其特征在于,基于MD5轮函数迭代指令,通过流水执行所述MD5轮函数迭代指令实现两个数据不相关的MD5消息摘要算法的并行加速;所述MD5轮函数迭代指令采用RISC架构,指令采用定长的32位格式,具有三个256位的源操作数,一个256位的目标操作数,用于根据源操作数执行MD5消息摘要算法中任意一次消息处理轮函数迭代;所述MD5轮函数迭代指令采用MD5轮函数并行算法,所述MD5轮函数并行算法是指以两组数据不相关的MD5消息摘要算法的16字消息分组处理过程中的中间迭代变量、消息字和轮迭代序号为输入,并行完成两组数据各自的MD5轮函数迭代,并将迭代结果按规定形式输出的算法。2.根据权利要求1所述的MD5信息摘要算法的加速方法,其特征在于,所述通过流水执行所述MD5轮函数迭代指令实现两个数据不相关的MD5消息摘要算法的并行加速具体包括以下步骤:(1)将MD5消息摘要算法的中间迭代变量的初值以{D1,C1,B1,A1,D0,C0,B0,A0}的格式装入寄存器文件、将经过位填充和长度填充的两个数据不相关的消息中的消息字按{192’b0,W1,j,W0,j}的形式装入所述寄存器文件,将两个数据不相关的轮迭代序号以{192’b0,Row1,Row0}的形式装入所述寄存器文件;(2)以寄存器文件中的迭代变量的初值{D1,C1,B1,A1,D0,C0,B0,A0}、两个数据不相关的消息中的消息字{192’b0,W1,j,W0,j}、两个数据不相关的轮迭代序号{192’b0,Row1,Row0}为(1)(1)(1)(1)源操作数执行第1条MD5轮函数迭代指令,生成MD5中间迭代变量{C1,B1,A’1,D1,C(1)(1)(1)(1)0,B0,A’0,D0};(3)依次流水执行下一条MD5轮函数迭代指令,每次将上一条MD5轮函数迭代指令的执(i‑1)(i‑1)(i‑1)(i‑1)(i‑1)(i‑1)(i‑1)(i‑1)行结果{C1,B1,A’1,D1,C0,B0,A’0,D0}更新为下一条指令的源操作数A,从寄存器文件读取已更新消息字和迭代序号的寄存器Vb和寄存器Vc中的数据作为新的源操作数B和源操作数C,完成两个数据不相关的MD5消息摘要算法中的16字消息分(64)(64)(64)(64)(64)组的2~64轮函数迭代处理,最终得到MD5中间迭代变量{C1,B1,A’1,D1,C0,B(64)(64)(64)0,A’0,D0};(64)(64)(4)并行分别完成MD5中间迭代变量求和,得到MD5中间迭代变量{D1+D1,C1+C1,B1+(64)(64)(64)(64)(64)(64)B1,A1+A’1,D0+D0,C0+C0,B0+B0,A0+A’0};(5)如果输入的消息中还包括未处理的16字消息分组,以所述步骤(4)中得到的MD5中间迭代变量为下一个16字消息分组处理的迭代初值,继续循环执行步骤(2)‑(4),直至处理完消息中的最后一个16字消息分组,得到执行结果{D1,C1,B1,A1,D0,C0,B0,A0};(6)将所述执行结果{D1,C1,B1,A1,D0,C0,B0,A0}输出,完成两组数据不相关的MD5消息摘要算法的执行,得到两组不相关的消息的摘要值。