用于片上系统平台的安全插件的制作方法

文档序号:11635448阅读:159来源:国知局
用于片上系统平台的安全插件的制造方法与工艺

优先权要求

本申请要求于2014年12月19日提交的美国专利申请序号14/577,812的权益,其全部内容通过引用并入本文。

本文描述的实施例总体上涉及片上系统(soc)互连,并且更具体地涉及用于soc平台的安全插件。



背景技术:

soc是在单个芯片基板上包括多个计算机组件的集成电路(ic)。soc可以包括任何数量的执行诸如图形处理、存储器管理、通用或专用处理等功能的组件块(例如,知识产权块或ip块),这里被称为soc组件。soc还可以包括经由互连(例如,总线)将各种soc组件彼此连接(例如,芯片内的通信)或者与soc外部的组件连接(例如,芯片间的通信)的结构。互连端点可以将soc组件接口到互连,例如,通过将soc组件数据打包成互连消息以用于在互连上传送,以及将互连消息解包以用于传送到soc组件。

附图说明

在附图中,不一定按比例绘制,同样的数字可以在不同的视图中描述类似的组件。具有不同的字母后缀的同样的数字可以表示类似组件的不同实例。附图以示例而非限制的方式总体地示出了在本文档中讨论的各种实施例。

图1是根据实施例的用于soc平台的安全插件的系统的示例的框图。

图2示出了根据实施例的用于soc平台的安全插件的系统中的数据流的示例。

图3-6示出了根据实施例的用于soc平台的安全插件的系统中的互连消息的示例。

图7是示出根据实施例的用于soc平台的安全插件的方法的示例的泳道流程图。

图8是示出可以在其上实现一个或多个实施例的机器的示例的框图。

具体实施方式

随着soc在市场上的新兴主导,soc平台正在成为精通且全面的平台,其包括大量的soc组件,范围从视频/音频/图像处理、到极大数量的传感器、到低级通用处理器、以及输入-输出接口。固定功能且可编程的soc组件使得制造商能够在市场上提供差异化。

可以将soc组件设计为在多个平台中使用并在特定平台的安全性需求已经定义之前实现。对于soc组件设计人员而言,该设计周期可能使得确定要并入到给定的soc组件中用于解决目标平台的安全性需求的特征成为挑战。由于平台资产(密钥、配置值等)跨结构/互连从ip块传输到另一ip块,所以数据的完整性和机密性变得至关重要。对于目标平台的示例安全性需求可以包括处理芯片内攻击——例如,使用例如调试硬件或软件在两个soc组件之间的互连上进行消息窥探或修改——或者包括处理芯片间攻击——例如,对经由芯片间互连的第一soc上的soc组件与第二soc上的soc组件之间的消息进行窥探或修改。

同时,通过定义普通结构(包括组件互连)的soc融合正在驱动soc组件跨各种soc平台(范围从手机/平板计算机/微型服务器到客户端/服务器平台)的重用和快速集成。因此,已经识别了以下示例问题:

●soc平台(例如,14nm晶体管工艺)需要特定的soc组件,其具有建立在较旧一代的工艺技术(例如,45nm晶体管工艺)上的密码电路。这导致较少程度优化的平台。

●从不同组开发的soc组件可能具有不一致的安全实现,因为一些组使用具有良好的安全实践的更大程度优化的电路,而其它组则以专门/定制的密码设计而结束。

●鉴于soc结构的多样性,集成soc组件需要开发包装器和桥接器,这增加了管芯区域,并需要附加的实现和确认资源。

●基于目标平台的安全性需求来集成soc组件的密码/安全性成为繁重的任务。

作为结果,安全特征的实现在调度影响方面面临着艰苦的斗争,并且可能无法及时使产品面市。为了解决这些问题,可以将模块化且可伸缩的微架构安全插件(例如,安全组件或安全块)用作具有经由对soc互连结构的标准接口可用的各种密码引擎的soc组件。如本文所使用的,安全插件是soc平台中的硬件实现的功能块。通过使用标准接口,可以在不重新设计其它soc组件的情况下选择不同的密码引擎来满足安全性和制造目标。例如,soc设计人员可以选择四种或五种不同的高级加密标准(aes)soc组件实现。没有安全插件,每种实现可能具有不同的接口,soc集成团队必须适应集成任何一种实现。这可能表示对他们面市时间的挑战。然而,使用所描述的密码引擎,soc集成人员可以在不重新设计其它soc组件的连接的情况下选择实现中的任何实现。因此,soc集成团队不需要在安全电路的内部或安全电路与控制器之间的总线接口上浪费时间。相反,他们可以基于其安全性和制造目标——例如,加密吞吐量、功耗、管芯尺寸、成本等——选择合适的策略,并对在不进行附加设计的情况下就满足这些目标的安全插件进行实例化。此外,通过在soc互连的端点集成插件,单独的soc组件不需要关注安全性,因为所有通信都将受益于由所描述的插件提供的安全性。附加的细节提供如下。

图1是根据实施例的用于soc平台的安全插件的系统100的示例的框图。系统100可以包括经由互连170连接的第一soc管芯105和第二soc管芯175。第一soc管芯105可以包括多个soc组件(例如,组件a110、组件b115、以及组件c120),其经由互连端点125以彼此或管芯外组件(例如,第二soc管芯的组件d195)方式中的任何一个或多个方式通信地耦合。互连端点125可以包括安全组件130、面向组件的收发器155、安全互连160、以及互连封装器165。类似于第一soc管芯105,第二soc管芯175可以包括一个或多个soc组件(例如,组件d195)和互连端点180。类似于互连端点125,互连端点180可以包括安全组件185、互连封装器186、安全互连187、以及面向组件的收发器188。在示例中,互连端点180和安全组件185的组件分别镜像互连端点125和安全组件130的组件。

面向组件的收发器155可以被布置(例如,配置、设计、制造、结构化等)为发送或接收到组件(例如,组件a110、组件b115、组件c120、或组件d195)的组件消息。如本文所使用的,组件消息是单独的soc组件与互连端点125之间的通信,例如,寄存器读取或写入(例如,到存储器映射的输入-输出寄存器)或直接存储器访问(dma)消息。

安全互连160可以被布置为将面向组件的收发器155和互连封装器165的消息传递管线连接到安全组件130。安全互连160可以符合安全组件130的标准接口。在操作期间,可以将在互连封装器165处从面向组件的收发器155接收的组件消息或者从互连170接收的组件消息传递到安全组件130,以在继续到其目的地之前分别对该消息进行加密或解密。在示例中,互连消息报头分析器可以存在于安全组件130、安全互连160、或互连端点125中的其它地方中,以读取互连消息报头并确定消息是否为经加密消息,并且如果消息为经加密消息则使得安全组件130对消息进行解密或认证。

互连封装器165可以被布置为将组件消息变换成互连消息,并且反之亦然。如本文所使用的,互连消息被结构化,以便于符合互连170的消息传递标准。示例互连消息在图3-6中示出,包括图3中的基本互连消息。

安全组件130可以包括密码电路135、密码控制器140、以及状态管理器145。在示例中,安全组件可以包括访问控制器150。密码电路135可以包括从多个密码引擎中选择的密码引擎。例如,soc组件密码引擎库可以对soc设计人员可用。在soc设计期间,设计人员可以具有一个或多个安全性或制造目标。政策可以会体现这些目标,并被应用于密码引擎的特性,以选择合适的引擎。示例目标可以包括成本、管芯尺寸、功耗、数据吞吐量、密码强度等。例如,各种密码引擎可以实现aes。aes实现可以符合带宽需求,例如,对于一般将使用大的管芯尺寸或占用大量的功率的高性能实现而言大于10吉比特每秒(gbps),对于与高性能实现相比可以具有较小的管芯尺寸或消耗较少的功率的中等性能实现而言大于100兆比特每秒(mbps),并且对于小的(例如,大约10000个门)管芯尺寸实现而言大约1mbps。因此,如果soc规范要求1gbps的加密带宽,则匹配该吞吐量的实现可以由具有中等性能aes块的soc积分器来实例化。

密码引擎库还可以包括执行其它安全操作的引擎,例如,散列函数、完整性引擎(例如,消息认证码(mac)引擎)、或公共密钥操作(rivest-shamir-adleman密码系统(rsa)、椭圆曲线加密(ecc)等)。在示例中,密码电路135可以包括从多个完整性引擎中选择的完整性引擎,并且标准接口通用于多个完整性引擎。因此,标准接口操作以将互连端点125的消息传递管线连接到密码引擎和完整性引擎中的一个或其二者。在示例中,可以通过芯片尺寸、功耗、成本、吞吐量性能(例如,每秒的比特数)、密码性能(例如,破解的难度水平)、制造考虑因素(例如,不同特征尺寸)等中的至少一个来对多个密码引擎或完整性引擎进行分类。这些分类可以用于选择密码引擎或完整性引擎以满足soc设计人员的设计目标。

