收藏 分享(赏)

RSA加密算法学年论文.doc

上传人:dreamzhangning 文档编号:2211223 上传时间:2018-09-05 格式:DOC 页数:11 大小:447.50KB
下载 相关 举报
RSA加密算法学年论文.doc_第1页
第1页 / 共11页
RSA加密算法学年论文.doc_第2页
第2页 / 共11页
RSA加密算法学年论文.doc_第3页
第3页 / 共11页
RSA加密算法学年论文.doc_第4页
第4页 / 共11页
RSA加密算法学年论文.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、*大学*级网络安全概论学年论文(设计)11 引言1.1 性质网络安全概论是网络工程专业的主要专业基础课。网络安全在信息安全中越来越重要,了解和掌握网络安全知识对于网络工程专业的学生来说至关重要。本课程使学生掌握网络安全的基本概念、基本原理、网络安全实现方法和实现技术,具有初步分析和配置安全网络的能力,训练分析和解决实际问题能力,为其今后在相关领域开展工作打下坚实的基础。 1.2 教学目的本科程通过具体设计数字签名算法,应使学生加深对加密和数字签名的工作原理和实现方法的理解,系统科学地受到分析问题和解决问题的训练,提高运用理论知识解决实际问题的能力。为学生从事科学研究和独立负担计算机及其应用方面

2、的工作打好扎实的基础。1.3 任务和要求此系统模拟 RSA 数字签名算法,主要实现对字符串和文件的加密和签名。模拟 RSA算法主要分四个模块:RSA 算法的参数选择;用 MD5 算法得到给定电子文档的信息摘要;将信息摘要变换为大整数形式,并在其上使用 RSA 数字签名体制进行签名,得到电子文档的数字签名;根据给定的电子文档及其数字签名,判断电子文档的完整性和真实性。1.4 意义通过本模拟系统的设计,可以加深学生对数字签名算法原理的理解,明白数字签名的过程和算法具体实现,提高学生的动手能力。1.5 论文结构安排第 2 章为系统分析与设计,写出系统要求,分析出包含哪些功能模块、每个模块的计划采用的

3、实现方法和原理。第 3 章为系统实现,写出主要模块的实现,包括全局变量说明和主要功能的实现流程。第 4 章为结束语,总结课程设计的体会。*大学*级网络安全概论学年论文(设计)22 系统分析与设计2.1 RSA 算法的参数选择RSA 的安全性依赖于大数分解。公钥和私钥都是两个大素数(大于 100 个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。密钥对的产生。选择两个大素数,p 和 q 。计算:n = p * q然后随机选择加密密钥 e(最常用的 e 值有 3,17 和 65537,采用 3 个中的任何一个都不存在安全问题) ,要求 e 和 ( p - 1 )

4、 * ( q - 1 ) 互质。最后,利用 Euclid 算法计算解密密钥 d, 满足:e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )其中 n 和 d 也要互质。公钥 KU=( e ,n ),私钥 KR( d , n )。两个素数 p 和 q 不再需要,应该丢弃,不要让任何人知道。加密信息 m(二进制表示)时,首先把 m 分成等长数据块 m1 ,m2,., mi ,块长 s,其中 2s 10|f(E,(p-1)*(q-1) != 1);/生成公钥doD = r.Next(100); while (E * D) % (p - 1) * (q - 1) != 1);

5、/生成私钥3.3 MD5 摘要和大整数转化该功能由一个函数实现,该函数引用了.Net中的MD5类,用来求得字符串的信息摘要。求得信息摘要后,对每一位进行转化,得到大整数。具体的函数如下:public void GetMd5Str(string myString)/MD5算法实现摘要和大整数转化RichTextBox_bigInt.Text = “;MD5 md5 = new MD5CryptoServiceProvider();byte fromData = System.Text.Encoding.Unicode.GetBytes(myString);byte toData = md5.Co

6、mputeHash(fromData);string byteStr = null;for (int i = 0; i toData.Length; i+)byteStr += toDatai.ToString(“x“);*大学*级网络安全概论学年论文(设计)6RichTextBox_MD5.Text = byteStr;string w;int n = 0;for (int i = 0; i byteStr.Length ; i+)/摘要进行每一位的转化w = byteStr.Substring(i, 1);n = Convert.ToInt32(w, 16);arrayMD5.Add(n)

7、;RichTextBox_bigInt.Text += n.ToString();RichTextBox_bigInt.Text += “,“; 3.4 加密函数和解密函数根据 RSA 算法原理,对应的密文:ci = mie ( mod n ) ( a )解密时作如下计算:mi = cid ( mod n ) ( b )设计加密函数和解密函数。由于两个函数大体过程类似,在此只列出加密函数的代码:private void encode()/加密函数int m, n ;for (int i = 0; i arrayMD5.Count; i+)m = (int)arrayMD5i;n = 1;for

8、 (int j = 0; j E; j+)n = n * m;n = n % N;arrayCoded.Add(n);RichTextBox_codedData.Text += n.ToString();RichTextBox_codedData.Text += “,“;*大学*级网络安全概论学年论文(设计)73.5 验证文档的完整性本部分主要由两个函数构成,函数public void MD5_1(string myString)求得解密后电子文档的MD5值,函数private void compare()比较解密后的MD5值与给定的MD5值是否一致,从而判定文档是否被修改过。两个函数具体实现

9、如下:public void MD5_1(string myString)/验证阶段MD5MD5 md5 = new MD5CryptoServiceProvider();byte fromData = System.Text.Encoding.Unicode.GetBytes(myString);byte toData = md5.ComputeHash(fromData);string byteStr = null;for (int i = 0; i toData.Length; i+)byteStr += toDatai.ToString(“x“);RichTextBox_crmMD5.

10、Text = byteStr;private void compare()if (RichTextBox_MD5.Text = RichTextBox_crmMD5.Text)textBox1.Text = “信息完整性良好。“;elsetextBox1.Text = “信息已被破坏!“;3.6 RSA算法模拟程序演示由于加密字符串为同组其他同学所做,在此不再演示,只选取加密文件部分进行演示。首先,单击“生成密钥”按钮,生成密钥。然后,单击“加密文件”按钮,出现选择文件对话框,选择一个文件进行加密。如图3-1所示:*大学*级网络安全概论学年论文(设计)8图3-1 加密文件之选择文件选择文件后,

11、显示出文件的信息摘要、转化为的大整数及对应的密文。如图3-2所示:图3-2 文件加密结果*大学*级网络安全概论学年论文(设计)9单击“文件的解密并进行验证”按钮,对文件进行解密验证。若文件未被修改过,显示“信息完整性良好” ;若文件被修改过,显示“信息已被破坏!” 。如图3-3及3-4所示:图3-3 文件未被修改过*大学*级网络安全概论学年论文(设计)10图3-4 文件已被破坏4 结束语通过本次课程设计,对 RSA 数字签名算法的原理和实现方法有了更加清楚的了解,对于书本上概念、方法的说明也有了深层次的体会。在做设计的过程中,也遇到了不少问题,通过对这些问题的解决,巩固了自己的理论知识,同时也增强了自己分析解决问题的能力。*大学*级网络安全概论学年论文(设计)11参考文献1 刘建伟. 毛剑. 胡荣磊. 网络安全概论. 北京:电子工业出版社 , 2009.7 第一次印刷2 KCS#1 RSA Cryptography Standard: http:/ The MD5 Message-Digest Algorithm:http:/www.ietf.org/rfc/rfc1321.txt.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报