一种基于物联网云的安全智能监测系统实现方法转让专利

申请号 : CN202010549043.0

文献号 : CN111711691B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王晓喃罗玉峰李燕丽

申请人 : 常熟理工学院

摘要 :

本发明公开了一种基于物联网云的安全智能监测系统实现方法,安全智能监测系统包括两个以上的节点,节点分为骨干节点和主机节点;每个骨干节点配置X种不同的接口,每种接口使用不同的通信协议,该通信协议称为该接口的接口ID,不同的通信标准使用不同的频段;接口ID为p的接口简写成接口p;每个骨干节点的坐标具有唯一性;每个骨干节点具有唯一的前缀,该前缀是该骨干节点的坐标。本发明提供了一种基于物联网云的安全智能监测系统实现方法,在所述系统中,用户节点通过单播可以快速获取数据从而实现对各种环境的实时监控,降低了系统成本,提高了系统性能。本发明可应用于农业大棚环境监测、智能家居环境监测、道路环境监测、空气污染等领域,具有广泛的应用前景。

权利要求 :

1.一种基于物联网云的安全智能监测系统实现方法,其特征在于,所述安全智能监测系统包括两个以上的节点,节点分为骨干节点和主机节点;

每个骨干节点配置X种不同的接口,每种接口使用不同的通信协议,该通信协议称为该接口的接口ID,不同的通信标准使用不同的频段;接口ID为p的接口简写成接口p;

每个骨干节点的坐标具有唯一性;每个骨干节点具有唯一的前缀,该前缀是该骨干节点的坐标;

所述安全智能监测系统为每种接口的接口ID配置一个密钥;加密后的前缀称为加密前缀;

每个骨干节点保存一个密钥表,一个密钥表项包含密钥、接口ID和加密前缀;

所述安全智能监测系统为每个骨干节点配置X种接口的接口ID的密钥;

骨干节点针对自己的每个接口执行下述操作:骨干节点利用定义该接口的接口ID的密钥和预先设置的对称加密算法加密自己的前缀获取加密前缀,创建一个密钥表项,该密钥表项的密钥为定义该接口的接口ID的密钥,接口ID为定义该接口的接口ID,加密前缀为获取的加密前缀;

每个主机节点配置一个接口和定义该接口的接口ID的密钥,该密钥称为该主机节点的密钥;

一种数据由一个名称标识;一个主机节点能产生一种以上的类型的数据;

一个主机节点同一时刻只与一个骨干节点链接;一个骨干节点和所有与自己链接的主机节点构成一个云;骨干节点维护一个主机表,一个主机表项包含接口ID和名称集合;一个消息由消息ID定义;所述系统定义了注册消息、路由消息、推送消息、请求消息和响应消息,消息ID分别为1、2、3、4和5;

加密之后的名称称为加密名称;由加密名称构成的集合称为加密名称集合;注册消息包含消息ID和加密名称集合;

主机节点H1与骨干节点CN1链接,定义主机节点H1产生的数据的名称构成名称集合NS1,主机节点H1定期执行下述操作:步骤101:开始;

步骤102:主机节点H1设置一个名称集合变量np1,变量np1的值为NS1,设置一个加密名称集合变量ep1,变量ep1的值为空集;

步骤103:主机节点H1从变量np1中随机选取一个名称,用自己的密钥和预先设置的对称加密算法获取加密名称,将获取的加密名称加入到变量ep1中,从变量np1中删除选取的名称;

步骤104:主机节点H1判断变量np1是否为空集,如果是,则执行步骤105,否则执行步骤

103;

步骤105:主机节点H1发送一个注册消息,该注册消息的消息ID为1,加密名称集合等于变量ep1的值;

步骤106:骨干节点CN1从接口f1接收到该注册消息后,选择一个密钥表项,该密钥表项的接口ID等于f1,骨干节点设置一个名称集合变量np2,变量np2的值为空集,设置一个加密名称集合变量ep2,变量ep2的值等于该注册消息中的加密名称集合;

步骤107:骨干节点CN1从变量ep2中随机选取一个加密名称,利用选择的密钥表项中的密钥和预先设置的对称加密算法解密该加密名称获取名称,将获取的名称加入到变量np2中,从变量ep2中删除选取的加密名称;

步骤108:骨干节点CN1判断变量ep2是否为空集,如果是,则执行步骤109,否则执行步骤107;

步骤109:骨干节点CN1判断是否存在一个主机表项,该主机表项的接口ID等于f1且名称集合等于变量np2,如果是,则执行步骤111,否则执行步骤110;

步骤110:骨干节点CN1创建一个主机表项,该主机表项的接口ID等于f1,名称集合等于变量np2;

步骤111:结束;

每个骨干节点保存一个转发表,转发表项包含接口ID、最终加密前缀、目的加密前缀和生命周期;路由消息包含消息ID、最终加密前缀和目的加密前缀;骨干节点CN1定期执行下述操作:

步骤201:开始;

步骤202:针对自己的每个密钥表项,骨干节点CN1构建一个路由消息,该路由消息的消息ID为2,最终加密前缀和目的加密前缀均等于该密钥表项中的加密前缀,从该密钥表项的接口ID所标识的接口发送该路由消息;

步骤203:从接口f2接收到该路由消息的骨干节点判断是否存在一个转发表项,该转发表项的接口ID等于f2,最终加密前缀等于该路由消息中的最终加密前缀且生命周期大于阈值TH0,阈值TH0的取值范围为最大生命周期的95%‑99%,如果存在,则执行步骤208,否则执行步骤204;

步骤204:从接口f2接收到该路由消息的骨干节点判断是否存在一个转发表项,该转发表项的接口ID等于f2,最终加密前缀等于该路由消息中的最终加密前缀,如果存在,则执行步骤205,否则执行步骤206;

步骤205:从接口f2接收到该路由消息的骨干节点选择一个转发表项,该转发表项的接口ID等于f2,最终加密前缀等于该路由消息中的最终加密前缀,将该转发表项的目的加密前缀设置为该路由消息中的目的加密前缀,将生命周期设置为最大值,执行步骤207;

步骤206:从接口f2接收到该路由消息的骨干节点创建一个转发表项,该转发表项的接口ID等于f2,最终加密前缀等于该路由消息中的最终加密前缀,将该转发表项的目的加密前缀设置为该路由消息中的目的加密前缀,将生命周期设置为最大值;

步骤207:从接口f2接收到该路由消息的骨干节点选择一个密钥表项,该密钥表项的接口ID等于f2,将该路由消息中的目的加密前缀设置为该密钥表项中的加密前缀,从接口f2转发该路由消息,执行步骤203;

步骤208:结束;

推送消息包含消息ID、加密名称、加密数据、源加密前缀、目的加密前缀和最终加密前缀;

在数据DA1由名称NA1标识,主机节点H2能够产生数据DA1的条件下,如果主机节点H2检测到数据DA1超出阈值范围,则执行下述操作:步骤301:开始;

步骤302:主机节点H2利用自己的密钥分别加密数据DA1和名称NA1获取加密数据EDA1和加密名称ENA1,发送一个推送消息,该推送消息的消息ID为3,加密名称和加密数据分别为ENA1和EDA1,源加密前缀、目的加密前缀和最终加密前缀均为空;

步骤303:如果主机节点接收到该推送消息,则执行步骤312,否则执行步骤304;

步骤304:从接口x0接收到该推送消息的骨干节点判断该推送消息的源加密前缀是否为空,如果是,则执行步骤305,否则执行步骤308;

