一种生成轮密钥的分组密码算法的低功耗装置及方法

文档序号:6353120阅读:335来源:国知局
专利名称:一种生成轮密钥的分组密码算法的低功耗装置及方法
技术领域
本发明涉及低功耗方法,尤其涉及一种生成轮密钥的分组密码算法的低功耗装置 及方法。
背景技术
计算机和通讯技术的迅猛发展,极大的改变了我们和世界交互的方式,网络尤其 是电子商务的广泛应用,将信息的接收,传送,处理和存储越来越紧密的和个人相联系在 一起。密码算法在保证信息的安全性,完毕性和不可抵赖性方面起着极为重要的作用。分 组密码算法由于其加解密速度快,便于硬件实现而得到广泛应用。在实际应用场合中,一次一密的加解密模式由于传输效率等方面的因素应用不是 十分广泛。现有的加解密模式更多的是对批量数据使用同一个密钥进行加解密。对于需要 生成轮密钥的分组算法而言,由于轮密钥一致,因而如果每次都进行轮密钥生成操作就会 降低系统的性能。随着集成电路的集成度越来越高,摩尔定律表明每18个月晶体管密度将增加一 倍,系统的功耗也随之增大。在嵌入式手持设备越来越普及的今天,系统的功耗越来越被人 们所关注和研究,因而如何降低芯片功耗也成为当前集成电路设计中的关键因素之一。在 实际的设计中,性能和功耗是一对不可调和的矛盾,如何在这两者之间寻找折中点也是一 个研究的热点。

