网络与信息安全课程设计报告

合集下载

网络与信息安全课程设计报告正式版

网络与信息安全课程设计报告正式版

网络与信息安全课程设计报告正式版《网络与信息安全》课程设计报告2010-1-07RSA算法加密软件的设计摘要:分析RSA算法的应用现状,论证文件加密应用RSA算法的可行性和意义。

设计一套完整实用的RSA文件加密解决方案,具体编码实现。

对RSA算法进行研究,从常规RSA算法出发,用C#实现RSA加密算法类库,并在32位windows平台封装成组件。

在.Net平台引用此组件,实现可以对任意文件进行RSA加密操作的窗体应用程序。

经过加密的文件以及密钥文件都是文本文件。

给出关键类类图、整个应用程序的结构描述文档、关键模块流程图、较详细的接口文档、所有源代码。

对应用程序进行测试,对测试结果进行分析研究,进而对应用程序进行改进,对关键算法进行尽可能的优化,最终得到一个在windows运行的可以用指定密钥对任意文件进行RSA加密并可解密的完整应用程序,和一些相关的可移植组件。

关键词:RSA , RSA算法, 文件加密, 加密成文本目录第1章 RSA应用现状及应用于文件加密的分析 (4)1.1 RSA算法介绍与应用现状 (4)1.2 RSA应用于文件加密的分析 (5)1.2.1 文件加密使用RSA的可行性 (5)1.2.2 文件加密使用RSA的意义6第2章 RSA文件加密软件的设计与实现 (7)2.1 需求分析与总体设计72.1.1 功能分析72.1.2 工程方案选择82.2 各部分的设计与开发102.2.1 实现RSA加密算法的C#核心类库103.2 测试数据与分析改进143.2.1 密钥生成测试143.2.2 数据输入输出测试163.2.3 加密解密测试16总结与体会 (17)致谢 (17)参考文献 (17)前言RSA公钥加密算法是第一个既能用于数据加密也能用于数字签名的算法。

它易于理解和操作,也十分流行。

算法的名字以发明者的姓氏首字母命名:Ron Rivest, Adi Shamir 和Leonard Adleman。

《网络与信息安全》课程报告 模板及格式详解

《网络与信息安全》课程报告 模板及格式详解

HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY Array课程报告课程名称网络与信息安全系部电气与信息工程学院计算机工程系专业计算机科学与技术班级T1123-学号20110230姓名任课教师杨亚会2 0 1 4年 5月日总体要求:用WORD编辑,页面设置:纸型:A4;页边距:左3cm,上、下、右各2cm;页眉:1.5cm,文武线上写:“《网络与信息安全》课程结课报告”字体为楷体小四居中;页脚:1.5cm,页码为Times New Roman小五居中;行距:1.25倍行距。

报告中的图和表,每个均要有单独编号,即如果是图,从图1 什么什么图开始编起,字体跟正文一样,字号相应小一号即可。

表类似。

每位同学撰写自己的报告时请将本页删除。

同时将后续说明性的文字和箭头删除。

前后各空一行摘要黑体三号居中此处填入摘要内容(以提供内容梗概为目的,不加评论和解释。

具有独立性、自明性,拥有与报告正文同等量的主要信息。

基本要素包括目的、方法、结果、结论。

摘要以200~300字为宜。

关键词:关键词1;关键词2;关键词3(报告的文献检索标识,是表达主题概念的自然语言词汇。

选取3~8个为宜。

)宋体小四加粗宋体小四例如关键词:计算机网络;网络信息系统;信息安全;身份鉴别;防火墙(关键词中的词汇需在200~300字的摘要中出现)无页码前后各空一行目录黑体三号居中一引言 (1)二国内外研究现状…………………………………………………………………页码页码为黑体小四为黑体小四无缩进N 总结与展望………………………………………………………………………页码结束语………………………………………………………………………………页码参考文献……………………………………………………………………………页码无页码一、引言前后各空1行一级标题为黑体三号无缩进脚标,代表引用别人的,跟参考文献一致引言也叫前言,是报告正文前面一段或几段的短文[1]。

网络与信息安全课程设计方案

网络与信息安全课程设计方案

网络与信息安全课程设计方案第二小组案例2撰稿人:王雄达目录1.设计背景 (3)2.需求分析 (3)3.整合分析 (3)4.网络安全设计 (4)1)网络拓扑图 (4)2)计划产品 (4)3)主要产品详细信息 (5)5.总结 (7)6.卷末语 (7)1)心得 (7)2)收获 (7)3)卷末语 (8)一、设计背景某数据服务公司,拥有服务器20台,为用户提供Web服务器空间和服务器托管等服务。

这些服务器目前在一个局域网中,共享一个与网通相连的外网接口。

计划投入资金100万元用于提高系统的安全性。

二、需求分析根据公司方的需求,总结为以下几点:1.防病毒、防网络攻击;2.能够抵挡一定强度的DDoS攻击;3.防止雷电、潮湿、静电、电源问题等带来的服务中止或设备损坏;4.防止未授权用户进入服务器机房;5.当网通的网络连接出现问题时,可以保证服务器仍然可以提供网络访问;6.当对一个服务器的访问压力过大时,可以分流到另外的服务器,保证可用性。

三、整合分析经过小组思考讨论后,将以上要求整合,并通过安全风险分析,得出以下五点:A.网络安全风险:防网络攻击;防DDoS攻击;B.操作系统安全风险:防病毒;C.物理安全风险:防止静电,潮湿,静电,电源问题等带来的服务终止或设备损坏;D.管理安全风险:防止未授权用户进入服务器机房;E.应用安全分析:当网通网络连接出现问题,保证服务器仍然可以提供网络访问;当服务器的访问压力大,可以分流道另外的服务器,保证可用性。

四、网络安全设计4.1网络拓扑图以下是我们根据分析设计的网络拓扑图4.2计划产品主要软硬件结合,硬件为主的设计方法。

●网络安全需求1.:金盾防火墙JDFW-2000(160000)2.:锐捷网络RG-S2328G(2*95356)3.艾泰U2000(6000)●操作系统安全需求1.卡巴斯基企业套装(15000)●物理安全需求1.美国雷诺威工频UPS10K+康明斯发电机+线路费用868002.OBO V25-B+C/3+NPE/FS防雷器83003.西门子室内湿温度传感器QFA2020+亚都除湿机40004.全钢防静电地板100000●管理安全需求1.汉王C28(6580)指纹采集65802.新星人事考勤管理系统(专业版) 200003.带检测电锁JDY—002 38004.门禁系统施工辅材24005.门禁系统施工工费2000●应用安全需求1.贝尔金Network USB Hub (2*1499)2.内部交换机采用锐捷网络RG-S8610(13800)3.负载均衡管理机器350004.3主要产品详细信息产品名称产品基本信息及特点/首选原因等金盾防火墙JDFW-2000+①接口:4个SFP接口(进出口,可选配模块),4个千M电口(管理口),集群接口可选②入侵检测:Dos,IDS,日志管理;③防火墙主要性能:即插即用网络隐身支持集群防护特点:DRDOS/LANDFLOOD/ DNS QUERY FLOOD/CC防护/以及各种漏洞型拒决服务攻击等支持集群环境部署,可防御超过16G以上攻击锐捷网络RG-S9620 1.关键部件的安全稳定2 病毒和攻击防护3 设备安全管理4接入安全艾泰U2000 参数:带机数200台以内拥有多种形式的VPN功能,支持IPSec、L2TP以及PPTP三种VPN协议,可配置16条并发的VPN隧道支持双线路叠加倍增带宽功能支持多种QOS带宽控制功能,支持带宽保证功能强大的防火墙策略库,集网关防病毒、入侵防护、应用监控功能有效防范侦测及报文窃听、IP 地址欺骗、源路由、DoS等网络攻击可以阻挡未授权的网络访问、网络入侵、蠕虫、木马、间谍软件、ARP、震荡波、冲击波等病毒攻击支持策略管理、高端上网行为管理功能支持PPPOE帐号数100个支持NAT会话数限制支持通告功能卡巴斯基企业套装•优点:1.对恶意程序的入侵提供全方位的保护;2.程序的运行不依赖与操作系统平台;3.集中式的管理架构完全能够胜任企业复杂的网络拓扑环境防范病毒或黑客攻击的集中防护的要求.•支持平台:1.工作站;2.基于各平台的文件服务器;美国雷诺威工频UPS 10K +康明斯发电机+线路费用•不间断电源:美国雷诺威工频UPS 10K ——50000容量范围:1kVA-3kVA工作方式:高频智能在线式应用范围:工作站、网络服务器、计算机机房其他性能:超宽输入电压范围,输入功率因数校正,开机自诊断功能,输入零火线侦测,旁路输出人性化,长效机强大充电能力,可搭配发电机使用,计算机及远程监控能力同时在用户的负载设备对电源具有特殊要求时,如旁路电压不能过高,UPS提供旁路供电电压过高保护,使用户的负载设备免于高压危险。

信息与网络安全课程设计

信息与网络安全课程设计

信息与网络安全课程设计一、课程背景信息安全和网络安全已经成为现代社会的重要议题,随着互联网的飞速发展,人们对于信息和网络安全的需求越来越高。

信息与网络安全课程作为计算机科学与技术专业的重要课程之一,旨在培养学生在计算机信息和网络安全领域的综合素质和技能。

二、教学目标本课程旨在使学生了解信息和网络安全的基本概念、技术和实践,包括现代密码学、数字证书、基本安全模型、网络攻击与防范措施等方面的内容,使其具备以下能力:1.掌握现代密码学基础知识及其应用技巧。

2.理解数字证书、公钥基础设施以及其在网络和信息系统中的应用。

3.分析和设计信息和网络安全模型,并对不同模型进行评估和选择。

4.熟悉基本的网络攻击和防范手段。

5.掌握网络安全实践的基本方法和技能。

三、教学内容1. 信息安全基础•信息安全基础概念和原则•信息攻击和防御的基本原理•常见威胁和攻击方式2. 现代密码学•对称加密算法•非对称加密算法•消息摘要算法•数字签名和认证3. 数字证书和PKI•数字证书的基本原理和应用•PKI系统的结构和性能•数字证书的管理和使用4. 认证与访问控制•认证的基本原理和方法•访问控制模型和技术•网络身份验证机制5. 网络安全管理•安全管理的基本原则和实践•安全管理的流程和方法•安全管理的评估和测试6. 网络攻击与防范•网络攻击的类型和特点•网络攻击与防范技术•常见的网络安全工具和软件四、教学方法本课程采用讲授、案例研讨、实验和课堂小组讨论等多种教学方法。

其中,实验和案例研讨占据了重要的教学内容,能够帮助学生更好地理解和掌握信息和网络安全的实际应用。

五、教学评估本课程的评估方式主要包括课堂作业、实验报告、小组讨论以及期末考试。

具体评分标准和比例如下:•课堂作业:30%•实验报告:30%•小组讨论:20%•期末考试:20%六、教材参考与资源教材参考:•《信息安全技术基础》•《计算机与网络安全》•《网络与信息安全综合教程》教学资源:•实验室设备和环境•网络安全实验平台•各种安全工具和软件七、总结信息和网络安全课程设计面向计算机科学与技术专业的学生,其重要性不言而喻。

网络信息安全课程设计

网络信息安全课程设计

网络信息安全 课程设计一、课程目标知识目标:1. 让学生掌握网络信息安全的基本概念,了解信息安全的重要性。

2. 使学生了解常见网络攻击手段及其危害,理解防范策略。

3. 引导学生掌握个人信息保护的方法和技巧。

技能目标:1. 培养学生运用网络信息安全知识分析和解决实际问题的能力。

2. 提高学生使用安全软件和网络工具,保护个人信息和隐私的能力。

3. 培养学生养成良好的网络行为习惯,降低网络风险。

情感态度价值观目标:1. 培养学生热爱祖国,尊重网络安全法律法规,自觉维护网络空间安全。

2. 增强学生的网络安全意识,提高自我保护意识,形成正确的网络道德观念。

3. 培养学生团结协作、积极探究的学习态度,激发学生对网络信息安全领域的兴趣。

课程性质分析:本课程为实用性课程,旨在帮助学生了解网络信息安全知识,提高网络安全防护能力。

学生特点分析:学生处于信息化时代,对网络有一定了解,但网络安全意识较弱,需要加强引导和教育。

教学要求:1. 结合实际案例,深入浅出地讲解网络信息安全知识。

2. 创设情境,让学生在实际操作中掌握网络安全技能。

3. 注重培养学生的情感态度价值观,引导他们形成正确的网络安全观念。

二、教学内容1. 网络信息安全概述- 网络信息安全的重要性- 常见网络攻击手段及危害2. 网络安全防护策略- 防火墙和入侵检测系统- 加密技术和数字签名- 个人信息保护方法3. 常见网络应用的安全问题- 电子邮件、社交网络和即时通讯- 网络购物和在线支付- 无线网络安全4. 网络安全法律法规与道德规范- 我国网络安全法律法规- 网络道德规范与行为准则5. 实践操作与案例分析- 使用安全软件保护计算机安全- 个人信息泄露案例分析- 网络安全防护策略的实际运用教学内容安排与进度:1. 第一周:网络信息安全概述,了解网络攻击手段及危害。

2. 第二周:网络安全防护策略,学习加密技术和数字签名。

3. 第三周:常见网络应用的安全问题,分析电子邮件、社交网络等的安全问题。

信息安全课程设计报告

信息安全课程设计报告

信息安全课程设计报告一、课程目标知识目标:1. 理解信息安全的基本概念,掌握信息安全的关键技术,如加密、认证和防护措施。

2. 学习网络安全的基本原理,了解网络攻击手段及其防范方法。

3. 掌握信息安全法律法规和道德规范,提高信息安全意识。

技能目标:1. 能够运用所学知识分析和解决实际生活中的信息安全问题。

2. 学会使用加密工具保护个人隐私和重要数据,提高数据安全性。

3. 能够评估网络环境的安全性,采取相应措施防范潜在风险。

情感态度价值观目标:1. 培养学生热爱科学、追求真理的精神,激发学习信息安全知识的兴趣。

2. 增强学生的国家安全意识,树立正确的网络安全观念。

3. 培养学生的团队协作精神,提高沟通与表达能力。

课程性质:本课程为选修课,旨在帮助学生了解信息安全知识,提高网络安全防护能力。

学生特点:学生为初中年级,具有一定的计算机操作基础,对信息安全有一定的好奇心,但知识储备有限。

教学要求:结合学生特点和课程性质,采用案例教学、实践操作、小组讨论等方法,注重培养学生的实际操作能力和信息安全意识。

二、教学内容1. 信息安全基本概念:包括信息安全定义、重要性、面临的威胁与挑战等,对应教材第一章内容。

2. 加密技术:介绍对称加密、非对称加密和混合加密等,以教材第二章为基础,结合实际案例进行分析。

3. 认证技术:讲解数字签名、身份认证等方法,参考教材第三章,结合实际应用场景进行讲解。

4. 网络安全防护措施:包括防火墙、入侵检测和病毒防护等,依据教材第四章,通过实践操作让学生掌握防护技巧。

5. 信息安全法律法规与道德规范:学习我国相关法律法规,了解网络安全道德规范,对应教材第五章内容。

6. 网络攻击与防范:分析常见网络攻击手段,如钓鱼、木马等,学习防范策略,以教材第六章为基础展开教学。

7. 实践操作:安排加密软件使用、安全防护软件配置等实践环节,巩固理论知识,提高实际操作能力。

教学大纲安排:第一周:信息安全基本概念第二周:加密技术第三周:认证技术第四周:网络安全防护措施第五周:信息安全法律法规与道德规范第六周:网络攻击与防范第七周:实践操作与总结教学内容注重科学性和系统性,结合教材章节进行合理安排,确保学生能够循序渐进地掌握信息安全知识。

网络与信息安全课程设计

网络与信息安全课程设计

《网络与信息安全》课程设计指导书一.课程设计目的本课程是有关网络与信息安全课程所开设的一门重要实践课程,要求学生掌握网络安全原理和技术在实践中的应用。

本课程设计的目的是使学生在理论学习的基础上,动手编写程序,通过应用所学习的知识,来解决一些实际网络安全应用问题。

在此基础上,真正理解和掌握网络安全的相关理论。

二.题目任选下列一项目进行,查阅相关文献、了解相关的系统,要求完成规定的任务。

1、加密软件设计2、安全数据库系统设计3、网络嗅探器设计与实现4. CA系统设计5、VPN虚拟专用网三.任务完成形式1.完整的软件系统软件设计必须提交完整的电子版程序源代码、可执行程序、数据文件以及使用说明文件等。

源代码文件要特别注意编程规范、代码风格,关键代码需有合理的注释,不含任何无用代码;数据文件内要求有一定数量的“真实”数据(如对于记录文件,需要有5条以上记录);使用说明文件的第一行,需要给出设计者的学号、姓名,后面为其它说明。

软件打包压缩提交至ftp://122.206.57.3《网络信息安全课程设计》文件夹内(每个学生以自己的“班级学号姓名”作为文件名)。

2.课程设计报告(详细要求请参考附录二)撰写要求:字数:不少于6000字。

封面:需在封面注明设计选题、班级、姓名、学号及课程设计日期。

(格式见附录)摘要:说明本设计的基本任务,完成的功能,所用开发工具,本人的主要工作。

(宋体五号)。

关键字为3-5个,中间用逗号分隔。

目录:由“文档结构图”自动生成。

(字体:宋体五号)正文:宋体五号,行间距为1.5倍行距参考资料:三个以上四.总体要求根据所给的实验指导书的要求,从中选择项目,应用所学的知识,完成题目所规定的各项要求。

总体要求如下:1.课程设计报告正文概念清楚、叙述正确、内容完整、书写规范。

2.课程设计中必须按指导书要求,综合应用所学的网络安全知识解决实际问题,有必要的理论分析,设计要有合理的依据。

独立完成课程设计,不得出现雷同,否则雷同者均不及格。

网络安全课程设计报告

网络安全课程设计报告

《网络安全技术》课程设计一、课程设计的目的和意义提高学生在网络安全方面综合运用理论知识解决实际问题的能力。

使学生得到一次科学研究工作的初步训练,懂得网络加密/解密的方法和实现、网络相关安全工具的使用方法与网络攻击的防范。

二、设计内容(1)使用高级语言(C 、C ++、C #语言)实现一个加密/解密程序,调试并通过该程序。

(2)破解Windows 口令。

(3)获取本地用户的帐号和密码后进行远程控制。

三、设计步骤及代码1.使用高级语言(C 、C ++、C #语言)实现一个加密/解密程序,调试并通过该程序。

(1)算法描述本程序采用对称算法中的序列密码。

序列密码算法将明文逐位转换成密文。

它的只要原理是通过伪随机序列发生器产生性能优良的伪随机序列,使用该序列与明文信息流逐比特异或得到密文序列。

所以,序列密码算法的安全强度完全取决于伪随机序列的好坏。

伪随机序列发生器是指输入真随机的较短的密钥(种子)通过某种复杂的运算产生大量的伪随机位流。

本程序中,为方便起见,将伪随机序列特定为一个固定的序列0001 1010,即十进制数26为密钥。

加密解密过程如图所示:图1加密解密密钥流跟明文比特流P1,P2,P3,…,P i,进行异或运算产生逼问比特流:C i=P i⊕K i在解密端,密文流与完全相同的密钥流异或运算恢复出明文流:P i=C i⊕K i(2)程序源代码#include <stdlib.h> /*头文件*/#include<stdio.h> /*头文件*/int jiami(); /*定义加密函数jiami()*/int jiemi(); /*定义解密函数jiemi()*/int display(); /*定义显示函数display()*/void main(){int choice=1;while(choice!=4){//system("cls.exe"); /*清除屏幕上的所有显示,光标置于屏幕左上角*/printf("\t\t请选择你要做的操作:\n");/*功能菜单*/printf("\t\t\t1.加密文件\n");printf("\t\t\t2.解密文件\n");printf("\t\t\t3.显示文件\n");printf("\t\t\t4.退出\n");printf("\t\t请键入你的选择:");scanf("%d",&choice); /*条件选择,程序调用*/if(choice==1)jiami();else if(choice==2)jiemi();else if(choice==3){display();getchar();getchar();}}}int jiami() /*加密函数*/{FILE *fp;char filename[100],ch,ch1;int i=0,j=0;printf("请输入要加密的文件:");scanf("%s",filename) ;if((fp=fopen(filename,"r+"))==NULL)/*打开文件,若不存在,输出错误信息*/ {printf("\nerror opening file");return 0;}while(!feof(fp)) /*检查文件是否结束,若未结束则得到文件内容*/{ch=fgetc(fp);j++;}rewind(fp); /*将文件中位置指针置于文件开头位置,清除文件结束标志和错误标志*/while(i<j-1){ch=fgetc(fp); /*得到文件内容*/ch=ch^26; /*得到的字符与26进行异或运算,加密*/ fseek(fp,i,0); /*将位置指针移到以0为基准,以i为位移量的位置*/fputc(ch,fp); /*将字符ch写入文件中*/i++;fseek(fp,i,0); /*将位置指针移到以0为基准,以i为位移量的位置*/}/*printf("%c",ch=fgetc(fp));*/fclose(fp); /*关闭文件*/}int jiemi() /*解密函数*/{FILE *fp;char filename[100],ch,ch1;int i=0,j=0;printf("请输入要解密的文件:");scanf("%s",filename) ;if((fp=fopen(filename,"r+"))==NULL){printf("\nerror opening file");return 0;}while(!feof(fp)){ch=fgetc(fp);j++;}rewind(fp); /*将文件中位置指针置于文件开头位置,清除文件结束标志和错误标志*/while(i<j-1){ch=fgetc(fp);ch=ch^26; /*得到的字符与26进行异或运算,解密*/ fseek(fp,i,0);fputc(ch,fp);i++;fseek(fp,i,0);}/*printf("%c",ch=fgetc(fp));*/fclose(fp);}int display() /*显示函数*/{FILE *fp;char filename[100],ch,ch1;int i=0,j=0;printf("请输入要显示的文件:");scanf("%s",filename) ;if((fp=fopen(filename,"r+"))==NULL){printf("\nerror opening file");return 0;}while(!feof(fp)){ch=fgetc(fp);j++;}rewind(fp); /*将文件中位置指针置于文件开头位置,清除文件结束标志和错误标志*/while(!feof(fp)) /*检查文件是否结束,若未结束则输出文件内容*/{putchar(fgetc(fp));}/*printf("%c",ch=fgetc(fp));*/fclose(fp);}(3)验证结果新建文件,输入文件内容并保存:加密文件,并查看加密后的文件内容:正常打开文件,查看文件内容是否与加密后的显示一致:解密文件,并查看解密后的文件内容:正常打开文件,查看文件内容是否与解密后的显示一致,并与加密前对照是否一致:2.破解Windows口令。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《网络与信息安全》课程设计报告2010-1-07RSA算法加密软件的设计摘要:分析RSA算法的应用现状,论证文件加密应用RSA算法的可行性和意义。

设计一套完整实用的RSA文件加密解决方案,具体编码实现。

对RSA算法进行研究,从常规RSA算法出发,用C#实现RSA加密算法类库,并在32位windows平台封装成组件。

在.Net平台引用此组件,实现可以对任意文件进行RSA加密操作的窗体应用程序。

经过加密的文件以及密钥文件都是文本文件。

给出关键类类图、整个应用程序的结构描述文档、关键模块流程图、较详细的接口文档、所有源代码。

对应用程序进行测试,对测试结果进行分析研究,进而对应用程序进行改进,对关键算法进行尽可能的优化,最终得到一个在windows运行的可以用指定密钥对任意文件进行RSA加密并可解密的完整应用程序,和一些相关的可移植组件。

关键词:RSA , RSA算法, 文件加密, 加密成文本目录第1章 RSA应用现状及应用于文件加密的分析 (4)1.1 RSA算法介绍与应用现状 (4)1.2 RSA应用于文件加密的分析 (5)1.2.1 文件加密使用RSA的可行性 (5)1.2.2 文件加密使用RSA的意义 (6)第2章 RSA文件加密软件的设计与实现 (7)2.1 需求分析与总体设计 (7)2.1.1 功能分析 (7)2.1.2 工程方案选择 (8)2.2 各部分的设计与开发 (10)2.2.1 实现RSA加密算法的C#核心类库 (10)3.2 测试数据与分析改进 (14)3.2.1 密钥生成测试 (14)3.2.2 数据输入输出测试 (16)3.2.3 加密解密测试 (16)总结与体会 (17)致谢 (17)参考文献 (17)前言RSA公钥加密算法是第一个既能用于数据加密也能用于数字签名的算法。

它易于理解和操作,也十分流行。

算法的名字以发明者的姓氏首字母命名:Ron Rivest, Adi Shamir 和Leonard Adleman。

虽然自1978年提出以来,RSA的安全性一直未能得到理论上的证明,但它经历了各种攻击,至今(2007年)未被完全攻破。

随着越来越多的商业应用和标准化工作,RSA已经成为最具代表性的公钥加密技术。

VISA、MasterCard、IBM、Microsoft等公司协力制定的安全电子交易标准(Secure Electronic Transactions,SET)就采用了标准RSA 算法,这使得RSA在我们的生活中几乎无处不在。

网上交易加密连接、网上银行身份验证、各种信用卡使用的数字证书、智能移动电话和存储卡的验证功能芯片等,大多数使用RSA 技术。

当今公钥加密更广泛应用于互联网身份认证,本课题将公钥加密算法RSA应用于小型文件加密。

将任意文件加密成文本的解决方案,使其使用更加灵活。

整个工程的分层设计,给引用移植和后续开发带来便利。

第1章 RSA应用现状及应用于文件加密的分析1.1 RSA算法介绍与应用现状RSA算法可以简单叙述如下:<密钥生成>取素数p,q,令n=p×q.取与(p-1)×(q-1)互素的整数e,由方程d×e=1 (mod (p-1)×(q-1))解出d,二元组(e,n)作为公开密钥,二元组(d,n)作为私有密钥.<加密解密>b=a e mod n,c=b d mod n.附录中给出了证明a=c (mod n).RSA公开密钥加密算法自20世纪70年代提出以来,已经得到了广泛认可和应用。

发展至今,电子安全领域的各方面已经形成了较为完备的国际规范。

RSA作为最重要的公开密钥算法,在各领域的应用数不胜数。

RSA在硬件方面,以技术成熟的IC应用于各种消费类电子产品。

RSA在软件方面的应用,主要集中在Internet上。

加密连接、数字签名和数字证书的核心算法广泛使用RSA。

日常应用中,有比较著名的工具包Open SSL(SSL,Security Socket Layer,是一个安全传输协议,在Internet上进行数据保护和身份确认。

Open SSL是一个开放源代码的实现了SSL及相关加密技术的软件包,由加拿大的Eric Yang等发起编写的。

相关详细介绍见/about/ )。

Open SSL应用RSA实现签名和密钥交换,已经在各种操作系统得到非常广泛的应用。

另外,家喻户晓的IE浏览器,自然也实现了SSL 协议,集成了使用RSA技术的加密功能,结合MD5和SHA1,主要用于数字证书和数字签名,对于习惯于使用网上购物和网上银行的用户来说,几乎天天都在使用RSA技术。

RSA更出现在要求高度安全稳定的企业级商务应用中。

在当今的企业级商务应用中,不得不提及使用最广泛的平台j2ee。

事实上,在j2se的标准库中,就为安全和加密服务提供了两组API:JCA和JCE。

JCA (Java Cryptography Architecture)提供基本的加密框架,如证书、数字签名、报文摘要和密钥对产生器; JCA由几个实现了基本的加密技术功能的类和接口组成,其中最主要的是java.security包,此软件包包含的是一组核心的类和接口,Java中数字签名的方法就集中在此软件包中。

JCE(Java Cryptography Extension) 在JCA 的基础上作了扩展,JCE也是由几个软件包组成,其中最主要的是javax.crypto包,此软件包提供了JCE加密技术操作API。

javax.crypto中的Cipher类用于具体的加密和解密。

在上述软件包的实现中,集成了应用RSA算法的各种数据加密规范(RSA算法应用规范介绍参见: /rsalabs/node.asp?id=2146 ,这些API内部支持的算法不仅仅只有RSA,但是RSA是数字签名和证书中最常用的),用户程序可以直接使用java 标准库中提供的API进行数字签名和证书的各种操作。

单机应用程序使用RSA加密尚比较少见,例如使用RSA加密任意一个文件。

1.2 RSA应用于文件加密的分析1.2.1 文件加密使用RSA的可行性通过1.1节的论述,不难看出RSA当今的应用多在于数字签名和证书等方面。

之所以只应用于这些短小数据的加密解密,是因为RSA算法加密极慢,速度是DES对称密钥加密速度的千分之一左右。

正是因为这样,把RSA应用于普通文件加密的想法一直被忽略。

通常文件被想象成大数据块,但是实际上在日常应用中,有些极其重要的文本资料是并不太大的,比如因担心遗忘而用普通文本记录的银行帐号和密码、不应被陌生人知道的重要电话号码、几千字节大的重要小图片等。

其实从一个简单的角度来说,既然RSA用于数字签名可行,那就完全可以用于同样大小的普通文件。

对于较大的文件,如果分成与数字签名同样大小的段(这里假设数字签名较短,不分段一次计算加密完成),分开的各段逐一进行加密运算,那所需要的时间也只是按文件大小线性的增长。

通常数字签名为几十字节,加密运算并不需要很长的等待,这就说明对于几百字节或一两K字节大小的文件来说,如果进行RSA加密,并不会是非常漫长的工作。

当然,如果文件更大,加密就显得十分漫长了。

比如按前面叙述的45毫秒大数运算程序推理,加密1M字节大小的文件需要约1天的时间。

所以,要在普通PC用几百位以上的长密钥RSA加密文件,文件不能过大,一般可以接受的上限是几KB。

如果要在较短时间内加密大文件,需要缩短密钥长度以减小运算量,这将带来安全性隐患。

本文的第3章将根据实际调试好的软件,测试给出具体的时间消耗数据。

例如,在一台配置为AMD Athron2800+,外频333MHZ,物理内存512MB的PC上测试实现的软件,以560bit 的n逐字节加密一个1KB大小的文件需要55秒。

通常记录如银行帐号密码等重要数据的文本文件大小不足百字节,加密只需要数秒钟。

所以对于小型文件,进行较长密钥的RSA加密是完全可行的。

1.2.2 文件加密使用RSA的意义如1.2.1节所述,小型文件加密可以使用RSA。

比如,因担心遗忘而用普通文本记录的银行帐号和密码、不应被陌生人知道的重要电话号码、几千字节大的重要小图片等。

可行的方法未必是必要的,本小节讨论何种文件适合用非对称密钥加密,即RSA加密文件的意义所在。

对于前面叙述的带有重要信息的小型文本和二进制数据的维护,①如果不加密,将无法放心的保存在计算机上,尤其是连网的或机房里的公共计算机。

②如果借助功能强大的大型多用户数据保护程序维护几个小型文件,显得十分烦琐,好比杀鸡用牛刀。

③如果采用对称密钥加密,即加密解密的密钥相同,只适合部分情况。

在某些情况下,使用对称密钥加密文件,交流使用不够方便。

比如,张三由于某种原因,需要将自己的某个文件在公共计算机上留给李四,而不希望别人看到内容。

如果采用对称密钥加密,张三和李四提前约好一个密码就可以。

但是如果张三想要在同一台公共计算机上再留一个秘密文件给王五,而不希望别人看到,就要和王五另外约定一个密码。

如果需要在这台公共计算机上留十个文件给不同的人,自己就要记和十个人约定好的密码,这样以来交流起来不够方便,因为对于张三,要自己维护太多的密钥。

非对称密钥(公开密钥方式)恰好解决这样的问题。

只要大家都在这台计算机或这台计算机可以访问到的地方,留下自己的公开密钥,一切就变的容易解决了。

张三要留给李四的文件,就用李四的公开密钥加密,要留给王五的文件,就用王五的公开密钥加密。

李四和王五只要把留给自己的文件用自己的私有密钥解密,就可以得到留给自己的文件了。

显然,非对称密钥体制更适合多用户交流,而将这种加密方式直接应用于文件加密,使我们在公开场合的交流更加灵活方便。

一种更实际的情况是,我们想通过Internet上的公众论坛或邮件发送重要保密信息给某人。

例如发送一个银行帐号和密码给某人。

这种情况要保证安全,在当今互联网络上是比较棘手的。

①如果用公众论坛直接留言给指定用户,论坛管理员和服务器管理员通常有方法看到数据。

②如果发送邮件,虽然传送过程是加密的,但是密码毕竟是由邮件服务器维护,所以系统管理员通常也有办法看到内容。

问题的关键在于我们所有的数据包括密钥保存在服务器之上。

在这种情况下,我们需要使用公开密钥方式,并自己维护私有密钥。

RSA文件加密可以灵活的解决这些问题。

例如,我们可以将任意一个文件用某人的公开密钥加密变换成一段可以复制粘贴的文本,然后粘贴在公众互联网上,对方只需把需要解密的文本复制保存成一个文本文件,在本地机用自己的私有密钥解密即可。

我们可以将自己的私有密钥通过DES加密后保存在自己的移动磁盘上,使用的时候只要将其解密读取即可,用完后立即从当前操作环境清除。

相关文档
最新文档