AES 文件加密解密 课程设计报告

合集下载

《信息安全、DES和AES加密解密》课程设计

《信息安全、DES和AES加密解密》课程设计

信息安全概论院(系):专业班级:姓名:学号:日期:地点:指导教师:成绩:一、课程设计目标1.通过信息安全课程设计,能够增强我们对信息安全的认识,更加牢固的掌握信息安全概论相关知识。

2.综合运用学习到的理论知识,提高实践能力。

3.通过小组讨论形式对任务进行分解,提出实现方案,制定计划,小组成员分工协作,共同完成课程设计题目,培养团队合作能力。

4.运用熟悉的程序语言编写程序,增强对程序语言的运用。

5.课程设计期间,通过对问题的分析查找资料,培养资料查询以及运用现代信息技术获取相关信息并进行归纳总结的基本能力。

6.与同学讨论,互相学习,提升个人学习能力。

二、课程设计内容1课程设计的内容1.1确定课程设计方向:经过小组成员的商讨,确定了使用c#语言,编写一个对文件进行加密加密的小程序,运用DES算法,实现对文件的加密解密后,再添加一些小的功能,用AES算法,实现对字符串的加密解密。

1.2 查阅资料:通过查找文件加解密的资料以及查阅了相关的加密解密算法,学习了对文件加密解密的基本思路,与实现方法。

1.3界面设程序计:设计一个整体界面,有三个按钮,其中两个分别实现对应文件的加密解密和字符串的加密解密,还有一个退出程序功能按钮。

1.4程序设计:有了思路和方法,接着就借助c#语言分别实现对文件的加密解密,以及对字符串的加密解密小程序。

1.5 后期调试:程序实现后,对其进行调试,发现不合适的地方及时纠正。

1.6完成课程设计:写课程设计报告,完成课程设计。

2原理介绍2.1 DES加密原理DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。

这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。

使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。

DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。

aes程序课程设计

aes程序课程设计

aes程序课程设计一、课程目标知识目标:1. 让学生掌握AES算法的基本原理,理解其加密和解密过程。

2. 使学生了解AES算法的密钥生成、扩展和管理的相关知识。

3. 帮助学生掌握AES算法在不同模式(如ECB、CBC等)下的应用和特点。

技能目标:1. 培养学生运用编程语言(如Python、C等)实现AES算法的能力。

2. 让学生学会分析AES算法的安全性,并能针对实际场景选择合适的加密模式。

3. 提高学生解决加密与解密过程中遇到的实际问题的能力。

情感态度价值观目标:1. 培养学生对信息安全领域的兴趣,激发他们主动探索加密技术的热情。

2. 增强学生的团队合作意识,使他们能够在项目实践中相互协作、共同进步。

3. 引导学生树立正确的网络安全观念,认识到保护数据安全的重要性。

课程性质:本课程为计算机科学和信息安全的实践性课程,强调理论与实践相结合,注重培养学生的动手能力和实际应用能力。

学生特点:学生具备一定的编程基础和信息安全知识,对加密技术有一定了解,但可能对AES算法的具体实现和应用不够熟悉。

教学要求:结合学生特点和课程性质,采用案例教学、项目驱动等方法,引导学生通过实践掌握AES算法的相关知识,提高他们在实际场景中解决问题的能力。

同时,注重培养学生的团队合作精神和网络安全意识。

通过本课程的学习,使学生能够达到上述课程目标,为后续相关课程和实践打下坚实基础。

二、教学内容1. AES算法基本原理:包括AES算法的历史背景、设计目的和基本结构,重点讲解AES算法的轮函数、密钥扩展等核心概念。

相关教材章节:第3章“对称加密算法”中的第2节“AES算法”。

2. AES算法编程实现:通过讲解和示范,让学生学会使用编程语言实现AES算法,涵盖ECB、CBC等模式。

相关教材章节:第4章“AES算法编程实践”中的第1节“AES算法的编程实现”。

3. AES算法安全性分析:分析AES算法的安全性,探讨可能的攻击方法,如暴力破解、字典攻击等,并介绍防范措施。

AES加密算法实验报告

AES加密算法实验报告

