掌桥专利:专业的专利平台
掌桥专利
首页

细粒度访问控制的可追责的基于属性的匿名认证方法

文献发布时间:2023-06-19 10:43:23


细粒度访问控制的可追责的基于属性的匿名认证方法

技术领域

本发明涉及信息安全领域,尤其涉及一种细粒度访问控制的可追责的基于属性的匿名认证方法。

背景技术

随着信息技术的发展,一方面用户在参与线上认证服务时会更加关注隐私保护,以避免个人隐私信息的泄露。匿名认证能有效保证用户隐私,并逐渐在多领域具有很多应用。诸如群签名、环签名、基于属性的签名、匿名凭证等方案,是匿名认证的典型代表,其所达到的隐私保护程度也不尽相同;

另一方面,如何在匿名认证中有效保证责任性是当前的研究热点。常见的具有可追责的匿名认证方案,如群签名、可链接的环签名、可追踪的基于属性的签名、可追踪的匿名凭证等,虽然能达到一定的隐私保护功能,允许权威机构对某个用户实现追责的效果,但在实现可追责和访问控制方面存在一些不足,现有的访问控制的可追责方案(如可追踪的基于属性的签名、可追踪的匿名凭证)需依赖可信权威进行追踪,无法实现公开可追踪。

发明内容

为了克服现有技术存在的缺陷与不足,本发明提出了一种细粒度访问控制的可追责的基于属性的匿名认证方法,该方法既可以实现细粒度访问控制,又能保证用户的隐私,并进一步实现公开可追责。

本发明的第二目的在于提供一种细粒度访问控制的可追责的基于属性的匿名认证系统。

为了达到上述目的,本发明采用以下技术方案:

一种细粒度访问控制的可追责的基于属性的匿名认证方法,包括以下步骤:

通过证书权威机构进行初始化处理,生成主公钥和主私钥;

通过证书权威机构生成用户的属性秘钥;

发布认证任务,通过任务发布者对认证任务进行加密操作的处理得到认证任务的密文;

解密认证任务,通过用户对认证任务的密文进行解密操作得到解密内容,所述用户设有多个;

生成认证,通过用户对消息进行认证操作得到认证令牌;

验证认证,通过验证者对认证操作结果进行验证操作得到验证结果;

追踪重复认证的用户,当用户认证达到两次时,通过验证者进行链接操作、追踪操作的处理;所述验证者为所述任务发布者或任意多个所述用户。

作为优选的技术方案,所述通过证书权威机构进行初始化处理,包括以下步骤:

令CP=(CP.Setup,CP.KeyGen,CP.Encrypt,CP.Decrypt)为密文策略基于属性的加密(CP-ABE)处理,即CP处理;其中,CP.Setup是CP处理的设置操作,用于初始化CP处理;CP.KeyGen是CP处理的秘钥生成操作,用于生成属性秘钥;CP.Encrypt是CP处理的加密操作,用于加密认证任务;CP.Decrypt是CP处理的解密操作,用于解密已加密的认证任务;

令ZK=(ZK.Setup,ZK.Prover,ZK.Verifier)为zk-SNARK零知识证明处理,即ZK处理;其中,ZK.Setup是ZK处理的设置操作,用于初始化ZK处理;ZK.Prover是ZK处理的证明操作,用于生成证明;ZK.Verifier是ZK处理的验证操作,用于验证认证令牌;

令Λ为访问策略,S为属性集合,Λ(S)=1表示属性集合S满足访问策略Λ。

作为优选的技术方案,所述生成主公钥和主私钥,具体包括以下步骤:

执行CP处理的设置操作,根据安全参数和属性空间描述生成公开参数和主私钥;

执行ZK处理的设置操作,根据输入安全参数和NP语言生成公共参考字符串;

选择两个不同Hash函数,H

