[发明专利]基于粗粒度可重构计算单元的SKINNY-128-128加密算法实现方法及系统有效
申请号: | 201910284904.4 | 申请日: | 2019-04-10 |
公开(公告)号: | CN110059493B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 刘雷波;魏少军;王文杰;杨锦江 | 申请(专利权)人: | 无锡沐创集成电路设计有限公司;清华大学无锡应用技术研究院 |
主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F21/72 |
代理公司: | 无锡市大为专利商标事务所(普通合伙) 32104 | 代理人: | 殷红梅;屠志力 |
地址: | 214072 江苏省无锡市滨*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 粒度 可重构 计算 单元 skinny 128 加密算法 实现 方法 系统 | ||
1.一种基于粗粒度可重构计算单元的SKINNY-128-128加密算法系统,其特征在于,包括可重构配置系统、可重构数据通路及计算模块、主控微处理器、系统总线;
所述可重构配置系统包括配置信息初始化接口、多级配置信息存储单元、配置信息解析模块、配置信息寄存器;
所述可重构数据通路及计算模块包括可重构计算阵列、寄存器通道、中间结果存储单元、输入先进先出寄存器组、输出先进先出寄存器组;
可重构配置系统中,配置信息初始化接口用于对接主控微处理器,以接收配置信息;多级配置信息存储单元用于缓存配置信息;配置信息解析模块用于对接收的配置信息进行格式解析;配置信息寄存器用于缓存格式解析后的配置信息,供可重构数据通路及计算模块读取;
所述配置信息寄存器的输出端连接可重构数据通路及计算模块;
所述可重构计算阵列包括可重构计算单元块,可重构计算单元块包括多行算子、读控制模块、写控制模块;其中,算子包括逻辑运算、算术运算、移位运算、查表运算和置换运算功能;
所述读控制模块和写控制模块用于完成可重构计算单元块与输入先进先出寄存器组、输出先进先出寄存器组、寄存器通道、中间结果存储单元的数据读写控制;
所述主控微处理器通过系统总线与配置信息初始化接口、输入先进先出寄存器组、输出先进先出寄存器组相连;所述的输入先进先出寄存器组与可重构计算阵列的输入相连,可重构计算阵列的输出与输出先进先出寄存器相连;所述的寄存器通道、中间结果存储单元与可重构计算阵列相连;
通过分析SKINNY-128-128加密算法的计算特征来确定其加密算法的运算流程,将SKINNY-128-128加密算法的若干轮运算展开成一幅数据流图映射到可重构计算阵列中,通过依次映射多幅数据流图最终完成SKINNY-128-128加密算法的整个运算;主控微处理器在每次映射均生成相应配置信息,并将配置信息发送至可重构计算阵列,完成对可重构计算阵列的加密配置;
主控微处理器通过系统总线发送明文数据给可重构数据通路及计算模块,可重构数据通路及计算模块将明文数据存入输入先入先出寄存器组,可重构计算阵列完成加密运算后输出密文数据到输出先入先出寄存器组,并向主控微处理器发送中断信号,微处理器接受到中断信号后,读出存储于输出先入先出寄存器组中的密文数据;
所述的可重构数据通路及计算模块包括1个可重构计算阵列、1个中间结果存储单元、1个寄存器通道、1个输入先入先出寄存器组和1个输出先入先出寄存器组;其中,1个可重构计算阵列通过1个中间结果存储单元和1个寄存器通道互相进行数据的储存、读取和传递;所述的1个可重构计算阵列包括M个可重构计算单元块,其中M为正整数;
所述的可重构计算单元块包含N行计算资源,每N行计算资源共享1个读控制模块和1个写控制模块,其中N为正偶数;其中,奇数行和偶数行的算子类型不同;
所述的N行计算资源中,每行包括P个算子,P为正整数;奇数行的算子包含逻辑运算、算术运算、移位运算、置换运算;偶数行的算子包含逻辑运算、算术运算、移位运算、查表运算;其中,逻辑运算包括一个操作数的直通操作、取反操作,两个操作数的异或操作、与操作、或操作;算术运算包括两个算子的加法操作、带取模的加法操作;移位运算包括算术左移操作、循环左移操作、算术右移操作、循环右移操作;查表运算包括最多4路并行的查表操作,查表操作数据位宽从4比特到32比特;置换运算支持64比特数据的任意置换。
2.如权利要求1所述的基于粗粒度可重构计算单元的SKINNY-128-128加密算法系统,其特征在于,
所述的每行P个算子,每个算子最多有4个输入和最多有4个输出,除了置换运算的算子外,其余算子每个输入和输出的数据位宽不大于32比特。
3.如权利要求1~2中任一项所述的基于粗粒度可重构计算单元的SKINNY-128-128加密算法系统,其特征在于,
该系统的加密算法包括如下步骤,对于密钥长度为128比特,明文数据位宽为128比特,40轮迭代的加密算法,按步骤(1)~(6)顺序操作,其中步骤(1)执行1次,步骤(2)~(6)依次循环执行40次;
(1)初始化:常数c和密钥k依次通过可重构计算单元块中算子的直通操作,存储到中间结果存储单元中;
可重构计算单元块中查找表的值由主控微处理器通过配置信息初始化接口写入到可重构计算阵列中;
(2)计算查表结果A[i]:将明文数据p_text[i]读取到可重构计算单元块中,将算子配置成查表功能,根据明文数据p_text[i]查询查找表,完成查表结果的计算;其中0 ≤ i ≤127;
(3)计算常数加结果B[i]:将算子配置成异或操作,将A[i]与中间结果存储器中的常数c进行异或,完成常数加的结果计算;
(4)计算行移位结果C[i]:将算子配置成移位功能,对B[i]完成行移位计算,得到行移位结果C[i];
(5)计算密钥加结果D[i]:首先将一行计算资源配置成置换操作,对密钥进行更新得到rk[i],再将下一行计算资源的算子配置成异或和直通,通过计算C[127:64]与rk[127:64]的异或值,其余位置的数据直通操作,完成密钥加结果的计算;
(6)计算密文结果c_text[i]:对D[i]进行列混淆计算:将两行算子配置成异或和直通操作,D[31:0]与D[63:32]异或后再与D[95:64]异或得到c_text[31:0],D[31:0]直通操作得到c_text[63:32],D[31:0]与D[63:32]异或得到c_text[95:64];D[31:0]与D[95:64]异或后得到c_text[127:96]。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡沐创集成电路设计有限公司;清华大学无锡应用技术研究院,未经无锡沐创集成电路设计有限公司;清华大学无锡应用技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910284904.4/1.html,转载请声明来源钻瓜专利网。