RSA密码体制及数字签名技术的研究

2014-07-18 02:52李潇董日壮
电脑知识与技术 2014年13期
关键词:数字签名

李潇 董日壮

摘要:随着计算机网络和信息技术的发展,信息安全在社会各领域发挥着越来越重要的作用,其中安全与保密已成为信息安全技术的一个核心内容。现代密码学的主要研究领域之一就是数字签名,它在身份识别、认证、数据完整性等方面具有其它技术不能取代的作用,在电子商务、电子政务及数据库安全等领域有着极突出的作用。该文首先介绍了数字签名的研究背景原理,接着探讨了基于RSA算法的数字签名系统及应用。

关键词:安全与保密;数字签名;RSA算法

中图分类号:TP301.6 文献标识码:A 文章编号:1009-3044(2014)13-2933-02

Research on RSA Cryptography and Digital Signature Technology

LI Xiao, DONG Ri-zhuang

(School of Computer Engineering, Qingdao Technology University, Qingdao 266033, China)

Abstract: With the development of computer network and information technology, information security plays a more and more important role in each field of society, the security and privacy has become a core of information security technology. One of the main research fields of modern cryptography is the digital signature, it has the other technology can not replace the role in the identification, authentication, data integrity, etc, it has a very important role in e-commerce, e-government and database security fields. This paper first introduces the research background of digital signature principle, and then discusses the digital signature system based on the RSA algorithm and its application.

Key words: Safety and security; digital signature; RSA algorithm

1 概述

随着现代电子商务的飞速发展,通过网络进行的资金电子交易日益频繁,避免信息伪造和欺骗的现象的发生成了一个非常关键的问题;另外,在计算机通信系统中,维护电子文档的安全也成为一个至关重要而且特别敏感的问题[]。因此,为了保护信息的安全,数字签名技术应运而生,开始慢慢解决安全的问题。

目前,网络技术的迅猛发展,加快了办公效率,电子银行、电子政务、电子商务开始在政府和市场的各行各业大范围的发展起来,数字签名作为一种法律承认的,能够保证数据的完整性、机密性、抗否定性的一种信息安全技术,在安全、高效的利用网络进行办公或盈利的时代中发挥了重要作用[]。文章将接下来简单介绍数字签名的概念及实现原理,阐述利用RSA算法实现数字签名的技术原理。

2 数字签名技术概述

2.1 数字签名概念

数字签名是非对称加密算法的典型应用[]。数字签名的应用过程是,数据源发送方用自己的私钥对数据进行校验,或对其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”;数据接收方利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。

只有信息的发送者才能产生数字签名,别人是无法伪造的,数字签名也是对发送者发送信息真实性的一个证明。数字签名可以定义为:数字签名是附加在数据单元上的数据,或是对数据单元的密码更换,这种改动允许接收者来确认数据单元的来源和完整性,并保护数据,防止被其他人伪造[]。

2.2 数字签名原理

数字签名是解决网络通信中安全问题的一种有效方法,它能够实现电子文档的辨认和验证,在保证数据的完整性、私有性、不可抵赖性方面起着积极作用[]。为了实现网络中身份识别和鉴定等功能,数字签名要满足以下四点要求:

1)发送者发出签名的消息后,不能否认;

2)接收者能够确认或证实发送者的签名;

3)任何人都不能伪造或更改签名。

4)第三方可确认收发双方之间的消息传送,但不能伪造传送的过程。

一个典型的数字签名体系必须包含签名算法和验证算法两部分,要满足上述四点要求,数字签名体系还要满足以下两条基本假设:签名密钥是安全可靠的,只有其拥有者才能使用;签名密钥的使用是生成数字签名的唯一途径。

3 RSA算法实现数字签名的原理

一般情况下,实现数字签名的方法有三种[2]:单项散列函数签名(HASH)、对称密钥系统签名、非对称密钥系统签名。其中单项散列函数签名和对称密钥系统签名在保存密钥方面都面临很大的困难,因此,用非对称密钥算法进行数字签名的方式就被广泛的运用[2]。

3.1 RSA算法

RSA算法(公钥加密算法),是Rivest,Shamir和Adleman在1978年提出的,是第一个比较完善的公开密钥算法,既能加密也能用作数字签名[],是一种“由已知加密密钥推出解密密钥,在计算上是不可行的”密码体制。

作为最著名的非对称密钥算法之一,其利用两个大质数与被加密原文相乘产生的积来进行加密和解密[],一个用于加密数据,一个用于解密数据,这两个质数不管哪一个与被加密的原文相乘,都可由另一个质数相乘来解密。但是,想要用这个乘积求出另一个质数,则需要进行分解大数的质因子,如果数小还可以分解,如果选用的质数足够大,这种求解几乎求不出来,这样就保证了信息的安全。

在应用的使用中,每个用户都保存一对密钥,即私钥(PriK)和公钥(PubK)。私钥利用私密的安全介质保密存储,不会泄露给任何外人,但公钥便可公开发表,一般存放在公共服务器上供人查询。

3.2 RSA算法实现数字签名的原理

RSA算法在加密和解密过程中用的是公钥加密,私钥解密。当发送方和接收方通信时发送方用接收方的公钥对原文加密,接收方收到密文后,用私钥进行解密。由于外人不拥有与加密公钥所对应的私钥,因此,外人是无法解密的。

具体实现步骤[2]:首先发送方利用HASH算法对文件M求出散列值,即数字摘要H,然后利用公钥对数字摘要进行加密生成数字签名C,最后发送方将M和C一起发给接收方。接收方收到文件M1和数字签名C1,然后利用HASH函数对M1求出散列值,即数字摘要H1,利用接收方的私钥对数字签名C1进行解密得到数字摘要H2,再比较H1和H2。如果结果相同,则说明在传输中文件没有发生变化,并且文件确实是由发送者所发。其流程如图1所示。

图1 RSA算法进行数字签名的流程

以上流程完成了数字签名的功能,包括防篡改和防抵赖等。如果文件在传输过程中被篡改,HASH算法有“原文有任何改动,HASH值就会发生剧烈变化”的特点,那么H1和H2就会不同;如果发送者否定文件是他发的,那么根据RSA算法的另一个特点:分解一个大数的质因子特别难,如果选用的质数足够大,就几乎无解,用发送方的公钥是解密不了用其他人的私钥加密的秘文的。因此,此种方法比较安全。

4 基于RSA算法的数字签名的应用及前景

随着网络的发展,网络通信安全成为一大问题,而数字签名机制正好可以保证网络通信的安全,包括一对一安全通信和多人签名等方面,一对一安全通信方式只允许制定的接收方阅读发送方发送的信息,保证了网络通信的安全,多人签名则需要多个人签署同一份文件,扩展了数字签名的应用[]。

基于RSA算法的数字签名,在2000年的第六届国际密码学会议上被推荐为公钥密码系统的加密算法之一[],对于将来信息的加密、生成和验证数字签名的工具还有待完善,只有用SSL(安全套接层)建立安全连接的Web浏览器,才会经常使用数字签名,公司要对员工进行行为规范,就要建立广泛协作机制来支持数字签名,确保数据保密性、完整性和不可否认性,才能保证在线商业的安全交易。

(下转第2942页)

(上接第2934页)

数字签名作为一种信息加密和安全传送技术,越来越得到人们的重视,它涉及的关键技术也很多,并且很多新的协议,如网上交易安全协议SSL、SET协议都会涉及到数字签名,因此数字签名将得到广泛的应用和人们的首选,应用前景十分广阔。

5 结束语

本文讨论了数字签名的基本原理实现,以及如何利用RSA算法实现数字签名的技术,虽然RSA算法是一种安全技术,但是RSA算法的安全性只是一种计算安全性,绝不是无条件的安全性,这是由它的理论基础决定的,虽然,基于RSA算法的数字签名也存在不足,但随着各种技术的发展,数字签名的应用会越来越成熟。

参考文献:

[1] 科学网: 数字签名算法分析与Hash签名[DB/OL].http://bbs.sciencenet.cn/thread-25222-1-1.html.

[2] 陈晋大,郑纪蛟.用数字签名来保护网络通信安全[J].计算机应用研究,2000,17(9):43-44.

[3] 刘传领,范建华.RSA 非对称加密算法在数字签名中的应用研究[J].通信技术,2009(3):192-193.

[4] 胡丹.基于数字签名的网络通信系统的设计与实现[D].贵州大学,2008.

[5] 曲蕴慧,白新国.浅谈数字签名技术的原理及应用[J].福建电脑,2010(5): 66-66.

[6] 豆丁网.第7章_数字签名技术应用[DB/OL].http://www.docin.com/p-551683002.html.

[7] 李程.数字签名技术综述[J].电脑知识与技术:学术交流,2009,5(4):2559-2561.

[8] 石志坚,谭全权,段海龙.RSA 算法实现数字签名的研究与应用[J].微型电脑应用,2008,24(6):50-51.

[9] 陈月荣.数字签名技术在电子商务中的应用[D].淮北:淮北师范大学,2011.

作为最著名的非对称密钥算法之一,其利用两个大质数与被加密原文相乘产生的积来进行加密和解密[],一个用于加密数据,一个用于解密数据,这两个质数不管哪一个与被加密的原文相乘,都可由另一个质数相乘来解密。但是,想要用这个乘积求出另一个质数,则需要进行分解大数的质因子,如果数小还可以分解,如果选用的质数足够大,这种求解几乎求不出来,这样就保证了信息的安全。

