一种加密通信方法与流程

文档序号:23946004发布日期:2021-02-18 13:30阅读:87来源:国知局
一种加密通信方法与流程

[0001]
本发明涉及通信安全技术领域,尤其涉及一种加密通信方法。


背景技术:

[0002]
20世纪以来随着计算机技术的发展,网络传输技术已经成为工业、农业以及国防等领域的重要信息传递手段,并逐渐开始进入到社会的其他各个领域。随着网络逐渐渗透到人们的生活、工作以及娱乐等各方面,网络传输过程中的信息安全问题也日益成为了大家关注的热点。为了提高用户信息在网络传输中的安全性,网络传输数据加密技术逐渐成为大家的研究热点。目前比较常用的数据加密技术包括数字签名认证、个人身份认证以及电子印章等。虽然通过这些方法我们已经能够实现比较安全的网络数据环境,但是依然还是会出现数据被盗取、网站被黑客攻击的事件。
[0003]
目前计算机网络数据传输加密方法中应用较多的为端到端加密方法,端到端加密方式就是在数据传输的过程中始终是以密文的形式从发送端到接收端。因此,可以对数据传输进行全过程的保护。在无线网络数据加密传输中,一般都是对应用层的用户数据进行加密。应用层的用户数据包括数据头和数据体两个部分,其中数据头中包含与数据体相关的一些重要信息,例如,版本号、数据长度以及数据类型等信息。目前对用户数据进行加密时大都只对数据体进行加密,而对包含与数据相关的一些重要信息的数据头并没有进行加密。此时若出现黑客攻击或者是字段篡改等非法行为,则黑客将能截取或者修改与用户数据有关的一些重要信息。例如,在数据头未加密的情况下,此时若黑客截取到了数据头中的信息,则其可能会向接收端发送一些与正常数据体具有相同数据头的一些垃圾信息,占用数据传输资源从而导致业务失败。若是对数据头进行加密,则会出现接收方无法确定数据体数据长度,无法确定密文大小以及何时开始解密的问题。


技术实现要素:

