一种基于属性基加密的交易客体身份匿名可追踪方法、网络设备、存储设备

文档序号:31761461发布日期:2022-10-12 03:05阅读:127来源:国知局
一种基于属性基加密的交易客体身份匿名可追踪方法、网络设备、存储设备

1.本发明属于区块链交易的匿名追踪安全技术领域,是一种基于属性基加密的交易客体追踪方法、网络设备、存储设备。适合远程的可信通信,需要对用户身份的匿名保护和交易信息、用户信息的远程可追踪。


背景技术:

2.区块链可以在分布式账本中记录交易行为、存储数据和交换价值,整个过程不受任何中心化机构的控制,而是由分布在世界各地的计算机进行维护。随着区块链应用的不断发展,区块链暴露的问题也随之体现出来,对区块链交易的监管也愈发重要,区块链的优势在于去中心化,匿名化和可信机制。其中区块链匿名交易是区块链交易监管的重要组成部分,区块链上的交易内容包括用户的地址、用户的身份信息等都是公开透明的,可以让所有参与节点对交易进行验证和记录。区块链公开透明的特点方便了节点对交易的验证,但同时带来了用户的隐私保护问题。对于近年来出现许多设计去匿名化方案,在保护了用户隐私的同时,也为用户追踪带来了困扰。在此基础上,监管系统也面临巨大的挑战。
3.当前区块链用户隐私保护主要由以下三种方案:(1)基于混合技术;(2)基于还签名技术;(3)基于零知识证明;这三种方案考虑到用户信息的隐私保护,可没有考虑到用户身份监管等方面。而对于交易追踪方面,虽然有提出过可审计可追踪的交易方案,但是对用户的隐私保护却没有考虑到。


技术实现要素:

4.针对上述问题,本发明提出一种基于属性基加密的交易客体身份匿名可追踪方法、网络设备和存储设备,既保护了以防第三方干扰的用户之间的交易,又能够对非法交易进行追踪,保护了用户的隐私和交易的合法性,该方法包括如下步骤:
5.(1)用户端上传自身信息到注册中心rc,进行注册;
6.(2)注册中心对用户注册后上传至区块链网络;
7.(3)当用户之间发生交易时,审计端口对用户双方的交易进行检验;
8.(4)对于合法的交易,上传至区块链网络并进行广播;
9.(5)对于非法的交易,向监管端口报告,请求追踪;
10.(6)监管端口对非法交易进行追踪,并从区块链网络中找出此非法交易的匿名用户;
11.进一步地,上述步骤1的实现包括:
12.步骤1.1区块链服务器通过调用智能合约,调用setup()函数,生成公共参数pk,和主密钥mk,并将pk、mk发送给注册中心rc。
13.setup算法输入的是秘密安全参数,输出的是公共参数pk和主密钥mk,其表达式如式(1)所示:
14.pk=(g,e(g,g)
α
,ga)mk=gaꢀꢀꢀꢀꢀ
(1)
15.其中,g是g1的生成元,g1是一个阶为素数的p阶双线性群,随机选取α和a,使得α和a属于p阶的整数,即α,a∈z
p
,z
p
是p阶双线性群的整数部分。e(g,g)为g 与g做双线性映射。
16.步骤1.2审计端口和监管端口分别把自己的属性组s1和s2发送给注册中心rc。
17.步骤1.3生成审计端口私钥sk1,通过算法kengen()算法,生成密钥sk1,即 sk1=kengen(pk,sk,s1),该算法以审计端口的属性集合s1、主密钥mk和公共参数pk 作为输入,输出审计端口私钥sk1。其表达式如式(2)所示:
[0018][0019]
选取随机数β∈z
p
,r∈z
p
,rj∈z
p
,j是用户s1中的每一个属性,即j∈s1。h(j)将属性字符串j散列成g1中的元素,d、dj、d'i为中间变量。
[0020]
步骤1.4生成监管端口私钥sk2,通过算法kengen(pk,mk,s2)生成密钥sk2,即 sk2=kengen(pk,sk,s2),该算法以监管端口的属性集合s2、主密钥mk和公共参数pk作为输入,输出监管端口私钥sk2。其表达式如式(3)所示:
[0021][0022]
选取随机数γ∈z
p
,γj∈z
p
,j是s2中的每一个属性,即j∈s2。
[0023]
步骤1.5注册中心rc将私钥sk1和sk2分别发送给审计端口和监管端口。
[0024]
步骤1.6审计端口和监管端口获取来自注册中心的私钥sk1和sk2。
[0025]
进一步地,上述步骤2的实现包括:
[0026]
步骤2.1用户请求向注册中心rc进行注册申请。
[0027]
步骤2.2用户a向注册中心rc发送自己的属性组s3和注册信息m1。
[0028]
步骤2.3注册中心rc获取用户a的属性组s3,注册中心rc生成用户的公钥pk3和私钥sk3,其中调用kengen()函数生成用户的私钥sk3。
[0029]
步骤2.4注册中心rc通过注册交易地址x向用户a发送公钥pk3和私钥sk3。
[0030]
步骤2.5注册中心rc调用encrypt(pk,m,γ)算法,即输入公共参数pk,明文消息m(指的是注册信息m1),访问结构a(a=γ),输出密文c
t
,即c
t
=encrypt(pk,m,γ),密文c
t
的表示如式(4)所示:
[0031][0032]
其中,选择随机数y为访问控制树t的叶子节点的集合,任意y∈y,att(y) 表示叶节点y对应的属性字符串,h(att(y))将属性字符串att(y)散列成g0中的元素,γ为访问控制树t的访问控制结构。qy(0)为子节点常数项,c、cy、c'y为中间变量,var h=g
β

