信息安全概论实验一
- 格式:docx
- 大小:48.98 KB
- 文档页数:4
河南工业大学实验报告
一、实验目的
1、理解简单加密算法的原理;
2、掌握Vigenere密码的原理,完成Vigenere密码加解密程序的编写;
3、通过实验,加深对古典密码体制的了解,掌握对字符进行灵活处理的方法。
二、实验要求
根据Vigenere密码的原理编写程序,对输入的符号串能够根据设置的密钥分别正确实现Vigenere加密和解密功能。
三、实验过程及结果
3.2实验结果如下图所示
3.2.1加密测试数据一:
图1
3.2.2加密测试数据二:
图2
3.2.3解密测试数据一:
图3
3.2.4解密测试数据二:
图4
四、实验总结
在做本实验之前,前一天晚上先预习看了一下,然后到第二天做实验时大概有了思路。
当然在实验中出现了一些问题,譬如,对明文大小写字母转换成密文大小写字母,空格处理等等方面。
后来到中午经过网上搜索和同学讨论,一起解决了这些问题。
做完实验后,我清楚地知道了古典密码的加密方式解密方式,对此我产生了一些兴趣,感觉很有趣。
实验成绩《信息安全概论》实验报告实验一古典密码实验专业班级:学号:姓名:完成时间:2016/ 05/ 09一、实验目的理解简单加密算法的原理;掌握凯撒密码的原理,完成凯撒密码加解密程序的编写;通过实验,加深对古典密码体制的了解,掌握对字符进行灵活处理的方法。
二、实验内容根据凯撒密码的原理编写程序,对输入的符号串能够根据设置的密钥分别正确实现凯撒加密和解密功能。
三、实验环境和开发工具1.Windows 7 系统2.Eclipse3.JDK 1.7四、实验步骤和结果首先获取要加密的内容以及密钥,凯撒密码的密钥即字符移动的位数。
由于凯撒密码器的移位是针对字符的,因此需要将待加密的内容中每个字符取出,然后针对每个字符分别加以移位。
主要步骤如下:(1)读取要加密的字符串、密钥。
(2)取出字符串中每个字符。
使用字符串类的 charAt()方法取出每个字符,分别加以移位。
(3)对每个字符进行移位。
由于字母表中共26个字符,因此移位前先将移动的位数(key)和26取模。
由于Java中字符和整型可自动转换,因此将字符加上一个正整数即代表在字母表中右移多少位。
如果移动的位数是负值,则代表在字母表中左移多少位。
尽管在移动之前已经将移动的位数和26取了模,但通过这种方式实现右移或左移仍可能发生超界。
如字母x右移4位应该是字母b,但将字母x增加4后超出26个字母的范围。
因此移位后使用两个if语句判断一下,如果向左超界(c<'a')则增加26;向右超界(c>'z')则减去26。
源程序:package Caesar;import java.io.*;import java.util.Scanner;/*** @author SiRuYan*/public class Caesar {// 声明一些全局变量public static String path;public static String estr = "";public static char c;/*** 凯撒密码加密方法** @param str* @param n*/public static void Encode(String str, int n) {for (int i = 0; i < str.length(); i++) {c = str.charAt(i);if (c >= 'a' && c <= 'z')if (c + n % 26 <= 'z') // 移位后的字母不大于小写字母z,直接移位estr += (char) (c + n % 26);else// 移位后的字母大于小写字母z,需要在26个字母之间循环estr += (char) ('a' + ((n - ('z' - c) - 1) % 26));else if (c >= 'A' && c <= 'Z')if (c + n % 26 <= 'Z') // 移位后的字母不大于大写字母Z,直接移位estr += (char) (c + n % 26);else// 移位后的字母大于大写字母z,需要在26个字母之间循环estr += (char) ('A' + ((n - ('Z' - c) - 1) % 26));else if (c >= '0' && c <= '9') // 对数字进行加密if (c + n % 10 <= '9')estr += (char) (c + n % 10);elseestr += (char) ('0' + ((n - ('9' - c) - 1) % 10));elseestr += c;}}/*** 凯撒密码解密方法* @param str* @param n*/public static void Decode(String str, int n) {for (int i = 0; i < str.length(); i++) {c = str.charAt(i);if (c >= 'a' && c <= 'z')if (c - n % 26 >= 'a')estr += (char) (c - n % 26);elseestr += (char) ('z' - (n - (c - 'a') - 1) % 26);else if (c >= 'A' && c <= 'Z')if (c - n % 26 >= 'A')estr += (char) (c - n % 26);elseestr += (char) ('Z' - (n - (c - 'A') - 1) % 26);else if (c >= '0' && c <= '9')if (c - n % 10 >= '0')estr += (char) (c - n % 10);elseestr += (char) ('9' - (n - (c - '0') - 1) % 10);elseestr += c;}}public static void main(String args[]) {String array = "";Scanner in = null;int num;System.out.println("----------------凯撒密码----------------");System.out.println("------只支持英文和阿拉伯数字-By SiRuYan------");try {System.out.println("1、加密\n2、解密\n3、暴力破解");System.out.print("请选择:");in = new Scanner(System.in); // 读入选择序号String ed = in.next();if (ed.equals("1") || ed.equals("2") || ed.equals("3")) {System.out.print("文件路径(*.txt):");path = in.next(); // 读入加密文件路径File file = new File(path); // 声明文件变量,以便读入指定文件路径下的文件内容FileInputStream rdf = new FileInputStream(file);// available()(FileInputStream变量)方法返回的实际可读字节数,也就是总大小byte[] s = new byte[rdf.available()];// System.out.println("文件的大小:"+rdf.available()); 测试语句int b = rdf.available();while ((b = rdf.read(s, 0, b)) != -1) { // 将文件内容读入字节数组中String content = new String(s, 0, b);array = array + content;}rdf.close(); // 关闭输入流if (ed.equals("3")) { // 3 暴力破解for (int k = 1; k <= 25; k++) {Decode(array, k);System.out.println("密钥为 " + k + " 时,结果是" + estr);estr = "";if (k >= 10) {for (int j = 1; j <= 9; j++) {Decode(array, k + 26 * j);System.out.println("密钥为 " + (k + 26 * j)+ " 时,结果为" + estr);estr = "";}}}System.out.print("正确的密钥为(整数):");int result = in.nextInt();Decode(array, result);} else {System.out.print("密钥(整数):");num = in.nextInt();if (ed.equals("1")) // 1 加密Encode(array, num);else// 2 解密Decode(array, num);}// 最后重新把加密、解密后的内容,借助文件、缓冲区输入流重新写入文件File f = new File(path);FileWriter outFile = new FileWriter(f);BufferedWriter bufferOut = new BufferedWriter(outFile);bufferOut.write(estr);bufferOut.newLine();bufferOut.flush();bufferOut.close();System.out.print("原文件是否已成功加密或解密!");} elseSystem.out.print("您输入有误。
8信息安全实验实验一信息安全综合实验一.实验目的和要求1.掌握杀病毒软件的安装、使用和设置方法。
2.掌握避免黑客入侵的网络安全技术方法。
3.掌握防火墙软件的安装、使用和设置方法。
二.实验内容和步骤1.查杀计算机病毒①安装或使用本机已经安装的杀病毒软件查杀本机系统盘(含内存、引导区和邮箱)或优盘的病毒。
②在杀毒过程中,研究该杀病毒软件的各方面的性能后,对该杀病毒软件在查杀毒性能、操作界面、升级或更新等各方面做出一个综合性评价报告。
③无论是否查出有病毒,请将提示窗口抓图贴到实验报告中。
2.防黑客入侵手段(1)给Windows XP设置密码①打开“控制面板”从“用户账户”中创建一个用户并为这个账户设上密码。
②定义更安全的密码规则用到的是系统的“本地安全设置”工具,从“开始”按钮打开的“运行”对话框中输入“secpol.msc”并确定。
出现如图1-1所示的“本地安全设置”对话框。
③在此对话框的左窗格展开“账户策略”中的“密码策略”,右窗格显示的选项就是要定义的密码规则。
图1-1“本地安全设置”对话框设置“密码策略”④首先双击“密码必须符合复杂性要求”,将安全设置设为“已启用”,此时用户在“控制面板”“用户账户”中创建的密码必须包含大小写英文、阿拉伯数字及特殊字符这三种类型字符,如果未包含其中一种字符,将会弹出对话框提示,重做第①步。
⑤双击“密码长度最小值”,设置用户创建密码的最小位数,可以输入0至14之间的阿拉伯数字,0表示不要求检测创建的密码长度。
这里密码长度最小值建议设为8个字符,一旦用户原创建的密码不满足要求的位数,系统也将弹出对话框警告,重做第①步。
⑥“密码最长(短)存留期”设置:这个选项是设置密码的过期时间,即在指定的周期时间内必须更换一次符合要求的新密码。
当然,设置为0则表示密码永久不作废,最长的周期时间是999天。
这里将“密码最长存留期”设置为“密码最短存留期”的2至3倍,如最长存留期设为30天,那么最短存留期可以设置为10天。
目录1.实验一网络通信安全1.1实验目的-------------------------------------------31.2实验内容-------------------------------------------31.3相关知识-------------------------------------------31.4实验设计-------------------------------------------51.5实验成果-------------------------------------------71.6实验小结-------------------------------------------9 2.实验二网络攻防2.1实验目的------------------------------------------102.2实验内容------------------------------------------102.3实验原理------------------------------------------102.4实验步骤------------------------------------------102.5实验小结------------------------------------------14 3.实验三Web服务器配置3.1实验目的------------------------------------------153.2实验要求------------------------------------------153.3实验内容------------------------------------------153.4实验小结------------------------------------------29 4.实验四信息系统安全4.1实验目的------------------------------------------304.2实验内容------------------------------------------304.3实验设计------------------------------------------304.4实验成果------------------------------------------314.5实验小结------------------------------------------34实验一网络通信安全1.1实验目的通过本章的学习,使学生掌握密码学在通信安全中的具体应用。
信息安全计算机信息安全技术实验安排表实验一加密与解密一、实验目的及要求1.提高对加密与解密原理的认识2.提高对信息隐藏原理的认识3.学会使用加密与隐藏软件4.了解口令破解基本方法;5.体会设置安全口令的重要意义二、实验学时4学时三、实验任务1.加密与隐藏软件2.利用破解密码软件破解口令四、实验重点、难点1.Easy code boy plus的使用2.能熟练运用Lophtcrack、Aoxppr、Apdfprp、Mailhack等五、操作要点1. 加密文件2.解密文件3.生成随机密码4.生成可自解密文件5.文件隐藏与恢复6.伪装文件夹7.破解Windows2000/xp系统密码8.破解Office文档密码9.破解PDF文档密码10.破解POP3邮箱密码六、注意事项Easy code boy plus可以将不同类型的文件作为寄主文件,将各种文件隐藏到不同类型的文件中。
为了减少实验时间,实验破解用的密码可以选得简单一些。
如1234。
实验二漏洞扫描与病毒防治一、实验目的及要求1.了解目前系统存在的典型漏洞;2.学会使用网络扫描和漏洞扫描工具。
3. 学会使用常见杀毒软件二、实验学时4学时三、实验任务利用漏洞扫描工具扫描网络漏洞利用瑞星或者卡巴斯基对整个系统进行杀毒四、实验重点、难点熟练使用X-Scan工具五、操作要点(一)漏洞扫描1.运行X-Scan2.设置参数3.设置插件4.设置检测范围5.开始扫描6.报告扫描结果(二)病毒防治1.运行瑞星杀毒软件2.设置参数3.开始查杀病毒4.报告杀毒结果六、注意事项X-Scan还具有物理地址查询、ARP查询、whosi等功能。
实验三网络监听与防火墙配置一、实验目的及要求1.熟悉网络监听工具Sniffer Pro操作界面;2.了解Sniffer Pro捕获与监听网络数据方法;3.强化网络安全意识。
4.掌握防火墙IP规则设置原理和方法;5.掌握防火墙应用程序规则设置原理和方法。
实验1 密码学实验实验目的1)编程实现常见古典密码算法,加深对古典密码的理解;2)掌握加密算法设计原则;3)掌握对古典密码的攻击方法。
实验设备与环境若干安装Windows的PC,安装Java或C++或C#编程开发环境。
实验环境的拓扑结构图如下:实验内容与步骤1)编程实现凯撒密码,输入任意明文,观察明密文关系。
c=E(k,m)=(m + k) mod 262)编程实现单表代换密码;输入任意明文,观察明密文关系。
3)编程实现Hill密码;输入任意明文,观察明密文关系。
Hill密码的加密算法将m个连续的明文字母替换成m个密文字母,这是由m个线性方程决定的,在方程中每个字母被指定为一个数值(a=0,b=1,…,z=25)。
该密码体制可以描述为:C=KP mod 26其中C和P是列向量,分别代表密文和明文,K是一个方阵,代表加密密钥。
运算按模26执行。
4)编程实现Playfair密码;输入任意明文,观察明密文关系。
Playfair算法基于一个由密钥词构成的5 x 5字母矩阵。
填充矩阵的方法是:首先将密钥词(去掉重复字母)从左至右、从上至下填在矩阵格子中;然后将字母表中除密钥词字母以外的字母按顺序从左至右、从上至下填在矩阵剩下的格子里。
对明文按如下规则一次加密两个字母:①如果该字母对的两个字母是相同的。
那么在它们之间加一个填充字母,比如x。
例如balloon先把它变成ba lx lo on这样四个字母对。
②落在矩阵同一行的明文字母对中的字母由其右边的字母来代换,每行中最右边的一个字母用该行中最左边的第一个字母来代换,比如ar变成RM。
③落在矩阵同一列的明文字母对中的字母由其下面的字母来代换,每列中最下面的一个字母用该列中最上面的第一个字母来代换,比如mu变成CM。
④其他的每组明文字母对中的字母按如下方式代换:该字母的所在行为密文所在的行,另一字母的所在列为密文所在列。
比如hs变成BP,ea变成IM或(JM)。
DONGFANG COLLEGE,FUJIAN AGRICULTURE AND FORESTRY UNIVERSITY课程名称:信息安全概论系别:计算机系年级专业:计算机系学号:1450301045姓名:陈城任课教师:陈丽娟2016 年 2 月 24 日实验一:PGP软件的安装与使用一、实验目的:1.了解加密工具PGP的原理2.熟悉PGP简单配置方法3.掌握PGP软件公钥与私钥的生成方法,PGPKeys管理密钥的方法。
4.学会使用PGP软件收发加密邮件。
二、实验准备:1.要求实验室内网络是连通的,两个人为一组,组内计算机可以相互访问。
2.安装PGP加密软件;主机操作系统为Windows7或Windows XP;三、实验涉及到的相关软件下载:四、实验原理PGP—Pretty Good Privacy,是一个基于RSA公匙加密体系的邮件加密软件。
可以用它对你的邮件保密以防止非授权者阅读,它还能对你的邮件加上数字签名从而使收信人可以确信邮件是你发来的。
它让你可以安全地和你从未见过的人们通讯,事先并不需要任何保密的渠道用来传递密匙。
它采用了:审慎的密匙管理,一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。
它的功能强大有很快的速度。
而且它的源代码是免费的。
五、实验步骤【实验分析】(1) 实验拓扑图(2) 导出密钥: 启动PGPkeys, 单击显示刚才创建的用户那里,再在上面点右键,选“Export…(导出)”,在出现的保存对话框中,确认是只选中了“Include 6.0 Extensions”(包含6.0公钥),然后选择一个目录,再点“保存”按钮,即可导出你的公钥,扩展名为.asc导入密钥:点击对方发给自己的扩展名为.asc的公钥(或者直接将pkr公钥文件拖入窗口),将会出现选择公钥的窗口,在这里你能看到该公钥的基本属性,如有效性、创建时间,信任度等,便于了解是否应该导入此公钥。
实验编号:四川师范大学信息安全导论实验报告2016 年 3 月 30 日级班实验名称:信息安全导论实验姓名:_____ 学号:_____ 指导老师:___谭良_____ 实验成绩:_____实验_1_ 古典密码算法一.实验目的及要求二.实验内容Caesar密码单表置换密码仿射密码维吉尼亚密码三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)实验步骤本练习主机A、B为一组,C、D为一组,E、F为一组。
首先使用“快照X”恢复Windows系统环境。
一.手动完成Caesar密码(1)在实验原理部分我们已经了解了Caesar密码的基本原理,那么请同学们写出当密钥k=3时,对应明文:data security has evolved rapidly的密文:GDWD VHFXULWB KDV HYROYHG UDSLGOB 。
(2)进入实验平台,单击工具栏中的“密码工具”按钮,启动密码工具,在向导区点击“Caesar密码”。
在明文输入区输入明文:data security has evolved rapidly。
将密钥k调节到3,查看相应的密文,并与你手动加密的密文进行比较。
请根据密钥验证密文与明文对应关系是否正确。
二.Caesar加密(1)进入“加密解密”|“Caesar密码”视图,在明文输入区输入明文(明文应为英文),单击“加密”按钮进行加密。
请将明文记录在这里:helloworld 。
(2)调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值,并记下该密钥k值用于同组主机的解密。
加密工作完成后,单击“导出”按钮将密文默认导出到Caesar共享文件夹(D:\Work\Encryption\Caesar\)中,默认文件名为Caesar密文.txt。
(3)通知同组主机接收密文,并将密钥k通告给同组主机。
(4)单击“导入”按钮,进入同组主机Work\Encryption\Caesar目录(\\同组主机IP\Work\Encryption\Caesar),打开Caesar密文.txt。
实验一古典加密算法凯撒密码的实现源程序代码:#include <iostream>using namespace std;# define N 26int searchnum(char t){char r;char str[26];for(int i=1,r='A';i<=N;i++,r++){str[i]=r;}for(int i=1;i<=N;i++){if(t==str[i])return i;}}char searchchar(int t){char r;char str[26];for(int i=1,r='A';i<=N;i++,r++){str[i]=r;}for(int i=1;i<=N;i++){if(t==i)return str[i];}}void jiami(){char str[50];int k;cout<<"请输入您的密钥:"<<endl;//int m;//char s;cin>>k;cout<<"请输入您的明文:"<<endl;cin>>str;for(int i=0;str[i]!='\0';i++){int a,b;char ch=str[i];int m=searchnum(ch);a=m+k;b=a%26;char c=searchchar(b);str[i]=c;}cout<<"您的密文是:"<<endl;for(int i=0;str[i]!='\0';i++){cout<<str[i];}}void jiemi(){char str[50];int k;cout<<"请输入您的密钥:"<<endl;//int m;//char s;cin>>k;cout<<"请输入您的密文:"<<endl; cin>>str;for(int i=0;str[i]!='\0';i++){int a,b;char ch=str[i];int m=searchnum(ch);if(m<k){a=m+N-k;b=a%N;}else if(m>k){a=m-k;b=a%N;}else{b=N;}char c=searchchar(b);str[i]=c;}cout<<"您的明文是:"<<endl;for(int i=0;str[i]!='\0';i++){cout<<str[i];}}int main(){int choice;cout<<"请输入您的选择:"<<endl;cout<<"1.加密;2.解密;"<<endl;cin>>choice;switch (choice){case 1:jiami();break;case 2:jiemi();break;default:break;}// cout << searchnum(s)<< endl;return 0;}实验结果截图。
1文件密使软件的功能有哪些?答:文件密使是一个加密和安全工具,使用的是公开加密算法,安全可靠,万无一失。
文件夹加密,隐藏密文,生成可自解密的文件,一个专门为管理密码而提供的工具星星管理器。
有文件切割,保护文件夹功能,文件/文件夹彻底删除,生成随机密钥,即时安全通讯工具密聊。
是一个功能齐全,易用,能绝对确保你的数据安全,大大改变了加密工具单调枯燥的样板。
2、混合密码系统软件实现哪些功能?用此软件用“对称密钥”加密文件和“非对称密钥”加密文件时,影响运行速度快慢的原因是什么?此软件有何不足和缺陷?答:它集密钥交换、签名验证以及数据加解密功能于一体,既安全又实用。
密钥的位数大小等;进行安全通信前需要以安全方式进行密钥交换。
3、如何发送签名、加密邮件?用outlook express 发送签名加密邮件答:要发送数字签名、加密邮件,只需要在写邮件时选中【工具】菜单的【数字签名】、【加密】菜单项,或者工具栏的【签名】、【加密】按钮。
可以对一个邮件同时进行数字签名和加密邮件,也可以只进行数字签名或者只进行加密。
要发送数字签名邮件,您需要申请并在系统中安装一个数字证书;要发送加密邮件,必须获得收件人的数字证书的公钥。
(1)、收发双方申请数字证书第一步,安装证书颁发机构的证书;第二步,申请邮件安全证书,填写邮件地址和必要的用户信息;第三步,证书服务器发放机构审核颁发证书;第四步,客户端下载安装证书。
之后点击IE的“工具→选项”命令中的“内容→证书”按钮,(2)、发送签名加密的邮件发送具有自己数字签名的邮件前先设置一下,选中邮箱,右键单击“属性”命令,在弹出的窗口中切换到“安全”选项夹,点击右侧“选择”按钮,挑选与该邮箱相匹配的证书。
一定要为邮箱匹配数字标识(证书),否则不能发送具有数字签名的验证邮件。
发送加密的邮件时,需要知道收件人的公钥,一个是通过发证机构的证书服务器的平台,通过选择收件人来搜索该账户数字证书。
郑州轻工业学院课程设计报告名称:信息安全概论指导教师:吉星、程立辉姓名:符豪学号:541307030112班级:网络工程13-011.目的数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的密钥。
其密钥的值是从大量的随机数中选取的。
按加密算法分为专用密钥和公开密钥两种。
数据加密技术是网络中最基本的安全技术,主要是通过对网络中传输的信息进行数据加密来保障其安全性,这是一种主动安全防御策略,用很小的代价即可为信息提供相当大的安全保护。
2.题目使用C#编程语言,进行数据的加密与解密。
系统基本功能描述如下:1、实现DES算法加密与解密功能。
2、实现TripleDES算法加密与解密功能。
3、实现MD5算法加密功能。
4、实现RC2算法加密与解密功能。
5、实现TripleDES算法加密与解密功能。
6、实现RSA算法加密与解密功能。
3.功能描述使用该软件在相应的文本框中输入明文,然后点击加密就会立即转化成相应的密文,非常迅速和方便,而且操作简单加流畅,非常好用。
4.需求分析加密软件发展很快,目前最常见的是透明加密,透明加密是一种根据要求在操作系统层自动地对写入存储介质的数据进行加密的技术。
透明加密软件作为一种新的数据保密手段,自2005年上市以来,得到许多软件公司特别是制造业软件公司和传统安全软件公司的热捧,也为广大需要对敏感数据进行保密的客户带来了希望。
加密软件上市以来,市场份额逐年上升,同时,经过几年的实践,客户对软件开发商提出了更多的要求。
与加密软件产品刚上市时前一两年各软件厂商各持一词不同,经过市场的几番磨炼,客户和厂商对透明加密软件有了更加统一的认识。
5.设计说明传统的周边防御,比如防火墙、入侵检测和防病毒软件,已经不再能够解决很多今天的数据保护问题。
为了加强这些防御措施并且满足短期相关规范的要求,许多公司对于数据安全纷纷采取了执行多点产品的战术性措施。
实验一网络信息检测实验(使用Sniffer工具嗅探)一、实验目的通过使用Sniffer Pro软件掌握sniffer(嗅探器)工具的使用方法,实现捕捉FTP、HTTP 等协议的数据包,以理解TCP/IP协议中多种协议的数据结构、会话连接建立和终止的过程、TCP序列号、应答序号的变化规律。
并且,通过实验了解FTP、HTTP等协议明文传输的特性,以建立安全意识,防止FTP、HTTP等协议由于传输明文密码造成的泄密。
二、实验原理Sniffer即网络嗅探器,用于监听网络中的数据包,分析网络性能和故障。
Sniffer主要用于网络管理和网络维护,系统管理员通过Sniffer可以诊断出通过常规工具难以解决的网络疑难问题,包括计算机之间的异常通讯、不同网络协议的通讯流量、每个数据包的源地址和目的地址等,它将提供非常详细的信息。
通常每个网络接口都有一个互不相同的硬件地址(MAC),同时,每个网段有一个在此网段中广播数据包的广播地址(代表所有的接口地址)。
一般情况下,一个网络接口只响应目的地址是自己硬件地址或者自己所处网段的广播地址的数据帧,并由操作系统进一步进行处理,而丢弃不是发给自己的数据帧。
而通过Sniffer工具,可以将网络接口设置为“混杂”(promiscuous)模式。
在这种模式下,网络接口就处于一个对网络进行“监听”的状态,而它可以监听此网络中传输的所有数据帧,而不管数据帧的目标地址是广播地址还是自己或者其他网络接口的地址了。
它将对遭遇的每一个数据帧产生硬件中断,交由操作系统对这个帧进行处理,比如截获这个数据帧,进而实现实时分析数据帧中包含的内容。
当然,如果一个数据帧没有发送到目标主机的网络接口,则目标主机将无法监听到该帧。
所以Sniffer所能监听到的信息将仅限于在同一个物理网络内传送的数据帧,就是说和监听的目标中间不能有路由(交换)或其他屏蔽广播包的设备。
因此,当Sniffer工作在由集线器(HUB)构建的广播型局域网时,它可以监听到此物理网络内所有传送的数据;而对于由交换机(switch)和路由器(router)构建的网络中,由于这些网络设备只根据目标地址分发数据帧,所以在这种网络中,sniffer工具就只能监测到目标地址是自己的数据帧再加上针对广播地址的数据帧了。
《信息安全概论》课程实验报告
实验名称古典密码验证与设计:Hill、Playfair、Vigenere算法实验序号1姓名系院专业班级学号
实验日期指导教师成绩
一、实验目的
(具体内容见实验大纲)
掌握密码学的基本概念,掌握几种典型的古典密码的设计原理。
二、实验内容与要求
(具体内容见实验大纲)
1 手工计算以下算法
1)用Vigenere加密we are discovered”
K=deceptive
2)采用Hill密码对明文best加密,并写出解密过程,使用密钥
K= 4 9
3 7
3)用Playfair算法加密明文“playfair is not secure”K=fivestars
2 采用密码分析软件CAP验证以上计算,并写出实验分析
3 编程实现Vigenere算法(编程工具不限)
三、实验设备
地点:科技楼网络实验室602
硬件环境:windows xp操作系统
软件环境:cap4,vc++6.0
四、实验步骤
1. 手工计算以下算法
1) 明文对应数字分别为22 4 0 17 4 3 8 18 2 14 21 4 17 4 3
密钥对应数字分别为3 4 2 4 15 19 8 21 4
明文22 4 017438182142141743
密钥34241519821434241519
密文25822119221613617256211922
密文z i c v t w q n g r z g v t w
由上表得密文为zicvtwqngrzgvtw
2)明文best分别对应1 4 18 19
即矩阵为1 4
18 19
此矩阵乘密钥k后mod26得到矩阵
16 11
25 9
即密文为qlzj
3)由k得到5*5矩阵 f i v e s
t a r b c
d g h k l
m n o p q
u w x y z
将明文分组得到pl ay fa ir is no ts ec ur eq
由矩阵和明文分组得对应密文qk bw it va vf op cf sb xt sp
2. 采用密码分析软件CAP验证以上计算,并写出实验分析
由CAP验证得1中1)的结果为zicvtwqngrzgvtw,结果正确
2)的数字结果分别为142 163 71 87,与结果不同,原因不明。
3)的结果为qkbwitvavfopcfsbxtsp,结果正确
3. 编程实现Vigenere算法(编程工具不限)
#include<stdio.h>
#include<stdlib.h>
void main()
{
char a[101],b[101],d[101]={'?'},c[]={'a','b','c','d','e','f','g','h','i','j','k',
'l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int i=0,j,k,m=0,n;
printf("输入不超过100字数的字母明文a:");
scanf("%s",a);
printf("输入不超过100字数的字母密钥b:");
scanf("%s",b);
for(i=0;i<=100;i++)
{
if(b[i]=='\0')
{
n=i;
break;
}
}
for(i=0;i<100;i++)
{
if(a[i]=='\0')break;
for(j=0;j<26;j++)
{
if(a[i]==c[j])
break;
}//j是a[i]在26字母中的序号
for(k=0;k<26;k++)
{
if(b[m]==c[k])
break;
}//k是b[m]在26字母中的序号
m++;
m=m%n;
j=(k+j)%26;
d[i]=c[j];
}
printf("密文为:%s\n",d);
}
五、实验结果与分析
1.测试数据及结果
答:第四题中,题1的1)
2)
3)
第四题中题3
2.实验中遇到的问题及解决办法
答:第四题中,题3中输入的字母中不能有空格,否则会发生错误。
尚未解决。
3.实验中尚未解决的问题及不足
答:未解决的问题及不足即在上一小题中所说的。