密钥安全存储

2024-10-18

密钥安全存储(共4篇)

密钥安全存储 篇1

0 引言

云存储是在云计算(Cloud Computing)概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,它主要通过集群应用、网络技术或分布式文件系统等功能,将网络中大量不同类型的存储设备获得的数据,通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统[1,2,3]。随着云计算的广泛应用,人们对云计算数据存储的安全性要求越来越高,因此,研究云计算安全问题具有重要意义,已经成为相关学者研究的重点课题,受到了越来越广泛的关注[4,5]。

目前,有关云计算数据安全存储的研究有很多,相关研究也取得了一定的成果。文献[6]提出基于加密机制的云计算数据可靠存储方法,主要通过数字证书向云计算系统进行身份验证,采用对称密钥对云计算数据进行加密再发送至云计算系统中保存,如果客户需得到数据,就要把云计算环境下的密文传输至本地,由客户独立进行解密;但该方法需要很强的计算能力,并且加密密钥需妥善保管,若丢失则不能获取存储的数据。文献[7]提出基于第三方核查的云计算数据安全存储方法,将同态认证的公钥技术与随机masking技术结合在一起,通过零知识证明协议与语义匹配方法实现云计算数据的安全存储。但该方法耗费资源较多,成本相对较高;文献[8]提出的云计算数据安全存储策略,主要通过扩展分离密钥对保存在云环境中的加密数据操作过程进行密钥管理,将对称密钥存储在云环境中,供用户查找;但该方法实现过程复杂,不适用于实际应用中。文献[9]提出基于可信平台的云计算数据安全存储策略,该策略依据可信平台模块,对对称密钥与非对称密钥分别进行管理,实现云计算数据的安全存储;但该方法存在所需时间较长,效率低的问题。文献[10]提出一种安全可扩展的云计算数据安全存储策略,通过重加密的技术对数据进行安全存储,该方法重加密密钥与解密密钥所涉及的数据量很大,对其的管理非常困难,有安全隐患。

1 云计算数据安全存储策略设计

1.1 密钥参数的获取

采用帐篷映射和猫映射共同获取密钥的方法,对传统方法进行改进,则需分别求出帐篷映射的密钥参数和猫映射的密钥参数。

1.1.1 基于帐篷映射的密钥参数获取

假设xn为原始的数据,且在满足一定条件的情况下,获得帐篷映射的表达式为:

该映射主要利用可变参数a获取相应的斜帐篷映射,a的取值直接影响了帐篷顶点的位置,当a=0.5时,顶点在中间,这时为标准的帐篷映射。进一步对帐篷映射进行扩展,获取一类分段线性映射,表达式为:

式中:xn用于描述第n次迭代得到的结果;xn+1用于描述第n+1次迭代得到的结果;p是可变参数。

帐篷映射很大的一个优势为其分布函数均匀,具有伸长性和折叠性。伸长性会使相邻点指数分离;折叠性会使帐篷映射保持生成序列的有界性,同时保证映射不可逆。若将其由实数域转换成整数域进行运算,再进行帐篷映射,则将大大减少映射的复杂度,并且能够保持帐篷映射的伸长性和折叠性,增加掩盖原始信息的有效性,提高了数据存储的安全性。

对式(2)描述的分段线性映射,两边同时和a相乘,定义p=1 /4,Zn=axn,则有Zn=axn+1,将其代入式(2),获得其帐篷映射的密钥,表达式为:

通过上述可知,转换后的帐篷映射控制参数仅与可变参数a有关,则a与Zn即为帐篷映射所得到的密钥参数。并且,为了增强帐篷映射自身的雪崩效应,通常使其先迭代一定次数,再采用生成的值,可增加掩盖原始信息的有效性。

1.1.2 基于猫映射的密钥参数获取

假设,xn,yn表示第n次迭代处理的迭代值,则猫映射通常可描述成:

为了便于分析,将其描述成以下的矩阵形式:

式中:xn+1,yn+1用于描述第n+1次的迭代值;表示变换系数矩阵,同时需满足系数矩阵行列式为1的条件,所以猫映射为二维面积的可逆映射,同时无吸引子。猫映射主要由拉伸和折叠两个过程构成,通过与矩阵C相乘,可使x,y增大,该过程可看作是拉伸;取模使x,y又返回至单位矩阵中,该过程可看作是折叠。由此可知,猫映射为混沌映射,也是一一映射,单位矩阵中的所有点经转换处理被惟一地转换至矩阵中的另一点,保证了数据存储的安全性。

为了减少计算量,增强安全性能,对猫映射进行整型数值化处理,则整型数值化后的方程可描述成:

式中,w用于描述云计算字长,因为猫映射的拉伸和折叠使xk,yk∈[0,2w-1],说明猫映射迭代值恰好处于云计算字长所能描述的整数区间中(除去2w断点),因此,式(6)是在云计算字长所能描述的整数区间中的迭代运算,适用于云计算存储。

针对式(6)获取的所有整数迭代解,仅在x,y同时为零的情况下可获取一个稳定的零解,为了避免上述情况的发生,达到改进整型猫映射的状态,可通过检测下一次输入值是否同时为零进行优化处理,若为零,则将输入值用其他值代替。

通过以上分析过程可以看出,式(6)中存在2个初始条件,即通过猫映射得到的密钥,该方程比一维方程更加复杂,从而有效地保证了云计算数据存储的安全性,则经改进的密钥参数可描述成xn,yn,Zn,a。

1.2 基于改进密钥的数据安全存储的实现

将改进的密钥参数应用于云计算数据安全存储中,复杂度适中,而且计算效率高,安全性得到了很大的保证,详细的流程图如图1所示。

基于改进密钥的云计算数据安全存储过程如下:

(1)初始化密钥:将帐篷映射和猫映射的初始值x0,y0,Z0和可变控制参数a看作是初始密钥;

(2)初始化迭代:针对已经选择好的初始密钥依次进行10次迭代处理,有效地掩盖原始值,增加帐篷映射的雪崩效应,增强数据存储的安全性;

(3)迭代结果:得到经初始迭代后的密钥,首先进行帐篷映射处理,将Z0看作是初始参数代入式(3)中迭代一次获取Z0′,再将Z0′/a和y0的乘积作为Henon映射的初始参数代入式(6)中迭代一次获取xn和yn,二者的乘积就是最终的迭代结果,用P进行描述,表达式为:

(4)取余运算:对式(7)得到结果P的第2,4,6有效位进行对256的取余运算,得到密钥P′,则表达如下:

(5)异或运算:将进行云计算数据存储的明文字节M和密钥字节P′进行异或运算,得到密文字节S,表达式为:

(6)终止判断:通过式(9)得到的密文字节,可验证云计算数据明文字节序列M是否均加密完成,若完成则退出,实现云计算数据的安全存储;反之,转入步骤(3),继续进行安全存储操作,直到完成云计算数据明文序列的均匀加密处理,实现对云计算数据的安全存储操作。

2 实验结果分析

为了验证本文提出的基于改进密钥的云计算数据安全存储策略的有效性,需要进行相关的实验分析。首先建立云计算环境,将n台计算机看作是存储节点,所有存储节点的配置均一致,详细操作环境如下:内存为4 GB,硬盘为250 GB,操作系统选择Windows XP,通过Cygwin对云计算环境进行仿真,同时建立Hadoop开源平台。实验将Henon映射方法作为对比进行分析。

本文将存储耗时作为指标对本文改进方法与传统的Henon映射存储方法进行对比实验。在云计算数据大小一定的情况下,分别采用本文方法和Henon映射对云计算数据进行存储,得到的效率比较结果如表1所示。

分析表1可知,采用本文方法对云计算数据进行存储,虽然随着文件的逐渐增加,所需的时间也逐渐增加,但是和Henon映射方法相比,本文方法所需的时间还是较低的,说明采用本文方法相比Henon映射方法存储效率更高。

数据存储安全性是衡量本文方法有效性的关键指标,表2描述了本文方法和Henon映射方法为了达到同一安全水平所需的密钥长度,表2中同一行代表同一安全水平。分析表2可以看出,1 135 b的Henon映射法,其安全水平和203 b的本文方法相当,也就是说203 b的本文方法的安全性已经远远高于203 b的Henon映射方法的安全性了,而且随着密钥长度的逐渐增加,两种方法安全性的差异也越来越大,说明本文方法的安全性较高。

b

为了更加直观地对两种方法的安全性进行比较,对采用的本文方法和Henon映射方法的安全程度进行比较分析,得到的结果如图2所示。

分析图2可以看出,在相同的条件下,采用本文方法的安全性能为95%,Henon映射方法的安全程度为59%,与和Henon方法相比,采用本文方法对云计算数据进行存储的安全程度高出了36%,进一步验证了本文方法的高安全性。

为了验证采用本文方法和Henon映射法后对原云计算系统产生的影响,将经两种方法处理后的云计算系统服务端性能进行比较,得到的结果如表3所示。

分析表3可以看出,采用改进方法其服务器的占用率为3.81%(平均值),下载速度为13.05 Mb/s(平均值);传统的Henon映射法服务器的占用率为10.55%(平均值),下载速度为4.25 Mb/s(平均值);改进方法相比传统的Henon映射法,服务器占用率减少了9.24%(平均值),下载速度增加了6.3 Mb/s(平均值)。在加入本文方法密钥存储服务后,云计算系统的性能明显更高,说明本文方法对云计算系统产生的影响不大,CPU占用率与下载速度均较优,进一步验证了本文方法的有效性。

3 结论

针对传统方法存在的问题,提出基于改进密钥的云计算数据安全存储策略,给出帐篷映射和猫映射的一般描述,将其由实数域转换成整数域进行整数运算,通过帐篷映射和猫映射获取改进密钥参数并进行初始化处理,得到经初始迭代后的密钥,再进行异或运算,得到密文字节。通过验证云计算数据明文字节是否均加密完成,判断是否结束迭代,实现对云计算数据的安全存储。实验结果表明,所提策略不仅安全存储性能较高,而且所需时间少,不增加云计算系统的负担。

摘要:由于云计算环境下的数据量较大,存在的数据特征具有动态变化特性。传统的安全存储方法通过低维映射得到的密钥空间相对较小、安全性不高、很容易被破解,导致存储的安全性能差。提出基于改进密钥的云计算数据安全存储策略,给出帐篷映射和猫映射的一般描述,将其由实数域转换成整数域进行整数运算。引入帐篷映射和猫映射获取改进密钥参数,得到经初始迭代后的密钥,对得到的结果进行取余运算和异或运算,得到密文字节并验证是否均加密完成,判断是否结束迭代,实现对云计算数据的安全存储。实验结果表明,所提策略不仅安全存储性能较高,而且所需时间少,不增加云计算系统的负担。

关键词:改进密钥,云计算数据,安全存储,帐篷映射,猫映射

参考文献

[1]凃云杰,白杨.基于Hadoop和双密钥的云计算数据安全存储策略设计[J].计算机测量与控制,2014,22(8):2629-2631.

[2]周明快.基于CP-ABE的云计算改进属性加密安全访问控制策略设计[J].计算机测量与控制,2015,23(1):297-299.

[3]王志中,周城,牟宇飞.基于分离密钥的云存储加密解决方案[J].电信科学,2013,29(1):51-56.

[4]晁巍.适于大数据存储的容错方案和安全方案设计及其在云计算系统中的应用[D].昆明:云南大学,2014.

[5]刘占斌,刘虹,火一莽.云计算中基于密文策略属性基加密的数据访问控制协议[J].信息网络安全,2014(7):57-60.

[6]赵莉,王魁祎.基于加密机制的云计算数据可靠存储方案研究[J].信阳师范学院学报(自然科学版),2014(4):593-596.

[7]毛黎华.基于云计算用户数据传输与存储的安全策略研究[J].电子技术与软件工程,2014(13):234.

