农村小学外来务工子女教育现状及应对策略及遗传算法在密码学中的应用_第1页
农村小学外来务工子女教育现状及应对策略及遗传算法在密码学中的应用_第2页
农村小学外来务工子女教育现状及应对策略及遗传算法在密码学中的应用_第3页
农村小学外来务工子女教育现状及应对策略及遗传算法在密码学中的应用_第4页
农村小学外来务工子女教育现状及应对策略及遗传算法在密码学中的应用_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEI农村小学外来务工子女教育现状及应对策略【内容摘要】随着温州经济的发展,一批批外来务工人员来到瑞安务工。而这几年越来越多的打工者都携妻带子,由此带来的子女就学问题得到了政府和教育主管部门的重视,瑞安教育局在今年的义务教育工作会议上明确提出要关爱弱势群体,其中就包括外来务工子女。那么外来务工子女的现状如何;他们有没有很快地融入新的集体;学习条件又如何;家长对孩子学习的关心吗;以及他们和家长的安全意识强吗?【关键词】外来务工子女关爱教育现状策略

瑞安市上望办事处小学共有3000多名学生,其中外来务工子女占了三分之一,而我们学校的外来务工子女将近四分之三。外来务工子女的教育问题已经成为我们新的课题。笔者通过对所在农村小学外来务工子女有关情况的调查与分析,尝试解决有关外来务工子女的教育问题。以下以本学校和笔者所带班级为例进行阐述。一、帮助外来务工子女尽快融入班集体,让他们走出孤独。1、现状心理学家威廉姆斯认为:“人性最深刻的原则,就是恳求别人对自己的关怀。”一个来自贵州的学生在日记中这样描述:“我今年十三岁,这个学校已经是我上过的第四个学校了,最短的那一次我只刚刚叫上同学们的名字就转学了。我在学校里感觉很孤独。”在我们学校里,像这样频繁转学的外来务工子女不在少数。据调查,有62%的同学认为自己很孤独,没有好朋友。2、应对策略一个人到了一个陌生的环境,会把自己封闭起来,这是人的本能。外来务工子女大都来自经济相对落后的地区,他们的心理状况、接受能力、家庭背景、地域、语言、教学进度、教材内容、学科设置、生活环境和习惯都与本地学生有明显的差别,所以一开始都会表现得沉默寡言。长此以往,势必会影响其身心的健康发展,还可能会导致“自我封闭”。因此,需要我们班主任对他们倾注更多的关爱和耐心,使他们更快地融入班集体,成为班级中的一员。开学第一天学校给外来务工子女的印象特别重要,班主任应该用自己热情来消除他们的陌生感。比如这个学期,我们班又来了一个外来务工子女李小梅,第一天报到时,当她一出现在教室门口,我就迎上去,热情地表示对她的欢迎,并让她上讲台介绍自己,说自己的爱好,特长,也说说自己的家乡。同学们都投去友好的目光,使她感受到温暖.来注册时我已经了解到她成绩较差,就安排了一个比较好的位置给她,让旁边的同学击关心她、帮助她。后来发现她画画画得不错,我就有意识地安排她担任美术课代表,增强她对班集体的责任感和荣誉感.经过一系列的措施,她终于变得合群了。我还根据外来务工子女的兴趣特长,创造机会让他们在集体活动中崭露头角,在同学们的肯定和表扬中,燃起其乐于参与集体活动的热情。每个学期,我们班都会举行不同主题的队会,孩子们通过朗诵、舞蹈、快板、小品等丰富多彩的文娱活动一展身手,彼此之间的关系也更加融洽了。一位来自安徽的学生开心地说:“来到这里念书后,我交了不少好朋友,也喜欢上了这里的老师。我希望自己能在这里好好学习,将来考上大学。”二、帮助外来务王子女提高学习成绩,让他们树立信心。1、现状外来务工子女流动性强,并且他们的父母忙着打工赚钱,无暇顾及子女的学习,以至于外来务工子女学习成绩普遍较差。我们班的浊沈去年刚转进我们学校五年级,老师们对他的印象是“憨厚朴实,看上去十分可爱机灵”,学生母亲也说他在以前的学校里成绩是数一致二的。但经过一个月的观察,我开始发现小沈身上的一些缺点:作文不太会写,最好的一次也只写了不到200字;完成的作业质量也不高,总是有不少错误;上课听讲不认真,总是爱玩一些小东西。在一次谈话中,我了解到小沈来自贵州的一个小村子,以前每天上学要走几里地。在原来的学校里,只要上课听了,考试考了,老师就觉得可以了,根本不会管什么学习习惯和方法。小沈还说,父母每天工作都很忙,根本无暇顾及他。我终于明白了其中的原委,从那一天起,给小沈建立了一个“小小档案袋”。2、应对策略“小小档案袋”记录了小沈成长的每一个细节。课堂上,我鼓励小沈站起来朗读课文,一方面培养语感,一方面增强他的自信心;至于写作,我鼓励小沈多看课外书,还给他买了本硬面抄,让他摘抄美文佳句;小沈的父母基本上不给他买课外书,我就自己掏钱买一些童话书和作文书送给小沈;我还让其他同学多帮助小沈,让他们找出小沈文章中精彩的部分在班上进行学习交流……渐渐的,小沈的作文有了很大进步,有时还会写出一些精彩的片段,好几次都贴在了班里的“作文角”上。有一次他在作文中写道:刚来新学校时,我学习成绩不好,在班级里总抬不起头来。没想到,经过老师一个学期的辅导,再加上我的努力,学习成绩提高了不少,老师也常常表扬我,这让我更有信心了.三、建立家校联系,促进外来务工子女全面发展。1、现状外来务工人员大多为生计而奔波,没有时间管孩子,文化水平低,没有正确的方法管理孩子,而且对学校的教育教学活动和教师的教育教学方法有许多不理解甚至误解。这些现象都影响了学校的教育教学效果,甚至出现了“5+2=0”(五天的学校教育加上两天的家庭教育等于零)的尴尬局面。笔者通过对学校100名外来务工子女的调查发现:他们做作业时,10.8%的家长外出工作不在家,20.2%的家长在看电视、打牌或做家务;有3.7%的学生无固定地点做作业,9.6%的家庭没有书桌供孩子学习,43.1%的家庭无独立学习的房问……因此,加大家庭教育的力度,提高家长教育素养是解决问题的关键所在。2、应对策略我们学校通过开外来务工子女家长会、请教育专家讲座、家访、建立家校联系本等方式,使家长获得一些具体、科学、实用的教育方法,让家庭教育与学校教育同步、配套,促进外来务工者子女全面发展。池某上个学期中途转进我们班级,个子比同龄人要小得多,上课从来不举手发言,平时作业不是忘在家里了,就是没做,学习上有问题从来不请教老师或同学。我问他父母知不知道他回家不写作业的事情,他说爸爸妈妈每天都很晚才回来,没时间管他,也从来不看他的作业。在接下来的日子里,我除了对他进行疏导之外,还通过电话、家访等各种途径积极和他家长联系,相互交流他在学校和家里的情况。通过教育家长,让家长知道,孩子需要的不只是衣服、食物等物质,也需要关心、关注、关爱和鼓励等精神食粮。让父母用正确的方法,正确的思想来教育孩子。四、重视安全教育,提高外来务工子女和家长的安全意识。1、现状近几年外来务工子女的安全问题日趋严重。据有关部门统计,每年的未成人意外伤害事故中有80%是外来务工子女,其中大部分都是死于溺水和交通意外。瑞安市每年因溺水和交通意外而死亡的外来务工子女都不在少数,在去年暑假,某小学就有一例溺水身亡事件。据调查,外来务工人员子女多数来自中西部山区农村地区,缺乏必要的预防溺水事故的安全知识和交通安全意识,90%以上的学生上学和放学又都无大人接送。因为缺少了家长的看管,他们往往喜欢结伴在路上和河边玩耍,这样就很容易出事故。2、应对策略针对以上问题,我们学校要建立了预防溺水事故和交通事故的安全教育制度,做到平进教育和专门教育相结合。每年4月至5月,学校要开展预防溺水事故的安全教育专题活动。学期初和学期末,学校都把外来务工子女和家长集中起来,请交警对他们进行交通安全教育,并要求家长对学生往返学校的路上尽量接送。农村小学外来务工子女的教育任重道远,以上只是笔者肤浅的做法。我们应该努力地去解决外来务工子女的教育问题,让他们和我们共享一片蓝天!

