一种支持用户动态加入的谓词群加密方法及系统与流程

文档序号:18135402发布日期:2019-07-10 10:34阅读:226来源:国知局
一种支持用户动态加入的谓词群加密方法及系统与流程

本发明涉及信息安全密码领域,具体涉及一种支持成员动态加入的谓词群加密方法。



背景技术:

随着信息技术的快速发展,各类物联网设备、手持设备、无人机等已取得普及应用。为实现保密通信,用户设备之间往往需要构建自组织通信网络,使得仅处于网络内部的用户设备能够能够进行保密信息。因此,用户设备构成的自组织网络指定了信息传播和分享的范围,可确保这些信息的保密性。

然而,在某些特殊通信环境下,上述自组织网络可能需要支持新用户加入,以实现安全通信系统的可扩展性。考虑在野外执行任务的场景下,一组派出执行任务用户可能需要其他后援用户的支援,此时要求执行任务的用户能够对新用户的身份进行验证,以确保仅有合法的新用户才可以加入系统、共同执行相关任务。

当新用户请求加入通信系统时,传统技术可以利用可信的核心节点对其身份进行验证。但上述野外执行任务场景下构建的自组织网络缺少可信赖的核心节点,网络中现有成员具有平等的权利,某个或小部分成员均无法批准新用户加入系统的请求。因此,该场景下对新用户身份的有效验证无法利用传统技术加以解决。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种支持用户动态加入的谓词群加密方法及系统,旨在解决多用户环境下自适应扩展新成员的问题。

为实现上述目的及其他相关目的,本发明提供一种支持用户动态加入的谓词群加密方法,该方法包括以下步骤:

系统管理员选取安全参数,生成系统公开参数和主私钥;

系统管理员根据所述系统公开参数和主私钥,为群中各个初始成员生成私钥,每个成员维护一个群成员列表;

系统管理员根据所述系统公开参数和主私钥,为新成员生成一组属性和私钥;

所述新成员根据所述系统公开参数,针对自己的属性计算一个密文,并将该密文发送给群中现有成员,以申请加入该群;

现有群成员根据自己的私钥对接收到的密文进行解密,以判断该新成员是否合法,并根据系统的公开阈值判断是否允许该新成员加入群中;

系统管理员根据所述主私钥检验新成员加入群的流程合法性。

可选地,所述系统公开参数表示为:所述主私钥表示为:其中,g和gt分别表示阶为合数n的循环群,表示一个双线性映射运算g×g→gt,表示循环群gt的生成元,g1,g2,g3分别表示循环群g的子群g1,g2,g3的生成元,k表示密钥,fprf表示伪随机函数,τ为阈值,公开参数q=g2·r0,r0∈g3,公开参数h1,j=h1,j·r1,j,公开参数h2,j=h2,j·r2,j,h1,j,h2,j∈g1,r1,j,r2,j∈g3,1≤j≤n+1;p1,p2,p3分别为子群g1,g2,g3的阶,表示系统谓词向量,密钥参数r'∈g3,q'∈g2,密钥参数密钥参数v0,j=fprf(k,0,j),表示基于集合{0,1,..,p1-1}的域,表示基于集合{0,1,..,p2-1}的域。

可选地,所述系统管理员利用所述系统公开参数和主私钥,为新成员生成一组属性和私钥,具体包括:

针对每个新成员ul,系统管理员计算得到谓词向量其中vl,j=fprf(k,l,j),m+1≤l≤n;

针对每个新成员ul,系统管理员随机选取rl,5∈g3,和ql,6∈g2,计算得到

针对每个新成员ul,系统管理员根据系统谓词向量和成员谓词向量构造并求解如下方程组:

从解集中随机选取一个非零解作为新成员ul的属性向量,其中vi,j表示谓词向量的第j个元素;

系统管理员将属性向量和私钥发送给新成员ul。

可选地,所述新成员利用所述系统公开参数,针对自己的属性计算一个密文,并将该密文发送给群中现有成员,以申请加入该群,具体包括:

新成员ul随机选取t,α,β∈zn和rl,3,j,rl,4,j∈g3,zn表示基于集合{0,1,..,n-1}的域;

新成员ul计算得到cl,0,cl,1,j,cl,2,j表示新成员ul对其属性向量计算得到的密文参数,表示群g上的幂运算;

新成员ul将密文发送给群中现有的全部成员u={u1,u2,…,um}。

可选地,所述现有群成员根据自己的私钥对接收到的密文进行解密,以判断该新成员是否合法,并根据系统的公开阈值判断是否允许该新成员加入群中,具体包括:

