基于属性加密的区块链隐私数据访问控制方法与流程

文档序号:12198895阅读:5755来源:国知局
基于属性加密的区块链隐私数据访问控制方法与流程

本发明属于密码技术领域,具体涉及一种隐私数据访问控制方法,可应用于区块链中不同级别授权监管中心和用户对区块链中的加密交易数据进行有效的访问。



背景技术:

区块链本质上是一个去中心化的数据库,就像一个共享账本,记录所有的比特币交易信息。作为比特币的底层技术,区块链具有去中心化、开放性、匿名性和不可篡改等特点。在传统的公有区块链中,用户的账户信息和交易内容等数据都是公开的,任何用户都可以参与记账和查看交易数据,仅仅通过“伪匿名”的方式保护用户隐私。这虽然增加了用户对数据真实可靠的信心,但对于金融行业来说,数据的完全公开涉及到大量商业机密和利益,因此有必要使用加密技术来保护数据隐私,同时又要保证监管中心比如政府和银行能够查看交易内容,以防止区块链中违法交易的进行。这就需要灵活的访问控制策略来实现对不同用户访问权限的控制。而且随着区块链中用户量剧增,将会产生大量的交易信息,从而造成监管不便,因此需要设定不同级别的监管中心来分层监管区块链中交易的进行。

2005年Sahai和Waters提出了属性加密ABE的概念,ABE分为密文策略属性加密CP-ABE和密钥策略属性加密KP-ABE。在CP-ABE中,密文与访问策略相关,密钥与用户属性相关,只有用户的属性满足密文的访问控制策略时,用户才可以解密密文。CP-ABE具有灵活的访问控制策略,很好地解决了多对多通信的访问控制问题,但是它没有考虑属性之间的相互关系,不适用于不同级别授权用户权限之间存在上级权限覆盖下级权限的情况。于是2009年Jin Li等提出了分层属性加密HABE的概念,该方案按照属性之间的相关性对属性集合中的属性进行分层,从而具有了上层属性覆盖下层属性的性质,但该方案基于基本的ABE,缺乏细粒度的访问控制。

西安电子科技大学在其申请的专利“一种分层属性加密方案”(公开号:105406967A,申请号:201510908416.8,申请日:2016年03月16日)中公开了一种分层属性加密方案。该方案在加密时对于分层的每个属性都将分层的访问结构的对应行嵌入进去,从而实现分层和访问控制相结合。该方法存在的不足之处是仅针对属性的重要性对其分层,对于属性之间相关性的考虑不够详细,不适用于未来区块链中需要对各级用户权限进行细粒度分层访问控制的情况。



技术实现要素:

本发明的目的在于针对上述现有的不足,提出一种基于属性加密的区块链隐私数据访问控制方法,以加强对区块链中隐私数据的保护,同时保证不同级别授权监管中心和用户能够对区块链中的隐私数据进行有效的访问。

本发明的技术方案是,由使用者向系统提出注册申请,获得与使用者身份信息唯一对应的身份标识ID和使用者属性集合Su;权威中心CA根据使用者属性信息为其分发私钥SK;交易方A在与交易方B进行交易时,使用分层属性加密技术对即将交易的敏感信息进行加密,以保证交易方B和各级授权监管中心都可以解密密文;区块链中其他非授权用户没有权限查看加密的交易信息,但可以通过交易密文后面附加的验证信息验证交易的有效性,其实现步骤包括如下:

(1)初始化:

(1a)输入系统安全参数1λ,生成阶为素数p的第一乘法循环群G0、第二乘法循环群G1和有限域Zp,随机选择第一乘法循环群G0的生成元g,定义双线性映射e:G0×G0→G1

(1b)从有限域Zp中选取N个元素作为系统属性,组成系统属性集合S,按照属性之间的相关性将S中的属性划分到n棵树中,设第i棵树的深度为li,定义l=max{li}i∈[1,n]表示n棵树的最大深度,i∈[1,n];

