本发明涉及一种实现系统,尤其涉及的是一种基于簇的物联网数据访问系统的实现方法。
背景技术:
:物联网具有结构紧凑、易于布置、易于维护、价格便宜、测量精度高等优点,非常适合环境监测。近年来,国内外研究人员对基于物联网的安全系统进行了相关研究,并取得了一定的研究成果。但是目前基于物联网的安全系统具有一点过的局限性,因此代价和延迟较大。如何降低安全的物联网系统延迟成为近年来研究的热点问题。技术实现要素:发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于簇的物联网数据访问系统的实现方法。技术方案:本发明公开了一种基于簇的物联网数据访问系统的实现方法,所述物联网包括接入节点和普通节点,一种类型的数据由一个名称唯一标识;一个普通节点与一个接入节点链接;普通节点用于产生数据,例如传感节点,接入节点用于执行转发功能;有权限产生或者获取一种以上类型数据的普通节点构成一个簇,构成簇的普通节点称为簇成员;一个簇由一个簇id唯一标识;一个普通节点能够成为两个以上簇的簇成员;每个簇具有一个公钥和私钥,该公钥和私钥由第三方认证数据中心计算机保存并签发;一个消息由消息类型定义,如下所示:消息类型值消息名称1获取消息2秘钥消息3刷新消息4上传消息5下载消息6确认消息一个接入节点保存一个簇表,一个簇表项包含簇id、公钥、私钥、秘钥集合、名称集合和时钟;一个组成员或者接入节点保存一个类型表,一个类型表项包含消息类型、加密消息类型和秘钥;一个接入节点向第三方认证数据中心计算机进行注册时获取所有的消息类型,所有簇的簇id、公钥和私钥,并获取非对称加密算法aea0和对称加密算法sea0,aea0可以是rsa加密算法,sea0可以是高级加密标准(英语:advancedencryptionstandard,缩写:aes);该接入节点还获取每个簇簇成员能够产生或者获取的所有数据的名称集合;针对每个簇cl0,该接入节点执行下述操作:步骤101:开始;步骤102:该接入节点产生一个随机数r0,随机数r0的值大于所有消息类型的总数,随机数r0的取值范围为0-216,产生r0个不同的秘钥,创建一个簇表项,该簇表项的簇id、公钥、私钥和名称集合分别等于簇cl0的簇id、公钥、私钥和名称集合,秘钥集合由r0个不同的秘钥构成,启动时钟,时钟设置为预定值t1,例如等于1min;步骤103:对于每个消息类型值t0,该接入节点使用簇cl0的公钥和算法aea0加密消息类型t0得到加密后的消息类型值et0,创建一个类型表项,该类型表项的消息类型为t0,加密消息类型为et0,秘钥为簇cl0的私钥;步骤104:结束。接入节点通过上述过程建立簇表和类型表,从而记录每个簇的公钥和私钥,同时产生该簇的多个秘钥,这样节点通过多个秘钥实现数据传输,从而增强了数据通信的安全性。本发明所述方法中,每个簇成员保存一个成员表,一个成员表项包含簇id、秘钥集合、公钥和私钥;一个簇成员向第三方认证数据中心计算机进行注册时获取所有的消息类型,该簇成员所属的每个簇的簇id、公钥和私钥,非对称加密算法aea0和对称加密算法sea0;针对该簇成员所属的每个簇cl00,该簇成员执行下述操作:步骤201:开始;步骤202:该簇成员创建一个成员表项,该成员表项簇id、公钥和私钥分别等于簇cl00的簇id、公钥和私钥,秘钥集合为空集;步骤203:对于每个消息类型值t00,该簇成员使用簇cl00的公钥和算法aea0加密消息类型t00得到加密后的消息类型值et00,创建一个类型表项,该类型表项的消息类型为t00,加密消息类型为et00,秘钥为簇cl00的私钥;步骤204:结束。簇成员通过上述过程建立成员表和类型表,从而记录每个簇的公钥和私钥,同时建立每个消息类型的类型表项,这样节点通过查询类型表项即可获取消息类型从而进行相应的操作,从而有效增强了数据通信的安全性和稳定性。本发明所述方法中,一个获取消息包含加密消息类型和加密簇id;一个秘钥消息包含加密消息类型、加密秘钥集合和加密簇id;普通节点nd1与接入节点ap1链接,针对每个成员表项me1,普通节点nd1执行下述操作:步骤301:开始;步骤302:普通节点nd1使用成员表项me1的公钥和算法aea0加密消息类型值1和成员表项me1中的簇id获取加密消息类型et1和加密簇idecid1;普通节点nd1发送一个获取消息,该获取消息的加密消息类型为et1,加密簇id为ecid1;步骤303:接入节点ap1接收到获取消息后,选择一个类型表项,该类型表项的加密消息类型等于该获取消息的加密消息类型;基于该类型表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1利用该类型表项的秘钥域值和算法aea0解密该获取消息的加密簇id;选择一个簇表项,该簇表项的簇id等于解密后的簇id,利用该簇表项的公钥和算法aea0加密消息类型值2以及该簇表项的簇id和秘钥集合获得加密后的消息类型值et2,加密簇idecid2以及加密秘钥集合ek2,发送一个秘钥消息,该秘钥消息的加密消息类型值为et2,加密簇id等于ecid2,加密秘钥集合等于ek2;步骤304:普通节点接收到秘钥消息后,判断自己是否存在一个类型表项,该类型表项的加密消息类型值等于该秘钥消息的加密消息类型,如果存在,则执行步骤305,否则执行步骤310;步骤305:接收到秘钥消息的普通节点选择一个类型表项,该类型表项的加密消息类型等于该秘钥消息的加密消息类型;基于该类型表项的消息类型值,该普通节点执行下述操作:该普通节点利用该类型表项的秘钥域值和算法aea0解密该秘钥消息中的加密秘钥集合和加密簇id;该普通节点选择一个成员表项,该成员表项的簇id等于解密后的簇id,将该成员表项的秘钥集合设置为解密后的秘钥集合;步骤306:该普通节点设置一个参数p0,参数p0的值等于解密后的秘钥集合;步骤307:该普通节点查看参数p0是否为空,如果是,则执行步骤310,否则执行步骤308;步骤308:该普通节点选择参数p0的第一个元素;针对每个消息类型m0,该普通节点利用该元素和算法sea0加密消息类型m0得到加密后的消息类型em0,创建一个类型表项,该类型表项的消息类型为m0,加密消息类型为em0,秘钥域值等于该元素;步骤309:该普通节点从参数p0中删除一个元素,执行步骤307;步骤310:结束。普通节点通过上述过程从链接的接入节点获取所在簇的秘钥集合并保存在成员表中,这样节点通过秘钥集合中的任何一个元素加密消息从而实现数据的安全通信;此外,节点通过上述过程建立了类型表,这样,节点通过加密的消息类型值可以获取消息类型值并执行相应的操作,从而确保了数据通信的正确性和安全性。本发明所述方法中,一个刷新消息包含加密消息类型,加密秘钥集合和加密簇id;如果接入节点ap1检测到簇表项ce1的时钟到期,则执行下述操作:步骤401:开始;步骤402:接入节点ap1创建一个随机数r1,随机数r1的值大于所有消息类型的总数,例如6,随机数r1的取值范围为0-216,创建r1个不同的秘钥,从簇表项ce1的秘钥集合中随机选择一个秘钥,利用该秘钥和算法sea0加密消息类型值3,簇表项ce1中的簇id和秘钥集合ks3获得加密后的消息类型et3,加密簇idecid3和加密秘钥集合eks3,其中秘钥集合ks3由r1个不同的秘钥构成;接入节点ap1将簇表项ce1的秘钥集合更新为ks3,启动簇表项ce1的时钟;接入节点ap1发送一个刷新消息,该刷新消息的加密消息类型为et3,加密秘钥集合为eks3,加密簇id为ecid3;步骤403:普通节点接收到刷新消息后判断自己是否存在一个类型表项te3,类型表项te3的加密消息类型值等于该刷新消息的加密消息类型值,如果存在,则执行步骤404,否则执行步骤408;步骤404:接收到刷新消息的普通节点根据类型表项te3的消息类型值执行下述操作:该普通节点利用类型表项te3的秘钥和算法sea0解密该刷新消息的加密秘钥集合和加密簇id;该普通节点选择一个成员表项,该成员表项的簇id等于解密后的簇id,对于该成员表项的秘钥集合中的每个元素e3,该普通节点选择所有秘钥域值等于元素e3的类型表项,删除选中的类型表项;该普通节点将该成员表项的秘钥集合设置为解密后的秘钥集合;该普通节点设置一个变量p1,变量p1的值等于解密后的秘钥集合;步骤405:接收到该刷新消息的普通节点判断变量p1的值是否为空集,如果是,则执行步骤408,否则执行步骤406;步骤406:接收到该刷新消息的普通节点选择变量p1的第一个元素,针对每个消息类型值y0,该普通节点利用该元素和算法sea0加密消息类型值y0得到加密后的消息类型值ey0,创建一个类型表项,该类型表项的消息类型值为y0,加密消息类型值为ey0,秘钥域值为该元素;步骤407:接收到该刷新消息的普通节点从变量p1中删除第一个元素,执行步骤405;步骤408:结束。接入节点通过上述过程定期更新每个簇的秘钥集合,并将该秘钥集合以加密形式发送给该簇簇成员,这样,节点通过该秘钥集合中的任一个秘钥上传加密数据实现数据的安全传输,接入节点也可以利用该秘钥集合中的任一个秘钥加密数据发送给节点,这样,节点能够安全地从接入节点获取数据。本发明所述方法中,每个接入节点保存一个数据表,一个数据表项包含名称、数据和生命周期;一个上传消息包含加密消息类型、加密名称、加密簇id和加密数据;数据da1由名称na1标识,普通节点nd1为簇g1的簇成员,簇g1的簇id为cid1,普通节点nd1与接入节点ap1链接;如果普通节点nd1产生数据da1,则执行下述操作:步骤501:开始;步骤502:普通节点nd1设置一个变量t4,变量t4的值为4,选择一个成员表项me4,成员表项me4的簇id等于cid1,利用成员表项me4的公钥和算法aea0加密消息类型值t4和簇idcid1得到加密后的消息类型et4和加密后的簇idecid4;普通节点nd1从成员表项me4的秘钥集合中选择第t4个元素,利用该元素和算法sea0加密名称na1和数据da1得到加密后的名称ena4和加密后的数据eda4;普通节点nd1发送一个上传消息,该上传消息的加密消息类型为et4,加密名称为ena4,加密数据为eda4,加密簇id为ecid4;步骤503:接入节点ap1接收到上传消息后,选择一个类型表项,该类型表项的加密消息类型值等于该上传消息的加密消息类型值;基于该类型表项的消息类型值a4,接入节点ap1执行下述操作:接入节点ap1利用该类型表项的秘钥域值和算法aea0解密该上传消息的加密簇id,选择一个簇表项,该簇表项的簇id等于解密后的簇id,从该簇表项的秘钥集合中选择第a4个元素,利用该元素与算法sea0解密该上传消息的加密名称和加密数据;接入节点ap1判断该簇表项的名称集合中是否包含解密后的名称,如果包含,则执行步骤504,否则执行步骤505;步骤504:接入节点ap1判断是否存在一个数据表项,该数据表项的名称等于解密后的名称,如果存在,则将该数据表项的数据域值更新为解密后的数据,将生命周期设置为最大值;否则接入节点ap1创建一个数据表项,该数据表项的名称等于解密后的名称,数据域值等于解密后的数据,将生命周期设置为最大值;步骤505:结束。普通节点通过上述过程将产生的数据加密后上传到接入节点;这样,其他节点可以从该接入节点安全地获取该数据,由于该数据通过生命周期来确保其有效性和实时性,因此提高了数据通信的成功率,此外,由于节点与链接的接入节点一跳可达,因此大幅度降低了数据上传延迟和代价。本发明所述方法中,一个下载消息包含加密消息类型、加密名称和加密簇id;一个确认消息包含加密消息类型,加密名称和加密数据;数据da1由名称na1标识;普通节点nd2为簇g1的组成员,簇g1的簇id为cid1,普通节点nd2与接入节点ap1链路相连;普通节点nd2通过下述过程获取数据da1:步骤601:开始;步骤602:普通节点nd2设置一个变量t5,变量t5的值为5,选择一个成员表项me5,成员表项me5的簇id等于cid1,利用成员表项me5的公钥和算法aea0加密消息类型值t5和簇idcid1得到加密后的消息类型et5和加密后的簇idecid5;普通节点nd1从成员表项me5的秘钥集合中选择第t5个元素,利用该元素和算法sea0加密名称na1得到加密后的名称ena5;普通节点nd2发送一个下载消息,该下载消息的加密消息类型为et5,加密名称为ena5,加密簇id为ecid5;步骤603:接入节点ap1接收到下载消息后,选择一个类型表项,该类型表项的加密消息类型值等于该下载消息的加密消息类型值;基于该类型表项的消息类型值a5,接入节点ap1执行下述操作:接入节点ap1利用该类型表项的秘钥域值和算法aea0解密该下载消息的加密簇id,选择一个簇表项,该簇表项的簇id等于解密后的簇id,从该簇表项的秘钥集合中选择第a5个元素,利用该元素与算法sea0解密该下载消息的加密名称;接入节点ap1判断该簇表项的名称集合中是否包含解密后的名称,如果包含,则执行步骤604,否则执行步骤607;步骤604:接入节点ap1选择一个数据表项,该数据表项的名称等于解密后的名称;接入节点ap1选择一个簇表项,该簇表项的簇id等于该下载消息解密后的簇id,从选中的簇表项的秘钥集合中随机选择一个元素,利用该元素和算法sea0加密消息类型值6和该数据表项的名称和数据域值分别获得加密后的消息类型值et6,加密名称ena6和加密数据eda6,发送一个确认消息,该确认消息的加密消息类型为et6,加密名称为ena6,加密数据为eda6;步骤605:普通节点接收到确认消息后判断自己是否存在一个类型表项te6,类型表项te6的加密消息类型值等于该确认消息的加密消息类型值,如果存在,则执行步骤606,否则执行步骤607;步骤606:接收到确认消息的普通节点根据类型表项te6的消息类型值执行下述操作:该普通节点利用类型表项te6的秘钥和算法sea0解密该确认消息的加密名称和加密数据;该普通节点保存解密后的名称和数据;步骤607:结束。普通节点通过上述过程从接入节点获取数据,上述过程通过从秘钥集合中选取一个秘钥加密名称和加密数据来确保数据通信过程的安全性,由于节点并没有id标识,因此实现了隐私保护;同时,上述过程节点与接入节点之间一跳可达,从而降低了数据通信的延迟和代价。有益效果:本发明提供了一种基于簇的物联网数据访问系统的实现方法,用户通过本发明所提供的一种基于簇的物联网数据访问系统的实现方法能够快速获取数据,本发明有效降低了数据获取的延迟和代价,从而有效提高网络服务性能。本发明可应用于智能医疗,智能监测、智能车联网等领域,具有广泛的应用前景。附图说明下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。图1为本发明所述的接入节点创建类型表流程示意图。图2为本发明所述的簇成员创建类型表流程示意图。图3为本发明所述的获取秘钥流程示意图。图4为本发明所述的更新秘钥流程示意图。图5为本发明所述的上传数据流程示意图。图6为本发明所述的数据通信流程示意图。具体实施方式:本发明提供了一种基于簇的物联网数据访问系统的实现方法,用户通过本发明所提供的一种基于簇的物联网数据访问系统的实现方法能够快速获取数据,本发明有效降低了数据获取的延迟和代价,从而有效提高网络服务性能。本发明可应用于智能医疗,智能监测、智能车联网等领域,具有广泛的应用前景。图1为本发明所述的接入节点创建类型表流程示意图。所述物联网包括接入节点和普通节点,一种类型的数据由一个名称唯一标识;一个普通节点与一个接入节点链接;普通节点用于产生数据,例如传感节点,接入节点用于执行转发功能;有权限产生或者获取一种以上类型数据的普通节点构成一个簇,构成簇的普通节点称为簇成员;一个簇由一个簇id唯一标识;一个普通节点能够成为两个以上簇的簇成员;每个簇具有一个公钥和私钥,该公钥和私钥由第三方认证数据中心计算机保存并签发;一个消息由消息类型定义,如下所示:消息类型值消息名称1获取消息2秘钥消息3刷新消息4上传消息5下载消息6确认消息一个接入节点保存一个簇表,一个簇表项包含簇id、公钥、私钥、秘钥集合、名称集合和时钟;一个组成员或者接入节点保存一个类型表,一个类型表项包含消息类型、加密消息类型和秘钥;一个接入节点向第三方认证数据中心计算机进行注册时获取所有的消息类型,所有簇的簇id、公钥和私钥,并获取非对称加密算法aea0和对称加密算法sea0,aea0可以是rsa加密算法,sea0可以是高级加密标准(英语:advancedencryptionstandard,缩写:aes);该接入节点还获取每个簇簇成员能够产生或者获取的所有数据的名称集合;针对每个簇cl0,该接入节点执行下述操作:步骤101:开始;步骤102:该接入节点产生一个随机数r0,随机数r0的值大于所有消息类型的总数,随机数r0的取值范围为0-216,产生r0个不同的秘钥,创建一个簇表项,该簇表项的簇id、公钥、私钥和名称集合分别等于簇cl0的簇id、公钥、私钥和名称集合,秘钥集合由r0个不同的秘钥构成,启动时钟,时钟设置为预定值t1,例如等于1min;步骤103:对于每个消息类型值t0,该接入节点使用簇cl0的公钥和算法aea0加密消息类型t0得到加密后的消息类型值et0,创建一个类型表项,该类型表项的消息类型为t0,加密消息类型为et0,秘钥为簇cl0的私钥;步骤104:结束。接入节点通过上述过程建立簇表和类型表,从而记录每个簇的公钥和私钥,同时产生该簇的多个秘钥,这样节点通过多个秘钥实现数据传输,从而增强了数据通信的安全性。图2为本发明所述的簇成员创建类型表流程示意图。每个簇成员保存一个成员表,一个成员表项包含簇id、秘钥集合、公钥和私钥;一个簇成员向第三方认证数据中心计算机进行注册时获取所有的消息类型,该簇成员所属的每个簇的簇id、公钥和私钥,非对称加密算法aea0和对称加密算法sea0;针对该簇成员所属的每个簇cl00,该簇成员执行下述操作:步骤201:开始;步骤202:该簇成员创建一个成员表项,该成员表项簇id、公钥和私钥分别等于簇cl00的簇id、公钥和私钥,秘钥集合为空集;步骤203:对于每个消息类型值t00,该簇成员使用簇cl00的公钥和算法aea0加密消息类型t00得到加密后的消息类型值et00,创建一个类型表项,该类型表项的消息类型为t00,加密消息类型为et00,秘钥为簇cl00的私钥;步骤204:结束。簇成员通过上述过程建立成员表和类型表,从而记录每个簇的公钥和私钥,同时建立每个消息类型的类型表项,这样节点通过查询类型表项即可获取消息类型从而进行相应的操作,从而有效增强了数据通信的安全性和稳定性。图3为本发明所述的获取秘钥流程示意图。一个获取消息包含加密消息类型和加密簇id;一个秘钥消息包含加密消息类型、加密秘钥集合和加密簇id;普通节点nd1与接入节点ap1链接,针对每个成员表项me1,普通节点nd1执行下述操作:步骤301:开始;步骤302:普通节点nd1使用成员表项me1的公钥和算法aea0加密消息类型值1和成员表项me1中的簇id获取加密消息类型et1和加密簇idecid1;普通节点nd1发送一个获取消息,该获取消息的加密消息类型为et1,加密簇id为ecid1;步骤303:接入节点ap1接收到获取消息后,选择一个类型表项,该类型表项的加密消息类型等于该获取消息的加密消息类型;基于该类型表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1利用该类型表项的秘钥域值和算法aea0解密该获取消息的加密簇id;选择一个簇表项,该簇表项的簇id等于解密后的簇id,利用该簇表项的公钥和算法aea0加密消息类型值2以及该簇表项的簇id和秘钥集合获得加密后的消息类型值et2,加密簇idecid2以及加密秘钥集合ek2,发送一个秘钥消息,该秘钥消息的加密消息类型值为et2,加密簇id等于ecid2,加密秘钥集合等于ek2;步骤304:普通节点接收到秘钥消息后,判断自己是否存在一个类型表项,该类型表项的加密消息类型值等于该秘钥消息的加密消息类型,如果存在,则执行步骤305,否则执行步骤310;步骤305:接收到秘钥消息的普通节点选择一个类型表项,该类型表项的加密消息类型等于该秘钥消息的加密消息类型;基于该类型表项的消息类型值,该普通节点执行下述操作:该普通节点利用该类型表项的秘钥域值和算法aea0解密该秘钥消息中的加密秘钥集合和加密簇id;该普通节点选择一个成员表项,该成员表项的簇id等于解密后的簇id,将该成员表项的秘钥集合设置为解密后的秘钥集合;步骤306:该普通节点设置一个参数p0,参数p0的值等于解密后的秘钥集合;步骤307:该普通节点查看参数p0是否为空,如果是,则执行步骤310,否则执行步骤308;步骤308:该普通节点选择参数p0的第一个元素;针对每个消息类型m0,该普通节点利用该元素和算法sea0加密消息类型m0得到加密后的消息类型em0,创建一个类型表项,该类型表项的消息类型为m0,加密消息类型为em0,秘钥域值等于该元素;步骤309:该普通节点从参数p0中删除一个元素,执行步骤307;步骤310:结束。节点通过上述过程从链接的接入节点获取所在簇的秘钥集合并保存在成员表中,这样节点通过秘钥集合中的任何一个元素加密消息从而实现数据的安全通信;此外,节点通过上述过程建立了类型表,这样,节点通过加密的消息类型值可以获取消息类型值并执行相应的操作,从而确保了数据通信的正确性和安全性。图4为本发明所述的更新秘钥流程示意图。一个刷新消息包含加密消息类型,加密秘钥集合和加密簇id;如果接入节点ap1检测到簇表项ce1的时钟到期,则执行下述操作:步骤401:开始;步骤402:接入节点ap1创建一个随机数r1,随机数r1的值大于所有消息类型的总数,例如6,随机数r1的取值范围为0-216,创建r1个不同的秘钥,从簇表项ce1的秘钥集合中随机选择一个秘钥,利用该秘钥和算法sea0加密消息类型值3,簇表项ce1中的簇id和秘钥集合ks3获得加密后的消息类型et3,加密簇idecid3和加密秘钥集合eks3,其中秘钥集合ks3由r1个不同的秘钥构成;接入节点ap1将簇表项ce1的秘钥集合更新为ks3,启动簇表项ce1的时钟;接入节点ap1发送一个刷新消息,该刷新消息的加密消息类型为et3,加密秘钥集合为eks3,加密簇id为ecid3;步骤403:普通节点接收到刷新消息后判断自己是否存在一个类型表项te3,类型表项te3的加密消息类型值等于该刷新消息的加密消息类型值,如果存在,则执行步骤404,否则执行步骤408;步骤404:接收到刷新消息的普通节点根据类型表项te3的消息类型值执行下述操作:该普通节点利用类型表项te3的秘钥和算法sea0解密该刷新消息的加密秘钥集合和加密簇id;该普通节点选择一个成员表项,该成员表项的簇id等于解密后的簇id,对于该成员表项的秘钥集合中的每个元素e3,该普通节点选择所有秘钥域值等于元素e3的类型表项,删除选中的类型表项;该普通节点将该成员表项的秘钥集合设置为解密后的秘钥集合;该普通节点设置一个变量p1,变量p1的值等于解密后的秘钥集合;步骤405:接收到该刷新消息的普通节点判断变量p1的值是否为空集,如果是,则执行步骤408,否则执行步骤406;步骤406:接收到该刷新消息的普通节点选择变量p1的第一个元素,针对每个消息类型值y0,该普通节点利用该元素和算法sea0加密消息类型值y0得到加密后的消息类型值ey0,创建一个类型表项,该类型表项的消息类型值为y0,加密消息类型值为ey0,秘钥域值为该元素;步骤407:接收到该刷新消息的普通节点从变量p1中删除第一个元素,执行步骤405;步骤408:结束。接入节点通过上述过程定期更新每个簇的秘钥集合,并将该秘钥集合以加密形式发送给该簇簇成员,这样,节点通过该秘钥集合中的任一个秘钥上传加密数据实现数据的安全传输,接入节点也可以利用该秘钥集合中的任一个秘钥加密数据发送给节点,这样,节点能够安全地从接入节点获取数据。图5为本发明所述的上传数据流程示意图。每个接入节点保存一个数据表,一个数据表项包含名称、数据和生命周期;一个上传消息包含加密消息类型、加密名称、加密簇id和加密数据;数据da1由名称na1标识,普通节点nd1为簇g1的簇成员,簇g1的簇id为cid1,普通节点nd1与接入节点ap1链接;如果普通节点nd1产生数据da1,则执行下述操作:步骤501:开始;步骤502:普通节点nd1设置一个变量t4,变量t4的值为4,选择一个成员表项me4,成员表项me4的簇id等于cid1,利用成员表项me4的公钥和算法aea0加密消息类型值t4和簇idcid1得到加密后的消息类型et4和加密后的簇idecid4;普通节点nd1从成员表项me4的秘钥集合中选择第t4个元素,利用该元素和算法sea0加密名称na1和数据da1得到加密后的名称ena4和加密后的数据eda4;普通节点nd1发送一个上传消息,该上传消息的加密消息类型为et4,加密名称为ena4,加密数据为eda4,加密簇id为ecid4;步骤503:接入节点ap1接收到上传消息后,选择一个类型表项,该类型表项的加密消息类型值等于该上传消息的加密消息类型值;基于该类型表项的消息类型值a4,接入节点ap1执行下述操作:接入节点ap1利用该类型表项的秘钥域值和算法aea0解密该上传消息的加密簇id,选择一个簇表项,该簇表项的簇id等于解密后的簇id,从该簇表项的秘钥集合中选择第a4个元素,利用该元素与算法sea0解密该上传消息的加密名称和加密数据;接入节点ap1判断该簇表项的名称集合中是否包含解密后的名称,如果包含,则执行步骤504,否则执行步骤505;步骤504:接入节点ap1判断是否存在一个数据表项,该数据表项的名称等于解密后的名称,如果存在,则将该数据表项的数据域值更新为解密后的数据,将生命周期设置为最大值;否则接入节点ap1创建一个数据表项,该数据表项的名称等于解密后的名称,数据域值等于解密后的数据,将生命周期设置为最大值;步骤505:结束。普通节点通过上述过程将产生的数据加密后上传到接入节点;这样,其他节点可以从该接入节点安全地获取该数据,由于该数据通过生命周期来确保其有效性和实时性,因此提高了数据通信的成功率,此外,由于节点与链接的接入节点一跳可达,因此大幅度降低了数据上传延迟和代价。图6为本发明所述的数据通信流程示意图。一个下载消息包含加密消息类型、加密名称和加密簇id;一个确认消息包含加密消息类型,加密名称和加密数据;数据da1由名称na1标识;普通节点nd2为簇g1的组成员,簇g1的簇id为cid1,普通节点nd2与接入节点ap1链路相连;普通节点nd2通过下述过程获取数据da1:步骤601:开始;步骤602:普通节点nd2设置一个变量t5,变量t5的值为5,选择一个成员表项me5,成员表项me5的簇id等于cid1,利用成员表项me5的公钥和算法aea0加密消息类型值t5和簇idcid1得到加密后的消息类型et5和加密后的簇idecid5;普通节点nd1从成员表项me5的秘钥集合中选择第t5个元素,利用该元素和算法sea0加密名称na1得到加密后的名称ena5;普通节点nd2发送一个下载消息,该下载消息的加密消息类型为et5,加密名称为ena5,加密簇id为ecid5;步骤603:接入节点ap1接收到下载消息后,选择一个类型表项,该类型表项的加密消息类型值等于该下载消息的加密消息类型值;基于该类型表项的消息类型值a5,接入节点ap1执行下述操作:接入节点ap1利用该类型表项的秘钥域值和算法aea0解密该下载消息的加密簇id,选择一个簇表项,该簇表项的簇id等于解密后的簇id,从该簇表项的秘钥集合中选择第a5个元素,利用该元素与算法sea0解密该下载消息的加密名称;接入节点ap1判断该簇表项的名称集合中是否包含解密后的名称,如果包含,则执行步骤604,否则执行步骤607;步骤604:接入节点ap1选择一个数据表项,该数据表项的名称等于解密后的名称;接入节点ap1选择一个簇表项,该簇表项的簇id等于该下载消息解密后的簇id,从选中的簇表项的秘钥集合中随机选择一个元素,利用该元素和算法sea0加密消息类型值6和该数据表项的名称和数据域值分别获得加密后的消息类型值et6,加密名称ena6和加密数据eda6,发送一个确认消息,该确认消息的加密消息类型为et6,加密名称为ena6,加密数据为eda6;步骤605:普通节点接收到确认消息后判断自己是否存在一个类型表项te6,类型表项te6的加密消息类型值等于该确认消息的加密消息类型值,如果存在,则执行步骤606,否则执行步骤607;步骤606:接收到确认消息的普通节点根据类型表项te6的消息类型值执行下述操作:该普通节点利用类型表项te6的秘钥和算法sea0解密该确认消息的加密名称和加密数据;该普通节点保存解密后的名称和数据;步骤607:结束。节点通过上述过程从接入节点获取数据,上述过程通过从秘钥集合中选取一个秘钥加密名称和加密数据来确保数据通信过程的安全性,由于节点并没有id标识,因此实现了隐私保护;同时,上述过程节点与接入节点之间一跳可达,从而降低了数据通信的延迟和代价。综上所述,本发明提供了一种基于簇的物联网数据访问系统的实现方法,用户通过本发明所提供的一种基于簇的物联网数据访问系统的实现方法能够快速获取数据,本发明有效降低了数据获取的延迟和代价,从而有效提高网络服务性能。本发明可应用于智能医疗,智能监测、智能车联网等领域,具有广泛的应用前景。实施例1基于表1的仿真参数,本实施例模拟了本发明中的一种基于簇的物联网数据访问系统的实现方法。接入节点启动后,向第三方认证数据中心计算机进行注册时获取所有的消息类型,所有簇的簇id、公钥和私钥,此外,该接入节点还获取每个簇簇成员能够产生或者获取的所有数据的名称集合,针对每个簇该接入节点执行步骤101-104建立簇表和类型表。接入节点通过上述过程建立簇表和类型表,从而记录每个簇的公钥和私钥,同时产生该簇的多个秘钥,这样节点通过多个秘钥实现数据传输,从而增强了数据通信的安全性。簇成员启动后,向第三方认证数据中心计算机进行注册时获取所有的消息类型,该簇成员所属的每个簇的簇id、公钥和私钥,针对该簇成员所属的每个簇,该簇成员执行步骤201-204建立成员表和类型表。簇成员通过上述过程建立成员表和类型表,从而记录每个簇的公钥和私钥,同时建立每个消息类型的类型表项,这样节点通过查询类型表项即可获取消息类型从而进行相应的操作,从而有效增强了数据通信的安全性和稳定性。节点nd1与接入节点ap1链接,针对每个成员表项me1,节点nd1执行步骤301-310发送一个获取消息和秘钥消息从链接的接入节点获取所在簇的秘钥集合。节点通过上述过程从链接的接入节点获取所在簇的秘钥集合并保存在成员表中,这样节点通过秘钥集合中的任何一个元素加密消息从而实现数据的安全通信;此外,节点通过上述过程建立了类型表,这样,节点通过加密的消息类型值可以获取消息类型值并执行相应的操作,从而确保了数据通信的正确性和安全性。如果接入节点ap1检测到簇表项ce1的时钟到期,则执行步骤401-408发送刷新消息更新每个簇的秘钥集合。接入节点通过上述过程定期更新每个簇的秘钥集合,并将该秘钥集合以加密形式发送给该簇簇成员,这样,节点通过该秘钥集合中的任一个秘钥上传加密数据实现数据的安全传输,接入节点也可以利用该秘钥集合中的任一个秘钥加密数据发送给节点,这样,节点能够安全地从接入节点获取数据。如果节点nd1产生数据da1后,则执行步骤501-505发送上传消息将数据加密后上传到链接的接入节点。节点通过上述过程将产生的数据加密后上传到接入节点;这样,其他节点可以从该接入节点安全地获取该数据,由于该数据通过生命周期来确保其有效性和实时性,因此提高了数据通信的成功率,此外,由于节点与链接的接入节点一跳可达,因此大幅度降低了数据上传延迟和代价。如果节点nd2想获取数据da1,则执行步骤601-607获取数据da1。节点通过上述过程从接入节点获取数据,上述过程通过从秘钥集合中选取一个秘钥加密名称和加密数据来确保数据通信过程的安全性,由于节点并没有id标识,因此实现了隐私保护;同时,上述过程节点与接入节点之间一跳可达,从而降低了数据通信的延迟和代价。针对一种基于簇的物联网数据访问系统的实现方法,性能分析如下,当加密数据量增加时,数据获取延迟随之增加,当加密数据量减少时,数据获取延迟随之减少,127.63ms。表1仿真参数参数描述参数值mac协议ieee802.11传输半径50米仿真次数10仿真时间20min本发明提供了一种基于簇的物联网数据访问系统的实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域:
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。当前第1页1 2 3 
技术特征:1.一种簇的物联网数据访问系统的实现方法,其特征在于,所述物联网包括接入节点和普通节点,一种类型的数据由一个名称唯一标识;一个普通节点与一个接入节点链接;普通节点用于产生数据,接入节点用于执行转发功能;
有权限产生或者获取一种以上类型数据的普通节点构成一个簇,构成簇的普通节点称为簇成员;一个簇由一个簇id唯一标识;一个普通节点能够成为两个以上簇的簇成员;
每个簇具有一个公钥和私钥,该公钥和私钥由第三方认证数据中心计算机保存并签发;
一个消息由消息类型定义,如下所示:
消息类型值消息名称
1获取消息
2秘钥消息
3刷新消息
4上传消息
5下载消息
6确认消息
一个接入节点保存一个簇表,一个簇表项包含簇id、公钥、私钥、秘钥集合、名称集合和时钟;
一个组成员或者接入节点保存一个类型表,一个类型表项包含消息类型、加密消息类型和秘钥;
一个接入节点向第三方认证数据中心计算机进行注册时获取所有的消息类型,所有簇的簇id、公钥和私钥,并获取非对称加密算法aea0和对称加密算法sea0;该接入节点还获取每个簇簇成员能够产生或者获取的所有数据的名称集合;针对每个簇cl0,该接入节点执行下述操作:
步骤101:开始;
步骤102:该接入节点产生一个随机数r0,随机数r0的值大于所有消息类型的总数,产生r0个不同的秘钥,创建一个簇表项,该簇表项的簇id、公钥、私钥和名称集合分别等于簇cl0的簇id、公钥、私钥和名称集合,秘钥集合由r0个不同的秘钥构成,启动时钟,时钟设置为预定值t1;
步骤103:对于每个消息类型值t0,该接入节点使用簇cl0的公钥和算法aea0加密消息类型t0得到加密后的消息类型值et0,创建一个类型表项,该类型表项的消息类型为t0,加密消息类型为et0,秘钥为簇cl0的私钥;
步骤104:结束。
2.根据权利要求1所述的一种簇的物联网数据访问系统的实现方法,其特征在于,
每个簇成员保存一个成员表,一个成员表项包含簇id、秘钥集合、公钥和私钥;
一个簇成员向第三方认证数据中心计算机进行注册时获取所有的消息类型,该簇成员所属的每个簇的簇id、公钥和私钥,非对称加密算法aea0和对称加密算法sea0;针对该簇成员所属的每个簇cl00,该簇成员执行下述操作:
步骤201:开始;
步骤202:该簇成员创建一个成员表项,该成员表项簇id、公钥和私钥分别等于簇cl00的簇id、公钥和私钥,秘钥集合为空集;
步骤203:对于每个消息类型值t00,该簇成员使用簇cl00的公钥和算法aea0加密消息类型t00得到加密后的消息类型值et00,创建一个类型表项,该类型表项的消息类型为t00,加密消息类型为et00,秘钥为簇cl00的私钥;
步骤204:结束。
3.根据权利要求1所述的一种簇的物联网数据访问系统的实现方法,其特征在于,
一个获取消息包含加密消息类型和加密簇id;
一个秘钥消息包含加密消息类型、加密秘钥集合和加密簇id;
普通节点nd1与接入节点ap1链接,针对每个成员表项me1,普通节点nd1执行下述操作:
步骤301:开始;
步骤302:普通节点nd1使用成员表项me1的公钥和算法aea0加密消息类型值1和成员表项me1中的簇id获取加密消息类型et1和加密簇idecid1;普通节点nd1发送一个获取消息,该获取消息的加密消息类型为et1,加密簇id为ecid1;
步骤303:接入节点ap1接收到获取消息后,选择一个类型表项,该类型表项的加密消息类型等于该获取消息的加密消息类型;基于该类型表项的消息类型值,接入节点ap1执行下述操作:接入节点ap1利用该类型表项的秘钥域值和算法aea0解密该获取消息的加密簇id;选择一个簇表项,该簇表项的簇id等于解密后的簇id,利用该簇表项的公钥和算法aea0加密消息类型值2以及该簇表项的簇id和秘钥集合获得加密后的消息类型值et2,加密簇idecid2以及加密秘钥集合ek2,发送一个秘钥消息,该秘钥消息的加密消息类型值为et2,加密簇id等于ecid2,加密秘钥集合等于ek2;
步骤304:普通节点接收到秘钥消息后,判断自己是否存在一个类型表项,该类型表项的加密消息类型值等于该秘钥消息的加密消息类型,如果存在,则执行步骤305,否则执行步骤310;
步骤305:接收到秘钥消息的普通节点选择一个类型表项,该类型表项的加密消息类型等于该秘钥消息的加密消息类型;基于该类型表项的消息类型值,该普通节点执行下述操作:该普通节点利用该类型表项的秘钥域值和算法aea0解密该秘钥消息中的加密秘钥集合和加密簇id;该普通节点选择一个成员表项,该成员表项的簇id等于解密后的簇id,将该成员表项的秘钥集合设置为解密后的秘钥集合;
步骤306:该普通节点设置一个参数p0,参数p0的值等于解密后的秘钥集合;
步骤307:该普通节点查看参数p0是否为空,如果是,则执行步骤310,否则执行步骤308;
步骤308:该普通节点选择参数p0的第一个元素;针对每个消息类型m0,该普通节点利用该元素和算法sea0加密消息类型m0得到加密后的消息类型em0,创建一个类型表项,该类型表项的消息类型为m0,加密消息类型为em0,秘钥域值等于该元素;
步骤309:该普通节点从参数p0中删除一个元素,执行步骤307;
步骤310:结束。
4.根据权利要求1所述的一种簇的物联网数据访问系统的实现方法,其特征在于,
一个刷新消息包含加密消息类型,加密秘钥集合和加密簇id;
如果接入节点ap1检测到簇表项ce1的时钟到期,则执行下述操作:
步骤401:开始;
步骤402:接入节点ap1创建一个随机数r1,随机数r1的值大于所有消息类型的总数,创建r1个不同的秘钥,从簇表项ce1的秘钥集合中随机选择一个秘钥,利用该秘钥和算法sea0加密消息类型值3,簇表项ce1中的簇id和秘钥集合ks3获得加密后的消息类型et3,加密簇idecid3和加密秘钥集合eks3,其中秘钥集合ks3由r1个不同的秘钥构成;接入节点ap1将簇表项ce1的秘钥集合更新为ks3,启动簇表项ce1的时钟;接入节点ap1发送一个刷新消息,该刷新消息的加密消息类型为et3,加密秘钥集合为eks3,加密簇id为ecid3;
步骤403:普通节点接收到刷新消息后判断自己是否存在一个类型表项te3,类型表项te3的加密消息类型值等于该刷新消息的加密消息类型值,如果存在,则执行步骤404,否则执行步骤408;
步骤404:接收到刷新消息的普通节点根据类型表项te3的消息类型值执行下述操作:该普通节点利用类型表项te3的秘钥和算法sea0解密该刷新消息的加密秘钥集合和加密簇id;该普通节点选择一个成员表项,该成员表项的簇id等于解密后的簇id,对于该成员表项的秘钥集合中的每个元素e3,该普通节点选择所有秘钥域值等于元素e3的类型表项,删除选中的类型表项;该普通节点将该成员表项的秘钥集合设置为解密后的秘钥集合;该普通节点设置一个变量p1,变量p1的值等于解密后的秘钥集合;
步骤405:接收到该刷新消息的普通节点判断变量p1的值是否为空集,如果是,则执行步骤408,否则执行步骤406;
步骤406:接收到该刷新消息的普通节点选择变量p1的第一个元素,针对每个消息类型值y0,该普通节点利用该元素和算法sea0加密消息类型值y0得到加密后的消息类型值ey0,创建一个类型表项,该类型表项的消息类型值为y0,加密消息类型值为ey0,秘钥域值为该元素;
步骤407:接收到该刷新消息的普通节点从变量p1中删除第一个元素,执行步骤405;
步骤408:结束。
5.根据权利要求1所述的一种簇的物联网数据访问系统的实现方法,其特征在于,
每个接入节点保存一个数据表,一个数据表项包含名称、数据和生命周期;
一个上传消息包含加密消息类型、加密名称、加密簇id和加密数据;
数据da1由名称na1标识,普通节点nd1为簇g1的簇成员,簇g1的簇id为cid1,普通节点nd1与接入节点ap1链接;如果普通节点nd1产生数据da1,则执行下述操作:
步骤501:开始;
步骤502:普通节点nd1设置一个变量t4,变量t4的值为4,选择一个成员表项me4,成员表项me4的簇id等于cid1,利用成员表项me4的公钥和算法aea0加密消息类型值t4和簇idcid1得到加密后的消息类型et4和加密后的簇idecid4;普通节点nd1从成员表项me4的秘钥集合中选择第t4个元素,利用该元素和算法sea0加密名称na1和数据da1得到加密后的名称ena4和加密后的数据eda4;普通节点nd1发送一个上传消息,该上传消息的加密消息类型为et4,加密名称为ena4,加密数据为eda4,加密簇id为ecid4;
步骤503:接入节点ap1接收到上传消息后,选择一个类型表项,该类型表项的加密消息类型值等于该上传消息的加密消息类型值;基于该类型表项的消息类型值a4,接入节点ap1执行下述操作:接入节点ap1利用该类型表项的秘钥域值和算法aea0解密该上传消息的加密簇id,选择一个簇表项,该簇表项的簇id等于解密后的簇id,从该簇表项的秘钥集合中选择第a4个元素,利用该元素与算法sea0解密该上传消息的加密名称和加密数据;接入节点ap1判断该簇表项的名称集合中是否包含解密后的名称,如果包含,则执行步骤504,否则执行步骤505;
步骤504:接入节点ap1判断是否存在一个数据表项,该数据表项的名称等于解密后的名称,如果存在,则将该数据表项的数据域值更新为解密后的数据,将生命周期设置为最大值;否则接入节点ap1创建一个数据表项,该数据表项的名称等于解密后的名称,数据域值等于解密后的数据,将生命周期设置为最大值;
步骤505:结束。
6.根据权利要求1所述的一种簇的物联网数据访问系统的实现方法,其特征在于,
一个下载消息包含加密消息类型、加密名称和加密簇id;
一个确认消息包含加密消息类型,加密名称和加密数据;
数据da1由名称na1标识;普通节点nd2为簇g1的组成员,簇g1的簇id为cid1,普通节点nd2与接入节点ap1链路相连;普通节点nd2通过下述过程获取数据da1:
步骤601:开始;
步骤602:普通节点nd2设置一个变量t5,变量t5的值为5,选择一个成员表项me5,成员表项me5的簇id等于cid1,利用成员表项me5的公钥和算法aea0加密消息类型值t5和簇idcid1得到加密后的消息类型et5和加密后的簇idecid5;普通节点nd1从成员表项me5的秘钥集合中选择第t5个元素,利用该元素和算法sea0加密名称na1得到加密后的名称ena5;普通节点nd2发送一个下载消息,该下载消息的加密消息类型为et5,加密名称为ena5,加密簇id为ecid5;
步骤603:接入节点ap1接收到下载消息后,选择一个类型表项,该类型表项的加密消息类型值等于该下载消息的加密消息类型值;基于该类型表项的消息类型值a5,接入节点ap1执行下述操作:接入节点ap1利用该类型表项的秘钥域值和算法aea0解密该下载消息的加密簇id,选择一个簇表项,该簇表项的簇id等于解密后的簇id,从该簇表项的秘钥集合中选择第a5个元素,利用该元素与算法sea0解密该下载消息的加密名称;接入节点ap1判断该簇表项的名称集合中是否包含解密后的名称,如果包含,则执行步骤604,否则执行步骤607;
步骤604:接入节点ap1选择一个数据表项,该数据表项的名称等于解密后的名称;接入节点ap1选择一个簇表项,该簇表项的簇id等于该下载消息解密后的簇id,从选中的簇表项的秘钥集合中随机选择一个元素,利用该元素和算法sea0加密消息类型值6和该数据表项的名称和数据域值分别获得加密后的消息类型值et6,加密名称ena6和加密数据eda6,发送一个确认消息,该确认消息的加密消息类型为et6,加密名称为ena6,加密数据为eda6;
步骤605:普通节点接收到确认消息后判断自己是否存在一个类型表项te6,类型表项te6的加密消息类型值等于该确认消息的加密消息类型值,如果存在,则执行步骤606,否则执行步骤607;
步骤606:接收到确认消息的普通节点根据类型表项te6的消息类型值执行下述操作:该普通节点利用类型表项te6的秘钥和算法sea0解密该确认消息的加密名称和加密数据;该普通节点保存解密后的名称和数据;
步骤607:结束。
技术总结本发明公开了一种簇的物联网数据访问系统的实现方法,其特征在于,所述物联网包括接入节点和普通节点,一种类型的数据由一个名称唯一标识;一个普通节点与一个接入节点链接;普通节点用于产生数据,接入节点用于执行转发功能;有权限产生或者获取一种以上类型数据的普通节点构成一个簇,构成簇的普通节点称为簇成员;一个簇由一个簇ID唯一标识;一个普通节点能够成为两个以上簇的簇成员。用户通过本发明所提供的一种基于簇的物联网数据访问系统的实现方法能够快速获取数据,本发明有效降低了数据获取的延迟和代价,从而有效提高网络服务性能。本发明可应用于智能医疗,智能监测、智能车联网等领域,具有广泛的应用前景。
技术研发人员:王晓喃;王兴伟;钱昕妍
受保护的技术使用者:常熟理工学院
技术研发日:2020.11.13
技术公布日:2021.03.12