每个现有成员ui∈u根据自己的私钥验证下式是否成立:

若成立,则判断该新成员ul合法,否则,判断该新成员ul不合法;成员ui将上述判断结果通知群中其他现有成员u\{ui};

每个现有成员ui∈u接收到其他现有成员u\{ui}发来的判断结果,判断下式是否成立:

如果成立,则接收该新成员ul为群成员,并更新群成员集合u=u∪{ul};否则,拒绝该新成员ul的加入请求。

可选地,所述系统管理员利用主私钥检验新成员加入群的流程合法性,具体包括:

系统管理员可以根据自己的主私钥sk检验新成员加入群的流程是否合法,验证下式是否成立:

若成立,则判断该新成员ul加入群的流程合法,否则,判断该新成员ul加入群的流程不合法。

为实现上述目的及其他相关目的,本发明还提供一种支持用户动态加入的谓词群加密系统,其特征在于,该系统包括:

系统初始化模块,用于选取安全参数,生成系统公开参数和主私钥;

初始成员密钥生成模块,用于根据所述系统公开参数和主私钥,为群中各个初始成员生成私钥,每个成员维护一个群成员列表;

新成员密钥生成模块,用于根据所述系统公开参数和主私钥,为新成员生成一组属性和私钥;

加入系统申请模块,用于根据所述系统公开参数,针对自己的属性计算一个密文,并将该密文发送给群中现有成员,以申请加入该群;

加入系统批准模块,用于根据自己的私钥对接收到的密文进行解密,以判断该新成员是否合法,并根据系统的公开阈值判断是否允许该新成员加入群中;

加入系统审计模块,用于根据主私钥检验新成员加入群的流程合法性。

如上所述,本发明的一种支持用户动态加入的谓词群加密方法及系统,具有以下有益效果:

本发明提供一种支持成员动态加入的谓词群加密方法,支持新成员按顺序加入群中,且不泄露新成员的保密属性信息。本方法允许新用户对自己的属性向量进行加密,可确保在执行解密验证过程时现有群成员无法获得新用户的属性向量具体内容,实现了新用户属性向量的隐私保护。针对新用户的加入请求,只有当群中至少预设阈值比例的现有成员均验证通过时,才可以获准加入群中,在此过程中不需要系统管理员的参与。对于已获准加入群的新成员,系统管理员可以执行审计模块,以验证新成员的加入流程是否合法。

附图说明

为了进一步阐述本发明所描述的内容,下面结合附图对本发明的具体实施方式作进一步详细的说明。应当理解,这些附图仅作为典型示例,而不应看作是对本发明的范围的限定。

图1为本发明所述的一种支持用户动态加入的谓词群加密方法的流程图;

图2为本发明所述的一种支持用户动态加入的谓词群加密系统的架构图;

图3为本发明所述的一种支持用户动态加入的谓词群加密系统的框图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

为了使本领域技术人员对本发明的技术方案更加清晰的理解,先对本发明中的一些技术术语进行说明。

(1)系统管理员(manager):计算系统的公开参数和主私钥,将公开参数公开发布;根据系统公开参数和主私钥为群初始成员计算私钥;根据系统公开参数和主私钥为新成员计算属性向量和私钥;根据主私钥对新用户加入群的流程进行验证。

(2)初始群成员(initialgroupmembers):根据自己的私钥解密新用户的密文属性向量,以验证新用户身份是否合法。

(3)新成员(newmembers):对自己的属性向量进行加密,用以申请加入群中。

本发明的架构图如图1所示。

本发明所设计的一种支持用户动态加入的谓词群加密方法,其使用了双线性映射相关的数学知识,特在此作相关定义说明。

定义一个函数映射g×g→gt将循环群g中的元素映射到循环群gt中,其中g和gt均是两个阶为合数n=p1·p2·p3的循环群,其中p1,p2,p3是三个不同的大素数。双线性映射需满足如下特性:

(1)双线性特性:对于任意μ,ν∈g,任意x,y∈zn,均有成立,其中zn={0,1,2,..,n-1};

(2)非退化特性:群g中至少存在一个元素g,使得为群gt的生成元;

(3)高效性:存在有效的算法,使得对于任意μ,ν∈g,可以有效计算出的值。

如图2所示,本发明提供一种支持成员动态加入的谓词群加密方法,该方法包括以下步骤:

步骤1.系统管理员选取安全参数,生成系统公开参数和主私钥。

具体地,该步骤1具体包括以下子步骤:

步骤11:系统管理员输入系统安全参数δ,运行初始化算法θ(1δ),输出两个阶为合数n的循环群g和gt以及一个双线性映射运算g×g→gt,其中n是三个不同大素数p1,p2,p3的乘积,即n=p1·p2·p3;

其中,所述的初始化算法θ(1δ),其运行方法如下:系统管理员输入系统安全参数δ,系统根据δ的大小,选择相应的椭圆曲线:(θ和为系数),用椭圆曲线上的点构成两个合数n阶的循环群g和gt,选择一种映射函数将循环群g中的元素映射到循环群gt中;一般,安全参数δ数值越大,所选取的椭圆曲线上的点也越多,循环群也越大。

步骤12:系统管理员选取整数n,设定n为群成员数量上限,并选取一个阈值τ(0.5≤τ≤1);

步骤13:系统管理员构造循环群g的三个子群g1,g2,g3,这些子群的阶分别为大素数p1,p2,p3;

步骤14:系统管理员运行随机数生成算法,从循环群g随机选择一个生成元g,计算循环子群g1,g2,g3的生成元分别为即g1=<g1>,g2=<g2>,g3=<g3>,以及计算循环群gt的生成元为

其中,所述的随机数生成算法,其方法如下:根据步骤11所选取的椭圆曲线随机选择自变量x的一个值计算对应因变量y的值若点在所要映射的循环群g中,则成功生成了随机元素;若点不在循环群g中,则继续重新选择x的值,直到找到出现在循环群g中的点。

步骤15:系统管理员选取一个伪随机函数fprf:k×{0,1}*→zn,其中k表示fprf的密钥空间,zn表示基于集合{0,1,..,n-1}的域,系统管理员进一步从k中随机选取一个密钥k;

步骤16:系统管理员随机选取r0∈g3,r1,j,r2,j∈g3以及h1,j,h2,j∈g1,其中1≤j≤n+1,并计算得到公开参数q=g2·r0,公开参数h1,j=h1,j·r1,j,公开参数h2,j=h2,j·r2,j,其中1≤j≤n+1;

步骤17:系统管理员计算得到系统谓词向量其中v0,j=fprf(k,0,j),1≤j≤n+1;

步骤18:系统管理员随机选取其中1≤j≤n+1,表示基于集合{0,1,..,p1-1}的域,并随机选取r'∈g3,和q'∈g2,表示基于集合{0,1,..,p2-1}的域,计算得到密钥参数密钥参数密钥参数其中1≤j≤n+1;

最后,系统管理员发布系统公开参数保存主私钥

步骤2.系统管理员利用系统公开参数和主私钥,为群中各个初始成员生成私钥,每个成员维护一个群成员列表。

具体地,该步骤2具体包括以下子步骤:为便于表述,本发明假设初始时群中包含m(1≤m<n)个成员,即初始成员集合为u={u1,u2,…,um}。

步骤21:针对每个初始成员ui(1≤i≤m),系统管理员计算得到谓词向量其中vi,j=fprf(k,i,j),1≤j≤n+1;

步骤22:针对每个初始成员ui(1≤i≤m),系统管理员随机选取其中1≤j≤n+1,并随机选取ri,5∈g3,和qi,6∈g2,计算得到密钥参数密钥参数密钥参数其中1≤j≤n+1;

最后,系统管理员将私钥发送给群成员ui。

步骤3.系统管理员利用系统公开参数和主私钥,为新成员生成一组属性和私钥。

具体地,该步骤3具体包括以下子步骤:为便于表述,本发明假设新成员集合为u'={um+1,um+2,…,un}。

步骤31:针对每个新成员ul(m+1≤l≤n),系统管理员计算得到谓词向量其中vl,j=fprf(k,l,j),1≤j≤n+1;

步骤32:针对每个新成员ul(m+1≤l≤n),系统管理员随机选取其中1≤j≤n+1,并随机选取rl,5∈g3,和ql,6∈g2,计算得到其中1≤j≤n+1;

步骤33:针对每个新成员ul(m+1≤l≤n),系统管理员根据系统谓词向量和成员谓词向量构造并求解如下方程组:

从解集中随机选取一个非零解作为新成员ul的属性向量,其中vi,j表示谓词向量的第j个元素(0≤i≤l-1,1≤j≤n+1),该矩阵每一行对应一个谓词向量。

最后,系统管理员将属性向量和私钥发送给新成员ul。

步骤4.新成员利用系统公开参数对自己的属性向量计算一个密文,并将该密文发送给群中现有成员,以申请加入该群。

为便于表述,本发明假设新成员ul∈u'={um+1,um+2,…,un}按照下标序号l(m+1≤l≤n)递增的顺序逐个申请加入群中。

具体地,新成员ul随机选取t,α,β∈zn和rl,3,j,rl,4,j∈g3,其中1≤j≤n+1。新成员ul计算得到其中1≤j≤n+1。新成员ul将密文发送给群中现有的全部成员u={u1,u2,…,um}。cl,0,cl,1,j,cl,2,j表示新成员ul对其属性向量计算得到的密文参数,表示群g上的幂运算。

步骤5.现有群成员根据自己的私钥对接收到的密文进行解密,以判断该新成员是否合法,并根据系统的公开阈值判断是否允许该新成员加入群中。

具体地,该步骤5具体包括以下子步骤:

步骤51:每个现有成员ui∈u根据自己的私钥验证下式是否成立:

若成立,则判断该新成员ul合法,否则,判断该新成员ul不合法;成员ui将上述判断结果通知群中其他现有成员u\{ui};

步骤52:每个现有成员ui∈u接收到其他现有成员u\{ui}发来的判断结果,判断下式是否成立:

如果成立,则接收该新成员ul为群成员,并更新群成员集合u=u∪{ul};否则,拒绝该新成员ul的加入请求,保持群成员集合不变。

步骤6.系统管理员利用主私钥检验新成员加入群的流程合法性。

具体地,系统管理员可以根据自己的主私钥sk检验新成员加入群的流程是否合法,验证下式是否成立:

若成立,则判断该新成员ul加入群的流程合法,否则,判断该新成员ul加入群的流程不合法。

综上所述,本发明提出了一种支持成员动态加入的谓词群加密方法。首先,在新用户申请加入群时,仅向现有群成员提供加密后的属性向量,可保障其在传输过程的隐私。其次,现有成员在解密验证新成员的密文属性向量时,仅判断该属性向量是否满足自己的内积谓词函数,而不能获得新用户的属性向量内容,因此可以保障该属性向量在解密验证过程中的隐私。再次,对新成员加入申请的最终判断,仅依赖于各个现有成员验证成功的比例是否达到某预设系统阈值,不需要系统管理员的直接介入,从而实现了系统成员的自适应增加。

于另一实施例中,本发明还提供一种支持成员动态加入的谓词群加密装置,该装置包括:

系统初始化模块1,系统管理员选取安全参数,生成系统公开参数和主私钥;

初始成员密钥生成模块2,系统管理员利用系统公开参数和主私钥,为群中各个初始成员生成私钥,每个成员维护一个群成员列表;

新成员密钥生成模块3,系统管理员利用系统公开参数和主私钥,为新成员生成一组属性和私钥;

加入系统申请模块4,新成员利用系统公开参数,针对自己的属性计算一个密文,并将该密文发送给群中现有成员,以申请加入该群;

加入系统批准模块5,现有群成员根据自己的私钥对接收到的密文进行解密,以判断该新成员是否合法,并根据系统的公开阈值判断是否允许该新成员加入群中;

加入系统审计模块6,系统管理员利用主私钥检验新成员加入群的流程合法性。

本发明所述的一种支持成员动态加入的谓词群加密装置不但实现了新用户申请加入群过程中的个人属性向量隐私保护,而且支持较为公平的批准加入模式,即仅当达到某预设阈值的现有成员同意之后才允许新成员加入。

需要说明的是,由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例的内容请参见方法部分的实施例的描述,这里暂不赘述。

综上所述,本发明在多用户环境下采用基于内积谓词函数的判断机制,以验证新成员身份的合法性,且在此过程中保护了新用户的属性向量内容的隐私,解决了在自适应网络中如何不依赖于实时的可信中心验证新用户身份的问题。该方法的优点和功效是:

本发明方法在新用户申请加入群的阶段,允许该新用户对其属性向量进行加密,仅向现有群成员提供密文数据,因此可以保障新用户属性向量内容在网络传输过程中的隐私。

本发明方法在批准新用户加入群的请求时,现有群成员通过验证新成员的密文属性向量是否满足自己的内积谓词函数,以验证该新成员的身份是否合法,而不需对新成员的密文属性向量元素解密,从而保护了新成员的属性向量的隐私。

本发明方法要求新成员至少得到数量达到某预设阈值的现有成员同意之后,才可以获准加入群中,且该新成员加入群的过程允许管理员在后期进行审计,以判断新成员加入群的过程是否存在问题。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

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