一种可预置和重构的密钥装置及运行方法

文档序号:7809792阅读:269来源:国知局
一种可预置和重构的密钥装置及运行方法
【专利摘要】本发明公开了一种可预置和重构的密钥装置及运行方法,包括:键盘模块、128单循环计数模块、初始密钥查找表模块、1串入128并出移位寄存模块、控制模块I模块、循环左移模块、S盒查表模块、32位扩展密钥生成模块、控制模块II、32并入128并出移位寄存模块、轮密钥存储模块构成,本发明可实时通过硬件电路产生的128个128位初始密钥和128X10个128位分组轮密钥,解决了AES加密中密钥被破解,必须重新更换初始密钥及轮密钥的问题。
【专利说明】-种可预置和重构的密钥装置及运行方法

【技术领域】
[0001] 本发明涉及信息加密【技术领域】,具体地讲是一种预置和重构的密钥装置及运行方 法。

【背景技术】
[0002] 随着电子技术和通信技术的不断快速发展,用户对信息的安全存储、安全处理和 安全传输的需求越来越迫切,如何保护数据的安全,已经成为人们首要面对的问题。2000年 10月2日,美国国家标准与技术研究院NIST选择AES算法作为美国国家高级加密标准,AES 已经在世界范围内成为加密标准。现有的AES加密中的密钥生成器大多是基于一种初始 密钥的密钥生成器,一旦被破解,就必须重新更换初始密钥,比较麻烦。目前,国内外对AES 的研究还是集中体现在软件实现上,用软件加密会受到处理器速度的影响,实现太慢,随着 块加密算法越来越复杂,情况更是如此;其次是加密通过硬件实现更安全,通过硬件来实现 密钥模块的内部运作,算法固化在硬件中,这使得比软件更不容易修改,可保证在外界无密 钥的明文流动,能够实现真正意义上的保密。如中国专利200910013660. 2公开了一种利用 VLSI实现128位密钥长度AES算法的装置,用微处理器接口模块和微处理器相连,微处理器 接口模块分别和密钥扩展模块,密钥轮数选择器,数据输出选择器和状态输出选择器相连 接,密钥扩展模块的密钥轮数与密钥轮数选择器输出连接,密钥扩展模块状态输出与微处 理器接口模块连接,密钥扩展模块轮密钥输出同时与加密运算模块的轮钥输入、解密模块 的轮密钥输入连接。但该发明难以实时对初始密码进行修改。此外,硬件实现还具有高速、 高可靠性等特点。因此设计AES算法的硬件实现,开发我国自主的硬件加密芯片,具有重要 的现实价值和理论意义。


【发明内容】