[8]张少敏,李晓强,王保义.基于Hadoop的智能电网数据安全存储设计[J].电力系统保护与控制,2013(14):136-140.

[9]陈运财.云计算中电子支付密钥的数据频度隐匿算法[J].科技通报,2015(6):61-63.

[10]许成鹏,朱志祥.一种基于云计算平台的数据库加密保护系统[J].电子设计工程,2015(19):97-100.

密钥安全存储 篇2

关键词:实时动态密钥,加密存储网,方案设计

1. 前言

随着计算机技术和网络技术的不断发展, 人们对信息和网络的依存度越来越高, 网络信息安全的问题也逐渐成为人们为之头疼的事情。网络数据的安全存储是保证信息机密性的重要应用, 网络安全主要是针对网络物理信道和传输协议的安全, 除此之外还有网络上的各种信息存储资源等。目前, 网络上所容纳的信息资源都具有拍字节, 不同的数据可以来自不同的数据源, 例如有来自半结构数据、无结构数据等。这些结构数据可以包含各种机密记录, 因此, 为了保存这些数据, 就必须拥有一个足够大容量的存储空间, 同时也需要一个良好的安全保密措施。为了保密这些数据的安全, 加密的方法就得到了引入和发展。

加密算法主要存在于标准实现, 例如DES、3DES, 还有一些网络安全协议和光纤通道的安全协议等。在进行加密处理的时候, 密钥的执行需要由某种安全加密策略生成加密器来确定, 在这一过程中, 为了维护加密操作的整个安全性, 就必须完全控制密钥生成的处理, 并放置到安全的地方, 从而形成有效的密钥数据管理措施。数据加密通过对明文进行复杂的加密操作, 以达到无法发现明文和密文之间、密文和密钥之间的内在关系。另一方面, DBMS要完成对数据库文件的管理和使用, 具有能够识别部分数据的条件。据此, 只能对数据库中的数据进行部分加密。其中, 索引字段是不能加密的, 因为数据库文件一般都会建立一些索引, 以方便查询, 它们的建立和应用必须是明文状态下的, 否则的话将失去索引的作用。其次, 关系运算的比较字段是不能加密的, DBMS要组织和完成关系运算, 参加并、差、积、商、投影、选择和连接等操作的数据一般都要经过条件筛选, 这种条件选择项必须是明文, 否则DBMS将无法进行比较筛选。

2. 存储网的加密

在整个的数据存储中, 一些静态的数据加密可以应用到数据中心的不同层次和级别上, 例如, 通过主机的之行来加密, 通过光纤信道的交换加密, 以及对应用软件的加密等实现数据的安全性等。

(1) 主机执行加密。在这过程中, 主机加密被附加在主机上的加密卡或者磁盘中, 由HBA的芯片在执行, 数据在离开主机前加密, 这样主机与磁盘阵列的信道就可能会是安全的, HBA加密是建立在HBA芯片基础上的硬件加密, 因此不会冲击硬件CPU的性能。

(2) 光纤信道的交换加密。光纤信道的交换加密是发生在阵列中的, 然后再由路由传到磁盘阵列上, 其最大的优点就是可以节约应用于加密的成本消耗。

(3) 应用软件的加密。应用软件的加密是被嵌入到了某个硬件中, 这种硬件通常从交换阵列到路由再到磁盘的数据传输通道。

在大规模的、高性能的存储系统中, 要求实现可扩展和高性能的存储安全技术, 是推动加密存储技术发展的动力。存储网的加密存储安全主要包括认证服务、数据加密存储以及安全管理等。其中, 访问控制服务是实现用户进行身份认证的过程, 其功能主要有:用户可以对经管员或文件所有者授权的文件进行操作;管理者也可对一些必要的管理进行操作, 例如一些用户管理、数据的备份等, 相反, 对于那些不能访问的用户加密的数据则不能进行操作。

3. 实时动态密钥的加密存储及其方案

3.1 加密存储的内容

