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

证明生成方法及装置、电子设备、存储介质

文献发布时间:2023-06-19 16:04:54



技术领域

本说明书一个或多个实施例涉及数据处理技术领域,尤其涉及一种证明生成方法及装置、电子设备、存储介质。

背景技术

出于对隐私保护的考虑,用户在使用自身隐私数据的同时,也希望隐私数据不被泄露。零知识证明(Zero-Knowledge Proof)或零知识协议包括两部分:宣称某一命题为真的证明者(prover)和确认该命题确实为真的验证者(verifier);其中,证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。

零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息,从而避免泄露证明者的隐私。

发明内容

有鉴于此,本说明书一个或多个实施例提供一种证明生成方法及装置、电子设备、存储介质。

为实现上述目的,本说明书一个或多个实施例提供技术方案如下:

根据本说明书一个或多个实施例的第一方面,提出了一种证明生成方法,包括:

获取证明方的隐私数据,所述隐私数据被通过基于零知识证明技术的加密算法进行加密得到密文数据,所述密文数据记录于所述证明方的可验证声明中;

根据所述隐私数据和与所述加密算法相匹配的证明生成算法生成相应的证明,所述证明用于在与所述证明生成算法相匹配的证明验证算法的验证下,表明所述可验证声明中的密文数据符合验证通过条件。

根据本说明书一个或多个实施例的第二方面,提出了一种证明生成装置,包括:

获取单元,获取证明方的隐私数据,所述隐私数据被通过基于零知识证明技术的加密算法进行加密得到密文数据,所述密文数据记录于所述证明方的可验证声明中;

生成单元,根据所述隐私数据和与所述加密算法相匹配的证明生成算法生成相应的证明,所述证明用于在与所述证明生成算法相匹配的证明验证算法的验证下,表明所述可验证声明中的密文数据符合验证通过条件。

根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。

根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。

附图说明

图1是一示例性实施例提供的一种证明生成方法的流程图。

图2是一示例性实施例提供的创建DID的交互图。

图3是一示例性实施例提供的生成可验证声明和相应证明的交互图。

图4是一示例性实施例提供的验证证明方的交互图。

图5是一示例性实施例提供的一种设备的结构示意图。

图6是一示例性实施例提供的一种证明生成装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。

需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。

在相关技术中,可通过DIS(Decentralized Identifier Service,去中心化的身份服务)来为各个用户创建身份。DIS可为用户提供不受任何单一注册中心、身份服务商或者认证中心限制的,完全由用户自身控制的DID(Decentralized Identifier,去中心化身份标识符)。DID可作为一个实体的标识,而对于该实体拥有哪些权限、能力、行为甚至资产等具体信息,则可通过VC(Verifiable Claim,可验证声明)来表示。VC是颁发方使用自身的分布式数字身份(DID)给用户的DID的某些属性做背书而签发的描述性声明,并附加有颁发方的数字签名。那么,用户可通过向其他用户提供自身的VC,从而向该其他用户证明VC中记录的关于自身的属性信息为真实可靠的。

由此可见,VC中记录有持有该VC的用户的属性信息,而属性信息通常为用户的隐私信息,用户在向其他用户提供自身的VC时存在暴露隐私信息的风险。对此,本说明书旨在提供一种证明生成方案,可对采用分布式数字身份的用户所持有可验证声明中记录的隐私信息进行保护,从而使得隐私信息“可用不可见”。

请参见图1,图1是一示例性实施例提供的一种证明生成方法的流程图。

如图1所示,该方法可以包括以下步骤:

步骤102,获取证明方的隐私数据,所述隐私数据被通过基于零知识证明技术的加密算法进行加密得到密文数据,所述密文数据记录于所述证明方的可验证声明中。

在本实施例中,证明方可向颁发方请求颁发记录有证明方真实的隐私信息的VC,颁发方在向证明方颁发相应的VC时,可对所颁发的VC中记录的隐私信息进行加密处理,从而实现对证明方的隐私保护。其中,可结合零知识证明技术来保证VC中所记录持有者的隐私信息不被泄露的前提下,仍然可用于描述该隐私信息(证明该隐私信息真实有效),即使得VC中的隐私信息“可用不可见”。

