一种支持隐私保护的策略控制签名方法转让专利

申请号 : CN202010235878.9

文献号 : CN111431715B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孟博郑绪睿王德军朱容波

申请人 : 中南民族大学

摘要 :

本发明公开了一种支持隐私保护的策略控制签名方法,本发明引入策略控制签名的思想,将访问策略嵌入签名中,允许发送方来指定属性的接收方才能验证消息的真实性,处理敏感数据时,增加发送人对消息的隐私性和更多应用场景,实现对验证者的细粒度权限控制。同时设置全局属性并增加噪音属性,采用线性秘密分享矩阵(LSSS)作为访问结构,表达能力强,使用3素数合数阶双线性群来实现对实际访问策略隐藏,公开处理后的全局属性,提高了验证效率和实际应用的可行性。

权利要求 :

1.一种支持隐私保护的策略控制签名方法,其特征在于,包括以下步骤:步骤1:可信第三方产生系统参数param和全局属性值;

其中,可信第三方利用双线性参数生成器生成系统参数param和全局属性集的散列值;

其中,双线性参数生成器 p,q,r是3个不同的素数,G和GT是阶为N的乘法循环群,Gp、Gq和Gr是群G的阶为p、q和r的子群,gp为Gp的生成元,gq为Gq的生成元,gr为Gr的生成元,双线性映射 满足双线性、非退化性、可计算性和子群正交性;随机选择a,h1,h2,...hn∈Gp,假设全局属性名有n个,第i个属性名的属性值有mi个,所以为每个属性值在整数群ZN中随机取 计算得到全局属性名集合用于解码操作;设置文件散列函数H1:m→

GP,用于将消息m映射为循环群GP上元素的散列运算;设置身份散列函数H2: 其中 为将任意长度的{0,1}字符串映射为有限域 上元素的散列运算,假设Pi为一个属性值,使bi=H2(pi)为属性值的计算值,bi为全局属性的单项函数隐藏计算值,{bi}作为全局属性的公开参数对应全局属性名集{Ai},用于签名者和验证者针对自己拥有的属性值来加解码,防止公开全局属性带来隐私问题;设置 是一个抗碰撞hash()函数;取随机数a∈ZN,计算出 最后得到系统参数步骤2:输入系统参数param,随机选择参数,输出可信第三方私钥和公钥SKTA、PKTA;

其中,输入系统参数param,随机选择α,r∈ZN/0,让 输出可信第三方私钥和公钥SKTA=(α,r),PKTA=(U,W);

步骤3:签名者用系统参数param和可信第三方公钥PKTA生成签名者私钥SKP和签名者公钥PKP,并制定签名的详细属性值访问策略POL;

其中,输入系统参数param和可信第三方公钥PKTA,随机选择k,s∈Zp,使 X/=Wks;输出签名者SKP=(k,s),PKP=(X,X/);其中Zp表示有限域为{0,1,…,p-1}的集合;

步骤4:输入签名者公钥PKP和私钥SKP、第三方公钥PKTA、签名者制定的属性值访问策略POL、消息m、系统参数param,提取POL中属性值的属性名,用LSSS秘密分享方案将策略编码处理,将所有全局属性计算一个编码,然后将原始消息绑定输出签名δ,并附加属性名访问策略POL/,即隐藏属性值后的结构;

其中,制定一个秘密分享矩阵方案(M,p),M是一个n×l的矩阵,通过函数p将矩阵M中每一行与访问策略POL中的属性名映射,选择一个随机向量 其中s是签名者私钥同时是待分享的秘密指数,yi为随机数;对于i=1,2,…,n,计算λi=v×Mi,随机选择根据POL中的属性值对所有全局属性计算一个密文分量,如果POL在该属性名中出现的属性名则取全局属性集合 计算 否则随机选择βi∈ZN/0且λi≠βi计算 假如Ci表示第i的属性名的每个属性值对应的密文集合,即有:于是有 随机选择v,f∈ZP,获得部分签名 δ2

