用于经由逻辑门加密来提高机密性的系统和方法_2

文档序号:9754234阅读:来源:国知局

[0034]根据本发明的各实施例,可以用普通逻辑块替换图3A中的原始设计中所标识的逻 辑门,使得包括四个逻辑门302-308的逻辑300会表现得如图4所示的那样。在图4的示例中, 每个逻辑门被对应的普通逻辑块402-408替换。普通逻辑块402-408表示通用的逻辑门。出 于这一目的,首先,可以将用于图3A中的逻辑函数中的逻辑门序列化成一个序列,以创建电 路的已知序列。逻辑函数的序列化和合成可以例如通过使用能够生成门的有序串的商业上 可用的工具来自动实现。这种序列化类似于用于创建扫描链的公知扫描机构所用的过程。 分析每种类型的逻辑门或其子集(例如,0R),并向其分配密钥比特的序列k[i:j]410。接着 移除原始设计中所标识的逻辑门或块,并将其替换为能够执行等效函数(此处为k[2:0] = # 011 =〇R)的普通构建块402-408。结果,替换的AND门例如无法与OR门区分开。
[0035]虽然普通构建块402-408能够被配置为执行某些期望的函数,但图4的构造400对 于攻击者无用,除非构建块402-408也能被适当地配置有先前包含在现在替换的逻辑门中 的信息,使得逻辑能够执行其预期的函数。在一个实施例中,使用扫描链将已经记录的密钥 比特加载回到硅片中,以相应地移动比特。这样的好处是比特的顺序保持不变,因而消除了 在不同顺序间置换的需求。
[0036]在一个实施例中,在防篡改的存储器中存储由密钥比特410表示的配置信息,以稍 后用作解密密钥。在上电情况下,或必需时,状态机或软件可以从防篡改存储器提取密钥比 特410,并将它们移入其对应的逻辑门。结果,逻辑函数400恢复图3A的逻辑函数的性质,因 而以期望的方式操作。
[0037]注意,可以为序列中的任何以及全部剩余的逻辑门重复替换普通构建块402-408 的过程。自动化、计算机控制的替换过程的优点之一是它消除了重新实施或重新构建要保 护的现有电路的需要。本领域普通技术人员会理解,可以在创建步骤和硬件实施中合并扫 描链和序列化逻辑。图5提供了例如S1 404的每个普通块的细节的示例。
[0038] 图5示出了根据本发明的各实施例的通用可配置逻辑单元。在图5所示的实施方式 中,逻辑单元500包括外部输入信号502-508和输出信号512,包括时钟信号504。解码器530 将输入信号Q0-Q2 522-524解码到函数戸540中。函数F 540例如为AND函数,其接收来自 解码器530的输出的门信号S0-S4 532-536以及输入信号A和B 506和508,并由此生成输出 信号Y 512。本领域普通技术人员会理解,逻辑单元500可以被设计为处理串联和/或并联构 造中的任何数目的比特,并且对函数进行加载和配置的许多改变都是可能的。
[0039] 图6示出了根据本发明的各实施例的图5所示的通用可配置逻辑单元的细节。具体 而言,显示了函数戶540的细节。A和B 602-604为函数F 540的实际输入,并且Y 608为 输出。图7和图8所示的表700和800描述了根据本发明的各实施例的可配置逻辑单元。图7显 示了解码器的输入702和输出704。图8据此显示了函数的输入802和输出804。
[0040] 返回图4,为了解密逻辑400,系统启动时,在运行期间或在需要时,以与先前用于 加密逻辑函数的顺序相同的顺序将逻辑密钥比特410加载到逻辑构建块402-408中。这配置 了逻辑构建块402-408,并使它们表现得像图3A所示的初始逻辑函数。
[0041]在逻辑密钥比特410中出现任何错误的情景下,逻辑构建块402-408将执行未知的 或无效的操作。在一个实施例中,在上电时执行内置自测试(BIST),并且将内置自测试与逻 辑密钥比特410的加载结合,以便利用BIST和密钥加载都通过例如逻辑扫描来使用序列化 逻辑这一事实。根据本发明的各实施例,图9示出了通过使用无效或错误密钥来解密逻辑函 数的效果。
[0042] 图9包括逻辑函数900,其利用表示错误的逻辑密钥010010001000而不是正确的逻 辑密钥011010001000的普通逻辑块。如图9中的示例所示,试图通过施加具有单个比特错误 的无效逻辑密钥来解密逻辑函数900产生了错误的逻辑表达式NOT (AND (z,AND (NOT (y ),AND (w,x))))。尽管输出930可以仍然是一些操作逻辑函数,即,使用其它密钥可以或可以不产 生一些操作逻辑,但它不是能够执行为系统设计的操作的期望的逻辑函数。换言之,如果逻 辑密钥比特中存在任何错误,则使整个逻辑函数无效,使得逻辑构建块902-908将输出未知 或无效的操作。
[0043]注意,不同于现场可编程门阵列,该系统不必被设计为能够在运行期间表示一个 以上任意逻辑函数。通常,仅激活初始设计的有效逻辑函数,同时所有其它不正确的组合是 不使用的。另外,逻辑密钥比特中的错误可以导致系统闭锁和其它违例。因此,在一个实施 例中,普通逻辑块被设计为避免这些不想要的效果。
[0044] 关于制造时的可测性,测试期望的函数并验证其是正确的,同时不必测试任何不 期望的无效(即,错误配置的)函数,除非在需要确保正确函数的可靠操作的程度上。例如, 能够加载逻辑密钥比特以解锁逻辑函数,并且能够执行扫描,就像其在验证正确时序的常 规测试流程中一样。对于不正确的逻辑函数,可以测试电路以确保不正确的逻辑不会永久 地对系统产生负面影响(例如,通过导致毁灭性闭锁)。注意,不同于正确函数,时序无关紧 要,并且可以或可以不满足不正确的函数。
[0045]虽然上述发明对逆向操纵造成强大障碍,但可以采取额外步骤来保护密钥材料, 使其不可被潜在的入侵者访问。在一个实施例中,持有秘密的逻辑密钥因此被存储在防篡 改、电池支持的非易失性存储器中。逻辑的间接存储可以通过使用无需电池的替代品来实 现。一个实施例使用物理不可克隆功能(PUF)作为安全的物理元件。PUF-般为随机、设备唯 一、但恒定的数,其在设备被探测到时可以改变。因此,这种唯一标识元件充当极好的加密 密钥。
[0046]根据本发明的各实施例,图10示出了使用安全的物理元件的逻辑密钥保护。PUF 1002提供了设备唯一的唯一安全物理元件d,其由特定设备的硬件确定。PUF 1002可以用来 保护秘密密钥。基于非安全物理元件和秘密密钥来预计算解锁密钥1004(被表示为X)。该解 锁密钥1004可以根据设备而不同,使得即使攻击者设法从一个芯片提取解锁密钥1004也是 没用的,因为解锁密钥1004是针对每个设备来个性化的。逻辑密钥k 1006包括先前计算的 密钥比特。能够以其反函数给出用于解锁密钥X 1004的值的方式(即fHcUlOix)来设计数 学函数f(d,x)=k 1010。接着,对于给定PUF d 1002和逻辑密钥k 1006,能够根据1 = k)来计算解锁密钥X 1004。
[0047]用于说明目的的一个简单示例是X0R操作。假设x= (d XOR k),那么k= (d X0R X),即需要PUF d 1002和解锁密钥X 1004二者来计算逻辑密钥k 1006。换言之,因为X 1004 取决于PUF d 1002,需要PUF d 1002来根据解锁密钥X 1004计算k。但是,这也意味着解锁 密钥X 1004是可计算的,因为所有必需信息是已知或可确定的。具体而言,从设计函数获知 逻辑密钥k 006,并能够根据测量来确定PUF d 1002的值作为例如制造过程的一部分。给定 PUF d 1002和逻辑密钥k 1006,能够根据X = f1(d,k)来计算解锁密钥X 1004。实践中,使用 强密码函数fc〇而不是X0R。
[0048]接着,可以例如在设备的0ΤΡ、闪存、电池支持的SRAM或其它非易失性存储器内部 存储解锁密钥X 1004的值。对于潜在的攻击者,获取解锁密钥X 1004的值极低,因为解锁密 钥X 1004自身无法用来激活其它设备。解锁密钥X 1004也不能解锁设备的逻辑函数。
[0049]在一个实施例中,在设备启动时、或在使用逻辑函数时,设备将逻辑密钥k 1006计 算为k = f(d,x),并将逻辑密钥k 1006加载到(即,移动到)逻辑块构造中,从而激活正确的 逻辑函数。作为优点,仅需要将解锁密钥X 1004而不是密钥k 1006本身存储在芯片上,使得 成功地混淆了逻辑密钥k 1006。注意,如果直接存储k,则PUF 1002对密钥k 1006没有任何 影响。本领域普通技术人员会理解,能够使用改变速度、大小或更复杂的密码属性的众多函 数,包括公共密钥密码。
[0050]在一个实施例中,扩展图10中描述的系统,使得在上电或首次使用时不会自动激 活加密的逻辑函数1020。相反,例如通过使用至微处理器
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1