一种轮密钥动态生成对称密码的电路及方法_2

文档序号:8365218阅读:来源:国知局
成了一次轮操作,直至完成最后一轮轮操 作。
[0037] 在本实施例中,所述对称密码具体为AES或SMS4。所述轮密钥迭代寄存器堆由8 个32位的D触发器组成,所述数据迭代寄存器堆由4个32位的D触发器组成。其中,图3 示出了AES密钥宽度128位时轮密钥动态生成结构,在round_cnt= 0的时候,使用轮密钥 寄存器堆的输出作为此轮轮密钥,在每一个时钟上升沿到来时将W0~W3中的子密钥更新, 直到round_cnt=max_round,即满足了加密时轮密钥的使用顺序,当解密时,由于需要逆 序使用轮密钥,故当round_cnt=max_round时,round_cnt进行自减,并且在每一个时钟有 效延反推出之前一轮的轮密钥,即满足了解密时逆序使用子密钥的要求;图4示出了AES密 钥宽度192位时轮密钥动态生成结构,由于每次轮密钥迭代可以生成6个字的轮密钥,而每 轮操作只需要用到4个字的轮密钥,故两次密钥生成产生的密钥可以供三轮加密使用,所 以以三轮操作为一个周期,两次密钥生成之后停止一轮,如图当round_cnt= 0时,此时产 生了 192位密钥(W0~W5),而此轮加密中只用到了W0~W3,故在下一个时钟的上升沿将 W5,W6存入后面的两个寄存器中,并且由WO~W5生成W6~W11,此轮加密过程中只用到了W4~W7,还有W8~W11没有用到,故在下一个时钟上升沿时不进行任何操作,等到下一轮 加密时使用W8~W11,重复以上操作直至生成最后一轮密钥,最后一轮密钥的生成与之前 的略有不同,只生成128位密钥,解密时,由于需要的轮密钥顺序恰恰与加密时相反,则先 由最后一轮密钥生成倒数第二轮密钥W42~W45,此时刚好与后面两组W46,W47连在一起, 可以由W42~W47推出W36~W41,如此便与加密时轮密钥生成相对称,由先前的方法可以 反推出解密时的轮密钥;图5示出了AES密钥宽度256位时轮密钥动态生成结构,由于每轮 加密只需要用到128位密钥,而一次可产生256位密钥,可以使用两轮,故以两轮为一个周 期,每产生一次密钥之后停止一轮,如图,当round_cnt= 2i时,使用W0~W3中的数据作 为轮密钥,当:round_cnt= 2i+l时,使用W4~W7中的数据作为轮密钥。当round_cnt为 偶数时,时钟有效延到来将W0~W7寄存器堆中的轮密钥进行更新,依次重复以上过程直到 round_cnt=max_round,此时只将W0~W3寄存器堆中的轮密钥进行更新,由于AES算法 256位宽密钥模式完成一次加解密总共需要14轮操作,而在加密过程时首先要将明文与第 一轮密钥异或一次,所以总共需要15个轮密钥,在round_cnt=max_round时使用W0~W3 寄存器堆中的数据,解密过程,轮密钥使用顺序刚好相反,当round_cnt=max_round-l时 使用W4~W7中的轮密钥,刚好为此时W0~W3中的子密钥的上一轮子密钥,依次当round_ cnt为偶数时更新W0~W7中的子密钥直到round_cnt= 0,即满足了解密时子密钥逆序的 要求。
[0038] 如图6示出了SMS4轮密钥动态生成结构示意图,根据公式:rki=Ki+4 = T'(K^?KA?KA?CIQ,其中,i为大于等于1的整数,?+1、1+2、1^+3依次紧邻 的轮密钥,rl为当前轮密钥,根据上述公式可知密钥生成过程是一个迭代过程,新的轮密 钥可以由紧邻的前面三个轮密钥推导出。又由异或操作的反向操作也是异或可得如下公式 2 rfc=rfc.+4十r(rfc + i十rfc +2十rfc +3十CX),所以解密过程可由原始轮密钥推导出最后一 轮密钥,再由最后一轮密钥反推回来,即可满足解密过程轮密钥逆序的问题。
[0039] 本实施例,在每个时钟上升沿对轮密钥和数据同步更新,节省了RAM,加密过程无 需等待所有轮密钥生成结束即可开始,增加了对数据的吞吐率。
[0040] 本发明实施例提供的轮密钥动态生成对称密码的方法可以应用在前述对应的电 路实施例一中,详情参见上述实施例一的描述,在此不再赘述。
[0041] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽 然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人 员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰 为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对 以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
[0042] 以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本 发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的 技术领域,均同理包括在本发明的专利保护范围内。
【主权项】
1. 一种轮密钥动态生成对称密码的电路,其特征在于,包括轮密钥迭代寄存器堆、数据 迭代寄存器堆、第一轮操作单元和第二轮操作单元,所述轮密钥迭代寄存器堆、所述数据迭 代寄存器堆均包括至少一个32位的D触发器,轮密钥迭代寄存器堆的输出端连接第一轮操 作单元的输入端,第一轮操作单元的输出端连接轮密钥迭代寄存器堆的输入端;数据迭代 寄存器堆的输出端与轮密钥迭代寄存器堆的输出端连接第二轮操作单元的输入端,第二轮 操作单元的输出端连接数据迭代寄存器堆的输入端,所述第一轮操作单元用于在每个时钟 上升沿对轮密钥进行更新,所述第二轮操作单元用于在每个时钟上升沿对数据迭代寄存器 堆的数据进行更新。
2. 如权利要求1所述的电路,其特征在于,所述对称密码为AES或SMS4。
3. 如权利要求1所述的电路,其特征在于,所述轮密钥迭代寄存器堆包括8个32位的 D触发器,所述数据迭代寄存器堆包括4个32位的D触发器。
4. 如权利要求2或3所述的电路,其特征在于,所述第一轮操作单元包括AES轮密钥扩 展函数W及SMS4轮密钥扩展函数。
5. 如权利要求2或3所述的电路,其特征在于,所述第二轮操作单元包括AES轮操作函 数W及SMS4轮操作函数。
6. -种轮密钥动态生成对称密码的方法,其特征在于,包括: 实时检测时钟上升沿; 在时钟上升沿,轮密钥迭代寄存器堆的输出端数据由第一轮操作单元进行轮密钥更 新,同时数据迭代寄存器堆的输出端数据与轮密钥迭代寄存器堆的输出端数据由第二轮操 作单元对数据进行更新完成一次轮操作,直至完成最后一轮轮操作。
7. 如权利要求6所述的方法,其特征在于,所述对称密码为AES或SMS4。
8. 如权利要求6所述的方法,其特征在于,所述轮密钥迭代寄存器堆包括8个32位的 D触发器,所述数据迭代寄存器堆包括4个32位的D触发器。
9. 如权利要求7或8所述的方法,其特征在于,所述第一轮操作单元包括AES轮密钥扩 展函数W及SMS4轮密钥扩展函数。
10. 如权利要求7或8所述的方法,其特征在于,所述第二轮操作单元包括AES轮操作 函数W及SMS4轮操作函数。
【专利摘要】本发明适用于数字电路技术领域,提供了一种轮密钥动态生成对称密码的电路及方法,所述电路包括:轮密钥迭代寄存器堆、数据迭代寄存器堆、第一轮操作单元和第二轮操作单元,轮密钥迭代寄存器堆的输出端连接第一轮操作单元的输入端,第一轮操作单元的输出端连接轮密钥迭代寄存器堆的输入端;数据迭代寄存器堆的输出端与轮密钥迭代寄存器堆的输出端连接第二轮操作单元的输入端,第二轮操作单元的输出端连接数据迭代寄存器堆的输入端,所述第一轮操作单元和所述第二轮操作单元分别用于在每个时钟上升沿对轮密钥和数据迭代寄存器堆的数据进行更新。本发明,加密过程无需等待所有轮密钥生成结束即可开始,节省了RAM,增加了对数据的吞吐率。
【IPC分类】H04L9-06
【公开号】CN104683097
【申请号】CN201510095693
【发明人】陈毅成, 张明宇, 郑朝霞, 资以纯
【申请人】深圳中科讯联科技有限公司
【公开日】2015年6月3日
【申请日】2015年3月4日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1