(1c)随机选择第一向量U=(uθ)1≤θ≤l和第二向量U′=(u′θ′)1≤θ′≤n,其中,uθ表示属性树的第θ层对应的公开参数,uθ∈G0,u′θ′表示第θ′棵属性树对应的公开参数,u′θ′∈G0;定义为有限域Zp中与p互素的元素集合,在中选择两个大小不同的随机数α和β,计算公开参数Y=e(g,g)α,生成系统参数PK和主私钥MK:

PK=(G0,g,gβ,Y,U,U′),

MK=(α,β);

(2)身份注册:

(2a)使用者向系统提出注册申请,获取与其真实身份信息对应的身份标识ID及使用者属性集合Su,并提交给权威中心CA,其中使用者包括普通用户和监管中心,监管中心获取的属性权限高于其管辖范围内普通用户的属性权限,

(2b)权威中心CA验证使用者的身份标识ID及使用者属性集合Su的正确性,若正确,执行步骤(3),否则,终止注册;

(3)密钥分发:

(3a)权威中心CA对使用者属性集合Su中第j个属性aj,计算其属性私钥dj、私钥参数Dj和权限参数集合D′j

(3b)权威中心CA计算该使用者的私钥SK:

其中,D=g(α+r)/β是该使用者的私钥SK中的部分密钥;

(3c)权威中心CA将该使用者的私钥SK通过安全信道发送给该使用者秘密保存;

(4)加密交易隐私数据:

(4a)交易方A制定访问控制策略P,并通过线性秘密共享体制LSSS构造访问控制结构(M,ρ),其中M是c行d列的生成矩阵,ρ是将集合{1,2,...,δ,...,d}中的元素映射到密文策略属性集L中属性的映射,密文策略属性集L是访问控制策略P中所有属性的集合;

(4b)选择随机秘密值生成秘密值s的d个秘密份额{sδ}δ∈[1,d],其中,sδ是秘密值s的第δ个秘密份额,δ∈[1,d];

(4c)对于密文策略属性集L中的第j′个属性aj′,计算其属性密文Cj′和策略参数C′j′

(4d)交易方A输入要加密的交易明文信息m,生成密文E:

其中,是包含交易明文信息m的部分密文,C=gβs是包含秘密值s的部分密文;

(5)上传交易数据:

(5a)交易方A通过安全签名算法Sig对密文E及附加验证信息M′进行签名,将生成的初步签名文件σA发给交易方B;

(5b)交易方B收到初步签名文件σA,解密其中的密文E,查看交易信息正确无误后,对初步签名文件σA进行签名,生成最终签名文件σB,并广播至区块链;

(6)执行交易:

(6a)系统在一段时间内选出记账最快最好的记账员F;

(6b)记账员F将包含这段时间内所有交易信息的数据区块在区块链中广播,区块链中每个节点都可以对该数据区块中的交易信息进行验证,如果交易信息真实有效,就将该区块添加到区块链中;

(6c)记账员F使用加法同态算法对交易双方A和B的账户余额进行变更;

(7)访问密文:

(7a)用户或监管中心在查看某条交易信息的具体内容前,首先验证自己的属性集合Su是否满足访问控制策略P:

若不满足,则无法正确执行解密操作;

若满足,则选出满足访问控制策略P的授权集合S′u,执行步骤(7b),其中,

(7b)在授权集合S′u中选出能覆盖密文策略属性aj′的使用者属性aj,其中aj∈Su

(7c)计算使用者属性aj的解密权限值d′j和双线性对

(7d)对区块链中交易信息的密文E解密,得到交易明文信息m。

本发明与现有技术相比,具有以下优点:

第一,本发明由于使用加密技术对区块链中的交易隐私数据加密,解决了传统的公有区块链中所有数据公开带来的隐私泄露问题,实现了对区块链中交易敏感信息的隐私保护;

