硬件加密引擎和加密方法

文档序号:6421718阅读:158来源:国知局
专利名称:硬件加密引擎和加密方法
技术领域
本发明一般涉及硬件加密引擎,尤其涉及一种硬件加密引擎。
背景技术
用户可以使用智能卡(或IC卡)、因特网通信、和无线LAN通信等来传输信息。一些传输会涉及需要保护安全的秘密信息。因此,可以执行硬件加密引擎来加密所述信息。加密的信息可称作密文。硬件加密引擎可以通过执行带有适当密钥的加密算法来产生密文。
企图越权访问信息的攻击者可以采用致力于加密算法的理论弱点的攻击方法。这些攻击方法可以允许攻击者解密通信。执行理论近似法的攻击方法在一些极其有限的条件下取得了成功。
攻击者还可以采用包括监控加密运算的物理特征的攻击方法。这些物理特征例如可以包括功率消耗量的差值和所执行的运算的时间差。基于监视物理特征的攻击方法能够以比基于理论弱点的攻击方法更短的时间和更少的努力来获得密钥(加密算法用其进行加密和解密)。
可以通过硬件(例如,智能卡)来执行加密运算。例如,可以通过硬件来执行诸如RSA和ECC等的公共密钥算法。在公共密钥算法中,可以用公共密钥来执行加密运算。也可以通过硬件来执行诸如数据加密标准(DES)和高级加密标准(AES)等的对称密钥算法。在公共密钥系统和对称密钥系统中都期望阻止攻击者访问秘密信息。
图1是现有技术的能够执行并行处理技术的硬件加密引擎的方框图。这种硬件加密引擎可以执行(例如)DES算法,通过DES算法,可以独立地并且并行地操作两个密文引擎100、200以处理加密。并行密文引擎100、200能够根据传输数据(TXD)分别生成两个相同的密文(CRYPTA)。每个密文引擎100、200可以通过16次舍入运算,根据传输数据(TXD)生成密文(CRYPTA)。即,如图1所示,每个舍入块(舍入1至16)可以根据使用预定密钥的DES算法来执行加密运算。可以完成所有16次舍入来生成密文(CRYPTA)。
可以通过各个舍入块(舍入1至16)来使用密钥。可以通过附加密钥生成算法的密钥次序表来生成密钥。例如,如果使用8位字节DES密钥,则可以生成舍入1至16的密钥。根据特殊应用程序,这些密钥可以彼此不同也可以彼此相同,并且这些密钥可以为私人密钥也可以为公开密钥。
如果从两个并行密文引擎100、200中输出的密文(CRYPTA)是相同的,则可以通过预定传输模块将密文(CRYPTA)传输给期望的目的节点。但是,如果在加密运算期间出现了错误,则从两个并行密文引擎100、200分别输出的密文可能不同。因此,为了防止泄露秘密信息,可以不将密文(CRYPTA)发送到目的节点。
图2是图1所示的两个舍入块的示意图。第一和第二密文引擎100(200)的舍入块(舍入1至16)的每个可以包括加密单元120(200)和异或(XOR)逻辑110(210)。当第一和第二密文引擎100、200通过16次舍入分别加密传输数据(TXD),并且输出相同的密文(CRYPTA)时,后续电路可以将确定没有错误的密文(CRYPTA)传输给目的节点。当在加密运算期间出现机械错误时,从两个并行密文引擎100、200分别输出的密文(CRYPTA0可能不同。为了防止泄露秘密信息,则不将密文(CRYPTA)发送到目的节点。
图1中所示的现有技术设备并不是没有缺点。例如,相应的错误会出现在第一和第二密文引擎100、200的相同位置。如图2所示,在密文引擎100的块和密文引擎200的块中,相应的错误将把原始密文A转变成错误密文A’。因此,尽管出现了错误,但是从两个并行密文引擎100、200分别输出的最终密文(CRYPTA)仍然相同,并且会将密文(CRYPTA)发送到目的节点。这将导致从硬件加密引擎中泄露秘密信息。例如,未经授权的电脑黑客会产生出现在硬件加密引擎中的机械错误。然后电脑黑客可以通过分析具有错误的密文来找到在算法中所使用的密钥。
已经展开了对电脑黑客所攻击的错误的可能性的调查,并且通过InfineonTechnologies宣布了范例事件。在这些错误攻击之中存在一种差异错误攻击(differential fault attack)(DFA)。(例如)在诸如DES等的对称算法中,DFA会被想要通过具有错误(错误消息)的密文来获得密钥的电脑黑客误用(为秘密信息获得装置)。
根据传统智慧,可以通过执行两次恒等加密来防止DFA泄露秘密信息。可以比较加密的结果值。如果结果值彼此不同,则再次执行加密,从而可以防止错误。另一种传统方法包括通过通信线路来输入密文。存储并解码密文。再次加密解码数据并且将其与通过通信线路所接收的密文相比较。尽管通常认为这些传统技术提供了可接受的结果,但是由于它们包括对两次执行的运算的结果进行比较,所以略显麻烦。而且两次执行运算会花费大量的时间,因此降低了系统的运算速度。

发明内容
根据本发明的示例性非限制实施例,在使用诸如使用两个或两个以上硬件加密引擎的DES等的对称算法的并行加密处理期间,甚至当相同的错误出现在相同位置,一种硬件加密引擎可以防止输出最终加密结果,从而防止泄露秘密信息。因此,这种引擎可以有力地防御错误攻击,并且可以不用重复地执行加密运算,从而提高引擎的运算速度。
在一个示例性实施例中,在使用诸如使用两个或两个以上硬件加密引擎的DES等的对称算法的并行加密处理期间,甚至当相同的错误出现在相同位置,通过一种硬件密码方法,可以在输出最终加密结果之前检测出错误,并且可以防止泄露秘密信息。因此,这种方法可以有力地防御错误攻击,并且可以不用重复地执行加密运算,从而提高引擎的运算速度。
根据本发明的一个示例性实施里,一种硬件加密引擎可以包括可以生成中间密文的多个密文引擎。所述多个密文引擎中的第一个通过接收从多个密文引擎中的第二个输出的第二中间密文来生成第一中间密文。当密文引擎所生成的中间密文彼此相同时,硬件加密引擎可以输出最终密文。
根据本发明的一个示例性实施例,硬件加密引擎包括第一密文引擎、第二密文引擎、比较单元、和加密数据输出单元。第一密文引擎接收从第二密文引擎中输出的第二中间密文,生成第一中间密文,并且通过使用第一中间密文来生成和输出第一最终密文。第二密文引擎输出第二中间密文,并且通过使用第二中间密文来生成和输出第二最终密文。根据第一最终密文是否与第二最终密文相同,比较单元生成和输出具有逻辑状态的控制信号。加密数据输出单元响应控制信号的逻辑状态,并且当第一最终密文与第二最终密文相同时输出最终密文。
第二密文引擎接收从第一密文引擎中输出的第一中间密文,并且生成第二中间密文。第一密文引擎和第二密文引擎中的每一个包括多个舍入块和一个逻辑电路。每个逻辑电路具有相应第一中间密文和相应第二中间密文的输入。第一密文引擎的每个舍入块生成相应第一中间密文,并且第二密文引擎的每个舍入块生成相应第二中间密文。如果没有出现错误,则相应第一中间密文与相应第二中间密文相同。逻辑电路还具有与第二密文引擎中的相应第二中间密文相同的其它中间密文的输入,以及与第一密文引擎中的相应第一中间密文相同的其它中间密文的输入。将奇数个中间密文输入到逻辑电路。在每个舍入块中放置逻辑电路。在两个相邻密文引擎的每个舍入块中至少使用一次逻辑电路。
根据本发明的另一个示例性实施例,提供一种用于加密传输数据的方法。所述方法包括执行第一加密。第一加密包括通过接收第二中间密文来生成第一中间密文,并且使用第一中间密文来生成和输出第一最终密文。所述方法还包括执行第二加密。第二加密包括输出第二中间密文,并且通过使用第二中间密文来生成和输出第二最终密文。所述方法还包括根据所述第一最终密文是否与所述第二最终密文相同来生成和输出具有逻辑状态的控制信号。响应控制信号的逻辑状态,当第一最终密文与第二最终密文相同时输出最终密文。
根据另一个示例性实施例,一种用于加密传输数据的密文引擎包括多个用于生成相应中间密文的舍入块。舍入块中的一个接收包括来自另一个密文引擎的中间密文的奇数个中间密文输入,从而生成相应中间密文。
在一个示例性实施例中,一种用于操作密文引擎的方法包括输入包括来自另一个密文引擎的中间密文的奇数个中间密文。所述方法还包括根据奇数个中间密文来生成输出密文。
根据本发明的另一个示例性实施例,一种用于加密传输数据的密文引擎的舍入块包括用于生成中间密文的加密单元。第一逻辑算子接收包括来自另一个密文引擎的中间密文的中间密文的奇数,从而生成中间密文。第二逻辑算子接收加密单元所生成的中间密文和第一逻辑算子所生成的中间密文。
在一个示例性实施例中,提供一种用于操作密文引擎的舍入块的方法,其中所述密文引擎用于加密传输数据。所述方法包括生成加密单元的中间密文;以及根据包括来自另一个密文引擎的中间密文的奇数个中间密文的输入来生成第一逻辑算子的中间密文。根据加密单元的中间密文的输入,生成第二逻辑算子的中间密文和第一逻辑算子的中间密文。


从以下结合附图的示例性非限制性实施例的描述中,本发明的各种特征将变得更加明白,其中图1是现有技术的硬件加密引擎的方框图;图2是如图1所示的两个舍入块的示意图;图3是根据本发明的示例性实施例的硬件加密引擎的方框图;图4是密文引擎的示例性功能的部分示意图;图5是密文引擎的另一示例性功能的部分示意图;图6是密文引擎的另一示例性功能的部分示意图;以及图7是根据本发明的另一示例性实施例的硬件加密引擎的方框图。
具体实施例方式
现在将参照附图来更详细地描述本发明的示例性实施例。在所有附图中,相同的附图标记用于表示相同的部件。
参见图3,根据本发明的示例性非限制性实施例的硬件加密引擎包括第一密文引擎310、第二密文引擎320、比较单元330、和加密数据输出单元340。
在整个说明书中,将对“中间密文”进行参考,所述“之间密文”表示处于由密文引擎310、320处理的中间阶段的密文。而且,术语“第一”和“第二”是用于分别修饰关于第一和第二密文引擎310、320的特征的形容词。例如,术语“第一中间密文”表示第一密文引擎310所生成的中间密文,而术语“第二中间密文”则表示第二密文引擎320所生成的中间密文。
第一密文引擎310加密输入的传输数据(TXD)。在加密处理期间,第一密文引擎310从第二密文引擎320接收第二中间密文,生成第一中间密文,并且通过使用第一中间密文来生成和输出第一最终密文(CRYPTA)。
第二密文引擎320也加密所输入的传输数据(TXD)。在加密处理期间,第二密文引擎320将在每次舍入中所生成的第二中间密文输入到第一密文引擎310。第二密文引擎320生成并输出第二最终密文(CRYPTB)。
根据第一最终密文(CRYPTA)是否与第二最终密文(CRYPTB)相同,比较单元330生成具有不同逻辑状态的输出控制信号(SAMD)。
如输出控制信号(SAMD)的逻辑状态所示,当第一最终密文(CRYPTA)与第二最终密文(CRYPTB)相同时,加密数据输出单元340输出最终密文(CRYPD)。例如,响应输出控制信号(SAMD)的有效状态(例如,逻辑“高”状态),加密数据输出单元340输出最终密文(CRYPTD)。
为了便于说明和方便理解,图3示出了一种情况(scenario),在图3的这种情况中,可以将从第二密文引擎320的每次舍入中输出的中间密文输入到第一密文引擎310的相应舍入中。但是,本发明并不局限于这个方面,并且可以以各种方法来进行修改。例如,可以仅从第二密文引擎320的选择舍入中输出中间密文,并且将其输入给第一密文引擎310的相应舍入。也可以将来自第二密文引擎320的一次舍入的中间密文发送到第一密文引擎310的多次舍入中。
图4是图3所示的密文引擎310、320的示例性功能的部分示意图。这里,在左边示出了第一密文引擎310的舍入块,而在右边示出了第二密文引擎320的舍入块。
第一密文引擎310的每个舍入块包括两个XOR逻辑电路和一个加密单元(F)。例如,图4中所示的第一密文引擎310的最低舍入块包括上XOR逻辑电路318、下XOR逻辑电路319、和加密单元313。第二密文引擎320的每个舍入块包括一个XOR逻辑电路和一个加密单元。例如,图4中所示的第二密文引擎320的最低舍入块包括XOR逻辑电路328和加密单元323。可以在每个密文引擎310、320中重复放置如上所述的舍入块。但是,也可以进行选择性的设计。
在典型的DES算法结构中,舍入块可以通过16次舍入重复执行加密。加密单元(F)根据DES算法接收预定密钥,并且加密和输出数据。与第二密文引擎320相比,第一密文引擎310包括具有附加XOR逻辑电路(例如,上XOR逻辑电路318)的舍入块。可能出现在第一密文引擎310的每个舍入块中的附加XOR逻辑电路能够增强错误检测功能。此外,尽管可以在第一密文引擎310中实现了附加XOR逻辑电路,但是当第一和第二密文引擎310、320没有错误时,如下文中所详细描述的那样,仍然可以操作在相同逻辑位置具有对称相同值的第一和第二密文引擎310、320。
第一密文引擎310的多个舍入块中的每一个接收奇数个输入,所述输入包括来自第一密文引擎310的先前舍入块的第一中间密文,和来自第二密文引擎320的相应舍入块的第二中间密文。参见图4中所示的第一密文引擎310的最低舍入块。这个舍入块可以接收两个第一中间密文A、B(来自第一密文引擎310的先前舍入块),和第二中间密文C(来自第二密文引擎320)。这三个中间密文A、B、C是舍入块的附加XOR逻辑电路318的输入。
在没有错误的情况下,所有中间密文A、B、C具有相同的值。即,奇数个相同中间密文(包括第二中间密文C)是XOR逻辑电路318的输入。当奇数个输入A、B、C相同时,从XOR逻辑电路318中输出的中间密文D则是正常的(即,没有错误)。这里,来自XOR逻辑电路318的中间密文D与第二中间密文C相同。中间密文D是第一密文引擎310中的舍入块的XOR逻辑电路319的输入,而第二中间密文C是第二密文引擎320中的相应舍入块的XOR逻辑电路328的输入。这样,可以运算在相同逻辑位置具有相同值的第一和第二密文引擎310、320。
在这个示例性实施例中,附加XOR逻辑电路(例如,318)的奇数个输入A、B、C是3。但是,本发明并不局限于此,并且输入的数量可以大于3。
可以通过等式1来表示附加XOR逻辑电路(例如,318)的用于接收奇数个相同中间密文(可以为3或其它)的功能。在等式1中,m代表中间密文的数字数据值,并且代表异或(XOR)逻辑算符mmm=m...(1)因此,在上述例子中,A、B、C、和D可以在相同的逻辑运算位置上,并且除非存在错误,这些将是相同的中间密文。
可以在每个舍入块中放置用于接收三个或三个以上奇数个相同中间密文的附加XOR逻辑电路(例如,318)。但是,根据电路的客观性和复杂性,一个舍入块可以包括多个附加XOR逻辑电路。
现在考虑一种在第一和第二密文引擎310、320中出现错误的情况。甚至错误是相同的,并且出现在第一和第二密文引擎310、320的相应位置上,从第一密文引擎310中输出的最终密文(CRYPTA)将不同于从第二密文引擎320中输出的最终密文(CRYPTB)。
例如,参见图4,假设在可以生成第二中间密文C的逻辑运算位置,第二密文引擎320中出现错误。进一步假设在可以生成第一中间密文A的逻辑运算位置,第一密文引擎310中出现相同的错误。这里,第二中间密文C和第一中间密文A都经历了错误,并且第一中间密文B没有经历错误。因此,参见上述等式1,将密文A和C的值从m改变成m’。即,m’表示错误中间密文A的数字数据值。根据这些输入,XOR逻辑电路318输出具有值m的中间密文D。可以通过以下等式2来表示这项功能mm′m′=m...(2)因此,通过使用中间密文D(具有值m)来继续加密和生成第一最终密文(CRYPTA),而通过使用中间密文C(具有值m’)来继续加密和生成第二最终密文(CRYPTB)。因此,第一最终密文(CRYPTA)可能会不同于第二最终密文(CRYPTB),从而可以适当地检测出错误的发生。
图5是图3所示的密文引擎的另一示例性功能的部分示意图。这里,第一密文引擎310的舍入块从第二密文引擎320接收第二中间密文(例如,D5),并且接收与中间密文D5具有相同密文的第一密文引擎310中的多个第一中间密文(例如,D1至D4)。尤其是,第一密文引擎310的舍入块包括附加XOR逻辑电路(例如511),所述附加XOR逻辑电路接收密文D1至D5作为输入。如果这五个中间密文是相同的,则可以通过以下等式3来表示XOR逻辑电路(例如,511)的功能mmmmm=m...(3)如上所述,第二密文引擎320也可以包括多个舍入块。位于第二密文引擎320中的每个舍入块可以输出第二中间密文。
图6是图3所示的密文引擎的另一示例性功能的部分示意图。这里,在加密传输输入数据(TXD)期间,第二密文引擎320从第一密文引擎310接收第一中间密文(例如,F2),生成第二中间密文(F4),并且通过使用第二中间密文(F4)来生成和输出第二最终密文(CRYPTB)。尤其是,第二密文引擎320的舍入块可以包括附加XOR逻辑电路(例如,641)。附加XOR逻辑电路可以接收奇数个中间密文(大于或等于3),其中所述中间密文包括第二密文引擎320本身中的第二中间密文(例如,F1、F3)和来自第一密文引擎的第一中间密文(例如,F2)。第二中间密文(例如,F1、F3)可能具有与第一中间密文(F2)相同的值。因此,在没有错误的情况下,XOR逻辑电路641的输出(F4)的逻辑运算位置和密文与第一中间密文(F2)的逻辑运算位置和密文相同。
图7是根据本发明的另一示例性实施例的硬件加密引擎的方框图。这里,硬件加密引擎包括多个密文引擎710、720、730,比较单元740,和加密数据输出单元750。每个密文引擎710、720、730包括多个舍入块。每个舍入块具有与图4至6所示的任一舍入块相似的结构和功能。
每个密文引擎710、720、730加密传输输入数据(TXD)。在这种情况下,每个密文引擎接收和处理来自其它引擎的中间密文,并且生成具有与其它引擎具有相同逻辑运算位置和密文的中间密文。通过使用所生成的中间密文,并且通过使用对称相等的值的运算,密文引擎710、720、730分别生成和输出最终密文(CRYPT1)、(CRYPT2)、(CRYPTN)。
除了来自其它引擎的中间密文之外,密文引擎710、720、730的每个舍入块进一步接收具有与来自其它引擎的中间密文相同值的其它中间密文。这样,每个舍入块的XOR逻辑电路接收奇数个相同的中间密文(大于或等于3),所述相同的中间密文包括从其它引擎种所接收的中间密文。XOR逻辑电路的输出的逻辑运算位置和密文与其它引擎的中间密文的逻辑运算位置和密文相同。这里,在每个舍入块中放置用于接收三个或三个以上奇数个相同中间密文的XOR逻辑电路。也可以在两个相邻密文引擎的每个舍入块中放置用于接收三个或三个以上奇数个相同中间密文的XOR逻辑电路。
根据来自密文引擎710、720、730的最终密文是否都相同,比较单元740生成和输出具有不同逻辑状态的控制信号(SAMD)。
加密数据输出单元750(响应所输出的控制信号(SAMD)的逻辑状态)在最终密文(CRYPT1至CRYPTN)都相同时,输出最终密文(CRYPT1至CRYPTN)中的一个作为正常最终密文(CRYPTD)。例如,响应所输出的控制信号(SAMD)的有效状态,加密数据输出单元750输出最终密文(CRYPT1至CRYPTN)中的一个作为最终密文(CRYPTD)。
因此,在如图7所示的硬件加密引擎中,如果在特定引擎的逻辑运算位置出现错误,并且在另一引擎的相同逻辑运算位置出现相同的错误,则从其它引擎中接收中间密文的引擎将输出与其它引擎不同的最终密文。
根据本发明的这个示例性实施例,每个密文引擎710、720、730具有多个舍入块。每个舍入块接收奇数个中间密文(大于或等于3),所述中间密文包括从其它引擎中所接收的中间密文。奇数个中间密文为舍入块的XOR逻辑电路的输入。当XOR逻辑电路的输入相同时,XOR逻辑电路的输出的逻辑运算位置和密文与从其它引擎中所接收的中间密文的逻辑运算位置和密文相同。因此,甚至当相同的错误出现在多个密文引擎710、720、730的相同位置上时,都可以在输出最终加密结果之前检测出错误。
如上所述,在根据使用两个或两个以上硬件密文引擎的对称算法(例如,DES)来执行并行加密运算的处理中,甚至当相同的错误出现在相同的位置,相关并行处理硬件加密引擎都可以在输出最终加密结果之前检测出错误。这样就可以防止泄露秘密信息。因此,这种引擎可以有力地防御错误攻击,并且由于不用重复地执行加密运算而具有较高的运算速度。
已经在上文及附图中解释和说明了本发明的示例性实施例。但是本发明并不局限于所公开的实施例,因为在不背离所附权利要求所定义的本发明的精神和范围的情况下,本领域的技术人员可以进行各种各样的修改。
例如,可以在硬件和/或软件中执行用于描述示例性装置和方法的图3-7中的部件。硬件/软件实施例可以包括处理器和制造品的组合。制造品可以包括存储介质和可执行计算机程序。可执行计算机程序可以包括用于执行所描述的操作和功能的指令。可以将计算机可执行程序规定为外部提供的宣传信号的一部分。并不认为这些变化背离了本发明的示例性实施例的精神和范围,并且所有这些对本领域的技术人员来所显而易见的修改要被包括在以下权利要求书的范围之内。
权利要求
1.一种用于加密传输数据的硬件加密引擎,所述硬件加密引擎包括用于生成中间密文的多个密文引擎,所述多个密文引擎中的第一个通过接收从所述多个密文引擎中的第二个输出的第二中间密文来生成第一中间密文。
2.如权利要求1所述的硬件加密引擎,其中如果没有出现错误,则所述第一中间密文与所述第二中间密文相同。
3.一种用于加密传输数据的硬件加密引擎,所述硬件加密引擎包括第一密文引擎,用于接收从第二密文引擎中输出的第二中间密文,生成第一中间密文,并且使用所述第一中间密文来生成和输出第一最终密文;第二密文引擎,用于输出所述第二中间密文,并且使用所述第二中间密文来生成和输出第二最终密文;比较单元,用于根据所述第一最终密文是否与所述第二最终密文相同来生成和输出具有逻辑状态的控制信号;和加密数据输出单元,用于响应所述控制信号的逻辑状态,并且当所述第一最终密文与所述第二最终密文相同时输出最终密文。
4.如权利要求3所述的硬件加密引擎,其中所述第二密文引擎接收从所述第一密文引擎输出的所述第一中间密文,并且生成所述第二中间密文。
5.如权利要求4所述的硬件加密引擎,其中所述第一密文引擎和所述第二密文引擎中的每一个包括多个舍入块以及具有相应第一中间密文和相应第二中间密文的输入的逻辑电路,所述第一密文引擎的每个舍入块生成所述相应第一中间密文,并且所述第二密文引擎的每个舍入块生成所述相应第二中间密文。
6.如权利要求5所述的硬件加密引擎,其中如果没有出现错误,则所述相应第一中间密文与所述相应第二中间密文相同。
7.如权利要求5所述的硬件加密引擎,其中所述逻辑电路进一步具有与所述第二密文引擎中的相应第二中间密文相同的其它中间密文的输入,以及与所述第一密文引擎中的相应第一中间密文相同的其它中间密文的输入。
8.如权利5所述的硬件加密引擎,其中将奇数个中间密文输入到所述逻辑电路。
9.如权利要求5所述的硬件加密引擎,其中在每个舍入块中放置逻辑电路。
10.如权利要求5所述的硬件加密引擎,其中在两个相邻密文引擎的每个舍入块中至少放置一次逻辑电路。
11.一种用于加密传输数据的方法,所述方法包括将第二密文引擎的第二中间密文输入到第一密文引擎;使用所述第二中间密文来生成所述第一密文引擎的第一中间密文。
12.如权利要求11所述的方法,其中如果没有出现错误,则所述第一中间密文与所述第二中间密文相同。
13.一种用于加密传输数据的方法,所述方法包括执行包括接收第二中间密文的第一加密来生成第一中间密文,并且使用所述第一中间密文来生成和输出第一最终密文;执行包括输出所述第二中间密文的第二加密,并且使用所述第二中间密文来生成和输出第二最终密文;根据所述第一最终密文是否与所述第二最终密文相同来生成和输出具有逻辑状态的控制信号;以及当所述第一最终密文与所述第二最终密文相同时,通过输出最终密文来响应所述控制信号的逻辑状态。
14.如权利要求13所述的方法,其中所述第二加密进一步包括接收所述第一中间密文和生成所述第二中间密文。
15.如权利要求14所述的方法,其中在第一密文引擎的多个舍入块中执行所述第一加密,在第二密文引擎的多个舍入块中执行所述第二加密,并且所述第一密文引擎和所述第二密文引擎使用逻辑电路,所述逻辑电路接收相应第一中间密文和相应第二中间密文作为输入。
16.如权利要求15所述的方法,其中如果没有出现错误,则所述相应第一中间密文与所述相应第二中间密文相同。
17.如权利要求15所述的方法,其中所述逻辑电路进一步具有与所述第二密文引擎中的相应第二中间密文相同的其它中间密文的输入,以及与所述第一密文引擎中的相应第一中间密文相同的其它中间密文的输入。
18.如权利15所述的方法,其中将奇数个中间密文输入到逻辑电路。
19.如权利要求15所述的方法,其中在每个舍入块中放置逻辑电路。
20.如权利要求15所述的方法,其中在两个相邻密文引擎的每个舍入块中至少使用一次逻辑电路。
21.一种根据权利要求11所述的方法来加密传输数据的硬件加密引擎。
22.一种根据权利要求13所述的方法来加密传输数据的硬件加密引擎。
23.一种用于加密传输数据的密文引擎,所述密文引擎包括多个舍入块,用于生成相应中间密文;其中所述多个舍入块中的一个接收包括来自另一个密文引擎的中间密文的奇数个中间密文输入,从而生成所述相应中间密文。
24.一种用于操作密文引擎的方法,所述方法包括输入包括来自另一个密文引擎的中间密文的奇数个中间密文;以及根据所述奇数个中间密文来生成输出密文。
25.一种用于加密传输数据的密文引擎的舍入块,所述舍入块包括加密单元,用于生成中间密文;第一逻辑算子,用于接收包括来自另一个密文引擎的中间密文的奇数个中间密文,从而生成中间密文;和第二逻辑算子,用于接收由所述加密单元生成的中间密文和由所述第一逻辑算子生成的中间密文。
26.一种用于操作密文引擎的舍入块的方法,所述密文引擎用于加密传输数据,所述方法包括生成加密单元的中间密文;根据包括来自另一个密文引擎的中间密文的奇数个中间密文的输入,生成第一逻辑算子的中间密文;以及根据所述加密单元的中间密文和所述第一逻辑算子的中间密文的输入,生成第二逻辑算子的中间密文。
27.一种根据权利要求24所述的方法来操作的密文引擎。
28.一种密文引擎的舍入块,所述舍入块根据权利要求26所述的方法进行运算。
全文摘要
一种硬件加密引擎可以包括多个密文引擎。第一密文引擎接收从第二密文引擎中输出的第二中间密文,生成第一中间密文,并且通过使用第一中间密文来生成和输出第一最终密文。第二密文引擎输出第二中间密文,并且使用第二中间密文来生成和输出第二最终密文。根据第一最终密文是否与第二最终密文相同,比较单元生成和输出具有逻辑状态的控制信号。加密数据输出单元可以响应所输出的控制信号的逻辑状态,并且当第一最终密文与第二最终密文相同时输出最终密文。密文引擎包括多个舍入块,多个舍入块中的一个接收包括来自另一个密文引擎的中间密文的奇数个中间密文输入,从而生成相应的中间密文。
文档编号G06F21/00GK1592190SQ20041006828
公开日2005年3月9日 申请日期2004年8月27日 优先权日2003年8月29日
发明者李成雨 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1