CN113221089B - 基于可验证声明的隐私保护属性认证系统及方法 - Google Patents

基于可验证声明的隐私保护属性认证系统及方法 Download PDF

Info

Publication number
CN113221089B
CN113221089B CN202110276797.8A CN202110276797A CN113221089B CN 113221089 B CN113221089 B CN 113221089B CN 202110276797 A CN202110276797 A CN 202110276797A CN 113221089 B CN113221089 B CN 113221089B
Authority
CN
China
Prior art keywords
user
attribute
protocol
service provider
attr
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110276797.8A
Other languages
English (en)
Other versions
CN113221089A (zh
Inventor
郭楠
孟奇
赵雨康
Original Assignee
东北大学
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 东北大学 filed Critical 东北大学
Priority to CN202110276797.8A priority Critical patent/CN113221089B/zh
Publication of CN113221089A publication Critical patent/CN113221089A/zh
Application granted granted Critical
Publication of CN113221089B publication Critical patent/CN113221089B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种基于可验证声明的隐私保护属性认证系统及方法,涉及身份认证中的隐私保护技术领域。本发明首先采用W3C的“可验证声明”设计凭证的数据结构,通过验证其签名可以确认所声明内容是否有效,由此规范了身份验证的标准;针对“可验证声明”所存在的隐私问题,对其结构进行了扩展,增加了相应字段,从而使“可验证声明”具有匿名性;采用BB短签名方案和非交互式零知识证明技术实现了属性值的区间证明、“非”关系证明及“或”关系证明;给出了协议的详细设计,包括初始化、凭证颁发协议、凭证出示协议及属性证明协议,将“可验证声明”应用在上述协议中;实现了对用户的隐私保护认证。

Description

基于可验证声明的隐私保护属性认证系统及方法
技术领域
本发明涉及身份认证中的隐私保护技术领域,尤其涉及一种基于可验证声明的隐私保护属性认证系统及方法。
背景技术
近几年来,互联网与计算机技术的发展给我们的生活带来了极大的改变。我们可以使用不同的网络身份,参与在线观影、网上购物、网上教育、电子医疗、电子政务等活动,这些活动在极大地便利了我们的生活的同时,也带来了许多不容忽视的问题。通常情况下,在线服务提供商会验证用户的身份,要求用户提供一些私人敏感的属性信息,并将这些敏感信息存储在服务器上。这很容易造成用户的隐私信息泄露,一方面,这可能由于服务商在金钱等利益的驱使下贩卖用户信息;另一方面,服务商也容易遭受网络攻击,一旦服务商的网络防御体系被不法分子攻破,服务器上用户敏感信息的泄露就会使得用户的隐私荡然无存。
随着社会的进步发展,用户的隐私保护观念也在发生改变,用户越发关注自己的隐私能否得到保障。2017年4月,OWASP(开放式Web应用程序安全项目)组织发布了十大安全漏洞体系,信息泄露在其中居第六位。由此看出,隐私保护在人们心中正占据越来越多的比重。
除此之外,在线服务认证过程存在的另一个问题是,服务商也不可能完全相信用户提供的信息。只有当用户拥有某些权威机构颁发的证书时,服务商才会在验证证书的合法性后,确认用户的信息是否有效。因此,建立一套隐私保护的数字身份管理体系还是很有必要的。只有这样,才能在保护用户隐私的同时,更好的解决在线认证过程中服务商与用户间的信任问题。
目前已有的数字身份管理体系是电子身份标识(eID),由政府相关部门颁发,往往会将相关信息嵌入到SIM卡或银行卡中,可以实现远程或在线验证用户的身份。与普通的身份验证方式相比,当用户使用eID进行身份认证时,可以享受跨地区、跨行业的身份服务,能够有效防范身份被冒用或盗用,防止身份信息被非法读取篡改,还可以保护用户的合法身份信息。
2010年,我国公安部第三研究所开始对eID的研究。2011年公安部建成“公民网络身份识别系统”并将该系统投入使用。2012年,eID在北京邮电大学进行校园网络业务的试点使用。2018年,中国移动通信集团有限公司、中国中信集团公司开始启动SIMeID项目。到目前为止,已有中国工商银行、上海银行、中国建设银行等多个银行开始发行加载有eID的金融IC卡,而且eID也已载入华为、vivo、OPPO等手机。我国的eID以智能安全芯片为载体,芯片内含有一组非对称密钥对,支持公民使用eID进行签名。此外,eID还支持公民自证身份,使得公民在不同应用中的身份都是经过不同的转换,所以使用eID能够有效保护公民的身份隐私,但在属性隐私的保护方面仍有欠缺,用户仍然无法控制自己的身份属性信息的使用情况问题。
发明内容
针对现有技术存在的不足,本发明提出了一种基于可验证声明的隐私保护属性认证系统及方法,提出了一种隐私保护属性认证协议该协议会通知用户其属性信息将会被服务提供商如何使用,并允许用户设置自己的隐私偏好。这些偏好将会与用户的属性信息一起被存到隐私令牌中发送给服务提供商。当服务提供商的访问策略与用户的隐私偏好有冲突时,服务提供商会调整自己的行为,或者请求用户的特殊许可以便访问到某些用户之前不愿披露的属性信息。本发明方法的设计,不仅仅有利于该类型协议的标准化,还有利于增强可验证声明的安全性与隐私性。而且,基于属性的认证与普通的身份认证相比,可以提供更细粒度的访问控制,支持访问控制策略的多样化与差异化,能够尽可能少地暴露用户信息,防止用户信息泄露,切实保障用户的隐私安全。
为解决上述技术问题,本发明所采取的技术方案是:
一方面,一种基于可验证声明的隐私保护属性认证系统,包括:用户、身份提供方、服务提供方;
所述用户是发起消息请求的一方;
所述服务提供方根据所述身份提供方的响应信息来决定是否对用户提供服务;
所述身份提供方提供身份管理认证服务,其具体包含身份信息、属性信息、证书的生成、修改;
身份提供方作为权威机构,得到来自用户以及服务提供方的信任。然而,身份提供方并不信任用户,身份提供方在给用户颁发可验证声明形式的凭证时,需要与用户执行相应的协议进行交互,确认用户身份后才继续进行凭证的颁发;而用户与服务提供方之间,则是互不信任的关系,用户与服务提供方之间执行协议:通过执行凭证出示协议,服务提供方相信用户拥有身份提供方颁发的凭证;通过执行不同形式的属性证明协议,服务提供方只知道凭证中的属性值满足策略要求的同时,无法得到关于该属性值的更多信息;
所述权威机构验证用户身份确认用户的身份无误后,签发相应的凭证发送给用户;
另一方面,一种基于可验证声明的隐私保护属性认证方法,基于前述一种基于可验证声明的隐私保护属性认证系统实现,具体包括以下步骤:
步骤1:初始化阶段,权威机构执行Setup算法输入安全参数k,输出公共参数params;KeyGen算法在权威机构和用户两个实体中执行,该算法输入公共参数,分别输出它们各自的公私钥其中,/>仅保存在权威机构,不对服务提供方公开;其中(U,V)为权威机构的公钥,/>表示用户公钥,ku表示用户私钥,(x,y)为权威机构的私钥;
步骤2:凭证颁发协议执行阶段,使用CommitKey算法使用户证明算法输入用户私钥ku,输出私钥证据proofku,Issue算法检验用户是否合法,输入公共参数params、用户的属性m、用户公钥权威机构的私钥(x,y),输出相应签名σ。Obtain算法用于检验签名的有效性,输入公共参数params、签名σ以及权威机构的公钥(U,V),输出签名的验证结果true/false;
凭证颁发协议阶段在权威机构与用户之间运行,在权威机构验证用户身份时,通过用户公钥对用户私钥进行零知识证明进行的,这个过程没有暴露用户的私钥ku,权威机构确认用户的身份无误后,签发相应的凭证发送给用户,具体包括以下步骤:
步骤2.1:用户与颁发者进行身份认证;
步骤2.1.1:用户随机生成计算N=hn;其中/>是与素数p互素的所有数的集合,n表示随机数,N是用户私钥承诺的同构;
步骤2.1.2:用户计算挑战,计算挑战其中h是公共参数,/>表示用户公钥;H()含义为哈希函数;
步骤2.1.3:用户计算响应,ru=n-kucl;其中ku表示用户私钥;
步骤2.1.4:用户在请求属性凭证的同时,将N,ru作为证据发送给颁发者;
步骤2.1.5:颁发者计算挑战,计算挑战关系:挑战cl为证明计算,挑战c’为验证方计算。
步骤2.1.6:颁发者计算检验N’与N是否相等,若相等则进行步骤2.2;否则,颁发者向用户发送无法通过认证的通知,重新进行步骤2.1,或直接退出;
步骤2.2:颁发者颁发凭证给用户;
步骤2.2.1:对于属性m∈Zp,检验m+x+yr=0是否成立,颁发者随机选择作为属性秘钥;如果该等式不成立,则执行步骤2.2.2;否则重新执行步骤2.2.1;其中m为属性值;r表示签名的属性密钥,x与y表示权威机构私钥,Zp表示0到p-1的整数;
步骤2.2.2:颁发者计算W表示签名中除属性密匙r的部分,g1是G1中的元素,G1表示阶数为p的循环群,p为素数;
步骤2.3:颁发者生成包含签名(W,r)的凭证,并将该凭证发送给用户。
步骤2.4:用户验证签名是否有效;用户接收到包含签名(W,r)的凭证,验证是否成立,成立则说明签名正确,接受凭证;否则说明签名有误,丢弃该凭证,其中,/>g2为G2中的元素,G1,G2,Gt均表示阶数为p的循环群,p为素数;e表示双线性映射,z表示Gt中的元素,值为e(g1,g2);
步骤3:凭证出示协议执行阶段,在用户与服务提供方之间执行,使用RandSig算法对签名进行随机化,来保证签名的不可链接性,该算法输入公共参数params、签名σ、权威机构的公钥(U,V),输出随机化后的签名σ、承诺Cm以及其证据proofku。Check用于检验随机化后的签名和承诺是否有效,该算法输入公共参数params、随机化后的签名σ、承诺Cm及证据proofku,输出签名的验证结果true/false。
步骤3.1:用户对承诺签名进行随机化操作,并证明某个随机化后的承诺隐藏着属性值;
步骤3.1.1:用户在接收到服务提供方的策略后,查看自己的是否满足访问策略,如果满足访问策略,则执行步骤3.1.2;否则,退出该协议结束;
步骤3.1.2:对于签名(W,r),用户选择随机数计算W'=Wr′其中W’为签名W进行随机化,C1为签名r随机化后的承诺;
步骤3.1.3:用户选择随机数计算/>Cattr表示隐藏有属性值的承诺;
步骤3.1.4:用户随机选择w1,w2,w3,w4,w5,w6,w7,计算 其中,w1,w2,w3,w4,w5,w6,w7是从/>中选择的随机数,M1,M2和M3分别是C1的承诺同构、Cattr的承诺同构、辅助承诺同构;
步骤3.1.5:用户计算承诺值c=H(g2,U,V,M1,M2,M3,C1,Cattr);
步骤3.1.6:用户计算响应r1=w1-c/r',r2=w2-mc/r',r3=w3-cr/r',r4=w4-cr',r5=w5-cr”,r6=w6-cm,r7=w7-(r”+r)c;
步骤3.1.7:用户将C1,Cattr,M1,M2,M3,r1,r2,r3,r4,r5,r6,r7,W’发送给服务提供方;
步骤3.2:服务提供方验证用户的承诺以及签名;
步骤3.2.1:服务提供方首先验证e(W',C1)=z是否成立,成立则进行步骤3.2.2,否则拒绝用户访问,则重新进行步骤3.2或直接退出;
步骤3.2.2:服务提供方计算挑战,c'=H(g2,U,V,M1,M2,M3,C1,Cattr);
步骤3.2.3:服务提供方验证下列等式是否均成立:
若上述等式成立,则用户通过服务提供方的验证,说明承诺Cattr中隐藏了属性值m;否则服务提供方发送m证失败通知。
步骤4:属性证明协议阶段,通过进行属性证明协议,用户向服务提供方证明,相应承诺中隐藏的属性值满足服务提供方的要求,属性证明协议包括如下子协议:区间属性证明协议、“或”关系的属性证明协议以及“非”关系的属性证明协议。上述属性证明协议中,用户和服务提供方除已知公共参数外params外,还已知权威机构的公钥(U,V),以及凭证出示协议中使用的Cattr
步骤4.1:“或”关系属性证明协议阶段,通过执行“或”关系的属性证明协议,可以使得服务提供商不知道用户的属性m的值的具体内容,所以使用户的隐私能够得到保护;包括以下步骤:
步骤4.1.1:用户生成逻辑关系“或”的相关证明;
步骤4.1.1.1:服务提供方设置策略属性m的值的集合ATTR=(m1,m2,m3,...,mn),遍历集合ATTR中的元素,对于mi∈ATTR,1≤i≤n,如果属性关系满足m≠mi,随机选择计算承诺同构/>否则,令k=i,作为安全参数;
步骤4.1.1.2:随机选取计算集合ATTR中第k个元素的承诺同构:Mk=Vw
步骤4.1.1.3:计算协议的挑战c=H(g2,V,Cattr,M1,M2,M3,...,Mn);
步骤4.1.1.4:计算第k个元素的挑战ck=c-∑1≤i≤n∧i≠kci
步骤4.1.1.5:计算第k个元素的响应rk=ckrattr+w;rattr是属性值承诺Cattr中隐藏的另一个秘密值;
步骤4.1.1.6:将M1,M2,...,Mn,r1,r2,...,rn,c1,c2,...,cn-1作为凭证发送给服务提供方;
步骤4.1.2:服务提供方验证用户属性是否满足给定的要求;
步骤4.1.2.1:计算协议的挑战c'=H(g2,V,Cattr,M1,M2,M3,...,Mn);
步骤4.1.2.2:计算第n个挑战cn=c'-∑1≤i≤n-1ci
步骤4.1.2.3:检验下面n个等式是否成立,若上述n个等式都成立,则允许用户通过验证;否则,通知用户认证失败;
步骤4.2:“非”关系属性证明协议阶段,给定某个值a,通过“非”关系的属性证明协议,用户向服务提供方证明承诺中隐藏的属性m≠a,而不用揭露具体的属性值;在该协议的实现中,用户构造m-a的承诺C,并用C作为底数构建包含秘密m-a逆元的新承诺;具体包括以下步骤:
步骤4.2.1:用户生成“非”关系的相关属性证据;
步骤4.2.1.1:计算
步骤4.2.1.2:随机选择计算承诺的同构/>
步骤4.2.1.3:计算挑战c=H(g2,V,Cattr,M);
步骤4.2.1.4:计算应答r1=w1-c/(m-a),r2=w2+crattr/(m-a);
步骤4.2.1.5:将r1,r2,M发送给服务提供方;
步骤4.2.2:服务提供方验证相关证明;
步骤4.2.2.1:计算挑战c'=H(g2,V,Cattr,M);
步骤4.2.2.2:验证是否成立,若上述等式成立,则允许用户通过验证;否则,通知用户验证失败;
步骤4.3:区间属性证明协议公共参数有:其中,G1表示一个乘法循环群,p是一个大素数,代表群G1的阶数,/>表示模p的正整数组成的集合,H表示哈希函数,其定义为h:G1→{0,1}*,g,h分别为群G1上两个不同的生成元,max,min是两个整数,令|·|表示元素按比特分解后的长度,则max,min满足min<max,|max-min|≤|p|-2两个条件,b是与秘密值进行比较的值,b∈[min,max];具体包括以下步骤:
步骤4.3.1:证明方生成证明,将证明发送给验证方;
步骤4.3.1.1:计算x=m-b;如果x<0,放弃执行协议;否则,执行下一步;
步骤4.3.1.2:随机选取并计算承诺C的同构/>承诺C为Cattr
步骤4.3.1.3:计算挑战c0=H(C||M),计算响应r1=w1-mc0,r2=w2-rc0;M为承诺C的同构;
步骤4.3.1.4:计算Cx=cg-b;Cx是m-b的承诺;
步骤4.3.1.5:计算n=|max-min|以及x按比特分解后的每一位x1,x2,...,xn;n是max-min的比特分解后的位数;
步骤4.3.1.6:随机选择并计算每一位比特的承诺:/>
步骤4.3.1.7:取i∈[1,n],如果xi=0,i∈[1,n],则执行步骤4.1.8-4.1.9;否则,执行步骤步骤4.3.1.10-步骤4.3.1.11;完成对所有i的操作后执行步骤步骤4.3.1.12;
步骤4.3.1.8:随机选择计算/>ci1,ri1,wi0,Mi1,Mi0分别为第i位为1的挑战、第i位为1的应答、计算第i位为0承诺同构的随机数、第i位为1的承诺同构、第i位为0的承诺同构;
步骤4.3.1.9:分别计算ci=H(Ci||Mi0||Mi1),ci0=ci-ci1,ri0=ci0yi+wi0;ci表示第i位的挑战,ci0,ri0,都分别表示第i位为0的应答;
步骤4.3.1.10:随机选择计算/>
步骤4.3.1.11:分别计算ci=H(Ci||Mi0||Mi1),ci1=ci-ci0,ri1=ci1yi+wi1
步骤4.3.1.12:计算A是凭证出示步骤中rattr的承诺,z,r都分别表示计算应答的中间参数,/>是位比特的承诺,rattr为Cattr的秘密;
步骤4.3.1.13:随机选择计算B=hw,c=H(A||B),rB=w-cz;w为随机数,B是rattr的承诺同构,为的承诺同构的计算rB表示响应;
步骤4.3.1.14:对i∈[1,n],将M,r1,r2,Ci,Mi0,Mi1,ci0,ri0,ri1,B,rB发送给验证方;
步骤4.3.2:验证方对接收到的证明进行验证;
步骤4.3.2.1:计算c'0=H(C||M),并验证是否成立:成立则继续执行协议,否则验证失败;c'0表示验证方计算的与步骤5.3.1.3中对应的挑战,r1和r2是用户响应;
步骤4.3.2.2:验证Ci的个数n是否同时满足n≤|p|-2以及n≤|max-min|:满足则将继续执行协议,否则验证失败;
步骤4.3.2.3:对i∈[1,n],计算c′i=(Ci||Mi0||Mi1),c′i1=c′i-ci0,并验证以及/>是否同时成立:同时成立则继续执行协议,否则验证失败;其中ci'为第i位的挑战,c′i1为第i位为1的挑战;
步骤4.3.2.4:计算C'x=Cg-bc'=H(A'||B),并验证/>是否成立:成立则验证成功,否则验证失败;C'x为验证方计算的m-b的承诺;A'为验证方计算的rattr的承诺;c'验证方计算的挑战;B为步骤4.3.1中4.3.1.13发送的参数。
采用上述技术方法所产生的有益效果在于:
本发明提供一种基于可验证声明的隐私保护属性认证系统及方法,对用户隐私进行保护的场景,通过对可验证声明进行扩展,并将其作为本协议的凭证格式,使其能更好保护用户隐私。并且基于属性的认证与普通的身份认证相比,可以提供更细粒度的访问控制,支持访问控制策略的多样化与差异化,能够尽可能少地暴露用户信息,防止用户信息泄露,切实保障用户的隐私安全。通过使用零知识证明技术,在凭证颁发协议中使得用户私钥没有揭露;在凭证出示协议中使得随机化后的BB签名及属性承诺具有匿名性、不可链接性等特点。
附图说明
图1为本发明具体实施方式的凭证颁发协议流程图;
图2为本发明具体实施方式的凭证出示协议流程图;
图3为本发明具体实施方式的属性证明协议流程图;
图4为本发明具体实施方式的凭证出示协议中可验证声明的签名示意图;
图5为本发明具体实施方式的协议初始化阶段中A类型的配置文件图;
图6为本发明具体实施方式的凭证颁发协议中的重要算法流程图;
其中,图a为凭证颁发CommitKey生成证明算法流程,b为Issue签名输出算法流程;
图7为本发明具体实施方式的凭证出示协议中的重要算法流程图;
其中,图a为凭证出示Randsig算法流程图,b为凭证出示Check算法流程图;
图8为本发明具体实施方式的属性值区间证明协议中的Prove和Verify算法流程图;
其中,图a为Prove算法流程图,b为Verify算法流程图;
图9为本发明具体实施方式的属性值区间证明协议中的IntervalProve算法流程图;
图10为本发明具体实施方式的属性值区间证明协议中的IntervalVerify算法流程图;
图11为本发明具体实施方式的“或”关系属性证明算法流程图;
其中,图a为“或”ProveOr证明算法流程图,b为“或”VerifyOr证明算法流程图;
图12为本发明具体实施方式的“非”关系属性证明算法流程图;
其中,图a为“非”ProveOr证明算法流程图,b为“非”VerifyOr证明算法流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施方式是将基于可验证声明的属性认证协议用于用户之间的隐私保护。本发明基于BB签名以及Pedersen承诺机制设计并实现了满足隐私保护的属性认证。
一方面,一种基于可验证声明的隐私保护属性认证系统,包括:用户、身份提供方、服务提供方;
所述用户是发起消息请求的一方;
所述服务提供方根据所述身份提供方的响应信息来决定是否对用户提供服务;
所述身份提供方提供身份管理认证服务,其具体包含身份信息、属性信息、证书的生成、修改;
现实应用中,身份提供方作为权威机构,得到来自用户以及服务提供方的信任。然而,身份提供方并不信任用户,身份提供方在给用户颁发可验证声明形式的凭证时,需要与用户执行相应的协议进行交互,确认用户身份后才继续进行凭证的颁发;而用户与服务提供方之间,则是互不信任的关系,用户不愿暴露过多的属性信息给服务提供方,服务提供方也不相信用户提供的属性信息是正确的,所以用户与服务提供方之间执行协议:通过执行凭证出示协议,服务提供方相信用户拥有身份提供方颁发的凭证;通过执行不同形式的属性证明协议,服务提供方只知道凭证中的属性值满足策略要求的同时,无法得到关于该属性值的更多信息;这样,既满足了用户保护属性信息隐私的需求,服务提供方也对用户的属性信息进行了认证。
权威机构验证用户身份确认用户的身份无误后,签发相应的凭证发送给用户;
凭证出示阶段功能包括:一是允许用户对凭证中的签名进行随机化,防止服务提供方通过相同的签名关联到用户;二是使服务提供方可以确认属性签名的有效性;三是使用零知识证明技术,证明随机化的承诺值中仍然隐藏着原来的秘密,便于进行后续的属性证明。所述属性证明阶段的功能是:用户向服务提供方证明,相应承诺中隐藏的属性值满足服务提供方的要求;
另一方面,一种基于可验证声明的隐私保护属性认证方法,基于前述一种基于可验证声明的隐私保护属性认证系统实现,具体包括以下步骤:
所述认证协议共分为初始化、凭证颁发、凭证出示、属性证明四个阶段,其中,属性证明协议还包括如下子协议:属性值区间证明协议、“或”关系的属性证明协议以及“非”关系的属性证明协议。各阶段执行算法如下所述。
步骤1:初始化阶段,执行Setup算法与KeyGen算法;权威机构执行Setup算法输入安全参数k,输出公共参数params;KeyGen算法在权威机构和用户两个实体中执行,该算法输入公共参数,分别输出它们各自的公私钥其中,/>仅保存在权威机构,不对服务提供方公开;其中(U,V)为权威机构的公钥,/>表示用户公钥,ku表示用户私钥,(x,y)为权威机构的私钥;
步骤2:凭证颁发协议执行阶段,涉及CommitKey、Issue、Obtain三个算法。使用CommitKey算法使用户证明算法输入用户私钥ku,输出私钥证据proofku,Issue算法检验用户是否合法,输入公共参数params、用户的属性m、用户公钥权威机构的私钥(x,y),输出相应签名σ。Obtain算法用于检验签名的有效性,输入公共参数params、签名σ以及权威机构的公钥(U,V),输出签名的验证结果true/false;
凭证颁发协议阶段在权威机构与用户之间运行,在权威机构验证用户身份时,通过用户公钥对用户私钥进行零知识证明进行的,这个过程没有暴露用户的私钥ku,权威机构确认用户的身份无误后,签发相应的凭证发送给用户,具体包括以下步骤:
步骤2.1:用户与颁发者进行身份认证;
步骤2.1.1:用户随机生成计算N=hn;其中/>是与素数p互素的所有数的集合,n表示随机数,N是用户私钥承诺的同构;
步骤2.1.2:用户计算挑战,计算挑战其中h是公共参数,/>表示用户公钥;H()含义为哈希函数;
步骤2.1.3:用户计算响应,ru=n-kucl;其中ku表示用户私钥;
步骤2.1.4:用户在请求属性凭证的同时,将N,ru作为证据发送给颁发者;
步骤2.1.5:颁发者计算挑战,计算挑战关系:挑战cl为证明计算,挑战c’为验证方计算。
步骤2.1.6:颁发者计算检验N’与N是否相等,若相等则进行步骤2.2;否则,颁发者向用户发送无法通过认证的通知,重新进行步骤2.1,或直接退出;
步骤2.2:颁发者颁发凭证给用户;
步骤2.2.1:对于属性m∈Zp,检验m+x+yr=0是否成立,颁发者随机选择作为属性秘钥;如果该等式不成立,则执行步骤2.2.2;否则重新执行步骤2.2.1;其中m为属性值;r表示签名的属性密钥,x与y表示权威机构私钥,Zp表示0到p-1的整数;
步骤2.2.2:颁发者计算W表示签名中除属性密匙r的部分,g1是G1中的元素,G1表示阶数为p的循环群,p为素数;
步骤2.3:颁发者生成包含签名(W,r)的凭证,并将该凭证发送给用户。
步骤3:用户验证签名是否有效;用户接收到包含签名(W,r)的凭证,验证是否成立,成立则说明签名正确,接受凭证;否则说明签名有误,丢弃该凭证,其中,/>g2为G2中的元素,G2表示阶数为p的循环群,p为素数;e表示双线性映射,z表示Gt中的元素,值为e(g1,g2);
步骤3:凭证出示协议执行阶段,在用户与服务提供方之间执行,包含RandSig算法与Check算法。RandSig算法用于对签名进行随机化,来保证签名的不可链接性,该算法输入公共参数params、签名σ、权威机构的公钥(U,V),输出随机化后的签名σ、承诺Cm以及其证据proofku。Check用于检验随机化后的签名和承诺是否有效,该算法输入公共参数params、随机化后的签名σ、承诺Cm及证据proofku,输出签名的验证结果true/false。
步骤3.1:用户对承诺签名进行随机化操作,并证明某个随机化后的承诺隐藏着属性值;
步骤3.1.1:用户在接收到服务提供方的策略后,查看自己的是否满足访问策略,如果满足访问策略,则执行步骤3.1.2;否则,退出该协议结束;
步骤3.1.2:对于签名(W,r),用户选择随机数计算W'=Wr′其中W’为签名W进行随机化,C1为签名r随机化后的承诺。
步骤3.1.3:用户选择随机数计算/>Cattr表示隐藏有属性值的承诺;
步骤3.1.4:用户随机选择w1,w2,w3,w4,w5,w6,w7,计算 其中,w1,w2,w3,w4,w5,w6,w7是从/>中选择的随机数,M1,M2和M3分别是C1的承诺同构、Cattr的承诺同构、辅助承诺同构;
步骤3.1.5:用户计算承诺值c=H(g2,U,V,M1,M2,M3,C1,Cattr);
步骤3.1.6:用户计算响应r1=w1-c/r',r2=w2-mc/r',r3=w3-cr/r',r4=w4-cr',r5=w5-cr”,r6=w6-cm,r7=w7-(r”+r)c;
步骤3.1.7:用户将C1,Cattr,M1,M2,M3,r1,r2,r3,r4,r5,r6,r7,W’发送给服务提供方;
步骤3.2:服务提供方验证用户的承诺以及签名;
步骤3.2.1:服务提供方首先验证e(W',C1)=z是否成立,成立则进行步骤3.2.2,否则拒绝用户访问,则重新进行步骤3.2或直接退出;
步骤3.2.2:服务提供方计算挑战,c'=H(g2,U,V,M1,M2,M3,C1,Cattr);
步骤3.2.3:服务提供方验证下列等式是否均成立:
若上述等式成立,则用户通过服务提供方的验证,说明承诺Cattr中隐藏了属性值m;否则服务提供方发送m证失败通知,其中凭证出示协议中可验证声明的签名示意图如图4所示;
步骤4:属性证明协议阶段,通过进行属性证明协议,用户向服务提供方证明,相应承诺中隐藏的属性值满足服务提供方的要求,属性证明协议包括如下子协议:区间属性证明协议、“或”关系的属性证明协议以及“非”关系的属性证明协议。上述属性证明协议中,用户和服务提供方除已知公共参数外params外,还已知权威机构的公钥(U,V),以及凭证出示协议中使用的Cattr
步骤4.1:“或”关系属性证明协议阶段,通过执行“或”关系的属性证明协议,可以使得服务提供商不知道用户的属性m的值的具体内容,所以使用户的隐私能够得到保护;包括以下步骤:
步骤4.1.1:用户生成逻辑关系“或”的相关证明;
步骤4.1.1.1:服务提供方设置策略属性m的值的集合ATTR=(m1,m2,m3,...,mn),遍历集合ATTR中的元素,对于mi∈ATTR,1≤i≤n,如果属性关系满足m≠mi,随机选择计算承诺同构/>否则,令k=i,作为安全参数;
步骤4.1.1.2:随机选取计算集合ATTR中第k个元素的承诺同构:Mk=Vw
步骤4.1.1.3:计算协议的挑战c=H(g2,V,Cattr,M1,M2,M3,...,Mn);
步骤4.1.1.4:计算第k个元素的挑战ck=c-∑1≤i≤n∧i≠kci
步骤4.1.1.5:计算第k个元素的响应rk=ckrattr+w;rattr是属性值承诺Cattr中隐藏的另一个秘密值;
步骤4.1.1.6:将M1,M2,...,Mn,r1,r2,...,rn,c1,c2,...,cn-1作为凭证发送给服务提供方;
步骤4.1.2:服务提供方验证用户属性是否满足给定的要求;
步骤4.1.2.1:计算协议的挑战c'=H(g2,V,Cattr,M1,M2,M3,...,Mn);
步骤4.1.2.2:计算第n个挑战cn=c'-∑1≤i≤n-1ci
步骤4.1.2.3:检验下面n个等式是否成立,若上述n个等式都成立,则允许用户通过验证;否则,通知用户认证失败;
步骤4.2:“非”关系属性证明协议阶段,给定某个值a,通过“非”关系的属性证明协议,用户向服务提供方证明承诺中隐藏的属性m≠a,而不用揭露具体的属性值;在该协议的实现中,用户构造m-a的承诺C,并用C作为底数构建包含秘密m-a逆元的新承诺;具体包括以下步骤:
步骤4.2.1:用户生成“非”关系的相关属性证据;
步骤4.2.1.1:计算
步骤4.2.1.2:随机选择计算承诺的同构/>
步骤4.2.1.3:计算挑战c=H(g2,V,Cattr,M);
步骤4.2.1.4:计算应答r1=w1-c/(m-a),r2=w2+crattr/(m-a);
步骤4.2.1.5:将r1,r2,M发送给服务提供方;
步骤4.2.2:服务提供方验证相关证明;
步骤4.2.2.1:计算挑战c'=H(g2,V,Cattr,M);
步骤4.2.2.2:验证是否成立,若上述等式成立,则允许用户通过验证;否则,通知用户验证失败;
步骤4.3:区间属性证明协议公共参数有:其中,G1表示一个乘法循环群,p是一个大素数,代表群G1的阶数,/>表示模p的正整数组成的集合,H表示哈希函数,其定义为H:G1→{0,1}*,g,h分别为群G1上两个不同的生成元,max,min是两个整数,令|·|表示元素按比特分解后的长度,则max,min满足min<max,|max-min|≤|p|-2两个条件,b是与秘密值进行比较的值,b∈[min,max];具体包括以下步骤:
步骤4.3.1:证明方生成证明,将证明发送给验证方;
步骤4.3.1.1:计算x=m-b;如果x<0,放弃执行协议;否则,执行下一步;
步骤4.3.1.2:随机选取并计算承诺C的同构/>承诺C为Cattr
步骤4.3.1.3:计算挑战c0=H(C||M),计算响应r1=w1-mc0,r2=w2-rc0;M为承诺C的同构;
步骤4.3.1.4:计算Cx=cg-b;Cx是m-b的承诺;
步骤4.3.1.5:计算n=|max-min|以及x按比特分解后的每一位x1,x2,...,xn;n是max-min的比特分解后的位数;
步骤4.3.1.6:随机选择并计算每一位比特的承诺:/>
步骤4.3.1.7:取i∈[1,n],如果xi=0,i∈[1,n],则执行步骤4.1.8-4.1.9;否则,执行步骤步骤4.3.1.10-步骤4.3.1.11;完成对所有i的操作后执行步骤步骤4.3.1.12;
步骤4.3.1.8:随机选择计算/>ci1,ri1,wi0,Mi1,Mi0分别为第i位为1的挑战、第i位为1的应答、计算第i位为0承诺同构的随机数、第i位为1的承诺同构、第i位为0的承诺同构;
步骤4.3.1.9:分别计算ci=H(Ci||Mi0||Mi1),ci0=ci-ci1,ri0=ci0yi+wi0;ci表示第i位的挑战,ci0,ri0,都分别表示第i位为0的应答;
步骤4.3.1.10:随机选择计算/>
步骤4.3.1.11:分别计算ci=H(Ci||Mi0||Mi1),ci1=ci-ci0,ri1=ci1yi+wi1
步骤4.3.1.12:计算A是凭证出示步骤中rattr的承诺,z,r都分别表示计算应答的中间参数,/>是位比特的承诺,rattr为Cattr的秘密;
步骤4.3.1.13:随机选择计算B=hw,c=H(A||B),rB=w-cz;w为随机数,B是rattr的承诺同构,为的承诺同构的计算rB表示响应;
步骤4.3.1.14:对i∈[1,n],将M,r1,r2,Ci,Mi0,Mi1,ci0,ri0,ri1,B,rB发送给验证方;
步骤4.3.2:验证方对接收到的证明进行验证;
步骤4.3.2.1:计算c'0=H(C||M),并验证是否成立:成立则继续执行协议,否则验证失败;c'0表示验证方计算的与步骤5.3.1.3中对应的挑战,r1和r2是用户响应;
步骤4.3.2.2:验证Ci的个数n是否同时满足n≤|p|-2以及n≤|max-min|:满足则将继续执行协议,否则验证失败;
步骤4.3.2.3:对i∈[1,n],计算c′i=(Ci||Mi0||Mi1),c′i1=c′i-ci0,并验证以及/>是否同时成立:同时成立则继续执行协议,否则验证失败;其中c′i为第i位的挑战,c′i1为第i位为1的挑战;
步骤4.3.2.4:计算C'x=Cg-bc'=H(A'||B),并验证/>是否成立:成立则验证成功,否则验证失败;C'x为验证方计算的m-b的承诺;A'为验证方计算的rattr的承诺;c'验证方计算的挑战;B为步骤4.3.1中4.3.1.13发送的参数。
该基于可验证声明的属性认证协议依据功能可划分为三部分,凭证颁发协议:如图1、凭证出示协议:如图2、属性证明协议:如图3。其中属性证明协议涉及子协议有:属性值区间证明协议、“或”关系的属性证明协议以及“非”关系的属性证明协议。凭证颁发协议阶段主要的功能是权威机构验证用户身份权威机构确认用户的身份无误后,签发相应的凭证发送给用户。凭证出示协议阶段主要的功能有:一是允许用户对凭证中的签名进行随机化,防止服务提供方通过相同的签名关联到用户;二是使服务提供方可以确认属性签名的有效性;三是使用零知识证明技术,证明随机化的承诺值中仍然隐藏着原来的秘密,便于进行后续的属性证明。属性证明协议阶段主要的功能是用户可以向服务提供方证明,相应承诺中隐藏的属性值满足服务提供方的要求。
本实施例中基于上述描述过程,对基于可验证声明的隐私保护属性认证协议进行设计与实现。本协议在Windows平台上开发实现,算法的开发均采用Java语言及JPBC密码库实现,编程工具为Eclipse。
协议的初始化阶段实现包括三个算法:协议建立(Setup)算法、以及权威机构与用户的密钥生成(KeyGen)算法。
协议建立算法需配置协议所需的密码学环境,然后生成协议所需公共参数。密码学环境的配置,需要先在JPBC密码库中选择相应类型的椭圆曲线。JPBC密码库将配对分为类型A、类型A1、类型D、类型E、类型F、类型G六类。类型A、类型D和类型F的配对是目前应用较为广泛的配对。其中,类型A的配对运算速度最快,类型D和类型F的配对虽然参数较短,但运算速度不快。本发明选用类型A的椭圆曲线来进行相关实现,其配置文件如图5所示;
通过使用配对工厂(PairingFactory)的类方法,可以加载相关配置文件,获取配对(pairing)对象,并由配对(pairing)对象生成相应参数。各参数及含义如表1所示,除g1外均为公共参数params。
表1协议建立的参数说明
在密钥生成算法中,输入公共参数,分别为用户与权威机构生成公私钥。该过程涉及的参数如表2所示。
表2密钥生成参数说明
凭证颁发协议的实现,包含密钥承诺(CommitKey)、凭证颁发(Issue)、凭证获取(Obtain)三个函数。该协议涉及的参数如表3所示。
表3凭证颁发参数说明
在密钥承诺函数中,用户会通过零知识证明,生成私钥的承诺同构,并通过承诺同构等信息,在不泄露私钥的情况下,证明自己是公钥Cku所对应私钥ku的持有者。在凭证颁发函数中,权威机构先验证用户是否持有私钥ku。若用户确实持有上述私钥,权威机构会生成相应属性的签名σ:(W,r),并将含有签名的凭证发送给用户。在凭证获取函数中,用户收到签名σ后会通过双线性映射等运算进行签名合法性的检验。部分重要的算法流程图如图6所示。
凭证出示协议的实现包含随机化签名(Randsig)与签名检验(Check)两个函数。该协议涉及的参数如表4所示。
表4凭证出示参数说明
在随机化签名算法中,首先会用随机数r′随机化签名得到σ′,用随机数r″构造隐藏有属性值m的承诺Cattr,然后构造承诺同构M1,M2,M3。其中,M1作为用户知道C1中隐藏秘密的证据,M2作为用户知道Cattr中隐藏秘密的证据,M3作为Cattr中底数U上隐藏有秘密值1的证据。在签名检验函数中,会检验随机化后的签名是否满足要求,如满足要求,对上述证据进行验证。算法流程如图7所示。
本实施例中属性证明协议的实现:
属性证明协议中属性值区间证明协议的实现涉及如下公共参数:params=(p,G1,ZP,H,g,h,max,min,b),还涉及参数m∈ZP,C=gmhr∈G1。m和r作为承诺C的打开信息。协议内容划分至Prove()、Verify()、ProveInterval()和VerifyInterval()四个函数中。
Prove函数输入公共参数params、承诺C和秘密m,r,输出证据P(M,r1,r2)。Verify函数输入公共参数params、承诺C和证据P(M,r1,r2),输出验证结果true/false;ProveInterval函数输入公共参数params、承诺C、秘密m,r以及大于等于标记ge,输出证据Pinterval=(Ci,Mi0,Mi1,ci0,ri0,ri1,B,rB);VeirfyInterval函数输入公共参数params、承诺C、证据Pinterval=(Ci,Mi0,Mi1,ci0,ri0,ri1,B,rB)和大于等于标记ge,输出验证结果true/false。
对于证明方而言,如图8所示,先调用Prove函数生成证据P,再调用ProveInterval函数生成Pinterval,并将P与Pinterval发送给验证方。对于验证方而言,会先调用Verify函数,如果函数返回结果为false,就结束执行,说明证明方不知道承诺中的秘密;否则,接着执行VeirfyInterval函数,该函数返回结果为true则说明证明方的秘密符合要求,返回结果为flase说明证明方的秘密不符合要求。上述函数流程图如8,9,10所示。
如图9所示,IntervalProve执行过程中,首先根据大于等于标记ge计算属性值与策略值之差x及其承诺Cx;然后在x不为负数时,调用numofbits函数得到区间范围所占的比特数n,调用decompose函数得到x比特分解后的每一位xi,并计算每一位比特分解xi的承诺,根据xi值的不同,分别计算xi值为0和1时的承诺同构与应答;最后计算整体的承诺同构B、挑战c以及应答rB
如图10所示,在IntervalVerify执行过程中,会先调用numofbits函数得到区间范围m及证据被允许的最大长度k,并检验证据长度n是否满足要求;如n满足要求,接着根据大于等于标记ge计算差值承诺Cx,并计算每一位xi的挑战,对每一位xi的证据进行处理与验证,若每一位xi的证据都验证成功,接着计算整体挑战c,并对整体证据进行验证,根据验证结果进行相应输出。
属性证明协议中“或”关系属性证明的协议实现,包含相关的证明(ProveOr)与验证(VerifyOr)算法,算法流程如图11所示,协议涉及的参数如表5所示。
表5“或”关系属性证明参数说明
在该协议的证明算法中,首先生成非m值的挑战、响应与承诺同构,然后用随机数w构造m的承诺同构,并用所有承诺同构生成挑战c,再构造出m的挑战和响应。最后,前n-1个挑战、以及所有的承诺同构和响应将作为证据返回。该协议的验证算法中,将先构造出第n个挑战,再对上述证据进行验证。
属性证明协议中“非”关系属性证明的协议实现,包含相关的证明(ProveNot)与验证(VerifyNot)算法。该协议涉及的参数如表6所示。
表6“非”关系属性证明参数说明
在该协议的证明算法中,先计算隐藏有m-a秘密的承诺C,然后以C和V为底,生成承诺g2的同构M,最后生成协议所需的挑战与应答。其中,M用于构造用户知道秘密m-a的逆。该协议的验证算法会检验上述证据的正确性。算法流程图如图12所示。
实验结果中部分算法的运行时间如表7所示。
表7不同算法的运行时间
可以看出,上述算法的运行时间都在200ms以内,可以满足实际应用的需要。而ProveOr和VerifyOr算法的运行时间跟策略中包含的元素值个数n有关,其运行时间与n的关系如表8所示。
表8ProveOr与VerifyOr的运行时间
/>

Claims (4)

1.一种基于可验证声明的隐私保护属性认证方法,其特征在于,包括以下步骤:
步骤1:初始化阶段,权威机构执行Setup算法输入安全参数k,输出公共参数params;KeyGen算法在权威机构和用户两个实体中执行,该算法输入公共参数,分别输出它们各自的公私钥其中,/>仅保存在权威机构,不对服务提供方公开;其中(U,V)为权威机构的公钥,/>表示用户公钥,ku表示用户私钥,(x,y)为权威机构的私钥;
步骤2:凭证颁发协议执行阶段,使用CommitKey算法使用户证明算法输入用户私钥ku,输出私钥证据proofku,Issue算法检验用户是否合法,输入公共参数params、用户的属性m、用户公钥权威机构的私钥(x,y),输出相应签名σ,使用Obtain算法检验签名的有效性,输入公共参数params、签名σ以及权威机构的公钥(U,V),输出签名的验证结果true/false;
凭证颁发协议阶段在权威机构与用户之间运行,在权威机构验证用户身份时,通过用户公钥对用户私钥进行零知识证明进行的,这个过程没有暴露用户的私钥ku,权威机构确认用户的身份无误后,签发相应的凭证发送给用户;
步骤3:凭证出示协议执行阶段,在用户与服务提供方之间执行,使用RandSig算法用于对签名进行随机化,来保证签名的不可链接性,该算法输入公共参数params、签名σ、权威机构的公钥(U,V),输出随机化后的签名σ、承诺Cm以及其证据proofku,Check用于检验随机化后的签名和承诺是否有效,该算法输入公共参数params、随机化后的签名σ、承诺Cm及证据proofku,输出签名的验证结果true/false;
步骤4:属性证明协议阶段,通过进行属性证明协议,用户向服务提供方证明,相应承诺中隐藏的属性值满足服务提供方的要求,进行验证;
所述属性证明协议包括如下子协议:区间属性证明协议、“或”关系的属性证明协议以及“非”关系的属性证明协议;在上述属性证明协议中,用户和服务提供方除已知公共参数外params外,还已知权威机构的公钥(U,V),以及凭证出示协议中使用的Cattr,Cattr表示隐藏有属性值的承诺;
步骤4.1:“或”关系属性证明协议阶段,通过执行“或”关系的属性证明协议,可以使得服务提供商不知道用户的属性m的值的具体内容,所以使用户的隐私能够得到保护;包括以下步骤:
步骤4.1.1:用户生成逻辑关系“或”的相关证明;
步骤4.1.1.1:服务提供方设置策略属性m的值的集合ATTR=(m1,m2,m3,...,mn),遍历集合ATTR中的元素,对于mi∈ATTR,1≤i≤n,如果属性关系满足m≠mi,随机选择计算承诺同构/>否则,令k=i,作为安全参数;
步骤4.1.1.2:随机选取计算集合ATTR中第k个元素的承诺同构:Mk=Vw
步骤4.1.1.3:计算协议的挑战c=H(g2,V,Cattr,M1,M2,M3,...,Mn);
步骤4.1.1.4:计算第k个元素的挑战ck=c-∑1≤i≤n∧i≠kci
步骤4.1.1.5:计算第k个元素的响应rk=ckrattr+w;rattr是属性值承诺Cattr中隐藏的另一个秘密值;
步骤4.1.1.6:将M1,M2,...,Mn,r1,r2,...,rn,c1,c2,...,cn-1作为凭证发送给服务提供方;
步骤4.1.2:服务提供方验证用户属性是否满足给定的要求;
步骤4.1.2.1:计算协议的挑战c'=H(g2,V,Cattr,M1,M2,M3,...,Mn);
步骤4.1.2.2:计算第n个挑战cn=c'-∑1≤i≤n-1ci
步骤4.1.2.3:检验下面n个等式是否成立,若上述n个等式都成立,则允许用户通过验证;否则,通知用户认证失败;
步骤4.2:“非”关系属性证明协议阶段,给定某个值a,通过“非”关系的属性证明协议,用户向服务提供方证明承诺中隐藏的属性m≠a,而不用揭露具体的属性值;在该协议的实现中,用户构造m-a的承诺C,并用C作为底数构建包含秘密m-a逆元的新承诺;具体包括以下步骤:
步骤4.2.1:用户生成“非”关系的相关属性证据;
步骤4.2.1.1:计算
步骤4.2.1.2:随机选择计算承诺的同构/>
步骤4.2.1.3:计算挑战c=H(g2,V,Cattr,M);
步骤4.2.1.4:计算应答r1=w1-c/(m-a),r2=w2+crattr/(m-a);
步骤4.2.1.5:将r1,r2,M发送给服务提供方;
步骤4.2.2:服务提供方验证相关证明;
步骤4.2.2.1:计算挑战c'=H(g2,V,Cattr,M);
步骤4.2.2.2:验证是否成立,若上述等式成立,则允许用户通过验证;否则,通知用户验证失败;
步骤4.3:区间属性证明协议公共参数有:p,G1,H,g,h,max,min,b,其中,G1表示一个乘法循环群,p是一个大素数,代表群G1的阶数,/>表示模p的正整数组成的集合,H表示哈希函数,其定义为H:G1→{0,1}*,g,h分别为群G1上两个不同的生成元,max,min是两个整数,令|·|表示元素按比特分解后的长度,则max,min满足min<max,|max-min|≤|p|-2两个条件,b是与秘密值进行比较的值,b∈[min,max];具体包括以下步骤:
步骤4.3.1:证明方生成证明,将证明发送给验证方;
步骤4.3.1.1:计算x=m-b;如果x<0,放弃执行协议;否则,执行下一步;
步骤4.3.1.2:随机选取并计算承诺C的同构/>承诺C为Cattr
步骤4.3.1.3:计算挑战c0=H(C||M),计算响应r1=w1-mc0,r2=w2-rc0;M为承诺C的同构;
步骤4.3.1.4:计算Cx=cg-b;Cx是m-b的承诺;
步骤4.3.1.5:计算n=|max-min|以及x按比特分解后的每一位x1,x2,...,xn;n是max-min的比特分解后的位数;
步骤4.3.1.6:随机选择并计算每一位比特的承诺:/>
步骤4.3.1.7:取i∈[1,n],如果xi=0,i∈[1,n],则执行步骤4.1.8-4.1.9;否则,执行步骤步骤4.3.1.10-步骤4.3.1.11;完成对所有i的操作后执行步骤步骤4.3.1.12;
步骤4.3.1.8:随机选择计算/>ci1,ri1,wi0,Mi1,Mi0分别为第i位为1的挑战、第i位为1的应答、计算第i位为0承诺同构的随机数、第i位为1的承诺同构、第i位为0的承诺同构;
步骤4.3.1.9:分别计算ci=H(Ci||Mi0||Mi1),ci0=ci-ci1,ri0=ci0yi+wi0;ci表示第i位的挑战,ci0,ri0,都分别表示第i位为0的应答;
步骤4.3.1.10:随机选择计算/>
步骤4.3.1.11:分别计算ci=H(Ci||Mi0||Mi1),ci1=ci-ci0,ri1=ci1yi+wi1
步骤4.3.1.12:计算A是凭证出示步骤中rattr的承诺,z,r都分别表示计算应答的中间参数,/>是位比特的承诺,rattr为Cattr的秘密;
步骤4.3.1.13:随机选择计算B=hw,c=H(A||B),rB=w-cz;w为随机数,B是rattr的承诺同构,为的承诺同构的计算rB表示响应;
步骤4.3.1.14:对i∈[1,n],将M,r1,r2,Ci,Mi0,Mi1,ci0,ri0,ri1,B,rB发送给验证方;
步骤4.3.2:验证方对接收到的证明进行验证;
步骤4.3.2.1:计算c'0=H(C||M),并验证是否成立:成立则继续执行协议,否则验证失败;c'0表示验证方计算的与步骤5.3.1.3中对应的挑战,r1和r2是用户响应;
步骤4.3.2.2:验证Ci的个数n是否同时满足n≤|p|-2以及n≤|max-min|:满足则将继续执行协议,否则验证失败;
步骤4.3.2.3:对i∈[1,n],计算c′i=(Ci||Mi0||Mi1),c′i1=c′i-ci0,并验证以及/>是否同时成立:同时成立则继续执行协议,否则验证失败;其中c′i为第i位的挑战,c′i1为第i位为1的挑战;
步骤4.3.2.4:计算C'x=Cg-bc'=H(A'||B),并验证/>是否成立:成立则验证成功,否则验证失败;C'x为验证方计算的m-b的承诺;A'为验证方计算的rattr的承诺;c'验证方计算的挑战;B为步骤4.3.1中4.3.1.13发送的参数。
2.根据权利要求1所述的一种基于可验证声明的隐私保护属性认证方法,其特征在于,步骤2具体包括以下步骤:
步骤2.1:用户与颁发者进行身份认证;
步骤2.1.1:用户随机生成计算N=hn;其中/>是与素数p互素的所有数的集合,n表示随机数,N是用户私钥承诺的同构;
步骤2.1.2:用户计算挑战,计算挑战其中h是公共参数,/>表示用户公钥;H()含义为哈希函数;
步骤2.1.3:用户计算响应,ru=n-kucl;其中ku表示用户私钥;
步骤2.1.4:用户在请求属性凭证的同时,将N,ru作为证据发送给颁发者;
步骤2.1.5:颁发者计算挑战,计算挑战关系:挑战cl为证明计算,挑战c’为验证方计算;
步骤2.1.6:颁发者计算检验N’与N是否相等,若相等则进行步骤2.2;否则,颁发者向用户发送无法通过认证的通知,重新进行步骤2.1,或直接退出;
步骤2.2:颁发者颁发凭证给用户;
步骤2.2.1:对于属性m∈Zp,检验m+x+yr=0是否成立,颁发者随机选择作为属性秘钥;如果该等式不成立,则执行步骤2.2.2;否则重新执行步骤2.2.1;其中m为属性值;r表示签名的属性密钥,x与y表示权威机构私钥,Zp表示0到p-1的整数;
步骤2.2.2:颁发者计算W表示签名中除属性密匙r的部分,g1是G1中的元素,G1表示阶数为p的循环群,p为素数;
步骤2.3:颁发者生成包含签名(W,r)的凭证,并将该凭证发送给用户;
步骤2.4:用户验证签名是否有效;用户接收到包含签名(W,r)的凭证,验证是否成立,成立则说明签名正确,接受凭证;否则说明签名有误,丢弃该凭证,其中,/>g2为G2中的元素,G1,G2,Gt均表示阶数为p的循环群,p为素数;e表示双线性映射,z表示Gt中的元素,值为e(g1,g2)。
3.根据权利要求1所述的一种基于可验证声明的隐私保护属性认证方法,其特征在于,步骤3具体包括:
步骤3.1:用户对承诺签名进行随机化操作,并证明某个随机化后的承诺隐藏着属性值;
步骤3.1.1:用户在接收到服务提供方的策略后,查看自己的是否满足访问策略,如果满足访问策略,则执行步骤3.1.2;否则,退出该协议结束;
步骤3.1.2:对于签名(W,r),用户选择随机数计算W'=Wr′,/>其中W’为签名W进行随机化,C1为签名r随机化后的承诺;
步骤3.1.3:用户选择随机数计算/>Cattr表示隐藏有属性值的承诺;
步骤3.1.4:用户随机选择w1,w2,w3,w4,w5,w6,w7,计算 其中,w1,w2,w3,w4,w5,w6,w7是从/>中选择的随机数,M1,M2和M3分别是C1的承诺同构、Cattr的承诺同构、辅助承诺同构;
步骤3.1.5:用户计算承诺值c=H(g2,U,V,M1,M2,M3,C1,Cattr);
步骤3.1.6:用户计算响应r1=w1-c/r',r2=w2-mc/r',r3=w3-cr/r',r4=w4-cr',r5=w5-cr”,r6=w6-cm,r7=w7-(r”+r)c;
步骤3.1.7:用户将C1,Cattr,M1,M2,M3,r1,r2,r3,r4,r5,r6,r7,W’发送给服务提供方;
步骤3.2:服务提供方验证用户的承诺以及签名;
步骤3.2.1:服务提供方首先验证e(W',C1)=z是否成立,成立则进行步骤3.2.2,否则拒绝用户访问,则重新进行步骤3.2或直接退出;
步骤3.2.2:服务提供方计算挑战,c'=H(g2,U,V,M1,M2,M3,C1,Cattr);
步骤3.2.3:服务提供方验证下列等式是否均成立:
若上述等式成立,则用户通过服务提供方的验证,说明承诺Cattr中隐藏了属性值m;否则服务提供方发送m证失败通知。
4.基于权利要求1所述的一种基于可验证声明的隐私保护属性认证方法,通过一种基于可验证声明的隐私保护属性认证系统实现,其特征在于,包括用户、身份提供方、服务提供方;
所述用户是发起消息请求的一方;所述服务提供方根据所述身份提供方的响应信息来决定是否对用户提供服务;
所述身份提供方提供身份管理认证服务,其具体包含身份信息、属性信息、证书的生成、修改;
身份提供方作为权威机构,得到来自用户以及服务提供方的信任;身份提供方并不信任用户,身份提供方在给用户颁发可验证声明形式的凭证时,需要与用户执行相应的协议进行交互,确认用户身份后才继续进行凭证的颁发;而用户与服务提供方之间,则是互不信任的关系,用户与服务提供方之间执行协议:通过执行凭证出示协议,服务提供方相信用户拥有身份提供方颁发的凭证;通过执行不同形式的属性证明协议,服务提供方只知道凭证中的属性值满足策略要求的同时,无法得到关于该属性值的更多信息;
所述权威机构验证用户身份确认用户的身份无误后,签发相应的凭证发送给用户。
CN202110276797.8A 2021-03-15 2021-03-15 基于可验证声明的隐私保护属性认证系统及方法 Active CN113221089B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110276797.8A CN113221089B (zh) 2021-03-15 2021-03-15 基于可验证声明的隐私保护属性认证系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110276797.8A CN113221089B (zh) 2021-03-15 2021-03-15 基于可验证声明的隐私保护属性认证系统及方法

Publications (2)

Publication Number Publication Date
CN113221089A CN113221089A (zh) 2021-08-06
CN113221089B true CN113221089B (zh) 2023-11-07

Family

ID=77083665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110276797.8A Active CN113221089B (zh) 2021-03-15 2021-03-15 基于可验证声明的隐私保护属性认证系统及方法

Country Status (1)

Country Link
CN (1) CN113221089B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114186248B (zh) * 2021-11-13 2022-08-05 云南财经大学 基于区块链智能合约的零知识证明可验证凭证数字身份管理系统及方法
CN114866255B (zh) * 2022-04-28 2023-09-08 西安电子科技大学 以用户为中心面向多idp聚合的多因素认证方法
CN115664649B (zh) * 2022-10-19 2023-08-01 电子科技大学 基于动态委员会的高安全性区块链身份管理方法及系统
CN116232763B (zh) * 2023-05-05 2023-07-07 敏于行(北京)科技有限公司 选择性披露的动态组合可验证凭证生成方法及系统
CN116389164B (zh) * 2023-05-26 2023-09-12 建信金融科技有限责任公司 数据的检测方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018148597A1 (en) * 2017-02-10 2018-08-16 BlueTalon, Inc. Authentication based on client access limitation
CN108769020A (zh) * 2018-05-29 2018-11-06 东北大学 一种隐私保护的身份属性证明系统及方法
CN108833373A (zh) * 2018-05-29 2018-11-16 东北大学 面向关系隐私保护社交网络的即时通信与匿名访问方法
CN109325331A (zh) * 2018-09-13 2019-02-12 北京航空航天大学 基于区块链和可信计算平台的大数据采集交易系统
CN110224837A (zh) * 2019-06-06 2019-09-10 西安纸贵互联网科技有限公司 基于分布式身份标识的零知识证明方法及终端
WO2019204794A1 (en) * 2018-04-20 2019-10-24 Infonetworks Llc System for verification of pseudonymous credentials for digital identities with managed access to personal data on trust networks
CN111090876A (zh) * 2020-03-18 2020-05-01 支付宝(杭州)信息技术有限公司 调用合约的方法及装置
CN111490967A (zh) * 2019-01-29 2020-08-04 中国科学院软件研究所 一种提供用户友好的强认证和匿名认证的统一身份认证方法和系统
CN112199714A (zh) * 2020-12-04 2021-01-08 支付宝(杭州)信息技术有限公司 基于区块链的隐私保护方法、装置及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140337239A1 (en) * 2013-05-13 2014-11-13 Pitney Bowes Inc. Method and system for obtaining offers from sellers using privacy-preserving verifiable statements

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018148597A1 (en) * 2017-02-10 2018-08-16 BlueTalon, Inc. Authentication based on client access limitation
WO2019204794A1 (en) * 2018-04-20 2019-10-24 Infonetworks Llc System for verification of pseudonymous credentials for digital identities with managed access to personal data on trust networks
CN108769020A (zh) * 2018-05-29 2018-11-06 东北大学 一种隐私保护的身份属性证明系统及方法
CN108833373A (zh) * 2018-05-29 2018-11-16 东北大学 面向关系隐私保护社交网络的即时通信与匿名访问方法
CN109325331A (zh) * 2018-09-13 2019-02-12 北京航空航天大学 基于区块链和可信计算平台的大数据采集交易系统
CN111490967A (zh) * 2019-01-29 2020-08-04 中国科学院软件研究所 一种提供用户友好的强认证和匿名认证的统一身份认证方法和系统
CN110224837A (zh) * 2019-06-06 2019-09-10 西安纸贵互联网科技有限公司 基于分布式身份标识的零知识证明方法及终端
CN111090876A (zh) * 2020-03-18 2020-05-01 支付宝(杭州)信息技术有限公司 调用合约的方法及装置
CN112199714A (zh) * 2020-12-04 2021-01-08 支付宝(杭州)信息技术有限公司 基于区块链的隐私保护方法、装置及电子设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A Privacy-Preserving E-Commerce System Based on the Blockchain Technology;Yiming Jiang 等;2019 IEEE International Workshop on Blockchain Oriented Software Engineering(IWBOSE);50-55 *
Privacy-preserving and efficient attributes proof based on selective aggregate CL-signature scheme;Nan Guo 等;Innovative Security Technologies against Insider;第93卷(第2期);273-288 *
一种基于TCM的属性证明协议;冯登国 等;中国科学:信息科学;第40卷(第02期);189-199 *
适用于多方协议的可否认认证;陈勇 等;网络与信息安全学报;第2卷(第06期);71-78 *

Also Published As

Publication number Publication date
CN113221089A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
CN113221089B (zh) 基于可验证声明的隐私保护属性认证系统及方法
JP7083892B2 (ja) デジタル証明書のモバイル認証相互運用性
CA3048425A1 (en) System and method for an electronic identity brokerage
CN104125199B (zh) 一种基于属性的匿名认证方法及系统
CN109547206A (zh) 数字证书的处理方法及相关装置
Ranjith Kumar et al. Blockchain based chameleon hashing technique for privacy preservation in E-governance system
Singh et al. A novel credential protocol for protecting personal attributes in blockchain
CN113438088A (zh) 基于区块链分布式身份的社交网络信用监测方法及装置
Paquin U-prove technology overview v1. 1
CN110278082A (zh) 一种群组数字签名的群组成员发布方法和设备
Smyth et al. Formal analysis of privacy in Direct Anonymous Attestation schemes
Shahraki et al. Attribute-based data access control for multi-authority system
Bhargav-Spantzel et al. Multifactor identity verification using aggregated proof of knowledge
CN109902508A (zh) 一种凭证签发者匿名的实体鉴别方法及系统
KR102157695B1 (ko) 익명 디지털 아이덴티티 수립 방법
Heiss et al. Non-disclosing credential on-chaining for blockchain-based decentralized applications
Riad et al. A blockchain-based key-revocation access control for open banking
Polychronaki et al. Identity Management in Internet of Things with Blockchain
JP4336876B2 (ja) 署名方法および署名プログラム
Chen et al. SeCrowd: Efficient secure interactive crowdsourcing via permission-based signatures
Bertino et al. Digital identity protection-concepts and issues
CN110278073A (zh) 一种群组数字签名、验证方法及其设备和装置
CN114329610A (zh) 区块链隐私身份保护方法、装置、存储介质及系统
Namazi et al. zkFaith: Soonami's Zero-Knowledge Identity Protocol
Salleras Citadel: Self-Sovereign Identities on Dusk Network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant