[发明专利]一种数据加密通信方法有效
申请号: | 201611207650.9 | 申请日: | 2016-12-23 |
公开(公告)号: | CN108243001B | 公开(公告)日: | 2019-04-23 |
发明(设计)人: | 黄玉甫;任丽君;曾刚 | 申请(专利权)人: | 中科星图股份有限公司 |
主分类号: | H04L9/16 | 分类号: | H04L9/16;H04L9/08 |
代理公司: | 北京安博达知识产权代理有限公司 11271 | 代理人: | 徐国文 |
地址: | 101399 北京市顺义区临空经济核*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种数据加密通信方法,该方法包括发送节点接收用户提出的数据通信请求;获取本次通信密钥;基于本次通信密钥对数据内容进行加密处理;将经过加密处理后的数据发送到接收节点;该方法能够采用动态密钥机的方式来动态的产生密钥,发送和接收数据的双方无需真正的通信密钥本身,因此,也不存在密钥被破获的问题,此外,通过动态密钥机的方式,每次需要计算新的密钥同时密钥产生方式本身也是动态的,从而保证了数据的安全性。 | ||
搜索关键词: | 通信密钥 密钥 动态密钥 加密处理 数据加密 动态的 数据通信请求 发送节点 接收节点 接收数据 接收用户 密钥产生 数据内容 数据发 通信 发送 保证 | ||
【主权项】:
1.一种数据加密通信方法,所述通信方法应用的数据加密通信系统包括多个发送节点,多条通信路径,密钥机节点,接收节点;发送节点和密钥机节点,密钥机节点和接收节点之间均采用加密通信通道或安全通信通道进行通信连接;其特征在于,该方法包括如下步骤:步骤1:发送节点接收数据通信任务及其对应的任务优先级TaskPr;具体为:发送节点从任务中获取任务优先级TaskPr,以及每个待通信数据文件名称及其存储位置;获取待通信数据的类型数目nt,为每种数据类型分别创建子任务T1~Tnt,每个子任务负责采集一种类型的数据,子任务用于基于存储位置和数据文件名称查找到相应类型的数据文件,采集该类型的数据文件,并将该类型的所有数据文件按照文件名称进行排序,将排序后的数据文件进行组合,组合后形成该类型的数据文件组合;每个子任务保存该子任务包含的文件名称和该文件的大小之间的对应关系;步骤2:发送节点计算每个子任务优先级;具体为:计算每个子任务采集的数据文件的优先级,计算每个优先级等级的文件数目,根据下述公式(1)计算该子任务的优先级Tpri;其中,k为第k个优先权等级,Wk为第k优先权等级对应的权重系数,PLk表示第k个优先权等级对应的文件数目;Tpri=TaskPr×(∑Wk×PLk/ΣPLk)公式(1);步骤3:发送节点按照优先级顺序分别对每个子任务进行调度:具体为,将所有子任务设置为就绪状态,并按照优先级从大到小的顺序排序,将排序后的子任务交由调度单元进行调度;调度单元为发送节点内所包含的单元;调度单元将子任务按照其优先级放入调度队列中进行统一的调度;调度列表是针对所有任务对应的所有子任务进行统一的调度,在子任务进入调度列表后其调度顺序会发生改变,所有子任务的优先级需要和已经进入调度列表的其他子任务的优先级进行比较后重新进行排序;通过设置任务优先级的方式来调整该任务对应的所有子任务的优先级,当将任务的优先级设置为足够大时,使得该任务对应的所有的子任务均处于调度列表的前部;当系统存在子任务调度可用资源时,调度单元从调度队列头部获取第一个子任务进行调度;被调度的子任务将执行后续具体的数据通信处理:通过子任务的方式使得所有的数据通信任务均按照其优先级的顺序有序完成;对于高优先级的任务即使晚进入队列也会得到优先的处理;步骤4:发送节点子任务基于随机数计算数据加密密钥K1:具体为,获取随机数S1,S2,S3,基于该随机数S1~S3和该子任务数据类型从密钥机节点获取密钥机本;基于随机数S1~S3和密钥机本,采用公式(2)计算本次数据加密密钥K1,其中,在参与计算时,用S3代表的运算替代S3;
其中,S1和S2的取值范围是1~N,S3的值为0~3之间,S3=0~3分别标识加法、乘法、减法、mod除法运算,其中N为预设值,该预设值需要定期的同时在发送节点和接收节点作更新;该预设值保存在密钥机节点中;C1~Cx是从密钥机本的位置P1~Px处获取的数据值;其中,x采用下述公式(3)计算得到;Pj采用下述公式(4)计算得到;Lall为密钥机本数据的总长度;公式(4)中的除法“/”为整除,i是数据值C的编号,j为位置P的编号;x=|N+S1+S2|‑|N‑S1‑S2|公式(3)
Pj=(j×P1)mod Lall公式(4)当密钥机本为二进制表示时,该数据值为从位置P开始的8或16或32或64位数据值;步骤5:发送节点子任务采用密钥对数据进行加密处理:具体为,判断密钥数值K1大小,根据下述不同密钥值采用不同的加密方式:(A)当密钥0<=K1<TK1时,采用循环移位加密方式,将数据采用左/右移动K1次的方式进行加密;(B)当密钥TK1<=K1<TK2时,采用替换方式加密,将数据的第mK1位置的数据值替换为默认值None或0,并将替换掉的所有第mK1位置的数据值保存到替换表中,将该替换表的数据区分的按顺序放置在数据的结尾处;(C)当密钥TK2<=K1<TK3时,采用分块交换方式加密;将数据分为大小为K1的数据块,从第一个数据块开始,2个数据块分为一组,对于组内相邻的两块Block和Block+1,将Block的第一个数据值和Block+1的倒数第一个数据值作交换,将Block的第二个数据值和Block+1的倒数第二个数据值作交换,直到Block和Block+1的所有数据值均交换完毕为止;如果组内只有一个数据块,或者组内任一个数据块的大小不足K1,则不对该组作交换加密;(D)当密钥K1>=TK3时,采用填充加密方式,每隔K1个数据长度,填充预定的值序列;该预定的值序列是预定子序列的重复;在加密中使用的随机数S1,S2,S3前后均填充特殊数值序列后形成第一预设长度的特殊数据块,将该第一预设长度的特殊数据块可区分的添加在数据的头部;其中,TK1~TK3和密钥机本关联保存在密钥机节点中;步骤6:发送节点子任务对加密后的数据进行数据校验处理:具体为:将加密后的数据分块,每块的大小为(S1×S2),对于大小不足(S1×S2)的数据块,数据块结尾用默认值填充,得到数据块Block1~Blockball,其中,ball为数据块的总块数;计算每个数据块的签名值Sig1~Sigball,将该签名值的组作为该数据的校验值序列;将该校验值序列可区分的放置在该数据的头部;单独对随机数S1,S2,S3所在的第一预设长度的特殊数据块计算数据签名;并将该数据签名放在签名序列的第一位置;步骤7:发送节点子任务对数据进行压缩处理:具体为:判断该数据对应的数据类型,基于数据类型选择最优压缩算法,对该数据进行压缩;根据数据的类型选择适应的压缩算法;预存数据类型及其对应的最优压缩算法,通过查询该对应关系获取所要采用的压缩算法;步骤8:发送节点子任务选择最优通信路径进行数据通信:具体为:将子任务对应的数据进行组包处理,获取发送节点到接收节点的所有数据通信路径集合;选取QOS值最高的数据通信路径对组包后形成的数据包进行数据通信;其中路径PTHi对应的QOSi值的采用公式(5)计算得到;其中,PTH_TSi为路径i的通信开销;PTH_SFi为路径i的安全级别;PTH_MSi为路径i的通信质量;QOSi=PTH_TSi/∑PTH_TSi+PTH_SFi/∑PTH_SFi+PTH_MSi/∑PTH_MSi公式(5)通过综合考量数据通信路径的服务质量,选择最优的数据通信路径进行子任务对应数据包的通信;步骤9:接收节点接收发送节点发送的数据包,提取数据包中的数据,对提取的数据进行解压缩,具体的:根据压缩类型选择相应的解压缩算法对数据包进行解压缩;步骤10:接收节点从数据的头部获取校验值序列,从第一预设长度的特殊数据块中提取S1,S2,S3值对数据进行分块,对每个数据块进行数据校验,在数据校验完毕后,根据数据块校验失败率决定是否请求重新发送数据;当校验失败率超过第一失败阈值时,给发送节点发送校验失败消息,请求发送节点重新进行数据的发送;否则,丢弃失败数据块包含的数据,并对该数据所在的区域填充指定数据值;第一失败阈值根据数据的类型以及用户指定来设定;步骤11:接收节点根据随机数S1~S3计算数据加密密钥K1并进行解密;具体为:采用和发送节点类似的方式计算加密密钥K1,基于该密钥值K1采用和发送节点对应的解密方式进行解密处理;步骤12:接收节点完成对同一任务对应的所有子任务对应的数据的接收、校验、解密后,对这些数据进行拼接组合,并对发送节点发送接收完成消息。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科星图股份有限公司,未经中科星图股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201611207650.9/,转载请声明来源钻瓜专利网。