[发明专利]一种基于粗粒度可重构架构的DES算法密钥扩展系统及扩展方法有效
申请号: | 201610334543.6 | 申请日: | 2016-05-19 |
公开(公告)号: | CN106155979B | 公开(公告)日: | 2019-03-19 |
发明(设计)人: | 杨锦江;明畅;尹玲;申艾麟;孙雷;赵利锋;葛伟 | 申请(专利权)人: | 东南大学—无锡集成电路技术研究所 |
主分类号: | G06F15/78 | 分类号: | G06F15/78 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 贾郡 |
地址: | 214135 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于粗粒度可重构架构的DES算法密钥扩展系统及扩展方法,包括系统总线、可重构处理器和微处理器;所述可重构处理器包括配置单元、输入先进先出寄存器组、输出先进先出寄存器组、通用寄存器堆、M个可重构阵列块、查找表,本发明针对DES算法密钥扩展,通过将多轮迭代在可重构处理器中并行移位替换的方式进行优化和加速。 | ||
搜索关键词: | 一种 基于 粒度 构架 des 算法 密钥 扩展 系统 方法 | ||
【主权项】:
1.一种基于粗粒度可重构架构的DES算法密钥扩展系统,其特征在于:包括系统总线、可重构处理器和微处理器;所述可重构处理器包括配置单元、输入先进先出寄存器组、输出先进先出寄存器组、通用寄存器堆、M个可重构阵列块,所述配置单元的进线口通过系统总线与微处理器连接,且配置单元的出线口分别与可重构阵列块连接;而所述输入先进先出寄存器组通过系统总线与微处理器连接;这M个可重构阵列块分别为第1个可重构阵列块、第2个可重构阵列块、...、第m个可重构阵列块、...、第M个可重构阵列块,m=1...M,M取整数;其中第1个可重构阵列块与输入先进先出寄存器组连接,而第M个可重构阵列块与输出先进先出寄存器组连接,且这M个可重构阵列块均与通用寄存器堆连接,同时这M个可重构阵列块按顺序依次连接;这M个可重构阵列块之间通过通用寄存器堆互相进行数据的储存、读取和传递;所述输出先进先出寄存器组通过系统总线与微处理器连接;所述微处理器通过分析DES的特征来确定密钥扩展的运算流程,将多轮的密钥扩展运算展开成一幅数据流图映射到可重构处理器中形成配置信息发送给配置单元;微处理器通过系统总线发送明文数据给可重构处理器,明文数据将存入输入先进先出寄存器组,生成的密钥将存入输入先进先出寄存器组;所述配置单元用于存储配置信息,并将配置信息发送给各个可重构阵列块;第1个可重构阵列块用于获取输入先进先出寄存器组的明文数据,并根据配置信息第1个可重构阵列块对明文数据进行密钥扩展,经过密钥扩展后得到本步密钥扩展的中间信息和本步密钥;根据配置信息将本步密钥载入通用寄存器堆中,而得到的本步密钥扩展的中间信息根据配置信息载入到下一个可重构阵列块中;对于第p个可重构阵列块,2≤p≤M‑1;第p个可重构阵列块用于获取第(p‑1)个可重构阵列块密钥扩展得到的密钥扩展的中间信息,第(p‑1)个可重构阵列块密钥扩展得到的密钥扩展的中间信息记为上一步得到的密钥扩展的中间信息;根据配置信息第p个可重构阵列块对上一步得到的密钥扩展的中间信息进行密钥扩展,经过密钥扩展后得到本步密钥扩展的中间信息和本步密钥;根据配置信息将本步密钥载入通用寄存器堆中,而得到的本步密钥扩展的中间信息根据配置信息载入到下一个可重构阵列块中;对于第M个可重构阵列块,第M个可重构阵列块用于获取第(M‑1)个可重构阵列块密钥扩展得到的密钥扩展的中间信息,该第(M‑1)个可重构阵列块密钥扩展得到的密钥扩展的中间信息为上一步得到的密钥扩展的中间信息,根据配置信息第M个可重构阵列块对上一步得到的密钥扩展的中间信息进行密钥扩展,经过密钥扩展后得到本步密钥扩展的中间信息和本步密钥;根据配置信息将本步密钥载入通用寄存器堆中,完成密钥扩展;可重构阵列块包括读端口运算行选择器、写端口运算行选择器以及N行可重构阵列运算行,且这N行可重构阵列运算行共享读端口运算行选择器和写端口运算行选择器;其中,第m个可重构阵列块中的读端口运算行选择器记为第m个读端口运算行选择器,第m个可重构阵列块中的写端口运算行选择器记为第m个写端口运算行选择器,第m个可重构阵列块中的第n行可重构阵列运算行记为第
行可重构阵列运算行,m=1...M,n=1...N,M为可重构阵列块的个数,N为可重构阵列块包括的可重构阵列运算行的行数,M,N取整数;且可重构阵列块之间按顺序依次连接,而每个可重构阵列块内部的可重构阵列运算行之间按顺序依次连接;在密钥扩展中可重构阵列块运算得到的密钥通过写端口运算行选择器存在通用寄存器堆中;第
行可重构阵列运算行与输入先进先出寄存器组相连,同时第
行可重构阵列运算行与输出先进先出寄存器组相连;第
行可重构阵列运算行用于输入先进先出寄存器组中的明文数据,通过第1个读端口运算行选择器读取配置单元的配置信息;第
行可重构阵列运算行根据配置信息对明文数据进行PC‑1移位变换得到本步密钥扩展的中间数据;并根据配置信息将本步密钥扩展的中间数据载入第
行可重构阵列运算行中;第
行可重构阵列运算行用于根据载入的上一步密钥扩展的中间数据,通过第1个读端口运算行选择器读取配置单元的配置信息;第
行可重构阵列运算行根据配置信息对上一步密钥扩展的中间数据进行LSl循环移位得到本步的密钥扩展的中间数据;并根据配置信息将本步的密钥扩展的中间数据载入第
行可重构阵列运算行中;第
行可重构阵列运算行用于根据载入的上一步密钥扩展的中间数据,通过第1个读端口运算行选择器读取配置单元的配置信息;第
行可重构阵列运算行根据配置信息对上一步密钥扩展的中间数据进行LS2循环移位得到本步密钥扩展的中间数据;并根据配置信息将本步密钥扩展的中间数据载入第
行可重构阵列运算行中;同时根据配置信息对本步密钥扩展的中间数据进行PC‑2移位变换得到本步密钥;并根据配置信息将本步密钥载入通用寄存器堆中;第
行可重构阵列运算行用于根据载入的上一步密钥扩展的中间数据,通过第1个读端口运算行选择器读取配置单元的配置信息;第
行可重构阵列运算行根据配置信息对上一步密钥扩展的中间数据进行LS3循环移位得到本步密钥扩展的中间数据;并根据配置信息将本步密钥扩展的中间数据载入第
行可重构阵列运算行中;同时根据配置信息对上一步密钥扩展的中间数据进行PC‑2移位变换得到本步密钥;并根据配置信息将本步密钥载入通用寄存器堆中;对于第p个可重构阵列块,2≤p≤M‑1;第p个可重构阵列块中的第
行可重构阵列运算行用于载入第(p‑1)个可重构阵列块中得到的上一步的密钥扩展的中间数据;通过第p个读端口运算行选择器读取配置单元的配置信息;根据配置信息对上一步的密钥扩展的中间数据进行LS移位得到本步的密钥扩展的中间数据;同时根据配置信息对本步的密钥扩展的中间数据进行PC‑2移位得到本步的密钥;得到的本步的密钥扩展的中间数据和本步的密钥根据配置信息载入第
行可重构阵列运算行中,进行下一步的密钥扩展;第
行可重构阵列运算行用于载入单元载入上一步得到的密钥扩展的中间数据和上一步得到的密钥;通过第p个读端口运算行选择器读取配置单元的配置信息;根据配置信息对上一步得到的密钥扩展的中间数据进行LS移位得到本步密钥扩展的中间数据;同时根据配置信息对上一步得到的密钥扩展的中间数据进行PC‑2移位得到本步的密钥;得到的本步密钥扩展的中间数据根据配置信息载入第
行可重构阵列运算行中;而得到的本步的密钥和上一步得到的密钥根据配置信息载入通用寄存器堆中;对于第M个可重构阵列块,第M个可重构阵列块中的第
行可重构阵列运算行用于载入上一步得到的密钥扩展的中间数据,第M个读端口运算行选择器读取配置单元的配置信息;根据配置信息对上一步得到的密钥扩展的中间数据进行LS移位得到本步密钥扩展的中间数据;同时根据配置信息对上一步得到的密钥扩展的中间数据进行PC‑2移位得到本步的密钥;同时根据配置信息对本步的密钥扩展的中间数据进行PC‑2移位得到本步的密钥;得到的本步的密钥扩展的中间数据和本步的密钥根据配置信息载入第
行可重构阵列运算行中,进行下一步的密钥扩展;第
行可重构阵列运算行用于载入上一步得到的密钥扩展的中间数据和上一步得到的密钥,通过第M个读端口运算行选择器读取配置单元的配置信息;根据配置信息对上一步得到的密钥扩展的中间数据进行PC‑2移位得到本步的密钥;得到的上一步得到的密钥和本步的密钥通过第M个写端口运算行选择器载入通用寄存器堆中;同时上一步得到的密钥扩展的中间数据通过第M个写端口运算行选择器输出到输出先进先出寄存器组中;每行可重构阵列运算行均包括X1个数据载入单元、X2个数据输出单元、X3个字节置换网络、X4个比特置换网络和X5个8位算术逻辑单元,字节置换网络与比特置换网络组成置换网络,字节置换网络与比特置换网络的输出X5个8位的数据分别固定对应于X5个8位算术逻辑单元;第m个可重构阵列块第n行可重构阵列运算行的第k1个数据载入单元记为第
个数据载入单元,第m个可重构阵列块第n行可重构阵列运算行的第k2个数据输出单元记为第
个数据输出单元,第m个可重构阵列块第n行可重构阵列运算行的第k3个字节置换网络记为第
个字节置换网络,第m个可重构阵列块第n行可重构阵列运算行的第k4个比特置换网络记为第
个比特置换网络,第m个可重构阵列块第n行可重构阵列运算行的第k1个数据载入单元记为第
个算术逻辑单元,k1=1...X1,k2=1...X2,k3=1...X3,k4=1...X4,k5=1...X5,X1,X2,X3,X4和X5均取整数;第m个读端口运算行选择器读取的上一步的中间数据以及接收解析配置解析模块的配置信息来选择中间数据流入的字节置换网络和比特置换网络;第
行可重构阵列运算行中的第
个数据载入单元用于载入输入先进先出寄存器组中的明文数据;通过第1个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过第
个比特置换网络对初始64比特的密钥实现PC‑1移位变换,移位后的数据通过第
个算术逻辑单元的逻辑计算得到最低56比特的初始左信息C[0]、初始右信息D[0];最低56比特的初始左信息C[0]、初始右信息D[0]通过第
个数据输出单元根据配置信息发送出;第
行可重构阵列运算行中的第
个数据载入单元用于从第
个数据输出单元中载入最低56比特的初始左信息C[0]、初始右信息D[0],通过第1个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过第
个比特置换网络对最低56比特的初始左信息C[0]、初始右信息D[0]进行LS1循环移位,得到的LSl循环移位的数据通过第
个算术逻辑单元的逻辑计算得到最低56比特的左信息C[1]、右信息D[1],最低56比特的左信息C[1]、右信息D[1]通过第
个数据输出单元根据配置信息发送出;第
行可重构阵列运算行的第
个数据载入单元用于从第
个数据输出单元中载入最低56比特的左信息C[1]、右信息D[1],通过第1个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过第
个比特置换网络对最低56比特的左信息C[1]、右信息D[1]进行LS2循环移位,LS2循环移位的数据通过第
个算术逻辑单元的逻辑计算结果放置在最高58比特,得到最高58比特的左信息C[2]、右信息D[2];同时,而另一个第
个比特置换网络对最低56比特的左信息C[1]、右信息D[1]进行PC‑2移位,PC‑2移位的数据通过第
个算术逻辑单元的逻辑计算得到48比特的密钥K1;最高56比特为左信息C[2]、右信息D[2],最低48比特的密钥K1通过第
个数据输出单元根据配置信息发送出;第
行可重构阵列运算行的第
个数据载入单元用于从第
个数据输出单元中载入最高56比特为左信息C[2]、右信息D[2],通过第1个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过第
个比特置换网络对最高56比特为左信息C[2]、石信息D[2]进行LS3循环移位,LS3循环移位的数据通过第
个算术逻辑单元的逻辑计算得到左信息C[3]和右信息D[3];第
个算术逻辑单元都配置为直通;另一第
个比特置换网络对最低48比特的密钥K1进行PC‑2移位,PC‑2移位的数据通过第
个算术逻辑单元的逻辑计算得到最高48比特的密钥K2;得到左信息C[3]、右信息D[3]根据配置信息通过第
个数据输出给下一个可重构阵列块运行;得到的最低48比特的密钥K1和最高48比特的密钥K2根据配置信息通过第
个数据输出单元输出到通用寄存器堆中;对于第p个可重构阵列块,2≤p≤M‑1;第(p‑1)个可重构阵列块遗留下来的左信息C[i]、右信息D[i],第p个可重构阵列块中的第
行可重构阵列运算行中的第
个数据载入单元用于载入左信息C[i]、右信息D[i],通过第p个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过第
个比特置换网络对左信息C[i]、右信息D[i]进行LS[i+1]移位,LS[i+1]移位得到的数据通过第
个算术逻辑单元的逻辑计算得到左信息C[i+1]和右信息D[i+1];而另一个第
个比特置换网络对左信息C[i]、右信息D[i]进行PC‑2移位,PC‑2移位得到的数据通过第
个算术逻辑单元的逻辑计算得到密钥K[i];得到的左信息C[i+1]、右信息D[i+1]以及密钥K[i]通过第
个数据输出单元根据配置信息发送出;第
行可重构阵列运算行中的第
个数据载入单元用于载入左信息C[i+1]、右信息D[i+1]以及密钥K[i];通过第p个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过第
个比特置换网络对左信息C[i]、右信息D[i]进行LS[i+1]移位,LS[i+1]移位得到的数据通过第
个算术逻辑单元的逻辑计算得到左信息C[i+2]和右信息D[i+2];而另一个第
个比特置换网络对左信息C[i+1]、右信息D[i+1]进行PC‑2移位,PC‑2移位得到的数据通过第
个算术逻辑单元的逻辑计算得到密钥K[i+1];得到左信息C[i+2]和右信息D[i+2]根据配置信息通过第
个数据输出给下一个可重构阵列块运行;得到的密钥K[i]和密钥K[i+1]根据配置信息通过第
个数据输出单元输出到通用寄存器堆中;3<=i<=15,![]()
表示向下取整;对于第8个可重构阵列块,第7个可重构阵列块遗留下来的左信息C[15]、右信息D[15],第8个可重构阵列块中的第
行可重构阵列运算行中的第
个数据载入单元用于载入左信息C[15]、右信息D[15],通过第8个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过第
个比特置换网络对左信息C[15]、右信息D[15]进行LS[16]移位,LS[16]移位得到的数据通过第
个算术逻辑单元的逻辑计算得到左信息C[16]和右信息D[16];而另一个第
个比特置换网络对左信息C[15]、右信息D[15]进行PC‑2移位,PC‑2移位得到的数据通过第
个算术逻辑单元的逻辑计算得到密钥K[15];得到的左信息C[16]、右信息D[16]以及密钥K[15]通过第
个数据输出单元根据配置信息发送出;第
行可重构阵列运算行中的第
个数据载入单元用于载入左信息C[16]、右信息D[16],通过第8个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过第
个比特置换网络对左信息C[16]、右信息D[16]进行PC‑2移位,PC‑2移位得到的数据通过第
个算术逻辑单元的逻辑计算得到密钥K[16];得到的密钥K[16]和密钥K[15]通过第
个数据输出单元输出存入通用寄存器堆中;同时左信息C[16]、右信息D[16]通过第
个数据输出单元输出到输出先进先出寄存器组中。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学—无锡集成电路技术研究所,未经东南大学—无锡集成电路技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610334543.6/,转载请声明来源钻瓜专利网。