加密解密设计报告

合集下载

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(函数,打印加密前后和解密后的数据。

加密解密课程设计报告

加密解密课程设计报告

成都信息工程学院课程设计报告DES算法加密与解密的设计与实现课程名称:密码算法程序设计学生姓名:学生学号:专业班级:任课教师:XX年 XX 月 XX 日目录1背景DES算法概述DES(Data Encryption Standard)是由美国IBM公司于20世纪70年代中期的一个密码算(LUCIFER)发展而来,在1977年1月15日,美国国家标准局正式公布实施,并得到了ISO的认可,在过去的20多年时间里,DES 被广泛应用于美国联邦和各种商业信息的保密工作中,经受住了各种密码分析和攻击,有很好的安全性。

然而,目前DES算法已经被更为安全的Rijndael 算法取代,但是DES加密算法还没有被彻底的破解掉,仍是目前使用最为普遍的对称密码算法。

所以对DES的研究还有很大价值,在国内DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键的数据保密,如信用卡持卡人的PIN码加密传输,IC卡与POS 机之间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。

DES算法是一种采用传统的代替和置换操作加密的分组密码,明文以64比特为分组,密钥长度为64比特,有效密钥长度是56比特,其中加密密钥有8比特是奇偶校验,DES的加密和解密用的是同一算法,它的安全性依赖于所用的密钥。

它首先把需要加密的明文划分为每64比特的二进制的数据块,用56比特有效密钥对64比特二进制数据块进行加密,每次加密可对64比特的明文输入进行16轮的替换和移位后,输出完全不同的64比特密文数据。

由于DES算法仅使用最大为64比特的标准算法和逻辑运算,运算速度快,密钥容易产生,适合于在大多数计算机上用软件快速实现,同样也适合于在专用芯片上实现。

DES算法描述DES算法的加密过程首先对明文分组进行操作,需要加密的明文分组固定为64比特的块。

图1-1是DES加密算法的加密流程。

图1-2是密钥扩展处理过程。

java课程设计加密与解密实验报告

java课程设计加密与解密实验报告

java课程设计加密与解密实验报告尊敬的老师:我将向您汇报我的Java课程设计——加密与解密实验报告。

本次实验旨在通过Java程序设计实现一些传统加密算法的加密与解密功能,并进行简单的性能分析。

以下是我的实验报告:一、实验目的通过Java程序设计实现传统加密算法的加密与解密功能,了解加密算法的基础原理,并进行简单的性能分析。

二、实验内容本次实验的主要内容包括:1. 实现Caesar加密算法、Playfair加密算法和Vigenere加密算法的加密与解密功能。

2. 编写能够对文字文件进行加密与解密的Java程序。

3. 对比不同算法的加密与解密性能,进行简单的性能分析。

三、实验步骤1. Caesar加密算法Caesar加密算法是一种简单的字母替换加密方式,通过移动字母表中的字母来生成密文。

例如,如果移动三个字母,则"A"变成"D","B"变成"E",以此类推。

加密和解密使用相同的密钥,在本实验中为整数。

实现步骤如下:① 定义CaesarCipher类,此类中包含了加密与解密方法。

② 加密方法接收一个字符串和密钥,通过对字符串中的每个字母进行移动,生成密文。

③ 解密方法接收一个密文和密钥,通过对密文中的每个字母进行相反的移动,还原出明文。

2. Playfair加密算法Playfair加密算法是一种算法复杂度较高的加密方式,利用了一个5x5的矩阵来进行加密。

实现步骤如下:① 定义PlayfairCipher类,此类中包含了加密与解密方法。

② 加密方法接收一个字符串和密钥,将明文分组并替换成加密后的密文。

③ 解密方法接收一个密文和密钥,将密文分组并替换成还原出的明文。

3. Vigenere加密算法Vigenere加密算法是一种基于凯撒密码的加密算法,使用一个关键词来对明文进行加密。

实现步骤如下:① 定义VigenereCipher类,此类中包含了加密与解密方法。

加密解密实验报告

加密解密实验报告

竭诚为您提供优质文档/双击可除加密解密实验报告篇一: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加密法,是美国联邦政府采用的一种区块加密标准。

DES加密解密实验报告

DES加密解密实验报告

DES加密解密实验报告实验报告题目:DES加密解密实验一、实验目的1.了解DES加密算法的工作原理。

2. 学习使用Python编程语言实现DES加密算法。

3.掌握DES加密算法的应用方法。

二、实验原理DES(Data Encryption Standard)是一种用于加密的对称密钥算法,其密钥长度为64位,分为加密过程和解密过程。

1.加密过程(1)初始置换IP:将64位明文分成左右两部分,分别为L0和R0,进行初始置换IP操作。

(2)子密钥生成:按照规则生成16个子密钥,每个子密钥长度为48位。

(3)迭代加密:通过16轮迭代加密运算,得到最终的密文。

每轮迭代加密包括扩展置换、异或运算、S盒替代、P置换和交换操作。

(4)逆初始置换:将最终的密文分成左右两部分,进行逆初始置换操作,得到最终加密结果。

2.解密过程解密过程与加密过程类似,但是子密钥的使用顺序与加密过程相反。

三、实验材料与方法材料:电脑、Python编程环境、DES加密解密算法代码。

方法:1. 在Python编程环境中导入DES加密解密算法库。

2.输入明文和密钥。

3.调用DES加密函数,得到密文。

4.调用DES解密函数,得到解密结果。

5.输出密文和解密结果。

四、实验步骤1.导入DES加密解密算法库:```pythonfrom Crypto.Cipher import DES```2.输入明文和密钥:```pythonplaintext = "Hello World"key = "ThisIsKey"```3.创建DES加密对象:```pythoncipher = DES.new(key.encode(, DES.MODE_ECB) ```。

加密解密程序实验报告

加密解密程序实验报告

程序设计实践加密解密程序实验报告课题概述1.1课题目标和主要内容:利用MFC类或者win32编写windows程序,实现加密解密的功能。

1.2系统的主要功能:1.实现用户界面友好的操作。

2.具有对称编码体制,可以实现:i.凯撒密码:能够自定义密钥,自由输入明文,进行加密、解密,在对话框中返回加密和解密后的内容。

ii.置换密码:能够自定义密钥,自由输入明文,经矩阵变换进行加密、解密,在对话框中返回加密和解密后的内容iii.对称加密DES:用MFC调用WIN32编写的程序,在用户友好界面操作的同时显示程序加密,解密结果。

3.具有非对称编码体制:i. RSA加密解密:随机产生p,q,经检验是否互质,若不互质接着产生两个随机数,直到二者互质为止。

自动生成p,q,N及加密解密的密钥,可以自由输入明文,返回加密、解密的内容。

ii. MD5消息摘要计算:用MFC调用WIN32编写的程序,在用户友好界面操作的同时显示程序的加密结果。

4.信息隐藏技术:用LSB在图片(bmp格式,任意位置的图片)中写入信息,读取信息并显示出来,可以擦除信息。

可以自定义密钥。

5. AES加密解密:用MFC调用WIN32编写的程序,在用户友好界面操作的同时显示程序加密,解密结果。

6. 以上的所有对文字加密解密的方法(除LSB以外其余所有方法),都可以用于文件加密,解密,并能够及时保存加密,解密的信息到一个TXT文档,可以存在用户想存放的地方。

7.更多:链接了一个可加密解密,功能更为齐全的网站,若是上述方法不能满足用户需求,可以在程序运行的窗口中点击相应按钮,在联网的条件下进行在线加密解密。

一、系统设计2.1系统总体框架:2.2主要的层次逻辑为:1.界面窗口:改善设计,修正效果图:2.将书上的C++语言改用MFC适应的进行编程,实现相应功能:凯撒加解密3.或者用系统函数调用WIN32编好的程序:4.进行文件操作,加密解密后保存文件。

6.调用函数实现网页链接:2.3设计思想:(1)新建一个基于单文档的MFC应用程序,工程名称为secret。

文件的移位加密解密实验报告

文件的移位加密解密实验报告

文件的移位加密与解密一目的将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反,使文件恢复原来的字母。

二需求分析将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反。

加密:用户选择功能(运行后键盘输入1进行选择),从键盘输入一个任意整数密钥,然后对已知文件“abc.txt”进行加密。

加密后屏幕显示加密后文件内容并且文件内容改变。

成为加密文件。

解密:通过选择功能(运行后键盘输入2进行选择)对加密后的文件进行解密,输入密钥后能显示出解密后文件内容并且文件变为解密的文件。

通过加密解密可以在文件内容与乱码之间来回转换,使文件内容更安全。

在D盘中建立abc.txt文件并在其中输入字符串abcdef,运行程序,选择1对文件进行加密,输入密钥1,文件abc.txt会变为bcdefg。

三概要设计本程序有一个模块:main(){定义整数选择,密钥;定义字符型数组保存源文件的内容,保存改变后文件的内容;定义i=0,用来初始化数组;定义文件指针1,2 第一个只读打开文件,第二个只写打开文件把更改后的文件放入已知文件中。

没有其他函数。

}四详细设计主程序流程图定义最大数组,以及所使用的函数的头文件名#include<stdio.h>#define M 200#include<stdlib.h>文件指针,以及全局变量int password,choose;char c,yuan[M];int i=0;FILE *fp,*fp1;对文件的打开,并对所需功能进行选择。

fp=fopen("D:\\abc.txt","r");if(fp==NULL)printf("the document can't be open!\n");printf("please choose the function\n");printf("1:encrypt 2:decript \n");scanf("%d",&choose);if(choose!=1&&choose!=2)printf("please input a right number!\n");system("pause");对文件进行加密或者解密处理,并把处理结果输出在屏幕上。

实验报告模板-实验1 数据的加密和解密

实验报告模板-实验1 数据的加密和解密
南京晓庄学院 数学与信息技术学院
网络安全实验报告
实验名称:
实验一 数据的加密和解密
班级:
实验地点:
日期:
评定等级:
学号:
姓名:
一、实验目的:
1.理解对称加密算法的原理和特点;
2.理解DES算法的机密和解密原理。
二、基本技能实验内容、要求和环境:
在充分理解和掌握DEຫໍສະໝຸດ 算法实现原理的基础上,在windows操作系统环境下,采用自己熟悉的编程语言C/C++实现DES算法的加密和解密过程。调试和运行DES算法程序,验证对称密码技术的相关特性。
三、实验步骤:
1、根据DES算法的实现原理给出DES算法实现的流程图
64位明文64位密钥
64 K148 56 56
64 K248 5656
K648 56
64位
64位密文
2、DES算法的实现
3、运行程序,验证DES算法作为对称加密算法的相关特性
四、实验结果与分析
五:思考题:
1.由于DES可能易于受到穷举式攻击,出现了双重DES和三重DES,请给出现有双重DES和三重DES的实现方案,试阐述双重DES存在的安全隐患。

C语言文件加密解密报告

C语言文件加密解密报告

C语言文件加密解密报告文件加密解密的报告一、引言在现代信息技术的发展下,计算机与互联网的普及使得信息传输变得越来越方便快捷。

然而,随之而来的问题是数据的安全性问题,特别是在文件传输和存储的过程中。

为了保护敏感信息的安全,人们积极探索各种加密解密算法,以确保数据的机密性和完整性。

本报告将介绍一种基于C语言的文件加密解密算法。

二、文件加密解密算法的设计与实现1.设计思路文件加密解密的基本思路是将原始文件中的数据进行转换和替代,使之变得不可读或难以解读。

加密后的文件只有通过解密算法才能还原为原始文件。

本算法的设计思路是基于对文件数据进行异或运算,以实现简单而高效的加密解密过程。

2.加密算法的实现加密算法的实现主要包含以下几个步骤:(1)以二进制方式读取原始文件;(2)生成一个密钥,通过用户输入或通过随机数生成;(3)对原始文件中的每个字节进行异或运算,将结果写入加密文件中;(4)关闭文件。

3.解密算法的实现解密算法的实现与加密算法相似,只需将密钥再次进行异或运算即可还原出原始文件。

三、算法性能测试与分析1.测试环境本算法在Windows 10操作系统下使用C语言编写并编译运行。

2.测试过程与结果我们选择了一个500KB大小的文本文件进行测试。

在加密过程中,我们使用一个16位的密钥,该密钥由用户输入的任意字符串生成。

在解密过程中,用户需要输入相同的密钥以还原文件。

测试结果显示,加密解密过程均在秒级完成,且文件大小、内容没有发生变化,证明了算法的正确性和高效性。

此外,我们进行了多组重复测试,结果一致,进一步验证了算法的可靠性。

四、安全性与优化改进1.安全性分析本算法基于简单的异或运算,相对于其他复杂的加密算法可能存在一定的安全性问题。

由于密钥长度有限,加密文件的安全性取决于密钥的复杂度和保密性。

2.优化改进可以进一步提升算法的安全性和效率:(1)提供更复杂的密钥生成方式,增加密钥的复杂度;(2)使用更复杂的异或运算方式,如多重异或运算;(3)引入其他加密算法的组合使用,如DES、AES等。

加解密程序设计实验报告

加解密程序设计实验报告

一、实验目的1. 理解加解密的基本原理和方法;2. 掌握常用加密算法的使用和实现;3. 能够设计并实现简单的加解密程序;4. 培养编程能力和算法设计能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.73. 开发工具:PyCharm三、实验内容1. 选择一种加密算法(如AES、DES、RSA等);2. 理解该算法的原理和步骤;3. 设计并实现加解密程序;4. 编写测试用例,验证程序的正确性。

四、实验步骤1. 选择加密算法:本次实验选择AES加密算法,因为它具有较高的安全性和效率。

2. 理解AES加密算法原理:AES(Advanced Encryption Standard)是一种对称加密算法,其密钥长度可以是128位、192位或256位。

本实验使用128位密钥。

AES加密过程分为四个轮次,每个轮次包括字节替换、行移位、列混淆和轮密钥加。

字节替换使用S-Box进行,行移位将每行左移一位,列混淆使用混合变换,轮密钥加是将轮密钥与状态进行异或运算。

3. 设计加解密程序:(1)导入所需库```pythonfrom Crypto.Cipher import AESfrom Crypto.Util.Padding import pad, unpadfrom Crypto.Random import get_random_bytes```(2)定义加解密函数```pythondef encrypt(data, key):cipher = AES.new(key, AES.MODE_CBC)ct_bytes = cipher.encrypt(pad(data.encode(), AES.block_size)) iv = cipher.ivreturn iv + ct_bytesdef decrypt(encrypted_data, key):iv = encrypted_data[:16]ct = encrypted_data[16:]cipher = AES.new(key, AES.MODE_CBC, iv)pt = unpad(cipher.decrypt(ct), AES.block_size)return pt.decode()```4. 编写测试用例:```pythonif __name__ == '__main__':key = get_random_bytes(16) # 生成随机密钥data = "Hello, this is a test message!"encrypted_data = encrypt(data, key)decrypted_data = decrypt(encrypted_data, key)print("Original data:", data)print("Encrypted data:", encrypted_data)print("Decrypted data:", decrypted_data)```五、实验结果与分析1. 实验结果:(1)生成随机密钥:5a9a7e1a3e2c4b5d(2)加密数据:b1b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7 b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3 b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9 b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5 b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1 b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7 b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3 b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9 b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5 b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1 b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7 b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3 b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9 b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5 b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1 b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7 b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3 b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9 b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1 b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7 b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3 b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9 b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5 b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1 b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7 b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3 b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9 b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5 b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1 b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7 b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3 b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9 b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5 b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1 b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7 b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3 b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9 b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5 b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1 b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7 b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3 b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9 b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5 b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1 b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7 b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3 b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9 b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2。

DES加密解密实验报告

DES加密解密实验报告
1. 存储置换表的取值
用一维数组存储初始置换表 IP、逆置换表 IP_1、密钥置换表 PC_1、压缩密钥置换表 PC_2、
循环左移表、扩展置换表 E 盒和 P 置换盒,用三维数组存放 8 个 4*16 的 S 盒。
实现位置:Des.h 的 private 成员 代码如下:
// 初始置换表IP int IP[64] = { 58, 50, 42, 34, 26, 18, 10, 2,
3)终结置换 IP-1:按照终结置换表进行终结置换,64 位输出就是密文。 其中,在每一轮的子加密过程中,48 位的明文数据要与 48 位的子密钥进行异或运算。 子密钥的产生过程如下:
<1>对输入的密钥经过 PC1 置换输出 56 位数据,划分为 2 部分,每部分 28 位,左半部 分记为 C,右半部分记为 D。
1. DES 加密 ......................................................................................2 2. DES 解密 ......................................................................................5 四、程序实现 ...................................................................................... 5 1. 存储置换表的取值......................................................................5 2. 生成子密钥 ................................................................................. 8 3. 实现 F 函数 .................................................................................9 4. DES 加密 ....................................................................................10 5. 测试代码 ................................................................................... 11 五、程序运行初值及结果 ................................................................. 14 六、实验体会 .................................................................................... 14

汇编课程设计报告加密解密保存

汇编课程设计报告加密解密保存

汇编课程设计报告——一个简单的加密解密程序一.题目:一个简单的加密解密程序二.设计目的在原有加密程序的基础上,对加密算法进行理解,并作出对应的解密程序。

三.功能设计1.在加密提示出现后输入一个长度不大于二十的字符串,程序实现对字符串的加密并把加密后的字符串进行输出。

2.在解密提示出现后输入一个长度不大于二十的字符串,程序实现对输入的字符串以上面加密的方式进行解密,并将解密后的字符串进行输出。

四.算法设计1.在第一次输入需加密的字符串后,自动将每一个字符串的元素都加上20,然后将字符串输出。

2.在第二次输入需加密的字符串后,自动将每一个字符串中的字符加上输入字符串的第一个字符,然后将字符串输出。

3.在第三次输入需加密的字符串后,自动将每一个字符串中的字符加上输入字符串的第二个字符,然后将字符串输出。

4.第一次输入需解密的字符串后,自动将每一个字符串中的字符都减去20,然后将字符串输出。

5.在第二次输入需解密的字符串后,自动将该字符串的第一个字符取出来并除以2,求得加密字符串所用的字符,然后将字符串中所有的字符都减去加密字符,然后将字符串输出。

6..在第三次输入需解密的字符串后,自动将该字符串的第二个字符取出来并除以2,求得加密字符串所用的字符,然后将字符串中所有的字符都减去加密字符,然后将字符串输出。

五.运行结果六.代码实现:p macro bufleadx,bufmov ah,9int 21hendmdata segmentname1 db '41412157renyining$'str1db 0dh,0ah,'encrypt$'str2db 0dh,0ah,'decode$'pp db 0dh,0ah,'welcome you to run this programme!$'qqdb 0dh,0ah,'when you input number,press enter.$'qwdb 0dh,0ah,'6eh,52h,94h,52h,$'qadb 0dh,0ah,' $'info1db 0dh,0ah,0dh,'input number:$' info2db 0dh,0ah,'output number:$' bufadb 20db ?db 20 dup(0)bufbdb 20 dup(0)bufa1 db 20db ?db 20 dup(0)bufb2 db 20 dup(0)buf1 db 20db ?db 20 dup(0)buf2 db 20 dup(0)buf1adb 20db ?db 20 dup(0)buf2adb 20 dup(0)buf3 db 20db ?db 20 dup(0)buf4 db 20 dup(0)buf3adb 20db ?db 20 dup(0)buf4adb 20 dup(0) data endsstack segmentdb 100 dup(0)stack endscode segment assumeds:data,cs:code s: movax,data movds,axp name1p pppqqp str1p info1leadx,bufamov ah,10int 21hlea si,bufa+1mov cl,[si]leadi,bufb movbx,offsetbufa mov al,0xlatbufaincsin: push axadd al,[si]mov [di],alinc diincsipop axloop nmov byte ptr [di],'$' p info2p bufbp str2p info1lea dx,bufa1 mov ah,10lea si,bufa1+1 mov ch,0mov cl,[si]lea di,bufb2 movbx,offset bufa1 mov al,0xlat bufa1incsin3: push axsub [si],almov ah,[si]mov [di],ahincsiinc dipop axloop n3mov byte ptr [di],'$' p info2p bufb2p str1p info1lea dx,buf1mov ah,10int 21hlea si,buf1+1mov ch,0mov cl,[si]lea di,buf2 movbx,offset buf1 mov al,2xlat buf1incsin1: push axadd al,[si]mov [di],alinc diincsipop axloop n1mov byte ptr [di],'$' p info2p buf2p str2p info1lea dx,buf1a mov ah,10int 21hsubax,axlea si,buf1a+1 mov ch,0mov cl,[si]lea di,buf2a movbx,offset buf1a mov al,2xlat buf1aincsimov bl,2ddivbln4: push axsub [si],almov ah,[si]mov [di],ahincsiinc dipop axloop n4mov byte ptr [di],'$' p info2p buf2ap str1p info1lea dx,buf3mov ah,10int 21hlea si,buf3+1mov ch,0mov cl,[si]lea di,buf4 movbx,offset buf3 mov al,3xlat buf3incsin2: push axadd al,[si]mov [di],alinc diincsipop axloop n2mov byte ptr [di],'$' p info2p buf4p str2p info1lea dx,buf3a mov ah,10int 21hsubax,axlea si,buf3a+1 mov ch,0mov cl,[si]lea di,buf4a movbx,offset buf3a mov al,3xlat buf3aincsimov bl,2ddivbln5: push axsub [si],almov ah,[si]mov [di],ahincsiinc dipop axloop n5mov byte ptr [di],'$'p info2p buf4amov ah,4chint 21hcode endsend s。

课程设计报告:加密解密

课程设计报告:加密解密

题目加密解密课程名称面向对象程序设计课程设计院部名称信息技术学院专业计算机科学与技术班级学生姓名学号课程设计地点课程设计学时指导教师目录第一章概论 (2)1.1课题背景 (2)1.2 课题意义 (2)第二章设计简介及方案论述 (2)2.1设计简介 (2)2.2 设计方案 (3)2.2.1 加密过程 (3)2.2.2 解密过程 (4)第三章详细设计 (4)3.1子密钥的产生 (4)3.2 初始值换IP (6)3.3加密函数 (6)3.4逆初始值换1IP (8)第四章设计结果及分析 (9)4.1 程序设计代码 (9)4.2 设计结果 (15)4.3设计结果分析 (18)总结…….……………………………………………………..…………………………. ..19参考文献…….………………..………………………………..…………………………. ..20第一章概论1.1课题背景随着计算机和网络在军事、政治、金融、工业、商业等部门的广泛应用,社会对计算机和网络的依赖越来越大,科学技术的研究和发展及其在商业领域的应用等方面,无一不与信息息息相关。

所以信息就是生命,信息就是时间,信息就是财富。

由于信息是共享的,信息的扩散会产生社会影响,所以保护信息的安全是信息时代的迫切需要。

如果计算机和网络系统的信息安全受到破坏将导致社会的混乱并造成巨大损失。

因此,确保计算机和网络系统的信息安全已成为世人关注的社会问题和计算机科学与技术领域的研究热点。

通过自己对加密算法的学习研究提出了自己对于加密算法的改进思想:随着计算机技术的突飞猛进,即使利用穷举的方法也只需付出较小的代价就可以在几天内完成破解的要求。

它设计精巧、安全、方便,是近代密码的世界标准,为确保数据安全作出了重大贡献。

加密解密算法设计充分体现了Shannon 信息保密理论所阐述的设计密码的思想,标志着密码的设计与分析达到了新的水平。

1.2课题意义随着信息技术的发展和应用,人们对信息安全的认识越来越全面,越来越深刻。

DES加密解密课程设计报告

DES加密解密课程设计报告

成都信息工程学院课程设计报告DES算法加密与解密的设计与实现课程名称:密码算法程序设计学生姓名:学生学号:专业班级:任课教师:XX年XX月XX日目录1背景 (333)1.1 DES算法概述 (333)1.2 DES算法描述 (444)2系统设计 (666)2.1系统主要目标 (666)2.2系统运行环境 (777)3功能需求分析 (777)3.1整体功能分析 (777)3.2 DES算法一轮的功能分析 (777)4模块划分 (888)4.1 初始置换 (888)4.2 轮结构 (999)4.2.1 E盒扩充变换 (999)4.2.2 S盒压缩变换 (999)4.2.3 P盒置换 (101010)4.3 逆初始置换 (111111)5程序分模块实现 (111111)5.1将字符串转换成二进制流 (111111)5.2子密钥的产生 (121212)5.3F函数的计算 (131313)5.4 16轮加密的实现 (141414)5.5把密钥,密文,明文的二进制转换为10进制 (161616)5.6解密的实现 (161616)5.7程序运行界面预览 (161616)6测试报告 (161616)6.1程序总体运行情况 (171717)6.2密钥中间过程 (171717)6.3加密过程的中间结果 (181818)6.4解密过程的中间结果 (191919)7课程报告总结 (202020)1背景1.1 DES算法概述DES<Data Encryption Standard)是由美国IBM公司于20世纪70年代中期的一个密码算<LUCIFER)发展而来,在1977年1月15日,美国国家标准局正式公布实施,并得到了ISO的认可,在过去的20多年时间里,DES被广泛应用于美国联邦和各种商业信息的保密工作中,经受住了各种密码分析和攻击,有很好的安全性。

然而,目前DES算法已经被更为安全的Rijndael算法取代,但是DES加密算法还没有被彻底的破解掉,仍是目前使用最为普遍的对称密码算法。

加密解密实验报告

加密解密实验报告

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

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

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

二、加密方法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算法的加密和解密过程,我们同样将明文“加密解密实验报告”转化为了密文,并通过解密过程将密文还原为了明文。

数据加密与解密实验报告

数据加密与解密实验报告

数据加密与解密实验报告计算机信息安全实验一数据的加密与解密集美大学计算机工程学院实验报告课程名称:计算机信息安全技术指导教师:付永钢实验项目名称:数据的加密与解密实验项目编号:实验一一、目的通过对DES和RSA的使用和开发,加深对数据加密算法的理解,掌握对称加密和非对称加密体制的框架,提高对加密和解密原理的认识,学会使用加密和解密软件。

二、实验内容与设计思想1. 从服务器下载DES实力程序并执行,输入明文、密钥进行加密盒解密,可以观察采用不同的密钥进行加密和解密后的结果情况。

2.从服务器下载RSA示例程序(2个),阅读其中基于MFC的RSA加密解密程序,并对该程序进行修改,完善其中的加密解密功能。

3.从服务器下载RC4的加密和解密文档,自己独立实现一个基于RC4的加密和解密系统,能够实现对给定的文档进行基于RC4的加密和解密软件。

4. 从服务器下载PGP软件相关文档,学习基于PGP加密和解密的应用。

要求能够实现基于PGP和公钥密码的outlook邮件加密和解密功能。

三、实验使用环境一台装有Windows 2000/XP的PC、Visiual C++四、实验结果1. 班级:计算12 姓名:学号:组号:实验成绩:上机实践日期:2014.4.17 上机实践时间:4 学时错误密钥:2.3.直接输入:生成明文zhyf2 生成密文zhyf1:打开密文:篇二:实现DES加解密算法实验报告实现DES加解密算法实验报告一、DES加解密算法问题简介DES算法全称为Data EncryptionStandard,即数据加密算法,它是IBM公司于1975年研究成功并公开发表的。

DES 算法的入口参数有三个:Key、Data、Mode。

其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据:Mode为DES的工作方式,有两种:加密或解密。

二、DES加解密算法设计方法简介DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,其功能是把输入的64位数据块按位重新组合,并把输出分为L0 、R0两部分,每部分各长32位,其置换规则见下表:58,50,12,34,26,18,10,2,60,52,44,36,2 8,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,3 2,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,3 1,23,15,7,即将输入的第58位换到第一位,第50位换到第2位,……,依此类推,最后一位是原来的第7位。

DES加密解密实验报告

DES加密解密实验报告

DES加密解密实验报告DES(Data Encryption Standard),是一种对称密钥加密算法,由IBM在1975年推出。

DES密钥长度为56位,分为加密和解密两个过程。

实验目的:1.了解DES算法的原理和流程。

2.通过实际操作,掌握DES算法的加密和解密过程。

3.分析DES算法的安全性和应用场景。

实验步骤:1.选择合适的明文和密钥。

明文可以是一段文字或者数字,密钥为56位的二进制数。

2.对明文进行填充。

DES算法要求明文长度必须为64位,如果不满足则需要进行填充。

3.初始置换(IP)过程。

将64位明文按照特定的规则进行置换,得到加密前的明文。

4.将置换后的明文分为左右两部分,每部分32位。

5.进行16轮的加密操作,每轮包括以下步骤:a.将右半部分作为下一轮的左半部分。

b.根据其中一种特定规则,对右半部分进行扩展和置换操作,得到48位的数据。

c.将48位的数据和轮密钥进行异或操作,得到新的48位数据。

d.将新得到的48位数据分为8个6位数据,并进行S盒置换操作,得到4位数据。

e.将4位数据按照特定规则进行置换,得到32位数据。

f.将32位数据和左半部分进行异或操作,得到新的32位数据。

6.经过16轮的加密操作之后,左右两部分交换位置。

7.最终进行反置换(FP)操作,得到密文。

实验结果:1.明文填充:HELLO->HELLO0。

2.初始置换:HELLO0->LHLOEO0。

3.左右两部分:LHLOEO0。

4.加密过程(以第一轮为例):a.L1=RO,R1=LO实验分析:DES算法通过16轮迭代加密操作,混淆了明文的结构,提高了加密的安全性。

加密过程中涉及到扩展、置换、异或、S盒置换等操作,增加了破解的难度。

同时,DES密钥长度为56位,相对较短,存在被暴力破解的可能性。

DES算法广泛应用于各种网络通信、数据存储和传输中。

然而,由于DES密钥长度较短,安全性受到了质疑,逐渐被更安全的算法所替代,如AES算法。

密码破解实验报告

密码破解实验报告

密码破解实验报告密码破解实验报告引言:密码是我们日常生活中重要的安全保障措施之一。

然而,随着技术的发展和黑客攻击的不断进步,传统的密码保护方式也面临着越来越大的挑战。

为了了解密码的安全性以及密码破解的原理和方法,我们进行了一系列的密码破解实验。

实验一:暴力破解暴力破解是一种基于穷举法的密码破解方法,它通过尝试所有可能的密码组合来找到正确的密码。

我们选择了一个简单的四位数字密码进行实验。

通过编写一个简单的程序,我们能够在几秒钟内找到正确的密码。

这表明,对于简单的密码来说,暴力破解是一种非常有效的方法。

实验二:字典攻击字典攻击是一种基于已有密码列表的密码破解方法。

我们使用了一个常见的密码字典,其中包含了各种常见的密码组合。

通过将这个密码字典与目标密码进行对比,我们可以很快地找到正确的密码。

然而,如果目标密码不在字典中,字典攻击就会失败。

因此,字典攻击对于使用较为复杂的密码的人来说,安全性要高于暴力破解。

实验三:社会工程学攻击社会工程学攻击是一种通过欺骗和操纵人类心理来获取密码的方法。

我们通过模拟一些常见的社会工程学攻击场景,例如钓鱼邮件、电话诈骗等,来测试人们对于密码保护的警惕性。

实验结果显示,许多人在面对社会工程学攻击时容易受骗,泄露了自己的密码。

这表明,除了技术手段外,人们的安全意识和警惕性也至关重要。

实验四:加密算法破解加密算法是一种通过对数据进行转换和混淆来保护密码的方法。

我们选择了常见的对称加密算法和非对称加密算法进行破解实验。

通过编写程序,我们尝试了多种破解方法,包括穷举法、差分攻击、侧信道攻击等。

然而,由于加密算法的复杂性和强大的安全性,我们并未成功破解这些加密算法。

结论:通过一系列的密码破解实验,我们得出了以下结论:1. 对于简单密码来说,暴力破解和字典攻击是非常有效的破解方法。

因此,我们应该避免使用过于简单的密码,而是选择复杂的密码组合,包括字母、数字和特殊字符。

2. 社会工程学攻击是一种常见且危险的密码破解方法。

EFS加密、解密实验报告

EFS加密、解密实验报告

实验项目与实验报告( 3)
一、实验步骤:
1.(1)打开控制面板,先创建一个用户,然后在管理员用户里面新建一个文件并对其加密。

(2)切换用户,导出秘钥进行解密。

3.
二、实验内容:
1.(1)打开控制面板,管理账户,创建新的标准用户333.
(2)在电脑磁盘C盘创建一个‘新文件夹’,在文件夹里新建记事本,输入想要的数据。

3)点击新文件夹,右击对属性进行调整,如下图所示,点确定,应用,确定。

(4)在单机应用后,会跳出一个加密文件系统窗口,单机进入界面,如图:
(5)接着单击下一步,自己设置密码保护私钥安全。

(6)将秘钥导出到自己的D盘。

单机完成,此时完成加密。

(7)切换到333用户,在C盘找到‘新文件夹’,双击,出现如下图,说明加密成功,
(8)此时在电脑搜索程序中输入certmgr.msc,单机进入个人密钥的导入,结果如图:。

实验报告 加密与解密(文件) C语言

实验报告   加密与解密(文件) C语言

实验报告---文件的加密与解密一、问题重述基于对各种加密算法的理解,结合各种加密、解密算法,选择合适的加密方法分别对文件进行加密和解密。

二、实验目的及要求2.1 实验目的1)在Linux环境下编写C语言程序,实现文件加密与解密;2)通过此次实验了解通信过程中不同的加密方式;3)了解不同的加密算法及加密过程;4)从多种加密和解密方式出发,对加密和解密的知识进行扩展。

2.2 实验要求根据不同的加密算法,设计加密程序,完成对文件的加密和解密。

2.3实验环境操作系统:Linux操作系统、window10操作系统;C语言环境: vim编辑器、DEV C++编辑器。

硬件环境:机房内电脑及个人笔记本电脑。

三、总体设计及思路3.1 实验思路对于文件的加密和解密主要采用ASCII与十进制数字之间相互转换的方法。

1)准备部分新建三个文件,分别命名为file1、file2、file3,其中file1装有源数据;将对file1加密后的信息放入file2中;对file2进行解密,解密生成的信息放入file3中。

2)计算部分当进入加密模式,首先对文件file1、file2进行读取操作,在保证成功读取文件的前提下,采用十进制转ASCII码的方法对文件file1进行加密,且加密后的数据保存在file2中,即文件file2是文件file1的加密文件。

采用ASCII码转十进制的方法对文件file2进行解密,解密后的数据放入file3中,即file3是file2的源文件。

四、实验过程4.1.1文件的读取顾名思义文件的加密和解密是以文件作为依托的,所以我们首先需要新建两个文件,文件1存放原始数据,其名字定义为file1.text;对文件1进行加密后需要将加密后的数据存放至文件2中,此处将文件2命名为file2.txt,最后将利用fopen函数以读取的方式打开文件,文件读取代码如下:4.1.2 文件的加密文件的加密过程采用十进制转三位ASCII码的加密方式,对从文件1中读取的字符依次进行ASCII码的转换,此段代码如下:4.1.3 文件的解密文件的解密过程采用与加密过程相反的操作,在linux下新建一个文件“file3.txt”,对加密后保存到文件2内的数据字符进形读取,将其转化为十进制,再将解密后的结果保存到file3中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

郑州轻工业学院本科实验报告设计题目:使用加密保护信息学生姓名:***系别:计算机与通信工程学院专业:计算机通信工程学院班级:网络运维13-01学号:************指导教师:吉星、程立辉2016 年4月18日1目的数据加密技术是网络中最基本的安全技术,主要是通过对网络中传输的信息进行数据加密来保障其安全性,这是一种主动安全防御策略,用很小的代价即可为信息提供相当大的安全保护。

2题目使用C#编程语言,进行数据的加密与解密。

系统基本功能描述如下:1、实现DES算法加密与解密功能。

2、实现TripleDES算法加密与解密功能。

3、实现MD5算法加密功能。

4、实现RC2算法加密与解密功能。

5、实现TripleDES算法加密与解密功能。

6、实现RSA算法加密与解密功能。

3加密知识加密的基本概念"加密",是一种限制对网络上传输数据的访问权的技术。

原始数据(也称为明文,plaintext)被加密设备(硬件或软件)和密钥加密而产生的经过编码的数据称为密文(ciphertext)。

将密文还原为原始明文的过程称为解密,它是加密的反向处理,但解密者必须利用相同类型的加密设备和密钥对密文进行解密。

加密的基本功能包括:1. 防止不速之客查看机密的数据文件;2. 防止机密数据被泄露或篡改;3. 防止特权用户(如系统管理员)查看私人数据文件;4. 使入侵者不能轻易地查找一个系统的文件。

数据加密是确保计算机网络安全的一种重要机制,虽然由于成本、技术和管理上的复杂性等原因,目前尚未在网络中普及,但数据加密的确是实现分布式系统和网络环境下数据安全的重要手段之一。

数据加密可在网络OSI七层协议(OSI是Open System Interconnect 的缩写,意为开放式系统互联。

国际标准组织(国际标准化组织)制定了OSI模型。

这个模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

)的多层上实现、所以从加密技术应用的逻辑位置看,有三种方式:①链路加密:通常把网络层以下的加密叫链路加密,主要用于保护通信节点间传输的数据,加解密由置于线路上的密码设备实现。

根据传递的数据的同步方式又可分为同步通信加密和异步通信加密两种,同步通信加密又包含字节同步通信加密和位同步通信加密。

②节点加密:是对链路加密的改进。

在协议传输层上进行加密,主要是对源节点和目标节点之间传输数据进行加密保护,与链路加密类似.只是加密算法要结合在依附于节点的加密模件中,克服了链路加密在节点处易遭非法存取的缺点。

③端对端加密:网络层以上的加密称为端对端加密。

是面向网络层主体。

对应用层的数据信息进行加密,易于用软件实现,且成本低,但密钥管理问题困难,主要适合大型网络系统中信息在多个发方和收方之间传输的情况。

●数据加密的应用1、媒体加密:DRM2、文件加密:文本加密、pdf、word3、数据加密:(C#)中的数据加密4、硬件加密:加密狗●加密技术发展趋势①私用密钥加密技术与公开密钥加密技术相结合:鉴于两种密码体制加密的特点,在实际应用中可以采用折衷方案,即结合使用DES/IDEA和RSA,以DES为"内核",RSA为"外壳",对于网络中传输的数据可用DES或IDEA加密,而加密用的密钥则用RSA加密传送,此种方法既保证了数据安全又提高了加密和解密的速度,这也是目前加密技术发展的新方向之一。

②寻求新算法:跳出以常见的迭代为基础的构造思路,脱离基于某些数学问题复杂性的构造方法。

如刘尊全先生提出的刘氏算法,是一种基于密钥的公开密钥体制,它采用了随机性原理构造加解密变换,并将其全部运算控制隐匿于密钥中,密钥长度可变。

它是采用选取一定长度的分割来构造大的搜索空间,从而实现一次非线性变换。

此种加密算法加密强度高、速度快、计算开销低。

③加密最终将被集成到系统和网络中,例如IPV6协议就已有了内置加密的支持,在硬件方面,Intel公司正研制一种加密协处理器。

它可以集成到微机的主极上。

加密技术的分类加密类型可以简单地分为四种:1. 根本不考虑解密问题,如:MD5;2. 私用密钥加密技术:对称式加密(Symmetric Key Encryption):对称式加密方式对加密和解密使用相同的密钥。

通常,这种加密方式在应用中难以实施,因为用同一种安全方式共享密钥很难。

如:RC4、RC2、DES 和AES 系列加密算法。

3. 公开密钥加密技术:非对称密钥加密(Asymmetric Key Encryption):非对称密钥加密使用一组公共/私人密钥系统,加密时使用一种密钥,解密时使用另一种密钥。

公共密钥可以广泛的共享和透露。

当需要用加密方式向服务器外部传送数据时,这种加密方式更方便。

如:RSA4. 数字证书。

(Certificate):数字证书是一种非对称密钥加密,但是,一个组织可以使用证书并通过数字签名将一组公钥和私钥与其拥有者相关联。

4步骤4.1主框架根据功能描述可知,建立主界面窗体如下所示。

设置主窗体的IsMdiContainer为True;添加menuStrip控件,并设置其相应菜单属性。

4.2设计类根据需求分析,定义Security类用于描述各种加密算法,具体方法是:1、右击“解决方案资源管理器”的项目,新建文件夹“app_code”2、选择“项目”——》“添加类”,输入类的名称:4.3各种具体加密算法4.3.1对称加密之DES和TripleDES加密与解密对称加密对称加密,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码)。

因此,通信双方都必须获得这把钥匙,并保持钥匙的秘密。

单钥密码系统的安全性依赖于以下两个因素:第一、加密算法必须是足够强的,仅仅基于密文本身去解密信息在实践上是不可能的。

第二、加密方法的安全性依赖于密钥的秘密性,而不是算法的秘密性,因此,我们没有必要确保算法的秘密性(事实上,现实中使用的很多单钥密码系统的算法都是公开的),但是我们一定要保证密钥的秘密性。

DES(Data Encryption Standard)和TripleDES是对称加密的两种实现。

DES和TripleDES基本算法一致,只是TripleDES算法提供的key 位数更多,加密可靠性更高。

DES使用的密钥key为8字节,初始向量IV也是8字节。

TripleDES使用24字节的key,初始向量IV也是8字节。

两种算法都是以8字节为一个块进行加密,一个数据块一个数据块的加密,一个8字节的明文加密后的密文也是8字节。

如果明文长度不为8字节的整数倍,添加值为0的字节凑满8字节整数倍。

所以加密后的密文长度一定为8字节的整数倍。

加密解密过程上图是整个DES和TripleDES算法的加密解密过程,下面以TripleDES为例,结合dotnet分析加密解密的各个步骤,并给出相关实现代码。

1、生成key和IVSystem.Security.Cryptography. TripleDESCryptoServiceProvider类是dotnet中实现TripleDES算法的主要的类。

TripleDESCryptoServiceProvider类只有一个构造方法TripleDESCryptoServiceProvider(),这个方法把一些属性初始化:KeySize(加密密钥长度,以位为单位)= 192(24字节)BlockSize(加密处理的数据块大小,以位为单位)= 64(8字节)FeedbackSize(加密数据块后返回的数据大小,以位为单位)= 64(8字节)TripleDESCryptoServiceProvider构造方法同时会初始化一组随机的key 和IV。

默认的TripleDESCryptoServiceProvider的key为24字节,IV为8字节,加密数据块为8字节。

生成key和IV的代码很简单:TripleDESCryptoServiceProvider tDESalg = new TripleDESCryptoServi ceProvider();byte[] keyArray = tDESalg.Key;byte[] IVArray = tDESalg.IV;生成的key和IV在加密过程和解密过程都要使用。

2、字符串明文转成某一代码页对应的编码字节流待加密的数据可能有两种形式,一种是二进制的数据,本身就是一组字节流,这样的数据可以跳过这一步,直接进入加密步骤。

还有一种情况是字符串数据,字符串中同样的字符使用不同的代码页会生成不同的字节码,所以从字符串到字节流的转换是需要指定使用何种编码的。

在解密之后,要从字节流转换到字符串就要使用相同的代码页解码,否则就会出现乱码。

// 待加密的字符串string plainTextString = "Here is some data to encrypt. 这里是一些要加密的数据。

";// 使用utf-8编码(也可以使用其它的编码)Encoding sEncoding = Encoding.GetEncoding("utf-8");// 把字符串明文转换成utf-8编码的字节流byte[] plainTextArray = sEncoding.GetBytes(plainTextString);3、加密操作加密的原料是明文字节流,TripleDES算法对字节流进行加密,返回的是加密后的字节流。

同时要给定加密使用的key和IV。

// 把字符串明文转换成utf-8编码的字节流byte[] plainTextArray = sEncoding.GetBytes(plainTextString);public static byte[] EncryptString(byte[] plainTextArray, byte[] Key, byte[] IV){// 建立一个MemoryStream,这里面存放加密后的数据流MemoryStream mStream = new MemoryStream();// 使用MemoryStream 和key、IV新建一个CryptoStream 对象CryptoStream cStream = new CryptoStream(mStream,new TripleDESCryptoServiceProvider().CreateEncryptor(Key, IV), CryptoStreamMode.Write);// 将加密后的字节流写入到MemoryStreamcStream.Write(plainTextArray, 0, plainTextArray.Length);//把缓冲区中的最后状态更新到MemoryStream,并清除cStream的缓存区cStream.FlushFinalBlock();// 把解密后的数据流转成字节流byte[] ret = mStream.ToArray();// 关闭两个streams.cStream.Close();mStream.Close();return ret;}4、解密操作解密操作解密上面步骤生成的密文byte[],需要使用到加密步骤使用的同一组Key和IV。

相关文档
最新文档