密码电路还可以包括通用于多个密码引擎的标准接口。标准接口可以是在密码引擎和请求方(例如,安全互连160)之间双向的。通用于各种可能的密码引擎允许soc设计人员在soc设计期间的几乎任何时间选择特定的密码引擎,因为附加的连接接口、包装器等并非必须使用密码引擎。在示例中,标准接口是消息传递总线,其中对特定密码引擎的请求被发送并转换成密码引擎的特定硬件接口。

密码控制器140可以被布置为管理由密码引擎使用的密码密钥。在示例中,种子(例如,初始化)密钥在其被制造时可以被指定给密码控制器140。在示例中,在soc的操作期间,加密控制器140可以被布置为执行与其它端点组件(例如,安全组件185)的密钥协商,以例如获得会话密钥。在示例中,可以从诸如现场内可编程熔断器、只读存储器等的现场可编程设备中获得密码密钥(包括会话密钥)。在示例中,会话密钥在不同的密码会话之间是不同的。密码控制器140将密码密钥提供给密码电路,并与密码状态管理器145进行通信,以维护通信会话状态。

密码状态管理器可以被布置为管理发起方组件(例如,组件a110)与目的地(例如,响应方)组件之间的密码会话状态。在示例中,密码状态管理器145可以维护用于管理密码会话状态的表。在示例中,该表可以包括针对每个密码会话的目的地soc组件标识符、序列号、以及会话密钥字段。使用针对不同会话的不同会话密钥的以上示例,到不同soc组件的事务可以使用不同的会话密钥。因此,危及到组件d195的事务不会危及到组件b115的事务。序列号可以用于阻碍重放攻击以防止之前的会话数据被用于修改会话的当前状态。在示例中,会话密钥和序列号中的一个或其二者由目的地soc组件标识符来索引。

访问控制器150可以被布置为管理soc组件的访问权限。访问控制器150可以包括发起方安全属性注册表,其被布置为存储soc组件的访问权限。访问控制器150还可以包括过滤器,其用于响应于基于发起方安全属性注册表确定消息(例如,或者是组件消息,或者是互连消息)的发起方组件不能访问(例如,发送消息到)目的地组件而对该消息进行阻止。在示例中,访问控制器150可以访问消息报头中的安全属性索引,以确定是否允许消息事务。

通过使用如上面所描述的安全组件130,可以在不重新设计soc组件的情况下保护所有的soc组件间和soc组件内通信。因此,系统100与例如需要soc组件级兼容性的防盗硬件组件加密(例如,从图形处理器到显示驱动器的加密)不同地操作。系统100提供更安全的环境,这是因为使用独立于单独的soc组件的密码实现来保护每次通信。此外,密码引擎实现的灵活本质允许满足安全性和制造目标的灵活的架构。

图2示出了根据实施例的用于soc平台的安全插件的系统200中的数据流的示例。系统200的组件可以由上面关于图1讨论的组件来实现。系统200可以包括发起方组件205、具有安全组件215的互连端点210、包括互连220的soc结构、具有安全组件230的另一互连端点225、以及目的地组件235。实线箭头表示在互连端点和soc组件的边界内的消息流。该链路由soc组件独有,并且一般不受益于密码保护。点线表示安全消息流(例如,加密的或安全的防篡改消息),由于所表示的链路不由给定的soc组件控制。

如所示出的,发起方组件205向服务于发起方组件的互连端点210发送消息。互连端点210可以将消息传递到其安全组件215以保护消息,创建安全消息。可以将安全消息返回到互连端点以包装到互连消息中。互连消息可以经由互连220发送到互连端点225。互连端点225读取互连消息的报头并确定其是安全消息。响应于该确定,互连端点225将互连消息的安全部分转发到其安全组件230。在示例中,安全组件230可以在此时与安全组件215进行协商以获得用于该事务的会话密钥。然而,在示例中,会话密钥协商可以在由安全组件215接收到对保护组件消息的请求之间的任何时间发生,并且会话密钥协商可以由安全组件215发起。

在示例中,互连端点210和225在相同的soc管芯上(例如,执行芯片内通信)。在示例中,互连端点210和225不在相同的soc管芯上(例如,执行芯片间通信)。通过如图2所示来保护soc组件通信,可以通过在恶意行为在soc互连220上移动时拒绝其访问消息而对其进行阻碍。此外,可以使用任何soc组件,而不考虑soc设计人员选择了哪个或多个安全性配置。

图3-6示出了根据各种实施例的用于soc平台的安全插件的系统中的互连消息的示例。

图3示出了根据实施例的基本(例如,不安全的)互连消息的组成部分。基本互连消息可以包括消息报头305和消息数据有效载荷310。在该示例中,消息报头305专用于互连的协议。此外,消息数据有效载荷310可以是整个组件消息或组件消息的一部分(例如,要写入寄存器的数据,而寄存器地址可以放置在消息报头305中)。