实验报告学号:姓名:专业:班级:第 10 周static void SubBytes(unsigned char p[16]);static void inSubBytes(unsigned char p[16]);static void ShiftRows(unsigned char e[]);static void inShiftRows(unsigned char e[]);static void MatrixToByte(unsigned char e[]);static void inMatrixToByte(unsigned char e[]);static unsigned char FFmul(unsigned char a, unsigned char b);static void KeyAdding(unsigned char state[16], unsigned char k[][4]);static void KeyExpansion(unsigned char* key, unsigned char w[][4][4]);~plaintext();private:};#include""using namespace std;static unsigned char sBox[] = {};/定义加密S盒/unsigned char insBox[256] ={};//定义解密S盒plaintext::plaintext(){}void plaintext::createplaintext(unsigned char a[])//创建明文{int i = 0;unsigned int p[16];for (int j = 0; j<200; j++){if (a[j] == 0){break;}}for (; i<16; i++){p[i] = a[i];a[i] = a[i + 16];}}void plaintext::SubBytes(unsigned char p[16])//字节变换函数{unsigned char b[16];for (int i = 0; i<16; i++){b[i] = sBox[(int)p[i]];}}void plaintext::inSubBytes(unsigned char p[16])//逆字节变换函数{unsigned char b[16];for (int i = 0; i<16; i++){b[i] = insBox[(int)p[i]];}}void plaintext::ShiftRows(unsigned char e[])//行移位变换函数{unsigned char t[4];for (int i = 1; i<4; i++){for (int x = 0; x<4; x++)t[x] = e[x + i * 4];for (int y = 0; y<4; y++)e[(y + 4 - i) % 4 + i * 4] = t[y];}}void plaintext::inShiftRows(unsigned char e[])//逆行移位变换函数{unsigned char t[4];for (int i = 1; i<4; i++){for (int x = 0; x<4; x++)t[x] = e[x + i * 4];for (int y = 0; y<4; y++)e[(y + i) % 4 + i * 4] = t[y];}}void plaintext::MatrixToByte(unsigned char e[])//列混合变换函数{unsigned char t[4];int r, c;for (c = 0; c< 4; c++){for (r = 0; r<4; r++){t[r] = e[r * 4 + c];}for (r = 0; r<4; r++){e[r * 4 + c] = FFmul(0x02, t[r])^ FFmul(0x03, t[(r + 1) % 4])^ FFmul(0x01, t[(r + 2) % 4])^ FFmul(0x01, t[(r + 3) % 4]);}}}void plaintext::inMatrixToByte(unsigned char e[])//逆列混合变换函数{unsigned char t[4];int r, c;for (c = 0; c< 4; c++){for (r = 0; r<4; r++){t[r] = e[r * 4 + c];}for (r = 0; r<4; r++){e[r * 4 + c] = FFmul(0x0e, t[r])^ FFmul(0x0b, t[(r + 1) % 4])^ FFmul(0x0d, t[(r + 2) % 4])^ FFmul(0x09, t[(r + 3) % 4]);}}}unsigned char plaintext::FFmul(unsigned char a, unsigned char b){unsigned char bw[4];unsigned char res = 0;int i;bw[0] = b;for (i = 1; i<4; i++){bw[i] = bw[i - 1] << 1;if (bw[i - 1] & 0x80){bw[i] ^= 0x1b;}}for (i = 0; i<4; i++){if ((a >> i) & 0x01){res ^= bw[i];}}return res;}void plaintext::KeyAdding(unsigned char state[16], unsigned char k[][4])//轮密钥加{int r, c;for (c = 0; c<4; c++){for (r = 0; r<4; r++){state[r + c * 4] ^= k[r][c];}}}void plaintext::KeyExpansion(unsigned char* key, unsigned char w[][4][4])//密钥扩展{int i, j, r, c;unsigned char rc[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36 };for (r = 0; r<4; r++){for (c = 0; c<4; c++){w[0][r][c] = key[r + c * 4];}}for (i = 1; i <= 10; i++){for (j = 0; j<4; j++){unsigned char t[4];for (r = 0; r<4; r++){t[r] = j ? w[i][r][j - 1] : w[i - 1][r][3];}if (j == 0){unsigned char temp = t[0];for (r = 0; r<3; r++){t[r] = sBox[t[(r + 1) % 4]];}t[3] = sBox[temp];t[0] ^= rc[i - 1];}for (r = 0; r<4; r++){w[i][r][j] = w[i - 1][r][j] ^ t[r];}}}}plaintext::~plaintext(){}#include<iostream>#include<>#include<>//使用文件选取功能#include""using namespace std;unsigned char w[11][4][4] = { 0 };int len = 0;//图片每行需要加密的长度void Cipher();//加密图片void inCipher();//解密图片void Cipher(unsigned char a[]){unsigned char b[16];for (int i = 0; i < (len / 16); i++){for (int j = 0; j<16; j++)b[j] = a[j + i * 16];plaintext::KeyAdding(b, w[0]);for (int n = 1; n <= 10; n++){plaintext::SubBytes(b);plaintext::ShiftRows(b);if (n != 10)plaintext::MatrixToByte(b);plaintext::KeyAdding(b, w[n]);}for (int m = 0; m<16; m++)a[m + i * 16] = b[m];}}void inCipher(unsigned char a[]){unsigned char b[16];for (int i = 0; i < (len / 16) ; i++){for (int j = 0; j<16; j++){b[j] = a[j + i * 16];}plaintext::KeyAdding(b, w[10]);for (int n = 9; n >= 0; n--){plaintext::inShiftRows(b);plaintext::inSubBytes(b);plaintext::KeyAdding(b, w[n]);if (n)plaintext::inMatrixToByte(b);}for (int m = 0; m<16; m++)a[m + i * 16] = b[m];}}bool ImageCopy(const CImage &srcImage, CImage &destImage) {int i, j;//循环变量if ())return FALSE;//源图像参数BYTE* srcPtr = (BYTE*)();int srcBitsCount = ();int srcWidth = ();int srcHeight = ();int srcPitch = ();//销毁原有图像if (!()){();}//创建新图像if (srcBitsCount == 32) //支持alpha通道{(srcWidth, srcHeight, srcBitsCount, 1);}else{(srcWidth, srcHeight, srcBitsCount, 0);}BYTE *destPtr = (BYTE*)();int destPitch = ();len=abs(srcPitch);for (int i = 0; i<srcHeight; i++)Cipher(srcPtr + i*srcPitch);//复制图像数据for (i = 0; i<srcHeight; i++){memcpy(destPtr + i*destPitch, srcPtr + i*srcPitch, abs(srcPitch));}return TRUE;}bool inImageCopy(const CImage &srcImage, CImage &destImage){int i, j;//循环变量if ())return FALSE;//源图像参数BYTE* srcPtr = (BYTE*)();int srcBitsCount = ();int srcWidth = ();int srcHeight = ();int srcPitch = ();//销毁原有图像if (!()){();}//创建新图像if (srcBitsCount == 32) //支持alpha通道{(srcWidth, srcHeight, srcBitsCount, 1);}else{(srcWidth, srcHeight, srcBitsCount, 0);}BYTE *destPtr = (BYTE*)();int destPitch = ();len = abs(srcPitch);for (int i = 0; i<srcHeight; i++)inCipher(srcPtr + i*srcPitch);//复制图像数据for (i = 0; i<srcHeight; i++){memcpy(destPtr + i*destPitch, srcPtr + i*srcPitch, abs(srcPitch));}return TRUE;}int main(){unsigned char key[16] = {//固定密钥0x77, 0x59, 0xc5, 0xa4,0x55, 0x90, 0xa4, 0xa3,0xb2, 0xcc, 0x01, 0xa9,0xcb, 0xac, 0x77, 0x23 };plaintext::KeyExpansion(key, w);TCHAR szBuffer[MAX_PATH] = { 0 };//使用文件选取功能OPENFILENAME ofn = { 0 };= sizeof(ofn);// = m_hWnd;= _T("");//要选择的文件后缀= _T("D:\\");//默认的文件路径= szBuffer;//存放文件的缓冲区= sizeof(szBuffer) / sizeof(*szBuffer);= 0;= OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_EXPLORER;//标志如果是多选要加上OFN_ALLOWMULTISELECTBOOL bSel = GetOpenFileName(&ofn);CImage image, image2, image3;//读取图片(szBuffer);。