=Xv,δ3=X/v,计算Ω=δ1||δ2||δ3||f||PKP||PKTA||m,将Ω映射后连接秘密异或计算得M=δ1||δ2||δ3||f||PKP||PKTA||R||{{Cm},Dm},δ4=H1(M)x;

最后输出:签名δ={H1(Ω),δ1,δ2,δ3,δ4,{{Cm},Dm},m,R,POL/};

步骤5:输入验证者属性集S、系统参数param、可信第三方公钥PKTA,随机选择参数,输出验证者凭证Grev;

其中,输入验证者属性集S、系统参数param、可信第三方公钥PKTA,随机选择t∈ZP/0,计算 x∈S;输出验证者凭证Grev={K,L,SKx};

步骤6:根据签名δ、验证者凭证Grev、签名者公钥PKP、可信第三方公钥PKTA,验证签名有效性和完整性;

具体实现包括以下子步骤:

步骤6.1:验证是否是第三方和正确的签名人;

输入签名者公钥PKP=(X,X/)、可信第三方公钥PKTA=(U,W)、和参数gp,计算公式e(δ2,gp)=e(δ1,X)和e(δ3,gp)=e(δ2,W)是否相等,若相等则证明是正确的第三方和签名者,否则失败;

步骤6.2:验证签名的完整性;

若用户S是一个授权集,则满足(M,p)且l={i:p(i)∈S},那么在多项式时间内能找到一组常熟集{ωi∈ZN}i∈I,使得 其中λi是秘密S的有效分享;

步骤6.3:利用解密的信息计算:

M/=δ1||δ2||δ3||f/||PKP||PKTA||R||{{Cm},Dm}||mh(M)=h(M/)

/

若e(δ4,gp)=e(H1(M),X)等式相等,则验证成功。

说明书 :

一种支持隐私保护的策略控制签名方法

技术领域

[0001] 本发明属于信息安全中数字签名技术领域,涉及一种支持隐私保护的策略控制签名方法,具体涉及一种在基于属性加密签名的体系中,结合策略控制签名,对将要发布的消息进行数字签名的同时,附加隐藏详细策略的访问控制签名方法。

背景技术

[0002] 基于属性签名是由基于属性的公钥密码体制发展而来,shamir于1984年首次提出基于身份加密的概念。在基于身份加密的密码体制中,用户的身份信息可以直接作为公钥使用,因此避免了公钥证书的问题。Sahai和Waters于2005年首次提出了基于属性加密的概念,通过属性集合表示用户身份,其中属性集合由一个或多个属性构成,只有当用户的属性匹配密文所关联的属性,则用户的私钥可以解密密文,是属性基密码体制的雏形。P.Yang在2006年提出模糊身份签名概念,基于属性的数字签名是基于模糊身份签名的发展。用户的信息由一系列属性描述,签名者由一组访问策略限制,而验证者通过验证,只能确定该签名满足某个访问策略,但不知道签名者的详细属性,而且不能限制签名的验证人。
[0003] 基于策略签名针对签名者只能对符合某些授权指定的策略的消息进行签名由Mihir和Geory于2014年首次提出。具有不可伪造性和隐私性,意味着签名不会泄露政策。并在两个方面提供了价值:(1)在实践方面,签名允许公司控制其员工可以在公司密钥下签署的信息。(2)在理论方面,签名统一了现有的工作,很容易地构建。他们的工作主要集中于基于策略签名的定义,证明这个原语对于任意策略是可实现的,特定策略是有效的构造,以及一些有代表性的应用。
[0004] 策略控制签名可以说是是基于策略签名发展而来,由Thorncharoensri于在2014年首次提出。在这个原语中,签名者可以对消息进行签名并向其附加一些策略。只有满足所附加的策略的验证者才能验证消息的真实性。这种类型的签名方案有许多应用程序,特别是在处理敏感数据时,签名者不希望允许未经授权的任何人验证其真实性。策略控制的签名与指定验证者签名的概念类似,因为它也可以用于将签名指定给多个收件人。当验证者提供的策略中只涉及一个属性时,我们将实现一个指定的验证者签名(通过一些简单的修改)。因此,策略控制签名可以看作是指定验证者签名概念的泛化。
[0005] 访问控制策略隐藏后来成为属性加密的热点问题,传统的加密方法虽然能够保护数据隐私,但增加了系统对用户细粒度访问控制的难度,而基于属性的加密体系都未对访问策略进行隐藏,当访问策略本身就是敏感信息,同样会泄露用户的隐私信息。因此,2008年Nishide等提出了一种可以隐藏部分访问策略的加密方案,用多值属性之间的与逻辑表示访问策略,实现了同时保护消息和访问结构私密性的功能。2011年,Lai等在合数阶双线性群的基础上提出了一种隐藏访问策略的CP-ABE方案,并证明其是完全安全的。2012年,王海斌等提出一种素数阶双线性群的策略隐藏CP-ABE方案,使私钥长度和解密算法中的双线性配对运算为固定值,方案中采用多值属性与门的访问结构。2013年,Sreenivasa等提出了一种匿名接收的CP-ABE方案,其采用与门的访问结构,并证明是完全安全的。2015年,宋衍等提出一种基于访问树的策略隐藏属性加密方案,并证明其是自适应安全的。
[0006] 以上的隐藏策略的属性基加密方案大多采用与门或访问树的访问结构,在策略表达上有诸多限制,而LSSS矩阵在访问策略表达上更强,可表达任意访问策略,包括与门或门和门限,访问结构灵活。2011年,Waters提出了一种基于LSSS访问矩阵的CP-ABE方案,但方案中并没有对访问策略进行隐藏。2012年,Lai等提出了一种基于LSSS访问矩阵隐藏部分访问策略的CP-ABE方案。

发明内容

[0007] 为了融合上述基于属性签名、基于策略签名和策略隐藏技术的优点,本发明首先在基于LSSS的隐藏策略属性基加密方案和策略控制签名基础上结合形成一个基于LSSS的策略控制签名,并引入隐藏访问策略的思想,最终提出了一种支持隐私保护的策略控制签名方法。
[0008] 本发明所采用的技术方案是:一种支持隐私保护的策略控制签名方法,其特征在于,包括以下步骤:
[0009] 步骤1:可信第三方产生系统参数param和全局属性集值;
[0010] 步骤2:输入系统参数param,随机选择参数,输出可信第三方私钥SKTA和可信第三方公钥PKTA;
[0011] 步骤3:签名者用系统参数param和可信第三方公钥PKTA生成签名者私钥SKP和签名者公钥PKP,并制定签名的详细属性值访问策略POL,例(男AND学生);
[0012] 步骤4:输入签名者公钥PKP和私钥SKP、第三方公钥PKTA、签名者制定的属性值访问策略POL、消息m、系统参数param,提取POL中属性值的属性名,用LSSS和shamir秘密分享方案将策略编码处理,将所有全局属性计算一个编码,和原始消息绑定输出签名δ,并附加属性名访问策略POL/,即隐藏属性值的访问结构(性别AND职位),隐藏详细属性值;
[0013] 步骤5:输入验证者属性集S、系统参数param、可信第三方公钥PKTA,随机选择参数,输出验证者凭证Grev;
[0014] 步骤6:根据签名δ、验证者凭证Grev、可信第三方公钥PKTA,验证签名有效性和完整性。
[0015] 本发明其满足三个要求:一是签名者制定访问策略附加在签名上,只有验证者属性满足访问策略才能验证签名的真伪;二是在生成系统参数时,生成N=pqr的3素数合数阶双线性群来构造方案以及用公开属性名策略,隐藏属性值策略方案来实现策略的隐藏;三是采用线性秘密共享矩阵(LSSS)作为访问结构,策略表达能力强,解码效率高。
[0016] 本发明不仅能够限制签名的验证者,还有效的解决了消息发布者和消息的隐私保护问题。

