(二)1.2 本课题的研究意义
随着电子商务的发展,网络上资金的电子交换日益频繁,如何防止信息的伪
造和欺骗成为非常重要的问题。在计算机通信系统中,维护电子文档的安全也成
为至关重要和非常敏感的问题。为保护信息的安全,数字签名应运而生,它是现
代密码学主要研究的内容之一。目前关于数字签名的研究主要集中点是基于公钥
密码体制的数字签名。在公钥密码体制中,解密和加密密钥不同,解密和加密可
分离,通信双方无须事先交换密钥就可建立起保密通信,因此它较好地解决了传
统密码体制在网络通信中出现的问题。手写签名的每一项业务都是数字签名的潜
在用场。数字签名可以提供数据完整性、真实性和不可否认性。因而当需要对某
一实体进行认证、传输具有有效性的密钥以及进行密钥分配时,便可以借助数字
签名来完成任务。数字签名技术在身份识别和认证、数据完整性、抵赖等方面具
有其它技术无法替代的作用,它在军事、电子商务和电子政务等领域有着极广泛
的应用。而在公钥体制中,RSA是一个较为完善的公钥密码算法,不仅能够同时
用于加密和数字签名,而且易于理解和操作,是被广泛研究的公钥密码算法。因
此,基于RSA的数字签名具有较强的研究性和实际应用意义。
2 RSA 算法和 RSA 数字签名算法的基本概念和原理
(三)2.1 RSA 算法的基本概念和原理
2.1.1 RSA 算法介绍与应用现状
RSA算法是一种公钥密码算法,实现RSA算法包括生成RSA密钥,加密和解密数
据。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA
是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考
验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依
赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等
价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多
数人士倾向于因子分解不是NP-C问题。RSA的缺点主要有:A)产生密钥很麻烦,
受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安
全性,n 至少也要 600 bits。
RSA算法的时间复杂性取决于它所设计的几个基本运算的时间复杂性。密钥
生成过程时间主要是生成随机素数的时间及计算公钥和私钥的模乘法的时间。生
成随机素数的时间在于完成对随机大数的Fermat测试的时间,Fermat测试的时间
复杂度为O((log
2
n)
3
),n所测试的整数。模乘法的计算方法采取先计算两个数的乘
积,再取模n,时间复杂性为O((log
2
n)
2
)。 RSA加密解密计算的时间主要是模幂运
算的时间,即形式为x
c
mod n的函数的运算时间。模幂算法采取平方乘算法,设l
是c的长度,则计算x
c
mod n至多需要2l次模乘法,因为 1�[log
2
n]+1,所以模幂运算