集成电路保护及其方法

文档序号:7888117阅读:359来源:国知局
专利名称:集成电路保护及其方法
技术领域
本发明涉及集成电路,更具体地,涉及集成电路的保护。
背景技术
随着集成电路用于具有越来越多的安全意识的应用,集成电路的安全变得日益重要。这些应用的一些例子为智能卡、移动电话、因特网通信装置等。具体地,常常希望提供针对欺骗或未经授权访问集成电路的一个或多个部分的保护。许多集成电路包括向集成电路输入信息和/或从集成电路输出信息的端子。这种输入/输出端可以提供未经授权访问集成电路的一个或多个部分的途径。另外,集成电路的某些输入/输出端可以用于调试、仿真和/或测试的目的,并且也可以提供未经授权访问集成电路的一个或多个部分的途径。
用于集成电路的调试、仿真和/或测试目的的一个公共标准为众所周知的JTAG(联合测试行动组)IEEE(电气和电子工程师协会)1194.1测试访问口和边缘扫描结构。除了标准的JTAG接口,还存在大量用于集成电路的各种其它的调试、仿真和/或测试接口。
在利用调试、仿真或测试接口的系统中,必须防止对内部IC资源的未经授权的访问,以保护这些资源。因此,需要一种提供针对未经授权的访问的保护,同时继续为IC器件提供调试、仿真和测试能力的方法。

发明内容
根据本发明的一方面,提供一种集成电路包括受保护的功能电路;用于存储存储的IC安全密钥的存储电路;IC调试接口;比较电路,所述比较电路具有连接到存储电路的第一输入,连接到IC调试接口的第二输入,和提供保护使能信号的输出;以及连接到受保护的功能电路并具有接收保护使能信号的输入的访问保护电路。
根据本发明的另一方面,提供一种在具有受保护的功能电路和连接到受保护的功能电路的至少一个IC端子的集成电路中提供保护的方法,所述方法包括经由至少一个IC端子接收输入IC安全密钥;比较输入IC安全密钥和存储的IC安全密钥;以及经由至少一个IC端子选择性地允许访问受保护的功能电路。
根据本发明的另一方面,提供一种在具有受保护的功能电路和JTAG接口的集成电路中提供保护的方法,所述方法包括在第一JTAG状态中,经由JTAG接口接收用户定义的指令;在第二JTAG状态中,经由JTAG输入接口接收输入IC安全密钥,并比较输入IC安全密钥和存储的IC安全密钥;以及选择性地允许经由JTAG接口访问受保护的功能电路。
根据本发明的另一方面,提供一种在具有受保护的功能电路和连接到受保护的功能电路的至少一个IC端子的集成电路中提供保护的方法,所述方法包括经由至少一个IC端子访问受保护的功能电路;编程强迫使能指示器以使能比较电路,其中比较电路比较输入IC安全密钥和存储的IC安全密钥,并根据比较,选择性地允许经由至少一个IC端子访问受保护的功能电路。


