密码学23课程设计张玉磊.docx
《密码学23课程设计张玉磊.docx》由会员分享,可在线阅读,更多相关《密码学23课程设计张玉磊.docx(31页珍藏版)》请在冰豆网上搜索。
![密码学23课程设计张玉磊.docx](https://file1.bdocx.com/fileroot1/2022-11/20/582a1740-ef09-47cf-abfb-8966a190922f/582a1740-ef09-47cf-abfb-8966a190922f1.gif)
密码学23课程设计张玉磊
沈阳工程学院
课程设计
设计题目:
简单的保密通信系统
系别信息工程系班级网络本093
学生姓名张玉磊学号23号
指导教师张楠、王素芬职称讲师、副教授
起止日期:
2011年12月19日起——至2011年12月23日止
沈阳工程学院
课程设计任务书
课程设计题目:
简单的保密通信系统
系别信息工程系班级网络093
学生姓名张玉磊学号2009410323
指导教师张楠、王素芬职称讲师、副教授
课程设计进行地点:
实训F605
任务下达时间:
2011年12月19日
起止日期:
2011年12月19日起——至2011年12月23日止
教研室主任2011年月日批准
一、课程设计的原始资料及依据
以DES、AES、RC4、移位密码、仿射密码或维吉尼亚密码为加密算法;以RSA为密钥传输加密算法;以数据认证算法或MD5杂凑算法为消息认证算法;以DSS为数字签字方法;选择不同的密钥管理方案,实现一简单的保密通信系统。
二、课程设计主要内容及要求
设计内容:
设计一简单的保密通信系统,系统配置从以下表格中选择。
并模拟一次信息传输过程。
表1保密通信系统配置表
加密算法
共享密钥分配
消息认证
数字签字
加密算法
公钥分配
共享密钥策略
DES
RSA
公钥管理机构
简单分配
数据认证算法
DSS
AES
RC4
移位密码
公钥证书
具有保密性的分配
MD5
仿射密码
维吉尼亚密码
发送消息的内容为:
由学号、姓名、班级构成的字符串。
设计要求:
(1)每人选择一种系统配置,每名同学的配置必须有所不同;
(2)对加密、消息认证、数字签字等算法要给出具体的设置,包括参数、密钥等;
(3)根据算法的设置,在“信息安全实验教学系统”上进行计算,并保留截图;
(4)公钥分配、共享密钥策略等需根据具体设计进行模拟;
(5)使用指定的消息内容,模拟一次完整的消息发送过程,包括:
密钥分配、消息加密、消息认证和数字签字的生成、消息认证和数字签字的验证、消息解密等;
(6)报告中记录消息发送过程的每一步骤的结果。
三、对课程设计说明书撰写内容、格式、字数的要求
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版).北京:
清华大学出版社
沈阳工程学院
应用密码学技术课程设计成绩评定表
系(部):
信息工程系班级:
网络本093学生姓名:
张玉磊
指导教师评审意见
评价
内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.1
5
4
3
2
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
5
4
3
2
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.2
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5
5
4
3
2
指导教师评审成绩
(加权分合计乘以12)
分
加权分合计
指导教师签名:
年月日
评阅教师评审意见
评价
内容
具体要求
权重
评分
加权分
查阅
文献
查阅文献有一定广泛性;有综合归纳资料的能力
0.2
5
4
3
2
工作量
工作量饱满,难度适中。
0.5
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.3
5
4
3
2
评阅教师评审成绩
(加权分合计乘以8)
分
加权分合计
评阅教师签名:
年月日
课程设计总评成绩
分
摘要
密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。
依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。
密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。
密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。
它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。
它的现实研究成果,特别是各国政府现用的密码编制及破译手段都具有高度的机密性。
在课程设计报告中,第一章绪论介绍密码的历史及密码在日常生活中的应用,还有在密码技术上的突破。
第二章主要介绍通信系统的原理与本次课程设计的系统功能图。
第三章重点介绍了在本次课程设计中应用的主要算法,如RC4算法、RSA算法、MD5与SHA1散列函数的使用,以及DSS算法的应用。
第四章介绍了通信的步骤,包括信息加密、共享密钥分配、消息认证、数字签字和传输的密文。
第五章记录了在本次课程设计中遇到的问题及解决办法。
在结论、致谢及参考文献中分别说明了我在本次课程设计中的收获及对指导教师的感谢和使用的参考资料。
关键词密码,密码学,加密变换,脱密变换
第1章绪论
人类有记载的通信密码始于公元前400年。
古希腊人是置换密码的发明者。
1881年世界上的第一个电话保密专利出现。
电报、无线电的发明使密码学成为通信领域中不可回避的研究课题。
在第二次世界大战初期,德国军方启用“恩尼格玛”密码机,盟军对德军加密的信息有好几年一筹莫展,“恩尼格玛”密码机似乎是不可破的。
但是经过盟军密码分析学家的不懈努力,“恩尼格玛”密码机被攻破,盟军掌握了德军的许多机密,而德国军方却对此一无所知。
太平洋战争中,美军破译了日本海军的密码机,读懂了日本舰队司令官山本五十六发给各指挥官的命令,在中途岛彻底击溃了日本海军,导致了太平洋战争的决定性转折,而且山本五十六也死于此战。
相反轴心国中,只有德国是在第二次世界大战的初期在密码破译方面取得过辉煌的战绩。
因此,我们可以说,密码学在战争中起着非常重要的作用。
随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高。
如网络银行、电子购物、电子邮件等正在悄悄地融入普通百姓的日常生活中,人们自然要关注其安全性如何。
1977年,美国国家标准局公布实施了“美国数据加密标(DES)”,军事部门垄断密码的局面被打破,民间力量开始全面介入密码学的研究和应用中。
民用的加密产品在市场上已有大量出售,采用的加密算法有DES、IDEA、RSA等。
现有的密码体制千千万万,各不相同。
但是它们都可以分为私钥密码体制(如DES密码)和公钥密码(如公开密钥密码)。
前者的加密过程和脱密过程相同,而且所用的密钥也相同;后者,每个用户都有公开和秘密钥。
编码密码学主要致力于信息加密、信息认证、数字签名和密钥管理方面的研究。
信息加密的目的在于将可读信息转变为无法识别的内容,使得截获这些信息的人无法阅读,同时信息的接收人能够验证接收到的信息是否被敌方篡改或替换过;数字签名就是信息的接收人能够确定接收到的信息是否确实是由所希望的发信人发出的;密钥管理是信息加密中最难的部分,因为信息加密的安全性在于密钥。
历史上,各国军事情报机构在猎取别国的密钥管理方法上要比破译加密算法成功得多。
密码分析学与编码学的方法不同,它不依赖数学逻辑的不变真理,必须凭经验,依赖客观世界觉察得到的事实。
因而,密码分析更需要发挥人们的聪明才智,更具有挑战性。
现代密码学是一门迅速发展的应用科学。
随着因特网的迅速普及,人们依靠它传送大量的信息,但是这些信息在网络上的传输都是公开的。
因此,对于关系到个人利益的信息必须经过加密之后才可以在网上传送,这将离不开现代密码技术。
1976年Diffie和Hellman在《密码新方向》中提出了著名的D-H密钥交换协议,标志着公钥密码体制的出现。
Diffie和Hellman第一次提出了不基于秘密信道的密钥分发,这就是D-H协议的重大意义所在。
PKI(PublicKeyInfrastructure)是一个用公钥概念与技术来实施和提供安全服务的具有普适性的安全基础设施。
PKI公钥基础设施的主要任务是在开放环境中为开放性业务提供数字签名服务。
第2章保密通信系统原理及功能
2.1保密通信系统原理
数据通信的迅速发展带来了数据失密问题。
信息被非法截取和数据库资料被窃的事例经常发生。
数据失密会造成严重后果,所以数据保密成为十分重要的问题。
数据保密技术包括:
用户身份标志。
不同的用户享有不同的权利,可以对不同的数据库或数据库的不同部分进行访问,用户身份标志最常用的方法是口令学。
物理性保护。
一般保密性较高的数据库除了用户身份标志外,还需要数据加密,如信用卡。
使用权。
数据库的每一个受保护部分保持一份各个用户使用权的清单。
在数据通信中的传统的保密方法是采用通信双方协定的密钥字(定期或不定期变换),在通信开始时先验证对方身份。
传输的信号也是经过加密的。
公开密钥理论,其基本要领是给每一用户分配一对密钥,其中一个是只有使用者本人掌握秘密密钥,另一个是可以公开的密钥,两个密钥通过算法结成一定的关系。
公开密钥只用于加密密钥通过算法结成一定的关系。
公开密钥只用于加密,秘密密钥只用于解密,因而要想从一个密钥导出另一个密钥事实上是不可能的,即从数字观点来看,函数是单向的,而且只有惟一的解。
这一方法的特点是把经过加密的报文发送出去而无需双方进行密钥互换、分配或同步。
RSA法的数字签名验证法,可以确证对方用户身份。
数字签名可以由公开密钥系统产生出来,其前提是公开密钥和秘密密钥是互逆的,就是说,假使一个明文报文是用某个秘密密钥“解密”的,则公开密钥“加密”就可以将报文恢复为明文格式。
2.2保密通信系统功能
保密通信系统功能模块如图2.1所示。
图2.1保密通信系统功能模块图
共享密钥分配功能中证书的产生过程如图2.2所示。
图2.2证书的产生过程
共享具有保密性和认证性的会话密钥分配如图2.3所示。
图2.3会话密钥分配
DSS签字如图2.4所示。
图2.4DSS签字
第3章算法及实验台介绍
3.1RC4算法及软件介绍
3.1.1RC4算法
流密码(streamcipher)也称为序列密码,每次加密处理数据流的一位或一个字节,加解密使用相同的密钥,是对称密码算法的一种。
1949年Shannon证明只有一次一密密码体制是绝对安全的,为流密码技术的研究提供了强大的支持,一次一密的密码方案是流密码的雏形。
流密码的基本思想是利用密钥K产生一个密钥流k1k2…kn对明文流M=m1m2…mn进行如下加密:
C=c1c2…cn=Ek1(m1)Ek2(m2)…Ekn(mn)。
若流密码所使用的是真正随机产生的、与消息流长度相同的密钥流,则此时的流密码就是一次一密的密码体制。
流密码分为同步流密码和自同步流密码两种。
同步流密码的密钥流的产生独立于明文和密文;自同步流密码的密钥流的产生与密钥和已经产生的固定数量的密文字符有关,即是一种有记忆变换的序列密码。
3.1.2RC4软件介绍
RC4算法初始化密钥及加解密过程如图3.1所示。
图3.1主窗口
进入“SimpleISES信息安全实验教学系统”流密码加密实验->实验实施,如图3.2所示。
图3.2RC4算法加解密图
使用密钥“zhangyulei”初始化密钥如图3.3所示。
图3.3初始化密钥
加密十六进制明文“32303039343130333233E5BCA0E78E89E7A38AE7BD91E7BB9CE69CAC303933”如图3.4所示。
图3.4加密明文
加密后密文为“E3613E723EB236F8FA46B98FC46A74A43316037C8EE4641C82D7230634A4E5”。
解密十六进制密文如图3.5所示。
图3.5解密密文
解密后明文为“32303039343130333233E5BCA0E78E89E7A38AE7BD91E7BB9CE69CAC303933”。
3.2RSA算法及软件介绍
3.2.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解密:
M≡Cdmodn
使用中国剩余定理可以加速RSA密码算法的实现。
3.2.2RSA软件介绍
进入“SimpleISES信息安全实验教学系统”非对称加密实验->实验实施,如图3.6所示。
图3.6RSA加密解密图
3.3MD5、SHA1算法及软件介绍
3.3.1MD5、SHA1算法
散列函数是一种单向密码,即是一个从明文到密文的不可逆映射,只有加密过程,不可解密;同时散列函数可以将任意长度的输入经过变换以后得到固定长度的输出。
散列函数在完整性认证和数字签名等领域有广泛应用。
散列函数应满足以下要求:
算法公开,不需要密钥。
具有数据压缩功能,可将任意长度的输入转换为固定长度的输出。
已知m,容易计算出H(m)。
给定消息散列值H(m),要计算出m在计算上是不可行的。
对任意不同的输入m和n,它们的散列值是不能相同的。
一、MD5算法
MD5(Message-DigestAlgorithm5)即信息-摘要算法,是MD4算法的改进;算法的输入为任意长度的消息,分为512比特长的分组,输出为128比特的消息摘要。
处理过程如下:
1:
对消息进行填充,使其比特长度为n
512+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位消息摘要。
二、SHA-1/256算法
SHA的全称为SecureHashAlgorithm(安全杂凑算法),SHA家族的五个算法分别是SHA-1、SHA-224、SHA-256、SHA-384和SHA-512,由美国国家安全局(NSA)所设计,并由美国国家标准与技术研究院(NIST)发布,后四者有时并称为SHA-2。
SHA-1基于MD4算法,算法的输入最大长度为264-1比特,分为512比特长的分组,输出为160比特的消息摘要。
处理过程如下:
1:
对消息进行填充,与MD5第一步相同。
2:
附加消息长度,与MD5第二步类似,不同的是以大端(最高有效字节/位存储于低地址字节/位)方式来表示消息被填充前的长度。
3:
对消息摘要缓冲区初始化,算法使用160比特长的缓冲区来存储中间结果和最终散列值,将缓冲区表示成5个32比特长的寄存器A、B、C、D、E,每个寄存器以大端方式存储数据,初始值为(十六进制,高位字节在前)A=67452301,B=EFCDAB89,C=98BADCFE,D=10325476,E=C3D2E1F0。
4:
以分组为单位对消息进行处理,每一个分组都经过压缩函数HSHA处理;HSHA有4轮处理过程,每一轮又有20步迭代;4轮处理过程的处理结构一样,所用逻辑函数不同,分别表示为f1、f2、f3、f4;每轮的输入为当前处理的消息分组和缓冲区当前的值,输出仍存放在缓冲区中。
最后第四轮的输出与第一轮输入的缓冲区值V相加,相加时将V看做5个32比特的字,每个字与第四轮输出的对应的字按模232相加,相加结果为HMD5的输出。
5:
消息的所有分组均被处理完后,最后一个HSHA的输出即为产生的160位消息摘要。
SHA-256使用6个逻辑函数,均基于32位的字进行操作,算法输出的消息摘要为256位。
SHA与MD5处理过程类似,主要区别在于所使用的压缩函数不同。
3.3.2MD5、SHA1软件介绍
进入“SimpleISES信息安全实验教学系统”散列函数实验->实验实施如图3.6所示。
图3.6MD5和SHA1计算图
3.4DSS算法及软件介绍
3.4.1DSS算法
数字签名是针对数字文档的一种签名确认方法,目的是对数字对象的合法性、真实性进行标记,并提供签名者的承诺。
数字签名应具有与数字对象一一对应的关系,即签名的精确性;数字签名应基于签名者的唯一特征,从而确定签名的不可伪造性和不可否认性,即签名的唯一性;数字签名应具有时间特征,从而防止签名的重复使用,即签名的时效性。
数字签名的执行方式分为直接方式和可仲裁方式。
DSA签名算法
数字签名标准(DigitalSignatureStandard,DSS)是由美国国家标准技术研究所(NIST)于1994年正式公布的联邦信息处理标准FIPSPUB186。
DSS目前新增了基于RSA和ECC的数字签名算法,但是最初只支持DSA(DigitalSignatureAlgorithm)数字签名算法,该算法是ElGamal签名算法的改进,安全性基于计算离散对数的难度。
DSA算法由美国国家安全局NSA指导设计,用来提供唯一的数字签名函数;它虽然是一种公钥技术,但是只能用于数字签名。
DSA中规定了使用安全散列算法(SHA-1),将消息生成固定长度的散列值,与一随机数k一起作为签名函数的输入;签名函数还需使用发送方的密钥x和供所有用户使用的全局公开密钥分量(p,q,g),产生的两个输出(r,s)即为消息的签名。
接收方收到消息后再产生出消息的散列值,将散列值与收到签名中的s一起输入验证函数;验证函数还需输入全局公开密钥分量(p,q,g)和发送方的公钥y,产生的输出若与收到的签名中的r相同,则验证了签名是有效的。
DSA的具体算法描述如下:
一、DSA的参数
1:
全局公开密钥分量(p,q,g),可以为一组用户公用:
P是一个满足2L-1
q是p-1的素因子,满足2159g≡h(p-1)/qmodp,其中h是一个整数,满足11。
2:
用户私钥x
x是随机或伪随机整数,满足03:
用户公钥y
y≡gxmodp
用户公钥是由私钥计算而来的,给定x计算y容易,但给定y计算x是离散对数问题,被认为在计算上是安全的。
4:
用户为待签名消息选取的秘密数k
k为随机或伪随机的整数,要求0二、签名过程
发送方使用随机选取的秘密值k,计算
r=(gkmodp)modq
s=[k-1(H(M)+xr)]modq
其中:
H(M)是使用基于SHA-1生成的M的散列值;(r,s)就是基于散列值对消息M的数字签名;k-1是k模q的乘法逆,且0最后签名者应验证r=0或s=0是否成立,若r=0或s=0,就应另选k值重新生成签名。
三、验证过程
接收者收到(M,r,s)后,首先验证0w=s-1modq
u1=[(H(M))w]modq
u2=(rw)modq
若v=r,则确认签名正确,可认为收到的消息是可信的。
3.4.2DSS软件介绍
进入“SimpleISES信息安全实验教学系统”数字签字实验->实验实施如图3.7所示。
图3.7数字签字
第4章保密通信实施步骤
4.1信息加密
明文为“2009410323张玉磊网络本093”,转化为十六进制为“32303039343130333233E5BCA0E78E89E7A38AE7BD