当前位置: 华文星空 > 知识

TEM2020

2021-06-24知识

Introduction

基于区块链的物联网系统(IoT)中的细粒度访问控制。传统的集中式访问控制中,密钥会随着用户的增加呈线性直线增长。本文提出了基于属性加密机制可以实现有效的细粒度访问控制。

Method

1. Technique

1.1 Attribute-Based Encryption 基于属性加密机制

ABE机制是指将数据和数据用户属性相关联的一组规则,以提供对数据的访问控制。

1.2 Chameleon Hash Algorithm 变色龙哈希

人为设下一个「后门」(私钥)。掌握了它就能轻松找到碰撞,其中 m 不等于 m' 。假设一个区块原内容为m ,有个人知道这个哈希的「后门」为 x ,这个「私钥」对应的公钥为 h(=g^{x}) 。生成变色龙哈希对应的随机数为 r ,则此时该区块的哈希值为 g^{m}\cdot h^{r} 。若将内容m篡改为m',现在希望找到一个随机数 r' ,使得 CH(m')=CH(m) 。r' 的求解过程如下

CH(m)=g^{m}\cdot h^{r}=g^{m+xr} ,

CH(m')=g^{m'}\cdot h^{r'}=g^{m'+xr'} ,

因此, r=\frac{m+xr-m'}{x} 。

2. Proposed method

2.1 四类角色

  • 可信第三方(TA):生成和分发基于属性加密机制的密钥对。
  • 数据发布者(DP):制定访问策略,生成文件密钥对和变色龙哈希密钥。
  • 数据使用者(DU):访问数据链获取加密数据,访问密钥链获取文件密钥。
  • 密钥链矿工(KM):更新密钥链。
  • 2.2 三种密钥对

  • 文件密钥(Conversation key): (\emph{SK}_{A,\emph{P}},\emph{PK}_{A,\emph{P}}) 。用\emph{SK}_{A,\emph{P}} 加密数据得到密文 C ;用\emph{SK}_{KM,\emph{P}} 加密变色龙哈希私钥得到 \text{E}_{SK_{KM,P}}(CH_{SK}) 。
  • 基于属性加密机制密钥(ABE key): (ABE_{SK},ABE_{PK}) 。用 ABE_{PK} 加密文件密钥 PK_{P} 得到密文 CT ;
  • 变色龙哈希密钥(CH key):(CH_{SK},CH_{PK}) 。用 CH_{PK} 和CT 生成变色龙哈希值。
  • 2.3 两种区块链

    类型 用途 特点
    数据链(Data Chain) 存放经文件密(Conversation key)加密后的数据 (1)传统区块链
    (2)只有一条(3)保证数据完整性和机密性并防篡改
    密钥链(Key Chain) 存放经ABE加密后的文件密钥 (1)与传统区块链不同,采用变色龙哈希(CH)机制
    (2)各的团体可通过创建自己的密钥链(3)可编辑,防篡改

    2.4 密钥链(Key Chain)设计

    2.4.1 块结构

    Block structure

    (1) Block Body中Chameleonhash值计算如下

    G(h,1)=CH\_HASH(m(h,1),v(h,1)) ,

    其中 h 代表块的深度。持有变色龙哈希私钥(CH_{SK} )的矿工可以同时修改 m(i,j) 和 v(i,j) 的值使得 G(i,j) 不变。

    (2) Block Header中Body Hash值计算如下

    n(h)=Hash(G(h,1),G(h,2),G(h,3),...),

    由于 G(i,j) 不变,因此 n(h) 不会改变。

    (3) 状态树MPT(h):存储Block- h 每一个随机数的更新历史,以防止恶意矿工进行虚假更新(用户通过随机数的值有没有发生改变就能判断矿工有没有更新数据)

    2.4.2 链间协议(Interchain Protocol)

    (1)数据加密并上传数据链

    Initialization&Encryption&Publishing

    Step1 :数据使用者(DU)向可信第三方(TA)注册以获得属性授权;

    Step2: 可信第三方(TA)为各属性(\alpha )生成ABE密钥对(ABE_{\alpha,PK}, ABE_{\alpha ,SK} ),然后通过安全通道发送ABE私钥(ABE_{\alpha,SK} )给相应的数据使用者(DU)并广播ABE公钥(ABE_{\alpha',PK} );

    Step3: 数据发布者(DP)指定访问策略(A )并生成文件密钥对(SK_{A,P},PK_{A,P} ),(SK_{KM,P},PK_{KM,P} )和变色龙哈希密钥对( CH_{SK},CH_{PK} ),然后用ABE公钥(ABE_{KM,PK} )加密文件密钥公钥(PK_{KM,P} )生成密文 \textbf{ABE}_{KM}(PK_{KM,P}) ,并生成交易发布到Key Chain上;

    Step4: 数据发布者(DP)用文件密钥私钥(SK_{KM,P} )加密变色龙哈希私钥(CH_{SK} )生成\text{E}_{SK_{KM,P}}(CH_{SK}) ,然后和\textbf{ABE}_{KM}(PK_{KM,P}) 在Key Chain上的位置 t_{i,j} 一起生成交易并发布到Data Chain上;

    Step5: 数据发布者(DP)广播变色龙哈希公钥(CH_{PK} );

    Step6: 数据发布者(DP)用ABE密钥公钥(ABE_{A,PK} )加密文件密钥公钥(PK_{A,P} )生成CT(=\textbf{ABE}_{A}(PK_{A,P})) 并生成交易发布到Key Chain上;

    Step7: 数据发布者(DP)用文件密钥私钥(SK_{A,P} )加密数据P 生成加密数据C(=\textbf{E}_{SK_{A,P}}(P)) 并和CT 在Key Chain上的位置t'_{i,j} 一起生成交易并发布到Data Chain上。

    (2)索取数据并解密

    Retrieve&Decryption

    Step1-2 :数据使用者(DU)访问Data Chain并拿到加密数据C 和CT 在Key Chain上的位置t'_{i,j} ;

    Step3-4 :数据使用者(DU)根据t'_{i,j} 访问Key Chain并拿到CT(=\textbf{ABE}_{A}(PK_{A,P})) 。授权DU可以根据本地存储的ABE私钥(ABE_{\alpha,SK} )解密出文件密钥公钥(PK_{KM,P} ),进而解密出数据 P

    (3)访问权限更新

    Updating

    Step1 :新数据使用者(NDU)向可信第三方(TA)注册以获得属性授权;

    Step2 :新数据可信第三方(TA)根据新注册的用户以及撤销的用户信息生成新属性( \alpha' )进而生成新的ABE密钥对(ABE_{\alpha',PK}, ABE_{\alpha' ,SK} )然后通过安全通道发送ABE私钥(ABE_{\alpha',SK} )给相应的数据使用者(DU)并广播ABE公钥(ABE_{\alpha',PK} );

    Step3 :数据发布者(DP)更新数据(P )的访问策略(A' ),然后用ABE密钥公钥(ABE_{A',PK} )加密文件密钥公钥(PK_{A,P} )生成CT'(=\textbf{ABE}_{A'}(PK_{A,P})) 并发送给密钥链矿工(KM);

    Step4: 密钥链矿工(KM)拿到变色龙哈希私钥(CH_{SK} )后通过变色龙哈希算法更新Key Chain中CT 为CT' 。

    Discussion

    本方案使得未撤销访问权限和新授权的数据使用者(NDU)不但可以访问更新之前的数据还可以访问更新之后的数据,但被撤销访问权限的数据使用者(UDU)不能访问更新之后的数据,因为没有更新后的ABE私钥(ABE_{\alpha',SK} )也就无法解密出文件密钥公钥(PK_{KM,P} )。但由于在更新是没有更新件密钥公钥导致会发生缓存密钥攻击,即如果被撤销访问权限的用户之前缓存了文件密钥公钥,那么它依然可以解密出未来用旧的文件密钥公钥加密的密文。

    Reference