2022年AES加密算法及其应用分析研究.docx

上传人:Che****ry 文档编号:12785361 上传时间:2022-04-26 格式:DOCX 页数:18 大小:289.63KB
返回 下载 相关 举报
2022年AES加密算法及其应用分析研究.docx_第1页
第1页 / 共18页
2022年AES加密算法及其应用分析研究.docx_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《2022年AES加密算法及其应用分析研究.docx》由会员分享,可在线阅读,更多相关《2022年AES加密算法及其应用分析研究.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品学习资源网络安全课程报告课题名称: AES 加密算法及其应用争辩姓 名:王安峰学 院:运算机科学与工程学院系: 运算机科学与技术专 业: 运算机科学与技术学 号: 090308207指导老师: 乐德广提交日期: 2021/12/25AES 加密算法及其应用争辩王安峰, 090308207,08 计科 2 班(常熟理工学院 运算机科学与工程学院,江苏常熟 215500 )摘要: 20 世纪 70 岁月中期美国人开创的DES(数据加密标准)可以说经受了近1/4 个漫长而辉煌的岁月,并逐步由富强走向衰落;它之所以走向衰落,是由于20 世纪末显现了差分密码分析及线性密码分析;美国国家和标准技术争辩

2、所(NIST )于 1997 年初发起并组织了在全世界广泛征集新的加密标准算法的活动,同时要求每一种候选算法应当支持128、192 和 256 比特的密钥长度;经过 3 年多时间的反复较量,对首轮入选的15 种不同算法进行了广泛的评估和测试,选择出 5 种算法进入决赛;最终,由比利时的密码专家Joan Daemen 及 Vincent Rijmen 所提出的加密算法 Rijndeal 幸运的赢得了胜利,成为21 世纪新的高级加密标准算法AES ;1 本文主要分析AES 加密算法及其应用的争辩,在基于MFC基础上对该算法进行简洁实现,接受面对对象的C+ 语言,模拟加密及其解密过程;分析该算法的安

3、全性能和广泛应用;关键词: AES加密算法;基于 C+;加密;解密; Rijndeal算法; MFC类;欢迎下载精品学习资源1 引言信息社会的兴起,给全球带来了信息技术飞速进展的契机:信息技术的应用,引起了人们生产方式、生活方式和思想观念的庞大变化,极大地推动了人类社会的进展和人类文明的进步;随着人类进入学问经济时代,网络和信息已主见成为人们从事社会活动的基本工具,但是,由于运算机和网络系统的发放性带来的信息与信息系统的安全问题也拓展到前所未有的程度;日益增多的对信息系统的非法入侵和破坏活动正在以惊人的速度在全世界扩散,给各国信息系统带来庞大的经济缺失和安全威逼;随着信息技术的不断进展,信息安

4、全,网络安全的概念正在与时俱进,逐步从早期的通信保密进展到关注信息的保密、完整、可用、可控和不行否认的信息安全;信息与信息 系统,网络与网络系统安全并重,保证信息系统能够安全、牢靠、不间断的运行,以供应 必要的服务; 6 近年来,我国在进展学问经济、建设信息基础设施以及中国互联网的建设和应用方面都有相当大的进步;运算机网络的广泛应用已经对经济、文化、训练、科学的 进展和人类生活质量的提高产生了重要影响,但也带来了一些新的问题;信息系统的的安 全总是面临着日益严肃的威逼;一方面是由于互联网的开放性及安全性不足,另一方面是 众多的攻击手段;为了保证信息系统的安全,需要完整的安全保证体系,应具有爱惜

5、功能、检测手段、工具的反应以及事故复原才能;因而,除了不断完善相应的法律和监督措施,我们更需要自我爱惜;理论和事实都说明,密码技术是一种经济、有用而有效的方法,这也是密码技术得到快速进展和广泛应用的缘由;2 密码学2.1 密码学的起源和进展密码学( cryptology )是争辩信息系统安全保密的科学,包括密码编程学和密码分析学;密码编程学(Cryptography ),主要争辩对信息进行编码,实现对信息的隐匿;密码分析学( Cryptanalytics )主要争辩加密消息的破解或消息的伪造;7 今日,对加密技术的一些元素实现拜望把握、验证、消息完整性和不行抵赖性时,都影响着信息的安全性;在第