加密存储是对指定的目录和文件所进行的加密, 在加密之后由进行保存的过程。它从整体上实现了敏感数据的存储和传输后的机密保护。加密存储的一个特点就是进行必要的安全维护, 比如, 采用用户帐户注册和注销, 对用户进行授权, 特殊情况对用户的权利进行收回等。安全日志的审计是用户记录系统与安全相关的活动事件, 通过密钥存储, 为系统管理员对必要的审计信息进行监督和管理。

3.2 双层密钥的获取结构

这种结构所获取的多是在帐户口令和主密钥之间存在的两级关系的映衬, 前一级是利用各帐户口令, 进行秘密信息获取的逻辑隐射;后一级是采用主密获取密钥的隐射。在这种处理方法中, 磁盘的主密钥和用户的口令是相互分离的, 磁盘的密钥所容纳的口令不会收到任何信息的影响, 为整个帐户的进入、密钥的恢复提供了基础的要素保障。

3.3 实时加密存储动态的密钥管理

一般来说, 要想进入到加密存储实时密钥管理的正常状态, 用户在登陆后, 第一步就是要获得磁盘的主密钥, 其方案系统的整个结构包括注册后的帐号, 注册的口令, 还有时间序数等。把这些结构组合起来, 就构成了一个逻辑的开关函数。整个函数所生成的磁盘密钥种子进入磁盘, 然后再次预设加密的模块检测, 防止用户在进行身份认证的时候发生错误。

3.4 实时动态的密钥计算设计方法。

实时动态密钥是指在每次的区域里进行写操作时, 如果时间允许, 再进行一次密钥, 在进行读操作时, 保持不变, 用读加密的操作来进行正常的运转, 然后取得一次加密的效果。整个磁盘的主密钥是由系统管理员来设置一个参数, 获得一组模块的素数之和, 没一个身份所对应的口令, 其时间序数可选择的ID, 为登陆者的身份, 而PW则是登陆的口令, 在通过加密密钥的验证处理之后, 得到的相应的密文, 会在磁盘上注入, 等到密钥建立以后, 用户可向系统管理员申请注册帐户和口令。登陆的用户获取了密钥之后, 再通过密钥验证数据, 就可判断出是否验证错误。

3.5 方案分析

首先, 对加密存储进行安全性的分析。安全性是针对外部攻击者和内部攻击者而提出来的。外部攻击是不是指没有帐户的用户攻击, 其主要攻击方还是扫描磁盘, 进而从磁盘中获得主密钥。

其次, 内部攻击者, 作为有账户的攻击者, 其主要攻击方法是通过口令攻击和假冒帐号攻击来实现的。在这种攻击中, 其必须获得磁盘的主密钥, 必须使用帐户和口令, 通过口令的检测。另外, 在无法证明攻击者能够借助自己的口令生成其他帐户口令的时候, 攻击者从口令获得的其他用户的口令概率不会高于猜测口令的概率。

从以上分析可以看出, 磁盘读取数据和写入数据的时间与调密码算法所花费的时间相比, 对整个加密系统来说, 都是一致的, 只是所需的额外的增加是在用户注册的设置逻辑口上的时间耗费。磁盘加密时所获得的磁盘主密钥是决定其他性能的关键因素。

4. 结束语

实时动态密钥的加密存储不仅对理论上的密码算法提出了要求, 而且还对实际应用上的获取和保存密钥提出了更多的要求。实时动态密钥加密存储是一项综合技术, 它具有强大的功能特效, 对整个网络的安全和信息安全有着非常重要的作用。

参考文献

[1]袁征, 温巧燕, 刁俊峰.基于水印和密码技术的数字版权保护模式[J].北京邮电大学学报, 2006, (05) .

[2]林琳, 罗安.基于网络安全的数据加密技术的研究[J].现代电子技术, 2004.

[3]张磊, 王丽娜, 王德军.一种网页防篡改的系统模型[J].武汉大学学报 (理学版) , 2009, (01) .