具体而言,零知识证明技术中包含加密算法、证明生成算法和证明验证算法。其中,加密算法用于对证明方的隐私数据进行加密,由于隐私数据为密文形式,需要采用与该加密算法相匹配的证明生成算法来生成相应的证明,该证明可表明证明方的隐私数据(密文形式)符合针对该隐私数据设定的验证通过条件,而对于该证明,则可通过与上述证明生成算法相匹配的证明验证算法来进行验证,确定该证明表明的内容是否正确。简而言之,在加密隐私数据、生成证明、验证证明的过程中,零知识证明技术包含的上述三类算法之间为相互对应的关系。

举例而言,用户A的隐私数据包含年龄信息,而针对年龄设定的验证通过条件为“年龄满18周岁”。那么,用户A可向VC的颁发者(比如,相关部门可信机构)提供自身的年龄信息,由颁发者在对年龄信息进行真实性校验并校验通过后,向用户A颁发相应的VC,该VC中记录有密文形式的年龄信息。用户A在获取VC后,可针对VC中的年龄信息生成用于表明“年龄满18周岁”的证明,并向验证者(比如,对于所出售商品具有年龄限制的商店)提供VC和证明,以由验证者基于VC和证明来判断用户A是否年满18周岁。其中,用户A、颁发者和验证者之间预先协商确定了各自使用的算法,即用户A使用的证明生成算法、颁发者使用的加密算法和验证者使用的证明验证算法之间互相匹配。

而对于零知识证明技术,可采用同态特性的承诺算法(Commitment)或者同态加密(Homomorphic Encryption)算法等。为了方便描述,以记号HE()表示同态承诺/加密算法,对于明文t,其密文形式为HE(t)。同态承诺/加密是一种特殊的加密方法,允许对密文进行处理得到仍然是加密的结果,即对密文直接进行处理,与对明文进行处理后再对处理结果加密得到的结果相同。以加法同态为例, HE(t1)+HE(t2)=HE(t1+t2)。同态承诺算法包括Pedersen承诺等,同态加密算法包括Paillier算法、Gentry算法、Okamoto–Uchiyama同态加密和 Boneh-Goh-Nissim同态加密等等;当然,本说明书并不对所采用的加密算法进行限制;比如,还可采用哈希算法。相应的,范围证明技术是密码学领域的一种安全的证明协议,可用于证明一个数字在某一合理区间并且不泄露该数字的具体数值等信息。例如,Borromean环签名方案、Bulletproof方案、zkSNARK 等零知识证明技术均可用于范围证明。

基于上述同态的特点,以转账为例,出于交易隐私保护的目的,可以通过同态加密或同态承诺技术对交易金额进行保护,以及利用范围证明技术保证交易额非负且账户余额足够支付(通过生成用于表明交易额非负且账户余额足够支付的范围证明)。

在本实施例中,在对证明方的明文隐私信息进行加密时,可通过随机字符串作为掩码来提高加密得到的密文数据的随机性,从而防止密文数据被暴力破解。比如,明文隐私信息为年龄,采用的加密算法为哈希运算,由于年龄的数值范围较小,若直接对年龄进行哈希运算,则生成的密文数据的总数量则相应较少,那么容易被暴力破解,从而泄露用户的年龄隐私。因此,可(由证明方生成并提供至颁发方,或者由颁发方生成)生成一随机字符串,将该随机字符串与明文隐私信息进行拼接得到隐私数据,然后再对该隐私数据进行加密得到密文数据。换言之,本实施例中的隐私数据包含证明方的明文隐私信息和随机字符串。

进一步的,颁发方在向证明方颁发VC之前,可对证明方提供的明文隐私信息进行真实性校验,从而在真实性校验通过的情况下生成原始可验证声明,该原始可验证声明中包含明文隐私信息、随机字符串和密文数据。然后,证明方可获取颁发方在验证明文隐私信息通过的情况下生成的原始可验证声明,并删除原始可验证声明中的明文隐私信息和随机字符串以得到可验证声明,该可验证声明则是后续可提供至验证方进行验证的可验证声明。需要说明的是,本说明书并不对上述真实性校验操作的具体方式进行限制。

