实验9 加密与解密实验

  • 格式:doc
  • 大小:1012.00 KB
  • 文档页数:17

下载文档原格式

  / 17
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
scanf("%d%*c", &offset);
n = strlen(str);
for (i = 0; i < n; i++)
{
if ('a' <= str[i] && str[i] <= 'z' + offset || 'A' <= str[i] && str[i] <= 'Z' - offset)
新疆师范大学
计算机网络安全(本科)
实验报告
实验名称:实验9加密与解密实验
院 系:计算机科学技术学院
班 级:2011-01班
学生姓名:木拉提·巴力
学 号:20111601141025
合作者姓名:米热古丽·塔力浦
指导教师:赵新元老师
教师评阅结果:
教师评语:
实验日期2014年12月28日
一、实验目的
1、掌握Caeser密码原理,理解Caeser密码加密、解密过程。
2、了解使用程序实现DES和RSA加解密。
3、学会使用PGP加密软件加密文件与邮件。
二、实验内容
1、编写实现Caeser密码加密、解密
2、了解程序实现DES和RSA加密、解密
3、使用PGP加密文件
4、使用PGP加密邮件
三、实验原理
请简介一下PGP加密的基本原理。
四、实验步骤
1、编写一个程序能够实现Caeser加密与解密。假定Caeser密码的偏移量为3,本程序只对小写字符进行加密,要求用户从键盘输入你的姓名拼音(假设长度小于100),将其进行加密后显示出来,然后再显示出原文。请截图显示你的程序运行结果,并附上源代码。
1.加密程序运行结果:
源代码:
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#ቤተ መጻሕፍቲ ባይዱefine MAXSIZE 100
int main()
{
char str[MAXSIZE];
int i;
int offset;
int n;
printf("请输入要加密的字符串:");
gets(str);
printf("请输入要偏移量:"); //若将a变为b,则偏移量为1,以此类推,偏移量在1-25之间
scanf("%d%*c", &offset);
n = strlen(str);
for (i = 0; i < n; i++)
{
if ('a' <= str[i] && str[i] <= 'z' - offset || 'A' <= str[i] && str[i] <= 'Z' - offset)
(1)截图显示你的邮件全文及加密的图片。
(2)接收你的同伴发给你的加密邮件,直接显示邮件内容。截图。
(3)利用同伴的密钥解密邮件,截图显示邮件全文。
答:由于Outlook软件问题第二步和第三步做不出来了。
五、实验总结
本次实验前半部分做的比较顺利,但是最后一步由于Outlook软件问题得不到自己想要的结果。但是通过这次实验学会了利用pgp软件加密和解密的基本操作。
6、在Windows 2003虚拟机中任意选择一个文本文件进行PGP加密,截图显示你的加密过程的图片。
7、打开这个被PGP加密的文本文件,截图显示你的打开过程。
8、使用PGP加密邮件。PGP的主要功能是加密邮件,安装完成后,PGP自动与Outlook关联,请选择一名同伴,互相向对方写一封邮件,并利用PGP对该邮件进行加密和签名。
str[i] += offset;
else
str[i] += offset - 26;
}
printf("加密后的字符串是:");
puts(str);
return 0;
}
2.解密程序运行结果:
源代码:
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
4、启动Windows 2003虚拟机,网络方式选择NAT,在该虚拟机中安装PGP软件,截图显示你的安装过程。
5、使用PGP产生密钥。在安装完PGP后,系统要求重新启动,重新启动成功后请设置PGP会自动产生密钥对,此时需要你输入你的密码并确认,请截图显示你的密钥对的生成图片。
在输入密码时请以你的姓名全名为密码,并在输入密码时注意要求显示输入的密码。
3、RSA加密算法实现。请将课本提供的RSA加密算法9-2在Virtual C++中编译,执行该加密程序。
(1)产生RSA密钥对,并将产生的密钥对与模导出成文件。截图显示你的公钥文件、模文件与私钥文件的内容。
(2)利用公钥加密一个文本文件,截图显示你的加密过程。
(3)利用私钥解密已被加密的文本文件,截图显示你的解密过程及文件的内容。
str[i] -= offset;
else
str[i] -= offset + 26;
}
printf("解密后的字符串是:");
puts(str);
return 0;
}
2、DES加密解密程序实现,编译课本例9-1,即DES加密算法。执行该程序,要求将自己的姓名拼音(全名)作为待加密的明文进行加密,程序显示加密后的密文以及解密后的明文。请截图显示你的程序运行结果。
#define MAXSIZE 100
int main()
{
char str[MAXSIZE];
int i;
int offset;
int n;
printf("请输入要解密的字符串:");
gets(str);
printf("请输入要偏移量:"); //若将a变为b,则偏移量为1,以此类推,偏移量在1-25之间