一种匿名的无线网络数据查询实现方法
技术领域
本发明涉及一种实现方法,尤其涉及的是一种匿名的无线网络数据查询实现方法。
背景技术
物联网具有结构紧凑、易于布置、易于维护、价格便宜、测量精度高等优点,非常适合环境监测。近年来,国内外研究人员对基于物联网的安全系统进行了相关研究,并取得了一定的研究成果。但是目前基于物联网的安全系统具有一点过的局限性,因此代价和延迟较大。如何降低安全的物联网系统延迟成为近年来研究的热点问题。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种匿名的无线网络数据查询实现方法。
技术方案:本发明公开了一种匿名的无线网络数据查询实现方法,所述无线网络包括接入节点和普通节点,一个普通节点与一个接入节点链接;一种类型的数据由一个名称唯一标识;
有权限创建或者获取一种以上类型数据的普通节点构成一个组,构成组的普通节点称为组成员;一个组由一个组ID唯一标识;
每个接入节点的公钥和私钥由第三方认证数据中心计算机保存并签发,接入节点向第三方认证数据中心计算机进行注册时获取自己的公钥和私钥,非对称加密算法AEA0和对称加密算法SEA0;AEA0可以是RSA加密算法,SEA0可以是高级加密标准(英语:AdvancedEncryption Standard,缩写:AES);
每个组成员具有一个公钥和私钥;每个组成员向第三方认证数据中心计算机进行注册时获取自己的公钥、私钥、非对称加密算法AEA0和对称加密算法SEA0,同时每个组成员也获取所链接的接入节点的公钥;
一个消息由消息类型定义,如下所示:
一个组成员或者接入节点在向第三方认证数据中心计算机进行注册时获取所有消息类型值,一个组成员或者接入节点保存一个类型表,一个类型表项包含消息类型、加密消息类型和秘钥;
对于每个消息类型T0,一个组成员或者接入节点利用自己的公钥PK0和算法AEA0加密消息类型T0得到加密后的消息类型ET0,并创建一个类型表项,该类型表项的消息类型为T0,加密消息类型为ET0,秘钥域值为PK0;
一个接入节点保存一个组表,一个组表项包含组ID、加密名称集合、秘钥和时钟;
一个接入节点向第三方认证数据中心计算机进行注册时获取所有组的组ID以及每个组组成员有权限创建或者获取的所有数据的名称集合;
接入节点AP1向第三方认证数据中心计算机进行注册时获取所有组的组ID以及每个组组成员有权限创建或者获取的所有数据的名称集合后,针对每个组ID GID0,接入节点AP1执行下述操作:
步骤101:开始;
步骤102:接入节点AP1创建一个秘钥SK0,设置两个集合参数p0和p1,集合参数p0的初始值等于组ID GID0所标识的组的组成员有权限创建或者获取的所有数据的名称集合,集合参数p1的初始值为空;
步骤103:接入节点AP1判断集合参数p0是否为空集,如果是,则执行步骤105,否则执行步骤104;
步骤104:接入节点AP1利用秘钥SK0和算法SEA0加密集合参数p0中的第一个元素得到加密后的元素EE0,从集合参数p0中删除第一个元素,将加密后的元素EE0加入到集合参数p1中,执行步骤103;
步骤105:接入节点AP1创建一个组表项,该组表项的组ID为GID0,加密名称集合等于p1,秘钥值为SK0,将时钟设置为最大值,例如10s;
步骤106:结束。
接入节点通过上述过程建立组表项,从而获取每个组的当前秘钥,以及每个组组成员有权限产生或者获取的数据。这样,接入节点根据组表可以判断节点是否为组成员从而实现安全通信。
本发明所述方法中,每个组成员保存一个秘钥表,一个秘钥表项包含组ID、秘钥和生命周期;
一个请求消息包含加密消息类型、加密公钥和加密组ID;
一个响应消息包含加密消息类型、加密秘钥和加密组ID;
普通节点ND1为组G1的组成员,组G1的组ID为GID1;普通节点ND1与接入节点AP1链接,通过下述过程获取组G1的秘钥:
步骤201:开始;
步骤202:普通节点ND1利用接入节点AP1的公钥和算法AEA0加密消息类型值1、普通节点ND1的公钥PK1以及组ID GID1分别得到加密后的消息类型值ET1、加密公钥EPK1和加密组ID EGID1;普通节点ND1发送一个请求消息,该请求消息的加密消息类型为ET1,加密公钥为EPK1,加密组ID为EGID1;
步骤203:接入节点AP1接收到该请求消息后选择一个类型表项,该类型表项的加密消息类型值等于该请求消息的加密消息类型值,根据该类型表项的消息类型值,接入节点AP1执行下述操作:接入节点AP1利用自己的私钥和AEA0解密该请求消息中的加密公钥和加密组ID得到解密后的公钥和组ID;接入节点AP1选择一个组表项,该组表项的组ID等于解密后的组ID,利用解密后的公钥和算法AEA0加密消息类型值2、解密后的组ID和该组表项中的秘钥域值,分别得到加密后的消息类型值ET2、加密后的组ID EGID2和加密后的秘钥值ESK2;接入节点AP1发送一个响应消息,该响应消息的加密消息类型为ET2,加密组ID等于EGID2,加密秘钥等于ESK2;
步骤204:普通节点接收到该响应消息后判断自己是否存在一个类型表项,该类型表项的加密消息类型等于该响应消息的加密消息类型,如果存在,则执行步骤205,否则执行步骤208;
步骤205:接收到响应消息的普通节点选择一个类型表项,该类型表项的加密消息类型等于该响应消息的加密消息类型,根据该类型表项的消息类型值,该节点执行下述操作:该普通节点利用自己的私钥和算法AEA0解密该响应消息的加密秘钥和加密组ID分别等到解密后的秘钥和组ID;该普通节点查看秘钥表,如果存在一个秘钥表项,该秘钥表项的组ID等于解密后的组ID,则执行步骤206,否则执行步骤207;
步骤206:接收到响应消息的普通节点选择一个秘钥表项,该秘钥表项的组ID等于解密后的组ID,对于每个消息类型T00,该普通节点利用该秘钥表项的秘钥和算法SEA0加密消息类型T00得到加密后的消息类型ET00,利用解密后的秘钥和算法SEA0加密消息类型T00得到加密后的消息类型值ET01,选择一个类型表项,该类型表项的加密消息类型值等于ET00,将该类型表项的加密消息类型域值更新为ET01,将秘钥域值更新为解密后的秘钥;将该秘钥表项的秘钥域值更新为解密后的秘钥,将生命周期设置为最大值,执行步骤208;
步骤207:接收到响应消息的普通节点创建一个秘钥表项,该秘钥表项的组ID等于解密后的组ID,秘钥域值等于解密后的秘钥,将生命周期设置为最大值;对于每个消息类型T00,该普通节点利用解密后的秘钥和算法SEA0加密消息类型T00得到加密后的消息类型值ET01,创建一个类型表项,该类型表项的消息类型值等于T00,加密消息类型域值为ET01,秘钥域值等于解密后的秘钥;
步骤208:结束。
普通节点通过上述过程从链接的接入节点获取所在组的组秘钥。这样,节点通过该秘钥上传加密数据实现数据的安全传输,接入节点也可以利用该秘钥加密数据从而发送给节点,这样,节点能够安全地从接入节点获取数据。
本发明所述方法中,一个新秘钥消息包含加密消息类型、加密秘钥和加密组ID;
组表项GE1的组ID为GID2,如果接入节点AP1检测到组表项GE1中的时钟到期,则执行下述操作:
步骤301:开始;
步骤302:接入节点AP1创建一个秘钥SK2,利用组表项GE1中的秘钥和算法SEA0加密消息类型值3,组ID GID2以及秘钥SK2分别获取加密后的消息类型值ET3,加密组IDEGID3,加密秘钥ESK3;接入节点AP1设置两个集合变量p2和p3,集合变量p2的初始值等于组表项GE1的加密名称集合域值,集合变量p3的初始值为空集;
步骤303:如果集合变量p2为空,则执行步骤305,否则执行步骤304;
步骤304:接入节点AP1利用组表项GE1中的秘钥域值和算法SEA0解密集合参数p2中的第一个元素得到解密后的元素E1,利用秘钥SK2和算法SEA0加密元素E1得到加密后的元素EE1,从集合参数p2中删除第一个元素,将加密后的元素EE1加入到集合参数p3中,执行步骤303;
步骤305:接入节点AP1将组表项GE1的加密名称集合更新为集合参数p3的值,将组表项GE1的秘钥更新为秘钥SK2,启动组表项GE1的时钟,即将时钟设置为最大值;接入节点AP1发送一个新秘钥消息,该新秘钥消息的加密消息类型为ET3,加密组ID等于EGID3,加密秘钥等于ESK3;
步骤306:普通节点接收到该新秘钥消息后判断自己是否存在一个类型表项,该类型表项的加密消息类型等于该新秘钥消息的加密消息类型,如果存在,则执行步骤307,否则执行步骤309;
步骤307:接收到新秘钥消息的普通节点选择一个类型表项ME1,该类型表项的加密消息类型等于该新秘钥消息的加密消息类型,根据该类型表项的消息类型值,该普通节点执行下述操作:该普通节点利用该类型表项中的秘钥域值和算法SEA0解密该新秘钥消息的加密秘钥和加密组ID分别等到解密后的秘钥和组ID;该普通节点选择所有秘钥域值等于类型表项ME1中的秘钥域值的类型表项,针对选中的每个类型表项,该普通节点利用解密后的秘钥和算法SEA0加密该类型表项的消息类型值得到加密后的消息类型值EM01,将该类型表项的加密消息类型值更新为EM01,将秘钥域值更新为解密后的秘钥;
步骤308:接收到新秘钥消息的普通节点选择一个秘钥表项,该秘钥表项的组ID等于解密后的组ID,将该秘钥表项的秘钥域值更新为解密后的秘钥,将生命周期设置为最大值;
步骤309:结束。
接入节点通过上述过程定期更新每个组的秘钥,并将该秘钥以加密形式发送给该组组成员。这样,节点通过该秘钥上传加密数据实现数据的安全传输,接入节点也可以利用该秘钥加密数据发送给节点,这样,节点能够安全地从接入节点获取数据。
本发明所述方法中,每个接入节点保存一个数据表,一个数据表项包含名称、数据和生命周期;
一个加载消息包含加密消息类型、加密名称和加密数据;
数据DA1由名称NA1标识,普通节点ND1为组G1的组成员,组G1的组ID为GID1且有权限产生数据DA1,普通节点ND1与接入节点AP1链接;普通节点ND1产生数据DA1后执行下述操作:
步骤401:开始;
步骤402:普通节点ND1选中一个秘钥表项,该秘钥表项的组ID等于GID1;普通节点ND1利用接入节点AP1的公钥和算法AEA0加密消息类型值4获得加密后的消息类型值ET4,利用该秘钥表项的秘钥和算法SEA0加密名称NA1和数据DA1分别获得加密后的名称ENA4和加密后的数据EDA4;普通节点ND1发送一个加载消息,该加载消息的加密消息类型为ET4,加密名称为ENA4,加密数据为EDA4;
步骤403:接入节点AP1接收到加载消息后,选择一个消息类型,该消息类型的加密消息类型等于该加载消息中的加密消息类型,基于该消息表项的消息类型,接入节点AP1执行下述操作:接入节点AP1查看组表,如果存在一个组表项,该组表项的加密名称集合包含该加载消息的加密名称,则执行步骤404,否则执行步骤405;
步骤404:接入节点AP1选择一个组表项,该组表项的加密名称集合包含该加载消息的加密名称,利用该组表项的秘钥和算法SEA0解密接收到的加载消息的加密名称和加密数据得到解密后的名称和数据;接入节点AP1判断是否存在一个数据表项,该数据表项的名称等于解密后的名称,如果存在,则将该数据表项的数据域值更新为解密后的数据,将生命周期设置为最大值;否则,接入节点AP1创建一个数据表项,该数据表项的名称等于解密后的名称,数据域值等于解密后的数据,将生命周期设置为最大值;
步骤405:结束。
普通节点通过上述过程将产生的数据加密后发布到链接的接入节点。这样,其他节点可以从该接入节点安全地获取该数据,由于该数据通过生命周期来确保其有效性和实时性,因此提高了数据通信的成功率,此外,由于节点与链接的接入节点一跳可达,因此大幅度降低了数据发布延迟和代价。
本发明所述方法中,一个查询消息包含加密消息类型和加密名称;
一个数据消息包含加密消息类型、加密名称和加密数据;
数据DA1由名称NA1标识;普通节点ND2为组G1的组成员,组G1的组ID为GID1,普通节点ND2与接入节点AP1链路相连;普通节点ND2通过下述过程获取数据DA1:
步骤501:开始;
步骤502:普通节点ND2选中一个秘钥表项,该秘钥表项的组ID等于GID1;普通节点ND2利用接入节点AP1的公钥和算法AEA0加密消息类型值5获得加密后的消息类型值ET5,利用该秘钥表项的秘钥和算法SEA0加密名称NA1获得加密后的名称ENA5;普通节点ND2发送一个查询消息,该查询消息的加密消息类型为ET5,加密名称为ENA5;
步骤503:接入节点AP1接收查询消息后选择一个消息类型,该消息类型的加密消息类型等于该查询消息中的加密消息类型,基于该消息表项的消息类型,接入节点AP1执行下述操作:接入节点AP1查看组表,如果存在一个组表项,该组表项的加密名称集合包含该加载消息的加密名称,则执行步骤504,否则执行步骤507;
步骤504:接入节点AP1选择一个组表项,该组表项的加密名称集合包含该查询消息的加密名称,利用该组表项的秘钥和算法SEA0解密接收到的查询消息的加密名称得到解密后的名称;接入节点AP1选择一个数据表项,该数据表项的名称等于解密后的名称;利用该组表项的秘钥和算法SEA0加密消息类型域值6和该数据表项中的名称域值和数据域值分别获取加密后的消息类型值ET6,加密后的名称域值ENA6和加密后的数据域值EDA6;接入节点AP1发送一个数据消息,该数据消息的加密消息类型为ET6,加密名称为ENA6,加密数据为EDA6;
步骤505:普通节点接收到该数据消息后判断自己是否存在一个类型表项,该类型表项的加密消息类型等于该数据消息的加密消息类型,如果存在,则执行步骤506,否则执行步骤507;
步骤506:接收到数据消息的普通节点选择一个类型表项,该类型表项的加密消息类型等于该数据消息的加密消息类型,根据该类型表项的消息类型值,该普通节点执行下述操作:该普通节点利用该类型表项的秘钥和算法SEA0解密该数据消息中的加密名称和加密数据,保存解密后的数据;
步骤507:结束。
普通节点通过上述过程从接入节点获取数据,上述过程通过加密名称来确保数据通信过程的安全性。由于节点并没有ID标识,因此实现了隐私保护;同时,上述过程节点与接入节点之间一跳可达,从而降低了数据通信的延迟和代价。
有益效果:本发明提供了一种匿名的无线网络数据查询实现方法,用户通过本发明所提供的一种安全的物联网系统实现方法能够快速安全地获取数据,本发明有效降低了数据获取的延迟和代价,从而有效提高网络服务性能。本发明可应用于智能医疗,智能监测、智能车联网等领域,具有广泛的应用前景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的创建组表流程示意图。
图2为本发明所述的获取秘钥流程示意图。
图3为本发明所述的秘钥更新流程示意图。
图4为本发明所述的数据发布流程示意图。
图5为本发明所述的数据获取流程示意图。
具体实施方式:
本发明提供了一种匿名的无线网络数据查询实现方法,用户通过本发明所提供的一种安全的物联网系统实现方法能够快速安全地获取数据,本发明有效降低了数据获取的延迟和代价,从而有效提高网络服务性能。本发明可应用于智能医疗,智能监测、智能车联网等领域,具有广泛的应用前景。
图1为本发明所述的创建组表流程示意图。所述无线网络包括接入节点和普通节点,一个普通节点与一个接入节点链接;一种类型的数据由一个名称唯一标识;
有权限创建或者获取一种以上类型数据的普通节点构成一个组,构成组的普通节点称为组成员;一个组由一个组ID唯一标识;
每个接入节点的公钥和私钥由第三方认证数据中心计算机保存并签发,接入节点向第三方认证数据中心计算机进行注册时获取自己的公钥和私钥,非对称加密算法AEA0和对称加密算法SEA0;AEA0可以是RSA加密算法,SEA0可以是高级加密标准(英语:AdvancedEncryption Standard,缩写:AES);
每个组成员具有一个公钥和私钥;每个组成员向第三方认证数据中心计算机进行注册时获取自己的公钥、私钥、非对称加密算法AEA0和对称加密算法SEA0,同时每个组成员也获取所链接的接入节点的公钥;
一个消息由消息类型定义,如下所示:
消息类型值 |
消息名称 |
1 |
请求消息 |
2 |
响应消息 |
3 |
新秘钥消息 |
4 |
加载消息 |
5 |
查询消息 |
6 |
数据消息 |
一个组成员或者接入节点在向第三方认证数据中心计算机进行注册时获取所有消息类型值,一个组成员或者接入节点保存一个类型表,一个类型表项包含消息类型、加密消息类型和秘钥;
对于每个消息类型T0,一个组成员或者接入节点利用自己的公钥PK0和算法AEA0加密消息类型T0得到加密后的消息类型ET0,并创建一个类型表项,该类型表项的消息类型为T0,加密消息类型为ET0,秘钥域值为PK0;
一个接入节点保存一个组表,一个组表项包含组ID、加密名称集合、秘钥和时钟;
一个接入节点向第三方认证数据中心计算机进行注册时获取所有组的组ID以及每个组组成员有权限创建或者获取的所有数据的名称集合;
接入节点AP1向第三方认证数据中心计算机进行注册时获取所有组的组ID以及每个组组成员有权限创建或者获取的所有数据的名称集合后,针对每个组ID GID0,接入节点AP1执行下述操作:
步骤101:开始;
步骤102:接入节点AP1创建一个秘钥SK0,设置两个集合参数p0和p1,集合参数p0的初始值等于组ID GID0所标识的组的组成员有权限创建或者获取的所有数据的名称集合,集合参数p1的初始值为空;
步骤103:接入节点AP1判断集合参数p0是否为空集,如果是,则执行步骤105,否则执行步骤104;
步骤104:接入节点AP1利用秘钥SK0和算法SEA0加密集合参数p0中的第一个元素得到加密后的元素EE0,从集合参数p0中删除第一个元素,将加密后的元素EE0加入到集合参数p1中,执行步骤103;
步骤105:接入节点AP1创建一个组表项,该组表项的组ID为GID0,加密名称集合等于p1,秘钥值为SK0,将时钟设置为最大值,例如10s;
步骤106:结束。
接入节点通过上述过程建立组表项,从而获取每个组的当前秘钥,以及每个组组成员有权限产生或者获取的数据。这样,接入节点根据组表可以判断节点是否为组成员从而实现安全通信。
图2为本发明所述的获取秘钥流程示意图。每个组成员保存一个秘钥表,一个秘钥表项包含组ID、秘钥和生命周期;
一个请求消息包含加密消息类型、加密公钥和加密组ID;
一个响应消息包含加密消息类型、加密秘钥和加密组ID;
普通节点ND1为组G1的组成员,组G1的组ID为GID1;普通节点ND1与接入节点AP1链接,通过下述过程获取组G1的秘钥:
步骤201:开始;
步骤202:普通节点ND1利用接入节点AP1的公钥和算法AEA0加密消息类型值1、普通节点ND1的公钥PK1以及组ID GID1分别得到加密后的消息类型值ET1、加密公钥EPK1和加密组ID EGID1;普通节点ND1发送一个请求消息,该请求消息的加密消息类型为ET1,加密公钥为EPK1,加密组ID为EGID1;
步骤203:接入节点AP1接收到该请求消息后选择一个类型表项,该类型表项的加密消息类型值等于该请求消息的加密消息类型值,根据该类型表项的消息类型值,接入节点AP1执行下述操作:接入节点AP1利用自己的私钥和AEA0解密该请求消息中的加密公钥和加密组ID得到解密后的公钥和组ID;接入节点AP1选择一个组表项,该组表项的组ID等于解密后的组ID,利用解密后的公钥和算法AEA0加密消息类型值2、解密后的组ID和该组表项中的秘钥域值,分别得到加密后的消息类型值ET2、加密后的组ID EGID2和加密后的秘钥值ESK2;接入节点AP1发送一个响应消息,该响应消息的加密消息类型为ET2,加密组ID等于EGID2,加密秘钥等于ESK2;
步骤204:普通节点接收到该响应消息后判断自己是否存在一个类型表项,该类型表项的加密消息类型等于该响应消息的加密消息类型,如果存在,则执行步骤205,否则执行步骤208;
步骤205:接收到响应消息的普通节点选择一个类型表项,该类型表项的加密消息类型等于该响应消息的加密消息类型,根据该类型表项的消息类型值,该节点执行下述操作:该普通节点利用自己的私钥和算法AEA0解密该响应消息的加密秘钥和加密组ID分别等到解密后的秘钥和组ID;该普通节点查看秘钥表,如果存在一个秘钥表项,该秘钥表项的组ID等于解密后的组ID,则执行步骤206,否则执行步骤207;
步骤206:接收到响应消息的普通节点选择一个秘钥表项,该秘钥表项的组ID等于解密后的组ID,对于每个消息类型T00,该普通节点利用该秘钥表项的秘钥和算法SEA0加密消息类型T00得到加密后的消息类型ET00,利用解密后的秘钥和算法SEA0加密消息类型T00得到加密后的消息类型值ET01,选择一个类型表项,该类型表项的加密消息类型值等于ET00,将该类型表项的加密消息类型域值更新为ET01,将秘钥域值更新为解密后的秘钥;将该秘钥表项的秘钥域值更新为解密后的秘钥,将生命周期设置为最大值,执行步骤208;
步骤207:接收到响应消息的普通节点创建一个秘钥表项,该秘钥表项的组ID等于解密后的组ID,秘钥域值等于解密后的秘钥,将生命周期设置为最大值;对于每个消息类型T00,该普通节点利用解密后的秘钥和算法SEA0加密消息类型T00得到加密后的消息类型值ET01,创建一个类型表项,该类型表项的消息类型值等于T00,加密消息类型域值为ET01,秘钥域值等于解密后的秘钥;
步骤208:结束。
普通节点通过上述过程从链接的接入节点获取所在组的组秘钥。这样,节点通过该秘钥上传加密数据实现数据的安全传输,接入节点也可以利用该秘钥加密数据从而发送给节点,这样,节点能够安全地从接入节点获取数据。
图3为本发明所述的秘钥更新流程示意图。一个新秘钥消息包含加密消息类型、加密秘钥和加密组ID;
组表项GE1的组ID为GID2,如果接入节点AP1检测到组表项GE1中的时钟到期,则执行下述操作:
步骤301:开始;
步骤302:接入节点AP1创建一个秘钥SK2,利用组表项GE1中的秘钥和算法SEA0加密消息类型值3,组ID GID2以及秘钥SK2分别获取加密后的消息类型值ET3,加密组IDEGID3,加密秘钥ESK3;接入节点AP1设置两个集合变量p2和p3,集合变量p2的初始值等于组表项GE1的加密名称集合域值,集合变量p3的初始值为空集;
步骤303:如果集合变量p2为空,则执行步骤305,否则执行步骤304;
步骤304:接入节点AP1利用组表项GE1中的秘钥域值和算法SEA0解密集合参数p2中的第一个元素得到解密后的元素E1,利用秘钥SK2和算法SEA0加密元素E1得到加密后的元素EE1,从集合参数p2中删除第一个元素,将加密后的元素EE1加入到集合参数p3中,执行步骤303;
步骤305:接入节点AP1将组表项GE1的加密名称集合更新为集合参数p3的值,将组表项GE1的秘钥更新为秘钥SK2,启动组表项GE1的时钟,即将时钟设置为最大值;接入节点AP1发送一个新秘钥消息,该新秘钥消息的加密消息类型为ET3,加密组ID等于EGID3,加密秘钥等于ESK3;
步骤306:普通节点接收到该新秘钥消息后判断自己是否存在一个类型表项,该类型表项的加密消息类型等于该新秘钥消息的加密消息类型,如果存在,则执行步骤307,否则执行步骤309;
步骤307:接收到新秘钥消息的普通节点选择一个类型表项ME1,该类型表项的加密消息类型等于该新秘钥消息的加密消息类型,根据该类型表项的消息类型值,该普通节点执行下述操作:该普通节点利用该类型表项中的秘钥域值和算法SEA0解密该新秘钥消息的加密秘钥和加密组ID分别等到解密后的秘钥和组ID;该普通节点选择所有秘钥域值等于类型表项ME1中的秘钥域值的类型表项,针对选中的每个类型表项,该普通节点利用解密后的秘钥和算法SEA0加密该类型表项的消息类型值得到加密后的消息类型值EM01,将该类型表项的加密消息类型值更新为EM01,将秘钥域值更新为解密后的秘钥;
步骤308:接收到新秘钥消息的普通节点选择一个秘钥表项,该秘钥表项的组ID等于解密后的组ID,将该秘钥表项的秘钥域值更新为解密后的秘钥,将生命周期设置为最大值;
步骤309:结束。
接入节点通过上述过程定期更新每个组的秘钥,并将该秘钥以加密形式发送给该组组成员。这样,节点通过该秘钥上传加密数据实现数据的安全传输,接入节点也可以利用该秘钥加密数据发送给节点,这样,节点能够安全地从接入节点获取数据。
图4为本发明所述的数据发布流程示意图。每个接入节点保存一个数据表,一个数据表项包含名称、数据和生命周期;
一个加载消息包含加密消息类型、加密名称和加密数据;
数据DA1由名称NA1标识,普通节点ND1为组G1的组成员,组G1的组ID为GID1且有权限产生数据DA1,普通节点ND1与接入节点AP1链接;普通节点ND1产生数据DA1后执行下述操作:
步骤401:开始;
步骤402:普通节点ND1选中一个秘钥表项,该秘钥表项的组ID等于GID1;普通节点ND1利用接入节点AP1的公钥和算法AEA0加密消息类型值4获得加密后的消息类型值ET4,利用该秘钥表项的秘钥和算法SEA0加密名称NA1和数据DA1分别获得加密后的名称ENA4和加密后的数据EDA4;普通节点ND1发送一个加载消息,该加载消息的加密消息类型为ET4,加密名称为ENA4,加密数据为EDA4;
步骤403:接入节点AP1接收到加载消息后,选择一个消息类型,该消息类型的加密消息类型等于该加载消息中的加密消息类型,基于该消息表项的消息类型,接入节点AP1执行下述操作:接入节点AP1查看组表,如果存在一个组表项,该组表项的加密名称集合包含该加载消息的加密名称,则执行步骤404,否则执行步骤405;
步骤404:接入节点AP1选择一个组表项,该组表项的加密名称集合包含该加载消息的加密名称,利用该组表项的秘钥和算法SEA0解密接收到的加载消息的加密名称和加密数据得到解密后的名称和数据;接入节点AP1判断是否存在一个数据表项,该数据表项的名称等于解密后的名称,如果存在,则将该数据表项的数据域值更新为解密后的数据,将生命周期设置为最大值;否则,接入节点AP1创建一个数据表项,该数据表项的名称等于解密后的名称,数据域值等于解密后的数据,将生命周期设置为最大值;
步骤405:结束。
普通节点通过上述过程将产生的数据加密后发布到链接的接入节点。这样,其他节点可以从该接入节点安全地获取该数据,由于该数据通过生命周期来确保其有效性和实时性,因此提高了数据通信的成功率,此外,由于节点与链接的接入节点一跳可达,因此大幅度降低了数据发布延迟和代价。
图5为本发明所述的数据获取流程示意图。一个查询消息包含加密消息类型和加密名称;
一个数据消息包含加密消息类型、加密名称和加密数据;
数据DA1由名称NA1标识;普通节点ND2为组G1的组成员,组G1的组ID为GID1,普通节点ND2与接入节点AP1链路相连;普通节点ND2通过下述过程获取数据DA1:
步骤501:开始;
步骤502:普通节点ND2选中一个秘钥表项,该秘钥表项的组ID等于GID1;普通节点ND2利用接入节点AP1的公钥和算法AEA0加密消息类型值5获得加密后的消息类型值ET5,利用该秘钥表项的秘钥和算法SEA0加密名称NA1获得加密后的名称ENA5;普通节点ND2发送一个查询消息,该查询消息的加密消息类型为ET5,加密名称为ENA5;
步骤503:接入节点AP1接收查询消息后选择一个消息类型,该消息类型的加密消息类型等于该查询消息中的加密消息类型,基于该消息表项的消息类型,接入节点AP1执行下述操作:接入节点AP1查看组表,如果存在一个组表项,该组表项的加密名称集合包含该加载消息的加密名称,则执行步骤504,否则执行步骤507;
步骤504:接入节点AP1选择一个组表项,该组表项的加密名称集合包含该查询消息的加密名称,利用该组表项的秘钥和算法SEA0解密接收到的查询消息的加密名称得到解密后的名称;接入节点AP1选择一个数据表项,该数据表项的名称等于解密后的名称;利用该组表项的秘钥和算法SEA0加密消息类型域值6和该数据表项中的名称域值和数据域值分别获取加密后的消息类型值ET6,加密后的名称域值ENA6和加密后的数据域值EDA6;接入节点AP1发送一个数据消息,该数据消息的加密消息类型为ET6,加密名称为ENA6,加密数据为EDA6;
步骤505:普通节点接收到该数据消息后判断自己是否存在一个类型表项,该类型表项的加密消息类型等于该数据消息的加密消息类型,如果存在,则执行步骤506,否则执行步骤507;
步骤506:接收到数据消息的普通节点选择一个类型表项,该类型表项的加密消息类型等于该数据消息的加密消息类型,根据该类型表项的消息类型值,该普通节点执行下述操作:该普通节点利用该类型表项的秘钥和算法SEA0解密该数据消息中的加密名称和加密数据,保存解密后的数据;
步骤507:结束。
普通节点通过上述过程从接入节点获取数据,上述过程通过加密名称来确保数据通信过程的安全性。由于节点并没有ID标识,因此实现了隐私保护;同时,上述过程节点与接入节点之间一跳可达,从而降低了数据通信的延迟和代价。
综上所述,本发明提供了一种匿名的无线网络数据查询实现方法,用户通过本发明所提供的一种安全的物联网系统实现方法能够快速安全地获取数据,本发明有效降低了数据获取的延迟和代价,从而有效提高网络服务性能。本发明可应用于智能医疗,智能监测、智能车联网等领域,具有广泛的应用前景。
实施例1
基于表1的仿真参数,本实施例模拟了本发明中的一种匿名的无线网络数据查询实现方法。接入节点AP1向第三方认证数据中心计算机进行注册时获取所有组的组ID以及每个组组成员有权限创建或者获取的所有数据的名称集合后,针对每个组ID GID0,接入节点AP1执行步骤101-106创建组表。接入节点通过上述过程建立组表,从而获取每个组的当前秘钥,以及每个组组成员有权限产生或者获取的数据,这样,接入节点根据组表可以判断节点是否为组成员从而实现安全通信。在节点ND1为组G1的组成员的情况下,利用请求消息和响应消息执行步骤201-208获取组G1的秘钥。节点通过上述过程从链接的接入节点获取所在组的组秘钥,这样,节点通过该秘钥上传加密数据实现数据的安全传输,接入节点也可以利用该秘钥加密数据发送给节点,这样,节点能够安全地从接入节点获取数据。接入节点AP1利用新秘钥消息执行步骤301-309定期更新秘钥,从而确保数据通信的安全性。接入节点通过上述过程定期更新每个组的秘钥,并将该秘钥以加密形式发送给该组组成员,这样,节点通过该秘钥上传加密数据实现数据的安全传输,接入节点也可以利用该秘钥加密数据发送给节点,这样,节点能够安全地从接入节点获取数据。节点ND1产生数据DA1后利用加载消息执行步骤401-405发布数据DA1。节点通过上述过程将产生的数据加密后发布到链接的接入节点;这样,其他节点可以从该接入节点安全地获取该数据,由于该数据通过生命周期来确保其有效性和实时性,因此提高了数据通信的成功率,此外,由于节点与链接的接入节点一跳可达,因此大幅度降低了数据发布延迟和代价。节点ND2利用查询消息和数据消息执行步骤501-507获取数据DA1。节点通过上述过程从接入节点获取数据,上述过程通过加密名称来确保数据通信过程的安全性,由于节点并没有ID标识,因此实现了隐私保护;同时,上述过程节点与接入节点之间一跳可达,从而降低了数据通信的延迟和代价。针对一种匿名的无线网络数据查询实现方法,性能分析如下,当加密数据量增加时,数据获取延迟随之增加,当加密数据量减少时,数据获取延迟随之减少,数据获取的平均延迟为117.6ms。
表1仿真参数
本发明提供了一种匿名的无线网络数据查询实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。