基于DES和RSA算法的数据加密传输系统设计

2010-08-06 09:28朱作付葛红美
通信技术 2010年4期
关键词:加解密加密算法解密

朱作付, 徐 超, 葛红美

(徐州工业职业技术学院,江苏 徐州 221000)

0 引言

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

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

1.1 系统的整体设计

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

1.2 数据加解密方案的设计

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

图1 系统的整体框架

图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作为算法的实现语言。

(3)DES加密模块发送、接收的实现

发送子模块的作用是将加解密子模块的输出作为输入,然后按照设计的协议对数据进行封装,然后利用 TCP/IP协议将数据完整的发送出去。[7]

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

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

2.3 WDES系统的设计实现

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

图4 系统模块的关系

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

3 结语

采用 DES、RSA和单程函数加密算法共同完成信息数据加、解密,提高了密文传输和认证的安全性。RSA的加密解密处理速度快,单程函数加密算法对于密钥的管理比较简单等特点,使其有很高的推广价值。本文对网络中数据传输过程中的加密设计方案进行现实,并在分布式系统中进行检测,试验表明该数据传输方案可靠、稳定、安全,能够适应网络环境下数据加密传输的要求。系统操作方便、简单。但是所谓的计算机数据传输网络的安全不是绝对的,[10]也不可能是永久性的,随着相关技术的发展,系统需要不断完善和更新。

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

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

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

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

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

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

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

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

[9] 李海斌,周玉洁.一种抗 DPA攻击的 DES设计[J].通信技术,2007,40(11):277-279.

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

猜你喜欢
加解密加密算法解密
炫词解密
解密“一包三改”
炫词解密
混沌参数调制下RSA数据加密算法研究
PDF中隐私数据的保护方法
HES:一种更小公钥的同态加密算法
电子取证中常见数据加解密理论与方法研究
基于FPGA的LFSR异步加解密系统
基于小波变换和混沌映射的图像加密算法
网络数据传输的加解密系统研究