图4示出了根据实施例的经加密消息的组成部分。在通过密码引擎(例如,上面关于图1所描述的密码引擎)对组件消息的全部或一部分进行加密之后,可以创建经加密消息,以创建经加密消息数据有效载荷320。经加密消息还可以包括例如由密码控制器或密码电路提供的安全报头315。安全报头315至少将消息标识为到接收方互连端点的经加密消息。此外,在示例中,安全报头315可以包括标识信息,以准许接收方安全组件对经加密消息数据有效载荷进行解密。例如,安全报头315可以标识发起安全组件到目的地安全组件,以准许二者之间的会话密钥协商。经加密消息还可以包括消息报头305,以准许互连用于递送消息,而不需要对消息的加密特性进行任何关注。

图5示出了根据实施例的完整性保护的消息的组成部分。完整性保护的消息可以正如基本互连消息一样包括消息报头305和消息数据有效载荷310(未加密)。附加地,完整性保护的消息可以包括完整性组件325(例如,mac、密码散列等)和安全报头315。

图6示出了根据实施例的加密且完整性保护的消息的组成部分。加密且完整性保护的消息对于组件消息数据提供保密和篡改保护二者。加密且完整性保护的消息可以包括如在所有互连消息中都发现的消息报头305。附加地,加密且完整性保护的消息可以包括如上面所描述的安全报头315、经加密消息数据有效载荷320、以及完整性组件325。

图7是示出根据实施例的用于soc平台的安全插件的方法700的示例的泳道流程图。方法700的操作可以由上面关于图1或图2所列出的组件执行,或者经由计算机硬件(例如,电路组,如下面关于图8所描述的)执行。操作705、710以及730由soc互连的互连端点组件执行,并且操作715、720以及725由通信地耦合到互连端点的安全组件执行。

在操作705处,可以接收来自soc组件(例如,发起组件)的组件消息。

在操作710处,可以经由安全互连将组件消息传递到安全组件。

在操作715处,可以由安全组件接收组件消息。

在操作720处,可以由安全组件保护组件消息。在示例中,为了进行保护,可以由安全组件使用密码引擎对组件消息进行加密,该密码引擎是对其而言安全互连相同的多个密码引擎中的一个。在示例中,对组件消息进行加密可以包括添加来自安全组件的消息完整性电路的消息完整性元素。

在示例中,保护组件消息包括添加来自安全组件的消息完整性电路的消息完整性元素,而不对组件消息数据进行加密。消息完整性元素的操作可以包括读取互连消息的安全报头,并使用完整性元素来验证消息有效载荷的完整性。例如,可以由互连端点通过互连接收第二安全消息。端点可以将第二经加密消息中继到安全组件,以使用完整性元素和完整性引擎来验证消息有效载荷的完整性。例如,有效载荷的密码散列可以存储在完整性元素中。完整性引擎可以根据有效载荷计算散列,并将散列与完整性元素中的散列进行比较。如果散列匹配,则有效载荷在运送过程中未改变。在示例中,安全组件可以响应于不能够验证第二经加密消息的完整性而放弃第二安全消息。

在操作725处,经加密消息可以经由安全互连传送到互连端点。在示例中,安全组件可以建立密码会话以用于soc组件与目的地组件之间的通信。在示例中,密码引擎使用密码会话的会话密钥来对组件消息加密。在示例中,会话密钥对应于通信流,而不对应于互连的其它通信流。

在操作730处,经加密消息可以跨互连发送。在示例中,从总线端点发送的每个消息由安全组件进行加密。在示例中,对总线端点为其终端的总线进行遍历的每个消息在总线端点中由相应的安全组件进行加密。因此,整个互连由安全通信组成。

上面示出的操作总体上描述了出站(outbound)消息的过程。相反的过程可以接受入站(inbound)安全消息,并且不保护用于递送到soc组件的这些消息。例如,可以通过互连接收第二经加密消息。可以读取第二经加密消息的消息报头(例如,安全报头),以确定其是经加密消息。经加密消息可以经由安全互连从互连端点传递到安全组件。然后可以通过安全组件和递送到端点的组件消息内容对第二经加密消息进行解密。然后,端点可以将组件消息内容发送到目的地soc组件。

在示例中,访问控制器可以操作以实施soc组件访问限制。例如,可以接收包括发起方标识符(例如,soc组件id)和目的地标识符(例如,另一soc组件id)的第二组件消息。安全组件可以访问发起方安全属性注册表,以基于发起方标识符和目的地标识符来确定发起方组件不能访问目的地组件。然后安全组件可以响应于确定发起方组件不能访问目的地组件而丢弃第二组件消息。此过程也可以作用于接收端,其中访问控制器使用访问控制器来丢弃接收到的互连消息(与组件消息相反)。

