具有通过位线预充电的物理不可克隆函数

文档序号:134923 发布日期:2021-10-22 浏览:31次 >En<

阅读说明:本技术 具有通过位线预充电的物理不可克隆函数 (Physically unclonable function with precharge by bit line ) 是由 杰弗里·L·商塔格 哈特姆·M·奥斯曼 袁刚 于 2021-04-16 设计创作,主要内容包括:一种物理不可克隆函数,包括:第一位单元,其具有锁存器和用于选择性地将锁存器耦合到电源电压节点的开关。第一传输门将第一位线耦合到锁存器的第一内部节点,第二传输门将第二位线耦合到锁存器的第二内部节点。数模转换器电路选择性地通过第一位线和第一传输门耦合到第一内部节点以及通过第二位线和第二传输门耦合到第二内部节点,从而在读取第一位单元之前对锁存器进行预充电。响应于开关的闭合以将锁存器连接到电源电压节点,锁存器再生。第一位线和第二位线用于读取锁存器的再生值。(A physical unclonable function, comprising: a first bit cell having a latch and a switch for selectively coupling the latch to a supply voltage node. A first transmission gate couples the first bit line to a first internal node of the latch and a second transmission gate couples the second bit line to a second internal node of the latch. A digital to analog converter circuit is selectively coupled to the first internal node through the first bit line and the first transmission gate and to the second internal node through the second bit line and the second transmission gate to precharge the latch prior to reading the first bit cell. The latch regenerates in response to the closing of the switch to connect the latch to the supply voltage node. The first bit line and the second bit line are used to read the regenerated value of the latch.)

具有通过位线预充电的物理不可克隆函数

技术领域

本公开涉及物理不可克隆函数(PUF),其中可以有效地评估PUF位(bits)的可靠性。

背景技术

物理不可克隆函数(PUF)是生成随机位的电路的随机行为。该随机行为可确保在看似相同的集成电路之间生成的随机位是不同的。PUF用于安全应用,例如加密密钥。

有许多方法可以制作PUF位单元(bit cell)。一种这样的方法是基于SRAM位单元的单元,与诸如环形振荡器的其他PUF方法相比,该单元具有较小的面积。SRAM PUF位单元的一个严重问题是在电压(V),温度(T)和老化变化后的自然错误率高达15%,需要极昂贵的(区域,时间,功率)编码来重建减少错误。

减少错误的现有技术解决方案包括确定重复读取的位是否产生相同的值。这允许仅选择电压偏移大于2×RMS(Vnoise)的那些位。但是噪声电压通常远小于电压,温度,老化(VTA)所引起的跳变点变化,因此仍包括跳变点相当小的位。这导致错误率的降低非常有限。另外,假设噪声和初始偏移为高斯分布以及位单元统计信息中的非零偏差,则此过程会使偏差变得更糟。

期望的是,可以有一个低面积开销(low-area-overhead)的电路,其可以评估阵列中的PUF位的可靠性。

发明内容

在一个实施例中,物理不可克隆函数(PUF)包括第一位单元。该第一位单元包括锁存器,将锁存器选择性地耦合至电源电压节点的开关,耦合在第一位线与锁存器的第一内部节点之间的第一传输门,以及耦合在第二位线与锁存器的第二内部节点之间的第二传输门。数模转换器(DAC)电路选择性地通过第一位线和第一传输门耦合到第一内部节点以及通过第二位线和第二传输门耦合到第二内部节点,从而在读取第一位单元之前对锁存器进行预充电。第一内部节点和第二内部节点分别耦合到第一位线和第二位线以读取锁存器的值。

在另一实施例中,一种方法包括:使用施加到第一位线和第二位线的差分电压来对物理不可克隆功能(PUF)的位单元中的锁存器进行预充电。在对锁存器进行预充电之后,使锁存器再生,然后使用第一位线和第二位线中的至少一条读取锁存器的值。

附图说明

通过参考附图,可以更好地理解本发明,并且其许多目的,特征和优点对于本领域技术人员而言将是显而易见的。

图1示出了PUF位单元的实施例。

图2A示出了PUF位单元中的两个反相器的四个晶体管以及位于公共源极和实际接地之间的NMOS开关。

图2B示出了PUF位单元中的两个反相器的四个晶体管以及位于公共源极和VDD之间的PMOS开关。

图3示出了包括向位线终端电路提供差分模拟总线对的差分数模转换器(DAC)的实施例。

图4示出了其中PUF位单元的阵列被布置在PUF页面中的实施例。

图5示出了由PUF页面形成的阵列。

图6示出了时序图,该时序图示出了将偏移应用于PUF位单元然后读取该位单元。

图7示出了基于环形振荡器的PUF的高级框图。

图8示出了各种偏移电压(Vos)的1和0的概率密度函数(pdf)。

图9示出了在重建期间使用偏移控制的值(其等于正阈值控制值和负阈值控制值的平均值)以最小化误差。

图10A示出了针对强0的位单元的施加阈值获得“1”的概率。

图10B示出了针对弱的位单元的施加阈值获得“1”的概率。

图10C示出了针对强1的位单元的施加阈值获得“1”的概率。

图11示出了用于无源测量的硬件实施方式的实施例。

图12显示了阈值设置和无源测量结果之间的典型关系。

图13示出了主动测量过程的流程图。

图14示出了一种近似牛顿法的替代搜索技术。

在不同附图中使用相同的附图标记表示相似或相同的项目。

具体实施方式

通过评估各个PUF位的可靠性,将不可靠的位排除在进一步使用之外,从而显着地改善误码率(BER)。评估方法评估模拟PUF中的位单元的偏移,并选择具有大的正或负自然偏移的位单元来使用,从而显着降低错误率。换句话说,具有大的正或负偏移的位单元将不太可能响应于漂移而改变,如本文进一步说明的。本文描述的允许进行这种评估的位单元的一个实施例为具有较低位单元面积的较不复杂的电路(与现有技术的方法相比)。在一个实施例中,在此描述的位单元允许在读取位单元之前施加偏移以确定该位单元是再生为1还是0。这允许选择强1和强0,从而降低了与更传统的PUF方法相关的错误率。

图1示出了根据一个实施例的PUF位单元101。PUF位单元包括一个6晶体管(6T)SRAM位单元。6T单元包括由两个反相器和两个传输门103和105形成的锁存器102。两个反相器的四个晶体管在图2A中示出。传输门103将位单元内部节点107耦合到位线109。传输门105将内部节点111耦合到位线115。PUF单元101还包括位于公共源极(反相器接地)和实际接地(GND)之间的NMOS开关117。当选通信号(strobe signal)119被声明(asserted)时,反相器被耦合到实际接地,锁存器再生(regenerate)为1或0。

虽然已经绘制了在反相器的接地和实际GND之间具有单个NMOS晶体管的PUF位单元101,但在图2B所示的另一个实施例中,具有在反相器的VDD和实际VDD之间的单个PMOS晶体管201,其替换了单个NMOS晶体管117。还应注意,在另一个实施例中,PMOS传输门103和105被NMOS器件代替,以将内部节点107和111耦合到它们各自的位线。在一个实施例中,PMOS传输门用于确保当反相器内的NMOS器件首先开始再生时,NMOS偏移占主导(在某些处理技术中更大)。

图3示出了一个实施例,该实施例包括接收数字控制信号302并将差分模拟总线对303(dac_p和dac_n)提供给位线终端电路304的差分数模转换器(DAC)301。正DAC信号dac_p通过晶体管开关306耦合到位线109。负DAC信号dac_n通过晶体管开关308耦合到位线115。在一个实施例中,使用多个独立可控的DAC来生成耦合到位线的差分模拟信号。位线端子电路304包括两个晶体管开关307和309,这两个晶体管开关307和309将位线109和115接地,以使位线放电,如本文进一步说明的。最后,三态驱动器311接收位线109(或在另一实施例中为位线115),并将所选的PUF位逻辑状态驱动到公共数据输出总线。虽然示出了三态驱动器,但是可以使用其他电路来将PUF位逻辑状态耦合到数据总线,例如,传输门或多路复用器电路,以从PUF阵列的不同存储体(banks)中进行选择。