而在颁发方生成原始可验证声明的过程中,颁发方可对原始可验证声明中区别于明文隐私信息和随机字符串的第一声明内容(包含声明颁发方、声明接收方、声明过期时间、声明颁发时间等,下文将详细进行说明)进行签名得到第一签名,并将第一签名记录在原始可验证声明中。换言之,原始可验证声明中包含颁发方针对原始可验证声明中第一声明内容的第一签名,颁发方通过第一签名为证明方背书。基于原始可验证声明中包含颁发方的第一签名,那么验证方判定证明方验证通过的前提条件包括与可验证声明对应的证明验证通过且第一签名验证通过。

除此之外,颁发方可对原始可验证声明中的第二声明内容(至少包括明文隐私信息和随机字符串)进行签名得到第二签名,并将第二签名记录在原始可验证声明中,即原始可验证声明中包含颁发方针对原始可验证声明中第二声明内容的第二签名。那么,证明方在获取到原始可验证声明后,可对原始可验证声明中包含的第二签名进行签名验证,以在第二签名验证通过的情况下(表明该原始可验证声明由颁发方生成并且未被篡改)生成上述可验证声明。

步骤104,根据所述隐私数据和与所述加密算法相匹配的证明生成算法生成相应的证明,所述证明用于在与所述证明生成算法相匹配的证明验证算法的验证下,表明所述可验证声明中的密文数据符合验证通过条件。

在本实施例中,证明方在获取可验证声明后,可生成对应于可验证声明的证明,该证明用于表明该可验证声明中记录的密文数据符合验证通过条件 (可由验证方设定或提供)。具体而言,证明方可将隐私数据、验证通过条件以及用于表明该隐私数据符合验证通过条件的判断结果输入证明生成算法以生成上述证明。

承接于上述举例,用户A的年龄为25岁,验证方针对年龄设定的验证通过条件为“年龄满18周岁”,由于25岁>18岁,判断结果为“是”,即判断结果为用户A的年龄符合验证通过条件“年龄满18周岁”。因此,证明方可将“用户 A的年龄25岁”、“年龄满18周岁”以及判断结果为“是”输入证明生成算法,以生成对应于可验证声明的证明。

其中,基于零知识证明技术的加密算法以及相应的证明生成算法和证明验证算法可存在多组,即每组算法包括相互匹配的加密算法、证明生成算法和证明验证算法。或者,颁发方、证明方和验证方并未预先协商何种基于零知识证明技术的算法。针对上述情况,颁发方在生成原始可验证声明的过程中,在原始可验证声明中记录与自身所采用的加密算法相匹配的证明生成算法和证明验证算法的算法标识,以指示相应的用户采用与算法标识对应的算法。具体而言,可验证声明包含证明生成算法的第一算法标识,第一算法标识用于指示证明方根据第一算法标识确定出相应的证明生成算法;和/或,可验证声明包含证明验证算法的第二算法标识,第二算法标识用于指示验证方根据第二算法标识确定出证明验证算法。

为了便于理解,下面结合附图2-4对本说明书的技术方案进行详细说明。

图2是一示例性实施例提供的创建DID的交互图。如图2所示,该交互过程可以包括以下步骤:

步骤202,证明方创建DID、对应于DID的密钥对和相应的DID文档。

在本实施例中,用户作为证明者可在所使用的客户端上登录自身的用户账号,从而使得该客户端作为证明方。其中,可通过DIS(Decentralized Identifier Service,去中心化的身份服务)来为各个用户创建身份,DIS可为用户提供不受任何单一注册中心、身份服务商或者认证中心限制的,完全由用户自身控制的 DID(Decentralized Identifier,去中心化身份标识符)。以为证明方创建DID为例,与证明方DID对应的密钥对包括公钥和私钥,公钥需发布至区块链进行存证,而与证明方DID对应的私钥则由证明方保管,比如保存于上述客户端本地。