发明内容
本发明的目的克服了现有技术的不足,提供了一种生成轮密钥的分组密码算法的 低功耗装置及方法。生成轮密钥的分组密码算法的低功耗装置包括主控制模块、密钥比较模块、轮密 钥生成模块、数据运算模块和轮密钥存储模块;主控制模块分别与密钥比较模块、轮密钥生 成模块、数据运算模块和轮密钥存储模块相连接,密钥比较模块与轮密钥生成模块相连接, 轮密钥生成模块和轮密钥存储模块相连接,轮密钥存储模块与数据运算模块相连接;主控 制模块根据控制信号中的启动信号和模式选择位将输入数据利用输入密钥进行加解密操 作,运算后产生最终的输出数据;具体地说就是密钥比较模块根据输入密钥产生密钥一致 信号供主控制模块使用,同时将密钥送入轮密钥生成模块,轮密钥生成模块利用原始输入 的密钥产生轮密钥并将其存储在轮密钥存储模块中。数据运算模块利用输入数据和轮密钥 存储模块输入的轮密钥,经过数据运算操作之后产生最后的输出数据。在具体的执行过程 中,主控制模块会根据系统所处的不同状态,对密钥比较模块、轮密钥生成模块、数据运算 模块和轮密钥存储模块进行分时的开启和关闭。所述的密钥比较模块的内部模块连接关系为密钥比较模块包括上次密钥寄存 器、本次密钥寄存器和比较单元;比较单元分别与上次密钥寄存器和本次密钥寄存器相连。 上次密钥寄存器和本次密钥寄存器经过比较单元之后产生密钥一致信号反馈给主控制模块。所述的轮密钥生成模块的内部模块连接关系为轮密钥生成模块包括轮密钥状态 机、多路选择器、ROM查表单元、轮函数F、临时结果寄存器、输出寄存器;轮密钥状态机分别 与多路选择器、ROM查表单元、临时结果寄存器、输出寄存器相连;多路选择器接受输入的 密钥,并与轮函数F相连;轮函数F(403)与临时结果寄存器相连;临时结果寄存器与输出 寄存器、多路选择器相连;ROM查表单元与轮函数F相连。临时结果寄存器存放的是一些中 间的运算结果,ROM查表单元存放的是一些固定的配置参数,在轮密钥生成状态机的控制 下,多路选择器在原始密钥和临时结果寄存器进行数据选择,并且和从ROM查表单元中查 到的数据一起送入轮函数F,运算产生的结果存放在临时结果寄存器中,并在轮密钥生成状 态机的控制下经输出寄存器输出到轮密钥存储模块。所述的数据运算模块的内部模块连接关系为数据运算模块包括数据运算状态 机、多路选择器、轮函数G、临时结果寄存器、输出寄存器;数据运算状态机分别与多路选择 器、临时结果寄存器、输出寄存器相连;多路选择器接受外界的输入数据,并且和轮函数G 相连;轮函数G接受来自轮密钥存储模块输入的轮密钥,并和临时结果寄存器相连;临时结 果寄存器分别和输出寄存器、多路选择器相连。临时结果寄存器存放的是一些中间的运算 结果,在数据运算状态机的控制下,多路选择器在原始的输入数据和临时结果寄存器进行 数据选择,并且和从轮密钥存储模块输入的轮密钥一起送入轮函数G,运算产生的结果存放 在临时结果寄存器中,并在数据运算状态机的控制下经输出寄存器输出。生成轮密钥的分组密码算法的低功耗方法的步骤如下
1)主控制模块的的初始化状态为空闲状态,空闲状态检测主控制模块收到的控制信 号,进行启动信号判断操作,若检测到的控制信号为启动信号,则转移到步骤2);若没有检 测到启动信号,则关闭密钥比较模块、轮密钥生成模块、轮密钥存储模块、数据运算模块,转 移到步骤1)进行下一次的启动信号检测;
2)根据控制信号中的模式选择进行模式选择判断,如果是普通模式,则开启轮密钥生 成模块和轮密钥存储模块,同时转移到步骤4);如果是加速模式,则开启密钥比较模块,同 时转移到步骤3);
3)密钥比较模块产生前后密钥一致信号,如果一致,则关闭密钥比较模块,开启数据运 算模块,同时转移到步骤5);如果不一致,则关闭密钥比较模块,开启轮密钥生成模块和轮 密钥存储模块,同时转移到步骤4);
4)进行轮密钥生成操作,并检测来自轮密钥生成模块的轮密钥生成结束信号。如果检 测到,则关闭轮密钥生成模块和轮密钥存储模块,开启数据运算模块,同时转移到步骤5); 如果没有检测到,则转移到步骤4);
5)进行数据运算操作,并检测来自数据运算模块的数据运算结束信号。如果检测到,则 关闭据运算模块,同时转移到步骤1);如果没有检测到,则转移到步骤5)。 所述的根据控制信号中的模式选择进行模式选择判断步骤,包括当运行于普通 模式时,主控制模块忽略来自密钥比较模块的密钥一致信号,对于输入数据,不论前后密 钥是否一致,均需要经过轮密钥生成和数据运算操作,使加解密周期数一样;当运行于加速 模式时,主控制模块会根据密钥比较模块产生的密钥一致信号进行加速,密钥一致信号为1 时,将跳过轮密钥生成阶段,同时关闭密钥轮生成模块和轮密钥存储模块。
本发明与现有技术相比具有的有益效果现有技术一般根据顶层控制信号对系统 进行整体的开启或关闭,当检测到启动信号时,开启整个系统,此时其中的所有子模块都处 于工作状态,而事实上即使在系统开启的时候由于所处状态的不同并不是所有模块都处于 工作状态,因而传统低功耗方法没有将低功耗效益发挥到最好。本发明基于各个子模块并 不是在所有时刻都处于工作状态这一事实,对轮密钥生成模块,轮密钥存储模块,数据运算 模块,实现分时开启和关闭,结合轮密钥复用技术,进一步降低了功耗。实验表明,对SMS4 算法使用此类技术功耗能够降低65%,同时性能最多有1倍的提升。通过顶层控制信号的控 制可以使得系统方便的在普通模式和加速模式之间进行切换,还可以实现向下兼容。