6、一次世界大战之前,密码技术很少见诸于世,直到1918 年, WilliamF.Friedman的论文“重合指数及其在密码学中的应用”(The Index of Coincidence and Applications in Cryptography )发表时,情形才有所好转;1949年 , 香 农 ( ClaudeShannon ) 的 论 文 “ 保 密 系 统 的 通 信 理 论 ” ( TheCommunicationTheory of Secrecy Systems)在贝尔系统技术杂志上发表,奠定了密码学理论基础; 51967 年,戴维;卡恩( David Kahn),收集整理了第一次

7、世界大战和其次次世界大战的大量史料,创作出版了破译者(The Coddebreakers),为密码技术的公开化、大众化拉开了序幕;此后,密码学的文献大量涌现;20 世纪 70 岁月,是密码需进展的重要时期,有两件大事发生:其一,美国国家标准局(NBS ,即现在的国家标注与技术争辩所NIST )开头数据加密标准( Data EncryptionStandard)的征集工作; 1975 年 3 月 17 日, NBS 在 Federal Register 上公布了一个候选算法,1976 年 11 月 23 日,该算法被正式确认为联邦标准DES,并授权在政府通信中使用,此后,DES 被多个部门和标准

8、化机构接受为标准,甚至成为事实上的归家标准, 1998 年正式退役;其二, 1976 年 11 月, Differ与 Hellman的革命性论文“密码学新方向”(New欢迎下载精品学习资源direction in crypotography )发表,开创了公开密钥密码学的新领域,成为现代密码学的一个里程碑; 1978 年, RLRivest , AShamir 和 LAdleman 实现了 RSA 公钥密码体制,它成为公钥密码的杰出代表和事实标准;1997 年 1 月,美国国家标准和技术探究所(NIST )发布公告征集新的加密标准,即AES;新的加密标准将取代旧的数据加密标准(DES)和三重

9、DES 而成为一个(美国)联邦信息处理标准( FIPS); 12.2 对称密码学简介在 1976 年以前,所谓的密码学就是指对称密钥密码系统,该系统加密与解密是用同一把密钥;此类算法被运用的历史悠久,从一般的侦探小说里的各种简洁的语音转换和跳选的加密方式,到目前最被广为运用的DES 密码算法以及美国于2000 年推动的下一代密码算法 AES ( Advance EncryptionStandards)都属于此类密码系统;此类密码系统的优点为 其加解密速度较快,远高于公开密钥密码系统;分组密码算法涉及要遵循Shannon 1949 年提出的纷乱原就和扩散原就;7 扩散( Diffusion )是

10、明文的统计结构被扩散消逝到密文的长程同经济特性,使得明文和密文之间的统计关系尽量复杂;纷乱(Confusion )是使得密文的统计特性与密钥的取值之间的关系尽量复杂,以至于这种统计特性对密码分析者来说是无法利用的7 ;所谓公钥密码密钥密码技术就是加密和解密使用不同的密钥的密码技术,又成为非对称密钥密码技术 8 ;它使用一堆密钥,一个归发送者,一个归接受者;3 高级加密标准 AES3.1 高级数据加密标准1995 年,美国国家标准技术所开头查找一种新的、更强有力的加密算法;查找的结果最终成为了高级加密标准,即AES ;2 美国政府鉴于破密技术的快速演进,虽然到目前为止并无一样命性的攻击方法可以直

11、接破解DES(目前的破解方法大多针对DES 密钥长度太短来破解),但是这些进展已直接影响了公开征求下一代的密码算法,用以取代DES 密码系统的安全性,所以在DES 算法;1998 年对世界如同征集 DES 候选方案一样, NIST 也提出了几项重要的条件,算法必需是:( 1) 无类别的;( 2) 公开揭示的;( 3) 无特权,可世界范畴使用的;( 4) 对称密码算法,每块128 位;( 5) 可使用的密钥长度为128、192 以及 256 位;正文部分(五号宋体) 候选算法的标准是:( 1) 安全性;( 2) 开销;( 3) 算法和实现特性;经过其次届AES 会议后一段相对寂静的时期,直到NI