步骤305:从接口x0接收到该推送消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为x0,利用该密钥表项的密钥解密该推送消息中的加密名称和加密数据分别获取名称NA0和数据DA0,该骨干节点设置一个前缀集合变量pp1,变量pp1的值为空集,选择所有接口ID等于x0的转发表项,针对每个转发表项,该骨干节点利用该密钥表项的密钥解密该转发表项中的最终加密前缀获取前缀,将获取的前缀加入到变量pp1中;

步骤306:从接口x0接收到该推送消息的骨干节点随机从变量pp1中选取一个前缀PR1,随机选择一个接口,选择一个密钥表项,该密钥表项的接口ID等于随机选中的接口的接口ID,利用该密钥表项的密钥加密名称NA0,数据DA0、自己的前缀和前缀PR1分别获取加密名称ENA0,加密数据EDA 0、加密前缀EPR0和加密前缀EPR1,将该推送消息的加密名称、加密数据、源加密前缀和最终加密前缀分别设置为ENA0、EDA0、EPR0和EPR1,选择一个转发表项,该转发表项的接口ID等于选中的接口的接口ID且最终加密前缀等于EPR1,将该推送消息的目的加密前缀设置为该转发表项的目的加密前缀,从该转发表项的接口ID所标识的接口转发该推送消息,从变量pp1中删除前缀PR1;

步骤307:如果变量pp1为空集,则执行步骤303,否则执行步骤306;

步骤308:从接口x0接收到该推送消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为x0,如果该密钥表项中的加密前缀等于该推送消息中的目的加密前缀,则执行步骤

309,否则执行步骤310;

步骤309:从接口x0接收到该推送消息的骨干节点选择一个转发表项,该转发表项的接口ID等于x0且最终加密前缀等于该推送消息中的最终加密前缀,将该推送消息的目的加密前缀设置为该转发表项的目的加密前缀,从接口x0转发该推送消息,执行步骤303;

步骤310:从接口x0接收到该推送消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为x0,如果该密钥表项中的加密前缀等于该推送消息中的最终加密前缀,则执行步骤

311,否则执行步骤314;

步骤311:从接口x0接收到该推送消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为x0,利用该密钥表项的密钥解密该推送消息中的加密名称、加密数据和源加密前缀获取名称A1,数据D1和前缀P1,针对自己的每个接口,该骨干节点执行下述操作:选择一个密钥表项E0,密钥表项E0的接口ID等于该接口的接口ID,利用密钥表项E0的密钥加密名称A1、数据D1和前缀P1分别获取加密名称EA1、加密数据ED1和加密前缀EP1,将该推送消息的加密名称、加密数据和加密前缀分别设置为加密名称EA1、加密数据ED1和加密前缀EP1,将该推送消息的最终加密前缀和目的加密前缀均设置为空,从该接口转发该推送消息,执行步骤303;

步骤312:接收到该推送消息的主机节点判断该推送消息的最终加密前缀和目的加密前缀是否为空,如果是,则执行步骤313,否则执行步骤314;

步骤313:接收到该推送消息的主机节点利用自己的密钥解密该推送消息中的加密名称、加密数据和源加密前缀获取名称、数据和前缀;

步骤314:结束。

2.根据权利要求1所述的一种基于物联网云的安全智能监测系统实现方法,其特征在于,请求消息包含消息ID、加密名称、标识位、目的加密前缀和最终加密前缀;

响应消息包含消息ID、加密名称、加密数据和加密前缀;

一个骨干节点保存一个处理表,一个处理表项包含前缀、名称和接口ID集合;

骨干节点CN1的前缀为R1,主机节点H2与骨干节点CN2链接,通过下述过程获取与骨干节点CN1链接的任一个主机节点产生的由名称NA2定义的数据:步骤401:开始;

步骤402:主机节点H2利用自己的密钥分别加密名称NA2和前缀R1获取加密名称EN2和加密前缀ER1,主机节点H2发送一个请求消息,该请求消息的消息ID为4,加密名称和加密最终加密前缀分别为EN2和ER1,目的加密前缀为空,标识位为0;

步骤403:如果主机节点接收到该请求消息,则执行步骤416,否则执行步骤404;

步骤404:从接口y0接收到该请求消息的骨干节点判断该请求消息的目的加密前缀是否为空,如果是,则执行步骤405,否则执行步骤409;

步骤405:从接口y0接收到该请求消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为y0,利用该密钥表项的密钥解密该请求消息中的加密名称和最终加密前缀分别获取名称NA3和前缀FP3,该骨干节点判断是否存在一个处理表项,该处理表项的前缀等于FP3,名称等于NA3且接口ID集合包含y0,如果存在,则执行步骤419,否则执行步骤406;

步骤406:从接口y0接收到该请求消息的骨干节点判断是否存在一个处理表项,该处理表项的前缀等于FP3,名称等于NA3,如果存在,则执行步骤407,否则执行步骤408;

步骤407:从接口y0接收到该请求消息的骨干节点选择一个处理表项,该处理表项的前缀等于FP3,名称等于NA3,将y0加入到该处理表项的接口ID集合中,执行步骤419;

步骤408:从接口y0接收到该请求消息的骨干节点创建一个处理表项,该处理表项的前缀等于FP3,名称等于NA3,该处理表项的接口ID集合只包含一个元素y0,该骨干节点随机选择一个接口,选择一个密钥表项,该密钥表项的接口ID等于随机选中的接口的接口ID,利用该密钥表项的密钥加密名称NA3和前缀FP3分别获取加密名称ENA3和加密前缀EFP3,将该请求消息的加密名称和最终加密前缀分别设置为ENA3和EFP3,选择一个转发表项,该转发表项的接口ID等于选中的接口的接口ID且最终加密前缀等于EFP3,将该请求消息的目的加密前缀设置为该转发表项的目的加密前缀,从该转发表项的接口ID所标识的接口转发该请求消息,执行步骤403;

步骤409:从接口y0接收到该请求消息的骨干节点选择一个密钥表项E1,该密钥表项的接口ID为y0,如果该密钥表项E1中的加密前缀等于该请求消息中的目的加密前缀或者最终加密前缀,则执行步骤410,否则执行步骤424;

步骤410:从接口y0接收到该请求消息的骨干节点利用该密钥表项E1的密钥解密该请求消息中的加密名称和最终加密前缀分别获取名称NA4和前缀FP4,该骨干节点判断是否存在一个处理表项,该处理表项的前缀等于FP4,名称等于NA4且接口ID集合包含y0,如果存在,则执行步骤419,否则执行步骤411;

步骤411:从接口y0接收到该请求消息的骨干节点判断是否存在一个处理表项,该处理表项的前缀等于FP4,名称等于NA4,如果存在,则执行步骤412,否则执行步骤413;

步骤412:从接口y0接收到该请求消息的骨干节点选择一个处理表项,该处理表项的前缀等于FP4,名称等于NA4,将y0加入到该处理表项的接口ID集合中,执行步骤419;

步骤413:从接口y0接收到该请求消息的骨干节点创建一个处理表项,该处理表项的前缀等于FP4,名称等于NA4,该处理表项的接口ID集合只包含一个元素y0,如果密钥表项E1中的加密前缀等于该请求消息中的目的加密前缀,则执行步骤414,否则执行步骤415;

步骤414:从接口y0接收到该请求消息的骨干节点选择一个转发表项,该转发表项的接口ID等于y0且最终加密前缀等于该请求消息中的最终加密前缀,将该请求消息的目的加密前缀设置为该转发表项的目的加密前缀,从接口y0转发该请求消息,执行步骤403;

