掌桥专利:专业的专利平台
掌桥专利
首页

用于保护电子装置免受旁信道攻击的方法和电路

文献发布时间:2024-04-18 20:01:30


用于保护电子装置免受旁信道攻击的方法和电路

技术领域

本公开大体上涉及电子电路,且更具体地说,涉及用于保护电子电路免受旁信道攻击(SCA)的方法和电路。

背景技术

现代IT安全性很大程度上依赖于密码术。密码术的主要构建块中的一个是加密。加密算法的安全性主要依赖于被称作密钥的特殊值的保密性。给定良好加密方案,在不了解必要秘密密钥的情况下对秘密消息进行解密应是不可能的。

对加密系统的许多攻击试图从正用于对数据进行加密或解密的装置中提取秘密密钥。针对密码装置的最成功类型的攻击中的一个通常被称为旁信道攻击(SCA)。旁信道攻击试图破解密码算法的实施方案。换句话说,SCA用于从对数据进行加密(或解密)的装置提取秘密密钥。SCA使用装置的物理特性来提取秘密密钥。SCA利用的物理特性的例子包括电力消耗、由装置产生的声音或装置对数据进行加密所花费的时间。

大多数强大的旁信道攻击使用模板(有时被称为模型)。模板为来自装置的信息的泄漏的模型。换句话说,模板描述给定装置如何通过例如电力消耗等旁信道泄漏关于秘密密钥的信息。

为了构建模板,攻击者必须使用与稍后将攻击的装置类似或相同的装置。通常,为构建模板,攻击者将使用与其将稍后攻击的装置型号相同且由相同制造商生产的装置。攻击者用于构建模板的装置通常在攻击者的完全或至少部分控制下,即,攻击者可使用该装置对不同消息进行加密,且攻击者还知道装置中使用的秘密密钥,攻击者通常还可设置秘密密钥的任何值。在此类情形中,攻击者在他们的实验室(对外隐藏)中私下构建模板,且因此难以发现是否有人正构建模板来攻击特定装置。

因此,需要一种用于保护装置免于旁信道攻击的装置和方法。

发明内容

根据本发明的第一方面,提供一种用于保护电子装置免受旁信道攻击(SCA)的方法,所述方法包括:

提供用于保护所述电子装置免受所述SCA的多个对策;以及

在所述电子装置的操作期间随机启用一组对策,所述一组对策包括所述多个对策中的一个或多个对策。

在一个或多个实施例中,随机启用进一步包括每当通过所述电子装置对消息进行加密或解密时就随机启用一组不同对策。

在一个或多个实施例中,所述多个对策包括包括掩蔽方案、噪声生成器、混洗方案和虚拟操作插入的群组中的两个或更多个。

在一个或多个实施例中,基于响应于在所述一组对策中是启用奇数个还是偶数个对策而生成的奇偶校验位来启用一个或多个额外对策。

在一个或多个实施例中,随机启用进一步包括生成随机数,并且使用所述随机数来启用所述一组对策。

在一个或多个实施例中,所述多个对策中的所述一个或多个基于所述随机数来接收参数。

在一个或多个实施例中,生成所述随机数包括使用随机数生成器,其中装置标识符、物理不可克隆函数(PUF)、计数器和加密密钥中的一个或多个作为种子值。

在一个或多个实施例中,所述多个对策包括始终启用的一个或多个对策,且随机选择所述对策中的一个或多个。

在一个或多个实施例中,随机启用进一步包括在制造期间针对多个电子装置中的每个电子装置随机启用一组不同对策。

在一个或多个实施例中,所述电子装置包括执行所述方法的集成电路。

根据本发明的第二方面,提供一种用于防护电子装置中的旁信道攻击(SCA)的方法,所述方法包括:

提供用于保护所述电子装置免受SCA的多个对策;

生成随机数;以及

基于所述随机数启用一组对策,所述一组对策包括所述多个对策中的一个或多个对策。

