2010年第04期,第43卷通信技术 Vol.43,No.04,2010 总第220期Communications Technology No.220,Totally基于DES和RSA算法的数据加密传输系统设计朱作付,徐超,葛红美(徐州工业职业技术学院,江苏徐州 221000)【摘要】DES和RSA是两种应用非常广泛和成熟的数据加密算法。
本文通过对DES和RSA加密技术进行分析,建立了一个包括信息交换格式、交换协议和加解密算法的数据传输系统。
系统的整体设计建立于现在流行的分布式系统的基础上,由于采用了agent的结构,使得任何一个部件的故障对系统的负面影响达到最小,从而保证了整个系统运行的健壮性,即保证各个Agent与中央控制器进行安全数据传输。
系统具有良好的可操作性,能够适用于不同的应用环境。
【关键词】算法;传输系统;数据加密;分布式系统【中图分类号】TP392【文献标识码】B【文章编号】1002-0802(2010)04-0090-03 Design of DES and RSA-based Data Encryption Transmission System DesignZHU Zuo-fu, XU Chao, GE Hong-mei(Xuzhou College of Industrial Technology, Xuzhou Jiangsu 221000, China)【Abstract】DES and RSA are two widely-applied and mature data encryption algorithms. This article, through analysis on DES and the RSA encryption technologies, proposes a data transmission system, which includes the form of information exchange, swapping agreement and encryption algorithm. The overall design of the system is based on the present popular distributed system. Owing to the adoption of agent structure, the negative impact of any component failure on the system is minimized, thus ensuring the robustness of the whole system operation, that is, guaranteeing the safe data transmission between each Agent and the central controller. This system is of excellent operability and suitable for various application environments.【Key words】algorithm; transmission system; data encryption; distributed system0 引言目前的数据加密技术根据密钥类型可分为私钥加密(对称加密)系统和公钥加密(非对称加密)系统.对称加密系统与非对称加密相比,在加密、解密处理速度、防范能力、数字签名和身份认证等方面各有优劣.对称加密算法DES和非对称加密算法RSA的安全性都较好,还没有在短时间内破译它们的有效方法,常常采用DES与RSA相结合的加密算法.在加密、解密的处理效率方面,DES算法优于RSA算法.在密钥的管理方面,RSA算法比DES算法更加优越,DES算法从原理上不可能实现数字签名和身份认证.因此,本文将采用对称加密DES算法、非对称加密RSA算法相结合,实现数据加密数据加密传输系统。
[1]1 数据加密传输系统WDES的设计1.1 系统的整体设计研究网络环境下的数据加密问题,首先需要建立一个可以进行信息交互的数据传输环境,在该环境下进行数据的加密传输才有意义,否则,脱离数据传输环境而研究数据加密技术是没有任何意义的。
[2]因此本文提出建立一个分布式入数据传输系统。
系统的设计采用了分布式的结构,各个分布式部件的设计采用了Agent的形式,每个Agent既可单独运行,同时又作为整个系统不可分割的一部分,受整个系统的调控,另一方面,由于采用了Agent的结构,使得任何一个部件的故障对系统的负面影响达到最小,从而保证了整个系统运行的健壮性。
如下页图1所示。
1.2 数据加解密方案的设计发送端将要发送的明文交给数据传输模块,数据传输模块根据要求使用特定的加密算法对明文进行加密,然后将加密后的密文发送给接收端,接收端的数据传输模块接收到相应的密文后选择相应的解密函数进行解密,解密后的明文再收稿日期:2009-08-25。
作者简介:朱作付(1968-),男,教授,硕士研究生,主要研究方向为计算机系统结构;徐超(1980-),男,硕士研究生,讲师,主要研究方向为计算机软件与理论;葛红美(1982-),女,硕士研究生,讲师,主要研究方向为计算机应用技术。
9091传[3]图2数据加密工作流程1.3 DES 和RSA 算法设计(1)对称密码体制算法的选择和实现对称密码体制中DES 算法是一种采用传统加密方法的区组密码。
在该数据传输模块设计中,DES 采用64位分组进行加密,密钥长度为56位,对64位的数据块进行16轮自循环编码。
在每轮编码时,48位的子密钥由56位的完整密钥经过循环左移、置换选择得出来。
为进一步提高安全性,在数据传输模块设计中使用DES 的改进算法,这种方法用三个密钥对明文进行三次加密,假设三个密钥是K1、K2和K3,P 是明文,C 是密文,则C=EK3[DK2[EK1[P ]]]这要花费原来三倍的时间,但是采用三重DES 的168位密钥是很“强壮”的加密方式了。
DES 算法的实现过程由密钥生成、加密、解密三个部分组成。
为了使算法具有良好的跨平台性,选择了标准C 语言作为算法的实现语言,将这三个过程封装成三个子函数,并在Linux 和Windows 环境下对算法的正确性进行检验。
由于采用软件实现DES 加解密,速度较硬件实现慢,但软件实现方便、成本低,能够满足系统的要求。
(2)非对称密码体制算法的选择非对称密码体制中RSA 算法是一个既能用于数据加密也能用于数字签名的加密算法。
根据RSA 算法的特点,可以使用RSA 算法加密DES 的加密密钥,然后通过网络传递经加密以后的密文,可有效的提高系统数据传输的安全性。
但RSA 加密算法仅适用于组件向控制台注册的过程。
[4]实现过程中采用标准C 语言将RSA 密钥的生成、加密、解密过程封装成三个子函数,并在Linux 和Windows 环境下对算法的正确性进行检验。
实验表明RSA 密钥生成过程所需时间较长,根据不同机器的性能大约需要2~3 min ,能够满足分布式入侵检测系统的要求。
[5]2 数据加密传输系统WDES 的实现2.1 数据传输模块数据传输模块负责与中控器间的秘密数据传输。
数据传输模块的主要功能为:创建监听线程监听固定的端口,以便其它组件和中央控制器建立连接,发送信息给中央控制器;中央控制器和其它组件建立连接,发送信息给其它组件。
数据传输模块对应的类为CCommunicator 。
数据传输模块包括发送和接收信息和信息处理两个子模块。
发送和接收信息子模块:将一定格式的信息发送到中控器、从中控器接收信息;信息处理子模块:负责信息的处理,如处理注册过程、事件信息、处理中控器发送到主防火墙的信息以及向中控器发送信息。
2.2 WDES 的DES 加解密模块(1)DES 算法(见图3)DES 算法的入口参数有三个:Key 、Data 、Mode 。
其中Key 为8个字节共64位,是DES 算法的工作密钥;Data 是8个字节64位,是要被加密或被解密的数据;Mode 为DES 的工作方式,有两种:加密或解密。
DES 算法工作方式:如Mode 为加密,则用Key 把数据Data 进行加密, 生成Data 的密码形式(64位)作为DES 的输出结果;如Mode 为解密,则用Key 去把密码形式的数据Data 解密,还原为Data 的明码形式(64位)作为DES 的输出结果。
在数据传输网络的两端,双方约定一致的Key ,在数据传输的源点用Key 对核心数据进行DES 加密,然后以密码形式在网络中传输到数据传输网络的终点,数据到达目的地后,用同样的Key 对密码数据进行解密,便再现了明码形式的核心数据。
这样,便保证了核心数据(如PIN 、MAC [6]图3 DES 算法示意(2)DES 算法的实现DES 加解密算法主要由三个部分组成:密钥生成、加密函数、解密函数。
为了使算法具有良好的跨平台性,选择了标准C作为算法的实现语言。
DES密钥结构:struct deskeytype{int keylen; //密钥长度char key[20]; //密钥};(3)DES加密模块发送、接收的实现发送子模块的作用是将加解密子模块的输出作为输入,然后按照设计的协议对数据进行封装,然后利用TCP/IP协议将数据完整的发送出去。
[7]接收子模块的作用是利用TCP/IP协议从网络接收完整的数据,然后按照协议对数据进行解包,并将解包后的结果作为加解密子模块的输入,在完成解密后会将结果传给上层的应用。
为了确保数据传输的准确、可靠,在发送、接收子模块的具体实现中使用TCP协议作为低层的传输协议,同样,为了使生成的代码能运行于不同的平台,使用了标准C的套接字编程,经过windows下的传输测试,一切工作良好。
2.3 WDES系统的设计实现系统采用VC6.0开发,是采用面向对象的方法设计,所有的功能全部集成到每一个子模块里了,每一个子模块由很多类组成,每一个类执行不同的功能。
因此本系统的模块图层次很清楚,也很容易理解。
系统由控制模块、数据加密模块、数字签名模块、数据数据传输模块四个模块组成,[8]模块间的图4 系统模块的关系系统控制模块给加密模块、签名模块和数据传输模块发送指令,对他们进行控制;数据加密模块进行数据的DES 加解密功能,签名模块进行数字签名的功能,数据传输模块进行数据传输功能,它有三种模式,第一是对话模式,考虑到数据传输双方在传送文件前可能进行简单的对话,因此设计这个模式,可以将对话内容直接显示在屏幕上;二是明文传送模式,[9]它可以传送各种正规格式的文件,只要文件不含有乱码,都可以使用这种模式传送文件;第三种模式可以传送含有不规则符号的文件,它是专门为传送一些特殊文件设计,一般不使用。