【参考文献】中小学班级管理集粹周鸿辉马甫波主编浙江教育出版社班主任兵法万玮著华东师范大学出版社遗传算法在密码学中的应用摘要遗传算法是一类借鉴生物界自然选择和自然遗传机制的随机搜索算法,它是一种利用遗传学发展的手段,即选择、交叉和变异构成对问题解答的算法。其应用优势在于处理传统搜索方法难以解决的复杂和非线性问题。密码学是研究编制密码和破译密码的技术科学。密码分析是研究密码体制的破译问题,即破译者试图在不知道加密密钥的情况下,从截取到的密文恢复出明文消息或密钥。从密码学发展来看,可分为古典密码和现代密码。古典密码即是以字符为基本加密单元的密码。古典密码学主要有两大基本方法:替换密码和置换密码。本文基于遗传算法的基本思想,给出了一种对古典密码学中的替换密码进行密码分析的方法,并验证该方法的有效性。本文首先通过随机获得的一个密钥对一段文章加密为密文,该密钥即为真正的密钥。遗传算法的搜索空间由种群中的个体组成,种群中的每个个体代表一个密钥,根据每个个体对该密文进行解密,以英文字母出现的频率对解密后的明文进行分析,利用遗传操作使这些密钥不断的进化,与真正的密钥越来越接近。【关键词】遗传算法,替换密码,密钥,密文,密码分析

TheApplicationofGeneticAlgorithminCryptographyChenZhaojun(Schoolofmathematics,physicsandinformation,ZhejiangOceanUniversity316004)AbstractGeneticalgorithmisakindofrandomsearchalgorithmbasedonbiologicalnaturalselectionandnaturalgeneticmechanism.Itisakindofalgorithmtoresolveproblemsusinggenetics,suchasselection,crossoverandmutation.Itsadvantageslieinitsapplicationofthecomplexandnonlinearproblemswhichtraditionalsearchmethodcan'tsolve.Cryptographyisasciencestudyingthepreparationanddecipheringofcode.Cryptanalysisistostudythedecipheringcryptographyissues,namelytodeciphertheencryptionkeyfromtheinterceptionoftheciphertexttorestoreaspecificmessageorkey.Duetothedevelopmentofcryptography,codescanbeclassifiedintotwocategories:classicalcodesandmoderncodes.Classicalcodeiscodetakingcharacterasbasicunitofencryption.Classicalcryptographycanbetalkedintwobasicmethods:thepasswordreplacementandpasswordsubstitution.Thisthesisbasedontheideasofgeneticalgorithmpresentsuscryptanalysisinreplacingthepasswordbyclassicalcryptography,andtheverificationoftheeffectiveness.Inthispaper,first,weencryptciphertextbyarandomlyobtainedencryptionkey,whichistherealkey.Thesearchingspaceofgeneticalgorithmconsistsofthepopulationofindividuals.Inthepopulation,eachindividualistakenasakey.Decrypttheciphertextbyindividual.Analyzetheciphertextthroughthefrequencyoftheletters,andmakethekeyscontinuousevolutionbyusingthegeneticmanipulationandgettingcloserandclosertotherealkey.【Keywords】geneticalgorithm,replacepassword,key,ciphertext,cryptanalysis

目录摘要 IABSTRACT II1概述 11.1选题背景及意义 11.2研究现状 11.3研究内容 22密码学简介 32.1密码的发展历程 32.2密码的组成 42.3密码学的基础知识 42.4几种简单的古典密码 42.4.1滚桶密码 42.4.2.

