一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

明文完整性保护机制的制作方法

2022-02-24 12:15:34 来源:中国专利 TAG:


1.本文描述的实施例总体涉及数据处理,更具体地说,涉及促进用于计算环境中的链路加密的明文完整性保护。


背景技术:

2.当前对中央处理单元(cpu)与管芯外设备之间的链路上的高级别的机密性和数据完整性有很高的需求。传统的技术利用基于高级加密标准-galois/计数器模式(aes-gcm)的标准密码构造来确保数据的机密性和完整性。aes-gcm限于为在链路上传送的加密数据(例如,密文)提供完整性。然而,aes-gcm和类似技术当在加密和/或解密中存在随机或恶意错误时不保证解密明文的完整性。此外,现有的链路协议不具有任何可以重新用于传输附加明文认证信息的预留空间。
附图说明
3.在附图的各图中通过示例而非限制的方式示出了实施例,其中,相似的附图标记指代相似的要素。
4.图1示出了根据一个实施例的计算设备。
5.图2示出了根据一个实施例的安全环境的高层次架构。
6.图3示出了根据一个实施例的明文完整性保护机制。
7.图4示出了根据一个实施例的组合式认证标签。
8.图5是示出了用于执行用于链路加密的明文完整性保护的处理的一个实施例的流程图。
9.图6示出了根据一些实施例的启用针对对抗性攻击的增强保护的说明性电子计算设备的示意图。
10.图7示出了根据一个实施例的能够支持和实现一个或多个实施例的计算机设备。
11.图8使出了根据一个实施例的能够支持和实现一个或多个实施例的计算环境。
具体实施方式
12.在以下描述中,阐述了许多具体细节。然而,可以在没有这些具体细节的情况下实践本文描述的实施例。在其他情况下,没有详细示出众所周知的电路、结构和技术,以免掩盖对本描述的理解。
13.实施例提供用于计算环境中的链路加密的明文完整性保护的技术。
14.对“一个实施例”、“实施例”、“示例实施例”、“各种实施例”等的引用,表示如此描述的实施例可以包括特定特征、结构或特性,但是并非每一个实施例必然包括该特定特征、结构或特性。此外,一些实施例可以具有针对其他实施例描述的一些特征、全部特征,或者没有这些特征。
15.在以下描述和权利要求中,可能使用了术语“耦合”及其派生词。“耦合”用以表示
两个或更多个要素相互协作或相互交互,但是它们在其之间可以具有或可以不具有介入的物理部件或电气部件。
16.如在权利要求中使用的,除非另有说明,否则使用序数形容词“第一”、“第二”、“第三”等来描述共同要素,仅表示类似要素的不同实例被提及,并不意图暗示如此描述的要素在时间上、空间上、等级上或以任何其他方式必须处于给定的顺序。
17.图1示出了计算设备100的一个实施例。如图1所示,计算设备100可以托管明文完整性保护机制110。根据一个实施例,计算设备100包括托管集成电路(“ic”)(例如,片上系统(“soc”或“soc”))的计算机平台,片上系统将计算设备100的各种硬件部件和/或软件部件集成在单个芯片上。
18.计算设备100代表通信和数据处理设备,包括或代表任何数量和类型的智能设备,例如(但不限于)智能命令设备或智能个人助理、家庭/办公室自动化系统、家用电器(例如,洗涤机器、电视机等)、移动设备(例如,智能手机、平板计算机等)、游戏设备、手持设备、可穿戴设备(例如,智能手表、智能手环等)、虚拟现实(vr)设备、头戴式显示器(hmd)、物联网(iot)设备、膝上型计算机、台式计算机、服务器计算机、机顶盒(例如,基于互联网的有线电视机顶盒等)、基于全球定位系统(gps)的设备等。
19.在一些实施例中,计算设备100可以包括(但不限于)自主机器或人工智能代理,例如机械代理或机器、电子代理或机器、虚拟代理或机器、机电代理或机器等。自主机器或人工智能代理的示例可以包括(但不限于)机器人、自主车辆(例如,自动驾驶汽车、自动飞行飞机、自动航行船只等)、自主设备(自动操作的建造车辆、自动操作的医疗设备等)等。此外,“自主车辆”不限于汽车,而是它们可以包括任何数量和类型的自主机器,例如机器人、自主设备、家用自主设备等,并且与这种自主机器有关的任何一个或多个任务或操作可以与自主驾驶互换地引用。
20.此外,例如,计算设备100可以包括由多个服务器计算机组成的云计算平台,其中,每个服务器计算机采用或托管多功能感知器机制。例如,可以使用本文档前面描述的部件、系统和架构设置来执行自动isp调整。例如,一些上述类型的设备可以用以例如使用现场可编程门阵列(fpga)等实现自定义学习过程。
21.如图所示,在一个实施例中,计算设备100可以包括任何数量和类型的硬件部件和/或软件部件,例如(但不限于)图形处理单元114(“gpu”或简单地说“图形处理器”)、图形驱动程序116(也称为“gpu驱动程序”、“图形驱动程序逻辑”、“驱动程序逻辑”、用户模式驱动程序(umd)、umd、用户模式驱动程序框架(umdf)、umdf,或者简单地说“驱动程序”)、中央处理单元112(“cpu”或简单地说“应用处理器”)、存储器108、网络设备、驱动器等,以及输入/输出(i/o)源104,例如触摸屏、触摸面板、触摸板、虚拟键盘或常规键盘、虚拟鼠标或常规鼠标、端口、连接器等。计算设备100可以包括用作计算设备100的硬件和/或物理资源与用户之间的接口的操作系统(os)106。
22.应当理解,对于某些实施方式,比上述示例更少或更多配备的系统可能是优选的。因此,计算设备100的配置可以根据多种因素(例如,价格约束、性能要求、技术改进或其他情况)随实现方式而变化。
23.实施例可以被实现为以下任一者或其组合:使用母板互连的一个或多个微芯片或集成电路、硬连线逻辑、由存储器设备存储并由微处理器执行的软件、固件、专用集成电路
(asic)和/或现场可编程门阵列(fpga)。例如,术语“逻辑”、“模块”、“部件”、“引擎”和“机制”可以包括例如软件或硬件和/或其组合(例如,固件)。
24.在一个实施例中,如图所示,明文完整性保护机制110可以由计算设备100的存储器108托管。在另一实施例中,明文完整性保护机制110可以由计算设备100的操作系统106托管,或者为其一部分。在另一实施例中,明文完整性保护机制110可以由图形驱动程序116托管或促进。在又一实施例中,明文完整性保护机制110可以由图形处理单元114(“gpu”或简单地说图形处理器)或图形处理器114的固件托管,或者为其一部分。例如,明文完整性保护机制110可以嵌入在图形处理器114的处理硬件中,或者实现为其一部分。类似地,在又一实施例中,明文完整性保护机制110可以由中央处理单元112(“cpu”或简单地说“应用处理器”)托管,或者为其一部分。例如,明文完整性保护机制110可以嵌入在应用处理器112的处理硬件中,或者实现为其一部分。
25.在又一实施例中,明文完整性保护机制110可以由计算设备100的任何数量和类型的部件托管或者为其一部分,例如明文完整性保护机制110的一部分可以由操作系统106托管或者为其一部分,另一部分可以由图形处理器114托管或者为其一部分,另一部分可以由应用处理器112托管或者为其一部分,而明文完整性保护机制110的一个或多个部分可以由操作系统106和/或计算设备100的任何数量和类型的设备托管或为其一部分。可以预见,实施例不限于明文完整性保护机制110的特定实现方式或托管,并且明文完整性保护机制110的一个或多个部分或组件可以被采用或实现为硬件、软件或其任何组合(例如,固件)。
26.计算设备100可以托管网络接口以提供对网络的接入,例如lan、广域网(wan)、城域网(man)、个域网(pan)、蓝牙、云网络、移动网络(例如,第三代(3g)、第四代(4g)等)、内联网、互联网等。网络接口可以包括例如具有天线(其可以代表一个或多个天线)的无线网络接口。网络接口还可以包括例如用于经由网络线缆与远端设备进行通信的有线网络接口,网络线缆可以是例如以太网线缆、同轴线缆、光纤线缆、串行线缆或并行线缆。
27.实施例可以被提供为例如计算机程序产品,该计算机程序产品可以包括一个或多个机器可读介质,机器可读介质上存储有机器可执行指令,指令当由一个或多个机器(例如,计算机、计算机网络或其他电子设备)执行时,可以使得该一个或多个机器根据本文描述的实施例运行操作。机器可读介质可以包括但不限于软盘、光盘、cd-rom(光盘只读存储器)和磁光盘、rom、ram、eprom(可擦除可编程只读存储器)、eeprom(电可擦除可编程只读存储器)、磁卡或光卡、闪存,或者其他类型的适合用于存储机器可执行指令的介质/机器可读介质。
28.此外,实施例可以作为计算机程序产品被下载,其中,程序可以经由通信链路(例如,调制解调器和/或网络连接),通过体现在载波或其他传播介质中和/或由其调制的一个或多个数据信号,从远端计算机(例如,服务器)传送到请求计算机(例如,客户端)。
29.在整个文件中,术语“用户”可以可互换地称为“观看者”、“观察者”、“说话者”、“人”、“个人”、“终端用户”等。应当注意,在整个文件中,像“图形域”之类的术语可以与“图形处理单元”、“图形处理器”或简单地说“gpu”可互换地引用,类似地,“cpu域”或“托管域”可以与“计算机处理单元”、“应用处理器”或简单地说“cpu”可互换地引用。
30.应当注意,在整个本文件中可以可互换地使用像“节点”、“计算节点”、“服务器”、“服务器设备”、“云计算机”、“云服务器”、“云服务器计算机”、“托管机器”、“设备”、“计算设
备”、“计算机”、“计算系统”等术语。还应当注意,在整个本文件中可以可互换使用像“应用”、“软件应用”、“程序”、“软件程序”、“包”、“软件包”等术语。此外,在整个本文件中可以可互换地使用像“作业”、“输入”、“请求”、“消息”等术语。
31.参照图2,它示出了根据一个实施例的安全环境200的高层次架构,安全环境200包括第一设备210和第二设备250,其中,每个设备210、250托管明文完整性保护机制。参照图2,第一设备210和第二设备250中的每一个都可以体现为任何类型的能够执行本文描述的功能的计算设备,例如图1的计算设备100。例如,在一些实施例中,第一设备210和第二设备250中的每一个都可以体现为膝上型计算机、平板计算机、笔记本、上网本、ultrabook
tm
、智能手机、蜂窝电话、可穿戴计算设备、个人数字助理、移动互联网设备、台式计算机、路由器、服务器、工作站和/或任何其他计算/通信设备。
32.如图所示,图2提供了与图1中所示的实施例不同的另一实施例,其中,这里在图2中,明文完整性保护机制110被包括在通过通信链路290进行通信的设备210、250两者中。如图所示,在实施例中,明文完整性保护机制110被示为分别由第一设备210处的密码逻辑240和第二设备250处的密码逻辑280托管。
33.第一设备210包括一个或多个处理器220和用于存储私钥224的存储器222。处理器220可以体现为任何类型的能够执行本文描述的功能的处理器。例如,处理器220可以体现为单核或多核处理器、数字信号处理器、微控制器或者其他处理器或处理/控制电路。类似地,存储器222可以体现为任何类型的能够执行本文描述的功能的易失性或非易失性存储器或者数据存储。在操作中,存储器222可以存储在第一设备210的操作期间使用的各种数据和软件,例如操作系统、应用、程序、库和驱动程序。存储器222通信地耦合到处理器220。在一些示例中,私钥224可以驻留在安全存储器中,该安全存储器可以是存储器222的一部分,或者可以与存储器222分离。
34.第一设备210还包括认证逻辑230,认证逻辑230包括散列逻辑232、签名逻辑234和验证逻辑236。散列逻辑232被配置为:对消息(m)进行散列化(即,向消息应用散列函数),以生成消息m的散列值(m’)。散列函数可以包括但不限于安全散列函数,例如安全散列算法sha2-256和/或sha3-256等。sha2-256可以符合和/或兼容于以下标准:联邦信息处理标准(fips)出版物180-4,标题为:“secure hash standard(shs)”,由国家标准与技术研究院(nist)于2012年3月发布,和/或该标准的后续版本和/或相关版本。sha3-256可以符合和/或兼容于fips出版物202,标题为:“sha-3standard:permutation-based hash and extendable-output functions”,由nist于2015年8月发布,和/或该标准的后续版本和/或相关版本。
35.签名逻辑234可以被配置为:生成要发送的签名(即,发送的签名),和/或验证签名。在第一设备210是签署设备的情况下,发送的签名可以包括多个(l个)发送的签名元素,其中,每个发送的签名元素对应于相应的消息元素。例如,对于每个消息元素mi,签名逻辑234可以被配置为:对私钥sk的每个私钥元素s
ki
执行选定的签名操作,相应的执行次数与消息代表m’中所包括的每个消息元素mi的值相关。例如,签名逻辑234可以被配置为:向对应的私钥元素s
ki
应用选定的散列函数mi次。在另一示例中,签名逻辑234可以被配置为:向对应的私钥元素s
ki
应用选定的链函数(其包含散列函数)mi次。因此,选定的签名操作可以对应于选定的基于散列的签名方案。
36.基于散列的签名方案可以包括但不限于winternitz(w)一次性签名(ots)方案、增强的winternitz ots方案(例如,wots )、merkle多次签名方案、扩展的merkle签名方案(xmss)和/或扩展的merkle多树签名方案(xmss-mt)等。散列函数可以包括但不限于sha2-256和/或sha3-256等。例如,xmss和/或xmss-mt可以符合或兼容于一个或多个互联网工程任务组(ietf.rtm.)发布的请求评论(rfc),例如rfc 8391,标题为smss:extended merkel signature scheme,2018年5月公布。
37.winternitz ots被配置为:生成签名,并利用散列函数验证接收到的签名。winternitz ots还被配置为:使用私钥,并且因此使用每个私钥元素s
ki
一次。例如,winternitz ots可以被配置为:将散列函数应用于每个私钥元素mi或n-mi次以生成签名,并将散列函数应用于每个接收到的消息元素n-m
i'
或m
i'
次以生成对应的验证签名元素。merkle多次签名方案是利用ots的基于散列的签名方案,并且可以使用私钥多于一次。例如,merkle签名方案可以利用winternitz ots作为一次性签名方案。wots 被配置为:利用散列函数族和链函数。
38.xmss、wots 和xmss-mt是利用链函数的基于散列的签名方案的示例。每个链函数被配置为封装对散列函数的多个调用,并且可以进一步执行附加操作。链函数中所包括的对散列函数的调用次数可以是固定的。链函数可以提高关联的基于散列的签名方案的安全性。如本文所述的基于散列的签名平衡可以类似地平衡链函数操作。
39.密码逻辑240被配置为:代表签署设备210执行各种密码和/或安全功能。在一些实施例中,密码逻辑240可以体现为密码引擎(或密码电路)、签署设备210的独立的安全协处理器、并入处理器220中的密码加速器、或独立软件/固件。在一些实施例中,密码逻辑240可以生成和/或利用各种密码密钥(例如,对称/非对称密码密钥)来促进加密、解密、签署和/或签名验证。此外,在一些实施例中,密码逻辑240可以促进通过通信链路与远端设备建立安全连接。还应当理解,在一些实施例中,密码逻辑240和/或第一设备210的另一模块可以建立可信执行环境或安全飞地,在可信执行环境或安全飞地内可以存储本文描述的一部分数据和/或可以执行本文描述的多个功能。
40.在如上所述那样生成签名之后,接着可以由第一设备210(例如,经由通信逻辑242)经由网络通信链路290将消息m和签名发送到第二设备250。在实施例中,在发送之前可以不对消息m进行加密。在另一实施例中,在发送之前可以对消息m进行加密。例如,可以由密码逻辑240对消息m进行加密,以产生加密的消息。
41.第二设备250也可以包括一个或多个处理器260和用于存储公钥264的存储器262。如上所述,处理器260可以体现为任何类型的能够执行本文描述的功能的处理器。例如,处理器260可以体现为单核或多核处理器、数字信号处理器、微控制器或者其他处理器或处理/控制电路。类似地,存储器262可以体现为任何类型的能够执行本文描述的功能的易失性或非易失性存储器或数据存储。在操作中,存储器262可以存储在第二设备250的操作期间使用的各种数据和软件,例如操作系统、应用、程序、库和驱动程序。存储器262通信地耦合到处理器260。
42.在一些示例中,可以在先前交换中将公钥264提供给计算设备250。公钥pk被配置为包含多个(l个)公钥元素,即pk=[p
k1
,...,p
kl
]。公钥264可以被存储到例如存储器262。
[0043]
第二设备250还包括认证逻辑270,认证逻辑270包括散列逻辑272、签名逻辑274和
验证逻辑276。如上所述,散列逻辑272被配置为:对消息(m)进行散列化(即,将散列函数应用于消息m),以生成散列消息(m’)。散列函数可以包括但不限于安全散列函数,例如安全散列算法sha2-256和/或sha3-256等。sha2-256可以负荷和/或兼容于联邦信息处理标准(fips)出版物180-4,标题为:“secure hash standard(shs)”,由国家标准与技术研究院(nist)于2012年3月发布,和/或该标准的后续版本和/或相关版本。sha3-256可以符合和/或兼容于fips出版物202,标题为:“sha-3standard:permutation-based hash and extendable-output functions”,由nist于2015年8月发布,和/或该标准的后续版本和/或相关版本。
[0044]
在第二设备是验证设备的情况下,认证逻辑270被配置为:至少部分地基于从第一设备接收到的签名,并且至少部分地基于接收到的消息代表(m’),生成验证签名。例如,认证逻辑270可以被配置为:执行相同的签名操作,即,将与认证逻辑230的散列逻辑232所应用的相同的散列函数或链函数应用于每个接收到的消息元素一次数n-m
i'
(或m
i'
),以产生验证消息元素。然后,可以确定验证签名,即l个验证消息元素中的每一个是否对应于对应的公钥元素p
ki
。例如,验证逻辑276可以被配置为:将每个验证消息元素与对应的公钥元素p
ki
进行比较。如果每个验证消息元素与对应的公钥元素p
ki
匹配,则验证对应于成功。换言之,如果所有的验证消息元素都与公钥元素p
k1
,.....,p
kl
匹配,则验证对应于成功。如果任何验证消息元素与对应的公钥元素p
ki
不匹配,则验证对应于失败。
[0045]
在一些示例中,第一设备210的认证逻辑230包括一个或多个加速器238,加速器238与散列逻辑232、签名逻辑234和/或验证逻辑236协作以加速认证操作。类似地,在一些示例中,第二设备250的认证逻辑270包括一个或多个加速器278,加速器278与散列逻辑272、签名逻辑274和/或验证逻辑276协作以加速认证操作。在以下段落中并参照附图描述加速器的示例。
[0046]
环境200的各种模块可以体现为硬件、软件、固件或其组合。例如,环境200的各种模块、逻辑和其他部件可以形成第一设备210的处理器220或第二设备250的处理器260或设备的其他硬件部件的一部分,或者可以由第一设备210的处理器220或第二设备250的处理器260或设备的其他硬件部件以其他方式建立。因此,在一些实施例中,环境200的一个或多个模块可以体现为电路或电气设备的集合(例如,认证电路、密码电路、通信电路、签名电路和/或验证电路)。此外,在一些实施例中,一个或多个说明性模块可以形成另一模块的一部分,和/或一个或多个说明性模块可以彼此独立。
[0047]
如上所述,对cpu与管芯外设备之间的链路(例如,外围组件快速互连(pcie)、cxl等端点)上的高级别的机密性和数据完整性存在需求。当前用于链路加密的aes-gcm为在链路上传送的加密数据提供完整性保护。不幸的是,aes-gcm只为在链路上传送的加密数据(密文)提供完整性,但当在加密和/或解密中存在随机错误或恶意错误时不保证解密的明文的完整性。此外,现有的链路协议(例如,cxl ide)不具有可以重新用于传输附加明文认证信息的任何预留空间。
[0048]
根据一个实施例,明文完整性保护机制110生成aes-gcm认证标签,该认证标签被实现为为明文和密文两者提供完整性保护。在这样的实施例中,明文完整性保护机制110为明文生成附加认证标签,附加认证标签与密文的加密(或解密)并行(或同时)计算。在另外的实施例中,明文完整性保护机制110组合gcm密文认证标签和附加明文认证标签,以生成
组合式认证标签。在该实施例中,组合式认证标签与现有标准兼容,并被配置为与现有标准对齐。
[0049]
图3示出了明文完整性保护机制110的一个实施例。如图3所示,明文完整性保护机制110包括密文生成逻辑312。在一个实施例中,密文生成逻辑312为顺序编号的块生成密文。在这样的实施例中,将每个块编号与初始化向量(iv)组合,并用块密码(例如,aes)进行加密。随后,使用加密结果和明文执行异或(xor)操作,以生成密文。如本文所使用的,明文被定义为未加密的数据。
[0050]
明文完整性保护机制110还包括ghash逻辑314,ghash逻辑314被实现为:对密文的块执行ghash函数,并对结果进行加密以生成密文认证标签(或外部标签)。在一个实施例中,ghash函数由以下定义:
[0051]
ghash(h,a,c)=x
m n 1

