用于对受保护的签名操作和密钥交换操作的侧信道攻击的对策
文献发布时间:2023-06-19 13:48:08
技术领域
本文描述的实施例总体涉及电子设备领域,并且更具体地,涉及 用于对受保护的签名操作和密钥交换操作的侧信道攻击的对策。
背景技术
密码学在计算系统中实现,以提供安全的数据存储和通信,包括 针对侧信道攻击(SCA)的安全性。侧信道攻击是一种基于计算系统 中的泄漏信息(例如,以功耗、电磁辐射或其他来自电路的信号观察 的形式)的攻击。
特别地,诸如ECDSA(椭圆曲线数字签名算法)签名和ECDH(椭 圆曲线Diffie-Hellman)的某些安全操作应用椭圆曲线标量乘法(ESM) 来执行平台认证和密钥交换。由于极难将基于椭圆曲线输出值的计算 分解为因数,因此可以利用ECDSA签名和ECDH操作成功地基于密 钥提供高安全性。
然而,基于功率或电磁(EM)侧信道的高级硬件攻击能够揭示这 些操作中使用的密钥。在这种攻击中,敌对者可以能够通过功率/电磁 侧信道利用ESM操作来提取整数标量,该整数标量是用于ECDSA签 名和ECDH操作的秘密密钥,从而可以击败针对系统实施的安全措施。 因此,对于受保护的签名操作和密钥交换操作,可能需要其他对策。
附图说明
在附图的各图中,通过示例而非限制的方式示出了这里描述的实 施例,在附图中,相似的附图标记指代相似的要素。
图1A和图1B分别示出了一次性基于散列的签名方案和多次基于 散列的签名方案;
图2A和图2B分别示出了一次签名方案和多次签名方案;
图3是根据一些实施例的包括用于执行椭圆曲线标量乘法的处理 元件的装置的图示;
图4是可以在ECDSA签名操作和ECDH操作中使用的常规椭圆 曲线乘法算法的各方面的图示;
图5是根据一些实施例的ESM计算的侧信道泄漏和对策的图示;
图6A-6D示出了时序、功率和EM侧信道泄漏,它们可以通过新 颖的对策技术的实施例来解决,以消除侧信道攻击;
图7是根据一些实施例的可以在ECDSA签名操作和ECDH操作 中使用的改进的椭圆曲线标量乘法算法的图示;
图8A是根据一些实施例的用于椭圆曲线标量乘法的平衡执行的 图示;
图8B是示出根据一些实施例的用于在椭圆曲线标量乘法操作中 平衡执行的处理的流程图;
图9A是根据一些实施例的数据随机化以抵抗椭圆曲线标量乘法 中的数据依赖漏洞的图示;
图9B是示出根据一些实施例的包括数据随机化以抵抗椭圆曲线 标量乘法中的数据依赖漏洞的处理的流程图;
图10A是根据一些实施例的标量分离以抵抗椭圆曲线标量乘法中 的实现方式特定泄漏的图示;
图10B是示出根据一些实施例的包括标量分离以抵抗椭圆曲线标 量乘法中的实现方式特定泄漏的处理的流程图;和
图11示出了根据一些实施例的用于实现用于对受保护的签名操 作和密钥交换操作的侧信道攻击的对策的示例性计算架构的实施例。
具体实施方式
本文所述的实施例是涉及对受保护的签名操作和密钥交换操作的 侧信道攻击的对策,并且特别地涉及对时序、功率和EM侧信道攻击 的保护密码操作(签名和密钥交换)。
ECDSA(椭圆曲线数字签名算法)签名和ECDH(椭圆曲线 Diffie-Hellman)技术应用椭圆曲线标量乘法(ESM)来执行平台认证 和密钥交换,利用椭圆曲线在有限域上的代数结构来提供高安全的操 作。在ESM处理中,秘密标量值被应用于输出值的生成。
然而,由于三个根本原因,执行椭圆曲线标量乘法能够泄漏关于 秘密标量值的信息:
(a)算法弱点——由于用于处理秘密位1和0的不平衡操作而导 致的泄漏,其能够在侧信道攻击中被利用);
(b)数据依赖漏洞——输入数据与功率和EM侧信道相关,从而 允许在多次扫描中检测标量值;以及
(c)实现方式特定泄漏——在具体的硬件装置中,硅内部的布置 和路由可以区分与用于处理秘密位1和0的访问变量相关联的功率和 EM签名。
在一些实施例中,装置、系统或处理包括减轻标量值泄漏的各个 原因的一种或多种技术,这些技术包括:
(a)平衡执行——实施Montgomery(蒙哥马利)阶梯操作以解 决ESM操作中的算法弱点;
(b)点随机化——一种新的蒙哥马利阶梯技术,用于解决数据依 赖漏洞;以及
(c)标量分离——使用随机值o对标量值进行分离以解决实现方 式特定泄漏。
在一些实施例中,此类技术的集成使得装置、系统或处理支持更 健壮的ESM技术,该ESM技术能够利用基于ECDSA的平台认证和 基于ECDH的对称密钥生成来保护高价值资产,以防高级物理(时序、 功率和电磁)侧信道攻击。
后量子密码学(也称为“量子验证”、“量子安全”、“抗量子” 或简称为“PQC”)采用了一种未来和现实的密码学方法。它使负责 密码的人以及最终用户知道密码已经过时;准确地说,它需要演进以 能够成功地解决计算设备向量子计算和后量子计算的演进。
众所周知,密码学允许保护个人与实体之间在线通信的和使用各 种网络存储的数据。数据的这种通信可以是发送和接收电子邮件,在 线购买商品或服务,使用网站访问银行或其他个人信息,等。
当处理量子计算时,传统的密码学及其典型的复杂数学场景的因 式分解和计算可能并不重要。这些数学问题,例如离散对数、整数因 式分解和椭圆曲线离散对数等,无法承受强大的量子计算机的攻击。 Shor,P.W."Algorithms for quantum computation:discrete logarithms and factoring".Proceedings 35th Annual Symposium onFoundations of Computer Science.IEEE Comput.Soc.Press.doi:10.1109/sfcs.1994.365700. ISBN 0818665807。尽管可以在当前的密码学上构建任何后量子密码学, 但是这种新颖的方法将需要足够智能、快速和精确,以抵抗和击败量 子计算机的任何攻击。
当今的PQC主要聚焦在以下方法上:1)基于1979年Merkle的 散列树公钥签名系统的基于散列的密码,该系统建立在Lamport和 Diffie的一个消息签名思想上;2)基于代码的密码,例如McEliece 的隐式Goppa代码公钥加密系统;3)基于1998年的 Hoffstein-Pipher-Silverman公钥加密系统的基于格的密码;4)基于1996 年Patarin的隐式场方程(HFE)公钥签名系统的多元二次方程密码, 该系统进一步基于Matumoto-Imai的建议;5)依赖于超奇异椭圆曲线 和超奇异同构图的超奇异椭圆曲线等值密码;6)对称密钥量子电阻,例如HBS。
图1A和图1B分别示出了一次性基于散列的签名方案和多次基于 散列的签名方案。如前所述,基于散列的密码是基于像Lamport签名、 Merkle签名、扩展Merkle签名方案(XMSS)、SPHINCS方案、 SPHINCS+方案等密码体系。随着量子计算的出现以及对其发展的预期,人们关心量子计算可能带来的各种挑战,以及如何使用密码领域 来应对这些挑战。
一个正在探索以应对量子计算挑战的领域是基于散列的签名 (HBS),因为这些方案已经存在了很长一段时间,并且拥有应对量 子计数和后量子计算挑战的必要基本成分,例如依赖于对称密码构建 块(例如,散列函数)。HBS方案被认为是与快速平台安全启动一起 使用的快速签名算法,快速平台安全启动被认为最有效抵抗量子攻击。
例如,如关于图1A所示的,示出了HBS的方案,该方案使用 Merkle树以及一次性签名(OTS)方案100,例如使用私钥对消息进 行签名,并且使用对应的公钥验证OTS消息,其中,私钥仅对单个消 息进行签名。
类似地,如关于图1B所示的,示出了另一HBS方案,其中,该 方案涉及多次签名(MTS)方案150,其中,私钥可以对多个消息进 行签名。
图2A和图2B分别示出了一次性签名方案和多次签名方案。继续 于图1A的基于HBS的OTS方案100和图1B的MTS方案150,图 2A示出了Winternitz OTS(WOTS)方案200,该方案由斯坦福大学 数学系的Robert Winternitz提供,而图2B示出了XMSS MTS方案250。
例如,图2A的WOTS方案200提供了将消息散列化并解析为带 有[0,1,2,...,15]之间的67个整数的M,例如私钥sk 205、签名s 210和 公钥pk 215,每个具有67个分量,每个分量32个字节。
现在,例如,图2B示出了XMSS MTS方案250,该方案允许图2A 的WOTS方案200和具有XMSS Merkle树270的XMSS方案255组合。 如先前关于图2A所讨论的,WOTS方案200基于一次性公钥pk 215(其 具有67个分量,每个分量32个字节),然后使一次性公钥经受L-Tree压缩算法260,以提供WOTS压缩的pk 267,以放入XMSS方案255的 XMSS Merkle树270中。可以预见,XMSS签名验证可以包括:计算 WOTS验证,并检查以确定重构的根节点是否与XMSS公钥匹配,例如 根节点=XMSS公钥。
图3是根据一些实施例的包括用于执行椭圆曲线标量乘法的处理 元件的装置的图示。如所图示的,处理元件300(诸如图11中所示的 一个或多个处理器1102中的处理器)包括一个或多个处理核305。处 理核可以包括用于平台认证和密钥交换的ECDSA(椭圆曲线Diffie-Hellman)签名和ECDH(椭圆曲线Diffie-Hellman)操作中的一 个或多个的处理,包括ECS(椭圆曲线标量乘法)算法310的处理。 ESM乘法是ECDSA操作和ECDH操作二者的主要操作,并且ESM 算法的处理包括使用秘密整数标量315,如图4中进一步所示的。
然而,处理元件300的操作可以允许访问一个或多个侧信道320, 其中侧信道可以包括访问时序、功率或电磁信号中的一个或多个。在 利用某些形式的侧信道检测325的侧信道攻击330中可以利用这一点。 例如,处理元件300可以包括多个拼贴元件,其可以允许攻击者访问 信号或电力链路,包括可能的电磁信号。敌对者能够通过侧信道330 利用ESM操作来提取秘密整数标量315,从而使得能够攻击ECDSA 签名操作和ECDH操作。
在一些实施例中,装置、系统或处理包括一种或多种侧信道攻击 对策技术350,以消除对处理元件的操作的时序、功率和EM侧信道 攻击,其中这些技术包括平衡执行352、点随机化354和标量分离356 中的一个或多个,如下文进一步描述。
图4是可以在ECDSA签名操作和ECDH操作中使用的常规椭圆 曲线乘法算法的各方面的图示。下面是执行椭圆曲线标量乘法的常规 算法,其通常用符号[k]G表示,其中k(e,p)表示秘密标量值,G 和R表示椭圆曲线上的点:
如图4所示,算法400从k的最左位(最高有效位(MSB))到 最右位迭代地执行[k]G。计算的每个迭代均由点倍(point double)操 作和有条件的点加(point add)操作组成,其中仅当秘密标量值k的 相关位等于1时才进行加法操作。
通常,实际上不能基于输出值来确定R的计算。然而,如果攻击 者能够利用侧信道泄漏,则攻击者能够确定秘密整数标量k的值,并 且因此可能复制椭圆曲线标量乘法,以破解系统中的平台认证和密钥 交换。
在一些实施例中,如下面进一步描述的,装置、系统或处理用于 提供一个或多个新颖的对策350,如图3所示的,其涉及ESM计算以 显著降低成功的侧信道攻击的可能性。
图5是根据一些实施例的ESM计算的侧信道泄漏和对策的图示。 如图5所示,在ESM计算的操作中的侧信道泄漏500是源自多个源, 其中这些源可以包括算法弱点510(在图6A中进一步示出)、数据依 赖漏洞520(在图6B中进一步示出)以及实现方式特定泄漏530(在图6C中进一步示出)。
在一些实施例中,装置、系统或处理用于提供解决侧信道泄漏的 源的对策。该对策可以包括如下中的一个或多个:ESM计算的平衡执 行515(如图8A和8B所示)来解决算法弱点510;在ESM计算中输 入随机性525(如图9A和9B所示)来解决数据依赖漏洞520;以及ESM计算的标量分离535(如图10A和10B所示)来以解决实现方式 特定弱点530。
图6A-6D示出了时序、功率和EM侧信道泄漏,其可以通过新颖 的对策技术的实施例来解决,以消除侧信道攻击。图6A示出了图4 所示的ESM算法400中的算法弱点。算法400从k的最左位到最右位 迭代地执行[k]G。每个迭代均由点倍操作和有条件的点加操作组成, 其中加法操作将在k值等于1时进行。
如图6A所示,ESM算法操作的性质在于为k位值是0的操作(点 倍(DBL)操作)和k位值是1的操作(点倍操作和点加(ADD)操 作)提供不同的计算,攻击者可以通过检测k=1值的计算操作生成的 信号与k=0值的计算操作生成的信号之间的差异,利用单个功率或EM测量来确定整个k值。以该方式,攻击者能够潜在地确定完整的秘密 标量值,并利用其来击败系统的安全性。
例如,图6A示出了其中k标量的某些位是1、1、0、1的操作。 如所示的,DBL操作和ADD操作的随时间变化的不同功率签名可以 被应用于确定DBL、ADD、DBL、ADD、DBL、DBL、ADD的模式, 因此其可以在一个检测操作中显示1、1、0、1位值。
图6B示出了ESM操作的数据依赖漏洞。处理单元的基础硬件的 功耗和EM辐射与输入数据G相关。然而,与图6A所示的算法弱点 相比,这些侧信道变化和产生的泄漏幅度较小,因此无法通过单个测 量加以利用。然而,多次测量能够通过差分功率/EM分析(DPA/DEMA) 和相关功率/EM分析(CPA/CEMA)潜在地提取整个k值,因此能够 被利用来建立用于对称密钥生成的静态密钥ECDH。
例如,图6B示出了用于检测数据依赖泄漏的统计测试的结果, 在具体示例中,示出的图提供了相关t统计与跟踪数量的关系。t统计 值的增加表明可以使用附加跟踪来提取增加量的信息,如果攻击者能 够执行此类跟踪,则最终可以将其用于恢复秘密标量值。
图6C示出了ESM操作中实现方式特定泄漏,其示出了功率值跨 多个标量的分布。硬件中可能存在某些实现差异,这些差异会导致用 于处理秘密标量位1与(versus)标量位0的侧信道变化。例如,根据 特定的标量值,处理器硬件内的寄存器放置、相关路由和扇出可以导 致不同的功耗和EM签名。
在图6C所示的具体实施方式中,与生成值为1的位相关联的功 率大小和与生成值为0的位相关联的功率大小不同。如图6C所示, 对于具体实例,功率大小的精确值将在1和0值的位值的特定范围内 变化,并且对于某些测量可以重叠。与图6A所示的算法弱点相比,此种实现方式特定泄漏将具有较小的幅度,但是这些泄漏可以通过多 次测量来利用。图6C中的曲线图示出了示例性的实验结果,在该结 果中,处理标量位1与0的特定时刻的功耗形成了具有重叠的两个集 合。然而,通过大量跟踪,1和0值的泄漏提供了可以被攻击者利用来成功确定秘密标量值的模式。
在诸如ECDSA签名的ESM计算的应用中,如果攻击者能够识别 秘密标量的几位,则攻击者可以收集多个标量中的每个标量的几位来 发起点阵攻击以发现签名密钥。此外,如果攻击者能够多次测量同一 标量乘法的功率/EM侧信道,则通过对这些测量取平均,攻击者可以 能够降低噪声水平,来提取少量实现方式特定信息泄漏。图6D示出 了用于通过收集10次测量来找到一个秘密位的实验数据。在该示例中, 攻击者能够使用相同的测量重复进行相同的分析,以找到整个秘密标 量的其他位。
图7是根据一些实施例的可以在ECDSA签名操作和ECDH操作 中使用的改进的椭圆曲线标量乘法算法的图示。在一些实施例中,该 算法包括Montgomery阶梯法,以改进针对物理侧信道攻击的保护。 在传统的Montgomery阶梯法中,将分别计算点乘法操作固定时间量。 当时序或功耗测量被暴露给执行侧信道攻击的攻击者时,这可能是有 益的。
在一些实施例中,提供了一种用于执行椭圆曲线标量乘法的改进 算法,该改进算法包括修正的Montgomery阶梯操作。该改进算法可 以包括如下:
诸如图4所示,如果标量的最高有效位为1,则包括传统 Montgomery阶梯的传统算法保护标量的中间位。然而,大多数应用中 的秘密标量是随机生成的,并且可以在前置最高有效位中包括一些零。 对于此标量值,传统的Montgomery阶梯使用称为无限远的点(O)的 特殊操作数,执行“点倍”和“点加”,它具有特定的侧信道签名。 因此,攻击者可以应用单个测量来识别此签名,然后发现前置零位。
在一些实施例中,为了防御该漏洞,改进的算法700提供了在算 法的初始阶段跳过并计数前置零(如果有的话)。然后,该算法在该 处理结束时继续执行相同数量的额外(虚设)迭代(如图7所示)。 这为整个标量提供了针对基于单个测量的攻击的保护,如图8A和图 8B进一步所示。
算法700进一步包括点随机化,其中G值包括p的附加随机值。 值随机化的引入可以被用来防止通过多个跟踪检测到泄漏的位值,如 图9A和图9B中进一步所示。
另外,算法700可以被实现为包括标量分离,该标量引入新的随 机输入(k1)来提供针对实现方式特定泄漏的安全性,如10A和图10B 进一步所示。
图8A是根据一些实施例的用于椭圆曲线标量乘法的平衡执行的 图示。如图8A所示,在实现如图7中所提供的改进的ESM算法700 时,由于对于每个位值1或0,每个点加操作之后是相应的点倍操作, 因此大大减少了由不同的位值提供的标量泄漏。以此方式,装置、系 统或处理的实施例操作以通过观察单个侧信道测量来防止秘密标量位 的识别,如图6A所示。
在图8A所示的具体示例中,k中的某些中间标量值可以是1、0、 1。然而,如果确定了DBL操作和ADD操作的功率签名,则这些操 作将是ADD、DBL、ADD、DBL、ADD、DBL,因此防止攻击者区 分k中的1位值和0位值。
图8B是示出根据一些实施例的用于在椭圆曲线标量乘法操作中 平衡执行的处理的流程图。处理800包括ECDSA签名或ECDH操作 (805),该ECDSA签名或ECDH操作包括ESM操作。该操作可以 提供利用图7所示的改进的ESM算法700的处理。在一些实施例中, 该处理包括从最高有效位(MSB)跳过并计数初始零位(810)。(在 该示例中,位的数目是384,P-384是美国国家安全局B套(NSA Suite B)密码中当前指定的用于ECDSA算法和ECDH算法的椭圆曲线。 然而,实施例不限于任何具体的位数)。在该示例操作中,第m位是 最高有效非零位,并且j被初始设置为m-1(815)。然后,该处理进 行针对该位的点加操作和点倍操作的计算(820),其中该操作可以是 如图7的算法700所提供。
然后,该处理进行确定是否j=0(825)。如果否,则存在一个或 多个附加位用于计算,然后j递减(j=j-1)(830),并且该处理进行 针对k的下一位的点加操作和点倍操作(820)的附加迭代。因此,不 管值是多少,针对每个位执行点加操作和点倍操作(820)。当该确定 指示j=0(825)时,则最高有效非零位和最后一位之间的位已经被计 算。
在一些实施例中,该处理然后进行一组零次或更多次虚设操作迭 代,以表示在迭代计算开始时被跳过的零位的时序。在该处理中,然 后将j设置为383-m-1的值(835),并对该位执行点加操作和点倍操 作(840),其中操作可以是如图7的算法700所提供。
然后,处理进行确定是否j=0(845)。如果否,则存在一个或多 个附加初始零位用于计算,然后j递减(j=j-1)(850),并且进行 点加操作和点倍操作840的附加迭代。当该确定指示j=0时(845), 则对初始零位的虚设操作被完成,然后处理进行返回R
图9A是根据一些实施例的数据随机化以抵抗椭圆曲线标量乘法 中的数据依赖漏洞的图示。如图9A所示,在实现如图7中提供的改 进的ESM算法700时,引入了数据随机化。在一些实施例中,装置、 系统或处理用于将输入点G转换为随机投影坐标,并在如图7中所示 的新的阶梯算法700中对不同的随机化点均计算点加操作和点倍操作。
引入的数据随机化操作以减小或去除时序、功率和EM信号与输 入数据之间的相关性。另外,每个基础操作都以恒定时间被计算,以 确保随机化技术不仅可以防止数据依赖漏洞,而且不会创建任何附加 时序侧信道。
图9A描绘了实施例的实验结果,其中p是在图7的算法700中 使用的参数来随机化输入点。与没有随机化的曲线相比,具有输入随 机化的t值曲线的减小表明,随着攻击者可用的跟踪数量增加,该实 施例进行操作以维持数据保护。
图9B是示出根据一些实施例的包括数据随机化以抵抗椭圆曲线 标量乘法中的数据依赖漏洞的处理的流程图。在一些实施例中,处理 900包括ECDSA签名或ECDH操作(905),该ECDSA签名或ECDH 操作包括ESM计算。该操作可以提供利用图7所示的改进的ESM算 法700的处理,该改进的ESM算法700包括新的Montgomery阶梯操 作,该新的Montgomery阶梯操作提供使用输入随机化执行ESM计算 (910)。
在一些实施例中,该处理包括确定或获得随机值p(915),并利 用p值将G转换为随机投影坐标(920)。然后,该处理进行利用改 进的ESM算法执行ESM计算(925),其中计算包括在新的Montgomery 阶梯中对不同随机化点均计算点加和点倍(930)。在一些实施例中,该处理还包括以恒定时间执行每个基础操作(935),以恒定时间执行 确保随机化技术不仅可以防止数据依赖漏洞,而且还可以防止创建可 能被攻击者利用的任何附加时序侧信道。然后,该操作继续并返回计 算结果R
图10A是根据一些实施例的标量分离以抵抗椭圆曲线标量乘法中 的实现方式特定泄漏的图示。在处理元件的具体实现中,硬件中可能 存在某些实现差异,这些差异会导致用于处理秘密标量位1与标量位 0的侧信道变化,诸如处理器内的寄存器放置、相关路由以及扇出, 并且根据特定标量值,这些实现细节可以产生不同的功耗和EM签名。 在一些实施例中,为了防止利用实现方式特定泄漏,装置、系统或处 理用于在ESM计算中提供标量分离。
如图10A中所示,在实现如图7中所提供的改进的ESM算法700 中,标量分离是基于随机值k
在一些实施例中,然后利用随机值来生成用于[k
在一些实施例中,通过应用图10A中所示的标量分离技术,由于 在分离操作中引入了随机元素,所以攻击者无法获得具有相同标量的 椭圆曲线标量乘法的多个跟踪。因此,这为ECDSA签名(在平台认 证中)和ECDH(在密钥生成中)二者提供了针对基于功率和EM的 侧信道攻击的强力保护。对于ECDSA签名,标量分离操作使攻击者 无法使用少数已知位来收集足够的临时密钥,并进一步防止攻击者发 起基于点阵的攻击来恢复签名密钥。对于ECDH,标量分离操作防止 攻击者收集多个测量值,以通过对测量值取平均来减少噪声来尝试通 过相关分析来识别秘密位。
图10B是示出根据一些实施例的包括标量分离以抵抗椭圆曲线标 量乘法中的实现方式特定泄漏的处理的流程图。在一些实施例中,处 理1020提供包括ESM计算的ECDSA签名或ECDH操作(1025), 该处理包括使用标量分离的ESM操作(1030)。
在一些实施例中,标量分离操作包括输入k和k
Q
Q
然后将所得的Q
图11示出了根据一些实施例的用于实现用于对受保护的签名操 作和密钥交换操作的侧信道攻击的对策的示例性计算架构的实施例。 在如上所述的各种实施例中,计算架构1100可以包括或被实现为电子 设备的一部分。在一些实施例中,计算架构1100可以表示例如实现上 述操作环境的一个或多个组件的计算机系统。在一些实施例中,计算 架构1100可以表示实现本文描述的一种或多种技术的深度神经网络 (DNN)训练系统的一个或多个部分或组件。实施例不限于该上下文。
如本申请中所使用的,术语“系统”和“组件”以及“模块”旨 在指代计算机相关实体,硬件、硬件和软件的组合、软件或执行中的 软件,它们的示例可以由示例性计算架构1100提供。例如,组件可以 是但不限于在处理器上运行的进程、处理器、硬盘驱动器或固态驱动 器(SSD)、多个(光和/或磁存储介质的)存储驱动器、对象、可执 行文件、执行线程、程序和/或计算机。作为说明,在服务器上运行的 应用和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执 行线程内,并且组件可以位于一台计算机上和/或分布在两台或更多台 计算机之间。此外,组件可以通过各种类型的通信介质彼此通信地耦 合以协同操作。协同可以涉及信息的单向或双向交换。例如,组件可 以以在通信介质上传递的信号的形式传递信息。该信息可以被实现为 分配给各种信号线的信号。在这些分配中,每个消息都是信号。然而, 其他实施例可以替代地采用数据消息。这些数据消息可以通过各种连接发送。示例性连接包括并行接口、串行接口和总线接口。
计算架构1100包括各种常见的计算元件,例如一个或多个处理器、 多核处理器、协处理器、存储器单元、芯片组、控制器、外设、接口、 振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、 电源等。然而,实施例不限于由计算架构1100实现。在一些实施例中, 计算元件提供用于对受保护的签名操作和密钥交换操作的侧信道攻击 的对策,尤其保护密码操作(签名和密钥交换)免于时序、功率和EM 侧信道攻击。
如图11所示,计算架构1100包括一个或多个处理器1102和一个 或多个图形处理器1108,并且可以是单处理器台式机系统、多处理器 工作站系统或具有大量处理器1102或处理器核1107的服务器系统。 在一个实施例中,系统1100是并入片上系统(SoC或SOC)集成电 路内的处理平台,以用于移动设备、手持设备或嵌入式设备。
系统1100的实施例可以包括基于服务器的游戏平台、游戏控制台 (包括游戏和媒体控制台、移动游戏控制台、手持游戏控制台或在线 游戏控制台),或者并入它们内。在一些实施例中,系统1100是移动 电话、智能电话、平板计算设备或移动互联网设备。数据处理系统1100 还可以包括、耦合于或集成在可穿戴设备内,例如智能手表可穿戴设 备、智能眼镜设备、增强现实设备或虚拟现实设备。在一些实施例中, 数据处理系统1100是电视或机顶盒设备,其具有一个或多个处理器 1102以及由一个或多个图形处理器1108生成的图形界面。
在一些实施例中,一个或多个处理器1102各自包括一个或多个处 理器核1107,以处理指令,该指令在被执行时执行用于系统和用户软 件的操作。在一些实施例中,一个或多个处理器核1107中的每一个被 配置为处理特定指令集1109。在一些实施例中,指令集1109可以促 进复杂指令集计算(CISC)、精简指令集计算(RISC)或经由超长指 令字(VLIW)的计算。多个处理器核1107可以各自处理不同的指令 集1109,该指令集1109可以包括促进对其他指令集的仿真的指令。 处理器核1107还可以包括其他处理设备,例如数字信号处理器(DSP)。
在一些实施例中,处理器1102包括缓存存储器1104。取决于架 构,处理器1102可以具有单个内部缓存或多级内部缓存。在一些实施 例中,缓存存储器1104在处理器1102的各个组件之间共享。在一些 实施例中,处理器1102还使用外部缓存(例如,三级(L3)缓存或最后一级缓存(LLC))(未示出),它可以使用已知的缓存一致性 技术在处理器核1107之间共享。在处理器1102中附加地包括寄存器 堆1106,其可以包括用于存储不同类型的数据的不同类型的寄存器 (例如,整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器)。 一些寄存器可以是通用寄存器,而其他寄存器可以特定于处理器1102 的设计。
在一些实施例中,一个或多个处理器1102与一个或多个接口总线 1110耦合,以在处理器1102与系统中的其他组件之间传输通信信号, 例如地址信号、数据信号或控制信号。在一个实施例中,接口总线1110 可以是处理器总线,例如一版本的直接媒体接口(DMI)总线。然而, 处理器总线不限于DMI总线,并且可以包括一个或多个外围组件互连 总线(例如,PCI、PCI Express)、存储器总线或其他类型的接口总线。 在一个实施例中,处理器1102包括集成存储器控制器1116和平台控 制器中枢1130。存储器控制器1116促进存储器设备与系统1100的其 他组件之间的通信,而平台控制器中枢(PCH)1130经由本地I/O总 线提供至I/O设备的连接。
存储器设备1120可以是动态随机存取存储器(DRAM)设备、静 态随机存取存储器(SRAM)设备、Flash存储器设备、相变存储器设 备,或者具有适合于用作进程存储器的性能的一些其他存储器设备。 在一个实施例中,存储器设备1120可以操作为用于系统1100的系统 存储器,以存储数据1122和指令1121,以便在一个或多个处理器1102 执行应用或进程时使用。存储器控制器中枢1116还与可选的外部图形 处理器1112耦合,外部图形处理器1112可以与处理器1102中的一个 或多个图形处理器1108通信,以执行图形和媒体操作。在一些实施例 中,显示设备1111可以连接到处理器1102。显示设备1111可以是如 在移动电子设备或膝上型设备中的内部显示设备,或者经由显示接口(例如,DisplayPort等)附连的外部显示设备中的一个或多个。在一 个实施例中,显示设备1111可以是头戴式显示器(HMD),例如用 于虚拟现实(VR)应用或增强现实(AR)应用的立体显示设备。
在一些实施例中,平台控制器中枢1130使得外设能够经由高速I/O 总线连接到存储器设备1120和处理器1102。I/O外设包括但不限于音频 控制器1146、网络控制器1134、固件接口1128、无线收发机1126、触 摸传感器1125、数据存储设备1124(例如,硬盘驱动器、Flash存储器 等)。数据存储设备1124可以经由存储接口(例如,SATA)或经由外 设总线(例如,外围组件互连总线(例如,PCI、PCI Express))连接。 触摸传感器1125可以包括触摸屏传感器、压力传感器或指纹传感器。 无线收发机1126可以是Wi-Fi收发机、蓝牙收发机或移动网络收发机(例 如,3G、4G、长期演进(LTE)或5G收发机)。固件接口1128使得 能够与系统固件进行通信,并且可以是例如统一可扩展固件接口(UEFI)。 网络控制器1134可以实现至有线网络的网络连接。在一些实施例中, 高性能网络控制器(未示出)与接口总线1110耦合。在一个实施例中, 音频控制器1146是多信道高清晰度音频控制器。在一个实施例中,系统1100包括可选的传统I/O控制器1140,用于将传统(例如,个人系 统2(PS/2))设备耦合到系统。平台控制器中枢1130还可以连接到一 个或多个通用串行总线(USB)控制器1142,以连接输入设备,例如键 盘和鼠标1143组合、相机1144或其他USB输入设备。
在一些实施例中,一种或多种非暂时性计算机可读存储介质,其上 存储有可执行计算机程序指令,该可执行计算机程序指令在由一个或多 个处理器执行时使一个或多个处理器执行操作,包括:开始包括椭圆曲 线标量乘法(ESM)操作的处理,该操作包括应用秘密标量值;对秘密 标量值中的前置“0”位的数目进行计数;针对处理跳过秘密标量值中的所述数目的前置“0”位;从秘密标量值的最高有效“1”位开始,对秘 密标量值的每个位执行ESM迭代,其中执行ESM迭代包括针对秘密标 量值的每个位的点加操作和点倍操作;对多个虚设操作的每个执行ESM 操作,虚设操作的数目等于秘密标量值中的前置“0”位的数目;以及返 回ESM操作的输出结果。
在一些实施例中,一种或多种存储介质还包括如下指令:该指令用 于使用随机值将ESM操作的输入值转换为随机投影坐标;以及基于随机 投影坐标生成随机化点。
在一些实施例中,一种或多种存储介质还包括如下指令:该指令用 于对随机化点执行点加操作和点倍操作。
在一些实施例中,一种或多种存储介质还包括如下指令:该指令用 于以恒定时间执行ESM操作中的每个操作。
在一些实施例中,一种或多种存储介质还包括如下指令:该指令用 于基于随机值将秘密标量值分成第一标量值和第二标量值。
在一些实施例中,一种或多种存储介质还包括如下指令:该指令用 于基于随机值将输入值投影到多个点;基于多个点中的每个点生成中间 值;以及将中间值相加以生成输出结果。
在一些实施例中,该处理包括平台认证或密钥交换中的一个或多个。
在一些实施例中,该处理包括ECDSA(椭圆曲线数字签名算法)签 名操作;或ECDH(椭圆曲线Diffie-Hellman)操作中的一个或多个。
在一些实施例中,一种系统,包括:一个或多个处理器,该一个或 多个处理器包括一个或多个处理核,该个或多个处理器利用椭圆曲线标 量乘法(ESM)执行一个或多个安全操作;以及存储器,该存储器用于 存储数据并且包括用于一个或多个安全操作的数据;其中,该一个或多 个处理器包括提供对ESM处理上的硬件侧信道攻击的一个或多个对策 的能力,该一个或多个处理器用于:执行椭圆曲线标量乘法(ESM)操 作,该操作包括应用秘密标量值;对秘密标量值中的前置“0”位的数目 进行计数;针对处理跳过秘密标量值中的所述数目的前置“0”位;从秘 密标量值的最高有效“1”位开始,对秘密标量值的每个位执行ESM迭 代,其中执行ESM操作包括针对秘密标量值的每个位的点加操作和点倍 操作;对多个虚设操作执行ESM迭代,虚设迭代的数目等于秘密标量值 中的前置“0”位的数目;以及返回ESM操作的输出结果。
在一些实施例中,一个或多个处理器还用于:使用随机值将ESM操 作的输入值转换为随机投影坐标;以及基于随机投影坐标生成随机化点。
在一些实施例中,一个或多个处理器还用于:对随机化点执行点加 操作和点倍操作。
在一些实施例中,一个或多个处理器还用于:以恒定时间执行ESM 操作中的每个操作。
在一些实施例中,一个或多个处理器还用于:基于随机值将秘密标 量值分成第一标量值和第二标量值。
在一些实施例中,一个或多个处理器还用于:基于随机值将输入值 投影到多个点;基于多个点中的每个点生成中间值;以及将中间值相加 以生成输出结果。
在一些实施例中,一个或多个安全操作包括:平台认证,该平台认 证包括ECDSA(椭圆曲线数字签名算法)签名操作;或利用ECDH(椭 圆曲线Diffie-Hellman)操作的密钥交换。
在一些实施例中,一种方法,包括:接收在计算系统中执行安全操 作的请求;以及根据算法对安全操作执行椭圆曲线标量乘法(ESM)操 作,该ESM操作包括应用秘密标量值;其中该算法提供对ESM处理上 的物理侧信道攻击的一个或多个对策,该算法包括:对秘密标量值中的 前置“0”位的数目进行计数;针对处理跳过秘密标量值中的所述数目的 前置“0”位;从秘密标量值的最高有效“1”位开始,对秘密标量值的 每个位执行ESM操作,其中执行ESM操作包括针对秘密标量值的每个 位的点加操作和点倍操作;对多个虚设操作执行ESM操作,虚设操作的 数目等于秘密标量值中的前置“0”位的数目;以及返回ESM操作的输出结果。
在一些实施例中,该算法还包括:使用随机值将ESM操作的输入值 转换为随机投影坐标;基于随机投影坐标生成随机化点;以及对随机化 点执行点加操作和点倍操作。
在一些实施例中,该方法还包括以恒定时间执行ESM操作中的每 个操作。
在一些实施例中,该算法还包括:基于随机值将秘密标量值分成第 一标量值和第二标量值;基于随机值将输入值投影到多个点;基于多个 点中的每个点生成中间值;以及将中间值相加以生成输出结果。
在一些实施例中,对物理侧信道攻击的一个或多个对策包括对时序、 功率和电磁(EM)侧信道攻击中的一个或多个的对策。
在一些实施例中,一种装置,包括:用于开始包括椭圆曲线标量乘 法(ESM)操作的处理的装置,该操作包括应用秘密标量值;用于对秘 密标量值中的前置“0”位的数目进行计数的装置;用于针对处理跳过 秘密标量值中的所述数目的前置“0”位的装置;用于从秘密标量值的 最高有效“1”位开始,对秘密标量值的每个位执行ESM迭代的装置, 其中执行ESM迭代包括针对秘密标量值的每个位的点加操作和点倍操 作;用于对多个虚设操作的每个执行ESM操作的装置,虚设操作的数 目等于秘密标量值中的前置“0”位的数目;用于返回ESM操作的输出 结果的装置。
在一些实施例中,该装置还包括用于使用随机值将ESM操作的输入 值转换为随机投影坐标;以及基于随机投影坐标生成随机化点的装置。
在一些实施例中,该装置还包括用于对随机化点执行点加操作和所 述点倍操作的装置。
在一些实施例中,该装置还包括用于以恒定时间执行ESM操作中 的每个操作的装置。
在一些实施例中,该装置还包括用于基于随机值将秘密标量值分成 第一标量值和第二标量值的装置。
在一些实施例中,该装置还包括用于基于随机值将输入值投影到多 个点;基于多个点中的每个点生成中间值;以及将中间值相加以生成输 出结果的装置。
在一些实施例中,该处理包括平台认证或密钥交换中的一个或多个。
在一些实施例中,该处理包括ECDSA(椭圆曲线数字签名算法)签 名操作;或ECDH(椭圆曲线Diffie-Hellman)操作中的一个。
在上面的描述中,出于解释的目的,阐述了许多具体细节以便提供 对所描述的实施例的透彻理解。然而,对于本领域技术人员将显而易见 的是,可以在没有这些具体细节中的一些的情况下实践实施例。在其他 情况下,以框图形式示出了公知的结构和设备。所示的组件之间可以存 在中间结构。本文描述或示出的组件可以具有未示出或描述的附加输入 或输出。
各种实施例可以包括各种处理。这些处理可以由硬件组件执行,或 者可以体现在计算机程序或机器可执行指令中,这些计算机程序或机器 可执行指令可以用于使通用或专用处理器或者用指令编程的逻辑电路 执行该处理。替换地,可以通过硬件和软件的组合来执行处理。
各种实施例的部分可以被提供为计算机程序产品,计算机程序产品 可以包括计算机可读介质,其上存储有计算机程序指令,计算机程序指 令可以用于对计算机(或其他电子设备)编程,以便由一个或多个处理 器执行,以根据某些实施例执行处理。计算机可读介质可以包括但不限 于磁盘、光盘、只读存储器(ROM)、随机存取存储器(RAM)、可 擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器 (EEPROM)、磁卡或光卡、Flash存储器,或者其他类型的适合存储 电子指令的计算机可读介质。此外,实施例也可以作为计算机程序产品 下载,其中,程序可以从远端计算机传送到请求计算机。
许多方法以其最基本的形式进行描述,但是在不脱离本实施例的基 本范围的情况下,可以向任何方法添加处理或从其删除处理,并且可以 向任何描述的消息添加信息或从其删除信息。对于本领域技术人员显而 易见的是,可以进行许多进一步的修改和改编。提供特定实施例不是为 了限制概念而是为了说明它。实施例的范围不由上面提供的具体示例来 确定,而仅由下面的权利要求来确定。
如果说要素“A”耦合到要素“B”或与要素“B”耦合,则要素A 可以直接耦合到要素B,或者通过例如要素C间接耦合。当说明书或权 利要求叙述组件、特征、结构、处理或特性A“引起”组件、特征、结 构、处理或特性B时,这意味着“A”至少是“B”的部分原因,但也 可能存在帮助引起“B”的至少一个其他组件、特征、结构、处理或特 性。如果说明书指出,组件、特征、结构、处理或特性“可以”、“可 能”或“能够”被包括,则不必须包括该特定组件、特征、结构、处理 或特性。如果说明书或权利要求提及“一”或“一个”要素,则这并不 意味着仅存在一个所描述的要素。
实施例是实现方式或示例。说明书中对“实施例”、“一个实施例”、 “一些实施例”或“其他实施例”的引用是指,结合这些实施例描述的 特定特征、结构或特性被包括在至少一些实施例中,但是不一定是所有 实施例。“实施例”、“一个实施例”或“一些实施例”的各种出现不 一定都指同一实施例。应当理解,在前述示例性实施例的描述中,有时 将各种特征组合在单个实施例、附图或其描述中,目的是简化本公开并 帮助理解各种新颖方面中的一个或多个。然而,这种公开方法不应被解 释为反映了以下意图,即所要求保护的实施例需要比每个权利要求中明 确叙述的特征更多的特征。相反,如所附权利要求所反映的,新颖方面 在于少于单个前述公开实施例的所有特征。因此,权利要求特此明确地 并入本说明书中,每个权利要求自身代表单独的实施例。