一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链可追溯的个人隐私保护方法

2022-11-09 22:38:17 来源:中国专利 TAG:


1.本发明涉及隐私保护技术领域,更具体的说是涉及一种基于区块链可追溯的个人隐私保护方法。


背景技术:

2.区块链是一种分布式连接的点对点网络,可以防止个人隐私数据通过第三方服务机构传输,提高数据传输速率,减少传输延迟。为了安全地存储和传输这些数据,以保证其完整性、有效性和真实性,访问控制也成为个人隐私数据安全共享的重要研究内容。因此,许多学者将区块链技术与现有的访问控制模型相结合,开展了一系列研究工作。zyskind和nathan结合自主访问控制模型(dac),通过区块链上的访问控制策略来管理链下敏感数据。cruz等人使用区块链解决基于角色的访问控制模型(rbac)中的跨组织访问控制问题,实现用户角色的跨组织身份验证。maesa等人扩展了基于属性的访问控制模型(abac)的标准工作流程,用区块链代替传统数据库来存储策略,并以事务的形式管理访问策略。但上述方法仅适用于特定场景,访问控制单一,不适用于个人信息访问中的一对多加密场景。
3.目前,基于属性的加密算法(abe)被认为是解决安全访问控制问题的方法。abe是在ibe(identity-based encryption,ibe)的基础上发展起来的,特别适用于一对多的加密场景。当解密者满足加密者指定的某些要求时,解密者就可以成功解密她/他想要访问的密文abe算法不仅保证了数据的机密性,还提供了对数据的细粒度访问控制。因此,在个人信息需要共享的环境下,abe加密算法可以有效解决外包数据的安全访问控制问题。
4.abe拥有广泛的应用场景,abe方案的许多变体包括密钥策略abe(kp-abe)和密文策略abe(cp-abe)已被提出。在实现一对多加密数据共享的场景中,经常使用cp-abe方案。然而,该方案的低效率严重阻碍了其在实践中的应用。bethencourt等人提出了一种cp-abe方案,由于其简单的树结构,适合实际应用。除了树访问结构之外,还有其他基于与门和线性秘密共享方案(lsss)矩阵的abe结构。在cp-abe方案的应用中,密钥滥用是数据用户可能将私钥信息泄露给非法用户的问题之一。
5.个人隐私信息保护越来越成为当下关注的热点问题,而互联网技术的应用又使得个人信息保护变得十分困难。传统的个人信息保护技术已经不能充分保障个人信息的安全,因此如何保护个人信息是本领域技术人员亟需解决的问题。


技术实现要素:

6.有鉴于此,本发明提供了一种基于区块链可追溯的个人隐私保护方法,克服上述缺陷。
7.为了实现上述目的,本发明提供如下技术方案:
8.一种基于区块链可追溯的个人隐私保护方法,具体步骤为:
9.系统初始化:初始化shamir的阈值共享方案ins
t,n
得到系统公钥pk和主私钥msk;
10.数据加密:将消息m采用第一对称密钥k进行加密,生成消息密文ctm,将消息密文
ctm和lsss矩阵访问策略(m,ρ)上传至ipfs存储服务器进行存储;根据lsss矩阵访问策略(m,ρ)和第一对称密钥k生成密文ct,上传至区块链进行存储;从素群属性集映射组合中择一随机数s,根据第二对称密钥k'生成随机密文enc
k'
(s);
11.密钥生成:根据系统公钥pk、主私钥msk、用户身份id、用户属性集生成解密密钥
12.数据解密:通过对密文ct、系统公钥pk、解密密钥进行计算获得第一对称密钥k,根据第一对称密钥k解密消息密文ctm获得消息m;
13.策略更新:将lsss矩阵访问策略(m,ρ)更新为待更新访问策略(m',ρ'),并通过第二对称密钥k'解密随机密文enc
k'
(s)获得随机数s;根据待更新访问策略(m',ρ')、随机数s、rsa签名σ获得待更新密文ct';
14.策略验证:通过rsa签名验证算法验证rsa签名σ的正确性,将待更新密文ct'与密文ct进行对比,判断是否成立;若成立,获得更新密文ct”;根据更新密文ct”生成更新的策略块a';
15.解密密钥验证:根据系统公钥pk、系统主私钥msk和解密密钥对解密密钥进行形式验证,根据验证结果,执行对应操作;
16.路径追踪:若验证成功,根据解密密钥提取用户身份id。
17.可选的,系统公钥pk的表达式为:
[0018][0019]
式中,g,w均为素群的随机数;u,a,b均为素群属性集映射组合的随机数;和分别为系统运行群生成算法获得的双线性对e和p阶素群;h为哈希函数。
[0020]
可选的,主私钥msk的表达式为:
[0021]
msk={α,a,b,u,k1,k2};
[0022]
式中,α,u,a,b均为素群属性集映射组合的随机数;k1、k2均为概率加密算法的密钥。
[0023]
可选的,解密密钥的表达式为:
[0024][0025]
式中,k、k'、l、sk均为解密密钥参数;为用户属性集中任一属性的解密密钥。
[0026]
可选的,解密过程具体为:
[0027]
获取密文ct;
[0028]
根据待读取用户的访问策略计算矩阵的行集;
[0029]
判断行集中的参数属性是否满足密文ct的lsss矩阵访问策略(m,ρ),若否,输出