[4]林海元, 吕丽民.基于无损压缩算法的文件加密标记的实现[J].浙江工业大学学报, 2010, (04) .

[5]张蓉, 刘启茂.基于Lotus/Notes Domino的Web站点的设计与实现[J].计算机与数字工程, 2002, (06) .

安全密钥交换算法研究 篇3

两个网络通信用户在采用对称加密法实现保密通信时, 首先必须共享一个秘密密钥;为了防止攻击者破获, 这个密钥必须经常更新。这个在一次定长通话或交换定量数据时使用的密钥, 通常称为会话密钥。

会话密钥产生的两种形式是集中式生产和分散式生产。集中式生产, 是由指定的密钥产生中心 (如密钥分发中心KDC和证书分发中心CDC等) 集中生产密钥, 然后分发给系统内的用户, 其用户数量受到算法所能提供的密钥总数的限制, 所以也称有边界生产;分散式生产, 由使用者个人分散生产或由通信双方协商产生, 用户数量不受限制, 也称无边界生产。会话密钥一般采用分散式生产, 由用户在公开的信道上协商建立, 这个建立过程称为密钥交换。

2 D-H算法与中间人攻击

分散式密钥生产方式中最著名的是Diffie-Hellman密钥交换算法, 简称D-H算法。D-H算法是W.Diffie和M.Hellman于1976年提出的一个用于交换密钥的公钥密码算法, 已经在很多商业产品中得以应用。算法的目的是使得两个或两个以上用户能够在公开的信道上安全地交换数据, 得到一个共享的会话密钥, 用于实现对称加密通信, 并能有效阻止攻击者窃取该密钥。D-H算法实现过程如下:

1) A和B预先协商一个大素数p及p的本原根a;

2) A产生随机数x, 计算M=axmod p, 然后把M发送给B;

3) B产生随机数y, 计算N=aymod p, 然后把N发送给A;

4) A计算k=Nxmod p;

5) B计算k'=Mymod p。

因为k=Nxmod p= (aymod p) xmod p= (ay) xmod p= (ax) ymod p=Mymod p=k', 所以A和B得到了相同的密钥。而攻击者要从p, a, M, N计算k, 将需要解决求离散对数的问题, 这是个著名的陷门单向函数, 目前普遍认为无法通过穷举之外的方法求解。

D-H算法的主要缺陷是容易受到中间人攻击:

1) A发送公开值 (a, p, M) 给B, 攻击者C处于A和B的通信路径之间, 截获这些值并把自己产生的公开值发送给B;

2) B发送公开值 (N) 给A, C截获它然后把自己的公开值发送给A;

3) A和C计算出共享密钥k1, B和C计算出共享密钥k2;

4) A用密钥k1给B发送消息, 但实际上k1是A与C协商计算所得, C截获消息后可用k1解密, 同理C可用k2解密B发送给A的消息。C还可以篡改A、B之间的通信, 甚至假冒其中一方同另一方通信。

可引入认证、时间戳、随机标号等机制改进D-H算法, 有效抵抗中间人攻击。[1]

3 PGP体系实现密钥交换

PGP (Pretty Good Privacy) 是Phil Zimmermann于1991年发布的一个基于RSA公钥加密算法与IDEA对称加密算法的开源的邮件加密体系[2]。PGP创造性地把RSA公钥体系的方便和传统加密体系的高速结合起来, 成为最流行的公钥加密软件包。PGP对信息内容使用IDEA对称加密, 所以需要在收发双方之间预先实现密钥交换;而PGP的密钥交换是利用RSA算法的公钥加密实现的。传统PGP体系的一般使用过程如下:

发送方A:

1) 随机生成新的会话密钥k;基于k, 用IDEA算法加密邮件信息m, 得到m’;

2) 获取接收方的RSA公钥e;基于e, 用RSA算法加密k, 得到k’=Ee (k) ;

3) 将m’|k’一起发送给接收方。

接收方B:

1) 用本方RSA私钥d解密k’, 得到k=Dd (k’) ;

2) 用k解密邮件信息m’, 得到m。

