基于RSA算法的存储加密方案研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于RSA算法的存储加密方案研究
摘要:针对网络通信中相互身份认证困难的问题,提出一种基于RSA算法的动态
双身份认证方案,比其他基于公钥体制的身份认证方案相比,具有安全性更高、
方便简洁、认证时间少等优点,并通过VC++实现了基于该方案的系统。

关键词:密码体制;RSA算法;身份认证;公钥
随着通信与计算机网络技术的快速发展和公共信息系统商业性应用步伐的加快,人们对网络环境和网络信息资源的依赖程度的日亦加深,这时,网络信息安
全的重要性也就从各个方面(电子政务、电子商务、网络金融、网络媒体)体现
了出来而产生网络信息安全问题的根源可以从三个方面分析:自身缺陷,开放性
和人的因素。

首先,网络自身的安全缺陷主要体现在协议和业务的不安全上,而协议的不
安全主要原因是:一方面互联网起源的出忠是进行学术交流和信息的沟通,并非
商业目的而导致缺乏安全的总体构想和设计。

另一方面是协议本身的泄漏。

然而
业务上的不安全表现在错误信息或业务本身的不完善。

其次,网络的开放性体现在业务是基于公开的协议等原因。

最后,人的因素才是最主要的因素,表现为三方面:人为的无意失误,黑客攻击,管理不善。

随着这些问题不断的出现,网络信息安全的意义也就体现出来了:从大的方
面说,网络信息安全关系到国家主权的安全、社会的稳定、民族文化的继承和发
扬等。

从小的发面说,网络信息安全关系到公私财产和个人隐私的安全。

因此,
密码学在网络信息安全中发挥的重要性也体现了出来。

密码技术是实现网络信息
安全的核心技术,是保护数据最重要的工具之一。

1、RSA加密算法及身份认证
目前网络通信主要提供五种安全服务,即身份认证服务、访问控制服务、机
密性服务、完整性服务和抗否认性服务。

其中,身份认证作为安全应用系统的第
一道防线,是最重要的安全服务,所有其它的安全服务都依赖于该服务,它的失
败可能导致整个系统的失败。

网络应用系统中通信双方的身份认证问题,传统的做法是采用用户名加口令
来验证登录用户的身份,但是由于口令在使用过程中很容易被窃取、暴力攻击和
猜测,存在较大的安全隐患;另外这种认证方式只能完成单方面的身份认证,即只能解决服务器验证客户端身份的问题,无法解决客户端验证服务器身份的问题,
因此不能完全满足互联网业务应用的需要。

公钥加密算法的安全性主要是基于复
杂的数学难题。

目前比较流行的主要有两类:一类是基于大整数因子分解系统,以RSA为典型代表,它是目前被研究和应用得最为广泛的公钥算法,经过长年的攻
击考验,该算法已被普遍认为是目前最优秀的公钥方案之一。

2、RSA工作原理如下:
(1)任意选取两个不同的大质数p和q,计算乘积r=p*q;
(2)任意选取一个大整数e,e与(p-1)*(q-1)互质,整数e用做加密密钥。

注意e的
选取是很容易的,例如所有大于p和q的质数都可用.;
(3)确定解密密钥d,由d*e=1 mod((p-1)*(q-1)),根据e,p和q可以容易地计算出d;
(4)公开整数r和e,但是不公开d;
(5)将明文P(假设P是一个小于r的整数)加密为密文C,计算方法为C=Pemod r;
(6)将密文C解密为明文P,计算方法为P=cd mod r;
然而,只根据r和e(不是p和q)要计算出d是不可能的,因此,任何人都可对明
文进行加密,但只有授权用户(知道d)才可对密文解密。

为了保证RSA的有效性,通常找两个非常的大质数p和q。

3、基于RSA双身份认证方案的设计
为了实现信息的网络化管理,系统采用结合SQL Server2000数据库的
解决方案,即将用户数字证书等有关信息存放在SQL Server数据库中。

Windows2000中包括一个完整的PKI系统,文献[3]给出了具体的设计及部署的过程。

3.1方案体系结构
系统采用B/S/D(Browser/Server)三层体系结构,即表示层(Browser)、功能层(Web Service)和数据服务层(DataBase Service);通过访问数据库。

对数据库的访问在Web服务器端完成,客户端通过浏览器访问Web服务器并运
行其程序。

3.2方案的实现过程
3.2.1建立数字证书
选取两个大素数p和q,并且两数的长度相等,以获取最大程度的安全性。

计算两数的乘积n=p*q;随机选取加密密钥d,为满足ed=1 mod(p-1)(q-1),则-
1d=emod((p-1)(q-1)),d和n也互素;e是公钥,d是私钥,n是公开的。

两个素数
p和q不再需要,可以被舍弃,但决不能泄露。

假设生成了用户A的密钥对(eA,dA)和用户B的密钥对(eB,dB)。

用户将私钥d秘密保存,公钥e交给一个管理仲裁机构认证中心,获得自己
的数字证书,然后将数字证书保存在自己的机器上,同时认证中心将合法用户的
数字证书保存在数据库中,以便用户查询。

用户当与网络上某个用户通信需要进
行身份认证时,将自己的数字证书发送给通信的对方。

对方收到数字证书后,首先
通过认证中心验证其合法性。

如果是合法的,就可以从证书中获得需要的用户公钥,然后利用该公钥验证对方的身份;如果不合法,就可以终止通信。

3.2.2进行身份认证
第一步:用户A对用户B的认证
第二步:用户B对用户A的认证
用户A用户B
发送用户A身份ID产生随机数RAB
分离B加密后的消息分组明文
A对B身份验证A用B公钥加密
A用私钥解密签名
B加密后消息签名组合A对B身份验证
/B用私钥解密得RB分离A身份标识符/ID和随机数A
拒绝N拒绝访问/R= R访问BB/IDIDA=ANNYY问
A身份被确认B身份确认,并加密随机数
3.3方案的实验
3.3.1运行环境:硬件与网络环境:服务器能运行Windows XP、
WindowsNT4.0+Service Pack6及以上操作系统,建议使用586或以上的计算机。

系统软件:操作系统Windows 2000、XP及以上版本,SQL Server2000。

运行环境:Microsoft Visual C++6.0,浏览器使用IE5.5及以上版本。

3.3.2代码实现:
在认证过程使用的加密和解密算法相同,已利用VisualC++6.0实现,另外签名和验证的算法也和加密算法相同,只是每次利用的秘钥不同,这也是利用RSA算法进行认证的优势。

4、结论
RSA算法自公布以来经过20多年的发展和考验,除了其速度稍慢之外至今尚未找到其它的缺陷,因此RSA算法的应用越来越广泛。

本文设计的是一种基于RSA,并通过VC++实现了基于该方案的系统,有效解决了身份认证困难复杂的问题,对具有该加密的身份认证系统类需求的应用有一定的实用价值。

参考文献:
[1]郭拯危,缪亮.一种改进的RSA算法的研究与实现.河南大学学报,2006,36(1):98~99
[2]王建兵.PKI数字证书在WEB系统中的安全应用.信息技术,2005,(1):40~44
[3]高蕾,郑建德.基于PKI的高校安全教务管理研究.厦门大学学报,2006,5
月:305~307
[4]Matrix Security./hack/Other/200607/41402.html.2004[5]吕丽平.一种组合加密算法的设计与实现.青岛科技大学硕士论文,2005。

相关文档
最新文档