信息安全加密实验报告

合集下载

信息安全试验报告范文-图文

信息安全试验报告范文-图文

信息安全试验报告范文-图文实验一Window环境下对称和非对称加解密1、实验目的(1).了解传统密码技术(2).掌握对称密码体制和公钥密码体制(3).掌握密钥管理(4).了解网络保密通信2、实验题目Window环境下对称和非对称加解密,3、实验原理与理论基础对称式加密就是加密和解密使用同一个密钥,通常称之为“SeionKey”这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的SeionKey长度为56Bit。

非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。

这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。

它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。

而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。

4、实验内容(一)、对称加密(1)、office文件加密与解密a、创建DOC文件b、在office中加密压缩时,winrar的高级选项卡中可以选择带密码压缩(3)、用openl进行文件加密(二)、非对称加密使用加密软件PGP(菲利普。

齐莫尔曼,采用RSA算法,91年上传,93年谈判,94年合法,1996年撤销指控)(2)、软件运行,导出密钥对后,其中的公钥可以发给朋友,对往来邮件或其他加密,私钥自己留下解密。

(1)、对称加密office文件加密与解密2使用压缩工具winrar加密1、点击文件“winrar加密”文件夹,鼠标右键,选择“添加压缩文件”。

32、选择“密码”:加密压缩分为带密码压缩和非带密码压缩。

4非带密码压缩带密码压缩压缩结果5用openl进行文件加密OpenSSL支持很多加密算法,但是一些算法只是为了保持向后兼容性,现在已不推荐使用,比如DES和RC4-40。

信息安全实验报告

信息安全实验报告

信息安全实验报告
一、实验目的
本次实验是为了研究信息安全的基本概念,建立一个简单的安全模型,探讨信息安全的模型,并对其进行实验测试,了解信息安全的相关技术,
以及如何保护敏感信息。

二、实验内容
1.定义信息安全
信息安全是指保护敏感信息不被未经授权的人访问、使用或篡改的过程。

2.研究信息安全模型
信息安全模型是一个有机的概念,它包括防御、检测、响应、应急和
恢复5个基本组成部分,旨在保护敏感信息免受未经授权的访问、使用和
篡改。

3.研究信息系统安全技术
为了增强信息安全,引入了一系列安全技术来防止未经授权的访问、
使用或篡改敏感信息,这些技术包括访问控制、身份验证、数据加密和远
程登录安全。

4.建立模型实验
为了检验信息安全模型,本次实验采用Kali Linux作为实验环境,Kali Linux设有访问控制、身份验证、数据加密和远程登录安全等安全
技术,以阻止非法的访问和操纵。

三、实验结果
1.安全技术实施完毕
在实验中,实施了访问控制、身份验证、数据加密和远程登录安全等安全技术,保证了正常的服务器运行。

2.平台安全性测试
采用Metasploit框架进行安全测试。

信息安全技术实验报告

信息安全技术实验报告

信息安全技术实验报告一.实验目的本实验旨在探究信息安全技术在网络通信中的应用,了解加密算法和数字签名的基本原理,并通过实际操作掌握其具体实现过程。

二.实验内容1.对称加密算法实验-选择一种对称加密算法,如DES或AES,了解其基本原理和加密流程。

- 使用Python编写对称加密算法的实现程序。

-在实验过程中,通过设计不同的密钥长度和明文信息,观察加密结果的变化。

2.非对称加密算法实验-选择一种非对称加密算法,如RSA,了解公钥和私钥的生成方法。

- 使用Python编写非对称加密算法的实现程序。

-在实验中,生成一对密钥,并将公钥用于加密明文,私钥用于解密密文。

观察加密和解密过程是否正确。

3.数字签名实验-了解数字签名的基本原理和应用场景。

- 使用Python编写数字签名的实现程序。

-在实验中,生成一对密钥,并使用私钥对明文进行签名,再使用公钥验证签名的正确性。

