400
正文

非对称加密算法在身份认证中的应用研究

摘要:随着计算机网络以及智能终端应用的不断普及,特别是网络金融以及二维码的快速普及,信息安全问题越来越突出。本文研究了对称加密算法数据加密标准 DES,主要研究了公开密钥基础设施体系 PKI,这是确保信息在传输过程中安全性的第三方平台,它主要负责颁发带有 CA 中心数字签名的证书以及管理 RSA 算法中需要的公钥和私钥;研究了几种非对称加密算法并分析了它们的性能;重点研究了 CEE 中基于有限域上的椭圆曲线离散对数算法和RSA 非对称加密算法,提出了用私钥加密公钥解密方案来解决信息真伪鉴别即身份认证问题,编程实现了 RSA 的公钥生成以及信息的加密和解密, 主要实现了 RSA 密钥生成器模块、加密模块和解密三个模块, 设计了加解密图形界面,完成了文件路径加密和整个文件的加密。实验表明 RSA 算法的可行性和安全性是较高的。
关键词:身份认证;PKI 公钥体系;非对称加密;RSA 算法中图分类号:TP39 文献标志码:A
引言:随着信息时代的快速发展,网络给人们带来的信息安全问题却越来越严重,亦是当前社会急需解决的一个难题。近年来,国内外主要通过加密的方式来保证信息的安全。1977 年美国国家标准局正式公布了一种数据加密标准 DES(Data Encryption Standard)[1],这是第一个加密算法。但是随着 DES 的广泛应用,人们发现 DES 有个明显的的弱点,那就是它的密钥长度太短, 安全性受到质疑。后来,美国国家标准与技术研究院联合发布了高级加密标准AES(Advanced Encryption Standard)[2],这种算法的安全性和实用性无疑是优于 DES 算法的,但这两者都属于对称密码体制,在这个密码体制中加密和解密使用的密钥是同一个密钥,而且整个系统的保密性主要取决于密钥的保密性,一旦密钥被泄露,将会给整个系统带来威胁。数字加密技术不仅包括对称加密技术,还包括非对称加密技术[3]。1978 年,Rivest,Shamir 和 Adleman 提出了一个比较完善的公钥体制 RSA(Rivest,Shamir 和 Adleman 姓氏开头字母的组合)[4],它的密钥包括公钥和私钥,公钥是对外公开的,私钥由用户保存,这样就避免了密钥被泄露的可能性, 从而更好地保障了信息的安全。
一、非对称加密
(一)、PKI 公钥体系
(1)、PKI 的定义
       PKI (Public Key Infrastructure)即公开密钥基础设施体系,是一种网络基础服务设施, 它充分利用公钥密码学的理论基础,为密钥和证书建立了一个安全的网络环境,为各种网络应用提供了全面的安全服务[5]。RSA 密码机制包括一组密钥,即公钥和私钥,私钥由 CA 认证用户独自掌管的,该用户发布或传递用其私钥加密的信息,只能用其对应的公钥解密,进而证明信息的真正来源,即完成身份认证;公钥是公开的,需要在网上公开,所以公钥体制的密钥管理主要针对公钥进行管理[6]。
(2)、PKI 公钥体系结构
       PKI 主要用于公钥的管理和数字签名的服务,主要包括三个部分:CA(CertificationAuthority)认证中心、服务提供商和用户[7]。如图 1-1。




图 1-1 PKI 公钥体系结构图
(1) 认证中心(CA)。CA 中心是 PKI 的核心部分,主要负责证书的发放和管理,申请证书的用户合法性的验证以及密钥的生成和管理。CA 中心对密钥的管理具有高度的保密性,而且可以保证密钥在传送过程中的完整性,所以 CA 中心颁布的证书具有合法性和权威性。
(2)服务提供商。服务提供商持本机构的合法营业执照或合法公司的注册信息向 CA 中心提交申请,从而获得有 CA 数字签名的证书。该证书中包含服务提供商加密信息时所需要的密钥。
(3)用户。当用户需要验证某个服务提供商提供的信息是否真实时,可以从 CA 中心下载该服务提供商的证书,此时 CA 中心会先验证用户身份的合法性,如果审核通过,则 CA 向用户提供相应的证书,该证书中包含信息解密所需要的密钥。
(二)、非对称加密
       非对称加密算法需要两个密钥:公钥和私钥。非对称加密算法的公钥和私钥是成对产生的,   如果用公钥对信息加密,那么只能用对应的私钥解密,相反,如果用私钥对信息加密,那么只能用对应的公钥解密。目前,RSA 算法和 ECC 算法是使用最为广泛的两种非对称加密算法[8]。下面对这两种算法进行说明分析。
(1)、RSA 算法
RSA 算法是一种非对称加密算法,也是目前最有影响力的公钥加密算法。在 RSA 公开密钥密码体制中包含一组密钥对,即公钥和私钥,公钥对外公开,而私钥是私密的,由用户保管[9]。RSA 算法的安全性依赖于大数的因式分解,将两个大质数相乘很容易,但是要将其乘积因式分解则是非常困难的,所以用乘积来作为加密密钥,安全系数高。RSA 算法的安全性主要基于大整数分解的困难(两个素数的乘积),而且它数学原理简单、在工程应用中比较易于实现,但是它的单位安全强度相对较低。目前用国际上公认的对于RSA 算法最有效的攻击方法--一般数域筛(NFS) 方法去破译和攻击 RSA 算法,它的破译或求解难度是亚指数级[10]。在 RSA 中发送者有一个密钥(加密指数,公钥),接收者有一个密钥(解密指数,公钥)[11]。加密指数也称为公钥,用于加密;解密指数也称为私钥,用于解密。RSA 是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被 ISO 推荐为公钥数据加密标准[12]。身份认证技术是在计算机网络中确认操作者身份的过程而产生的有效解决方法[13]。
(2)、ECC 算法
       ECC(Error Correcting Code)算法的安全性主要基于有限域上的椭圆曲线离散对数问题, 在工程应用中比较难于实现,但它的单位安全强度相对较高。用国际上公认的对于 ECC 算法最有效的攻击方法--Pollard rho 方法去破译和攻击 ECC 算法,它的破译或求解难度基本上是指数级。ECC 算法目前仅仅只能完成密钥的生成与解析,如果想要获得 ECC 算法实现,需要调用硬件完成加密/解密,这过程相对而言是比较复杂的,所以本文主要对 RSA 算法进行研究。
       无论 RSA 算法还是 ECC 算法由于采用公钥加密,所以很难证明加密后得密文是来自真正的发送者,即很难证明信息的真伪,也就是很难验证信息发布者的真实身份,为了较好地解决这个问题,本文提出私钥加密公钥解密的思想。
二、改进后的RSA 算法
(1)、改进 RSA 密钥生成算法
      RSA 密钥是成对产生的,而且公钥和私钥是一对大素数(100 到 200 位十进制数或更大)的函数。通过公钥和密文来恢复明文,等价于分解两个大素数之积,难度非常大[14]。
RSA 密钥的生成算法如下:
1、随机产生两个大素数 p 和 q,且 p、q 互异;
2、计算 n=p*q,同时令φ(n)=(p-1)(q-1);
3、随机产生一个与φ(n)互质的整数 e,令 gcd(e,φ(n))=1,且满足 1 <e<φ(n);
4、计算 d≡e-1(modφ(n)),即 d*e≡1(modφ(n));
5、公钥 PU={e,n},私钥 PR={d,n}。
注:p 和 q 保密。gcd()函数的作用是返回两个或多个证书的最大公约数。≡是数论中表示同余的符号,它的左右两边必须同余,也就是两边的模运算结果相同。
(2)、改进 RSA 加密、解密算法
     首先将明文编码成整数分组 m,m 对应的十进制数小于 n,即整数分组 m 的位数小于 log2nbits,然后再对每个分组用私钥 PR={d,n}进行加密操作[15-16]。其中 c 为密文。即 c=E(m)≡md(mod n)。利用公钥 PU={e,n}对密文 c 进行解密,得到明文 m。 即 m=D(c)≡ce(mod n)
(3)、RSA 算法性能分析
      算法性能的好坏直接决定了整个系统的性能,所以在搭建一个系统之前选择一个好的算法是至关重要的。通过本系统多次试验测试,可以看出 RSA 算法具有一定的性能优势,如图 2-1 所示。通过近 10 次重复计算统计, task-clock 也就是运行的周期数,占用了 0.943,这说明大部分时间都是 CPU 的运行时间,同时通过对 perf - stat 研究分析知道,程序的运行时间是6.288 毫秒,这表明程序运行的速率是非常快的[12]。所以 RSA 算法在性能上具有一定的优势。
(4)、算法设计
     
本系统设计了一个 RSA 工具集,它主要包括三大模块密钥生成器模块、加密模块、解密模块。其中密钥生成器模块就扮演着 PKI 公钥体系中 CA 认证中心的角色,管理着密钥对,当加密文本或文件的时候,就向 CA 中心申请经过 CA 中心数字签名的证书,CA 中心在验证申请者身份的真实合法性后,向其颁发证书,证书中包含着加密所需的私钥;当解密文本或文件的时候,就向 CA 中心申请访问证书,这时需要向 CA 中心提供要访问的对象以及自身的相关信息,CA 中心在验证其提供的信息的真实合法性后,向其颁发证书,证书中包含着解密所需的公钥。加密模块所扮演的就是 PKI 公钥体系中的服务提供商角色,必要的时候向 CA 中心申请证书,获取私钥。解密模块所扮演的就是 PKI 公钥体系中的用户角色,必要的时候向 CA 中心申请访问证书, 获取公钥。
(1)密钥生成器模块
 密钥生成器主要负责生成一组密钥,即公钥和私钥,然后将这两个密钥分别保存到相应的文件夹,以备后续的加密、解密使用。本系统的密钥长度和数据的显示形式都是可以选择的。首先,密钥的长度在 512 位到 4096 位,原则上密钥的长度越大,密钥就越难破解,它的安全系数就越高,但同时解密的复杂度就越高,所需的时间也越长,本系统中选择了 512 位密钥长度。其次,在数据的显示形式上,我们可以选择二进制,也可以选择十进制。当我们选择好密钥长度和显示形式后,选中生成密钥,这时系统会自动生成 P,Q,n,E,D 参数的值,而且系统会生成一个后缀名为 PublicKey 的公钥文件和一个后缀名为 PrivateKey 的私钥文件,这时我们将公钥文件、私钥文件分别保存到指定路径。密钥生成器模块如图 2-1 所示。





图 2-1 密钥生成器模块
(2)加密模块
加密模块主要有加密文本和加密文件,如果是加密文本就直接在文本框中输入要加密的信息,然后选择密钥路径,这里是用私钥进行加密,所以只要选中私钥所在文件的路径即可,最后点击加密按钮,则实现了对文本信息的加密。如果是加密文件,则需要分别选择加密的密钥路径、明文路径以及密文的存放路径,然后选中加密按钮,实现了对文件的加密。加密模块如图 2-2所示。
(3)解密模块
      解密模块主要有解密文本和解密文件,如果是解密文本就直接在文本框中输入要密文文本,   然后选择密钥路径,这里是用公钥进行解密,所以只要选中公钥所在文件的路径即可,最后点击解密按钮,则实现了对文本信息的解密。如果是解密文件,则需要分别选择解密的密钥路径、   密文路径以及明文的存放路径,然后选中解密按钮,实现对文件的解密。解密模块如图 2-2 所示。







图 2-2 加密、解密模块
三、编程与实验
       系统以微软公司的 Microsoft Visual Studio 2010 作为开发的 IDE 工具,利用 C#语言进行编程。系统主要包括三个模块,分别为密钥生成器模块、加密模块和解密模块。
(1)、密钥生成器模块实验
      系统通过密钥生成器生成密钥对,即公钥和私钥,加入我们选择密钥长度为 512 位,显示方式为十进制,然后点击“生成密钥”,得到 P、Q、n、E、D 所有参数的值,如图 3-1 所示, 密钥生成后会弹出提示框显示密钥生成完毕以及生成密钥所耗的时长,如图 3-2 所示。最后, 将私钥、公钥分别保存到相应的文件夹以备后面的加密、解密使用。







图 3-1 密钥生成器模块                            图 3-2 密钥生成成功图
(2)、加密模块实验
      这里以加密文本为例,比如对非对称加密算法的研究进行加密,首先,点击 RSA 工具集中的加密文本按钮,如图 3-3 所示。点进去后需要选择加密密钥的路径,也就是私钥所在的路径,然后在左边文本框中输入要加密的文本信息,即非对称加密算法的研究,如图 3-4 所示,点击加密,我们会发现右边的模块出现了信息加密后的密文,而且会弹出提示框显示是否加密成功以及加密所耗的时长,如图 3-5 所示。最后我们需要将密文保存在相应的文档里,以备后面解密文本需要。
(3)、解密模块实验
      这里以解密文本为例,比如有一串密文需要解密,首先,点击 RSA 工具集中的解密文本按钮,如图 3-3 所示,点进去后需要选择解密密钥的路径,也就是公钥所在的路径,然后在左边文本框中粘贴要密文文本,如图 3-6 所示,点击解密发现右边的模块出现了解密后的文本,而且会弹出提示框显示是否解密成功以及解密所耗的时长,如图 3-7 所示。最后通过将解密后的文本与明文作对比,可以检验系统的准确性。




图 3-3 RSA 工具集
 






图3-4 文本加密图                  图3-5 文本加密完成图









图 3-6 文本解密图





图 3-7 文本解密完成图
四、结束语
       本文主要研究了非对称加密算法——RSA 算法,它是目前最有影响力的而且应用最广泛的公钥加密算法。RSA 算法中主要包含一组密钥,即公钥和私钥,用来对信息进行加密和解密,本文主要利用私钥进行加密,公钥进行解密,由于密钥是整个方案的核心,所以提出了用 PKI 公钥体系来自动生成和管理密钥,对于密钥的分发都需要经过 CA 中心的审核,审核通过后才会通过一定的安全途径分发密钥,这大大增加了密钥的安全性。采用公钥进行解密无疑降低了信息的保密程度,如何解决这个问题是本文今后继续研究的重点,例如是否可以采用双重加密方法加以解决,即利用对称加密算法先加密保证信息的保密程度,在利用非对称加密算法加密实现身份认证等等。
参考文献:
1、RIVEST R,SHAMIR A,ALDEMAN L.A method for obtaining digital signatures and public-key cryptosystems[J].Communications of the ACM,1978,21( 2):120-126.
2、张雪芳.光纤宽带接入技术[M],北京邮电大学出版社,2016.
3、王丽娜,郭 迟,李鹏. 信息隐藏技术实验记教程[M].武汉大学出版社,2004.
4、Shogo Kimura&Kazuki Yoneyama. Security proof of identity-based signature under RSA assumption, reconsidered[J]. IEEE Conference Publications, 2016(21):86-90.
5、杨晓峰,张颖,邓智敏. 基于 PKI 的可信二维码技术研究[J].科技创新与应用,2015,33(6):89-90.
6、张花,崔慧娟.一种 RSA 算法之数字签名系统的快速实现方案[J],计算机工程,2006,33(3):156-158.
7、徐少波. 一种基于 PKI 数字证书的对表单敏感信息非对称加密解决方案[J]. 计算机应用与软件, 2010,27(10):291-292+295.
8、陈君. 二维码技术在移动终端的安全应用研究[D]. 广东工业大学,2015.
9、陈静雯,夏诗文,林勇. RSA 加密二维码在防伪溯源系统中的应用[J].宁波工程学院学,2016,28(4):31-36.
10、Habib Allah Yajam&Younes Karimi Ahmadabadi. Deniable Encryption based on Standard RSA withOAEP[J].IEEE Conference Publications, 2016,10:84-88.
11、、邹红霞,许鹏文,李勇奇 译.密码学概论[M],北京:人民邮电出版社,2004.
12、韩立东,王小云,许云午.RSA 密码系统小 CRT 解密指数的攻击分析[J].信息科学,2011,41(2):173-180.
13、戚文静,张素等,几种身份证技术的比较及发展方向[J],山东建筑大学学报,2004,(2):84-87.
14、梦楠. 二维码安全问题分析及应对策略[J]. 现代电信科技,2014,(10):47-49+53.
15、李云飞,柳青.一种有效的 RSA 算法改进方案[J],计算机应用,2010,30(9):2393-2397.
16、杨丽娟. RSA 算法在 QR 码防伪技术中的应用[J]. 北华航天工业学院学报,2014,24(2):24-27.
热门期刊
0851-88507641
联系地址 贵州省遵义市红花岗区海尔大道34号 周一至周五 09:00-17:30
友情链接:

网站地图

版权所有 Copyright © 2018 轩睿期刊网期刊网 www.xrqkw.com. All Rights Reserved ,湘ICP备00000000号-2 如您在使用的过程中任何产品或技术性问题请反馈
QQ交谈 网页在线咨询

编辑
顾问

联系客服

企业QQ,一对一编辑辅导发稿
QQ交谈 网页在线咨询

服务时间

周一至周五
08:30-17:30

服务
热线

18685220838
24小时服务热线:0851-88507641

关注
我们

返回
顶部