硬件加密引擎和加密方法技术

技术编号:3522339 阅读:130 留言:0更新日期:2012-04-11 18:40
一种用于加密传输数据的硬件加密引擎,所述硬件加密引擎包括:    用于生成中间密文的多个密文引擎,所述多个密文引擎中的第一个通过接收从所述多个密文引擎中的第二个输出的第二中间密文来生成第一中间密文。

【技术实现步骤摘要】

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

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:李成雨
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1