1基于RSA的数字签名技术胡思雨1,孙秀丽2,张瑞华3(1安徽师范大学数学计算机科学学院,安徽,芜湖,2410002安徽师范大学数学计算机科学学院,安徽,芜湖,2410003安徽师范大学数学计算机科学学院,安徽,芜湖,241000)摘要:信息是推动社会向前发展的重要资源。随着计算机网络技术的不断发展,Internet技术的日趋成熟,由此而来的互联网信息交换技术给人们的工作、学习和生活等带来了便捷和好处,但是同时网络中的安全问题也日趋严重,病毒、木马程序、远程监听,远程攻击等无时无刻都在困扰着人们,特别是一些商业,科研,国防机构,常常要在互联网上传输一些机密资料。计算机网络的开放性与共享性,系统的复杂性,边界不确定性,以及路径不确定性都导致了网络安全性问题的发生,使得网络很容易受到外界的攻击和破坏同样也使数据信息的保密性受到了严重影响。因此,网络中的信息安全技术和加密技术就显得尤为重要。密码技术是信息安全的核心技术。公钥密码在信息安全中担负起密钥协商、数字签名、消息认证等重要角色,已成为最核心的密码。本文介绍了数字签名技术的基本功能、原理和实现条件,并实现了基于RSA的数字签名算法。关键词:网络安全;加密技术;数字签名技术;密钥管理;加密技术应用;RSA算法;TheDigitalSignatureTechnologyBasedonRSAHUSiyu,SUNXiuli,ZHANGRuihua(SchoolofMathematics&ComputerScience,AnhuiNormalUniversity,Wuhu241000,China)Abstract:Informationisanimportantresourcetopushsocietyforward.Withthecontinuousdevelopmentofcomputernetworktechnology,Internettechnologybecomingmature,andInternetinformationexchangetechnologytogivepeoplework,studyandlifehasbroughtconvenienceandbenefits,butatthesametimeinthenetworksecurityproblemisincreasinglyserious,viruses,Trojanhorseprogram,remotemonitoring,plaguedbyrangedattacks,etc.Allthepeople,especiallysomebusiness,scientificresearch,thedefenseagencies,oftenneedtotransportsomeconfidentialdataontheInternet.Opennessandsharingofcomputernetwork,thecomplexityofthesystem,theboundaryuncertainty,andthepathofuncertaintyareleadtothenetworksecurityproblems,andmakesthenetworkveryvulnerabletotheoutsideworldandalsothedatainformationprivacyhasbeenseriouslyaffected.Therefore,inthenetworkinformationsecuritytechnologyandencryptiontechnologyisparticularlyimportant.Cryptographyisthecoreofinformationsecuritytechnology.Publickeypasswordforkeyagreementininformationsecurity,digitalsignatures,messageauthenticationandotherimportantrole,hasbecomethecoreofthepassword.Thispaperintroducesthebasicfunctionofdigitalsignaturetechnology,principleandtheimplementationcondition,andrealizesdigitalsignaturebasedonRSAalgorithm.Keywords:Internetsecurity,encryptiontechniques,digitalsignaturetechnology,keymanagement,encryptiontechniquesapplication,RSAalgorithm21、引言21世纪的特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。因为网络可以非常迅速地传递信息,要实现信息化就必须依靠完善的网络。网络对社会生活的很多方面以及社会经济的发展具有不可估量的影响,正因为如此,在网络信息传输过程中,如果数据受到攻击和监听,由此造成的损失也是巨大的,因此网络信息的安全问题不得不引起我们的重视。特别是对于诸如银行、通迅和国防等等传输机密数据的网络而言,其网络中数据的安全性就更加重要了。网络安全是加密技术产生的直接原因和发展的指导方向。然而如今随着网络技术的不断发展,Internet规模逐渐扩大和成熟,由此给人们的工作、学习和生活等便捷的同时,网络的安全问题也日趋严重,病毒、木马、黑客等各种各样的攻击也无时无刻地困扰着我们,尤其是对那些商业,科研,国防等在网络上传输敏感数据的机构,网络信息安全的解决更加迫在眉睫。病毒攻击、黑客攻击的泛滥猖獗使处在网络时代的人们感觉无所适从。也许已经有了一定的技术手段可以改善网络安全的状况,然而,这一切的安全问题是不可能全部找到解决方案,况且有的是根本无法找到彻底的解决方案,如病毒木马程序,因为任何反病毒程序都只能在新病毒被发现之后才能捕获它们,迄今为止还没有一家反病毒软件开发商敢承诺他们的软件能查杀所有已知的和未知的病毒,这说明,网络永远不可能得到绝对的安全。所以我们不能期待网络绝对安全了再展开网络的应用,只要网络存在,病毒、黑客也会存在,它们是一个共存体,就像是矛与盾的关系。加密技术就是在网络安全的迫切需要下应运而生的,它为人们在网络上进行的数据交换行为提供了一定的安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等。其实加密也不是什么新鲜事物,只不过运用在当今电子商务、电脑网络中还是近几年的事情。2、数据加密技术原理对于任何一个一般加密系统至少包括下面四个组成部分:(1)未加密的报文,也称明文。(2)加密后的报文,也称密文。(3)加密解密设备或算法。(4)加密解密的密钥。发送方用加密密钥,通过加密设备或算法,将信息加密后发送出去。接收方在收到密文后,用解密密钥将密文解密,恢复为明文。如果传输中有人窃取,他只能得到无法理解的密文,从而对信息起到保密作用。一般的数据加密模型如图1所示:加密过程包括两个元素:算法和密钥。一个加密算法是将普通明文信息(文件或者数据等)与一窜数字或者数字字母的组合(密钥)进行结合,产生不可理解的无意义的密文的步骤。算法以及密钥对加密过程来说是同等重要的,密钥是用来对数据进行编码和解码的一种特殊算法。在安全保密中,可通过适当的密钥加密技术和管理机制,来保证网络的信息通讯安全。从20世纪60年代起,随着电子技术、计算技术的迅速发展以及结构代数、可计算性和计算复杂性理论等学科的研究,密码学进入了一个新的发展时期,在20世纪70年代起,美国的数据加密标准DES(DataEncryptionStandard),和公钥密码体制(publickeycrypto-system)的出现,成为近代3密码学发展史上两个重要里程碑。其中又有两种重要的数据加密技术:对称式加密技术和非对称式加密技术。2.1对称式加密技术对称密钥加密的发送和接受的双方都使用相同的密钥,并且密钥是保密的,不向外公开,通常称之为“SessionKey”。这种加密技术的共同特点在于加密和解密密钥相同,发送方用密钥对数据(明文)进行加密,接收方收到数据后,用同一个密钥进行解密,这类加密技术实现容易,加解密速度快。当然,这种加密方式必须在数据发送接收之前保证收发双方拥有相同的密钥,这就需要通过绝对安全的方式来传送密钥(一般称之为安全信道)。由于容易实现和效率高,这种加密技术被广泛使用,最有名的如美国政府所使用的DES(DataEncryptionStandard)加密技术和AES(AdvancedEncryptionStandard)加密技术。DES又叫数据加密标准,属于常规密钥密码体系,是一种典型的“对称式”加密法。这种加密技术由IBM开发,在1977年被美国定为联邦信息的一个标准。ISO曾将DES作为数据加密标准。DES是一种分组对称加解密算法,在加密前,先对整个明文进行分组。每一个组长为64bit。然后对每一个64bit二进制数据进行加密处理,产生一组64bit密文数据。最后将各组密文串接起来,即得出整个的密文。使用的密钥为64bit(实际密钥长度为56bit,有8bit用于奇偶校验)。2.2非对称式加密技术1976年,美国学者Diffe和Hellman为解决常规密钥密码体制的密钥分配问题及对数字签名的需求,提出一种密钥交换全新的协议,它允许数据在不安全的传输环境中进行通信,并安全的使用一致的加密密钥,即“公开密钥系统”。公开密钥密码体制使用不同的加密和解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。相对于“对称加密算法”这种方法也叫做“非对称加密算法”[2]。和对称加密算法有所不同的是,非对称加密算法需要两个密钥:即私有密钥(PrivateKey)和公开密钥(PublicKey)。私有密钥和公开密钥是对应的一对:用公开密钥进行加密的数据,只能通过相对应的私有密钥才能解密;同理,用私有密进行加密的数据,只能用相对应的公开密钥才能解密。只是由于加密和解密分别使用不同的两个密钥,所以这种算法也被叫作非对称加密算法。非对称加密算法的基本原理是,发送方(加密者)必须首先知道接收方(解密者)的公开密钥,然后利用接收方(解密者)的公开密钥加密明文;接收方(解密者)收到加密密文后,使用自己的私有密钥解密密文。显然,采用非对称加密算法,发送接收双方在通信之前,接收方必须将随机生成的公钥发送给发送方进行加密,而自己保留私钥。3、RSA算法的设计与实现3.1RSA算法的原理非对称的加密算法含有两个密钥,特别适用于分布式系统中的数据加密,其中RSA算法为当今世界上应用最为广泛的非对称加密算法。RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积分解开则极其困难。在这个体系中每个用户有两个密钥:加密密钥nPK,e和解密密钥nSK,d。加密密钥是公开的,使得系统中任何用户都可无限制使用,而对解密密钥中的d则保密,只有使用者自己知道。具体实现过程为:1.随机选取两个素数q,p2.计算qp*n3.计算欧拉函数)1()1()(qpn4.在2和)(n之间随机选择一个数e,4e必须和)(n互素,整数e用做加密密钥。5.从公式)(mod1den中求出解密密钥d。6.得公钥),(neKP,私钥),d(nKS。公开公钥,但不公开私钥。7.将明文P(假设P是一个小于n的整数)加密为密文C,计算方法为:nPCemod8.将密文C解密为明文P,计算方法为:nCPdmod然而只根据n和e(不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。3.2RSA算法的实现图3.2.1密钥产生过程图2密钥产生过程3.2.2解加密过程如图35图3解加密过程4、基于RSA算法的数字签名技术虽然