[0052]
其中,h=ek(0
128
)是散列密钥,使用块密码加密的128个零位字符串,a是仅经过认证(未加密)的数据,c是密文,m是a中的128位块的数量(向上取整),n是c中的128位块的数量(向上取整),以及变量xi(对于i=0,...,m n 1)。
[0053]
在一个实施例中,ghash逻辑314还被实现为:对被实现以生成密文的明文执行ghash函数,并对结果进行加密,以便生成明文认证标签。在这样的实施例中,明文ghash函数使用不同的认证密钥(kp)来导出hp,其中,hp=ciph
kp
(0
128
)=aes
kp
(0
128
)。附加密钥kp可以是算法的新输入,或者可以从原始aes-gcm密钥经由合适的密钥导出函数来导出。在另外的实施例中,与生成密文验证标签并行地生成明文验证标签。
[0054]
组合逻辑316组合明文认证标签和密文认证标签,以生成组合式认证标签。在一个实施例中,组合式认证标签具有符合现有的aes-gcm标准认证标签的标签长度。在这样的实施例中,给定用于标准aes-gcm构造的t位总标签长度和用于密文认证标签的l位标签长度,明文认证标签包括(t

l)位。在另外的实施例中,组合逻辑316可以通过执行xor操作来组合明文认证标签和密文认证标签。
[0055]
图4示出了组合式认证标签的一个实施例。如图4所示,右边包括标准aes-gcm标签构造,而左边呈现附加的明文认证标签,其为明文的galois消息认证码(gmac)。具有t位长度的最终标签是通过级联来自外部标签的l位和来自内部标签的(t

l)位来构造的。当前的链路协议使用具有96位标签的aes-gcm,当前的协议中没有地方用于额外的标签位。因此,外部标签和内部标签的长度被限制为组合的96位。
[0056]
图5是示出了用于执行用于链路加密的明文完整性保护的处理的一个实施例的流程图。在处理框505,接收明文。在处理框510,使用明文生成密文。如上所述,通过使用加密的结果和明文执行xor操作来生成密文。在处理框520和530,分别生成明文认证标签和密文认证标签。如前所述,明文认证标签和密文认证标签是通过并行地对明文和密文执行ghash函数来生成的。然而,在其他实施例中,可以顺序地执行ghash函数。在处理框540,将明文认证标签和密文认证标签组合,以生成组合式认证标签。
[0057]
上述这个机制满足当前关于当在明文上存在随机错误和/或恶意错误时从存储器恢复数据或通过链路传输数据的机密性和完整性的要求。此外,该机制能够符合aes-gcm,能够重用现有的ghash硬件,并且在链路性能上没有劣化或仅有可忽略的劣化,其中,大部分认证可以与任何解密处理并行完成。
[0058]
图6是根据一些实施例的启用针对对抗性攻击的增强保护的说明性电子计算设备的示意图。在一些实施例中,计算设备700包括一个或多个处理器710,处理器710包括一个或多个处理器核718和tee764,tee包括机器学习服务飞地(mlse)780。在一些实施例中,计算设备700包括硬件加速器768,硬件加速器包括密码引擎782和机器学习模型784。在一些实施例中,计算设备将提供针对ml对抗性攻击的增强保护,如图1-5中所提供的那样。
[0059]
计算设备700可以附加地包括以下中的一个或多个:缓存762、图形处理单元(gpu)712(在一些实现方式中,它可以是硬件加速器)、无线输入/输出(i/o)接口720、有线i/o接口730、存储器电路740、电源管理电路750、非瞬时性存储设备760和用于连接到网络772的网络接口770。以下讨论提供了对形成说明性计算设备700的部件的简要一般性描述。示例非限制性计算设备700可以包括台式计算设备、刀片服务器设备、工作站或者类似的设备或系统。
[0060]
在实施例中,处理器核718能够执行机器可读指令集714,从一个或多个存储设备760读取数据和/或指令集714,以及将数据写入一个或多个存储设备760。本领域技术人员将理解,所示的实施例以及其他实施例可以用其他基于处理器的设备配置来实践,包括便携式电子设备或手持电子设备,例如智能手机、便携式计算机、可穿戴计算机、消费电子、个人计算机(“pc”)、网络pc、小型计算机、服务器刀片、大型计算机等。
[0061]
处理器核718可以包括任何数量的硬连线或可配置电路,其中的一些或全部可以包括以下项的可编程和/或可配置组合:部分或全部设置在pc、服务器或其他能够执行处理器可读指令的计算系统中的电子部件、半导体设备和/或逻辑元件。
[0062]
计算设备700包括总线或类似的通信链路716,它们可通信地耦合各种系统部件(包括处理器核718、缓存762、图形处理器电路712、一个或多个无线i/o接口720、一个或多个有线i/o接口730、一个或多个存储设备760和/或一个或多个网络接口770),并促进在各种系统部件之间交换信息和/或数据。计算设备700在本文中可能用单数提及,但这无意将实施例限制到单个计算设备700,因为在某些实施例中,可能存在多于一个计算设备700合并、包括或包含任何数量的可通信耦合的、并置的或远程联网的电路或设备。
[0063]
处理器核718可以包括任何数量、类型或组合的当前可用的或未来开发的能够执行机器可读指令集的设备。
[0064]
处理器核718可以包括(或耦合到)但不限于任何当前或未来开发的单核或多核处理器或微处理器,例如:一个或多个片上系统(soc);中央处理单元(cpu);数字信号处理器(dsp);图形处理单元(gpu);专用集成电路(asic)、可编程逻辑单元、现场可编程门阵列(fpga)等。除非另有说明,否则图6中所示的各种块的构造和操作都是常规设计。因此,本文不需要更详细地描述这些块,因为本领域技术人员将理解它们。互连计算设备700的至少一些部件的总线716可以采用任何当前可用或未来开发的串行或并行总线结构或架构。
[0065]
系统存储器740可以包括只读存储器(“rom”)742和随机存取存储器(“ram”)746。rom 742的一部分可以用以存储或以其他方式保存基本输入/输出系统(“bios”)744。bios 744例如通过使处理器核718加载和/或执行一个或多个机器可读指令集714,向计算设备700提供基本功能。在实施例中,一个或多个机器可读指令集714中的至少一些指令集使处理器核718的至少一部分提供、创建、产生、转换和/或用作专用的、具体的和特定的机器,例如字处理机器、数字图像采集机器、媒体播放机器、游戏系统、通信设备、智能手机等。
[0066]
计算设备700可以包括至少一个无线输入/输出(i/o)接口720。
[0067]
至少一个无线i/o接口720可以可通信地耦合到一个或多个物理输出设备722(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个无线i/o接口720可以可通信地耦合到一个或多个物理输入设备724(定点设备、触摸屏、键盘、触觉设备等)。至少一个无线i/o接口720可以包括任何当前可用或未来开发的无线i/o接口。示例无线i/o接口包括但不限于:近场通信(nfc)等。
[0068]
计算设备700可以包括一个或多个有线输入/输出(i/o)接口730。至少一个有线i/o接口730可以可通信地耦合到一个或多个物理输出设备722(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个有线i/o接口730可以可通信地耦合到一个或多个物理输入设备724(定点设备、触摸屏、键盘、触觉设备等)。有线i/o接口730可以包括任何当前可用或未来开发的i/o接口。示例有线i/o接口包括但不限于:通用串行总线(usb)、ieee 1394(“firewire”)等。
[0069]
计算设备700可以包括一个或多个可通信地耦合的非瞬时性数据存储设备760。数据存储设备760可以包括一个或多个硬盘驱动器(hdd)和/或一个或多个固态存储设备(ssd)。一个或多个数据存储设备760可以包括任何当前或未来开发的存储装置、网络存储设备和/或系统。这种数据存储设备760的非限制性示例可以包括但不限于任何当前或未来开发的非瞬时性存储装置或设备,例如一个或多个磁存储设备、一个或多个光存储设备、一个或多个多个电阻存储设备、一个或多个分子存储设备、一个或多个量子存储设备,或者它们的各种组合。在一些实现方式中,一个或多个数据存储设备760可以包括一个或多个可移除存储设备,例如一个或多个闪存驱动器、闪存、闪存单元,或者能够可通信地耦合到计算设备700和从计算设备700解耦的类似装置或设备。
[0070]
一个或多个数据存储设备760可以包括将相应的存储设备或系统通信地耦合到总线716的接口或控制器(未示出)。一个或多个数据存储设备760可以存储、保存或以其他方式包含机器可读指令集、数据结构、程序模块、数据存储、数据库、逻辑结构和/或对处理器核718和/或图形处理器电路712,和/或在处理器核718和/或图形处理器电路712上执行或由其执行的一个或多个应用有用的其他数据。在一些情况下,一个或多个数据存储设备760可以可通信地耦合到处理器核718,例如经由总线716或经由一个或多个有线通信接口730(例如,通用串行总线或usb);一个或多个无线通信接口720(例如,近场通信或nfc);和/或一个或多个网络接口770(ieee 802.3或以太网、ieee 802.11或等)。
[0071]
处理器可读指令集714和其他程序、应用、逻辑集和/或模块可以全部或部分地存储在系统存储器740中。这样的指令集714可以全部或部分地传送自一个或多个数据存储设备760。指令集714可以在由处理器核718和/或图形处理器电路712执行期间,全部或部分地加载、存储或以其他方式保存在系统存储器740中。
[0072]
计算设备700可以包括控制能量存储设备752的一个或多个操作方面的电源管理电路750。在实施例中,能量存储设备752可以包括一个或多个主电池(即,不可再充电的)或辅电池(即,可再充电的)或者类似的能量存储设备。在实施例中,能量存储设备752可以包括一个或多个超级电容器或超级电池。在实施例中,电源管理电路750可以改变、调整或控制能量从外部电源754到能量存储设备752和/或到计算设备700的流动。电源754可以包括
但不限于太阳能发电系统、商业电网、便携式发电机、外部能量存储设备或其任何组合。
[0073]
为了方便起见,处理器核718、图形处理器电路712、无线i/o接口720、有线i/o接口730、存储设备760和网络接口770被示为经由总线716彼此通信地耦合,从而提供上述部件之间的连接性。在替换实施例中,上述部件可以以不同于图6中所示的方式通信地耦合。例如,上述部件中的一个或多个可以直接耦合到其他部件,或者可以经由一个或多个中间部件(未示出)彼此耦合。在另一示例中,上述部件中的一个或多个可以集成到处理器核718和/或图形处理器电路712中。在一些实施例中,可以省略总线716的全部或一部分,并且使用合适的有线连接或无线连接将这些部件直接彼此耦合。
[0074]
图7示出了根据一种实现方式的计算设备800。可以预见,计算设备800可以与图1的计算设备100相同或相似,因此为了简洁起见,下文不再讨论或重复参照图1的计算设备100讨论的许多细节。计算设备800容纳系统板802。板802可以包括多个部件,包括但不限于处理器804和至少一个通信包806。通信包耦合到一个或多个天线816。处理器804在物理上和电气上耦合到板802。
[0075]
根据其应用,计算设备800可以包括可以或可以不在物理上和电气上耦合到板802的其他部件。这些其他部件包括但不限于易失性存储器(例如,dram)808、非易失性存储器(例如,rom)809、闪存(未示出)、图形处理器812、数字信号处理器(未示出)、密码处理器(未示出)、芯片组814、天线816、显示器818(例如,触摸屏显示器)、触摸屏控制器820、电池822、音频编解码器(未示出)、视频编解码器(未示出)、功率放大器824、全球定位系统(gps)设备826、指南针828、加速度计(未示出)、陀螺仪(未示出)、扬声器830、相机832、麦克风阵列834和大容量存储设备(例如,硬盘驱动器)810、光盘(cd)(未示出)、数字多功能光盘(dvd)(未示出)等。这些部件可以连接到系统板802,安装到系统板,或与任何其他部件组合。
[0076]
通信包806实现无线通信和/或有线通信,以用于向计算设备800和从计算设备800传送数据。术语“无线”及其派生词可以用以描述可以通过非固体介质,通过使用调制的电磁辐射来传递数据的电路、设备、系统、方法、技术、通信信道等。该术语并不暗示关联的设备不包含任何电线,尽管在一些实施例中它们可能不包含电线。通信包806可以实现多种无线或有线标准或协议中的任何一种,包括但不限于wi-fi(ieee 802.11系列)、wimax(ieee 802.16系列)、ieee 802.20、长期演进(lte)、ev-do、hspa 、hsdpa 、hsupa 、edge、gsm、gprs、cdma、tdma、dect、蓝牙、以太网及其衍生物,以及任何其他被指定为3g、4g、5g及更高版本的无线和有线协议。计算设备800可以包括多个通信包806。例如,第一通信包806可以专用于短距离无线通信,例如wi-fi和蓝牙,而第二通信包806可以专用于长距离无线通信,例如gps、edge、gprs、cdma、wimax、lte、ev-do等。
[0077]
包括任何深度传感器或接近度传感器的相机832耦合到可选的图像处理器836,以执行转换、分析、降噪、比较、深度或距离分析、图像理解和本文描述的其他处理。处理器804耦合到图像处理器,以用中断驱动处理,设置参数,以及控制图像处理器和相机的操作。图像处理可以改为在处理器804、图形cpu 812、相机832或任何其他设备中执行。
[0078]
在各种实现方式中,计算设备800可以是膝上型计算机、上网本、笔记本、超级本、智能电话、平板计算机、个人数字助理(pda)、超移动pc、移动电话、台式计算机、服务器、机顶盒、娱乐控制单元、数码相机、便携式音乐播放器或数字录像机。计算设备可以是固定的、便携式的或可穿戴的。在另外的实现方式中,计算设备800可以是处理数据或记录数据以用
于在其他地方处理的任何其他电子设备。
[0079]
图8示出了能够支持上述操作的计算环境900的实施例。这些模块和系统可以实现在多种不同的硬件架构和形状因素中,包括图7中所示的那些。
[0080]
命令执行模块901包括中央处理单元,用于缓存和执行命令以及在所示的其他模块和系统当中分发任务。它可以包括指令栈、用于存储中间结果和最终结果的缓存存储器、以及用于存储应用和操作系统的大容量存储器。命令执行模块也可以用作系统的中央协调和任务分配单元。
[0081]
屏幕渲染模块921在一个或多个屏幕上绘制对象,以供用户观看。它可以适于从下面描述的虚拟对象行为模块904接收数据,并在适当的一个或多个屏幕上渲染虚拟对象和任何其他对象和力。因此,来自虚拟对象行为模块的数据将确定例如虚拟对象以及关联的姿势、力和对象的位置和动态,并且相应地,屏幕渲染模块将在屏幕上描绘虚拟对象以及关联的对象和环境。屏幕渲染模块可以还适于从下面描述的相邻屏幕透视模块907接收数据,如果虚拟对象可以移动到相邻屏幕透视模块907所关联的设备的显示器,则为虚拟对象描绘目标着陆区域。因此,例如,如果虚拟对象正在从主屏幕移动到辅助屏幕,则相邻屏幕透视模块907可以向屏幕渲染模块发送数据,以在用户的手移动或眼睛移动的那条轨道上,例如以阴影形式建议用于虚拟对象的一个或多个目标着陆区域。
[0082]
对象和姿势识别模块922可以适于识别和跟踪用户的手姿势和手臂姿势。这种模块可以用以识别手、手指、手指姿势、手移动和手相对于显示器的位置。例如,对象和姿势识别模块可以例如确定用户做出身体部位姿势以将虚拟对象放下或扔到多个屏幕中的一个或另一个上,或者用户做出身体部位姿势以将虚拟对象移动到多个屏幕中的一个或另一个的边框。对象和姿势识别模块可以耦合到相机或相机阵列、麦克风或麦克风阵列、触摸屏或触摸表面、或定点设备、或这些项目的某种组合,以检测来自用户的姿势和命令。
[0083]
对象和姿势识别模块的触摸屏或触摸表面可以包括触摸屏传感器。来自传感器的数据可以被馈送到硬件、软件、固件或它们的组合,以将用户的手在屏幕或表面上的触摸姿势映射到虚拟对象的对应动态行为。传感器数据可以用于动量和惯性因素,以允许基于来自用户的手的输入的针对虚拟对象的多种动量行为,例如用户的手指相对于屏幕的滑动速度。捏合姿势可以被解释为从显示屏上提起虚拟对象的命令,或者开始生成与虚拟对象关联的虚拟捆绑的命令,或者在显示器上放大或缩小的命令。类似的命令可以由对象和姿势识别模块使用一个或多个相机来生成,而无需触摸表面。
[0084]
方向关注模块923可以配备有相机或其他传感器,用于跟踪用户的脸或手的位置或取向。当发出姿势或语音命令时,该系统可以为姿势确定适当的屏幕。在一个示例中,在每个显示器附近安装相机,以检测用户是否正面向该显示器。如果是,则将方向关注模块的信息提供给对象和姿势识别模块922,以确保姿势或命令与用于活动的显示器的适当库关联。类似地,如果用户正将视线从所有屏幕上移开,则可以忽略命令。
[0085]
设备接近度检测模块925可以使用接近度传感器、指南针、gps(全球定位系统)接收器、个域网无线电和其他类型的传感器,连同三角测量和其他技术来确定其他设备的接近度。一旦检测到附近的设备,就可以将它注册到该系统,并且可以将其类型确定为输入设备或显示设备或两者。对于输入设备,接着可以将接收到的数据应用于对象和姿势识别模块922。对于显示设备,它可以被相邻屏幕透视模块907考虑。
[0086]
虚拟对象行为模块904适于从对象速度和方向模块接收输入,并将这样的输入应用于在显示器中示出的虚拟对象。因此,例如,对象和姿势识别模块将通过将捕获的用户的手的移动映射到已识别的移动来解释用户姿势,虚拟对象跟踪器模块将把虚拟对象的位置和移动与对象和姿势识别模块所识别的移动关联,对象速度和方向模块将捕获虚拟对象的移动的动态,虚拟对象行为模块将接收来自对象速度和方向模块的输入,以生成将引导虚拟对象的移动以对应于来自对象速度和方向模块的输入的数据。
[0087]
另一方面,虚拟对象跟踪器模块906可以适于基于来自对象和姿势识别模块的输入,跟踪虚拟对象应当位于显示器附近的三维空间中的哪里,以及用户的哪个身体部位正持有虚拟对象。虚拟对象跟踪器模块906可以例如随着虚拟对象在屏幕上和屏幕之间移动而跟踪该虚拟对象,并跟踪用户的哪个身体部位正持有该虚拟对象。跟踪正持有虚拟物体的身体部位允许持续了解身体部位的空中移动,并且因此最终了解虚拟对象是否已经被释放到一个或多个屏幕上。
[0088]
姿势视图和屏幕同步模块908从方向关注模块923接收对视图和屏幕或两者的选择,并且在一些情况下,接收语音命令以确定哪个视图是活动视图以及哪个屏幕是活动屏幕。然后,它使得为对象和姿势识别模块922加载相关的姿势库。应用在一个或多个屏幕上的各种视图可以与替换手势库或给定视图的一组姿势模板关联。
[0089]
可以包括或耦合到设备接近度检测模块925的相邻屏幕透视模块907可以适于确定一个显示器相对于另一显示器的角度和位置。投影显示包括例如投影到墙壁或屏幕上的图像。检测附近屏幕的接近度以及从其投影的显示器的对应角度或取向的能力可以例如用红外发射器和接收器或者电磁或光检测感测能力来实现。对于允许带有触摸输入的投影显示的技术,可以分析传入的视频,以确定投影显示的位置并校正因以某个角度显示而导致的失真。加速度计、磁力计、指南针或相机可以用以确定设备被持有的角度,而红外发射器和相机可以允许确定屏幕设备相对于相邻设备上的传感器的取向。相邻屏幕透视模块907可以以此方式确定相邻屏幕相对于其自身屏幕坐标的坐标。因此,相邻屏幕透视模块可以确定哪些设备彼此接近,以及用于跨屏幕移动一个或多个虚拟对象的进一步潜在目标。相邻屏幕透视模块可以还允许屏幕的位置与表示所有现有对象和虚拟对象的三维空间模型关联。
[0090]
对象速度和方向模块903可以适于通过接收来自虚拟对象跟踪器模块的输入,来估计正在移动的虚拟对象的动态,例如其轨迹、速度(线性还是有角的)、动量(线性还是有角的)等。对象速度和方向模块还可以适于例如通过估计虚拟捆绑的加速度、偏转、拉伸程度等以及虚拟对象一旦被用户的身体部位释放后的动态行为,来估计任何物理力的动态。对象速度和方向模块还可以使用图像运动、大小和角度变化来估计对象的速度,例如手和手指的速度。
[0091]
动量和惯性模块902可以使用对象在图像平面或三维空间中的图像运动、图像大小和角度变化来估计对象在空间中或显示器上的速度和方向。动量和惯性模块耦合到对象和姿势识别模块922,以估计由手、手指和其他身体部位执行的姿势的速度,然后应用这些估计来确定将要受到姿势影响的虚拟对象的动量和速度。
[0092]
3d图像交互和效果模块905跟踪用户与看起来延伸出一个或多个屏幕的3d图像的交互。对象在z轴(朝向和远离屏幕平面)的影响可以与这些对象对彼此的相对影响一起计
算。例如,在虚拟对象到达屏幕平面之前,由用户姿势扔出的对象可能受到前景中的3d对象的影响。这些对象可能会改变射弹的方向或速度,或者完全摧毁它。对象可以由3d图像交互和效果模块渲染在一个或多个显示器的前景中。如图所示,各种部件,例如部件901、902、903、904、905、906、907和908经由互连或总线(例如,总线909)连接。
[0093]
以下条款和/或示例属于进一步的实施例或示例。示例中的细节可以用于一个或多个实施例中的任何地方。不同实施例或示例的各种特征可以与所包括的一些特征以及不包括的其他特征不同地组合,以适合各种不同的应用。示例可以包括以下主题,例如方法、用于执行该方法的动作的模块、包括指令的至少一种机器可读介质(该指令在由机器执行时导致机器执行方法的动作),或者用于促进根据文本描述的实施例和示例的混合通信的装置或系统。
[0094]
一些实施例属于示例1,包括一种装置,该装置包括:密码电路,用于生成认证标签。
[0095]
示例2包括示例1的主题,其中,认证标签包括密文认证标签和明文认证标签。
[0096]
示例3包括示例1和2的主题,其中,所述密码电路通过对明文执行第一散列函数,并对所述第一散列函数的结果进行加密,来生成所述明文认证标签。
[0097]
示例4包括示例1-3的主题,其中,所述密码电路通过对密文执行第二散列函数,并对所述第二散列函数的结果进行加密,来生成所述密文认证标签。
[0098]
示例5包括示例1-4的主题,其中,所述第一散列函数是使用第一认证密钥来执行的,并且所述第二散列函数是使用第二认证密钥来执行的。
[0099]
示例6包括示例1-5的主题,其中,所述密码电路并行执行所述第一散列函数和所述第二散列函数。
[0100]
示例7包括示例1-6的主题,其中,所述密码电路组合所述明文认证标签和所述密文认证标签,以生成所述认证标签。
[0101]
示例8包括示例1-7的主题,其中,所述密码电路通过将来自所述明文认证标签的位和来自所述密文认证标签的位级联,来组合所述明文认证标签和所述密文认证标签。
[0102]
示例9包括示例1-8的主题,其中,所述密码电路通过执行异或操作,来组合所述明文认证标签和所述密文认证标签。
[0103]
一些实施例属于示例10,包括一种方法,该方法包括:生成认证标签,以向明文和密文提供完整性保护。
[0104]
示例11包括示例10的主题,其中,认证标签包括密文认证标签和明文认证标签。
[0105]
示例12包括示例10和11的主题,其中,生成所述明文认证标签包括:对明文执行第一散列函数,并对所述第一散列函数的结果进行加密。
[0106]
示例13包括示例10-12的主题,其中,生成所述密文认证标签包括:对密文执行第二散列函数,并对所述第二散列函数的结果进行加密。
[0107]
示例14包括示例10-13的主题,其中,所述第一散列函数和所述第二散列函数是并行执行的。
[0108]
示例15包括示例10-14的主题,还包括:组合所述明文认证标签和所述密文认证标签,以生成所述认证标签。
[0109]
一些实施例属于示例16,包括至少一种机器可读介质,所述机器可读介质包括指
令,所述指令当由机器执行时,使所述机器:生成认证标签,以向明文和密文提供完整性保护。
[0110]
示例17包括示例16的主题,其中,认证标签包括密文认证标签和明文认证标签。
[0111]
示例18包括示例15和16的主题,其中,生成所述明文认证标签包括:对明文执行第一散列函数,并对所述第一散列函数的结果进行加密。
[0112]
示例19包括示例16-18的主题,其中,生成所述密文认证标签包括:对密文执行第二散列函数,并对所述第二散列函数的结果进行加密。
[0113]
示例20包括示例16-19的主题,其中,所述第一散列函数和所述第二散列函数是并行执行的。
[0114]
示例21包括示例16-20的主题,其中,所述第一散列函数和所述第二散列函数是顺序执行的。
[0115]
示例22包括示例16-21的主题,包括指令,所述指令当由机器执行时,进一步使所述机器:组合所述明文认证标签和所述密文认证标签,以生成所述认证标签。
[0116]
附图和前面的描述给出了实施例的示例。本领域技术人员将理解,所描述的元件中的一个或多个可以很好地组合成单个功能元件。替换地,某些元件可以拆分为多个功能元件。来自一个实施例的元件可以被添加到另一实施例中。例如,本文描述的处理的顺序可以被改变,并且不限于本文描述的方式。此外,任何流程图的动作都不需要按所示的顺序实现;也不一定需要执行所有动作。另外,那些不依赖于其他动作的动作可以与其他动作并行执行。实施例的范围决不受这些具体示例限制。许多变化,无论是否在说明书中明确给出,例如结构、尺寸和材料使用的差异,都是可能的。实施例的范围至少与以下权利要求给出的一样宽。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献