用于帮助逻辑加密的系统、方法和计算机可访问介质的制作方法

文档序号:9620928阅读:245来源:国知局
用于帮助逻辑加密的系统、方法和计算机可访问介质的制作方法
【专利说明】
[0001] 相关申请的交叉引用
[0002] 本申请涉及并且要求于2013年3月14日提交的美国专利申请No. 61/782,606的 优先权,该申请的全部内容通过引用合并到本文中。
技术领域
[0003] 本公开内容总体上涉及对于集成电路("1C")的保护,并且更具体地涉及用于通 过指数混淆来保护1C的系统、方法和计算机可访问介质的示例性实施例。
【背景技术】
[0004] 集成电路设计的全球化正使得IC/知识产权("IP")设计者和用户重新评估他们 对于硬件的信任。(参见例如参考文献2)。因为1C设计流程可以被分布在全世界,所以硬 件会易于受到新的种类的攻击,例如逆向工程和IP侵权。(参见例如参考文献1)。在设计 流程中任何地方的攻击者可以逆向工程IC/IP的功能。攻击者然后可以剽窃并且要求对于 IP的所有权。不可信的1C代工厂(foundry)可能滥造1C并且非法销售它们。最终,代工 厂中的流氓分子可以在设计者不知道的情况下将恶意电路(例如硬件木马)插入设计中。 (参见例如参考文献3)。因为这些攻击,半导体产业每年损失大约40亿美元。(参见例如 参考文献4)。
[0005] 如果设计者可以在1C经历不同的、潜在不可信的设计流程阶段时隐藏1C的功能, 则这些攻击可以被挫败。(参见例如参考文献1)。通过将附加的门插入原始设计中,逻辑 混淆可以隐藏设计的功能和实现。为了使设计能展现其正确的功能(例如产生正确的输 出),则必须向经混淆的设计提供有效的密钥。被插入以用于进行混淆的门可以是密钥门 (key-gate)。在施加错误的密钥时,经混淆的设计可以展现不正确的功能(例如产生错误 的输出)。
[0006] 例如,图1示出使用两个密钥门K1和K2进行混淆的示例性电路。输入II至16可 以是功能性输入,并且K1和K2可以是连接至密钥门的密钥输入。在施加正确的密钥值(K1 =0和K2 = 1)时,设计可以产生正确的输出;否则,其可以产生错误的输出。如图2所示, 可以将逻辑混淆合并到1C设计流程中。(例如,参见例如参考文献1)。在不可信的设计阶 段,可以对1C进行混淆并且可以不泄露其功能。在制造完成后,IP供应商可以通过施加有 效密钥来激活经混淆的设计。密钥可以存储于在设计内部的显窃启(tamper-evident)的 存储器中以防止攻击者的访问,使得密钥输入不能被攻击者访问。
[0007] 如果攻击者可以确定用于进行混淆的密钥,则可以使逻辑混淆失败。通过确定密 钥,攻击者可以对功能网表进行解密,以及制作1C的盗版复本并且非法销售它们。攻击者 可以应用特定的输入模式,观察这些模式的输出并且对密钥进行解密。为了执行该攻击,如 图2所示,攻击者可以利用经混淆的网表和功能性1C。攻击者可以从1C设计或者通过对布 局(210)、掩膜(215)或制成的IC(220)进行逆向工程来获得经混淆的网表(205)。功能性 IC(225)然后可以在公开市场中被销售。
[0008] 如果可以使未知密钥的值在不被其他密钥位和输入掩蔽/破坏的情况下对输出 敏感,则可以确定未知密钥的值。通过观察输出,在给出作为X源(例如与未知X源类似的 那些)的其他密钥位的情况下,可以确定敏感的密钥位。未初始化的存储单元、总线争用或 多周期路径(multi-cyclepaths)可以是未知响应位的源(例如测试中的未知X源)并且 可以是狮子可控(lion-controllable)的。
[0009] -旦攻击者可以确定可以在没有任何干扰的情况下向输出传送密钥位值的输入 模式,则可以将其应用于功能性1C(例如,具有正确密钥的1C)。该模式可以向输出传送正 确的密钥值。攻击者可以观察该输出并且解析该密钥位的值。
[0010] 例如,如图1所示,如果在门G6的其他输入处的值可以为0 (例如用于0R(或)门 的非控制性值),则可以使密钥输入K1对输出01敏感。这可以通过设置II= 1、12 = 0和 13 = 0来实现。因为攻击者可以访问功能性1C,所以攻击者可以应用该模式并且在01上 确定K1的值。例如,如果01的值对于该输入模式可以为0,则K1 = 0,否则K1 = 1。
[0011] 该问题与存在可以阻断/掩蔽故障传送的未知X值的情况下的故障敏化问题类 似。(参见例如参考文献5)。密钥位K1和密钥位K2可以相当于图1中的X源XI和X源 X2。故障检测和密钥传送二者均可以利用通过以下操作来使故障影响/密钥位敏感的输入 模式:阻断X源/其他密钥位中的一些或者全部的影响并且阻止它们的干扰;将敏化路径 上的所有门的旁侧输入调整至门的非控制性值。然而,两者略微不同在于:故障检测还可以 涉及通过将故障部位调整至故障值的故障激活,而密钥传送可以仅利用敏化。故障检测可 以旨在阻断/避免未知X源,而密钥传送可以旨在每次识别未知的一个,以产生迭代和动态 过程。
[0012] 图3示出示例性电路图,该示例性电路图示出攻击者如何不能将密钥位的影响分 别地传送至集成电路的输出,该集成电路可以是与图1所示的功能性电路相同的功能性电 路。然而,如图3所示,密钥门K1和K2可以处于不同位置。在此,如果攻击者必须传送密 钥中的任一者的影响,则攻击者必须在G4的另一输入上强加'01(例如N0R(或非)门的非 控制性值)。为了强加该值,攻击者必须控制密钥输入,而密钥输入可以是不可访问的。因 此,攻击者不能将密钥的影响传送至输出,从而不能确定密钥的值。
[0013] 为了阻止对1C的攻击,可以通过以使得仅在可以将某些条件强加在其它密钥输 入上的情况下才可以传送密钥值的方式来插入密钥门以阻碍密钥敏化。因为这些密钥输入 不可以由攻击者进行访问,所以攻击者不能强加对密钥的影响进行传送所需的值。因此,必 须采用暴力破解。
[0014] 可以将逻辑混淆技术大致分为两类:时序的和组合的。在时序逻辑混淆中,可以将 附加逻辑(例如黑色)状态引入状态迀移图中。(参见例如参考文献7)。
[0015] 例如,可以以使得仅在应用正确的密钥位序列时设计才达到有效状态的方式对状 态迀移图进行修改。如果密钥可以被撤销,则设计再次以黑色状态(blackstate)结束。在 组合逻辑混淆中,可以引入X0R(异或)门/XN0R(同或)门以隐藏设计的功能。(参见例如 参考文献1)。还可以通过插入存储元件来执行混淆。(参见例如参考文献8)。电路仅在这 些元件能被正确编程时才正确地运行。然而,使用存储元件会引起显著的性能开销。
[0016] 因此,提供强防卫型方案和/或系统可以是有益的,其可以利用智能逻辑混淆并 且可以克服本文上面所述的问题中的至少一些问题。

