具有机器学习攻击抵抗的非线性物理不可克隆函数(PUF)电路的制作方法

文档序号:17441132发布日期:2019-04-17 04:46阅读:254来源:国知局
具有机器学习攻击抵抗的非线性物理不可克隆函数(PUF)电路的制作方法

本申请要求2016年9月27日提交的题为“具有机器学习攻击抵抗的非线性物理不可克隆函数(puf)电路(non-linearphysicallyunclonablefunction(puf)circuitwithmachine-learningattackresistance)”的美国申请15/277,856的优先权。

本发明的实施例总体上涉及电子电路技术领域,并且更具体地涉及用于安全器件认证的物理不可克隆函数(puf)电路。



背景技术:

本文中所提供的背景描述用于总体上呈现本公开的上下文的目的。在此背景技术部分所描述的程度上的当前命名的发明人的工作以及在递交时可不以其他方式作为现有技术的描述的各方面既不明确地又不隐含地被承认为是对于本公开的现有技术。除非在本文中另外指出,否则在此部分中描述的方法对于本公开中的权利要求不是现有技术,并且也不会因为被包含在此部分中而被承认是现有技术。

许多电子电路(诸如,计算机芯片)使用加密密钥以便与另一器件进行认证。加密密钥有时由制造商来编程,并且存储在电子电路管芯上的熔丝中。然而,熔丝易于受到视觉和电子探测攻击。而且,由于熔丝由制造商来编程,因此它们对于测试台上的内部攻击是脆弱的。

一些电路使用物理不可克隆函数(puf)电路来生成用于器件认证的认证密钥。puf电路利用puf电路的器件(例如,晶体管)的物理变化来生成认证密钥。然而,当前的数字puf电路在质询-响应对之间具有线性关系,由此使这些质询-响应对易受机器学习攻击的影响。

附图简述

通过下列结合附图的详细描述,将容易理解实施例。为了便于该描述,类似的附图标记指定类似的结构元件。通过示例方式而非通过限制的方式在附图的各图中示出各实施例。

图1展示了根据各实施例的物理不可克隆函数(puf)电路。

图2展示了根据各实施例的puf单元。

图3展示了根据各实施例的另一个puf单元。

图4展示了根据各实施例的用于基于质询位串生成puf单元的质询信号的电路。

图5展示了根据各实施例的另一个puf单元。

图6展示了根据各实施例的puf单元的暗位掩码电路。

图7展示了根据各实施例的用于向puf单元提供逐质询的软暗位掩码的掩码电路。

图8展示了根据各实施例的用于向puf单元提供逐支路的软暗位掩码的掩码电路。

图9展示了根据各实施例的用于向puf单元提供逐单元的软暗位掩码的掩码电路。

图10展示了根据各实施例被配置用于采用本文所述的装置和方法的示例系统。

具体实施方式

实施例包括用于物理不可克隆函数(puf)电路的装置、方法和系统。puf电路可以包括puf单元阵列,用于响应于质询位串来生成认证代码的相应响应位。puf单元可以包括交叉耦合的反相器对,各个反相器包括独立可选择的下拉支路或上拉支路。基于质询位串,可以选择性地激活每个反相器的上拉支路或下拉支路中的一个支路,并且被激活的上拉支路或下拉支路可以用于生成响应位。

预充电晶体管可以耦合至输出节点和输出拔节点,以在puf单元的预充电阶段期间将输出节点和输出拔节点预充电至同一电压电平。可以由相应时钟信号来断开预充电晶体管,以使puf单元转变至求值阶段,在该求值阶段中puf单元生成响应位。在一些实施例中,puf单元可以进一步包括第一可配置时钟延迟电路和第二可配置时钟延迟电路,用于将相应的时钟信号传递至puf单元的预充电晶体管。时钟延迟电路可以包括多个独立可选择的延迟单元,这些独立可选择的延迟单元可以在时钟延迟路径上被独立地激活以生成相应时钟信号。可以基于质询位串来激活每个时钟延迟电路的延迟单元中的一个延迟单元。

由puf单元在输出节点处生成的响应位的值可取决于时钟延迟电路的激活的反相器且取决于交叉耦合的反相器的激活的下拉支路或上拉支路。此外,由不同puf单元对于给定质询的响应位的值可以基于时钟延迟电路以及下拉支路或上拉支路中的晶体管中的随机过程变化而变化。相应地,puf电路可以生成对于对应的质询集合的响应的集合,该对应的质询集合对于puf电路是唯一的并且可以用于认证puf电路和/或相关联的器件。此外,在puf单元和/或puf电路的质询-响应对之间可能存在非线性关系。即,对于一个质询-响应对的了解不可用于预测另一个质询-响应对。相应地,puf电路可以抵抗机器学习攻击。

在一些实施例中,暗位掩码电路可以生成用于puf电路的软暗位掩码。可以在puf电路的上电时生成软暗位掩码。软暗位掩码可以是逐质询、逐支路或逐单元的。

在以下具体实施方式中,参考形成其一部分并且通过可实践的说明实施例示出的附图,其中,贯穿附图相同的标号指示相同的部件。应理解,可利用其他实施例并作出结构或逻辑的改变而不背离本公开的范围。因此,以下具体实施方式不应以限制的意义来理解,并且实施例的范围由所附权利要求及其等效方案来限定。

