您现在的位置:网站首页答辩论文计算机毕业设计JAVA/JSP

因特网上传输文件的签名与验证程序

  • 简介:(毕业论文 页数:58字数:27019)摘 要: 随着Internet的快速发展,对网络信息安全提出了更高的要求,而数字签名技术在保证数据的完整性、私有性和不可抵赖性方面起着极为重要的作用,占据特别重要的地位。 本文设计了一个数字签名及签名验证系统。该系统基于...
    • 请与管理员联系购买资料 QQ:5739126
  • 论文简介
  • 相关论文
  • 论文下载

(毕业论文  页数:58字数:27019)摘 要: 随着Internet的快速发展,对网络信息安全提出了更高的要求,而数字签名技术在保证数据的完整性、私有性和不可抵赖性方面起着极为重要的作用,占据特别重要的地位。
本文设计了一个数字签名及签名验证系统。该系统基于RSA和MD5算法以及 Winsock通信,并利用Java作为编程语言,JCreator作为开发工具,成功实现了对选定文件进行数字签名及其签名验证。
系统由客户端和服务器端两部分组成。客户端能对任意选定文件进行数字签名,并保存签名和公钥,然后通过Winsock通信将签名和公钥发送到服务器端。服务器为多线程服务器,能够处理多个客户端连接,接收它们发送过来的签名和公钥,然后对签名进行验证。
本设计最大的特点是利用了Java安全API中数字签名的功能和Java强大的网络功能,直接调用Java的内部函数实现了数字签名,利用Java中的Socket实现了Winsock通信,使得数字签名和Winsock通信的实现简化了许多。
因此,本文设计的是一个操作方便、功能齐全的简单的数字签名及签名验证系统。

关键词  数字签名,签名验证,RSA, MD5算法, Winsock通信,Java

ABSTRACT

Rapidly increase of Internet is making more higher demands on the security of network information,while digital signature technology plays a very important role and occupies an especially important place in assureing the integrity , privateness and non-repudiction of data.
  This article designed a digital signature and signature verification system. Using java as program language and JCreator as development tool,this system which is based on RSA and MD5 algorithm and Winsock communication, succeeded in implementing signature and signature verification for any files chosen.
  The system consists of client-side and server-side. The client-side is able to sign any file chosed , save its signature and public key,and then send them to server-side by Winsock communication. The server-side which is a multi-thread server, is able to deal with multiple connections of client-side,receive signature and public key sended by them,and then verify the signature.
This design has a major characteristic,which is that making use of functions of signature in java’s security API and java’s powerful network functions.The design directly used functions inner java to implement digital signature ,used socket inner java to implement winsock communication,which maked it much more simple to implement digital signature and winsock communication.
Therefore,this article designed a simple digital signature and signature verification system with simple operation and complete functions.
KEY WORDS  digital signature, signature verification, RSA, MD5 algorithm, winsock communication,Java

摘 要 II
ABSTRACT III
第一章 绪论 1
1.1 课题背景 1
1.2 国内外数字签名技术的研究现状 2
1.3 任务要求和目标 5
1.4实现条件和方案的选择 6
第二章 数字签名技术原理 8
2.1 数字签名的基本原理 8
2.1.1数字签名的定义 8
2.1.2数字签名的功能和应用 9
2.2 数字签名算法 11
2.2.1 数字签名算法概述 11
2.2.2 RSA签名算法 12
2.2.3 MD5算法简介 13
2.3 数字签名在JAVA中的实现方法 15
第三章 软件设计 19
3.1 软件设计思路 19
3.2 系统框图 20
3.2.1 程序流程图 20
3.2.2程序模块图 21
3.3 系统详细设计 23
3.3.1 客户端程序 23
3.3.2 服务器端程序 26
3.3.3 利用Sokcet实现Winsock通信 29
第四章 软件测试与分析改进 33
4.1 系统整体功能测试 33
4.2 客户端功能测试 34
4.3 服务器端功能测试 35
4.4 软件性能整体分析与改进 37
第五章 总结 39
结束语 40
参考文献 41
附录 42
附录Ⅰ 42
附录Ⅱ 47

1.1 课题背景

