




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东大学 软件 学院 信息安全导论 课程实验报告学号:201300301385姓名: 周强班级: 2013级八班实验题目:RC4流加密算法实验实验学时:日期: 实验目的:(1)了解对称算法的基本工作流程。(2)掌握对称算法的使用方法。硬件环境:软件环境:DEEPIN操作系统Windows7操作系统Python shellVS2008Openssl库 实验步骤与内容:一、了解openssl和各种加密算法(1)什么是openssl工具包 SSL/TLS协议位于TCP协议和应用层协议之间,为传输双方提供认证、加密和完整性保护等安全服务。 SSL作为一个协议框架,通信双方可以选用合适的对称算法、公钥算法、MAC算法等密码算法实现安全服务。 OpenSSL是使用非常广泛的SSL的开源实现。由于其中实现了为SSL所用的各种加密算法,因此OpenSSL也是被广泛使用的加密函数库。(2)对对称加密算法的基本认识对称加密使用的加密和解密密钥是相同的,加密过程是解密过程的逆过程。其基本过程是:F(K,IN,ENC/DEC)= OUT其中IN是固定长度的输入分组(DES算法是8字节,AES是16字节),OUT是同样长度的输出分组,密钥K是随机比特串(DES是56比特,AES是128比特)。对称加密算法又分为流加密和分组加密。(2)RC4流加密算法RC4密码算法是流算法,也叫序列算法。流算法是从密钥作为种子产生密钥流,明文比特流和密钥流异或即加密。RC4算法由于算法简洁,速度极快,密钥长度可变,而且也没有填充的麻烦,因此在很多场合值得大力推荐。RC4由伪随机数生成器和异或运算组成。RC4的密钥长度可变,范围是1,255。RC4一个字节一个字节地加解密。给定一个密钥,伪随机数生成器接受密钥并产生一个S盒。S盒用来加密数据,而且在加密过程中S盒会变化。由于异或运算的对合性,RC4加密解密使用同一套算法。(3) RC4加密的伪代码1、 初始化长度为256的S盒。第一个for循环将0到255的互不重复的元素装入S盒。第二个for循环根据密钥打乱S盒。 2、 下面i,j是两个指针。每收到一个字节,就进行while循环。通过一定的算法((a),(b))定位S盒中的一个元素,并与输入字节异或,得到k。循环中还改变了S盒((c))。如果输入的是明文,输出的就是密文;如果输入的是密文,输出的就是明文。此算法保证每256次循环中S盒的每个元素至少被交换过一次。2、 在linux下配置openssl在Linux中可以使用tar解压缩,在Windows中可以使用winzip或winrar。$tar zxf openssl-0.9.8c.tar.gz在Linux中的编译和安装步骤较简单:$./config$make$make test$make install在Linux下,头文件、库文件、工具都已被安装放到了合适的位置。库文件是.a或.so格式。一般Linux发行版中默认已经安装了OpenSSL的运行和开发环境,因此可以不必另外安装。使用OpenSSL.exe(Linux中可执行文件名是openssl)可以做很多工作,是一个很好的测试或调试工具。显示版本和编译参数:openssl version -a查看支持的子命令:openssl ?SSL密码组合列表:openssl ciphers测试所有算法速度:openssl speed测试RSA速度:openssl speed rsa测试DES速度:openssl speed des产生RSA密钥对:openssl genrsa -out 1.key 1024取出RSA公钥:openssl rsa -in 1.key -pubout -out 1.pubkeyRC4加密文件:openssl enc -e -rc4 -in 1.key -out 1.key.encRC4解密文件:openssl enc -d -rc4 -in 1.key.enc -out 1.key.2计算文件的MD5值:openssl md5 openssl sha1 0) and result10:26 = hashlib.md5(result26: + self.keyb).hexdigest()0:16: return result26: else: return None def docrypt(self,string): string_lenth = len(string) result = box = list(range(256) randkey = cryptkey = self.keya + hashlib.md5(self.keya + self.keyc).hexdigest() key_lenth = len(cryptkey) for i in xrange(255): randkey.append(ord(cryptkeyi % key_lenth) for i in xrange(255): j = 0 j = (j + boxi + randkeyi) % 256 tmp = boxi boxi = boxj boxj = tmp for i in xrange(string_lenth): a = j = 0 a = (a + 1) % 256 j = (j + boxa) % 256 tmp = boxa boxa = boxj boxj = tmp self.result += chr(ord(stringi) (box(boxa + boxj) % 256)测试代码 五、利用openssl实现RC4加密解密1、 首先进行加密2、 RC4解密5、 调试老师给的RC4程序编译加密前,加密后的文件!六、 RSA非对称加密1、生成公钥和私钥2、抽取的公钥3、执行加密和解密操作加密前加密后解密后七、思考: 现在市面上很多号称“高强度文件夹加密”的软件声称“上百G的数据仅需1秒钟完成”,实际上只是将信息隐藏了而已,并没有真正的进行加密,并且这些软件还一定程度上存在着数据丢失的风险。 另外360声称使用了AES 128位高强度加密,其实只是在filedisk源码基础上改了改,实际加密算法是XOR - -! 因此,安全性与效率兼得的软件或算法是不存在的,要想具有效率与安全性兼得的效果,可以使用多重加密方式结合的方式。例如使用公钥算法和对称算法结合的方式。结论分析与体会: 在对分组加密算法如DES,3DES,AES的学习中我了解了对称加密的五种操作模式CBC,ECB,CFB,OFB,CTR。并且初步了解了分组加密的过程。像DES数据加密标准,它将明文分为两组,密钥分为两组。明文每组经过表置换后与密文一组做异或,将之后的结果输入S盒,与另外一组做异或后作为第一次机密结果。 RC4流加密算法是一种不同于分组加密的加密体制。其算法速度可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025关于融资租赁委托合同
- 2025财产抵押担保借款合同范本
- 2025客运合同范本参考
- 2025装饰工程合同附加协议
- 视频监控产品合同范本
- 2025租赁合同担保的规定范文
- 旧料加工改造合同范本
- 软件股权转让合同范本
- 保安超龄返聘合同范本
- 解除挂靠经营合同范本
- 2024年重庆永川区招聘社区工作者后备人选笔试真题
- 医学技术专业讲解
- 2025年临床助理医师考试试题及答案
- 唯奋斗最青春+课件-2026届跨入高三第一课主题班会
- 2025民办中学教师劳务合同模板
- 2025年南康面试题目及答案
- 2025年事业单位考试贵州省毕节地区纳雍县《公共基础知识》考前冲刺试题含解析
- 高中喀斯特地貌说课课件
- 黄冈初一上数学试卷
- 2025年中国花盆人参行业市场发展前景及发展趋势与投资战略研究报告
- 广东省安装工程综合定额(2018)Excel版
评论
0/150
提交评论