- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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算法是一
您可能关注的文档
- 保持成功的七个习惯.ppt
- 保温层界面处理技术.ppt
- 保温材料中的保温层种类介绍分析.pptx
- 保税区道路施组.doc
- 你不回家了.ppt
- 保险公司-四大人群增员话术.ppt
- 保险公司创说会串场片.pptx
- 保视通产品-标准版.ppt
- 保鲜技术发展趋势.ppt
- 保温验评及记录.doc
- 全国青少年(毒品预防教育)知识考试题库与答案 .pdf
- 2023年山东胶州市领军计划自主招生历史试题真题(含答案详解) .pdf
- 【人教版八年级生物】第六单元 第二章 认识生物的多样性 .pdf
- 冀人版-第三单元 电(提升卷)-四年级科学上册单元培优进阶练.docx
- 新郑市事业单位统考真题 .pdf
- 冀人版-第三单元动物的生长与繁殖(单元测试)四年级下册科学.docx
- CLCN4基因变异相关癫痫的临床表型及基因变异特点 .pdf
- 【《“双减”背景下小学中年级语文自主阅读策略探究》6500字】 .pdf
- 高一语文开学第一课+课件+2024-2025学年统编版高中语文必修上册 .pdf
- 密山市事业单位统考真题 .pdf
文档评论(0)