[go: up one dir, main page]

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

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

Info

Publication number
CN1592190A
CN1592190A CNA2004100682863A CN200410068286A CN1592190A CN 1592190 A CN1592190 A CN 1592190A CN A2004100682863 A CNA2004100682863 A CN A2004100682863A CN 200410068286 A CN200410068286 A CN 200410068286A CN 1592190 A CN1592190 A CN 1592190A
Authority
CN
China
Prior art keywords
ciphertext
engine
intermediate ciphertext
final
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.)
Granted
Application number
CNA2004100682863A
Other languages
English (en)
Other versions
CN1592190B (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
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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代表中间密文的数字数据值,并且代表异或(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中的部件。硬件/软件实施例可以包括处理器和制造品的组合。制造品可以包括存储介质和可执行计算机程序。可执行计算机程序可以包括用于执行所描述的操作和功能的指令。可以将计算机可执行程序规定为外部提供的宣传信号的一部分。并不认为这些变化背离了本发明的示例性实施例的精神和范围,并且所有这些对本领域的技术人员来所显而易见的修改要被包括在以下权利要求书的范围之内。

Claims (28)

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所述的方法进行运算。
CN2004100682863A 2003-08-29 2004-08-27 硬件加密引擎和加密方法 Expired - Fee Related CN1592190B (zh)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
CN1592190A true CN1592190A (zh) 2005-03-09
CN1592190B 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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820342A (zh) * 2010-03-31 2010-09-01 北京飞天诚信科技有限公司 硬件加密引擎的实现方法
CN101908963A (zh) * 2010-08-09 2010-12-08 北京飞天诚信科技有限公司 一种摘要引擎的实现方法
CN102055759A (zh) * 2010-06-30 2011-05-11 北京飞天诚信科技有限公司 一种硬件引擎的实现方法
CN107220551A (zh) * 2017-04-21 2017-09-29 上海海加网络科技有限公司 一种基于双卡校验的多线程组加解密调度方法及系统
CN109361507A (zh) * 2018-10-11 2019-02-19 杭州华澜微电子股份有限公司 一种数据加密方法及加密设备

Families Citing this family (12)

* 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
JP5480890B2 (ja) * 2008-05-29 2014-04-23 エルジー エレクトロニクス インコーポレイティド 制御信号の暗号化方法
CN101919203A (zh) * 2009-02-26 2010-12-15 Lsi公司 用于加密器硬件服务的与加密器无关的接口
EP2367316B1 (en) * 2010-03-12 2017-07-05 STMicroelectronics (Rousset) SAS Method and circuitry for detecting a fault attack
US8683275B2 (en) 2011-11-16 2014-03-25 International Business Machines Corporation Controlling IPSec offload enablement during hardware failures
CN105814833B (zh) * 2013-12-20 2019-12-13 皇家飞利浦有限公司 用于安全的数据变换的方法和系统
CN106919810B (zh) * 2017-02-22 2020-04-07 广州广电运通金融电子股份有限公司 注册码生成方法及装置、软件注册方法及装置
US11909857B2 (en) * 2019-12-23 2024-02-20 Intel Corporation Functionally safe encryption for vehicle to anything communication

Family Cites Families (12)

* 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.
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
WO1999067919A2 (en) * 1998-06-03 1999-12-29 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
US7142671B2 (en) * 2000-12-13 2006-11-28 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
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 삼성전자주식회사 겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820342A (zh) * 2010-03-31 2010-09-01 北京飞天诚信科技有限公司 硬件加密引擎的实现方法
CN102055759A (zh) * 2010-06-30 2011-05-11 北京飞天诚信科技有限公司 一种硬件引擎的实现方法
CN102055759B (zh) * 2010-06-30 2013-06-19 飞天诚信科技股份有限公司 一种硬件引擎的实现方法
CN101908963A (zh) * 2010-08-09 2010-12-08 北京飞天诚信科技有限公司 一种摘要引擎的实现方法
CN107220551A (zh) * 2017-04-21 2017-09-29 上海海加网络科技有限公司 一种基于双卡校验的多线程组加解密调度方法及系统
CN109361507A (zh) * 2018-10-11 2019-02-19 杭州华澜微电子股份有限公司 一种数据加密方法及加密设备
CN109361507B (zh) * 2018-10-11 2021-11-02 杭州华澜微电子股份有限公司 一种数据加密方法及加密设备

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1592190A (zh) 硬件加密引擎和加密方法
US8422671B2 (en) Methods of encryption and decryption using operand ordering and encryption systems using the same
CN1124719C (zh) 用于存取控制的参数化散列函数
EP3468147B1 (en) Method for constructing secure hash functions from bit-mixers
US20150055776A1 (en) Method and System for High Throughput Blockwise Independent Encryption/Decryption
JP2016035554A (ja) 完全準同型暗号化方式を使用したコンパクトなファジープライベートマッチング
US20210021405A1 (en) Key sequence generation for cryptographic operations
CN113098675B (zh) 基于多项式完全同态的二进制数据加密系统及方法
CN1281607A (zh) 能快速解密的密码系统与方法
CN114175572A (zh) 利用拟群运算对加密数据实行相等和小于运算的系统和方法
CN1218531C (zh) 实现椭圆曲线类型公共密钥加密算法的电子部件中的对策方法
EP4084484B1 (en) Method and device for encryption of video stream, communication equipment, and storage medium
US20230141210A1 (en) Neural networks
CN1820448A (zh) 用于使用三阶段加密来加密和验证消息的系统和方法
US20050132190A1 (en) Methods for supplying cryptographic algorithm constants to a storage-constrained target
WO2009115824A1 (en) Encryption method
WO2007129197A1 (en) Cryptographic apparatus and process
JP2003535362A (ja) 暗号多項式の解読
Pornin The MAKWA password hashing function
CN116668005A (zh) 一种加密方法、装置、设备及介质
CN1153404C (zh) 具有增强保护以防选择的密文攻击的公钥密码系统
CN101378321B (zh) 一种安全处理的方法和装置
Somsuk et al. The Variant of Digital Signature Algorithm for Constant Message.
CN118921236B (zh) 数据处理方法、装置、非易失性存储介质和计算机设备
CN1642265A (zh) 一种数字电视网络系统的通讯方法

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