[发明专利]一种加速安全散列算法的加速器有效
申请号: | 202010474004.9 | 申请日: | 2020-05-29 |
公开(公告)号: | CN111738703B | 公开(公告)日: | 2023-06-02 |
发明(设计)人: | 范志华;吴欣欣;李文明;安学军;叶笑春;范东睿 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06Q20/06 | 分类号: | G06Q20/06;G06Q20/38 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 加速 安全 算法 加速器 | ||
1.一种用于安全散列算法的加速器,包括:存储模块、PE运算模块、任务划分模块、算法映射模块,其中,
所述存储模块负责存储待运算的数据;
所述PE运算模块由多个PE单元组成,负责对存储模块中的数据进行运算,每个所述PE单元内部具有对应SHA指令集的数据通路和流水线结构;
所述任务划分模块,用于将所述安全散列算法的初始指令文件进行任务划分,生成多任务的数据流图,其中所述初始指令文件包含所述SHA指令集的指令,每个所述任务划分为一个或者多个子任务;
所述算法映射模块,根据所述多任务的数据流图将各个所述任务的子任务映射到对应的所述PE单元,
所述算法映射模块用于根据需要使用的PE个数k以及每个PE单元映射的子任务数n计算每个任务的初始子任务计算节点对应的PE序号fi,计算每个任务的各个子任务对应的PE序号,以及根据每个子任务对应的PE序号将指令传输至相应PE;其中,k值由确定,n由确定,fi由i mod k确定,每个子任务对应的PE序号由fi+j/n确定,J表示每个计算任务被划分为J个子任务,K表示PE阵列有K个可用PE单元,i表示第i个任务,j表示第j个子任务,表示向上取整。
2.根据权利要求1所述的加速器,还包括编译器,所述编译器用于将高级语言程序翻译为所述初始指令文件。
3.根据权利要求1所述的加速器,还包括控制模块,用于控制所述存储模块、PE运算模块、任务划分模块以及算法映射模块的操作,并用于生成所述存储模块、PE运算模块、任务划分模块以及算法映射模块之间的数据传输的路由信息。
4.根据权利要求1所述的加速器,所述SHA指令集还包含如下SHA专用指令格式:
该指令完成的功能是:(Ax)^(By)^(Cz),其中,表示向右移位,^表示按位异或。
5.根据权利要求1所述的加速器,所述安全散列算法包括SHA1、SHA-224、SHA-256、SHA-384以及SHA-512。
6.根据权利要求1所述的加速器,所述任务划分模块用于读取PE阵列的配置信息,生成约束条件,根据约束条件计算划分的子任务数以及子任务的指令数阈值,根据计算得到的子任务数和子任务指令数阈值将初始指令文件划分为多个子任务文件。
7.根据权利要求6所述的加速器,所述任务划分模块还用于判断划分是否满足逻辑寄存器数量的约束,以及添加数据流流动指令后是否超过指令数阈值,如若不满足,则根据受限约束条件重新调整子任务数和子任务指令数阈值,对初始指令文件进行划分;如若满足,则根据该划分生成子任务之间的数据搬运指令,生成该计算任务的数据流图。
8.一种用于安全散列算法的系统,包括主机和权利要求1-7任一项所述的加速器,所述主机用于编写安全散列算法语言程序、启动加速器,将安全散列算法语言程序传输至所述加速器,以及接收加速器返回的计算结果。
9.一种基于权利要求8所述系统的加速安全散列算法的方法,包括:
步骤1,根据从主机端获得的SHA程序生成初始指令文件;
步骤2,将初始指令文件划分为多个子任务文件并生成数据流图;
步骤3,将数据流图映射到PE阵列,为每个子任务分配PE单元;
步骤4,启动PE阵列,执行计算子任务,并将结果返回主机端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010474004.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:智慧两票实现方法及系统
- 下一篇:变维振动辅助车削装置及其轨迹生成方法