三.实验步骤及结果1.对称加密算法实验-选择了AES加密算法,其基本原理是将明文分组并通过多轮加密运算得到密文。

- 编写了Python程序实现AES加密算法,并进行了调试。

-在不同的密钥长度和明文信息下,得到了不同的加密结果。

观察到密钥长度的增加可以提高加密的安全性。

2.非对称加密算法实验-选择了RSA加密算法,其基本原理是使用两个密钥,公钥用于加密,私钥用于解密。

- 编写了Python程序实现RSA非对称加密算法,并进行了调试。

-成功生成了一对密钥,并使用公钥加密明文,私钥解密密文,观察到加密和解密结果正确。

3.数字签名实验-了解到数字签名可以保证数据的完整性和真实性。

- 编写了Python程序实现数字签名的生成和验证功能,并进行了调试。

-成功生成了一对密钥,并使用私钥对明文进行签名,再使用公钥验证签名的正确性。

四.实验总结本次实验通过对称加密算法、非对称加密算法和数字签名的实现,加深了对信息安全技术的理解和认识。

通过实际操作,掌握了加密算法和数字签名的基本原理和实现过程。

《信息安全》实验报告3MD5的计算和破解

《信息安全》实验报告3MD5的计算和破解

《信息安全》实验报告3MD5的计算和破解1.引言信息安全是一个重要的领域,加密算法是其中的核心技术之一、MD5(Message Digest Algorithm 5)是一种常用的哈希算法,广泛应用于文件校验、数据完整性验证等等领域。

本实验旨在通过计算和破解MD5,深入了解MD5的工作原理和安全性。

2.实验目的(1)了解MD5算法的基本原理;(2)掌握MD5算法的计算过程;(3)通过破解MD5,了解其安全性问题。

3.实验过程3.1MD5算法的基本原理MD5算法通过对输入的字符串进行分组,然后对每个分组进行一系列的位运算和逻辑运算,最终生成一个128位(16字节)的哈希值。

MD5算法的基本原理如下:(1)填充:在输入字符串的末尾填充一些字节,使得输入字符串的长度能被64整除。

(2)初始化:将16进制的常数赋给4个32位寄存器A、B、C、D。

(3)分组:将填充后的输入字符串分为若干个512位的分组。

(4)处理:对每个分组进行一系列的位运算和逻辑运算。

(5)生成哈希值:将处理后的结果按一定顺序连接起来,得到一个128位的哈希值。

3.2MD5的计算过程通过Python编程语言实现MD5算法的计算过程如下:(1)初始化四个32位寄存器A、B、C、D,并赋初值。

(2)将待计算的字符串分组,每个分组512位。

(3)对每个分组进行一系列的位运算和逻辑运算,生成一个128位的哈希值。

(4)将生成的哈希值转换为16进制字符串。

3.3MD5的破解MD5算法虽然被广泛应用,但是也存在一定的安全性问题。

MD5哈希值是固定长度的,而输入字符串的长度可以是任意长度的,这就导致了哈希碰撞(hash collision)的概率增加。

哈希碰撞是指不同的输入字符串可以生成相同的哈希值,从而破解MD5密码。

破解MD5密码一般采用暴力破解和字典攻击两种方式。

4.实验结果通过编程计算MD5并破解一个MD5密码,结果如下:5.实验总结通过本次实验,我们了解了MD5算法的基本原理和计算过程。

密码与信息加密实验报告

密码与信息加密实验报告

实验项目一:密码与信息加密一、实验目的及要求:(1)要求学生了解密码技术中的相关算法(2)了解密码技术的作用和保护信息资源的方法(3)掌握常用密码算法的基本原理,了解它们的实现方法。

学会进行加密解密。

二、实验内容1.要求用C/C++/Java/Python编写加密程序和解密程序(1)根据实验室情况安装编译运行环境;(2) 编写RC4加密和解密程序。