;若是,获得第一对称密钥k;
[0030]
根据第一对称密钥k解密消息密文ctm获得消息m。
[0031]
可选的,解密过程表达式为:
[0032][0033]
式中,e(
·
)表示双线性映射;k、k'、l、sk均为解密密钥参数;c为第一对称密钥k加密后的密文;ci为;c1、c2均为密钥密文ct1的密文参数;g,w均为素群的随机数;σ为rsa签名;c,α,u,a,b,h均为素群属性集映射组合的随机数;s为随机数;wi常数;h为哈希函数;为用户属性集中任一属性的解密密钥;attri表示用户属性集中的任一个属性。
[0034]
可选的,待更新密文ct'的表达式为:
[0035]
ct'={c,(m',ρ'),c'0,c'1,c'2,{c'i}
i∈[l]
};
[0036]
式中,(m',ρ')为待更新访问策略;c为第一对称密钥k加密后的密文;c'0、c'1、c'2、c'i均为为密文参数;l为m的列数。
[0037]
可选的,更新密文ct”的表达式为:
[0038]
ct”={c,c0,c1,c2,{c'i}
i∈[l]
};
[0039]
式中,c为第一对称密钥k加密后的密文;c'i、c0、c1、c2均为密钥密文ct1的密文参数。
[0040]
可选的,解密密钥验证的条件为:
[0041][0042]
e(sk,gb)=e(wawk′
,gb)e(h(0)||1||1||1),l);
[0043]
e(k,gagk′
)=e(g,g)
α
e(gb,w
a k

);
[0044]
式中,k、k'、l、sk均为解密密钥参数;e(
·
)表示双线性映射;α,a,b均为素群属性集映射组合的随机数;g,w均为素群的随机数;h为哈希函数。
[0045]
可选的,路径追踪的具体步骤为:
[0046]
从解密密钥中获取k',求得
[0047]
判断(x',y')是否属于{(x1,y1),(x2,y2),

(x
t-1
,y
t-1
)},若是,根据)},若是,根据获得用户身份id;若否结合点(x1,y1),(x2,y2),

(x
t-1
,y
t-1
)和(x',y')通过拉格朗日插值公式恢复ins
t-1,n
的秘密值a
*

[0048]
根据秘密值a
*
判断是否输出用户身份id;
[0049]
其中,x,y为任意一点的坐标的值;k'为解密密钥参数。
[0050]
经由上述的技术方案可知,与现有技术相比,本发明公开了一种基于区块链可追溯的个人隐私保护方法,适用于区块链上的隐私保护和细粒度数据共享,在计算和存储成本方面大大提高了原始可追溯cp-abe方案的效率;本发明不仅能够跟踪泄露私钥的恶意用户,还可以防止密钥的非法共享和滥用;此外,本发明允许更新访问控制策略,以便数据所有者可以灵活地修改访问控制策略。
附图说明
[0051]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0052]
图1为本发明的方法流程示意图;
[0053]
图2为本发明的操作过程示意图。
具体实施方式
[0054]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0055]
实施例1
[0056]
本发明实施例公开了一种基于区块链可追溯的个人隐私保护方法,如图1和图2所示,包括以下步骤:
[0057]
步骤1)系统初始化。(1
λ
)

(pk,msk):系统运行群生成算法来获得双线性对e和p阶素群和定义u为属性集,然后将属性集u映射到组合随机选取随机选取一个哈希函数该算法选择具有两个不同密钥k1和k2的概率加密算法(enc、dec)。系统通过选择t

1阶多项式f(x)和存储多项式f(x)中t-1个点(x1,y1),(x2,y2),