在一个或多个实施例中,启用一组对策进一步包括每当通过所述电子装置对消息进行加密或解密时就依据不同随机数启用一组不同对策。

在一个或多个实施例中,所述多个对策包括掩蔽方案、噪声生成器、混洗方案、虚拟操作插入中的两个或更多个。

在一个或多个实施例中,所述方法进一步包括生成奇偶校验位,其中响应于在所述一组对策中是启用奇数个还是偶数个对策而基于所述奇偶校验位来启用一个或多个额外对策。

在一个或多个实施例中,所述多个对策中的一个或多个启用对策基于所述随机数来接收参数。

在一个或多个实施例中,生成所述随机数包括使用随机数生成器,其中装置标识符、物理不可克隆函数(PUF)、计数器和加密密钥中的一个或多个作为用于所述随机数生成器的种子值。

在一个或多个实施例中,所述多个对策包括在所述电子装置的操作期间始终启用的一个或多个对策以及随机选择的一个或多个对策。

在一个或多个实施例中,随机启用进一步包括在制造期间针对多个电子装置中的每个电子装置随机启用一组不同对策。

在一个或多个实施例中,所述电子装置包括执行所述方法的集成电路。

根据本发明的第三方面,提供一种电子装置,所述电子装置包括:

存储器,所述存储器被配置成存储用于防护旁信道攻击(SCA)的多个对策;

随机数生成器,所述随机数生成器被配置成生成随机数;以及

启用电路,所述启用电路被配置成响应于所述随机数而启用一组对策,其中所述一组对策包括所述多个对策中的一个或多个。

本发明的这些和其它方面将根据下文中所描述的实施例显而易见,且参考这些实施例予以阐明。

附图说明

本发明借助于例子示出并且不受附图的限制,在附图中的类似标记指示类似元件。图式中的元件为简单和清楚起见被示出并且不必按比例绘制。

图1示出根据一实施例的可配置对策系统的概念图。

图2示出根据一实施例的来自硬件制造商的多个装置中的对策的分布。

图3示出根据另一实施例的可配置对策系统。

图4示出根据另一实施例的可配置对策系统。

图5示出根据另一实施例的可配置对策系统。

图6示出可配置对策系统的另一例子。

图7示出根据一实施例的用于保护加密操作免受SCA的方法。

图8示出根据一实施例的供用于装置中以保护免受SCA的数据处理系统。

具体实施方式

大体上,提供一种包括多个不同SCA对策的装置,例如芯片上系统(SoC)。装置上的机构使得多个对策的不同集合能够取决于所启用的对策集合而以不同方式更改装置的物理泄漏。以此方式,由一个装置上的攻击者创建的模板变得不可适用于具有一组不同对策的另一类似装置。当使用此技术时,由一个装置上的攻击者构建的模板可能相对于正运行一组不同对策的受攻击装置具有不良质量。因此,基于模板的SCA将不大可能成功。

根据一实施例,提供一种用于保护电子装置免受旁信道攻击(SCA)的方法,所述方法包括:提供用于保护所述电子装置免受所述SCA的多个对策;以及在所述电子装置的操作期间随机启用一组对策,所述一组对策包括所述多个对策中的一个或多个对策。随机启用可进一步包括每当通过所述电子装置对消息进行加密或解密时就随机启用一组不同对策。所述多个对策可包括包括掩蔽方案、噪声生成器、混洗方案和虚拟操作插入的群组中的两个或更多个。可基于响应于在所述一组对策中是启用奇数个还是偶数个对策而生成的奇偶校验位来启用一个或多个额外对策。随机启用可进一步包括生成随机数,并且使用所述随机数来启用所述一组对策。所述多个对策中的所述一个或多个可基于所述随机数来接收参数。生成所述随机数可包括使用随机数生成器,其中装置标识符、物理不可克隆函数(PUF)、计数器和加密密钥中的一个或多个作为种子值。所述多个对策可包括始终启用的一个或多个对策,且随机选择所述对策中的一个或多个。随机启用可进一步包括在制造期间针对多个电子装置中的每个电子装置随机启用一组不同对策。所述电子装置可包括执行所述方法的集成电路。