图4示出了布置在PUF页面400中的PUF位单元101的阵列。用于页面400的每一行的行解码器401接收地址,页面选择,conn信号以及选通,并提供conn_n信号121以在选择该行时打开传输门和提供选通信号119以使PUF位单元在声明时再生(参见图1)。另外,多个位线终端电路304终止PUF页面400的每一列的位线。DAC差分信号耦合到页面的每一列的所有位线。最后,数据输出总线dOut[N-1:0]403接收由每个位线终端电路的三态驱动器读取和提供的PUF位单元的锁存器值。页面尺寸是根据所需的PUF阵列速度确定的。较大的页面尺寸可能会导致PUF阵列变慢。

图5示出了由PUF页面400形成的阵列500。页面解码器501选择阵列500的特定页面,并且存储器控制器503控制对页面的阵列的访问。存储器控制器接收存储器地址,读取命令和时钟,并控制对预充电和读取PUF位单元的访问,如本文进一步说明的。图5还示出了被耦合成驱动阵列500的位线的DAC 301,被耦合成接收从阵列500读取的数据的数据输出总线403,以及存储从阵列读取的数据并提供输出数据字的存储元件505,例如触发器。在一个实施例中,阵列尺寸在4K和8K PUF位之间。

图6示出了时序图,该时序图示出了读取操作,该读取操作向PUF位单元施加偏移以对PUF位单元进行预充电,然后读取该位单元的内容。与现有方法不同,PUF位单元允许使用位线来进行模拟输入连接以将偏移应用于位单元,以及使用相同的位线来进行数字输出连接以读取位单元的内容。存储器控制器中的控制逻辑控制插入偏移的操作,然后读取位单元。控制逻辑或其部分驻留在存储器控制器503,页面解码器501和/或行解码器401中。参考图1、图3和图4至图6,在601处,DAC被启用并开始驱动差分DAC输出到差分总线对303。在寻址页面(addressed pages)中,位线终端电路304通过晶体管开关306和308将差分模拟信号连接到位线。同时,在602处,声明conn_n信号121(其为低电平有效(active low)的),以使寻址字(addressed word)中的每个位单元中的传输晶体管103和105连接到位线,这些位线当前具有用于对位单元进行预充电的模拟信号。在施加偏移电压以对位单元进行预充电期间,选通信号119保持不被声明(deasserted),从而将锁存器从电源节点中的一个解耦。控制逻辑允许有时间来稳定寻址字的每个位单元中的模拟电压。如在603处所示,寻址字中的位单元的内部节点107和111跟随位线上的差分电压。在稳定之后,控制逻辑通过在604处不声明conn_n信号121(信号变为高电平)来断开位线与位单元的连接,并通过关闭每个位线终端电路304中的开关306和308来使dacDrv信号310(图6中未示出)不被声明,以断开位线与全局DAC输出总线的连接。在605处,控制逻辑声明选通信号119以触发(fire)锁存器,引起正反馈以迫使每个被寻址的位单元进入“1”或“0”状态并留出时间以用于完全再生。锁存器在时间607左右已被解决(resolved)为1或0。解决状态取决于自然偏移与在预充电期间由DAC差分信号引入的偏移之间的差。

在触发锁存器的同时,在609处,取决于位单元的传输门晶体管是PMOS还是NMOS,控制逻辑将位线预充电到适当的电压。如在图6中所示,对于PMOS传输门晶体管,通过使能放电开关307和309,位线被预充电为低电平。在具有NMOS传输门晶体管的实施例中,位线被预充电为高电平。在经过足够的时间以将位线预充电为低电平之后,位线的预充电将停止,并且控制逻辑在611处在寻址字上声明conn_n 121,以将位单元的再生的内部节点重新连接到位线。控制逻辑等待位线稳定下来。控制逻辑在615处声明三态驱动器311(triStateDrv),以将读取的数据发送到dOut[N-1:0]总线,然后为输出数据触发器(或锁存器)提供时钟,以将得到的输出字与在617处的新的输出数据字保持在一起。在读取操作之后,位线和位单元的内部节点分别在619和621处返回到禁用状态。在禁用状态下,锁存器与电源断开,传输门打开,并且两条位线均设置为预选的逻辑电平。在图6所示的实施例中,预选逻辑电平是高电压电平。在图6的实施例中,位线和DAC输出在空闲期间为高电平,反映了其中具有如图1所示的NMOS接地开关和PMOS传输门的位单元的实施例。在那种情况下,在位单元被禁用时将位线(和内部节点)保持为高电平可确保在位单元中没有电流流动,并且在任何匹配器件上都没有差分电压。这样就消除了大多数会导致位元单元的基础电压或自然偏移电压的老化引起漂移的机制。