在DIS系统中,一个DID(Decentralized Identifier,去中心化身份标识符) 对应一个实体(比如,VC的颁发者、证明者、验证者等用户),而针对该DID 的具体使用方式,则由与该DID对应的DID文档(DID Document)描述。DID 文档用于描述如何使用相应的DID,至少包含相应DID的公钥;除此之外,还可记录加密方式、证明目的、验证方法和服务端等信息。其中,证明目的与验证方法相结合,以提供证明事物的机制。例如,DID文档可以指定特定的验证方法,例如密码公钥或化名生物特征协议,可以用于验证为目的而创建的方法。服务端点支持与DID控制器的可信交互。DID和DID文档可直接登记在区块链或其他分布式网络上,而无需向中心化注册机构申请,通过利用区块链等分布式网络技术的不可篡改、哈希加密等特性,可实现让数字身份真正为用户所拥有并支配,而不再有任何中间人(即使是DID技术供应商)接触拥有控制用户的身份和数据。

步骤204,证明方创建一笔用于存证DID和DID文档的交易。

步骤206,证明方向区块链网络提交该用于存证DID和DID文档的交易。

步骤208,区块链网络在区块链上存证DID和DID文档。

步骤210,证明方向区块链网络获取创建DID成功的回执。

在本实施例中,区块链网络在存证DID和DID文档之后,可生成用于记存证DID和DID文档成功的事件,并存储到区块链日志中。那么,证明方可通过区块链的回调机制来获取该事件,从而确定出在区块链上已存证DID和DID文档,也即证明方创建DID成功。或者,还可生成相应的提示消息以供证明方查看,以告知证明方链上创建DID成功。

图3是一示例性实施例提供的生成可验证声明和相应证明的交互图。如图3 所示,该交互过程可以包括以下步骤:

步骤302,证明方创建声明颁发请求(包含证明方DID、明文隐私信息和证明者的身份信息)。

步骤304,证明方向颁发方发送声明颁发请求。

步骤306,颁发方读取声明颁发请求中包含的证明方DID。

步骤308,颁发方向区块链网络发起针对证明方DID的查询交易。

步骤310,区块链网络响应于查询交易,查询与证明方DID对应的DID文档。

步骤312,区块链网络向颁发方返回查询到的DID文档。

步骤314,颁发方向证明方发送DID认证挑战消息(包含挑战数据)。

在本实施例中,由上述图2创建DID的过程可知,证明方DID的DID文档中记录有与证明方DID对应的公钥,那么可利用该公钥来验证声明颁发请求中的证明方DID是否为证明方实际持有的DID,也即验证证明方是否为声明颁发请求中证明方DID的合法owner。

颁发方可随机生成一挑战数据(比如为字符串),并将该挑战数据通过DID 认证挑战消息(DID auth challenge)发送至证明方,以指示证明方通过自身的私钥(即与证明方DID对应的私钥)对其进行签名,并返回挑战数据和签名。那么,颁发方可采用DID文档中的公钥对签名进行签名验证,进而在签名验证通过的情况下,确认证明方为声明颁发请求中记录的证明方DID的合法owner。

步骤316,证明方通过与证明方DID对应的私钥对挑战数据进行签名。

步骤318,证明方向颁发方返回挑战数据。

步骤320,颁发方采用DID文档中的公钥进行签名验证。

在本实施例中,除上述通过发送DID认证挑战消息的方式以外,还可采用在声明颁发请求中添加签名的方式。具体而言,证明方在创建的声明颁发请求中添加针对声明颁发请求中内容的签名,颁发方可在获取到DID文档后,采用 DID文档中记录的公钥对声明颁发请求中的签名进行签名验证,从而确认证明方为声明颁发请求中记录的证明方DID的合法owner。

步骤322,颁发方在签名验证通过的情况下对明文隐私信息进行真实性校验。

在本实施例中,在创建声明颁发请求时,可在声明颁发请求中记录证明者的身份信息以作为颁发方对明文隐私信息进行真实性校验的依据。那么,在完成对证明方DID的验证后,可进一步根据声明颁发请求中记录的证明者的身份信息,对明文隐私信息进行真实性校验。例如,证明者的身份信息可包括证明者的身份证号码、籍贯、出生年月、户口信息等,那么颁发方可根据上述身份信息对证明者的年龄进行真实性校验。

步骤324,颁发方在校验通过的情况下,采用加密算法对明文隐私信息和随机字符串加密得到密文数据,生成针对密文数据的原始可验证声明。

在本实施例中,DID是一个实体的标识,而该实体拥有哪些权限、能力、行为和资产等具体信息,则通过VC来表达。需要注意的是,一个DID可以拥有一个或多个VC。举例而言,VC中可包含以下字段:

issuer:声明颁发者(颁发方);

didsubject:声明接收者(颁发对象)的DID;

expire:声明过期时间;

issuance date:声明颁发时间;

claim:声明内容;

proof:有效性证明(区别于上述证明方生成的证明)。

颁发方可生成一随机字符串,然后与明文隐私信息进行拼接,以采用加密算法对拼接后的字符串进行加密得到密文数据。其中,颁发方可在issuer中记录自身的DID(即颁发方DID),在didsubject中记录证明方DID,在expire中记录声明过期时间,在issuancedate中记录颁发VC的时刻,在claim中记录明文隐私信息、随机字符串和密文数据。具体而言,可将claim字段扩展为进一步包含plaintext、random和commitment。plaintext用于记录明文隐私信息,比如age; random用于记录随机字符串,commitment用于记录密文数据。

而为了证明VC是由颁发方所颁发的,一方面,颁发方可采用自身的私钥对该VC中除明文隐私信息和随机字符串以外的其他声明内容(即第一声明内容,包含密文数据)进行签名得到第一签名,并将第一签名记录在proof中,比如记录于proof的zkpsignaturevalue字段中;另一方面,颁发方可采用自身的私钥对至少包括明文隐私信息和随机字符串的声明内容(即第二声明内容)进行签名得到第二签名,并将第二签名记录在proof中,比如记录于proof的signaturevalue 字段中。

举例而言,原始可验证声明的内容如下:

除此之外,基于零知识证明技术的加密算法以及相应的证明生成算法和证明验证算法可存在多组,即每组算法包括相互匹配的加密算法、证明生成算法和证明验证算法。或者,颁发方、证明方和验证方并未预先协商何种基于零知识证明技术的算法。针对上述情况,颁发方在生成原始可验证声明的过程中,可在原始可验证声明中记录与自身所采用的加密算法相匹配的证明生成算法和证明验证算法的算法标识,以指示相应的用户采用与算法标识对应的算法。当然,若颁发方、证明方和验证方之间预先协商了采用何种基于零知识证明技术的算法,在无需记录上述算法标识。

需要说明的是,上述针对VC中所包含字段的描述,仅仅为一举例,在实际应用中可根据实际情况灵活调整。

步骤326,颁发方向证明方返回原始可验证声明。

在本实施例中,证明方在获取原始可验证声明后,可分别对第一签名和第二签名进行签名验证,从而在签名验证均通过的情况下执行后续步骤。

步骤328,证明方获取明文隐私信息和随机字符串。

在一种情况下,随机字符串由颁发方声明,那么证明方可读取原始可验证声明中记录的随机字符串。在另一种情况下,随机字符串由证明方生成并提供至(比如通过声明颁发请求)颁发方,那么证明方可先读取原始可验证声明中记录的随机字符串,然后与自身生成的随机字符串进行比较,以在比较结果为一致的情况下,执行后续步骤。

步骤330,证明方获取验证通过条件和判断结果。

步骤332,证明方将明文隐私信息、随机字符串、验证通过条件和判断结果输入证明生成算法生成证明。

举例而言,用户A的年龄(明文隐私信息)为25岁,随机字符串为 h@$fwehdu,验证方针对年龄设定的验证通过条件为“年龄满18周岁”,由于 25岁>18岁,判断结果为“是”,即判断结果为用户A的年龄符合验证通过条件“年龄满18周岁”。因此,证明方可先将明文隐私信息“用户A的年龄25岁”和随机字符串“h@$fwehdu”进行拼接,再将拼接得到的字符串、验证通过条件“年龄满18周岁”以及判断结果“是”输入证明生成算法,以生成对应于可验证声明的证明。

步骤334,证明方删除原始可验证声明中的明文隐私信息和随机字符串,得到最终的可验证声明。

在本实施例中,为了保证VC中所记录持有者的隐私信息不被泄露的前提下,仍然可用于描述该隐私信息(证明该隐私信息真实有效),可将从颁发方处获取到的VC中的plaintext字段和random字段删除(也可将第二签名删除),从而得到最终可使用的VC。

承接于上述举例,最终的可验证声明的内容如下:

图4是一示例性实施例提供的验证证明方的交互图。如图4所示,该交互过程可以包括以下步骤:

步骤402,证明方创建验证请求(包含证明方DID)。

步骤404,证明方向验证方发送验证请求。

步骤406,验证方验证证明方DID。

基于证明方通过DID来表示自身的身份标识,证明方需要向验证方提供证明方DID,以由验证方验证证明方DID,即验证证明方为所提供的证明方DID 的合法owner。其中,验证证明方DID的过程可参考上述图3中的步骤308-320,在此不再赘述。

步骤408,证明方向验证方发送可验证声明和相应的证明。

在本实施例中,证明方需要向验证方证明自身的隐私信息符合验证方设定的验证通过条件,那么需要向验证方提供上述图3示出实施例中获取到的VC 和相应的证明。

步骤410,验证方验证可验证声明。

在本实施例中,验证方可通过颁发方的公钥来对可验证声明中的第一签名进行签名验证,从而验证可验证声明的数据完整性(是否被篡改)以及是否由颁发方颁发。其中,由于可验证声明的issuer字段中记录有颁发方DID,可根据颁发方DID向区块链网络查询颁发方公钥,具体过程与上述步骤306-312类似,在此不再赘述。

步骤412,验证方验证证明。

在本实施例中,验证方可通过证明验证算法和证明来对可验证声明中的密文数据进行验证,确定该密文数据是否符合验证通过条件。其中,在证明验证通过且第一签名验证通过的情况下,可判定证明方验证通过。

步骤414,验证方判定证明方验证通过,执行针对证明方的相关业务操作。

步骤416,验证方向证明方返回业务操作的执行结果。

以网吧验证用户A是否年满18周岁为例,在判定用户A验证通过后,网吧的验证方可为用户A生成支付订单,并向用户A的客户端返回支付订单的信息。

与上述方法实施例相对应,本说明书还提供了一种证明生成装置的实施例。

图5是一示例性实施例提供的一种设备的示意结构图。请参考图5,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行,在逻辑层面上形成证明生成装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

请参考图6,在一软件实施方式中,该证明生成装置可以包括:

获取单元61,获取证明方的隐私数据,所述隐私数据被通过基于零知识证明技术的加密算法进行加密得到密文数据,所述密文数据记录于所述证明方的可验证声明中;

生成单元62,根据所述隐私数据和与所述加密算法相匹配的证明生成算法生成相应的证明,所述证明用于在与所述证明生成算法相匹配的证明验证算法的验证下,表明所述可验证声明中的密文数据符合验证通过条件。

可选的,生成单元62具体用于:

将所述隐私数据、所述验证通过条件以及用于表明所述隐私数据符合所述验证通过条件的判断结果输入所述证明生成算法以生成所述证明。

可选的,

所述可验证声明包含所述证明生成算法的第一算法标识,第一算法标识用于指示证明方根据第一算法标识确定出所述证明生成算法;

和/或,所述可验证声明包含所述证明验证算法的第二算法标识,第二算法标识用于指示验证方根据第二算法标识确定出所述证明验证算法。

可选的,所述隐私数据包含所述证明方的明文隐私信息和随机字符串。

可选的,获取单元61还用于:

获取颁发方在验证所述明文隐私信息通过的情况下生成的原始可验证声明,所述原始可验证声明中包含所述明文隐私信息、所述随机字符串和所述密文数据;

删除所述原始可验证声明中的明文隐私信息和随机字符串以得到所述可验证声明。

可选的,所述原始可验证声明中包含所述颁发方针对所述原始可验证声明中第一声明内容的第一签名,第一声明内容区别于所述明文隐私信息和所述随机字符串;其中,验证方判定所述证明方验证通过的前提条件包括所述证明验证通过且第一签名验证通过。

可选的,所述原始可验证声明中包含所述颁发方针对所述原始可验证声明中第二声明内容的第二签名,第二声明内容至少包括所述明文隐私信息和所述随机字符串;所述装置还包括:

验证单元63,对第二签名进行验证,以在第二签名验证通过的情况下生成所述可验证声明。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

相关技术
  • 证明生成方法及装置、电子设备、存储介质
  • 证明生成方法及装置、电子设备、存储介质
技术分类

06120114691321