一种基于混合加密和匿名群的内容中心网络隐私保护方法与流程

文档序号:12829192阅读:230来源:国知局
一种基于混合加密和匿名群的内容中心网络隐私保护方法与流程

本发明涉及内容中心网络研究领域,尤其涉及一种基于混合加密和匿名群的内容中心网络隐私保护方法。



背景技术:

内容中心网络(ccn,contentcentricnetwork)与传统的互联网相比,能够提供存储和计算的功能,能够对内容资源进行调控和管理。一个完整的ccn包括用户、内容发布者和路由节点,ccn的隐私保护包括用户隐私保护、内容发布者隐私保护和在路由节点上缓存的内容的隐私保护。ccn中的数据通信采用“发布-请求-响应”的模式,用户通过向源服务器发送内容名字而不是ip地址来获得数据,不再关心数据的存储位置。网络中的路由节点具有普遍缓存的特性,凡是经过的数据包都可以被缓存在节点内部,如果有不同的用户请求相同的内容,就可以从节点发送已经缓存的数据给用户,从而可大幅度提高网络的传输效率。ccn的安全机制是当前的研究热点之一,在ccn中,用户请求的内容与位置无关,缓存节点和内容发布者都可以响应用户发送的请求包,相对应的数据包会沿着兴趣包的相反路径转发给用户,完成数据通信。ccn的数据包中携带有内容发布者的签名,可能会暴露发布者的身份隐私信息,同时因为用户发送的兴趣包和数据本身密切相关,攻击者可能通过获取兴趣包,向发布者请求相对应的内容,造成用户隐私的泄露。此外,由于节点的缓存特性,也可能会造成严重的内容数据的隐私泄露。

因此,提出一种内容中心网络隐私保护方法以解决现有的ccn系统容易造成用户、发布者、内容的隐私泄漏具有重大的价值意义。



技术实现要素:

本发明实施例提供了一种基于混合加密和匿名群的内容中心网络隐私保护方法,用于解决现有的ccn系统容易造成用户、发布者、内容的隐私泄漏的技术问题。

本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护方法,包括:

s1:标记内容中心网络中的所有路由器节点为有限个匿名群,为每个匿名群分配群id;

s2:接收用户终端发送的兴趣包,所述兴趣包由系统分配的用户id、从有限个匿名群中随机选择的匿名群的匿名群id、预设的对称密钥生成根据所述随机选择的匿名群对应的群公钥加密生成;

s3:当兴趣包到达内容中心网络中的所述随机选择的匿名群,则根据相应的群密钥对兴趣包进行解密,获得解密后的兴趣包和对称密钥并缓存所述对称密钥,查询兴趣包当前到达的匿名群中的节点是否缓存有与所述解密后的兴趣包匹配的数据内容,若是,则执行步骤s4,若否,则执行步骤s5;

s4:将所述解密后的兴趣包匹配的数据内容根据匿名群、对称密钥、群公钥和群私钥按兴趣包传输的路径返回至用户终端;

s5:将所述解密后的兴趣包发送至下一个所述随机选择的匿名群或内容发布者,并返回执行步骤s3。

优选地,所述步骤s1具体包括:

s101:将用户终端发送的兴趣包的一条通讯区域内的所有节点作为第一层子节点,建立匿名群g;

s102:将匿名群g添加到匿名群集合group(g)中,更新内容中心网络中的所有节点的集合r=r-group(g);

s103:判断内容中心网络中的所有节点的集合r中的节点是否完全包含在group(g)中,若是,则获得匿名群集合group(g)={g1,g2,g3,…,gj}并执行步骤s104,若否,则返回执行步骤s101;

s104:根据匿名群集合group(g)={g1,g2,g3,…,gj}分配群id,所述群id为idg={id1,id2,…,idj},并对通过对idg执行hash算法,生成的h(idg)作为群公钥,通过向pkg发送群公钥,执行概率多项式算法,生成每个群的群私钥,并通过安全信道发送给所有匿名群,并公开群公钥。

优选地,所述步骤s2具体包括:

向内容中心网络系统注册并获取用户id,从有限个匿名群中随机选择两个相邻的匿名群ga和gb,并生成对称密钥k1和k2;

根据向内容发布者发送请求消息、用户id建立原始兴趣包int,将对称密钥k1和k2加入原始兴趣包,通过匿名群ga和gb对应的群公钥pka和pkb对原始兴趣包int和对称密钥k1和k2加密,获得加密后的兴趣包int=ga(qpka((k2||k1)||gb(qpkb(k1||int))));

接收用户终端发送的加密后的兴趣包int。

优选地,所述步骤s3具体包括:

当兴趣包到达内容中心网络中的所述两个相邻的匿名群中的匿名群ga,则根据所述匿名群ga对应的群密钥pra对兴趣包进行解密,获得解密后的第一兴趣包inta=gb(qpkb(k1||int)),并将所述对称密钥k1和k2缓存至节点的缓存空间中,将第一兴趣包inta发送至所述两个相邻的匿名群中的匿名群gb;