步骤415:从接口y0接收到该请求消息的骨干节点选择一个主机表项,该主机表项的名称集合中包含名称NA4,选择一个密钥表项E2,密钥表项E2的接口ID等于该主机表项的接口ID,利用密钥表项E2的密钥加密名称NA4和前缀FP4分别获取加密名称ENA4和加密前缀EFP4,将该请求消息的加密名称和最终加密前缀分别设置为加密名称ENA4和加密前缀EFP4,将该请求消息的标识位设置为1,从该主机表项的接口ID所标识的接口转发该请求消息,执行步骤403;

步骤416:接收到该请求消息的主机节点判断该请求消息的标识位是否为1,如果是,则执行步骤417,否则执行步骤424;

步骤417:接收到该请求消息的主机节点利用自己的密钥解密该请求消息中的加密名称获取名称,如果该主机节点能够提供该名称定义的数据,则执行步骤418,否则执行步骤

424;

步骤418:接收到该请求消息的主机节点利用自己的密钥加密产生的数据获取加密数据,发送一个响应消息,该响应消息的消息ID为5,加密名称等于该请求消息中的加密名称,加密数据等于获取的加密数据,加密前缀等于该请求消息中的最终加密前缀;

步骤419:如果主机节点接收到该响应消息,则执行步骤423,否则执行步骤420;

步骤420:从接口y2接收到该响应消息的骨干节点选择一个密钥表项,该密钥表项的接口ID等于y2,利用该密钥表项的密钥分别解密该响应消息中的加密名称、加密数据和加密前缀分别获取名称N5、数据D5和前缀P5,该骨干节点判断是否存在一个处理表项,该处理表项的名称和前缀分别等于N5和P5,如果存在,则执行步骤421,否则执行步骤424;

步骤421:从接口y2接收到该响应消息的骨干节点选择一个处理表项,该处理表项的名称和前缀分别等于N5和P5,针对该处理表项中接口ID集合中的每个接口ID FID1执行下述操作:该骨干节点选择一个密钥表项,该密钥表项的接口ID等于FID1,利用该密钥表项的密钥分别加密名称N5、数据D5和前缀P5获取加密名称EN5,加密数据ED5和加密前缀EP5,将该响应消息的加密名称、加密数据和加密前缀分别设置为EN5、ED5和EP5,从接口FID1标识的接口发送该响应消息;

步骤422:从接口y2接收到该响应消息的骨干节点选择一个处理表项,该处理表项的名称和前缀分别等于N5和P5,删除该处理表项,执行步骤419;

步骤423:接收到该响应消息的主机节点利用自己的密钥分别解密该响应消息中的加密名称、加密数据和加密前缀分别获取名称、数据和前缀;

步骤424:结束。

说明书 :

一种基于物联网云的安全智能监测系统实现方法

技术领域

[0001] 本发明涉及一种监测系统实现方法,尤其涉及的是一种基于物联网云的安全智能监测系统实现方法。

背景技术

[0002] 物联网具有结构紧凑、易于布置、易于维护、价格便宜、测量精度高等优点,非常适合环境监测。近年来,国内外研究人员对基于物联网的环境监测系统进行了相关研究,并取
得了一定的研究成果。但是目前基于物联网的环境监测系统具有一点过的局限性,例如采
用广播方式实现数据监测,因此代价较大。因此,如何降低基于物联网的环境监测延迟和代
价成为近年来研究的热点问题。

发明内容

