一种动态加密因子的对称加解密通信算法研究

2018-03-04 07:03任琦王彩梅
电脑知识与技术 2018年36期
关键词:解密加密

任琦 王彩梅

摘要:该文基于传统加解密算法模式衍生出一种动态加密因子的对称加解密通信算法,保密性能好,简单且高效,适用于金融类客户端/服务器模式软件系统的通信。

关键词:加密;解密;动态因子;安全通信

中图分类号:TP309.7        文献标识码:A        文章编号:1009-3044(2018)36-0011-02

1 概述

随着中国经济的飞速发展,我国已经是世界第二大经济体,在互联网时代,国内的网络金融类软件系统使用率日益增加,诸如银行、基金、证券等相关实时交易系统,对系统的安全性有非常高的要求,其中数据的加密和脱敏两类操作是系统安全性的核心指标。

恒生电子,同花顺,金证股份等国内的大型软件厂商在金融类软件系统领域投入很多资源进行设计和开发,在数据的交互、传输、存储等方面的架构设计和开发上较为周密和严格,而架构中的安全性设计,更是设计的重中之重,可见保障金融类软件系统的网络通信安全十分重要。

2 背景和相关技术

目前流行的加密通信方法有很多,但是根據密钥类型的不同,可以为两大类,对称加密通信和非对称加密通信。对称加密通信中加密和解密均采用相同的密钥,即加密密钥也作解密密钥。对称加密通信加密算法简单、速度较快,适合大数据量的传输。非对称加密通信中有一对密钥,公钥和私钥,一般如果使用公钥对数据进行加密,则对应的私钥用来解密;如果使用私钥对数据进行加密,则对应的公钥才能解密。非对称加密通信算法复杂、安全性高,但速度慢,适合小数据量的传输。

在金融类软件系统中,客户端\服务器(C\S)模式的软件系统十分常见,在设计这类软件系统时,用户登录是必不可少的一个环节,从狭义上看用户登录是客户端用户为进入服务器中某一项应用程序而进行的一项基本操作,而从广义上看,用户登录是服务器对客户端用户进行的身份验证、授权操作,更是客户端到服务器通信的安全传输的第一道防线。如何在用户登录提交用户名和密码时,建立客户端与服务器之间的安全通信是个值得研究的问题。

据了解,目前现有金融类软件系统中,通常的做法是在各个环节进行加解密,加解密通信算法通常采用的是固定因子,采用固定因子的加解密通信通常对不同客户端加密相同数据时,产生的密文不唯一,安全性较低,容易被破解。本文提出的加密算法是基于传统常见的算法模式衍生的动态加密模式,较目前国内各大厂商使用的现有加密算法更加安全可靠。

3 基于动态加密因子的对称加解密通信算法的设计思路

基于动态加密因子的对称加解密通信算法,采用动态加密因子作为算法因子。动态加密因子由两部分组成,一个是登录的用户名(注:包含用户名但不限用户名,这里泛指所有可变的动态字符串,例如:时间戳、GUID(全局唯一标识符)、随机数等等,本文统一采用“登录用户名”描述),一个是可配置的混淆因子。

3.1 客户端和服务器端的身份互验算法设计思路

首先在客户端登录前,与服务器交互,服务器端产生动态加密因子,客户端在获得用户令牌(user token)的同时获动态因子。客户端将动态加密因子,通过一定规则运算后得到一个密钥FA,该密钥为伪密钥,即不是用来真正作加解密工作的密钥,该密钥仅为一个过程变量。将伪密钥FA进行HASH-SHA1运算,得到HASH值hash_A,并将该值传递到服务器端。HASH的目的是隐藏伪密钥中的登录用户名和混淆因子信息。

服务器端也将动态加密因子,通过相同的规则运算后,得到一个伪密钥FB,将伪密钥FB进行HASH-SHA1运算,得到HASH值hash_B,并将该值传递到客户端。客户端和服务器端各自将hash_B与hash_A值做比较,如果两个值相等,则通过双方的身份验证。

算法流程如图1所示。

3.2 客户端和服务器端的安全通信算法设计思路

客户端将伪密钥FA进行HASH_MD5运算,得到密钥RA,该密钥为真密钥,即用来真正作为加解密工作的密钥。服务器端也对伪密钥FB进行HASH_MD5运算,得到密钥RB。客户端用RA对传输的明文数据进行加密,将密文传到服务器后,服务器收到密文后,用RB来解密获得明文,反之亦然。

事实上,在整个加解密通信过程中,采用了对称加密算法,简化了加解密的工作量,并且该算法一定程度上保证了用户传输密文的唯一性。

算法流程如图2所示:

3.3 伪密钥生成思路

客户端获取在服务器端生成的混淆因子后,使用排队的方式形成密钥,排队规则为,用户名的第一个字符排第一位,混淆因子的第一个字符排第二位,用户名的第二个字符排第三位,混淆因子的第二个字符排第四位,依次类推。通常建议混淆因子要配置为比用户名字符长度长的字符串,所以当用户名字符排列完毕后,将剩余的混淆因子依次排在最后,最终排队形成的新字符串为伪密钥。

算法流程如图3所示:

3.4 加密通信算法思路

异或的特点是原始值经过两次异或后,该值后会还原成原来的值,所以可利用异或的这个特性来进行加解密。在发送端,可把明文与密钥进行异或操作,生成密文,如图4所示。将密文发送到接收端,再利用密钥进行异或操作,就能得到明文,如图5所示。

4 本算法优势及扩展思路

4.1 本算法的优势

1) 在客户端与服务器端交互过程中,密钥始终没有被放到网上传递,不存在被截获、被篡改、被破译的威胁。密钥被SHA1-HASH后,其值放到网络上传,长度160位,即使被截获也很难破译获得原文。

2) 密钥生成具有动态随机性,且为一次性密钥,密钥不存储,密钥间的相关度为零,密钥之间无法推导获得。

3) 密钥长度设计为128位,且为一次性密钥,将明文和密钥异或既简单又可靠的加密方式,加解密速度较快,适用于大数据量的加解密。

4.2 本算法的扩展思路

本算法可以做进一步扩展设计,前文提到动态加密因子中的登录的用户名可以设置为其他任何动态值、随机字符串等,例如:扩展登录用户名为用户名+年月日、用户名+时分秒等,其中年月日、时分秒这些作为一个动态值是在不断发生变化的,具有一定的随机性,这样密钥的长度和复杂度既得到增加,随机性也得到增强。另外动态加密因子中的可配置的混淆因子可以替换为随机函数,实现起来也比较方便。

参考文献:

[1] 北京锐安科技有限公司.一种基于预设密钥的对称加密通信方法[P].中国:CN102387152A,2012.3.21.

[2] 褚万青.一种对称密码表及对称加密法[P].中国:CN104901811A,2015.9.9.

[3] 微软公司.执行对称加密的技术[P].美国:200952438,2009.12.16.

[通联编辑:朱宝贵]

猜你喜欢
解密加密
解密“一包三改”
炫词解密
炫词解密
一种基于熵的混沌加密小波变换水印算法
一种基于LWE的同态加密方案
认证加密的研究进展
解密“黑匣子”
吴王余眜剑解密
基于ECC加密的电子商务系统
解密“大调解”