使用高可靠性物理不可克隆函数生成秘密信息的系统和方法与流程

文档序号:14863837发布日期:2018-07-04 09:36阅读:137来源:国知局
使用高可靠性物理不可克隆函数生成秘密信息的系统和方法与流程
本发明总体上涉及数据和设备安全领域,具体涉及用于从物理不可克隆函数(puf)生成秘密信息的方法和设备。
背景技术
:puf越来越多地用于包含秘密数据的许多电子设备中,以增强安全性并使得这种设备对于针对设备的攻击有抗性。不同类型的攻击可以从外部指向电子设备以尝试访问这样的数据,诸如边信道攻击、电迁移(诸如电力消耗、电磁辐射、操作持续时间等)、成像、故障注入等等。puf用于许多应用中,例如识别、认证和密钥生成。尽管有用于保护用于在存储器中存储秘密比特的电子设备的传统方法,但物理不可克隆函数(puf)设备的每个实例具有独特且不可预知的方式来将挑战映射到响应。puf是以这样的物理结构体现的物理实体:该物理结构在物理实体的每个物理实例中都是相同的,并且该物理结构生成特定输出,该特定输出当随着输入被提供时被称为“挑战”。具体响应的值取决于每个实例的物理微观结构的独特性。在制造过程中的微小变化和随机物理因素是不可预测和不可控制的,这使得在设备中体现的物理实体的每个实例都是独特的。具体输出之间的差异是由于在制造过程中引入的微小的工艺和材料变化而引起的。因此,puf确保给定设备的puf输出的知识不会危害其他制造的设备。puf可以被包含在集成电路(例如cmos集成电路)中。puf可以用于各种应用,例如芯片的认证,加密密钥的生成,prng的种子等等。包含puf的物理结构由至少一个随机组件组成。puf对特定挑战的响应是通过以下方式来获得的:以激励的形式将输入提交给物理系统,并将作为激励和物理系统之间的交互作用的结果而出现的行为映射到输出。puf固有地具有防篡改性质。如果攻击者试图拆解puf来观察其运行情况,则这也将扰乱puf的随机元素以及输入和输出之间的映射。通过逆向工程获得的关于puf结构的知识不会揭示puf值。puf电路的质量是一个主要的挑战。puf电路的质量可能与多种性质或度量如可靠性有关。puf的可靠性是指以确定性方式提供对于给定输入的响应的性质。由于不可靠的puf可能会意外地提供另一puf的输出并易于受到机器学习攻击,因此可以将这种性质特别地视为安全性质。已经在yoheihori,takahiroyoshida,toshihirokatashita和akashisatoh的“fpga上的判别器物理不可克隆函数的定量和统计性能评估”(quantitativeandstatisticalperformanceevaluationofarbiterphysicallyunclonablefunctionsonfpgas”,internationalconferenceonreconfigurablecomputingandfpga,ieee,2110,pp.298-303)中分析了puf性质。因此,puf的可靠性是指这样的性质:根据该性质,puf对于给定的挑战始终会生成相同的响应。特别地,基于延迟的puf对噪声和其他环境变化(如温度、电源电压和电磁干扰)非常敏感。事实上,基于延迟的puf是基于对非常细微的物理差(诸如时间差)的测量。由于噪声的原因,即使在相同的集成电路上对于相同的挑战,每次评估的输出结果也可能会略有不同。因此,这样的puf遭受低可靠性水平。因此,例如,由于环境影响和热噪声,对基于延迟的puf应用相同挑战的响应可能会有所不同。然而,在puf的大多数应用(诸如密钥生成)中,需要puf的完美可靠性。在现有的方法中,已知在puf实现中添加校正块以使puf比特可靠或仅维持可靠的比特。这种校正块基于利用表示公共词的帮助数据(也被称为“安全概略”)的纠错码(ecc)。这种方法是从称为“模糊提取器”的生物计量识别系统中得出的,如以下文献中所公开的:dodis,y.,reyzin,l.,&smith,a.(2104,5月),模糊提取器:如何根据生物特征识别和其他噪声数据来生成强大的密钥(fuzzyextractors:howtogeneratestrongkeysfrombiometricsandothernoisydata),advancesincryptology-eurocrypt2104(pp.523-521),springerberlinheidelberg。模糊提取器或密钥提取器puf也可以用来从物理微结构中提取唯一的强密码密钥。相同的唯一密钥在每次评估puf时重构。模糊提取器将重复的嘈杂的对秘密的读数转化成相同的均匀分布的密钥。为了消除噪音,模糊提取器使用初始登记阶段,取得该秘密的第一嘈杂读数,并生成非秘密的帮助数据(将在后续的读数中使用的数据)。传统上,帮助数据表示与puf相关联的公共词。在装配ic器件之后进行的登记(enrolment)阶段,帮助数据被生成一次。登记阶段对应于在受控环境内从外部向puf电路中注入秘密。在传统方法中,帮助数据是需要用ecc校正块检测和纠正潜在错误的码字。已知用于根据ecc或ecc组合的码字来构造帮助数据的各种方式。帮助数据通常通过随机地或根据特定标准(码字的总长度,等等)从纠错码中选择码字来构造。然后,执行码字级联和附加比特级联的操作,例如异或操作。现有的纠错码包括例如bch码,reed-muller码,golay码,reed-solomon码,ldpc码等。puf中使用的当前纠错技术增加了与低代码设备不兼容的复杂度级别。因此需要改进的方法和设备,以非常低的复杂度确保高可靠性的puf。技术实现要素:为了解决这些和其他问题,提供了一种用于生成秘密信息的电子系统,其包括物理不可克隆函数电路(puf),所述puf被配置为响应于应用于puf的挑战而提供所述puf的物理变量的两个值之间的差。所述系统可以被配置为在登记阶段期间应用一组挑战,并且测量由puf响应于每个挑战而提供的物理变量差,所述系统包括帮助数据生成器(2),其被配置为生成帮助数据,所述帮助数据包括一组比特,帮助数据的比特是与每个所应用的挑战相关联地生成的。帮助数据生成器可以被配置为根据由puf响应于相关联的挑战的应用而提供的物理变量差来生成每个帮助数据比特。该系统还可以包括秘密信息生成器,用于在使用阶段期间从帮助数据中提取秘密信息。在一个实施例中,帮助数据生成器可以被配置为应用至少一个比特提取函数来生成每个帮助数据比特,每个比特提取函数被配置为返回比特值并且取决于与物理变量差有关的条件。一个或多个比特提取函数的条件还可以取决于物理变量差关于至少一个可靠性阈值s的值,该系统包括阈值生成器,其用于在登记阶段期间生成至少一个可靠性阈值。特别地,可靠性阈值可以包括唯一阈值,该唯一阈值是根据针对在登记阶段期间应用的多个挑战而测量的物理变量差的概率分布来确定的。在一个实施例中,唯一可靠性阈值s可以是在登记阶段期间根据与物理变量差取严格低于负的可靠性阈值-s或严格高于所述可靠性阈值s的值的概率有关的条件来确定的,如果该概率等于预定义的概率值,则满足该条件,所述预定义的概率值严格低于一(1)。在一个实施例中,预定义的概率值可以等于0.5(1/2)。在一些实施例中,比特提取函数可以包括一个被配置如下的比特提取函数m1:-如果物理变量差严格高于负的可靠性阈值,或者严格低于唯一可靠性阈值,则返回等于一(1)的比特值;-如果物理变量差严格低于负的可靠性阈值或严格高于唯一可靠性阈值,则返回等于零(0)的比特。在一些实施例中,可靠性阈值可以包括第一可靠性阈值和第二可靠性阈值,第一可靠性阈值严格高于第二可靠性阈值,可靠性阈值严格为正;在这样的实施例中,比特提取函数可以取决于物理变量差关于第一可靠性阈值和第二可靠性阈值的值。在特定实施例中,第一可靠性阈值可以严格高于第二可靠性阈值和最大噪声电平的两倍之和。在一个实施例中,阈值生成器可以被配置为在登记阶段期间确定第一可靠性阈值,使得物理变量差取严格低于负的第一可靠性阈值或严格高于第一可靠性阈值的值的概率等于第一概率值,所述阈值生成器被配置为在所述登记阶段期间确定所述第二可靠性阈值以使得所述物理变量差取严格低于负的所述第二可靠性阈值或严格高于所述第二可靠性阈值的值的概率等于第二概率值,第一和第二概率值是正的且严格低于一(1)。在一个实施例中,可以在登记阶段期间进一步确定每个可靠性阈值以使得物理变量差取严格低于负的第一可靠性阈值或严格高于第二可靠性阈值的值的概率等于辅助概率值。辅助概率值可以是第一概率值和第二概率值之和的函数,第一概率值高于第二概率值。第一概率值和第二概率值的和可以等于一(1)。在一些实施例中,秘密信息生成器可以被配置为根据帮助数据比特的值来选择比特提取函数中的一个,并且应用所选择的比特提取函数来生成密钥比特。还提供了一种使用物理不可克隆函数(puf)电路来生成秘密信息的方法,所述puf电路被配置为响应于应用于所述puf的挑战而提供所述puf的两个路径之间的物理变量差。该方法包括在登记阶段期间应用一组挑战,并且测量由puf响应于每个挑战而提供的物理变量差,该方法包括:生成帮助数据,帮助数据包括一组比特,帮助数据的比特是与每个所应用的挑战相关联地生成的,生成帮助数据的步骤包括根据由puf响应于所述相关联的挑战的应用而测量的所述物理变量差来生成每个帮助数据比特,所述方法还包括从所述帮助数据中提取秘密信息。本发明的实施例还提供用于生成秘密信息的电子系统,其包括物理不可克隆函数(puf)电路,所述puf电路被配置为响应于应用于puf电路的挑战而提供puf的物理变量的两个值之间的差。系统可以被配置为在登记阶段期间应用一组挑战,并且测量由puf响应于每个挑战而提供的物理变量差。该系统可以包括被配置为生成包括一组比特的帮助数据的帮助数据生成器,帮助数据的比特是与每个所应用的挑战相关联地生成的,帮助数据生成器被配置为根据由puf响应于相关联的挑战的应用而提供的物理变量差来生成每个帮助数据比特。帮助数据生成器可以包括比特提取函数选择器,该比特提取函数选择器被配置为在至少第一比特提取函数和第二比特提取函数当中选择比特提取函数,该选择取决于物理变量差的值以及至少一个可靠性阈值来执行,所述帮助数据生成器被配置为应用所述选择的比特提取函数来生成每个帮助数据比特。该系统还可以包括秘密信息生成器,用于在使用阶段期间从帮助数据中提取秘密信息。每个比特提取函数可以被配置为取决于与物理变量差有关的条件来返回比特值。至少一个比特提取函数的条件可以取决于物理变量差关于至少一个可靠性阈值的值。在其中可靠性阈值包括唯一可靠性阈值的实施例中,比特提取函数选择器(20)可以被配置为选择:-第一比特提取函数,如果物理变量差位于以负的可靠性阈值为中心的第一区间中或位于以可靠性阈值为中心的第二区间中,-第二比特提取函数,如果物理变量差位于以零为中心的第三区间中,第一、第二和第三区间的范围等于最大噪声电平的两倍。第一比特提取函数(21)的条件取决于物理变量差的符号,并且第二比特提取函数的条件与物理变量差关于唯一可靠性阈值(s)的值相关。第一比特提取函数可以被配置为:-如果物理变量差严格为正,则返回等于1的比特;-如果物理变量差为负或为零,则返回等于零的比特。第二比特提取函数可以被配置为:-如果物理变量差严格高于负的可靠性阈值或严格低于可靠性阈值,则返回等于1的比特值;-如果物理变量差严格低于负的可靠性阈值或严格高于可靠性阈值,则返回等于零的比特。在可靠性阈值包括第一可靠性阈值和第二可靠性阈值的实施例中,第一可靠性阈值严格高于第二可靠性阈值,可靠性阈值严格为正,比特提取函数选择器可以被配置为选择:-第一比特提取函数,如果物理变量差位于以负的第二可靠性阈值为中心的第一区间中或位于以第一可靠性阈值为中心的第二区间中,-第二比特提取函数,如果物理变量差位于以负的第一可靠性阈值为中心的第三区间中或位于以第二可靠性阈值为中心的第四区间中,第一、第二、第三和第四区间的范围等于最大噪声电平的两倍。第一可靠性阈值可以严格高于第二可靠性阈值与最大噪声电平的两倍之和。每个比特提取函数的条件可以取决于物理变量差关于第一可靠性阈值和第二可靠性阈值的值。在使用两个可靠性阈值的实施例中,第一比特提取函数可以被配置为:-如果物理变量差严格地大于负的第一可靠性阈值并且低于负的第二可靠性阈值,则返回等于1的比特;-否则返回等于零的比特。第二比特提取函数可以被配置为:-如果物理变量差严格地大于负的第二可靠性阈值且低于第一可靠性阈值,则返回等于1的比特;-否则返回等于零的比特。秘密信息生成器可以被配置为根据帮助数据比特的值来选择比特提取函数中的一个,并且应用所选择的比特提取函数来生成密钥比特。还提供了一种使用物理不可克隆函数(puf)电路来生成秘密信息的方法,所述puf电路被配置为响应于应用到所述puf电路的挑战而提供在所述puf的两个路径之间的物理变量差。该方法可以包括在登记阶段期间应用一组挑战,并且测量由puf响应于每个挑战而提供的物理变量差。该方法可以进一步包括:-生成包括一组比特的帮助数据,所述帮助数据的比特是与每个所应用的挑战相关联地生成的,所述生成帮助数据的步骤包括根据由所述puf响应于相关联的挑战的应用而测量的物理变量差来生成每个帮助数据比特,其中生成帮助数据的步骤包括:-在至少第一比特提取函数和第二比特提取函数中选择比特提取函数,所述选择取决于所述物理变量差的值以及至少一个可靠性阈值来执行,所选择的比特提取函数被应用以生成每个帮助数据比特,该方法还包括在使用阶段期间从帮助数据中提取秘密信息。因此,本发明的实施例允许生成帮助数据,该帮助数据确保基于延迟的puf的所有输出比特都是可靠的,从而提供高度可靠的puf,而不需要校正机制。附图说明现在将参照附图通过举例的方式来描述本发明的实施例,在附图中相同的附图标记表示类似的元件,并且其中:-图1表示根据某些实施例的包括基于延迟的物理不可克隆函数(puf)电路的用于生成秘密信息的电子系统;-图2示出了根据某些实施例的帮助数据生成器的结构;-图3示出了表示在puf处测量的时间差的概率分布的三个图,并且示出了根据某些实施例的比特提取函数的选择;-图4示出了根据另一个实施例的表示puf物理输出的分布的三个图;-图5表示根据一个实施例的用于利用动态更新可靠性阈值生成秘密信息的电子系统;-图6示出了根据某些实施例的表示在puf处测量的时间差的概率分布的图;-图7描绘了根据某些实施例的帮助数据生成方法的初步阶段;-图8是根据某些实施例的帮助数据生成方法的流程图;-图9是根据某些实施例的描绘帮助数据比特确定的流程图;-图10描绘了根据一个实施例的在登记阶段期间实现的比特提取选择;-图11描绘了在登记阶段期间应用第一选择提取方法的步骤;-图12描绘了针对当前挑战应用第二选择提取方法的步骤;-图13描绘了根据一个实施例的在使用阶段期间实现的密钥生成方法;-图14描绘了根据另一个实施例的密钥提取方法的初步阶段;-图15描绘根据图14的实施例的在使用阶段期间实现的密钥生成方法;-图16是示出根据图14的实施例的确定可靠性阈值的步骤的流程图;-图17是描绘根据某些实施例的密钥比特确定步骤的流程图;-图18示出了密钥生成的示例;且-图19示出了根据另一个实施例的用于生成秘密信息的电子系统。具体实施方式本发明的实施例提供一种包括物理不可克隆函数(puf)电路的用于生成秘密信息的电子系统,所述puf电路被配置为响应于应用于所述puf的挑战而提供所述puf的物理变量的两个值之间的差,所述系统被配置为在登记阶段期间应用一组挑战,并且测量由puf响应于每个挑战而提供的物理变量差。该系统可以包括帮助数据生成器,其被配置为生成包括一组比特的帮助数据,帮助数据的比特是与每个所应用的挑战相关联地生成的。帮助数据生成器可以被配置为根据由puf响应于相关联的挑战的应用而提供的物理变量差来生成每个帮助数据比特。在一个实施例中,该系统可以包括秘密信息生成器,用于从帮助数据中提取秘密信息。在一个实施例中,该系统可以包括秘密信息生成器,该秘密信息生成器被配置为在使用阶段期间生成包括至少一个比特的秘密密钥,该密钥的每个比特是通过应用在该组挑战当中的一个挑战而生成的,秘密信息生成器被配置为根据与所应用的挑战相对应的帮助数据比特以及根据由puf响应于所应用的挑战而提供的物理变量差来确定密钥的每个比特。在另一替代或补充实施例中,帮助数据生成器可以包括比特提取函数选择器,被配置为在至少第一比特提取函数和第二比特提取函数当中选择比特提取函数,该选择是取决于物理变量差的值以及至少一个可靠性阈值来执行的,帮助数据生成器被配置为应用所选择的比特提取函数来生成每个帮助数据比特。在这样的实施例中,系统可以进一步包括秘密信息生成器,用于在使用阶段期间从帮助数据中提取秘密信息。每个比特提取函数可以被配置为取决于与物理变量差有关的条件来返回比特值。至少一个比特提取函数的条件可以取决于物理变量差关于至少一个可靠性阈值的值。可靠性阈值可以根据针对在登记阶段期间应用的多个挑战而测量的物理变量差的概率分布来确定。参考图1,示出了用于可靠地从puf10生成秘密信息的电子系统100。puf10可以在电子系统100中实现。电子系统100可以被实现为包括集成电路(ic)和/或诸如现场可编程门阵列(fpga)、微处理器、数字信号处理器(dsp)等的可编程逻辑的电子电路设备。在本发明的一个应用中,从puf10生成的秘密信息可以是包括一组比特的密码密钥。在这样的应用中,每当系统需要密钥,就从puf生成密钥。puf10被配置为当用某个输入(被称为“挑战”)查询时生成可测量的输出(称为“响应”)。应该指出的是,puf本身不是数学意义上的“函数”。事实上,对puf的挑战可能有多于一种可能的响应。然而,针对给定挑战的可能答案的数量是有限的,并且对于高可靠性的puf来说,期望地仅等于一。puf指定由特定(物理)系统执行或作用于特定(物理)系统的过程。由应用的挑战和相对应的测量的响应形成的一对被称为“挑战-响应对”,或“crp”。由特定puf10生成的挑战与响应之间的关系被称为该puf的crp行为。应用于puf10的挑战序列和作为应用每个挑战的结果而获得的响应包括比特串(bitstring)的序列。在一些实施例中,解码和量化步骤可以被应用于模拟物理激励作为挑战,并且从对由此获得的模拟效果的测量得到响应。获得特定puf对特定挑战的响应而不访问特定puf所基于的特定物理系统是不可行的。puf因此实现一组挑战-响应对(crp),使得独立的在逻辑上相同的设备生成不同的crp,这即使对于设计者也是不可预知的。换句话说,挑战-响应对crp被耦合到唯一的物理设备(因此,puf的“不可克隆”性质)。因此,puf函数允许使用其固有的物理属性来识别对象。应用于puf10的每个挑战包括一组比特(或“比特串”)。一个挑战可以用一个比特矢量表示。为了生成p比特密码密钥,至少应用了p个挑战,每个挑战用于生成密码密钥的一个比特。puf10可以是被配置为响应于应用于puf电路的挑战而提供puf的物理变量的两个值之间的差的任何类型的puf。物理变量表示诸如光相关量、电压、延迟等物理量。由puf测量的物理变量差可以是特定于puf的类型的。在一些实施例中,物理变量可以是延迟,puf10提供puf的两个路径之间的延迟差(以下也称为“时间差”),这两个路径各自对应于:-puf的两个相同的路径,物理变量差则被定义为在第一路径的输出处测量的时间与在第二路径的输出处测量的时间之间的差;或者-puf的同一路径的两种配置,物理变量差被定义为以下之间的差:·在路径的输出处测量的时间,如根据第一配置所配置的那样,以及·在路径的输出处测量的时间,如根据第二配置所配置的那样。适合于测量延迟差的puf包括诸如仲裁器puf、环形振荡器puf、环形puf之类的基于延迟的puf(也称为“延迟本征puf”)。基于延迟的puf是嵌入在集成电路(ic)器件上的数字本征puf(也称为“硅puf”),其基于由规则数字基元形成的构建块。基于延迟的puf基于数字延迟测量。嵌入基于延迟的puf的ic器件100可以在没有外部仪器的情况下查询和读出puf。在基于延迟的puf中,优选地在设备内计算挑战和响应。基于延迟的puf能够接受许多挑战。例如,在基于延迟的puf中,延迟由挑战比特来控制,从而提供了大量的挑战组合。更具体地,基于延迟的puf可以被实现为包括至少一对结构相同/对称的子电路(包括逻辑和互连)的电路,并且测量两个子电路的输出之间的任何延迟差。例如,仲裁器puf可以是具有多比特输入x的电路,并且基于由两个相同的子电路定义的两个路径之间的相对延迟差来计算1比特输出y。输入比特通过控制puf电路的组件来确定延迟路径。该电路可以为每个输入x创建一对延迟路径。为了评估特定输入的输出,向两个路径同时给定上升信号,信号通过两个延迟路径竞争,并且处理块处理来自每个路径的信号来导出puf输出y。基于延迟的puf的两个对称子电路中的每一个可以包括一组块,该组块中的至少一些块由应用于puf的挑战的比特来控制。在诸如仲裁器puf的某些类型的基于延迟的puf中,puf元素是相同的,并且puf块的数量等于在挑战中包括的比特的数量(挑战的每个比特与puf块相关联,该比特作为控制比特被输入到对应的puf块)。给定具有n比特(c=c1…ci…cn)的输入挑战c,在基于延迟的puf中建立竞争条件。两个信号沿由所应用的挑战配置的puf电路的两条路径传播(两条路径对应于两个对称/相同的子电路)。两个信号被比较,以确定哪一个先来(竞争条件)。诸如锁存器之类的仲裁器块取决于在仲裁器块输入处首先到达的信号生成一比特响应。两个信号(通常是顶部信号和底部信号)通过至少一个延迟级被馈送,每个级对应于一个puf块。puf块的激活或操作由挑战c(c=c1c2…cn)的比特ci控制。每个挑战对应于延迟路径的不同配置。挑战的比特控制相似的puf元件(例如,用于仲裁器puf(apuf),环形振荡器puf(ropuf)或蝶形puf(bpuf)的开关盒)。例如,环形振荡器puf,挑战控制第i个环形振荡器(以特定频率振荡的延迟环路)的激活,puf挑战致使了对竞争信号的两个路径进行限定的两个环形振荡器的选择。在基于延迟的puf中,为了生成一比特响应,通过应用至少一个挑战来测量时间微分变量。基于延迟的puf的两个子电路具有相同的布局,使得从两个子电路发出的两个信号之间的延迟差主要取决于工艺变化。每个级k的延迟差对应于响应于所应用的挑战c的顶部信号和底部信号之间的延迟差。给定挑战c=c1,...cn的总延迟差δdc对应于为每个级计算的各个延迟的总和。两个信号之间的最终时间差是最后一级n之后的时间差,并且由puf输出的响应比特r是取决于总时间差的符号来定义的。在基于延迟的puf的输出处测量的延迟差(通常以皮秒计)通常近似为高斯分布。当发生诸如电源电压变化等环境变化时,在传统的基于延迟的puf中,响应比特可能翻转,从而影响puf的可靠性。根据本发明的各种实施例,电子系统100被配置为根据由puf10测量的量差来生成帮助数据,该帮助数据可用于生成高度可靠的秘密信息,诸如高度可靠的秘密密钥比特。特别地,帮助数据的比特指示可靠的密钥比特。本发明的某些实施例的以下描述仅出于说明的目的将参照基于延迟的puf来进行,基于延迟的puf测量两个路径(对应于puf的两个不同且同样的路径,或到同一路径的两个配置)之间的延迟差,帮助数据是根据这样的延迟差(以下称为“delta值”)生成的。如本文所使用的,术语“可靠性”是指puf的性质,根据该性质,无论环境因素和热噪声如何,puf10将总是针对给定的挑战生成相同的响应。可靠性可以通过误码率来表示,误码表示预期响应和输出响应之间的差异。为了生成密码密钥的每一比特,根据本发明的某些实施例的电子系统100可以按照两个阶段进行操作:-在登记阶段,创建一组p个挑战-响应对crp(p个挑战在下文中被称为p个登记挑战,p至少等于1)。然后,通过应用该p个挑战来生成包括至少p个比特的帮助数据,每个挑战被用于生成帮助数据的一个比特。对于每个挑战,响应于所应用的挑战而在puf输出处获得的延迟差(“delta值”)被测量,并且使用至少一个可靠性阈值来根据delta值确定帮助数据比特。这样获得的这组挑战和帮助数据可以被存储在例如本地非易失性存储器中或外部服务器中。-在使用阶段中,可以通过应用p个登记的挑战来提取p比特密码密钥;对于每个登记的挑战,可以根据与所应用的挑战相对应的帮助数据比特以及根据由puf响应于在使用阶段期间应用的挑战而输出的延迟差(“delta”值)来确定密钥比特,而不要求一定使用纠错。系统100可以被配置为应用至少一个比特提取函数来生成每个帮助数据比特,每个比特提取函数被配置为根据与物理变量差有关的条件来返回比特值。在某些实施例中,每个帮助数据比特和每个密码密钥的生成可以取决于从至少两个提取函数中选择比特提取函数,比特提取函数的选择是根据针对(在针对帮助数据比特生成的登记阶段期间以及在针对密码密钥比特的使用阶段期间)所应用的挑战而获得的delta值来确定的。每个比特提取函数取决于与在所考虑的阶段(登记阶段或使用阶段)中测量的delta值有关的条件来提供比特值。帮助数据比特可以被生成,使得每个比特值指示被用于生成帮助数据比特的比特提取函数,这样的信息可用于生成秘密信息。结果,这样生成的帮助数据不能揭示任何关于秘密密钥的信息。它进一步确保每次得出密钥时,密钥将保持不变。本发明的实施例不限于密钥生成,并且涵盖了其中使用帮助数据的所有密码应用。在本发明的其它应用中,根据delta变量值生成的帮助数据例如可以用于认证,密钥存储,防篡改,拷贝保护(其中从puf获得内容密钥)等。下面将仅参考用于说明目的的密钥生成进行描述。在一个实施例中,如图1所示,电子系统100可以包括帮助数据生成器2。帮助数据生成器2可以根据由puf10提供的delta值来生成帮助数据。帮助数据生成器2可以被配置为生成包括一组比特的帮助数据,帮助数据的比特是与每个所应用的挑战相关联地生成的。帮助数据生成器2可以被配置为根据响应于应用相关联的挑战而由puf提供的物理变量差(delta值)中生成每个帮助数据比特。系统100还可以包括秘密信息提取器3,其被配置为提取秘密信息。在密钥生成的一个可能的应用中,可以提供秘密信息提取器以从在登记阶段期间生成的帮助数据中提取秘密密钥比特。在一个实施例中,可以在登记阶段期间使用与用于生成对应的帮助数据比特的比特提取函数相同的比特提取函数来从帮助数据中提取秘密密钥比特。这样生成的密码密钥可以在各种密码应用中使用。在图1的示例中,电子系统100可以包括密码设备4(本领域中也称为“密码引擎”),其接收从帮助数据生成的密码密钥作为输入。密码设备4可以将密钥用于例如认证应用。帮助数据生成器2可以包括比特提取函数选择器20,该比特提取函数选择器20被配置为根据物理变量差的值和至少一个可靠性阈值(s,s1,s2)来从至少第一比特提取函数21和第二比特提取函数22中选择比特提取函数。比特提取函数选择器20可以被配置为在至少两个比特提取函数21(也被称为“m1”)和22(也被称为“m2”)当中选择一个比特提取函数,所选择的比特提取函数用于在登记阶段期间取决于与所应用的挑战对应的delta值的值来与所应用的挑战相关联地生成帮助数据比特。在某些实施例中,比特提取函数选择器20可以被配置为根据与物理变量差有关的条件来选择比特提取函数中的一个。例如在一个实施例中,比特提取函数选择器20可以被配置为选择:-第一比特提取函数,如果物理变量差位于至少一个小的预定义区间中,每个区间以给定值为中心(物理变量差因此接近给定值),–第二比特提取函数,如果物理变量差位于以从一个或多个可靠性阈值导出的另一给定值为中心的至少一个小的预定义区间中(物理变量差如此接近从可靠性阈值(一个或多个)导出的给定值)。在一些实施例中,可以使用一个可靠性阈值s根据delta值确定每个帮助数据比特。可以将可靠性阈值s选择为高于或等于n(s>2n),n指定最大噪声电平。假定对于给定的delta值,噪声存在于区间[delta–n,delta+n]中。第一比特提取函数21可以根据与物理变量差的符号相关的条件来提供比特值。第二比特提取函数22可以根据与物理变量差关于可靠性阈值s的值相关的另一条件来提供比特值。在这样的实施例中,选择器20可以被配置为通过测试与delta值的值和可靠性阈值s相关的条件来在第一比特提取函数m1(21)和第二比特提取函数m2(22)当中选择一个比特提取函数。更具体地,选择器20可以被配置为选择:-第一比特提取函数m1(21),如果delta的值接近于-s或s(即,如果delta值位于以负的可靠性阈值-s为中心的第一小区间中,或者位于以可靠性阈值s为中心的第二小区间内),这相当于是否将delta值包括在区间[-s-n,-s+n]或[s-n,s+n]中;-第二比特提取函数m2(22),如果delta的值接近零(即,如果delta值位于以0为中心的第三小区间中),换句话说,如果delta值在区间[-n,n]中(即第一区间和第二区间的范围等于最大噪声电平的两倍2n)。否则(如果delta值在上述所有区间之外),可以(例如随机地)选择比特提取函数m1和m2中的一个。如本文所使用的,如果delta值位于指定值附近的范围[-n,n]中,则说delta值“接近”指定值,n表示最大噪声电平。每个比特提取函数m1或m2提供一个比特,作为delta变量值的函数。在一个实施例中,如图3所示,第一比特提取函数m1可以根据delta变量的符号返回比特值。第二比特提取函数m2可以根据delta变量关于可靠性阈值s的值而返回比特值。具体地,可以通过关于-s和s来测试与delta值有关的条件来确定比特值。在这样的实施例中,第一比特提取函数m1(21)可以被定义为使得:-如果delta值严格为正(delta>0),则提取的比特bi的值被设置为1(bi=1)。-否则,如果delta值为负值或为零(delta≤0),则将比特bi的值设置为值零(bi=0)。此外,第二比特提取函数m2(22)可以被定义为使得:-如果delta值小于-s(即严格低于-s)或大于s(即,严格高于s),则提取的比特bi的值被设置为零(bi=0):delta<-s或delta>s;-否则,如果delta值包含在区间[-s,s]中,则提取的比特bi的值被设置为值1(bi=1)。与通常使用作为码字的帮助数据的传统模糊提取和基于用于纠错码的解码器的密钥提取相比,根据某些实施例,利用m1获得的帮助数据比特不涉及密钥提取的复杂度,因为足够考虑在帮助数据的“1”处的比特。然而,借助于由第一比特提取函数m1生成的帮助数据提取的密钥比特的数量可能不是恒定的,因为可靠比特的数量可能取决于制造过程并且因此可能是不可预测的。根据某些实施例,秘密信息提取器3通过使用利用比特提取函数m1和m2生成的帮助数据来克服该情况。在使用阶段期间,可以应用p个登记的挑战,这为每个挑战提供了delta值。对于所应用的每个挑战,秘密信息提取器3可以使用辅助比特提取函数30,该辅助比特提取函数30被配置为在使用阶段期间读取与所应用的挑战对应的帮助数据比特,并且取决于读取值从帮助数据比特中确定要应用的比特提取函数。如果帮助数据比特的值是“0”,则使用在使用阶段期间针对挑战所测量的delta值来应用第一比特提取函数m1(21)以生成与该挑战相对应的密钥比特。否则,如果帮助数据比特的值是'1',则使用在挑战阶段期间针对挑战测量的delta值来应用第二比特提取函数m2(22)以生成与该挑战对应的密钥比特。在一些实施例中,帮助数据生成器可以包括可靠性阈值生成器5,用于根据响应于登记的挑战的应用而测得的delta值的概率分布来选择登记阶段中的可靠性阈值s。具体地,可靠性阈值生成器可以在登记阶段期间从与物理变量差取严格低于负的可靠性阈值-s或严格高于所述可靠性阈值s的值的概率(prob(delta<-s或delta>s))相关的条件来确定可靠性阈值s,如果该概率等于预定义的概率值pt,则该条件得到满足,所述预定义的概率值严格低于1(pt<1)。这种情况由公式(1)定义:prob(delta<-s或delta>s)=pt(1)因此,可以确定可靠性阈值s以使得delta值取严格低于-s(负s)或严格高于s的值的概率等于预定义概率值pt。在一个实施例中,可以在0.5(1/2)附近选择预定义概率值pt。具体地,预定义的概率值pt可以被设置为1/2(0.5)。以下对一些实施例的描述主要参照等于1/2的预定义概率值pt来进行,但是技术人员将容易地理解可以选择其他值。然后可以确定阈值s,使得delta值取严格低于-s或严格高于s的值的概率等于1/2:prob(delta<-s或delta>s)=1/2(2)这对应于delta分布的标准偏差sigma的值0.67449。因此s可以被确定为因子0.67449与sigma的乘积。可选地,满足条件(1)的可靠性阈值可被预先计算并输入到帮助数据生成器2。因此,帮助数据生成器4允许在登记阶段期间选择最佳比特提取函数,而不需要复杂的硬件实现,并相应地生成可靠的密钥比特。图3显示了代表puf物理输出分布的三个图a,b和c。y轴表示具有特定delta变量值的概率(概率分布函数pdf),并且x轴表示delta变量值。图a说明了由第一比特提取函数分配的比特值作为delta变量的函数。图b图示了由第二比特提取函数分配的比特值作为delta变量和可靠性阈值的函数。图c图示了根据本发明的一些实施例的在m1和m2当中选择比特提取函数。在一个实施例中,如图3所示,基于延迟的puf的分布遵循居中正态律(近似高斯)。图3的图考虑了delta变量和噪声的分布。对于高可靠性的puf,希望标记为黑色的中心区域尽可能窄,因为该区域对应于更不可靠的数据(“不可靠数据”)。在图3的示例中,阈值s的选择位置被确定为使得delta值取严格低于-s或严格高于s的值的概率等于1/2,根据公式(1):prob(delta<-s或delta>s)=1/2。如图3的图c所示:-如果delta值接近零0(包含在[-n,n]中),则使用提取器m2(22);-如果delta值接近于-s或s(包含在[-n-s,-s+n]或[-n+s,s+n]中),则使用提取器m1(21);否则,可以随机使用比特提取函数m1和m2中的一个。如这个例子所示,总是有一个比特提取函数m1或m2,它允许离不可靠区域(图3中用黑色标出的中心窄区域)足够远。在这样的示例中,这保证了帮助数据生成器2传送的比特的可靠性。由于关系式prob(delta<-s或delta>s)=1/2被满足,这样获得的帮助数据不提供关于密钥比特的任何信息。换句话说,这意味着在已知帮助数据比特的情况下密钥比特取值等于'1'(一)的概率等于在已知帮助数据比特的情况下密钥比特取值等于'0'(零)的概率,两个概率函数都等于1/2:prob(帮助比特已知,比特='1')=prob(帮助比特已知,比特='0')=1/2(3)本发明的一个优点是针对攻击具有鲁棒性。如果攻击者修改了帮助数据,他将无法取回任何信息。在一个可选实施例中,可以使用包括第一可靠性阈值s1和第二可靠性阈值s2的一对可靠性阈值,来根据delta值确定每个帮助数据比特。可靠性阈值s1和s2可以使得第一可靠性阈值s1严格高于s2+2n(s1>s2+2n),其中n表示最大噪声电平。假定对于给定的delta值,噪声存在于区间[delta–n,delta+n]中。在这样的实施例中,选择器20可以被配置为通过测试与delta值的值和可靠性阈值(s1,s2)相关的条件来从第一比特提取函数m'1(21)和第二比特提取函数m'2(22)中选择一个比特提取函数。每个比特提取函数21,22可以取决于与物理变量差的关于从第一和第二可靠性阈值s1和s2导出的值的值相关的另一条件来提供比特值。更具体地说,选择器20可以被配置为选择:-第一比特提取函数m'1(21),如果delta(物理变量差)的值接近于-s2或s1(即,如果delta值位于以负的第二可靠性阈值-s2为中心的第一小区间中或在以第一可靠性阈值s1为中心的第二小区间中);如果delta值被包括在区间[-s2-n,-s2+n]或[s1-n,s1+n]中(即,第一和第二区间的范围等于最大噪声电平的两倍(2n)),则认为delta的值接近于-s2或s1。–第二比特提取函数m'2(22),如果delta的值接近于-s1或s2(即,如果delta值位于以负的第一可靠性阈值-s1为中心的第三小区间中,或者位于以第二可靠性阈值s2为中心的第四小区间中);如果delta值包括在区间[-s1-n,-s1+n]或[s2-n,s2+n]中(即,第三区间和第四区间的范围等于最大噪声电平的两倍(2n)),则认为delta的值接近于-s1或s2。否则,如果delta值在区间[-s2-n,-s2+n],[s1-n,s1+n],[-s1-n,-s1+n]和[s2-n,s2+n]之外时,选择器20可以被配置为(例如随机地)选择比特提取函数m'1和m'2中的任何一个。每个比特提取函数m'1或m'2提供一个比特作为delta变量值的函数。在使用一对可靠性阈值的这样的实施例中,可以定义第一比特提取函数m'1(21),使得:-如果delta值严格高于负的第一阈值-s1且低于负的第二阈值-s2,其中s1>s2>0,则提取的比特bi的值被设置为1(bi=1)。-否则,比特bi被设置为零(bi=0)。第二比特提取函数m'2(22)可以被定义为使得:-如果delta值严格高于负的第二阈值-s2并且低于第一阈值s1,s1>s2>0;则提取的比特bi的值被设置为1(bi=1);-否则,比特bi被设置为值零(bi=0)。可靠性阈值生成器5(图2中所示)可以被配置为根据响应于登记的挑战的应用而测量的delta值的概率分布来选择登记阶段中的第一和第二可靠性阈值s1和s2。特别地,可靠性阈值生成器5可以确定每个阈值si以使得delta值取严格低于-si或严格高于si的值的概率等于预定义概率值pti。预定的概率值pti可以严格低于1。因此,可以定义第一阈值s1(i=1),使得delta值取严格低于-s1或严格高于s1的值的概率等于第一预定义概率值pt1(pt1严格低于1:prob(delta<-s1或delta>s1)=pt1(4)类似地,可以定义第二阈值s2(i=2)以使得delta值取严格低于-s2或严格高于s2的值的概率等于严格低于1的第二预定义概率值pt2:prob(delta<-s2或delta>s2)=pt2(5)此外,在一些实施例中,可以进一步确定第一阈值和第二阈值,使得delta值取严格低于-s1或严格高于s2的值的概率等于严格低于1的辅助概率值pt12:prob(delta<-s1或delta>s2)=pt12(6)在一些实施例中,辅助概率值是第一概率值和第二概率值之和的函数,第一概率值高于第二概率值。在一些实施例中,概率值pt1,pt2和pt12可以满足:在一个实施例中,预定义概率值pt12可以被设置为1/2,并且pt1+pt2因此满足pt1+pt2=1。然后可以确定阈值s1和s2以使得delta值的值严格低于-s1或严格高于s2的概率等于:(prob(delta<-s1或delta>s2)=1/2(8)或者,可以预先计算满足条件1的两个可靠性阈值s1和s2并将其输入到帮助数据生成器2。因此,帮助数据生成器2允许在登记阶段选择最佳比特提取函数,而不需要复杂的硬件,并相应地生成可靠的密钥比特。图4显示了代表puf物理输出分布的三个图a,b和c。y轴表示具有特定delta变量值的概率,x轴表示delta变量值。图a说明了由第一比特提取函数m'1分配的比特值作为delta变量的函数。图b说明了由第二比特提取函数m'2分配的比特值作为delta变量和可靠性阈值的函数。图c示出了根据本发明实施例的在m'1和m'2当中选择比特提取函数。如图4所示,基于延迟的puf的分布被表示为居中正态律(近似高斯)。在图4的示例中,阈值s1和s2的位置由delta值取严格低于-s1或严格高于s2的值的概率确定,该概率等于:prob(delta<-s1或delta>s2)=1/2(9)如图4的图c所示:-如果delta值接近-s1或s2(包含在-s1或s2周围的+/-n区间中),则使用提取器m'2(22);-如果delta值接近-s2或s1(包含在-s2或s1周围的+/-n区间中),则使用提取器m'1(21);否则,可以随机使用比特提取函数m'1和m'2中的一个。因此,在这个实施例中,总是有一个允许远离不可靠区域的比特提取函数21或22,从而确保帮助数据比特的可靠性。如果满足条件prob(delta<-s1或delta>s2)=1/2,则由此获得的帮助数据不提供关于密钥比特的任何信息。换句话说,这意味着,在已知帮助数据比特的情况下密钥比特取值“1”的概率等于在已知帮助数据比特的情况下密钥比特取值“0”的概率,根据公式(3)两者都是等于1/2:prob(帮助比特已知,比特='1')=prob(帮助比特已知,比特='0')=1/2因此,在这样的实施例中,如果攻击者试图修改帮助数据,他将不能取回与该密钥相关的任何信息。以下对某些实施例的描述将参考使用如图3中所示的唯一可靠性阈值s和比特提取函数m1和m2的实施例来进行,仅用于说明的目的。然而,技术人员将容易理解,本发明适用于其他实施例。图5描绘了根据另一实施例的用于在puf的登记阶段期间同时考虑到环境变化来生成帮助数据的电子系统100。基于延迟的puf的环境变化(诸如温度或电源电压变化的环境因素)可能导致阈值s的变化。为了避免环境变化对阈值s的影响(其会进而影响puf的可靠性),密钥提取器3还可以包括用于在使用阶段期间动态地校正阈值s的辅助可靠性阈值生成器32。可靠性阈值校正器32可以被配置为使用表示当前阈值的参考阈值sref和参考时间(tref)来更新阈值s的值。参考值tref和sref可以在登记阶段生成。参考时间tref表示可以用给定且公共的参考挑战(例如挑战等于0)来获得的延迟链的特定时间。参考阈值sref可以通过计算delta分布的标准偏差sigma来确定。为了满足依据(prob(delta<-sordelta>s)=pt)的性质,其中pt例如等于1/2,阈值sref可以基本上等于sigma与低于一的选定因子的乘积。因为环境对tref,sref和delta的影响是相同的,所以选定的因子优选地等于0.6745(因此sref=0.6745sigma)。在某些实施例中,帮助数据生成器4可以将参考阈值sref和参考时间tref插入登记阶段期间生成的帮助数据中。在这样的实施例中,帮助数据可以包括两个比特部分的级联:-第一部分,其包括由帮助数据生成器使用比特提取函数m1/m2生成的p个帮助数据比特,-包括参考值sref和tref的第二部分。这样,参考值被嵌入到帮助数据中。可替代地,可以使用存储设备5中的数据结构来将帮助数据与参考值相关联地存储。这样的数据结构可以包括用于每个条目的三元组值,包括:-帮助数据比特,-参考阈值(sref),以及-参考时间(tref)。在这样的实施例中,帮助数据因此嵌入(或关联于)进行测量的参考时间tref,并且间接地嵌入(或关联于)频率值。如果出现新的条件,例如对于温度或电压,并影响参考条件,检测到的变化可以动态地应用到s。更具体地,辅助阈值生成器32可以通过对可靠性阈值sref应用校正因子来确定每个使用阶段的可靠性阈值s的值。校正因子可以取决于测量的时间tmeas,其表示在使用阶段利用公共参考挑战测量的时间,以及取决于包含在帮助数据中的绝对参考时间tref。在一些实施例中,可以通过比率tmeas/tref来定义校正因子,其中tmeas表示针对与参考时间tref相同的参考挑战测量的时间。可靠性阈值s可以如下确定:为了避免对帮助数据的攻击,在一些实施例中,可以对参考参数sref和tref进行编码。在一个实施例中,参考参数sref和tref可以通过应用异或运算来与使用第一比特提取函数m1(21)获得的密钥比特进行级联。由于比特提取函数m1与可靠性s无关,所以可以通过将参考值sref和tref与使用第一比特提取函数m1获得的密钥比特进行异或来解码参考值sref和tref。在另一个实施例中,辅助可靠性阈值生成器32可以使用针对在使用阶段期间应用的p个挑战测量的delta值的概率分布来确定使用阶段中的可靠性阈值。在这样的实施例中,帮助数据可以仅包括利用比特提取函数m1/m2生成的帮助数据比特,而不嵌入参考值sref和tref。为了限制环境变化对puf的影响,在一个实施例中,可以在每个使用阶段计算阈值s,使得delta变量的绝对值取大于阈值s的值的概率等于低于一的预定义概率值pt':prob(|delta|>s)=pt′(11)在优选实施例中,预定义概率值pt'等于1/2。这个可靠性阈值s可以由以下确定:-计算与对于在使用阶段期间应用的p个挑战测量的delta值相对应的delta分布的标准偏差sigma,-通过将sigma乘以低于1的选定因子来确定s;在一个示例性实施例中,所选定的因子可以有利地等于0.6745(s=0.6745sigma)以满足关于delta的概率条件,特别是prob(delta<-s或delta>s)=1/2,根据公式(1)。应该注意的是,在使用两个阈值s1和s2的实施例中,概率条件可以是公式(9)的条件:prob(delta<-s1或delta>s2)=1/2本发明的这样的实施例确保了帮助数据(公共数据)和秘密密钥比特之间不存在依赖关系。虽然生成的帮助程序数据确保了高可靠性的puf,但是它们因此阻止了对秘密密钥的访问。本发明不要求一定使用纠错来生成帮助数据。图6显示了说明puf物理输出的概率分布的图。y轴表示具有特定delta变量值的概率(概率分布函数pdf),而x轴表示delta变量值。在图6中:-区域1对应于prob(比特=0|m1或m2);-区域2对应于prob(比特=0|m1);-区域3对应于prob(比特=0或1|m1orm2);-区域4对应于prob(比特=1|m2);-区域5对应于prob(比特=1|m1或m2);-区域6对应于prob(比特=1|m1);-区域7对应于prob(比特=0或1|m1或m2)。如本文所使用的,已知提取器mi被使用(其中i=1或2),prob(比特=val|mi)指的是密钥比特等于值val的概率。如图6所示,任何提取器m1或m2中具有任何比特值“0”或“1”的概率基本上等于1/2。本发明的一些实施例允许在登记阶段期间选择最佳提取方法,而不需要与现有技术解决方案不同的复杂硬件。图7描绘了根据某些实施例的帮助数据生成方法的初步阶段。在这个初步阶段,delta值分配可以按照以下步骤生成。在登记阶段通过在步骤600向puf10应用一组挑战来生成帮助数据。在步骤602,对于所应用的每个挑战,在puf10的输出处测量delta值。在步骤604,delta值被存储在存储单元中。针对所应用的每个挑战重复步骤602和604(框608)。如此获得的存储单元可以用于确定delta值的概率分布。图8是根据某些实施例的描述使用在登记阶段(图7)期间测量的delta值的帮助数据生成方法的流程图。在步骤650,根据所存储的数据值的分布来确定可靠性阈值。在步骤652,对于在登记阶段期间应用的每个第i个挑战(如根据图7所述),从存储单元读取与挑战相关联的delta值。在步骤654,根据针对挑战获得的delta值和可靠性阈值s来确定与当前挑战相关联的帮助数据的第i个帮助数据比特。在步骤656,帮助数据比特被存储在帮助数据的比特位置i中。针对其他挑战重复步骤652至656(框658),直到已经获得所有挑战。如此获得的帮助数据至少包括对应于p个挑战的p个比特。附加信息(如参考阈值和时间值)可以插入帮助数据。图9是根据某些实施例的根据针对当前挑战所获得的delta值描绘图8的帮助数据比特确定步骤(步骤654)的流程图。在步骤701,通过测试与针对当前挑战获得的delta值和可靠性阈值相关的条件来选择比特提取函数。在步骤702,应用选择的比特提取函数(取决于选择,是m1或m2),其提供与当前挑战相关联的帮助数据比特。图10描绘了根据一个实施例的在登记阶段针对当前挑战实现的图9的比特提取选择步骤。在步骤710,读取针对当前挑战获得的delta变量。在步骤712,确定delta变量是否接近于零(0)(特别是如果delta变量包含在[-n,n]中)。如果是,则在步骤714选择第一提取函数m1。否则,在步骤716中,确定delta变量是否接近于-s或s(特别是,delta变量是否包含在[-n-s,-s+n]或[-n+s,s+n]中)。如果是,则在步骤718选择第二提取函数m2。否则,在步骤720例如随机选择第一或第二提取函数。图11描述了对当前的挑战应用第一提取方法m1(图10的步骤714)的步骤。在步骤1000,读取与当前挑战相关联的delta值。在步骤1002,确定delta值是否为正。如果是,则对应于当前挑战的帮助数据比特被分配“1”值(步骤1004)。否则,如果delta值为负或零,则对应于当前挑战的帮助数据比特被分配“0”值(步骤1006)。图12描绘了针对当前挑战应用第二选择提取方法m2(图10的步骤718)的步骤。在步骤1100,读取与当前挑战相关联的delta值。在步骤1102,确定delta值是否严格低于-s或严格高于s。如果是,则对与当前挑战相对应的帮助数据比特分配“0”值(步骤1104)。否则,如果delta值为负,则与当前挑战相对应的帮助数据比特被分配“1”值(步骤1106)。图13描绘了根据一个实施例的根据帮助数据在使用阶段期间实现的密钥生成方法。在步骤1200,通过根据参考值sref,tref和测量的时间tmeas应用校正因子来确定可靠性阈值。然后将一组p个登记的挑战应用于puf(框1202)。对于每个当前挑战(第i个挑战),在步骤1204,测量对应于当前挑战的delta值。在步骤1206,读取对应于当前挑战的帮助数据比特。在步骤1208,从帮助数据比特和delta值中确定一个密钥比特,由此获得的密钥比特对应于密码密钥的第i个密钥比特。步骤1204至1208针对提供密码密钥的p个密钥比特的其他挑战进行迭代。图14描绘了根据另一个实施例的密钥提取方法的初步阶段。在使用阶段的这个初步阶段期间,收集与所应用的p个挑战对应的delta值,并且可以从delta值的概率分布确定可靠性阈值。在步骤1300中,在步骤600中向puf10应用一组p个挑战。在步骤1302,对于应用的每个挑战,在puf10的输出处测量delta值。在步骤1304,delta值被存储在存储单元中。步骤1302和1304针对所应用的每个挑战进行迭代(框1306)。在步骤1308,可以根据delta值的分布确定s,并且特别是使得根据公式(11),delta变量的绝对值取大于阈值s的值的概率等于预定值pt';因此在pt'等于1/2的实施例中,可以确定s满足以下条件:prob(|delta|>s)=1/2(12)这可能包括:-计算与在步骤1300至1306收集的delta值对应的delta分布的标准偏差sigma,-通过将选定因子(在一个实施例中等于0.6745)乘以sigma(在该实施例中s=0.6745sigma,其中选定因子等于0.6745)来确定s。在一些实施例中,如前所述,s可以是动态可调的。图15描述了根据图14中考虑的实施例,根据帮助数据在使用阶段期间实现的密钥生成方法。在步骤1400,对于每个当前挑战,读取对应于该挑战的delta值。在步骤1402,读取与该当前挑战相对应的帮助数据比特。在步骤1404,根据帮助数据比特和delta值来确定密钥比特,类似于图13的图1308的步骤,由此获得的密钥比特对应于密码密钥的第i个密钥比特。步骤1400至1404针对p个应用挑战(其提供密码密钥的p个密钥比特)中的每一个而重复。图16是示出确定可靠性阈值的步骤(图14的步骤1308)的流程图。在步骤1500,针对参考挑战测量时间值tmeas。在步骤1502,从帮助数据中取回参考阈值sref和参考时间tref。在步骤1504,可靠性阈值s被计算为:图17是描绘根据某些实施例的图13和14的密钥比特确定步骤(步骤1208和1404)的流程图。在步骤1600,取回对应于当前挑战的帮助数据比特。在步骤1602,确定帮助数据比特的值是否等于'0'。如果是,则在步骤1602选择第一比特提取方法m1。否则,如果帮助数据比特等于'1',则在步骤1604选择第二比特提取方法。在步骤1606,选择的比特提取函数被应用,其提供与当前挑战相对应的密钥比特值。图18显示了密钥生成的示例。使用对于应用的挑战获得的delta值生成的帮助数据是:h0h1h2h3h4h5h6..0110010….在上表中,hi指定帮助数据的第i比特。帮助数据嵌入包括比特si的编码参考阈值和包括比特ti的编码参考时间:s0s1s2s3...…t0t1t2t3…从帮助数据比特生成的密钥比特被表示为:k0k1k2k3k4k5k6…k0,k3,k4,k6是使用第一比特提取函数m1(对应于等于'0'的帮助数据比特)生成的。已经使用第二比特提取函数m2(对应于等于'1'的帮助数据比特)生成了k1,k2,k5。在图18的示例中,参考阈值sref的比特可以通过将它们与使用第一比特提取函数m1生成的比特k0,k3,k4,k6中的一个进行异或来解码。类似地,参考时间tref的比特可以通过将它们与使用第一比特提取函数m1生成的比特k0,k3,k4,k6中的一个进行异或来解码。需要说明的是,虽然本发明的某些技术方面已经以组合方式描述,但是在某些应用中可以单独使用。具体而言,应该注意的是,尽管上述实施例主要结合在两个比特提取函数中选择比特提取函数进行了描述,但是在某些实施例中,帮助数据生成器2可以仅包括一个比特提取函数,特别是第二比特提取函数m2,并且应用这样的函数m2来生成帮助数据。这允许生成的帮助数据的比特指示密钥比特的可靠性。图19示出了根据另一个实施例的用于生成秘密密钥的电子系统。如所示,帮助数据生成器2仅包括第二比特提取函数m2(22)。在这样的实施例中,可靠性阈值s被设置为最大噪声电平n(s=n)。如上所述,如果delta的值大于阈值s=n或者低于-s=-n(即,delta的绝对值大于噪声电平s),则第二比特提取函数分配等于“0”的比特值,否则为'1'。在这样的实施例中,阈值s表示这样的阈值:在该阈值以上的相关联的密钥比特被认为是可靠的。在本发明的某些应用中,密钥信息生成器3可以检查由此获得的帮助数据的每个比特的值,以获得关于相关联的密钥比特的可靠性的信息。更具体地说,在这样的实施例中,等于'0'的帮助数据比特指向可靠的密钥比特,而等于'1'的帮助数据比特指向不可靠的密钥比特。在某些应用中,密钥信息生成器3可以通过检查帮助数据比特的值来选择可靠的密钥比特。在针对如图19所示的秘密密钥生成的对本发明的可能的应用中,可以通过应用第二提取函数22来生成每个密钥比特。本发明的实施例还确保环境变化(温度,电压)不影响可靠性。因此,所有利用由delta值生成的帮助数据获得的密钥比特都是可靠的。由于不需要纠错码(ecc),所以根据本发明的实施例的帮助数据提取方法和设备针对对纠错码的攻击是有鲁棒性的。即使不限于这种应用,本发明的一些实施例特别适用于诸如物联网(iot)之类的高容量市场。这里描述的帮助数据提取系统和方法可以通过包括硬件、软件或其组合的各种手段来实现。尽管已经通过对各种示例的描述来说明了本发明的实施例,并且尽管已经相当详细地描述了这些实施例,但是申请人的意图不是将所附权利要求的范围限缩到或以任何方式限制到这样的细节。对于本领域技术人员而言,其他的优点和修改将是显而易见的。因此,本发明在其更广泛的方面不限于所示出和描述的具体细节、代表性方法和说明性示例。特别地,本发明不限于特定类型的基于延迟的puf。本发明也不限于帮助数据的特定应用。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1