计算机毕业论文,毕业论文,毕业设计 毕业论文免费检测 知网论文检测
当前位置: 骆驼论文网 > 信息安全 >

MD5算法的研究与实现存储加密

时间:2011-04-11 12:52来源: 骆驼毕业论文网 作者:admin
MD5算法的研究与实现 ------数据存储加密 摘 要 随着网络技术的广泛应用,网络信息安全越来越引起人们的重视。针对数据在存储的时候存在大量的安全问题,目前通常将需要存储的数据进行加密然后再存储,应用MD5算法是一个不错的选择。MD5算法的全称是Message-

QQ交谈计算机毕业设计,毕业设计,毕业论文,计算机毕业论文

MD5算法的研究与实现
------数据存储加密

摘    要
随着网络技术的广泛应用,网络信息安全越来越引起人们的重视。针对数据在存储的时候存在大量的安全问题,目前通常将需要存储的数据进行加密然后再存储,应用MD5算法是一个不错的选择。MD5算法的全称是Message-Digest algorithm 5,是一种用于产生数字签名的单项散列算法。它的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式,即将一个任意长度的“字节串”通过一个不可逆的字符串变换算法变换成一个128bit的串。
该毕业设计是运用microsoft visual c++ 6.0软件而开发的,主要是通过算法实现数据的加密存储。文章分成五部分。第一,二部分描述了MD5的目前现状和相关理论知识,也让我们了解MD5的定义。重点是MD5的流程实现和封装DLL。在MD5算法的DLL封装这章,主要是描述我们为什么要选用封装DLL的原因,以及封装的好处。设计流程这一部分里包含读取,修改,插入,删除这几个功能的实现情况,并用流程图的方式来分别描述了这四大功能模块的实现过程。最后一部分显示了系统测试的内容和系统主要功能运行界面图。

关键词:信息安全;MD5;加密;封装

 
目  录
论文总页数:23页
1 引言 1
1.1 研究现状 1
1.2 选题意义 2
1.3 选题背景 2
2 相关理论基础 3
2.1 单向散列函数 3
2.1.1 单向散列函数的基本原理 3
2.1.2 散列值的长度 4
2.2 MD5算法的基本原理 4
2.3 MD5的应用 12
3 需求分析及设计方案 14
3.1 主要功能模块 14
3.1.1 数据加密 14
3.1.2 数据存储 14
3.1.3 数据库设计 14
3.2 主要流程图 15
4 MD5算法的DLL封装 15
4.1 加载时动态链接 16
4.2 运行时动态链接 16
4.3 DLL封装情况 16
5 具体设计流程及实现 17
5.1 读取的设计和实现 17
5.2 插入的设计和实现 18
5.3 修改的设计和实现 18
5.4 删除的设计和实现 19
6 调试与分析 19
6.1 概述 19
6.2 测试分析报告 20
结    论 20
参考文献 21
致    谢 22
声    明 23
 
2 相关理论基础
2.1 单向散列函数
单向散列函数[4]也称Hash(哈希)函数。它是现代密码学的核心。散列函数一直在计算机科学中使用,散列函数就是把可变的输入长度串转换成固定长度输出值(叫做散列值)的一种函数。而单向散列函数是在一个方向上工作的散列函数,从预映射的值很容易计算出它的散列值,但要使它的散列值等于一个特殊值却很难。
散列函数是公开的,对处理过程并不保密,单向散列函数的安全性是它的单向性,其输出不依赖于输入。平均而言,预映射值的单个位的改变,将引起散列值中一半位的改变。已知一个散列值,要找到预映射的值,使它的值等于已知的散列值在计算上是不可行的,可把单向散列函数看作是构成指纹文件的一种方法。如果你验证某人持有一个特定的文件(你同时也持有该文件),但你不想他将文件传给你,那么,就要通知他将该文件的散列值传给你,如果他传送的散列值是正确的,那么可以肯定他持有那份文件。
2.1.1 单向散列函数的基本原理
单向散列函数H(M)是对一个任意长度的消息M进行运算。返回一个固定长度的值h。
h=H(M)
其中h的长度为m。
输入为任意长度且输出为固定长度的函数有很多种,但意向散列函数具有使其单向的如下特性:
1)给定值M,可以很方便地计算出h值。
2)给定h,根据H (M) =h计算M很难。
3)给定M,要找到另一则消息M'并使得H(m)=H(m')很难。
也就是说,如果某个入侵者想要获得一则消息,他必须破坏掉每个运用单向函数的协议的安全性,因为单向性函数的关键在于产生M的一个唯一的消息摘要。
事实上,单向散列函数是建立在压缩函数的思想基础之上的。单向散列函数的输出值为一个长度为n的散列值,该长度比输入值的长度m要小很多,即n<m。进行该函数运算的前提条件是我们应根据一定规则将消息分成若干个消息片段,散列函数的输入值是一个消息片段和前一个消息片段的输出值,而其输出值则是该消息片段前所有消息片段的散列值。这也就是说,消息片段M的散列值的计算方法可表示为:
 
该过程可图示如下:

Mi                     hi
                    Hi-1

   图1
同时该散列值又将作为下一步运算的输入值之一,由此推算可知,整个消息的散列值n即为最后一个消息片段经计算所得的散列值。这样,我们最终得到的将是一个固定长度的函数值。
2.1.2 散列值的长度
我们都知道,散列值越长则安全性越好,MD5算法就是单向散列函数产生128位的散列值,以此保证了它的安全性,以下即为生成一个长散列值的方法:
1)运用单向散列函数生成一则消息的散列值。
2)将该散列值附于消息之后。
3)产生包含散列值和消息在内的一连串的数值的散列值。
4)将第一步产生的散列值与第三步产生的散列值组合起来生成一个更大的散列值。
5)重复1)至3)步若干次。


参考文献                 
[1] 杨义先,林晓东.信息安全综论[M].北京:电信科学出版社, 1998 。                    
[2] 杨明,齐望东.密码编码学与网络安全[M].北京:电子工业出版社,1997。
[3] 彭文波.MD5算法原理及应用[EB/OL].中国知网 1999.2。
[4] 桑海,李建宝.加密算法MD5 的研究与应用[EB/OL]. 华南金融电脑 1999.7。
[5] 潘清芳.使用MD5加密数据库系统的设计[J].第3 卷第2 期:77-143。
[6] 郑莉,董渊.C++语言程序设计[M].北京:清华大学出版社,2001。
[7] 施卫锋, 周俊, 朱利刚.多户住处系统中数据安全性控制及其实现[EB/OL].微机发展。
[8] 段钢著.加密与解密(第二版)[M].北京:电子工业出版社,2003。

 

本文内容只是论文部分简介,如需了解更多详情请咨询本站客服! QQ交谈计算机毕业设计,毕业设计,工程硕士论文,计算机毕业论文
毕业论文搜集整理:毕业论文网 计算机毕业设计 计算机毕业论文 毕业设计


顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
计算机毕业设计
计算机毕业论文
论文发表