本发明属于集成电路硬件安全,尤其涉及一种针对逻辑锁定技术的结构攻击方法。
背景技术:
1、为了应对针对集成电路的反向工程问题,逻辑锁定(logic locking)被提出,逻辑锁定被认为是最安全集成电路加密方式。逻辑锁定对网表进行修改,插入加密电路及防篡改存储器,只有在防篡改存储器内数据(称为密钥)正确时,电路才可以正常工作。
2、图1为逻辑锁定的一种分支sfll-hd(hanming-distance based stripped-function logic locking,基于汉明距离的逻辑剥离逻辑锁定)方法,通过“汉明距离比较器b”实现错误注入,当“汉明距离比较器b”的输入与某定值的汉明距离为x时,翻转电路中的某个信号。“汉明距离比较器a”实现错误纠正,当输入与密钥的汉明距离为x时,会纠正已经被翻转的信号。当密钥正确时,对于所有输入模式(即输入的值),输入都正常,否则存在部分输入模式的输出错误。
3、近十几年,出现了许多针对逻辑锁定的攻击方法,其中,sat(booleansatisfiablity based attack)攻击,valkyrie攻击最为有效致命。
4、sat攻击利用反复使用sat求解器求解一种测量电路,获得错误的输入模式,并利用正常工作的芯片的扫描链获得正确的输入输出对以排除错误的密钥。sat攻击是非常高效的攻击方式。但现有的sat攻击方法对sill方法的攻击时间过长。
5、valkyrie攻击属于结构攻击,以图1所示的sfll-hd方法为例,其攻击步骤如下:
6、遍历网表中所有信号,找到网表中同时受到所有密钥驱动的信号 cs1。再找到cs1 信号的扇入网络的所有原始输入,我们称它们为有效输入。2. 遍历网表所有信号,找到网表中同时受到所有有效输入驱动的信号cs2。cs1 和 cs2 被称为关键信号。3. 将所有关键信号断开,将其作为新的密钥输入。此时再进行 sat 攻击获得密钥,通常这时只需要很少的迭代就能成功。
7、且目前能防御这两种攻击的方法有sill(structural interference logiclocking,基于结构混淆的逻辑锁定)。
8、sill利用利用多组加密单元,每个加密单元为为 sfll-hd 中的基本结构,即一个错误注入模块和一个错误纠正模块,每组单元都可以使用部分输入信号,每组单元也都有各自的密钥,各组密钥之间允许重合,每一组可以干扰网表中的一个节点。sill 结构如图2所示,多组加密单元为图中加密单元 a 和加密单元b,部分输入信号为图中部分输入 a和部分输入 b,每组单元各自的密钥为密钥a和密钥b。
9、sill可以通过控制每个加密单元的密钥数量以及汉明距离以保证对sat攻击的抗性,即使得sat攻击在可接受的时间内无法完成。此外,valkyrie攻击无法破解sill,因为valkyrie攻击会把密钥a与密钥b混淆,无法找到正确的关键信号。
10、由于sill基于混淆多个加密结构,valkyrie方法的找到关键信号的步骤中无法分辨出混淆后的结构,也就无法找到正确的关键信号以加速破解。
技术实现思路
1、本发明目的在于提供一种针对逻辑锁定技术的结构攻击方法,以解决上述的技术问题。
2、为解决上述技术问题,本发明的一种针对逻辑锁定技术的结构攻击方法的具体技术方案如下:
3、一种针对逻辑锁定技术的结构攻击方法,破解开始前,通过反向工程获得加密电路的网表,以及购买正常工作的芯片并获得完整的扫描链接入,所述方法包括如下步骤:
4、步骤1:对所有密钥k进行分组;
5、步骤2:根据密钥组找到所有的关键信号cs1;
6、步骤3:将所有找到的关键信号断开,设置其为新的密钥。
7、进一步的,所述步骤1包括如下具体步骤:
8、步骤1.1:首先找到所有直接与密钥相连接的异或门或同或门,该门的输出信号为x,将x添加到可疑信号集合c;
9、步骤1.2:对c中每一个信号c进行遍历,找到被c驱动的门,如果驱动该门的所有信号都在c中,则将该门的输出信号添加到可疑信号集合c;
10、步骤1.3:完成一次遍历后,记录本次遍历中可疑信号集合是否有新增,若无新增则进行步骤1.4,否则重复步骤1.2对增加信号后的可疑信号集合c进行遍历;
11、步骤1.4:再次遍历c中所有的信号c,当某个信号c的输出不在集合c中时,认为此信号较为可疑,将其添加到关键信号备选信号集合cs;
12、步骤1.5:对cs中每一个信号cs,计算其扇入网络中包含多少个密钥,当密钥数量大于5时,认为其为关键信号,将其添加到集合cs2中,同时,其对应的所有密钥划分为一个密钥组,key_group(cs2)。
13、进一步的,所述步骤2包括如下具体步骤:
14、步骤2.1:对每一个密钥组key_group(cs2),找到其所对应的所有原始输入pi_group(cs2);
15、步骤2.2:对每一个pi_group(cs2),遍历其中的每一个信号pi_group(cs2),判断所有被pi_group(cs2)驱动的信号的所有输入是否都在pi_group(cs2)中,如果是,则将其添加到cs1_group(cs2)中,重复该步骤,直至无法找到任何新的信号添加到cs1_group(cs2)后,进行下一步;
16、步骤2.3:遍历所有cs1_group(cs2)中的信号,判断其是否驱动了不在cs1_group(cs2)中的信号,如果为真,则继续判断该信号的扇入网络中原始输入数量是否与kep_group(cs2)的数量一致,如果一致,则该密钥组的关键信号已成功找到。
17、进一步的,所述步骤2.1的方法是找到被某密钥直接驱动的异或门或同或门的非密钥原始输入,该原始输入即为某密钥所对应的原始输入。
18、进一步的,所述步骤3如果有密钥组在第二步中查找失败,则不需要将其断开。
19、进一步的,所述步骤3将所有找到的关键信号断开,设置其为新的密钥后,将新形成的网表进行sat攻击。
20、本发明的一种针对逻辑锁定技术的结构攻击方法具有以下优点:本发明通过网表中密钥之间的逻辑关系对密钥进行分组,防止混淆所有密钥,分组后对每一组都尝试找到其关键信号。找到关键信号后将其断开,将断开的关键信号作为额外密钥输入并进行sat攻击,从而达到了加速破解的效果。本发明可以加速破解多种逻辑锁定方法,特别是sat攻击即valkyrie攻击都无法有效破解的sill方法。本破解方法对sfll-hd等方法同样有效。
1.一种针对逻辑锁定技术的结构攻击方法,破解开始前,通过反向工程获得加密电路的网表,以及购买正常工作的芯片并获得完整的扫描链接入,其特征在于,所述方法包括如下步骤:
2.根据权利要求1所述的针对逻辑锁定技术的结构攻击方法,其特征在于,所述步骤1包括如下具体步骤:
3.根据权利要求1所述的针对逻辑锁定技术的结构攻击方法,其特征在于,所述步骤2包括如下具体步骤:
4.根据权利要求3所述的针对逻辑锁定技术的结构攻击方法,其特征在于,所述步骤2.1的方法是找到被某密钥直接驱动的异或门或同或门的非密钥原始输入,该原始输入即为某密钥所对应的原始输入。
5.根据权利要求1所述的针对逻辑锁定技术的结构攻击方法,其特征在于,所述步骤3如果有密钥组在第二步中查找失败,则不需要将其断开。
6.根据权利要求1所述的针对逻辑锁定技术的结构攻击方法,其特征在于,所述步骤3将所有找到的关键信号断开,设置其为新的密钥后,将新形成的网表进行sat攻击。