掩格密码 52.4.3凯撒(Caesar)密码 52.5加密方法 53遗传算法简介及步骤 63.1遗传算法简介 63.2编码方法 73.2.1二进制编码方法 73.2.2格雷码编码方法 83.2.3浮点数编码方法 83.2.4符号编码方法 83.3适应度函数 83.4选择算子 93.4.1比例选择 93.4.2最优保存策略 93.4.3确定式采样选择 93.4.4无回放随机选择 93.4.5无回放余数随机选择 93.4.6排序选择 93.5交叉算子 103.5.1单点交叉 103.5.2双点交叉和多点交叉 113.5.3均匀交叉 113.5.4算术交叉 113.5.5部分匹配交叉 113.6变异算子 123.6.1基本位变异 123.6.2均匀变异 123.6.3边界变异 133.6.4非均匀变异 133.6.5高斯变异 134基于遗传算法的密码分析方法 144.1染色体编码和初始种群产生 144.2适应度函数的确定与计算 154.3选择 154.4交叉 164.5变异 174.6解密 175数据分析 185.1群体大小的设定 185.2种群进化代数的设定 195.3交叉概率的设定 195.4变异概率的设定 206总结 21参考文献 22附录一 23附录二 241概述1.1选题背景及意义遗传算法(GeneticAlgorithm简称GA)是利用种群的遗传学原理发展而成的,它是一种利用遗传学发展的手段,即遗传(选择),重组(交叉)和突变(变异)构成对问题解答的算法。遗传算法的基本思想:保持一群知识结构,其中的知识结构代表着对目前问题可能的解答。而这些知识结构的集合就相当于生物学中的种群。而种群通过遗传变异而进化,可获得最优化的解答、或者达到学习和检测的目的。从搜索角度看,遗传算法具有许多独特的优点:不必非常明确描述问题的全部特征,通用性和鲁棒性强,能很快适应问题和环境的变化;对领域知识依赖程度低,不受搜索空间限制性假设的约束,不必要求连续性、可导或单峰等。从多点进行搜索,如同在搜索空间上覆盖的一张网,搜索的全局性强,不易陷入局部最优;具有隐并行性,非常适合于并行计算[1]。密码技术是信息安全技术的核心,它主要由密码编码技术和密码分析技术两个分支组成。密码编码技术的主要任务是寻求产生安全性高的有效密码算法和协议,以满足对数据和信息进行加密或认证的要求。密码分析是研究密码体制的破译问题,即破译者试图在不知道加密密钥的情况下,从截取到的密文恢复出明文消息或密钥。这两个分支既相互对立又相互依存,正是由于这种对立统一关系,才推动了密码学自身的发展[2]。随着人工智能的不断发展成熟,与人工智能以及统计学等学科结合使得密码分析学在进行密钥搜索时变得更加有效。因此,在基于实际应用为目的的项目研究中,引入遗传算法作为自适应全局优化概率算法,极大的提高了密码分析的效率。本文就是基于遗传算法的基本思想,给出了一个基于遗传算法进行密码分析的一种方法,并验证了该方法的可行性。1.2研究现状目前遗传算法的应用越来越广泛,比如在煤气管道控制,防避导弹控制,机器人控制等控制领域进行智能识别控制,在图像处理中进行模式识别和特征抽取,进行机器人的路径规划,在信号处理中进行滤波器设计,在人工神经网络中进行权值训练和网络结构生成。密码学最初主要用于军事方面,但随着社会发展,数字信息日益增多,特别是随着互联网的发展,密码技术已经从外交和军事领域走向公开,且已发展成为一门结合数学、计算机科学、电子与通信、微电子等技术的交叉学科。使用密码技术不仅可以保证信息的机密性,而且可以保证信息的完整性和确定性,防止信息被篡改、伪造和假冒。如今,计算机网络环境下,信息的保密性、完整性、可用性和抗抵赖性,都需要采用密码技术来解决。目前人们将密码理论与技术分成两大类,一类是基于数学的密码理论与技术,包括公钥密码、分组密码、序列密码、认证码、数字签名、Hash函数、身份识别、密钥管理、PKI技术、VPN技术等[3];另一类是非数学的密码理论与技术,包括信息隐藏、量子密码、基于生物特征的识别理论与技术等。1.3研究内容本文首先通过随机给出的一个密钥对明文进行加密,获得密文;然后利用遗传算法来对密文进行分析。具体步骤如下:一、利用英文中的26个字母作为编码,产生由26个字母不重复出现且长度为26的个体(即密钥)。并由此形成种群。二、通过遗传操作搜索问题解。三、用实例验证利用遗传算法进行密码分析的有效性。2密码学简介密码学是研究编制密码和破译密码的技术科学。密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。进行明密变换的法则,称为密码的体制。指示这种变换的参数,称为密钥[4]。变明文为密文,称为加密变换;变密文为明文,称为解密变换。2.1密码的发展历程密码学在公元前400多年就早已经产生了,正如《破译者》一书中所说“人类使用密码的历史几乎与使用文字的时间一样长”。密码学的起源的确要追溯到人类刚刚出现,并且尝试去学习如何通信的时候,为了确保他们的通信的机密,最先是有意识的使用一些简单的方法来加密信息,通过一些(密码)象形文字相互传达信息。接着由于文字的出现和使用,确保通信的机密性就成为一种艺术,古代发明了不少加密信息和传达信息的方法。例如我国古代的烽火就是一种传递军情的方法,再如古代的兵符就是用来传达信息的密令。就连闯荡江湖的侠士,都有秘密的黑道行话,更何况是那些不堪忍受压迫义士在秘密起义前进行地下联络的暗语,这都促进了密码学的发展。事实上,密码学真正成为科学是在19世纪末和20世纪初期,由于军事、数学、通讯等相关技术的发展,特别是两次世界大战中对军事信息保密传递和破获敌方信息的需求,密码学得到了空前的发展,并广泛的用于军事情报部门的决策。例如在希特勒一上台时,德国就试验并使用了一种命名为“谜”的密码机,“谜”型机能产生220亿种不同的密钥组合,假如一个人日夜不停地工作,每分钟测试一种密钥的话,需要约4.2万年才能将所有的密钥可能组合试完,希特勒完全相信了这种密码机的安全性。然而,英国获知了“谜”型机的密码原理,完成了一部针对“谜”型机的绰号叫“炸弹”的密码破译机,每秒钟可处理2000个字符,它几乎可以破译截获德国的所有情报。后来又研制出一种每秒钟可处理5000个字符的“巨人”型密码破译机并投入使用,至此同盟国几乎掌握了德国纳粹的绝大多数军事秘密和机密,而德国军方却对此一无所知;太平洋战争中,美军成功破译了日本海军的密码机,读懂了日本舰队司令官山本五十六发给各指挥官的命令,在中途岛彻底击溃了日本海军,击毙了山本五十六,导致了太平洋战争的决定性转折。因此,我们可以说,密码学为战争的胜利立了大功。在当今密码学不仅用于国家军事安全上,人们已经将重点更多的集中在实际应用,在你的生活就有很多密码,例如为了防止别人查阅你的文件,你可以将你的文件加密;为了防止窃取你钱物,你在银行账户上设置密码,等等。随着科技的发展和信息保密的需求,密码学的应用将融入了你的日常生活[5]。从密码学发展历程来看,可分为古典密码(以字符为基本加密单元的密码)以及现代密码(以信息块为基本加密单元的密码)两类。而古典密码有着悠久的历史,从古代一直到计算机出现以前,古典密码学主要有两大基本方法:一是替换密码,就是将明文的字符替换为密文中的另一种的字符,接收者只要对密文做反向替换就可以恢复出明文;二是置换密码(又称易位密码)即明文中的字母保持相同,但顺序被打乱了。2.2密码的组成密码是按特定法则编成,用以对通信双方的信息进行明密变换的符号。换而言之,密码是隐蔽了真实内容的符号序列。就是把用公开的、标准的信息编码表示的信息通过一种变换手段,将其变为除通信双方以外其他人所不能读懂的信息编码,这种独特的信息编码就是密码。2.3密码学的基础知识密码学在希腊文用Kruptos(hidden)+graphein(to

write)表达,现代准确的术语为“密码编制学”,简称“编密学”,

与之相对的专门研究如何破解密码的学问称之为“密码分析学”。密码学是主要研究通信安全和保密的学科,他包括两个分支:密码编码学和密码分析学。密码编码学主要研究对信息进行变换,以保护信息在传递过程中不被敌方窃取、解读和利用的方法,而密码分析学则于密码编码学相反,它主要研究如何分析和破译密码。这两者之间既相互对立又相互促进。密码的基本思想是对机密信息进行伪装。一个密码系统完成如下伪装:加密者对需要进行伪装机密信息(明文)进行伪装进行变换(加密变换),得到另外一种看起来似乎与原有信息不相关的表示(密文),如果合法者(接收者)获得了伪装后的信息,那么他可以通过事先约定的密钥,从得到的信息中分析得到原有的机密信息(解密变换),而如果不合法的用户(密码分析者)试图从这种伪装后信息中分析得到原有的机密信息,那么,要么这种分析过程根本是不可能的,要么代价过于巨大,以至于无法进行[6]。在计算机出现以前,密码学的算法主要是通过字符之间代替或易位实现的,我们称这些密码体制为古典密码。古典密码中包括:易位密码、替换密码(单表替换密码、多表替换密码等)。这些密码算法大都十分简单,现在已经很少在实际应用中使用了。由于密码学是涉及数学、通讯、计算机等相关学科的知识,就我们现有的知识水平而言,只能初步研究古典密码学的基本原理和方法。但是对古典密码学的研究,对于理解、构造和分析现代实用的密码都是很有帮助。2.4几种简单的古典密码2.4.1滚桶密码在古代为了确保他们的通信的机密,先是有意识的使用一些简单的方法对信息来加密。公元六年前的古希腊人通过使用一根叫scytale的棍子,将信息进行加密。送信人先将一张羊皮条绕棍子螺旋形卷起来,然后把要写的信息按某种顺序写在上面,接着打开羊皮条卷,通过其他渠道将信送给收信人。如果不知道棍子的宽度(这里作为密钥)就不容易解密里面的内容的,但是收信人可以根据事先和写信人的约定,用同样的scytale的棍子将书信解密。2.4.2.