在另一实施例中,提供一种用于防护电子装置中的旁信道攻击(SCA)的方法,所述方法包括:提供用于保护所述电子装置免受SCA的多个对策;生成随机数;以及基于所述随机数启用一组对策,所述一组对策包括所述多个对策中的一个或多个对策。启用一组对策可进一步包括每当通过所述电子装置对消息进行加密或解密时就启用一组不同对策。所述多个对策可包括掩蔽方案、噪声生成器、混洗方案、虚拟操作插入中的两个或更多个。所述方法可进一步包括生成奇偶校验位,其中响应于在所述一组对策中是启用奇数个还是偶数个对策而基于所述奇偶校验位来启用一个或多个额外对策。所述多个对策中的所述一个或多个启用对策可基于所述随机数来接收参数。生成所述随机数可包括使用随机数生成器,其中装置标识符、物理不可克隆函数(PUF)、计数器和加密密钥中的一个或多个作为用于所述随机数生成器的种子值。所述多个对策可包括在所述电子装置的操作期间始终启用的一个或多个对策以及随机选择的一个或多个对策。随机启用可进一步包括在制造期间针对多个电子装置中的每个电子装置随机启用一组不同对策。所述电子装置可包括执行所述方法的集成电路。

在又一实施例中,提供一种电子装置,所述电子装置包括:存储器,所述存储器被配置成存储用于防护旁信道攻击(SCA)的多个对策;随机数生成器,所述随机数生成器被配置成生成随机数;以及启用电路,所述启用电路被配置成响应于所述随机数而启用一组对策,其中所述一组对策包括所述多个对策中的一个或多个。

实施对抗旁信道攻击的对策的典型装置可实施若干对策,且所述对策将通常在一个给定配置中同时全部为活动的。有时,制造商可设想实施多个对策,例如,五个对策,而最终产品的开发者可能例如归因于对系统的一些性能要求或约束而仅使用两个对策。在任何情况下,从装置的视角来看,装置始终在加密时使用2个固定对策。这意味着攻击者在构建模板时将始终“观察”到装置相对于对策处于相同状态。这意味着基于一个装置的模板将提供用于来自相同供应商的不同装置的良好模板。

在一些情况下,相同物理装置可由许多实体使用,且每个实体可具有其自身的帐号和秘密密钥。在此情况下,攻击者可使用同一装置的一个例子来获得配置文件(构建模板),且接着使用配置文件用于攻击,其可能涉及密钥提取。如果一组相同对策用于使用不同帐号使用装置的每个用户,则攻击者的配置文件将为用于攻击使用相同装置的不同用户的良好拟合。

加密用作示例实施例,但相同方案可用于使用秘密密钥的其它密码算法。使用秘密密钥的其它操作的例子包括解密、数字签名计算、消息认证码(MAC)计算、认证加密等。此外,所描述的实施例可与对称密码算法以及公布密码算法一起使用。并且,即使描述对密码密钥的跟踪,也可跟踪由算法处理的任何秘密信息,例如pin码或口令。此外,所论述的例子将主要集中于使用电力分析(旁信道攻击的大系列)和相关对策,但可应用所描述的保护方法来减轻其它类型的旁信道攻击。在一些情形中,所述方法还可增加装置对非配置文件类SCA以及故障注入攻击的抵抗性。

图1示出根据一实施例的可配置对策系统10的概念图。可配置对策系统10包括随机化电路12、启用电路14和多个对策11。在一个实施例中,随机化电路12提供用于随机确定启用多个对策11中的多少和哪些的数字。存在可生成随机数的许多方式。在图1中,随机化电路12可接收信息或数据的多个来源15到17以提供随机数。在另一实施例中,随机化电路12可为接收来源15到17中的一个或多个作为种子的随机数生成器(RNG)。在其它实施例中,可以不同方式生成随机化的启用信号。用于随机启用SCA对策的其它实施例在图3至图6中提供且将在下文论述。

