[发明专利]一种基于大规模粗粒度可重构处理器的SM4-128加密算法实现方法及系统有效
申请号: | 201610299248.1 | 申请日: | 2016-05-06 |
公开(公告)号: | CN105912501B | 公开(公告)日: | 2018-11-06 |
发明(设计)人: | 杨锦江;闵婧;尹玲;申艾麟;李兆奇;赵利锋;葛伟 | 申请(专利权)人: | 东南大学—无锡集成电路技术研究所 |
主分类号: | G06F15/78 | 分类号: | G06F15/78;G06F21/72 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 陈国强 |
地址: | 214135 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于大规模粗粒度可重构处理器的SM4‑128加密算法实现方法及系统,该系统包括可重构处理器、微处理器、系统总线;所述可重构计算阵列包括可重构计算阵列块,可重构计算阵列块包括可重构阵列运算行、写端口运算行选择器、读端口运算行选择器;所述微处理器通过系统总线分别与配置控制模块的配置与控制接口,可重构处理器的输入先入先出寄存器组连接,所述输入先入先出寄存器组连接可重构计算阵列,可重构计算阵列连接输出端连接可重构处理器,输出端连接可重构处理器通过系统总线与微处理器连接。该系统及方法针对SM4‑128加密算法,通过将多轮迭代在可重构处理器中部分展开和中间结果数据缓存的方式进行优化和加速。 | ||
搜索关键词: | 一种 基于 大规模 粒度 可重构 处理器 sm4 128 加密算法 实现 方法 系统 | ||
【主权项】:
1.一种基于大规模粗粒度可重构处理器的SM4‑128加密算法系统,其特征在于:包括可重构处理器、微处理器、系统总线;其中,所述可重构处理器包括配置控制模块、输入先入先出寄存器组、输出先入先出寄存器组、通用寄存器堆、可重构计算阵列;所述配置控制模块包括依次连接的配置与控制接口、配置存储器、配置解析模块,配置控制模块的输出端连接可重构处理器;所述可重构计算阵列包括可重构计算阵列块,可重构计算阵列块包括可重构阵列运算行、写端口运算行选择器、读端口运算行选择器;所述可重构阵列运算行的输出端连接写端口运算行选择器的输入端,写端口运算行选择器的输出端连接通用寄存器堆;所述读端口运算行选择器的输入端接入通用寄存器堆,读端口运算行选择器的输出端连接可重构阵列运算行;其中,所述可重构阵列运算行包括算术逻辑单元、查找表单元、比特置换网络、字节置换网络以及数据输入单元和数据输出单元;所述微处理器通过系统总线分别与配置控制模块的配置与控制接口,可重构处理器的输入先入先出寄存器组连接,所述输入先入先出寄存器组连接可重构计算阵列,可重构计算阵列连接输出端连接可重构处理器,输出端连接可重构处理器通过系统总线与微处理器连接;其中,通过分析SM4‑128加密算法的特征来确定SM4‑128加密算法的运算流程,将多轮的SM4‑128加密算法运算展开成一幅数据流图映射到可重构处理器中,通过多幅数据流图最终完成SM4‑128加密算法的整个运算;微处理器通过系统总线发送明文数据给可重构处理器,可重构处理器将明文数据存入输入先入先出寄存器组,并在最终计算完成后输出密文数据到输出先入先出寄存器组,并发送中断信号,最终由微处理器读出输出至输出先入先出寄存器组中的数据;该系统的SM4‑128加密算法包括如下6个步骤,对于32轮迭代的128比特的加密算法,对(2)~(6)步骤顺序操作并循环32次后,执行(6)执行1次,即可得到密文(其中0≤i≤31):(1)生成Y[i]:数据输入单元将X[i+1],X[i+2],X[i+3]同时载入可重构运算单元行中,(其中0≤i≤31);对载入数据经过字节置换网络后,输入值同一个32比特的逻辑运算单元,进行三输入异或操作,得到Y[i],并将其计算结果存入通用寄存器中;(2)生成A[i]:数据输入单元将轮密钥rk[i]及Y[i]同时载入可重构运算单元行中,在经过字节置换网络进行移位后,再对ri[i],Y[i]两者进行异或操作,将结果A[i]输出至缓存单元中;(3)查表操作:数据输入单元将A[i]从缓存单元中载入至可重构运算单元行中;A[i]在通过字节置换网络后,在查找表中对A[i]进行查表操作,得到B[i],并将B[i]存入缓存单元中;(4)线性变换:数据输入单元将B[i]从缓存单元中载入至可重构阵列单元行中;B[i]在经过比特置换网络后,生成中间数据B1[i],B2[i],将B1[i],B2[i],B[i]三者进行异或操作,生成M[i],并将M[i]及B[i]存入缓存单元;将上一行输出结果M[i]及B[i]从缓存单元中载入至可重构阵列单元行中,B[i]在经过比特置换网络后,生成中间数据B3[i],B4[i],将B3[i],B4[i],M[i]三者进行异或操作,得到T[i];(5)生成X[i+4]:数据输入单元将T[i]从缓存单元中载入至可重构阵列单元行中,对T[i]及X[i]进行异或操作,得到X[i+4];(6)逆序操作:数据输入单元将X[32],X[33],X[34],X[35]从通用寄存器中载入至可重构计算单元行中,经过字节置换网络,实现逆序,得到从高位至低位按照X[35],X[34],X[33],X[32]的数据,输出至输出先入先出寄存器组,得到密文。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学—无锡集成电路技术研究所,未经东南大学—无锡集成电路技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610299248.1/,转载请声明来源钻瓜专利网。
- 上一篇:基于指纹特征的文本复制检测系统及方法
- 下一篇:一种音乐计算器