王玉琼
信息是一种资源,也是一种财富。在现代社会中,信息处理和通信技术日益发展,保护信息的安全,特别是保护重要信息的安全,越来越受到国内外有关管理者和研究人员的重视。目前,国际互联网有各种各样的安全措施,例如防火墙(FireWall)、网络加密、加密狗等。但是,这些都是系统或网站层次的安全设施。对于广大用户来说,更为直接、也更为有效的办法,就是使用信息加密技术。如何保证用户数据在网络传输过程中不被截取,从而保证数据传输的私密性和安全性已变得非常必要,已有很多学者对此作出了研究。
现有利用二叉树性质对数据进行加密处理的方案,增加了网络传输量及系统客户端和服务端的开销,占用了较多的系统资源。
基于树结构的密钥加密存储方法(专利号:CN200810097915.3),属可信计算技术领域。其采用了二叉树分层加密技术,把对许多数据加密密钥的保护转变成了对一个主密钥的保护,包括二叉树初始化以及数据加密密钥插入、删除和读取四个部分。二叉树的根节点代表主密钥,存放在可信密码模块中,其余节点代表的密钥存放在外存中,其中,叶节点代表数据加密密钥;非根节点存放时总是用上层父节点对其进行加密,因此,数据加密密钥被使用时必须还原。该方法节省了可信密码模块的存储空间,又能存储大量密钥,可广泛应用于高安全等级的计算机信息系统中,但是,该方法使用范围较小。
利用二叉树遍历方式进行加密、解密方法及装置(专利号:CN201310329129.2),包括:获取明文的数据序列以及数据序列中的N个元素,所述N为大于等于1的整数;根据所述数据序列中元素的个数N,获取一棵具有N个节点的序列二叉树作为密钥;根据预设的明文遍历方式,将所述数据序列中的N个元素分别装载至所述序列二叉树的N个节点中;采用与所述明文遍历方式不同的遍历方式作为密文遍历方式;根据所述密文遍历方式遍历所述序列二叉树,生成加密数据序列,以完成明文的加密。在本发明实例中,根据密文遍历方式遍历所述序列二叉树,生成加密数据序列,以完成明文的加密,简化了加密过程,增强了安全性,提高了数据的加密效率,但若明文内容信息量较大,则必须生成较为复杂的树信息。
本文提出的加密算法,旨在解决网络传输加密过程中的资源占用情况,实现简洁、基于当前传输协议的数据安全传输,不增加任何端口,不需要修改当前的防火墙规则。主要包括数据的加密单元、数据传输接收单元和解密单元。发送方用二叉树编码信息将密钥加密,通过秘钥对明文加密,接收方需同时获取到发送方提供的二叉树编码信息及密钥信息,才能对密文进行解密。数据加密、解密示意图如图1所示。
图1 数据加密、解密示意图
数据加密单元:发送方收到接收方返回的通信确认信息后,生成自己的二叉树信息同时存储密钥信息,并对传输的数据进行加密。
传输接收单元:发送方将加密后的数据及密钥、二叉树遍历等信息通过不同的方式分别发送给接收方。接收方需同时获取到发送方提供的所有信息(密文、二叉树遍历序列、密钥)才能对数据进行解密。
数据解密单元:接收方通过获取到的二叉树遍历序列还原生成发送方生成的二叉树,解密秘钥信息,根据秘钥对密文进行解密。
数据加密解密的流程图如图2所示。
图2 加密算法流程图
下面结合具体实例说明本加密算法的步骤:
假定甲为发送方,乙为接收方;甲方生成自己的二叉树,并以二叉树的节点信息存取秘钥(本例以字符类型秘钥为例)。用huffman编码方法,对所有节点,若有左孩子,对其指向左孩子的分支编码为0,若有右孩子,则对其指向右孩子分支编码
图3 发送方生成的二叉树
(1)生成遍历序列
中序遍历序列(左-根-右):DHBIEAFJCG;前序遍历序列(根-左-右):ABDHEICFJG。
(2)秘钥存储
为确保秘钥的唯一性,我们暂定秘钥的数据信息存储在树的叶子节点上。我们选定节点GIJH为存储的秘钥信息。
(3)秘钥加密
根据二叉树编码遍历二叉树序列将秘钥(GIJH)转换为对应二叉树编码G:11,I:010,J:101,H:001。生成秘钥 1(11010101001)。
(4)明文加密
秘钥信息(GIJH)转二进制(01100111,01101001,01101010,01101000)存储,明文转二进制逐次与存储的秘钥正向异或;
(明文转二进制) ⊕01100111⊕01101001⊕01101010⊕01101000(结果转成明文同类型格式)获取密文。
甲方将生成的二叉树序列、秘钥 1、密文通过某种方式发送给接收方。乙方获取到甲方发送的二叉树序列、秘钥1、密文进行解密。
(5)二叉树还原
根据二叉树的中序遍历和后序遍历序列或中序遍历和前序遍历序列可唯一确定一棵二叉树这一重要特性和甲方发送的中序遍历序列DHBIEAFJCG及前序遍历序列ABDHEICFJG,还原生成甲方生成的二叉树(如图3)。为1,一直进行下去,直到编码完成。假如发送方任意生成的二叉树如图3所示。
(6)秘钥解密
根据还原的二叉树及获取的秘钥 1(11010101001)信息,反编码解密秘钥信息(GIJH)。
(7)密文解密
根据逻辑运算(异或)性质:同一变量与另一变量和其异或值异或等于自身。即:a ⊕ b ⊕ a =b,我们将秘钥(GIJH)转二进制(01100111,01101001,01101010,01101000)存储密文转二进制逐次与存储的秘钥逆向异或;(密文转二进制)⊕01101000⊕01101010⊕01101001⊕01100111(结果转成密文同类型格式)获取明文。
综上所述,本文中提出的二叉树加密算法有以下优势:
(1)本加密算法主要适用于对数据的加密。发送方生成任意二叉树,并分别保存二叉树的中序及先序序列和秘钥信息,没有将密文数据直接保存,接收方需同时获取到该序列、秘钥方可进行解密。其中运用逻辑异或运算的形式对数据进行加密解密操作。该方法能够快捷、高效地实现数据的加密解密。
(2)本加密解密方法引入二叉树与逻辑异或运算结合的形式,数据更不易被破解,安全性更高,是本专利的核心方法及关键点,应予以保护。
[1]彭楚钧.关于电子商务安全解决方案的探讨[J].湖南广播电视大学学报,2009(3):54-56.
[2]张晓玲,黎蔚,刘欣亮,等.数据结构的实例教学——二叉树在信息加密中的应用[J].电脑知识与技术(学术交流),2007(07):295-296.
[3]董恩春,江国和.二叉树与 RSA相结合进行数据加密及其在数据传输中的应用[J].科学技术与工程,2007(6):1213-1214.
[4]陈伟,付宇浩,秦科.基于二叉树的加密算法[J].实验科学与技术,2006(12):81-83.