输出主公钥,主私钥;所述主公钥根据mpk=(pk,crs,H

作为优选的技术方案,所述通过证书权威机构生成用户的属性秘钥,具体为执行CP处理的秘钥生成操作,结合主私钥为第i个用户生成与第i个用户的属性集合所对应的秘钥,其中i是正整数。

作为优选的技术方案,所述通过任务发布者对认证任务进行加密操作的处理得到认证任务的密文,具体为执行CP处理的加密操作,根据公开参数、认证任务的明文内容和访问策略生成认证任务的密文。

作为优选的技术方案,所述通过用户对认证任务的密文进行解密操作得到解密内容,具体为执行CP处理的解密操作,根据公开参数、认证任务的密文和属性秘钥生成解密认证任务的明文内容或错误符号。

作为优选的技术方案,所述认证操作,包括以下步骤:

输入消息M=event||m、属性秘钥

计算

令x=(M=event||m,Λ,a,b,mpk)为一个声明,w为秘密,

执行ZK处理的证明操作,通过声明、秘密和公共参考字符串生成一个证明η;

输出认证令牌π=(a,b,η),a表示认证令牌π中的第一标签,b表示认证令牌π中的第二标签。

作为优选的技术方案,所述验证操作,具体为:输入消息、认证令牌、访问策略和主公钥,执行ZK处理的验证操作,根据声明、认证令牌π和公共参考字符串进行验证认证令牌的有效性,所述验证认证令牌的有效性通过输出第一验证标识或第二验证标识,其中第一验证标识表示验证认证令牌有效,第二验证标识表示验证认证令牌无效。

作为优选的技术方案,所述通过验证者进行链接操作、追踪操作的处理,包括以下步骤:

基于消息认证进行链接:令第一消息M

若a

基于消息认证对进行追踪:输入两个有效的消息认证对,所述两个有效的消息认证对包括第一消息认证对、第二消息认证对,所述第一消息认证对包括所述第一消息、所述第一认证令牌,所述第二消息认证对包括所述第二消息、所述第二认证令牌,所述两个有效的消息认证对在链接操作中输出第一链接标识;

根据第一认证令牌中的第二标签、第二认证令牌中的第二标签计算并识别出认证达到两次的用户的身份信息id进行输出;

所述用户的身份信息id满足关系式:id=(b

为了达到上述第二目的,本发明采用以下技术方案:

一种细粒度访问控制的可追责的基于属性的匿名认证系统,包括初始化模块、属性秘钥生成模块、认证任务发布模块、认证任务解密模块、认证生成模块、认证验证模块、认证追踪模块、证书权威机构、用户、任务发布者,所述用户设有多个;

初始化模块通过证书权威机构进行初始化处理,生成主公钥和主私钥;

属性秘钥生成模块通过证书权威机构生成用户的属性秘钥;

认证任务发布模块用于发布认证任务,通过任务发布者进行加密操作的处理;

认证任务解密模块通过用户进行解密操作;

认证生成模块通过用户对消息进行认证操作得到认证令牌;

认证验证模块通过验证者对认证操作结果进行验证操作得到验证结果;

认证追踪模块用于追踪重复认证的用户,通过验证者进行链接操作、追踪操作的处理,所述验证者为任务发布者或任意用户。

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

(1)本发明针对当前匿名认证方案的访问控制需求,根据密文策略基于属性加密处理,设置了访问策略,保证了认证任务的明文内容是加密的,实现只允许属性满足访问策略的用户才能获得认证任务的明文内容的目的。

(2)本发明针对认证的隐私保护和可验证的需求,根据zk-SNARK零知识证明处理,使得用户只有根据认证任务的明文内容生成的认证令牌才能被视为有效的,达到了可验证的目的,并使得认证令牌不泄露用户的身份信息,达到有效保证用户隐私的效果。

(3)本发明针对当前匿名认证方案的公开可追责的需求,通过允许任何人识别同一个用户生成的两个有效认证令牌,并允许任何人识别该认证达到两次的用户的身份,进而实现了公开可链接和公开可追踪的特性,保证了公开可追责的效果。

附图说明

图1为本发明实施例1中细粒度访问控制的可追责的基于属性的匿名认证方法的步骤图。

具体实施方式

在本公开的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现在该词前面的元素或者物件涵盖出现在该词后面列举的元素或者物件及其等同,而不排除其他元素或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例

实施例1

本实施例提供了一种细粒度访问控制的可追责的基于属性的匿名认证方法,该方法包括以下步骤:

通过证书权威机构进行初始化处理,生成主公钥和主私钥;

通过证书权威机构生成用户的属性秘钥;

发布认证任务,通过任务发布者对认证任务进行加密操作的处理得到认证任务的密文;

解密认证任务,通过用户对认证任务的密文进行解密操作得到解密内容,其中用户设有多个;

生成认证,通过用户对消息进行认证操作,生成认证令牌;

验证认证,通过验证者对认证操作结果进行验证操作得到验证结果;

追踪重复认证的用户,当用户认证达到两次时,通过验证者进行链接操作、追踪操作的处理;验证者为任务发布者或任意多个用户。

在本实施例中,通过证书权威机构进行初始化处理,具体包括以下步骤:

令CP=(CP.Setup,CP.KeyGen,CP.Encrypt,CP.Decrypt)为密文策略基于属性的加密(CP-ABE)处理,即CP处理;其中,CP.Setup是CP处理的设置操作,用于初始化CP处理,具体为CP.Setup(λ,U),输入安全参数λ和属性空间描述U,输出公开参数pk和主私钥msk;CP.KeyGen是CP处理的秘钥生成操作,用于生成属性秘钥,具体为CP.KeyGen(msk,S

令ZK=(ZK.Setup,ZK.Prover,ZK.Verifier)为zk-SNARK零知识证明处理,即ZK处理;其中,ZK.Setup是ZK处理的设置操作,用于初始化ZK处理;具体为ZK.Setup(λ,£),输入安全参数λ和NP语言£,输出公共参考字符串crs;ZK.Prover是ZK处理的证明操作,用于生成证明;具体为ZK.Prover(x,w,crs),输入声明x、秘密w和公共参考字符串crs,输出证明η;ZK.Verifier(x,π,crs)是ZK处理的验证操作,用于验证认证令牌;具体为ZK.Verifier(x,π,crs),输入声明x、认证令牌π和公共参考字符串crs,输出0或1;

令Λ为访问策略,S为属性集合,定义Λ(S)=1表示属性集合S满足访问策略Λ。

在本实施例中,生成主公钥和主私钥,具体包括以下步骤:

执行CP处理的设置操作,生成公开参数pk和主私钥msk;

执行ZK处理的设置操作,生成公共参考字符串crs;

选择两个不同Hash函数,H

输出主公钥mpk=(pk,crs,H

在本实施例中,通过证书权威机构生成用户的属性秘钥,具体为执行CP处理的秘钥生成操作,结合主私钥msk为第i个用户生成与第i个用户的属性集合S

在本实施例中,通过任务发布者对认证任务进行加密操作的处理得到认证任务的密文,具体为执行CP处理的加密操作,根据公开参数、认证任务的明文内容和访问策略生成认证任务的密文c。

在本实施例中,通过用户对认证任务的密文进行解密操作得到解密内容,解密操作,具体为执行CP处理的解密操作,根据公开参数、认证任务的密文和属性秘钥生成解密认证任务的明文内容

在本实施例中,认证操作,具体为

计算

令x=(M=event||m,Λ,a,b,mpk)为一个声明,w为秘密,

执行ZK处理的证明操作,通过声明x、秘密w和公共参考字符串生成一个证明η;

输出认证令牌π=(a,b,η),a表示认证令牌π中的第一标签,b表示认证令牌π中的第二标签,η表示认证令牌π中的证明。

在本实施例中,验证操作,具体为Verify(M,π,Λ,mpk),输入消息M、认证令牌π、访问策略Λ和主公钥mpk,执行ZK处理的验证操作输出1或0,即根据声明、认证令牌π和公共参考字符串以验证认证令牌的有效性,其中1表示验证认证令牌有效,0表示验证认证令牌无效。

在本实施例中,通过验证者进行链接操作、追踪操作的处理,包括以下步骤:

基于消息认证进行链接,其中链接具体为Link(M

基于消息认证对进行追踪,其中追踪具体为Trace(M

根据b

实施例2

本实施例提供了一种细粒度访问控制的可追责的基于属性的匿名认证系统,包括初始化模块、属性秘钥生成模块、认证任务发布模块、认证任务解密模块、认证生成模块、认证验证模块、认证追踪模块、证书权威机构、用户、任务发布者,其中用户设有多个;

初始化模块通过证书权威机构进行初始化处理,生成主公钥和主私钥;

属性秘钥生成模块通过证书权威机构生成用户的属性秘钥;

认证任务发布模块用于发布认证任务,通过任务发布者进行加密操作的处理;

认证任务解密模块通过用户进行解密操作;

认证生成模块通过用户对消息进行认证操作得到认证令牌;

认证验证模块通过验证者对认证操作结果进行验证操作得到验证结果;

认证追踪模块用于追踪重复认证的用户,通过验证者进行链接操作、追踪操作的处理,其中验证者为任务发布者或任意用户。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

相关技术
  • 细粒度访问控制的可追责的基于属性的匿名认证方法
  • 具备匿名访问能力的基于属性访问控制方法
技术分类

06120112657081