多个对策11包括对策A到E。可使用大于一的任何数目个对策。为清楚起见,所描述的例子中将仅使用几个对策。预防旁信道攻击的典型对策包括掩蔽方案、混洗方案、噪声生成器和虚拟操作使用。此外,存在多个掩蔽方案(加法、乘法),且在一些算法的情况下,可应用许多掩蔽方案,类似地,存在也可用于密码算法中的许多混洗方案(例如,随机排列和随机开始索引)。举例来说,对策A可为掩蔽方案,对策B可为混洗方案,对策C可为虚拟操作插入,且对策D可为噪声生成器。可配置对策系统10可应用于可使用预防SCA的多个对策的密码装置。

激活电路14从随机化电路12接收随机数,并且启用来自多个对策11的一个或多个对策。存在各种方式来实施激活电路14。

随机化电路12提供由激活电路14使用以启用所述多个对策11的集合的随机数。其可以若干不同方式进行。取决于应用和对于特定类型的装置或应用所关注的主要攻击情形,一种方式可能优于另一方式。此处为基于所使用的信息来源执行随机化步骤的一些不同方式。真随机数生成器(TRNG)或伪随机数生成器(PRNG)可用于随机化电路12中以用于生成随机数以启用一组对策。来源15到17可用于提供随机化。作为到随机化电路12的输入的多个来源15到17的例子包括加密密钥、临时数、唯一装置标识符(UID)、物理不可克隆函数(PUF)、计数器值等,可作为输入中的一个。

根据一实施例,随机化电路12组合多个输入、将其混合,且在必要时将结果裁剪到所需位数,例如4位。位数可取决于多个对策11中将有多少对策。可以使用串接和散列函数完成组合和混合,可以使用模块化划分完成裁剪。对于对策选择的随机化,可同时使用这些数据片段和信息来源中的若干者。当使用多于一个来源时,可串接所述来源,且使用散列函数处理结果。此步骤可帮助使一组特定对策与用来选择所述对策的值解除关联。也就是说,如果攻击者发现启用了哪些特定对策和整个系统的工作方式,则计算上难以反转散列函数以找出用于使配置随机化的值。在一些情况下,可省略散列值,例如,如果仅TRNG用作唯一来源或由更简单且可能更快的操作(例如,异或(XOR))替换。举例来说,在一个实施例中,具有UID作为种子的PRNG用于生成随机值以启用一组对策,其中所述种子可为上文所提及的来源中的一个或多个。

在一个实施例中,生成随机数,且每当对消息进行加密时就启用一组新对策。这可以通过使用TRNG或PRNG作为用于随机化的输入中的一个来实现。当攻击者试图收集具有密钥和明文值的数据时,攻击者将不知道使用哪些对策。此外,整个数据集将含有具有经启用和停用的多种不同对策的迹线。因此,改变对策集合将使得难以针对成功的SCA创建良好模板。应注意,如果随机数生成器不可用,则当例如密钥和明文或简单计数器值用作用于随机化的输入时,可实现其稍微较弱的版本。也就是说,针对密钥与明文的每个组合选择一组新对策。然而,在此情形中,攻击者将知道(如果其知道对策配置方案)对于给定的固定明文与密钥组合启用一组相同对策。攻击者仍然将不一定知道相同配置是否用于不同密钥与明文。

在另一实施例中,一旦在装置中启用对策,则不改变对策集合。具有相同型号和制造商的每个装置将使用随机选择的对策配置,且对于给定装置,配置不改变。在此实施例中,如果多个顾客从硬件(HW)制造商购买相同装置且所得产品中的一个归因于其应用程序或实施方案缺陷而不太安全,则攻击者可能能够构建该装置的模板。在此情形中,装置可各自配置有不同对策,且攻击者将不能够使用来自一个应用程序开发者的装置来攻击来自另一应用程序开发者(两个应用程序开发者对于不同应用程序使用相同装置)的装置。此外,在装置的一个系列内部,所有装置可具有随机选择的配置,例如,通过使用其UID作为随机化的唯一来源。接着,如果例如8个不同配置是可能的,则攻击者将不知道每个装置具有哪种配置。因此,攻击者将仅具有能够使用来自另一装置的模型或模板成功地攻击一个装置的较小可能性。或者,攻击者将必须购买许多装置且构建许多模型,从而希望其获得与攻击目标具有相同配置集合的装置。也有可能使用若干对策来使SoC制造商的顾客之间的配置随机化,且使用若干额外对策来帮助这些顾客使他们所获取的装置之间的对策随机化。在图2中提供用于多个装置的随机选择的对策的例子。

图2示出根据一实施例的来自硬件制造商81的多个装置82中的随机选择的对策。硬件制造商81制造多个装置82,所述装置可为例如芯片上系统(SoC)装置。装置82供应到应用程序开发者。装置各自包括由硬件制造商81配置于装置82中的对策x、y和z。硬件制造商81使开发者之间的对策x、y和z随机化,以确保由装置的攻击者创建的任何模板将不会有效地与所有装置82一起使用。SoC 82可以分批形式提供到各种应用程序开发者83,所述批次包括每个开发者所需数目的SoC。SoC的每个批次包括对策x、y和z。每个应用程序开发者将接收一批具有所启用的对策的不同组合的SoC 82。举例来说,在图2中,应用程序开发者0接收一批启用(开启)对策x和y且停用(关闭)对策z的SoC,且应用程序开发者1接收一批开启对策x和z且关闭对策y的SoC。使用对策x、y和z的不同启用集合减少在来自一个应用程序开发者的一批装置的例子上创建的模板将对来自另一应用程序开发者的一批装置恰当地起效的可能性。除了由硬件制造商81加载的随机选择的对策之外,应用程序开发者还可将对策加载到其接收的装置上。作为简单例子,对策A、B和C可由多个应用程序开发者在其装置中使用。对策A、B和C可由硬件制造商81提供到应用程序开发者,或可由应用程序开发者从不同来源获取。举例来说,应用程序开发者0可将一批装置85划分为多个部分86到89,其中每个部分可启用一组不同对策A、B和C。装置85的不同部分可例如出售给应用程序开发者0的顾客。举例来说,应用程序开发者0可对于所有部分86到89启用对策A,且对于部分86到89启用对策B和C的不同组合。还应注意,从硬件制造商81提供给应用程序开发者0的装置还包括如图2中所示启用的对策x、y和z。作为另一例子,应用程序开发者1可针对批次84的不同SoC随机地开启和关闭对策A和B,而对策C不用于批次84的SoC中的任一个。

在另一实施例中,取决于装置的唯一ID(如在固定方案中)而始终开启或启用装置的一些对策,且随机选择一些对策(如在完全随机方案中)。所述两组配置可不同。在此情形中,模板从一个装置到另一个装置的传送可变得甚至更困难,因为除始终开启不同对策之外,每当使用装置时,还启用额外随机选择的对策。此方案的缺点在于其可能需要实施更多对策。此外,此方案可用于防止模板从一个供应商的装置到另一供应商的装置的可转移性。举例来说,公司M制造且出售微控制器,而公司A和B从制造商M购买相同微控制器以放入完全不同的产品。公司A和B可具有始终开启的不同组对策。以此方式,攻击者将不能够将使用装置创建的模板从公司A传送到来自公司B的装置,即使公司A和B两者都使用相同装置,例如,来自制造商M的微控制器。

除了用于防护SCA之外,所公开的方法还可用于防护其它类型的攻击,例如故障注入攻击。为了安装故障注入攻击,攻击者必须将集成电路管芯的特定区域瞄准,且在装置的操作期间精确地在正确时间处注入故障。随机选择的对策的使用可帮助防止攻击者分析信号时序,且因此使得故障注入攻击更困难。

