加扰的顺序获得存储器内容,则可按相同的加扰顺序应用该辅助数据或对加扰的存储器内容进行解扰。混合解决方案是可行的,例如,可以移除加扰,即,通过执行是加扰顺序的逆的置换,同时应用一个固定的预定顺序。该预定顺序对于攻击者可以是机密。例如,该系统在制造期间可已经被配置有该预定顺序。该预定顺序对于每个设备可以是不同的。
[0028]该存储器读出单元被配置用于安全地读出存储器。地址加扰器可被用于经存储器接口按加扰的顺序检索存储器内容。存储器加密不直接适用于保护PUF,原因在于它的内容不能够被规定。我们提及加扰以表明通过改变数据的顺序(即,置换数据)来模糊数据,这与通过改变数据本身(即,通过加密)的数据模糊不同。
[0029]对于从PUF重新构造密码密钥,PUF数据必须以特定的预定顺序与辅助数据进行组合。在PUF控制块的设计中,如果可以线性顺序读出辅助数据则更有效。尤其,如果辅助数据是不提供随机访问外部地址总线但是其中必须按块(具有数百到数千比特的典型的块大小)读数据的存储器。例如,如果该辅助数据存储器是闪存,则按不同的顺序读出辅助数据是低效的。如果该辅助数据可被线性地读出,则是有利的。在一个实施方案中,逐块读该辅助数据,线性读每个块。同时,避免在经存储器接口接收该存储器内容之后将存储器内容解扰也是有利的。
[0030]这可通过在存储器读出单元中具有加密和解密单元来实现。该加密单元被配置成对存储器进行加密,该加密单元被配置成按加扰的顺序从存储器接口接收存储器安置的存储器内容,加密接收的存储器内容并且将经加密的内容写回到存储器。该解密单元被配置成将存储器解密,被配置成按预定顺序从存储器接口接收经加密的存储器内容,按所述预定顺序解密所接收的加密的存储器内容以获得存储器安置的存储器内容。
[0031]这提供了以两个阶段将不能够预先编码的数据(诸如存储器上电数据)安全读出。在第一阶段,安全是通过加扰(置换)实现的;在第二阶段,安全是通过加密实现的。第一阶段不给于随机访问,但在第二阶段可按任何期望的顺序访问存储器,尤其是按组合辅助数据所需要的顺序。组合辅助数据所需要的顺序可以是线性的,但还可以是用于附加的模糊的一些其它的预定顺序。在是用于附加的模糊的一些其它的预定顺序的情况下,可按相同的预定顺序为SRAM数据准备辅助数据。从辅助数据的角度来看按何种顺序读出SRAM数据是并不重要,只要与准备辅助顺序时的顺序一样。
[0032]加密可以用临时密钥对每个数据块进行加密。该临时密钥可以被内部地导出到系统。例如,该临时密钥可以是从第二 PUF导出的,可能在PUF控制块的内部,第二 PUF为发生故障的读出和/或加密提供随机性。在一个实施方案中,加密的数据块被立即写回到SRAM存储器中。在一个实施方案中,加密单元按加扰的顺序将加密的内容数据写回,从而用加密的存储器内容覆写存储器内容。
[0033]加扰的读出和加密的写回是在处理辅助数据之前所做的准备步骤。当需要构造密码密钥时,按顺序读出所有SRAM PUF数据并且将其解密,之后将其与辅助数据异或。
[0034]用于按预定顺序安全地读出可写的存储器的电子存储器读出单元是特别有利的。发明人已经意识到,该读出单元同样可被用于其它可写的存储器的安全读出。对于由于一些原因而不能够预先编码或加密(例如,用汉明权重平衡代码加密或编码)的需要安全的、侧信道受保护的读出的任何存储器因此可以被安全地读。该存储器优选地是可写的,这是因为允许双通(two-pass)方法。该存储器可以是易失的,例如,用于作为PUF,或非易失的,例如用于数据转移。
[0035]在一个实施方案中,该读出单元包括另一个易失存储器,该另一个易失存储器不同于用作PUF的存储器,被配置成使得在该另一个存储器每次上电时,第二存储器安置一个噪声存储器内容,从第二存储器中安置的存储器内容中导出种子。
[0036]重复该存储器的读出是有必要的。例如,在一些实施方案中,被用作PUF的存储器可被再次上电,独立于PUF控制块的功率,或更具体地,独立于存储器读出单元。例如,这可以被完成以再次导出密码密钥;这使得该密钥被使用后被立即删除。然而,如果从依赖于上电的PUF获得随机性来创建新的值,例如,基于PUF的存储器,该PUF将不会给出新的加扰顺序。这可通过包括密码单向函数的读出单元来避免,该密码单向函数被配置成应用于种子以获得新的种子,地址加扰器被配置成从该新的种子导出新的加扰顺序,从而用于经存储器接口按新的加扰顺序重新提取存储器内容,而无需上电。例如,该存储器读出单元可被配置成接收被用作PUF的存储器再次上电的信号。一接收该信号,应用单向函数,并且导出新的种子和/或加密密钥。
[0037]该另一个PUF或第二 PUF优选地在PUF控制块和/或存储器读出单元的内部,因此它可能是一个单独的SRAM PUF。第二 PUF可被用于生成随机种子,该随机种子能够被用于创建需要被按顺序读出的存储器地址的随机置换,以测量SRAM PUFo调节算法(例如,散列(hash)函数)可被用于从PUF响应计算随机种子。
[0038]优选地,第二 PUF还由可被容易地集成在IP块中的标准部件组成。对于这种情况,DFF PUF是良好选择。D触发器的启动值足够随机。该单向函数可以是密码块,诸如AES、DES、SHA 等。
[0039]本发明的一个方面是一种用于生成密码密钥的方法。该方法包括:用作物理不可克隆功能的存储器上电,该存储器是可写的并且易失的;允许该存储器安置取决于该存储器的至少部分随机物理特性的存储器内容;经存储器接口按加扰的顺序检索该存储器内容;从该存储器安置的存储器内容中导出密码密钥。
[0040]该方法的一个实施方案包括通过如下步骤加密该存储器:从存储器接口按加扰的顺序接收存储器安置的存储器内容,加密接收的存储器内容,并且将加密的存储器内容写回该存储器,并且包括通过如下步骤解密所述存储器:从存储器接口按预定顺序接收经加密的存储器内容,并按所述预定顺序解密所接收的经加密的存储器内容以获得所述存储器安置的存储器内容。
[0041]根据本发明的一种方法可被实施在计算机上作为计算机实施的方法,或可被实施在专用硬件中或可被实施在二者的组合中。用于根据本发明的方法的可执行代码可被存储在计算机程序产品上。计算机程序产品的实施例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,该计算机程序产品包括存储在计算机可读媒质上的非暂时性程序代码装置,用于当在计算机上执行所述程序产品时执行根据本发明的方法。
[0042]在一个优选地实施方案中,该计算机程序包括计算机程序代码装置,当该计算机程序在计算机上运行时,该计算机程序代码装置适于执行根据本发明的方法的所有步骤。优选地,该计算机程序实施在计算机可读媒质上。
【附图说明】
[0043]通过参考下文中所描述的实施方案,本发明的这些和其它方面将会明显并且得以阐明。在附图中,
[0044]图1a是例示了用于生成密码密钥的电子系统的框图,
[0045]图1b是例示了用于在图1a的系统中使用的密钥导出单元的框图,
[0046]图2是例示了用于生成密码密钥的电子系统的框图,
[0047]图3a是例示了保留加扰的代码字边界的框图,
[0048]图3b是例示了保留加扰的非代码字边界的框图,
[0049]图4是例示了用于生成密码密钥的方法的流程图。
[0050]应注意,在不同的图中具有相同参考数字的项具有相同的结构特征和相同的功能,或者是相同的信号。在已经解释了这样的项的功能和/或结构的情况下,没有必要在具体实施方案中对其进行重复解释。
[0051]框图中的参考数字列表
[0052]100用于生成密码密钥的电子系统
[0053]110用作物理不可克隆功能的存储器
[0054]112,114,116 存储器位置
[0055]120存储器接口
[0056]122数据信道
[0057]124地址信道
[0058]130PUF 控制块
[0059]140地址加扰器
[0060]150 密钥导出单元(key derivat1n unit)
[0061]152缓冲器
[0062]154置换器
[0063]156误差校正逻辑
[0064]200用于生成密码密钥的电子系统
[0065]21OPUF 控制块
[0066]220存储器读出单元
[0067]230密钥导出单元
[0068]240加密单元
[0069]250解密单元
[0070]255地址生成器
[0071]260另一个存储器
[0072]265随机密钥和种子导出单元
[0073]270缓冲器
[0074]280组合器
[0075]285辅助数据存储器
[0076]290误差校正器
[0077]295密钥导出功能单元
[0078]310存储器内容
[0079]312,314,316代码字大小的存储器组块
[0080]320加扰的存储器访问
[0081]322,324,326代码字大小的存储器组块
[0082]330加扰的存储器访问
[0083]510,511,512,514 加密阶段
[0084]520解密阶段
【具体实施方式】
[0085]虽然本发明可能有许多不同形式的实施方案,但是附图中示出了并且将在本文中详细描述一个或多个具体实施方案;应理解,本公开内容应被认为是本发明的原理的例示,而不意在将本发明限于所示出的和描述的具体实施方案。
[0086]图1a和Ib作为示意性框图例示了用于生成密码密钥的电子系统100。
[0087]系统100包括被用作物理不可克隆功能(PUF)的存储器110。该存储器属于可写并易失类型。此外,该存储器具有的属性是在每次该存储器上电时,该储存器安置取决于该存储器的至少部分随机物理特性的存储器内容。物理环境波动通常是由制造过程中小的工艺变化引起的。
[0088]由于该储存器安置的存储器内容取决于这样的物理特性,因此存储器内容识别该存储器的特定实例化。即,两个相同设计的存储器110将在启动时示出足够不同的存储器内容,以识别存储器。例如,存储器110可基于触发器;尤其,存储器110可以是SRAM。
[0089]存储器110包括上电内容被用作PUF的存储器位置的序列。所述存储器位置可通过相应的存储器地址的序列访问,即是读或写可访问的。112、114、116示出该存储器位置的序列中的三个。
[0090]系统100包括PUF控制块130。PUF控制块