APP下载

一种分布式数据加密传输系统的算法设计

2010-01-06朱作付徐超钱俊

湖北大学学报(自然科学版) 2010年3期
关键词:加解密明文解密

朱作付,徐超,,钱俊

(1.徐州工业职业技术学院信息工程系,江苏 徐州221000;2.武汉大学计算机学院,湖北 武汉430072)

一种分布式数据加密传输系统的算法设计

朱作付1,徐超1,2,钱俊2

(1.徐州工业职业技术学院信息工程系,江苏 徐州221000;2.武汉大学计算机学院,湖北 武汉430072)

通过对DES和RSA加密技术进行分析,建立一个包括信息交换格式、交换协议和加解密算法的数据传输系统.系统的整体设计建立于现在流行的分布式系统的基础上,由于采用agent的结构,使得任何一个部件的故障对系统的负面影响达到最小,从而保证整个系统运行的健壮性.即保证各个agent与中央控制器进行安全数据传输,具有良好的可操作性,能够适用于不同的应用环境.

算法;传输系统;数据加密;分布式系统

目前对称加密算法DES和非对称加密算法RSA的安全性都较好,还没有在短时间内破译它们的有效方法,常常采用DES与RSA相结合的加密算法.在加密、解密的处理效率方面,DES算法优于RSA算法.在密钥的管理方面,RSA算法比DES算法更加优越,DES算法从原理上不可能实现数字签名和身份认证.因此,本文中将采用对称加密DES算法、非对称加密RSA算法相结合,实现数据加密传输系统[1].

1 数据加密传输系统WDES的设计

1.1 系统的整体设计 首先需要建立一个可以进行信息交互的数据传输环境,在该环境下进行数据的加密传输才有意义,否则,脱离数据传输环境而研究数据加密技术是没有任何意义的[2].本文中提出建立一个分布式数据传输系统.系统的设计采用分布式结构,各个分布式部件的设计采用agent的形式,每个agent既可单独运行,同时又作为整个系统不可分割的一部分,受整个系统的调控,另一方面,由于采用agent的结构,使得任何一个部件的故障对系统的负面影响达到最小,从而保证整个系统运行的健壮性.如图1所示.

图1 系统的整体框架

1.2 数据加解密方案的设计 发送端将要发送的明文交给数据传输模块,数据传输模块根据要求使用特定的加密算法对明文进行加密,然后将加密后的密文发送给接收端,接收端的数据传输模块接收到相应的密文后选择相应的解密函数进行解密,解密后的明文再传给接收端的应用程序[3].这个过程如图2所示.

图2 数据加密工作流程

对正文的加密和解密运算均采用56位DES算法,而DES算法的密钥则由RSA算法进行加密.假设数据的发送方和接收方分别称为A和B.在A端进行加密时,首先采用RSA算法,用A的私用密钥SA对DES的加密密钥K进行第一次加密,然后用加密后的结果加上自己的帐号作为下一次加密的原始明文,再用B的公开密钥PB进行第二次RSA加密.接收方B接到报文后,采用相反的方向进行解密.即先用其私用密钥SB对密文进行RSA解密,便可得到一包含发送方帐号的明文,有了发送方的帐号,B就知道报文为A所发,故去掉此帐号后,再用A的公开密钥PA解密,便得到DES算法的密钥K.对DES算法的密钥K进行加密的过程如图3所示.最后使用解得的DES算法密钥K对后面传过来的报文进行DES解密,便可得到最终的明文文件.数据接收方在接收到数据并进行身份认证正确后,应向数据发送方发回一签收确认信号.

上述加解密过程可以实现数字签名和身份认证的功能.用户B可以确信报文是用户A所发,因为除了用户A本人,其他任何人都无法用明文K产生出密文ESA(K),所以就相当于用户A落下了他自己的签名.用户A的私用密钥规定只能由他本人保存和使用,无疑具有“专一性”,因此由他处理的信息K经2次加密后的EPB(ESA(K)+A)自然就隐含了用户A的个人特征.一般情况下,倘若有第三方也能制造出同样的数字信息,那么最大的可能是用户A有意或无意地泄露了他自己私人保存的私用密钥SA,所以责任要由其自己承担.由此可见,这种数字签名方法能起到和手工签名一样的效果.接收方在第一次解密后就可以了解到是谁发来的报文,而且用其他人的公开密钥对EPB(ESA(K))解密也将无得到有效的DES密钥K,因此用这种方法还可以对发送方的身份进行认证.

正文和DES密钥应分开进行传输.正文数据文件可以加密传送,也可以不加密传送.加密过的报文需解密处理,而未经加密的报文则不需解密处理.每一个用户的RSA密钥长期有效,但在每次通信过程中,DES的加密密钥K由数据发送方动态生成,而且只在当次通信中有效.因此,整个系统保密的关键就在于RSA的私用密钥是否安全[5].

图3 用RSA算法对DES算法的密钥K进行加密的过程

2 数据加密传输系统WDES的实现

2.1 数据传输模块 数据传输模块负责与中控器间的秘密数据传输.数据传输模块的主要功能为:创建监听线程监听固定的端口,以便其他组件和中央控制器建立连接,发送信息给中央控制器;中央控制器和其他组件建立连接,发送信息给其他组件.数据传输模块对应的类为CCommunicator.数据传输模块包括发送、接收信息和信息处理2个子模块.发送、接收信息子模块是将一定格式的信息发送到中控器,从中控器接收信息;信息处理子模块是负责信息的处理,如处理注册过程、事件信息、处理中控器发送到主防火墙的信息以及向中控器发送信息.

2.2 WDES的DES加解密模块

2.2.1 DES算法 DES算法的入口参数有3个:Key、Data、Mode.

其中Key为8个字节共64位,是DES算法的工作密钥;Data是8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有2种:加密和解密.

DES算法工作方式:如Mode为加密,则用Key把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果.在数据传输网络的两端,双方约定一致的Key,在数据传输的源点用Key对核心数据进行DES加密,然后以密码形式在网络中传输到数据传输网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据.这样,便保证了核心数据(如PIN、MAC等)在网络中传输的安全性和可靠性[6].

2.2.2 DES算法的实现 DES加解密算法主要由3个部分组成:密钥生成、加密函数、解密函数.为了使算法具有良好的跨平台性,选择了标准C作为算法的实现语言.其算法示意图如图4.

DES密钥结构:

2.2.3 DES加密模块发送、接收信息的实现 发送子模块的作用是将加解密子模块的输出作为输入,然后按照设计的协议对数据进行封装,然后利用TCP/IP协议将数据完整的发送出去[7].

接收子模块的作用是利用TCP/IP协议从网络接收完整的数据,然后按照协议对数据进行解包,并将解包后的结果作为加解密子模块的输入,在完成解密后会将结果传给上层的应用.

为了确保数据传输的准确、可靠,在发送、接收子模块的具体实现中使用TCP协议作为低层的传输协议,同样,为了使生成的代码能运行于不同的平台,使用了标准C的套接字编程,经过在windows下的传输测试,一切工作良好.

2.3 WDES系统的设计实现

2.3.1 系统主要模块流程图 由于系统设计采用模块化设计,系统也调用了MFC类库.本系统也是采用标准准类库设计,每一个模块由几个类组成,也调用了部分MFC标准类.如图5、6所示.

图4 DES算法示意图

图5 系统模块流程图1

图6 系统模块流程图2

图7 系统功能模块图

2.3.2 系统实现 系统采用VC6.0开发,是采用面向对象的方法设计,所有的功能全部集成到每一个子模块里,每一个子模块由很多类组成,每一个类执行不同的功能.因此本系统的模块图层次很清楚,也很容易理解.系统由控制模块、数据加密模块、数字签名模块、数据传输模块4个组成[8],模块间的关系如图7所示.

系统控制模块给加密模块、签名模块和数据传输模块发送指令,对他们进行控制;数据加密模块进行数据的DES加解密功能,签名模块进行数字签名的功能,数据传输模块进行数据传输功能,它有3种模式,第一是对话模式,考虑到数据传输双方在传送文件前可能进行简单的对话,因此设计这个模式,可以将对话内容直接显示在屏幕上;二是明文传送模式[9],它可以传送各种正规格式的文件,只要文件不含有乱码,都可以使用这种模式传送文件;第三种模式可以传送含有不规则符号的文件,它是专门为传送一些特殊文件设计,一般不使用.

3 结束语

采用DES、RSA和单程函数加密算法共同完成信息数据加、解密,提高密文传输和认证的安全性.RSA的加、解密处理速度快,单程函数加密算法对于密钥的管理比较简单等特点,使其有很高的推广价值.系统操作方便、简单.但是所谓的计算机数据传输网络的安全不是绝对的[10],也不可能是永久性的,随着相关技术的发展,系统需要不断完善和更新.

[1]陈明举,陈善学.基于 DES算法和 RSA算法的数据加密方案[J].南昌工学院学报,2006,25(1):23-24.

[2]吴昊.基于 DES算法和 RSA算法的数据加密方案[J].焦作工学院学报:自然科学版,2002,21(5):396-397.

[3]肖攸安,李腊元.数字签名技术的研究[J].武汉理工大学学报:交通科学与工程版,2002,26(6):737-739.

[4]程一飞.RSA算法及其应用[J].安庆师范学院学报:自然科学版,2004,10(2):68-69.

[5]程庭,张明慧,石国营.一种基于DES和RSA算法的数据加密方案及实现[J].河南教育学院学报:自然科学版,2003,12(2):69-71.

[6]杨波.现代密码学[M].北京:清华大学出版社,2003(2):18-21.

[7]章照止.现代密码学基础[M].北京:邮电大学出版社,2004(2):57-59.

[8]徐向文.蓝牙技术中的一种基于DES加密的安全策略[J].通信技术,2008,41(11):19-21.

[9]孙骏,韩泽耀.一种抗 DPA攻击的 DES设计[J].中国集成电路,2006,84(5):28-31.

[10]石新峰,董蕴华,杨航.基于FPGA的3-DES双向数据传输高速加/解密芯片设计[J].通信技术,2009,42(5):230-232.

A distributed data encryption algorithm for transmission system design

ZHU Zuofu1,XU Chao1,2,QIAN Jun2
(1.Department of Information Engineering,Xuzhou College of Industrial Technology,Xuzhou 221000,China;2.School of Computer,Wuhan University,Wuhan 430072,China)

By analysising DES and RSA encryption technology,a data transmission system including information exchange ormats,exchange protocol and processing the data decryption algorithm had been established.The overall design of system established on the basis of structure of the popular distributed system.By using the agent structure in this system,it made a component with failure minimize the negative impact and ensured the system robustness.Namely,this ensured that all of the agens and the central controller had a secure data transmission and a good operability.It could be applied to different applications.

algorithm;transmission system;data encryption;distributed system

TP392

A

1000-2375(2011)03-0366-04

2011-03-01

朱作付(1968-),男,硕士,副教授

(责任编辑 赵燕)

猜你喜欢

加解密明文解密
炫词解密
解密“一包三改”
炫词解密
奇怪的处罚
PDF中隐私数据的保护方法
电子取证中常见数据加解密理论与方法研究
奇怪的处罚
基于FPGA的LFSR异步加解密系统
四部委明文反对垃圾焚烧低价竞争
网络数据传输的加解密系统研究