#include<cstdio>#include<string.h>#include"malloc.h"#include<stdlib.h># include<iostream>using namespace std;/*函数声明*/void InitSbox(unsigned char sbox[]);void KeyExpansion(unsigned char key[], char* k, int len);void UpsetSbox(unsigned char sbox[], unsigned char key[]);void DataProcess(unsigned char sbox[], FILE* fp1, FILE* fp2);void DataEncrypt(char* k, unsigned char* key, unsigned char* sbox, FILE* fp1, FILE*fp2);void DataDecrypt(char* k1, unsigned char* key, unsigned char* sbox, FILE* fp1, FILE*fp2);/*初始化S盒*/void InitSbox(unsigned char sbox[]) {for (int i = 0; i < 256; i++) sbox[i] = i;}/*密钥填充256数组*/void KeyExpansion(unsigned char key[], char* k, int len) {if (len <= 256) {for (int i = 0; i < 256; i++) key[i] = k[i % len];}if (len > 256) {for (int i = 0; i < 256; i++) key[i] = k[i];}}/*打乱S盒*/void UpsetSbox(unsigned char sbox[], unsigned char key[]) {int j = 0;unsigned char temp;int n;for (int i = 0; i < 256; i++) {n = j + (int)sbox[i] + (int)key[i];j = n % 256;temp = sbox[i];sbox[i] = sbox[j];sbox[j] = temp;}}/*加解密数据*/void DataProcess(unsigned char sbox[], FILE* fp1, FILE* fp2) {int i, j;i = 0; j = 0;char ch = fgetc(fp1);while (ch != EOF) {i = (i + 1) % 256;int temp2 = j + (int)sbox[i];j = temp2 % 256;unsigned char temp;temp = sbox[i];sbox[i] = sbox[j];sbox[j] = temp;int temp1 = (int)sbox[i] + (int)sbox[j];int t = temp1 % 256;char k = sbox[t];char cipherchar = ch ^ k;fputc(cipherchar, fp2);ch = fgetc(fp1);}}/*加密总函数*/void DataEncrypt(char* k, unsigned char* key, unsigned char* sbox, FILE* fp1, FILE* fp2) {int len = strlen(k);KeyExpansion(key, k, len);InitSbox(sbox);UpsetSbox(sbox, key);DataProcess(sbox, fp1, fp2);fclose(fp1);fclose(fp2);printf("\n加密成功!\n\n");}/*解密总函数*/void DataDecrypt(char* k1, unsigned char* key, unsigned char* sbox, FILE* fp1, FILE* fp2) {int len = strlen(k1);KeyExpansion(key, k1, len);InitSbox(sbox);UpsetSbox(sbox, key);DataProcess(sbox, fp1, fp2);fclose(fp1);fclose(fp2);printf("\n解密成功!\n\n");}int main() {char* k = (char*)malloc(25 * sizeof(char));char* k1 = (char*)malloc(25 * sizeof(char));unsigned char key[256] = { 0x00 };unsigned char sbox[256] = { 0x00 };FILE* fp1, * fp2;int flag = 1;int choice;do {printf("*****************************RC4加密解密文件************************************");printf("\n");printf(" 1.加密文件\n\n");printf(" 2.解密文件\n\n");printf(" 3.退出\n\n");printf("请选择要进行的操作:");scanf("%d", &choice);switch (choice) {case 1: fp1 = fopen("源文件.txt", "r");if (fp1 == NULL) {printf("打开源文件失败!\n");getchar();exit(0);}fp2 = fopen("加密后文件.txt", "w");if (fp2 == NULL) {printf("打开加密后文件失败!\n");getchar();exit(0);}printf("\n请输入加密密钥:");cin >> k;DataEncrypt(k, key, sbox, fp1, fp2);break;case 2: fp1 = fopen("加密后文件.txt", "r");if (fp1 == NULL) {printf("打开加密后文件失败!\n");getchar();exit(0);}fp2 = fopen("解密后文件.txt", "w");if (fp2 == NULL) {printf("打开解密后文件失败!\n");getchar();exit(0);}printf("\n请输入解密密钥:");cin >> k1;DataDecrypt(k1, key, sbox, fp1, fp2);break;case 3: flag = 0; break;default: printf("\n操作不合法!\n\n");}} while (flag);}网络安全技术实验报告(1)实验人:(学号+姓名)16250331叶陈锋时间:2019-10-07地点:个人电脑指导老师:刘家希实验机器IP地址:1. 加密部分代码及运行结果截图。

《信息安全》实验报告3MD5的计算和破解

《信息安全》实验报告3MD5的计算和破解

《信息安全》实验报告3MD5的计算和破解实验目标:1.了解MD5算法的基本原理。

2.掌握MD5算法的计算和应用。

3.理解MD5算法的弱点,并尝试破解MD5哈希值。

一、实验原理:MD5(Message Digest Algorithm 5)是一种常用的消息摘要算法,用来确保数据的完整性和一致性,广泛应用于信息安全领域中。

MD5将任意长度的输入数据进行计算,得到一个128位的哈希值。

实验步骤:1.编写MD5的计算代码。

2.编写MD5的破解代码。

3.运行代码,计算给定字符串的MD5哈希值。

4.破解给定MD5哈希值。

二、实验过程:1.MD5的计算代码编写:MD5算法的计算过程包括四个主要的步骤:填充位、增加长度、初始化变量和循环计算。

a.填充位:将待计算的消息填充至512位的倍数,填充位为1后面加零。

b.增加长度:在填充消息后增加一个64位的二进制数,表示原始消息的长度。

c.初始化变量:设定固定的四个变量,用于循环计算。

d.循环计算:将填充后的消息分为512位的块进行循环计算,计算结果与前一块的结果进行累加。

2.MD5的破解代码编写:MD5的破解目标是通过已知的MD5哈希值,找到对应的原始数据。

一般的方法是尝试不同的输入数据,计算MD5哈希值,然后与已知的哈希值进行比较。

a.枚举法:通过不断尝试不同的输入数据,计算MD5哈希值与给定哈希值进行比较,直到找到对应的原始数据。

b.字典法:通过预先准备好的字典文件,将字典中的每个词进行MD5哈希计算,然后与给定哈希值进行比较,查找对应的原始数据。

3.实验结果展示:4.MD5的破解:a.枚举法:从'a'到'z'的26个字符中依次尝试,计算MD5哈希值并与给定值进行比较,直到找到对应的原始数据。

b.字典法:根据常见密码字典构建一个文本文件,逐行读取文件中的词进行MD5哈希计算并与给定值进行比较,直到找到对应的原始数据。

5.实验总结:实验中,我们通过计算MD5哈希值和尝试破解,深入了解了MD5算法的原理和应用。

实验吧_密码学实验报告(3篇)

实验吧_密码学实验报告(3篇)

第1篇一、实验背景密码学是一门研究信息加密与解密的学科,它广泛应用于信息安全领域。

为了更好地理解密码学的基本原理和算法,我们选择了实验吧平台上的密码学实验进行学习。

本次实验旨在通过实际操作,加深对古典密码、对称密码和不对称密码等密码学基本概念的理解,提高密码学应用能力。

二、实验目的1. 理解并掌握古典密码的基本原理和算法;2. 掌握对称密码和不对称密码的基本原理和算法;3. 通过实验操作,提高密码学应用能力;4. 培养团队协作和解决问题的能力。

三、实验内容1. 古典密码实验(1)仿射密码原理:仿射密码是一种单字母替换密码,加密公式为:C = (aP + b) mod 26,其中C为密文字母,P为明文字母,a和b为密钥。

操作步骤:1)编写加密函数encrypt,实现仿射密码加密;2)编写解密函数decrypt,实现仿射密码解密;3)测试加密和解密函数,验证其正确性。

(2)单表代替密码原理:单表代替密码是一种将明文字符映射到密文字符的替换密码。

操作步骤:1)编写加密函数subencrypt,实现单表代替密码加密;2)编写解密函数subdecrypt,实现单表代替密码解密;3)测试加密和解密函数,验证其正确性。