附图说明

[0017] 图1是本发明实施例的签名操作流程图;
[0018] 图2是本发明实施例的验证签名操作流程图;
[0019] 图3是本发明实施例的签名函数图;
[0020] 图4是本发明实施例的验证函数图。

具体实施方式

[0021] 为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
[0022] 为了融合上述基于属性签名、基于策略签名和策略隐藏技术的优点,本发明首先在陈伟丹基于LSSS的隐藏策略属性基加密方案和策略控制签名基础上结合形成一个基于LSSS的策略控制签名,并引入隐藏访问策略的思想,最终提出了一种支持隐私保护的策略控制签名方法,其满足三个要求:一是签名者制定访问策略附加在签名上,只有验证者属性满足访问策略才能验证签名的真伪;二是通过3素数合数阶双线性群来构造方案以及用公开属性名策略,隐藏属性值策略方案来实现策略的隐藏;三是采用线性秘密共享矩阵(LSSS)作为访问结构,策略表达能力强,解码效率高。
[0023] 本发明采用的技术方案是:首先第三方产生系统参数,设定所有范围的全局属性,然后签名者用系统参数和第三方公钥生成签名私钥和公钥,并制定属性值访问策略,针对消息产生签名并附加属性名访问策略,隐藏详细属性值。验证者利用系统参数和自己的属性值生成验证私钥。验证者收到签名后,先验证是否是第三方和正确的签名人,再验证签名的真伪。当验证者属性满足访问策略时,执行验证等式,等式成立,则说明签名有效。
[0024] 本发明中涉及到的实体包括可信第三方(属性授权中心)、签名执行者、验证者(用户)。其中,可信第三方:等于授权中心,用于制定全局属性并监管每个用户的属性,并生成用户私钥和第三方公钥和私钥,但可信第三方不需要知道签名者制定的访问策略,每个签名者的私钥都是由第三方公钥衍生生成,这样为了全局签名的真实性。签名执行者:制定访问策略,并由其生成签名,公开属性名策略,隐藏详细属性值。验证者(用户):用户首先将属性提交给可信第三方,得到属性私钥。收到消息后,当用户属性满足签名的访问策略时,才能成功验证签名真伪。
[0025] 请见图1-图4,本发明提供的一种支持隐私保护的策略控制签名方法,包括以下步骤:
[0026] 步骤1:可信第三方产生系统参数param和全局属性集的hash值;
[0027] 本实施例中,可信第三方利用双线性参数生成器生成系统参数param和全局属性集的hash值;
[0028] 其中,双线性参数生成器 p,q,r是3个不同的素数,G和GT是阶为N的乘法循环群,Gp、Gq和Gr是群G的阶为p、q和r的子群,gp为Gp的生成元,gq为Gq的生成元,gr为Gr的生成元,双线性映射 满足双线性、非退化性、可计算性和子群正交性。随机选择h1,h2,...hn∈Gp;假设全局属性名有n个,第i个属性名的属性值有mi个,所以为每个属性值在整数群ZN中随机取t1,1,…,t1,m1,…,tn,1,…,tn,mn∈ZN,计算得到全局属性名集合 用于解码操作。
[0029] 本实施例定义了三个函数散列函数:设置文件散列函数H1:m→GP,用于将文件m映射为循环群GP上元素的散列运算;设置身份散列函数 其中 为将任意长度的{0,1}字符串映射为有限域 上元素的散列运算,假设Pi为一个属性值,使bi=H2(pi)为属性值的计算值,bi为全局属性的单项函数隐藏计算值,{bi}作为全局属性的公开参数对应全局属性名集{Ai},用于签名者和验证者针对自己拥有的属性值来加解码,防止公开全局属性带来隐私问题;设置 是一个抗碰撞hash函数;取随机数a∈ZN,
计算出 最后得到系统参数
[0030] 步骤2:输入系统参数param,随机选择参数,输出可信第三方私钥SKTA和可信第三方公钥PKTA;
[0031] 本实施例中,输入系统参数param,随机选择α,r∈ZN/0,让 输出可信第三方私钥和公钥SKTA=(α,r),PKTA=(U,W)。
[0032] 步骤3:签名者用系统参数param和可信第三方公钥PKTA生成签名者私钥SKP和签名者公钥PKP,并制定签名的详细属性值访问策略POL,例(男AND学生)。针对消息m产生签名并附加属性名访问策略POL/,即隐藏属性值的访问结构(性别AND职位),隐藏详细属性值;
[0033] 本实施例中,输入系统参数param和可信第三方公钥PKTA,随机选择k,s∈Zp,使输出签名者SKP=(k,s),PKP=(X,X/)。其中Zp表示有限域为{0,1,…,p-1}的集合。
[0034] 步骤4:输入签名者公钥PKP和私钥SKP、第三方公钥PKTA、签名者制定的属性值访问策略POL、消息m、系统参数param,提取POL中属性值的属性名,用LSSS和shamir秘密分享方案将策略编码处理,将所有全局属性计算一个编码,和原始消息绑定输出签名δ;
[0035] 本实施例中,制定一个(M,p)LSSS秘密分享矩阵,M一个n×l的LSSS秘密分享矩阵,通过函数p将矩阵M中每一行与访问策略POL中的属性名对应,选择一个随机向量其中s签名者私钥同时是待分享的秘密指数,yi为随机数;对于i=1,2,…,n,计算λi=v×Mi,随机选择r1,r2,…,rn∈ZN,{Yi,Yi/∈Gq}i∈{1,2,…l},根据POL中的属性值对全局属性计算一个密文分量,如果POL在该属性名中出现的属性名则取全局属性集合计算 否则随机选择βi∈ZN/0且λi≠βi计算 假如Ci
表示第i的属性名的每个属性值对应的密文集合,即有:
[0036]
[0037] 于是有 随机选择v,f←ZP,获得部分签名计算Ω=δ1||δ2||δ3||f||PKP||PKTA||m,将Ω映射后连接秘密异或
计算得 M=δ1||δ2||δ3||f||PKP||PKTA||R||{{Cm},Dm},δ4=H1
(M)x;最后输出:签名δ={h(Ω),δ1,δ2,δ3,δ4,{{Cm},Dm},m,R,POL/}。
[0038] 步骤5:输入验证者属性集S、系统参数param、可信第三方公钥PKTA,随机选择参数,输出验证者凭证Grev;
[0039] 本实施例中,输入验证者属性集S、系统参数param、可信第三方公钥PKTA,随机选择t∈ZP/0,计算 x∈S;输出验证者凭证Grev={K,L,SKx};
[0040] 步骤6:根据签名δ、验证者凭证Grev、可信第三方公钥PKTA,验证签名有效性和完整性;
[0041] 本实施例中,步骤6的具体实现包括以下子步骤:
[0042] 步骤6.1:验证是否是第三方和正确的签名人;
[0043] 输入签名者公钥PKP=(X,X/)、可信第三方公钥PKTA=(U,W)和参数gp,计算公式e(δ2,gp)=e(δ1,X)和e(δ3,gp)=e(δ2,W)是否相等,若相等则证明是正确的第三方和签名者,否则失败;
[0044] 步骤6.2:验证签名的完整性;
[0045] 若用户S是一个授权集,则满足(M,p)且l={i:p(i)∈S},那么在多项式时间内能找到一组常熟集{ωi∈ZN}i∈I,使得 其中λi是秘密S的有效分享;
[0046]
[0047] 步骤6.3:利用解密的信息计算:
[0048]
[0049] M/=δ1||δ2||δ3||f/||PKP||PKTA||R||{{Cm},Dm}||m
[0050] h(M)=h(M/)
[0051] 若e(δ4,gp)=e(H1(M/),X)等式相等,则验证成功。
[0052] 应当理解的是,本说明书未详细阐述的部分均属于现有技术,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。