一种支持多来源可信认证的处理器芯片及制作使用方法技术

技术编号:35572001 阅读:16 留言:0更新日期:2022-11-12 15:56
本发明专利技术公开了一种支持多来源可信认证的处理器芯片及制作使用方法。芯片设计中,批量生成非对称公私密钥对,公钥固化在芯片的ROM中;确定使用的公钥后,将其索引号烧写在芯片中的一次性可编程存储器中;将芯片的ID号烧录在芯片中的另一一次性可编程存储器中;生成第二阶段执行代码后,将执行代码与芯片ID号进行拼接,使用摘要算法获得摘要后,使用所选择公钥对应的私钥对摘要进行签名;Boot ROM中的第一阶段启动代码将第二阶段执行代码搬运至内存后进行校验。本发明专利技术支持处理器多组认证组合,同一款芯片支持对多个可信源的认证,通过调整芯片存储公钥数量可调整可信源的数量,可信源之前相互隔离互不影响。信源之前相互隔离互不影响。信源之前相互隔离互不影响。

【技术实现步骤摘要】
一种支持多来源可信认证的处理器芯片及制作使用方法


[0001]本专利技术属于处理器芯片的应用
,具体涉及一种支持多来源可信认证的处理器芯片及制作使用方法。

技术介绍

[0002]Boot ROM是嵌入处理器芯片内的只读ROM,它包含处理器在上电或复位时执行的第一段代码,这些代码可以决定从哪里加载要执行的代码的下一部分以及如何或是否验证其正确性或有效性。
[0003]非对称密码体制也叫公钥加密技术,该技术是针对私钥密码体制(对称加密算法)的缺陷被提出来的。与对称密码体制不同,公钥加密系统中,加密和解密是相对独立的,加密和解密会使用两把不同的密钥,加密密钥(公开密钥)向公众公开,谁都可以使用,解密密钥(秘密密钥)只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,这样就大大加强了信息保护的力度。
[0004]处理器芯片在上电或复位后,会从固定的存储空间地址取指令并执行。芯片设计者一般会将需要执行的第一段代码存储在芯片内部的非易失存储器中(Boot ROM)。这些代码在芯片生产完成后就固化在芯片的内部,无论是第三方或芯片设计者都无法再对其进行修改
[0005]存储在Boot ROM中的代码是处理器芯片上电或复位后执行的第一段代码,这一部分代码通常会执行芯片内部的初始化工作,并将需要执行的下一部分代码从外部大容量存储器搬至系统的内存中,验证其正确性并跳转执行。
[0006]为了保证下一段执行代码的正确性,Boot ROM代码在跳转执行外部导入的下一段代码前会对导入的代码进行正确性的验证。(参见图1)
[0007]对下一步执行代码正确性校验包含两个步骤。第一步,验证代码传输中有没有发生错误;第二步,验证代码是可信的,即由受信任的来源提供。其中,第一步校验可通过CRC等信道编码来实现。第二步可信校验通常利用非对称加密算法来实现。以苹果公司iPhone的A系列芯片为例,芯片内部存储了一个公钥,当Boot ROM将需要执行的外部代码搬运至内存后,会使用该公钥对该代码进行一次验证签名的操作。只有验签正确后,Boot ROM才会引导处理器跳转至该段代码执行。因此,只有使用苹果公司私钥签名的代码才能在A系列处理器上运行,由此保证了执行代码的可信。
[0008]上述可信验证流程最大的问题在于可信验证的密钥对是单一的,以苹果公司为例,如果要让第三方手机生产商使用苹果出产的芯片,苹果公司就需要将私钥公开,这对苹果公司自身代码的安全造成了极大的隐患。而如果为第三方客户单独生产一款公钥不同的芯片成本巨大。

技术实现思路

[0009]本专利技术提出了一种解决上述技术问题的方法,通过在芯片内部植入多组公钥,可
实现一款芯片对多个可信来源的认证操作。本专利技术由以下几部分构成:
[0010]1.位于芯片中的Boot ROM只读非易失存储器(存储器A)。该存储器中存储着芯片第一阶段启动代码,该代码负责将下一阶段代码载入至芯片内存,并在执行前对下一阶段代码进行可信认证。
[0011]2.位于芯片中的ROM只读非易失存储器(存储器B),该部分存储器存储着若干个固化的公钥。以RSA2048算法为例,每个公钥占用256Byte,因此如果需要存储256个公钥,则需要64K字节的容量。
[0012]3.位于芯片中的eFuse一次性可编程存储器(存储器C),该存储器用于记录生效的公钥索引号。因此该存储器存储的数值与存储器B中的公钥条目数对应。以256个公钥为例,存储器C需要能够存储至少8bit,用于表示(0~255)。在芯片生产后,eFuse允许进行一次烧写,烧写完成后,该索引值将无法更改。
[0013]4.位于芯片中的eFuse一次性可编程存储器(存储器D),该存储器用于记录芯片ID号,芯片ID号用于对芯片用途的二次识别。
[0014]具体使用方法如下:
[0015]1.在芯片设计过程中,批量生成非对称公私密钥对,其中公钥固化在芯片中的ROM中(存储器B)。私钥妥善保存。
[0016]2.芯片生产完成后,可针对不同的应用场景或用户选择使用存储器B中存储的公钥。一旦确定使用的公钥后,将其索引号烧写在存储器C中。
[0017]3.将芯片的ID号烧录在存储器D中。ID号可每个芯片不同,也可以同一个使用场景和用户使用同一个ID号。
[0018]4.芯片的程序开发者在生成第二阶段执行代码后,需要将执行代码与芯片ID号进行拼接,使用摘要算法获得摘要后,使用所选择公钥对应的私钥对摘要进行签名,获得的签名附带在可执行代码后。
[0019]5.Boot ROM中的第一阶段启动代码将第二阶段执行代码搬运至内存后按下列顺序进行校验:
[0020]a)检查代码的芯片ID数据段是否与芯片自身的ID号一致,若不一致则终止执行。若一致,继续执行下一步:
[0021]b)使用与步骤4一致的摘要算法,对代码段除签名以外的数据进行摘要。
[0022]c)使用存储器C中的索引,在存储器B中找到对应的公钥,并使用该公钥对签名数据和b步骤得到的摘要数据进行验签操作,如验签通过则引导处理器跳转至第二阶段执行代码运行,如不通过则终止执行。
[0023]本专利技术提供了一种可固化在Boot ROM中的处理器启动方法,该方法支持对处理器下一步执行代码的可信认证,并支持多组认证组合。本专利技术实现了以下有益效果:
[0024]1.同一款芯片支持对多个可信源的认证。
[0025]2.通过调整芯片存储公钥数量可调整可信源的数量。
[0026]3.可信源之前相互隔离互不影响。
[0027]通过本专利技术,同一款芯片可按照用户的不同执行不同的代码,且各用户执行的代码在对方的芯片上无法执行。
附图说明
[0028]图1为
技术介绍
中的Boot ROM代码的执行流程示意图。
[0029]图2为本专利技术实施例处理器芯片构成示意图。
[0030]图3为本专利技术实施例第二阶段代码签名过程示意图。
[0031]图4为本专利技术实施例Boot ROM验签流程示意图。
具体实施方式
[0032]为了更加清楚明白理解本专利技术的目的、技术方案和优点,下面结合附图和本专利技术的优选实施例,对本专利技术作进一步的详细说明,本专利技术的示意性实施方式及其说明仅用于解释本专利技术,并不作为对本专利技术的限定。本专利技术的实施分为三个阶段,包括:
[0033]1.芯片设计和生产阶段。该阶段生成密钥对,并将公钥固化在芯片内部。
[0034]2.芯片出厂和第二阶段代码生成阶段。该阶段使用私钥对生成的第二阶段执行代码进行签名。
[0035]3.芯片使用阶段。该阶段利用公钥对第二阶段执行代码进行验签,确认可信后执行。该部分验签功能由芯片内部Boot ROM中存储的启动代码实现,该部分启动代码是在芯片设计和生产中就固化在芯片内部的。下面将分别描述三个阶段的实现方案。
[0036]芯片设计和生产阶段。芯片设计过程中,需要执行如下步骤:...

【技术保护点】

【技术特征摘要】
1.一种支持多来源可信认证的处理器芯片及制作使用方法,其特征在于,处理器芯片包括:Boot ROM只读非易失存储器(存储器A),该存储器中存储着芯片第一阶段启动代码,该代码负责将下一阶段代码载入至芯片内存,并在执行前对下一阶段代码进行可信认证;ROM只读非易失存储器(存储器B),该存储器存储着固化的公钥;第一eFuse一次性可编程存储器(存储器C),该存储器用于记录生效的公钥索引号,该存储器存储的数值与存储器B中的公钥条目数对应,在芯片生产后,eFuse允许进行一次烧写,烧写完成后,该索引值将无法更改;第二eFuse一次性可编程存储器(存储器D),该存储器用于记录芯片ID号,芯片ID号用于对芯片用途的二次识别;包括以下步骤:在芯片设计过程中,批量生成非对称公私密钥对,其中公钥固化在芯片中的存储器B中;芯片生产完成后,根据不同的应用场景或不同用户的...

【专利技术属性】
技术研发人员:张欢钟龙平
申请(专利权)人:管芯微技术上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1