在应用的使用中,每个用户都保存一对密钥,即私钥(PriK)和公钥(PubK)。私钥利用私密的安全介质保密存储,不会泄露给任何外人,但公钥便可公开发表,一般存放在公共服务器上供人查询。

3.2 RSA算法实现数字签名的原理

RSA算法在加密和解密过程中用的是公钥加密,私钥解密。当发送方和接收方通信时发送方用接收方的公钥对原文加密,接收方收到密文后,用私钥进行解密。由于外人不拥有与加密公钥所对应的私钥,因此,外人是无法解密的。

具体实现步骤[2]:首先发送方利用HASH算法对文件M求出散列值,即数字摘要H,然后利用公钥对数字摘要进行加密生成数字签名C,最后发送方将M和C一起发给接收方。接收方收到文件M1和数字签名C1,然后利用HASH函数对M1求出散列值,即数字摘要H1,利用接收方的私钥对数字签名C1进行解密得到数字摘要H2,再比较H1和H2。如果结果相同,则说明在传输中文件没有发生变化,并且文件确实是由发送者所发。其流程如图1所示。

图1 RSA算法进行数字签名的流程

以上流程完成了数字签名的功能,包括防篡改和防抵赖等。如果文件在传输过程中被篡改,HASH算法有“原文有任何改动,HASH值就会发生剧烈变化”的特点,那么H1和H2就会不同;如果发送者否定文件是他发的,那么根据RSA算法的另一个特点:分解一个大数的质因子特别难,如果选用的质数足够大,就几乎无解,用发送方的公钥是解密不了用其他人的私钥加密的秘文的。因此,此种方法比较安全。

4 基于RSA算法的数字签名的应用及前景

随着网络的发展,网络通信安全成为一大问题,而数字签名机制正好可以保证网络通信的安全,包括一对一安全通信和多人签名等方面,一对一安全通信方式只允许制定的接收方阅读发送方发送的信息,保证了网络通信的安全,多人签名则需要多个人签署同一份文件,扩展了数字签名的应用[]。

基于RSA算法的数字签名,在2000年的第六届国际密码学会议上被推荐为公钥密码系统的加密算法之一[],对于将来信息的加密、生成和验证数字签名的工具还有待完善,只有用SSL(安全套接层)建立安全连接的Web浏览器,才会经常使用数字签名,公司要对员工进行行为规范,就要建立广泛协作机制来支持数字签名,确保数据保密性、完整性和不可否认性,才能保证在线商业的安全交易。

(下转第2942页)

(上接第2934页)

数字签名作为一种信息加密和安全传送技术,越来越得到人们的重视,它涉及的关键技术也很多,并且很多新的协议,如网上交易安全协议SSL、SET协议都会涉及到数字签名,因此数字签名将得到广泛的应用和人们的首选,应用前景十分广阔。

5 结束语

本文讨论了数字签名的基本原理实现,以及如何利用RSA算法实现数字签名的技术,虽然RSA算法是一种安全技术,但是RSA算法的安全性只是一种计算安全性,绝不是无条件的安全性,这是由它的理论基础决定的,虽然,基于RSA算法的数字签名也存在不足,但随着各种技术的发展,数字签名的应用会越来越成熟。

参考文献:

[1] 科学网: 数字签名算法分析与Hash签名[DB/OL].http://bbs.sciencenet.cn/thread-25222-1-1.html.

[2] 陈晋大,郑纪蛟.用数字签名来保护网络通信安全[J].计算机应用研究,2000,17(9):43-44.

[3] 刘传领,范建华.RSA 非对称加密算法在数字签名中的应用研究[J].通信技术,2009(3):192-193.

[4] 胡丹.基于数字签名的网络通信系统的设计与实现[D].贵州大学,2008.

[5] 曲蕴慧,白新国.浅谈数字签名技术的原理及应用[J].福建电脑,2010(5): 66-66.

[6] 豆丁网.第7章_数字签名技术应用[DB/OL].http://www.docin.com/p-551683002.html.

[7] 李程.数字签名技术综述[J].电脑知识与技术:学术交流,2009,5(4):2559-2561.

[8] 石志坚,谭全权,段海龙.RSA 算法实现数字签名的研究与应用[J].微型电脑应用,2008,24(6):50-51.

[9] 陈月荣.数字签名技术在电子商务中的应用[D].淮北:淮北师范大学,2011.

作为最著名的非对称密钥算法之一,其利用两个大质数与被加密原文相乘产生的积来进行加密和解密[],一个用于加密数据,一个用于解密数据,这两个质数不管哪一个与被加密的原文相乘,都可由另一个质数相乘来解密。但是,想要用这个乘积求出另一个质数,则需要进行分解大数的质因子,如果数小还可以分解,如果选用的质数足够大,这种求解几乎求不出来,这样就保证了信息的安全。