(3)维吉尼亚密码原理:维吉尼亚密码是一种多字母替换密码,加密公式为:C = (P + K[i]) mod 26,其中C为密文字母,P为明文字母,K为密钥,i为索引。

操作步骤:1)编写加密函数vigenereencrypt,实现维吉尼亚密码加密;2)编写解密函数vigeneredecrypt,实现维吉尼亚密码解密;3)测试加密和解密函数,验证其正确性。

2. 对称密码实验(1)DES加密算法原理:DES(Data Encryption Standard)是一种分组加密算法,采用56位密钥,64位分组。

操作步骤:1)编写DES加密函数desencrypt,实现DES加密;2)编写DES解密函数desdecrypt,实现DES解密;3)测试加密和解密函数,验证其正确性。

网络信息安全实验报告

网络信息安全实验报告

网络信息安全实验报告一、实验目的随着信息技术的飞速发展,网络已经成为人们生活和工作中不可或缺的一部分。

然而,网络信息安全问题也日益凸显,如黑客攻击、病毒传播、数据泄露等,给个人和企业带来了巨大的损失。

本次实验的目的在于深入了解网络信息安全的重要性,掌握常见的网络攻击手段和防御方法,提高网络信息安全意识和防范能力。

二、实验环境本次实验在实验室的局域网环境中进行,使用了以下设备和软件:1、计算机:若干台,安装了 Windows 操作系统和常用的应用软件。

2、网络设备:路由器、交换机等,用于构建实验网络。

3、安全工具:防火墙、入侵检测系统、漏洞扫描工具等。

4、实验软件:Metasploit、Nmap、Wireshark 等。

三、实验内容(一)网络扫描与漏洞探测使用 Nmap 工具对目标网络进行扫描,获取网络拓扑结构、主机信息和开放端口等。

通过漏洞扫描工具对目标主机进行漏洞探测,发现可能存在的安全漏洞,如弱口令、系统漏洞、应用程序漏洞等。

(二)网络攻击模拟1、利用 Metasploit 框架进行漏洞利用攻击,如缓冲区溢出攻击、SQL 注入攻击等,尝试获取目标主机的控制权。

2、进行DDoS 攻击模拟,使用工具向目标服务器发送大量的请求,导致服务器资源耗尽,无法正常提供服务。

(三)网络防御措施1、配置防火墙规则,限制外部网络对内部网络的访问,阻止非法流量进入。

2、安装入侵检测系统,实时监测网络中的异常活动,及时发现并报警。

3、定期对系统和应用程序进行补丁更新,修复已知的安全漏洞。

4、加强用户认证和授权管理,设置强口令策略,防止非法用户登录。

(四)数据加密与解密1、学习对称加密算法(如 AES)和非对称加密算法(如 RSA)的原理和实现方法。

2、使用加密工具对文件进行加密和解密操作,体会数据加密在保护信息安全中的作用。

四、实验步骤(一)网络扫描与漏洞探测1、打开 Nmap 工具,输入目标网络的 IP 地址范围,选择扫描类型(如全面扫描、端口扫描等),开始扫描。

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

重庆交通大学实验报告班级:计信专业2012级2班学号:*************名:***实验项目名称:DES加解密程序设计与实现实验项目性质:设计性(验证性)实验所属课程:信息安全实验室(中心):软件实验室****:**实验完成时间:2014 年12月11日一、实验目的1、理解DES加密与解密的程序设计算法思想。

2、编写DES加密与解密程序,实现对明文的加密与解密,加深对数据加密与解密的理解,掌握DES加密算法思想,提高网络安全的编程能力。

二、实验主要内容及原理(一)实验内容1、掌握DES算法;2、编写DES算法。

(二)实验原理1、初始置换初始置换在第一轮运算之前执行,对输入分组实施如下表所示的变换。

此表应从左向右、从上向下读。