当第一兴趣包inta到达匿名群gb中的任何一个节点,则根据所述匿名群gb对应的群密钥prb对兴趣包inta进行解密,获得对称密钥k1和原始兴趣包int,将所述对称密钥k1缓存至节点的缓存空间中,查询匿名群gb中的节点是否缓存有与原始兴趣包int匹配的数据内容,若是,则执行步骤s4,若否,则执行步骤s5。

优选地,所述步骤s4包括:

向内容中心网络系统注册并获取内容发布者idp,对idp执行hash算法得到h(idp)作为公钥pk,将pk发送给密钥生成中心pkg,密钥生成中心pkg计算出内容发布者的私钥pr,并通过安全信道发送给内容发布终端;

用私钥pr对所述解密后的兴趣包匹配的数据内容进行签名得到内容发布者p的签名sigp,签名后的数据包datap为datap=gb(int||data)||sigp,内容发布者将签名后的数据包datap发送到内容中心网络中的节点;

当签名后的数据包datap到达匿名群gb中的任何一个节点,则将签名后的数据包datap存储在节点的缓存中,并用对称密钥k1加密数据包datap,用ga作为前缀字符嵌入加密后的数据包中,并且用gb的群私钥prb对加密后的数据包签名得到sigb,签名后的数据包datab=ga(qk1(int||data||sigp))||sigb,然后将datab发送到下一个匿名群;

当签名后的数据包datab到达匿名群ga中的任何一个节点,则用gb的群公钥pkb验证sigb,若验证失败,则丢弃数据包,若验证成功,则用存储在缓存空间的对称密钥k1对数据包datab进行解密,把解密后的数据包存储在节点的缓存中,然后用对称密钥k1和k2依次加密所述解密后的数据包,并且用匿名群ga的群私钥pra对整个用对称密钥k1和k2加密后的数据包签名得到siga和签名后的数据包dataa=qk2(qk1(int||data||sigp))||siga;

将签名后的数据包dataa发送至用户终端,使得用户终端用ga的群公钥pka验证siga,若验证失败,则丢弃数据包,若验证成功,则用对称密钥k2和k1依次对数据包进行解密,得到解密后的数据包dqk2k1=int||data||sigp,最后用发布者公钥pk验证sigp,若验证成功,则说明数据包来自发布者,用户终端正确得到请求的数据data。

本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护装置,包括:

匿名群建立模块,用于标记内容中心网络中的所有路由器节点为有限个匿名群,为每个匿名群分配群id;

兴趣包生成与接收模块,用于接收用户终端发送的兴趣包,所述兴趣包由系统分配的用户id、从有限个匿名群中随机选择的匿名群的匿名群id、预设的对称密钥生成根据所述随机选择的匿名群对应的群公钥加密生成;

兴趣包匹配处理模块,用于当兴趣包到达内容中心网络中的所述随机选择的匿名群,则根据相应的群密钥对兴趣包进行解密,获得解密后的兴趣包和对称密钥并缓存所述对称密钥,查询兴趣包当前到达的匿名群中的节点是否缓存有与所述解密后的兴趣包匹配的数据内容,若是,则执行数据包返回模块,若否,则执行兴趣包循环匹配模块;

数据包返回模块,用于将所述解密后的兴趣包匹配的数据内容根据匿名群、对称密钥、群公钥和群私钥按兴趣包传输的路径返回至用户终端;

兴趣包循环匹配模块,用于将所述解密后的兴趣包发送至下一个所述随机选择的匿名群或内容发布者,并返回执行步骤s3。

优选地,所述匿名群建立模块具体包括:

匿名群建立单元,用于将用户终端发送的兴趣包的一条通讯区域内的所有节点作为第一层子节点,建立匿名群g;

匿名群集合单元,用于将匿名群g添加到匿名群集合group(g)中,更新内容中心网络中的所有节点的集合r=r-group(g);

匿名群完整性判断单元,用于判断内容中心网络中的所有节点的集合r中的节点是否完全包含在group(g)中,若是,则获得匿名群集合group(g)={g1,g2,g3,…,gj}并执行步骤s104,若否,则返回执行步骤s101;

群id和公钥密钥生成单元,用于根据匿名群集合group(g)={g1,g2,g3,…,gj}分配群id,所述群id为idg={id1,id2,…,idj},并对通过对idg执行hash算法,生成的h(idg)作为群公钥,通过向pkg发送群公钥,执行概率多项式算法,生成每个群的群私钥,并通过安全信道发送给所有匿名群,并公开群公钥。

优选地,所述兴趣包生成与接收模块具体包括:

用户单元,用于向内容中心网络系统注册并获取用户id,从有限个匿名群中随机选择两个相邻的匿名群ga和gb,并生成对称密钥k1和k2;

兴趣包加密单元,用于根据向内容发布者发送请求消息、用户id建立原始兴趣包int,将对称密钥k1和k2加入原始兴趣包,通过匿名群ga和gb对应的群公钥pka和pkb对原始兴趣包int和对称密钥k1和k2加密,获得加密后的兴趣包int=ga(qpka((k2||k1)||gb(qpkb(k1||int))));

兴趣包接收单元,用于接收用户终端发送的加密后的兴趣包int。

优选地,所述兴趣包匹配处理模块具体包括:

匿名群ga兴趣包处理单元,用于当兴趣包到达内容中心网络中的所述两个相邻的匿名群中的匿名群ga,则根据所述匿名群ga对应的群密钥pra对兴趣包进行解密,获得解密后的第一兴趣包inta=gb(qpkb(k1||int)),并将所述对称密钥k1和k2缓存至节点的缓存空间中,将第一兴趣包inta发送至所述两个相邻的匿名群中的匿名群gb;

匿名群gb兴趣包处理单元,用于当第一兴趣包inta到达匿名群gb中的任何一个节点,则根据所述匿名群gb对应的群密钥prb对兴趣包inta进行解密,获得对称密钥k1和原始兴趣包int,将所述对称密钥k1缓存至节点的缓存空间中,查询匿名群gb中的节点是否缓存有与原始兴趣包int匹配的数据内容,若是,则执行数据包返回模块,若否,则执行兴趣包循环匹配模块。

优选地,所述数据包返回模块包括:

内容发布单元,用于向内容中心网络系统注册并获取内容发布者idp,对idp执行hash算法得到h(idp)作为公钥pk,将pk发送给密钥生成中心pkg,密钥生成中心pkg计算出内容发布者的私钥pr,并通过安全信道发送给内容发布终端;

数据包加密单元,用于用私钥pr对所述解密后的兴趣包匹配的数据内容进行签名得到内容发布者p的签名sigp,签名后的数据包datap为datap=gb(int||data)||sigp,内容发布者将签名后的数据包datap发送到内容中心网络中的节点;

匿名群gb数据包处理单元,用于当签名后的数据包datap到达匿名群gb中的任何一个节点,则将签名后的数据包datap存储在节点的缓存中,并用对称密钥k1加密数据包datap,用ga作为前缀字符嵌入加密后的数据包中,并且用gb的群私钥prb对加密后的数据包签名得到sigb,签名后的数据包datab=ga(qk1(int||data||sigp))||sigb,然后将datab发送到下一个匿名群;

匿名群ga数据包处理单元,用于当签名后的数据包datab到达匿名群ga中的任何一个节点,则用gb的群公钥pkb验证sigb,若验证失败,则丢弃数据包,若验证成功,则用存储在缓存空间的对称密钥k1对数据包datab进行解密,把解密后的数据包存储在节点的缓存中,然后用对称密钥k1和k2依次加密所述解密后的数据包,并且用匿名群ga的群私钥pra对整个用对称密钥k1和k2加密后的数据包签名得到siga和签名后的数据包dataa=qk2(qk1(int||data||sigp))||siga;

用户终端数据包处理单元,用于将签名后的数据包dataa发送至用户终端,使得用户终端用ga的群公钥pka验证siga,若验证失败,则丢弃数据包,若验证成功,则用对称密钥k2和k1依次对数据包进行解密,得到解密后的数据包dqk2k1=int||data||sigp,最后用发布者公钥pk验证sigp,若验证成功,则说明数据包来自发布者,用户终端正确得到请求的数据data。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护方法,通过匿名群传输兴趣包,兴趣包在匿名群的节点中一层层解密为明文兴趣包,有效防止了攻击者取得兴趣包与用户之间的关联,通过用户id、发布者公钥私钥、对称密钥和匿名群公私钥等加密方法对兴趣包和数据包进行混合加密,可以保证数据包自签名后到用户收到的过程中没有经过任何修改,即使攻击者通过窃听得到加密的通信内容,在一定的时间内也无法逆向破解得到明文内容,从而保护了通信数据的隐私。本发明实施例通过构建匿名群来保护签名者的身份隐私信息,同时通过混合加密的方法实现了通信内容和通信双方之间的不可链接性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护方法的一个实施例的流程图;

图2为本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护方法的另一个实施例中兴趣包加密和发送过程的流程图;

图3为本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护方法的另一个实施例中数据包签名过程的流程图;

图4为本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护方法的另一个实施例中用户、路由器节点、内容发布者三者间的交互过程的流程图。

具体实施方式

本发明实施例提供了一种基于混合加密和匿名群的内容中心网络隐私保护方法,用于解决现有的ccn系统容易造成用户、发布者、内容的隐私泄漏的技术问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

需要说明的是,本发明所有实施例及附图中的使用的各符号的含义具体为:

group(g):路由器集合

r:ccn中所有节点集合

ga:匿名群a

gb:匿名群b

(pka│pra):匿名群a的公/私钥对

(pkb│prb):匿名群b的公/私钥对

(pk│pr):内容发布者的公/私钥对

(k1│k2):用户生成的对称密钥对

qk1:用k1加密

qk2:用k2加密

qpka:用pka加密

qpkb:用pkb加密

sigp:内容发布者p的签名

siga:匿名群a的签名

sigb:匿名群b的签名

idi:用户id

idp:内容发布者id

h(id):id的hash值

∈:属于,表示从属关系

||:与

int:原始兴趣包

data:原始数据包

请参阅图1,本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护方法的一个实施例,包括:

101:标记内容中心网络中的所有路由器节点为有限个匿名群,为每个匿名群分配群id;

102:接收用户终端发送的兴趣包,所述兴趣包由系统分配的用户id、从有限个匿名群中随机选择的匿名群的匿名群id、预设的对称密钥生成根据所述随机选择的匿名群对应的群公钥加密生成;

103:当兴趣包到达内容中心网络中的所述随机选择的匿名群,则根据相应的群密钥对兴趣包进行解密,获得解密后的兴趣包和对称密钥并缓存所述对称密钥,查询兴趣包当前到达的匿名群中的节点是否缓存有与所述解密后的兴趣包匹配的数据内容,若是,则执行步骤104,若否,则执行步骤105;

104:将所述解密后的兴趣包匹配的数据内容根据匿名群、对称密钥、群公钥和群私钥按兴趣包传输的路径返回至用户终端;

105:将所述解密后的兴趣包发送至下一个所述随机选择的匿名群或内容发布者,并返回执行步骤103。

本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护方法,通过匿名群传输兴趣包,兴趣包在匿名群的节点中一层层解密为明文兴趣包,有效防止了攻击者取得兴趣包与用户之间的关联,通过用户id、发布者公钥私钥、对称密钥和匿名群公私钥等加密方法对兴趣包和数据包进行混合加密,可以保证数据包自签名后到用户收到的过程中没有经过任何修改,即使攻击者通过窃听得到加密的通信内容,在一定的时间内也无法逆向破解得到明文内容,从而保护了通信数据的隐私。本发明实施例通过构建匿名群来保护签名者的身份隐私信息,同时通过混合加密的方法实现了通信内容和通信双方之间的不可链接性。

以上是对本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护方法的一个实施例进行详细的描述,以下将对本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护方法的另一个实施例进行详细的描述。

本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护方法的另一个实施例,包括:

第一步:标记内容中心网络中的所有路由器节点为有限个匿名群,为每个匿名群分配群id;

第二步:接收用户终端发送的兴趣包,所述兴趣包由系统分配的用户id、从有限个匿名群中随机选择的匿名群的匿名群id、预设的对称密钥生成根据所述随机选择的匿名群对应的群公钥加密生成;

第三步:当兴趣包到达内容中心网络中的所述随机选择的匿名群,则根据相应的群密钥对兴趣包进行解密,获得解密后的兴趣包和对称密钥并缓存所述对称密钥,查询兴趣包当前到达的匿名群中的节点是否缓存有与所述解密后的兴趣包匹配的数据内容,若是,则执行步骤第四步,若否,则执行第五步;

第四步:将所述解密后的兴趣包匹配的数据内容根据匿名群、对称密钥、群公钥和群私钥按兴趣包传输的路径返回至用户终端;

第五步:将所述解密后的兴趣包发送至下一个所述随机选择的匿名群或内容发布者,并返回执行第三步。

第一步具体包括:

s101:将用户终端发送的兴趣包的一条通讯区域内的所有节点作为第一层子节点,建立匿名群g;

s102:将匿名群g添加到匿名群集合group(g)中,更新内容中心网络中的所有节点的集合r=r-group(g);

s103:判断内容中心网络中的所有节点的集合r中的节点是否完全包含在group(g)中,若是,则获得匿名群集合group(g)={g1,g2,g3,…,gj}并执行步骤s104,若否,则返回执行步骤s101;

s104:根据匿名群集合group(g)={g1,g2,g3,…,gj}分配群id,所述群id为idg={id1,id2,…,idj},并对通过对idg执行hash算法,生成的h(idg)作为群公钥,通过向pkg发送群公钥,执行概率多项式算法,生成每个群的群私钥,并通过安全信道发送给所有匿名群,并公开群公钥。

第二步具体包括:

向内容中心网络系统注册并获取用户id,从有限个匿名群中随机选择两个相邻的匿名群ga和gb,并生成对称密钥k1和k2;

根据向内容发布者发送请求消息、用户id建立原始兴趣包int,将对称密钥k1和k2加入原始兴趣包,通过匿名群ga和gb对应的群公钥pka和pkb对原始兴趣包int和对称密钥k1和k2加密,获得加密后的兴趣包int=ga(qpka((k2||k1)||gb(qpkb(k1||int))));

接收用户终端发送的加密后的兴趣包int。

需要说明的是,用户通过注册获得系统分配的合法id号,具有合法id的用户发送的请求兴趣包才会被ccn中的路由节点和内容发布者响应。

第三步具体包括:

当兴趣包到达内容中心网络中的所述两个相邻的匿名群中的匿名群ga,则根据所述匿名群ga对应的群密钥pra对兴趣包进行解密,获得解密后的第一兴趣包inta=gb(qpkb(k1||int)),并将所述对称密钥k1和k2缓存至节点的缓存空间中,将第一兴趣包inta发送至所述两个相邻的匿名群中的匿名群gb;

当第一兴趣包inta到达匿名群gb中的任何一个节点,则根据所述匿名群gb对应的群密钥prb对兴趣包inta进行解密,获得对称密钥k1和原始兴趣包int,将所述对称密钥k1缓存至节点的缓存空间中,查询匿名群gb中的节点是否缓存有与原始兴趣包int匹配的数据内容,若是,则执行第四步,若否,则执行第五步。

第四步包括:

向内容中心网络系统注册并获取内容发布者idp,对idp执行hash算法得到h(idp)作为公钥pk,将pk发送给密钥生成中心pkg,密钥生成中心pkg计算出内容发布者的私钥pr,并通过安全信道发送给内容发布终端;

用私钥pr对所述解密后的兴趣包匹配的数据内容进行签名得到内容发布者p的签名sigp,签名后的数据包datap为datap=gb(int||data)||sigp,内容发布者将签名后的数据包datap发送到内容中心网络中的节点;

当签名后的数据包datap到达匿名群gb中的任何一个节点,则将签名后的数据包datap存储在节点的缓存中,并用对称密钥k1加密数据包datap,用ga作为前缀字符嵌入加密后的数据包中,并且用gb的群私钥prb对加密后的数据包签名得到sigb,签名后的数据包datab=ga(qk1(int||data||sigp))||sigb,然后将datab发送到下一个匿名群;

当签名后的数据包datab到达匿名群ga中的任何一个节点,则用gb的群公钥pkb验证sigb,若验证失败,则丢弃数据包,若验证成功,则用存储在缓存空间的对称密钥k1对数据包datab进行解密,把解密后的数据包存储在节点的缓存中,然后用对称密钥k1和k2依次加密所述解密后的数据包,并且用匿名群ga的群私钥pra对整个用对称密钥k1和k2加密后的数据包签名得到siga和签名后的数据包dataa=qk2(qk1(int||data||sigp))||siga;

将签名后的数据包dataa发送至用户终端,使得用户终端用ga的群公钥pka验证siga,若验证失败,则丢弃数据包,若验证成功,则用对称密钥k2和k1依次对数据包进行解密,得到解密后的数据包dqk2k1=int||data||sigp,最后用发布者公钥pk验证sigp,若验证成功,则说明数据包来自发布者,用户终端正确得到请求的数据data。

第四步具体描述为:内容发布者使用发布者私钥对数据包进行签名,然后通过网络中的路由节点将数据包按原路返回;匿名群中的路由节点使用群私钥以及节点缓存中存储的对称密钥加密数据包,并将数据包转发到下一个匿名群,直到转发给用户,即数据包签名方法。

需要说明的是:数据包首先被内容发布者用发布者私钥pr签名,在到达匿名群gb时,匿名群中任意一个节点使用gb群私钥prb对数据包进行再次签名,并使用对称密钥k1加密数据包;当数据包到达匿名群ga时,匿名群中任意一个节点首先利用gb群公钥pkb验证签名,并使用对称密钥k1和k2加密数据包,再使用ga群私钥pra对数据包进行签名;当数据包被转发给用户时,用户使用发布者公钥和ga群公钥pka以及自身维护的对称密钥对数据包进行解密和验证。

第五步具体为:将所述解密后的兴趣包发送至下一个所述随机选择的匿名群或内容发布者,并依次在节点的cs、pit和fib中进行前缀匹配查找,直到到达缓存节点或者内容发布者,获得请求的数据包。

若兴趣包当前所在的匿名群为最后一个匿名群且在最后一个匿名群中查找不到匹配的数据内容,则将兴趣包发送至内容发布者。本实施例中,由于匿名群gb是最后一个匿名群,因此若在匿名群gb找不到匹配的数据内容则将兴趣包发送至内容发布者。

本发明提出的基于混合加密和匿名群的隐私保护方法,为了防止攻击者获取通信的数据内容,将ccn中的路由节点划分为有限个匿名群。当匿名群建立完成后,整个ccn被划分为大小不一的匿名群集合,每个匿名群包含若干个节点,在划分的过程中,每个节点最多被划分一次。为了保护通信数据的隐私,用户随机选取两个匿名群ga和gb,通过密钥生成中心(pkg,privatekeygenerator)生成ga和gb的群公钥,使用ga和gb的群公钥加密兴趣包,然后将兴趣包发送到ccn中的路由节点,根据洋葱路由分层的思想,兴趣包在经过匿名群中的节点时一层一层被解密为明文兴趣包,明文兴趣包可以被转发到已有缓存该兴趣包所求内容的节点,或者接着被转发到源服务器,获得请求的数据包。即使攻击者获得解密后的明文兴趣包,也无法与用户关联,从而实现不可链接性。总体来说,就是第一层子节点将接收到的兴趣包转播扩散至第二层,第二层再进行转播扩散直到将兴趣包转播到缓存节点或者内容发布者。兴趣包到达缓存节点或者源服务器有多条路径,随意选择一条就可以得到相对应的数据包。为了实现用户身份的合法性,该方法使用用户注册的方式,系统会给注册的用户分配id号,只有具有id的用户才是合法用户,发送的请求兴趣包才会被ccn中的路由节点响应。内容发布者得到兴趣包后会返回相对应的数据包,同时利用发布者私钥签名数据包,当数据包经过ga和gb的时候,ga和gb中的路由节点会先将数据包存储在缓存(cs,contentstore)中,然后使用缓存中的对称密钥和匿名群私钥对数据包进行加密。这种混合加密的方法,可以保证数据包自签名后到用户收到的过程中没有经过任何修改,即使攻击者通过窃听得到加密的通信内容,在一定的时间内也无法逆向破解得到明文内容,从而保护了通信数据的隐私。本发明借鉴了pkg私钥生成的思想,请求者使用能唯一标识自身身份的id号的哈希值作为公钥,将公钥发送到密钥生成中心pkg,pkg生成私钥发回给请求者。本发明所提的加密方法借鉴了洋葱路由层层加密的思想,通过构建匿名群来保护签名者的身份隐私信息,同时通过混合加密的方法实现了通信内容和通信双方之间的不可链接性。此外,本发明使用数量更少的对称密钥,减少了路由器节点和用户维护密钥的负担。

与现有技术相比,本发明具有如下优点:

1、将ccn中的所有路由节点划分为有限个匿名群,每个匿名群中的所有节点都可以作为匿名路由节点,任何一个节点都可以用该群的群私钥对数据包进行签名,当验证者对签名进行验证时,只能够确定数据包的签名者属于哪个匿名群,但是无法确定具体是群中的哪一个成员。因为对数据包签名的路由节点可能会缓存数据包,找到了签名者就有机会得到其中缓存的数据。因此,本发明提出的匿名群的构建能够有效的保护签名者的身份信息。

2、用户需要注册才能得到系统分配的id,具有合法id的用户发送的请求兴趣包才会被ccn中的路由节点和内容发布者响应。这种方式可以防止攻击者的泛洪攻击,避免了大量的非法兴趣包发送到ccn中,造成通信通道阻塞。由于洋葱路由的分层加密方案中是将ccn中的所有节点都作为匿名路由节点,消息只能经过指定的两个路由器才能被解密成明文,如果路径上的某一个节点出现故障,消息传递就可能会失败,并且在数量庞大的网络节点中很难检测到出故障的节点。本发明提出的匿名群构建,将ccn中的所有路由节点划分为有限个匿名群,每个匿名群中的所有节点都可以作为匿名路由节点,当群中一个或者几个节点出现故障时,群里其他的节点可以对消息进行转发,从而保证了用户和内容发布者之间的正常通信。

3、本发明使用的公钥和私钥是不对称加密方式。这种加密过程是一个不可逆过程,即只有用私有密钥才能解密。采用私钥签名,不仅能保证信息是由签名者自己发送的,签名者不能否认或难以否认;还可以保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。数据包首先被内容发布者用发布者私钥pr签名,在到达匿名群gb时,匿名群中任意一个节点使用gb群私钥prb对数据包进行再次签名;当数据包到达匿名群ga时,匿名群中任意一个节点首先利用gb群公钥pkb验证签名,再使用ga群私钥pra对数据包进行签名;当数据包被转发给用户时,用户使用发布者公钥和ga群公钥pka以及自身维护的对称密钥对数据包进行解密和验证。根据以上所述,攻击者即使通过窃听得到加密的通信内容,在一定的时间内也无法逆向破解得到明文内容;另外由于路由器节点内部缓存的内容会根据内容的流行度时常更新,所以即使攻击者破解了得到明文,该内容也可能失效从而失去任意意义,实现了对通信数据的隐私保护。

4、本发明可以充分发挥ccn节点的缓存特性,如果攻击者在用户附近窃听到用户发送的加密的请求包,然后利用该请求包伪装成合法用户发送到ccn中,返回的数据包也是经过签名加密的,攻击者仍然无法破解获得任何数据。此外,由于ccn节点的缓存特性,数据包可以由源服务器发出,也可以由缓存了该数据的缓存节点发出,因此攻击者无法准确的判断消息的发送源,经过层层加密,无论是兴趣包还是数据包,都无法与发送源关联,能够实现通信内容和通信双方之间的不可链接性。

5、本发明提出的混合加密方案使用数量更少的对称密钥,用户只需要维护两个对称密钥,减轻了用户维护密钥的负担,同时能够减轻路由器存储密钥的负担,具有更少的缓存开销。

以下将对本发明实施例中的匿名群建立过程进行详细的描述:

1)将用户发送的兴趣包的一跳通信区域内的所有节点作为第一层子节点,建立匿名群g。

2)将g添加到group(g)中,更新匿名群中的节点集合。

3)更新其余节点集合:r=r-group(g)。

4)判断r中的节点是否完全包含在group(g)中。如果则继续重复执行步骤1~步骤3。如果则说明ccn中的所有节点都已经别划分完毕,得到匿名群的集合group(g)={g1,g2,g3,…,gj}。

5)假设ccn中一共有n个节点,用group(g)={g1,g2,g3,…,gj}来表示ccn中已经被划分了的j个匿名群,其中1≤j≤n。系统为已经划分的每个匿名群分配群id,则idg={id1,id2,…,idj},通过对idg执行hash算法,生成的h(idg)作为群公钥。通过向pkg发送群公钥,执行概率多项式算法,生成每个群的群私钥,并通过安全信道发送给所有匿名群。每个群公开群公钥,保密群私钥。

请参阅图2,以下将对本发明实施例中的兴趣包加密和发送过程进行详细的描述:

1)用户通过注册获得系统分配的idi,在向内容发布者发送请求消息之前,在pkg公开的匿名群列表中随机选择两个相邻的匿名群ga和gb,其中ga,gb∈group(g)。接着用户生成两个对称密钥k1和k2,将k1和k2加入兴趣包中,用ga和gb的群公钥pka和pkb对兴趣包加密,得到加密后的兴趣包int:int=ga(qpka((k2||k1)||gb(qpkb(k1||int))))。用户将int||idi发送到ccn中的路由节点。

2)ga作为前缀字符表示转发到的匿名群,当兴趣包到达ga中的任意一个节点,利用ga群的群私钥pra对加密的兴趣包进行解密,得到:inta=gb(qpkb(k1||int))。接下来将inta发送到下一个匿名群,记录k1和k2到节点的缓存空间中。

3)当inta到达gb中的任何一个节点,利用gb群的群私钥prb对加密的兴趣包进行解密,得到:k1||int。记录k1到节点的缓存中,并查询在节点内部的缓存中有没有与int匹配的数据内容,如果有则将匹配的内容数据包按原路径返回发送给用户,否则将int发送到下一个节点。

4)兴趣包int在接下来的转发过程中,依次在节点的cs、pit和fib中进行前缀匹配查找,直到到达缓存节点或者内容发布者,获得请求的数据包。

请参阅图3,以下将对本发明实施例中的数据包签名过程进行详细的描述:

1)内容发布者通过注册获得系统分配的idp,执行hash算法得到h(idp)作为公钥pk,将pk发送给pkg,pkg计算出发布者的私钥pr,并通过安全信道发送给发布者。发布者在发送返回数据包的时候,用pr对数据包内容进行签名得到sigp,签名后的数据包datap:datap=gb(int||data)||sigp。内容发布者将datap发送到ccn中的节点。

2)当datap到达ccn中的任意一个节点,先把datap存储在节点的缓存中,然后用k1加密数据包,用ga作为前缀字符嵌入加密的数据包中,并且用gb的群私钥prb对数据包签名得到sigb,签名后的数据包datab=ga(qk1(int||data||sigp))||sigb。将datab发送到下一个匿名群。

3)当datab到达ga中的任意一个节点,先用gb的群公钥pkb验证sigb,并用之前存储在缓存空间的对称密钥k1对数据包进行解密,把解密后的数据包存储在节点的缓存中。然后用k2和k1加密数据包,并且用ga的群私钥pra对整个数据包签名得到siga,签名后的数据包dataa:dataa=qk2(qk1(int||data||sigp))||siga。

4)用户接收到数据包dataa,首先用ga的群公钥pka验证siga,然后用对称密钥k2和k1依次对数据包进行解密,得到:dqk2k1=int||data||sigp。再用发布者公钥pk验证sigp,若正确则得到用户所请求的data。

请参参阅图4,本发明中用户、路由器节点、内容发布者三者间的交互过程,其兴趣包和数据包的表达式经过一系列加密和解密、经过匿名群的传输进行数据交互,保证了通信内容和通信双方之间的不可链接性,保护了隐私,使得通讯更加安全。

以下将对本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护装置进行详细的描述。

本发明实施例提供的一种基于混合加密和匿名群的内容中心网络隐私保护装置,包括:

匿名群建立模块,用于标记内容中心网络中的所有路由器节点为有限个匿名群,为每个匿名群分配群id;

兴趣包生成与接收模块,用于接收用户终端发送的兴趣包,所述兴趣包由系统分配的用户id、从有限个匿名群中随机选择的匿名群的匿名群id、预设的对称密钥生成根据所述随机选择的匿名群对应的群公钥加密生成;

兴趣包匹配处理模块,用于当兴趣包到达内容中心网络中的所述随机选择的匿名群,则根据相应的群密钥对兴趣包进行解密,获得解密后的兴趣包和对称密钥并缓存所述对称密钥,查询兴趣包当前到达的匿名群中的节点是否缓存有与所述解密后的兴趣包匹配的数据内容,若是,则执行数据包返回模块,若否,则执行兴趣包循环匹配模块;

数据包返回模块,用于将所述解密后的兴趣包匹配的数据内容根据匿名群、对称密钥、群公钥和群私钥按兴趣包传输的路径返回至用户终端;

兴趣包循环匹配模块,用于将所述解密后的兴趣包发送至下一个所述随机选择的匿名群或内容发布者,并返回执行步骤s3。

匿名群建立模块具体包括:

匿名群建立单元,用于将用户终端发送的兴趣包的一条通讯区域内的所有节点作为第一层子节点,建立匿名群g;

匿名群集合单元,用于将匿名群g添加到匿名群集合group(g)中,更新内容中心网络中的所有节点的集合r=r-group(g);

匿名群完整性判断单元,用于判断内容中心网络中的所有节点的集合r中的节点是否完全包含在group(g)中,若是,则获得匿名群集合group(g)={g1,g2,g3,…,gj}并执行步骤s104,若否,则返回执行步骤s101;

群id和公钥密钥生成单元,用于根据匿名群集合group(g)={g1,g2,g3,…,gj}分配群id,所述群id为idg={id1,id2,…,idj},并对通过对idg执行hash算法,生成的h(idg)作为群公钥,通过向pkg发送群公钥,执行概率多项式算法,生成每个群的群私钥,并通过安全信道发送给所有匿名群,并公开群公钥。

兴趣包生成与接收模块具体包括:

用户单元,用于向内容中心网络系统注册并获取用户id,从有限个匿名群中随机选择两个相邻的匿名群ga和gb,并生成对称密钥k1和k2;

兴趣包加密单元,用于根据向内容发布者发送请求消息、用户id建立原始兴趣包int,将对称密钥k1和k2加入原始兴趣包,通过匿名群ga和gb对应的群公钥pka和pkb对原始兴趣包int和对称密钥k1和k2加密,获得加密后的兴趣包int=ga(qpka((k2||k1)||gb(qpkb(k1||int))));

兴趣包接收单元,用于接收用户终端发送的加密后的兴趣包int。

兴趣包匹配处理模块具体包括:

匿名群ga兴趣包处理单元,用于当兴趣包到达内容中心网络中的所述两个相邻的匿名群中的匿名群ga,则根据所述匿名群ga对应的群密钥pra对兴趣包进行解密,获得解密后的第一兴趣包inta=gb(qpkb(k1||int)),并将所述对称密钥k1和k2缓存至节点的缓存空间中,将第一兴趣包inta发送至所述两个相邻的匿名群中的匿名群gb;

匿名群gb兴趣包处理单元,用于当第一兴趣包inta到达匿名群gb中的任何一个节点,则根据所述匿名群gb对应的群密钥prb对兴趣包inta进行解密,获得对称密钥k1和原始兴趣包int,将所述对称密钥k1缓存至节点的缓存空间中,查询匿名群gb中的节点是否缓存有与原始兴趣包int匹配的数据内容,若是,则执行数据包返回模块,若否,则执行兴趣包循环匹配模块。

数据包返回模块包括:

内容发布单元,用于向内容中心网络系统注册并获取内容发布者idp,对idp执行hash算法得到h(idp)作为公钥pk,将pk发送给密钥生成中心pkg,密钥生成中心pkg计算出内容发布者的私钥pr,并通过安全信道发送给内容发布终端;

数据包加密单元,用于用私钥pr对所述解密后的兴趣包匹配的数据内容进行签名得到内容发布者p的签名sigp,签名后的数据包datap为datap=gb(int||data)||sigp,内容发布者将签名后的数据包datap发送到内容中心网络中的节点;

匿名群gb数据包处理单元,用于当签名后的数据包datap到达匿名群gb中的任何一个节点,则将签名后的数据包datap存储在节点的缓存中,并用对称密钥k1加密数据包datap,用ga作为前缀字符嵌入加密后的数据包中,并且用gb的群私钥prb对加密后的数据包签名得到sigb,签名后的数据包datab=ga(qk1(int||data||sigp))||sigb,然后将datab发送到下一个匿名群;

匿名群ga数据包处理单元,用于当签名后的数据包datab到达匿名群ga中的任何一个节点,则用gb的群公钥pkb验证sigb,若验证失败,则丢弃数据包,若验证成功,则用存储在缓存空间的对称密钥k1对数据包datab进行解密,把解密后的数据包存储在节点的缓存中,然后用对称密钥k1和k2依次加密所述解密后的数据包,并且用匿名群ga的群私钥pra对整个用对称密钥k1和k2加密后的数据包签名得到siga和签名后的数据包dataa=qk2(qk1(int||data||sigp))||siga;

用户终端数据包处理单元,用于将签名后的数据包dataa发送至用户终端,使得用户终端用ga的群公钥pka验证siga,若验证失败,则丢弃数据包,若验证成功,则用对称密钥k2和k1依次对数据包进行解密,得到解密后的数据包dqk2k1=int||data||sigp,最后用发布者公钥pk验证sigp,若验证成功,则说明数据包来自发布者,用户终端正确得到请求的数据data。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1