图3示出根据另一实施例的可配置对策系统20。可配置对策系统20包括RNG 22、启用电路24和多个对策26。作为一例子,多个对策26包括对策A到D。可如上文关于图1中的随机化电路12所描述来实施随机数生成器22。并且,多个对策26可与多个对策11相同或类似。一般来说,RNG 22生成随机值23。举例来说,如图3中所示出,随机值23可为数目“5”。将随机值23提供到启用电路24,所述启用电路可实施为使用随机值23的二进制表示25以随机启用一组多个对策26。如图3中所示出,使用4个位的值“5”的二进制表示为0101。在启用电路53中,二进制表示25用于生成启用或停用对策的启用信号。在所示出的实施例中,每个位用于启用或停用多个对策A到D中的一个。举例来说,启用电路24中的最右位为“1”。如所示出,二进制值“1”提供标记为“开启”的启用信号以启用对策A。同样,4位的其它三个二进制启用对策C且停用对策B和D。在另一实施例中,以“0”位启用对策,且以“1”位停用对策。启用电路24仅示出二进制表示25,其中启用信号从每个位运行到对策。然而,本领域的技术人员将知道启用电路24包括用来依据位值生成启用信号的额外电路(未示出),例如逻辑和驱动器。

图4示出根据另一实施例的可配置对策系统30。可配置对策系统30类似于可配置对策系统20,例外之处在于奇偶校验位由奇偶校验计算电路32计算以启用多个对策34中的对策E。在一些实施例中,可能需要确保始终启用至少一个对策。存在确保至少一个对策始终开启的许多方式。一种方式为简单地选择一个或若干个对策始终开启,使得对策选择为“固定”。另一方式为使一个或若干对策以互补方式开启和关闭,例如如果对策A开启,则对策B关闭,且当对策A关闭时,则对策B开启。可例如在图4中以5个对策使用其它方法,可使用4位来开启或关闭4个对策A、B、C和D。所述4位的组合接着可用于计算奇偶校验位,且所述奇偶校验位用于根据奇偶校验规则开启对策E。在如下表的例子中所示的一个示例奇偶校验规则中,如果对策A到D的4位值具有偶数个1,则奇偶校验计算电路32计算出“1”奇偶校验位,且如果1的数目为奇数,则奇偶校验位为“0”。作为特定例子,如果开启的A、B、C和D当中的对策的数目为偶数,则对策E在表中为开启,参见下表的所有情况。此方法确保至少一个对策始终开启。下文的例子有1个对策始终开启,但有可能碰到其中额外对策始终开启的类似系统。在下表中,“1”意味着启用,且“0”意味着停用。对策名称A到E在第一行中。

图5示出根据另一实施例的可配置对策系统40。图5的实施例与图4的实施例相同,其例外之处在于可配置对策系统40提供无法同时启用的对策的随机启用。作为一例子,RNG22提供随机值14,所述随机值具有1110作为启用电路24中的二进制表示。如可在图5中看出,对策E和F不同时启用。这通过使用反相电路44反转发送到对策E的奇偶校验启用信号来实现。这使得在停用对策E的同时启用对策F,且反之亦然。

图6示出根据一实施例的可配置对策系统50。可配置对策系统50包括RNG 51,其提供随机值52。随机值52提供到启用电路53。多个对策54包括对策A到C。作为一例子,随机值为51,且6位的二进制表示为110011。图6中从左到右,第一位、第四位和第六位为启用位,且第二位、第三位和第五位用于启用供对应对策使用的参数。举例来说,对策C接收由第二位和第三位启用和停用的参数,且对策B接收由第五位启用和停用的参数。图6示出6位,其它实施例可取决于对策和参数的数目而使用多于或少于6位。