因此,已经描述了SRAM类型的PUF,其中在读取操作期间,数字控制的模拟信号(经由DAC)向每个PUF位单元添加偏移。作为选择了特定的数字偏移设置的结果,片上硬件用于确定获得了多少强“1”或“0”结果(来自整个PUF的预选部分或整个PUF)。这种操作被称为“测量”(surveying)。出于安全原因,这种测量操作由硬件完成是有益的。当然,实施例可以利用软件进行测量操作,但应注意某些安全漏洞可能已暴露出来。硬件和/或软件控制测量操作,以选择两个阈值,这些阈值导致强“1”的数量和强“0”的数量均为:(1)相似以及(2)近似匹配一些预选数量。出于安全原因,强1的数量和强0的数量相似是有益的。应注意,在图1所示的SRAM类型PUF中,阈值是在读取操作开始时由DAC提供以对位单元进行预充电的偏移。

在描述测量方法的一些方面之前,首先定义一些术语。所谓随机二进制数据的偏置意味着p(1)~=p(0)。偏置一般被定义为:bias=p1-0.5。已被证明,PUF内容中的非零偏置可减少熵(使其更容易猜测),尤其是在与长重复码结合使用时。PUF内容的一种用途是用于根密钥,考虑安全性至上的客户不看好根密钥,认为它们较容易被猜到。

术语“模拟PUF”描述了PUF,其中数字控制(例如,多位数字控制字)被用于调整由于读取PUF中的位单元的寻址字而得到二进制1的可能性。PUF实现的细节不必与图1中描述的PUF位单元匹配。相反,该术语要求数字控制可用于使1更有可能(在控制的一个方向上)或较不可能(在另一个方向上)。例如,图7显示了基于环形振荡器的PUF。两个环形振荡器701和703以不同频率振荡,其由计数器705和707计数,并在提供PUF位的比较器709中进行比较。在基于环形振荡器的PUF中,随机变量是两个振荡器的频率之比。对于看似相同的振荡器,比较器输出采用随机值。在一个简单的实现中,计数器的位数(number of bits)为N,并且比较器功能是基于一个计数器中的N个位中的一个在另一计数器中的同一位翻转之前向复位状态或从复位状态翻转。基于环形振荡器的PUF的其他实现方式是已知的。应注意,虽然示出了两个环形振荡器,但是一些实施例可以具有例如256个环形振荡器,其中两个被选择为用于比较。可以通过偏置控制711来将振荡的频率偏置为更高或更低。在一些实施例中,加载振荡器的变容二极管的模拟或数字控制,或者馈入振荡器的电源或供应的偏置电流或电压用于提高或降低振荡频率。例如,如果环形振荡器是限流(ICO)的,其中每个都有自己的电流源来供给其本地电源电压,则把很少量的电流导向一个电源或另一个电源的电流模式DAC将是一种有效的调整频率的比例的方法。

硅后(Post-silicon)选择(PSS)是指仅选择(在注册过程中)被确定为“强”(即,与“弱”位相比,极性不随漂移而翻转)的那些位来使用。选择信息与辅助数据结合在一起,以允许重建算法跳过弱位。

PUF位单元的阵列是允许可靠地重新生成安全根密钥所需的系统的一部分。该系统的其他部分包括注册硬件和/或软件。注册是指“辅助数据”的生成(通常存储在闪存中),该数据在重建过程中使用。注册通常只进行一次,在安全系统的产品测试过程中。注册可以使用一些PUF位的子集的随机极性来生成根密钥中所需的熵,或者可以使用真实随机数生成器(TRNG)的输出。

重建是指使用PUF内容和辅助数据可靠地重新生成一组位(通常称为根密钥)。使用硬件和/或软件的重建可以可选地在每次上电之后进行一次,在从低功率状态恢复之后进行一次或在任何需要根密钥时进行一次。

