一种基于类粒子群正态优化算法的skinny算法组件优化方法

文档序号:1363414 发布日期:2020-08-11 浏览:31次 >En<

阅读说明:本技术 一种基于类粒子群正态优化算法的skinny算法组件优化方法 (SKINNY algorithm component optimization method based on particle-group-like normal optimization algorithm ) 是由 金鑫 段玉玮 张莹 毛明 于 2020-03-09 设计创作,主要内容包括:一种基于类粒子群正态优化算法的SKINNY算法组件优化方法,包括步骤如下:1、设定SKINNY密码算法组件格式;2、种群初始化,生成符合要求的初始种群用于后续优化;3、种群个体预处理,对种群中的个体进行预处理,使其符合SKINNY密码算法组件格式,用于后续目标函数计算;4、设定SKINNY密码算法目标函数,根据SKINNY密码算法所需要优化的性能指标,选择确定轮数下的活跃s盒数作为优化标准,计算方式作为SKINNY密码算法目标函数;5、种群迭代更新,根据类粒子群正态优化算法的设定对初始种群进行更新迭代,最终得到符合设定指标下的种群;6、算法输出,根据设定,对符合要求的算法组件进行存储,并输出一个或多个性能最优的算法组件。(A SKINNY algorithm component optimization method based on a particle-group-like normal optimization algorithm comprises the following steps: 1. setting a format of a SKINNY cryptographic algorithm component; 2. initializing a population, and generating an initial population meeting requirements for subsequent optimization; 3. preprocessing the population individuals, namely preprocessing the individuals in the population to make the individuals accord with a SKINNY cryptographic algorithm component format for subsequent objective function calculation; 4. setting a SKINNY cryptographic algorithm target function, selecting the number of active s boxes under a determined number of rounds as an optimization standard according to performance indexes required to be optimized by the SKINNY cryptographic algorithm, and using a calculation mode as the SKINNY cryptographic algorithm target function; 5. performing iterative updating on the population, namely updating and iterating the initial population according to the setting of the particle-group-like normal optimization algorithm to finally obtain the population meeting the set index; 6. and algorithm output, namely storing the algorithm components meeting the requirements according to the setting, and outputting one or more algorithm components with optimal performance.)

一种基于类粒子群正态优化算法的SKINNY算法组件优化方法

技术领域

本发明属于密码学、群体智能算法领域,特别是分组密码算法组件设计的方法,具体地说是基于类粒子群正态优化算法的SKINNY算法组件优化方法。

背景技术

近年来,混合整数线性规划(MILP)相继被不同的学者应用于求解密码学问题,此后,利用MILP对密码算法进行自动分析成为了密码学领域的一个重要研究进展,其中包括差分、线性、不可能差分、中间相遇等多种分析手段。然而利用智能优化技术等先进的计算机工具通过MILP实现密码算法组件的设计几乎没有学者研究。最早的密码算法设计者,更多的关注算法的逻辑本身,在算法参数的选择上,往往依靠其主观经验判断,或者对现有的算法参数进行简单筛选。无法保证参数是否是最优解。

元启发式算法是启发式算法的改进,它是随机算法与局部搜索算法相结合的产物。粒子群算法源于复杂适应系统。算法的基本原理源于对鸟群捕食的行为研究,基本思想是通过在群体中个体之间的协作和信息共享来寻找最优解。进化策略是进化算法的一类重要变种,采用真实值编码。

SKINNY是一种SPN型轻量级分组密码,在安全性等各方面表现优异。相较于SIMON算法,SKINNY算法的软硬件表现与之相当,但是安全性更好。以分组长度和密钥长度区分,SKINNY算法共有6个版本,(SKINNY-n-t,SKINNY-n-2t,SKINNY-n-3t),其中分组长度n可以等于64bit或128bit,密钥长度t可以等于n,2n或3n,故SKINNY又称为可调分组密码算法。本发明的方案中主要探讨的是SKINNY-n-3t,其中n等于64bit。

目前通过元启发式算法设计SKINNY算法组件存在一些缺陷,其一,采用的元启发式算法都是现有的成熟算法,不是针对于SKINNY算法提出的;其二,原有方法每次优化都只能输出一个算法组件,不利于使用者后续的筛选使用;其三,原有方法的终止条件单一,不适用于实际应用场景。