装置中的一些对策可能需要用于装置中的恰当操作的参数。举例来说,用于分块加密的掩蔽方案可仅应用于第一轮、第一轮和最后一轮、前两轮和最后两轮或所有轮次上。在分块加密的情况下,旁信道攻击趋向于集中于第一轮或最后一轮。在此情形中,所启用对策需要接收用于其启用的参数。这些参数的启用通过在启用电路53的二进制表示中使用额外位而随机化。较早所描述的随机化电路可针对可能需要其的每个所启用对策提供额外随机位。实施此方法的一个极简单方式为始终生成启用信号并将其提供到可能需要参数的所有对策,且仅在启用对策的情况下实际上使用这些值。实施使用参数的对策的另一方式在图6中示出。可配置对策系统50实施起来相对简单,但需要生成更多随机位,如果未激活具有参数的对策,则可不使用所述随机位中的一些。然而,还可能仅针对所启用对策生成额外随机性。

图7示出根据一实施例的用于保护装置中的加密操作免受SCA的方法60。方法60开始于步骤62。在步骤62处,接收需要加密的消息。每当接收到用于加密的消息时,可使用方法60。通常,加密操作需要使用加密密钥。攻击者可能够使用SCA来提取加密密钥。攻击者可能尝试重新创建如上文所描述的装置的模板以帮助改进成功的可能性。所描述的实施例使得攻击者较难以创建模板。在步骤63处,从多个来源中选择来源来产生随机值R。随机值R可呈具有预定位数目的二进制形式。在步骤64处,使用随机值R来启用来自多个对策的一组SCA对策。可在装置中启用多个对策中的一个或多个。在步骤65处,对所述消息进行加密。每当接收到需要加密的消息时,就重复方法60。在另一实施例中,可每当使用秘密密钥时就使用方法60。

多种配置将增加预防SCA的保护,但不会完全消除对SCA的漏洞。具有足够知识、时间和能力的攻击者将仍能够创建用于模板攻击的模型,而不管保护的量如何。为了使攻击更困难,如果对策的配置无法由软件开发者或操作系统(OS)控制,则装置将被更好地保护,否则攻击者将能够完全关闭操作系统或定位一组对策,这将允许更容易地获得配置文件。因此,对策的随机化和启用应仅由装置自身(例如,由密码引擎)控制。

应注意,攻击者可能试图收集大量数据,且将迹线集群以期组合使用相同组对策收集的迹线。这将允许攻击者创建更好的配置文件集合。但其仍需要运行集群,且在目标装置上运行集群。集群可能不是完美的,但可能仍帮助攻击者。

使用想法的若干稍微不同的方式是可能的。举例来说,对策的配置可在每单一加密操作时或在若干加密操作之后改变。从攻击者的观点来看,更容易攻击一组相同对策(相同配置)使用一段时间后才切换到不同对策的实施方案。这是因为攻击者可能发现该实施方案,且因此使用此信息来验证集群的质量且改进所述集群。举例来说,攻击者将能够检查循序获取的迹线处于同一集群中。

在另一实施例中,此技术可与由软件开发者完全控制的一些额外对策并行地使用,但在一些情形中,这些软件控制的对策可能最终由攻击者控制。类似地,当启用或停用对策时,有可能不是随机而是取决于一些上下文(例如,是否需要保护,例如使用软件对传输层安全性(TLS)的安全启动或简单数据包加密)而选择此对策的配置。然而,在一些情形中,此类配置也可由攻击者控制。

注意,在另一实施例中,可针对装置开发者启用用于配置的设置过程。举例来说,获取微控制器的装置开发者将能够指定是否应始终启用一些对策,或是否应例如针对每个加密随机地切换对策,或针对不同装置基于其唯一ID固定对策。

