遗传算法在计算机加密解密技术中的应用
2013-04-02邹汪平
邹汪平
(池州职业技术学院 信息技术系,安徽 池州247000)
遗传算法在计算机加密解密技术中的应用
邹汪平
(池州职业技术学院 信息技术系,安徽 池州247000)
随着信息时代的到来,人们对信息的了解逐渐加深,信息的应用领域也越来越广,信息的安全性也越来越受到重视,各种加密技术应运而生。文章首先介绍了遗传算法全局寻优和强收敛性的特点,然后将遗传算法特点与加密技术相结合实现高强度的加密解密应用。分析表明,该应用设计具有良好的安全性和可靠性性。
加密;解密;遗传算法;应用
对数据进行加密, 通常要经过 Intranet、Extranet和Internet对信息进行安全转换,从技术层面看,加密是指通过数学方法,把邮件或是信息设置为不可读状态,进而实现保护数据的目标。研发具有加密功能的计算机软件,是软件专员最主要的工作职责,同样也是整个软件研发程序中最关键的环节。创建出一种,能从密码图表中寻找到最佳解的算法,这是关系到全局寻优和收敛速率高低的重要环节,而遗传算法的出现解决了这一难题。
1 问题的提出
1.1 传统的计算机数据加密途径分析
传统的计算机数据加密,一般会采取加密数据流的途径,由于此途径使用起来较方便,操作简单,但是此途径运用前,所受局限性较大,只能用于了解到密文和原文的前提下,如果对其中一方面不了解,就会对破译工作带来困难,甚至是不可以进行的。优质的传统加密算法,其使用起来非但对系统性能不会造成影响,还会在使用过程中,将自身的优点全能发挥出来。
1.2 传统解密法的过程解析
以上所提到的加密算法,都是具有高效加密和破译功能的,具体从一个例子中说明:假设要对某些数据进行加密,首先基于RSA算法在RSA公钥的作用下加密密钥“34567”并将其放置在所需加密数据之前配以分隔符或文件长度将其跟加密数据区分。在对称加密算法的作用下对正文使用密钥“34567”进行加密后,一旦接收到密文就会通过RSA私钥在确定加密密钥“34567”的基础上利用解密数据。这就是一个完整的传统解密数据的过程。
1.3 遗传算法出现的意义
密码是整个加密解密过程中,最重要的环节之一,也是最大的突破点。然而理论上可行的算法,往往实际上会因为耗时巨大却又不能满足需求。因此设计既高效又科学的算法才是数据加密的首要问题,而改进的算法必须具备强收敛性和全局巡游的特点,恰好遗传算法(Genetic Algorithms)由于其独有的强收敛性、全局寻优以及智能搜索等多种特性能够很好的满足上述密码表的生成条件,因此被广泛应用。
2 遗传算法的解析
2.1 遗传算法的理论来源
遗传算法被认为是唯一能高效解决优化问题的计算方法[2]。遗传算法是依据Morgan的基因原理、Eldridge和Gould的间断平衡理论而建立的,并涉及到Mayr的边缘物种理论以及Bertalanffv一般系统思想的并行优化算法。这些原理和理论都是源于达尔文的自然界遗传学,其中包含:继承、进化和优胜劣汰等相关理论原理,取名为遗传算法[3]。其本质就是自然界中经过自然淘汰、优化后得到有机体的进化机制结合同一群体间其他所有个体间进行信息交换的搜索算法。
2.2 遗传算法使用过程的解析
求解遗传算法的最优化问题的第一步就是采用二进制编码可行域中的点并从中随机选择一部分构造第一代进化点,在此基础上得到编码适应度较高的点作为一定标准随机抽选编码构造下一代进化点。这样的生成机制中遗传算法提供交叉和变异两种方式对进化点进行交换,其不同之处在于前者交换随机两个编码而后者是对某一随机编码的某一位进行取反操作。在此机制下循环往复,不断构造新的编码组。
3 遗传算法实现数据加密的应用
3.1 密码转表的使用分析
在实际应用后,人们发现遗传算法也会存在过早就进行最优解收敛的问题,这样就会导致很难实现全局最优化的目标。通常情况下,利用某一数字使其生成一个能重复制造出伪随机的数字序列,若在此过程中会用到128个表项,在产生随机数列的同时,以随机数序列的形式产生密码转表[5]。在密码转表中,有一个存有128个随机数的矩阵,记录每个数的初始位置并结合表中数据排序后的每个数的位置产生一个随机数序列表 (数字在0-127之间)。然后通过映射原理构造解码表。如果有C映射到D,则一定有D映射到C,记为D[C[N]]=N.(其中N是0-127之间任意数)。然后利用循环赋值生成另外一个解码表与之前生成的加密表对应[6]。此时就构造出两个转换表,加密解密工作顺利展开。比如前一个转换表的密文是128字节表的索引,为达到增强加密的作用,就可利用多余8位值作为索引字节。若该表为128*128的字符数组,则有:
Encrypt1=X[Encrypt0][value]
3.2 变量的研究
在表达式中共包含两个变量:变量“Encrypt1”,指加密数据,其前驱就是“Encrypt0”,第一个加密数据需要一个随机数“种子”如果使用8个字节产生表的索引,就要把128位的密钥作为其初始 “种子”,待产生随机数表后,方可对数据加密,其中最重要的环节就是要确保加密和解密两个过程中所用的加密值表作为索引完全一致[7]。
3.3 探讨具体应用和算法
利用遗传法在实际的加密编码的实现过程中,前提是加密的序列的随机性必须得以保障。解密的过程均只基于加密时的随机序列。任意字符序列都将被加密转化为乱码并且每个字符的加密又基于其前驱字符的密钥而并非其字符本身,这将会有效地隐藏加密文本的实际内容和长度。随机数的产生可以利用各种程序设计语言中自带的函数或者方法,当然也可以通过自定义的方式生成随机数。例如选用的随机数序列值在0到表中的任意数之间,算法伪码描述如下:
int process1(void*r1,void*r2){
long**rr1=long**r1;
long**rr2=long**r2;
if(**rr1<**rr2)return-1;
else if(**rr1>*rr2)
return 1;
return 0;
}
……
intw1;
long*rand1[128],rand1[128];
int result1[128];
for(w1=0;w1<128;w1++;{
rand1[w1]=rand1+w1
}
rsort1(rand1,128,size of(*rand1),process1);
for(w1=0;w1<128;w1++){
result1[w1]=(int)(rand1[w1]-rand);
}
……
算法中,变量result1是存储值为0-127之间的一个有序整型数组。这个整型数组在使用随机数种子构造简短密钥的过程中非常有效。该算法在多次优化设计下有效地降低了随机字符出现的重复率,大大增加了暴力解密的时间,甚至可以实现在目前现有条件下无法解密。
综上所述,本文研究了遗产算法的优点:全局寻优和强收敛性,还经过分析具体的操作过程以及运算方式,深入探讨了这一计算机加密技术的应用方法并在加密解密的过程中提高了有效性。
[1]王育欣.数据加密技术在计算机网络安全中的应用[C]//第九届沈阳科学学术年会论文集:经济管理与人文科学分册,2012.
[2]李晓利.数据加密技术在计算机网络安全中的应用探讨[J].数字技术与应用,2011(6):87-89.
[3]马书月,王剑.基于自适应遗传算法的数字混沌加密技术研究[J].计算机仿真,2011(10):59-60.
[4]郑晓宁.数据加密技术[J].信息与电脑:理论版,2010(2):31-32.
[5]廉士珍.计算机网络通信安全中数据加密技术的应用分析[J].硅谷,2010(10):66-66.
[6]徐雁萍.数据加密技术的研究[C]//中国气象学会2008年年会第二届研究生年会分会场论文集,2008:151-158.
[7]刁训娣.基于多目标遗传算法的项目调度及其仿真研究[J].上海交通大学,2010(5):78-79.
[责任编辑:桂传友]
TP312
A
1674-1104(2013)06-0051-02
2013-04-21
邹汪平(1982-),男,安徽安庆人,池州职业技术学院信息技术学讲师,硕士,研究方向为算法研究与设计。