在以上过程中, 会话密钥并非通过协商, 而只是由发送方随机生成;密钥共享则是通过公钥证书加密发送完成的, 其安全性非常高, 是基于RSA算法的破解难度的。但另一方面, 接收方只能保证其邮件内容无法被窃取, 但无法验证发送者的真实身份, 导致了接收方可能收到伪造的信息。

4 改进的密钥交换算法

发送方A:

1) 随机生成新的会话密钥k;基于k, 用IDEA算法加密邮件信息m, 得到m’;

2) 使用RSA算法, 用本方私钥da加密k, 再用接收方的公钥eb加密这个结果, 得到k’=Eeb (Eda (k) ) ;

3) 将m’|k’一起发送给接收方。

接收方B:

1) 用本方RSA私钥db解密k’, 再用发送方公钥ea解密这个结果, 得到k=Dea (Ddb (k’) ) ;

2) 用k解密邮件信息m’, 得到m。

以上方案与本文第3节所描述的方案的区别是:在发送方的第2步中, 要求其先用自己的私钥da加密k, 这就达到了数字签名的效果;因为接收方可以根据权威的公钥来源获取证书的身份标识, 从而通过验证签名确认发送者的真实身份。同时, k’是经过接收方的公钥加密所得, 只有正确的接收方才能基于其私钥实现解密, 因此可防止中间人的窃听与篡改。

以上方案在使用时, 发送方A的第2步的加密顺序不可倒换, 即不可先加密再签名, 如k’=Eda (Eeb (k) ) 。否则, k’被中间人C截取后, 他可以使用发送方公钥ea去除原签名得到Eeb (k) , 即使他无法获取真正的k, 但可以生成自己的签名k’’=Edc (Eeb (k) ) , 继续发送m’|k’’给B;此时B将受到欺骗, 认为m是C发出的。

改进的算法并不能解决所有的密钥交换的安全问题, 如接收者抵赖、信息重放及针对RSA算法的攻击等。必须综合使用各种安全策略, 并对信息交互流程进行合理优化, 才能尽可能地降低网络通信中所遇到的各种风险。

摘要:密钥交换是网络通信用户实现加密通信的基础。D-H算法是迄今在网络安全领域应用最为广泛的密钥交换算法, 但其安全性面临中间人攻击的危害。传统PGP体系利用RSA算法可实现基于公钥证书加密的密钥交换, 但无法验证发送者的真实身份。改进的密钥交换算法采用数字签名技术, 可实现通信双方的身份认证, 提高了密钥交换的安全性。

关键词:密钥交换,D-H算法,PGP,身份认证

参考文献

[1]张珂.一种改进的抗攻击密钥协商协议研究[J].郑州轻工业学院学报:自然科学版, 2011 (3) :53-57.

应用软件安全密钥的设计 篇4

1 明码密钥

人们早期使用的密钥好多是明码密钥, 特别是使用C/S架构的应用软件, 这种应用软件通过客户端获取数据库服务器上的数据库文件或其他格式文件中保存的密码, 并用来跟用户新输入的登录密码进行比较, 如果两者相同则以合法身份进入系统, 否则拒绝进入系统。

例如, 首先创建“用户名”和“密码”录入区, 并添加“确认”及“放弃”按钮。

JLabel Jlable2=new JLabel ("用户名") ;

user Text1=new JText Field ("", 10) ;

user Text1.set Verify Input When Focus Target (true) ;

JLabel Jlable3=new JLabel ("密码") ;

userpassword=new JPassword Field ("", 10) ;

userpassword.set Verify Input When Focus Target (true) ;

接下来把上面创建的录入区及按钮放入界面中, 下面以添加密码录入区为例。

Panel logpan3=new Panel () ;

logpan3.set Bounds (10, 100, 350, 30) ;

Jlable3.set Location (90, 3) ;

logpan3.add (Jlable3) ;uw.add (logpan3) ;

userpassword.set Location (90, 100) ;logpan3.add (userpassword) ;

uw.add (logpan3) ;//uw是设置的窗口