图8示出了示例机器800的框图,在该示例机器800上可以执行本文讨论的技术(例如,方法)中的任何一种或多种。在替代的实施例中,机器800可以作为独立设备操作,或者可以连接(例如,联网)到其它机器。在联网的部署中,机器800可以在服务器机器、客户端机器的容量中运行,或者在服务器-客户端网络环境二者中运行。在示例中,机器800可以用作对等(p2p)(或其它分布式的)网络环境中的对等机。机器800可以是个人计算机(pc)、平板式pc、机顶盒(stb)、个人数字助理(pda)、移动电话、网络设备、网络路由器、交换机或网桥、或能够执行指定要由该机器采取的动作的指令(顺序的或以其它方式的)的任何机器。此外,虽然仅示出了单个机器,但是术语“机器”还应被视为包括单独或共同执行一组(或多组)指令以执行本文所讨论的方法中的任何一种或多种方法的任何机器集合,例如,云计算、软件即服务(saas)、其它计算机集群配置。

如本文所描述的示例可以包括逻辑或多个组件或机制,或者可以由逻辑或多个组件或机制来操作。电路集(也被称为一组电路或电路组)是在包括硬件(例如,简单电路、门、逻辑等)的有形实体中实现的电路的集合。电路集成员关系可能随着时间和底层硬件可变性而变化。电路集包括在运行时可以单独地或组合地执行指定操作的成员。在示例中,电路集的硬件可以被不变地设计成执行特定的操作(例如,硬连线)。在示例中,电路集的硬件可以包括可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),其包括物理地修改(例如,不变质量的粒子的磁性地、电地可移动放置等)的计算机可读介质以对特定操作的指令进行编码。在连接物理组件时,硬件构成部分的基本电气特性改变,例如,从绝缘体变为导体,反之亦然。该指令使得嵌入式硬件(例如,执行单元或加载机制)能够经由可变连接来创建硬件中的电路集的成员,以在操作时执行特定操作中的部分特定操作。相应地,当设备运行时,计算机可读介质通信地耦合到电路集成员的其它组件。在示例中,物理组件中的任何物理组件可以用于多于一个电路集的多于一个成员中。例如,在运行中,执行单元可以在一个时间点时用于第一电路集的第一电路并由第一电路集中的第二电路重新使用,或者在不同的时间时由第二电路集中的第三电路使用。

机器(例如,计算机系统)800可以包括硬件处理器802(例如,中央处理单元(cpu)、图形处理单元(gpu)、硬件处理器核心或其任何组合)、主存储器804、以及静态存储器806,其中的一些或全部可以经由互连(例如,总线)808彼此通信。机器800还可以包括显示单元810、字母数字输入设备812(例如,键盘)、以及用户界面(ui)导航设备814(例如,鼠标)。在示例中,显示单元810、输入设备812以及ui导航设备814可以是触摸屏显示器。机器800可以附加地包括存储设备(例如,驱动单元)816、信号产生设备818(例如,扬声器)、网络接口设备820、以及一个或多个传感器821,例如,全球定位系统(gps)传感器、罗盘、加速度计或其它传感器。机器800可以包括输出控制器828,例如,串行(例如,通用串行总线(usb)、并行或其它有线或无线(例如,红外(ir)、近场通信(nfc)等)连接以与一个或多个外围设备(例如,打印机、读卡器等)通信或对其进行控制。

存储设备816可以包括机器可读介质822,其上存储有由本文所描述的技术或功能中的任何一种或多种体现或利用的一组或多组数据结构或指令824(例如,软件)。在由机器800执行指令期间,指令824还可以完全地或至少部分地驻留在主存储器804内、在静态存储器806内、或者在硬件处理器802内。在示例中,硬件处理器802、主存储器804、静态存储器806或存储设备816中的一个或任何组合可以构成机器可读介质。

虽然机器可读介质822被示为单个介质,但是术语“机器可读介质”可以包括被配置为存储一个或多个指令824的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。

术语“机器可读介质”可以包括任何以下介质:能够存储、编码或携带由机器800执行的指令并且使得机器800执行本公开的技术中的任何一种或多种技术,或者能够存储、编码或携带由这些指令使用或与这些指令相关联的数据结构。非限制性机器可读介质示例可以包括固态存储器,以及光介质和磁介质。在示例中,大容量机器可读介质包括具有多个具有不变(例如,静止)质量的粒子的机器可读介质。相应地,大容量机器可读介质不是暂时性的传播信号。大容量机器可读介质的具体示例可以包括:非易失性存储器,例如,半导体存储器设备(例如,电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))和闪速存储器设备;磁盘,例如,内部硬盘和可移动磁盘;磁光盘;以及cd-rom和dvd-rom磁盘。