(x
t-1
,y
t-1
)来初始化shamir的阈值共享方案ins
t,n
。系统公钥pk和主私钥msk设置如下:
[0058][0059]
msk={α,a,b,u,k1,k2};
[0060]
步骤2)加密。(pk,id,m,(m,ρ))

(ctm,ct):输入公钥pk、消息m和lsss矩阵访问策略(m,ρ)。数据所有者首先将他/她的id发送给权威机构,为id生成rsa签名σ。假设矩阵m有l行n列,函数ρ将矩阵m映射到用户属性集,并将m
i,j
定义为矩阵m的第(i,j)个元素(第i行第j列)。数据所有者选择一个对称密钥用k将消息m加密为ctm=enck(m),然后将ctm和(m,ρ)上传到ipfs存储服务器进行存储。此外,对存储的限制是数据用户只有在数据用户的属性满足访问策略(m,ρ)的情况下才能从ipfs中获取消息密文ctm。接下来,选择随机数并使用密钥k'的对称加密算法对其进行预加密并保存为随机密文enc
k'
(s)。对用于消息加密的对称密钥k使用基于属性的加密算法进行加密,如下所示。
[0061]
(m,ρ),c=ke(g,g)
σαs
,c0=g
σs

[0062]
c1=g
σas
,c2=g
σbs

[0063][0064]
密文设置为ct={ct1,ct2},其中密钥密文ct1={c,c0,c1,c2},访问策略密文ct2=
{(m,ρ),ci}
i∈[l]
。最后,密文ct1存储为事务块tx,密文ct2存储为策略块a。
[0065]
步骤3)密钥生成。用户向权威机构提交他/她的身份id、属性集(其中的attri表示用户属性集中的一个属性)。权限使用系统公钥pk和主私钥msk生成用户的密钥。计算得到x=随机选择为用户生成解密密钥如下:
[0066][0067][0068]
用户的解密密钥设置为:
[0069][0070]
步骤4)解密。数据用户访问区块链,从区块链交易块tx中获取密文ct1,从交易块tx对应的最新访问策略块a中获取密文ct2。数据用户首先计算矩阵m的行集,即其中行对应的属性属于用户属性集中的元素。如果用户的属性集满足在密文ct的访问策略中,数据用户可以计算出一组常数{ωi}
i∈i
满足∑
i∈i
ωimi=(1,0,0,

,0),其中mi是矩阵的第i行。否则,解密算法输出

。解密过程如下:
[0071][0072][0073][0074][0075]
数据用户计算对称密钥k=c/y,然后使用密钥k解密从存储服务器下载的密文ctm,得到消息m。
[0076]
正确性:
[0077]
[0078][0079][0080]
步骤5)更新策略。(σ,enc
k'
(s),(m',ρ'))

ct':输入签名σ、预先保存的ens
k'
(s)和要更新的访问策略(m',ρ')。然后输出更新后的密文ct'。数据拥有者首先将ipfs中ctm对应的访问策略(m,ρ)更新为(m',ρ')。然后,数据拥有者使用对称密钥k

解密enc
k'
(s)得到s,然后计算ct'如下:
[0081]
c'0=g
σs
,c'1=g
σas
,c'2=g
σbs

[0082][0083]
密文ct'={c,(m',ρ'),c'0,c'1,c'2,{c'i}
i∈[l]
}。
[0084]
步骤6)策略验证。(σ,ct')

ct”:输入签名σ和密文ct'。区块链节点首先通过rsa签名验证算法验证签名σ的正确性,然后比较c'0=c0,c'1=c1,c'2=c2是否成立,如果成立,则更新密文为ct”={c,c0,c1,c2,{c'i}
i∈[l]
}。然后上传{c'i}
i∈[l]
生成一个新的策略块a'。
[0085]
步骤7)密钥检查。输入系统公钥pk、系统主私钥msk和用户的解密密钥用户密钥的形式首先由权威机构针对以下三个条件进行验证:
[0086][0087]
2)e(sk,gb)=e(wawk′
,gb)e(h(0)||1||1||1),l);
[0088]
3)e(k,gagk′
)=e(g,g)
α
e(gb,w
a k

);
[0089]
如果密钥满足三个条件,则返回1,否则返回0。
[0090]
步骤8)路径追踪。如果密钥检查算法输出为0,则路径追踪算法输出为

