一种多节点间的通信加密方法技术

技术编号:15289138 阅读:231 留言:0更新日期:2017-05-10 15:34
本发明专利技术公开了一种多节点间的通信加密方法,多节点中的每个节点都有一个属于自己的密钥,每个密钥包括两项<KeyID,Key>,其中KeyID是Key的唯一标识,所述通信加密方法包括以下过程:S1,查找自己的Key及压缩算法,压缩加密数据形成Body;S2,把使用的Key对应的KeyID和压缩ID放到Header;S3,合并Header和Body发送数据;S4,通信传送[Header,Body];S5,定位Header和Body,找到KeyID和压缩ID;S6,找到相应的Key和压缩算法,解密解压Body,得到正常信息;该方法安全性高,密钥定期更新,协商过程采用非对称加密。

Communication encryption method among multiple nodes

The invention discloses a multi node communication between the encryption method, each node in the node has one key, each key includes two < KeyID, Key> KeyID, which is the only sign of Key, the communication encryption method comprises the following steps: S1, find their own Key and the compression algorithm, compression and encryption of data form Body; S2, corresponding to Key using KeyID and ID to S3, Header compression; combination of Header and Body to send data; S4, Body]; S5, [Header communications, Header positioning, and Body, KeyID and ID find S6, find the corresponding compression; Key and compression algorithm, decryption decompression Body, get the normal information; the method has high security, key update, negotiation process using asymmetric encryption.

【技术实现步骤摘要】

本专利技术属于加密通信
,尤其涉及一种多节点间的通信加密方法
技术介绍
加密通信在很多领域都有使用,而且在云时代使用的更多,目前的加密通信大部分是单播,密钥的更新一般在节点启动时进行。而对于分布式通信的多节点而言,广播通信很常见,密钥定期更新对安全性很重要。但是目前多节点间的加密通信存在以下问题:没有多节点间密钥更换策略;密钥更新时间长,在节点重启时更新,安全性降低;没有很好的广播通信加密方式;不能很好的处理缓存数据,不论广播还是单播。因此,需要一种新的通信加密技术来避免上述缺陷的产生。
技术实现思路
针对现有技术的不足,本专利技术提供一种多节点间的通信加密方法,适合于多节点间单播通信,广播通信并能够定期更新密钥的加密通信方案;这种加密通信方案的实现,不需要针对广播和单播单独设计加密方式,也不需要担心未处理的消息以及更新密钥的同步问题,通过加密数据结构轻松解决上面问题;密钥协商过程通过实现接口和完成相应的状态转换自定义协商过程。压缩加密过程也可以通过自定义类进行切换,以达到更高的安全级别通过设置压缩策略可以在加密的同时压缩数据,节省流量,通过选择压缩策略在压缩时间和压缩比上进行权衡。一种多节点间的通信加密方法,多节点中的每个节点都有一个属于自己的密钥,每个密钥包括两项<KeyID,Key>,其中KeyID是Key的唯一标识,所述通信加密方法包括以下过程:S1,查找自己的Key及压缩算法,压缩加密数据形成Body;S2,把使用的Key对应的KeyID和压缩ID放到Header;S3,合并Header和Body发送数据;S4,通信传送[Header,Body];S5,定位Header和Body,找到KeyID和压缩ID;S6,找到相应的Key和压缩算法,解密解压Body,得到正常信息。所述节点在通信时,包装原有正常通信消息如下:[Header,Body],其中Header是加密的消息头,包括消息压缩加密的元数据信息,Body是压缩加密后的消息内容,然后通过底层通信模块把消息发送到对方,接收节点先解析出Header,根据Header找到压缩算法和Key,从而解密解压消息。优选地,所述通信加密方法的通信系统中设置有密钥中心Controller,用于为节点生成密钥,生成过程通过协商交互生成。优选地,Controller定期更新自己的密钥,不用和其他节点协商,更新完成后使用旧密钥加密密钥广播通知各节点。优选地,当节点发现无法根据KeyID获取key时,先用自己的公钥加密索取信息,索取信息包括节点身份、KeyID和节点的密钥信息,发送到密钥中心,然后密钥中心用私钥解密,验证节点身份,根据KeyID查找密钥信息,然后用节点密钥信息加密返回给节点(返回路径由Controller根据特定规则生成),节点接收到后解密获取密钥。优选地,每密钥更新完后,把密钥信息保存到磁盘、db或者文件中,重启后从磁盘加载密钥信息,同时还会协商新密钥,如果此时有未读消息且使用老密钥加密,那么就可以使用之前保留的密钥解密,否则使用新密钥解密。本专利技术的技术方案具有以下有益效果:本专利技术提供的一种多节点间的通信加密方法,该方法安全性高,密钥定期更新,协商过程采用非对称加密;加解密速度快:协商采用非对称加密,但是正常消息通信采用对称加密;结构清晰:各节点都有自己密钥,消息是以[Header,Body]自描述的形式存在,使得广播,单播的处理方式统一,密钥更新简单;通用性高,对于多节点间的通信不论基于消息队列通信,还是socket,netty等及时通信,都很好适配;节省带宽,通过压缩数据,可以有效减少数据体积,节省带宽。附图说明下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。图1为本专利技术一种多节点间的通信加密方法中节点和密钥关系图;图2为本专利技术一种多节点间的通信加密方法的过程示意图;图3为本专利技术一种多节点间的通信加密方法的密钥协商流程图;图4为本专利技术一种多节点间的通信加密方法的节点更新密钥图;图5为本专利技术一种多节点间的通信加密方法的解密旧消息示意图。具体实施方式为了清楚了解本专利技术的技术方案,将在下面的描述中提出其详细的结构。显然,本专利技术实施例的具体施行并不足限于本领域的技术人员所熟习的特殊细节。本专利技术的优选实施例详细描述如下,除详细描述的这些实施例外,还可以具有其他实施方式。下面结合附图和实施例对本专利技术做进一步详细说明。结合图1和图2,本实施例公开了一种多节点间的通信加密方法,多节点中的每个节点都有一个属于自己的密钥,每个密钥包括两项<KeyID,Key>,如图1所示,其中KeyID是Key的唯一标识,所述通信加密方法包括以下过程,如图2所示:S1,查找自己的Key及压缩算法,压缩加密数据形成Body;S2,把使用的Key对应的KeyID和压缩ID放到Header;S3,合并Header和Body发送数据;S4,通信传送[Header,Body];S5,定位Header和Body,找到KeyID和压缩ID;S6,找到相应的Key和压缩算法,解密解压Body,得到正常信息。所述节点在通信时,包装原有正常通信消息如下:[Header,Body],其中Header是加密的消息头,包括消息压缩加密的元数据信息,Body是压缩加密后的消息内容,然后通过底层通信模块把消息发送到对方,接收节点先解析出Header,根据Header找到压缩算法和加密KeyID,从而解密解压消息。基于这种理念,广播和单播不用区分,因为目的节点都是根据Header来找到KeyID和压缩算法来解密数据。因为加密消息都是自描述的,从而更新密钥也很简单,这里可以把老密钥保留足够长时间,而不影响新密钥的使用。上述方法的数据结构包括密钥数据结构和消息数据结构密钥数据结构:各节点维护其他节点密钥的数据结构,用于根据KeyID查找Key,以及更新密钥时使用:Map<String,String>node2Keyid:节点到KeyID的映射;Map<String,String>keymap:KeyID到Key的映射;LoadingCache<String,String>oldKey:存放节点新密钥之前旧密钥,以<node1_1,keyid>,<node1_2,keyid>,<node2_1,keyid>的形式存放;将设置超时时间其中loadingCache类似map,另外可以设置超时时间,超时项将被删除。消息数据结构:消息Message的结构[Header,Body],消息是字节数组,其中Header是消息头,Body是压缩加密后的消息体。Header包括以下字段:[Magic,Version,Length,KeyID,CompressID]Magic用于表示该消息是经过加密压缩的消息,由四个字节组成;Version是版本,用于以后升级;Length表示消息头的长度,用于区分消息头和消息体,另外它易于在后期扩展头部;KeyID是加密使用的Key的唯一标识,用于查找Key,解密数据;CompressID是压缩算法的标识,用于定位压缩算法解压数据;密钥的维护包括密钥协商和密钥索取:密钥协商:如图本文档来自技高网...
一种多节点间的通信加密方法

【技术保护点】
一种多节点间的通信加密方法,多节点中的每个节点都有一个属于自己的密钥,每个密钥包括两项<KeyID,Key>,其中KeyID是Key的唯一标识,其特征在于,所述通信加密方法包括以下过程:S1,查找自己的Key及压缩算法,压缩加密数据形成Body;S2,把使用的Key对应的KeyID和压缩ID放到Header中;S3,合并Header和Body发送数据;S4,通信传送[Header, Body];S5,定位Header和Body,找到KeyID和压缩ID;S6,找到相应的Key和压缩算法,解密解压Body,得到正常信息;所述节点在通信时,包装原有正常通信消息如下:[Header, Body],其中Header是加密的消息头,包括消息压缩加密的元数据信息,Body是压缩加密后的消息内容,然后通过底层通信模块把消息发送到对方,接收节点先解析出Header,根据Header找到压缩算法和加密KeyID,从而解密解压消息。

【技术特征摘要】
1.一种多节点间的通信加密方法,多节点中的每个节点都有一个属于自己的密钥,每个密钥包括两项<KeyID,Key>,其中KeyID是Key的唯一标识,其特征在于,所述通信加密方法包括以下过程:S1,查找自己的Key及压缩算法,压缩加密数据形成Body;S2,把使用的Key对应的KeyID和压缩ID放到Header中;S3,合并Header和Body发送数据;S4,通信传送[Header,Body];S5,定位Header和Body,找到KeyID和压缩ID;S6,找到相应的Key和压缩算法,解密解压Body,得到正常信息;所述节点在通信时,包装原有正常通信消息如下:[Header,Body],其中Header是加密的消息头,包括消息压缩加密的元数据信息,Body是压缩加密后的消息内容,然后通过底层通信模块把消息发送到对方,接收节点先解析出Header,根据Header找到压缩算法和加密KeyID,从而解密解压消息。2.根据权利要求1所述的多节点间的通信加密方法,其特征在于,...

【专利技术属性】
技术研发人员:李炳梁
申请(专利权)人:用友网络科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1