可以进一步通过使用传输介质的通信网络826经由网络接口设备820利用多个传输协议(例如,帧中继、因特网协议(ip)、传输控制协议(tcp)、用户数据报协议(udp)、超文本传输协议(http)等)中的任何一个传输协议来发送或接收指令824。示例通信网络可以包括局域网(lan)、广域网(wan)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(pots)网络、和无线数据网络(例如,被称为的电气和电子工程师协会(ieee)802.11标准系列、被称为的ieee802.16标准系列)、ieee802.15.4标准系列、对等(p2p)网络,以及其它。在示例中,网络接口设备820可以包括用于连接到通信网络826的一个或多个物理插孔(例如,以太网、同轴电缆或电话插孔)或一个或多个天线。在示例中,网络接口设备820可以包括使用单输入多输出(simo)、多输入多输出(mimo)或多输入单输出(miso)技术中的至少一种技术进行无线通信的多个天线。术语“传输介质”应被视为包括能够存储、编码或携带由机器800执行的指令的任何无形介质,并且包括数字或模拟通信信号或促进这种软件的通信的其它无形介质。

附加注释和示例

示例1包括主题(例如,设备、装置或机器),其包括:密码电路,其包括:从多个密码引擎中选择的密码引擎;以及通用于多个密码引擎的标准接口,其中,在操作中,由片上系统互连接口接收的来自发起方组件的未加密消息是经由标准接口提供给密码引擎的,以产生被发送到目的地组件的经加密消息;密码控制器,其用于管理由密码引擎用于创建经加密消息的密码密钥;以及密码状态管理器,其用来管理发起方组件与目的地组件之间的密码会话的密码会话状态。

在示例2中,示例1的主题可以包括,其中,密码电路包括从多个完整性引擎中选择的完整性引擎,并且其中,标准接口通用于多个完整性引擎。

在示例3中,示例1至2中任一项的主题可以包括,其中,多个密码引擎包括一组高级加密标准密码引擎。

在示例4中,示例1至3中任一项的主题可以包括,其中,多个密码引擎是通过管芯尺寸、功耗、成本、吞吐量性能、或密码性能中的至少一个来分类的。

在示例5中,示例1至4中任一项的主题可以包括,其中,密码控制器包括种子密钥或初始化密钥中的至少一个。

在示例6中,示例1至5中任一项的主题可以包括,其中,密码控制器与通信对等体协商以获得会话密钥。

在示例7中,示例1至6中任一项的主题可以包括,其中,密码控制器从片上系统的现场可编程组件中取回会话密钥。

在示例8中,示例1至7中任一项的主题可以包括,其中,管理发起方组件与目的地组件之间的密码会话状态包括,密码状态管理器维护密码会话的数据结构,数据结构包括针对目的地组件、序列号、以及会话密钥的字段。

在示例9中,示例1至8中任一项的主题可以包括,其中,会话密钥在不同的密码会话之间是不同的。

在示例10中,示例1至9中任一项的主题可以包括:用于存储片上系统组件的访问权限的发起方安全属性注册表;以及响应于基于发起方安全属性注册表确定发起方组件不能访问目的地组件而对该消息进行阻止的过滤器。

在示例11中,示例1至10中任一个的主题可以包括:确定由互连接口从另一片上系统互连接口接收的消息是否为经加密消息;如果该消息是经加密消息,则将该消息中继到密码电路;以及如果该消息不是经加密消息,则将该消息传递到互连接口。

示例12包括主题(例如,设备、装置或机器),其包括:安全块,其包括:密码电路,密码电路包括:从多个密码引擎中选择的密码引擎;以及通用于多个密码引擎的标准接口,标准接口是在密码引擎与请求方之间双向的;密码控制器,其用于管理由密码引擎使用的密码密钥;以及密码状态管理器,其用于管理发起方组件与目的地组件之间的密码会话状态;以及耦合到片上系统的互连的片上系统互连端点,互连耦合到多个片上系统互连端点,多个片上系统互连端点耦合到片上系统的组件,片上系统互连接口包括:面向组件的收发器,其用于发送或接收到组件的组件消息;互连封装器,其用于将从组件接收的组件消息变换为互连消息,并将从另一互连端点接收的互连消息变换为组件消息;以及安全互连,其符合安全块的密码电路的标准接口,安全互连插入在面向组件的收发器与互连封装器的通信之间,其中,由面向组件的收发器接收的组件消息经由标准接口被传递到安全电路以创建经加密消息,该经加密消息经由标准接口被返回,以在在互连上发送之前由互连封装器进行封装。