发明内容

本发明为了解决以上技术问题,设计了一种全新的元启发式算法,提供一种基于类粒子群正态优化算法的SKINNY算法组件优化方法,设计了针对于SKINNY算法专门的元启发式算法,修改设计了算法的终止条件设置以及搜得算法组件的存储模块。使得本发明在实际应用时可以一次性输出一个或多个最优解,可以一次性存储大量符合存储要求的算法组件,能够有效提高分组密码算法组件的优化效率,而且可以通过简单的参数调整适用于其他分组密码的设计与优化中。

根据目前分组密码设计过程的缺陷和不足,可以总结出设计基于优化算法的分组密码算法组件优化算法一些规则,如下所述:

(1)通过计算机可以大量生成符合结构要求的算法组件。

(2)算法组件结构简单,搜索范围足够大,无法采取遍历等方式进行筛选;

(3)算法组件的评价指标明确,且可以用编程实现;

(4)算法组件模块化,所优化组件的替换,不影响算法整体的逻辑。

根据上述规则,本发明利用粒子群算法,进化策略算法,设计了全新的类粒子群正态优化算法,并基于该算法设计了一种新的SKINNY算法组件优化方案。在该方案中,对初始种群利用类粒子群正态优化算法进行优化筛选,最终得到符合使用者需求的算法组件。具体的,本发明提出一种基于类粒子群正态优化算法的SKINNY算法组件优化方法,包括如下步骤:

步骤1、设定SKINNY密码算法组件格式;

步骤2、种群初始化,生成符合要求的初始种群用于后续优化,初始种群设定为50个个体;

步骤3、种群个体预处理,对种群中的个体进行预处理,使其符合SKINNY密码算法组件格式,用于后续目标函数计算;

步骤4、设定SKINNY密码算法目标函数,根据SKINNY密码算法所需要优化的性能指标,选择确定轮数下的活跃s盒数作为优化标准,计算方式作为SKINNY密码算法目标函数;

步骤5、种群迭代更新,根据类粒子群正态优化算法的设定对初始种群进行更新迭代,最终得到符合设定指标下的种群;

步骤6、算法输出,根据设定,对符合要求的算法组件进行存储,并输出一个或多个性能最优的算法组件。

进一步的,步骤(1)和(2)根据设定的SKINNY密码算法组件格式生成初始种群采取以下步骤:

(1)此次优化的组件为用于生成SKINNY算法扩展密钥的置换PT,PT的约束条件转化成数学语言共有两个:第一,它应当是一个0到15的随机排列,16个数字都出现且仅出现一次;第二,作为一个排列,0到7这8个数字只能出现在排列的后八位,其余8个数字出现在排列的前八位;

(2)生成一定数量的固定范围内的随机数,一个随机数代表一个微粒子的位置,将16个划分为一组,共生成50组;同时为每一个随机数匹配随机生成的确定范围的速度值,以及一个统一设定的θ值。

进一步的,所述步骤(3)的种群粒子预处理的方法采取以下步骤:

(3.1)初始种群视为50个粒子组,每个粒子组包含有16个微粒子,这些微粒子分布在三维空间,每个微粒子包括位置、速度和一个统一设置的θ值;

(3.2)将每一个粒子组中的微粒子进行编号,序号为0至15;

(3.3)根据微粒子的在三维空间上的位置大小,对微粒子进行降序排列;

(3.4)取出序号为0至7的微粒子置于排列的后八位,8至15的微粒子置于排列的前八位;

(3.5)最后利用微粒子的序号替换微粒子的位置数值得到最终排列。

进一步的,步骤(4)和(5)设定目标函数后对种群进行迭代更新过程采取以下步骤:

(1)根据需要设定好目标函数,对预处理后的初始种群进行目标函数计算,求得各粒子的适应度值;

(2)根据适应度值确定全局最优解和个体最优解,其中种群中出现最早的适应度值最大的粒子作为全局最优解,每个粒子的历史最高适应度值对应的粒子作为个体最优解,其中初始种群时粒子的个体最优解就是粒子本身;