在PUF位单元的阵列中,每个单元都有一个基础偏移量或自然偏移量Vos,该偏移量可能会随电源电压,温度和老化的变化而有所变化(漂移)。在读取时,二进制结果取决于:sign(Vos+Vnoise-Vcontrol)。应注意,虽然符号“V”通常用于电压,但是该符号可以分别在基于延迟或振荡器的PUF单元中表示时间或频率。如本文中所使用,Vcontrol是Vos必须克服以维持对应于PUF位单元的基础偏移的值的施加的偏移(电压,时间,频率等)。应注意,相对于偏移电压的标准偏差,Vnoise通常很小。术语“漂移”代表Vos随电压,温度,老化(VTA)的变化。漂移可能被认为是通信信道中的噪声。测得的漂移通常逐个位独立,并且具有至少与高斯分布合理匹配的分布。如果Vos足够大(正或负),则位单元的符号受漂移影响的可能性较小。Vcontrol可用于确定哪些位单元具有足够高的Vos,并因此可被视为强1或强0。例如,参考图1,Vcontrol是施加在位线上的差分偏置的量。如果位单元101的基础偏移足够强以克服由Vcontrol表示的所施加的差分偏置,则取决于所施加的特定Vcontrol,位单元可以被视为强1或强0。

在传统PUF的实现中,没有控制(Vcontrol=0)。忽略噪音,在以下情况下会导致错误:这意味着偏移漂移(VosDrift)大于原始偏移(Voso)并且方向相反。因此,错误率由具有小幅度的偏移的位所支配。对于SRAM PUF的实现,在较差的VTA拐角处的错误率可高达15-20%。高BER导致需要功能强大的纠错码。这些代码在所需的PUF位数,所需的辅助数据大小,硅面积以及重建时间和精力方面都很昂贵。

图8示出了针对不同偏移电压(Vos)的1和0的概率密度函数(pdf)。给定模拟PUF,在注册过程中,可以选择一组两个偏移量控制(正阈值控制值(Vthr+)和负阈值控制值(Vthr-))以允许选择足够强的(正和负)位。Vthr+表示用于确定强1的Vcontrol值,Vthr-表示用于确定强0的Vcontrol值。如果原始偏移量分布不为零均值,则仅当所选阈值具有不同的幅度时,偏置(正和负选定位的数量不匹配)才可以较小。在重建期间,漂移可能足够大以产生误差。参照图9,假设在漂移中是对称的,则在重建期间通过使用与mean(Vthr+,Vthr-)相对应的偏移控制的值来最小化错误计数。

在这种情况下,测量意味着无源测量:将通过使用特定阈值来确定选择的1或0的数量。或者,在某些情况下,仅知道所得数量与期望数量之间的差的极性可能就足够了。有源测量是指将无源测量和搜索算法(例如,逐次逼近,牛顿法逼近,线性扫描)相结合,以确定可产生期望数量的1和0的阈值。应注意,通常,有源测量需要运行一次以找出用于产生期望数量的1的正阈值,然后再次运行以找出用于产生期望数量的0的负阈值。如在本文所使用的,正阈值控制Vthr+对应于Vctl并表示所施加的偏移(例如,到图1中描述的PUF SRAM单元),其与PUF单元的基础偏移相反或相对抗。

存在与测量相关的一些安全隐患。由于测量通常仅在产品测试期间进行,因此其电力或能量成本和执行时间并不重要。这意味着完全使用软件来进行会很有吸引力,因为这样可以完全避免硬件成本。但是,使用软件进行所有测量必然意味着,至少在注册期间,执行此工作的计算机可以访问PUF中的数据。这意味着存在连接(PUF输出到计算机),这意味着可以在产品测试期间替换不同指令的攻击者(或黑客)可以替换代码,例如,可以将PUF内容上传到攻击者可以访问的文件中。如果做不到这一点,可以在注册后入侵系统以允许访问PUF数据的攻击者可以获得根密钥。如果在PUF输出和软件可访问寄存器之间没有连接,则将提高安全性。因此,优选至少无源测量步骤是在硬件而不是软件中进行的。

