数字签名方案设计与实现

随着计算机网络和信息技术的发展,信息安全在各领域发挥着越来越重要的作用,其中密码学已成为信息安全技术的核心,本文主要介绍了密码学领域一个重要部分数字签名算法的实现。
数字签名是起到身份认证、核准数据完整性的一种信息安全技术。它通过认证技术来辨认真伪。RSA算法是目前公认的在理论和实际应用中最为成熟和完善的一种公钥密码体制,它是第一个既能用于数据加密也能用于数字签名的算法,是公钥密码体制的代表。因此本文把算法的重点放在RSA算法上。
本文主要研究的内容包括:第一,对数字签名的基本特性、公钥密码体制和基于公钥密码体制的数字签名的基本概念进行了全面系统的介绍,为学习和分析算法打下了理论基础;第二,对散列算法SHA-1的分析;第三,对比介绍了RSA、DSA、ECDSA三种普通典型数字签名算法的机制;第四,改进RSA数字签名算法;第五,使用java语言编程实现了一个数字签名系统。
关键词:数字签名,公钥密码体制,RSA,SHA-1  HM000003
With the development of the computer network and information technology, information security plays more and more important role in every field. Cryptography has become the core of information security technology. This thesis mainly introduces implementation of digital signature algorithm which belongs to Cryptography.
Digital signature is an information security technology used to check authentication and data integrity. It identifies true or false by the authentication technology. RSA algorithm is considered as a public-key cryptosystem of the most fully developed and complete in theory and practice application at present. It is the first algorithm for both data encryption and digital signature. That’s why the thesis focuses on RSA algorithm.
There are five parts in the main content of this thesis. First of all, basic characteristic of the digital signature, Public key cryptosystems and digital signature based on Public key cryptosystems is wholly introduced, which lays a theoretical foundation for the analysis and improvement. Secondly, it introduces analysis and improvement on the SHA-1 hash algorithm. Thirdly, three common mechanisms of typical digital signature algorithms including RSA, DSA and ECDSA are clearly shown by comparing. Then, RSA digital signature algorithm is improved. At last, a digital signature system is implemented using the Java programming language.
Key words: Digital Signature, Public Key Cryptosystems, RSA, SHA-1
1.3公钥密码体制
基于公钥密码体制和私钥密码体制都可以获得数字签名。而目前关于数字签名的研究主要集中于基于公钥密码体制的数字签名的研究,因此有必要了解一些公钥密码体制的基本概念。
1.3.1 公钥密码体制
公钥密码体制概念是由Whitfield Diffie和Martin Hellman于1976年提出的,它是密码学历史上的一个重大成就。公钥密码与所有以前的密码方法都截然不同:一是以前的密码算法都是基于代换与置换操作,而公钥密码使用数学函数进行变换;二是公钥密码体制使用非对称的方式,即使用两个密钥(加密密钥与解密密钥),而传统的密码算法仅仅使用一个密钥。公钥密码体制的提出首先是为了解决利用传统密码体制进行密钥分发时遇到的问题,数字签名是其重要的应用之一[3]。
表1.1给出了单钥密码与公钥密码特点的比较。
表1.1公钥密码与单钥密码比较
    公钥密码    单钥密码 查看完整请+Q:351916072获取
运行条件    1.加密和解密使用相同的算法,其中公钥用于加密,私钥用于解密    1.加密和解密使用相同的算法
    2.发送方和接收方使用相同的算法;加密用途时,发送方拥有公钥,接收方拥有私钥    2.发送方和接收方必须共享相同的密钥和算法
安全条件    1.两个密钥中只要私钥保密即可    1. 私钥必须保密
    2.如果不掌握其他信息,要想解密消息是不可能的,至少是不现实的    2.如果不掌握其他信息,要想解密消息是不可能的,至少是不现实的
    3.知道所有的算法加上密文的样本与公钥,还是不可能确定私钥    3.知道所有的算法加上密文的样本,还是不可能确定私钥
1.3.2 单向函数
数字签名系统的安全性主要取决于构造公钥算法所依赖的数学问题。要求加密函数具有单向性,即求逆的困难性。因此,设计公钥体制的关键是先要寻求一个合适的单向函数。
定义1-4-1令函数是集到集的映射,以表示。若对任意,有,则称为单射,或1-1映射,或可逆的函数。
为可逆的充要条件是:存在函数,使对所有有。
定义 1-4-2 一个可逆函数,若它满足:
(l)对所有,易于计算。
(2)对“几乎所有”由求 “极为困难”,以至于实际上不可能做到,则称为单向(one-way)函数。
定义中的“极为困难”是对现有的计算资源和算法而言。Massey称此为视在困难性(Apparent Difficulty),相应函数称之为视在单向函数。以此来和本质上的困难性区分[4]。
目 录 查看完整请+Q:351916072获取
摘  要    I
ABSTRACT    II
第1章 绪论    1
1.1 引言    1
1.2数字签名的概述    1
1.3公钥密码体制    4
1.3.1 公钥密码体制    4
1.3.2 单向函数    5
1.3.3 单向陷门函数    5
1.3.4可换单向函数    6
1.3.5 公钥密码体制的单向函数举例    7
1.4基于公钥密码体制的数字签名方案    9
1.5 主要工作    10
1.6 本文结构    10
第2章 散列算法SHA-1分析及改进    11
2.1 SHA-1算法概述    11
2.2 SHA-1的安全性分析    15
2.3 对哈希算法SHA-1的几点改进    16
2.3.1 扩大分组长度    16
2.3.2 安全散列值计算    16
2.3.3 变换原始逻辑函数    17
第3章 经典普通数字签名算法分析    18
3.1 引言    18
3.2 RSA数字签名算法    18
3.2.1 RSA数字签名算法    18
3.2.2 RSA数字签名方案的缺陷    19
3.2.3 RSA缺陷解决办法    20
3.3 DSA数字签名算法    20
3.3.1 DSA数字签名算法    21
3.3.2 DSA数字签名方案的缺陷    22
3.3.3 DSA缺陷解决办法    23
3.4 ECDSA数字签名算法    23
3.4.1 ECDSA数字签名算法    23
3.5 数字签名算法比较    26
3.5.1安全性能    26
3.5.2计算速度    26
3.5.3空间需求    27
3.5.4通信带宽    27
第4章 RSA数字签名算法的改进及实现    29
4.1 素数生成算法改进    29
4.1.1 常规获得大素数算法    29
4.1.2 改进的素数生成算法    30
4.2 幂指运算的改进    31
第5章 基于RSA数字签名小系统的实现    32
5.1 系统的总体要求和设计    32
5.2 模块详细设计    32
第6章 结束语    37
参考文献    38
致谢    40 查看完整请+Q:351916072获取

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/3316.html

好棒文