(3)根据粒子中的每一个微粒子,将每个微粒子的位置看做正态分布的平均值,θ值作为正态分布的标准差,对微粒子的位置通过正态分布进行一次更新;

(4)根据更新公式更新微粒子的位置,速度和θ值。

进一步的,所述步骤(6)算法输出过程采取以下步骤:

(6.1)在算法迭代过程中对符合要求的粒子,将其存储于数据存储模块;

(6.2)算法终止条件有两个,达到任何一个即停止优化:

第一,数据存储模块的粒子量达到预定数值;

第二,全局最优解粒子的适应度值达到预定要求,此时将保留原有输出最优解,同时输出适应度值相同的其他并列最优解。

有益效果:

本发明与现有的技术相比,其优势在于:

(1)提出了一种新颖的元启发式算法,即类似于粒子群的法向优化算法,该算法专门用于密码基元设计。

(2)基于算法设计的SKINNY算法组件优化方法,提高了密码算法的安全性。

(3)算法可以获得一个或多个优化结果,同时算法增设数据存储模块,可根据需要灵活更改存储条件,方便使用者进一步筛选组件。

(4)算法可能通过少量的参数更改,即可适用于其他类似的密码算法组件设计优化工作。

附图说明

图1是本发明优化方法流程图;

图2是本发明的优化方法应用场景图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。

参见图1,本发明提出一种基于类粒子群正态优化算法的SKINNY算法组件优化方法,包括如下步骤:

步骤1、设定SKINNY密码算法组件格式;

步骤2、种群初始化,生成符合要求的初始种群用于后续优化,初始种群设定为50个个体;

步骤3、种群个体预处理,对种群中的个体进行预处理,使其符合SKINNY密码算法组件格式,用于后续目标函数计算;

步骤4、设定SKINNY密码算法目标函数,根据SKINNY密码算法所需要优化的性能指标,选择确定轮数下的活跃s盒数作为优化标准,计算方式作为SKINNY密码算法目标函数;

步骤5、种群迭代更新,根据类粒子群正态优化算法的设定对初始种群进行更新迭代,最终得到符合设定指标下的种群;

步骤6、算法输出,根据设定,对符合要求的算法组件进行存储,并输出一个或多个性能最优的算法组件。

进一步的,步骤(1)和(2)根据设定的SKINNY密码算法组件格式生成初始种群采取以下步骤:

(1)此次优化的组件为用于生成SKINNY算法扩展密钥的置换PT,PT的约束条件转化成数学语言共有两个:第一,它应当是一个0到15的随机排列,16个数字都出现且仅出现一次;第二,作为一个排列,0到7这8个数字只能出现在排列的后八位,其余8个数字出现在排列的前八位;

(2)生成一定数量的固定范围内的随机数,一个随机数代表一个微粒子的位置,将16个划分为一组,共生成50组;同时为每一个随机数匹配随机生成的确定范围的速度值,以及一个统一设定的θ值。

进一步的,所述步骤(3)的种群粒子预处理的方法采取以下步骤:

(3.1)初始种群视为50个粒子组,每个粒子组包含有16个微粒子,这些微粒子分布在三维空间,每个微粒子包括位置、速度和一个统一设置的θ值;

(3.2)将每一个粒子组中的微粒子进行编号,序号为0至15;

(3.3)根据微粒子的在三维空间上的位置大小,对微粒子进行降序排列;

(3.4)取出序号为0至7的微粒子置于排列的后八位,8至15的微粒子置于排列的前八位;

(3.5)最后利用微粒子的序号替换微粒子的位置数值得到最终排列。

进一步的,步骤(4)和(5)设定目标函数后对种群进行迭代更新过程采取以下步骤:

(1)根据需要设定好目标函数,对预处理后的初始种群进行目标函数计算,求得各粒子的适应度值;

(2)根据适应度值确定全局最优解和个体最优解,其中种群中出现最早的适应度值最大的粒子作为全局最优解,每个粒子的历史最高适应度值对应的粒子作为个体最优解,其中初始种群时粒子的个体最优解就是粒子本身;

(3)根据粒子中的每一个微粒子,将每个微粒子的位置看做正态分布的平均值,θ值作为正态分布的标准差,对微粒子的位置通过正态分布进行一次更新;

