第一范文网 - 专业文章范例文档资料分享平台

网络信息安全试验报告(2)

来源:用户分享 时间:2025/8/29 22:47:20 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

网络信息安全试验报告

-RSA

加密算法的实现

姓 名:拓慧玲 学 号:20907210

专 业:09信管2班 指导老师:吕林涛

西安理工大学高科学院实验报告用纸

一、实验目的

通过本次实验,掌握RSA算法的基本思想。

使用C语言实现RSA算法,并且可以对简单数字串进行加密、解密。

二、实验原理

通过查阅资料,了解RSA算法基本思想。

首先, 找出三个数, p, q, r, 其中 p, q 是两个相异的质数, r 是与 (p-1)(q-1) 互质的数。 p, q, r 这三个数便是 private key(私钥)接著, 计算 m, r*m == 1 mod (p-1)(q-1)..... 这个 m 一定存在, 因为 r 与 (p-1)(q-1) 互质, 用辗转相除法就可以得到了..... 再来, 计算 n = pq....... m, n 这两个数便是 public key(公钥)。 编码过程是: 若明文为 a, 将其看成是一个大整数, 假设 a < n.... 如果 a >= n 的话, 就将 a 表成 s 进位 (s <= n, 通常取 s = 2^t), 则每一位数均小於 n, 然后分段编码...... 接下来, 计算 b == a^m mod n, (0 <= b < n), b 就是编码后的密文......

解码的过程是, 计算 c == b^r mod pq (0 <= c < pq),

如果第三者进行窃听时, 他会得到几个数: m, n(=pq), b。他如果要破解的话, 必须想办法得到 r。. 所以, 他必须先对 n 作质因数分解。 但是n往往是非常大的数,同时还有两个非常的大质数 p, q, 使第三者作因数分解时发生困难。对方往往很难破解出明文。

三、实验源码

#include #include #include

int getd(int p, int q,int e) {

int qn,d=1; qn=(p-1)*(q-1); while(d) {

if(d*e%qn==1) return(d); else d++; } }/*getd*/

int power(int a,int b) {

int mut=1;

while(b!=0) { mut*=a; b--; }

2

西安理工大学高科学院实验报告用纸

return mut;

}/*power*/

int jiemi(int e,int n,int p) {

int q;

q=power(p,e)%n; return q; }/*jiemi*/

int jiami(int e,int n,int p) {

int q;

q=power(p,e)%n; return q; }/*jiami*/

int main() {

int prime1,prime2,p; int d,e,n,miwen,minwen;

int getd(int p,int q,int e);

printf(\请输入两个大的素数和公钥,e和n \\n\ scanf(\ n=prime1*prime2; printf(\为%d \\n\

d=getd(prime1,prime2,e);

printf(\私有密钥是%d\\n\其中e和n为共钥,d为私钥*/ printf(\请输入要加密的数字串 \\n\ scanf(\ while(p!=0) {

miwen=jiami(e,n,p);

printf(\加密的数值是%d\

minwen = jiemi (d,n,miwen);

printf(\解密后的数值为; %d \\n\scanf(\break; } }

3

西安理工大学高科学院实验报告用纸

四、实验结果

五、实验总结

通过此次实验,我了解了公钥密码体制的基本思想,基本掌握了公钥密码体制RSA。在此次实验中,我又复习了许多以前的旧算法,巩固了基础知识。更加深入的了解安全算法的体制,以及如何分析一个安全算法。同时,也让我学会如何更加熟练的使用C语言进行编程。 无论编写何种软件,了解其思想和过程都是很重要的。思想就是算法,过程就是程序。 刚开始写RSA算法时,就是对RSA的思想和过程不清楚,造成了编写困难。通过在网上查阅资料,下来仔细看书。掌握了基本思想后编写相关程序就很简单了就很简单了。 在编写中,总是不注意一些小细节。例如分号,函数声明和调用,全局量与局部量等。但是随着不断修改、不断上机实验,我已经慢慢习惯于C语言式的思考---分解问题。但是在分解问题前,最好画上详细的流程图及创建相关变量。这一点我做的并不好,仍需要努力。

4

搜索更多关于: 网络信息安全试验报告(2) 的文档
网络信息安全试验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4hl8384tk20088t3wpsf_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top