瑞恩多尔块密码装置及其加密/解密方法

文档序号:7607461阅读:368来源:国知局
专利名称:瑞恩多尔块密码装置及其加密/解密方法
技术领域
本发明一般涉及瑞恩多尔(rijndael)块密码(cipher)装置及其加密/解密方法,尤其涉及安装在蜂窝电话、PDA、智能卡等中并且能够高速加密和解密要求安全的重要数据的rijndael块密码装置及其加密/解密方法。
背景技术
Rijndael算法是由比利时加密开发者Joan Daemen和Vincent Rijmen开发的一种对称密钥加密算法,然后由美国NIST(国家标准与技术机构)在2000年10月或其前后选择作为新的AES(高级加密标准)。
rijndael算法支持SPN(代替-置换网络)结构的可变块长度,并且使得能够关于各块长度使用128比特、192比特和256比特密钥。
rijndael算法中回合(round)的数由密钥长度确定,并且在使用128比特块的情况下,关于128比特、192比特和256比特密钥分别推荐使用10、12和14回合。
最近已知,即使使用128比特密钥,rijndael算法也不产生安全问题,因此,对使用具有128比特长度的密钥的rijndael算法的硬件实现的研究已经在进行中。
因为rijndael算法通过重复回合操作加密/解密用于rijndael块加密/解密的数据,并且特别为支持SPN结构的可变块长度而提供,rijndael块密码的加密过程不同于其解密过程。通常,用于rijndael块密码的加密过程的回合操作包含四个变换置换(substitution)、行移位(shift_row)、混合列(mixcolumn)和加回合密钥(add-round-key),而用于解密过程的回合操作包含四个变换反行移位、反置换、加回合密钥和反混合列。根据执行这些变换的方法,用于rijndael块密码的回合操作需要的时间和要使用的硬件资源不同,而进一步执行变换的方法对rijndael密码处理器的性能至关重要。因此,重要的是降低实现回合操作要求的硬件资源的数量和执行回合操作要求的时间。

发明内容
因此,申请人已经开发了包括操作单元的rijndael块密码装置及其加密/解密方法,该操作单元有效地执行用于加密/解密rijndael块密码的回合操作。
本发明的目的是解决现有技术中涉及的问题并提供一种rijndael块密码装置及其加密/解密方法,该装置安装在移动终端如蜂窝电话以及PDA或智能卡中,它要求高速率和小尺寸的密码处理器,并且它能够高速加密和解密要求安全性的重要数据。
为了实现上述目的,根据本发明实施例的rijndael块密码装置包含回合操作单元,用于将128比特输入密钥转换为用于加密或解密的128比特回合密钥,并且从输入加密或解密操作开始信号和模式信号之后输入回合操作开始信号、回合数信号和比特选择信号用于将128比特输入数据分割为高64比特和低64比特并选择高或低64比特时,根据模式信号的值存储128比特回合密钥,通过将128比特输入数据分割为高64比特和低64比特,并且通过分别对分割的高64比特和低64比特执行包含行移位、置换、混合列和加回合密钥变换的回合操作,来加密128比特输入数据,并且通过将128比特输入数据分割为高64比特和低64比特,并且通过分别对分割的高64比特和低64比特执行包含反行移位、反置换、加回合密钥和反列混合变换的回合操作,来解密128比特输入数据;回合操作控制单元,用于从输入加密或解密操作开始信号和模式信号时,通过将用于将128比特输入数据分割为高64比特和低64比特并选择高或低64比特的比特选择信号、回合操作开始信号和回合数信号发送到回合操作单元,控制回合操作单元的回合操作;64比特数据寄存器,用于存储由回合操作单元执行的每个回合操作期间产生的高64比特输入数据的中间加密或解密数据;以及128比特数据寄存器,用于存储由回合操作单元执行的每个回合操作期间产生的低64比特输入数据的中间加密或解密数据作为它的低64比特,并且存储作为上一次回合操作的结果产生并存储在64比特数据寄存器中的加密或解密数据作为它的高64比特数据。
为了实现上述目的,根据本发明第一个实施例的rijndael块加密方法包含以下步骤如果通过总线输入加密或解密操作开始信号和模式信号之后,从回合操作控制单元输入四时钟回合操作开始信号和回合数信号,那么根据从回合操作开始信号的第一个时钟变为‘1’时通过总线输入的模式信号的值,回合操作单元的回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;如果从回合操作控制单元输入四时钟回合操作开始信号和比特选择信号,那么当第一个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的高64比特数据的字节移位,并且通过第一个复用器输出字节移位的高64比特数据,并且置换/反置换变换单元连续地执行高64比特数据的置换,输出置换的高64比特数据到第一个解复用器,并且在64比特数据寄存器中存储置换的高64比特数据;当回合操作开始信号的第二个时钟变为‘1’时,列混合/反列混合变换单元执行通过第一个解复用器的加密输出端输出并存储在64比特数据寄存器中的高64比特数据的列混合,输出列混合变换的高64比特数据到第二个解复用器,并且在64比特数据寄存器中存储列混合变换的高64比特数据,行移位/反行移位变换单元同时执行通过总线输入的128比特输入数据的低64比特数据的字节移位,并且通过第一个复用器输出字节移位的低64比特数据,并且置换/反置换变换单元连续地执行低64比特数据的置换,输出置换的低64比特数据到第一个解复用器,并且在128比特数据寄存器的低64比特中存储置换的低64比特数据;当回合操作开始信号的第三个时钟变为‘1’时,加回合密钥变换单元将通过第二个解复用器的加密输出端输出并存储在64比特数据寄存器中的高64比特数据加到由回合密钥产生单元产生的高64比特回合密钥,并且在128比特数据寄存器的高64比特中存储相加的高64比特数据,并且列混合/反列混合变换单元同时执行通过第一个解复用器的加密输出端输出并存储在128比特数据寄存器中的低64比特数据的列混合,输出列混合变换的低64比特数据到第二个解复用器,并且在128比特数据寄存器的低64比特中存储列混合变换的低64比特数据;以及当回合操作开始信号的第四个时钟变为‘1’时,加回合密钥变换单元将通过第二个解复用器的加密输出端输出并存储在128比特数据寄存器中的低64比特数据加到由回合密钥产生单元产生的低64比特回合密钥,并且在128比特数据寄存器的低64比特中存储相加的低64比特数据。
为了实现上述目的,根据本发明第一个实施例的rijndael块解密方法包含以下步骤如果通过总线输入加密或解密操作开始信号和模式信号之后,从回合操作控制单元输入四时钟回合操作开始信号和回合数信号,那么根据从回合操作开始信号的第一个时钟变为‘1’时通过总线输入的模式信号的值,回合操作单元的回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;如果从回合操作控制单元输入四时钟回合操作开始信号和比特选择信号,那么当第一个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的高64比特数据的反字节移位,并且通过第一个复用器输出反字节移位的高64比特数据,并且置换/反置换变换单元连续地执行高64比特数据的反置换,输出反置换的高64比特数据到第一个解复用器,并且在64比特数据寄存器中存储反置换的高64比特数据;当回合操作开始信号的第二个时钟变为‘1’时,加回合密钥变换单元将通过第一个解复用器的解密输出端输出并存储在64比特数据寄存器中的高64比特数据加到由回合密钥产生单元产生的高64比特回合密钥,输出相加的高64比特数据到第三个解复用器,并且在64比特数据寄存器中存储相加的高64比特数据,行移位/反行移位变换单元同时执行通过总线输入的128比特输入数据的低64比特数据的字节反移位,并且通过第一个复用器输出字节反移位的低64比特数据,并且置换/反置换变换单元连续地执行低64比特数据的反置换,输出反置换的低64比特数据到第一个解复用器,并且在128比特数据寄存器的低64比特中存储反置换的低64比特数据;当回合操作开始信号的第三个时钟变为‘1’时,列混合/反列混合变换单元执行通过第三个解复用器的解密输出端输出并存储在64比特数据寄存器中的高64比特数据的反列混合,通过第二个解复用器输出反列混合变换的高64比特数据,并且在128比特数据寄存器的高64比特中存储反列混合变换的高64比特数据,并且加回合密钥变换单元同时将通过第一个解复用器的解密输出端输出并存储在128比特数据寄存器中的低64比特数据加到由回合密钥产生单元产生的低64比特回合密钥,通过第三个解复用器输出相加的低64比特数据,并且在128比特数据寄存器的低64比特中存储相加的低64比特数据;以及当回合操作开始信号的第四个时钟变为‘1’时,列混合/反列混合变换单元执行通过第三个解复用器的解密输出端输出并存储在128比特数据寄存器中的低64比特数据的反列混合,通过第二个解复用器输出反列混合变换的低64比特数据,并且在128比特数据寄存器的低64比特中存储反列混合变换的低64比特数据。
为了实现上述目的,根据本发明第二个实施例的rijndael块加密方法包含以下步骤如果通过总线输入加密或解密操作开始信号和模式信号之后,从回合操作控制单元输入三时钟回合操作开始信号和回合数信号,那么根据从回合操作开始信号的第一个时钟变为‘1’时通过总线输入的模式信号的值,回合操作单元的回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;如果从回合操作控制单元输入三时钟回合操作开始信号和比特选择信号,那么当第一个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的高64比特数据的字节移位,并且通过第一个复用器输出字节移位的高64比特数据,并且置换/反置换变换单元连续地执行高64比特数据的置换,输出置换的高64比特数据到第一个解复用器,并且在64比特数据寄存器中存储置换的高64比特数据;当回合操作开始信号的第二个时钟变为‘1’时,列混合/反列混合变换单元执行通过第一个解复用器的加密输出端输出并存储在64比特数据寄存器中的高64比特数据的列混合,并且输出列混合变换的高64比特数据到第二个解复用器,加回合密钥变换单元连续地将该高64比特数据加到由回合密钥产生单元产生的高64比特回合密钥,并且在64比特数据寄存器中存储相加的高64比特数据,行移位/反行移位变换单元同时执行通过总线输入的128比特输入数据的低64比特数据的字节移位,并且通过第一个复用器输出字节移位的低64比特数据,并且置换/反置换变换单元连续地执行低64比特数据的置换,输出置换的低64比特数据到第一个解复用器,并且在128比特数据寄存器的低64比特中存储置换的低64比特数据;以及当回合操作开始信号的第三时钟变为‘1’时,将相加然后存储在64比特数据寄存器中的64比特数据存储在128比特数据寄存器的高64比特中,列混合/反列混合变换单元同时执行通过第一个解复用器的加密输出端输出并存储在128比特数据寄存器中的低64比特数据的列混合,并且输出列混合变换的低64比特数据到第二个解复用器,并且加回合密钥变换单元连续地将低64比特数据加到由回合密钥产生单元产生的低64比特回合密钥,并且在128比特数据寄存器的低64比特中存储相加的低64比特数据。
为了实现上述目的,根据本发明第二个实施例的rijndael块解密方法包含以下步骤如果通过总线输入加密或解密操作开始信号和模式信号之后,从回合操作控制单元输入三时钟回合操作开始信号和回合数信号,那么根据从回合操作开始信号的第一个时钟变为‘1’时通过总线输入的模式信号的值,回合操作单元的回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;如果从回合操作控制单元输入三时钟回合操作开始信号和比特选择信号,那么当第一个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的高64比特数据的反字节移位,并且通过第一个复用器输出反字节移位的高64比特数据,并且置换/反置换变换单元连续地执行高64比特数据的反置换,输出反置换的高64比特数据到第一个解复用器,并且在64比特数据寄存器中存储反置换的高64比特数据;当回合操作开始信号的第二个时钟变为‘1’时,加回合密钥变换单元将通过第一个解复用器的解密输出端输出并存储在64比特数据寄存器中的高64比特数据加到由回合密钥产生单元产生的高64比特回合密钥,并且输出相加的高64比特数据到第三个解复用器,列混合/反列混合变换单元连续地执行相加的高64比特数据的反列混合,通过第二个解复用器输出反列混合变换的高64比特数据,并且在64比特数据寄存器中存储反列混合变换的高64比特数据,行移位/反行移位变换单元同时执行通过总线输入的128比特输入数据的低64比特数据的字节反移位,并且通过第一个复用器输出字节反移位的低64比特数据,并且置换/反置换变换单元连续地执行低64比特数据的反置换,输出反置换的低64比特数据到第一个解复用器,并且在128比特数据寄存器的低64比特中存储反置换的低64比特数据;以及当回合操作开始信号的第三个时钟变为‘1’时,加回合密钥变换单元将通过第一个解复用器的解密输出端输出并存储在128比特数据寄存器中的低64比特数据加到由回合密钥产生单元产生的低64比特回合密钥,并且输出相加的低64比特数据到第三个解复用器,列混合/反列混合变换单元连续地执行相加的低64比特数据的反列混合,通过第二个解复用器输出反列混合变换的低64比特数据,并且在128比特数据寄存器的低64比特中存储反列混合变换的低64比特数据,同时将存储在64比特数据寄存器中的高64比特数据存储在128比特数据寄存器的高64比特中。
为了实现上述目的,根据本发明第三个实施例的rijndael块加密方法包含以下步骤如果通过总线输入加密或解密操作开始信号和模式信号之后,从回合操作控制单元输入二时钟回合操作开始信号和回合数信号,那么根据从回合操作开始信号的第一个时钟变为‘1’时通过总线输入的模式信号的值,回合操作单元的回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;如果从回合操作控制单元输入二时钟回合操作开始信号和比特选择信号,那么当第一个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的高64比特数据的字节移位,并且通过第一个复用器输出字节移位的高64比特数据,置换/反置换变换单元连续地执行高64比特数据的置换,输出置换的高64比特数据到第一个解复用器,并且通过第一个解复用器输出置换的高64比特数据,列混合/反列混合变换单元执行通过第一个解复用器的加密输出端输出的高64比特数据的列混合,并且输出列混合变换的高64比特数据到第二个解复用器,并且加回合密钥变换单元连续地将这个高64比特数据加到由回合密钥产生单元产生的高64比特回合密钥,并且在64比特数据寄存器中存储相加的高64比特数据;以及当回合操作开始信号的第二个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的低64比特数据的字节移位,并且通过第一个复用器输出字节移位的低64比特数据,并且置换/反置换变换单元连续地执行低64比特数据的置换,并且输出置换的低64比特数据到第一个解复用器,列混合/反列混合变换单元连续地执行低64比特数据的列混合,并且输出列混合变换的低64比特数据到第二个解复用器,加回合密钥变换单元连续地将这个低64比特数据加到由回合密钥产生单元产生的低64比特回合密钥,并且在128比特数据寄存器的低64比特中存储相加的低64比特数据,同时将存储在64比特数据寄存器中的高64比特数据存储在128比特数据寄存器的高64比特中。
为了实现上述目的,根据本发明第二个实施例的rijndael块解密方法包含以下步骤如果通过总线输入加密或解密操作开始信号和模式信号之后,从回合操作控制单元输入两时钟回合操作开始信号和回合数信号,那么根据从回合操作开始信号的第一个时钟变为‘1’时通过总线输入的模式信号的值,回合操作单元的回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;如果从回合操作控制单元输入两时钟回合操作开始信号和比特选择信号,那么当第一个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的高64比特数据的反字节移位,并且通过第一个复用器输出反字节移位的高64比特数据,置换/反置换变换单元连续地执行高64比特数据的反置换,并且输出反置换的高64比特数据到第一个解复用器,加回合密钥变换单元连续地将通过第一个解复用器的解密输出端输出的高64比特数据加到由回合密钥产生单元产生的高64比特回合密钥,并且输出相加的高64比特数据到第三个解复用器,并且列混合/反列混合变换单元连续地执行相加的高64比特数据的反列混合,通过第二个解复用器输出反列混合变换的高64比特数据,并且在64比特数据寄存器中存储反列混合变换的高64比特数据;以及当回合操作开始信号的第二个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的低64比特数据的字节反移位,并且通过第一个复用器输出字节反移位的低64比特数据,置换/反置换变换单元连续地执行低64比特数据的反置换,并且输出反置换的低64比特数据到第一个解复用器,加回合密钥变换单元连续地将通过第一个解复用器的解密输出端输出的低64比特数据加到由回合密钥产生单元产生的低64比特回合密钥,并且输出相加的低64比特数据到第三个解复用器,列混合/反列混合变换单元连续地执行相加的低64比特数据的反列混合,通过第二个解复用器输出反列混合变换的低64比特数据,并且在128比特数据寄存器的低64比特中存储反列混合变换的低64比特数据,同时将存储在64比特数据寄存器中的高64比特数据存储在128比特数据寄存器的高64比特中。