可以按在理解要求保护的主题中最有帮助的方式轮流将各操作描述为多个分立动作或操作。然而,不应将描述的顺序解释为暗示这些操作必然依赖顺序。具体而言,可以不按照呈现的顺序执行这些操作。能以不同于所描述的实施例的顺序执行所描述的操作。在附加的实施例中,可以执行各种附加操作和/或可以省略所描述的操作。

为了本公开的目的,短语“a和/或b”和“a或b”的意思是(a)、(b)或(a和b)。为了本公开的目的,短语“a、b和/或c”意思是(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或(a、b和c)。

说明书可使用短语“在实施例中”或“在多个实施例中”,其每一个可指代相同或不同实施例中的一个或多个。此外,相对于本公开的实施例所使用的术语“包含”、“包括”、“具有”等是同义的。

如在本文中所使用,术语“电路系统”可以指代以下各项、是以下各项的一部分或包括以下各项:专用集成电路(asic)、电子电路、处理器(共享的、专用的或组)、组合逻辑电路和/或提供所描述的功能的其他合适的硬件组件。如在本文中所使用,“计算机实现的方法”可以指由一个或多个处理器执行的任何方法、具有一个或多个处理器的计算机系统、诸如智能电话(其可以包括一个或多个处理器)的移动器件、平板计算机、膝上型计算机、机顶盒、游戏控制台等。

图1展示了根据各实施例的物理不可克隆函数(puf)电路100。在一些实施例中,puf电路100可以被包括在集成电路(诸如,处理器)中,并且可以设置在与集成电路的其他功能块相同的管芯上。puf电路100可以包括多个puf单元102。puf单元102可以包括例如分别为在图2、图3和图5中示出的puf单元200、puf单元300和/或puf单元500,并且在下文中进一步讨论。

各个puf单元102可以生成认证密钥的一个或多个输出位。认证密钥可以用于认证包括puf电路100的器件(例如,无线通信器件)例如,认证密钥可以用于保护器件与另一个器件之间的通信和/或器件与云端之间的通信。替代性地或另外地,puf电路100可以用于相对于器件的其他组件来认证包括puf电路100的集成电路。

在一些实施例中,puf电路100可以用在质询-响应认证方案中。例如,puf单元102可以(例如,从正试图对与puf电路100相关联的集成电路进行认证的另一个器件)接收包括一个或多个位的质询位串,并且可以响应于质询生成一个或多个响应位。如下文进一步所讨论,响应位的逻辑值可以取决于puf单元102的一个或多个器件(例如,晶体管)的物理性质。认证密钥可以包括来自puf单元102中的每一个puf单元一个或多个响应位.相应地,puf电路100可以响应于给定质询位串来生成唯一认证密钥。

图2展示了根据各实施例的puf单元200。puf单元200或puf单元200的某些方面可以被包括在puf电路100的puf单元102中的一个或多个puf单元中。

puf单元200可以包括交叉耦合的反相器202和204的对,该交叉耦合的反相器202和204的对交叉耦合在输出节点206与输出拔节点208之间。例如,反相器202的输入端子可以耦合至输出拔节点208,且反相器202的输出端子可以耦合至输出节点206,同时反相器204的输入端子可以耦合至输出节点206,且反相器204的输出端子可以耦合至输出拔节点208。

各个反相器202或204可以包括多个下拉支路,这些下拉支路可以是基于接收到的质询位串单独可选择的。例如,反相器202可以包括下拉支路210a-b,且反相器204可以包括下拉支路212a-b。尽管在图2中示出反相器202和204各自包括两个下拉支路210a-b和212a-b,但是在其他实施例中,反相器202和/或204可以包括多于两个下拉支路。

下拉支路210a-b可以包括串联耦合在输出节点206与节点214之间的晶体管对,并且下拉支路212a-b可以包括串联耦合在输出拔节点206与节点214之间的晶体管对。例如,下拉支路210a可以包括晶体管n0和晶体管n1,下拉支路210b可以包括晶体管n2和晶体管n3,下拉支路212a可以包括晶体管n4和晶体管n5,并且下拉支路212b可以包括晶体管n6和晶体管n7。晶体管n0和n2的栅极端子可以耦合至输出拔节点208,并且晶体管n4和n6的栅极端子可以耦合至输出节点206。晶体管n1、n3、n5和n7的栅极端子可以接收质询位串的相应的质询位。如下文中进一步所讨论,质询位串可以选择性地激活下拉支路210a-b中的一个下拉支路和下拉支路212a-b中的一个下拉支路。

反相器202可以进一步包括上拉晶体管p2,该上拉晶体管p2耦合在输出节点206与供电端子216之间。供电端子216可以接收供电电压(例如,vcc)。反相器204可以进一步包括上拉晶体管p3,该上拉晶体管p3耦合在输出拔节点208与供电端子216之间。晶体管p2的栅极端子可以耦合至输出拔节点208,并且晶体管p3的栅极端子可以耦合至输出节点206。

在各实施例中,puf单元200可以进一步包括:预充电晶体管p0,该预充电晶体管p0耦合在输出节点206与供电端子218之间;以及预充电晶体管p1,该预充电晶体管p1耦合在输出拔节点208与供电端子218之间。供电端子218可以耦合至与供电端子216相同的供电电压(例如,vcc)和/或接收与供电端子216相同的供电电压(例如,vcc)。puf单元200可以进一步包括:脚端晶体管n8,该脚端晶体管n8耦合在节点214与接地220之间。预充电晶体管p0和p1以及脚端晶体管n8的栅极端子可以接收时钟信号clk。

在各实施例中,时钟信号clk可以在第一状态(例如,逻辑低)与第二状态(例如,逻辑高)之间交替。当时钟信号clk具有第一状态时,puf单元200可以处于预充电阶段中,并且当时钟信号clk具有第二状态时,puf单元200处于求值阶段中。在预充电阶段期间(例如,当时钟信号clk处于第一状态下时),预充电晶体管p0和p1可以接通,由此将输出节点206和输出拔节点208两者都充电到逻辑高(例如,充电到供电端子218的电压(vcc))。脚端晶体管n8可以断开,由此阻止下拉支路210a-b和212a-b在输出节点206和输出拔节点208处下拉电压。

当时钟信号clk转变成第二状态以将puf单元200转变成求值阶段时,预充电晶体管p0和p1可以断开,并且脚端晶体管n8可以接通。反相器202和204可以竞争以将输出节点206或输出拔节点208中的一个拉到逻辑低(例如,接地)并且维持输出节点206或输出拔节点208中的另一个处于逻辑高(例如,vcc)。

如上文所讨论,相应的下拉支路210a-b或212a-b的晶体管n1、n3、n5和n7可以接收相应的质询信号ch0、ch1、ch2或ch3。可以基于质询位串来导出质询信号。质询信号可以激活下拉支路210a-b中的一个下拉支路以及下拉支路212a-b中的一个下拉支路。即,质询信号ch0或ch1中的一个质询信号可以是逻辑高(例如,逻辑1)以接通相应的晶体管n1或n3,并且其他质询信号ch0或ch1可以是逻辑低(例如,逻辑0)以断开相应的晶体管n1或n3。类似地,质询信号ch2或ch3中的一个质询信号可以是逻辑高,以接通相应的晶体管n5或n7,并且另一个质询信号ch2或ch3可以是逻辑低,以断开相应的晶体管n5或n7。在其中反相器202和204包括多于两个下拉支路210a-b或210a-b的实施例中,可以激活由相应反相器的下拉支路接收到的质询信号中的一个质询信号,同时可以解除激活剩余的下拉支路。相应地,由每个反相器202和204接收到的质询信号的集合可以被称作“独热(one-hot)”信号。

由puf单元200在输出节点206处生成的响应位的值可以取决于激活的下拉支路210a-b和212a-b的对。例如,响应位的值可以取决于与反相器204的激活的下拉支路212a-b相比的反相器202的激活的下拉支路210a-b的相对下拉强度。下拉支路210a-b和212a-b的下拉强度可以基于随机过程变化。相应地,puf单元200可以生成对于对应的质询集合的响应的集合,该对应的质询集合对于puf单元200是唯一的并且可以用于认证puf单元200。此外,在puf单元200的质询-响应对之间可能存在非线性关系。即,对于一个质询-响应对的了解不可用于预测另一个质询-响应对。相应地,puf单元200可以抵抗机器学习攻击。

图3展示了根据各实施例的另一个puf单元300。puf单元300或puf单元300的某些方面可以被包括在puf电路100的puf单元102中的一个或多个puf单元中。

如图所示,puf单元300可以包括多个puf单元200的电路系统。puf单元300可以进一步包括时钟延迟电路330和332。时钟延迟电路330可以耦合至预充电晶体管p0的栅极端子,并且可以接收输入时钟信号clk并将第一延迟的时钟信号clk1提供给预充电晶体管p0。时钟延迟电路332可以耦合至预充电晶体管p1的栅极端子,并且可以接收输入时钟信号clk并将第二延迟的时钟信号clk2提供给预充电晶体管p1。

时钟延迟电路330和332可以包括多个延迟单元,这些延迟单元可以在时钟延迟路径上被选择性地激活,以从时钟信号clk生成相应的延迟的时钟信号clk1或clk2。延迟单元可以包括一个或多个反相器、缓冲器和/或其他延迟元件。例如,如图3中所示,时钟延迟电路330可以包括反相器334(该反相器334包括晶体管p5和n8)和336(该反相器336包括晶体管p7和n10),且时钟延迟电路332可以包括反相器338(该反相器338包括晶体管p9和n12)和340(该反相器340包括晶体管p11和n14)。反相器334和336两者都可以使它们的输入端子被耦合以接收输入时钟信号并使它们的输出端子被耦合到上拉晶体管p0的栅极端子,并且反相器334和336两者都可以使它们的输入端子被耦合以接收输入时钟信号并使它们的输出端子耦合到上拉晶体管p1的栅极端子。尽管在图3中示出时钟延迟电路330和332为各自包括两个独立可选择的延迟单元,但是在其他实施例中,时钟延迟电路330和332可以包括多于两个独立可选择的延迟单元。

在各实施例中,可以基于质询位串在时钟延迟路径上选择性地激活反相器(例如,时钟延迟电路330的反相器334和336以及时钟延迟电路332的反相器338和340)以生成相应的延迟的时钟信号(例如,clk1或clk2)。例如,时钟延迟信号330可以接收独热质询信号的集合以选择性地激活反相器334或336中的一个反相器,并且时钟延迟电路332可以接收独热质询信号的第二集合以选择性地激活反相器338或340中的一个反相器。可以基于质询位串来导出质询信号。相应地,在不同时刻,取决于在时钟延迟电路332和时钟延迟电路334中激活了哪些反相器,延迟的时钟信号clk1和clk2可以从第一状态转变至第二状态,由此将进一步的可变性添加到puf单元300的对质询的响应中

例如,时钟延迟电路330可以进一步包括接收相应的质询信号ch4和ch5的选择晶体管p4、p6、n9和n11。质询信号ch4和ch5可以选择性地激活反相器334或反相器336中的一个反相器,并解除激活反相器334或反相器336中的另一个反相器。

时钟延迟电路332可以进一步包括接收相应的质询信号ch6和ch7的选择晶体管p8、p10、n13和n15。质询信号ch6和ch7可以选择性地激活反相器338或反相器340中的一个反相器,并解除激活反相器338或反相器340中的另一个反相器。

puf单元300可以进一步地包括反相器342,该反相器342耦合至脚端晶体管n16的栅极端子以将时钟拔信号传递至晶体管n16的栅极端子。可以包括反相器342,以考虑由时钟延迟电路330和332提供的时钟信号clk的反相和延迟。

图4展示了用于接收4位质询位串(例如,质询位c[0]、c[1]、c[2]和c[3])并且生成用于puf单元300的质询信号(例如,ch0、ch1、ch2、ch3、ch4、ch5、ch6、ch7和)的电路400。电路400可以基于四个相应质询位来生成四组独热质询信号。例如,电路400可以包括非反相路径402a-d和反相路径404a-d。非反相路径402a-d可以传递质询位的逻辑值作为相应的质询信号,同时反相路径404a-d可以包括反相器406a-d以使质询位的逻辑值反相并传递反相的值作为相应的质询信号。

图5展示了另一个puf单元500,该puf单元500包括多个上拉支路而不是替puf单元200和300的多个下拉支路。puf单元500或puf单元500的某些方面可以被包括在puf电路100的puf单元102中的一个或多个puf单元中。

puf单元500可以包括交叉耦合的反相器502和504的对,该交叉耦合的反相器502和504的对交叉耦合在输出节点506与输出拔节点508之间。例如,反相器502的输入端子可以耦合至输出拔节点508,且反相器502的输出端子可以耦合至输出节点506,同时反相器504的输入端子可以耦合至输出节点506,且反相器504的输出端子可以耦合至输出拔节点508。

各个反相器502或504可以包括基于接收到的质询位串可以是单独可选择的多个上拉支路。例如,反相器502可以包括上拉支路510a-b,且反相器504可以包括上拉支路512a-b。上拉支路510a-b可以包括串联耦合在输出节点506与节点514之间的晶体管对,且上拉支路512a-b可以包括串联耦合在输出拔节点508与节点514之间的晶体管对。例如,上拉支路510a可以包括晶体管p0和晶体管p1,上拉支路510b可以包括晶体管p2和晶体管p3,上拉支路512a可以包括晶体管p4和晶体管p5,且上拉支路512b可以包括晶体管p6和晶体管p7。晶体管p1和p2的栅极端子可以耦合至输出拔节点508,并且晶体管p5和p7的栅极端子可以耦合至输出节点506。晶体管p0、p2、p4和p6的栅极端子可以接收相应的质询信号ch0、ch1、ch2和ch3。如下文进一步所讨论地,质询信号可以选择性地激活上拉支路510a-b中的一个上拉支路和上拉支路512a-b中的一个上拉支路。

反相器502可以进一步包括下拉晶体管n2,该下拉晶体管n2耦合在输出节点506与接地端子516之间。反相器504可以进一步包括下拉晶体管n3,该下拉晶体管n3耦合在输出拔节点508与接地端子516之间。晶体管n2的栅极端子可以耦合至输出拔节点508,且晶体管n3的栅极端子可以耦合至输出节点506。

puf单元500可以进一步包括:预充电晶体管n0,该预充电晶体管n0耦合在输出节点506与接地之间;以及预充电晶体管n1,该预充电晶体管n1耦合在输出拔节点508与接地之间。puf单元500可以进一步包括:头端晶体管p16,该头端晶体管p16耦合在节点514与供电端子520之间。供电端子520可以接收供电电压(例如,vcc)。预充电晶体管p0和p1以及脚端晶体管n8的栅极端子可以接收相应时钟信号。

在一些实施例中,如图5中所示,puf单元500可以包括时钟延迟电路530和532,该时钟延迟电路530和532分别耦合至下拉晶体管n0和n1的栅极端子。时钟延迟电路530和532可以与图3的时钟延迟电路330和332相似。时钟延迟电路530可以将第一延迟的时钟信号clk1传递至预充电晶体管n0的栅极端子,且时钟延迟电路532可以将第二延迟的时钟信号clk2传递至预充电晶体管n1的栅极端子。头端晶体管p16可以经由反相器542接收时钟拔信号。

在各实施例中,当时钟信号clk是逻辑低(例如,接地)时,时钟信号clk1、clk2和可以是逻辑高(例如,vcc)。相应地,puf单元500可以处于预充电阶段,并且预充电晶体管n0和n1可以接通,由此迫使输出节点506和输出拔节点508两者都为逻辑低(例如,接地)。晶体管p16可以断开,由此阻止上拉支路510a-b和512a-b在输出节点506和输出拔节点508处上拉电压。

当时钟信号clk转变至逻辑高时,延迟的时钟信号clk1和clk2可以转变至逻辑低,其中转变的时序取决于基于质询位所选择的时钟延迟电路530和532的反相器。当延迟的时钟信号clk1、clk2和是逻辑低时,puf单元500可以处于求值阶段中,并且下拉晶体管p0和p1可以断开,且晶体管n8可以接通。反相器502和504可以竞争以将输出节点506或输出拔节点508中的一个拉到逻辑高(例如,vcc)并且维持输出节点506或输出拔节点508中的另一个处于逻辑低(例如,接地)。

由puf单元500在输出节点506处生成的响应位的值可取决于时钟延迟电路530和532的激活的反相器且取决于反相器502和504的激活的上拉支路510a-b和512a-b。响应位的值可以基于时钟延迟电路530和532以及上拉支路510a-b和512a-b的晶体管中的随机过程变化。相应地,puf单元500可以对于对应的质询集合的响应的集合,该对应的质询集合对于puf单元500是唯一的并且可以用于认证puf单元500。此外,在puf单元500的质询-响应对之间可能存在非线性关系。即,对于一个质询-响应对的了解不可用于预测另一个质询-响应对。相应地,puf单元500可以抵抗机器学习攻击。

在各实施例中,puf单元200、300和/或500可以生成针对质询的不一致的响应(例如,由于电压和/或温度状况的变化)。相应地,在一些实施例中,暗位掩码可以用于标识不一致的响应并迫使这些不一致的响应为预限定的值。例如,可以对于各个质询、puf单元的各个支路(例如,交叉耦合的反相器的各个下拉支路或上拉支路和/或时钟延迟电路的各个延迟单元)或各个puf单元来使用暗位掩码。在各实施例中,可以使用软暗位掩码,其中在对电路进行上电时来测试puf电路的每个puf单元以生成软暗位掩码。软暗位掩码可以抵抗物理探测攻击,其他掩码技术(诸如,将掩码信息存储到一次性熔丝中)易受这些物理探测攻击。

例如,图6展示了根据各实施例的用于以逐质询水平生成暗位掩码的暗位掩码电路600。暗位掩码电路600可以包括串联耦合的锁存器602和604。锁存器602和604的输出耦合至xor(异或)门606的相应的输入端子。xor门606的输出耦合至and(与)门608的输入端子,且and门608的另一个输出端子接收使能信号db_eval。当使能信号db_eval是逻辑高时,针对每个质询多次对puf单元求值。锁存器602可以输出由puf单元对给定的时钟周期生成的puf位,并且锁存器604可以输出puf单元对于先前的时钟单元生成的puf位。相应地,如果对于给定质询的响应随时间变化,则xor门606的输出将变化至逻辑高。随后,可将质询标记为暗位。对于被标记为暗位的质询,可以迫使puf单元的响应为预定值(例如,逻辑0或逻辑1)。

例如,图7展示了根据各实施例的可以用于逐质询地对puf单元的输出进行掩码的掩码电路700。掩码电路700可以由掩码电路600(例如,在上电时)利用软暗位掩码来编程。掩码电路700可以包括任何合适的逻辑以存储软暗位掩码。

例如,在一些实施例中,掩码电路700可以包括多个传输门702a-p,这些传输门702a-p在它们的输入端子处接收相应的暗位指示符db0至db15。在其他实施例中,代替或附加于传输门702a-p,掩码电路700可以包括其他逻辑器件(例如,与非(nand)门和/或nor门)。暗位指示符db0-db15可以对应于相应的质询(例如,4位质询的16个可能的值中的一个值),并且可以具有用于指示相应的质询是暗位的第一逻辑值(例如,逻辑1)或用于指示相应的质询不是暗位的第二逻辑值(例如,逻辑0)。可以按列布置传输门702a-p,并且同一列的传输门702a-p的输出端子可以彼此耦合。如所示,掩码电路700可以进一步包括传输门704a-d,这些传输门704a-d的输出端子耦合至相应列的传输门702a-p的输出端子。传输门704a-d的输出端子可以耦合至nor门706的第一输入端子。nor门706的第二输入端子可以从对应的puf单元接收输出拔信号(例如,puf单元的输出拔节点处的信号)。

如所示,传输门702a-p和704a-d的控制端子可以接收相应的质询信号ch0-ch7。在各实施例中,对于给定的质询,掩码电路700可以将对应于质询的暗位值传递至nor门的第一输入端子。如上文所讨论,如果对应的质询是暗位,则暗位指示符可以是逻辑1,并且如果对应的质询不是暗位,则暗位指示符可以是逻辑0。相应地,如果质询是暗位,则无论输出拔信号的值如何,都可以迫使nor门706的输出为逻辑0。然而,如果质询不是暗位,则nor门706的输出将是puf单元的输出信号的值(例如,输出拔信号的值的反相)。

在其他实施例中,对于暗位,掩码电路700可以迫使输出为逻辑1。例如,暗位指示符可以是逻辑0而不是逻辑1,并且掩码电路700可以包括nand门而不是nor门706。

图8展示了根据各实施例的可以用于逐支路地对puf单元的输出进行掩码的另一掩码电路800。掩码电路800可以使用8个暗位指示符以指示是否将各个可选择的支路(例如,下拉支路或上拉支路以及时钟延迟电路的反相器)标记为暗。如果支路被标记为暗,则对于涉及那个支路的所有质询,掩码电路800迫使输出为预定值。

掩码电路800可以包括反相器802a-d,这些反相器802a-d用于接收对应于puf单元中的交叉耦合的反相器(例如,反相器302和304)的支路的相应的暗位指示符db0、db1、db2和db3。反相器802a-d中的每一个反相器可以包括耦合在反相器的第一功率端子与供电轨806之间的晶体管804a-h的对以及耦合在反相器的第二功率端子与接地端子810之间的晶体管808a-h的对。

如所示,晶体管804a-h和808a-h可以接收相应的质询信号。反相器802a-d的输出端子可以耦合至or(或)门812的第一输入端子。nor门811可以接收or门812的输出和来自puf单元的输出拔信号作为输入。

掩码电路800可以进一步包括反相器814a-d,这些反相器514a-d用于接收对应于puf单元中的时钟延迟电路的支路(例如,时钟延迟电路330的反相器334和336以及时钟延迟电路332的反相器338和340)的相应的暗位指示符db4、db5、db6和db7。反相器814a-d中的每一个反相器可以包括耦合在反相器的第一功率端子与供电轨818之间的晶体管816a-h的对以及耦合在反相器的第二功率端子与接地端子822之间的晶体管820a-h的对。如所示,晶体管816a-h和820a-h可以接收相应的质询信号。反相器814a-d的输出端子可以耦合至or门812的第二输入端子。

对于给定的质询,质询信号可以激活对应于由该质询信号选择的支路的反相器802a-d和814a-d。如果支路中的一个支路被标记为暗,则反相器将输出逻辑0位且or门812将输出逻辑1。相应地,不管输出拔信号的值如何,都将迫使由nor门811输出的响应位为逻辑0。然而,如果对应于质询的支路中无一支路是暗位,则nor门811的输出将是puf单元的输出信号的值(例如,输出拔信号的值的反相)。

在其他实施例中,预定值可以是逻辑1而不是逻辑0。另外地或替代性地,掩码电路800可以包括不同的逻辑门而不是反向器802a-d和814a-d来实现相似的功能。

图9展示了根据各实施例的可以用于逐单元地对puf单元的输出进行掩码的掩码电路900。可以与暗位掩码电路600相结合地使用掩码电路900。如果暗位掩码电路600判定puf单元是不可靠的,则暗位指示符db可以具有值逻辑1。相应地,可以迫使响应位为值逻辑0。如果暗位指示符db具有值逻辑0以指示puf单元是可靠的,则响应位可以具有puf单元的输出信号的值(例如,输出拔信号的值的反相)。

图10展示了根据各实施例的可以采用在本文中所述的装置和/或方法(例如,puf电路100、puf单元200、puf单元300、电路400、puf单元500、暗位掩码电路600、掩码电路700、掩码电路800和/或掩码电路900)的示例计算设备600。如所示,计算设备1000可以包括多个组件,诸如,一个或多个处理器1004(示出一个)和至少一个通信芯片1006。在各实施例中,一个或多个处理器1004各自可以包括一个或多个处理器核。在各个实施例中,至少一个通信芯片1006可以物理地以及电学地耦合至一个或多个处理器1004。在进一步的实现方式中,通信芯片1006可以是一个或多个处理器1004的一部分。在各实施例中,计算设备1000可包括印刷电路板(pcb)1002。对于这些实施例,可以将一个或多个处理器1004和通信芯片1006设置在其上。在替代实施例中,可以在不采用pcb1002的情形下耦合各种组件。

取决于其应用,计算设备1000可包括可以或可以不物理地或电气地耦合至pcb1002的其他组件。这些其他组件包括但不限于:存储器控制器1005、易失性存储器(例如,动态随机存取存储器(dram)1008)、非易失性存储器(诸如,只读存储器(rom)1010)、闪存1012、存储设备1011(例如,硬盘驱动器(hdd))、i/o控制器1014、数字信号处理器(未示出)、加密处理器(未示出)、图形处理器1016、一个或多个天线1018、显示器(未示出)、触摸屏显示器1020、触摸屏控制器1022、电池1024、音频编解码器(未示出)、视频编解码器(未示出)、全球定位系统(gps)设备1028、罗盘1030、加速度计(未示出)、陀螺仪(未示出)、扬声器1032、相机1034以及大容量存储设备(诸如,硬盘驱动器、固态驱动器、紧凑盘(cd)、数字通用盘(dvd))(未示出)等。在各实施例中,处理器1004可以与其他组件集成在相同的管芯上以形成芯片上系统(soc)。

在一些实施例中,一个或多个处理器1004,闪存1012和/或存储设备1011可以包括存储编程指令的相关联固件(未示出),这些编程指令被配置用于使得计算设备1000响应于由一个或多个处理器1004执行这些编程指令而能够实践本文中所描述的方法的所有的或选定的方面。在各实施例中,这些方面可以附加地或可替代地使用从一个或多个处理器1004、闪存1012或存储设备1011分开的硬件来实现。

在各实施例中,计算设备1000的一个或多个组件可以包括如在本文中所述的puf电路100、puf单元200、puf单元300、电路400、puf单元500、暗位掩码电路600、掩码电路700、掩码电路800和/或掩码电路900。例如,可以将puf电路100、puf单元200、puf单元300、电路400、puf单元500、暗位掩码电路600、掩码电路700、掩码电路800和/或掩码电路900包括在处理器1004、通信芯片1006、i/o控制器1014、存储器控制器1005、和/或计算设备1000的另一组件中。puf电路100、puf单元200、puf单元300、电路400、puf单元500、暗位掩码电路600、掩码电路700、掩码电路800和/或掩码电路900可以用于生成如在本文中所述的认证代码。认证代码可以用于将计算设备1000与另一设备进行认证和/或将计算设备1000的组件与计算设备1000的另一组件进行认证。例如,计算设备1000可以从另一个设备接收一个或多个质询,并且可以基于这一个或多个质询生成相应的一个或多个响应。

通信芯片1006可以启用用于向计算设备1000和从计算设备1000传送数据的无线和/或有线通信。术语“无线”和其衍生物可用于描述可通过使用通过非固态介质的调制电磁辐射来传递数据的电路、设备、系统、方法、技术、通信信道等。尽管在一些实施例中相关联的设备可以不包含任何线,但是该术语并不暗示相关联的设备不包含任何线。通信芯片1006可以实现多种无线标准或协议中的任何标准或协议,包括但不限于ieee702.20、长期演进(lte)、lte高级(lte-a)、通用分组无线业务(gprs)、演进数据优化(ev-do)、演进高速分组接入(hspa+)、演进高速下行链路分组接入(hsdpa+)、演进高速上行链路分组接入(hsupa+)、全球移动通信系统(gsm)、用于gsm演进的增强型数据速率(edge)、码分多址(cdma)、时分多址(tdma)、数字增强无绳电信(dect)、全球微波接入互操作性(wimax)、蓝牙、其衍生物、以及被称为3g、4g、5g和更高的任何其他无线协议。计算设备1000可以包括多个通信芯片1006。例如,第一通信芯片1006可以专用于诸如wi-fi和蓝牙之类的较短距离无线通信,并且第二通信芯片1006可以专用于较长距离无线通信,诸如,gps、edge、gprs、cdma、wimax、lte、ev-do、以及其他。

在各实施例中,计算设备1000可以是膝上型计算机、上网本、笔记本、超极本、智能电话、计算平板、个人数字助理(pda)、超移动pc、移动电话、台式计算机、服务器、打印机、扫描仪、监视器、机顶盒、娱乐控制单元(例如,游戏控制台或自动娱乐单元)、数码相机、家电、便携式音乐播放器或数字录像机。在进一步的实现中,计算设备1000可以是处理数据的任何其他电子设备。

以下提供了各实施例的一些非限制性示例。

示例1是物理不可克隆函数(puf)电路,该puf电路包括:输出节点和输出拔节点;第一反相器和第二反相器,该第一反相器和第二反相器交叉耦合在输出节点和输出拔节点之间,其中第一反相器包括多个支路,其中这些支路是下拉支路或上拉支路,其中基于质询位串来选择性地激活这些支路中的一个支路,并且其中被激活的支路用于在输出节点处生成响应位。

示例2是示例1的puf电路,其中第二反相器包括多个支路,并且其中基于质询位串来选择性地激活第二反相器的支路中的一个支路,并且其中第二反相器的被激活的支路用于在输出节点处生成响应位。

示例3是示例1的puf电路,进一步包括:第一预充电晶体管,该第一预充电晶体管耦合至输出节点;第二预充电晶体管,该第二预充电晶体管耦合至输出拔节点;其中第一预充电晶体管和第二预充电晶体管用于在puf电路的预充电阶段期间迫使输出节点和输出拔节点为同一电压电平,并且其中在预充电阶段之后的puf电路的求值阶段期间生成响应位。

示例4是示例3的puf电路,其中第一预充电晶体管用于响应于第一时钟信号来迫使输出节点为电压电平,其中第二预充电晶体管用于响应于第二时钟信号来迫使输出拔节点为该电压电平,并且其中puf电路进一步包括:第一时钟延迟电路,该第一时钟延迟电路耦合至第一预充电晶体管,用于生成第一时钟信号;以及第二时钟延迟电路,该第二时钟延迟电路耦合至第二预充电晶体管,用于生成第二时钟信号,其中第一时钟延迟电路和第二时钟延迟电路包括多个延迟单元,其中基于质询位串来选择性地激活多个延迟单元中的一个延迟单元,并且其中被激活的延迟单元用于生成相应的第一时钟信号或第二时钟信号。

示例5是示例4的puf电路,进一步地,其中延迟单元包括一个或多个反相器。

示例6是示例1的puf电路,其中支路是下拉支路,并且其中各个下拉支路包括第一晶体管和第二晶体管,该第一晶体管和第二晶体管串联耦合在输出节点与接地路径之间以接收接地电势,其中第一晶体管的栅极端子耦合至输出拔节点,并且其中第二晶体管的栅极端子用于接收从质询位串导出的质询信号以选择性地激活各个下拉支路。

示例7是示例1的puf电路,其中支路是上拉支路,并且其中各个上拉支路包括第一晶体管和第二晶体管,该第一晶体管和第二晶体管串联耦合在输出节点与供电路径之间以接收供电电压,其中第一晶体管的栅极端子耦合至输出拔节点,并且其中第二晶体管的栅极端子用于接收从质询位串导出的质询信号以选择性地激活各个上拉支路。

示例8是示例1至示例7中的任何一个示例的puf电路,进一步包括暗位掩码电路,用于在puf电路的上电时生成用于puf电路的软暗位掩码。

示例9是示例8的puf电路,其中软暗位掩码是逐质询水平、逐支路水平或逐单元水平的。

示例10是示例1的puf电路,其中输出节点、输出拔节点、第一反相器和第二反相器被包括在puf单元中,并且其中puf电路包括多个puf单元以生成相应的响应位。

示例11是物理不可克隆函数(puf)电路,该puf电路包括:用于基于质询位串来选择交叉耦合的反相器对的各个反相器的多个上拉支路或下拉支路中的一个支路的装置;以及用于使用每一个反相器的所选择的上拉支路或下拉支路来生成响应位的装置。

示例12是示例11的puf电路,进一步包括:用于响应于第一时钟信号来对输出节点进行预充电的装置;用于响应于第二时钟信号来对输出拔节点进行预充电的装置;用于基于质询位串来选择性地将一个或多个器件插入在第一时钟信号的第一延迟路径中的装置;以及用于基于质询位串来选择性地将一个或多个器件插入在第二时钟信号的第二延迟路径中的装置。

示例13是示例11或示例12的puf电路,进一步包括用于响应于puf电路的上电来生成用于puf电路的软暗位掩码的装置。

示例14是示例13的puf电路,其中软暗位掩码是逐质询水平、逐支路水平或逐单元的。

示例15是计算系统,该计算系统包括:处理器;物理不可克隆函数(puf)电路,该puf电路耦合至处理器,该puf电路包括多个puf单元以基于质询位串来生成响应位,各个puf单元包括耦合在输出节点与输出拔节点之间的交叉耦合的反相器对,交叉耦合的反相器中的各个反相器包括多个上拉支路或下拉支路,其中基于质询位串来选择性地激活多个上拉支路或下拉支路中的一个支路。

示例16是示例15的系统,进一步包括:第一预充电晶体管,该第一预充电晶体管用于在预充电阶段期间响应于第一时钟信号向输出节点提供第一电压电平;第二预充电晶体管,该第二预充电晶体管用于在预充电阶段期间响应于第二时钟信号向输出拔节点提供第一电压电平;第一时钟延迟电路,该第一时钟延迟电路耦合至第一预充电晶体管,用于生成第一时钟信号;以及第二时钟延迟电路,该第二时钟延迟电路耦合至第二预充电晶体管,用于生成第二时钟信号,其中第一时钟延迟电路和第二时钟延迟电路包括多个延迟单元,其中基于质询位串来选择性地激活多个延迟单元中的一个延迟单元,并且其中被激活的延迟单元用于生成相应的第一时钟信号或第二时钟信号。

示例17是示例16的系统,进一步地,其中延迟单元包括一个或多个反相器。

示例18是示例15的系统,其中puf电路进一步包括暗位掩码电路,用于在puf电路的上电时生成用于puf电路的软暗位掩码。

示例19是示例18的系统,其中软暗位掩码是逐质询水平、逐支路水平或逐单元水平的。

示例20是示例15至示例19中的任何一个示例的系统,进一步包括耦合至处理器的存储器、显示器或网络接口中的一个或多个。

示例21是示例15至示例19中的任何一个示例的系统,其中该系统是无线通信设备,并且其中puf电路用于项其他无线通信设备认证该无线通信设备。

示例22是物理不可克隆函数(puf)电路,该pufdd电路包括:puf阵列,该puf阵列用于接收质询位串并基于质询位串来生成响应位串;暗位掩码电路,该暗位掩码电路耦合至puf阵列用于在puf阵列的上电时生成用于puf阵列的软暗位掩码;以及掩码电路,该掩码电路耦合至暗位掩码电路,用于当将电路上电时临时存储软暗位掩码。

示例23是示例22的电路,其中暗位掩码电路用于逐质询地生成软暗位掩码。

示例24是示例22的电路,其中puf阵列包括具有多个独立可选择的支路的各个puf单元,多个独立可选择的支路基于阵列位串被选择以用于生成响应位串,并且其中暗位掩码电路用于逐支路地生成软暗位掩码。

示例25是示例22的电路,其中puf阵列包括多个puf单元,用于生成响应位串的一个或多个位,并且其中暗位掩码电路用于逐单元地生成软暗位掩码。

虽然出于描述的目的已经在本文中展示和描述了某些实施例,但是本申请旨在覆盖本文中所讨论的实施例的任何修改或变体。因此,明确地旨在仅由权利要求来限定本文所描述的实施例。

在本公开记载“一个”或“第一”要素或其等效物的情况下,这种公开包括一个或多个这种要素,既不要求也不排除两个或多个这种要素。进一步地,所标识的要素的顺序指示符(例如,第一、第二或第三)用于在要素之间进行区分,并且不指示或暗示所要求或所限定数量的这种要素,其也不指示这种要素的特定位置或顺序,除非另外特别声明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1