AES加密解密实验报告

AES加密解密实验报告

AES加密解密实验报告实验目的:了解和学习AES加密算法的原理和实现过程,掌握AES加密解密的方法。

实验原理:AES(Advanced Encryption Standard)高级加密标准,是一种对称加密算法,使用相同的密钥进行加密和解密。

AES加密算法使用数学运算和逻辑操作混合的方式,通过多轮迭代和替代、逆替代、置换等步骤,对数据进行加密和解密操作。

实验材料和方法:材料:计算机、Python编程环境。

方法:通过Python编程环境调用AES库函数,进行AES加密解密实验。

实验步骤:1. 导入AES库函数:在Python编程环境中,导入AES的库函数。

```pythonfrom Crypto.Cipher import AESfrom Crypto.Random import get_random_bytes```2. 生成随机密钥:使用get_random_bytes(函数生成一个长度为16字节的随机密钥。

```pythonkey = get_random_bytes(16)```3. 实例化AES加密对象:使用AES.new(函数,传入随机密钥和加密模式“AES.MODE_ECB”创建AES加密对象。

```pythoncipher = AES.new(key, AES.MODE_ECB)```4. 加密数据:使用encrypt(函数,传入要加密的数据进行加密操作。

```pythonmessage = "This is a secret message.".encodeciphertext = cipher.encrypt(message)```5. 解密数据:使用decrypt(函数,传入密文进行解密操作。

```pythonplaintext = cipher.decrypt(ciphertext)```6. 打印加密和解密结果:使用print(函数,打印加密前后和解密后的数据。

加密解密实验报告

加密解密实验报告

竭诚为您提供优质文档/双击可除加密解密实验报告篇一:Aes加密解密实验报告信息安全工程课程实验报告Aes加密解密的实现课程名称:信息安全工程学生姓名:学生学号:专业班级:任课教师:黄小菲3112041006系统工程2038班蔡忠闽20XX年11月22日目录1.背景................................................. ................................................... . (1)1.1Rijndael密码的设计标准:............................................... .................................11.2设计思想................................................. ................................................... .......12.系统设计................................................. ................................................... . (2)2.1系统主要目标................................................. ................................................... ..22.2功能模块与系统结构................................................. . (2)2.2.1字节替换subbyte............................................ ...........................................22.2.2行移位shiftRow........................................... ..............................................22.2.3列混合mixcolumn.......................................... ..........................................32.2.4轮密钥加AddRoundKey........................................ .....................................42.2.5逆字节替换................................................. ..............................................42.2. 6逆行移位InvshiftRow........................................ .. (4)2.2.7逆列混淆................................................. .. (4)3加密模式................................................. ................................................... (5)3.1电子密码本ecb模式................................................. ........................................53.2加密块链模式cbc模......................................64系统功能程序设计................................................. ................................................... . (8)4.1基本加密部分................................................. ................................................... ..84.1.1字节替换................................................. ...................................................84.1.2行移位................................................. ................................................... ...84.1.3列混合................................................. ................................................... (9)4.1.4轮密钥加.................................................94.1.5密钥扩展................................................. . (10)4.1.6逆字节替换................................................. ..............................................114.1 .7逆行移位................................................. .. (1)14.1.8逆列混合................................................. . (12)4.1.9加密................................................. ................................................... .....124.1.10解密................................................. ................................................... (13)5实验结果................................................. (14)5.1需要加密文件................................................. .. (1)45.2实验加密解密结果................................................. ...........................................156参考资料................................................. ................................................... . (16)1.背景Aes,密码学中的高级加密标准(Advancedencryptionstandard,Aes),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。

AES课程设计报告--AES加密解密的实现

AES课程设计报告--AES加密解密的实现

课程设计报告AES加密解密的实现课程名称:密码算法程序设计学生姓名:学生学号:专业班级:任课教师:2011年6 月24 日附件:课程设计成绩评价表目录1.背景与意义 (1)2. 系统设计 (1)系统主要目标 (1)主要软件需求(运行环境) (2)功能模块与系统结构 (2)3 系统功能程序设计 (3)基本要求部分 (3)3.1.1 字节替换 (4)行移位 (5)列混合 (6)密钥加 (8)密钥扩展 (8)获取RoundKey (10)逆字节替换 (11)逆行移位 (11)逆列混合 (12)加密 (13)解密 (15)4. 测试报告 (17)5.结论 (19)参考文献 (19)1.背景与意义由于AES应用了,感觉这算法的分组为固定长度的128bit,而密钥却有三种,分别为128,192,256bit,对应三种不同轮数分别为10轮,12轮,14轮。

这就加大了算法实现的难度,加上每轮的4种变换,更加体现了算法的复杂性,所以我采用的AES来实现。

不仅加深了我对密码算法本身的认识,更加巩固了我本来不是很熟悉的C语言。

AES算法采用的不可约多项式是p(x)=(84310),共256个多项余式构成了一个有限域,在这有限域上要用到字节运算和字运算。

随着对称密码的发展,DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据加密安全性的要求,因此1997年NIST公开征集新的数据加密标准,即AES[1]。

AES即高级加密标准,作为传统堆成加密算法标准DES的替代者,有美国国家标准与技术研究所于1997年提出征集该算法的公告.1999年3月22日,NIST从15个候选算法中公布了5个候选算法进入第二轮悬着:MARS、RC6、Rijindael、SERPENT和Twofish。

经过三轮的筛选,2000年10月2日,以安全性(稳定的数学基础、没有算法弱点、算法抗密码分析的强度、算法输出的随机性)、性能(必须能再多种平台上一较快的速度实现)、大小(不能占用大量的存储空间和内存)、实现特性(灵活性、硬件和软件适应性、算法的简单性等)为标准而最终选定了两个比利时研究者Vincent Rijmen和Joan Daemen 发明的Rijndael算法,并于2001年正式发布了AES标准。

密码学实验报告AESRSA

密码学实验报告AESRSA

华北电力大学实验报告||实验名称现代密码学课程设计课程名称现代密码学||专业班级:学生姓名:学号:成绩:指导教师:实验日期:[综合实验一] AES-128加密算法实现 一、实验目的及要求(1)用C++实现;(2)具有16字节的加密演示;(3)完成4种工作模式下的文件加密与解密:ECB, CBC, CFB,OFB.二、所用仪器、设备计算机、Visual C++软件。

三. 实验原理3.1、设计综述AES 中的操作均是以字节作为基础的,用到的变量也都是以字节为基础。

State 可以用4×4的矩阵表示。

AES 算法结构对加密和解密的操作,算法由轮密钥开始,并用Nr 表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表2所示)。

AES 算法的主循环State 矩阵执行1 r N 轮迭代运算,每轮都包括所有 4个阶段的代换,分别是在规范中被称为 SubBytes(字节替换)、ShiftRows(行位移变换)、MixColumns(列混合变换) 和AddRoundKey ,(由于外部输入的加密密钥K 长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥 K 扩展成更长的比特串,以生成各轮的加密和解密密钥。

最后执行只包括 3个阶段 (省略 MixColumns 变换)的最后一轮运算。

表2 AES 参数比特。

3.2、字节代替(SubBytes )AES 定义了一个S 盒,State 中每个字节按照如下方式映射为一个新的字节:把该字节的高4位作为行值,低4位作为列值,然后取出S 盒中对应行和列的元素作为输出。

例如,十六进制数{84}。

对应S 盒的行是8列是4,S 盒中该位置对应的值是{5F}。

S 盒是一个由16x16字节组成的矩阵,包含了8位值所能表达的256种可能的变换。

S 盒按照以下方式构造:(1) 逐行按照升序排列的字节值初始化S 盒。

第一行是{00},{01},{02},…,{OF};第二行是{10},{l1},…,{1F}等。

AES加密解密的实现

AES加密解密的实现

AES加密解密的实现成都信息⼯程学院课程设计报告AES加密解密的实现课程名称:应⽤密码算法程序设计学⽣姓名:兰符娥学⽣学号:2008122050专业班级:信息安全08级2班任课教师:2011年9 ⽉24 ⽇附件:课程设计成绩评价表⽬录1.背景与意义 (1)2. 系统设计 (1)2.1系统主要⽬标 (1)2.2主要软件需求(运⾏环境) (1)2.3功能模块与系统结构 (2)3 系统功能程序设计 (3)3.1基本要求部分 (3)3.1.1 字节替换 (3)3.1.2⾏移位 (4)3.1.3列混合 (4)3.1.4密钥加 (6)3.1.5密钥扩展 (6)3.1.6获取RoundKey (8)3.1.7逆字节替换 (8)3.1.8逆⾏移位 (9)3.1.9逆列混合 (9)3.1.10加密 (11)3.1.11解密 (12)3.2较⾼要求部分 (13)3.2.1 明⽂分组实现 (13)3.2.2 明⽂最后分组的填充 (13)3.2.3 对⼤⽂件的加密处理 (13)3.2.4 对⼤⽂件的解密处理 (16)3.3程序界⾯预览 (19)4. 测试报告 (19)5.结论 (19)参考⽂献 (20)1.背景与意义AES(The Advanced Encryption Standard)是美国国家标准与技术研究所⽤于加密电⼦数据的规范。

它被预期能成为⼈们公认的加密包括⾦融、电信和政府数字信息的⽅法。

AES 是⼀个新的可以⽤于保护电⼦数据的加密算法。

明确地说,AES 是⼀个迭代的、对称密钥分组的密码,它可以使⽤128、192 和256 位密钥,并且⽤128 位(16字节)分组加密和解密数据。

与公共密钥密码使⽤密钥对不同,对称密钥密码使⽤相同的密钥加密和解密数据。

通过分组密码返回的加密数据的位数与输⼊数据相同。

迭代加密使⽤⼀个循环结构,在该循环中重复置换(permutations )和替换(substitutions)输⼊数据。

aes加密课程设计

aes加密课程设计

aes加密课程设计一、课程目标知识目标:1. 让学生理解AES加密算法的基本概念,掌握其加密过程及原理;2. 使学生了解AES加密算法在我国信息安全领域的应用,认识到数据加密的重要性;3. 引导学生掌握AES加密算法中的密钥生成、轮函数、字节替换等关键环节。

技能目标:1. 培养学生运用编程语言实现AES加密算法的能力;2. 培养学生分析、解决实际加密问题的能力;3. 提高学生团队协作、沟通表达的能力。

情感态度价值观目标:1. 激发学生对密码学领域的兴趣,培养其探索精神;2. 培养学生严谨、认真的学习态度,养成良好的学习习惯;3. 增强学生的信息安全意识,使其具备保护个人隐私和数据的责任感。

课程性质:本课程为信息技术学科,以实践操作为主,注重培养学生的动手能力和实际应用能力。

学生特点:六年级学生具有一定的信息技术基础,对新鲜事物充满好奇,具备一定的编程能力。

教学要求:结合学生特点,采用任务驱动法、分组合作法等教学方法,注重理论与实践相结合,提高学生的综合能力。

在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

通过本课程的学习,使学生能够独立完成AES加密算法的实现,并具备解决实际加密问题的能力。

二、教学内容1. AES加密算法概述:介绍AES加密算法的发展背景、基本原理和在我国信息安全领域的应用。

- 教材章节:第三章 密码学基础- 内容:AES加密算法的历史、加密过程、密钥生成等。

2. AES加密算法的数学基础:讲解AES加密算法中所涉及的数学知识,如有限域、模运算等。

- 教材章节:第三章 密码学基础- 内容:有限域的定义、性质、模运算规则等。

3. AES加密算法的具体实现:分析AES加密算法的各个步骤,如字节替换、行移位、列混淆、轮密钥加等。

- 教材章节:第四章 AES加密算法- 内容:轮函数的构成、字节替换表、行移位规则、列混淆矩阵等。

4. AES加密算法编程实践:指导学生运用编程语言(如Python)实现AES加密算法。

AES算法加密与解密的设计与实现

AES算法加密与解密的设计与实现

成都信息工程学院课程设计报告AES算法加密与解密的设计与实现课程名称:密码算法程序设计学生姓名:***学生学号:**********专业班级:信安101任课教师:***2012年6月3日目录1. 背景 (1)2 信息安全技术 (2)2.1 信息加密技术概述 (2)2.2 对称密码技术体制概述 (2)2.3 非对称密码技术体制概述 (3)2.4 消息摘要概述 (3)3 高级加密标准 (4)3.1概念 (4)3.2 AES加密 (4)4实现加密算法5.测试 (6)5.1 AES类控制台各功能模块测试 (10)5.1.1 密钥扩展(KeyExpansion) (10)5.1.2轮密钥加(AddRoundKey) (10)5.1.3 字节代替(SubKytes) (10)HYPERLINK \l _Toc27866 5.1.4 行移位(ShiftRows) (10)5.1.5 列混合(MixColumns) (10)5.1.6 轮结构加密验证 (10)5.2消息加解密功能测试 (11)5.2.1 与FIPS-197(AES)比对验证 (11)5.2.2 ASCII加密验证 (13)5.5.3 加密模式验证 (14)结论 (17)参考文献 (18)1. 背景近年来,随着Internet的迅猛发展,计算机网络技术正在日益广泛的应用到商业,金融,国防等各个领域,Internet在人民的日程生活中发挥着越来越重要的作用。

World Wide Web(WWW)系统已经从最初的提供信息查询浏览一类的静态服务发展成可提供动态交互的综合系统,Internet提供的互联性和开放性使信息的交换和共享成为现实,为社会带来了巨大的收益。

然而,Internet是一个给予TCP/IP协议的开放系统,它建立的初衷是为了使用者提供一种快捷的通信和资源的共享方式,并没有考虑到数据传输的安全性,机密性和通信实体的身份鉴别等安全因素,因此在Internet的日益广泛应用的同时,通信安全问题也日益突出。

aes 实验报告

aes 实验报告

aes 实验报告AES实验报告1. 引言AES(Advanced Encryption Standard)是一种对称加密算法,被广泛应用于各种领域中的数据保护和安全通信。

本实验旨在通过实际操作,深入了解AES算法的原理和应用。

2. 实验目的2.1 理解AES算法的基本原理;2.2 掌握AES算法的加密和解密过程;2.3 通过实验验证AES算法的安全性和效率。

3. 实验环境本实验使用的环境为Python编程语言和相关的密码学库。

4. 实验步骤4.1 密钥生成AES算法使用的密钥长度可以是128位、192位或256位。

在本实验中,我们选择128位密钥长度。

首先,通过随机数生成器生成一个128位的密钥。

4.2 加密过程4.2.1 分组将待加密的明文按照128位分组,如果最后一个分组不足128位,则需要进行填充。

4.2.2 轮密钥扩展AES算法使用了多轮加密,每一轮都需要使用不同的轮密钥。

通过密钥扩展算法,将初始密钥扩展为多个轮密钥。

4.2.3 轮函数AES算法的核心是轮函数,它包括字节替代、行移位、列混淆和轮密钥加四个步骤。

这些步骤在每一轮中都会被执行。

4.2.4 轮数循环根据密钥长度的不同,AES算法的轮数也不同。

在本实验中,我们选择10轮加密。

4.2.5 输出密文经过多轮加密后,得到最终的密文。

4.3 解密过程解密过程与加密过程相似,只是在轮密钥的使用上有所不同。

解密过程需要使用逆向的轮密钥。

5. 实验结果与分析通过实验,我们得到了AES算法对明文进行加密和解密的结果。

经过比对,我们可以验证加密和解密的正确性。

同时,我们还可以通过实验数据分析AES算法的安全性和效率。

6. 实验结论AES算法是一种安全可靠的对称加密算法,能够有效地保护数据的机密性。

通过本实验,我们深入了解了AES算法的原理和应用,并且掌握了AES算法的加密和解密过程。

7. 实验总结通过本次实验,我们不仅学习了AES算法的基本原理和应用,还通过实际操作加深了对该算法的理解。

AES加密算法实验报告

AES加密算法实验报告

AES加密算法实验报告AES(Advanced Encryption Standard)是一种对称加密算法,用于保护数据的机密性和完整性。

它是由美国国家标准与技术研究所(NIST)于2001年选定的替代算法,用于替代旧有的DES(Data Encryption Standard)算法。

AES算法的设计目标是提供高安全性以及高效率的加密和解密速度。

AES算法采用分组密码的方式,将明文按照固定大小(128比特)进行分组,然后对每个分组进行加密。

密钥长度可以选择128、192或256比特,不同的密钥长度对应着不同的加密强度。

其中,128比特密钥长度适用于大部分的安全应用,而192和256比特密钥长度适用于更高级别的安全应用。

AES算法的加密和解密过程有以下四个步骤:1. 字节代换(SubBytes):将每个输入字节替换为固定的对应字节,通过查找S盒表中的元素实现。

这一步骤主要用于消除明文的统计性质,增加密码的复杂性。

2. 行移位(ShiftRows):按照特定规则对每个分组中的字节进行循环移位。

这一步骤可以增加明文的扩散性质,增强密码的混淆效果。

3. 列混淆(MixColumns):对每个分组的列进行线性变换。

该变换采用矩阵乘法的方式,通过与固定矩阵的乘法操作实现。

这一步骤可以增加密码的扩散和混淆效果。

4. 轮密钥加(AddRoundKey):将每个分组与轮密钥进行异或操作。

轮密钥是由主密钥派生出来的,用于对每个分组进行不同轮数的加密。

这一步骤可以将密钥的信息混合到每个分组中。

AES算法通过多轮的加密和解密操作,将明文转化为密文,或将密文转化为明文。

每轮加密和解密操作都会使用不同的轮密钥,并对明文或密文进行不同的变换操作。

这样可以增加密码的强度和混淆效果。

在实际应用中,AES算法已被广泛使用于各种安全领域,如电子商务、数字版权保护、无线通信等。

它具有高安全性、高效率和高灵活性的特点,适用于不同安全等级的应用环境。

加密解密实验报告

加密解密实验报告

加密解密实验报告加密解密实验报告一、引言随着信息技术的飞速发展,数据安全性成为了一个重要的问题。

为了保护敏感数据的安全,加密解密技术应运而生。

本实验旨在探究加密解密的原理与方法,并通过实验验证其可行性和有效性。

二、加密方法1. 对称加密对称加密是一种加密方法,使用相同的密钥进行加密和解密。

在实验中,我们选择了最常用的对称加密算法——AES(Advanced Encryption Standard)。

通过实验我们发现,AES算法能够在保证数据安全的同时,加解密速度较快。

2. 非对称加密非对称加密是一种使用不同密钥进行加密和解密的方法。

在实验中,我们选择了RSA算法进行实验。

RSA算法基于数论的难题,具有较高的安全性。

实验结果表明,RSA算法在加密过程中较为耗时,但加密后的数据安全性较高。

三、实验步骤1. 对称加密实验(1)选择明文:在实验中,我们选择了一段文字作为明文进行加密。

明文内容为:“加密解密实验报告”。

(2)选择密钥:在AES算法中,密钥长度可以选择128位、192位或256位。

我们选择了128位密钥进行实验。

(3)加密过程:将明文和密钥输入AES算法中,得到密文。

(4)解密过程:将密文和密钥输入AES算法中,得到明文。

2. 非对称加密实验(1)选择明文:同样选择了一段文字作为明文,内容为:“加密解密实验报告”。

(2)生成密钥对:使用RSA算法生成一对密钥,包括公钥和私钥。

(3)加密过程:将明文和公钥输入RSA算法中,得到密文。

(4)解密过程:将密文和私钥输入RSA算法中,得到明文。

四、实验结果1. 对称加密实验结果经过AES算法加密和解密后,我们成功地将明文“加密解密实验报告”转化为了密文,并且通过解密过程将密文还原为了明文。

实验结果表明,对称加密算法能够有效地保护数据的安全性。

2. 非对称加密实验结果通过RSA算法的加密和解密过程,我们同样将明文“加密解密实验报告”转化为了密文,并通过解密过程将密文还原为了明文。

AES加密算法实验报告

AES加密算法实验报告

AES加密算法实验报告实验报告:AES加密算法一、实验目的与背景AES(Advanced Encryption Standard,高级加密标准)是目前最常用的对称加密算法之一,被广泛应用于数据保密领域。

本实验旨在深入了解AES加密算法的原理和实现过程,掌握其加密和解密的基本操作。

二、实验原理1.初始化状态:将明文分成若干个块,并对每个块进行初始化处理,包括状态添加轮密钥、字节替代、行移位和列混淆。

2.轮函数:通过迭代轮函数,将每个块中的状态混淆,进一步增强加密强度。

3.轮密钥扩展:通过原始密钥生成一系列轮密钥,用于每轮轮函数的运算。

4.复制和结束状态:将各个加密块的状态复制到输出中,并进行最终处理,得到密文。

三、实验过程本实验采用python编程语言,在PyCryptodome库的支持下进行AES 加密算法的实验。

1. 环境准备:安装PyCryptodome库。

2.密钥生成:通过输入一个128位的密钥,生成轮密钥扩展所需的所有轮密钥。

3.加密操作:输入明文,对其进行分组,并逐个块进行加密操作。

4.解密操作:输入密文,对其进行分组,并逐个块进行解密操作。

四、实验结果与分析本实验选取了一个128位的密钥,并对一段文字进行加密和解密实验。

实验结果表明,AES加密算法能够有效保护数据的机密性。

1.加密结果:明文经过AES加密后,得到了一段密文。

密文经过解密操作后,可以得到与原明文相同的结果。

说明AES加密算法是可逆的。

2.加密强度:AES加密算法使用的128位密钥,远超传统DES算法的56位密钥。

这使得破解AES加密算法需要极大的计算成本,增强了数据的安全性。

3.加密效率:AES加密算法在实际应用中具有较高的性能指标,加密速度快,适用于大规模数据的加密保护。

五、实验总结通过本次实验,我们了解到了AES加密算法的基本原理和实现方法,了解了其分组加密和解密的整个过程,并通过实验验证了其加密强度和效果。

AES算法在保证数据安全性的同时,提供了较高的加密和解密性能,适用于信息安全领域的各种加密场景。

aes加密课程设计

aes加密课程设计

aes加密课程设计一、教学目标本课程旨在让学生了解和掌握AES加密算法的基本原理和应用方法。

通过本课程的学习,学生应达到以下目标:1.了解AES加密算法的背景和意义。

2.掌握AES加密算法的基本原理和密钥生成过程。

3.掌握AES加密算法的加密和解密过程。

4.了解AES加密算法的应用场景。

5.能够使用编程语言实现AES加密算法的基本功能。

6.能够分析AES加密算法的优缺点和适用条件。

情感态度价值观目标:1.培养学生对信息安全的重视和保护个人隐私的意识。

2.培养学生对加密算法的兴趣和持续学习的动力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.AES加密算法的基本原理:介绍AES加密算法的背景和意义,讲解密钥生成过程、加密和解密过程。

2.AES加密算法的应用:介绍AES加密算法的应用场景,如电子支付、网络安全等。

3.AES加密算法的实现:通过编程语言实现AES加密算法的基本功能。

4.AES加密算法的分析:分析AES加密算法的优缺点和适用条件。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式:1.讲授法:讲解AES加密算法的基本原理和应用。

2.案例分析法:分析实际案例中AES加密算法的应用。

3.实验法:让学生通过编程语言实现AES加密算法,增强实践能力。

为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选用权威、实用的AES加密算法教材。

2.参考书:提供相关的参考书籍,供学生深入研究。

3.多媒体资料:制作精美的PPT、教学视频等多媒体资料。

4.实验设备:准备编程环境和相关设备,让学生能够顺利进行实验操作。

五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:通过课堂参与、提问、讨论等方式评估学生的平时表现。

2.作业:布置相关的编程练习和理论作业,评估学生的理解和应用能力。

3.考试:安排期末考试,评估学生对AES加密算法的掌握程度。

AES五种加密模式课程设计

AES五种加密模式课程设计

AES五种加密模式课程设计一、课程目标知识目标:1. 学生能理解AES加密的基本原理及其五种加密模式(ECB、CBC、CFB、OFB、CTR)的区别与特点。

2. 学生能掌握AES算法的加密与解密过程,了解各种模式的应用场景。

3. 学生能掌握AES加密模式在信息安全领域的地位和作用。

技能目标:1. 学生能运用编程语言实现AES五种加密模式的加密与解密过程。

2. 学生能分析不同加密模式的优缺点,并根据实际需求选择合适的加密模式。

3. 学生能运用所学知识解决实际信息安全问题,提高信息安全意识。

情感态度价值观目标:1. 学生培养对信息安全领域的兴趣,增强对国家网络安全的责任感。

2. 学生树立正确的信息安全观念,认识到信息安全的重要性。

3. 学生在学习过程中,培养团队协作、探究问题和解决问题的能力。

分析课程性质、学生特点和教学要求:1. 课程性质:本课程为信息技术课程,旨在培养学生的信息安全素养和编程能力。

2. 学生特点:学生具备一定的编程基础和信息安全知识,对加密技术有一定了解。

3. 教学要求:通过本课程,使学生掌握AES五种加密模式的知识,提高学生的实际操作能力和信息安全意识。

课程目标分解:1. 知识目标:通过课堂讲解、案例分析和课后阅读,使学生掌握AES加密原理和五种加密模式。

2. 技能目标:通过实验操作和课后练习,使学生能够运用编程语言实现AES 加密与解密,选择合适的加密模式。

3. 情感态度价值观目标:通过课堂讨论、小组合作和课后反思,培养学生对信息安全领域的兴趣和责任感。

二、教学内容1. AES加密原理:介绍AES加密的基本概念、密钥生成、加密过程、解密过程等。

- 教材章节:第三章“对称加密算法”第1节“AES加密算法”- 内容安排:讲解AES加密算法的历史背景、算法特点,引导学生掌握密钥生成、轮函数、加密解密流程。

2. AES五种加密模式:分别介绍ECB、CBC、CFB、OFB、CTR模式的原理、特点及应用场景。

AES——密码学实验报告

AES——密码学实验报告

实验报告【实验名称】AES加密解密实验姓名:学号:班级:日期:10月20日【实验目的】1.掌握AES算法的基本原理2.了解AES算法的详细步骤【实验环境】1.本试验需要密码教学实验系统的支持2.操作系统为Windows 2000或者Windows XP【实验内容】1.掌握AES算法的原理及过程2.完成AES密钥扩展运算3.完成AES数据加密运算【实验步骤】1.打开“AES理论学习”,掌握DES算法的加解密原理;2.打开“AES算法流程",开始DES单步加密实验,如图10—1;3.选择密钥输入为ASCII码或十六进制码模式,输入密钥;若为ASCII码模式,则输入8个字符的ASCII码;若为十六进制码模式,则输入16个字符的十六进制码(0~9,a~f,A~F);4.点击“字节矩阵”按钮,将输入的密钥转化为密钥字节矩阵,从左至右每一列依次为W0,W1,W2,W3;5.依次点击“RotWord”、“SubWord”、“轮常量异或”,对W3依次进行“循环移位”、“S盒”、“轮常量异或”操作并与W0异或得到W4,;6.点击“异或”按钮,使得W1与W4进行异或得到W57.点击“生成W6和W7”按钮,生成W6和W78.点击“生成所有轮密钥"按钮,生成1~10轮轮密钥9.进入第二部分—-加密,选择加密输入为ASCII码或十六进制码模式,输入明文;若为ASCII码模式,则输入8个字符的ASCII码;若为十六进制码模式,则输入16个字符的十六进制码(0~9,a~f,A~F);10.点击“字节矩阵"按钮,将输入明文转化为明文字节矩阵;11.点击“AddRoundKey”按钮,使明文字节矩阵与密文字节矩阵进行逐比特异或;12.接下来进行第一轮操作,依次点击“SubBytes”、“ShiftRows"、“MixColumns”、“AddRoundKeys"按钮,对经过轮密钥加操作的字节矩阵依次进行字节替换、行移位、列混合和逐字节异或操作,得到新的字节矩阵;13.对上一步得到的结果连续进行8轮上一步的四步操作得到新的字节矩阵;14.第十轮的时候依次进行字节替换、行移位、轮密钥加操作(不需要列混合)得到最终的密文字节矩阵。

AES 文件加密解密 课程设计报告

AES 文件加密解密 课程设计报告

关键字 :
AES
Rijndael算法

页, 共

AES 加密解密的实现
1. 背景
AES, 密码学中的 高级加密标准 ( Advanced Encryption Standard, AES) , 又称 Rijndael 加密算法,是美 国联邦政府采用的一种区块加密 标准。这个 标准用来替代 原先的 DES,已经被多方分 析且广为全世界所使用 。经过五年 的甄选流程, 高级加密标准由美国国家标准与 技术研究院( NIST) 于 2001 年 11 月 26 日 发布于 FIPS PUB 197, 并在 2002 年 5 月 26 日成为有 效的标 准。 2006 年,高级加密标准已然成为 对称密钥加密中最流行的算法 之一。 AES 有一个固定的 128 位的 块大小和 128, 192 或 256 位大小 的 密 钥 大 小 。 该算法为比利 时密码学家 Joan Daemen 和 Vincent Rijmen 所设计,结 合两位作者的 名字, 以 Rijndael 之命名之 , 投稿高级加密标 准的甄选流程。 ( Rijdael 的发音近于 "Rhine doll"。) AES 在软体及硬件上都能快速地加 解密,相对来说较易于实作,且只需要很少的记忆体。作一个新的加密标准, 目前正被部署应用到更广大的范围。

页, 共

摘要
随着现代密码分析水平、芯片处理能力和计算技术的不断进步,高级加密标 准AES的Rijndael算法将在各行业各部门获得了广泛的应用,成为虚拟专用网、 SONET、远程访问服务器、高速ATM以太网路由器、移动通信、卫星通信、电子金 融业务等的加密算法, 并逐渐取代DES在IPSec、 SSL和 ATM中的加密功能。 目前, IEEE 802.11草案已经定义了AES加密的两种不同运行模式,成功解决了无限局域 网标准中的诸多安全问题。在这种情形下,AES算法的安全性及其快速实现问题 显得格外突出。文章阐述了Rijndael算法的设计特色,详细介绍了AES具体的加 密解密算法函数。此外,AES算法具有抵抗强力攻击的能力,抵抗差分分析和线 性密码分析的能力,抵抗渗透攻击和代数计算攻击的能力,抵抗XSL攻击和弱密 钥分析的能力。从这几个方面可以说明AES具有良好的安全性能。另外,我们根 据算法的安全性、代价以及算法与实现特性的原则实现了AES简单常用的加密解 密算法。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


页, 共

摘要
随着现代密码分析水平、芯片处理能力和计算技术的不断进步,高级加密标 准AES的Rijndael算法将在各行业各部门获得了广泛的应用,成为虚拟专用网、 SONET、远程访问服务器、高速ATM以太网路由器、移动通信、卫星通信、电子金 融业务等的加密算法, 并逐渐取代DES在IPSec、 SSL和 ATM中的加密功能。 目前, IEEE 802.11草案已经定义了AES加密的两种不同运行模式,成功解决了无限局域 网标准中的诸多安全问题。在这种情形下,AES算法的安全性及其快速实现问题 显得格外突出。文章阐述了Rijndael算法的设计特色,详细介绍了AES具体的加 密解密算法函数。此外,AES算法具有抵抗强力攻击的能力,抵抗差分分析和线 性密码分析的能力,抵抗渗透攻击和代数计算攻击的能力,抵抗XSL攻击和弱密 钥分析的能力。从这几个方面可以说明AES具有良好的安全性能。另外,我们根 据算法的安全性、代价以及算法与实现特性的原则实现了AES简单常用的加密解 密算法。
设计工作计划 1. 本次课程设计的时间是 2 周,工作计划如下: 2. 任务书下达,理解选题,明确软件功能,分析和设计:2 天; 3. 分析和设计报告的撰写:1 天 4. 实现部分设计及文档编写;1 天; 5. 编码及调试:4 天; 6. 报告完善及打印:1 天; 7. 成果提交和验收:1 天。
主要参考资料 1、陈鲁生、沈世镒《现代密码学》 (2) 北京:科学出版社,2008 年 2、Michael Welschenbach 编著,赵振江,连国卿等译,《编码密码学——加 密方法的 C 与 C++实现》,电子工业出版社,2003 年 6 月; 3、/
关键字 :
AES
Rijndael算法

页, 共

AES 加密解密的实现
1. 背景
AES, 密码学中的 高级加密标准 ( Advanced Encryption Standard, AES) , 又称 Rijndael 加密算法,是美 国联邦政府采用的一种区块加密 标准。这个 标准用来替代 原先的 DES,已经被多方分 析且广为全世界所使用 。经过五年 的甄选流程, 高级加密标准由美国国家标准与 技术研究院( NIST) 于 2001 年 11 月 26 日 发布于 FIPS PUB 197, 并在 2002 年 5 月 26 日成为有 效的标 准。 2006 年,高级加密标准已然成为 对称密钥加密中最流行的算法 之一。 AES 有一个固定的 128 位的 块大小和 128, 192 或 256 位大小 的 密 钥 大 小 。 该算法为比利 时密码学家 Joan Daemen 和 Vincent Rijmen 所设计,结 合两位作者的 名字, 以 Rijndael 之命名之 , 投稿高级加密标 准的甄选流程。 ( Rijdael 的发音近于 "Rhine doll"。) AES 在软体及硬件上都能快速地加 解密,相对来说较易于实作,且只需要很少的记忆体。作为一个新的加密标准, 目前正被部署应用到更广大的范围。
教研室签字:



学院签字:


ห้องสมุดไป่ตู้

目录 目录 .......................................................................................................................................................................... 1 摘要 .......................................................................................................................................................................... 2 AES 加密解密的实现 ...................................................................................................................................... 3 1. 背景 ............................................................................................................................................................... 3 2. 系统设计..................................................................................................................................................... 3
指导教师姓 高雁飞 教研室 名 课程设计题 文件加密/解密系统 目 设计目的、任务和要求
信息与计算科学 人数 1 学时 2周
设计目的: 本课程设计力求为学生提供一个理论联系实际的机会。通过实践,建立密码学 理论的整体思想,锻炼编写、调试程序的能力,学习文档编写规范,培养独立 学习、吸取他人经验、探索前沿知识的习惯,树立团队协作精神。同时,课程 设计可以充分弥补课堂教学及普通实验中知识深度与广度有限的缺陷, 更好地 帮助学生从全局角度把握课程体系。 设计任务: (1)在深入理解 DES 或 AES 加密/解密算法理论的基础上,设计一个 DES 或 AES 加密/解密软件系统; (2)加/解密过程可用分组密码运行模式中的任一种模式; (3)完成一个明文分组的加解密,明文和密钥可以是二进制,十六进制或者 ASCII 码。进行加密后,能够进行正确的解密; (4)提供良好的用户界面; (5)要求提供所设计系统的报告及完整的软件。 设计的方法和步骤 第一步:进行系统设计; 第二步:代码编码; 第三步:对实现部分的软件功能或者模块进行测试 第四步:提交完整可执行软件,准备答辩; 第五步:答辩,演示软件,教师根据实际情况提出测试用例,学生作最后的修 改和完善,教师对软件运行部分进行评分; 第六步:完成课程设计报告并提交。
2.1 系统主要目标...................................................................................................................................... 3 2.2 系统运行环境...................................................................................................................................... 3 2.3 功能模块与系统结构...................................................................................................................... 4 3.系统功能程序设计 .................................................................................................................................. 6 3.1 字节替换 ................................................................................................................................................. 6 3.2 行移位...................................................................................................................................................... 7 3.3 列混合....................................................................................................................................................... 7 3.4 混合列变换中的乘法运算 ............................................................................................................ 7 3.5 密钥扩展 ................................................................................................................................................. 9 3.6 逆字节替换 ......................................................................................................................................... 11 3.7 逆行移位 .............................................................................................................................................. 11 3.8 加密 ......................................................................................................................................................... 11 3.9 解密 ......................................................................................................................................................... 12 软件测试 ............................................................................................................................................................ 14 小结 ....................................................................................................................................................................... 17 参考文献 ............................................................................................................................................................ 17 附录:.................................................................................................................................................................. 18
相关文档
最新文档