基于RSA的加密技术在网站中的应用
2016-07-23薛忠明施志宏
薛忠明,王 斌,吴 杰,杨 瑾,施志宏
(1.常州市金坛区广播电视台,江苏 常州 213200;2.扬州大学信息工程学院,江苏 扬州 225009)
基于RSA的加密技术在网站中的应用
薛忠明1,王斌2,吴杰2,杨瑾2,施志宏2
(1.常州市金坛区广播电视台,江苏 常州 213200;2.扬州大学信息工程学院,江苏 扬州 225009)
摘要:设计使用RSA、MD5等加密算法,结合动态加密技术,通过公钥加、解密和数字签名认证,对网络中传输的重要信息数据加密和数字签名,保障了数据在网站客户认证系统中传输的可靠性。
关键词:公钥加密;哈希函数;数字签名
目前多数大型企业WEB应用在用户登录时或敏感数据,一般都会采用HTTPS加密传输的方式来进行,但是这样做从成本和性能的角度来说,并不是最优的。服务器大量CPU花费到对数据的加密解密以及证书认证,传输,SSL握手等方面,对于千万用户级别的应用这些损失是难以忽略的。
1密码系统
1.1非对称密码体制
非对称密码体制也被称为公钥密码体制,公钥密码体制中,加、解密相对的独立,加密密钥(公钥)向大众公开,而解密密钥(私钥)只有解密者拥有,非法用户根据公开的公钥无法计算出解密密钥。公钥密码体制的基础是数论,安全性主要取决于构造公钥算法所依赖的数学问题,一般要求加密函数具有单向性,即求逆是非常的困难。
1.2哈希函数
Md5算法(文献[1]介绍)的名称是message digest algorithm 5(信息摘要算法第5版),麻省理工计算机实验室和RSA安全数据公司的罗纳德·李维斯特(Ronald L.Rivest)于90年代开发。Md5的主要用途是对一段信息(message)计算生成信息摘要(message-digest),以防止信息被篡改。
1.3RSA公钥密码
RSA[2]公钥密码体制是一种基于数论的非对称加密算法,即是使用不同的加密密钥与解密密钥,是一种基于因子分解的模指数函数作为单向陷门函数的公钥体制算法。在公钥加密系统中,加、解密会使用不同的密钥,是相对独立的,加密密钥可以公开使用,而解密密钥只有解密者知道,未授权使用者根据公钥无法计算出解密密钥,称为公钥密码体制。
1.4数字签名认证
数字签名[3]是指用户使用自己的私钥对原始数据信息的哈希摘要值计算签名数据,接收方根据收到数据计算对应的哈希摘要值,并使用发送方的公钥验证数字签名针对给定的哈希摘要是否为合法的签名。数字签名的特点是它代表了传输信息的特征,如果信息改变,相应的数字签名值也将发生改变。
2基于RSA加密认证系统的设计
2.1RSA数字签名实现步骤
1) 发送方生成一对公钥和私钥,发送方使用哈希函数算法对原始消息进行计算,得到一个固定位长的数字串,称为消息摘要(MD),不同消息计算得到的消息摘要各异,但是同样的消息它的摘要值却是唯一的;
2) 发送方生成消息的摘要值,使用自己的私钥对其进行运算形成发送方的数字签名;
3) 发送方打包数字签名和原始消息,将数字签名和原始消息一起发送给接收方;
4) 接收方先分离出打包信息得到原始消息和数字签名,然后使用哈希函数算法计算原始消息的哈希摘要值,并用发送方的公钥验证数字签名针对该哈希摘要值是合法的。
2.2加密认证系统流程
1) 首先客户和服务器分别生成一对RSA密钥[4-6],客户生成自己的公钥pkC和私钥skC,然后发送自己的公钥pkC给服务器,保留自己的私钥不泄露给服务器;
2) 服务器用自己的私钥sks对客户公钥pkC认证并且生成CA证书,证书中绑定用户公钥、身份信息、证书过期时间等,类似企业环境的CA体系[7]建立。如图1所示。
图1 密钥传输示意图
3) 客户选择一个随机数kc,用服务器的公钥加密kc,c1=Epks(kc),用自己的私钥skc生成对kc的数字签名σ1,发送c1和σ1给服务器;
4) 服务器使用自己的私钥从c1中解密出kc后,用客户的公钥验证σ1是对kc的合法签名。然后选择一个随机数ks,生成对称密钥k=H(kc,ks),用客户的公钥加密ks,c2=EpkC(ks),用自己的私钥sks生成对ks的数字签名σ2,发送c2和σ2给客户;
5) 客户使用自己的私钥从c2中解密出ks后,用服务器的公钥验证σ2是对ks的合法签名,生成对称密钥k=H(kc,ks);数字签名相互验证通过后,双方就可以使用对称密钥进行加密通信。设计流程如图2所示。
图2 系统流程示意图
2.3加密系统特点分析说明
本文的加密系统对用户数据进行了RSA数字签名和加密,通过双方的密钥实现了相互数字签名,保证了用户信息传输的完整性。不仅验证了客户端的身份,还对服务器身份进行验证,避免网络常见的“钓鱼”攻击,只有双方的数字签
名相互验证并且通过,才能进行下一步骤的数据传递操作。解决了发送方、接受方的身份认证问题,保障用户认证和数据安全,降低暴力穷举破解和重放攻击的风险,实现系统的安全性。系统使用数字签名验证后的对称密钥,效率显著提高。
3总结和展望
本文研究了RSA加密体制在网络信息传输认证中的应用,对RSA加密和数字签名进行了论述和分析。对网络用户认证系统提出了构思,进行系统规划,将RSA加密和签名应用于系统中,实现双方的身份认证,保障用户认证信息传输的安全完整性。
虽然本文对系统进行了整体规划和设计,但还有一些方面需要以后长期改进和探讨。比如系统模块的衔接和集合,RSA密钥存储和发放的安全性,哈希函数的碰撞攻击等。
参考文献
[1]William Stallings.密码编码学与网络安全:原理与实践[M].北京:电子工业出版社,2006:8-70.
[2]Arto Salomaa.公钥密码学[M].北京:国防工业出版社,1998:1-70.
[3]赵泽茂.数字签名理论[M].北京:科学出版社,2007:6-80.
[4]陈雄山.简述RSA公钥密码体制与设计实现[J].电脑知识与技术,2009,5(29):8157-8159.
[5]张丽媛.RSA密码算法的研究与实现[J].工程地质计算机应用,2005,23(3):20-51.
[6]Yi Wang,Maskell,Douglas L.Maskel.A Unified Architecture for a Public Key Cryptographic Coprocessor[J].Journal of Systems Architecture,2008,54(10):1004-1016.
[7]程振.基于AES和RSA加密算法的RFID安全机制[D].厦门:厦门大学,2009:50-97.
收稿日期:2015-12-31
作者简介:薛忠明(1973- ),男,江苏金坛人,助理工程师,研究方向:网络安全维护。
文章编号:1674- 4578(2016)02- 0071- 02
中图分类号:TN918.4;TP309.70
文献标识码:A
Application of Encryption Technology in Website Based on RSA
Xue Zhongming1, Wang Bin2, Wu Jie2, Yang Jin2, Shi Zhihong2
(1.ChangzhouJintanDistrictRadioandTelevisionStation,ChangzhouJiangshu213200,China;2.InformationEngineeringCollege,YangzhouUniversity,YangzhouJiangsu225009,China)
Abstract:The design in this paper uses the RSA, MD5 encryption algorithm, combines with the dynamic encryption technology and through the public key encryption, decryption and digital signature authentication to make encryption and digital signature for the important information of data transmitted in the network; it guarantees the reliability of data transmission in the website customer authentication system.
Key words:public key encryption; Hash function; digital signature