作者:Zhixin Ren , Enhua Yan , Taowei Chen , Yimin Yu
来源:JKSU – Computer and Information Sciences
单位:云南财经大学信息学院 智能应用研究院
时间:2024年2月
背景
数字时代,数据共享技术作为各个领域不可或缺的组成部分,CP-ABE(基于密文策略的属性加密)技术作为一个解决隐私保护和访问控制的技术方向,在区块链环境中存在多个问题仍待解决。1.密钥集中式管理造成单点问题和可扩展性差。2.无法验证代理重加密的正确性。3.区块链运行成本gas高。4.节点激励机制缺乏,参与度低。
核心贡献
1.对于密钥集中管理造成的单点依赖,论文提出门限式代理重加密方案,通过密钥封装机制KEM,将主密钥MSK分片,将密钥管理系统集成到区块链基础设施中,多个PREN节点共同重加密,避免了对于单一密钥中心的依赖问题。
2.对验证重加密结果的cFrag的正确性,采用Fiat-Shamir Heuristic协议将zk-SNARKs交互式证明转换为非交互式证明。通过生产零知识证明确保重加密过程由授权代理执行且重加密过程未被篡改。
3.为提高区块链网络的可扩展性并减少gas消耗,设计了一种基于zk-SNARKs的交易聚合机制,OPN节点通过将多个数据访问交易聚合为一个逻辑批次,批量构造zk证明并上链以验证账户状态转换的有效性。
4.引入了节点激励和惩罚机制,增强网路中节点的诚实参与,惩罚恶意行为,提升系统组织活性和稳定性。
技术框架
论文设计了一个面向隐私数据访问的去中心化架构,融合了区块链、CP-ABE、PRE、zk-SNARK与dKMS等技术,主要实现了DO数据拥有者到DU数据使用者的隐私协作流程。

主要参与节点:
DO数据拥有者:发布数据、设定访问策略、加密并上传资源目录与数据
DU数据使用者:基于属性密钥请求解密数据,需经授权和重加密
PREN代理重加密节点:接受 DO 提供的重加密密钥,对密文进行格式转换,使其适配 DU 的密钥
OPN操作节点:负责收集重加密片段、生成 zk-SNARK 零知识证明并提交链上验证
核心流程:
方案主要由七个阶段组成:初始化阶段、封装阶段、加密阶段、重新加密阶段、密钥生成阶段、身份验证阶段和解密阶段。
初始化阶段:DO输入安全参数K和属性集U,通过setup算法,生成系统公钥PK和系统主密钥MSK。
封装阶段:DO将初始化阶段得到PK和MSK作为封装算法KEMMSK的输入,得到一个对称密钥用于加密MSK,同时封装了一个capsule用于重加密操作的封装体。算法最后得到CTmsk和capsule。
加密阶段:DO将PK、明文数据m、基于LSSS的访问策略A和身份随机密钥δ输入加密算法,输出密文数据CT,同时将CT存入IPFS。

重加密阶段:DO输入密钥skA和预期委托pkB的公钥,以及片段总数的参数N和阈值的参数t,然后重新加密密钥生成算法ReKeyGen计算重新加密密钥的N个片段,每个片段都命名为kFrag,然后将其发送到PREN;代理节点输入密钥封装体capsule和重加密密钥碎片kFrag作为ReEncrypt算法输入,先检查capsule的有效性,再封装为cFrag,与此同时,PREN节点通过CreateNIZKP创建一个NIZK证明来保证cFrag的正确性

