针对资源受限设备定制的高效后量子安全软件更新的制作方法

文档序号:30514249发布日期:2022-06-25 02:48阅读:118来源:国知局
针对资源受限设备定制的高效后量子安全软件更新的制作方法

1.本文描述的主题整体涉及计算机安全领域,并且更具体地讲,涉及用于后量子密码学安全的基于散列的签名的代码签名设施,包括但不限于扩展merkle签名方案(xmss)和leighton/micali签名(lms)基于散列的签名和验证算法。


背景技术:

2.预期现有的公钥数字签名算法诸如rivest-shamir-adleman(rsa)和椭圆曲线数字签名算法(ecdsa)都不能抵抗基于使用量子计算机的算法(诸如shor算法)的暴力攻击。因此,在密码学研究社区和各种标准机构中,正在努力为抵抗量子计算机的算法定义新标准。
3.因此,用于管理后量子签名方案的适当应用的技术可例如在基于计算机的通信系统和方法中找到效用。
附图说明
4.参照附图描述具体实施方式。
5.图1a和图1b分别是一次基于散列的签名方案和多次基于散列的签名方案的示意图。
6.图2a-2b分别是一次签名方案和多次签名方案的示意图。
7.图3是根据一些示例的签名设备和验证设备的示意图。
8.图4a是根据一些示例的merkle树结构的示意图。
9.图4b是根据一些示例的merkle树结构的示意图。
10.图5是根据一些示例的用于实现签名算法的架构中的计算块的示意图。
11.图6a是根据一些示例的用于在签名算法中实现签名生成的架构中的计算块的示意图。
12.图6b是根据一些示例的用于在验证算法中实现签名验证的架构中的计算块的示意图。
13.图7是根据一些示例的merkle树结构的示意图。
14.图8是示出根据一些示例的用于实现有效后量子安全软件更新的方法中的操作的流程图。
15.图9是示出根据一些示例的用于实现有效后量子安全软件更新的方法中的操作的流程图。
16.图10是根据一些示例的可适于实现硬件加速的计算架构的示意图。
具体实施方式
17.本文描述了用于为有状态的基于散列的签名实现鲁棒状态同步的示例性系统和方法。在下面的描述中,阐述了许多具体细节以提供对各种示例的透彻理解。然而,本领域
技术人员将理解,可在没有具体细节的情况下实践各种示例。在其他实例中,没有详细说明或描述公知的方法、规程、部件和电路以便不模糊示例。
18.如前简单地描述,预期现有的公钥数字签名算法诸如rivest-shamir-adleman(rsa)和椭圆曲线数字签名算法(ecdsa)都不能抵抗基于使用量子计算机的算法(诸如shor算法)的暴力攻击。另一方面,预期基于散列的签名经受住量子计算机的攻击。基于散列的签名方案的一个示例是扩展merkle签名方案(xmss)。如本文所用,术语xmss应指xmss方案和xmss-mt方案。
19.xmss签名过程使用一次签名方案诸如winternitz一次签名(wots)或其衍生(例如,wots+)结合作为主要底层散列函数的安全散列算法(sha)诸如sha2-256来实现基于散列的签名方案。在一些示例中,xmss签名/验证方案还可使用sha2-512、sha3-shake-256或sha3-shake-512中的一者或多者作为安全散列函数。xmss特定的散列函数包括伪随机函数(prf)、链式散列(f)、树式散列(h)和消息散列函数(h
msg
)。如本文所用,术语wots应指wots签名方案和/或衍生方案诸如wots+。
20.leighton/micali签名(lms)方案是另一个基于散列的签名方案,其使用leighton/micali一次签名(lm-ots)作为一次签名构建块。lms签名基于sha2-256散列函数。
21.xmss签名过程包括三个主操作。第一主操作接收输入消息(m)和私钥(sk)并且利用一次签名算法(例如,wots+)来生成对公钥(pk)进行编码的消息表示(m')。在128位后量子安全具体实施中,输入消息m经受散列函数并且然后被分成67个消息分量(每个n字节),每个消息分量经受散列链函数以生成数字签名的相应的67个分量。每个链函数调用一系列底层安全散列算法(sha)。
22.第二主操作是l-树计算,其将wots+(或wots)公钥分量(每个n字节)组合并且生成单个n字节值。例如,在128位后量子安全性中存在67个公钥分量,每个公钥分量调用对输入块执行的底层安全散列算法(sha)。
23.第三主操作是树式散列操作,其构造merkle树。在xmss验证中,作为签名和l-树操作输出的一部分提供的认证路径由树式散列操作处理以生成merkle树的根节点,该根节点应对应于xmss公钥。对于具有128位后量子安全性的xmss验证,遍历merkle树包括执行安全散列操作。在xmss验证中,将树式散列操作的输出与已知公钥进行比较。如果它们匹配,则接受签名。相反,如果它们不匹配,则拒绝签名。
24.所有ots算法和许多基于ots技术构建的基于散列的签名方案的一个重要限制是,多于一次地使用单个私钥使得攻击者能够伪造方案中的签名。因此必要的是,实现对代码的自动签名(这在连续集成/连续交付(ci/cd)软件开发方法中是常见的)的系统保证了hbs签名密钥的单次使用。此外,从可造成业务连续性中断的设备故障或环境条件中恢复以针对每个私钥保持单次使用保证的方式来处理。自动签名设施的设计和构造必须考虑到用于确保hbs签名密钥只使用一次的正常操作,以及可能破坏hbs私钥使用的正常流程或顺序的异常或灾难状况。
25.后量子密码学概述
26.后量子密码学(也称为“量子证明”、“量子安全”、“量子抵抗”,或简称“pqc”)采取了用于实现密码学的未来和现实的方法。它使负责密码学的人以及最终用户知道密码学已
经过时;相反,它需要进化以能够成功地使进化中的计算设备进入量子计算和后量子计算。
27.众所周知,密码学允许保护个人和实体之间在线通信以及使用各种网络来存储的数据。这种数据通信的范围包括发送和接收电子邮件、在线购买商品或服务、使用网站俩访问银行或其他个人信息等。
28.在处理量子计算时,常规密码学及其典型的困难数学场景的因子分解和计算可能并不重要。这些数学问题(诸如离散对数、整数因数分解、椭圆曲线离散对数等)不能够经受来自强大量子计算机的攻击。尽管任何后量子密码学都可建立在当前的密码学上,但新方法需要为足够智能、快速和精确以抵抗和击败量子计算机的任何攻击。
29.图1a和图1b分别示出了一次基于散列的签名方案和多次基于散列的签名方案。如上所述,基于散列的密码学是基于如lamport签名、merkle签名、扩展merkle签名方案(xmss)和sphinc方案等的密码系统。随着量子计算的出现和对其增长的预期,人们一直关注量子计算可能带来的各种挑战,以及可如何使用密码学领域来应对这些挑战。
30.由于基于散列的签名(hbs)已经存在了很长时间,并且具备了应对量子计数和后量子计算挑战所必需的基本要素,因此应对量子计算挑战的一个正在探索的领域是基于散列的签名(hbs)。hbs方案被认为是通过快速平台安全引导工作的快速签名算法,其被认为是最能抵抗量子和后量子计算攻击的算法。
31.例如,如相对于图1a所示,示出了hbs的方案,该hbs的方案使用merkle树以及一次签名(ots)方案100,诸如使用私钥对消息进行签名并使用相应的公钥来验证ots消息,其中私钥仅对单个消息进行签名。
32.类似地,如相对于图1b所示,示出了另一个hbs方案,其中该方案涉及多次签名(mts)方案150,其中私钥可对多个消息进行签名。
33.图2a和图2b分别示出了一次签名方案和多次签名方案。继续图1a的基于hbs的ots方案100和图1b的mts方案150,图2a示出了winternitz ots方案200,该方案由斯坦福数学系的robert winternitz提供,作为hw(x)而不是h(x)|h(y)出版,而图2b分别示出了xmss mts方案250。
34.例如,图2a的wots方案200提供将消息散列和解析成m,其中在[0,1,2,
……
,15]之间有67个整数,诸如私钥sk 205、签名s 210和公钥pk 215,其中各自具有分别为32字节的67个分量。
[0035]
图2b示出了xmss mts方案250,其允许图2a的wots方案200和具有xmss merkle树的xmss方案255的组合。如先前相对于图2a所讨论的,wot方案200基于一次公钥pk 215,该一次公钥具有分别为32字节的67个分量,然后将其通过l-树压缩算法260以提供wots压缩pk 265以在xmss方案255的xmss merkle树中占据位置。预期xmss签名验证可包括计算wots验证以及检查以确定重构的根节点是否匹配xmss公钥,诸如根节点=xmss公钥。
[0036]
后量子密码学
[0037]
图3是根据一些示例的包括第一设备310和第二设备350的安全环境300的高级架构的示意图。参考图3,第一设备310和第二设备350中的每一者可被体现为能够执行本文描述的功能的任何类型的计算设备。例如,在一些实施例中,第一设备310和第二设备350中的每一者可体现为膝上型计算机、平板计算机、笔记本、上网本、超极本
tm
、智能电话、蜂窝电话、可穿戴计算设备、个人数字助理、移动互联网设备、台式计算机、路由器、服务器、工作站
和/或任何其他计算/通信设备。
[0038]
第一设备310包括一个或多个处理器320和用于存储私钥324的存储器322。处理器320可体现为能够执行本文所述功能的任何类型的处理器。例如,处理器320可体现为单核或多核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。类似地,存储器322可被实现为任何类型的易失性或非易失性存储器或能够执行本文描述的功能的数据存储装置。在操作中,存储器322可存储在第一设备310的操作期间使用的各种数据和软件,诸如操作系统、应用程序、程序、库和驱动器。存储器322可通信地耦接到处理器320。在一些示例中,私钥324可驻留在安全存储器中,该安全存储器可以是部分存储器322或者可与存储器322分开。
[0039]
第一设备310还包括签名设施330,该签名设施包括一个或多个硬件安全模块331,该硬件安全模块包括存储器322、签名逻辑和验证逻辑336。散列逻辑332被配置为散列化(即,将散列函数应用于)消息(m)以生成消息m的散列值(m')。散列函数可包括但不限于安全散列函数,例如,安全散列算法sha2-256和/或sha3-256等。sha2-256可符合和/或兼容联邦信息处理标准(fips)出版物180-4,名称为:“安全散列标准(shs)”,由美国国家标准与技术研究所(nist)于2012年3月发布,和/或该标准的稍后和/或相关版本。sha3-256可符合和/或兼容fips出版物202,名称为:“sha-3标准:基于置换的散列和可扩展输出函数”,由nist于2015年8月发布,和/或本标准的稍后和/或相关版本。
[0040]
签名逻辑334可被配置为生成要传输的签名(即传输的签名)和/或验证签名。在第一设备310是签名设备的情况下,传输的签名可包括数量为l的传输的签名元素,其中每个传输的签名元素对应于相应的消息元素。例如,对于每个消息元素mi,签名逻辑334可被配置为对私钥sk的每个私钥元素s
ki
执行选定签名操作,签名操作的相应次数与包括在消息表示m'中的每个消息元素mi的值相关。例如,签名逻辑334可被配置为将选定散列函数应用于对应的私钥元素s
ki
达mi次。在另一示例中,签名逻辑334可被配置为将选定链函数(其包含散列函数)应用于对应的私钥元素s
ki
达mi次。因此,选定签名操作可对应于选定的基于散列的签名方案。
[0041]
基于散列的签名方案可包括但不限于winternitz(w)一次签名(ots)方案、增强的winternitz ots方案(例如,wots+)、merkle多次签名方案、扩展merkle签名方案(xmss)和/或扩展merkle多树签名方案(xmss-mt)等。散列函数可包括但不限于sha2-256和/或sha3-256等。例如,xmss和/或xmss-mt可符合以下或与其兼容:一个或多个互联网工程任务组(ietf.rtm.)信息草案互联网批注,例如草案draft-irtf-cfrg-xmss-hash-based-signatures-00,名称为“xmss:扩展的基于散列的签名”,由ietf.rtm.的互联网研究任务组、加密论坛研究组的于2015年4月发布,和/或本信息草案的稍后和/或相关版本,如2016年6月发布的草案draft-irtf-cfrg-xmss-hash-based-signatures-06。
[0042]
winternitz ots被配置为生成签名并且利用散列函数来验证所接收的签名。winternitz ots被进一步配置为使用私钥,并且从而使用每个私钥元素s
ki
一次。例如,winternitz ots可被配置为将散列函数应用于每个私钥元素达mi或n-mi次以生成签名,并且将散列函数应用于每个接收的消息元素达n-mi'或mi'次以生成对应的验证签名元素。merkle多次签名方案是基于散列的签名方案,其利用ots并且可使用公钥多于一次。例如,merkle签名方案可利用winternitz ots作为一次签名方案。wots+被配置为利用一系列散
列函数和链函数。
[0043]
xmss、wots+和xmss-mt是利用链函数的基于散列的签名方案的示例。每个链函数被配置为封装对散列函数的多个调用,并且可进一步执行附加操作。对链函数中包括的散列函数的调用次数可以是固定的。链函数可提高相关联的基于散列的签名方案的安全性。如本文所述,基于散列的签名平衡可类似地平衡链函数操作。
[0044]
密码学逻辑340被配置为代表签名设备310执行各种密码和/或安全功能。在一些实施例中,密码学逻辑340可体现为密码引擎、签名设备310的独立安全协处理器、并入处理器320的密码加速器、或独立软件/固件。在一些实施例中,密码学逻辑340可生成和/或利用各种密码密钥(例如,对称/非对称密码密钥)以促进加密、解密、签署和/或签名验证。另外,在一些实施例中,密码学逻辑340可促进通过通信链路建立与远程设备的安全连接。还应理解,在一些实施例中,密码学模块340和/或第一设备310的另一个模块可建立可信执行环境或安全飞地,在该环境或安全飞地内可存储本文所述的数据的一部分和/或可执行本文所述的多个功能。
[0045]
在如上所述生成签名之后,消息m和签名随后可由第一设备310(例如,经由通信逻辑342)经由网络通信链路390发送到第二设备350。在一个实施例中,消息m可在传输之前不被加密。在另一个实施例中,消息m可在传输之前被加密。例如,消息m可由密码学逻辑340加密以产生加密消息。
[0046]
第二设备350还可包括一个或多个处理器360和用于存储公钥364的存储器362。如上所述,处理器360可体现为能够执行本文所述功能的任何类型的处理器。例如,处理器360可体现为单核或多核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。类似地,存储器362可被实现为任何类型的易失性或非易失性存储器或能够执行本文描述的功能的数据存储装置。在操作中,存储器362可存储在第二设备350的操作期间使用的各种数据和软件,诸如操作系统、应用程序、程序、库和驱动器。存储器362可通信地耦接到处理器360。
[0047]
在一些示例中,可在先前的交换中将公钥364提供给验证器设备350。公钥pk被配置为包含数量为l的公钥元素,即pk=[p
k1
,
……
,p
kl
]。公钥364可例如存储到存储器362。
[0048]
第二设备350还包括签名设施370,该签名设施包括一个或多个硬件安全模块371,该硬件安全模块包括散列逻辑372、签名逻辑和验证逻辑376。如上所述,散列逻辑372被配置为散列化(即,将散列功能应用于)消息(m)以生成散列消息(m')。散列函数可包括但不限于安全散列函数,例如,安全散列算法sha2-256和/或sha3-256等。sha2-256可符合和/或兼容联邦信息处理标准(fips)出版物180-4,名称为:“安全散列标准(shs)”,由国家标准和技术研究所(nist)于2012年3月发布,和/或本标准的稍后和/或相关版本。sha3-256可符合和/或兼容fips出版物202,名称为:“sha-3标准:基于置换的散列和可扩展输出函数”,由nist于2015年8月发布,和/或本标准的稍后和/或相关版本。
[0049]
在第二设备是验证设备的情况下,硬件安全模块371被配置为至少部分地基于从第一设备接收的签名并至少部分地基于所接收的消息表示(m')来生成验证签名。例如,硬件安全模块371可被配置为执行相同的签名操作,即,将与硬件安全模块331的散列逻辑332所应用的散列函数或链函数相同的散列函数或链函数应用于每个接收的消息元素达n-mi(或mi)次以产生验证消息元素。然后可确定验证签名(即,l个验证消息元素中的每一者)是
否对应于相应的公钥元素p
ki
。例如,验证逻辑376可被配置为将每个验证消息元素与对应的公钥元素p
ki
进行比较。如果每个验证消息元素与相应的公钥元素p
ki
匹配,则验证对应于成功。换句话说,如果所有验证消息元素与公钥元素p
k1
,
……
,p
kl
匹配,则验证对应于成功。如果任何验证消息元素与对应的公钥元素p
ki
不匹配,则验证对应于失败。
[0050]
如下面更详细地描述的,在一些示例中,第一设备310的硬件安全模块331包括与散列逻辑332、签名逻辑334和/或验证逻辑336协作以加速认证操作的一个或多个加速器338。类似地,在一些示例中,第二设备310的硬件安全模块371包括与散列逻辑372、签名逻辑374和/或验证逻辑376协作以加速认证操作的一个或多个加速器378。在以下段落中并参照附图描述加速器的示例。
[0051]
环境300的各种模块可被体现为硬件、软件、固件或其组合。例如,环境300的各种模块、逻辑和其他部件可形成第一设备310的处理器320或第二设备350的处理器360或设备的其他硬件部件的一部分,或者以其他方式由其建立。因此,在一些实施例中,环境300的模块中的一者或多者可被体现为电路或电设备(例如,认证电路、密码学电路、通信电路、签名电路和/或验证电路)的集合。另外,在一些实施例中,一个或多个示意性模块可形成另一个模块的一部分,和/或一个或多个示意性模块可彼此独立。
[0052]
图4a是根据一些示例的示出签名操作的merkle树结构的示意图。参考图4a,xmss签名操作需要使用来自每个叶wots节点410的本地公钥来构造merkle树400a以生成全局公钥(pk)420。在一些示例中,认证路径和根节点值可离线计算,使得这些操作不会限制性能。每个wots节点410具有唯一秘密密钥“sk”,该密钥仅用于对消息进行签名一次。xmss签名由为输入消息生成的签名和用于构造merkle树根的中间树节点的认证路径组成。
[0053]
图4b是根据一些示例的在验证期间的merkle树结构400b的示意图。在验证期间,输入消息和签名用于计算wots节点的本地公钥420b,该公钥进一步用于使用认证路径来计算树根值。成功的验证将计算出的树根值与签名实体所共享的公钥pk匹配。wots和l-树操作分别占xmss签名/验证延迟的平均82%和16%,从而限定认证系统的整体性能。本文描述的是可被实现以加速wots和l-树操作,由此改善xmss性能的各种预计算技术。技术适用于其他散列选项并且针对软件和硬件具体实施两者良好地缩放。
[0054]
图5是根据一些示例的用于实现签名算法的架构500中的计算块的示意图。参考图5,wots+操作涉及由16个sha2-256散列函数的67个并行链,每个链具有密钥sk[66:0]作为输入。链中的每个散列操作由2个伪随机函数(prf)组成,从而使用sha2-256以生成位掩码和密钥。该位掩码与先前散列进行xor并且与作为第3个sha2-256散列操作的输入消息的密钥级联。67x32字节的wots公钥pk[66:0]通过在67个散列链上散列化密钥sk来生成。对shake128执行类似的函数。
[0055]
图6a是根据一些示例的用于在签名算法中实现签名生成的架构600a中的计算块的示意图。如图6a所示,对于消息签名,对输入消息进行散列化和预处理以计算67x4位值,该值用作索引以选择每个链中的中间散列值。
[0056]
图6b是根据一些示例的用于在验证算法中实现签名验证的架构600b中的计算块的示意图。参考图6b,在验证期间,再次对消息进行散列化以计算签名索引并计算每个链中的剩余散列操作以计算wots公钥pk。该值和认证路径用于计算merkle树的根并且与共享的公钥pk进行比较以验证消息。
[0057]
高效后量子固件和软件更新
[0058]
如上所述,xmss是标准数字签名算法,其提供抵抗来自量子计算机攻击的长期安全性。xmss签名过程使用随机化散列算法来生成消息表示,然后使用其通过数千次散列计算来生成xmss签名。对于资源受限设备来说,这样的计算量可能是挑战。
[0059]
为了解决这些问题和其他问题,在一些示例中,对公钥xmss方案进行分区以便将大部分计算卸载到更高端的计算节点,并且因此,只让资源受限设备执行几个散列操作来完成fw/sw认证。这将针对用于汽车和工业应用的超轻量微控制器实现后量子安全软件(包括固件)更新。
[0060]
一般而言,在一些示例中,高端网关设备可对软件更新执行验证算法。网关设备对h_msg函数进行分区。除了计算m',网关设备在m之后级联共享秘密令牌并且产生新秘密消息表示m”。如果签名通过,则网关设备将具有m”的更新软件映像传递到资源受限设备。资源受限设备重新计算所收到的软件图像上的秘密消息表示,并且通过所接收的m”对其进行验证。如果匹配,则它将继续进行软件更新。
[0061]
将参照图7至图9说明结构和功能方面。图7是根据一些示例的merkle树结构700的示意图。图8是示出根据一些示例的用于实现有效后量子安全软件更新的方法800中的操作的流程图。图9是示出根据一些示例的用于实现有效后量子安全软件更新的方法900中的操作的流程图。
[0062]
参照图7-9,在一些示例中,在网关设备上执行的过程接收软件(包括固件)模块的更新的图像、速率参数、索引参数和公钥(pk)。参考图8,在操作810,该过程在数据集([r||pk||index||m||pad)上生成32字节对齐字符串k。在操作815处,过程使用32字节对齐字符串来计算状态参数作为sha256_compress(init_state,k)。在操作820处,过程通过单个散列操作计算消息表示m'=sha 256(state,len(k))。在操作825处,过程使用两个散列操作来计算修改的消息表示m”=sha256(state,shared_secret||len(k||shared_secret))。在操作830处,过程使用xmss签名分量来计算wots pk,并且在操作835处,过程计算l-树。在操作840处,过程根据xmss签名中的l-树输出和授权路径计算merkle树根节点。
[0063]
在操作845处,确定在操作840中计算的根节点是否匹配由过程接收的公钥(pk)。如果在操作840处,根节点与公钥不匹配,则执行操作850并且向请求设备传送认证失败通知。相反,如果在操作840处,根节点与公钥匹配,则执行操作855,并且将更新的软件(和/或固件)和修改的消息表示m”传递到远程处理器,诸如端点电子控制单元(ecu)。
[0064]
参考图9,在操作910处,远程处理器接收更新的软件(和/或固件)和修改的消息表示m”。在操作915处,过程计算消息代表m的32字节对齐长度。在操作920处,过程使用两个散列操作来计算t=sha256(state,shared_secret||(3x32-byte+len(m)+len(shared_secret)))。
[0065]
在操作925处,确定计算值t是否与修改的消息表示m”匹配。如果在操作925处,计算值t与修改的消息表示m”不匹配,则执行操作930处并且向请求的设备传送认证失败通知。相比之下,如果在操作840处,计算值t与修改的消息表示m”匹配,则执行操作935,并且远程处理器更新软件(和/或固件)图像。
[0066]
因此,对于pq安全软件和/或固件更新,本文描述的主题将资源受限设备中所需的计算减少804倍,即从1608个散列执行减小到两个散列执行。这使得pq安全更新对所有资源
受限环境(例如,汽车平台、工业机器人等)都是可行的。
[0067]
图10示出了可适合于实现如前所述的各种实施例的示例性计算架构的实施例。在各种实施例中,计算架构1000可包括电子设备或被实现为电子设备的一部分。在一些实施例中,计算架构1000可表示例如实现上述操作环境中的一个或多个部件的计算机系统。在一些实施例中,计算架构1000可表示实现本文描述的一个或多个技术的数字签名签署系统的一个或多个部分或部件。实施例在此上下文中不受限制。
[0068]
如在本技术中所使用的,术语“系统”和“部件”以及“模块”旨在指代计算机相关实体,硬件、硬件和软件的组合、软件或执行中的软件,其示例由示例性计算架构1000提供。例如,部件可以是但不限于是在处理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对象、可执行文件、执行线程、程序和/或计算机。通过举例说明,在服务器上运行的应用程序和服务器都可以是部件。一个或多个部件可驻留在执行的过程和/或线程内,并且部件可本地化在一台计算机上和/或分布在两台或更多台计算机之间。此外,部件可通过各种类型的通信介质来彼此通信地耦接以协调操作。协调可涉及单向或双向的信息交换。例如,部件可以通过通信介质传送的信号的形式传送信息。信息可被实现为分配给各种信号线的信号。在此类分配中,每个消息是信号。然而,其他实施例可替代地采用数据消息。此类数据消息可跨各种连接发送。示例性连接包括并行接口、串行接口和总线接口。
[0069]
计算架构1000包括各种常见计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(i/o)部件、电源等。然而,实施例不限于由计算架构1000进行的具体实施。
[0070]
如图10所示,计算架构1000包括一个或多个处理器1002和一个或多个图形处理器1008,并且可以是单处理器桌面系统、多处理器工作站系统、或具有大量处理器1002或处理器核心1007的服务器系统。在实施例中,系统1000是合并在用于移动、手持或嵌入式设备的片上系统(soc或soc)集成电路内的处理平台。
[0071]
系统1000的实施例可包括基于服务器的游戏平台、游戏控制台,包括游戏和媒体控制台、移动游戏控制台、手持游戏控制台或在线游戏控制台,或者合并在其内。在一些实施例中,系统1000是移动电话、智能电话、平板计算设备或移动互联网设备。数据处理系统1000还可包括可穿戴设备诸如智能手表可穿戴设备、智能眼镜设备、增强现实设备或虚拟现实设备、与其耦接或集成在其内。在一些实施例中,数据处理系统1000是具有一个或多个处理器1002以及由一个或多个图形处理器1008生成的图形界面的电视机或机顶盒设备。
[0072]
在一些实施例中,一个或多个处理器1002各自包括用于处理指令的一个或多个处理器核心1007,在被执行时,这些指令执行系统和用户软件的操作。在一些实施例中,一个或多个处理器核心1007中的每一者被配置为处理特定指令集1009。在一些实施例中,指令集1009可促进复杂指令集计算(cisc)、精简指令集计算(risc)或经由超长指令字(vliw)的计算。多个处理器核心1007可各自处理不同的指令集1009,该指令集可包括用于促进模拟其他指令集的指令。处理器核心1007还可包括其他处理设备诸如数字信号处理器(dsp)。
[0073]
在一些实施例中,处理器1002包括高速缓存存储器1004。取决于架构,处理器1002可具有单个内部高速缓存或多级的内部高速缓存。在一些实施例中,在处理器1002的各种部件之间共享高速缓存存储器。在一些实施例中,处理器1002还使用外部高速缓存(例如,3
级(l3)高速缓存或终极高速缓存(llc)(未示出)),该外部高速缓存可使用已知的高速缓存一致性技术在处理器核心1007之间共享。寄存器文件1006附加地包括在处理器1002中,其可包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器)。一些寄存器可以是通用寄存器,而其他寄存器可特定于处理器1002的设计。
[0074]
在一些实施例中,一个或多个处理器1002与一个或多个接口总线1010耦接以在处理器1002和系统中的其他部件之间传输通信信号(诸如地址、数据或控制信号)。在一个实施例中,接口总线1010可以是处理器总线,诸如直接媒体接口(dmi)总线的版本。然而,处理器总线不限于dmi总线,并且可包括一个或多个外围部件互连总线(例如,pci、pci express)、存储器总线、或其他类型的接口总线。在一个实施例中,处理器1002包括集成存储器控制器1016和平台控制器集线器1030。存储器控制器1016促进存储器设备和系统1000的其他部件之间的通信,而平台控制器集线器(pch)1030经由本地i/o总线提供到i/o设备的连接。
[0075]
存储器设备1020可以是动态随机存取存储器(dram)设备、静态随机存取存储器(sram)设备、闪存存储器设备、相变存储器设备或具有适当性能以用作过程存储器的某种其他存储器设备。在一个实施例中,存储器设备1020可作为系统1000的系统存储器来操作以存储用于在一个或多个处理器1002执行应用程序或处理时使用的数据1022和指令1021。存储器控制器集线器1016还与任选的外部图形处理器1012耦接,该外部图形处理器可与处理器1002中的一个或多个图形处理器1008通信以执行图形和媒体操作。在一些实施例中,显示器设备1011可连接到处理器1002。显示器设备1011可以是内部显示器设备(如在移动电子设备或膝上型计算机设备中)或者经由显示接口(例如,显示端口等)附接的外部显示器设备中的一者或多者。在一个实施例中,显示器设备1011可以是头戴式显示器(hmd),诸如用于虚拟现实(vr)应用或增强现实(ar)应用的立体显示器设备。
[0076]
在一些实施例中,平台控制器集线器1030使得外围设备能够经由高速i/o总线连接到存储器设备1020和处理器1002。i/o外围设备包括但不限于音频控制器1046、网络控制器1034、固件接口1028、无线收发器1026、触摸传感器1025、数据存储设备1024(例如,硬盘驱动器、闪存存储器等)。数据存储设备1024可经由存储接口(例如,sata)或经由诸如外围部件互连总线(例如,pci,pci express)的外围总线来连接。触摸传感器1025可包括触摸屏传感器、压力传感器或指纹传感器。无线收发器1026可以是wi-fi收发器、蓝牙收发器或诸如3g、4g或长期演进(lte)收发器的移动网络收发器。固件接口1028实现与系统固件的通信,并且可以是例如统一可扩展固件接口(uefi)。网络控制器1034可启用与有线网络的网络连接。在一些实施例中,高性能网络控制器(未示出)与接口总线1010耦接。在一个实施例中,音频控制器1046是多声道高清晰度音频控制器。在一个实施例中,系统1000包括用于将传统(例如,个人系统2(ps/2))设备耦接到系统的任选传统i/o控制器1040。平台控制器集线器1030还可连接到一个或多个通用串行总线(usb)控制器1042,连接输入设备,诸如键盘和鼠标1043组合、相机1044或其他usb输入设备。
[0077]
以下涉及另外的实施例。
[0078]
实施例1是一种装置,包括:计算机可读存储器;以及处理电路,所述处理电路用于:接收用于软件模块的更新的图像、随机参数、索引参数和公钥;生成32字节对齐字符串;
使用所述32字节对齐字符串来计算状态参数;生成修改的消息表示;计算merkle树根节点;以及响应于确定所述merkle树根节点匹配所述公钥,向远程设备转发用于软件模块的更新的所述图像、所述状态参数;以及所述修改的消息表示。
[0079]
在实施例2中,实施例1的主题可任选地包括一种布置,其中所述状态参数表示sha-3h_msg函数的部分计算。
[0080]
在实施例3中,实施例1-2中的任一者的主题可任选地包括处理电路,所述处理电路用于:使用所述状态参数来计算消息表示;以及级联所述消息表示以生成所述修改的消息表示。
[0081]
在实施例4中,实施例1-3中的任一者的主题可任选地包括处理电路,所述处理电路用于:使用所述消息表示来计算一系列winternitz一次签名(wots)公钥(pk);计算l-树;以及使用所述l-树来计算所述merkle树根节点。
[0082]
实施例5是一种基于计算机的方法,包括:接收用于软件模块的更新的图像、随机参数、索引参数和公钥;生成32字节对齐字符串;使用所述32字节对齐字符串来计算状态参数;生成修改的消息表示;计算merkle树根节点;以及响应于确定所述merkle树根节点匹配所述公钥,向远程设备转发用于软件模块的更新的所述图像、所述状态参数;以及所述修改的消息表示。
[0083]
在实施例6中,实施例5的主题可任选地包括一种布置,其中所述状态参数表示sha-3h_msg函数的部分计算。
[0084]
在实施例7中,实施例5-6中的任一者的主题可任选地包括使用所述状态参数来计算消息表示;以及级联所述消息表示以生成所述修改的消息表示。
[0085]
在实施例8中,实施例5-7中的任一者的主题可任选地使用所述消息表示来计算一系列winternitz一次签名(wots)公钥(pk);计算l-树;以及使用所述l-树来计算所述merkle树根节点。
[0086]
实施例9是一种包括指令的非暂时性计算机可读介质,当由处理器执行时,所述指令将所述处理器配置为:接收用于软件模块的更新的图像、速率参数、索引参数和公钥;生成32字节对齐字符串;使用所述32字节对齐字符串来计算状态参数;生成修改的消息表示;计算merkle树根节点;以及响应于确定所述merkle树根节点匹配所述公钥,向远程设备转发用于软件模块的更新的所述图像、所述状态参数;以及所述修改的消息表示。
[0087]
在实施例10中,实施例9的主题可任选地包括一种布置,其中所述状态参数表示sha-3h_msg函数的部分计算。
[0088]
在实施例11中,实施例9-10中的任一者的主题可任选地包括用于进行以下指令:使用所述状态参数来计算消息表示;以及级联所述消息表示以生成所述修改的消息表示。
[0089]
在实施例12中,实施例9-10中的任一者的主题可任选地包括用于进行以下指令:使用所述消息表示来计算一系列winternitz一次签名(wots)公钥(pk);计算l-树;以及使用所述l-树来计算所述merkle树根节点。
[0090]
实施例13是一种装置,包括:计算机可读存储器;以及处理电路,所述处理电路用于:从远程设备接收用于软件模块的更新的图像、状态参数;以及修改的消息表示;计算秘密消息表示;响应于确定所述修改的消息表示与所述修改的消息表示匹配,发起安装过程以使用所述更新的所述图像来更新所述软件模块。
[0091]
在实施例14中,实施例13的主题可任选地包括处理电路,所述处理电路用于生成32字节对齐长度的所述表示消息。
[0092]
实施例15是一种基于计算机的方法,包括:从远程设备接收用于软件模块的更新的图像、状态参数;以及修改的消息表示;计算秘密消息表示;响应于确定所述修改的消息表示与所述修改的消息表示匹配,发起安装过程以使用所述更新的所述图像来更新所述软件模块。
[0093]
在实施例16中,实施例15的主题可任选地包括生成32字节对齐长度的所述表示消息。
[0094]
实施例17是一种包括指令的非暂时性计算机可读介质,当由处理器执行时,所述指令将所述处理器配置为:从远程设备接收用于软件模块的更新的图像、状态参数;以及修改的消息表示;计算秘密消息表示;响应于确定所述修改的消息表示与所述修改的消息表示匹配,发起安装过程以使用所述更新的所述图像来更新所述软件模块。
[0095]
在实施例18中,实施例17的主题可任选地包括指令,所述指令用于生成32字节对齐长度的所述表示消息。
[0096]
以上具体实施例的描述包括对形成具体实施方式的一部分的附图的参考。作为说明,附图示出了可实施的具体实施例。这些实施例在此也称为“示例”。这些示例可包括除了示出或描述的那些之外的元件。然而,还考虑包括示出或描述的元件的示例。此外,还考虑了使用关于特定示例(或其一个或多个方面),或关于本文所示或描述的其他示例(或其一个或多个方面)所示或描述的那些元件(或其一个或多个方面)的任何组合或排列的示例。
[0097]
本文中提及的出版物、专利和专利文献通过引用全部并入本文,如同通过引用单独并入一样。如果本文件与通过引用合并的文件之间的用法不一致,合并引用中的用法是对本文件用法的补充;对于不可调和的不一致,本文档中的用法控制。
[0098]
在本文件中,如在专利文件中是常见的,术语“一”或“一个”用于包括一个或多个,与“至少一个”或“一个或多个”的任何其他实例或用法无关。此外,“一组”包括一个或多个元素。在本文件中,术语“或”用于指非排他性的或,使得“a或b”包括“a但不包括b”、“b但不包括a”和“a和b”,除非另有说明。在所附权利要求中,术语“包括”和“其中”被用作相应术语“包括”和“其中”的简单英语等同词。此外,在以下权利要求中,术语“包括”和“包含”是开放式的;也就是说,除权利要求中该术语之后所列的元素外还包括其他元素的系统、设备、制品或工艺仍被视为属于该权利要求的范围。此外,在下面的权利要求中,术语“第一”、“第二”、“第三”等仅用作标记并且不旨在建议其对象的数字顺序。
[0099]
本文提到的术语“逻辑指令”涉及可由用于执行一个或多个逻辑操作的一个或多个机器理解的表达。例如,逻辑指令可包括可由处理器编译器解释的用于对一个或多个数据对象执行一个或多个操作的指令。然而,这仅是机器可读指令的示例并且示例在这方面不被限制。
[0100]
本文所提到的术语“计算机可读介质”涉及能够保持可由一个或多个机器感知的表达的介质。例如,计算机可读介质可包括用于存储计算机可读指令或数据的一个或多个存储设备。此类存储设备可包括存储介质,例如,光学、磁性或半导体存储介质。然而,这仅是计算机可读介质的示例并且示例在这方面不被限制。
[0101]
本文所指的术语“逻辑”涉及用于执行一个或多个逻辑操作的结构。例如,逻辑可
包括基于一个或多个输入信号提供一个或多个输出信号的电路。这种电路可包括接收数字输入并提供数字输出的有限状态机,或者响应一个或多个模拟输入信号而提供一个或多个模拟输出信号的电路。这种电路可在专用集成电路(asic)或现场可编程门阵列(fpga)中提供。此外,逻辑可包括存储在存储器中的机器可读指令结合用于执行此类机器可读指令的处理电路。然而,这些仅是可提供逻辑的结构的示例并且示例在这方面不被限制。
[0102]
本文描述的一些方法可被具体化为计算机可读介质上的逻辑指令。当在处理器上执行时,逻辑指令致使处理器被编程为实现所述方法的专用机器。当由逻辑指令配置以执行本文描述的方法时,处理器构成用于执行所述方法的结构。另选地,本文描述的方法可简化为例如现场可编程门阵列(fpga)、专用集成电路(asic)等上的逻辑。
[0103]
在说明书和权利要求中,可使用术语耦接和连接以及它们的衍生物。在特定的示例中,连接可用于指示两个或更多个元件彼此直接物理或电接触。耦接可能意味着两个或更多个元件直接物理或电接触。然而,耦接也可意味着两个或更多个元件可不彼此直接接触,但仍然可彼此协作或相互作用。
[0104]
在说明书中对“一个示例”或“一些示例”的引用意味着结合该示例描述的特定特征、结构或特性包括在至少一个具体实施中。在说明书中的不同地方出现的短语“在一个示例中”可能指代或可能不指代相同示例。
[0105]
上述描述旨在说明性的,而不是限制性的。例如,上述示例(或其一个或多个方面)可与其他示例结合使用。在回顾上述描述后,可使用其他实施例,诸如由本领域普通技术人员使用。摘要用于允许读者快速确定技术公开的性质。摘要伴随以下理解提交:即摘要不用于解释或限制权利要求的范围或意义。此外,在上述详细描述中,可将各种特征分组在一起以简化本公开。然而,权利要求可不阐述本文公开的每个特征,因为实施例可具有所述特征的子集。此外,实施例可包括比特定示例中公开的特征更少的特征。因此,下面的权利要求被合并到具体实施方式中,其中每个权利要求作为单独的实施例而独立存在。本文公开的实施例的范围将参考所附权利要求以及这些权利要求有权享有的等价物的全部范围来确定。
[0106]
尽管已经以特定于结构特征和/或方法行为的语言描述了示例,但应当理解,所要求保护的主题可不限于所描述的特定特征或行为。相反,特定特征和行为被公开为实现所要求保护的主题的示例形式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1