我们知道,一般的书信或者文件等纸质文档是根据亲笔签名或印章来证明其真实性的。当今社会,电子文档将逐步代替纸质的文件成为信息交流的主体。证明某一个电子文件是某作者所作的有效办法是模拟普通的手写签名在电子文档上进行电子签名,即在电子化文件中添加可以标记自己的一段特征数据来实现签名。作者可以通过数字签名表明目己的身份,读者可以通过数字签名验证作者的身份。
电子邮件是互联网上最重要的应用之一,传统的电子邮件都是明文传输,并且发送方可以轻松地伪造自己的身份。随着电子邮件的应用扩展到各种信息敏感领域,如:政府间来往、商业谈判等,电子邮件的内容保密和发送方身份确认的重要性便逐步凸现出来。数字签名能很好地解决电子邮件的身份确认问题。
电子商务是互联网上发展最快的应用方向,它是借助于互联网的快速信息传输能力来完成各种商务活动,包括电子数据交换、在线交易系统、网上银行、商业增值网等。互联网是一个开放的空问,任何人都可以进入,而重要的商务信息具有敏感性和保密性,所以通常的商务信息在传输中要进行加密,同时,为了进一步防止欺骗性的篡改,数字签名是必不可少的。电子商务活动中的电子订单、电子帐单、电子收据、电子合同等电子文档都需要作数字签名以确保真实性。
网页数据是互联网上传输量最大的数据,网页已成为发布新闻、广告、招标、招聘等各种信息的重要媒体,己经开始对社会、经济、生活产生出一定的影响。这些信息来源的可靠性对相关人员来说极为重要。
随着数字化时代的到来,作为一种重要且有效的信息安全技术——数字签名将应用到社会的各个领域。
数字签名可以解决否认、伪造、篡改及冒充等问题。具体要求:发送者事后不能否认发送的报文签名,接收者能够核实发送者发送的报文签名,接收者不能对发送者的报文进行部分篡改,网络中的某一用户不能冒充另一用户作为发送者获接收者。数字签名的应用范围十分广泛,在保障电子数据交换的安全性上是一个突破性的进展,凡需要对用户的身份进行判断的情况都可以使用数字签名以确保数据的完整性、私有性和不可抵赖性。





1.2 国内外数字签名技术的研究现状

自从1976年公钥密码的思想提出以来,国际上已经提出了许多种公钥密码体制,如基于大整数固了分解问题的RSA[1](Ron Rivest, AdiShamir 和Leonard Adleman) 体制和Rabin(Miller-Rabin算法)体制、基于有限域上的离散对数问题的Diffie.Hellman公钥体制和E1Gamal体制、基于椭圆曲线上的离散对数问题的Diffie.Hellman公钥件制和E1Gamal体制、基于背包问题的Merkle.Henman体制和Chor-Rivest体制、基于代数编码理论的MeEliece体制、基于有限自动机理论的公钥体制等等。
用抽象的观点来看,公钥密码体制就是一种陷门单向函数。我们说一个函数 是单向函数,若对它的定义域中的任意x 都易于计算f(x ),而对f的值域中的几乎所有的Y, 即使当f为已知时要计算f-1(Y)在讨算上也是不可行的。若当给定某些辅助信息(陷门信息)时易于计算f-1(Y),就称单向函数 是~ 个陷门单向函数 公钥密码体制就是基于这一原理而设计的,将辅助信息(陷门信息)作为秘密密钥。这类密码的安全强度取决于它所依据的问题的计算复杂性。
目前比较流行的公钥密码体制主要有两类:一类是基于大整数因子分解问题的,其中最典型的代表是RSA体制。 另一类是基于离散对数问题的,如E1Gamal公钥密码体制和影响比较大的椭圆曲线公钥密码体制 由于分解大整数的能力日益增强,因此为保证RSA体制的安全性总是要增加模长 目前768bit模长的RSA体制已不安全。一般建议使用1024bit模长,预计要保证20年的安全性就要选择2048bit的模长,增大模长带来了实现上的难度。
而基于离散对数问题的公钥密码在目前技术下512bit模长就能够保证其安全性 特别是椭圆曲线上的离散对数的计算要比有限域上的离散对数的 算更困难, 目前技术下只需要160bit模长即可保证其安全性,适合于智能卡的实现, 因而受到国际上的广 泛关注。国际上制定了椭圆曲线公钥密码标准IEEEP1363。RSA等一些公司声称他们已开发出了符合该标准的椭圆曲线公钥密码。我国学者也提出了一些公钥密码,另外在公钥密码的快速实现方面也做了一定的工作,比如在RSA的快速实现和椭圆曲线公钥密码的快速实现方面都有所突破。公钥密码的快速实现是当前公钥密码研究中的一个热点,包括算法优化和程序优化。另一个人们所关注的问题是椭圆曲线公钥密码的安全性论证问题。
目前,公钥密码的重点研究方向为:
1)用于设计公钥密码的新的数学模型和陷门单向函数的研究:
2)针对实际应用环境的公钥密码的设计:
3)公钥密码的快速实现研究, 包括算法优化和程序优化、软件实现和硬件实现;
4)公钥密码的安全性评估问题,特别是椭圆曲线公钥密码的安全性评估问题。
公钥密码主要用于数字签名和密钥分配。当然,数字签名和密钥分配都有自己的研究体系,形成了各自的理论框架。
数字签名是对电子形式的消息签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名, 特别是公钥密码体制的诞生为数字签名的研究和应用开辟了一条厂阔的道路。

查看评论 已有0位网友发表了看法
  • 验证码: