




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文档加密器的开发及测试摘 要随着计算机和通信技术的迅猛发展,大量敏感信息通过公共通信设施或计算机网络进行交换,特别是internet的广泛应用、电子商务和电子政务的迅速发展,越来越多的个人信息需要严格保密,如银行账号、个人隐私等。正是这种对信息的机密性与真实性的需求,很有必要设计一个加密软件对其敏感信息加密。一个好的加密工具能够让用户方便快捷对重要信息进行有效保护,从而大大降低了公司的重要信息泄露的安全隐患,真正做到机密信息只供有权限的用户查阅。本系统采用asp.net (c#)作为开发工具,系统主要功能包含:加密文件的密码设置、加密文件、解密密码的验证、解密文件等。加密功能需要扩展的方面有:对网络数据流加密和解密;对节点加密和节点解密;对数据打包封装,实现网络上使用密文传输;局部文本加密替换。此外,密钥的分配必须通过安全的渠道进行传输,因为密钥的管理是关系到整个加密方案的重要安全因素。关键词:des加密器;asp.net (c#);文件加密;文件解密the implementation of a document encrypter based on c#abstractwith the rapid development of the computer and communication technologies, large mount of sensitive information are exchanged on the public communications facilities or computer networks. especially under the situation of the widespread of the internet applications, such as e-commerce and e-government, more and more information, such as bank account numbers, personal privacy, need to be encrypted. such requirement for the secrecy and authenticity makes it necessary to develop an encrypter to encrypt the sensitive information. this system, developed with asp.net (c #), primarily includes such functions as setting the password of the document to be encrypted, encrypting the document, verifying the decryption password and decrypting the document. what needs to expand include encrypting and decrypting the network data or data on hosts; packaging data on the internet and implementing encrypted transmission; replacing partial text in encrypted document. besides, keys need to be transmitted on the safety channel because key management is the critical safety factor of the entire document. users can protect their important data and prevent the unauthenticated persons from stealing the information by using the entrypter. encryption is the key means to protect the important information, and decryption is to restore the encrypted data to make it readable.key words: the des encrypter; asp.net ( c#); document encryption; the document decryption目 录论文总页数:22页1引言1.1课题背景1.2 国内外研究的现状1.2.1公钥密码1.2 .2分组密码1.2.3 序列密码1.2.4认证码1.2.5数字签名1.3本课题研究的意义1.4 本课题的研究方法2 des算法描述2.1 des2.2 des算法详述2.3算法的编程实现2.4 des算法的应用误区及避开方法3软件设计与实现3.1 程序结构图3.2关键代码的设计3.3开发完成程序调试截图4测试4.1加密方面的测试实验用例4.2解密方面的测试实验用例结 论参考文献1引言1.1课题背景 密码技术是信息安全技术的核心,它主要由密码编码技术和密码分析技术两个分支组成。密码编码技术的主要任务是寻求产生安全性高的有效密码算法和协议,以满足对消息进 本文出处:火柴天堂社区 http:/www.matchtt.co行加密或认证的要求。密码分析技术的主要任务是破译密码或伪造认证信息,实现窃取 本文出处:火柴天堂社区 / 机密信息或进行诈骗破坏活动。这两个分支既相互对立又相互依存,正是由于这种对立统一关系,才推动了密码学自身的发展。目前人们将密码理论与技术分成两大类,一类是基于数学的密码理论与技术,包括公钥密码、分组密码、序列密码、认证码、数字签名、hash 函数、身份识别、密钥管理、pki 技术、vpn 技术等;另一类是非数学的密码理论与技术,包括信息隐藏、量子密码、基于生物特征的识别理论与技术等。1.2 国内外研究的现状1.2.1公钥密码 自从1976 年公钥密码的思想提出以来,国际上已经提出了许多种公钥密码体制,如基于大整数因子分解问题的rsa 体制和rabin 体制、基于有限域上的离散对数问题的diffie-hellman 公钥体制和elgamal 体制、基于椭圆曲线上的离散对数问题的diffie-hellman公钥体制和elgamal 体制、基于背包问题的merkle-hellman 体制和chor-rivest 体制、基于代数编码理论的mealiest 体制、基于有限自动机理论的公钥体制等等。用抽象的观点来看,公钥密码体制就是一种陷门单向函数。我们说一个函数f 是单向函数,若对它的定义域中的任意x 都易于计算f(x),而对f 的值域中的几乎所有的y,即使当f 为已知时要计算f 1(y)在计算上也是不可行的。若当给定某些辅助信息(陷门信 息)时易于计算f 1(y),就称单向函数f 是一个陷门单向函数。公钥密码体制就是基于这一原理而设计的,将辅助信息(陷门信息)作为秘密密钥。这类密码的安全强度取决于它所依据的问题的计算复杂性。 目前比较流行的公钥密码体制主要有两类:一类是基于大整数因子分解问题的,其中最典型的代表是rsa 体制。另一类是基于离散对数问题的,如elgamal 公钥密码体制和影响比 较大的椭圆曲线公钥密码体制。由于分解大整数的能力日益增强,因此为保证rsa 体制的安全性总是要增加模长。目前768bit 模长的rsa 体制已不安全。一般建议使用1024bit 模长,预计要保证20 年的安全性就要选择2048bit 的模长,增大模长带来了实现上的难度。而基于离散对数问题的公钥密码在目前技术下512bit 模长就能够保证其安全性。特别是椭圆曲线上的离散对数的计算要比有限域上的离散对数的计算更困难,目前技术下只需要160bit 模长即可保证其安全性,适合于智能卡的实现,因而受到国际上的广泛关注。国际上制定了椭圆曲线公钥密码标准ieeep1363。 目前,公钥密码的重点研究方向为: 1)用于设计公钥密码的新的数学模型和陷门单向函数的研究; 2)针对实际应用环境的公钥密码的设计; 3)公钥密码的快速实现研究,包括算法优化和程序优化、软件实现和硬件实现; 4)公钥密码的安全性评估问题,特别是椭圆曲线公钥密码的安全性评估问题1.2 .2分组密码 美国国家标准技术研究所( nist)在1997 年1 月2 日正式宣布了nist 计划,该计划公开征集和评估新的候选标准,新的标准称之为aes。作为进入aes 程序的一个条件,开发者必须承诺放弃被选中算法的知识产权。许多个人和公司积极响应,到1998 年8 月20日,nist 指定了15 个候选者。1999 年8 月,nist 从中筛选出5 个候选者。人们为了比较出最终算法发表了许多论文,公布了大量的统计数据,每个算法都有它的优点和弱点。在2000年10 月2 日,nist 宣布获胜者为一个称之为rijndael 的算法,这是比利时学者vince nt rijmen和joan daemen发明的。2001 年11 月26 日,nist 正式公布了新标准aes,其编号为fips pubs197。如同des 一样,人们期望aes 也能成为世界性的标准。预期过不了多久,只要有人有密码系统,就肯定有aes。 aes 活动使得国际上又掀起了一次研究分组密码的新高潮。继美国征集aes 活动之后。欧洲(称之为nessie 计划)和日本也不甘落后启动了相关标准的征集和制定,这些计划看起来比美国的计划更宏伟。同时美国等一些国家为适应技术发展的需求也加快了其他密码标准的更新,比如sha-1 和fips140-1。我国在国家“863”计划中也将制定密码的标准化问题列入了议程。 目前,分组密码的重点研究方向为: 1)新型分组密码的研究; 2)分组密码安全性综合评估原理与准则的研究; 3)分组密码的实现研究,包括软件优化、硬件实现和专用芯片等; 4)用于设计分组密码的各种组件的研究; 5)aes 的分析及其应用研究。1.2.3 序列密码 序列密码虽然主要用于政府、军方等国家要害部门,而且用于这些部门的理论和技术都是保密的,但由于一些数学工具(比如代数、数论、概率等)可用于研究序列密码,其理论和技术相对而言比较成熟。从20 世纪80 年代中期到90 年代初,序列密码的研究非常热,特别是在序列密码的设计方法、序列密码的安全性度量指标、序列密码的分析方法、用于设计序列密码的各种组件(如密码布尔函数的构作与分析、非线性资源的生成和分析)等方面取得了一大批有理论和应用价值的成果。 在序列密码的设计方法方面,人们将设计序列密码的方法归纳为4 种,即系统论方法、复杂性理论方法、信息论方法和随机化方法;将同步流密码的密钥流生成器分解成驱动部分和非线性组合部分,这样做不仅结构简单,而且便于从理论上分析这类生成器;提出了非线性组合生成器、非线性滤波生成器和钟控生成器等多种具体设计方法。在序列密码的安全性度量指标方面,人们提出了线性复杂度轮廓、跃复杂度、k-错误复杂度(球复杂度)、球周期、非线性复杂度等多种度量序列随机性和稳定性的指标,并对指标进行了深入研究。 在序列密码的分析方法方面,提出了分别征服攻击方法、线性攻击方法、线性伴随式攻击方法、线性一致性攻击方法、快速相关攻击方法、线性时序逻辑逼近方法、熵漏分析方法等多种有效的分析方法。 在密码布尔函数的构作与分析方面,提出了构造布尔函数的多种设计准则,如相关免疫性、线性结构、严格雪崩特性、扩散特性、平衡性、非线性性、差分均匀性等,构造了一大批满足上述若干准则的布尔函数,同时,对这些准则之间的关系也进行了深入研究。在非线性资源的生成和分析方面,对环上序列的生成和结构进行了深入研究和刻画,诱导出的二元序列具有良好的密码学特性。在研究方法方面,将谱技术、概率统计方法、纠错编码技术、有限域理论等有效地用于序列密码的研究。 近年来,序列密码的研究虽然不像原来那么热,但有很多有价值的公开问题需要进一步研究,比如自同步流密码的研究、有记忆前馈网络密码系统的研究、多输出密码函数的研究、混沌序列密码和新研究方法的探索等。另外,虽然没有制定序列密码标准,但在一些系统中广泛使用了序列密码比如rc4,用于存储加密。事实上,欧洲的nessie 计划中已经包括了序列密码标准的制定,这一举措有可能导致序列密码研究热。 1.2.4认证码 认证码最早是由gilbert 提出的,但simmons 于1984 年首次系统地提出了认证码的信息理论。其主要研究目标有两个,一个是推导欺骗者欺骗成功的概率的下界;另一个是构造欺骗者欺骗成功的概率尽可能小的认证码。20 世纪80 年代中期以来,在认证码的构造和界的估计等方面已经取得了一大批研究成果。但目前认证码的应用非常有限,几乎停留在理论研究上。当然,仍有许多理论问题需要进一步研究,如具有保密功能的认证码的研究、仲裁认证码的研究、认证码的实用化研究,等等。1.2.5数字签名 数字签名是对电子形式的消息签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,特别是公钥密码体制的诞生为数字签名的研究和应用开辟了一条广阔的道路。关于数字签名技术的研究,目前主要集 中于基于公钥密码体制的数字签名技术的研究。数字签名的研究内容非常丰富,包括普通数字签名和特殊数字签名。普通数字签名算法有rsa 数字签名算法、elgamal 数字签名算法、fiat-shamir 数字签名算法、guillou-quisquarter 数字签名算法、schnorr 数字签名算法、ong-schnorr-shamir 数字签名算法、美国的数字签名标准/算法(dss/dsa),椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(dss),部分州已制定了数字签名法。一些国家如法国和德国已经制定了数字签名法。1.3本课题研究的意义古往今来,通信中的安全保密问题一直受到广泛关注。历史上,交战双方在通信安全、保密和密码破译方面的优势均被认为是取得战争胜利的关键因素之一。今天,人类已进入信息化 时代,现代通信涉及各个行业,信息安全已成为人人都关心的问题,这就促使密码学揭去了神秘的面纱,为更广泛的领域和大众服务。1.4 本课题的研究方法综合了加密方案的具体需求,选用asp.net(c#)作为开发工具、使用des作为数据加密算法,这种加密算法加密速度快,适合对大量数据文件的加密。通过c#开发的软件是个伪可执行程序,只要该用户安装有开发相同的环境,就可以直接运行。软件工程开发方法,在经过深入地学习之后,开发了基于c#的des加密器。下面我将具体介绍系统的开发过程:2 des算法描述2.1 des美国早在1977 年就制定了自己的数据加密标准des。随着des 的出现,人们对分组密码展开了深入的研究和讨论。现已有大量的分组密码,如des 的各种变形、idea 算法、safer 系列算法、rc 系列算法、skipjack 算法、rijndael 算法、feal 系列算法、redoc系列算法、loki 系列算法,cast 系列算法、khufu、khafre、mmb、3-way、tea、macguffin、shark、bear、lion、ca.1.1、crab、blowfish、gost、square、misty,等等。 本文出处:火柴天堂社区 / 用抽象的观点来看,分组密码就是一种满足下列条件的映射e: mkm f s f 2 2 . :对每个k.sk, e ( , k)是从m f2 到m f2 的一个置换。可见,设计分组密码的问题在于找到 本文出处:火柴天堂社区 / 一种算法,能在密钥控制下从一个足够大且足够“好”的置换子集合中,简单而迅速地选出一个置换。一个好的分组密码应该是既难破译又容易实现,即加密函数e ( , k)和解密函数d ( , k)都必须容易计算,但是至少要从方程y=e (x, k)或x=d (y, k)中求出密钥k 应该是一个困难问题。 本文出处:火柴天堂社区 / 本文出处:火柴天堂社区 / des是一种分组加密算法,他以64位为分组对数据加密。64位一组的明文从算法的一端 输入,64位的密文从另一端输出。des是一个对称算法:加密和解密用的是同一个算法(除 密钥编排不同以外)。 密钥的长度为56位(密钥通常表示为64位的数,但每个第8位都用作奇偶检验,可以忽 略)。密钥可以是任意的56位数,且可以在任意的时候改变。des算法的入口参数有3个:key,data,mode。其中key为8个字节共64位,是des算法 的工作密钥;data也为8个字节64位,是要被加密或解密的数据:mode为des的工作方式,有两种:加密或解密。 des算法的工作过程:若mode为加密,则用key对数据data进行加密,生成data的密码 形式(64位)作为des的输出结果;若mode为解密,则用key对密码形式的数据data解密,还 原为data的明码形式(64位)作为des的输出结果。 在通信网络的两端,双方约定了一致的key,在通信的源点用key对核心数据进行des加密 ,然后以密码形式通过公共通信网(如电话网)传输到通信网络的终点,数据达到目的 地后,用同样的key对密码数据进行解密,便再现了明码形式的核心数据。这样便保证了核 心数据(如pin,mac等)在公共通信网中传输的安全性和可靠性。通过定期在通信网络的源 端和目的端同时改用新的key,便能更进一步提高数据的保密性,这正是现在金融界交易网 络的流行作法。 简单地说,算法只不过是加密的一种基本技术,des基本组建分组是这些技术的一种组合 ,他基于密钥作用于明文,这是众所周知的轮(round)。des有16轮,这意味着要在明文分 组上16次实施相同的组合技术。2.2 des算法详述des算法把64位的明文输入块变为64位的密文输出块,他所使用的密钥也是64位,des对64 位的明文分组进行操作。通过一个初始置换,将明文分组分成左半部分和右半部分,各32位 长。然后进行16轮相同的运算,这些相同的运算被称为函数f,在运算过程中数据和密钥相结合。经过16轮运算后左、右部分在一起经过一个置换(初始置换的逆置换),这样算法就完成了。 (1)初始置换 其功能是把输入的64位数据块按位重新组合,并把输出分为l0,r0两部分,每部分各 长32位,其置换规则如表1所示。表1初始置换58,50,42,34,26,18, 10, 2,60,52,44,36,28,20,12,462,54,46,38,30,22,14, 6,64,56,48,40,32,24,15, 857,49,41,33,25,17,09, 1,59,51,43,35,27,19,11,361,53,45,37,29,21,13, 5,63,55,47,39,31,23,15,7即将输入的第58位换到第1位,第50位换到第2位,依次类推,最后一位是原来的 第7位,l0,r0则是换位输出后的两部分,l0是输出的左32位,r0是右32位。例:设置换前 的输入值为d1d2d3d64,则经过初始置换后的结果为:l0=d58d50d8;r0=d57d497。 (2)逆置换 经过16次迭代运算后,得到l16,r16,将此作为输入进行逆置换,即得到密文输出。 逆置换正好是初始置换的逆运算。例如,第1位经过初始置换后,处于第40位,而通过逆置 换,又将第40位换回到第1位,其逆置换的规则如表2所示。 表2逆置换40,8,48,16,56,24,64,32,39, 7,47,15,55,23,63,3138,6,46,14,54,22,62,30,37, 5,45,13,53,21,61,2936,4,44,12,52,20,60,28,35, 3,43,11,51,19,59,2734,2,42,10,50,18,58,26,33, 1,41,9,49,17,57,25 (1)函数f(ri,ki)的计算其算法描述如图1所示。 图1 算法描述在图1中,“扩展置换”是将32位放大成48位,“p盒置换”是32位到32位换位,其换位 规则分别 如表3、表4所示。表3扩展置换表32,1,2,3,4 ,5 ,4 ,5 ,6 ,7 ,8 ,98,9,10,11,12,13,12,13,14,15,16,1716,17,18,19,20,21,20,21,22,23,24,2524,25,26,27,28,29,28,29,30,31,32,1表4 p盒置换表16,7,20,21,29,12,28,17,1,15,23,16,23,26,5,18,31,10,2,8,24,14,32,27, 3, 9,19,13 ,30, 6,22,11, 4,25 在(ri,ki)算法描述图中,s1,s2,s8为选择函数,其功能是把6 b数 据变为4 b数据。下面以选择函数s1为例说明其功能。其选择函数s1的功能表如表5所 示。表5选择函数s1的功能表14, 4,13, 1, 2,15,11, 8, 3,10, 6,12, 5, 9, 0,7 0,15, 7, 4,14, 2,13, 1,10, 6,12,11, 9, 5, 3,8 4, 1,14, 8, 13, 6, 2,11,15,12, 9,7, 3,10, 5, 015,12, 8, 2, 4, 9, 1, 7, 5,11, 3,14,10, 0, 6,13通过表5可以看到,在s1中共有4行数据,分别命名为0,1,2,3行,每行有16列,分 别命名为0,1,2,3,14,15列。 现设输入为:d=d1d2d3d4d5d6 令:列=d2d3d4d5,行=d1d6 然后在s1表中查得对应的数,以4位二进制表示,此即为选择函数s1的输出 。 (4)子密钥ki(48 b)的生成算法 开始,由于不考虑每个字节的第8位,des的密钥从64位变为48位,如表6所示,首先56位 密钥被分成两个部分,每部分28位,然后根据轮数,两部分分别循环左移l或2位。表6 密钥置换57,49,41,32,25,17, 9, 1,58,50,42,34,26,18,10, 2,59,51,43,35,27,19,11, 3,60,52,44,36,63,55,47,39,31,23,15, 7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13, 5,28,20,12, 4des算法规定,其中第8,16,64位是奇偶校验位,不参与des运算。故key实际可用 位数只有56位。即:经过密钥置换表的变换后,key的位数由64位变成了56位,此56位分为c 0,d0两部分,各28位,然后分别进行第一次循环左移,得到c1,d1,将c1(28位),d1(28位 )合并得到56位,再经过压缩置换,从而便得到了密钥k0(48位)。依次类推,便可得到k1,k 2,k15。需要注意的是,16次循环左移对应的左移位数要依据表7所示的规则进行。 以上介绍了des算法的加密过程。des算法的解密过程是一样的,区别仅在于第一次迭代 时用子密钥k15,第二次是k14,最后一次用k0,算法本身并没有任何变化。表7循环左移位数轮 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16位数 1,1,2,2,2,2,2,2,1,2, 2, 2,2 , 2,2,12.3算法的编程实现 (一)int des(char *data, char *key,int readlen)参数:1.存放待加密明文的内存指针(长度为readlen,可能经过填充;2.存放用户输入的密钥内存的指针3.待加密明文的长度(8字节的倍数)功能: 生成加密密钥,把待加密的明文数据分割成64位的块,逐块完成16次迭代加密,密文存放data所指向的内存中。(二)int ddes(char *data, char *key,int readlen)参数:1.存放待解密文的内存指针(长度为readlen,可能经过填充;2.存放用户输入的密钥内存的指针3.待解密文的长度( 8字节的倍数)功能: 生成解密密钥,把待解密文分割成64位的块,逐块完成16次迭代解密,解密后的明文存放在data所指向的内存中。(三)int des3(char *data, char *key, int n ,int readlen)参数:1.存放待加密明文的内存指针(长度为readlen,可能经过填充;2.存放用户输入的密钥内存的指针3.用户指定进行多少层加密4.待加密明文的长度(8字节的倍数)功能: 生成加密密钥,把待加密的明文分割成64位的块,把第i-1层加密后的密文作为第i层的明文输入,根据用户指定的加密层数进行n层加密,最终生成的密文存放在data所指向内存中。说明:用户仅仅输入一条密钥,所有的加密密钥都是由这条密钥生成.(四)int ddes3(char *data, char*key, int n ,int readlen)参数:1.存放待解密文的内存指针(长度为readlen,可能经过填充;2.存放用户输入的密钥内存的指针3.用户指定进行多少层解密4.待解密文的长度(8字节的倍数)功能: 生成解密密钥,把待解密文分割成64位的块,把第i-1层解密后的明文作为第i层解密密文输入,根据用户指定的解密层数进行n层解密,最终生成的明文存放在data所指向内存中。说明:用户仅仅输入一条密钥,所有的解密密钥都是由这条密钥生成.(五) int desn(char*data,char*key,int n_key,int readlen)参数:1.存放待加密明文的内存指针(长度为readlen,可能经过填充;2.存放用户输入的密钥内存的指针3.用户指定了多少条密钥4.待加密明文的长度(8字节的倍数)功能: 生成加密密钥,把待加密的明文分割成64位的块,把第i-1层加密后的密文作为第i层加密的明文输入,根据用户指定的加密层数进行n层加密,最终生成的密文存放在data所指向的内存中。说明:这里用户通过输入的密钥条数决定加密的层数,每轮16次迭代加密所使用的加密密钥是由用户自定的对应密钥生成。(六) int ddesn(char *data,char *key,int n_key,int readlen)参数:1.存放待解密文的内存指针(长度为readlen,可能经过填充;2.存放用户输入的密钥内存的指针3.用户指定了多少条密钥4.待解密文的长度(8字节的倍数)功能: 生成解密密钥,把待解密文分割成64位的块,把第i-1层解密后的”明文”作为第i层解的密文输入,根据用户指定的解密层数进行n层解密,最终生成的明文存放在data所指向的内存中。说明:这里用户通过输入的密钥条数决定解密的层数,每轮16次迭代加密所使用的解密密钥是由用户自定的对应。2.4 des算法的应用误区及避开方法des算法具有极高的安全性,到目前为止,除了用穷举搜索法对des算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度 是每秒检测一百万个密钥,则他搜索完全部密钥就需要将近2 285年的时间,可见这是难以实现的。当然,随着科学技术的发展,当出现超高速计算机后,可以考虑把des密钥的长度再增长一些,以此来达到更高的保密程度。由上述des算法介绍可以看到,des算法中只用到64位密钥中的其中56位,而第8,16, 24,64位8个位并未参与des运算,这一点,提出了一个应用上的要求,即des 的安全性是基于除了8,16,24,64位外的其余56位的组合变化才得以保证的。因此 ,在实际应用中,应避开使用第8,16,24,64位作为des密钥的有效数据位,才能保 证des算法安全可靠。对运用des来达到保密作用的系统产生数据被破译的危险,这正是des 算法在应用上的误区。 避开des算法应用误区的具体操作:在des密钥key的使用、管理及密钥更换的过程中,应 绝 对避开des算法的应用误区,即绝对不能把key的第8,16,24,64位作为有效数据位 来对key进行管理,这一点,对应用des加密的用户来说要高度重视。有些网络, 利用定期更换des密钥key的办法来进一步提高系统的安全性和可靠性,如果忽略了上述应用 误区,那么,更换新密钥将是徒劳的,对网络的安全运行将十分危险,所以更换密钥一 定要保证新key与旧key真正的不同,即除了第8,16,24,64位以外其他位数据发生 了变化,这一点是非常重要的。 目前加密算法已被广泛的应用,随着信息化和数字化社会的发展,随着计算机internet的普及,密码学必将在国家安全、经济交流、网络安全及人民生活等方面发挥更大作用 。3软件设计与实现本软件设计和实现的功能主要有两个方面,一是对文件的加密,二是对加密的文件的解密工作。还附带了用户自己设定文件密码,密码验证和各个操作的正确性的提示。所以将加密器分为2个子模块:1文件加密,2文件解密。加密功能待完成网络方面数据流加密节点加密和节点解密。对数据打包封装在网络上进行密文传输。局部文本加密替换功能也是一个研究的方面。密钥的分配和更改需要通过必要的渠道进行传输,密钥的管理也关系到整个加密文件的安全因数。3.1 程序结构图des加密文档加密文档解密选择加密对话框选择保存对话框设置密码确认密码选择加密文件输出文件名选择输入密码图2 程序结构图3.2关键代码的设计3.3开发完成程序调试截图图3加密初始界面这里是加密器开发完成时的,未进行文件加密和解密工作时的图形示范。从图中我们可以看到,完成了相关开发要求。分为2个大的模块,一是文件加密的groupbox1,二是文件解密groupbox2。在初始条件下,本软件的加密控件为不可用的,图中我们用绿色字体标出位置。只有满足选取了加密文件、设定了输出文件名和密码且符合密码长度大于6和两次密码一致,这些的限制条件才能够进行文件的加密。加密完成的内容写入到我门选择的保存文件夹的目录文件中及第二项的输出文件名的路径里面。如果我们
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北鸭脖店行业跨境出海战略研究报告
- 中国供应链物流行业市场深度调研及发展趋势与投资前景研究报告2025-2028版
- 电气工程师资格证书考试的专业知识试题及答案
- 智能灯球企业制定与实施新质生产力战略研究报告
- 大数据在交通安全管理中的应用试题及答案
- 场效应治疗仪(热垫式治疗仪)企业县域市场拓展与下沉战略研究报告
- 2025-2030年中国帐篷市场需求消费现状分析及投资营销态势研究报告
- 2025-2030年中国差别化涤纶聚酯切行业运行模式预测与投资咨询报告
- 熟食品牌连锁店企业制定与实施新质生产力战略研究报告
- 中国专业媒体行业市场发展前景及发展趋势与投资战略研究报告2025-2028版
- 2018年西藏中考化学真题及答案
- 妊娠期糖尿病产后护理
- SJ-T 11841.2.2-2022 显示系统视觉舒适度 第2-2部分:平板显示-蓝光测量方法
- 代收代付协议书模板(2篇)
- 政务新闻摄影技巧培训课件
- 2024年放射工作人员放射防护培训考试题及答案
- 《第七天》读书分享交流会
- 老人疫苗接种健康知识讲座
- 2024年同等学力申硕-同等学力(政治学)历年高频考点试卷专家荟萃含答案
- 感染科业务培训计划
- 铁路工程项目工程量清单
评论
0/150
提交评论