一种细粒度移动访问的加密、解密系统及加密、解密方法与流程

文档序号:22041072发布日期:2020-08-28 18:07阅读:222来源:国知局
一种细粒度移动访问的加密、解密系统及加密、解密方法与流程

分案说明

本申请是针对申请日为2018年07月02日,申请号为201880001876.4,发明名称为用于数据传输的系统和方法的中国申请,提出的分案申请。

交叉引用

本申请要求于2017年7月6日提交的申请号为201710545255.x的中国申请和2017年7月12日提交的申请号为201710565512.6的中国申请的优先权,其全部内容通过引用方式结合于此。

本申请一般涉及通信技术,具体地,涉及用于数据加密和解密的系统和方法。



背景技术:

在集群中,用于管理集群成员的簇头(ch)是有必要的。簇头可以确定是否接受愿意加入集群的新成员,即使该消息是匿名的,也跟踪消息的发送终端,并从集群中移除恶意集群成员。具有上述特征的信息网络可以称为集群组织信息网络。进一步地,为了保证集群组织信息网络中消息传输的安全性,可以使用传统的加密方法对集群组织信息网络中传输的消息进行加密,即消息发送终端的终端可以使用公钥对消息进行加密,接收终端可以使用私钥对密文解密。但是,集群组织信息网络中的数据传输可能存在以下问题。

首先,公钥可能是一个不规则的字符串。因此,很难检查它。但是,公钥中的错误可能导致密文完全不同。1984年,shamir首先提出了基于身份的密码系统和签名系统,其中公钥名称可以是接收终端的id(标识),并且可以由接收终端的邮件地址或电话号码表示。因此,很容易检查公钥的正确性,并且可以检测到公钥中的错误。2003年,boneh和franklin使用weil配对建立了完整的基于身份的加密机制(ibe)。所提出的机制在随机预测模型中的选择性密文攻击下是安全的,并且在信息网络中使用公共密钥生成器(pkg)来向每一类成员分发私钥。

其次,由于集群组织信息网络的所有成员都可以从pkg收到私钥,pkg必须承担很大的负担才能将密钥分发给所有成员。更糟糕的是,如果pkg离线或不工作,整个私钥生成过程可能会中断。

此外,在集群组织信息网络中传输的消息需要是匿名的,这样攻击者可能无法根据消息找到发送终端的身份信息。然而,当集群的成员否认他/她收到消息,或者发送给集群成员的信息是非法时,簇头可以基于该消息跟踪发送终端的身份信息,以便移除恶意集群成员。

因此,为了确保集群组织信息网络中的消息传输的安全性,并避免pkg承担向集群所有成员分发用于解密的私钥的负担,成为迫切需要解决的技术问题。

在另一方面,移动云计算成为大多数云辅助网络的基础设施,例如移动支付。但是,移动计算受到安全风险的严重威胁。存储在云中的数据向公众开放,因此需要保护数据存储,并且只有授权用户才能访问数据存储。传统加密技术仅支持有限的访问控制机制,难以应用于移动云计算。公开索引谓词加密是一种新兴的非对称加密范例,允许对加密数据进行细粒度的访问控制。在公开索引谓词加密系统中,访问控制策略尤为重要。密文与密文属性相关联,并且私钥分配给密钥属性。如果私钥中的密钥属性与预定义密钥匹配,则只能将密文中嵌入的密文属性解密。然而,在移动云计算中广泛使用公开索引谓词加密仍然存在许多困难。大多数公开索引谓词加密方案需要大量的代数运算,并且加密数据解密时使用的解密时间随着密文数据属性的增加而增加。这种困难极大地限制了它的应用。当移动设备解密加密数据时,难度将增加计算能力有限的用户的延迟,并且电量消耗将增加。因此,需要一种用于在集群组织信息网络和移动云中更有效和安全地加密和/或解密数据的系统和方法。



技术实现要素:

本申请的一方面,提供一种用于集群组织信息网络中的数据传输的方法。所述方法可以包括根据初始化函数,使用集群的安全参数和单位向量的最大值深度,生成主密钥和一个或以上系统参数,所述集群包括第一类成员和第二类成员;基于所述主密钥、所述一个或以上系统参数、和所述第一类成员的身份信息矢量生成所述第一类成员的私钥;基于所述一个或以上系统参数、所述第一类成员的身份信息矢量、所述第一类成员的私钥和所述第二类成员的身份信息矢量生成所述第二类成员的私钥;如果所述第一类成员或所述第二类号码是从发送终端接收加密消息的接收终端,则根据所述一个或以上系统参数和所述接受者的私钥对所述加密消息进行解密确定初始信息。

在一些实施例中,所述方法进一步包括:生成所述集群的簇头的公钥和簇头的私钥,其中,所述加密消息为所述发送终端基于所述一个或以上系统参数、所述接收终端的身份信息矢量和所述簇头的公钥对所述初始信息进行加密生成的,且所述加密消息匿名传输。

在一些实施例中,该方法还可以包括:在所述接收终端接收所述加密信息执行以下步骤之前:使用所述簇头的私钥确定所述加密消息的身份信息矢量;其中,基于加密消息和簇头的私钥生成加密消息的身份信息矢量,其中,所述加密消息的身份信息矢量是根据所述加密消息和所述簇头的私钥生成的;验证所述加密信息的身份信息矢量与所述接收终端的身份信息矢量是否一致;响应于确定所述加密信息的身份信息矢量与所述接收终端的身份信息矢量一致,则生成允许信号以允许所述加密信息在所述集群中进行传送;以及响应于确定所述加密信息的身份信息矢量与所述接收终端的身份信息矢量不一致,则生成拒绝信号以拒绝所述加密信息在所述集群中传送。

本申请的另一方面,提供一种用于集群组织信息网络中的数据传输装置。所述装置可以包括第一生成单元,用于将集群的安全参数和单位向量的最大值深度代入到初始化函数中生成主密钥、一个或以上系统参数,所述集群包括第一类成员和第二类成员;第二生成单元,用于根据所述主密钥、所述一个或以上系统参数、和所述第一类成员的身份信息矢量生成所述第一类成员的私钥;第三生成单元,用于根据所述一个或以上系统参数、所述第一类成员的身份信息矢量、所述第一类成员的私钥和所述第二类成员的身份信息生成所述第二类成员的私钥;解密单元,使用所述一个或以上系统参数和所述接收终端的私钥对所述加密消息进行解密生成初始信息,包括所述第一类成员或所述第二类号码的接收终端从发送终端接收所述加密消息。

在一些实施例中,所述装置进一步可以包括第四生成单元,第四生成单元,用于根据所述安全参数生成所述集群的簇头的公钥和簇头的私钥,其中,所述加密消息为所述发送终端基于所述一个或以上系统参数、所述接收终端的身份信息矢量和所述簇头的公钥对所述初始信息进行加密生成的,且所述加密消息匿名传输。

在一些实施例中,所述装置进一步可以包括获取单元,用于使用所述簇头的私钥确定所述加密消息的身份信息矢量;验证单元,用于验证所述加密信息的身份信息矢量与所述接收终端的身份信息矢量是否一致;处理单元,响应于确定所述加密信息的身份信息矢量与所述接收终端的身份信息矢量一致,用于生成允许信号以允许所述加密信息在所述集群中进行传送,以及响应于确定所述加密信息的身份信息矢量与所述接收终端的身份信息矢量不一致,则生成拒绝信号以拒绝所述加密信息在所述集群中传送。

本申请的另一方面,提供一种用于集群管理服务器。所述服务器可以包括权利要求4-6中任一项所述的集群组织信息网络的数据传输装置。

本申请的另一方面,提供一种计算设备。所述计算设备可以包括处理器,所述处理器用于执行存储设备中存储的计算机程序时,实现如权利要求1-3中任一项所述的集群组织信息网络的数据传输方法的步骤。

本申请的另一方面,提供一种计算机可读介质。计算机可读介质可以存储一组计算机指令,其中当由处理器执行时,所述计算机指令指示所述处理器实现如权利要求1-3中任一项所述的集群组织信息网络的数据传输方法的步骤。

本申请的另一方面,提供一种方法。该方法可以在具有至少一个处理器和至少一个用于解密集群中的加密消息的计算机可读存储介质的计算设备上实现,所述方法包括:由第一私钥生成器,使用所述集群的安全参数和单位向量的最大值深度,生成主密钥、一个或以上系统参数,所述集群包括第一类成员和第二类成员;由所述第一私钥生成器,根据所述主密钥、所述一个或以上系统参数、和所述第一类成员的身份信息矢量,生成所述第一类成员的私钥;由第二私钥生成器,根据所述一个或以上系统参数、所述第一类成员的身份信息矢量、所述第一类成员的私钥和所述第二类成员的身份信息,生成所述第二类成员的私钥;以及使用所述一个或以上系统参数和所述第一类成员或所述第二类成员的所述私钥来解密所述加密消息。

在一些实施例中,所述第一私钥生成器独立于所述第二私钥生成器。

在一些实施例中,所述第一类成员为集群中的上级,所述第二类成员为集群中的下级。

在一些实施例中,所述方法可以进一步包括:生成所述集群的簇头的公钥和簇头的私钥,其中,所述加密消息为基于所述一个或以上系统参数、所述第一类成员或所述第二类成员的身份信息矢量、以及所述簇头的公钥对所述初始消息进行加密生成的。

本申请的另一方面,可以提供一种用于解密集群中的加密消息的系统。所述系统可以包括存储一组指令的至少一个存储介质;至少一个处理器,用于与所述至少一个存储介质通信,其中,当执行所述指令时,所述至少一个处理器用于:由第一私钥生成器,使用所述集群的安全参数和单位向量的最大值深度,生成主密钥、一个或以上系统参数,所述集群包括第一类成员和第二类成员;由所述第一私钥生成器,根据所述主密钥、所述一个或以上系统参数、和所述第一类成员的身份信息矢量,生成所述第一类成员的私钥;由第二私钥生成器,根据所述一个或以上系统参数、所述第一类成员的身份信息矢量、所述第一类成员的私钥和所述第二类成员的身份信息矢量,生成所述第二类成员的私钥;以及使用所述一个或以上系统参数和所述第一类成员或所述第二类成员的所述私钥来解密所述加密消息。

