CN104219043A - 一种可预置和重构的密钥装置及运行方法 - Google Patents
一种可预置和重构的密钥装置及运行方法 Download PDFInfo
- Publication number
- CN104219043A CN104219043A CN201410359126.8A CN201410359126A CN104219043A CN 104219043 A CN104219043 A CN 104219043A CN 201410359126 A CN201410359126 A CN 201410359126A CN 104219043 A CN104219043 A CN 104219043A
- Authority
- CN
- China
- Prior art keywords
- module
- key
- output
- out shift
- look
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种可预置和重构的密钥装置及运行方法,包括:键盘模块、128单循环计数模块、初始密钥查找表模块、1串入128并出移位寄存模块、控制模块Ⅰ模块、循环左移模块、S盒查表模块、32位扩展密钥生成模块、控制模块Ⅱ、32并入128并出移位寄存模块、轮密钥存储模块构成,本发明可实时通过硬件电路产生的128个128位初始密钥和128×10个128位分组轮密钥,解决了AES加密中密钥被破解,必须重新更换初始密钥及轮密钥的问题。
Description
技术领域
本发明涉及信息加密技术领域,具体地讲是一种预置和重构的密钥装置及运行方法。
背景技术
随着电子技术和通信技术的不断快速发展,用户对信息的安全存储、安全处理和安全传输的需求越来越迫切,如何保护数据的安全,已经成为人们首要面对的问题。2000年10月2日,美国国家标准与技术研究院NIST选择AES算法作为美国国家高级加密标准,AES已经在世界范围内成为加密标准。现有的AES加密中的密钥生成器大多是基于一种初始密钥的密钥生成器,一旦被破解,就必须重新更换初始密钥,比较麻烦。目前,国内外对AES的研究还是集中体现在软件实现上,用软件加密会受到处理器速度的影响,实现太慢,随着块加密算法越来越复杂,情况更是如此;其次是加密通过硬件实现更安全,通过硬件来实现密钥模块的内部运作,算法固化在硬件中,这使得比软件更不容易修改,可保证在外界无密钥的明文流动,能够实现真正意义上的保密。如中国专利200910013660.2公开了一种利用VLSI实现128位密钥长度AES算法的装置,用微处理器接口模块和微处理器相连,微处理器接口模块分别和密钥扩展模块,密钥轮数选择器,数据输出选择器和状态输出选择器相连接,密钥扩展模块的密钥轮数与密钥轮数选择器输出连接,密钥扩展模块状态输出与微处理器接口模块连接,密钥扩展模块轮密钥输出同时与加密运算模块的轮钥输入、解密模块的轮密钥输入连接。但该发明难以实时对初始密码进行修改。此外,硬件实现还具有高速、高可靠性等特点。因此设计AES算法的硬件实现,开发我国自主的硬件加密芯片,具有重要的现实价值和理论意义。
发明内容
本发明的目的在于克服现有技术的不足,提供一种可预置和重构并扩展密钥算法的密钥装置及运行方法。本发明的目的通过下述技术方案来实现:一种可预置和重构并扩展密钥装置,包括:键盘模块、128单循环计数模块、初始密钥查找表模块、1串入128并出移位寄存模块、控制模块Ⅰ模块、循环左移模块、S盒查表模块、32位扩展密钥生成模块、控制模块Ⅱ、32并入128并出移位寄存模块、轮密钥存储模块构成,键盘模块的输出与128单循环位计数模块相连;128单循环计数模块的输出与初始密钥查找表模块相连;初始密钥查找表模块的输出与1串入128并出移位寄存模块相连;1串入128并出移位寄存模块的输出与控制模块Ⅰ模块相连;控制模块Ⅰ的输出与循环左移模块和32位扩展密钥生成模块相连;循环左移模块的输出与S盒查表模块相连;S盒查表模块的输出与32位扩展密钥生成模块相连;32位扩展密钥生成模块的输出与控制模块Ⅱ相连;控制模块Ⅱ的输出与控制模块Ⅰ、32并入128并出移位寄存模块和轮密钥存储模块相连;32并入128并出移位寄存模块的输出与轮密钥存储模块相连。
所说的128单循环计数模块包括时钟、复位端、使能端、预置数控制端、预置数据输入端、计数器计数值输出端和下一模块的同步信号控制端。
初始密钥查找表模块包括时钟、使能端、地址数据输入端、存储单元数据输出端。
扩展密钥生成模块包括:时钟、复位端、数据输入控制及启动端、 128位初始密钥数据输入端、 128位轮密钥输出端、循环次数计数器计数值输出端、对轮密钥存储器的写入控制端。
一种可预置和重构并扩展密钥算法的密钥装置运行方法,基于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、控制模块Ⅰ将128位初始密钥分组为4列w3w2w1w0,进入密钥扩展流程,经40次循环以AES密钥扩展的递归算法生成40个新列w43-w4;
6、控制模块Ⅱ控制:
(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并出移位寄存模块在控制模块Ⅱ控制下,将4次循环生成的4组32位W(i)合为1个128位的AES轮密钥;
8、轮密钥存储模块在控制模块Ⅱ控制下,将1个128位的AES轮密钥存入相应的存储单元; 10个存储单元与10个AES轮密钥相对应。
本申请设计的一种实时可预置可重构初始密钥和轮密钥的系统,通过控制单循环计数器的数值就可以在高速条件下大大提高密钥扩展的数量,而且操作简单。工作原理如下:第一部分主要用于128个128位初始密钥的生成:通过键盘模块输入1个7位二进制数作为128单循环计数模块的预置数,单循环计数器会在此基础上产生128个计数值作为初始密钥查找表模块的地址进行查表,生成128个1位数据,经1串入128并出移位寄存器模块后,最后生成1个128位二进制数作为轮变换的初始密钥;第二部分主要用于扩展新的10个128位轮密钥:在控制模块Ⅰ作用下,128位初始密钥分组为4列w3w2w1w0,进入密钥扩展流程,经40次循环生成40个新列w43-w4;控制模块Ⅰ根据循环变量i不能被4整除,则将数据送32位扩展密钥生成模块;控制模块Ⅰ根据循环变量i能被4整除,则将数据送循环左移模块、S盒查表模块和32位扩展密钥生成模块。在控制模块Ⅱ控制作用下:如果循环变量i的值小于43则按AES密钥递归算法进行循环,如果循环变量i的值等于43则结束循环。将32位扩展密钥生成模块生成的W(i)送32并入128并出移位寄存模块,并控制32并入128并出移位寄存模块将4次循环生成的4个32位W(i)合为1个128位的AES轮密钥。经40次循环生成10个AES轮密钥,并存入轮密钥存储模块相应的存储单元。
系统测试结果表明相比于传统的密钥生成器,密钥被破解后,可实时地通过硬件电路产生新的初始密钥和轮密钥,增加了密钥生成器的灵活性。详見128单循环计数模块的仿真图和轮密钥生成器测试结果表1、2。
128单循环计数模块的仿真结果分析:当RST=0时,Q<=(others=>’0’),EN=1,EN是用来控制计数器计数的信号。当clk时钟上升沿到来时,如果使能信号EN=1,并且RST=1,并且LOAD=0时,变量Q<=DATA,而当LOAD=1时,而DATA <127时,Q<=Q+1;当Q=127时,给Q赋值0,然后继续Q<=Q+1,直到Q<=DATA-1时结束。如图所示,DATA输入值为0100010(即十进制34)时,开始从34计数,当Q=127时,Q回到0,然后继续加,直到Q<= DATA -1,即33,完成一轮循环计数,计数结束。
轮密钥生成器测试结果
ROM初始密钥查找表模块中的初始随机数据为09cf4f3cabf7158828aed2a62b7e1516,当键盘模块输入0010111(即十进制23)时,此时初始密钥产生部分产生初始密钥为E7957EE2B10515DA54C56FC2A2C139E9,40个32位密钥依次输出如表1所示,产生10轮128位轮密钥如表2所示。
表1是密钥扩展时键盘模块输入0010111(即十进制23)获得的40个32位密钥,表2获得的10个128位轮密钥,从中还可以看出,获得的第一个32位密钥在128位中是排在低32位上,这是因为32位密钥赋给128位轮密钥之前128位轮密钥需要右移32位,为新得到32位密钥让出位置,经过4次128位右移和再赋值以后,就会得到新的128位轮密钥。而先赋的32位密钥就会被移动到低32位,因此轮密钥扩展电路模块的设计刚好符合轮密钥扩的要求。
另外本系统通过硬件来实现密钥的生成及管理,算法固化在硬件中,比软件更不容易修改,增加了密钥生成器的安全性。从上述情况可知,本发明的目的是可以实现的。
附图说明
图1为本发明结构示意框图;
图2为本发明单循环128计数器结构示意图;
图3为本发明初始密钥查找表模块结构示意图;
图4为本发明扩展密钥生成模块结构示意图;
图5为本发明单循环128位计数器仿真结果图;
图6为本发明密钥扩展流程图。
具体实施方式
如图1-5所示,本发明一种可预置和重构并扩展密钥装置,包括键盘模块、128单循环计数模块、初始密钥查找表模块、1串入128并出移位寄存模块、控制模块Ⅰ、循环左移模块、S盒查表模块、32位扩展密钥生成模块、控制模块Ⅱ、32并入128并出移位寄存模块、轮密钥存储模块构成;键盘模块的输出与128单循环位计数模块相连;128单循环计数模块的输出与初始密钥查找表模块相连;初始密钥查找表模块的输出与1串入128并出移位寄存模块相连;1串入128并出移位寄存模块的输出与控制模块Ⅰ模块相连;控制模块Ⅰ的输出与循环左移模块和32位扩展密钥生成模块相连;循环左移模块的输出与S盒查表模块相连;S盒查表模块的输出与32位扩展密钥生成模块相连;32位扩展密钥生成模块的输出与控制模块Ⅱ相连;控制模块Ⅱ的输出与控制模块Ⅰ、32并入128并出移位寄存模块和轮密钥存储模块相连;32并入128并出移位寄存模块的输出与轮密钥存储模块相连。
所说的128单循环计数模块包括时钟clk、复位端rst、使能端en、预置数控制端load、预置数据输入端data [6..0]、dout[6..0]是计数器计数值输出端和下一模块的同步信号控制端enable。
初始密钥查找表模块包括时钟enable、使能端地址数据输入端clken、存储单元数据输出端address[6..0],q是存储单元数据输出端。
扩展密钥生成模块包括:时钟clk、复位端rst、数据输入控制及启动端load、 128位初始密钥数据输入端initkey、 128位轮密钥输出端roundkey[127..0]、循环次数计数器计数值输出端cntout、对轮密钥存储器的写入控制端wr。
一种可预置和重构并扩展密钥算法的密钥装置运行方法,基于FPGA来完成,按下列步骤进行:
1、键盘模块输入1个7位二进制数data(0000000-1111111)作为128单循环计数模块的预置数;
2、在128单循环计数模块工作时,当rst=0时,计数模块清0;当rst=1、en=1、load=0时,从data输入端预置一个7位二进制数data;当rst=1、en=1、load=1时,当clk的上升沿到来时,计数模块由data开始计数,当值为127时,然后由0到data-1,停止计数,共生成128个计数值(data→0→data-1);
3、对ROM表进行初始化,查找表模块存储容量128×1bit,初始化数据为128位随机数,当clken=1时初始密钥查找表模块开始工作;当clken=1、clk的上升沿到来时,将当前地址address[6..0]指定存储单元的1位二进制数从q端输出。128单循环计数模块生成的128个计数值作为初始密钥查找表模块的地址进行查表,生成128个1位数据;
4、1串入128并出移位寄存模块将128个1位数据转换为1个128位数据,此128位数据作为初始密钥;
5、如图6所示,控制模块Ⅰ将128位初始密钥分组为4列w3w2w1w0,进入密钥扩展流程,经40次循环生成40个新列w43-w4;控制模块Ⅰ根据循环变量i能被4整除,则将数据送循环左移模块、S盒查表模块和32位扩展密钥生成模块,循环地将w(i-1)的4个字节元素移位,每次一个字节;移位后的w(i-1) 的4个字节作为S盒查表模块的输入,生成新的4个字节;32位扩展密钥生成模块完成轮常数与第一个字节异或运算,生成T[W(i-1)] ,完成W(i)=W(i-4)XORT[W(i-1)] ,控制模块Ⅰ根据循环变量i 不能被4整除,则将数据送32位扩展密钥生成模块,W(i)=W(i-4)XORw(i-1);
6、控制模块Ⅱ判断如果循环变量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并出移位寄存模块在控制模块Ⅱ控制下,将4次循环生成的4组32位W(i)合为1个128位的AES轮密钥;
8、轮密钥存储模块在控制模块Ⅱ控制下,将1个128位的AES轮密钥存入相应的存储单元,轮密钥存储模块的10个存储单元与10个AES轮密钥相对应。
Claims (5)
1.一种可预置和重构的密钥装置,包括:键盘模块、128单循环计数模块、初始密钥查找表模块、1串入128并出移位寄存模块、控制模块Ⅰ模块、循环左移模块、S盒查表模块、32位扩展密钥生成模块、控制模块Ⅱ、32并入128并出移位寄存模块、轮密钥存储模块构成,键盘模块的输出与128单循环位计数模块相连;128单循环计数模块的输出与初始密钥查找表模块相连;初始密钥查找表模块的输出与1串入128并出移位寄存模块相连;1串入128并出移位寄存模块的输出与控制模块Ⅰ模块相连;控制模块Ⅰ的输出与循环左移模块和32位扩展密钥生成模块相连;循环左移模块的输出与S盒查表模块相连;S盒查表模块的输出与32位扩展密钥生成模块相连;32位扩展密钥生成模块的输出与控制模块Ⅱ相连;控制模块Ⅱ的输出与控制模块Ⅰ、32并入128并出移位寄存模块和轮密钥存储模块相连;32并入128并出移位寄存模块的输出与轮密钥存储模块相连。
2.根据权利要求1所述的一种可预置和重构的密钥装置,其特征在于:所说的128单循环计数模块包括时钟clk、复位端rst、使能端en、预置数控制端load、预置数据输入端data [6..0]、dout[6..0]是计数器计数值输出端和下一模块的同步信号控制端enable。
3.根据权利要求1所述的一种可预置和重构的密钥装置,其特征在于:初始密钥查找表模块包括时钟enable、使能端地址数据输入端clken、存储单元数据输出端address[6..0],q是存储单元数据输出端。
4.根据权利要求1所述的一种可预置和重构的密钥装置,其特征在于:扩展密钥生成模块包括:时钟clk、复位端rst、数据输入控制及启动端load、128位初始密钥数据输入端initkey、 128位轮密钥输出端roundkey[127..0]、循环次数计数器计数值输出端cntout、对轮密钥存储器的写入控制端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)控制模块Ⅰ将128位初始密钥分组为4列w3w2w1w0,进入密钥扩展流程,经40次循环以AES密钥扩展的递归算法生成40个新列w43-w4;
(6)控制模块Ⅱ控制:
①判断如果循环变量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并出移位寄存模块在控制模块Ⅱ控制下,将4次循环生成的4组32位W(i)合为1个128位的AES轮密钥;
(8)轮密钥存储模块在控制模块Ⅱ控制下,将1个128位的AES轮密钥存入相应的存储单元; 10个存储单元与10个AES轮密钥相对应。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410359126.8A CN104219043B (zh) | 2014-07-25 | 2014-07-25 | 一种可预置和重构的密钥装置及运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410359126.8A CN104219043B (zh) | 2014-07-25 | 2014-07-25 | 一种可预置和重构的密钥装置及运行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104219043A true CN104219043A (zh) | 2014-12-17 |
CN104219043B CN104219043B (zh) | 2018-03-20 |
Family
ID=52100208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410359126.8A Expired - Fee Related CN104219043B (zh) | 2014-07-25 | 2014-07-25 | 一种可预置和重构的密钥装置及运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104219043B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108027866A (zh) * | 2015-09-24 | 2018-05-11 | 英特尔公司 | 具有轮常数生成的sms4加速处理器 |
CN110018811A (zh) * | 2019-04-15 | 2019-07-16 | 北京智芯微电子科技有限公司 | Cache数据处理方法以及Cache |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1663172A (zh) * | 2002-06-25 | 2005-08-31 | 皇家飞利浦电子股份有限公司 | 为aes rijndael分组密码产生轮次密钥 |
EP1865654A8 (en) * | 2006-06-07 | 2008-04-16 | STMicroelectronics S.r.l. | AES encryption circuitry with CCM |
-
2014
- 2014-07-25 CN CN201410359126.8A patent/CN104219043B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1663172A (zh) * | 2002-06-25 | 2005-08-31 | 皇家飞利浦电子股份有限公司 | 为aes rijndael分组密码产生轮次密钥 |
EP1865654A8 (en) * | 2006-06-07 | 2008-04-16 | STMicroelectronics S.r.l. | AES encryption circuitry with CCM |
Non-Patent Citations (1)
Title |
---|
肖顺文: ""基于SOPC的AES算法硬件实现研究"", 《西华师范大学学报( 自然科学版)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108027866A (zh) * | 2015-09-24 | 2018-05-11 | 英特尔公司 | 具有轮常数生成的sms4加速处理器 |
CN110018811A (zh) * | 2019-04-15 | 2019-07-16 | 北京智芯微电子科技有限公司 | Cache数据处理方法以及Cache |
Also Published As
Publication number | Publication date |
---|---|
CN104219043B (zh) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111259416A (zh) | 一种基于fpga的多算法安全加密认证系统及认证方法 | |
CN103019648A (zh) | 一种带有数字后处理电路的真随机数发生器 | |
CN105337728A (zh) | 一种数据加密方法和系统 | |
CN101378314A (zh) | 一种密钥序列的生成方法和密钥产生装置 | |
CN105391701A (zh) | 一种数据加密方法和系统 | |
CN103813313B (zh) | 一种祖冲之算法的硬件实现装置及方法 | |
CN105916141B (zh) | 一种自同步的祖冲之加解密算法的实现系统及其方法 | |
CN103399726A (zh) | 一种流水线化的组合式伪随机数发生器 | |
Baby et al. | Encryption and Decryption in Complex Parallelism | |
CN113078996A (zh) | Sm4密码算法的fpga优化实现方法、系统及应用 | |
CN104486068A (zh) | 基于非线性循环移位寄存器的流密码算法snrr | |
CN105429748A (zh) | 一种数据加密方法和系统 | |
CN104219043A (zh) | 一种可预置和重构的密钥装置及运行方法 | |
CN104219045A (zh) | Rc4 流密码生成器 | |
CN107483182A (zh) | 一种基于乱序执行的面向aes算法的抗功耗攻击方法 | |
CN114615069A (zh) | 一种Quartet轻量级加密算法的实现装置及方法 | |
CN103701591B (zh) | 一种序列密码实现方法和密钥流生成方法及装置 | |
CN104579693B (zh) | 基于高次二阶logistic映射的嵌入式加密方法及装置 | |
Kwok et al. | Effective uses of FPGAs for brute-force attack on RC4 ciphers | |
CN103260154B (zh) | 一种基于128-eia3的完整性保护增强方法 | |
Zhao et al. | High throughput implementation of SMS4 on FPGA | |
CN105553647A (zh) | 基于非线性循环移位寄存器的轻量级流密码技术lsnr2 | |
CN102135871B (zh) | 利用混沌原理产生随机数的装置及其动态口令牌 | |
Marmolejo-Tejada et al. | Hardware implementation of grain-128, mickey-128, decim-128 and trivium | |
Nabil et al. | Design and implementation of pipelined aes encryption system using FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180320 Termination date: 20180725 |
|
CF01 | Termination of patent right due to non-payment of annual fee |