第二,本发明由于使用分层属性加密技术与线性秘密共享体制LSSS相结合,实现了对区块链中交易密文的细粒度分层访问控制,交易方只要在访问控制策略中加入自己的权限,就可以使其所属的监管中心具有访问该交易密文的权限,从而避免了交易方在使用访问控制策略加密交易信息时故意不让监管中心查看的情况发生。

附图说明

图1为本发明的实现总流程图;

图2为本发明中加密交易隐私数据的子流程图。

具体实施方式

下面结合附图对本发明做进一步的描述。

参照附图1,本发明的实现步骤如下。

步骤1,初始化。

输入系统安全参数1λ,生成阶为素数p的第一乘法循环群G0、第二乘法循环群G1和有限域Zp,随机选择第一乘法循环群G0的生成元g,定义双线性映射e:G0×G0→G1

从有限域Zp中选取N个元素作为系统属性,组成系统属性集合S,按照属性之间的相关性将S中的属性划分到n棵树中,设第i棵树的深度为li,定义l=max{li}i∈[1,n]表示n棵树的最大深度,i∈[1,n];

随机选择第一向量U=(uθ)1≤θ≤l和第二向量U′=(u′θ′)1≤θ′≤n,其中,uθ表示属性树的第θ层对应的公开参数,uθ∈G0,u′θ′表示第θ′棵属性树对应的公开参数,u′θ′∈G0;定义为有限域Zp中与p互素的元素集合,在中选择两个大小不同的随机数α和β,计算公开参数Y=e(g,g)α,生成系统参数PK和主私钥MK:

PK=(G0,g,gβ,Y,U,U′),

MK=(α,β)。

步骤2,身份注册。

使用者向系统提出注册申请,获取与使用者真实身份信息对应的身份标识ID及使用者属性集合Su,并提交给权威中心CA,其中使用者包括普通用户和各级监管中心,监管中心获取的属性权限高于其管辖范围内普通用户的属性权限;

权威中心CA验证使用者的身份标识ID及使用者属性集合Su的正确性,若正确,执行步骤3,否则,终止注册。

步骤3,密钥分发。

(3a)设使用者属性集合Su中第j个使用者属性aj位于第i棵属性树,其深度为h,其路径为Rj=(aj0,aj1...,ajk,...,ajh),其中,k∈[0,h],ajk是使用者属性aj的路径Rj中第k层的相应属性,权威中心CA选择用于抵抗共谋攻击的随机数对于使用者属性aj,选择属性随机数rj∈Zp,并计算其属性私钥dj、私钥参数Dj和权限参数集合D′j

其中,u′i表示第i棵属性树对应的公开参数,uk是属性树第k层的公开参数,是属性树第h+1层到第li层的公开参数;

(3b)权威中心CA计算该使用者的私钥SK:

其中,D=g(α+r)/β是该使用者的私钥SK中的部分密钥。

(3c)权威中心CA将该使用者的私钥SK通过安全信道发送给该使用者保存。

步骤4,加密交易隐私数据。

参照附图2,本步骤如下:

(4a)交易方A制定访问控制策略P,通过线性秘密共享体制LSSS构造访问控制结构(M,ρ),其中M是c行d列的生成矩阵,ρ是将集合{1,2,...,δ,...,d}中的元素映射到密文策略属性集L中属性的映射,密文策略属性集L是访问控制策略P中所有属性的集合;

(4b)选择随机秘密值从有限域Zp中随机选择c-1个随机数v2,...,vc,构造随机向量v=(s,v2,...,vc)T,生成秘密值s的d个秘密份额{sδ}δ∈[1,d]

sδ=Mδ·v,

其中,Mδ是生成矩阵M的第δ行,δ∈[1,d],sδ是与策略属性aj′对应的秘密值s的第δ个秘密份额;

(4c)设密文策略属性集L中的第j′个策略属性aj′位于第i′棵属性树,其深度为h′,其路径为Rj′=(aj′0,aj′1,...,aj′k′,...,aj′h′),其中,k′∈[0,h′],aj′k′是策略属性aj′的路径Rj′中第k′层的相应属性,对于策略属性aj′,根据映射ρ选择其对应的秘密份额sδ,并计算其属性密文Cj′和策略参数C′j′

