CN210136494U - 片上系统 - Google Patents
片上系统 Download PDFInfo
- Publication number
- CN210136494U CN210136494U CN201920568458.5U CN201920568458U CN210136494U CN 210136494 U CN210136494 U CN 210136494U CN 201920568458 U CN201920568458 U CN 201920568458U CN 210136494 U CN210136494 U CN 210136494U
- Authority
- CN
- China
- Prior art keywords
- scs
- soc
- private key
- sms
- communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/84—Vehicles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/88—Medical equipments
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Traffic Control Systems (AREA)
Abstract
本公开的实施例提供了一种片上系统。安全地供应片上系统(SoC)包括:生成具有公钥和私钥的公钥/私钥对;将私钥安全地存储在SoC外部;在SoC的制造期间将公钥嵌入在SoC的电阻器晶体管逻辑(RTL)中;使用私钥加密供应数据以创建加密的供应数据;以及使用加密的供应数据对SoC进行编程。安全供应可以进一步包括:生成共享密钥;在SoC的制造期间将共享密钥嵌入在SoC的RTL中;以及使用共享密钥加密供应数据。RTL可以是SoC的引导只读存储器(ROM)。在部署SoC之后,安全供应技术还可以用于后续供应。
Description
技术领域
本公开涉及一种片上系统;并且更具体地,涉及片上系统的初始供应。
背景技术
片上系统(SoC)包括布置在单个集成电路上的多个处理系统。这些单独的处理系统中的每一个系统通常执行对应的一组处理功能。单独的处理系统通常经由一个或多个通信总线结构互连。一些SoC部署在具有高安全性要求的系统内,例如,金融处理系统、自动驾驶系统、医疗处理系统和空中交通控制系统等。利用这些系统,多个SoC可以在公共输入数据上并行操作,以增强系统可靠性。
在制造SoC之后并且在包括SoC的系统的操作之前,必须供应SoC。通常在将SoC安装在印刷电路板(PCB)上之后和/或在较大系统中安装SoC之后执行供应。在制造之后并且在供应之前,SoC易受恶意攻击,恶意攻击可能包括在SoC上加载恶意软件、或者以其它方式在安装在较大系统内时采取会导致SoC故障的步骤。自动驾驶系统、医疗处理系统、交通控制系统或金融处理系统的故障是非常不期望的。
实用新型内容
为了克服上述缺点以及其它缺点,本公开的实施例支持SoC的安全初始供应。根据本公开的第一实施例,安全地供应SoC包括:生成具有公钥和私钥的公钥/私钥对;将私钥安全地存储在SoC外部;在SoC的制造期间将公钥嵌入在SoC的电阻器晶体管逻辑(RTL)中;使用私钥加密供应数据以创建加密的供应数据;以及使用加密的供应数据对SoC进行编程。使用加密的供应数据对SoC进行编程可以包括:将加密的供应数据传输到SoC的安全性处理器子系统(security processor subsystem,SCS)或安全处理器子系统(safety processorsubsystem,SMS)。与SoC对接以下载加密的供应数据并随后与SoC通信可以由供应站来执行。
第一实施例的第一可选方面包括:生成共享密钥;在SoC的制造期间将共享密钥嵌入SoC的RTL中;以及使用共享密钥来加密供应数据。该可选方面可以进一步包括从SoC接收加密通信并使用共享密钥来解密加密的通信。
本公开的第二实施例还使用与第一实施例的操作类似的操作来解决SoC的安全初始供应以提供类似的益处。第二实施例包括:生成共享密钥;将共享密钥安全地存储在SoC外部;在SoC的制造期间将共享密钥嵌入在SoC的RTL中;使用共享密钥来加密供应数据以创建加密的供应数据;以及使用加密的供应数据对SoC进行编程。使用加密的供应数据对SoC进行编程可以包括:将加密的供应数据传输到SoC的安全性处理器子系统(SCS)或安全处理器子系统(SMS)。第二实施例的操作可以进一步包括从SoC接收加密的通信以及使用共享密钥来解密加密的通信。与SoC对接以下载加密的供应数据并随后与SoC通信可以由供应站来执行。
本公开的第三实施例考虑初始供应期间的SoC的操作。第三实施例包括:由SoC接收加密的供应数据;由SoC访问来自SoC的电阻器晶体管逻辑(RTL)的公钥;以及使用公钥来解密加密的供应数据,以创建解密的供应数据。然后,SoC可以使用解密的供应数据来配置自身。
第三实施例的第一可选方面包括:由SoC访问来自SoC的RTL的共享密钥;以及进一步使用共享密钥由SoC解密加密的供应数据。利用该第一可选方面,操作可以包括使用共享密钥来由SoC加密消息,以创建加密的消息并由SoC传输加密的消息。使用公钥来解密加密的供应数据以创建解密的供应数据可以由SoC的SCS或SMS执行。
本公开的第四实施例还考虑初始供应期间的SoC的操作。第四实施例包括:由SoC接收加密的供应数据;由SoC访问来自SoC的电阻器晶体管逻辑(RTL)的共享密钥;以及使用共享密钥来解密加密的供应数据以创建解密的供应数据。然后,SoC可以使用解密的供应数据来最初供应自身。
对于第一可选方面,操作可以包括由SoC加密使用共享密钥的消息以创建加密消息以及由SoC传输加密消息。使用共享密钥来解密加密的供应数据以创建解密的供应数据可以由SoC的SCS或SMS执行。
本公开的第一至第四实施例和随后描述的实施例提供了重要的益处和优点。SoC在SoC的制造和SoC的部署的时间之间抵抗未经授权的恶意软件攻击和/或未授权的用户供应。这种情况是因为这样的中间攻击者无法在没有访问公钥/私钥对和/或共享密钥的情况下将SoC供应为在该SoC上加载违规代码。第一实施例的技术甚至在现场部署SoC之后也可以采用,并且可以用于更新SoC的固件。基于本文提供的进一步公开,其它益处将变得显而易见。
支持第三和第四实施例的SoC包括多个处理器、存储器和通信电路以及SCS。利用该SoC,SCS可以被配置为执行第三和第四实施例的操作。备选地,SoC的SMS可以执行第三和第四实施例的操作。在SoC的其它实施例中,一个或多个通用处理器可以执行第三和第四实施例的操作。
通过阅读以下参照附图的详细描述,所公开的实施例的益处将变得显而易见。
附图说明
图1A是示出一组车辆的图,该组车辆中的至少一个车辆根据描述的实施例来构造和操作以支持自动驾驶。
图1B是示出根据描述的实施例来构造和操作以支持自动驾驶的车辆的图。
图1C是示出包括根据描述的实施例供应的SoC的多个系统的系统图。
图2是示出根据第一描述的实施例构造和操作的自动驾驶控制器的框图。
图3A是示出根据描述的实施例构造的自动驾驶传感器的框图。
图3B是示出根据描述的实施例构造的自动驾驶控制器的框图。
图4A是示出根据本公开构造和操作的自动驾驶并行处理系统的第一实施例的框图。
图4B是示出根据本公开构造和操作的自动驾驶并行处理系统的第二实施例的框图。
图5A是示出图4A和/或图4B的自动驾驶并行处理器的组件之间的通信的框图。
图5B是示出根据描述的实施例的一个或多个方面的图4A和/或图4B的自动驾驶并行处理器的并行处理器的组件的框图。
图6A是示出根据一个或多个描述的实施例的自动驾驶控制器在多个安全性处理器子系统(SCS)之间建立安全通信的操作的流程图。
图6B是示出根据一个或多个描述的实施例的自动驾驶控制器在多个SCS之间建立安全通信的不同操作的流程图。
图6C是示出根据一个或多个描述的实施例的自动驾驶控制器在多个SCS之间以及多个安全处理器子系统(SMS)之间建立安全通信的操作的流程图。
图7是示出根据一个或多个描述的实施例的自动驾驶控制器分配SCS私钥的操作的流程图。
图8是示出根据一个或多个描述的实施例的自动驾驶控制器分配SCS私钥的第二操作的流程图。
图9是示出根据一个或多个描述的实施例的自动驾驶控制器分配和验证SCS私钥的操作的流程图。
图10是示出根据描述的实施例的用于安全地供应SoC的供应装置的操作的流程图。
图11是示出根据描述的实施例的用于安全地供应SoC的供应装置的操作的流程图。
图12是示出根据描述的实施例的SoC在其安全供应期间的操作的流程图。
图13是示出根据描述的实施例的SoC在其安全供应期间的操作的流程图。
具体实施方式
本文描述了用于安全地供应片上系统(SoC)的操作和结构。本文将参照用于自动驾驶系统、金融服务系统、空中交通控制系统和医疗处理系统的SoC来描述这些结构和操作。本公开的教导也可以应用于在其它类型的系统中使用的SoC,该教导不限于本文描述的SoC,并且该教导可以应用于许多不同类型系统的SoC。尽管如此,本文描述的实施例将频繁地涉及自动驾驶系统。读者将理解,本公开的教导可以应用于其中SoC的安全供应是有益的许多其它系统。
图1A是示出一组车辆的图,该组车辆中的至少一个车辆根据描述的实施例构造和操作以支持自动驾驶。车辆100A-110D在第一方向上行驶,且车辆100E-110H在第二方向上行驶。根据本文随后描述的一个或多个实施例,这些车辆100A-100H中的至少一些车辆支持自动驾驶。车辆100A-100H支持车辆内通信、车辆外通信和车辆间通信。车辆内通信发生在特定车辆内。车辆外通信发生在车辆与该车辆外部的一个或多个装置之间,例如在车辆100A与无线接入点12之间,无线接入点12例如为蜂窝基站、WiFi接入点或其它无线装置。这种车辆外通信的示例是经由通信网络14在车辆100A与自动驾驶服务器16之间的通信。这些通信可以涉及当前的自动驾驶数据/情况,或者可以包括由车辆100A收集的数据以供自动驾驶服务器16后续使用。
车辆间通信是车辆外通信的子集,并且是两个或更多个车辆(例如,100A、100B、100C和100F)之间的通信。这些通信可以涉及自动驾驶,例如,识别其它车辆、数据交换、车辆驾驶警告等。车辆间通信可以是车辆之间的直接通信、例如车辆100A与100C之间的直接通信,或者是直接地或经由通信网络14、自动驾驶服务器或另一服务器而由无线接入点12中继的间接通信。因为车辆100A-110H支持各种各样的操作,所以它们可能易受不希望的和不期望的通信的影响。在特别糟糕的情况下,当车辆(例如,100F)自动驾驶时,它可能从另一车辆(例如,100E)或经由无线接入点12接收恶意通信,从而错误地通知车辆100F即将发生的碰撞或其它自动驾驶事件。响应于该恶意通信,车辆100E可能自动地采取确实导致碰撞或接近碰撞的防御操纵。当然,这种类型的事件是非常不期望的。虽然从自动驾驶的角度来看,期望接收尽可能多的输入数据以作出良好的自动驾驶决定,但是必须有保护措施就位来保护车辆100E免受恶意通信。
因此,根据本公开,车辆(例如,100E)包括自动驾驶控制器,该自动驾驶控制器具有对从多个自动驾驶传感器接收的公共输入数据并行地操作的多个并行处理器。多个并行处理器中的每个并行处理器包括:通用处理器和安全性处理器子系统(SCS);以及通信电路,被配置为支持多个并行处理器之间的通信,该通信包括多个并行处理器的通用处理器之间的通信以及由SCS密码术保护的多个并行处理器的SCS之间的通信。多个并行处理器中的每个并行处理器还各自可以包括安全处理器子系统(SMS),其中通信电路还被配置为支持由与SCS密码术不同的SMS密码术所保护的多个并行处理器的SMS之间的通信。由SCS、SMS和通信电路支持的这种通信密码术抵抗在其他情况下将危及自动驾驶系统的恶意通信。自动驾驶控制器可以包括SCS和/或SMS的专用硬件和/或存储装置以服务该通信密码术。
图1B是示出根据描述的实施例来构造和操作以支持自动驾驶的车辆的图。车辆100包括自动驾驶控制器108,自动驾驶控制器108具有主体102和布线系统104,该布线系统104用于将具有各个传感器106a-106d的多个自动驾驶传感器106连接到自动驾驶控制器108。图1B的布线系统104是结构线缆112。自动驾驶控制器108可以驻留在信息娱乐装置110上或信息娱乐装置110中,或者与信息娱乐装置110共同定位。信息娱乐装置110可以用于控制车辆100中存在的各种组件的功能,例如以接管与车辆100的转向系统(未示出)相关联的转向功能、制动功能、加速功能、或者与自动驾驶或防撞相关的车辆100的其它功能的控制。基于与自动驾驶控制器108的交互来执行信息娱乐装置110的这些操作。
自动驾驶传感器106a-106d包括相机、雷达传感器、激光雷达传感器、声波接近传感器或者收集与车辆100的操作相关的信息的其它传感器。例如,自动驾驶传感器106a、106b可以是相机而自动驾驶传感器106c、106d可以是雷达传感器。自动驾驶传感器106a-106d经由结构线缆112而可通信地连接到自动驾驶控制器108。结构线缆112可以包括单个导体或一对导体,并且可以是双绞线、同轴布线、单导线、电源总线或布线、带状布线或其它布线。
图1C是示出包括根据描述的实施例所供应的SoC的多个系统的系统图。图1C的系统150包括:多个金融服务系统152A、152B、152C、152D和152E,多个医疗处理系统154A和154B,以及多个空中交通控制系统158A和158B,它们被示出为经由一个或多个通信网络156而相互耦接。通信网络156可以包括因特网、万维网(WWW)、一个或多个内联网、一个或多个虚拟局域网(LAN)、一个或多个LAN、一个或多个无线LAN(WLAN)和/或一个或多个其它类型的网络。
因为参照图1C描述的类型的系统相互连接,所以它们易受经由通信网络156的攻击。另外的自动驾驶系统也易受经由服务通信网络14的攻击。而防火墙(硬件和软件)、恶意软件过滤软件、病毒过滤软件以及硬件和软件通常被安装以保护这些系统152A-158B和自动驾驶系统,如果在供应之前服务该系统的SoC被附接,则攻击者基本上具有进入这些系统的后门。
因此,本公开的实施例提供SoC的制造与SoC的合法供应之间的保护。将参照图10-图13详细描述用于供应SoC的本公开的操作。参照图4A-图5B来描述可以根据本公开供应的SoC结构。将参照图2-图3B、特别地参照包括根据本公开供应的SoC的组件来描述自动驾驶系统。
图2是示出根据描述的实施例来构造和操作的自动驾驶系统200的框图。自动驾驶系统200包括总线、耦接到总线的自动驾驶控制器108以及耦接到总线的多个自动驾驶传感器212A-212F。在图2的实施例中,总线包括通过部分205而相互耦接的两个主要部分204A和204B。总线可以是双绞线导体、一对带状导体、同轴导体、承载DC电力的双导体电源总线、或者具有一个或两个导体的另一结构以支持通信。
多个装置经由总线进行通信。这些装置包括自动驾驶控制器108、多个自动驾驶传感器212A-212F、信息娱乐装置214、存储器216、气候控制装置218、电池控制器220(当车辆是电动车辆或混合动力车辆时)、引擎/马达控制器222、转向控制器224、制动控制器226以及包括多个无线接口(例如,蜂窝、WiFi、蓝牙和/或其它标准)的无线接口228。多个自动驾驶传感器212A-212F可以包括一个或多个雷达单元、一个或多个激光雷达单元、一个或多个相机、和/或一个或多个接近传感器。多个自动驾驶传感器212A-212F收集自动驾驶数据,并且经由总线将收集的自动驾驶数据传输到自动驾驶控制器108。然后,自动驾驶控制器108处理数据,并且基于该处理来经由控制器222、224和226控制车辆的完全驾驶或驾驶员辅助驾驶。
图3A是示出根据描述的实施例构造的自动驾驶传感器的框图。自动驾驶传感器300包括数据收集组件306,数据收集组件306被配置为收集自动驾驶数据。数据收集组件306可以是雷达传感器、激光雷达传感器、声波接近传感器或其它类型的传感器。自动驾驶传感器300还包括处理电路302、存储器304和收发器311,收发器311经由总线而耦接到处理电路302、存储器304和数据收集组件306。处理电路302执行存储在存储器304中的程序(例如,自动驾驶紧急操作)、从/向存储器读取和写入数据(例如,数据和指令)以支持自动驾驶操作、与数据收集组件306交互以控制自动驾驶数据的手机、处理自动驾驶数据以及与收发器311交互以经由总线进行通信、以及其它操作。
通过示例且非限制的方式,处理电路302可以是中央处理单元、微控制器、数字信号处理器、专用集成电路、判断单元、确定单元、执行单元、前述的任意组合、或适用于执行计算机程序的任意其它装置。通过示例的方式,存储器304可以是动态存储器、静态存储器、(一个或多个)磁盘驱动器、(一个或多个)闪存驱动器、前述的任意组合、或任意其它形式的计算机存储器。存储器304存储用于本公开的操作的计算机程序,还可以存储实现本公开的实施例所需的其它计算机程序、供应信息以及其它短期和长期数据。
收发器311包括发送器308、接收器310和介质I/F 312。介质I/F 312可以是发送/接收(T/R)交换器、双工器或支持示出的耦接的其它装置。在其它实施例中,发送器308和接收器310直接耦接到总线、或者耦接到总线而并非经由介质I/F 312。收发器311支持经由总线的通信。处理电路302和收发器311被供应为将自动驾驶数据发送到总线上的自动驾驶控制器108。AD控制器202和/或其它描述的组件可以包括根据本公开供应的一个或多个SoC。
图3B是示出根据描述的实施例构造的自动驾驶控制器的框图。自动驾驶控制器108包括通用处理电路352、存储器354和收发器361,收发器361耦接到通用处理电路352并且被配置为经由总线而与多个自动驾驶传感器通信。自动驾驶控制器108还包括自动驾驶并行处理系统364,自动驾驶并行处理系统364对从自动驾驶传感器接收的自动驾驶数据进行操作并支持自动驾驶操作。收发器361包括发送器358、接收器360和介质I/F 362,它们经由总线组合地支持通信。通用处理电路352的构造可以类似于自动驾驶传感器300的处理电路302的构造。存储器354可以具有与自动驾驶传感器300的存储器304类似的结构,除了具有所需的容量以支持自动驾驶控制器108的功能之外。AD并行处理系统364和/或通用处理电路可以包括根据本公开供应的一个或多个SoC。
图4A至图9描述了支持自动驾驶的并行处理系统。该并行处理系统可以包括单个SoC或多个SoC,一个或多个SoC可以根据本公开的一个或多个实施例而被安全地供应。参照图4A至图9描述的原理和教导也可以应用于其它系统的SoC,例如金融服务系统、医疗处理系统和空中交通控制系统以及其它系统的SoC。
图4A是示出根据本公开来构造和操作的自动驾驶并行处理系统400的第一实施例的框图。并行处理系统400可以是图3B的并行处理系统364。备选地,并行处理系统400可以是服务车辆的自动驾驶需求的单独构造。并行处理系统400包括多个并行处理器402A、402B、...、402N,对从多个自动驾驶传感器212A-212N接收的公共输入数据进行操作。多个并行处理器402A-402N中的每个并行处理器包括多个组件,其中一些组件但不是全部组件在图4A中示出。图4A(和图4B)中未示出的其它组件可以例如包括:内部通信电路,例如片上网络(NoC)通信电路;存储器控制器;并行处理器通用接口通道(GIC)电路;一个或多个网络接口;只读存储器(ROM),例如,系统ROM和安全ROM;随机存取存储器(RAM),例如通用RAM、高速缓存存储器RAM以及安全RAM;看门狗定时器;以及其它通信接口。
第一并行处理器402A包括一个或多个通用处理器404A、一个或多个卷积神经网络(CNN)引擎406A、安全性处理器子系统(SCS)408A和安全处理器子系统(SMS)410A。同样,第二并行处理器402B包括一个或多个通用处理器404B、一个或多个CNN引擎406B、SCS 408B和SMS 410B。最后,第N并行处理器402N包括一个或多个通用处理器404N、一个或多个CNN引擎406N、SCS 408N和SMS 410N。
通常,SCS 408A-408N负责相应的多个并行处理器402A-402N的安全性。由SCS408A-408N执行的安全性功能可以包括授权固件更新、限制对存储器的访问,授权/取消授权与多个处理系统402A-402N外部的组件的通信权限,以及其它安全性功能。安全性操作可以被执行作为一组保护多个并行处理器402A-402N的操作,即,启动操作、验证软件/固件更新、监视多个并行处理器的访问等。一组SCS 408A-408N可以一起工作,以首先独立地确定是否授权操作,并且其次在给出授权之前作出需要所有SCS 408A-408N的同意的组决定。
SMS 410A-410C负责自动驾驶控制器的自动驾驶的安全。因为多个并行处理器402A-402N基本上对公共输入数据进行操作并产生相应的输出,所以SMS 410A-410N的作用是确定并行处理器402A-402N的相应输出是否一致,如果是的话,确定是否授权启动或继续自动驾驶。
自动驾驶并行处理系统364还包括通信电路412,通信电路412被配置为支持多个并行处理器402A-402N之间的通信,包括多个并行处理器402A-402N的通用处理器404A-404N之间的通信、以及由SCS密码术保护的多个并行处理器402A-402N的SCS 408A-408N之间的通信。此外,通信电路412还被配置为支持由SMS密码术保护的多个并行处理器402A-402N的SMS410A-410N之间的通信,SMS密码术与SCS密码术不同。利用通信电路412的各个方面,通信电路412可以部分地形成在多个并行处理器402A-402N中。
SCS和SMS密码术可以是任意数目的不同密码术,例如,公钥密码术、密钥密码术或散列密钥密码术。读者将理解的是,可以使用许多不同类型的密码术来实现本公开的原理。因为不同密码术的结构和操作通常是已知的,所以这些结构和操作将不在本文进一步描述,除非它们涉及本公开的原理和教导。本文描述的SCS和SMS密码术(和其它密码术)将参照公钥密码术来完成,在该公钥密码术中SCS私钥用于加密SCS之间的通信,并且在该公钥密码术中SMS私钥用于加密SMS之间的通信。私钥密码术还可以用于保护多个并行处理器402A-402N的通用处理器404A-404N之间、车辆100A的组件之间、车辆之间(例如,车辆100A与100D之间)以及车辆(例如100A)与自动驾驶服务器16之间的通信。
可以从专用于第一SCS 408A的本地存储器(例如ROM)或从第一SCS 408A的电阻器晶体管逻辑(RTL)检索SCS私钥。备选地,SCS私钥可以由第一SCS 408A基于从专用于第一SCS的本地存储器检索的数据生成。可以通过第一SCS 408A的专用硬件来执行SCS私钥的生成或SCS私钥的检索。
类似地,可以从专用于第一SMS 410A的本地存储器(例如ROM)或从第一SMS 410A的RTL检索SMS私钥。备选地,SMS私钥可以由第一SMS 410A基于从专用于第一SMS 410A的本地存储器检索的数据生成。可以通过第一SMS 410A的专用硬件来执行SMS私钥的生成或SMS私钥的检索。
根据本公开的一方面,多个并行处理器402A-402N可以被配置为使得第二SCS408B被配置为将从另一SCS 408A接收的SCS私钥存储在专用于SCS 408A的本地存储器中。类似地,第二SMS 410B可以被配置为将从另一SMS 410A接收的SMS私钥存储在专用于SMS410B的本地存储器中。
根据本公开的另一方面,多个并行处理器402A-402N中的每个并行存储器包括与其SCS 408A-408N对应的专用SCS密码术硬件。根据本公开的又一方面,多个并行处理器402A-402N中的每个并行存储器包括与其SMS 410A-410N对应的专用SMS密码术硬件。
根据稍微不同的方面,第一并行处理器402A可以包括SCS 408A,SCS 408A包括专用SCS存储器和/或SCS密码术硬件。在这种情况下,SCS 408A从其专用存储器检索SCS私钥或生成SCS私钥,并且将SCS私钥分配到其它SCS 408B-408N。在这种情况下,其它SCS 408B-408N中的一个或多个SCS不具有专用SCS存储器或SCS密码术硬件。这些相同方面可以应用于多个并行处理器402A-402N的SMS 410A-410N。
在建立SCS密码术时,多个并行处理器402A-402N中的第一并行处理器402A的第一SCS(例如,408A)可以被配置为与多个并行处理器402A-402N中的第二并行处理器402B的第二SCS 408B建立私有通信链路,并且使用该私有通信链路以将SCS私钥传输到第二并行处理器402B的第二SCS 408B,以随后用于受SCS密码术保护的通信中。在与多个并行处理器中的第二并行处理器402B的第二SCS 408B建立私有通信链路时,第一并行处理器402A的第一SCS 408A可以使用第一SCS 408A的专用SCS密码术硬件,并且第二并行处理器402B的第二SCS 408B可以使用第二SCS 408B的专用SCS密码术硬件。这些操作将在本文参照图6A、图6B、图6C、图7和图8进一步描述。如将要描述的那样,在与多个并行处理器中的第二并行处理器的第二SCS建立私有通信链路时,第一SCS可以使用Diffie-Hellman算法和/或Rivest-Shamir-Adleman(RSA)算法中的一个或多个算法。
自动驾驶并行处理系统400可以具有许多不同的物理构造。根据一种构造,多个并行处理器402A-402B形成在单个SoC上。利用这种构造,通信电路412也可以形成在SoC上。利用另一构造,多个并行处理器形成在不同的相应集成电路(不同的SoC)上。此外,利用又一构造,多个并行处理器402A-402N中的第一组并行处理器形成在第一集成电路(第一SoC)上,多个并行处理器402A-402N中的第二组并行处理器形成在第二集成电路(第二SoC)上。当然,在不脱离本公开的范围的情况下,可以形成其它物理构造。根据本公开的一个或多个实施例,可以安全地供应这些SoC中的每一个SoC。
根据本公开的另一方面,通信电路使用不同于SCS密码术和SMS密码术的车辆内密码术来支持多个自动驾驶传感器212A-212N与自动驾驶控制器202之间的车辆内通信。此外,根据本公开的又一方面,其中通信电路使用不同于车辆内密码术、SCS密码术以及SMS密码术的车辆外密码术来支持车辆外通信。
图4B是示出根据本公开来构造和操作的自动驾驶并行处理系统450的第二实施例的框图。自动驾驶并行处理系统450可以是图3B的自动驾驶并行处理系统364或者可以是单独的构造。如与图4A的结构形成对比,图4B的自动驾驶并行处理系统450包括用于每个并行处理器452A-452N的SoC。此外,通信电路453A-453N分别驻留在多个并行处理器452A-452N中。并行处理系统可以服务车辆的所有自动驾驶需求。
并行处理系统450包括多个并行处理器452A、452B、...、452N,从而对从多个自动驾驶传感器212A-212N接收的公共输入数据进行操作。并行处理系统450还向车辆控制器220、222、226和224提供输出数据。该输出数据可以通过多个并行处理器452A-452N之间的协议或通过多个并行处理器452A-452N中的指定并行处理器来提供。
多个并行处理器452A-452N中的每个并行处理器可以包括图4A中未示出的组件,并且该组件可以包括:内部通信电路,例如片上网络(NoC)通信电路;存储器控制器;并行处理器通用接口通道(GIC)电路;一个或多个网络接口;只读存储器(ROM),例如系统ROM和安全ROM;随机存取存储器(RAM),例如通用RAM,高速缓存存储器RAM以及安全RAM;看门狗定时器;以及其它通信接口。
第一并行处理器452A包括通信电路453A、一个或多个通用处理器454A、一个或多个CNN引擎456A、SCS 458A和SMS 460A。类似地,第二并行处理器452B包括通信电路453B、一个或多个通用处理器454B、一个或多个CNN引擎456B、SCS 458B和SMS 460B。最后,第N并行处理器452N包括通信电路453N、一个或多个通用处理器454N、一个或多个CNN引擎456N、SCS458N和SMS 460N。
通信电路453A-453N被配置为支持多个并行处理器452A-452N之间的通信,包括多个并行处理器452A-452N的通用处理器454A-454N之间的通信、以及多个并行处理器452A-452N中由SCS密码术保护的SCS 458A-458N之间的通信。此外,通信电路453A-453N还被配置为支持多个并行处理器452A-452N中由SMS密码术保护的SMS 460A-460N之间的通信,SMS密码术与SCS密码术不同。利用通信电路462的各个方面,通信电路453A-453N可以部分地形成在多个并行处理器452A-452N的外部。
图4B的并行处理系统450的SCS和SMS密码术可以与参照图4A描述的SCS和SMS密码术相似。此外,图4B的并行处理系统450的SCS和SMS的特定结构和操作可以与图4A的相同或相似。此外,公钥密码术还可以用于保护多个并行处理器452A-452N的通用处理器454A-454N之间、车辆100A的组件之间、车辆之间(例如,车辆100A与100D之间)以及车辆(例如100A)与自动驾驶服务器16之间的通信。
可以从专用于第一SCS 458A的本地存储器(例如ROM)或从第一SCS 458A的电阻器晶体管逻辑(RTL)来检索SCS私钥。备选地,SCS私钥可以由第一SCS 458A基于从专用于第一SCS的本地存储器检索的数据来生成。可以通过第一SCS 458A的专用硬件来执行SCS私钥的生成或SCS私钥的检索。
类似地,可以从专用于第一SMS 460A的本地存储器(例如ROM)或从第一SMS 460A的RTL来检索SMS私钥。备选地,SMS私钥可以由第一SMS 460A基于从专用于第一SMS 460A的本地存储器检索的数据来生成。可以通过第一SMS 460A的专用硬件来执行SMS私钥的生成或SMS私钥的检索。
根据本公开的一方面,多个并行处理器452A-452N可以被配置为使得第二SCS458B被配置为将从另一SCS 458A接收的SCS私钥存储在专用于SCS 458A的本地存储器中。类似地,第二SMS460B可以被配置为将从另一SMS 460A接收的SMS私钥存储在专用于SMS460B的本地存储器中。
在建立SCS密码术时,多个并行处理器452A-452N中的第一并行处理器452A的第一SCS(例如,458A)可以被配置为与多个并行处理器452A-452N中的第二并行处理器452B的第二SCS458B建立私有通信链路,并且使用该私有通信链路以将SCS私钥传输到第二并行处理器452B的第二SCS 458B,以随后用于受SCS密码术保护的通信中。在与多个并行处理器中的第二并行处理器452B的第二SCS 458B建立私有通信链路时,第一并行处理器452A的第一SCS 458B可以使用第一SCS 458B的专用SCS密码术硬件,并且第二并行处理器452B的第二SCS 458B可以使用第二SCS 458B的专用SCS密码术硬件。这些操作将在本文参照图6A、图6B、图6C、图7和图8进一步描述。如将要描述的那样,在与多个并行处理器中的第二并行处理器的第二SCS建立私有通信链路时,第一SCS可以使用Diffie-Hellman算法和/或RSA算法中的一个或多个算法。
利用图4B的构造,多个并行处理器452A-452N形成为多个SoC。因此,根据本公开的一个或多个实施例,可以安全地供应这些SoC中的每个SoC。根据本公开的另一方面,通信电路使用不同于SCS密码术的车辆内密码术来支持多个自动驾驶传感器212A-212N与自动驾驶控制器450之间的车辆内通信。此外,根据本公开的又一方面,其中通信电路使用不同于车辆内密码术和SCS密码术的车辆外密码术来支持车辆外通信。
图5A是示出图4A和/或图4B的自动驾驶并行处理器(400和450)的组件之间的通信的框图。示出了三个并行处理器402A、402B和402C,该并行处理器402A、402B和402C以不同的方式服务其通用处理器404A-404C之间、在其SCS 408A-408C之间以及在其SMS 410A-410C之间的通信。从一个观点来看,在不同的组件集之间建立不同的信任根(roots oftrust)。在并行处理器402A、402B和402C的通用处理器404A、404B和404C之间建立第一信任根。可以建立通用处理器404A、404B和404C之间的这种信任根,使得其间的通信不被加密。备选地,可以基于车辆范围来建立通用处理器404A、404B和404C之间的信任根,使得通过车辆内的所有组件使用共享公钥/私钥对以保护车辆内通信,例如,在通用处理器404A、404B和404C与自动驾驶传感器212A-212N之间。然后,第一信任根被用于支持通用处理器404A、404B和404C之间的通用处理器通信502。
此外,在使用SCS公钥/私钥对的SCS 408A、408B和408C之间建立另一信任根。SCS私钥(和SCS公钥)可以是SCS 408A、408B或408C的一个SCS中的硬连线,例如ROM或RTL。然后,SCS私钥被分配在并行处理系统的其它SCS 408B和408C之间,该SCS私钥随后用于SCS408A-408C之间的所有SCS通信504。
另外,在使用与SCS公钥/私钥对不同的SMS公钥/私钥对的SMS 410A、410B和410C之间建立另一信任根。SMS私钥(和SMS公钥)可以是SMS 410A、410B或410C的一个SMS中的硬连线,例如ROM或RTL。然后,SMS私钥被分配在并行处理系统的其它SMS 410B和410C之间,该SMS私钥随后用于SMS410A-410C之间的所有SMS通信506。
相同或不同的加密类型可以用于不同的信任根。例如,弱加密可以用于具有用于SCS通信504和SMS通信506的较强加密的通用处理器通信502。此外,对于一些方面,最强加密用于SCS通信504,因为SCS是并行处理系统的最安全的组件。
图5B是示出根据描述的实施例的一个或多个方面的图4A和/或图4B的自动驾驶并行处理器的并行处理器的组件的框图。并行处理器550包括一个或多个通用处理器552、通信电路558、一个或多个CNN引擎560、SCS 562和SMS 576。通用处理器包括本地RAM 554和本地ROM 556。通信电路558被配置为支持并行处理器550与其它并行处理器之间以及并行处理器550与并行处理器550外部的其它组件之间的通信。RAM 590服务并行处理器550,并且存储可以包括公钥/私钥592的数据。ROM 594服务并行处理器550,并且存储可以包括公钥/私钥596的数据。
并行处理器550还包括(一个或多个)CNN引擎506、SCS 562和SMS 576。SCS 562包括可以用于存储公钥/私钥566的专用RAM 564。此外,SCS 562还包括可以分别存储公钥/私钥570和574的专用ROM 568和RTL 572。SCS 562还可以包括支持根据本公开的SCS密码术操作的专用SCS密码术硬件573,并且其可以包括密钥生成、通信加密和通信解密操作。
类似地,SMS 576还包括可以用于存储公钥/私钥580的专用RAM 578。此外,SMS576还包括可以分别存储公钥/私钥584和588的专用ROM 582和RTL 586。RTL 572和586在并行处理器550的制造期间被硬编程,并且ROM 568和582可以在并行处理器550的供应期间被编程。SMS 576还可以包括根据本公开支持SMS密码术操作的专用SMS密码术硬件577,并且其可以包括密钥生成、通信加密和通信解密操作。
并行处理器550支持SCS和SMS密码术,SCS和SMS密码术可以与参照图4A、图4B和图5A描述的SCS和SMS密码术相同/相似。此外,并行处理器550还支持通用处理器552通信,如先前在本文参照其它结构描述的。
与先前描述的操作一致,可以从ROM 568或RTL 572检索SCS私钥。备选地,SCS私钥可以基于从ROM 568或RTL 572检索的数据由SCS 562生成。SCS私钥的生成或SCS私钥的检索可以由SCS 562的专用硬件573执行。
类似地,可以从ROM 582或RTL 586检索SMS私钥。备选地,SMS私钥可以基于从ROM582或RTL 586检索的数据由SMS 576生成。生成SMS私钥或检索SMS私钥可以由SMS 576的专用SMS电路577执行。
参照图4A-图5B的全部,根据本公开的实施例的SoC的供应,SCS可以被配置为经由通信电路而接收加密的供应数据、从SoC的RTL访问公钥、以及使用公钥来解密加密的供应数据以创建解密的供应数据。在一些实施例中,RTL可以是SoC的引导ROM。此外,SCS中的至少一个和多个处理器中的至少一个处理器可以被配置为使用解密的供应数据来供应SoC。SCS可以使用公钥来进一步加密消息,以创建加密的消息并经由通信电路传输加密的消息。
仍然参照图4A-图5B的全部,根据本公开的另一实施例,SCS可以被配置为经由通信电路而接收加密的供应数据、从SoC的RTL访问共享密钥、以及使用共享密钥来解密加密的供应数据以创建解密的供应数据。在一些实施例中,RTL可以是SoC的引导ROM。此外,SCS中的至少一个SCS和多个处理器中的至少一个处理器可以被配置为使用解密的供应数据来供应SoC。SCS还可以被配置为使用共享密钥来加密消息以创建加密的消息,并且经由通信电路传输加密的消息。
在其它实施例中,公钥/私钥密码术和共享密钥都可以用于在供应及之后的期间提供进一步的保护。在供应期间实施的安全性措施可以进一步在稍后的时间使用,以认证或加载固件和/或认证从SoC发送到供应站的数据,例如,将数据加载到需要最大保护的SoC中,例如,加载SCS私钥,加载SMS私钥、车辆内私钥和/或车辆间私钥。公钥/私钥和共享密钥中的一者或两者可以用于服务这些事务。可以在现场部署SoC之前或之后执行这些操作。
图6A是示出根据一个或多个描述的实施例的自动驾驶控制器在多个SCS之间建立安全通信的操作的流程图。根据图6A的操作600,自动驾驶控制器的并行处理系统的相应并行处理器的第一SCS从ROM或RTL访问SCS私钥(步骤602)。第一SCS可以使用其专用SCS硬件以访问SCS私钥。操作600继续,第一SCS建立与并行处理系统的其它SCS的安全通信路径(步骤604)。步骤604的操作还可以使用SCS的专用硬件来执行。操作600继续,第一SCS使用建立的安全通信路径来将SCS私钥传输到其它SCS(步骤606)。步骤606还可以使用SCS的专用硬件来执行。在分配SCS私钥的情况下,操作以SCS使用SCS私钥彼此通信(步骤608)而结束。步骤608还可以由SCS使用专用硬件来执行。
图6B是示出根据一个或多个描述的实施例的自动驾驶控制器在多个安全处理器子系统(SCS)之间建立安全通信的不同操作的流程图。根据图6B的操作620,自动驾驶控制器的并行处理系统的相应并行处理器的第一SCS生成SCS私钥(步骤622)。SCS私钥可以基于从ROM或RTL检索的数据生成。此外,第一SCS可以使用其专用SCS硬件以生成SCS私钥。
操作620继续,第一SCS建立与并行处理系统的其它SCS的安全通信路径(步骤624)。步骤624的操作还可以使用SCS的专用硬件来执行。操作620继续,第一SCS使用建立的安全通信路径来将SCS私钥传输到其它SCS(步骤626)。步骤626还可以使用SCS的专用硬件来执行。在分配SCS私钥的情况下,操作以SCS使用SCS私钥彼此通信(步骤628)而结束。步骤628还可以由SCS使用专用硬件来执行。
图6A的操作600和图6B的操作620还可以针对SMS执行。在这种情况下,SMS将执行分别与图6A和图6B的操作600和620相同、类似或等同的操作。
图6C是示出根据一个或多个描述的实施例的自动驾驶控制器在多个SCS和多个SMS之间建立安全通信的操作的流程图。操作650开始,多个并行处理器中的第一并行处理器的第一SCS获取SCS私钥(步骤654)。例如,可以从存储器(例如ROM)或RTL检索SCS私钥。备选地,SCS可以使用从存储器或从RTL检索的数据来生成SCS私钥。操作650继续,第一SCS将SCS私钥安全地分配到多个并行处理器中的其它并行处理器的其它SCS(步骤656)。步骤654和656可以使用第一SMS的专用硬件和/或专用存储器来执行。
操作650继续,多个并行处理器中的第一并行处理器的第一SMS获取SMS私钥,其中SMS私钥与SCS私钥不同(步骤658)。例如,可以从存储器(例如ROM)或从RTL检索SMS私钥。备选地,SMS可以使用从存储器或从RTL检索的数据生成SMS私钥。操作650继续,第一SMS将SMS私钥安全地分配到多个并行处理器中的其它并行处理器的其它SMS(步骤660)。步骤656和658可以使用第一SMS的专用硬件和/或专用存储器来执行。
操作650继续,第一SCS使用基于SCS私钥的SCS密码术来与多个并行处理器中的其它并行处理器的其它SCS通信(步骤662),并且操作650以第一SMS使用基于SMS私钥的SMS密码术来与多个并行处理器中的其它并行处理器的其它SMS通信(步骤664)而结束。图6C的操作650可以使用第一SCS和/或第一SMS的专用硬件和/或专用存储器来执行。
图7是示出根据一个或多个描述的实施例的自动驾驶控制器分配SCS私钥的操作的流程图。操作700以启动或重置开始,并且开始于自动驾驶控制器的并行处理器的每个SCS生成公钥/私钥对(步骤704)。因此,在步骤704结束之后,每个SCS具有相应的公钥/私钥对,该公钥/私钥对可以使用专用硬件和/或专用存储器生成。然后,SCS彼此共享它们的公钥(步骤706)。然后,第一SCS使用隐私算法来与其它SCS建立私有通信链路(步骤708)。步骤708可以实现Diffie-Hellman算法,该算法使用不同SCS的公钥/私钥对来在SCS之间建立共享秘密字,以加密其间的通信。
操作700继续,第一SCS访问或生成SCS私钥(步骤710)。如之前所讨论的,在编程时,可以从ROM或RTL访问SCS私钥。备选地,SCS可以使用从ROM或RTL访问的数据来生成SCS私钥。然后,第一SCS使用私有通信链路来将SCS私钥分配到SCS的彼此(步骤712)。然后,SCS使用SCS私钥来加密彼此之间的通信(步骤714)。SMS可以使用与图7的操作700相同、类似或等同的技术,以建立其间的加密通信。
图8是示出根据一个或多个描述的实施例的自动驾驶控制器分配SCS私钥的第二操作的流程图。操作800以启动或重置开始,并且开始于自动驾驶控制器的并行处理器的每个SCS使用RSA算法生成RSA公钥(和对应的解密密钥)(步骤804)。因此,在步骤804结束之后,每个SCS具有相应的公钥,该公钥可以使用专用硬件和/或专用存储器生成。然后,SCS彼此共享其RSA公钥(步骤806)。
操作800继续,第一SCS访问或生成SCS私钥(步骤808)。如之前所讨论的,在编程时,可以从ROM或RTL访问SCS私钥。备选地,SCS可以使用从ROM或RTL访问的数据来生成SCS私钥。然后,第一SCS通过利用每个其它SCS的相应RSA密钥加密SCS私钥来将SCS私钥分配到SCS的彼此,并且传输分别加密的SCS私钥(步骤810)。其它SCS使用用于创建使用其生成的RSA解密密钥的其私钥的相应数据来接收和解密SCS私钥(步骤812)。然后,SCS使用SCS私钥来加密彼此之间的通信(步骤814)。SMS可以使用与图8的操作800相同、类似或等同的技术,以建立其间的加密通信。
图9是示出根据一个或多个描述的实施例的自动驾驶控制器分配和验证SCS私钥的操作的流程图。图9的操作900支持SCS私钥的验证。操作900开始于多个SCS从ROM/RTL访问SCS私钥(步骤902)。步骤902可以使用SCS的专用硬件来执行。操作继续,多个SCS建立与其它SCS的安全通信路径(步骤904)。步骤904可以与图7的操作700一致地执行和/或使用专用硬件。然后,多个SCS使用安全通信路径来将它们分别访问的SCS私钥传输到所有其它SCS(步骤906)。其它SCS经由安全通信路径而接收SCS私钥(步骤908)。然后,其它SCS通过将它们接收的所有SCS私钥彼此进行比较来验证所接收的SCS私钥(步骤910)。在验证完成的情况下,SCS使用SCS私钥彼此通信(步骤912)。这些步骤902-912的全部可以使用专用于SCS的硬件来执行。
在最简单的实施方式中,第一和第二SCS访问大概相同的相应SCS私钥。然而,对于SCS而言不知道这些SCS私钥是否相同。因此,第一和第二SCS中的每个SCS将它们访问的SCS私钥分配到其它SCS中的全部SCS。第一SCS从第二SCS接收SCS私钥,并将接收到的SCS私钥与其本地访问的私钥进行比较。类似地,第二SCS从第一SCS接收SCS私钥,并将接收到的SCS私钥与其本地访问的私钥进行比较。其它SCS从第一SCS和第二SCS中的每个SCS接收SCS私钥,并将它们接收的密钥彼此进行比较。如果SCS私钥彼此有利地比较,则认为SCS私钥分配是成功的。SMS私钥可以采用这些相同的技术。
图10是示出根据描述的实施例的用于安全地供应SoC的供应装置的操作的流程图。操作1000开始于生成具有公钥和私钥的公钥/私钥对(步骤1002)。可以使用可用的加密技术来执行生成公钥/私钥对。步骤1002在制造SoC之前由供应站或较高等级系统执行。然后,供应站或较高等级系统安全地存储私钥(步骤1004)。在SoC的制造期间,将公钥嵌入在SoC的RTL中(步骤1006)。RTL可以是SoC的引导ROM,或者在操作期间可访问的另一位置。操作1000继续,供应站使用私钥来加密供应数据以创建加密的供应数据(步骤1008)。然后,操作1000包括将加密的供应数据传送到SoC以供应SoC(步骤1010)。
操作1000可选地包括供应站使用公钥/私钥对进一步与SoC通信(步骤1012)。如步骤1014所确定的,步骤1012的操作继续直到完成。当供应站与SoC之间的通信完成时,操作结束。步骤1010和1012的通信可以在供应站与SoC的SCS(或SMS)之间进行。
操作1000可以可选地进一步例如使用高级加密标准(AES)操作来生成共享密钥,在SoC的制造期间将共享密钥嵌入SoC的RTL中,以及使用共享密钥来加密供应数据。利用该可选的方法,操作可以进一步包括从SoC接收加密的通信并使用共享密钥以解密加密的通信。
图11是示出根据描述的实施例的用于安全地供应SoC的供应装置的操作的流程图。操作1100开始于例如使用高级加密标准(AES)操作来生成共享密钥(步骤1102)。步骤1102在制造SoC之前由供应站或较高等级系统执行。然后,供应站或较高等级系统安全地存储共享密钥(步骤1104)。在SoC的制造期间,共享密钥被嵌入在SoC的RTL中(步骤1106)。RTL可以是SoC的引导ROM,或者在操作期间可访问的另一位置。操作1100继续,供应站使用共享密钥来加密供应数据以创建加密的供应数据(步骤1108)。然后,操作1100包括将加密的供应数据传送到SoC以供应SoC(步骤1110)。
操作1100可选地包括供应站使用共享密钥进一步与SoC通信(步骤1112)。如步骤1114所确定的,步骤1112的操作继续直到完成。当供应站与SoC之间的通信完成时,操作结束。步骤1110和1112的通信可以在供应站与SoC的SCS(或SMS)之间进行。
图12是示出根据描述的实施例的SoC在其安全供应期间的操作的流程图。操作1200开始于SoC接收加密的供应数据(步骤1202)。操作1200继续,SoC从其RTL访问公钥(步骤1204)。操作继续,SoC使用公钥来解密加密的供应数据以创建解密的供应数据(步骤1206)。然后,操作1200包括SoC使用解密的供应数据来供应本身(步骤1208)。操作1202-1208可以由SoC的SCS(或SMS)执行。
操作1200可选地包括供应站使用公钥/私钥对来进一步与SoC通信(步骤1210)。如步骤1212所确定的,步骤1212的操作继续直到完成。当供应站与SoC之间的通信完成时,操作结束。步骤1210的通信操作可以由SoC的SCS(或SMS)执行。
图12的操作1200可以进一步包括由SoC从SoC的RTL访问共享密钥,并且由SoC进一步使用共享密钥来解密加密的供应数据。另一可选操作包括由SoC加密使用共享密钥的消息以创建加密的消息并由SoC传输加密的消息。
图13是示出根据描述的实施例的SoC在其安全供应期间的操作的流程图。操作1300开始于SoC接收加密的供应数据(步骤1302)。操作1300继续,SoC从其RTL访问共享密钥(步骤1304)。操作继续,SoC使用共享密钥来解密加密的供应数据以创建解密的供应数据(步骤1306)。然后,操作1300包括SoC使用解密的供应数据来供应本身(步骤1308)。操作1302-1308可以由SoC的SCS(或SMS)执行。
操作1300可选地包括供应站使用共享密钥进一步与SoC通信(步骤1310)。如步骤1312所确定的,步骤1310的操作继续直到完成。当供应站与SoC之间的通信完成时,操作结束。步骤1310的通信操作可以由SoC的SCS(或SMS)执行。
在前述说明书中,已经参照特定实施例描述了本公开。然而,如本领域技术人员将理解的,在不脱离本公开的精神和范围的情况下,可以以各种其它方式修改或以其它方式实施本文公开的各种实施例。因此,该描述被认为是说明性的,并且目的是为了教导本领域技术人员制作和使用所公开的系统、方法和计算机程序产品的各种实施例的方式。应该理解的是,本文示出和描述的公开的形式将被视为代表性实施例。等效元件、材料、进程或步骤可以代替本文中代表性地示出和描述的那些。此外,本公开的某些特征可以独立于其它特征的使用而被利用,所有这些对于本领域技术人员在受益于本公开的描述之后是显而易见的。
本文描述的例程、方法、步骤、操作或其部分可以使用软件和固件指令通过电子设备(例如,一个或多个处理器)来实施。“处理器”或“处理电路”包括处理数据、信号或其它信息的任意硬件系统、硬件机制或硬件组件。处理器可以包括具有中央处理单元、多个处理单元、用于实现功能的专用电路或其它系统的系统。一些实施例可以通过使用一个或多个数字计算机或处理器中的软件编程或代码、通过使用专用集成电路(ASIC)、可编程逻辑装置、现场可编程门阵列(FPGA)、光学、化学、生物、纳米工程系统、组件和机制来实施。基于本文代表性提供的公开和教导,本领域技术人员将理解实施本实用新型的其它方式或方法。
如本文所使用的,术语“包括”、“包含”、“包括有”、“包括”、“具有”、“有”或其任意上下文变型旨在涵盖非排他性的包括。例如,包括元素列表的进程、产品、物品或设备不一定仅限于那些元素,而是可以包括未明确列出的或者这种进程、产品、物品或设备固有的其它元素。此外,除非有相反的明确说明,否则“或”是指包含性的或不是排他性的。例如,条件“A或B”由以下任何一个满足:A为真(或存在)且B为假(或不存在),A为假(或不存在)且B为真(或现在),A和B均为真(或存在)。
尽管可以以特定顺序呈现步骤、操作或计算,但是可以在不同实施例中改变这种顺序。在一些实施例中,在本说明书中顺序地显示多个步骤的程度,可以同时执行可选实施例中的这些步骤的一些组合。本文描述的操作序列可以被另一进程中断、暂停、反转或以其它方式控制。
还应该理解的是,附图/图中描绘的元件中的一个或多个元件也可以以更加分离或集成的方式实施,或者甚至在某些情况下被移除或呈现为不可操作,如根据特定的应用是有用的。另外,除非另有特别说明,否则附图/图中的任意信号箭头应该仅被视为示例性而非限制性的。
Claims (6)
1.一种片上系统,其特征在于,包括:
多个处理器;
存储器;
通信电路;以及
安全性处理器子系统,包括:
电阻器晶体管逻辑,用于存储公钥;以及
专用密码术硬件,连接到所述通信电路并且连接到所述电阻器晶体管逻辑,所述专用密码术硬件经由所述通信电路接收加密的供应数据,并且从所述电阻器晶体管逻辑访问所述公钥,其中所述专用密码术硬件被配置为使用所述公钥来解密所述加密的供应数据,以创建解密的供应数据。
2.根据权利要求1所述的片上系统,其特征在于,所述安全性处理器子系统中的至少一个安全性处理器子系统和所述多个处理器中的至少一个处理器被配置为使用所述解密的供应数据来供应所述片上系统。
3.根据权利要求1所述的片上系统,其特征在于,所述专用密码术硬件进一步被配置为:使用所述公钥来加密消息以创建加密的消息,并且所述通信电路被配置为传输来自所述安全性处理器子系统的所述加密的消息。
4.一种片上系统,其特征在于,包括:
多个处理器;
存储器;
通信电路;以及
安全性处理器子系统,包括:
电阻器晶体管逻辑,用于存储共享密钥;以及
专用密码术硬件,连接到所述通信电路并且连接到所述电阻器晶体管逻辑,所述专用密码术硬件经由所述通信电路接收加密的供应数据,并且从所述电阻器晶体管逻辑访问所述共享密钥,其中所述专用密码术硬件被配置为使用所述共享密钥来解密所述加密的供应数据,以创建解密的供应数据。
5.根据权利要求4所述的片上系统,其特征在于,所述安全性处理器子系统中的至少一个安全性处理器子系统和所述多个处理器中的至少一个处理器被配置为使用所述解密的供应数据来供应所述片上系统。
6.根据权利要求4所述的片上系统,其特征在于,所述专用密码术硬件进一步被配置为:使用所述共享密钥来加密消息以创建加密的消息,并且所述通信电路被配置为传输来自所述安全性处理器子系统的所述密的消息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862663429P | 2018-04-27 | 2018-04-27 | |
US62/663,429 | 2018-04-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN210136494U true CN210136494U (zh) | 2020-03-10 |
Family
ID=68292628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201920568458.5U Active CN210136494U (zh) | 2018-04-27 | 2019-04-24 | 片上系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11354449B2 (zh) |
CN (1) | CN210136494U (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2564878B (en) * | 2017-07-25 | 2020-02-26 | Advanced Risc Mach Ltd | Parallel processing of fetch blocks of data |
US11005649B2 (en) | 2018-04-27 | 2021-05-11 | Tesla, Inc. | Autonomous driving controller encrypted communications |
US11593119B2 (en) | 2018-04-27 | 2023-02-28 | Tesla, Inc. | Autonomous driving controller parallel processor boot order |
EP4060538A1 (en) * | 2021-03-17 | 2022-09-21 | Secure Thingz Limited | A provisioning control apparatus and method for provisioning electronic components for electronic devices |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0019341D0 (en) | 2000-08-08 | 2000-09-27 | Easics Nv | System-on-chip solutions |
US7293159B2 (en) | 2004-01-15 | 2007-11-06 | International Business Machines Corporation | Coupling GP processor with reserved instruction interface via coprocessor port with operation data flow to application specific ISA processor with translation pre-decoder |
US8046727B2 (en) | 2007-09-12 | 2011-10-25 | Neal Solomon | IP cores in reconfigurable three dimensional integrated circuits |
US8078850B2 (en) | 2008-04-24 | 2011-12-13 | International Business Machines Corporation | Branch prediction technique using instruction for resetting result table pointer |
US8423715B2 (en) | 2008-05-01 | 2013-04-16 | International Business Machines Corporation | Memory management among levels of cache in a memory hierarchy |
IT1392495B1 (it) | 2008-12-29 | 2012-03-09 | St Microelectronics Srl | Metodo per progettare un acceleratore ad elevate prestazioni di tipo asic (circuito integrato ad applicazione specifica - application-specific integrated circuit) |
US20100284539A1 (en) * | 2009-03-09 | 2010-11-11 | The Regents Of The University Of Michigan | Methods for Protecting Against Piracy of Integrated Circuits |
JP5585332B2 (ja) | 2010-09-14 | 2014-09-10 | 日本電気株式会社 | 耐故障システム、マスタft制御lsi、スレーブft制御lsiおよび耐故障制御方法 |
US9129536B2 (en) * | 2012-08-31 | 2015-09-08 | Freescale Semiconductor, Inc. | Circuit for secure provisioning in an untrusted environment |
US9742563B2 (en) * | 2012-09-28 | 2017-08-22 | Intel Corporation | Secure provisioning of secret keys during integrated circuit manufacturing |
US9887839B2 (en) * | 2014-06-06 | 2018-02-06 | Rainberry, Inc. | Securely sharing information via a public key-value data store |
FR3025334B1 (fr) | 2014-09-02 | 2019-05-24 | Thales | Procede de determination par optimisation d'une architecture multi-coeurs |
US10042404B2 (en) | 2014-09-26 | 2018-08-07 | Netspeed Systems | Automatic generation of power management sequence in a SoC or NoC |
US9935870B2 (en) | 2016-01-14 | 2018-04-03 | Xilinx, Inc. | Channel selection in multi-channel switching network |
US20170223030A1 (en) | 2016-01-29 | 2017-08-03 | Splunk Inc. | Detection of security transactions |
AU2017304128B2 (en) | 2016-07-25 | 2022-03-10 | Apple Inc. | System for and method of authenticating a component of an electronic device |
US9955085B2 (en) | 2016-09-22 | 2018-04-24 | Apple Inc. | Adaptive bracketing techniques |
US10877806B2 (en) * | 2017-06-14 | 2020-12-29 | Intel Corporation | Method and apparatus for securely binding a first processor to a second processor |
US11214273B2 (en) | 2017-06-23 | 2022-01-04 | Nvidia Corporation | Method of using a single controller (ECU) for a fault-tolerant/fail-operational self-driving system |
TWI673991B (zh) * | 2017-11-20 | 2019-10-01 | 財團法人工業技術研究院 | 金鑰儲存裝置、金鑰儲存裝置之交易方法、交易系統及交易方法 |
US10635622B2 (en) | 2018-04-03 | 2020-04-28 | Xilinx, Inc. | System-on-chip interface architecture |
-
2019
- 2019-04-18 US US16/388,408 patent/US11354449B2/en active Active
- 2019-04-24 CN CN201920568458.5U patent/CN210136494U/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US11354449B2 (en) | 2022-06-07 |
US20190332815A1 (en) | 2019-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN210136494U (zh) | 片上系统 | |
US11314661B2 (en) | Hardware security for an electronic control unit | |
CN210310317U (zh) | 用于交通工具自动驾驶系统的自动驾驶控制器 | |
JP7197638B2 (ja) | セキュリティ処理方法及びサーバ | |
JP6741559B2 (ja) | 評価装置、評価システム及び評価方法 | |
JP2022528070A (ja) | 運転中の緊急車両のidの検証 | |
JP2023021333A (ja) | セキュリティ処理方法及びサーバ | |
US11960901B2 (en) | Autonomous driving controller parallel processor boot order | |
US11182485B2 (en) | In-vehicle apparatus for efficient reprogramming and controlling method thereof | |
CN105320034A (zh) | 使用诊断工具从车辆向远程服务器安全地提供诊断数据 | |
CN210324199U (zh) | 片上系统 | |
CN112534793A (zh) | 一种车载设备升级方法及相关装置 | |
US11356256B2 (en) | Secure vehicular part communication | |
JP6625293B2 (ja) | 鍵管理装置および通信機器 | |
JP2013026964A (ja) | 車両用情報更新装置および車両用情報更新方法 | |
KR102389727B1 (ko) | 차량 내 전자식 제어기 보안성 평가 방법 및 그 장치 | |
KR20160093764A (ko) | Otp rom을 활용하는 ecu 보안 통신 시스템 | |
WO2019069308A1 (en) | SYSTEM AND METHOD FOR VALIDATION OF COMMUNICATION AUTHENTICITY IN ONBOARD NETWORKS | |
US20230015693A1 (en) | Restoration of corrupted keys in a secure storage system | |
US20230087521A1 (en) | Computing device verification | |
Bertschy | Vehicle computer and network security: Vulnerabilities and recommendations | |
WO2017125978A1 (ja) | 評価装置、評価システム及び評価方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: Texas, USA Patentee after: TESLA, Inc. Address before: California Patentee before: TESLA, Inc. |
|
CP02 | Change in the address of a patent holder |