CN104521177A - 使用单次注册用于基于存储器的puf的软判决误差校正 - Google Patents

使用单次注册用于基于存储器的puf的软判决误差校正 Download PDF

Info

Publication number
CN104521177A
CN104521177A CN201280069061.2A CN201280069061A CN104521177A CN 104521177 A CN104521177 A CN 104521177A CN 201280069061 A CN201280069061 A CN 201280069061A CN 104521177 A CN104521177 A CN 104521177A
Authority
CN
China
Prior art keywords
decoding
data word
data
correctable
reliability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201280069061.2A
Other languages
English (en)
Other versions
CN104521177B (zh
Inventor
V·范德里斯特
B·K·B·普雷尼尔
E·范德斯拉斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intrinsic ID BV
Original Assignee
Intrinsic ID BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intrinsic ID BV filed Critical Intrinsic ID BV
Publication of CN104521177A publication Critical patent/CN104521177A/zh
Application granted granted Critical
Publication of CN104521177B publication Critical patent/CN104521177B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics

Abstract

提供了一种用于从噪声物理不可克隆功能(PUF,110)可重现地建立可靠数据串(诸如加密密钥)的加密系统。该系统包括:硬判决解码器(150),以解码第一多个误差可校正的数据字,从而获得第二多个经校正且经解码的数据字;以及,可靠性信息提取器(180),以确定指示经校正且经解码的数据字的可靠性信息,例如软判决信息。该系统还包括软判决解码器(160),该软判决解码器被配置以使用该可靠性信息解码至少一个另外的可校正的数据字。使用可靠性信息误差校正PUF会减少错误拒绝率。

Description

使用单次注册用于基于存储器的PUF的软判决误差校正
技术领域
本发明涉及一种用于从噪声物理不可克隆功能(PUF)可重现地建立可靠数据串的加密系统,该物理不可克隆功能被配置用于至少部分地依赖于该物理不可克隆功能的部分随机的物理特性来建立原始数据串,该系统包括:规整器,被配置用于基于该原始数据串来确定第一多个误差可校正的数据字;以及,硬判决解码器,被配置以解码所述第一多个误差可校正的数据字,从而获得第二多个经校正且经解码的数据字。
本发明进一步涉及用于从噪声物理不可克隆功能可重现地建立可靠数据串的加密方法。本发明还涉及对应的计算机程序。
背景技术
物理不可克隆功能(PUF)建立数据串诸如原始数据串,这依赖于物理不可克隆功能的部分随机的物理特性。所述物理特性是在生产PUF期间由变量导致的。PUF是相对容易制造的,因为过程变量是不可避免的,但是重现自然变量从而复制PUF是非常困难的,如果不是不可能的话。因此,PUF提供固有保护防止克隆。
另一方面,PUF的内容不能被预先确定,且PUF响应是多少有噪声的。
物理不可克隆功能已经被证明是许多形式的安全识别(包含密钥(key)、标识符等在安全存储器中的存储)的有利替代方案。
数据串可以依赖于稳定状态,一旦PUF的部件上电,所述部件的配置就稳定在该稳定状态。该配置所稳定到的特定的稳定状态至少部分地依赖于特定部件的至少部分随机的物理特性。PUF的一个实例是易失性存储器,该易失性存储器显示了依赖于存储器的部分随机的物理特性的上电内容。生产变量导致不同存储器的不同物理特性。
PUF的此性能使得它们适合用于一系列应用。例如,PUF可以被用于打击假冒。作为另一实例,PUF被用于创建加密密钥。使用PUF,规避了对存储密钥的安全存储器的需要。此外,PUF提供了自然保护以防止通过物理逆向工程(还称作篡改)获得加密密钥的未授权尝试,因为在所述尝试期间使PUF遭受的损坏将改变原始数据串使其无法修复。
PUF已经被有利地应用在电子设备中。在生产IC期间不可避免的、甚至是微小的生产变量导致了IC的不同性能。这些不同性能通常被抑制,以努力获得一批以相同方式运作的IC。然而,为了创建PUF,一批IC中的个体IC之间的差异被利用。
由于PUF的行为依赖于小变量,因此某一误差百分比是不可避免的。误差校正程序可被用来校正这些波动,且确保每次从PUF得到可靠数据串时,该可靠数据串是完全相同的。使用所谓的辅助数据(helperdata),原始数据串被映射到一个或多个误差可校正的数据字。一个误差可校正的数据字是接近误差校正代码的代码字的数据字。一个误差可校正的数据字可以被看作是代码字和误差字的和。通过应用对应于误差校正代码的误差校正算法,误差可校正的数据字被解码成经校正且经解码的数据字。可能地,作为中间步骤,计算接近误差可校正的数据字的代码字。
发明内容
现有的物理不可克隆功能的问题是它们潜在的高误差率。为了应付极端外部变量诸如温度和施加电压,该系统应能够应付最高达25%的误差率。即,原始位串中的25%的位在PUF的随后读取之间可能不同。因此,需要能够校正具有高误差率的数据串的强大的误差校正代码。另一方面,希望在具有缩减资源(例如,受限制的计算能力)的系统——诸如智能卡——中使用PUF。这排除了不同领域(诸如电信系统)中所使用的误差校正代码的使用。
根据本发明的加密系统被配置用于从噪声物理不可克隆功能(PUF)可重现地建立可靠数据串。该物理不可克隆功能被配置用于至少部分地依赖于该物理不可克隆功能的部分随机的物理特性建立原始数据串。例如,该原始数据串可以依赖于部件的、至少部分随机的物理配置,或取决于掺杂水平的变化。
加密系统包括:规整器,被配置以基于原始数据串确定第一多个误差可校正的数据字;硬判决解码器,被配置以解码第一多个误差可校正的数据字,从而获得第二多个经校正且经解码的数据字;可靠性信息提取器,被配置以确定指示第一多个误差可校正的数据字的所述解码的可靠性的可靠性信息;数据安排器,被配置以安排所述第二多个经校正且经解码的数据字,以获得至少一个另外的可校正的数据字;以及,软判决解码器,被配置以使用该可靠性信息解码该至少一个另外的可校正的数据字,从而获得至少一个另外的经校正且经解码的数据字,从该至少一个另外的经校正且经解码的数据字获得可靠数据串。
加密系统从基于软判决误差解码的物理不可克隆功能提取可靠数据串,诸如加密密钥。所提取的数据串具有高可靠性,因为所提取的数据串是通过两个(或更多个)代码的组合被误差校正的。在第一解码期间,通过硬判决解码器,出现信息量的减少。在一种意义上,包含在第二多个经校正且经解码的数据字中的信息的量少于原始位串中的信息量。通过提取与第一多个误差可校正的数据字的解码的可靠性有关的信息,丢失信息中的一些被恢复。即,可靠性信息连同第二多个经校正且经解码的数据字携带的信息多于第二多个经校正且经解码的数据字单独携带的信息。软判决解码器可以利用该可靠性信息,以获得比第二硬解码器能够获得的解码更可靠的解码。
直接获得软数据对于PUF是不可能的或对于许多类型的PUF是有问题的。例如,对于基于易失性存储器中的上电内容的PUF,获得用于该内容的软数据将涉及重复的功率周期,即连续的掉电和上电,以获得对该存储器的多次读取。为了允许测量其间具有多个功率周期的多个PUF响应,PUF的读出和处理部分需要在不同的功率域(power domain)中。已知具有多个功率域将是有问题的。需要小心以避免功率域之间的泄漏;要求额外的芯片面积以包含隔离单元和功率布线。这还要求额外的设计努力(在布局、网表生成、综合和布局方面)。根据本发明的PUF生成软数据,而不需要多个功率周期。一个PUF响应足以生成软数据值。基于硬解码器的结果,生成指示PUF的部分的共同可靠性的软数据值。注意,使用非易失性存储器在多个功率周期上保持中间数据将降低安全性,事实上,常常使用PUF作为安全存储的替代。
在一个实施方案中,物理不可克隆功能和规整器在相同的功率域中。在一个改进的实施方案中,硬判决解码器也在相同的功率域中。在另一个改进的实施方案中,可靠性信息提取器、数据安排器和软判决解码器也在相同的功率域中。
可以通过将两个部件连接到相同的功率线来使它们在相同的功率域中。例如,可以以CMOS技术实施该系统,即PUF作为SRAM,且规整器可以被实施为硬件或被实施为在处理器上运行的软件。规整器(硬件或处理器)和PUF(即SRAM)可以在相同的功率域中。在相同的功率域中的两个部件必定一起掉电和上电。
本发明不需要重复地测量PUF响应以确定可靠性数据。
替代地,物理不可克隆功能在单独的功率域中。例如,物理不可克隆功能和规整器可以在不同的功率域中。在一个改进的实施方案中,硬判决解码器也在不同的功率域中。在物理不可克隆功能处于单独的功率域中的情形下,可以通过在多个功率周期中获得对PUF的多次读取,即,随后在多次读取上取平均,来获得软判决数据。然而,甚至在该情形下应用本发明也是有利的。功率周期耗费比较长的时间。在测量之间,常常需要将SRAM存储器断电约1秒,以保证在低温度下良好的PUF读取(因为数据残留效应)。对于消费者应用而言,这将是不可接受地长的时间。此外,使用多次读取要求更多的缓冲空间。即使功率域不被用来获得对PUF的多次读取,它们也仍可以被用于其他目的。例如,在分立的功率域中具有PUF(例如,SRAM)将存储器的老化降至最低程度,因为在PUF已经被用来得到响应之后可以关掉该存储器。此外,如果PUF被用在随机数目生成器中,则可能要求多次读取。
软判决解码器也增大从PUF获得可靠数据串的效率。一些PUF可以自然地适于给出关于原始串的可靠性的软判决信息。例如,在用于从噪声物理不可克隆功能(PUF)可重现地建立可靠数据串的有利系统中,该系统包括:规整器,被配置用于基于原始数据串来确定误差可校正的数据字;可靠性信息提取器,被配置以确定指示该原始数据串的可靠性的可靠性信息;以及,软判决解码器,被配置以使用该可靠性信息解码该误差可校正的数据字,从而获得经校正且经解码的数据字,从该经校正且经解码的数据字获得可靠数据串。
在上述的有利系统中,物理不可克隆功能可以依赖于对一个物理过程计时或计数。例如,该物理不可克隆功能可以包括振荡器或延迟电路。可以通过将物理过程与阈进行比较来获得原始数据串。可以通过将与该阈的距离分类来获得可靠性信息。
然而,并非所有PUF都容易适于给出关于其输出的可靠性信息。尤其,如果现有集成电路元件被用作PUF,则其通常仅具有量化输出,例如二进制数据。例如,如果使用一个存储器元件即SRAM、触发器、总线保持器(bus-keeper)或蝴蝶形PUF(butterfly PUF),则没有指示对应的元件如何接近关于1或0的阈的信息是容易得到的。本发明人的进一步认知是可靠性信息的使用可以如何与这样的PUF组合。通过在软判决解码器与规整器之间插入一个额外的代码,可以在经解码的数据字的水平上获得至少可靠性信息。尽管在经解码的数据字上对可靠性信息作了平均,但是供在随后的软判决解码器中使用的信息的量已经增加,因此改进了数据串的解码,并最终提高了数据串的可靠性。
物理不可克隆功能(PUF)是由物理系统实现的功能,使得该功能易于制造,但是该物理系统难于特征化且难于克隆。由于PUF不能被复制或模造,因此配备有PUF的设备变得不可克隆。由不受控制的生产过程生产的(即,含有某些随机性的)物理系统证明是PUF的良好的候选者。
PUF可以,但不是必须,获得一个输入,该输入也被称作询问(challenge)。许多实际的PUF是所谓的单询问输入。它们有效地运行为数字标识符。更先进的PUF采用一个输入。针对每个询问,这样的多询问PUF被设计为以复杂的方式与询问即激励交互,且导致不可预测的响应。本发明既可以与单询问PUF一起使用也可以与多询问PUF一起使用。甚至单询问PUF也增加了系统的安全性,特别是对于不需要被包括PUF的设备的外部知道的秘密。例如,被用于安全存储、存储器加密等、启动保护等的密钥未必需要被设备的外部知道。
不使用软判决解码的误差校正代码的组合要求大的原始数据串,例如,通过使用具有大SRAM的PUF,以得到具有合理的错误拒绝率的可靠数据串,例如某一加密密钥。许多信息丢失,因为解码第一误差校正代码仅导致每代码字几个信息位。错误拒绝率(FRR)是:由于所测量的PUF响应中的误差,可靠数据串不能被重建的概率。低FRR是期望的。
因此,本发明给出了一种使用软判决误差校正算法从物理不可克隆功能提取标识符或密钥的有利的方法。软判决信息(也被称为必然性或可靠性信息)可以源自前一解码步骤的输入(噪声)代码字与其经误差校正的输出之间的差异。
在对相同的PUF的两次读出几乎决不会给出相同的原始位串的意义上来说,PUF通常是“不可靠的”。可靠数据串在可靠数据串的几乎每次重建之后都是相同的。可靠性的水平依赖于本发明的应用。对于民用而言(例如,在访问控制、金融控制等中),与在军用中相比,较大的FRR将是可接受的。通过使用能够校正大数目误差的代码可以降低FRR。
优选地,对于其中嵌入有物理不可克隆功能的电子设备,可靠数据串(例如位串)是独有的。尽管不是严格地需要,但是这使得识别更可靠且密钥更安全。在一个实施方案中,加密系统包括密钥建立器,用于通过将密钥派生算法应用到可靠数据串来建立加密密钥。
在一个实施方案中,原始数据串可以依赖于部件的、至少部分随机的物理配置。在一个实施方案中,PUF包括SRAM、触发器、总线保持器、蝴蝶形PUF中的任何一个,用于导出原始位串。
通常,PUF包括多个易失性存储器元件,这些易失性存储器元件在上电时稳定在一个状态,该状态取决于存储器元件的物理特性。通常以数字形式,即以位序列的形式,获得原始位串。
SRAM PUF是已知的基于标准的可用部件即SRAM的PUF。SRAM或静态随机访问存储器是当今在大多数设备(例如,ASIC、微处理器、DSP、ASSP等)中使用的标准部件。它包括两个交叉耦合的反相器和用于外部连接的两个附加的晶体管,因此包括总共六个晶体管。由于其用于短期数据存储的速度,它被广泛地使用。当电压被施加到存储器单元时,它选择其逻辑优选状态:逻辑1状态或逻辑0状态。每个单元具有唯一的优选状态,该优选状态由组成两个交叉耦合的反相器的晶体管的阈值电压确定。因为在制造期间不受控制的过程变量,不同晶体管的阈值电压略微不同。由SRAM存储器阵列的存储器单元的所有优选启动值确定的串形成唯一地指示该SRAM存储器的随机标识符。该标识符是PUF响应,即原始数据串。该现象已经在许多实验中且关于许多SRAM类型被验证。
另一个基于存储器的PUF是所谓的触发器PUF。该PUF使用触发器或寄存器的启动值。在相同申请人的、于2010年11月24日提交的、申请号为EP10192352.2的、标题为“PHYSICAL UNCLONABLE FUNCTION”的EP专利申请中描述了触发器、总线保持器和寄存器PUF。
在一个实施方案中,确定第一多个误差可校正的数据字的规整器包括将原始数据串与所谓的辅助数据结合。
例如,原始位串和辅助数据都可以被表示为数字值,辅助数据将原始位串映射到一个或多个可校正的代码字的邻域。例如,辅助数据可以被添加到原始位串。例如,可以通过使用XOR操作将原始位串和辅助数据组合。辅助数据也可以被并置到原始位串,例如在辅助数据表示冗余信息的情形下。
在信息理论中,硬判决解码器和软判决解码器均解码已被编码具有误差校正代码的数据。硬判决解码器与软判决解码器之间的差异涉及可靠性信息的使用。硬判决解码器是误差校正解码器,该误差校正解码器将可能值(二进制代码中通常是0或1)的固定集合作为输入。硬判决解码器不将可靠性信息作为输入。软判决解码器将指示每个输入数据点的可靠性的额外信息作为输入,且被用来形成原数据的更好估计。软判决解码器与其对应的硬判决解码器相比,在存在损坏的数据的情况下通常表现得更好。
可以在系统中使用不同的误差校正代码。也可以使用相同的误差校正代码两次,一次用硬判决解码器且一次用软判决解码器。也可以在硬判决解码器之后,用两个或更多个(可能不同的)软判决误差校正解码器进行两阶段方法或多阶段方法。在多阶段方法中组合误差校正代码导致就为提取某一长度的密钥所需要的PUF数据的量而言更有效的解决方案,具有相同的FRR。
在一个实施方案中,硬判决解码器被配置以解码第一多个误差可校正的数据字中的每一个误差可校正的数据字,从而获得第二多个中的一个对应的经校正且经解码的数据字。例如,转换原始串的一种方式是将辅助数据XOR到原始数据串。所得到的串被划分成误差可校正的数据字。
由于PUF的误差率可能是高的,如果(在硬判决解码器中使用的)第一代码具有相对低的代码率(也称为信息率)——这能够校正相对大数目的误差,将是特别有利的。试验已经确认了这一点。在一个实施方案中,硬判决解码器被配置用于解码重复代码。在一个实施方案中,硬判决解码器被配置用于解码哈达默(Hadamard)代码。在一个实施方案中,硬判决解码器和/或软判决解码器使用线性代码,优选地,二进制代码。
由于低代码率代码倾向于具有相对少的代码字,因此列表解码是供用于硬判决解码器的良好的选项。
可靠性信息也被称为必然性信息,或称为软判决信息。
在一个实施方案中,可靠性信息源自经误差校正的代码字与误差校正之前的噪声代码字(第一多个中的一部分)之间的差异。噪声代码字也被称作误差可校正的数据字,它是具有若干个误差的代码字。从噪声代码字变为经校正的代码字而被改变的位的数目是该经校正的代码字的可靠性的指示。被改变的位越多,代码字错误的机会就越高,从而可靠性就越低。
该软判决信息被用作连续的软判决误差校正模块或算法的输入。使用该软判决信息使得能够使用更高效的模糊提取器——该模糊提取器要求更少的PUF输入来导出某一长度的密钥。
针对第一解码器使用该构造,第二解码器将具有关于输入的更多信息(它将知道更多关于输入的硬件),且因此与之前已知的方案相比可以以较低的FRR重建所要求的代码字。
在一个实施方案中,可靠性信息包括可靠性值,该可靠性值指示将第一多个误差可校正的数据字中的特定的误差可校正的数据字解码成第二多个经校正且经解码的数据字中的特定的经校正且经解码的数据字的可靠性。
校正特定的误差可校正的数据字直接地或通过编码所得到的数据字给出对应的代码字。通过将该误差可校正的数据字与对应的代码字进行比较,获得该解码的可靠性的指示。
当读出PUF时,任何特定的代码字中的误差的数目可能高于可校正的误差的数目。在该情况下,硬判决解码器仍给出经校正且经解码的数据字,但不是正确的数据字。在该情况下,更可能的是,噪声代码字与对应的代码字之间的差异是大的而不是小的。尽管可能的是,如此多的误差出现以致代码字已经几乎完全改变为不同的代码字,但是更有可能的是,该代码字只是超出了误差校正极限。因此,噪声代码字与对应的代码字之间的差异是解码的可靠性的良好的指示。
在一个实施方案中,可靠性信息提取器包括一个距离确定器,用于确定对应于特定的经校正且经解码的数据字的特定的代码字与该特定的误差可校正的数据字之间的距离,可靠性值源自该距离。
误差校正之后的代码字与误差校正之前的噪声代码字之间的差异可以被计算为汉明距离(hamming distance)。该距离越高,可靠性就越低。
如果硬判决解码器使用重复代码,则会起作用的最简单形式的量化是直接使用位序列的汉明权重。对于其他代码,可以使用可校正的代码字与经校正的代码字之间的差异(即,异或差异)的汉明权重。不同的阈值可以被用在量化器中。例如,汉明权重空间可以被划分成相等的部分。替代地,所使用的阈可以被优化用于给定的第二解码器,例如,通过用不同的阈仿真且选择最优值。例如,人们可以对噪声代码字和对应的代码字的XOR和中的零的数目计数,以得到可靠性值(其中计数越高,即零越多,越可靠)。
可靠性信息可以被量化成一组有限的离散水平。甚至离散水平的数目可以低于代码字的长度。例如,可以使用3位来表示8个可靠性水平,即使硬判决解码器使用的代码更长。
在一个实施方案中,硬判决解码器的经解码的字的所有位被指派相同的可靠性信息。在一个实施方案中,可靠性值是有理数。
在一个实施方案中,硬判决解码器被配置以解码第一多个误差可校正的数据字中的每一个误差可校正的数据字,从而获得第二多个中的一个对应的经校正且经解码的数据字,且其中可靠性信息提取器被配置以确定用于第二多个经校正且经解码的数据字中的每一个的可靠性值,该可靠性值指示第一多个中的误差可校正的数据字的对应的解码的可靠性。
数据安排器采用第二多个中的经解码的数据字,且将它们汇编成新的误差可校正的代码字。在一个实施方案中,该数据安排器向一个经解码的数据字中的所有位指派该经解码的数据字的可靠性值。相同的经解码的数据字中的所有位因此接收相同的可靠性值。在一个实施方案中,该数据安排器将第二多个中的聚集的位重新排列成一个或另外的误差可校正的数据字。该另外的误差可校正的数据字中的位已经向它们指派了从第二多个中的以下数据字获得的可靠性值:从该数据字获得了该位。
在一个实施方案中,数据安排器被配置以将第二多个中的第一经校正且经解码的数据字的至少一部分和第二多个中的第二经校正且经解码的数据字的至少一部分安排到相同的至少一个另外的可校正的数据字中。
在一个实施方案中,第二多个中的某一数据字的第一部分被用在该至少一个另外的可校正的数据字中的第一另外的误差可校正的数据字中,且该某一数据字的第二部分被用在该至少一个另外的可校正的数据字中的第二另外的误差可校正的数据字中。
这具有的优点是,如果该某一数据字错误,它分布在多个可校正的数据字上,因此降低了FRR。在一个实施方案中,该数据安排器是交织器(interleaver)。
在一个实施方案中,数据安排器被配置以向该至少一个另外的经校正且经解码的数据字的不同部分指派不同的可靠性值。例如,该至少一个另外的可校正的数据字包括多个位,所述多个位中的每一个位通过该数据安排器从第二多个经校正且经解码的数据字中的一个对应的经校正且经解码的数据字获得。在一个实施方案中,所述多个位中的每一个位被指派一个可靠性值。
在另一实施方案中,所述多个位中的每一个位通过数据安排器从第二多个经校正且经解码的数据字中的一个对应的经校正且经解码的数据字获得。该数据安排器可以被配置以连同第二多个经校正且经解码的数据字一起安排可靠性信息,从而获得用于所述多个位中的每一个位的可靠性值。向所述多个位中的一个位指派的可靠性值是一个对应的经校正且经解码的数据字的可靠性值。
在代码被组合和/或被并置的情形下,交织可以被用在所述代码之间,意味着在第一代码的解码之后的输出信息位被分布在第二代码的多个不同的(噪声)代码字上。这样,将由第一解码器进行的错误解码的影响散布于在第二解码器的输入处使用的不同的代码字上。这增加了正确地解码——例如正确地解码加密密钥——的概率。注意,如果第一代码是重复代码则这不是必要的,因为每代码字的秘密位的数目是1。
在一个实施方案中,软判决解码器使用最大似然解码,以确定给定输入量化值的情况下最可能的代码字。最大似然解码给出高质量的解码,但是可能是资源密集的。在一个实施方案中,软判决解码器被配置用于解码BCH代码或Golay代码。
在一个实施方案中,系统包括另一软判决解码器。该另一软判决解码器被配置为使用指示所述至少一个另外的可校正的数据字的所述解码的可靠性的另一可靠性信息解码至少一个又一可校正的数据字。
使用三个或更多个代码是基于本发明人的出人意料的认知。具有不止2个代码允许所使用的代码中的每一个相对弱,即能够校正相对少的误差。相比于使用2个可比强度的代码,用于三个代码的净资源(netresource)证明更低。因此,在一个实施方案中,至少两个软判决解码器被使用。
当使用第三代码时,我们将所述另一软判决解码器称为第二软判决解码器且将所述软判决解码器称为第一软判决解码器。第一软判决解码器可具有“软”输出值,所述“软”输出值将被用作第二软判决解码器的输入。人们例如可以使用第一软判决解码器的输入代码字与经解码的代码字之间的、可能地量化形式的欧几里德距离,以提供与该解码器的输出的似然性相关的信息。以该方式,第二软判决解码器将具有关于其输入位中的每一个位的更多信息,且因此更能够解码在编码期间使用的正确信息位。
加密系统可以是电子加密系统,例如包括在移动电子设备、移动电话、机顶盒、计算机、智能卡等中的电子加密系统。
在一个实施方案中,该加密系统被配置以迭代地解码,例如使用Turbo解码。例如,第三解码器即另一软判决解码器可以被添加。该另一软判决解码器被配置以接收来自第二解码器的软数据。该第二解码器和第三解码器被配置以迭代地执行Turbo解码算法。
在另一实施方案中,硬判决解码器选择性地允许软判决输入。在第一迭代中,第一解码器被配置为硬判决解码器且因此不使用软判决数据。在第二迭代中,第一解码器被配置为软判决解码器且接收来自第二解码器的软判决数据。
本发明的另一方面涉及一种用于可重现地建立可靠数据串的加密方法。该方法包括:
-依赖于部件的、至少部分随机的物理配置建立原始数据串,
-基于该原始数据串确定第一多个误差可校正的数据字,
-通过硬判决解码解码所述第一多个误差可校正的数据字,以获得第二多个经校正且经解码的数据字,
-确定指示第一多个误差可校正的数据字的所述解码的可靠性的可靠性信息,
-安排所述第二多个经校正且经解码的数据字,以获得至少一个另外的可校正的数据字,以及
-通过软判决解码使用该可靠性信息解码该至少一个另外的可校正的数据字,以获得至少一个另外的经校正且经解码的数据字,从该至少一个另外的经校正且经解码的数据字获得可靠数据串。
根据本发明的方法可以在计算机上实施为计算机实施的方法,或在专用硬件中实施,或以二者的组合实施。用于根据本发明的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的实施例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括存储在计算机可读媒介上的非暂时性程序代码装置,用于当所述程序产品在计算机上执行时执行根据本发明的方法。
在一个优选实施方案中,计算机程序包括计算机程序代码装置,当该计算机程序在计算机上运行时,该计算机程序代码装置适于执行根据本发明的方法的所有步骤。优选地,该计算机程序体现在计算机可读媒介上。
提供一种用于从噪声物理不可克隆功能(PUF)可重现地建立可靠数据串(诸如加密密钥)的加密系统。该系统包括:硬判决解码器,以解码第一多个误差可校正的数据字,从而获得第二多个经校正且经解码的数据字;以及,可靠性信息提取器,以确定指示经校正且经解码的数据字的可靠性的可靠性信息,例如软判决信息。该系统还包括软判决解码器,该软判决解码器被配置以使用该可靠性信息解码至少一个另外的可校正的数据字。使用可靠性信息误差校正PUF降低了错误拒绝率。
附图说明
以示例的方式参照附图进一步详细地解释本发明,其中:
图1a是例示了一个加密系统的框图,
图1b是例示了加密系统中所使用的数据的框图,
图2a是例示了一个硬判决解码器的框图,
图2b、2c和2d是例示了与可靠性信息提取器组合的硬判决解码器的框图,
图3a和3b是例示了一个软判决解码器的框图,
图4是例示了一个加密系统的框图,
图5是例示了一个加密系统的框图,
图6a和6b是例示了一个包括加密系统的智能卡的框图,
图7是例示了一种加密方法的流程图。
在全部附图中,相同的参考数字指示类似的或对应的特征。
参考数字列表:
100  用于可重现地建立可靠数据串的系统
110  物理不可克隆功能
115  原始数据串
120  规整器
125  第一多个误差可校正的数据字
122  第一误差可校正的数据字
130  存储器
140,140a  数据安排器
140b
145  另外的可校正的数据字
150  硬判决解码器
152  与可靠性信息组合的第一经解码的数据字
154  第一经解码的数据字
155  第二多个经校正且经解码的数据字
156  可靠性值
160,160a  软判决解码器
160b
162  包括可靠性信息的另外的可校正的数据字
164  另外的可校正的数据字
165  另外的经校正且经解码的数据字
166  可靠性信息
172  编码器
180  可靠性信息提取器
182  距离确定器
184  可靠性值计算器
185  可靠性信息
192  另外的经校正且经解码的数据字
212,214,  第一可校正的串
216,218
222,224,  第一解码器
226,228
232,234,  第一数据串
236,238
240  交织器
252,254,  第二可校正的串
256
262,264,  第二解码器
266
272,274,  第二数据串
276
600  智能卡
610  集成电路
605  卡
620  处理单元
622  存储器
624  物理不可克隆功能
626  软判决解码器
630  总线
640  智能卡
700  流程图
710  读取PUF
720  从PUF数据获得第一可校正的代码字
730  使用第一误差可校正的代码解码第一可校正的代码字
740  获得第一可校正的代码字的第一可靠性值
750  从经解码的第一可校正的代码字获得第二可校正的代码字
760  使用第一可靠性值和第二误差可校正的代码解码第二可校正的代码字
770  从经解码的第二可校正的代码字获得可靠数据串
具体实施方式
虽然本发明容许有许多不同形式的实施方案,但是在附图中示出并将在本文详细描述一个或多个具体的实施方案,应理解,本公开内容应被认为是对本发明的原理的示例,而不意在将本发明限制于所示出和描述的具体实施方案。
本发明基于如下认知:软判决信息可以源自任何误差校正解码器的输出且可用于校正下一误差校正解码器中的误差。可靠性值可以例如基于经误差校正的输出代码字与噪声输入代码字之间的差异来计算。当经误差校正的输出代码字被解码成其k个信息位时,所有信息位与可靠性值相关联。
图1a例示了用于可重现地建立可靠数据串的系统100。系统100使用软判决信息以改进误差校正。图1b例示了系统100中所使用的数据。
系统100包括物理不可克隆功能110。PUF 110被配置用于至少部分地依赖于物理不可克隆功能的部分随机的物理特性来建立原始数据串115。
PUF 110可以是任何已知的物理不可克隆功能。尽管系统100需要软判决信息,但是PUF 110可以仅给出硬量化数据。通常,通过将物理现象的测量结果与阈进行内部比较来获得PUF 110的输出。在该情形中,仅所述测量结果是在该阈以上还是在该阈以下的信息需要由PUF 110输出。通常,人们不能访问PUF中的内部测量。
PUF 110可以是易失性存储器,所述易失性存储器具有其上电内容依赖于生产变量(manufacture variation)的特性。于是启动值被用作原始数据串115。具有相同设计的PUF 110的两个不同的例示的两个启动值之间的差异大于从相同的PUF 110的两次不同的启动获得的值之间的差异。例如,PUF 110可以包括SRAM,由此在上电之后,原始数据串115是SRAM的内容。
系统100还包括规整器120。规整器120从PUF 110获得原始数据串115。典型的原始数据串不具有特定的结构。规整器120基于原始数据串确定第一多个误差可校正的数据字125。通常规整器120将所谓的辅助数据添加(即,XOR)到该原始数据串。下文进一步描述了辅助数据的构造。由于规整器120,原始数据串被转换成误差可校正的数据。该误差可校正的数据是可校正的,从而补偿了随后获得的原始数据串之间的差异,假设误差率足够低。
系统100包括存储器130。存储器130可以含有多个存储器,既有易失性的也有非易失性的。例如,非易失性存储器可以含有由规整器120使用的辅助数据。存储器130的其他部分可以是易失性的,且可用来存储第一多个误差可校正的数据字。代替共享的易失性存储器,可以使用另一接口,例如总线或流水线(pipeline)。
系统100包括硬判决解码器150,该硬判决解码器150被配置以解码第一多个误差可校正的数据字125,从而获得第二多个经校正且经解码的数据字155。硬判决解码器150基于对应于用来获得辅助数据的误差校正代码的误差校正算法工作。有利地,硬判决解码器150是低代码率代码,诸如重复代码。用C1指示由硬判决解码器150使用的误差校正代码。例如,C1是长度为23的重复代码。该代码被指示为[n1,k1,d1]=[23,1,23]代码,即,其中代码数据字的长度为n1、维度为k1以及最小距离为d1的代码。通常,硬判决解码器150逐个解码第一多个数据字以获得第二多个数据字。
系统100包括可靠性信息提取器180,该可靠性信息提取器180被配置以确定指示第一多个误差可校正的数据字的所述解码的可靠性的可靠性信息185。可靠性信息提取器180可以是硬判决解码器150的一部分或是一个单独的实体。在图1a中,可靠性信息提取器180未被单独地示出。图1b将可靠性信息185显示为依赖于第一多个125中的噪声码字和经解码的第二多个155。这使用如下文解释的编码器是可能的。替代地,可使用在硬判决解码器150中获得的经校正的代码字,直接从第一多个125获得可靠性信息185。
除对应于误差可校正的数据字的经解码且经校正的数据字之外,还对应经校正的代码字。通常,可靠性信息提取器180通过将第一多个中的对应数据字与对应的经校正的代码字进行比较来获得第二多个中的每个经校正且经解码的数据字的可靠性值。例如,如果第一多个中的数据字与对应的经校正的代码字之间的差异例如距离较小,则由可靠性信息提取器180获得的可靠性值较大。
系统100包括数据安排器140,该数据安排器140被配置以安排第二多个经校正且经解码的数据字,从而获得至少一个另外的可校正的数据字145。第二多个中获得的组合数据比原始串具有更低的误差率且具有可靠性数据。因此该数据相对于原始数据串在两方面得到改进。数据安排器140关于一种新的可能不同的代码,将数据安排到新的误差可校正的数据字中。在该阶段不需要额外的辅助数据。数据安排器140还跟踪可靠性信息。由可靠性信息提取器180指派给第二多个中的一个数据字的可靠性信息由数据安排器140指派给从该一个数据字获得的至少一个另外的可校正的数据字的部分。
系统100包括软判决解码器160,该软判决解码器160被配置以使用可靠性信息185解码上述至少一个另外的可校正的数据字145,从而获得至少一个另外的经校正且经解码的数据字165。许多硬判决误差校正算法可以被转换成软判决变体。由软判决解码器160使用的误差校正代码将被指示为C2。例如,C2可以是具有参数[n2,k2,d2]=[8,4,4]的BCH代码。下文描述了适于用在系统100中的其他可能的软判决代码。
最终,从上述至少一个另外的经校正且经解码的数据字165获得可靠数据串。例如,该可靠数据串是上述至少一个另外的经校正且经解码的数据字。例如,通过另一误差校正器(可能地,另一软判决解码器)从该至少一个另外的经校正且经解码的数据字165获得可靠数据串。
软判决解码器160的代码字的长度可能与由硬判决解码器150解码的数据字的长度不同。这些不同长度之间的转换至少由数据安排器140完成。数据安排器140可以简单地将第二多个并置,且将所得到的串划分成用于软判决解码器160的适当大小的数据字。
符号C(S)被用来指示用误差校正代码对值S的编码。当使用两个连续的误差校正代码时,对值S的编码可以被写为:C(S)=C1(C2(S))。该符号指示:首先用误差校正代码C2对值S进行编码,以及用误差校正代码C1对所得到的代码字进行编码。当解码值C(S)时,首先必须执行代码C1的误差解码,随后是代码C2的误差解码。不能够由C1校正的误差可能仍可由代码C2校正。在系统100的情形中,C1表示由硬判决解码器150使用的代码,C2表示由软判决解码器160使用的代码。
系统100的运行具有两个阶段。首先是注册阶段,在注册阶段获得辅助数据,接着是使用阶段,在使用阶段辅助数据被用来获得可靠数据串。通常,对于给定的系统100,注册阶段仅被执行一次,而使用阶段可以被执行多次。
在注册阶段,获得辅助数据(也参见WO2004066296A1),该辅助数据可以被存储在某一外部存储器或内部存储器中。辅助数据含有可以被用来校正PUF响应(即,原始数据串)中的误差的信息,且可能地含有适当地处理PUF响应信号所需的信息。此外,辅助数据可以含有关于压缩函数(例如,散列函数)的选择的信息,该压缩函数被用来压缩经误差校正的数据和/或取回(retrieve)最终的加密密钥。
一个众所周知的构造——代码偏移方法——工作如下。在注册阶段期间,PUF 110被询问且响应X被测量以获得原始数据串110。为了解释的简便性,我们在此假设,X是二进制位串。(实践中,实际的PUF响应R可能首先需要某种处理,以从R得到位串X,可能地使用某一种处理辅助数据W3)。秘密位串S被随机地选择,且被用误差校正代码编码,得出代码字C(S)。辅助数据值按照如下方式生成:
·W1:=C(S)⊕X
·W2=在一族压缩函数或散列函数Ηi()中随机选择的指数(index)
·W3=处理辅助数据的任何额外的信号(可选的,依赖于所使用的PUF的类型)。
·
辅助数据包括W1、W2和W3,且可以被本地存储即存储在存储器130中,或外部地存储以用于稍后使用。W2和W3是可选的。
系统100使用下述步骤利用辅助数据值W1和W2重建例如密钥:
1.询问PUF 110且测量响应Y(可选地,使用辅助数据W3作为信号处理块的输入,以从PUF响应R’得到位串Y)。
2.在规整器120中计算重建代码字C’(S):=W1⊕Y=C(S)⊕X⊕Y。
3.如本文中描述的校正代码字C’(S)上的误差,使用硬判决解码器150以获得供在软判决解码器160中使用的可靠性数据。如果X与Y之间的汉明距离小于或等于组合的误差校正代码的误差校正能力,则可以校正误差且重建值C(S)。
4.可选地,解码C(S)以获得S。
5.可选地,将用W2指示的散列函数应用在值S上,以重建密钥K:K:=HW2(S)。
W2和W3的使用是可选的。存在创建和使用辅助数据(例如,附加冗余信息)的其他方式。
替代地,在步骤4中使用C(S),以通过将C(S)与辅助数据W1取异或来重建原始PUF数据,即SRAM启动数据X;在该情形下,步骤5中的密钥可以被计算为K:=HW2(X)。
为了防止攻击者操纵辅助数据(W1、W2或W3),可以使用加密单向散列函数:V:=H(S,W1,W2,W3)或V:=H(K,W1,W2,W3)来计算校验值。在重建密钥或S之后,可以通过将所使用的辅助数据值连同重建的值S或K一起散列并且将结果与所存储的值V进行比较来来计算所使用的辅助数据值是否正确。
用误差校正代码编码秘密位串S使用经并置的代码C:C(S)=C1(C2(S))。即,S首先用软判决解码器的误差校正代码进行编码,然后根据数据安排器140的逆(inverse)进行重新安排,最终用硬判决解码器的误差校正代码进行编码。如果使用更多的解码器,则对应的编码器以编码期间它们被使用的逆顺序被应用。
一些代码允许直接获得随机的代码字。在该情形中,可以跳过生成和编码秘密位串S的中间步骤,代替地可以直接选择随机的代码字C(S)。
在注册阶段之后,在使用阶段期间,系统100按如下方式运作。
由PUF 110建立原始数据串115。如果PUF 110是单询问的,则这可以由供电系统100简单地完成。规整器120将辅助数据应用到原始数据串,且获得第一多个误差可校正的数据字125。尽可能地由硬判决解码器150误差校正该第一多个(由于太多误差,一些字可能被错误地解码),并获得第二多个155。由可靠性信息提取器180获得可靠性信息185,该可靠性信息185指示第一多个误差可校正的数据字的所述解码的可靠性。优选地,可靠性信息提取器180为第二多个中的数据字中的每一个建立可靠性值。如果C1是重复代码,则获得第二多个中的每个位的可靠性信息。最终,由软判决解码器160使用可靠性信息185解码从第二多个获得的至少一个另外的可校正的数据字145,以获得至少一个另外的经校正且经解码的数据字165。
系统100可以包括密钥建立器(未示出),用于通过将密钥派生算法应用到可靠数据串来建立加密密钥。例如,密钥建立器可以散列可靠位串,可能地通过盐(salt)。盐是数据项且可以被用来从相同的输入创建多个密钥。例如盐可以是随机值,或随机数(nonce)。盐优选地被存储在非易失性存储器中,例如存储在密钥建立器上。
图2a例示了具有集成的可靠性信息提取器180的硬判决解码器150的一个实施方案。硬判决解码器150被配置以接收误差可校正的数据字,诸如第一误差可校正的数据字122。所述误差可校正的数据字经受误差校正算法,以产生组合有可靠性信息的经解码的数据字,诸如数据字152。随后硬判决解码器150被应用于第一多个中的所有数据字。
图2b示出了单独的可靠性信息提取器180。在该情形中,硬判决解码器150可以是不产生可靠性信息的常规的硬判决解码器,仅产生经校正且经解码的数据字,诸如第一经解码的数据字154。硬判决解码器150与可靠性信息提取器180协作以产生对应于解码的可靠性值。在示出的情形中,第一可靠性值156指示解码字154的可靠性,即,第一可校正的数据字122的解码的可靠性。硬判决解码器150被应用于第一多个中的多个误差可校正的数据字,同时可靠性信息提取器180被用来获得多个对应的可靠性值。
图2c和2d例示了可靠性信息提取器180可以与硬判决解码器150组合的两种方式。
作为一个示例,图2c示出了第一多个中的第一误差可校正的数据字122的解码;这同样适用于第一多个中的其他字。第一可校正的数据字122由硬判决解码器150接收,该硬判决解码器150使用误差校正算法(即,最近代码字算法)将第一可校正的数据字122转换成代码字,通常转换成最近的代码字,可能地是使用列表解码实施。然后,该代码字被解码以获得经解码的数据字。在第一可校正的数据字122的情形中,获得第一经解码的数据字154。解码一个代码字包括去除冗余信息。代码字的长度(例如,位的数目)从‘n’(代码字长度)减小到‘k’(代码维度)。图2c还示出了距离确定器182。距离确定器182被配置以确定误差可校正的数据字与由解码器获得的代码字之间的距离。距离确定器182功能上被连接到硬判决解码器150,以获得代码字,距离确定器182还接收第一可校正的数据字122的未校正的数据字。距离确定器182例如可以计算未校正的数据字与经校正的(例如最近的)代码字之间的汉明距离。用于距离确定器182的其他选项是可能的且在此指出。
图2c还示出了可靠性值计算器184,其被配置以从距离确定器182接收距离。
通过可靠性值计算器184将由距离确定器182获得的距离转换为可靠性值156。例如,可靠性值计算器184可以以期望的可靠性比例线性地缩放由距离确定器182获得的距离。优选地,高距离对应于低可靠性。用于距离确定器182的其他选项是可能的且在此指出。
作为使用基于图2c的实施方案的一个实施例,考虑来自具有参数(n,k,d)=(15,5,7)的BCH代码的代码字。该代码的误差校正能力是t=floor((d-1)/2)=3位。
假设需要被校正的第一噪声代码字122为:C1’=[0 1 1 1 0 1 0 00 1 1 0 1 0 1]。在误差校正之后,我们获得C1=[0 1 1 0 0 1 0 0 01 1 1 1 0 1]。可以基于已被校正的误差的数目来计算可靠性值156=‘c’。例如,可靠性值计算器184可以将所计算的可靠性值计算为c=1-(a/t),其中a是被校正的误差的数目,且t是硬判决解码器150中使用的代码的误差校正能力。在该情形中,所计算的可靠性值是:c=1-2/3=1/3。[对于非理想代码,可靠性值可以被计算为c=1-(a/(t+1)),使得存在专供用于不能被校正的代码字的特别的可靠性值(a=t+1)]。在此c的高值指示高可靠性,也可以使用相反的比例,其中c的低值指示高可靠性。
为了组合可靠性值与解码代码字之后的输出位,可以应用下述方法。首先经解码的输出位被变换成符号值:0位被编码为-1,1位被编码为+1。然后,该符号值与可靠性值相乘。因此,在该实施例中,软输出值变成:S1=[-1/3 +1/3 +1/3 -1/3 -1/3]。注意,这基本上仍是位串[0 1 1 0 0]的表示,其中所有位具有可靠性值1/3。因此,值的符号对应于位值,绝对值对应于可靠性。因此人们总是具有记录单独的或组合在单个串中的可靠性和经解码的数据字的选项。
通过另一实施例,第二经解码的代码字[1 1 0 0 1]可以在未校正任何误差的情况下被解码,得出软信息输出串S2=[+1 +1 -1 -1 +1],以及第三经解码的代码字[0 1 1 0 1]可以被解码为有例如1个经校正的误差,得出软信息输出串S3=[-2/3 +2/3 +2/3 -2/3 +2/3]。由数据安排器140将这些输出值并置,得出组合的软信息串:
S=[-1/3 +1/3 +1/3 -1/3 -1/3 +1 +1 -1 -1 +1 -2/3 +2/3 +2/3-2/3 +2/3]。
软信息串或可靠性信息串具有用于第二多个中的每个位的单个可靠性值。如果可靠性值对应于具有多个位的数据字,则该可靠性值被指派给这多个位中的每一个。注意,在上文的实施例中,经解码的位和可靠性值被组合在单个串中。这是方便的但不是严格必要的。
S本身是具有包含的软判决信息的另一误差校正代码的代码字。该代码字可以被用作软判决解码器160中的至少一个另外的可校正的数据字。软判决解码器160(即,第二误差校正解码器)可以使用该软判决信息来计算最可能的代码字且解码该最可能的代码字。替代地,S中的值形成多个不同的第二误差校正代码字的软判决输入值。换言之,软信息值被交织在第二软判决解码器的多个误差校正代码字上。
一些误差校正机制允许直接解码输入噪声代码字,而没有误差校正的中间步骤。在这种情形中,经解码的位串可以被重新编码,以取回经误差校正的代码字。在图2d中使用了这种替代方案。
除图2c中示出的元件之外,图2d还示出了编码器172。硬判决解码器150仅被配置以给出经解码且经校正的数据字,而非对应的代码字。这可能发生,因为一些代码不要求单独计算代码字。如果硬判决解码器150被实施为硬件误差解码器,类似地人们可能不能访问内部中间步骤,诸如代码字。
编码器172被配置以重新编码第一经解码的数据字154。结果是对应于第一可校正的数据字122的代码字。注意,多个不同的噪声代码字对应于相同的经校正的代码字。因此,距离确定器182接收来自规整器120的噪声代码字和来自编码器172的经校正的代码字。从而,距离确定器具有与图2c中的输入相同的输入且如在图2c中那样计算距离。同样,可靠性值计算器184将如在图2c中那样工作。
在解码之后,将可靠性值(c)与输出位(d)组合的一种替代方式是,将c和d组合成0与1之间的单个值,使得低可靠性的位接近1/2,且高可靠性的位接近0或1,取决于对应的数据位。例如,如果d是0或1,且c在0与1之间,则组合的值可以被取为d+(1-2d)*(1-c)/2,可能地以预定数目的位量化。这里,c=0低指示低可靠性。
可以以多种方式执行基于距离计算可靠性值。假设用于代码C1的重复解码器的输入具有长度n1。假设没有噪声,则该输入的汉明权重(HW)将是0或n1。在实际的PUF方案中,将存在噪声,从而该输入的HW可以具有0与n1之间的任何值。该HW含有在之前的方法中未被利用的信息。该信息与正确解码的概率有关。当该输入的HW接近0或n1时,该输入的正确解码的概率高于当HW接近(n1)/2时的正确解码的概率。
例如,如果n1=23。当12≤HW≤23时,解码器150的经解码的输出将是1。当HW=23时解码器正确的概率比当HW=12时解码器正确的概率大得多,但是当使用比如说多数表决用于不提取可靠性信息的解码时,该信息丢失。距离确定器182和可靠性值计算器184将输入位序列的汉明权重量化成十进制值,使得软判决信息被纳入。
例如,对于n1=23进行2位量化(量化成4级),根据23个输入位的汉明权重(HW),解码器具有四个可能的输出:0、1/3、2/3和1。
输出=0→如果:0≤HW≤阈
输出=1/3→如果:阈+1≤HW≤11
输出=2/3→如果:12≤HW≤23-(阈+1)
输出=1→如果:23-阈≤HW≤23
值“阈”可以被改变,以获得与用于C2的第二解码器组合进行最佳工作的构造。阈的示例值是5。
在使用所谓的理想的误差校正代码的情形中,最直接的实施方式是在具体代码字的解码之后,向所有的位指派相同的可靠性值,可能地使用距离确定器182。然而,这并非必须的。例如,在使用非理想的误差校正代码的情形中,不同的可靠性值可以被指派给不同的输出位。例如,如果噪声代码字与不止1个代码字具有相等的距离,则可以证实这些代码字中的位中的哪些是相同的以及哪些是不同的。在数量大于阈的代码字中相同的位将得到较高的可靠性值。
一般而言,可靠性值计算器184可以将所基于的预定公式应用于经校正的代码字和从PUF所获得的代码字之间的差异,例如距离。
图3a和3b示出了软判决解码器160的两个可能的实施方案。图3a示出了软判决解码器160接收包含可靠性信息162的另一可校正的数据字。图3b示出了软判决解码器160接收另一可校正的数据字164和单独的可靠性信息166。
存在多种方式实施软判决解码器。一种选项是使用特殊的算法,被配置以将软判决信息纳入考虑。例如,下面的论文公开了一种合适的软判决解码器:“An Efficient Algorithm for Soft-Decision Decodingof the(24,12)Extended Golay Code”,Hackett,C.IEEETransactions on Communications,Jun 1981,Volume:29Issue:6,page(s):909–911。
另一种方法(被称作方法A)是查看每个可能的代码字,以及使用欧几里德距离来确定在最接近的意义上哪个代码字是最可能的。该方法也被称为最近-相邻解码。可以通过使用查找表有效地实施该方法。当误差校正代码具有较高数目的代码字时,该实施方式变得不那么有效。
例如,软判决解码器160包括代码字表,该代码字表含有由软判决解码器160使用的误差校正代码的所有代码字。针对该代码字表中的每个代码字,计算该代码字与至少一个另外的可校正的数据字之间的距离。具有低可靠性值的另外的可校正的数据字的元(例如,位)在距离上被赋予较低的权重。可以通过计算至少一个另外的可校正的数据字(其中通过将所述元朝向1/2进行缩放来纳入可靠性信息)与代码字表之间的欧几里德距离来计算该距离。
另一种方法(方法B)是,使用误差校正代码的代码字之间的最小距离。最可能的代码字在量化值的该距离内,且可以通过应用该最小距离内的所有误差值而被找到。当误差校正代码在代码字之间具有高的最大距离时、当代码字具有许多位时以及当使用较高数目的量化位时,该实施方式变得不那么有效。然而,该方法在效率方面并不受代码字的数目限制。
具体误差校正代码的具体特性可以导致更有效的实施方式。
我们给出了根据方法A的最大似然解码器的一个实施例。更具体地,我们以具有参数n2=8、k2=4、d2=4的最大似然Reed-Muller(8,4,4)解码器为例。在下列代码字表中列出了所有可能的2^k2=16个代码字。
代码字表:(00000000,01010101,00110011,01100110,00001111,01011010,00111100,01101001,10010110,11000011,10100101,11110000,10011001,11001100,10101010,11111111)
在下文的表格中列出了代码字位与输入量化值之间的所有可能的欧几里德距离。在此,数据和可靠性值被组合在0与1之间的单个值中,使得,低可靠性的位接近1/2,且高可靠性的位接近0或1,取决于对应的数据位。注意,可能发生的是,整个字被错误地解码,以及一些位快速从0翻转到1,或反之亦然。在该情形中,经解码的代码字是错误的且可能距正确的代码字某一距离。所述位将可能得到低的可靠性值。
具有2位量化的距离查找:
量化值(*) 代码字位 距离|a-b|2
0(00) 0 0
1/3(01) 0 1/9
2/3(10) 0 4/9
1(11) 0 1
0(00) 1 1
1/3(01) 1 4/9
2/3(10) 1 1/9
1(11) 1 0
*注意,括号之间的位形成十进制量化值的数字表示。该表示被用于在第一解码器与第二解码器之间进行有效信息传递。
通过对位距离的和取平方根计算欧几里德距离。具有最小欧几里德距离的代码字是最可能的代码字。对于此比较,不必实施平方根(对于a,b≥0,a<b→√a<√b)。
量化值“00,01,11,10,01,00,11,10”为该代码字表中的每一个字给出了下列平方距离:
00000000:0+1/9+1+4/9+1/9+0+1+4/9=3 1/9
01010101:0+4/9+1+1/9+1/9+1+1+1/9=3 7/9
00110011:0+1/9+0+1/9+1/9+0+0+1/9=4/9
01100110:0+4/9+0+4/9+1/9+1+0+4/9=2 4/9
因此,最可能的代码字是“00110011”。
注意,在此,2位量化被用作一个实施例。为了从输入得到甚至更多的软判决信息,通过汉明权重量化器(第一解码器)进行的量化可以被增加到不止2位。在该实施例的情形中,输出值的最大数目是24(0至23),该输出值可以以5位表达(并非使用5位输出的所有32个可能值)。
图4是加密系统200的另一个例示。
从PUF 110接收第一多个串;示出的是所述第一多个中的第一可校正的串212、214、216、218。系统200包括第一解码器222、224、226、228。人们具有用单个解码器比如222代替第一解码器222-228且依次解码所述第一多个中的数据字的选项。第一解码器校正且解码所述第一多个,以获得第二多个第一数据串,示出的是第一数据串232、234、236、238。此外,获得了第二多个中的每个数据串的可靠性信息(未单独示出)。
系统200包括交织器240,用于将所述第二多个交织到至少一个另外的可校正的数据串中;示出的是第二可校正的串252、254、256。第二可校正的串252、254、25中的每一个包括所述第二多个中的至少两个数据字的部分。优选地,一个第二可校正的串中的每个位从所述第一多个中的一不同字获得。
系统200还包括第二解码器262、264、266。第二解码器利用可靠性信息来获得第二数据串272、274、276。也可以再次使用单个第二解码器。第二数据串可以被组合,以给出可靠的位串。
在系统100和系统200中,在解码之后,为所有的输出位计算可靠性值。该可靠性值对于相同的经解码的代码字的所有输出位是相同的。例如,如果硬判决解码器150或解码器222至228使用Reed-Muller[8,4,4]代码,它们将各取8位数据位作为输入,产生4位输出。这样的经校正且经解码的数据字中的8个可以被交织,以获得4个8位的数据字。这些可以由Reed-Muller[8,4,4]代码再次解码,但是这次利用可靠性值。该交织可以被执行——且优选的是——使得上述至少一个另外的可校正的数据字中的每个数据字从上述第二多个中的一不同字获得。
输出串232、234、236至238是源于同样数目的不同的输入代码字的经解码的结果,且在应用所描述的方法之后,它们将具有不同的可靠性值。所述可靠性值被交织器240指派给数据字252至256的位。
下文提供了一个工作实施例以例示本发明。我们考虑在使用软判决解码和不使用软判决解码的情况下使用两个代码的情形。
首先,我们考虑使用两个代码但不使用软判决解码的情况。例如,假设误差校正代码C1是长度为23的重复代码。该代码被指示为[n1,k1,d1]=[23,1,23]代码。假设误差校正代码C2是具有参数[n2,k2,d2]=[8,4,4]的BCH代码。组合这些代码意味着,可以用误差校正代码C2编码k2=4位信息的秘密。所得到的代码字C2(S)的大小为n2=8位。用误差校正代码C1编码这些位要求应用该误差校正代码8次,由于C1的每个代码字仅可以编码k1=1信息位。结果是大小为n2*n1=184位的组合代码字C1(C2(S))。在密钥提取器构造中,在该情形中将要求184位的PUF响应X。
通过使用多数表决的重复解码器执行解码。这意味着,该重复解码器的输出对应于该解码器的输入中出现最多的位。在重复长度为23的情形中,两个可能的位值中的一个(0或1)在解码器输入处出现至少12次。该值将被选定作为该解码器的输出位,且将是第二解码器的输入的一部分。
错误拒绝率(FRR)是由于已测量的PUF响应中的误差而造成已编码的秘密S不能被重建的概率。上述构建的FRR可以被计算如下(假设对于重复解码器的输入处的每个个别位PUF响应中最坏情况下的误差概率ε为25%);
P(重复解码器的误差)=Prep=
P(第二解码器的误差)=FRR=
注意,为了解释的简便性,我们使用了上文的实施例中的单个误差校正代码字C2。在该情形中,仅4个密钥位被编码,当然这不足以用于实际加密应用中的密钥。为了编码更多的密钥位,上文的构建可以被重复若干次。例如,假设要求128个密钥位。在该情形中,上文的构建被重复32次,且从而32个代码字C2被并置使用。于是,所重建的密钥中存在误差的概率被计算为32个代码字中的至少一个含有误差的概率,它等于1减去所有32个代码字都正确解码的概率。因此,总错误拒绝率变成
FRR总=1-P(所有32个代码字正确)=
在商业应用中,要求至少低于10-6的错误率或错误拒绝率。可以通过增加重复解码器的长度n1来实现这一点。例如,如果我们使用具有参数[n1,k1,d1]=[55,1,55]的重复代码,我们得到下列值:Prep=3.22·10-5,FRR=9.27·10-7。于是,该解决方案要求n1*32*n2=55*32*8=14080 PUF数据位(1.72KB)。另一种降低FRR的方式是使用能够校正不止单个误差的不同的C2。
其次,使用上文的信息,可以用软判决解码为不同的代码计算新的构建的FRR。下文可以发现针对上文使用的代码的此计算的一个实施例。
作为一个实施例,我们假设2位量化,ε=0.25且阈=6。
由于软判决解码器,简单地计算新方案的FRR是不直截了当的。使用ε=0.25的仿真PUF源进行实验。这样,可以使用统计分析确定系统的FRR。结果如下:
FRR=(错误解码的数目)/(仿真的数目)=2.07·10-5
FRR=1-P(所有32个代码字正确)=
1-(1-FRR)32=1-(1-2.07·10-5)32≈6.63·10-4
从上文的仿真结果清楚的是,使用2位量化的软判决构建的情况下FRR显著低于先前不使用软判决解码的构建的情况下的。当使用不止2位进行量化时,FRR将甚至进一步减小。这样,能够减小重复代码的长度,以获得所要求的FRR,并因此降低所要求的SRAM的量。
图5以框图例示了具有三个解码器的加密系统500。图5基于图1,具有额外的解码器。
图5包括PUF 110、规整器120、硬判决解码器150。硬判决解码器150产生第二多个中的经解码的数据字以及可靠性信息。系统500具有:两个软判决解码器,即软判决解码器160a和软判决解码器160b;以及,两个数据安排器,即数据安排器140a和数据安排器140b。
软判决解码器160a将重建的代码字与输入进行比较,以获得供在软判决解码器160b中使用的可靠性信息。例如,可以将输出代码字与输入进行比较,在所述输入中已经纳入了可靠性信息。例如,输入代码字值的符号指示位值(减号指示0位,加号指示1位)。软判决输入值还可以与经误差校正的代码字进行比较,以对被校正的误差的数目进行计数。
例如,令重建的代码字为C’(S)=[-1/3 +1 +2/3 +2/3 -1 +1 -1 -1-2/3 +2/3 +1 -1 +1 -1 +1],经误差校正的代码字为C(S)=[0 1 1 0 01 0 0 0 1 1 1 1 0 1]。如果用C’(S)的符号值将C’(S)转换成一个位串,则我们取回串[0 1 1 1 0 1 0 0 0 1 1 0 1 0 1],所计算的差异是如之前的2位。
一种替代方式将是,通过如下所述在计算误差的量时将输入软判决值纳入考虑:首先将输出C(S)转换成符号值符号(C(S))=[-1 +1 +1 -1-1 +1 -1 -1 -1 +1 +1 +1 +1 -1 +1],然后将差异与C’(S)中的软判决值进行比较。注意,转换成符号值意味着,将值-1指派给代码字中的0位且将值+1指派给代码字中的1位。在该情形中,可以计算矢量符号(C(S))中的值与矢量C’(S)中的软判决值的绝对加和差异ASD。该值加起来达到ASD=Sum_i(abs(sign(C(S)_i–C’(S)_i)))=2/3+0+1/3+5/3+0+0+0+0+1/3+1/3+0+6/3+0+0+0=16/3。注意,在该情形中,将有差异地计算可靠性值,例如像c=1-(ASD/(nt)),其中n是代码字大小。
例如,如果第二解码器的输入是0 0 0 1/3 0 0 0 0,则更可能的是,解码器的输出(它是全零矢量)比当输入是0 0 0 1/3 0 0 1/3 2/3(它也被解码为全零矢量)时正确。基于此,观测信息可以被提供到第三解码器。
虽然在多个实施方案中,第二多个经校正且经解码的数据字中的每个位被用在一个(确切地是一个,或至多一个)另外的可校正的数据字中,但这不是必要的。在另一实施方案中,第二多个经校正且经解码的数据字中的至少一个被用在不止一个另外的可校正的数据字中。这具有若干优点。例如,考虑硬判决解码器被实施在硬件(例如,在CMOS)中且不能被更改的情形。如果结果是PUF的可靠性比期望的更好,则针对软解码器的多个可校正的数据字,可以通过重新使用硬判决解码器的输出位来增加由系统产生的数据的量。优选地,在多个软判决字中使用的位接收相同的可靠性值,但这也不是严格需要的。一些与另一些相比可能更好地表示可靠性。
图6a以顶视图示出了根据本发明的智能卡600的示意性表示。该智能卡包括集成电路610以及支持集成电路610的卡605(通常是塑料的)。在图6b中示意性地示出了集成电路610的架构。电路610包括处理单元620,例如CPU,用于运行计算机程序部件以执行根据本发明的方法和/或实施其模块或单元。电路610包括存储器622,用于存储编程代码、数据、加密密钥、辅助数据等。存储器622的一部分可以是只读的。存储器622的一部分可以是用于存储与安全性相关的数据例如密钥的高安全性存储器,例如熔丝(fuse)。电路610包括物理不可克隆功能624。物理不可克隆功能624可以与存储器622结合。电路210可以包括软判决解码器626,例如硬件实施的解码器。电路610、存储器622、PUF 624以及解码器626可以通过总线630连接至彼此。可以分别使用天线和/或连接器焊盘来布置该卡用于接触式通信和/或非接触式通信。智能卡可被用在例如:机顶盒中以控制对内容的访问,移动电话中以控制对电信网络的访问,公共运输系统中以控制对公共运输的访问,银行卡中以控制对银行账户的访问,等等。
例如,存储器622可以包括用于由处理单元620执行的软件。当执行该软件时,计算设备的模块的一些功能被执行。PUF 624可以包括易失性存储器,比如SRAM。
一种使用智能卡640的方式是读取PUF 622。通过处理器620运行存储在622中的对应的计算机代码来以软件完成规整化、硬判决解码、可靠性信息提取以及数据安排。软判决解码器626解码所得到的一个(多个)另外的可校正的数据字。解码器626还可以软件实施。
图7将用于从噪声物理不可克隆功能可重现地建立可靠数据串的方法700例示为一个流程图。示出了下列步骤:读取PUF 720;从PUF数据获得第一可校正的代码字720;使用第一误差可校正的代码解码第一可校正的代码字730;获得第一可校正的代码字的第一可靠性值740;从经解码的第一可校正的代码字获得第二可校正的代码字750;使用第一可靠性值和第二误差可校正的代码解码第二可校正的代码字760;从经解码的第二可校正的代码字获得可靠数据串770。
如本领域技术人员将明了的,多种执行该方法的不同方式是可能的。例如,所述步骤的顺序可以改变,或一些步骤可以并行执行。此外,可以在步骤之间插入其他方法步骤。所插入的步骤可以表示对该方法的改善,诸如本文中描述的,或可以是与该方法不相关的。例如,步骤730和760可以至少部分地并行执行。此外,一个给定的步骤可以在下一个步骤开始之前未完全结束。
可以使用软件执行根据本发明的方法,该软件包括用于导致处理器系统执行方法700的指令。软件可以仅包括由该系统的一具体的子实体采取的那些步骤。该软件可以被存储在合适的存储媒介诸如硬盘、软盘、存储器等中。该软件可以作为信号沿线路或无线地或使用数据网络(例如,因特网)发送。可以使得该软件可下载和/或在服务器上远程使用。
应理解,本发明还延伸到计算机程序,尤其是适于实施本发明的载体上的或载体中的计算机程序。该程序可以是源代码、目标代码、中间代码源和目标代码的形式诸如部分汇编形式的形式,或适合用于根据本发明的方法的实施中的任何其他形式。还应理解,这样的程序可以具有许多不同构架设计。例如,实施根据本发明的方法或系统的功能的程序代码可以被细分成一个或多个子例程。技术人员将明了将该功能分布在这些子例程中的许多不同的方式。所述子例程可以被一起存储在一个可执行文件中,以形成自含式程序。这样的可执行文件可以包括计算机可执行指令,例如,处理器指令和/或翻译器指令(例如,Java翻译器指令)。替代地,一个或多个或所有所述子例程可以被存储在至少一个外部库文件中,且与主程序或静态地或动态地关联,例如,在运行时。该主程序含有对至少一个所述子例程的至少一个调用。同时,所述子例程可以包括对彼此的功能调用。与计算机程序产品相关的一个实施方案包括对应于至少一个前述方法的每个处理步骤的计算机可执行指令。这些指令可以被细分成子例程和/或被存储在可以静态地或动态地链接的一个或多个文件中。与计算机程序产品相关的另一实施方案包括对应于至少一个上述系统和/或产品的每个装置的计算机可执行指令。这些指令可以被细分成子例程和/或被存储在可以静态地或动态地链接的一个或多个文件中。
计算机程序的载体可以是能够承载该程序的任何实体或设备。例如,该载体可以包括存储媒介,诸如ROM,例如CD ROM或半导体ROM,或磁性记录媒介,例如软盘或硬盘。此外,该载体可以是可传送的载体诸如电信号或光信号,电信号或光信号可以通过电缆或光缆或通过无线电或其他手段传送。当程序体现在这样的信号中时,可以由这样的缆线或其他设备或装置构成该载体。替代地,该载体可以是其中嵌有该程序的集成电路,该集成电路适于执行相关方法或在相关方法的执行中使用。
应注意,上述实施方案例示本发明,而非限制本发明,且在不偏离所附权利要求的范围的前提下,本领域技术人员将能够设计许多替代实施方案。在权利要求中,放置在括号内的任何参考符号不应被认为限制该权利要求。动词“包括”及其词形变化的使用并不排除存在除权利要求中所陈述的要素或步骤之外的要素或步骤。要素前面的冠词“一”或“一个”不排除存在多个这样的要素。可以借助于包含若干个不同元件的硬件和借助于合适地编程的计算机实施本发明。在列举了数个装置的设备权利要求中,这些装置中的若干个可以由同一个硬件项体现。仅仅是在相互不同的从属权利要求中陈述某些手段这一事实并不表明这些手段的组合不能被有利地利用。

Claims (15)

1.一种用于从噪声物理不可克隆功能(PUF,110)可重现地建立可靠数据串的加密系统(100,200),该物理不可克隆功能被配置用于至少部分地依赖于该物理不可克隆功能的部分随机的物理特性建立一个原始数据串,该系统包括
-规整器(120),被配置用于基于该原始数据串来确定第一个多个误差可校正的数据字(122,212,214,216,218),
-硬判决解码器(150,222,224,226,228),被配置以解码所述第一个多个误差可校正的数据字,从而获得第二多个经校正且经解码的数据字(152,154,252,254,256),
-可靠性信息提取器(180,182,184),被配置以确定指示第一多个误差可校正的数据字的所述解码的可靠性的可靠性信息(152,156,164),
-数据安排器(140,240,140a,140b),被配置以安排所述第二多个经校正且经解码的数据字,从而获得至少一个另外的可校正的数据字,以及
-软判决解码器(160,262,264,266,160a,160b),被配置以使用该可靠性信息解码该至少一个另外的可校正的数据字,从而获得至少一个另外的经校正且经解码的数据字,从该至少一个另外的经校正且经解码的数据字获得可靠数据串。
2.根据权利要求1所述的加密系统,其中该物理不可克隆功能和该规整器在相同的功率阈中。
3.根据前述权利要求中的任一项所述的加密系统,包括密钥建立器,用于通过向该可靠数据串应用密钥派生算法来建立加密密钥。
4.根据前述权利要求中的任一项所述的加密系统,其中该可靠性信息包括一个可靠性值,该可靠性值指示将所述第一多个误差可校正的数据字中的特定的误差可校正的数据字解码成所述第二多个经校正且经解码的数据字中的特定的经校正且经解码的数据字的可靠性。
5.根据权利要求4所述的加密系统,其中该可靠性信息提取器包括一个距离确定器,用于确定对应于该特定的经校正且经解码的数据字的特定的代码字与该特定的误差可校正的数据字之间的距离,该可靠性值源于该距离。
6.根据前述权利要求中的任一项所述的加密系统,其中该硬判决解码器被配置以解码第一多个误差可校正的数据字中的每一个误差可校正的数据字,从而获得所述第二多个中的一个对应的经校正且经解码的数据字,且其中该可靠性信息提取器被配置以确定用于所述第二多个经校正且经解码的数据字中的每一个的可靠性值,该可靠性值指示所述第一多个中的误差可校正的数据字的对应的解码的可靠性。
7.根据前述权利要求中的任一项所述的加密系统,其中该数据安排器被配置以将所述第二多个中的第一经校正且经解码的数据字的至少一部分以及所述第二多个中的第二经校正且经解码的数据字的至少一部分安排到相同的至少一个另外的可校正的数据字中。
8.根据前述权利要求中的任一项所述的加密系统,其中该数据安排器被配置以向该至少一个另外的经校正且经解码的数据字的不同部分指派不同的可靠性值。
9.根据权利要求8所述的加密系统,其中该至少一个另外的可校正的数据字包括多个位,所述多个位中的每一个位是通过该数据安排器从第二多个经校正且经解码的数据字中的一个对应的经校正且经解码的数据字获得的,该数据安排器被配置以连同所述第二多个经校正且经解码的数据字一起安排可靠性信息,从而获得用于所述多个位中的每一个位的可靠性值,指派给所述多个位中的一个位的可靠性值是一个对应的经校正且经解码的数据字的可靠性值。
10.根据前述权利要求中的任一项所述的加密系统,其中
-该硬件判决解码器被配置用于解码一个重复代码,和/或
-该硬判决解码器被配置用于解码哈达默代码,和/或
-该硬判决解码器被配置为列表解码器。
11.根据前述权利要求中的任一项所述的加密系统,其中在上电期间从SRAM、触发器、总线保持器或蝴蝶形PUF中的任何一个观测至少部分随机的物理特性。
12.一种智能卡,包括根据前述权利要求中的任一项所述的加密系统。
13.用于从噪声物理不可克隆功能可重现地建立可靠数据串的加密方法,该方法包括
-依赖于至少部分随机的物理特性建立一个原始数据串,
-基于该原始数据串确定第一多个误差可校正的数据字,
-通过硬判决解码解码所述第一多个误差可校正的数据字,以获得第二多个经校正且经解码的数据字,
-确定指示第一多个误差可校正的数据字的所述解码的可靠性的可靠性信息,
-安排所述第二多个经校正且经解码的数据字,以获得至少一个另外的可校正的数据字,以及
-通过软判决解码使用该可靠性信息解码该至少一个另外的可校正的数据字,以获得至少一个另外的经校正且经解码的数据字,从该至少一个另外的经校正且经解码的数据字获得可靠数据串。
14.一种计算机程序,包括当该计算机程序在计算机上运行时适于执行前述权利要求中任一项的所有步骤的计算机程序代码装置。
15.根据权利要求14所述的计算机程序,体现在一种计算机可读媒介上。
CN201280069061.2A 2011-12-06 2012-11-23 使用单次注册用于基于存储器的puf的软判决误差校正 Active CN104521177B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11192050.0 2011-12-06
EP11192050 2011-12-06
PCT/EP2012/073440 WO2013083415A2 (en) 2011-12-06 2012-11-23 Physically unclonable function (puf) with improved error correction

Publications (2)

Publication Number Publication Date
CN104521177A true CN104521177A (zh) 2015-04-15
CN104521177B CN104521177B (zh) 2018-03-06

Family

ID=47216317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280069061.2A Active CN104521177B (zh) 2011-12-06 2012-11-23 使用单次注册用于基于存储器的puf的软判决误差校正

Country Status (5)

Country Link
US (1) US9396357B2 (zh)
EP (1) EP2789116B1 (zh)
KR (1) KR102026757B1 (zh)
CN (1) CN104521177B (zh)
WO (1) WO2013083415A2 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106301786A (zh) * 2016-08-10 2017-01-04 南京航空航天大学 一种基于sram型存储器的物理不可克隆函数响应纠错电路
CN107017990A (zh) * 2015-10-13 2017-08-04 马克西姆综合产品公司 用于稳定的物理不可克隆函数的系统以及方法
CN107094074A (zh) * 2017-06-28 2017-08-25 东信和平科技股份有限公司 一种数据加密方法及数据加密装置
CN107194117A (zh) * 2017-06-16 2017-09-22 合肥工业大学 一种蝶形触发器物理不可克隆函数的可靠性提升方法
CN107370555A (zh) * 2016-05-12 2017-11-21 博通集成电路(上海)有限公司 误差判决方法及其装置
CN107566122A (zh) * 2016-06-30 2018-01-09 恩智浦有限公司 用于执行物理不可克隆功能的多次注册的方法
CN107959571A (zh) * 2017-11-04 2018-04-24 上海华虹集成电路有限责任公司 一种用于puf的快速软判决取值生成方法
CN109428721A (zh) * 2017-08-28 2019-03-05 恩智浦有限公司 用于物理不可克隆功能(puf)电路的误差校正电路
CN109670346A (zh) * 2017-10-13 2019-04-23 三星电子株式会社 半导体装置、产生和登记安全密钥的方法、以及电子系统
CN110034932A (zh) * 2017-11-24 2019-07-19 力旺电子股份有限公司 通讯系统及通讯系统的操作方法
CN110858169A (zh) * 2018-08-22 2020-03-03 爱思开海力士有限公司 错误校正装置和包括该错误校正装置的电子装置
CN116074001A (zh) * 2023-02-20 2023-05-05 河南牧业经济学院 一种数据压缩加密方法

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014138626A1 (en) * 2013-03-08 2014-09-12 Robert Bosch Gmbh Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
US9467170B2 (en) * 2013-05-17 2016-10-11 Marvell World Trade Ltd. NAND flash memory systems with efficient soft information interface
US9992031B2 (en) * 2013-09-27 2018-06-05 Intel Corporation Dark bits to reduce physically unclonable function error rates
KR102110767B1 (ko) * 2013-12-24 2020-06-09 삼성전자 주식회사 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
WO2015148659A1 (en) * 2014-03-25 2015-10-01 Mai Kenneth Wei-An Methods for generating reliable responses in physical unclonable functions (pufs) and methods for designing strong pufs
DE102014206943A1 (de) 2014-04-10 2015-10-15 Siemens Aktiengesellschaft Schlüsselerzeugungsvorrichtung und Verfahren zum Erzeugen eines Schlüssels
US10129036B2 (en) * 2014-09-18 2018-11-13 Intel Corporation Post-processing mechanism for physically unclonable functions
KR102201642B1 (ko) 2014-11-28 2021-01-13 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법
US9501664B1 (en) * 2014-12-15 2016-11-22 Sandia Corporation Method, apparatus and system to compensate for drift by physically unclonable function circuitry
KR102499723B1 (ko) * 2014-12-15 2023-02-13 유엔엠 레인포레스트 이노베이션즈 물리적 복제방지 기능 비트스트링 생성에 대한 신뢰성 향상 방법
US9588772B2 (en) * 2015-02-20 2017-03-07 Kabushiki Kaisha Toshiba Memory controller and decoding method
US9722774B2 (en) * 2015-04-29 2017-08-01 Samsung Electronics Co., Ltd. Non-leaky helper data: extracting unique cryptographic key from noisy F-PUF fingerprint
US10325646B1 (en) * 2015-09-15 2019-06-18 Xilinx, Inc. SRAM physically unclonable function (PUF) circuit and method
US10097348B2 (en) * 2016-03-24 2018-10-09 Samsung Electronics Co., Ltd. Device bound encrypted data
US10680809B2 (en) 2016-08-04 2020-06-09 Macronix International Co., Ltd. Physical unclonable function for security key
US11258599B2 (en) 2016-08-04 2022-02-22 Macronix International Co., Ltd. Stable physically unclonable function
US10404478B2 (en) 2016-08-04 2019-09-03 Macronix International Co., Ltd. Physical unclonable function using divided threshold distributions in non-volatile memory
US10911229B2 (en) 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
US10855477B2 (en) 2016-08-04 2020-12-01 Macronix International Co., Ltd. Non-volatile memory with physical unclonable function and random number generator
WO2018085676A1 (en) * 2016-11-04 2018-05-11 Stc.Unm System and methods for entropy and statistical quality metrics
EP3340216B1 (en) * 2016-12-23 2020-01-29 Secure-IC SAS Secret key generation using a high reliability physically unclonable function
US9811689B1 (en) * 2016-12-27 2017-11-07 Macronix International Co., Ltd. Chip ID generation using physical unclonable function
JP6882666B2 (ja) * 2017-03-07 2021-06-02 富士通株式会社 鍵生成装置および鍵生成方法
US11522725B2 (en) * 2017-03-29 2022-12-06 Board Of Regents, The University Of Texas System Reducing amount of helper data in silicon physical unclonable functions via lossy compression without production-time error characterization
US11522724B2 (en) 2017-12-11 2022-12-06 International Business Machines Corporation SRAM as random number generator
US10291414B1 (en) 2017-12-11 2019-05-14 International Business Machines Corporation SRAM as physically unclonable function
US10897364B2 (en) * 2017-12-18 2021-01-19 Intel Corporation Physically unclonable function implemented with spin orbit coupling based magnetic memory
JP6692792B2 (ja) * 2017-12-28 2020-05-13 三菱重工業株式会社 監視装置、監視システム、監視方法及びプログラム
US11044107B2 (en) 2018-05-01 2021-06-22 Analog Devices, Inc. Device authentication based on analog characteristics without error correction
US10749694B2 (en) 2018-05-01 2020-08-18 Analog Devices, Inc. Device authentication based on analog characteristics without error correction
WO2019212849A1 (en) * 2018-05-01 2019-11-07 Analog Devices, Inc. Device authentication based on analog characteristics without error correction
JP2021526745A (ja) * 2018-06-11 2021-10-07 クリプトグラフィ リサーチ, インコーポレイテッド デバイスの物理的変動に関連する関数に基づくターゲットデータの生成
US11411751B2 (en) 2018-06-27 2022-08-09 Unm Rainforest Innovations Correlation-based robust authentication technique using helper data only
US10727235B2 (en) * 2018-07-30 2020-07-28 Nscore, Inc. Secure fingerprint data generating device
US11245680B2 (en) 2019-03-01 2022-02-08 Analog Devices, Inc. Garbled circuit for device authentication
US11277271B2 (en) * 2019-07-31 2022-03-15 Nxp Usa, Inc. SRAM based physically unclonable function and method for generating a PUF response
US11380379B2 (en) 2020-11-02 2022-07-05 Macronix International Co., Ltd. PUF applications in memories

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003288683A1 (en) 2003-01-24 2004-08-13 Koninklijke Philips Electronics N.V. Reliable storage medium access control method and device
EP1927067A2 (en) * 2005-09-14 2008-06-04 Koninklijke Philips Electronics N.V. Device, system and method for determining authenticity of an item
US20110002461A1 (en) * 2007-05-11 2011-01-06 Validity Sensors, Inc. Method and System for Electronically Securing an Electronic Biometric Device Using Physically Unclonable Functions
EP2168072B1 (en) * 2007-06-14 2010-12-22 Intrinsic ID B.V. Device and method for providing authentication
US20110215829A1 (en) * 2007-08-22 2011-09-08 Intrinsic Id B.V. Identification of devices using physically unclonable functions
JP5548218B2 (ja) * 2009-03-06 2014-07-16 イントリンシツク・イー・デー・ベー・ベー 物理的システムに依存する暗号鍵を確立するためのシステム
CN102656588B (zh) * 2009-08-14 2015-07-15 本质Id有限责任公司 具有防篡改和抗老化系统的物理不可克隆函数

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MENG-DAY YU, SRINIVAS DEVADAS: "Secure and Robust Error Correction for Physical Unclonable Functions", 《VERIFYING PHYSICAL TRUSTWORTHINESS OF ICS AND SYSTEMS》 *
VERBAUWHEDE I ET AL: "A soft decision helper data algorithm for SRAM PUFs", 《INFORMATION THEORY 2009, ISIT 2009》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107017990A (zh) * 2015-10-13 2017-08-04 马克西姆综合产品公司 用于稳定的物理不可克隆函数的系统以及方法
CN107017990B (zh) * 2015-10-13 2021-05-04 马克西姆综合产品公司 用于稳定的物理不可克隆函数的系统以及方法
CN107370555A (zh) * 2016-05-12 2017-11-21 博通集成电路(上海)有限公司 误差判决方法及其装置
CN107370555B (zh) * 2016-05-12 2020-03-17 博通集成电路(上海)股份有限公司 误差判决方法及其装置
CN107566122A (zh) * 2016-06-30 2018-01-09 恩智浦有限公司 用于执行物理不可克隆功能的多次注册的方法
CN107566122B (zh) * 2016-06-30 2022-02-25 恩智浦有限公司 用于执行物理不可克隆功能的多次注册的方法
CN106301786B (zh) * 2016-08-10 2019-04-02 南京航空航天大学 一种基于sram型存储器的物理不可克隆函数响应纠错电路
CN106301786A (zh) * 2016-08-10 2017-01-04 南京航空航天大学 一种基于sram型存储器的物理不可克隆函数响应纠错电路
CN107194117B (zh) * 2017-06-16 2020-12-22 合肥工业大学 一种蝶形触发器物理不可克隆函数的可靠性提升方法
CN107194117A (zh) * 2017-06-16 2017-09-22 合肥工业大学 一种蝶形触发器物理不可克隆函数的可靠性提升方法
CN107094074A (zh) * 2017-06-28 2017-08-25 东信和平科技股份有限公司 一种数据加密方法及数据加密装置
CN109428721B (zh) * 2017-08-28 2023-06-30 恩智浦有限公司 用于确定物理不可克隆功能电路的健康状况的方法或装置
CN109428721A (zh) * 2017-08-28 2019-03-05 恩智浦有限公司 用于物理不可克隆功能(puf)电路的误差校正电路
CN109670346A (zh) * 2017-10-13 2019-04-23 三星电子株式会社 半导体装置、产生和登记安全密钥的方法、以及电子系统
CN109670346B (zh) * 2017-10-13 2023-06-16 三星电子株式会社 半导体装置、产生和登记安全密钥的方法、以及电子系统
CN107959571B (zh) * 2017-11-04 2021-02-12 上海华虹集成电路有限责任公司 一种用于puf的快速软判决取值生成方法
CN107959571A (zh) * 2017-11-04 2018-04-24 上海华虹集成电路有限责任公司 一种用于puf的快速软判决取值生成方法
CN110034932A (zh) * 2017-11-24 2019-07-19 力旺电子股份有限公司 通讯系统及通讯系统的操作方法
CN110034932B (zh) * 2017-11-24 2022-07-22 力旺电子股份有限公司 通讯系统及通讯系统的操作方法
CN110858169A (zh) * 2018-08-22 2020-03-03 爱思开海力士有限公司 错误校正装置和包括该错误校正装置的电子装置
CN110858169B (zh) * 2018-08-22 2023-03-21 爱思开海力士有限公司 错误校正装置和包括该错误校正装置的电子装置
CN116074001A (zh) * 2023-02-20 2023-05-05 河南牧业经济学院 一种数据压缩加密方法
CN116074001B (zh) * 2023-02-20 2023-07-18 河南牧业经济学院 一种数据压缩加密方法

Also Published As

Publication number Publication date
KR20140099327A (ko) 2014-08-11
WO2013083415A2 (en) 2013-06-13
EP2789116A2 (en) 2014-10-15
US20140325237A1 (en) 2014-10-30
US9396357B2 (en) 2016-07-19
CN104521177B (zh) 2018-03-06
WO2013083415A3 (en) 2013-08-22
EP2789116B1 (en) 2020-09-30
KR102026757B1 (ko) 2019-09-30

Similar Documents

Publication Publication Date Title
CN104521177A (zh) 使用单次注册用于基于存储器的puf的软判决误差校正
US10469273B2 (en) Authentication based on a challenge and response using a physically unclonable function
US9148177B2 (en) Method and system for error correction in transmitting data using low complexity systematic encoder
EP3238199B1 (en) Secure key generation from biased physical unclonable function
CN101923902B (zh) 与带纠错的多级编码相关的方法、系统和装置
CN102880061B (zh) 用于清除位模式中的时效引起的误差的位误差校正
Hiller et al. Review of error correction for PUFs and evaluation on state-of-the-art FPGAs
CN102799495B (zh) 用于生成校验和的装置
CN104115126A (zh) 使用代数码的多阶段ecc编码
CN101944067A (zh) 存储数据的方法和存储器系统
US8856199B2 (en) Random number generator circuit and cryptographic circuit
JP6588048B2 (ja) 情報処理装置
CN103312504A (zh) 用于在进行预校正的前提下重构比特串的装置和方法
CN103051445A (zh) 产生位串的装置和方法
US10469270B2 (en) Data processing devices and methods for reconstructing a PUF value
CN104769675A (zh) 数据处理
Immler et al. New insights to key derivation for tamper-evident physical unclonable functions
CN106708654A (zh) 一种用于NANDflash的BCH纠错码的电路结构
US20090031195A1 (en) Method and apparatus for encoding and decoding Reed-Muller codes
CN103346805A (zh) 一种长bch码的译码系统及方法
US11283469B2 (en) Integrated circuit
WO2023244620A1 (en) Detection and correction of errors using limited error correction data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant