




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录摘 要2abstract3第一章 绪论4一、文本加密的由来4二、文本加密的概念4三、文本加密的理由4四、文本加密系统的开发环境6第二章 系统分析10一、 可行性研究报告10二、 需求分析11第三章 总体设计13一、文本加密系统的方法简介13二、文本加密技术中的摘要函数(mad、mad和mad)13三、密钥的管理14四、数据加密的标准15五、加密技术的应用16第四章 详细设计18一 、程序设计思想与原则18二、系统结构图18三、程序流程图19四、设计主界面20第五章 系统测试25一系统测试的目的25二系统测试准则25三.系统测试方法26四.测试步骤26总结29致谢30【参考文献】31摘 要我们经常需要一种措施来保护我们的数据,防止被一些怀有不良用心的人所看到或者破坏。在信息时代,信息可以帮助团体或个人,使他们受益,同样,信息也可以用来对他们构成威胁,造成破坏。在竞争激烈的大公司中,工业间谍经常会获取对方的情报。因此,在客观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改。数据加密与解密从宏观上讲是非常简单的,很容易理解。加密与解密的一些方法是非常直接的,很容易掌握,可以很方便的对机密数据进行加密和解密本文主要分析了文本信息加密和解密的一些基本功能和组成情况,包括系统的需求分析、系统结构、,重点对应用程序的实际开发实现作了介绍。达到了数据的一致性和安全性,且应用程序功能完备,符合了保护数据的要求。同时简单介绍了visual basic编程环境。该软件是为文本文件的数据安全性而编制的,它可对选定的文本文件进行加、解密操作。操作非常简便,先选定要加、解密的文本文件,再按下相应的加密、解密按钮即可。关键词 文本 加密 解密abstractwe frequently need one kind of measure to protect our data, preventedis harbored by some not the good attentively person to see or the destruction. in the information time, the information may help theassociation or individual, causes them to profit, similarly, theinformation also may use for to them to pose the threat, creates the destruction. in the competition intense big company, the industrial spy frequently can gain opposite party information. therefore, in on is objective needs one kind of powerful security measure to protect the secret data not to steal or to tamper with. the data encryption and the decipher from on macroscopic says is extremely simple, is very easy to understand. the encryption and decipher some methods are extremely direct, is very easy to grasp, was allowed to be very convenient carries on the encryption to the secret data to reconcile dense this article mainly to analyze the text information encryption and decipher some basic functions and the composition situation, including the system demand analysis, the system structure, key has made the introduction to the application procedure actual development realization. had achieved the data uniformity and the security, also the application procedure function was complete, has conformed to the protection data requirement. simultaneously simply introduced visual the basic programming environment. this software is, it which establishes for the text documents data security may to the designation text documents carry on canadian, the decipher operation. the operation is extremely simple, first designated must add, the decipher text documents, then presses down the corresponding encryption, deciphers the button then.keyword text encryption decipher第一章 绪论一、文本加密的由来加密作为保障数据安全的一种方式,它不是现在才有的,它产生的历史相当久远,它是起源于要追溯于公元前2000年(几个世纪了),虽然它不是现在我们所讲的加密技术(甚至不叫加密),但作为一种加密的概念,确实早在几个世纪前就诞生了。当时埃及人是最先使用特别的象形文字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。近期加密技术主要应用于军事领域,如美国独立战争、美国内战和两次世界大战。最广为人知的编码机器是germanenigma机,在第二次世界大战中德国人利用它创建了加密信息。此后,由于alanturing和ultra计划以及其他人的努力,终于对德国人的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出了新的数据加密方式,如利用rosa算法产生的私钥和公钥就是在这个基础上产生的。二、文本加密的概念数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。三、文本加密的理由当今网络社会选择加密已是我们别无选择,其一是我们知道在互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输。而且这种不安全性是互联网存在基础tcp/ip协议所固有的,包括一些基于tcp/ip的服务;另一方面,互联网给众多的商家带来了无限的商机,互联网把全世界连在了一起,走向互联网就意味着走向了世界,这对于无数商家无疑是梦寐以求的好事,特别是对于中小企业。为了解决这一对矛盾、为了能在安全的基础上大开这通向世界之门,我们只好选择了数据加密和基于加密技术的数字签名。加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取。一个简单的例子就是密码的传输,计算机密码极为重要,许多安全防护体系是基于密码的,密码的泄露在某种意义上来讲意味着其安全体系的全面崩溃。通过网络进行登录时,所键入的密码以明文的形式被传输到服务器,而网络上的窃听是一件极为容易的事情,所以很有可能黑客会窃取得用户的密码,如果用户是root用户或administrator用户,那后果将是极为严重的。还有如果你公司在进行着某个招标项目的投标工作,工作人员通过电子邮件的方式把他们单位的标书发给招标单位,如果此时有另一位竞争对手从网络上窃取到你公司的标书,从中知道你公司投标的标的,那后果将是怎样,相信不用多说聪明的你也明白。这样的例子实在是太多了,解决上述难题的方案就是加密,加密后的口令即使被黑客获得也是不可读的,加密后的标书没有收件人的私钥也就无法解开,标书成为一大堆无任何实际意义的乱码。总之无论是单位还是个人在某种意义上来说加密也成为当今网络社会进行文件或邮件安全传输的时代象征!数字签名就是基于加密技术的,它的作用就是用来确定用户是否是真实的。应用最多的还是电子邮件,如当用户收到一封电子邮件时,邮件上面标有发信人的姓名和信箱地址,很多人可能会简单地认为发信人就是信上说明的那个人,但实际上伪造一封电子邮件对于一个通常人来说是极为容易的事。在这种情况下,就要用到加密技术基础上的数字签名,用它来确认发信人身份的真实性。类似数字签名技术的还有一种身份认证技术,有些站点提供入站ftp和www服务,当然用户通常接触的这类服务是匿名服务,用户的权力要受到限制,但也有的这类服务不是匿名的,如某公司为了信息交流提供用户的合作伙伴非匿名的ftp服务,或开发小组把他们的web网页上载到用户的www服务器上,现在的问题就是,用户如何确定正在访问用户的服务器的人就是用户认为的那个人,身份认证技术就是一个好的解决方案。在这里需要强调一点的就是,文件加密其实不只用于电子邮件或网络上的文件传输,其实也可应用静态的文件保护,如pip软件就可以对磁盘、硬盘中的文件或文件夹进行加密,以防他人窃取其中的信息。四、文本加密系统的开发环境 1硬件环境硬件环境:硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。由于本系统是一个小型的mis管理系统,因此对计算机硬件的要求不高,比较经济,只要配备如下表所示的就可以。 内容 最低配置 建议配置 主机 p/200 pii/266以上 内存 64mb 128mb以上 硬盘 10gb 20gb以上 显示器 vga以上2. 开发软件及运行平台 软件平台是指系统开发与运行的软件环境。本系统在开发时选用了稳定性较强的windows xp中文专业版和visual basic6.0作为开发语言,由于这些软件产品都是microsoft公司的产品,因此彼此之间的兼容性较好,开发出的应用系统稳定性较高。visual basic (简称vb)是 microsoft 公司开发的一种可视化编程语言。它具有简单、易学、功能强大、软件费用支出低、见效快等特点,深受广大编程人员的喜爱。visual basic在basic 语言的基础上经过不断改进和完善起来的。visual basic 自1991年问世以来,深受广大编程用户的青睐,一方面,它继承了basic语言简单易学的特点,是初学者很容易从入门到精通;另一方面,它巧妙的将windows复杂的编程过程封装起来,使用窗体和控件等可视化界面设计应用程序。因此,使用它设计应用程序,可以极大的提高应用程序开发的效率。目前,我国比较流行的是visual basic中文版,它包括三个版本,分别为学习版、专业版和企业版。3中版本实在相同的基础上建立起来的,大多数应用程序可在3个版本中通用。但3中版本适合于不同的用户层次:学习版是visual basic的基础版,其中包括所有的标准控件和网格(grid)控件、tab对象以及数据约束(data bound)控件;专业版为专业编程人员提供了除学习版的全部功能外,还包括activex控件、internet控件、crystal report writer和报表控件;企业版包括专业版的全部功能,同时具有自动化管理器、部件管理器、数据库管理工具等。在使用visual basic进行应用程序的开发时,用户可根据自身的需要,选择不同的版本。visual basic是一种可视化的、面对对象和调用事件驱动方式的结构化高级程序设计,可用于开发windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与windows的专业开发工具sdk相媲美,而且程序开发人员不必具有c/c+编程基础。在visual basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用windows内部的应用程序接口(api)函数,以及动态链接库(dll)、动态数据交换(dde)、对象的链接与嵌入(ole)、开放式数据访问(odbc)等技术,可以高效、快速地开发出windows环境下功能强大、图形界面丰富的应用软件系统。总的来说,visual basic具有以下特点:可视化编程:用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。visual basic提供了可视化设计工具,把windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。visual basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。面向对象的程序设计4.0版以后的visual basic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(c+)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而visual basic则是应用面向对象的程序设计方法(oop),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,visual basic自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。结构化程序设计语言visual basic是在basic语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。visual basic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。visual basic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计visual basic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.exe),脱离visual basic环境,直接在windows环境下运行。事件驱动编程机制visual basic通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击”(click)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。在用visual basic设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通过过程来执行指定的操作,这样可以方便编程人员,提高效率。访问数据库visual basic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理microsoft access格式的数据库,并提供了强大的数据存储和检索功能。同时,visual basic还能直接编辑和访问其他外部数据库,如dbase,foxpro,paradox等,这些数据库格式都可以用visual basic编辑和处理。visual basic提供开放式数据连接,即odbc功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如sql server,oracle等。在应用程序中,可以使用结构化查询语言sql数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的sql的编程技术,为单机上运行的数据库提供了sql网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)方案。动态数据交换(dde)利用动态数据交换(dynamic data exchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。visual basic提供了动态数据交换的编程技术,可以在应用程序中与其他windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。对象的链接与嵌入(ole)对象的链接与嵌入(ole)将每个应用程序都看作是一个对象(object),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。ole技术是microsoft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看作是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用ole技术,可以方便地建立复合式文档(compound document),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作。在目前的数据库开发过程中,客户/服务器体系结构占这个领域的主体地位,利用visual basic进行客户/服务器应用程序的开发是非常流行的做法。同时,在程序开发过程中,还可以利用面向数据库技术,提高程序的可用性。visual basic在数据库应用程序的开发领域中,提供了多种方便、强大的技术,协助设计人员轻松的连接数据库,并访问数据库。 综上所述,新系统的设计与开发在技术上和硬件设备上的条件都是满足的,新系统的开发是可行的。第二章 系统分析一、 可行性研究报告引言 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、具体的要求。编写目的进行可行性研究的目的是不是解决问题,而是确定问题是否值得去解决。进行可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。最后,把可行性研究文档请用户,客户组织的负责人及评审组审查。 要求所开发的软件的基本要求(1)功能:要求实现对高等学校使用的教材进行计划的功能,对教材选择的功能,对使用的教材分析汇总的功能。完成一个管理系统软件的开发工作。(2)性能:要求长时间运行良好,可靠性高;(3)输出要求:简捷,快速,实时,数据完整,详实;(4)完成时间:预计3个月,即截止2005年6月;目标系统的主要开发目标(1)实现文本信息加密(2)保存加密、解密后的文件决定可行性的主要因素:(1)成本/效益分析结果,效益 成本。(2)技术可行,现有技术可完全承担开发任务。(3)操作可行,软件能被现有工作人员快速接受。技术可行性分析系统简要描述:本设计就是编写一个比较实用,能对文本信息文件进行加密和解密的系统。可以对一般的文本文件进行保护的方法,使其不会轻易的让别人发现自己的文件信息二、 需求分析编写目的本文档是针对文本文件信息加密从总体设计、详细设计等方面着手描述。其编写目的是对文本信息加密系统的总体架构设计进行描述。对文本文件加密系统的业务流程作详细、准确的描述,为系统的概要设计及编码提供指导。系统功能需求 该软件是为文本文件的数据安全性而编制的,它可对选定的文本文件进行加、解密操作。操作非常简便,先选定要加、解密的文本文件,再按下相应的加密、解密按钮即可。 性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,文本文件加密系统应该满足以下的性能需求:系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足对信息处理的需求。由于文本信息的加密和解密功能对于整个系统的功能和性能完成举足轻重。在系统开发过程中,必须采用一定的方法保证系统的准确性。系统的开放性和系统的可扩充性系统在开发过程中,应该充分考虑以后的可扩充性。用户的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。系统的易用性和易维护性文本文件加密系统是直接面对使用人员的,而使用人员往往对系统并不非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的帮助,缩短用户对系统熟悉的过程。文本文件加密系统中涉及到的数据是文件恢复相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。系统的标准性系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。如规范的数据库操纵界面、作为业界标准的tcp/ip网络协议及iso9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。系统的先进性目前计算系统的技术发展相当快,作为文本文件加密系统工程,应该保证系统的先进性,在系统的生命周期尽量做到系统的先进,充分完成教材信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。系统实体属性分析 本系统中的主要实体有:浏览文件、加密、解密、保存。第三章 总体设计一、文本加密系统的方法简介 加密技术通常分为两大类:“对称式”和“非对称式”。对称式加密就是加密和解密使用同一个密钥,通常称之为“sessionkey”这种加密技术目前被广泛采用,如美国政府所采用的des加密标准就是一种典型的“对称式”加密法,它的sessionkey长度为56bits。非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。二、文本加密技术中的摘要函数(mad、mad和mad)摘要是一种防止改动的方法,其中用到的函数叫摘要函数。这些函数的输入可以是任意大小的消息,而输出是一个固定长度的摘要。摘要有这样一个性质,如果改变了输入消息中的任何东西,甚至只有一位,输出的摘要将会发生不可预测的改变,也就是说输入消息的每一位对输出摘要都有影响。总之,摘要算法从给定的文本块中产生一个数字签名(fingerprint或messagedigest),数字签名可以用于防止有人从一个签名上获取文本信息或改变文本信息内容和进行身份认证。摘要算法的数字签名原理在很多加密算法中都被使用,如so/key和pip(prettygoodprivacy)。现在流行的摘要函数有mad和mad,但要记住客户机和服务器必须使用相同的算法,无论是mad还是mad,mad客户机不能和mad服务器交互。mad摘要算法的设计是出于利用32位risc结构来最大其吞吐量,而不需要大量的替换表(substitutiontable)来考虑的。mad算法是以消息给予的长度作为输入,产生一个128位的指纹或消息化。要产生两个具有相同消息化的文字块或者产生任何具有预先给定指纹的消息,都被认为在计算上是不可能的。mad摘要算法是个数据认证标准。mad的设计思想是要找出速度更快,比mad更安全的一种算法,mad的设计者通过使mad在计算上慢下来,以及对这些计算做了一些基础性的改动来解决安全性这一问题,是mad算法的一个扩展。三、密钥的管理密钥既然要求保密,这就涉及到密钥的管理问题,管理不好,密钥同样可能被无意识地泄露,并不是有了密钥就高枕无忧,任何保密也只是相对的,是有时效的。要管理好密钥我们还要注意以下几个方面:1、密钥的使用要注意时效和次数如果用户可以一次又一次地使用同样密钥与别人交换信息,那么密钥也同其它任何密码一样存在着一定的安全性,虽然说用户的私钥是不对外公开的,但是也很难保证私钥长期的保密性,很难保证长期以来不被泄露。如果某人偶然地知道了用户的密钥,那么用户曾经和另一个人交换的每一条消息都不再是保密的了。另外使用一个特定密钥加密的信息越多,提供给窃听者的材料也就越多,从某种意义上来讲也就越不安全了。因此,一般强调仅将一个对话密钥用于一条信息中或一次对话中,或者建立一种按时更换密钥的机制以减小密钥暴露的可能性。2、多密钥的管理假设在某机构中有100个人,如果他们任意两人之间可以进行秘密对话,那么总共需要多少密钥呢?每个人需要知道多少密钥呢?也许很容易得出答案,如果任何两个人之间要不同的密钥,则总共需要4950个密钥,而且每个人应记住99个密钥。如果机构的人数是1000、10000人或更多,这种办法就显然过于愚蠢了,管理密钥将是一件可怕的事情。kerberos提供了一种解决这个较好方案,它是由mit发明的,使保密密钥的管理和分发变得十分容易,但这种方法本身还存在一定的缺点。为能在因特网上提供一个实用的解决方案,kerberos建立了一个安全的、可信任的密钥分发中心(keydistributioncenter,kdc),每个用户只要知道一个和kdc进行会话的密钥就可以了,而不需要知道成百上千个不同的密钥。假设用户甲想要和用户乙进行秘密通信,则用户甲先和kdc通信,用只有用户甲和kdc知道的密钥进行加密,用户甲告诉kdc他想和用户乙进行通信,kdc会为用户甲和用户乙之间的会话随机选择一个对话密钥,并生成一个标签,这个标签由kdc和用户乙之间的密钥进行加密,并在用户甲启动和用户乙对话时,用户甲会把这个标签交给用户乙。这个标签的作用是让用户甲确信和他交谈的是用户乙,而不是冒充者。因为这个标签是由只有用户乙和kdc知道的密钥进行加密的,所以即使冒充者得到用户甲发出的标签也不可能进行解密,只有用户乙收到后才能够进行解密,从而确定了与用户甲对话的人就是用户乙。当kdc生成标签和随机会话密码,就会把它们用只有用户甲和kdc知道的密钥进行加密,然后把标签和会话钥传给用户甲,加密的结果可以确保只有用户甲能得到这个信息,只有用户甲能利用这个会话密钥和用户乙进行通话。同理,kdc会把会话密码用只有kdc和用户乙知道的密钥加密,并把会话密钥给用户乙。用户甲会启动一个和用户乙的会话,并用得到的会话密钥加密自己和用户乙的会话,还要把kdc传给它的标签传给用户乙以确定用户乙的身份,然后用户甲和用户乙之间就可以用会话密钥进行安全的会话了,而且为了保证安全,这个会话密钥是一次性的,这样黑客就更难进行破解了。同时由于密钥是一次性由系统自动产生的,则用户不必记那么多密钥了,方便了人们的通信。四、数据加密的标准最早、最著名的保密密钥或对称密钥加密算法des(dataencryptionstandard)是由ibm公司在70年代发展起来的,并经政府的加密标准筛选后,于1976年11月被美国政府采用,des随后被美国国家标准局和美国国家标准协会(americannationalstandardinstitute,ansi)承认。des使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。与每轮编码时,一个48位的每轮密钥值由56位的完整密钥得出来。des用软件进行解码需用很长时间,而用硬件解码速度非常快。幸运的是,当时大多数黑客并没有足够的设备制造出这种硬件设备。在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于des的解密,而且需要12个小时的破解才能得到结果。当时des被认为是一种十分强大的加密方法。随着计算机硬件的速度越来越快,制造一台这样特殊的机器的花费已经降到了十万美元左右,而用它来保护十亿美元的银行,那显然是不够保险了。另一方面,如果只用它来保护一台普通服务器,那么des确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的钱破解des密文。另一种非常著名的加密算法就是rsa了,rsa(rivest-shamir-adleman)算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数。一个对外公开的为“公钥”(prblickey),另一个不告诉任何人,称为私钥”(privatekey)。这两个密钥是互补的,也就是说用公钥加密的密文可以用私钥解密,反过来也一样。假设用户甲要寄信给用户乙,他们互相知道对方的公钥。甲就用乙的公钥加密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文。由于别人不知道乙的私钥,所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发信,那么乙怎么确信是不是甲的来信呢?那就要用到基于加密技术的数字签名了。甲用自己的私钥将签名内容加密,附加在邮件后,再用乙的公钥将整个邮件加密(注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私钥将邮件解密,得到甲的原文和数字签名,然后用甲的公钥解密签名,这样一来就可以确保两方面的安全了。五、加密技术的应用加密技术的应用是多方面的,但最为广泛的还是在电子商务和vpn上的应用,下面就分别简叙。1、在电子商务方面的应用电子商务(e-business)要求顾客可以在网上进行各种商务活动,不必担心自己的信用卡会被人盗用。在过去,用户为了防止信用卡的号码被窃取到,一般是通过电话订货,然后使用用户的信用卡进行付款。现在人们开始用rsa(一种公开/私有密钥)的加密技术,提高信用卡交易的安全性,从而使电子商务走向实用成为可能。 许多人都知道netscape公司是internet商业中领先技术的提供者,该公司提供了一种基于rsa和保密密钥的应用于因特网的技术,被称为安全插座层(securesocketslayer,ssl)。也许很多人知道socket,它是一个编程界面,并不提供任何安全措施,而ssl不但提供编程界面,而且向上提供一种安全的服务,ssl3.0现在已经应用到了服务器和浏览器上,ssl2.0则只能应用于服务器端。ssl3.0用一种电子证书(electriccertificate)来实行身份进行验证后,双方就可以用保密密钥进行安全的会话了。它同时使用“对称”和“非对称”加密方法,在客户与电子商务的服务器进行沟通的过程中,客户会产生一个sessionkey,然后客户用服务器端的公钥将sessionkey进行加密,再传给服务器端,在双方都知道sessionkey后,传输的数据都是以sessionkey进行加密与解密的,但服务器端发给用户的公钥必需先向有关发证机关申请,以得到公证。基于ssl3.0提供的安全保障,用户就可以自由订购商品并且给出信用卡号了,也可以在网上和合作伙伴交流商业信息并且让供应商把订单和收货单从网上发过来,这样可以节省大量的纸张,为公司节省大量的电话、传真费用。在过去,电子信息交换(electricdatainterchange,edi)、信息交易(informationtransaction)和金融交易(financialtransaction)都是在专用网络上完成的,使用专用网的费用大大高于互联网。正是这样巨大的诱惑,才使人们开始发展因特网上的电子商务,但不要忘记数据加密。2、 加密技术在vpn中的应用 现在,越多越多的公司走向国际化,一个公司可能在多个国家都有办事机构或销售中心,每一个机构都有自己的局域网lan(localareanetwork),但在当今的网络社会人们的要求不仅如此,用户希望将这些lan连结在一起组成一个公司的广域网,这个在现在已不是什么难事了。事实上,很多公司都已经这样做了,但他们一般使用租用专用线路来连结这些局域网,他们考虑的就是网络的安全问题。现在具有加密/解密功能的路由器已到处都是,这就使人们通过互联网连接这些局域网成为可能,这就是我们通常所说的虚拟专用网(virtualprivatenetwork,vpn)。当数据离开发送者所在的局域网时,该数据首先被用户湍连接到互联网上的路由器进行硬件加密,数据在互联网上是以加密的形式传送的,当达到目的lan的路由器时,该路由器就会对数据进行解密,这样目的lan中的用户就可以看到真正的信息了。第四章 详细设计一 、程序设计思想与原则 详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 详细设计阶段的任务还不是具体的编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。因此,详细设计的结果基本上决定了最终的程序代码的质量。考虑程序代码的质量时必须注意,程序的读者有两个,那就是计算机和人。在软件的生命周期中,设计测试方案、诊断程序错误、修改和改进程序等等都必须首先读懂程序。实际上对于长期使用的软件系统而言,人读程序的时间可能比写程序的时间还要长得多。因此,衡量程序的质量不仅要看它是否容易阅读和理解。详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。二、系统结构图 系统文本文件 浏览文件 加密、保存 解密、保存图4.1系统结构图三、程序流程图文本信息加密结构图开始 选择文件路径加密文件没有选择 返回保存图4.2文本信息加密程序流程图文本信息解密结构图 开始 选择文件路径解密没有选择 返回 保存图4.3文本信息解密程序流程图四、设计主界面 主界面如下图所示 图4.4主界面运行图在主界面中添加代码如下:option explicitprivate mydsencrypt as dsencryptdim fs as variant 文件名柄dim f as variantprivate sub command1_click(index as integer) dim filecontext as string 文本文件的内容信息 按浏览按钮选择文本文件名 if index = 1 then commondialog1.dialogtitle = 请选择文本文件名 commondialog1.filter = 文本文件(*.txt,*.wri,*.doc,*.wps)|*.txt;*.wri;*.doc;*.wps|所有文件(*.*)|*.* commondialog1.showopen if commondialog1.filename then txtfilename.text = commondialog1.filename 在文本框中显示选中的文件名 command1(0).enabled = true 加、解密按钮置为有效 command1(2).enabled = true end if end if 按加密按钮时对文件的加密处理 if index = 0 then if txtfilename.text then 文件名不为空 if fs.fileexists(txtfilename.text) then 文件名存在 if fs.fileexists(left(txtfilename.text, len(txtfilename.text) - 4) & .bak) then 备件文件存在 空语句 (备件文件已存在,则不在创建备件文件) else fs.copyfile txtfilename.text, left(txtfilename.text, len(txtfilename.text) - 4) & .bak 建立原文本文件备件 end if set f = fs.opentextfile(txtfilename.text, forreading, tristatefalse) do while f.atendofstream true filecontext = filecontext & f.readline & vbcrlf 读取文本文件内容到filecontext中 loop f.close set f = fs.opentextfile(txtfilename.text, forwriting, tristatefalse) f.write mydsencrypt.encode(filecontext, 1) 加密后的内容写回原文本文件中 f.close command1(0).enabled = false 加密按钮置为无效 else msgbox txtfilename.text & 文件不存在!, vbinformation, 提示 txtfilename.text = end if else msgbox 文本文件名不能为空!, vbinformation, 提示 end if end if 按解密按钮时对文件的解密处理 if index = 2 then if txtfilename.text then if fs.fileexists(txtfilename.text) then 文件名存在 set f = fs.opentextfile(txtfilename.text, forreading, tristatefalse) do while f.atendofstream true filecontext = filecontext & f.readline 读取文本文件内容到filecontext中 loop f.close set f = fs.op
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南环境生物职业技术学院《输油管道设计与管理》2023-2024学年第一学期期末试卷
- 辽宁体育运动职业技术学院《混凝土结构设计原理C》2023-2024学年第一学期期末试卷
- 湖南体育职业学院《乒乓球中级》2023-2024学年第一学期期末试卷
- 江苏师范大学科文学院《影像电子学基础实验》2023-2024学年第一学期期末试卷
- 上海建设管理职业技术学院《管理心理学D1》2023-2024学年第一学期期末试卷
- 河北能源职业技术学院《生化药物制备技术》2023-2024学年第一学期期末试卷
- 青岛求实职业技术学院《医疗美容技术》2023-2024学年第一学期期末试卷
- 陕西师范大学《互动光媒与空间》2023-2024学年第一学期期末试卷
- 辽宁中医药大学杏林学院《合唱表演与实践》2023-2024学年第一学期期末试卷
- 北京卫生职业学院《三维造型与应用》2023-2024学年第一学期期末试卷
- 2024-2025学年广东省新部编版七年级历史第二学期期末模拟卷(含答案)
- 2025年新疆维吾尔自治区公务员录用考试面试真题试卷:无领导小组讨论边疆稳定与发展试题
- 2025年高考湖南卷物理真题(解析版)
- 七年级下册地理知识点总结(考点清单)(背记版)七年级地理下学期期末复习(人教2024版)
- 2025至2030中国汽车物流行业深度发展研究与企业投资战略规划报告
- 2025年四川富润招聘笔试冲刺题(带答案解析)
- 公司物流内部管理制度
- 公司资料部门管理制度
- 2025年数学中考专题复习课件:7.30 尺规作图
- 人教部编版五年级下册语文期末复习现代文阅读(含课内、课外)专项训练(三)(含答案)
- 育苗基地可行性研究报告
评论
0/150
提交评论