说明书在物理上不可克隆的函数冗余位
技术领域
本公开涉及电子设备领域,具体来说,涉及电子设备中的安全性领域。
背景技术
机密信息被许多电子设备存储、传输以及使用。因此,许多这样的设备包括具有一个或多个加密或其他秘密密钥的一个或多个组件,这些密钥可以被用来利用加密或其他技术来保护机密信息的安全性。用于生成这些密钥的技术常常包括使用随机数源。
附图说明
在附图中作为示例而非限制,示出本发明。
图1示出了根据本公开实施例的使用在物理上不可克隆的函数冗余位的集成电路。
图2示出了根据本公开实施例的在物理上不可克隆的函数冗余位逻辑。
图3示出了根据本公开实施例的使用在物理上不可克隆的函数冗余位的制造时间方法。
图4示出了根据本公开实施例的使用在物理上不可克隆的函数冗余位的评估时间方法。
具体实施方式
描述了提供在物理上不可克隆的函数冗余位的发明的实施例。在此描述中,可以阐明各种具体细节,诸如组件和系统配置,以提供对本发明的更加全面的理解。然而,本领域技术人员可以理解,本发明可以在没有这 样的具体细节的情况下实施。另外,为避免不必要地使本发明模糊,没有详细示出某些已知的结构,电路,及其他特征。
在下面的描述中,对“一个实施例”、“实施例”、“示例实施例”、“各实施例”等等的引用表示所描述的本发明的各实施例可包括特定特征、结构或特性,但是,一个以上的实施例可以包括并且并非每一个实施例一定包括特定特征、结构或特性。进一步地,一些实施例可以具有为其他实施例描述的某个、全部特征或不具有这些特征。
如在说明书和权利要求书中所使用的,除非另作说明,使用序数词“第一”、“第二”及“第三”等等来描述一个元素,只表示引用元素的特定实例或相似元素的不同实例,而不旨在暗示如此所描述的元素必须(无论是在时间上、在空间上)在排序方面或以任何其他方式遵照特定顺序。
此外,术语“位”、“标志”、“字段”、“条目”、“指示符”等等还可以被用来描述寄存器、表、数据库或其他数据结构中的任何类型的存储位置,无论是以硬件还是软件实现的,但是不旨在将本发明的各实施例限制到任何特定类型的存储位置或任何特定存储位置内的任何特定数量的位或其他元素。术语“清除”可以被用来指示存储或以别的方式导致逻辑值零被存储在存储位置,而术语“置位”可以被用来指示存储或以别的方式导致逻辑值1、全1、或某种其他指定值被存储在存储位置;然而,这些术语不旨在将本发明的各实施例限制到任何特定逻辑约定,因为在本发明的各实施例内可以使用任何逻辑约定。
如在背景部分所提及的,加密密钥的生成常常包括使用随机数源。在物理上不可克隆的函数(PUF)是所希望的随机数源,因为它可以用于在集成电路内提供唯一、可重复的并且不可预测的随机值。在此描述中,可以使用术语“PUF密钥”来表示通过PUF所生成的或从PUF导出的任何值。
图1示出了根据本发明实施例的包括PUF冗余位的集成电路(IC)100。IC 100可以表示用于任何电子设备中的任何其他组件。
例如,IC 100可以表示在单一衬底上集成的或封装在单一封装内的一个或多个处理器,其中每一个处理器都可以以任何组合包括多个线程和/或 多个执行核。每一个处理器都可以是任何类型的处理器,包括通用微处理器,诸如处理器系列、处理器系列,或来自Corporation的其他处理器系列的处理器,或来自另一公司的另一处理器,或专用处理器或微控制器。
IC 100可以包括PUF单元110,以生成一个或多个PUF密钥,这些密钥可以被IC 100用于任何用途,诸如直接用作一个或多个加密密钥或其他密钥和/或用于生成或派生一个或多个加密密钥或其他密钥。由PUF单元110生成的PUF密钥可以是任何尺寸,即,位数。PUF单元110可以包括PUF元件阵列120、冗余逻辑130、错误校正逻辑140、熵提取逻辑150、PUF密钥生成逻辑160、以及非易失性存储器(NVM)170。本发明的各实施例可以省略错误校正逻辑140、熵提取逻辑150、和/或PUF密钥生成逻辑160。
PUF元件阵列120可以包括任意数量的PUF单元,以提供唯一、可重复的、以及不可预测的值。例如,PUF元件阵列120可以利用诸如掺杂剂浓度、线宽、以及层厚之类的IC工艺参数的变化,这些参数可以将其本身表现为不同的IC上的相同电路的多个实例之间的定时行为的差异。因此,当被测量或质询时,PUF单元的每一个实例都可以提供唯一、可重复的、并且不可预测的响应。此外,由于制造变化在本质上是随机的,因此,克隆或创建PUF单元或PUF元件阵列的任何特定实例的物理副本非常困难。
在PUF元件阵列120中可以使用任何类型的PUF单元,包括但不限于,仲裁器PUF、环形振荡器PUF、静态随机存取存储器(SRAM)PUF、以及D-型触发器PUF。例如,SRAM PUF基于SRAM单元的四交叉耦合的晶体管,该SRAM单元基于四个晶体管之间的任何轻微不匹配,在通电之后呈现两种稳定状态中的一种。不匹配是制造过程中的变化的结果,如此,可以预期SRAM单元的单个实例的通电状态是可重复的,但是可以预期SRAM单元的多个实例的通电状态的分布是随机的。
PUF元件阵列120包括主PUF阵列122和冗余PUF阵列124。虽然被示为两个单独的部分,但是,主PUF阵列122和冗余PUF阵列124可以或 可以不在物理上彼此隔离或分离。在一个实施例中,冗余PUF阵列124的单元可以分布在主PUF阵列124内,例如,对于每几个主行或列,一个冗余行或列,或每一行或列的主单元中的几个冗余单元。
可以基于要被生成或派生的加密和/或其他密钥的尺寸(即,位数),确定主PUF阵列122的尺寸(即,单元数量)。在一个实施例中,这样的密钥可以是128位;然而,主PUF阵列可以包括超过128单元,以用于实现任何所需的错误校正和/或熵提取算法。
冗余PUF阵列124的尺寸可以与主PUF阵列122的尺寸成比例,并可以基于预期的原始PUF单元错误率和/或所希望的噪声降低水平来确定。例如,冗余PUF单元与主PUF单元的比可以对应于原始错误率,加额外的冗余PUF单元,以基于原始错误率中的预期可变性来提供所希望的余量。在此描述中,来自冗余PUF阵列122的PUF单元可以称为冗余位。
冗余逻辑130可以包括用于评估PUF元件阵列120中的一个或多个PUF单元的特性、用于替换那些被确定为生成PUF密钥时不满足稳定性要求的PUF单元的任何逻辑、电路、或其他硬件和/或固件。可以在不同电压和温度条件下多次测试PUF元件阵列120,以便确定哪些PUF单元将被标记为不稳定。如果特定PUF单元的测量到的位值(“0”或“1”)被确定为不稳定、有噪声、或由于别的原因不一致,则它可以被标记为要被替换的位(“坏位”),如下面所描述的。此测试可以由IC 100的制造商或供应商,在向系统制造商、系统用户、或其他消费者销售或发布IC 100之前执行。然而,希望测试过程不透露可能使IC 100的制造商确定在由消费者使用时要由PUF单元110生成的PUF密钥的信息,因为这将损害通过使用PUF密钥提供给消费者的安全性优点。冗余逻辑130可以用于测试PUF元件阵列120,并确定和替换坏位,而不会泄漏这样的信息。
因此,冗余逻辑130用于替换坏位,以便减少PUF密钥生成中的噪声和/或错误率。冗余逻辑130可以使用NVM 170来存储信息,诸如下面所描述的重定向列表,标记(例如,在IC或系统制造商的测试和/或消费者使用IC 100过程中),稍后标识(例如,在IC 100的后续使用过程中)并替 换坏位,如下面所进一步描述的。
错误校正逻辑140可以包括用于校正在从PUF元件阵列120生成PUF密钥中的错误的任何逻辑、电路、或其他硬件和/或固件。可以使用诸如纠错码(ECC)之类的任何已知错误校正技术。可以使用NVM 170来存储在IC 100的制造和/或测试过程中收集的信息,诸如ECC数据,以便以后供错误校正逻辑140用来在IC 100使用过程中校正错误。可能希望本发明的各实施例比根据其中丢弃坏位的降噪技术可能需要的更简单地实现错误校正逻辑140,因为坏位的替换使PUF响应长度被固定。
熵提取逻辑150可以包括用于在从PUF元件阵列120生成PUF密钥时提高熵的任何逻辑、电路、或其他硬件和/或固件。熵提取逻辑150可以用于提高熵,以便补偿由错误校正逻辑140的使用所产生的熵的任何损失。可以使用任何已知熵提取技术,诸如基于分组密码、消息认证代码(MAC)、散列函数、或基于高级加密标准(AES)密码的MAC的熵提取技术。可能希望本公开的各实施例提供比其他降噪技术较低的熵损失,因此,提供比根据已知降噪技术可能需要的熵提取逻辑150的更简单的实现。熵损失可能较低,因为本发明的各实施例,如下面所描述,只允许坏位位置信息被透露给测试者,而不会透露直接涉及坏位值的任何信息。
PUF密钥生成逻辑160可以包括用于从PUF元件阵列120的内容或输出生成一个或多个PUF密钥的任何逻辑、电路、或其他硬件,因为它可以由冗余逻辑130、错误校正逻辑140、和/或熵提取逻辑150后处理。例如,PUF密钥生成逻辑160可以测量或质询PUF元件阵列120,以产生一个或多个原始值,可以由冗余逻辑130、错误校正逻辑140、熵提取逻辑150、和/或PUF密钥生成逻辑150过滤、调节、处理、或以别的方式操纵这些原始值,以在响应中,进一步产生一个或多个PUF密钥。作为质询-响应协议的一部分,PUF密钥生成逻辑160本身也可以被质询,在这样的情况下,PUF密钥生成逻辑160可以基于PUF元件阵列120的内容或输出,以一个或多个PUF密钥作出响应,由冗余逻辑130、错误校正逻辑140、熵提取逻辑150、和/或PUF密钥生成逻辑150后处理。在任一种情况下,在质询 中所提供的一个或多个值(即,位集合)可以用于从PUF元件阵列120生成和/或后处理原始值。
NVM 170可以包括任何类型的非易失性存储器,诸如熔丝或可编程只读存储器,它们可以被用来在IC 100的制造和/或测试过程中存储信息,供冗余逻辑130和/或错误校正逻辑140在IC 100的使用过程中使用。例如,NVM 170可以包括冗余列表NVM 172和错误校正NVM 174。虽然被示为包括在IC 100中,但是,NVM 170可以与IC 100分开。
冗余列表NVM 172可以被用来存储列表或任何其他类型的数据结构,包括若干个条目,每一个条目都对应于冗余PUF阵列124中的PUF单元中的一个。每一个条目都可以包括任意数量的位位置,以存储地址、位编号、行编号、列编号、和/或任何其他信息,以标识主PUF阵列122或冗余PUF阵列124中的将被由该条目所标识的冗余PUF单元替换的特定位。冗余列表NVM 172的尺寸(即,位数)基于冗余PUF阵列124的尺寸。
错误校正NVM 174可以被用来存储任何ECC校正子或用于供在IC100使用过程中被错误校正逻辑140用于错误校正的其他数据。可以基于主PUF阵列122、冗余PUF阵列124的尺寸、要被生成或派生的加密和/或其他密钥、和/或希望的或预期的错误率限制,确定错误校正NVM 174的尺寸。通过实现错误校正逻辑140的简化,本发明的各实施例也可以实现比根据已知降噪技术可能需要的更小的错误校正NVM 174的尺寸。
图2示出了冗余逻辑200,其实施例可以用于图1中的IC 100中的冗余逻辑130内和/或表示图1中的IC 100中的冗余逻辑130。冗余逻辑200用于确定PUF元件阵列120的哪些位替换为冗余位,而不会向测试者泄漏PUF响应值信息。冗余逻辑200包括初始PUF结果寄存器210、测量到的PUF结果寄存器212、有噪声的位掩码寄存器220、临时有噪声的位掩码寄存器222、新的有噪声的位寄存器230、重定向列表寄存器240、逐位异-或(XOR)门214、逐位OR门224、逆变器232,以及逐位AND门234。
虽然被称为寄存器,但是,初始PUF结果寄存器210、测量到的PUF结果寄存器212、有噪声的位掩码寄存器220、临时有噪声的位掩码寄存器 222、新的有噪声的位寄存器230、重定向列表寄存器240可以使用IC 100中的任何类型的存储位置,诸如寄存器位、缓存位、或其他存储器位来存储信息。这些寄存器中的每一个中的位或条目的数量可以等于PUF元件阵列120中的PUF单元的数量,以提供这些寄存器的每一个中的位或条目与PUF单元的一对一映射。此外,在描述本发明的方法实施例时为清楚或方便起见,可以简单地示出这些寄存器中的任何一个或多个;它们可以或可以不在物理上存在于根据本发明的各种设备实施例的冗余逻辑200的各种实现中。
冗余逻辑200还包括重定向列表控制逻辑242,该控制逻辑242可以表示在根据本发明的方法实施例(诸如方法300)创建冗余列表时控制冗余逻辑200的操作的任何微代码、固件、电路、逻辑、结构和/或其他硬件。
根据本发明的第一方法实施例,诸如方法300,可以使用冗余逻辑200以创建要存储在重定向列表NVM 172中的重定向列表,根据本发明的第二方法实施例(诸如方法400),该重定向列表可以在IC 100的使用过程中用于噪声消减。在本发明的第一方法实施例之前或作为其一部分,有噪声的位掩码寄存器220的内容可以默认地清除或以别的方式初始化为全零,重定向列表240中的每一个条目可以默认地设置为或以别的方式初始化为值-1。
图3示出了根据本发明实施例的创建重定向列表的方法300,例如,在制造时间期间(如下文所定义的)。虽然本发明的方法实施例在这一方面不受限制,但是,可以参考图1和2的元件来帮助描述图3的方法实施例。方法300可以包括在向消费者销售或发布IC 100之前,作为制造和测试过程(制造时间)的一部分,由IC 100的制造商或供应商执行的测试。方法300也可以包括由IC 100的内部操作执行的动作。
在方法300的框310中,可以在初始测试条件下测试PUF元件阵列120,以确定初始原始PUF值(R)。初始测试条件可以包括任何特定操作电压、操作温度、和/或任何其他可控制的操作或环境条件。在框312中,初始原始PUF值存储在初始PUF结果寄存器210中。
在框320中,可以改变测试条件,例如,可以改变操作电压、操作温度、和/或其他可控制的操作或环境条件中的任何一个或多个。如果希望在相同条件下重复测试PUF元件阵列120,可以省略框320。
在框322中,可以在新的(或相同,如果需要)测试条件下,测试PUF元件阵列120,以确定新的原始PUF值(R')。在框324中,新的原始PUF值存储在测量到的PUF结果寄存器212中。
在框330中,通过逐位XOR门214,计算如存储在初始PUF结果寄存器210中的初始原始PUF值以及如存储在测量到的结果寄存器212中的新的原始PUF值的逐位XOR。在框332中,XOR门214的输出可以存储(作为M')在临时有噪声的位掩码寄存器222中,并可以用于指出哪些PUF单元在初始测量和新的测量之间改变了它们的值,因此,可以被视为坏的。
在框340中,如存储在有噪声的位掩码寄存器220中的有噪声的位掩码(M),通过逆变器232反转。在框342中,通过逐位AND门234,计算反转的有噪声的位掩码和如存储在临时有噪声的位掩码寄存器222中的临时有噪声的位掩码的逐位AND。在框344中,逐位AND门234的输出存储在新的有噪声的位寄存器230中,可以用于指出哪些PUF单元被新标识为坏的(即,基于测试PUF元件阵列120的最近迭代)。
在框350中,通过将新标识的坏位的地址或其他位置标识符(如由新的有噪声的位寄存器230所指示的)存储到重定向列表寄存器240中的下一可用的条目位置,更新重定向列表寄存器240(L)的内容。对于每一个新标识的坏位,重复框350。如下面在方法300的第二示例中进一步说明的,在未使用的冗余位被标识为坏位的情况下,通过将新标识的坏冗余位的地址存储在其自己的条目位置,来更新重定向列表寄存器240的内容,即使有另一可用的条目位置。
此外,在方法300的不同的实施例中,如下面在方法300的第三示例中所说明的,可以通过只利用对应于具有与坏位相同初始值的冗余位的下一可用的条目位置存储新标识的坏位的地址,以便维护原始PUF响应值分布,来更新重定向列表寄存器240的内容。
在框360中,通过逐位OR门224,计算如存储在有噪声的位掩码寄存器220中的有噪声的位掩码和如存储在临时有噪声的位掩码寄存器222中的临时有噪声的位掩码的逐位OR,并将其反馈到有噪声的位掩码寄存器220。因此,有噪声的位掩码寄存器220可以在多个测试条件下累积有噪声的位掩码,即,指示基于测试的一次或多次迭代发现哪些PUF单元是有噪声的。
在框370中,判断是否重复框320到360,例如,根据基于所希望的或预期的错误率限制、允许的冗余位限制(即,冗余位的数量)、测试的成本,和/或任何其他因素选择的参数。
在框380中,重定向列表寄存器240的输出可以被用来编程重定向列表NVM 172(例如,由测试者)。注意,初始PUF结果寄存器210或测量到的结果寄存器212的内容或用于生成重定向列表寄存器240的输出的任何其他值中没有一项被向测试者透露或泄漏。
可以利用下列三个制造时间示例示出方法300的操作。对于每一个示例,假设主PUF阵列122的尺寸是十六位(被称为位b0到b15),冗余PUF阵列124的尺寸是四位(被称为位b16到b19);因此,重定向列表寄存器240和重定向列表NVM 172各自具有四个条目。每一个条目都被初始化为-1,以指出条目可用。每一个条目都可以被用来存储位b0到b19中的一个的地址或其他位置标识符,为此描述目的,将分别被称为值0到值19。重定向列表寄存器240将被称为L,其内容将被描述为分别对应于冗余位b16到b19的带括弧的有序列表,例如,{-1,-1,-1,-1}。
在第一制造时间示例中,每一个坏位将被替换为任何可用的冗余位。在此示例中,冗余位被标识为坏位,由于它已经被用来替换另一坏位,因此,它本身被替换为另一冗余位。
通过第一次执行框330,位b3被标识为坏位。因此,通过第一次执行框350,L被更新到{3,1,-1,-1},以便b3将被替换为b16,第一当前可用的冗余位。通过第二次执行框330,位b9被标识为坏位。因此,通过第二次执行框350,L被更新到{3,9,-1,-1},以便b9将被替换为b17,第一当 前可用的冗余位。通过第三次执行框330,位b17被标识为坏位。因此,通过第三次执行框350,L被更新到{3,9,17,-1},以便b17将被替换为b18,第一当前可用的冗余位。
然后,通过执行框380,{3,9,17,-1}被存储到重定向列表NVM 172,以便在IC 100的使用过程中(如下文在方法400的描述中进一步说明的),位3被替换为位16,位9被替换为位18(因为位9被替换为位17,位17被位18替换)。
在第二制造时间示例中,每一个坏位将被替换为任何可用的冗余位。第二示例,类似于第一示例,示出了冗余位被标识为坏位,但是,在此示例中,在冗余位用于替换另一坏位之前,该冗余位被标识为坏位。
通过第一次执行框330,位b17被标识为坏位。因此,通过第一次执行框350,L被更新到{-1,17,-1,-1},尽管b17不是第一当前可用的冗余位,以便b17将不会被用来替换任何其他位。通过第二次执行框330,位b3被标识为坏位。因此,通过第二次执行框350,L被更新到{3,17,-1,-1},以便b3将被b16替换,第一当前可用的冗余位。通过第三次执行框330,位b9被标识为坏位。因此,通过第三次执行框350,L被更新到{3,17,9,-1},以便b9将被b18替换,第一当前可用的冗余位。
然后,通过执行框380,{3,17,9,-1}被存储到重定向列表NVM 172,以便在IC 100的使用过程中(如下文在方法400的描述中进一步说明的),位3被位16替换,位9被位18替换(并忽略位17)。
在第三制造时间示例中,每一个坏位都将只被替换为与正在被替换的坏位具有相同值的任何可用的冗余位,以便维护原始PUF响应值分布。
通过执行框310,位3的值最初被确定为零,位9的值最初被确定为1,位16的值最初被确定为1,位17的值最初被确定为零,位18的值最初被确定为1,位19的值最初被确定为零。
然后,通过第一次执行框330,位b3被标识为坏位。因此,通过第一次执行框350,L被更新到{-1,3,-1,-1},以便b3被b17替换,第一当前可用的冗余位与位3具有相同初始值。通过第二次执行框330,位b9被标识 为坏位。因此,通过第二次执行框350,L被更新到{9,3,-1,-1},以便b9被b16替换,第一当前可用的冗余位与位9具有相同初始值。通过第三次执行框330,位b17被标识为坏位。因此,通过第三次执行框350,L被更新到{9,3,-1,17},以便b17被b19替换,第一当前可用的冗余位与位17具有相同初始值。
然后,通过执行框380,{9,3,-1,17}被存储到重定向列表NVM 172,以便在IC 100的使用过程中(如下文在方法400的描述中进一步说明的),位3被位19替换(因为位3被位17替换,位17被位19替换),而位9被位16替换。
虽然为清楚和方便起见,三个制造时间示例中的每一个都示出了在框320到360的每次执行时只有一个坏位被标识,但是,可以标识任意数量的坏位,可以对于每一个,执行框350。
图4示出了根据本发明实施例的使用重定向列表的方法400,例如,在评估时间过程中(如下文所定义的)。虽然本发明的方法实施例在这一方面不受限制,但是,可以参考图1和2的元件来帮助描述图4的方法实施例。方法400可以包括,例如,由消费者执行的动作或响应于在IC 100的使用过程中(评估时间)执行的动作的动作,包括由IC 100的内部操作执行的动作。
在方法400的框410中,读取或评估PUF元件阵列120,以确定初始原始PUF值。在框412,从重定向列表NVM 172中读取重定向列表L。
在框420中(对于框420的初始执行,从L中的最后一个条目开始,随着每一次随后的执行,朝L中的第一条目前进),从L中读取条目。在框422中,判断当前条目的值是否是-1。如果是,那么,方法400返回到框420。如果否,那么,方法400在框424继续。
在框424中,对应于当前条目的冗余位的值被用来替换其地址或其他位置指示存储在当前条目中的位的值,导致更新的原始PUF值。
在框430中,判断当前条目是否是L中的第一条目。如果是,那么,方法400在框432继续。如果否,那么,方法400返回到框420。
在框432中,通过使用更新的PUF值的第一部分来生成最后一个原始PUF值。例如,如果主PUF阵列具有128位,那么,更新的PUF值的开头128位被用作最后原始PUF值。因此,主阵列中的任何坏位都被冗余位替换,以便坏位以及任何剩余冗余位不用于最后原始PUF值中。
在框440,可以通过错误校正逻辑140处理最后原始PUF值。在框442,可以通过熵提取逻辑150处理来自错误校正逻辑140的结果。在框444,来自熵提取逻辑160的结果可以被PUF密钥生成逻辑160用来生成PUF密钥。
可以利用下列评估时间示例示出方法400的操作。此示例对应于第一制造时间示例,如此,通过执行框412,L是{3,9,17,-1}。
然后,通过第一次执行框420,对应于冗余位19,当前重定向列表条目的值是-1。因此,通过第一次执行框422,方法400返回到框420。
然后,通过第二次执行框420,对应于冗余位18,当前重定向列表条目的值是17。因此,通过执行框424,使用初始原始PUF值中的冗余位18的值来替换位17的值,导致更新的原始PUF值。
通过第三次执行框420,对应于冗余位17,当前重定向列表条目的值是9。因此,通过另一次执行框424,使用更新的原始PUF值中的冗余位17的值(即,初始原始PUF值中的冗余位18的值)来替换位9的值,导致另一更新的原始PUF值。
通过第四次并且最后一次执行框420,对应于冗余位16,当前重定向列表条目的值是3。因此,通过另一次执行框424,使用更新的PUF值中的冗余位16的值来替换位3的值,导致另一更新的原始PUF值。
然后,通过执行框432,更新的PUF的头十六位(即,b0b1b2b16b4b5b6b7b8b18b10b11b12b13b14b15)被用作最后原始PUF值。
在对应于第三制造时间示例的另一评估时间示例中,其中,坏位被具有相同初始值的冗余位替换,可能看见所使用的冗余位之间的未使用的冗余位。因此,使用框422来在向后读取由框420的重复执行所产生的重定向列表过程中跳过未使用的冗余位。
在本发明的各实施例中,图3和4中所示出的方法可以以不同的顺序 执行,组合或省略所示出的框,添加额外的框,或重新排序、组合、省略,或额外的框的组合。
本发明的其他方法实施例也是可以的。例如,实施例可以包括基于它们的值,选择冗余位以替换坏位(或者甚至替换好位)以便可以预期最后PUF值具有任何所需的1与0的比(例如一比一)的方法。或者,例如,实施例可以包括坏位的制造后(例如,在客户使用过程中)标识和替换的方法,例如,计数器设备老化效应。
如此,描述了用于使用冗余位来降低PUF错误率的发明实施例。尽管在各个附图中描述和示出了某些实施例,但是,可以理解,这样的实施例只是说明性的,而不对本发明形成限制,本发明不仅限于所示出的和所描述的特定结构和布局,因为所属领域的技术人员在研究本发明时可以想到各种其他修改方案。在诸如此技术之类的技术的领域,在增长快速并且不能轻松地预见进一步的进步的情况下,在不偏离本发明的原理或附带权利要求的范围的情况下,所公开的各实施例可以轻松地在布局和细节方面可修改,如通过实现技术进步所促进的。