密码学课程设计报告(精品) .doc_第1页
密码学课程设计报告(精品) .doc_第2页
密码学课程设计报告(精品) .doc_第3页
密码学课程设计报告(精品) .doc_第4页
密码学课程设计报告(精品) .doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

沈 阳 工 程 学 院课 程 设 计设计题目: 简单的保密通信系统 院 系 信息学院 班级 信安本111 学生姓名 学号 指导教师 祝世东、王素芬 职称 工程师、副教授 起止日期:2014 年1月6日起至 2014 年1月10日止沈 阳 工 程 学 院课程设计任务书课程设计题目: 简单的保密通信系统 院 系 信息学院 班级 信安本111 学生姓名 卢宁 学号 20114161204 指导教师 祝世东、王素芬 职称 工程师、副教授 课程设计进行地点: f605 任 务 下 达 时 间: 2013年 12 月 25 日起止日期:2014年1月6日起至2014年1月10日止教研室主任 年 月 日批准一、课程设计的原始资料及依据以des、aes、rc4、移位密码、仿射密码或维吉尼亚密码为加密算法;以rsa为密钥传输加密算法;以数据认证算法或md5杂凑算法为消息认证算法;以dss为数字签字方法;选择不同的密钥管理方案,实现一简单的保密通信系统。二、课程设计主要内容及要求设计内容:设计一简单的保密通信系统,系统配置从以下表格中选择。并模拟一次信息传输过程。表1 保密通信系统配置表加密算法共享密钥分配消息认证数字签字加密算法公钥分配共享密钥策略desrsa公用目录表简单分配数据认证算法dssaesrc4公钥管理机构移位密码具有保密性的分配md5 仿射密码公钥证书维吉尼亚密码发送消息的内容为:由学号、姓名、班级构成的字符串。设计要求:(1)每人选择一种系统配置,每名同学的配置必须有所不同;(2)对加密、消息认证、数字签字等算法要给出具体的设置,包括参数、密钥等;(3)根据算法的设置,在“信息安全实验教学系统”上进行计算,并保留截图;(4)公钥分配、共享密钥策略等需根据具体设计进行模拟;(5)使用指定的消息内容,模拟一次完整的消息发送过程,包括:密钥分配、消息加密、消息认证和数字签字的生成、消息认证和数字签字的验证、消息解密等。三、对课程设计说明书撰写内容、格式、字数的要求1课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。一般不应少于3000字。2在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。3设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。4课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用a4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。5课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。四、设计完成后应提交成果的种类、数量、质量等方面的要求1完成“任务书”中指定的功能,运行结果正确。2课程设计说明书。五、时间进度安排顺序阶段日期计 划 完 成 内 容备注1第1天进行设计准备,阅读资料,分析设计任务书,明确设计要求、内容和步骤2第2天系统总体设计3第3天加密、消息认证、数字签字等算法设计4第4天在“信息安全实验教学系统”上模拟5第5天撰写课程设计报告六、主要参考资料(文献)1 杨波.现代密码学. 北京:清华大学出版社 2 张福泰.密码学教程. 武汉:武汉大学出版社3 刘嘉勇. 应用密码学.北京:清华大学出版社4 卢开澄.计算机密码学(第2 版). 北京:清华大学出版社5 宋震.密码学. 中国水利水电出版社沈 阳 工 程 学 院 应用密码学技术 课程设计成绩评定表院(系): 信息学院 班级: 信安本111 学生姓名: 卢宁 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以8) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以4)分加权分合计评 阅 教 师 签 名: 年 月 日答 辩 小 组 评 审 意 见评价内容具 体 要 求权重评 分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。0.55432答 辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。0.55432答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师签名: 年 月 日课 程 设 计 总 评 成 绩分沈阳工程学院课程设计 目录摘要随着科学技术的发展信息化速度急剧加快,信息安全显得尤为重要,社会对信息安全技术人才的要求也非常高。为了能符合社会对这类人才标准要求大学的教育的重点也就很明显了,我们要培养具有研究和实践能力的高层次的计算机专业技术人才已成为我们计算机教育的重点目标。也就是在这个目标的指引下我们在进行应用密码学的课程教学后,在第二学期就进行了一周的课程设计。这样可以很好锻炼我们的实践和研究能力,这对当代就要面临就业压力的计算机专业大学生是非常有必要的。数据摘要是实现网上信息安全的重要手段,而数据摘要又是密码学中占有非常重要的地位。在数据摘要的算法中哈希函数又是关键。密码学是研究编制和密码破解的技术科学,它的客观变化规律应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称为密码学。它是在编码和破译的斗争中发展起来的,并随着先进科学技术的应用已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学有着广泛而密切的联系。 本次课程设计的题目是模拟保密通信的过程,通过模拟整个过程来体会密码学的强大功能。首先确定发送方要发送的消息,通过对称加密,得到密文,接受方再通过一系列的解密处理过程得到发送的原始数据。先对整个系统的执行流程进行了分析,根据据执行流程对、每个部分再进行设计,过程是首先是共享密钥的分配,在这一阶段采用rsa加密算法和公钥证书分配方式以及具有保密性的共享密钥分配策略,接着再消息认证过程中采用md5算法,发送方要对发送的信息采用rc4算法进行加密,最后dss进行数字签名。对每一步中的相关信息进行具体的设置,使其能够成功的发送和接收。通过具体的设计之后,对自己所选题中所使用的算法进行具体深入研究和掌握。也加深了对简单的保密通信系统的工作过程的了解。 关键词 密码学 编码学 破译学 保密通信 数字签名摘要i第一章 绪 论- 1 -1.1密码学概述- 1 -1.3 密码学分类- 2 -.1.3.2不对称密码学- 2 -第2章 保密通信系统原理设计- 4 -2.1 保密通信系统原理- 4 -2.4共享密钥分配- 5 -2.4.1 rsa算法- 5 -非对称密码体制又称为公钥密码体制,加解密使用公私钥密钥对,私钥由密钥拥有者保管,公钥可以公开,基于公开渠道进行分发,解决了对称密钥体制中密钥管理、分发和数字签名等难题。- 6 -2.4.3具有保密性分配- 7 -第3章 具体设计步骤- 10 -3.1 信息加密- 10 -3.2共享密钥分配- 10 -3.2.1 公钥分配- 10 -3.3消息认证- 17 -3.4数字签字- 18 -数字签字是证明发送方发送过某一消息,接收方需要保存数字签字,本次的数字签字选取密钥长度为512bit,如图3.4.1- 18 -3.4 密文传输- 19 -第4章 遇到的问题及解决方法- 20 -4.1 遇到的问题- 20 -4.2 解决方法- 20 -结 论- 21 -致谢- 22 -参考文献- 23 -i沈阳工程学院课程设计 绪论 第一章 绪 论1.1密码学概述密码学(cryptogra phy)在希腊文用kruptos(hidden)+graphein(to write)表达,现代准确的术语为“密码编制学”,简称“编密学”, 与之相对的专门研究如何破解密码的学问称之为“密码分析学”。密码学是主要研究通信安全和保密的学科,他包括两个分支:密码编码学和密码分析学。密码编码学主要研究对信息进行变换,以保护信息在传递过程中不被敌方窃取、解读和利用的方法,而密码分析学则于密码编码学相反,它主要研究如何分析和破译密码。这两者之间既相互对立又相互促进。密码的基本思想是对机密信息进行伪装。一个密码系统完成如下伪装:加密者对需要进行伪装机密信息(明文)进行伪装进行变换(加密变换),得到另外一种看起来似乎与原有信息不相关的表示(密文),如果合法者(接收者)获得了伪装后的信息,那么他可以通过事先约定的密钥,从得到的信息中分析得到原有的机密信息(解密变换),而如果不合法的用户(密码分析者)试图从这种伪装后信息中分析得到原有的机密信息,那么,要么这种分析过程根本是不可能的,要么代价过于巨大,以至于无法进行。在计算机出现以前,密码学的算法主要是通过字符之间代替或易位实现的,我们称这些密码体制为古典密码。其中包括:易位密码、代替密码(单表代替密码、多表代替密码等)。这些密码算法大都十分简单,现在已经很少在实际应用中使用了。由于密码学是涉及数学、通讯、计算机等相关学科的知识,就我们现有的知识水平而言,只能初步研究古典密码学的基本原理和方法。但是对古典密码学的研究,对于理解、构造和分析现代实用的密码都是很有帮助。以下介绍我们所研究的古典密码学。1.2密码学的发展简介密码学作为保护信息的手段,经历了三个发展时期。它最早应用在军事和外交领域,随着科技的发展而逐渐进入人们的生活中。在手工阶段,人们只需通过纸和笔对字符进行加密。密码学的历史源远流长,人类对密码的使用可以追溯到古巴比伦时代。下图的phaistos圆盘是一种直径约为160mm的粘土圆盘,它始于公元前17世纪,表面有明显字间空格的字母。近年有研究学家认为它记录着某种古代天文历法,但真相仍是个迷。随着工业革命的兴起,密码学也进入了机器时代、电子时代。与人手操作相比电子密码机使用了更优秀复杂的加密手段,同时也拥有更高的加密解密效率。其中最具有代表性的就是下图所示的enigma。enigma是德国在1919年发明的一种加密电子器,它被证明是有史以来最可靠的加密系统之一。二战期间它开始被德军大量用于铁路、企业当中,令德军保密通讯技术处于领先地位。在这个时期虽然加密设备有了很大的进步,但是密码学的理论却没有多大的改变,加密的主要手段仍是-替代和换位。计算机的出现使密码进行高度复杂的运算成为可能。直到1976年,为了适应计算机网络通信和商业保密要求产生的公开密钥密码理论,密码学才在真正意义上取得了重大突破,进入近代密码学阶段。近代密码学改变了古典密码学单一的加密手法,融入了大量的数论、几何、代数等丰富知识,使密码学得到更蓬勃的发展。到了现在,世界各国仍然对密码的研究高度重视,已经发展到了现代密码学时期。密码学已经成为结合物理、量子力学、电子学、语言学等多个专业的综合科学,出现了如“量子密码”、“混沌密码”等先进理论,在信息安全中起着十分重要的角色。1.3 密码学分类.1.3.1 基本分类 有二大类的密码系统。第一类为对称金钥(symmetric key)密码系统,第二类为非对称金钥(public key) 密码系统。 首先密码学是由万维网的嬉皮士所研究,而且涉及钥匙传送问题。60年代请保安传送钥匙;70年初,发 现这个不是好辨法,费时浪费时间。 1965年,美国史丹福大学电机工程系-默克尔、迪菲、赫尔曼等三人研究密码学可惜并未有所发现。 另外在英国通讯电子保安组(cesg)秘密机构的切尔纳姆发现了还原密码式,但是由于属于秘密机构,所以不能公开。直到1977年麻省理工研究生-里夫斯,阿德曼发现和切尔曼差不多的式。他们成立rsa security company (rsa是他们名字的字头)现时值25亿美元,在传送信用卡时起了很大作用。rsa已安装了5亿套产品在ie , netscape下的小锁就是rsa的产品。数学挂销第一个发现不是美国,但是第一个公开。数学挂锁上锁易,还原难,所以受广氾使用,亦即是信息编码保密。 .1.3.2不对称密码学传统的对称加密算法遇到了密钥分发管理的难题,最优秀的算法,如果密钥在分发、传发泄漏,则整个安全体系则毁于一旦。不对称加密算法则有效的避免了其分发管理密钥的难题。不对称密码学中使用到一对公钥(public key)和私钥(private key)组合。用公钥加密的密文只能用私钥解密,反之,用私钥加密的密文只能用公钥解密。在操作过程中,人们把公钥向外界发布,让外界都知道,自己保存私钥,只有自己才能知道。如果a要发一份秘密信息给b,则a只需要得到b的公钥,然后用b的公钥加密秘密信息,此加密的信息只有b能用其保密的私钥解密。反之,b也可以用a的公钥加密保密信息给a。信息在传送过程中,即使被第三方截取,也不可能解密其内容。 (i)rsa rsa(取ron rivest,adi shamir和leonard adleman三创始人字句首字母)几乎已经成为了公开密钥密码体制的代名词。rsa是一种公开密钥加密体系,它的应用原理是:先由密钥管理中心产生一对公钥 (public-key)和私钥(private-key),称为密钥对。方法如下:先产生两个足够大的强质数p、q。可得p与q的乘积为 n=pq。再由p和q算出另一个数z=(p-1)(q-1),然后再选取一个与z互素的奇数e,称e为公开指数;从这个e值可以找出另一个值d,并能 满足ed=1 mod (z)条件。由此而得到的两组数(n,e)和(n,d)分别被称为公开密钥和秘密密钥,或简称公钥和私钥。 公钥密码算法都是基于一些复杂的数学难题,例如广泛使用的rsa算法就是基于大整数因子分解这一著名的数学难题。公钥密码体系的优点是能适应网络的开放性要求,密钥管理简单,并且可方便地实现数字签名和身份认证等功能,是电子商务等技术的核心基础。其缺点是算法复杂,加密数据的速度和效率较低。因此在实际应用中,通常将对称加密算法和非对称加密算法结合使用,利用对称加密算法来进行大容量数据的加密,而采用rsa等非对称加密算法来传递对称加密算法所使用的密钥,通过这种方法可以有效地提高加密的效率并能简化对密钥的管理。 (ii) 鉴别与签名对称密码学解决了数据机密性的功能要求,不对称密码学则相应的解决了签别和不可否认性等功能需求。在不对称密码学中,用自己公钥加密的数据只有自己才能打开,人们就可以把自己的公钥放在网上,通信的对方可以用自己的公钥加密数据,密文只有自己才能打开,达到了加密数据而不需要通过一种十分可靠的方式来传递对称密钥的作用。反之,如果使用私钥来加密消息,通信的对方用公钥来解密消息,就可以达到鉴别的作用。因为能用公钥解密消息,说明数据一定是自己加密的,前提是这些加密并不为保护数据内容,只为确认、鉴别身份而用。这样可以用对称算法作数字签名 (digital signature),用私钥加密报文,就可以让对方确认身份。如果a用其私钥加密了某信息,b用a的公钥钥密后“阅读”a的信息,则a就不能否认其给a发过过信息。 (iii)ca (certification authrity)公钥加密体系理论上非常安全,操作过程中有可能会受到中间人攻击(man-in-the-middle attack)。比如b要发一个保密信息给a,所以第一步a把自己的公钥ka发给b。在这一过程中,如果窃听者h 截取到其公钥,然后伪装成a,将自己的公钥kh发给b。b将敏感信息用kh加密后发给a,此过程中,窃听者h截取密文后用h的私钥解密得到信息内容,然后用a的公钥ka加密得到密文,自己伪装成b发给a,a用自己的私钥顺利的解开了密文。在此过程中,a与b通讯顺利,也感觉不到h的存在,但a与b的信息却被窃听者窃取。ca的出现有效的解决了中间人的攻击。ca(certification authrity)把一个特定的实体和公钥绑在一起。人们把信任建立在一个大家都信任的第三方,从信任第三方来达到信任对方的目的。如果人们想发放自己的公钥,则用自己的相关身份信息和自己的公钥到一家权威机构(比如像派出所这样的机构)办一个数据证书。权威机构核实你的身份以后,用其权威机构的私钥来加密你的数据证书。如果你要把你的公钥传送给对方,只需要将自己的数据证书传递给对方,对方用权威机构的公钥解密即可得到你身份的相关信息和公钥。而权威机构的公钥则更加透明,比如可以刊登在报纸上让大家都知道。系统本身也带有一些权威机构的公钥,这些在人们装好系统就已经存在了。- 2 -沈阳工程学院课程设计 保密通信系统原理设计第2章 保密通信系统原理设计2.1 保密通信系统原理数据通信的迅速发展带来了数据失密问题。信息被非法截取和数据库资料被窃的事例经常发生。数据失密会造成严重后果,所以数据保密成为十分重要的问题。数据保密技术包括:用户身份标志。不同的用户享有不同的权利,可以对不同的数据库或数据库的不同部分进行访问,用户身份标志最常用的方法是口令学。物理性保护。一般保密性较高的数据库除了用户身份标志外,还需要数据加密,如信用卡。使用权。数据库的每一个受保护部分保持一份各个用户使用权的清单。在数据通信中的传统的保密方法是采用通信双方协定的密钥字(定期或不定期变换),在通信开始时先验证对方身份。传输的信号也是经过加密的。公开密钥理论,其基本要领是给每一用户分配一对密钥,其中一个是只有使用者本人掌握秘密密钥,另一个是可以公开的密钥,两个密钥通过算法结成一定的关系。公开密钥只用于加密密钥通过算法结成一定的关系。公开密钥只用于加密,秘密密钥只用于解密,因而要想从一个密钥导出另一个密钥事实上是不可能的,即从数字观点来看,函数是单向的,而且只有惟一的解。这一方法的特点是把经过加密的报文发送出去而无需双方进行密钥互换、分配或同步。rsa法的数字签名验证法,可以确证对方用户身份。数字签名可以由公开密钥系统产生出来,其前提是公开密钥和秘密密钥是互逆的,就是说,假使一个明文报文是用某个秘密密钥“解密”的,则公开密钥“加密”就可以将报文恢复为明文格式。2.2设计内容加密算法共享密钥分配消息认证数字签字加密算法公钥分配共享密钥策略rc4rsa公钥证书具有保密性分配md5dss表2.2 保密通信系统配置表- 8 -2.3 rc4流密码算法 流密码(stream cipher)也称为序列密码,每次加密处理数据流的一位或一个字节,加解密使用相同的密钥,是对称密码算法的一种。1949年shannon证明只有一次一密密码体制是绝对安全的,为流密码技术的研究提供了强大的支持,一次一密的密码方案是流密码的雏形。流密码的基本思想是利用密钥k产生一个密钥流k1k2kn对明文流m=m1m2mn进行如下加密:c=c1c2cn=ek1(m1)ek2(m2)ekn(mn)。若流密码所使用的是真正随机产生的、与消息流长度相同的密钥流,则此时的流密码就是一次一密的密码体制。流密码分为同步流密码和自同步流密码两种。同步流密码的密钥流的产生独立于明文和密文;自同步流密码的密钥流的产生与密钥和已经产生的固定数量的密文字符有关,即是一种有记忆变换的序列密码。rc4是1987年ron rivest为rsa公司设计的一种流密码,是一个面向字节操作、具有密钥长度可变特性的流密码,是目前为数不多的公开的流密码算法。目前的rc4至少使用128为的密钥。rc4的算法可简单描述为:对于n位长的字,有共n=2n个可能的内部置换状态矢量s=s0,s1,sn-1,这些状态是保密的。密钥流k由s中的2n个元素按一定方式选出一个元素而生成,每生成一个密钥值,s中的元素就重新置换一次,自始至终置换后的s包含从0到n-1的所有n比特数。rc4有两个主要算法:密钥调度算法ksa和伪随机数生成算法prga。ksa算法的作用是将一个随机密钥变换成一个初始置换,及相当于初始化状态矢量s,然后prga利用ksa生成的初始置换生成一个伪随机数出序列。密钥调度算法ksa的算法描述如下:fori=0 to n-1 dosi=i;j=0;fori=0 to n-1 doj=(j+si+ki mod l) mod n;swap(si,sj);初始化时,s中元素的值被设置为0到n-1,密钥长度为l个字节,从s0到sn-1对于每个si根据有密钥k确定的方案,将si置换为s中的另一个元素。伪随机数生成算法prga的算法描述如下:i=0;j=0;while(true)i=(i+1) mod n;j=(j+si)mod n;swap(si,sj);output k=s(si+sj)mod n;prga算法主要完成密钥流的生成,从s0到sn-1,对每个si,根据当前s的值,将si与s中的另一个元素置换,当sn-1完成置换后,操作再从s0开始重复。加密时将k值与下一个明文字节异或;解密时将k值与下一密文字节异或。2.4共享密钥分配2.4.1 rsa算法 非对称密码体制又称为公钥密码体制,加解密使用公私钥密钥对,私钥由密钥拥有者保管,公钥可以公开,基于公开渠道进行分发,解决了对称密钥体制中密钥管理、分发和数字签名等难题。rsa公钥算法由rivest、shamir、adleman于1978年提出的,是目前公钥密码的国际标准。算法的数学基础是euler定理,是基于deffie-hellman的单项陷门函数的定义而给出的第一个公钥密码的实际实现,其安全性建立在大整数因子分解的困难性之上。rsa算法的明文空间m=密文空间c=zn整数,其算法描述如下:密钥生成:随机选择两个大素数p和q,计算n=p q,(n) = (p-1)(q-1);选择一个随机整数e(n),满足gcd(e,(n)=1,计算整数d = e-1mod(n),即ed 1 mod(n);公开公钥(n,e),安全的销毁p、q和(n),并保留(d,n)作为私钥。加密:c me mod n,m n解密:m cd mod n使用中国剩余定理可以加速rsa密码算法的实现。2.4.2 公钥证书 用户互相交换自己的公钥而无须与公钥管理机构联系由证书管理机构ca(certificate authority)为用户建立其中的数据项有与该用户的秘密钥相匹配的公开钥及用户的身份和时戳等所有的数据项经ca用自己的秘密钥签字后就形成证书ca=eskcat,ida,pka,其中ida是用户a的身份,pka是a的公钥,t是当前时戳,skca是ca的秘密钥,ca即是为户a产生的证书用户将自己的公开钥通过公钥证书发给另一用户接收方可用ca的公钥pkca对证书加以验证,即dpkcaca=dpkcaeskcat,ida,pka=(t,ida,pka)图2.4.1 证书的产生过程2.4.3具有保密性分配 公开钥分配完成后,用户就可用公钥加密体制进行保密通信。然而由于公钥加密的速度过慢,以此进行保密通信不太合适,但用于分配单钥密码体制的密钥却非常合适。用这种方法分配密钥主要有简单分配和具有保密性的分配两种方式。这里主要介绍后者。具有保密性的密钥分配既可防止被动攻击,又可防止主动攻击。假设a、b已完成公钥交换,有如图2.2的分配过程。这种分配方式比简单分配多了两个过程,一是有a与b相互确认。二是当a给b发送密钥ks时不似乎简单的用b的公钥进行加密而是先用自己的私钥加密再用b的公钥加密,这样保证了ks只有a能发送且只有b能解开,很大程度上增加了安全性。 图2.4.2具有保密性分配密钥过程2.5 md5消息认证2.5.1 md5算法md5(message-digest algorithm 5)即信息-摘要算法,是md4算法的改进;算法的输入为任意长度的消息,分为512比特长的分组,输出为128比特的消息摘要。处理过程如下:1:对消息进行填充,使其比特长度为n512+448(n为正整数),填充方式是固定的:第一位为1,其后各位为0。2:附加消息长度,使用上一步骤留出的64比特以小端(最低有效字节/位存储于低地址字节/位)方式来表示消息被填充前的长度,若消息长度大于264,则以264为模数取模。3:对消息摘要缓冲区初始化,算法使用128比特长的缓冲区来存储中间结果和最终散列值,将缓冲区表示成4个32比特长的寄存器a、b、c、d,每个寄存器以小端方式存储数据,初始值为(十六进制,低位字节在前)a=01234567,b=89abcdef,c=fedcba98,d=76543210。4:以分组为单位对消息进行处理,每一个分组都经过压缩函数hmd5处理;hmd5有4轮处理过程,每轮有16步迭代,4轮处理过程的处理结构一样,所用逻辑函数不同,分别表示为f、g、h、i;每轮的输入为当前处理的消息分组和缓冲区当前的值,输出仍存放在缓冲区中。最后第四轮的输出与第一轮输入的缓冲区值v相加,相加时将v看做4个32比特的字,每个字与第四轮输出的对应的字按模232相加,相加结果为hmd5的输出。5:消息的所有分组均被处理完后,最后一个hmd5的输出即为产生的128位消息摘要。图2.5 md5杂凑算法2.6 dss数字签字数字签名是针对数字文档的一种签名确认方法,目的是对数字对象的合法性、真实性进行标记,并提供签名者的承诺。数字签名应具有与数字对象一一对应的关系,即签名的精确性;数字签名应基于签名者的唯一特征,从而确定签名的不可伪造性和不可否认性,即签名的唯一性;数字签名应具有时间特征,从而防止签名的重复使用,即签名的时效性。数字签名的执行方式分为直接方式和可仲裁方式。dsa签名算法数字签名标准(digital signature standard,dss)是由美国国家标准技术研究所(nist)于1994年正式公布的联邦信息处理标准fips pub 186。dss目前新增了基于rsa和ecc的数字签名算法,但是最初只支持dsa(digital signature algorithm)数字签名算法,该算法是elgamal签名算法的改进,安全性基于计算离散对数的难度。dsa算法由美国国家安全局nsa指导设计,用来提供唯一的数字签名函数;它虽然是一种公钥技术,但是只能用于数字签名。dsa中规定了使用安全散列算法(sha-1),将消息生成固定长度的散列值,与一随机数k一起作为签名函数的输入;签名函数还需使用发送方的密钥x和供所有用户使用的全局公开密钥分量(p,q,g),产生的两个输出(r,s)即为消息的签名。接收方收到消息后再产生出消息的散列值,将散列值与收到签名中的s一起输入验证函数;验证函数还需输入全局公开密钥分量(p,q,g)和发送方的公钥y,产生的输出若与收到的签名中过程如图2.6所示。mm|hhsigkpkapkgpkapkg比较图2.6 dss签字加密:假设用户a要对消息m进行数字签名,然后发送给用户b. 发送方a秘密选取随机整数k,0kq; 发送方计算 r(gk mod p) mod q;其中x为签名方a的私钥。其中h(m)是使用sha-1生成的消息m的散列码,(r,s)就是消息m的数字签名,k-1是k模q的乘法逆元,为了安全起见,每次签名应当随机选取不同的k。若r=0或s=0则返回重新计算。 解密:如果接收者收到消息m,r,s后,首先验证0rq,0sq,如果通过则计算:w=s-1 mod q;u1= h(m)w mod q;u2= r w mod q;;其中y为签名方a的公钥。如果v=r则确定签名合法,可以认为收到的消息是可信的,否则消息可能被篡改。 沈阳工程学院课程设计 具体设计步骤第3章 具体设计步骤3.1 信息加密 加密算法:rc4 明文:由学号、姓名、班级构成的字符串“2011416104luningxinanben111”转化为十六进制为31546007b239232236ea29b69cd0e313b04c26066a9063c44d5c85密钥:19900125图3.1 rc4加密3.2共享密钥分配3.2.1 公钥分配步骤1:生成a方的密钥对如图3.2.1图3.2.1 a的密钥对名文: 19900125modulus:8f7f551da595efb36ef6e754192c18a14ea6abd7a619a1694d94a1b7a7c764744cdcad7b349fbf1d6f0dc6eacb05ebdc917fe7b21b6106d0ee70c366979cd6d5公钥:10001私钥:86840bcb15dd3eed4a9903734f8189b934dc82fc4d857b4d165fbd55475f5fe749543c3db87b435e417f252e24331a7a3421903c1e3feb23f7e6ee870b505f01步骤2:生成b方的密钥对如图3.2.2 图3.2.2 b的密钥对明文:19921108modulus:bcc4f8a85c8388ae39496b76345d40ffc6ac366857ac23ceed3d8adbf5049ffdd004e129204a042d747d5ac0e30761c9120ee790ab7b80c88d5f2205ec2d34eb公钥:10001私钥:465bb83eb074ca3dfdd632ba951be8fd2ca4c586b09ed59debe91357968489c8e0f6085ee3509db2b3f2d5380ec12cdd6a6fb4f5cb6e5ca91b9aa730d4235431步骤3:生成ca方的密钥对如图3.2.3图3.2.3 ca的密钥对modulus:bed655379bf6258890134d842f33d1f35432076d89d454afcc9f1e67abb2586d7387de6094850839b1d2303b770fa4355dfdee6ddbb9e7ba9cb0b502ec37f203公钥:10001私钥:8b98b5958c1caeb00ad453ebd1ab9274f0adf80904bdb18537a55dd4702071d5ba4aef196b5c22a81dd5b013ab09ac8abc5e96608f7b7dd30f85685440813fe1步骤4:将a的公钥和姓名a发送给证书管理机构ca,由ca的私钥加密生成a的证书,如图3.3.4 图3.3.4 a的证书a证书:bb97f06cf4c7fda1799039ac0be7f4436c0a3c63b7c2816072ee8774802c982a060784657c1bf790640520ade17ccc00b6436431fe0cacf1064db4e9e86fcba3明文:19900125201141610410001步骤5:将b的公钥和姓名b发送给证书管理机构ca,由ca的私钥加密生成b的证书,如图3.3.5 图3.3.5 b的证书b证书:782b31e8e31ebbeba6e99dc801969dedf4320a63a2cab77a08e718840ac70d77e41e813f96c552787d83d7639715ddb39b73d1e289bb65afb7ce5a6b0e2b7339明文:199211082011416103100013.2.2共享密钥策略这里我们运用了具有保密性的密钥分配方式,该过程具有保密性和认证性,因此既可以防止被动攻击,也可以防止主动攻击。上边a、b已经完成了公钥的交换,可以按照下列步骤建立共享会话密钥。步骤1:用户a用用户b的公钥pkb加密a的身份ida和一个一次性随机数n1后发往b如图3.3.6图3.3.6标示业务n1|ida=199001252011416103epkbn1|ida= 4754fd34734b382892828391c3516c75e16a1d64dbb8a47b733be5633a9e6f9a7d256a552cc276f029d1d5fb9c1ea4ffce0bb4e6e19f8241337038392c12e28a步骤2:用户b用用户a的公钥pka加密a的一次性随机数n1和b新产生的一次随机数n2后发往a。因为只有b能解读由b公钥加密的内容,所以b发来的消息中n1的存在可是a相信对方的确是b,如图3.3.7图3.3.7反馈信息n1|n2=1990012519921108epkan1|n2= 23c84c7e6c4331e48bf08deee357353373391e35fb1ee1bf0bb34667ac59b37a1656d4186eeb77014714b877dd74903bf0b8184aa67ffbe8c344b7aa311d6403步骤3:用户a用b的公钥pkb对n2加密后返回给b,以使b相信对方的确使a,如图3.3.8图3.3.8 反馈信息n2=19921108epkbn2= 4ed9ff263178b1f0773881081609f95a863a1aecb827d8b78975bbbeed8f80c9d15ccf4ebfbeb138a4521b94589f0a6d86b0ff0b8f06911617f78a6b450b89c5步骤4:用户a选择会话密钥ks,然后将m=epkbeskaks发送给b。用a的私钥加密如图3.3.9图3.3.9ks=19900125eskaks= 2acdfc3c3619292e69280fbbfb43d14610839910576af7d53f848c17c6e45e8419412a73340964f0e16cf1451d172594792f7ca8698b3758916378a2ec3f30b6步骤5:用b的公钥加密是为保证只有b能解读加密结果,用a的私钥加密是保证该加密结果只有a能发送用户b以dpkadskbm恢复会话密钥。如图3.3.10 a的公钥解密结果为“19900125”。此时,用户b得到了a的会话密钥,并可以接受a的消息了。图3.3.10 a的公钥解密epkbeskaks1= 228690c9e7d5adc5aa2988f8937f1a2721acfee72976fe01020e4e7a80ea6f930e3ae828a0812351d3badf32389f6aceeb77ce567dee2522c87cba7b67f7581cepkbeskaks2= 3bfce81873e8418749743221de254f71c7667cee38624b65a650278a9663c83de4cc7baaf8e02681861eaedb5383114c59fd34e2353e5b6a0ff99de672668ac9epkbeskaks3=5d7dbd473146323ec8663c0bcb9e131ce91a5f81d13ccdb6baa6f12de56827cc243308004b99ea9d541d1f8bf0ac1ce4a8294883ea0835992b7db5a54afe8aa03.3消息认证确保信息密文的安全与正确,会在密文后添加消息认证(md5),计算md5值如图3.3.1图3.3.1消息认证3.4数字签字数字签字是证明发送方发送过某一消息,接收方需要保存数字签字,本次的数字签字选取密钥长度为512bit,如图3.4.1图3.4.1数字签字明文:2011416104luningxinanben111sha(m)=f559c53a9e843bce7dc466d7f694bbc8b0507eb6g=58a21e5d77c8560f1b7e4aded71e4e16c550c9045e363e0f901f7e942915782717184214a57f7842b6f14b2167203b347b18c512b7879e41253b82b1b8b3aef2p=c40c70160c21acb642e531615c22b8021a3632f1f5f2f26ac3e9a980af77c9e39fa33d55e0dfd7f97f143c73064c0740280fbbe83d1f3969047d902539d93645q=bfda9941eb6cb06f5df645fe2bec15ccfacf0be1r=62992640e4bc2a1d7f93022aa2ec2ea3686c0ef6s=7e5f40718dff0c028760fd2d99c69233f144332a3.4 密文传输传输的密文包括信息的密文、消息认证、数字签字和间隔符四部分。信息认证前的分隔符为md5;数字签字前的分隔符为dss;数字签字的r值和s值前分别加分隔符r和s。接收方将接收到的信息通过分隔符区分出信息的密文、消息认证和数字签字部分,做信息密文的md5与接受到的md5对比,确保信息的正确;再做md5的数字签字得到的

温馨提示

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

评论

0/150

提交评论