在示例13中,示例12的主题可以包括,其中,互连端点包括互连报头分析器,其用于确定从互连接收的消息是否被加密,并且如果该消息经由安全互连被加密则将该消息中继到安全块,否则绕过安全互连。

在示例14中,示例12至13中任一项的主题可以包括:访问控制器,其用于管理片上系统组件的访问权限,访问控制器包括:发起方安全属性注册表,其用于存储片上系统组件的访问权限;以及过滤器,其用于响应于基于发起方安全属性注册表确定发起方组件不能访问目的地组件而对该消息进行阻止。

在示例15中,示例12至14中任一项的主题可以包括,其中,密码电路包括从多个完整性引擎中选择的完整性引擎,并且其中,标准接口通用于多个完整性引擎。

在示例16中,示例12至15中任一项的主题可以包括,其中,多个密码引擎通过管芯尺寸、功耗、成本、吞吐量性能、或密码性能中的至少一个来进行分类。

在示例17中,示例12至16中任一项的主题可以包括,其中,管理发起方组件与目的地组件之间的密码会话状态包括,密码状态管理器维护密码会话的数据结构,数据结构包括针对目的地组件、序列号、以及会话密钥的字段。

在示例18中,示例12至17中任一项的主题可以包括,其中,会话密钥在不同的密码会话之间是不同的。

示例19包括主题(例如,方法、用于执行动作的模块、包括指令的机器可读介质(该指令在被机器执行时使得机器执行动作)、或用于执行的装置),其包括:在总线端点处接收来自片上系统组件的组件消息;由总线端点经由安全互连将组件消息传递到安全组件;由安全组件经由安全互连来接收组件消息;使用密码引擎来加密组件消息,密码引擎是多个密码引擎中的一个,安全互连对于多个密码引擎中的全部是相同的;经由安全互连将经加密消息传送到总线端点;以及由总线端点跨互连来发送经加密消息。

在示例20中,示例19的主题可以包括,其中,对组件消息进行加密包括添加来自安全组件的消息完整性电路的消息完整性元素。

在示例21中,示例19至20中任一项的主题可以包括:通过互连接收第二经加密消息;将第二经加密消息中继到安全组件以验证第二经加密消息的完整性;以及响应于不能验证第二经加密消息的完整性而放弃第二经加密消息。

在示例22中,示例19至21中任一项的主题可以包括,其中,第二经加密消息包括无效消息完整性元素。

在示例23中,示例19至22中任一项的主题可以包括:通过互连接收第二经加密消息;读取第二经加密消息的消息报头以确定其被加密;由总线端点经由安全互连将第二经加密消息传递到安全组件;由安全组件对第二经加密消息进行解密以创建第二组件消息;以及将第二组件消息发送到片上系统组件。

在示例24中,示例19至23中任一项的主题可以包括:接收包括发起方标识符和目的地标识符的第二组件消息;访问发起方安全属性注册表以基于发起方标识符和目的地标识符来确定发起方组件不能访问目的地组件;以及响应于确定发起方组件不能访问目的地组件而丢弃第二组件消息。

在示例25中,示例19至24中任一项的主题可以包括,建立用于片上系统组件与目的地组件之间的通信的密码会话。

在示例26中,示例19至25中任一项的主题可以包括,其中,用于密码会话的会话密钥由密码引擎用于对组件消息进行加密。

在示例27中,示例19至26中任一项的主题可以包括,其中,会话密钥对应于通信流,并且不对应于互连的其它通信流。

在示例28中,示例19至27中任一项的主题可以包括,其中,从总线端点发送的每个消息由安全组件进行加密。

在示例29中,示例19至28中任一项的主题可以包括,其中,对总线端点为其终端的总线进行遍历的每个消息在总线端点中由相应的安全组件进行加密。

在示例30中,至少一种机器可读介质包括指令,指令在被机器执行时使得机器实现示例19-29中任一项。

在示例31中,系统可以包括用于实现示例19-29中任一项的模块。

示例32包括主题(例如,设备、装置或机器),其包括:用于在总线端点处接收来自片上系统组件的组件消息的模块;用于由总线端点经由安全互连将组件消息传递到安全组件的模块;用于由安全组件经由安全互连来接收组件消息的模块;使用密码引擎来加密组件消息,密码引擎是多个密码引擎中的一个,安全互连对于多个密码引擎中的全部是相同的;用于经由安全互连将经加密消息传送到总线端点的模块;以及用于由总线端点跨互连来发送经加密消息的模块。