12、ST 于 1999 年 8 月公布入围的 5 个候选方案,它们是(依字母排序)MARS 、RC6、Rijndeal 、Serpent 和 Twofish ;1NIST 指出,从密码学的角度,这5 个算法都找不到弱点,之所以最终选择Rijndeal 是由于它是安全性、性能、效率、实现便利性和灵敏性的正确组合;特殊是由于以下原因:( 1) 在各种运算机的软硬件中性能良好( 2) 在反馈和无反馈模式中性能良好;欢迎下载精品学习资源( 3) 密码设置时间精确;( 4) 密码极为灵敏、快速;( 5) 不需要太多记忆;( 6) 在电源攻击和定时攻击时有极好的防护;2001 年 Rijndeal算法正式被美

13、国政府接受,作为政府数据传输和储备的爱惜手段;NIST做出这一准备很大程度上依靠于对算法的公开分析;3.2 AES加密算法实现过程分析AES 中的操作均是以字节作为基础的,用到的变量也都是以字节为基础;State 可以用44 的矩阵表示; AES 算法结构对加密和解密的操作,算法由轮密钥开头,并用Nr 表示对一个数据分组加密的轮数 加密轮数与密钥长度的关系如表1 所示 ;AES 算法的主循环State 矩阵执行 Nr1轮迭代运算,每轮都包括全部4 个阶段的代换,分别是在规范中被称为 SubBytes 字 节 替 换 、 ShiftRows 行 位 移 变 换 、 MixColumns 列 混

14、合 变 换 和AddRoundKey , 由于外部输入的加密密钥K 长度有限,所以在算法中要用一个密钥扩展程序 Keyexpansion 把外部密钥 K 扩展成更长的比特串,以生成各轮的加密和解密密钥;最终执行只包括 3 个阶段 省略 MixColumns 变换 的最终一轮运算;表 3.1 AES参数密钥长度 bits128192256明文分组长度 bits128128128轮数101214每轮密钥长度 bits128128128扩展密钥长度 bytes1762062403.2.1 轮的数目的设定当前的密码分析争辩说明,迭代型分组密码抗击密码分析攻击的才能随轮数的增加而增加;我们通过考虑抗击捷

15、径攻击来确定轮的数目,由于捷径攻击明显比穷尽密钥搜寻攻击更有效;在此基础上,又增加了一个适当的安全余量;对分组长度和密钥长度均是128 比特的Rijndael ,我们尚未发觉能够对具有六轮以上的简化版本实施的捷径攻击,又增加4 轮作为安全余量;这是一个保守的做法,由于:(1) Rijndael 中两轮即可供应以下意义上的“全扩散 ”;每个状态比特均依靠与两轮之前的全部状态比特,或者一个状态比特的转变均可能对两轮之后的半数状态比特产生影响;在增加 4 轮可以看作是在密码的开头和终止时增加了一个“全扩闲逛骤 ”;Rijndael 轮变换的高扩散性归功于它在全部状态比特上的均匀结构;对于所谓的Fei

16、stel 密码,没轮仅对半数的状态比特进行作用,三轮后才可以获得全扩散;在实际中,这种密码一般接受四轮或更多;(2) 为了攻击密码的第n+1 或 n+2 轮,信任密码分析,差分密码分析和截短差分析攻击通常接受一个直到n 轮的传播轨迹;渗透攻击也是如此,它利用一个四轮的传播结构来攻击六轮;在这方面,我们增加四轮实际上使得找到一个传播轨迹所遍历的轮数增加一倍;对于具有较长密钥的Rijndael 版本,密码密钥每增加32 比特,伦德数目就增加一轮;缘由如下:欢迎下载精品学习资源(1) 主要目的之一是是比穷举密钥搜寻攻击更有效的捷径攻击失效;由于穷举密钥搜寻的工作量随密钥长度的增加而增加,而捷径攻击对

17、具有更长密钥的密码的攻击效率不高;(2) (部分的)已知密钥和相关密钥攻击利用了密码密钥中的比特信息,或者具有利用不用密码密钥的才能;假如增加密码密钥的长度,密码分析者的搜寻范畴也将随之增加;关于具有更长密钥的Rijndael的安全性争辩文献已经说明,这一策略带来了足够的安全余量31 , 36, 62 ;而对具有较长分组的Rijndael 版本,分组长度每增加32 比特,轮的数目就增加一轮;理由如下:(1) 假如密码的分组长度大于128 比特,就接受三轮来实现全扩散,这是由于轮变换的扩散才能将随分组长度的增加而降低;(2) 更大的分组长度将增加可能显现的模式的选取范畴,这些模式可用在某几轮的输

18、入输出上;这一附加的灵敏性可使攻击所必需处理的范畴扩大一轮或者几轮;对于具有更大分组长度256 比特的 Rijndael 版本,我们已经发觉,即使将攻击的处理范畴扩大一轮也难以实现;因此,这是一个保守的余量;欢迎下载精品学习资源表 3.2 列出了作为Nb 和 N k 函数的Nt 值;对于 AESNb 取固定值为 4;对于 128 比特欢迎下载精品学习资源欢迎下载精品学习资源的密钥(Nk =4),Nt =10 ;对于 192 比特的密钥(Nk =6 ),Nt =12;对于 256 比特的密欢迎下载精品学习资源钥 Nk =8 , Nt =14.欢迎下载精品学习资源表 2 对不用的Nb (Nb =分

19、组长度 /32)和Nk (Nk =分组长度 /32)轮的个数值Nt欢迎下载精品学习资源NkNb表3.24567841011121314511111213146121212131471313131314814141414143.2.2 轮变换轮变换 Round 由 4 个变换组成,其中的每个变换称为步骤,如列表3.3 所示;该密码的最终一轮FinalRound 稍有不同,也如列表3.3 所示;在这个列表中,变换(Round ,SubBytes, ShiftRows,)作用在指针( State, ExpndedKeyi )所指向的数组上;简洁验证:如将 Round 变换中的 MixColumns步

20、骤去掉,就它等价于FinalRound 变换;这些步骤以及每一步所接受的设计准就将在下面的各节中详细争辩;除了详细到可不的准就以外,欢迎下载精品学习资源仍接受了以下两个通用的设计准就:1. 可逆性; Rijuael 轮变换的结构要求全部步骤都是可逆的;2. 简洁性;我们更倾向于使用简洁的组件,而防止负责组件;1列表 3.3 Rijufael 的轮变换Round ( State, ExpandedKeyi )SubBytes State ;ShiftRows State ;MixColumns State ;AddRoundKey State , ExpandedKeyi ;欢迎下载精品学习资源

21、FinalRound State , ExpandedKeyNr ;欢迎下载精品学习资源SubBytes States ;ShiftRows States ;欢迎下载精品学习资源AddRoundKEY States, ExpandedKeyNr ;欢迎下载精品学习资源3.2.3 密钥扩展 Key Expansion 为了防止已有的密码分析攻击,AES 使用了与轮相关的轮常量Rconj ,是一个字, 这个字的右边三个字节总为0防止不同轮中产生的轮密钥的对称性或相像性;AES 在加密和解密算法使用了一个由种子密钥字节数组生成的密钥调度表,AES 规范中称之为密钥扩展例 KeyExpansion ;

22、密钥扩展例程从一个原始密钥中生成多重密钥以代替使用单个密钥大大增加了比特位的扩散,在AES 密钥扩展算法的输入值是4 字密钥,输出是一个44 字的一一维线性数组;这足以为初始轮密钥扩展例程阶段和算法中的其他10 轮中的每一轮供应 16 字节的轮密钥;欢迎下载精品学习资源通过生成器产生Nr1 轮轮密钥,每个轮密钥由Nb 个字组成,共有Nb Nr1 个字欢迎下载精品学习资源欢迎下载精品学习资源Wi , i=0 , 1, ,Nb Nr1) 1;欢迎下载精品学习资源欢迎下载精品学习资源在加密过程中,需要Nr1个子密钥,需要构造4Nr1) 个 32 位字; Rijndael 的密欢迎下载精品学习资源钥扩

23、展方案的伪码描述如下:KeyExpansionbyte key4*Nk,word wNb*Nr+1,Nk/Nk 代表以 32 位字为单位的密钥的长度,及Nk= 密钥长度 /32 begini=0 whileINkwi=wordkey4*i, key4*i+1, key4*i+2, key4*i+3 i=i+1end whilei=Nk whileiNb*Nr+1word temp=wi-1if I mod Nk=0 temp=SubWordRotWordtempxor Rconi/Nk else if Nk=8 and I mod Nk=4 temp=SubWordtempend ifwi=w

