专利名称::半导体器件标识符产生方法以及半导体器件的制作方法
技术领域:
:本发明涉及由包括具有多个存储单元的易失性存储器在内的半导体器件产生标识符的方法。本发明还涉及一种识别这样的半导体器件的方法。本发明还涉及这样的半导体器件。
背景技术:
:出于多种原因,能够识别诸如集成电路(ic)之类的半导体器件是十分重要的,在所述半导体器件经封装之后尤其如此。例如,可能需要识别以便追溯(traceback)在封装之前得到的、封装IC的测试结果,例如,当IC还在晶片上时得到的IC测试结果。可选地,在现场返回(也就是由用户来返回)的情况下,将IC追溯到具体的批次,对于方便地将潜在其它故障的IC的现场取回,或方便地对返回的存在故障IC的生产过程进行评估以便改进此后IC的生产过程而言可能是十分重要的。此外,出于安全目的可以使用唯一的IC标识符(ID)。存在几种现有的为IC产生标识符的方式。例如,可以在封装之后通过刷漆对IC进行处理,在漆上标出ID。然而,这是一种相对昂贵的处理。此外,可以将标识符存储在专用的存储单元中。这样做的缺点是,需要为此而牺牲或添加存储器资源。出于识别目的,可选的识别技术以利用专用设备的特性为目标。在Lofstrom等人的"ICidentificationCircuitUsingDeviceMismatch"inProceedingsoftheISSCC,IEEEFeb.92000,pp.372-373中,公开了这样的识别方法的示例。在该论文中公开了一种具有可寻址MOSFET的阵列的IC。由于MOSFET中的失配,这些设备的漏极电流将存在随机的差异,因而会在由阵列驱动的负载上产生随机电压标记。由于对于单个IC而言这些电压是可再生的,所以这些电压信号可以用作IC的标识符。该方法缺点是,在IC板上需要附加的、专用硬件,因而增加了IC的成本。在美国专利申请US2004/0162959Al中公开了这样的方法的另一示例。在该申请中公开的发明涉及具有存储器的半导体器件,并且利用了存储器往往具有存在缺陷的存储器块这一事实。有关故障存储器块的位置或多或少是随机的,所以能够利用至少部分地以存储器中存在缺陷块的位置为依据的标识符来识别半导体器件。该方法的缺点是,需要检查整个存储器才能确定标识符,这是一个十分耗时并且昂贵的过程,对于大型存储器而言尤其如此。在US2006/0063286Al中,公开了一种方法,以根据对具有某一电子参数的多个半导体器件电路元件中一个元件的选择,为半导体器件提供标识符,其中所述电子参数对过程变化十分敏感,然而还具有诸如静态随机存取存储器(SRAM)的单元集的固有启动值之类的时不变值。将所选电路元件的参数值的时不变性用作半导体器件的标识符。过程变化的随机性确保标识符很可能是唯一的。然而,本发明的发明人发现,与根据SRAM单元集来得到启动值相关联的问题是并不是所有SRAM都具有固有启动值。因此,由于需要能够轻易识别出具有固有启动值的单元之前对SRAM的启动行为进行仔细的评估,所以根据SRAM启动得到标识符变成了十分耗时的操作,典型地,在能够确保足够程度的可靠性之前需要多次启动SRAM。
发明内容本发明目的在于,提供一种首段所述的由半导体器件产生标识符的更为经济的方法。本发明的目的还在于,提供一种半导体器件,能够将本发明的方法应用到所述半导体器件。根据本发明的一个方面,提出了一种由包括具有多个存储单元的易失性存储器在内的半导体器件产生标识符的方法,包括(a)使存储单元呈现出对于存储单元的微结构中的变化而言固有的多个伪随机位值;(b)从至少多个存储单元中的子集中获取伪随机位值;以及(C)根据所获取的位值产生标识符。本发明所基于的原理是,在对诸如静态随机存取存储器(SRAM)之类的易失性存储器上电,或使电荷从动态随机存取存储器(DRAM)泄漏一段预定义的时间的情况下,易失性存储器的至少某些存储单元将偏向于呈现特定的位值,例如在启动时呈现出优选位值,或在一段预定义的时间内保持为某一位值。这种对于各独立存储单元而言各不相同且因而对于各存储器各不相同的行为,是由存储单元的微结构中的差异所引起的。因此,通过从存储单元的子集获取伪随机位值(也就是在单个获取步骤中看似随机而由于与存储单元微结构的关系在至少某种程度上可再生的位值),就能够将这些值用作可以被分配给存储器所属的半导体器件的标识符。然而,已经指出,在本发明的上下文中,伪随机位值不仅看起来在单次获取步骤中是随机值,在随后的获取步骤间也呈现出某种程度的变化。例如,从至少多个存储单元的子集中获取位值的步骤可以包括从SRAM获取位值,其中在再次执行本发明的方法的步骤(a)的情况下,至少某些位值可能将呈现出不同的启动值。换言之,至少某些所获取的位值不是固有的启动值,而仅仅是优选启动值;也就是,在SRAM的若干次启动中采用不同位值,但采用特定启动位值比采用特定启动位值的补值次数更多的存储单元。在通过将存储器上电以产生伪随机位值的情况下,尽管不是存储器的所有单元都具有位优选启动行为,也就是某些单元具有或多或少的随机启动行为,然而可以肯定的是在不同次启动中从相同存储器获取的位值间的差异比从不同存储器中获取的位值间的差异小得多。这说明以这种方式从存储器中获取的位值能够用于识别的目的。换言之,本发明在US2006/0063286Al上做出了显著改进,这是由于己经认识到,由于所选择的一组存储单元的启动值在相同存储器的不同次启动间的变化比在不同存储器的启动值间的变化小得多,因此所选择的一组存储单元的启动值的某种程度的变化是可以接受的。这一认识使得对将要用于识别目的存储单元子集的选择比US2006/0063286Al的情况更为直接,这是因为不再需要识别那些SRAM中具有真正固有启动值的单元。如随后将更详细解释的,在出于识别目的使用选定的获取位时所需要做的的全部就是,检验在从这样的存储器所获取的位与来自数据库的标识符之间的差异是否超过了预定义的阈值。使用存储单元的启动值的重要优势是,能够使子集的大小保持很小;例如,如果独一无二的器件的数目大约是107,贝(j256个存储单元的子集大小足以轻易地成功识别出存储器以及它们所属的半导体器件。另一优点是,无需专门用于存储标识符的存储器资源。尽管出于大多数识别的目的,通过单次伪随机位值产生步骤获取的位值就肯定足够了,然而该方法还包括重复执行步骤(a)和(b),重复可以在不同的上电电压和/或不同温度下执行;并且其中使用所获取的位值的步骤包括使用由各重复步骤(b)获取的位值的组合。重复产生伪随机位值,例如,多次重复执行存储器上电以及之后的数据获取步骤,有助于确定哪些存储单元在多次上电时基本上采用相同的位值,这将这些单元标识为在上电时倾向于呈现该位值。此外,在不同的工作条件,如所施加的启动电压以及所采用的工作温度下,存储单元可能具有不同的启动特性。通过考虑这些不同的特性,能够得到更可靠的标识符。可以将得到的标识符存储在数据库中。这有助于今后识别半导体器件。根据另一实施例,该方法还包括以下步骤加载标识符数据库;以及通过将所述获取到的位值与多个半导体器件的各标识符进行比较,并选择与所述获取到的位值最匹配的标识符的方式,识别半导体器件。在所获取的位值与标识符数据库中的标识符之间寻找最匹配的步骤可以包括确定所获取的位值与数据库中的标识符间的差异,如比特漂移值或汉明距离。可以将所述差异与预定义的阈值相比较,以判断所获取的位值与标识符相似到可以断言正确识别出半导体器件的程度。因此,通过从将要识别的器件的存储器中获取一组位值,并将其同以之前获取的位值为依据的标识符进行比较的方式,就能够轻易地识别出半导体器件。本发明的另一实施例实现了基于标识符的密钥的产生。半导体器件可以包括其执行需要这样的密钥的功能。例如,半导体器件可以使用密钥对安全通信进行编码或解码,或可以出于验证的目的使用密钥,例如将密钥与从外界获取的密钥进行比较,以验证(verify)是否应该允许访问半导体器件的受保护部分。为此,该方法还包括提供一族码字,其中每个码字包含另一组多个信息符号;从码族选择一个或多个码字;根据一个或多个码字的信息符号创建密钥;以及使密钥在输出上可用;并且其中产生标识符的步骤包括创建映射函数,以便将一个或多个码字的每个位值映射至从中获取相应标识符位值的各存储单元;以及将映射函数保存在半导体器件上。这样一来,由于能够在稍后阶段从易失性存储器获取一个或多个码字,并且能够根据所获取的码字的信息符号重构密钥,因此通过将一个码字或在单个码字无法为安全密钥提供足够信息符号的情况下将多个码字的码位映射至标识符,根据一个或多个码字的信息符号创建密钥,以及保存映射信息的方式,可以将由易失性存储器得到的标识符用作密钥发生器。使密钥可用于半导体器件的输入,例如将密钥向设备的制造者公开。在使密钥可用之前可以对密钥进行修改;例如,可以根据产生的私有密钥提取公共密钥,仅使公共密钥可用。优选地,半导体器件包括使密钥可用于输出的装置,在使密钥可用于输出之后,禁用如破坏所述装置,以防止对半导体器件中的密钥进行未授权获取。这样的装置可以比如包括码字选择或编码装置。可以采用许多方式来实现映射函数。可以创建指向各选定存储单元的指针的列表,并将所述指针列表存储在半导体器件的非易失性存储器,如可擦除只读存储器中。可选地,可以通过创建位表,每个位表单元与至少易失性存储器的子集的存储单元相对应;并为每个位表单元提供指示映射函数中存在相应存储单元的位值的方式,实现映射函数。映射信息符号的值可以由所述位值与相应存储单元的上电位值生成。还可以将映射函数实现为一组存储单元的重排表。例如,映射函数可以随机的顺序映射一个或多个码字的位值,带有定义了成功获取映射函数所需的随机顺序的信息。这样的信息也可以存储在半导体器件上。根据本发明方法的另一实施例,可以在半导体器件中重新产生密钥,以实现其执行依赖于密钥的功能。根据该实施例,所述方法还包括利用映射含有从标识符获取一个或多个码字;对一个或多个所获取的码字进行纠错;根据一个或多个纠错后的码字的信息符号创建密钥;以及使用密钥来执行功能。典型地,码字是纠错码字(如BCH码、Reed-Solomon码、汉明码等等)的码本中的码字。使用纠错码字的优点是,在纠错步骤中,能够使用码字的奇偶校验位对在不同上电步骤中获取的上电值的变化进行纠正。这样一来,就得到了一种用于执行依赖于密钥的半导体器件的功能的方法,由于密钥特征基于半导体器件的易失性存储器的唯一特征,因此对于该方法无法伪造密钥。优选地,在比较步骤之后将包含密钥的码字从存储器中删除,以便使非授权访问密钥的风险达到最小。根据本发明的另一方面,提供了一种半导体器件,所述半导体器件包括具有多个存储单元的易失性存储器;以及控制器,被配置为从至少多个存储单元的子集中获取标识符,所述标识符包括对于存储单元的微结构中的变化而言固有的各伪随机位值。这样的半导体器件可以对例如来自自动测试设备或计算机的外部标识符产生请求信号作出响应,能够根据本发明的方法产生标识符。在将标识符用于识别目的的情况下,半导体器件还可以包括与易失性存储器相耦合的输出;并且其中控制器被配置为,为输出提供各个位值。这使对生成标识符的访问更加容易。半导体器件可以包括用于对这样的信号进行处理的边界扫描(IEEE1149.1或IEEE1500)兼容测试访问端口(TAP)控制器,存储器控制器对所述边界扫描兼容测试访问端口(TAP)控制器予以响应。这样做具有的优点是,能够使用TAP的可用管脚,例如,用于传输标识符产生请求信号和所获取的位值的测试数据输入(TDI)以及测试数据输出(TDO)。存储器控制器还可以包括用于存储子集大小的可编程存储器装置。这有助于动态配置子集大小,在不了解一批半导体器件的大小的情况下这样做可能是有利的。标识符还具有产生用于授权访问半导体器件的密钥的目的。为此,半导体器件还可以包括输出;用于根据一族码字中的一个或多个码字的信息符号产生密钥的装置,其中每个码字包括另一组多个信息符号;用于产生功能用以将码字的码位映射至标识符的各个位值的映射函数的装置;用于存储映射函数的非易失性存储器;用于将密钥传输至输出的装置,所述装置可以在已生成密钥的情况下禁用;用于接收另一密钥的输入;用于利用映射函数从标识符中提取密钥的提取装置;以及用于对至少半导体器件的一部分进行授权访问的授权装置,所述授权装置包括用于将密钥与另一密钥进行比较的比较器。由于对至少半导体器件的一部分的密钥授权访问基于半导体器件的易失性存储器的唯一特性,因此该半导体器件受益于防篡改的授权装置。由于所复制的非易失性存储器将呈现不同的上电行为,而这无助于再生所选定的一个或多个码字,因此即使复制的半导体器件包括映射函数,复制也是无效的。参考附图以非限制性示例的方式对本发明进行更详细地描述,附图中图l示出了本发明一方法的流程图2示意性地示出了使用本发明的方法从半导体器件获取的位值;图3示意性地示出了取平均后的使用本发明的方法从半导体器件获取的位值;图4示出了取平均后的启动位值的灰度映射,其中所述启动位值是使用本发明的方法的从多个半导体器件的存储单元的子集中获取的;图5示出了本发明方法的另一实施例的流程图6示出了本发明的半导体器件;图7示出了本发明方法的又一实施例的流程图8示意性地示出了根据图7的方法的一个方面的映射函数;图9示出了本发明方法的再一实施例的流程图;以及图10示出了本发明的另一半导体器件。具体实施例方式应该理解的是,附图仅仅是示意性的,而不是按比例绘制的。还应该理解的是,在全部的附图中使用相同的参考数字表示相同或相类似的部分。图l示出了将标识符分配给半导体器件的方法的实施例,其中所述半导体器件具有含有多个存储单元的易失性存储器,如SRAM。在本申请的上下文中,存储单元被配置为用于存储单位数据元素(unitdataelement),如比特。首先将针对SRAM型易失性存储器,即在上电(powerup)时呈现伪随机位模式(bitpattern)的存储器,来解释方法100。在第一步骤110中,在预定义的工作条件下,也就是在预定义的上电电压V以及预定义的温度T下,为半导体器件的存储器上电,以使存储器的单元呈现相应的伪随机位值。从易失性存储器不包含任何信息即任何实质电荷(substantialcharge)的状态开始对易失性存储器上电将是十分明显的。如稍后将更详细地予以示出的那样,由于不能够事先预测所述位置,因此所述位值是伪随机的,然而位值在很大程度上是可再生的。位值的随机性以及可再生性源自,每个存储单元均呈现由存储单元间的工艺参数中的潜在变化引起的独一无二的行为这一事实。换言之,每个单元具有唯一的微结构,这使单元具有不同的行为,比如对于SRAM型存储单元而言不同的启动行为。本发明中利用的就是这种行为上的差异。选择上电电压的值,使得该值超过存储器的晶体管的阈值电压。将意识到的是,V的实际合适值取决于实现易失性存储器的技术;例如,对于以CMOS12技术中开发的存储器而言,在0.7V-1.5V的范围内的任何值V都可能是恰当的,然而,例如在其它半导体技术的情况下,还可以使用该范围之外的值。步骤110可以由标识符产生请求信号予以启动,也就是对半导体器件进行信号触发以发起对本发明方法的执行。在下一步骤120中,获取存储在存储器的至少一个子集中的数据。由于从整个存储器读取数据可能是非常耗时的,尤其在存储器相当大(例如几兆)的情况下更是如此,因此优选从存储器的一部分而不是整个存储器获得数据。此外,用于从易失性存储器读取位值的一些设备仅能够处理有限的数据量,因而要避免读取整个存储器。在步骤125中,判定是否需要进一步的测量。可以通过不同的获取步骤(例如,在不同温度、不同上电电压或这些不同条件的组合下进行的不同的SRAM型存储器上电)获取不同的位值集合,并在固定的T和V下将每个上电步骤和数据获取步骤重复多次,以便于检测在多次启动间选定的易失性存储器的子集的启动位值的变化。例如,这使得可以确定子集中每个存储单元的启动行为的随机性,例如,单元是否强烈趋向于在启动时采用某一特定位值。判段是否在步骤125中执行多次启动和数据获取,此后可以在可选步骤130中改变T和/或V。如果在步骤135中检验出存在根据这种数据获取得到的多组数据,则可以例如通过对这些组数据求平均的方式在步骤140中合并这些组数据。以下将对此进行详细描述。在步骤150中,将获取的数据(可以是在步骤140中合并得到的数据)作为标识符分配给半导体器件,并在步骤160中将获取的数据存储在适当的数据库中。显然,可以选择标识符产生所用的易失性存储器子集的大小,以便标识符的大小适于被存储在数据库中,例如不导致过大的数据库大小。己经在一批被称作VEQTOR12的半导体器件上对方法100进行了测试,VEQTOR12是申请人为了对CMOS12工艺进行开发、鉴定以及监控在公司内部(in-house)使用的工具(vehicle)。VEQTOR12包括作为易失性存储器的实施例的SRAM。值得强调的是,由于存储器掉电时擦除了易失性存储器的内容,因此在上电了的易失性存储器的存储单元中的位值是上电过程的结果。在单元未倾向于呈现逻辑"o,,或"r'的情况下,位值,也就是存储在存储单元中的位值将是随机地产生的,而在单元倾向于逻辑"o"或"r的情况下,所述位值将具有可预测的值。换言之,存储器中的位值是通过易失性存储器的上电产生的。特定位值的呈现是由SRAM单元的反相器对中的反相器不完全相同这一事实引起的,其中SRAM单元的反相器对中的反相器不完全相同是因工艺变化所导致的。因此,当单元的互补半(complementaryhalves)相互竞争以达到充电状态时,由于上述变化,使得两个互补半中的一个更有可能胜出。图2给出了在V-1.2V并且T二25。C的情况下在VEQTOR12设备上执行的单次上电和数据获取步骤的结果。图中描述了从大小为256比特U6个16位的矢量)的存储器子集获取的数据获取结果。在该评估中,子集的总大小是2848比特(图3示出了子集的片段(fraction))。值得强调的是,选择子集的大小以在评估中得到可靠的统计量。为了识别的目的,可以使用更小的子集;举例而言,大约几百比特的子集足以识别几千万(tensofmillions)的设备。表l<table>tableseeoriginaldocumentpage16</column></row><table>图3给出了在V^0.8V、V=1.2V、T=-20°C、T=25°C以及T^80。C的所有组合的情况下执行执行总数为42次的上电和其后的数据获取步骤所得到的结果,其中针对每种组合执行7次独立的上电和其后的数据获取步骤。图4中,小数值表示将从相应的存储器位置获取的位值对所有42次测量取平均得到的平均值。表1概括了针对VEQT0R12设备(IC18)的测量结果,其中所述VEQTOR12设备(IC18)是从一批100多个VEQTOR12设备中随机选择的。这说明了在启动时,在所选择的子集中的大量"substantialnumberof)存储单元采用相同的位值,这为将获取的数据作为标识符或识别标志(signature)提供了基础。对从一组100多个VEQTOR12设备中随机选择的总共3个VEQTOR12设备进行评估。出于识别目的,重要的是,从单个设备获取的位值的变化应明显小于从不同设备获取的位值之差,以避免为设备分配错误的标识。存在几种计算位值差的方式。例如,可以在2组二进制数据之间计算汉明距离,也就是位值不同的位置的总数。汉明距离可用于计算比特漂移(bitdrift):比特漂移=(位值不同的位数/总位数)*100%表2给出了从该组设备中随机选出的3个VEQTOR12设备的比特漂移的概况。表2<table>tableseeoriginaldocumentpage17</column></row><table>测量结果显示每个设备的比特漂移是非常低的,并且典型地与约等于10的汉明距离相对应。此外,对于Vdd:0.8V,存在比特漂移随温度的提高而变小这一明显的趋势。因此,根据这些数据集能够推断出,可以在较高的温度下针对中等启动电压VDD得到更稳定的识别标志(也就是位值)。从图4能够获得对于设备间的比特漂移、或汉明距离的指示。此处,给出了对针对3个随机选出的设备进行的42次测量取平均后得到的平均位值的灰度表示。白色正方形指示始终产生逻辑'T'的存储单元,黑色正方形指示始终产生逻辑"0"的存储单元,而灰色正方形指示在42次测量中既产生"O"也产生'T,的存储单元,其中,正方形灰色越暗所指示的平均值就越小;例如,位置410与平均值0.4相对应,而位置420与平均值0.7相对应。根据图4,显而易见,3个设备的识别标志(也就是获取的位值的图案(pattern))是完全不同的。这一点表现在例如从不同设备获取的独立位值组间的汉明距离中;分别从设备I和设备II获取的一组位值间的汉明距离是121,分别从设备i和设备m获取的一组位值间的汉明距离是i2i,分别从设备n和设备m获取的一组位值间的汉明距离是ii8。这些汉明距离比单个设备的2组获取位值间的汉明距离大一个数量级。这再次说明所获取的数据组能够用于识别的目的。此处,需要强调的是,方法ioo还能够用于其它类型的易失性存储器,例如DRAM型存储器。在这样的存储器中,由于单元的微结构的变化导致不同单元的电荷泄漏速率互不相同。为此,在步骤110中,对易失性存储器上电包括将一组预定义的位值存储在存储单元中(例如一组位值全部为"l"的位),步骤120包括在预定的时间周期后获取位值的子集,其中选择时间周期使得某些而不是全部DRAM存储单元丢失它们的预定义的位值。这将为DRAM存储器提供与图4所示的识别标志相似的识别标志,并且能够以类似的方式使用根据DRAM的获取位值产生的标识符。图5示出了本发明的方法的另一实施例的流程图。除了先前描述的步骤IIO、120、125、130、135、140以及150以外,该方法500还包括步骤510:加载标识符数据库。该数据库中的标识符将是通过方法100产生的标识符,并且数据库将是在本发明的方法的步骤160中产生的数据库。换言之,该数据库包括根据图1所示的方法100的实施例、从多个半导体器件的各易失性存储器提取的标识符。在下一步骤520中,从数据库选择标识符,并将该选定标识符与从将要在步骤530中进行识别的半导体器件获取的位值进行比较。可以采用多种方式来执行所述比较。例如,可以计算选定标识符与所获取的位值间的汉明距离或比特漂移。在标识符和/或获取数据取决于多次启动和其后的数据获取步骤的情况下,计算的可以是平均后的汉明距离或比特漂移,或者可以使用诸如汉明型距离计算之类的其它比较技术,在所述汉明型距离计算中,根据如图3所示的采用格存储单元的再生位值的可能性大小,将权重因子用于该存储单元。所述比较通常产生一个值,用于指示数据库中的标识符同从将要识别的半导体器件中获取的位值之间的差别即相似性。在步骤535中,将该值与预定义的阈值相比较,所述阈值定义了所需的相似程度或标识符与获取位值之间的最大允许差别。例如,在对VEQTOR12设备执行的试验中,发现对于单个设备,所观查到的通过不同测量获取的位值间的汉明距离通常约为5-15,而来自不同设备的获取位值间的汉明距离通常超过100。因此,在这个具体示例中,选择大约10-20的阈值将使得能够利用数据库中正确设备的标识符对该设备进行成功识别。如果在步骤535中,判定数据库中的标识符与所获取的位值不匹配,就重复执行步骤520、530以及535,直到发现匹配标识符为止,之后在步骤540中结束识别,步骤540可以包括将与识别出来的半导体器件有关的信息(例如所述半导体器件的批次号、产地等等)传达给用户的已知方式。图6示意性地示出了本发明的半导体器件600。设备600具有与存储器控制器620相耦合的易失性存储器610。存储器控制器620被配置为,用于从存储器610的存储单元的预定义子集获取伪随机位值,以便产生标识符。伪随机位值对于相应存储单元的微结构而言是固有的,其中如先前解释的,伪随机位值是从所述存储单元获取的。控制器620在SRAM型存储器的情况下获取存储器610上电时的位值,或者可以将控制器620配置为,在对DRAM型存储器上电时,将预定义的位模式(bitpattern)存储在存储器中,并在可编程的预定义时延后获取伪随机位值。子集大小(dimension)可以被硬编码在存储器控制器620中,或者可以是可编程的。为此,存储器控制器620可以具有数据存储设备620(例如小型闪存、一个或多个合适的寄存器等等),以便存储可编程的子集大小。存储器控制器620可以对经由输入642提供的信号作出响应。该信号通常请求产生标识符,并将从而触发对存储器610上电。输出644被配置为,接收从存储器610获取的数据。可以将存储器控制器620直接耦合至输入642。可选地,半导体器件600还可以包括同IEEE1149.1兼容的测试存取端口(TAP)控制器630,后者还可能涉及设备600的控制测试模式。TAP控制器可以具有用于从TAP640接收指令指令寄存器(未示出)。因为边界扫描标准允许使用独占指令(proprietaryinstruction),所以可以将指令添加到TAP控制器630的指令集中,用于在存储器控制器620的控制下触发存储器610的上电以及数据获取。输入642可以是TDI,输出644可以是TAP640的TDO,存储器610至输出644的数据路径可以包括受TAP控制器630控制的扫描链(scanchain)。将意识到的是,本发明不限于利用整个易失性存储器设备的存储单元的微结构中的固有变化;同样还适于利用位于呈现出这样的伪随机行为的半导体器件的板上的分布式易失性存储器,如一组触发器(flip-flop)。无论如何,存储单元的设计应该优选地避免因设计导致偏向于特定的位值,以便能够检测到前述与微结构相关的效果。此处,需要强调的是,本发明的方法还能够用于产生用以实现安全目的的标识符,也就是授权对于IC(的某些部分)的访问所使用的唯一密钥,以验证或产生真实的(authentic)或安全的数据通信等。在本发明的上下文中,授权访问包括对由半导体器件(例如诸如机顶盒之类的译码器)所处理的内容的访问。图7示出了方法700的流程图,方法700给出了为实现密钥产生的目的,使用易失性存储器的识别标志的第一实施例。方法700起始于已在方法100的详细说明中描述过的步骤110、120、125、130以及140。此外,在步骤710中从码本(codebook)中选择码字。适宜的码本示例为,包括一族纠错码字的成员在内的码本;例如,BCH码本、汉明码本、里德所罗门(Reed-Solomon)码本等等。通常,码本的各码字长度为n,含有k个信息符号,最小距离为d,其中n、k、d是针对于特定码本的正整数,优选地每个码字具有唯一的一组信息符号。信息符号是码字中的位模式,也就是n比特的子集,而码字还包括多个奇偶校验位(paritybit),用于纠正信息符号获取中存在的误差。因此,在由不同启动产生的标识符位值间的汉明距离大于O的情况下,需要使用纠错码。对于本领域技术人员而言,纠错编码的理论是公知的;参见例如Wicker的,"ErrorControlsystemsforDigitalCommunicationandStorage",Prentice-Hall1995,或Lin禾口Costdlo的,"ErrorControlcoding:FundamentalsandApplications",Prentice-Hall1983,因此不再作进一步解释。只需强调,纠错码的k个信息符号能够用作授权密钥,以允许访问半导体器件(的某些部分),包括具体的半导体器件功能。本发明的方法是所谓"辅助数据(helperdata)"方法的具体示例,所述"辅助数据"方法有助于从有噪数据中获取经过编码的信息(例如密钥)。在J.P.Linnartz,P.Tuyls的,iVew57n'eW/"gFw"c"o"sto五"/za"ce尸n.vacyand尸revewf^A^、wseo/!Tem;/afes;inJ.KittlerandM,Nixon,editors,Proceedingsofthe3thConferenceonAudioandVideoBasedPersonAuthentication,volume2688ofLectureNotesinComputerScience,pages238-250,Springer-Verlag,2003中,能够找到对于辅助数据使用的基本理论的更详细的描述。选定码字之后,在步骤720中将所选码字的比特映射到标识符的相应位值上,也就是映射到从其中获取这些标识符位的存储单元上。如先前解释的那样,可以根据适应性准侧(suitabilitycriteria)选择存储单元,所述适应性准侧可以是,诸如在不同的上电条件下再生上电位值相同的倾向,这可以通过多次重复执行步骤110、120、125、130以及140的方式予以确定。图8示出了一些如何构造码字映射函数的示意性示例。将4位码字810映射至半导体器件的易失性存储器的子集820上。此处,为清楚起见,仅示出了4位码字和易失性存储器的16位子集;典型地,将使用更大尺寸的码字810和子集820。此外,如先前解释的那样,仅以示例的方式使用子集;为了实现识别的目的使用整个存储器也是可行的。在映射时,如符号810与子集820之间的箭头所指示的,选择合适的存储单元,即,在上电时呈现出与码810的各个比特相对应的位值的存储单元。映射函数可以作为指向子集820的所选存储单元的指针的表格予以实现,所述指针表格可以存储在半导体器件上,例如,诸如ROM、PROM或EEPROM之类的非易失性存储器中。可以采用重排列的(permutated)形式存储指针,其中指针序列中的指针指向杂乱排列的(scrambledordering)码字比特例如,第一指针指向码字的第三位,第二指针指向码字的第七位,等等。可选地,可以形成位表(bittable)830。这样的位表830可用作子集820的掩图(mask)或覆盖图(overlay),从而识别出将哪个存储单元映射到码字的信息符号上。图8中,标记为"1"的位表830的单元指示选定用于码字比特映射的子集820的存储单元。典型地,码字810的比特的实际位值是由位表830的标记值和基本(underlying)存储单元的上电位值生成的。还可以采用重排列的形式存储位表830。将意识到的是,对于本发明而言,将码字映射到易失性存储器上的方式并不是实质性的。此外,同样可行的是,可以在不背离本发明的教义的前提下使用映射算法。返回至图7,将所选码字的信息符号用作执行半导体器件的某些功能所需的密钥。这样的功能可以包括利用基于标识符的密钥对从外界接收的密钥进行验证、利用基于标识符的密钥对数据通信进行编码或解码、以及其它已知的依靠密钥的功能。在步骤730中将码字的信息符号分配给密钥。单个码字中信息符号的数目对于产生安全密钥而言有可能是不够的。例如,码字可以提供16个信息符号,而安全密钥需要64个信息符号。在步骤735中检验单个码字中信息符号的数目对于产生安全密钥而言是否够用。如果密钥需要比单个码字所提供的信息符号更多的信息符号,则可以重复执行步骤710、720以及730,直到得到足够数量的信息符号为止。可以通过级联(concatenation)的方式将从不同码字得到的信息符号(IS)分配给单个安全密钥<key>=<ISwordl><ISword2><ISword3><ISword4>密钥生成一旦完成,就在步骤750中使外界得到密钥,同时在步骤740中将映射函数存储在半导体器件上,例如存储在非易失性存储器中。步骤750和740的执行顺序并不是至关重要的,可以不同于图7所示的顺序。优选地,一旦使外界得到密钥,就禁用辅助该通信功能的半导体器件的板上电路,例如在步骤760中破坏所述电路以防止非授权方获知密钥。可以使用已知的破坏技术(例如,将在对于通信而言十分关键的导电通路中的熔丝烧断,等等)来实现对电路的破坏,并且对电路的破坏可以包括使其功能失效,例如在硬件中存在码字编码器的情况下破坏所述码字编码器。外界可以获得修改形式的密钥,例如,根据映射到标识符上的密钥(也就是私有密钥)产生的公共密钥。使用公共和私有密钥(也就是非对称加密)的安全系统理论对于本领域技术人员而言是公知的,因此不再对其作进一步论述。如图9所示的方法900的流程图演示了需要使用密钥才能执行的半导体器件的功能如何能够受益于使用按照方法700产生的密钥。方法900同方法100具有某些公共步骤,具体而言这些公共步骤包括IIO、120、125、130、135以及140。需要强调的是,在方法900的情况下,可以在半导体器件的板上执行所有这些步骤,这在实际应用中意味着在可选步骤130中对温度的调节是不可行的,除非半导体器件的板上包括加热元件。然而,这不是一个优选实施例。经过将易失性存储器上电,或经过等待存储器失去存储在其中的某些预定义位值后,方法900还包括步骤910:获取通过方法700产生的密钥。为此,使用在步骤730中保存的映射函数从半导体器件的易失性存储器的选定存储单元获取一个码字的码位,或在密钥包括来自多于一个的码字的信息符号的情况下获取多个码字的码位。对获取的码字进行译码以获取码字的信息符号。典型地,译码步骤包括对码字进行纠错,以分别去除通过码字映射和提取阶段得到的标识符上电值间的差别。典型地,如本领域技术人员熟知的那样,如果在步骤720中所选的存储单元的位值与在方法900的步骤120中从这些单元获取的位值之间的汉明距离不超过距离d,就能够对码字进行纠错并且能够从纠错后的码字中获取信息符号。重复执行步骤910,直至获取全部的密钥信息符号,并将所述信息符号分配给密钥。在步骤920中,密钥用于使得可以执行半导体器件的与密钥相关的功能。如先前解释的那样,这样的功能可以包括利用密钥对安全数据通信(例如,在互联网上的数据通信)迸行编码或译码、对所接收的消息的签名进行验证、利用密钥对将要发送的消息进行签名等等,或者,可以包括对由外界提供的密钥进行验证。在方法900的925部分中给出了仅以非限制性示例给出的后者的示例。在步骤930中,从外界接收另一密钥。在步骤935中,将基于易失性存储器标识符的密钥和从外界接收的密钥进行比较。如果密钥相同,则在步骤950中准许对半导体器件的安全部分或功能进行访问;如果密钥不匹配,则在步骤940中拒绝这样的访问。所述另一密钥可采用编码形式,以防止非授权方通过窃听向半导体器件传输另外密钥这一通信过程的方式获知该密钥。一种以加密形式提供另一密钥的示例是请求从半导体器件产生随机消息、利用另外的密钥对该消息进行编码、以编码消息的形式将另一密钥提供给半导体器件、以及利用以易失性存储器中的标识符为依据的密钥对该消息进行译码。如果经步骤935的检验发现译码后的消息与随机消息相对应,那么另一密钥就与以易失性存储器中的标识符为依据的密钥相同,并且在步骤950中可以准许访问半导体器件。需要强调的是,该密钥通信协议本身是已知的,并且其它已知的安全通信协议同样是可行的。在该示例中,步骤910和930可以任意特定的顺序予以执行;例如,步骤910的执行可以是通过步骤920中另外密钥的接收予以触发的。通常,优选情况下,删除根据所获取的码字构造的密钥,并在存在从外界接收的另一密钥的情况下将其删除,例如,当执行完对于受密钥控制的功能后,在步骤960中将上述密钥从半导体器件中删除,以避免对于密钥的非授权访问。这可以通过从临时存储密钥的存储器中删除所述密钥予以实现。图10中示意性地描述了安全半导体器件1000的实施例。半导体器件1000具有处理器1010,其上用软件实现纠错编码和译码算法,也就是用于产生和获取码字的算法。处理器1010可以对外部信号源(未示出)作出响应,以根据本发明的方法700产生密钥。可选地,处理器可以仅在对易失性存储器610进行第一次上电时产生这样的密钥。处理器IOIO被配置为,指示控制器620从存储器610中获取标识符,其中控制器620可以嵌入在处理器1010中。处理器还被配置为,对标识符进行评估,并将处理器1010所产生的码字的位值映射到合适的标识符位值上,也就是映射到合适的存储单元上。半导体器件还包括非易失性存储器1020,所述非易失性存储器1020用于将码字比特的映射函数存储到存储单元上。处理器1010可以通过可破坏的、用于将生成的密钥传输至输出1044的通信电路1030与输出1044相耦合。作为非限制性示例,可破坏的通信电路1030包括从处理器1010到输出1044的信号通路中的可烧断的熔丝;其它己知的破坏技术同样适用。典型地,一旦将密钥传给输出1044,就将禁用通信电路1030。处理器1010还被配置为,执行需要基于标识符的密钥的功能。例如,为了对半导体器件1000的受保护的功能进行授权访问,可以将处理器1010与用于接收另外密钥的输入1042进行耦合,其中如先前解释的那样,另一密钥可以采用编码形式。处理器1010可以被配置为,在接收到另一密钥时,使用存储在非易失性存储器1020上的映射函数从存储器610获取基于标识符的密钥。为此,将处理器1010配置为,在需要的情况,在易失性存储器610掉电之前对其强制上电,然后触发控制器620使其根据映射函数获取存储单元的位值。可选地,可以将处理器IOIO配置为,利用预定义的位值集合对DRAM型易失性存储器进行编程,并指示控制器620在预定义的时延后根据映射函数从存储器610获取位值。将处理器1010配置为,对从存储器610获取的比特进行译码,以获取密钥的信息符号,并将该密钥与从输入1042接收到的另一密钥进行比较,以便在密钥匹配的情况下准许访问半导体器件iooo的受密钥保护的部分。将意识到的是,可选地,可以将处理器1010配置为,运行其他需要使用基于标识符的密钥的功能,如数据通信的编码和/或译码。最后,将处理器1010配置为,将密钥从其内部存储器(例如寄存器,或其它存储器)中删除,并在存在另一密钥的情况下将另一密钥从处理器1010的内部存储器中删除。需要强调的是,半导体器件iooo的前述基于软件的实施例仅仅是非限制性示例;例如其它包含用硬件实现的纠错编码器和译码器、和/或基于密钥的数据通信加密或解密模块、和/或用硬件实现的密钥比较器、以及另一密钥的实施例同样也是可行的。这样的实现本身是已知的,为简洁起见此处将不作进一步的解释。应当注意的是,上述实施例用于说明而不是限制本发明,并且本领域的技术人员将能够在不背离所附权利要求的范围的情况下,设计出许多候选实施例。在权利要求中,不应将位于圆括号之间的参考标记理解为对权利要求的限制D词语"包括"不排除存在权利要求所列元件或步骤以外的其它元件或步骤。元件前的词语"一"或"一个"不排除存在多个这样的元件。本发明能够用包括几个分立元件在内的硬件来实现。在列举了若干装置的设备权利要求中,这些装置中的若干装置可以用同一硬件予以实现。在互不相同的从属权利要求中陈述特定措施这一事实,并不代表不能有利地将这些措施结合使用。权利要求1、一种由包括具有多个存储单元的易失性存储器(610)在内的半导体器件(600)产生标识符的方法(100,500,700,900),所述方法包括(a)使(110)存储单元呈现出对于存储单元的微结构中的变化而言固有的多个伪随机位值;(b)从至少多个存储单元的子集中获取(120)伪随机位值;以及(c)根据所获取的位值产生标识符。2、根据权利要求l所述的方法(100,500,700,900),还包括接收标识符产生请求信号;以及对所述信号的接收予以响应,执行步骤(a)-(c)。3、根据权利要求1或2所述的方法,其中,使存储单元呈现多个伪随机位值的步骤包括对易失性存储器上电。4、根据权利要求1或2所述的方法,其中使存储单元呈现多个伪随机位值的步骤包括将预定义的一组位值存储在存储单元中以及对获取步骤进行延迟,使多个存储单元中的某些而不是全部存储单元失去预定义的位值。5、根据权利要求1至4中任意一项所述的方法(100,500,700,900),还包括重复执行步骤(a)和(b);并且其中产生标识符的步骤包括合并通过多次重复执行的步骤(b)所获取的位值。6、根据权利要求4所述的方法(100,500,700,900),其中,使用不同的存储器上电电压来重复执行步骤(a)和(b)。7、根据权利要求5或6所述的方法(100,500,700,900),其中,以不同的温度重复执行步骤(a)和(b)。8、根据前述权利要求中任意一项所述的方法(100,500,700,900),还包括将标识符分配(160)给半导体器件。9、根据前述权利要求中任意一项所述的方法(100,500),还包括将标识符存储(170)在数据库中。10、根据权利要求8所述的方法(500),还包括加载(510)标识符数据库;以及通过将所述获取到的位值与数据库中的各标识符进行比较(530),并选择与所述获取到的位值最匹配的标识符的方式,识别半导体器件。11、根据权利要求10所述的方法(500),其中,选择最匹配的标识符包括确定所获取的位值与标识符间的差异。12、根据权利要求ll所述的方法(500),确定差异包括确定汉明距离。13、根据权利要求ll所述的方法(500),其中,确定差异包括确定比特漂移值。14、根据权利要求1至7中任意一项所述的方法(700),其中,半导体器件(1000)还包括功能,所述功能的执行需要包含多个信息符号的密钥;输出(1044);以及用于使密钥在输出(1044)上可用的装置(1030);所述方法还包括提供一族码字,其中每个码字包含另一组多个信息符号;从码族中选择一个或多个码字;根据所述一个或多个码字的信息符号创建密钥;以及使(740)密钥在输出(1044)上可用;并且其中产生标识符的步骤包括创建(720)映射函数,以便将所述一个或多个码字的每个位值映射至从中获取相应标识符位值的各存储单元;以及将映射函数保存(730)在半导体器件上。15、根据权利要求14所述的方法,还包括在使密钥可用之前修改密钥。16、根据权利要求14或15所述的方法(700),还包括在使密钥可用后将用于为输出提供密钥的装置禁用(750)。17、根据权利要求14、15、或16所述的方法(700),其中,创建映射函数的步骤包括创建指向各存储单元的多个指针。18、根据权利要求M、15、或16所述的方法(700),其中,创建映射函数的步骤包括创建位表(830),每个位表单元与至少易失性存储器的子集(820)的存储单元相对应;以及为每个位表单元提供指示映射函数中存在相应存储单元的位值。19、根据权利要求14、15、或16所述的方法(700),其中,创建映射函数的步骤包括为一组存储单元创建重排表。20、根据权利要求1一7中任意一项所述的方法(900),其中,半导体器件(1000)还包括功能,所述功能的执行需要包含多个信息符号的密钥;以及映射函数,用于将一族码字中的一个或多个码字的位值映射至标识符的各个位值,其中每个码字包含另一组多个信息符号;所述方法还包括利用映射函数从标识符中获取(910)所述一个或多个码字;对所述一个或多个获取的码字进行纠错;根据所述一个或多个纠错后的码字的信息符号创建密钥;以及使用密钥执行(920)功能。21、根据权利要求20所述的方法,其中,执行(920)功能包括接收(930)另一密钥;将所述密钥与另一密钥进行比较(935);以及在所述密钥与另一密钥匹配的情况下,允许对至少半导体器件的一部分进行操作。22、根据权利要求20所述的方法,其中,执行(920)功能包括:接收加密数据;以及利用密钥对加密数据进行处理。23、根据权利要求20所述的方法,其中,执行(920)功能包括:利用密钥对数据进行编码;以及发送编码数据。24、根据权利要求20所述的方法,还包括在执行完功能后删除(960)密钥。25、一种半导体器件(600,1000),包括易失性存储器(610),具有多个存储单元;以及控制器(620),被配置为从至少多个存储单元的子集中获取标识符,所述标识符包括对于存储器单元的微结构中的变化而言固有的伪随机位值。26、根据权利要求25所述的半导体器件,其中,所述控制器被配置为,对易失性存储器的上电予以响应,获取所述位值。27、根据权利要求25或26所述的半导体器件(600),还包括与易失性存储器(610)相耦合的输出(644);并且,其中控制器(620)被配置为,为输出(644)提供各个位值。28、根据权利要求25、26或27所述的半导体器件(600),其中,存储器控制器(620)对外部标识符产生请求信号予以响应。29、根据权利要求25、26、27或28所述的半导体器件(600),其中,存储器控制器(620)包括用于存储子集大小的可编程存储器装置(622)。30、根据权利要求28所述的半导体器件(600),其中,存储器控制器(620)对边界扫描兼容测试访问端口控制器(630)予以响应,所述边界扫描兼容测试访问端口控制器(630)被配置为,对外部标识符产生请求信号进行处理。31、根据权利要求25或26所述的半导体器件(1000),还包括输出(1044);功能(1010),所述功能(1010)的执行需要包含多个信息符号的密钥;用于根据一族码字中的一个或多个码字的信息符号产生密钥的装置(1010);用于产生映射函数的装置(1010),所述映射函数用于将所述一个或多个码字的码位映射至标识符的各个位值;用于存储映射函数的非易失性存储器(1020);以及用于利用映射函数从标识符中提取密钥的提取装置(1010)。32、根据权利要求31所述的半导体器件,还包括用于接收另一密钥的输入(1042);所述功能包括授权装置(1010),用于授权对所述至少半导体器件的一部分进行访问;所述授权装置包括用于将所述密钥与另一密钥进行比较的比较器。33、根据权利要求32所述的半导体器件,其中,功能包括编码器,用于利用密钥对数据进行编码。34、根据权利要求31或33所述的半导体器件,其中功能包括用于利用所述密钥对数据进行解码的解码器。35、根据权利要求31所述的半导体器件,还包括用于将密钥传输至所述输出的装置(1030)。36、根据权利要求34所述的半导体器件,其中,将用于传输密钥的装置(1030)禁用。全文摘要公开了一种由半导体器件(600)产生标识符的方法(100),所述半导体器件包括具有多个存储单元的易失性存储器(610)。所述方法包括使(110)存储单元呈现出对于存储单元的微结构中的变化而言固有的多个伪随机位值;从至少多个存储单元的子集中获取(120)伪随机位值;以及根据所获取的位值产生标识符。所述方法(100)基于,易失性存储器的大量单元能够呈现出受制造工艺参数的基本变化所支配的位值这一认识;举例而言,对于SRAM在上电时会发生这种现象,对于DRAM在上电后经过一段时间而不进行刷新的情况下会发生这种现象。这可以用于实现多种识别目的,如识别包括非易失性存储器(610)的半导体器件(600),或用于通过将纠错码字映射至标识符比特位置的方式产生安全密钥。本发明还包括被配置为可执行根据本发明的方法(100)的半导体器件(600,1000)。文档编号G11C16/20GK101421792SQ200780013308公开日2009年4月29日申请日期2007年4月4日优先权日2006年4月13日发明者亚伯拉罕·C·克鲁泽曼,吉尔特·J·施里延,拉特格·S·范韦恩,曼努埃尔·P·C·海利格尔,皮姆·T·图伊尔斯,鲁洛夫·H·W·索尔特,鲍里斯·斯科里克申请人:Nxp股份有限公司