基于公有链的可匿名撤销的环签名及其生成和撤销方法与流程

文档序号:18560944发布日期:2019-08-30 23:16阅读:344来源:国知局
基于公有链的可匿名撤销的环签名及其生成和撤销方法与流程

本发明涉及网络安全技术领域,具体涉及一种基于公有链的可匿名撤销的环签名及其生成和撤销方法,用于实现对公有链上用户的环签名高效生成、匿名身份可条件撤销、以及保证撤销过程的安全、公正和可信。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,本质上是一个去中心化的数据库。以参与方分类,区块链可以分为公有链、联盟链和私有链。其中,公有链是指在完全去中心化环境下,全世界任何人都可读取、发送交易且交易能获得有效确认的、也可以参与其中共识过程的区块链。公有链中,任何节点(环成员)无须任何许可便可随时加入或脱离网络。在完全去中心化环境下,公有链中所有节点平等、匿名,所有节点均可参加区块发布和验证,每个节点的匿名和隐私都受到保护。可通过环签名实现区块链上信息发布者的身份匿名性。

环签名是一种特殊的群签名,环签名中没有可信中心,没有群的建立过程,只有环成员没有管理者,不需要环成员间的合作。对于验证者来说,签名人是完全正确匿名的。环签名具有以下特性:

(1)无条件匿名性:攻击者即使非法获取了环中所有可能签名者的私钥,能确定出真正的签名者的概率也不超过1/n(n表示所有可能签名者的个数)。

(2)不可伪造性:环中其它成员不能伪造真实签名者签名,外部攻击者即使在获得某个有效环签名的基础上,也不能为消息m伪造一个签名。

(3)正确性:签名必须能被所有环中其他成员验证。

因此,环签名在对信息需要长期保护的一些特殊环境中非常有用。环签名可以实现区块链上信息发布者的身份匿名性,然而,在完全匿名的公有链下,无法实现对节点的匿名身份进行追踪、裁定和撤销。为了追踪叛逆节点,现有环签名的匿名撤销方案通过引入一个环管理员,在进行叛逆节点追踪时,由环管理员进行匿名撤销。但是,因为公有链是完全去中心化的,引入一个环管理员相当于是引入了一个超级中心,这与公有链的主旨是相违背的,所以,该方法无法在公有链上实现。然而,在赋予各个节点公平性、匿名性和不可篡改性的同时,也形成了法律无法监管的灰色地带,造成的结果是滋生恐怖、犯罪和破坏金融秩序,这是无法容忍的。



技术实现要素:

本发明的目的在于:为解决无法实现对现有公有链中节点的匿名身份进行追踪,导致网络安全性差的问题,提供了一种基于公有链的可匿名撤销的环签名的生成方法。同时,为解决无法实现对现有公有链中节点的匿名身份进行裁定、对叛逆节点进行撤销,导致网络安全性差的问题,提供了一种基于公有链的可匿名撤销的环签名的撤销方法。为了同时解决无法实现对现有公有链中节点的匿名身份进行追踪、裁定和对公有链中叛逆节点进行撤销导致的网络安全性差的问题,提供了一种基于公有链的可匿名撤销的环签名。本发明采用基于环签名的匿名投票表决方法、门限密码策略和基于云计算的环签名并行计算方法,提供了一种自主可控的主权区块链构造方法及管控机制,用于实现公有链上用户的环签名高效生成和匿名身份可条件撤销的特性。

一种基于公有链的可匿名撤销的环签名的生成方法,包括以下步骤:

密钥生成阶段:根据公开参数计算新用户的公私钥对,新用户结合公开参数、公私钥对和自身的身份标识集合,计算自身的属性基集合;

自证明生成阶段:新用户基于公开参数和自身的属性基集合,计算用于认证新用户身份信息的自证明证据,并向网络中的环成员广播自身的自证明证据;

自证明验证阶段:环中每个环成员根据公开参数和新用户的自证明证据验证新用户的可进入性,将验证通过的新用户加入网络中,使其成为环成员;

可并行的环签名生成阶段:根据环中所有环成员的公钥计算具有所有环成员公钥信息的中间参量,各个环成员根据中间参量计算自身的环签名。

进一步地,所述公开参数包括随机数集合r[r1,...,rk],预先设定的安全参数α,根据安全参数α产生的一对默认参数(ks,kp)、用于衡量是否加入新用户的阈值m和用于协商撤销用户匿名身份信息的阈值n。

进一步地,所述身份标识集合包括新用户的身份标识id、ip地址、电子邮箱地址后缀、工作单位名称、位置信息。

进一步地,所述自证明验证阶段的具体步骤如下:

步骤a3.1.环中各个环成员接收新用户提供的自证明证据,根据公开参数和自身的属性基集合e[e1,e2]验证新用户的可进入性,验证方法如下:

步骤a3.1.1.判断是否满足ri和是否相等以及和h(r||id||kp)是否相等,若满足,则验证成功,验证结果为1,进入步骤a3.1.2;若不满足,则验证失败,验证结果为0,拒绝该新用户加入:其中,ri表示随机数集合r[r1,...,rk]中下标为i的元素,且满足1≤i≤k,e1和e2分别表示环成员的属性基集合e[e1,e2]中的元素e1、e2;

步骤a3.1.2.上述环成员根据接收到的新用户的自证明证据进行计算,输出验证结果,并将凭证自身的私钥签名后,将最终得到的验证结果发送至新用户,再进入步骤a3.2;

步骤a3.2.统计新用户收到的验证结果为1的数量l,若满足l>m,则认为该新用户有效,将该新用户加入网络中成为环成员;反之则拒绝该新用户加入。

进一步地,为了高效的计算环签名,所述可并行的环签名生成阶段的操作如下:

每个环成员根据安全参数α计算自己的公私钥对(skr,pkr),用自身的私钥skr生成一个匿名的任务t,并将任务t发给多个云计算服务器;每个云计算服务器收到任务t之后,根据所有环成员的公钥进行计算,得到具有所有环成员公钥信息的中间参量w,并将w公开;环中各环成员再根据w和自己的私钥skr计算出自己需要使用的环签名中间参量w′。

采用上述生成的基于公有链的可匿名撤销的环签名的撤销方法,包括以下步骤:

撤销初始化阶段:每个环成员根据公开参数、所有环成员的公钥计算出一对公私钥对(skd,pkd)作为撤销密钥对,用于撤销可疑环成员的匿名身份信息;其中,私钥skd用于生成撤销请求,公钥pkd用于验证撤销请求的有效性;

撤销决议发起阶段:网络中任意用户对各个环成员进行监督,若发现存在可疑环成员,则发起撤销该可疑环成员匿名身份信息的撤销请求,并将撤销请求发布于环中;其中,撤销请求包括撤销决议块w0、可疑环成员的环签名σ以及发起撤销请求的用户的公钥,撤销决议块w0由公开参数、可疑环成员的环签名σ和私钥skd计算生成;

撤销决议判断阶段:环中其他环成员首先通过自身的公钥验证撤销决议块w0的有效性,再以匿名投票表决的方式决定是否支持撤销可疑环成员匿名身份信息;若表决未通过,则丢弃该撤销请求;若表决通过,则发起撤销请求的用户再根据自身的私钥、公开参数和可疑环成员的环签名σ计算撤销决议块wi,并将计算出的撤销决议块wi发布到网络中进行传播;

撤销决议生效阶段:环签名系统统计出网络中广播的撤销决议块wi的数量d,若数量d大于用于预先设定的协商撤销用户匿名身份信息的阈值n,则联合所有环成员对可疑环成员的环签名σ进行门限解密,将可疑环成员直接剔除出环,最终恢复该环签名σ的签发者身份信息,并在网络中广播。

一种基于公有链的可匿名撤销的环签名,包括基于自证明的环签名生成模块和匿名身份撤销模块,基于自证明的环签名生成模块用于生成可匿名撤销的环签名,匿名身份撤销模块用于撤销具有可匿名撤销的环签名的环成员的匿名身份,基于自证明的环签名生成模块包括:

密钥生成单元,根据公开参数计算新用户的公私钥对,新用户结合公开参数、公私钥对和自身的身份标识集合,计算自身的属性基集合;

自证明生成单元,新用户基于公开参数和自身的属性基集合,计算用于认证新用户身份信息的自证明证据,并向网络中的环成员广播自身的自证明证据;

自证明验证单元,环中每个环成员根据公开参数和新用户的自证明证据验证新用户的可进入性,将验证通过的新用户加入网络中,使其成为环成员;

可并行的环签名生成单元,根据环中所有环成员的公钥计算具有所有环成员公钥信息的中间参量,各个环成员根据中间参量计算自身的环签名;

匿名身份撤销模块包括:

撤销初始化单元,每个环成员根据公开参数、所有环成员的公钥计算出一对公私钥对(skd,pkd)作为撤销密钥对,用于撤销可疑环成员的匿名身份信息;其中,私钥skd用于生成撤销请求,公钥pkd用于验证撤销请求的有效性;

撤销决议发起单元,网络中任意用户对各个环成员进行监督,若发现存在可疑环成员,则发起撤销该可疑环成员匿名身份信息的撤销请求,并将撤销请求发布于环中;其中,撤销请求包括撤销决议块w0、可疑环成员的环签名σ以及发起撤销请求的用户的公钥,撤销决议块w0由公开参数、可疑环成员的环签名σ和私钥skd计算生成;