24、i-Nk xor temp i=i+1end while end其中, key 和 w 分别用于储备扩展前,扩展后的密钥;SubWord 、RotWord 分别是与 S盒 的 置 换 和 以 字 节 为 单 位 的 循 环 移 位 ; Rconi RC i , 00 ,00, 00 ,RC 001 , RCi 2 RCi1 ;前 10 个轮常数 RCi 的值(用十六进制表示)如表 3.4 所示,其对应的 Rconi 如表 3.5 所示;i1234表 3.4 RCi5678910欢迎下载精品学习资源RCi01020408102040801b36表3.5RconiI12345Rconi010000

25、0002000000040000000800000010000000I678910Rconi2000000040000000800000001b00000036000000输入密钥直接被复制到扩展密钥数组的前四个字中,得到w0 、 w1 、w2 、w3 ;然后每次用四个字填充扩展密钥数组余下的部分;在扩展密钥数组中,wi 的值依靠于wi-1 和 wi-4 ( i4); 1对 w数 组 中 下 标 不 为 4 的 倍 数 的 元 素 , 只 是 简 单 地 异 或 , 其 逻 辑 关 系 为 :w i wi1wi4 (i 不为 4 的倍数)对 w 数组中下标为 4 的倍数的元素,接受如下的运算方

26、法:欢迎下载精品学习资源( 1) 将 一 个 字 的 四 个 字 节 循 环 左 移 一 个 字 节 , 即 将 字b0, b1,b2, b3 , 变 为欢迎下载精品学习资源b0, b1,b2, b3 , ;( 2) 基于 S 盒对输入字中的每个字节进行S 代替:( 3) 将步骤 1 和步骤 2 的结果再与轮常量Rconi 相异或;3.2.4 字节替换 SubBytes步骤 SubBytes 是 Rijndeal 密码中惟一的非线性变换;1AES定义了一个 S 盒, State 中每个字节依据如下方式映射为一个新的字节:把该字节的高4 位作为行值,低4 位作为列值,然后取出S 盒中对应行和列的

27、元素作为输出;例如,十六进制数84 ;对应 S 盒的行是 8 列是 4, S 盒中该位置对应的值是5F ;S 盒是一个由 16x16 字节组成的矩阵,包含了8 位值所能表达的256 种可能的变换; S 盒依据以下方式构造:(1) 逐行依据升序排列的字节值初始化S 盒;第一行是00 , 01 , 02 , ,OF ;其次行是 10 , l1 , , 1F 等;在行 X 和列 Y 的字节值是 xy ;欢迎下载精品学习资源(2) 把 S 盒中的每个字节映射为它在有限域GF2k 中的逆; GF 代表伽罗瓦域,欢迎下载精品学习资源欢迎下载精品学习资源GF 28 由 一 组 从 0x00到0xff的256

28、个 值 组 成 , 加 上 加 法 和 乘 法 ;欢迎下载精品学习资源GF 28 Z 2 X ;00 被映射为它自身 00 ;欢迎下载精品学习资源 x8x4x3x1欢迎下载精品学习资源(3) 把 S 盒中的每个字节记成b8, b7 ,b6 ,b5, b4 ,b3, b2, b1 ,b0 ;对 S 盒中每个字节的每欢迎下载精品学习资源位做如下变换:欢迎下载精品学习资源bibibi4) mod 8bi5) mod8bi6) mod 8bi7) mod8ci欢迎下载精品学习资源欢迎下载精品学习资源上式中ci是指值为63字节C第i位,即欢迎下载精品学习资源欢迎下载精品学习资源c8 , c7 , c6

29、, c5 ,c4 ,c3 , c2 , c1, c0 01100011;符号 表示更新后的变量的值;AES 用以欢迎下载精品学习资源下的矩阵方式描述了这个变换:b010001111b01b111000111b11b211100011b20b311110001b30b411111000b40b501111100b51b600111110b61b700011111b703.2.5 行位移变换 ShiftRows State的第一行字节保持不变,State的其次行字节循环左移一个字节,State 的第三行字节循环左移两个字节,State 的第四行循环左移三个字节;变化如图1 所示;欢迎下载精品学习资

30、源ShiftRows 之前1405dab7810c1fd10c1fd78319113f113f319280b2a4545280b2aShiftRows 变换ShiftRows 之后1405dab欢迎下载精品学习资源图 1 ShiftRows 变换3.2.6 列混合变换 MixColumns 列混合变换是一个替代操作,是AES 最具技巧性的部分 ,该步骤的设计准就主要是四个方面,包括维数、线性性、扩散性和在8 位处理器上的性能; 1 它只在 AES 的第 0, 1, , Nr 一 1 轮中使用,在第 N r 轮中不使用该变换;乘积矩阵中的每个元素都是一行和欢迎下载精品学习资源一列对应元素的乘积之

31、和;在MixColumns变换中,乘法和加法都是定义在GF28 上的;欢迎下载精品学习资源欢迎下载精品学习资源bState 的每一列 bi , j 1=0 , ,3; J=0, ,L 被懂得为GF 28 上的多项式,该多项式与欢迎下载精品学习资源欢迎下载精品学习资源常数多项式axa x 3a x2a1 xa0 相乘并模M xx 41 约化;欢迎下载精品学习资源欢迎下载精品学习资源32这个运算需要做GF28 上的乘法;但由于所乘的因子是三个固定的元素02、 03、欢迎下载精品学习资源01 , 所 以 这 些 乘 法 运 算 仍 然 是 比较 简 单 的 ( 留意 到 乘 法 运 算所 使 用 的

32、 模 多项 式 为843m xxxxx1);设一个字节为b=b7b6b5b4b3b2b1b0 ,就b 01; =bb 02 =b6b5b4b3b2b1b00+000b7b70b7;b7b 03 =b 01;+b 02(请留意,加法为取模2 的加法,即逐比特异或)写成矩阵形式为:b 002030101a0b101020301a1b 201010203a2b 303010102a33.2.7 密钥加变换 Add RoundKey Add RoundKey称为轮密钥加变换,128 位的State 按位与 128 位的密钥XOR :欢迎下载精品学习资源b0 j , b1 j , b2 j ,b3 j

33、b0 j , b1 j , b2 j , b3 j k0 j , k1 j , k2 j , k3j 对 j=0 , , L-1 轮密钥加变欢迎下载精品学习资源换很简洁,却影响了State 中的每一位;密钥扩展的复杂性和AES 的其他阶段运算的复杂性,却确保了该算法的安全性;3.3 AES解密算法分析解 密 算 法 可 通 过 直 接 利 用 步 骤 InvSubBytes 、 InvShiftRows 、 InvMixCloumns和AddRoundKey 的逆并倒置其次序而得到,此算法称为直接解密算法;在这个算法中,不仅步骤本身与加密不同,而且步骤显现的次序也不相同;为了便于实现,通常将惟

34、一的非线性步骤( SubBytes)放在轮变换的第一步;Rijndael 的结构使得有可能定义一个等价的解密算法,其中所使用的步骤次序与加密相同,只是将每一步改成它的逆,并转变密钥编排方案;留意这种结构上的一样性不同于接受Feistel 结构的许多密码中的组件和结构的一样性, IDEA 也是一样;在 8 位处理器平台上接受等价解密算法没有多少好处,因此接受直接解密算法; InvMixCloumns步骤中,解密过程在结构上和加密相像,不同之处在于调用了InvMixCloumns而不是MixColumns ;而 MixCloumns的系数只能为01、 02 、 03 ,而InvMixCloumns

35、的系数只能是09、 0E、0B、和 0D;欢迎下载精品学习资源4AES 基于 MFC 类的实现4.1 MFC 简介MFC 是一个庞大的类库,它是C+ 类结构的扩展;使用MFC 将显著简化Windows 程序的开发; MFC 封装了大多数 Windows API 函数;使程序员开发Windows 程序时候能充分发挥C+ 语言的优越性; MFC仍可以供应其他有用的类,并使以面对对象方式创建的Windows 应用程序变的相当简洁;微软仍供应了位于Windows API 之上的 C+ 库,它使程序员的工作更加简洁,这个库就是 MFC 库,它的主要优势在于效率,MFC 大大削减了创建Windows 程序

36、必需编写的代码数量,它仍有保留了C+ 编程中常见的全部优点,如继承和封装;使用MFC 时,编写代码就是要创建必需的用户界面控件和定制他们的外观,仍要编写当用户操作这些控件时做出响应的代码;MFC 类库很大,版本4.0 的类库包含了 200 个以上的不同的类,当然,在一个典型的MFC 程序中是不会调用全部的这些类的;编写某个特定的软件可能只需要用到十个左右的不同的MFC类; MFC的类库分为六个类别,即:程序结构;可视对象;一般目的;集合; OLE2 和数据库;大多数MFC 的类是由一个名为CObject 的基类派生而来的,其次MFC 类库中处理程序的窗口图形简洁;用 MFC 创建一个应用程序,

37、可以使用MFC 类库中的类,但更多的时候,是要从已存在的类派生出新类;在派生出的新类中创建新的成员函数,使新类的成员函数在程序中实现所需的功能;4.2 Visual C+ 概述Visual C+ 是 Microsoft公司于 1993 年推出的一个可视化集成开发环境(integrated development environment,IDE );自 1998 年 Microsoft公司推出功能完善的Visual C+6.0 后,越来越多的程序员选用Visual C+ 作为软件开发工具; Visual C+ 是一个功能强大的可视化软件开发工具,它不仅是一个C+ 编译器,仍是一个基于Window

38、s 操作系统的集成开发环境;VisualC+ 由许多组件组成,包括编辑器、编译器、调试器以及程序向导AppWizard 、类向导 ClassWizard 等,它仍支持面对对象程序设计,并能够使用强大的微软基础类库 MFC,充分表达了微软的技术精华;Visual C+ 开发出来的软件具有稳固性好、可移植性强的特点; Visual C+ 源代码编辑器功能强大,使用特殊便利;供应了语句自动完胜利能,编辑输入源程序时能自动显示当前对象的成员变量和成员函数,并说明函数的参数类型;4.3 FileEncryptor加密安全爱惜FileEncryptor 在设计中综合应用了MFC开源的类库,用 C+语言编写

39、的一款基于AES的加密软件,该软件支持Windows 7/Vista/XP ,可以对 MicrosoftOffice 文档进行加密,除了接受 Rijndeal 算法外,为了保证安全性,综合了RSA 算法,提高了该软件的安全性,增强了可行度和密码破解的复杂性,给文档爱惜供应了更高的安全级别;欢迎下载精品学习资源FileEncryptor 截图4.3.1 FileEncryptor 加密原理与技术FileEncryptor主要分为三个部分:一部分是Gen private/publickey, 用来产生公钥和私钥,用以模拟传输过程中的加解密,但是公钥以及私钥的安全性爱惜仍有待争辩,要爱惜好公钥及私钥

40、的安全性;假如已经生成公钥或私钥,那么在加密过程中可省略这一步;第 二个部分是Encryption ,该部分用来给文件加密,加密前先添加公钥,点击添加按钮,然后添加进生成的公钥,在添加进公钥后点击input 后面的按钮,选择要加密的文件,然后该软件会自动生成加密后的文件在Output 一栏,点击此栏目后面的按钮,可以设置加密文件的储备路径;最终点击加密按钮“Encrypt ”,可以将选择的文件加密;第三个部分是Decryption ,用以解密文件,使用前,先要加载私钥,然后在Input 一栏选择需解密的文件,然后会自动生成解密的文件路径,可以依据个人需要选择储存的路径,最终点击解密按钮“ De

41、crypt ”,即可解密原先加密的文件;在软件底部,有“QUIT ”按钮,可以选择在此点击退出程序,也可以选择直接关闭该软件;用户在使用该软件时,需要储存好自己的公钥和私钥,由于公钥和私钥在此是以明文状态存在的,所以公钥及私钥的安全性也影响了该软件的加密成效,在此只做演示使用,对于一般的需求级别不是特殊高的用户可以接受;欢迎下载精品学习资源4.3.2 FileEncryptor 示例FileEncryptor 示例图4.3.3 FileEncryptor 加密成效图FileEncryptor 加密成效图5. AES 应用争辩5.1 概述AES 的安全性能及实现效率比较高,它具有密钥灵敏性及较高的可实现性,此外,Rijndeal算法也给出了正确查分特点概率,进行了算法抗击差分密码分析以及线性密码分析才能,内存寻求低,利于软硬件的执行;无论使用反馈模式仍是无反馈模式,Rijndeal 在广泛的运算环境中的硬件和软

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