[0033]
即用户a的注册信息m1进行加密操作,生成密文消息m1’
。即 m1’
=encrypt(pk,sk3,γ),γ为访问控制树t的访问控制结构。包含用户a的属性组s3和监管端口属性组s2。
[0034]
步骤2.6注册中心rc将加密后的密文消息m1’
以交易广播的形式上传至区块链端口。
[0035]
进一步地,步骤2.1中,具体操作如下:
[0036]
步骤2.1.1用户请求向注册中心rc提出注册申请。
[0037]
步骤2.1.2注册中心rc通过注册中心的审核并向区块链网络发送注册交易请求。
[0038]
步骤2.1.3区块链网络接受交易请求,并广播注册交易,发送到用户的地址x,完成注册。
[0039]
在步骤2.6中,进行进一步的说明:
[0040]
即经过属性基加密的用户a在链上数据实现了匿名,当且仅当只有监管端口和用户本身知道用户a的信息,方便了监管端口的追踪。对此进行进一步的匿名性说明:用户以交易的形式进行注册,由用户注册中心rc对用户信息m1进行属性基加密,所构造的访问控制树当且仅当用户自己本身和监管者能够对其进行解密。用户注册中心rc把用户的信息经过属性基加密后得到的信息m1’
,信息上传至区块链网络,保护了用户的隐私。
[0041]
进一步地,上述步骤3的实现包括:
[0042]
步骤3.1用户a向用户b发送交易请求。
[0043]
步骤3.2若用户b接受用户a的交易请求,用户b对自己属性组s4进行加密操作, 得到加密属性组s4’
并对其进行签名操作,得到数字签名δ1。
[0044]
步骤3.3用户b将{δ1、s4’
}发送给用户a。
[0045]
步骤3.4用户a对δ1进行签名验证,验证不通过跳转到步骤3.3。验证通过转到步骤 3.5。
[0046]
步骤3.5用户a对加密属性组s4’
进行解密,得到属性组s4。
[0047]
步骤3.6用户a构造交易方案m,对其进行签名,得到签名σ和属性基加密并将其发送给用户b。
[0048]
步骤3.7用户b接受来自用户a的消息{pk3、m’、σ}。然后对密文交易m’进行解密操作并进行签名验证。
[0049]
步骤3.8用户b收到交易方案m,若同意该交易方案,对其交易方案进行签名,得到签名σ’。将该交易以广播的形式发出,表示为(pk3,pk4,m',σ,σ')。其中包括用户a 和用户b的公钥pk3和pk4,密文交易m’,和用户a和用户b的签名σ和σ’。
[0050]
进一步地,步骤3.2中,具体操作如下:
[0051]
步骤3.2.1用户端口获取用户b的属性集s4并对其进行加密。
[0052]
步骤3.2.2用户b对加密属性组s4’
进行签名,得到数字签名δ1。进行签名处理:输入文件和私钥,输出字符串。即输入用户b的属性组s4和用户b的私钥sk4,输出数字签名δ1。
[0053]
进一步地,步骤3.4中,具体操作如下:
[0054]
步骤3.4.1用户a接收来自用户b发出的{δ1、s4’
}。
[0055]
步骤3.4.2通过验证算法,输入文件、数字签名和公钥,输出验证成功或者验证失败,验证不通过跳转到步骤3.3。验证通过转到步骤3.5。
[0056]
进一步地,步骤3.6中,具体操作如下:
[0057]
步骤3.6.1用户a构造交易方案m,对其进行数字签名,得到签名σ。
[0058]
步骤3.6.2用户a对交易方案m进行属性基加密操作,调用encrypt()函数对交易方案m进行加密,生成密文交易m’。即m’=encrypt(pk,sk3,γ),γ为访问控制树t 的访问控制结构,包含用户a的属性组s3,用户b的属性组s4,审计端口属性组s1和监管端口属性组s2。
[0059]
步骤3.6.3用户a将{pk3、m’、σ}发送给用户b。
[0060]
进一步地,步骤3.7中,具体操作如下:
[0061]
步骤3.7.1用户b接受来自用户a的消息{pk3、m’、σ}。
[0062]
步骤3.7.2对密文交易m’进行解密,调用decryption()算法对密文交易m’进行解密,这是一个解密算法,通过解密得到消息m的表达如式(5)所示:
[0063][0064]
输入公共参数pk,含有访问结构a的密文c
t
和私钥sk,即输入公共参数pk,密文m’和用户b私钥sk4,经解密得到交易方案m。
[0065]
步骤3.7.2对消息m进行签名验证,输出验证成功或者验证失败,验证不通过跳转到步骤3.6。验证通过转到步骤3.8。
[0066]
在步骤3.8中,进行进一步的说明:
[0067]
对于交易的匿名体现在构造了交易方案m进行加密,生成密文交易m’只有交易双方和监管者通过解密之后可见,第三方不可见,保护交易的匿名。
[0068]
进一步地,上述步骤4的实现包括:
[0069]
步骤4.1审计端口收到交易信息(pk3,pk4,m',σ,σ'),并对其进行审计。若审计通过,属于合法交易,则将该交易上传至区块链服务器。
[0070]
步骤4.2若该交易存在非法行为,或是签名验证失败,则审计不通过,上报至监管端口,对其进行追踪。
[0071]
进一步地,步骤4.1中,具体操作如下:
[0072]
步骤4.1.1对其进行签名审计,对密文交易m’进行解密,调用decryption()算法对密文交易m’进行解密得到交易方案m。对其进行签名验证,验证不通过跳转至步骤4.2。
[0073]
步骤4.1.2对交易方案进行审计,该方法可通过人工审计或者由区块链智能合约进行审计,或由两者共同组成,通过对交易金额的溢出,信息的合法性进行甄别,若通过则将将该交易信息(pk3,pk4,m',σ,σ')在区块链服务器上进行广播并上传至区块链网络。若不通过跳转至步骤4.2。
[0074]
进一步地,上述步骤5的实现包括:
[0075]
步骤5.1监管端口收到非法匿名交易(pk3,pk4,m',σ,σ'),获取交易发送方用户a 的公钥pk3和交易接收方用户b的公钥pk4。
[0076]
步骤5.2调用decryption()算法对用户的加密信息{m1’
、m2’……mn’}进行解密操作,得到用户的注册信息{m1、m2……mn
},找到与之匹配的公钥pk3和pk4。
[0077]
记为消息m1、m2。
[0078]
步骤5.3通过消息m1、m2,获取用户a的注册交易地址x,和用户b的注册交易地址y,通过对该地址的访问,获取到用户a和用户b的所有信息。
[0079]
在步骤5中,进行进一步的说明:
[0080]
监管者可通过解密密文交易m’,获取用户的公钥,从用户信息m
x
中抽取符合条件的用户,之后获取用户的地址,对其进行访问,从而获取用户的信息。
[0081]
本发明还提出一种网络设备或存储设备,所述网络设备按照上述设计的方法运行,所述存储设备内存储有上述方法的程序代码。
[0082]
本发明的有益效果:
[0083]
1、对于区块链交易的匿名化,实现了对交易的监管。
[0084]
2、针对用户之间的交易,既保护了用户的身份信息以防第三方的干扰,又能对交易进行可追踪。
[0085]
3、增加了审计端口来判断了交易的合法性。
[0086]
4、提出一种基于属性基加密的交易客体身份匿名可追踪方法,既能保护交易客体的身份,又能实现交易的监管
附图说明
[0087]
图1为访问控制树构造图;
[0088]
图2为访问控制树实例图;
[0089]
图3为系统框架图;
[0090]
图4为用户交易追踪流程图。
具体实施方式
[0091]
本发明涉及利用区块链的加解密、智能合约等机制实现对交易客体身份的匿名和监管者追踪等技术领域,是一种用于可行交易客体匿名追踪的方案。大致包括如下步骤:首先由区块链服务器生成公共参数pk和主密钥mk并派发到注册中心rc。在由注册中心rc生成审计端口和监管端口的私钥。其次由用户端向注册中心rc发送注册申请。接着注册中心rc对接收来自用户端的申请进行验证、广播至区块链,之后完成用户身份注册并将加密过后的用户数据上传至区块链网络。用户之间进行交易m由一用户向另一用户发送交易请求,另一用户在接收交易请求后,对交易在区块链上进行广播,由审计端口对这笔交易进行审计,若出现非法或者违规操作,则对这笔交易进行追踪,若此笔交易合法,则将其上传至区块链网络中。本发明采用属性基加密和区块链存储相结合的方法,保证远程交易过程中用户隐私的保护和匿名性、通信的安全和数据的安全性、不可篡改性以及交易的可追溯性。
[0092]
下面结合附图对本发明作进一步说明。
[0093]
说明书附图1为本发明访问控制树的构造,包含叶子节点与非叶子节点。叶子节点作为属性值以及父节点传于此节点的秘密值,只有当数据访问者拥有此属性方可解密出此节点的秘密值;非叶子节点为门限节点,数据访问者需满足此门限最低值方可解密此节点秘密值。对于节点“x/n”,当其n个叶子节点中,至少有x个叶子节点满足条件方可解密。同理,对于节点“y1/m
1”当其m1个叶子节点中,至少有y1个叶子节点满足条件方可解密。当访问者某些属性满足时,可解密出其叶子节点的秘密值,如式(6)所示:
[0094][0095]
当属性不满足时,记为对于监管端口来说,要使得监管端口能够解密任意消息,在访问构造数中添加或门,使得访问控制树在满足用户访问结构或者是监管方都可对其进行解密操作,使得监管端口能追踪到用户。其改进后的访问控制树见说明书附图2,其中,当叶子节点满足是“监管者”时,不考虑节点“x/n”,由于头节点为“1/2”,满足其一即可,此时作为监管端口可直接对消息进行解密。
[0096]
对于步骤3.7.2中对密文交易m’解密时,具体的操作即调用decryption()算法对
进行解密,输入公共参数pk,含有访问结构的密文c
t
和私钥sk,调用 decryption(pk,c
t
,sk4),输入公共参数pk,密文m’和医生的用户b的私钥sk4。当且仅当用户b、用户a或者监管者方可对密文交易m’进行解密。
[0097]
说明书附图3为本发明的系统框架图,基于属性基加密的交易客体身份匿名可追踪协议具有三个端口:用户端、审计端、监管端;一个区块链服务器;一个注册中心rc。
[0098]
用户端:区块链交易的发起者或者接收者。
[0099]
审计端:对链上交易进行审计,判别是否存在非法交易。
[0100]
监管端:对存在非法交易进行追踪,找出交易发起者信息。
[0101]
区块链服务器:用户信息匿名存储,交易存储。
[0102]
注册中心rc:以发起交易的方式对用户信息进行注册并加密上传至区块链中。
[0103]
该系统框架主要分为5个阶段
[0104]
(1)初始阶段:区块链服务器、用户端口、审计端口、监管端口初始化。
[0105]
(2)用户注册阶段:用户通过注册中心rc进行注册、注册信息经过加密。存于区块链
[0106]
(3)发送消息阶段:匿名用户a向匿名用户b发送交易。
[0107]
(4)消息验证阶段:审计端口验证交易的合法性。
[0108]
(5)用户追踪阶段:若是非法交易,由监管方对其进行追踪。
[0109]
结合说明书附图3,首先由用户端上传自身信息到注册中心rc,进行注册,其次,注册中心对用户注册后上传至区块链网络,当用户之间发生交易时,审计端口对用户双方的交易进行检验,对于合法的交易,上传至区块链网络并进行广播;对于非法的交易,向监管端口报告,请求追踪然后由监管端口对非法交易进行追踪,并从区块链网络中找出此非法交易的匿名用户。
[0110]
前期准备工作:区块链服务器通过调用智能合约,调用setup()函数,生成公共参数pk,和主密钥mk,并将pk、mk发送给注册中心rc。审计端口和监管端口把自己的属性组s1和s2发送给注册中心rc,通过算法kengen()算法,生成审计端口私钥sk1和监管端口私钥sk2。并将其发送给审计端口和监管端口。
[0111]
(1)用户注册阶段
[0112]
(1-1)用户请求向注册中心rc进行注册申请。
[0113]
(1-2)用户a向注册中心rc发送自己的属性组s3和注册信息m1。
[0114]
(1-3)注册中心rc获取用户a的属性组s3,注册中心rc生成用户的公钥pk3和私钥sk3,其中调用kengen()函数生成用户的私钥sk3。
[0115]
(1-4)注册中心rc通过注册交易地址x向用户a发送公钥pk3和私钥sk3。
[0116]
(1-5)注册中心rc调用encrypt(pk,m,γ)算法对用户a的注册信息m1进行加密操作,生成密文消息m1’
。即m1’
=encrypt(pk,sk3,γ),γ为访问控制树t的访问控制结构。包含用户a的属性组s3和监管端口属性组s2。
[0117]
(1-6)注册中心rc将加密后的密文消息m1’
以交易广播的形式上传至区块链端口。
[0118]
(2)发送消息阶段
[0119]
(2-1)用户a向用户b发送交易请求。
[0120]
(2-2)若用户b接受用户a的交易请求,用户b对自己属性组s4进行加密操作,得到
加密属性组s4’
并对其进行签名操纵,得到数字签名δ1。
[0121]
(2-3)用户b将{δ1、s4’
}发送给用户a。
[0122]
(2-4)用户a对其进行签名验证,验证不通过跳转至(2-3)。验证通过转至(2-5)。
[0123]
(2-5)用户a对加密属性组s4’
进行解密,得到属性组s4。
[0124]
(2-6)用户a构造交易方案m,对其进行签名,得到签名σ和属性基加密并将其发送给用户b。
[0125]
(2-7)用户b接受来自用户a的消息{pk3、m’、σ}。
[0126]
(2-8)对密文交易m’进行解密,调用decryption()算法对密文交易m’进行解密输入公共参数pk,含有访问结构a的密文c
t
和私钥sk,即输入公共参数pk,密文m’和用户b私钥sk4,经解密得到交易方案m。
[0127]
(2-9)对消息m进行签名验证,输出验证成功或者验证失败,验证不通过跳转到步骤(2-6)。验证通过转到(2-10)。
[0128]
(2-10)用户b收到交易方案m,若同意该交易方案,对其交易方案进行签名,得到签名σ’。将该交易以广播的形式发出,表示为(pk3,pk4,m',σ,σ')。其中包括用户a 和用户b的公钥pk3和pk4,密文交易m’,和用户a和用户b的签名σ和σ’。
[0129]
(3)消息验证阶段
[0130]
(3-1)审计端口收到交易信息(pk3,pk4,m',σ,σ'),并对其进行审计。若审计通过,属于合法交易,则将该交易上传至区块链服务器。
[0131]
(3-2)对其进行签名审计,对密文交易m’进行解密,调用decryption()算法对密文交易m’进行解密得到交易方案m。对其进行签名验证,验证不通过跳转至(3-4)。
[0132]
(3-3)对交易方案进行审计,改方法可通过人工审计或者由区块链智能合约进行审计,或由两者共同组成,通过对交易金额的溢出,信息的合法性进行甄别,若通过则将将该交易信息(pk3,pk4,m',σ,σ')在区块链服务器上进行广播并上传至区块链网络。若不通过跳转至(3-4)。
[0133]
(3-4)若该交易存在非法行为,或是签名验证失败,则审计不通过,上报至监管端口,对其进行追踪。
[0134]
(4)用户追踪阶段
[0135]
(4-1)监管端口收到非法匿名交易(pk3,pk4,m',σ,σ'),获取交易发送放用户a 的公钥pk3和交易接收方用户b的公钥pk4。
[0136]
(4-1)调用decryption()算法对用户的加密信息{m1’
、m2’……mn’}进行解密操作,得到用户的注册信息{m1、m2……mn
},找到与之匹配的公钥pk3和pk4。
[0137]
记为消息m1、m2。
[0138]
(4-2)通过消息m1、m2,获取用户a的注册交易地址x,和用户b的注册交易地址y,通过对该地址的访问,获取到用户a和用户b的所有信息。
[0139]
说明书附图4为本发明的用户交易追踪流程图,由审计端口判断该用户之间交易的合法性,若通过则将该交易进行广播并上传至区块链网络。若该交易存在非法行为,审计没有通过,则对其进行追踪。由监管端口接收此交易信息,然后对区块链网络上用户注册消息进行解密操作,再然后与该交易信息进行匹配操作,如果匹配失败,则获取下一个用户的信息,并与之进行匹配操作;如果匹配成功,则获取当前交易的用户的地址,通过该地址对
用户的信息进行访问,完成追踪。
[0140]
本发明实施例还包括一种网络设备或存储设备,所述网络设备按照上述设计的方法运行,所述存储设备内存储有上述方法的程序代码。
[0141]
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技术所创的等效方式或变更均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1