[0003] 本发明的目的在于克服现有技术的不足,提供一种可预置和重构并扩展密钥算法 的密钥装置及运行方法。本发明的目的通过下述技术方案来实现:一种可预置和重构并扩 展密钥装置,包括:键盘模块、128单循环计数模块、初始密钥查找表模块、1串入128并出移 位寄存模块、控制模块I模块、循环左移模块、S盒查表模块、32位扩展密钥生成模块、控制 模块II、32并入128并出移位寄存模块、轮密钥存储模块构成,键盘模块的输出与128单循 环位计数模块相连;128单循环计数模块的输出与初始密钥查找表模块相连;初始密钥查 找表模块的输出与1串入128并出移位寄存模块相连;1串入128并出移位寄存模块的输 出与控制模块I模块相连;控制模块I的输出与循环左移模块和32位扩展密钥生成模块 相连;循环左移模块的输出与S盒查表模块相连;S盒查表模块的输出与32位扩展密钥生 成模块相连;32位扩展密钥生成模块的输出与控制模块II相连;控制模块II的输出与控制 模块I、32并入128并出移位寄存模块和轮密钥存储模块相连;32并入128并出移位寄存 模块的输出与轮密钥存储模块相连。
[0004] 所说的128单循环计数模块包括时钟、复位端、使能端、预置数控制端、预置数据 输入端、计数器计数值输出端和下一模块的同步信号控制端。
[0005] 初始密钥查找表模块包括时钟、使能端、地址数据输入端、存储单元数据输出端。
[0006] 扩展密钥生成模块包括:时钟、复位端、数据输入控制及启动端、128位初始密钥 数据输入端、128位轮密钥输出端、循环次数计数器计数值输出端、对轮密钥存储器的写入 控制端。
[0007] -种可预置和重构并扩展密钥算法的密钥装置运行方法,基于FPGA来完成,按下 列步骤进行: 1、 键盘模块输入1个7位二进制数data作为128单循环计数模块的预置数; 2、 128单循环计数模块由预置数data开始计数,当值为127时,然后由0到data-Ι,停 止计数,共生成128个计数值; 3、 128单循环计数模块生成128个计数值作为初始密钥查找表模块的地址进行查表, 生成128个1位数据; 4、 1串入128并出移位寄存模块将128个1位数据转换为1个128位数据,此128位数 据作为初始密钥; 5、 控制模块I将128位初始密钥分组为4列W3w2WlW(l,进入密钥扩展流程,经40次循环 以AES密钥扩展的递归算法生成40个新列w 43-w4; 6、 控制模块II控制: (1) 判断如果循环变量i的值小于43则进行循环,如果循环变量i的值等于43则结束 循环; (2) 将32位扩展密钥生成模块生成的新列W (i)送32并入128并出移位寄存模块,并 控制32并入128并出移位寄存模块将4次循环生成的4个32位W (i)合为1个128位的 AES轮密钥; (3) 控制32并入128并出移位寄存模块生成的128位AES轮密钥存入轮密钥存储模 块; 7、 32并入128并出移位寄存模块在控制模块II控制下,将4次循环生成的4组32位W (i)合为1个128位的AES轮密钥; 8、 轮密钥存储模块在控制模块II控制下,将1个128位的AES轮密钥存入相应的存储 单元;10个存储单元与10个AES轮密钥相对应。
[0008] 本申请设计的一种实时可预置可重构初始密钥和轮密钥的系统,通过控制单循环 计数器的数值就可以在高速条件下大大提高密钥扩展的数量,而且操作简单。工作原理如 下:第一部分主要用于128个128位初始密钥的生成:通过键盘模块输入1个7位二进制 数作为128单循环计数模块的预置数,单循环计数器会在此基础上产生128个计数值作为 初始密钥查找表模块的地址进行查表,生成128个1位数据,经1串入128并出移位寄存器 模块后,最后生成1个128位二进制数作为轮变换的初始密钥;第二部分主要用于扩展新的 10个128位轮密钥:在控制模块I作用下,128位初始密钥分组为4列,进入密钥扩 展流程,经40次循环生成40个新列w 43-w4;控制模块I根据循环变量i不能被4整除,则将 数据送32位扩展密钥生成模块;控制模块I根据循环变量i能被4整除,则将数据送循环 左移模块、S盒查表模块和32位扩展密钥生成模块。在控制模块II控制作用下:如果循环 变量i的值小于43则按AES密钥递归算法进行循环,如果循环变量i的值等于43则结束 循环。将32位扩展密钥生成模块生成的W (i)送32并入128并出移位寄存模块,并控制 32并入128并出移位寄存模块将4次循环生成的4个32位W (i)合为1个128位的AES 轮密钥。经40次循环生成10个AES轮密钥,并存入轮密钥存储模块相应的存储单元。
[0009] 系统测试结果表明相比于传统的密钥生成器,密钥被破解后,可实时地通过硬件 电路产生新的初始密钥和轮密钥,增加了密钥生成器的灵活性。详見128单循环计数模块 的仿真图和轮密钥生成器测试结果表1、2。
[0010] 128单循环计数模块的仿真结果分析:当RST=0时,Q〈= (others=>' 0'),EN=1,EN 是用来控制计数器计数的信号。当elk时钟上升沿到来时,如果使能信号EN=1,并且RST=1, 并且 L0AD=0 时,变量 Q〈=DATA,而当 L0AD=1 时,而 DATA〈127 时,Q〈=Q+1 ;当 Q=127 时,给 Q 赋值〇,然后继续Q〈=Q+1,直到Q〈=DATA-1时结束。如图所示,DATA输入值为0100010 (即十 进制34)时,开始从34计数,当Q=127时,Q回到0,然后继续加,直到Q〈= DATA -1,即33, 完成一轮循环计数,计数结束。
[0011] 轮密钥生成器测试结果 ROM初始密钥查找表模块中的初始随机数据为09cf4f3cabf7158828aed2a62b7el516, 当键盘模块输入0010111 (即十进制23)时,此时初始密钥产生部分产生初始密钥为E7957 EE2B10515DA54C56FC2A2C139E9,40个32位密钥依次输出如表1所示,产生10轮128位轮 密钥如表2所示。

【权利要求】
1. 一种可预置和重构的密钥装置,包括:键盘模块、128单循环计数模块、初始密钥查 找表模块、1串入128并出移位寄存模块、控制模块I模块、循环左移模块、S盒查表模块、 32位扩展密钥生成模块、控制模块II、32并入128并出移位寄存模块、轮密钥存储模块构 成,键盘模块的输出与128单循环位计数模块相连;128单循环计数模块的输出与初始密钥 查找表模块相连;初始密钥查找表模块的输出与1串入128并出移位寄存模块相连;1串入 128并出移位寄存模块的输出与控制模块I模块相连;控制模块I的输出与循环左移模块 和32位扩展密钥生成模块相连;循环左移模块的输出与S盒查表模块相连;S盒查表模块 的输出与32位扩展密钥生成模块相连;32位扩展密钥生成模块的输出与控制模块II相连; 控制模块II的输出与控制模块I、32并入128并出移位寄存模块和轮密钥存储模块相连; 32并入128并出移位寄存模块的输出与轮密钥存储模块相连。
2. 根据权利要求1所述的一种可预置和重构的密钥装置,其特征在于:所说的128单 循环计数模块包括时钟elk、复位端rst、使能端en、预置数控制端load、预置数据输入端 data [6. . 0]、dout [6. . 0]是计数器计数值输出端和下一模块的同步信号控制端enable。
3. 根据权利要求1所述的一种可预置和重构的密钥装置,其特征在于:初始密 钥查找表模块包括时钟enable、使能端地址数据输入端elken、存储单元数据输出端 address [6. . 0],q是存储单元数据输出端。
4. 根据权利要求1所述的一种可预置和重构的密钥装置,其特征在于:扩展密钥生成 模块包括:时钟elk、复位端rst、数据输入控制及启动端load、128位初始密钥数据输入端 initkey、128位轮密钥输出端roundkey[127. · 0]、循环次数计数器计数值输出端entout、 对轮密钥存储器的写入控制端wr。
5. -种可预置和重构的密钥装置运行方法,基于FPGA来完成,其特征在于,按下列步 骤进行: (1) 键盘模块输入1个7位二进制数data作为128单循环计数模块的预置数; (2) 128单循环计数模块由预置数data开始计数,当值为127时,然后由0到data-1, 停止计数,共生成128个计数值; (3) 128单循环计数模块生成128个计数值作为初始密钥查找表模块的地址进行查表, 生成128个1位数据; (4) 1串入128并出移位寄存模块将128个1位数据转换为1个128位数据,此128位 数据作为初始密钥; (5) 控制模块I将128位初始密钥分组为4列W3w2WlW(l,进入密钥扩展流程,经40次循 环以AES密钥扩展的递归算法生成40个新列w 43-w4; (6) 控制模块II控制: ① 判断如果循环变量i的值小于43则进行循环,如果循环变量i的值等于43则结束 循环; ② 将32位扩展密钥生成模块生成的新列W (i)送32并入128并出移位寄存模块,并 控制32并入128并出移位寄存模块将4次循环生成的4个32位W (i)合为1个128位的 AES轮密钥; ③ 控制32并入128并出移位寄存模块生成的128位AES轮密钥存入轮密钥存储模块; (7) 32并入128并出移位寄存模块在控制模块II控制下,将4次循环生成的4组32位 W (i)合为1个128位的AES轮密钥; (8)轮密钥存储模块在控制模块II控制下,将1个128位的AES轮密钥存入相应的存储 单元;10个存储单元与10个AES轮密钥相对应。
【文档编号】H04L9/08GK104219043SQ201410359126
【公开日】2014年12月17日 申请日期:2014年7月25日 优先权日:2014年7月25日
【发明者】肖顺文, 邹贵祥, 戚淮兵, 代显智, 刘汉奎, 王云秀, 张谦述, 江敏, 朱松柏 申请人:西华师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1