一种基于MAC地址的数据加密方法与流程

文档序号:12752752阅读:1294来源:国知局
一种基于MAC地址的数据加密方法与流程
本发明属于数据加密领域,尤其涉及一种基于MAC地址的数据加密方法。
背景技术
:由于当今大数据、云存储的发展,数据业务急剧膨胀,个人应用程序中的敏感信息,包括个人数据、医疗记录等重要信息被人窃取的情况日渐频繁;以及电子信息产业其自身固有特性,越来越多的产品被复制,知识产权被侵犯。由此可见,未经授权的第三方恶意访问数据的问题急需智能、快速的解决方案,多媒体数据传输应用的数据安全已成为一个亟待解决的重要问题。在计算机通信网络中,系统提供的主要安全措施称为安全服务。有五种通用的安全服务,分别是:认证服务,提供某个实体的身份的保证;访问控制服务,保护资源避免遭受非法使用和操纵;机密性服务,保护信息不被泄露或暴露给未授权的实体;数据完整性服务,保护数据以防止授权的修改、删除或替代;不可否认服务,防止参与某次通信交换的一方事后否认本次交换曾经发生过。而认证服务是一种最重要的安全服务,因为在某种程度上所有其他的安全服务都依赖于它。认证服务是为了阻止非法实体的不良访问,有多种方法可以认证一个实体的合法性,密码技术是最常用的,但由于在实际系统中有许多用户采用了很容易被猜测的单词或短语作为密码,这些短语很容易被复杂架构的键盘记录恶意软件嗅探。因此,获得一种安全有效的数据加密技术是保障信息安全的当务之急。技术实现要素:本发明提出一种基于MAC地址的数据加密方法,采用MAC地址作为密钥,并将遗传算法应用于数据加密技术,由于MAC地址是唯一的,且遗传算法具有自适应全局寻优、智能搜索技术、收敛性好的特性,增加了密钥的复杂度,保证了用户身份认证的准确性。本发明所述方法进一步提高了加密密文的安全级别,有效地防止了恶意第三方对数据的非法访问。为实现上述目的,本发明的技术方案如下:本发明解决上述技术问题所采取的技术方案如下:一种基于遗传算法操作MAC地址的数据加密方法,包括以下步骤:(1)节点会话的初始化;(2)MAC地址的形式转换;(3)数字数据文本的获取、分割;(4)使用遗传算法操作MAC地址进行数据加密;(5)源节点向目的节点发送加密后数据。进一步根据一种基于遗传算法操作MAC地址的数据加密方法,步骤(1)节点会话的初始化,网络中源节点到目的节点建立通信链路后,源节点获取目的节点的MAC地址,并根据目的节点的MAC地址对所要传输的数据进行加密,所述链路中除源节点和目的节点外其他节点不知道目的节点的MAC地址,若目的节点的MAC地址的3个以上字节相同,目的节点随机生成一个6个字节完全不相同MAC地址给源节点,以提高加密的强度。进一步根据本发明所述的一种基于遗传算法操作MAC地址的数据加密方法,步骤(2)MAC地址的形式转换,按如下步骤进行:(2-1)将目的节点十六进制的MAC地址转换为十进制形式,并用基因形式,即一维数组的形式表示;(2-2)将MAC地址每个字节的各位数个位、十位、百位相加,所加结果是0到9之间一位整数,则定义此一位整数为染色体偏移量;所加结果是十位数,继续将这个数的个位、十位相加,直到最终得到的结果0到9之间一位整数为止,定义此一位整数为MAC地址的染色体偏移量,每个字节的染色体偏移量分别用表示。进一步根据本发明所述数据加密方法,步骤(3)数字数据文本的获取、分割,按如下步骤进行:(3-1)获取待传输的数据文件,有N个字节,然后将此数据文件的N个字节按序分割成组基因,每组基因6个字节,“”表示大于等于X的最小正整数;(3-2)将基因中的6条染色体的位置编号,从左到右依次编号为array[1],array[2],array[3],array[4],array[5],array[6]。进一步根据本发明所述数据加密方法,步骤(4)使用遗传算法操作MAC地址进行数据加密,按如下步骤进行:(4-1)交叉:每个基因上染色体的顺序换位,该步骤只交叉单个基因内部的染色体,交叉规则为将array[1]的染色体循环右移位,与原位置的染色体交换位置,在第一次循环结束后,再将位于array[n]的染色体依次右移位,再与原位置的染色体交换位置,直到6次循环都结束,其中;(4-2)基因突变:将MAC地址和数字数据文本的每个一维数组(基因)对应位置上的字节(染色体)分别进行布尔运算,得到进一步的加密数据的一维数组,这里的布尔运算可以是与、或、异或、同或等;(4-3)纵向改变染色体的位置:首先,将所有个一维数组看作一个行、6列的二维数组,即,采用上移或下移一定偏移量的方式,循环移动每一列的染色体,将所有染色体重新排序。进一步根据本发明所述数据加密方法,步骤(5)源节点向目的节点发送加密后数据,在完成以上操作步骤后,源节点得到原始数据对应染色体的2维数组,遍历二维数组,按序读取二维数组中的数据,得到最终的加密数据文本,在加密数据的前端加上包含数据加密算法的FLAG数组,完成加密,然后将包含FLAG数组的加密数据发送给目的节点。本发明与现有技术相比,具有以下优点:(1)MAC地址具有全球唯一性,就如同我们的身份证一样,消除了多个以太网卡被随机部署时的地址冲突;(2)遗传算法会使得密钥更加复杂,能够提高系统的安全性和可靠性;(3)只有掌握正确密钥的人可以获得被加密的媒体数据信息,其他试图通过其他方法破译信息的手段将不能得到任何有效的信息;(4)通过本发明的加密技术加密后的图像,对人类视觉系统(HVS)攻击具有良好的免疫力。附图说明图1为本发明所述一种基于MAC地址的数据加密方法的流程图;图2为本发明所述方法中的加密数据存储模型。具体实施方式参照图1和图2,本发明是一种基于MAC地址的数据加密方法,基本思想是,网络中源节点到目的节点建立通信链路后,获取目的节点的MAC地址,源节点根据目的节点的MAC地址,对所要发送的数据进行加密。设传输的数据文件的字节总数为N,本发明利用MAC地址有且仅有6个字节的特点,将数据文件的N个字节分割为数组长度为6字节的n个一维数组,,“”表示大于等于X的最小正整数),然后根据目的节点的MAC地址进行数据加密,得到加密数据数组Array1、Array2、…、Arraryn。最后,在加密后的数组前加FLAG数组,存储加密所传输数据的加密方法。目的节点收到数据后解析第一个数组,根据第一个数组中所述加密方法和自己的MAC地址再进行解密。网络中源节点到目的节点建立通信链路后,获取目的节点的MAC地址,链路中除源节点和目的节点外,其他节点不知道目的节点的MAC地址,不能对加密后的数据进行解密。为了方便阐述遗传算法对MAC地址的操作,本发明将一个6字节的一维数组定义为一个基因,一维数组中的任一字节定义为一条染色体。图1所示,本发明所述方法具体步骤如下:步骤(1)、节点会话的初始化源节点和目的节点建立通信会话后,源节点读取目的节点的MAC地址。当目的节点的MAC地址的3个以上字节相同时,类似9A:9A:9A:9A:9A:9A、11:11:11:11:11:11、FF:FF:FF:FF:FF:FF等形式,目的节点随机生成一个6个字节不完全相同MAC地址给源节点,以提高加密的强度。为了方便说明,优选的我们假设源节点得到目的节点的MAC地址为9C:D2:1E:7A:F7:D1。步骤(2)、MAC地址的形式转换(2-1)、将十六进制的MAC地址转换为十进制,并用基因的形式表示;将9C,D2,1E,7A,F7,D1六个字节(染色体)由十六进制转换为十进制,例如:。同理,D2对应210、1E对应30,7A对应122,F7对应247,D1对应209。进制转换后的MAC地址用一维数组(基因)的形式表示为:Array_mac15621030122247209(2-2)、将进制转换后的MAC地址每个染色体的各个位数相加,即个位,十位,百位上的数字相加,若所加结果是0到9之间的一位整数,则定义此一位整数为染色体偏移量;若所加结果是两位数,继续将这个数的个位、十位相加,直到最终得到的结果是0到9之间的一位整数为止,定义此一位整数为MAC地址的染色体偏移量。每个字节的染色体偏移量分别用表示。根据(2-1)的Array_mac基因上各染色体的数值,可求出MAC地址的染色体偏移量,如。同理求出。Array_mac的MAC地址的染色体偏移量依次为:3,3,3,5,4,2。步骤(3)、数字数据文件的获取、分割(3-1)、获取待传输的数据文件,有N个字节,然后将此数据文件的N个字节按序分割成组基因,每组基因6个字节;(3-2)、将基因中的6条染色体的位置编号,从左到右依次编号为array[1],array[2],array[3],array[4],array[5],array[6]。本发明涉及到的待传输数据文件均用十进制数表示。假设源节点发送给目的节点的数据文件的十进制形式为7,16,64,32,14,3,1,56,9,10,11,12,按步骤3将他们按序分为2个基因(12/6=2),并用Array1,Array2表示:Array17166432143Array21569101112步骤(4)、使用遗传算法操作MAC地址进而加密数据(4-1)、染色体交叉,即换位每个基因上染色体的顺序。该步骤只交叉单个基因内部的染色体,交叉规则为:将染色体array[1]循环右移位,与原位置的染色体交换位置,在第一次循环结束后,再将位于array[n]的染色体依次右移位,与原位置的染色体交换位置,直到6次循环都结束,其中。例如对于Array1,Array2,在经过交叉换位后得到新的一维数组(基因)Array1^,Array2^。在(2-1)中,已知各个位置的偏移量依次为3,3,3,5,4,2,下面对Array1,Array2进交叉操作。Array1的换位过程如下:7166432143a、array[1]上的染色体7循环右移3位,与array[4]的染色体32交换位置:3216647143b、array[2]上的染色体16循环右移3位,与array[5]的染色体14交换位置:3214647163c、array[3]上的染色体64循环右移3位,与array[6]的染色体3交换位置:3214371664d、array[4]上的染色体7循环右移5位,与array[2]的染色体14交换位置:3214731664e、array[5]上的染色体16循环右移4位,与array[3]的染色体7交换位置:3214163764f、array[6]上的染色体64循环右移2位,与array[2]的染色体14交换位置:3264163714因此交叉过程结束后,可得Array1^为:3264163714同理可得,Array2^为:1095612111(4-2)、基因突变:将MAC地址和数字数据文件的每个基因对应位置上的染色体分别进行布尔运算,得到进一步的加密数据的一维数组。其中,布尔运算可以是与、或、异或、同或等。对Array1^,Array2^,经过基因突变后得到新基因Array1#,Array2#,进行基因突变时采用布尔运算为异或操作。下面对基因突变过程进行全面阐述:首先,将MAC地址和染色体交叉后得到的数字数据文件基因转换为二进制。MAC地址的二进制形式:100111001101001000011110011110101111011111010001Array1^的二进制形式为:001000000100000000010000000000110000011100001110对两个基因进行异或操作:所以Array1#的二进制形式为:101111001001001000001110011110011111000011011111再将Array1#转换为十进制的基因形式为:18814614121240223同理可得Array2#的十进制形式为:15021938118246218(4-3)、纵向改变染色体的位置。首先,将所有个一维数组看做一个行、6列的二维数组,即。此二维数组有6列,为保证加密效果,随机的以列为单位,对每列采用上移或下移一定偏移量的方式,循环移动每一列的染色体,将二维数组中所有染色体重新排序。以Array1#,Array2#为例,说明源节点如何纵向改变染色体的位置:为了方便说明,假设循环移位规则为将第一列,第三列,第五列向上循环偏移,第二列,第四列,第六列向下循环偏移,每一列的偏移量为MAC地址的十进制表示数,本发明所述二维数组不仅限于此循环偏移方式。当所有染色体完成重新排序时,二维数组中的数据即为最终的加密数据。a、将Array1#,Array2#两个一维数组合为一个二维数组Array[2][6]:1881461412124022315021938118246218b、将数组的第一、三、五列向上循环偏移,第二、四、六列向下循环偏移,偏移量为MAC地址的十进制表示,分别为156,210,30,122,247,209,得到最终的二维加密数组:步骤(5)、源节点向目的节点发送加密后数据在完成(4-3)后,源节点得到原始数据对应染色体的2维数组,遍历二维数组,按序读取二维数组中的数据,得到最终的加密数据文件。在加密数据的前端加上包含数据加密算法的FLAG数组,完成加密,然后将包含FLAG数组的加密数据发送给目的节点。例如步骤(3)中,原本要传输的12个字节的数据:7,16,64,32,14,3,1,56,9,10,11,12,在完成本发明的所有操作步骤后,得到最终的加密数据为188,146,14,121,246,218,150,217,18,118,240,223。实施例设接收机设备的MAC地址为(00:A0:C9:14:C8:29)使用它作为一个密钥来加密数据。要传输的源数据有24个字节,分别为2,10,7,15,32,19,9,64,71,3,15,23,1,12,34,18,5,25,30,11,3,16,27,8。对它们运用本发明所述的加密算法进行加密。将十六进制的MAC转换为十进制,并转换为向量形式:01602012020041求出MAC地址的染色体偏移量,它们分别为0,7,3,2,2,5。所发送数据为2,10,7,15,32,19,9,64,71,3,15,23,1,12,34,18,5,25,30,11,3,16,27,8,共24个。将24个字节的数据按照MAC的形式按顺序分为每六个字节一组,并将它们都转换为数组的形式:Array12107153219Array29647131523Array31123418525Array43011316278对上面的数据执行遗传算法的三个操作:1、交叉。按照换位规则操作后的数据向量,如下所示:Array1^3271910152Array2^1571236439Array3^5342512181Array4^27381116302、基因突变。使用MAC地址和每个一维数据数组之间进行异或(XOR)运算,得到进一步的加密数据数组,如下所示:Array1#321672183019943Array2#152312228420332Array3#51302082421840Array4#2716319331216553、将上述4个一维数组合并为一个二维数组Array[4][6],并纵向移动染色体的位置。所述二维数组,如下所示:32167218301994315231222842033251302082421840271631933121655第一、三、五列分别向上循环偏移0,201,200,第二、四、六列分别向下循环偏移160,20,41。偏移结果如下所示:32167222301995515231208842034351301932421832271632183121640三个关遗传算法的操作完成时,运用本发明产生的加密的数据为32,167,222,30,199,55,15,231,208,84,203,43,5,130,193,24,218,32,27,163,218,31,216,40。在加密数据文件的前端加上包含加密算法信息的FLAG数组,即可将加密数据发送到目的节点。以上提到的实施方式,包括关于染色体的移动方式,移动偏移量的大小,数组的补零方式以及布尔运算的定性规定等都是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也可视为本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1