一种基于密钥传输设备的加密方法与流程

文档序号:17725414发布日期:2019-05-22 02:28阅读:138来源:国知局
一种基于密钥传输设备的加密方法与流程
本发明涉及通信加密
技术领域
,尤其涉及一种基于密钥传输设备的加密方法。
背景技术
:随着互联网飞速发展,越来越多人喜欢在网上进行信息交流活动(如网络支付、语音聊天、信息浏览等等),因此如何保障信息传输的安全就体现得尤为重要,而保障这些信息的安全就需要好的加密方法。本加密方法介绍如何对数据进行加解密,通过对数据加密确保信息安全,降低敌方破解加密数据的风险。现有加密方法主要分为对称加密和非对称加密方法,现有技术具有如下缺点:1、现有加密技术传输的密文都是有用数据,没有数据欺骗性。2、在现有的对称加密算法中,同一数据通过加密生成的密文是一样的。敌人截获密文后根据多个密文数据,对密文数据进行规律统计、密文数据分析,很容易完成对密文数据的解密破解,这样就加大了密文数据破解的风险。3、在现有加密技术中,密钥传输时密文数据分布位置是固定的,比如数据a始终分布在固定位置2到32字节,数据b始终分布在固定位置36到47字节,这样就提高了密文破解几率。技术实现要素:本发明所要解决的技术问题是:针对上述存在的问题,提供一种基于密钥传输设备的加密方法。本发明采用的技术方案如下:一种基于密钥传输设备的加密方法,所述加密方法具体包括以下步骤:步骤1:生成x组基础密钥k0,分别为基础密钥k00到基础密钥k0x-1;产生一个整数a,对a整除x取余,余数为b,通过余数b选择基础密钥k0b对传输密钥k1加密生成密文y1,所述传输密钥k1是通过随机算法生成的无用密钥;步骤2:根据传输密钥k1的第一个字节k1-byte0的奇偶性选择不同的加密方法对操作密钥k2加密生成密文y2,操作密钥k2通过密钥生成器生成,操作密钥k2为密钥接收方所需要的密钥数据;步骤3:先对密文y1的第b个字节到第m-1个字节进行异或运算,得到运算结果temp,通过对运算结果temp、密文y1和密文y2进行异或运算,得到密文y3;步骤4:通过对整数a进行处理,得到变量position数据,再根据position数据的奇偶性选择不同的组装方式,最后进行数据封装,得到要传输给密钥接收方的数据包。进一步地,所述x组基础密钥存放在密钥传输方和密钥接收方系统中;所述整数a通过随机算法产生,长度为4字节;所述基础密钥k0、传输密钥k1均为m个字节的数据,所述m>b。进一步地,所述m为52。进一步地,整数a整除m求余,得到求余结果c;所述0≤n≤m-1,n为从零到m-1依次取值的整数。进一步地,所述步骤2具体包括:步骤21:发起方的密钥生成器根据系统用户需求生成操作密钥k2,所述操作密钥k2为m个字节的数据,密文y2的字节个数为2*m;步骤22:若传输密钥k1的第一个字节k1-byte0为奇数,则操作密钥k2密文数据依次对应在密文y2数据的奇数位字节,密文y2的偶数位字节数据用随机数据填写;若传输密钥k1的第一个字节k1-byte0为偶数,则操作密钥k2密文数据依次对应在密文y2数据的偶数位字节,密文y2的奇数位字节数据用随机数据填写。进一步地,所述传输密钥k1操作密钥k2加密生成密文y2的具体方法为:将传输密钥k1的所有奇数位字节进行异或运算得到结果p奇,将传输密钥k1的所有偶数位字节进行异或运算得到结果p偶:当m为偶数时:当m为奇数时:若传输密钥k1的第一个字节k1-byte0为奇数,操作密钥k2的每个字节分别与p奇进行异或运算,得到操作密钥k2每个字节的加密密文,再将操作密钥k2的m个字节密文数据依次存储到密文y2的对应的奇数位,密文y2的偶数位填入无用的随机数据,用于数据欺骗;密文y2计算过程如下:y2-byte(2n)=任意随机数;0≤n≤m-1若传输密钥k1的第一个字节k1-byte0为偶数,操作密钥k2的每个字节分别与p偶进行异或运算,得到操作密钥k2每个字节的加密密文,再将操作密钥k2的n个字节密文数据依次存储到密文y2的对应的偶数位,密文y2的奇数位填入无用的随机数据,用于数据欺骗;密文y2计算过程如下:y2-byte(2n+1)=任意随机数;0≤n≤m-1最终得到密文y2。进一步地,所述步骤3的具体方法为:密文y3的字节个数为2*m个,从密文y1的第b个字节开始一直到y1的第m-1个字节进行异或运算,得到结果temp,所述b为步骤1中的余数b;加密密文y3的具体计算过程如下:进一步地,所述步骤4的具体过程为:将整数a右移8位,再按位与上0x000000ff,得到变量position数据,即position=(a>>8)&0x000000ff;若position为奇数,密文数据组装顺序依次为整数a、密文y1、密文y3,若position为偶数,则密文数据组装顺序依次为整数a、密文y3、密文y1;检查组装后的密文中所有数据,将密文中出现的每一个字节0x7e转变成2字节序列,若密文中出现0x7d的字节,则将其转变成2字节序列,得到密文数据y3_temp;计算密文数据y3_temp的长度,长度为length_temp,最后封装为2个字节的头0x7e0x7e、2个字节的数据总长度length_all、数据密文y3_temp和2字节的尾0x7e0x7e,最后得到要传输给密钥接收方的transport_data数据包,所述总长度length_all包括2字节的头、2字节的尾、长度length_temp和length_all自身的长度。与现有技术相比,采用上述技术方案的有益效果为:(1)本发明在密钥生成与加密的过程中,加入了随机扰动数据和传输密钥,导致同一个数据每次加密产生的密文不同,本方案加密产生的密文具有数据欺骗性,增加了密文破译难度。(2)本发明在数据加密后密文数据分布位置离散,在数据组装时密文数据包位置也不固定,因此本发明密文数据分布具有离散、位置分布不固定等优势,增加了敌方破译密码的难度。附图说明图1本发明的总体加密方法流程图;图2为本发明实施例中步骤1的加密流程图;图3为本发明实施例中步骤2的加密流程图;图4为本发明实施例中步骤3的加密流程图;图5为本发明实施例中步骤4的数据组装流程图。具体实施方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。下面结合附图对本发明做进一步描述。如图1所示,一种基于密钥传输设备的加密方法,所述加密方法具体包括以下步骤:步骤1:生成x组基础密钥k0,分别为基础密钥k00到基础密钥k0x-1;产生一个整数a,对a整除x取余,余数为b,通过余数b选择基础密钥k0b对传输密钥k1加密生成密文y1,所述传输密钥k1是通过随机算法生成的无用密钥;步骤2:根据传输密钥k1的第一个字节k1-byte0的奇偶性选择不同的加密方法对操作密钥k2加密生成密文y2,操作密钥k2通过密钥生成器生成,操作密钥k2为密钥接收方所需要的密钥数据;步骤3:先对密文y1的第b个字节到第m-1个字节进行异或运算,得到运算结果temp,通过对运算结果temp、密文y1和密文y2进行异或运算,得到密文y3;步骤4:通过对整数a进行处理,得到变量position数据,再根据position数据的奇偶性选择不同的组装方式,最后进行数据封装,得到要传输给密钥接收方的数据包。在一个优选实施例中,所述x组基础密钥存放在密钥传输方和密钥接收方系统中;所述整数a通过随机算法产生,长度为4字节;所述基础密钥k0、传输密钥k1均为m个字节的数据,所述m>b。在一个优选实施例中,密钥生成器1生成基础密钥k0,密钥生成器2生成传输密钥k1,密钥生成器3生成操作密钥k3,k1是无用密钥,k1是用来迷惑敌方的密钥;k2是接收方真正需要的密钥。针对不同的用户k2是不同的,比如k2的长度不同、数据意义不同等特点。在一个优选实施例中,所述m为52。在一个优选实施例中,整数a整除m求余,得到求余结果c;所述0≤n≤m-1,n为从零到m-1依次取值的整数。在一个优选实施例中,所述步骤2具体包括:步骤21:发起方的密钥生成器根据系统用户需求生成操作密钥k2,所述操作密钥k2为m个字节的数据,密文y2的字节个数为2*m;步骤22:若传输密钥k1的第一个字节k1-byte0为奇数,则操作密钥k2密文数据依次对应在密文y2数据的奇数位字节,密文y2的偶数位字节数据用随机数据填写;若传输密钥k1的第一个字节k1-byte0为偶数,则操作密钥k2密文数据依次对应在密文y2数据的偶数位字节,密文y2的奇数位字节数据用随机数据填写。在一个优选实施例中,所述传输密钥k1操作密钥k2加密生成密文y2的具体方法为:将传输密钥k1的所有奇数位字节进行异或运算得到结果p奇,将传输密钥k1的所有偶数位字节进行异或运算得到结果p偶:当m为偶数时:当m为奇数时:若传输密钥k1的第一个字节k1-byte0为奇数,操作密钥k2的每个字节分别与p奇进行异或运算,得到操作密钥k2每个字节的加密密文,再将操作密钥k2的m个字节密文数据依次存储到密文y2的对应的奇数位,密文y2的偶数位填入无用的随机数据,用于数据欺骗;密文y2计算过程如下:y2-byte(2n)=任意随机数;0≤n≤m-1若传输密钥k1的第一个字节k1-byte0为偶数,操作密钥k2的每个字节分别与p偶进行异或运算,得到操作密钥k2每个字节的加密密文,再将操作密钥k2的n个字节密文数据依次存储到密文y2的对应的偶数位,密文y2的奇数位填入无用的随机数据,用于数据欺骗;密文y2计算过程如下:y2-byte(2n+1)=任意随机数;0≤n≤m-1最终得到密文y2。在一个优选实施例中,所述步骤3的具体方法为:密文y3的字节个数为2*m个,从密文y1的第b个字节开始一直到y1的第m-1个字节进行异或运算,得到结果temp,所述b为步骤1中的余数b;加密密文y3的具体计算过程如下:在一个优选实施例中,所述步骤4的具体过程为:将整数a右移8位,再按位与上0x000000ff,得到变量position数据,即position=(a>>8)&0x000000ff;若position为奇数,密文数据组装顺序依次为整数a、密文y1、密文y3,若position为偶数,则密文数据组装顺序依次为整数a、密文y3、密文y1;检查组装后的密文中所有数据,将密文中出现的每一个字节0x7e转变成2字节序列,若密文中出现0x7d的字节,则将其转变成2字节序列,得到密文数据y3_temp;计算密文数据y3_temp的长度,长度为length_temp,最后封装为2个字节的头0x7e0x7e、2个字节的数据总长度length_all、数据密文y3_temp和2字节的尾0x7e0x7e,最后得到要传输给密钥接收方的transport_data数据包,所述总长度length_all包括2字节的头、2字节的尾和长度length_temp。所述总长度length_all包括2字节的头、2字节的尾、长度length_temp和length_all自身的长度在一个优选实施例中,如图2所示,所述步骤1的具体过程为:步骤11:生成了10组基础密钥k0,分别是基础密钥k00到基础密钥k09,这10组基础密钥都存放在密钥传输方和密钥接收方系统中。传输密钥k1是通过算法生成的无用密钥,k1是用来迷惑敌方的密钥。系统规定基础密钥k0与传输密钥k1都是52个字节的数据。当然基础密钥k0与传输密钥k1也可以是其它任意字节的数据,所以k0与k1的数据长度具有可扩展性;步骤12:利用随机算法,产生一个长度为4个字节的整数a,整数a的数据格式如表1所示,对a整除10取余,余数为b(b为大于等于0小于等于9的整数),通过b确定采用k0b条基础密钥对传输密钥k1进行加密产生密文y1,其中y1为52个字节的密文数据。当然y1的长度是根据k0与k1设计的长度以及k0对k1加密所采用的加密算法确定的;表1a数据格式byte0-abyte1-abyte2-abyte3-a步骤13:完成k0b基础密钥对传输密钥k1(欺骗密钥)的加密。k1是通过密钥产生器生成的52个字节随机数据,k0b、k1和y1都是52个字节,其数据格式见表2、表3和表4。计算a整除52求余到结果c,(c为大于等于0小于等于51的整数)。通过k0对k1加密计算,得到52个字节的密文数据y1,具体计算方法如下:(说明:0≤n≤51)表2传输密钥k1数据格式k1-byte0k1-byte1k1-byte2…k1-byte51表3基础密钥k0b数据格式k0b-byte0k0b-byte1k0b-byte2…k0b-byte51表4密文y1数据格式y1-byte0y1-byte1y1-byte2…y1-byte51如图3所示,所述步骤2的具体过程为:步骤21:操作密钥k2是密钥接收方所需要的密钥数据,系统中所有的加密都是为了操作密钥k2不被破解。系统规定操作密钥k2为52个字节,操作密钥k2通过密钥生成器软件生成。操作密钥k2是密钥发送方根据系统用户需求生成的密钥,传输密钥k2的数据格式见表5。表5操作密钥k2数据格式k2-byte0k2-byte1k2-byte2…k2-byte51步骤22:依据步骤13中传输密钥k1,通过传输密钥k1对操作密钥k2加密生成密文y2,传输密钥k1、操作密钥k2为52个字节,y2为104个字节密文数据,具体加密过程如下所述。如果传输密钥k1的第一个字节k1-byte0为奇数,则操作密钥k2加密的密文数据依次对应在密文y2数据的奇数位字节,其偶数位字节数据用随机数据填写;如果传输密钥k1的第一个字节k1-byte0为偶数,则操作密钥k2加密的密文数据对应在密文y2数据的偶数位字节,其奇数位字节数据用随机数据填写。这种密文填写方式使密钥数据和无用数据交叉混合,生成的密文y2具有欺骗性,即使被截获后密钥破解难度也非常大。具体加密方法如下:(a)把传输密钥k1的所有奇数位字节进行异或运算得到结果p奇,把传输密钥k1的所有偶数位字节进行异或运算得到结果p偶,(b)如果传输密钥k1的第一个字节k1-byte0为奇数;通过操作密钥k2的每个字节分别与p奇进行异或运算,得到操作密钥k2每个字节的加密密文,同时将操作密钥k2的52个字节密文数据依次存储到密文y2对应的奇数位。密文y2的偶数位填入无用的随机数,用于数据欺骗。密文y2密文计算过程如下:(说明:0≤n≤51)y2-byte(2m)=任意随机数;(说明:0≤m≤51)(c)如果传输密钥k1的第一个字节k1-byte0为偶数;通过操作密钥k2的每个字节分别与p偶进行异或运算,得到操作密钥k2每个字节的加密密文,同时将操作密钥k2的52个字节密文数据依次存储到密文y2对应的偶数位。密文y2的奇数位填入无用的随机数,用于数据欺骗。y2密文计算过程如下:(说明:0≤n≤51)y2-byte(2m+1)=任意随机数;(说明:0≤m≤51)(d)通过上述计算最终得到了y2密文数据表6密文y2数据格式y2-byte0y2-byte1y2-byte3…y2-byte103如图4所示,所述步骤3的具体过程为:通过步骤1和步骤2,我们得到了数据a(a整除10的余数b为当前密钥接收方和密钥发送方选用k0b条基础密钥对k1进行加密)、密文数据y1和密文数据y2以及传输密钥k1和操作密钥k2。完成密文y1对密文y2加密生成最终密文y3,密文y3的数据格式见表7,密文y3为104个字节密文数据,密文y1对密文y2加密产生密文y3流程如下:表7密文y3数据格式y3-byte0y3-byte1y3-byte3…y3-byte103(a)根据步骤12得到的余数b;(b)从密文y1的第b个字节开始一直到密文y1的第51个字节进行异或运算,得到结果temp,(c)通过加密计算,得到密文y3,密文y3的计算过程如下:(说明:0≤n≤51)(说明:52≤m≤103)如图5所示,所述步骤4的具体过程为:步骤41:通过上述步骤1、步骤2和步骤3,得到了整数a、密文数据y1、密文数据y2和密文数据y3。步骤42:将数据a右移8位再按位与上0x000000ff,得到变量position数据,position=(a>>8)&0x000000ff,当position为奇数,则报文数据组装结果依次为整数a、密文y1、密文y3,见表8。当position为偶数,则报文数据组装结果依次为整数a、密文y3、密文y1,见表9。表8position为奇数时报文组装后格式表9position为偶数时报文组装后格式步骤43:数据封装,检查图2或者图3报文中所有数据,将报文中出现的每一个字节0x7e转变成2字节序列(0x7d,0x5e);若报文数据中出现一个0x7d的字节,则将其转变成2字节序列(0x7d,0x5d)。得到报文数据y3_temp。步骤44:计算报文数据y3_temp长度为length_temp,最终封装为两个字节的头0x7e0x7e、两个字节的数据总长度length_all、数据y3_temp和两个字节的尾0x7e0x7e。最后得到要传输给密钥接收方的transport_data数据包。所述总长度length_all包括2字节的头、2字节的尾、长度length_temp和length_all自身的长度本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。如果本领域技术人员,在不脱离本发明的精神所做的非实质性改变或改进,都应该属于本发明权利要求保护的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1