图1是生成轮密钥的分组密码算法的低功耗装置电路框图; 图2是本发明的主控制模块状态转化图3是本发明的密钥比较模块框图; 图4是本发明的轮密钥生成模块框图; 图5是本发明的数据运算模块框图; 图6是本发明的控制信号的格式; 图7是本发明的是模式切换示意图8是本发明的主控制模块和密钥比较模块交互信号示意图; 图9是本发明的主控制模块和轮密钥生成模块交互信号示意图; 图10是本发明的主控制模块和轮密钥存储模块交互信号示意图; 图11是本发明的主控制模块和数据运算模块交互信号示意图。具体实施方法
如图1所示,生成轮密钥的分组密码算法的低功耗装置包括主控制模块100、密钥比较 模块101、轮密钥生成模块102、数据运算模块103和轮密钥存储模块104 ;主控制模块100 分别与密钥比较模块101、轮密钥生成模块102、数据运算模块103和轮密钥存储模块104 相连接,密钥比较模块101与轮密钥生成模块102相连接,轮密钥生成模块102和轮密钥存 储模块104相连接,轮密钥存储模块104与数据运算模块103相连接;主控制模块100根据 控制信号中的启动信号和模式选择位将输入数据利用输入密钥进行加解密操作,运算后产 生最终的输出数据;具体地说就是密钥比较模块101根据输入密钥产生密钥一致信号供主 控制模块100使用,同时将密钥送入轮密钥生成模块102,轮密钥生成模块102利用原始输 入的密钥产生轮密钥并将其存储在轮密钥存储模块104中。数据运算模块103利用输入数 据和轮密钥存储模块104输入的轮密钥,经过数据运算操作之后产生最后的输出数据。在 具体的执行过程中,主控制模块100会根据系统所处的不同状态,对密钥比较模块101、轮 密钥生成模块102、数据运算模块103和轮密钥存储模块104进行分时的开启和关闭。如图3所示,密钥比较模块101的内部模块连接关系为密钥比较模块101包括上 次密钥寄存器300、本次密钥寄存器302和比较单元301 ;比较单元301分别与上次密钥寄 存器300和本次密钥寄存器302相连。上次密钥寄存器300和本次密钥寄存器302经过比 较单元301之后产生密钥一致信号反馈给主控制模块100。如图4所示,轮密钥生成模块102的内部模块连接关系为轮密钥生成模块102包括轮密钥状态机400、多路选择器401、ROM查表单元402、轮函数F 403、临时结果寄存器 404、输出寄存器405 ;轮密钥状态机400分别与多路选择器401、ROM查表单元402、临时结 果寄存器404、输出寄存器405相连;多路选择器401接受输入的密钥,并与轮函数F 403相 连;轮函数F 403与临时结果寄存器404相连;临时结果寄存器404与输出寄存器405、多 路选择器401相连;ROM查表单元402与轮函数F 403相连。临时结果寄存器404存放的 是一些中间的运算结果,ROM查表单元402存放的是一些固定的配置参数,在轮密钥生成状 态机400的控制下,多路选择器401在原始密钥和临时结果寄存器404进行数据选择,并且 和从ROM查表单元402中查到的数据一起送入轮函数F 403,运算产生的结果存放在临时结 果寄存器404中,并在轮密钥生成状态机400的控制下经输出寄存器405输出到轮密钥存 储模块104。如图5所示,数据运算模块103的内部模块连接关系为数据运算模块103包括数 据运算状态机500、多路选择器501、轮函数G 502、临时结果寄存器503、输出寄存器504 ; 数据运算状态机500分别与多路选择器501、临时结果寄存器503、输出寄存器504相连;多 路选择器501接受外界的输入数据,并且和轮函数G 502相连;轮函数G 502接受来自轮密 钥存储模块104输入的轮密钥,并和临时结果寄存器503相连;临时结果寄存器503分别和 输出寄存器504、多路选择器501相连。临时结果寄存器503存放的是一些中间的运算结 果,在数据运算状态机500的控制下,多路选择器501在原始的输入数据和临时结果寄存器 503进行数据选择,并且和从轮密钥存储模块104输入的轮密钥一起送入轮函数G 502,运 算产生的结果存放在临时结果寄存器503中,并在数据运算状态机500的控制下经输出寄 存器504输出
如图2所示,生成轮密钥的分组密码算法的低功耗方法的步骤如下
1)主控制模块的100的初始化状态为空闲状态200,空闲状态200检测主控制模块100 收到的控制信号,进行启动信号202判断操作,若检测到的控制信号为启动信号600,则转 移到步骤2);若没有检测到启动信号600,则关闭密钥比较模块101、轮密钥生成模块102、 轮密钥存储模块104、数据运算模块103,转移到步骤1)进行下一次的启动信号202检测;
2)根据控制信号中的模式选择601进行模式选择204判断,如果是普通模式700,则开 启轮密钥生成模块102和轮密钥存储模块104,同时转移到步骤4);如果是加速模式702, 则开启密钥比较模块101,同时转移到步骤3);
3)密钥比较模块101产生前后密钥一致205信号,如果一致,则关闭密钥比较模块101, 开启数据运算模块103,同时转移到步骤5);如果不一致,则关闭密钥比较模块101,开启轮 密钥生成模块102和轮密钥存储模块104,同时转移到步骤4);
4)进行轮密钥生成209操作,并检测来自轮密钥生成模块102的轮密钥生成结束210 信号。如果检测到,则关闭轮密钥生成模块102和轮密钥存储模块104,开启数据运算模块 103,同时转移到步骤5);如果没有检测到,则转移到步骤4);
5)进行数据运算212操作,并检测来自数据运算模块103的数据运算结束213信号。 如果检测到,则关闭据运算模块103,同时转移到步骤1);如果没有检测到,则转移到步骤 5)。生成轮密钥的分组密码算法的低功耗装置根据控制信号中的模式选择601进行 模式选择204判断步骤,包括当运行于普通模式700时,主控制模块100忽略来自密钥比较模块101的密钥一致信号802,对于输入数据,不论前后密钥是否一致,均需要经过轮密 钥生成和数据运算操作,使加解密周期数一样;当运行于加速模式702时,主控制模块100 会根据密钥比较模块101产生的密钥一致信号802进行加速,密钥一致信号802为1时,将 跳过轮密钥生成209阶段,同时关闭轮密钥生成模块102和轮密钥存储模块104。主控制模块800和密钥比较模块803通过密钥比较使能信号801、密钥一致信号 802进行交互。在装置处于空闲状态200和数据运算状态212的时候,主控制模块800将密 钥比较使能信号801置0,关闭了密钥比较模块803,降低了功耗,也不会对装置的功能造成 影响。在装置工作与加速模式702的时候,主控制模块800将密钥比较使能信号801置1, 开启了密钥比较模块803。若前后密钥一致,密钥比较模块803将密钥一致信号802置1, 主控制模块800收到此信号后,将跳过轮密钥生成209操作,同时将密钥比较使能信号801 置0,关闭密钥比较模块803 ;若前后密钥不一致,密钥比较模块803将密钥一致信号802置 0,主控制模块800收到此信号后,将开启轮密钥生成模块102和轮密钥存储模块104,进行 轮密钥生成209操作,同时将密钥比较使能信号801置0,关闭密钥比较模块803。主控制模块900和轮密钥生成模块903通过轮密钥生成使能信号901、轮密钥生成 结束信号902进行交互。在装置处于空闲状态200和数据运算状态212的时候,主控制模 块900将轮密钥生成使能信号901置0,关闭了轮密钥生成模块903,降低了功耗,也不会对 装置的功能造成影响。在装置处于轮密钥生成状态209的时候,主控制模块900将轮密钥 生成使能信号901置1,开启了轮密钥生成模块903,在产生完所有轮密钥之后轮密钥生成 模块903将轮密钥生成结束信号902置1,主控制模块900收到此信号后将轮密钥生成使能 信号置0,关闭了轮密钥生成模块903,降低了功耗,同时开启数据运算模块103,进行数据 运算212操作。主控制模块1000和轮密钥存储模块1002通过轮密钥存储使能信号1001进行交 互。在装置处于空闲状态200和数据运算状态212的时候,主控制模块1000将轮密钥存储 使能信号1001置0,关闭了轮密钥存储模块1002,降低了功耗,也不会对装置的功能造成影 响。在装置处于轮密钥生成状态209的时候,主控制模块1000将轮密钥存储使能信号1001 置1,开启了轮密钥存储模块1002。在主控制模块1000收到轮密钥生成结束信号902的时 候,将轮密钥存储使能信号置0,关闭了轮密钥存储模块1002,降低了功耗,同时开启数据 运算模块103,进行数据运算212操作。主控制模块1100和数据运算模块1103通过数据运算使能信号1101、数据运算结 束信号1102进行交互。在装置处于空闲状态200和轮密钥生成状态209的时候,主控制模 块1100将数据运算使能信号1101置0,关闭了数据运算模块1103,降低了功耗,也不会对 装置的功能造成影响。在装置处于数据运算状态212的时候,主控制模块1100将数据运算 使能信号1101置1,开启了数据运算模块1103,在所有数据都运算完成之后数据运算模块 1103将数据运算结束信号1102置1,主控制模块1100收到此信号后将数据运算使能信号 置0,关闭数据运算模块1103,降低了功耗,同时装置进入空闲状态200。上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和 权利要求的保护范围内,对本发明做出的任何修改和改变,都落入本发明的保护范围。
权利要求
1.一种生成轮密钥的分组密码算法的低功耗装置,其特征在于包括主控制模块 (100)、密钥比较模块(101)、轮密钥生成模块(102)、数据运算模块(103)和轮密钥存储模 块(104);主控制模块(100)分别与密钥比较模块(101)、轮密钥生成模块(102)、数据运算 模块(103)和轮密钥存储模块(104)相连接,密钥比较模块(101)与轮密钥生成模块(102) 相连接,轮密钥生成模块(102)和轮密钥存储模块(104)相连接,轮密钥存储模块(104)与 数据运算模块(103)相连接;主控制模块(100)根据控制信号中的启动信号和模式选择位 将输入数据利用输入密钥进行加解密操作,运算后产生最终的输出数据;具体地说就是密 钥比较模块(101)根据输入密钥产生密钥一致信号供主控制模块(100)使用,同时将密钥 送入轮密钥生成模块(102),轮密钥生成模块(102)利用原始输入的密钥产生轮密钥并将 其存储在轮密钥存储模块(104)中,数据运算模块(103)利用输入数据和轮密钥存储模块 (104)输入的轮密钥,经过数据运算操作之后产生最后的输出数据,在具体的执行过程中, 主控制模块(100)会根据系统所处的不同状态,对密钥比较模块(101)、轮密钥生成模块 (102)、数据运算模块(103)和轮密钥存储模块(104)进行分时的开启和关闭。
2.根据权利要求1所述的一种生成轮密钥的分组密码算法的低功耗装置,其特征在于 所述的密钥比较模块(101)的内部模块连接关系为密钥比较模块(101)包括上次密钥寄 存器(300)、本次密钥寄存器(302)和比较单元(301);比较单元(301)分别与上次密钥寄存 器(300)和本次密钥寄存器(302)相连;上次密钥寄存器(300)和本次密钥寄存器(302) 经过比较单元(301)之后产生密钥一致信号反馈给主控制模块(100)。
3.根据权利要求1所述的一种生成轮密钥的分组密码算法的低功耗装置,其特征在 于所述的轮密钥生成模块(102)的内部模块连接关系为轮密钥生成模块(102)包括轮密 钥状态机(400)、多路选择器(401)、ROM查表单元(402)、轮函数F (403)、临时结果寄存 器(404)、输出寄存器(405);轮密钥状态机(400)分别与多路选择器(401)、ROM查表单元 (402)、临时结果寄存器(404)、输出寄存器(40 相连;多路选择器(401)接受输入的密 钥,并与轮函数F(403)相连;轮函数F(403)与临时结果寄存器(404)相连;临时结果寄存 器(404)与输出寄存器(405)、多路选择器(401)相连;ROM查表单元(402)与轮函数F(403) 相连;临时结果寄存器(404)存放的是一些中间的运算结果,ROM查表单元(402)存放的是 一些固定的配置参数,在轮密钥生成状态机(400)的控制下,多路选择器(401)在原始密钥 和临时结果寄存器(404)进行数据选择,并且和从ROM查表单元(402)中查到的数据一起送 入轮函数W403),运算产生的结果存放在临时结果寄存器(404)中,并在轮密钥生成状态 机(400 )的控制下经输出寄存器(405 )输出到轮密钥存储模块(104 )。
4.根据权利要求1所述的一种生成轮密钥的分组密码算法的低功耗装置,其特征在于 1所述的数据运算模块(103)的内部模块连接关系为数据运算模块(103)包括数据运算状 态机(500)、多路选择器(501)、轮函数G(502)、临时结果寄存器(503)、输出寄存器(504); 数据运算状态机(500)分别与多路选择器(501)、临时结果寄存器(503)、输出寄存器(504) 相连;多路选择器(501)接受外界的输入数据,并且和轮函数G (502)相连;轮函数G (502) 接受来自轮密钥存储模块(104)输入的轮密钥,并和临时结果寄存器(503)相连;临时结果 寄存器(503)分别和输出寄存器(504)、多路选择器(501)相连;临时结果寄存器(503)存 放的是一些中间的运算结果,在数据运算状态机(500)的控制下,多路选择器(501)在原始 的输入数据和临时结果寄存器(503)进行数据选择,并且和从轮密钥存储模块(104)输入的轮密钥一起送入轮函数G(502),运算产生的结果存放在临时结果寄存器(503)中,并在 数据运算状态机(500)的控制下经输出寄存器(504)输出。
5.一种使用如权利要求1所述装置的生成轮密钥的分组密码算法的低功耗方法,其特 征在于它的步骤如下1)主控制模块的(100)的初始化状态为空闲状态(200),空闲状态(200)检测主控制模 块(100)收到的控制信号,进行启动信号(202)判断操作,若检测到的控制信号为启动信号 (600),则转移到步骤2);若没有检测到启动信号(600),则关闭密钥比较模块(101)、轮密 钥生成模块(102)、轮密钥存储模块(104)、数据运算模块(103),转移到步骤1)进行下一次 的启动信号(202)检测;2)根据控制信号中的模式选择(601)进行模式选择(204)判断,如果是普通模式 (700),则开启轮密钥生成模块(102)和轮密钥存储模块(104),同时转移到步骤4);如果是 加速模式(702 ),则开启密钥比较模块(101),同时转移到步骤3 );3)密钥比较模块(101)产生前后密钥一致(205)信号,如果一致,则关闭密钥比较模 块(101),开启数据运算模块(103),同时转移到步骤5);如果不一致,则关闭密钥比较模块 (101),开启轮密钥生成模块(102)和轮密钥存储模块(104),同时转移到步骤4);4)进行轮密钥生成(209)操作,并检测来自轮密钥生成模块(102)的轮密钥生成结束 (210)信号;如果检测到,则关闭轮密钥生成模块(102)和轮密钥存储模块(104),开启数据运算模 块(103),同时转移到步骤5);如果没有检测到,则转移到步骤4);5)进行数据运算(212)操作,并检测来自数据运算模块(103)的数据运算结束(213)信号;如果检测到,则关闭据运算模块(103),同时转移到步骤1);如果没有检测到,则转移到 步骤5)。
6.根据权利要求5所述的一种生成轮密钥的分组密码算法的低功耗方法,其特征在于 所述的根据控制信号中的模式选择(601)进行模式选择(204)判断步骤,包括当运行于普 通模式(700)时,主控制模块(100)忽略来自密钥比较模块(101)的密钥一致信号(802), 对于输入数据,不论前后密钥是否一致,均需要经过轮密钥生成和数据运算操作,使加解密 周期数一样;当运行于加速模式(702)时,主控制模块(100)会根据密钥比较模块(101)产 生的密钥一致信号(802)进行加速,密钥一致信号(802)为1时,将跳过轮密钥生成(209) 阶段,同时关闭轮密钥生成模块(102)和轮密钥存储模块(104)。
全文摘要
本发明公开了一种生成轮密钥的分组密码算法的低功耗装置及方法。装置包括轮密钥生成模块、轮密钥存储模块、数据运算模块、密钥比较模块。该装置根据需要生成轮密钥的密钥算法的特点,一方面基于各个子模块并不是在所有时刻都处于工作状态这一事实,对各个子模块进行分时的开启和关闭,另一方面根据前后加解密数据所使用的密钥是否相同有选择性的对上一次产生的轮密钥进行重用,节省了产生轮密钥的时间,在降低功耗的同时也在一定程度上提升了系统的性能。通过顶层控制信号的控制可以使得装置在普通模式和加速模式之间进行切换,因而可以实现向下兼容。实验表明,本发明对SMS4算法使用此类技术功耗能够降低65%,同时性能最多有1倍的提升。
文档编号G06F1/32GK102063179SQ20111000680
公开日2011年5月18日 申请日期2011年1月13日 优先权日2011年1月13日
发明者周祺, 李刚, 李袁鑫, 沈海斌 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1