此外,无源测量不应提供高分辨率的部分结果。例如,如果可以选择控制无源测量仅计数J个位,而J可以被编程为高分辨率,则可以获得作为J的函数的结果的攻击者将得到便于准确猜测根密钥的强大信息。通常,没有理由允许这种控制,因为使用所有PUF会产生较低的原始BER。

只要无源测量是在硬件中进行的,在软件中进行有源测量不会产生安全隐患。应注意,有源测量的硬件实施也是可能的。

差分功率分析(DPA)或简单功率分析(SPA)攻击用于分析功耗模式以获得诸如秘密密钥之类的加密信息。DPA是基于检查由于不同消息而获得的功率迹线之间的差异。对于PUF,只有一个“消息”,因此无法应用DPA。SPA是适用的但功能较弱的技术。SPA攻击也很难成功。即使没有对策,由于发生不同的错误,连续的重建也可能产生不同的功率迹线。攻击者无法取平均。每个轨道很可能都不同,但是攻击者无法对它们取平均。测量必定意味着将阈值置于pdf的“较厚”部分。百分之几的位单元的偏移量将非常接近阈值,因此读取PUF阵列中的几千个位将导致100个位,这些位将在每个读取迹线上改变。此外,将没有位串行操作。PUF阵列的读取可能为16、32或甚至64位。功耗将具有基于许多随机位的变化总和来确定的分量。数据相关功率的这种转换为攻击者提供很少信息。针对SPA的对策包括避免PUF内部数据总线的归零操作。归零意味着功耗(用于总线驱动)与总线中的1的数量成正比。如果功耗与一条宽总线上的转换数量成正比,那么信息将少得多。另一个潜在的对策是在重建期间从随机地址(每次不同)开始读取完整的PUF阵列。因此,如果您开始读取地址N处的PUF阵列,则读取操作将回绕到地址N-1,或者至少直到读取了包含强1和强0的所有位置为止。在这样的实施例中,包含PUF的集成电路可以进一步包括随机地址生成器(例如,真实随机数生成器(TRNG))。PUF的弱单元也可以用于为随机地址生成器进行播种,或者用于确定随机地址。

图10A-图10C示出了对于针对分别为强0,弱单元和强1的位单元的施加阈值获得“1”的概率。参照图10A,曲线1001示出了对于为强0的位单元获得“1”的概率。在阈值(Vthr-)足够负的情况下(与自然偏移相反/相对抗),并缺少附加的偏置,会导致在1003处1的概率变为100%。图10B中的曲线1005示出了在不同偏移水平下对于弱单元获得“1”的概率。对于所表示的弱单元,当Vthr为正时,获得“1”的概率为零,而当Vthr稍为负时,概率变为100%。在图10C中,曲线1007示出了为强1的单元的曲线。获得“1”的可能性为100%,直到正阈值(Vthr+)达到1009并克服强单元的基础偏移为止,其中Vthreshold对应于以下公式中的Vcontrol:sign(Vos+Vnoise-Vcontrol)。最终,在1009处,Vthr太大,以至于克服了否则可能导致单元读取“1”的任何潜在Vos

确定适合于测量的强和弱单元的一种方法是,以正阈值读取PUF位单元以确定强“1”的单元以及以负阈值读取PUF位单元以确定强“0”的单元。如果应用了正阈值Vthr+,并且读取该单元的结果为1(图10C),则表明该单元为强“1”,否则该位单元的强或弱状态仍然未知。如果应用了负阈值(Vthr-),结果为0(图10B),则表示为强“0”,否则,位单元的强或弱状态仍然未知。弱位将是所有不是强的位。使用此方法的测量操作将应用正阈值,读取整个PUF,并对所有强1计数。然后,测量操作将使用负阈值,读取整个PUF,并对所有强0计数。当然,确定强1和强0的顺序可以颠倒。

图11示出了用于无源测量的硬件实施方式的实施例。此处的“无源”表示硬件仅观察PUF位单元,而不会更改阈值控制。无源测量硬件1101包括地址计数器/状态机1102,其响应于开始命令1104以指导对PUF 1103中的所有字(或其一部分)进行读取。PUF 1103的尺寸为MxN位,总共S个位,其中M,N和S为整数。地址计数器/状态机提供读取地址1107和读取命令1109。当PUF 1103的读取完成时,地址计数器/状态机提供完成信号1105。

