CN103051445A - 产生位串的装置和方法 - Google Patents
产生位串的装置和方法 Download PDFInfo
- Publication number
- CN103051445A CN103051445A CN201210387976XA CN201210387976A CN103051445A CN 103051445 A CN103051445 A CN 103051445A CN 201210387976X A CN201210387976X A CN 201210387976XA CN 201210387976 A CN201210387976 A CN 201210387976A CN 103051445 A CN103051445 A CN 103051445A
- Authority
- CN
- China
- Prior art keywords
- puf
- verification
- bit
- reconstruct
- bits
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Abstract
本发明提供了一种重构使用在电子设备中的PUF A的方法。该方法包括在只读存储器(15)中提供校验和C;产生有错误的PUF B;借助错误校正算法从B中重构出PUF A,其中,该算法被设置成所述算法在极小部分情况下产生用于PUF A的多个非唯一的结果(A1,A2,…,An),并且在所有其他情况下产生单个的、可能不正确的结果;借助校验和C确定(540)多个非唯一的结果(A1,A2,…,An)中的哪个是正确的PUF A,或所得到的单个的结果是否与正确的PUF A相应。
Description
技术领域
本发明涉及加密技术领域,本发明的一个方面涉及是物理层防克隆功能的重构的装置和方法,尤其是其在电子芯片卡卡中的使用。
背景技术
缩写PUF指的是物理层防克隆函数,也被称为物理Hash函数(hashfunktion)。其基本构思是将客体的物理特性数字化并且由此获得属于该对象的位串。在此值得期待的是:两个不同的物理客体的位串彼此间是不相关的。用于进行说明的简单实例是纸张。在显微镜下进行观察时,识别出了木屑或纸浆的特定的细微结构。这种位串就是属于纸张的PUF。另一纸张通常展现出的是完全不同的位串,也就是说是与第一张纸的位串无关的一种位串。概念“位串”和“比特串”在下文中被用作为同义词。
由物理客体的特性产生位串(PUF)的过程被称为PUF生成。PUF的主要应用方面在于为全电子或计算机化的加密方法制造密匙,例如,能够将PUF比特串自身用作为密码密匙或者说加密密钥,或能够将PUF比特串压缩成较短的比特串并且将后者用作为密匙,这种做法具有特定的优点。后面的那种方法通常应用在芯片卡中,其中,将用于生成PUF的结构或者说机制集成到了芯片卡的电子器件中。根据这种方式,通过PUF生成以及使用PUF生成产生出密钥避免了必须将密钥本身存储在芯片卡中的、可能存在安全隐患的情况。
PUF结构的值得期待的特性在于,相同的物理客体(即,例如,同一个芯片卡)在重新生成PUF的过程中每次均给出同一个位串。尤其是在不同的环境条件,如,温度、空气湿度、亮度、电场和磁场强度等下应该仍然会得到相同的结果。
但通常并不是这样的。同一个物理客体的、重新生成的PUF通常会给出不同的位串。虽然该位串彼此间肯定是类似的,但彼此并不完全相同。人们试图利用编码原理(错误校正)来弥偿该缺陷。
在此情况下进行了以下操作。给出一物理客体。首先产生出属于该客体的PUF位串A。比特串A即是第一次PUF生成的结果。在编码原理中,比特串A被视为一个应通过易受到干扰的渠道进行传输的消息,其中,预期的是在传输过程中出现错误,也就是说预期单个的比特输入失败,也就是说0变成了1或反之。在编码原理中,通过使消息A具有冗余信息并且传输代码字(A,R)来应对该问题。当传输出现错误时,基于该冗余信息R,能够利用编码原理的方法来校正该错误。在校正之后重新得到了无错误的消息字A。
该构思被用在了PUF生成中。初始的PUF值A(在第一次PUF生成时得到的值)被视作为真正的PUF值。从该真正的PUF值中计算出了从属的冗余值R。R被称为辅助信息,并且借助R(在后面的时间点上)重构出真正的PUF值。
简单起鉴,在此假设真正的PUF值A是在其中首先出现PUF生成的那个比特串。实际上例如,在制造过程中芯片卡真正的PUF值是在芯片卡个人化的过程中确定的。在此,通常多次地或频繁相继地产生PUF值,并且例如,将平均值或最为频繁地出现的那个值定为真正的PUF值。另一种方法是将冗余算在内。假设需要800比特长的PUF值。为了具有冗余而产生了(例如)1000比特长的PUF值。在工厂中随后多次(例如,100次)地产生1000比特的PUF值。在该100次的生成过程中不稳定的,即,不始终示出相同的比特值的每个比特位置被视作是无效的。假设具有840个在100次PUF生成过程中每次都出现相同比特值的位置,那么便从这840个位置中挑选出例如,800个位置,并且将这800个位置定为真正的PUF值。
借助编码原理计算出来的值R被存储下来。出于安全原因,PUF值A自己不会被存储并且不会一直被提供使用。原因是,PUF值A直接被用作为密码密匙,或从其中推导出密码密匙。如果PUF值A是容易得到的,那么则不再将所属的密匙视为是保密的。在之后重新生成PUF时得到了新的PUF值B。值B通常与A不同,但与A之间仅存在细微的差别。其目的在于由可用的值B重新获得真正的PUF值A。
借助R和编码原理来实现上述目的。
B->(B,R)->(A,R)->A
实际的和当前的PUF值B也扩充了辅助信息R,在此A,B和R是比特串。在编码原理的范围内,比特串(B,R)则被视作为有错误的字并且随后借助编码原理对该错误进行校正。得到了错误调整字(A,R)。此时尤其得到了真正的PUF值A。
由最后产生的和现有的PUF值B重构出真正的PUF值A的这个目的只有在B与A差别不大的情况下才能实现。在编码原理的术语学中:当在生成B时没有出现过多错误的情况下,视作与初始的真正的PUF值A相应。
PUF的技术形成方式取决于新产生的PUF值B与真正的PUF值A之间的典型差别的大小,即,需要进行校正的典型错误的多少。分别根据PUF的技术形成方式,B与A之间的差别小于位置的1%,如在0.3%或0.6%,或最大到15%。B与A的平均值之间的差别越大,实现PUF重构算法的硬件则越大且更为昂贵。这也意味着更高的制造费用,更高的场地需求,以及实际上更高的能量消耗。
与此相关的原因有很多。当应由PUF值构成128比特长的保密的密匙时,产生了以下参数:
错误率越高(即,B与A的差别越大),那么为了最终获得安全的128比特的密钥,比特串A和B就必然越长。当例如,B相对于A出现15%的错误时,为了提供128比特的保密的密匙,那么A(并且由此还有B)的长度必然约为4000比特。当仅出现了1%的错误时,为了同样提供128比特长的保密的密匙,那么A和B可能约为600比特长。上述值和比例的计算均借助编码原理来实施,并且对本领域的技术人员而言应是公知的,因此在此将不再进行详细的描述。
错误出现的越多,必须使用的错误校正算法就越庞大,由此实施校正的成本就更高且由此更为昂贵。
可以假设PUF结构具有固定的、不可变化的错误率。然后选择出正好能够校正所出现的错误的代码,即,能够由B重构出真正的PUF值A的能够校正所出现的错误的代码。
在此,当利用一种代码在平均值中直至百万分之一(1ppm=百万分之一)的情况下实现错误校正,该代码则被视为是“设计良好的”。而例如,仅在十亿分之一(或几乎没有)的情况下才出现错误校正失败的代码在此则被称为“设计过度的”。在10.000分之一(或更小)的情况下就已经出现校正失败的代码应被视作是“设计不足的”。“设计良好的”这种表达指的是以下这种情况,即,在PUF重构中,1ppm的可靠性在大多数实际的加密应用中便足够了。“设计良好的”代码的所谓的1ppm的参考值在此仅被理解成为一个典型的实例。根据应用情况,该参考值也可以明显更小(自动化技术,航空学)或更大(消费品领域中的低价位产品)。
“设计过度的”代码具有高可靠性的优点,但必须以相应昂贵的错误校正算法作为代价。因此例如,实施错误校正算法的硬件模块可能具有大面积和高能量消耗。
由于其较低的硬件实施费用,“设计不足的”代码可能是有吸引力的。但对于大多数应用而言,10.000比1的可靠性却是无法接受的。
基于上述实施例的背景,在芯片卡的现有技术中对给定的、具有特定错误率的PUF实施了“设计良好的”错误校正算法。这种变型方式的缺陷在于,实施所选择的算法所需要的硬件相对较为昂贵。在此主要有两个原因使得对硬件的需求增大:PUF重构的可靠性越高,错误校正代码必然更为庞大,也就是说其计算性能更为强化,同时PUF值A(或B)也必然越大。这两个因素导致PUF模块具有更多电路元件,即,更大的硬件面积和更高的电流消耗,并且同时进行解码则需要更长运行时间。与线性的相比,其复杂性基于代码的长度通常出现了更为明显的提高。这对于已经在众多产品领域中进行使用的芯片卡专属的PUF密钥而言是一个巨大的障碍。
发明内容
基于上述背景,需要能够在避免上述缺陷的条件下实现PUF生成的方法和装置。
基于上述背景,由此提出了一种使用在根据权利要求1的芯片卡中的PUF重构方法,以及一种根据权利要求14的相应的装置。从属权利要求、附图以及说明书中给出了本发明的其他优选的方面。
根据一个实施例,提出了一种使用在电子装置中的PUF A的重构方法。该方法包括:在只读存储器中提供校验和C;产生有错误的PUF B;借助错误校正算法从B中重构PUF A,并且其中,该算法被设置成在极小部分情况下(in einem Bruchteil der Faelle)产生用于PUF A的多个非唯一的(uneindeutige或者说非明确对应的)的结果(A1,A2,...,An),并且在所有其他情况下产生单个、可能不正确的结果;借助校验和C来确定多个非唯一的结果(A1,A2,...,An)中的哪个是正确的PUF A,或所得到的单个的结果是否与正确的PUF A相应(entspricht)。
根据另一个实施例,提供了重构PUF A的装置。该装置包括:产生有错误的PUF B的单元;在其中存储着校验和C的只读存储器;被设置用于借助错误校正算法由B重构出PUF A的计算单元,并且其中,该算法被设置成在极小部分情况下(in einem Bruchteil der Faelle)产生用于PUFA的多个非唯一的结果(A1,A2,...,An),并且在所有其他情况下产生单个的、可能不正确的结果;并且计算单元另外被设置成借助校验和C来确定多个非唯一的结果(A1,A2,...,An)中的哪个是正确的PUF A,或所得到的单个的结果是否与正确的PUF A相应。
本发明涉及了一种用于实施公开的方法的装置并且还包括用于分别实施各个方法步骤的装置部件。可以通过硬件部件,通过借助相应的软件进行了编程的计算机,通过以上两者的组合,或以任意另一种方式实施这些方法步骤。本发明另外还涉及了一种方法,所描述的各个装置根据该方法进行工作。该方法包括用于实施这些装置的每个功能的方法步骤。
另外,应结合附图中所示的实施例来阐述本发明,这些实施例中给出了其他优点和变形。
附图说明
图1示出了根据本发明的实施方式产生校验和的方法;
图2示出了根据本发明的实施方式产生校验和的装置的示意图;
图3示出了根据实施方式进行错误校正的示意性说明;
图4示意性地示出了根据实施方式重构PUF的方法;
图5示出了根据实施方式的芯片卡的示意图。
具体实施方式
下面将描述本发明的不同的实施方式,其中一些实施方式也在附图中示例性地示出了。在下面的附图说明中,相同的附图标记涉及的是相同的或类似的部件。通常仅对不同的实施方式之间的不同之处进行说明。因此,也可能描述作为一个实施方式的一部分的特征而不与其他实施方式相结,以产生出其他的实施方式。
本发明的实施例涉及的是在重构PUF时“设计不足的”代码,也就是,在重构时可靠性通常等于或次于1比10.000的代码的应用。然而,分别根据应用情况,具有明显更好的可靠性的代码仍可被视作是设计不足的。其标准在于:该可靠性对于相关的应用目的而言是否是令人满意的。作为对所出现的错误率或统计学上出现的不确定性或结果的多值性的弥偿,引入了另一个辅助值C,即,所谓的PUF校验和来补充辅助值R(冗余信息)。在此,可以如下方式选择辅助值R和C,即,即使是在设计不足的代码的高错误率的情况下,仍以大于一比十亿的可靠性来实现PUF重构。通过引入C使得PUF重构的可靠性得到了提高,即,其可靠性例如,相应于设计过度的代码,但却没有带来设计过度的代码的缺陷。
由此,通常明显更短的比特串校验和C从属于所产生的比特串形式的PUF值A。在由新生成的PUF值B重构出真正的PUF值A时使用了校验和C。在此,校验和C被使用在两个方面,一方面是验证PUF重构的正确性,而另一方面是在错误校正的多值性下作为判断标准。
由于使用了发展不良的(设计不足的)代码,错误校正无法始终是单值的,该校正在例如,大约10.000分之一的情况下可能是多值的。除了上述PUF值B和被存储下来的冗余R以外,对A而言还存在多种方案。而在几乎所有的情况下,借助校验和C即可从大量不同的方案备选中确定出真正的PUF值A。
图1示出了根据实施例产生PUF校验和C。为了产生校验和而使用了密码的或者说加密的(kryptographische)分组加密(Blockchiffre),例如,高级加密标准(AES)。总之正如该标准在许多芯片卡上的应用情况一样,它也适用于例如,在芯片卡、在PUF结构上实施AES模块10的情况。任意恒定的128比特串被用作为明码文本。例如,串0包括128个零。真正的PUF值A被用作为AES-密匙。AES密钥具有128比特,其他可能的密钥长度例如,为192和256比特,但在此这并不重要。PUF值A通常长于128比特。例如,该值可能为1000比特长。随后则延长了24比特,所有比特均为例如,零。延长的PUF串现具有1024比特。1024相应于8倍的128。延长的PUF值被分成8个长度为128的组。这8个组为A1,A2,…,A8。这8个组被按顺序地用作为AES密钥。利用这些AES密钥分别对明码文本0=00…0进行了加密。在此获得了8个密码率(Chiffrate)C1,C2,…,C8。这些密码率以比特的方式进行eXOR运算。该XOR和
C=C1XOR C2XOR…XOR C8
就是所期望的PUF校验和C。
根据实施例,利用AES产生PUF校验和C的另一种可能方式在于上述八个部段A1,A2,...,A8以比特方式进行eXOR运算从而得到128比特的向量V。然后将V用作为AES密钥。所得到的密码率C就是PUF校验和。
应注意到:根据普遍的观点AES代表了高加密。因此,在刚刚论述的这两个方法中AES实际上并不可能从校验和C中推断出真正的PUF值A。因此,可以将PUF校验和C存储在例如,只读存储器(如,EEPROM)或控制器30的另一个存储器中,由此可将其视为准公开的;甚至可以将其存储在可公开提供使用的数据库中,而由此并不会威胁到真正的PUF值A的安全。
图2示出了根据实施例用于产生给定的PUF值A的校验和C的另一个实例。在此,使用了线性的、反馈连接(rueckgekoppeltes)的移位寄存器50。反馈连接的移位寄存器的线性在此并不重要,在实施方式中也可以不是线性的。当在装置/芯片卡或其控制器上没有实施高加密模块的情况下,该移位寄存器实施方式可能是尤其有利的。
在反馈连接的移位寄存器50中可以存储任意长度的PUF值A。移位寄存器的长度N(也就是触发器D0至DN-1的数量)就是同时得到的PUF校验和C的长度。该移位寄存器的初始占用(Belegung)可以是任意的。在其中每个存储单元(Zelle)均为零的全部为零的状态也是允许的。当PUF值A在移位寄存器中被完全读取之后,移位寄存器的最终占用体现了PUF校验和C。
移位寄存器50的长度N以及PUF值A的长度可以是任意的,但要限制移位寄存器最长等于PUF值A。在实施例中可以明显更短。
但移位寄存器不应该太小,否则检验和的效力就太小了。总之,校验和的目的有助于PUF的重构。可以示例性地假设移位寄存器具有64的长度,该长度(非限制性的)是个适用的值。
PUF重构有错误的几率,借助编码算法从新生成的PUF值B中所获得校正过的PUF值A与真正的PUF值A并不完全一致的几率,以及同时校验和无法帮助掩盖该错误的几率为1除以264。在长度为N的移位寄存器中,该几率同样为1除以2N。因此,所选择的移位寄存器应该足够大。
假设移位寄存器具有长度N。该移位寄存器可以是线性的或非线性的。PUF值A的长度可以大于或等于N。移位寄存器的初始占用可以是选定的,但也可以是任意的。那么下面的、在此被称为假设1的结论就是有效的:当所存储的PUF值A的确是随机的并且由此被等分的话,那么移位寄存器的可能的2N个不同的最终占用中的每个则均具有相同的出现几率。换言之,所得到的N比特长的校验和同样被等分(gleichverteilt)。
假设2在此被总结成以下结论:源于假设1的上述特性展现了一个使用反馈连接的移位寄存器来产生PUF校验和的重要原因。然而,与图1的实例不同,借助移位寄存器所生成的校验和C并不是通过高加密的庞大的方法所产生的,甚至当移位寄存器是非线性的也不是。因此,对于侵入者而言,对校验和C的认知能够使其推断出真正的PUF值A。同样的也适用于利用编码算法由真正的PUF值A所计算出的冗余信息R,并且为了与校验和共同重构出真正的PUF值A,该冗余信息是必需的。
冗余信息R和校验和C重新被视作为公开的信息。为了确保从真正的PUF值A中获得的加密密钥的安全性或保密性,因此要注意以下条件:该机密的比特长度等于真正的PUF值A的比特长度减去冗余信息R的比特长度再减去移位寄存器所生成的校验和C的比特长度。在实施例中,C的长度为30比特至150比特,真正的PUF A和实际的PUF B的长度为100比特至5000比特。在产生PUF B时的平均错误率约为0.3%至15%,通常为0.5%至10%。
在非限制性的实施例中,真正的PUF值A具有800比特的长度。更为具体的说,在实施错误校正算法时所必需的冗余信息R为600比特。应该从PUF值中获得更为安全的、128比特长的加密密匙。在这个实例中,所使用的、用于产生PUF校验和C的移位寄存器最高允许为72单元长,其原因在于根据上述原则800-600-72=128。
在图1中展现出的是加密的分组加密,图2中展现出的是产生用于设计不足的代码的校验和C的线性移位寄存器50。而原则上每个函数都适用于计算校验和,这些函数均具有源于上述假设1的等分特性:这些函数被公知为Hash函数。假设2的结论也适用于该状况,校验和被视为是公开的并且由此减小了机密的比特长度。
然而,如果Hash函数具有所谓的单向函数(OWF,one way function),那么它就可以公开地存储,而不泄露关于加密密匙的信息。这些所谓的加密的Hash(哈希)函数(例如,公知的SHA-1,SHA-2,Whirlpool-算法)的使用适用于例如,控制器上存在相应模块的情况。因此,图1示出了例如,如何使用AES来产生加密的哈希和C。
如上面已经描述的那样,PUF校验和C具有两个功能(函数):
a)能够检测是否对错误进行了正确的校正;
b)在多值(mehredeutigen)的错误校正中提供了判断标准。
下面将阐述特性b)。出于该目的首先是编码原理中的几个事实:
来看二进制线性的(n,k,d)代码。参数n,k,d具有以下含义:
n是代码字长,也就是代码字中的比特数量。
k是代码的尺寸。也就是说k精确地给出了2^k=2k(2的k次方)个不同的代码字(k始终小于n)。存在2^n个不同的n比特字,但只有2^k个这种n比特字是代码字。所有2^n个n比特字的集合构成了(数学上从线性代数的角度看)n维的向量空间V。所有代码字的集合就是V的k维子空间。
d叫作线性代码的最小距离(minimum distance)。
最小距离d是两个不同的代码字彼此间能够具有的可能最小的距离。
两个代码字的距离,或一般为两个n比特字之间的距离(也被称为Hamming-距离)与不同的比特位置的总数相等。例如,两个8比特字a=(11001010)和b=(10101010)彼此间的Hamming距离d(a,b)=2。
最小距离d对代码的错误校正性能而言是决定性的参数。最小距离越大,代码能校正的错误就越多。
错误校正根据以下原则:首先是代码字。也就是说,传输的消息或被存储的消息始终以一个或多个代码字的形式存在。
根据实施例转换成PUF生成的情况也许更加复杂。然而,无论如何真正的PUF值A都与一个(或多个)代码字相结合,从而可以将编码原理的方法使用在由新生成的PUF值B重构真正的PUF值A的过程中。
在通过容易受到干扰的渠道传送消息时,或在存储介质中存储消息的过程中,或在重新生成PUF时均可能出现错误。当没有错误出现时,那么该消息便与初始的代码字相同。
然而,当出现错误时,那么当前的(有错误的)消息通常就不再是代码字了。然而,当出现的错误少于d/2个(每代码字)时,那么仍存在一个最接近现有的信息的代码字。错误校正(也就是说解码算法)的目的在于确定该唯一特定的代码字,换言之就是由当前的、有错误的消息重构出初始的消息。这被称为“最近邻域解码”。
然而,当所出现的错误多于d/2个,例如,有r个错误,且r>=d/2(r大于或等于d/2)时,那么通常当前的(有错误的)消息便不再唯一从属于一个代码字。通常会出现以下情况:围绕着当前的消息字半径为r的球体包括多个代码字。
图3中对该情况进行了几何式说明。在3个圆圈70,72,74中间的小方块代表了所接收到的3个消息60,62,64。水平线和垂直线的每个交叉点(也就是说,图3中的每个阵点)均代表了一个可能的消息。那些小的、均匀地分布在3x3的矩阵中的点代表了代码字。
在图3中示出了围绕着各个消息字的三个不同大小的球体70,72,74。小的球体70具有半径r<d/2,并且该球体恰好包括一个代码字80。消息的校正在于:利用球体内部的、唯一的特定的代码字来替代该代码字。这就是解码算法的作用。
中等大小的球体72包括两个代码字82,83。其半径略大于d/2。由此可以不唯一地校正消息(通过小的中央的方块62表示)。然而需要附加的标准来指出应该用哪个代码字来替代该消息。
大的球体的半径比d/2大得多。该球体包括18个不同的代码字(84,85,86,…,出于表达原因未将所有都标记出)。此时不再可能,或仅在花费极大的情况下才能确定出正确的代码字。
应该将概念“围绕着消息字a的半径为r的球体”更为精确地阐述为:
在一个实例中,a=(10111110)是一个8比特长的消息。围绕着a的半径r=3um的球体由所有8比特的字构成,这些字具有与a之间的0,1,2或3的Hamming距离。
这总共有1+8+28+56=93个字。由此,存在一个字,即,a本身,该字与a之间的Hamming距离为0。还正好存在8个与a的Hamming距离为1的字。存在28(=8利用2计算出(über 2))个与a之间的Hamming距离为2的字。并且正好存在56(=8利用3计算出(über 3))个与a之间的Hamming距离为3的字。
图3中的第一种情况(小的球体)可以单独利用解码算法来处理。为此需要辅助信息R。
在图3的第二种情况(中等大小的球体)下,编码原理提供了两种可能的方案:球体内的两个可能的代码字。对此需要辅助信息R。为了确定这两个方案中的哪个方案是正确的,则要为这两个方案计算校验和,并且将所获得的校验和与附加的辅助信息C相比较。其校验和与C相同的那个方案将作为正确的方案被接受。
在第三种情况(图3中的最大的球体)下,费用最高。此时PUF值的重构将失败。
在另一个非限制性的实施例中,为了进行说明,PUF值A为480比特长。其目的仍旧是由PUF值A中获得保密的128比特的密钥。对于错误校正而言,使用了例如长n=15并且最小距离d=7的线性代码。
PUF值A被分成了32个长度为15的部段:A=(A_1,A_2,...,A_32)。每个15比特的部段均受到了单独的处理。假设A_j是一个这种类型的15比特部段。由于最小距离d=7,在A_j中所有的1,2和3比特的错误均得到了唯一地校正。对错误校正而言,10个冗余比特是必要的。假设R_j是行向量,那么该行向量则包括用于A_j的这10个冗余比特。由于具有32个部段A_1,A_2,…,A_32,所以也存在32个冗余向量R_1,R_2,…,R_32。这32个冗余向量构成了辅助信息H_1。辅助信息H_1即包括320比特。
通过32比特的LFSR实现了辅助信息H_2:480比特长的PUF值A被置入(eingefuettert)到32比特长的线性反馈连接的移位寄存器(LFSR)中。LFSR的初始占用可以是任意的。例如,在开始时完全以零占用移位寄存器(LFSR)。在置入了480比特的PUF值A之后,LFSR必然处在某个特定状态中。对LFSR的状态进行了描述的32比特的行向量构成了校验和C。该校验和C代表的是辅助信息H_2。
在这个实例中,两个辅助信息H_1(320比特)和H_2(32比特)被存储在了EERPOM(或控制器的另一个存储元件)中。由此,关于PUF串A的352比特的信息处在(不安全的)EEPROM中。还剩下480-352=128个保密比特。由此可以从480比特的PUF串A中提取出128比特长的加密密钥。
假设B是在后期的某个时间点上新生成的PUF值。根据B应该能够重构出A。480比特长的比特串B被分成了32个部段B_1,B_2,...,B_32,每个均为15比特长。这32个部段B_j受到了单独的处理:也就是说,根据B_j应该能够重构出A_j。当32个部段中的每个均实现了该重构时,那么由此便实现了根据现有的PUF值B重构出真正的PUF值A的目的。校验和C由此便完全不是必要的了。但也可将其作为“双重检验”来使用,从而检验在将重构的A输入到LFSR中以后是否会得到与校验和C=H_2相同的LFSR的最终占用。
为了从B_j中得到部段A_j,要采取以下步骤:
1.从EEPROM中获取冗余向量R_j;
2.R_j取决于B_j:提供了25比特长的行向量(B_j,R_j);
3.将10比特长的向量(所谓的集合)分配给25比特长的行向量(B_j,R_j)。该集合随后构成了用于适合的解码算法的输入。假设不使用解码算法,或出于费用原因不愿将这种解码算法实施成适用的硬件模块,那么则始终还存在借助集合表格实现解码(即,错误校正)的可能性。可以在软件或硬件中实施该集合表格。然后通过表格查找来实现解码。
在此情况下,集合具有10比特。一个集合由此可以代表10比特的数字,也就是说代表了0和1023中的一个整数。该集合表格包括了1024行。在左侧栏中的是集合,即,0至1023中的一个整数。旁边是从属的错误位置。当没有错误出现(也就是当B_j=A-j)时,那么集合等于零。集合等于0被视作是没有错误的表现。
当仅进行唯一的(eindeutige)错误校正时,那么集合表格会具有以下表现:存在15个不同的集合,这些集合相应于1比特的错误。也就是说,在集合表格的15行中,在集合的右侧出现了1至15中的一个数字,该数字示出了1比特的错误在15比特的向量B_j中的位置。这在一个实例中可以如下行所示:
集合=177,错误位置为8。
存在105(=二项式系数15通过2算出(über 2))个不同的集合,这些集合相应于2比特的错误。也就是说,在集合表格的105行中,集合的右侧是由1至15之间的两个数字构成的数字对,这两个数字示出了错误位置。这在一个实例中可以如下行所示:
集合=65,错误位置(3,11)。
存在455(=二项式系数15通过3算出(über 3))个不同的集合,这些集合相应于3比特的错误。也就是说,在集合表格的455行中,在集合右侧的是3个数字构成的三数字(Tripel)。这在一个实例中可以如下行所示:
集合=522,错误位置(4,7,15)。
存在488个集合,这些集合相应于多比特的错误(4或多个错误)。数字x=488由1024=1+15+105+455+x中得出。也就是说,集合表格中的488行均为空。在集合旁的这种行之一中写的是“多比特错误”。
出于节省目的,可以将集合表格的这488行完全去除。
可以如下方式使用该集合表格:
1.接收B_j;
2.构成(B_j,R_j);
3.计算所属的集合S;
4.当S=0时,结论是没有产生错误。否则,在S不等于0时,在集合表格中查找S。若在表格中发现了S,便从表格中相应地提取出错误位置并且相应地校正B_j。若在表格中没有发现S,那么便放弃(也就是说,在B_j中出现四个或更多错误)。
对于多值的错误校正则必须对集合表格进行扩展。扩展的程度取决于多少错误是可校正的。假设还应该对所有4比特的错误进行校正。那么存在于集合表格中的是在上述实例中显示为“多比特错误”的行,其具有例如以下形式:
集合=199,错误位置(1,3,5,9);(2,7,11,13)(*)
这意味着:当集合为199时,由于4比特错误出现在位置1,3,5和9上,由此可能出现上述情况,但还可能在2,7,11和13处出现4比特错误。错误校正由此是多值的。但该集合不可能判断什么是正确的情况。为此需要校验和C。
再次关注实例。观察32个部段B_1,B_2,...,B_32。与上述行(*)中的情况相应,例如,在部段B_1获得了集合199。
假设从部段B_2中获得了集合789,那么集合表格包括了以下行:
集合=789,错误位置(2,4,7);(1,5,11,15)。
假设在剩余的30个部段B_1,B_2,...,B_32中分别给出了一个集合,那么该集合或者是零或者是集合表格中的任意一行,在该行中不存在4比特错误或多比特错误。可以唯一地或者单值地校正这30个部段。不确定性(多值性)只用于部段B_1和B_2。
现存在两种校正B_1的可能,并且同样存在两种校正B_2的可能。因此,总共有四种可能从(B_1,B_2)中推导出部段(A_1,A_2)。这四个可能中的每个均利用现有的单值的特定的方案A_3,A_4,...,A_32来重新产生PUF值A。也就是说存在PUF值A的四个备选项。
为了确定这四个备选项中的哪个是正确的,要将这4个值中的每个值均输入到LFSR中并且将所得到的最终占用与校验和C相比较。所期待的是所得到的4个最终占用中只有一个与C相符。那么这个就是正确的被重构的PUF值A。
要注意的是:在每种情况下用于R和C的值均被视作是没有错误的,其原因在于这些值(与PUF本身不同)是通过特有的代码有针对性地和可能得到保障地存储起来的。因此所有的集合都被排除示出任意一个R_j中的错误。这有助于减少多值性数量。
图4示出的是根据实施例的用于重构PUF A的方法500的示意性概况图。在步骤510中,在只读存储器中提供了校验和。在步骤520中,产生了有错误的PUF B。然后在步骤530中借助错误校正算法从B中重构出PUF A,并且其中,该算法被设置成其在极小部分情况下产生用于PUF A的多个非唯一的结果(A1,A2,...,An),并且在所有其他情况下产生单个的、可能不正确的结果。在步骤540中则借助校验和来确定多个非唯一的结果(A1,A2,...,An)中的哪个是正确的PUF A,或确定所得到的单个的结果是否与正确的PUF A相应。在本文中,使用密码密匙,以利用分组加密或电流加密(Stromverschluesselung)进行加密,优选为AES或Triple-DES
图5示意性地示出了带有根据实施方式的用于重构PUF A的装置的芯片卡40。芯片卡40包括用于产生有错误的PUF B的单元42,以及在其中存储有校验和C的只读存储器15。该芯片卡还包括计算单元44,该计算单元被设置成借助错误校正算法从B中重构出PUF A。计算单元44优选地包括实施AES方法的加密模块10,但该加密模块也可以实施任意其他的技术人员所公知的加密方法。
Claims (22)
1.一种重构使用在电子设备中的PUF A的方法(500),包括:
-在只读存储器(15)中提供(510)校验和C;
-产生(520)有错误的PUF B;
-借助错误校正算法从B中重构(530)出PUF A,其中,所述算法被设置成所述算法在极小部分情况下产生用于PUF A的多个非唯一的结果(A1,A2,…,An),并且在所有其他情况下产生单个、可能不正确的结果;
-借助校验和C确定(540)
-所述多个非唯一的结果(A1,A2,…,An)中的哪个是正确的PUF A,或
-所得到的单个的结果是否与正确的PUF A相应。
2.根据权利要求1所述的方法,其中,通过将加密的分组加密和PUFA作为密钥应用于比特串来产生所述校验和C,优选地通过高级加密标准(AES)。
3.根据权利要求1所述的方法,其中,通过将线性的、反馈连接的移位寄存器(50)应用于PUF A而产生所述校验和。
4.根据权利要求1至3中任意一项所述的方法,其中,A和B的长度为100比特至5000比特。
5.根据上述权利要求中任意一项所述的方法,其中,B的平均错误率为0.3%至15%。
6.根据上述权利要求中任意一项所述的方法,其中,所述错误校正算法在重构A时使用了辅助信息R。
7.根据上述权利要求中任意一项所述的方法,其中,R包括校验和C。
8.根据上述权利要求中任意一项所述的方法,其中,R是公开的,而A的不可复制性由第三方给出。
9.根据上述权利要求中任意一项所述的方法,其中,所述方法在电子设备,优选地在芯片卡(40)上实施。
10.根据上述权利要求中任意一项所述的方法,其中,所述校验和C被存储在只读存储器(15),优选地在EERPOM(20)中。
11.根据上述权利要求中任意一项所述的方法,其中,所述校验和C具有30比特至150比特的长度。
12.根据上述权利要求中任意一项所述的方法,另外包括:
-从PUF A中产生出密码密匙。
13.根据权利要求12所述的方法,其中,使用密码密匙,以利用分组加密或电流加密进行加密,优选为AES或Triple-DES。
14.一种用于重构PUF A的装置,包括:
-用于产生有错误的PUF B的单元(42);
-只读存储器(15),在所述只读存储器中存储有校验和C;
-计算单元(44),被设置成借助错误校正算法从B中重构出PUF A,并且其中,所述错误校正算法被设置成其在极小部分情况下产生用于PUF A的多个非唯一的结果(A1,A2,…,An),而在所有其他情况下产生单个的、可能不正确的结果;并且还被设置成借助校验和C来确定,
-所述多个非唯一的结果(A1,A2,…,An)中的哪个是正确的PUF A,或
-所得到的单个的结果是否与正确的PUF A相应。
15.根据权利要求14所述的装置,其中,A和B的长度为100比特至5000比特。
16.根据权利要求14或15所述的装置,其中,其中,B的平均错误率为0.3%至15%。
17.根据权利要求14至16中任意一项所述的装置,其中,所述错误校正算法在重构A时使用了辅助信息R。
18.根据权利要求14至17中任意一项所述的装置,其中,R包括所述校验和C。
19.根据要求14至17中任意一项所述的装置,其中,R存储在所述装置的只读存储器(15)中,优选地在EERPOM(20)中。
20.根据权利要求14至19中任意一项所述的装置,其中,所述校验和C被不加密地存储在只读存储器(15)中,优选地在EERPOM(20)中。
21.根据权利要求14至20中任意一项所述的装置,其中,所述校验和C的长度为30比特至150比特。
22.根据上述权利要求中任意一项所述的装置,另外包括:
-加密单元(10),所述加密单元被设置成借助从A中产生出的密钥,以利用分组加密或电流加密进行加密,优选地根据AES-或Triple-DES方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102011054410.0A DE102011054410B4 (de) | 2011-10-12 | 2011-10-12 | Vorrichtung und Verfahren zur Erzeugung einer Bitfolge |
DE102011054410.0 | 2011-10-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103051445A true CN103051445A (zh) | 2013-04-17 |
Family
ID=47990446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210387976XA Pending CN103051445A (zh) | 2011-10-12 | 2012-10-12 | 产生位串的装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130094648A1 (zh) |
CN (1) | CN103051445A (zh) |
DE (1) | DE102011054410B4 (zh) |
FR (1) | FR2981472A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105097003A (zh) * | 2015-09-18 | 2015-11-25 | 芯佰微电子(北京)有限公司 | 一种用于安全芯片的内建密钥只读存储器保护电路 |
CN107749791A (zh) * | 2017-10-17 | 2018-03-02 | 东南大学 | Ldpc码在puf基于码偏移架构纠错中的应用方法及装置 |
CN108243008A (zh) * | 2016-12-23 | 2018-07-03 | 智能Ic卡公司 | 使用高可靠性物理不可克隆功能的秘密密钥生成 |
US20210119812A1 (en) * | 2020-12-23 | 2021-04-22 | Intel Corporation | Time-based multi-dimensional key recreation mechanism using puf technologies |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102012213040B4 (de) * | 2012-07-25 | 2014-03-20 | Infineon Technologies Ag | Decoder für physikalisch nicht klonbare Funktionen mittels Schwellendekodierung und entsprechendes Verfahren |
US9048834B2 (en) | 2013-01-16 | 2015-06-02 | Intel Corporation | Grouping of physically unclonable functions |
US9697359B2 (en) * | 2015-04-15 | 2017-07-04 | Qualcomm Incorporated | Secure software authentication and verification |
US10516504B2 (en) * | 2018-03-08 | 2019-12-24 | Chin Pen Chang | Two bit error calibration device for 256 bit transfer and the method for performing the same |
CN108768619B (zh) * | 2018-06-08 | 2021-07-06 | 中国电子科技集团公司第五十八研究所 | 一种基于环形振荡器的强puf电路的工作方法 |
US11108572B2 (en) * | 2018-10-11 | 2021-08-31 | Taiwan Semiconductor Manufacturing Company, Ltd. | Physically unclonable function device with a load circuit to generate bias to sense amplifier |
DE102021105402A1 (de) * | 2021-03-05 | 2022-09-08 | Infineon Technologies Ag | Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001095273A1 (fr) * | 2000-06-08 | 2001-12-13 | Bull Cp8 | Procede de stockage securise d'une donnee sensible dans une memoire d'un systeme embarque a puce electronique, notamment d'une carte a puce, et systeme embarque mettant en oeuvre le procede |
CN102065098A (zh) * | 2010-12-31 | 2011-05-18 | 网宿科技股份有限公司 | 网络节点之间数据同步的方法和系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397850B1 (en) * | 2000-02-09 | 2002-06-04 | Scimed Life Systems Inc | Dual-mode apparatus and method for detection of embolic device detachment |
US7165076B2 (en) * | 2002-11-15 | 2007-01-16 | Check Point Software Technologies, Inc. | Security system with methodology for computing unique security signature for executable file employed across different machines |
US7751585B2 (en) * | 2004-06-28 | 2010-07-06 | Microsoft Corporation | System and method for encoding high density geometric symbol set |
US7702927B2 (en) * | 2004-11-12 | 2010-04-20 | Verayo, Inc. | Securely field configurable device |
US8516269B1 (en) * | 2010-07-28 | 2013-08-20 | Sandia Corporation | Hardware device to physical structure binding and authentication |
US8386990B1 (en) * | 2010-12-07 | 2013-02-26 | Xilinx, Inc. | Unique identifier derived from an intrinsic characteristic of an integrated circuit |
US8700916B2 (en) * | 2011-12-02 | 2014-04-15 | Cisco Technology, Inc. | Utilizing physically unclonable functions to derive device specific keying material for protection of information |
-
2011
- 2011-10-12 DE DE102011054410.0A patent/DE102011054410B4/de not_active Expired - Fee Related
-
2012
- 2012-10-05 FR FR1202668A patent/FR2981472A1/fr not_active Withdrawn
- 2012-10-10 US US13/648,634 patent/US20130094648A1/en not_active Abandoned
- 2012-10-12 CN CN201210387976XA patent/CN103051445A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001095273A1 (fr) * | 2000-06-08 | 2001-12-13 | Bull Cp8 | Procede de stockage securise d'une donnee sensible dans une memoire d'un systeme embarque a puce electronique, notamment d'une carte a puce, et systeme embarque mettant en oeuvre le procede |
CN102065098A (zh) * | 2010-12-31 | 2011-05-18 | 网宿科技股份有限公司 | 网络节点之间数据同步的方法和系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105097003A (zh) * | 2015-09-18 | 2015-11-25 | 芯佰微电子(北京)有限公司 | 一种用于安全芯片的内建密钥只读存储器保护电路 |
CN108243008A (zh) * | 2016-12-23 | 2018-07-03 | 智能Ic卡公司 | 使用高可靠性物理不可克隆功能的秘密密钥生成 |
CN108243008B (zh) * | 2016-12-23 | 2021-03-16 | 智能Ic卡公司 | 用于生成秘密信息的系统和方法 |
CN107749791A (zh) * | 2017-10-17 | 2018-03-02 | 东南大学 | Ldpc码在puf基于码偏移架构纠错中的应用方法及装置 |
CN107749791B (zh) * | 2017-10-17 | 2020-07-31 | 东南大学 | Ldpc码在puf基于码偏移架构纠错中的应用方法及装置 |
US20210119812A1 (en) * | 2020-12-23 | 2021-04-22 | Intel Corporation | Time-based multi-dimensional key recreation mechanism using puf technologies |
Also Published As
Publication number | Publication date |
---|---|
US20130094648A1 (en) | 2013-04-18 |
DE102011054410A1 (de) | 2013-04-18 |
DE102011054410B4 (de) | 2014-09-25 |
FR2981472A1 (fr) | 2013-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103051445A (zh) | 产生位串的装置和方法 | |
JP5770026B2 (ja) | 半導体装置 | |
CN1794628B (zh) | 生成密钥的装置和方法 | |
US8250659B2 (en) | Apparatus and method for protecting the integrity of data | |
CN104521177A (zh) | 使用单次注册用于基于存储器的puf的软判决误差校正 | |
EP3926476A1 (en) | Aggregate ghash-based message authentication code (mac) over multiple cachelines with incremental updates | |
CN107251475A (zh) | 来自物理不可克隆功能的加密密钥产品 | |
CN103312504B (zh) | 用于在进行预校正的前提下重构比特串的装置和方法 | |
EP2773061B1 (en) | A method and an apparatus for deriving secret information from a series of response values and a method and an apparatus for providing helper data allowing to derive a secret information | |
JP6588048B2 (ja) | 情報処理装置 | |
CN103348625B (zh) | 认证者、被认证者和认证方法 | |
CN103404077A (zh) | 认证方、被认证方和认证方法 | |
CN106469099B (zh) | 在应用wom码的情况下的错误纠正 | |
CN104541283A (zh) | 二维码验证装置、二维码生成装置、二维码验证方法及程序 | |
CN113065169B (zh) | 一种文件存证方法、装置及设备 | |
CN103814355A (zh) | 使用误差-校正编码方案在计算环境中生成用于资产集合的标识符的容忍变化方法 | |
US20170237573A1 (en) | Data processing devices and methods for reconstructing a puf value | |
US9678924B2 (en) | Method and data processing device for reconstructing a vector | |
US11093588B2 (en) | Memory system including data obfuscation | |
CN103703446A (zh) | 网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置 | |
JP2013131869A (ja) | 個体別情報生成装置、暗号化装置、認証装置、及び個体別情報生成方法 | |
US20150039899A1 (en) | Method for encrypting a plurality of data in a secure set | |
JP5986279B2 (ja) | 半導体装置 | |
US7313235B2 (en) | Device and method of applying a parity to encrypt data for protection | |
CN112614558A (zh) | 基于区块链的电子病历共享方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130417 |