信息安全技术报告 -模板.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华中科技大学 研究生课程考试答题本 《信息安全技术》课程项目报告 考生姓名 考生学号 系、年级 类 别 考试科目 信息安全技术 提交日期 评 分 总分 完整的AES分组与文件的加解密功能程序实现 1 前言 本文论述了AES分组与文件的加解密程序在Window环境下用C++语言的实现。随着计算机科技的发展,DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据加密安全性的要求。鉴于此,美国国家标准技术局(NIST)于1997年元月二日开始着手计划公开征求新一代加密标准(简称AES)。AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范,是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据,它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。 2 程序实现要点 2.1 编程语言和开发环境 编程语言:C++ 开发工具:Visual C++ 6.0 操作系统:Window 7 2.2 AES算法基础 (1) AES算法的设计准则 Rjindael算法的设计原则 Joan Daemen和Vincent Rijmen在设计Rijndael算法时主要考虑以下三点: 1.安全性好,要能抵抗现在所有的已知密码攻击; 2.适应性强,在各种平台上都应具有良好的性能; 3.设计要简单,易懂。 从以上三点可看出Rijndael算法在设计时遵循了安全性原则和易实现性原则。算法整体结构的精心设计确保了算法的安全性、简单性和对称性,确保了算法的易实现性。 为使密码算法能抵抗对密钥的强力攻击,必须保证密钥长度尽可能大。密钥长度要求至少128bist。另外为阻止对分组密码进行统计分析,分组长度必须足够大,使得对密文进行频率统计分析计算上不可行。 (2) AES算法的整体结构 Rjindael采用的是代替/置换网络,即SP结构。每一轮有三层组成:P层为线性层,它包括ShiftRows变换和MixColumns变换,线性混合层确保多轮之上的高度扩散;S层为非线性层,由一个SubBytes变换组成,具体由非线性S-盒构成,起到混淆作用;密钥加层由AddRuondKey变换组成,将子密钥简单的异或到中间状态上,实现密钥与明文或密文的结合。 (3) 行变换和列混合设计 线性变换层,包括ShiftRows和MixColumns变换,其目的是提供雪崩效应,从而起到扩散作用。 MixColumns变换将状态阵列中的一个字节扩散到该字节所在列的每个字节中,ShiftRows变换则将原来处在同一列上的字节扩散到不同的列中。Rjindael算法P层的设计起到了很好的扩散作用,提高了抵抗差分密码攻击能力,这种设计同时也可有效抗击截短差分攻击和Square攻击。 (4) 字节替换设计 AES 定义了一个 S 盒,State 中每个字节按如下方式映射为一个新的字节:把该字节的高 4 位作为行值,低4 位作为列值,然后取出 S 盒中对应行和列的元素作为输出。 图2-1 S盒映射到State S 盒是一个由 16×16 字节组成的矩阵,包含了 8 位值所能表达的256种可能的变换。S盒按以下方式构造: 1)逐行按升序排列的字节值初始化 S 盒。第一行是 {00},{01},{02},…,{0F} ;第二行是 {10},{11},…, {1F} 等。在行 x 和列 y 的字节值是 {xy}。 2) 把 S 盒中的每个字节映射为它在有限域GF(28)中的逆。GF 代表 伽罗瓦域,GF(28)由一组从0×00 到0×ff的 256个值组成,加上加法和乘法。GF(28)=Z2[X]/( x8+x4+x3+x+1)。{00} 被映射为它自身 {00}。 3)把 S 盒中的每个字节记成(b7,b6,b5,b4,b3, b2,b1,b0)。对 S 盒中每个字节的每位做如下矩阵方式所描述变换: 图2-2 S盒变换 (5) 轮密钥加设计 轮函数实现的功能是把轮密钥加到状态中去。它执行了16个并行的把密钥加到状态中的运算。加法是通过异或运算来完成的: 图2-3 轮密钥加 其中,k矩阵是一个轮密钥,并且每一轮都有一个唯一的密钥。 2.3 AES算法详细描述 2.3.1 AES算法描述 Rjindael算法是一

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档