信息与网络安全实验报告(信管).doc

上传人:bao****ty 文档编号:132382745 上传时间:2020-05-15 格式:DOC 页数:11 大小:137KB
返回 下载 相关 举报
信息与网络安全实验报告(信管).doc_第1页
第1页 / 共11页
信息与网络安全实验报告(信管).doc_第2页
第2页 / 共11页
信息与网络安全实验报告(信管).doc_第3页
第3页 / 共11页
信息与网络安全实验报告(信管).doc_第4页
第4页 / 共11页
信息与网络安全实验报告(信管).doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《信息与网络安全实验报告(信管).doc》由会员分享,可在线阅读,更多相关《信息与网络安全实验报告(信管).doc(11页珍藏版)》请在金锄头文库上搜索。

1、网络信息安全实验报告姓 名 陈申鹏学 号 1406121001 专 业 信息管理与信息系统 班 级 14信管 指 导 教 师 实验一 传统密码算法一、实验目的及任务通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。二、实验环境运行Windows操作系统的PC机,具有C语言编译环境。三、实验原理古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密.它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密.下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密码算法建立一个初步的印象.1. 替代密码 替代密码算法的原

2、理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文。例如:明文字母a,b,c,d ,用D,E,F,G做对应替换后形成密文. 替代密码包括多种类型,如单表替代密码,多明码替代密码,多字母替代密码,多表替代密码。下面我们介绍一种典型的单表替代密码,恺撒(caesar)密码,又叫循环移位密码。它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代。它的加密过程可以表示为下面的函数: E(m)=(m+k) mod n 其中:m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥;E(m)为密文字母在字母表中对应的位置数. 例如:对于明文字母H,其在字母表中的

3、位置数为8,设k=4,则按照上式计算出来的密文为L: E(8) = (m+k) mod n = (8+4) mod 26 = 12 = L 2. 置换密码 置换密码算法的原理是不改变明文字符,只将字符在明文中的排列顺序改变,从而实现明文信息的加密。置换密码有时又称为换位密码.矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中字母,从而形成密文。例如,明文为attack begins at five,密钥为cipher,将明文按照每行6列的形式排在矩阵中,形成如下形式: a t t a c k b e g i n s a

4、t f i v e 根据密钥cipher中各字母在字母表中出现的先后顺序,给定一个置换: 1 2 3 4 5 6 F= 1 1 4 5 3 2 6根据上面的置换,将原有矩阵中的字母按照第1列,第4列,第5列,第3列,第2列,第6列的顺序排列,则有下面形式: a a c t t k b i n g e s a i v f t e 从而得到密文:abatgftetcnvaiikse 其解密的过程是根据密钥的字母数作为列数,将密文按照列,行的顺序写出,再根据由密钥给出的矩阵置换产生新的矩阵,从而恢复明文. 四、 实验步骤(1)根据实验原理部分对替代密码算法的介绍,自己创建明文信息,并选择一个密钥k,

5、编写替代密码算法的实现程序,实现加密和解密操作. (2)根据实验原理部分对置换密码算法的介绍,自己创建明文信息,并选择一个密钥,编写置换密码算法的实现程序,实现加密和解密操作.五、实验结果 实验结果截图六、实验思考题1:替代密码的原理是什么?2:置换密码的原理是什么?七、程序源代码#include#include#include#define N 500int main()int i=0,k,m,n,l;char str1N,str2N;printf(.this is a procedure.n);printf(please input a word(M):);gets(str1);print

6、f(please input the secret key(K):);scanf(%d,&k);m=strlen(str1);printf(the lengh is %dn,m);printf(n*n*n*n*n*n);printf(secret(C) is :);for(i=0;i96&n123)n=(n-97+k)%26;if(n64&n91)n=(n-65+k)%26;if(n0)n=26+n;l=(char)(n+97);printf(%c,l);str2i=l;str2i=0;printf(nnthe lengh is %d,strlen(str2);printf(nn*n*n*n*

7、n*n);printf(when the secret is %s,nword is.:n,str2);printf(n);m=strlen(str2);for(i=0;i96&n123)n=(n-97-k)%26;if(n64&n91)n=(n-65-k)%26;if(n0)n=26+n;l=(char)(n+97);printf(%c,l);str1i=0;return 0;实验二 RSA加解密算法的实现一、实验目的及任务:掌握RSA加密算法的加解密过程。二、实验环境VC或TC编程环境;主机操作系统为Windows2000或Windows XP。三、 实验原理RSA加密算法是一种非对称加密

8、算法。在公钥加密标准和电子商业中RSA被广泛使用。RSA是1977年由罗纳德李维斯特(Ron Rivest)、阿迪萨莫尔、(Adi Shamir)和伦纳德阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA算法的可靠性基于分解极大的整数是很困难的。假如有人找到一种很快的分解因子的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加

9、密的信息实际上是不能被解破的。1、公钥和私钥的产生假设Alice想要通过一个不可靠的媒体接收Bob的一条私人讯息。她可以用以下的方式来产生一个公钥和一个密钥: 随意选择两个大的质数p和q,p不等于q,计算N=p*q。 根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1) 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1) 用以下这个公式计算d:d e 1 (mod (p-1)(q-1) 将p和q的记录销毁。 e是公钥,d是私钥。d是秘密的,而N是公众都知道的。Alice将她的公钥传给Bob,而将她的私钥藏起来。2、加密消息假设Bob想给Alice送一个消息m,

10、他知道Alice产生的N和e。他使用起先与Alice约好的格式将m转换为一个小于N的整数n,比如他可以将每一个字转换为这个字的Unicode码,然后将这些数字连在一起组成一个数字。假如他的信息非常长的话,他可以将这个信息分为几段,然后将每一段转换为n。他可以将n加密为c:计算c并不复杂。Bob算出c后就可以将它传递给Alice。3、解密消息Alice得到Bob的消息c后就可以利用她的密钥d来解码。她可以将c转换为n,得到n后,她可以将原来的信息m重新复原。ed 1 (mod p-1)和ed 1 (mod q-1)。(因为p和q是不同的质数)四、 实验步骤1、求素数p和q2、求公钥(e,n):e

11、与(n) = (p1)(q1)互质3、求私钥(d,n):d e 1 (mod (p-1)(q-1)4、加密过程:c=(Me)mod n5、解密过程:m=(Cd)mod n 五、实验结果找两个素数 : p=43 q=59 n=p*q=2537 ,t=(p-1)*(q-1)=2436 寻找 e 满足 et 并且 e 和 t 互素,找到 e=13 ,寻找 d 使 e*d%t =1 得到 d=937 1:加密 m 134,得C= 2:解密C= ,得m=134实验结果截图:六、思考题RSA算法主要有哪几部分?7、 RSA源程序(仅供参考)/RSA算法的C程序实现#includeint candp(int a,int b,int c)/数据处理函数,实现幂的取余运算int r=1;b=b+1;while(b!=1)r=r*a;r=r%c;b-;printf(%dn,r);return r;int fun(int x,int y)/公钥e与t的互素判断int t;while(y)t=x;x=y;y=t%y;if(x=1)return 0;/x与y互素时返回0elsereturn 1;/x与y不互素时返回1void main()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号