其中,u′i′表示第i′棵属性树对应的公开参数,uk′是属性树第k′层的公开参数;

(4d)交易方A输入要加密的交易明文信息m,生成密文E:

其中,是包含交易明文信息m的部分密文,C=gβs是包含秘密值s的部分密文。

步骤5,上传交易数据。

(5a)交易方A通过安全签名算法Sig对密文E及附加验证信息M′进行签名:

其中,σA是交易方A签名后的初步签名文件,附加验证信息M′包含了比特币的金额数量和来源信息,sA是交易方A的签名私钥,||表示级联运算,IDA是交易方A的身份标识;

(5b)交易方A将初步签名文件σA发给交易方B,交易方B收到初步签名文件σA后,对其中的密文E解密,查看交易信息正确无误后,交易方B运行签名算法Sig对初步签名文件σA进行签名,生成最终签名文件σB

其中,sB是交易方B的签名私钥,IDB是交易方B的身份标识;

(5c)交易方B将最终签名文件σB广播至区块链。

步骤6,执行交易。

系统在一段时间内选出记账最快最好的记账员F;

记账员F将包含这段时间内所有交易信息的数据区块在区块链中广播,区块链中每个节点都可以对该数据区块中的交易信息进行验证,如果交易信息真实有效,就将该区块添加到区块链中;

记账员F使用加法同态算法对交易双方A和B的余额进行变更。

步骤7,访问密文。

(7a)用户或监管中心在查看某条交易信息的具体内容前,首先验证自己的属性集合Su是否满足访问控制策略P:

若不满足,则无法正确执行解密操作;

若满足,则选出满足访问控制策略P的授权集合S′u,其中

(7b)在授权集合S′u中选出同时满足以下3个条件的能覆盖策略属性aj′的使用者属性aj

使用者属性aj在第i棵属性树中,策略属性aj′在第i′棵属性树中,二者满足i=i′;

使用者属性aj的深度h与策略属性aj′的深度h′之间满足:h≤h′;

使用者属性aj的路径Rj=(aj0,aj1,...,ajk,...,ajh)与策略属性aj′的路径Rj′=(aj′0,aj′1,...,aj′k′,...,aj′h′)之间满足:当k=k′时,ajk=aj′k′,其中k∈[0,h],k′∈[0,h′];

(7c)对于覆盖策略属性aj′的使用者属性aj,计算其解密权限值d′j和双线性对

其中,dj是属性私钥,是权限参数集合D′j中的元素,表示使用者属性aj的权限参数,aj′,h+1,aj′,h+2,...,aj′h′是密文策略属性aj′的路径Rj′中第h+1层到第h′层的相应属性,Cj′是策略属性aj′的属性密文,Dj是策略属性aj′的私钥参数,C′j′是策略属性aj′的策略参数,u′i′表示第i′棵属性树对应的公开参数,uk′是属性树第k′层的公开参数,aj′k′是策略属性aj′的路径Rj′中第k′层的相应属性,k′∈[0,h′];

(7d)对区块链中交易信息的密文E进行解密,得到解密后的交易明文信息m:

其中,是包含交易明文信息m的部分密文,C是包含秘密值s的部分密文,D是使用者私钥SK中的部分密钥,λδ为集合{λδ}δ∈I中第δ个参数,λδ∈Zp,集合{λδ}δ∈I是根据LSSS方案的重构性质得到的参数集合,I={δ:ρ(δ)∈S′u},ρ(δ)表示用映射ρ将δ映射到密文策略属性集L中的策略属性aj′,sδ是与策略属性aj′对应的秘密值s的第δ个秘密份额。

通过以上步骤,将分层的密文策略属性加密技术与线性秘密共享体制LSSS相结合,并应用到区块链的交易过程中,从而实现了对区块链中交易敏感信息的加密保护和分层访问控制。

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