1.一种基于数据的网络通信实现方法,其特征在于,所述基于数据的网络包括三类节点:消费节点,中间节点,提供节点;消费节点为有权限获取特定数据的授权用户设备,中间节点用于转发消费节点发送的数据请求消息以及提供节点发送的数据响应消息,提供节点为有权限提供特定数据的授权用户设备;
所述网络中一共有I种数据,每一种数据由一个唯一的名称定义;每一种名称具有一个秘钥,该秘钥由第三方认证数据中心保存并签发;消费节点向第三方认证数据中心进行注册以获取一个特定名称Ni所定义的数据的访问权限,I≥i≥1,第三方认证数据中心向该消费节点提供名称Ni对应的秘钥ki以及单项哈希函数Hi,消费节点获取秘钥ki和哈希函数Hi后,执行公式(1)获取名称Ni的隐私名称hi;
提供节点向第三方认证数据中心进行注册以获取特定名称Ni定义的数据的提供权限,第三方认证数据中心向提供节点提供隐私名称hi以及加密过的数据ei,数据ei如公式(2)所示:hi=Encrypt1(Hi(Ni),ki) 公式(1),
ei=Encrypt1(Di,ki) 公式(2),
其中,Encrypt1是对称加密算法;Di表示由特定名字Ni定义的数据;
第三方认证数据中还向提供节点发放一对由隐私名称hi定义的公钥Pubkhi和私钥Prikhi。
2.根据权利要求1所述的一种基于数据的网络通信实现方法,其特征在于,每个节点保存一个路由转发表,路由转发表每个表项包含两个域:接口域和隐私名称域;
提供节点P1注册后,获取了提供隐私名称hi和数据ei的权限,以及隐私名称hi对应的公钥Pubkhi和私钥Prikhi,然后提供节点P1执行下述步骤建立路由:步骤101:开始;
步骤102:提供节点P1根据公式(3)用私钥Prikhi获取数字签名Sign_hi,然后构建数据消息,数据消息负载为隐私名称hi和数字签名Sign_hi,最后提供节点P1从自己的每一个接口发送数据消息,;
Sign_hi=Encrypt2(Prikhi,hi) 公式(3),其中,Encrypt2是非对称加密算法;
步骤103:中间节点或者消费节点收到数据消息后,首先用隐私名称hi的公钥Pubkhi对数字签名Sign_hi进行验证,即用公钥Pubkhi对数字签名Sign_hi解密,判断解密结果与隐私名称hi相同,如果不相同,进行步骤104,否则进行步骤105;
步骤104:中间节点或者消费节点丢弃该数据消息,进行步骤107;
步骤105:中间节点或者消费节点判断路由转发表中是否有隐私名称hi的表项,如果没有,进行步骤104,否则进行步骤106;
步骤106:中间节点或者消费节点在路由转发表中增加隐私名字hi的表项,表项的接口域值设置为收到数据消息的接口值,然后从自己的每个接口转发该数据消息,返回执行步骤103;
步骤107:结束。
3.根据权利要求1所述的一种基于数据的网络通信实现方法,其特征在于,中间节点包含一个数据请求消息缓存表以及一个数据缓存表;数据请求消息缓存表的表项包含两个域,一个域为隐私名称域,一个域为接口集合域;数据缓存表的表项包括两个域,一个域为隐私名称域,一个域为加密数据域;
消费节点C1向第三方认证数据中心注册后,获取了名称Ni所定义的数据的访问权限,并具有了名称Ni的秘钥ki以及单项哈希函数Hi,消费节点C1通过公式(1)计算隐私名称hi,然后通过下述过程获取特定名称Ni定义的数据Di:步骤201:开始;
步骤202:消费节点C1查看路由转发表中隐私名称hi的表项,然后从该表项所对应的接口广播一个数据请求消息,数据请求消息的头部为隐私名称hi;
步骤203:邻居节点收到数据请求消息后,判断自己是否能够提供隐私名称hi对应的加密数据ei,如果不能,进行步骤204,否则进行步骤208;
步骤204:邻居节点判断数据请求消息缓存表中是否有隐私名称域值为hi的表项,如果没有,则进行步骤205,否则进行步骤206;
步骤205:邻居节点在数据请求消息缓存表中增加一个表项,隐私名称域值为hi,接口集合域值为邻居节点接收数据请求消息的接口值,进行步骤207;
步骤206:邻居节点将接收数据请求消息的接口值加入到在隐私名称域值为hi的表项的接口集合域中;
步骤207:邻居节点查看路由转发表中隐私名称hi的表项,从该表项所对应的接口转发该数据请求消息,进行步骤203;
步骤208:邻居节点构建一个数据响应消息,数据响应消息的头部为隐私名称hi,负载为加密数据ei,然后从接收到数据请求消息的接口发送该数据响应消息;
步骤209:邻居节点收到数据响应消息后,判断自己是否为消费节点C1,如果是,进行步骤213,否则进行步骤210;
步骤210:邻居节点在数据缓存表中增加一个表项,隐私名称域为hi,加密数据域为ei,邻居节点查看数据请求消息缓存表,判断是否有隐私名称hi的表项,如果有,进行步骤211,否则进行步骤212;
步骤211:邻居节点从隐私名称为hi的表项中的接口集合域中每个接口转发该数据响应消息,然后删除隐私名称域为hi的表项,执行步骤209;
步骤212:邻居节点丢弃该数据响应消息,进行步骤214;
步骤213:消费节点C1收到数据响应消息后,利用秘钥ki去解密加密数据ei,最终得到数据Di;
步骤214:结束。