本发明通过例子的方式进行说明,而不是由附图限定,其中相同的参考数字表示相同的元件,其中图1以框图的形式示出了根据本发明的一个实施例的集成电路10;图2以框图的形式示出了根据本发明的一个实施例的图1的调试口20的一部分;图3以流程图的形式示出了在根据本发明的一个实施例的集成电路中提供保护的方法;以及图4以流程图的形式示出了在根据本发明的可选实施例的集成电路中提供保护的方法。
熟练的技术人员应当理解在图中的元件是为了简单和清楚而示出,并且没有必要按比例绘制。例如,在图中的某些元件的尺寸相对于其它元件被放大,以有助于理解本发明的实施例。
具体实施例方式
如在这里所用的,术语“总线”是指用来传递一种或多种类型的信息(例如,数据、地址、控制或状态)的多个信号或导体。当提到信号、状态位或类似装置的描述时,术语“有效”和“无效”分别表示逻辑真或逻辑假状态。如果逻辑真状态为逻辑电平一,则逻辑假状态为逻辑电平零。而如果逻辑真状态为逻辑电平零,则逻辑假状态为逻辑电平一。这里所用的术语“调试”的意思是非常宽泛的概念,也包括仿真和测试功能。
图1以框图的形式示出了根据本发明的一个实施例的集成电路(IC)10。在一个实施例中,IC 10包括调试口20和保护功能电路12。在一个实施例中,保护功能电路12包括彼此双向连接并且通过通信信号26的方式连接到调试口20的处理器14、其它电路16和输入/输出(I/O)电路18。在一个实施例中,处理器14可以是执行任何类型指令的处理器,例如,中央处理单元、数字信号处理器、定时器处理单元等。在一个实施例中,其它电路16可以是执行IC 10的一种或多种预定功能的电路,但是不必要求执行指令来实现预定功能,例如,MPEG编码器、解码器、图像处理单元或硬连线数据处理元件。保护功能电路12的可选实施例可以只包括处理器14、只包括其它电路16或者处理器14和其它电路16。在一个实施例中,I/O电路18连接到一个或多个IC端子24,以便与IC 10以外的电路(未示出)通信。在本发明的可选实施例中,I/O电路18可以包括任何类型的外部总线结构,包括数据/地址/控制总线结构。IC 10的其它实施例甚至可以没有I/O电路18和IC端子24,例如,IC 10以单芯片方式工作,没有外部总线。在本发明的一个实施例中,调试口20双向连接到一个或多个IC端子22,允许调试口20与IC 10外部的器件(未示出)通信。
图2以框图的形式示出了根据本发明的一个实施例的图1的调试口20的一部分。在一个实施例中,调试口20包括通过信号通路58双向连接到IC端子22的调试电路41,以便从IC 10外部的器件(未示出)接收一个或多个调试信号和/或向IC 10外部的器件提供一个或多个调试信号。调试电路41包括通过信号通路50双向连接到访问保护电路40的其它调试电路42。其它调试电路42为标识符存储电路32提供一个或多个信号48,以表示何时标识符存储电路32要通过一个或多个导体56或者一个或多个端子22向IC 10的外部提供存储的标识符的值。或者,调试电路41通过信号48从标识符存储电路32接收存储的标识符的值,并且通过一个或多个导体58或者一个或多个端子22向IC 10的外部提供存储的标识符的值。访问保护电路40通过导体60双向连接到保护功能电路12,传递调试所用的信息。
在本发明的一个实施例中,在标识符存储电路32中存储的标识符的值对于所制造的每个集成电路10是唯一的。但是,可选实施例可以使用在标识符的值与IC之间的任何想要的映射;单值映射,例如,1∶1映射,对于某些实施例是不需要的。标识符的值可以存储在一次编程的非易失存储电路中,例如,熔丝,可以是掩模编程的,或者可以由调试口20的外部逻辑提供。标识符的值可以用来为了各种目的跟踪IC,并且向IC 10的外部提供标识符的值。IC 10的制造商可以保留标识符的值的机密列表和相应的IC 10外部的IC安全密钥值。同时,每个IC 10还存储标识符(在标识符存储电路32中)和存储的IC安全密钥(在IC安全密钥存储电路30中)。
当IC 10外部允许的调试装置(未示出)通过端子22收到IC 10的标识符的值时,它检查标识符的值的机密列表和相应的IC安全密钥,以便确定正确输入的IC安全密钥值,通过IC端子22和一个或多个导体52输入到IC 10。注意,标识符的长度可以选择任何合适的长度,只要有足够的位数来满足对每个IC的映射。同样,IC安全密钥的长度也可以是任何合适的长度,只要有足够的位数来防止允许未经授权的访问的反复试验,以保护功能电路12。在一个实施例中,标识符的长度为16位,IC安全密钥的长度为48位。本实施例的可选实施例不要求提供标识符的值,因此不包含标识符存储电路32。
在一个实施例中,调试口20包括IC安全密钥存储电路30,通过一个或多个信号54为比较电路38提供存储的IC安全密钥。在一个实施例中,密钥验证电路34可选的包括计数器电路36,以及比较电路38。在本发明的可选实施例中,用计数器36防止保护使能信号46无效。在本发明的一个实施例中,如果在预先选择的事件之后经过预定的时间,则计数器36可以防止保护使能信号46无效。虽然预先选择的事件可以是任何需要的事件,但是一些可能的事件为复位44有效,或者从IC端子22收到第一输入IC安全密钥。在一些实施例中,如果在预定的时间窗口内比较结果不匹配,则不允许访问受保护的功能电路12。在可选实施例中,计数器36计数由比较电路38进行的不成功的比较的次数,并且如果从最后一次复位信号44有效之后进行了预定次数的不成功的比较,则可以防止保护使能信号46无效。在本发明的一个实施例中,当上电或密钥验证电路34复位时,初始化保护使能信号46,以便防止访问受保护的功能电路12。在其它的实施例中,可以由IC 10内部或外部的其它事件使保护使能信号46有效。
在本发明的一个实施例中,密钥验证电路34通过一个或多个IC端子22和一个或多个导体52接收从IC 10的外部接收到的输入IC安全密钥。然后,比较电路38将从端子22接收到的输入IC安全密钥与存储在电路30中的IC安全密钥进行比较。比较电路38通过导体54从电路30接收存储的IC安全密钥。在本发明的一个实施例中,当比较电路38接收到输入IC安全密钥的每一位时,进行按位比较。本发明的可选实施例临时存储输入IC安全密钥,然后一旦收到输入IC安全密钥的所有位,就与存储的IC安全密钥进行比较。
如果输入IC安全密钥与存储的IC安全密钥匹配,则比较电路38使保护使能信号46无效。保护使能信号46无效使访问保护电路40允许通过其它调试电路42访问受保护的功能电路12。在本发明的一些实施例中,保护使能信号46有效使其它调试电路42的一个或多个部分被禁止,而调试电路42的其它部分独立于保护使能信号46的状态保持允许。
在本发明的一些实施例中,可以用强迫使能电路45超越比较电路38的功能,并且强迫保护使能信号46无效,而不管输入IC安全密钥值和存储的IC安全密钥值。强迫使能电路45的一种可能的使用是在制造商调试和测试IC 10时迫使调试电路41使能。一旦验证了IC10的设计,可以永久禁止强迫使能电路45,从而再也不能旁路密钥验证电路34。实现这种功能的一种方式可以使用一次可编程非易失存储电路,例如,熔丝。例如,在一个实施例中,烧断在强迫使能电路45中的一个或多个熔丝可以使强迫使能电路45不再超越密钥验证电路34。
在本发明的一些实施例中,为密钥验证电路34和IC 10的其它部分提供复位信号44。然后由其它电路16(参看图1)或者IC 10内部或外部的电路中的复位有效电路使复位信号44有效,以便复位IC10的所有部分。在一些实施例中,在计数器36(可选的)确定已经经过了预定的时间或者已经进行了预定次数的尝试之后,禁止比较电路38并且不再允许比较。密钥验证电路可选地使用复位信号44复位计数器36和/或允许比较电路38开始或继续进行比较。
其它调试电路42包括进行一种或多种标准调试、仿真或测试接口和协议的电路,例如,JTAG接口和协议。在一个实施例中,IC端子22包括JTAG TDO(测试数据输出)和TDI(测试数据输入)信号。对于本发明的一些实施例,保护使能信号46不影响选中的由其它调试电路42进行的JTAG功能。这允许其它调试电路42以符合JTAG的方式实现,即使当保护使能信号46有效时,由此防止调试电路41访问受保护的功能电路12。
注意,在本发明的一些实施例中,IC端子22中的一个可以用作调试IC端,通过信号52为比较电路38提供输入IC安全密钥,还可以作为调试IC端,从而通过调试电路41与受保护的功能电路12通信。在本发明的一些实施例中,信号51和一个或多个信号58和60可以是JTAG TDI信号。
同样,在本发明的一些实施例中,IC端子22中的一个可以用作调试IC端,通过信号56向IC 10的外部电路(未示出)提供来自电路32的标识符的值。IC端子22中的同一个还可以用作调试IC端,通过访问保护电路40从受保护的功能电路12与IC 10的其它外部电路(未示出)通信。在一个实施例中,信号56和一个或多个信号58和60可以是JTAG TDO信号。
图3以流程图的形式示出了在根据本发明的一个实施例的集成电路中提供保护的方法。在一个实施例中,图3的流程图可以用来为图1的IC 10提供保护。从开始的椭圆100,图3的流程进行到步骤102,向IC提供IC外部的标识符。步骤102经过圆A 104进行到步骤106。步骤106从IC外部接收输入IC安全密钥。从步骤106进行到步骤108,输入IC安全密钥与存储的IC安全密钥进行比较。从步骤108,流程进行到判定菱形110,判定在输入IC安全密钥与存储的IC安全密钥之间是否存在匹配。
如果匹配,则流程进行到可选择步骤112,允许访问受保护的功能电路12。从步骤112,流程进行到可选择步骤114,允许访问其它调试电路42的至少一部分。注意,本发明的可选实施例可以跳过可选择步骤114,并且可以不使用匹配的结果影响其它调试电路42中的任何电路。从步骤114,流程进行到流程结束的椭圆124。
如果在判定菱形110出现不匹配,则流程继续到步骤116,拒绝访问受保护的功能电路12。从步骤116,流程进行到可选择步骤118,拒绝访问其它调试电路42的至少一部分。注意,本发明的可选实施例可以跳过可选择步骤118,并且可以不使用匹配的结果影响其它调试电路42中的任何电路。或者,其它调试电路42的一个或多个部分可以保持继续允许,由此不受保护使能信号46的影响。从步骤118,流程进行到判定菱形120,检查是否允许接收和评估另一个输入IC安全密钥。如果不允许接收和评估另一个输入IC安全密钥,则流程进行到流程结束的椭圆124。但是,如果接收和评估另一个输入IC安全密钥,则流程进行到步骤122,可以选择性地插入可选的延迟。提供可选的延迟有利于限制对本发明提供的安全机制的尝试次数,同时允许合法的机会以修改不正确的输入。可以以任何合适的方式确定可选延迟的长度。某些实施例可以省去可选的延迟步骤122。从步骤122,流程进行到圆A 104,从而可以接收另一个输入安全密钥。可选实施例通过判定菱形120可以提供输入输入IC安全密钥的尝试次数的限制。判定菱形120可以基于计数输入的尝试次数,并且将尝试次数与预定的阈值进行比较,如果尝试次数等于或超过阈值,则拒绝回到圆A104。在其它实施例中,判定菱形120可以基于任何其它值、算法或IC 10的内部或外部状态。
图4以流程图的形式示出了在根据本发明的可选实施例的集成电路中提供保护的方法。在一个实施例中,图4的流程图可以用来为图1的IC 10提供保护,IC 10使用JTAG测试访问口来接收输入IC安全密钥。当在图4中进行的步骤实现与图3中的相应步骤相同的功能时,图4使用与图3相同的参考数字。比较图3的流程,图4中的流程给出了关于利用JTAG测试访问口和边界扫描结构的本发明的一个从开始的椭圆100,图4的流程进行到步骤102,JTAG状态机处于SHIFT_IR状态,并且在随后的时钟周期期间在TDO信号上输出标识符(PART_ID),同时保持在该状态。在一个实施例中,在SHIFT_IR状态期间,TDO信号以串行的方式依次提供二进制01的标识符(PART_ID)。TDO信号提供给IC外部。步骤102经过圆A104进行到步骤201。在步骤201中,当JTAG状态机处于或回到SHIFT_IR状态时,通过TDI信号输入用二进制表示的用户定义的指令,例如ENABLE_DEBUGE指令。从步骤201,流程进行到步骤202,JTAG状态机处于UPDATE_IR状态,并且将二进制表示的ENABLE_DEBUGE指令装载JTAG IR(指令寄存器)。从步骤202,流程进行到步骤106、108,执行ENABLE_DEBUGE指令。在步骤106、108期间,从IC外部接收输入IC安全密钥。当接收输入IC安全密钥的各位时,按位的方式与存储的IC安全密钥进行比较。本发明的可选实施例改为临时存储输入IC安全密钥,直到接收到全部位,从而以并行的方式进行比较。从步骤106、108,在全部的输入IC安全密钥与存储的IC安全密钥的比较完成之后,流程以相似的方式进行到图3的判定菱形110。
在以上的说明书中,参考特定的实施例介绍了本发明。但是,本领域的普通技术人员应当理解,可以不脱离在以下的权利要求书中所阐述的本发明的范围作出各种修改和变化。因此,说明书和附图应当认为是说明性的而不具有限定的意义,并且所有的这种修改都包括在本发明的范围内。例如,虽然在本文中所介绍的本发明针对保护从IC10的外部对IC 10进行未经授权的访问,但是本发明的可选实施例可以保护IC 10的电路的一个或多个部分被同一个IC 10的电路的其它未经授权的部分访问。
通过特定实施例介绍了益处、其它优点和问题的解决方案。但是,可以引起任何益处、优点或问题的解决方案的出现或变得更显著的益处、优点、问题的解决方案和任何元件不能作为任何或全部权利要求的限制、要求或本质特征或要素。如在这里所使用的,术语“包括”或其其他变化是要覆盖非排它的包含,例如,包括元件清单的工艺、方法、物品或设备不仅包括这些元件,还可以包括该工艺、方法、物品或设备没有明确列出或固有的其它元件。
权利要求
1.一种集成电路(10)包括受保护的功能电路(12);用于存储存储的IC安全密钥的存储电路(30);IC调试接口(52&58);比较电路(38),所述比较电路具有连接到存储电路(30)的第一输入,连接到IC调试接口(52)的第二输入,和提供保护使能信号(46)的输出;以及连接到受保护的功能电路(12)并具有接收保护使能信号的输入的访问保护电路(40)。
2.根据权利要求1的集成电路,其中比较电路(38)响应对存储的IC安全密钥和通过IC调试接口接收的输入IC安全密钥的比较而提供保护使能信号。
3.根据权利要求1的集成电路,其中IC调试接口包括多个IC调试端和根据保护使能信号选择性地允许多个IC调试端与受保护的功能电路之间通信的访问保护电路。
4.根据权利要求1的集成电路,还包括连接到IC调试接口、用来存储IC标识符的标识符存储电路(32)。
5.根据权利要求4的集成电路,其中IC标识符经由IC调试接口提供到IC的外部。
6.根据权利要求1的集成电路,还包括连接到比较电路、用来存储强迫使能值的强迫使能存储电路(45),其中如果强迫使能值具有第一状态,则访问保护电路允许在IC调试接口与受保护的功能电路之间的通信,而如果强迫使能值具有第二状态,则访问保护电路根据保护使能信号选择性地允许在IC调试接口与受保护的功能电路之间的通信。
7.一种在具有受保护的功能电路(12)和连接到受保护的功能电路的至少一个IC端子(52)的集成电路(10)中提供保护的方法,所述方法包括经由至少一个IC端子(106)接收输入IC安全密钥(106);比较输入IC安全密钥和存储的IC安全密钥(108);以及经由至少一个IC端子(112、116)选择性地允许访问受保护的功能电路。
8.一种在具有受保护的功能电路和JTAG接口的集成电路中提供保护的方法,所述方法包括在第一JTAG状态中,经由JTAG接口接收用户定义的指令(201);在第二JTAG状态中,经由JTAG输入接口接收输入IC安全密钥,并比较输入IC安全密钥和存储的IC安全密钥(106、108);以及选择性地允许经由JTAG接口(112、116)访问受保护的功能电路。
9.根据权利要求8的方法,其中第一JTAG状态对应于SHIFT_IR状态。
10.一种在具有受保护的功能电路和连接到受保护的功能电路的至少一个IC端子的集成电路中提供保护的方法,所述方法包括经由至少一个IC端子访问受保护的功能电路;编程强迫使能指示器以使能比较电路,其中比较电路比较输入IC安全密钥和存储的IC安全密钥,并根据比较,选择性地允许经由至少一个IC端子访问受保护的功能电路。
全文摘要
本发明涉及集成电路(IC),更具体地,涉及保护集成电路(10)不受未经授权的访问。在一个实施例中,向集成电路(10)的外部提供标识符。然后向集成电路(10)提供相应的输入IC安全密钥(52),并与存储的IC安全密钥(30)进行比较。如果输入IC安全密钥(52)与存储的IC安全密钥(30)不匹配,则禁止访问受保护的功能电路(12)。本发明可用于任何调试接口,包括使用由IEEE定义的JTAG1149.1接口的标准调试接口。
文档编号H04L9/32GK1639663SQ03804956
公开日2005年7月13日 申请日期2003年3月14日 优先权日2002年3月18日
发明者威廉·C.·莫耶尔, 迈克尔·D.·菲兹西门斯 申请人:自由度半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1