无源测量一次读取PUF阵列1103的一个字,并且对于字长为N,PUF 1103在读取数据总线1111上提供N个位的数据。求和器1115在总线1111上提供的(Nx1)个独立二进制位上运行,将所提供的N个位字中具有预选状态的位总数相加,并将该总数作为大小为ceil(log2(N+1))的单个字提供给第二求和器1117。预选状态可以是0或1。例如,在字的尺寸N=32时,单个字中的1的数量在0-32范围内(包括0和32),需要6个位来表示计数值。

第二求和器1117和寄存器1119形成积分器,该积分器对整个PUF 1103中的所有1进行计数。寄存器1119将最终计数值提供给一组与门1121,并且将最终计数值的位和完成信号1105进行与门运算,以减小数据相关的功耗(适于较小的SPA攻击面)。在其他实施例中,与门1121被省略。测量结果1123指示通过以指定的阈值水平读取PUF的S个位而得到的1的数量。当然,1的数量表示0的数量,因为0的数量是(S-测量结果),其可以容易地通过硬件或软件确定。在一个实施例中,无源测量电路1101计数0而不是1,然后1的数量为(S-测量结果)。在其他实施例中,无源测量电路1101可被配置为计数0或1。在这样的实施例中,无源测量电路接收控制信号(未示出)以指示是计数0还是计数1。

在一个实施例中,处理器,例如具有相关存储器的处理器1131,例如已编程的微控制器,在有源测量期间控制无源测量硬件。处理器提供DAC控制值,以使DAC提供适当的阈值和开始信号1104。处理器和存储器1131接收测量结果并如本文进一步说明的利用测量结果。存储器存储用于控制处理器的软件,存储DAC控制值,并存储测量结果。存储器是非暂时性计算机可读介质,例如易失性或非易失性存储器。

有源测量的目标是找到导致预选数量的1和预选数量的0的阈值控制对。通常,预选数量的1和0是相同的。当然,实际上,噪声(例如,来自DAC的分辨率)确保了在相同的施加阈值下重复读取将在获得的1s和0s的数量上产生一定的可变性。有源测量的实施例可以利用处理器和存储器1131以硬件或软件来实现,或者一些实施例可以使用硬件和软件两者。对于每个所需的阈值控制(一个阈值控制为1的数量,一个阈值控制为0的数量),进行迭代搜索。迭代搜索中的每个步骤都使用无源测量来计数因阈值控制的特定选择而导致的1(或0)的个数。不同的实施例以不同的方式实施搜索。一个实施例使用线性搜索,该线性搜索将预选数量与在测量结果中(以预选范围内的每个阈值设置获得的)处于预选状态的位数进行比较。另一个实施例在预选范围内使用二进制搜索。二进制搜索可以容易地和简单地在硬件或软件中实现。也可以使用其他搜索方法,例如牛顿法。

图12显示了阈值设置和无源测量结果SR之间的典型关系。Thr+对应于正阈值设置,该设置会导致期望的预选数量的1。Thr+介于最小阈值(ThrMn)(对应于DAC设置为0)和最大阈值(ThrMax)(对应于DAC设置为2k-1)之间的范围内,其中K是DAC中的分辨率的位数。DAC可以对应于图3所示的DAC 301。

图13示出了使用二进制搜索来找出Thr+的有源测量过程的流程图。该流程可以用存储在存储器中并在处理器1131(见图11)上运行的软件实现,或者可以用硬件实现。在1301中,控制软件(或硬件)将循环计数器设置为零,并为阈值增量设置步长值(stepvalue)。在1303中,控制硬件或软件将当前阈值设置为ThrMn和ThrMx的平均值。有源测量循环始于1305,其通过利用当前阈值执行无源测量以获得测量结果SR。无源测量优选地使用诸如图11中所示的硬件之类的硬件来实现无源测量。循环计数器在1307中递增,并且在1309中进行检查以查看循环计数器是否已达到最大循环计数。如果循环计数已达到最大值,则有源测量已完成。否则,在1311中,由(SR-P)的符号确定的方向以步长调整当前阈值,其中P是期望的1的预定数量。换句话说,如果测量结果SR(处于预选状态的位数)大于期望的预选位数P,则增加正阈值Vthr+,如果预选数量大于测量结果,则正阈值减少。如果SR=P,则根据特定实现,将0的符号定义为1,-1或0。在1315中将步长减半,并且流程返回到1305中以使用更新后的阈值来执行无源测量。一旦完成有源测量,微控制器将评估无源测量结果SR,以确定提供1的期望数量P的正阈值。应注意,所选的正阈值通常提供最接近P的1的数量,而不是与P的精确匹配。