本申请的另一方面,可以提供一种用于细粒度移动访问的加密方法。所述方法可以包括基于系统安全性参数λ,生成主密钥msk和一个或以上公钥参数pp、;获取用户身份属性;基于所述身份属性和所述主密钥msk生成用户私钥ski;加密离线数据,生成离线数据的会话密钥key1和离线数据的中介密文ict;以及加密在线数据,生成在线数据的会话密钥key2和在线数据的中介密文ct。

在一些实施例中,基于系统安全性参数生成所述主密钥msk和所述一个或以上公钥参数pp,包括:基于所述系统安全参数λ,通过私钥生成器(pkg)确定素数p和双线性群;确定撤销身份域u和验证域v;通过所述pkg选择杂凑函数uch、辅助参数域r;通过所述pkg从所述双线性群中选择随机数g、h,和随机指数α、b;生成所述主密钥msk和所述一个或以上公钥参数pp,其中,α、b∈zp,uch,r)和msk=(α,b)。

在一些实施例中,基于所述系统安全参数λ,通过私钥生成器(pkg)确定素数p和双线性群,包括:通过所述pkg基于所述系统安全参数λ,确定所述素数p;基于所述系统安全参数λ,确定第一群g和第二群gt;使用映射函数e,将所述第一群g中的一个或以上元素映射到所述第二群gt中,以确定所述双线性群。

在一些实施例中,基于所述身份属性和所述主密钥msk生成所述用户私钥ski,包括:通过所述pkg选择随机指数t;获取所述用户身份属性以及基于所述随机指数t、所述身份属性和所述主密钥msk,生成所述用户私钥ski;其中,t∈zp,i表示所述用户身份属性。

在一些实施例中,所述加密离线数据,生成所述离线数据的会话密钥key1和所述离线数据的中介密文ict包括:随机选择第一撤销集合sori={iori,1,···,iori,n};获取杂凑函数对(chk,td);选择随机数r';确定动态验证身份iv;选择随机数s和随机指数si、sv;确定密文c0=gs确定所述离线数据的会话密钥key1和所述离线数据的中介密文ict;其中,n为撤销用户数,ii∈u,i∈[n],n=|sori|,iv=uchash(chk,iori,1||···||iori,n,r'),s∈zp,si∈zp,sv∈zp,key1=e(g,g)αs,ict=(key1,c0,(ci,1,ci,2)i∈[n],cv,1,cv,2,sori,iv,(si)i∈[n],sv,s,chk,td,r′)。

在一些实施例中,所述加密在线数据,生成所述在线数据的会话密钥key2和所述在线数据的中介密文ct,包括:获得第二撤销集合s={i1,···,i|s|};确定imall,i=(ii-iori,i)·si;确定密文r;确定所述在线数据的会话密钥key2和所述在线数据的中介密文ct,其中,i∈[|s|],

r=ucoll(td,iori,1||...iori,|s|,r',x),

x=c0||{ci,1||ci,2}i∈[|s|]||cv,1||cv,2||{imall,i}i∈[|s|],key2=e(g,g)αs

ct=(c0,(ci,1,ci,2)i∈[|s|],cv,1,cv,2,{imall,i}i∈[|s|],chk,r)。

本申请的另一方面,可以提供一种用于细粒度移动访问的解密方法。所述方法可以包括:验证用户身份属性;基于所述身份属性,生成会话密钥key;基于公钥参数pp、用户私钥ski和所述会话密钥key,解密离线数据的中介密文ict及在线数据的中介密文ct。

在一些实施例中,所述公钥参数g、h是随机数,α、b是随机指数,e表示映射函数,uch表示杂凑函数,r表示辅助参数域;所述私钥i表示所述身份属性,t表示随机指数,所述离线数据的中介密文

ict=(key1,c0,(ci,1,ci,2)i∈[n],cv,1,cv,2,sori,iv,(si)i∈[n],sv,s,chk,td,r′),key1=e(g,g)αs,c0=gssori={iori,1,···,iori,n}表示第一撤销集合,iv=uchash(chk,iori,1||···||iori,n,r')表示动态认证,s∈zp,si∈zp,sv∈zp,(chk,td)表示杂凑函数对,r'是随机数,v表示验证域,n表示撤销用户数,ii∈u,i∈[n],n=|sori|;所述在线数据的中介密文ct=(c0,(ci,1,ci,2)i∈[|s|],cv,1,cv,2,{imall,i}i∈[|s|],chk,r),s表示第二撤销集合,r表示密文,r=ucoll(td,iori,1||...iori,|s|,r',x),imall,i=(ii-iori,i)·si,x=c0||{ci,1||ci,2}i∈[|s|]||cv,1||cv,2||{imall,i}i∈[|s|]。

在一些实施例中,基于所述身份属性验证用户身份属性,并生成会话密钥key包括:认证所述动态验证身份iv;指定选择随机数τi;验证第一等式和第二等式是否成立;如果第一等式或第二等式不全部成立,则将会话密钥key确定为空,如果所述第一等式和所述第二等式全部成立,则输出所述会话密钥key,其中,所述第一等式是所述第二等式是所述动态验证身份是iv=uchash(chk,x,r),i∈[|s|],x=c0||{ci,1||ci,2}i∈[|s|]||cv,1||cv,2{imall,i}i∈[|s|],τi∈[0,2τ],τ∈n,所述会话密钥是

本申请的另一方面,可以提供一种计算设备。所述计算设备可以包括存储设备、处理器和存储设备,所述存储设备存储一组计算机指令,其中当由处理器执行时,所述计算机指令指示所述处理器实现如权利要求15-20中任一项所述的细粒度移动访问的加密的方法的步骤或者如权利要求21-23中任一项所述的细粒度移动访问的解密的方法的步骤。

本申请的另一方面,可以提供一种计算机可读介质。所述计算机可读介质可以包含一组计算机指令,其中当由处理器执行时,所述计算机指令指示所述处理器实现如权利要求15-20中任一项所述的细粒度移动访问的加密方法的步骤或实现如权利要求21-23中任一项所述的细粒度移动访问的解密方法的步骤。

本申请的又一方面,可以一种提供细粒度移动访问加密系统。所述细粒度移动访问加密系统可以包括:初始化模块,用于基于系统安全性参数λ,生成主密钥msk和一个或以上公钥参数pp;私钥生成模块,用于:获取用户身份属性;基于所述身份属性和所述主密钥msk生成用户私钥ski;离线数据加密模块,用于加密离线数据,生成离线数据的会话密钥key1和离线数据的中介密文ict;在线数据加密模块,用于加密在线数据,生成在线数据的会话密钥key2和在线数据的中介密文ct。

本申请的一部分附加特性可以在下面的描述中进行说明。通过对以下描述和相应附图的检查或者对实施例的生产或操作的了解,本申请的一部分附加特性对于本领域技术人员是明显的。通过实践或使用下面讨论的详细示例中阐述的方法、手段和组合的各个方面,可以实现和获得本申请的特征。

附图说明

本申请将结合示例性实施例进一步进行描述。这些示例性实施例将通过附图进行详细描述。附图未按比例绘制。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:

图1是根据本申请的一些实施例所示的示例性数据传输系统的示意图;

图2是根据本申请一些实施例所示的示例性计算装置的组件的示意图;

图3是根据本申请一些实施例所示的一种示例性用户终端的示例性硬件和/或软件组件的示意图;

图4a是根据本申请的一些实施例所示的示例性集群管理服务器的框图;

图4b是根据本申请的一些实施例所示的示例性集群管理模块400的框图;

图5是根据本申请的一些实施例所示的示例性计算设备的框图;

图6是根据本申请的一些实施例所示的示例性集群组织信息网络中的数据传输的方法的流程图;

图7a是根据本申请的一些实施例所示的示例性服务器的细粒度移动访问模块的框图;

图7b是根据本申请的一些实施例所示的示例性计算设备的框图;

图8是根据本申请的一些实施例所示的示例性用于细粒度移动访问加密的过程的流程图;

图9是根据本申请的一些实施例所示的示例性用于细粒度移动访问加密的方法的示意图;

图10是根据本申请的一些实施例所示的示例性用于细粒度移动访问解密的过程的流程图;以及

图11是根据本申请的一些实施例所示的示例性用于细粒度移动访问解密的过程的流程图。

具体实施方式

为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例。对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确识别的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

虽然本申请对根据本申请的实施例的系统中的某些模块做出了各种引用,然而,任何数量的不同模块可以被使用并运行在客户端和/或服务器上。这些模块旨在是说明性的,而不旨在限制本申请的范围。不同的模块可以用于系统以及方法的不同方面。

本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将一个或以上其他操作添加到这些流程图中,或从这些流程图移除一步或多步操作。

如下所述的参考附图描述本申请的实施例的技术方案。显而易见的是,所描述的实施例并不是穷尽的,而是不受限制性的。基于本申请中所述实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例均属于本申请的范围。

一方面,本申请涉及用于集群组织信息网络的数据传输的系统和方法。系统可以使用不同的私钥生成器(pkg)为不同级别的成员生成私钥。可以基于私钥和/或第一级成员的身份信息生成第二级成员的私钥。

图1是根据本申请的一些实施例所示的示例性数据传输系统的示意图。数据传输系统100可以是用于数据传输和/或处理的平台,例如,加密数据和/或解密数据。数据传输系统100可以包括数据交换端口101,数据传输端口102,服务器110和存储器120。服务器110可以包括处理引擎112。在一些实施例中,数据传输系统100可以分别经由数据交换端口101和数据传输端口102与数据提供系统130和数据分配系统140交互。例如,数据传输系统100可以通过数据交换端口101访问存储在数据提供系统130中的信息和/或数据。作为另一示例,服务器110可以经由数据发送端口102将处理后的信息和/或数据发送到数据分配系统140。

服务器110可以处理信息和/或数据。例如,服务器110可以从数据提供系统100接收数据(例如,消息),并加密/解密接收的数据。在一些实施例中,服务器110可以是单个服务器或服务器组。服务器群可以是集中式的或分布式的(例如,服务器110可以是分布式的系统)。在一些实施例中,服务器110可以在云端平台上实现。仅作为示例,所述云平台可以包括私有云、公共云、混合云、小区云、分布云、跨云、多云等或上述举例的任意组合。在一些实施例中,服务器110可以在图2中描述的包含了一个或者多个组件的计算装置上执行。

在一些实施例中,服务器110可以包括处理引擎112。处理引擎112可以根据一个或以上算法或数学模型对数据进行加密和/或解密。在一些实施例中,所述处理引擎112可包括一个或者多个处理引擎(例如,单芯片处理引擎或多芯片处理引擎)。仅作为示例,处理引擎112可包括一中央处理器(cpu)、特定应用集成电路(asic)、特定应用一组指令处理器(asip)、图像处理器(gpu)、物理运算处理单元(ppu)、数字信号处理器(dsp)、现场可程序门阵列(fpga)、可程序逻辑装置(pld)、控制器、微控制器单元、精简一组指令计算器(risc)、微处理器等或其任意组合。

存储器120可以存储与数据加密和/或数据解密有关的数据和/或指令。在一些实施例中,存储器120可以存储从数据提供系统130和/或数据分配系统140获得/获取的数据。在一些实施例中,存储器120可以存储服务器110可以执行或使用的数据和/或指令,以执行本申请中描述的示例性方法。在一些实施例中,存储器120可包括大容量存储器、可移动存储器、挥发性读写内存、只读存储器(rom)等或其任意组合。示例性的大容量存储器可以包括磁盘、光盘、固态驱动等。示例性可移式存储器可包括快闪驱动器、软盘、光盘、记忆卡、压缩碟、磁带等。示例性的挥发性只读存储器可以包括随机存取内存(ram)。示例性的ram可包括动态ram(dram)、双倍速率同步动态ram(ddrsdram)、静态ram(sram)、闸流体ram(t-ram)和零电容ram(z-ram)等。示例性的rom可以包括掩蔽型rom(mrom)、可程序rom(prom)、可抹除可程序rom(eprom)、电子可抹除可程序rom(eeprom)、压缩碟rom(cd-rom)和数字通用磁盘rom等。

在一些实施例中,所述存储器120可在云端平台上实现。仅作为示例,所述云平台可以包括私有云、公共云、混合云、小区云、分布云、跨云、多云等或上述举例的任意组合。在一些实施例中,存储器120可以连接到服务器110或与服务器110通信。例如,服务器110可以经由网络访问存储在移动终端和或存储器120中的信息和或数据。在一些实施例中,存储器120可以是服务器110的一部分。

数据提供系统130可以提供数据和/或信息。数据和/或信息可以包括文本文件、图像、语音片段、网页、录像、用户请求、程序、应用程序、算法、指令、计算机代码、等或其任意组合。在一些实施例中,数据提供系统130可以将数据和/或信息提供给数据传输系统100的服务器110和/或存储器120以进行处理(例如,加密或解密)。在一些实施例中,数据提供系统130可以将数据和/或信息提供给数据分配系统140,用于将加密数据或解密数据发送给用户。

在一些实施例中,数据分配系统140可以促进数据传输。数据分配系统140可以生成对例如通过网络(例如,集群组织信息网络或移动云网络)的数据加密或解密的请求的响应。

在一些实施例中,数据提供系统130和/或数据分配系统140可以是设备、平台或与数据传输系统100交互的其他实体。在一些实施例中,数据提供系统130可以在具有数据采集和/或数据存储的设备中实现,如移动设备130-1、平板电脑130-2、膝上型计算机130-3、以及服务器130-4、存储设备(未示出)等,或其任意组合。在一些实施例中,服务提供系统140也可以在具有数据处理的设备中实现,如移动设备140-1、平板电脑140-2、膝上型计算机140-3以及服务器140-4等,或其任意组合。在一些实施例中,移动设备130-1可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、增强实境设备等,或其任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器的控制设备、智能监控设备、智能电视、智能摄像机、对讲机等,或其任意组合。在一些实施例中,可穿戴设备可以包括智慧手环、智慧鞋袜、智慧眼镜、智慧头盔、智慧手表、智慧穿着、智慧背包、智慧配饰等,或其任意组合。在一些实施例中,行动设备可以包括移动电话、个人数字助理、游戏设备、导航装置、pos机、膝上型计算机、台式计算机等,或其任意组合。在一些实施例中,虚拟现实设备和/或增强型虚拟现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实补丁、增强型虚拟现实头盔、增强型虚拟现实眼镜、增强型虚拟现实补丁等,或其任意组合。例如,该虚拟实境设备和/或增强实境设备可包括googleglass、oculusrift、hololens或gearvr等。在一些实施例中,服务器130-4和140-4可以包括数据库服务器、文件服务器、邮件服务器、网络服务器、应用服务器、计算服务器、媒体服务器、通信服务器等。

在一些实施例中,数据传输系统100、数据提供系统130和数据分配系统140的任何两个系统可以集成到设备或平台中。例如,数据提供系统130和数据分配系统140都可以在用户的移动设备中实现。在一些实施例中,数据传输系统100,数据提供系统130和数据分配系统140可以集成到设备或平台中。例如,数据传输系统100,数据提供系统130和数据分配系统140可以在包括服务器和用户界面的计算设备中实现。

网络150-1至150-3可以方便交换信息和/或数据。在一些实施例中,数据传输系统100中的一个或以上组件(例如,服务器110和/或存储设备130)可以通过网络150-1到150-3向/从数据提供系统130和/或数据分配系统140发送和/或接收信息和/或数据。在一些实施例中,网络150-1至150-3可以是任何类型的有线或无线网络,或其组合。仅仅举个例子,网络150可以包括缆线网络、有线网络、光纤网络、远程通信网络、内部网络、互联网、局域网络(lan)、广域网络(wan)、无线局域网络(wlan)、城域网(man)、公共开关电话网络(pstn)、蓝牙网络、无线个域网、近场通讯(nfc)网络、全球行动通讯系统(gsm)网络、码分多址(cdma)网络、时分多址(tdma)网络、通用分组无线服务(gprs)网络、增强数据速率gsm演进(edge)网络、宽带码分多址接入(wcdma)网络、高速下行分组接入(hsdpa)网络、长期演进(lte)网络、用户数据报协议(udp)网络、传输控制协议/互联网协议(tcp/ip)网络、短讯息服务(sms)网络、无线应用协议(wap)网络、超宽带(uwb)网络、红外线等中的一种,等或其任意组合。

图2是根据本申请一些实施例所示的示例性计算装置的组件的示意图。根据本申请的一些实施例,服务器110、数据提供系统130、存储器120和/或数据分配系统140可以在计算设备200上实现。本实施例中的特定系统利用功能框图解释包含一个或以上用户界面的硬件平台。计算机可以是一个通用计算机,也可以是一个专用计算机。两种类型的计算机可以被配置用于实现根据本申请的一些实施例所示的任何特定系统。计算设备200可以用于实现可执行本申请中的一个或以上功能的任何组件。举例来说,计算设备200可实施如本文所描述的系统100的任何组件。为方便起见,在图1和图2中只显示一台计算设备。本申请中的一个普通技术人员在提交的申请时应当理解,与所述的请求服务相关的计算机功能可以在多个类似的平台上以分布式方式实现,以分散处理负荷。

例如,计算设备200可以包括连接至网络及从连接的网络中获取的通讯端口250,以促进数据通讯。计算设备200可以还包括处理器(处理器220)、以一个或以上处理器(逻辑电路)的形式执行程序指令。例如,处理器包括其中的接口电路和处理电路。接口电路被配置为从总线210接收电子信号,其中,电子信号对用于处理电路处理的结构数据和/或指令进行编码。处理电路可以进行逻辑计算,然后判断结论、结果和/或编码为电子信号的指令。然后,接口电路可以通过总线210从处理电路发出电子信号。

示例性的计算设备包括内部通讯总线210、不同形式的程序存储器和数据存储器,包括例如,磁盘270、和只读存储器(rom)230或随机存取存储器(ram)240,用于存储由计算设备处理和/或传输的各种各样的数据文件。示例性计算设备也可以包括存储于rom230、ram240及/或其他形式的非暂时性存储介质中的能够被处理器220执行的程序指令。本申请的方法和/或流程可以以程序指令的方式实施。计算设备200还包括支持计算机和其他组件之间输入/输出的i/o组件260。计算设备200也可以通过网络通讯接收程序设计和数据。

仅为了说明,仅说明一个处理器及/或图2中的处理器。还可以考虑多个cpu和/或处理器;因此,由本申请中描述的一个cpu和/或处理器执行的操作和/或方法步骤也可以由多个cpu和/或处理器联合或单独执行。例如,在本申请中,如果计算设备200的中央处理单元和/或处理器执行步骤a和步骤b,应当理解的是,步骤a和步骤b可以由计算设备200的两个不同的中央处理单元和/或处理器共同或分别执行(例如,第一处理器执行步骤a、第二处理器执行步骤b,或者第一处理器和第二处理器共同执行步骤a和b)。

图3是根据本申请一些实施例所示的一种示例性用户端的示例性硬件和/或软件组件的示意图。根据本申请的一些实施例,数据提供系统130或数据分配系统140可以在移动设备300上实现。如图3所示,移动设备300可以包括通信模块310、显示器320、图形处理单元(gpu)330、中央处理单元(cpu)340、i/o350、内存360和存储器390。cpu340可以包括类似于处理器220的接口电路和处理电路。在一些实施例中,任何其他合适的组件,包括但不限于系统总线或控制器(未显示),亦可包括于移动设备300内。在一些实施例中,移动操作系统370(例如,iostm、androidtm、windowsphonetm等)和一个或以上应用程序380可以从存储器390加载到内存360中,以便由cpu340执行。应用程序380可以包括浏览器或任何其他合适的移动应用程序,用于从移动设备300上的ai内容识别系统接收和呈现与服务请求或其他信息有关的信息。用户与信息流的交互可以通过i/o设备350实现,并通过网络150-1至150-3提供给处理引擎112和/或数据传输系统100的其他组件。

为了实现各种模块,单元及其上述功能,可以将计算机硬件工作台用作一个或以上元件(例如,图1中描述的服务器110的部件)的硬件工作台。由于这些硬件元件、操作系统和程序语言是常见的,因此可以假定,本领域技术人员可以熟悉这些技术,并且他们可以能够根据本文所述的技术提供路线规划中所需的信息。带有用户界面的计算机可以用作个人计算机(pc)或其他类型的工作站或终端设备。经过正确编程后,可以将带有用户界面的计算机用作服务器。可以认为本领域技术人员也可以熟悉这种类型的计算机设备的结构、程序或一般操作。因此,不再对附图进行额外的解释。

图4a是根据本申请的一些实施例所示的示例性集群管理服务器的框图。

在一些实施例中,服务器110或服务器110的处理引擎112可以包括集群管理模块400和细粒度移动访问模块700(图中未示出)。在一些实施例中,服务器110可以被配置为执行如图1中所描述的示例性操作。在一些实施例中,服务器110执行的操作可以至少包括集群管理模块400在集群组织信息网络中执行数据传送的操作。关于集群管理模块400的详细描述可以在本申请的其他地方公开,例如,图4b及其描述。

图4b是根据本申请的一些实施例所示的示例性集群管理模块400的框图。如图4b所示,集群管理模块400可以包括第一生成单元402、第二生成单元404、第三生成单元406和解密单元408。模块和/或单元可以是处理引擎112的至少一部分的硬件电路。模块和/或单元也可以实现为由处理引擎112读取和执行的应用程序或一组指令。此外,这些模块可以是硬件电路和应用/指令的任何组合。例如,当处理引擎执行应用程序/一组指令时,模块可以是处理引擎112的一部分。

第一生成单元402可以被配置为使用集群的安全参数和单位向量的最大值深度代入到初始化函数中生成集群的系统参数和主密钥。在一些实施例中,集群可以是包括至少两个以上成员的群。集群中的至少两个以上成员可以被分类为一类或多个部分。例如,在公司集群中,管理员的终端可以是第一类成员,并且员工的终端可以是第二类成员。在一些实施例中,集群可包括至少一个第一类成员和至少一个第二类成员。

第二生成单元404可以被配置为基于所述一个或系统参数、主密钥和至少一个第一类成员的每一个的身份信息矢量生成所述至少一个第一类成员中的每一个的私钥。如本文所使用的,至少一个第一类成员中的每一个的身份信息矢量指的是包括所述至少一个第一类成员的一个或以上第一类成员的身份信息的向量。在一些实施例中,第一类成员的身份信息可以由值表示。该值可以基于例如第一类成员的用户帐户、第一类成员的电子邮件地址,等来确定。在一些实施例中,第二生成单元404可以是或包括用于生成集群中成员的私钥的私钥生成器(pkg)。

第三生成单元406可以被配置为基于系统参数、至少一个第一类成员的身份信息矢量、至少一个第一类成员的至少一个私钥、以及至少一个第二类成员中的每一个的身份信息矢量来生成至少一个第二类成员中的每一个的私钥。第三生成单元406可以是或包括pkg、设备、或能够为集群中的成员生成私钥的机制。在一些实施例中,用于为至少一个第二类成员(也称为第二pkg)中的每一个生成私钥的pkg可以不同于为至少一个第一类成员的每一个生成私钥的pkg,和/或系统参数和主密钥(也称为第一pkg)。在一些实施方案中,第一pkg和第二pkg可以彼此独立。

在一些实施例中,至少一个第一类成员的身份信息矢量是指基于集群中所有至少一个第一类成员的身份信息确定的向量。在一些实施例中,至少一个第二类成员中的每一个的身份信息矢量指的是包括至少一个第二类成员的一个或以上第二类成员的身份信息的向量。在一些实施例中,第二类成员的身份信息可以由值表示。该值可以基于例如第二类成员的用户帐户、第二类成员的电子邮件地址、第二类成员的电话号码等,来确定。

解密单元408可以被配置为使用系统参数和接收终端的私钥来解密加密消息以获得要发送的初始信息。接收终端可能包括第一类成员或第二类号码。接收终端可能会收到发送终端的加密消息。在一些实施例中,解密单元408可以在接收终端的终端设备上实现。

在一些实施例中,如图4a所示,集群管理模块400还可以包括第四生成单元410。第四生成单元410可以被配置为生成集群的簇头的公钥和簇头的私钥。在一些实施例中,在发送终端的终端设备中,通过基于系统参数、接收终端的身份信息矢量和簇头的公钥加密初始信息来生成加密消息,并且加密消息是匿名传送的。

在一些实施例中,集群管理模块400还可以包括获取单元412、验证单元414和处理单元416。

获取单元412可以被配置为确定与加密消息有关的身份信息矢量。在一些实施例中,可以基于加密消息和簇头的私钥来生成与加密消息有关的身份信息矢量。

验证单元414可以被配置为确定与加密消息有关的身份信息矢量与接收终端的身份信息矢量是否一致。在一些实施例中,集群管理模块400可以验证集群组织信息网络中的加密消息的传输的语义安全性和匿名性。

处理单元416可以生成用于允许或拒绝集群中的加密消息传送的信号。在一些实施例中,响应于确定与加密消息相关的身份信息矢量与接收终端的身份信息矢量一致,处理单元416可以生成用于允许在集群中传输加密消息的信号。在一些实施例中,响应于确定与加密消息有关的身份信息矢量与接收终端的身份信息矢量不一致,处理单元416可以生成用于拒绝集群中加密消息的传输的信号。

仅用于说明目的,集群管理模块400可以包括初始化子模块(相当于第一生成单元402)、ch密钥生成子模块(相当于第四生成单元410)、第一类成员私钥生成子模块(相当于第二生成单元404、第二类成员私钥生成子模块(相当于第三生成单元406)、数据加密子模块、解密子模块(相当于解密单元408)、跟踪子模块和验证协议(相当于获取单元412和验证单元414)。在一些实施例中,集群管理模块400的一个或以上子模块或单元可以被配置为执行以下操作中的一个或以上。

1.初始化子模块可以通过pkg根据多项式算法,将安全参数λ和预定单位向量的最大值深度l输入初始化函数setup(λ,l),确定集群的系统参数params和主密钥msk(例如,学校集群、公司集群等)。

2.ch密钥生成子模块可以被配置为根据多项式算法,将安全参数λ、和setup(λ,l)之一输入密钥生成函数chkeygen(),确定簇头的公钥cpk和私钥csk。

3.第一类成员私钥生成子模块可以被配置为通过pkg根据多项式算法,将系统参数params、主密钥msk、以及至少一个第一类成员(例如,学校集群中的教师)中的每一个的身份信息矢量(相当于(id1,...,idj),j≤l)输入私钥生成函数确定集群中至少一个第一类成员中的每一个的私钥uskj。

4.第二类成员私钥生成子模块可以被配置为通过另一个pkg或用于为集群中的成员生成私钥的设备根据多项式算法,将系统参数params、至少一个第一类成员的所有成员的身份信息矢量第二类成员的身份信息矢量idj+1(其中j+1≤l)、以及至少一个第一类成员的至少一个私钥uskj输入密钥分配函数确定第二类成员idj+1的私钥uskj+1。

5.数据加密子模块可以被配置为根据多项式算法,将输入系统参数params、接收终端的身份信息矢量(即,加密消息的接收终端)、簇头的公钥cpk、以及加密消息m输入加密函数生成密文c(即,加密消息将在集群中传送)。在一些实施例中,数据加密子模块可以在加密消息的发送终端终端上实现。

6.解密子模块可以被配置为根据多项式算法,将系统参数params、接收终端的私钥uskj、和密文c输入解密函数decrypt(params,c,uskj)来解密消息m。在一些实施例中,解密子模块可以在消息m的接收终端的终端设备上实现。

7.跟踪子模块可以被配置为根据多项式算法,将密文c和ch的私钥csk输入跟踪函数trace(c,csk)中,为生成密文确定

可以构建协议verify(c)以证明用于生成密文的身份信息矢量与密文一致。该协议verify(c)可以被称为零知识交互协议,其指示用户(例如,证明者)可以交互地验证一致性。如果用于生成密文的身份信息矢量与密文一致,则验证者可以输出提示消息accept,密文可以在集群中传送(即,发送终端可以被允许发送密文给接收终端。)否则,可能不允许发送终端将密文发送给接收终端。

总之,一个或以上子模块可以按预定顺序执行示例性操作,例如“初始化子模块”→“ch密钥生成子模块”→“第一类成员私钥生成子模块”→“第二类成员私钥生成子模块”→“数据加密子模块”→“解密子模块”→“跟踪子模块”。

在一些实施例中,私钥生成器可以使用与该成员相对应的身份信息矢量来生成集群成员的私钥。在一些实施例中,当在集群中发送非法消息时,簇头可以管理集群成员并跟踪发送终端或接收终端。在一些实施例中,成员可以包括高级成员(也称为第一类成员)和低级成员(也称为第二类成员),但是成员的级别是可以改变的。在一些实施例中,所有接收终端可以是集群中的成员,并且密文可能需要通过由第一类成员或pkg生成的私钥来解密。如有必要,ch可以跟踪并找到非法消息的发送终端。在一些实施例中,发送终端可以是集群中的成员,或者可以不是集群中的成员。发送终端可以使用接收终端的身份信息矢量作为公钥来加密消息,并且加密的密文可以是匿名的。在一些实施例中,验证者可以证明密文的身份信息矢量和隐藏在密文后面的身份信息矢量的一致性。

在一些实施例中,可以在以下步骤中验证本申请中描述的技术方案。如果验证策略返回大概率真值,则可以验证技术解决方案是正确的。

步骤1:(params,msk)←setup(λ,l)

步骤2:(cpk,csk)←chkeygen(λ)

步骤3:

步骤4:

步骤5:

步骤6:如果满足以下所有条件,则验证策略返回真值(true):

decrypt(c0,params,uskj)=m

decrypt(c1,params,uskj+1)=m

verify(c0)=accept,verify(c1)=accept

在一些实施例中,集群管理模块400可以使用敌手a和挑战者b来验证集群组织信息网络中的消息传送的安全性。这里使用的安全性是指语义安全性、匿名性和可追溯性。为了防止密文被敌手轻易解密和分析,隐藏了密文的身份信息矢量,必须验证语义安全性和匿名性。在一些实施例中,集群管理模块400可以通过执行以下步骤中的一个或以上来验证技术方案的语义安全性和匿名性:

步骤1,初始化:挑战者b可以执行setup,输入安全参数λ,秘密保持msk,并将系统参数params发送给敌手a;

步骤2,第一阶段:敌手a可以在适当的时间通过uskeygen、delegate、trace,进行查询操作,并获得身份信息矢量的集群成员的私钥usk;

步骤3,第一挑战:敌手a可以选择相同长度的两个密文m0和m1、两个身份信息矢量密文和身份信息矢量可能不会出现在第一阶段中私钥的查询操作中;挑战者b可以随机选择c∈{0,1}并运行算法encrypt(params,mc,idc,cpk),并将算法的输出传送给敌手a;

步骤4,第二阶段:第二阶段可能类似于第一阶段,可能不是的前缀,并且不允许查询trace;

步骤5,猜想:敌手a可能输出一个猜想c'={0,1}。如果c'=c,则a在这个策略中胜出。

敌手a在战略中获胜的优势定义为:

对于敌手a和安全参数λ,如果优势满足条件则证明在集群组织信息网络中,消息的传送可以是语义上安全的和匿名的。

在一些实施例中,如果消息是非法的或有争议的,则ch可以跟踪接收终端。但是,如果敌手使用接收终端的身份信息矢量作为公钥,并且密文中使用其他成员的身份信息矢量,则ch可能会追踪错误的目标。因此,需要确保可追溯性,以防止敌手在密文中使用其他成员的身份信息。仅用于说明目的,可以根据以下步骤验证技术方案的可追溯性。

步骤1:初始化:挑战者b可以输入安全参数λ、操作setup、chkeygen,并将输出setup、chkeygen的params和csk发送给挑战者a';

步骤2:检查阶段:挑战者a'可以通过chkeygen、uskeygen、delegate、encrypt、decrypt、和trace进行查询操作,并且挑战者b可以回答查询;此外,当在零知识证明系统中执行查询verify时,挑战者a'可以充当证明者与验证者交互;

步骤3:输出:挑战者a'可以对消息m进行加密并输出密文c',当进行查询decrypt时,密文可以解密消息m;最后,如果trace(c')输出了接收终端的错误的身份信息矢量,则敌手a'胜出策略。

敌手a'在战略中获胜的优势定义为:

对于敌手a'和安全参数λ,如果a'的优点满足条件则证明数据传输是可追踪的(即,验证可追溯性)。

上述零知识证明系统可用于确保合法生成密文、语义安全、匿名和可追溯。

需要注意的是,以上对于处理引擎112的描述,仅为描述方便,并不能把本申请限制在所举实施例范围之内。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的修正和改变。例如,处理引擎112可以进一步包括促进数据存储的存储模块。然而,这些修正和改变不会背离本申请的范围。

图5是根据本申请的一些实施例所示的示例性计算设备的框图。如图5所示,计算设备500可以包括存储器502、处理器504和存储在存储器502上的一组计算机指令,其可以在处理器504上执行。根据以下实施例,存储器502和处理器504可以通过系统总线连接,处理器504可以用于执行存储在存储器502上的计算机一组指令,以实现集群组织信息网络中的数据传输的操作。

可以根据实际需要对本申请的实施例中的步骤进行重新排序、合并或删除。

可以根据实际要求对本申请中的设备和/或单元进行组合、拆分或删除。

根据本申请的一些实施例,可以提供体现一组计算机指令的计算机可读介质,其中,根据以下实施例,当由处理器执行时,该组计算机指令可以指示处理器实现集群组织信息网络中的数据传输的操作。

此外,本领域技术人员将理解的是,以下实施例的各种方法中的所有步骤或一部分步骤可以由计算机指令指导的相关硬件实现。计算机指令可以存储在计算机可读存储介质中。存储介质包括只读存储器(rom)、随机存储器(ram)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、一次可编程只读存储器(otprom)、电子抹除式可复写只读存储器(eeprom)、只读光盘(cd-rom)或光盘、磁盘、磁带、或者能够用于携带或存储数据的任何其他计算机可读介质。进一步地,计算机设备可以为pc(personalcomputer,个人计算机)终端。

图6是根据本申请的一些实施例所示的示例性集群组织信息网络中的数据传输的示例性方法的流程图。在一些实施例中,过程600可以在数据传输系统100中实现。例如,过程600可以作为指令的形式存储在存储器120和/或存储器(例如,rom、ram,等)中,并且由服务器110调用和/或执行(例如,服务器110中的处理引擎112、或服务器110中的处理引擎112的处理器752)。

步骤602,可以将与集群的安全参数和单位向量的最大值深度、包括至少一个第一类成员和一个第二类成员的集群代入初始化函数,生成主密钥和一个或以上系统参数。在一些实施例中,系统参数和主密钥可以由第一生成单元402生成。在一些实施例中,第一生成单元402可以是或包括私钥生成器(pkg)。在一些实施例中,pkg可以实现为数据传输系统100的一个或以上组件(例如,第一生成单元402或第二生成单元404)。

在一些实施例中,安全参数和单位向量的最大值深度可以是预定的。例如,安全参数和单位向量的最大值深度可以通过设置用户、或者由数据传输系统100预先确定。如本文所用,单位向量是指集群中成员身份的一系列连接。单位向量的最大值深度是指集群中的成员数量。在一些实施例中,安全参数可以表示为字符串。安全参数和/或单位向量的最大值深度越长,集群组织信息网络中传输的加密数据的安全性就越高。在一些实施例中,安全参数可以是随机数。在一些实施例中,可以根据用户的安全要求来设置安全参数。例如,如果用户的安全要求较高,则可以使用2048位的随机数作为安全参数。如果用户的安全要求较低,则可以使用1024位的随机数作为安全参数。

在一些实施例中,pkg可以通过将安全参数和单位向量的最大值深度输入到初始化函数setup()设置,以生成一个或以上系统参数和主密钥。

步骤604,可以基于系统参数、主密钥、至少一个第一类成员的每一个的身份信息矢量来生成至少一个第一类成员中的每一个的私钥。在一些实施例中,至少一个第一类成员的每一个的私钥可以由第二生成单元404生成。在一些实施例中,第二生成单元404可以是或包括pkg。在一些实施例中,用于为至少一个第一类成员的每一个生成私钥的pkg可以与用于在602中生成系统参数和主密钥的pkg相同。

在一些实施例中,集群可以是包括至少两个以上成员的群。集群中的至少两个以上成员可以被分类为一个或以上部分。例如,在公司集群中,管理员终端可以是第一类成员,并且员工终端可以是第二类成员。作为另一示例,在学校集群中,教师终端可以是第一类成员,并且学生终端可以是第二类成员。在一些实施例中,pkg可以对应集群中每类成员的级别生成私钥。

如本文所使用的,所述至少一个第一类成员中的每一个的身份信息矢量指的是包括至少一个第一类成员的一个或以上第一类成员的身份信息的向量。在一些实施例中,第一类成员的身份信息可以由值表示。该值可以基于例如第一类成员的用户帐户、第一类成员的电子邮件地址等来确定。

在一些实施例中,pkg可以将主密钥、一个或以上系统参数、和/或至少一个第一类成员的每一个的身份信息矢量输入到函数uskeygen(),以生成至少一个第一类成员的每一个的私钥。例如,可以通过向函数uskeygen()中输入主密钥、一个或以上系统参数、和第一用户的身份信息矢量(例如,基于第一用户的身份信息矢量确定的),确定至少一个第一类成员的第一用户的私钥。作为另一示例,可以将一个或以上系统参数、主密钥和第二用户的身份信息矢量(例如,基于第一用户和第二用户的身份信息矢量确定的)输入函数uskeygen(),确定至少一个第一类成员的第二用户的私钥。

步骤606,可以基于系统参数、至少一个第一类成员的身份信息矢量、至少一个第一类成员的私钥、和至少一个第二类成员的每一个的身份信息矢量来生成至少一个第二类成员的每一个的私钥。

在一些实施例中,至少一个第二类成员中的每一个的私钥可以由第三生成单元406生成。第三生成单元406可以是或包括pkg、设备或能够为集群中的成员生成私钥的机制。在一些实施例中,用于为至少一个第二类成员(也称为第二pkg)中的每一个生成私钥的pkg可以不同于为至少一个第一类成员的每一个生成私钥的pkg,和/或系统参数和主密钥(也称为第一pkg)。在一些实施方案中,第一pkg和第二pkg可以彼此独立。仅作为示例,第一pkg可以在本地处理设备(例如,服务器110)上实现,第二pkg可以在远程处理设备上实现(例如,云服务器经由网络连接到服务器110))。

在一些实施例中,至少一个第一类成员的身份信息矢量是指基于集群中所有至少一个第一类成员的身份信息矢量确定的矢量。在一些实施例中,至少一个第二类成员中的每一个的身份信息矢量指的是包括至少一个第二类成员的一个或以上第二类成员的身份信息的向量。在一些实施例中,第二类成员的身份信息可以由值表示。该值可以基于例如第二类成员的用户帐户、第二类成员的电子邮件地址、第二类成员的电话号码等来确定。

在一些实施例中,第二pkg可以通过将系统参数、至少一个第一类成员的身份信息矢量、至少一个第一类成员的私钥以及至少一个第二类成员中的每一个的身份信息矢量输入到私钥分配函数deletegate()中生成为至少一个第二类成员中的每一个的私钥。

步骤608,如果至少一个第一类成员或至少一个第二类号码的成员是从发送终端接收加密消息的接收终端,则可以通过使用系统参数和接收终端的私有信息解密加密消息来确定初始信息。在一些实施例中,初始信息可以由解密模块408确定。在一些实施例中,解密模块408可以通过将系统参数和接收终端的私有者输入解密函数decrypt()来解密加密消息。

仅用于说明目的,在包括第一类成员和第二类成员的集群中,如果集群组织信息网络中的任何成员是从发送终端接收加密消息的接收终端,系统参数和主密钥可以通过初始化集群的安全参数和单位向量的最大值深度来生成,并且可以通过基于第一类成员的身份信息矢量来生成集群的第一类成员的私钥,然后,可以基于第一类成员的身份信息矢量、第一类成员的私钥、以及第二类成员的身份信息矢量生成集群的第二类成员的私钥,以便有效地解密加密消息来确定初始信息。在一些实施例中,第一类成员的级别可以高于集群中第二类成员的级别。第二类成员可以基于第一类成员的私钥获得他/她的私钥,这可以避免集群中所有成员的私钥由公钥生成器生成,从而减少公钥生成器的带宽需求和计算负载以及阻止公钥生成器承载分配私钥的负载到集群中的所有成员。此外,接收终端可以通过在接收终端从发送终端接收加密消息之后使用系统参数和接收终端的私人来加密加密消息来确定初始信息。另外,通过基于集群中每个成员的身份信息矢量实现分层加密方案,可以有效地确保要在集群组织信息网络中发送的消息的安全性。

在一些实施例中,可以基于例如成员的邮件地址、成员的电话号码等来确定至少一个第一类成员或至少一个第二类成员的成员的身份信息矢量。

在一些实施例中,加密消息的接收终端可以是集群中的成员,并且发送终端可以是集群中的成员或者不是集群中的成员。

在一些实施例中,过程600还包括基于集群的安全参数生成集群的簇头的公钥和私钥。簇头可能是集群管理员。例如,簇头可以确定是否接受愿意加入集群的新成员,即使该消息是匿名的,也跟踪消息的发送终端,并从集群中移除恶意集群成员。在一些实施例中,可以基于一个或以上系统参数、接收终端的身份信息矢量、和簇头的公钥来加密要发送到集群中的接收终端的初始信息。在一些实施例中,可以通过将一个或以上系统参数、接收终端的身份信息矢量和簇头的公钥输入加密函数encrypt()来加密初始信息。

在一些实施例中,数据传输系统100可以基于簇的安全参数生成簇组织信息网络的簇头公钥和私钥,然后初始消息的发送终端可以使用簇头的公钥、簇的一个或以上系统参数以及接收终端的身份信息矢量来加密初始消息。加密消息可以匿名发送给接收终端以确保消息的安全性,并且接收终端可能无法识别发送终端的身份信息矢量。在此过程中,诸如接收终端的身份信息矢量之类的字符串可以用作公钥来加密初始信息,从而使发送终端能够识别公钥的准确性以及确保加密的有效性。

在一些实施例中,过程600在接收终端接收加密消息之前,还可以包括的以下操作中的一个或以上。仅仅出于说明目的,数据传输系统100可以使用簇头的私钥来确定与加密消息有关的身份信息矢量。数据传输系统100可以确定与加密消息有关的身份信息矢量是否与接收终端的身份信息矢量一致。如果加密消息的身份信息矢量与接收终端的身份信息矢量一致,则数据传输系统100可以生成允许信号以允许在集群中传输加密消息。如果加密消息的身份信息矢量与接收终端的身份信息矢量不一致,则数据传输系统100可以生成拒绝信号以拒绝在集群中传输加密消息。

在一些实施例中,为了避免集群的成员否认他/她已经接收到该消息或者他/她发送了非法消息给集群中的成员(即,难以有效地追踪消息的接收终端或者发送终端),可以在消息被加密时使用接收终端的身份信息矢量,并且可以在加密消息传输到传输集群中的接收终端之前,基于加密消息和簇头的私钥生成与加密消息相关的唯一身份信息矢量,从而通过验证加密消息中使用的身份信息矢量是否与用于生成加密消息的接收终端的身份信息矢量一致,便于跟踪加密消息。簇头可以根据加密消息追踪身份信息矢量,以便跟踪消息的接收终端或发送终端,并移除集群中的恶意成员。具体地,可以在验证过程中使用零知识交互协议(即,在验证过程期间不能获得除身份信息矢量之外的信息)。零知识交互协议可以确保加密消息的安全性和合法性。此外,可以允许在验证过程之后在集群中发送加密消息,否则可以拒绝集群中加密消息的传输。

图7a是根据本申请的一些实施例所示的示例性服务器110的细粒度移动访问模块700的框图。细粒度移动访问模块700可以包括初始化单元702、私钥生成单元704、离线数据加密单元706、和在线数据加密单元708。模块和/或单元可以是处理引擎112的至少一部分的硬件电路。模块和/或单元也可以实现为由处理引擎112读取和执行的应用程序或一组指令。此外,这些模块可以是硬件电路和应用/指令的任何组合。例如,当处理引擎执行应用程序/一组指令时,模块可以是处理引擎112的一部分。

初始化单元702可以被配置为基于系统安全参数λ生成公钥参数pp和主密钥msk。

私钥生成单元704可以被配置为获得用户身份属性,并基于用户身份属性和主密钥msk生成用户私钥ski。

离线数据加密单元706可以被配置为加密离线数据以生成离线数据的会话密钥key1和离线数据的中介密文ict。

在线数据加密单元708可以被配置为加密在线数据以生成在线数据的会话密钥key2和在线数据的中介密文ct。

用于细粒度移动访问加密的数据传输系统100的模块可以包括初始化模块502,其被配置为执行初始化,并且基于系统安全参数λ,生成公钥参数pp和主密钥msk;私钥生成模块704,用于获取用户身份属性,并生成用户私钥ski;离线数据加密单元706,用于对离线数据进行加密,生成离线数据的会话密钥key1和离线数据的中介密文ict;在线数据加密单元708,用于对在线数据进行加密,生成在线数据的会话密钥key2和在线数据的中介密文ct。利用这些模块,可以确保加密的安全性,并且可以同时减少加密过程的计算时间,从而可以提高加密效率。应该注意的是,系统安全参数λ是根据安全要求确定的。任何时间或任何企业的安全要求可能不同。例如,当系统安全参数λ的长度为256位不安全时,它的位数可能会增加。在一些实施例中,系统安全参数λ可以是变量而不是固定值。

在一些实施例中,初始化单元702还可以被配置为通过将系统安全参数λ输入pkg来确定素数p和双线性群;确定撤销身份域u和验证域v;通过pkg选择杂凑函数uch和辅助参数域r;从双线性群中选择随机数g、h和随机指数α、b,并生成公钥参数pp和主密钥msk,其中,撤销身份域验证域α、b∈zp、公钥参数主密钥msk=(α,b)。

在一些实施例中,初始化单元702可以被配置为通过将系统安全参数λ输入pkg来确定素数p和双线性群。

撤销身份域验证域α、b∈zp、公钥参数主密钥msk=(α,b)。初始化单元702可以基于系统安全参数λ使用pkg确定素数p(例如,随机大素数);基于系统安全参数λ确定第一群g和第二群gt;并使用映射函数e,将第一群g中的元素映射到第二群gt来确定双线性群。初始化单元702可以确定撤销身份域u和验证域v;通过pkg选择杂凑函数uch和辅助参数域r;确定双线性群中随机数g、h和随机指数α、b,并生成公钥参数pp。公钥参数pp可以向公众开放,主密钥msk存储在pkg中。撤销身份域u定义用户的身份以撤销范围内某人的权利。uch:{0,1}*→v表示输入到uch的值,具有由0或1组成的特定位数,并且uch输出的值是v。用于选择随机数g、h和随机指数α、b的过程可包括确定适当的椭圆曲线,例如,y2=x3+a×x+b,其中a和b表示系数。初始化单元702可以随机选择独立变量x的值x1,并计算因变量y的值y1。如果第一群g中的一个点(x1,y1)映射到第二群gt,则可能会生成一个随机元素。如果第一群g中的点未映射到第二群gt,则可以按顺序选择x的值,直到第一群g中的点映射到第二群gt为止。选择随机数或随机指数时使用的原理可以与下面在本申请中描述的内容类似。杂凑函数uch可以是任何杂凑函数。

在一些实施例中,初始化单元702还可以被配置为通过将系统安全参数λ输入pkg来确定素数p、基于系统安全参数λ确定第一群g和第二群gt、并且使用映射函数e,将第一群g中的一个或以上元素映射到第二群gt,以确定双线性群。

在一些实施例中,初始化单元702可以通过pkg确定素数p,其中素数p是随机的大素数。pkg可以基于系统安全参数λ选择第一群g和第二群gt,映射函数e以将第一群g中的一个或以上元素映射到第二群gt。系统安全参数越大,椭圆曲线上的点越多,集群越大。

在一些实施例中,私钥生成单元704可以被配置为通过pkg选择随机指数t;获取用户身份属性;基于随机指数t、身份属性、以及主密钥,生成用户私钥ski;其中随机指数t∈zp、i表示使用身份属性、以及私钥

在一些实施例中,私钥生成单元704可以通过私钥生成器选择随机指数t;获取用户身份属性i;并基于随机指数t、身份属性和主密钥,生成用户私钥ski。私钥生成单元704可以基于等式通过多项式乘法和取幂来获取用户私钥ski。

在一些实施例中,离线数据加密单元706还可以被配置为随机选择第一撤销集合sori={iori,1,···,iori,n};获取杂凑函数对(chk,td);选择随机数r',确定动态验证身份iv;选择随机数s和随机指数si、sv;确定密文c0=gs并确定离线数据的会话密钥key1和离线数据的中介密文ict;其中,n表示撤销用户的数量、ii∈u,i∈[n],n=|sori|、并且动态验证身份iv=uchash(chk,iori,1||···||iori,n,r'),s∈zp,sv∈zp、离线数据的会话密钥key1=e(g,g)αs、离线数据的中介密文ict=(ket1,c0,(ci,1,ci,2)i∈[n],cv,1,cv,2,sori,iv,(si)i∈[n],sv,s,chk,td,r')。

在一些实施例中,离线数据加密单元706可以随机选择第一撤销集合sori={iori,1,···,iori,n}(第一撤销集合包括要撤销的成员);获得杂凑函数对(chk,td),其中chk和td表示参数;选择随机数r';确定动态验证身份iv;选择随机数s和随机指数si、sv;并确定密文c0=gs基于等式key1=e(g,g)αs确定离线数据的会话密钥key1;并基于等式ict=(ket1,c0,(ci,1,ci,2)i∈[n],cv,1,cv,2,sori,iv,(si)i∈[n],sv,s,chk,td,r')确定离线数据的中介密文ict,其中,uchash是一个变色龙杂凑函数。

在一些实施例中,在线数据加密单元708还可以用于获取第二撤销集合s={i1,···,i|s|};确定imall,i=(ii-iori,i)·si;确定密文r,i∈[|s|]、密文r=ucoll(td,iori,1||...iori,|s|,r',x)、x=c0||{ci,1||ci,2}i∈[|s|]||cv,1||cv,2||{imall,i}i∈[|s|];在线数据的会话密钥key2=e(g,g)αs;在线数据的中介密文ct=(c0,(ci,1,ci,2)i∈[|s|],cv,1,cv,2,{imall,i}i∈[|s|],chk,r)。

在一些实施例中,在线数据加密单元508可以被配置为:获得第二撤销集合s={i1,···,i|s|};确定imall,i=(ii-iori,i)·si;基于等式r=ucoll(td,iori,1||...||iori,|s|,r',x)确定密文r;基于等式key2=e(g,g)αs确定在线数据的会话密钥key2;并基于等式ct=(c0,(ci,1,ci,2)i∈[|s|],cv,1,cv,2,{imall,i}i∈[|s|],chk,r)确定在线数据的中介密文ct,其中,i∈[|s|]、ucoll表示碰撞杂凑函数、x=c0||{ci,1||ci,2}i∈[|s|]||cv,1||cv,2||{imall,i}i∈[|s|]。

本申请的另一方面,提供一种细粒度移动访问解密系统。系统可以包括解密模块。解密模块可以被配置为验证用户身份属性;基于身份属性生成会话密钥key;并且基于公钥参数pp、用户私钥ski以及会话密钥key解密离线数据的中介密文ict和在线数据的中介密文ct。

解密模块可以验证用户身份属性;基于用户身份属性生成会话密钥key;并且基于公钥参数pp、用户私钥ski和会话密钥key解密在线数据的中介密文ict和在线数据的中介密文ct。可以确保解密的安全性,并且可以同时减少解密过程的计算时间,从而可以提高解密效率。

在一些实施例中,公钥参数g、h表示随机数、α、b表示随机指数、e表示映射函数、uch表示杂凑函数、r表示辅助参数域;用户私钥i表示身份属性、t表示随机指数;离线数据的中介密文ict,ict=(ket1,c0,(ci,1,ci,2)i∈[n],cv,1,cv,2,sori,iv,(si)i∈[n],sv,s,chk,td,r'),其中,key1=e(g,g)αs、c0=gssori={iori,1,···,iori,n}表示第一撤销集合;动态验证身份,iv=uchash(chk,iori,1||···||iori,n,r'),s∈zp,sv∈zp,(chk,td)表示杂凑函数对、r'表示随机数、v表示验证域、n表示撤销用户的数量、ii∈u,i∈[n],n=|sori|;在线数据的中介密文ct=(c0,(ci,1,ci,2)i∈[|s|],cv,1,cv,2,{imall,i}i∈[|s|],chk,r);s={i1,···,i|s|}表示第二撤销集合;r=ucoll(td,iori,1||...iori,|s|,r',x),imall,i=(ii-iori,i)·si;密文x=c0||{ci,1||ci,2}i∈[|s|]||cv,1||cv,2||{imall,i}i∈[|s|]。

在一些实施例中,解密模块还可以被配置为认证动态验证身份iv;指定选择随机数τi;验证第一等式和第二等式是否成立。如果第一等式或第二等式被证实不成立,则会话密钥key可以被确定为空。如果第一等式和第二等式被证实成立,则可以输出会话密钥key。

第一等式第二等式动态验证身份iv=uchash(chk,x,r)、i∈[|s|]、x=c0||{ci,1||ci,2}i∈[|s|]||cv,1||cv,2{imall,i}i∈[|s|]、τi∈[0,2τ];会话密钥解密模块可以认证动态验证身份iv;指定选择随机数τi;如果第一等式或第二等式被验证为不全部成立(即,会话密钥不存在)则确定会话密钥key为空;如果第一等式和第二等式全部成立,则输出会话密钥key,并根据会话密钥key、公钥参数pp、用户私钥ski解密加密数据。在此过程中,可以提高解密的安全性,并且可以缩短解密时间。

图7b是根据本申请的一些实施例所示的示例性计算设备的框图。计算设备750可以包括处理器752、存储器754、存储在存储器754中的一组指令,当由处理器752执行时,至少一组指令可以使处理器752执行以下任何一种细粒度移动访问加密的方法或以下任何一种细粒度移动访问解密的方法。

根据本申请提供的计算设备750,当处理器752执行计算机指令时,处理器752可以执行初始化;基于系统安全参数λ生成公钥参数pp和主密钥msk;获取身份用户属性;基于身份属性和主密钥msk生成用户私钥ski;加密离线数据以生成离线数据的会话密钥key1和离线数据的中介密文ict;并加密在线数据ct生成在线数据的会话密钥key2和在线数据的中介密文ct。在上述过程中,可以确保加密的安全性,并且也可以减少加密过程的计算时间,从而可以提高加密效率。应该注意的是,系统安全参数λ是根据安全要求确定的。任何时间或任何企业的安全要求可能不同。例如,当系统安全参数λ的长度为256位不安全时,它的位数可能会增加。在一些实施例中,系统安全参数λ可以是变量而不是固定值。

本申请的另一方面,提供一种非暂时性计算机可读介质。非暂时性计算机可读介质可以包括一组指令。当由计算设备的至少一个处理器执行时,该组指令可以使处理器执行以下任何一种用于细粒度移动访问加密的方法的或以下任何一种用于细粒度移动访问解密的方法。

根据本申请中提供的非暂时性计算机可读介质,非暂时性计算机可读介质可以包括一组指令。当处理器执行一组指令时,处理器可以执行初始化;基于系统安全参数λ生成公钥参数pp和主密钥msk;获取用户身份属性;基于身份属性和主密钥msk生成用户私钥ski;加密离线数据,生成离线数据的会话密钥key1和离线数据的中介密文ict;并加密在线数据,生成在线数据的会话密钥key2和在线数据的中介密文ct。在上述过程中,可以确保加密的安全性,并且也可以减少加密过程的计算时间,从而可以提高加密效率。应该注意的是,系统安全参数λ是根据安全要求确定的。任何时间或任何企业的安全要求可能不同。例如,当系统安全参数λ的长度为256位不安全时,它的位数可能会增加。在一些实施例中,系统安全参数λ可以是变量而不是固定值。

图8是根据本申请的一些实施例所示的示例性用于细粒度移动访问加密的过程的流程图。在一些实施例中,过程800可以在数据传输系统100中实现。例如,过程800可以作为指令的形式存储在存储器120和/或存储器(例如,rom、ram,等)中,并且由服务器110调用和/或执行(例如,服务器110中的处理引擎112、或服务器110中的处理引擎112的处理器752)。

步骤802,可以基于系统安全参数λ生成公钥参数pp和主密钥msk。

步骤804,可以获取用户身份属性,并且可以基于身份属性和主密钥msk生成用户私钥ski。

步骤806,可以加密离线数据以生成离线数据的会话密钥key1和离线数据的中介密文ict。

步骤808,可以对在线数据进行加密,以生成在线数据的会话密钥key2和在线数据的中介密文ct。

根据本申请中提供的用于细粒度移动访问加密的方法,数据传输系统100或数据传输系统100的组件(例如,服务器110或处理引擎112)可以执行初始化;基于系统安全参数λ生成公钥参数pp和主密钥msk;获取用户身份属性;基于身份属性和主密钥msk生成用户私钥ski;加密离线数据生成离线数据的会话密钥key1和离线数据的中介密文ict;加密在线数据,生成在线数据的会话密钥key2和在线数据的中介密文ct。在上述过程中,可以确保加密的安全性,并且也可以减少加密过程的计算时间,从而可以提高加密效率。应该注意的是,系统安全参数λ是根据安全要求确定的。任何时间或任何企业的安全要求可能不同。例如,当系统安全参数的长度为256位时,它的位数可能会增加。在一些实施例中,系统安全参数λ可以是变量而不是固定值。

图9是根据本申请的一些实施例所示的示例性用于细粒度移动访问加密的方法的示意图。在一些实施例中,过程900可以在数据传输系统100中实现。例如,过程900可以作为指令的形式存储在存储器120和/或存储器(例如,rom、ram等)中,并且由服务器110调用和/或执行(例如,处理服务器110中的引擎112、或服务器110中的处理引擎112的处理器752)。

步骤902,可以基于系统安全参数λ由pkg确定素数p;可以基于系统安全参数λ确定第一群g和第二群gt;并且可以使用映射函数e将第一群g中的一个或以上元素映射到第二群,以确定双线性群。

步骤904,可以确定撤销身份域u和验证域v;可以通过pkg选择杂凑函数uch和辅助参数域r;确定随机数g、h和随机指数α、b;并且可以生成公钥参数pp和主密钥msk。

步骤906,可以选择随机指数t;可以获取用户身份属性;并且可以基于随机指数t、身份属性ski和主密钥msk来确定用户私钥sk1。

步骤908,可以随机选择第一撤销集合sori={iori,1,···,iori,n};可以获取杂凑函数对(chk,td);可以选择随机数r';可以确定动态验证身份iv;可以选择随机数s和随机指数si、sv;可以确定密文c0=gs并且可以确定离线数据的会话密钥key1和离线数据的中介密文ict。

步骤910,可以获取第二撤销集合s={i1,···,i|s|};可以确定imall,i=(ii-iori,i)·si;可以确定密文r;并且可以确定离线数据的会话密钥key2和离线数据的中介密文ct。

在该实施例中,撤销身份域验证域α、b∈zp;公钥参数主密钥msk=(α,b)。数据传输系统100或数据传输系统100的组件(例如,服务器110或处理引擎112)可以基于系统安全参数λ使用pkg确定素数p(例如,随机大素数);基于系统安全参数λ确定第一群g和第二群gt,并使用映射函数e将第一群g中的元素映射到第二群gt以确定双线性群。数据传输系统100或数据传输系统100的组件(例如,服务器110或处理引擎112)可以确定撤销身份域u和验证域v;通过pkg选择杂凑函数uch和辅助参数域r;并在双线性群中确定随机数g、h和随机指数α、b;生成公钥参数pp。公钥参数pp可以向公众开放,主密钥msk存储在pkg中。撤销身份域u定义用户的身份以撤销范围内某人的权利。uch:{0,1}*→v表示输入到uch的值具有由0或1组成的特定位数,并且uch输出的值是v。用于选择随机数g、h和随机指数α、b的过程可包括确定适当的椭圆曲线,例如,y2=x3+a×x+b,其中a和b表示系数。数据传输系统100或数据传输系统100的组件(例如,服务器110或处理引擎112)可以随机选择独立变量x的值x1,并计算因变量y的值y1。如果第一群g中的一个点(x1,y1)映射到第二群gt,则可能会生成一个随机元素。如果第一群g中的点未映射到第二群gt,则可以按顺序选择x的值,直到第一群g中的点映射到第二群gt为止。选择随机数或随机指数时使用的原理可以与下面在本申请中描述的内容类似。杂凑函数uch可以是任意杂凑函数。

在该实施例中,随机指数t∈zp;i表示用户身份属性;用户私钥数据传输系统100或数据传输系统100的组件(例如,服务器110或处理引擎112)可以通过pkg选择随机指数t,获取用户身份属性i,并基于随机指数t、身份属性i和主密钥msk生成用户私钥ski。可以通过基于等式的多项式乘法和取幂来确定用户私钥ski。

在该实施例中,n表示撤销用户的数量;ii∈u,i∈[n],n=|sori|、iv=uchash(chk,iori,1||···||iori,n,r')、s∈zp,动态验证身份sv∈zp;离线数据的会话密钥key1=e(g,g)αs;离线数据的中介密文ict=(ket1,c0,(ci,1,ci,2)i∈[n],cv,1,cv,2,sori,iv,(si)i∈[n],sv,s,chk,td,r')。数据传输系统100或数据传输系统100的组件(例如,服务器110或处理引擎112)可以随机选择第一撤销集合sori={iori,1,···,iori,n}(第一撤销集合包括要撤销的成员);获取杂凑函数对(chk,td),其中chk和td表示参数;选择一个随机数r’;确定动态验证iv;选择随机数s和随机指数si、sv;并确定密文c0=gs并基于等式key1=e(g,g)αs确定离线数据的会话密钥key1;并根据等式ict=(ket1,c0,(ci,1,ci,2)i∈[n],cv,1,cv,2,sori,iv,(si)i∈[n],sv,s,chk,td,r')确定离线数据的中介密文ict,其中,uchash是变色龙杂凑函数。

在该实施例中,i∈[|s|],密文r=ucoll(td,iori,1||...||iori,|s|,r',x),x=c0||{ci,1||ci,2}i∈[|s|]||cv,1||cv,2||{imall,i}i∈[|s|];在线数据的会话密钥key2=e(g,g)αs;在线数据的中介密文ct=(c0,(ci,1,ci,2)i∈[|s|],cv,1,cv,2,{imall,i}i∈[|s|],chk,r)。数据传输系统100或数据传输系统100的组件(例如,服务器110或处理引擎112)可以通过获取第二撤销集合s={i1,···,i|s|}来确定imall,i=(ii-iori,i)·si;基于等式r=ucoll(td,iori,1||...||iori,|s|,r',x)确定密文r;基于等式key2=e(g,g)αs确定在线数据的会话密钥key2;并根据等式ct=(c0,(ci,1,ci,2)i∈[|s|],cv,1,cv,2,{imall,i}i∈[|s|],chk,r)确定在线数据的中介密文ct,其中,ucoll表示碰撞杂凑函数,x=c0||{ci,1||ci,2}i∈[|s|]||cv,1||cv,2||{imall,i}i∈[|s|]。

图10是根据本申请的一些实施例所示的示例性用于细粒度移动访问解密的过程的流程图。在一些实施例中,过程1000可以在数据传输系统100中实现。例如,过程1000可以作为指令的形式存储在存储器120和/或存储器(例如,rom、ram,等)中,并且由服务器110调用和/或执行(例如,服务器110中的处理引擎112、或服务器110中的处理引擎112的处理器752)。

步骤1002,可以验证用户身份属性,并且可以生成会话密钥key。

在1004中,离线数据的中介密文ict和在线数据的中介密文ct可以基于公钥参数pp、私钥ski和会话密钥key来解密。

根据本申请中提供的用于细粒度移动访问解密的方法,数据传输系统100或数据传输系统100的组件(例如,服务器110或处理引擎112)可以验证用户身份属性、根据用户身份属性生成会话密钥key、并根据公钥参数pp、用户私钥ski、会话密钥key,离线数据的中介密文ict和在线数据的中介密文ct。在此过程中,可以确保解密的安全性,并且可以同时减少解密过程的计算时间,从而可以提高解密的效率。

在上述实施例中,公钥参数g、h表示随机数、α、b表示随机指数、e表示映射函数、uch表示杂凑函数、r表示辅助参数域;用户私钥i表示身份属性、t表示随机指数;离线数据的中介密文ict,ict=(ket1,c0,(ci,1,ci,2)i∈[n],cv,1,cv,2,sori,iv,(si)i∈[n],sv,s,chk,td,r')其中,key1=e(g,g)αs、c0=gssori={iori,1,···,iori,n}表示第一撤销集合;动态验证身份iv=uchash(chk,iori,1||···||iori,n,r')、s∈zp,sv∈zp,(chk,td)表示杂凑函数对、r'表示随机数、v表示验证域、n表示撤销用户的数量、ii∈u,i∈[n],n=|sori|;在线数据的中介密文ct=(c0,(ci,1,ci,2)i∈[|s|],cv,1,cv,2,{imall,i}i∈[|s|],chk,r);s={i1,···,i|s|}表示第二撤销集合;r=ucoll(td,iori,1||...||iori,|s|,r',x)、imall,i=(ii-iori,i)·si、密文x=c0||{ci,1||ci,2}i∈[|s|]||cv,1||cv,2||{imall,i}i∈[|s|]。

图11是根据本申请的一些实施例所示的示例性用于细粒度移动访问解密的过程的流程图。在一些实施例中,过程1100可以在数据传输系统100中实现。例如,过程1100可以作为指令的形式存储在存储器120和/或存储器(例如,rom、ram,等)中,并且由服务器110调用和/或执行(例如,服务器110中的处理引擎112,或服务器110中的处理引擎112的处理器752)。

步骤1102,可以认证动态验证身份iv;并且可以选择随机数τi。

步骤1104,确定验证的关于第一等式和第二等式是否成立。

步骤1106,如果第一等式或第二等式被验证为不成立,则会话密钥key可以被确定为空。

步骤1108,如果第一等式和第二等式都成立,则可以输出会话密钥key。

在该实施例中,第一等式第二等式动态验证身份iv=uchash(chk,x,r)i∈[|s|]、x=c0||{ci,1||ci,2}i∈[|s|]||cv,1||cv,2{imall,i}i∈[|s|]、τi∈[0,2τ];会话密钥数据传输系统100或数据传输系统100的组件(例如,服务器110或处理引擎112)可以认证动态验证iv;指定选择随机数τi;如果第一等式或第二等式被验证为不成立,则确定会话密钥key为空(即,会话密钥不存在);如果第一等式和第二等式都成立,则输出会话密钥key;并根据会话密钥key、公钥参数pp、用户私钥ski解密加密数据。

在此过程中,可以提高解密的安全性,并且可以缩短解密时间。上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。

同时,本申请使用了特定术语来描述本申请的实施例。例如,术语“一个实施例”、“一实施例”及“一些实施例”意指与本申请的至少一个实施例相关的某一特征、结构或特性。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或以上实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件实施、可以完全由软件(包括韧体、常驻软件、微代码等)实施、也可以由硬件和软件组合实施,上述硬件或软件均可以被称为“模块”、“单元”、“组件”、“装置”或“系统”。此外,本申请的各方面可能表现为位于一个或以上计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机可读信号介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。此类传播讯号可以有多种形式,包括电磁形式、光形式等或任何合适的组合形式。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读信号介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质、或任何上述介质的组合。

本申请各部分操作所需的计算机程序码可以用任意一种或多种程序语言编写,包括面向对象程序设计语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化程序设计语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态程序设计语言如python、ruby和groovy,或其他程序设计语言。程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机上运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan)、或连接至外部计算机(例如通过因特网)、或在云计算环境中、或作为服务使用如软件即服务(saas)。

此外,除非申请专利范围中明确说明,否则所述处理元素或序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统元件可以通过硬体装置实现,但是也可以只通过软体的解决方案得以实现,如在现有的服务器或行动设备上安装所描述的系统。

同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或以上发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

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