图8示出根据一实施例的供用于装置中以防护SCA的数据处理系统70。数据处理系统70可使用一个或多个集成电路实施,且可在所描述实施例的实施方案中使用。数据处理系统70包括总线或开关网络71,其可用于在数据处理系统70的电路之间传达信息。在一个例子中,数据处理系统70可为芯片上系统(SoC)。在另一实施例中,数据处理系统70可包括多个芯片或集成电路(IC)。一个或多个处理器核心72、存储器73、随机数生成器74、指令存储器75和接口76连接到总线71。一个或多个处理器核心72可包括能够执行存储于存储器73或指令存储器75中的指令的任何硬件装置。举例来说,处理器核心72可在所示出的实施例中执行加密和/或解密算法。处理器核心72可为例如微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或类似装置。处理器核心72可实施于安全硬件元件中,且可以是防篡改的。

存储器73可为任何种类的存储器,例如L1、L2或L3高速缓存或系统存储器。存储器73可包括易失性存储器,例如静态随机存取存储器(SRAM)或动态RAM(DRAM),或可包括非易失性存储器,例如快闪存储器、只读存储器(ROM)或其它易失性或非易失性存储器。并且,存储器73可实施于安全硬件元件或其它类型的安全存储器中。可替换的是,存储器73可为在数据处理系统70外部实施的硬盘驱动器。根据一实施例,存储器73可用于存储多个SCA对策。

随机数生成器74可为用于提供随机值以选择一组SCA对策的任何类型的软件或电路。举例来说,RNG 74可为TRNG、PRNG、散列函数、简单计数器、PUF等。

指令存储器75可包括用于存储供处理器核心72执行的指令的一个或多个非暂时性机器可读存储介质。在其它实施例中,存储器73和75两者可存储处理器核心72可对其进行操作的数据。存储器73和75还可存储例如加密、解密和验证应用程序。存储器126和130可实施于安全硬件元件中,且为防篡改的。

接口76可连接到一个或多个电路以实现与例如管理员等用户的通信。接口76可包括用于耦合到显示器、鼠标、键盘或其它输入/输出装置的接口。接口76可包括用于实现与其它硬件装置的通信的一个或多个电路。举例来说,接口76可包括或耦合到被配置成根据以太网协议通信的网络接口卡(NIC)。并且,接口76可实施用于根据TCP/IP协议通信的TCP/IP堆栈。可经由接口76输入用于分类的数据样本。可获得用于通信的各种其它硬件或配置。

各种实施例或实施例的一部分可以实施成硬件或实施成非暂时性机器可读存储介质上的指令,该介质包括用于以例如个人计算机、手提式计算机、文件服务器、智能手机或其它计算装置的机器可读的形式存储信息的任何机构。非暂时性机器可读存储介质可包括易失性和非易失性存储器,例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、快闪存储器等。非暂时性机器可读存储介质不包括暂时性信号。

虽然本文中参考具体实施例描述了本发明,但是在不脱离如所附权利要求书所阐述的本发明的范围的情况下可以进行各种修改和改变。因此,说明书和附图应视为示意性而不具有限制性意义,并且所有这些修改旨在都包括在本发明的范围内。并不希望将本文中关于具体实施例所描述的任何优势、优点或针对问题的解决方案理解为任何或所有权利要求的关键、必需或必不可少的特征或元件。

此外,如本文中所使用,术语“一”被定义为一个或一个以上。而且,权利要求书中例如“至少一个”和“一个或多个”等介绍性短语的使用不应解释为暗示由不定冠词“一”导入的另一权利要求要素将含有此引导的权利要求要素的任何特定权利要求限制为仅含有一个此要素的发明,甚至是在同一权利要求包括介绍性短语“一个或多个”或“至少一个”和例如“一”等不定冠词时。这同样适用于定冠词的使用。术语“电路”和“电路系统”可指硬件、软件或硬件与软件的组合。

除非以其它方式陈述,否则例如“第一”和“第二”等术语用于任意地区别这些术语所描述的元件。因此,这些术语未必意图指示此类元件的时间或其它优先级排序。如本文中所使用,术语“耦合”并不意图局限于直接耦合或机械耦合。

相关技术
  • 一种磁记忆检测异质金属涂层结合面损伤程度的方法
  • 一种基于磁记忆信号的拉索结构损伤程度评价方法
技术分类

06120116562784