1.一种面向逻辑加密电路的功能分析方法,其特征在于,包括:
S1:获取市场上已激活加密电路和目标加密电路,确定目标加密电路的原始输入位数、密钥输入位数、输出位数;
S2:使用已激活加密电路生成训练数据集,所述数据集包括指定数量的正确输入输出对,且正确输入输出对均是按照区分输入序列进行构建;
所述区分输入序列对于一组随机生成的原始输入向量 至少可以区分两个不同密钥和S3:根据目标加密电路的原始输入位数、密钥输入位数、输出位数初始化改进粒子群算法的参数,将种群中特定个体在预设数据集上的适应度设置为适应度函数;
S4:根据适应度函数计算初始化粒子群的适应度,得到个体极值、群体极值和全局极值,根据学习因子将个体向个体极值和群体极值进行学习,生成新种群;
S5:根据全局极值判断是否需要重新生成新种群;
根据全局极值判断是否需要重新生成新种群,包括:
当前全局极值是否连续t次迭代都没有得到改善,若没有改善,则算法进入遗传算法阶段,根据当前种群重新生成新种群;
算法进入遗传算法阶段,根据当前种群重新生成新种群,包括:
使用基于精英保留的二元锦标赛选择方式作为算法的选择算子,每次当前种群中取出一定数量个体,根据每个个体的适应度值选出其中适应度最好的一个个体,重复该操作,直到新的种群规模达到原来的种群规模,得到新种群;
使用基本的单点交叉作为算法的交叉算子,在精英保留后的新种群中选择基因位不一样的两个不一样的个体,对选出的两个个体随机选择一个对应基因位不同的位置进行交叉,生成两个新的个体;
对交叉处理后的新种群进行变异操作,确定参数变异位数flip,在1到flip之间随机确定一个整数n,对当前个体随机选择n个位置进行反转,得到最终的新种群;
S6:判断改进粒子群算法是否得到最大迭代次数,若达到最大迭代次数,则算法迭代结束,得到全局最优值,若没有达到终止条件则重复S3‑S6;
S7:得到最优值之后,根据适应度函数利用已激活加密电路计算最终密钥的实际精度,以此精度评估加密电路的安全性。
2.根据权利要求1所述的一种面向逻辑加密电路的功能分析方法,其特征在于,使用已激活加密电路生成训练数据集,包括:设置数据集的大小为P,从已激活加密电路选择数据集大小两倍的区分输入序列,并根据每一个区分输入序列的区分能力进行排序,选择区分能力更高的前一半区分输入序列作为最终的数据集。
3.根据权利要求2所述的一种面向逻辑加密电路的功能分析方法,其特征在于,所述区分能力,包括:其中,Dk表示第k个区分输入序列的区分能力,S表示随机生成的密钥的数量,sk表示S个随机密钥中被区分出的随机密钥个数,P表示数据集的数量。
4.根据权利要求1所述的一种面向逻辑加密电路的功能分析方法,其特征在于,所述改进粒子群算法,包括:使用由全局最优值引导的遗传算法来重新优化种群。
5.根据权利要求1所述的一种面向逻辑加密电路的功能分析方法,其特征在于,根据目标加密电路的原始输入位数、密钥输入位数、输出位数初始化改进粒子群算法参数,包括:种群个数n,最大迭代次数G,学习因子a和b,是否重新生成种群判断代数t,根据原始输入位数、密钥输入位数、输出位数都是由0,1构成的序列将种群中每个个体都初始化为随机的0和1构成的二进制序列。
6.根据权利要求1所述的一种面向逻辑加密电路的功能分析方法,其特征在于,根据适应度函数计算初始化粒子群的适应度,包括:其中,P表示数据集的数量,N表示逻辑电路输出向量的位数,HM表示计算向量之间的海明距离的函数,F表示个体的适应度值,F值越接近1,代表该个体的适应度越好,Clock表示加密电路的功能函数, 表示预设的数据集中一个电路的原始输入, 表示加密电路的密钥输入,Coracle表示已激活加密电路的功能函数。
7.根据权利要求1所述的一种面向逻辑加密电路的功能分析方法,其特征在于,根据学习因子将个体向个体极值和群体极值进行学习,生成新种群,包括:向个体极值学习:
向群体极值学习:
其中, 表示经过学习后的生成的新种群,Pbest表示个体极值,Genbest表示群体极值,a、b分别表示第一、第二概率, 表示第i次迭代的待优化粒子的第j位。
8.一种面向逻辑加密电路的功能分析系统,用于实现如权利要求1‑7所述的一种面向逻辑加密电路的功能分析方法,其特征在于,包括:电路计算模块、数据集生成模块、算法计算模块、密钥输出和验证模块;
电路计算模块加载已激活加密电路和目标加密电路,并根据指定的输入向量,通过计算得到对应的电路响应,即电路输出向量,种群适应度计算以及最优密钥的精度验证;
数据集生成模块按照预设要求生成特定的数据集;
算法计算模块加载预设的功能分析算法,设置自定义参数,并利用电路计算模块实时计算当前种群的适应度以迭代优化密钥;
密钥输出和验证模块对最终生成的最优密钥做进一步的精度验证。