掩格密码16世纪米兰的物理学和数学家Cardano发明的掩格密码,可以事先设计好方格的开孔,将所要传递的信息和一些其他无关的符号组合成无效的信息,使截获者难以分析出有效信息。2.4.3凯撒(Caesar)密码据记载在罗马帝国时期,凯撒大帝曾经设计过一种简单的移位密码,用于战时通信。这种加密方法就是将明文的字母按照字母顺序,往后依次递推相同的字母,就可以得到加密的密文,而解密的过程正好和加密的过程相反。Caesar密码[7]的数学表示设:Athevalue0,B1,C2,……Y24,Z25;加密算法:Ek:i->i+k(mod26)解密算法:Dk:i->i-k(mod26)2.5加密方法密码加密的方法也有很多种,例如RSA算法、四方密码、二方密码、替换密码、换位加密法、会转轮加密法、Kasiski法……在此因为本文运用的是替换密码,所以对替换密码做详细介绍。替换密码[8]是典型的古典密码,虽已很少使用,但对它的研究仍具有很强的理论价值。一种简单的替换密码如下:明码:ABCDEFGHIJKLMNOPQRSTUVWXYZ密钥:DKVQFIBJWPESCXHTMYAUOLRGZN明文:IFWEWISHTOREPLACELETTERS密文:WIRFRWAJUHYFTSDVFSFUUFYA这样的密钥总数为26!,如此多的密钥是个组合爆炸,遗传算法擅长解决组合优化问题。替换密码的基本特点是明文消息的字符替换成另一个字符或符号,考虑到加密和解密的编码解码开销,可以直接使用英文字符作为参数编码,这样系统初始化时随机生成一组由26个各不相同的英文字符串。对于遗传算法来说这一个字符串就构成了一条染色体即一个初始个体pi,使其生成n组,就可以作为初始种群。3遗传算法简介及步骤3.1遗传算法简介遗传算法是近年来迅速发展起来的一种全新的随机搜索与优化算法,其基本思想是基于Darwin的进化论和Mendel的遗传学说[9]。该算法由密执安大学教授Holland及其学生于1975年创建。此后,遗传算法的研究引起了国内外学者的关注。自1985年以来,国际上已经召开了多次遗传算法的学术会议和研讨会,为研究和应用遗传算法提供了国际交流的机会。进入90年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能力也显著提高,同时产业应用方面的研究也在摸索之中。此外一些新的理论和方法在应用研究中亦得到了迅速的发展,这些无疑给遗传算法增添了新的活力。遗传算法的应用研究已从初期的组合优化求解扩展到了许多更新、更工程化的应用方面。随着应用领域的扩展,遗传算法的研究出现了几个引人注目的新动向:一是基于遗传算法的机器学习,这一新的研究课题把遗传算法从历来离散的搜索空间的优化搜索算法扩展到具有独特的规则生成功能的崭新的机器学习算法。这一新的学习机制对于解决人工智能中知识获取和知识优化精炼的瓶颈难题带来了希望。二是遗传算法正日益和神经网络、模糊推理以及混沌理论等其它智能计算方法相互渗透和结合,这对开拓21世纪新的智能计算技术将具有重要的意义。三是并行处理的遗传算法的研究十分活跃。这一研究不仅对遗传算法本身的发展,而且对于新一代智能计算机体系结构的研究都是十分重要的。四是遗传算法和另一个称为人工生命的崭新研究领域正不断渗透。所谓人工生命即是用计算机模拟自然界丰富多彩的生命现象,其中生物的自适应、进化和免疫等现象是人工生命的重要研究对象,而遗传算法在这方面将会发挥一定的作用。五是遗传算法和进化规划以及进化策略等进化计算理论日益结合。它们几乎是和遗传算法同时独立发展起来的,同遗传算法一样,它们也是模拟自然界生物进化机制的智能计算方法,即同遗传算法具有相同之处,也有各自的特点。目前,这三者之间的比较研究和彼此结合的探讨正形成热点。遗传算法大致上可分为6个步骤,包括编码、设定群体大小、定义适应度函数、选择、交叉、变异操作[10]。遗传算法的一般运算过程[11]如图3-1所示:图3-1遗传算法运算过程示意3.2编码方法编码是应用遗传算法时要解决的首要问题,也是设计遗传算法的一个关键步骤。针对具体应用问题,如何设计一种完美的编码方案一直是遗传算法的难点之一,也是它的一个重要研究方向。而目前还没有一套既严密有完整的指导理论及评价准则能够帮助我们设计编码方案。作为参考,DeJong曾提出了两条操作性较强的实用编码原则[12]。编码原则一(有意义积木块编码原则):应使用能易于产生与所求问题相关的且具有低阶、短定义长度模式的编码方案。编码原则二(最小字符集编码原则):应使用能使问题得到自然表示或者描述的具有最小编码字符集的编码方案。需要说明的是,上述编码原则仅仅是给出了设计编码方案时的指导性大纲,它并不适合于所有问题。由于遗传算法应用的广泛性,迄今为止人们提出了很多种不同的编码方案。从具体实现的角度出发主要有以下几种编码方法。3.2.1二进制编码方法二进制编码方法是遗传算法中最常用的一种编码方法,它使用的编码符号集是由二进制符号0和1所组成的二值符号集{0,1},它所构成的个体基因型是一个二进制编码符号集。它具有以下优点:(1)编码、解码操作简单易行。(2)交叉、变异等操作便于实现。(3)符合最小字符集编码原则。(4)便于利用模式定理对算法进行理论分析。3.2.2格雷码编码方法格雷码是这样一种编码方法,其连续的两个整数所对应的编码值之间仅仅只有一个码位是不相同的,其余码位都完全相同。格雷码编码的主要优点有:(1)便于提高遗传算法的局部搜索能力。(2)交叉、变异等操作便于实现。(3)符合最小字符集编码原则。(4)便于利用模式定理对算法进行理论分析。3.2.3浮点数编码方法浮点数编码方法是指个体的每个基因值用某一范围内一个浮点数来表示,个体的编码长度等于其决策变量的个数。它的优点是:(1)适合于在遗传算法中表示范围较大的数。(2)适合于精度要求较高的遗传算法。(3)便于较大空间的搜索。(4)改善遗传算法的计算复杂性,提高运行效率。(5)便于遗传算法与经典优化方法的混合使用。(6)便于设计针对问题的专门知识的知识型遗传算子。(7)便于处理复杂的决策变量约束问题。3.2.4符号编码方法符号编码方法是指染色体编码串中的基因值取自一个无数值含义、而只有代码含义的符号集。它的主要优点是:(1)符合有意义积木块编码原则。(2)便于在遗传算法中利用所求解问题的专门知识。(3)便于遗传算法与相关近似算法之间的混合使用。本程序就是利用这种编码方法进行编码的。3.3适应度函数在遗传算法中适应度这个概念是用来度量群体中每个个体在优化计算中有可能达到或接近于或有助于找到最优解的优良程度。适应度较高的个体遗传到下一代的概率就较大;而适应度较低的个体遗传到下一代的概率就相对较小一些。度量个体适应度的函数称为适应度函数。密码设计者在设计密码系统的过程中,有其一般设计规则或原则。在将所有可能组成的各种基因定序及编码之后,便可依据我们所期望的密码设计原则,准确地用程序逐步定义于适应函数中,在每一代演化后,以此适应函数评估并赋予每一个个体所对应的适应值,用以确定所有物种演化的方向及搜寻的目标。进行演化时,在每一世代评估每个物种的适应值前,先赋予每个运算元一个随机数值,再依据已经由上一代演化后决定本世代的基因,按照设计密码系统时的几个程序:公开密钥产生阶段、密文产生阶段、解密阶段,依序完成后,再做适应值的评估。3.4选择算子遗传算法使用选择算子来对群体中的个体进行优胜劣汰操作:适应度较高的个体被遗传到下一代群体中的概率较大;适应度较低的个体被遗传到下一代群体中的概率较小。选择操作是建立在对个体的适应度进行评价的基础之上。下面介绍几种常用的选择算子操作方法。3.4.1比例选择比例选择方法是一种回放式随机采样的方法,又称赌盘选择方法。其基本思想是:各个个体被选中的概率与其适应度大小成正比。由于是随机操作的原因,这种选择方法的选择误差比较大,有时甚至连适应度较高的个体也选择不上。3.4.2最优保存策略在遗传算法的运行过程中,虽然随着群体的进化过程会产生出越来越多的优良个体,但是由于选择、交叉、变异等操作的随机性,优良个体也有可能被破坏掉,这并不是我们所希望的。要使适应度最好的个体尽可能的遗传到下一代群体中,可以使用最优保存策略进化模型来进行优胜劣汰操作,即当前群体中适应度最高的个体不参与交叉运算和变异运算,而用它来代替掉本代群体中经过交叉、变异等操作后所产生的适应度最低的个体。3.4.3确定式采样选择确定式采样选择方法是按照一种确定的方式来进行选择操作。这种选择操作方法可保证适应度较大的一些个体一定能够被保留在下一代群体中,并且操作也比较简单。3.4.4无回放随机选择这种选择操作方法也叫期望值选择方法,它的基本思想是根据每个个体在下一代群体中的生存期望值来进行选择运算。这种选择操作方法能够降低一些选择误差,但操作不太方便。3.4.5无回放余数随机选择无回放余数随机选择可保证适应度比平均适应度大的一些个体一定能够被遗传到下一代群体中,所以它的选择误差比较小。3.4.6排序选择前面所介绍的一些选择操作方法中,其选择依据主要是各个个体适应度的具体数值,一般要求它取非负值,所以在选择操作之前必须先对一些负的适应度进行变换处理。而排序选择方法的主要着眼点是个体适应度之间的大小关系,对个体适应度是否取正值或负值以及个体适应度之间的数值差异程度并无特别要求。排序选择方法的主要思想是:对群体中的所有个体按其适应度大小进行排序,基于这个排序来分配各个个体被选中的概率。其具体操作过程是:(1)对群体中的所有个体按其适应度大小进行降序排序。(2)根据具体求解问题,设计一个概率分配表,将各个概率值按上述排序次序分配给各个个体。(3)以各个个体所分配到的概率值作为其能够被遗传到下一代的概率,基于这些概率值用比例选择的方法来产生下一代群体。该方法的实施必须根据对所研究问题的分析和理解情况预先设计一个概率分配表,虽然依据个体适应度之间的大小次序给各个个体分配了以个选中概率,但由于具体选中那一个个体仍是使用了随机性较强的比例选择方法,所以排序选择方法仍具有较大的选择误差。因此本文中选择利用赌盘选择和最优保存策略来对群体进行选择。3.5交叉算子遗传算法中的所谓交叉运算,是指对两个相互配对的染色体按某种方式相互交换其部分基因,从而形成两个新的个体。交叉运算是遗传算法区别于其他进化算法的重要特征,它在遗传算法中起着关键作用,是产生新个体的主要方法。交叉算子的设计包括以下两方面的内容:(1)如何确定交叉点的位置?(2)如何进行部分基因交叉?下面介绍几种适合于二进制编码个体或浮点数编码个体的交叉算子。3.5.1单点交叉单点交叉又称简单交叉,它是指在个体编码串中只随机设置一个交叉点,然后在该点相互交换两个配对个体的部分基因。单点交叉的重要特点是:若邻接基因座之间的关系能提供较好的个体性状和较高的个体适应度的话,则这种单点交叉操作破坏这种个体性状和降低个体适应度的可能性最小。例如:A:1011011100A´:1011011111B:0001110011B´:00011100003.5.2双点交叉和多点交叉双点交叉是指在个体编码串中随机设置二个交叉点,然后再进行部分基因交换。双点交叉的操作过程如下:(1)在相互配对的两个个体编码串中随机设置两个交叉点。(2)交换两个个体在所设定的两个交叉点之间的部分染色体。双点交叉操作的示例如下:例如取两个父代个体如下:P1:ABCDEFP2:BDFECA对第三到第五个字符进行交叉操作后,得到子代个体为:C1:ABFECFC2:BDCDEA多点交叉是指在个体编码串中随机设置多个交叉点,然后进行基因交换。3.5.3均匀交叉均匀交叉是指两个配对个体的每一个基因座上的基因都以相同的概率进行交换,从而形成两个新的个体。A:xxxxxxxxxxA´:xyxyxyxyxy均匀交叉均匀交叉B:yyyyyyyyyyB´:yxyxyxyxyx3.5.4算术交叉算术交叉是指由两个个体的线性组合而产生出两个新的个体。假设在两个个体、之间进行算术交叉,则交叉后运算所产生的两个新个体是:上式中,为一参数,它可以是一个常数,此时所进行的交叉运算称为均匀算术交叉;它也可以是一个由进化代数所决定的变量,此时所进行的交叉运算称为非均匀算术交叉。3.5.5部分匹配交叉部分匹配交叉[13]是由Goldberg在1985年针对TSP提出的基于路径表示的交叉操作。部分匹配交叉操作要求随机选取两个交叉点,以便确定一个匹配段,根据两个父个体中两个交叉点之间的中间段给出的映射关系生成两个子个体。如假设TSP的城市数为8,两个父代染色体分别为:fl{25036147}和f2{34072516},首先随机选取两个点比如3和6标记为x,那么f1和f2就变为以下形式:fl{250x36lx47}f2{340x725xl6}观察两个父代的中段,记录下对应关系,即3一7,6一2,1一5,逐个检查父代的每一个基因,每次找到相匹配的基因,就进行交换:3和7交换:s1{25076143},s2{74032516}6和2交换:s1{65072143},s2{74036512}l和5交换:s1{61072543},s2{74036152}交叉完成,得到sl和s2两个新的城市序列。但在算法实现中发现部分匹配交叉在某些情况下会出现重复,例如:f1{21x654x3}s1{2143545}f2{12x435x6}s2{1265454}观察这两个父代的中段,记录下对应关系,即6一4,5一3,4一5,由此对应关系得到的s1和s2出现重复现象。3.6变异算子在遗传算法中使用变异算子主要有两个目的:(1)改善遗传算法的局部搜索能力。(2)维持群体的多样性,防止出现早熟现象。变异算子的设计包括如下两方面内容:(1)如何确定变异点的位置?(2)如何进行基因值替换?3.6.1基本位变异基本位变异操作是指对个体编码串中以变异概率Pm随机指定的某一位或某几位基因座上的基因值作变异运算,它的改变只是在个体编码串中的个别几个基因座上的基因值,并且变异发生的概率也比较小,所以发挥的作用比较慢,作用效果也不明显。3.6.2均匀变异均匀变异操作是指分别用符合某一范围内均匀分布的随机数,以某一较小的概率来替换个体编码串中各个基因座上的原有基因值。3.6.3边界变异边界变异操作[14]是均匀变异操作的一个变形,它是随机取基因座的二个对应边界基因值之一去替代原有基因值。3.6.4非均匀变异为了方便对某些重点区域进行局部搜索,而对原有基因值做随机扰动,以扰动后的结果作为变异后的新基因值。对每个基因座都以相同的概率进行变异运算之后,相当于整个解向量在解空间中作了个轻微的变动,这就是非均匀变异[15]。它的重点是搜索原个体附近的微小区域。3.6.5高斯变异高斯变异是改进遗传算法对重点搜索区域的局部搜索性能的另一种变异操作方法。它在操作时,用符合均值为µ、方差为2的正态分布的一个随机数来替代原有基因值。4基于遗传算法的密码分析方法根据遗传算法的基本流程,涉及的关键内容有:染色体编码和初始种群的产生、适应度函数的定义和计算、遗传操作和新一代种群的产生等等。常量与变量说明:maxpop表示最大群体大小MAXSTRING表示最大字符串长度lchrom表示个体长度popsize表示种群规模maxgen表示最大运行代数pcross表示交叉概率pmutation表示变异概率4.1染色体编码和初始种群产生本文首先是通过随机产生的密钥对某段英文文章进行加密,这就可以使用替换密码来解决。本文考虑到密钥是由26个全部大写(或全部小写)的英文字母组成,并且不能出现重复字母,即种群中个体的染色体编码不能出现相同字母,在此可使用check数组来防止重复出现同一字母。设计代码如下:for(i=0;i<lchrom;i++) check[i]=false;for(i=0;i<lchrom;i++){while(temp==0) {flag=rand()%lchrom; if(check[flag]==false) {tempcipher[i]=flag; temp=1; check[flag]=true; } } temp=0;}这就实现了对本文中密钥的编码。要产生初始种群只要对上述代码实行循环就可以得到所需的群体。4.2适应度函数的确定与计算在遗传算法当中,适应度函数一般是由待求问题的目标函数转换而成的。针对不同的密码算法或者不同的分析方法,可以确定不同的适应度函数。从大量的英文书籍、报刊的文章中会很容易发现英文字母出现的频率有许多统计规律可循。比如E字母出现的次数最多,其次是T、A、O等字母。若统计的英文篇幅足够长时,会发现各个英文字母的频率相当稳定。根据英文字母的频率可将英文字母分成几类,其中E为极高频率字母类,V、K、J、X、Q、Z为甚低频率字母类。而且,双字母(相邻的两个字母)和三字母(相邻的三个字母)也和单字母一样出现相当稳定的字母分布[16]。这些统计资料对于密码分析者破译密码是非常重要的信息。本文正是基于英文字符的统计特性,可以选取如下适应度函数:式中:SF(i)为第i个字符在正常的英文使用中出现的频率,DF(i)是经过对密文C进行解密运算后得到的明文M=(m0,m1,m2,…,mn-1),对mi出现的频率进行统计计算的结果。而对DF(i)的计算首先要得到文章中一共有多少字符,如果有空格就会少一个字符,从而得到明文的字符总数。然后对文中的每个字母出现的次数进行统计;最后两者相除就可以算出DF(i)。解密后明文中字符出现的频率越接近正常因为出现的频率,其适应度就越大。本文中还采用了最优保存策略即上一代群体中最优密钥的适应度若是大于本代群体中最差密钥的适应度,则上一代的最优密钥取代本代最差密钥。4.3选择在选择算子中采用的赌轮算法是一种典型的选择算法,其基本思想是首先计算出当前种群所有个体的适应度∑Fitness,由此产生一个取值范围在0和∑Fitness之间均匀分布的伪随机数r,则满足条件的第i个个体被选作父代个体(其中F(pi)为第i个个体的适应度,n为种群规模)。选择代码如下:intselect(){ doublerand1,partsum;intj;partsum=0.0;j=0;rand1=random1()*sumfitness;do {partsum=partsum+oldpop[j].fitness;j=j+1; }while((partsum<rand1)&&(j<popsize));return(j-1);}4.4交叉选定两个父代个体以后随机产生两个交叉位置,然后根据交叉概率Pc对选中的两个父代个体做部分匹配交叉操作。但是由于替换密码的密钥表是没有重复字符的,所以交叉操作也必须要保证两个子代个体的参数中字符的非重复性,这就需要在选择出两个父代个体后,对它们进行重复性检查。本文中首先在种群里选出两个密钥oldpop[mate1]和oldpop[mate2],再把oldpop[mate1]和oldpop[mate2]分别赋值给newpop[k5]和newpop[k5+1]。接着在这两个密钥中随机产生两个不同的交叉点jcross1和jcross2,然后对这两个交叉点进行排序,赋值给jcross1为第一个交叉点,jcross2为第二个交叉点。最后把上述两个密钥中两个交叉点间的基因保存在数组ts1和数组ts2中。比较数组ts1和数组ts2中的元素,如果是两者相同,则不用交叉,直接遗传到下一代;否则,进行部分比配交叉。具体操作如下:一、交叉点之前编码处理:如果选出的密钥newpop[k5]里在jcross1之前的基因newpop[k5].cipher[j]与密钥newpop[k5+1]里的ts2中基因ts2[j2]相同时,则对密钥newpop[k5]进行操作,即把newpop[k5]里ts1中的基因ts2[j2]交叉给newpop[k5].cipher[j]。代码如下:for(j=0;j<jcross1;j++){for(j2=jcross1;j2<=jcross2;j2++) {if(newpop[k5].cipher[j]!=ts2[j2])continue; newpop[k5].cipher[j]=ts1[j2]; }}二、交叉点之后编码处理:同一类似。for(j=jcross2+1;j<lchrom;j++){for(j2=jcross1;j2<=jcross2;j2++) {if(newpop[k5].cipher[j]!=ts2[j2])continue; newpop[k5].cipher[j]=ts1[j2];}}三、交叉点间基因交换:把ts1和ts2里的基因进行交换。for(j=jcross1;j<=jcross2;j++){newpop[k5].cipher[j]=ts2[j]; newpop[k5+1].cipher[j]=ts1[j];}部分匹配交叉会产生重复,本文中若是产生了重复,则重新开始交叉,直到不重复。4.5变异在得到两个子代个体后,可以对它们进行变异操作。首先,根据给定的变异概率Pm与字符出现的频率,选择个体中需要进行变异的字符,在这里不能简单地将该字符替换为别的字符,而是在同一个个体内选择另一个字符与之进行交换。变异代码如下:mutate=flip2();if(mutate) {j1=rand()%lchrom;do{j2=rand()%lchrom; }while(j1==j2);jj=newpop[k5].cipher[j2]; newpop[k5].cipher[j2]=newpop[k5].cipher[j1]; newpop[k5].cipher[j1]=jj; }4.6解密本文经过以上操作就得到了新的群体,这个新的群体又需要进一步的选择、交叉和变异才能不断的进化,最终得到最优密钥。而在获得新的群体时,就需要利用这个群体中每一个密钥进行解密。考虑到编码串是用0到25的数字表示,所以用base数组进行转换。操作如下: if(ciphertext[i]-65==oldpop[j].cipher[k]) oldpop[j].plaintext[i]=base[k];}其中ciphertext指密文,plaintext指明文,base定义了按顺序从A到Z的26个字母。5数据分析数据分析是完善整个程序设计的重要步骤之一。先期工作要对得到明文进行加密:明文为:thecapacitatedvehicleroutingproblemcvrpisoneclass……(见附录一)随机产生的密钥为:JKHZCGODIBTUWENQXRYMSAPLFV经加密得到密文为:MDCHJQJHIMJMCZACDIHUCRNSMIEOQRNKUCWHARQIYNECHUJYYNGARQJEZHJE……(见附录二)开始数据分析就要对以上密文进行解密,而解密就需要通过遗传算法,下面就分如下几个部分对算法数据进行分析:(1)群体大小的设定(2)种群进化代数的设定(3)交叉概率的设定(4)变异概率的设定5.1群体大小的设定首先把种群大小设定为200,种群进化代数为1000代,交叉概率设为0.9,变异概率设为0.01。运行程序后可以得到最优密钥为JKHZCGODEBTUWINQXRYMSAPLFV,经此解密后的明文为:THECAPACNTATEDVEHNCLEROUTNIGPROBLEMCVRPNSOIECLASS……而这段明文基本可读。这就说明以上得到的最优密钥已经很接近正确的密钥了。现在别的参数不变的情况下把种群大小设定为150,运行程序后得到最优密钥是JAHZCGODIBTUWYNQXREMSKPLFV,经此解密的明文为:THECAPACITATEDBEHICLEROUTISGPROVLEMCBRPINOSECLANNOFBRPASDCAS……很明显这段明文的误差就比种群大小为200时相对高了点。若把种群大小设定为50呢?运行后得到最优密钥为JQRWCKSHNLXUAIEZBDYMGOFTPV,经此解密的明文为:TREHABAHNTATEPMERNHLECIGTNOVBCIFLEDHMCBNSIOEHLASSIUMCBAOP……这段明文基本上是不可读了。表5-1变种群大小的密钥匹配率种群大小密钥JKHZCGODIBTUWENQXRYMSAPLFV匹配率200JKHZCGODEBTUWINQXRYMSAPLFV92.31%150JAHZCGODIBTUWYNQXREMSKPLFV88.46%50JQRWCKSHNLXUAIEZBDYMGOFTPV26.92%由表5-1分析可知,在进化代数、交叉概率和变异概率一定的情况下种群越大,也就是种群的多样性也高,则最终得到的最优密钥越接近正确的密钥。5.2种群进化代数的设定若是别的参数均不变,而把种群进化代数设定为500代时,由此获得的最优密钥为JAHWCGODIBTUZENQXRYMSKPLFV,经此解密的铭文为:THECAPACITATEMBEHICLEROUTINGPROVLEDCBRPISONECLASS……这段明文虽然也基本可读,但是错误率比进化1000代时要稍高点。而当把进化代数设定为2000代时,其最后得到的结果和进化1000代完全一致。也就是说进化到1000代时种群已经达到了最优。表5-2变群体进化代数的密钥匹配率群体进化代数密钥JKHZCGODIBTUWENQXRYMSAPLFV匹配率2000JKHZCGODEBTUWINQXRYMSAPLFV92.31%1000JKHZCGODEBTUWINQXRYMSAPLFV92.31%500JAHWCGODIBTUZENQXRYMSKPLFV84.62%由表5-2分析可得,种群的进化代数并不是越多越好,只要适当就可以了。5.3交叉概率的设定若是别的参数均不变,而把交叉概率设定为0.8时,运行程序后可获得最优密钥为MSHRCGKDYBPUWINQXZEJFAOLTV,经此密钥解密得到明文:AHECTPTCNATAERVEHNCLEDOBANSWPDOGLEMCVDPNIOSECLTII……这段明文基本上不可读了。若是别的参数均不变,只把交叉概率设定为0.7时,得到最优密钥MSWUCOGHYXTRZENQBDIJAKPLFV,经此密钥获得明文为:AREHTPTHSATAEMUERSHDELOBASNFPLOVDECHULPSIONEHDTII……这段明文完全不可读了。若是别的参数均不变,而把交叉概率设定为0.99时,得到最优密钥JKHZCGODEBTUWINQXRYMSAPLFV,经此密钥获得明文为:THECAPACNTATEDVEHNCLEROUTNIGPROBLEMCVRPNSOIECLASS……这段密文也不可读。表5-3只改变交叉概率的密钥匹配率交叉概率密钥JKHZCGODIBTUWENQXRYMSAPLFV匹配率0.99JKHZCGODEBTUWINQXRYMSAPLFV92.31%0.9JKHZCGODEBTUWINQXRYMSAPLFV92.31%0.8MSHRCGKDYBPUWINQXZEJFAOLTV50.00%0.7MSWUCOGHYXTRZENQBDIJAKPLFV34.62%由表5-3分析可知本文中的交叉概率设定在0.9附近时达到了最优。5.4变异概率的设定若是别的参数均不变,而把变异概率设定为0.02时,运行程序后可获得最优密钥为JKHZCGODIBXUWMNQVREYSAPLFT,经此密钥解密得到明文:NHECAPACINANEDVEHICLEROUNISGPROBLEMCVRPITOSECLATT……这段明文虽误差较交叉概率设定为0.01时稍大,但并不影响其可读性。若是别的参数均不变,而把变异概率设定为0.05时,运行程序后可获得最优密钥为JKHZCGODEXTUWINQBRYMSAPLFV,经此密钥解密得到明文:THECAPACNTATEDVEHNCLEROUTNIGPROBLEMCVRPNSOIECLASS……若是别的参数均不变,而把变异概率设定为0.1时,运行程序后可获得最优密钥为JAHZCGODIXTUWENQBRYMSKPLFV,经此密钥解密得到明文:THECAPACITATEDBEHICLEROUTINGPROVLEMCBRPISONECLASS……这段明文也是可读的。表5-4变变异概率的密钥匹配率变异概率密钥JKHZCGODIBTUWENQXRYMSAPLFV匹配率0.1JAHZCGODIXTUWENQBRYMSKPLFV84.62%0.05JKHZCGODEXTUWINQBRYMSAPLFV88.46%0.02JKHZCGODIBXUWMNQVREYSAPLFT76.92%0.01JKHZCGODEBTUWINQXRYMSAPLFV92.31%由表5-4可说明变异概率的大小对取得最优密钥关系有一定的影响。6总结基于遗传算法的密码分析方法极大的提高了密码分析的效率,弥补了以往密码分析者从算法上对密文进行分析这种既费时又费力的方法的不足,该方法开辟了一条新的研究思路,对促进密码学分析起到了很大的推动作用。本文是基于遗传算法作为一种密码分析的方法,实现了通过遗传算法对密钥进行编码从而产生群体,然后对密文解密,并不断根据适应度计算,使种群不断的进化,最后获得接近于甚至是正真的密钥。而通过以上的分析证明这确实是可行的。由于受实际条件等诸多限制,程序方面还不够完善。比如,如何通过选取更优秀的适应度函数,选择算子、交叉算子以及变异算子,将有可能得出更有效的分析结果。而且,在对已知算法进行分析、总结的基础上,针对不同的具体密码算法以及不同的应用环境选择相应适宜的策略,使用较为复杂的混合遗传算法或并行遗传算法,再结合其它优秀的随机优化算法,如模拟退火算法、禁忌搜索算法等,将可以对更复杂的密码算法如SDES算法、Vernam密码等进行有效的分析[17]。参考文献[1]乌云高娃.演化计算和遗传算法的研究现状.深圳职业技术学院学报,2004.4(8).pp9-10[2]李培培,彭宣戈,昃玺.密码学的新进展及存在问题.科技信息,2007.11(35).pp587-590[3]冯登国.国内外密码学研究现状及发展趋势.通信学报,2002.5(5).pp18-26[4]/view/25311.html[5]/question/77991360.html[6]/jiaoxuelunwen/shuxuelunwen/200605/103802.html[7]/question/7522727.html[8]龙崇剑,陈恭亮,张爱新.基于遗传算法的密码分析方法.信息安全与通讯保密,2007.3(3).pp32-34[9]HollandJH.Adaptationinnaturalandartificialsystems.UniversityofMichigan,1975[10]靳晓华.人工智能的一种新算法—“遗传算法”.仪器仪表与分析检测,1995.1(1).pp10-13[11]周明,孙树栋.遗传算法原理及应用.国防工业出版社,1999.6[12]DeJongKA.AnAnalysisoftheBehaviorofaClassofGeneticAdaptiveSystem.Ph.DDissertation.UniversityofMichigan,1975[13]朱林杰.基于TSP的遗传算法优化研究.大连理工大学,2008.3[14]MichalewiczZ.GeneticAlgorithms+DataStruction=EvolutionProgram.Springer,1992.4(17).pp118-126[15]MichalewiczZ.AModifiedGeneticAlgorithmsforOptimalControlProblems.ComputerMath.Application,1992.7(5).pp58-66[16]BagnallAJ.Theapplicationsofgeneticalgorithmsincryptanalysis[DB/OL]./bagnall96applications.html.1996[17]NaliniN,RaghavendraRaoG.SubmittedtoInternationalJournalofInformationandComputerSecurity(IJICS).IndersciencePublishers,2006.11(12).pp28-34附录一明码:ABCDEFGHIJKLMNOPQRSTUVWXYZ密钥:JKHZCGODIBTUWENQXRYMSAPLFV明文:thecapacitatedvehicleroutingproblemcvrpisoneclassofvrpandcanbedescribedasfindingasetofroutesforafleetofvehicleswhichhavetoserviceanumberofcustomersfromacentraldepotitisa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论