在示例33中,示例32的主题可以包括,其中,对组件消息进行加密包括添加来自安全组件的消息完整性电路的消息完整性元素。

在示例34中,示例32至33中任一项的主题可以包括:用于通过互连接收第二经加密消息的模块;用于将第二经加密消息中继到安全组件以验证第二经加密消息的完整性的模块;以及用于响应于不能验证第二经加密消息的完整性而放弃第二经加密消息的模块。

在示例35中,示例32至34中任一项的主题可以包括,其中,第二经加密消息包括无效消息完整性元素。

在示例36中,示例32至35中任一项的主题可以包括:用于通过互连接收第二经加密消息的模块;用于读取第二经加密消息的消息报头以确定其被加密的模块;用于由总线端点经由安全互连将第二经加密消息传递到安全组件的模块;用于由安全组件对第二经加密消息进行解密以创建第二组件消息的模块;以及用于将第二组件消息发送到片上系统组件的模块。

在示例37中,示例32至36中任一项的主题可以包括:用于接收包括发起方标识符和目的地标识符的第二组件消息的模块;用于访问发起方安全属性注册表以基于发起方标识符和目的地标识符来确定发起方组件不能访问目的地组件的模块;以及用于响应于确定发起方组件不能访问目的地组件而丢弃第二组件消息的模块。

在示例38中,示例32至37中任一项的主题可以包括,建立用于片上系统组件与目的地组件之间的通信的密码会话。

在示例39中,示例32至38中任一项的主题可以包括,其中,用于密码会话的会话密钥由密码引擎用于对组件消息进行加密。

在示例40中,示例32至39中任一项的主题可以包括,其中,会话密钥对应于通信流,并且不对应于互连的其它通信流。

在示例41中,示例32至40中任一项的主题可以包括,其中,从总线端点发送的每个消息由安全组件进行加密。

在示例42中,示例32至41中任一项的主题可以包括,其中,对总线端点为其终端的总线进行遍历的每个消息在总线端点中由相应的安全组件进行加密。

上文的详细描述包括对附图的参考,其构成了详细描述的一部分。附图通过图示说明的方式示出了可以实践的具体的实施例。这些实施例在本文中还被称为“示例”。这些示例可以包括除了所示出或所描述的元素之外的元素。然而,本发明人还构思包括仅提供了所示出或所描述的那些元素的示例。此外,本发明人还构思使用所示出或所描述的那些元素(或其一个或多个方面)的任何组合或置换的示例,或者针对特定的示例(或其一个或多个方面)或者针对本文所示出或所描述的其它示例(或其一个或多个方面)。

在本文档与如此通过引用并入的那些文档之间用法不一致的情形下,并入的(多个)引用文献中的用法应当被视为对本文档中的用法的补充;对于无法协调的不一致,以本文档中的用法为准。

在本文档中,如专利文献中常见的,使用术语“一(a)”或“一个(an)”,来包括一个或多于一个,独立于“至少一个”或“一个或多个”的任何其它实例或用法。在本文档中,除非另作说明,否则使用术语“或者”来指代非排他性的或者,以使得“a或b”包括“a而非b”、“b而非a”以及“a和b”。在所附的权利要求中,术语“包括(including)”和“其中(inwhich)”用作相应的术语“包含(comprising)”和“其中(wherein)”的通俗英语等效词。另外,在所附的权利要求中,术语“包括”和“包含”是开放式的,也就是说,包括除了在权利要求中的这样的术语后所列的那些元素之外的元素的系统、设备、产品或过程仍被认为落入该权利要求的范围内。此外,在所附的权利要求中,术语“第一”、“第二”以及“第三”等仅用作标签,而并非旨在暗示对其对象的数值的需求。

上面的说明旨在示例性的,而非限制性的。例如,上面所描述的示例(或其一个或多个方面)可以与彼此组合地使用。例如,本领域普通技术人员在阅读上面的说明时可以使用其它的实施例。摘要允许读者快速地查明技术公开的本质,并且在理解摘要并非用于解释或限制权利要求的范围或含义的情况下提交。另外,在上面的具体实施方式中,可以将各种特征组合在一起而使得公开内容流畅。这不应被解释为旨在使未要求保护的公开特征对于任何权利要求都是必要的。相反,发明主题可以在于,其特征比特定公开的实施例的全部特征少。因此,所附的权利要求特此并入具体实施方式中,其中每项权利要求本身独立地作为单独的实施例。应当参考所附的权利要求以及对这些权利要求赋予权利的等同内容的整个范围来确定实施例的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1