[0004]
本发明主要现有加密方案只对数据体加密,不对数据体进行加密,导致黑客能够通过截取数据头影响业务,对数据头加密则会应该通信业务的问题,提供一种通过设置虚拟数据头,且虚拟数据头会进行实时变化的加密通信方法。
[0005]
本发明解决其技术问题所采用的技术方案是,一种加密通信方法,用于第一客户端与第二客户端之间相互通信,其特征是:包括第一客户端首次信息发送加密方法、第二客户端首次信息接收解密方法、第二客户端信息回复加密方法和第一客户端首次信息接收解密方法,所述第一客户端首次信息发送加密方法包括以下步骤:s01:向各个客户端发送心跳信号,根据各个客户端响应心跳信号的顺序进行排序并告知各个客户端的排序号;s02:生成第一虚拟数据头并改写原始数据头;改写原始数据头时,将原始数据头的奇数位替换为目标客户端的排序号的二进制数,将原始数据头的偶数位替换为源客户端的排序号的二进制数;
s03:以改写的原始数据头为数据头,以第一虚拟数据头为数据体生成第一用户数据;s04:根据第一虚拟数据头生成第二虚拟数据头,将第二虚拟数据头加入第一数据接收白名单;s05:建立目标客户端的排序号与第一虚拟数据头和第二虚拟数据头的第一映射关系表并存储;s06:按照预设固定数据大小对第一用户数据进行切包和填充;s07:每个数据包进行加密,生成第一密文并发送;s08:以第一虚拟数据头为数据头,以用户数据输入的数据为数据体生成第二用户数据;s09:对第二用户数据的数据体进行加密得到第三用户数据并发送。
[0006]
在建立通信时,利用排序号确定源客户端和目标客户端,然后以虚拟数据头进行通信,并且每个虚拟数据头只使用一次,防止黑客截取数据头进行攻击;以预设固定数据大小对第一用户数据进行切包和填充,对每个数据包进行加密,使得接收端在接收到预设固定数据大小的数据包时就可以进行解密,避免了因数据头加密而无法确定密文大小以及何时开始解密的问题。
[0007]
作为上述方案的一种优选方案,所述第二客户端首次信息接收解密方法包括以下步骤:s11:对接收到的数据进行筛选,保留数据头和数据体均为密文的第一类型用户数据;s12:对第一类型用户数据进行解密,获取改写后原始数据头和第一虚拟数据头;s13:从改写后的原始数据头中获取目标客户端的排序号和源客户端的排序号,若目标客户端的排序号为本客户端的排序号则保留第一虚拟数据头;s14:建立原客户端的排序号与第一虚拟数据头的第二映射关系表并存储;s15:将第一虚拟数据头加入到第二数据接收白名单,等待接收数据头为第一虚拟数据头的用户数据;s16:接收到数据头为第一虚拟数据头的用户数据后,对该用户数据的数据体进行解密;s17:根据该用户数据的数据头生成第二虚拟数据头并将第二虚拟数据头添加到第二映射关系表中;s18:将第二虚拟数据头加入到第二数据接收白名单中。
[0008]
作为上述方案的一种优选方案,所述第二客户端信息回复加密方法包括以下步骤:s21:以第二虚拟数据头为数据头以第二客户端用户输入信息为数据体生成第四用户数据;s22:对第四用户数据的数据体进行加密得到第五用户数据并发送s23:根据第二虚拟数据头生成第三虚拟数据头;s24:将第三虚拟数据头添加到第二映射关系表和第二数据接收白名单中;s25:在第二数据接收白名单中删除第二虚拟数据头。
[0009]
作为上述方案的一种优选方案,所述第一客户端首次信息接收解密方法,包括以下步骤:
s31:对接收到的数据进行筛选,保留数据头为第二虚拟数据头的用户数据;s32:对该用户数据的数据体进行解密;s33:根据第二虚拟数据头生成第三虚拟数据头;s34:将第三虚拟数据头添加到第一映射关系表和第一数据接收白名单中;s35:在第一数据接收白名单中删除第二虚拟数据头。
[0010]
作为上述方案的一种优选方案,所述虚拟数据头包括版本号、数据长度和数据类型,所述数据长度为与该虚拟数据头组成用户数据的数据体的长度,所述版本号和数据类型根据按照预设规则进行变化。
[0011]
作为上述方案的一种优选方案,所述第一密文通过tcp进行协议传输。
[0012]
作为上述方案的一种优选方案,在第一客户端与第二客户端通信过程中,每一次用户数据通讯都采用不同的数据头。
[0013]
本发明的优点是:以改写后的原始数据头和虚拟数据头组成应用数据进行整体加密后发送给对方,以此建立通信关系,保证原始数据头信息不泄露并能告知对方客户端该源客户端对应的虚拟数据头;建立通信关系后采用虚拟数据头进行通信并虚拟数据头随着信息传输进行变化,能够防止黑客截取数据头进行数据仿冒;以预设固定数据大小对第一用户数据进行切包和填充,对每个数据包进行加密,使得接收端在接收到预设固定数据大小的数据包时就可以进行解密,避免了因数据头加密而无法确定密文大小以及何时开始解密的问题。
附图说明
[0014]
图1为实施例中第一客户端首次信息发送加密方法的一种流程示意图。
[0015]
图2为实施例中第二客户端首次信息接收解密方法的一种流程示意图。
[0016]
图3为实施例中第二客户端信息回复加密方法的一种流程示意图。
[0017]
图4为实施例中第一客户端首次信息接收解密方法的一种流程示意图。
具体实施方式
[0018]
下面通过实施例,并结合附图,对本发明的技术方案作进一步的说明。
[0019]
实施例:本实施例一种基于应用层的加密通信方法,用于第一客户端与第二客户端之间相互通信,包括第一客户端首次信息发送加密方法、第二客户端首次信息接收解密方法、第二客户端信息回复加密方法和第一客户端首次信息接收解密方法,第一客户端首次信息发送加密方法如图1所示,包括以下步骤:s01:向各个客户端发送心跳信号,根据各个客户端响应心跳信号的顺序进行排序并告知各个客户端的排序号;各个客户端的排序号为唯一且固定的排序号,新出现的客户端根据出现的先后顺序排在末尾。
[0020]
s02:生成第一虚拟数据头并改写原始数据头;改写原始数据头时,将原始数据头的奇数位替换为目标客户端的排序号的二进制数,将原始数据头的偶数位替换为源客户端的排序号的二进制数;虚拟数据头包括版本号、数据长度和数据类型,数据长度为与该虚拟数据头组成用户数据的数据体的长度,版本号和数据类型根据按照预设规则进行变化,第
一客户端和第二客户端中存储有相同的规则,即在已知第一虚拟数据头后,第一客户端和第二客户端根据第一虚拟数据头生成的第二虚拟数据头是相同的,实现了两个客户端之间虚拟数据头的同步,为两个客户端之间采用虚拟数据头进行通信提供基础;s03:以改写的原始数据头为数据头,以第一虚拟数据头为数据体生成第一用户数据;s04:根据第一虚拟数据头生成第二虚拟数据头,将第二虚拟数据头加入第一数据接收白名单;s05:建立目标客户端的排序号与第一虚拟数据头和第二虚拟数据头的第一映射关系表并存储;通过第一映射关系表可以确定虚拟数据头对应的原始数据头,便于对通信数据进行存储;s06:按照预设固定数据大小1kb对第一用户数据进行切包和填充;s07:每个数据包进行加密,生成第一密文并通过tcp协议进行发送;第二客户端接收数据为1kb的数据时即可进行解密,实现原始数据头和第一虚拟数据头的加密安全传输,避免出因数据头加密而无法确定密文大小以及何时开始解密的问题;s08:以第一虚拟数据头为数据头,以用户数据输入的数据为数据体生成第二用户数据;s09:对第二用户数据的数据体进行加密得到第三用户数据并发送。
[0021]
如图2所示,第二客户端首次信息接收解密方法包括以下步骤:s11:对接收到的数据进行筛选,保留数据头和数据体均为密文的第一类型用户数据;s12:对第一类型用户数据进行解密,获取改写后的原始数据头和第一虚拟数据头;s13:从改写后的原始数据头中获取目标客户端的排序号和源客户端的排序号,若目标客户端的排序号为本客户端的排序号则保留第一虚拟数据头;s14:建立原客户端的排序号与第一虚拟数据头的第二映射关系表并存储;s15:将第一虚拟数据头加入到第二数据接收白名单,等待接收数据头为第一虚拟数据头的用户数据;s16:接收到数据头为第一虚拟数据头的用户数据后,对该用户数据的数据体进行解密;s17:根据该用户数据的数据头生成第二虚拟数据头并将第二虚拟数据头添加到第二映射关系表中;s18:将第二虚拟数据头加入到第二数据接收白名单中。
[0022]
如图3所示,第二客户端信息回复加密方法包括以下步骤:s21:以第二虚拟数据头为数据头以第二客户端用户输入信息为数据体生成第四用户数据;s22:对第四用户数据的数据体进行加密得到第五用户数据并发送s23:根据第二虚拟数据头生成第三虚拟数据头;s24:将第三虚拟数据头添加到第二映射关系表和第二数据接收白名单中;s25:在第二数据接收白名单中删除第二虚拟数据头。
[0023]
如图4所示,第一客户端首次信息接收解密方法,包括以下步骤:s31:对接收到的数据进行筛选,保留数据头为第二虚拟数据头的用户数据;s32:对该用户数据的数据体进行解密;
s33:根据第二虚拟数据头生成第三虚拟数据头;s34:将第三虚拟数据头添加到第一映射关系表和第一数据接收白名单中;s35:在第一数据接收白名单中删除第二虚拟数据头。
[0024]
当第一客户端首次与第二客户端通信后,马上发送下一条信息给第二客户端时,执行以下步骤:s41:以第二虚拟数据头为数据头以第一客户端用户输入信息为数据体生成用户数据;s42:对该用户数据的数据体进行加密得到加密后的用户数据并发送s43:根据第二虚拟数据头生成第三虚拟数据头;s44:将第三虚拟数据头添加到第一映射关系表和第一数据接收白名单中;s45:在第一数据接收白名单中删除第二虚拟数据头。
[0025]
即在第一客户端与第二客户端通信过程中,每一次用户数据通讯都采用不同的数据头。例如,在首次通信后,第一客户端连续发送了5条信息个第二客户端,这5条信息的数据头依次即为数据头a、数据头b、数据头c、数据头d、数据头e,数据头b是在数据头a的基础上按照预设的规则生成,数据头c是在数据头b的基础上按照预设的规则生成,依次类推。同时第二客户端在接收到信息后,也根据该条信息的数据头生成下一个数据头以便接收第一客户端的下一条信息或是发送信息给第一客户端,同理,当第一客户端接收或发送一条信息后,都会根据这条信息的数据头生成一个新的数据头,以便再次发送信息或接收信息。
[0026]
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1