专利名称:具有耦接至特权信息提供电路的可测试电路的电路的制作方法
技术领域:
本发明涉及具有测试访问设施和针对安全数据的存储器的电子电路。
背景技术:
US 5,357,572论述了电路测试与机密数据保护之间的利益冲突。一方面,电路测 试要求任何电路差错都是可观察的,最佳的实现方式是在足以暴露所有差错的细节水平上 实现对电路的直接测试访问。在许多情况下,使用测试模式,其中经由扫描链将测试数据移 入和移出电路,从扫描链将测试数据图案施加至待测试的电路部分,并且捕获进入扫描链 的针对测试数据图案的响应。另一方面,对电路中存储器中存储的例如口令和解密密钥等 机密数据的保护要求不能够在能够重建机密数据的细节水平上进行访问。US 5,357,572提出了针对该难题的解决方案,该解决方案使用对扫描链中能够用 于观察具有机密数据的存储器的一部分的旁路。在使用扫描链的该部分进行初始测试之 后,永久禁用除经由该旁路电路的测试之外的其他测试。这可以通过例如使熔丝熔断,对控 制该旁路的一次性读取存储器进行写入来实现。另一可选解决方案是要求口令来去激活该 旁路,但是这使得电路更易受到黑客攻击。这些解决方案的问题在于它们本身或者在应用环境下(例如,作为调试的一部 分)可能阻扰对电路故障的分析。
发明内容
本发明的目的是提供一种电路,其允许对可以用于调试目的电路进行访问,同时 保护机密数据免受非法访问。提出了根据权利要求1的电路。该电路可操作在正常操作模式和测试模式。该电 路包括可测试电路,其依赖于来自特权信息提供电路的特权信息。该可测试电路可以是例 如被编程来执行使用特权信息的操作的处理器,操作例如是使用由特权信息提供电路提供 的密钥进行解密或加密,或者是使用来自特权信息提供电路的信息对接收到的数据进行验 证等。在其他示例中,可测试电路可以是功能特定电路,用于使用特权信息来执行操作。该电路具有测试访问电路和测试控制电路。测试控制电路配置为控制测试访问 电路切换到测试模式,在测试模式下,测试访问电路访问可测试电路。在测试模式下,使 用复用电路来至少响应于来自测试控制电路的控制信号,选择性地用屏蔽信息(shadow information)提供电路替代特权信息提供电路,其中控制信号指示了启用测试访问电路来 捕获来自可测试电路的测试响应信号。这样,在测试模式下防止了对取决于特权信息提供 电路的数据的访问,同时保持了与信息提供电路的功能性连接,这种功能性连接允许详尽 的测试和/或调试。在实施例中,提供了编程电路来将信息编程到屏蔽信息提供电路中。由此,可以使 用可编程信息来执行测试和/或调试。操作方法可以包括向屏蔽信息提供电路中加载外部 信息,该外部信息表示特权信息提供电路中特权信息的拷贝。由此,如果知道该信息,则能够根据操作条件对整个电路进行测试或调试。而不知道该信息,则无法访问电路。在实施 例中,电路可以配置为允许在正常操作模式下也使用屏蔽信息提供电路,以用于例如调试 目的。在另一实施例中,编程电路配置为对能够对屏蔽信息提供电路中的信息进行编程 的频率和/或次数施加约束。由此,可以使得反向工程攻击(包括对许多备选密钥的蛮力 尝试)无法实施。
从下面使用附图的示例实施例描述中,上述和其他目的和优点显而易见。附图 中图1-3示出了具有扫描链以及针对特权信息的存储器的电路。
具体实施例方式图1示出了电路(在实施例中,单个集成电路),该电路包括解密器10、密钥存储 器12、屏蔽密钥存储器14、复用电路16、测试控制电路18和扫描链19。密钥存储器12和 屏蔽密钥存储器14经由复用电路16与解密器10耦接。解密器10可以是具有程序存储器 的指令处理器核,程序存储器包含程序指令,用于从密钥存储器12获取密钥以及用于使用 获取的密钥来解密。备选地,解密器10可以是执行该功能的功能特定逻辑电路。虽然示出了电路包含解密器10的示例,S卩,电路根据取决于密钥的解译算法,将 加密信号解译成解密信号,但是应该理解,可以存在需要秘密信息的更多或其他电路。示例 是用于将信号解译成加密信号的加密器,用于将接收的口令数据与秘密口令数据相比较的 口令检查器,用于执行外部代理将自己向电路进行标识过程的标识电路,从密钥存储器12 获取秘密标识符或种子以产生这种标识符的标识符提供电路等。在每一种情况下,密钥存 储器或者针对其他特权信息的存储器用于在正常操作期间向子电路100提供这种信息。由 此,密钥存储器起到特权信息提供电路的作用。扫描链19包括扫描单元链,每个扫描单元包括触发器(未示出),扫描链19延伸 通过解密器10,其中扫描链19与解密器10的各种逻辑子电路100耦接。扫描链19还耦 接至整个电路的其他子电路。例如,示出了单个扫描链19和有限数目的子电路100。实际 上,可以使用包括更多子电路和/或更多扫描链的更加复杂的设置。由此,扫描链19形成测试访问电路。使用扫描链19或类似的测试访问电路使得 解密器10的子电路100是可测试的,并使得其他子电路成为可测试电路。提供了足够细节 的访问,使得能够检测来自一组可测试电路差错的电路差错(例如,所有电路节点的差错 处的停滞(Stuck))。子电路100可以是例如无触发器等状态保持电路的组合逻辑电路,状 态保持电路是在扫描链19中提供的。测试控制电路18具有耦接至扫描链19的测试数据输出180和测试数据输入182、 以及耦接至扫描链19的控制输入的控制输出184。例如,测试控制电路18的控制输出184 还耦接至复用电路16的控制输入。虽然将控制连接示出为单条线,但是应该理解控制连接 可以包括多于一个的导线,并且控制导线或多个控制导线可以连接至扫描链19中的多个 扫描单元,以(可选地,经由缓冲器电路)向所有扫描单元提供相同的控制信号。
在操作中,测试控制电路18用于使用控制输出184,将扫描链19在正常模式和测 试模式之间切换。可以使用任何适当的测试接口来控制测试控制电路18来进行上述操作。 例如,可以使用IEEE 1149. 1兼容测试接口。在正常模式下,在相继的操作周期中,使扫描 链19中的触发器是透明的或者用作解密器10的一部分,捕获来自子电路100的数据并将 捕获的数据提供给其他子电路100。在测试模式下,使扫描链19中的触发器全部作为移位 寄存器来操作,通过这种移位寄存器从测试数据输出180移动测试数据和/或将测试数据 移动至测试数据输入182。扫描链19配置为测试模式下被切换至捕获操作,其中扫描链19 捕获来自子电路100的数据。测试控制电路18配置为向扫描链19提供控制信号,以在移 入测试数据图案和移出测试响应图案的移位操作之间切换至捕获操作。此外,扫描链19可 以配置为在移位期间向子电路100提供缺省输出信号,以及在由测试控制电路18控制的测 试提供操作中切换至提供测试数据。在实施例中,测试控制电路18配置为向扫描链19的 复位输入施加复位信号,以在进入测试模式时(以及可选地在从测试模式切换出来时)将 扫描链19的内容复位,或者阻挡对在切换至测试模式之前捕获的信息的输出。复用电路16是在两种模式之间可切换的,在这两种模式下,复用电路16分别将密 钥存储器12和屏蔽密钥存储器14耦接至解密器10。模式选择由测试控制电路18的测试 控制输出184来控制。至少在使扫描链19操作在正常模式时,控制信号将复用电路16切 换至将密钥存储器12耦接至解密器10的模式。至少在使扫描链19在测试模式下执行捕 获操作时,控制信号将复用电路16切换至将屏蔽密钥存储器14耦接至解密器10的模式。 因此,当扫描链19处于测试模式时,使得密钥存储器12是不可见的。取而代之地,电路使 用屏蔽密钥存储器14。在实施例中,还在测试模式下的移位期间,将复用电路16配置屏蔽密钥存储器14 耦接至解密器10的模式。在实施例中,测试控制电路18配置为至少在允许进入扫描链19 的捕获操作时、以及在来自扫描链19的测试数据能够影响复用电路16处的信号或依赖于 来自密钥存储器或屏蔽密钥存储器14的信号的子电路处的信号时,是复用电路16将屏蔽 密钥存储器14耦接至解密器10。虽然示出了也使用针对扫描链19的控制信号来控制复用电路16的实施例,但是 应当理解,备选地,可以产生其他测试或调试相关信号来控制复用电路16,以在使用扫描链 19时替换屏蔽密钥存储器14。例如,可以使用测试控制阻挡使能信号、测试点寄存器使能 信号、断点使能信号、实施跟踪使能信号、移位使能信号或使能可观察性的其他信号。虽然将测试控制电路18的公共控制输出184示出为耦接至扫描链19和复用电路 16两者,以使复用电路16将屏蔽密钥存储器14耦接至解密器10,但是应该理解,在将测试 控制电路18配置为组合地切换在分离的控制输出上的控制信号时,可以针对扫描链19和 复用电路16使用这些分离的控制输出。使用单个输出可以简化电路,使得黑客攻击者更难 破坏屏蔽密钥存储器14的使用。在另一实施例中,电路被设计为在正常操作模式下允许用户选择使用屏蔽密钥存 储器14。例如可以提供控制寄存器(未示出),至少一个子电路100耦接至该控制寄存器 以设置其内容,控制寄存器耦接至复用电路16的控制输入。在这种情况下,在正常操作模 式下,来自控制寄存器的信号可以控制是将密钥存储器12还是屏蔽密钥存储器14耦接至 解密器10。然而,在测试模式下,驳回这种选择,测试控制电路18强迫复用电路16至少在启用捕获操作时将屏蔽密钥存储器14耦接至解密器10。在另一实施例中,电路可以被设计 为不可能在正常操作中这种使用屏蔽密钥存储器14,以防止利用错误密钥来使用电路。可以允许使用测试电路来访问子电路100的用户在测试模式下使用并甚至替换 屏蔽密钥存储器14的内容,就如同内容是机密数据一样。然而,这不影响正常模式下的操 作,也不会有损其安全性。由此,可以在不损害安全性的情况下执行调试。图1的电路可以 放置在更大电路的上下文中,例如在印刷电路板上,其中具有正常操作连接以及从更大电 路至测试控制电路18的连接,以执行调试和/或测试,而不会损害安全性。在另一实施例中,针对密钥存储器12和屏蔽密钥存储器14分别使用设计相互不 同的存储器。在一个示例中,可以针对屏蔽密钥存储器14和密钥存储器12分别使用用户 可编程存储器以及不可编程或一次性可编程存储器。在另一个示例中,可以使用如下设计 相比于对密钥存储器12的磨损,对屏蔽密钥存储器14的磨损更大。在使用该电路的方法中,经由扫描链19将密钥存储器12中的特权信息的拷贝输 入到屏蔽密钥存储器14中。由此,可以使电路整体上工作得就好像在测试期间使用密钥存 储器12 —样。应该强调这不是通过在电路内从密钥存储器12向屏蔽密钥存储器14拷贝 信息来完成的。由此,未授权用户无法执行这种类型的测试。只有具有密钥存储器12中有 关密钥的信息的授权用户才能够执行这种测试。在实施例中,可以结合密钥存储器12中的信息来设计解密器10或替代解密器10 的任何其他电路,使得只有在可获得正确密钥时才可正确测试或调试解密器10或其他电 路。通过从外部将密钥写入到屏蔽密钥存储器14中,可以实现测试和调试,而不会损害对 抗不知道该必要密钥的攻击者的安全性。图2示出了添加了耦接至屏蔽密钥存储器14的约束编程电路20的实施例。约束 编程电路20起到写入电路的作用,该写入电路用于将从扫描链和/或解密器10接收到的 数据写入到屏蔽密钥存储器中。这使得能够在调试期间替换密钥。约束编程电路20配置 为对这种替换施加约束。在一个实施例中,约束编程电路20保持对屏蔽密钥存储器中已经 更新密钥的次数的计数,并在该计数超过预定阈值之后禁止更新。在另一实施例中,约束编 程电路20保持对从上次在屏蔽密钥存储器中已更新密钥的先前时间开始经过的电路时钟 周期的计数,并在该计数超过预定阈值之前禁止更新。可以使用上述两者方式的组合。这 种类型的约束有助于防止蛮力攻击,在蛮力攻击中黑客攻击者尝试许多密钥,以得到特权 fn息ο虽然示出了在测试期间完全阻止对密钥存储器12进行访问的实施例,但是应该 注意,备选地,对于初始测试,可以允许进行一些访问。例如,如图3所示,扫描链的一部分 可以经由熔丝或其他一次性可编程受控电路30耦接至密钥存储器12,以用于测试目的。在 这种情况下,可以执行一次性编程,以在密钥存储器12的初始工厂测试之后禁止访问。可 以使用任何适合的不可逆转的防止后续访问的方法。在实施例中,复用电路16可以配置为 依据是否已经执行了一次,来操作在第一模式和第二模式。在这种情况下,复用电路16可 以配置为在第一模式下将解密器10耦接至密钥存储器12,而不管电路是否在测试模式下, 并且复用电路16可以配置为在第二模式下,依据电路是否处于测试模式,将解密器10耦接 至密钥存储器12或屏蔽密钥存储器14。初始地,可以将复用电路16制造为配置在第一模 式下。这使得可以测试密钥存储器12,并随后熔断熔丝或程序或执行任何其他一次性可编程动作,来允许使用屏蔽密钥存储器14的安全调试。在另一实施例中,可以添加身份检查电路,以依据例如口令等标识的提供,来在测 试模式下使用密钥存储器12。这使得可以在可获得标识时,在任意时间都可以使用密钥存 储器12来执行测试或调试。然而,这种方法的安全性降低,因为这种标识方法可能泄露。虽然示出了使用密钥存储器12和屏蔽密钥存储器14作为特权信息提供电路和屏 蔽信息提供电路的实施例,但是应当认识到,可以用表示秘密信息的任何其他类型的电路 来替代这些存储器。例如,可以使用编程有这种信息的熔丝组、或者具有代表秘密信息的结 构的逻辑电路来替代密钥存储器12。此外,虽然示出了分离的存储器,但是应该理解,在实 施例中,密钥存储器12和屏蔽密钥存储器14可以是单个存储器矩阵的不同部分,这些不同 部分依据操作模式可由复用电路访问。可以使用测试使能信号作为这种存储器矩阵中的地 址的位。在另一实施例中,密钥存储器12和屏蔽密钥存储器14中每一个均可以包括多个 存储器,以向不同的子电路100提供不同的特权信息。本领域技术人员在实施要求保护的发明时,从对附图、公开内容和权利要求的研 读中,能够理解和实现所公开实施例的其他变体。在权利要求中,用语“包括”不排除其他 元素或步骤,不定冠词“一”或“一个”不排除多个。单个处理器或其他单元可以完成权利 要求中记载的多项的功能。在彼此不同的从属权利要求中记载某些措施这一事实并不是说 这些措施的组合无法有利使用。计算机程序可以存储/分布在适当介质上,例如与其他硬 件或作为其他硬件一部分提供的光存储介质或固态介质上,但是也可以其他形式分发,例 如经由互联网或其他有线或无线电信系统。权利要求中的任何附图标记不应该被理解为限 制权利要求的范围。
权利要求
1.一种电路,可操作在正常操作模式和测试模式,该电路包括-可测试电路(10);-耦接至可测试电路(10)的特权信息提供电路(12);-耦接至可测试电路(10)的测试访问电路(19);-耦接至测试访问电路(19)的测试控制电路(18),被配置为控制测试访问电路(19) 切换至测试模式;-屏蔽信息提供电路(14);以及-复用电路(16),耦接在可测试电路(10)与特权信息提供电路(12)和屏蔽信息提供 电路(14)之间,复用电路(16)具有耦接至测试控制电路(18)的控制输入,复用电路(16) 被配置为将特权信息提供电路(1 耦接至可测试电路(10),以访问特权信息,或者取而代 之地,选择性地至少响应于来自测试控制电路(18)的控制信号,将屏蔽信息提供电路(14) 耦接至可测试电路(10),其中所述控制信号指示在测试模式下使测试访问电路(19)能够 捕获来自可测试电路(10)的测试响应信号。
2.根据权利要求1所述的电路,其中,特权信息提供电路(12)和屏蔽信息提供电路 (14)均包括信息存储电路,存储有提供至可测试电路(10)的信息。
3.根据权利要求1所述的电路,其中,可测试电路(10)包括解密器或加密器电路,被 配置为使用由特权信息提供电路(1 提供的密钥;或者验证电路,被配置为使用由特权信 息提供电路(12)提供的信息,执行对接收到的信息的测试。
4.根据权利要求1所述的电路,包括编程电路(20),被配置为当处于测试模式下时将 信息编程到屏蔽信息提供电路(14)中。
5.根据权利要求4所述的电路,其中编程电路00)被配置为对能够向屏蔽信息提供电 路(14)进行信息编程的频率和/或次数施加约束。
6.根据权利要求1所述的电路,包括一次性可编程电路和从测试访问电路到特权信 息提供电路(1 的连接,被配置为在对一次性可编程电路(30)进行编程之前,使能在测 试模式下经由所述连接将取决于特权信息提供电路(12)的信号捕获到测试访问电路(19) 中,并且在对一次性可编程电路(30)进行编程时,禁止测试模式下的捕获。
7.根据权利要求1所述的电路,其中,测试控制电路(18)被配置为在进入测试模式和 /或在切换离开测试模式时,自动向测试访问电路(19)的复位输入施加复位信号。
8.根据权利要求1所述的电路,其中,测试控制电路(18)被配置为阻挡在切换至测试 模式之前捕获的、来自测试访问电路(19)中的寄存器的信息的输出。
9.一种电路操作方法,所述电路包括可测试电路(10)、耦接至可测试电路(10)的特权 信息提供电路(12)、以及耦接至可测试电路(10)的测试访问电路(19),所述方法包括-接收指示电路操作在测试模式下的控制信号,其中对于测试访问电路(19),来自可 测试电路(10)的测试响应信号对于测试访问电路(19)是可访问的;以及-响应于所述控制信号,用可测试电路(10)与屏蔽信息提供电路(14)之间的连接替代 与可测试电路(10)的用于从特权信息提供电路(1 访问特权信息的连接。
10.根据权利要求9所述的方法,包括当操作在测试模式下时,从包括可测试电路、特 权信息提供电路(12)以及测试访问电路(19)的电路的外部,向屏蔽信息提供电路(14)中 写入特权信息提供电路(12)中的信息的拷贝。
全文摘要
一种电路可操作在正常操作模式和测试模式。该电路包括耦接至可测试电路(10)的特权信息提供电路(12)。测试访问电路(19)提供对可测试电路(10)的访问。测试控制电路(18)控制测试访问电路(19)切换至测试模式。复用电路(16)在正常模式下将特权信息提供电路(12)耦接至可测试电路(10),以访问特权信息。在测试模式下,取代地将屏蔽信息提供电路(14)耦接至可测试电路(10)。
文档编号G01R31/317GK102112889SQ200980130227
公开日2011年6月29日 申请日期2009年8月4日 优先权日2008年8月8日
发明者安德鲁·库恩·纽兰德, 胡伯特斯·杰拉德斯·亨德里克斯·维梅伦 申请人:Nxp股份有限公司