。否则,表明是一个格式良好的密钥,因此可以从以下操作中提取id。
[0091]
1)路径追踪算法首先从用户的密钥中得到k',然后得到中得到k',然后得到令(x'=x,y'=y)。
[0092]
2)如果(x',y')∈{(x1,y1),(x2,y2),

(x
t-1
,y
t-1
)},然后计算id=否
则,转到步骤(3)。
[0093]
3)该算法结合了点(x1,y1),(x2,y2),

(x
t-1
,y
t-1
)和(x',y')通过拉格朗日插值公式恢复ins
t-1,n
的秘密值a
*
。它验证a
*
=f(0)是否成立。如果成立,则计算否则,算法的输出为


[0094]
实施例2
[0095]
如图2所示,首先系统初始化。系统运行群生成算法来获得双线性对e和p阶素群和定义u为属性集,然后将属性集u映射到组合该算法选择具有两个不同密钥k1和k2的概率加密算法(enc、dec)。系统通过选择t

1阶多项式f(x)和存储多项式f(x)中t-1个点(x1,y1),(x2,y2),

(x
t-1
,y
t-1
)来初始化shamir的阈值共享方案ins
t-1,n
。系统公钥pk和主私钥msk设置如下:
[0096][0097]
msk={α,a,b,u,k1,k2};
[0098]
隐私所有者向授权机构提交自己的id,授权机构则向隐私所有者返回隐私所有者的签名σ。用户向权威机构提交他/她的身份id、属性集权限使用系统公钥pk和主私钥msk生成用户的密钥。计算得到y=f(x),随机选择为用户生成解密密钥如下。
[0099][0100][0101]
用户的解密密钥设置为:
[0102][0103]
隐私所有者的对称密钥k以及访问策略(m,ρ)通过基于密文策略属性加密(cp-abe)生成密文ct,生成的密文ct被分成ct1和ct2,分别作为交易块tx和访问策略块a存储到区块链中。输入公钥pk、消息m和lsss矩阵访问策略(m,ρ)。数据所有者首先将他/她的id发送给权威机构,为id生成rsa签名σ。假设矩阵m有l行n列,函数ρ将矩阵m映射到用户属性集,并将m
i,j
定义为矩阵m的第(i,j)个元素。数据所有者选择一个对称密钥用k将消息m加密为ctm=enck(m),然后将ctm和(m,ρ)上传到ipfs进行存储。此外,对存储服务器的限制是数据用户只有在数据用户的属性满足访问策略(m,ρ)的情况下才能从ipfs中获取ctm。接下来,随机选择并使用密钥k'的对称加密算法对其进行预加密并保存为enc
k'
(s)。对用于消息加密的对称密钥k使用基于属性的加密算法进行加密,如下所示:
[0104]
(m,ρ),c=ke(g,g)
σαs
,c0=g
σs

[0105]
c1=g
σas
,c2=g
σbs

[0106][0107]
密文设置为ct={ct1,ct2},其中密钥密文ct1={c,c0,c1,c2},访问策略密文ct2=
{(m,ρ),ci}
i∈[l]
。最后,密文ct1存储为事务块tx,密文ct2存储为策略块a。
[0108]
云平台将通过对称密钥k加密后的个人隐私数据ctm存储在ipfs服务器中;区块链用于存储加密后的k和访问策略,可以实现数据的防篡改和访问控制策略的灵活修改。输入签名σ、预先保存的enc
k'
(s)和要更新的访问策略(m',ρ')。然后输出更新后的密文ct'。数据所有者首先将云端ctm对应的访问策略(m,ρ)更新为(m',ρ')。然后,数据拥有者使用对称密钥k

解密enc
k'
(s)得到s,然后计算ct'如下。
[0109]
c'0=g
σs
,c'1=g
σas
,c'2=g
σbs

[0110][0111]
密文ct'={c,(m',ρ'),c'0,c'1,c'2,{c'i}
i∈[l]
}。
[0112]
访问用户隐私的企业或用户需要将自己的身份id和拥有的属性集提交给授权机构,授权机构会生成相应的密钥返回给申请者,之后隐私申请者便可以通过尝试获得k以及解密隐私数据。输入系统公钥pk、系统主私钥msk和用户的解密密钥用户密钥的形式首先由权威机构针对以下三个条件进行验证:
[0113][0114]
2)e(sk,gb)=e(wawk,gb)e(h(0)||1||1||1),l);
[0115]
3)e(k,gagk′
)=e(g,g)
α
e(gb,w
a k

);
[0116]
如果密钥满足三个条件,则返回1,否则返回0。
[0117]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0118]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献