Statement stm=conn_0.create Statement () ;

然后, 设置监听按钮, 判断从数据库获取的当前用户的密码和在终端机器上输入的密码是否一致, 如果两者一致则进入系统, 否则再次转到登陆界面。

username=user Text1.get Text () .to String () .trim () ;

psswd=String.value Of (userpassword.get Password () .trim () ) ;

Result Set rst=stm.execute Query ("select pswd from usertable where usename=username") ;

while (rst.next () ) {usersec=rst.get String ("pswd") ;}

if (psswd.equals (usersec) )

{进入系统}

else

{提示非法用户, 返回登录窗口}

对于B/S架构的应用软件, 登录系统时, 其密码以原始明码的形式被上传到服务器, 与存储在数据库或其他格式文件中的密码进行比较, 如果两者相同则进入系统主页面, 否则返回登录窗口。

2 单密钥加密

好多系统都是将密码进行一次MD5或SHA1加密, 然后将Hash后的加密密码存入数据库表中。使用时, 根据应用软件的架构类型及编程方式调用。当使用C/S架构进行软件开发时, 可以使用上面的“Result Set rst=stm.execute Query ("select pswd from usertable where usename=username") ;”从数据库中取得加密过的密码, 然后在客户端解密成原始密码, 再与终端机器上输入的密码比较一致性。或者从数据库取得密码后, 不做解密处理, 而是把从客户端输入的密码进行同样方式的加密, 然后比较两者的一致性。当使用B/S架构进行软件开发时, 有三种处理方式。一是通过web服务器从数据库中取得加密过的密码, 在客户端浏览器上输入的密码以明码被传到web服务器, 然后把从数据库中取得加密过的密码进行解密, 再比较两者的一致性。二是把从客户端浏览器上输入的密码进行同样方式的加密, 再传到web服务器, 然后与从数据库取得的加密密码进行一致性比较。三是把从客户端浏览器上输入的密码进行不同方式的加密, 再传到web服务器, 然后与从数据库取得的加密密码进行解密处理, 再进行一致性比较。根据一致性比较的结果确定进入系统, 还是转到其他页面。

3 多密钥加密

这里说的多密钥加密并不是要求软件的使用人输入多个密码, 而是对软件使用人输入的密码按照一定的算法进行分解, 作为多个密码进行加密, 在密码的传输中经过不同方式加密的密码和拆解记录被一同传送到需要的服务器或终端上, 然后进行复原解密处理。例如, 对密码“String sm=Abc1234;”这样的密码拆解, 首先, 获取它的长度“int l=sm.length () ;”, 得到l=7, 接着可以把密码拆成小于7段的字符串, 假设拆解成Abc、123、4这三段, 只需记下它们的相对位置, 0标记Abc的位置, 3标记123的位置, 6标记4的位置, 然后把三段分别用不同方式加密, 恢复时只要把三段密码分别解密, 按照位置标记就可以恢复出原始密码Abc1234。当然我们也可以把上面密码拆解成A1、bc、342, 只要把标记修改成03标记A1的位置, 1标记bc的位置, 564标记342的位置, 其他同上面一样。当然也可以用算式这种完成拆解, 例如, 用2的平方, 把上面的sm=Abc1234拆解为A、bc、1234这三段, 然后把三段分别用不同方式加密, 恢复时把三段密码分别解密, 直接把字符串相加连接就恢复出原始密码Abc1234。至于程序上的详细处理过程和上面大同小异, 这里不再重复。

4 结语

开发应用软件对密码的设计要求:一是密码在传输过程中要加密, 防止被非法人员截获, 如果被截获也不可能恢复出真正的密码;二是密码在数据库中的存储加密, 防止被非法人员从数据库中盗取到密码。使用多密钥加密方法, 加强了密码的安全性, 对非法人员增加了密码发现及恢复的难度。当然, 这只是在程序级加强了应用软件的安全性, 其中, 系统安全、数据库安全等也应该引起重视。

参考文献

上一篇:统一监管下一篇:马克思主义经济学