密码学课程设计报告Word文档格式.docx

上传人:b****5 文档编号:16480968 上传时间:2022-11-24 格式:DOCX 页数:30 大小:305.08KB
下载 相关 举报
密码学课程设计报告Word文档格式.docx_第1页
第1页 / 共30页
密码学课程设计报告Word文档格式.docx_第2页
第2页 / 共30页
密码学课程设计报告Word文档格式.docx_第3页
第3页 / 共30页
密码学课程设计报告Word文档格式.docx_第4页
第4页 / 共30页
密码学课程设计报告Word文档格式.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

密码学课程设计报告Word文档格式.docx

《密码学课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《密码学课程设计报告Word文档格式.docx(30页珍藏版)》请在冰豆网上搜索。

密码学课程设计报告Word文档格式.docx

消息认证

数字签字

公钥分配

共享密钥策略

DES

RSA

公用目

录表

简单分配

数据认证算法

DSS

AES

RC4

公钥管理机构

移位密码

具有保密性的分配

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.1

工作能力

态度

工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,

0.2

工作量

按期圆满完成规定的设计任务,工作量饱满,难度适宜。

说明书的质量

说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。

0.5

指导教师评审成绩

(加权分合计乘以8)

加权分合计

指导教师签名:

年月日

评阅教师评审意见

查阅

文献

查阅文献有一定广泛性;

有综合归纳资料的能力

工作量饱满,难度适中。

0.3

评阅教师评审成绩

(加权分合计乘以4)

评阅教师签名:

答辩小组评审意见

学生汇报

汇报准备充分,思路清晰;

语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;

时间符合要求。

答辩

思路清晰;

回答问题有理论依据,基本概念清楚;

主要问题回答准确,深入,有说服力。

答辩小组评审成绩

答辩小组教师签名:

课程设计总评成绩

摘要

随着科学技术的发展信息化速度急剧加快,信息安全显得尤为重要,社会对信息安全技术人才的要求也非常高。

为了能符合社会对这类人才标准要求大学的教育的重点也就很明显了,我们要培养具有研究和实践能力的高层次的计算机专业技术人才已成为我们计算机教育的重点目标。

也就是在这个目标的指引下我们在进行应用密码学的课程教学后,在第二学期就进行了一周的课程设计。

这样可以很好锻炼我们的实践和研究能力,这对当代就要面临就业压力的计算机专业大学生是非常有必要的。

数据摘要是实现网上信息安全的重要手段,而数据摘要又是密码学中占有非常重要的地位。

在数据摘要的算法中哈希函数又是关键。

密码学是研究编制和密码破解的技术科学,它的客观变化规律应用于编制密码以保守通信秘密的,称为编码学;

应用于破译密码以获取通信情报的,称为破译学,总称为密码学。

它是在编码和破译的斗争中发展起来的,并随着先进科学技术的应用已成为一门综合性的尖端技术科学。

它与语言学、数学、电子学、声学、信息论、计算机科学有着广泛而密切的联系。

本次课程设计的题目是模拟保密通信的过程,通过模拟整个过程来体会密码学的强大功能。

首先确定发送方要发送的消息,通过对称加密,得到密文,接受方再通过一系列的解密处理过程得到发送的原始数据。

先对整个系统的执行流程进行了分析,根据据执行流程对、每个部分再进行设计,过程是首先是共享密钥的分配,在这一阶段采用RSA加密算法和公钥证书分配方式以及具有保密性的共享密钥分配策略,接着再消息认证过程中采用MD5算法,发送方要对发送的信息采用RC4算法进行加密,最后DSS进行数字签名。

对每一步中的相关信息进行具体的设置,使其能够成功的发送和接收。

通过具体的设计之后,对自己所选题中所使用的算法进行具体深入研究和掌握。

也加深了对简单的保密通信系统的工作过程的了解。

关键词密码学编码学破译学保密通信数字签名

第一章绪论

1.1密码学概述

密码学(Cryptography)在希腊文用Kruptos(hidden)+graphein(towrite)表达,现代准确的术语为“密码编制学”,简称“编密学”,与之相对的专门研究如何破解密码的学问称之为“密码分析学”。

密码学是主要研究通信安全和保密的学科,他包括两个分支:

密码编码学和密码分析学。

密码编码学主要研究对信息进行变换,以保护信息在传递过程中不被敌方窃取、解读和利用的方法,而密码分析学则于密码编码学相反,它主要研究如何分析和破译密码。

这两者之间既相互对立又相互促进。

密码的基本思想是对机密信息进行伪装。

