一种物联网节点间通信加密方法及系统
技术领域
本发明涉及物联网通信技术领域,特别涉及一种物联网节点间通信加密方法及系统。
背景技术
随着物联网技术的快速发展,产生了海量的物联网嵌入式设备节点,物联网节点使用无线射频网络或TCP/IP网络与云端进行连接通信,由于物联网设备节点多使用嵌入式硬件技术,CPU频率和内存小,无法适用现行的网络通信安全加密技术,易被黑客针对这些弱点进行网络攻击,一旦黑客入侵成功,就能通过海量的物联网节点对云端进行网络攻击,造成网络堵塞,大量的数据丢失,甚至服务器宕机,带来巨大的损失。
发明内容
本发明的主要目的是提出一种物联网节点间通信加密方法及系统,旨在对通信网络层进行多重通信加密,加强物联网通信网络的构建和组网的安全,解决物联网节点间安全通行的问题。
为实现上述目的,本发明提出的一种物联网节点间通信加密方法,包括以下步骤:
步骤S1:通信发起节点采用非对称加密算法生成公钥publickey和私钥privatekey;
步骤S2:通信发起节点将所述公钥publickey以明文方式发送至目标节点;
步骤S3:所述目标节点接收所述通信发起节点发送的公钥publickey,所述目标节点预设有包含若干种加密算法的加密算法表,所述目标节点随机选择所述加密算法表中的任一加密算法生成通信秘钥key;
步骤S4:所述目标节点将生成的通信秘钥key通过所述公钥publickey进行加密,并以密文方式发送至所述通信发起节点;
步骤S5:所述通信发起节点接收所述目标节点发送的加密信息,并通过所述私钥privatekey解密获取通信秘钥key,完成通信秘钥key的交换;并将该通信秘钥key作为所述通信发起节点与所述目标节点间的通信秘钥。
优选地,所述加密算法表设置有至少十种加密算法,包括DES、SHA1、BASE64、AES加密算法,且加密算法表中每一种加密算法均对应唯一一个序列号。
优选地,所述步骤S3具体包括:
所述目标节点接收所述通信发起节点发送的公钥publickey;
所述目标节点将当前时间和节点IP作为随机种子,通过随机算法处理得到一数据;
所述目标节点根据随机算法处理得到的数据选择加密算法表中与该数据对应的序列号,并选择该序列号对应的加密算法生成通信秘钥key。
优选地,所述目标节点在生成通信秘钥key时设置该所述通信秘钥key的生命周期,并记录该通信秘钥key的生成时间;
当所述目标节点接收到所述通信发起节点发送的信息时,所述目标节点判断接收该信息的时间与通信秘钥key的生成时间的间隔是否在通信秘钥key的生命周期之内;
若所述目标节点判断接收该信息的时间与通信秘钥key的生成时间的间隔超出通信秘钥key的生命周期,所述目标节点向所述通信发起节点发送当前通信秘钥key失效应答;重复步骤S1~S5,重新生成新的通信秘钥key,完成通信发起节点与目标节点间的秘钥key交换。
优选地,所述通信秘钥key采用非对称加密算法进行加密。
为解决上述问题,本发明还提供一种物联网节点间通信加密系统,物联网节点包括:通信发起节点、目标节点,所述目标节点预设有包含若干种加密算法的加密算法表,还包括:
非对称加密模块:位于所述通信发起节点,采用非对称加密算法生成公钥publickey和私钥privatekey;
通信发起模块:位于所述通信发起节点,用于将生成的公钥publickey以明文方式发送至目标节点;
加密算法选择模块:位于所述目标节点,用于在所述目标节点的加密算法表中随机选择一加密算法生成通信秘钥key;
通信秘钥key加密模块:位于所述目标节点,用于将所述目标节点生成的通信秘钥key通过所述公钥publickey进行加密,并以密文方式发送至所述通信发起节点;
通信秘钥key解密模块:位于所述通信发起节点通过所述私钥privatekey解密获取通信秘钥key,完成通信秘钥key的交换;并将该通信秘钥key作为所述通信发起节点与所述目标节点间的通信秘钥。
优选地,所述加密算法表设置有至少十种加密算法,包括DES、SHA1、BASE64、AES加密算法,且加密算法表中每一种加密算法均对应唯一一个序列号。
优选地,所述加密算法选择模块包括:
随机种子生成模块:用于将当前时间和节点IP生成随机种子;
随机算法处理模块:用于将所述随机种子生成模块生成的随机种子处理得到一数据;
数据对比模块:用于将所述随机算法处理模块处理得到的数据,与所述加密算法表中的加密算法对应的序列号进行对比,选择与该数据对应序列号所对应的加密算法;
通信秘钥key生成模块:通过与所述选择对比模块选择的加密算法生成通信秘钥key。
优选地,还包括:
通信秘钥key生命周期生成模块:位于所述目标节点,用于在生成通信秘钥key时设置该所述通信秘钥key的生命周期,并记录该通信秘钥key的生成时间;
通信秘钥key生命周期判断模块:位于所述目标节点,用于所述目标节点接收到所述通信发起节点发送的信息时,判断接收该信息的时间与通信秘钥key的生成时间的间隔是否在通信秘钥key的生命周期之内;
失效应答模块:位于所述目标节点,当所述通信秘钥key生命周期判断模块判断接收该信息的时间与通信秘钥key的生成时间的间隔超出通信秘钥key的生命周期时,向所述通信发起节点发送当前通信秘钥key失效应答信息。
优选地,所述通信秘钥key采用非对称加密算法进行加密。
与现有技术相比,本发明的有益效果是:在SHA、RSA和AES等签名加密算法的基础上设计加密算法表,通信时随机选择加密算法,使用丰富的算法增加通信密钥被暴力破解的难度;增加通信密钥生命周期,废弃过期的通信密钥,重新生成通信密钥进行通信,避免通信密钥被暴力破解。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明物联网节点间通信加密方法的流程图;
图2为本发明物联网节点间通信加密系统的模块图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,图1为本发明物联网节点间通信加密方法的流程图,本实施例提出的一种物联网节点间通信加密方法,包括以下步骤:
步骤S1:通信发起节点采用非对称加密算法生成公钥publickey和私钥privatekey;
步骤S2:通信发起节点将所述公钥publickey以明文方式发送至目标节点;
步骤S3:所述目标节点接收所述通信发起节点发送的公钥publickey,所述目标节点预设有包含若干种加密算法的加密算法表,所述目标节点随机选择所述加密算法表中的任一加密算法生成通信秘钥key;
步骤S4:所述目标节点将生成的通信秘钥key通过所述公钥publickey进行加密,并以密文方式发送至所述通信发起节点;
步骤S5:所述通信发起节点接收所述目标节点发送的加密信息,并通过所述私钥privatekey解密获取通信秘钥key,完成通信秘钥key的交换;并将该通信秘钥key作为所述通信发起节点与所述目标节点间的通信秘钥。
应当说明的是,所述通信发起节点采用非对称加密算法生成公钥publickey和私钥privatekey。公钥publickey与私钥privatekey是一对,如果用公钥publickey对数据进行加密,只有用对应的私钥privatekey才能解密;如果用私钥privatekey对数据进行加密,那么只有用对应的公钥publickey才能解密。大大提高了通信的安全性。
同时,所述目标节点可以通过预设的加密算法表随机选择任一加密算法生成通信秘钥key,并将该通信秘钥key发送至所述通信发起节点,实现节点间通信秘钥key的交换,进一步提高节点间的通行安全。应当说明的是,加密算法表中的加密算法种类多,且由所述目标节点随机选择一加密算法产生通信秘钥key,大大提高了通信秘钥key的随机性,复杂性以及被暴力破解的难度,保证通行的安全。
进一步地,所述加密算法表设置有至少十种加密算法,包括DES、SHA1、BASE64、AES加密算法,且加密算法表中每一种加密算法均对应唯一一个序列号。应当说明的是,所述DES、SHA1、BASE64、AES加密算法为现有技术中常用的加密算法,采用多种加密算法组成的加密算法表,降低了加密算法对CPU频率和内存的要求,同时,使用丰富的加密算法可以增加其被暴力破解的难度,提升加密算法的安全性。
进一步地,所述步骤S3具体包括:
所述目标节点接收所述通信发起节点发送的公钥publickey;
所述目标节点将当前时间和节点IP作为随机种子,通过随机算法处理得到一数据;
所述目标节点根据随机算法处理得到的数据选择加密算法表中与该数据对应的序列号,并选择该序列号对应的加密算法生成通信秘钥key。
具体地,例如,所述加密算法表中有10种加密算法,从第一种至第10种加密算法分别对应的序列号为:″1、2、3......9、10″。同时,所述目标节点会根据不同的时间和节点IP作为随机种子,通过一随机算法处理得到不同的数据:″一、二、三......九、十″,其中,一与1对应,二与2对应......十与10对应。应当说明的是,所述随机算法为现有技术中常用的随机算法。当所述目标节点通过所述随机算法处理得到的数据为″三″时,所述目标节点会选择与所述数据″三″对应的序列号″3,″,并选择与所述序列号″3″所对应的加密算法表中的第三种加密算法生成通信秘钥key,极大地提高了通信秘钥key生成的随机性,提高其被破解难度,增强通信安全。
进一步地,所述目标节点在生成通信秘钥key时设置该所述通信秘钥key的生命周期,并记录该通信秘钥key的生成时间;
当所述目标节点接收到所述通信发起节点发送的信息时,所述目标节点判断接收该信息的时间与通信秘钥key的生成时间的间隔是否在通信秘钥key的生命周期之内;
若所述目标节点判断接收该信息的时间与通信秘钥key的生成时间的间隔超出通信秘钥key的生命周期,所述目标节点向所述通信发起节点发送当前通信秘钥key失效应答;重复步骤S1~S5,重新生成新的通信秘钥key,完成通信发起节点与目标节点间的秘钥key交换。
具体地,通信秘钥key的生命周期可以根据实际情况具体设置,在本实施例中所述目标节点在生成通信秘钥key时设置该通信秘钥key的生命周期为10min,并记录该通信秘钥key的生成时间。当所述目标节点判断接收该信息的时间与通信秘钥key的生成时间的间隔在通信秘钥key的生命周期之内,则所述目标节点与所述通信发起节点之间正常通信。当所述目标节点判断接收该信息的时间与通信秘钥key的生成时间的间隔超出通信秘钥key的生命周期,所述目标节点会向所述通信发起节点发送失效应答,当前通信秘钥key已失效,所述目标节点与所述通信发起节点之间无法进行通信,目标节点必须重新申请生成新的通信秘钥key进行两者间的正常通信。采用这种设计,可以有效避免通信秘钥key被暴力破解后,持续造成系统破坏。而且,随着加密技术的改进,通信秘钥key破解的时间远大于通信秘钥key设置的生命周期,进一步避免通信秘钥key被暴力破解。
进一步地,所述通信秘钥key采用非对称加密算法进行加密。通信密钥key交换过程中使用非对称加密算法进行加密,避免直接暴露通信秘钥key,非对称加密算法生成的公钥publickey不能解密公钥publickey加密的数据,只能被私钥privatekey解密,从而确保通信密钥key的安全交换。
参照图2,图2为本发明物联网节点间通信加密系统的模块图,本实施例还提供一种物联网节点间通信加密系统,物联网节点包括:通信发起节点、目标节点,所述目标节点预设有包含若干种加密算法的加密算法表,还包括:
非对称加密模块:位于所述通信发起节点,采用非对称加密算法生成公钥publickey和私钥privatekey;
通信发起模块:位于所述通信发起节点,用于将生成的公钥publickey以明文方式发送至目标节点;
加密算法选择模块:位于所述目标节点,用于在所述目标节点的加密算法表中随机选择一加密算法生成通信秘钥key;
通信秘钥key加密模块:位于所述目标节点,用于将所述目标节点生成的通信秘钥key通过所述公钥publickey进行加密,并以密文方式发送至所述通信发起节点;
通信秘钥key解密模块:位于所述通信发起节点,通过所述私钥privatekey解密获取通信秘钥key,完成通信秘钥key的交换;并将该通信秘钥key作为所述通信发起节点与所述目标节点间的通信秘钥。
应当说明的是,采用非对称加密模块生成公钥publickey和私钥privatekey。公钥publickey与私钥privatekey是一对,如果用公钥publickey对数据进行加密,只有用对应的私钥privatekey才能解密;如果用私钥privatekey对数据进行加密,那么只有用对应的公钥publickey才能解密。大大提高了通信的安全性。
同时,加密算法选择模块可以在所述目标节点中预设的加密算法表随机选择任一加密算法生成通信秘钥key并将该通信秘钥key发送至所述通信发起节点,实现节点间通信秘钥key的交换,进一步提高节点间的通行安全。应当说明的是,加密算法表中的加密算法种类多,且由所述加密算法选择模块随机选择一加密算法产生通信秘钥key,大大提高了通信秘钥key的随机性,复杂性以及被暴力破解的难度,保证通行的安全。
进一步地,所述加密算法表设置有至少十种加密算法,包括DES、SHA1、BASE64、AES加密算法,且加密算法表中每一种加密算法均对应唯一一个序列号。应当说明的是,所述DES、SHA1、BASE64、AES加密算法为现有技术中常用的加密算法,采用多种加密算法组成的加密算法表,降低了加密算法对CPU频率和内存的要求,同时,使用丰富的加密算法可以增加其被暴力破解的难度,提升加密算法的安全性。
进一步地,所述加密算法选择模块包括:
随机种子生成模块:用于将当前时间和节点IP生成随机种子;
随机算法处理模块:用于将所述随机种子生成模块生成的随机种子处理得到一数据;
数据对比模块:用于将所述随机算法处理模块处理得到的数据,与所述加密算法表中的加密算法对应的序列号进行对比,选择与该数据对应序列号所对应的加密算法;
通信秘钥key生成模块:通过与所述选择对比模块选择的加密算法生成通信秘钥key。
具体地,例如,所述加密算法表中有10种加密算法,从第一种至第10种加密算法分别对应的序列号为:″1、2、3......9、10″。同时,随机种子生成模块会根据不同的时间和节点IP生成随机种子,通过一随机算法处理模块采用随机算法处理得到不同的数据:″一、二、三......九、十″,其中,一与1对应,二与2对应......十与10对应。应当说明的是,所述随机算法为现有技术中常用的随机算法。当所述随机算法处理模块处理得到的数据为″三″时,所述数据对比模块将数据″3″与所述序列号进行对比,选择与所述数据″三″对应的序列号″3,″,并选择与所述序列号″3″所对应的加密算法表中的第三种加密算法,在通过所述通信秘钥key生成模块生成通信秘钥key,极大地提高了通信秘钥key生成的随机性,提高其被破解难度,增强通信安全。
进一步地,还包括:
通信秘钥key生命周期生成模块:位于所述目标节点,用于在生成通信秘钥key时设置该所述通信秘钥key的生命周期,并记录该通信秘钥key的生成时间;
通信秘钥key生命周期判断模块:位于所述目标节点,用于所述目标节点接收到所述通信发起节点发送的信息时,判断接收该信息的时间与通信秘钥key的生成时间的间隔是否在通信秘钥key的生命周期之内;
失效应答模块:位于所述目标节点,当所述通信秘钥key生命周期判断模块判断接收该信息的时间与通信秘钥key的生成时间的间隔超出通信秘钥key的生命周期时,向所述通信发起节点发送当前通信秘钥key失效应答信息。
具体地,通信秘钥key的生命周期可以根据实际情况具体设置,在本实施例中,所述通信秘钥key生命周期生成模块在生成通信秘钥key时设置该通信秘钥key的生命周期为10min,并记录该通信秘钥key的生成时间。当所述通信秘钥key生命周期判断模块判断接收该信息的时间与通信秘钥key的生成时间的间隔在通信秘钥key的生命周期之内,所述目标节点与所述通信发起节点之间正常通信。当所述通信秘钥key生命周期判断模块判断接收该信息的时间与通信秘钥key的生成时间的间隔超出通信秘钥key的生命周期所述失效应答模块会向所述通信发起节点发送失效应答,当前通信秘钥key已失效,所述目标节点与所述通信发起节点之间无法进行通信,目标节点必须重新申请生成新的通信秘钥key进行两者间的正常通信。采用这种设计,可以有效避免通信秘钥key被暴力破解后,持续造成系统破坏。而且,随着加密技术的改进,通信秘钥key破解的时间远大于通信秘钥key设置的生命周期,进一步避免通信秘钥key被暴力破解。
进一步地,所述通信秘钥key采用非对称加密算法进行加密。通信密钥key交换过程中使用非对称加密算法进行加密,避免直接暴露通信秘钥key,非对称加密算法生成的公钥publickey不能解密公钥publickey加密的数据,只能被私钥privatekey解密,从而确保通信密钥key的安全交换。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。