在非易失性存储器器件上嵌入的系统软件复制保护的制作方法

文档序号:6750679阅读:308来源:国知局
专利名称:在非易失性存储器器件上嵌入的系统软件复制保护的制作方法
技术领域
本发明涉及一种存储器器件,具体涉及一种在非易失性存储器器件上复制保护的系统和方法。
诸如闪速ROM(只读存储器)之类的非易失性存储器器件常常遭受严重的盗版复制。这种盗版复制导致了制造者和消费者的附加成本。因此,制造者已经设计几种方法以用于防止固件的未授权复制。
一种这样的方法是采用读保护嵌入ROM。这样的读保护嵌入ROM是一种仅允许从CPU(中央处理单元)核心取指令的嵌入ROM存储器。然而,这种读保护嵌入ROM方法不容易在采用分级总线结构和高速缓冲管理的系统内实现。进一步,在掩膜ROM的情况下,对于每种应用需要完全定制的保护芯片。在OTP ROM的情况下,特定的装置是需要用于程序设计的装置。最终,一个有经验的盗版复制者可以打开并复制一个单独的芯片以绕过嵌入读保护ROM。
一种替换的方法是使用专用鉴定芯片。然而,这种方法是有缺陷的,因为其需要一个诸如串行总线之类的支持硬件和来自系统微控制器或处理器的其他资源。
同样地,还需要用于非易失性存储器器件上的固件的改进的复制保护。还需要这种复制保护容易并且低成本地实现。
通过根据本发明的系统和方法可以很大程度上解决已有技术中的这些和其他问题。根据本发明的非易失性存储器芯片复制保护采用一个存储第一和第二存取密钥的读保护存储区。剩余的存储区还执行常规的非易失性存储功能。即使芯片被复制,也不能复制被保护的存储区。
为测试一个存储器是否具有一个有效复制,通过系统软件产生一个随机的种子值并且,使用第一密钥,产生第一复制保护函数。具有第二密钥的相同种子值将产生后面涉及的第二函数。
为完成测试,该系统必须将第一函数的正确值写回反-复制器件。当且仅当提供要求的应答,才允许系统从反复制器件读回第二函数的匹配值。同样,输出随机数,该随机数被系统识别为错误,从而是复制的结果。在该情况下,在不向下进行的情况下系统暂停操作。
为实现复制保护器件,可以结合用于函数和比较实现的控制逻辑使用非易失性存储器技术。该函数可以被构成查找表,对于非易失性存储器技术该表易于实现,另外,系统软件用于实现询问和应答轮询,以及如果检测到无效复制就挂起系统的判定。
这样本发明提供一种改进的在非易失性存储器固件上的非易失性复制保护。根据本发明的固件复制保护相对成本较低并且相对易于实现。
当结合下面的附图阅读下面的详细描述时可以较好地理解本发明,其中

图1是根据本发明一个实施的示范的非易失性存储器芯片的方框图;图2是示出本发明一个实施例的操作流程图;图3是示出本发明另一个实施例的操作流程图;和图4是示出根据本发明一种实施的示范查找表实现的图。
图1-4示出用于非易失性存储器芯片复制保护的系统和方法。正如下面详细讨论的,根据本发明的非易失性存储器芯片复制保护采用一个存储第一和第二存取密钥的读保护存储区而剩余的存储区还执行常规的非易失性存储功能。即使芯片被复制,也不能复制被保护的存储区。
为测试一个存储器是否是一个有效复制,通过系统软件产生一个随机的种子值并且,使用第一密钥,产生第一复制保护函数。具有第二密钥的相同种子值将产生后面涉及的第二函数。为完成测试,该系统必须将第一函数的正确值写回反-复制器件。当且仅当提供要求的应答,才允许系统从反复制器件读回第二函数的匹配值。同样,输出随机数,该随机数被系统识别为错误,从而是复制的结果。在该情况下,在不向下进行的情况下系统暂停操作。
现在按照图1,示出示范非易失性存储器芯片100的方框图。该非易失性存储器芯片可以是,例如,诸如EPROM,或闪速存储器之类的随机存取存储器。该存储器芯片包括一个耦合到数据总线110的存储器库101。该存储器库101包括一个公用ROM存储器区102和一个被保护的ROM区105。处理单元90可以耦合到存储器芯片100。处理单元90实施系统软件,后面将更为详细地对其进行描述。
根据本发明的非易失性存储器芯片复制保护采用一个存储第一和第二存取密钥(寄存器A和B)的读保护存储区105。如果芯片被复制,被保护的存储区不能被复制。用户可以选择存取密钥,然后通过制造者将该存取密钥烧制入被保护的存储区并且不能再次被读出。应该注意到尽管下面描述了第一和第二存取密钥,根据所述实施较多或较少的密钥也是可能的。这样,附图仅是示意性的。
根据一个实施,可以采用三个寄存器,寄存器C,寄存器D,以及寄存器E。正如下面详细解释的,寄存器C是只写入寄存器,寄存器D是只写入寄存器,以及寄存器E是只读寄存器。
使用寄存器C以存储一个“种子”值。通过系统软件产生随机种子值并且在接收时将其存储在寄存器C。如下面详细描述的,系统软件还用于将一个值写入寄存器D。特别是,通过已被制造者预编程的函数F(A,C)的系统软件使用寄存器D来存储一个“猜测”值。寄存器E用于存储已从寄存器E被读回的一个测试值。具体地说,当且仅当寄存器D中的值与A和C,F(A,C)的函数结果匹配时,寄存器E的输出值与B和C,f(B,C)的第二函数结果匹配。否则在寄存器E将存储一个不同值。
函数F(A,C)和f’(B,C)可以通过逻辑单元106在运作时产生或者被实施为存储在逻辑单元106的查找表。该函数可以是两个变量的任何预定函数。
参照图2较为详细地示出了本发明一个方面的操作。特别是,图2示出一个用于存储用户存取密钥的示范程序。在步骤302,用户选择存取密钥A和B。作为一种替换,可以由制造者提供存取密钥A和B。在步骤304,系统将存取密钥A和B存储在被保护的ROM104。这样,例如,可以以各种方式存储存取密钥A和B,例如使用公知的烧制技术。最终,在步骤306,系统产生函数F(A,C)和f’(B,C)的查找表。接着将该函数存储在逻辑单元106以由系统以后使用。
图3是示出本发明另一个方面的操作的流程图。特别是,图3的流程图示出“询问和应答”程序。在步骤402,系统软件将随机种子值写入寄存器C。作为响应,在步骤406,408,逻辑单元106读取寄存器C并使用存取密钥A和B产生F(A,C)和f’(B,C)。接着系统软件将F(A,C)的猜测和估算写入寄存器D。由制造者预程编该猜测和估算。在步骤412,将寄存器D内的值与逻辑单元106产生的F(A,C)的值进行比较。如果值匹配,则在步骤414,使用f’(B,C)加载寄存器E,该f’(B,C)在步骤408通过逻辑单元106产生。否则,在步骤410系统软件根据D产生随机值,但是该值不等于f’(B,C),该值在步骤416加载到寄存器E。
如上所述,可以使用一个或多个查找表实施函数F(A,C)和f’(B,C)。图4示出该方法的一种实现。可以使用四个(4)256X4位ROM存储器402a-502d实现16(16)位函数500。例如,可以使用下面的函数实施函数F(A,C)F(A,C)=F1(A1,C1)·212+F2(A2,C2)·28+F3(A3,C3)·24+F4(A4,C4)即,在表1 502a实现F1,在表2 502b实现F2,在表3 502c实现F3,以及在表4 502d实现F4。可以类似地实现函数f’(B,C)。应该注意到上述等式只是使用多于一个表的的复制保护函数一种可能的实现。这样,上述等式仅是示意性的。
权利要求
1.一种固件复制保护系统,其特征在于被保护存储器(105),用于存储多个存取密钥(A,B),所述存取密钥不能由系统软件读取;第一存储器位置,用于存储种子值(108);第二存储器位置(108),用于存储第一复制保护函数的估算,所述第一复制保护函数是所述种子值和所述多个存取密钥中的第一个的函数;以及第三存储器位置(108),如果所述第一复制保护函数通过比较则用于存储第二复制保护函数的结果,所述第二复制保护函数是所述种子值和所述多个存取密钥中的第二个的函数。
2.如权利要求1所述的固件复制保护系统,所述多个存取密钥(A,B)为用户可选择。
3.如权利要求2所述的固件复制保护系统,所述第一,第二,以及第三存储器位置(108)包括第一,第二,和第三寄存器。
4.如权利要求3所述的固件复制保护系统,其中如果所述固件不是一个复制品则所述第一复制保护函数通过所述估算。
5.一种用于固件保护的方法,其特征在于在保护存储器(108)存储第一和第二存取密钥(A,B);存取一个种子值;产生第一和第二复制保护函数;使用系统软件估算所述第一复制保护函数的输出;和如果所述第一复制保护函数的所述估算和所述第一复制保护函数的所述输出相同则存储所述第二复制保护函数的输出。
6.如权利要求5所述的方法,所述第二函数是所述种子值和所述第二存取密钥的函数。
7.如权利要求6所述的方法,进一步包括存储所述种子值。
8.一种固件复制保护器件,其特征在于装置(105),用于存储第一和第二存取密钥并防止所述第一和第二存取密钥被复制;装置(108),用于存储一个种子值;装置(101,106),用于将所述种子值和所述第一存取密钥的第一函数与系统软件所进行的一个估算进行比较,如果所述固件还未被复制则所述估算和第一函数相同;以及装置(101,106),如果所述固件还未被复制用于实现所述种子值和所述第二存取密钥的第二函数。
9.如权利要求8所述的固件复制保护器件,其中所述第一函数实现装置(101,106)包括一个用于存储所述第一函数的结果的存储器(108)。
10.如权利要求9所述的固件复制保护器件,其中所述第二函数实现装置(101,106)包括一个用于存储所述第二函数的结果的存储器(108)。
11.如权利要求9所述的固件复制保护器件,其中所述种子值被随机产生。
12.一种固件复制保护器件,其特征在于非易失性存储器器件(102),具有用于存储第一和第二存取密钥的读保护区(105);逻辑电路(106),被配置为实现作为随机变量和所述存取密钥中的第一个的第一函数以及被配置为实现作为所述随机变量和所述第二存取密钥的第二函数;第一寄存器(108),用于存储所述随机变量;第二寄存器(108),用于储存由所述第一函数的系统软件进行的估算;以及第三寄存器(108),如果所述第二寄存器的内容与所述第一函数匹配则存储所述第二函数。
13.如权利要求12所述的固件复制保护器件,其中所述第一和第二存取密钥不能由所述系统软件读取。
14.如权利要求12所述的固件复制保护器件,其中所述逻辑单元(106)将所述第一和第二函数实现为查找表。
全文摘要
非易失性存储器芯片保护采用存储第一和第二存取密钥的读保护存储器区,如果该芯片被复制,则被保护的存储器区(105)不能被复制。产生一个随机种子数并且,使用第一密钥,产生第一函数。如果该函数的输出与一个实际密钥的公知输出函数匹配,则产生第二密钥,该第二密钥是该种子值和第二存取密钥的函数。如果第二个数与所要求的值匹配,则允许存取。否则,输出一个随机数,该随机数被系统识别为错误,从而为复制的结果。在该情况下,禁止对系统的访问。
文档编号G11C16/22GK1296265SQ0013239
公开日2001年5月23日 申请日期2000年11月9日 优先权日1999年11月10日
发明者T·-M·陈 申请人:因芬尼昂技术北美公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1