密钥生成阶段:主要包括重加密验证、密钥解封、用户私钥生成和交互计算。
对于PREN发送的NIZKP,区块链上共识节点触发链上验证合约,使用 zk-SNARK 验证电路,输出验证结果。
DU利用从多个 PREN 节点获得的重加密片段cFrag_i和 DO的公钥、自己的私钥,保证收集的cFrag数量大于阈值t,执行ReDecrypt算法,将这些 cFrag合并,得到 εK;再使用 εK 解密 CTMSK得到明文 MSK或 ⊥。
DU使用随机数t,通过使用非对称加密对(e,d)得到Ei=encryption(ei,t),Ei和DU属性对应的哈希值hxi发送给计算节点,区块计算节点接收属性哈希 hx 和加密随机数 E,执行合约 BC.CptKey() 计算并返回 K′_x;DU 将之前得到的所有组件组合为完整私钥四元组SK = (S, K, L, Kx)。
身份验证阶段:在DU具备属性密钥的基础上,进一步确认其身份合法性,DU发送身份标识符θ给DO,DO确认后发送身份密钥δ。
解密阶段:DU根据区块链上公开的密文存储地址,从IPFS下载密文CT。然后,他使用身份密钥δ和私钥SK通过执行解密算法decrypt来解密密文CT,从而得到明文数据m

方案具体的算法构造由CP-ABE和PRE构成,CP-ABE部分首先引入用户身份标识符θ和身份密钥δ,通过访问策略A实现用户身份验证。引入了CptKey和KeyRes,并使用非对称加密对(e,d)来保护SK。PRE部分侧重于利用阈值代理重新加密协议和KEM实现CP-ABE MSK的多方安全管理和分发。此外,通过NIZK证明实现了重新加密计算的正确性验证

对于重加密的验证部分,主要涉及PREN、CPN、CVN、ADN(裁决节点)用于验证PREN节点提供的重加密密钥碎片cFrag是否正确

方案的交易聚合主要由OPN节点完成,通过交易池中交易排序聚合为一个批次,聚合多个cFrag_i和Π_i,构造一个合并后的zk-SNARK证明进行上链,区块链仅需要验证一次,便可证明多个重加密是否合法。

实验分析
硬件环境:AMD Ryzen 7 6800H CPU 16.0 GB RAM
工具:Circom+Snarkjs(NIZK验证+zk-SNARK证明)
区块链平台:Ganache(以太坊)
椭圆曲线:secp256k1+PBC-Type A
结果分析:
Fig-a:单节点密钥生成效率用于Waters方案持平,但多节点密钥生成效率远高于基准
Fig-bc:单节点的解密耗时随用户属性线性增长,但加密与密钥生成时间基本不受属性数量影响
Fig-df:对比Zhang和Sun方案,论文方案在加密、重加密、解密中明显优于基准
Fig-g:并发压力测试,Python 多线程模拟 20、50、100 并发访问,在100并发条件下,单个节点的平均响应时间保持在31秒以内
Fig-h:消耗gas分析,gas成本随验证节点增多而增加,证明方案的交易证明聚合机制的有效性


论文总结及启发
总结:
论文提出了一种融合区块链、属性加密、代理重加密、分布式密钥管理和零知识证明的隐私保护数据共享框架。系统支持数据拥有者设定访问策略加密数据,同时将解密权限通过代理重加密安全地授权给符合条件的数据使用者。整个过程中,代理节点无需访问明文或私钥即可完成密文格式转换,且通过zk-SNARK构建了非交互式零知识证明,确保所有代理重加密操作在不暴露数据的前提下实现可验证性。结果表明,该系统不仅提升了重加密效率,降低了双线性对计算开销,而且在交易聚合与zk批量验证下显著减少了链上gas成本,在多并发访问条件下也维持了良好的响应时间,验证了其在真实环境中具备良好的可扩展性与实用性。
启发:
1.论文的主要架构基于ABE+区块链来实现隐私数据可控访问,创新点主要式一个CP-ABE方案和zk-SNARK证明机制,解决了单密钥分发的依赖和重加密验证的有效性。CP-ABE保证访问控制,PRE让协作不泄露明文数据的前提下完成数据传递,保证了隐私性,论文选用的技术对于课题框架具有参考意义,访问策略+重加密保证了数据的选择性共享,重加密又保证了计算节点的非直接交互从而导致数据泄露。
2.论文平台基于ganache构建的本地以太坊,采用多个椭圆曲线对安全性提供保证,在fabric链对应开发中,可能需要考虑此方面影响。