在应用的使用中,每个用户都保存一对密钥,即私钥(PriK)和公钥(PubK)。私钥利用私密的安全介质保密存储,不会泄露给任何外人,但公钥便可公开发表,一般存放在公共服务器上供人查询。

3.2 RSA算法实现数字签名的原理

RSA算法在加密和解密过程中用的是公钥加密,私钥解密。当发送方和接收方通信时发送方用接收方的公钥对原文加密,接收方收到密文后,用私钥进行解密。由于外人不拥有与加密公钥所对应的私钥,因此,外人是无法解密的。

具体实现步骤[2]:首先发送方利用HASH算法对文件M求出散列值,即数字摘要H,然后利用公钥对数字摘要进行加密生成数字签名C,最后发送方将M和C一起发给接收方。接收方收到文件M1和数字签名C1,然后利用HASH函数对M1求出散列值,即数字摘要H1,利用接收方的私钥对数字签名C1进行解密得到数字摘要H2,再比较H1和H2。如果结果相同,则说明在传输中文件没有发生变化,并且文件确实是由发送者所发。其流程如图1所示。

图1 RSA算法进行数字签名的流程

以上流程完成了数字签名的功能,包括防篡改和防抵赖等。如果文件在传输过程中被篡改,HASH算法有“原文有任何改动,HASH值就会发生剧烈变化”的特点,那么H1和H2就会不同;如果发送者否定文件是他发的,那么根据RSA算法的另一个特点:分解一个大数的质因子特别难,如果选用的质数足够大,就几乎无解,用发送方的公钥是解密不了用其他人的私钥加密的秘文的。因此,此种方法比较安全。

4 基于RSA算法的数字签名的应用及前景

随着网络的发展,网络通信安全成为一大问题,而数字签名机制正好可以保证网络通信的安全,包括一对一安全通信和多人签名等方面,一对一安全通信方式只允许制定的接收方阅读发送方发送的信息,保证了网络通信的安全,多人签名则需要多个人签署同一份文件,扩展了数字签名的应用[]。

基于RSA算法的数字签名,在2000年的第六届国际密码学会议上被推荐为公钥密码系统的加密算法之一[],对于将来信息的加密、生成和验证数字签名的工具还有待完善,只有用SSL(安全套接层)建立安全连接的Web浏览器,才会经常使用数字签名,公司要对员工进行行为规范,就要建立广泛协作机制来支持数字签名,确保数据保密性、完整性和不可否认性,才能保证在线商业的安全交易。

(下转第2942页)

(上接第2934页)

数字签名作为一种信息加密和安全传送技术,越来越得到人们的重视,它涉及的关键技术也很多,并且很多新的协议,如网上交易安全协议SSL、SET协议都会涉及到数字签名,因此数字签名将得到广泛的应用和人们的首选,应用前景十分广阔。

5 结束语

本文讨论了数字签名的基本原理实现,以及如何利用RSA算法实现数字签名的技术,虽然RSA算法是一种安全技术,但是RSA算法的安全性只是一种计算安全性,绝不是无条件的安全性,这是由它的理论基础决定的,虽然,基于RSA算法的数字签名也存在不足,但随着各种技术的发展,数字签名的应用会越来越成熟。

参考文献:

[1] 科学网: 数字签名算法分析与Hash签名[DB/OL].http://bbs.sciencenet.cn/thread-25222-1-1.html.

[2] 陈晋大,郑纪蛟.用数字签名来保护网络通信安全[J].计算机应用研究,2000,17(9):43-44.

[3] 刘传领,范建华.RSA 非对称加密算法在数字签名中的应用研究[J].通信技术,2009(3):192-193.

[4] 胡丹.基于数字签名的网络通信系统的设计与实现[D].贵州大学,2008.

[5] 曲蕴慧,白新国.浅谈数字签名技术的原理及应用[J].福建电脑,2010(5): 66-66.

[6] 豆丁网.第7章_数字签名技术应用[DB/OL].http://www.docin.com/p-551683002.html.

[7] 李程.数字签名技术综述[J].电脑知识与技术:学术交流,2009,5(4):2559-2561.

[8] 石志坚,谭全权,段海龙.RSA 算法实现数字签名的研究与应用[J].微型电脑应用,2008,24(6):50-51.

[9] 陈月荣.数字签名技术在电子商务中的应用[D].淮北:淮北师范大学,2011.

猜你喜欢
数字签名
基于正交拉丁方理论的数字签名分组批量验证
交通运输行业数字签名系统的设计与实现分析
浅析计算机安全防护中数字签名技术的应用
数字签名助力系统安全
基于数字签名的QR码水印认证系统
以数字签名为基础的档案文件安全性管理
数字签名简述
探讨网络安全中的数字签名技术应用效果
基于数字签名和HSM的数据库篡改检测机制
基于JAVA的数字签名设计与实现