芯片验证的制作方法

文档序号:8516065阅读:438来源:国知局
芯片验证的制作方法
【技术领域】
[0001] 本发明涉及芯片验证。特别地,本发明涉及一种芯片及相关联的用于验证芯片配 置的方法。
【背景技术】
[0002] 芯片技术的进展导致更小的特征尺寸。这使得创建包括可以在芯片上被选择性地 使能或禁用以支持该芯片要被包括在其中的特别的装置或电子设备所需的特征子集的很 多功能模块在经济上具有吸引力。这样的芯片也被称为片上系统(SoC)。功能模块的这种 选择性使能由一次(one-time)可编程(OTP)存储器控制。
[0003] 选择机制将适当的值编程在使能或禁用芯片上的功能模块的OTP存储器中。示例 是特定客户的专用电路、可选功能和/或许可的IP核。这种机制使得芯片制造商有可能制 造可以被配置供广泛范围的装置中使用的单一芯片。
[0004] 在芯片制造工艺期间,逻辑电路由在被用来制造芯片的一系列生产掩模中表示的 芯片设计拓扑限定。逻辑电路包括在稍后的生产步骤初始化的功能模块。芯片制造还牵涉 电路的测试、(可选地)将芯片唯一的数据编程在OTP中以及封装芯片。一系列的这些步骤 和测试阶段的数目在芯片制造商之间可能不同。
[0005] 在图1中示出示例性现有技术芯片10的框图。芯片10包括只读存储器(R0M)12、 OTP存储器14、中央处理单元(CPU)16和公共逻辑模块18,它们中的全部借助于CPU总线20 连接在一起。芯片还包括若干可配置功能模块F1......F8。OTP存储器14包括分别控制功 能模块F1......F8的使能/激活(或替换地禁用/解激活)的存储器位置e i......e8。这些 OTP存储器位置ei......e8均可以取决于是否期望使能或禁用对应的功能模块F i......F8 而用特别的值(激活/不激活,"0/1")仅写入一次。一般地,在芯片制造工艺期间使得用于 功能模块F1......F8的存储器位置e i......e8保持为未被编程的(即未被写入),尽管在该 工艺期间可以编程该OTP存储器14的一些其他值。该编程步骤通常牵涉将秘密密钥和/ 或类似机密信息装载到芯片10上。
[0006] 作为包括这样的芯片10的装置的制造的一部分,将(封装的)芯片10放置在电 路板上,该电路板在特别的装置所需的各种不同组件之间提供电接口。在制造工艺期间, OTP存储器14可以被进一步编程以依照特别的装置的要求个性化(或配置)芯片10。这 些附加的OTP编程步骤牵涉将激活/不激活数据值写入到OTP存储器14的存储器位置 θι......e8。这些数据值定制芯片10以用于特别的用途。这可以包括禁用芯片10中的某 些功能F1......F8,从而使得只有所意图的一组电路(即功能模块F1......F 8)在芯片10上 保持激活。个性化功能中的一些在装置制造测试期间可能引起复杂情况(例如安全自举、限 制对某些存储器位置或外设的访问)。因此,这样的功能模块在制造工艺期间在增量步骤中 被激活。
[0007] 在装置的制造工艺期间,在配置芯片10时可能发生误差。制造工艺中的牵涉对 OTP存储器14的不正确编程的误差可能导致芯片14不使适当的功能模块使能/禁用。导 致缩减的功能行为的误差通常在形成制造工艺的一部分的测试程序期间被捕捉到。然而, 对OTP存储器14的不正确编程也可能导致不期望的功能模块F1......^在制造工艺期间 被错误地使能。这可能导致装置中的在形成制造工艺的一部分的功能测试程序期间并不总 是能够被检测到的(隐藏)附加功能。
[0008] -些芯片配备有一系列安全性功能,例如即使芯片10包括潜在地运行流氓或破 坏软件的通用处理器时也安全地处理数据的能力,或者将引导程序代码限制成仅单一软件 供应商的引导程序代码的能力。为了达到这样的目的,经常用某种密钥材料来个性化芯片 10。这样的密钥材料可以由负责芯片10的总体安全性的受信任第三方(TTP)管理(在SoC 安全性设计是合理的假设下)。
[0009] 这样的安全性功能通常在工艺中被尽可能快地(永久)使能。然而,芯片10可能经 历若干生产步骤(可能在不同位置),它们都具有递减的信任级别。在每一个步骤处,只有一 部分(而非全部)安全性措施可以被使能。因此,在生产步骤中的每一个处,可以进一步加强 OTP存储器14以在后面的生产步骤期间获得更高的安全性级别。实际上可以跳过OTP编程 步骤中的每一个。
[0010] 芯片10上不期望的隐藏功能的可能性可以导致在部署装置期间的问题,并且也 可以影响从其IP核在芯片10上的实际使用而得到收入的各方。为了缓解这个问题,装置 制造商经常向许可伙伴和其他相关方提供OTP存储器14的读出。然而,由于OTP存储器 14在每一类型的装置中应当具有用于个性化功能模块F1......^的相同存储器值,所以装 置制造商并不真的需要实际提供来自每一个芯片10的观测值。在压力下,制造商可以伪造 OTP存储器14的读出,使得隐藏功能在发货的装置中保持不被检测到。
[0011] 大多数认证方法牵涉计算包括数据段的代码。由于OTP存储器14中的值中的一 些可以包括机密信息,所以在认证代码中不可能使用这个信息。
[0012] 因此,需要一种使得装置制造商能够向各种风险承担者展示每一个发货的装置中 的芯片个性化配置满足这些风险承担者的要求的技术。本发明寻求提供这样的技术及相关 联的方法。

【发明内容】

[0013] 从上面的讨论可知第三方当前不能可靠地确立芯片配置。本发明提供一种芯片及 相关联的方法以使得第三方能够可靠地确立芯片配置。
[0014] 根据本发明的第一方面,提供了一种芯片,其包括可编程来存储芯片配置数据的 一次可编程(OTP)存储器和可操作来访问OTP存储器的验证模块。验证模块可操作来接收 关于OTP存储器的指定部分的验证请求,该验证请求包括限定OTP存储器的指定部分的掩 模数据。响应于验证请求,验证模块可操作来使用掩模数据和OTP存储器以生成关于OTP 存储器的指定部分的验证数据,该验证数据还基于芯片的秘密密钥而被生成。
[0015] 根据本发明的第二方面,提供了一种生成关于芯片的一次可编程(OTP)存储器的 指定部分的验证数据的芯片实现的方法。OTP存储器可编程来存储芯片配置数据。该方法 包括:(a)接收关于OTP存储器的指定部分的验证请求,其中验证请求包括限定OTP存储器 的指定部分的掩模数据;以及(b)响应于验证请求,使用掩模数据和OTP存储器来生成关于 OTP存储器的指定部分的验证数据,其中验证数据还基于芯片的秘密密钥而被生成。
[0016] 密码学是充分确立的技术领域,其使用数学运算来处理数字信息和流。对于本发 明而言,利用诸如消息认证码(MAC)(即加密钥的/密码散列值)之类的公知的密码原语和 /或可以用来创建证书的数字签名。证书被用于各种不同的领域中以展示消息来自合法源。
[0017] 本发明使用在芯片上的(安全的)验证模块,该验证模块可以访问OTP存储器中的 芯片配置数据并且其使用机密芯片信息(即秘密密钥)来生成唯一的(个性化)消息,该唯一 的消息使得风险承担者能够验证芯片被适当地配置用于特别的装置。机密芯片信息是对个 别芯片唯一的,并且在其不能被轻易地从芯片读取的意义上是"机密"的。可以将机密芯片 信息存储在(安全的)验证模块内。验证模块仅检查OTP存储器的关于芯片配置数据的子集 的某些存储器值。掩模数据(例如比特掩模)用来选择正在由验证模块认证的OTP存储器段 的比特值。
[0018] 有利地,芯片还包括多个功能模块,其中芯片配置数据可操作来选择性地使能或 禁用该多个功能模块中的每一个。
[0019] 在一个实施例中,OTP存储器包括比特数组(B)并且掩模数据包括限定比特数组 的指定部分的比特掩模(M)。
[0020] 可选地,验证请求还包括随机数(nonce),并且验证数据还基于该随机数而被生 成。
[0021] 在一个实施例中,验证模块可操作来使用加密钥的密码散列函数生成验证数据。
[0022] 秘密密钥可以是对称密钥或非对称密钥。在一个实施例中,秘密密钥是芯片的私 钥。该实施例涉及非对称密码学。在另一个实施例中,秘密密钥是由芯片和初级验证系统 共享的对称秘密密钥。该实施例涉及对称密码学。可选地,验证请求还包括与向芯片提交 验证请求的一方相关联的ID数据,并且验证数据还基于ID数据而被生成。
[002
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1