[0003] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于物联网云的安全智能监测系统实现方法。
[0004] 技术方案:本发明公开了一种基于物联网云的安全智能监测系统实现方法,所述安全智能监测系统包括两个以上的节点,节点分为骨干节点和主机节点;
[0005] 每个骨干节点配置X种不同的接口,每种接口使用不同的通信协议,该通信协议称为该接口的接口ID,不同的通信标准使用不同的频段;接口ID为p的接口简写成接口p;X取
值范围为5‑20;
[0006] 每个骨干节点的坐标具有唯一性;每个骨干节点具有唯一的前缀,该前缀是该骨干节点的坐标;
[0007] 所述安全智能监测系统为每种接口的接口ID配置一个密钥;加密后的前缀称为加密前缀;
[0008] 每个骨干节点保存一个密钥表,一个密钥表项包含密钥、接口ID和加密前缀;
[0009] 所述安全智能监测系统为每个骨干节点配置X种接口的接口ID的密钥;
[0010] 骨干节点针对自己的每个接口执行下述操作:骨干节点利用定义该接口的接口ID的密钥和预先设置的对称加密算法加密自己的前缀获取加密前缀,创建一个密钥表项,该
密钥表项的密钥为定义该接口的接口ID的密钥,接口ID为定义该接口的接口ID,加密前缀
为获取的加密前缀;对称加密算法采用例如高级加密标准算法,
AdvancedEncryptionStandard;
[0011] 每个主机节点配置一个接口和定义该接口的接口ID的密钥,该密钥称为该主机节点的密钥;
[0012] 一种数据由一个名称标识;一个主机节点能产生一种以上的类型的数据;
[0013] 一个主机节点同一时刻只与一个骨干节点链接;一个骨干节点和所有与自己链接的主机节点构成一个云;骨干节点维护一个主机表,一个主机表项包含接口ID和名称集合;
一个消息由消息ID定义;所述系统定义了注册消息、路由消息、推送消息、请求消息和响应
消息,消息ID分别为1、2、3、4和5;
[0014] 加密之后的名称称为加密名称;由加密名称构成的集合称为加密名称集合;注册消息包含消息ID和加密名称集合;
[0015] 主机节点H1与骨干节点CN1链接,定义主机节点H1产生的数据的名称构成名称集合NS1,主机节点H1定期执行下述操作:
[0016] 步骤101:开始;
[0017] 步骤102:主机节点H1设置一个名称集合变量np1,变量np1的值为NS1,设置一个加密名称集合变量ep1,变量ep1的值为空集;
[0018] 步骤103:主机节点H1从变量np1中随机选取一个名称,用自己的密钥和预先设置的对称加密算法获取加密名称,将获取的加密名称加入到变量ep1中,从变量np1中删除选
取的名称;
[0019] 步骤104:主机节点H1判断变量np1是否为空集,如果是,则执行步骤105,否则执行步骤103;
[0020] 步骤105:主机节点H1发送一个注册消息,该注册消息的消息ID为1,加密名称集合等于变量ep1的值;
[0021] 步骤106:骨干节点CN1从接口f1接收到该注册消息后,选择一个密钥表项,该密钥表项的接口ID等于f1,骨干节点设置一个名称集合变量np2,变量np2的值为空集,设置一个
加密名称集合变量ep2,变量ep2的值等于该注册消息中的加密名称集合;
[0022] 步骤107:骨干节点CN1从变量ep2中随机选取一个加密名称,利用选择的密钥表项中的密钥和预先设置的对称加密算法解密该加密名称获取名称,将获取的名称加入到变量
np2中,从变量ep2中删除选取的加密名称;
[0023] 步骤108:骨干节点CN1判断变量ep2是否为空集,如果是,则执行步骤109,否则执行步骤107;
[0024] 步骤109:骨干节点CN1判断是否存在一个主机表项,该主机表项的接口ID等于f1且名称集合等于变量np2,如果是,则执行步骤111,否则执行步骤110;
[0025] 步骤110:骨干节点CN1创建一个主机表项,该主机表项的接口ID等于f1,名称集合等于变量np2;
[0026] 步骤111:结束
[0027] 主机节点通过上述过程发送注册消息从而在链接的骨干节点建立主机表,这样骨干节点能够保存每个链接的主机节点的接口的接口ID以及能提供的数据的名称集合,从而
通过正确的接口ID实现消息的正确转发,从而确保数据通信的正确性和高效性。
[0028] 本发明所述方法中,每个骨干节点保存一个转发表,转发表项包含接口ID、最终加密前缀、目的加密前缀和生命周期;路由消息包含消息ID、最终加密前缀和目的加密前缀;
骨干节点CN1定期执行下述操作:
[0029] 步骤201:开始;
[0030] 步骤202:针对自己的每个密钥表项,骨干节点CN1构建一个路由消息,该路由消息的消息ID为2,最终加密前缀和目的加密前缀均等于该密钥表项中的加密前缀,从该密钥表
项的接口ID所标识的接口发送该路由消息;
[0031] 步骤203:从接口f2接收到该路由消息的骨干节点判断是否存在一个转发表项,该转发表项的接口ID等于f2,最终加密前缀等于该路由消息中的最终加密前缀且生命周期大
于阈值TH0,阈值TH0的取值范围为最大生命周期的95%‑99%,如果存在,则执行步骤208,
否则执行步骤204;
[0032] 步骤204:从接口f2接收到该路由消息的骨干节点判断是否存在一个转发表项,该转发表项的接口ID等于f2,最终加密前缀等于该路由消息中的最终加密前缀,如果存在,则
执行步骤205,否则执行步骤206;
[0033] 步骤205:从接口f2接收到该路由消息的骨干节点选择一个转发表项,该转发表项的接口ID等于f2,最终加密前缀等于该路由消息中的最终加密前缀,将该转发表项的目的
加密前缀设置为该路由消息中的目的加密前缀,将生命周期设置为最大值,执行步骤207;
[0034] 步骤206:从接口f2接收到该路由消息的骨干节点创建一个转发表项,该转发表项的接口ID等于f2,最终加密前缀等于该路由消息中的最终加密前缀,将该转发表项的目的
加密前缀设置为该路由消息中的目的加密前缀,将生命周期设置为最大值;
[0035] 步骤207:从接口f2接收到该路由消息的骨干节点选择一个密钥表项,该密钥表项的接口ID等于f2,将该路由消息中的目的加密前缀设置为该密钥表项中的加密前缀,从接
口f2转发该路由消息,执行步骤203;
[0036] 步骤208:结束
[0037] 骨干节点通过上述过程从自己的每个接口发送路由消息从而建立自己到达每个骨干节点的路由路径,上述过程通过生命周期来确保路由路径的最优性和有效性,通过目
的加密前缀能够将消息正确转发从而实现高效安全的数据通信。
[0038] 本发明所述方法中,推送消息包含消息ID、加密名称、加密数据、源加密前缀、目的加密前缀和最终加密前缀;
[0039] 在数据DA1由名称NA1标识,主机节点H2能够产生数据DA1的条件下,如果主机节点H2检测到数据DA1超出阈值范围,则执行下述操作:
[0040] 步骤301:开始;
[0041] 步骤302:主机节点H2利用自己的密钥分别加密数据DA1和名称NA1获取加密数据EDA1和加密名称ENA1,发送一个推送消息,该推送消息的消息ID为3,加密名称和加密数据
分别为ENA1和EDA1,源加密前缀、目的加密前缀和最终加密前缀均为空;
[0042] 步骤303:如果主机节点接收到该推送消息,则执行步骤312,否则执行步骤304;
[0043] 步骤304:从接口x0接收到该推送消息的骨干节点判断该推送消息的源加密前缀是否为空,如果是,则执行步骤305,否则执行步骤308;
[0044] 步骤305:从接口x0接收到该推送消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为x0,利用该密钥表项的密钥解密该推送消息中的加密名称和加密数据分别获取
名称NA0和数据DA0,该骨干节点设置一个前缀集合变量pp1,变量pp1的值为空集,选择所有
接口ID等于x0的转发表项,针对每个转发表项,该骨干节点利用该密钥表项的密钥解密该
转发表项中的最终加密前缀获取前缀,将获取的前缀加入到变量pp1中;
[0045] 步骤306:从接口x0接收到该推送消息的骨干节点随机从变量pp1中选取一个前缀PR1,随机选择一个接口,选择一个密钥表项,该密钥表项的接口ID等于随机选中的接口的
接口ID,利用该密钥表项的密钥加密名称NA0,数据DA0、自己的前缀和前缀PR1分别获取加
密名称ENA0,加密数据EDA0、加密前缀EPR0和加密前缀EPR1,将该推送消息的加密名称、加
密数据、源加密前缀和最终加密前缀分别设置为ENA0、EDA0、EPR0和EPR1,选择一个转发表
项,该转发表项的接口ID等于选中的接口的接口ID且最终加密前缀等于EPR1,将该推送消
息的目的加密前缀设置为该转发表项的目的加密前缀,从该转发表项的接口ID所标识的接
口转发该推送消息,从变量pp1中删除前缀PR1;
[0046] 步骤307:如果变量pp1为空集,则执行步骤303,否则执行步骤306;
[0047] 步骤308:从接口x0接收到该推送消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为x0,如果该密钥表项中的加密前缀等于该推送消息中的目的加密前缀,则执行
步骤309,否则执行步骤310;
[0048] 步骤309:从接口x0接收到该推送消息的骨干节点选择一个转发表项,该转发表项的接口ID等于x0且最终加密前缀等于该推送消息中的最终加密前缀,将该推送消息的目的
加密前缀设置为该转发表项的目的加密前缀,从接口x0转发该推送消息,执行步骤303;
[0049] 步骤310:从接口x0接收到该推送消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为x0,如果该密钥表项中的加密前缀等于该推送消息中的最终加密前缀,则执行
步骤311,否则执行步骤314;
[0050] 步骤311:从接口x0接收到该推送消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为x0,利用该密钥表项的密钥解密该推送消息中的加密名称、加密数据和源加密
前缀获取名称A1,数据D1和前缀P1,针对自己的每个接口,该骨干节点执行下述操作:选择
一个密钥表项E0,密钥表项E0的接口ID等于该接口的接口ID,利用密钥表项E0的密钥加密
名称A1、数据D1和前缀P1分别获取加密名称EA1、加密数据ED1和加密前缀EP1,将该推送消
息的加密名称、加密数据和加密前缀分别设置为加密名称EA1、加密数据ED1和加密前缀
EP1,将该推送消息的最终加密前缀和目的加密前缀均设置为空,从该接口转发该推送消
息,执行步骤303;
[0051] 步骤312:接收到该推送消息的主机节点判断该推送消息的最终加密前缀和目的加密前缀是否为空,如果是,则执行步骤313,否则执行步骤314;
[0052] 步骤313:接收到该推送消息的主机节点利用自己的密钥解密该推送消息中的加密名称、加密数据和源加密前缀获取名称、数据和前缀;
[0053] 步骤314:结束
[0054] 主机节点通过上述过程发送推送消息从而使所有的主机节点能够获取推送的数据,由于上述过程通过加密数据进行推送,从而确保的数据通信的安全性,同时,上述数据
通过不同的接口到达不同的骨干节点,从而提高的数据通信的高效性。
[0055] 本发明所述方法中,请求消息包含消息ID、加密名称、标识位、目的加密前缀和最终加密前缀;
[0056] 响应消息包含消息ID、加密名称、加密数据和加密前缀;
[0057] 一个骨干节点保存一个处理表,一个处理表项包含前缀、名称和接口ID集合;
[0058] 骨干节点CN1的前缀为R1,主机节点H2与骨干节点CN2链接,通过下述过程获取与骨干节点CN1链接的任一个主机节点产生的由名称NA2定义的数据:
[0059] 步骤401:开始;
[0060] 步骤402:主机节点H2利用自己的密钥分别加密名称NA2和前缀R1获取加密名称EN2和加密前缀ER1,主机节点H2发送一个请求消息,该请求消息的消息ID为4,加密名称和
加密最终加密前缀分别为EN2和ER1,目的加密前缀为空,标识位为0;
[0061] 步骤403:如果主机节点接收到该请求消息,则执行步骤416,否则执行步骤404;
[0062] 步骤404:从接口y0接收到该请求消息的骨干节点判断该请求消息的目的加密前缀是否为空,如果是,则执行步骤405,否则执行步骤409;
[0063] 步骤405:从接口y0接收到该请求消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为y0,利用该密钥表项的密钥解密该请求消息中的加密名称和最终加密前缀分别
获取名称NA3和前缀FP3,该骨干节点判断是否存在一个处理表项,该处理表项的前缀等于
FP3,名称等于NA3且接口ID集合包含y0,如果存在,则执行步骤419,否则执行步骤406;
[0064] 步骤406:从接口y0接收到该请求消息的骨干节点判断是否存在一个处理表项,该处理表项的前缀等于FP3,名称等于NA3,如果存在,则执行步骤407,否则执行步骤408;
[0065] 步骤407:从接口y0接收到该请求消息的骨干节点选择一个处理表项,该处理表项的前缀等于FP3,名称等于NA3,将y0加入到该处理表项的接口ID集合中,执行步骤419;
[0066] 步骤408:从接口y0接收到该请求消息的骨干节点创建一个处理表项,该处理表项的前缀等于FP3,名称等于NA3,该处理表项的接口ID集合只包含一个元素y0,该骨干节点随
机选择一个接口,选择一个密钥表项,该密钥表项的接口ID等于随机选中的接口的接口ID,
利用该密钥表项的密钥加密名称NA3和前缀FP3分别获取加密名称ENA3和加密前缀EFP3,将
该请求消息的加密名称和最终加密前缀分别设置为ENA3和EFP3,选择一个转发表项,该转
发表项的接口ID等于选中的接口的接口ID且最终加密前缀等于EFP3,将该请求消息的目的
加密前缀设置为该转发表项的目的加密前缀,从该转发表项的接口ID所标识的接口转发该
请求消息,执行步骤403;
[0067] 步骤409:从接口y0接收到该请求消息的骨干节点选择一个密钥表项E1,该密钥表项的接口ID为y0,如果该密钥表项E1中的加密前缀等于该请求消息中的目的加密前缀或者
最终加密前缀,则执行步骤410,否则执行步骤424;
[0068] 步骤410:从接口y0接收到该请求消息的骨干节点利用该密钥表项E1的密钥解密该请求消息中的加密名称和最终加密前缀分别获取名称NA4和前缀FP4,该骨干节点判断是
否存在一个处理表项,该处理表项的前缀等于FP4,名称等于NA4且接口ID集合包含y0,如果
存在,则执行步骤419,否则执行步骤411;
[0069] 步骤411:从接口y0接收到该请求消息的骨干节点判断是否存在一个处理表项,该处理表项的前缀等于FP4,名称等于NA4,如果存在,则执行步骤412,否则执行步骤413;
[0070] 步骤412:从接口y0接收到该请求消息的骨干节点选择一个处理表项,该处理表项的前缀等于FP4,名称等于NA4,将y0加入到该处理表项的接口ID集合中,执行步骤419;
[0071] 步骤413:从接口y0接收到该请求消息的骨干节点创建一个处理表项,该处理表项的前缀等于FP4,名称等于NA4,该处理表项的接口ID集合只包含一个元素y0,如果密钥表项
E1中的加密前缀等于该请求消息中的目的加密前缀,则执行步骤414,否则执行步骤415;
[0072] 步骤414:从接口y0接收到该请求消息的骨干节点选择一个转发表项,该转发表项的接口ID等于y0且最终加密前缀等于该请求消息中的最终加密前缀,将该请求消息的目的
加密前缀设置为该转发表项的目的加密前缀,从接口y0转发该请求消息,执行步骤403;
[0073] 步骤415:从接口y0接收到该请求消息的骨干节点选择一个主机表项,该主机表项的名称集合中包含名称NA4,选择一个密钥表项E2,密钥表项E2的接口ID等于该主机表项的
接口ID,利用密钥表项E2的密钥加密名称NA4和前缀FP4分别获取加密名称ENA4和加密前缀
EFP4,将该请求消息的加密名称和最终加密前缀分别设置为加密名称ENA4和加密前缀
EFP4,将该请求消息的标识位设置为1,从该主机表项的接口ID所标识的接口转发该请求消
息,执行步骤403;
[0074] 步骤416:接收到该请求消息的主机节点判断该请求消息的标识位是否为1,如果是,则执行步骤417,否则执行步骤424;
[0075] 步骤417:接收到该请求消息的主机节点利用自己的密钥解密该请求消息中的加密名称获取名称,如果该主机节点能够提供该名称定义的数据,则执行步骤418,否则执行
步骤424;
[0076] 步骤418:接收到该请求消息的主机节点利用自己的密钥加密产生的数据获取加密数据,发送一个响应消息,该响应消息的消息ID为5,加密名称等于该请求消息中的加密
名称,加密数据等于获取的加密数据,加密前缀等于该请求消息中的最终加密前缀;
[0077] 步骤419:如果主机节点接收到该响应消息,则执行步骤423,否则执行步骤420;
[0078] 步骤420:从接口y2接收到该响应消息的骨干节点选择一个密钥表项,该密钥表项的接口ID等于y2,利用该密钥表项的密钥分别解密该响应消息中的加密名称、加密数据和
加密前缀分别获取名称N5、数据D5和前缀P5,该骨干节点判断是否存在一个处理表项,该处
理表项的名称和前缀分别等于N5和P5,如果存在,则执行步骤421,否则执行步骤424;
[0079] 步骤421:从接口y2接收到该响应消息的骨干节点选择一个处理表项,该处理表项的名称和前缀分别等于N5和P5,针对该处理表项中接口ID集合中的每个接口IDFID1执行下
述操作:该骨干节点选择一个密钥表项,该密钥表项的接口ID等于FID1,利用该密钥表项的
密钥分别加密名称N5、数据D5和前缀P5获取加密名称EN5,加密数据ED5和加密前缀EP5,将
该响应消息的加密名称、加密数据和加密前缀分别设置为EN5、ED5和EP5,从接口FID1标识
的接口发送该响应消息;
[0080] 步骤422:从接口y2接收到该响应消息的骨干节点选择一个处理表项,该处理表项的名称和前缀分别等于N5和P5,删除该处理表项,执行步骤419;
[0081] 步骤423:接收到该响应消息的主机节点利用自己的密钥分别解密该响应消息中的加密名称、加密数据和加密前缀分别获取名称、数据和前缀;
[0082] 步骤424:结束。
[0083] 主机节点通过上述过程发送请求消息从目的主机节点获取目标数据,由于上述过程通过加密数据进行传输,因此实现了数据通信的安全性,同时上述过程通过转发表实现
路由从而提高了数据通信效率。
[0084] 有益效果:本发明提供了一种基于物联网云的安全智能监测系统实现方法,在所述系统中,用户节点通过单播可以快速获取数据从而实现对各种环境的实时监控,降低了
系统成本,提高了系统性能。本发明可应用于农业大棚环境监测、智能家居环境监测、道路
环境监测、空气污染等领域,具有广泛的应用前景。

附图说明

[0085] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0086] 图1为本发明所述的主机表建立流程示意图。
[0087] 图2为本发明所述的转发表建立流程示意图。
[0088] 图3为本发明所述的数据推送流程示意图。
[0089] 图4为本发明所述的数据通信流程示意图。具体实施方式:
[0090] 本发明提供了一种基于物联网云的安全智能监测系统实现方法,在所述系统中,用户节点通过单播可以快速获取数据从而实现对各种环境的实时监控,降低了系统成本,
提高了系统性能。本发明可应用于农业大棚环境监测、智能家居环境监测、道路环境监测、
空气污染等领域,具有广泛的应用前景
[0091] 图1为本发明所述的主机表建立流程示意图。所述安全智能监测系统包括两个以上的节点,节点分为骨干节点和主机节点;
[0092] 每个骨干节点配置X种不同的接口,每种接口使用不同的通信协议,该通信协议称为该接口的接口ID,不同的通信标准使用不同的频段;接口ID为p的接口简写成接口p;X取
值范围为5‑20;
[0093] 每个骨干节点的坐标具有唯一性;每个骨干节点具有唯一的前缀,该前缀是该骨干节点的坐标;
[0094] 所述安全智能监测系统为每种接口的接口ID配置一个密钥;加密后的前缀称为加密前缀;
[0095] 每个骨干节点保存一个密钥表,一个密钥表项包含密钥、接口ID和加密前缀;
[0096] 所述安全智能监测系统为每个骨干节点配置X种接口的接口ID的密钥;
[0097] 骨干节点针对自己的每个接口执行下述操作:骨干节点利用定义该接口的接口ID的密钥和预先设置的对称加密算法加密自己的前缀获取加密前缀,创建一个密钥表项,该
密钥表项的密钥为定义该接口的接口ID的密钥,接口ID为定义该接口的接口ID,加密前缀
为获取的加密前缀;对称加密算法例如高级加密标准算法,AdvancedEncryptionStandard;
[0098] 每个主机节点配置一个接口和定义该接口的接口ID的密钥,该密钥称为该主机节点的密钥;
[0099] 一种数据由一个名称标识;一个主机节点能产生一种以上的类型的数据;
[0100] 一个主机节点同一时刻只与一个骨干节点链接;一个骨干节点和所有与自己链接的主机节点构成一个云;骨干节点维护一个主机表,一个主机表项包含接口ID和名称集合;
一个消息由消息ID定义;所述系统定义了注册消息、路由消息、推送消息、请求消息和响应
消息,消息ID分别为1、2、3、4和5;
[0101] 加密之后的名称称为加密名称;由加密名称构成的集合称为加密名称集合;注册消息包含消息ID和加密名称集合;
[0102] 主机节点H1与骨干节点CN1链接,定义主机节点H1产生的数据的名称构成名称集合NS1,主机节点H1定期执行下述操作:
[0103] 步骤101:开始;
[0104] 步骤102:主机节点H1设置一个名称集合变量np1,变量np1的值为NS1,设置一个加密名称集合变量ep1,变量ep1的值为空集;
[0105] 步骤103:主机节点H1从变量np1中随机选取一个名称,用自己的密钥和预先设置的对称加密算法获取加密名称,将获取的加密名称加入到变量ep1中,从变量np1中删除选
取的名称;
[0106] 步骤104:主机节点H1判断变量np1是否为空集,如果是,则执行步骤105,否则执行步骤103;
[0107] 步骤105:主机节点H1发送一个注册消息,该注册消息的消息ID为1,加密名称集合等于变量ep1的值;
[0108] 步骤106:骨干节点CN1从接口f1接收到该注册消息后,选择一个密钥表项,该密钥表项的接口ID等于f1,骨干节点设置一个名称集合变量np2,变量np2的值为空集,设置一个
加密名称集合变量ep2,变量ep2的值等于该注册消息中的加密名称集合;
[0109] 步骤107:骨干节点CN1从变量ep2中随机选取一个加密名称,利用选择的密钥表项中的密钥和预先设置的对称加密算法解密该加密名称获取名称,将获取的名称加入到变量
np2中,从变量ep2中删除选取的加密名称;
[0110] 步骤108:骨干节点CN1判断变量ep2是否为空集,如果是,则执行步骤109,否则执行步骤107;
[0111] 步骤109:骨干节点CN1判断是否存在一个主机表项,该主机表项的接口ID等于f1且名称集合等于变量np2,如果是,则执行步骤111,否则执行步骤110;
[0112] 步骤110:骨干节点CN1创建一个主机表项,该主机表项的接口ID等于f1,名称集合等于变量np2;
[0113] 步骤111:结束
[0114] 主机节点通过上述过程发送注册消息从而在链接的骨干节点建立主机表,这样骨干节点能够保存每个链接的主机节点的接口的接口ID以及能提供的数据的名称集合,从而
通过正确的接口ID实现消息的正确转发,从而确保数据通信的正确性和高效性。
[0115] 图2为本发明所述的转发表建立流程示意图。每个骨干节点保存一个转发表,转发表项包含接口ID、最终加密前缀、目的加密前缀和生命周期;路由消息包含消息ID、最终加
密前缀和目的加密前缀;骨干节点CN1定期执行下述操作:
[0116] 步骤201:开始;
[0117] 步骤202:针对自己的每个密钥表项,骨干节点CN1构建一个路由消息,该路由消息的消息ID为2,最终加密前缀和目的加密前缀均等于该密钥表项中的加密前缀,从该密钥表
项的接口ID所标识的接口发送该路由消息;
[0118] 步骤203:从接口f2接收到该路由消息的骨干节点判断是否存在一个转发表项,该转发表项的接口ID等于f2,最终加密前缀等于该路由消息中的最终加密前缀且生命周期大
于阈值TH0,阈值TH0的取值范围为最大生命周期的95%‑99%,如果存在,则执行步骤208,
否则执行步骤204;
[0119] 步骤204:从接口f2接收到该路由消息的骨干节点判断是否存在一个转发表项,该转发表项的接口ID等于f2,最终加密前缀等于该路由消息中的最终加密前缀,如果存在,则
执行步骤205,否则执行步骤206;
[0120] 步骤205:从接口f2接收到该路由消息的骨干节点选择一个转发表项,该转发表项的接口ID等于f2,最终加密前缀等于该路由消息中的最终加密前缀,将该转发表项的目的
加密前缀设置为该路由消息中的目的加密前缀,将生命周期设置为最大值,执行步骤207;
[0121] 步骤206:从接口f2接收到该路由消息的骨干节点创建一个转发表项,该转发表项的接口ID等于f2,最终加密前缀等于该路由消息中的最终加密前缀,将该转发表项的目的
加密前缀设置为该路由消息中的目的加密前缀,将生命周期设置为最大值;
[0122] 步骤207:从接口f2接收到该路由消息的骨干节点选择一个密钥表项,该密钥表项的接口ID等于f2,将该路由消息中的目的加密前缀设置为该密钥表项中的加密前缀,从接
口f2转发该路由消息,执行步骤203;
[0123] 步骤208:结束
[0124] 骨干节点通过上述过程从自己的每个接口发送路由消息从而建立自己到达每个骨干节点的路由路径,上述过程通过生命周期来确保路由路径的最优性和有效性,通过目
的加密前缀能够将消息正确转发从而实现高效安全的数据通信。
[0125] 图3为本发明所述的数据推送流程示意图。推送消息包含消息ID、加密名称、加密数据、源加密前缀、目的加密前缀和最终加密前缀;
[0126] 在数据DA1由名称NA1标识,主机节点H2能够产生数据DA1的条件下,如果主机节点H2检测到数据DA1超出阈值范围,则执行下述操作:
[0127] 步骤301:开始;
[0128] 步骤302:主机节点H2利用自己的密钥分别加密数据DA1和名称NA1获取加密数据EDA1和加密名称ENA1,发送一个推送消息,该推送消息的消息ID为3,加密名称和加密数据
分别为ENA1和EDA1,源加密前缀、目的加密前缀和最终加密前缀均为空;
[0129] 步骤303:如果主机节点接收到该推送消息,则执行步骤312,否则执行步骤304;
[0130] 步骤304:从接口x0接收到该推送消息的骨干节点判断该推送消息的源加密前缀是否为空,如果是,则执行步骤305,否则执行步骤308;
[0131] 步骤305:从接口x0接收到该推送消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为x0,利用该密钥表项的密钥解密该推送消息中的加密名称和加密数据分别获取
名称NA0和数据DA0,该骨干节点设置一个前缀集合变量pp1,变量pp1的值为空集,选择所有
接口ID等于x0的转发表项,针对每个转发表项,该骨干节点利用该密钥表项的密钥解密该
转发表项中的最终加密前缀获取前缀,将获取的前缀加入到变量pp1中;
[0132] 步骤306:从接口x0接收到该推送消息的骨干节点随机从变量pp1中选取一个前缀PR1,随机选择一个接口,选择一个密钥表项,该密钥表项的接口ID等于随机选中的接口的
接口ID,利用该密钥表项的密钥加密名称NA0,数据DA0、自己的前缀和前缀PR1分别获取加
密名称ENA0,加密数据EDA0、加密前缀EPR0和加密前缀EPR1,将该推送消息的加密名称、加
密数据、源加密前缀和最终加密前缀分别设置为ENA0、EDA0、EPR0和EPR1,选择一个转发表
项,该转发表项的接口ID等于选中的接口的接口ID且最终加密前缀等于EPR1,将该推送消
息的目的加密前缀设置为该转发表项的目的加密前缀,从该转发表项的接口ID所标识的接
口转发该推送消息,从变量pp1中删除前缀PR1;
[0133] 步骤307:如果变量pp1为空集,则执行步骤303,否则执行步骤306;
[0134] 步骤308:从接口x0接收到该推送消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为x0,如果该密钥表项中的加密前缀等于该推送消息中的目的加密前缀,则执行
步骤309,否则执行步骤310;
[0135] 步骤309:从接口x0接收到该推送消息的骨干节点选择一个转发表项,该转发表项的接口ID等于x0且最终加密前缀等于该推送消息中的最终加密前缀,将该推送消息的目的
加密前缀设置为该转发表项的目的加密前缀,从接口x0转发该推送消息,执行步骤303;
[0136] 步骤310:从接口x0接收到该推送消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为x0,如果该密钥表项中的加密前缀等于该推送消息中的最终加密前缀,则执行
步骤311,否则执行步骤314;
[0137] 步骤311:从接口x0接收到该推送消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为x0,利用该密钥表项的密钥解密该推送消息中的加密名称、加密数据和源加密
前缀获取名称A1,数据D1和前缀P1,针对自己的每个接口,该骨干节点执行下述操作:选择
一个密钥表项E0,密钥表项E0的接口ID等于该接口的接口ID,利用密钥表项E0的密钥加密
名称A1、数据D1和前缀P1分别获取加密名称EA1、加密数据ED1和加密前缀EP1,将该推送消
息的加密名称、加密数据和加密前缀分别设置为加密名称EA1、加密数据ED1和加密前缀
EP1,将该推送消息的最终加密前缀和目的加密前缀均设置为空,从该接口转发该推送消
息,执行步骤303;
[0138] 步骤312:接收到该推送消息的主机节点判断该推送消息的最终加密前缀和目的加密前缀是否为空,如果是,则执行步骤313,否则执行步骤314;
[0139] 步骤313:接收到该推送消息的主机节点利用自己的密钥解密该推送消息中的加密名称、加密数据和源加密前缀获取名称、数据和前缀;
[0140] 步骤314:结束
[0141] 主机节点通过上述过程发送推送消息从而使所有的主机节点能够获取推送的数据,由于上述过程通过加密数据进行推送,从而确保的数据通信的安全性,同时,上述数据
通过不同的接口到达不同的骨干节点,从而提高的数据通信的高效性。
[0142] 图4为本发明所述的数据通信流程示意图。请求消息包含消息ID、加密名称、标识位、目的加密前缀和最终加密前缀;
[0143] 响应消息包含消息ID、加密名称、加密数据和加密前缀;
[0144] 一个骨干节点保存一个处理表,一个处理表项包含前缀、名称和接口ID集合;
[0145] 骨干节点CN1的前缀为R1,主机节点H2与骨干节点CN2链接,通过下述过程获取与骨干节点CN1链接的任一个主机节点产生的由名称NA2定义的数据:
[0146] 步骤401:开始;
[0147] 步骤402:主机节点H2利用自己的密钥分别加密名称NA2和前缀R1获取加密名称EN2和加密前缀ER1,主机节点H2发送一个请求消息,该请求消息的消息ID为4,加密名称和
加密最终加密前缀分别为EN2和ER1,目的加密前缀为空,标识位为0;
[0148] 步骤403:如果主机节点接收到该请求消息,则执行步骤416,否则执行步骤404;
[0149] 步骤404:从接口y0接收到该请求消息的骨干节点判断该请求消息的目的加密前缀是否为空,如果是,则执行步骤405,否则执行步骤409;
[0150] 步骤405:从接口y0接收到该请求消息的骨干节点选择一个密钥表项,该密钥表项的接口ID为y0,利用该密钥表项的密钥解密该请求消息中的加密名称和最终加密前缀分别
获取名称NA3和前缀FP3,该骨干节点判断是否存在一个处理表项,该处理表项的前缀等于
FP3,名称等于NA3且接口ID集合包含y0,如果存在,则执行步骤419,否则执行步骤406;
[0151] 步骤406:从接口y0接收到该请求消息的骨干节点判断是否存在一个处理表项,该处理表项的前缀等于FP3,名称等于NA3,如果存在,则执行步骤407,否则执行步骤408;
[0152] 步骤407:从接口y0接收到该请求消息的骨干节点选择一个处理表项,该处理表项的前缀等于FP3,名称等于NA3,将y0加入到该处理表项的接口ID集合中,执行步骤419;
[0153] 步骤408:从接口y0接收到该请求消息的骨干节点创建一个处理表项,该处理表项的前缀等于FP3,名称等于NA3,该处理表项的接口ID集合只包含一个元素y0,该骨干节点随
机选择一个接口,选择一个密钥表项,该密钥表项的接口ID等于随机选中的接口的接口ID,
利用该密钥表项的密钥加密名称NA3和前缀FP3分别获取加密名称ENA3和加密前缀EFP3,将
该请求消息的加密名称和最终加密前缀分别设置为ENA3和EFP3,选择一个转发表项,该转
发表项的接口ID等于选中的接口的接口ID且最终加密前缀等于EFP3,将该请求消息的目的
加密前缀设置为该转发表项的目的加密前缀,从该转发表项的接口ID所标识的接口转发该
请求消息,执行步骤403;
[0154] 步骤409:从接口y0接收到该请求消息的骨干节点选择一个密钥表项E1,该密钥表项的接口ID为y0,如果该密钥表项E1中的加密前缀等于该请求消息中的目的加密前缀或者
最终加密前缀,则执行步骤410,否则执行步骤424;
[0155] 步骤410:从接口y0接收到该请求消息的骨干节点利用该密钥表项E1的密钥解密该请求消息中的加密名称和最终加密前缀分别获取名称NA4和前缀FP4,该骨干节点判断是
否存在一个处理表项,该处理表项的前缀等于FP4,名称等于NA4且接口ID集合包含y0,如果
存在,则执行步骤419,否则执行步骤411;
[0156] 步骤411:从接口y0接收到该请求消息的骨干节点判断是否存在一个处理表项,该处理表项的前缀等于FP4,名称等于NA4,如果存在,则执行步骤412,否则执行步骤413;
[0157] 步骤412:从接口y0接收到该请求消息的骨干节点选择一个处理表项,该处理表项的前缀等于FP4,名称等于NA4,将y0加入到该处理表项的接口ID集合中,执行步骤419;
[0158] 步骤413:从接口y0接收到该请求消息的骨干节点创建一个处理表项,该处理表项的前缀等于FP4,名称等于NA4,该处理表项的接口ID集合只包含一个元素y0,如果密钥表项
E1中的加密前缀等于该请求消息中的目的加密前缀,则执行步骤414,否则执行步骤415;
[0159] 步骤414:从接口y0接收到该请求消息的骨干节点选择一个转发表项,该转发表项的接口ID等于y0且最终加密前缀等于该请求消息中的最终加密前缀,将该请求消息的目的
加密前缀设置为该转发表项的目的加密前缀,从接口y0转发该请求消息,执行步骤403;
[0160] 步骤415:从接口y0接收到该请求消息的骨干节点选择一个主机表项,该主机表项的名称集合中包含名称NA4,选择一个密钥表项E2,密钥表项E2的接口ID等于该主机表项的
接口ID,利用密钥表项E2的密钥加密名称NA4和前缀FP4分别获取加密名称ENA4和加密前缀
EFP4,将该请求消息的加密名称和最终加密前缀分别设置为加密名称ENA4和加密前缀
EFP4,将该请求消息的标识位设置为1,从该主机表项的接口ID所标识的接口转发该请求消
息,执行步骤403;
[0161] 步骤416:接收到该请求消息的主机节点判断该请求消息的标识位是否为1,如果是,则执行步骤417,否则执行步骤424;
[0162] 步骤417:接收到该请求消息的主机节点利用自己的密钥解密该请求消息中的加密名称获取名称,如果该主机节点能够提供该名称定义的数据,则执行步骤418,否则执行
步骤424;
[0163] 步骤418:接收到该请求消息的主机节点利用自己的密钥加密产生的数据获取加密数据,发送一个响应消息,该响应消息的消息ID为5,加密名称等于该请求消息中的加密
名称,加密数据等于获取的加密数据,加密前缀等于该请求消息中的最终加密前缀;
[0164] 步骤419:如果主机节点接收到该响应消息,则执行步骤423,否则执行步骤420;
[0165] 步骤420:从接口y2接收到该响应消息的骨干节点选择一个密钥表项,该密钥表项的接口ID等于y2,利用该密钥表项的密钥分别解密该响应消息中的加密名称、加密数据和
加密前缀分别获取名称N5、数据D5和前缀P5,该骨干节点判断是否存在一个处理表项,该处
理表项的名称和前缀分别等于N5和P5,如果存在,则执行步骤421,否则执行步骤424;
[0166] 步骤421:从接口y2接收到该响应消息的骨干节点选择一个处理表项,该处理表项的名称和前缀分别等于N5和P5,针对该处理表项中接口ID集合中的每个接口IDFID1执行下
述操作:该骨干节点选择一个密钥表项,该密钥表项的接口ID等于FID1,利用该密钥表项的
密钥分别加密名称N5、数据D5和前缀P5获取加密名称EN5,加密数据ED5和加密前缀EP5,将
该响应消息的加密名称、加密数据和加密前缀分别设置为EN5、ED5和EP5,从接口FID1标识
的接口发送该响应消息;
[0167] 步骤422:从接口y2接收到该响应消息的骨干节点选择一个处理表项,该处理表项的名称和前缀分别等于N5和P5,删除该处理表项,执行步骤419;
[0168] 步骤423:接收到该响应消息的主机节点利用自己的密钥分别解密该响应消息中的加密名称、加密数据和加密前缀分别获取名称、数据和前缀;
[0169] 步骤424:结束。
[0170] 主机节点通过上述过程发送请求消息从目的主机节点获取目标数据,由于上述过程通过加密数据进行传输,因此实现了数据通信的安全性,同时上述过程通过转发表实现
路由从而提高了数据通信效率。
[0171] 实施例1
[0172] 基于表1的仿真参数,本实施例模拟了本发明中的一种基于物联网云的安全智能监测系统实现方法。主机节点H1启动后,执行步骤101‑111定期向所连接的骨干节点CN1发
送一个注册消息,骨干节点CN1从接口f1接收到该注册消息后,解密该注册消息中的每个加
密名称获取名称,并创建一个主机表项,该主机表项的接口ID等于f1,名称集合等于解密后
的名称集合,例如接口ID为IEEE 802.11,名称集合为(temperature,humidity)。主机节点
通过上述过程发送注册消息从而在链接的骨干节点建立主机表,这样骨干节点能够保存每
个链接的主机节点的接口的接口ID以及能提供的数据的名称集合,从而通过正确的接口ID
实现消息的正确转发,从而确保数据通信的正确性和高效性。骨干节点启动后,定期执行步
骤201‑208从自己的每个接口发送路由消息从而在其他骨干节点建立自己的转发表项进而
建立自己到达每个骨干节点的路由路径,在其他骨干节点从接口f2接收到该路由消息后,
建立一个转发表项,例如,该转发表项的接口ID为IEEE  802.11,最终加密坐标为
(abxy03fd,4fdcfEB6),加密坐标前缀等于(80afde97,y8xt56tq),生命周期为500ms。上述
过程通过生命周期来确保转发表的有效性和路由路径的最优性,通过目的加密前缀能够实
现消息的正确转发从而实现高效安全的数据通信。如果主机节点H2检测到数据DA1超出阈
值范围,例如temperature(温度)超高30摄氏度,则执行步骤301‑314发送推送消息从而使
其他所有主机节点获取推送的数据,由于上述过程通过加密数据进行推送,从而确保的数
据通信的安全性,同时,上述数据通过不同的接口到达不同的骨干节点,从而提高的数据通
信的高效性。如果主机节点H2想获取某个区域的数据,例如该区域的温度,则执行步骤401‑
424来获取该数据,例如获取的区域为某个农业大棚中的温度值,这样主机节点H2能够实现
对该区域温度值的实时监测。由于上述数据过程通过加密数据进行传输,因此实现了数据
通信的安全性,同时上述过程通过转发表实现路由从而提高了数据通信效率。当主机节点
H2距离目的区域距离较远时,数据通信代价随之增加,当主机节点H2距离目的区域距离较
近时,数据通信代价随之降低,主机节点获取数据的平均代价延迟为6.7。
[0173] 表1仿真参数
[0174]
[0175] 本发明提供了一种基于物联网云的安全智能监测系统实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技
术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,
这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有
技术加以实现。