稳定的抗探测物理不可克隆函数(PUF)电路的制作方法

文档序号:11208971阅读:527来源:国知局
相关申请本申请要求于2015年3月24日提交的名称为“astableprobing-resilientphysicallyunclonablefunction(puf)circuit(稳定的抗探测物理不可克隆函数(puf)电路)”的美国申请号14/667,665的优先权。本发明的实施例总体上涉及电子电路
技术领域
:,并且更具体地涉及用于生成安全密钥的物理不可克隆函数(puf)电路。
背景技术
::本文中所提供的背景描述是为了一般地呈现本公开的背景的目的。就在本
背景技术
:部分中的描述而言,当前指定的诸位发明人的工作以及提交日时可以不另外取得现有技术资格的描述的多个方面,既不显式地也不隐含地承认视为与本公开抵触的现有技术。除非在本文中另外指出,否则在此部分中描述的方法对于本公开中的权利要求不是现有技术并且也不会因为被包含在此部分中而被承认是现有技术。许多电子电路(诸如计算机芯片)使用加密密钥以便与另一设备进行认证。加密密钥有时由制造商来编程并且存储在电子电路管芯上的熔断器中。然而,熔断器易于受到视觉和电子探测攻击。而且,由于熔断器由制造商来编程,因此它们对于测试台上的内部攻击是脆弱的。一些电路使用物理不可克隆函数(puf)电路来生成加密密钥。所述puf电路利用puf电路的器件(例如,晶体管)的物理变化来生成所述加密密钥。重要的是,所述puf电路生成稳定且可重复的加密密钥。而且,针对puf电路的大规模制造,有益的是在puf电路的不同单元之间具有高变化。附图说明结合附图,借助于以下具体实施方式将很容易理解实施例。为了便于本描述,相同的参考标号指代相同的结构元件。在附图的各图中通过举例而非通过限制的方式来展示实施例。图1展示了根据各实施例的物理不可克隆函数(puf)电路。图2展示了根据各实施例的puf单元。图3展示了根据各实施例的另一puf单元。图4展示了根据各实施例的另一puf单元。图5展示了根据各实施例的puf单元的电路布局。图6展示了根据各实施例被配置用于采用本文所述的装置和方法的示例系统。具体实施方式在以下具体实施方式中,参考形成其一部分并且通过可实践的说明实施例示出的附图,其中,相同的标号指示相同的部件。应当理解的是,在不脱离本公开的范围的情况下,可以利用其他实施例并且可以做出结构或逻辑改变。因此,以下具体实施方式不应被认为具有限制意义,并且实施例的范围由所附权利要求书及其等效物来限定。可以以对理解要求保护的主题最有帮助的方式将各种操作依次描述为多个分立动作或操作。然而,描述的顺序不应被解释为暗示这些操作一定是顺序相关的。具体地,可以不按所呈现的顺序来执行这些操作。可以按与所描述的实施例不同的顺序来执行所描述的操作。可以执行各种附加的操作和/或可以在附加实施例中省略所描述的操作。为了本公开的目的,短语“a和/或b”和“a或b”意思是(a)、(b)或(a和b)。出于本公开的目的,短语“a、b和/或c”意指(a)、(b)、(c)、(a和b)、(a和c)、(b和c)、或(a、b和c)。本说明可能使用短语“在实施例中(inanembodiment)”或“在多个实施例中(inembodiments)”,这些短语可以各自指代相同或不同实施例中的一个或多个实施例。此外,如关于本公开的实施例使用的术语“包括(comprising)”、“包括(including)”、“具有(having)”等是同义的。如在本文中所使用的,术语“电路系统”可以指代以下各项、是以下各项的一部分或包括以下各项:专用集成电路(asic)、电子电路、处理器(共享、专用或组)、组合逻辑电路和/或提供所描述的功能的其他合适的硬件部件或者作为其中的一部分。如在本文中所使用的,“计算机实现的方法”可以指由一个或多个处理器执行的任何方法、具有一个或多个处理器的计算机系统、诸如智能电话(其可以包括一个或多个处理器)的移动设备、平板计算机、膝上型计算机、机顶盒、游戏控制台等。图1展示了根据各实施例的物理不可克隆函数(puf)电路100。puf电路100可以包括在集成电路(诸如处理器)中,并且可以布置在与所述集成电路的其他功能块相同的管芯上。puf电路100可以包括多个puf单元102。puf单元102可以例如分别为在图2、图3和图4中示出的puf单元200、puf单元300和/或puf单元400,并且在以下进一步讨论。各个puf单元102可以生成加密密钥的一个或多个输出位。例如,在一些实施例中,puf电路100的各个puf单元102可以生成所述加密密钥的单个输出位。由puf单元102生成的所述一个或多个输出位的值可以取决于puf单元的一个或多个器件(例如,晶体管)的物理特性。例如,不同的puf单元102可以被偏置以便基于puf单元102的器件的在制造过程中发生的变化来生成输出位的特定值。从而,puf电路100可以生成与集成电路相关联的唯一加密密钥。图2展示了根据各实施例的puf单元200。puf单元200或puf单元200的某些方面可以包括在puf电路100的puf单元102中的一个或多个中。puf单元200可以包括延迟固化特征,所述延迟固化特征利用在puf单元200的老化期间晶体管的加速老化来进一步增强puf单元200的偏置以便评估为一种稳定状态以支持另一种稳定状态(并且由此通过连续迭代来生成具有一致值的puf位)。在各实施例中,puf单元200可以包括在位节点206与位拔(bitbar)(位#)节点208之间彼此交叉耦合的反转器202和反转器204。例如,反转器202的输入端子可以与位拔节点(bitbarnode)208耦合,并且反转器202的输出端子可以与位节点206耦合。反转器204的输入端子可以与位节点206耦合,并且反转器204的输出端子可以与位拔节点208耦合。在各实施例中,位节点206可以与触发器(flip-flop)207的数据输入端子(d)耦合(例如,经由缓冲器209)。触发器207可以进一步包括触发输入(>)、数据输出端子(q)、以及数据条输出端子触发器207可以存储当由在触发输入处接收的触发信号触发时在数据输入端子处接收的数据输入信号的值(例如,位节点206的逻辑值)。数据输出端子可以输出所存储的值,并且数据条输出端子可以输出所存储的值的逻辑反转。在各实施例中,puf单元200可以进一步包括:预充电晶体管210,所述预充电晶体管与位节点206和电源端子212耦合并且耦合在其间;以及预充电晶体管214,所述预充电晶体管与位拔节点208和电源端子216耦合并且耦合在其间。在一些实施例中,预充电晶体管210和214可以为p型金属-氧化物-半导体(pmos)晶体管,如图2中所示。电源端子212和216可以接收供电电压。例如,在一些实施例中,电源端子212和216可以耦合至彼此以便接收同一供电电压。在各实施例中,puf单元200可以进一步包括:脚端晶体管218,所述脚端晶体管与反转器202和反转器204耦合。脚端晶体管218可以耦合在反转器202和204与接地端子220之间。在一些实施例中,脚端晶体管218可以为n型金属-氧化物-半导体(nmos)晶体管,如图2中所示。脚端晶体管218可以与交叉耦合的反转器202和204中的nmos晶体管耦合。例如,在一些实施例中,反转器202和204可以为互补金属-氧化物-半导体(cmos)反转器,其中每个反转器202和204包括一个nmos晶体管和一个pmos晶体管。脚端晶体管218的源极可以与反转器202中的nmos晶体管的漏极端子以及与反转器204中的nmos晶体管的漏极端子耦合。在一些实施例中,puf单元200可以进一步包括耦合在位节点206与接地电势之间的一个或多个电容器(未示出)和/或耦合在位拔节点208与接地电势之间的一个或多个电容器(未示出)。所述电容器可以降低位节点206和/或位拔节点208上的高频噪声。在各实施例中,puf单元200可以在时钟端子222处接收时钟信号clk,并且可以在使能端子224处接收使能信号。在各实施例中,puf单元200可以进一步包括与非(nand)门226、228、230、232、234和/或236。各个nand门226、228、230、232、234和/或236可以包括如所示出那样耦合的一对输入端子以及一个输出端子。nand门226、228、230、232、234和/或236可以包括在puf单元200的控制电路系统中以便基于时钟信号和使能信号来控制puf单元200。例如,nand门226可以在nand门226的对应输入端子处接收使能信号和时钟信号。nand门228可以在nand门228的第一输入端子处接收使能信号(例如,使能条)的反转版本,并且nand门228的第二输入端子可以耦合至触发器207的数据条输出端子以便接收数据条输出信号nand门232可以在nand门232的第一输入端子处接收使能信号(例如,使能条)的反转版本,并且nand门232的第二输入端子可以耦合至触发器207的数据输出端子以便接收数据输出信号q。nand门230可以在nand门230的对应输入端子处接收nand门226和228的输出信号,并且nand门234可以在nand门234的对应输入端子处接收nand门226和232的输出信号。nand门236可以在nand门236的对应输入端子处接收使能信号以及时钟信号的反转版本。nand门236的的输出端子可以耦合至脚端晶体管218的栅极端子并且耦合至触发器207的触发输入。在各实施例中,puf单元200可以进一步包括:延迟链238,所述延迟链耦合在时钟端子222与预充电晶体管210之间的第一时钟路径上;以及延迟链240,所述延迟链耦合在时钟端子222与预充电晶体管214之间的第二时钟路径上。例如,延迟链238可以耦合在nand门230的输出端子与预充电晶体管210的栅极端子之间,并且延迟链240可以耦合在nand门234的输出端子与预充电晶体管214的栅极端子之间。延迟链238可以包括彼此串联耦合的一个或多个反转器242,并且延迟链240可以包括彼此串联耦合的一个或多个反转器244。例如,在一些实施例中,延迟链238可以包括偶数个反转器242(例如,2或4),和/或延迟链240可以包括偶数个反转器244。在各实施例中,延迟链238和240可以提供延迟固化以便增强puf单元200的偏置,如以下进一步讨论的。在各实施例中,使能信号可以用于在位生成模式与延迟固化模式之间变换puf单元200。例如,使能信号可以在puf单元200的位生成模式期间具有第一值(例如,逻辑1)以使能puf单元200的操作以便生成puf位,并且可以在puf单元200的延迟固化模式期间具有第二值(例如,逻辑0)以便提供对puf单元200的延迟固化。在各实施例中,在位生成模式下,时钟信号可以在位生成过程的第一部分(亦被称为位生成过程的预充电部分)期间具有第一值(例如,逻辑0)。当时钟信号具有逻辑0值时,预充电晶体管210和214可以响应于时钟信号而导通(例如,当预充电晶体管210和214经由对应的时钟路径接收时钟信号时)。从而,预充电晶体管210和214可以将位节点206和位拔节点208分别充电至逻辑1(例如,至电源端子212和216处的供电电压的电压电平)。脚端晶体管218可以响应于时钟信号具有逻辑0值而关断,从而使反转器202和204中的nmos晶体管的接地连接浮动并且由此允许位节点206和位拔节点208两者成为逻辑1。在各实施例中,时钟信号可以在puf位生成过程的第二部分期间成为第二逻辑值(例如,逻辑1)。预充电晶体管210和214可以在它们接收具有逻辑1值的时钟信号时关断。另外,脚端晶体管218可以响应于时钟信号具有逻辑1值而导通。从而,在交叉耦合的反转器202与反转器204之间可能存在连接,从而使位节点206稳定至逻辑1值或者逻辑0值,并且使位拔节点208稳定至位节点206的值的逻辑反转。例如,位节点206可以保持在逻辑1处并且位拔节点208可以成为逻辑0,或者位节点206可以成为逻辑0并且位拔节点208可以保持在逻辑1处。位节点206稳定的值可以与由puf单元200生成的puf位的值相对应。在各实施例中,puf位的值可以被写入触发器207中。在各实施例中,使能信号可以在puf单元200的延迟固化模式期间成为逻辑0以便提供对puf单元200的延迟固化。所述触发器可以将puf位的所存储的值传递至nand门232,并且可以将puf位的所存储的值的反转传递至nand门228。在延迟固化模式期间(例如,当使能信号成为逻辑0时),nand门232和228可以使得将相反的逻辑值被写回至puf单元200中。例如,如果位节点206在puf位生成过程期间稳定至逻辑0,则位节点206可以在延迟固化模式期间被驱动至逻辑1。在各实施例中,当puf单元200已经在puf位生成过程的第二部分期间稳定时,延迟链238的反转器242和延迟链240的反转器244可以接收具有与相应输入信号的值相反的逻辑值的输入信号。另外,晶体管(例如,反转器242和反转器244的晶体管)可以在它们导通时比在它们关断时更显著地降级,从而使导通更多的晶体管相对于关断更多的晶体管而减慢。从而,在延迟固化模式期间将相反逻辑值写入puf单元200中可以使评估为逻辑1的节点的时钟路径中的延迟链展示通过延迟链而传播的0至1变换的减慢,并且使评估为逻辑0的节点的时钟路径中的延迟链展示通过延迟链而传播的0至1变换的加速。例如,如果位节点206在puf位生成过程期间评估为逻辑0,则延迟链238中的0至1变换的传播在延迟固化过程期间可以相对于延迟链238中的1至0变换的传播而加速。另外,延迟链240中的0至1变换的传播在延迟固化过程期间可以相对于1至0变换的传播而减慢。延迟链240中的0至1变换的减慢可以使预充电晶体管214晚于预充电晶体管210而接收时钟信号的0至1变换。这增大了在puf位生成过程期间使位节点206稳定至逻辑0并且位拔节点208稳定至逻辑1的puf单元200的偏置。在各实施例中,可以在老化过程期间将puf单元200置于延迟固化模式下。所述老化过程可以用于在制造之后并且在投入正常使用之前中断包括puf单元200的集成电路。另外地或者可替代地,可以在正常使用集成电路期间(在生成加密代码的时间之间)将puf单元200放置在延迟固化模式下。从而,可以在老化之后并且在puf单元200的寿命内维持时钟路径中的差分延迟。图3展示了根据各实施例的puf单元300。puf单元300或puf单元300的某些方面可以包括在puf电路100的puf单元102中的一个或多个中。在各实施例中,puf单元300可以耦合至掩码生成电路301。掩码生成电路301可以对puf单元阵列300的、不足以被强烈地偏置以一致地生成具有逻辑1或逻辑0的puf位的puf单元300进行标识。掩码生成电路301可以将所标识的位标记为“暗位”以便生成暗位掩码。所述暗位可以在加密代码中被设置为预定值。例如,与暗位相对应的puf单元300可以在生成加密代码时被强制为所述预定值,或者puf单元300可以不在生成加密代码期间使用。在各实施例中,与puf单元200类似,puf单元300可以包括在位节点306与位拔(位#)节点308之间彼此交叉耦合的反转器302和反转器304。例如,反转器302的输入端子可以与位拔节点308耦合,并且反转器302的输出端子可以与位节点306耦合。反转器304的输入端子可以与位节点306耦合,并且反转器304的输出端子可以与位拔节点308耦合。在各实施例中,puf单元300可以进一步包括:预充电晶体管310,所述预充电晶体管与位节点306和电源端子312耦合并且耦合在其间;以及预充电晶体管314,所述预充电晶体管与位拔节点308和电源端子316耦合并且耦合在其间。电源端子312和316可以接收供电电压。例如,在一些实施例中,电源端子312和316可以耦合至彼此以便接收同一供电电压。在各实施例中,puf单元300可以进一步包括:脚端晶体管318,所述脚端晶体管与反转器302和反转器304耦合。脚端晶体管318可以耦合在反转器302和304与接地端子320之间。脚端晶体管318可以与交叉耦合的反转器302和304中的nmos晶体管耦合。例如,在一些实施例中,脚端晶体管318的源极可以与反转器302中的nmos晶体管的漏极端子耦合并且与反转器304中的nmos晶体管的漏极端子耦合。在一些实施例中,puf单元300可以进一步包括耦合在位节点306与接地电势之间的一个或多个电容器(未示出)和/或耦合在位拔节点308与接地电势之间的一个或多个电容器(未示出)。所述电容器可以降低位节点306和/或位拔节点308上的高频噪声。在各实施例中,puf单元300可以在时钟端子322处接收时钟信号clk。可以经由对应的时钟路径将所述时钟信号传递至预充电晶体管310和314的栅极端子。在各实施例中,puf单元300可以包括:第一可编程延迟单元324,所述第一可编程延迟单元耦合在预充电晶体管310与时钟端子322之间;以及第二可编程延迟单元326,所述可编程延迟单元耦合在预充电晶体管314与时钟端子322之间。第一可编程延迟单元324可以在第一控制端子328处接收第一控制信号,并且第二可编程延迟单元326可以在第二控制端子330处接收第二控制信号。可以例如由掩码生成电路301来提供所述第一和第二控制信号。在各实施例中,可编程延迟单元324和326可以延迟时钟信号并且将时钟信号(例如,分别为clk1和clk2)的延迟版本传递至对应的预充电晶体管310或314。由可编程延迟单元324和326提供的延迟量可以基于对应的控制信号。例如,在一些实施例中,所述第一和第二控制信号可以包括多个位。另外,可编程延迟单元324和326可以包括多个可编程延迟元件(例如,反转器或缓冲器)。可编程延迟元件可以基于对应控制信号的值而选择性地包括或不包括在时钟路径中。例如,在一些实施例中,控制信号可以使用温度计码方案来控制对应的可编程延迟单元324或326的延迟元件。在一个非限制性示例中,可编程延迟单元324和326各自可以包括24个可编程延迟元件,并且所述第一和第二控制信号各自可以包括4个位。24个可编程延迟元件可以作为温度计码被控制以便注入具有1皮秒粒度的大约0皮秒至大约20皮秒的延迟。在各实施例中,掩码生成电路301可以调节由第一可编程延迟单元和/或第二可编程延迟单元提供的延迟以便确定puf单元300的偏置强度。例如,掩码生成电路301可以控制可编程延迟单元324和326提供所述第一时钟信号clk1与所述第二时钟信号clk2之间的不同相对延迟量,并且可以确定针对每个相对延迟量的由puf单元300生成的输出位的值。在一些实施例中,掩码生成电路301可以扫过第一控制代码的值,同时保持第二控制代码的值恒定,并且可以扫过第二控制代码的值,同时保持第一控制代码的值恒定。在一些实施例中,掩码生成电路301可以在可编程延迟单元324和326不引入任何差分延迟时(例如,当可编程延迟单元324和326两者被设置用于提供相同延迟(诸如0延迟)时)确定由puf单元300生成的puf位的值。掩码生成电路301还可以确定使puf单元300生成具有与生成的不具有差分延迟的puf位不同的值的puf位的最低差分延迟量。此量可以对应于puf单元300的偏置强度。例如,puf单元300可以生成不具有差分延迟的puf位0,但是可以在第一时钟信号clkl被延迟3皮秒或者比第二时钟信号clk2延迟更多时生成puf位1。在各实施例中,掩码生成电路301可以对具有小于阈值的偏置强度(例如,在任一方向上)的puf单元300进行标识。所述阈值可以是任何合适的值。例如,在一些实施例中,所述阈值可以为2皮秒或3皮秒。掩码生成电路301可以将所标识的puf单元300标记为暗位,由此生成暗位掩码。在一些实施例中,暗位可以在加密代码中被设置为预定值。例如,与暗位相对应的puf单元300可以在生成加密代码时被强制为所述预定值,或者puf单元300可以不在生成加密代码期间使用。以0.9伏特、50℃对puf单元300执行模拟,tttt发现puf单元的17%具有小于2皮秒的偏置,puf单元的33%具有2-6皮秒的偏置,并且puf单元的50%具有7皮秒的偏置或更多。具有2皮秒或更少偏置的puf单元被弱偏置并且在存在工艺、电压和/或温度(pvt)变化时最有可能变得不稳定(例如,生成puf位的不一致的值)。从而,生成在此所述的暗位掩码可以通过puf单元阵列300显著地增加稳定性(例如,加密密钥的一致生成)。在各实施例中,掩码生成电路301可以在触发生成加密代码时(例如,在包括puf单元300的集成电路的运行时间处)生成暗位掩码。例如,掩码生成电路301可以在每次生成加密代码时生成暗位掩码。从而,掩码生成电路301可以生成调节为puf单元300的变化的暗位掩码。图4展示了根据各实施例的另一puf单元400。puf单元400或puf单元400的某些方面可以包括在puf电路100的puf单元102中的一个或多个中。在各实施例中,如以下进一步讨论的,时域多数表决可以用于确定由puf单元400生成的puf位的值和/或用于判定是否将puf单元400标记为暗位。在各实施例中,puf单元400可以包括在位节点406与位拔(位#)节点408之间彼此交叉耦合的反转器402和反转器404。例如,反转器402的输入端子可以与位拔节点408耦合,并且反转器402的输出端子可以与位节点406耦合。反转器404的输入端子可以与位节点406耦合,并且反转器404的输出端子可以与位拔节点408耦合。在各实施例中,puf单元400可以进一步包括:预充电晶体管410,所述预充电晶体管与位节点406和电源端子412耦合并且耦合在其间;以及预充电晶体管414,所述预充电晶体管与位拔节点408和电源端子416耦合并且耦合在其间。电源端子412和416可以接收供电电压。例如,在一些实施例中,电源端子412和416可以耦合至彼此以便接收同一供电电压。在各实施例中,puf单元400可以进一步包括:脚端晶体管418,所述脚端晶体管与反转器402和反转器404耦合。脚端晶体管418可以耦合在反转器402和404与接地端子420之间。脚端晶体管418可以与交叉耦合的反转器402和404中的nmos晶体管耦合。例如,在一些实施例中,脚端晶体管418的源极可以与反转器402中的nmos晶体管的漏极端子耦合并且与反转器404中的nmos晶体管的漏极端子耦合。在一些实施例中,puf单元400可以进一步包括耦合在位节点406与接地电势之间的一个或多个电容器(未示出)和/或耦合在位拔节点408与接地电势之间的一个或多个电容器(未示出)。所述电容器可以降低位节点406和/或位拔节点408上的高频噪声。在各实施例中,puf单元400可以在时钟端子422处接收时钟信号tmvclk。可以经由对应的时钟路径(例如,分别经由反转器411和415)将时钟信号传递至预充电晶体管410和414的栅极端子。在一些实施例中,可以经由对应的反转器411和415将时钟信号传递至预充电晶体管410和414。另外,脚端晶体管418可以接收时钟信号(例如,经由反转器419)。在各实施例中,在位生成过程的第一部分期间,时钟信号可以成为第一值(例如,如所示出的puf单元400中的逻辑1)以便导通预充电晶体管410和414并且关断脚端晶体管418。从而,位节点406或者位拔节点408可以均被充电至逻辑1。在位生成过程的第二部分期间,时钟信号可以成为第二值(例如,如所示出的puf单元400中的逻辑0)以便关断预充电晶体管410和414并且导通脚端晶体管418。在位生成过程的第二部分期间,反转器402和404可以互相竞争,由此使位节点406或者位拔节点408成为逻辑0,同时另一节点保持在逻辑1处。位生成过程的第二部分之后的位节点406的值与通过位生成过程生成的输出位的值相对应。在各实施例中,为了生成一个puf位,puf单元400可以执行多次位生成过程。例如,时钟信号可以包括一系列脉冲以便触发位生成过程的多次迭代。在各实施例中,计数器450可以耦合至位节点406以便通过位生成过程的迭代次数对puf单元400生成第一逻辑值(例如,逻辑1)的输出位的次数进行计数。在一些实施例中,每个puf单元400可以耦合至单独的计数器450。在其他实施例中,计数器450可以耦合至多个puf单元400。在一些实施例中,时域多数表决(tmv)电路401可以耦合至计数器450。在一些实施例中,tmv电路401可以基于计数器值来确定与puf单元400相关联的puf位的值。例如,在一些实施例中,如果计数器值高于阈值,则tmv电路401可以确定puf位为第一逻辑值(例如,逻辑1),并且如果计数器值低于所述阈值则可以确定puf位为第二逻辑值(例如,逻辑0)。在一些实施例中,tmv电路401还可以向puf单元400提供时钟信号(例如,tmvclk)以便触发位生成过程的实例。在一个非限制性示例中,时钟信号可以包括15个时钟脉冲,所述时钟脉冲使puf单元400执行位生成过程的15个实例。计数器450可以对puf单元400生成具有逻辑1值的输出位的实例的数量进行计数。如果实例的数量为8或更多,则与puf单元400相关联的puf位的值可以为逻辑1,并且如果实例的数量为7或更少,则与puf单元400相关联的puf位的值可以为逻辑0。例如,计数器450可以为4位计数器,并且计数器450的最高有效位的值可以用作与puf单元400相关联的puf位的值。在其他实施例中,puf单元400可以执行位生成过程的任何合适数量的实例以便生成加密代码的puf位。例如,在一些实施例中,可以执行位生成过程的3个、5个、7个、9个、或31个实例。另外地或可替代地,tmv电路401可以判定是否基于计数器值将puf单元400标记为暗位。例如,如果计数器值高于第一阈值,则tmv电路401可以确定与puf单元400相关联的puf位的值为第一值(例如,逻辑1),并且如果计数器值低于小于所述第一阈值的第二阈值则可以确定与puf单元400相关联的puf位的值为第二值(例如,逻辑0)。如果计数器值处于所述第一阈值与所述第二阈值之间,则tmv电路401可以确定puf单元400是暗位。在各实施例中,tmv电路401可以生成暗位掩码以便指示puf单元阵列400的哪些puf单元400是暗位。在一些实施例中,暗位可以在加密代码中被设置为预定值。例如,与暗位相对应的puf单元400可以在生成加密代码时被强制为所述预定值,或者puf单元400可以不在生成加密代码期间使用。在一些实施例中,puf单元可以包括puf单元200、300和/或400的一个或多个方面的组合。例如,puf单元200的延迟链238和240可以是与puf单元300的可编程延迟单元324和326相类似的可编程延迟链。另外地或可替代地,puf单元200和/或300可以使用时域多数表决,如关于puf单元400所描述的。图5展示了根据各实施例的电路布局500(下文中称为“布局500”)的俯视示意图。布局500可以用于包括在此描述的puf单元(诸如puf单元102、200、300和/或400)的集成电路管芯。在各实施例中,布局500可以包括形成puf单元的各部分的各个层。所述层可以形成在衬底上。如在此所述的,被描述为高于第二层的第一层比所述第二层更远离所述衬底。例如,所述第一层可以形成在所述第二层的顶部,其中有时一个或多个层布置在所述第一层与所述第二层之间。在各实施例中,布局500可以包括第一时钟路径502和第二时钟路径504,所述第一时钟路径和第二时钟路径包括金属层506中的金属。金属层506耦合至时钟端子508以用于接收时钟信号(例如,从时钟线510)。在一些实施例中,所述第一和第二时钟路径可以在一个或多个其他金属层(诸如金属层512)中包括金属,所述一个或多个其他金属层低于金属层506(例如,金属层506可以布置在布局500的高于在其中布置金属层502的平面的平面中)。在各实施例中,布局500可以进一步包括多晶层514,所述多晶层形成puf单元的一个或多个晶体管(例如,预充电晶体管和/或交叉耦合的反转器中的晶体管)的栅极。多晶层514可以布置在金属层506下方。时钟路径502和504可以耦合至多晶层514的对应部分以便将时钟信号传递至对应的预充电晶体管。在各实施例中,布局500可以进一步包括金属层516,所述金属层形成位节点518和/或位拔节点520。金属层516可以低于金属层506。在各实施例中,第一时钟路径502和第二时钟路径504可以彼此对称(例如,相对于通过时钟端子510的竖直参考平面)。例如,时钟端子510可以在金属层506在第一时钟路径502上连接至金属层512处的节点522与金属层506在第二时钟路径504上连接至金属层512处的节点524之间的中点处连接至金属层506。第一时钟路径502和第二时钟路径506可以具有相同的路径长度以便将时钟信号从时钟端子510运送至多晶层514的对应部分。从而,对称的时钟路径502和504可以不引入由于不同路径长度而引起的时钟信号的任何差分延迟,并且通过puf单元的时钟信号的传播时间的任何差异都可能由于晶体管的差异而引起,如在此所述。而且,由于形成位节点518和/或位拔节点520的金属层516低于形成时钟路径502和504的金属层506,因此金属层506将通过被执行以获得对位节点518和/或位拔节点520的访问的任何探测攻击而被移除和/或破坏,从而使puf单元不起作用。而且,如果攻击者应用探测时钟来操作puf单元,则所述探测时钟将不具有到位节点518和位拔节点520的对称时钟路径。例如,探测时钟将具有不同的路径长度或者将引入差分电阻、电容或时钟路径之间的其他效应。从而,puf单元将不会在探测攻击时生成相同的加密代码,因此使得攻击不成功。因此,布局500可以保护puf单元免遭探测攻击。图6展示了根据各实施例的可以采用在此所述的装置和/或方法(例如,puf电路100、puf单元200、puf单元300、puf单元400、布局500)的示例计算设备600。如所示出的,计算设备600可以包括多个部件,如一个或多个处理器604(示出了一个)以及至少一个通信芯片606。在各实施例中,所述一个或多个处理器604各自可以包括一个或多个处理器核。在各实施例中,所述至少一个通信芯片606可以物理地以及电学地耦合至所述一个或多个处理器604。在进一步的实现方式中,通信芯片606可以是所述一个或多个处理器604的一部分。在各实施例中,计算设备600可以包括印刷电路板(pcb)602。对于这些实施例,所述一个或多个处理器604和通信芯片606可以布置在其上。在备选实施例中,可在不采用pcb602的情况下耦合各种部件。根据其应用,计算设备600可以包括可以或可以不物理地以及电学地耦合至pcb602的其他部件。这些其他部件包括但不限于:存储器控制器605、易失性存储器(例如,动态随机存取存储器(dram)608)、非易失性存储器(如只读存储器(rom)610)、闪速存储器612、存储设备611(例如,硬盘驱动器(hdd))、i/o控制器614、数字信号处理器(未示出)、加密处理器(未示出)、图形处理器616、一个或多个天线618、显示器(未示出)、触摸屏显示器620、触摸屏控制器622、电池624、音频编解码器(未示出)、视频编解码器(未示出)、全球定位系统(gps)设备628、罗盘630、加速度计(未示出)、陀螺仪(未示出)、扬声器632、相机634以及大容量存储设备(如硬盘驱动器、固态驱动器、压缩盘(cd)、数字通用盘(dvd))(未示出)等。在各实施例中,处理器604可以与其他部件集成在相同的管芯上以形成片上系统(soc)。在一些实施例中,所述一个或多个处理器604,闪速存储器612和/或存储设备611可以包括存储编程指令的相关联固件(未示出),所述编程指令被配置用于使得计算设备600响应于由一个或多个处理器604执行所述编程指令而实践本文中所描述的方法的所有的或选定的方面。在各实施例中,这些方面可以另外地或替代地使用与所述一个或多个处理器604、闪速存储器612或存储设备611分离的硬件来实现。在各实施例中,计算设备600的一个或多个部件可以包括如在此所述的puf电路100、puf单元200、puf单元300、puf单元400和/或布局500。例如,puf电路100、puf单元200、puf单元300、puf单元400和/或布局500可以包括在处理器604、通信芯片606、i/o控制器614、存储器控制器605、和/或计算设备600的另一部件中。puf电路100、puf单元200、puf单元300、puf单元400和/或布局500可以用于生成如在此所述的加密代码。所述加密代码可以用于利用另一设备来对计算设备600进行认证和/或利用计算设备600的另一部件来对计算设备600的部件进行认证。通信芯片606可以使能用于向和从计算设备600传送数据的有线和/或无线通信。术语“无线”及其派生词可以用于描述可以通过使用通过非固体介质的经调制的电磁辐射来传达数据的电路、设备、系统、方法、技术、通信信道等。所述术语并不意味着相关联的设备不包含任何导线,尽管在一些实施例中它们可能不包括。通信芯片606可以实现多种无线标准或协议中的任何标准或协议,包括但不限于ieee702.20、长期演进(lte)、lte高级(lte-a)、通用分组无线业务(gprs)、演进数据优化(ev-do)、演进高速分组接入(hspa+)、演进高速下行链路分组接入(hsdpa+)、演进高速上行链路分组接入(hsupa+)、全球移动通信系统(gsm)、增强型数据速率gsm演进(edge)、码分多址(cdma)、时分多址(tdma)、数字增强无绳电信(dect)、全球微波接入互操作性(wimax)、蓝牙、其衍生物、以及被称为3g、4g、5g和更高的任何其他无线协议。计算设备600可以包括多个通信芯片606。例如,第一通信芯片606可以专用于诸如wi-fi和蓝牙等较短距离无线通信,并且第二通信芯片606可以专用于较长距离无线通信,如gps、edge、gprs、cdma、wimax、lte、ev-do、以及其他。在各种实现方式中,计算设备600可以是膝上型计算机、上网本、笔记本、超级本、智能电话、计算平板机、个人数字助理(pda)、超移动pc、移动电话、台式计算机、服务器、打印机、扫描仪、监视器、机顶盒、娱乐控制单元(例如,游戏控制台或汽车娱乐单元)、数码相机、家电、便携式音乐播放器或数字视频记录器。在进一步实现方式中,计算设备600可以是对数据进行处理的任何其他电子设备。以下提供了一些非限制性示例。示例1是一种物理不可克隆函数(puf)电路,所述puf电路包括:位节点和位拔节点;第一反转器和第二反转器,所述第一反转器和所述第二反转器交叉耦合在所述位节点与所述位拔节点之间;第一预充电晶体管,所述第一预充电晶体管耦合在所述位节点与电源轨之间;第二预充电晶体管,所述第二预充电晶体管耦合在所述位拔节点与所述电源轨之间,所述第一预充电晶体管和所述第二预充电晶体管用于经由对应的第一时钟路径和第二时钟路径来接收时钟信号;第一延迟链,所述第一延迟链布置在所述第一时钟路径上;第二延迟链,所述第二延迟链布置在所述第二时钟路径上;以及控制电路系统。所述控制电路系统用于:在位生成模式期间将所述时钟信号传递至所述第一预充电晶体管和所述第二预充电晶体管以便以第一值在所述位节点处生成puf位;以及在延迟固化模式期间将第二值写入所述位节点,所述第二值为所述第一值的逻辑反转以便提供所述第一时钟路径和所述第二时钟路径中的差分延迟。示例2为示例1所述的puf电路,进一步包括:触发器,所述触发器耦合至所述位节点以便存储所述puf位的所述第一值,其中,所述触发器的输出端子耦合至所述控制电路系统。示例3为示例2所述的puf电路,进一步包括:时钟端子,所述时钟端子用于接收所述时钟信号;以及使能端子,所述使能端子用于接收使能信号以便在所述位生成模式与所述延迟固化模式之间切换所述puf电路。示例4为示例3所述的puf电路,其中,所述控制电路系统包括:第一与非(nand)门,所述第一nand门具有:耦合至所述时钟端子以便接收所述时钟信号的第一输入端子;耦合至所述使能端子以便接收所述使能信号的第二输入端子;以及输出端子;第二nand门,所述第二nand门具有:被耦合以用于接收所述使能信号的反转的第一输入端子;耦合至所述触发器的输出端子以便接收输出信号的第二输入端子;以及输出端子;以及第三nand门,所述第三nand门具有:耦合至所述第一nand门的输出端子的第一输入端子;耦合至所述第二nand门的输出端子的第二输入端子;以及耦合至所述第一延迟链的输出端子。示例5为示例4所述的puf电路,进一步包括:第四nand门,所述第四nand门具有:被耦合以用于接收所述使能信号的反转的第一输入端子;耦合至所述触发器的输出条端子以便接收输出条信号的第二输入端子;以及输出端子;以及第五nand门,所述第五nand门具有:耦合至所述第一nand门的输出端子的第一输入端子;耦合至所述第四nand门的输出端子的第二输入端子;以及耦合至所述第二延迟链的输出端子。示例6为示例1所述的puf电路,进一步包括:脚端晶体管,所述脚端晶体管耦合在所述第一反转器的第一n型金属-氧化物-半导体(nmos)晶体管与接地端子之间并且耦合在所述第二反转器的第二nmos晶体管与所述接地端子之间,所述脚端晶体管用于在位生成过程的预充电部分期间关断。示例7为示例1所述的puf电路,其中,为了在所述延迟固化模式期间将所述第二值写入所述位节点,所述控制电路系统用于经由所述第一延迟链将对应于所述第二值的电压传递至所述第一预充电晶体管并且用于经由所述第二延迟链将对应于所述第一值的电压传递至所述第二预充电晶体管。示例8为示例1至7中任一示例所述的puf电路,其中,所述第一延迟链和所述第二延迟链为可编程延迟链,并且其中,所述puf电路进一步包括:掩码生成电路系统,所述掩码生成电路系统耦合至所述第一延迟链和所述第二延迟链以用于:控制所述第一延迟链和所述第二延迟链以提供所述第一延迟链与所述第二延迟链之间的差分延迟的一系列不同的值,其中,所述puf电路用于针对所述差分延迟的每个值执行位生成过程以便生成对应的输出位;基于所述输出位来确定所述puf电路的偏置强度;以及基于所确定的偏置强度来生成暗位掩码。示例9为示例8所述的puf电路,其中,所述掩码生成电路系统用于:如果所述puf电路的所确定的偏置强度低于阈值则将所述puf电路标记为暗位,并且其中,所述puf电路被强制为预定值或者不用于基于被标记为暗位而生成加密代码。示例10为示例1至7中任一示例所述的puf电路,其中,在所述puf电路的位生成过程期间,所述第一预充电晶体管和所述第二预充电晶体管响应于所述时钟信号而被导通并且然后被关断以便生成输出位,其中,所述puf电路用于执行所述位生成过程的多个实例以便生成对应的输出位,并且其中,所述puf电路进一步包括:计数器,所述计数器耦合至所述位节点以用于对所述位生成过程的实例的数量进行计数,所述puf电路为所述位生成过程的实例生成具有第一逻辑值的输出位,其中,与所述puf电路相关联的所述puf位的值基于被计数的数量。示例11为示例1至7中任一示例所述的puf电路,其中,所述第一时钟路径和所述第二时钟路径包括第一金属层,所述第一金属层耦合至时钟端子以便接收所述时钟信号,并且其中,所述位节点和所述位拔节点布置在低于所述第一金属层的第二金属层中。示例12为示例11所述的puf电路,其中,所述第一时钟路径和所述第二时钟路径是对称的。示例13是一种物理不可克隆函数(puf)电路,所述puf电路包括:位节点和位拔节点;第一反转器和第二反转器,所述第一反转器和所述第二反转器交叉耦合在所述位节点与所述位拔节点之间;第一预充电晶体管,所述第一预充电晶体管耦合在所述位节点与电源轨之间;第二预充电晶体管,所述第二预充电晶体管耦合在所述位拔节点与所述电源轨之间,所述第一预充电晶体管和所述第二预充电晶体管用于经由对应的第一时钟路径和第二时钟路径来接收时钟信号;可编程延迟链,所述可编程延迟链布置在所述第一时钟路径上;以及掩码生成电路系统,所述掩码生成电路系统耦合至所述可编程延迟链。所述掩码生成电路系统用于:控制所述可编程延迟链以提供所述第一时钟路径上的一系列不同的延迟值,其中,所述puf电路用于生成与所述一系列的延迟值中的各个延迟值相关联的对应输出位;以及基于所述输出位来确定所述puf电路的偏置强度。示例14为示例13所述的puf电路,其中,所述可编程延迟链为第一可编程延迟链,其中,所述puf电路进一步包括布置在所述第二时钟路径上的第二可编程延迟链,并且其中,所述掩码生成电路系统进一步用于控制所述第二可编程延迟链以提供所述第二时钟路径上的一系列不同的延迟值,其中,所述puf电路用于生成与所述第二时钟路径上的所述一系列的延迟值中的各个延迟值相关联的对应输出位。示例15为示例13所述的puf电路,其中,所述掩码生成电路系统用于:如果所述puf电路的所确定的偏置强度低于阈值则将所述puf电路标记为暗位,并且其中,所述puf电路被强制为预定值或者不用于基于被标记为暗位而生成加密代码。示例16为示例13所述的puf电路,其中,所述位节点、所述位拔节点、所述第一反转器和所述第二反转器、所述第一预充电晶体管和所述第二预充电晶体管以及所述可编程延迟链被包括在第一puf单元中,并且其中,所述掩码生成电路系统用于确定puf单元阵列的所述偏置强度以便生成暗位掩码。示例17为示例13至16中任一示例所述的puf电路,其中,所述第一时钟路径和所述第二时钟路径包括第一金属层,所述第一金属层耦合至时钟端子以便接收所述时钟信号,其中,所述第一时钟路径和所述第二时钟路径是对称的,并且其中,所述位节点和所述位拔节点布置在低于所述第一金属层的第二金属层中。示例18为一种计算装置,所述计算装置包括:时钟端子,所述时钟端子用于接收时钟信号;物理不可克隆函数(puf)单元,所述puf单元耦合至所述时钟端子以便接收所述时钟信号,所述puf单元用于响应于所述时钟信号而执行位生成过程的多个实例以便在所述puf单元的位节点处生成对应的输出位;计数器,所述计数器耦合至所述位节点以用于对所述输出位具有第一逻辑值的实例的数量进行计数;以及处理电路系统,所述处理电路系统耦合至所述位节点。所述处理电路系统用于:如果被计数的数量高于所述第一阈值,则确定与所述puf单元相关联的puf位的值为所述第一逻辑值;如果被计数的数量低于小于所述第一阈值的第二阈值,则确定所述puf位的所述值为第二逻辑值;以及如果被计数的数量在所述第一阈值与所述第二阈值之间,则将所述puf位标记为暗位。示例19为示例18所述的装置,其中,所述puf单元进一步包括:位拔节点:第一反转器和第二反转器,所述第一反转器和所述第二反转器交叉耦合在所述位节点与所述位拔节点之间;第一预充电晶体管,所述第一预充电晶体管耦合至所述位节点并且用于响应于所述时钟信号而为所述位节点充电;第二预充电晶体管,所述第二预充电晶体管耦合至所述位拔节点以用于响应于所述时钟信号而为所述位拔节点充电。示例20为示例19所述的装置,其中,所述puf单元进一步包括:第一延迟链,所述第一延迟链布置在所述时钟端子与所述第一预充电晶体管之间的第一时钟路径上;第二延迟链,所述第二延迟链布置在所述时钟端子与所述第二预充电晶体管之间的第二时钟路径上;以及控制电路系统,所述控制电路系统用于:如果所述处理电路系统确定所述puf位的所述值为所述第一逻辑值,则在所述puf单元的延迟固化模式期间将所述第二逻辑值写入所述位节点以便提供所述第一时钟路径与所述第二时钟路径之间的差分延迟;以及如果所述处理电路系统确定所述puf位的所述值为所述第二逻辑值,则在所述puf单元的所述延迟固化模式期间将所述第一逻辑值写入所述位节点以便提供所述第一时钟路径与所述第二时钟路径之间的差分延迟。示例21为示例20所述的装置,其中,所述puf单元进一步包括:使能端子,所述使能端子用于接收使能信号以便在位生成模式与所述延迟固化模式之间切换所述puf单元;第一与非(nand)门,所述第一nand门具有:耦合至所述时钟端子以便接收所述时钟信号的第一输入端子;耦合至所述使能端子以便接收所述使能信号的第二输入端子;以及输出端子;第二nand门,所述第二nand门具有:被耦合以用于接收所述使能信号的反转的第一输入端子;耦合至所述触发器的输出端子以便接收输出信号的第二输入端子;以及输出端子;以及第三nand门,所述第三nand门具有:耦合至所述第一nand门的输出端子的第一输入端子;耦合至所述第二nand门的输出端子的第二输入端子;以及耦合至所述第一延迟链的输出端子。示例22为示例21所述的装置,其中,所述puf单元进一步包括:第四nand门,所述第四nand门具有:被耦合以用于接收所述使能信号的反转的第一输入端子;耦合至所述触发器的输出条端子以便接收输出条信号的第二输入端子;以及输出端子;以及第五nand门,所述第五nand门具有:耦合至所述第一nand门的输出端子的第一输入端子;耦合至所述第四nand门的输出端子的第二输入端子;以及耦合至所述第二延迟链的输出端子。示例23为示例19至22中任一示例所述的装置,其中,所述第一预充电晶体管经由第一时钟路径耦合至所述时钟端子,其中,所述第二预充电晶体管经由第二时钟路径耦合至所述时钟端子,其中,所述第一时钟路径和所述第二时钟路径是对称的并且包括第一金属层,并且其中,所述位节点和所述位拔节点布置在低于所述第一金属层的第二金属层中。示例24为示例18至22中任一示例所述的装置,其中,所述puf单元为puf单元阵列的第一puf单元,并且其中,所述处理电路系统用于确定与所述puf单元阵列相关联的puf位的所述值以便生成加密代码。示例25为示例24所述的装置,其中,所述时钟端子、所述puf单元阵列、所述计数器以及所述处理电路系统被包括在集成电路中,并且其中,所述装置进一步包括耦合至所述集成电路的显示器和存储器。虽然出于描述的目的已经在本文中展示和描述了某些实施例,但是本申请旨在覆盖本文中所讨论的实施例的任何修改或变化。因此,显然意图是,本文中所描述的实施例仅由权利要求书来限定。当公开陈述“一个(a)”或“第一(afirst)”元件或其等效物时,这样的公开包括一个或多个这样的元件,既不要求也不排除两个或更多这样的元件。进一步地,用于所标识的元件的顺序指示符(例如,第一、第二或第三)用于在这些元件之间进行区分,并且不指示或暗示所要求或限定数量的这样的元件,也不指示这样的元件的特定位置或顺序,除非另外特别声明。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1