通过参考

本发明的优选实施例,本发明的上述目的、其它特征和优点将变得更显然,在附图中图1是说明根据本发明的rijndael块密码装置的构造的视图。
图2是说明回合操作单元的构造的视图。
图3是说明回合密钥产生单元的构造的视图。
图4是说明根据本发明的加密rijndael块密码的方法的第一个时序图。
图5是说明根据本发明的解密rijndael块密码的方法的第一个时序图。
图6是说明根据本发明的加密rijndael块密码的方法的第二个时序图。
图7是说明根据本发明的解密rijndael块密码的方法的第二个时序图。
图8是说明根据本发明的加密rijndael块密码的方法的第三个时序图。
图9是说明根据本发明的解密rijndael块密码的方法的第三个时序图。
具体实施例方式
现在,将参考附图详细说明根据本发明优选实施例的rijndael块密码装置及其加密/解密方法。
参考图1,根据本发明的rijndael块密码装置的主要意图在于执行所有回合操作,用于以64比特为单位加密和解密用于rijndael块加密/解密的输入数据;以及执行回合操作的同时产生回合操作要求的回合密钥。
为了rijndael块加密/解密,从通过总线200输入加密或解密操作开始信号“开始”和模式信号之后,输入回合操作开始信号Round_start、回合数信号Round_number和比特选择信号sel用于将128比特输入数据分割为高64比特和低64比特并对每个回合操作选择高或低64比特时,回合操作单元100将128比特输入密钥转换为128比特回合密钥RK用于加密或解密,并且根据模式信号的值存储128比特回合密钥。
如果模式信号的值指示‘0’,通过将128比特输入数据分割为高64比特和低64比特,并且关于分割的高64比特和低64比特分别执行包含行移位(shift_row)、置换、列混合和加回合密钥(add-round-key)的变换的回合操作,回合操作单元100加密128比特输入数据。
如果模式信号的值指示‘1’,通过将128比特输入数据分割为高64比特和低64比特,并且关于分割的高64比特和低64比特分别执行包含反行移位、反置换、加回合密钥和反列混合的变换的回合操作,回合操作单元100解密128比特输入数据。
如果通过总线200输入加密或解密操作开始信号和模式信号,那么从输入加密或解密操作开始信号和模式信号时,通过向回合操作单元100发送回合操作开始信号Round_start、回合数信号Round_number和比特选择信号用于将128比特输入数据分割为高64比特和低64比特并对每个回合操作选择高或低64比特,回合操作控制单元300控制回合操作单元100的回合操作。
64比特数据寄存器400存储由回合操作单元100执行的每个回合操作期间产生的高64比特输入数据的中间加密或解密数据。
128比特数据寄存器500存储由回合操作单元100执行的每个回合操作期间产生的低64比特输入数据的中间加密或解密数据作为它的低64比特,并且存储作为上一个回合操作的结果产生并存储在64比特数据寄存器400中的加密或解密数据作为它的高64比特。
参考图2,如果从回合操作控制单300输入回合操作开始信号和回合数信号,那么回合操作单元100的回合密钥产生单元110根据通过总线200输入的模式信号的值将128比特输入密钥转换为128比特回合密钥RK,并且在内部128比特回合密钥寄存器中存储128比特回合密钥。
如果从回合操作控制单300输入回合操作开始信号和比特选择信号,那么回合操作单元100的行移位/反行移位变换单元120根据通过总线200输入的模式信号的值,执行从通过总线200输入的128比特输入数据分割的高64比特和低64比特的字节移位不同数,并且通过第一个复用器121输出字节移位的高64比特和低64比特,根据比特选择信号的值控制该复用器的输出。
回合操作单元100的置换/反置换变换单元130,使用相对一个字节输入提供一个字节输出的置换盒(S-盒)或反置换盒(SI-盒),执行从行移位/反行移位变换单元120输出的高64比特数据和低64比特数据的置换或反置换。
回合操作单元100的第一个解复用器(demultiplexer)140根据模式信号的值,通过它的加密输出端‘0’和它的解密输出端‘1’中任何一个输出从置换/反置换变换单元130输出的高64比特数据或低64比特数据。
回合操作单元100的列混合/反列混合变换单元150,执行通过第一个解复用器140的加密输出端“0’输入的高64比特数据或低64比特数据的列混合,或者执行已经加回合密钥变换的高64比特数据或低64比特数据的反列混合。
回合操作单元100的第二个解复用器160根据模式信号的值,通过它的加密输出端‘0’和它的解密输出端‘1’中任何一个输出从列混合/反列混合变换单元150输出的高64比特数据或低64比特数据。
回合操作单元100的加回合密钥变换单元170将通过第一个解复用器140的解密输出端‘1’或第二个解复用器160的加密输出端‘0’输入的高64比特数据或低64比特数据加到从回合密钥产生单元110输出的用于加密或解密的128比特回合密钥RK。
回合操作单元100的第三个解复用器180根据模式信号的值,通过它的加密输出端‘0’和它的解密输出端‘1’中任何一个输出从加回合密钥变换单元170输出的高64比特数据或低64比特数据。
参考图3,回合密钥产生单元110的128比特预密钥寄存器111存储通过总线200输入的128比特输入密钥作为预密钥,用于将128比特输入密钥转换为用于加密或解密的128比特回合密钥RK,并且存储每个回合操作之后产生的128比特回合密钥RK作为预密钥,用于产生下一个回合操作中使用的回合密钥。
回合密钥产生单元110的128比特回合密钥寄存器111a为每个回合操作存储用于加密或解密的128比特回合密钥RK。在图3中,每个回合操作之后,要存储在128比特回合密钥寄存器111a中的128比特回合密钥RK被备份到128比特预密钥寄存器111,并且被用作下一个回合操作中的先前回合的回合密钥(即,预密钥)。
回合密钥产生单元110的常数存储单元112存储常数值Rcon,该常数值根据由回合数信号指示的回合的阶(order)确定,该回合数信号从回合操作控制单元300输入。最好常数存储单元112包含ROM。
根据通过总线200输入的模式信号的值控制回合密钥产生单元110的第二个复用器113,并且选择并输出从128比特预密钥寄存器111和128比特回合密钥寄存器111a输入的用于加密或解密的32比特密钥中的任何一个。
回合密钥产生单元110的移位器114对通过第二个复用器113输入的32比特密钥执行向左一个字节的循环移位。
回合密钥产生单元110的置换变换单元115包含用于执行置换操作的置换盒(S-盒),并且对由移位器114移位的32比特密钥执行置换。
回合密钥产生单元110的第一个XOR门116执行从置换变换单元115输出的32比特密钥的最高有效字节与存储在常数存储单元112中的常数值的XOR操作。
回合密钥产生单元110的回合XOR操作单元117,通过使用通过将第一个XOR门116的输出比特加到除了置换变换单元115的最高有效字节的剩余24比特得到的32比特值、存储在128比特预密钥寄存器111中的先前回合的128比特回合密钥(即预密钥)、以及存储在128比特回合密钥寄存器111a中的新回合的128比特回合密钥RK,执行XOR操作,来为回合操作的每个回合,新产生要存储在128比特回合密钥寄存器111a中的用于加密或解密的128比特回合密钥RK。
回合XOR操作单元117的第二个XOR门118通过执行下述两者的XOR操作,产生128比特回合密钥的最高有效32比特回合密钥RK0,用于新回合的加密或解密通过将第一个XOR门116的输出比特加到除了置换变换单元115的最高有效字节的剩余24比特得到的32比特值;以及先前回合的128比特回合密钥的最高有效32比特回合密钥PK0。
回合XOR操作单元117的第三个XOR门118a通过执行下述两者的XOR操作,产生128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥RK1,用于新回合的加密新回合的128比特回合密钥的最高有效32比特(即第127个比特到第96个比特)回合密钥RK0,以及紧接先前回合的128比特回合密钥的最高有效32比特的32比特(即,第95个比特到第64个比特)回合密钥PK1。
回合XOR操作单元117的第三个XOR门118a通过执行下述两者的XOR操作,也产生128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥RK1,用于新回合的解密先前回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥PK0,以及紧接最高有效32比特的32比特(即,第95个比特到第64个比特)回合密钥PK1。
根据通过总线200输入的模式信号的值控制回合XOR操作单元117的第三个复用器119,并且选择性地确定第三个XOR门118a的输入信号。
回合XOR操作单元117的第四个XOR门118b通过执行下述两者的XOR操作,产生128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥RK2,用于新回合的加密新回合的128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥RK1,以及先前回合的128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥PK2。
第四个XOR门118b通过执行下述两者的XOR操作,也产生128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥RK2,用于新回合的解密先前回合的128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥PK1,以及接下来的32比特(即,第63个比特到第32个比特)回合密钥PK2。
根据通过总线200输入的模式信号的值控制回合XOR操作单元117的第四个复用器119a,并且选择性地确定第四个XOR门118b的输入信号。
回合XOR操作单元117的第五个XOR门118c通过执行下述两者的XOR操作新回合的128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥RK2,以及先前回合的128比特回合密钥的32比特(即,第31个比特到第0个比特)回合密钥PK3,产生128比特回合密钥的32比特(即,第31个比特到第0个比特)回合密钥RK3,用于新回合的加密。
第五个XOR门118c通过执行下述两者的XOR操作先前回合的128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥PK2,以及接下来的32比特(即,第31个比特到第0个比特)回合密钥PK3,也产生128比特回合密钥的32比特(即,第31个比特到第0个比特)回合密钥RK3,用于新回合的解密。
根据通过总线200输入的模式信号的值控制回合XOR操作单元117的第五个复用器119b,并且选择性地确定第五个XOR门118c的输入信号。
根据本发明如上构造的rijndael块密码装置执行加密和解密过程如下首先,将参考图1和2说明rijndael块密码装置的加密和解密操作。
如果回合操作开始,那么当通过总线200输入初始的128比特输入密钥到回合密钥产生单元100时执行回合密钥产生过程,并且128比特输入数据输入到行移位/反行移位变换单元120。
这时,如rijndael块密码算法中定义的,行移位/反行移位变换单元120执行不同字节数的移位/反移位。
如果回合操作控制单元300发送选择高64比特(sel=‘1’)的信号,那么行移位/反行移位变换单元120通过第一个复用器121输出高64比特,而如果回合操作控制单元300发送选择低64比特(sel=‘0’)的信号,那么行移位/反行移位变换单元120通过第一个复用器121输出低64比特。
执行如上所述的字节行移位/反行移位操作之后,高或低64比特数据输入到置换/反置换变换单元130,并且由置换盒(S-盒)或反置换盒(SI-盒)执行数据的置换或反置换。这时,S-盒和SI-盒用作置换变换单元,如rijndael算法的规范中定义的,它相对一个字节输入输出一个字节输出。同样地,因为根据本发明提出的置换/反置换变换单元130一次只处理64比特数据就足够了,所以它只要求8个S-盒或者8个SI-盒。
如果执行如上所述的置换/反置换操作之后通过总线200输入选择加密过程(模式=‘0’)的模式信号,那么高或低64比特数据通过第一个解复用器140的加密输出端‘0’输入到列混合/反列混合变换单元150,而如果通过总线200输入选择解密过程(模式=‘1’)的模式信号,那么高或低64比特数据通过第一个解复用器140的解密输出端‘1’通过列混合/反列混合变换单元150输入到加回合密钥变换单元170。
如果通过总线200输入选择加密过程(模式=‘0’)的模式信号,那么已经经过列混合/反列混合变换单元的64比特数据通过第二个解复用器160的加密输出端‘0’输入到加回合密钥变换单元170,而如果通过总线200输入选择解密过程(模式=‘1’)的模式信号,那么通过第二个解复用器160的解密输出端‘1’输出64比特数据作为回合操作的结果数据。
同样地,如果通过总线200输入选择加密过程(模式=‘0’)的模式信号,已经经过加回合密钥变换单元170的64比特数据通过第三个解复用器180的加密输出端‘0’作为回合操作的结果输出输出,而如果通过总线200输入选择解密过程(模式=‘1’)的模式信号,64比特数据通过第三个解复用器180的解密输出端‘1’输入到列混合/反列混合变换单元150。
如上所述,因为本发明意图在于通过共享加密过程和解密过程中共用的组成元件降低硬件资源的使用,所以各变换单元具有加密和解密的功能。
同时,将参考图3说明根据本发明的rijndael块密码装置的加密和解密操作要求并由回合密钥产生单元100执行的用于加密或解密的回合密钥的产生。
如果从回合操作控制单元300输入4时钟或3时钟回合操作开始信号和回合数信号到回合操作单元100,那么回合操作开始。
如果回合操作开始,那么回合密钥产生单元110使用存储在128比特预密钥寄存器111中的先前回合的128比特回合密钥(即,预密钥),开始产生新回合的回合密钥RK。
如果通过总线200输入选择加密(模式=‘0’)的模式信号,那么128比特预密钥寄存器111的先前回合的128比特回合密钥的最低有效32比特(PK3)通过第二个复用器113输入到移位器114。
相比之下,如果通过总线200输入选择解密(模式=‘1’)的模式信号,那么第五个XOR门118c执行先前回合的回合密钥的低64比特PK2和PK3的XOR操作,并且暂时存储XOR的32比特作为新回合密钥的最低有效32比特RK3。同时,这个值RK3通过第二个复用器113输入到移位器114。
输入到移位器114的32比特密钥左移一个字节,然后由包括4个S-盒的置换变换单元115置换。
如上所述,置换变换的32比特密钥的最高有效8比特密钥由第一个XOR门116与常数值Rcon异或(XOR),该常数值根据由从回合操作控制单元300输入的回合数信号指示的回合的阶确定。从第一个XOR门116输出的作为结果的8比特加到从置换变换单元115输出的剩余24比特,并且相加后的比特输入到回合XOR操作单元117的第二个XOR门118。
尤其通过限制其中有关回合数的常数值在回合密钥产生过程期间只与已经经过置换变换单元115的32比特数据的高8比特异或的部分,可以得到硬件尺寸减小的效果。为此,rijndael算法规范说明了这样的结构通过填充24比特的‘0’到8比特常数值生成32比特有关回合数的常数值,然后执行32比特常数值和已经经过置换变换单元115的32比特值的XOR操作。
然后,第二个XOR门118执行下述两者的XOR操作通过将从第一个XOR门116输出的作为结果的8比特与从置换变换单元115输出的剩余24比特相加得到的32比特,以及先前回合的回合密钥的最高有效32比特PK0,并且存储XOR操作的结果值作为新回合的最高有效32比特回合密钥RK0。
如上所述产生新回合的加密或解密要求的最高有效32比特回合密钥RK0之后,第三个XOR门118a在加密过程的情况下通过执行下述两者的XOR操作新回合的最高有效32比特回合密钥RK0以及先前回合的高32比特(第95个比特到第64个比特)回合密钥PK1,产生新回合的接下来的32比特回合密钥RK1。在解密过程的情况下,第三个XOR门118a通过执行下述两者的XOR操作先前回合的最高有效32比特回合密钥PK0,以及先前回合的接下来的高32比特回合密钥PK1,产生新回合的接下来的32比特回合密钥RK1。
此时,根据通过总线200输入并指示加密过程或解密过程的模式信号,第三个复用器119确定第三个XOR门118a的输入值。
如上所述产生紧接新回合的最高有效32比特回合密钥RK0的32比特回合密钥RK1之后,由与第三个XOR门118a以相同方式操作的第四个XOR门118b和第五个XOR门118c产生接下来的32比特回合密钥RK2和最低有效32比特回合密钥RK3用于加密或解密。第四个复用器119a确定第四个XOR门118b的输入值,而第五个复用器119b确定第五个XOR门118c的输入值。
特别是,以32比特为单位产生新回合的128比特回合密钥要求的时间在加密过程的情况下对应于从回合操作控制单元300输入的回合操作开始信号的整个4时钟周期,而在解密过程的情况下对应于整个2时钟周期。
实际上,当加密回合操作开始信号的第一个时钟变为‘1’时,通过第二个XOR门118产生新回合的最高有效32比特回合密钥RK0,并且无论何时第二个、第三个和第四个时钟变为‘1’时,分别通过第三个XOR门118a、第四个XOR门118b和第五个XOR门118c产生新回合的32比特回合密钥RK1、RK2和RK3。同样地,当解密回合操作开始信号的第一个时钟变为‘1’时,通过第二个XOR门118产生新回合的最高有效32比特回合密钥PK0,而当第二个时钟变为‘1’时,通过第三个XOR门118a、第四个XOR门118b和第五个XOR门118c同时产生新回合的32比特回合密钥RK1、RK2和RK3。
在从回合操作控制单元300输入3时钟回合操作开始信号到回合操作单元100的情况下,回合密钥产生单元110在2时钟周期期间产生加密回合密钥。
此时,当回合操作开始信号的第一个时钟变为‘1’时,执行产生新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0的过程。
如果回合操作开始信号的第二个时钟变为‘1’,那么通过执行下述两者的XOR操作新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0以及紧接先前回合的128比特回合密钥的最高有效32比特的32比特回合密钥PK1,第三个XOR门118a产生128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥RK1用于新回合的加密。
同时,通过执行下述两者的XOR操作结果值(RK0PK1)——该结果值由新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0和紧接先前回合的128比特回合密钥的最高有效32比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥PK1的第三个XOR门的XOR操作得到——以及先前回合的32比特(即,第63个比特到第32个比特)回合密钥PK2,第四个XOR门118b产生128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥RK2用于新回合的加密。
同时,通过执行下述两者的XOR操作结果值(RK0PK1)——该结果值由已经由第三个XOR门118a异或的、新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0,与紧接先前回合的128比特回合密钥的最高有效32比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥PK1,进行第四个XOR门的XOR操作来得到——以及先前回合的32比特(即,第63个比特到第32个比特)回合密钥PK2,从而产生XOR操作的结果值(RK0PK1PK2),然后通过执行结果值(RK0PK1PK2)和先前回合的32比特(即,第31个比特到第0个比特)回合密钥PK3的XOR操作,第五个XOR门118c产生128比特回合密钥的32比特(即,第31个比特到第0个比特)回合密钥RK3用于新回合的加密。
在从回合操作控制单元300输入2时钟回合操作开始信号到回合操作单元100的情况下,回合密钥产生单元110在一个时钟周期期间产生加密回合密钥。
此时,当输入回合操作开始信号并且时钟同时处于‘0’状态时,通过第二个XOR门118执行产生新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0的过程。
如果回合操作开始信号的第一个时钟变为‘1’,那么通过执行下述两者的XOR操作新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0以及紧接先前回合的128比特回合密钥的最高有效32比特的32比特回合密钥PK1,第三个XOR门118a产生128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥RK1用于新回合的加密。
同时,通过执行下述两者的XOR操作结果值(RK0PK1)——该结果值由新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0和紧接先前回合的128比特回合密钥的最高有效32比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥PK1的第三个XOR门的XOR操作得到——以及先前回合的32比特(即,第63个比特到第32个比特)回合密钥PK2,第四个XOR门118b产生128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥RK2用于新回合的加密。
同时,通过执行下述两者的XOR操作结果值(RK0PK1)——该结果值由已经由第三个XOR门118a异或的、新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0,与紧接先前回合的128比特回合密钥的最高有效32比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥PK1,进行第四个XOR门的XOR操作来得到——以及先前回合的32比特(即,第63个比特到第32个比特)回合密钥PK2,从而产生XOR操作的结果值(RK0PK1PK2),然后通过执行结果值(RK0PK1PK2)和先前回合的32比特(即,第31个比特到第0个比特)回合密钥PK3的XOR操作,第五个XOR门118c产生128比特回合密钥的32比特(即,第31个比特到第0个比特)回合密钥RK3用于新回合的加密。
在从回合操作控制单元300输入2时钟回合操作开始信号到回合操作单元100的情况下,回合密钥产生单元110在一个时钟周期期间产生解密回合密钥。
此时,当输入回合操作开始信号并且时钟同时处于‘0’状态时,通过第二个XOR门118执行产生新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0的过程。
如果回合操作开始信号的第一个时钟变为‘1’,那么通过执行下述两者的XOR操作先前回合的最高有效32比特PK0以及先前回合的接下来的高32比特PK1,第三个XOR门118a产生新回合的接下来的32比特回合密钥RK1,并且接下来与第三个XOR门118a以相同方式操作的第四个XOR门118b和第五个XOR门118c,产生用于解密的接下来的32比特回合密钥RK2和最低有效32比特回合密钥RK3。在第一个时钟周期期间同时执行这些过程。
现在,根据从回合操作控制单元300输入到回合操作单元100的回合操作开始信号的时钟数,将更详细地说明如上所述执行加密和解密过程的rijndael块密码装置的操作。
图4是说明根据本发明的加密rijndael块密码的方法的第一个时序图。
参考图4,如果从回合操作控制单元300输入四时钟回合操作开始信号和回合数信号到回合操作单元100(步骤S400),那么在第一个时钟变为‘1’的时刻,关于128比特回合操作输入数据的高64比特数据,连续地执行字节移位变换和置换操作(步骤S401),并且这两个过程在一个时钟内执行。这些过程的结果存储在64比特数据寄存器400中。同样地,在回合操作开始信号的第一个时钟变为‘1’的时刻,使用128比特回合输入密钥的128比特回合密钥产生过程开始(步骤S401a)。
在回合操作开始信号的第二个时钟变为‘1’的时刻,使用存储在64比特数据寄存器400中的64比特数据的列混合变换利用它的存储在64比特数据寄存器400中结果值执行(步骤S402),同时连续执行回合操作输入数据的低64比特数据的字节移位变换和置换操作(步骤S402)。这两个过程在一个时钟内进行。同样,低64比特数据的字节移位变换和置换操作的结果数据存储在存储回合操作结果的128比特数据寄存器500的低64比特位置。
在回合操作开始信号的第三个时钟变为‘1’的时刻,存储在64比特数据寄存器400中的64比特输入到加回合密钥变换单元170,以便加到由回合密钥产生单元110产生的回合密钥的高64比特,并且结果值存储在128比特数据寄存器500的高64比特位置(步骤S403)。而且,128比特数据寄存器500的低64比特数据也执行列混合变换,并且结果值存储在128比特数据寄存器500的低64比特位置(步骤S403)。
在回合操作开始信号的第四个时钟变为‘1’的时刻,128比特数据寄存器500的低64比特输入到加回合密钥变换单元170,以便加到由回合密钥产生单元110产生的回合密钥的低64比特,并且结果值存储在128比特数据寄存器500的低64比特位置(步骤S404)。
因此,在执行上述加密过程的rijndael块密码装置中,128比特数据寄存器500的128比特数据用作下一个回合的128比特回合操作输入数据,并且由回合密钥产生单元110新产生然后存储在128比特回合密钥寄存器111a中的回合密钥RK也存储在128比特预密钥寄存器111中用作下一个回合的128比特回合输入密钥。因此,在四个时钟的周期内完成一个回合的加密操作。
在由根据本发明的rijndael块密码装置执行如图4中说明的加密方法的情况下,回合密钥产生单元110在回合操作开始信号的四个时钟的周期内完成回合密钥产生过程。即,如图4中所示,从回合操作开始第三个时钟之后,执行加回合密钥变换过程(步骤S403),它是将高64比特数据与回合密钥相加的过程。从回合操作开始第二个时钟之后,只产生新回合的高64比特回合密钥,并且此时因为只使用高64比特回合密钥,所以执行回合操作的加密操作没有问题。同样地,因为用于回合操作的第三个时钟之后的第四个时钟开始的时间点与产生所有128比特回合密钥的时间点一致,所以执行加回合密钥变换过程(步骤S404)没有问题,该过程将低64比特数据与低64比特回合密钥相加。
同样地,在执行上述加密过程的rijndael块密码装置中,64比特数据寄存器400用作加密过程期间产生的中间数据的存储空间,因此高64比特数据的字节移位变换的结果不影响低64比特数据的字节移位变换。同样地,因为高64比特数据和低64比特数据同时变换,但是在相同时钟周期期间不以相同方式变换,所以变换要求的硬件模块的数可以减半。特别是,更新为每个时钟产生的数据并存储在一个存储空间中,因此不要求额外的存储空间。即,这种情况导向这样的结构它应用流水线结构但不要求额外的硬件,并且这种结构将以相同方式应用到随后要说明的根据本发明其它实施例的加密和解密rijndael块密码的方法。
图5是说明根据本发明的解密rijndael块密码的方法的第一个时序图。
参考图5,如果从回合操作控制单元300输入四时钟回合操作开始信号和回合数信号到回合操作单元100(步骤S500),那么在第一个时钟变为‘1’的时刻,关于128比特回合操作输入数据的高64比特数据连续地执行字节反移位变换和反置换操作(步骤S501),并且这两个过程在一个时钟内执行。此时,结果数据存储在64比特数据寄存器400中。同样地,如果回合操作开始信号的第一个时钟变为‘1’,使用128比特回合输入密钥的128比特回合密钥产生过程开始(步骤S501a)。
在回合操作开始信号的第二个时钟变为‘1’的时刻,执行加回合密钥变换,用于将存储在64比特数据寄存器400中的64比特数据与通过回合密钥产生单元110产生的回合密钥的高64比特相加,并且结果数据存储在64比特数据寄存器400中(步骤S502)。同时连续地执行回合操作输入数据的低64比特数据的字节反移位变换和反置换,并且结果数据存储在128比特数据寄存器的低64比特位置(步骤S502)。
在回合操作开始信号的第三个时钟变为‘1’的时刻,存储在64比特数据寄存器400中的64比特数据输入到列混合/反列混合变换单元150,并且反列混合变换的结果数据存储在128比特数据寄存器500的高64比特位置(步骤S503)。同时执行加回合密钥变换,用于将已经通过反置换操作的低64比特数据与从回合密钥产生单元110产生的回合密钥相加,并且结果数据存储在128比特数据寄存器的低64比特位置(步骤S503)。
在回合操作开始信号的第四个时钟变为‘1’的时刻,已经通过加回合密钥变换的低64比特数据输入到列混合/反列混合变换单元150进行反列混合变换,并且结果数据存储在128比特数据寄存器500的低64比特位置(步骤S504)。
此时,128比特数据寄存器500的128比特数据用作下一个解密回合操作的128比特回合操作输入数据,并且作为回合密钥产生的结果的128比特回合密钥RK存储在128比特预密钥寄存器111中,以便用作下一个回合操作的128比特回合输入密钥。因此,在四个时钟的周期内完成一个回合的解密操作。
在由根据本发明的rijndael块密码装置执行如图5中说明的解密方法的情况下,回合密钥产生单元110在回合操作开始信号的两个时钟的周期内完成回合密钥产生过程。即,如图5中所示,因为从回合操作开始第二个时钟之后,执行加回合密钥变换过程,它是将高64比特回合密钥与64比特数据相加的过程(步骤S502),所以在第二个时钟的时间点已经产生所有128比特回合密钥,因此执行回合操作没有问题。
图6是说明根据本发明的加密rijndael块密码的方法的第二个时序图。
参考图6,如果从回合操作控制单元300输入三时钟回合操作开始信号和回合数信号到回合操作单元100(步骤S600),那么在第一个时钟变为‘1’的时刻,连续地执行高64比特数据的字节移位操作和置换操作,并且结果数据存储在64比特数据寄存器中(步骤S601)。同样地,同时执行回合密钥产生过程(步骤S601a)。
在回合操作开始信号的第二个时钟变为‘1’的时刻,列混合变换存储在64比特数据寄存器400中的64比特数据,然后加到加回合密钥变换单元110的结果数据的高64比特回合密钥。加回合密钥变换的结果数据存储在64比特数据寄存器400中(步骤S602)。同时,连续地执行低64比特数据的字节移位变换和置换操作,并且结果数据存储在128比特数据寄存器500的低64比特位置(步骤S602)。
在回合操作开始信号的第三个时钟变为‘1’的时刻,存储在64比特数据寄存器400中的64比特数据输入到128比特数据寄存器500的高64比特位置,并且列混合变换128比特数据寄存器500的低64比特数据,然后加到由回合密钥产生单元110产生的回合密钥的低64比特回合密钥。结果数据存储在128比特数据寄存器500的低64比特位置(步骤S603)。
此时,128比特数据寄存器500的128比特数据用作下一个回合操作的128比特回合操作输入数据,并且由回合密钥产生单元110产生的回合密钥RK存储在128比特预密钥寄存器111中,然后用作下一个回合的128比特回合输入密钥。因此,在三个时钟的周期内完成一个回合的加密操作。
在由根据本发明的rijndael块密码装置执行如图6中说明的加密方法的情况下,回合密钥产生单元110在回合操作开始信号的两个时钟的周期内完成回合密钥产生过程。即,如图6中所示,因为从回合操作开始第二个时钟之后,执行加回合密钥变换过程(步骤S602),它是将高64比特回合密钥与高64比特数据相加的过程,所以在第二个时钟的时间点已经产生所有128比特回合密钥,因此执行回合操作没有问题。
图7是说明根据本发明的解密rijndael块密码的方法的第二个时序图。
参考图7,如果从回合操作控制单元300输入三时钟回合操作开始信号和回合数信号到回合操作单元100(步骤S700),那么在第一个时钟变为‘1’的时刻,关于128比特回合操作输入数据的高64比特数据连续地执行字节反移位变换和反置换操作,并且结果数据存储在64比特数据寄存器400中(步骤S701)。同样地,回合密钥产生过程与这些变换同时开始(步骤S701a)。
在回合操作开始信号的第二个时钟变为‘1’时,执行加回合密钥变换,用于将存储在64比特数据寄存器400中的64比特数据与由回合密钥产生单元110产生的回合密钥的高64比特回合密钥相加,并且结果数据输入到列混合/反列混合变换单元150。反列混合变换的数据存储在64比特数据寄存器400中(步骤S702)。同时,连续地执行回合操作输入数据的低64比特数据的字节反移位变换和反置换变换,并且结果数据存储在128比特数据寄存器的低64比特位置(步骤S702)。
在回合操作开始信号的第三个时钟变为‘1’的时刻,存储在64比特数据寄存器400中的64比特数据存储在128比特数据寄存器500的高64比特位置,并且执行加回合密钥变换,用于将128比特数据寄存器500的低64比特数据与回合密钥产生单元110的低64比特回合密钥相加。然后,反列混合变换加回合密钥变换的结果数据,并且反列混合变换的结果数据存储在128比特数据寄存器的低64比特位置(步骤S703)。
此时,128比特数据寄存器500的128比特数据用作下一个回合操作的128比特回合操作输入数据,并且由回合密钥产生单元110产生的128比特回合密钥RK存储在128比特预密钥寄存器111中,以便用作下一个回合操作的128比特回合输入密钥。因此,在三个时钟的周期内完成一个回合的解密操作。
在由根据本发明的rijndael块密码装置执行如图7中说明的解密方法的情况下,回合密钥产生单元110在回合操作开始信号的两个时钟的周期内完成回合密钥产生过程。即,如图7中所示,因为从回合操作开始第二个时钟之后,执行加回合密钥变换过程(步骤S702),用于将高64比特回合密钥与高64比特数据相加,所以在第二个时钟的时间点已经产生所有128比特回合密钥,因此执行回合操作没有问题。
图8是说明根据本发明的加密rijndael块密码的方法的第三个时序图。
参考图8,如果从回合操作控制单元300输入两时钟回合操作开始信号和回合数信号到回合操作单元100(步骤S800),那么当第一个时钟变为‘1’时,关于回合输入数据的高64比特数据连续地执行字节移位变换、置换变换、列混合变换和加回合密钥变换,并且结果数据存储在64比特数据寄存器400中(步骤S801)。同时执行回合密钥产生过程(步骤S801a),并且执行产生的回合密钥的高64比特回合密钥的加回合密钥变换。这些过程在一个时钟的周期内执行。
当回合操作开始信号的第二个时钟变为‘1’时,关于回合输入数据的低64比特数据连续地执行字节移位变换、置换变换、列混合变换和加回合密钥变换,并且结果数据存储在128比特数据寄存器500的低64比特位置中(步骤S802)。同样地,执行回合密钥产生过程中产生的回合密钥的低64比特回合密钥的加回合密钥变换。此时,存储在64比特数据寄存器400中的64比特数据存储在128比特数据寄存器500的高64比特位置中,并且由回合密钥产生单元110新产生的128比特回合密钥RK存储在128比特回合密钥寄存器111a中,并且备份在128比特预密钥寄存器111中。因此,在两个时钟的周期内完成一个回合的加密操作。
在由根据本发明的rijndael块密码装置执行如图8中说明的加密方法的情况下,回合密钥产生单元110在回合操作开始信号的一个时钟的周期内完成回合密钥产生过程。即,如图8中所示,因为从回合操作开始第一个时钟之后,执行加回合密钥变换过程(步骤S801),用于将高64比特回合密钥与高64比特数据相加,所以在第一个时钟的时间点已经产生所有128比特回合密钥,因此执行回合操作没有问题。
实际上,如图3中说明的回合密钥产生单元110使用RK0产生RK1,使用RK1产生RK2。回合密钥产生单元110不使用RK2产生RK3,但是在如下状态中产生RK0输入回合操作开始信号并且时钟同时变为‘0’。当第一个时钟变为‘1’时,回合密钥产生单元110同时通过异或RK0和PK1产生RK1,通过异或RK0与PK1以及PK2产生RK2,以及通过异或RK0与PK1、PK2和PK3产生RK3。
图9是说明根据本发明的解密rijndael块密码的方法的第三个时序图。
参考图9,如果从回合操作控制单元300输入两时钟回合操作开始信号和回合数信号到回合操作单元100(步骤S900),那么当第一个时钟变为‘1’时,关于回合输入数据的高64比特数据连续地执行字节反移位变换、反置换变换、加回合密钥变换和反列混合变换,并且结果数据存储在64比特数据寄存器400中(步骤S901)。这些过程在一个时钟的周期内执行。同时执行回合密钥产生过程(步骤S901a)用于解密,并且执行由回合密钥产生单元110产生的回合密钥的高64比特回合密钥的加回合密钥变换。
当回合操作开始信号的第二个时钟变为‘1’时,关于回合输入数据的低64比特数据连续地执行字节反移位变换、反置换变换、加回合密钥变换和反列混合变换,并且结果数据存储在128比特数据寄存器500的低64比特位置中(步骤S902)。这些过程在一个时钟的周期中执行。同样地,一个时钟之前由回合密钥产生单元110产生的回合密钥的低64比特回合密钥用于加回合密钥变换。此时,存储在64比特数据寄存器400中的64比特数据存储在128比特数据寄存器500的高64比特位置中,并且由回合密钥产生单元110新产生的128比特回合密钥RK存储在128比特回合密钥寄存器111a中,并且备份在128比特预密钥寄存器111中。因此,在两个时钟的周期内完成一个回合的解密操作。
在由根据本发明的rijndael块密码装置执行如图9中说明的解密方法的情况下,回合密钥产生单元110在回合操作开始信号的一个时钟的周期内完成回合密钥产生过程。即,如图9中所示,从回合操作开始第一个时钟之后,执行加回合密钥变换过程(步骤S901),用于将高64比特回合密钥与高64比特数据相加,但是在第一个时钟的时间点已经产生所有128比特回合密钥,因此执行回合操作没有问题。
实际上,如图3中说明的回合密钥产生单元110在如下状态中产生RK0输入回合操作开始信号并且同时时钟变为‘0’。当第一个时钟变为‘1’时,回合密钥产生单元110同时通过异或RK0和PK1产生RK1,通过异或PK1以及PK2产生RK2,以及通过异或PK2和PK3产生RK3。
如上所述,根据如图8中说明的加密方法和图9中说明的解密方法的rijndael块密码装置是适合应用到智能卡、USIM(用户订户身份模块)卡、SIM卡等的模型,它尺寸小、具有低功耗和低工作频率特性。
产业上的可利用性从上面的说明可见,根据本发明的rijndael块密码装置及其加密/解密方法,通过安装在移动终端如蜂窝电话和PDA或智能卡中,可以高速地加密和解密要求安全性的重要数据,该移动终端要求高速度和小尺寸的密码处理器,并且关于从128比特输入数据分割的高64比特和低64比特能够执行回合操作。本发明具有下面的效果第一,根据本发明的密码装置具有小的尺寸,并且可以通过在装置中重复地使用回合操作设备,高速地加密/解密实时数据。
第二,因为根据本发明的密码装置使用应用rijndael算法的回合操作设备实时地加密/解密块密码数据,所以与应用现有的DES(数据加密标准)的操作设备相比,它可以提供更高级的安全性。
第三,根据本发明的密码装置的rijndael加密/解密回合操作设备具有如下优点通过增加重复回合操作预定次数的简单控制器,它可以实时地加密/解密块密码数据。
第四,根据本发明的密码装置的回合操作设备可以实时地快速加密/解密数据,虽然它具有小的尺寸,该尺寸几乎是现有的以128比特为单位的回合操作设备的尺寸的一半。
第五,根据本发明的密码装置的回合操作设备可以使用根据它的应用领域的适当的方法实现,并且在应用到不考虑使用的硬件资源数量的系统的情况下,通过应用以128比特为单位的回合过程而不是以64比特为单位的回合过程,它可以得到两倍高的数据加密/解密速度。
前面的实施例只是示范性的,并且不被解释为限制本发明。本教导可容易地应用到其它类型的装置。本发明的说明旨在说明性,并不限制权利要求的范围。对本领域的技术人员,很多替代、修改和变化将是显然的。
权利要求
1.一种瑞恩多尔块密码装置,包含回合操作单元,用于将128比特输入密钥转换为用于加密或解密的128比特回合密钥,并且从输入加密或解密操作开始信号和模式信号之后输入回合操作开始信号、回合数信号和比特选择信号用于将128比特输入数据分割为高64比特和低64比特并选择高或低64比特时,根据模式信号的值存储128比特回合密钥,通过将128比特输入数据分割为高64比特和低64比特,并且通过分别对分割的高64比特和低64比特执行包含行移位、置换、混合列和加回合密钥变换的回合操作,来加密128比特输入数据,并且通过将128比特输入数据分割为高64比特和低64比特,并且通过分别对分割的高64比特和低64比特执行包含反行移位、反置换、加回合密钥和反列混合变换的回合操作,来解密128比特输入数据;回合操作控制单元,用于从输入加密或解密操作开始信号和模式信号时,通过将用于将128比特输入数据分割为高64比特和低64比特并选择高或低64比特的比特选择信号、回合操作开始信号和回合数信号发送到回合操作单元,控制回合操作单元的回合操作;64比特数据寄存器,用于存储由回合操作单元执行的每个回合操作期间产生的高64比特输入数据的中间加密或解密数据;以及128比特数据寄存器,用于存储由回合操作单元执行的每个回合操作期间产生的低64比特输入数据的中间加密或解密数据作为它的低64比特,并且存储作为上一次回合操作的结果产生并存储在64比特数据寄存器中的加密或解密数据作为它的高64比特数据。
2.根据权利要求1所述的装置,其中回合操作单元包含回合密钥产生单元,如果从回合操作控制单元输入回合操作开始信号和回合数信号,就根据通过总线输入的模式信号的值,将128比特输入密钥转换为128比特回合密钥RK用于加密或解密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;行移位/反行移位变换单元,如果从回合操作控制单元输入回合操作开始信号和比特选择信号,就根据通过总线输入的模式信号的值,执行从通过总线输入的128比特输入数据分割的高64比特和低64比特的不同数的字节移位,并且通过第一个复用器输出字节移位的高64比特和低64比特,根据比特选择信号的值控制该复用器的输出;置换/反置换变换单元,使用相对一个字节输入提供一个字节输出的置换盒(S-盒)或反置换盒(SI-盒),执行从行移位/反行移位变换单元输出的高64比特数据和低64比特数据的置换或反置换;第一个解复用器,根据模式信号的值,通过它的加密输出端和它的解密输出端中任何一个,输出从置换/反置换变换单元输出的高64比特数据或低64比特数据;列混合/反列混合变换单元,执行通过第一个解复用器的加密输出端输入的高64比特数据或低64比特数据的列混合,或者执行已经加回合密钥变换的高64比特数据或低64比特数据的反列混合;第二个解复用器,根据模式信号的值,通过它的加密输出端和它的解密输出端中任何一个,输出从列混合/反列混合变换单元输出的高64比特数据或低64比特数据;加回合密钥变换单元,用于将通过第一个解复用器的解密输出端或第二个解复用器的加密输出端输入的高64比特数据或低64比特数据加到从回合密钥产生单元输出的用于加密或解密的128比特回合密钥RK;以及第三个解复用器,根据模式信号的值,通过它的加密输出端和它的解密输出端中任何一个,输出从加回合密钥变换单元输出的高64比特数据或低64比特数据。
3.根据权利要求1或2所述的装置,其中如果四时钟或三时钟回合操作开始信号从回合操作控制单元输入到回合操作单元,那么从置换/反置换变换单元输出到第一个解复用器的高64比特数据存储在64比特数据寄存器中,并且输出的低64比特数据作为128比特数据寄存器的低64比特数据存储。
4.根据权利要求1或2所述的装置,其中如果四时钟回合操作开始信号从回合操作控制单元输入到回合操作单元,那么从列混合/反列混合变换单元输出到第二个解复用器的高64比特数据存储在64比特数据寄存器中,并且输出的低64比特数据作为128比特数据寄存器的低64比特数据存储。
5.根据权利要求1或2所述的装置,其中如果四时钟回合操作开始信号从回合操作控制单元输入到回合操作单元,那么从加回合密钥变换单元输出到第三个解复用器的用于加密的高64比特数据作为128比特数据寄存器的高64比特数据存储,并且用于加密的低64比特数据作为128比特数据寄存器的低64比特数据存储。
6.根据权利要求1或2所述的装置,其中如果四时钟回合操作开始信号从回合操作控制单元输入到回合操作单元,那么从加回合密钥变换单元输出到第三个解复用器的用于解密的高64比特数据存储在64比特数据寄存器中,并且用于解密的低64比特数据作为128比特数据寄存器的低64比特数据存储。
7.根据权利要求1或2所述的装置,其中如果四时钟回合操作开始信号从回合操作控制单元输入到回合操作单元,那么从列混合/反列混合变换单元输出到第二个解复用器的反列混合变换的高64比特数据作为128比特数据寄存器的高64比特数据存储,并且反列混合变换的低64比特数据作为128比特数据寄存器的低64比特数据存储。
8.根据权利要求1或2所述的装置,其中如果三时钟回合操作开始信号从回合操作控制单元输入到回合操作单元,那么经过反列混合变换然后从加回合密钥变换单元输出到第三个解复用器的用于加密的高64比特数据存储在64比特数据寄存器中,然后如果最后的第三个时钟变为‘1’,那么用于加密的高64比特数据作为128比特数据寄存器的高64比特数据存储,并且用于加密的低64比特数据作为128比特数据寄存器的低64比特数据存储。
9.根据权利要求1或2所述的装置,其中如果三时钟回合操作开始信号从回合操作控制单元输入到回合操作单元,那么经过加回合密钥变换、反列混合变换然后从列混合/反列混合变换单元输出到第二个解复用器的高64比特数据存储在64比特数据寄存器中,然后如果最后的第三个时钟变为‘1’,那么反列混合变换的高64比特数据作为128比特数据寄存器的高64比特数据存储,并且反列混合变换的低64比特数据作为128比特数据寄存器的低64比特数据存储。
10.根据权利要求1或2所述的装置,其中如果两时钟回合操作开始信号从回合操作控制单元输入到回合操作单元,那么经过行移位变换、置换变换、列混合变换然后从加回合密钥变换单元输出到第三个解复用器的用于加密的高64比特数据存储在64比特数据寄存器中,然后如果最后的第二个时钟变为‘1’,那么用于加密的高64比特数据作为128比特数据寄存器的高64比特数据存储,并且用于加密的低64比特数据作为128比特数据寄存器的低64比特数据存储。
11.根据权利要求1或2所述的装置,其中如果两时钟回合操作开始信号从回合操作控制单元输入到回合操作单元,那么经过反行移位变换、反置换变换、加回合密钥变换然后反列混合变换并且从列混合/反列混合变换单元输出到第二个解复用器的高64比特数据存储在64比特数据寄存器中,然后如果最后的第二个时钟变为‘1’,那么反列混合变换的高64比特数据作为128比特数据寄存器的高64比特数据存储,并且反列混合变换的低64比特数据作为128比特数据寄存器的低64比特数据存储。
12.根据权利要求2所述的装置,其中回合密钥产生单元包含128比特预密钥寄存器,用于存储通过总线输入的128比特输入密钥作为预密钥,用于将128比特输入密钥转换为用于加密或解密的128比特回合密钥RK,并且存储每个回合操作之后产生的128比特回合密钥RK作为预密钥,用于产生下一个回合操作中使用的回合密钥RK;128比特密钥寄存器,用于为每个回合操作存储用于加密或解密的128比特回合密钥RK;常数存储单元,用于存储常数值Rcon,该常数值根据由回合数信号指示的回合的阶确定,该回合数信号从回合操作控制单元输入;第二个解复用器,根据通过总线输入的模式信号的值被控制,并且选择并输出从128比特预密钥寄存器和128比特回合密钥寄存器输入的用于加密或解密的32比特密钥之一;移位器,用于执行通过第二个复用器输入的32比特密钥的向左一个字节的循环移位;置换变换单元,包含用于执行置换操作的置换盒(S-盒),用于执行由移位器移位的32比特密钥的置换;第一个XOR门,用于执行从置换变换单元输出的32比特密钥的最高有效字节和存储在常数存储单元中的常数值的XOR操作;以及回合XOR操作单元,使用通过将第一个XOR门的输出比特加到除了置换变换单元的最高有效字节的剩余24比特得到的32比特值、存储在128比特预密钥寄存器111中的先前回合的128比特预密钥以及存储在128比特回合密钥寄存器中的新回合的128比特回合密钥RK,通过执行XOR操作,为回合操作的每个回合新产生要存储在128比特回合密钥寄存器中的128比特回合密钥RK,用于加密或解密。
13.根据权利要求12所述的装置,其中如果四时钟回合操作开始信号从回合操作控制单元输入到回合操作单元,回合密钥产生单元的回合XOR操作单元在四个时钟的周期中产生加密回合密钥;并且其中回合XOR操作单元包含第二个XOR门,如果加密回合操作开始信号的第一个时钟变为‘1’,那么通过执行下述两者的XOR操作将第一个XOR门的输出比特加到除了置换变换单元的最高有效字节的剩余24比特得到的32比特值,以及先前回合的128比特回合密钥的最高有效32比特值PK0,产生128比特回合密钥的最高有效32比特回合密钥RK0,用于新回合的加密或解密;第三个XOR门,如果加密回合操作开始信号的第二个时钟变为‘1’,那么通过执行下述两者的XOR操作新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0,以及紧接先前回合的128比特回合密钥的最高有效32比特的32比特(即,第95个比特到第64个比特)回合密钥PK1,产生128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥RK1,用于新回合的加密,并且通过执行下述两者的XOR操作先前回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥PK0,以及紧接最高有效32比特的32比特(即,第95个比特到第64个比特)回合密钥PK1,产生128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥RK1,用于新回合的解密;第三个复用器根据通过总线输入的模式信号的值被控制,并且选择性地确定第三个XOR门的输入信号;第四个XOR门,如果加密回合操作开始信号的第三个时钟变为‘1’,那么通过执行下述两者的XOR操作新回合的128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥RK1,以及先前回合的128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥PK2,产生128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥RK2,用于新回合的加密,并且通过执行下述两者的XOR操作先前回合的128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥PK1,以及接下来的32比特(即,第63个比特到第32个比特)回合密钥PK2,产生128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥RK2,用于新回合的解密;第四个复用器,根据通过总线输入的模式信号的值被控制,并且选择性地确定第四个XOR门的输入信号;第五个XOR门,如果加密回合操作开始信号的第四个时钟变为‘1’,那么通过执行下述两者的XOR操作新回合的128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥RK2,以及先前回合的128比特回合密钥的32比特(即,第31个比特到第0个比特)回合密钥PK3,产生128比特回合密钥的32比特(即,第31个比特到第0个比特)回合密钥RK3,用于新回合的加密,并且通过执行下述两者的XOR操作先前回合的128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥PK2,以及接下来的32比特(即,第31个比特到第0个比特)回合密钥PK3,产生128比特回合密钥的32比特(即,第31个比特到第0个比特)回合密钥RK3,用于新回合的解密;以及第五个复用器,根据通过总线输入的模式信号的值被控制,并且选择性地确定第五个XOR门的输入信号。
14.根据权利要求12所述的装置,其中如果三时钟回合操作开始信号从回合操作控制单元输入到回合操作单元,回合密钥产生单元的回合XOR操作单元在两个时钟的周期中产生加密回合密钥;并且其中回合XOR操作单元包含第二个XOR门,如果加密回合操作开始信号的第一个时钟变为‘1’,那么通过执行下述两者的XOR操作将第一个XOR门的输出比特加到除了置换变换单元的最高有效字节的剩余24比特得到的32比特值,以及先前回合的128比特回合密钥的最高有效32比特值PK0,产生128比特回合密钥的最高有效32比特回合密钥RK0,用于新回合的加密或解密;第三个XOR门,如果加密回合操作开始信号的第二个时钟变为‘1’,那么通过执行下述两者的XOR操作新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0,以及紧接先前回合的128比特回合密钥的最高有效32比特的32比特(即,第95个比特到第64个比特)回合密钥PK1,产生128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥RK1,用于新回合的加密,并且通过执行下述两者的XOR操作先前回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥PK0,以及紧接最高有效32比特的32比特(即,第95个比特到第64个比特)回合密钥PK1,产生128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥RK1,用于新回合的解密;第三个复用器,根据通过总线输入的模式信号的值被控制,并且选择性地确定第三个XOR门的输入信号;第四个XOR门,如果加密回合操作开始信号的第二个时钟变为‘1’,那么通过执行下述两者的XOR操作结果值(RK0PK1),该结果值由新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0和紧接先前回合的128比特回合密钥的最高有效32比特的32比特(即,第95个比特到第64个比特)回合密钥PK1的第三个XOR门的XOR操作得到,以及先前回合的32比特(即,第63个比特到第32个比特)回合密钥PK2,产生128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥RK2,用于新回合的加密,并且通过执行下述两者的XOR操作先前回合的128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥PK1,以及接下来的32比特(即,第63个比特到第32个比特)回合密钥PK2,产生128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥RK2,用于新回合的解密;第四个复用器,根据通过总线输入的模式信号的值被控制,并且选择性地确定第四个XOR门的输入信号;第五个XOR门,如果加密回合操作开始信号的第二个时钟变为‘1’,那么通过执行下述两者的XOR操作结果值(RK0PK1),该结果值通过已经由第三个XOR门异或的新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0,与紧接先前回合的128比特回合密钥的最高有效32比特的32比特(即,第95个比特到第64个比特)回合密钥PK1的第四个XOR门的XOR操作得到,以及先前回合的32比特(即,第63个比特到第32个比特)回合密钥PK2,从而产生XOR操作的结果值(RK0PK1PK2),然后通过执行结果值(RK0PK1PK2)和先前回合的32比特(即,第31个比特到第0个比特)回合密钥PK3的XOR操作,第五个XOR门产生128比特回合密钥的32比特(即,第31个比特到第0个比特)回合密钥RK3,用于新回合的加密,并且通过执行下述两者的XOR操作先前回合的128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥PK2,以及接下来的32比特(即第31个比特到第0个比特)回合密钥PK3,第五个XOR门产生128比特回合密钥的32比特(即,第31个比特到第0个比特)回合密钥RK3,用于新回合的解密;以及第五个复用器,根据通过总线输入的模式信号的值被控制,并且选择性地确定第五个XOR门的输入信号。
15.根据权利要求12所述的装置,其中如果两时钟回合操作开始信号从回合操作控制单元输入到回合操作单元,回合密钥产生单元的回合XOR操作单元在一个时钟的周期中产生加密回合密钥;并且其中回合XOR操作单元包含第二个XOR门,在输入加密回合操作开始信号同时时钟变为‘0’的状态,通过执行下述两者的XOR操作将第一个XOR门的输出比特加到除了置换变换单元的最高有效字节的剩余24比特得到的32比特值,以及先前回合的128比特回合密钥的最高有效32比特值PK0,产生128比特回合密钥的最高有效32比特回合密钥RK0,用于新回合的加密或解密;第三个XOR门,如果加密回合操作开始信号的第一个时钟变为‘1’,那么通过执行下述两者的XOR操作新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0,以及紧接先前回合的128比特回合密钥的最高有效32比特的32比特(即,第95个比特到第64个比特)回合密钥PK1,产生128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥RK1,用于新回合的加密,并且通过执行下述两者的XOR操作先前回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥PK0,以及紧接最高有效32比特的32比特(即,第95个比特到第64个比特)回合密钥PK1,产生128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥RK1,用于新回合的解密;第三个复用器,根据通过总线输入的模式信号的值被控制,并且选择性地确定第三个XOR门的输入信号;第四个XOR门,如果加密回合操作开始信号的第一个时钟变为‘1’,那么通过执行下述两者的XOR操作结果值(RK0PK1),该结果值由新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0和紧接先前回合的128比特回合密钥的最高有效32比特的32比特(即,第95个比特到第64个比特)回合密钥PK1的第三个XOR门的XOR操作得到,以及先前回合的32比特(即,第63个比特到第32个比特)回合密钥PK2,产生128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥RK2,用于新回合的加密,并且通过执行下述两者的XOR操作先前回合的128比特回合密钥的32比特(即,第95个比特到第64个比特)回合密钥PK1,以及接下来的32比特(即,第63个比特到第32个比特)回合密钥PK2,产生128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥RK2,用于新回合的解密;第四个复用器,根据通过总线输入的模式信号的值被控制,并且选择性地确定第四个XOR门的输入信号;第五个XOR门,如果加密回合操作开始信号的第一个时钟变为‘1’,那么通过执行下述两者的XOR操作结果值(RK0PK1),该结果值通过已经由第三个XOR门异或的新回合的128比特回合密钥的最高有效32比特(即,第127个比特到第96个比特)回合密钥RK0,与紧接先前回合的128比特回合密钥的最高有效32比特的32比特(即,第95个比特到第64个比特)回合密钥PK1的第四个XOR门的XOR操作得到,以及先前回合的32比特(即,第63个比特到第32个比特)回合密钥PK2,从而产生XOR操作的结果值(RK0PK1PK2),然后通过执行结果值(RK0PK1PK2)和先前回合的32比特(即,第31个比特到第0个比特)回合密钥PK3的XOR操作,第五个XOR门产生128比特回合密钥的32比特(即,第31个比特到第0个比特)回合密钥RK3,用于新回合的加密,并且通过执行下述两者的XOR操作先前回合的128比特回合密钥的32比特(即,第63个比特到第32个比特)回合密钥PK2,以及接下来的32比特(即第31个比特到第0个比特)回合密钥PK3,第五个XOR门产生128比特回合密钥的32比特(即第31个比特到第0个比特)回合密钥RK3,用于新回合的解密;以及第五个复用器,根据通过总线输入的模式信号的值被控制,并且选择性地确定第五个XOR门的输入信号。
16.一种瑞恩多尔块加密方法,包含以下步骤如果通过总线输入加密或解密操作开始信号和模式信号之后,从回合操作控制单元输入四时钟回合操作开始信号和回合数信号,那么根据从回合操作开始信号的第一个时钟变为‘1’时通过总线输入的模式信号的值,回合操作单元的回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;如果从回合操作控制单元输入四时钟回合操作开始信号和比特选择信号,那么当第一个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的高64比特数据的字节移位,并且通过第一个复用器输出字节移位的高64比特数据,并且置换/反置换变换单元连续地执行高64比特数据的置换,输出置换的高64比特数据到第一个解复用器,并且在64比特数据寄存器中存储置换的高64比特数据;当回合操作开始信号的第二个时钟变为‘1’时,列混合/反列混合变换单元执行通过第一个解复用器的加密输出端输出并存储在64比特数据寄存器中的高64比特数据的列混合,输出列混合变换的高64比特数据到第二个解复用器,并且在64比特数据寄存器中存储列混合变换的高64比特数据,行移位/反行移位变换单元同时执行通过总线输入的128比特输入数据的低64比特数据的字节移位,并且通过第一个复用器输出字节移位的低64比特数据,并且置换/反置换变换单元连续地执行低64比特数据的置换,输出置换的低64比特数据到第一个解复用器,并且在128比特数据寄存器的低64比特中存储置换的低64比特数据;当回合操作开始信号的第三个时钟变为‘1’时,加回合密钥变换单元将通过第二个解复用器的加密输出端输出并存储在64比特数据寄存器中的高64比特数据加到由回合密钥产生单元产生的高64比特回合密钥,并且在128比特数据寄存器的高64比特中存储相加的高64比特数据,并且列混合/反列混合变换单元同时执行通过第一个解复用器的加密输出端输出并存储在128比特数据寄存器中的低64比特数据的列混合,输出列混合变换的低64比特数据到第二个解复用器,并且在128比特数据寄存器的低64比特中存储列混合变换的低64比特数据;以及当回合操作开始信号的第四个时钟变为‘1’时,加回合密钥变换单元将通过第二个解复用器的加密输出端输出并存储在128比特数据寄存器中的低64比特数据加到由回合密钥产生单元产生的低64比特回合密钥,并且在128比特数据寄存器的低64比特中存储相加的低64比特数据。
17.根据权利要求16所述的加密方法,其中在根据通过总线输入的模式信号的值,回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥的步骤,在回合操作开始信号的四个时钟的周期中产生128比特回合密钥用于加密。
18.一种瑞恩多尔块解密方法,包含以下步骤如果通过总线输入加密或解密操作开始信号和模式信号之后,从回合操作控制单元输入四时钟回合操作开始信号和回合数信号,那么根据从回合操作开始信号的第一个时钟变为‘1’时通过总线输入的模式信号的值,回合操作单元的回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;如果从回合操作控制单元输入四时钟回合操作开始信号和比特选择信号,那么当第一个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的高64比特数据的反字节移位,并且通过第一个复用器输出反字节移位的高64比特数据,并且置换/反置换变换单元连续地执行高64比特数据的反置换,输出反置换的高64比特数据到第一个解复用器,并且在64比特数据寄存器中存储反置换的高64比特数据;当回合操作开始信号的第二个时钟变为‘1’时,加回合密钥变换单元将通过第一个解复用器的解密输出端输出并存储在64比特数据寄存器中的高64比特数据加到由回合密钥产生单元产生的高64比特回合密钥,输出相加的高64比特数据到第三个解复用器,并且在64比特数据寄存器中存储相加的高64比特数据,行移位/反行移位变换单元同时执行通过总线输入的128比特输入数据的低64比特数据的字节反移位,并且通过第一个复用器输出字节反移位的低64比特数据,并且置换/反置换变换单元连续地执行低64比特数据的反置换,输出反置换的低64比特数据到第一个解复用器,并且在128比特数据寄存器的低64比特中存储反置换的低64比特数据;当回合操作开始信号的第三个时钟变为‘1’时,列混合/反列混合变换单元执行通过第三个解复用器的解密输出端输出并存储在64比特数据寄存器中的高64比特数据的反列混合,通过第二个解复用器输出反列混合变换的高64比特数据,并且在128比特数据寄存器的高64比特中存储反列混合变换的高64比特数据,并且加回合密钥变换单元同时将通过第一个解复用器的解密输出端输出并存储在128比特数据寄存器中的低64比特数据加到由回合密钥产生单元产生的低64比特回合密钥,通过第三个解复用器输出相加的低64比特数据,并且在128比特数据寄存器的低64比特中存储相加的低64比特数据;以及当回合操作开始信号的第四个时钟变为‘1’时,列混合/反列混合变换单元执行通过第三个解复用器的解密输出端输出并存储在128比特数据寄存器中的低64比特数据的反列混合,通过第二个解复用器输出反列混合变换的低64比特数据,并且在128比特数据寄存器的低64比特中存储反列混合变换的低64比特数据。
19.根据权利要求18中所述的解密方法,其中在根据通过总线输入的模式信号的值,回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于解密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥的步骤,在回合操作开始信号的两个时钟的周期中产生用于解密的128比特回合密钥。
20.一种瑞恩多尔块加密方法,包含步骤如果通过总线输入加密或解密操作开始信号和模式信号之后,从回合操作控制单元输入三时钟回合操作开始信号和回合数信号,那么根据从回合操作开始信号的第一个时钟变为‘1’时通过总线输入的模式信号的值,回合操作单元的回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;如果从回合操作控制单元输入三时钟回合操作开始信号和比特选择信号,那么当第一个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的高64比特数据的字节移位,并且通过第一个复用器输出字节移位的高64比特数据,并且置换/反置换变换单元连续地执行高64比特数据的置换,输出置换的高64比特数据到第一个解复用器,并且在64比特数据寄存器中存储置换的高64比特数据;当回合操作开始信号的第二个时钟变为‘1’时,列混合/反列混合变换单元执行通过第一个解复用器的加密输出端输出并存储在64比特数据寄存器中的高64比特数据的列混合,并且输出列混合变换的高64比特数据到第二个解复用器,加回合密钥变换单元连续地将该高64比特数据加到由回合密钥产生单元产生的高64比特回合密钥,并且在64比特数据寄存器中存储相加的高64比特数据,行移位/反行移位变换单元同时执行通过总线输入的128比特输入数据的低64比特数据的字节移位,并且通过第一个复用器输出字节移位的低64比特数据,并且置换/反置换变换单元连续地执行低64比特数据的置换,输出置换的低64比特数据到第一个解复用器,并且在128比特数据寄存器的低64比特中存储置换的低64比特数据;以及当回合操作开始信号的第三时钟变为‘1’时,将相加然后存储在64比特数据寄存器中的64比特数据存储在128比特数据寄存器的高64比特中,列混合/反列混合变换单元同时执行通过第一个解复用器的加密输出端输出并存储在128比特数据寄存器中的低64比特数据的列混合,并且输出列混合变换的低64比特数据到第二个解复用器,并且加回合密钥变换单元连续地将低64比特数据加到由回合密钥产生单元产生的低64比特回合密钥,并且在128比特数据寄存器的低64比特中存储相加的低64比特数据。
21.根据权利要求20所述的加密方法,其中在根据通过总线输入的模式信号的值,回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥的步骤,在回合操作开始信号的两个时钟的周期中产生用于加密的128比特回合密钥。
22.一种瑞恩多尔块解密方法,包含以下步骤如果通过总线输入加密或解密操作开始信号和模式信号之后,从回合操作控制单元输入三时钟回合操作开始信号和回合数信号,那么根据从回合操作开始信号的第一个时钟变为‘1’时通过总线输入的模式信号的值,回合操作单元的回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;如果从回合操作控制单元输入三时钟回合操作开始信号和比特选择信号,那么当第一个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的高64比特数据的反字节移位,并且通过第一个复用器输出反字节移位的高64比特数据,并且置换/反置换变换单元连续地执行高64比特数据的反置换,输出反置换的高64比特数据到第一个解复用器,并且在64比特数据寄存器中存储反置换的高64比特数据;当回合操作开始信号的第二个时钟变为‘1’时,加回合密钥变换单元将通过第一个解复用器的解密输出端输出并存储在64比特数据寄存器中的高64比特数据加到由回合密钥产生单元产生的高64比特回合密钥,并且输出相加的高64比特数据到第三个解复用器,列混合/反列混合变换单元连续地执行相加的高64比特数据的反列混合,通过第二个解复用器输出反列混合变换的高64比特数据,并且在64比特数据寄存器中存储反列混合变换的高64比特数据,行移位/反行移位变换单元同时执行通过总线输入的128比特输入数据的低64比特数据的字节反移位,并且通过第一个复用器输出字节反移位的低64比特数据,并且置换/反置换变换单元连续地执行低64比特数据的反置换,输出反置换的低64比特数据到第一个解复用器,并且在128比特数据寄存器的低64比特中存储反置换的低64比特数据;以及当回合操作开始信号的第三个时钟变为‘1’时,加回合密钥变换单元将通过第一个解复用器的解密输出端输出并存储在128比特数据寄存器中的低64比特数据加到由回合密钥产生单元产生的低64比特回合密钥,并且输出相加的低64比特数据到第三个解复用器,列混合/反列混合变换单元连续地执行相加的低64比特数据的反列混合,通过第二个解复用器输出反列混合变换的低64比特数据,并且在128比特数据寄存器的低64比特中存储反列混合变换的低64比特数据,同时将存储在64比特数据寄存器中的高64比特数据存储在128比特数据寄存器的高64比特中。
23.根据权利要求22中所述的解密方法,其中在根据通过总线输入的模式信号的值,回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于解密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥的步骤,在回合操作开始信号的两个时钟的周期中产生用于解密的128比特回合密钥。
24.一种瑞恩多尔块加密方法,包含以下步骤如果通过总线输入加密或解密操作开始信号和模式信号之后,从回合操作控制单元输入二时钟回合操作开始信号和回合数信号,那么根据从回合操作开始信号的第一个时钟变为‘1’时通过总线输入的模式信号的值,回合操作单元的回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;如果从回合操作控制单元输入二时钟回合操作开始信号和比特选择信号,那么当第一个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的高64比特数据的字节移位,并且通过第一个复用器输出字节移位的高64比特数据,置换/反置换变换单元连续地执行高64比特数据的置换,输出置换的高64比特数据到第一个解复用器,并且通过第一个解复用器输出置换的高64比特数据,列混合/反列混合变换单元执行通过第一个解复用器的加密输出端输出的高64比特数据的列混合,并且输出列混合变换的高64比特数据到第二个解复用器,并且加回合密钥变换单元连续地将这个高64比特数据加到由回合密钥产生单元产生的高64比特回合密钥,并且在64比特数据寄存器中存储相加的高64比特数据;以及当回合操作开始信号的第二个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的低64比特数据的字节移位,并且通过第一个复用器输出字节移位的低64比特数据,并且置换/反置换变换单元连续地执行低64比特数据的置换,并且输出置换的低64比特数据到第一个解复用器,列混合/反列混合变换单元连续地执行低64比特数据的列混合,并且输出列混合变换的低64比特数据到第二个解复用器,加回合密钥变换单元连续地将这个低64比特数据加到由回合密钥产生单元产生的低64比特回合密钥,并且在128比特数据寄存器的低64比特中存储相加的低64比特数据,同时将存储在64比特数据寄存器中的高64比特数据存储在128比特数据寄存器的高64比特中。
25.根据权利要求24中所述的加密方法,其中在根据通过总线输入的模式信号的值,回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥的步骤,在回合操作开始信号的一个时钟的周期中产生用于加密的128比特回合密钥。
26.一种瑞恩多尔块解密方法,包含以下步骤如果通过总线输入加密或解密操作开始信号和模式信号之后,从回合操作控制单元输入两时钟回合操作开始信号和回合数信号,那么根据从回合操作开始信号的第一个时钟变为‘1’时通过总线输入的模式信号的值,回合操作单元的回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于加密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥;如果从回合操作控制单元输入两时钟回合操作开始信号和比特选择信号,那么当第一个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的高64比特数据的反字节移位,并且通过第一个复用器输出反字节移位的高64比特数据,置换/反置换变换单元连续地执行高64比特数据的反置换,并且输出反置换的高64比特数据到第一个解复用器,加回合密钥变换单元连续地将通过第一个解复用器的解密输出端输出的高64比特数据加到由回合密钥产生单元产生的高64比特回合密钥,并且输出相加的高64比特数据到第三个解复用器,并且列混合/反列混合变换单元连续地执行相加的高64比特数据的反列混合,通过第二个解复用器输出反列混合变换的高64比特数据,并且在64比特数据寄存器中存储反列混合变换的高64比特数据;以及当回合操作开始信号的第二个时钟变为‘1’时,行移位/反行移位变换单元执行通过总线输入的128比特输入数据的低64比特数据的字节反移位,并且通过第一个复用器输出字节反移位的低64比特数据,置换/反置换变换单元连续地执行低64比特数据的反置换,并且输出反置换的低64比特数据到第一个解复用器,加回合密钥变换单元连续地将通过第一个解复用器的解密输出端输出的低64比特数据加到由回合密钥产生单元产生的低64比特回合密钥,并且输出相加的低64比特数据到第三个解复用器,列混合/反列混合变换单元连续地执行相加的低64比特数据的反列混合,通过第二个解复用器输出反列混合变换的低64比特数据,并且在128比特数据寄存器的低64比特中存储反列混合变换的低64比特数据,同时将存储在64比特数据寄存器中的高64比特数据存储在128比特数据寄存器的高64比特中。
27.根据权利要求26所述的解密方法,其中在根据通过总线输入的模式信号的值,回合密钥产生单元将128比特输入密钥转换为128比特回合密钥用于解密,并且在内部128比特回合密钥寄存器中存储128比特回合密钥的步骤,在回合操作开始信号的一个时钟的周期中产生用于解密的128比特回合密钥。
全文摘要
公开了包括操作单元的rijndael块密码装置及其加密/解密方法,其为加密/解密rijndael块密码高效地执行回合操作。rijndael块密码装置安装在移动终端如蜂窝电话和PDA或智能卡中,该移动终端要求高速度和小尺寸的密码处理器,并且可以高速地加密和解密要求安全性的重要数据,并且关于从128比特输入数据分割的高64比特和低64比特执行回合操作。因此,该密码装置可以减少加密/解密rijndael块密码要求的时间和装置的大小。
文档编号H04L9/06GK1833399SQ200480022446
公开日2006年9月13日 申请日期2004年6月1日 优先权日2003年6月16日
发明者李允京, 朴永秀, 金荣世, 李尚佑, 全星翼 申请人:韩国电子通信研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1