(4)根据更新公式更新微粒子的位置,速度和θ值。

进一步的,所述步骤(6)算法输出过程采取以下步骤:

(6.1)在算法迭代过程中对符合要求的粒子,将其存储于数据存储模块;

(6.2)算法终止条件有两个,达到任何一个即停止优化:

第一,数据存储模块的粒子量达到预定数值;

第二,全局最优解粒子的适应度值达到预定要求,此时将保留原有输出最优解,同时输出适应度值相同的其他并列最优解。

根据本发明的一个方面,在对种群粒子更新时,第i个微粒子的速度和位置可以根据个体最优解和全局最优解相应序号的微粒子速度位置值进行更新。具体的更新公式如下:

vi,j=0.1*θ*vi,j+c1*rand()*(pbesti,j-xi,j)+c2*rand()*(gbesti,j-xi,j) (1)

xi,j=xi,j+vi,j (2)

公式(1)和公式(2)中,各符号表示如下:

下角标:i表示种群中的第i个粒子组,j表示在该粒子组的第j个微粒子;

v:表示该微粒子的速度;

θ:是优化算法的收敛指数,θ值越小收敛越快;

c1、c2:固定值,一般设定为2;

rand():表示0到1的一个随机数;

pbest:表示个体最优解,即每一个粒子组在历次迭代过程中曾搜索到的最优解;

gbest:表示全局最优解,即种群在迭代过程中曾搜索到的最优解;

x:表示微粒子的位置。在种群各粒子组的数值更新之后,本发明需要对算法的各项参数进行更新。对于θ值的更新,本发明采用公式(3)。θ值得大小决定着种群的收敛速度,数值越大,种群粒子发散性越好。所以本发明需要随着迭代次数的增加,逐渐减小θ的取值,使种群逐渐收敛,提高搜索效率。

θ=0.95*θ (3)

参阅图2,为本发明的应用场景图。

输入:

客户端需设置四项内容,除参数设置外,其余均提供若干模板供使用者选择修改,各项数据的默认值分别为:类粒子群正态优化算法的粒子组种群规模为50组,c1、c2设置为2,θ初始设置为8。使用者可根据实际情况自行设计数值,具体数值更新公式采用公式(1)、公式(2)和公式(3)。不同的参数将影响算法的搜索结果及搜索时间。

对于数据存储条件设定和算法终止条件设定,工具将提供若干种可填入的标准模板,使用者可选择相应模板并进行微调。对于算法的目标函数设定,与数据存储标准的设定类似,工具同样会提供若干种模板供使用者选择修改。需注意,此时的目标函数设定若无法使用单一模板完成,可套用多个模板进行组合设定。

输出:

根据客户端的设置条件,服务器将生成相应的迭代程序。最终将向客户的输出端输出一定数量的符合要求的算法组件,使用者可根据需求对输出组件做进一步筛选。客户的输入和输出端是同一设备,无需额外配置。

在服务器中,工具将根据使用者的设计条件,进行迭代搜索,目标函数决定工具的迭代优化标准,不同参数的设定决定算法的收敛等多种特性,存储及迭代标准决定算法的结束条件。最终算法会生成一系列符合使用者设计要求的算法组件,使用者可自行在自己的设备终端进行复制等功能,输出结果有助于使用者对算法组件的进一步筛选。

总之,本发明中提出的SKINNY算法组件优化方法能够在很短的时间内完成,与此同时对设备的硬件要求不高。本发明首次将类粒子群正态优化算法应用到密码算法设计优化中,这不仅提高了算法的应用场景,还大大提高了使用者的密码算法设计效率。本发明能很短的时间内,更大的搜索空间中搜索到一个或者多个性能更优的算法组件,同时也可根据不同的参数设置,选取不同的筛选标准,为使用者提供更多的优化模式。除此之外,本发明设计了全新的元启发式算法,将其应用于SKINNY算法组件的优化设计中。通过实验显示出本发明提出的方法能够有效的缩短设计时间提高密码算法安全性,减少使用者工作量。并且该加密方法很容易通过软件实现,本发明可广泛应用推广到其他具有明确评价标准的密码算法设计优化中。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于人工蜂群算法结合最小二乘法的谐波检测方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!