撤销决议判断单元,环中其他环成员首先通过自身的公钥验证撤销决议块w0的有效性,再以匿名投票表决的方式决定是否支持撤销可疑环成员匿名身份信息;若表决未通过,则丢弃该撤销请求;若表决通过,则发起撤销请求的用户再根据自身的私钥、公开参数和可疑环成员的环签名σ计算撤销决议块wi,并将计算出的撤销决议块wi发布到网络中进行传播;

撤销生效判断单元,环签名系统统计出网络中广播的撤销决议块wi的数量d,若数量d大于用于预先设定的协商撤销用户匿名身份信息的阈值n,则联合所有环成员对可疑环成员的环签名σ进行门限解密,将可疑环成员直接剔除出环,最终恢复该环签名σ的签发者身份信息.并在网络中广播。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1、本发明基于环签名的匿名投票表决方法、门限密码策略和基于云计算的环签名并行计算方法,实现完全去中心化环境下匿名身份条件可追踪的目的,同时保证在撤销决议操作中其他环用户身份的不可泄露与撤销决议的不可追踪性。本发明实现了公有链上用户的环签名高效生成、匿名身份可条件撤销、以及撤销过程的安全、公正和可信的特性,从而提高了网络安全性。

2、本发明中,环中成员在完成身份自证明之后将加入环签名系统,其本身将作为环上的一个节点。通过使用基于云计算的环签名并行计算方法,通过将计算量安全外包,实现了环签名的高效生成。

3、本发明中,由一个环用户提交针对某个环上签名的身份匿名撤销请求并生成一个不泄漏该环用户身份信息的撤销决议块,环用户通过匿名投票表决判断是否对可疑环成员的匿名身份进行撤销。待所有环中节点匿名投票完成之后,若支持撤销意见超过其设定的阀值,则通过门限解密的方式,将该环签名签发者身份恢复。本发明使用基于环签名的匿名投票表决策略,实现了环用户的匿名身份条件可追踪的目的。在需要对生成的环签名进行逆向追踪时,使用基于门限密码的方法对可疑环成员匿名身份信息进行撤销,既保证了在撤销操作中其他环用户身份的不可泄露与撤销决议的不可追踪性,又实现了撤销过程的安全、公正和可信。

4、本发明中,通过采用计算用户的属性基集合和自证明证据,再联合多个环成员进行验证,实现了多节点的自主、可信认证,实现了无中心的条件,新用户的认证和接入。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明的流程示意图;

图2位本发明的生成及撤销方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以下结合实施例对本发明的特征和性能作进一步的详细描述。

实施例1

本发明较佳实施例提供了一种基于公有链的可匿名撤销的环签名,如图1所示,包括以基于自证明的环签名生成模块和匿名身份撤销模块,基于自证明的环签名生成模块用于生成可匿名撤销的环签名,匿名身份撤销模块用于撤销具有可匿名撤销的环签名的环成员的匿名身份。基于自证明的环签名生成模块包括密钥生成单元、自证明生成单元、自证明验证单元、可并行的环签名生成单元,匿名身份撤销模块包括撤销初始化单元、撤销决议发起单元、撤销决议判断单元、撤销生效判断单元。

如图2所示,本发明基于公有链的可匿名撤销的环签名的生成方法的具体步骤如下:

步骤a1.密钥生成阶段(对应于密钥生成单元):

根据公开参数计算新用户的公私钥对,新用户结合公开参数、公私钥对和自身的身份标识集合,计算自身的属性基集合。

公开参数包括随机数集合r[r1,...,rk],预先设定的安全参数α,通过向环签名系统输入安全参数α后产生的一对默认参数(ks,kp)、用于衡量是否加入新用户的阈值m和用于协商撤销用户匿名身份信息的阈值n。身份标识集合包括新用户的身份标识id、ip地址、电子邮箱地址后缀、工作单位名称、位置信息。通过环管理员指定带有属性基集合e[e1,e2](即具有了公私钥对)的合法用户成为环成员,每当有新用户希望加入环并成为一个环成员时,需要提供一个不泄漏但能证明其拥有的身份标识集合。计算新用户的自证明证据的具体步骤如下:

步骤a1.1.新用户根据安全参数α计算得到自身的公私钥对(sks,pks)。

步骤a1.2.根据公开参数和新用户的身份标识id、公私钥对(sks,pks),计算该新用户的属性基集合s[s1,s2]。以rsa方案为例,每个用户用自身的身份标识id进行计算各自对应的属性基集合,属性基集合s[s1,s2]中两个元素的具体表现形式如下:

上述两式中,ri表示随机数集合r[r1,...,rk]中下标为i的元素,且满足1≤i≤k,计算新用户的属性基集合时,选择随机数集合r[r1,...,rk]中任意一个元素进行计算;h表示哈希函数;id表示新用户的身份标识id;“||”表示合并;kp为默认参数(ks,kp)中的元素kp,sks为公私钥对(sks,pks)中的私钥sks。本方法中,每个新用户使用默认参数(ks,kp)来进行哈希计算,由此计算得到的属性基集合可以达到通过新用户公钥即可推导本步骤中的两个计算公式是否成立,属性基集合是描述用户身份标识的基本集合。

步骤a2.自证明生成阶段(对应于自证明生成单元):

新用户基于安全参数α和自身的属性基集合,计算用于认证新用户身份信息的自证明证据d[d1,d2],并向网络中的环成员广播自证明证据d[d1,d2]。

步骤a3.自证明验证阶段(对应于自证明验证单元):

环中每个环成员根据公开参数和新用户的自证明证据验证新用户的可进入性,将验证通过的新用户加入网络中成为环成员。最初的环成员由环管理员指定。本具体步骤如下:

步骤a3.1.环中各个环成员接收新用户提供的自证明证据d[d1,d2],根据公开参数和自身的属性基集合e[e1,e2]验证新用户的可进入性。

验证的内容包括判断ri和是否相等以及和h(r||id||kp)是否相等,验证结果为0或1,验证成功的验证结果为1。其中,ri表示随机数集合r[r1,...,rk]中下标为i的元素,判断验证内容是否成立时,选择随机数集合r[r1,...,rk]中任意一个元素进行计算;e1和e2分别表示环成员的属性基集合e[e1,e2]中的元素e1、e2。若满足ri和相等且和h(r||id||kp)相等,则表示验证成功,反之则表示验证失败,拒绝该新用户加入。若环成员验证成功,则该环成员根据接收到的新用户的自证明证据d[d1,d2]进行计算,输出验证结果0或1,并将凭证自身的私钥签名后,将最终得到的验证结果发送至新用户,再进入步骤a3.2。

步骤a3.2.统计新用户收到的验证结果为1的数量l,若满足l>m,则认为该新用户有效,将该新用户加入网络中成为环成员;反之则拒绝该新用户加入。

步骤a4.可并行的环签名生成阶段(对应于可并行的环签名生成单元):

根据环中所有环成员的公钥计算具有所有环成员公钥信息的中间参量,各个环成员根据中间参量计算自身的环签名。具体方法如下:

为了高效的计算环签名,每个环成员根据安全参数α计算自己的公私钥对(skr,pkr)(此时,各环成员的公私钥对均一致,为(skr,pkr)),用自身的私钥skr生成一个匿名的任务t,并将任务t发给多个云计算服务器。每个云计算服务器收到任务t之后,根据所有环成员的公钥进行计算,得到具有所有环成员公钥信息的中间参量w,并将w公开。环中各环成员再根据w和自己的私钥skr计算出自己需要使用的环签名中间参量w′。本方法通过利用云计算服务器并行化执行计算任务,既降低了环中各环成员的计算开销,又避免了环成员隐私的泄露。

基于公有链的可匿名撤销的环签名的撤销方法的具体步骤如下:

步骤b1.撤销初始化阶段(对应于撤销初始化单元):

每个环成员根据安全参数α、所有环成员的公钥计算出一对公私钥对(skd,pkd)作为撤销密钥对,用于撤销可疑环成员的匿名身份信息。其中,私钥skd用于生成撤销请求,公钥pkd用于验证撤销请求的有效性。

步骤b2.撤销决议发起阶段(对应于撤销决议发起单元):

网络中任意用户(包括网络中的普通用户、环成员、节点)对各个环成员进行监督,若发现存在可疑环成员,则发起撤销该可疑环成员匿名身份信息的撤销请求,并将撤销请求发布于环中。其中,撤销请求包括撤销决议块w0、可疑环成员的环签名σ以及发起撤销请求的用户的公钥,撤销决议块w0由安全参数α、可疑环成员的环签名σ和私钥skd计算生成。

步骤b3.撤销决议判断阶段(对应于撤销决议判断单元):

环中其他环成员首先通过自身的公钥验证撤销决议块w0的有效性,再以匿名投票表决的方式决定是否支持撤销可疑环成员匿名身份信息。若表决未通过,则丢弃该撤销请求;若表决通过,则发起撤销请求的用户再根据自身的私钥、安全参数α和可疑环成员的环签名σ计算撤销决议块wi,并将计算出的撤销决议块wi发布到网络中进行传播。

步骤b4.撤销决议生效阶段(对应于撤销决议生效单元):

环签名系统统计出网络中广播的撤销决议块wi的数量d,若数量d大于用于协商撤销用户匿名身份信息的阈值n,则联合所有环成员对可疑环成员的环签名σ进行门限解密,将可疑环成员直接剔除出环,最终恢复该环签名σ的签发者身份信息(即恢复到该用户的属性基集合的状态),并在网络中广播。

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

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