图14说明了一种近似牛顿法的替代搜索技术。在牛顿法中,迭代测量是通过更新等式完成的:其中如结合图14所述的使用Thr,SR,P。图14中的术语s是在感兴趣区域中SR作为Thr的函数的假定平均导数(斜率)。应注意,经典的牛顿法使用的是实际导数而不是假设的平均值。使用固定值可使除法函数成为简单的固定乘法缩放。假设s的误差不超过-25%到+25%,则每个步骤将误差减少4倍,并且仅需要几个步骤。

由于在测量期间存在噪声,因此具有接近当前Thr值的阈值的PUF位单元会产生不确定(not deterministic)的结果。总计数SR会在其平均值附近有一些分布。为了减少由噪声引起的误差,可以为测量结果取平均或者对每个PUF单元的多次读取进行测量结果进行累积。可以使用越来越小的调整来通过附加的步骤来近似平均:{0.5x,0.5x,0.25x,0.25x,0.25x,0.25x,0.125x…}。

无源测量被重复,以确定Thr-值,以完成对阈值控制对(其导致预选数量的1和预选数量的0)的确定。在一个实施例中,在获得提供SR=P(或大体等于P)的正阈值之后,将SR结果被用作确定负阈值的P的数量。所确定的一对阈值控制值被存储在例如辅助数据中,并在重建期间被使用。在一个实施例中,正阈值和负阈值的平均值(或适合于DAC的平均值的取整形式)在重建期间被用作阈值。

在完成有源测量后,将在注册过程中使用阈值。注册过程使用在有源测量期间确定的一对阈值。在注册期间,足够数量的强位(1和0)的位置被存储在辅助数据中的掩码中,因此可以在重建期间使用相同的强位的位置。例如,辅助数据可以在PUF阵列中存储大约3000个强位的位置,这些强位在强1和强0之间划分。被存储的PUF位的数量取决于所需的编码级别。PUF位单元在逻辑上与秘密数据(例如由真实随机数生成器(或具有足够熵的另一个源)提供的256位根密钥)组合,使得在重建阶段可以可靠地再现根密钥。因此,辅助数据包括识别重建所需的强位的位置的PUF掩码,阈值Vthr+和Vthr-(或阈值本身)的平均值,以及足以可靠地重构根密钥的编码。例如,编码可以包括重复代码,在该重复代码中,许多PUF位,例如7位,与秘密数据的一部分(根密钥)进行异或门(XOR)运算。该操作的结果存储在辅助数据中。在重建期间,将相同的PUF位与存储的信息的7位进行XOR运算,以恢复秘密数据的一个位。理想的是,在重建过程中由XOR产生的7位在秘密位是1还是0方面是一致的,但是如果存在分歧,可以使用表决机制来选择匹配的多数4、5或6个结果。可以使用诸如不同汉明码之类的附加编码并将其存储在辅助数据中,以将错误率进一步降低到可接受的水平,以重建根密钥。辅助数据中的编码级别可能取决于强1和0的强度。1和0越强,错误率越低,并且可能需要较少的编码来可靠地生成根密钥。

因此,已经描述了PUF位单元以及由PUF位单元形成的PUF阵列,其中,使用数字控制来调节作为读取PUF中的位单元的寻址字的结果而获得二进制的1或0的可能性。本文阐述的本发明的描述是说明性的,并且无意于限制如所附权利要求书阐述的本发明的范围。可以基于在此阐述的描述来对在此公开的实施例做出其他变型和修改,而不背离如在所附权利要求中阐述的本发明的范围。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于片上数字反馈自校准系统的真随机数发生器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类