CN1592190B - 硬件加密引擎和加密方法 - Google Patents

硬件加密引擎和加密方法 Download PDF

Info

Publication number
CN1592190B
CN1592190B CN2004100682863A CN200410068286A CN1592190B CN 1592190 B CN1592190 B CN 1592190B CN 2004100682863 A CN2004100682863 A CN 2004100682863A CN 200410068286 A CN200410068286 A CN 200410068286A CN 1592190 B CN1592190 B CN 1592190B
Authority
CN
China
Prior art keywords
ciphertext
engine
final
intermediate ciphertext
generate
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.)
Expired - Fee Related
Application number
CN2004100682863A
Other languages
English (en)
Other versions
CN1592190A (zh
Inventor
李成雨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1592190A publication Critical patent/CN1592190A/zh
Application granted granted Critical
Publication of CN1592190B publication Critical patent/CN1592190B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Pinball Game Machines (AREA)

Abstract

一种硬件加密引擎可以包括多个密文引擎。第一密文引擎接收从第二密文引擎中输出的第二中间密文,生成第一中间密文,并且通过使用第一中间密文来生成和输出第一最终密文。第二密文引擎输出第二中间密文,并且使用第二中间密文来生成和输出第二最终密文。根据第一最终密文是否与第二最终密文相同,比较单元生成和输出具有逻辑状态的控制信号。加密数据输出单元可以响应所输出的控制信号的逻辑状态,并且当第一最终密文与第二最终密文相同时输出最终密文。密文引擎包括多个舍入块,多个舍入块中的一个接收包括来自另一个密文引擎的中间密文的奇数个中间密文输入,从而生成相应的中间密文。

Description

硬件加密引擎和加密方法
本申请要求根据35U.S.C.§119于2003年8月29日提交的韩国专利申请号2003-60204的优先权,在此全文引用作为参考。 
技术领域
本发明一般涉及硬件加密引擎,尤其涉及一种硬件加密引擎。 
背景技术
用户可以使用智能卡(或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代表中间密文的数字数据值,并且
Figure 200410068286310000210003_0
代表异或(XOR)逻辑算符: 
mm
Figure 200410068286310000210003_2
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
Figure 200410068286310000210003_3
m′
Figure 200410068286310000210003_4
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
Figure 10003_5
m
Figure 10003_6
mmm=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中的部件。硬件/软件实施例可以包括处理器和制造品的组合。制造品可以包括存储介质和可执行计算机程序。可执行计算机程序可以包括用于执行所描述的操作和功能的指令。可以将计算机可执行程序规定为外部提供的宣传信号的一部分。并不认为这些变化背离了本发明的示例性实施例的精神和范围,并且所有这些对本领域的技术人员来所显而易见的修改要被包括在以下权利要求书的范围之内。 

Claims (20)

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所述的方法,其中在所述第一和第二密文引擎的每个舍入块中至少使用一次逻辑电路。
CN2004100682863A 2003-08-29 2004-08-27 硬件加密引擎和加密方法 Expired - Fee Related CN1592190B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020030060204A KR100546375B1 (ko) 2003-08-29 2003-08-29 자체 오류 감지 기능을 강화한 상호 의존적 병렬 연산방식의 하드웨어 암호화 장치 및 그 하드웨어 암호화 방법
KR60204/2003 2003-08-29
KR60204/03 2003-08-29

Publications (2)

Publication Number Publication Date
CN1592190A CN1592190A (zh) 2005-03-09
CN1592190B true CN1592190B (zh) 2011-06-29

Family

ID=34214745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004100682863A Expired - Fee Related CN1592190B (zh) 2003-08-29 2004-08-27 硬件加密引擎和加密方法

Country Status (5)

Country Link
US (1) US7779272B2 (zh)
KR (1) KR100546375B1 (zh)
CN (1) CN1592190B (zh)
DE (1) DE102004042826B4 (zh)
FR (1) FR2860364B1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919810A (zh) * 2017-02-22 2017-07-04 广州广电运通金融电子股份有限公司 注册码生成方法及装置、软件注册方法及装置

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050087271A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
DE102004062825B4 (de) * 2004-12-27 2006-11-23 Infineon Technologies Ag Kryptographische Einheit und Verfahren zum Betreiben einer kryptographischen Einheit
US20070028088A1 (en) * 2005-08-01 2007-02-01 Coskun Bayrak Polymorphic encryption method and system
KR100658990B1 (ko) * 2005-08-10 2006-12-21 주식회사 이노라임 다중 세션을 통한 일괄 암호화 처리를 하는 방법 및 장치
DE102006036165B3 (de) * 2006-08-01 2008-06-26 Nec Europe Ltd. Verfahren zur Etablierung eines geheimen Schlüssels zwischen zwei Knoten in einem Kommunikationsnetzwerk
CN102100030B (zh) * 2008-05-29 2014-03-19 Lg电子株式会社 加密控制信号的方法
US8654969B2 (en) * 2009-02-26 2014-02-18 Lsi Corporation Cipher independent interface for cryptographic hardware service
EP2367316B1 (en) * 2010-03-12 2017-07-05 STMicroelectronics (Rousset) SAS Method and circuitry for detecting a fault attack
CN101908963B (zh) * 2010-08-09 2012-02-22 飞天诚信科技股份有限公司 一种摘要引擎的实现方法
CN102055759B (zh) * 2010-06-30 2013-06-19 飞天诚信科技股份有限公司 一种硬件引擎的实现方法
CN101820342B (zh) * 2010-03-31 2012-02-15 飞天诚信科技股份有限公司 硬件加密引擎的实现方法
US8683275B2 (en) 2011-11-16 2014-03-25 International Business Machines Corporation Controlling IPSec offload enablement during hardware failures
WO2015091172A1 (en) * 2013-12-20 2015-06-25 Koninklijke Philips N.V. Secure data transformations
CN107220551B (zh) * 2017-04-21 2020-12-25 上海海加网络科技有限公司 一种基于双卡校验的多线程组加解密调度方法及系统
CN109361507B (zh) * 2018-10-11 2021-11-02 杭州华澜微电子股份有限公司 一种数据加密方法及加密设备
US11909857B2 (en) * 2019-12-23 2024-02-20 Intel Corporation Functionally safe encryption for vehicle to anything communication

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US627878A (en) * 1898-09-29 1899-06-27 Cullin W Reed Reversible plow.
EP1215841A2 (en) * 2000-12-13 2002-06-19 Broadcom Corporation Methods and apparatus for implementing a cryptography engine

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8203737A (nl) * 1982-09-27 1984-04-16 Nederlanden Staat Inrichting voor vercijfering van digitale signalen met een of meer des-schakelingen.
US6108419A (en) * 1998-01-27 2000-08-22 Motorola, Inc. Differential fault analysis hardening apparatus and evaluation method
EP1090480B1 (en) * 1998-06-03 2019-01-09 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
US20010031050A1 (en) * 2000-02-14 2001-10-18 Lateca Computer Inc. N.V. Key generator
US7685423B1 (en) * 2000-02-15 2010-03-23 Silverbrook Research Pty Ltd Validation protocol and system
JP2002261751A (ja) 2001-03-02 2002-09-13 Hitachi Ltd 暗号処理方法
US7318160B2 (en) * 2002-02-01 2008-01-08 Hewlett-Packard Development Company, L.P. Cryptographic key setup in queued cryptographic systems
FR2838262B1 (fr) * 2002-04-08 2004-07-30 Oberthur Card Syst Sa Procede de securisation d'une electronique a acces crypte
EP1387519A3 (fr) * 2002-07-09 2004-02-18 Cp8 Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs
KR100574945B1 (ko) 2003-08-08 2006-04-28 삼성전자주식회사 겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US627878A (en) * 1898-09-29 1899-06-27 Cullin W Reed Reversible plow.
EP1215841A2 (en) * 2000-12-13 2002-06-19 Broadcom Corporation Methods and apparatus for implementing a cryptography engine

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
R.J.Easter et al..S/390 Parallel Enterprise Server CMOS CryptographicCoprocessor.IBM J.RES DEVELOP.43 5/6.1999,43(5/6),761-776.
R.J.Easter et al..S/390 Parallel Enterprise Server CMOS CryptographicCoprocessor.IBM J.RES DEVELOP.43 5/6.1999,43(5/6),761-776. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919810A (zh) * 2017-02-22 2017-07-04 广州广电运通金融电子股份有限公司 注册码生成方法及装置、软件注册方法及装置
CN106919810B (zh) * 2017-02-22 2020-04-07 广州广电运通金融电子股份有限公司 注册码生成方法及装置、软件注册方法及装置

Also Published As

Publication number Publication date
DE102004042826A1 (de) 2005-03-31
KR20050022623A (ko) 2005-03-08
DE102004042826B4 (de) 2010-06-17
FR2860364A1 (fr) 2005-04-01
US20050050340A1 (en) 2005-03-03
CN1592190A (zh) 2005-03-09
FR2860364B1 (fr) 2006-08-04
KR100546375B1 (ko) 2006-01-26
US7779272B2 (en) 2010-08-17

Similar Documents

Publication Publication Date Title
CN1592190B (zh) 硬件加密引擎和加密方法
CA3049531C (en) Homomorphic white box system and method for using same
US5323464A (en) Commercial data masking
US6185679B1 (en) Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks
US5073934A (en) Method and apparatus for controlling the use of a public key, based on the level of import integrity for the key
US20160234010A1 (en) Method and system for homomorphicly randomizing an input
EP3468147B1 (en) Method for constructing secure hash functions from bit-mixers
US11546135B2 (en) Key sequence generation for cryptographic operations
US8422671B2 (en) Methods of encryption and decryption using operand ordering and encryption systems using the same
AU2022100184A4 (en) System for and method of authenticating a component of an electronic device
US20150215117A1 (en) White box encryption apparatus and method
US9847879B2 (en) Protection against passive sniffing
KR20150142623A (ko) 안전하게 메시지를 교환하기 위한 방법, 이 방법을 구현하기위한 장치 및 시스템
Aldaya et al. AES T-Box tampering attack
US20060153372A1 (en) Smart card and method protecting secret key
WO2021176242A1 (en) Scrambler apparatus and method in particular for cryptographic applications, and descrambler apparatus and method therefor
US20050132190A1 (en) Methods for supplying cryptographic algorithm constants to a storage-constrained target
EP3698262B1 (en) Protecting modular inversion operation from external monitoring attacks
CN113098675B (zh) 基于多项式完全同态的二进制数据加密系统及方法
WO2016124469A1 (en) System and method for performing block cipher cryptography by implementing a mixer function that includes a substitution-box and a linear transformation using a lookup-table
CN112765686A (zh) 芯片内算法密钥的防功耗攻击架构及方法
Anderson Tree functions and cipher systems
Abbas et al. Dictionary Attack on TRUECRYPT with RIVYERA S3-5000
Aggarwal et al. Comparative Analysis of Multi-Level Algorithm with Different Encryption and Decryption Security Algorithms
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110629

Termination date: 20140827

EXPY Termination of patent right or utility model