在将这64位数据分为左右两部分,每部分分别为32位,将左32位留下,将右32位按照下表进行排列2、密钥置换一开始,由于不考虑每个字节的第8位,DES的密钥由64位减至56位。

每个字节第8位可作为奇偶校验位以确保密钥不发生错误。

接着,56位密钥被分成两部分,每部分28位。

然后,根据轮数,这两部分分别循环左移l位或2位。

在DES的每一轮中,从56位密钥选出48位子密钥(Sub Key)。

3、S盒置换当产生了48位密钥后就可以和右边32位明文进行异或运算了,得到48位的密文。

再经过下论的S盒跌带,其功能是把6bit数据变为4bit数据,每个S盒是一个4行、16列的表。

盒中的每一项都是一个4位的数。

S盒的6个位输入确定了其对应的输出在哪一行哪一列。

4、P盒置换S盒代替运算后的32位输出依照P盒进行置换。

该置换把每输入位映射到输出位,任意一位不能被映射两次,也不能被略去,这个置换叫做直接置换。

5、再次异或运算最后,将P盒置换的结果与最初的64位分组的左半部分异或,然后左、右半部分交换,接着开始另一轮。

6、当进行到16轮后,最终进行一次末置换,形成密文三、实验过程简述利用编程语言实现DES加解密算法。

编程:包含的功能函数有:enum {ENCRYPT,DECRYPT};// ENCRYPT:加密,DECRYPT:解密void Des_Run(char Out[8], char In[8], bool Type=ENCRYPT);// 设置密钥void Des_SetKey(const char Key[8]);static void F_func(bool In[32], const bool Ki[48]);// f 函数static void S_func(bool Out[32], const bool In[48]);// S 盒代替// 变换static void Transform(bool *Out, bool *In, const char *Table, int len);static void Xor(bool *InA, const bool *InB, int len);// 异或static void RotateL(bool *In, int len, int loop);// 循环左移// 字节组转换成位组static void ByteToBit(bool *Out, const char *In, int bits);// 位组转换成字节组static void BitToByte(char *Out, const bool *In, int bits);//置换IP表const static char IP_Table[64] = {58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,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,31,23,15,7};//逆置换IP-1表const static char IPR_Table[64] = {40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29,36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27,34,2,42,10,50,18,58,26,33,1,41,9,49,17,57,25};//E位选择表static const char E_Table[48] = {32,1,2,3,4,5,4,5,6,7,8,9,8,9,10,11,12,13,12,13,14,15,16,17,16,17,18,19,20,21,20,21,22,23,24,25,24,25,26,27,28,29,28,29,30,31,32,1};//P换位表const static char P_Table[32] = {16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10,2,8,24,14,32,27,3,9,19,13,30,6,22,11,4,25 };//PC1选位表const static char PC1_Table[56] = {57,49,41,33,25,17,9,1,58,50,42,34,26,18, 10,2,59,51,43,35,27,19,11,3,60,52,44,36, 63,55,47,39,31,23,15,7,62,54,46,38,30,22, 14,6,61,53,45,37,29,21,13,5,28,20,12,4 };//PC2选位表const static char PC2_Table[48] = {14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48, 44,49,39,56,34,53,46,42,50,36,29,32 };//左移位数表const static char LOOP_Table[16] = { 1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1};// S盒const static char S_Box[8][4][16] = {// S114,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0, 15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,//S215,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15, 13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,//S310,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8, 13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1, 13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12,//S47,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15, 13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9, 10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14,//S52,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6,4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14,11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3,//S612,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,//S74,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2,6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12,//S813,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11};static bool SubKey[16][48];// 16圈子密钥实验主函数void main(){char key[8]={1,9,8,0,9,1,7,2},str[]="ssssssssfff";puts("Before encrypting");puts(str);Des_SetKey(key);Des_Run(str, str, ENCRYPT);puts("After encrypting");puts(str);puts("After decrypting");Des_Run(str, str, DECRYPT);puts(str);}四、实验结果简述五、实验心得“。

相关文档
最新文档