HASH GAME - Online Skill Game GET 300
实施例提供了一种新技术,该技术采用统一硬件加速器(uha)来,例如通过与后量子签名方案共享经典签名方案的数据路径和存储块来促进经典和/或后量子签名方案的安全措施。例如,对基于rsa的方案中的哈希引擎进行了调整,以扩展对执行可扩展merkle签名方案(xmss)哈希操作的支持,同时在两种签名方案之间重用存储块。哈希引擎可以基于简单的输入位以两种模式之一进行操作,该输入位然后可以由用户或应用进行编程。因此,本公开描述的主题通过提供实现统一硬件加速器的系统和方法来解决这些问题,该加速器可提供针对经典和后量子计算攻击的安全性。
xmss是一种基于哈希的签名方案,该签名方案使用winternitz一次性签名(wots)、一次性签名方案结合sha2-256作为主要的基础哈希函数。xmss的用户还可以使用sha2-512、sha3-shake-256或sha3-shake-512作为可选的哈希函数。一些xmss实现方式采用通用的sha2-256哈希模块来执行xmss特定的哈希函数,诸如伪随机函数(prf)、链哈希(f)、树哈希(h)和消息哈希(h_msg)。lms是一种基于哈希的签名方案,该方案使用leighton/micali一次性签名(lm_ots)作为一次性签名构建块,该一次性签名构建块基于sha2-256哈希函数。
在处理量子计算时,传统密码术及其典型的因式分解和困难数学场景的计算可能并不重要。这些数学问题,诸如离散对数、整数因式分解和椭圆曲线离散对数等,无法承受强大的量子计算机的攻击。参见shor,p.w.“algorithmsforquantumcomputation:discretelogarithmsandfactoring”,第35届计算机科学基础年度研讨会议程,ieee计算科学出版社doi:10.1109/sfcs.1994.365700.isbn0818665807。尽管可以在当前的密码术上构建任何后量子密码术,但是这种新颖的方法仍需要足够智能、快速和精确,以抵抗和击败量子计算机的任何攻击。
今天的pqc主要集中在以下方法上:1)基于1979年merkle哈希树公钥签名系统的基于哈希的密码术,该系统建立在lamport和diffie的单消息签名思想之上;2)基于代码的密码术,诸如mceliece的隐式goppa代码公钥加密系统;3)基于1998年的hoffstein-pipher-silverman公钥加密系统的基于格的密码术;4)基于1996年的patarin的hiddenfieldequation(hfe)公钥签名系统的多元二次方程密码术,该系统进一步基于matumoto-imai的建议;5)依靠超奇异椭圆曲线和超奇异同构图的超奇异椭圆曲线)对称密钥量子电阻,诸如基于哈希的签名(hbs)。
现在,例如,图2b示出了xmssmts方案250,该xmssmts方案250允许图2a的wots方案200和具有xmssmerkle树270的xmss方案255的组合。如先前关于图2a所讨论的,wots方案200是基于一次性公钥pk215的,该公钥pk215具有各自32个字节的67个组件,然后通过l-tree压缩算法260进行处理,以使wots压缩的pk267进行xmss方案255的xmssmerkle树270。预期xmss签名验证可以包括计算wots验证和检查以确定重构的根节点是否与xmss公钥匹配,诸如根节点=xmss公钥。
参考图8,其示出了根据一些示例的包括第一设备810和第二设备850的安全环境800的高级架构。参考图8,第一设备810和第二设备850中的每一个可被体现为能够执行本公开所述功能的任何类型的计算设备,诸如图8的计算设备800、图7的计算设备700等。例如,在一些实施例中,第一设备810和第二设备850中的每一个可以被体现为膝上型计算机、平板计算机、笔记本计算机、上网本、ultrabooktm、智能电话、蜂窝电话、可穿戴计算设备、个人数字助理、移动互联网设备、台式计算机、路由器、服务器、工作站和/或任何其它计算/通信设备。
第一设备810包括一个或多个处理器820和用于存储私钥824的存储器822。处理器820可以体现为能够执行本公开所述功能的任何类型的处理器。例如,处理器820可以体现为单核或多核处理器、数字信号处理器、微控制器或其它处理器或处理/控制电路。类似地,存储器822可以体现为能够执行本公开所述功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器822可以存储在第一设备810的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动器。存储器822通信地耦合到处理器820。在一些示例中,私钥824可以驻留在安全存储器中,该安全存储器可以是部分存储器822或者可以与存储器822分离。
第一设备810还包括认证逻辑830,该认证逻辑830包括存储器832、签名逻辑和验证逻辑836。哈希逻辑832被配置为对消息(m)进行哈希(即,向其应用哈希函数)以生成消息m的哈希值(m)。哈希函数可以包括但不限于安全哈希函数,例如安全哈希算法sha2-256和/或sha3-256等。sha2-256可符合和/或兼容美国国家标准技术研究院(nist)于2012年3月发布的标题为“安全哈希标准(shs)”的联邦信息处理标准(fips)出版物180-4和/或本标准的更高版本和/或相关版本。sha3-256可符合和/或兼容nist于2015年8月发布的标题为“sha-3标准:基于置换的哈希和可扩展输出函数”的fips出版物202和/或该标准的更高版本和/或相关版本。
签名逻辑832可以被配置为生成要发送的签名,即,发送的签名,和/或验证签名。在第一设备810是签名设备的情况下,发送的签名可以包括数量为l的发送的签名元素,其中每个发送的签名元素对应于相应的消息元素。例如,对于每个消息元素mi,签名逻辑832可以被配置为对私钥sk的每个私钥元素ski执行相应次数的选择签名操作,该相应次数与消息代表m中包括的每个消息元素mi的值相关。例如,签名逻辑832可以被配置为将所选的哈希函数应用到对应的私钥元素skimi次。在另一示例中,签名逻辑832可以被配置为将所选的链函数(其包含哈希函数)应用于对应的私钥元素skimi次。因此,所选的签名操作可以对应于所选的基于哈希的签名方案。
winternitzots被配置为生成签名并使用哈希函数验证接收到的签名。winternitzots进一步被配置为使用私钥,并且因此使用每个私钥元素ski一次。例如,winternitzots可以被配置为将哈希函数应用于每个私钥元素mi或n-mi次以生成签名,并将哈希函数应用于每个接收到的消息元素n-mi或mi次以生成对应的验证签名元素。merkle多次签名方案是一种基于哈希的签名方案,该方案利用ots,并且可使用私钥多于一次。例如,merkle签名方案可以利用winternitzots作为一次性签名方案。wots+被配置为利用哈希函数和链函数族。
密码术逻辑840被配置为代表签名设备810执行各种加密和/或安全功能。在一些实施例中,密码术逻辑840可以体现为加密引擎,签名设备810的独立安全协处理器、结合到处理器820中的密码加速器或独立软件/固件。在一些实施例中,密码术逻辑840可以生成和/或利用各种加密密钥(例如,对称/非对称加密密钥)来促进加密、解密、签名和/或签名验证。另外,在一些实施例中,密码术逻辑840可以促进通过通信链路与远程设备建立安全连接。进一步应该意识到,在一些实施例中,第一设备810的密码术模块840和/或另一模块可以建立可信的执行环境或安全位址空间(enclave),在该执行环境或安全位址空间内可以存储本公开描述的数据的一部分和/或可以执行本公开描述的许多功能。
第二设备850还可以包括一个或多个处理器860和用于存储公钥864的存储器862。如上所述,处理器860可以体现为能够执行本公开所述功能的任何类型的处理器。例如,处理器860可以体现为单核或多核处理器、数字信号处理器、微控制器或其它处理器或处理/控制电路。类似地,存储器862可以体现为能够执行本公开所述功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器862可以存储在第二设备850的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动器。存储器862通信地耦合到处理器860。
第二设备850还包括认证逻辑870,该认证逻辑870包括哈希逻辑872、签名逻辑和验证逻辑876。如上所述,哈希逻辑872被配置为对消息(m)进行哈希(即,向其应用哈希函数)以生成哈希消息(m)。哈希函数可以包括但不限于安全哈希函数,例如安全哈希算法sha2-256和/或sha3-256等。sha2-256可符合和/或兼容美国国家标准技术研究院(nist)于2012年3月发布的标题为“安全哈希标准(shs)”的联邦信息处理标准(fips)出版物180-4和/或本标准的更高版本和/或相关版本。sha3-256可符合和/或兼容nist于2015年8月发布的标题为“sha-3标准:基于置换的哈希和可扩展输出函数”的fips出版物202和/或该标准的更高版本和/或相关版本。
在第二设备是验证设备的情况下,认证逻辑870被配置为至少部分地基于从第一设备接收的签名并且至少部分地基于接收到的消息代表(m)来生成验证签名。例如,认证逻辑870可以被配置为执行相同的签名操作,即,将与认证逻辑830的哈希逻辑832所应用的哈希函数或链函数相同的哈希函数或链函数应用于每个接收的消息元素n-mi(或mi)次,以产生验证消息元素。然后可以确定验证签名(即,l个验证消息元素中的每一个)是否对应于对应的公钥元素pki。例如,验证逻辑870可以被配置为将每个验证消息元素与对应的公钥元素pki进行比较。如果验证消息元素中的每个验证消息元素与对应的公钥元素pki匹配,则验证对应于成功。换句话说,如果所有验证消息元素都与公钥元素pk1,......,pkl匹配,则验证对应于成功。如果任何验证消息元素与对应的公钥元素pki不匹配,则验证对应于失败。
环境800的各种模块可以体现为硬件、软件、固件或其组合。例如,环境800的各种模块、逻辑和其它组件可以形成第一设备810的处理器820或第二设备850的处理器860或设备的其它硬件组件的一部分或以其它方式由它们建立。这样,在一些实施例中,环境800的一个或多个模块可以体现为电子设备的电路或集合(例如,认证电路、密码术电路、通信电路、签名电路和/或验证电路)。另外,在一些实施例中,一个或多个说明性模块可以形成另一模块的一部分,和/或一个或多个说明性模块可以彼此独立。
图9a是根据一些示例的merkle树结构的示意图,其示出了签名操作。参考图9a,xmss签名操作需要使用来自每个叶子wots节点910的本地公钥的merkle树900a的构造,以生成全局公钥(pk)920。在一些示例中,认证路径和根节点值可以离线计算,使得这些操作不会限制性能。每个wots节点910具有唯一的秘钥“sk”,其仅用于对消息签名一次。xmss签名包括为输入消息生成的签名和中间树节点的认证路径,以构造merkle树的根。
图9b是根据一些示例的在验证期间的merkle树结构900b的示意图。在验证期间,输入消息和签名用于计算wots节点的本地公钥920b,该本地公钥进一步用于使用认证路径计算树的根值。成功的验证将使计算出的树根值与签名实体共享的公钥pk相匹配。wots和l-tree操作构成xmss符号/验证等待时间的重要部分,从而定义了认证系统的总体性能。本公开描述了各种预计算技术,可以将其实施以加速wots和l-tree操作,从而提高xmss性能。该技术适于其它哈希选项,并且可以很好地针对软件和硬件实现方式进行缩放。
现在参考图3,图3示出了根据一个实施例的采用统一硬件加速器320和统一加速机制310的计算设备300。计算设备300表示通信和数据处理设备,该通信和数据处理设备包括(但不限于)智能语音命令设备、智能个人助理、家庭/办公室自动化系统、家用电器(例如洗衣机、电视机等)、移动设备(例如智能电话、平板计算机等)、游戏设备、手持设备、可穿戴设备(例如智能手表、智能手环等)、虚拟现实(vr)设备、头戴式显示器(hmd)、物联网(iot)设备、膝上型计算机、台式计算机、服务器计算机、机顶盒(例如,基于互联网的有线电视机顶盒等)、基于全球定位系统(gps)的设备、汽车信息娱乐设备等。
在一些实施例中,计算设备300包括或与任何数量和类型的其它智能设备一起工作或嵌入其中或促进其工作,诸如(但不限于)自主机器或人工智能代理,诸如机械代理或机器、电子代理或机器、虚拟代理或机器、机电代理或机器等。自主机器或人工智能代理的示例可包括(但不限于)机器人、自主车辆(例如,自驾驶汽车、自驾驶飞机、自航船等)、自主装备(自操作工程车、自操作医疗装备等)等。此外,“自主车辆”不限于汽车,而是它们可以包括任何数量和类型的自主机器,诸如机器人、自主装备、家庭自主设备等,以及与此类自主机器相关的任何一项或多项任务或操作可以与自主驾驶互换地引用。
如图所示,在一个实施例中,计算设备300可以包括任何数量和类型的硬件和/或软件组件,诸如(但不限于)图形处理单元(“gpu”或简称为“图形处理器”)314、图形驱动器(也称为“gpu驱动器”、“图形驱动器逻辑”、“驱动器逻辑”、用户模式驱动器(umd)、umd、用户模式驱动器框架(umdf)、umdf或简称为“驱动器”)316、中央处理单元(“cpu”或简称为“应用处理器”)312、存储器304、网络设备、驱动器等,以及输入/输出(i/o)源308,诸如触摸屏、触摸面板、触摸板、虚拟或常规键盘、虚拟或常规鼠标、端口、连接器等。计算设备300可以包括用作计算设备300的硬件和/或物理资源与用户之间的接口的操作系统(os)306。
在一个实施例中,如图所示,统一加速机制310可以由与计算设备300的i/o源308(诸如麦克风、扬声器等)通信的存储器304托管。在另一个实施例中,统一加速机制310可以是操作系统306的一部分或由操作系统306托管。在另一个实施例中,统一加速机制310可以由图形驱动器316托管或促进。在另一个实施例中,统一加速机制310可以由中央处理单元(“cpu”或简称为“应用处理器”)312和/或图形处理单元(“gpu”或简称为图形处理器”)314托管或嵌入其中,作为一种或多种硬件组件,诸如由一个或多个模拟或数字电路、逻辑电路、可编程处理器、可编程控制器、gpu、数字信号处理器(dsp)、专用集成电路(asic)、可编程逻辑设备(pld)、现场可编程逻辑设备(fpld)等实现。因此,可以预期,统一加速机制310的一个或多个部分或组件可以被采用或实现为硬件、软件、固件或其任何组合。
如进一步示出的,计算设备300包括托管包括硬件加速器的统一加速器320的可信平台315,其中可信平台315与应用处理器312和图形处理器314通信。如将在本公开件中进一步讨论的,在一个实施例中,uha320由可信平台315托管,而由统一加速机制310促进,以执行任何数量和类型的任务,以确保计算设备300和/或耦合到计算设备300或与之通信的任何其它计算设备的安全性,以抵抗经典计算机和后量子计算机二者的攻击。
计算设备300可以托管网络接口设备,以提供对网络的访问,诸如lan、广域网(wan)、城域网(man)、个人区域网(pan)、蓝牙、云网络、移动网络(例如,第三代(3g)、第四代(4g)等)、企业内部网、互联网等。网络接口可以包括例如具有天线的无线网络接口,该天线可以表示一个或多个天线。网络接口还可以包括例如有线网络接口,以经由网络电缆与远程设备通信,该网络电缆可以是例如以太网电缆、同轴电缆、光纤电缆、串行电缆或平行电缆。
例如,可以提供实施例作为计算机程序产品,该计算机程序产品可以包括其上存储有机器可执行指令的一个或多个机器可读介质,该机器可执行指令在由诸如计算机、数据处理机、数据处理设备、计算机网络或其它电子设备的一个或多个机器执行时可导致一个或多个机器执行根据本公开所述实施例的操作。如参考图3所述,机器可以包括一个或多个处理器,诸如cpu、gpu等。机器可读介质可以包括但不限于软盘、光盘、压缩光盘-只读存储器(cd-rom)、磁光盘、rom、随机存取存储器(ram)、可擦可编程只读存储器(eprom)、电可擦可编程只读存储器(eeprom)、磁卡或光卡、闪存,或适于存储机器可执行指令的其它类型的介质/机器可读介质。
贯穿本公开件,术语“用户”可互换地称为“观看者”、“观察者”、“发言人”、“人”、“个人”、“最终用户”、“开发者”、“程序员”、“管理员”等。例如,在一些情况下,用户可以指最终用户,诸如访问客户端计算设备的消费者,而在一些其它情况下,用户可以包括访问充当客户端计算设备的工作站的开发者、程序员、系统管理员等。要注意的是,贯穿本公开件,如“图形域”的术语可以与“图形处理单元”、“图形处理器”或简称为“gpu”互换使用;类似地,“cpu域”或“主机域”可以与“计算机处理单元”、“应用处理器”或简称为“cpu”互换使用。
在一些实施例中,如“显示屏”和“显示表面”的术语可互换地用于指代显示设备的可见部分,而其余的显示设备可被嵌入到诸如智能电话、可穿戴设备等的计算设备中。可以预期并且要注意,实施例不限于任何特定的计算设备、软件应用、硬件组件、显示设备、显示屏或表面、协议、标准等。例如,实施例可以应用于任何数量和类型的计算机(诸如台式机、膝上型计算机、平板计算机、智能电话、头戴式显示器和其它可穿戴设备等)上的任何数量和类型的实时应用,并且可以与它们一起使用。此外,例如,使用该新颖技术的高效性能的渲染场景的范围可以从简单的场景(诸如桌面合成)到复杂的场景(诸如三维(3d)游戏、增强现实应用等)。
计算设备300进一步示为包括用户界面419(例如,基于图形用户界面(gui)的用户界面、web浏览器、基于云的平台用户界面、基于软件应用的用户界面、其他用户或应用编程接口(api)等)。计算设备300可以还包括i/o源308,该i/o源308具有:输入组件431,诸如相机442(例如,realsensetm相机)、麦克风441、传感器、检测器、键盘、鼠标等;以及输出组件433,诸如显示设备或简称显示器444(例如整体显示器、张量显示器、投影屏幕、显示屏等)、扬声器设备或简称扬声器等。
如前所述,现有的公钥数字签名技术,诸如公钥密码术标准(pkcs)rsa、椭圆曲线数字签名算法(ecdsa)椭圆曲线密码术(ecc)等,容易受到攻击,诸如就像那些使用量子计算机的攻击一样。正在努力开发针对量子计算机安全的算法标准。例如,xmss是互联网工程任务组(ietf)在rfc-8391中发布的第一个后量子安全公钥数字签名方案。用于执行rsa操作的加速器(诸如幂加速单元)具有专用哈希引擎(例如sha2/sha384)以支持作为pkcs#1v2的一部分标准化的各种算法,诸如光学非对称加密填充(oaep)、概率签名方案(pss)等。这些加速器还配备有大型的存储器宏(诸如寄存器文件)以保存诸如基本、指数、秘钥、中间结果和密文等的参数。
实施例提供了新颖的uha320,其与传统的单独的硬件实现方式相比提供了显著的减少,诸如减少超过30%(例如,285k的门数而不是400k的门数)。该面积减少还可以转化为类似的功率节省,并且此外,该新颖技术最小化任何设计和验证工作,因为在一个实施例中,可以对现有引擎进行调整(而无需添加附加引擎)以扩展对后量子数字签名方案的支持。如前所述,该新颖技术还支持任何经典的数字签名方案,同时具备充分的能力来基于量子计算的不断发展来处理后量子数字签名方案。
公钥数字签名方案用于验证消息的真实性,其中发送方采用私钥对消息签名,而验证方通过采用公钥解密签名来验证线a所示,基于rsa的数字签名方案采用多个哈希引擎501、503,并执行消息填充,然后执行哈希操作以将消息压缩到合适的大小,如由图5a的基于rsa的公钥数字签名引擎(“rsa引擎”)500所促进的。然后,使用模块化求幂引擎507对该压缩消息进行模块化求幂,该模块化求幂引擎507形成rsa加密/解密的基础。当前使用的标准密钥大小是4096位,以增强对使用量子计算机的攻击的容忍度,使得rsa引擎500由8个寄存器文件库(诸如寄存器文件库505)组成,其中每个库包括32个128b字节的条目。例如,模块化求幂引擎507基于密钥位执行模乘和归约,并将结果写回到寄存器文件库505处的寄存器文件中。rsa引擎500支持由pkcs#1v2标准化的各种公钥密码算法,诸如oaep、概率签名方案(pss)、pkcs签名/验证等。这些算法中的关键操作之一是掩码生成函数(mgf),该掩码生成函数采用哈希引擎503(例如sha2/sha384/sha512)以取决于操作扩展/压缩任何消息。
参考图5b,其示出了pss到rsa引擎(诸如图5a的rsa引擎500)的映射510。例如,pss使用外部哈希引擎511、513使用两轮哈希操作将任意消息长度转换为已知长度。在第二轮哈希操作期间,压缩消息以随机生成的盐值(saltvalue)填充并被发送到哈希引擎513,其中两轮哈希后的压缩消息然后被发送到具有另一个哈希引擎515的rsa引擎,其中该消息经历消息扩展,然后用由相同盐值组成的填充消息进行模加。最终编码的消息是通过将模块化加法输出与原始哈希输入消息一起填充517到rsa引擎而构建。类似地,可以针对pss验证和pkcs数字签名方案的其它模式执行映射。
由于任何现有的pkcs数字签名方案都容易受到使用量子计算机的攻击,因此正在进行各种努力来开发抗量子攻击的数字签名方案。基于结构化的基于哈希的签名的一种此类方案是扩展的merkel签名方案(xmss),其中xmss使用wots+作为密钥生成、签名/验证操作的基础操作,如关于图5c的wots+一次性签名生成技术520所示。例如,wots+操作可涉及16个sha2-256hash函数的67条并行链,每个链都具有秘钥sk[66:0]作为输入,如图5c中所示。
如图所示,链中的每个哈希操作(诸如哈希操作521)示为由使用sha2-256以生成位掩码和密钥的两个伪随机函数组成。位掩码与先前的哈希值进行xor运算,并与密钥相连接,作为第三次sha2-256(3rdsha2-256)哈希操作的输入消息,其中67x32字节的wots公钥pk[66:0]是通过在67个哈希链中对秘钥sk进行哈希生成。对于消息签名,对输入消息进行哈希和预处理,以计算67x4位的值,该值用作索引以选择每个链中的中间哈希值,如关于图5d的wots签名生成技术530所示。在验证期间,该消息再次被哈希以计算签名索引,并进一步计算每个链中剩余的hash操作以计算wots公钥pk,如关于图5e的wots签名验证540所示。该技术与认证路径一起用于计算merkle树的根,并且然后将其与共享公钥pk进行比较以验证消息。如本公开件中将进一步讨论的,加速sha2操作可为xmss提供最大的性能改进。
如将参考图6a、6b和6c进一步描述的,uha320指一种新颖的统一硬件加速器,其驻留在可信平台315或由其托管,该可信平台315与应用处理器312和图形处理器314中的一个或多个通信。在一个实施例中,统一加速机制310促进uha320执行任何相关操作以充当统一硬件加速器,该统一硬件加速器允许针对经典和后量子计算机攻击二者的有效安全性。例如,统一加速机制310包括检测和监视逻辑401;计算和映射逻辑403;提取和附加逻辑405;写入和决策逻辑407;以及通信/兼容性逻辑409。
此外,例如,触发提取和附加逻辑405以从rfbank2提取先前的哈希,并将其与来自rfbank0的位掩码相加,并且然后将任何结果附加至密钥并使用sha2引擎计算哈希。然后,通过写入和决策逻辑407将结果写回到rfbank2,同时确定签名/验证循环是否已经完成。如果签名/验证循环未完成,则写入和决策逻辑407将该过程从addr和seed循环回位掩码的计算,并使用sha引擎将位掩码写入rfbank0。然而,如果签名/验证循环完成,则写入和决策逻辑407将该信息传送到提取和附加逻辑405,以通过dma从rfbank2提取结果。
参考i/o源308,可以预期,实施例不限于任何数量或类型的麦克风441、相机442、扬声器443、显示器444等,用于捕获或呈现数据。例如,如由检测和监视逻辑401所促进的,一个或多个麦克风441可用于同时检测来自诸如扬声器的用户的语音或声音。类似地,如检测和监视逻辑401所促进的,一个或多个相机442可以用于捕获地理位置(无论是在室内还是室外)及其相关联内容(例如家具、电子设备、人类、动物、树木、山脉等)的图像或视频,并形成一组图像或视频流。
此外,输入组件431可以包括任何数量或类型的相机,诸如已知用于捕获媒体(诸如个人媒体)的静止和/或视频红绿蓝(rgb)和/或rgb深度(rgb-d)图像的深度感测相机或捕获设备(例如,realsensetm深度感测相机)。具有深度信息的此类图像已被有效地用于各种计算机视觉和计算摄影效果,诸如(但不限于)场景理解、重新对焦、构图、电影照片等。类似地,例如,显示器可以包括任何数量和类型的显示器,诸如一体式显示器、张量显示器、立体显示器等,包括(但不限于)嵌入式或连接的显示屏、显示设备、投影仪等。
输入组件431可还包括以下一种或多种:振动组件、触觉组件、电导元件、生物度量传感器、化学检测器、信号检测器、脑电图、功能近红外光谱仪、波检测器、力传感器(例如,加速度计)、照明器、眼睛跟踪或凝视跟踪系统、头部跟踪系统等,它们可用于捕获任何数量和类型的视觉数据,诸如图像(例如,照片、视频、电影、音频/视频流等)以及非可视数据,诸如音频流或信号(例如,声音、噪声、振动、超声等)、无线电波(例如无线信号,诸如具有数据、元数据、标志等的无线信号)、化学变化或特性(例如湿度、体温等)、生物度量读数(例如图形打印等)、脑电波、脑循环、环境/天气状况、地图等。可以预期,“传感器”和“检测器”可贯穿本公开件互换引用。进一步预期,一个或多个输入组件431可以还包括用于捕获和/或感测数据的支撑或补充设备中的一个或多个,诸如照明器(例如,ir照明器)、灯具、发生器、声音阻挡器等。
进一步可以预期,在一个实施例中,输入组件431可以包括任何数量和类型的情境传感器(例如,线性加速度计),用于感测或检测任何数量和类型的情境(例如,估计与移动计算设备等相关的地平线、线性加速度等)。例如,输入组件431可以包括任何数量和类型的传感器,诸如(但不限于):加速度计(例如,用于测量线性加速度的线性加速度计等);惯性设备(例如惯性加速度计、惯性陀螺仪、微机电系统(mems)陀螺仪、惯性导航仪等);以及重力梯度仪,以研究和测量由于重力引起的重力加速度的变化等。
此外,例如,输入组件431可以包括(但不限于):音频/视频设备(例如,相机、麦克风、扬声器等);情境感知传感器(例如,温度传感器、可与音频/视频设备的一个或多个相机一起使用的面部表情和特征测量传感器、环境传感器(诸如用于感测背景颜色、光线等);生物度量传感器(诸如用于检测指纹等)、日历维护和读取设备等);全球定位系统(gps)传感器;资源请求者;和/或tee逻辑。tee逻辑可以被单独采用,或者可以是资源请求者和/或i/o子系统等的一部分。输入组件431可以还包括语音识别设备、照片识别设备、面部和其它身体识别组件、语音文本转换组件等。
类似地,输出组件433可以包括具有触觉效应器的动态触觉触摸屏,作为呈现触摸可视化的示例,其中此类实施例可以是超声发生器,该超声发生器可以在空间中发送信号,当该信号到达时,例如,人的手指会引起触觉或手指上的类似感觉。此外,例如并且在一个实施例中,输出组件433可以包括(但不限于)光源、显示设备和/或屏幕、音频扬声器、触觉组件、电导元件、骨传导扬声器、嗅觉或气味视觉和/或非视觉呈现设备、触觉或触摸视觉和/或非视觉呈现设备、动画显示设备、生物度量显示设备、x射线显示设备、高分辨率显示器、高动态范围显示器、多视图显示器和用于虚拟现实(vr)和增强现实(ar)中的至少一种的头戴式显示器(hmd)等中的一个或多个。
通信/兼容性逻辑409可以用于促进各种组件、网络、数据库425和/或通信介质430等与任何数量和类型的其它计算设备(诸如可穿戴计算设备、移动计算设备、台式计算机、服务器计算设备等)、处理设备(例如中央处理单元(cpu)、图形处理单元(gpu)等)、捕获/传感组件(例如非视觉数据传感器/检测器,诸如音频传感器、嗅觉传感器、触觉传感器、信号传感器、振动传感器、化学物质检测器、无线电波检测器、力传感器、天气/温度传感器、人体/生物传感器、扫描仪等,以及视觉数据传感器/检测器,诸如相机等)、用户/情境感知组件和/或标识/验证传感器/设备(诸如生物度量传感器/检测器、扫描仪等)、存储器或存储设备、数据源和/或数据库(诸如数据存储设备、硬盘驱动器、固态驱动器、硬盘、存储卡或设备、存储器电路等)、网络(例如,云网络、互联网、物联网、内联网、蜂窝网络、邻近网络,诸如蓝牙、低功耗蓝牙(ble)、蓝牙智能、wi-fi邻近、射频识别、近场通信、人体局域网等)、无线或有线通信以及相关协议(例如wimax、以太网等)、连接和位置管理技术、软件应用/网站(例如社交和/或商业联网网站、商业应用、游戏和其它娱乐应用等)、编程标准等之间的动态通信和兼容性,同时确保与变化的技术、参数、协议、标准等的兼容性。
贯穿本公开件,如“逻辑”、“组件”、“模块”、“框架”、“引擎”、“工具”、“电路”等的术语可以互换使用,并且包括例如软件、硬件、固件和/或其任何组合。在一个示例中,“逻辑”可以指代或包括与诸如计算设备300的计算设备的操作系统、图形驱动器等中的一个或多个一起工作的软件组件。在另一示例中,“逻辑”可以指代或包括能够与诸如计算设备300的计算设备的一个或多个系统硬件元件(诸如应用处理器、图形处理器等)一起或作为其一部分而被物理安装的硬件组件。在另一个实施例中,“逻辑”可以指代或包括能够作为诸如计算设备300的计算设备的系统固件(诸如应用处理器或图形处理器等的固件)的一部分的固件组件。
此外,对任何特定品牌、单词、术语、短语、名称和/或缩写(诸如“统一硬件加速器”、“uha”、“统一加速器”、“ua”、“经典签名方案或攻击”、“后量子签名方案或攻击”、“rsa”、“xmss”、“哈希引擎”、“计算”、“提取”、“附加”、“写入”、“创建”、“训练”、“推理”、“分类”、“估计”、“realsensetm相机”、“实时”、“自动”、“动态”、“用户界面”、“相机”、“传感器”、“麦克风”、“显示屏”、“扬声器”、“验证”、“认证”、“隐私”、“用户”、“用户个人资料”、“用户偏好”、“发送方”、“接收方”、“个人设备”、“智能设备”、“移动计算机”、“可穿戴设备”、“iot设备”、“邻近网络”、“云网络”、“服务器计算机”等)的使用不应理解为将实施例限制为在产品或本公开件外部文献中带有该标签的软件或设备。
图6a示出了根据一个实施例的图3的uha320的组织方案。为了简洁起见,下面将不再讨论或重复先前参考图1-5e提及或讨论的许多细节。示出的实施例呈现了uha320的组织设置,其映射了经典和后量子数字签名方案,通过例如减少30%的物理面积相对于传统的单独硬件实现方式显著改善。在一个实施例中,所示的uha320由与经典的pkcsfsm603并行的xmss有限状态机(fsm)601组成,其中基于可以基于应用进行编程的选择位来选择状态机。此外,如图所示,两个状态机601、603被示为使用模式选择位(“模式”)605与sha或哈希引擎607进行通信,并使用dma613a、613b、613c通信到寄存器文件库609上。
在一个实施例中,该新颖的uha320包括单个哈希607引擎,而不是基线设计中的两个引擎,从而提供了附加面积节省。为了确保哈希引擎607可用于执行独立哈希操作,提供了dma613a、613b、613c以绕过pkcs数据路径。此外,相对于传统的pkcs方案,任何输入数据都要经历必要的哈希处理,并且然后写入寄存器文件库中,并在rsa引擎中经历模块化求幂。任何结果都会写回到寄存器文件库609处的寄存器文件中,并可以通过dma613a、613b、613c读出,其中寄存器文件库609还可以直接访问存储器以填充所需内容,诸如明文、秘钥、配置位等。该结果也通过模块化求幂引擎611进行模块求幂,并循环返回到寄存器文件库609。
在一个实施例中,如关于图6c所示,图6b的哈希操作621、623、625依次执行,通过对应的映射事务651、653、655将任何所得的输出分别映射到并写入单独的rf库。例如,在第三映射事务655期间,先前的哈希消息671从rfbank2665读取,并添加有存储在rfbank0661中的位掩码673,填充有存储在rfbank1663中的密钥675,并发送至哈希引擎679(诸如sha2),其中该哈希引擎679的输出被写回到rfbank2665。
在一个实施例中,具有单独的库661、663、665减少了读取等待时间,使得所需的输入被同时读取。例如,图6b的wots+节点620中的签名大小包括67个条目,其中每个条目为32字节宽。xmss中的认证路径可能需要输入10个条目×32字节的大小,并且因此总存储量可能是77个条目×32字节的大小。rsa引擎中的rf可能由256个条目组成,每个条目是16个字节宽。因此,图6b的wots+节点620可以被映射到rf库中的154个条目,而无需任何附加存储器。
图6d示出根据一个实施例的用于使用图3的uha320和统一加速机制310来执行和映射经典和后量子操作的方法680。为了简洁起见,下文中将不再讨论或重复先前参考图1-6c提及或讨论的许多细节。此外,可以预期,具有该附图和其它图示的任何过程或事务可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑等)、软件(诸如在处理设备上运行的指令)或其组合,如图1的统一加速机制110和/或uha320所促进的。为了简洁起见,可以线性顺序说明或叙述与该图示和其它图示相关的任何过程或事务;然而,可以预期,可以并行、异步或以不同顺序执行其中的任何数量。
如本申请中所使用的,术语“系统”和“组件”以及“模块”旨在指与计算机有关的实体,可以是硬件、硬件和软件的组合、软件或正在执行的软件,示例性计算架构700提供了其示例。例如,组件可以是但不限于在处理器上运行的进程、处理器、硬盘驱动器或固态驱动器(ssd)、多个(光和/或磁存储介质的)存储驱动器、对象、可执行文件、执行线程、程序和/或计算机。作为说明,在服务器上运行的应用和服务器二者都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。此外,组件可以通过各种类型的通信介质彼此通信地耦合以协调操作。协调可以涉及信息的单向或双向交换。例如,组件可以以在通信介质上传送的信号的形式传送信息。该信息可以被实现为分配给各种信号线的信号。在此类分配中,每个消息都是信号。然而,其它实施例可以可替代地采用数据消息。此类数据消息可以横跨各种连接发送。示例性连接包括并行接口、串行接口和总线包括各种常见的计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(i/o)组件、电源等。然而,实施例不限于由计算架构700实现。
系统700的实施例可以包括或结合在基于服务器的游戏平台、包括游戏和媒体控制台的游戏控制台、移动游戏控制台、手持游戏控制台或在线游戏控制台内。在一些实施例中,系统700是移动电话、智能电话、平板计算设备或移动互联网设备。数据处理系统700还可包括可穿戴设备,与可穿戴设备耦合或集成在可穿戴设备内,诸如智能手表可穿戴设备、智能眼镜设备、增强现实设备或虚拟现实设备。在一些实施例中,数据处理系统700是电视或机顶盒设备,其具有一个或多个处理器702以及由一个或多个图形处理器708生成的图形界面。
在一些实施例中,该一个或多个处理器702各自包括一个或多个处理器核心707以处理指令,该指令在被执行时执行针对系统和用户软件的操作。在一些实施例中,一个或多个处理器核心707中的每个核心被配置为处理特定指令集709。在一些实施例中,指令集709可以促进复杂指令集计算(cisc)、精简指令集计算(risc)或经由超长指令字(vliw)的计算。多个处理器核心707可以各自处理不同的指令集709,该指令集709可以包括促进对其它指令集的仿线还可包括其它处理设备,诸如数字信号处理器(dsp)。
在一些实施例中,处理器702包括高速缓冲存储器704。取决于架构,处理器702可具有单个内部高速缓存或多层内部高速缓存。在一些实施例中,高速缓存存储器在处理器702的各个组件之间共享。在一些实施例中,处理器702还使用外部高速缓存(例如,三级(l3)高速缓存或最后一级高速缓存(llc))(未示出),其可以使用已知的高速缓存一致性技术在处理器核心707之间共享。寄存器文件706另外包括在处理器702中,该处理器702可以包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器)。一些寄存器可以是通用寄存器,而其它寄存器可以特定于处理器702的设计。
在一些实施例中,一个或多个处理器702与一个或多个接口总线与系统中的其它组件之间传输通信信号,诸如地址、数据或控制信号。在一个实施例中,接口总线可以是处理器总线,诸如直接媒体接口(dmi)总线的版本。然而,处理器总线不限于dmi总线,并且可以包括一个或多个外围组件互连总线(例如,pci、pciexpress)、存储器总线或其它类型的接口总线。在一个实施例中,处理器702包括集成存储器控制器716和平台控制器集线的其它组件之间的通信,而平台控制器集线经由本地i/o总线提供到i/o设备的连接。
存储器设备720可以是动态随机存取存储器(dram)设备、静态随机存取存储器(sram)设备、闪存设备、相变存储器设备或具有适当性能以用作过程存储器的一些其它存储器设备。在一个实施例中,存储器设备720可以作为用于系统700的系统存储器操作,以存储数据722和指令721,以在一个或多个处理器702执行应用或进程时使用。存储器控制器集线还与可选的外部图形处理器712耦合,该外部图形处理器712可以与处理器702中的一个或多个图形处理器708通信以执行图形和媒体操作。在一些实施例中,显示设备711可以连接到处理器702。显示设备711可以是如在移动电子设备或膝上型计算机设备中的内部显示设备或者经由显示接口(例如displayport等)附接的外部显示设备中的一个或多个。在一个实施例中,显示设备711可以是头戴式显示器(hmd),诸如用于虚拟现实(vr)应用或增强现实(ar)应用中的立体显示设备。
在一些实施例中,平台控制器集线使外围设备能够经由高速i/o总线。i/o外围设备包括但不限于音频控制器746、网络控制器734、固件接口728、无线(例如,硬盘驱动器、闪存等)。数据存储设备724可以经由存储接口(例如,sata)或经由外围总线(诸如外围组件互连总线(例如,pci、pciexpress))连接。触摸传感器725可以包括触摸屏传感器、压力传感器或指纹传感器。无线可以是wi-fi收发机、蓝牙收发机或诸如3g、4g、长期演进(lte)或5g收发机的移动网络收发机。固件接口728实现与系统固件的通信,并且可以是例如统一的可扩展固件接口(uefi)。网络控制器734可以启用到有线网络的网络连接。在一些实施例中,高性能网络控制器(未示出)与接口总线耦合。在一个实施例中,音频控制器746是多通道高清晰度音频控制器。在一个实施例中,系统700包括可选的遗留i/o控制器740,用于将遗留(例如,个人系统2(ps/2))设备耦合到系统。平台控制器集线还可以连接到一个或多个通用串行总线,以连接输入设备,诸如键盘和鼠标743组合、相机744或其它usb输入设备。
附图和以上描述给出了实施例的示例。本领域技术人员将理解,所描述的元件中的一个或多个可以很好地组合成单个功能元件。可替代地,某些元件可以被分成多个功能元件。来自一个实施例的元件可以被添加到另一实施例。例如,本公开描述的过程的顺序可以改变,并且不限于本公开描述的方式。此外,任何流程图的动作都不需要按照所示的顺序执行;也不必必须执行所有动作。此外,不取决于其它动作的那些动作可以与其它动作并行地执行。实施例的范围绝不受这些具体示例限制。无论是否在说明书中明确给出,许多变化都是可能的,诸如结构、尺寸和材料使用上的差异。实施例的范围至少与所附权利要求书所给的范围一样宽。
实施例可以被提供为例如一种计算机程序产品,该计算机程序产品可以包括一种或多种暂态或非暂态机器可读存储介质,其上存储有机器可执行指令,该机器可执行指令当由诸如计算机、计算机网络或其它电子设备的一个或多个机器执行时,可导致一个或多个机器执行根据本公开所述实施例的操作。机器可读介质可以包括但不限于软盘、光盘、cd-rom(压缩光盘只读存储器)和磁光盘、rom、ram、eprom(可擦可编程只读存储器)、eeprom(电可擦可编程只读存储器)、磁卡或光卡、闪存或适于存储机器可执行指令的其它类型的介质/机器可读介质。
以下条款和/或示例涉及另外的实施例或示例。在一个或多个实施例中的任何地方都可以使用示例中的细节。可以将不同实施例或示例的各种特征与包括的一些特征和排除的其它特征进行各种组合,以适应各种不同的应用。示例可以包括诸如方法的主题、用于执行该方法的动作的部件、至少一个机器可读介质,该至少一个机器可读介质包括指令,该指令当由机器执行时,使机器执行根据本公开所述的实施例和示例的用于促进混合通信的方法、装置或系统的动作。
附图和前述描述给出了实施例的示例。本领域技术人员将理解,所描述的元件中的一个或多个可以很好地组合成单个功能元件。可替代地,某些元件可以被分成多个功能元件。来自一个实施例的元件可以被添加到另一实施例。例如,本公开描述的过程的顺序可以改变,并且不限于本公开描述的方式。此外,任何流程图的动作都不需要按照所示的顺序执行;也不必必须执行所有动作。此外,不取决于其它动作的那些动作可以与其它动作并行地执行。实施例的范围绝不受这些具体示例限制。无论是否在说明书中明确给出,许多变化都是可能的,例如结构、尺寸和材料使用上的差异。实施例的范围至少与所附权利要求书所给的范围一样宽。