【发明内容】

[0017] 本公开内容的这些以及其他目的可以通过提供用于对1C进行加密的示例性系 统、方法和计算机可访问介质来实现,示例性系统、方法和计算机可访问介质可以包括:使 用干扰图来确定用于在一个或多个1C中插入一个或多个门的位置;以及在一个或多个位 置处将一个或多个门插入一个或多个1C中。在一些示例性实施例中,可以至少部分地基于 一个或多个位置对其他的一个或多个位置的影响来构造干扰图。在某些示例性实施例中, 可以生成图形节点和至少一个图形边,其中,图形节点与至少一个位置有关,至少一个图形 边与至少一个位置对至少一个其他位置的影响的可消除程度有关。
[0018] 在本公开内容的一些示例性实施例中,可以向一个或多个非可减弱边分配第一权 重并且可以向一个或多个可减弱边分配第二权重。第一权重可以高于第二权重。可以基于 使一个或多个图形边的权重的总和最大化的门来选择一个或多个密钥门。可以基于一个或 多个密钥门来更新干扰图。一个或多个密钥门可以是X0R(异或)门或者XN0R(同或)门。
[0019] 根据本公开内容的另外的示例性实施例,确定过程可以包括:对干扰图执行团分 析以确定至少一个位置,并且团分析的团可以充分大以增强对电路的加密。一个或多个门 可以包括多路器、X0R(异或)门或XN0R(同或)门。在一些示例性实施例中,一个或多个 门可以被配置成基于不正确的密钥而破坏1C的功能。
[0020] 在本公开内容的另一示例性实施例中,可以提供可以具有基于干扰图而确定的位 置的一个或多个门的1C。
[0021] 本公开内容的示例性实施例的这些以及其它目的、特征和优点在结合所附权利要 求阅读以下对本公开内容的示例性实施例的详细描述时将变得明显。
【附图说明】
[0022] 根据结合示出本公开内容的说明性实施例的附图的以下详细描述,本公开内容的 其他目的、特征和优点将是明显的,在附图中:
[0023] 图1为示出使用两个密钥门进行混
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1