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

文档序号:12198895阅读:来源:国知局

技术特征:

1.一种基于属性加密的区块链隐私数据访问控制方法,包括如下步骤:

(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:

<mrow> <mi>S</mi> <mi>K</mi> <mo>=</mo> <mrow> <mo>(</mo> <mi>D</mi> <mo>,</mo> <msub> <mrow> <mo>{</mo> <msub> <mi>d</mi> <mi>j</mi> </msub> <mo>,</mo> <msub> <mi>D</mi> <mi>j</mi> </msub> <mo>,</mo> <msubsup> <mi>D</mi> <mi>j</mi> <mo>&prime;</mo> </msubsup> <mo>}</mo> </mrow> <mrow> <msub> <mi>a</mi> <mi>j</mi> </msub> <mo>&Element;</mo> <msub> <mi>S</mi> <mi>u</mi> </msub> </mrow> </msub> <mo>)</mo> </mrow> <mo>,</mo> </mrow>

其中,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:

<mrow> <mi>E</mi> <mo>=</mo> <mrow> <mo>(</mo> <mi>P</mi> <mo>,</mo> <mover> <mi>C</mi> <mo>~</mo> </mover> <mo>,</mo> <mi>C</mi> <mo>,</mo> <msub> <mrow> <mo>{</mo> <msub> <mi>C</mi> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> </msub> <mo>,</mo> <msubsup> <mi>C</mi> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> <mo>&prime;</mo> </msubsup> <mo>}</mo> </mrow> <mrow> <msub> <mi>a</mi> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> </msub> <mo>&Element;</mo> <mi>L</mi> </mrow> </msub> <mo>)</mo> </mrow> <mo>,</mo> </mrow>

其中,是包含交易明文信息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。

2.根据权利要求1所述的方法,其特征在于,步骤(3a)中计算属性私钥dj、私钥参数Dj和属性权限参数集合D′j,按照如下公式计算:

<mrow> <msub> <mi>d</mi> <mi>j</mi> </msub> <mo>=</mo> <msup> <mi>g</mi> <mi>r</mi> </msup> <msup> <mrow> <mo>(</mo> <msubsup> <mi>u</mi> <mi>i</mi> <mo>&prime;</mo> </msubsup> <msubsup> <mo>&Pi;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>h</mi> </msubsup> <msup> <msub> <mi>u</mi> <mi>k</mi> </msub> <msub> <mi>a</mi> <mrow> <mi>j</mi> <mi>k</mi> </mrow> </msub> </msup> <mo>)</mo> </mrow> <msub> <mi>r</mi> <mi>j</mi> </msub> </msup> </mrow>

<mrow> <msub> <mi>D</mi> <mi>j</mi> </msub> <mo>=</mo> <msup> <mi>g</mi> <msub> <mi>r</mi> <mi>j</mi> </msub> </msup> </mrow>

<mrow> <msubsup> <mi>D</mi> <mi>j</mi> <mo>&prime;</mo> </msubsup> <mo>=</mo> <mo>{</mo> <msubsup> <mi>u</mi> <mrow> <mi>h</mi> <mo>+</mo> <mn>1</mn> </mrow> <msub> <mi>r</mi> <mi>j</mi> </msub> </msubsup> <mo>,</mo> <msubsup> <mi>u</mi> <mrow> <mi>h</mi> <mo>+</mo> <mn>2</mn> </mrow> <msub> <mi>r</mi> <mi>j</mi> </msub> </msubsup> <mo>,</mo> <mo>...</mo> <mo>,</mo> <msubsup> <mi>u</mi> <msub> <mi>l</mi> <mi>i</mi> </msub> <msub> <mi>r</mi> <mi>j</mi> </msub> </msubsup> <mo>}</mo> <mo>,</mo> </mrow>

其中,g是第一乘法循环群G0的生成元,r是用于抵抗共谋攻击的随机数,u′i表示第i棵属性树对应的公开参数,h是使用者属性aj在属性树中的深度,uk是属性树第k层的公开参数,ajk是使用者属性aj的路径Rj=(aj0,aj1…,ajk,…,ajh)中第k层的相应属性,k∈[0,h],rj是属性随机数,rj∈Zp是属性树第h+1层到第li层的公开参数。

3.根据权利要求1所述的方法,其特征在于,步骤(4b)中计算秘密值s的d个秘密份额{sδ}δ∈[1,d],按照如下公式计算:

sδ=Mδ·v,

其中,sδ是与策略属性aj′对应的秘密值s的第δ个秘密份额,Mδ是生成矩阵M的第δ行,δ∈[1,d],随机向量v=(s,v2,…,vc)T,s是随机选择的秘密值,v2,…,vc是从有限域Zp中随机选择的c-1个随机数。

4.根据权利要求1所述的方法,其特征在于,步骤(4c)中计算属性密文Cj′和策略参数C′j′,按照如下公式计算:

<mrow> <msub> <mi>C</mi> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> </msub> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>u</mi> <msup> <mi>i</mi> <mo>&prime;</mo> </msup> <mo>&prime;</mo> </msubsup> <msubsup> <mo>&Pi;</mo> <mrow> <msup> <mi>k</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <mn>1</mn> </mrow> <msup> <mi>h</mi> <mo>&prime;</mo> </msup> </msubsup> <msup> <msub> <mi>u</mi> <msup> <mi>k</mi> <mo>&prime;</mo> </msup> </msub> <msub> <mi>a</mi> <mrow> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> <msup> <mi>k</mi> <mo>&prime;</mo> </msup> </mrow> </msub> </msup> <mo>)</mo> </mrow> <msub> <mi>s</mi> <mi>&delta;</mi> </msub> </msup> </mrow>

<mrow> <msubsup> <mi>C</mi> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> <mo>&prime;</mo> </msubsup> <mo>=</mo> <msup> <mi>g</mi> <msub> <mi>s</mi> <mi>&delta;</mi> </msub> </msup> <mo>,</mo> </mrow>

其中,u′i′表示第i′棵属性树对应的公开参数,h′是策略属性aj′在属性树中的深度,uk′是属性树第k′层的公开参数,aj′k′是策略属性aj′的路径Rj′=(aj′0,aj′1,…,aj′k′,...,aj′h′)中第k′层的相应属性,k′∈[0,h′],g是第一乘法循环群G0的生成元,sδ是与策略属性aj′对应的秘密值s的第δ个秘密份额,δ∈[1,d]。

5.根据权利要求1所述的方法,其特征在于,步骤(5a)中的交易方A通过安全签名算法Sig对密文E及附加验证信息M′进行签名,按照如下公式进行:

<mrow> <msub> <mi>&sigma;</mi> <mi>A</mi> </msub> <mo>=</mo> <msub> <mi>Sig</mi> <msub> <mi>s</mi> <mi>A</mi> </msub> </msub> <mrow> <mo>(</mo> <mi>E</mi> <mo>|</mo> <mo>|</mo> <msup> <mi>M</mi> <mo>&prime;</mo> </msup> <mo>)</mo> </mrow> <mo>|</mo> <mo>|</mo> <msub> <mi>ID</mi> <mi>A</mi> </msub> <mo>,</mo> </mrow>

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

6.根据权利要求1所述的方法,其特征在于,步骤(5b)中对初步签名文件σA进行签名,按照如下公式进行:

<mrow> <msub> <mi>&sigma;</mi> <mi>B</mi> </msub> <mo>=</mo> <msub> <mi>Sig</mi> <msub> <mi>s</mi> <mi>B</mi> </msub> </msub> <mrow> <mo>(</mo> <msub> <mi>&sigma;</mi> <mi>A</mi> </msub> <mo>)</mo> </mrow> <mo>|</mo> <mo>|</mo> <msub> <mi>ID</mi> <mi>B</mi> </msub> <mo>|</mo> <mo>|</mo> <msub> <mi>ID</mi> <mi>A</mi> </msub> <mo>,</mo> </mrow>

其中,σB是交易方B生成的最终签名文件,sB是交易方B的签名私钥,IDA是交易方A的身份标识,IDB是交易方B的身份标识,||表示级联运算。

7.根据权利要求1所述的方法,其特征在于,步骤(7b)中在授权集合Su′中选出能覆盖策略属性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′]。

8.根据权利要求1所述的方法,其特征在于,步骤(7c)中计算解密权限值d′j和双线性对A,按如下公式计算:

<mrow> <msubsup> <mi>d</mi> <mi>j</mi> <mo>&prime;</mo> </msubsup> <mo>=</mo> <msub> <mi>d</mi> <mi>j</mi> </msub> <mo>&CenterDot;</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>u</mi> <mrow> <mi>h</mi> <mo>+</mo> <mn>1</mn> </mrow> <msub> <mi>r</mi> <mi>j</mi> </msub> </msubsup> <mo>)</mo> </mrow> <msub> <mi>a</mi> <mrow> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> <mo>,</mo> <mi>h</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> </msup> <msup> <mrow> <mo>(</mo> <msubsup> <mi>u</mi> <mrow> <mi>h</mi> <mo>+</mo> <mn>2</mn> </mrow> <msub> <mi>r</mi> <mi>j</mi> </msub> </msubsup> <mo>)</mo> </mrow> <msub> <mi>a</mi> <mrow> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> <mo>,</mo> <mi>h</mi> <mo>+</mo> <mn>2</mn> </mrow> </msub> </msup> <mo>...</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>u</mi> <msup> <mi>h</mi> <mo>&prime;</mo> </msup> <msub> <mi>r</mi> <mi>j</mi> </msub> </msubsup> <mo>)</mo> </mrow> <msub> <mi>a</mi> <mrow> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> <msup> <mi>h</mi> <mo>&prime;</mo> </msup> </mrow> </msub> </msup> <mo>=</mo> <msup> <mi>g</mi> <mi>r</mi> </msup> <msup> <mrow> <mo>(</mo> <msubsup> <mi>u</mi> <mi>i</mi> <mo>&prime;</mo> </msubsup> <msubsup> <mo>&Pi;</mo> <mrow> <msup> <mi>k</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <mn>1</mn> </mrow> <msup> <mi>h</mi> <mo>&prime;</mo> </msup> </msubsup> <msup> <msub> <mi>u</mi> <msup> <mi>k</mi> <mo>&prime;</mo> </msup> </msub> <msub> <mi>a</mi> <mrow> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> <msup> <mi>k</mi> <mo>&prime;</mo> </msup> </mrow> </msub> </msup> <mo>)</mo> </mrow> <msub> <mi>r</mi> <mi>j</mi> </msub> </msup> </mrow>

<mrow> <msub> <mi>A</mi> <mrow> <mi>j</mi> <mi>&delta;</mi> </mrow> </msub> <mo>=</mo> <mi>e</mi> <mrow> <mo>(</mo> <msubsup> <mi>d</mi> <mi>j</mi> <mo>&prime;</mo> </msubsup> <mo>,</mo> <msubsup> <mi>C</mi> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> <mo>&prime;</mo> </msubsup> <mo>)</mo> </mrow> <mo>/</mo> <mi>e</mi> <mrow> <mo>(</mo> <msub> <mi>D</mi> <mi>j</mi> </msub> <mo>,</mo> <msub> <mi>C</mi> <msup> <mi>j</mi> <mo>&prime;</mo> </msup> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>e</mi> <msup> <mrow> <mo>(</mo> <mi>g</mi> <mo>,</mo> <mi>g</mi> <mo>)</mo> </mrow> <mrow> <msub> <mi>rs</mi> <mi>&delta;</mi> </msub> </mrow> </msup> <mo>,</mo> </mrow>

其中,dj是属性私钥,是权限参数集合D′j中的元素,表示使用者属性aj的权限参数,aj′,h+1,aj′,h+2,...,aj′h′是密文策略属性aj′的路径Rj′=(aj′0,aj′1,…,aj′k′,...,aj′h′)中第h+1层到第h′层的相应属性,rj是随机数,rj∈Zp,Cj′是策略属性aj′的属性密文,Dj是策略属性aj′的私钥参数,C′j′是策略属性aj′的策略参数,sδ是与策略属性aj′对应的秘密值s的第δ个秘密份额。

9.根据权利要求1所述的方法,其特征在于,步骤(7d)中对区块链中交易信息的密文E解密,按如下公式计算:

<mrow> <mi>m</mi> <mo>=</mo> <mfrac> <mover> <mi>C</mi> <mo>~</mo> </mover> <mrow> <mi>e</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>,</mo> <mi>D</mi> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <msub> <mo>&Pi;</mo> <mrow> <mi>&delta;</mi> <mo>&Element;</mo> <mi>I</mi> </mrow> </msub> <msubsup> <mi>A</mi> <mrow> <mi>j</mi> <mi>&delta;</mi> </mrow> <msub> <mi>&lambda;</mi> <mi>&delta;</mi> </msub> </msubsup> </mrow> </mfrac> <mo>,</mo> </mrow>

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

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