一个密码系统完成如下伪装:

加密者对需要进行伪装机密信息(明文)进行伪装进行变换(加密变换),得到另外一种看起来似乎与原有信息不相关的表示(密文),如果合法者(接收者)获得了伪装后的信息,那么他可以通过事先约定的密钥,从得到的信息中分析得到原有的机密信息(解密变换),而如果不合法的用户(密码分析者)试图从这种伪装后信息中分析得到原有的机密信息,那么,要么这种分析过程根本是不可能的,要么代价过于巨大,以至于无法进行。

  在计算机出现以前,密码学的算法主要是通过字符之间代替或易位实现的,我们称这些密码体制为古典密码。

其中包括:

易位密码、代替密码(单表代替密码、多表代替密码等)。

这些密码算法大都十分简单,现在已经很少在实际应用中使用了。

由于密码学是涉及数学、通讯、计算机等相关学科的知识,就我们现有的知识水平而言,只能初步研究古典密码学的基本原理和方法。

但是对古典密码学的研究,对于理解、构造和分析现代实用的密码都是很有帮助。

以下介绍我们所研究的古典密码学。

1.2密码学的发展简介

密码学作为保护信息的手段,经历了三个发展时期。

它最早应用在军事和外交领域,随着科技的发展而逐渐进入人们的生活中。

在手工阶段,人们只需通过纸和笔对字符进行加密。

密码学的历史源远流长,人类对密码的使用可以追溯到古巴比伦时代。

下图的Phaistos圆盘是一种直径约为160mm的粘土圆盘,它始于公元前17世纪,表面有明显字间空格的字母。

近年有研究学家认为它记录着某种古代天文历法,但真相仍是个迷。

随着工业革命的兴起,密码学也进入了机器时代、电子时代。

与人手操作相比电子密码机使用了更优秀复杂的加密手段,同时也拥有更高的加密解密效率。

其中最具有代表性的就是下图所示的ENIGMA。

ENIGMA是德国在1919年发明的一种加密电子器,它被证明是有史以来最可靠的加密系统之一。

二战期间它开始被德军大量用于铁路、企业当中,令德军保密通讯技术处于领先地位。

在这个时期虽然加密设备有了很大的进步,但是密码学的理论却没有多大的改变,加密的主要手段仍是--替代和换位。

计算机的出现使密码进行高度复杂的运算成为可能。

直到1976年,为了适应计算机网络通信和商业保密要求产生的公开密钥密码理论,密码学才在真正意义上取得了重大突破,进入近代密码学阶段。

近代密码学改变了古典密码学单一的加密手法,融入了大量的数论、几何、代数等丰富知识,使密码学得到更蓬勃的发展。

到了现在,世界各国仍然对密码的研究高度重视,已经发展到了现代密码学时期。

密码学已经成为结合物理、量子力学、电子学、语言学等多个专业的综合科学,出现了如“量子密码”、“混沌密码”等先进理论,在信息安全中起着十分重要的角色。

1.3密码学分类

.1.3.1基本分类

有二大类的密码系统。

第一类为对称金钥(SymmetricKey)密码系统,第二类为非对称金钥(PublicKey)密码系统。

首先密码学是由万维网的嬉皮士所研究,而且涉及钥匙传送问题。

60年代请保安传送钥匙;

70年初,发现这个不是好辨法,费时浪费时间。

1965年,美国史丹福大学电机工程系--默克尔、迪菲、赫尔曼等三人研究密码学可惜并未有所发现。

另外在英国通讯电子保安组(CESG)秘密机构的切尔纳姆发现了还原密码式,但是由于属于秘密机构,所以不能公开。

直到1977年麻省理工研究生--里夫斯,阿德曼发现和切尔曼差不多的式。

他们成立RSASecurityCompany(RSA是他们名字的字头)现时值25亿美元,在传送信用卡时起了很大作用。

RSA已安装了5亿套产品在IE,Netscape下的小锁就是RSA的产品。

数学挂销第一个发现不是美国,但是第一个公开。

数学挂锁上锁易,还原难,所以受广氾使用,亦即是信息编码保密。

.1.3.2不对称密码学

传统的对称加密算法遇到了密钥分发管理的难题,最优秀的算法,如果密钥在分发、传发泄漏,则整个安全体系则毁于一旦。

不对称加密算法则有效的避免了其分发管理密钥的难题。

不对称密码学中使用到一对公钥(publickey)和私钥(privatekey)组合。

用公钥加密的密文只能用私钥解密,反之,用私钥加密的密文只能用公钥解密。

在操作过程中,人们把公钥向外界发布,让外界都知道,自己保存私钥,只有自己才能知道。

如果A要发一份秘密信息给B,则A只需要得到B的公钥,然后用B的公钥加密秘密信息,此加密的信息只有B能用其保密的私钥解密。

反之,B也可以用A的公钥加密保密信息给A。

信息在传送过程中,即使被第三方截取,也不可能解密其内容。

 

(I)RSA

RSA(取RonRivest,AdiShamir和LeonardAdleman三创始人字句首字母)几乎已经成为了公开密钥密码体制的代名词。

RSA是一种公开密钥加密体系,它的应用原理是:

先由密钥管理中心产生一对公钥(public-key)和私钥(Private-key),称为密钥对。

方法如下:

先产生两个足够大的强质数p、q。

可得p与q的乘积为n=p×

q。

再由p和q算出另一个数z=(p-1)×

(q-1),然后再选取一个与z互素的奇数e,称e为公开指数;

从这个e值可以找出另一个值d,并能满足e×

d=1mod(z)条件。

由此而得到的两组数(n,e)和(n,d)分别被称为公开密钥和秘密密钥,或简称公钥和私钥。

  

公钥密码算法都是基于一些复杂的数学难题,例如广泛使用的RSA算法就是基于大整数因子分解这一著名的数学难题。

公钥密码体系的优点是能适应网络的开放性要求,密钥管理简单,并且可方便地实现数字签名和身份认证等功能,是电子商务等技术的核心基础。

其缺点是算法复杂,加密数据的速度和效率较低。

因此在实际应用中,通常将对称加密算法和非对称加密算法结合使用,利用对称加密算法来进行大容量数据的加密,而采用RSA等非对称加密算法来传递对称加密算法所使用的密钥,通过这种方法可以有效地提高加密的效率并能简化对密钥的管理。

(II)鉴别与签名

对称密码学解决了数据机密性的功能要求,不对称密码学则相应的解决了签别和不可否认性等功能需求。

在不对称密码学中,用自己公钥加密的数据只有自己才能打开,人们就可以把自己的公钥放在网上,通信的对方可以用自己的公钥加密数据,密文只有自己才能打开,达到了加密数据而不需要通过一种十分可靠的方式来传递对称密钥的作用。

反之,如果使用私钥来加密消息,通信的对方用公钥来解密消息,就可以达到鉴别的作用。

因为能用公钥解密消息,说明数据一定是自己加密的,前提是这些加密并不为保护数据内容,只为确认、鉴别身份而用。

这样可以用对称算法作数字签名(digitalsignature),用私钥加密报文,就可以让对方确认身份。

如果A用其私钥加密了某信息,B用A的公钥钥密后“阅读”A的信息,则A就不能否认其给A发过过信息。

(III)CA(CertificationAuthrity)

公钥加密体系理论上非常安全,操作过程中有可能会受到中间人攻击(man-in-the-middleattack)。

比如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(certificationauthrity)把一个特定的实体和公钥绑在一起。

人们把信任建立在一个大家都信任的第三方,从信任第三方来达到信任对方的目的。

如果人们想发放自己的公钥,则用自己的相关身份信息和自己的公钥到一家权威机构(比如像派出所这样的机构)办一个数据证书。

权威机构核实你的身份以后,用其权威机构的私钥来加密你的数据证书。

如果你要把你的公钥传送给对方,只需要将自己的数据证书传递给对方,对方用权威机构的公钥解密即可得到你身份的相关信息和公钥。

而权威机构的公钥则更加透明,比如可以刊登在报纸上让大家都知道。

系统本身也带有一些权威机构的公钥,这些在人们装好系统就已经存在了。

第2章保密通信系统原理设计

2.1保密通信系统原理

数据通信的迅速发展带来了数据失密问题。

信息被非法截取和数据库资料被窃的事例经常发生。

数据失密会造成严重后果,所以数据保密成为十分重要的问题。

数据保密技术包括:

用户身份标志。

不同的用户享有不同的权利,可以对不同的数据库或数据库的不同部分进行访问,用户身份标志最常用的方法是口令学。

物理性保护。

一般保密性较高的数据库除了用户身份标志外,还需要数据加密,如信用卡。

使用权。

数据库的每一个受保护部分保持一份各个用户使用权的清单。

在数据通信中的传统的保密方法是采用通信双方协定的密钥字(定期或不定期变换),在通信开始时先验证对方身份。

传输的信号也是经过加密的。

公开密钥理论,其基本要领是给每一用户分配一对密钥,其中一个是只有使用者本人掌握秘密密钥,另一个是可以公开的密钥,两个密钥通过算法结成一定的关系。

公开密钥只用于加密密钥通过算法结成一定的关系。

公开密钥只用于加密,秘密密钥只用于解密,因而要想从一个密钥导出另一个密钥事实上是不可能的,即从数字观点来看,函数是单向的,而且只有惟一的解。

这一方法的特点是把经过加密的报文发送出去而无需双方进行密钥互换、分配或同步。

RSA法的数字签名验证法,可以确证对方用户身份。

数字签名可以由公开密钥系统产生出来,其前提是公开密钥和秘密密钥是互逆的,就是说,假使一个明文报文是用某个秘密密钥“解密”的,则公开密钥“加密”就可以将报文恢复为明文格式。

2.2设计内容

具有保密性分配

MD5

表2.2保密通信系统配置表

2.3RC4流密码算法

流密码(streamcipher)也称为序列密码,每次加密处理数据流的一位或一个字节,加解密使用相同的密钥,是对称密码算法的一种。

1949年Shannon证明只有一次一密密码体制是绝对安全的,为流密码技术的研究提供了强大的支持,一次一密的密码方案是流密码的雏形。

流密码的基本思想是利用密钥K产生一个密钥流k1k2…kn对明文流M=m1m2…mn进行如下加密:

C=c1c2…cn=Ek1(m1)Ek2(m2)…Ekn(mn)。

若流密码所使用的是真正随机产生的、与消息流长度相同的密钥流,则此时的流密码就是一次一密的密码体制。

流密码分为同步流密码和自同步流密码两种。

同步流密码的密钥流的产生独立于明文和密文;

自同步流密码的密钥流的产生与密钥和已经产生的固定数量的密文字符有关,即是一种有记忆变换的序列密码。

RC4是1987年RonRivest为RSA公司设计的一种流密码,是一个面向字节操作、具有密钥长度可变特性的流密码,是目前为数不多的公开的流密码算法。

目前的RC4至少使用128为的密钥。

RC4的算法可简单描述为:

对于n位长的字,有共N=2n个可能的内部置换状态矢量S=S[0],S[1],…,S[N-1],这些状态是保密的。

密钥流K由S中的2n个元素按一定方式选出一个元素而生成,每生成一个密钥值,S中的元素就重新置换一次,自始至终置换后的S包含从0到N-1的所有n比特数。

RC4有两个主要算法:

密钥调度算法KSA和伪随机数生成算法PRGA。

KSA算法的作用是将一个随机密钥变换成一个初始置换,及相当于初始化状态矢量S,然后PRGA利用KSA生成的初始置换生成一个伪随机数出序列。

密钥调度算法KSA的算法描述如下:

fori=0toN-1do

S[i]=i;

j=0;

j=(j+S[i]+K[imodL])modN;

swap(S[i],S[j]);

初始化时,S中元素的值被设置为0到N-1,密钥长度为L个字节,从S[0]到S[N-1]对于每个S[i]根据有密钥K确定的方案,将S[i]置换为S中的另一个元素。

伪随机数生成算法PRGA的算法描述如下:

i=0;

while(true)

i=(i+1)modN;

j=(j+S[i])modN;

swap(S[i],s[j]);

outputk=S[(S[i]+S[j])modN];

PRGA算法主要完成密钥流的生成,从S[0]到S[N-1],对每个S[i],根据当前S的值,将S[i]与S中的另一个元素置换,,当S[N-1]完成置换后,操作再从S[0]开始重复。

加密时将K值与下一个明文字节异或;

解密时将K值与下一密文字节异或。

2.4共享密钥分配

2.4.1RSA算法

非对称密码体制又称为公钥密码体制,加解密使用公私钥密钥对,私钥由密钥拥有者保管,公钥可以公开,基于公开渠道进行分发,解决了对称密钥体制中密钥管理、分发和数字签名等难题。

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≡1modψ(n);

公开公钥(n,e),安全的销毁p、q和ψ(n),并保留(d,n)作为私钥。

加密:

C≡Memodn,M<

n

解密:

M≡Cdmodn

使用中国剩余定理可以加速RSA密码算法的实现。

2.4.2公钥证书

用户互相交换自己的公钥而无须与公钥管理机构联系由证书管理机构CA(certificateauthority)为用户建立其中的数据项有与该用户的秘密钥相匹配的公开钥及用户的身份和时戳等所有的数据项经CA用自己的秘密钥签字后就形成证书CA=ESKCA[T,IDA,PKA],其中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1